[libfann] 02/242: initial release

Christian Kastner chrisk-guest at moszumanska.debian.org
Sat Oct 4 21:10:11 UTC 2014


This is an automated email from the git hooks/post-receive script.

chrisk-guest pushed a commit to tag Version2_0_0
in repository libfann.

commit d3ccf56da1d6758b16d5442b725a73e4e4948b01
Author: Steffen Nissen <lukesky at diku.dk>
Date:   Sat Nov 1 10:52:13 2003 +0000

    initial release
---
 INSTALL                          |     9 +
 doc/fann_doc_complete_1.0.pdf    |   Bin 0 -> 568375 bytes
 doc/fann_doc_complete_1.0.ps     | 34809 +++++++++++++++++++++++++++++++++++++
 doc/fann_doc_users_guide_1.0.pdf |   Bin 0 -> 102650 bytes
 4 files changed, 34818 insertions(+)

diff --git a/INSTALL b/INSTALL
new file mode 100644
index 0000000..0d8bb8c
--- /dev/null
+++ b/INSTALL
@@ -0,0 +1,9 @@
+See doc/fann_doc_users_guide_1.0.pdf for install info
+
+Otherwise just type:
+
+cd src
+make runtest
+
+
+And all the libraries should be made and tested
diff --git a/doc/fann_doc_complete_1.0.pdf b/doc/fann_doc_complete_1.0.pdf
new file mode 100644
index 0000000..f01a6c1
Binary files /dev/null and b/doc/fann_doc_complete_1.0.pdf differ
diff --git a/doc/fann_doc_complete_1.0.ps b/doc/fann_doc_complete_1.0.ps
new file mode 100644
index 0000000..f2a3531
--- /dev/null
+++ b/doc/fann_doc_complete_1.0.ps
@@ -0,0 +1,34809 @@
+%!PS-Adobe-2.0
+%%Creator: dvips(k) 5.92b Copyright 2002 Radical Eye Software
+%%Title: report.dvi
+%%Pages: 92
+%%PageOrder: Ascend
+%%BoundingBox: 0 0 596 842
+%%DocumentFonts: CMCSC10 CMR12 CMR10 CMBX9 CMR9 CMBX12 CMR7 CMTT10
+%%+ CMBX10 CMR6 CMR8 CMSL10 CMSY10 CMMI10 CMEX10 CMMI7 CMSY7 CMMI5 CMR5
+%%+ CMSY5 CMTT8 Helvetica CMTI10 CMTT12 CMTI7 CMBX7
+%%EndComments
+%DVIPSWebPage: (www.radicaleye.com)
+%DVIPSCommandLine: dvips -o report_new.ps report
+%DVIPSParameters: dpi=600, compressed
+%DVIPSSource:  TeX output 2003.10.31:0120
+%%BeginProcSet: texc.pro
+%!
+/TeXDict 300 dict def TeXDict begin/N{def}def/B{bind def}N/S{exch}N/X{S
+N}B/A{dup}B/TR{translate}N/isls false N/vsize 11 72 mul N/hsize 8.5 72
+mul N/landplus90{false}def/@rigin{isls{[0 landplus90{1 -1}{-1 1}ifelse 0
+0 0]concat}if 72 Resolution div 72 VResolution div neg scale isls{
+landplus90{VResolution 72 div vsize mul 0 exch}{Resolution -72 div hsize
+mul 0}ifelse TR}if Resolution VResolution vsize -72 div 1 add mul TR[
+matrix currentmatrix{A A round sub abs 0.00001 lt{round}if}forall round
+exch round exch]setmatrix}N/@landscape{/isls true N}B/@manualfeed{
+statusdict/manualfeed true put}B/@copies{/#copies X}B/FMat[1 0 0 -1 0 0]
+N/FBB[0 0 0 0]N/nn 0 N/IEn 0 N/ctr 0 N/df-tail{/nn 8 dict N nn begin
+/FontType 3 N/FontMatrix fntrx N/FontBBox FBB N string/base X array
+/BitMaps X/BuildChar{CharBuilder}N/Encoding IEn N end A{/foo setfont}2
+array copy cvx N load 0 nn put/ctr 0 N[}B/sf 0 N/df{/sf 1 N/fntrx FMat N
+df-tail}B/dfs{div/sf X/fntrx[sf 0 0 sf neg 0 0]N df-tail}B/E{pop nn A
+definefont setfont}B/Cw{Cd A length 5 sub get}B/Ch{Cd A length 4 sub get
+}B/Cx{128 Cd A length 3 sub get sub}B/Cy{Cd A length 2 sub get 127 sub}
+B/Cdx{Cd A length 1 sub get}B/Ci{Cd A type/stringtype ne{ctr get/ctr ctr
+1 add N}if}B/id 0 N/rw 0 N/rc 0 N/gp 0 N/cp 0 N/G 0 N/CharBuilder{save 3
+1 roll S A/base get 2 index get S/BitMaps get S get/Cd X pop/ctr 0 N Cdx
+0 Cx Cy Ch sub Cx Cw add Cy setcachedevice Cw Ch true[1 0 0 -1 -.1 Cx
+sub Cy .1 sub]/id Ci N/rw Cw 7 add 8 idiv string N/rc 0 N/gp 0 N/cp 0 N{
+rc 0 ne{rc 1 sub/rc X rw}{G}ifelse}imagemask restore}B/G{{id gp get/gp
+gp 1 add N A 18 mod S 18 idiv pl S get exec}loop}B/adv{cp add/cp X}B
+/chg{rw cp id gp 4 index getinterval putinterval A gp add/gp X adv}B/nd{
+/cp 0 N rw exit}B/lsh{rw cp 2 copy get A 0 eq{pop 1}{A 255 eq{pop 254}{
+A A add 255 and S 1 and or}ifelse}ifelse put 1 adv}B/rsh{rw cp 2 copy
+get A 0 eq{pop 128}{A 255 eq{pop 127}{A 2 idiv S 128 and or}ifelse}
+ifelse put 1 adv}B/clr{rw cp 2 index string putinterval adv}B/set{rw cp
+fillstr 0 4 index getinterval putinterval adv}B/fillstr 18 string 0 1 17
+{2 copy 255 put pop}for N/pl[{adv 1 chg}{adv 1 chg nd}{1 add chg}{1 add
+chg nd}{adv lsh}{adv lsh nd}{adv rsh}{adv rsh nd}{1 add adv}{/rc X nd}{
+1 add set}{1 add clr}{adv 2 chg}{adv 2 chg nd}{pop nd}]A{bind pop}
+forall N/D{/cc X A type/stringtype ne{]}if nn/base get cc ctr put nn
+/BitMaps get S ctr S sf 1 ne{A A length 1 sub A 2 index S get sf div put
+}if put/ctr ctr 1 add N}B/I{cc 1 add D}B/bop{userdict/bop-hook known{
+bop-hook}if/SI save N @rigin 0 0 moveto/V matrix currentmatrix A 1 get A
+mul exch 0 get A mul add .99 lt{/QV}{/RV}ifelse load def pop pop}N/eop{
+SI restore userdict/eop-hook known{eop-hook}if showpage}N/@start{
+userdict/start-hook known{start-hook}if pop/VResolution X/Resolution X
+1000 div/DVImag X/IEn 256 array N 2 string 0 1 255{IEn S A 360 add 36 4
+index cvrs cvn put}for pop 65781.76 div/vsize X 65781.76 div/hsize X}N
+/p{show}N/RMat[1 0 0 -1 0 0]N/BDot 260 string N/Rx 0 N/Ry 0 N/V{}B/RV/v{
+/Ry X/Rx X V}B statusdict begin/product where{pop false[(Display)(NeXT)
+(LaserWriter 16/600)]{A length product length le{A length product exch 0
+exch getinterval eq{pop true exit}if}{pop}ifelse}forall}{false}ifelse
+end{{gsave TR -.1 .1 TR 1 1 scale Rx Ry false RMat{BDot}imagemask
+grestore}}{{gsave TR -.1 .1 TR Rx Ry scale 1 1 false RMat{BDot}
+imagemask grestore}}ifelse B/QV{gsave newpath transform round exch round
+exch itransform moveto Rx 0 rlineto 0 Ry neg rlineto Rx neg 0 rlineto
+fill grestore}B/a{moveto}B/delta 0 N/tail{A/delta X 0 rmoveto}B/M{S p
+delta add tail}B/b{S p tail}B/c{-4 M}B/d{-3 M}B/e{-2 M}B/f{-1 M}B/g{0 M}
+B/h{1 M}B/i{2 M}B/j{3 M}B/k{4 M}B/w{0 rmoveto}B/l{p -4 w}B/m{p -3 w}B/n{
+p -2 w}B/o{p -1 w}B/q{p 1 w}B/r{p 2 w}B/s{p 3 w}B/t{p 4 w}B/x{0 S
+rmoveto}B/y{3 2 roll p a}B/bos{/SS save N}B/eos{SS restore}B end
+
+%%EndProcSet
+%%BeginProcSet: 0ef0afca.enc
+% Thomas Esser, Dec 2002. public domain
+%
+% Encoding for:
+%     cmr5
+%
+/TeX0ef0afcaEncoding [
+/Gamma /Delta /Theta /Lambda /Xi /Pi /Sigma /Upsilon /Phi /Psi /Omega
+/arrowup /arrowdown /quotesingle /exclamdown /questiondown /dotlessi
+/dotlessj /grave /acute /caron /breve /macron /ring /cedilla /germandbls
+/ae /oe /oslash /AE /OE /Oslash /suppress /exclam /quotedblright
+/numbersign /dollar /percent /ampersand /quoteright /parenleft
+/parenright /asterisk /plus /comma /hyphen /period /slash /zero /one
+/two /three /four /five /six /seven /eight /nine /colon /semicolon
+/less /equal /greater /question /at /A /B /C /D /E /F /G /H /I /J /K
+/L /M /N /O /P /Q /R /S /T /U /V /W /X /Y /Z /bracketleft /quotedblleft
+/bracketright /circumflex /dotaccent /quoteleft /a /b /c /d /e /f /g /h
+/i /j /k /l /m /n /o /p /q /r /s /t /u /v /w /x /y /z /endash /emdash
+/hungarumlaut /tilde /dieresis /suppress /.notdef /.notdef /.notdef
+/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
+/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
+/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
+/.notdef /.notdef /.notdef /.notdef /space /Gamma /Delta /Theta /Lambda
+/Xi /Pi /Sigma /Upsilon /Phi /Psi /.notdef /.notdef /Omega /arrowup
+/arrowdown /quotesingle /exclamdown /questiondown /dotlessi /dotlessj
+/grave /acute /caron /breve /macron /ring /cedilla /germandbls /ae /oe
+/oslash /AE /OE /Oslash /suppress /dieresis /.notdef /.notdef /.notdef
+/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
+/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
+/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
+/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
+/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
+/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
+/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
+] def
+
+%%EndProcSet
+%%BeginProcSet: f7b6d320.enc
+% Thomas Esser, Dec 2002. public domain
+%
+% Encoding for:
+%     cmb10 cmbx10 cmbx12 cmbx5 cmbx6 cmbx7 cmbx8 cmbx9 cmbxsl10
+%     cmdunh10 cmr10 cmr12 cmr17cmr6 cmr7 cmr8 cmr9 cmsl10 cmsl12 cmsl8
+%     cmsl9 cmss10cmss12 cmss17 cmss8 cmss9 cmssbx10 cmssdc10 cmssi10
+%     cmssi12 cmssi17 cmssi8cmssi9 cmssq8 cmssqi8 cmvtt10
+%
+/TeXf7b6d320Encoding [
+/Gamma /Delta /Theta /Lambda /Xi /Pi /Sigma /Upsilon /Phi /Psi /Omega
+/ff /fi /fl /ffi /ffl /dotlessi /dotlessj /grave /acute /caron /breve
+/macron /ring /cedilla /germandbls /ae /oe /oslash /AE /OE /Oslash
+/suppress /exclam /quotedblright /numbersign /dollar /percent /ampersand
+/quoteright /parenleft /parenright /asterisk /plus /comma /hyphen
+/period /slash /zero /one /two /three /four /five /six /seven /eight
+/nine /colon /semicolon /exclamdown /equal /questiondown /question /at
+/A /B /C /D /E /F /G /H /I /J /K /L /M /N /O /P /Q /R /S /T /U /V /W /X
+/Y /Z /bracketleft /quotedblleft /bracketright /circumflex /dotaccent
+/quoteleft /a /b /c /d /e /f /g /h /i /j /k /l /m /n /o /p /q /r /s /t /u
+/v /w /x /y /z /endash /emdash /hungarumlaut /tilde /dieresis /suppress
+/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
+/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
+/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
+/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /space
+/Gamma /Delta /Theta /Lambda /Xi /Pi /Sigma /Upsilon /Phi /Psi /.notdef
+/.notdef /Omega /ff /fi /fl /ffi /ffl /dotlessi /dotlessj /grave /acute
+/caron /breve /macron /ring /cedilla /germandbls /ae /oe /oslash /AE
+/OE /Oslash /suppress /dieresis /.notdef /.notdef /.notdef /.notdef
+/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
+/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
+/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
+/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
+/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
+/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
+/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
+] def
+
+%%EndProcSet
+%%BeginProcSet: 09fbbfac.enc
+% Thomas Esser, Dec 2002. public domain
+%
+% Encoding for:
+%     cmsltt10 cmtt10 cmtt12 cmtt8 cmtt9
+/TeX09fbbfacEncoding [
+/Gamma /Delta /Theta /Lambda /Xi /Pi /Sigma /Upsilon /Phi /Psi
+/Omega /arrowup /arrowdown /quotesingle /exclamdown /questiondown
+/dotlessi /dotlessj /grave /acute /caron /breve /macron /ring /cedilla
+/germandbls /ae /oe /oslash /AE /OE /Oslash /visiblespace /exclam
+/quotedbl /numbersign /dollar /percent /ampersand /quoteright /parenleft
+/parenright /asterisk /plus /comma /hyphen /period /slash /zero /one
+/two /three /four /five /six /seven /eight /nine /colon /semicolon /less
+/equal /greater /question /at /A /B /C /D /E /F /G /H /I /J /K /L /M /N
+/O /P /Q /R /S /T /U /V /W /X /Y /Z /bracketleft /backslash /bracketright
+/asciicircum /underscore /quoteleft /a /b /c /d /e /f /g /h /i /j /k /l
+/m /n /o /p /q /r /s /t /u /v /w /x /y /z /braceleft /bar /braceright
+/asciitilde /dieresis /visiblespace /.notdef /.notdef /.notdef /.notdef
+/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
+/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
+/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
+/.notdef /.notdef /.notdef /space /Gamma /Delta /Theta /Lambda /Xi /Pi
+/Sigma /Upsilon /Phi /Psi /.notdef /.notdef /Omega /arrowup /arrowdown
+/quotesingle /exclamdown /questiondown /dotlessi /dotlessj /grave /acute
+/caron /breve /macron /ring /cedilla /germandbls /ae /oe /oslash /AE
+/OE /Oslash /visiblespace /dieresis /.notdef /.notdef /.notdef /.notdef
+/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
+/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
+/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
+/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
+/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
+/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
+/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
+] def
+
+%%EndProcSet
+%%BeginProcSet: bbad153f.enc
+% Thomas Esser, Dec 2002. public domain
+%
+% Encoding for:
+%     cmsy10 cmsy5 cmsy6 cmsy7 cmsy8 cmsy9
+%
+/TeXbbad153fEncoding [
+/minus /periodcentered /multiply /asteriskmath /divide /diamondmath
+/plusminus /minusplus /circleplus /circleminus /circlemultiply
+/circledivide /circledot /circlecopyrt /openbullet /bullet
+/equivasymptotic /equivalence /reflexsubset /reflexsuperset /lessequal
+/greaterequal /precedesequal /followsequal /similar /approxequal
+/propersubset /propersuperset /lessmuch /greatermuch /precedes /follows
+/arrowleft /arrowright /arrowup /arrowdown /arrowboth /arrownortheast
+/arrowsoutheast /similarequal /arrowdblleft /arrowdblright /arrowdblup
+/arrowdbldown /arrowdblboth /arrownorthwest /arrowsouthwest /proportional
+/prime /infinity /element /owner /triangle /triangleinv /negationslash
+/mapsto /universal /existential /logicalnot /emptyset /Rfractur /Ifractur
+/latticetop /perpendicular /aleph /A /B /C /D /E /F /G /H /I /J /K
+/L /M /N /O /P /Q /R /S /T /U /V /W /X /Y /Z /union /intersection
+/unionmulti /logicaland /logicalor /turnstileleft /turnstileright
+/floorleft /floorright /ceilingleft /ceilingright /braceleft /braceright
+/angbracketleft /angbracketright /bar /bardbl /arrowbothv /arrowdblbothv
+/backslash /wreathproduct /radical /coproduct /nabla /integral
+/unionsq /intersectionsq /subsetsqequal /supersetsqequal /section
+/dagger /daggerdbl /paragraph /club /diamond /heart /spade /arrowleft
+/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
+/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
+/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
+/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
+/minus /periodcentered /multiply /asteriskmath /divide /diamondmath
+/plusminus /minusplus /circleplus /circleminus /.notdef /.notdef
+/circlemultiply /circledivide /circledot /circlecopyrt /openbullet
+/bullet /equivasymptotic /equivalence /reflexsubset /reflexsuperset
+/lessequal /greaterequal /precedesequal /followsequal /similar
+/approxequal /propersubset /propersuperset /lessmuch /greatermuch
+/precedes /follows /arrowleft /spade /.notdef /.notdef /.notdef /.notdef
+/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
+/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
+/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
+/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
+/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
+/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
+/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
+] def
+
+%%EndProcSet
+%%BeginProcSet: aae443f0.enc
+% Thomas Esser, Dec 2002. public domain
+%
+% Encoding for:
+%     cmmi10 cmmi12 cmmi5 cmmi6 cmmi7 cmmi8 cmmi9 cmmib10
+%
+/TeXaae443f0Encoding [
+/Gamma /Delta /Theta /Lambda /Xi /Pi /Sigma /Upsilon /Phi /Psi /Omega
+/alpha /beta /gamma /delta /epsilon1 /zeta /eta /theta /iota /kappa
+/lambda /mu /nu /xi /pi /rho /sigma /tau /upsilon /phi /chi /psi
+/omega /epsilon /theta1 /pi1 /rho1 /sigma1 /phi1 /arrowlefttophalf
+/arrowleftbothalf /arrowrighttophalf /arrowrightbothalf /arrowhookleft
+/arrowhookright /triangleright /triangleleft /zerooldstyle /oneoldstyle
+/twooldstyle /threeoldstyle /fouroldstyle /fiveoldstyle /sixoldstyle
+/sevenoldstyle /eightoldstyle /nineoldstyle /period /comma /less /slash
+/greater /star /partialdiff /A /B /C /D /E /F /G /H /I /J /K /L /M /N
+/O /P /Q /R /S /T /U /V /W /X /Y /Z /flat /natural /sharp /slurbelow
+/slurabove /lscript /a /b /c /d /e /f /g /h /i /j /k /l /m /n /o /p
+/q /r /s /t /u /v /w /x /y /z /dotlessi /dotlessj /weierstrass /vector
+/tie /psi /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
+/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
+/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
+/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
+/space /Gamma /Delta /Theta /Lambda /Xi /Pi /Sigma /Upsilon /Phi /Psi
+/.notdef /.notdef /Omega /alpha /beta /gamma /delta /epsilon1 /zeta /eta
+/theta /iota /kappa /lambda /mu /nu /xi /pi /rho /sigma /tau /upsilon
+/phi /chi /psi /tie /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
+/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
+/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
+/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
+/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
+/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
+/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
+/.notdef /.notdef /.notdef /.notdef /.notdef
+] def
+
+%%EndProcSet
+%%BeginProcSet: 74afc74c.enc
+% Thomas Esser, Dec 2002. public domain
+%
+% Encoding for:
+%     cmbxti10 cmff10 cmfi10 cmfib8 cmti10 cmti12 cmti7 cmti8cmti9 cmu10
+%
+/TeX74afc74cEncoding [
+/Gamma /Delta /Theta /Lambda /Xi /Pi /Sigma /Upsilon /Phi /Psi /Omega
+/ff /fi /fl /ffi /ffl /dotlessi /dotlessj /grave /acute /caron /breve
+/macron /ring /cedilla /germandbls /ae /oe /oslash /AE /OE /Oslash
+/suppress /exclam /quotedblright /numbersign /sterling /percent
+/ampersand /quoteright /parenleft /parenright /asterisk /plus /comma
+/hyphen /period /slash /zero /one /two /three /four /five /six /seven
+/eight /nine /colon /semicolon /exclamdown /equal /questiondown /question
+/at /A /B /C /D /E /F /G /H /I /J /K /L /M /N /O /P /Q /R /S /T /U /V /W
+/X /Y /Z /bracketleft /quotedblleft /bracketright /circumflex /dotaccent
+/quoteleft /a /b /c /d /e /f /g /h /i /j /k /l /m /n /o /p /q /r /s /t /u
+/v /w /x /y /z /endash /emdash /hungarumlaut /tilde /dieresis /suppress
+/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
+/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
+/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
+/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /space
+/Gamma /Delta /Theta /Lambda /Xi /Pi /Sigma /Upsilon /Phi /Psi /.notdef
+/.notdef /Omega /ff /fi /fl /ffi /ffl /dotlessi /dotlessj /grave /acute
+/caron /breve /macron /ring /cedilla /germandbls /ae /oe /oslash /AE
+/OE /Oslash /suppress /dieresis /.notdef /.notdef /.notdef /.notdef
+/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
+/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
+/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
+/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
+/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
+/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
+/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
+] def
+
+%%EndProcSet
+%%BeginProcSet: texps.pro
+%!
+TeXDict begin/rf{findfont dup length 1 add dict begin{1 index/FID ne 2
+index/UniqueID ne and{def}{pop pop}ifelse}forall[1 index 0 6 -1 roll
+exec 0 exch 5 -1 roll VResolution Resolution div mul neg 0 0]FontType 0
+ne{/Metrics exch def dict begin Encoding{exch dup type/integertype ne{
+pop pop 1 sub dup 0 le{pop}{[}ifelse}{FontMatrix 0 get div Metrics 0 get
+div def}ifelse}forall Metrics/Metrics currentdict end def}{{1 index type
+/nametype eq{exit}if exch pop}loop}ifelse[2 index currentdict end
+definefont 3 -1 roll makefont/setfont cvx]cvx def}def/ObliqueSlant{dup
+sin S cos div neg}B/SlantFont{4 index mul add}def/ExtendFont{3 -1 roll
+mul exch}def/ReEncodeFont{CharStrings rcheck{/Encoding false def dup[
+exch{dup CharStrings exch known not{pop/.notdef/Encoding true def}if}
+forall Encoding{]exch pop}{cleartomark}ifelse}if/Encoding exch def}def
+end
+
+%%EndProcSet
+%%BeginProcSet: special.pro
+%!
+TeXDict begin/SDict 200 dict N SDict begin/@SpecialDefaults{/hs 612 N
+/vs 792 N/ho 0 N/vo 0 N/hsc 1 N/vsc 1 N/ang 0 N/CLIP 0 N/rwiSeen false N
+/rhiSeen false N/letter{}N/note{}N/a4{}N/legal{}N}B/@scaleunit 100 N
+/@hscale{@scaleunit div/hsc X}B/@vscale{@scaleunit div/vsc X}B/@hsize{
+/hs X/CLIP 1 N}B/@vsize{/vs X/CLIP 1 N}B/@clip{/CLIP 2 N}B/@hoffset{/ho
+X}B/@voffset{/vo X}B/@angle{/ang X}B/@rwi{10 div/rwi X/rwiSeen true N}B
+/@rhi{10 div/rhi X/rhiSeen true N}B/@llx{/llx X}B/@lly{/lly X}B/@urx{
+/urx X}B/@ury{/ury X}B/magscale true def end/@MacSetUp{userdict/md known
+{userdict/md get type/dicttype eq{userdict begin md length 10 add md
+maxlength ge{/md md dup length 20 add dict copy def}if end md begin
+/letter{}N/note{}N/legal{}N/od{txpose 1 0 mtx defaultmatrix dtransform S
+atan/pa X newpath clippath mark{transform{itransform moveto}}{transform{
+itransform lineto}}{6 -2 roll transform 6 -2 roll transform 6 -2 roll
+transform{itransform 6 2 roll itransform 6 2 roll itransform 6 2 roll
+curveto}}{{closepath}}pathforall newpath counttomark array astore/gc xdf
+pop ct 39 0 put 10 fz 0 fs 2 F/|______Courier fnt invertflag{PaintBlack}
+if}N/txpose{pxs pys scale ppr aload pop por{noflips{pop S neg S TR pop 1
+-1 scale}if xflip yflip and{pop S neg S TR 180 rotate 1 -1 scale ppr 3
+get ppr 1 get neg sub neg ppr 2 get ppr 0 get neg sub neg TR}if xflip
+yflip not and{pop S neg S TR pop 180 rotate ppr 3 get ppr 1 get neg sub
+neg 0 TR}if yflip xflip not and{ppr 1 get neg ppr 0 get neg TR}if}{
+noflips{TR pop pop 270 rotate 1 -1 scale}if xflip yflip and{TR pop pop
+90 rotate 1 -1 scale ppr 3 get ppr 1 get neg sub neg ppr 2 get ppr 0 get
+neg sub neg TR}if xflip yflip not and{TR pop pop 90 rotate ppr 3 get ppr
+1 get neg sub neg 0 TR}if yflip xflip not and{TR pop pop 270 rotate ppr
+2 get ppr 0 get neg sub neg 0 S TR}if}ifelse scaleby96{ppr aload pop 4
+-1 roll add 2 div 3 1 roll add 2 div 2 copy TR .96 dup scale neg S neg S
+TR}if}N/cp{pop pop showpage pm restore}N end}if}if}N/normalscale{
+Resolution 72 div VResolution 72 div neg scale magscale{DVImag dup scale
+}if 0 setgray}N/psfts{S 65781.76 div N}N/startTexFig{/psf$SavedState
+save N userdict maxlength dict begin/magscale true def normalscale
+currentpoint TR/psf$ury psfts/psf$urx psfts/psf$lly psfts/psf$llx psfts
+/psf$y psfts/psf$x psfts currentpoint/psf$cy X/psf$cx X/psf$sx psf$x
+psf$urx psf$llx sub div N/psf$sy psf$y psf$ury psf$lly sub div N psf$sx
+psf$sy scale psf$cx psf$sx div psf$llx sub psf$cy psf$sy div psf$ury sub
+TR/showpage{}N/erasepage{}N/setpagedevice{pop}N/copypage{}N/p 3 def
+ at MacSetUp}N/doclip{psf$llx psf$lly psf$urx psf$ury currentpoint 6 2 roll
+newpath 4 copy 4 2 roll moveto 6 -1 roll S lineto S lineto S lineto
+closepath clip newpath moveto}N/endTexFig{end psf$SavedState restore}N
+/@beginspecial{SDict begin/SpecialSave save N gsave normalscale
+currentpoint TR @SpecialDefaults count/ocount X/dcount countdictstack N}
+N/@setspecial{CLIP 1 eq{newpath 0 0 moveto hs 0 rlineto 0 vs rlineto hs
+neg 0 rlineto closepath clip}if ho vo TR hsc vsc scale ang rotate
+rwiSeen{rwi urx llx sub div rhiSeen{rhi ury lly sub div}{dup}ifelse
+scale llx neg lly neg TR}{rhiSeen{rhi ury lly sub div dup scale llx neg
+lly neg TR}if}ifelse CLIP 2 eq{newpath llx lly moveto urx lly lineto urx
+ury lineto llx ury lineto closepath clip}if/showpage{}N/erasepage{}N
+/setpagedevice{pop}N/copypage{}N newpath}N/@endspecial{count ocount sub{
+pop}repeat countdictstack dcount sub{end}repeat grestore SpecialSave
+restore end}N/@defspecial{SDict begin}N/@fedspecial{end}B/li{lineto}B
+/rl{rlineto}B/rc{rcurveto}B/np{/SaveX currentpoint/SaveY X N 1
+setlinecap newpath}N/st{stroke SaveX SaveY moveto}N/fil{fill SaveX SaveY
+moveto}N/ellipse{/endangle X/startangle X/yrad X/xrad X/savematrix
+matrix currentmatrix N TR xrad yrad scale 0 0 1 startangle endangle arc
+savematrix setmatrix}N end
+
+%%EndProcSet
+%%BeginProcSet: color.pro
+%!
+TeXDict begin/setcmykcolor where{pop}{/setcmykcolor{dup 10 eq{pop
+setrgbcolor}{1 sub 4 1 roll 3{3 index add neg dup 0 lt{pop 0}if 3 1 roll
+}repeat setrgbcolor pop}ifelse}B}ifelse/TeXcolorcmyk{setcmykcolor}def
+/TeXcolorrgb{setrgbcolor}def/TeXcolorgrey{setgray}def/TeXcolorgray{
+setgray}def/TeXcolorhsb{sethsbcolor}def/currentcmykcolor where{pop}{
+/currentcmykcolor{currentrgbcolor 10}B}ifelse/DC{exch dup userdict exch
+known{pop pop}{X}ifelse}B/GreenYellow{0.15 0 0.69 0 setcmykcolor}DC
+/Yellow{0 0 1 0 setcmykcolor}DC/Goldenrod{0 0.10 0.84 0 setcmykcolor}DC
+/Dandelion{0 0.29 0.84 0 setcmykcolor}DC/Apricot{0 0.32 0.52 0
+setcmykcolor}DC/Peach{0 0.50 0.70 0 setcmykcolor}DC/Melon{0 0.46 0.50 0
+setcmykcolor}DC/YellowOrange{0 0.42 1 0 setcmykcolor}DC/Orange{0 0.61
+0.87 0 setcmykcolor}DC/BurntOrange{0 0.51 1 0 setcmykcolor}DC
+/Bittersweet{0 0.75 1 0.24 setcmykcolor}DC/RedOrange{0 0.77 0.87 0
+setcmykcolor}DC/Mahogany{0 0.85 0.87 0.35 setcmykcolor}DC/Maroon{0 0.87
+0.68 0.32 setcmykcolor}DC/BrickRed{0 0.89 0.94 0.28 setcmykcolor}DC/Red{
+0 1 1 0 setcmykcolor}DC/OrangeRed{0 1 0.50 0 setcmykcolor}DC/RubineRed{
+0 1 0.13 0 setcmykcolor}DC/WildStrawberry{0 0.96 0.39 0 setcmykcolor}DC
+/Salmon{0 0.53 0.38 0 setcmykcolor}DC/CarnationPink{0 0.63 0 0
+setcmykcolor}DC/Magenta{0 1 0 0 setcmykcolor}DC/VioletRed{0 0.81 0 0
+setcmykcolor}DC/Rhodamine{0 0.82 0 0 setcmykcolor}DC/Mulberry{0.34 0.90
+0 0.02 setcmykcolor}DC/RedViolet{0.07 0.90 0 0.34 setcmykcolor}DC
+/Fuchsia{0.47 0.91 0 0.08 setcmykcolor}DC/Lavender{0 0.48 0 0
+setcmykcolor}DC/Thistle{0.12 0.59 0 0 setcmykcolor}DC/Orchid{0.32 0.64 0
+0 setcmykcolor}DC/DarkOrchid{0.40 0.80 0.20 0 setcmykcolor}DC/Purple{
+0.45 0.86 0 0 setcmykcolor}DC/Plum{0.50 1 0 0 setcmykcolor}DC/Violet{
+0.79 0.88 0 0 setcmykcolor}DC/RoyalPurple{0.75 0.90 0 0 setcmykcolor}DC
+/BlueViolet{0.86 0.91 0 0.04 setcmykcolor}DC/Periwinkle{0.57 0.55 0 0
+setcmykcolor}DC/CadetBlue{0.62 0.57 0.23 0 setcmykcolor}DC
+/CornflowerBlue{0.65 0.13 0 0 setcmykcolor}DC/MidnightBlue{0.98 0.13 0
+0.43 setcmykcolor}DC/NavyBlue{0.94 0.54 0 0 setcmykcolor}DC/RoyalBlue{1
+0.50 0 0 setcmykcolor}DC/Blue{1 1 0 0 setcmykcolor}DC/Cerulean{0.94 0.11
+0 0 setcmykcolor}DC/Cyan{1 0 0 0 setcmykcolor}DC/ProcessBlue{0.96 0 0 0
+setcmykcolor}DC/SkyBlue{0.62 0 0.12 0 setcmykcolor}DC/Turquoise{0.85 0
+0.20 0 setcmykcolor}DC/TealBlue{0.86 0 0.34 0.02 setcmykcolor}DC
+/Aquamarine{0.82 0 0.30 0 setcmykcolor}DC/BlueGreen{0.85 0 0.33 0
+setcmykcolor}DC/Emerald{1 0 0.50 0 setcmykcolor}DC/JungleGreen{0.99 0
+0.52 0 setcmykcolor}DC/SeaGreen{0.69 0 0.50 0 setcmykcolor}DC/Green{1 0
+1 0 setcmykcolor}DC/ForestGreen{0.91 0 0.88 0.12 setcmykcolor}DC
+/PineGreen{0.92 0 0.59 0.25 setcmykcolor}DC/LimeGreen{0.50 0 1 0
+setcmykcolor}DC/YellowGreen{0.44 0 0.74 0 setcmykcolor}DC/SpringGreen{
+0.26 0 0.76 0 setcmykcolor}DC/OliveGreen{0.64 0 0.95 0.40 setcmykcolor}
+DC/RawSienna{0 0.72 1 0.45 setcmykcolor}DC/Sepia{0 0.83 1 0.70
+setcmykcolor}DC/Brown{0 0.81 1 0.60 setcmykcolor}DC/Tan{0.14 0.42 0.56 0
+setcmykcolor}DC/Gray{0 0 0 0.50 setcmykcolor}DC/Black{0 0 0 1
+setcmykcolor}DC/White{0 0 0 0 setcmykcolor}DC end
+
+%%EndProcSet
+%%BeginFont: CMBX7
+%!PS-AdobeFont-1.1: CMBX7 1.0
+%%CreationDate: 1991 Aug 20 16:35:49
+% Copyright (C) 1997 American Mathematical Society. All Rights Reserved.
+11 dict begin
+/FontInfo 7 dict dup begin
+/version (1.0) readonly def
+/Notice (Copyright (C) 1997 American Mathematical Society. All Rights Reserved) readonly def
+/FullName (CMBX7) readonly def
+/FamilyName (Computer Modern) readonly def
+/Weight (Bold) readonly def
+/ItalicAngle 0 def
+/isFixedPitch false def
+end readonly def
+/FontName /CMBX7 def
+/PaintType 0 def
+/FontType 1 def
+/FontMatrix [0.001 0 0 0.001 0 0] readonly def
+/Encoding 256 array
+0 1 255 {1 index exch /.notdef put} for
+dup 0 /.notdef put
+readonly def
+/FontBBox{-55 -250 1289 751}readonly def
+/UniqueID 5000765 def
+currentdict end
+currentfile eexec
+D9D66F633B846A97B686A97E45A3D0AA052A014267B7904EB3C0D3BD0B83D891
+016CA6CA4B712ADEB258FAAB9A130EE605E61F77FC1B738ABC7C51CD46EF8171
+9098D5FEE67660E69A7AB91B58F29A4D79E57022F783EB0FBBB6D4F4EC35014F
+D2DECBA99459A4C59DF0C6EBA150284454E707DC2100C15B76B4C19B84363758
+469A6C558785B226332152109871A9883487DD7710949204DDCF837E6A8708B8
+2BDBF16FBC7512FAA308A093FE5F0364CD5660F74BEE96790DE35AFA90CCF712
+B1805DA88AE375A04F3C90C160DE16F890E93B13B46BB2F4971D900BB550E53F
+EC6248832A83CF441B4851445885479839AFAA2903A27676E5FDBCD653467C5B
+6757DA1B722133018873A10B4FD9D710BBD9BE518D989B67DD4533F8702D640E
+B84C3CC2607748FBD7C4BC6DA98537C7A83BCDCD871BC342E318F22902994EA5
+8F5F698960BF55B6DD1ADBAA57D96E80D7C28E06447C5E0131B450234C39D332
+D6EBE6E76DD503B658866DF4DB6774597338B1DB90AC6C0ABAEBA29CE9656E89
+167D88958F3BF262133689AD41A5B9A90DF2838A221C5067B73066612A0FAD18
+6A3670B2A69D1731367C8335600294ABC365F383F983A8AB1E37C1C1804893F7
+DBF122DA9C3843D1715ACBEF92F28AECE850981251D1D25F13B0DE4320D26157
+D14147622A29E7E7F6A037AF34A0197D57AB2A9F7129001F7F636F3B07E0F12F
+D409D880B878EC8C911E3B1F24AE299AC56227FB9D6ECDDDC5F8DFCD18D8D0B1
+4BF4C36A2E36F69E7291A1A0F738ED27D586BAAE8C04E00D5B3C88316AD3374C
+5164218F5588EEDBF966055C55E9781D75B1D7B9C1A2FD2682E7CB88FA9C6889
+8C5510BD1964BB505CABF99F91C7110745DFBC4B8A2A15295320EAF27A97ED84
+C6E59474C2832859A5E2536E33893D90929D6D2585C73A6F3D316B96DCF60413
+912E288DC3945E3A2C53EE1580FA68D40CC336D9AF2EDB87DAC04ACBF223D379
+5482F7EF56A8DE5175D4D988BD67040B7B4634B145F6C995009C1D9671217E37
+758B75D54A26EF8D6F56822318B256B2C43B27E2892E250E98F438334182171D
+99CF39FD8F18FECC0C511B82F9E4B4F4105FB790D635D44CC9EADB5CB632F285
+C0AA7B3D3E04AA8643864FDFD9BA682270CE429D72FA44C3B8D8D5903F8CDE78
+6D15510A3ADEB60E8CB1871A851D7792BC6D90D29A6E9519A13CD660A604D697
+4610EBA0AC1EEDC09EA83F507FB0925AAF915C2E6E1C80DBA9A6A3D166AD5C8A
+BADA6D57563145256E3ECFF26C21A7D340B8B1BA1B6DD73E565BD6316A9E7BB3
+E8026395FAFE6D70BB16166361C1F9D9B639AD90B6CD1127FC26801E3DF2DACB
+679710D130279764B466745EA9D787D064BD985A8ED1A3ABCE2BD4B1725EA9F2
+955F3FB4A2D9435FC7A8956103295C84E02DAC84714488E528457C668F6A1EB1
+617A7D440D486FB2B1626F25D31F743282DE2DFB29D6A65CE48BEBB69D24E1CB
+115A5FC0FC5108F6B1E400396B76937ECD1E66ECAE78437EA726C31280C51D49
+F67AA990C6BBF59C5DE62D58F8E1640314FF720B4D16799BF4F632706A856324
+66EA191404C0551A926D31E3B4306B40AB5F3CFE3855C702049556A5C0C3F00E
+A548E7423B422CF69AB12FC28387C3A91EB1896AB618DA1FF3BEE1F3A8499C4D
+91E853631E6C15B0A51C15027F33E0F6591DD1C0EAC50B727D1ACC1AF8C01525
+3458FECC98DF2C3C493735B407A36F21C84AD85FAFC7DF62A70D73065A83F499
+3D737EE9B8863C0941507FE74388C5678E4F86E592F96675BD87FA7FA82A5943
+637A4905D7AE9896868ACC57967C5D84C3986262BCCB631D6CBACAC657B7151C
+7DA0B416E990ADA712CAFA1A4736473BC3F5CEDA77E6698C4A02E1F9C91A7393
+7EBA6CF0165ED96B5E9A203329C8AD4ECE1457911F438B2C57262DACB2D7CC9E
+5441EB6032E1E252326CDA0FB36746FCA5D5AC272BCD98553E95F6F670D2046B
+40D87886C50C8FF253F4D096DFE5B2386A78998C5CEAA021428B04C72C14AF9F
+D51005D21671FED6557D5C53EB96512813B5FF4C53A41EDB7BBB4A0DB7DB10B0
+5E0D0B54FCAE3DC4E2104E8A2AF4A25AE931EE330AB6CEC9F1EAEF08E79BEBDB
+49CA18182823B49F768AE3EA8B1CBB380947ABEC3DDA084DF0295AE507E0360F
+F095592C1072F0FD45EDD3E1AF2D2E370E7A053D2840BDB8440F07A22208A512
+4F7EC103C5477D8249A63FE20B8956E70EE9EAF3892822F88919A5CBE5DC215C
+89714CEC7C4C85017F4A0E2873863C2989AB6374A3009ECB2CC2C2C9B42C21CB
+0BFE0C4828EDF2AFB127383EFDDA03749A9E8B8FD9296C29C9D19F3062ACF49E
+FEDE1DD2A024249056A4F51FE8282DFE812A58ABB5065AB47D1E661CEA58158D
+94F2F1A49178B028EB5C0AD1876E8BABB7181465053C6D314B3014049A6F694D
+5A6CDAA891EA911E37BD088109E2AD20B7F45D15A4C57E82115DB3362DBC77A2
+DF00DE4F0BB88B82967165314C88BCCA7DF29A01F8EFAAB85C235B9DB36A9C47
+69C2E6DE4B8339F4E649A01510A2355BA70C812838E9A2269644E89787D25366
+627164EE192E9C02C9328C389971641AD1E2E448C7FDC7E276E88FF209FEF51A
+5D443626A12CE19A366D49C085E3A33B75F2D0F9A8CE37AC7E8288E544361CDD
+CD9A74BED1251722A919363EA350541E279DBDBD9DE11844752D6BC54E5BC0BA
+38B6963081F29EBF380D4B951BA6D8D9B8F4E7DB96052A90A2895DF0B56476FD
+3298B751E18FCFF641E81166545FF57615F4C55DC71A86E213DB5A402A0F033A
+62D586E9430AF04EA86B929866928094F023C75C53BE2B6E087C7BB321300535
+46D01E350B6C9D48408846C9FB00AE7EB55D3E6EDAA4C8A9FB69AF8753430DBC
+729776B8EAC5301238499E32F16244086E98E96EE2645CE1E89CA80E66FDDEEF
+F04C62088C8089C9E8BBBB3DF2456D1C9E4E8F35918D449862547F6D3675258B
+2553B9B1CB77B7FB287B9BC906FB32B475AC1E480330429ECD6FB4FAC1BD2FC4
+CADA10E583A8BD9467B62A3AD92349C397AB580CC4246C26C7E19964635332B1
+D5C6009864238E61060B8FE97DDFECC1C9A6EDAFC0C0D43F087BAE1AF8536279
+24A25D54BB6A061E0D738FCA6EF18277A9CEEEF56E851661904DB0FA9D27E5FF
+A4D6DA2C3A94209B72C489162AE5A2005AB520509A849B748AD0CAC6BC669D63
+32F85719EAB16A6A3C6F85251DFF1216E2F0FE254C4D2D6E7893B21200971D8F
+DFDB12642040A3A4F4622A556EA79875CAF88CD0F289CE18A2982B4CE029837E
+871826DBBFC366C0F7422B650475746E7BEAE50BF4807F616AE04CF73C05A415
+33077C28230FA337E03DC45CB5EEFAF0FC2D4128D6E2FC1769B807A7FB56022B
+5F942A12A6C4631A1E97CFEE089DE18F556D99C9A4E0D000CAED89F80939CF70
+68AB7045951A09E257675A0BB9EFD66B13EFADE8ACA5FF6220AECB21D8E26574
+765ABE8BCF64111FD196A4084DC9CE391C686951C57709D84054F70B7A838AAB
+B1E8C14D4B9E837AF0C5D929D6600970F5EC70E5D08E3E2C39D899162B50561E
+7FC607046E23C63BD3597AED0564C536811C7F86A0F9E609AFBF7D47B1012576
+8FDF03996EB4C3472C1B829A1AF465FBFE07072B2D016A8DB834359968ED37EC
+C237C1484EC60FE0615A3E44079B212387D2865FCD4A583D89262CB58F3D3C16
+54E3C0758D8F33414CEC9F1A3FB909F194D2C3EA8B82984996AC723C2701D36D
+5854AF7991A38D1A39BEA2163F253DB39C9E208881840922DED16585EDF3023E
+8AD0CC4B044A9F5368EADE56009810ACE1E0FD40B85F576F1B481EF3876C6F29
+E720A2A0E399CEBD2AFF10BE0756FC0433B681F58F74CA588ABED568E7D42609
+B6EFCC6F5457D31DB8FCA2CE65759C332A16C13908424F51BE002C55B827BB03
+19AB95DC4661208EB8E0CD6D866CA185CA06708F05F8F628EF4D04A36703B154
+B1C57D1864C87E3410AA13B815A18CEDD90FCB965C132D3FF420B3208129BD38
+4345AF089D76A3D6EA6A5712FB600BFCDFE38F51F3D150EA3B0431898F451247
+72AD246B4D96C2343728D343AD6E9C0BA02503B1FA257CCE4AB78616EFDB5825
+E7AF9DE3233D3B3F8BCFF441F2EADBF2B11C7635551401E897A32E0670B70109
+D755D13D9F218D860F8B093319CF53996A7A2E275E11D7FF3C4722BA17142CC4
+BDA6CB18AC485A3F34A869566249A6C248DB9D09EA7AF70B35E77D4C72651DB1
+60FACCA56E8885DEC3C558A902B588E45E4C8E5485E5A294ED103A936E6B6FE1
+6AB8E8019C85860713C8C92855E11C63017008C408E4691181C33A4A2568E7C0
+D330309145FC681863CE2BE79154E2A0FF77A1E596AE3AA99A5A67E6867AC089
+1A8AE69ADA94415F73FF06BDC6B3A6898247BEFBF72F626080E71210A371CEB1
+778FA907E81524DAD9650DD7144945DABD81AF8227C932EDB1AC862DF174E7FF
+23FA925EBD41BD9050ABC231CFBD32CB25AD883F7E6855DB6BA1184D2C70FD72
+4A97F0C0E70D014838359073ADEB6D71D572E5B23B483492A3854A73A099057C
+98DBA27DCAAD6C137B054114082851AAAEEDF4CC688A06F01BE77080C85F9219
+1403B796D507D3D5EB5391B0B5F89FD5B3F6B3AA528FA297BB91B2643610C64B
+9D87C82E0FCAE603568AA2018DD1EEC0031A740A3D35660F3B5C24AF4CC80ECE
+D0BEAB11F8B29F1C90DE68145C85811EECBE25E737EBA8EB38808CEF0BF85DE9
+34867A575D934E1C281245E3490EAD0017140E488BB598955A785A83E283F127
+08CE9B07FD968B811C3DEA7D63778C12264B1116CAB411AC4352F29A1B7D9FCB
+D24D45A2C28858B51CDB8DF6E666F06AA32D5992127D03D35E0F331A245FB226
+7027B769A3667201E0C19E8C1083ED5015B71204D547422EB46446E8BBA391A7
+ED20114122309CDB7497B71C648423C660A9B2A7B4217CF53C5C121C879494CB
+FC48C4B430E0001932E2B7D5E6C5F8AE9640687067BFF0CABCA3E1767F42B37A
+C0D2D93555D88B5517D3F6493037BE0DA3FDE3A222020A6918DCF3FE62E5338C
+3BCF596A71CED67B63E543096BB4E63E0BA76459236F826494171A721BA5B9B4
+E46A2E3B5A861BFA60D12CD2948A12F25A5EC71C5866B01839EB6B0E24CA24E9
+D7AAEF3D5548AC7D3F13621897B059C1D1E8E606D0883825C2B9FABD52D1A64D
+1191AAA3366215D99279CE44C8208FDA734637EB9974EFE6582C64AF9CA7D5DD
+8F61EDDCE21BFCBBEAC6FF93CD1D19FD87E8B51B4A79B95D53917374ADF55BA2
+38951140C7BF76386DB7F2A4B48D9C9CC48CD8D67A5F69E2E1774BDCD330B9B0
+F29E724D6C16023B187BD90418A2863E9CE6EEA10EEF03E54864CED48BDA77E7
+6770991453AB64FAA20C4AF8916A7924689F9B5392041AF941F72BC961B55FFB
+B121E0DBB15CEEBE239374715F379BC69880B727779AF3D0A836A570B66BD708
+4D1AD405C934AB1919D12949F86029EB3243B57895A7FC8FC475FE52E646C94E
+75949EF79868A04B15D3D6F73C632C0FFB1E471D77C597C887B6147E604C8E60
+3ECB127E5C703A2EA24E5BC1E536C9976444725B9C01C5CE171AFC9F27A5413D
+47B5702633D2CB9CCEDE07C1FB8DB7DFFB6C5ADB0EC886AF6ACF6DDE5AD311E4
+F05628E8089E866CE831B2E6A664701FB31349DB2C097009467600B700AEF2E5
+86A814E216BC6682BE3D680606DD8C4E422596DA48E6BBFF8D71042369666DA0
+A3DEACB01F111D16498E04A27DC854A35856246DFBD0136423DDAA82A33573F8
+B6160ACE2DD989918FB190659E906FB7F36C358AFB1CEE96BBFB40E45E7F2D42
+6F390568F34D865FD7A3289B2E8A618D6B6F9DAA0AD507852A02227410160C10
+201A63D49CE82468FC25868BBE9CAC85E1E2DAF59F336DEE050F50DBEA4F231A
+05A58C820CBB40B72572AF6AB7A2110A12DBEC88E1261968944E765216ED294D
+4DDA5DC13416E091902CB9E7C6F7EFD7585E1C46CB1196085B6C92E3D912C95B
+B41EDA9EB744F0ADADFA66137341CA4379CCC5BC45B8DEAB61603321742C4946
+E54248E968B791712426D530B66805BE3453A9B433768CB5ABC4777F52D98794
+ED837406F5D2CC0A32DE21E0F7E56C3A7FFBF1D42A31AAAB570D257964391E38
+ACF15FCAF18F5387391B7FDA798AF5EC3EE621D6DF52617C6BC4886D3A4D0687
+5D90967B80C70633888B9DDCAD00B96940ECF11DD3968DBB0CF51AB676E634CA
+C4DBC91E56E6FE902CA371714ABA59EA43649686D9F5E596B93C7CA5400BD6A3
+D699B492DCE1920E5FA137B91FE84FC5EDB30865D6ACABC67C6DFC63641315D0
+4E5B0DAB6E81D6B4C8447F3B9B1DA280E16BB499FD72838A987E5D34ADD1CCA9
+31E5D70754DB9A61CEE1710705668305E38C3695293D10329E756CEAF0F25363
+2E45A0439FF84B05775A497C69F1A6CAE685C0A2D56980E29F982CE62D59F1B6
+1C53B10657FB5D5419825B14C2F192C0E639592086863AC10B168E0BBAB3788D
+59B870DA039B45FFC6FF8EA009A751C5CE03E8409F6D94881CA60393D4135198
+6ACF4627420DCA2F0ACA
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+cleartomark
+%%EndFont 
+%%BeginFont: CMTI7
+%!PS-AdobeFont-1.1: CMTI7 1.0
+%%CreationDate: 1991 Aug 18 21:07:18
+% Copyright (C) 1997 American Mathematical Society. All Rights Reserved.
+11 dict begin
+/FontInfo 7 dict dup begin
+/version (1.0) readonly def
+/Notice (Copyright (C) 1997 American Mathematical Society. All Rights Reserved) readonly def
+/FullName (CMTI7) readonly def
+/FamilyName (Computer Modern) readonly def
+/Weight (Medium) readonly def
+/ItalicAngle -14.04 def
+/isFixedPitch false def
+end readonly def
+/FontName /CMTI7 def
+/PaintType 0 def
+/FontType 1 def
+/FontMatrix [0.001 0 0 0.001 0 0] readonly def
+/Encoding 256 array
+0 1 255 {1 index exch /.notdef put} for
+dup 0 /.notdef put
+readonly def
+/FontBBox{-27 -250 1268 750}readonly def
+/UniqueID 5000825 def
+currentdict end
+currentfile eexec
+D9D66F633B846A97B686A97E45A3D0AA0529731C99A784CCBE85B4993B2EEBDE
+3B12D472B7CF54651EF21185116A69AB1096ED4BAD2F646635E019B6417CC77B
+532F85D811C70D1429A19A5307EF63EB5C5E02C89FC6C20F6D9D89E7D91FE470
+B72BEFDA23F5DF76BE05AF4CE93137A219ED8A04A9D7D6FDF37E6B7FCDE0D90B
+986423E5960A5D9FBB4C956556E8DF90CBFAEC476FA36FD9A5C8175C9AF513FE
+D919C2DDD26BDC0D99398B9F4D03D77639DF1232A4D6233A9CAF69B151DFD33F
+C0962CCA6FACCEA6B71BEEF7C056FBD376F2F0D0BD6BE0A0A8259139B28B99C6
+25119B8C60FF7BA002476930DFDC2F6B1B5A80F1C0E544A22E3F0FB2FEAB64B6
+A509B61E1AB96121FBF7F2BC27CDE5B4961048FC2169C8DB745FCC7AF0EED507
+284038B15CE53E69AA22CA76C2A208F6AD8614CD500D479A5E0FD25E7BB14C7F
+C47C503E4CC38975CB0A8F7E109665FB69EBAE6EB68B2D6FA3C967D5BDE7830E
+9CE6F13DFAEBC852DF1D7D0CDD33DD4D5CD6D94DD8AE0D48AB638013CF75A25C
+04FDEA8775EC52A13AF40FA41F7354624D917EE620318C702237AF8C0E1FFA02
+127F862D4DFD0A56774235A881AFBB8F7F4BCB33811C581CFF38462F669B7F97
+1F97AC09373B8F9B7E653013AF8170613E8D7E17235A893BE296A0CD2096B71F
+16778388993EDF1B003EBCE23DD02949CBFAAAB5D9F6A08178BFB8ED1043FC1B
+0B90D9AFC27B19783740E8DDE0E5E01D116A8CB083C721FBB8EBF71018A9570E
+78590CD831116BC0FDA4229F79A581874FC3A1F108A4FCA80CE27FA54A2A7505
+5BDB3D52E2595512837732322FB5BBE459C0205EB38439E34A39544F0A1567C6
+F29FBB7CF931708C8F92786CCBCBB443D54462B3B4B7BD38E90D325EBC31BA05
+FB79C04C716319BB89139C80B8AC69378A13AB1A14B3E5D1EA15CB5936D07912
+F4BECD821DA4B42857AD100F76F457321157D8552D351A76D3C4CDACA112DD1B
+17A8E6AE4B2506AFCABE4B1A4E16495D363BFD4C8D85C255A2E1DAE06D5E7837
+3124D9AAF134A6FAFED3D47621376F2A305A4C116A09BB5F7230F12486D1E6CF
+30B0CB5C4DCDE4313A20E0D99622392924BAB6E832224FDECE1467AB597594AF
+A0C3E758C79234822194FC1DC5BB11D41CD7629039C52CF1C459C93FF8DB54C3
+5CCF78C7B9610448B1202B39BE32DAC587932F2FDB597D61F51F873A3548C816
+C8F85DCFE5A0326AF38A1D4819ADD325A3D68D46676AC0335543383C3595FEB5
+ED86D752BAE5BB7A8B1317B1DE006BB89A8A040DB8B4D184ABDC39A346FB6B47
+919474556D81201DB7E87AA3034926C54202E9A54476589B87C5823CE2748618
+DFC0D438D2AF3E702448E03BA8720F15B903E4F13A0DE1CDDD38882D5DC0A6F4
+DD388805DA4535206395AFECF36083BB1F201143EADAE5345113512B8EDC731D
+5F5EFD4770B0D8D1C5CD8E57BE298C0D43CE98891468ABEE99ADDC0BB53E3BB4
+FE957A2C42412E823781D3EB01FD52AFECC954B731EE9ABB1197F5F42B3C3F4F
+35F026454D8784EC7C7174DD943B8AD4B7A37107C1D20C7D1967192C15EDFBD7
+081DCA16A4279C0D89FE51FED3A1401C401AE6829BB73CEEC403D914AA2B221C
+76EC05F6D4012F3DA668FF96984D3312A14FBFA4133580B8622AD737D617153A
+43FD9EE599EF153BAC763538AF81B2E3C0C8A65AC2BA144CF370A8981126349A
+BD308F592A3B37560ABB1A0874CB0762BDB906D619E5F604E731C447437D10D7
+75313806F024CB0200D988B9696C2F23B5D1019A9DD5B63432E24C474657BF48
+347321FC761427E90AE9E8129047989A6C2C35C45916C2A16DDE232D1046FDA6
+237FAA51878C85E93C18A5BDBB35BE941BB5A86C35AB749AEDE45D916D553461
+D11DDAEF28B97100D71A8673DB30BCB9B1C79AB97FB5A3E0ACBE09197300116F
+44DED4497603DE0CF15F9140FC04E19AD1ED0C33499D7FA9C20D601FE1CDF2BD
+0FC938D5A30BBDCDE46F74EF8A71272400D65FD22B915C904855B27A568E02B9
+753CBB465A6B1B4108546B345CD265AF0146FF77965FA8DC294C7DC21C0766D5
+1D664C796748BEF8B0C9942E47A5C80B995D821F9D718B9E07796DEAF4BA1A32
+A4CD6AD03A39B461A627A5A9A3F3339ABF108C208748F33F0CC92F0144142A87
+FD1DFD32E125B582FA922B23589396AA4A6BC44E377B630BECAA63FB7B5EFA5C
+1CEB0D8F97AF7EF6D83AC16AA1C7FEA3815EE90F376DAE0F1C3214A444CE2DAB
+251526096F157E7525DA8A36AB1AF12A2F69508DF9E39CFF715F7720A33ED61C
+CFE01319C8C5CC7D92465E3B18A9B079E492649396CE5B5EDB1440026B5827EE
+7EF8ABD2DE783B06DE4F0A5BC4007CF234ED10783351693B34E0B58D43D02140
+DDE6BF931527246A0D97796CE363277F03BA01841A4573C752015740860678ED
+E493CE9B160FA5158F23C9630AE6C8C5B12FCF988CAFA5A0395E9B9D1FADE948
+2BAB9DE627618133B5368C09FF8CCC57D91FA0C16D9D3AFA578E196D27F66BC7
+0A38959C9807D21B3FF7407F35CAF877A05847C6E30C31B6633EC87CB803D952
+1BDD1D6A1C76EA3EE6B979C259508BA8DD7ABA1D5BB8304C4967647FE0DE283E
+57CA8E5AA7FDAB5F43937E22B4326A73E05FBFF30C997B2BD2FF3C8A2CECFE2E
+4EC32C51C39CDE451103D9C498E8B96C117CE6C8CE62F1AC4D80B9D13CDF6EDC
+A487FA8017586C5CB88EA939DD8D8AE98E08C4BCD968075F4DC531587E6F4D63
+BB4C2CA7BD784C82372372F4A5B0A5A8B3A3D9BC1D80294B7F1277F8D3D3AF2B
+92E98DF65BD6A768E6A5C16DCE09BD904271AFAA857A6DC605FB9F7CA6E09E1C
+0AA659C8E1F2914319038439A535D4B5F3906290C2F729C6B54AB412980BCA2A
+8359782BDC4A35CA66AD0CDF120EAC9481E85AA750ADA64605E9B8CD0F7C6E8D
+08884B12C2B14EEDD4D1B0C64171ECA6DBEB0D97A6E97998CD492B34398A9B3A
+53A57050FECC18213984D1FBD9F587017E4142C0D8FA355081E57AE1FB658631
+D14BC703A55B267D8850DCBC16F81DD68838605C8BFD428C2E2BE43B834B763F
+850C9C4E7A37463C67CB7188C23B9940C0A9A6AA325B6D616B83A4A18EC20C9B
+A168A29340A753A56CFDA7856CC565C4D3D519899019DD1756C3430C6F202602
+ED8C11AE1E290D509F1A1A58DDE8ECDDE7874501D984F65830F7FF205462A8AF
+C92FD3A1A1D7AEF39D00DCD97DAF43FC734906830C62D4440728AB8B68FD3EC7
+A6F638989CF025A84DF040580D6D79175BCCA30FB3D7F8EBF63FEDA8C39ADC5F
+39852343AD819B60EC80F86DBF892CBB5D8F0ECC8BE7E1692729BFF8AD8C56BB
+A8524E8A256F078A57532EE0E6EB5142A41CFC08A25912BF3C5F855042F1F8B7
+20647F1F1564AC73B36FEC975538E3FB075BAD00BCD796E8E8D10050CA2CA6CD
+42A65BDA8D4AA932C1E5D5CE78B182DD855B9484E28ECC6619679B7E83C8BB64
+8FCE13DCF17BD5A2FF5163807C902857ADAC8475334666C107BFB282F4BFE3F4
+66678C9B4E9D1EB22AE3B01D433B43EB5AE069513F6A02B798AE5A652E61D6C8
+AFFE819E2F108EAC9BE8AA1E110BCF9A9DC11ADC548B4CEFA1D3A8B0534FD929
+E5D9A168F686ADFBD6AED74EAA271DDEE0D2B9949684310267F862EFF43DBE79
+16105F3AA2E808F236163E42A0246CE477BDE07CE695416EF8601B6AADF46B09
+9D1FF32FC3D571AEE121B7F8C1441FACEF62F075974D0B9EF41642A7DA024795
+63A554682B3D14EA132BACB567EE46E0BA32D70E1E889AA874FD878B159E4509
+07C0FF3EBD0E1ECEDCD8030DD05F5406586BE80CAAA2ADEDC8F61658ACC8DF69
+486E4AE48B674118BADF84F1F6B165E314CF34A58D77D368FE14D0BACA72446E
+718DCCEB30632FF2ED3DE0805ECF30F45E72E1379A160494C928A07ADF875EB8
+3DA1333871DE3CEB7B9B29D3CA6F117C8D65C4D3B5602FC12E5D56B035E016B0
+931238CC56D6B126DB7673E62B4AA510E1055F42CAFED2C235CBAA7B1C6B74C0
+7E0310A1594569A00F72ACF4984B275D1E3CF467A86F83F2B1F26C43B9A5E286
+694A1E2990F7A177B22862A7692E3A5A9B428EB2BEB469F0CFFB5772CE4D7509
+C4A15D4728E12C1F2C62C953867E5D23A098A7C7306E001EDA45426B2A3B4491
+D81486DE8B08B73840AF388E6BC8E0128C92181D33ECB441040BD77782DD79E4
+8976D00D3044FA16ED38B9F07286E27AC60C985F1A0FED0AC665AD0DA7CCE32A
+ED7D5DF233B03C8C0FB65720EEC6374C1E974DA5ABEE675241D3CE7218844BE4
+3E31CCFD577FFEE4D5905D8CC8337FA2E80AA478A235F6E3F2BBEDE6547CD864
+946B916FAA0296FE5DC9593AA55B1489BF7AABD8A88DB4897E75F15D694ACE52
+44AE0A0E9F5966FDF1F44A6E55D4E1FD9B29A62C1937BEEFD33F77205A6F4546
+70CA44E03BB37A2B6E41253DF1E556494E05316ED622ACF1F9FAFFB644A9F9CB
+3DE9D2C210FC9DD340592F08BC144C13CC766D6A926CD4DB139D5245161784D2
+602648F8B90D45A01F3EEB9F2895F044FF1E03B285CA0181CB4D6E6EEC1D6445
+763C5E633D14657AED582E22AAD0C4A270D07F9EF8412C30DBFDA747FC82970E
+B5D14DE02DA7085238CAB5F0C412488EE05DD92D1C29F59C7052E06DE3A948E0
+7CF13596FAE26983D1E4E8B8527DFADDD0640F2818C73E5C61FF7D51049B6CFE
+3604DD2C269D913DF2B398ABAC6B87A01EB4E55085D44FBFB9A9BD21C7EC6C95
+97EC6877676179E4FA8272833E191645E6C21348252B5912109DAB33C9E2CC0B
+CF122C7939CA99E3FF486E76F0F7AE5538504882D980F8C4796BEAB3B9FE069C
+04373C0D7D414A0DAE9B23998585ABE7817450DE4E3383CD871F24D2DBE624E7
+5C20D3A9BACC2B9A6D6D2B69D01CA7062E5F175178717E09EF00B280312994A0
+2FBCC65A93F1B0C06C612DA32D0D952FEC0C481F447C7380164074C1CC84C5A9
+41C60A5F0F27274EC7ACF987E1438F500FA515ABCF19232E5F7F8880D2F35E93
+B33590DCDBBE8EDC8D4D1C7FF4231A887A2EAE8DBBD674089060AC00597C8ABF
+638740FCDCEBFBDF5A393F22FF4E5844DFC86E77A38EED7624A076307D6F7ECB
+C86A0092E16EC4E93A170B64AC545EB7989ED0CF7E08CFAE099E7DCC11CFA8CD
+9F3450FD3D5C9901904192EEEED704259B903489D9B32945928ED8DA31B0FB40
+0BE13199EA497404358115AD4F59E50194810ED2BB92AA31695E9681E2532740
+D0E6262A9F9AFC9982BE58703ADBC85A1FC8BE2AD8455DE729881BD7C43ACF64
+BAD29E3F3E4D45CBD2BAC2F0B363FAB521F5FB1529BBCCC581FA0E33CF97A6A2
+6630EC40E66DAE94833891831DB64F3E482ACAE894CBBFD167F16E5B279D8944
+7354FCE9096D6F7EB3BB38824AE1EE23EB21899391D65F35E940F2140CD61AE6
+B1B867BD7CB5BE75ABBC9D062734974862034CF635850227BD8FA9AB28225F41
+00632E60CF3A85BE501F1760B3FD40C13EE23B148BDA49C5B4C14FD61D20918B
+3061BAA989D77E4165B8D63AB7EEB32C9E31209CFE3634C49C892A9BF75CEF35
+66B773B3E9E1A530872C2785786C86700D63BECBB277B6762C99FA8DDFFA0D9A
+FEE04A85111A7799748D72875991559731F97B106AA7E9CF0F58DC84AAF52AF7
+3F8B28892E8214C59C3FB0468C4E0779FCB8A30E3F294986D8E8254DBD26421A
+8D1A700F63BA8D6EA76D71A2C2E48CAF4CB2D3E74B3A2FBC55996215D3F0EB99
+8309DED2143EB45E3F07DB6297A70B3D503AADBE5FA18DD1486A316E5ED6DA4F
+C4724C1A499D00606B923FFB15817DE2BA9A099AA08EF8CC39A660949308C455
+C9AE508082C5B5E92735D08C038C14169E8DE29EDD996B361C3866A1572C7687
+6C98154DB1AF43435EADB3A9A86AE5DE683B86C9CCCF378BCF7860DB8594361D
+522579D5442AAE935425909C2A49EF4C9CFD8676F5558D043B8200AB7314EF30
+F8920E418511D928D310CB74D4F16C837B548FF0F114A540AF529FB838C607FF
+D180113A49FD8A90FA7CB301F77E850A7651D9D8C427C41CEFB4D9527B56F038
+650E1CC3963DB53C259E9C4007316703CE3BA4A34E87C2CF3E938F3299DD7DD9
+0FE1C52FEF98E3383D088ED7A19F375BA643E7C614DCB28CB320CD547FB79103
+CF6BE3550ED30DB99F28D1AE372B90F37747C00C743CE1C51A4357AAD0AA4AD1
+428D52148C460A8E1E99EC76BBE2BB3F7A69794D52A62D908A8945E3050BADFA
+5D63699CCFCB024645CCE3479E3A9C7428DE4D171CED7D4B2EF5AC96B0279A6E
+AD6F867FD418D232315E870BEBE2EA7ECF8CC5D2B3F5DC55F08AA9192C9B0CE6
+ECE12732A9008398785423A1F4BAABAAD71F2403F33A1A7A14FE2570B7431767
+186BED4BD72C88B3E432DE22E5846410BDCC2B05ED3F23672CACC1FCD40BA3FE
+252898D5D033C7C101ADC1D850836E4A2D39B2D3FAB1716AC7E3B42D51317383
+91E68D7BCF5F39CA70589AE7907DC7A25A88703926E2D0A4A73EB52B7EBDA39A
+3AF0369A21AF28F5D05B2B2399D7A68A329E0BD2C15ED1F8B23993E832B5DDA2
+44E9CEA37FC6B5EDB36B5E9BE4224E2EB74AFBD8BDFE807B307CC961B5F837A6
+7CFB393A80F3AB411EEC2EB3E8BF24BB727555FC186B53120C28E80CA972364E
+50ECB6BB53F4DCBEE120183ECCB8DE6D3428D0697DB302E9C334DCF142ADBD97
+A1D426CA9E8C2B36A35E698D9C90BDFE9D9F99DE1496F74213AC4610BBF5DBC7
+07A0ADD2CE35583F66C1EA0FF3DD3E34F61E01D0B67B3310AD9AD094F1755EFD
+8DC9C5AFA484BA744A7AABEC231E48FE92CFC9038CBEA076F894FBA0889FF213
+8B44F92D15E0D0265C9D69CB84D3641F269D364A77DE6C4F5E9C87ADE56F70F9
+68265E9D141ABD70C0C06ED6CA12880B9F949A64CF1C544B203899E53FC8A56E
+9AEE652F679B1FAF9363C54E636D4A28F1C3C4563FE385FA489C12AB17831F79
+976DBAD0DEB6805CB66A4DE571825F992C4E097D2CC27F9ABC6F16A92EF86489
+F9AB6454FDF68CFE08157386A3F2287CA3806FA024AB3DA0A2E77141279E5E09
+63C920F86E8D8B904456FFE4E81E155D89C196F5EFC05F3F27262A54952209CC
+E2F8F6E6084E1DAB131EF495D3C2DABC1E40CC627BD181C65C720F57128E1EED
+0240D374C15A5BF653C7E74C5CC959069323C99A7E09DBFD6538F10A0895FCCE
+2A0F92939D785EA3A65EED01619B736C041BAEA67462F5569ADA9E2FEFC27457
+B0909A40293F741A1FAB9383F3C607676D17A78439DB3318D7F18DAFA3AE1C86
+20AF154054D59A8680EFAC7EBE1802496A41D705F7816CAE1F93DFAC62EA0DF1
+2BD6662056EAA5242032C7CA9006D5EF1C3FCA04C287762BF68B3C262E4B4E3B
+A2499E826889E96C2C8F94E390BF6BACD6EE85CA889A2E26F6F67C81E36742EF
+8122FCF4AD05E3D8630E6D7373BC512B3F4E02F0DCA6DB2E829DDC231006181F
+4453D430E54861171AC270A5CE5D4DC96E14BEB0478379D4B476E246B4AFAC4A
+F95DC57B4BFAC8663627CA89BC6A27E962B72DA6CE5AD446369868F2D77CB9CD
+69DBE537255E28703DDE2E7A178C73FBB6D9A3BE322A582149DB1C2726663BC0
+2FC16B367E9EC902A48CCBA8FB5FE840B424710670D5FE6C112F5BDD5C741DBB
+433D31EBAC70BA1FED923C6C5EDCB34D867963CCFE813CEBB07EEF37103EB388
+7CE4AC078ECFA8F09D55CF414448655D00A890D61CB40D204CADFD1BEA7C5DB6
+B2A00765696828BE1C4AC428D9A1E62EC045E7C385385706F23EE37F70B935B4
+95E71F22C647B66FF8B378ED3148A26B041C5B432934607D4BC40D85E4AE8AB3
+14303D52BB557063AC41E6B9CC2EBE2ED937D014E5B3D514733790CC2C5D74AA
+BC05D2D99A40D79B32E57738049089E1016D9402FB14F601DDEA3033499C1522
+E3C837E8F5CA01B4413B3EE8380060DBF923A9D7DADA8F6797A921447FF8971D
+9B94B59542725D8F4AB64AAFBFAD8814A3A82E8CB5CC95179E62D538C2EBD9AA
+44548CF9A33ED474485417174FBEDF44A0478ED9ABFC05564CA262128775AE9B
+4500BCC7A58DCAC67EF70CADC88850A4883BF30957CB2A75E6A51DCF2A7A9C00
+C1F222F32020ACB6B630617F76502F8DBA50FAEAA05B25A6CA99399480EF7CCC
+85E065CF85C12296061046C61D139D29C21B2056BA2E510568FA51AB8460C75F
+75F393C2AF3ADE3CAE95340DCBEBBC3F29C9BEA6FBD1ECF091EE2580CC72FCFA
+371734B07857EE3FAB6E7732610E58D4E0CE8549EE85DD887C1ED5CE35352334
+E3FDDFF94F073E953F64BBC7DB7BF5FDAFE2EB671D8092E0651ED92C352935B7
+B4A14EC6D904EC98EA4639EF558B91C1DB9082C00460CE78166FE6EED5F1253A
+53A6C7951A04F4B12B2D17A603EDCBAA617B27742FCA807D243C3BC1BCDCAEA3
+5698390747C56C14FB222BD02432490F38E92A3205E67E1795641FC30B98C87B
+019F04E6A485AA734244D073AA021D711C0BA5112633D1B5037B6AE8AA980F11
+2F18F8FB18947A47A6EE53EDB2CF362D974E3C34CF87EA1C3AF61C04A46E38F4
+E584D0661F56D5C347B8DAFE4A234975F3BC58AD6B81E26A023B4AB2134CB98F
+9741042345F9B723CD9338786197A7FDF49A1C29A803729FDDC0E501F4AFF8B2
+933BCD7B6502295A72316508FCD0249538D5257051678256191DE8E5BB15568D
+CD117104E3979A0007C7C75E83F84975D6FFA45B7C30554DF00406C25FE5A694
+C058994FEE492132F9191A0E7C43E697AB8E7334CB70C634C569D504699CB516
+C56A19838DA978014D18F29031492224F69332B4BEADEB04ADC186AA8ACBE3AD
+4A5E4EAB1B552A1831191F8AD328D0F0CAF203472FFD5CB8879878C02AAA8FC0
+323384D9903DBA81BFA6DB94D8E42FFD0E78BA04422C841617FC25CE6EAB1A57
+8303C97AFAF85ECA316095A8031B659948129BBF8144D87A81212865593211BF
+4AC0A6AAD0593124C03E687F94397408E1B46C769BEE46CE002C83AD502530DA
+A9456BA89A0505494792F0A05FA721859176B9BF864DC223A2AE48AF225CE981
+28B82CF9013DF94324886E2E88CAFAD8E543EDECAA456608400BDD23A88ADA2F
+591FF12F7192052E87F89AD9C2AA3F733112EA17048CE05FA439BA915039C973
+D4E0F9E148ED98366312A1EEAD8C35B38C1922AB60B5926308F72D5C9F725847
+5D2FF15E440247E43AF15C143EB25F914986E394586436EBCA7B8133B2B9E0E8
+0E6E5DCC5A28054E01A342A49D0A88563837CE7C7F7E38803243E75F3DC0265E
+264243F01977E92F3E21F6FAC09184C85DE712C2DD4611DD789863B055872CDD
+02A242F0CCD3B9F48E5708F44C0F37E4B1AADCD1A85951044A769156727C66B3
+CB5A219F8BD5505C594FCEE7E54B7FED47C72788B12645C0A2D3BB0A1A20689D
+28DA737EDEEE8E5627074963862309F9F57B1E29895C4A15D22A59588F3237AD
+31539CF8164E24AE7EC8638F29336A246D5EC7E1FDB55AAA32F68EF81FEB5F16
+897046FD0584384BCA894881A20CA1BE92A556E05CE443C9C22F5164552613FC
+82AEAD26FDBDC9362E460A764D9008A1B8328F157E701AEA7F140877566C8DE0
+D2984FAD8DB46BB952FB80E416686B1F8C984EEACE633FE384C69B4F5D97A3D2
+05DD474C8FEC8466D5FA759F8758B6E8ADB3721AE9419E48DAD62C00666C696A
+E24512671B9FC15143B46AC182093D374AB313D5DF65CB5FB454254D4A1C83E5
+5172C61C715D9386547934C2A6EC67289BCAF17A1EB54800EC653FD530A25EB6
+DA95C777F54D6B0127BDC61A38CB3600AA24BAB272852725211A281798005DEA
+BF92E4EE4D66BA8A970259B0FF12D617DC2941E40D7A5EF1034DDCC8EDC33536
+E3814D2CD4DA842152EEE217A23F22FA51F54CA69A3153DBBA205A3D3BC362B9
+DB99867C504FA21C1D32B8CC6E54606422430EE837D297242BD8E8D9440B2E71
+56F5C1826F41BAA48C14B3175D98452F4E220CB03199579BD86FD763F37AB96D
+59340591F5865DC1A4CC4331A4B7287C805C76567371F3E70935B7CD4E43DCE8
+76A77A17D9DEDBBFE9336F441B8422C2FCB1CD9479B6576A64984A7EC340FAE7
+FF5DE8FF8341D8D89CEAE1280159C7596E2C1E2C080390CB50F339959217E29E
+3AA289C57E55FF44BA0A7D7BA3322CCB556845CFF3E89133F60AE6ACC0BBC541
+5028475D9B7F37FD35EC3B65DA739CDE5B3859BA020A4A04EAB8D10BF7499F05
+142FDFF93B078B4D1DE94A05CE34226F2F0AF8BAFAC12CB9DF825E4B6A21A587
+46654E7944929A1B65C545E0F43D282804D5442FE37604EFBCD99A16CD48966A
+59E8246171C4FEFACC3C277CDF2187EA1D5D1D9DD22E23E23A6B75701B107632
+D9A8B9BA5CDC36F65001546AAACDF747105C9938B02C5EF8650205209504F86B
+477FDE5C4006083D1099030A2DA1EA97C6F97FA1F4EE03E2C6D102C1C8ED988D
+923F24C1E2328F24878F5097B04FF3E699DCB2F0A81A285A3B03688CAB5E7D06
+13CB4204CA2D2C0B3E6616CC08EC487C454EA1C946CCD06A727BF3E3EF882E08
+17C41C34C22E2BF86BF301835D9629809F92695CFB57AD4DAE92B69ED6DE9CDA
+4F07C25D9D956A22C88496BB75C3DC070FCDBA34FCE48F3BCFCB58E4C296823E
+4B296AD6B5F69AABE29621DBE3C063367521531E7790A4CD94235090A5F15D97
+7B4B49F90D9EA5C42FF4B684B684C1D819F03F855D16C84E900408F22F8E688E
+FAA76A5B4168D1BC99F3D14FC16B47260C0391EFE44583D08DD7BDC7AD780619
+4C0C7DB8A918A4674CDBB02BFB42060D245CB90433101D7F2E07A4B5B9E07D44
+DE88AA4F8D29DE16B65086570D4C7309E047C2FAC90CFF29B4A9588047FFB646
+3D2FEF803B371D95610DB9E5B0887CD7612D1B50CA03C662EDBE1965077A210C
+EB83AA6415EC8C1CBB1BA08301400876484DD0D488FC31FDC0373B43EB36F7B5
+862F72445B4FAC18668F91C5258C0198C3086F66A2A70A5E23402AC119660AE5
+5D577EA5CA5096F422E39413AD6AF8A8CD31A68262E3D6AE858618BEA71A7D04
+287DDAB6016C079E2C1D4CB405D12EAED3E81A11DF38527CED83DD96163E03B9
+8E56D8552246B3EF067B77D5D1FC12EA1FA688088795219213CBB2397DDCD40A
+28B79080F4849C585ABF0490D7E06E6595708850DD6C0F2C4ECF5068D553570C
+654EB1EE782EA9FA89388A15A436507E156EC0FECCA095EB98EBC9557BD887BC
+B5EA4DA9BF1586218022759DEEE2D5BBDA30950C852D79F8590422235BA71356
+81DCB3B46F999447F86E736D4089906C46A1E7216B9AF26A1319C3E2714C59D3
+3C3BF200D72047BB80F91D53200014277232A99451FAFBD84ABB4A9B55B5FE42
+E60B2EDEAA8B5689E488703E2CBEDEAB9A6112BB4B79E20206A264DBF9D30F4B
+667B1D988278F4B7CFA5190FA60857CCBC48CF2F9DE6AA6A222BEB346EC1082C
+D198F3ED11D70CB9277C8EA109B27FD3AF6A5227384CB2DB1ECFAC7AD73C0FCC
+3B7380D17EBD76E5014703B12F597A96186C3DFCDFAAB0C7FFCCBE98D58CDE59
+4C9CC838B0EE182C84CC9F0BCC68CBE5F37F1867FAD0B7794737ECB969328541
+8CC43ED3AE0739160F4CC35E7CA39B4ACEBDAEC5D6C5B565D5185E56C6C0A92B
+0128639AE3717258A50C85E2BAA578BD1658BCFF9CC33E36C9DCE78591F8890F
+CEFB05D3BE897072675E6B70289A31D5CD1EF6F1FCE47BC1A1D3E7EAFCD9EC25
+C8B0B4C17E09E623E3E54385EAC8A8C2119E5A0063CBFDC464B1A188FFEC09B3
+DEC2AAB381F3C7CF7B7861BC016180D65DBC9A435C08DCA74F097C1B992E3EB5
+BAD53390E23C976594C00C74D5C130AFE38D02C0EBB2F970CA74F23BEB7D6A58
+77E45A964EBA39199269DF41FE6D992442FD45B5851D51A0669A831FFA49974A
+D9D1E9917F906032D5947AD68BC010D7D0649E39BE7D67AA267A8A7AF8242858
+A674339CFCEAF6493A8BA73E8F5FF49E49E336E710850F575CEA090F8F163CD8
+8E5388A2106FE9EDFB1567331ABFB0319EFA0DF00A0F7AE02B53352315911AC8
+540C5D1AED6A33B6B1FE55D31121677DB6ED6202DF9F850AABBB453736D5E623
+58A8EEF439F43B9C95C7D10E592A7AAD99FB2F8DDA1EE1D4212F3DC71D4530BD
+CB30C81E576479AA230DD2DDA1FDA01458E68E62F09FDF644AF203049811C156
+C1827D649102CB9DA52A097C58F4D2EB6C293075A1DFBF61475D55AF7C0CDBB5
+255F000691D87CE589E6F48B6893DAF712465EB41B2A5953D59035B9D4239C4C
+5D50ACB50C95BFA19E89A39D28B0FD9069E5303E7A18CD9BF069F9B5DB60D2AA
+B77AE9ABE7015AF4344EE5DDF96FC240E2EAFA734DB1879E83EC80888BF10F36
+561075744F22E619618449BC37C728CA3246FD88F68E01153A3C1D75764FCF75
+CE525F4111CB9DCAEB118FD2728F82DBE3398F974DAE282AFDA736A3FC18D365
+22A97F16504963A42FB5C695DA76E4DEC01FE701E6403F6A5C2FF235DBE4FC16
+553B6659E1A4ED87B5A92EC9BDAED74A4102A2D4AF7F78912CFA73B6B41237E1
+41BFF91611C81BE8CFF0448801D9A51385F5BE4A831C10E4520F129ACCFB9DB7
+922EAF79C01A989A339635189BBFFC7FA31442474D1DF21F4F6D07FC7134D5E3
+F48BA3242FC8C85E7176140D9362B9C85D501C866C01509C3779C0D04DEDB8C7
+2DEE31FE55FE7C63D3F7C9EBA94D004E1E64A3EC190453DDD73E108612A8DF51
+E3B5CA6F5BBEBC6D0F7800B50075F350E0833C0B4FA2DF5113AE27A427738794
+738AE13EACE3FE75ECF57F09F112A87FF3A65C3979FE553173CE509134CE0365
+4FA4E52AA00223593812CA8035E3F121E14827CF8313775C8C0CA56E6767651F
+5D1DC2F2CE6FDA7A4BAA7D9C677A32ED08404EC8DF10D9206B843D49F3C054DB
+A59B4BC445D224A192447C72CF88394E526A1B46E07015DCB0CC50E11B01806F
+FD7DAD4C647729A20229821141040155D0DF3DE39819CA3D7A89B22B6CAA179B
+C8F123BCA43C3185CB1244CC8054FA8BE516AD69CE370F426E7D07E7C01BBB91
+47B862153114833F05E31EA2B5F811CF19C3D82D94F747B02C303DBEAF26000F
+047CBA4EEE22DE351EE4B2312F5F876E5E490409A97E324F816048881C3574ED
+854971E1D8592B2683916280D2E4A63CBE65D42C1C16FE0092FC48B5DDC3444D
+D0608FDB3AC3A10FF64EDFC4BCB9736438B7556B7AE0BE3C9A6992F65B210E28
+924E5E0B1181E8DC9C3E6FD2C69A008A2149ABF704670A19A5B0590ED1AF1D96
+FBADD9AC2FCBD132DB80493BD9C0ABF2D6D1BEEED7C0B0953FD514E9CFF4B37C
+A0DA66F2300846455C2A95E58CB3695CA689792C83E6C5029FEE18089DA8304D
+8C9156D97E75F0CDBBB7418D59A94EB328068CAFF1E682991C8120D9E58CB4A5
+069912EFA4CCC7BABC3D2603F61B5D7C0AAC83D78CB8EDBD60804C8C5554D4BD
+CA80D6CBC2C6B5DFE352CA82A6FE4306CE4C2ACA85D1C7302FF60231F7274B36
+67EBD7D8341DAE2B695945AA1325205FD57582B47EE6D5153F61FEB9D6D10DC6
+BA97C37624CAE6BCE9BF5E82A1353D394931563068B0912DF116E328B3A504DB
+997A63493817C48AFF64B04AF4053CD637B4A59EBB6DFBBADFA3F63489C1D90D
+487E1D7E48DA5F2AC826581DE1F74694757DD5697DE594B0EE97702DB50D3C94
+1B5788C88838217F24C7187AA6194017AE5FD35EB3128B6F0A9064FC40AD2B1F
+2B6199D057A8117A2B23F223D5AC6C7B260927871E9E0E70814366C464534DE6
+78C0175FEA85BDC9F910394CC7143D08E2A674A300286C7AAC40C5143AF6F942
+7F477707FD5D3AA10B4926B09E24A941C3DCE2821279CBDA29A6F0B462040F61
+373D4728F2D9836376266853C793586F24DDBE7F98A06F36AA42019B3B1851EB
+2EBD913BBD4FC743D8AA3D07CC2A14FC8325588F9486E9DEAAB726A412198057
+36AE01457C95FDF3F8AD0169CA6003487D68940F0DA63E9C8FC7183EFF2B6986
+35D6A4D5B0B8F2FBC2060AEA3DB372F2DB1C8F9E1C86287FD646284ACAF733CB
+373150720736FE7521E0C3EB09A15F216E8D2A140F661DF8127E3C1E7BECADE0
+EED0F388803A320430814E90F0AEAC03A60A3569B687699707D46BEF4AC0B1E9
+BA7E8928BE82C7EA07DE80FE7B70519AF88BFD7F7AF4AEC32057B8829CBD521B
+A6A60012BE5E2A67410BAD2B5F8769386E42EB8CDDC9BA1FB82D5967E005FE4E
+2A86A6CE4A078BC037CC3AE09A749CDD8FFB21621E4CDEF54484B72F9E007D72
+5EC48F364AA3DC307E33EBB99AE1DEC9F40C521E4FAA61FD2174D53D0304A49A
+68D0FEBBA84222AB2F2C0C9056789E97E33BDA1968126CC83B8C8F65335F8181
+CBFAA2FADEBA42460DFE55CC0A106E59F1A5A632C571D9AE2954F3AA2084535E
+08F48DB644F0DDA42D81AC0D8E18034C524E3AD759FC0BA9C4ED68050CB49351
+DBA1A706657F445AD554D05BE95FE1605A7F4DED7283DA160C2A1B10CB650885
+7507C59056A6A455733BC09E3129F3A4B64D9E517DD790FD0960FD85A913493E
+B7D0F6E3DA5FDA873FBA56D58E3F7DDD7980FDA2FE8373F509B3201DB5337FA3
+2066E50132E320088CC4E423DE2E0A8419180F6273D3010022112F44059395D7
+1C67EB4AA2C7116F6978E292612E61C57E470A359738E6E9A73EDC8E5040A419
+E646846894DCE7156C069004A0DFD76AD0D285DFEF61BFE6AFC055EC056BE6E0
+D7DD146B02A39C844831D29F477758044F1F7F97CB91D3494C807B1444BDA3CA
+A3D671A21C7AC520B24ECD698FA17B00BE2FFDB108BE79EF37F71423B7037016
+15F38BCD59CBB94417D44724C9364F49471B30C352B59F1387F1F3CEA723BFAC
+6ECC8A760B8EA38EF85674F9F70B54A46609638536B346ACFE8040209981C9C7
+8A050CBD2982A6F6D5C11014E677E69C3302D1E2E53DDB3C225ABD02E44375A6
+091D9C7C21AA5027E9EF6526A20D89EC3E151DFAF851E6B79967FFBC7C91B338
+11B33CD675D28DC4ED3E21CEA1D6B7F5925B923EF18FE786213F9580D2536EF5
+B3D2A7134E435EE280E50970115D89E0B8F23126E03456777D2690B1F5247E31
+72ACB9B5A6A81A0D8E1097745AB7AAAFDCA48B1F2595A3450B07C0721F654123
+1ACB6A3B881840B05AA8B53FE9E4C22C64EAB9292CDADF184ED02D0D74277A7C
+1826F944ADAB9C7F67DD4F852975DEED5E0FA5476C54D3A17ACBFB4861EB2B3B
+9CC6BB76934B92D0060285418EEF7B9E9EE0AA40E28639922B1A12CA799FF60B
+D4580564FD72EE3FF9EB939768A5B0B303EFAEA529D219E7A65BD791C53C3A6D
+38C067272D6FDBA352BEB199821AEEED23D58651642DB679A731117AC4FF15B3
+53ECDA11B3BB26D12F3DFAF6BB08D2A2AF3DEBD10F3801A2955774A3F77E9A0D
+7591F0E13B8F2114EA9F0F5C7C598DF9CC48E869D0B0632B10944522E03E7CF9
+9BF61301B681A8F86108C7F4EEFCFA1BCB3AB658D78F4207B1A36C81B8AA9E8A
+D1E32A5F6C2E9018858D29E951F0F3322D410BBB9E7535CF2AA5A247F90E05AE
+0995AE0E7B0B6648B53A4D2453F835AD90F0576D30C4B3E26A1B03B7EA02FD25
+D5643567089EE5BA8AEB8FE5DDA589A22CCD5A4BD7166D613D70F8CE226FBA6B
+AA9A1D877E0C20B5D7F3AB150A2EC8759A219035A052C32DD13C8E2A8CA99984
+50F80AEC967ACFBE860A66743D96291F70CDAA2520278B41712F89AD608E5278
+95C90E787E0D6394FD6F97A3D1851CE1D918A0F040427C59A0EE0F924411E793
+793B9191969DE297A6B1DDD09E65E71F2679B7A205F791488ABDCB46ADB4D682
+A3952A602017AD0D06EC6E8E3965BB75EADA0C1740E01239E3CCED1E22F5A950
+903E4E0756F7715A71783A5E179F4ED1130D388C8BF2AF8E9275719A33167583
+098F32AC211B66B9E0F02B5159A5658AAB2840E0FF4452FDDC2B80B6A123A71B
+9168018FDD813D5FE3F9CBB879DD7EA19423D46BD7E3CD6CC9934D781C637C8D
+8C83E11C7E178098722EC6ECB3E1AF8CA8A60FBA06F4433BD321702115A859EE
+B2033D5F375C6A869D54267967756B46BE748EC49BBF2341ED15D9229131A54F
+37D61678FE4974AF05F09B80760B861364F2C5ED6C9D2B3B9520DCD714344C25
+C7C7AEEB390EF3CA3113AD25181FA4DF949BB00A0591E05580B63A5ABE219218
+503783A754B770C42C7019C311CB38A54A5CF6E3BA93EC9E3C21F7E1B50AD8ED
+D07564D15BFDEA967E4325CBF8A5B93A8CF8FE500DD0DE390F857061761291A3
+3452DBD2AAEFDB3529387E6D6A46D77C0F014A8F46A05B16747F7D09C088A9CC
+410555D16FAF8313EF0D596790B9E91FEA000658A388F54CF149EFFAE0F7C385
+653B90EEFDE0E0972CCC2E580992AD119754A1FF1BBD36DE14EA6409CE90CC8C
+2EF8953862639E30F89826A36C05649ADBC80FB909499B8100530985F08227EF
+E222669BD36D7A710EF93552378275CB9A8E39CC87086B0CB071F03E6AB49CFA
+7E21A3839AF7184C1F2042FC5F6B1EEEDDFF5E42FE607219A159366975341362
+8E104377ECB74C6FCF74497C0C45058702B069C489CECD8727F83889AA9958F1
+5297DBF718164F394CA3429A401C9AE2D51D50A6A9B7884CBC9C04185DA932BF
+D59F1DE66717E9DC275CD061DA8408A348817F01DDE66C67BDDA97D875590971
+949FAFE7FE19E26CB8838B5484A09618E42482D988E33BBA874F5BA302B9BC7B
+29B349D0FB4D302996B75CE20BFC11EBECB0F5750A9CD22F48088DC02D807871
+828FA4B3DC1D555F7358F86D482D7F01FC029F3E0167488AD93E593AEF08E95F
+4B1A667D532F7967EB1E6B4D7BB6D3DA1F9368425BEE6105EEC4362292F79017
+73A0EA87FDC452DF8FE33725D75870A259F7301C42B5ECBF457F3EB3DE68AF55
+DAD0232F997D82BE197CB7B7B6E291245DFDC3F32775583BB7E3C9141FBFED22
+13618567945DFF6CAC105F727E2AF85FE97E838648C376E979B558B9496E8CE5
+AE2C9D70D71196544BCB1B26A8C27E9508A89629C1DC55072BFED4CC81931D44
+86109800382A590E94258EAE32496FA8CAC52C3EA2BBB372756BE32DFD6DBFA9
+2F1041FF7700CAA8194E41B56F0FB11659BDC4D3BB36A9BD78B0DB1C61BA8436
+33167A09CD9D0FC0EC21CC1E9AD131DAF852DCE50819AA2B0A27FE0D85E04EC0
+90CB84F54BDDCA8FDCA1FEDC2E595FBC00BAFFF518E77900D8536600B96C95BC
+5020C19C2370C0EAC9BC169AD78AC213D629D3E340D722F21E5A6DA37E1E2AAE
+24395EC85689B2C1EABA9495A678FFC28CEABA8AA9429299463B6C75CC8EB601
+4F59B64FBBF725047823DDDDFBB218D91CF102B1957F62A67D40FE11FCF18132
+0FA215DEEDCE7188FD6C935AAAC6801FC38501D13FB8F0DFA1CFC0B1E56003A5
+39B85AE95E3A8736EBF863AA899CBE623E87020A03443D96617646584796F599
+942C7091C3DEBA3ADAAB9F503BC03586FEC894DD4434D814193C66EF096EAD30
+76D077C875F9184259AA75A3E732EE84B612FE6E018FDE3860FE2B32CFBB3A96
+1F5EBB4ED7B03F00557EB1048129F38B7168D0A0F6B0A82FDEC146039D9A5423
+312FD6C12B30CDCF7A296C409AE321B8370D2D007A3F8E53A5C8B39F28F1C085
+CE04F869C25B0F1BDAB484A6BD45EC64AF47789061699C64712FBA42653B05C2
+1925C3816FE275EE3E624891947BBBC334AF05B90E6AA158ACD2B9314C9448D1
+801491622E6F79F5EBA81DABBB5F94F09CEAA11EE09B6B0DA26856068B985DAD
+EC8F567134AB7DF0405593559A333FD72AF4A97968F36B3E932950A5D5C6CBA0
+83DECC2A6751AB4C531C96079768A77E87C8192FF90D98EAF50657AEF3EC6AEC
+B57534EF0E1A5EBEA22C933B75A931144D5EF67C41E90857AB45184309B9CBDB
+90774510EBE2379C5D69160D1D9E9965EA1E55BC7CEF3F8AFB431876A7A7EB34
+40BF01925E9EF0CF4089D78427722FFD3B150E8848D1124A1F40B2907806F629
+B138875E66C328EDFF33DCF75565F25245515E574F6B21B0F461B5E73D250B4C
+D84447615FFE0E1043E259BB48DD107BA9F886025CCEFAD2FCED90D0AAAFD7DE
+4AFB4CCD920D23C33418C3A5D7AB09117CD31CF5D1B0ACED830F98126C2D63DB
+AACB844D9A3DC3368499A393D67DCE1F6A804CA2E089C87E287DDDB13F2D6D0E
+A755F3FE0B659B25E62781A0FA899BC048CEF17EF9919A5D202C4CE3373FBD7F
+C82330D1AD543580CA346AFC4E9A71F24D72FA0B0EB360C62BB069C637FAB345
+952F9CF2FBA47AF1590AC8224C82BAF7064276D6145CD39FDBAA58229170F1C0
+1577B3866F049D8FF6FEF9ABD48A451554F01C9DC1315E394FB3B2D198293A59
+E8BA23F890BAD1D96438653A3C0B47E81661BEACDE02E627F39DAD008F00375B
+8A38EDB3AC3ECDAABC8330FFB053DE7EEEE28B9BB889E79C1E5A55FFC2C48D1E
+D89C16A7C9EFD32F915E51F927110D11C1BCD4E146BA08617B9FEDE41C593807
+8040A009564A52E6A4D2A2CD964B899BEE875B6EB5480EBC464C55924324626E
+97888BDB28935DA041662E697CE939A6A5D114EECC8B521146010859D3C45755
+7CC8C8D03D1E5C48135F08E01F71190393B7737A8D2BD5A55D361995F823F567
+16AEEC7385A6526DF963035F254FBEB86F072F40D0400AEB72DB6668578ECDA8
+F46C17D03BD8520BDA99192A168FEE9285D9E312E1141698739D9CA3D293932F
+11576452D56A563DECA58BBDB2ABB6DF8D72D10E417B610809BC3A12C33B370B
+87F5A0BCD197C1D10BE0352E33981AA7A97B8285A8CCD4F41B7F858B1E23499A
+A9BB2B81797D2BD5F7AACABCCD6A26A5FF59499989FDDB2983AF01ED6A6068FA
+87BA2111FACBAADB94575AF632BDD91BA76B509C5A35A08A73D1152F453DC02C
+3698EAF55DEEEB312E2D67F409EE1BDB6946A6CD192CF60208912D7BF7081A88
+F51D195B68241382A9180481B354C608AB3DC94238A2CBF4C5E7647F4104D204
+14B94CCB28B1CD86B38DF1E2FE5077A5B5EC4BD4DE6DF1856B35F0CCDDF7B900
+6D0051440AA76F42B4E26BFC02AD57D263BF0808F3E77AE27D6830BF51688DD4
+F820357376C26D887E8B8F15E3AE138DF0BDB34C14873E7A1553640CB71E44D6
+1CFEA55FD0A941DB62D1E6A61F15776883AE6F1EB59728E310EBC60833295284
+B1B2783C240ABA54C6FE79832B22908D1AC3DB00E3BE464C0FEA31B4D89C0B67
+09FB93E238369BE8AA571F54748C491A5AE3A671F2FE54742BF8A66A9DA33DB4
+F041934C661C0EC1A3C89C328495FD371BECAD61B76D0D31AC5CB2B52587E07B
+17DAED488E05AC8E683939B6130A810507513E1B85CD79AA7BAC36844F963B93
+D2322FF472DB2086F686B9B3C8DF8DD61752D5E1B1E6F962069A79AD7898BD2E
+AE2D5489872488055F1BCAA521C94774758F3855129728A087774691EF0C7B59
+B4B8FF2D453820FED268CF8D878694FDEF4F9D0A00ACB0092B211BFC1088AC59
+EB3F1587F807D18D9A82A477B409A2F487C47B25CC3FAE2B0E049B1BFCE8D4A4
+74051B9ECA9E092E6B01DE87322878CD254C6CFF86A2518122E7ACF8D8E9B027
+74400ADDBA862705A8522B6BBA66DFB8D54EB6F96E9FFFA2E3D3E7AEAE0CB710
+035D8181C3A670922259257734256A271FFB972886951D0E0FDC43AC2243F77A
+4505218645A1C6F6499B1388AB18AF16929F90ACF7ED08421C5D936180BD4BD1
+D17B4E915EAFCE9215FB0C10E91F8A8399D5BA090765D6DC673A241581717195
+70DA9FD7D3456D98E074621887C3B427359DF6AF99C8BC7602594486D4FB4679
+33CF7D721E1FD533007954DD9CD31201360B42FD15CD434E85D90034951C2599
+962DDFE7CCCF281B75847C5403FB829D107A9191304ECD3A358560DE9EC8F924
+DAC855BFC09337965E287F46F76E9A56310C3273E95AE3544CE65264194AFC75
+0C68E21E5FA37C61D1BB2E24646E3B1320C3FC64851CA35F42BBB5BEC8956B08
+7B1C930DE915F0AE009EB31387A8F0EC0754450EE9210D3897A44EB4D0285B47
+E1533CE8617A6604359D9F9EB444F5E431A3A745F3141FD7189E51D6A6E281D3
+17460A0208D2B5FBE83DE2998D3F20873897440F50552EE46068161B88DFD054
+579A5D8828EAA7CE9B3560AF8ED834A60F1C193BEF5A29F7D432BF9DC469778C
+A3FACEE902E7EFC97D759893D9F7A81A7A6DE16C6B4054DF09D9DE7528F20925
+8A4CAE25D6701F3C6A3173237E9D2475A0505DCFDC9D34503CF553A95B768CDE
+D1E5E577EE170CAA57A958B489962A117514CB624007F89CCF937355F2C3995F
+D63B5F591F2F713BD8A3757E503BC0D6F6447EEF77C631718D5477B37DA15055
+F63F1790D4D5B6F81322021031C0606AF70FBADA4A35C4C1B6B40892621E2148
+22B4ABB47ADDABBD712D050E851D32973E87015DB32D2FE51E95DFB7B737D7FD
+D00E1B421E3602E7C60CD155DC8CE9C92B6707BC3E9D900C422BD3F7301273EB
+69F3F0039CC5560CF5A0D9545EEC2B97027CD5B70BCE729B8D87B05A1E0603E7
+67052CAB7B511203F765F2C1252B5D30A53D1D9F979F8015A2F6A4CAF55BC2C7
+3AFCFF357AF1D241D1D9D216436C8B540CA2499D279D94343E9B4E5C8BED3D07
+72E95F768C19DC9F72C2161262664799D3A24D1EF24225503BF40A2E3865E0BC
+A8864BC2510CA1E033EC95A6A9F4387738B5DFCC428CE68A6FBE515D8665C880
+885D9959E1A5054F44B6042A8345AAF0F93B0BB8C47174A062B44BB7C20BE939
+319444E10AA4D5063CBC429434991D703B158D65C4CA5D19FFCFD2771EC75A3E
+6BFA7DC06D98300F785CAB661615A12FCFB238415BC40CFCC3AD79DDFDC78A77
+E1DA3D51F62F61208183CEDB83C2D1372EFDE67350C0F03FE37F6806E8273A4E
+136730F5DACFAB70461E8E08B1BFD3D31ABCC5FF8C62CA1FFBE65B9BC008EBA3
+4C20DFBD3110082C786803160EEFCE2817012B71544C2B9B714916F4B30C912E
+1B01083DA12B3F89CCF3D030265063918CF68ACCD4922D35C54F90135A64F122
+705CDFF2B7363E1AEC96CFAEEF24E763B25AA6297CDEDBD813D7A3ED998F86B1
+7A0FF12495EE0E340D77F0
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+cleartomark
+%%EndFont 
+%%BeginFont: CMTT12
+%!PS-AdobeFont-1.1: CMTT12 1.0
+%%CreationDate: 1991 Aug 20 16:45:46
+% Copyright (C) 1997 American Mathematical Society. All Rights Reserved.
+11 dict begin
+/FontInfo 7 dict dup begin
+/version (1.0) readonly def
+/Notice (Copyright (C) 1997 American Mathematical Society. All Rights Reserved) readonly def
+/FullName (CMTT12) readonly def
+/FamilyName (Computer Modern) readonly def
+/Weight (Medium) readonly def
+/ItalicAngle 0 def
+/isFixedPitch true def
+end readonly def
+/FontName /CMTT12 def
+/PaintType 0 def
+/FontType 1 def
+/FontMatrix [0.001 0 0 0.001 0 0] readonly def
+/Encoding 256 array
+0 1 255 {1 index exch /.notdef put} for
+dup 0 /.notdef put
+readonly def
+/FontBBox{-1 -234 524 695}readonly def
+/UniqueID 5000833 def
+currentdict end
+currentfile eexec
+D9D66F633B846A97B686A97E45A3D0AA052A014267B7904EB3C0D3BD0B83D891
+016CA6CA4B712ADEB258FAAB9A130EE605E61F77FC1B738ABC7C51CD46EF8171
+9098D5FEE67660E69A7AB91B58F29A4D79E57022F783EB0FBBB6D4F4EC35014F
+D2DECBA99459A4C59DF0C6EBA150284454E707DC2100C15B76B4C19B84363758
+469A6C558785B226332152109871A9883487DD7710949204DDCF837E6A8708B8
+2BDBF16FBC7512FAA308A093FE5F0364CD5660FE13FF01BC20148F9C480BCD0E
+C81D5BFC66F04993DD73F0BE0AB13F53B1BA79FE5F618A4F672B16C06BE3251E
+3BCB599BFA0E6041FBD558475370D693A959259A2699BA6E97CF40435B8E8A4B
+426343E145DF14E59028D4E0941AB537E34024E6CDE0EA9AF8038A3260A0358D
+D5B1DB53582F0DAB7ADE29CF8DBA0992D5A94672DFF91573F38D9BFD1A57E161
+E52DA1B41433C82261E47F79997DF603935D2A187A95F7A25D148FB3C2B6AA32
+6B982C32C6B25867871ED7B38E150031A3DE568C8D3731A779EAAF09AC5CE6C5
+A129C4147E56882B8068DF37C97C761694F1316AF93E33FF7E0B2F1F252735CE
+0D9F7BCE136B06EE967ABE0C8DF24DCBBF99874702ED252B677F407CB39678CC
+85DDFC2F45C552BA967E4158165ED16FECC4E32AC4D3B3EB8046DCDD37C92FDF
+F1F3710BB8EF5CA358ABACA33C7E5ACAD6BF5DC58BDFC3CF09BA2A38291D45A4
+C15FF1916FE2EC47FDC80911EB9C61F5D355BEDFC9DB17588547763AC5F0B1CC
+12D2FFB32E0803D37E3281DA9CE36C5433655526ACFB3A301C56FAB09DF07B5D
+048B47687348DEB96F3F9C53CE56DDD312B93D3918CD92AF53FB9461864D11B8
+0138918D0B1270C54873C4012CDE6F886DB11BCEA04B023EBB43E0D0A06BE725
+741D08B9DB688731A6C9886C15A83C28DADCC81385EA239E045E8F3670CE03DB
+9EE77ED067036595C9F3B1854343BE3A12E486B6E5A2F8AC44FA5378D28DCCEE
+306B0E283AA444423F9A4FF38E2B56DCF67A39CEB2C643DAE86865517D5D0371
+CB8797208ADEC637330A3A57902C9A88EDB75A7C16FA9850075D9F19578EC666
+1353CC1FC512D59DFF847ACCD3D3A430B504B211673DDC4479821337AB4E5E74
+3FBF43D2CDAB5789E2B4431D67018BD4ED834A86D19ADB048F851783E228C62F
+867DDC5C01049063BFA56F030FEBAAE69077E1F603C49640AE33FBBFDCB8401D
+B46985968A286743338CC46DE15E3A585E66771EEF126DDB238BE9B244F011D5
+C0FD1555C6EC69BBF14515D21FC3E2A9224FB46E6E8B4864874C4C405EB01C5D
+C874F9DB993FE1EFC601E301DCD7A8EFC3A53DCE33885271C0716F8F86CACBD7
+9B5915B2A70D6696B48660746BF3A39C0472EF32D14C369079A57E5EC54ACF02
+37B9DDB7C983D04A8681A0E8E03D731A092FD51A358F96205AC76BC6B87F2A3D
+AD271A454F5930F8C712BB5509E47F3381BD636F7110C9DCD6789D9E048A9F7F
+8E9195DA3C94C0E4D1A20F158B08F100B922F73DC023FBD4CDEF8B2805C864DE
+EAACA70C3DE2E233B6C093BAA97087BC5C9A9753E785FBF98356122950223F36
+6EE513CC45D34E32AA41727D07A7728A875168D5C5F8254FC02BF1EB94328F69
+7EF31BF1387C1F89120B3F86FD842DE03B43E6112E39462A1CAEDAD375E1E981
+9D7DF71D9D0A86725C269C6A33BE7626646C0E9B11B8512F56EC945DBFCE15E6
+63542EAC4F51549A39AACB424ABC1F800340BDCF073D6AB3C7B906C55F14400F
+07E9950A2AA36FF3B6B2B5497715AFD65313F296BE73F3570CFD173C537C4EEC
+8195807279A123CD57CD214D05FE45F003B676EF34E78B210FDAD8E6593FAEAD
+4E039DF57667BC03CD6A883F2F5E284FE2F883FB74699ED686BB84DC40382D6F
+21572B1491C240A1913B2E247DC6D5CEA91C30C38A681DA8099C6AB2C062448F
+832E84A8E5FE08AB20862EA476A6082D065C9F7D3F77E8EDAFF098634AC724E7
+51925E1BB36DE433D9DAEFCFC74064CFD6EC6E73D1D79D616AA4E9323130AFA5
+6B2F4A52F1412CFB26E9CCC21E4E9BB55F49D691EED35F7F548732FF6F5EE4AF
+A382101515117D4F2257C773A1436A2FE045D83195CA9D18FCCD9BB691254313
+FB3E81F613ED69D7F2535AB765DCCA7343F8E499077D76006E68253639D41ACC
+A3D5697B0059DA34A79E90EFCB133325265FCF98B01D1D9CADABD12636C79CF4
+DB563F04CAF5524433C1D1EDDFA03EA56C6E9A00A9DB68FB9E42945DFCA8C250
+492C0BC9B7E11E3B5DF70058CCC91BA81A6B562BB6482AB9EE1864353CEE657E
+4E0FC13D7731F8F409360D54FB38D7A4AED3F4A8C7C4BF7C1DB1AE1FE68FB30B
+167D3EFD3116482557AB301983A4DAA11094E1431D24AADA9C17DE55A9CE7CD3
+A31313B1C4B2DFC0FED0D4683F0BD7075F10B7312359412EFCF1BD09705DEA47
+6ABD08B6919BE15FA3BB6689CB12CBE03D7A7AD620FDD7317699F61C98072E78
+BFBBA02AF5C5D8A14E31C2D9AD5C47DE2F342C8DBBC120D7513C62ECCF260706
+A70EC96763E8EBBCC50C5D50783F9E670BB4E4AE49E9816051534668816CB2AC
+9D69A4B6270152F08D2E9CC7D4BC2D581D69CC8D6A6D6DE27F3E83E5C7DB6B88
+9543AD509678CF1D7E072F3D6A674478452EB3A3C918A988BB6F13F80B76D35D
+55397A00A4A109AEB9D5FDC2BBD17180A16292E24CA7AD88307F55343E2512CC
+D21D7BE6F2BC9D2B2F9318AED116B904693981B9E2246E5FD42B5027BE917E72
+DB3D3460137CC8893B9EE66503B560A1829779C922D757088C41FC97E50180DC
+FAA2A76DF70C2D4B34F7047233E9BDE18E7F4916E26EE5FA044AF4CCAAB05CF3
+D6599C91C2E630F7668A71B4F9D624717FCE6257FEF11561987B786A9C2B7B50
+DA7BD9DC3008E3B7806CF2CC8DE11CDC6F47C369052C007B7594F1C9F21E3B1B
+1CA0FEB5D9EB48A1CB5763333BD51FE3B4B81BD8D126F25555D872388CB01FA8
+45A292D8EC6AB62019E80A43BCDEC7BB995D3E825C3944B0DCE9FFC051B101BC
+6E3D5C749A69D5EDECAD7801816710B2CF5E1074B8FEB2F53804E195CF4897E5
+27FC40D9E36ADB2CF7AD68EA9A8A4B993EAA79F16098C63DA6F8B7A10F0DF523
+A0356711476D1783D9F894946B818579A48B9331E08B6B777E547AD21FF22D03
+76B4734931FF580054C22D6AAE024E679AD9C6DC98993F8F8AEC7FE01CF077CE
+E9E8F4E421D62AEA40B37269A00DDBAB7AE667CDD446ADC049DF7674CA7160D0
+E6357235F6327F2B5239A9D6740AA85E16A4418480735BF84802765B4617EE54
+35967299059CEF85FB5841344B673E0A0EAA7EE1798677
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+cleartomark
+%%EndFont 
+%%BeginFont: CMTI10
+%!PS-AdobeFont-1.1: CMTI10 1.00B
+%%CreationDate: 1992 Feb 19 19:56:16
+% Copyright (C) 1997 American Mathematical Society. All Rights Reserved.
+11 dict begin
+/FontInfo 7 dict dup begin
+/version (1.00B) readonly def
+/Notice (Copyright (C) 1997 American Mathematical Society. All Rights Reserved) readonly def
+/FullName (CMTI10) readonly def
+/FamilyName (Computer Modern) readonly def
+/Weight (Medium) readonly def
+/ItalicAngle -14.04 def
+/isFixedPitch false def
+end readonly def
+/FontName /CMTI10 def
+/PaintType 0 def
+/FontType 1 def
+/FontMatrix [0.001 0 0 0.001 0 0] readonly def
+/Encoding 256 array
+0 1 255 {1 index exch /.notdef put} for
+dup 0 /.notdef put
+readonly def
+/FontBBox{-163 -250 1146 969}readonly def
+/UniqueID 5000828 def
+currentdict end
+currentfile eexec
+D9D66F633B846A97B686A97E45A3D0AA0529731C99A784CCBE85B4993B2EEBDE
+3B12D472B7CF54651EF21185116A69AB1096ED4BAD2F646635E019B6417CC77B
+532F85D811C70D1429A19A5307EF63EB5C5E02C89FC6C20F6D9D89E7D91FE470
+B72BEFDA23F5DF76BE05AF4CE93137A219ED8A04A9D7D6FDF37E6B7FCDE0D90B
+986423E5960A5D9FBB4C956556E8DF90CBFAEC476FA36FD9A5C8175C9AF513FE
+D919C2DDD26BDC0D99398B9F4D03D5993DFC0930297866E1CD0A319B6B1FD958
+9E3948FFB0B4E70F212EC976D65099D84E0D37A7A771C3101D6AD26A0513378F
+21EC3643079EECE0C9AB54B4772E5DCA82D0D4ACC7F42FB493AA04A3BF4A1BD6
+06ECE186315DBE9CFDCB1A0303E8D3E83027CD3AFA8F0BD466A8E8CA0E7164CF
+55B332FAD43482748DD4A1CB3F40CB1F5E67192B8216A0D8FE30F9F05BF016F5
+B5CC130A4B0796EE065495422FBA55BEE9BFD99D04464D987AC4D237C208FA86
+0B112E55CE7B3782A34BC22E3DE31755D9AFF19E490C8E43B85E17ECE87FA8B9
+1485831624D24F37C39BF9972D74E6EC4784727AC00B9C4A3AD3DA1C22BD6961
+7E0ADAF55422F22ACA5E4DCD4DF9FCD187A566B7FB661D0530454D0DD6C6C50A
+7A3875C6CBF8EC7769F32A1F3F7FC1C072BADEC97794D4E90E0035282A170402
+356E5A9CD9ABD80AC4342A5283E458A7269252F4541CBB6452B39ED54D336D0B
+19928E9CD1AB26AD83EB209E2EC75011A2643813053B5DBB0246097C4821B5F2
+C92554E9140BE35B2DBFCD98809A8EC9FC910FDE9E0D86457C70ACB056EBF90F
+244DC0A5BBD455E15D6E3180311D52CF50B0BF7D0A7F64F3A1821E0AEDBC2E7B
+AEB549FE1D51088C153799C6E089B5D5D65E1C4E2D2B430CDF1FFA23CCB25D95
+5C4DD885310A706B320AB25C8D742C6F29953254FA54DAAEE60ED477877D19BC
+D28E9AB576B0EA088171FD000B60D73B3C57F754BC07EBC9BF751B7D2B32459D
+993861B7C4B0D98C422A11BECEF76F4EFC0ECAEE89723E6CED53E3678D733363
+2DF068AEF0FE7DFB57393BDAA439A6A4C396F86032A98009EAE1247B7DE83B3B
+E46DF2898598FF5E6CA6953127432A967E4FD41CDD60D6E413059A58FA556EF3
+309178B57C16A763CFC9BEEC276944BDEA255789EF4E1ECDE1EA43EEDB955513
+F42EDDCF39AE522A1DC2D80B2772B05DA60F3DC15A815A6BAFEDC399C7956E75
+3851CB3588E22936FBFB63A58300298B11C45D82385C083D07AF133BB1BC941A
+FDD9F34D5E0B8087EF2A58C54D8AB7580EE3ED58AEB83B72CB9028F472ADBF11
+05A77651F118824F6CD00209EFB60C1D32D46A78E8C8DCB8B0E742828E3B7D17
+DF5200D68189C918C2D1E2BCE076599AF2AE945C35C8F442DBFAD21892B5A756
+B1B5447FC44BDB516C6C2DA3C7BD5593A7DEB7BFB32B71F78D0A99E9BDB58BBB
+27B4E189F93BFE5F98476CF276D6C72089E75CF8281A9EDC43DB22A2E1C11402
+CDB1D75D90BE00A7C4BDAC69B136BD53DC921F1419BF36A9CBBBDF351E3AC195
+0186E0DB76B4D664B39CB56007BF7CC58259B91C28C90B607546F34A931CFF89
+5BA5D331FB4CDAB16DA56D316960AE4365FA5013AFFAD16A082DFD623F4ACCF1
+CEEF55EABE62B9D71FEA4C939C827DF687D1C541630D7FB4CB54F637F00880EA
+C80C4CF6EF428FB14DCA4C4FDB1BAAD0DF1A216DB26B2C06F6FA1B4E19544F5A
+45482A011A07FF0C5A70E221AE9EA8771140B9F3746CE8FBC082E33CBE64EB83
+41813C78CB9B1C30665184F773910B300F7B0EE6579BDD85B47FFC063D4C6131
+4AB50C76DE6AD039AD0F58EA1A688E2A483DDD123E631398784BC2D6B0D39ED1
+98D261F26E17F9BAA8F920E02AC83DD114AF4B8A8D5AF6A7DAADBECD7B3573E3
+4A690F2D997DEF5E4CD6AC77E5D6CCC3968193AC9973B7FEE0A042290F7D5B19
+42621D900ECD50A9DB33CFF57442CEF0D19D33D903092FF7577AB9CC782D7156
+8877217DF3D574A6AF3ED82309DDD2BD1C3B40BBDA2FB87F918185CB5129F690
+82A52B957F94980DB20D2316D836CA8917DC858D6EFDAC83CB83716D7321D05B
+298DBA2E17E130AE2B3422AEE49302FBD02E8E40E75B2F38B0FE96D63C4149A3
+39D1BFA52DC93EA7BD95721D27D36BF6576B33E45CB8950D75F640043210E271
+17FF10D432FB95EBC14E8503A7AA6A205626689A4AE14BDDB331835FE19AC1F2
+3416E56A68E5C9C2A6EE86FA27D550D96EF37C8BDC821A06C68A39A451AA21C6
+C65DE6FCE9E9C544EDE5EFB50831C05E41AF6FE9C8B6F3AE21FE2802D56B50FD
+31BEA63EF12F327129E299C1B214C45C8CA074D12BC2346D6D101273F38A81E9
+B216B4ABA42F9EF409026506C9690A2D695C8ED420ED3C7DE1943C35A007BE4F
+D1795F6A421D7BF5A84C612DDF496A887CB7C7F062BC526DB9CDFF24EBDA1533
+B5B1290C23A2BD7923E9A338028451EE7B53618CB0CBA087A3A4296662F44F2B
+9FED028432419936E70C79884F85FDDAA1939FD1AAF817F65EDDFC99098EA882
+AC280F5C79583DCC9D92377960ED9CD639D60B082A09BE46512BB7BBA6B11D04
+43A351A7B4B22643766C3ACA26C6D02A4A9E5D23257A30E4B6BF1E9510CDED16
+F6A3C4AA5D8D0A04E385FF0807A4B449EF8F76359DEC9F00416041C16FD1DA6E
+3E547260F4F0CC127E70D17884B8CE9C10261EC115366C1EF490EA8A54B4938D
+3DE9E06CA89455103A8D2611ED1EC909C4BF3681590E6A2BEC9AE44881C126D6
+567EF9E45B59CCEC5F0D8C9452C20F817EAB739679D767A038741E71947DF9A8
+55FFCBC2C132A5BBD54FB4027A0318B801E0EB27706DAB664B36C7276CE87906
+79534E9E451E19214E0541350EAF29616FC21C94BF76F08D06AC33605FFFF721
+4E43EF79EAD7E09B31C5931A1A59D166B1FB36448622A77B328CEE7A9F3301C0
+C4034E1399D0BD53834A630415A727A8F8EA65CE1FF08A9B7B2191499D01D3CF
+31E2FC49F9E1331A3C6A11A652926A48D3C7AC62E4B095A36CFC17C0294CF050
+8271FA164D975D41F3D75BB62088F963150A935B01D3C742BE1523AB7A5F55B4
+D2C06954FD07797F317D8DF12B2772B224AD1A7E6969BFD9269BA3A72EDDC763
+8244BBA72F7F6F93FBFFE60CA34B9E10769675460460704111507B490DA2DDF6
+6B8C6E76A977E6606361B9CDE06D8C211DD6EC61BDBD251DCDF8C817029924CF
+75ECFE35C1EEA98AEFEB55EB25ACDB2EA56647C48DCA6406DE0E202611373F87
+CD6E1D85843BB90C9129C554EC783DB02215BEC1638E2298F81AB2CB06DA413D
+F4329E1628ECA1C451C7D05151BBAF14DA74464A0E0AD465F72B46E5F1C01F39
+D4B066C3A1C905316FC2AD9F2880F17ABCDB8B880103F9AFBCEB4F4BBFE2F64F
+7200D8942FAB23409FDD387C5B94AA3CBD930468C43E8F054153D46D3F3850EE
+61F8807271A849208FFE13906CEF5544FD4FDAAC7D5CADCA3ADF0486DBC41AB6
+047D69806FBDBB62314F80B8DB79E846F0955B8E61874CABF8EAB0C8B1822962
+189F85EC4564B93F25962E65B1BD7F5843091FA863834C92AF8011D10224DC32
+1B0A8C3ED027DEFF23D86B2E9615BBA84102CDA12C34CD5173270B8D746F4C3B
+A8489F018A7C943616A5245A06C61A4AFB6D76501445DCA1627A549567437F80
+6C15553027A71999FFAAE569D2EBCC61AD98602696C03D0C07714C781669CF21
+1B6855E042436673DCF6C0AD05DFBE03D35F69DDBEEE14A537BCBCB9D702A4CE
+4DDB6DF7E958E13569EA9468087941537A7EBFBEBA4BF8801ABC3C7A2CE6B66F
+37B061B8501357955818D0EB39E2353F5C75DB0F897D5E1F8FB6604BFC475BFF
+87C4DDC74B8D95EBFBBCED71D25AC35D71D05705C6E38CBC3672C113B0C2BE48
+06D8B65B94963EAF7D008AA803885F6B2C9E82117B5D9B055BA6F7C63E1D2F8E
+E3D3B08D3A4F3F610791D8156BE22EA53CE5261AA4DE1251D36DE3282D604C7E
+5240D33013484B258CFA9733A79057F36A4F18EFDAD9CF4D9BE0C5D72D03463B
+D5C8A6CDC80B8A5DCF875842AF7E000431A3F532212490EC348B8CA268349D0E
+597E60020617CFED9506E2DEC204E86BCFF07CA824FC84FE8D1FD37334AC400F
+F382751F9AEF90D47A33D27B3B417210AD7698E814D341AED468CEB98D747E97
+DCF50328DBA961786FF45BE7E83EDD5BD1172BD744310E1D3457453F63B72BF7
+76EFF7CC0DC5E336AA6E28F3B7F49F6CCA09B2570DEDDFD5187BB59D1DAD9A60
+C2B7123E1E96D522EAD78A3B97B7BE944D73CEF147743936C4792DFBE891A2BE
+B04D04691EB08FAF131BAB577452945F9EE1CED859138BE3A3202C4530879C73
+390222FF4DEB4F9B6824E51ACF3F027F770D02B7F259D4D3A52EBC2E56C7B39D
+D82B105E6F1CF3B068C22E381FE044CC7C1A4204C3151EA2553B94BC7B26B7B8
+7AAF353A69D603DB9E4E45ECE6F4BCC7B187A6FA6C99F8A7C42D1EF59EC24B10
+B965CC07BB284310C41656A9C44B2BE10E85D574AA958BAF4D88D99A287E4ECD
+CDEBED52BBB52322764D3364E99D77D26C8FAEC3D71D1575827F2070CB72B1A7
+99FEB3274C4B8210B77D58C4BA15CA9CBEDA5A43C74E88C4037D08D5B2841441
+D01A3BA0E7FA40EC06DEB818322A017E9022D8ABA6E34C526E4C747C8ACEEFC5
+2E2E47BC9AEB198010CE23D3ED4CF9DF4F78A644547DA3AB6C3FAA56CDA5656E
+6E006265B48F0CEFDEF896537A1540BC71F880C0A08305A9F2C9B404CBF2DF9B
+845F9AD3103DA6896774F82AE87F6A22BB5EF9B09CEAC3E486DDA987DB682533
+45443BCC288A4F398130FD943098C66842D15612EFDE6273C90010DAF176A620
+9FDBB6ECCE159ED64FC2B2DAB56E248B5BB946AF77643123377E98713251BD27
+F1AB81C59D34884DE081CEBAFCB2D7E08E71DE2052E1BEC5802891FA13448DE6
+D6A0407E46E923E7F2B2F2E2A04026ECDA76126299075CF7E9A1F485B66C0102
+2732DF4CBE14A17DBCB97CFB907A6EDBC0D14D9544BF73B62997710AF199B686
+BFB130A4B7B138749CD9EEBAB70B0E26F32FF939D8EFB6A9ECE17091089C9F0E
+E0BFD08BD7C1C46C6A3276D687B489214B13C0E0149DAA07AE49F94E1C01FDBE
+675434545D227B5CDDE65E5EA70BFA9A9A4466531935862B180F8DC5D9B2F352
+6D512FBAB8340C33DB5147CAAB45A9C6C16A2DEB5004C160FFA937144B3005D7
+6431545A23FF425BCBDE4FB590CABDFDE7E1811472F96DCF1BAAD3A616CE653D
+FFE9A7573737841FA70A59F723AEF4A904077554936333D0915A05CB28EA7AB6
+934F5F725FDD44961C7F4E9C2B9C96643362358BC71D2E64D4F82EDCE34D275B
+A2935BA27B5A2F00694B28AB294D7ECB93341C6E826E535F9356CA60570A02CC
+7B22461046FA0A4F46C6869AA05BC0499E22287769342537B6A19F6F2B55F664
+A12F6ED754C0A4515102B73FA520B83EF5062022F780468507E18A9277600A1F
+0D441CDF0EDADDB614D69C3241F9D09FDB7D4A1ABAE5DFB590AF4D6AE27D6D6B
+7646F28A8C3471FC412243CD7AB76A30340025AF2F4B3DB8FD06C7596D191BAE
+74EE095279407468FB9007899FEC0C8B1D118316CB77B3291DF27D594A6FA55A
+EB30EECDAF3FE99F8E6D0D2442500C3E6330410CE2C6449C2A621B9974099B00
+9FCE498EA64BBD99D6FFFF042A8016D2AB342A8DA35EC22E8ACA26C11846A165
+D505B78314830AF7BCDBA36220B6C9A88FCEA1635E1BBCDF91AEA1A12DD80AEB
+7E2F61E20367A97CF9792115B8F7C61F6A0214CFD8DC149F98CC9F906197102D
+B22F440EDF6FF2C75544EDAC60EC269F6F71A5B8B66FDF1EBD022CC427A192CE
+E6938D55E37E233B13CC939C1E3B4CC546C96BC1BAB6F20EAC416F69871B50BE
+AB3524E4C8FB4E833BFF97500804E5B33BBF249B3FE12B7315989C0389405873
+82F8F177248520C2D01BEAAFA21FC7681CA5975FDEADB256E70CE5C508B4C14A
+8A05C7F2B5DBC9D59DF45708D11325FE0E547302499F2557AACB8288DA280A44
+63C50E181567716D75A7F287DF14A47BE4098CA0B99A2901DAEBF9DE969B0001
+4B6BA381EA3298E1AFA829E499BF193126E0A462C62FC3DA185A66BA00FA37F8
+982623FD5A250EF1019B100A5904755023C58E7BBE0C0A98790E76009ACA524B
+A8B330F7CE9DAF2A023BBD5EFF6A7AB5982A658682F08E12DA69E4329A39CC85
+C27538558AF98D2B5C47C87EA57C6669C4CF78272A37E0413BC2047ECB4F541F
+E95567A000161A2C6633BB393BA003683ACAA484C00400191454F3F87AEA489D
+4A9C221F15709BF80F6D937CA0DD4FC10D1908ED1302D85D8A6DDA8E55F3B72C
+85E4221D541E202AB020A8137F03374EEFA268276A376038DFEB813F6F0E72B6
+3B8C2CCFCE4495D430DC00D0D616874B1D664671733C4966AA2F4BE1018C886D
+55C1386D588F8B5646F203A2C09F3643CEAC6E4149D1D9696FD4A09DA1D3E9B5
+46237F389F1E9EAA85A5C114AA5EE1AE15B4A910339FE9B7EA3D0ED03C2D1ACF
+7A9D11D90320776357A34EFD373B92C060AB26C07B47FC206C5102BFB6836D79
+BAD3B532179A20D36D031E70C43DB3B4925D9BDBBF3CA4DBC729D1BB766FC9D6
+BC1B1DDF5BE869A293AF4C2F8603AF71B51DD211788FE302F442CAD51789BF95
+F8BBF5AA7DB25F203E4F2C18056287CD6869607DE8A15B1F95FE9A2A059836AC
+E3BFE9393D27C78B2B2C59FA59B4E2954345FFCDA5DE242B05EFFE0D53CA430F
+81394BB1938909315283835A9BFAD072DEE3C86DD5F496264E249F11C3739912
+59DD40CE1ACCB81A0E67EA7C4EA2E4AC8295B4B6C39B69AC16B33A2B0ED96319
+906241615803E77148BC67D1FCFD9186FA051A8949AA57D28B3ACAE7A8A7DFA8
+19A5BB7391C97816DE6AD9922439EA0EAE1CEF826C35BFBFD1B874446A432D41
+57249EC96516FA69952D71BC7F5A2F357AF9B21A0DB0D5015AFB0E225FEF2052
+4D80F96FBA83D9DA8EF22B2B60E5FB012360DD92838CC82EF0112F39A71668DE
+20B0DE26A72836DFEC82413DE52106106885E50A0FB71FDAD0A0F1AC7836B8D4
+D5365B05575F956A93CE1B00F8CA7008EA588706D12C73574B4CF6E79D1DBBC3
+D8615D98FD2AEC490FCE8C2443126DCB35BC4581C6E93C223A01B2AD7905A5C3
+D5EE64E3DA41D58592F4C3C641178C00D8F4FA8074692BDDDFF8DC7E6B7B91BD
+19983B0C7D5986BD79C6F9280822348BBF8FDF5668B76F247638542ACD31A046
+8D7617338EE92A11F0B8CC18C421CD10F38E37109DF72912E5B2C8C361BFCFAE
+FA158A4DBA90B6C79E7C7FC312CD96712E8ED8D5C230F285AA08D53CE1059338
+2DA85518C19102FB0E54E13B2346C497D52F98366A2D80000DC57B9C7B798E5B
+0B3AB6578EC68A38C03DB238DDB6C5562EFD0880D18F7E90C6A7A57A26451C3F
+3FE7D87A700535FBE455A9BDE16423698BB1DF55DB10CA1DA71ABA1CEDC024F0
+04EB5BC9ACC8A4DA676CD3237D20140AEF6DCEF5A5046DAA1ADF564074D166B5
+67B600A9A54212AB9A2885ACA68BF06A7B489519BAF5CEA83E254D0BB7C35273
+155FC71E6710C17BCB30FBED98D102E5BDC1A8C44F3ABA1661376310CDEBECF5
+3DEC1F3F10A3F2601A43E1DCA2AC6754C3E87422658E2EE4D3EC505E65CC7504
+369C4FC49650F2086F43EEFA3823DE4A30C960B2BD4A81C6AD809084CE2E9F3D
+80FF3EC911F50192DB3F0300A1D75122B0B746EFB3F8EBE9FEE41D1FF759A4D3
+73B916A52925B0F2E2C01DD6D332A6148FF612521DFEED0501414FA5FA629296
+3013AD903F94A89A1FD26B824D95DF37432B3C1530BE82B802B8FB5B226006E7
+CBD4BA4D2EC2A045D53CEEDCFA8A90588A256347747111F5E1D59EF8D04C8C89
+DD967F81CC5181E8E343145BCE393320E8FE76D2F9BC24DA6BDEA089BAC47D96
+060643C6D235558325BFE4AC0AD906D70C5706081BED7040AFB150F6A182D38A
+087211E7B1BB1CFEC2634BDB5D046C34DF89E162E4F335B42DFCF9AAF90B362A
+88B45296AEF5792D6DC547E2ACE35125E415DD3989A5D6B4A56146489A71B220
+BA3E0D5AAC2A0D7369C7DEE7CCB8705CF253F314F1F40F9EE41AB9D7DE4B6C67
+9828A96F62A9EDC4908979171BC4F0A2B55C73A62F4ECD32FC3E0688353EF32D
+CFB1DE0457F33D6F5A7FF1B872B29C1844BDBD6BDE248674654E9696979E70CB
+444ABA56CC6A7F06CE669C83BF88DCEFA3608EB5D79AD309285E352C950627CE
+5E941949A3B1C5D052D04A8D9A398A711377A39AC301330BC855CE2A8BB72990
+F6470A207E6DAD90FFA298C0D4411CCF2E5F0B175F8551EE10561EFEF760FFC0
+3287F9CB56EA01FB1B979B6E89C7FE3AB6A41FBB0220E60196A6A3BAAC7E3C96
+054BB36339B2A5EC4802AD8DFAFACA50196CFAF27B5428C00720DDC2FAD110BC
+22913DEF0929030E84DE82A5639F90A9C04F9ECF62C18FCD383C50AB1C67317F
+C47202638487BA2BBF2D2AC7E91E9F9DB1B3FDA840FD326AFA2D3DFF70804930
+89836572A9958643606ECA2605C545417C1186AB54501A84621F4164B947B65D
+C3A552CBD9CC62C09B5F513B204D40F85132EB65424781A6BB9CB349CA6BED49
+8A1152D9E2180F52BFEDE2546E3DD8EF39230138F42CF33432AE9D16A6741AA1
+54974CB5DAA6531C87D84213E03055BF2B033E9DDF28D4E34B6A15984BFCB9E1
+87AD88DFDC2A346D20AF3C3265B5BCEEA5D0C52C63093E6AF37CED0AABBF99E4
+60A98453798B93958F7E4A3DC3ACC22FACB19BEFAFC832C5A63A6E17CF69E3AD
+CFF271F07D8365035D133D738D20EA32BD407BFD6927E948FC30D2D48D91D104
+F8A32831CF9622AB45FD668614057BA1B5ADBDF060A1BF4114BA79A9236F0FA3
+B29D1A48E8D11C943F5EF74CDB553B78A5CAEE547A6D95428A5B699AEED4DA28
+E96064E026AE411C74F0460C35F3689EB552B69CC896D3F770C4E4D6A3F052BD
+E21019FE5FE730F1A52C261D078C5A8837D86733C7C5983BA58F95F4966DD644
+95783206E996C78AE5C7C773984F3AD5EA39F67C69049C1546987B879177D6DB
+5494D834423A05BCE53F542355140E8ED489AC14B53417FCB8D15B15074B5052
+F180AF661342D7C59AC4E6EA5A03F8111488F9B7F11E782FB4FB95BCF7A2B6FF
+5ACAA0D1F194DBF36A3CEE60CA260A564AFA51BD0A26688642AEE3154B16DB90
+B8AFD3BD525E0B507E27663821751B764647826F00CAD722A3DAAA0BFF54E2B8
+0F8AFB85A7709547417DCFD4D840121C075394D2EBF8F49F09257FC2D8070FBA
+D1DE2268F1AE96065B706656CB3494C0AB7BA3C450177487E0F6B55AD3884E53
+8BD5E58963859653069E10523E1B60801CFF8B7708857FC54B8DD0469847569D
+6F7611243EFDF188E2E5BA641E03DFEC3050056E65C7AA09DB8452845E11A5B3
+07DA5DAB0131D99F3C16F4EAE2A837A62589A885147F5A212791E7BA00030C05
+67189ABC6144DE5AE05CBA41BEACBB1ED134CAC87FC75C57404A1ADDE8590ED5
+87B7E50623A8A202AD90C3ED48891265BA5EF55C62F64FF6BA991D96220B3DD3
+E7488FC369E0ADA3A65C34E3478ABB0F1CA74789F4ADA7C54D97A56CBF47BEED
+32079564E472184F86CB6B5ECFE00F407E49D12AD6BA22D8E70E9923D81FD09D
+93F635AB4427B258C619390E5D1CBF6E92410DD4BC9BA6A035CD18939ED2DDC8
+DEBD1F76DCAAEF4A68761526582B1EEACBFEC737494C5B70F1B98296A4FA66AF
+9982BD4F6632BEDC9115A87B638DBF7D0173E94BEBDB1C50DFA1C54582A8F1E7
+C5DBD2BF3324F2557F0CED636D1F8239FB704247A8765E595829B0555C6CAB8C
+996401159021882E31102CBA7CD5AB03D53E91540E5FD5B2D83805C07C2546E9
+A6428D592E59542C2EF4FCA3A1713372383715745EB8CEF0647992FFE43ECF3E
+8BD24062D9EF062C7307777F47FCFD91EB41B9B5AD6A2F1B8DA8C5092B7B3285
+B802FBFCDA8827332B3820F430D52F6C3A19D769469A0488DDDC809DA6C64C5D
+1821FFAFE5F4FF75BB4399B2928C75F01D104E3CB18CC6B458AE67FC8F4E6917
+5EAC34FD64D21885BE0171902FEDA6286E69015F2126166FFA5E2696C1423E6B
+E133F0A2E8944CC378EAFA1EFE3B573B435582BA2D41483584C19791BB7B08C1
+398CA2D97B310A2B7C9633FC626CE114221592A46DF383C9282C13199748B8B9
+8B276F77AA2E7BBA8752174BC867C7F98272F3A78191E64DFD3BF1A654802A64
+27673FF45B2889E7FF6B2682CD39ADC953806EE529A71D7AB581EA51DF12DCA6
+764D8D2207D0DE152A7A90093B7159A6CC9F70544679BC8AAA13BA73C644D85F
+5CA38381B9121AFE90F2BD8CC30C4DACC546AD3B7B588CDBAFDC881B799FB85F
+FCB9C8973E5118DE0CDD9B5D95A411EEC1C522E58957549382590BB77F05A425
+859A00FB6DF9E98E78C3FFA75515CDFF2DE847FB224959FFD55D00BA7D1C8D82
+0A9620C5E8F30D67376B073596A3C18D25876869FCC93DE1EB8180137953636D
+6190CB0300723B2215856BB38B9F8B1CE0AEA7ADCF060B3946E43D5285C9698D
+9758FAF58936C6E39E82BBA53640C65CD262136DBC8848591F2B0925B663511D
+23494A6B7A6F4E983C69A33611205C588F8ED4F30D61113F2485D9E0C619E365
+79CFBFFE7C80898BACCA73905E8E961D14D06428A1E02C4500CDDF353D4E66C7
+2413BB033BEC539B4569D943F222AEA4FD0294C8588405060373F08BFA6F19A1
+75CE50B1E001164CD525BC45EE60A061AF76A5AAA38241B38A76B16359AEB86A
+980D6906DF6A2D844267BB8AE4DEAFB17A67FB8C336F19AAE3567435B92E9D0A
+F88615C6DF562471F3192D9AE30EA40039F92C0DB575F51641B705D7A838014F
+43C61D39F7BDAE94DFEF9285CC9480B8DFB26114EB77935F5DAF7E31D8E59158
+8B295241E6397C42998656544343DBF7CB5BAC8449EF310E07E97E62BC802FB4
+AF84732600B5D00E82E43C193121DCFC44F8351568F55C7579E0C191FDC5865A
+BA6770F3FBF1CEAA0A5952426474AA67E149A98BC71C9A1C9C646C1E1B4EA8AE
+536B313FDE5E800A346A140C67775F45EE632B6D0324E21F417F62FD0C6B4196
+5E6719DC38B2B6D8831E590985EC37C633DDD58469B4BC03ABC675F74528F797
+5A6F279438113F7F0D778794DBA9CF2C1AE47D3DAD8E712B680318C4D123E269
+29B17861E67BE05A6ED6529DED51C22C5E394390BD92DC19FD4C0EB073491EDE
+89969BC2D2F34DC959BFE707F72D773EE50E6C63A62E5BDCE178ACE69B6097B3
+D51E0FEF98C7E17A36152E2005A770ADD099204DF3AF2E6F7650991962080166
+C80609533478FD6E4FA3324C1508A9AF8FBB936033D76CD62C6A193B70E88C97
+46CE005A05EA18BCA6F46012C5FFD1C414172085A43F2703B049A8A0B7A0295B
+9B9B3673745E38500ED79D613E65A166806F657D7A6FCC97FAA7A115CAF288D7
+EA7FA7409F70658011462DE0B67FB04932DF5B29C42CFB31D4BDBA5C1D2F68BE
+87E977C5F62DB69C3ECDC8BB8824406469A429723043E634A4E892D8306A30A1
+C805CB31FEC2A680DB6E3870BB04EC622EAB5861D5783500B417EC9B6185CCC0
+5A1431934E61F4EE6E559B13802167D57398DC8E4D985FF461A2BF27367EA05A
+819162BE28EE58CB2869427C7868B45ED37B6B46C6814CFAF89BA788E89F2E5E
+3767A3D66F269BB6067FD36DB914B38037C38710EEA8AEA8186BEE6B8D6AF554
+546A26F4BD89AD78280B950197A64B9006755D7138AB30AA2C337853BE913B52
+27A2F5AF43F80ADDAC382D7AE332B316ED039E65C334A7410E4F2F6FEDBB2A97
+6C28054E9EE61E8DEBE351FD00656BA623284364BDF8A222CE72B762A365DA8D
+5ACFF4CBD739A52B724C9EC6635DE7D235C7FEAD054256278C68684FD9082EA8
+E588E05345C0680B9490FCF54EC73FE60DFABCA7EEFC8E16D673248B1EC76FBE
+38B3C9936DD13818136C9D2C78D38BF622A84FC8E05C3E77B07D41C9673076C5
+DF0C22CFC4F997662EB76A440C8F4B5CD400D236D3C61AD0378468C95B796506
+D68AAB400997E9787BBA670D5968B9769A3FA252416BDAACFFC5A95B3B825310
+EF78D0EDA5B8B0B2B892111807657BC5862F464D5A764D2C5937E32ACBBD2F32
+333CDA3700CC351B2C5C1DDDAAE1D1836F8A8536C36C6F13AE575CFA153FCB05
+BDFE418A5ED0C496E5467FC5FEF1E5366503D1230DEE85B9FF423173D7219AB5
+5AA2478295DCA101EA6FF32C9C7F9B728CCF359E297EA414FC11B976101808A5
+76DDC555B6E9EB9F6E6D6A75392C792BF750B48948122FFD96C60EF82C48AC5C
+E869DBA21549A67C1B9C384AA1834A1C512F4E0CE84CC6BBFEC91D1AFD27511D
+C3EC614B520C4A8368318E241AA8D8C64434D8161B423700FCED9CE28C16B116
+C2511C737FFB2218D1EA8C2BFA54D712E6D7E054E8FC5386A27514E4EB8E773C
+57F01719FB4957FB273F155400A580CA9635BDA97B84E3FEF763DC08B9FE1A01
+A37041F6AC4DAE9071B987A94B02DDFD22F6CE4E6F6B1A27D67A04982FA619B1
+FD79B40314A05C81E797FBA1F29A81EA0CCC90D0F8CA86CA9FA00FD7EC61BF1A
+71857E75E5CEA7CBCEA92DCB0DF5DD2A7DF6E8ED44BA72E47F28943C1BDC95FB
+B67EB12759B0E4D5D8BED231460243B0EF89B377FF203C093C2AF0C7EFF9906E
+C1ADE2F4C12155A8592EEE1B2D4D067C7DD42424CFED5A3C65A31D189233C184
+F66F434253DA705E1E9F50668ED8DB3E0FED47BD
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+cleartomark
+%%EndFont 
+%%BeginFont: CMTT8
+%!PS-AdobeFont-1.1: CMTT8 1.0
+%%CreationDate: 1991 Aug 20 16:46:05
+% Copyright (C) 1997 American Mathematical Society. All Rights Reserved.
+11 dict begin
+/FontInfo 7 dict dup begin
+/version (1.0) readonly def
+/Notice (Copyright (C) 1997 American Mathematical Society. All Rights Reserved) readonly def
+/FullName (CMTT8) readonly def
+/FamilyName (Computer Modern) readonly def
+/Weight (Medium) readonly def
+/ItalicAngle 0 def
+/isFixedPitch true def
+end readonly def
+/FontName /CMTT8 def
+/PaintType 0 def
+/FontType 1 def
+/FontMatrix [0.001 0 0 0.001 0 0] readonly def
+/Encoding 256 array
+0 1 255 {1 index exch /.notdef put} for
+dup 0 /.notdef put
+readonly def
+/FontBBox{-5 -232 545 699}readonly def
+/UniqueID 5000830 def
+currentdict end
+currentfile eexec
+D9D66F633B846A97B686A97E45A3D0AA052A014267B7904EB3C0D3BD0B83D891
+016CA6CA4B712ADEB258FAAB9A130EE605E61F77FC1B738ABC7C51CD46EF8171
+9098D5FEE67660E69A7AB91B58F29A4D79E57022F783EB0FBBB6D4F4EC35014F
+D2DECBA99459A4C59DF0C6EBA150284454E707DC2100C15B76B4C19B84363758
+469A6C558785B226332152109871A9883487DD7710949204DDCF837E6A8708B8
+2BDBF16FBC7512FAA308A093FE5F0187316F83DDE3E2D27FCDF6C5CE4F95B6EE
+3317BD91B7921F3039DD35FEA387D5CFB6C6E9DC84C178F3432994FC7FAC6E5A
+ED41A1E2EBA350178FBFEB45944511731BA827167DDAC238FC69A5486B995477
+C469E2E27493B0B711DF8E267D3D5613B450011921685147114106C9472580BD
+F531022F6DF5432B2A4EBC51A8032C7F9689B6FA942D849B29709631613DA68D
+4DF7B6F059A19304F40A3C3580CE3B51D79D42984194D4F178801720892FB6E7
+61FF43C63F9256B5E9F4227B1378222BAAD4D52C77462DF01892220E11129C16
+6C9E45BB9F01ED7C1AD5D8B4D72BE0E12969AFEA90FEF170603CDB91CB243173
+B19A56084D10293B80A35275F41BF78A054DDC98F4A1FFF592463D944960FB31
+6BE5F03960F9B1F213CBCC7FD448657FE388F10104D42B0715FC9571CC60CF23
+C72560CBB8835A0CA208FE06676B3B48B093CB7FB2C0C53AF17EC5B372A9771B
+BFD52FFB7062B4FE0106A01A2A1A1DD4EF5C8C7623EC9324A2CB3B402FCC1FCE
+52BFC8662F8A39D5F1B41C97E7CE34E16AC28A1E94007AEA7D4C519399F1B7A9
+48FA7DDB671067244F09C29F95DD60668223F45BBDA8B1C452E930A9F3F341C5
+351D59EA87462FFB30277D3B24E2104D4AAB873BB2B16DA5B23BEE25BE2C8128
+C4CF2F4F438A4E520CD864F3EAFB5363753B82978F6FD664A14E5D6F3A929348
+5839EA752FD635619C4FABF1E1454510BD9D6B538A343BE748AE05B47F917367
+1BA5EDB15F1BDBE806E51B294257D7087334165419A6520462D794D670A1D6E1
+3BB03BF689391D056D55AD660D15A386E6D222C9572BDC4DC8A46EEC75124BB5
+F0E8978FD6031A90E4768CCBF62A5ED8C8087FD66D2033011947634878BDC0AB
+6501DA7E6D96E227068E993DBB0072F037CA411E453D1FEB4923F44A1BA0D911
+E5D9CF2BC499B4F9FE7286C15B5F8DCD65C961BB15ECF2B0440AD89EC80225CE
+77BE76355569510F652F2288EE12FB9CF393CCEF0BF8F7E2BD778ED7861493F5
+ED0586FAFB07344FBA705317270C467020BED3FFDF14AB45F52ED83685991235
+C31C184CA411B5A12D356FB75CE73F124F2B43F544A691DDD9775BBECC1879A7
+3CC1FAFD2392E8C259C61C13835310DFF7FC4E8373AEE81845BCED435ECD2CE9
+2534106C6244FC4DD4FFE6D0286C2612E30D3891A8A154F9494E77ACCDE59421
+D5E8129680F8DAA3A41D793DE064C800C5A7F670C2D4AD27C5B03571C45402CA
+D153B99BF4787EE165F26F0C437D09DEA4D51ACE4CD718609876AA9A363F983E
+959B5ECDE89E4DBE83105345CD53C90EE55202B2776B75823BB465509944C198
+9400CD9E487A55739688D1F7C7525FF94FD59D5C0860EB3896CB836D6A0CB3FA
+3AB2A7CA796D58A9D263E85E757AD0C92E086AC343B2B1797E3F0F7FE31EFA3C
+598D312C29E302718BD198504EE53C0AB2940A2E2979EDAAE2B09DFCC134E910
+0A685F2FB1F21C75AAFF8D1152873D90334A31CA1FD7F27CAC19762A127C564D
+2ECA3F56223375A4FDA6A28991A487C717F702F67D1DE1E2442C3C0152A70205
+79CBDCCCB6B4581345A8ED87FFD28FF1FB7D1A9E05C4438CF6E2FBD173F992D7
+8EC6090B91439FA533A05B87E63389561141BFDD7F9DFEBB0C512D78B9305001
+4A7429BF16552B56CABC613C61AC747E29AA98D769F413DCBE4A1D30AE62398C
+187BC6F3CE384874BBD818C598AEC6217C71755AEFF7737B6F9CA811E6260E62
+DE7EDC0CB1D975ECB918DBC31B47E0C93086654BD1B432225159F9FAAD6DD00A
+B879E7F75F7F4182B3D69608F80DBCA98C579933F974CB0241276B875B9C1E56
+34513B2833AFE6170610C752EA2CD2036D7D465E750B76C1C701A2CB9D8556B0
+B900F89EA4EA21C5FA0D1E2B91758D5338516834291B91BAB877B6571404C9AF
+DF8A57A050C749EEB56BB06C0F217CE4707F68DB20B0E5E6A2B69F7F84083C81
+9C7E8912C33B3CAF9497FE999A101F09D4D49E84FDE19ADBF663908A89766BA2
+9521158657F11908807C56AD6677315024EAC1C1722C494EA06689D3CA8936AE
+7F8270255778D7931157850F48857F23B72C427BB7F39C6559460DC20308DA23
+F98C21E8A3A80A217388D0EE70B549D783549FC4B30B571A0AEF611DC00D9956
+8B7A5C816C0C5E0BF6629A2731FDABD8CA1E9CE7C5AE825437A798C3D3F05D95
+EB9CEF1671F3CF1848230B73F40D52A8E819735C8FF0D8C5F84A62E1987CDE0C
+DC6B38DACD260C21B8A8B8226FC3B37BFC639CFC311DC20D820CFBC67FC9D420
+9D10A9BCCDFB9DB53E04720521FC93AB52F4C01C1F34F47FECC24BBE9E185030
+1C79737E9BC9A5D859278002A52E95DABE0B81C8C02E67509EB508CE3F5723C8
+033639AD0ABD413F43905AF25991F04785BC5869834D527542B20BF0D5918926
+C5A71938384CF4CEF97A270A6D72463585ACB878F1839224DD3E95D68F3D3FDF
+FA1500D55C18F24716A16D6DFFF6150EACB1F38853B27835D0ED468A4CDB9567
+3B57FB98B99A176EFC2CEAE571F73A0E0151ACAAC81D7B0A9EB7EDB5E61E3629
+C0745B55C8757FD018BC36531AE60047FA408497C0F2E23B684B3338DA16C7B8
+8A8EDEBBD581304E93DA0DE08CAA903E45C665162F20F35C1D89228D22F7D2F5
+E554AB3A185D6DC468DCF70873BA1ADC4C6047531C479D8A3DBAACFD8038C4D3
+4552DC7B46BF6E6BF9C7D12B9503DAADFD684828D57C00766381E3EB7FFD680C
+BE70745CB2B2E13F01D81BE0BB72399F68222411528FE0F2BA2475464626679B
+50E8203DC89342C359127A97C70D10B4D32CDFC63BD245EA81BC0E3B26A3E381
+DC2044D1C986918722AB8F289F94A307A952CD4873409E5C1A22E64BA83164B1
+396BDC6D230F31843AB985AED023E65897D4F33A531A37FDB154B0598064385E
+2C115CDBCEAE1498CAADDF800AF34B746DB4D329A3857F5F86B05C9686AE04AF
+70C9EC6D82FF760644F299491E8F1614E1E7F23289E53EBD829904DF5BD8D537
+DF02B3CDA23EF2E2C43287A3834AC061070777FC8CA3D62D4583965F0A5C541E
+EBCE6152D23E471C534D1644652B889C58C06C03EA15F91A5D78818E8B84E0DF
+DCAE73D50A30CFC9D68B08A938F8C0DFB0E3EB15DD72B5E375C3E092EFBA69F5
+6E922F4BBF496DDE36A060B4752AEE25E6E258AFA7414657725D72B772C06CEE
+F84BDDA9DDB65FC7B39ABC2C0D6F05DF5428B92B40FB91E6E9850A71AF94784E
+73281EE47673830F90FD74A2971CD4F3BBCE3164068775B3588161C4F7DCC812
+5B786A900EDB8AECD7AB5D2683508098677E2011AA4CF61C891E1287F88C3970
+DCDFA39893C42B6FC248D41CD8F67C4DF25C2D9F9045C4E615DC5A8F824E118F
+2291FFF8AE4B2E489BF3BCD3563706FDB15CD8A5E193D305FF3AB801AE3894C6
+DBE8118364D42F3CDE4547AA560506A12835030358347E5DD41FED591EA3858C
+8C64419F860F97C89A464068F2FD8FEB09DCA584D03EA0ABC599E4B33EE7AE49
+03F588EA1491402B1B490254417EF73C37FBB6D55556411893C550BA4FFF6BE8
+0E55A72194A19AE3B293BF12BE6279B978DFBD116F68A485FDB572F82C7412A9
+87A06A5492920DC4B4E7DABAD6CC81451D30F10C6F413802B37D11DA7C8C8626
+F45DEBD138D11C72BE8E2217EFC98B4DDC7E9E52B79857989E25F7D20B7190F6
+8888D70A355B02CB8E63221F5BDBAE30E07BDE7FA6EF11EED2D099F85CA87D44
+10F0F715C8365D5E7BD1E0893EECC692A3E6F55BA29912C6E3B5C62CAA251949
+C0812773C07204B0699BFC8B3C04290BF5FE18454CDBB0978CE306F32CFAFE2C
+DA7146D7E479A5963066EAF62AEE1A31E291E138B399C3741731AB4ED91691F1
+7D4630B3F269BB833B39501E2A7038EABE3CBFE06CC5332EBDF8093B47FD9455
+6B3F1F27D058D9A00771D16B05F8A244141B61C547DBCE2EDC84B96AE55AFD00
+A15AE493CFE4E167C37079D744B5E583C1E83121AF1DEC7B4A1C37AAAD70FA9B
+B63377112C8F1E3A535AEEF472BA637209119B0837FA2D8A0954AAB3730876CD
+5602F356EB124D4DD9303466D3DBBCAB08EEE828D5A5F420293BFAF416875AE7
+A3F027A70425CF94259431E4946AF6A2D0761BF458A2171E0F53D413C1914D71
+8602CBA868AC3C32839BE7EF808D6175242A62B387932F112B5AA1A5B71553D8
+762F21965EE14980C72FCEAD5BBC22E849E471D4D7FD93DD80E02B72AFE6692D
+9B20420840755FE531484EA781F88C0DFC42E259A34F6C0C2DBF2A23B042EBF6
+8FD2372D43DA4F34184117FFFF556CE52AE37F5DF55FADC83038F85371E9C08B
+55B279F6B6DA3B7F1BEB1867F47600C7E52555A1528262778546D16ACCA83C24
+C71F8EF08D44333CB485C68E63FB59F21FC7A80BEE5C99589DDE07C4D5DD66ED
+72AC58470654360B410D220712E250AE9D3CEBE14FF417D4C38124E9CE428B4E
+B2D22BA0EADC29A559886030939F2DB31DBB3EC482B9ECF2422F81A2B10DE97A
+7B9B6551D49B3DDA40AE2F68E30F492887CCA927721FC665FD796FD5A8A766A1
+A9DBEDA634DFA17305B1AF4D222A0B968F4EF1CE4C5ADB7C57AE29DE07B10CDF
+7021ECA48D52044784DF5B722556662F9A94A2516A2944DE6E0A31FE214EF841
+913D2F2D2E2B28C72A742E037B54660A4E5A78E681EB6C7E212BAFF002F375CA
+9CBBB8469C8DA4F0F199005E6F8245815DF75E5A5AB162E82277AECF3A90620C
+AB1EC74F67802E85EFDA3F29516627FC14D3D211B6C796CA5AE54AC6609F681D
+55A23FA948DFFA667A4E8C6887668E36057901364884292C13687D5AA2B9C4DE
+E6E806A0AA7CD9143CEF54F8AD529DF5D3CDB973521DAA22EA67DBC015D95497
+87F93D7806BFE89D4C218CB1B0A6D7660FED5129132CE9CA503CEC2548211C16
+45CCF18E93784D09690AA4795D7C67B20342E51EE6B7989DC7D32E4DBB3ABE15
+4F7BE16EFA2B46CA20D31B96CA54BD443085033BC829026B48E420D28ABC3B7D
+88D20555162A3C7ECB061F2BB710C32CA4D630FB2B0E9E2DA0A19C1FE953637E
+E9C5281D01523822A71A14B5439E3FED1699DEB9ED5C6257F91E4F18CE8877E5
+690E3777AA83671A644A9E35B5A42A22248E9F68ED9865CB8C229A814D035E54
+F5473F64CF66FFE8EE40371CF9EF4F40018263B612585987E3A132A3B336DFE2
+6E62583557DDA5842CF0852FD9C7110EF81C6A24E628298E5053C60C57EE34E6
+1B0DBAE48C2C67C37EAE7582AA50873E4867FF74FB5DEA18452D454321066327
+E646D6B5200D3722C84A0B18DE2A5986FE512D710252E7DB3F593585DD62A28D
+5477B125F1A99C60C3DC5EADAD69E32722C3289258F3AAABF26134E7620F005B
+ABCC8BFE6DC4BC03610AF128FC809E67B576174423B2422F4A73CC8D37E28895
+01F0EE31E7E464DDB46432891316C3CD7A4467033FDFC7AEB2A22F3A41AFE8D3
+244EA6FE06BC44946A46CD56370F83D574F92BA54F4BE2E3ED9356A5AA114C5E
+5353AAD777FFA5A85DF3E1C398A8FE59C028D22E342C6F0E1AC49B9AC20C610D
+A161AB72BD1A21073A9C8DBDB69AA0EFBE4BC73CEE12D7C4475688D2CE34CCCF
+2DDB675AF6B6B855F5AF0C3C0D0AF0ADC150E501C1414FD264F2BF1B77309E88
+29FDAF1BD4617633A0A4CF22A208CE3FEC57AA8B31FED9DCEB933977459060EC
+AAF94717E61C67910ACF1B87124BF0C5E0BA869350DACDFABEFB1896649B99ED
+779F57A14E68C21FE5678641E0D075773DA378C1F9440E4BA859C40905F9AEA1
+B2876C0BD92D15A7259CDD3D2F18876ED2A7B89DFFC971AAD8622E1E0F95E2C0
+D1DDE20B5A3AE56260F8105A505EB3510C5F257A4670D84B2362C247835371E6
+8CF72DA5E65642E1044C7A6B622E1CA51F37EE54C836ED9712D58D04FFC42DE9
+FEE21EF8800772D364E194A98C60205A9C1AC54A96003FF6E257CCCF094BD1F6
+5E3DF9F39F6554FF863465619A3C4EF6AE19A62E8DE25A2451977C28D25D28B5
+4E36CC1A5966E3BE5DAC2D495797FA5D9AE916059F732EF9CC00C598F0167AC9
+347BC109B784DC8B10714E457342D2C501FCB5A61A88934758E2424A8E160EE6
+D0F1F69B74D96092929FC87C8A63BB09B06198E9AE708DE6C7750572E72CA894
+0E4FA672AFED96F5E4456EA691F77056CBFD5C4E29B56E0BEDD3B2B23F089EDD
+2324EABE7984920ED4DE2AFEE127153F9462EABAA7EDCB20783D3E2C40C12E9C
+08AE37A770FBABEBD04056496C304B7CA5E596E3F1816972BCD02759EB3B99DE
+F3E15C0406C198842A71CAD19916827C98FA5266894CBB84B6270C115755367B
+3393F1A8A5628FF8BAF5D6DBFA4A5EC9F2C972AFFBA7DF1BBDE2D1A3D32E4C7F
+267D8B5F0FDD25C1C3590788B9A4F497ADF7F54D083B80A3E3A0E6B29C9D5818
+DC2818E4B566AD6763282ABA9A52243BFA7489869A8EA9304CB8279E0317A462
+CEAB096569A5112CEC55BBCD29614308870E4F931A6633C2631BD3B6F0DFE248
+FF7EADF6DAB3226A0DC813FACC53D9F7ED75F58FD6F9EE2A086EF813D0ECC5C2
+B9EA3FA276462C74CFC74344F9CDAE59BAC64E22D845A0534AF2CE322911FC7F
+C2A96343DF946C702CCA48904F4126E0884B0181C4B301822176F54234EB6BB9
+ACAB28CF48E65E4D29974F136FB21B5962D05816953CCBF2C26ED6F3D3B4E31A
+111F0B37390B701FAD5E97EA899E2DDE6D74477582714314FAAA3B81D83E5510
+C721825E6FAB8B2568B64816E9F4C91454F53144ABB7DA15750F68DA277CDD5B
+0F470914CDA57FC139B6FA713371A0FBD6202AE1E8D1266523642E8B6D529E00
+6F33F4C944783416F75C42678EDF7F1B417C31ED2BB668735FEA76125AEB498E
+E58C78ED9D8717802A0B40E013AED1BEEE70D57037A8DF66B8FC64EE4C7F660A
+B1F196F09B2FBEE255136CF02C9E97AA1974310CC54A25AAFF5705E343888EB4
+03B6056E4DE7A9CD13E2A2409764CCA543C8C979A559F589E34BDC3F371AADF8
+9F1193E1681C79DF8A8A21FE81C471AC25132A5DCB4A7E9CD4441A93BDB11EFA
+4B8CE8C3136ABF43733ADCC790330F6FA13479F0DB1BE923FD6A09FC57AD3E13
+15C30B8B5BB9BD49055090BC0B703FBD4D2190DA482709928D35EB5BBAFD524E
+091F1B00F697856744C3611B615E41941D89C54BF6E48DDD9A6DE0E86FB8CE43
+6DF24B0BE71D2A63BE616C18F288218728075213DE239492012D4F4B0B740FB6
+51E9759416C928D08284F4E2A42DCE3F570EEF46E5EEC6A3243993E2B390AF3B
+D1BF8F34EA16344350E6B2FE5411FD73BC064BDE79BEA8495E3E25419C14B045
+938A33182CCC2B57E17F84DBEDBDDDD598A78C6F19B5B12F0B5459E0551BA4F7
+B0087A890274FA19B7B35329A7E414B76C07BA3D27DFF0A85009935DE4926EE4
+6078F6667D46F674DD85E82C4C35C2607F9BD94D8F1A82B04390C1A98986A884
+9906D8829E368CC0AF99106BB71C602F7F5394110C421BE7DF8AFBA54E119425
+C01AC2D0E25BDD7176D2E82AA64A17C8A5B1252D0FF297C22E54DA78C51CCCE9
+9DF838C10C80621F52C856B8F1FD717EAFBA913D052F6F3C10E4ADD32FB421F8
+AE9D684FF5B1D63F9E10512A70FD667F60497257A5919E299603B1303524F295
+45D8C348CCD8DACC14EC67A6026FE0B2E78A15FDB01A2CDA43007B1CED95B9CC
+D70AAC1577C4AF1F4388A6E0074A5BF53756074A94B6124D83B484FD2ADE27EC
+C505D86C9E7773558AAB898C32EA4CFCE43130173AE0A1943E9D0B6CAF1A0920
+93B93AB702093ED48266F3E4942F51A2F4AD9225DE9B45A6337C69B5483232F6
+3BAECE7FF4735E729A1D419077CCCF79C237188BD4DDB834AE8531B612AF1F24
+BEE412A8BB5086195B27BA346BD7472BF10B01CD44B87B9D5ABDB7C74501E25E
+943557B2628D6DFADF8804CA5A49649E5788DD3817C6C0C07BCBADD7781E5D75
+90ADB384AEE5507004BC2491112A44D1CF4FB0C9D733162BC98A2AC89274D6F6
+B00D4D9CC3845B7F068D7A16F573A75B8DB7D64CE0D14F497B0204774DF29621
+4E3D3EC68FA63FFA3D8E961CFD411BDF68C17A0A2286C69200324BB278EB53D9
+438794506F25C5116B3385B560AD9DC6D28B9D5DBE50878FFE254513B03F68FC
+0D9A1CAD4AB0E8A5BC6845F434F5F9C3E60845D64A71E4D4EB8CA8A02891722E
+C166297D2195B72CB2C79BEC9E7BBD16174DC220E91F8621AF67FAC55C2A257F
+6E55E66934FDBCFE2268D7EC45BF5C9E24503EBB0F24C26283BE5A55CB18F7E3
+4B7E178186C340D2D4F881ECB802072B327340A54AE0B18136CC9C270DFD2F94
+9CBA914DFA53C90645E57D40EFF7CE91C03CC76563A55797A1B9BE7729E397D4
+6423AC19D1FD3D684234258795963BB72626EC26AF67E58FC409BC09A292A4BE
+41BC2AD1D51BBC9392FDB40789FBD963779871B4607DA2CE98B1236B9384F801
+78CA88EF3A5E7CFC2BEB76FF99F40735C0E649FED6445C9094AB3C3844882BA1
+01B4BEE154E461200DD0AB0FD80207489891CDFAB4E0DA617EFAE5F1D4424C05
+A85193F680C2ED31141C3CF7DED4642577ED000B57D112CE089FFFF1EF9B9683
+B59438E988B5D300392000EF1E0A72E3081B2C4182E8D65DC9D1C954012B3879
+57DD1BE65EBB20CC59B85B2FAC8C0FF85E8791C2057817DE531F470C23805313
+135DEEB1942A832E1A4B46C9ACA2D1A04693E1CAE55A27F64B031B2460957F29
+565637DD3D6AE5C11CCC44E59C9A1C4CFC40C57A0454E42A4D68AF470F2A0B5D
+F4B2DB9878C7CDF486AF0C5BF58507043B5E93423FE0500FA88393D228E36B67
+8AF5384371FD2FB1B21138FAABDC56945D6769D8CEEA153291A7C14061FBE427
+E0F45F278F52627B6B272027E67B4742698B8C0C3D1732560F69D5802DFEC71C
+DA967AE7AAB59AD12CFFC76ECC1BBDC20098CC1C64525FD9D59357FAC040C2B7
+D7960AD4844E78079136FAACF061CB576107A92837B7CE6DC4C8729ABF5929D4
+DF29F313D9506E38A8A3EA787B7E6BFD49A427A5C6C6D5E8E86115DA5AF85FCA
+35F02F2C120E222917E96AAE36EF2B1CDC85071AD93AA7DFFE25D4A4DF3BCD18
+D1006E26674CCCA57C77E58EAA438C66B9E6C716F08E13A95CF9E134DE54C967
+9BF792FEA43AA52E97C9D051E28356D7419A8EF6661D142C3EC4D970EFC894BF
+70E53A4F9438C0FC9A73AF6AFAFBE91DD6186779A94FB017EBDB862871894EBB
+53B4C48F5EEBB835C8B2A38084A2E66FF533D00F6CAA3B51E600D86B1132895E
+1205B613BEF76A3218AF6D2F6704438B67ADD7DA43C78CBB58E597DE96D35FA4
+250FD62954A3EDB6797C754BFFD0EC0A30A2805ABC5E8B5137D48A9F76A932E9
+B1724C06CE8D874BE761DDF30EF2A2D846DB7E70700E71FBE01A2D0CFA44935D
+685B0BA693BAD75910E8211D59E837B8E8CE9DC9093D27C1606C84B8D9E7A053
+1636A6BA5271607B61D923AAD465BB7D95F9D54F975DBED996BA89678E4F7EAA
+AD90EA3A4BCD3050AD618936485C99148DCFE9FDF65CA818314EE60898BAF377
+BE127201C6AFEC6D4C4354130B20E8884A8927C013FB21ABC5D43CEB3285361F
+8DBA27444504FA56AF8A5494D637988E2FEA21F1FB1DC481CA93B53A160310C0
+AC418429997318A87C648D26F57CFA5CBB70BB63AA7EF5DB3EE16557312CD8D8
+7470A04CDBCD1EE870008970B91D219E0A8CCA212BA4896054B87B99EAE1C06E
+D08F1F5ACC3CEF23DBB15BFA3557E46B2D23230F75E6D9863DC0DD30FBCC144E
+0382534B455A1A962C4710AB6A8A82772237A8C0CE703F072DE7B9A33CE76514
+83CD2570E0C219FDAC74C3D6C6DF30F2A28BFEE9D013D37B3C946EB686001CA2
+AAE8A3A7930CA5CD6741CF343803B6976725F709DD31006DEAE63C0D20A80EAC
+C78DBC77AD4FB87BA3390259F3E1BB0A0F021D1A2E3D4E9ACE27AFCE8CF3BB36
+74F0F307538370C3096F973310621AF43166628B73EB2F9423C6A2B398456D8F
+60D0ECC9A07CD3F07A8438E1027E6729A58F3D69054824ECF06A39BACAF7D508
+F76C6AC430835EA30E081267F00AFF53E9F8D32BCC601F29E252D5849F813AEF
+2118C6BAF88D0A5384225FFB804D16752A9BD515AB11A7CA97FC08D7D7E95350
+5C38836896B430FBFEB51731ACF61DC6FBE11BABEC8B89E4AAA041C629307E81
+9AA2A8700A1C4372790471DD04255969E74B2EF6911CC1CFBAE3632B9162EC8A
+65A0B2FCFAB2D0F07B9CB450A2619C4FE9EFC82BF3491BE66B96F14AAAD12112
+4F8210F3227CDB483FE99FD210DCC2AFA1736C63934673E743D098DEBD62652E
+2983DB99FA40FBA1C9F611091A4375E29E23654B82B409EEA5F36AB53C7B176D
+519CA5A69913286344D1097C114F0582B4AFD95F3EE6EC3F3274D09A6AEB496E
+FB4D53F70366204B1FCD06AB3C4A5226270E92204173BF6F753B53B238069E6B
+CCC11F1E4864F0EE5AFCE3271AD6AA9F3DA61667C3D47EF0112CA68FD2F28E56
+39E884B4F45C05F798A5EE3B14E4920B0E154210F31E5CC2290FB150E79E2FBD
+74E6FD1765FB929B32E035DB1EF1EE9C78F68E176BB99A1C05D8CDE615988CAF
+BA45D6F0A5674AC2EE2A9252A6E394952B34B5FA9C7503CBEAEFA6A86515ABB8
+2DE9933D12D10333526E4330410074EBEE9355BC812F427E1DA75535031F314E
+C5341B301247CCD9986B44D3C05EFD2DFCD74ADD6704A456D21D84035E687F4E
+951D5960B18B8A8BD048890A9DFC7367B7C4DA76B7ACE16F6193B7E9AF42F4AE
+B15B553F94C943A8D509C5D0C8367DB10DE6172FF7A3883F5839F7732EC9DE42
+8C24783E78F5AB75CC63473538B045F33BB5B8D653F9CC6011E810934D6CF385
+D4DBC54D371FDD7B45A7E8EA1D486DFADC6FB2D653C7D470CF5CBAEE9C6EE8E5
+29637A226B76BBD821944E719A9240E695C3C5D389036004122A1EF6D1F16D89
+96D764D281A40210D775D1E94BF0E06BE63E564C0A9B82AD182FD5418D6E93F0
+296D14AC715660C7356786EF23A92C79BC09F5245E1D6019371A5B7E7328A8A6
+6700207B26BE05D8BCEFAF2115E05DD0725916961446876CAE508BC036C2BE63
+5772E0F6DCD22809560AFE6C5D50B6FB0A9571BEF6FFBE2B71C25B2B386A037A
+B378C186FA391C3CAAA456C7241805BFFFB64FEBA2E69B0EBC35C2118128F2C6
+5836427CE22424C0EDD42FCE0E72CF983383EFBEF3930BEB23C6EF4EDAB461F7
+7C71F6B8AFB56B4446CCB85C499A2BD55E3E4EE5A90BD608C94448AAC16D0220
+EE0372C4D57DEFF2C6015319444F447673F487FBF67CE6A4C79091AAE97D2994
+D598437EF0F2E3F50BFC48D3173D2413BDDEFE4D08F263FD7462B8D5A58D02FC
+96109ED4C8C96192DCC8939C27ACDCDBB9FBA940415CD905273C16B705BF9A65
+307AF898D54C2D8ED25A8653EA486CFD9B66A347B91A9C51F5348F350981AA63
+CEAAA1C6BD56036EB97623001062155E9B918555450D8350EE2825FB82B34048
+9BD8BBB7373A066CDFF2CD188FAE16BE583D8BAF01A2C8E001A23CAB12AF407E
+25BA03E73E5CD95AD12B20F4C3A6809B32AFDC5FE9FFDD33FB8BC886E44A657D
+534A9ABC95CAB2DCF4C5216DC80FEC2FDE7709723ABE5438D90AF9B34D445F95
+FEB30667058D33E24C23214C273E8EE7443DF749EF762FB2B1655E7005C314BF
+944A1330286FF558EC1F2F67332DFE70A7033073E3043C14CBFBDAF0E7A3F881
+5AEAF21C77562BA944E18118F5996B593AB7AF2AF504177CDAF8F639A432FFE9
+4F54AB7B860F6BE382AB52CD6A06007B614AD02DA130E3E3870E9A6FF37CBEFC
+5731C1EFF66FF4C165BBF449636F8EC737B1D65DC8F3AED4506AD5DBC59D9585
+E6B655F889B508FA05C89A32E0DF88346338A70B6A66A1BE0960708596E83FCE
+90C32EB7930C490164150D052CA0F6C5396ACEA16494D87F1981903949E7727A
+F3FEC9268537C0943FBC87C74ED993D3A620C8F62741CA91AA3EE2AD8EFE2BD1
+9ACAB5610B5A5AB2A72B8195AA35411FC30E764379426248436FDB4E3606A16E
+CE31F2E53A02D8103CA2FF4B4A8DC12B93350828BD505EB4172DF5547D9FC71B
+D5CB9D5B79B3ADD902F0537D4560327CDBAFA418EDA33AF320587DC746F434BA
+F8C4E19228A49AF1806B1B67926F79E9DFA4F9A25E091566B5D093D3A2129FA9
+51E05C2FD13D8C1E113443C48CFB4A0DB419C423C7392EB834221765FE2C98E0
+E567566A86BD8C4FD03B9E04FE2004DC21BD69AA95614BD9321AB312707A05D2
+6466B30268D43335F81A16F292680EC012861B9514016C8FEAB9FDFCCED66FF0
+3D62513A9AD87FE1FD126C4FC84A68680C04182D492C38CEE020BC802D623030
+2050BDC76422D49A1EFAC1FD133B1633019ACA31D2780E178D0F4FEADC844EAC
+1E31E49B199869CA6E2C68609F5F4D64B469C040F5D553D6FC857031939BF4E1
+6FC0ED3A6B0A03799E273ADF0976050AE9C421AAB410EBFEB01758DD21C93471
+943411D48F541771005FC07909D98B14AFD145F5ED72373AF506E80D0A88E609
+2AFA9A8BD9AF70F303D2224A1456B5AEAEF89AA59870D2A4964C33B621834EF7
+CF20D87B4FBE475719114C6828329E028EBC026EE409DD34959F8E5850A47CEC
+897DF384BE9DD1EF4AF1D4D21AF593BA18D5594B1577BB241FD21CD903B60D34
+9468AE7BFF70409E3BD04903BB8955BF624CE7DD864B86C8039994108ADC5989
+3DCE03F4CAF63E57BEC2EC12DD1FEEF1ABCF2A47BA09E5747CA504A2B8DCD020
+71B45F76EE50C96CA2DB6E9B2ADB3C28D20FC30608EF1AA657AFF9D6778CD440
+AAA66439415772490E8F8BFE39152822D3F6EA54249D0127473463109D4D80E1
+C4FBA3612DBD9B843DE56BE16857C75644893A0668EE17D3DEA29EEED18027D6
+A1F3939B5A8905BE9EEC53EDD844C77064F6742774CDCDEC0835829B0DF4FC55
+63A1C4599C43A6BAA3C4BC322E327D099C25AA13CF497A5EFCEBD8D3448253A0
+824895BCB7F2846C44E6764F7AB56957495DD05CA14654CC9E8374FC4B450657
+350720083490266CE864FA35C57DF7D21E724EB0998324F61E21C6C690425162
+E0B24B3150C59227428B82716F6BB5060525CCE5BEA92161D1FDD1E3C4750D1E
+AA505E7FA262E335661B5CE0A777ACC6D7499E20923F6D728339871F61F461C0
+4A72C82D1DC5ABBC5386E7F175A3A47705BA3FC1AA19A81AAEA9E275986C6D3D
+F84A30236E20766BCA5D7FC7DD67F112507DF860A4C445524E53A2E90DBF4C09
+0AA6D6DAB8B9EF48B3DD30FF0C778D65DDFC7156322FEEB3980A1B4A0F20A24F
+A8A40E004A5846B6C47157679E5096FD214AA8D0828B112DB65B49F9EB8BF50B
+CDBF451BF895207F5977F0A571EE9720A9B5172D3377AD17FC9E497CA981C369
+9229797422DE45B0F3C579FE2FB8AB8CF220A201444AF80E72DBAC136183003C
+5CA7B795F63DA2B0C714173BD3B68915ADB79CDA101C59C1978BE2E197EDF6F0
+D67A8CA702BF8095D7C4A2FF523256DDA34981A4729637832533552E34B17D4A
+D7753961627D9FE81EF6A77C9E139939939E07B5CDAD37F5456C51F761DE80B6
+53B7EB80AC1A15EFA4AAAB10688B11284D30A85A8587A1912B28B0ADDA79E213
+6D98137086DD36D8B2DFEE8A81C81F8EDAF805CEDE13BCDEEFB27449CD464B11
+C3A057D002C181579D6CF03C7FDD79005BF1D418DD7941DB75AFC1233CEB8B91
+F6B6705A51D4BBD57B20F09EE728696590351AC7873E3F36EEE0398DFB9F2C54
+B9678AAA16223E832FEA15FB018F9232C0DC3A367981D174BC97DA5628496287
+42820E4E1A31E6A06F7E93E6269A363691CC490DE0F3E627A2873D2CEAF0B6C9
+DB21455AC3A6B4D9475F2D35E2E7B557848006F63786B7AE35635DD4696DDAF1
+5494B19347C5D04AEC35CCDA7AB98B7C94A8489714CE6510FDC432DA09D32BCA
+77C8FB07D064151886C30734039BC07B36F3E342D33EA4187292A306B235D536
+116005CB63B3522B6B8888246948128FB2E562C7B2A53971C4803832759B7DC8
+168BE9A11BDCC003B2A8F39535B6D36ED34C7FA2641625D15C8E293A2EE7A405
+000E623B7C1CC919F26233E69BE222738025890C7B187AF1D5DF575823F067B4
+5B381C22C9F5520E930473FD21D0C1D1E6CF66CC8562AF35666D36CD9F6EBC7A
+E165743C8AA438BC7F0FCFE34F0DD190034196976BA6F8D8BC061709044CEA80
+D7DEB89DF9524A68391DF6BFC61EAA22AD92BE91F8FA08B11F6C97FACE1CE47C
+A36E3077EB0FC695A838AD846BF692BB64F09E9F73DD601BC2E0CE329AE69E50
+37DF498796A3068019AA9E85489BCDF7F59227F971652B71C3694FAC8F11F7BC
+F5C6DB61C55F855EB2F99320286A15FD1E04363444802E71821704405C6293A9
+D9ABD46624D8357A45F110C83FA82CF995BB92AB828CF7B34646DDB1D2E55A97
+A636B25C41B7A9F56C844638B9826118030B3E7663B273900862B6BF79C122FA
+377D4B804F335EF5420006AC2B3FBB788C9B3EBB8B9691A1D9B285EE92745FCE
+F75E624B23261D05FF60BC14AF4EEFE7CF82188B6B1C863846910723830F8446
+93AD920726A898201992AADD1AEAFBBE643D9B7EAAFCD0C365193D7720C64ADA
+190EE1D02280C9BA1528E1A0A0B017094F768309DCF1DD59A6012E088CC0B440
+EAB0A99CE8ED979A2AFDE111C43C37FF28CED01FFCD007C76437ABA89F48C9F2
+1DBE4C900A2BA4ED63F254B0DB3950107877F9739270536506A9292164AC49A4
+81FAE9744476FEC5CA95DF80D70A2D54FADD7992EF154E5E9A86658772443FCF
+4CEBD0B343B875DF30D83A32D27B9EB256A7C1E3AE5D77972C192B7A4716E1E8
+654338A86E1ADAB439F1910A2DFFF21CDA1E4391CF1753F8C8F63C27A6F5D03C
+AEABE82D77E1C9711877AEFA333DE56435E087C5894EEAB57C2757CE2BB00862
+6447A806B9798C862755C23BC96BFCE4B6DC67405407E14469813761CE97F7C7
+CA10D6E85DE0F1DA48D1CE1EDB67A3020F4810E901F9DE2341B76C976539DDA0
+62E91FC7504DFB96C3577EC49161BCC5F17B0EF4A8B74745DC3F363E347DB11B
+8444A96A0D9C25BB8A106339EA5A357D58E61AAD313684425CCB1984EE0D9236
+DB680741DAC286EBEBE7893E87192D85594DEA53DC44A426605205762062CE33
+E7612D1A3B8ADF699D6F56BCB1A1FEA6851DA74BE45A8CA007826FA51675544E
+5667966B7A6BF5E07DCEF900CB818A7A5B0EF6DD9A4CBFB055FFA93AE5E81FDC
+6441D42B803E5453239368D42FD3569F3575A248497B1172CE9E9C0B082B031B
+12454382545CBEB208AB0D5C79D8B4650CF6873761984850FF911B41A232EE6D
+BFE3EAE1B5C0D4715EE15C0202CF29913D927FC9BB20001D24AAC80F4862F282
+14782EF4CB7F8E3B702018D5D7F09AFDE2AED47725FEFA3932ED12BD66DE3A5F
+AFE7F526A552B8FB3E429876A8B6E5979DF586A182F87420EEC12CC5D5B36180
+A0426C12DD50DFB2A21E8E74E2E4991DF954001E4F6A7AD9F6CF4AA2C16E073C
+73DB900876E813E515430B1FE64E6A1CF705639F6E0CD8906E71038A48271B05
+ABC75E2627D41661974DF0FB122CD2391BC7933E22DE1DE4FAE66BD4D1F14946
+035C2B46C06685FF5BBFF92E349F2AA1410B8B3C6B97D632D37CBCEF265A9181
+9078CCAD5FA280D5ACE678C72218CFE9A0CB8667724EBB620AF5D874E62F1AFF
+E7E17E78D1D0232C2D048AE731E00579A48C2BC4A50A0FD87E4A2E881A3A050E
+1BC235E40FACF037FFABFE9619F8B093C5360BF4C39C55BC67467D4BE5C162CB
+9A008E8EF59F58AF8D40CC31C49726D4B998582A8F7302B618BD19DB9FB461F3
+E860FD6EC96A2FE312ED4D2E997F7C0089B85C182F91D963833C4EC75756EF93
+9EB444E001E9DB60C28DBF66D0757BCFB4319BD81104F9585C4042CCBED55D17
+72BB90DFA4A24ECA8A7624154435609F1164238871A6F14AF9ADB594E6CBC459
+35DA2D60B4BC43962C8B66DE9467DE7E5027FC5510C3A369E5E09BDE45CAD109
+9E71375D7380008019BABADD9B13B8AA2ACB6DD7896D53FA3E30F47F8774BE19
+36015D4596EE576713D2237001D16CDE2929CCEB7EAB7D14EE7879513396AEC4
+401592BA7CA6E622B0A7B6DFEA807A1C82414EA44FE4387691252C4220FCDD9F
+7A9B93859EA1B4DDF7C8E1A69D6B565EDB83F99DED891D151124BDCC1B4ABC46
+7BE61A3D42F648BD6FBCB0F180D03E5537ACC39398B5BB36501311C9464938E4
+CC072136D885143DB403DA8FC74D37EE0AC96590A841E17392C1D0FFB2CD5787
+8ECEC9B261733C8D7CB82D5D8F9EA02B32D23EEF1A6BFE8915A05B82C04C9F6B
+5799BE7FF23A6C8C3C3888097A5305767881866907263052FA466476857C825A
+926B5A3488614738CE375244C0EEDA9D290E70465B2C611A88D95CE42D346B0B
+1C2D7EAD3A62DEDDCBEE86708A5BAB024E55757B12C6622C0D615E54CCB32567
+9B2A807C1824B6BB73D48A153BA6FF173D81DB16E14803FADC6EEF05F4640FC7
+D7D1FCC33C1E72A8E04D0759E1F89BF38E5F3BAB530FC7A0893CA0E897595B8B
+A79DA018FFD657FF80EB675AD03CB839A9CCD92E11D45E61804280F99C1183F6
+3150A8A9012FC7575DE04D79DC8B694DEE5551877A4C330842D3B52BA58F8F64
+6CA52D89AF93F5D2B18A7DE29C77CC7208F06E58A55F170C45D7222A08CFC0EB
+B71380FC41244D662D6834108891F5F54804E034A444F9E1407BE81F199A3BBF
+12667657A620A4619F60E41205A664CBD1D26446C98E15B3BC66274977469C5A
+623EFAB2CD7C75893EAD3E380EFAEFA2BF891F761F8B670F2DC2F33693D6807F
+C7DE760CF1BF958AE40928915DA17E239AE3AB4C8900D90F1B347EF5C573E26A
+1DB115106608A9C7195047FD532F9994299E72F40B5B0198E32A1ED4B68239F8
+C205A65AB46780E327B264F0B2A87D8A91853C9595F5F3D7668B4725C9614E23
+16FE44FE57AD7197406B5353B8DEB9B167A46DE9E4C5037CFF11AA9CFA445EAD
+41090BCA4DCC5F33545B4D59725FA54C9A59201C96392500D085D7E1EA8D1A1C
+F45BC389F8E79C88818AA070697A074FAB8F3FCAB2665C87A5466BC41CBD16BD
+5D419463A02BD2058876CC14FE5DEE115ADA3E7634C8562D4E45379812D309A6
+C052BF11B448FC7754942E65B4DE685C51B5FF8750F1396CFDC7394737C580DD
+B771D8C9ADE3A06B895910E974892B45978FFCED88C56B2C483262B2BDAD16E2
+FE1E81D3F30FC785EF9C53D9C7226558CB445C39CAD7AE3CD2B592487ED6A8E6
+9EAD9A7DCBFD027B0536F115067AD2779BCA0D09971D7C885E78E53F6EE1D004
+251BA6C0BBBEAB337AE64C698C12654FEBB597D35D0432D0D3327D73D30661C6
+2B4B23C9FEEB68F38CB68121D1F0354EA31A816095B711E3CCC55FA190111FBC
+89A3AD15E9416A3009285A623D6419580D7BA2E71A271C763EC55739D9BAF8C6
+50A9D45C2C658F1C5B60EB746B362BA910FCB0F0EFA2719FF17104F3592449E3
+B17BBBBD220B11CF4D241A632EA3E43A019B0E714C19C4B79DE53FDAFF301FC9
+D15AE6C494A8E9007C988AE118DABDC25CF1ED7B06D81264BA8479145C50490A
+E54E213579AD3C478ABA0646F875DF577691BACEE51B6C59DE7B5375A898CBB3
+097AF1716E9829FCBD82E7CCC447FBC6F41FE69142B5643FDB5A13C44BCA3B2E
+FECE50F90B3AF0818FCF
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+cleartomark
+%%EndFont 
+%%BeginFont: CMSY5
+%!PS-AdobeFont-1.1: CMSY5 1.0
+%%CreationDate: 1991 Aug 15 07:21:16
+% Copyright (C) 1997 American Mathematical Society. All Rights Reserved.
+11 dict begin
+/FontInfo 7 dict dup begin
+/version (1.0) readonly def
+/Notice (Copyright (C) 1997 American Mathematical Society. All Rights Reserved) readonly def
+/FullName (CMSY5) readonly def
+/FamilyName (Computer Modern) readonly def
+/Weight (Medium) readonly def
+/ItalicAngle -14.035 def
+/isFixedPitch false def
+end readonly def
+/FontName /CMSY5 def
+/PaintType 0 def
+/FontType 1 def
+/FontMatrix [0.001 0 0 0.001 0 0] readonly def
+/Encoding 256 array
+0 1 255 {1 index exch /.notdef put} for
+dup 0 /.notdef put
+readonly def
+/FontBBox{21 -944 1448 791}readonly def
+/UniqueID 5000815 def
+currentdict end
+currentfile eexec
+D9D66F633B846A97B686A97E45A3D0AA052F09F9C8ADE9D907C058B87E9B6964
+7D53359E51216774A4EAA1E2B58EC3176BD1184A633B951372B4198D4E8C5EF4
+A213ACB58AA0A658908035BF2ED8531779838A960DFE2B27EA49C37156989C85
+E21B3ABF72E39A89232CD9F4237FC80C9E64E8425AA3BEF7DED60B122A52922A
+221A37D9A807DD01161779DDE7D5FC1B2109839E5B52DFBAF552B11EFFB6A16C
+F03FB920C15AE724EFDF0CCBF00A838D34440FF9FED532F44036AD22561184C5
+283722DDFA7285E62754372D716D704AC0E00B2F6AB67154241C7449AA047833
+94CEDB08E8C92907FE72A0B05AE36A7B9226ACD6E7890A0B528FDDE84A950FC6
+801DE75CF2E739E9121149CCB8B1C87A106822648D84A3D3FBF295EE6C4BF403
+BBE9A1C1F6DAEDD1E642ACC486E609703D7612BFFD10C324F5DC710811F7F614
+3691B400E3773987424C0D2B0D8A736873C6371DDB2442F05E018A2B5CA9A4AA
+17AABB95D09E5890CFFFED5AC01495D89A53D3C89F3D8DBAC85E06561646557A
+B16BAE67D1C3D5F6EC51F05178B6CBC34F9F491056E5ADE1256277DB904A7F75
+6105D774449D6CBB70F2F539D739D011BDBE27A9674A5CA3D5BD42B7FBFBBA35
+89966597639DE60F2A4812AFAEFBBBB26C9E24F72439F3AF2A7D5C0D2AFB5146
+58112FC60E9307B9FE29090D81441A1C3B7E371656A3321A0031038D54BB6670
+0594C9C72FDDE3DE50EE1CFBDEEE5B6DDBA17B1D6328651FE1EFD1E2B8376949
+5353E35A988064FDB6CE37ED4570B49903AF26304DE40164903476EC2F4830D6
+4995CEE9B37B
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+cleartomark
+%%EndFont 
+%%BeginFont: CMR5
+%!PS-AdobeFont-1.1: CMR5 1.00B
+%%CreationDate: 1992 Feb 19 19:55:02
+% Copyright (C) 1997 American Mathematical Society. All Rights Reserved.
+11 dict begin
+/FontInfo 7 dict dup begin
+/version (1.00B) readonly def
+/Notice (Copyright (C) 1997 American Mathematical Society. All Rights Reserved) readonly def
+/FullName (CMR5) readonly def
+/FamilyName (Computer Modern) readonly def
+/Weight (Medium) readonly def
+/ItalicAngle 0 def
+/isFixedPitch false def
+end readonly def
+/FontName /CMR5 def
+/PaintType 0 def
+/FontType 1 def
+/FontMatrix [0.001 0 0 0.001 0 0] readonly def
+/Encoding 256 array
+0 1 255 {1 index exch /.notdef put} for
+dup 0 /.notdef put
+readonly def
+/FontBBox{-341 -250 1304 965}readonly def
+/UniqueID 5000788 def
+currentdict end
+currentfile eexec
+D9D66F633B846A97B686A97E45A3D0AA052A014267B7904EB3C0D3BD0B83D891
+016CA6CA4B712ADEB258FAAB9A130EE605E61F77FC1B738ABC7C51CD46EF8171
+9098D5FEE67660E69A7AB91B58F29A4D79E57022F783EB0FBBB6D4F4EC35014F
+D2DECBA99459A4C59DF0C6EBA150284454E707DC2100C15B76B4C19B84363758
+469A6C558785B226332152109871A9883487DD7710949204DDCF837E6A8708B8
+2BDBF16FBC7512FAA308A093FE5CF7158F1163BC1F3352E22A1452E73FECA8A4
+87100FB1FFC4C8AF409B2067537220E605DA0852CA49839E1386AF9D7A1A455F
+D1F017CE45884D76EF2CB9BC5821FD25365DDEA1F9B0FF4CFF25B8E64D0747A3
+7CAD14E0DBA3E3CA95F10F24B7D5D75451845F1FB7221D7794A860756CFBB3E7
+704A52A22448C34812C3DBEDD41892577AABA7D555E9298C1A0F7DA638078167
+F56E29672683C51CF1C003764A8E7AD9D8ADE77B4983F56FE2D12723AAD8BF36
+682CFBB71B1D12210144D39DD841A971F71DB82AC6CD815987CDCF29ABC3CC96
+5EEBD5D661F452C6E0C74F9ED8D0C5B3755551A172E0FE31EA02344176E32666
+14B6853A1C303A5E818C2E455A6CF8FC9A66DC6E279101D61C523BD9DB8EB82F
+EAF4D7FDF6372383C0794C4568D079648689A199D4B65BA646CF95B7647E4BEC
+83856C27A8EF177B3A686EDA6354FE9573E123C12EC4BA56A7E8BFB8F9B75147
+9DD79A743968F36F7D0D479FA610F0816E6267E5CE327686A5485AB72201525C
+FB3B7CA10E1BF26E44C24E1696CB089CB0055BD692C89B237CF269F77A31DC81
+0F4B75C8400ABCFDCEC6443CD0E81871CD71AA3064ABDE882C4C52322C27FA8B
+41C689F827FB0F8AAF8022CF3C1F41C0B45601190C1328831857CBF9B1E7D1AA
+246117E56D6B7938488055F4E63E2A1C8D57C17D213729C68349FEC2C3466F41
+171E00413D39DF1F67BC15912F30775AFDF7FB3312587E20A68CF77AD3906040
+842D63C45E19278622DD228C18ABDD024DD9613CDC0B109095DB0ADC3A3C0CB5
+AB597D490189EA81239E39202CBC7A829EB9B313A8F962F7879D374ADF529BD0
+5533EF977142F647AD2F5975BA7E340419116099B19ACCCC37C551233C89EBC5
+0CEFDB2C5FA1AE7F2728AC2CCFF00B5F241264A144705AF954F8C422610B29A4
+4BF70F0D12764CFF9A8B641FA4A51B134A83413EED4A3BECC8566CC234A5F07C
+40302603F38D74777F0EA1437DDD87B2817B1E34446C77D8C5F9445ABD772166
+3806ADB65BE61DD8937EB42E9B748684C87622EE62BD93003AD8AA9D071684DE
+7B9F48DFFC26418D8DDCE0738ADADBC2D93CC7E82F8F89964EECDD492B68587F
+B52414FCC3C1874704C141D67F37AF2E7BB76DAD93E89BDD89FEB7D086903B61
+DEBD3540313BD2BD5218388BCFCE17D2B2FF0704C06861A7F540144E02A4AAB4
+D5F7F09B0174FFA6A786A0765F2D7CDB351D279A9E13CC8535A9AB20DED86C3F
+CE3B50F074DAEB1356D91A35C604543D3060FE9E02CBB2E4A968750C6992397B
+0AFE64B9E2642D226B3709D0E075935054E1854EC1823171AD4BCBCB5B2E1A06
+ECE1C6378D86BEEEA0F82B40914DF6369D45555DBED82258FD2B1CBE53ABA284
+BC3DE0BCB5BA398F568B79D711592C85E5630BC7B94A6755EC96A05255B38653
+45DD623D32A0C46C2053119E2EAACCC3920B8562754DED73DF40758DB55C8FD6
+9EB611EC02A9A6098B194E255000518043F50EACB59C3600E83C1EC246D32124
+1160AFFE8448082A66AC680789F74CED64D47EBE71EA2EBFEBFBC61C53A5CBFB
+047EF7E9E656494F1092BE1AE8776BEA1FF1BB6A91AB6317F4BF443B4E2D1678
+E11C679B1ED2D64183F1F181F9F720111B4CAED3CA55104EB3579E0F3793B7AD
+965AC2EF9F9802C6FF1B770DA6EB1DC8AFF1D59CA5A6B1FCAA8603CBC752B5A5
+04B18AD09019B8A462237104987521EB64678A0367EF8D9E838C2BC04308DB17
+5133464643314736AD3E66CB56015B17D0CB33D61495FF594B89805B1F9C920D
+2BC9D757F32E962CD9FCCB
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+cleartomark
+%%EndFont 
+%%BeginFont: CMMI5
+%!PS-AdobeFont-1.1: CMMI5 1.100
+%%CreationDate: 1996 Aug 02 08:21:10
+% Copyright (C) 1997 American Mathematical Society. All Rights Reserved.
+11 dict begin
+/FontInfo 7 dict dup begin
+/version (1.100) readonly def
+/Notice (Copyright (C) 1997 American Mathematical Society. All Rights Reserved) readonly def
+/FullName (CMMI5) readonly def
+/FamilyName (Computer Modern) readonly def
+/Weight (Medium) readonly def
+/ItalicAngle -14.04 def
+/isFixedPitch false def
+end readonly def
+/FontName /CMMI5 def
+/PaintType 0 def
+/FontType 1 def
+/FontMatrix [0.001 0 0 0.001 0 0] readonly def
+/Encoding 256 array
+0 1 255 {1 index exch /.notdef put} for
+dup 0 /.notdef put
+readonly def
+/FontBBox{37 -250 1349 750}readonly def
+/UniqueID 5087380 def
+currentdict end
+currentfile eexec
+D9D66F633B846A97B686A97E45A3D0AA06DA87FC7163A5A2A756A598FAB07633
+89DE8BB201D5DB4627484A80A431B6AFDBBBF23D4157D4AFE17E6B1C853DD417
+25F84CD55402AB88AB7EEFDEDBF2C2C731BD25567C53B474CCF739188A930039
+098A197F9C4BE7594D79442B2C8A67447DE44698321145D7689B91EF235EA80E
+B600AA8E238064F154284096C4C2554EFE8DDF13AFF8D3CE30E0999375C0FEE6
+F992DEA5FC3897E2CC8B7A90238E61E41622DE80F438DD994C73275CC52249D9
+F6686F87F394FB7BB668138B210BEC9E46415A1B58C990B81E7D7DD301143517
+4C2A259D2A0A1E200F8101469C10D7D537B0D4D39296A9AB3F132DA9A3B459B0
+F850E2B3A03BDCB35AEF82285D19C38F474FB414F8EC971B994D1C7DD753B271
+2B71549DF497C665DF0F266988209D9EB616E4D9BA229FF984E7A886DB01FD21
+48ED2E4859FD6416C2CE52537464EA884C8C9C2D1083E2B83BE4B766474C23B6
+6E8EC5003200AB10514BB44D14CA700416AB6B2683E80862E7D5B49A05526A32
+554BB23AB8B0824BBA198E3825CE82380CC0FECF46651E3E5D77F09465E73164
+20342822F29572BC7F73F2C3BF95ED3BB6FDEADC20C6AC866C4F2C679594D7E8
+8D944704A3C5D771DC39503BECAB89F34D8CDB8FDB91AFE21F3F0260D05E90C5
+73E2C13DFA022C4522E5918EE25038A0498FBB530DA33B0AE238B1C6ED03FC04
+2BFED8236E07820C5BAB411EAE1B31D93A2FA7C374B1725FEC359ABCB88E2C89
+214529A263D795AACB0B95A3AB2F4E08EF350C282CE521716DBB06E5B8291B3F
+5D4ACA230FA192F64BC902A4C8842C0F916F92FBD002ADD408BF0401D0284FBB
+F05D4C6DB631420747CC902C5E1617E6573612FB26C8378DF41FFB5048D3CF06
+4893DBA48EF4B043D760F60C75712169D16C83EE020C45369E443E853E1809DD
+F395B812067D6FDBD26111B34F42C21036AF952D0D767FD17F6959D9FDD46005
+D64FFF54772B50BB9B173AE79702981F58F9F235C591F476A31852174DF0619C
+A470359153DC32610E782B204E7945515464DACE9099B81EEECC7EBD4B5126AF
+C3FD9DDFB329AF1C95C41FA4A5F6958869509A23BD7210386329771FA46FF926
+0E54AC35106253EE140449425A8670E1F92B178A02A58EB57540F4BD8110E548
+BB584EA6D625C5F5FE0124A98E49915F1A1B95D2125874360EED1C4379FEF3C6
+90E5780C20309F11F2F23FAD635C44BA030B39EFF083A3ECCDD2641DCA8AF5D3
+38B381954F72A516C2992AB4AE55E632295FFF352A88E9C2D901676B3D3CB40B
+368909AC14C76F9E2EE3EAE0E3A72B17DA4D2433C20A3AE34EAA1C05B680540C
+291D8363D6118A2B8AB45C9FA2654F06F9F4248AFA4287415DAFE555398EC874
+51178E7B9C6B10E6AAE046075E29F62C0FE3A401590B838117871F785C9863F7
+5B803B0B2FA0B03876934B38547909CE4E7B9A38ECAB64F630B74032B8F13C64
+1A4E8BCCC9C489E6CAB6C1A3F20FB5E70CB6A74AA9900EC747EE3F203807BABE
+52BAC816D7E6F42D6181DA8069360937113A9D4E2D84A9CEB123CB839DAB8E0B
+B9FD23BC920FD3A68120036DDF1B74096FA573E942C1C0F73652D96E7F487BCC
+7590343EA8F75163947A86425829DDCAC34E84EA5E8723AB70E7355E5FE3274D
+CD99D3BF63081D81E572578BFE36E68E28A488C75426D86B7E7394402F4EAA75
+A2FB4438E7E518282B52A7EA2436AAFB3D24311E2EDDFB6DAB3C8E865D7D61D1
+E1914687AB0ABE2DE4B905587ECCB8EC0B85423FC6284DA46784BEA1B1EF49CE
+47550DCBB94AAC51B67FEE0D69F714F5EE2C68446ABE60F49A140D6C9269D345
+1A33909FD9C3D4BBD47FB70B602A66139D234D7FBE220753EA9D28619BE63FE6
+C9309A42B865F6AA23E3186A7A0E9E2848AAD76FC94175FEA501CB15330B5A29
+EDC1226C7B4F3FE279371CD73D8BB567D615918BAA77D443D0F3BF1D86C005FC
+8108930EB83C05B2AEA009541BF6CDB7FC4AE5AD29FA175242DCDED40BB2D6D9
+E752C53BA5995644FCA1D4149A4410B8BB598C45B3586571588FA03B7FDDAD5D
+627B113017D7835B8055A4F8916D3BD64FDCCBE8DA8B0527730C3E76784DA9F0
+80DA85CAC8451EDB7A32D7BF196EF79A2E2DA9AF416CCC0098024B22AE784AF4
+770C64D21ACC65E34861BD9571F9EC73ED340715DBEB186C42DC516AD232C559
+E1C046118EA068575D1475A4E1729CE5CD6F267E5CFAB0D612EFA01F92F9F26F
+C3DEEE5512390D09ABA1AE2817D51583D2E9E5F201246801055BC186
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+cleartomark
+%%EndFont 
+%%BeginFont: CMSY7
+%!PS-AdobeFont-1.1: CMSY7 1.0
+%%CreationDate: 1991 Aug 15 07:21:52
+% Copyright (C) 1997 American Mathematical Society. All Rights Reserved.
+11 dict begin
+/FontInfo 7 dict dup begin
+/version (1.0) readonly def
+/Notice (Copyright (C) 1997 American Mathematical Society. All Rights Reserved) readonly def
+/FullName (CMSY7) readonly def
+/FamilyName (Computer Modern) readonly def
+/Weight (Medium) readonly def
+/ItalicAngle -14.035 def
+/isFixedPitch false def
+end readonly def
+/FontName /CMSY7 def
+/PaintType 0 def
+/FontType 1 def
+/FontMatrix [0.001 0 0 0.001 0 0] readonly def
+/Encoding 256 array
+0 1 255 {1 index exch /.notdef put} for
+dup 0 /.notdef put
+readonly def
+/FontBBox{-15 -951 1252 782}readonly def
+/UniqueID 5000817 def
+currentdict end
+currentfile eexec
+D9D66F633B846A97B686A97E45A3D0AA052F09F9C8ADE9D907C058B87E9B6964
+7D53359E51216774A4EAA1E2B58EC3176BD1184A633B951372B4198D4E8C5EF4
+A213ACB58AA0A658908035BF2ED8531779838A960DFE2B27EA49C37156989C85
+E21B3ABF72E39A89232CD9F4237FC80C9E64E8425AA3BEF7DED60B122A52922A
+221A37D9A807DD01161779DDE7D251491EBF65A98C9FE2B1CF8D725A70281949
+8F4AFFE638BBA6B12386C7F32BA350D62EA218D5B24EE612C2C20F43CD3BFD0D
+F02B185B692D7B27BEC7290EEFDCF92F95DDEB507068DE0B0B0351E3ECB8E443
+E611BE0A41A1F8C89C3BC16B352C3443AB6F665EAC5E0CC4229DECFC58E15765
+424C919C273E7FA240BE7B2E951AB789D127625BBCB7033E005050EB2E12B1C8
+E5F3AD1F44A71957AD2CC53D917BFD09235601155886EE36D0C3DD6E7AA2EF9C
+C402C77FF1549E609A711FC3C211E64E8F263D60A57E9F2B47E3480B978AAF63
+868AEA25DA3D5413467B76D2F02F8097D2841D18D9FD9322A4F246DAE64DC630
+B86F4622F9D32FC5FEADBAB308D350F7570B97B1F9C10E099AF4D4C3D0AED2C5
+20F6A70F5E875C5E74007E6ECBD277C79621FD28A3D9A4D580F8C43AC92CE172
+0E808B4CDEBAD6578C1A1B0047D79A131EEF66883572674BA98317E090FCC122
+96EC9AAD02773354CFEABC088937A9A3F195E135491410FCC7019EB0B3B4D3CF
+CB352F69101ED45E4CAF4B2678972155CB78ADA25DEAFC20F23BEFAC1073CA0D
+FA7A0FA111486490BFB71918DDBD5411B54E58F27C9B3EC1262A8E3320289F15
+AE564E1D3AFC593DB0149B9927087F7AEAE3504F248CB2A7CEF1EA840C72D46D
+18402F285D3E70C8DF7E23A25181B1BBF4D4F97787F6FA4397E44CEBB8F5220A
+401EB063D3D124CC0858A5C0CAA6F3A9655CF64DF73456FEAF4D85FD19C880B0
+F5B3018B8C8547497784895FAFC336897804EE40EE8361B3AD7D8935D2C80F7B
+CE176D1F5062D84A01EA1F2B68881EEA1B5A52F1FF87F3BE59AD125BD316044B
+864834C70FBF630894EDBF22CE6083D7217D6C8C03E7D7ED5D347DD1573B7C70
+F3D0627FD6AA99797064B63C950D63A2D745BA105464F64ED210465FD8EF2EB7
+2200EE1752D9D523ED948B828A5B5314A96A7C145DB4638E2F3256D886A0E593
+7C110A98ED80EA52B1997D3A23E62B1528F91EEE707938A73AE5FBD78213ECFC
+99F3F313287AA116B92E402767D3DF556DC5789F0980F1A6D3AEE0F7D562F275
+FA362B332F0DD0AEE1C0DA14DFBCCD5D0628040C0917B8189C52D035FF20387A
+F6EE0691E7A3A644493DD4A7DC54E8A5BD71E7019157F7FB5DF4D30BD69A2077
+1DB1C3910E3A63186EC1FAE689E45C7ACAC587D72D19D9581C3BB03B70212D46
+2E7C6F72FD4FEE59F391231D089B21E993399F022872625C5DAFC8854B3B1215
+6CEA8B79E4F25221612A68F9EFFFF3D3C369AAEE01BCA2E9CD05BBDEE7E4C745
+FF7D8C15B246769E9A3FA39F00617A805F09AB4B9D2BD5E6D904ED29467EF4EB
+7827F1FD54A84B1DECD5C01974907F739AFE52001608227439BC506CC087B70A
+FA3E14C4038A859CCE3D02F0E6E7FAD4F2F395D1408FF364DC3E6E6257F2C674
+D6DB9BE7492B2F99D3859A667F56751214691ECC54726549097CB2BDB6920FEA
+154C311583C13D1F3D6E0843099F68987D0EAEFC2A64E8F70FB47759767F6386
+269AA0BBF6D3BA7D576B3D603BBE512B820DF8DDB926A76C354746B9D2696F71
+E7F112A7327F3B030D0009045FDF4F016CB24E97842FE212F88FDB7DC1F3215D
+5593DB939F4191C886FCA513B58F03C08311BB9E6B3316EDBABBE68BB3DB604F
+45E89177A6A9C8549DB3F205A6B20B36D5FE0A4E2CF40C2EB535FB92FF568221
+3DA7E6D85A02F6D708C686507325156328B803BE5ED27B4CEB8831DF10F953CB
+98B09895FB5774FB8EC1EE8AE16FFF37D15713316857202A25AD4D4F1FE9296E
+242A054C94AD0893E926AA5F592A862BFA3B76EED1B0294ED2EA9C28CDA2AB50
+638F8832E4A2DDC46F07ABB8A53710D6D0CBB7957C540B2D101A17CD1C9A2CBD
+BE1C632B25D741D603F40333D73AF3069D09E151C8F24105495DD581A83BE613
+2F143B3959843FBCD6227553704FF0B759146B72606A4755718F55E0E5B0FB64
+4CA13C419AEE4C0A83B2BF518052D9A124633A03091B9D255696DB4A49109AE4
+346DC4C5FDB260967CB0DF1558D351C2D58494B59B193C9B83C92E45C0C1B5C2
+EF48D2E87CB44188891E6C666C5CA22B55541C1B8F3EB974FD46391D69E1E517
+EC58EC3C20DEBC574A63F55C22200EEAABCE8F3973D04CBF809891BB06740BB6
+A5EEEC30317F61AAFAF8D8093A52A551112B68351AE783FDA567E588A075A411
+6CECEA4E7DD74EF1C16F108FBFE183C058FB5A84E8089068C0368DE046641D9E
+9FF088952533544276B11E179F91EC2CCE895D5E908FCF2371693D09209082A9
+C502EF0EB93EBC3DC4CB2AA929D5458497ADF19AD84209C99675D2639DCAB638
+19F0D34EFC1BB0494CF85718DB74E65637CD349E50A7D0CE7ED4FCE53E8ED60C
+C3D2E169ABE61F8515305D2C204D30EE8DB1D7596FF7F1364F0FD171614B8F56
+FE502E8D6F6B6138A02212CA74752CF568AAFD9A93306B1D6A09821B20BC3380
+A0D5AF2D67DC8D953550D4C32F8F309FA840F51FEFFF304F14AAB37051C9E597
+BE914D919DA5E7E7A8D6B80632B5BA800AAF92F261E9065F9018B4F807658815
+3A5844F90AE0766F1AC262B6CF2034EB87F8A2D77A973D0D0021EBE9E6FC76CC
+278F7E033700B46ABCC4F69A0C9C529FEA72D52D812CE437CC8004F07E2F358F
+F5A56842CCCEE3CA34586DA179AA9B3AD96E3D3D5BB995F80A7AC089C4D99636
+596AB79033F8A7B7D7775E391978CD0D9C818BF4C59C123CA8B301920CDFDDDA
+D481AAC555AFAF9741337849E2852671FB8ACE020DBF0FEC558CCCE80BE72013
+F7C2A429CAEF2EF76912CA66E36632C74C961E5B01BFF987FC61F0A996FB4EBD
+2746DA30C88F75357AD8A161E2A2EB720A77D221B87E92BFE8FD7D6E2D90B739
+07AC0FD0879F01B9515DA8CC1EAB5088D16FA6D201C1EF6F8E5011004313D0CB
+2E34E02CC2E891657BD0B9621D8C8DB8BE7B9BEAF49D2C3E0A00CA3BFD4809F5
+073D74FCAFA224CBF2640F2E9297EAD2A51851D0E6A97E97A77E2711FCD76DAE
+B1DF2B7804FB337E6749DD408B7575D50EC11FCF93DC7D1035FB5CEE1DDBAFA4
+58080146B7DC16AB7A527634430A7427941981E8641578E4B706879FF29DADF1
+C8736563
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+cleartomark
+%%EndFont 
+%%BeginFont: CMMI7
+%!PS-AdobeFont-1.1: CMMI7 1.100
+%%CreationDate: 1996 Jul 23 07:53:53
+% Copyright (C) 1997 American Mathematical Society. All Rights Reserved.
+11 dict begin
+/FontInfo 7 dict dup begin
+/version (1.100) readonly def
+/Notice (Copyright (C) 1997 American Mathematical Society. All Rights Reserved) readonly def
+/FullName (CMMI7) readonly def
+/FamilyName (Computer Modern) readonly def
+/Weight (Medium) readonly def
+/ItalicAngle -14.04 def
+/isFixedPitch false def
+end readonly def
+/FontName /CMMI7 def
+/PaintType 0 def
+/FontType 1 def
+/FontMatrix [0.001 0 0 0.001 0 0] readonly def
+/Encoding 256 array
+0 1 255 {1 index exch /.notdef put} for
+dup 0 /.notdef put
+readonly def
+/FontBBox{0 -250 1171 750}readonly def
+/UniqueID 5087382 def
+currentdict end
+currentfile eexec
+D9D66F633B846A97B686A97E45A3D0AA0529731C99A784CCBE85B4993B2EEBDE
+3B12D472B7CF54651EF21185116A69AB1096ED4BAD2F646635E019B6417CC77B
+532F85D811C70D1429A19A5307EF63EB5C5E02C89FC6C20F6D9D89E7D91FE470
+B72BEFDA23F5DF76BE05AF4CE93137A219ED8A04A9D7D6FDF37E6B7FCDE0D90B
+986423E5960A5D9FBB4C956556E8DF90CBFAEC476FA36FD9A5C8175C9AF513FE
+D919C2DDD26BDC0D99398B9F4D03D77639DF1232A4D6233A9CAF69B151DFD33F
+C0962EAC6E3EBFB8AD256A3C654EAAF9A50C51BC6FA90B61B60401C235AFAB7B
+B078D20B4B8A6D7F0300CF694E6956FF9C29C84FCC5C9E8890AA56B1BC60E868
+DA8488AC4435E6B5CE34EA88E904D5C978514D7E476BF8971D419363125D4811
+4D886EDDDCDDA8A6B0FDA5CF0603EA9FA5D4393BEBB26E1AB11C2D74FFA6FEE3
+FAFBC6F05B801C1C3276B11080F5023902B56593F3F6B1F37997038F36B9E3AB
+76C2E97E1F492D27A8E99F3E947A47166D0D0D063E4E6A9B535DC9F1BED129C5
+123775D5D68787A58C93009FD5DA55B19511B95168C83429BD2D878207C39770
+012318EA7AA39900C97B9D3859E3D0B04750B8390BF1F1BC29DC22BCAD50ECC6
+A3C633D0937A59E859E5185AF9F56704708D5F1C50F78F43DFAC43C4E7DC9413
+44CEFE43279AFD3C167C942889A352F2FF806C2FF8B3EB4908D50778AA58CFFC
+4D1B14597A06A994ED8414BBE8B26E74D49F6CF54176B7297CDA112A69518050
+01337CBA5478EB984CDD22020DAED9CA8311C33FBCC84177F5CE870E709FC608
+D28B3A7208EFF72988C136142CE79B4E9C7B3FE588E9824ABC6F04D141E589B3
+914A73A42801305439862414F893D5B6C327A7EE2730DEDE6A1597B09C258F05
+261BC634F64C9F8477CD51634BA648FC70F659C90DC042C0D6B68CD1DF36D615
+24F362B85A58D65A8E6DFD583EF9A79A428F2390A0B5398EEB78F4B5A89D9AD2
+A517E0361749554ABD6547072398FFDD863E40501C316F28FDDF8B550FF8D663
+9843D0BEA42289F85BD844891DB42EC7C51229D33EE7E83B1290404C799B8E8C
+889787CDC1848DAFD932D1E8A74A199E68358DFF3D1DA1E7B63C5CBC605D55B3
+91230BFE4B29F61F93756CD992DB1BF700C462FA4F7A8E58218A085DD42D11E8
+293BEDCF41545BBE33E9D59BEDB25EADA7C8C6CE588E27C354AFB7AE87FB782C
+8F1889D94E691E170109E3594AB5D36A7B034DB66EC752C60111EAE7DD10C02D
+FA106D0CC3126B35491CC8B492DFB320399486E1D5E3199F204D1B2C01FB8B0C
+A994AC2104A89A22CD6E64D7D6EF4D2F3BFEAD3FE1F7D6F218BE9882AB9BC5E6
+5F3BECC8A6ED5849319BBE98458BD3C88A4B66059DA82A1DA84FC462FD94D336
+E011E5D87161D3D28DE490FBCE6DC7ED0ABD9F496D59E8C691938B99875455D4
+0190F9EFC3349AB7AFA65FFCE08818C3FD9FD96916F09131AA8C1E3573040D50
+A705B0205613EE1749039D22062AB1B8B04D109CE9938649BEFFC43767A757FF
+5859A25C4B9E46A9F39544B789A3E8878C4E777EA1E9A590DF93997B0257E502
+33E150EB6C0D957C43023D29077E2CBDBC4DA3F0F0AE031D7E91D1272F285D67
+175B2730BF327EDD7A150D45E8477F013772AED65B3F60EC0C699811E14C7BB2
+690F775DEB7815B76AACA7716DBD73A86C5DC900BA7FBE738DAB001D4E596DE0
+4AF3A14D5D18D3FD83D19BA2C5DBCC03804EAB328034C1A77520252C91DD8131
+836567E3CAE765CD732485CCDBA90679801CA782B56FB60D193D4EF1DE28EEC1
+4E14289404B2FA5F0AC744315EF59CB81E90EAD2D13B4F580549EE35136C65AA
+F554127A7E8A8179CAB7FC41A868A3CCF1A2195EC698D3C4C7E1048D61963684
+5C11FC72B0591C81EFDA15E242BD051DE35AE6B0031F9A72F9B7DAAC5A1646AD
+F47FDD11DA3FD39E8C5092F121B299816B38AE583C110F1D455C5A5A051652C9
+0BD4DAB5CCED34C3CC61C7C544F27A33CF1C2C10BDA2451FF62C81BCCA63C451
+93C803082B1572DDB0225133C84AB4FD5A081BA45DAE1C3165D2564B68FA76DD
+B6DD2E829C5E01A3B6B9A72B85657B90AA22288A81B80C17D18689C2FC87B945
+22CA379D198AA1646D1C83C5A869D95F212589FAFFD2379448C010A6E8E5F387
+F00B17D7BF1E519CCED5068560CD05F00D422DA92CCBFE95989DC43209CC76E8
+8BFB0DC9C0ACF032D47ECD660228280ACE7D77777BFDB0E7E564C99CB0A4A85D
+2AE98426B6AE7A8846C0199F60A72C56709DD3F520C10E4E5164F4F0E639EF42
+2E478F15C77F8516C4EA6243B8CDBDE39687F3318A5B175753A836B3F50A88F6
+C9ABF8A8C297BA53A3CD0368E9D93DF1282C803935CCEF3CBEE27C0113F7596A
+B1FE4F21C8ADC0E5BD3BB23441CB13AEA0245D9B632BC2997274475195450443
+570CEE666E96B0F3545D4116F8487D49237ED413770D6DA21FF23AF7E42A47A8
+595E07E8A39C9D8487326510D36655C267275414399BABCA31BE283780604086
+02A13C83DBEA338072C65D14AFCBB369503912C677A4F7FBCF3B47BC2D894E36
+16E1F12D315D4E3CE0CB7F542A593367FF86CC1EB7453C61461C104736292689
+514B900C9DE56E2A24B48ACE604E80D95ADC287E42AD6C2AEB9108CFEC11E6F8
+61A87D63077F163F47BE304F5EC34C440F21DB7268C2A41E0BF496A1505365BB
+E2F430AE8D7E93AFF2AA387440AFCD80217BA805C89E444B7D87D4B6189CA03E
+4F99736BD385B5DF9BF57CFDA572E5D2AE39A7C0685701FCCE60167177FB862D
+4B0D31A6DB92220783AE14F21E18E9D7055C24B70ADAC97299191B14D288FB46
+B7F7460CBC9CF76ADF183213A8718E94EE579D2F45EAB20B093624F9942EC618
+092515B056278122DDECC40041E90E0B900F087CA6919851D4EC330BEEEBC66B
+641FEB7C8153FB42907BFA16FB7256F04F6F59D5E841976137BD1A397D4EED7F
+C2240CFADA1811F77C3E046EB1D2916B7010D22E153F88B0BE926F64F84E468A
+D9D92E6DF85B78E88220918A97ED1BB5C67114B314DA717C90C2B216FF09DCBE
+74BDC629A334564C663FD8AB455D923B71DB1AA1A24F2ACA472F67106FCB09AB
+342B1962923EBF05CA93D0720B79E8BECA5D5AB324942A0FA96A69850D323129
+B4983D5533CD33BCC1020E2BEE0C22D1895605BDB3588DB9E267298696CA9090
+D48D3AAC2D1E1D4EA00FEE7CEB47694FCD32688277534155DEECF114882B4131
+EE3539310CA19B8ABC4BFAEAFE4BC3A9227DFCDEDEEFAC08B2C3B3EA34C6A15A
+25909EE284C619A64588BABB240BBC66341E6D38DC4828662FEF788DCCA69528
+5F5F58126DF9E609099139856C8F6D253193E25062FC167E8F060CACB85D541B
+469E1FFF787963CB4B298B56C2947EEEFCAF601E46116BE860646426543D7F72
+919F72798AA235BF66965831DC7838DE4B3569CC2BED9C9ADB47DCC3A19E15FA
+A8661AF3B3FA54BB57214CA54750CCD66E3F91FE240A36CB92FEE4B1A88EA727
+EE176C949E0CB60F587198842E6B274EBF5D8675A0F40864F05B1987E4DCF7CF
+691FFBDC91DCE3ABFA3627399AE0A6D995034F327233132EAD775B2CE46635A1
+AF94FDB847708564AC7A3EE24D364A4D3C3299146706829EFF7B304E9751F4E9
+03953DC23324F9820A809074C4B69A4183A9B2A264A08C77B6BE1EA720FECF5A
+2A5E5EEB67851AD0516D05B0BCB5BF6A97893704623BED5931BC5B5166F5D616
+2181167600FE28920616B2582FCCFC8EAC6370C4D6DC33FC9575884892C15F97
+3576CB67FCA4F4F3FE81F06AF3FC9D68AD1337B3F94F880A8D77BD95ED733311
+C93885D752D37FB4531225BB38FA36C48277BD10FE841D8DA03A9FE5AEC5362D
+1507675B4AD4705739323EA1425CEA79A748FE2B3E490D474D21658720FA8534
+46899EFCEA330298AA5782D9B963C0E79EE8A5F38D6B677551736FC7DE2FD32C
+CBD02D1F0B781745728286238C2CF5951D8F698C6575F2BFEDF783C2A3EC34B7
+FD439C94BDFC461E41CDBD31576D345AE76C79EE1A3C1279BABFEB9C164BAF75
+AC1852AA8AB0632AEF85EDBC921B3156DD05D032A386AF9B47E86FC316DB91C0
+13EDDC6109827BD21135A5ADEED3E0C45CC5EAB41C84662A98A6271F3F7D148E
+652844F5936B5D5F432FF32F2BA89B2E4A9045B9F35B1AFC94B3BB5A64878227
+A18EE9E831D0335D007ACF1955C096F33FDE239672558296C477AB45C45CDD66
+C97C0872882F948E78094C941294196B255C48F345D9B31786AF64AD78525B81
+D5F21B14251270040CE783D1CEE2A0C03ED63AE64B243738EFD4BF654901BE01
+DCD2B45C5FFA0066373EE592D9527DDA6E7162BB718321984AEF3667E1A103E2
+D57EEB0B3E8273F8AECC705B3EEA58DFC48AB9BC657DD9FDBA6DFF256D3DA21B
+10577F90E36AABE30C55821BA62B61F676B84125753D64D2C96CA8BC14324109
+0447761870718B678331A04D6E90DEA6B3318E84788A70700AE40E358CF477CF
+4E96E1A2D56B08A2E09DE719BA11130C99619814D7E9C530796F7D0CCFE3D7C3
+88BC839D685924DE576989CC9904FA276F078D7971219759323DEC57F744A17F
+F1B5A51A94509CD49ECC1233E296C7F5050E2839F9AA5BE513ACD1080F12307A
+FD58D1469C3210CFAB69FB72C3A6A89F8BBB3941DE1F95E5CC167CD654FA063D
+53521D48C362257D443F0B22D3B189A6009F712E37EDC950993734F6F0D35D60
+DECC414E88E093573B83E127480D69B5C29FF552EE380102D2A0FA68ACAD889B
+C9E2527B4AA0DF572B8ABB13021A8D71A0ECC6B17A1371ED725B72EAEBE691F7
+D156549F2274399163EF1844A7D72182EB91CF33E5F4CD560071DDF793F436D2
+B1C526E197452018B44B301CC4639DE5B8CCBCEE4BCB2EF9315C77713CFFA4A5
+75CF6F8AB0AA50D6124535AE11F9D57B79AD14EE2DA12D70FF7680C912C65A16
+91E2BDF3FB11AF7D0A2225CF6E21C97F4BBB3F5ECFFB09EF11FF6E5A32754D6B
+AB97F6C8D44E7551B60E4C695F032828CAEAC718DA27FC1EA25AA34CF9BBE4FA
+BE6E84BDB655F3F9304196BFAB8CF3D72888601AFCD00E097DCCFC3BC90BD675
+84C9E639FD40C03CC362CE72991ADA9F6CA21FB04A192DE3B64E7121EF117072
+AD2CD2D0B67708086A7D723D58C71133CF791342078A625A913E93647F2B8219
+C348CB72870E4A11630E0C58BB16964B018A7F19A5B5C5E4FD728A876930E6C2
+538F6F4F9CC82989A89DEABBA391A7B139B306C6C75D26F8360FD1A92389F4FC
+54C177C94242542D83EE4F7A10A9022C93C9CF0FC41041EEF7B237DE69D27D1E
+FE438D3A7DCDA552175DD1B8A373BD024D440C4224B62E6FAF9B171702BF40FC
+69C95A8F03050BE4C59F537BED066C2AC0AB5AC2542FD7A26572E568FAD31622
+53684AA0511AF7C01BCDDD54250904446665242F73E7C73DB6BD518621B487F7
+21B19285239AC8493A791C7183036379ADE49A8A80990C5881C5B264DAFB225F
+95F889B959D107484738150CBEE8A2495626C2D6D0F446192C6CB7EC7CD7C593
+A1923604ACC7910DF64B49CB302FBC7C12A6BA6C923907171401F5329CF29768
+170A0E59A1757854F28BC6E24EFC6F2C1258479DC076CE031287DDF5FF6C44F9
+E7CF874A2F5DFD0068EB46798FFFB97234AC140ACC6FFAEA87C7A55B03145B6C
+FF6ED6E3B4B5C8CB3F257D2CFD48EF000055AD760D2DD9965B068AE0351AAE70
+103DB2550CD8B282179043D94574DB5A3FB9FE88030270DC72873B6383AD7FB4
+45F3163BDCF95891659450BC907CCAA773320982ADAB6CC744D9AE3F0D565F5C
+2683321E57894E87F38637988CD41510CE99071AE61C73861C1F8C3DF7D31D80
+B9B13E89D883742A18923830D392D292C9AB84BD3ECF8C3CE3B74BC0F0A90C2B
+085D80D6C75EAF8E01365916D9B12455FFE7A5241F76864818EF48B248C8CDF8
+11A9C14EBEA5403C1E5D3434701DD0376904686A58F44213E78C3B48C6D42063
+59E2B24864ECC63C751DF029E19CC8653CB6C28F32B67C2E2C9DE08A6D0899E1
+00920C4B26A9CA93579F242DFECC168C41E294742123048497442F2FCDCE03E5
+3DC9772A0E6562EFE6F44ACAEF6315F03E9828A9B0738B55997C23F5ED8B872A
+063E202D38BFD725B495B2E4E3E97CA11F3DAE742F94A83B7F478C2A866E834B
+38E99622C64DDC684445054C98214591106159644B36FF3430A8A99590AF5DF4
+65D4EF3E5DA6F9769C2BB5BFAAAF14C699CAA15F50473CA02C1DC76D2819A336
+C1DA447B3A70861C77CE41D234326D96AA9C5E9C0E4316343F
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+cleartomark
+%%EndFont 
+%%BeginFont: CMEX10
+%!PS-AdobeFont-1.1: CMEX10 1.00
+%%CreationDate: 1992 Jul 23 21:22:48
+% Copyright (C) 1997 American Mathematical Society. All Rights Reserved.
+11 dict begin
+/FontInfo 7 dict dup begin
+/version (1.00) readonly def
+/Notice (Copyright (C) 1997 American Mathematical Society. All Rights Reserved) readonly def
+/FullName (CMEX10) readonly def
+/FamilyName (Computer Modern) readonly def
+/Weight (Medium) readonly def
+/ItalicAngle 0 def
+/isFixedPitch false def
+end readonly def
+/FontName /CMEX10 def
+/PaintType 0 def
+/FontType 1 def
+/FontMatrix [0.001 0 0 0.001 0 0] readonly def
+/Encoding 256 array
+0 1 255 {1 index exch /.notdef put} for
+dup 26 /braceleftbigg put
+dup 32 /parenleftBigg put
+dup 33 /parenrightBigg put
+dup 88 /summationdisplay put
+readonly def
+/FontBBox{-24 -2960 1454 772}readonly def
+/UniqueID 5000774 def
+currentdict end
+currentfile eexec
+D9D66F633B846A97B686A97E45A3D0AA052A014267B7904EB3C0D3BD0B83D891
+016CA6CA4B712ADEB258FAAB9A130EE605E61F77FC1B738ABC7C51CD46EF8171
+9098D5FEE67660E69A7AB91B58F29A4D79E57022F783EB0FBBB6D4F4EC35014F
+D2DECBA99459A4C59DF0C6EBA150284454E707DC2100C15B76B4C19B84363758
+469A6C558785B226332152109871A9883487DD7710949204DDCF837E6A8708B8
+2BDBF16FBC7512FAA308A093FE5CF5B8CAC6A7BEB5D02276E511FFAF2AE11910
+DE076F24311D94D07CACC323F360887F1EA11BDDA7927FF3325986FDB0ABDFC8
+8E4B40E7988921D551EC0867EBCA44C05657F0DC913E7B3004A5F3E1337B6987
+FEBC45F989C8DC6DC0AD577E903F05D0D54208A0AE7F28C734F130C133B48422
+BED48639A2B74E4C08F2E710E24A99F347E0F4394CE64EACB549576E89044E52
+EABE595BC964156D9D8C2BAB0F49664E951D7C1A3D1789C47F03C7051A63D5E8
+DF04FAAC47351E82CAE0794AA9692C6452688A74A7A6A7AD09B8A9783C235EC1
+EA2156261B8FB331827145DE315B6EC1B3D8B67B3323F761EAF4C223BB214C4C
+6B062D1B281F5041D068319F4911058376D8EFBA59884BA3318C5BC95684F281
+E0591BC0D1B2A4592A137FF301610019B8AC46AE6E48BC091E888E4487688350
+E9AD5074EE4848271CE4ACC38D8CBC8F3DB32813DDD5B341AF9A6601281ABA38
+4A978B98483A63FCC458D0E3BCE6FD830E7E09B0DB987A6B63B74638FC9F21A5
+8C68479E1A85225670D79CDDE5AC0B77F5A994CA700B5F0FF1F97FC63EFDE023
+8135F04A9D20C31998B12AE06676C362141AAAA395CDEF0A49E0141D335965F2
+FB4198499799CECCC8AA5D255264784CD30A3E8295888EFBC2060ADDD7BAC45A
+EEEECDFF7A47A88E69D84C9E572616C1AC69A34B5F0D0DE8EE4EDF9F4ADE0387
+680924D8D5B73EF04EAD7F45977CA8AD73D4DD45DE1966A3B8251C0386164C35
+5880DD2609C80E96D1AB861C9259748E98F6711D4E241A269ED51FF328344664
+3AF9F18DCE671611DB2F5D3EA77EE734D2BED623F973E6840B8DAD1E2C3C2666
+DD4DD1C1CF9DB1FD1568F84892C602408AFD8174118B9E1476C8801DED513932
+51BCDE26A82337CFD5F3B580B27A7BD455BBF87290F97517340AD7D9B3663949
+4230B06522990A72E75766FE24A1A357040526094A4120761FBE4F48CB00BDF9
+23FFA5E1D4E321E73C0BF6EFE70E24003DA8B3F6AB0F780E4B8A0B6A0D1CC84B
+82848025A2F2497E786B92548E99965A7498B01A37E06545591F7A0597DBA099
+DBD625FCD575B070DDD1F1BA0DDDD13D0047A2E3B8B096A24733285E8D6AD68F
+125883B2C12955D676CEEB409E3EFC732465DC047DC25F648E2D9562ACCFBBC8
+2A544964C807D020BEA5FCBCD10F4264FCD953C318BD41CC53651703FBCFE52C
+99F0CC1D9620CF245046313783A05B9FD1DB37A5045D9640D4A64063F3EE4275
+2DAA45D5369022FF32D96D49343F4E25D83C16FAEE2DF30C7E41E919B426C967
+6A66D59EA270438307BD226DF3C0993AC7D6B26B1A3F905D833901B9C21B9534
+E629E8ADC970BCA2C359FB296F600B75C4DC52FE5EB66183DAA679140D6995E2
+49EA93A658D036028ADDABD9B6D956B625A14E1EBB5B98979D71597B5D09C5CC
+C638F47191FFE10986B6203383E92E1FF91263BFB2E82AB2A451620610C7C85E
+8D7A11490257395A3EC2D367AFDB080F0DE6B9030369672FD6105D7B7BE25D74
+46164831E57E6EAA49B7D1C53CB71E419A2A6152B77C483144FE745E4AA15018
+4BC0205BAE0464992A0DC99A0421B0CDCCAE73942466E93223CB8A3958D8804C
+DB3EC39BF02F20EAFA7C4C461A648A65E40E298B31E01DA1F10E868EB5E5E3A7
+9F463B15DD999C850FAF17F9EFBFAD6A91B93EF2F54A111C63E57BF7C9927351
+C913FC64B76B705698305A217536096A20FB5795F71809CF4E1F5B675FEFBF6F
+D43E1C3FA299479FF5F2671CCF8BEFE154FCFA99BBE00421187EAB46297C8A00
+48C9B7F12E7F9D0858DC1B236718D906295337B446A49B6084494B0D5E37B9C4
+95177CEE8B1262EEF93412838A03BEA2DDE7DB3FBF87F06228D27DF2FD74C48B
+76A2DE77C82E1A8BC2E373B5E1CCD01BB90A6B79DC2C29B1970F13D66235FF8C
+20F17E51E497A455212EFCD204037BC934D4B440F26544894B0937510244AE39
+E70363B040D1CAE645C4E94D3416C00FAB0706958E26166E19E1C0B29EE813D1
+91A13689DD134FF5B89957C63B688798D13817E12C640B08BE4F9B3F8DD180BB
+00FA5B0F4F35853BFEEC2E1399D1CCF477724B2CB647B4E46D8241BFADA91AD7
+EE7324ACF956EF13F9B0D8D3F728324D13D3BCB256B0851430AF6E06679CE478
+4EE427248E69A50EA22BA36B7A1C1704181543C41F
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+cleartomark
+%%EndFont 
+%%BeginFont: CMMI10
+%!PS-AdobeFont-1.1: CMMI10 1.100
+%%CreationDate: 1996 Jul 23 07:53:57
+% Copyright (C) 1997 American Mathematical Society. All Rights Reserved.
+11 dict begin
+/FontInfo 7 dict dup begin
+/version (1.100) readonly def
+/Notice (Copyright (C) 1997 American Mathematical Society. All Rights Reserved) readonly def
+/FullName (CMMI10) readonly def
+/FamilyName (Computer Modern) readonly def
+/Weight (Medium) readonly def
+/ItalicAngle -14.04 def
+/isFixedPitch false def
+end readonly def
+/FontName /CMMI10 def
+/PaintType 0 def
+/FontType 1 def
+/FontMatrix [0.001 0 0 0.001 0 0] readonly def
+/Encoding 256 array
+0 1 255 {1 index exch /.notdef put} for
+dup 0 /.notdef put
+readonly def
+/FontBBox{-32 -250 1048 750}readonly def
+/UniqueID 5087385 def
+currentdict end
+currentfile eexec
+D9D66F633B846A97B686A97E45A3D0AA0529731C99A784CCBE85B4993B2EEBDE
+3B12D472B7CF54651EF21185116A69AB1096ED4BAD2F646635E019B6417CC77B
+532F85D811C70D1429A19A5307EF63EB5C5E02C89FC6C20F6D9D89E7D91FE470
+B72BEFDA23F5DF76BE05AF4CE93137A219ED8A04A9D7D6FDF37E6B7FCDE0D90B
+986423E5960A5D9FBB4C956556E8DF90CBFAEC476FA36FD9A5C8175C9AF513FE
+D919C2DDD26BDC0D99398B9F4D03D5993DFC0930297866E1CD0A319B6B1FD958
+9E394A533A081C36D456A09920001A3D2199583EB9B84B4DEE08E3D12939E321
+990CD249827D9648574955F61BAAA11263A91B6C3D47A5190165B0C25ABF6D3E
+6EC187E4B05182126BB0D0323D943170B795255260F9FD25F2248D04F45DFBFB
+DEF7FF8B19BFEF637B210018AE02572B389B3F76282BEB29CC301905D388C721
+59616893E774413F48DE0B408BC66DCE3FE17CB9F84D205839D58014D6A88823
+D9320AE93AF96D97A02C4D5A2BB2B8C7925C4578003959C46E3CE1A2F0EAC4BF
+8B9B325E46435BDE60BC54D72BC8ACB5C0A34413AC87045DC7B84646A324B808
+6FD8E34217213E131C3B1510415CE45420688ED9C1D27890EC68BD7C1235FAF9
+1DAB3A369DD2FC3BE5CF9655C7B7EDA7361D7E05E5831B6B8E2EEC542A7B38EE
+03BE4BAC6079D038ACB3C7C916279764547C2D51976BABA94BA9866D79F13909
+95AA39B0F03103A07CBDF441B8C5669F729020AF284B7FF52A29C6255FCAACF1
+74109050FBA2602E72593FBCBFC26E726EE4AEF97B7632BC4F5F353B5C67FED2
+3EA752A4A57B8F7FEFF1D7341D895F0A3A0BE1D8E3391970457A967EFF84F6D8
+47750B1145B8CC5BD96EE7AA99DDC9E06939E383BDA41175233D58AD263EBF19
+AFC0E2F840512D321166547B306C592B8A01E1FA2564B9A26DAC14256414E4C8
+42616728D918C74D13C349F4186EC7B9708B86467425A6FDB3A396562F7EE4D8
+40B43621744CF8A23A6E532649B66C2A0002DD04F8F39618E4F572819DD34837
+B5A08E643FDCA1505AF6A1FA3DDFD1FA758013CAED8ACDDBBB334D664DFF5B53
+95601766776A2495C04776953C69D2732F23547143ECD5F403FF3C3E75566B3F
+16C17CD294539CFCAB9CFCDF370A6B825430976BB7637D3F7D4033A7F12CDD0D
+EB1EB9F03CEF58E20F6B887A00F400E321783F34B78A457FD31DE56A7C72ABC3
+1403B9A0E893B29D7912455D84CACBCC36849AAC634D29C5738B14A4DFA99653
+F7735FC5D0B89D6B3B32967D90CFC8E497CEAF7D88A3BCC4F17E4F51F7ACF459
+05C6CD70E7979E704ED62F3D7A16FC6FACF69F13CCDCF5990C5B692D718FEF35
+486AF69B7D71E2C5002EAEB66D60F7565B48CB24B34B2C52DAB341141DA7F8B5
+1B5BF99BE064033615B2E3B041184E35759649333E5AB1F7000C65C906A8C538
+16DB174C527634148A2F489F401C445353A71B51E5E54998C9460DA18328C918
+291F8882044721BDF0FEE5A293FA29D02BDE1C5D5271955AED38A1AA9B40F9A6
+D354B77A0A708049CA10E43242FC77958913C0920AFC8D12E2B6190FD8EAB76E
+13A1AD7EA7451F29F99CD668AE39603CDCAA824845D5FA0D61BBF83D4D6FCD98
+76367C825BE2C8E94E0990378B2C3FDF25F24C5D446503688C4C3F69CBA204DD
+363D0D572C3760784715060B3C03CA440033765C3D65DF2F38D035C88DC72F73
+52355EA7FA093A805C66F12B42C7FD743747D452BD959E63C32F1618A62935A3
+8BDB483C17BDD8F19742CFE0D695FF495FD6FEFF00F055284700531A9D0C14DF
+68BACA81ACC362DAB5464D39CBDEEB1A387F795C1F5F575156B56AAA7D16196F
+49A14E245FAE42A855B42756CECC651D2D7B3386CF86C5690E7F1162BFFC8A0E
+B1A05B6545B4FC9E420221DA82079A2EEE97B191165F80E1D3462B8AD292D607
+6E1A4DF003019E3967617C1F75CB94C0523A137860FCAEA5FB7D11C043A6290B
+A5F6DB1B8FB652C0948AFB790504626B258E65008EE1C84A9F1C8A861F60D305
+664834C5ED2F061D48BD29B4782A4D417D29DE7549027C7F23A60EEAEA95C70D
+6D1073EF9203C1B677EF9409BC3E71BBF923F58F1B2D3F9191EF989508CFD506
+CD5FDF49B0B4C0B58FF9F27E2E6D3715F7B999CC3E1A07A8A72014C028C99733
+A7FBB0E948F76A71FF2CD4EF143CBC02CC9FCE7F098D2DCEFF7EC68F3AA6C962
+D8966CD85F6DBE253460AFFB24A7D748B9539C25316C32489D769F1A456E6DE4
+87DE97EBABBDEA398338E4997CBECF0B15A0ABB495B078F50FD17AFC854CC876
+27D94533E5526E2EAC7197F760D60F04990192660A92321D2421DE22709BBE58
+C04A2F53F2D7A0E18BDD481022EAF12CC622BD62E89EDABD9D1210C8E19D542E
+83A4872291FA2CB018C579895E2D250A65BF259954813679D7CA9A23E42C9734
+A23BBAA7EB410767A38DF4FA905D37A36E5CAB08909EF05D8A81DEE6A9D64274
+FEB2EE1B0922F8CE48377FBAC178302BDD886A026D769B8F8619ED43C02F7741
+DF25B08B056F2EAECA4DC2CCFA1E5032EC4E9DAB629D89C9149471E50D667D74
+D591E0EA9F284AEB72EA881BFB6812A8D64B995DE0B79863E53649EAADC772CD
+71CD8EAA1B6B8184DCC938E0D334B3766A34925A6B6910413E702A11DB21DE8B
+6F51512C46716B86539CBF17EECD121683F9A147498EF189DDAD7A514B24CADC
+BF53AC4561C4E9F11F099D83AC50684C3705E61844A9B02AA670B4A439455F56
+4BDC51A8BB550DE3B345CF835FAACDE1F5FD26859F6BBE020DFCE9A459ACFC6F
+D052AAC95A01796CE75A5337F6F3FDD89AA769C64577D5E6F69C3E6F56DF3CC5
+D330B7257E6F8C183550B27F9E4395F28A45DE60B5BB1EA2B006A786B5C565F4
+BB016BBCA97BE4E01D32A705764DAA4DC59AE49D25C2C30C48DF80354B4E7857
+BF5F6DF6B6FD8397B2613620E059C67B3BCA4FF05F7597803B3B286AE65EC073
+761D0E748AD6776525667A70152C53D23C5BAD4CAEF69792B136F39C1042D44E
+A56C14AD5601514629A71683797A24372668B8CABFF603C14F796A140A3DA236
+88B26D950E282EFF5E8FB46A8791A72A19223EC4C70F4053CC92C5A89ED8C4D2
+94972F4BE7AFD29C404EF9CFD6DED3EF4D054D54F377F8AD7DAEB0492155903F
+B41F0A3352820963B62215BBA2A5073880A8A4B26EC8477ABB136D9A1F97AAD1
+28D9D56220F8B10A2FBDE67D314C72B59E53106FEEE055AAF81250797ED74A2E
+E41CA91C27C971C0408E5FC413B0AAD0D5F15A6ACF0F9616A01A62E123CFD4C8
+8AF1BD4E1FFC5B9588E4F28C8DCFD0FBB37F6464F820BB562E09238CBBC59EC0
+0E1685FB0DC0F79243A1CC3778A25E71BDFD00DCF69583AFF3227C3330B35DF2
+6E1B97F194E21C4615E9603F5220CF416D527BD655132B691ABDB588EF0BEFF1
+919EF4E8B15C76705B76DA1BF68B5C7130E72826CD44866D733DED8C2A41B27F
+04D3C359F56CA94687EF223EB106D87255E8A14BFC656E5B243452F057D27999
+F246D7C7639577A2F4428B3B86527C84F6F918A3CD4485B3723B55D89E56BA4B
+C7C3278457316A6497A79B4C170FDEE7FEFF4689AF462FAE72FEF053798B0898
+342C229D7BF95C160D3FF68F5B54B0DBD864F40AD13BDFDAAD71229EB7A671AB
+E1247B3427DC2AB96DB3C0E07F5D7D7F12B6795635BDDA66DD64868EED3B2F20
+F8F518AF4771166B7A8A8306CF1B86A0DB28052AAC6D3F91D401CAE7B8974692
+77285F40B5B0C1BE08944359A95171729D3D1C5D3B62C0EBD914A984346E3F44
+8F0DDE4912E5B75C7477C65B203C5DF10E8997BB1E725533DD26735C093CA407
+F03D832577A39A21B1E2DD37E6B8F4A7A0295864E4DD0002C95D8ABA2DCB7C69
+85644C29B875A56661D28C8F35BDD786630765E95B07476B90D164E198F5E58D
+C4A2D189C6381896F9113B5A81F4170214276E00ECA7120AE599CFB4F6CF7A5B
+EEE3423174ACE5D2786387CDE7386BA6F6263E27337FC14E26BA77E11BEB8BC7
+4D1E25BA75FEB6714518227330AD3E3B76A7AA6B3A5788972B98A63A4E872E69
+C85FDF422147E20D706EC4E41C15B283E2FD46DBF0D600E1C779B38C47D4DB6C
+1EDAF52BE08B9C0B591D218AB630ACB8698B3227D3435540A9CD5353D0EA2223
+84CC905DEBF82A55191612125285B8C0F028C1A2EEB6DD3AEBF00E1C47B9A8A1
+C16BAED9EFB6C46D0FB456A2C90400AEA7D4DA9288CDF197D9492A03CD454267
+3F97CA60A492243ABAB39F949C423020E425F041AEF08FFAF7F4AAE135F405AB
+75E93A2C2D58BD90AD897D206ECD67D8EC186E2116A355D30724EE05C0A4234B
+8F31FC97E2E0A3DCCDB4EB295379244238D86A8D9EB4D492BA2D8F01F010E783
+1D0329DFD9730B89F51AE9A345FA678A28FF27BE6C2057D40C695CFCF0325DA9
+33EB2DD459867348BAA7D6C987949DA6EF4CBFF90FDD723968930D7166C3234A
+DB7BF4EE1C09CFF0F5D0FB946027AC5923DD5549E68B3942EA942CE6D8FB0406
+D46CE0D59BC7D85B23405D490C233ADDD0AA0796FD50D4D52CAF473B438F4B16
+2C84E3BD00F3F00A7E19B0F79A1829ADA0B6932AEC66B9B4E24A124944EAC95E
+9FA4D6B72D4774FF97E31D2AB2422C3D97BFC6C3D00C35A02CFF3A083FF89101
+5B934493433C05E601E4D66D1173E1BFBB48AF407AFED890AA6AAFFCE5B6C8C8
+88A9CFABF58C5458A75EF0578F05A8B8EDBF93C34A241ABAE448CD492B2D485F
+84D5219BC258F8C14CE2F27DB483A2697285F9F422BDC23FD16EFC5EFBF10C60
+6E5C9E6D8077FA8EE81BD8A107637B9D31BE827FCC508018EF3FDFD716026FE7
+623CCF6194AF7A66CB080D2FED2C3EA9010DB52CFD2D2E113D4643A40AFAD3F1
+2AE82919C1ADAA4A3A759A95CBD5714C332C433F71BBFCC731BB39E0F719D7D7
+8389DDB15D240ADA8B861DD63AAB85111B8DE0C1686316B950C964D3675B079F
+06D375C41B99B293D956BA24361642F46A054B32E1CD92EA73442375A27EF081
+8E22C37BBAB539743401A52E8AA5F1A9FAC2F98A54D0E367B60406B54DAE0765
+E015716B99E74749DC4EFD3720751B41F669B142E70B46A4875B3F7DB5F64DCC
+E82A891805C13C8FA969AE422AD3226AF105BAE20DDA40F82CA89C9BEFBED6A2
+F194DD541450A2C6201925CF91F90AE8F9D6B771B990258F22B256054BBE5295
+F154C3F02D07D34200DF3AF10B971CF61F928765B0C4925CC9EB47F733ECA686
+3518A48994E28B83961B2661B53FC57BCBE6052FCB6063BCBBB6C837DFB86A67
+DBA7EAE62383803F5F3F4F1F0D150FD34F7C9968BC3075F03C4D273FD2FE868E
+6DFC0272EA8E12547AE28350A972389BC19E92B08F7CEEE066B36D045CF9A5A7
+9181B4185C4C2C4F64549DF98A7F82EAC21E4478B5124E516A226736F14B875D
+3408845FC902F85FC2D207890FFF4CC094DC911D759B27EB6A94D98C7ADDE3BC
+424E5205B0B06DD4674C53835E36D55E2ECBD20AE434BA170A443DD1F54D4480
+25D946586F73FE4A8F3D6FC73EC26CB84985EAD952D7C7E5AB338AB49869E27E
+C89E370898D2C7FDEA5BCCBB2373AC21F67087BBF79C4557BCE61E2D9701B8B4
+442F632E2F3CB4EF9B64F58C8245F5CBD14C84A14F5E6F00F67FE9463C702EBC
+918EDFD4B4E7CF2F6DD6FF66EF1D6B1FF77D62EC9B746FF9AC2AAABD95F63CBB
+56DBB8782C5A5B7E7683537A20A4DBEB4C6518793CF7A884924A5B081B0AB4D5
+5F7AF667FFCBEBE1601E222769B61A57313E3E6466F1C5F674AC3238C789BA14
+5A198D5AC92B9E707F801EFCF31ADA3DE26660263A4CA0C21EBC49D811056933
+663AC4F5F2F77DACABB1E4AC90C56B5E1831E6B854CF14753DB581A81A0C6C28
+98B98801C66791DA1DB71F466673E7E24E433CA69A77FCE22C04491EE6FA2616
+DB5A5769ECAA8D45C69D18F4022B373245B93E671AD1A34F5DECEDAD488EAACE
+EB7D1F81D03A5BCBB9DE1B888C961F1D948969D1D4BC446D81EF338B95A19D60
+EC536D0A2A3AFDBE863E018DBCAE93953704223011B43B6E612824120E1FACAE
+79F079D13C5776C7B83079E3AB6690B2F64148C1A604665CC18B57EADCCD4421
+D61892D8B511320FFDA4F3D9130CF6518CF6AA269F7498405624DE47B40D4E22
+8D7F54034897FF291A48476B0CFF96A0D3F9480C795CC2E8AA77D56FDEC83863
+C6F51F9B84D797B9F55E4333E3AFBF2685AC995E2091B9F1BC8480C32E339EA2
+A0568EA286376DF92676ACABB43A9D815C5D340E307B43D9AAF0F901176B1636
+8F00B637805BA79DF903674E06566CFAFBC3050F694D2736B925AA51391BC45F
+9D49C6616CEA7BE501898E9F5D351C57B0A224842B7CE9B880FF2958F3FA54FC
+4CBF880C96083CBFD9BAD186630E03A01C5F0E1EC68897E91979B6610FAA09CE
+3874C6677305590860C1E28ADF9902BFA87DBABFA806D4F7C7815A84CFE7CCBE
+BD154D9EB2C4B4BFED65622BFE14FBB4173736C4CB1B72F162F6CD9137331805
+E7A86B8841E5B6A34032F82023B0D034609CEE9AB6720D1904ACED8966A6C84F
+BA7DAE4A4C6B1ACDC0BA5E3730C4FA074105AFED444F8B94058AA3F7C859ED36
+6D2CE3194B921181A214505FD38321E5E337B48EEE7886208BE137FD9E41C693
+163AE4C44ED728828D4779614D0FFCA0BB81D4F495AE1F13D2C9E32075A46C22
+4BF1D03F1C18C101961E8BC700F27C37AE46C882B5D3CEE41943A8FB9CDDDE9A
+345AAE4DB475FE8E6DA08307EBC264098BF717098B109771776EF592F6883A91
+F983748C84B183B2898EA8FDE5AA561DE7BDBC4DA82011A7286259EC01605B49
+20D8545933879C8EEBE65AF5C4D6433554A0F4C1A23C9F85D78816A4B9BC375F
+6D9BE1773A66FEE8CE0EE38388D76B1AA0FAF3F87935DE90E8DD03D4973C0BE7
+B024612BD9A6C532009332376D67557203634D422C82E6CD9BB127CE3112550B
+2CA997DC15389362168BB28BA3E7895B73B9B1D180AA0B4F88ED54A5B5E2927B
+BC8B4FD3A21C4EA23782EF7655FBE372E8EC35B79BBF5253CDCE1F92CA0632D7
+3492F4D53AA4A84A690354B44D9E7601DFEE78C479CE949D7B7D648C42886FA2
+C22618A6E5381D42398F26C29C25B6F9705C52920D800EBE75C26F8A8DEB3E4D
+54DD731E523A55D847806345EC4BEA9FCFC60F13940A04CEEEAFCEA0BC8A05D7
+A474E4ACF9470969EB4B085059D8CB67BD712D31915449BD02E3A5FDA791C524
+372BC4486F753FE8523D2E2D8991E07BDDE11DCCD76FC1DDD3F1A2C8B0C3ABCB
+F0CCA70E8B87065F83BCC6605DDD7F2D17FE4229BDDD2F9C0FFB2438FC3346B7
+001280746C855733796D5739F986FEA3A3BFC5BF71B915A303F73C9A0024B520
+AF1D5541676144B44A1CB8249E72BE9B1CA2BD6013D66569952612DE7118E222
+23A9A189B2A7654C70AB92B6E0B5157E433B984BBD43EC6427781E4A8344C08D
+454F7D28AD1B968EC857BC256A6517FABA6B05D26AEC508DCEDB6E025340120A
+2610C9FEDB0D2710EF9EB3B3925AA8E028EEC094227A0FA48005FB0DAF1E7C89
+EB9F4195A23D3706BAE386A0790621D75A9928E106CFA2BDC8806C00EC245E51
+68FF44A4136FD801E83FD934EE771EEB3FF4666DC18F12A7673C483DE02B3AE5
+12E8D939324B9185D6F9E411785BF180F835429B9A4E3DDD2720951BBDC13F50
+616CEC23149266455199FCDE0EACDA158B588C72C33EF9D93A95A5867BDC2ECC
+00980201D056D65E32DDCD1BC017A708F74E3FED52839D1A93349616854A2B34
+93C379A24340A4E111E7A5DD902D28600FD556719E0796D22D637B6CC653CC94
+A62C77D332E4C276F7CE46822DD261A6CBE8F9E86B2E49A49A1FE26BAD783C68
+39954750BD051A8C0A41DE6FB55EF0D5FA97D698BC58B2594900D94EDD962C23
+AA067A1C0C23F2CF4624E397C15B3D21F17DB4957378C440EB05E5CDE58C782A
+981E7000373713F347B80937CA3FFDED46744C0C5FEFC20FDC0B0AF6497F7F7E
+689D5B4EA1ED498875F87805E9B6520BD26042CF1C814D1DE399A617C9196314
+9818F4D7C194B6D33B00AA76CBFECA048ABEA48F652EA5FC34E0DED6588DE436
+E04C87D28E37D86B921B78AC645A214AC2A31C85D8CE5ECD4A34EEBCF49153BD
+B748A71939631D686EA1A4EFCF45A34610D53CAC7589021CC3572A89DFE565CF
+B1C7BAB4F880E709D3FB657166702504DF048F4EA2698D7B4E3CDE75C175ABE6
+AF628D3FBBDF4C01F0FDCB6E13094F8CFFE0333E5DC0A49FF46517506D2B6C7F
+54B2094B26E45026F0DB91B28CC0658A6B2775EF9E873B9424D1D971306FFE50
+E99D72BEF2745FA777BE84767DAFB00D66B08D5E4391863F56CBB2BB3B8EEE16
+E96B3F323C6923088C2CEB15A949894DA49D3DCBE578213938D0DEBDB6B1AF74
+81E114E032264667FC67AC11DDF53C7FA664962AB27C5E52CBF3309087B61072
+A6922006F1281435C9CD3566B60311FE72E59CB346824486B1E8A61F09BC18B5
+9AB52CDFCF7C9E6741B1C080D194504388AEBD0B1749CC1A9A89E11DFDCCF365
+64C6D1878142C86C92AA85E6D41DD6E0A467661D7F3F38A26341AA6361579C5F
+E08D5B758296581B64DA65EFB7B2904D02C11CC24393C5A66BA8CA719D9A890C
+FB0F69FB150CEE7C65C4E5A71D4F866F5FB4C9FBB619FB52033E2EC5A315AC6F
+116790EA96BBC3714642D2815438E2D391093250979DEFEC8B24B18471ADF516
+73C1B641EC3F63B5FADAA15B9549D054A1C13AC9CC353B30D96D2BE3EF2AF2B1
+A1261A060E7A45F9C774E11A7531906003D9C524606460EDFEF48702890D8F07
+B968D6FD78596F9B84BF38EAEF3E528628D7E110F5E5126CFA2A1B188CBEC718
+C471DE0FBC6F5EB957D32CF78521A10926FBB4AE299C90D157978F03692BEB41
+5EE296F0184B8A38907EAE38B96026453662B11F1DFC71310EDC2661F3411CCA
+29B62CC744E76542325A827C27AF7217E108C1125766D047603E8D3751DE4C3D
+754E43D09AF42D9FE50D0A3219875A96ED325066AB0C6CB8797ADFD54CB7A30F
+89F7CFC0784F949C24727878E7FFDD888860BB7FBFBE43EA71D86403626BABD8
+EFD6A3B55366EB5210923EC22450BCEA88D1F0FAA258A3C7020F6AA5F154D16C
+6F6EA14D418D13CEC4BE93B3C4ABD5304574468BA3E1C2A9822CEB80341FB278
+07FE5A4A2565C378CD7DCEB7481CD2AB3D5BC0AB5132A000C105C58C33C51437
+4CDD4459C4A9442B8B6C929669557AC98CE523431743728F0BF832EF0B1B1977
+B982C09401DCB6082F258F17E6EFD98136D5AED7B470283C838728729D433B00
+034AB962729DBF7A3C0F39357B0B08B8BF286CAADE9A3633B86DA8FE7F71D5EA
+89262160E75189FE920C6BC57C480535A7ECA9C46C30913626C4E597EA34F174
+6C8060A449039B6AD490AE56AA470438B7B2598A536C24B87258FAF49F39FCA1
+199B353633D318C7805ADC8FEC39E0B81834BDF681E84CE1BFB563AAD6B9ADD3
+FAB6AB7C84FA82246E93F789E3CFD940E092284852CE643945A51BA87814E160
+1D18C7DA289935FBBDE81AE23D1081537CC0AFA094C6CF0A918DEA4A5E01E73B
+9A12F128409E9FF7416E7BCB1C91A669B8251B9BA5A6893F44BE8238F88D0E0E
+B9AF3F04E3D51C6AA89483BA17EFC036C4B1C5BEDC24B29AF4219202CD80E948
+41A58AEEFE1688039C77AC12BB010DC2E4813FA5D2DF68D3EFAACEB3B8526313
+156D9B7A59D282FF28B365EDD99549B8C93C114C02FE48B382C96E0F6DD334BB
+C298219A85DC173E4DAEF74F4117BC26CA14CDD5B1AB0079C5EB0C128D15E31A
+EFF5F4C0C750E749F3F42CE96080845561F57568DDAB408672BA313C11E72631
+6BE05442169E163EB0EEBE5464AFCF17567246C2AC315261DAC41515ED612E2F
+39339FB39A8C15F6F2FEB6EB8E89D899682A508196B2F606A18D7D8D88B19033
+BB7086B760F8EAD4BC1B67298E21764CE8801B43C086E93C19AACA27B8553518
+3D6CF71D806A2329D8AB864D83FE158D1A7008B7AD1E2EE865911442EA0463AD
+F27A282CB73E34EFC49825FB5987A4DD00E9AAE07EF4FBE3402995CB543E6AAD
+A67CD40C4D169BA585629684962126422F61DC019D6B2D86FABDE108C62335EC
+CE964D622E2DF6E60DB5AB351CF988C93D505216857BDFDB593733498500E7D5
+13D51BE82A341585743A1472731026F937657F8E5CEA6F88292552AB3D7143F2
+03F61DDFEE6C8E1A94F915FFD7E2DCB2759245FABB4A0293EB380AD58E94E371
+9AC1B3B44A0A573BAF250D87C7945B385A8DDF21BFFEB4A048CD9E3ACCF2716B
+9ABBAF9E19EE
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+cleartomark
+%%EndFont 
+%%BeginFont: CMSY10
+%!PS-AdobeFont-1.1: CMSY10 1.0
+%%CreationDate: 1991 Aug 15 07:20:57
+% Copyright (C) 1997 American Mathematical Society. All Rights Reserved.
+11 dict begin
+/FontInfo 7 dict dup begin
+/version (1.0) readonly def
+/Notice (Copyright (C) 1997 American Mathematical Society. All Rights Reserved) readonly def
+/FullName (CMSY10) readonly def
+/FamilyName (Computer Modern) readonly def
+/Weight (Medium) readonly def
+/ItalicAngle -14.035 def
+/isFixedPitch false def
+end readonly def
+/FontName /CMSY10 def
+/PaintType 0 def
+/FontType 1 def
+/FontMatrix [0.001 0 0 0.001 0 0] readonly def
+/Encoding 256 array
+0 1 255 {1 index exch /.notdef put} for
+dup 0 /.notdef put
+readonly def
+/FontBBox{-29 -960 1116 775}readonly def
+/UniqueID 5000820 def
+currentdict end
+currentfile eexec
+D9D66F633B846A97B686A97E45A3D0AA052F09F9C8ADE9D907C058B87E9B6964
+7D53359E51216774A4EAA1E2B58EC3176BD1184A633B951372B4198D4E8C5EF4
+A213ACB58AA0A658908035BF2ED8531779838A960DFE2B27EA49C37156989C85
+E21B3ABF72E39A89232CD9F4237FC80C9E64E8425AA3BEF7DED60B122A52922A
+221A37D9A807DD01161779DDE7D31FF2B87F97C73D63EECDDA4C49501773468A
+27D1663E0B62F461F6E40A5D6676D1D12B51E641C1D4E8E2771864FC104F8CBF
+5B78EC1D88228725F1C453A678F58A7E1B7BD7CA700717D288EB8DA1F57C4F09
+0ABF1D42C5DDD0C384C7E22F8F8047BE1D4C1CC8E33368FB1AC82B4E96146730
+DE3302B2E6B819CB6AE455B1AF3187FFE8071AA57EF8A6616B9CB7941D44EC7A
+71A7BB3DF755178D7D2E4BB69859EFA4BBC30BD6BB1531133FD4D9438FF99F09
+4ECC068A324D75B5F696B8688EEB2F17E5ED34CCD6D047A4E3806D000C199D7C
+515DB70A8D4F6146FE068DC1E5DE8BC57034F7455AB67138A1B6DFCA01660EDA
+B80764458B5829EB2FEC53E0A1F53FF5AF7A2E1564E666101BC844AB50DE3860
+2235ECED71E86452D47F2A3E0D887538BAFE377CFC4DD49B397BEE459E06CA48
+29B9E43C4C347E64772AA470066008DABDCF280795C0C332A029FA523CC37708
+F51B89EAFAA403110941EC0C03238CBA2219CCE031BFAC4AC349EA4618FE2D5F
+60B63598C216B8D2ED5DC28627E9D92543E49A73F5A4301DA267B6A1AC51AEC6
+9FBA6932F5A8FC884DD10A3DB8FA3A191F9DBA21D64D4AC0F44343C23ED87C75
+6655D142F288D0A8EA4E3E67873D1146B798F3248ECCCD7FCEED7BEA22381388
+587E9A91B2FA25B0AB3711BF9350D16702C188670048A9FD19DAB65B8296BFCC
+5B88E3D0CDA20E11DA95D71B35DB979205BE14C87D2AB8D81BB98D821C8BDEE3
+7F716CE287327B2D7E633782DD27B056075199778FC0935C51A56E55A2D32B1D
+92AFBDC94895328776D037E7BF43326AC6857D4D6EEAB85836BB03609A2F86F4
+A162D46BCDD2B370FC8A951ED7343FE2F4AE3C2F6BE7D13F61884D1D30187634
+C449BBA42E4C8D6E8D265F18A263460739F8E74813940084EC8D7C4E63E4CD45
+08041EE2759D432C0BA9018388F102126F6965111316045FEB957EB44C38B950
+00621E53D1075A7895636318745E5A8F423F3632CD4C680937AD414674787992
+70B916A6A889AD2E1F678EA6C7A32DDCC377F93E3B284CB1783182900C8607C0
+BE718C1584765CD76E71C233F5B87A61CBCA714614EC18A26A6946A2B6A09B77
+36672542AEE40BD0180628157043E5FFD79EF46A78AA7734863F4667E304C539
+2BCF8DDBC59BAF57602415A2916679F0E5205A01099D471AD4AD43A8D2CB764A
+1D07333AE495F4DAD5E53BDB28FE833DD11539ED17F31D3A4AE3AB7D38E884AE
+86FC40AF2F1F35AF9477939C4012808D5801E5CAD2620FA14E9371CA16A99009
+A320C406AB967587A3236935D212853CCC16671D8CC9687BCA06EBDF1E5310D3
+FBF13A7BF46C56D9040F26444F24BF21B72AC4B486BDF67BBF0FBE703EB86D0E
+8EA7D7D257807CCB0E7B65EA45AD678EB7F23B49968485C09C63732C9477801F
+90FD66AF2CFB6F06586E0FA9C83496A22CBD5FF75F3B317B5CF440784FA1B7F6
+EBE213057980FE07FB422CB3D939EDA44D42DDF9857BB3E7B29AFEB69BFDB9C1
+E3D5CB66104EAEE763067A8663A9D9835DF98ED1EEAFF534AFE2143C3010BAF1
+1641D3AD98124BAB2FFA260E10CF3D634B8B6AC5AE6558F368A9F299D6293EDA
+F433195F12C6760FB931702D25077955F5962E82673D75EC442BC0F9375F8532
+06914B5F36FA1DB9433CD5117088965D2D8BD7684D1AE82F255B67B652535BFB
+750160FB71F6964D889CB7BC33F885374EB251AEF102F71AF4F11090BECDEF84
+2F9671AB8AC9C18180287113D3CE8DAE6CD3222EE75816E16426FD26A73357A2
+9BF31B1A1FDEE82A4241DBB17064BA54F02F075926D79E4BEC20DDA5758EB285
+6D602771DAB0D5CA709460376F5F80B289A9A9F721949C3709C96193E3F0C847
+CC32965B1DDF60D4DA8EBF8CEDF43945BBFCB4046E93DA3A6AE9EDE9A157EDF7
+93567499B6BD4B9956CAB742AF1D5D4153A5A7DF558FB8048BBFC7FE6D6ACD96
+BE2672F47596BD3EC1B28C194DA8F280429C08C6405B9533E77C83336EE324D1
+E0CC2109635E958B2BAAEE137CC0CAAC81AD557630623690884D705CC8FC174D
+BF6E7EC126D56F7D4C421F3DF6DE74849B522E85BD6223368240F3D41478E224
+FF460A626B03AEF34005DAF93A2B01F560306A466E08884C1D96DE24FDF11226
+6051656B7C68F433634A20C72C7C155D1F4442BE34B9B4F2E3EFB786ACD5C617
+41E6DFB0F94E97ADD6CC7563CB4B299F49106BA517A67B4C68B4B3BACFDAF174
+D612E2E0D5F6C3B608EDE9959DE081D8B73AF1D7ADB482FE6EB58EE4417B1594
+2A1DADB4254CC099128A523C5059E611DB56C80AAEFC734BDA8FAF4B5772802B
+70A7C41CC6293AED57341D608C30314C28CB850C99B811C44FB6A9E14652BBC9
+4E029CCFAC2FE94A579C96374F12C8AC127847295202237D2D56697878DFAAFA
+E93182C6A665892DCEF1B87C28311CC2E743AE0D017466149D4113608854CAB9
+C9502CCF99DCE14E8DAACF6AAD9880945782D161E2B3B15E7973F2310ABA0870
+0284C2967FE93F346C88895780A234DC9323726EE3F5AC343C31D10A31E4F731
+C6FBCAFD51A1F60277F536C49339E4553FA6A6168E129135F128E7B382361B0F
+62E4E32218FD44D219DD9A0E402283C3B5D2D2BCA945E0
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+cleartomark
+%%EndFont 
+%%BeginFont: CMBX12
+%!PS-AdobeFont-1.1: CMBX12 1.0
+%%CreationDate: 1991 Aug 20 16:34:54
+% Copyright (C) 1997 American Mathematical Society. All Rights Reserved.
+11 dict begin
+/FontInfo 7 dict dup begin
+/version (1.0) readonly def
+/Notice (Copyright (C) 1997 American Mathematical Society. All Rights Reserved) readonly def
+/FullName (CMBX12) readonly def
+/FamilyName (Computer Modern) readonly def
+/Weight (Bold) readonly def
+/ItalicAngle 0 def
+/isFixedPitch false def
+end readonly def
+/FontName /CMBX12 def
+/PaintType 0 def
+/FontType 1 def
+/FontMatrix [0.001 0 0 0.001 0 0] readonly def
+/Encoding 256 array
+0 1 255 {1 index exch /.notdef put} for
+dup 0 /.notdef put
+readonly def
+/FontBBox{-53 -251 1139 750}readonly def
+/UniqueID 5000769 def
+currentdict end
+currentfile eexec
+D9D66F633B846A97B686A97E45A3D0AA052A014267B7904EB3C0D3BD0B83D891
+016CA6CA4B712ADEB258FAAB9A130EE605E61F77FC1B738ABC7C51CD46EF8171
+9098D5FEE67660E69A7AB91B58F29A4D79E57022F783EB0FBBB6D4F4EC35014F
+D2DECBA99459A4C59DF0C6EBA150284454E707DC2100C15B76B4C19B84363758
+469A6C558785B226332152109871A9883487DD7710949204DDCF837E6A8708B8
+2BDBF16FBC7512FAA308A093FE5F0364CD5660F74BEE96790DE35AFA90CCF712
+B1805DA88AE375A04D99598EADFC625BDC1F9C315B6CF28C9BD427F32C745C99
+AEBE70DAAED49EA45AF94F081934AA47894A370D698ABABDA4215500B190AF26
+7FCFB7DDA2BC68605A4EF61ECCA3D61C684B47FFB5887A3BEDE0B4D30E8EBABF
+20980C23312618EB0EAF289B2924FF4A334B85D98FD68545FDADB47F991E7390
+B10EE86A46A5AF8866C010225024D5E5862D49DEB5D8ECCB95D94283C50A363D
+68A49071445610F03CE3600945118A6BC0B3AA4593104E727261C68C4A47F809
+D77E4CF27B3681F6B6F3AC498E45361BF9E01FAF5527F5E3CC790D3084674B3E
+26296F3E03321B5C555D2458578A89E72D3166A3C5D740B3ABB127CF420C316D
+F957873DA04CF0DB25A73574A4DE2E4F2D5D4E8E0B430654CF7F341A1BDB3E26
+77C194764EAD58C585F49EF10843FE020F9FDFD9008D660DE50B9BD7A2A87299
+BC319E66D781101BB956E30643A19B93C8967E1AE4719F300BFE5866F0D6DA5E
+C55E171A24D3B707EFA325D47F473764E99BC8B1108D815CF2ACADFA6C4663E8
+30855D673CE98AB78F5F829F7FA226AB57F07B3E7D4E7CE30ED3B7EB0D3035C5
+148DA8D9FA34483414FDA8E3DC9E6C479E3EEE9A11A0547FC9085FA4631AD19C
+E936E0598E3197207FA7BB6E55CFD5EF72AEC12D9A9675241C7A71316B2E148D
+E2A1732B3627109EA446CB320EBBE2E78281CDF0890E2E72B6711335857F1E23
+337C75E729701E93D5BEC0630CDC7F4E957233EC09F917E5CA703C7E93841598
+0E73843FC6619DE017C8473A6D1B2BE5142DEBA285B98FA1CC5E64D2ADB981E6
+472971848451A245DDF6AA3B8225E9AC8E4630B0FF32D679EC27ACAD85C6394E
+A6F71023B660EE883D8B676837E9EBA4E42BA8F365433A900F1DC3A9F0E88A26
+331F181ADF18CB8EF6A61B074D88A7D4D0D9C3F5D6C2FC59C86EBEF110EA3B39
+3686C7574CBEF61F8A4E28D75E72BAE2BC9B868FD76EFDB1151A86592373FDE9
+6442A49931AC5FC3A878F39A2F8C758FC22111876790635927173B282F357440
+CC6159BE6B5965CB4C59C4EC5245DF11A9DAC10FC6077A31D0051696B06FA4B0
+2FC615CFCEF68DB862584BE43036502C8AA2DF298F081AAF195ED1135E049DD5
+C08E89D0222148FD898E07A8DFAA041BA6378441F833A776C487FD4EED8C0442
+22B65014D4D2696A922EF58E3A8451E956A79A3807794ABC9F092AEB5416DB80
+ADF6BB24462279DBE44CA0E15816F2EAE889113B03BEBAA2F108353AC4450DBB
+CB47C9A27C7C20557FDDA21E7596C982B4C95389D0CF8D52E2C7B7EE91FBAF8F
+7F5201FB0B42E4EA846E59E617F98A5D0087CED3AEEA2E6A8A2A112015676F07
+A281EA3C4F1D82326D1DE4A7F20A98E6A3ADA95C88F69865D1292AE37579F1AF
+4FDA5A50017BB1A62FACD3F3A926C8B4F519F9FF9770271440F2024860F41A23
+50A5204DE7B7A44795264F1B656448143038995BDF29B4598B0B22F0AF3A1EC1
+252B8F5D2EA49F718C132EC031C29B41E236C44B088036F8C4C706F88E94349C
+BAA1F0777F0818137AF43E587480B6AE95B3046F978C6B596970CE040A5DD503
+5E88C74E0B9281FC410C97C977626169131DAA944F3DDB24DB68B2EEDC27E8CC
+C76D3BC7ECDBACE289589690B2C25AA51236A36E0E2AB6FA6A891F2B5A6DCDEA
+C382161FAD8C0684CF9F6C9D31C4DDA78052EC0FEBF217B01EF35D262F3C15BB
+A956AAFEA3F001BC26FE059691727980D967D2E519F3C3025DF4D2A9A66CEF7B
+100186CB0808D679BDF4A9E33EAE4D8A4471EBB89546156FAD1FC0789B2E6F71
+CA965B0CB99767BDA407F2952C6AB68B85E336F40511AD96F7E051FAA45401F1
+34D7B7C6CC2EE41009EC5340E4990D6E9A00095A83D73E6715558CE962EA1222
+C20E0FD4EB8F5094A7C5CF377A37BF9F34E7A20071A3459E5201F8B1D336EBFE
+4307EFF8FB2B041AD2653AF3384F6B6AE0D096528F49E4065183872976890307
+50E7B4297D7285FDAD3C1EDE4D18B41C514F2E3EDB27AE28ABA876D1AF94D3DD
+2947D7D6FB5E7F5BD456A566879A067C2DEC60658AEB52488CC9A0BD6F367B5C
+A129D8F913976F960CC74A46EAB15BFF20C8B6394C211A68BC79EC589B5C9649
+DAD3E55785EE60BA602B4ECEE148C802AFBD4A391D2533F558921F4F0E71F1ED
+B77E27CDFD29748001EE1B48D52EB67FF3C59EF130275245E8D7DFF3E32967B8
+E3710CE3CB36B760F9B3B2788EAF5B2F1454AF14C2AEA6589E3871A596D040E5
+15B896A706493E04890F471D80457BE115BB707BAEE208D86F5E5F15B8C35312
+9D99C8B4FE447DAEB6D4A94A828C3B284306EB3958B4990F522CCF2914305A2C
+2E09021CE45036E5FB32F6E11640021F20DDF6F39B98E1F4816DE8293687166C
+65C61F9C0E8EB4F8051EA81ED27597E7C0A940F45BCB8B0F0B413F044C35D034
+A726E49C66BCF638A52C5026FCA0E75B162461D803895EF71FF37DBECFCB9E95
+749DA2733302D859B1663C667E92294F5013374C87D5AC54A974C60A2C57D188
+4F713AD4FD495B52FD13FB8614039938A956EAA2D98E58B958D68391DE9B2750
+50F096C3C06064F663E20E267C8104FCE5A38979471389DC5D41661992FAFEA8
+F16D23CD17715D20E0333FB463F1FAFC4F9A264489350BD02B4E8FB45AC0D49B
+2120A96E6C47C341EF0722AFB35E61C02E0B5E045E2DB43091546645F80BECE6
+4B1E565AD2F8990B7DD1742E7F883E58EE0F4B3BFC02C8F532BE434EBF0621BD
+C2C2477C19EBB5943C057C700CF10C25719AA8DEB93E87EEE7353400F2D1C0E0
+747A9E44D7D999D922CA47404018230E4D73873EBE7888D127A05411D60634AA
+18BB4E1A190ECBEA82FDACB4B1EFAD30D3B647DDD195D761326286489FC1C67D
+ED8AB1CA36EC1245B673FF99837F8B6616789073076CE774EDC87A988C8CBC4F
+89F0E2FBA1F380F10D1E4DFD4B7C99F36AFEF8FEC0D35B51E8A3D907852EF82E
+7D6EBB216ABCB1B038A01FD5E9B43891958BD47A7984950315A75D997C897491
+4F9233EB66452AC3FC6EB762465A7900A591EF4C5DF73637F6C12A2127BB3AD9
+6C5B540898CD2C8EA6304A4A1A5448C8D36345602A4D26B95DDB4C843E27A679
+7AF9067A621B137DD53696A3BE4B21A42588310C4D2D6EF27D54E387FEA20102
+395A967AF7AD7CA3B1E350E900AC33C8FD30298AA75BEB76D73FB3A3A94041A6
+FBE5B63AC9D311A3E74E28F22F263338CC4165207D9B812CED13DDE012961F52
+E71AAD561434B7D484355D52B55A56187C169740970B60004869D1CDBB306FAC
+02528B38460C3F7127953C870C42B7BD22FB05405E9A096187B6E0B92E4E49CB
+C2C68AFD993B837ABF0CC1A911B9BA801457AE4476392859DD6CB38BCA33E38D
+B7126A5414B7AD2056AF188DA7AFFA2EBBE6158F9E54178C6D52F76D12DE5585
+45935802BA8C521621EF8F478227346A0B9B8D61D1760508780F34B07C4CBDE0
+8A7609A0BE3224E19E8647008704652EBEB1943CEDA3B349C952CFEE68A4E6A7
+2A991BD2E7777556D2DC1A7BB8F291584E9F5D261A06721CE07F60D5D31D2043
+74A19692968CE9384DF8B46CD5E819E47DBAAE96073658700D9D009384052A26
+BFCAC3879653F23CEB8D723BA05709EE9C1AEF34AF1039F4CB632D33FF81B5DA
+A33F9643BBE611D743BEA9B1E05E214CF34CEC7CADB6267E46CCE4CA56FE9C70
+AF70D22A7EC135196819BDB2289D61A4D3625281F51348D75176C0F83F2EF339
+A7D23B050B3B75E50E1C799B57CE538B82A7CC500BC43AE584FB089FE17B78C6
+FA88BCB9EA93CDC5E9AAFA5ADEF7DDB68C4FC2D4E9B61310D268A1091A3F130C
+3CDCFDA51469EA25266194D571015E5806CE2C2E83CD124A2F131898315F0D7B
+F22BDD2FEF4C97B9BF8306527D00C85ECFCA149988D27FD0E9A6AEAF31179A29
+07F35EB56D9FD369F21A8B56C44A7E26553EE74FDB53101E402B3B8F26650480
+82F10DD2D064E55401DD30F1DA93A7A8CAD1AF397F0E5E5E105BF8D8D9258DBA
+5EF0C209E4AE82066878CD79AA8429432A69BADA2C3B1DF152C3601129021D99
+E1B12446F04056722FECBB4FE44D6C60D7243182C34F589ED3A74D82C0FDBE6E
+3928DE4F44B8FB934ED82EC9507BD8EC024B2A61D0D91D1936F79DD486D9FB13
+9F2D3F03ECE4D3D90E2689E93C54A031017EFF54A184C444C6D978E07A903BCC
+4D734FCE597956273BD3DC3B7B1AF444074D4007065E54DF5CD33D72576354F6
+C0DD3B84A68CC0DAE253F354A912B67B77810A6995CF1A0E8A52D827CC08118C
+BA608D35AC94E7147F7822FE4BF45C32859521801E2ACE0C71F69568E20C64EB
+5DB04272137DF933C6F9D1E553785E0FD387742D048D1F851B1F950285FE6EBB
+E57CD7C4747D522604EC99B15D1021AC7CD0AA4950A1917DABD205A00D1E441F
+054E97A17BD641AA12447C82B8ABC002350C49281B03C0FAC12E63E6468BDFA3
+83DB59F571184A91160563C48C942122A9DF4C084CCA8B441FE05E6EC8F9DFBE
+5A74F571770710C6F3826D25C6AFD040A23F354FB573F5CFE1C9D6102F79B5DA
+582052F1C59F2597EB562BF13AAAB3983B1ECAF00BF2E60A7223E6E49DEEB9D4
+9A582813114FCD19020B6BCBA86B9057D07E6A3C5932C1D233FC6E1821481F61
+8E5BFECDBADB7ED8023595309CC36BEE0B0EC8E62373A13E0DDED792F67E0816
+8588CE75DE80428CEF471088BD1787A2A54AF062C6557E0B94AF34F43744CD00
+DD7F71847F3255556D2EF2FB0FE677C72666B763DF12DDFA31B3D713FFAFC9C3
+9EC924BBC2068D3E9558A6FD6929009196DD754AA1DAC5D9DC360FB2A076C19D
+D8E7DA88876BC6733AD9B9061914A08D813B0DFF8D1DBEDB78B9D68F23BD9061
+08208FDCE757EC4B2A77C28683FC9767EBB652F69B13DF655F6CB494B1337CFC
+81BA77D16F6CB25387841A198080A3E3E8DAEB0B956B0204EC8C5262BAA44275
+AC684EC3567E4E18F19EB2223C13C8F030843D2E67D5462C98320D4ED02D9EC9
+02E04F347DF3A16CB5412F38FC0DE476B0E7A7ADC096D6FB398C9C11A32063A0
+DF0ED0068CB613C88385E67708AB482F97367684B7FA0B464AFFCF7EBCD9E9B6
+C528DFBF03812F4F66636F8381ED0C8AF077A981C1972342A2310E022BCD25FD
+2F4EB896ADED7EEE5BE555717F093B0397DDF02008153D0973CB898944AC599E
+EAAF638C8ABA2605A1BF52CFF2ED33FAB720C20E2A75C67F2D77A0DAB36E25E8
+90EC4ACAE647DBE469E3BFC8450923F053F0E74621E0653276B448F0CBD57C1A
+B5B1672803D4D3A6C02577537EC74043CD03F74834216010B8D2EE5547B110C4
+1D9F4617CE26E0259F0C4274FAC32463E3D2E260749892F42F9A4C5FC71D4532
+A09EFDDA10AA09D4E7B0411000B5B4B2BCE8312E88E95420AF6C4DEAD871CF08
+5CCB2E1FEEDB679AB2F854F305BC100CAF25E9E8255DF70F49291725BD0C551C
+F9AD516703118A743434B6722684927D8755FB13887F33B6471F9FCB2B435151
+0A8A5979A0E56580A0C42F12976B138C6F737878AC2D64E6D5FAA7F5D0301345
+8EC275A7772D7C4A2CE025C4912440466756D683506A5E56CB12C28BB035C558
+CA626D196ED75C49093AC82279B38A3C1F05D998DD921074EBD8CAF4D7C3F313
+3395621B64AA861ECD9ABF5D190C08B7AA6BCB95CCDB50A04FAD9D050AEBFEC1
+D7CB45C3C9D3AF48432D58882B50DF0A049A2DA2AF5083A59B9076D586F91836
+7E5D95E582072C36762FB2B3C0DB3057C315A7C1413015F4246A9DBA665A8C5A
+53EC3A22F401DE3843A7BB9CE1CACE78DAFCE80CDBAE85289995E7E1F0DA2A5D
+7CBE3B69124BBD646B88DEC6A37DD976E51A8A46BDC3A80096A98C80439179C2
+D331F76B7EC58225DAC470165CC3B1423EF82416B0F426ED2A7E2A5690B89044
+66011B927B7A31B300A034D5743365314E0CCACAE883A3CB7FC15F388D138EF7
+728F7F51DDBF61CB2610017F7ADFA91A32066B18D272072142BF13DC1CFBAF39
+C4F8CE00800B76D70375AC4D86273B6DBBD1D60E839C230E05C9FE2D793FF63F
+0F0D0232A31606568354B8D5C01ECE7C21CC7E4601AF51829179482C7440AD2F
+87BB538712F5C16A7C9DAF610FA250C77348915EAD5AF0B24BF0D311765F7F59
+AAB1B5EAC8CFB0D2A15AAF7A39FFBEFA164733D311325DCCA512E1FDB2E4AA19
+25C9193F059D6A5DBE95C0ECA041F3A0A716600F059DF55FAF49DE575FF0A6B4
+D6BC44C5A8B4AA2EB4E4BD17EA3B7471712A805A837490F9B33AC018D632122A
+497A0196AEC6E4994763F4D3177516CFFF734B73B87DE11C88247AD212D476C8
+B8E0C73F73D750B1D2C51E858D8D58013D60718718A191BB4EC88750FECAAB8E
+21E96077C8B875A814EDE1CAE75BD2925D353EC3BD19AE13AAE7829391F49142
+DBE5D98795DB019898C951BA6018B1C860115E5034EA623B34171E75C0A32364
+96B9AA84835AECA35D509F61B6FD6AC6ED28414624CF685E1A7CB97CEF690F0F
+AF824AC30AAA22DC274C98655CEC68608F8F5DAD1F33EB3AA86891DF8F335C6A
+175D24B6F5B21F0A0648F869CD129138E1559B8AC1B4EBD877EB951AA06C1EAC
+0657609F555E0EE4AF3DB0D9EB7BD93646EB4C1884D454C8BF5C00A21CC1026B
+D45922815F7FFF59C89299C5FD9F140C5E1E4A4F809668A94986F36A673376C4
+FE0C99B519D196F60F159B93983ED285E86334B3E275099876DFE94DA6250CCF
+1029CED867FE31B7C881D1833AB0DA3942A0582348DC9BD9FE289147EE2ECA7A
+8FD762396A61EDE88DF621A8E806BA1E9C487AB4D436ED6185345281910694F9
+85A94CD93B891F8CD7A69BFD8EE136A706DE306EB2195222564BA196710E694B
+CEF78A80939E46E36103F0AD9BA89424ED82DEF61480D59EAD255B5435BEC4FA
+3BBE404886FFE107C0642C6BEDF3B49C130923A24774EEB994B46BD985257D1A
+2F52CB234547952EA765142E0E320FA16935AFC1448875B8D0B3A46A0917F831
+A2782A041CF01159474FCC0738E778A80798BDA6C3E5150CA7DDAA415A43912F
+9E46C37C1E29FA3121DB65AFC9517F94414FCAB7A540CD26BC2F7EC8767D8A26
+4230B27545B1C85C1066456CA4784AE43C69E703147FF1035EC4020C8F4CE4F2
+13C0E1E419C9864CBA237FCFEE2E4964C25034C9D615134F8069AEBD370FF854
+817585255E44966663A22F554ED552F0C522C3DEBA125C606C08E8A80CCEE7FA
+C2E83E502EAC03AF2EE31B75B92CF190B2337DB50340F3A74B3101112E1497EB
+017DCEB2AC879B4EE4F475EB2B7709E8DED005F3A80550E3C54DBBC804802F75
+23E97B22B2C932D1C9ABBB3B1AA1F42CB5419037E394666EC4E2922992F821D8
+BBB4D88591F2C064B3C0E0A1EAB31237B315490C01A6C77A7D922B9EF8DE1692
+4BBDB1545E0B2AB58DA26A5348E039733D8C66C4B16D57EE20B753F766A18BD1
+B367AE437410EC5A4723D23286FC2E26E8602F14566C6A5890D475EDBCAF42D5
+779CF5835BD8E2D3DD216BF81D768DCB24AD04139DBB8C57955FD782CD7574AC
+E8A0D66487D6D9054389AC636702C4168AF20AB3873BB4897A1DF7B2C8B1148C
+824F57B5888337B5DA9B7839DA3EAA54C7AB329A36EA5AE464CD87D7640700E6
+27122D79FB82DB1933AB2DB461B9369FFD82B1B3014DD64B135E7BCD651090F9
+5F0F76851869759B6464733C1AF9F2E807F365B31D6D556DC2146B5E7AD92FDD
+BF6B55B62F6D25C72A1DDC3F01BB9E85D533DF5F7B56A75436126851A6DC62AE
+C1F95783DC0FE25093880DE3B755A406328B8DF31A9579C77659536B147B0DD1
+97BC970A523731C3704F635A910B4691551157FD2151258ED79A2FC8B2921732
+9E04FFA11A71E47E13F49793A757443AC32E35EF26764E9A5D9ED1F37F9B9CC2
+0BD8D310D18BEACBF14052EB2647E3AC9BEE688CDA1170DE4631C852D7D88CB9
+A812F4B9C497150D516B855415D61C0E53568B248B072E7053D1830F7E0C911D
+BCE35BEB71C6B87802B0EDD9CDBFF7CAB36FACE034025C791B8E2EA8E9DDF5A4
+BE6D9FDB22D3ED9FA28E9BB67224648FF269859617DF0EECCA316F54910F1FCC
+897E1FA7191170BB05ECBF6F389B1827D766E9DFC2BD4A6DE988F918F44957E9
+6E4EA3037534C9299CFA90705737F0F2DACD9EAF83E80E7B800E55E266B1C162
+D3B59FCFCE426A19BF967BD74DB4C94B7C58220B118A2F23B6C18BD4232E0ECB
+7DBBB6687180C8B131C6D09AC7BB260F1B9A13FAF386906D36EA3B5F5DEBD21D
+7560E24A922112CFE9E41E72FCBB33A66C8F3697B5F6266B2D5B374A3ABA6561
+D25756015F612BD57ADBFA02EE301EB0405B96D255A0C7413DC30EE34C22744C
+95F2C262D82C411AC807B0B13CF9AB0A248706774EDAB9AE0B902D0028777FCB
+03B7EAF67FC92E6BD98CFF25CCC3CADA2D4D42E6E03A6BB06D1B4F9C59F17E8A
+FBB7A45A76AED5C6C49550BAC96A57CAE2B782D268D6B73B4D451A8D5B727454
+602E1A50E11574DD226063B8B1BD283D6AA870E578D32B5C92B35DBDE2D1D32C
+8996CC171EA105EE681508EA1614D7F9F41BC3B8B760A39897C1738357F9D8B3
+07FFA787F5E9295DB05005C88B998BA336397568414E869A45305EC393C7A665
+5A82B4B9453D8AE8196E9C81D532395FBBFDA71BBDD79FBB4251CACBF3BA6615
+4DB93272C3FA5647C17F0BC19E47185FB8083D5C7A0BF1F6E74AC1FCAE008DE3
+E6B2D6AE60FA0EBC74C471AF78C11719BEE7048A8558831328AF783D21315DD0
+06A7C908015E248F6FFBC531656385D24BC806F45D00F40C5A042366DDE68C4B
+354F9F1DED864906159DA81AA6BA6A69FF8E7C58443738759AE3CBACE76C0860
+B97002C9C7A91E6E2BC4C87CDA71335BF62D44C6AC0BC42F60C7BFF105C58056
+6410CF06A39551647EB602B288D68A978EE966EA78D2CEF08A2F7B86C447BA3E
+1E67679C5966A99E30B61375D149174FE823F885EF8CBB061000903AEBF6E359
+02D2774C1679961C8A712B4C8E3F6515DEA2227676A14E00E4BA093E06120988
+227290475E9FAB11F30B864BF4A966F10A151EC8EC6B8DECF078E95DFA455E7D
+423386A0F19EF7BEC77D13F5A01389E6701E91F2810847C86CBF7D2608172238
+9E0EE9E8CDA84D38C71971750DD47BAF74D1CA45A178C55889AF44E20F36E977
+A89368069A387C94C774C5274E85183844070E58226B7FECBDCD413DEA04EBC0
+BFF266240EF69AF3FE052C57ABA4EB0DB766C6F05FC5E75FADDD4497C2117E62
+7EB8F07B83A8FDE5AA5C197B55C5801F484190723DC83FFC2EB29AB0F2472D5D
+B574D560BBB1D1B02A45B9C3A422E583B18C322D69AD8B908D9ADF4E77E92382
+4C6A0A1C274A37BBB97DE5F46A14562ED833C203F982B9635FE191EB331368F8
+EB66C80E4DD2747A376280D3C7887E577A776E8DF864B1F9339EBDFDC4FFB2CE
+2557C405FB44126D716B23431793833A33743747ACF86CEC743AEEE2307CD9C6
+562F9F63EA8B4AE445A5CEF031F0EB8E3069E6D88B76EB8B5B313A4749883818
+2AE55F4AB6B4864C806AC0132779E5AFC1B359FAC5643B25993612467AAD2F12
+2E5F8803CF39E4424EF01AB8E024CAAE78A350E5FCCB07D9F4CB637CD816E5A3
+0D96C52DF7D75D10ABE4EA3B09BDDB4BB0471420C3040DAA4CAD1BCE7630AE1F
+1C7C104ED0DB10AACEF50F16A7292792BE425FD23F23D3E091078DF469D8F109
+216D18C663AE952349FD613012CCE0575B2414FC6EF97471EA9BB53F81434015
+D8A9B4CA6436B20E98DF0F6054231663251987A4FF73E42ECBE92B69412912EB
+6C6903C178E470E3C43CB6BF6C11A06720A08D73458B6DC54FFA27C291ACF062
+E66A5CC6453A0031BCD6489F2AC516C964DD88217F32581DCF8A7D6AB5753192
+0F73AB8EFEC7CBD93AFBD27F7EF920468C16189DB0C8C039784169FD41759677
+0FA12B2CCC1B17595F83EC79A6CA656F23954916ADD203C49E801C4B928D2D06
+B0D8AC1292F61D6E4BB433E912B9C38CBB9C3B67137C28AF238032FAD2C9ECE9
+CD71ED95A850C29427D3E67B2952728B434A83110673C29BBCCFBA56C2ECFFF8
+06A25D3302A2387827F53BD237818A8D63A724C0E9E92E1E4A9BED60473E9F8E
+B0E4FC233D6616BB39124F39C5DDF4217F60D63D5D156AFDEC4244DF9FC283DE
+2F2A9E57035A80E061455E3B3F082BB6796CEAE01033B2D86C8390554AF9E243
+2FA2C6425200CC8B9B4B184F98E53684B2385D25313FB1926649C4A6FEDF5ECD
+8491AE22C99564A24AB4B317C17D56C59F736B50D5BBC9AD12C6EA4C07EA7696
+7C933AC7FF43E7926BB70A56BCE94B0A007B4799D8AC1F9C53897E51B7A1E962
+736CD63960E1B5408B79E105EE28859D8B4C8AA9BBD4AD66391634645961A607
+4C92ADFF5B1E22B26881651038B855BEB14F8D5DF8823F56A3202915D70E9556
+CE0C0CC3426AD98DCA92C13E606056BBBB90F20D86541A2015BC42EEDFE6F985
+F77B002C6AB52DD6739A63E571E56409BE1B639C8FC3C3C7EE67CF50D6CB8F95
+4524B0FE17BBA1B5CE12A2048526129CB538C07F0B369CABE2B3A86F94FF7849
+A13448C5176D03058DDE1776DB5EA88A27711782DD4984FE0FABB1B0BF4F5A4E
+642D05C08668ACB9C38277EE0FC69CFFB0F85466B2C2154248BEC780512CD55C
+76D39CEFFDBC1BDC84412F05956741159A8482AD313A08FA37C3BCB184A74CBB
+5016D409A6EF3989951F11276F4C31344E45D8BE4CA285FC8F3AA0F55FFDB21B
+C0E3EE4B715D7F8F84E95B6333BEACDFFA59F21F26D3395B8B308D03886A0932
+C3B99A2BC33A98D547A1D3EAD124513675B810F40DD379AF5E3C68E732382FB4
+41652EFE73E6FF2E30FCE64BD491FFFD75A7AE61FE0A20853183889BCC8499C6
+C17A39A8A59CC1CD5C0C3C350A264012FA4CEA1CC695EFAC13D6918906480DD1
+EA141CAA9CB92862F690EF3A48D1328EDD6258E4EC40A5F6C5451BEF256838C1
+79E6EE84E0E2D6F32B27991FF0D408130097FD8FB46C2F4DDE752466E44F3575
+ACB485B8F349A3ECD1D8A824ADF25AB94E1F5D374940DD3E54A6B19AF85E1E32
+738D2653E19D82C56A1181654043FD002366BF3B92AE6800298F28556C61D515
+F5C8936CCA5D3D66D0E4FEBE506D601382D03FA107353566988F5B3826CC6EF6
+C68CA05577A6702E78AF8AA01633814576C22376BB8F43687CAE0CB66C3D4A83
+C6888CF945CEA7ADBF08575D5AE35369FD07D0435693FEED183A57DF6173FCED
+0A4EBBA555BFD6D235798E91571C682E4A8D1FEEA541D069E112AA9FBDDEA54A
+B266C321F445444C9DCB1EE25CDC40F103280553392E46C2793E13A6113FF503
+E5FDE00E7D5D6DC1C0A2061765E9BBBD2E96DC25F8878FBBDEE6BB86886606CD
+C6BEDB4D365089747B52C205D5F7778EA9ECFE75DA66350F0030DCCDBB346BF1
+80C4E23EA3A2567D2472C5D606191CF10D685AA2E1DCE483B7CC25ADCC437DE6
+BF52694CD81489E1EE75C3812C89AD4FB64777466D9ADA0ADB9317E2F7DADFA8
+A600B807EBE3D59D816BBD63DAE663BF079C840CB661EDC7CA95F800F9133207
+AFA0246DFFC094890589415F3FB7BF933F31D54C6B6C4C250640701C126C2871
+6E0A61F0754CFD60768B184877CB49632D3253A302A9D27EDC12F834F25799D7
+FCC7E45938CC9062165472E9C4FCF8132EA6B60AD9A7B3071411BC23A298B8E8
+390E1F2CA0096302BB9A3AD1831632606F636F54A5AB1BD11F70C672CD3C4734
+2D226AD249E7C4A45248E5ACFD501496CB383CC72647122EB75167E2AAB92C44
+8F99B5370F848E609E64E6CFE24A31002A7A8B6403DD79C8BBFAA50C072FBCAE
+0FF6844A727AF6B3EB2A6FB1D064D5B28B3413BC4A75333B4202E985A9D5043B
+8E671B441A969C089A8B7C08724943B3CF6D8A46711A224CF54C28638CE60B86
+20F9B08157C531AD98606233CD5D5E030C2C0059E35DC400206A9137FF628860
+D3CB76B75B5EEA797BEC5934D72E13FCF5F0B6AF9E372B395788516BFCDC12C7
+425872A0359712663B33DD70982FB9073A5F202BB8FE7250B63438A829DBDF37
+AF996FBFE6838635024EDB861B316A57C3D5602BB66BBB18D2128EB87BD522A9
+4C79BCCEA27285E8F0D7735334DDDC6FABB2F8198B4C28059E1C1FB35994B8DA
+0D6B2F0EABF69A20A1F108B1B582DBE9BCF971889148D99A613D924B92187591
+CED549223885317074EF7C57306F907892076C68FDAE39E5C503FEF892DD2FFC
+B1914C3F6800C7885A79C3C0969C78B5B3A8C3AF4B0D54418E1DBEAF5135A849
+8AC33DE4D124C7604DBBDA4AD719CAE86BFDF245FC83619E689E97C8F7CBCF00
+9B8B2D08F5F3522B82F5A802E91689644C761681
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+cleartomark
+%%EndFont 
+%%BeginFont: CMSL10
+%!PS-AdobeFont-1.1: CMSL10 1.0
+%%CreationDate: 1991 Aug 20 16:40:20
+% Copyright (C) 1997 American Mathematical Society. All Rights Reserved.
+11 dict begin
+/FontInfo 7 dict dup begin
+/version (1.0) readonly def
+/Notice (Copyright (C) 1997 American Mathematical Society. All Rights Reserved) readonly def
+/FullName (CMSL10) readonly def
+/FamilyName (Computer Modern) readonly def
+/Weight (Medium) readonly def
+/ItalicAngle -9.46 def
+/isFixedPitch false def
+end readonly def
+/FontName /CMSL10 def
+/PaintType 0 def
+/FontType 1 def
+/FontMatrix [0.001 0 0 0.001 0 0] readonly def
+/Encoding 256 array
+0 1 255 {1 index exch /.notdef put} for
+dup 0 /.notdef put
+readonly def
+/FontBBox{-62 -250 1123 750}readonly def
+/UniqueID 5000798 def
+currentdict end
+currentfile eexec
+D9D66F633B846A97B686A97E45A3D0AA0529731C99A784CCBE85B4993B2EEBDE
+3B12D472B7CF54651EF21185116A69AB1096ED4BAD2F646635E019B6417CC77B
+532F85D811C70D1429A19A5307EF63EB5C5E02C89FC6C20F6D9D89E7D91FE470
+B72BEFDA23F5DF76BE05AF4CE93137A219ED8A04A9D7D6FDF37E6B7FCDE0D90B
+986423E5960A5D9FBB4C956556E8DF90CBFAEC476FA36FD9A5C8175C9AF513FE
+D919C2DDD26BDC0D99398B9F4D03D5993DFC0930297866E1CD0A319B6B1FD958
+9429B9D40924DC059325D9D4CC0344F3F997A99E6CC0676735EBCD685AAC9142
+08DAFEC78BB41AFC2F1C219910BDF41D6279284EF600B69776CA15BC8A34347C
+30783C52AFA60FBE3E353E2AE354CF87B558776A22C776C7A0B5AB5CE1F941EF
+C2D9CAC37294BF407A671F10E4743BF842143F4F7DFEE643BA3BBD8BB9E3F24A
+BCCF7F0ADF8BA500620C81033EAE8C4EF2C1DEF13AC575F1B3BBB66F093D3B78
+5412B82B67FFA087AF57182B2230F9F2137180CA58A7D9B2C822FF04BE6CD01D
+43B2CA7058C7B953F6D9B5D6E91ECBAA5CDE1159B0E59C83DBAD96D6C8C8BAB1
+374EF652D10C0F3EE7104472C98DD3572AAF2D45A70BF7061447E21EE3C3BF23
+DF39C2D1B35B42CD5297BEBE6BC94F7C9DC6E61EC67E4F677256FED9064BD3E4
+B51A71B1D27CA4E5AA9E1D8080E6DAB5310711EEF87C40859FA935B19524AE83
+63B163FA8397BDFF443227FEDF7DB27DC35D89FB1C5E435DA0619A5C88AFC73B
+89A2DF5E767C5B536BC7167A840A0C32BD57A14DE69A7D0D819AC36FF32F908A
+5070F32983BB007437E3500799DF5E0AD3710A4C0000F0098D5BE99F2EB9C1C2
+C444FD9552D0DCA098A94B3BF176F511CEE13DB7EFFAED7C47B5ADCF8D4700F5
+7A5FD1B49560969BF5C44F3749370663A04776F749DDD7B50674D93254426C4B
+EFE264BEE7810EC93784B7C01A7F29EFD92547E13A2C7851A2E709FBD5B87850
+4A44F08F56A542DBE072D2FBC58D9E6468E1AB858DC35240E30D31C7AC13D6C5
+7D2BB634BEE96FA0E10F842B11A789F72A333DD6DDCB1BC23227EBC406E50B40
+30AF0C48E6359AB0C46898CDAF1118E46BFF8B00F54EACBC2AC262AB898C42B9
+2E080C10DE923C195D026E936F38F22FF078B05995A910D42BCDA8682D22F0B5
+731ACC17E542A5AFFA2BD5CD2139ED3CF5C1A3B50C8D60CD8DADD33218AD2F92
+BB171645671DB04DF31FBD44E56016026FF95134EECD541FDEF253E6A3D2302F
+2B8146A8501C115EAD953A13616DB05B5995046E75306C2F0084A4C18B253FA8
+07BF56AE7DC787783F43B52AAB06B6F2C906456C51B25DAEBE2F4ED8D3D3C1E3
+0C92D4C82462F737C014A2C8C51E4E825F8E6F5DC28298E8282C2E72DC587324
+E404AD7AD64679458D9057B28A85E9CF82ABEA8913368986D2E922DB97AB4CB3
+BEF6CB6F8245CAAEF31FAC54FD6B114F2122C932337B24C1DA5BBF8B0BFBDC9A
+5F58A493659ACDCD401C2C58FAEDF55EDDE0244C46185E7614E7D747D2403DDC
+ABEDA7966288BF13F0F20EFDDB5DEADB211306DE4060C88CE6C011560FB37E8C
+1FA3AA6C389F94E1F16F61063533A55D07D71266AC6C3FD6509BE40A301DA976
+F3FEFEE4432AE99EDCA5F8A6398C75327FD90D6A700CEC2EEE3B13F2BB308421
+C146E8728CE3CC3BC9CC8192B9DAF9B2BB6C9F8EFCBA48D78EB97168FC1DC97C
+DD6E7006D2956BB0A8F876CFAE4EDE704399A77BD57BA0E68A1A1E06399A79B9
+4FA801F44FA111EC17F11056FAE03C6F34E396C5F8A03659EA74EF55D9FCCDA5
+9919F96D2555B091A1DB1CAB3593FE6BEA9752BDF748D873188DEC805087EAF3
+F3F9C707566B4A796D4CDB34ED21D102B8EB5D17FFB5840343036D5B190004DE
+AF760EC9ABDFF0685692F9EC2D91C6DA4D26AD305A214FA646A0BB61AA9826F2
+3F95F7276771A3075D66CB6830E77070C5E0F5D924EF92F5D8A899A7F0671A8D
+25A4B53691BD63FE5D9DF0C751EA93B9B5DC594C59C3E35AE4635324610442EC
+CA3AD5343A9FEFE7128159AE7F93026ED7467347F6C75B07AA0CC9E7081A43C9
+303B35AB8CF7F53071A9DF4E6E1BF7F12A9E7D3ABD99C12796B2A147ED0EB38B
+15F312C0D0054C3D6F4E4EA13D174AEAB9A9A8EC4C326A387888B4FF6D5E6320
+40BF1650CEDFA01A81EB3885801D07845C498C1B9B6FB603EA0C82299371A5FB
+9B68910F693E5BF7CB77F4B5C4149AEE8EBB0B318B9A133BA7CA0D0B5E24F1E8
+607C22AF3EE9073021374DD003D603509577D55F8445BDE2A31302AEF883AC37
+F1D50E493636AF34A26E402E9D2E9CDAB856DFC12F15ABA4A0B69DCF2C942E92
+764C795E272CEF0C518D26CA27E9E104293133857AA5DBE4A36975694A3DC58A
+BCE18189CD53AEFF812DC2F4B688B7735A26E6BC406D4181C7B5B13990C92BAD
+E341180141A6A7144AFE140D39E60EA5DD426A60CDC50B660DF1777A22844323
+E9F502319CBFF944F7FD46949EC6E9708C253F866F47F6F4056514CF6DF570C0
+70D0C9430F4CFFC2A36DBD5AD6BEA79C9D6B0D750992E7CC613220C5648C57C6
+9AB0C2190F35B3EA45A7F307EDEF3C40ABC7271943264B5D2036CF8401BD5D3C
+98D5700FFA671A37DE0BA88F7C77FCD11EB134CED41BCE9A3B66227F373B4638
+81284D63058D62D605A56DBF0F465C2CC912F4C80EE3F116F73A7DDA9B087A43
+EDEC6F30E78D871C6CCE87F709950E661B2EC4745D7DB45A4CBA011EE005BAA7
+811B4E92E309933EDC67DC7E5A9348C0A95260B11DBA310864813EC5CBFE22F4
+6419B409ED1D6DA3E1439415A93EE0FE265B17CD7DD652B320F51E4783D0380C
+DBC99446E9C52E4DD7C1D94A077B38AF3F12E2AAD878F7C396E3E1E1485E7730
+DE2E62ADF872B3B759C083BD260D1309A61AE8721E15FAFA298F6788836D6EDF
+965FBC9EECC8A5C6807DB3A6882BB84BE08D81AF336E169DC05E5688EC74992D
+6A58EC7BCC6BCB75FB7DD0CADBC3B2362E9CC4CE4BB1D20E916BC8D993A6CDB1
+5A7DEFA115F546B8FA42D8D5868B87C4283CFA89973EBA733B12F4727C48438C
+435F044F8D43A3DF9E06B7F2E1037BCA0D99963FCDB2CC9A648BC0AC2DCD6DCC
+38E85BCD13AF2CE667E4C8C0F6ABAB65AC37CCF7C43F2DAE0266C2AE88AD95BB
+8E2CAF658E1001CF9DAA223E6E7FD70332B289F1EA50707E7E3FF5CFD56F184F
+4C14B534AE86AE3F1CDD9445C5058BFCEA57740536A6F2B02E32028753FD98E0
+E125292A9CB60496535D021045E35D248BBD92BFFF929FB7414FE5CB61F0A1D3
+BC4F93EA877C7016B3058A1DCDA8BCBB2870966D9362D71B493392FF5859899E
+55ADDC7C1666567CD9FD2DBAB2D9B826A0110DCA16C85B2D24F5734A5EA74B27
+FF85384E42CFEC4B4D8456111AA6F055CD9DD8FE323475400901B98D32B7655E
+CD066301B35E62124F90DC16D488B174BA5531BBEDC8C9021F366554DA84B267
+66CF30D5DE946823D70498C36F00A8771328F668B10F4B18C6E6C72BA1E10A06
+693E57B762A8CA43CF65F7F2876C452560A59F1CD108928EC451BF52A6E0FA33
+3A97048CDBF88D7EC2CF0397674C62D873CB191E901BC098F8A6F6E665337D2F
+35EE324C38E89A56EB7831855F1E6497ED4C0A22AA220B2E0592BD7CA39E1990
+5F2E3CA84859FA65BF83F2B029C987AB85CFA82C9CBABDDC7B718FD7A0B5EDB1
+36694144EDFD8DB809D286D1E4169E97ED23DA1F9236D5544BAA470394D51747
+21565CD9821990EDA344D72456A846BA440FFDC0B97F34B0C620E2CC6078325E
+A9BB7043D0D30A270845604F24BDB8B6FE66ECAF9B0701F7EA695AD687D48B58
+7BA25AAB9A4D98DD05B1AA1C80141D022658D3128BD34D368DFF9DC50D2A9582
+DFFD4598F4764F0C02B5CC0F9AF47E015379D51565DE55EA6D8E24EAE2982E01
+93A43A34F5739767B839151FE5663017F889315E85502F7D1FA452D573A52562
+6E9F950F06210A826B08B92D0D4AF6E437D4A7CE4D94FF6F1EA8FA1D00DBA6B7
+F5394834CBABC7BE2AE8912A0F1EF97213F373453B8E0067AF5FDB5F3F56518C
+6886AFB6255012C50A466BA83CD4CCBE0DB1F6C8AC8AA8964AA646E4F11D7201
+325517E47D3B26874B2B149A4A41DB3B66A3EFA8AB59A5CB648409D1E9F8C0D4
+0A32530A4FF8759786BB5AC45668F2F8CFB785E69F069FF921F6F7BFC1C22A40
+3CA56CA6274F6CE173896F31C24D1857C4DC31A7198C8754E8D690CA6119AD82
+9B4F7D3B79D658B736946B951BDE485E5A9A17276D126A296F9392DCB4D1042C
+7D468E2F689E4435FE1CCD89BF43CF1F693070A02795A5D3C3D6D5C8F8696818
+6D88B8ABE87D7A27F2D54B075755C2E50921CB27211FCAC41014C2D7E98C44B0
+8916F9217E7BB4C1F51936C2D7AA5D44042107CA2164BB8F8E609BCBECB34AC9
+8125FF8EE5F64EB1E94BD5DC233D887D60B30B85B3206CD2B9A8F68CB3728D1C
+AF89D836CD263FBCDB2D0A9EC091BC32ABC26E53086A7BC3923B91DBD76D78F6
+189C31ADEDD9DC76BFBD52A5008F752640DC091D4B652D8A92F61E5588CE12F0
+D7C71BE35E89B2D821FA223D18C55CC5AEFE3160796F8E046915F17167D6A2C7
+EA78FB45810523DEED8C9049E1B3905A965CB85890A2B62F8F170948A3B41263
+2C46759C4B9960CEF9D631589B0CA67F6AD35B31AF3357D95F4DBFBF46738AAC
+2D5362DEB297EA639A5A1E6F33BD248CD8DE1AE5AA02007D87665D1595899C08
+DCE8F20F0CF223D145A3B133F85DF97DA5B87FC14E96149083F15EA5CFC98BC6
+2207200AAC84B8049A5562E608F2BC73D574BBD24344C3CE1C599142235788B4
+8EBF1E91729BD6E6A7A317FA7BBB82F385666A8B03A55C0635BDDA15FF5F1395
+2C907D631556E4534963B3CBD118A2B1F6A74DB57BAE2DE19187DB52B53127AF
+2B2B4D811FF2A892B87DFBD3531C092D281C1EF4CB1191F35B5E3A23C0F17204
+F79BFBD7BE1E7D1EF331A58B81B9D4B8ACE150E1730FFA755B0E593484656677
+EB421978D8ED7CF5D8145F44045F0DE610BFBD15805C0B1DA70CA3FB8D02025D
+09D7591D6F718A19F38C08AD41297A943E17DE0FE3133802FA6643A9DFE9575B
+45FB50B2A0141A5F53543B69EE31F2D10C04415631380613032D532AC7D307B6
+298B26A80D3F4EC31D80B5FC439ED4BBD06ABE522D2EA1C11433E7893E40F02C
+E675CAD6183B64CB1EFB7D9454C7CBD379120B7359E8DFFC4847FB8B0E4EC734
+4B51E052A7D82D7DB8752040D9753E31D8BBAEB1522BBEBECBC1CCDBE5DE0F97
+76A7EA206C05810605D7B779DBB3EC30CF1C4F44F392388CDB78311C1CC3B3FB
+59472B9DB025078FF08EA6E43DF03585549A3AF35BAF4E76D27E7580B96E38F8
+BA27AFC767A9EC7EB3BF9A60344B340B370AF854D7E7A53C743F449A5FF9D6D1
+A811553D30A88359C3B64FE377B2D1714167A2C5FA3BDD86AA552D06F0B90EFB
+BBDA743BF4CB028F9B9D1623393456B46B7C0BDB2713568AD91B236C2C0577EB
+EA9DEFC0E769974151AD962C3A686BDA06CA866219377DA901C1FCCAF2F02C69
+E292E9329840427CB5FE3C4122767593CBDCDCD249BCD9C3F494DCCECEF9E054
+954B598757F66BC0EB4C8CE969B6D0A50427B19903ED9AD165F285A5BE66A74D
+66EEEEEAA95B05427600404DA41D7422E34FA049308379B0156204E6263C50FC
+596978ED81707D9BC68650CC4CA50341B14FCFEB6728FA878579700B8652FF7C
+733B301D1D557D1511F9924E1DC9AD741913A0BFF90818B5EAB7C33F48EF116F
+B257C9D811CA5257674A622E7F84B7932267C0FB835AEABCAD8A48B6E19DC829
+A17EC19ED6DD401BA205F3F16A4C13323DD3D52599AA08DAC9CABB6D6393C58A
+25B842F34635FB0BA8D9017085470F9104DA0F5163AFF2A49DEAE5386D0AE8A4
+E55C3557EEC6DCF179FEC29A1D14886BFB281A9CD737FD56D2BEFEF64B717E13
+D31E24056E4A9A111C667EA7B8DCEFEDB515DE16DF3B8A4AAA31D74C8FFC51AA
+02194B7372FF2EFDA4D45CEBDB46E06B6443584EFD579FE0CC2C4BB7C5E812F1
+E0148B0D293BA9C52B026C5826B5D088CC851C024EE20F4A17049D8C17A524CC
+660906B581F150A7E0D1F7C58345310F89A950DF28F380A4F747F365B72D792F
+168443859F021B534394465304FA423414533FE2F94B5A5598E1ED33E1431E13
+9ED1F903ABCBAB73633234958660DCBEA875605470B224FADFF097810D133270
+40F6F7528C94CFCBE79524CD96198119C1C9BFEF8F5CB24D0B22211BD127E5AC
+A31EE512A533C948B9A2410FC64F26913F3F1292A297ADC7540E83DA5D666D31
+C049BDB8A4FDE18AA90F3942117C0D55B43B802E0753FCF3AE08FA2CD0F6CCD8
+D1FCD122D8B591004DA2B159EE2048D36030BACE8BEF903378DEC2F9CE846617
+3FCCE22FC8E1963399EB56364488FC3DE74C6E8ECCFFC915E00E43A6E6C9DD26
+2F29C79186DAC31DFDCC9B77F9AECB66D65DE9F7B971AD3DBBBA02FB62B1C342
+3F94D70F8AE230ECB7FCAB4CA9AEE929C40A41B425EB8E961D075901EDA01788
+8DB8A8FB948D9DA0353BD94D61054B1D4436BB9D28FF70ACE15753E70541F02D
+92AFD050FA64D7A61241EC50EA7E60CB9765B409DE1949818F4B518F0A1C61DA
+CFDF3E3DDFE1D731D2967B3285E748E7FA913CE9DD9B756A206914ECD2B6CEEE
+E6A35C9AE3FC7A5B3081F1EDDEFFF0EEB2352CC5D4999EF99EAA1E671D5781A0
+DA4231440D42C6F77A0E4D3B869A3BDCDBDF45F540E48FAE376879E96F687900
+C038072B6C4F9CB2C9A2ED7FBDC23601C3C669F5A8422C678E8C779F58C49AC8
+BD1C785F4C8B1E3FE340081F0983C1B3DD2594EAEF74F4120F357A45CA8F4966
+50EA4CE1FC2B88766FDE3F188E3655ACA06C031C9E1C80BDDF279C8D509BBE4F
+604215F47115A57B21C9768A1D86DC76D6ADD175DDED9E163DC2FF00A7CBD354
+95F41C288DB99C2423528A52C90C3EE39EFEBFCB2E9CCF89F81623C99EDF0F53
+0FA93E4AF3E7B5EC7AF94FCC9B6A1425507C4B06B28213D6708722E26518853B
+C70CB204D277ECCC48EB1DB80D6FC6ACBDD66024664C695AFFAEA571441CDC8C
+8D4A72DAD228D58213A94DFED2514745193FF993C773D4848668A06974897424
+98C34C8CA33A4A42C053597B521CF2AF64C20E08B453CBD9326B9C4833B20A68
+A9459723900FCB1EF15CF5AC8C0F34E945659A7E85FA4A8143FFB4B776275E7B
+5C097003DAFD30CC9F422E6375667E8E35943727D1BCB8A7875D5505BE2ABB7B
+A2CF9E68C3FF053219F2A10DC5AA54E06539F9C0A565711EB38077856089618F
+F8C27385D20A2FE7AC334FF0E21B6598116663B430A7A17826AD2400EC47D75A
+A182266243191DEFDF4D6A06F5C89F2AED31EE2AF7672DC9ECF2696947ADC74F
+FE30FD138BB1FF4E9A610CB419BF70167D7401F21D8F5E4B46AF283D41697756
+0D6B38AC7B5AA48AB5ECF0A87954DDCF3499F2D5C1E823F817EF9C587A551BD8
+2B2D07F3641724F430DA300FF63A4AD40594F37C57C4182507F84DAD930276DD
+F38ECD1019ACFFDB446A63AF8A46747436D0E7BE06BC7768452556C41C4AF3CA
+CCAA9CB380F10D9580DE769719BBD693571740BDD58A32E500435330649A6565
+C0E88F079A4A5F1D3FCB11869E33B8DE6254DCB0DC2F447EA2A401ABEBC49AC7
+AD81C1CC34BF88E1D1679F275B6F943B7BFA6BDC274DF519065202257138CAA4
+670C46DE8C17C98C2D0A186C39F8B9E4D8651A9F548AEE01F813627C40D3D305
+FA1A92C98241708C4B092DD29F7C6ADBCC898A575A6313C97EAD42442A40992B
+28C24CF099DB981E4D111BC8E589B2B2EA3D1AD5248924E5DCE18D122726C3E6
+4F601860B2041C56A2AC643352763A8D7D41EF00AAB93E6D189BFE553F8D01EA
+4F5E66C7D180AD0E82901E28721153D75D7718FD2223F3636C5E7FB74645D6BF
+AB9D9BA0F6DA7EA12E8DEF23C2F7F36F39329C5EDCF09EB545F25CFFD545C9FE
+5596812D438879AAA992C6C43C65CA9660F8AF608E15D2DF27FE0A461D71A2F4
+B6A01AC2E41A5190638BF69969ED3118BE4FD5835BC629E62C3403AA4EB64984
+DC4B5679F57AF864220298B88C38222DBEC2D72A52D765925B60E505FF5B0AFC
+616A6E051A3881489CD5C51B14271991C3870DC316AA9CC53803E0CA0F2E8CBC
+2F59927F1AFD7B67389BA7FEC4C22731325D675D72D00A471E61B4328A333DB5
+91B620DEF89B5E62DF3A9B69EB237097E812E67D548CCA86BBEA3DC674948A1A
+62A6459EF8F9CA866C1299316D54119034DF7D2C9D7BE6AED53D6AD008A42C17
+44BC6DD21875EDDFEC247179D652AD41D5719BE32626D05AA1E4CB420C84562C
+2197D6BF20C38C1456B5E1847EE3969CDBCD0C1F5A58B3A4ABE6D7F75395B15B
+6C158451D56021983165364C56C81576BF1DC77F1DF263ED7A833D3108C8AE46
+3C733A150F15AA2FDC148FB91C3F2C70AB3DCCC2120275A8CD3B5DDCA1713EA2
+79C60649418FF22BB4C433EF331FF66610B51F88ED124BAA6ABA4D3D39C25C62
+22CD6428C7C29051B16BAC3CD9E78539D76F1D99CC3F505C22E3FBFAD4B84DCA
+B9294BBD4159BC13FF6AE1105CA5E427ACCC29C4C63F4BDCB714781280561D6A
+3704DE60315A3C677116B2C84241F4648458A1C8A7720F7FF55F940A97C54C69
+1764823B446F4AB9B2BAE27787EAAA15723A4D66E70E50D2B1D6953A81314ACF
+02CBDA5CB1C842C1403B176D760A129A30F82305CB20A01B48FBD1262ADE49D8
+EADFB941960723A295E290A5A8E438447692877E10425526EFFD8800753C2B3E
+6AA9A537E8BA7627E5C53E46651E77928A8A8B69E2FEA32DD4E58D74531F9244
+491CE228E812954780D14A8D76433C2DADEE72A2AA95E5A7E9B5EAD4DDEB581D
+DE3E64EBBB9FC47901336696BE0A0A55D0DAC710A3852C6347373878212193D0
+4475673018A054032F017EC0609ED3CD57B77C2B51CAF784949963D4C2EAAF8B
+7A188D16044BC91BE725012512FC31F266D6DE3F923924A055C89A33468C3C7A
+1222CD66DCBD20D2013FC3AE756A3F6C48BB72644F8CD9C75A67D9A6A00D02AF
+0CC57AD8C2A88D1B2856105F91A652B1447407B6A98ABD223E1F8144A238F8C0
+217A0BB5980C0527C5A59BD5EC496D22E6DDF456F442AD77AC2058A44184B46D
+5D427C4755456BD7144C47F0465DB3312621B29311358855D2AE3CB2B6155B98
+972D9FEA0856D8EA2A4FC750C6B2A349E5FE0890F49373191A349F30E5FB8E5B
+ABE88FC8FBF7EBD11DD7705244FCFDCC9A21C4F48C0553CF05116DD5ABB13E78
+F0FB61404494B88DFF79560E61B50EE07ED7A2C7E16F259E799C7E4505C2D0F9
+05897FF89A22D7933C4B7D8222A2E8DABCE1927CE78E46BC2978F6455E2AAC5C
+D64E8CEB0AA6EB9A89D1D7EEA50ED9E313FF88EAE8D7E0DBDBBBB74C91381E1E
+8A61415D9B102F3C06B6CD593762EB9EA66BDB2C11866CB793559C142D47F23B
+99671AD31599FD988572052634AE80A927530F5C5043E42D3D2D60600DF70DA1
+CB8BAF0E1F1BD8B06A8DB21E0A6E40EDFFA6EC1CFCCD84017DB324499EB4F1C3
+8A6939954F5C3887D3D31C68C16FCD63FA7ECDF000C43CC4F30328DBC1E94165
+87F2EFB114409180F94B2EBA5EE216FBC2A8D1D532BE7159698FA8BF543B1C76
+0C2D2254E721A9758A0E8045235AFF87A0873264E0F7BAAB74F68357252D03DC
+69338924FFAE1C7D015FD143ABC227BD3535CEEC1888CDF8428139D60D790D70
+3F97943A8D704C276F4C1C2483A7A829A9F78A64A6DDEED004D1C5CCBC7B7A25
+67D337758E8316B0327C956751CC8C907283373C93C34AD93C348B1FC791BDF6
+4639D991868BB630C2A920B65F826BF09B1C02065BDBBB51D1F9E4ED5E10158A
+13C54EBD15E48B26A9AD170F5097D1BA4820345A7C20BF7B3A2A384CFF6BACA9
+B2706A3FB33DB7CD438887D95B5F31282719F224F3123331140CCDE592B64FED
+45C9903F20F50E6F49B73D2187FCCC657FB6B1E856E2FF1E9057462F29BBB25C
+69EF67AC4C1C6E87EC0350BBBF68DDC82D311E7270C3B8CFE8EEC56F14002C7A
+4C8B05630D21044D94A01B736CAAB276A2D5043E9D5D10A532AC4ADE249E25DE
+004F38C4067208629688D3159BE82893BDFD55E1210FDE735AC7C50A95FA8A69
+E50969EFD4D5FA30A3A2F5C5213D341E7E9DB06310091F5086A2DF935A6E0C1B
+B8DF8485B70E40BD9D5E81AFCDC03CCF79823D1A48826D8117C598A1369AA595
+0B7BB3AAAFEC7AD00651125F21F844CB202C83D4B8D9C297B20CA5F6D85A8A69
+5CC6E155CA801E948409138A8A9F32E8C65B5ED105AC04129075EEAE84BFD563
+D61F881519C65AC2FD369BC471FB00306FE7063FBD9228694AF162927DBF1FF7
+48CAEEAD917C2FF3F802631789E3122EE6D11366A3EDF107A31AAF56DE61E70D
+DE68D75BB7D727763AA2C42881D7884244D501E062A85C3FCBF1425E4DC50165
+502625F11BEC6082DDD71D405F7DBA8A4E2F91FF1CB6DFD6CC50ED6AC6E0B14D
+30D48FA7B39BDA6F2C2DE0B59AF2CC4AAE874D319FC1F3572476C07659D0D36D
+2139567CB50AF96C55E5073B850E58F5532260955F01EACC7A5097A684C7C364
+16501A26993771F1EBE70C33A338E91E1D5A22B5A2A906A8B1AA693727C4FB7E
+863FC584814E59CE87FBEE45D6312187E7FAE2AE819403030EE9613B1DB94E68
+BF9B56F9697841CC08996FD63F4C9B6C4B0831B48BC7C80DB4AA1076BCC9C7F1
+01508ECA415C69B492ED0C436A986C47FD82267C64CF6C26D9AB484EED1C7E67
+C895CBCDBD508B04E86AAC7E63EA6AC8B710DC544993B93283607FE8B7309AEB
+4528ED1F4D27B4C217C2BA78993FA96B0830002E6564CCB1B850BA840842E239
+77117C4D8E7FBAC6F462995D03B0A684B5E1FFEFCB69531FB813BB9FEBABA53D
+02483CBAC40951E1BFB759B030CFF58E6011D25974A062DC0411ABAC7C3C05F2
+9CF35D86FFB400641A133FF3A3824672513FB67046B333296ECB1C40F55BF762
+078C5BE3713797869309B2E0B71D9DAECF933D273E2E8E7B67F2717C3EB35976
+48F6A4C29C669A35DB5EA78300495DFF769F5102B353ABCB95D2FE2F423F5376
+EC766E33FD7A76DF22E3F5F14F586CB3B88858F2C114C59B0A84CFAB7E259AF0
+4342AFD22D7668CA0D48A3085E721688FDE6225FC98325B098E9CBFA9936A414
+80B6DF11F2F04856E30FD8313899B7C19283D82E581EF0456F52F280F89FF3FD
+8036F4EED5649E70A73EA5AC4F3C345C97DB44767032D94BF0FC803947ED6703
+4C698A8AF8F5DC2085EEA80BA99601F7565587365A5D837A0FE3B6B39A30F951
+5C3BB3C07596BB05AD858D881B1D8D588F7770B10D6BC3902E616762961F710F
+EE87FDECDE025B76F5A2214350BB0C3B0CE986F46249F2CD348F5C0CFEFD5A64
+C19249431FB5E1439F65FB3C7DF281E45E2DB5827532E78A9B39C95A91F425E3
+AF792FCB62702D02EBB7C59A2FB82CECD2E754078ACE5924D289A3EFD8119565
+F775F6F78D8058115387B278FC8AE65DCA44BC8947BC43799DF666C420410806
+9661F4CF83CDA52CED76C84B289C6DCF22CCC524B99FE1C3230D7A4D29B65D74
+72B93860E4337841BEDEF50CF99B79819A425069D0F55EF3D4143CA1D3297B0B
+27832B969F276297C86D2CB54A49F72FD36237D29682CDDD1ABD9DBC3DD10F76
+0AC102435C5CE8135398EC892AFEA4C76E7A066425CCBB2B6A03EF8C9D02CB36
+0C7C892327E37958F2E81CE0DC779F92CA226CF0426E6560DD2A5E25A8A60548
+4F9A8045642152EA0BB3331E305215AD4AB5FDD820912E0EC1E569B35C45E76E
+8EA4DA2D87D2262505544F948A7C1322C1B002315EA0C07E04836F4C7F009A6B
+DA41AF0A8F7E8C4E2DECE1EAC37F4DCBCFE8810252C28238AB712551AC6E5890
+C048403EABEF1675DBF4755659FAF821036C8705C2CCF213340FEF79E84DB567
+878C1CB5C0E7685954DAD070AB8006F88D82A4117417139D25C9F7DEB0D00E5E
+7D1C1868B43CCF1D0D5A6F0E1C520AD017A055C2AE6AB0FF54F84B4621918B08
+CEB9572C4527DA643A77191475AB35D2B7E6099A723F03CBBC269354B87604A0
+76BBF09D5C5A6573D3AEED27E7EDE061BDB62D92F718EB14D6DE1EC2156E72C8
+740D671738FB75C8EF11C8871E8910B7E12B63C9BFD5CB59A4C2332FC7C8CED2
+F7D5B67E5FDC9167882D43EA3549013335FA4210E6985E09490646AEA709D932
+047ADD15223E0FE806B21CC5756EA221CDEE8D3CBA3F4830B8210F64F87A47C7
+D612DBF968618848AB894E6813F6ECE30273A35D925AAA78BD4DA3E742755182
+19B7970D782B3A109CC9BEEA1EEA5774A9612413206631F7181508FC660A42CF
+3F5C48D760D494EAC6A5EB0E2793E64A23ED11E0E039F4CB6103DB297FFF66CF
+9E917D5C8E8982213E351AA2729835EB3D0EA62F8161E5FDE8360D4FC61CB59C
+BC7F8F2AA775319AFA025BBDA4DB53B7DEDE04FD7FD7C48281A11307DC3C9423
+3021D1D2FB34142B374BC7892953EAB3141F0913DA7717768CCE6535862AAF4F
+11E75255940FA6319422B826874584DCD975DC6DA8946CFE9509E67857C3A09C
+727B075C1F51DE1870BFDD2E48348CCA53ABF3EAF1458448E48C093D5FD1EB17
+B3FB2C466B948D1AFA5BD30C867A96BD2A254B185EF3FED17787AE847B018574
+918639FBB80FDA2F6DC60A9F2B481F1877CE8AB6B8007606B86B3A0DCC32D23D
+555265598D8701F30D79CEFE6CFCEE6A772AD60D83EC0D4733665A5E3B41482A
+F1FC9B05A575E0702B64844B92F8F92F68ADC18812F3749526FBF23A6635BE71
+A347F2D30B37C5683FDE87925C9698FE2A4292DEECFDAF63AB1555703E59A1CA
+2B045DAF1D2E538A90ACFF3A100DF19B63AEFB70F3C6657E961CF36E9383FCFD
+E83E700F48283649FCF61DC1A3D7563F2D97BBA5B9C34CD3802B30CAAAD70E27
+E1D72C0EE80A3B6923766B343AA16DE0934AE986BE252C29AB0E983F876EEE3C
+36A0F36CD2A6832AF4B79727A44215D1D91A88A6DACF4DE8955D0405CCE43A5D
+626B8D0DC990335483290F08B4B674473F499EB8B4F40B140D06862694337A43
+C58258BFC4EFC1BF1DE089BF989A805E9E09135F7C17443986BBB32E92668CF0
+E6B1027F6307BD9FD8245EA2ADEF54FF4D9BAF80027E692FEE6B9DB729A122A9
+2909D9754FD3495516D29B6BBAE63E8C5C0CC688CE9B365FDB78EAD8FBF1F8A3
+C498946B0D3D4FAD0728FCD17E753EED4993B74093988BA1BD9FD692EBE8FB61
+696A120E4D080417B405A9F9A03709826125672455FA70D59B2989914904D527
+F73DBEE7710B1AA514F78A41DF15AD64BD5A8A4AA065668B12FA871B02AC6A89
+D15A9AA6777506245426B2310C394A819F645AE4AADA6A804FF8F575518966B6
+1EB61A451B910F0D12F278ABA86269974E2B962E12BA5676E48E1D890C323606
+DEDE91894E597022F6876D7B755FB788C27E557D5123A726A68B8EB4E8A6A601
+EC90D33EB22FB56F688C522B7761D408F6C911922464A7D4BE739FD632AC32EF
+1910F8ECE7C46AC60439CFDD984A122090504DBC625420A7683771EBED156D39
+0CE95067DB56B1E7AC8C4A49ACF20CE240BE9E2923A905ADE017D4E55F5A6E85
+28C5886F654219B4445A6EB191D423E2CCC63F0E872CE5BF0151691304BDA4A8
+DD9437A6CAE9A691830B21E9C4BD460F9AC106EC7405C9257B0E2B046530C082
+830A69F37E921C89A50459F95293BCFF59A9B1D517BC864EDA440C76B824823C
+46AB20A654F1F890DD9476C93CB2159390F4E6482E6D225C91B47A9D2672F72E
+3BC162C7925E617CA7473846E4B5F8058934F478E9519C7AE8DFAE594CC0ACC2
+0B459004CEDE755B37BF620FA1897E4C01ED9C3290154B0A6CBE18A264604EF9
+DF7759E8E6A419082674849253CF43B4F695DD49A67EBD09CAFEC4730A8AE038
+9F4272B5F4C1F8C9ED47BE4290391B0A5BC32CEF6675CA283F7EC67754748592
+E9C50A4E4D268C7624BAA2BBF9912E8FC1E1E577AB75A71067D970E5CCAD3A29
+37A936C7C3C26E24FABCF67300BB5B3652F17F4753CE7C0F37316B65AD949660
+270EEB6FF1446FB73E3DA5264E4D3D39AD112B1722180E94C2029AAD81D3540D
+1857A0D7BC9750D46B06D2FB9110DB17678ED00150E5412E3E2AF970CBBC201B
+28732B3CBDD2806B8E2D5A487BDB50C169DFCF77DE4BFCFC85AB3B1B81CDED61
+C7A29B7A242ED7CB96C118ADA24EBA5E3110D80D210832F6D281958D2D01C4AE
+C3B8A86F616E0A587F249BED18E27C4AF6778A0BBC401EB60C15396CF0E5500B
+2C052E3330B66D5192A5F994FF5C21AD3746F86A46872E225FB5BB4932C1E642
+6E9C34501F3BE12DCD9E21AC4695E78DE48C053561B2C33C25E68CB0A2BE7DD8
+9785FA0C6B1E4778A6B8D6969E46BA1F8402633523B8B32A58923672BFF02663
+62286E5F17C7D0370781BAB65284034B44C913E4C1354D9DC1A5C673F6CDD36B
+D8B1299233F366ED9AD8DDBD9ADD27FCDA2A37034119C117F8BDE4E978534AC6
+8A00359B52589EBE1B3E4DFDDF3D8AC938639E7D3A7447B1A6EADF6B3750E55E
+3BC652C042B68C68576F7476F310FC6CEB666CFE014845CE3CB0550747B7D746
+EDF50B5BCAF72BC32B8A5D2CAD20ED9BE2B2326F633E484356B67BBEF775B53F
+CCB3B660F93715F2DCB33027D68F2216BAD4D0353A9F18F36D5F9727C7A47727
+2D4D31CFDA487C864E8676B69D611F2824E2974D70573869AF5CE2CED7694208
+93FE60C5950B820BF734B313B3EFCC03B2B97D0840A93A0CE3083004CAA308F4
+FBF3CCB49C7F3961042072D330D09ED5255C9CB3A8036DA5F378C46507B6FED9
+556FBF60B388D29F93B46B9C8CDDA13308096DAB6DF3BF6649E26C2A5A719713
+D4F2304CC7A157F813E3006869F38FB2D3E469E017F7E6581517F38D429885F4
+57C3CB58762CFDAE0F4E14A54369920CA14904A021190DE7421343B310CE7DB5
+69568B9279CAF7175CE500DA6C7F1B78B31AF3F398E3338074F717B9C9B0B297
+F7DB17724B8701B16FE18991FF1D82FB541EBD4F2BD41843D86CA8C2EF4D6271
+F481D82746E43F74BFD99CDB2E0D983304302309C17BC07C4542C1DA1E7E32FC
+B58170C665B2A190A07741A052DE5C3C1620596DE24714FD7A23F2C31A5ED151
+706B9EF040E390063B2811073471929EB09EDB782158F3EF4FDE5EC0535A52A9
+98383D3D5676EAA4E8F0BCC31345B8F3CF3CFBC3838A837C0703A917FEDB2484
+FD1EBDFFF1D070A349AE3EE7B4797E466DEC7853C8CEEC3CACDD42FA62906A29
+9AB9DBE71F4D023D3E257B01DF866C6C3F288F17F34EF72C3A4229BCAC7F7FEB
+908AF038D48E7433F23D16B19221C7ECBB577366A1168441692281668F590E3D
+FAC00AD5CF2036A6A620D775C28EFBC554543DF86BDCF5C0BFDDFA6CFF986F36
+E8E01B4CCAFE31FA9781EB5A6DEE19E8AAD0D295956DB6457FC3721A4C5C9E7F
+A26C83E091FB35DD3FCC38919F81E53BA59DBCE48209FE33D60D98723776E292
+4A6C4A19B69DA170CFE4A10065C739335430FBF3FB76F84004CC19337B4217A2
+F03B025D6B56CF09E0B540F4CE61060BC0DA4E4FD93DCD4B205865548466523D
+B24636A5DC5F2F7EBF2CB0FE4EFA20E3C27E0FB8A9CADBF5780827E7BC7F28FE
+4D5CC6D4C6729078E5CBD9A455DC55AEF0206E1307F9083FF09E84AC6BCF7F37
+4DFCB330A02C4782702442F69124002DF1F7C85CA0A8E121CA72DAD2FA0B80CF
+52896EC211FC3000B1E6141D3C8B07FF16FF371EC58F0A3F24D99E91FDBE3A87
+24003FE7F0DD48787375E0155E294C0A0B6C5327AB73EF1F8531D9DB5634AAAA
+201C70F5AB24D3C5D605302983802D1866E4CA6C2750B71B0807960B372EF2B2
+BEB56381841E73A148D39AC5B79C36D7058ACEA989E2862506B3E9B25B1A3575
+AE3210D3762224F1075CC8AB200B90303BD51173C264EE15872352C6870E34D4
+6F4EBF5A0AC3BB1E8E2D68CF2F089E1B680E8A623668802A950B6A1FF1DC4EC6
+6916A901C87C0DE0D67B95794679A8049C510CB392A0C6A26061B08797FE7828
+807740CB6B6F1E5DFC71090BDC799266FED0643CEB210399E5F16BE7E1899AC7
+
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+cleartomark
+%%EndFont 
+%%BeginFont: CMR8
+%!PS-AdobeFont-1.1: CMR8 1.0
+%%CreationDate: 1991 Aug 20 16:39:40
+% Copyright (C) 1997 American Mathematical Society. All Rights Reserved.
+11 dict begin
+/FontInfo 7 dict dup begin
+/version (1.0) readonly def
+/Notice (Copyright (C) 1997 American Mathematical Society. All Rights Reserved) readonly def
+/FullName (CMR8) readonly def
+/FamilyName (Computer Modern) readonly def
+/Weight (Medium) readonly def
+/ItalicAngle 0 def
+/isFixedPitch false def
+end readonly def
+/FontName /CMR8 def
+/PaintType 0 def
+/FontType 1 def
+/FontMatrix [0.001 0 0 0.001 0 0] readonly def
+/Encoding 256 array
+0 1 255 {1 index exch /.notdef put} for
+dup 0 /.notdef put
+readonly def
+/FontBBox{-36 -250 1070 750}readonly def
+/UniqueID 5000791 def
+currentdict end
+currentfile eexec
+D9D66F633B846A97B686A97E45A3D0AA052A014267B7904EB3C0D3BD0B83D891
+016CA6CA4B712ADEB258FAAB9A130EE605E61F77FC1B738ABC7C51CD46EF8171
+9098D5FEE67660E69A7AB91B58F29A4D79E57022F783EB0FBBB6D4F4EC35014F
+D2DECBA99459A4C59DF0C6EBA150284454E707DC2100C15B76B4C19B84363758
+469A6C558785B226332152109871A9883487DD7710949204DDCF837E6A8708B8
+2BDBF16FBC7512FAA308A093FE5CF4E9D2405B169CD5365D6ECED5D768D66D6C
+68618B8C482B341F8CA38E9BB9BAFCFAAD9C2F3FD033B62690986ED43D9C9361
+3645B82392D5CAE11A7CB49D7E2E82DCD485CBA1772CE422BB1D7283AD675B65
+48A7EA0069A883EC1DAA3E1F9ECE7586D6CF0A128CD557C7E5D7AA3EA97EBAD3
+9619D1BFCF4A6D64768741EDEA0A5B0EFBBF347CDCBE2E03D756967A16B613DB
+0FC45FA2A3312E0C46A5FD0466AB097C58FFEEC40601B8395E52775D0AFCD7DB
+8AB317333110531E5C44A4CB4B5ACD571A1A60960B15E450948A5EEA14DD330F
+EA209265DB8E1A1FC80DCD3860323FD26C113B041A88C88A21655878680A4466
+FA10403D24BB97152A49B842C180E4D258C9D48F21D057782D90623116830BA3
+9902B3C5F2F2DD01433B0D7099C07DBDE268D0FFED5169BCD03D48B2F058AD62
+D8678C626DC7A3F352152C99BA963EF95F8AD11DB8B0D351210A17E4C2C55AD8
+9EB64172935D3C20A398F3EEEEC31551966A7438EF3FEE422C6D4E05337620D5
+ACC7B52BED984BFAAD36EF9D20748B05D07BE4414A63975125D272FAD83F76E6
+10FFF8363014BE526D580873C5A42B70FA911EC7B86905F13AFE55EB0273F582
+83158793B8CC296B8DE1DCCF1250FD57CB0E035C7EDA3B0092ED940D37A05493
+2EC54E09B984FCA4AB7D2EA182BCF1263AA244B07EC0EA912A2BCC6CA6105B29
+044005DDBEAF88E0F05541BBD233977A447B469F013D8535A9D7023CC0FB7B49
+A95CD2B6F18935C37F49E9A73E97A8602C5C26EE13D7A04A188336FCAB4CDEE0
+23DE9D803FD6E8D846B3F729BD36137E834E016242CD2F7BF048959DD45AD413
+19B985D05E5D422F3D0968375EA6A90FBEBF8B42B15F15280469D69629C08A42
+1C298CC027CC288B9C984239ABB96B6A891C1360D08F9ECC22202861E4CE9B39
+8BF08623285689768A25067980226B7208CCEC5A8A4DDB2F36603CFB5DF40583
+F8F11DF37478E043528F66EF0ADF111EE94286235F6B29BAEDBA9B837CB9AD52
+AEABA31BE948CA108A72190FEBDBECFB0CECD14982C8846D6C7A587C3DFAD771
+C2A1A1454BE7BBF0308E112D0DFA81C13F418CF33982258AF841B214DE2775C2
+35F8B6874BFE36C434B999E0D3809987355FF6CB1A264AC91C9A9F95ED54C658
+2666E8D269A2F7D0C4B3FFADC3F7FBD8371146D651C8F0E69E44FC8CAF93FEBE
+A75698A91E32FBD20C4AA0EA5A545FF700ACCBE95BEEA86B45FB9D5B1859284D
+FEEBD3F7CC17B5688B4A3416364C5902E8841B9DF379501726EC5105630BE329
+6C2C2DDED22CBFF638852C013E89CE57F6D0ED579E0B3D9697E08961739888EB
+520EEF49E35F720FDD45927B8E7A14AAA38947B2FA77EF16A28F739A5602463B
+391C0BE2873F1C4BCDE31E5BD886235FC3077FD9FA3DEED731D52A7FEAE2B1A4
+F42C67AFDBE3A1C2250F6F0020FBFE0B4AAE3E7BF343531FE5D22CA1CD8DA64D
+CA3C465CA9AFF2DE8CB798DE7B6D0B9BC98797DA52E4C8D6925475439C5D8903
+5A09A562DF97FDC029D8A7BACE039EB3F473EC06A100A1B6237DE9073FD24D07
+E6CD5DC2DD17E79E8A279AC21BCC50856DA7413A1E15D48857560C08E93033E8
+C288ED9D3E17A1C408AD51A060B0038FBD1181F8463EEA64853CE2287A154D72
+088CE1EE5EC3FF197DAA54EC1F1EBD5FE9C384B8F1B4B45E5365A88D1CCC3EC2
+E471514035B79066414D1D45E2ECFF3F259AB08CD2E86A86ED7A33146278547F
+81067B91305B91AA29D914F9684EE5B4A279D5DDCF06B25291E4B17997E2ED10
+454A5ACBA3F1301343D954A54607E9325FDC5FEBFDC9D5F3DECF7C16A48D0113
+76EF40A52183ABD5287C7D84D6507B55AED64F11B1EBEA59B8101E00F81A89D4
+7682AA86FB191E1D27AAB8D0D07B900D6D20E457F26132A3D7F24E32637F7A22
+A3D23D156001B0315C4DC0873EDAC6DBD737E2DD263350268D276C8E33437171
+B09D8713875F1D899B9A522DD44FEA0A4DE0DDFB30BEB4BC7FF4545FACC33793
+89C67AFBC043F644EDCC314A5DBA6A7D27DEEBDD11E81248C2BE5CB6DFC502DC
+92A2434B6C65EAD4AFCAA4C59A5D37C324848DD3C2AEB787EAB15248E9AFF9C3
+5AC35E0EE19A8D27FC13401102BECAD54B38E2BFD3D1E0F836C5299EC8839F64
+23F515946B7B2EEFAD935599CAEA443E65F067C8F79A78DBE2BE3677A2B30646
+559033FCE638927799E9E5C6147FEC29483142C7C07EAB0B5FCDB542D2D694D5
+BEB3019E045123E635563C881455DF8014B79C8805B324C5D684F89B26555656
+459E8DFF6197D31D8385FE2BF2AE043E1EA255C6B7347C031157BF752809983A
+68FD6C3BC772ACC8813EF93A76EDA8760C40262E1606066AD748CA46FDF635A0
+52272B03678EFAEE2B66817663964336B5457E6E2C13B1BB880C15712EC4EE64
+096389FD1408B288D4A1A8E8FD018E365779BF9EE15A26FFD600D6419DE268B6
+65FFAF909D5DF2DA1C9F16A4E4A0F1EB43C81C1C66B438AEE139EDB52F322D85
+23CCB2AA621502A9FBB1DD820203E9F66BB044FCFB9887C2008142825B985BA8
+E052272D8E962A63E7772B4E97B973B4B1A3A1C17A01E9825E12C08D990A3EA3
+FC98A13DA2AF57286E0C0B305823A0BCD0293310D7DBF14C5CC7B01A7C83D84C
+0A8E0721C1E67DE0DA42B9E21471F21E674822B7ECC215C58C2BF2295ACECCFD
+1B2ECBB63B056591EE56F4901BC14E3872A14519ACFB7A8211E8444AB8EC19B9
+B17DAD562F6F21669544920897F75D1C19D5DB9299DF04F0AEBD84892CED884F
+523CD0E6B3EB6206F57CF26D5C24CA74BBF7B616F15510D3E1146410AB47544E
+548ED4161F0440A4BC21763EBF4D9C93220116861A7949450C6BE22424CC5BD9
+338A89A2D3ED7836F3DDC25EFC17977B5062F9DFB65B4724071B96907728B3EB
+9B55680D73583D3DDAC1A5018527A728387C313E7C07E91150E4B6D978BEFDFF
+959CC357492AA1227096C27BBB9B2C12F7804ACF22BAE21811F995A3BDE0503D
+E8965C95F87C23695D6D9B796EC4697448DB0C08A97FF0F09C454A8BA08CCD75
+686C58D5729BC8F9D06B5EA2F0326996E36A514E2FD9B3CF5F6C6DCE05D70690
+00AEB1F3B205D400768C8E2F71295C72B1647921EF7A029A11EE3B68C5B170F1
+571754ACCEE2B64BF12AF3C7F94803CFE7BECA694EDEF24F9DB84B55A2C4F22F
+193883D348B9BE266E430BEA4C6A3EA86CFCE88848A37AFF0CDF7FA63AADE88A
+784B1E8A8AA96785F0853D5752AAA5C4F9341DC6EE678F726D176515C6E756B5
+D6C5C7D9123BB78EFEFCB829D818730959A1B5CD8FCB893EE1B7E7D67CBC7663
+D6F152576479F83609593794FC30659D0C73015733B76CA5106C343B3FD45967
+D61A2141E92270810D09B479D550876881726AB60666F928FDF341FC224BE221
+6A9195A14A3883B502B4554794D05C06D21F888EA05317C1438A2DBDF43622FE
+C61B170B227805A5C4248A0E8970CF4290719F80913BB6DA7A0A8AF8920D0980
+7E2BC0E8245523928611D78D782FA1446C03381A96BCBD288FFC3DF5456EF229
+A10D572C76573526ED92278C5BB522B57B340C3B2087DE290B4795EE49682945
+F86085107218B8534BCD6D1096EACD1F4A98EA440EA741FF5720313D5015758D
+03C03826FC252D9645612C25B0BF7E56EAF60AE46AF3C6A67A46D1D7FA862E97
+380A1D42909171A8E32CB00362C65889387AD6B739661F8F6BE36D4CC8021F56
+F62244D2F0526F4B3DD6B976C4D22E44E6ADBD3D5658CD079CCD506F834D9539
+6DC4F79BF44DF677A57968CD2456CD6489485E7FFE28D7DEBBB9FF7B0029E3A4
+46EF52A82A71ECB04531E7E3243DC0135896C76F53C3307ED38F0EBA36618D68
+ED76731855E5AB3F8AEC8963584CA91705D1F659DDF677E55415F74FB429FC6E
+D53F874B168D1CED406003E61967C6BE893628C6860BD446C96187DFDA2D00C0
+F4FC1396E2B21A92925646E2A6818DB8C1DA2F8ED2FCC6F9CCB7B9CD5C7098EF
+C3702824DD69FA1F2C7743B449BB59718EDEC1570BD66AA61417D58AD6B07789
+60052FDDBD48B9E25D256A993EABED6EAC75DD12F542F510998B151E9D121211
+50B8813391201C9AA823EBB5F113735E05F579CF7CF59287F69E3931EB47BD85
+3258113D46114546B4645EB5EED8759ADC35AB0BC0D14EE629E8589A04A7ACF2
+F6F5770A8FC4E88E95EE63B8491F2D0D97AD96645C5B2E898BC605710AFCB1A6
+E7927E18EBE359B49AF1D5377DF9CB90608E2F3FD2DC0B43C2C83EDF1FD81154
+FDC963D172D17D6632DAC1C1E748BB2ED87D8304602B131D6CB035D2B8D58290
+2FAA6DF8A7ACA5A773A18DD55E5B74E3B6809CFA80DEB4F5F3AFD49C6BACA59E
+42A9F513F49EBDC110464F2ECF5131EB45DBC0C06BAEEE4B2698FFAA7AED92AB
+8D958EB14947BA556A60ABBD8BB67B4E5987EDB96376F2776BA9A41FA3A94989
+666506E7F27E28211157EA5D0344D0D476B5600B062AD88D7A28639DBCE5FD3D
+AB7DE713B98E300FABF41B7C6243D546B0D76BC691D9CC3BE0A110268A619C42
+04F2214A985EA37EBA6817EBF8C9982C33F23BBD33F2F8C8D516AF301977559B
+694045976C9D2827C678110443DC6C30F3BEDC6FF225FEAE3D18D2C177473A77
+A31AC90671F44461A8EC5BF8490BAC87AC00190067A4A9DA4B27570FA4F1F9DD
+290A3ECAC3CE9D158FF5CD6AD17CAD3E9511BC97AA3F02D9259E5391D5A38563
+C423FE3E015C0E780937F4B3AD9B83C7A61D0B60D857A3A9FA5945A37A309E42
+B4D0A83D925D1FD53C0EFD328E111EED09283BA92254AA5C40FD871F9AA0DCD0
+8D7D7657D5B3A35084375683DB902EC2C2338D33B96474A33781F18DACB4BDB2
+B4FE913FFC432680D99B1E371984DA84ED9D0B8E853D4BF070B1FE7859E67997
+F3416617495C6A866FA18795BC038604198181F2906BCB6E504F74B38E0057A9
+1CD469A9910B2985621FB959587EA432A7C6B93531759E85B3EA0593863A4248
+154F621464F3A683E183BAFB5F8B4FD4A9F2D4ABF4DFBE58529FB8B83E1AF655
+AE6EB83E33BE30EC549D74931C2917ADA0701534E84F644B17A1E1E486DA2C2C
+5D12A77EB861543EEAE1F13E0BF2F1C220F638DB4E4738BAB8710D463166618D
+FF19BF5C5E5D94141F0EEAB169FC6F06C9AE5BC1AA1FD424457BC1F8D24EA5F6
+17C95D57A2E7578AC9D9F0B164FD49BBA5368563C144FC44D87BF2A42E721B25
+24DC91B4AF5DB2C843F4D147B0073F5327F0C8D92B1921DCDC5E482E4B12E9F0
+12C84F8B0626A8D38A06B9385F13A3811A47FE1883AE98B2A8738A90C2773DB5
+A506CE73DB7BAD29D45BC357D44E9BD7090BB46E1339C5F034F276A14C69C8B7
+91292EC53B314D39EA9DD46110AD61576D60C45AFC1CDD243A9E49567341F035
+E8B0B2051EE1F75C7FC6026367BBAC34029DEF816E3A1E4F329DFD5CCABA63F1
+158CB87E91A2180AE1F2051786237C61014D6220E42ED942D64A99D95BC3C950
+4CA7F27A79F6B38A10C3D077FB48A40FAA5BC0E3304C76E8B788E4AF7A85C57C
+257CF536E56696B2803E1783777AF7C1268E1991068CAE8A0B68385EF1CA75E1
+5D9002BCE2B6F5544437763B1E9A0FB98F3D7FAF926A3153592E30A43EC096FC
+74E164BFCC9BAB0B1448B47E366F35A9F150FC05786996557FF5BFE213EA4E8E
+2C251F30CDBB945792E23EDFA771D1F396A86D7CD24B821496B3FC7B337F5C4B
+0A18EE14683E08332472F6DF23407B1CEB13FBCD4722D3A6219892C7F5F335FA
+A8E6ABAC59BB54C0537E09C625114C970413A94E368C1684A0162E09152B3D29
+FECA0FD9A4D3ECFA029E13AE3EC32361A0DD63C485973275E6483EE4DB5E4E2A
+7E4269E435071F1B2716C7C1734C3E7D53D1F9A6A90A46B8BAB6FC3C83B8AF4C
+5204957340555542CE02BCC523E02B40AFB0737E42F79DE3C991E3BC3A0CC7AF
+A2D0F07989373D0F0B8CD3BD7F7080F0AFE311E0E7D34FB123CBA4055D965D83
+7669E90F4987364179A3EEC50820F27FA5A0B9A6EA90FE1A5E15309520CB6EBA
+F77DF5CD6ABFD4948B4EB901769F976D593291209F322B34457551EEFC6BBCB3
+A7BA4E2322ED16E467BD565866AEF290CBC79FF662E0BEB3610A1C3AA8B7C642
+9097D65A387CDB4475441257CD58AB130247AAFB19083B84EF56CA93D6D5BC6C
+A86D7065183F002ADDB8CC90AB05F21BAE49448FC9FF6109CF9840544DA8260F
+F14B83547A6889900D8D32FBE35519DA5BB9AB53F2DF76D98BFD77006E276B48
+22662736770B8417853F052B89BF632FC930DD7450E2350677A953D4912157B2
+1A315E1107864C0636F197A9322F55514DFD08E9433D47D5E3920AAA5CF9F489
+AD5788BF31EDF1703B7ED067B68B4C5A3746AFBCBA921EA7C6F4C04057BB0DBE
+B0867CB3B8EDB655193AC8F4917134B66BC01276833658B39637DA3640A1FA55
+9F34C25F609B6C70989468137D810DEEA198ED52D5631FBF5690765C86A7AB03
+AEEF9069F6BAF549FAFD3E2D73A6563F8773A1316BD1F47B9FFE755D0A2C6962
+E08CBAE9BBDD701A0F62E3A42EFF5C64D5BC99D15E563A10A12ECF6676B52A23
+C3E16E9FD30AA75F54A2DBF2C83F6A3068332D6FF91AEF7385D304274700F5DA
+DBCA29C39E8D41E98349E3D962BB584F3603EF9E87506B20BBB901733D917A5D
+3FAC10772976395108F599E2F05ACFC216089CFA0A9052C590BA52D38BF341D0
+1982BAD0CBF9B56DE9450AD2C06ADA2DE43163366B5065737939F08F095BB759
+C8A96BC5CBEE6FB0EA582CEC075807D07FF2C2A8E64DE75EE6F3CE2B512B4D49
+48A3C57BCBE53D260A2B407B3E57D2142A4A053DC090F9863E39C6BA7E321802
+0DF7A7C7124A2B2EC1170A78BF8AE46503C2024AD2FC081F6D80C906582BCB37
+F25CCE3B328EF5594C5DDEBAF973DBDE600CB1B23D12FA8660A4B409EB321845
+A3D9522304A3CCAB705037ED578B6CDFADDDA5FAC0DA797A431D383B1BC4F5E4
+D7A2E91D78C5203AD03233003C5B9C590DCE44B6B80A9DA888B2F4371E1E7C4F
+0BF4725B758A2B83BEA81D0E4C7D20A2614A381AC9042405160B7F4588E58AD6
+976A2F0B537AD2CC28E47C22E21DB268A0C3C7C3FCE467511FF389EA11198824
+725F841388414FF4258294D6ED9A2686449A783916F3CBF8048C3880A08A9AF5
+286189DB2BECBC184C94772098A8A6413A42A39F612E442CDA6546E1D099A95B
+42D5800809F0E90FD3244C3D2524A04547D61741CAE80C3E4465E6CD1A047CB0
+3CF73BFE14C7035B3B5ED0D54A60F6BF9391751E0063F5E334BEEC5D430338A3
+D28FE80F6E328FF1988891E76E7DF0A9BDA1B2996258EE0CD3310B383FFFC0A9
+B6CA1B2514117814CA4A45EBBB22FDFA00D222C081D18338F6CC3CC952B59B38
+B199CFB652428AB95AE6537C781C68B296055D0238AE6539E3A250971BFC18FA
+D8E6B8041A877A95575CC772A8CE649D350E3C2F6577522732B64F3855A3D3B2
+9879EC59A516995036C06DBDABE5B85B41106CE285A13058D11A135E25C7E8B7
+38A22932DA70B9453EC30E60E9C4BFD7CAE387A9FF1A405A7F109BE9E0D08C67
+6F6F2ADA7505C115DDC1BC06AFC5CD11E2B6223D273F3504B8FBA611D6504B4C
+BE8BCDF0FD92BBAB562BB800AA4F53BF5F29ED125420B52F993660A66C046516
+214A35E5B6B1C8C8155A8644EE3F2E5083763A741B120D0D6F9E5696B274FFCF
+18AE04B579C6E89D3BF5DE55B1C85B0F23343C8B125B426E0D9CF5350F580BF0
+F7D5F07098FCE8BDDAA22FE94F856BE11777A68288931315B4C53B72769C8C9C
+1BA5AFFFAE30078D486AF2F40D2569EB0ACF58002EA13D467BD3A1D43527F3BA
+A48B4956FD4A74F5EBEC6B48E4FAEA14B6E3B30D8A9043C5EC2965D81DD6FA1A
+4F5AF0769ED954C6DFE3979E1EBA1F9F267093942283F108DDF1EC904C3036B6
+4089373FA6504E365593B0C91B355F499011522BB2ACA57C0225A94E2D9BE704
+80098D164F17F78E4970075B3785C24F6E99CB64A2D1AD7025BC1B0CA98B3AEA
+8D03B0D37C7B33BBB7FDC7096C7D9850C533D262067EC9B86EE18FD389267478
+194E1C98592468116F96748701F0DE1935910F2AB5BC9E0CB75343DA0AF35A6B
+E7F5A7A1A3EC867D32DEE723933F6BF270984270CE4847590F8688B12ED719A8
+53D903E6D0D7D4A31CAD18D5EC6D7FDDC4BEFA9F009A296FBFCEA95B59998C31
+BD2749DA95DA91C10BF0E88558F562BB9EE490D4E8636A1810878244D44637DA
+C2F010C63B6F48AAF92CF82C8D6C2040074B63E138DFF832211083EDD6FB6E7E
+AC5D5CB1B043669AD210EDEE9620BDBE27AD5E31E9CAC1A169EDB1DA15B47990
+337F42611529C18AD467FF45B0F07945AE5BC126D67BF646C38C34DB900B3D78
+14D3EBA2FF0F0C14CCA311FFF86699D49C36C9F6C47F623F8AD0C90FB8C8BDAD
+7A24BCA0649CD1C8EE9A10C5D46840E2B80DCC86583CA71452609C362161D5F7
+A5F5B43A132285E23B5B62429941A7457BAA8122DA174E7840EAC720952A7CE0
+3B6C0166E651C4C2424F768DC4D295C142791F1D9160489DCB285EA78F99D873
+3618F01FE20199FAEF45C3E8FC17729A5DDF3B0350014DCCC7CAC9755506FA20
+31F618D446CAA2FC2BCDFD15E5ACF0EAD3D09498181103A9F182A28505E5909C
+D834B4839C0DB9E6F2E01E31B761C3775CA2749C0B4321C7F4BA7C989E5FBC68
+E63F638D9A24843770F33DD6B89D04E5FA475D7B06C5A3920429D782755F6D54
+85B022E4902E93D56C4B8F0CA7F3F6F899EBA1A17FB31CFD93737062FD7A5005
+99338704DD06A545DE35ADF09F9A926B4831CE1E21FCCE24A60614F481537A40
+130E0EAFA46CDA4378D2618DB3429CBD0178A8C8D0E76C19A4DCA1E35033DD00
+2B968AB2C6C4AB1A9F0A74D688D7E481CC4728E0B95B4D830773C3065CE335E5
+891EDFEDB7D44709B3F41BEA2DFE261023BE08EFCD150326C11FC9968157320C
+6496CC39176E9F12C55AAE15B1A4D4755B3F4072ADB610F62C0DEE9535B688B3
+182881BC8F771B5D642F513EBB95B7CBA23CAAB0DD773B6ABFD6EC4B82036147
+4ADA8608293CF661B0F9DC1398F4BA411CFDAB4CBFF0FDEDFA555F292B1734F5
+C1EB5AE5284C5F914CBCEC2D7AFA7D2573EF3CC0CC21387097D3594B3AA00D91
+1FA04DDBABF8DFC57FD2D2672940B92F4E385181991B7F784E5495AB4EBB50AB
+25F9776FE68916EBB328E08AD5E033EB179A16C7C0F2B31897865DB85DEAE551
+C33FD7F1FBED9478CEA88D13DBE90CAF3D2D222E626FD45C929ED9D071011021
+BF86538A7F7AB3CB0B0C8E262D8D61D509E87B80FE4782FC578CDBD3A16DDA18
+C25E16481CDE1A77F58952A45686BF638C2DB296DB132F81FE4BF3E0E7FEB58F
+0A8661AE44F30F6A33B69713B9FF9397AC0832149A6D3DD13CFE5A6A7ADB5DE9
+64642B716F61AC512B7EC59E5C5D9618BCA5B2DE4E726717D2F9B0EB4429CCB0
+A53460F983DB9E1A34F1BFD9AAF11990D1B165138D6FE2CD228D4E3FE4F1AE5A
+A9DA1C850DEE233BC331668AB01E55C2437D2AE4792682C800D2670A4BBA5365
+2C3E5F6EB1FD1D621B5D56C3C5C329A34495CF5042C36C5E5C6B0DCE8D8F7DC6
+DC4C4A9EA6B13E1DD490878CE277D47570BBD11188C8D9037BC694E823AD326D
+3BA49F7CB4BFB62FF4948EE9A9E84A03D28DD1B4CF1EA50636B64A127B5E7E9A
+AA656B28CFC22D86D19A5BC72497688F5CD27E53AF6F49A27CE802CAA978576F
+3BA298028D7E3BB20F5BA53530036288F0579D02E4871C16B72CE0A3B8845165
+1CD26D29FB0397A352C146C05FE06F87CD92FF5170FF897BE18B0B1F921EB0B0
+27C9F30100DABAFE230A3215D430DDA549ACBF56CA1972CB12F24E5166FF26B5
+D9CE054CF5D1CF55F8D49F006CA24264D510AF677C1A8597B503F7E39C2BEBF3
+A2F148CD9D3D3555DA927DAB67834724F95B4D79687676C9EB64B94ECDB52B3A
+E0A9F4D541B93C2101402A9131AEC97F2BBDDF9C3363698A2D9D1CC323F727CF
+6E4EC8A2B333324F5A0E0217DA82FB948D4176EEC2062BFD26797EFE98485767
+79C6F4C54EC17E2E370E887E9AE7748E73C4824B3F46E01CE26DC7CF569ACCD8
+D88FAB4A8C8D039A53D6F64455CC965F1FAF89E9C0877CC6DE167E7C804DBA76
+A54A92F133C93D035E63C1572E5F7CC66EEFCED7E9C8C532BDC56359B17A25FB
+A2D17B12C5D93588B6319CD4601816146FDFAB1603EBA779104E1037FB883051
+6769882D42DA35278C5F832E9B125EA7862F2F4CB9B1B0AAAA139600BC27EDD1
+3D7E910FDABBDF167A671691A8BB46542F8348F45932B18AD7FBFC5FD370C84B
+A64E81962BB70AE995D3AE0BE0B1A0E86245723A6C3D2EDA66A579094F708A68
+619432A6778A57A68839B51B0F41E59983AE4CEBB55A1B49698E938DD45E35B4
+A296A679A69B8CBE9427130308D751E9862A051B3670D27FB28331947C57FA58
+0AE975D960DFE9B8C557759C8B5DFCDBEE81B33D73F0DF67C8DA639A225A5A07
+F44A6539B7DE6435BC26105BC1104ACC6D33DCBF24CE153DDD7DB688387AFF37
+5907A78FC85BDBBF85696C238B25DD0FCC6BA7DEEAEE5D1D39E7FCFF2FD682BB
+78C94A26DCF5D104FAF825964A87666E098709F8ECD68DF79D77F6354E54C615
+C83BC448E8A53D41F01256DFBE1E5DD504CBAB844CEE88C364C6840F29D18547
+F99A22AF6D4EA04BA361334FFAC2EEA3F5E2B1F11F5439F1F445CBD7E63787F8
+F8D8F1ACB3843D36C3E8E3A8AE7FCECAF1D958EAFF77DF4879F35E3AA98D5F39
+6ECFFB376BA533DB30E3D31C08DF0379456F6D8EC437BF2DDA6A726DB5594DB4
+883C9878B62289D870C0083BF7CB33F4AA33E0926334C09AFF4A3F71AC0505C1
+788EE91B701D6ACC8CB76DB4A02B3E74187D352718B22ACA515469B3BADDE167
+B1E45AA95A6BF932415CE5568E45FBAB25ED7B5C780A9B59F37823E3A1821F9B
+5D63E5DF6DA4F4A49D49594BF1F68CF03038BC827F66A448E1E4F8DAAC2FD2F9
+CBCF48394DD27ECB52289FF7710CDEC09BD012BAD6E2AECE5D9017314B177DEA
+5295B5AFD90DF9C0308587CC635D909616E90A5F20801D94DA12DB16360C916B
+3C31F8B595C066CC9A0EB16888A1
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+cleartomark
+%%EndFont 
+%%BeginFont: CMR6
+%!PS-AdobeFont-1.1: CMR6 1.0
+%%CreationDate: 1991 Aug 20 16:39:02
+% Copyright (C) 1997 American Mathematical Society. All Rights Reserved.
+11 dict begin
+/FontInfo 7 dict dup begin
+/version (1.0) readonly def
+/Notice (Copyright (C) 1997 American Mathematical Society. All Rights Reserved) readonly def
+/FullName (CMR6) readonly def
+/FamilyName (Computer Modern) readonly def
+/Weight (Medium) readonly def
+/ItalicAngle 0 def
+/isFixedPitch false def
+end readonly def
+/FontName /CMR6 def
+/PaintType 0 def
+/FontType 1 def
+/FontMatrix [0.001 0 0 0.001 0 0] readonly def
+/Encoding 256 array
+0 1 255 {1 index exch /.notdef put} for
+dup 0 /.notdef put
+readonly def
+/FontBBox{-20 -250 1193 750}readonly def
+/UniqueID 5000789 def
+currentdict end
+currentfile eexec
+D9D66F633B846A97B686A97E45A3D0AA052A014267B7904EB3C0D3BD0B83D891
+016CA6CA4B712ADEB258FAAB9A130EE605E61F77FC1B738ABC7C51CD46EF8171
+9098D5FEE67660E69A7AB91B58F29A4D79E57022F783EB0FBBB6D4F4EC35014F
+D2DECBA99459A4C59DF0C6EBA150284454E707DC2100C15B76B4C19B84363758
+469A6C558785B226332152109871A9883487DD7710949204DDCF837E6A8708B8
+2BDBF16FBC7512FAA308A093FE5CF4E9D2405B169CD5365D6ECED5D768D66D6C
+68618B8C482B341F8CA38E9BB9BAFCFAAD9C2F3FD033B62690986ED43D9C9361
+3645B82392D5CAE11A7CB49D7E2E82DCD485CBA17D1AFFF95F4224CF7ECEE45C
+BFB7C8C77C22A01C345078D28D3ECBF804CDC2FE5025FA0D05CCC5EFC0C4F87E
+CBED13DDDF8F34E404F471C6DD2E43331D73E89BBC71E7BF889F6293793FEF5A
+C9DD3792F032E37A364C70914843F7AA314413D022AE3238730B420A7E9D0CF5
+D0E24F501451F9CDECE10AF7E14FF15C4F12F3FCA47DD9CD3C7AEA8D1551017D
+23131C09ED104C052054520268A4FA3C6338BA6CF14C3DE3BAF2EA35296EE3D8
+D6496277E11DFF6076FE64C8A8C3419FA774473D63223FFA41CBAE609C3D976B
+93DFB4079ADC7C4EF07303F93808DDA9F651F61BCCF79555059A44CBAF84A711
+6D98083CEF58230D54AD486C74C4A257FC703ACF918219D0A597A5F680B606E4
+EF94ADF8BF91A5096A806DB64EC96636A98397D22A74932EB7346A9C4B5EE953
+CB3C80AA634BFC28AA938C704BDA8DC4D13551CCFE2B2784BE8BF54502EBA9AF
+D49B79237B9C56310550BC30E9108BB06EAC755D6AA4E688EFE2A0AAB17F20FE
+00CD0BFF1B9CB6BDA0FA3A29A3117388B6686657A150CE6421FD5D420F4F7FB5
+B0DAA1BA19D638676E9CF159AC7325EF17B9F74E082BEF75E10A31C7011C0FFA
+99B797CE549B5C45238DD0FADD6B99D233AC69282DF0D91EA2DBD08CE0083904
+A6D968D5AE3BD159D01BDFF42D16111BC0A517C66B43972080D9DD4F3B9AE7FB
+11B035CE715C1218B2D779761D8D7E9DEBE277531BD58F313EBD27E33BEF9DC5
+50C7821A8BBC3B9FDF899D7EAA0B94493B97AFEAC503EB5ED7A7AB638A6C232F
+38ADD3B13107AE3C1435E0C7C20C7C67D5FE7B1AE97927FE11E6179AEB2E43A3
+8CD628ED975A97602E6B8E819286F2EC2B4A4D0E69993AF8275BA3FA1F1A05C8
+54466F9B1A7D0C0B05DF6673EEA31A9BD8E3DBFE2D11AFEBCF52F7D33ECDF5D7
+DD4EDC582F616B75F62733DBE52E19B4340B9E2D3341354FE8206423B2EC4FFE
+26A1AB032BC46AF591D7A985487775BB1181B149025E583AF7E7952C6E7CC95B
+67D191508251FD3DD09B09B91543F5D77FCC5B10E9FB436AD6F0BA2639F363C8
+A39907705CB4172605BDF53C382CD52D7511E4DB56BFE1A98D4C446479AB1204
+6B99344D71A8DAFC4AE4615453BE04FDE3823986411E98BCB1C4AA67280FF250
+4DA815FE1D90BE83058B066B5C8A5508DA8C2B17F8071D96BE7091544B66E804
+3FEBA9828BFF3E3B6DC66A81AF79CAF7D8DF4ED4079B26FDDFBAD6EF1B1B2729
+25EC2C0FF775D5D701722E43C4637A12B53D96A5C945BF81FAC6219BD5CF4D0E
+CFD82352300B386190DAF947B65612FB26D502DB5E10F1254F9590DF49C6D9C1
+612C3B8F1FDB066C6A03CCDD6C0B9EC7273ED8F1733DFD44A4F8F8462CD200D5
+60A754F6CDCDC183370A181112CC593599C51375E94FF7C97FBCB6ABFBADF30B
+2194384820EA02809F67FCD7C11F2CEF339AC87E719C8233605FD9C09300E6F4
+5F6A0EEDB7D8A06DFD1E46CFF00162B579021C3758DA5BD5740031D36DEDBDDD
+0B67420BCB9B2CBE983CA185D52A8CCB50CB32DF03B49D357D931E99D0E73B5D
+AAC1295ACC7EEE174429B9BF95A5DFE831150B6E4FD261A7106163C8A23CCD92
+5F48AE8E4F900AB16B8073C5E7F595728D546672AC5182C926301AE7F577BE2B
+13ECDD5E5587B4CE178C52F4A30F594D194285B0A064BDED913BFEE2A1A85138
+FCE28EBA0C7223C6B5B13C98FDC1655D56C6DC1358BB9B0AEDFDC07BCDEF0849
+CA94030B22EE4B910D489F5240CEC5CD2F059A802307B311D7D8CE0F2D860DF1
+BEFD2FF2F92D8F2FB6F086BC42F99F0C9D974F387579945FCE0868570CB80C97
+F01C3754F0AAC9A4DB34146EA8561CFAC8DC2F61D4B518F49A383DFF55E0E199
+B33FA7283408734C1135767F9F00929266CA794C20419359152172E7C59EEE27
+4C6FB1D0AE853DB9175F2F98C78EEF5CBA9B3EA6A6CCEE14A03BDC22B90C006D
+F6B16D2A49839FE64B9C3AB20653D145C539A30664BD4B9AFB992C1D973AE707
+170EADAF221A748EE54592492584E6ED5FCED510C4C572EBDC4E3102916F17D3
+ED45DF6BC9911961DA25B6CFC1DEC101D554FCB321DF630B6FF7A168AEFB7E65
+972A55989798704D56F270EF277AB610A49FCC323722A405C609DA30AB0A459B
+7226BDF817F1BC8F3849CBB5A76898965FCDE23AA627A3484DE553CD76DC4521
+88BA2038000E4A6B26F726988B7E9C877FF1A777002EE4B1E7DD8EE9FBA53DE3
+107A7D172B5BB10DAE5CB0580DEB8DBA70CE43F696986FAC9BE2F2D5EED7FD87
+4FB42A6A6B60526B6A8BA819638358565234BE0D1ACBEF09366C0F0874AC4F5A
+16EC87B522266B800AFF9118F4A3A217A5B17C47BD9B96443F99839E88EF1E4D
+0BD67D3FD1C14E81003BEEA9E335388EA444A83CB02251353E448EBCDD86
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+cleartomark
+%%EndFont 
+%%BeginFont: CMBX10
+%!PS-AdobeFont-1.1: CMBX10 1.00B
+%%CreationDate: 1992 Feb 19 19:54:06
+% Copyright (C) 1997 American Mathematical Society. All Rights Reserved.
+11 dict begin
+/FontInfo 7 dict dup begin
+/version (1.00B) readonly def
+/Notice (Copyright (C) 1997 American Mathematical Society. All Rights Reserved) readonly def
+/FullName (CMBX10) readonly def
+/FamilyName (Computer Modern) readonly def
+/Weight (Bold) readonly def
+/ItalicAngle 0 def
+/isFixedPitch false def
+end readonly def
+/FontName /CMBX10 def
+/PaintType 0 def
+/FontType 1 def
+/FontMatrix [0.001 0 0 0.001 0 0] readonly def
+/Encoding 256 array
+0 1 255 {1 index exch /.notdef put} for
+dup 0 /.notdef put
+readonly def
+/FontBBox{-301 -250 1164 946}readonly def
+/UniqueID 5000768 def
+currentdict end
+currentfile eexec
+D9D66F633B846A97B686A97E45A3D0AA052A014267B7904EB3C0D3BD0B83D891
+016CA6CA4B712ADEB258FAAB9A130EE605E61F77FC1B738ABC7C51CD46EF8171
+9098D5FEE67660E69A7AB91B58F29A4D79E57022F783EB0FBBB6D4F4EC35014F
+D2DECBA99459A4C59DF0C6EBA150284454E707DC2100C15B76B4C19B84363758
+469A6C558785B226332152109871A9883487DD7710949204DDCF837E6A8708B8
+2BDBF16FBC7512FAA308A093FE5F00F963068B8B731A88D7740B0DDAED1B3F82
+7DB9DFB4372D3935C286E39EE7AC9FB6A9B5CE4D2FAE1BC0E55AE02BFC464378
+77B9F65C23E3BAB41EFAE344DDC9AB1B3CCBC0618290D83DC756F9D5BEFECB18
+2DB0E39997F264D408BD076F65A50E7E94C9C88D849AB2E92005CFA316ACCD91
+FF524AAD7262B10351C50EBAD08FB4CD55D2E369F6E836C82C591606E1E5C73F
+DE3FA3CAD272C67C6CBF43B66FE4B8677DAFEEA19288428D07FEB1F4001BAA68
+7AAD6DDBE432714E799CFA49D8A1A128F32E8B280524BC8041F1E64ECE4053C4
+9F0AEC699A75B827002E9F95826DB3F643338F858011008E338A899020962176
+CF66A62E3AEF046D91C88C87DEB03CE6CCDF4FB651990F0E86D17409F121773D
+6877DF0085DFB269A3C07AA6660419BD0F0EF3C53DA2318BA1860AB34E28BAC6
+E82DDB1C43E5203AC9DF9277098F2E42C0F7BD03C6D90B629DE97730245B8E8E
+8903B9225098079C55A37E4E59AE2A9E36B6349FA2C09BB1F5F4433E4EEFC75E
+3F9830EB085E7E6FBE2666AC5A398C2DF228062ACF9FCA5656390A15837C4A99
+EC3740D873CFEF2E248B44CA134693A782594DD0692B4DBF1F16C4CDECA692C4
+0E44FDBEF704101118BC53575BF22731E7F7717934AD715AC33B5D3679B784C9
+4046E6CD3C0AD80ED1F65626B14E33CFDA6EB2825DC444FA6209615BC08173FF
+1805BDFCCA4B11F50D6BD483FD8639F9E8D0245B463D65A0F12C26C8A8EE2910
+757696C3F13144D8EA5649816AAD61A949C3A723ABB585990593F20A35CD6B7E
+0FA0AD8551CEE41F61924DC36A464A10A1B14C33FAFB04862E30C66C1BC55665
+6D07D93B8C0D596E109EE2B1AAB479F7FAA35279ADB468A624BE26D527BFF5ED
+E067598E1B8B78188FA4BCFB0B51692D07B0BEBB930C6F0997B437E2C51B876B
+61A563A2673932C2045833FAA35DB22ADE12102335D5DC734AE3AC5EEE6658D7
+92EB62131E1DFBA441F53EFF9021D9D4C491F26BE8F54C61165CAD778CE8695C
+EEAF70E3B20C64D4C2B34A084B5770BAB2A974E898F62BFE90F132A37E2DCA4F
+43E13DB13C94DFA8ECE2B7374827AE168634FA007F8981ADA046CED3448BF453
+FCD9A4F194FA648F9FC0971734BB69CB73439CB0DD021D44A7C11BF295E81733
+4DFBA460FF3D654F9FB337E99E6D66FBA87A817EB9CA1536C84833870E3626DA
+55D48DE850D3E6F6B29DA0E7C9D681283586F208DB8D58042E3A7CE55BE84822
+C98237911453E479EAB65AFEBA3F61A763B40E74535BE56C9D8D06DDF9441741
+5C9D9D917439368736619717FAB4F06E2C329AE0BA411F3FD522D9C33AD8369B
+D7DCC9DF993778482F35F965973DE876FA19E109AA198A00658AB3F0D8E3DDD1
+08A573F2D525202AFC57E05D141E6C0BB811E1FE280EEA002B7A45BB363AD06C
+318D320D2C81AA5DCC842CEF66E7DF7670588CB39C9F42EE7763A3A17372432A
+173BDEF7ECCEA297CCDD76A835C36DCE9DB8F8CB66CC71B4920CF5BF055A5260
+5B41A5373BA6E4F63C85671D979EA5EC30D22163E6D206168A3827F465279870
+CA80E6632872F721BBCC622EE4214BF723551C846765495FA9921E11FE1A950A
+53150C3F5D8595958A47E0B16064CC3AFD65DA294FFD111153F4F233BC5468AE
+69585C16CFBFCA32C4B96C161F47B56661DF84FCD8ADD3EC086CFB6BB5179BC3
+A5469A1CFBC8620BC711F42D0D3139BCE4E38698D9C574450DB43B5A19FA6D54
+0368BA9F7A8DBF96DCD0B8968CD194264E6DD10A958846C278B8C2BAFE7AAF8B
+44C84C955F1A89A13E62A054BC76CABBBF6296DE00A79CD7C8C61C70F127618E
+9975B59A880685E126F57AD80F8F4D376E1B476BDFDAC868FB6AFAD9D694B561
+001623C4D9F55366D053B52F2B09EC08B81901AE0986C5350312E626006038AD
+AC15FE313FCEE1A2E61F8992AC00CA7BB7F997707EA377D37EA6FF35BFBC2866
+A572B31491F9B80445685DBA5E62F166E80589F768FC95BBC79158C23B2F1BD1
+25816F1486A64F76D99A638AC0DC101FDF390811B3C118C2D972B2E7587F6F24
+7F1DB2DD922D237A7D18FF08FD665355CFBBEE799D3BFF11CD94CFFDBA3E725E
+DCF4CDE4307E3B199D91893A365D04F43A5305BDD2538E28A0788E061F3A621A
+B4A04E5063B47F0109C1693A284FA43E8F1EA9B68145FF51C005D3FA40713BA8
+1879BFC3CAA881B9D885A0C1AA8BBEA7EF469AEFA06ECD3C26AABD535E9FBDC5
+CF858BFCD827A42CC5CCC4F1353A38204E89F80CAB3A5536F848EDDE1590A2A0
+EA53A5B5EE4BA2E44C0C4D37FF0C41E493FEDA6F034B72EE3B707AFEB7C95948
+628FF2D0AB46CE262FD48BE38A9EE135DD3B964F2AF6FFF727171FB2CFE03BD8
+F283FB6832C3E3F7CBB8BCAB0832CF2A8E614BBB3247CBFF413C62B66BA53CF6
+7389EECA675BFB2D7009025507988F15A89EA5E8FF18D4EFF6B7F9ED4839B6A4
+4DB456F527A910A57679CAFB925C92C2FD4006211445542DB24AF25F0A8294A0
+F1BA550A79E1DF637DA2BE0CBF54E3BC900DE2705FA5D39117C6D60A211DA570
+1767730698E8B894239BD9C1479A7699323FF448A4F09CBCD2043D643F79E5E2
+CE906E4CB48B87061E31ADC961CA1572AC8421BF39F7B411A9BC24ED53983C6F
+280083C9FDB651061980B7EE9E0BE46BAC8438B7132A178EF85333C42EC96662
+9492603E81D660C04F6E987221B84C126C873E07F3B98AE2A812AC2568AA2E8A
+72C259E8E0B483D2FD2F5F6AC013D8E8F8934B037425F637EA1C6A1AFB8A4960
+F2D3AA228B21AEFD7A57C9C105821FC1A4A91DCB8FE34DB70E3BA4B9AA579E4C
+6C7EE04114911939DC5CD486D8F5CCB852C787E08FB37F3C3E707DFBA3D82A10
+90EAB8FBD195CF047F4E55F0BF25FFE8CCB24683FC29F259709C1A21A74F3E56
+AD3472F2535DD7C11465F2AD8366E3D408868AD174D41FA7737550678C4F21B6
+FA78806922990E03EF99DB365886668703E05A672669762271A587E50F15E136
+19D686CBEC1A9D53C38662AAA3BEF94B820D8FFD994632C2060EEACF4AA04389
+7FBF791A686C3BEF839DD56037BF2CABEB1E9830DDFC4A5B151D698417F57211
+6A1E49C7AEDCB458DB63718439B237DB4ACC37CD23D7E37E9E8D3413A0871983
+D2E5E55409952F3413FB0E9FA66C0AB5BCEE736002E02EB1F26C10AA18DD4511
+4D9D71F58F71F8E714A6107593ED9B66C15C9F0A3043DEA0EBD61E8D291AD83D
+250BBCF72325A84AB4566D790723AB86E7419183978A58AB39CC2665535DEDC8
+28478BDA441FB9E7C4AEF7652CA07ACA2C0F4623D90B84D827351850EF4FA2AB
+5A2473804BBDA72950AF2408A0B3E350D1841909D871CB3C327528AB7E10D891
+287787F1B4AD587AB5C68D861D516F229539C0FDC33215981AF9D0FD7EEDE156
+7C7C1E16279CB9EAE95304FD536039CFE71ADDB76D07446E295F668C569C89AD
+F4556BE831BD1D3F3DE49F6BB51FA46CC20610813EEF709B3B4BBBBAED5CFC89
+01BC9F7039476912C5DE79AAA861D862D477266C58B78561D12DD2BAD50458C2
+B8991213E2B8238C782A0C07D2D1D29CDB63D4B1A5A6B236F817A3F10D4553CD
+2E3AAEC49F09A45E731A96FE6ED6A12649AEEE5F1164DE99C1A9BA8513E35BAB
+69886A78B63347D9D7044C66A2E0572A6EE01B35F923467EFB07DA9306BF9ACB
+D7977A155931D3907EAA4AAC051062256F7F8DA5F1C8A95DE880E79045FE739D
+4BFD108AC3A3876E397914A9E0AB0A179688E1153F1A58399B4EE8D6FEDD638A
+C5EF141F792A74CCD611CC15BF5EBE9614C08755E680B4A71F7C606F1C70994E
+EBCE09AA9F2BB92D69651DD8C3542465CD452DFDCBBC790A732641417FB632CC
+636A48F2A6E1CA85E9483E974802432FED38511357BE651A374DB4EA06CAF55A
+71A766D9BC59ED38C38479E70251F268CA88387ED9A9A267701A096DA77B0284
+DD92B9CD6855E9F6F3C37D53464DC80AA7805125651D5DDB7344726C25FD12F3
+4AFC9801B5FDAD0DE6D88B28C07BFD3C6DC35B4BEB0CDD51B12AFDAF56E1CE03
+EC2229AF65099850A655D5B59291B45E072F4DE5DA5DF5C6E3E264DDD3402CC3
+DE2048A00E2A31B9E0FCFB1C43B1D66A08DC17848F488EAFE2D698E7CE8E5AD2
+6F07ED9469DF704372BF4D5D0209E9AF3CA759E9918BB2A0392E399B8EED4BD0
+FC1016ADA0D2B9CCF0748058C4DF9FBD9BDF4A584D34107036A45E59D1A5C90C
+3118443FA8A9B72D8E5EAC4AD14A6B2427F59FDBAE635FBCF9F770CD4DDF5481
+909FD680233860850A23F2D92101C8EBC5078CFDEF9BB01998F38151A34674E9
+70FD32D8404F95E15281604CD4188E9375564D606E9F48C26BA189F1FF781101
+76E3F1E3B857D6440E86F44AA39C40DA2D7650D608A6E2E066B4C66D5A99DDB2
+430786284ED9CBD50023841E8A932A3EEF3792DA4DEE11C96A346C18A1258DFA
+FFB82863124C3592909932AC2DB45D39A042CCE2417DFFC9034A4924F417D43C
+5DB0DA0D123895232E69C486F3B5818DB4641EF36C94CA216CDBDE96B5A5C477
+356A5A06E0685929E3053C808EEE59C10706106F35D1ABB954C0FD19854A2D56
+287CADEC0D11A9714D8E9988E6B5BA62B7D1BF13B1B847A5A8AAF0E3CC53A381
+C8D6E04355035CEE59FF222B93CCD771609D4E4BA6D152708BF7392D64C614DD
+A312DC2D17A289BB05F44DFB3590F8445DAB373941979B2B2334A46006508108
+73BA24E5702F257FE7D40C1F8EA52A0218409C3734D9E7C81483623C46C72FC6
+DAD6DBF87FED7A9306CB004D1A9CC43C2B9C554DCE22239847B34BE0DDB277D1
+D43E6424DFEB35035EB0F148CA0FBE864B9C5710DE6F8B85DCB1AFC1D201ED41
+7C227133732BE3A349FED68B6ECB170AF059B3E3B467478A94EDF3AE6786D333
+14E596BE7FE6CE26781B97888CEDBF00CAA9985F89208FCBCCC57299510B64A2
+62839263D76441A6DE91EB0F48AD842A7A6A8285C5A5FC75912A758381F271FA
+ADD33DE39FF1EA9FBE5AE56FF21B2A19573B2F410A6588702F57AEA5162E22A0
+BEFF357FB2EBF4C33443E1DC6A57CCD89365F6C87F704D463E5629E232AE5D8F
+BB47CD543EA2494C45163E90226A4529B168703639F259AB855330255DABFF7A
+D9BAE5678750BBAEDB740E82177EB3E5EB7FD7A0B846E0DDDDCFD2CE359DC510
+5AE54F9B0AF4A817BD9722761500071090A34D942672A466670ADEFFF8B15F67
+7144E53E9D52ABAD97D046A4DBB2C751E051E395AD26BBE34D0F8A927D424FC4
+5D9EDF6096B88C8C77A8218BC8E7D6FE27E22F79EA535F305936D5CCABD5A89F
+91FF6ECC43E041F30CAA16AB8DD37173DC0562354FF5AF8705EABCC60D6CE29C
+9DD4CDF1FEAEAA99340FBDD34BC5295038E1659C2A1F3734F864B7EBE63A7210
+4ED8A7284D7166F1C66476DEE122D2EAFC795EE84A4D24540B1ED608A515625C
+79EA9B52F92C16431BB42DB4E56B5D8B9C2838CEDE0D554B50E6035FCDB656A2
+11D241591314DFA68866E746B67136C5FB057E8376EF2D3DE4FD715FED9FC6E5
+9DE8068DC1C071F02572F3D3BDD520C192EA7829E9D197A4F140701687F47148
+DC21A91DBF87F111F5F51E774919C467595A47B9924DD2FA61AFD63552DDB8AE
+DCE77956E4CAE76B4B46FF2F4FAB82A93482FA7D6D9DC4A7D028886C8FA5AD54
+0B74807B190D7D3DB5B5A18AF12C944AF2B650954359C510D4C40E78DFF9A390
+76708E3DD84755F75AE0776F900E24F809FE939B053B1BEA3E750927315C94CE
+2DF34A6B16E1ED3D8B0BDFC16311EE6E0845BC0F8E5DA375D823BF6CAE010DD8
+CAAB1AFA181731A3B2F3A37185DE11EFD6C9BDDC331CDFF5E86C3092364F06D3
+2E47BFBCDF2329D3664A83A27548E0A4723BDD2CB6CAFE2C73768CC197AFF60D
+FBABDC303D46A752692224F45790163406B1E3B160EE95049A77C1207F7D5019
+60E849C2F9B59A151A5C5CB9D29F1D39F8483679725B77452F3FF96C85614DEC
+9F8DD181E4B8C3A061849AA36AD1E3AD119B5BA7F744CA0310A85894683E656E
+4FB0A15256C160B32C694271250D6B9457EEB8F5DD5D9F1BAF4777442716BCE7
+4495A8F3C9AABFCF8A0083375C50D76DF78C2CAEF9E2F7846C8B8BE643964294
+3643263FA030CFF4379BCCD6884D42EBAE41F69AAC469EEF66072C762B2AA243
+4E1E99EE4EBA709C4905D2EED58B478498AE99C8312B0A5ED9492CD154013789
+B65ECEF005DD01651BDA817559A348F8E201794B05540EB765C08F211826500D
+30CD1B71EBC1989CBE45A56E1418E1AFBBF2FB1628163CD45CD7FF5D88DDF93B
+B506DE32E6D53EDEB9EE45F59C2A8EB22197D4BEB0B1259E2525E6484EDA98F4
+CA7D56F75F93510E4B2FB43E096FAC1AEC2DD38C8C6EAEE3BF63022489151256
+4ACFE08BCAC5C85531FCBF45F12AFD1E891DF6245AF32520971507B5F27BCB6D
+46957A1600349151D9818D45C5E330AE2C78573EF99B5B6D32645D14DB3FFF0B
+6A10353C2485EB8A3EEFCF3AE16CDABC1BAB910686F7EA9CB841D0C39E98BC41
+CEB7DAA486780D68EC511B23750B46AFDE683D8CF325D91E7A2827DF993A2801
+A5176474870795F29F75FCFA30962E804F2E5ECA031155257ED96FA59CB694DB
+59763AAC24997E8D6DF37C084925853525914A3FDE12D90031655BD6ABCD4C4A
+96E7DDF98D84D358F42550A2665A8B5F7718C732EDD30E426BC06B8CBCA79004
+86A7BE49DDF837FB2082D2C6A742D45A23BE1C34F2D85A7B457197430DA3190B
+CC5846D36DCF651D814883942DA534CB540687083AC09682175E6F34DA8DD9CA
+D59C70A7A0474E2DC0C82C9F27EBBCDEAF6E2ED9F2B2A766037EA185EF752D29
+03949B0200F6977977E2C39451DAA4334FF74BE1BD5EE38B1EB6A206B190CB35
+749A1EE015C6CA07D302DD8535D735F49E705478B722607EB9A0428E157772CE
+F794A93B80209DA663F1538CAAF5535923FBFC8F4FB307736A2F81F325DBD1EE
+099C02FB5DE8014A3392F37D7AE5A87D4C666964ABA2299B113A42AF0748402A
+EB509F0E386396021B0DDDC4A77D24948A2366A9E9F0A4B6B51D5B396BBECDA1
+F3E4236B213129FADA2DE1A247D5F4F210327845D392DBACF637FF627F676926
+939D32757E10824C57B689ECD618A0EB47858E3EAE7EC6CD490DBC38693FCB72
+556512874CE03D609529392CB63B272F6883044710EBCE359FA919B70565A085
+04A4F57C0CD63436F801C2E640D4D8AA8E30FB2E3A62EE6D792791EFB8CAB7D8
+CB3534E7A163E9C23C86320F2F513286F1A063567CA7DA3F169ABB95D7D86113
+965074C4646A21E050F668A4EC15500B696CA3AE7034993F69B6218C00972892
+05828A7DB6B96B19D438F123EB762155E20A816445A1DB38CE2395606D16C867
+67E8F946FEF6E98CBA8E6B22582563149853AC098EFB0B99D3DC18E3B3C8AF5A
+F1E750DAE2A349D44BE1BD618CB48DF0714DC57A5E1ACED397AC145E7BA9E543
+D47724BF8569EBA91893313FD28E6CAC376CC25B74A411BEAD1F672975139AD2
+17324622DF4DF8580A56FF39605FEABFA8E23A2F6888F23BC468AC39FA931CCE
+096AD9980723AC9BC563444B6C59B1375EF066F7390496A02221058947E144E0
+AB368961B9A14D29F4F581EB536EB993B82E2842BBB7E34E9FB3E7B0EEFD6549
+57CD835FB53E4217403923EEFC514A82E260D704CE2653D6C25FE7C0828986B1
+7E764CCC521055A65B84DB4E4EB57578213C959E741634E3D509904261E03224
+82AD24F767D00D722583E577EEFF210D6DAF835B115108F60C7E49082CC280BA
+26CFB8889D5252777CE6BAA6D13F8A81906A547A0B972E269474E30941C468AC
+2321070A1736C202A01B8FB6CCC13AD211A314A911C35E7DA71A1322D9879D28
+4F3EED9BD6F6ACBCA66DEAB4281A0609E08ACA10B9278E7F068BEF688E14A57F
+2FEEF76C645DA3DD9794720191FC667AB12595EC22CB0CBCE5BA8546A9A0D4DA
+C8F9562AE806C0A5AAB778BF5FE9B6830BE7FBDAC89B242C2337A51EE944DE01
+F4CE9FF83A846F19A50E9C2D8FF750105ADC5E5604DC939392E02E829D705890
+B2FB61BF32A5C5AEDC6137B0268A67EA5D1DFB6E5872B7F17B434A308D50CE5F
+5439B575179B5A8AADE28D4D9EF13F548AE27B15A56D7A6772918FC11B8235F3
+31E08C954D3DEB2DF55ED0355FDD1579AE057046F94AE24D35F611D75E185556
+9A0DA5B7BC11824D1C29F8484E15FF1B338EA4BC58C5809A4B1ACFC45441DC65
+0CCE5ADFDC1352E07E791DF9BF6E41145A2F182A6EA23AACFDD8DF05BF24FC92
+7BC96753168F6C1F6C4F93E1B3C0D8707EA6B30694871816AFAE1F7F91FED4BF
+107BB07C0066676B2FA2E6A271B8FB23F40DC68BD853011FEFD8BE2ACE89B704
+3CC6F77B7282909FDF5ADD61ADB6062D092E1A40F49B29EE9F6CFF7BC45EB885
+1BBB3043B3C6F04EF7CD3A14A0EFE88561E0053E925AF7615DBDCED69D3A5452
+404996363093C599E98955CA1D23170689E566CF58E24C2C024A4ED858159F14
+CF669C15523A51CA7717AA04EE6EC195F4103469E5BFA19FFB32D9CD4BF10A5A
+AB42DA41505753076FE0BC6FF06F122FE6B2508EFF37E9D3DAF6B9DC65965E65
+1919DDE6EB549E62F46045AAF02B8ADAC3B71A54479628AE2898D3C05937E73E
+6BE27F6976225E7EE521E2AC9DC69AD01FF13FBF4DE925E777738A890C86D9C4
+A8CC737ECD5EDA3689EBA6DEE2B403F8124647AC70AC6BD4A2D0A4DA679DCC18
+C1A8B616B8E24204F32341E062BF7747CE43516CDF03DC715D1114079A407141
+EC9E5B1C5098FB08A4CEC7A7E5338BF580F99E0FC1E3DB870813D90FF202259C
+B791C60AF788C078E1352DBA7F512DB9250321E075AFE0AED20096AF60B6DC4D
+5EEB7795C9E83A42F0A30EDEF25270CEF7D4799BB6C1CD484090AA5392D08792
+996A5EDB8546B7B628ECE83DE5841024A67FA1C2C782C9924B0ECDEC62D65EE5
+B360AC697C2DE5B60564283B2556A5DC388216350A98A028ADB44486AA5BFEBD
+E5BC4AAE8192BD4D9E3FC3C1E4D1F807D55785A2C1E6A9F7EEF0ECA8C331805E
+7A40E7D4135DA54A469A5B4F056C88487432345B08FB9E910A43EE13D437D61F
+6D99C2E1FF3D0F1A31897A7E4CE66374140B4FE3F009917AAB79EFEAE691DC3F
+31D65E96301B389D8759ECE4F4B1D4A48CB28A2DBF2703A2D8E09450F2086F01
+4671E3DBF72CBB5DE726ACCC9E7562018C2736DC3C630945B943DFB333326893
+62052D7057BE8D71D3414C863221A44F386DF2335C1B868C733BCAC696063FE5
+264565704993274C5C9736588BFB3370DD363571CD8AC3CB99BBC93453AF426E
+5BEB8D43AF3B0C337D16BAC6D94DB17C9B5B001E65180B39EDF9063DAFA9D7F0
+72D7792E356C5240BC516C0F2AB456439CBA133C1A16AC0C2B64BFA291A2DB73
+1BD7C82449190DEE818519B2CE7EB6205CE2CEDB9419F30D488C0FF0836190B3
+F5A6EAE0C024ACBD239472B690F39CD85AA4C6700EEF2AB052F6283E466EFE6F
+13338826C194BAD1334C8A8E9BD4130715D9CB1D2F73489A76D8063EFBAA0A42
+1A8909CFF5505C42972F0A1EAE3E448EC732753735787733B9A55E624C1C7859
+11C1A954EFEE907B2CC9785871DD0DA98EC4209A98DFBAB35A019A5BC79FFF72
+9FBBDD26B819BC28607310608BCC90C84A810E2F32E353C42A472569A986A8EC
+E02EE02886212035BABF8BD2AD816D6DDC4CD3FCA00E56EF32CEFE737D9DEBDE
+A8ED9666E81CCFA34300C49C8B9DC5F39B073F6246FE2CBC74E80CE72A95B223
+E58717806EFEB8634FE478D165EFDCE6840A2820D5A45189B080F2929A3706EF
+623321EF22655AEC5DD8902AFDE11AD974615BF1BF7017780B4B489EC6F48E5E
+66EDF03EC2AFD0A30BD9AA938F1479E62B6D534BECEDB83C7907EDFA9F892A3A
+6414FDFA29D420884BEAABC9A94796D93C2C16794201F3C03CE93DA2C76147BC
+06075FEA6E53D1047D158850B63A318274C49F13614644415D998BCAC49526D8
+F8F499EBA03626F6CEA42240B74A3180509B03FED970B4BA6E544B3B09DB0059
+83992CE3E4AF54A53E10A27F4425DFB5BEA53C1AD45A13D304B03AAD89F53E8F
+C62EDFCE91336590032F8EAA6954D830DFCB4F6A0044D58B6A138AC894C795EC
+FB2DD063093309B8ED4767900EC0ED54F35FA5CEAB228579D40B6BE25553D78E
+B066B9970C7C860737A5149FC4D6DAFCAF50D8DB8E366A1A9892468460C6A93C
+EA7B8BC7FBBB659B85DA60D15FCE24A19F2FB127F3B2ACB601F2357BC6393466
+A959C56BCE8AA48415D14B7BBC3C4B89E13A35BB512E801216DDAAE72FECF5D5
+5E6D379673CCE2A72F5229F82FE396DEB8C3B77102972A7A46D1AB1B31AB9663
+29DC21F981C53FF4F9EC3977DCA677F2170B51CB6AA03C8726FBA671F4CD5BD8
+3480F630B6DF98E4B562E373C7D57A91B5F7575575C7925BB44D95B05B3C9F25
+4A13840E89238EAAEEE114349505DDF13D77E2409327A0F13292F1B470F7C545
+BF87A27422884F7F1A6B8EFD4679F4880D7D0B81E8B6581F742F7B871FE2D892
+5B57EF65152C2A812ED0D18F9AF8DAEF2DFF04D16A46A4A3B19D5451AD445E06
+4097220CD164D4954CBE98BF08087E296275A3B668E39BA388051E5DD2C99D8E
+550DBBFABF9EB7065225CBDDFA39906D087D433C1ABE163535504407D5CA296E
+106DC1CCA311C9CB3496B3E6B5A238A4EBEE297441B94FB8A9B52F673A484825
+499E491153A0C2E3C39F1A34491A43D4CFA7CF5C6FF5B34C54738DEAFCB83157
+41DBC146AFB215719A819EA52FD4F8420334DCEC5E49262A1F1C44240F1CE0AA
+060A8742D8891A02ED8A1C1DEBB1951A58CA5BF3514365A46737850E5016B907
+78E851051D6FA680AE0703B73E132771C88BF5FE4F27A221EB02BF4836941FCF
+2EB0CFA864EA3A9CBAFDE2A56C5C7FA36EC07039D74D24FB683E2345C6870761
+82FCA2AF391E24F87D85734F23C614411A2159DE4A343A609F9DE5D57491555A
+8A3398F8CE37C02409E60F3AF4FC6456BFB9538CC159022ADB050EF091C15EAF
+34403B086319CCFF7D5AD9477CA0F0E78556D5E4258851FF097AACB6E4918885
+62F4C03494AE324202F29E9BCA77324F19777AB222150500B2B04561885EAAD9
+E115C2CC7AE5FF410ABC5A2AB2D17CB68C6EF181520C73B8873C203CF48E2915
+2AA339F10C492177453C3340EA2FF2FAF6449C5F613276C444A4105B9D8EB9B8
+DB39F7E5CE02098B0172446B72A0436EDB3164936DA5C16E6F6C2E1274C2F079
+0CE2DA90F8404C5E7DE9996369F0D454557467D14AE8C1A018B3A26DB11E65DC
+40F6C2A5EB4978A7D83467856476A25D1117687DAD5E05F066CF86345FC47B00
+1B73CB327388FE322D6357AA175B73F1A8C6D55ACEC2A14BA9AE417C87D28F31
+9CD2869CA086BCFEA09838339AD391BB1F8D3DC51F750722A421A72E7CD2000D
+7951663B07B17A482390B0EA9E1FBDDE73AF31C6F06AEA075F3C782A66680B29
+A90D0877011229E8CECE978499BCDF7EE067856DF60B29A1B43BA11E0ECE6DE1
+5EB3D6B06C29BAC4C72E8F134D21E3CBC09815F49739041389779DBE265AFFB4
+5986FF0135C8A252428FA1EE80D7465AF66C70D211108288CDB584CB085B1ABF
+2341BF1E6DD1184DDC12BADCA2713BB02E63E7C66A432972A80C551B55E7B436
+8AEF1AC90219AF476281CD0316E4AED3C7831F5B9A8A6266AA5F0DD6183090A0
+2DA2EC70554AB09C83F2F5D66912937915092B4DEE871AF8CD62F19FE4C48284
+1F7A7AC19EB5C2F6C6B40FB44236E369C688928569F95B26EDED11BE4A5D2630
+4C554737C378FDC0128E044F5F55972F7F6AD2F8A6FC4899957D733AE050319C
+84CF65B63B57EF66D81213B2BDD9AA33DEED4738CB2F7A88E52AAC2AEE528AE7
+1F3FD652EB4E0D1A4185364140AE46A4D731DADEE7B725425722EF136B1DC736
+0016F71B5D8F87301DB62F6EB508E61C4A26A6DB02DFD07C17A817B39EF5B468
+28D87EB08DEA3D191FD5BC319D7CE4385B246092CA429CE9D6F2C4DB4782AC36
+46D03B63FB78938C647442AA8975727DFDA06B05557708811952EEB56C11CC77
+D02E1E304F4D473631C74D296F67C04B18C902EF5D70622E6CE039E107DBB46C
+EE663A9B3F9F5C1D417CF88A8CCE36FFBE44EAE0C74F0C0F28AB15C52A509380
+21E5610894FED862762FB4FDCF6E3D3BF7EFD4D83FEFDD0DFCB18AC8488EBD68
+8C3D0898BE187B93220C944273D54A0D6F024F7F94A6D55BEC185B3983BAB95D
+F9F8CA08D49AE8A44C3032524414989309E2AA40CC2FDD5C523271DDD1B50534
+50857462E59FE57312AFF80799D5A8F800885F2CACF872F0696083C362388144
+7A2E87B226E54284F43D145E1AAA070223D30724A1A3A25E8C745623D2E47DBE
+CC108970F65CB092F3D6076EDF9E4F9AFEC888024041A209A43183B379A8FFCC
+112D64FF073AF43256536E95F46053A39EC42559E72A385EA5D1EB044EF58773
+FED2829869FCC09AE84C304BBF92A79F939677DCF94BD744F7CBBC13C8BBB1AF
+9B9E538798F2E3BE88CCA4A8C6A320100CC4AE500A1F155E4026DE07288503B4
+0B744FE2F9B211A3CF419C5DE97A6C1C5B6C25BC04A482606A3412FBB3BD0E04
+66E3BE0CA820D8FE4F9ED2967A7279D5DFBA7F03F13BFD37E0EBCA7C7B5B6E73
+4411CAC75CDB5F004136D5F44FB1018655E27E8E43E89BEE0E5FA73A9DB2AB67
+D52A04FEE19BAC87E7B5D6392D86FC8E7D96133BDC57E61542E426108C19D5CC
+62FDEA6F445E2C7F5E50F27E8D6C3FA8E4C0F9E340AA74923BD7FF89D889D444
+D4F98A5D5D1A1D2F3E07E1DB5611D276517EDEA5F9C28556ACECF96D84D84B84
+53D3E7A4190F25184F865AD937C78B3CA2EAFB18D965413114DAD3112EE30562
+1E0B788D11D86D7CB8AAD812B5E4E65222A26BB215E904694D0097F0944C9B69
+53FA75FAE9474019A7E00C7EB518707863B2BB9ACA077FD5AAC4FBE1A2AA5B43
+B78942404381B9B05BBB03AD638E2462E9AE7E463A923413454D1781D97E802F
+69F162F9D0D5B8FF941E3F40113065BBA1A459A66E487D1DA73CF11B863D2873
+9C10C7BEE720C26C7069C32845C0AC4B2E08EB3E6BF1F867D788F6FB3677C137
+BA094AB088E1F3F8703A655353E3BBF11FC37867A7B61F56C85B0080351E19A7
+0523612C42455A058F2A894D68F278BFC64673A9713C968AA31B057183C5C791
+3730084562F3D57F2C38CE4C8EC19A9BA595D92F8D9E69A8CABB4BEAB30CA73E
+28DDFC37A61B8D51415A28AAA03D473F26335EBF8FD1CD62F8F748FCEDEFBFC1
+E54A7D12F77BB539C0482D051F904C64FE6BFB8D35726A1CB2557F3D69B4B361
+EB7CDD12AADCF521256208520139D534C21787DA761818DE5E38D25F627C712B
+6FD22E5506411414D30121AF3131998858787531090297CFBC930407BBBF77FE
+D8E52D26B965FC4A7AC648EB0042CB71048FC900374666ED76D9E5C650B3FD98
+709D96F0E3789CADBA3BB0E8EFDA536E6C69C44212649E3A5B635DA220676764
+0FFF1B96449A42652D8EF9DF5818B9962FF72321912257B8B1115907C1EA2787
+177731F9DDC6C96BB172C3212D8F1A889BCE888629D192E3255EF0ED0A8FE03F
+AA53D4F0773DAF25F1915B8DD486A2A9894222A85016198EAD2EE9CE98BBF368
+5C4A66130BD90FD3E0EBD1C3D507000E4D7337237C64B070F47DC8C1FF8E4C68
+D265293BC030F779ADD9D4AAA9E146EED1A76C33AD4E0E3BFCBE261944E8A4BA
+3D345A1937024A7613FA0C6E41F81F103FD6D82B03F552F365F5EFABC87CFBC2
+8FBE499FB5798F762D7B8D4245178DAB2F2D3A8A27D67FFBCCFEA973D15B212F
+718D5362277F5E0C8410136FA797C24A839D494F9DE54C0120C1230AF8D7AE4E
+CCAD9F928246FE309C9AF312977574E5D9EE56CE157CF368DD94E55DD7A1BA3A
+2D531FE993DF0E3659FAC411E6B544D9EA82066CEE15C9D684B2F16397492994
+9E58C6B4269DF4A2083E7F337423AF5F023E5B1CE905A679F496A2678A13AE8A
+5107523F4F1C7620542805785E425290A17A8B60B3570BD2F8B1A906C72DB2EE
+2A76C259CD999A28FF57FE3CA113C92B3F394E9FB5CDB343871292395D0C58DA
+300FF385F945D86C5261861DD7ED6E51203840B779E564BC2B4F97007E16BBF0
+3DBB79752D01547682FF2A0D7243711A83120BE654D103E5F1E25C57304D3218
+4D8846C3E9E341194AD89E001A8A6DBD62CBB4EFFE8085F1134B6B5603C465F3
+1EAC91FC3297DD6640E3AC32B7732C892D86A6C3337E33BEDF119D464CA3C407
+56556182377399CACB3ED7069502C5B9760E084BF06EB714E05F52127375EE06
+54A138D2E0A173E460512A8524DCC89EE91FAF743813FEDFCA2A22AE5096BDB2
+22D15A8308CD22961AC1CA454B36E7E533C49B2ECB85C1179EC66F45FEFBF76A
+8811CA7443C168BCB5FEEBC574D6E76D30224A52F136204D480137E99F8939BD
+009D19E792CF99EB54DA2BB12DEA8B5BABE95090B4012C0D4A3CDE3814BEBD7A
+C3DBB910229FFE2899142024849066412102462C21BE06DA2782D221E5B49743
+D8173B6BD67DD27C719382E8532DD6684987DA54B7C236BD910C9FFCDD43667C
+25AF36A45232162EC5268FC9A856F421E4413C5E0D8293EF97018B047B6BAD82
+C0A02C243CEB1D3151DEABCF2FAC70BB772A87C0D213148CC6C8328D4B4A9DED
+C30314C7E64E4E7FC1EE0DA91EC2E731313EBD09E34CEC933F64DBF02DB85613
+080FBDCC519495820FE3D6C41F8D793AFFB5A69E8A1801CAF23EECF5F034553D
+CBDB82942E9AF479FD525DC0C230D02927992A2C4A8D78776C5558CEF3487139
+FB8DABC5F1005CECBD7063FA6F52B0260BAFB4F73E51A8D43597ECF8656D74DB
+81F669D313DDC3D0CF87EF5E07402001473B9516A29BE265F0CC897BD28DB958
+75DB5638647227DAF624EB1C3D215833A27A41FA3245C9DB92DD743CE132F5C7
+FDE18F284348CD5267D310F9A196C01368722D17F1D886CC5CF4EBFAA72B467C
+A3F9D0A8AD5C2BE7818C75CFA843ED8972FFA67BCC680F6DEC4CF64E71846EBD
+145FD81BD41EA55B08F708EFBDD16EA3412DC8651F0A87899E3D7C5A52B85B32
+05BB3467B0ECB643AA521DF9349D41AA0410C2B54E63B0BB37E01173AE3C12CA
+F00FBB9BB1A4D0CF404657BBA47831C62D4EE7869D359C4300D54118EA19E38B
+BC47BD083D8C60535C588BF1D7AD507C074811E5DF3D4B063FE90DCEA97DA469
+1664E31CCDCD4C0AF981323892D6D99E76162E9FF067E8EC83DE3621248F305A
+38647089DD1583037A544D61904A922E4535F4AB55CF305CEFE1FC2C43B5F3D7
+A2FADC7FFE5DDBDF1030A0F042D2282F970081C42292E004CE695A6AF44B5A8A
+D447672994BEF1C00E771E7E422F47785B001906FFED88164643FB76F55F099C
+784AAE77585C47AA4A8AD9171253DD82684EF6A62596620E37E7438AFEC5A8FB
+942CE87E1699F80534E791E9FBCA345B930F50BFB0C9B500D2641AE81C734E39
+B983D605D12B75ADAF195117930327AD4CA0F7E91CA2BA317E8A651BCD24BE29
+3B7C043340BD8A25610A80F97B851270CC592C2A8CC2732E2885C9C4D92356C9
+B815916552FC3D26E5A1EBCFFBC37B528C60A1D047F4DADB250BDC74C8BD37EA
+07AD78490C38C91D0552CCB5451CCF1106586A18D6A86F4579FC5BA2C62B46FE
+2C8E64249B985CBA33CA41BCA5E1F0B41CF9826F6FB0E55BF515E251E54DA500
+7B9796B5F400B6F145DA2FE5BCD42E410861135A56CFCF276D708116E27DC6B0
+711F75F9B4108C79371E2FEA26BC23CA2839DF9AB91211698B4D8BE3AD990AD9
+516D754C19D3181DCF1C64968419BCECED65EA03F55593EDA9CEABDCF14E390E
+BB21125CF1423AFC80A24D83E5340E1F02EFDE611037368981810EE74AB0A4B1
+1DEF834DFFEE067990D4DBBDEF2102A3D95BDEEC5F45A94E7D4BA365AF630E03
+89EDA4DBECA127B82C582D38CD32F9B27243FD6EAD6AC0EFD8C7DFD3D78CEA3F
+CA4075876421459A34A65F738A91C12A321DF31CD664B8CAB400E54C9637E5B7
+2DC8ED18B4C47706ABDC665B4535CEABD7E91810B1FF37A988BCD288C4AECCE8
+13EA8323914524F60986AC89F3C44EFF9571167E812D931574107A1D2BD5A87E
+473D3998124A3DD398ECF7B1D0CA42416D36C3C0FAC689E8BE2558AD55436893
+7A11E788D5843DBB152185850E37265CA055568264072E572023A3609C952CE5
+F134355A392A115EA63F8FF94C75C77F594DC64ADDE59760BDD70CB45D3DA6BC
+8AF99B2F986D14E6297A48CF8EC20DCAB9A936A17635F9D1EBF6BE1E7BB633CC
+213076AD2E304E9A50DB0A877977580C657A2DD37FE865E731DD6FC2DE58B4
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+cleartomark
+%%EndFont 
+%%BeginFont: CMTT10
+%!PS-AdobeFont-1.1: CMTT10 1.00B
+%%CreationDate: 1992 Apr 26 10:42:42
+% Copyright (C) 1997 American Mathematical Society. All Rights Reserved.
+11 dict begin
+/FontInfo 7 dict dup begin
+/version (1.00B) readonly def
+/Notice (Copyright (C) 1997 American Mathematical Society. All Rights Reserved) readonly def
+/FullName (CMTT10) readonly def
+/FamilyName (Computer Modern) readonly def
+/Weight (Medium) readonly def
+/ItalicAngle 0 def
+/isFixedPitch true def
+end readonly def
+/FontName /CMTT10 def
+/PaintType 0 def
+/FontType 1 def
+/FontMatrix [0.001 0 0 0.001 0 0] readonly def
+/Encoding 256 array
+0 1 255 {1 index exch /.notdef put} for
+dup 0 /.notdef put
+readonly def
+/FontBBox{-4 -235 731 800}readonly def
+/UniqueID 5000832 def
+currentdict end
+currentfile eexec
+D9D66F633B846A97B686A97E45A3D0AA052A014267B7904EB3C0D3BD0B83D891
+016CA6CA4B712ADEB258FAAB9A130EE605E61F77FC1B738ABC7C51CD46EF8171
+9098D5FEE67660E69A7AB91B58F29A4D79E57022F783EB0FBBB6D4F4EC35014F
+D2DECBA99459A4C59DF0C6EBA150284454E707DC2100C15B76B4C19B84363758
+469A6C558785B226332152109871A9883487DD7710949204DDCF837E6A8708B8
+2BDBF16FBC7512FAA308A093FE5F00F963068B8232429ED8B7CF6A3D879A2D19
+38DD5C4467F9DD8C5D1A2000B3A6BF2F25629BAEC199AE8BD4BA6ED9BBF7DABF
+D0E153BAB1C17900D4FCE209622ACD19E7C74C2807D0397357ED07AB460D5204
+EB3A45B7AC4D106B7303AD8348853032A745F417943F9B4FED652B835AA49727
+A8B4117AFF1D4BCE831EB510B6851796D0BE6982B76620CB3CE0C22CACDD4593
+F244C14EEC0E5A7C4AC42392F81C01BC4257FE12AF33F4BFEA9108FF11CF9714
+4DD6EC70A2C4C1E4F328A1EB25E43525FB1E16C07E28CC359DF61F426B7D41EA
+6A0C84DD63275395A503AAE908E1C82D389FD12A21E86999799E7F24A994472E
+A10EAE77096709BE0D11AAD24A30D96E15A51D720AFB3B10D2E0AC8DC1A1204B
+E8725E00D7E3A96F9978BC19377034D93D080C4391E579C34FF9FC2379CB119F
+1E5BBEA91AE20F343C6420BE1E2BD0636B04FCCC0BEE0DC2D56D66F06DB22438
+452822CBEAF03EE9EAA8398F276EC0D92A7FB978C17805DB2F4A7DFBA56FD6AF
+8670EB364F01DE8FCAFBAF657D68C3A03112915736CEABAA8BA5C0AC25288369
+5D49BD891FABEFE8699A0AE3ED85B48ACB22229E15623399C93DE7D935734ADA
+DA7A1462C111D44AD53EA35B57E5D0B5FC0B481820E43222DB8EFCD5D30E15F9
+BA304FA879392EE0BCC0E1A61E74B3A1FC3A3D170218D7244580C7AA0DC65D19
+741FA5FE6F8CBF60250ACC27454BBF0897CA4B909C83A56672958752ED4B5E79
+E18660764F155E86F09EFA9F7685F2F5027EC85A775287B30E2069DE4E4D5712
+E7D033481A53A2702BA7542C71062173039030CF28D8B9C63B5596A9B42B33E7
+D922944A38713383D3648A4AF160A3B0C8F3379BA4372BE2E7EA49AABA75AEEE
+C5DDE1D8BF68483C3D21271280ABB91D54CC819680322EAB72E1250A760BC8DC
+FF798F2ABFC4F3539392985C4CB324B0007229586D1E0321559F67C057FD7902
+194490A4C133DA790FF3BF23A13C2B1B69EEB75950F9106F2BA1E3CA65C90FF5
+931DADF03DA48AFB8561FC2E710087251BFC42B80B297A3DB0DA138A7622A931
+DA293B0C740987ACE9F2A8EC2DB98F85783C01623FD3612C7E4A84FD93446770
+C3DD7431F955A5F3734F6931BD790F0A45B8D17CB74BDAA4BFF6DAB5380CBF61
+72F37CB67A9754276CB5C7C0BCEE91551CDC52B2E7CAF512A3A6C468EC5DC4D5
+A0DF9D8BF16F759D3D702A85311C74EAE786024061DF4EC9C84B80CD1D9D1C3F
+028ACE30F0D46DB072D106063F20886699D14A9D9617F983A58538CE73F20735
+11F8238074672345F134E5DA4AB2A5ACD0F4CA3683F1D156AC73C494C1BBBE24
+2BED6F0024FD13EDC9D0400097A0E417D4BAC4B9138AC8BA22A97655F56FBD74
+42D393B3431CD9D501F52897CA65D19664BDEAF1BA03344D4955BF9A6FEBD5FA
+496A03B1232C0001579068F1BEB92277EEA0038AF361B9FACDC11A1E97362D5C
+94FCE5BE2AA34BB1B9B17B3A7270501BB2121A750312941F8F497770680BF1DE
+D6DD270C9AC7511E8A0359D4239C4CA0773470A45D6E057D0189FB7EC32DA1C8
+84FA0A2A98C9BF287F9E8BCE515BE85E39E23E97597F6788F23966A15A64157F
+E69DBE274DBD62E359A545DAE30A9444EF5548E7BA21E4A1F7313C939938B4FE
+98E306A13D317A31B5BBC59D54822ECFA6EC41857EC321F6351FFBC8FE4C81DC
+93846CCC8A07CED40763D11B8DCA3133B4E56F27289DFB776B005AF225C674E8
+76CDA0C760D537A5F601A5C6DAF46D8C0890CDEB47797946EF8FA7D1BF8C8118
+EBF3CB7F1CC2EA7C501527A941CE305961546D008AB0E465E5F8C165A8894A9B
+48FFC0ED9BDB9E2203DCB76A0FEF925BA6DF2F7EC8B5911056736CFF8B3F3BF1
+6DD945BD73D4A76F3D7DBA7690069D2CAB30BC2073A5FBF9F4DC87D983BC0529
+101124A6A02B06A95BBFB488CC9E92E3DE8F39EDB9220C89F5F2826AF3AD6069
+7E53C32B2ADEC3693D950211A411D0E54471C44C2361581147482510089E3C04
+645AEF834DA066C08E0D1701847E4DB8E3519E9D238FB1A4DF580FCDA8F8F332
+6506664AA915CD0A11110BFA8490FDEA58B913E83DB26FD4D421A3540C2071AA
+3A43C07ED1103B28A2B8015178E2EDC5575D3914BB4BED0D5A5DDDC7CFAD387A
+EC05210BDD4431B5C2B83B9B12A268AD9CFEE2D6FF51566C9D1450D1840759F1
+66F0B8A715F0A328A5A13E536D96C9D1248552ED379C55DF429A5DA82512F8FB
+A7DC81459D45532F85FBF6758D17E495ECD59B63DA7EAFF557C0019455635BB2
+8F0238C12C94BD86DD1F00D1E7C1528203D251E6C2774CC9747BF2837144B5A1
+7DD6CE4D88A499073050A7458E2B4FE238CBA7ACD6EDEDA2311B2BA9316C8662
+95BDFBBD4B9DC2B51E8AD244EE3CD9C7D79572787F6732BA310CD44BF5F6B9A9
+5372FB0EC123CB9B544EBDCE0F7DAF2CB71E9BC76AEDF9C8DB0182E0B4AFC8D0
+5A3438D90E8965C503EA32B734B22AD412F7E0FDF84B5958C42E90FD62008560
+AD7FFDD974BFFADE2A184B36B66346C943114EA50E960F3F1DDC4ED3F8B6D3A0
+FC441C8882E02ACA1ACCC5974FA1D221B050A3EF867028C025E9C5FA6D7E3A98
+F92618933C7D0D75050A586986D8E825EB6F83D5AE22435E710B20D67EABD990
+44CE67EA702A49893D62B56D1C502C1DA261E90FFCCED4060CE6A41B3B98D6CB
+F5D4593FFC54ACDDE6898C6D0EFD65CC154F01B98A9308EA8A7128C4393DF7DA
+39A99C2327559D9BCC1BBEC0318F0063FA62EBA220124067DD0D26CF9AA4B2AB
+95652276C9DCDBDD824E05636629BB864571A72BE58B60BD56D155838DEA5E18
+78E2B75056682B442B65769EA488A917B114B95B3C552DD38277C990BDFE4576
+DBB1CAFDBF228AED205352B1818B69D899B0885026A75B11973B32C99226A40F
+B3ACF9534E7729E5A4E632B81DFB059F996BEFFA15F202CC3EBEBE0FBB5C48FC
+E31CECF18485995CB6D0AD8868B22F9E6054CB37D32DCD950D50A4735A9B250B
+B61A273A1DA58C47DB0472811E747092EA7E41E622F47312A7080E9A54DB26B1
+970C0C8E8D94C3D3820B0AC0BFAA88FDF06DF5D79AD8D2F7C4FA7DFC6712A157
+1F91B73428A88DF2E45D62DC118690FE99FA03619A9B503201DD67CC21D627AC
+29E3EA684DBCEB706C44269066C6F5F185E686D5B591D35CA05C6D83578142DB
+E16BA855DE8D3B84C732C4446ED3133078498AD97E607081DC7769029F823774
+17D9EE9DD94625F755C5241E2EF77F00FB0C6D9387EB899A5222FA65D6852A98
+09363F4137E9370AEC6301C7EAEC2E31A3BE87F81F53775BD140584939152DAE
+5EB8A4E8BAB6685EA94263CF025DFBFCFF211A186AC34FF9207A8C9BE209C239
+C013B6D8A5E69957DB339D1676179A14AAA0431B7832B80EB52E3A717FF82ED2
+4590A30614697568EA68DB2B6AEE7757C73A5C6F11345434CEDE5D46504FFECE
+EA3BA5501B2E5B41B13AE606D9F8550014368FF8C13AEEE7E615CF6FE04CD9FD
+A4B9D0D80AC479BE64559C32C3F3F6B1EA256833095E45BFA6F337E2E1235EC6
+D63E47A9ABD23D2F87592317A3B9EB4995010BF1DE735C8B1631AD97D2951959
+00742C907D5647CAEF7572E55533823B8448EA2BBFE5E9013B7362246CCE41B6
+94458866024E8A4970F6519EAD06EC5462F3ED07C07A71B835B4701CAED01E20
+35E899AEFA0EA430539873400584903E23E969DE57DC26C2F36195C7FCBF949C
+88C473D1241DDDD1AE2BE33CC70D6F80CE2750FA8D7B9B9650E2726552BAB78B
+2D5F025A7BE3A61D9F6A3E406EF7D0AB78A160A7B07970482F420EC4D7AF23E7
+EE7DE1A06743CB70328E0B7FD9C7204ED8FEB7B906590D030A21DCA07EE44C75
+CE8429C1ED85EB53830CC9A3F73222D052AE8354E9B4C7991EF1D50C5369D219
+C532F3F5F32020ACB680E0C67DE7033E59DDAF340F187860718EBCB3C8980A3A
+64AC4DE3558A67F7F8E26512557F0D245C09823A76DFA83D059E2D046AD0D23B
+D1838E3923611E0472866440DC25FCF9BC9229C9EB0E5E6B9D96E7B7322947BF
+388F47E012E89CCF5947D0DEA66FF3B15023605787A70EEA8F5F7EA74AB287B2
+51010578E33BCA916F12246B1559B9A1F582D31137136D70B6B35BC65A40891E
+BE77FA9A1A25C2DBA66B87619A391AC03A2A965139A72FC5E2F29800A632E317
+D4308FC59B4C56AC4033B23B5F9C15BBD8AF17C5099FDC92F6EFC0884CEA2635
+F9192FF2A530B36B2231AB5E42504870FCC3C4355D165E7C648AA0A020678E24
+3667AD048F417A44A29ECFC84B5D117323DA6F4CECEB581B2DE8FE8118F18E18
+B100FFA11889A7610D4808338581839B7368B22D281C388671E6A47076C97793
+56C7987DBB4957A7AB2920504EF7F7BA7BB9A3F9AD3B6C9739DEE8B031A69D39
+39D76C78483FCF36C95DA6022944FB8AC667BF627AB1F71883CA8D738C2F1FA4
+603541F2D5B3F86FEDF612B78EA68878863C19C08B8DDC3E7D6254C630E97012
+54B1AAF20BAA00820F153066967EFE97766CFCEB3BCC4102D114E90F80A6910D
+A543DB1CE68FD1F0B9D56764CD118392805C651F1F75F8DBEF02A8A77FD1F5DF
+36E78D0DD2B388EA9D5AF38E13E4839B8E014F18B5DA8BC4E61BD2CAD2F7200B
+6411345425DBF676974E28FCB157E1864E8E8804FFA8C18481989FBD49BBC061
+7E99CBCA372544E45A380C86F2AC79150C46125CC776E9387224CF8212891078
+FF77AE09F35DC747447728B09661D58B7060DB504DA8639CD5B34F1EA548D59D
+A75608C1FC68157EA28AB9868BAC0D7A14A5A9F3D68EFDA6860535D9D0BA5966
+CF2A4652EFED5A795AF996584B0428C3E875D2D4295D8B43DCB9C36152CE2EED
+8409A8FBC4752A5FC6EBA598AC210F791D7BF59019FDF47EEF5C459754694E5D
+B44D9A95178763A4CFDF6E74D447A761EA160F7EA5E3B495B7F284C579D73EFE
+184926FF21F081373A21794CF69BDB859FFB6D0D5FA419B1BC3EB6C6D2644E66
+B731E9FAFB8C51CD395906B75EA6B8B2A8AD09A919444DE4E6FD1D1BFEBDE414
+E42D9D1AA6170C6157CFE5100474D61945E844773F8BCC6449F167E7B067CF34
+55970ED5767AB7E27E8FA28196BC8629C426C936984D07F72E3FFA15D83C5D4D
+213148035080C49756A5FC4F931E4F8422BDC346FC8F79EEEE5CEDE9BA775DE7
+56ADF253E0F309E82D51BD38D0A91D00DC38FBC2BDD6FC557F77EA07DDE50C2C
+F27AE181D0BEEE3B6754DE83B1459A5F1A4CF4CE5A7A7F90A3FDA46C7F6E2891
+39AC7BF688AEDE2638D2BC8E4A392C33B2B87C5FE7500AE6436F5A09551089CC
+3E60C701904BDD9AF2FA16E87B5C35852BBA066268E5E3F3DCE621E3B34E8147
+16581E6F33F1FF60F10C04C672B3277CA23AF5FB74FB2ACAD59B4F02FF12A667
+A2C15FC7550446FABCE3375C1793902412E7CF3A0B2CB2988A164129FE25560C
+74F45D42DA0190BD5F582F59A9A0660290CC2A607A6268B52A619209F44680F4
+34D5032212E9F0D0C5469F88C8047EAA7C0CE6AD05EDF15CDBE85CE05A1B5A8D
+157D6156AC6709FB55F44E39CCCA3F96EC79FE048F5FC6B52E10913CE160CDDB
+60EC996D789B99BD53B2FC291350C25EEAC5DB24B8D1C78112D7D084C05E5C8D
+65706EE4537216F273F085C9DDA71322D31B26823234670B57B2B1AFABE69FB6
+93F69F0EDF7FBC94F093AC62A32779B339ECBA6BD144AA9CD8EB23F00E9ED04C
+FFF80727DDF96E8B32A1E1F8FC1F45A23C6700F73FC4FC8B4522810A0041DEE3
+92D157D1160FD58B050EA2B35B8DBAD8124460BABA39380CA13567EAC45E515B
+F7482A6FB2BB6966911DD383BE09EF124A08AAFB69834B96BB3A919D399FBB5C
+D8EE63A853B21E9A4822D2A76CF5CAD89B3E46C08531114379735BDEEA9BF687
+5F36DC903F96A3EA5A3689B5C24DA80777A77F631FE185D0A7C0A98856A80241
+7C9CAA9F2FF9786B4B494A37857B88ED651C1F6D29C878145CFA68DF7D7D64EE
+CFB5C80BAAFAF72F7266073B11FD2A2926E6295AC95A93554506B4C779D77BFA
+2D19CD7DBD8BB7B34A936BE776282DAE39B8C1724A20B03DC9C6F9822E2A1141
+2AB6EC4C720A859BC44E2818D415F90E144DCB9D36A3CA0F1DD29AE6429EB907
+8F636AB6D051FF8F7C66080348ABD2CD18E9EBB43213CC7970E55E0711504638
+772E269A5248F105122D32BBD5753AAFEFEFA6AE53E6E29C59483260B2AE4950
+732F3C2EF73EF987A6CF25928546036A4BD73F2F680A9640CED38218BE269386
+3649AF6B83D3EA0519211A23571B430F2E10FC3B064B3661811637637B30DC5C
+DC4CBA7E99F29056A08D99CE203F6A5D6CF3F0D15D5B9F81A24CF9D47C93D4D7
+B9C660DA0FF168A35E023AAAB42A52BD15BC837DF1DC0BC82B52F5D6386E18D3
+6E58591AEEF70FBE981444BA42258800414E5C958155D0B559FE27B6403AD16E
+8ED47F63E283B6A3DC0416AAAE927FC557C330C84F544C912E7B0B64AD483E5E
+4F2326E94747099041EDD5471B7A402F34F060F2DD93DBD89D73652EEBAE30B8
+F6CFBE0643F4A6921B08A9CC4117AD0B03B399E1658AC84AD4CC20AECAC95C1E
+5621A0FD30DA15B39E0E79B09FAC0A53082F163DFD840032CA5301EEB592D608
+8B92CE1F744FFDA30D138ECDED5E4F135D16AB53E5564DF2A012A6290122AD2E
+F1F99214F8616386B0EB8F11DBAE546FB75904BAFAF6A02D6411F202A4C78087
+41D8B608EEAA0865AB515EDF862A4B80AD3179748A8D2ECE8E91A91466F3E0A7
+668EEBB0EC6F2293DC743B3306A2A06922A932DE4F8CCACA069465813734428B
+71483CCD6153350BE7DA6FA2523FA5968075F4E05C6A24B92EED0D7D69FD89A0
+7FF74C7AC7EE8EC8591625995F179800A08707694CED17E9BAE22545AB9BDE07
+9161F0ACB2E4A245F0BFD3D429848CA14AFAE87EB28837A9D822CA30C2CBF7A1
+A0DCEA7E0D24590BB9319CEA3D779BE3D1611DFE6FA014D048FC25845A0A2AC6
+361BC3861DE9714A065D3D1BD7F9AFAF80769877C477B6F0E6DFECA699D38283
+8391ED59FCDC0868B005752C80DB5C47BA75D729D8AFE7426B71F4982A75787D
+BDD58D851C964C2F7BA796CFFD50BBDDBB34E0EA58371F04C8E0CF9159383A9C
+2D1EC09BB317A95267E1EA16AB4DFECF63CA6A6617C730D0B8898E7426564D41
+10FA3C53257B291DD2C4DC279E39AEA0D582B834BB87C835CBC3CA649B7166EC
+1D66FA1986956A9A75E623D92E1757CB18A8CE9791F1D9109D88E0BBA5537182
+44AA042A0C606229028AF4328CDFB7FD734FBC1AD40B6F57A27F8B0CED2ABE4E
+143BE3C28A00EAF2B169440BEBD8EA1837AD6BF55FC30848B4AB364B6806DC87
+0684EB0B993EB205F6AD8FE3DFD47DB6D1720859F6FB738278D6A752F2E8B5E5
+1D9C5A8DD1BCEEF02353FA19D99789D127848DF53303218AC884B72B336597B9
+593661B97C2F192584D53DD927F8B75AD1F160A2E4580339C9568332BACFA85A
+168227B77CACDDF95333679A2E5CE6C869209B553ED99EE39ADCBEA2FCD4649B
+4961C0ABDB98D29932F9CB76F5384D87893394E6D418E6490A69ACF02EC5C4DD
+46195B7305A7D1B6EDBA563D8A82148A1C299CD40CC8CC9FCC4F5C3D2D0F1451
+CE1C2C7F779C8C602665EA24730EFDBB24AB0A1B746D698B5BFDA9C6FEB188AE
+63D94C44CE4454F6C1107BCEEEF50DDB7AFFF016DE7D789F026EF974F59BC131
+1D818289DF76091D858502E76BB1AAD5AB3B87CFE93F7AA1CDB0D40905FA0AE2
+64F7474221883D790D6986C36511CF41143458EE1A98F482B10358036E28EB9C
+DFCFAE5B02E626D76DB19ABEC1DA7496EC4A52B4EC2790BD39136278BF77C44D
+824324CFBA350AA3921550877DC2FA629E6DD3F39970F9ED06ED3C2CE782C006
+EBDA2E521D3CAB351EAF3E463CD8F57D2F02A53547CB6BDFFEB7B4F34DB3CF8B
+9B8EB03AA309A18FB6AE6583679EDA49843DB433418A3C826CF02C4DFA5F2A38
+360459F855A6BB47688149F86DBA1372A4E7FA700B613A63A105332C44E9E1DF
+31468A8FC614F25861A2A4825602282C4A027D5C167E47A97221BCB9841BC101
+7C1FB6217B03034B5D5B3D87F7DAC6469BBFD673200B792EFDB284F8EA6FF7B6
+D226AA61B324F1D39D7CF3C30A53991EFEF7B79A413E822422E26BD236809A5A
+0C47872090ACCB21A76329BBF82451C73D8BF6D0C757CEC27BD88487063311CA
+E3AEFC9A0E47C28C6080A406753ABEA3D6D30522725571DE2C6EF75C10220402
+847D8AA35DAF94B651168DD19DEE43D52F5A08221F1FAD5BE60AE4E68120A989
+B5DCF61A4B491EBA87C2C2BCEF063E0715ECC3672641991A63AFB736F5BA2362
+C57B1B0C466B6CCA6F20EAA9E78EAD057226FF0D58CF76277A67110444985716
+0F2064E7A8C035A4FF27B054DA62F445F9DC43AC8C0DEE708C18C42A7D0BB2CD
+36E3599BA76BB6AB56C73DA9B3178CD7D8F9D5EBBC30D6F574D6CC4324D2AD55
+BEE15AA5EA2C89E5128B26523BE08FDEE84CC32F0289EFB3DAC0AD682B3EF2D5
+C2ADF6B3B9E10AFF80B7A67153D46851A3F335631418611EA16D1445F6F56961
+55A028E4BF879C3C1424B046F82FD52A13A56BBA4065CCCAE026D8400B5A67B2
+B3531E675BA780FA25A6C9AACC2BF60D5F6E5AD23DD72F8F8E0AD3FCE0AB0753
+50EA91CDB4D1F9708379399F45B377812C050FA4D039CEF4C634E1C311EF992F
+C88E31F9BD11C31340C250678D8B2288CB56C799CAD9506F5B82649B1E547647
+96FCEA0F48CF3EEB23A0BD8766E008203E99297BC6529D8920D4E2CCF109C0E4
+D88DE7CC5665B806060018BA2BABB81BE76DB01A67538E717DDA67429AC22A10
+22ED09F638FB9D325995D8355BFA8CB7AC7B3819D48B24F20B71558BDDD697EF
+210782F574E6878AAF591C1A2C1A3F22E6F742DCA20C77142DC1D5FB1C84FC90
+55761EEA8AE1246A79DB29D623D100D558F4B2AC83E0C66A50443F63EC10F8E5
+6B55DDBD058FE2B8E890BAA27A160C2D8912FE55A3D4DEE62600255D233CCFA3
+459CE77F3392BF34E371EFF49A019EAB2377B64FBAFAB347F8F8C29AF1EB196B
+F4219946F0D9DE4486481845523E20C96AD7349DF2BAC8EA2311CA8F6A2A8485
+73E28B13DADB1C10348FA57CE4C289339862740CFFCD895DDF47A22686A91EC9
+33615369EAC645FF340B0B89DBF9B6351A26A299EB5DA1CF195BB8AA2623254F
+442B9F9380DC3170992C101CB9CECF7B35560CEAA3866287420C89847942EF82
+CDAD85A8D9A59D76767A97AA484C99FB5FBD7BAED9CD624849928F8EA2E3DFC6
+402D9C754A735ADC1BCC15223455AE965ED05E029A2622DBF5076A270E91E3E7
+9D4E14016806F6D673EF7B805DF5C58C1B0D18605B261C84713375D474BD3FD3
+245A1ADE643EEC314368477C5CB700A718850AD40E8D1075B32AD336E8703177
+24CD273AA0D980C1561ABB1301C8CF316CF2EB19C6434C9BF67E37A22BE01406
+47410D79EF43C8603629D5BF2889226D55266455419CCA75A044956E5A1733BD
+DC8510C7818C4348160D19FF8088860DEFC2F8FB59E8A2BFD7830B67DFEA24D3
+BF7B3B08799FA130BA0976E6616738DC6DCFA45164AD3DB3F5A256B6427662FE
+E819E8B5C09459FC4AB579FCF850C3EB2B4B7D9817DE5A3078B10F13DE71D599
+3D9D1B179949AC915F3C8FB77B4DFBB8135DCEEA1D2109FBAA2A1137033B5D33
+28E0AF82486838FF9AB6B606C6F2C61BE55658B7D29F1A0986D40E9154997DE3
+0A543DE436BAD2E4DE2938069746EF7DAB636A29E64B7695FA190C10AB5CC3EE
+6854916929155D53B3A9677A731B8DBBB231DCB9667EE9E4AE99D2ECB82FBEF6
+0C71985C38973A322257D3497FE1A19D2EF33BCC9A904F3D81BAEA39B52A0FA8
+9837D9BD098BC2C802FA162E74B355C46BE14B88CA872585FE575D139282AC3E
+AA35FD72CFF89A9319FCE4F6C0482677C5D8FB4E977332DD20C00EB2786A7346
+B3F3F4FD3BEFE5D246EF2C1AE79D4BB4E9B9F646641DDCC923BF75F9AA7D2A13
+118B0DBC0798475C55B3462144C3C239C2B0F642874A25FBF25DD0B4F966930E
+0AF831E970985BE97A07A01D89EA1616F25F7CCCBBF9878F20E1C257B18045C1
+98F55057F1A60937BAB74CD81B88AD9F37AE66C8E4FB92A0B80E7255C5649E63
+B571E9EC452978D09208620CCE5BB3A699F1D168144959A82917EFE3093DF09B
+1486E9141EC577FBFB2A4F120CABDBED6AB2E5A786320990A1D4D94985B0E12A
+8446E45116DB049EFFC9A05A5E588E42DCB7CB4F104722AD5E766C28C13267FD
+E20D3CAEF328E92529A8994C88128E0DB43A5B774AAD4E2E17690B10BCD3C3D2
+7D96A5CD9A7766320BFEFBAE3880ED727FDFEDC8A231E608F647CD8FD1ECA6E3
+65CF7017D307A9C35D26231AA3567F0E40F0078C9937B54432F7466B13350BC2
+6C4A00C737FB7639E3A2B778CC6FB00A3CBB273F629132B485642643725685BB
+947B0F1211A8D4403E98B1249C513C13E15C2C63F1181B1E30A37AEEDF9CE2A6
+F98223F8C6DF7AE2A7864436EA50CA65B3CD9DBC3FE7FA494308AAA2C15FC6AE
+68FB8EF2F342C043947CDACF61DDE02E6B29A82F46E90C753B3640FDC3F40D08
+8959E1ABC8CD818FD538BC305BC9B72F3792EBB1E673812F912CA0A1795569C2
+437FDE53310FA22F869F8026CDB8AAB68826C43D6427AF37E3EDE8C20C8D9DED
+11D9D2CB430C794CE580C635A46461EAC936C9C8211E5CBD0A1881C289F8BC31
+AEF400F55537959C230F1E3D4C1D4596860FBB20459C13F7B8D82E1CCB5D62D8
+5FAF25BFB86F3C29D76A342A64B85A953DDBECB4763477474337814549D9428C
+A2F2B477BFEC3E4BD67FCA8ED32F0CA914F697C5651DEF039C5D38A46ADFB86A
+66C016E49A7683CE9CA918EC614615B2A90261CDC53FFD9A020437FE3ACAFD19
+12C8EF3A74F97FDBF01FB0975B591AF4F35340AFA5CEDE489D8DF1FB1CC07C73
+45D23C734AFD91C2EACD76DC5682F850868ED72069ED22A2E7B7DDF17AD6C7A4
+0E5408F2DEDBFAD8F033B4079764B8AE60D9DBBA086B98AA093FB4775EB08B1B
+06DCA52EE5E30FEF361D76B1625FE8F441022F56B599D4828DA4C7E30CC5E47D
+6DDC694FAA2167F0949EE71FAE11C6D84E33A136AD285685C6510B4798714F40
+C03595CAE2998BF846387B749DC989BD69112686A849F2BA9C6C6B226F6FEA85
+65F4CA2F7477243F3BB50C10E2F63F8F36B9EE2FCC8BF5EBB0133DB2A5ED6BFC
+7EA416934A9A289E202ED79D337C83E00497AD0D8AFBE5FF753779D9B9409556
+5D1F8AD9AAFC4AAA11D6FB72659AE9C9B5651E9F14B64BC557746524429A286F
+C1D3A44D81AF4229405CB2F8C2C07B4E8EFA2BC4F233CB9B59610CDBE8E1FC79
+EEB980BAB302F674E7784742AD06242C4D2CF679E0CCC354EE0C42A314474930
+3C5483018F85DBE38F2A6EA6236FC7A8A37A93624C2CCB8E9724AB1DD7347627
+6F94C545A66477207B768EDD6843AC49FF47A73A4ADA65A8FC801A7ED7CED9D9
+2B56E182A11159D73264B09492DB7A53FD0763EA94BEECB555D1C1A5D33C0345
+11E2AB09244DEB69AF5E0B66DBE26E0065863FA21781E1AD42A4B0D5B2CF7047
+70E8C92888A737E22E26534C9CEC44CA8D4EA52507E4DFE51F6133C0FE988857
+2F1F6DACFC89ACB7AEA3830754CFBAACEC40F99B88050699E011588ECA325FE4
+81A86FE1F3BB32AA96A1B80775B1E34183DDC3844E5BEBAAAC233E12273AFA57
+5591EDE083569EF505BFE2B4C9E3EFF2E28C86F9A270D735A17511BCD1859178
+9393295FC4B08B52C42B45037AFE73F8571F259B02A2BEAA73F58D33B862939E
+CDAE6A6AD6B450C8FD6E3B0F9B58A879FFF2E6806982520CAC0CB491274F7BE4
+F5CB0DA53CC7A38EC3F2DD95BBF93D742AA2E4578856F911C0DD1E5946F79866
+78A476BD746A32096000C3B6C7D1D0BF63C2CB7CE1649B6C47422547EA46FD68
+ACBEB872D0FEB6ECAC1747B2975E0107D2A2A6832320DB9BB2B8FA891EE815A4
+5A87EB099D49E6288CE3E85BCF30253C87A7B8D4D89442467E5C209617D14B82
+B429CFC1B5B56805198B3BCCC5657344575A3814E1E3290FD9FD8A5D570E1BFB
+A3A72D90DAA6848FB00F673269CBFC69A8B00091FEAF53232440B3899B17DC1F
+41F77B21468DC8A8219D22AABB368A3266C2E53B26A5C49F31F55F5A6F5425AC
+3DDD48E81A41445EC7841D3A136425EAF3E9CDD715653DB3F11E198C96967240
+68F20E0C28F3867ED21661A5D9777361100FC32EE8C8F85F00A4F25454B6A139
+B993AB141E291DDA36F4D0D4FDABC8C75B3E3935B5E049815C6D7DF5C9A0165B
+95DDECA35BD533144559067737F0BAFC987DD9EAA4F1ED0A3B75915A65768C9C
+F8CE486447B8AC6D851AD2EDD48E724A9488B688DC066A658ED408F8848D351B
+AEBDF5093A77175E324437BDE6DF6CCCBCC620EE31BFA31FF11EAF2C449A8C13
+A610A85CA69D2D5E48D1728A00C974EA53D9C3EB56894BB9DD1C5962AEB9B2DD
+61DA7826DCFF67012B2DFCDA5B33B872574907B3999B02921C4C955D00DE7690
+84FCB44678986AB3403A5D81EEC90C5A2E7F1FB6E77CE174832A7593E52298E4
+007E4B30941C3E0B7012AEEC11C8882DA9C16AA7D97D873CBDEFF6572753924C
+F62FDC2F7A48FC0757F483E1C0FED2B74F6FA3F53021DF0D961860CC348922E0
+B36128DABD50851AB990C9B324868A0544E7590ED9A436B2B0335A1A6D9F6BC1
+894778AFF630B4EA29559EEECD816292A6ABB091AB2C4808587F8A7B299E7918
+83F11C385E55234B4DEC31E595A1D7B9DAF02E114E9E1D67F9BB5C7E2B2DC176
+26AC375EA034ABECD358B2D09330E6161CA8AD0B3D9471232795A1023D44ED08
+C4E78B382E075098CCEFA827B7711BF5B5613994FD995CD30EC752E39386BCA5
+791C3478F7F67BAB0E7BEFBF9847EE231EA6DA87FE68C9A3F628BA9CFB
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+cleartomark
+%%EndFont 
+%%BeginFont: CMR7
+%!PS-AdobeFont-1.1: CMR7 1.0
+%%CreationDate: 1991 Aug 20 16:39:21
+% Copyright (C) 1997 American Mathematical Society. All Rights Reserved.
+11 dict begin
+/FontInfo 7 dict dup begin
+/version (1.0) readonly def
+/Notice (Copyright (C) 1997 American Mathematical Society. All Rights Reserved) readonly def
+/FullName (CMR7) readonly def
+/FamilyName (Computer Modern) readonly def
+/Weight (Medium) readonly def
+/ItalicAngle 0 def
+/isFixedPitch false def
+end readonly def
+/FontName /CMR7 def
+/PaintType 0 def
+/FontType 1 def
+/FontMatrix [0.001 0 0 0.001 0 0] readonly def
+/Encoding 256 array
+0 1 255 {1 index exch /.notdef put} for
+dup 0 /.notdef put
+readonly def
+/FontBBox{-27 -250 1122 750}readonly def
+/UniqueID 5000790 def
+currentdict end
+currentfile eexec
+D9D66F633B846A97B686A97E45A3D0AA052A014267B7904EB3C0D3BD0B83D891
+016CA6CA4B712ADEB258FAAB9A130EE605E61F77FC1B738ABC7C51CD46EF8171
+9098D5FEE67660E69A7AB91B58F29A4D79E57022F783EB0FBBB6D4F4EC35014F
+D2DECBA99459A4C59DF0C6EBA150284454E707DC2100C15B76B4C19B84363758
+469A6C558785B226332152109871A9883487DD7710949204DDCF837E6A8708B8
+2BDBF16FBC7512FAA308A093FE5CF5B8CABB9FFC6CC3F1E9AE32F234EB60FE7D
+E34995B1ACFF52428EA20C8ED4FD73E3935CEBD40E0EAD70C0887A451E1B1AC8
+47AEDE4191CCDB8B61345FD070FD30C4F375D8418DDD454729A251B3F61DAE7C
+8882384282FDD6102AE8EEFEDE6447576AFA181F27A48216A9CAD730561469E4
+78B286F22328F2AE84EF183DE4119C402771A249AAC1FA5435690A28D1B47486
+1060C8000D3FE1BF45133CF847A24B4F8464A63CEA01EC84AA22FD005E74847E
+01426B6890951A7DD1F50A5F3285E1F958F11FC7F00EE26FEE7C63998EA1328B
+C9841C57C80946D2C2FC81346249A664ECFB08A2CE075036CEA7359FCA1E90C0
+F686C3BB27EEFA45D548F7BD074CE60E626A4F83C69FE93A5324133A78362F30
+8E8DCC80DD0C49E137CDC9AC08BAE39282E26A7A4D8C159B95F227BDA2A281AF
+A9DAEBF31F504380B20812A211CF9FEB112EC29A3FB3BD3E81809FC6293487A7
+455EB3B879D2B4BD46942BB1243896264722CB59146C3F65BD59B96A74B12BB2
+9A1354AF174932210C6E19FE584B1B14C00E746089CBB17E68845D7B3EA05105
+EEE461E3697FCF835CBE6D46C75523478E766832751CF6D96EC338BDAD57D53B
+52F5340FAC9FE0456AD13101824234B262AC0CABA43B62EBDA39795BAE6CFE97
+563A50AAE1F195888739F2676086A9811E5C9A4A7E0BF34E6F4C9A04BEEA891E
+4D22B39729EE4F0ECBF3CF3C429B3BB657DF66811D3A108A73513A22D252AEBA
+66664B33422FED0E63D93F9F8E24320719C09F50626EABAAE93F5649E1981AEC
+E8F19F6105EA978C51CBF54E94F3DBC93516313F00B281D1B8C8E4C1DB33363E
+B81B61D7224245842A6B98939F0ACF3ED081BFE7A813215D36CD6ABC3EBD6B99
+A5FAC5AA7A0DB126B0A1FB14B58525546D4D8BB6E95F803D6E48BADA30DB9E2A
+9DA6644822D1CE24CF2C62A0E0A210909E82626D9D013E8832BA8652ED673B22
+FA82627D1196138DF7216839ED38BBB6FEDAED4572EE3D9C06D18351C0B582BD
+32CD079C5AEEAA8E03336446624FF59951DBE644BEF9AC013D599C98655B1F96
+6579BB0253FE46BE725C3BD5490146C88D402CFCC1E32B78117524E583E35C62
+21A06AF16A6F71CF87D963DBDD429431D861E3FC02788888726E2B1B40B47F59
+9253EFFBAC8AE6CA114D14D0C04AADB97A6229CF3A74C4225A029508670F0C8A
+82482D40D4B3555D2A14BF0AF1B43E4FF36CCCA2814060767355858ECBD1D928
+E70354B076E813EAEA5CCD7B77B7E35F34478E965ACC2CC1E99F65EA6F464758
+195855DE22C43442CC25BA99961DDD2AD29C7DC31CF28BBA4F0BCEF0F0AA27EF
+59FCD5A95F939983A927D4F9CC9096963626DACCBAEEBAD3BCEA23DD2DF683FD
+3CAF5AC74A570B63FA77DFD8BAD6168BF865F2D1146E994C40089C9AE291BC84
+5EAE2C1B2BD0A5774D4C7D997CB0F7D4D1C6A91C9B537BEE70C5A883BE1BCABE
+04C28CCC771327E5D1E6C11CAF484740F4301AF0E1E7FC5F89E80942D0DD5D74
+ABC3E715125CD8999179BFE54B4E5FE099CD6EAB3BD9EC336278E363F23B34EF
+B082CE27707D7A04887191E6E65534225F7115D655FE9CC55E4BDBA953B2BAEA
+DAEBFC70541A9612A767703771BEB35250CC6F4EA729E5942425CCCED496FF71
+7958B38EE0CB58C2BB8D961E30FC3FD55B0AB71F087F1AB790624C97AF4BDAB3
+D49F4CC2BBFA47965043F1BEA9DE1FD369EE59400363CC4354FFC42782B764A0
+788A4C829F99F1C06CF50BE5917BC17F4F312D853AB40661A8C84435F038E20D
+EB4B28DDE8C90779E8C97FE3E739A6E5F940712BF4574808C06CB8D706565A0D
+2289F475E1CCFBD350A91745279CA4C9007D542D22D19A8A5047C87C59D02591
+B10090F9F17866187EBAAD825DE991CE89B4311EFC70973084D0D961AFB3AEF9
+EDD0893E74A7AC24A08C06E95BD75A24B71BD1C4770B9BE7BF3B68B5D9D7BAC0
+4566A5F62FD32B7B66727D9C0419ABE9F0922F204C3580C5053889233DBC0727
+A4A2B5CC90D47D85F675C02357E8D4A97E7590B7AF4C1FA5DA0DD5354D59A1E4
+8E5D17B4DFCC54642396A4F0BA2C749018C3C1CDC50AC2941A5A6600FE5D536A
+59EF737EE014F0E787F8CD3C3831A142577AABE918D43B6369A5AA4A5A5BD298
+D32820E516611ED466EAE878BC005335E59DB752D946EE3CFB9106B7C54A25C9
+17532D302AA9D1CA3576758118E76789109440B2710D67ECB5C1F61EC1D83317
+7AB2DD82AD00410FBB56013B95F0C14BC651E5B2C30D91E80E95FDBB8A1542ED
+25746601536BA358B4FBF14CB27DCBABD85D9E0DD6FC227918D91B9E4AEE6A39
+FDA7649AEBD270529C15B4C633A7E3B5CB3625DB3DE53AD47C659CBC13B50E46
+614B643F70D896002D79D73E54344D9980ADE05DA7D8A765306592D32D5373DB
+3AAEA9C23AFE3EB405BC96BB484B7748DB79D286F49045AF5BB97AB6539D14E6
+DE9258C0F3DCC418608B8189C16C17D21FA97739EE5D0044F6FE61FD0C283DEC
+886A4F8B844164BC13703312FED0FECFC372F44FCB8C4146D0E7A39F83B47BDF
+1705972EABC49111A004BED9FC5F43F0B0B466D91A4946E9F778D8DD19691708
+50063FB9F07BC95C85DCE96F4BB210292ED757EC15CC4B4C9EDB4873B726435B
+79A50AF4DC626A2F05A9289F15611FF5635D3C04B110ECD6D005D46C5BA816FE
+FE7115CE28D6229ABB896FF059C86CA0D86FA8B95629A75EC53BBB815B5A3D2F
+01135E1059CD93608074014AB14B0F5C89300FAF94790120BB26D9F6CAC1C71E
+1B3A0652FD53CE37F864C5B6B3408E34A7EF0A5DD1AAE23354D2D4CB928BA35C
+5F115E3A8D891FFF98EBFE12F2D754B3A5AD0BDF3670F205BD777D8EF330FE2D
+BA4947E7202D7B507001FAA2FD46CD69032991177F4BCBBB15B9517305979D17
+7B623C8AB0DD790C895F090A2DF20CC9AA06E9AC44E4976361012238D573A2CF
+BA9B3E0B3E92A483260AA7B3969BAE0BAA5E260102277C8B703DE20FF6FF502F
+1FD5045C36B792B33E34DFD989883B57B9B07DFE5A740EC3948FB269A1D4890F
+C1E2A27DF0D8E80CD78AB86C66415F7B2AE026708C0360EAD88666BD790AA944
+585C0BBB7EDD4B87C142EDFC8E1157F10E5726F94D23AFDF958AB88010E84EAF
+EC04997ED6E5716B1AF7E383ADD19E2503984A2AEF45374541264CCE3409F1CE
+6460B02696F70D3B8DE41B2366354442EEF419790F7021665D38C8CBC7600C3C
+29B051D83C01E46261FF310292D3A8440EBFC67D26F86AA063B1963A9ED447C9
+7A52D9121D57647C1C902D5CF83D99D5CDE9AFBCA9E7C186DD179ED3E73261F3
+94C4C827241A8A53A0DE103794DF6469F49310628FB88868CF3ECE6259C3E114
+E16C77E293C11991C02ACC9F497140FBE4DB4D09C4462E60AF94115BA5839B94
+A72E8D3C0F2F8201AED322E88B2CCE586E33DF8DCC030FE5FC5E9BE14F68D5BF
+1F8E0DCF2B09E658F45626D525222D39807E8BC289CE0F4DF163F3A31BD9E4AA
+4E7BAB284C27D1CE48A5AD9D109DDBE5ADE48F0836E7C70D4EC1B8BED530588E
+1F7C89CC93AB652FC2BD99DAE4C094690AB8116BFAC0683D84E3736F6FAD3947
+FDC15727995CBDC5E2A8126DC63B38F201125EC12BEF195398666101143095A1
+D603F72AC86969EB79072A39D36C97D1D156EACC71DF8F89C995555E5817022F
+D25F97694E08B94C7802425C68E0F7D87D8504583D5C1C596A1C8170A6FCF952
+FC2D892052CA5F9D6729409116043DFFD64D2FEE740BA4FC4C8C17764B0329A8
+FE3796C59CE98FBEAF6E599978BB2EF597D4FA33F3CF4EB48685FBCA4DA279AB
+5B8DDF47144BC1E0987848066A58B43055AF9D458CFE5C60003DDAEDAA634195
+7451C0B559EAB1EC50378C2C78DA5D4AF13DE7352C8CC71F091FD7E5AC238C19
+372E0C5B78FA70A750986AC99561179452DB2E610134565CF88727252AA32047
+5E989290EF000B8FE97DD2983802E3F9F27DEE776A944A2FAE4D429DD01D32E9
+F6304A0ACA494CC43025C2BF7C8CDE6E05EAA9710A55295E0E031791A20317F2
+DAA6215966598A70D142C5D9506B4078F115D5301F4455B8EDA23D0468B2C193
+D069EB06607ACB29851A3BF7F93135A23D17F9C9EA6A7BD9A61256223B588F76
+D6D40B2F2159EF4CA95D102B07091F0690BEE807B8D64A5BB5372E22DC5358FF
+0FEDF34D3CE0178018A68395D73E747F74DF296A97FD6384FDF147E551FD19E3
+75B7414EFB6AF631BE65814011B637DFC7F6658F09C9852D1544891FED1F20D7
+4C8278284971F69CA9A18E83707FADD937F189F7CEDDB83603F87B3C182412F5
+C8DEC1086B0B26727289012F9B6E71642D0E9F5660E0B96AE3CAA87B6044C95F
+B219D50B7E224DDD9BEE7932C9216F14C45E73634BD84DFDCC0999AF77A1AA3A
+946628FC456D98472C2F324D016025438312A2622087BB5CCCE2EF601350C6BA
+18A2CF5F2D35A7AEA9482B784483135E803934DD8663B012C2E924813D8C7382
+1998A6C30BA62DD98324A2066B371816FA626ABCE7C86298CAAC85088905F467
+36936028C98E47DA7B31C74C07107CF66A803263FD3485087A1F435A35B9C124
+33CEF952CFE64359DCC2ED05373B82F677F351267142DCAAD41A2F4317E09C57
+B4A633A1CB5844F44001293A5A00709463A3079A0A983AC19CA28B923BD04638
+00E551E62F8982A62340753FB04FF9F045097F2277E753289ABB862D3D3E7DB4
+A7F06AB893140B23112842A046B51B5334637C649B04984F3C43A7B781189860
+21BABA2E9E3C4C2E582B3BB98E07310F14591426F4123DC1F60F004AAFA8B030
+7C210D1B54519FD49840668D0C4E0DDC55A7A1E31CC00480A9E27F0D80B202FB
+2BDC3A7F5909390C871E575387551600F4398CD38DF8438D922EF2F63A88C528
+BD0FA8E73EE9EDC67EFD47FAA7197FBEFF638A9C487B8CDE028A11B081190828
+BCF2C6AA17BEF5A677292342E9ACA85D3E1C45CDA42BE1DB06E67DF600E4300B
+39DD09F7962D533C884E942C4DF44082F5FC8B2A080685D558C419C27F538C06
+F3AA34FCECF03F06747CEC26F6064BBFFBF8D130462C601C069BA159EC365662
+C1B10E6531E08A297BBF3E03F24D69C8C87F56D4982AC38854FED8D90DF6B934
+18C9D979AFD8FFF3039287345055A2A5C864FD2F48EF75CA9D0B41C94D6B957C
+ADE7E398F9FBCE8CFD0267BAB21EFF0F53EC91D912FEC21C9AC338470A1EB7B3
+C232C8DE0FE3FFC57EFAEB1B245D11CA02C295FE6D7FBCD4C32D61C65B5EDC71
+C6E17294D465C535309722ECAE737B7B520331142BC435F90A44B2A70729DCDA
+73100BC6EED8F8F124D993054C673FD1E9157FF148BD448DF0B0B78494384F50
+B4546C7BC777F086F8DE8B00B67BFD01E3DB3637666B37D79557C852877A5F56
+28D7FF4B5DD7751A832D9FED7A45E866DFEF7600FCA5F4BBB3C2073D0BE69BAE
+B84BA24BEBFC47E0A36BBDF3BB4D326230C4F6EE43DBA2EF29FC3D879C2F0413
+C591BA99008026E5E4577A3D4D969AF2A01F3FC399513F25DA87CF3ECCDA55DB
+65742C3CB4FC311FD7D3A8066B5E440EEE04814A32B98FBE932F4EB521343133
+B11522450256F313B4660DFE5AC52214F0BADA15734B1D3DA55AF644C5F3BAA9
+268C7631501585D5E8336C35C6FC38FA5CDE757BCC7ECB0763EABB3350D31F69
+3E32601EF6A95DC9B11A669FCFCB9E48FDD4CB261C649A47E5BB95D1E2F7B6D4
+FCF3428152C3A944E036164E4FE9D4750AC103C52C9F6D896E3D5C67FB6E2A5A
+EEB441A1FF3F49E01162430B9385C9B3488C7F993123E79753B948C92159CCBC
+F4B97616256BEB40AAC8DC761239C35A7FF0458B750A7C68657042D1956D0248
+8A5A7E348C6A90718544C9B09617207C25CE7626AC60899727542559CC71BAA2
+F717435CF84CB9638CA289A9D07B99E9339A39BAB11EA85C861C4B73EF276F1C
+567A3CAF6FC0E0FBC13C5FDF0067313514968EA5C5EE05E84B04997B28BBA57E
+8090F8A911952870C7DBEB0806A467B4C2FFE693DEAC438EA00A90FC1A902D76
+5E47BAE7D0B4255593E8639AEA105CA12A28F71A972FC3B300124BDC8BA33782
+E854177D892EF1A4DE6A1597805B85A0B8B255173FC4C5D2654AF5A4CDC0233A
+8A50AF8ED5CF5AC70EE82E5D8356A0DD0BF640C131AA34AC866187FC64B4AF74
+34B76C51D3833883560B0B794BAC2403623B5140F7255C4BA72E909353CA3FAC
+6385412F0FAA161B3676946D8102B2D632B7792A111D81FC3158A672EC6BFBD0
+C3AF0878C723B3A1B8E08B585BB3A7E02189D27031FAEA07C3CA2CE057403C8D
+D9166437045BABFEEB7BE136DF4FADB9D2D30B3347B533F1B76522D686147F5D
+3ABF7F47EB96C9F88F3563A57BFCEDE29B08C50F5070C37E7332A6A04B2D7D27
+2074A5737684B4A5145815F37D7A9EFDE303FBBF61001A08DCC051795ED99EF0
+6B99C9E40D208188F0C45EA33C7816ACAE08D7B38E7456F74C8629384F3CC755
+B2CE7FDB648389FBB84932C1F34C01A97C4580D5255FE965EF2241F9061E7DA2
+FCE325DD099EF7CDFB4F6255C57EFFE7C584312EE4973B163DE0E417CB76AF63
+AB3C909A29E07B87184E3FF0F47497346185D4CD466765554805C9C99746C9C5
+9AA31E45934508E1D4807EDB3C15BCA0CB630B340B9856F0A294C2AB7C63BFC3
+9D7515BA5530B45332EE0E38B728907AFC9DDF5CA327F792BFDA66228692AEC2
+69121E75148C8DFBAFA9D10D6A377330C1DA41B3D5BAE8A9C4748B7742EF9951
+376AA3F455BF1AC4B22EEF6860E073D873847A60DE2D2530EA0FE02EDCC56267
+F498859C33C5DDF88FA0055CB3753A46C3CEE0FE4833054F1846DED1FDE6B379
+4FC148A07A11D8FD025E7ABFD853307BD5994057DA290BC274A93480464DE165
+B5C6ABA46DBE3DC5B97E39D524E054C8CB113E4C271D84C49BADF4A775002D9E
+0A21B08BE89974003DFB80D67C76FF8551CD89569EA85C2F01B67AA8D85A46F2
+9C0A90A476CDA840FCA8F5CC16BE05087A9260DD856F1EFE570DAE5AB2F84013
+03ACC71C906A7DBFEAD8070F37E7D4F409788DA6A751018BD15BC5FAD9127F51
+D3F04370AC1703E9FC6C55B24E064907AC4BA3DB7A70F8D4781619DFDEBE9113
+6851CFA4C62D14656C8AA72F36B12A913944067A47B37B3EF9A6AB74201EBD08
+B9C5FF293BA3E7A0C2FD317EAF33AF9A04B6009A6708C0423F80D7581DDE2F48
+A2FCCCF1DAEFF8C7D3337D0464B8DDFF7483DAF247E82F1CE39FC0A5B64B838C
+F142BBA147B8965D0C1F9CED6B2DA9BB5BE0B833197C1E54DAC90E7A27F6CF13
+1D368097C7F517DA41CFF93F93F584E3C31B8C335551D8FB76D1091442F3F6B4
+B8EE091CD1ABD0F02129C2E700B8E71799986A040988BB6BB7BB932AA45DFE4A
+5CB515060FFE743FE521D5FC0793FAA4464B804A85AB57CAF88E1E20F5C0240E
+E4AA81247A620A9AC58F1D298A89782F18AAB2579BA580A3F85558612BF4B30D
+EE5AB2810077EE8505960ED321CF9075DB7A88794562E36F6F4FBBCD8DAE6602
+0A139FEDA6BDEF1D17CA4FFB66C3FEDDEBFDFDE8D75EBE3ECA7FC90E2345D69A
+AE68ED41C8D63EAC9F7931CD99A3B6BAA876D011B9CFA91A792DB79E3C32BD55
+331753C8F72D63151FA0B2D096D28E531E59CEC8B42CFF7FA52EA0C70ADBE229
+957A4AE0639246A3576BBEC6933643963F13C7D3327F08F4983DC896F35A42F2
+50CE6283B2BD4436F3B23CBDEFEBF6535EC7C91E2F1492D50DCF2F910C02D726
+1127579416CA988643FA1041368EE4194A4417C4361986AFE005567A5E8D8B29
+81E3424EAA3ECDEFBE9BFFCA4A71DD53BE224100F6FE336AE23CC9D6C62AC863
+6E3241CB051AADF14C0E6A4A7BE4BA85D289363B7D334BE871336127BCA3C777
+A05CDFFE77CE4F3F5B237C9637CEB6851E621C42DC5D31A30C55EAD0D49A599D
+114221CF0DCA9E59EF09AA088EFA97AF4A753A0CF3E90048A296F22C8FA2D24C
+8AA1C7765361F0B5B4097B734AE0846E0689A310EE9EB8011CFB7858C8BADC15
+C11B60BB0402DFB488D6EB520D5476AE7D967A050536E7246A1250DD800AF627
+A662C7E7B7896D2440BFF372A7FA3B99AA4651BAFE5265EFE35DC18C446FD365
+BA87CD8BD0EA0FAFB542FF0BB1493AF41C58340719B20CE97E727A722EF1488D
+A9F937DFE88B1DAEB09F5181913AF6CC32E967945BBBE71DEAC1CE412E171B5B
+F8F636D8C235CAEFD90237A348B735CDFA73CD2D2790FBA8C8306A9D9B6685A6
+D2A58BE864DEF1E3E8152F754090AB29AFB1E33AD86A11251763E80C9C3A57D0
+EEF21F13AE637AE1353D3CBA44EE55D9914AE987A5B3FDB42C06EE27580E5E79
+96FDC4E6DBC7E53DC65F726A4F2D2DE336D39424343214C8DC6CC857277A17AD
+20A2048CD1D44BCB43B0289BCD0AAEFD0451CE8CC9A4E1A40ADD9195E9A91CB4
+AAFFE9D4C6D290E3A791556A94E68B3280CBC684B64CEECCB89D26992883553B
+66A5D23BD23AEFF204BA36B994B6F984C140D6F2E38FD2815ED9701B02841E00
+34A9A06BB73FFA1085E96E6ACEB0B1B5C7EF5B1200EBF3EFCECB122FC6DFB390
+44E7200CBB3DDB46FA1534CB9F1C9584DEF49992FE64AB859F2B6226B2613CC1
+26746526D3F21FB8361F101C1D90675C36482E94F860EFEF2876F1A306AAD958
+ED5132057F6CE86DC7BD239E0C40B29FC15AB5E30335DF4B40500E57D75F9291
+BAF161367CA82C877DDFBA88B59F7A44C441EB05B3999E6040DB26883D6CF4E6
+BB24664995150F689CE261483E96752CC28F8CC7171A00AB0548024B38EDBE86
+E9AEAB272FEFB735069E514943D19F945080C254FFCD72A0B3D2F40ED8800FF9
+7C0C77BB4BF121CB678EBBE4155A517B9FAD88291EA94D3D5732FECDC2DBAFAE
+F5866C53AA040A3112E45156B472B2D76614CAAA2AAC26AF3DC0C8FDD6CA64D4
+B379B93FDDFDAA4C35B9A71FCA4349D821E0A461216A648A541AF470F0BCDD25
+8F1DA045E152C5B2C5F33A243DE3912B02EF6DE3EFC7FAAB2B0A6E8C82D855A1
+8A566F2D65623E01D649022B2A87A8C7A45F38270637BB50BE42C710B92AB06D
+B7E1C36FEF219CBC2A639F5182F00EB4F186CDA8EA180E7FECFB495722B5B360
+21983394F1D817BA91E3252062057EE32A64F929F597D79A894D11EE87F301A3
+E5B0F006564FDC82DE4C23B48484FB69338DBEAC96C52EA326CBBA621735B70F
+CD2A18EAB46111F4208F250D44A9CC81835CB801970609E2D928130A5426B23D
+C9FEA421FA8EE8A8854F9D959030963F3E461289AB5445FA74008E16E09D6596
+E4162469888035779C77D062482590BE493316ABE58AB2EA932BF8FC1AB3C04F
+6FD492B6139FCC5832E91373EED99121266ED2C0ABC76DFE0EE49D6290268750
+B1D6478FD8544EE93E0C788A2EC24F2F078C3A72D52FB8145D6B24FF58E5E771
+E534259394848C7B25BCDF1B824CA3ADAC8538212CE5BC42AC6D5C46EE79AEFB
+0AA4966A4E5D5C3F93BF3651F9CF022539AD24FD8EE5A93D5239AE5ED7F927DB
+D0B7380EF046445FC846DE2AA569CEEA52B15D32558853626E513E41A41F2EF9
+9A89E892331F8026A44143144707256E662489693E0BA6F1DCA29F2A53615D31
+C5EF3E74E5DC41395092C4C56C484AA6424646B3409817A981726F1836318DF6
+2DDA4EC153413851437FCF54CD58DF2E31AD522AF622FFAF55B18C25103DAC61
+C5192F7CB2FA71B8E4818ADB22B567E0AA95ABBC8DC8EDE517D10292AB2FC822
+6A73BCA6D0C5A748974D2937ABC317F9D2281FC020D0D44685D8AD9517D2EB93
+7E2CDC328E0CB73D6C5DB115B3E3625AA7087F3E4A6FC4123D9F1D77866AEA02
+B0F396707B082AA41C0BC1C4ACEB5B8A390C6487B7D1698D650CEF866AF82CE3
+7425A0C3E914218C109650C869DD9567204890DB0802F5D3100C80BF5F3B9287
+5D0BED5CE6039688BB2D77B51E29935F6A9EB8FA3C577765C088AE1BAEE4E344
+17AEE54136913B83D40172F39619B83275B997EEB3560FFB932132F2FE7595EF
+6134B997A43E9A631CDDC30DF4D816D2DDD971CF0DD17AAAE494209AFD5C2718
+31956F1FCDA143B42D3CB6F8AA0527707E090E03EC37384DB3BC836C74264FF3
+2B3AA9EF8A98BB4AD5BDCB052C612191FD7442DA83563529082ED67F824FF06C
+4CC499246CAA241027A285E7AB4D8FAEE6C482B8F4E5B2CC3171CC96C8FB206C
+53E6B5FE14AC133C6025D706FCE0637AC3E4970EFFD6865DFCBD4856D0E10FC4
+1F5022ABBE1BD15DD75079D0529680F14AA0FFC99E7E165B7BACB5C6911FD7CF
+AD1A4AA86A43589ACB7D7839E56F824C362E8D4A5C6906E32C7522268CB0EC05
+04E3F347066083765226689DA04FC331A64F397A33FFE13ECA164DBD8591BABE
+51F90018DF1702CE31F33CC5CE586F59FCD0E074845D82E9FEB23BD3C7E6B1D2
+74660076D0E4EB0FEC858CCCC58145615006C94A9530F658CE7BF60FA6C8F7DA
+3E3C5BFAB6651A11FAB27E0A2328E19B67906757C45B57FCE9F19C3CF8750FF2
+97806901B0D214B70737574A10880B2F8AE2BF22C6A7679FFE5D1733C3CE8863
+95140E7F9BB6CF76C9B7AB7F649EC8767F27B2F87BE901D607A120AEBC362E15
+2EDCE7D3ED44629EC1435ACEAF5E4CEF479A68A11E5197932E1EDB978EFA6DC9
+52912F2BACBCE3649C69E33F246788B2A14A35CDE412A38E20CCC0C0181AF817
+190DDC59FE4C0CEE01000627377C32FC05562D76F6EEE92BA706AA0847897D7F
+062840112594E0D9A3FD3A7B4D18C06F00C75B26CAEEDDD20A4BD2729C190775
+10430C2F3CB06E557DEC36CFA3DC3A56A94F608C2B3C0FD8FA1CC0883270E077
+C574EEF34CD4CA508337A43C4F7C5650BCF9E46828A674D9F3ED5A21D6B3483D
+0850A6D55DD559219B14C60F2AC03DCEADEFFF61FE62BF2F077A6B9359946CF3
+464D00105BC2D55DDCF13D26C22C93A26562B4F9104801611CF7C6A11E2A697C
+F822E3D26C41E69F081A1BF679146AFB2178AFF604EEC3006CE0D911F9C506CC
+E06EF47EE7F8FD2163C23BE49020F27903DFC3B70FB3DA8FFC4146465B8C9238
+0B45030932CB0172F80EF136546E35B539A6D7C87157858E7DBBA5BCCA0477EA
+60E011A5DB69EB769FD171F4EFE60F669ACF0277FE989D933907097D738B10F3
+6100A9E677EA4488B7BE26194127C5D4F770EBDCD0D3F5C2383E46343B6318F3
+AF25D5E62638CF9B11D87A39D951174AB0E0E320D03AA805EFF0895B5DCE1ED6
+DCB26E4CCB6385114695A6E445F033E34E1E6B938E36D3C6196E27AAE2124C00
+72D5289904BFE997D3610825642BCBC66088079D68A47E5187B16021B517EB60
+A989E398AA0B0978BD3BEB73F6135F7C3D6ADAACD854072FF5777B7BFFAADDE3
+654D178DE0654CFA101EF21C143D0582DFCDD4F52F87569195C0B6F19FFBA5A3
+EA405EA61E755511B5F893C863CDFFEDF066AD77415338D29E142CAA8F9D81F0
+DE37EADC93718DB0F9D05F7495926A4F10836126A143311EA494EA46D1213FA2
+3211D41549A5A80D7803F811EB6BD5B53B963643834CAE1640368770A5AF1516
+B83BAA9C969F351A6DB4509AE017C706A83EB5C2DF2BF2882957C3E6D2DDFF29
+603883AE5BD1EDD7FBCBE1922741E9EE04D878B078BE363BBF2E87044BF6D566
+B99C3B4674DF4853E5FDD2DAC7818EDB8A8904F8C8D30F2485702861182EDC39
+FF3F1E346AAC0869EDAD39EEEAE682435CB396234B3A1E268FB4F9CDBDB9A60B
+80231B0304F33DB69C0228B11D05DABE31A90EEA70EDDC905FB308FECEFCD021
+F367E40E7D16DC4A79FDB86B66E614E1B8DEE090D655E13588A103286B2F0E51
+D0491E1AA34AF8EA285A1DE1A97C843BCBBEEF420B495A467EE17E9B34AA91CB
+793FB2DF4761BE4F86A8B92F5C1709E99FBF735D4E9B3E42EEF6F84BB47C9008
+613A350299881F99D3180659878B2AD299308527B2D05906A19A3389DDD1F065
+9785F5305F7C19ED9E3600047A748AE4A43C04232E625C44F01F115EB43075D1
+526B5BFC38C8EF68F715186B85C66B584619FED4531CA334DB27D256DED6A057
+D341CF27346BBD77CC9B60D3A5F7CF865B6644CCEBE93E2D882779190C3967CA
+572DEF8312E73E9E9017F78B9184CF52D30F5E69DC7AB18E25B2ACB512C4F2CB
+F7B7E7666DF517CDFC29D542F34F4F67F0CDCA8A4F41175012DACCE5083E5768
+DD94D4B0EA377A4431227586F5E0BFBE4C6A6696A0625DB3FEA8FCFE1F5DFE07
+109DF10DABE8439329841A24BE00C4F17861B7B99C8500FC3615C5946BDAE6A9
+3D8A8F8348D0208C6EC095BCCF353DB224CD7972E7677CDE845802650D5BD22F
+4458CAABFBCE8953A7496DA9F4905A7220E9002E6AA28D898F956FA63D410115
+7207772CD468EF86E7617F745006B99C1554FE2038DB9976D6AC32CBD8939E24
+129C31BD7AA56EA39FAC8A799AEBE20BAFAE475C9078C93C6C51A436EA39D57A
+0295881EA63BF9AF6103AF55D011F5BBD5B075D1D485D3FF824C89BACE6559C9
+D6C742BBF5878EDEA11E158A7CA5A06B7AAB91E78EA627107EE3C4B90D6D649A
+3341408055E004E4314BDB2AB58023FE93EB1AEA081C159888670EA494C62A1A
+489778615E327C7603A64520CC0A71A154DA8E38F6AE0A04F4F6A5430B2CBD2B
+1B5C809BF3117D01F131782F06E9F33E9CA8BA20C93A7ED4D96838F41F6ED7EA
+1093EA27BE35125200F7F0E5A17218D9182D0641173C75FE390DEE5260340A2B
+170F6982402A53D2DF09E10E717A58344EA8507659ED8910D61E1752446B0B1A
+7AEB8C466E8E51BF51AA51DD1ACD7EA9ABCA5671F338C4EECF8EB639211BC74D
+2B7FE9977DA9D6660E4A5DCAE0A74DCD19B303DA5F6ABCA04A9679A18AE3DF7D
+5C0F919C9AA563B89D1AA679803B09333555955AD8050A9946DFD281097C80FC
+7EECF688C012B342D4395FCB43CBC5C652DBC778E3E5F74F9059DD4D3BC6A091
+AC62FE1EF1D62E425F265FD62DC5699585C31B76266B15A9528B1C118474FCBE
+65EAB3CBEF4C0470A9EB17A0FC6BF0C96A6583FE18B59F4A07D07E8B238BA271
+9C50F7C382B32E5D1CFE1C2832C245FBDF475999EA6AD6F0422586F3AEB058E3
+39183893621FCEC1EDA6BFC9E87EC44CEDF850E722ABBD17091CDF7E8EE99D1B
+EDBCFD6DE472DBA69C63F41D8A2D0BA6479506D7D69C7219E0A03E71B4000B88
+6CD446584C8C2AE4AA151E40B7EE3BF0299BE3302CD6B42175592327A6E4B5DE
+8BB4A4F46242AD6B12ED3413322C1D3E39D9FC2A9A5B9801E07B9DB058A8408B
+797A44D22C6F9C681FFA2446A4CA6E4C54585A3F1E0DBD96CA27D2D2340728E5
+A883AB699BED238660008528C6872739A07C48365B1BDDD535888FC92BB8FAFD
+01B75D0A8F63375993A3023C91ECB82FB69D9EA08EB9C12A18708336B3332177
+E9405083562F5CB85CE43C64CF10A8E119DC7A32B2CD8D8A0B2D6F94B07AAD70
+7B8C18775A079A53D392AA8E69DAB0CAFAE23CA3A8D535E135BFB3CA6DB0A4C7
+46BA01A7E9F6344A5C0DEB9353271C8773F8541B8A8F43A494145CF648C50613
+49D72C0DC2A0F869EF50F2265CEC6D418F04DE0DF51339FD7EE09A72AAFC17C8
+D40CB37230C1B3C514FA844F7AA49EB00B85551E843134590E88435BC6A81424
+8A3B465429A5A8DBAB8E309A36B63337E27173E9C332E309E8C958A6E0DBA51A
+5233CEF1A6F95CFD831DBE402D10BAF689F8F52ACA86F846CF2B9E59CC435E5D
+68A592E4E55065D6AFAC20B1EBD266B751F2844F71340198164652681627A0AD
+0EA34A89817A554F0068B752B563F924A1627FF16E8C49808FAF82D6E4601648
+143D80DAD3ACA1BE33E565ADABFE3512C40D9EAA257903D32B72F326921EC388
+F4A49E143DB2FD34CD858163F967C52963735ECBBEAFE078321E4BF629288B40
+E1B169C870ABC7801DE0E0509FD414D986E5279972E143913253C8751AC2AD01
+F2A550AC9419DF7D7A00ED4B0EE1B02DDC28748AEDC7D6969444D8AA5C555462
+AEC2D7E9534466FC9B105B49B771B9BF704817D59858EB42ECA717A4CB2D3162
+4D6D002F91DEB03538C1E8327DA7557B68DA4B8A4AD7699434F79A2A819710E1
+96C99FEF3A79B0FE564E9E469B58DF369F7F2E26CA262CEBA10713E255D8D50E
+692532A441486BD381D47B20238802260BEDD1685087078491AAD77005B44FD6
+B5D1FAE86B17CD44883DB8FD06C766E9C81F1C68077E81F4A21DF664426AE9BE
+B6514BEB90E29C5920BDC5A9E3EA8E03877EA7984B70636997E3EADD05EA4E4A
+2B9D4EE06AAACDB55FC2F7858C926E0A86538612E6F35BB667C2D64B6A5D1648
+BF1E481E9889F94F9B9B7ABA988D2DEAC99FC0A10A7122A481AB1CA2BF2A1D3F
+3B16A8D8667F73C2CDC2F26A6AA074DFAA09AA49DE353582E879B881E9F69773
+6DE8608A7EBA4358E17101ED60DCD41BD753FB8285DC038E6BD67925C66300FE
+4F2539D11FCE5363DFF610B9FB1D3E97D421E733374ED424FC67766117E82F27
+82FAB3F94CC191F934C569912B3F82DB764C78178EAD7047F202662ED1FAEB1F
+58AACC46A1060641722AC4A56F17B2432801DE3445C9DDC80890245375FAAFF9
+4EB340988610DF23D02D495D518F51BC24110B1124CA66FD8E705954FA8945D7
+D10130C7A42DBCD399BEB0896F764CAC59BEEADE16E6C77D6BD204A5BEFB16FE
+53F4C68FD0D882D2B50F8F24785BD87A2594A22AF4492B9BDE862313F9B8CE98
+AA589B46E0FA056A73E3C8D3ABF86ACB618841CD5FE67FB58FCBB50A5E312120
+98A1B09E002F067CE2F2A06DF4D023630F008B77C5D074287C395F52DAE9E4D6
+F45E301422BBD32273AAFC39CFE0DC139FB1A8AB20100CC4A65BB2BD1614B504
+4CCEEFE659AA26E8DAFB8F6B4A861F43293DCD7A83086A2129C50AC534E7C8FA
+DBD198A32A2F734FA5AB270A5A7C7C0C8344EF45B80359633262FAB394E6768F
+7BB5EFB3435339CEAD87C682ECA6A3B4A1BA67DA9446644F8A3ADE0C09ABBE21
+12278E3D5C70AAEE4AE9CB52846BD17AEE224CCD9BBB013ECEFE342D96C3A354
+5EB92A8E06573D2138BF8DFBFBF5A37BE1E324E159C5101218148C2238A58BEE
+44B4725165EB39EFDEE4E61FB36B97ED42CFB5F86852F941D9D966DC3DC92824
+17CDDD362A26195222F9FCBA6488EEB78016B63E53E801E194CF5BFBA989A628
+537D239F5BA1E7DDC9C3C2EF59BDC7EB06FEA438D34C643DA4F097B2C12091CB
+82FAC8A615F87738551169112C2EAA4EE9889362538C46E8EFD30A0F5E96D065
+E0D271F3549F438046524050C9EDB6BFFCBD38EE126F0B1F69D5D9DC4EA830F2
+FE3A7B272696C6C14D309DF6700A2AD8887399D57E6D35D563B3ED7A5FD7CE64
+A4399BF2CCE286ABCBF47E3B10F6973729EF95DEA9DBAB4661FC8FDD8200428B
+F7BC3AFA2F87188D1BCA889370449E78F8204FE20E6E89CAC446F8058DF6D229
+151320EF42BF389C32B61F76AE18FC7B35BF5BE236E4D7DF2DF6A474BC9FBA83
+7D7C97C108237635A24249074EA7EC263191B719FBD6A2210448D288FE76BDE9
+323A4517CCF2BCB84B4CC044B7C6F90F12619FDEB15045EC5566BD350023825A
+1E71D1B8BE3A685366FCF528023876CF3BC67DA4706CF7B848E84117ACBF2B38
+FA3DFB3E1386B31D23D97C69D43C2D9BED09A496B39EF16F6DB460F384C0D81A
+C17EC05B6B9FC723FDEF23EFAC3C7A0D62147EFCF9CB598F155463EA862121BE
+AEC59D89A5683444B5D50F5FEA966DC9F4D44CC5F3D9AAD1465E828D517140A0
+684A24081BF6F7EBDFB879ECB1F7D0F89C1825F08F368C241A45186519A956A0
+B4A4A7D9135B888BDD40FBCA92E7EA99FD4D0DA729A5CFBB36B378FE31180A8D
+08E59F5EDA8035B0F64E441E6DFC84C60A7E105A0EBE1ACFC4702AEFBC5D5088
+426A766D699583EFB15C0DEE41CD7BC98FEB2C0DBA386A465B06684BE07159E8
+49AE4BD2F06570A1FAA7BD1CABB4E4FF38A04D016BF3B10DBBD70ACB2E0DBBE3
+0E78C57B72DBDB9CF9B4918E7E8DBE88936900312A3AD189CB74D9C9AC918A20
+F18F3C4B14BC5031812626E14616BE448FAE211B75ECE6EC72231DD95669C508
+6522AEC6917CC99B4061148B18CAF05245C4E35517B64AB8C9A725D319A41C35
+67863DCD5BA137B57B9006D20428347FBD94C8ED93C53E7120142238E2F2B55D
+8B9868819477302DE4C868D4F624D2A5A167B5AB97CCDFED54F83720B1421412
+280E6CFA61A1A4C30AF40C9F9D85700245FBAF37EA09E3EF84849A21EB33EB8D
+F0482C2E622AC7F7BAA72C2E65854D8D536322B6BB1666574ACA58032A2970DE
+9DE0073B76216E91769B6E86F6ECD3F2F6D0299DFAA34B863DDAA11E7A678A04
+4DB5A9128EF3F840FAED0A2EEDCF5C86C21B38189E1ECF870540FD562DD1D1C9
+71282862292FD85138FEEB0C160C892713A1E9426F79DFE0DAB7FC12623E8446
+FDD49DF9F80BA61B68BA5AE2EDAE2A150AEC6119E31A7676678DF247E0DF750F
+C0B9DBD80BD0DB10F687429A5F56CAC5AC596CCD04EE1CFDF4DBFF8AE8BC6F45
+F7BDA8859EFCCF171F988AAE587A595141C3955E51B424B06CA088C86094C3F3
+CB318D4CADC35BE6B691AA126D110FF61EB3488F9F101AF03971511B2FC61A4C
+E46D719664F1E2118173BC8CB756C08A4C9070F65D331E6BBB75DEE464FD5738
+DE0357DFDD5EEB3FE6AAD73E12BCCDDFB2CC09F956EEF43AB85281DE518C6476
+120A9280C4D1C924B1F5EA0D82DFBE64E8390889359ABD6F75E94294243C318F
+CB59B3E3DEC8FA09552B8511CBED81EE1172926B589140D3317CDB5886A78D0A
+6A4081530D4E4EA0C9478D202837431A56272197E6A36D67BFE1A09736162DCD
+70CCBFB7BD532A4F6399907B89366AC7BCFD9FA04B11441AE1366A4D0942FA46
+0E6668ED74107157A127CBBCBEAC69F98D6C02FC77D90A935FC681FD46E05B1A
+CBD6E12B2EE3D6DEA34C5AF41866E439D656ACDA060F091F6F88F448419CAAE5
+237772816F47FF2465A543E801AFA38AFC2DEF8E896452DE1D83A5044844D815
+8961220520690B96CD1BA6833815FB58763CBD52C9AD8AFD623EE6064B15ED50
+6D837E2249A513415CD91EA08B633EA96770179B095F585C24A06235D2A69123
+19A14ACD7C6A36615874EA28B7068316D0DAF8887CF5E4AA70825876908BC3CB
+00F8E81B02CCB8F194B476ABE29840F12352614C221F5AA654D7B284F8847E4A
+66CDF46D049BA31359274CC2130C080951B182F119EDC90B6638F0C926A62AB7
+B35FCB18E1E35C8EDD90750FF32F97C83169190FF8154E8D4DC26D3B0B9B1DDE
+DC4945090AA202224DA23D9BEF2BB171B30A0678D17B5303AC58393F396CA377
+815535364B9F3B452C7DE45BE9AEF360855F61733D3E4113EB17F68D9C8BEEDC
+0C3BC3F5CEDA6EA5B099D4E9CA3F5ACF6AA38342B40E328B5BE3F8232551CB4D
+705708CD160C2C08F873A32B0963621F7EB9C82AFDCD67758751752CD76C885D
+E30EC1CB3BC5350750889C11E7BC09950F2AD9717B83B4656A79DC184B1D51F8
+261E9F887DCACA4DBBCD3E18A171B27E700A525A1320CD5844ED1743F3591EA7
+BACE37698FDE18C61771355163147C2DC18F1D5238676DC9933EC2D8C8304E91
+AD13D5A34A6ADC4148E3BC2994C372E9988FB24C3A926CA1BAAC3569ECFB18E5
+B6A01042E8014E015B2E801F017A2C7F4F841B018031DC7FFC52E159C8D0F7BC
+BAAC07C77FD11502F7A2D3D89DEF8EFC23FA4FB56880A1ED3F1D87A4AA
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+cleartomark
+%%EndFont 
+%%BeginFont: CMR9
+%!PS-AdobeFont-1.1: CMR9 1.0
+%%CreationDate: 1991 Aug 20 16:39:59
+% Copyright (C) 1997 American Mathematical Society. All Rights Reserved.
+11 dict begin
+/FontInfo 7 dict dup begin
+/version (1.0) readonly def
+/Notice (Copyright (C) 1997 American Mathematical Society. All Rights Reserved) readonly def
+/FullName (CMR9) readonly def
+/FamilyName (Computer Modern) readonly def
+/Weight (Medium) readonly def
+/ItalicAngle 0 def
+/isFixedPitch false def
+end readonly def
+/FontName /CMR9 def
+/PaintType 0 def
+/FontType 1 def
+/FontMatrix [0.001 0 0 0.001 0 0] readonly def
+/Encoding 256 array
+0 1 255 {1 index exch /.notdef put} for
+dup 0 /.notdef put
+readonly def
+/FontBBox{-39 -250 1036 750}readonly def
+/UniqueID 5000792 def
+currentdict end
+currentfile eexec
+D9D66F633B846A97B686A97E45A3D0AA052A014267B7904EB3C0D3BD0B83D891
+016CA6CA4B712ADEB258FAAB9A130EE605E61F77FC1B738ABC7C51CD46EF8171
+9098D5FEE67660E69A7AB91B58F29A4D79E57022F783EB0FBBB6D4F4EC35014F
+D2DECBA99459A4C59DF0C6EBA150284454E707DC2100C15B76B4C19B84363758
+469A6C558785B226332152109871A9883487DD7710949204DDCF837E6A8708B8
+2BDBF16FBC7512FAA308A093FE5CF7158F1163BC1F3352E22A1452E73FECA8A4
+87100FB1FFC4C8AF409B2067537220E605DA0852CA49839E1386AF9D7A1A455F
+D1F017CE45884D76EF2CB9BC5821FD25365DDEA6E45F332B5F68A44AD8A530F0
+92A36FADB679CF58BAFDD3E51DFDD314B91A605515D729EE20C42505FD4E0835
+3C9D365B14C003BC6DD352F0228A8C161F172D2551CD1C67CD0B1B21DED53203
+046FAFF9B1129167921DD82C5964F9DDDFE0D2686875BD075FC81831A941F20E
+C5CD90040A092E559F6D1D3B0E9BB71733595AE0EA6093F986377A96060BF12A
+A1B525CD9FA741FE051DD54A32BECD55A868DD63119A4370F8322CCBEC889BC2
+A723CB4015FC4AA90AE873EA14DE13382CA9CF0D8DFB65F0ABEDFD9A64BB3F4D
+731E2E1C9A1789228FF44116230A70C339C9819676022AB31B5C9C589AE9094B
+09882051AD4637C1710D93E8DD117B4E7B478493B91EA6306FDB3FA6D738AAB1
+49FBB21A00AC2A999C21445DE3177F21D8B6AAB33869C882613EA6B5EC56476B
+5634181ECBF03BFEDB57F079EACE3B334F6F384BDF9D70AEBD592C8ECF21378B
+54A8B5DBF7CB9282E16AA517E14843909339B5E7C55B038BF3BB493F3B884A1C
+C25F9E8FB912CBE23199AD9D2C3E573727701BA301526C66C3617B9514D6F11F
+11930B1D97C17816C85B1BFD9B973A191B33CC3B391815AD14F1CBE935942AEC
+D4004E6BEF379066FD72209DC88D2E634E79BCC2B98C766CBD92C561F2703F8A
+109E6C6CEC7B866F2FC7ADF646BF492E520319F3B949AB5D84AE990B33344A40
+3971F58DFDF8D8D67FA0B8F2A0D884F8C09A5A721319B911DBA0A35903877343
+C37BC36C5EB32353272D1E6ED5FCA611BE319A7E1E842CB7576E7DF1FC463519
+B85D3094EA190489661C9A6924337A879A29063F1762AFA0BBBD08815971E728
+CB2C8CAE25E62BBFAF7B596E375299476767A362093267D97F7F52B6D8F7C47C
+613225A52E96D6694D10AF5F06C414626F986490CE54408E2C3976E51179BAA1
+71596576AAB6C5B1BBB0A165AE62CE4B89E714ECAC63E1C0FCBEC8208BC3ABBA
+24A093FA7C18282C6EFC072D6C6BFCCAD5F6F57977892398A1AD12E26AFA9C60
+F076C22019AD7C84DDE974170E46E3E3A27B854759F4A3B65A6A783FF2786289
+318BF08F02EE75C0EF296858C8304F3CE2195B80CC47EF9A79D4BC2E009D1058
+DEAC87876CBF4F08022858D4A0BDB775E5B7633627A8C0F86D06D95B230B9B75
+7118169DF9A830C457F8C6DA1BF6220562FFB35F0864E761FFD3259971BA27E1
+5F3AF7502046637CDE99C01B596B38CD5AF25BB785F544415BEA5FC4BDAD0107
+583CCC690113328486E5E67F7230458F31E1849EF73CCBC310DB3E9D738E5197
+B6486B1930FED9C0A10A810C4F8E06AD67906D9597E139B03074904D4A187999
+52F6F55580707D66DAA6E1F2B19D79DC4467D2AD598026D356DAB2EAA6D5482E
+19CE672CA396D75C9628568DC7C617FD67EA553316EDBEA9F8D9E3403A8A0670
+D9590DD23692E0989DEA9A1FF67B6B68375195B53A573DE53EA3329A4BCCE1FC
+9E9D3E3DE4F03089ABF5B85CEC8EA31FA6C945F7CCF7D61DA5E4A50A209137CD
+A73FC595F0D2E9DF160F724B0C0C8B7B2221BD610E1730B4B950C1BE33DF3757
+B23288B08A961D0EB6E06E4B5EF2F99890304DF81FE059F53D034A4B79B049FB
+72442BD31AD76C613643B51E156971E26BEEAD5D453357219FF83B94238F73FD
+F32A36356A3C6449D6EFCA01F776802F24636D7C1D10DD57F125E88E6E0AA69C
+13A82C1B191E29BD7F94D31BBF034AA199D6FA57D5467A2CFE3CE783B53F9C3A
+2CA7F4E66256460F9E1DD1D912FAA0A7345EAD0D2577620B4213040085C18CAB
+5C56FE2A815AF27C813B1CD4901B7156D3526F2DC8A51067E74C110C6D57229B
+760EEFB5E978CAE8DF456FF51D27AD85EBB10033216EA3FAE0DE6E11F572BEA5
+FC803BABDECF7096CD56576E61388F6AF34515E0B8D1F3F6B491EE17EE25D8DE
+7EA1793C5D8D18F94A34890B546A6DF5CFA6846BD43F47FC898A96DD1E84B733
+32A513719292FC235CDC08A95EC1644D9402FC275E1D11951CB50C62095B38D3
+1BFD77114BE7F91846DFA6D2499A6711ADF70BFA46FBF5B04BBBA9503E3AE30E
+8B1D7592E58D140528435697B9074674808E40D601D742CAC83BF39BA60233D1
+CED22304EE91FC92D1D60EF68D06FCA2BA98A3F11B4B11D6901A00E0DBAF7B4D
+F45098FE83ADA099D10E668AFAAD5002ADD0D820FDCEE6B0F83A0F8DFC7DCBE4
+0B2AEB37B791AF9B3DF1D3B04782BC028BCF2A9AC6C1019B13B621ADBD728DE1
+F16142843A6B68B0ACBA45093BAEB33ED2EF69D54D89A0BA978150167050CE41
+4F8643344B740919B92F0257E3E62B6E55138F711147E3F2FECF34D7252BE8B5
+F8D5A0C950D21730A8B5B5EF818DD4836902D6325B503881BCD00F23D712F387
+DE27C05F9B6A3CB474ECDD076A54C8EFE7732349FBA38D63D0DBCE4647C65923
+5DE920A5150C7F0B4387BA36C5358B3B04B42E5DB297EA71997D84890B3B3CE3
+A0DDC455B1F39087609B46C25E3608CC43D64DC0B5CE97E8258CCC2501EAAF40
+DE349DD1807556008D63118F0AB6EA8BC0043574A7956F92916D139044B0400E
+9811CFABCACB34602BE503C56A1124E836200AD19CFEB1D305AA5C5D4289194C
+7CF1B454607C347DC0F0A71C2AADF2FB3CEA615022C6A7D9D5589B27DBDFE226
+5F341E7B2F35741A4AC0E1D301C701A47A2606152C4C24A6666918B6770FA9A8
+9BE60C266D7C9210E693B094AC4CC3E1998115646ADC922C646FB6E27DFE9EE7
+C6DEA67C5B8A06B5F626FE8ACC047FA3070184E708BD3E514863D0EFD8AD5BC2
+A1351ED125F22671CD56935DD9CB3AF324B9933B4B2F6DD5438BB0543C6E6BF0
+5BF985984FF00F2F56B38DE92815349DD7E3D7780262849F104E1AA360D72144
+27FBCDDA090E1303262C8026ABFE23EED8D7ADDC2654C270B4C629652738732F
+B717D8DF7D08299B59384F15EBEC3BB5964D6D2F4042869F6089481A33A30DE2
+B54497A07046959B0BAD4A23727AE3FC2F628F6D65375E351C7952C0DDC2D014
+A95D4AD96247D7CE8D4AE7892B5B9BFF94AFD240B98A58409570D19915CB264C
+3AE1CB4F64135E11DE4084D2F113A9E2B932BBA12322DD7EEEA6397C80CB1A7B
+5A86AF26C8A50A19BEBF170FAEA1C4CEA34D8DFC005EB4960BA426BCBEDA82F7
+2F935D3AE2D7B7308B1B70546692C26F9D92FBE3EB649988EAE8E2D465A616D5
+63E8E93C556D1C182C7D27AAEFAA816F6848628061DDA1958FDB2FC225A78287
+E97260B2FE4EFD887818FF5CE1C171147ABDEB05C7879AAFADE13E2489D4AA26
+F1011E06D61EBB0F61FE6F1459875983747DE7724E3D6487A7843CD8E1272AD7
+566899C9A74E941C9F7B0B6B110B02E8826E478922AF41B907AF9505DC39266D
+1345FE977A5D267FB8B964977B24BAC88794AD9CE329835F65B482CAA80E34CF
+942AD0D93FDBE5A1CA298EF78CCD13D909C3CF6E01DCFC24583B5D84D3A22153
+C5EA043B5F4F719A50AA25D35D3708004C6160E6783F7D4F814A5308601D06EF
+6877C82FD66FCB2F2317CAF6678D3E4216970E5315EB4EA304DAF18CE282BEAC
+1044147036EBF9047E57A88C9C6DF876B3A9D953F1FC4D177E4C89E233E6ABEB
+ACC64A2D18CE3924E8BE9BE67721522B94CD58F3C9BDB026F64EC27408345EB2
+B11691032BCB360A34D277BEEBA7169AE7A842317AAFEFC78254499C0EBB353C
+38F319FEB6F22E9F6B6E012ECADDC43DDB08FF99A6BF62BE46D6315206F5DF3D
+39C59DE572EB02FDBAD56F7CD44B3D1BB31FD0280B12D215C5317DAECC658AA7
+69FF152F4DE6CA4C99B5FDEDE068053FFA125E7EBC85B4FD8DD90294BC5D4028
+00D1C851F75790757FBF7F5986F1CBCE26B64F38A845C1A0CD347D17FB47D623
+7269FA6697F6D6198050563553DE5DAC65F15179E2FC9C62C0B90ACC8AF0586E
+DB66486882D59315840FD393D6E61B32A0B95BA02A0DB91A61702B1B4EA3DAC4
+424056EC45306B7560704D0A70F235238AB36A6109A4A934B4FFAAC9CD62D5B8
+778BDCD0B5F7BF8224950A2657EB1C7D6B2A2D6140A3AD44A99C335146A20175
+0C3B12E01D9D22766499F23D26B45BB6CEFE3A66A84C0B03BAF8464748E61684
+6EE944D4C72ECD5645BF3870A57A3DF38C792E656A88136254AABC3C7E3C562E
+B100B568A276F170B257CB99C8BF0C3E0903D80ABEF3279F1B2E2DFCE382F010
+9A3EC557934A04E971BA438D2AF8ED1875F796990038929575EC2041EFB57163
+D9F7B3346CBB0BF700EA64FA52181922C49ADD3BFB81A5BFCB6E7042CC4807C2
+812618FA1E6E1614B2AA6351E559B3AB59D8E3741F7173EC6966A786BCD3C5AD
+60EF1E98AF2ACE9881B0D82B9F5920F6898D850724931D952ECFDF2597E804F7
+21B8397F58D8B37A7ABAC94BC50CE1AEAE4FD3562C20D220C4C29F5C8DD44155
+E82E897F2C32FE50C71409F2E172E2BFBE98B5518699411322987CAAAE96A8B6
+2F7E95EB271B5AE838A6F4F82FCF944A12663C05CB0C06E02CC191435312C1E7
+F646A7FB5BF34F147203EF4080893CD331D4E5E6D5BB6687CD5BDF23F1F389EB
+3AD8F881B62CF1DA814EAD754134AF317F4CAD4A436E6070A3CCA2425A2A63EA
+63E8A26FC8B8E0DB850F6F29685C032A6F3091B56D1CC3684718BE25232B64D5
+D96D29D3A05A71DFCA74F501CE48AD906F362EA31C8E20340DC76EB96A033351
+F0426E5D2715AE88706CB90868701291F9A86A5DAB8856E86433F506772373FA
+6A731F568D2E64AA1D92484B8AACBADFA1C712048B6D6EE57C62EC9DE55F04F5
+F8EE5A60217FEEB176E14E4B6A1B4D2D54E51731B195F25DAECEBB06799BE4FE
+515FA2EE5EF5CAF98F87DAA9513A2802C7C310DD12D6AB23DE47ADAFCEA1274F
+79329F71AED1A8505B31BEECC447CCDE540D69D361C37D5BF5BFE120E162B7D3
+56077EB5FA5EA04003777E838DB24422FF5442B22F01C0440FB5E2AB8D3AC425
+94B4BE99F93CD6F8168BC6A9D7E77C1636D3A1333D2D773FFE427FADB4C57A50
+79F6E6237894B709872F30E55A4DAA7967C890E427D4B59E272A4720E8A1FEA2
+E2196AE09A829A61EB56E7B02574E9809D79CE985FDDCC41FB6ABEA2CD50DAE4
+8407CEA90407872424FDCC8DD80BA6883C8A3F9B683D9276959BEA549F7E3981
+34DECE987BAD43891ED866765837D307472E95E9E7827091F20E40B3E4484921
+A68D26DF07CD19F415A8766CBBF03391909EEA7234C530A32B21739466645D59
+DC0A4CBB52C65240963606C25088AF610C5F411D69D89634AA182213AFB8492C
+9C8E5969701266A88E4AF39948E9C53B1D09B5CD94E5711A416E773263D7CCDC
+0C1BC7AF1DF6F28CDAAFC1797F4414A52A19188A2F8125F49520E373DB941D57
+9C99055BB74A392B42623097462E88DD5017A0AB39A4738CF9F1EC3E6E9CDDFD
+0A71B9EAB7C7CB19782F2428402EDB928DFB715F20C72CA67FC83D19633EE5AD
+86953558E51067E2687760133FE461D1C0AE354626F4847E6E2BE7B637B8C0D5
+4AB4D9944B8D5C0B9F30D3F76A283CC344579938C7F78EEDC409989B7AAB60AE
+8E553C42FB06D786DD27DA19C00BE3086CF745E31C7C5F505DEA7CA089308EFF
+5DE7292BCABD91FD3A7F2D2A027FB67C8CAF411EDA6FE935293B0931BD850653
+D7EBDE12FDF77469DC05107870122B0F758414E47FC61D6DAC20F87ADF63AABA
+92B97073DDDFECC1C93FE7EC77ECD0DB832BB4DC1DA1F2C1FCC46754C5EAA4E3
+4D6713658E02E8301F190321506B0605BBE15392E3F7B50CB0BE0BEF51893CB3
+892CC64546D7E541A043E338ABA25CF16E0ABA05531C6B08F7AAC28E33B14B17
+6648EE50766DB332D17B7AFD768B8C6C522A99A47C91DE97632D353CAC272974
+FA36B884737B0B9D216BDF4740D8DB1E7ABD2B46F910361CE1C7A38F6B9CD14C
+4DCC16F81A152C77043EEAB554F4DB656828EE0DA9AFB764B5372CE36179026D
+D857DF6A3C5C1CF13D0FE91A87B48C76118C803B8B10D6696C1E7B01C0773D66
+8D1B21DB17A55BB2C2068790493BDF985F057615E6EECD2077D4463B57D94C99
+CDC1854A7F9DDC8E5BE00D1C6A895BC92DE41DB55A64398FDA9CDB5A7489287B
+C4FCD7207C238446A4CC9E8D56125F377A9A1BACCC116BFBE922EA9B92A410B1
+41F0C04456CC834FD78F91AEF083A0147B7E5CDBF55885B1889245754A0A6548
+777B371EBFB29B7B3496238BA7D6227BC7FD938AE8BE355DDEC179C937C817E3
+9CE498EB7DE819525A6E87D60CCD7851D8D5FFFA236E05775EFF6DAF50308489
+0D848C7C910CC8E63A82D86E11E599EC6D867B57EDDB34EF1A7BC136094D0D20
+F04E2B8037CEE17198435D84F31354BC22EFD8EF480B2F2A29B39675152A43C4
+E06F092E86BA826D08AFACDB385EF3B4F98ADFFBB9EC249C7EA22B83C8B0E6C0
+9CD9075BA1AC8FDDD2FB55B37BED12FE6740F07465A59531D1B34A6EDA5B04B4
+8649EC7C88B7194D163823BE23950D4751F2AB5778A4EB398BC25C98AC111513
+94F8DE4A28106C5F133FB271DEDC61DFE6EEB1EE5C123C5AAFE3D0CF817DAE65
+A28F18E6695F7CEA69655F4BAAA9A03BA7A89AC1F3F0261456C5906719B24AE5
+459BC329BED8484AAE98AF0E4B636D8AA8838BA448BF526D4AF2008374325BCE
+E5145C0A400C4B15D75F2BB6191746523B859605CE7D8A0703D6C3C9F6208B2A
+82F6F77A0CE8D59F6572C272FCE60873F84E96B622CF213FDE629D373039C8BE
+0C1B1F42C0596E429912DFA4E37E4A7B223DABC399CD6FECB137CF040347E577
+D65C7E49E662807F36DCE94FAB6B73490C07ACC0D73AA66709BAEAB64BEF9E3F
+10C108DA06F0EC4A17570FE471651F7FE5470AEB53CCEB5CE07B58193598F874
+C3F7B31A32756794042E76718CEDBC74F3DFC5ECF4078673C727BB32ECD36370
+436250BA1DC36B6664B582D7E7539E79B4935B748931C369CA375D1F4781040F
+1A9E1956C7AFD884D5FFB61125C31DDE05D95CA1C9CC3E746DDE9D85ADA9B3C7
+7243F1522557CF7C4675391C19AB9B82F1948A3A80C077DA5905E8B9C509BEEB
+951F36B69B825E5730DAE1C983ED1EE933E1B71E851CE25E14006E82BA922221
+AE0BA43F891A4BF4A66F0AD26F7693CF1AA8C94D8320CC7C3529E07992D942A2
+BD4E27579548BD9C3EB3B304F40B296F427AA05C9CB97593E5069941ECBFB4CA
+53E2F806D9DDC9D679F6F87ECA5A66F3D7765EA73E3433C7370D86198B1613E8
+F145B15E747D1C4B42E1A8C69B0573E3A4338CDD6DE1BAC2F759E33D0E213ABE
+AB3A4CF62F8B5BC931F4B3B9CC492649294EE5ACF46124372696E9543FBA01A4
+E70F63A42D35E9E62B53D070C5768500B274545F60B35F574B817B5BA848D3A5
+0E9B06A4B1E59A890E204CF141B8F7F3C522AE92851215D324E6B8BEA940A103
+D4B2B7C7E2601610DB84A79BF940AF374406E53775556B31328A74BD3F00F98F
+85D76665AE2500863068ABA0F02C9B0FC0F4D6383C62207EB8DB3647529B0121
+2D75568681B7ED11091DD0F86AFE89601B04BE93094B469C3100BC1EC0FF1FEA
+D35E2EFCA9427339B0C341AB9A099921C471D0EA17C448CCFA52ED8A879CD5E7
+99AA954873628C9282EC12DE5C2644271EFA8339B8B2ACFC4804FC3FEA3AC405
+9E9987CEDAB14FBC9546A3B46C4DAC77CDFD58E4D5CD511BAB9ED7F92960F88B
+4221D088004BE1055061DE0BD83F624D423F6C9C147015A52283F661EDCDB211
+5CD24534690EACB7672958B305340046A133D3705F6FFE0BB81BBB2F66CD1F01
+116D1C1D2047CDB7D2A33AF047233247F2581AB2356A262D57CFF2D9B9DF09EC
+3E9B4B57B85ED314677E94AAC5765BA2A0ECECB5C72723505D953AE0937546DE
+8FF18D112CA916D55F3514058D270FADE056FA8719C85B637C23A49BCDD4B042
+0849D6B2F3121932A9E314E1AEC55BDE9AD9EDD0C8490C423F47C34515467AF8
+C5242F5974FD869BE04B5642C16BB5BE3AF9A37E5B7A1A20F2E1F8E4D12156AC
+A99AD926F36DFFD231AB62A90D41CBB55F1C4394DE2652F294DF3ACBD8B907DA
+AC26028B15A6AB99A5D0C2DC39EA7D150518E12FCED62A9365D66AB245CA516F
+EAB4E5B109C5ECB6B18DB8B4495FE4F2B7C71B02383D973B3447B656A6128E71
+A8E7ADBA21CEA3727C8A40C95842C0036EFA2F6C98EC2333CD3DD311CD5C779D
+06C20DAF6AAF17F29A835D999AE49CB742C02B9F551B1C65A86BF7757E7BEC66
+D70472F7385281C1DDE6AC7D27F8A14271280420B7DCBF532C0BA34D970D8675
+CF3BC8FD6F3D86C2E0CB13AB8FD2C0E59598BFD1524A63F494C944BC165952FA
+40322522AEE88B8A0CC7BBE1773A10488683827A53DFF2E6A2A4F8382DB0445A
+ACB0AA3BD8C2245517680EFD0B93BE32C3059BD2A8373070A13532A7977A03B5
+5F7EE00861B03D1648572D4D7D5D12E84E933C9BB5B54C587654C62257492E54
+66C7AB8937E4C9808CBD03CF318A09A1996267E2BB2E1EDEBF19D7107DE13CAD
+1D8636061203F80975759AD726F4A2B41DE65A534A3D4D8E9E38481891E7512A
+6B0216BAC1F8C7C865E3064B31210741BE11E8A726F1CD071D8FCC01705214BC
+F972540C6625323FB839A7C3C2B28A0ED88DAF8D64D3AA96B9B1743BD2A78AE0
+0592CE2E942E6A36F4A352CB4853100DE02FC9A658CC94A23B2AA532DE8D6F92
+BF183DA241D6F63E4CE117F8E2633AE46E9A1CC5A89D3463CF1DCE3DAFBBEEF6
+CA4451A3CC49345D2ABDDC1BBF79C603B9EEFF988D32A31DACBE9BFD43DB25A8
+8E72927E5CBD35666DA1B14A4C0C9D91AE15B3E2DDCA3D675603BABC34074634
+94A4EFD0EB8B5FA72CBFE81C6D782D1AFA99939E028070317BAB5D419A99D298
+E1E637160629B4F988B44E6A0C2CBBE7A8066B95EF124654A97E2AD58A2CECB9
+E82413267998B892CE1CA32E38011BB0FCE14DF76CE9B7921655A750831AD933
+5ED8D27DC4141CF6A5090CEB392DF93C878B6DDDB5637EA6D48441ABC93ABA20
+1FA1BD3A3C407E86F7A60AC57103FFD9C964F48C2EE0815BB84E927BE48808ED
+223B80E2404C1D80A07F3C8FE39481D743584D9FBBC2B2A6F401D376011E0C0A
+9EBD5DB0675E8E15FE0F33C43118F49ECE3E043994A735718B5D877E17DE4941
+CE43050C6824E56DE4D1E3A41BA4569EB190204D75362D17D3586D0D4278C233
+EA333BCCAFA1D9E4BCF505C7A5D6408EC24B1BFC585B81B9507549C4B68B0A61
+8E2558452A1C5EA5B923D98F9A40045F0341FA21B51B936351ADF1DB6EB8D651
+7BB7188E00E026A6C16D34DE20147A2F9F5ABBDD1A5AC2C52F1294CDBC28C0
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+cleartomark
+%%EndFont 
+%%BeginFont: CMBX9
+%!PS-AdobeFont-1.1: CMBX9 1.0
+%%CreationDate: 1991 Aug 20 16:36:25
+% Copyright (C) 1997 American Mathematical Society. All Rights Reserved.
+11 dict begin
+/FontInfo 7 dict dup begin
+/version (1.0) readonly def
+/Notice (Copyright (C) 1997 American Mathematical Society. All Rights Reserved) readonly def
+/FullName (CMBX9) readonly def
+/FamilyName (Computer Modern) readonly def
+/Weight (Bold) readonly def
+/ItalicAngle 0 def
+/isFixedPitch false def
+end readonly def
+/FontName /CMBX9 def
+/PaintType 0 def
+/FontType 1 def
+/FontMatrix [0.001 0 0 0.001 0 0] readonly def
+/Encoding 256 array
+0 1 255 {1 index exch /.notdef put} for
+dup 0 /.notdef put
+readonly def
+/FontBBox{-58 -250 1195 750}readonly def
+/UniqueID 5000767 def
+currentdict end
+currentfile eexec
+D9D66F633B846A97B686A97E45A3D0AA052A014267B7904EB3C0D3BD0B83D891
+016CA6CA4B712ADEB258FAAB9A130EE605E61F77FC1B738ABC7C51CD46EF8171
+9098D5FEE67660E69A7AB91B58F29A4D79E57022F783EB0FBBB6D4F4EC35014F
+D2DECBA99459A4C59DF0C6EBA150284454E707DC2100C15B76B4C19B84363758
+469A6C558785B226332152109871A9883487DD7710949204DDCF837E6A8708B8
+2BDBF16FBC7512FAA308A093FE5F0364CD5660F74BEE96790DE35AFA90CCF712
+B1805DA88AE375A04D99598EADFC625BDC1F9C315B6CF28C9BD427F32C745C99
+AEBE70DAAED49EA45AF94F081934AA47894A370D635D93B1823EC35EB8316AA1
+86031FCC99F57CB21E8400E54AA474B57112F0D4754A16BEC19117E9D3638986
+0777A71B135CC18E20E193AE6C2BCD89F4A27516DBD2BFE69FF9920D547796F9
+89E0825B6BD5F492B36AF136EA91B826501ADB1979A4204B2CB5C0517F2B9494
+9B2077F316D2B3DA256C99F7549E6BC4B04FE12072B09B4F5D482A126AE351F3
+97DB85F3026A793B51E6B28B54661FEB087F011F0BFF67272DD1E8825C180723
+22AE77CD6166D2605D0C0F131537417CB60086F08E7197AA916D590944BD801B
+DEE8F29FFC516E11396CCB8395CFEC9262E22521882DC0316B0A129DBFA5FB57
+E656890C2471675E0566FE461028FB05532E274E6DF77E7D320D09B2203BBB5A
+8B185B66B2F8A18A49589C4EE27596DD56260D0D759D2A12CEF7FC3010BA1B36
+85A2FD45129DC01A0C7570423305C25D957DFF9215102FFF35F428C823D549E5
+014E7F99ACA6C10B3C92805376D0F3F280D65852CEA54F5CC9DEF9EC1347824B
+0733D3341B34937316E77E952AD9366D3B2ED045165565F07CB636385E5A5911
+2620E185B105EF6C93890833054E05B6301137338A3F1D6AB2F80095E57AE60D
+6E5EE2764624849978C811EC38E014AE4A5823734C5CEB2BC22DDA46BB408D00
+4F25CA8ED287D35E26A4CACA77D2D4B986ED2ADD3BC0C3405741CAD56DE28C7C
+68E8944967C022CC55907B3DFACC1EFAFD38D3EDDA1AADB6E2C006ECBEFAC8D7
+18ED3C46C331623D8FAACC6CF9292B8F1B407806A0D4808F51A5BC97FFF0937C
+8FC6B9DAF4130A40FF5214CEC2D7BCD8C0EC70B1733E3155CB96C5A32035DAA2
+C367AC03979025E1135E6929E235F19AD30DCABE17EFCE3C42F59CF46D4EE452
+4A220676084037B8D6F5AEA036BAF33261961C9842FAE0A26A320DDA0D8B86A4
+36B1E50A7B4F149CB9643918D69E27700F3F3BECA08C8B9FC0747B0D4FAE8B6F
+A802B4F08B200805DD1799CBAA4618C9D1FCE8E2839DECF52B20392AA8ACBF8A
+87543AFA0E72EF0A7C04DE9F68D85ADD5D810FFEDF82E17ED1753E958F867F07
+1538CF1F03CC731A73A92A90F104B57D45F5A6442B055FA66A6BFA3878BC6F17
+07C01B47BD24BDB1F9C5D52A25924A1AC82894C8AE8155E4C78C790E19C406A7
+70C1219A9C9F6C08AC0CFB4E055A7ACD8FF8B9E1BA7B85C1F88ED2389DBDC290
+2414DF53F8561F23E7BC83D4FF83FC07492700A03C47FAE22BA6E10C80AC11BC
+97ECCC7D485E1C5AFC4FDA7C8A8290DF461F0EE0C191DE202622894D164F072F
+24CAB3E67BC1C0001AC938DDCD87E3F02E4BFA80940A5BFEC6FD53019EB7C2E4
+26552DE7FC4467EC5CE4C0B9D440007DED25B4BEC7F024F90DE3BC2674E01C38
+BA2D740927EAE958AE1258D4F9AF9C701BA4C4AC010ED75BE7B067AF69395D49
+41311536127E61F93E5CDD8FD9D03BB4FE46EC94413971B4C23DB6D637DD681E
+96CFF75295593915E4CF2152E0C281C643D086C4A8E4DA03714763F848E1AA92
+030B345C6322200152C77DF39C1235527C72711B1D2167DFA93AE8AED3911C37
+2E6F895121103A7A97018F4DD19EE7D69F2D2BBF8F319D66126A454FFA4DB758
+E73060D0EC6AD1B8365DF84D7BD25580B4DE86E12192EEA66BA2B399149B31BC
+C68951C8F8E69DE4B9ABB841A0B3077F374241F268AE88FB56A458940AB3CFD6
+8ABF5E8E1A5088FCD1C3227AC67144145D2DA1CCE479324DBF3E39D23B3AD1FF
+FC8F1B91F9F76902C715D8271B94C2D989CEB777F12A741BECE91AC1E4DD1B27
+EABABCD25D54AA5189A6B48F829218539B822DFF3398B87F1C326DE4756D422F
+6C5783E7472A9F3417A8877217956365F53535812B8EE11767A3B7D9C5F7CD96
+2B83FD2AD39E76B1355956F4193A1C647F00F12545E803CE27D45BB5D5DE2BA0
+6773DBF8A5125B66C7E889E603DF55FBDBFFFFF35230D81F99A1EE22BE338553
+B99D3355879B3B197F2D5706C1C43D6EC801F5EF92655CCAAC00B98E54EC856D
+DDA25978A7F156E79FF1767265221C9ADEC72EC9979859347B4D1ECB2C37C284
+249D0D35B687A7D2CF5BB45B3EE584930B80BF7E9613EFF94AE754F9BE1DE776
+AB92E843D4821FB3A40EE6546AAB3A758225A41A481E2A85C5C3797F22415788
+A6CE37B2ADE8E0EA6CC8936BF9ECA8E20310A7044F906CD95BFA23EF94820A7C
+A781B3B9A72E9E840C29A0B9535204455E5432A7E7DA98F9EE988D44DD034B8F
+630400A76050648CC4982BCAC20DD951F0850E9EEB97F65F4D3560A33A472F4F
+5525C72B18652D36A37EFF3533D43CEDF758BBD1804D8D98D08FAB3A34B4C207
+448F5EE1BADF6C528C82BE8520AA401CAC764EA07B65EC06BFD4B987FB796680
+FD4ABB1D12112006D8B1DC904EF508FF32EE4203C449F27B30296ED8EE42E8AC
+948B21305092BF6CC5BD3707DBECD32502FF87E8DC2937865F5EF3726C6420E9
+1E0902595B137B2384B3E5201EAA54BA5B07A092C0934420292054E2A4DB5ADD
+A0A3D93433502E1F37CA8918C0999D6B86A3724CF969802990EF0DA5BFB583AF
+D829555FAE2521AD5485BF6E0322C3C42964D885CA2D53990382CB2AC9F045E7
+E57115BC38D1CA0B9DBD21D65AB088FB1A7B4951B1B480F9617AA9D82815EACB
+D2F13C788FACFEA14445B5DD970985D2CBB73629A1DC049D766348AA42F4A631
+BBBC0C6A38DC10A409614DC1BACB26D52E53D1370869DEE92BC8FDDE9A560BF9
+FF4EDA6711B7C40A80F524C72425DDDDDF3A9F973253BE14A60135789794755C
+3760390850E72FE47FBBF7CA499D1864650B1FECF109E39BDFD28785A7F513E4
+510088E30C2A4B1C9A6C2B2EA78685F06190CE1140D481713D0BD2FC0A9251E2
+1050D7927AA995F25529E31FECD77D7CFBE77F0E37BAA342D78A560F802B5FB1
+493818D716BFAFDE2894195F800F469AD0FCF73BFB131E464BDC027F995E3232
+AA462F58D50628731E3716693E851CA822B6D9F7DD58F4110FBF25641285798B
+F5665EACF864CA9E042D4898EB83167553E4E5CB0050B2306B160D7608D7261F
+4610491711C810D29C7C3562713C4009848850EC601A25E01D0A81D820E2B593
+CBA3ABF0FF45FECC2CCF393E47A94049D481ABB8024B67FDF8CB6F915157185C
+330F72FF793E6BFFE9908E955515047DF3F6AB0197C87B3CB9A4A96D71DEF9D2
+E18BCDD076680957C00C8C96054367634C771F9D95114986D183CB51294E5460
+86CB11C72704D2025E2291803FF709CFF0D8135B40639450171D54E6331A5295
+BB23D29BBABBF21E09E1680AD721CE044EE3AB06763A4E1B1B60D3E5FAB33DAD
+4034EB99DF7874836500CF92F08ECB459237791C63EAAFD7A60E6DA3B1A3B2CD
+24DC9EC33D6E5CD192BB595D5AAC7D2E9BB16D653FEC985E276CD1380237FFAE
+63BAE3E5A30D71062A3B76A9687680F014A79783149CD876346DB5FD8F474504
+B5DC027B8CD699AE0E2FDA534B8B30ABF6466AF5ABD55B9ED2ED64B132834A27
+A4275355D516F9D3FECB75DBFEA66CD7FBE508B98B7721B46CE1021688E84EEC
+46DA567710D76F94A98C9FC92770FF7CE21ADA962202D837631B46D64259F6BF
+A2F7E85CA56CFBB7E533A3731900C3C6027E9DED92BFDF15745E9F71CD9BE690
+79D5267DF7CD1F8A655CD148A765DD5D845249B43355DBE4C35762AC2781D469
+A166FF38D44CC47E94759DD8A87A89970EC441E34B27E5B23ED88B7954CAD643
+830B14BC8711F8216D391683230EB7FC28BFC5D38AF91FEBACFF3285690AEBCF
+75E1827C7AE74C17B45A176AAD88F06DFCE61CC98CCD22861B9A7F1C729D6F05
+219E8392BC1FF44EBCB93578CC9F807687F0DDBD3E4BC6E33E1D044F94FBBFDE
+9B949FD3EFEDB7F232F0A7AFD1EE22FB5859B2DBF27881D8C2F73F7D1B8E59B7
+8DCFE61B5315CCEB8DD8710573136E55BD144C4289BBEC5A344867C6AC6FAD
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+cleartomark
+%%EndFont 
+%%BeginFont: CMR10
+%!PS-AdobeFont-1.1: CMR10 1.00B
+%%CreationDate: 1992 Feb 19 19:54:52
+% Copyright (C) 1997 American Mathematical Society. All Rights Reserved.
+11 dict begin
+/FontInfo 7 dict dup begin
+/version (1.00B) readonly def
+/Notice (Copyright (C) 1997 American Mathematical Society. All Rights Reserved) readonly def
+/FullName (CMR10) readonly def
+/FamilyName (Computer Modern) readonly def
+/Weight (Medium) readonly def
+/ItalicAngle 0 def
+/isFixedPitch false def
+end readonly def
+/FontName /CMR10 def
+/PaintType 0 def
+/FontType 1 def
+/FontMatrix [0.001 0 0 0.001 0 0] readonly def
+/Encoding 256 array
+0 1 255 {1 index exch /.notdef put} for
+dup 0 /.notdef put
+readonly def
+/FontBBox{-251 -250 1009 969}readonly def
+/UniqueID 5000793 def
+currentdict end
+currentfile eexec
+D9D66F633B846A97B686A97E45A3D0AA052A014267B7904EB3C0D3BD0B83D891
+016CA6CA4B712ADEB258FAAB9A130EE605E61F77FC1B738ABC7C51CD46EF8171
+9098D5FEE67660E69A7AB91B58F29A4D79E57022F783EB0FBBB6D4F4EC35014F
+D2DECBA99459A4C59DF0C6EBA150284454E707DC2100C15B76B4C19B84363758
+469A6C558785B226332152109871A9883487DD7710949204DDCF837E6A8708B8
+2BDBF16FBC7512FAA308A093FE5CF7158F1163BC1F3352E22A1452E73FECA8A4
+87100FB1FFC4C8AF409B2067537220E605DA0852CA49839E1386AF9D7A1A455F
+D1F017CE45884D76EF2CB9BC5821FD25365DDEA6E45F332B5F68A44AD8A530F0
+92A36FAC8D27F9087AFEEA2096F839A2BC4B937F24E080EF7C0F9374A18D565C
+295A05210DB96A23175AC59A9BD0147A310EF49C551A417E0A22703F94FF7B75
+409A5D417DA6730A69E310FA6A4229FC7E4F620B0FC4C63C50E99E179EB51E4C
+4BC45217722F1E8E40F1E1428E792EAFE05C5A50D38C52114DFCD24D54027CBF
+2512DD116F0463DE4052A7AD53B641A27E81E481947884CE35661B49153FA19E
+0A2A860C7B61558671303DE6AE06A80E4E450E17067676E6BBB42A9A24ACBC3E
+B0CA7B7A3BFEA84FED39CCFB6D545BB2BCC49E5E16976407AB9D94556CD4F008
+24EF579B6800B6DC3AAF840B3FC6822872368E3B4274DD06CA36AF8F6346C11B
+43C772CC242F3B212C4BD7018D71A1A74C9A94ED0093A5FB6557F4E0751047AF
+D72098ECA301B8AE68110F983796E581F106144951DF5B750432A230FDA3B575
+5A38B5E7972AABC12306A01A99FCF8189D71B8DBF49550BAEA9CF1B97CBFC7CC
+96498ECC938B1A1710B670657DE923A659DB8757147B140A48067328E7E3F9C3
+7D1888B284904301450CE0BC15EEEA00E48CCD6388F3FC3BEFD8D9C400015B65
+0F2F536D035626B1FF0A69D732C7A1836D635C30C06BED4327737029E5BA5830
+B9E88A4024C3326AD2F34F47B54739B48825AD6699F7D117EA4C4AEC4440BF6D
+AA0099DEFD326235965C63647921828BF269ECC87A2B1C8CAD6C78B6E561B007
+97BE2BC7CA32B4534075F6491BE959D1F635463E71679E527F4F456F774B2AF8
+FEF3D8C63B2F8B99FE0F73BA44B3CF15A613471EA3C7A1CD783D3EB41F4ACEE5
+20759B6A4C4466E2D80EF7C7866BAD06E5DF0434D2C607FC82C9EBD4D8902EE4
+0A7617C3AEACCB7CCE00319D0677AA6DB7E0250B51908F966977BD8C8D07FDBD
+F4D058444E7D7D91788DEA997CBE0545902E67194B7BA3CD0BF454FCA60B9A20
+3E6BB526D2D5B5321EE18DD2A0B15E53BCB8E3E01067B30ED2DD2CB9B06D3122
+A737435305D42DE9C6B614926BFD42527C7459D841395ACCF79C472A4348973A
+E3E13DE6C07890C912E97F3EAF5907FD8698084396128B0C14658CE0ACE7CF22
+C48D74DD85E83A3C976FE83802D4CCD92BAA552E5A9883982B360214C51F7B27
+76DC8DF7A1BE26D200A29DE6B7B86AFCFBA963C5C46DCFDA4940AB36D657A87E
+32BE5B934CCB5F2E0187840C69DAFE42CB0C80763C8BB4F51DFB19D15D7E462F
+2E962110A7864051F94E222F2FEC2F14DF6578501EC1615731AD0901CFACA18B
+E4BC7BB0E76B366370BA0D949EFB8826C871FA1ECC3FB2754702496C18597970
+61303AE57454E2527A3B1D808785CA34918FC0EA6E61B0484BC0E58E16896B2E
+840E944274B79AADA2CA51625B4B0CC09930B3BCB16FF1571FF48BB3F197E186
+8CE3BC9F2C6A77A130622CC42F8ACD004F93E70D393B8EAD095E325999AD3234
+9F54153281472BA8F230DE702D7887B341268F4B62BBE2C05B923E665AB95E13
+A20D356D1B2BE5142DEBA2870C4F35D094658B9026F34A945B00336D3B746315
+9B76630FDFE22BF4266AD4F374DD519D24B1E2A278771A454906C86EAB1DF73E
+EC1E8AFA68C7E230DAD77D9959AD8D8DC522B27BB4269ED967798EAAC7D3AD3C
+BEE51487799358D07ECD181422552B5E91077BBEF2BCEE271D2BA5DBDDE81B68
+DA46B7299234181807C4D51D823153B1BDAAE105D0403607F1C27839E0756E16
+7FB5AF557E725F8D25282A20FFDB99BFB2676A474D101747E722E2DB8900C1F5
+5B4669BEFE443720A753E5ABFF07365E5061B2CCEDB635263BD7935CF93529DB
+49080C9950BE55E346A3A801E8516B550A7A532F0E53AD0E8B196A71C71DA729
+2E86C670A099A30F6B9608BAEA67C4BCE8CE4EEE5F7579AEF49A3D4F22D35FD3
+4A9FD272CE6021306E53C122D832D41334FE6F15B2D0F48397DDA6F45CFBFCD8
+0C7A81A240A865FDD788EFEA7EEE5B485AC697BCEA7BD6D5119E708D59107E59
+397A9DD02E722E96CA2DC7FB8669F40E28F9C32E5068ED11ED3820144C100D53
+7AAA6644347E32FD0596D6D090FF13025D59C87FFD269B2CE9C17B631C1A6305
+DE64B06481D11ADD29F6165CF3542DA0069F007EFC4B1517C8CEA75421E3B29C
+B0F74665A45FA0AF2003983B338B058DC72FA8987E1B2B39AF1DF9B2013CDB7E
+D242FEE284507B293975CE826C1EE620CB0A07E25B17EDC08AA44633427449E9
+5AA7DD9009CBA4A357D97DDBDC811C15C8FAFC9DC93DE177F14BCC244CCB358B
+A38510C0FFE298A9F6FA32883DC4E0E4CB3AE5F053A670511312CBB85ADD21D5
+A35592E8FAA67087C55BDDF15B5B052389EEB44EA7C6DED0498C22C8B83A5863
+391C91A7C6B157CB546EEBBACC481F959A217B4C986B4CA540DE10D776A2AB0E
+E55098973C1D4F3AE318FCF4DD447A7935C5DB38E65CD63F111C9D7E21BD7410
+47BB3A4A135938D63066671FB3F2115557F9DAB68F28D378472C4FA4547B59F3
+F91E66DC1B68EFA21AA760F63DDB4FF096460077464C7DBE670A470C674C982F
+BB5624D9C77B5D87EE29A437F9343D64BA717B55BC6A8E77C180BB5751D73EF1
+43EAB4F5190EC9CB39428009BFA014765FB4134460C9BA9AA35ECF5F58960409
+B65759CCC5BAB2786DA4257DB7EA1E76303CFD1011FFFE6C31678DCCE376A63E
+DA8F64A88D57EBD74E6B20AC4A28945845C6C62B38E30BA0A7DB5CE011B5711D
+3F0E51C86185F55CD9BD4BAC57C5614CD5D384292F106279747FF87729017871
+015BB01A85FA3BC0BB9859AB9179B83AEAE6108C5B54C24BC15BC408C3A843CA
+FEF831C327242FC96D72662CB9C2296BFDF05C2C4E16128158879F0A4E6F629E
+AD20754776599DF9D0503D5DC5E7B13870C7E4E1800DC669E67E6E48FB8C9929
+1D74F1459E5778288F11E0C9340AF47D69D0EA4017B109C2A3DB6067934CF636
+27955CDC186F78BC16B7B6E4C0EE4E248771FD94589998B21367379E60C63722
+68C6C2D21C07ABE209D841893391AECCFD59242DCE25E691A6068D6F368C5AEB
+1DB8F58C24F8F761FEC037DA93304E53878D36956AD7692F07A7C2442044E21D
+AD53BB4F8DBF6DB88A2A551A036761A20A388E0A8C5D342CD7C01126B4F66576
+F964FB270D2409D8D760F53D09AE30BB05AA2340B128F38E4FB5F1FE8EF0F022
+4CE2F9D938023F891237029B32C0799BAD84DA91CF0A0079203D59EEF98767AA
+25CF3680D0057AA9A4E09F0E9B9C2034C9D70F8D02943E9B2C8F75B3B75CFC6F
+3BB1BA7735C2CDC6FB2E7392B2D85C511D76F4B0B43F5D2F59F1DE873651410A
+4537ECA12E1BD7631562BF9650382EACA1F6B7D7ED87A452D61942841FF6DC61
+C5623BC5210821A0CE6C10A6FEA2700029CEB8ED7286559ECF1CC3372FC6332A
+C7A05928A3C148BA4B93855790A4B379044B1A660F846D378DB1E4C6A57DC0F7
+60B8F983F4FB4963E91900C3F75C56BDB980D15F02AC03640993AF66C718F5E9
+AF501549E16A8C2715A5DBD34426BCA5DB1432D4390410F6182AFC55172AC974
+A072F673A126BAB29043BAAF9849E98ECFAF70F06F6293DE628498B1C92B5795
+10F4606CD1B6F58E52B4EC5972263CFFC47574395847F6D5933C8E37FEB46E6A
+A1491FA01AD4A718789AC42C548B3191882811B88C796CD82E3473F412F7B996
+84A9771B8E73382F89E227BC1F8ED078B3D5DC6749BE778C24B555ECDBBD2B60
+35E579094EEC9C012CEF00A13116706020227A9CEB57C85E9F3C835A48502EC7
+7073DD3633B7E6DFD544F42BDE8E76D045B1650562ABF9187C12C06DCC2F9782
+EA7B7274C0C456316F168E582EA1CA61C094C3EC64FE40EDB28A68CBB4CB6E6C
+D0BCF689143D2000C7348730527946722744F694C8555FE1EB78AA81AB426C43
+ACBDF2B94C6F2DEC504F6AC6609185A85F042E48D2AA6373C7382138EF132ABE
+1C69B2C668A0E8357C3CF5FCB8394603CB9CA169EA23DE2741244B524E5EA3DF
+0F2701DBC8F2F016148130F18BF60ED5891B0279E8DA3E730A1144E9EF533274
+EB70AF12617A6C4CF98273569D11F90A43E4D24DF478D2F047463B7B63085518
+4228A126BA4CF65A70275BBA08DAB2E756CE47BDFD679CF1C76E8F05E70B74D6
+CE7CDA17BD1A4DAD14CF5BEE31346A67CB92CB5F594775B1670F69C85F28F7B1
+6EA233EA0EE8675BD9B1CC745A8E0E1632F38534FA5FF062E6C46D9E9120730C
+4EBF0095C406E7D37CC07F03B24A1E27C3A66F8A19D244621674598658ADB843
+B8238F7B7EFF1889953483D124DFA76E3D5EF48CFD89D578C0A82163349EB9D0
+15EACEB3C77005E50487F63DAE5A258EB0EE7CAB3D868030BC8A373811B94CFF
+9235FE9B8E23C76ACAA487D224A0A90B62F550AED954D2921BCC790BB679A88F
+397046623BD94BD1F0F4B36B14897D27832761F7557F8D74D9AD3C0B17EBFA91
+62BDC740C776B5B30B740445815BEF790435F74C92F2D1F0224754FA78CC4949
+F23333E06D42CBFC0D16E69B82502ABB69A017559FDC5E44F65241DFA8246042
+54CC767B5F5E9BD59AC3255A6868C5D1A49B8F457DB7C3BC0B1D50BBA3F765F1
+7C0F5F72F62134872FB819DDFC4CBB139057F02AB2F7ECCE07F4C2AC5DC04BF8
+40A84B66027B57909C4080F470966E9C972C2FBB2EEBB6853D71264A57251232
+B652B35E80F67260088B26A556F4370B592C03D0DAB6FFB4A974D6A43B8F99FC
+809518E66A7DEBE4E37089CE2CBA0CE56F3F72DFB75180B8F99B39FA416D2F63
+D36F330A2BE8D1505D7E59D11A1895E164F798F8FF4E92617A900BC6AE6587F8
+7A08ECC93BB09A094F732708469069517AD834929D80921FFBDB5B687FCECC63
+6EC3E1DD3B21A7B8A16D57E5CA7DCE50AD4FCDB03EA08ED5532674199D356C7E
+4166C2BB87CAF3AE9A0F3AB46F7975155B25927B5E761813A913C9D3642BA250
+E05BE7133D07C45285154EA6620E68AF76FE3D7CAE9BF230B3E23F9ECC9CC317
+04BC476D1ECE98D7B095F4DCEC1C37F2F9555442FDFA0F5FB2777133279ABE04
+E01F9392793816C17CD297632C60EA2EB7CD33216D091D3AE94184C730DF2B22
+7C2C3A45B15184EAD71573304762546BB6DEDB742F33424E16F242F3D5BDC0E8
+F999E4DC871E782445277E501E41CCDF9CA0B473CB2F92A6A4A8AF839BE129B6
+9C5AF7A536BCFDE77EAB1A2890E8DC39599F00D0279E164B0D3EB8110E2F4067
+DBC657B1F75CA1724487AE0B61541993AC05E52A42B353E078203EA4520C3A85
+A46C9F26631AE260B5FA8F66B5EFBD769D9AF3F8D7383A8C9F353C1904F74E1A
+5C9938437054DAE2604AC7999579A6B187E5B1300EF0344C247264C71E84EEA7
+D0B2D22E7A61F889C9CE88921BA41472D35FE382246348927984434A063F3BA2
+D8772E041BE25605CC4C4521C755A11CAE4C73DD00C9E4345CB6222F0E80AE8C
+C7ECE78B315E31A03D2EFC51A6A7BB5E1B2334F7779555D66B208EC39342A907
+9934D2CA373AC624C91370599EE0CC20CE08115800739FB7C0A1B5879D316BCD
+72C7CCF24456C413FDEB49B8C598BDD0C2DB36E95861DC57FACA2436ACF7B7A1
+FEB982489AED60B7CC8CCFB99FCCC1C4D2AE631B94A5C0B47E5916816B3DCAAC
+C4BC0A9FD1BDB73CCD940AA693DA9121CA88B9CC1F0317A9AD7FE63086A2D945
+9B523319DE6F9CE93CB34A0CAE046B36B40E98C1C5A6246E1B3DD4D19F3CE704
+A3374CB116493527E77F52DC395AF458A66A94F6349E0A7F59A4D18EE3A28833
+8559DB2D661E8F3C374AB00DCB7DF8BD49B706C9ECB179105F375E8E8BB703D8
+17824597FEE7B234A6F183C944BE6DF56632276EC5A90DA336A1A3C4D12FA577
+FB9BF6173469E09EC6FF38B0367392C9EBB4FAB12D4932D76D3D1A483427BF50
+F4B7D68DD1D47092B1AA48906CAE36039A799E044854F06AE4E0643B3FA77718
+0E5351A04E4D9F18157F4409A7FC5EF884442582CB5E88BA7C5156E388FFCBDB
+4F77D8B403323D67B0EEE8AD7D96A8CD198A2AA92996516DD74290441189620C
+BAFA6BC6C22F1A1B178B0CF01C28FD6B2C1397D382AAABD4D571FD180A15423D
+AC26CFEA50544ADC8E9864ED95E47BFFCE4083209D385593673D8D1F2B58FED4
+30C680E9DD13EF60EB23C86969A6984F672C37B921CBA1803E1FCCBA0D30A88C
+AD62C4717288C17D9F8E37DBE0CA92D095C9658427DC25082BD96DC59180B576
+8F1AF445FBCC2A5E66F774527A4C48777A54C7023FD9FD8FE831ECF6D161C5DC
+931E4B8F28C9062A9B5712F8A4C5D525174242A21AB245C4D9D6E8A899A4809C
+1C4B3C6758D18EB5D34FD65A76E4DF447F4AC3679CC7300127A327212809C7E6
+9CCAA0748F3E09DD5ADCD78D70DD7E43789E02DD73D1119CB85B7B668CA8AA44
+C756B5BF8AB293C072E0FB4C2DA50E99BD375841730535891B16D40A2CA2FE3C
+001B742E08EB9313AD86C5D7CDAFD792CA2E2A21BE291BF3986E2935CC052DF6
+AC97C7A899EA7A6B1224690775851C711011A28629B168AEAB2B8B6CA47166CE
+9D2E5C9BF8AC44C69F059BBB1908833590724495E0FA0BA04875D7F62AB18B38
+2FECCF12A045EA185BDEC80B1C589DDF48464747C56B9D4AA635B754ADB47B8A
+91AB471630A27D1973F29B13840DDA5AA25937C0F85FFA0859FF84F8991A2DD1
+BB0A2C754BE2123769D72F801117EDF86F0BFD36E5414BEAAC5E093E9F16EB99
+47FA4F312F39B426B04075920DE29AFFD62BC1D2DB08796FC67A9C108B2A7253
+96E8560D111F9C3341354FE827DB18508EA2F91E641EDE7B214FEFA88C062C0C
+71037539BECC0E0F736BDEAE268E779A716A035B4FEBE76764D3456B40CA8EBA
+3BFE9C935DCB93430C59A2B10E73F80B3802AEF1D4C12C2A91396558AB64EE4B
+681C22F35FB92BC74A5A8C6A464CB9D0CD9FAFE9067806BF5B0761B86B25D6A6
+FF50FD8634E85B443D3C83C41C95AE2E6C35B4D81E7D24872A2AE8433136F751
+7E2DEB9BB078ED39A8C96808E879082925739911106529C23D3B4011A411EB07
+26EED3729FFD4EEEA72E8E03A4C7E55CBF7F90E26CDFAF72D59BDC98A26A5534
+7E79DA7CE0E07E6A5346BF837AB3AA7D6F896E6DE9204E7CB96177B9CBE1E1B3
+1387043E50E78497C0ECDF8C936FFD20D7441408C24170527BA7F5E0861212AB
+22A3B383D5FEBBE99404FB27E5BD50D6AC70CBA0110BC9D559583DB16B0E768B
+FD7A43B8E0936CB8A88FE46CB2B2A1616CA79804EACBB692F22A1F198E02755F
+6B65AE2E602DC7D914B44FEED46498E5A626EC09C90695414F6CA564CF07ABA8
+8D77274C9C7ACAE14366F84B1759D09C7D51EE1F5674D80FF4D6F76CA696DC34
+DA158547EF440206AAD1D19846D3CEF9FAAFB60BF80D1156FB30F0212EBC4363
+AB28E21081BE4DF1F1BC02295B00D126D00B6934133D21DB14FEDFEAD976202A
+065EF0DFB4EEFE5237C042B88B8C12367CC307E1BDAEB61522ED048371322493
+3D6D27FC6C06FF20DE9673B3187BE1A63660541651A151951377D2B191337B46
+CC632C1BAE078DC4CF3186748E7E026F0EDF56ED9FA0FAB4E0EFE12558032199
+39960B1298FE3C32E84E87277BBA755DBC6B429EDCEECB76B95CB39789A3786B
+FC87B466F2FB0B948683C380B9F2741E4D7CCFCEEC43BB0BFB9D64DF8D4ECF15
+A2F20C820C2EC39CE6A3B08BC48CB178BB34B134E8E019A00289888F1E0C2CC7
+BB3E22B99FE5DF8C69ECCD672529D1CCC03AA833F7A56ED8FD094B44FA474532
+50AD2773900FE8410DAA448CC55C1B43EBF95463B81AC3A2BB8D2B72B9294CC8
+7C51F12EF89ABB49171536EE0F06EE4FCE8B01BA999C9BBE4C3C24CE76DAEA11
+A74E433017F463564C4607496B8A1E8AD58427BF1AB789099EA906E5F35F1848
+CA9089CDC70837B3A2F8D01C9162C682F6AFFA02D6FB1C5F5CF0504B61669EBD
+9B12F0683B4890A405F6D5586DB81F5100AC4539DA34ABC6AD3ECA76FB26F05B
+46907C8199A9421BBA83F87CAC4DE045BAC65EA6CFF9CBBE7FAFD2504BF8024F
+0C61AFE01E3AA0708A8C39FCB003848526063DB644665B9879F02712B117B71C
+EFF2BDE81F8845E5106F725D475B514167D4820C74B80CFF979DAE63431DD047
+E5078A6CE134C9464DF078CF0C5303A067416B1A13180A4A87F4919243DF8F08
+579614062D2F003C7E08EB73CCE4E32156BAEC85A84DCD0FE8907DF19DBB4126
+372DA6C4565D2BD80B6F514577D01434409CA9BAF38A8C4E5752D125ABD79A5B
+5BEEEB76DAD26466FF0BF64C8670C6BF9CD46E1D8A0869AD22A3A6B8205D3F0F
+809C5C0968F8427C4E4021C15B0A08B62278CDBF44BFF26622D0A7198E90586F
+161E024A7262AF67835C7751744024AB976A396E6085E44CFA7EE830766A1C79
+D45CE18FBF18F686D8A24737B63B00C48363CAD3459B7C82F48C24858E14C4FC
+AF5F433A7490E046F72BB5173B97AA490F9E896DE35B8298B10A56ED174AC004
+74203C903350F126B3BC02F700C0BD765FFC4D95A017C026CD5B7D23ACD6F1A9
+5D8DE3B260593F9C4DA21C60D55A9860DBBC6FB84449FB248EA7CE1B6C075501
+B47617A7133E2FD135635A91B5B9EB576AA1E962BF0CAC9E66679FD5606FB6AC
+5D6A3B6F601A61DF56D1ECD42A111ABE1D934AA25721BA03897CC9F50200F900
+7AB7284E56AE1C9E5A6657368C23AC5DFA2081A4573CD21743DC749288A2AA13
+94B4BFD123B72B1352DF27C41BA18B41F0475AE148AFC30E2F80D6519A8B7339
+BCF5F37882D552A82740F4F62722357BF3C20BE9EA27943287E9852A13BA4B1D
+7F0612F9609DCD22977FAA34EC0CD7D245FF6FCC921BC81D5F6545A483D2F53C
+0C7E9A2CB94D6F98BB7C5E644B6C09C10600D1D280495AE9E2C3DD1F27644CB3
+ADE38EC271D8F1BEF92F8A107D7851BF9AC24E91CAED87BDA0E0E91657E312E8
+BC7DA6C5B2E522C33F40167DEE4BB358437D7EEAAD5358B1425C18972C6824A7
+A003EB9334452941D60FC5A34E1567C55F4DBC8E447C8C62F5D307AF8DADD99C
+883E421A8488D9D89E779A5716FEAAC1FA549FCB20F18D536B621F291F9F87FB
+963A49750328C12C1D5DA8EFF2D7E3156BA926087FEE0F2FF812F2A9D08B7948
+A1ECCB36EE4EEC2D5630C8F9F166370810390CC243482A1A0E33C6B7C3C1CFDE
+80D71A944F8D28C14C2015FE40801CB8834C9F69F4558291A45A14A02033C138
+8B66E0C8C9092E7DEE366F2F37A7A5FB961128D5F9467B4D6AEC212172EB4692
+48893B54FDC1FD194DE4A2A777A58A4237D4A68CD454C760D4AA28B3FCE1DDC4
+E2B68A1376601122969962809D6CEE304AC799ADB20158FE00769CB56453720D
+5D2419CD6356805226B0CAF9C222610C94E1EAF7B809A5DA3AFE3B728A36E33B
+BEC6A5BF79C4FFEDC82471CD48D5DCA2AEED9A2BC5574BF3E885DE37FA13D555
+063078E60914D0820A6D0EEF1F05A535045FFD44E1F6ABF684824648A5C6DC2E
+A10B6AD87AAB69B228E86E784B0EEB1BE9580AE0F7D47CB4FB229247CA89C385
+9BDB788C5886BF83AB36447E551D11B3D520017796C10554B77909034A0F70E6
+29B0BBF9D08519224D2D07E094945DD3C400D2C048D5DF20A5D0FABA79B88982
+D6D02F89E6577D3AD8CED48F10318A9BB774A30C13A0049DE0C4ABF8A3B41164
+873BC2150FECE007D60651666FC01B4828F63B3A2902A0C9F79423B06C70D3F1
+668946BE9E0EF52EA16BB90E61C7D79C943B2AD4BD9C3D8ACB4A45E1DD2B73EB
+16C8876DB679168F143B08239CD14DD35A3714033DF20163A86B3114CD68264E
+C6144440E3B1124B34F5998DD7104ACB67A5A1979D64140788091586CE6F0728
+F62F76D3A15B277B3B8458B4D6E465F0C969EC6B35EB2556E9AF47C2D1285115
+ABC53076105FA15243FD0F02EDB6B6F32495D04F1EAF427031A6C2E463FB893E
+AD6F51EFB8B0CE1DC3CE15CE787E4A01C284DF645A446554D5B1F47781AA6492
+7F81D2DEBFEA836FAF79E4E49AC13529C7802CB0D71172821D253D36F17BFC4E
+2ABD97A3D5BCCC0A430FC5ADB6286B591259B96F294E5909A59A0CA03DE739B1
+8DC8579A15012606BC99ED6306F6A4E01C3D86B83FD1F867F74BC43DF81F1A49
+16E40162EDEC97F3BE12DA4E0304C85214C5E9465C42C8C957EF8FBC10FCDA2E
+6AA5135252997B05E9621C9B77A1501395477ABD1D3406AE88FC0D5FEFAC1ED5
+F8E43EFE691DEB3350C01281DA3FAC431AD919F60AB81062CCB5FE63C79463A2
+1A09CC373A3D734C57C11B9D6B093CAFD4A2855C72D4539D008C3CABCB7C8A03
+32DEA130B797AEE4CF409DBBF77BAC9736A91FAEA44A3B77E6AC2FB0AEFFF0FA
+846BEB75D796FBFDA0E17E4CADECABC8A93707AD31F64D251ACE6E0DEDB5C388
+6AEADC8C414CE36547A623EEC422DD91B0C964F85129032CDBF1132B2DBD6272
+9F80CB64C0EBF92419702C0D5BED224303767A9237F7E645F3D7F721FAF4EA75
+8A4639D85E067546F2C381A848B199759CAE941C4FBD67D577E20EF9A9FE57C6
+8975E19E80972280723D563EE7E212A62CB4932CC47F0116C3FCAE3B77D872A3
+663C84AA179D13396FF6737587A26200D96CF4B6401C5D60F70AD67B8F4D82DC
+9509756DBE6B3F56B8676DBC8567CD7139289166A38F831426ADB909B206F377
+0FB79B319D106A1A075C2427F04B4389FE514D49D14441887902D136388D10DB
+2460E22453C830D574E1A52FE079CFFE9C966E8DCC325FEF82CCB8002F3ADB58
+8321DCAA34BEE8BE8C8A2EDA33C416F9E876ADFFB6BF208BF3301D7AEA7ADA6C
+E10C29DC0B99D0D4C28B52EFCE559E0A30D5F683879695F9564802BEA21B1E2B
+2E2E90878A4FF9F97B75F9FAED2FE99F0B386362A3F56472201C3E2A674E7101
+E0F283B4D40A49D65CA30BD9385BCEE8EB17768C984A675A20E38B4C1C839BAB
+BAA1D3BE13A780D666EC0A9E6310ED620EA61226A479F9D70121C7D97F5C3BC1
+2B29F3B3C952E14A6E2F4640604434CE28D46441C5640D800438531803E1A30D
+EDCA199594AAB12C8471FBA76750ABA2852EAB90D427AD0A6F6F0FC4DAB71BA6
+E7798E14C3A396AC9FF3074CAFE275628413D01B2ECAA34D310669986B283589
+20C2CF0CC137F619D60EF857D3A79D19EA798E85237598F0915DADAEEACA1586
+78DA981F5AE7CA63BF6EEBB61AE5731A71852AD4BEBAA0D9C8891B412BF499C3
+DDA059F045F50CFD0DC8B574E96A16182F031C90C733D0CB9172790A4429964B
+67DEB16ADC61B9416A55A3CA9BFF8073397C6051745D92A94AD19752DA02BECF
+D863B59700C1E3B06E6BD19BFCBDAC16FC9267069B672312AFFC4B185F6CCF84
+F75FE3DBD3F443777CC0539761A029EE90210CFAF40D65325CF7CBF7CE50A931
+73B1D7835FB0938502A09620D206E3E7F8180E9727829C52DC2A5533A381785C
+87BD188BADB3D3D01F89A9D00F62FF310D17AF094971FA37FA7243AB1C3D1AE6
+5B58EFC73BA1B4364CD6337B3AB982070F38C8A7AC47F8A6656B859840C9B2D3
+F396F3241F1878C76B139B6DD26517E1D458DD498F2EE8D6147256A92C5A6FDF
+E2AE8B07ED68D734F9AAFCD8C38D0763FD14BDF9DB4BD3092AB786DA0DAE5100
+723D8781F17DD91249C73761EA7D2D2DCD00361A433DD0D19D61D5C419F5705A
+BAB238E984009E948132DEC774E74480ECD77BB374AAA0010AFD6126286C9D42
+E23A8E983C51A3F05B55014AE705DA94470BBBD239620D451133B0C35414634D
+4F5E500F4FED0F1D682EC5BFA0D357B75DC166E3E0B251A10FB861C34AE1D003
+66647D0DFB481BC5322B390CB9D92FF7A4D684224105E161DCBB88877305842C
+B780EFFD3FA43DEE4D9B212784633BB6642F3B4D9B7C0312051C7F90B635B2BE
+E8255299F7244C3D0324BC1E8F651EEA1DFE1318EAF60BAA9653E0A6F2729481
+7C64EC43FACD97279519FA6D078A9CB308FFD3CAAF4611A0F9C127976A8B7E7F
+E7B02CDDD1F7CE00EB446CCC74EF6B0B907C8A34CE2DE72E9390BE367D7BEBA1
+A6FD495B3B5FE7A223C26B477A2905F18A1BE12DD6CEA262A25B023653E3C959
+5139559469F26401E9CBADC13E7139CCDA29515F83221FA9DEDFE49AE8116C2B
+9D32928DB902C1B003C35256B4D6D78180F3D4D1A0BAEDAD515E29184D5F22B4
+BD2B4AD273ED6D5EB8A01FE1CEED3A39DEC32012987CCC9DBC166CB7D1D25FF3
+E0F2CDF0732D3680B0C99A4E27337377C8FAD544E97582F690409040B496B86E
+AD27E1E073958408CCC567AE72AA091D72332427AC9DEEEE1CCA8D0DBD766094
+80AC85DB2CB0497D4D33383B04390C8DB889DC39F499034ED27E04B9F3734225
+D0E940940AA1C83B142C3CA655066D53FE0518BCAFE78E02D37F24BEC2D91CAB
+43DDB5BA92A6E8DC09BDF48B06A1961C9B4E384955470E9CD5DB1D18751C635F
+E92F6D15B1249DA76734AEA25F15760F9F748FC85D00743F82B353B620DC5E1E
+AC8E244B6512E9D6A6B4485B8E4F72612733D1A944BFB9887DFB1499F2A5046C
+9A5DA9D540BF4104A4971AEF03E2DC074E9E4F0AB8AD053D8B466EFC2339784A
+636FB8043CA00F807E467615B038196F5718FBF64DC67095FBDE607A91671402
+56805209F70B99BC9EF7186AD7F9DD7349FD91089275A1DF6CEB2DF2D1E06C20
+C2CFB4CE3B27C5AC42DE31A9A75F96918CBB7705C1A6CB8C1B152AB6EF053B60
+283F352786FF58DB5A795788C665BA09264F17825556A8CF5C2F21E059D003A2
+EBAE4E18F0E9A9F58A989CD4C60A9EC8191A97FB821183E88EF5874BF8EF6ED9
+BFC218DB92F9C6BABE7954845479814BA92B2E807918D4581CCD4777D6EF3626
+6F6193EC94465598F3B1F371E9E2B58DAE279497F6FB15559100BC2D312B2A98
+925E9E9DBF80A9C66FD787C347E781AD7778728412F2B14A0B5AB77AFCC9A526
+B0FCA285FB2845EE9917C32D7D99A0AD3EBB9CA100DE1034E1BABA54A2FA8950
+1F622ED0AD6426A461513B28C3B7B460F839EC0361EC64E26BD8B72F70834CE9
+990E54FED6A7B34BF93A242DDB7AE7AD5AD158D2A36878A286EA556712946B8E
+368254ABA3C1C649E4DE102F8938BFB81BA49CB3CCA2CC2EA87EB1F5912DB893
+7D73A06381C970719043F31DAF9400EAD660F568137B39789A0FB65DF8B2360F
+4701E1EC1C899D0033BCCB80AD84D570626EEE8574BDB9C9788E648D657D3CE4
+7D193E098F184BD632CB34A072390E57711EEF7FA448205BD23E3D9F140DC535
+3463321BB29736C8C78A3D061EB3AE4A4B755CEEDEF4CC7BF9BCC8DC8DA5062D
+B47270ADA9A75ACA7DEBFE53F42C8922EB5A303215D2D9B68404A520F729F228
+F5BF60AFB5C1730B1AF3FC7FD6FE8A61ED766BCDBD3C08D353695486AD0B854B
+3122D957740D0FF349FD2E30A5685A80C5675229359666CD1D2AB658EA82CB9D
+05F14568E88B64068EC7BABA5F219B496C092A20F935271496C20E52F02DB031
+CA13A8E00BE83D8AA120377BB748EFD970C8F5DABB8EF4C870ADE90F0636040C
+909FEA3427A1F7327B3F821865B91C70095D4991B3607D55003C399702DC6EDF
+5162648DD2A22E842CD1AFA517281FD79D13CA46E14FB37E7C0E9859DE5E68CF
+29374BC3CCEC8A52103419F78F44DE2C41E2B6822815341778AE84A28CC58568
+9EEE2E99070E11BC90AB594BC996A9BCE23EB11797E18E117AC67A89B43A1A3F
+2ED2114F04C4C4C9DA0F62C8146589D6D7B5A03D5CCB093580385518775D8964
+5094E050005BE85F78F96E299A37DF4E743AB9823D5EBC2DBD13CC6CB094265E
+8E8B996574E7C06258048D17A543D21D50A685708E820FE079B470EF9DDF9181
+D2CDAAB286150AE09AE8FD12C2569243739C96630233422C8C20DCC616462760
+07497BEEDA702240A2452ABA9514A042651C9E33454179815AA06178F88CB35C
+242C9794D526B532F059DA7255A4DDE105B09A8D35D728CDEB7B87CA0A21726A
+9C6CB2D823AD53ABCB90A3000D67DFCC182144F11F66CE4BB061B8182925CB8B
+0CC0557128ADF605303C0EF516210E9C4A7BAB40CD56F855D792C244F69EBC23
+FB4F5567B893964EC5F33BB58862D6C618ADB7A6B2EA894E62F43EDFE6D8A099
+3642CB35BAA4629B628E9257CB6EBCE74366256FA12A2717EF07AC6DF23DF9E1
+C603C9E4EE91A38FF784F4F676F55E1962A2B6C96939973095A6AC0F11C67094
+2D51CC823CE16C45DD4635BCED469C68C6D2BE3247E2158F977738EE79C22303
+47497EEDEB71712EB98A98643E8C0E5DCF50418ABF1A3D6EEB691C8DB6F9C52F
+9A07ABA9B07AB68EF9595AD75A9FAA93CB7ED341854F189BA2DC57A56E30DD0E
+8A85F439C9249FB9706C39ED358D98BFB49C5E808B325125D951436AE2EA51D5
+5B2148534B8D8C014654924E663C6AF69EB047346B06EF17E1B482E38275D78C
+3CE4A6CD969C18B700DDCE81C6A72E3DBF625444B3FACF0CF94700F89A5D8CA1
+53C9B32D9FA2BFFEF2193E592AB74CC18A7EB7EA7B7CF3BAFB7C3EA45F89D30C
+9724CFF2842AFDA07F07DDD4A9CF890AB1F65DA08AD5A80468F0217766404057
+EE556BCE5F9907D589AEAEFEFBD24ED4539F812DDCDF52FADD96E1DC700BD802
+6B489D80ED49333C953E344CAFC93193DB41F59C8ECBD17B32E06FED2B050E3A
+39848C78093CDC7A57D3A793AA66CAAE12539961158274C9E73337D414D9836E
+191F9DF3573452BCC528D37FA0589D46DC102113AC4E14B35F82DEAC524A9AE8
+C34E18C466A7F9C8C174152096906E3AC9C2208D5D6BB0DAE4127C53B31F810A
+CF198A94CF2D10CA8DA0472E4D7E9D93A1B31F8C7DFD89A21CCA7C67B5834659
+D8E32F6919AFC078F02B96AE200C4F4BA6C78766F45440BE46151F4DDE9B3843
+BBA17F22901CBD06BB1A55A866D5E9A8BC8FAD898646F9779D08F61906237B66
+ADD43FCABBA49C9A08D28A70EEB139113DF84184B848CAC1AE8320209C9CFA1B
+F66B657572FB1C0D97F0C743E6D78FFB927F19BEF96A25972431CB8C74959B1C
+2261FD1BBF622BEFFB0A86457C0CD9156586D4B1E27DE6B06724452D706134EA
+71008A34B6F3A1ADBB51003770CEC825EFB32B664827D019FEB8B798ECD66EA0
+394EE590CFBC00BC917EC2FF99EFA078AF7395A7C6EF5EEF7D7BFC97C0FBA032
+50A5C85242E4B4B9DD9FABB3EF1475B509BE992FFA9ADC6A364385F428D60569
+4C963D4A8152D59EF48F42F9A645DB3A67D36602271DF2662F534D937D71BEBE
+4262A3376EF2222219718246648448A7C4EC538C9AB8DD01E47BF611A3542032
+0DD50761A0A6E7A8AB1F09FF341A17513BE63FB61C3F3143757642BD48924B4B
+0DE847CEFEBC5264FF821A2AF6D978E8BF1A561EC9E45F12CA656E4E22E53F78
+8F5A91052998A2942344B4DD98F07EF365C95AC9E202DB7A9C6DEA6F6D205C14
+EF50F66A1301DF75331D7F727BD51EE9352482DF10C49FB62086E6A0BC214CB1
+E44DCE89650DBE3F8F752BA9313ADB59385AF7E3276B28060DEE719B11E90EDB
+FD3625E4936ACAA1D7C79F100DBF97FB37341AB5587B72BC6012C4692410F419
+91A58B2E74B8727E447FB167F55E31C758B79FC2FB0491E83D9EC37B45074842
+688A9A1E962D8EFF60B161C0FD45061F2E15663B23A9005173C73E78DC82FC97
+B9B378432ACBDAEB7E999EAF4AAA44CB2C8151E239CEF661AA80BF4BDF8276CB
+D7DCB34F2B648A1FE26CBC80EE73824A3094DF545E35A897AD353B8B3CC29E27
+4D2493A8CCA6898F6C7E8A9C53A86DA6FDCD397479020D536E5F2413EE3D6918
+D7C1643360849D6E24AD52EFE6076C30E2479681210C2193E105C5C77AF84C69
+627EE7917282A5B225F2A45E55470B363C61906F9BEE86701393AA332F480268
+693766A520D8F08556C88F28CEF2A4F447A124B564317B2ED7E0DDE8E24E0714
+BB5F441072CD867ECE65B290C40AFC48479E7B15C64B2CB7278A91E7A5AB01F4
+E33FE686D5208AD8962CC7AD22DBAF47C611889060FAC9F011610F02C6750A7C
+C33B3F584683E848C1401394254DB1CB623A0F6AE69C27C530BEDBDDDE717A4C
+5879D9FF0951376AD261E2C3F996F02B49CDD1E2D73413088EB60C0C145F0772
+8199E71D42D0D692F83BADA7CC26D5C06418059AC23AA692938514D49079EC12
+E1D2401DFC7709C00FF702865C8103EE4882FA013B9CBC70BBF9C4876376E210
+34AB6E49BB75B87D46BBB568DAE6B8197E20321B628D94BAE9954D405B5DE6BB
+EBF793A23C454B12F3FAA7A319796F9C02EC09307765DDB957110123EDEDC405
+C6FEA931EADAFA361E95F0938AE5FFD11A15E5CFEA27D27322BB01266FD6D289
+D0091849A3F4F2C741BDDF7E8DFE2AE4C27990E19171901018F53809CCBAA30D
+CAAD315BE563D621B3B0FD2EE8945EEED2A4158C90633ECB5C33DE4BE73DC520
+A0E0B9FD5C7B0D42D22F5E02ADF7F9E5540F87EF242ACF035E8A891131B7EDF1
+EECBC6AA330C35D88A8FC6A886A204E21B168BF97D24B5CF485D49BC2977A83C
+06D2916F18AFC4485680DC51E57F9C73E3BE0FA4D51FC15A9E2A3594EE2269A1
+8827F4153575942F1B5F00A9A0A42D3C2289A49B8C52DE6380EFA6ED228EEAFC
+210656EBFDC0B6187C7AF077C3F1C594C7FD79DF509165B50B87799D82EBC789
+BD949B254A3CC91F8EDE18B2AB749957C6013AD798A95AFC1C3E2B14944DE8DC
+774F2B367081EE233EC599F53778BA427C9C74D8DA1B343220F316DF1B631CF4
+B343A9BE358F09DA253A2BB1F988CFF70B0C78D2FC728944AE3D60EFB0BC96F0
+2711FBAB3F8BD5EDD040FB7201F4A6A14BF27FFF465FEAC17BB399FCD3E37ED3
+71E610369EAD7AB0D97E7E44713D6900AEF296C7A971E7D09326364B37ED1DFC
+A2396F63891AFA01E14556D4D5330B4494A85D575A1942D1A09EC6A91EADD4A0
+11B26CC99011CC85F937A6B329726D8E89A7AA7652CDA3180462F29254ADAC04
+C575E3B0D4BC909DDA9C6030E4FFB5E7843018A0CB1E97CFC49A04A04394BE96
+2A8026C8097E5204BB693690F1DF0228C595B89764062D9E071309B3F64BB6DE
+F5EC5BA248A098C38598F542C06D059AFA79AD57959C8254A356A5E15AA8B6D3
+4B58A023D99C9FAE4F4B61A8E4116CF0ABE269138D7ED715A47ECE276E79D2AC
+C7977599F36CE5DECC8845656E0988A05CBA2AE8584220B00E25F30165657BEF
+7E84215CFBEF5B0AB5B7B6A0840C7DB70D24896EF0E7EAA374BA4C584E6B1949
+877E74B81A826A4B294161C4BD4097448AAD53F3FEFE839E0380D60F08BE9651
+D76AFFEFAEC3D29EF512245E398636493DF0666AAA3F5EBA69B603242B1E6F8B
+BD430D7E4319F660C27E842F0A792C81FFF943E6C1E73331293348DE63722DA7
+BE8A2B59035AB75D036040300E8542188DA527C28C08F629A2092C2475CD1023
+9A357F34DDBF4317B3C8E9AB47EFB8733FCA3C965C9719BECFCF549342C1AA5D
+F062807EE504502AAA6D122F5D48563BCCAC32C8000AFC742EC0CD565979585C
+A3B93B83B756922B75BFAE38BF5CE61F77B6B4D95389194E61301207858B0F6E
+CCEC3851BF8093C5095D8B4AF4C9C95508843F46B144E80980F27B5997BAF45F
+5C2F8D86F8B47C733B98D06049FD809AC9E7677E4794A791D52991AEF804E06F
+9370D11787435DC1F0591F1C6B008798FFF02A3B9369F51884CB50BC5D768612
+1DD39BD1F9A0CE502291AE8E0A541DC988AF42DD1938D12CE302B970A14EC39E
+1164E53BF3173A51B0F58903BFCAD79C05514C2B56B86FEA9637DD39F2043037
+35D9B0C02EEB62987B893E59DA1BB8C60AAA06B7CABD4B682391BB8A2C4FE341
+4E9DB00254CE06BC79E99D1B7FAE5A8DBF679C4282BF545AA535BD138F760880
+B17B8027FEB3EFCB5D09B33FC350F567E73580E47847E3D8B02FCE2CD58654C1
+DC902796D76E0B9CE8F4D495C3B316E92FC3CF6A7F1C5AF8DC17CF8FB4734E2E
+1FB5BCC3A90FD6C058F7994F9B407835CD3C96359CD850BEE51D1E0AD9094F7B
+294C0C20F3D9381F71DD55519BFF0D2948B4AB76974B079036F13C2FC107F4A4
+D937F51608D79ED240E0B4CBAD7B410661211A49F08C51EE8333824C584A58F9
+55BBCEAD2DBC58392CC677B60B77D4B29DCA88AC6DDE65C2AF41BE53E58B1976
+2D25D29388AE7AF2FD4963F73CDE25AAB6CE269D8B6407B1D04E7991CC644004
+9DBF11446FB0049F47540BADC34B1845AA0616E27E45347FB00FB785426A6821
+5E439BE9FED63A86B20D2F3E9F360CA24B8B442C0D18C6A799D28CF0E7E37ED6
+D30E2B5C41690B7DB7D6B084C11F681CB4282AB1947E982801931645053D3AD5
+264DF42AAD32E80287CC9B1170CCDDA91B02C574D2143A3DF87D34A7621D6EFD
+3BF775884F60EBB93F06EC54EB0E8E850CF98F4F82A20B4F62A3F3D9869E0687
+9206D3B68552CD28FD8C647184DCE166C19557ED5A4F96C4D08B16B789C49230
+B25156747A4983E84A6B0B87ECE6E5782B553087AB818A1B02539056AF4CC9A6
+49EECC1B9FCF2DB6EC12EEF16866DAF532A0C7E3C8277E0F039D4BE1F7AEA1E1
+C791DFB6319C7193122D6E3578BE0292D4FBB865F94CE2C4F06A2335C0293D49
+D01D9D67391DF5722DE7483B11A84D78DBF92E9513241A06EC50FDE60F34DAD9
+0A160757E5146924CD424165E8F9874E467C1BC2E0E2DF2DA762CB82BE347CC1
+C752ED9E63C066E46C2E0B457DD33CF17CEE7D58B4C8C0694919956754FA2ECB
+7D57485E33B8E1AE26DCCFC7632AC16B308AA315C8FC1DB18E12607360BD2030
+67854511C2BE3AFD4047AFD8409C22CC564939DD2940290549A4C6A4C266D71A
+99AB9C965D0D1E2F8BAD434BFA7A2891E2962739DB6CDE4268B6834A4ED2608D
+21C9477ECD4C2811FF047FBAA7673BDB3AC46AFDB3B86393F657D06E4467F40C
+0FDD804120D79042EAA03E3FCA85F893446770EFEFE8922808B936E00EEF84D3
+B7459130248396AA9227E80541FACA9E0676387AAAA8CAAACE43B2D969A58CEA
+668541A910CF565273DA6484C36C7C34A0C5CDFBF61A5F121E507FCD4DEB4295
+8AE67CF21261B5B25C05EE5D52F013F7641167B971D7FD63A780B739BC7A16A2
+745A0EABAB159AE5A2B2B45DFCD62768D6830DC4A08A59CC05BA303E9FD19707
+557A243A5BDEC0CC03E0A1B073915BE62AA06A9B94F795F373D49F853FB5D298
+20CA66B33CD94F6C77583C6CBE9015F66FAA5E9861627B5E02C507E531039735
+C875B2062D3FB2928FA4744DFC418561C3F8864BA9CB7B6D13F8A614B09B0946
+9D1C4A94BA3C49D26C541DF05F945C176877E2928FCDD7EDA54BFD990A592938
+1835DC00DC5CB282A02294274DE6DB3250F4DD5E588321DD326BD4B44975B533
+9AB716B60BDF2EC1FC26160747879845107F972FBD6171E618AE8F4969FC8FA6
+386C2D74D5D9E826990DEC03BA856FEDECDB6ADE0D0A70D5A2584053A80A172E
+4D83316E8E1B89163B2A842341F74FAAFC206F6097EDBD76866635E6F207D0A8
+814F0AED704DF42BA07DE1EAD3C0224B0E3B93A7CA489EFF9A4D772031E3D5EE
+08BC06676DDB40CEDDBC6556D8392AEC13472278E2589DE4F916E4860AC9D211
+326A293333646CB22D32021CFF1B7B227B751912F5FD11B574D726F35BFC840E
+7D96CCD9FFC1AE6C25E8C240B2B31577525A6DFCAA81749F122A72DBF93CEF2B
+08F39A08F22C218C3686D77BB681A56FBD346C7D98FB4D1B536A3D105E93A889
+8A9BF8A93BFDC5B4B99A46B92B4A86B4F8927193F545ADFD16157BD3FF36C800
+BC6C63048F163A6AACC58E275AB632F51B306C734DA940F89C154C0117F98C53
+98BE22804FD3AD70CE9AA12331C7631795EED86B260C4350FF768A0F6E22FFDE
+DEDF91AABB0EB5EC123445412E28DAFB204399E35DED7C1A277CCCA326B84C46
+0499F5D3B7268AD528EECD0713A26E7CF1ADED0C7EC6E0D2E29AB928CAB0C51C
+DE7BC07931A033C8CF70DB1D8E52FADE58DE5683160C15BA77A1F273BCAE72B0
+CCC8AF32E123CADE510EE74CABE4FDEB07BAA5A8A8A2016D2A93DFDB7A6A9D5B
+E26B812E55570AF39D3C8FB6AE6583741A63C97F9897DC22790ECD041A6D707F
+59DA2BB3DFDF30F3D3737C75A326388BE9937A7FB9A12B83527A01C89E213A0C
+7447F980B6F2EE47D63324C7A13C87109D756509B41C1EE683180C39662A8C29
+5D8684DC75B6818643FAC229D48A7E9C5E24BEBEB2B02A4B004155D6F17A7A93
+7925118FBC58981BBE2038670B6673FB5CD8A30E7DD68357E2490B831C61DFD1
+8D581B713547BA5039A88D309825D993D35536D88AEF8F1B8FA69B323D8B4F91
+95DF9C3FB33322B21DCEF18EFD8F76207BC9CEADDCB274C8CEA791943EE7FED9
+6BEBF7FE33E5B348081E2D4114E9C53DD1EF3972D2DB21F5BA0381CDB46A23B9
+268D322FCD6260FEDB05A5D9D49BF48AD1CDF9F8060EA71F38C3F01B888D6462
+0469E8F73876872CABEEF2D109FDC6DD38E254040781F8E725D9D178BF84392B
+D16D667FCA825656D35884EDD88DD9E4A74B17656403490C5FF313DF4E86C0AC
+913F525A6E430191D9FAABF6941D4A68A488296C862173777BCD58B9C26A6BCD
+2A0A2B2E35933DC7F2516C2C24E0C4D1180E1AFDBA7F8BE17BAAEF005287E781
+90274F58F6D3451EC1B6FAEF7F045A3F4B0FF1CC8D8321D3065109187CBCA99E
+76E7A994CCAA8AC3941FAE1A970FD21321242B01D574FF2E4721F0F1CA91439E
+EB90E1EF6BFACC8AB5921A8CAFA47CB2CFF2124D4E1AD6A86EEFE6A69A872BFA
+C09620CF90B84B08CEFEFF3C5EEC15291082DA8AC7EDF8CEA0480184EFE4CDA3
+81C7F9AE163EDC5CDED644D0A4D366D0A80D35950F2B2DD2BD7C9E965B8BDAE9
+ADF24003A6884EC96017F5A58E4C8013953C2159748CC014099D3FC012E6E393
+993F146A7E8B8795F8C8CD1F225C7A1CC8AFF8ADB931A96CE871E302B1B1A103
+615CADDFA011F985D2E031B3B5B8AF7FA99D840B30A5073BDB2B1C71DD8659BC
+D3FC29940EB6D9CC88D764769027BFF4583CF47BE754D33DFAEFC3BB72887514
+74C25D39E4BC18E0995A445473E0EBE84F45EFD6605AB08604E18A86D6C2EAE3
+5EC1C644CC6C3C10465A7C9E0797F587011506DC2FB14EC2915F5977030F128E
+3D4D7A89A17A31A3A634AA31CE562651C83340394B212F60EE33C3278A40DB48
+41A4D6A9C5B3CAB278BBF5673F199BD81AC279979609468FE03D73D3583CDF9E
+9441716A49EAB15006B8014C78101989F140A0B6DB59524EABD4CAD8C2C2A543
+C1C70BF619A5166EDC8536892ED544CA35FC906AC9D2DBF028C224BEB53ED191
+2CCA7A52E0CCD2EC7A5978B04392A7805226368345A7F930353ED112134195CA
+C90DA84C41AD48691C58B084B81F771F508CA0BE6F1119119046A39D79C649AE
+CFFE9E421A3AB6D264F95DE74AC09E284BFDC84DAACD002C918059AABF22F7AA
+12E6DACAEA52D62DACB020AC5770C2794C9E4ED2D8B4D141E0E6839CA09D10A7
+ED3C0AEC1C1AB72A9E202F65ECA89E05024792E4C6A1E6AEC88CAF5DC98F2E04
+F2D2D676EEE0126E8AD2D68F53884266AFF67F1AFD3916CC6AC319A2DEBF8CB5
+14A48BB138C3DF32039C4BAE0FDE89BD3E1A0318A36EA8939A074AE59347F263
+44CB4777C6F6AAE0AFEB935CC95B9F0D1082B6F6DC96F9EAC3E43A9535E5E8DC
+76A7FAFE66602237E13BC1B1C50F4EBC2B1FD82A1155BC023D98AA007D5C26E1
+6813A56C68AD95700A4486A874C13D66361F983DEA4D8C07CF8F89FC1EC7E83C
+FEDA7DE282F9A969E1444F5C26A3546E6C1F02FA5FDCCBFB72DF571AFDABABEC
+DEAF7A267C81993C7F131708335E07D375C302767BEB7A36AE02BD4CBEBECFF1
+ACBE8D0D32F3437167ACE443574542BA05A1609EDD413D8C13BC9735A0A86F20
+D39CCAC1E5B2F1CE3993B79249BE7E98A4D28368871AECFAD8379F25D2523D4A
+8AF52C0651C23FC37BFC7C9842E3F16DB06D269937808489A54927CD115BB725
+3207BAF9F299CFA896E4ED4A76A2CEDCCA96F91475434768AA00D25A9BBF3F5D
+7E1E9CCD1640341A02A439B0E060D19E5BE637605B84148A70B67A9E9F7679AF
+2A33EDF1F1A1ECC17A70223641AAE889F90AEFA5FC296C6C84AB750681D74A9A
+F8CB43A135BA43A8EAE88DA2C9500DC7C5B06459D2B6ADF4F386B9A11F71D149
+AD5E282EC44E9A5EFE332667FDF17A7CFCAB8F2F7DD410391106A8336BB720F0
+15215E91EEFBED91953C71742F42A0DD6CDE40D421D4FB04092611F36CFDFCF0
+7AEDFCAAA42C58F6CBEA463F29ADCBAF2AE6219F982E318D93B44C1E7A256811
+325FAD862673237223A30CADD100EF32AC31FD9830708E318CB72D8127BDBC9A
+880983F99D3E6F85983EEAF3CD32CC56161943830039AE70755CEFF4AE7EC467
+D311F37C9D20A3EE94C8E3C6DA4CB288E1368230F9830089BFC4C1EA379A5053
+A791B1C28235F01B2D8F32C05FC260DD91F1C6B1B4326FD78288851828979459
+4B0D2CCAE52438F710D8B0CAF3E55C966AF1CCABEE7EB3009835BE60C7E2C5A3
+F1B7BB12839D43D9DB29B0CC5B469A43DC50DC83D4CFD11BA8FCDE28178ED824
+29BF203FE9AE5B285352977E5ACB2D534D59632F0413D68083F74BC43A125716
+95ED4B80AAE439B9697F8E4EC333E6768BB59FC6B36ABA087BCC52439132D06B
+D8BC41992AE0E1247AEBAC44DC76D66075DE629E5FFCD025F1D666195BAE7F90
+1F3FEB224767771B4A87AB4C8A896374E965BCF82B9CE6B5BC7439AE7F353F55
+4D59F21F58D149BBA74EA28F5E77174D9287437CB04A1EDA309B39C34F02CD75
+05F93A496823F63107A1BB282FD316E1B83DF60F152B590ABEB48FE012A2E9DB
+8F4F74E4163B921DE45FD7E5087E9CF94DF50D9F301532F27449327D58783756
+7EDBF702787D92D9D3B7CC334EEB948EEB9BA7F4EF310CDCE8F50513B1BE8EEB
+286860E040F6617FAD5A9C34DA3FBB3957AEC069E69B81DE0FCA841D469F6B75
+DD4671C820CD3AA1D9141B985F7F0D366BAEA3E983DBE2B3F43837816D7919
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+cleartomark
+%%EndFont 
+%%BeginFont: CMR12
+%!PS-AdobeFont-1.1: CMR12 1.0
+%%CreationDate: 1991 Aug 20 16:38:05
+% Copyright (C) 1997 American Mathematical Society. All Rights Reserved.
+11 dict begin
+/FontInfo 7 dict dup begin
+/version (1.0) readonly def
+/Notice (Copyright (C) 1997 American Mathematical Society. All Rights Reserved) readonly def
+/FullName (CMR12) readonly def
+/FamilyName (Computer Modern) readonly def
+/Weight (Medium) readonly def
+/ItalicAngle 0 def
+/isFixedPitch false def
+end readonly def
+/FontName /CMR12 def
+/PaintType 0 def
+/FontType 1 def
+/FontMatrix [0.001 0 0 0.001 0 0] readonly def
+/Encoding 256 array
+0 1 255 {1 index exch /.notdef put} for
+dup 0 /.notdef put
+readonly def
+/FontBBox{-34 -251 988 750}readonly def
+/UniqueID 5000794 def
+currentdict end
+currentfile eexec
+D9D66F633B846A97B686A97E45A3D0AA052A014267B7904EB3C0D3BD0B83D891
+016CA6CA4B712ADEB258FAAB9A130EE605E61F77FC1B738ABC7C51CD46EF8171
+9098D5FEE67660E69A7AB91B58F29A4D79E57022F783EB0FBBB6D4F4EC35014F
+D2DECBA99459A4C59DF0C6EBA150284454E707DC2100C15B76B4C19B84363758
+469A6C558785B226332152109871A9883487DD7710949204DDCF837E6A8708B8
+2BDBF16FBC7512FAA308A093FE5CF4E9D2405B169CD5365D6ECED5D768D66D6C
+68618B8C482B341F8CA38E9BB9BAFCFAAD9C2F3FD033B62690986ED43D9C9361
+3645B82392D5CAE11A7CB49D7E2E82DCD485CBA04C77322EB2E6A79D73DC194E
+59C120A2DABB9BF72E2CF256DD6EB54EECBA588101ABD933B57CE8A3A0D16B28
+51D7494F73096DF53BDC66BBF896B587DF9643317D5F610CD9088F9849126F23
+DDE030F7B277DD99055C8B119CAE9C99158AC4E150CDFC2C66ED92EBB4CC092A
+AA078CE16247A1335AD332DAA950D20395A7384C33FF72EAA31A5B89766E635F
+45C4C068AD7EE867398F0381B07CB94D29FF097D59FF9961D195A948E3D87C31
+821E9295A56D21875B41988F7A16A1587050C3C71B4E4355BB37F255D6B237CE
+96F25467F70FA19E0F85785FF49068949CCC79F2F8AE57D5F79BB9C5CF5EED5D
+9857B9967D9B96CDCF73D5D65FF75AFABB66734018BAE264597220C89FD17379
+26764A9302D078B4EB0E29178C878FD61007EEA2DDB119AE88C57ECFEF4B71E4
+140A34951DDC3568A84CC92371A789021A103A1A347050FDA6ECF7903F67D213
+1D0C7C474A9053866E9C88E65E6932BA87A73686EAB0019389F84D159809C498
+1E7A30ED942EB211B00DBFF5BCC720F4E276C3339B31B6EABBB078430E6A09BB
+377D3061A20B1EB98796B8607EECBC699445EAA866C38E02DF59F5EDD378303A
+0733B90E7835C0AAF32BA04F1566D8161EA89CD4D14DDB953F8B910BFC8A7F03
+5020F55EF8FC2640ADADA156F6CF8F2EB6610F7EE8874A26CBE7CD154469B9F4
+ED76886B3FB679FFDEB59BB6C55AF7087BA48B75EE2FB374B19BCC421A963E15
+FE05ECAAF9EECDF4B2715010A320102E6F8CCAA342FA11532671CCDDCBA50602
+34052CD9880110AC8AE2063D59F02C4989F160A5B158EEE84C997494E265E333
+E3F82B04AC2D21142985AF73B57A331572295191CF63DD1665D56D8FCD318FD3
+84777E9A89C97A549EB2C7C90767A12035490A243373528CB2A6D06B4031F47F
+DB8DCE09D637C0019808976E0D84105572685B30E943C9F8949DE5B0A1004E55
+9405E50CCF8658E87EB85EB35934EB728F028EF149DF99096B4125E27864042E
+D584C285A14AD61E2406C60A8D6DFF82499553AEB009DE7CB020139BD13B4A70
+4CA79D769739A6857F99093F87495DC01B1C76A8366090C00444CCE184C666FC
+F521892C8C319315E0690BD5FFFAFA76C985E9FF0479F0A4623FDCB16C16F597
+A223CE3D922867EF83EED7F4EE40038475A9C6C83DE95B8830DD31A1865413A7
+14DD2A4BC5CD7E3F10B93FE032419B3675D2C77E03105904F0B48D4F0C4EAD7F
+C13B4F6D23C198778888445D9708107F8E75FD25F1EDAA11C426F6F83F0C6FC8
+45D49A5C013425EFD6B630781430EDD8067731F711ADCAC42F5D55B5761A55CF
+59942E126087E1F36182325D8DF6F95D3D7854E48D014246F1C7BC2B0A64CD6C
+3560035C652FFF1F98F3EE1E982E80B43D0B68F48345A0ACB7F68424C353B1B2
+1F86C206F50E34CF4DFBD17AD21C901D04F38B9A0577B9F9537A5716426EB611
+4752322F096D8E74DA45B423F6A279AAB18333900B345EA1D5076B48F6F4B38F
+BCD4B56AD44AE608798C23B6AECF7B90560AE8BC02562EF6114C33715A3F9060
+6F4CBE4881429FED88CE751121523364CAD91DDF048A98BCA2A7E46BE5B0F76E
+0E1F87FE4B7693212B520D00996BF61AF3B83CD78248D90D4EC85A09807C5E5D
+729F5F1ADEDF18430E34A30E7AA88CB294B3D9DAA2A70E50D191DD0716920B73
+15F7920A4F683E184D485BA121EFE44CCFEDB328A914B6AB44616429247D73B5
+8568F151BF43F2FAD60DF0C52F221ABB9A83AFB16C2F1DB24739E62613C30F59
+AFA7BD02F210A035BF4E3788E4EB9FDB573908C112480FB97E149D95D5195814
+8C6AC59C97061306D428D0EDFC2FD379EB399063CE93CB607C06C6DC810E6055
+46366C4F321BDB8E715BA3A10CF10660B470687AD7490AC4F305581063EEE6E5
+A8D7F88102F26729700B96E1F798981A78BA19A9C1588ACA980F07044E9A499A
+50948CD26584E88CBC93382CE27A65FBB729CCB54755DDA338E7EC7D9C4587E1
+02686FCBEE9E0FCD35B5FBD8D45355D3D7A1799078348A88CC16363D7AC9A343
+DCE3F3B2B3ED257BB593F43A3DD613C9248B8765F02526F8EA10D8431927D309
+C982161E338ED526AF7D1B9A51900F1C81F9C4B4EC2393DB46671EE828A8E770
+301B7185CC1644F1A7CAC4BAB1EA882235A2342F96EE96B29818AD5E47E9B52F
+266FB16118317C3873ABD94C8650DFF46D54BDBF4EEC640DF9CBBEB783D25692
+F9365027C29C7B5D1E98C25F1D52E48A0EBCBB89910F9316A33CD1C82C271398
+E0D616EBA7B6C85D0D1C3683084AE43293145529C8F1C748D4FADCD830E118F1
+54CDFDE0B9017944D649747033D410E51305F3CCB1793FAA854AABAA45085D8B
+09AA25AE240FB4F1951C99467A2DCA6EF619E5CD3B6F839489A1B1D4DC7D4D80
+2260A23063D4575B4504BF159F711EE3DD80B8659D26B6194C84490DE98C5A74
+B8951D5190EFA7C222A97C9A8C67A6CAF5225F98935CBF8B622B7ACB9F6A3BDC
+63E44D150D65A6F73C3DC53E7EFEE28933B7CA5FEF5DAB9C92E4B339F61038A6
+E8C601815A2006076699E023D753C8350393CDBBCCE607397B788B2CB5BBBA72
+A43D291E729C98B48AF62E3E5DF6592EFB7B1A6CCC29CAAA57F19F8E3A3BE440
+DEE7F2D8EC78FC68745F03CEC34D415F08F2B642D75E31DE2B8A568AC9C0D34D
+249652081BE01567831FB116C2712A38BF0B5A082D1A67CE5811831A44750EC9
+6B463CE7CEA438575E07DEEC0D2F3C7236811C7BE813643A56F09EEC8B2DA8DC
+02E739B51EDD2D97409AF63A5ADCF522BA79AE7E9FA2B3EE47261BE699E0C0F7
+9EA57C54280726BAF05B7B1770410CD66E5DAA4069B4C96FF3614C50825A543E
+ABBB721090DEA65BBD6A0552626020130C4DB7134D4E207B5338671FF8973257
+E7E45B2294D7C1D0A11423252B2F5DE93BC6EA9F7FDBC59470F81AE4D26291AF
+994258315ADE098855AEF00B4C708FD4073C679A9F9C1AF35255CD84E01A69C8
+B0E0A33E0D6B2E9F63BA0ADEC3CE5C72515F508DAFC301F2A7720CA9DE084C3F
+46D70C4FAD36894C5B927399EE60A0E380B55C3ECDD2D79DFA4152DE68909E5E
+D1D8C4B09BDBED68B844442D197B3B724FC9568B7246DDFB96A87EB43B071E5A
+B14173599C3B44E338018A5B9778D8896CE3650F350D32525FD5DA9D3CDF6C17
+407D914BE41CD2028D1549608695FE4167364BE44F83FBA21D5600CC9875B4E7
+EDFB47654B216D2EACF8D731617CAE925EBE5DBFC557E91C39B843411885A40D
+C976E7792B77FD6657B13FC5795726A5D81C06E3DD8F2782A3AEE7ED57FF145B
+830578E48AE647201E2E05B683D0C15182A1B15FA43A3008138253B1561BC103
+7643FC3EAB5EA93C07331A4AF9B0BE6A7E7B74BDD3C229155FE609F058C79C5D
+B7316E272ACCA44A4723359723AE3750E2337FA1821D12AF0A6F5224C1E2328F
+0F98F865B7D250F03F3E5E5B27C2F6F45CBEEA0D356DF9F3832BAF7953E50614
+825A8E58DC3A68FF69CD58E2EAB2A8AFCF4EF0CC79B308D1C4A36DAF19E4CD7B
+A6375262A39345207D21846092F69AD6174AF824417CAFBEDC9BE6B385C320B3
+0D1E5D0B308143926A54420A4A0B10038FDB5E89391A70E20D535B2A969A505B
+7D3FF33397FB0702A41B2BEFF8388BF6DA05371583E046C2B8ADD1207A4BF5FB
+FA574B7C57DC1844BE36C40FC4286E3C68295973774F7C447D2FF1D33C327941
+C0AB4FFEE95F25E9F2F74B152B4118E4F181583F5672DFB614534D1F2D4C5DDF
+3E6FFB5B5925FD380E6563843DF7A5578688B5E2FC43D1D3D40254006645D746
+2C14E82E9FC51C1478C46DC416D93AC4CEC8C44D36BFD70E3DF14848F4B20A3A
+79D34AE11C1A3F6EC764B6AA71DE5AD7690B3B74F06237ADD0A4A1825A2EC178
+A385E95AA3F5647B499EC899F1299217C5B8BDB81D8D159C4330C5FB762AF476
+DBCEA58822C8776C4E7E6684E6083DFA8736642B36F04F00199C158D8457F5EB
+E54FE9302D7A67CCE3BCE1A1A0971307EB4718118F1EFB729D1C0D39E48591FB
+DC866DB6BEB9B06FFB5BCEB8616A11C55DA3FA113110793BB2EB34B7CA2FAB4D
+0E5EA0481483346D36A7D38D53662D34801AA2FA99CAA968439244B36EA10AA4
+F7AA29BFE0420945A711CAD36F74481445A6C11DB5902D6D761F168448161D92
+FF9574BEF8812993FB966366F9BFAE810158BEAD9049A7EEDA5FD84C4B6DD627
+DD5CC62D5D86AEF68A259D22F6F58951D3BB60A9B92957C19300918D111C3942
+B2354447C2AA4C842AF7CA8EB39E815060C1494B8FAE5CEA88C52DFDF6704319
+2352940F28FF28F0FFF17A80456B313C64874307002B41968CF29D301D818F59
+6A2A3F195FA9428260144E55194C78364090993D751A7D0A38E729AAB355FA8F
+8554240B9829651FE4F1E7B73995815CF41B47494E12DACAA2D2C90B7B3331E1
+E57BF801E6C56B1F9AB8467408E731EEAB96F7F8B21886DD7C08162ED8934C31
+DD1826D4DACBF06954EC18D24F0FCC17DE0DF89CCE4F20375D28659B9D9DEFD0
+BF460BCC5E7A6C9284F96E664ABD3E196BFE2243E2DAFF73E770D19913DDD11A
+9E4BFA707DE2765A1A14642C4E25B9489E1CC5AB69C7704A8FDFBA357EF626CE
+2CE2C5553CB735CCEBE09CD402F4390672A9BD0D14AB0ECA49E68FD36AF9F68B
+E1A1130FF2B1EE0265ADE2B9178FA37801119B597A79949417D730DF7725FA9C
+A850A09610215B6CB23DC5F4EC4F877FCCB96A0D569F2F652C721536110B43B8
+AA84798564C10007DDD4D3A4022F04A585B047296A89635633F1DDB9E4331470
+5462BF6805C7EC56FB0C05C04DB26C1313E1D62CF420AC37409821BE8E6981D6
+DABCC542127C1A782575126A5414B7859F9EFEA68654E1693B6E70330E561567
+5A3FF5121F7A5DB3E969570A4D0A6F18E2F9E3916A2F7DA8EACC618A5C5DC49A
+DBF841340D4DC6C20ECF3BF0FE660B6406503AA794ED73BEAF0857CB0B77BEB8
+8E74AA23D9E29C1255AA3E5394EF7FB7D5881C1EB2208A9D8E19CEF5A7D1F30A
+C15401BFB7076656C7A9AD1A5FB7EF455C5D6DC268B4F2CC0219AE3B695C883B
+91BD91B3AF38BFADBC1C48F62AF9D6BC299A3E12AAC8A45653A5C12FA68ED5DF
+FF6C7837A976602617954F515457C1ED08E76F5707EA266C4B99A4C4E5A2C75E
+8F96C5830AEAE9ED480E8D2A6EFA2888F7D284FABE2A4A79BF9B95DE678028AD
+D49909DA39A9ADDC9E888044E8A746080B3226E6288DE98BDA0B7DFC0A2E252D
+3CCDA2C8D6FE722801F4319D3B4853D2A9C3855CEC8D85DE1497CD6C20E63AAC
+3463C06D96F1B06A96698FDAE97D78C6D42CBB50B973C913F33298539C9AF64C
+A305987A9C45E8B9F09D0D2C74178A5851E93700F91630D94660494BCC47EE42
+D91CF2550523EC3D94E3B12E71B4EB3CFB36D70A17E13057379ECA4E03E7AC33
+9FEA8B5509F8500B1EB6152E9FE4FEFBEE8F9A0D635F4BCA3A553C96BDBBD8EA
+43FFC181C232F545886C8B290A2103E50A1953838ACA14B53A3D8BAC2D43EC58
+0F88D8A853143C396BCA9E6B451C342D9C4A69F0E58FECDFA3A698ADE6F8014F
+11CF4C4B065AFC0077F56BFF8BEE3C9B1C34DB59BB828619A86C6369D06BDD0D
+187966104A4F6C43C0823AAE1869759860221BA22761974F80338B070A3B1E16
+574B85B70AE2B586E226AB8D23AA5168E8127BC25C7CC4329C016F536DD5DD2A
+8E3F22EEF06C62B79EC104DA7EB8EAA079C81D650190BEC6E72DBD40DB6E0BD0
+8A9472057B099FD114D7DD3EFD1F7D525595C543A41E768D53EF7DBCF2721FEE
+144CF4BD94D7E4718238F6DDD2DE97F86305FB8A840DE759A497B681B99A3760
+3987B1EF8BED5875DA48159949350D4B9C39B45383FF0CD7AD12456696A541E6
+1AC339981854EBB186BD50BF1499A53929A5D58A7ED77456D8A5A57740BB4F7C
+2720872677BACAE3F214DE3496D26BB65797121FEAEEA07ACDF6C17B8A517FEF
+4CD46540B9E868DA6812A17342826D35CFBD2A4A4CB7A555831AC63CCE739143
+D50EF8E95B3ECAD7E7B282E81F447D3DA7A786CD2A6A0D7A693A0C97A64E69B0
+B1B127723F7AD10AFE45B23404355F2796C12A981317C1CB23D5DD32AFDE47DE
+33F8C1F95D2B30319112F443EEE0895024AC662E2E8C667721F44C964A55F946
+4CFA7F6396CBF795AEE7239C17A078E82F918C36C5EE2AF9AC1C216335C60663
+3CB55AA5A2C3A82943C1E87E961C9258D694F5CE2A4D62BAD915FF67AF4E5476
+20EC9553033D6C8535ED023492A1E1992B591399872D80400B1834566DEA581A
+88AE5594FAFA02D28BEB0E30452ABC7863B96FF06AFF5BA71FEE4CE75002CC27
+C7635907373C05AC8FF008F98C6CFACF2F81BB951C57CE11E57D3FD8C0DDDF11
+B4DF3B369B1A2BC7799332284C2B4E1F2B12105E37B326FE0A469BCC3E52F462
+2F0BAD8CC908DA5097EAB1162DE4E4F7DC3FE926F03E2AA8304D6DFE850CE39D
+8367CD42481C9E591F5D9DA48545BB644FBD6BCB75A3D340FF36853C20F693C8
+4D24FCADD79E9BE374980443FD04F1FEC0C6E602B4D9E7C9CD4B193410C6A475
+6C93AC14FCADE84C185C180A92FF915F40E866122F3B172951CA0D1BBBE1E1F7
+EC16F2C44CC257F7B8BC6BABEB4D0444B028D072C056EFFA11F68988E9AF0A37
+F375C6B2121B50651DF7540B97CD4C54E06503407610B06BAA20635CE591256C
+8B65BAD4F5828E09B5949FC0DF3D294272A33CC6F91CE92A902FE7DDD8A1C4A0
+D8A79690956A5657C27985527106B220CF1D4C38D8E89754FE76A2CFFEBA611F
+87F4D41A870EF2C5975A633E21052C0553E1DD395FE2C2E96250D604E09998CE
+46E76A2F953F4D695531DF23EB5C8A324B82F6092A4B1319B3FA1C260268467E
+325381B791C76F174C9D80CF452ECFCD55D006BDF393E6224C301946512C9D4C
+CC353760A6D41CCCF52B0136AD7A25F6A0CDE82F24D05BB5A2F0138893AA3AB1
+1AB3A40ACB04955CEE6DB8A945C0F339ABB18F4F9A180FE51816462E32E1A558
+4725E759053C2C40FFEB9DDFD64136C594D445F0FF0859D524DCDD0179C086E3
+3DA8C6E4EF1F046D263DAAD35BA3FA6E701673D0E0EA1BC8B72BB888E4A92AD6
+816B11A9E982B4DAADB11CC873F5ED5AF0A54EFD5BAF1E8CA660788B72186ABA
+989EDFC842778E65823D307AA9994F26FEDB3413468AB07A76D1F120017CD485
+32602E2D0A1CC492BBB6313A4D238F43C4D2B97DA4E84E8C29530E98B7FAC340
+844B34B9313A025921ECF786A8DD125611281EAF6C48D3B92F18DF148962B7AE
+661F73F20F58DDC7FA1928C90B606F54B934922C2096B4B3A594E80474DCFA72
+D66B5C45790CB3C312380AF8C3DAF5558D2EDDDEF248CC5FAD73617C1F5FB94D
+17B28E3D4DE3CEDC47920EE42EB0134CF6692C7BFD27A6CFCEC0DC035781B3B1
+5541C90103EBFC3E3BE1EA4BA7DDD8930A1CC8617ED6BF9E717F702F42BC5111
+BD3980B0453F99088476FD07CE4E8BBD15F0274046D6E0002907327EFC61A57B
+CD0BF508C1B03C350F0E4435E4E0BE4FFB03E9978E91936BC85319AF1D74D126
+F3A7D83492148020C1486D6B062983DB025F2D3F54F69486C1C2FC32713BF819
+8A5030797BA9B1F9F47C7E6F0A7B7584177384D2CBC7D7627740BAE000D971C5
+4BD4922FD7C9AD8E9D76190171A6164D1FE7D9D20EBCC1B9391FC412B319EA96
+6C812C38F141ABF322365472728936569E516E61800A9F0C59BC11258C4F9691
+9DDD
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+cleartomark
+%%EndFont 
+%%BeginFont: CMCSC10
+%!PS-AdobeFont-1.1: CMCSC10 1.0
+%%CreationDate: 1991 Aug 18 17:46:49
+% Copyright (C) 1997 American Mathematical Society. All Rights Reserved.
+11 dict begin
+/FontInfo 7 dict dup begin
+/version (1.0) readonly def
+/Notice (Copyright (C) 1997 American Mathematical Society. All Rights Reserved) readonly def
+/FullName (CMCSC10) readonly def
+/FamilyName (Computer Modern) readonly def
+/Weight (Medium) readonly def
+/ItalicAngle 0 def
+/isFixedPitch false def
+end readonly def
+/FontName /CMCSC10 def
+/PaintType 0 def
+/FontType 1 def
+/FontMatrix [0.001 0 0 0.001 0 0] readonly def
+/Encoding 256 array
+0 1 255 {1 index exch /.notdef put} for
+dup 0 /.notdef put
+readonly def
+/FontBBox{14 -250 1077 750}readonly def
+/UniqueID 5000772 def
+currentdict end
+currentfile eexec
+D9D66F633B846A97B686A97E45A3D0AA0529731C99A784CCBE85B4993B2EEBDE
+3B12D472B7CF54651EF21185116A69AB1096ED4BAD2F646635E019B6417CC77B
+532F85D811C70D1429A19A5307EF63EB5C5E02C89FC6C20F6D9D89E7D91FE470
+B72BEFDA23F5DF76BE05AF4CE93137A219ED8A04A9D7D6FDF37E6B7FCDE0D90B
+986423E5960A5D9FBB4C956556E8DF90CBFAEC476FA36FD9A5C8175C9AF513FE
+D919C2DDD26BDC0D99398B9F4D03D5993DFC0930297866E1CD0A30EB76029337
+900ECFB1390CA5C0C3A04528044F266BA17BE487C79B94FAC6D6484684C5BFEA
+87BCCC77D40AD11552035E95E3007126418ED49B68468B38A14E88E68A267B98
+076F1C9769A5AFBC285E5B158EAC9F926F1D6C0B8F1D57D9C31D25AE27123518
+9D2CD92E5689E0213089BD268DA5E47525CB8EABAA4B78A15AEA34705889AB3A
+FFB8953B5B3482E52BFA0940630ADF8C0AC2177D907324299EE980E850F203CD
+B627962F43D5A678C44243CDE97853BDC6AB45FD5C09AD274DAF89929F583CC9
+CCC24BDFC68B92111055ABA5F26D2DC67C70906F71C2957701D65AE746A60C30
+40E6CB24B97FCDAD0487AE38A201FBF0E41BABD2181981A71940F1E707F91E5D
+C8CA50CB16D8702D188E56D014D92F76CE0B52ABDB9110E32438D2BBF3E6A40B
+7B005F10BB437812CAC6ED2996F7606DC962C4FDE207FF322782C343DF44CEC5
+FF06A55C630C20E9AE1B0D1C5673753C43BA0767D65D1B451CC6380D8BB3C4DC
+81E8FD8AA79BE993218686F29D3CD925566DD587F541A0DA1B1CC3BCEA2E6C7D
+5E1016F6917A871F1BBAD96AF9E867735017119A381FCF33EB2D3E1E7093FD90
+CDB0CED4818CFD9E201A03430CEC713620BE0D3254158931FB657C6AD4B2482A
+0E7D070D7497892E9E942DF58E88CAF0C8221BF36BF7C435BF2C683A4A2EF4CB
+E85820A8AD3486155A40143011BA9D76297F46DEF69ECA4596D6E4CAABF84091
+22A96A4BC78A8DD072FEB759A68A44BE1164638B6D952147EE3C628F9A022060
+1D1941E73310943FA782532ABB1116532AD67AEFE0758C051241E301C7E13A98
+6447EB0180BF6799814BEA4DC0F727D0A40B7BC3B1269CDE174453D6A3C4479C
+146001CF717DE25AC1BE5AEA5F2F1C17719251C429D3AED19EFB5CC5CD9C6C6D
+AD91024AA3CD58A7EC276A454C3C016D36603D074B366F4B5B93A198B5C03723
+A061F857E222589A77D5E0B27D294998C0C551573E29E4748F784EEDEB7BC308
+13D6B9D78EA12F4E464AFF3399D33F3CFF2471E3A730D25F221B37845E52D1D8
+F272F166CABF66F8A08FF9E428DF81619F9573F4F0E2390BA09FA1782331AC7F
+D9564ECC9A8836EE6407D6EBABD029035949EDF3DA2CC875B18A90A8D6FFB33F
+1DBD9947A48ECD0FFEBA9F747A36741D47CDD3BF09EC48A7DDF8E4C1477A4400
+13770CC2067D4C11F352860FBD79700AE8D5957B29F050DAC1B8A64286568EF9
+762EF729F66B46225D5B72AE2A58CCD92BAE6FE0D5DEE63A3D1360CBC31DB3C9
+B11E163A518F52A25E9CE9ECEF77E962AF8DE99168FD75E2B74C84DFE88F2A2E
+2ABC8A13C70122A60972797DDEA793695D57A4E2DE5C62BA5D839FEA46542C55
+1F7539C2CB9BA7D1D3D8BCEBA8BFBD73D4E66EF4EA4A9903EF77569FA280FE99
+1A01C83081509863AA8161094A9D0ABFD817BCCF2B7FA8577AE3C89B5F1CB2A5
+80BD19BBE6D773443D6CDE7C8521687374F68D4677CE44F36CA03BAE22089347
+227BFFF480165865DD783BB2FBA12F197D10133AA0B1388A0D3957EA0B737CE0
+77159FC49689BAF7B6187AE0E42CD270AC757B759248118825C7F11ED6E338BA
+54E7631900E89DBE72DEA9C130814CA223413E430A815705518AF9745DDCF669
+6D1EC478E7A880D2553E4070E27A1599EA773D68FD0F13C0E057732208F02C43
+FF4E68F0CA7177F6B2686E91ABEF0F15ED6AF63242B55AC14C144141E87D9F24
+FCB1FF3556202E256C3D359A3726CD25D13E11B686BE15AEBE3DFB356B7CB441
+9DC47CD312C88D51CD84958A8ECEA335E8DE69B00E653106F26820DF0C3C4667
+A8947854F25C1073702A14F53DEF696B012B0D211F32242EFE99F2BABB32E3F3
+5346F68A97692646DE3142919ACD59287184D0B59BC90CE7B75ED32C189577CB
+F55D7F7D3563C3709C0CE67ED942FE4B14848DF95F65B9634BA75A2A6B6A7AAE
+51A1B9E12D918CBC492BF6073A338DB40FDA194C5E46E1A7D4DF131D7534BC48
+7B89A95E310329A6F32D828DEDB3CBE46104A5B4960D3C0E4ABFB92BDF628173
+7EDFC9D272E44370368D1D32B024CF725C2F942EB5785394F22209693130B9D7
+4B1633435A3E24F85576388CCB2CCBD98A9070BF40BAD1F5D06565FCA3BE78C6
+5E0C2A5755C87B6A6C4A660940F5C026D667A29C37BCD981A616E5000DE5E2F7
+AF88CA1445C6CA29D81CB1C8647FF335C08DF40950A164D6EA0817836BBC6FF4
+CBEA6410C5F354054A51041236B49C49A883233BB7210106A8BCEAC9183C5CDC
+804DDF7C1E1B5FB1203E170EF9711BD6A63A711811DABE1ABD6235828D9BFF43
+7DBF3B1B6385B0D8749D84C0532588FE1D837FA3072FF7C1AE4E4D4B5DFD2237
+F056EB14E1FAA15EE3C415B046F6A46711991451A2678B2FFF5F86CAA806BE3B
+ED5942ACE3563566B1526109009A07625740D3CECE6B52F9546A14D29FABA7F1
+12FFB64499B71AF243C91C951EE95E2AB9C52575F2D90AA5B457717CEAF44556
+AA18FB650A1429E6E5ED4238EDB8EEF328E39AFBEF048F05B6CBBD901F7D98BE
+4CD82D749E731C33E91B801F32939BA71A69DCB733279E4DB9AF9911A25AF6F7
+09DF1228EC1B5C833C22A10B2E552058ABDBBAA8F6059F947311B64B58C02C1A
+EE91CC211E972A65E57376A9CF481620520A4378BC1A19EBDAEBB60491D489C2
+92037FA955C0E50B8EDAF1986F3456808B9F3EBC1CE52E0FC81A007BAE2FA033
+07C01BD74F3F1ECB0CFA070A79FC4B9E93F9A2CC200B8620132ACF165417DC34
+7BAF879A162E5BB060941B829551BFBF5DD9C09B76B7E08BFA31A02AC694B709
+E7009BEA4D0F6C4E883AD559B1E3585463ADE8E1489CA8D74F330F1ED2C5F54A
+F43BD939D92162D0AD5CC29110F402BF6052D23E7EF27861BC01AF17CEBA7F28
+03872C31E31958D397526A4F7CAC1C00ED04FFF06C2D930D5F605D0DECAB16C6
+4FA89945E4D9AFED2B867BCDC2F0125230468628245ED6C5FE0BA9D43544663E
+263DAF27AF9349922C0426C15C67CEBDD3E2B60746C3744A9BE37173AD5F681D
+06CFAA218F13F32DA26148F5592FCA4C2771D8E6DA33BFA17E9792EF810B0125
+208A83465E38B224C001DC6B130F092144E6DCABC9287B2F3E9AE8531DAB53C0
+6EBF11F02FC25BF06A63820822D8D62145EBDA2ED6ED1FD3B4A318CA1411B4E3
+5376B8F8A63C57195BC673B31C81CAC9520746E1ECE97091599FD601A43DCEFF
+5606372AA9E324D237AFB3E2AF6186CF8179B1A6500E4423EE16A6AFFEBC1D3D
+F28EA066FD1EFB7C25A7A16243F3AA4BD72E38DDD847EB841DF1FDE171FEA489
+DD8D9DB8EEECC48C18DBC3CF03B9418156036318531490547F1D8E5A2FFD38C0
+05265D02D28817012F687306391DC3F34ED287CB5FDBF339334EDD7E8635F7A9
+EBDF631CB9BA155A2B4C4BDB5C42BFDB24CD7B0E8402D71E67026F1B48BAA90A
+3E7DA44385920AED19266AE5372C9595F867023119D5594FEE2B0A76BB77ED16
+FD481BB64FCC5B21E81A07599202D5AB25949D69B6F1B1D73701D90BBCCA96C9
+21FD851A399E8E6332DC64B22CC5D5121FC3018284ADCF27D788D1914489BDC9
+F8067D59849C4F52EF69431C7574ECC1FDB46BCDD7AC53A666113DA6557F69A2
+7C1B3B4BED67F2BB8B3190C4E55221560CFD01181652C70B1D208BCC71CAC109
+D63092192587890C6CA8BF75C5C34073A0BC5CA11E1A4C047106B84237633CB0
+D8FF2059A2E0838B09B3BDF1394B34E07F43C8D4C3CEC6C8E6B07C12A2EE435F
+F4594597D6E4368BFF145D5C57BBB930B61322E33E70E3F8115EBA619F35A17D
+6057F79F20B68A77D9E013646361B615AA776B78F8B9E5CF5A4D185A94BF3322
+20AD554869AEAC58109FCF9063E3638DC53D7AC076937D93D52710945485A93D
+3B6602BB155957BB3E59B5C4B5B8BE774610F923745D2E1F0BB1C42B179F8154
+0A87FD77E6983717FE051D1B84F738A1BB8C1319BF8C6DFF9F35FE6E294DE627
+D844AE198E6A49ED46D9D5C673849DDFA612EF4FCD3BE2B229D8DCE55AF5905D
+70F1D1B294E77988DFDFAA2AADC74B68854D35CED851B85E523782CE772596EC
+1DD0E3092C1DE088F16F823647DAF41A55F32CFCB0170DF01DF8B1D0269FC45F
+D947C9523949763590AEB64B93DD2570C365A80B13F46D26572E41D54BC24DA4
+18A97241E313E0E9129822BF3D41D9425BAE987E71D28C4F945B7D119D6BE251
+931856498C3325831F2E3DAA7962D3E36552EEDFE74904BA7994D628263F1ABE
+46C0CDB3FEB1527E760F41D6DB7073F40A4785757CFF083A70365E33E2FF0E7E
+9551990BCE66512286566288FCF5763B09888F5C9C74FFA734402E85FEC9BBCC
+17F29625799C00E528289F7797EA6445301019EE0CCEECFC8C53682835D62493
+13B582005DDED5FB2579136CEFA2330D942BB9CC42F6ABDE43DBAD7659A95941
+493740B0B7F0D6DDDE03229FEDDF4BCEB228DD3F423FF943C886EEB01E83CDED
+01855E010751342F0E14B35DDAAB808CDDF73020C08D13249257BBC8EE345707
+FC3CF03A2015DACC16922A4EA675CA03FA5D3239D057B906A6284D1A227E620F
+6A99563D8C53EEB4B13CFBAA2042A789379029394CC56FA1D9DDA15EE7EA8A5C
+B645E142DE7FF488B24E702102DFF94B03003B4CF023F7297F65D92272462C59
+91C8545446BF85704C4CE17A5971306282ECA90A7DC0793075EE7E8EC45EEB63
+91970D490C69A5A9C43C9F3A33743774DB1D27FE43B4FD78401FB83F23F676E7
+DDA6A503BA9BA01065321A9265317F313C7615CD644F655C6BB9CEC0E229AC60
+358134D13AC64E3EAEED5FB4530B91E0107BFC7EBAA9FFF01101A7F4CB51880E
+D24BF289D174A3126C8703148946BED0283E8E245926C158758221146ACECFC9
+BE0A34C7CBBAE81F4BA066D1BB720F510B6B18FAEEDC524DB0B4B27861BBF819
+80B98744CF172168633AE0BB2CF749932C11E2CA13D33FFD8BA0D81E3CE82ACB
+86E5F8172539C59D378C56F30FE598E5647B8A784873D8F45F5F838619955606
+47FA07BD1A37086521EDC85C7542BA517FF88AD1FC3290CE74C058B22C2524F5
+C7186DA00815933D4B607E1CBD786C94031D115BCD7017ADDD7BBCDF9F57239C
+193EB236CD74484A5562EC2D04A60F18D6AA3CFF4F00B67333CA88C4A6366A08
+9DF8D19A7214DB9FF33E5414042E3B23EFEE3497ACA3E359149DC0E6283AE873
+4597E8CA786267933BE5535E4DC338856D71AB4A694F474281B033F8DE9BAC67
+5843441073145AAE0F12AD1ECF97F5DED358DF507364C20AD747DE92EEB75CEF
+3E82D0EA3837600C562647EF86B81E39E9C3FAB696BD0C792C1FC7C5736A23A2
+CA60F33E40AF665DC59BF8D3FF72300D18C0AC00B88AC48D2EF636677DD30180
+09222B9AADD689836DA581E03FAC623F82BC337F5605C68C10A234A9F01E7DB3
+7FD7BF4DF2327673170B9CFA5382821C3CCEE712B8BCC8C2E78FD2C6A046539F
+85078403ABA71ADC37DA6F659904F50BA5E35F6CF0DE0002DD8AF8C05C7C6CD2
+0DDB3F9F5BD625D533A0F124F201993A674F4ED6BC0E98FDD32BDB787502B0F8
+3B5905A34A232917C7B3A784F39F2932C1CE7D72BE29F2EDB37F1EB22095A043
+B5D995960F6C7AD9178DF28CC5F52A7824CE7029DFA2EDB8101BA16A49C3658F
+45C0BF7E0C4A111E6DA005A90E85F7633B2DFB32B7875FCB30013AC19F7A1487
+61F2D08BF50BCB8F71BA19AB6F0C601FFB63CC078105A7A0DF2FAA746082FF58
+A9AC35DE1B4880812AFD040E9972B3DDDF912C7ECD2C613AD5871DC941297BC0
+507169D620921218C9CCBA90D874E295AEBDA0BBD925AEE6FAF65C2E9968826E
+C2C2521719AB3C22E3ED298BD9D4172DA037D9AFD2B9EF9300C56BD15A0469D2
+AA3174AFF5565CA40C481C0CF4B44873F54E75CF26FDA98C5F9DEA22D1DF53FB
+1B90E5E6C25A6188D751C27FBDBCF014C4EC1318E4B5A67BCC611041042F2861
+74AB1FA1E9984DDCCE0EE594FE4D6278D72CD70CDF362A62FEF8E8D9C150D2F2
+22C566EB5C68558DDA8B1772BE703F45AD4352FBACE83BEB46FBD76EF2853C5B
+B48F2DF11C4CBD7CABB1C01C3457B0AA9B4BB42EEC2AE978E59F6CC9426B1C3D
+054531DCBD2F0DDFBD05F1981D9B019BDC9E648CCD7AD989CB7FDD9435340487
+4C8624E4EA97EA461B7BC2C2623D535DBB0E8C606094311CF347F03EBDD307FA
+8EBCCB0CCE6F7460C9D6596BF737E1576268EBE94C01ECF921EB15AD114EC9E5
+13284F8B80632AA7A708D4427729DAC2F57B1E4E2A7D57E8E95291C8FBD4E030
+BD39E1F78374D524E536DF06CAAFE424A6B185B5D72FFBFE13E51F7F2E958EE6
+E86B0479D302C06FD6E53538DDC2A83581EEBC68AF46422D46BD7B47E493904A
+7298263C9111939B52A59671AE3BFB7DAA5FF82558D00BCC7E3E88776AD6EDDE
+812DAFDB11605A2F2279F37D098B922B0428705DED2998AED23BA143D59864D9
+208DD6ABA90BFA9417F7E92A21ACC2D7D74E4AFEC64F41431D594864395B52B4
+05B739DEC37BA10468B02AD951570941F4CE0CFBF08FF9070E46F7893E675E08
+7912FF01225110D9D8541CA20D606B735153690CC4E1160FAC3A09A8DF18D44E
+3E764658AF3ED99664E15135C8217E92406F8E74E4EE7B14912AA980BD13BDA2
+B1EE3E061E34E26D9F4587A9A0C73A3F948198DD4807CBC40F7DC49AEE39825C
+EB1793DB29945BCCD361EAC57EA564539B0492BBCA324DB85FC324C3DE28D98D
+964FCE8FD2FF9AC6610FCBFF0CF86BE06E79C724BFE081246373B500C6E0903B
+3A7A6FFB080A
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+cleartomark
+%%EndFont 
+TeXDict begin 39158280 55380996 1000 600 600 (report.dvi)
+ at start /Fa 133[33 40 40 54 40 42 29 30 31 1[42 38 42
+1[21 40 1[21 42 38 23 34 42 33 42 37 83[42 13[{
+ TeXf7b6d320Encoding ReEncodeFont }24 58.1154 /CMBX7
+rf /Fb 131[70 35 28 33 32 45 32 37 23 28 29 32 35 35
+38 56 18 32 21 21 35 32 21 32 35 32 32 35 9[67 50 50
+49 38 50 52 46 52 50 61 43 2[26 50 53 1[46 51 49 48 50
+6[21 35 35 35 35 35 35 35 35 35 35 35 21 25 21 2[28 28
+21 3[56 35 20[41 39 43 11[{ TeX74afc74cEncoding ReEncodeFont }71
+58.1154 /CMTI7 rf /Fc 138[51 51 51 51 3[51 51 1[51 5[51
+3[51 97[{ TeX09fbbfacEncoding ReEncodeFont }9 99.6264
+/CMTT12 rf /Fd 134[40 1[55 38 45 28 34 35 1[42 42 47
+68 21 38 1[25 42 38 25 38 42 38 1[42 9[83 2[59 47 61
+1[56 1[62 3[44 32 2[54 56 1[59 1[62 18[25 30 30[73 1[47
+12[{ TeX74afc74cEncoding ReEncodeFont }37 83.022 /CMTI10
+rf /Fe 130[31 1[31 1[31 31 31 31 31 31 31 31 31 31 31
+31 31 31 31 31 31 31 31 31 31 31 31 31 31 1[31 1[31 31
+31 2[31 31 1[31 31 31 31 31 31 31 31 31 31 2[31 1[31
+31 31 31 31 31 31 2[31 31 31 31 31 31 31 31 31 31 31
+31 31 31 31 31 31 31 31 31 31 31 31 2[31 1[31 31 31 33[{
+ TeX09fbbfacEncoding ReEncodeFont }78 58.1154 /CMTT8
+rf /Ff 133[35 2[35 35 35 35 35 35 1[35 35 35 1[35 2[35
+35 35 35 1[35 35 35 35 33[35 1[35 2[35 1[35 4[35 35 35
+1[35 35 35 45[{ TeX09fbbfacEncoding ReEncodeFont }29
+66.4176 /CMTT8 rf /Fg 255[45{ TeXbbad153fEncoding ReEncodeFont }1
+41.511 /CMSY5 rf /Fh 205[28 6[43 1[22 22 40[{
+ TeX0ef0afcaEncoding ReEncodeFont }4 41.511 /CMR5 rf
+/Fi 135[33 3[23 28 115[{ TeXaae443f0Encoding ReEncodeFont }3
+41.511 /CMMI5 rf /Fj 145[34 3[20 2[34 34 47[0 5[19 14[66
+3[66 66 6[52 52 16[34 2[52{ TeXbbad153fEncoding ReEncodeFont }13
+58.1154 /CMSY7 rf /Fk 135[38 2[39 25 31 3[33 41 59 21
+35 27 23 3[31 1[30 1[36 21[56 12[52 34 52 1[20 58[{
+ TeXaae443f0Encoding ReEncodeFont }19 58.1154 /CMMI7
+rf /Fl 167[120 54[66 66 5[62 26[{}4 83.022 /CMEX10 rf
+/Fm 134[41 47 59 1[48 30 39 37 1[42 40 50 73 25 43 1[29
+1[40 41 39 43 36 36 44 12[49 5[67 2[71 3[65 2[69 2[62
+2[65 2[23 23 40[41 2[37 14[{ TeXaae443f0Encoding ReEncodeFont }32
+83.022 /CMMI10 rf /Fn 152[42 42 52[83 16[83 7[65 3[65
+4[42 11[42 65 1[65{ TeXbbad153fEncoding ReEncodeFont }10
+83.022 /CMSY10 rf /Fo 134[59 59 81 59 62 44 44 46 59
+62 56 62 93 31 59 1[31 62 56 34 51 62 50 62 54 9[116
+1[86 78 62 84 84 77 84 88 106 67 2[42 1[88 70 1[86 81
+80 85 9[56 56 56 56 56 56 56 2[31 33[62 12[{
+ TeXf7b6d320Encoding ReEncodeFont }51 99.6264 /CMBX12
+rf /Fp 134[44 44 60 44 46 32 33 33 1[46 42 46 69 23 44
+1[23 46 42 25 37 46 37 46 42 7[62 1[85 1[62 60 46 61
+65 57 65 62 76 52 65 1[30 62 65 54 57 63 60 59 62 9[42
+42 42 42 42 42 42 2[23 6[23 26[46 12[{
+ TeXf7b6d320Encoding ReEncodeFont }55 83.022 /CMSL10
+rf /Fq 133[31 37 1[51 37 39 27 28 28 1[39 35 39 59 20
+37 1[20 39 35 22 31 39 31 39 35 11[53 51 39 52 2[55 53
+2[55 1[25 2[46 1[54 51 50 53 6[20 11[20 24 20 55 1[27
+27 11[35 14[39 1[41 11[{ TeXf7b6d320Encoding ReEncodeFont }46
+66.4176 /CMR8 rf /Fr 201[30 30 30 30 30 30 49[{
+ TeXf7b6d320Encoding ReEncodeFont }6 49.8132 /CMR6 rf
+/Fs 133[42 50 50 69 50 53 37 38 39 50 53 48 53 80 27
+50 29 27 53 48 29 44 53 42 53 46 11[73 66 53 72 72 65
+72 75 91 57 1[49 36 1[75 60 63 73 69 68 72 6[27 48 48
+48 48 48 48 48 48 48 48 48 27 32 3[37 37 27 26[53 12[{
+ TeXf7b6d320Encoding ReEncodeFont }63 83.022 /CMBX10
+rf /Ft 133[44 44 44 44 44 44 44 44 44 44 44 44 44 44
+44 44 1[44 44 44 44 44 44 44 44 44 3[44 1[44 6[44 44
+44 2[44 44 44 44 2[44 44 44 44 44 44 2[44 3[44 1[44 8[44
+44 44 44 44 1[44 44 44 44 44 4[44 35[{
+ TeX09fbbfacEncoding ReEncodeFont }54 83.022 /CMTT10
+rf /Fu 133[30 35 35 47 35 37 26 26 26 35 37 33 37 55
+19 35 21 19 37 33 21 30 37 30 37 33 3[19 1[19 2[49 1[49
+49 47 37 48 1[45 51 49 60 41 2[24 49 51 43 45 50 47 46
+49 1[31 1[51 1[19 19 33 33 33 33 33 33 33 33 33 33 33
+19 22 19 51 1[26 26 19 51 55 2[33 19 19[38 38 12[{
+ TeXf7b6d320Encoding ReEncodeFont }76 58.1154 /CMR7 rf
+/Fv 134[71 1[97 1[75 52 53 55 1[75 67 75 112 37 71 1[37
+75 67 41 61 75 60 1[65 11[103 94 75 100 1[92 101 105
+4[50 1[106 2[103 97 96 102 9[67 67 67 67 67 67 67 9[37
+39[{ TeXf7b6d320Encoding ReEncodeFont }41 119.552 /CMBX12
+rf /Fw 133[34 41 41 55 41 43 30 30 30 1[43 38 43 64 21
+41 1[21 43 38 23 34 43 34 43 38 12[55 43 4[58 4[28 2[50
+2[55 1[58 18[21 26 21 30[43 43 45 11[{
+ TeXf7b6d320Encoding ReEncodeFont }37 74.7198 /CMR9 rf
+/Fx 134[47 1[64 2[34 35 36 2[44 9[41 49 39 49 43 21[69
+9[67 6[25 58[{ TeXf7b6d320Encoding ReEncodeFont }14 74.7198
+/CMBX9 rf /Fy 129[42 2[42 37 44 44 60 44 46 32 33 33
+44 46 42 46 69 23 44 25 23 46 42 25 37 46 37 46 42 3[23
+42 23 51 62 62 85 62 62 60 46 61 65 57 65 62 76 52 65
+43 30 62 65 54 57 63 60 59 62 1[39 1[65 1[23 23 42 42
+42 42 42 42 42 42 42 42 42 23 28 23 65 1[32 32 23 1[69
+1[69 42 7[60 11[69 46 46 48 8[65 69 1[{
+ TeXf7b6d320Encoding ReEncodeFont }89 83.022 /CMR10 rf
+/Fz 134[51 2[51 54 38 38 38 1[54 49 54 81 27 51 1[27
+54 49 30 43 54 43 1[49 11[73 1[54 7[76 1[35 4[75 70 2[76
+17[27 4[38 38 40[{ TeXf7b6d320Encoding ReEncodeFont }30
+99.6264 /CMR12 rf /FA 139[59 46 4[61 4[30 2[53 56 17[61
+4[81 78[{ TeX0ef0afcaEncoding ReEncodeFont }8 99.6264
+/CMCSC10 rf /FB 134[106 1[144 1[106 102 79 104 1[96 109
+106 129 88 109 1[52 2[92 96 1[102 100 106 18[140 1[118
+2[70 2[123 4[140 23[75 75 40[{ TeX0ef0afcaEncoding ReEncodeFont }25
+172.188 /CMCSC10 rf end
+%%EndProlog
+%%BeginSetup
+%%Feature: *Resolution 600dpi
+TeXDict begin
+%%PaperSize: A4
+ end
+%%EndSetup
+%%Page: 1 1
+TeXDict begin 1 0 bop Black Black 930 425 a FB(Implement)-11
+b(a)g(tion)63 b(of)i(a)379 632 y(F)-20 b(ast)64 b(Ar)-11
+b(tificial)64 b(Neural)h(Netw)l(ork)1187 840 y(Librar)-11
+b(y)63 b(\(f)-15 b(ann\))1452 1164 y FA(Steffen)38 b(Nissen)1475
+1280 y Fz(luk)m(esky at diku.dk)1520 1479 y Fy(Octob)r(er)26
+b(31,)h(2003)1118 1695 y Fz(Departmen)m(t)33 b(of)f(Computer)i(Science)
+1095 1811 y(Univ)m(ersit)m(y)h(of)d(Cop)s(enhagen)i(\(DIKU\))930
+3299 y @beginspecial 0 @llx 0 @lly 371 @urx 257 @ury
+2160 @rwi @setspecial
+%%BeginDocument: figs/net_no_text.fig.eps
+%!PS-Adobe-2.0 EPSF-2.0
+%%Title: figs/net_no_text.fig
+%%Creator: fig2dev Version 3.2 Patchlevel 4
+%%CreationDate: Fri Oct 31 01:02:48 2003
+%%For: lukesky at luke (Steffen Nissen,,,)
+%%BoundingBox: 0 0 371 257
+%%Magnification: 1.0000
+%%EndComments
+/$F2psDict 200 dict def
+$F2psDict begin
+$F2psDict /mtrx matrix put
+/col-1 {0 setgray} bind def
+/col0 {0.000 0.000 0.000 srgb} bind def
+/col1 {0.000 0.000 1.000 srgb} bind def
+/col2 {0.000 1.000 0.000 srgb} bind def
+/col3 {0.000 1.000 1.000 srgb} bind def
+/col4 {1.000 0.000 0.000 srgb} bind def
+/col5 {1.000 0.000 1.000 srgb} bind def
+/col6 {1.000 1.000 0.000 srgb} bind def
+/col7 {1.000 1.000 1.000 srgb} bind def
+/col8 {0.000 0.000 0.560 srgb} bind def
+/col9 {0.000 0.000 0.690 srgb} bind def
+/col10 {0.000 0.000 0.820 srgb} bind def
+/col11 {0.530 0.810 1.000 srgb} bind def
+/col12 {0.000 0.560 0.000 srgb} bind def
+/col13 {0.000 0.690 0.000 srgb} bind def
+/col14 {0.000 0.820 0.000 srgb} bind def
+/col15 {0.000 0.560 0.560 srgb} bind def
+/col16 {0.000 0.690 0.690 srgb} bind def
+/col17 {0.000 0.820 0.820 srgb} bind def
+/col18 {0.560 0.000 0.000 srgb} bind def
+/col19 {0.690 0.000 0.000 srgb} bind def
+/col20 {0.820 0.000 0.000 srgb} bind def
+/col21 {0.560 0.000 0.560 srgb} bind def
+/col22 {0.690 0.000 0.690 srgb} bind def
+/col23 {0.820 0.000 0.820 srgb} bind def
+/col24 {0.500 0.190 0.000 srgb} bind def
+/col25 {0.630 0.250 0.000 srgb} bind def
+/col26 {0.750 0.380 0.000 srgb} bind def
+/col27 {1.000 0.500 0.500 srgb} bind def
+/col28 {1.000 0.630 0.630 srgb} bind def
+/col29 {1.000 0.750 0.750 srgb} bind def
+/col30 {1.000 0.880 0.880 srgb} bind def
+/col31 {1.000 0.840 0.000 srgb} bind def
+
+end
+save
+newpath 0 257 moveto 0 0 lineto 371 0 lineto 371 257 lineto closepath clip newpath
+-84.3 354.8 translate
+1 -1 scale
+
+/cp {closepath} bind def
+/ef {eofill} bind def
+/gr {grestore} bind def
+/gs {gsave} bind def
+/sa {save} bind def
+/rs {restore} bind def
+/l {lineto} bind def
+/m {moveto} bind def
+/rm {rmoveto} bind def
+/n {newpath} bind def
+/s {stroke} bind def
+/sh {show} bind def
+/slc {setlinecap} bind def
+/slj {setlinejoin} bind def
+/slw {setlinewidth} bind def
+/srgb {setrgbcolor} bind def
+/rot {rotate} bind def
+/sc {scale} bind def
+/sd {setdash} bind def
+/ff {findfont} bind def
+/sf {setfont} bind def
+/scf {scalefont} bind def
+/sw {stringwidth} bind def
+/tr {translate} bind def
+/tnt {dup dup currentrgbcolor
+  4 -2 roll dup 1 exch sub 3 -1 roll mul add
+  4 -2 roll dup 1 exch sub 3 -1 roll mul add
+  4 -2 roll dup 1 exch sub 3 -1 roll mul add srgb}
+  bind def
+/shd {dup dup currentrgbcolor 4 -2 roll mul 4 -2 roll mul
+  4 -2 roll mul srgb} bind def
+ /DrawEllipse {
+	/endangle exch def
+	/startangle exch def
+	/yrad exch def
+	/xrad exch def
+	/y exch def
+	/x exch def
+	/savematrix mtrx currentmatrix def
+	x y tr xrad yrad sc 0 0 1 startangle endangle arc
+	closepath
+	savematrix setmatrix
+	} def
+
+/$F2psBegin {$F2psDict begin /$F2psEnteredState save def} def
+/$F2psEnd {$F2psEnteredState restore end} def
+
+$F2psBegin
+10 setmiterlimit
+0 slj 0 slc
+ 0.06299 0.06299 sc
+%
+% Fig objects follow
+%
+% 
+% here starts figure with depth 50
+% Ellipse
+7.500 slw
+n 2025 1800 225 225 0 360 DrawEllipse gs col0 s gr
+
+% Ellipse
+n 2025 2700 225 225 0 360 DrawEllipse gs col0 s gr
+
+% Ellipse
+n 2025 3600 225 225 0 360 DrawEllipse gs col0 s gr
+
+% Ellipse
+n 2025 4500 225 225 0 360 DrawEllipse gs col0 s gr
+
+% Ellipse
+n 4275 1800 225 225 0 360 DrawEllipse gs col0 s gr
+
+% Ellipse
+n 4275 2700 225 225 0 360 DrawEllipse gs col0 s gr
+
+% Ellipse
+n 4275 3600 225 225 0 360 DrawEllipse gs col0 s gr
+
+% Ellipse
+n 4275 4500 225 225 0 360 DrawEllipse gs col0 s gr
+
+% Ellipse
+n 6525 4500 225 225 0 360 DrawEllipse gs col0 s gr
+
+% Ellipse
+n 6525 3600 225 225 0 360 DrawEllipse gs col0 s gr
+
+% Ellipse
+n 6525 2700 225 225 0 360 DrawEllipse gs col0 s gr
+
+% Ellipse
+n 6525 1800 225 225 0 360 DrawEllipse gs col0 s gr
+
+% Ellipse
+n 2025 5400 225 225 0 360 DrawEllipse gs col0 s gr
+
+% Ellipse
+n 4275 5400 225 225 0 360 DrawEllipse gs col0 s gr
+
+% Polyline
+gs  clippath
+4065 1830 m 4065 1770 l 3913 1770 l 4033 1800 l 3913 1830 l cp
+eoclip
+n 2250 1800 m
+ 4050 1800 l gs col0 s gr gr
+
+% arrowhead
+n 3913 1830 m 4033 1800 l 3913 1770 l  col0 s
+% Polyline
+gs  clippath
+4050 2733 m 4076 2679 l 3941 2612 l 4035 2693 l 3914 2666 l cp
+eoclip
+n 2250 1800 m
+ 4050 2700 l gs col0 s gr gr
+
+% arrowhead
+n 3914 2666 m 4035 2693 l 3941 2612 l  col0 s
+% Polyline
+gs  clippath
+4039 3631 m 4081 3589 l 3974 3481 l 4038 3588 l 3931 3524 l cp
+eoclip
+n 2250 1800 m
+ 4050 3600 l gs col0 s gr gr
+
+% arrowhead
+n 3931 3524 m 4038 3588 l 3974 3481 l  col0 s
+% Polyline
+gs  clippath
+4033 4529 m 4083 4495 l 3999 4369 l 4041 4486 l 3949 4402 l cp
+eoclip
+n 2250 1800 m
+ 4050 4500 l gs col0 s gr gr
+
+% arrowhead
+n 3949 4402 m 4041 4486 l 3999 4369 l  col0 s
+% Polyline
+gs  clippath
+4076 1820 m 4050 1766 l 3914 1833 l 4035 1807 l 3941 1887 l cp
+eoclip
+n 2250 2700 m
+ 4050 1800 l gs col0 s gr gr
+
+% arrowhead
+n 3941 1887 m 4035 1807 l 3914 1833 l  col0 s
+% Polyline
+gs  clippath
+4065 2730 m 4065 2670 l 3913 2670 l 4033 2700 l 3913 2730 l cp
+eoclip
+n 2250 2700 m 2475 2700 l 2700 2700 l 2925 2700 l 3150 2700 l 3375 2700 l
+ 3600 2700 l 3825 2700 l
+ 4050 2700 l gs col0 s gr gr
+
+% arrowhead
+n 3913 2730 m 4033 2700 l 3913 2670 l  col0 s
+% Polyline
+gs  clippath
+4050 3633 m 4076 3579 l 3941 3512 l 4035 3593 l 3914 3566 l cp
+eoclip
+n 2250 2700 m
+ 4050 3600 l gs col0 s gr gr
+
+% arrowhead
+n 3914 3566 m 4035 3593 l 3941 3512 l  col0 s
+% Polyline
+gs  clippath
+4039 4531 m 4081 4489 l 3974 4381 l 4038 4488 l 3931 4424 l cp
+eoclip
+n 2250 2700 m
+ 4050 4500 l gs col0 s gr gr
+
+% arrowhead
+n 3931 4424 m 4038 4488 l 3974 4381 l  col0 s
+% Polyline
+gs  clippath
+4081 1810 m 4039 1768 l 3931 1875 l 4038 1812 l 3974 1918 l cp
+eoclip
+n 2250 3600 m
+ 4050 1800 l gs col0 s gr gr
+
+% arrowhead
+n 3974 1918 m 4038 1812 l 3931 1875 l  col0 s
+% Polyline
+gs  clippath
+4076 2720 m 4050 2666 l 3914 2733 l 4035 2707 l 3941 2787 l cp
+eoclip
+n 2250 3600 m
+ 4050 2700 l gs col0 s gr gr
+
+% arrowhead
+n 3941 2787 m 4035 2707 l 3914 2733 l  col0 s
+% Polyline
+gs  clippath
+4065 3630 m 4065 3570 l 3913 3570 l 4033 3600 l 3913 3630 l cp
+eoclip
+n 2250 3600 m
+ 4050 3600 l gs col0 s gr gr
+
+% arrowhead
+n 3913 3630 m 4033 3600 l 3913 3570 l  col0 s
+% Polyline
+gs  clippath
+4050 4533 m 4076 4479 l 3941 4412 l 4035 4493 l 3914 4466 l cp
+eoclip
+n 2250 3600 m
+ 4050 4500 l gs col0 s gr gr
+
+% arrowhead
+n 3914 4466 m 4035 4493 l 3941 4412 l  col0 s
+% Polyline
+gs  clippath
+4083 1804 m 4033 1770 l 3949 1897 l 4041 1814 l 3999 1930 l cp
+eoclip
+n 2250 4500 m
+ 4050 1800 l gs col0 s gr gr
+
+% arrowhead
+n 3999 1930 m 4041 1814 l 3949 1897 l  col0 s
+% Polyline
+gs  clippath
+4081 2710 m 4039 2668 l 3931 2775 l 4038 2712 l 3974 2818 l cp
+eoclip
+n 2250 4500 m
+ 4050 2700 l gs col0 s gr gr
+
+% arrowhead
+n 3974 2818 m 4038 2712 l 3931 2775 l  col0 s
+% Polyline
+gs  clippath
+4076 3620 m 4050 3566 l 3914 3633 l 4035 3607 l 3941 3687 l cp
+eoclip
+n 2250 4500 m
+ 4050 3600 l gs col0 s gr gr
+
+% arrowhead
+n 3941 3687 m 4035 3607 l 3914 3633 l  col0 s
+% Polyline
+gs  clippath
+4065 4530 m 4065 4470 l 3913 4470 l 4033 4500 l 3913 4530 l cp
+eoclip
+n 2250 4500 m
+ 4050 4500 l gs col0 s gr gr
+
+% arrowhead
+n 3913 4530 m 4033 4500 l 3913 4470 l  col0 s
+% Polyline
+gs  clippath
+6315 1830 m 6315 1770 l 6163 1770 l 6283 1800 l 6163 1830 l cp
+eoclip
+n 4500 1800 m
+ 6300 1800 l gs col0 s gr gr
+
+% arrowhead
+n 6163 1830 m 6283 1800 l 6163 1770 l  col0 s
+% Polyline
+gs  clippath
+6300 2733 m 6326 2679 l 6191 2612 l 6285 2693 l 6164 2666 l cp
+eoclip
+n 4500 1800 m
+ 6300 2700 l gs col0 s gr gr
+
+% arrowhead
+n 6164 2666 m 6285 2693 l 6191 2612 l  col0 s
+% Polyline
+gs  clippath
+6289 3631 m 6331 3589 l 6224 3481 l 6288 3588 l 6181 3524 l cp
+eoclip
+n 4500 1800 m
+ 6300 3600 l gs col0 s gr gr
+
+% arrowhead
+n 6181 3524 m 6288 3588 l 6224 3481 l  col0 s
+% Polyline
+gs  clippath
+6283 4529 m 6333 4495 l 6249 4369 l 6291 4486 l 6199 4402 l cp
+eoclip
+n 4500 1800 m
+ 6300 4500 l gs col0 s gr gr
+
+% arrowhead
+n 6199 4402 m 6291 4486 l 6249 4369 l  col0 s
+% Polyline
+gs  clippath
+6326 1820 m 6300 1766 l 6164 1833 l 6285 1807 l 6191 1887 l cp
+eoclip
+n 4500 2700 m
+ 6300 1800 l gs col0 s gr gr
+
+% arrowhead
+n 6191 1887 m 6285 1807 l 6164 1833 l  col0 s
+% Polyline
+gs  clippath
+6315 2730 m 6315 2670 l 6163 2670 l 6283 2700 l 6163 2730 l cp
+eoclip
+n 4500 2700 m
+ 6300 2700 l gs col0 s gr gr
+
+% arrowhead
+n 6163 2730 m 6283 2700 l 6163 2670 l  col0 s
+% Polyline
+gs  clippath
+6300 3633 m 6326 3579 l 6191 3512 l 6285 3593 l 6164 3566 l cp
+eoclip
+n 4500 2700 m
+ 6300 3600 l gs col0 s gr gr
+
+% arrowhead
+n 6164 3566 m 6285 3593 l 6191 3512 l  col0 s
+% Polyline
+gs  clippath
+6289 4531 m 6331 4489 l 6224 4381 l 6288 4488 l 6181 4424 l cp
+eoclip
+n 4500 2700 m
+ 6300 4500 l gs col0 s gr gr
+
+% arrowhead
+n 6181 4424 m 6288 4488 l 6224 4381 l  col0 s
+% Polyline
+gs  clippath
+6331 1810 m 6289 1768 l 6181 1875 l 6288 1812 l 6224 1918 l cp
+eoclip
+n 4500 3600 m
+ 6300 1800 l gs col0 s gr gr
+
+% arrowhead
+n 6224 1918 m 6288 1812 l 6181 1875 l  col0 s
+% Polyline
+gs  clippath
+6326 2720 m 6300 2666 l 6164 2733 l 6285 2707 l 6191 2787 l cp
+eoclip
+n 4500 3600 m
+ 6300 2700 l gs col0 s gr gr
+
+% arrowhead
+n 6191 2787 m 6285 2707 l 6164 2733 l  col0 s
+% Polyline
+gs  clippath
+6315 3630 m 6315 3570 l 6163 3570 l 6283 3600 l 6163 3630 l cp
+eoclip
+n 4500 3600 m
+ 6300 3600 l gs col0 s gr gr
+
+% arrowhead
+n 6163 3630 m 6283 3600 l 6163 3570 l  col0 s
+% Polyline
+gs  clippath
+6300 4533 m 6326 4479 l 6191 4412 l 6285 4493 l 6164 4466 l cp
+eoclip
+n 4500 3600 m
+ 6300 4500 l gs col0 s gr gr
+
+% arrowhead
+n 6164 4466 m 6285 4493 l 6191 4412 l  col0 s
+% Polyline
+gs  clippath
+6333 1804 m 6283 1770 l 6199 1897 l 6291 1814 l 6249 1930 l cp
+eoclip
+n 4500 4500 m
+ 6300 1800 l gs col0 s gr gr
+
+% arrowhead
+n 6249 1930 m 6291 1814 l 6199 1897 l  col0 s
+% Polyline
+gs  clippath
+6331 2710 m 6289 2668 l 6181 2775 l 6288 2712 l 6224 2818 l cp
+eoclip
+n 4500 4500 m
+ 6300 2700 l gs col0 s gr gr
+
+% arrowhead
+n 6224 2818 m 6288 2712 l 6181 2775 l  col0 s
+% Polyline
+gs  clippath
+6326 3620 m 6300 3566 l 6164 3633 l 6285 3607 l 6191 3687 l cp
+eoclip
+n 4500 4500 m
+ 6300 3600 l gs col0 s gr gr
+
+% arrowhead
+n 6191 3687 m 6285 3607 l 6164 3633 l  col0 s
+% Polyline
+gs  clippath
+6315 4530 m 6315 4470 l 6163 4470 l 6283 4500 l 6163 4530 l cp
+eoclip
+n 4500 4500 m
+ 6300 4500 l gs col0 s gr gr
+
+% arrowhead
+n 6163 4530 m 6283 4500 l 6163 4470 l  col0 s
+% Polyline
+gs  clippath
+7215 1830 m 7215 1770 l 7063 1770 l 7183 1800 l 7063 1830 l cp
+eoclip
+n 6750 1800 m
+ 7200 1800 l gs col0 s gr gr
+
+% arrowhead
+n 7063 1830 m 7183 1800 l 7063 1770 l  col0 s
+% Polyline
+gs  clippath
+7215 2730 m 7215 2670 l 7063 2670 l 7183 2700 l 7063 2730 l cp
+eoclip
+n 6750 2700 m
+ 7200 2700 l gs col0 s gr gr
+
+% arrowhead
+n 7063 2730 m 7183 2700 l 7063 2670 l  col0 s
+% Polyline
+gs  clippath
+7215 3630 m 7215 3570 l 7063 3570 l 7183 3600 l 7063 3630 l cp
+eoclip
+n 6750 3600 m
+ 7200 3600 l gs col0 s gr gr
+
+% arrowhead
+n 7063 3630 m 7183 3600 l 7063 3570 l  col0 s
+% Polyline
+gs  clippath
+7215 4530 m 7215 4470 l 7063 4470 l 7183 4500 l 7063 4530 l cp
+eoclip
+n 6750 4500 m
+ 7200 4500 l gs col0 s gr gr
+
+% arrowhead
+n 7063 4530 m 7183 4500 l 7063 4470 l  col0 s
+% Polyline
+gs  clippath
+1815 1830 m 1815 1770 l 1663 1770 l 1783 1800 l 1663 1830 l cp
+eoclip
+n 1350 1800 m
+ 1800 1800 l gs col0 s gr gr
+
+% arrowhead
+n 1663 1830 m 1783 1800 l 1663 1770 l  col0 s
+% Polyline
+gs  clippath
+1815 2730 m 1815 2670 l 1663 2670 l 1783 2700 l 1663 2730 l cp
+eoclip
+n 1350 2700 m
+ 1800 2700 l gs col0 s gr gr
+
+% arrowhead
+n 1663 2730 m 1783 2700 l 1663 2670 l  col0 s
+% Polyline
+gs  clippath
+1815 3630 m 1815 3570 l 1663 3570 l 1783 3600 l 1663 3630 l cp
+eoclip
+n 1350 3600 m
+ 1800 3600 l gs col0 s gr gr
+
+% arrowhead
+n 1663 3630 m 1783 3600 l 1663 3570 l  col0 s
+% Polyline
+gs  clippath
+1815 4530 m 1815 4470 l 1663 4470 l 1783 4500 l 1663 4530 l cp
+eoclip
+n 1350 4500 m
+ 1800 4500 l gs col0 s gr gr
+
+% arrowhead
+n 1663 4530 m 1783 4500 l 1663 4470 l  col0 s
+% Polyline
+gs  clippath
+4083 1800 m 4029 1773 l 3962 1908 l 4043 1815 l 4016 1935 l cp
+eoclip
+n 2250 5400 m
+ 4050 1800 l gs col0 s gr gr
+
+% arrowhead
+n 4016 1935 m 4043 1815 l 3962 1908 l  col0 s
+% Polyline
+gs  clippath
+4083 2704 m 4033 2670 l 3949 2797 l 4041 2714 l 3999 2830 l cp
+eoclip
+n 2250 5400 m
+ 4050 2700 l gs col0 s gr gr
+
+% arrowhead
+n 3999 2830 m 4041 2714 l 3949 2797 l  col0 s
+% Polyline
+gs  clippath
+4081 3610 m 4039 3568 l 3931 3675 l 4038 3612 l 3974 3718 l cp
+eoclip
+n 2250 5400 m
+ 4050 3600 l gs col0 s gr gr
+
+% arrowhead
+n 3974 3718 m 4038 3612 l 3931 3675 l  col0 s
+% Polyline
+gs  clippath
+4076 4520 m 4050 4466 l 3914 4533 l 4035 4507 l 3941 4587 l cp
+eoclip
+n 2250 5400 m
+ 4050 4500 l gs col0 s gr gr
+
+% arrowhead
+n 3941 4587 m 4035 4507 l 3914 4533 l  col0 s
+% Polyline
+gs  clippath
+6333 1800 m 6279 1773 l 6212 1908 l 6293 1815 l 6266 1935 l cp
+eoclip
+n 4500 5400 m
+ 6300 1800 l gs col0 s gr gr
+
+% arrowhead
+n 6266 1935 m 6293 1815 l 6212 1908 l  col0 s
+% Polyline
+gs  clippath
+6333 2704 m 6283 2670 l 6199 2797 l 6291 2714 l 6249 2830 l cp
+eoclip
+n 4500 5400 m
+ 6300 2700 l gs col0 s gr gr
+
+% arrowhead
+n 6249 2830 m 6291 2714 l 6199 2797 l  col0 s
+% Polyline
+gs  clippath
+6331 3610 m 6289 3568 l 6181 3675 l 6288 3612 l 6224 3718 l cp
+eoclip
+n 4500 5400 m
+ 6300 3600 l gs col0 s gr gr
+
+% arrowhead
+n 6224 3718 m 6288 3612 l 6181 3675 l  col0 s
+% Polyline
+gs  clippath
+6326 4520 m 6300 4466 l 6164 4533 l 6285 4507 l 6191 4587 l cp
+eoclip
+n 4500 5400 m
+ 6300 4500 l gs col0 s gr gr
+
+% arrowhead
+n 6191 4587 m 6285 4507 l 6164 4533 l  col0 s
+% here ends figure;
+$F2psEnd
+rs
+showpage
+
+%%EndDocument
+ @endspecial Black Black 1661 3590 a Fx(Abstract)p Black
+Black 653 3720 a Fw(This)21 b(rep)r(ort)g(describ)r(es)g(the)g
+(implemen)n(tation)g(of)g(a)g(fast)h(arti\014cial)g(neural)f(net)n(w)n
+(ork)538 3811 y(library)h(in)f(ANSI)g(C)h(called)g(fann.)34
+b(The)22 b(library)g(implemen)n(ts)g(m)n(ultila)n(y)n(er)g(feedforw)n
+(ard)538 3902 y(net)n(w)n(orks)35 b(with)h(supp)r(ort)f(for)i(b)r(oth)e
+(fully)h(connected)f(and)g(sparse)i(connected)e(net-)538
+3994 y(w)n(orks.)f(F)-6 b(ann)21 b(o\013ers)j(supp)r(ort)e(for)h
+(execution)f(in)h(\014xed)e(p)r(oin)n(t)h(arithmetic)i(to)e(allo)n(w)j
+(for)538 4085 y(fast)j(execution)f(on)g(systems)h(with)g(no)f
+(\015oating)h(p)r(oin)n(t)f(pro)r(cessor.)41 b(T)-6 b(o)28
+b(o)n(v)n(ercome)g(the)538 4176 y(problems)g(of)h(in)n(teger)g(o)n(v)n
+(er\015o)n(w,)g(the)f(library)h(calculates)h(a)e(p)r(osition)i(of)f
+(the)e(decimal)538 4268 y(p)r(oin)n(t)h(after)h(training)f(and)g
+(guaran)n(tees)h(that)f(in)n(teger)h(o)n(v)n(er\015o)n(w)f(can)g(not)h
+(o)r(ccur)f(with)538 4359 y(this)d(decimal)i(p)r(oin)n(t.)653
+4450 y(The)21 b(library)g(is)g(designed)g(to)g(b)r(e)g(fast,)i(v)n
+(ersatile)e(and)g(easy)g(to)g(use.)33 b(Sev)n(eral)21
+b(b)r(enc)n(h-)538 4542 y(marks)k(ha)n(v)n(e)f(b)r(een)h(executed)g(to)
+g(test)g(the)g(p)r(erformance)h(of)g(the)f(library)-6
+b(.)34 b(The)26 b(results)538 4633 y(sho)n(w)19 b(that)f(the)g(fann)h
+(library)g(is)g(signi\014can)n(tly)g(faster)h(than)e(other)h(libraries)
+h(on)f(systems)538 4724 y(without)26 b(a)g(\015oating)g(p)r(oin)n(t)g
+(pro)r(cessor,)h(while)g(the)f(p)r(erformance)h(w)n(as)f(comparable)h
+(to)538 4816 y(other)e(highly)h(optimized)g(libraries)h(on)f(systems)g
+(with)g(a)g(\015oating)g(p)r(oin)n(t)g(pro)r(cessor.)538
+4942 y Fx(Keyw)n(ords:)43 b Fw(ANN,)30 b(arti\014cial)j(neural)e(net)n
+(w)n(ork,)i(p)r(erformance)f(engineering,)h(\014xed)538
+5034 y(p)r(oin)n(t)25 b(arithmetic,)i(ANSI)d(C.)p Black
+Black eop end
+%%Page: 2 2
+TeXDict begin 2 1 bop Black Black 330 390 a Fv(Preface)330
+572 y Fy(This)25 b(rep)r(ort)f(is)h(written)g(b)n(y)g(Ste\013en)h
+(Nissen)f(as)f(a)h(graduate)e(pro)5 b(ject)24 b(on)h(DIKU)2902
+542 y Fu(1)2940 572 y Fy(.)g(Asso)r(ciate)330 672 y(Professor)g(Klaus)i
+(Hansen)g(is)h(connected)f(to)g(the)h(pro)5 b(ject)27
+b(as)g(sup)r(ervisor.)455 771 y(The)g(source)g(co)r(de)g(for)g(this)h
+(pro)5 b(ject)27 b(can)g(b)r(e)h(found)g(on)f(the)h(in)n(ternet)g
+(address:)330 871 y(h)n(ttp://softman.dk/~luk)n(esky/fann/.)35
+b(F)-7 b(urthermore)28 b(the)g(source)f(co)r(de)i(is)f(also)f(lo)r
+(cated)h(in)330 971 y(app)r(endix)19 b(B.)34 b(The)18
+b(library)g(will)h(b)r(e)g(released)e(under)h(the)h(LGPL)g(licence)f
+([FSF,)28 b(1999)o(])18 b(accom-)330 1070 y(panied)k(b)n(y)g(this)g
+(rep)r(ort.)34 b(It)23 b(will)f(b)r(e)g(released)f(as)h(a)f(SourceF)-7
+b(orge.net)20 b(pro)5 b(ject)22 b([OSDN,)28 b(2003)n(])330
+1170 y(on)33 b(the)h(in)n(ternet)f(address:)48 b(h)n(ttp://SourceF)-7
+b(orge.net/pro)5 b(jects/fann/,)30 b(shortly)j(after)g(the)330
+1269 y(completion)27 b(of)h(this)g(rep)r(ort.)455 1369
+y(A)22 b(CD-R)n(OM)g(accompanies)f(this)i(rep)r(ort,)f(when)h(deliv)n
+(ered)e(as)h(a)g(graduate)f(pro)5 b(ject.)34 b(The)330
+1469 y(ro)r(ot)f(of)h(the)h(CD-R)n(OM)f(consist)f(of)h(this)h(rep)r
+(ort)e(as)g(a)h(PDF)g(\014le,)i(a)e(small)g(README)g(\014le)330
+1568 y(and)26 b(a)g(directory)g(called)g Ft(fann)p Fy(.)35
+b(This)26 b(directory)g(con)n(tains)f(the)i(en)n(tire)f(CVS)h
+(structure)f(used)330 1668 y(while)g(creating)e(this)j(library)d(and)h
+(rep)r(ort,)h(I)g(will)g(no)n(w)f(describ)r(e)g(the)h(imp)r(ortan)n(t)f
+(directories)330 1768 y(in)j(this)g(CVS:)p Black 330
+1950 a Fs(do)s(c)p Black 41 w Fy(Con)n(tains)36 b(all)g(the)h(material)
+f(used)g(in)h(the)g(rep)r(ort,)h(including)f(some)f(of)g(the)h
+(articles)538 2050 y(used)27 b(for)g(writing)g(this)h(rep)r(ort.)p
+Black 330 2166 a Fs(libraries)p Black 41 w Fy(Con)n(tains)21
+b(the)j(ANN)f(libraries)f(and)g(programs,)g(whic)n(h)g(w)n(as)g(used)h
+(for)f(the)h(b)r(enc)n(h-)538 2266 y(marks.)p Black 330
+2382 a Fs(src)p Black 42 w Fy(Con)n(tains)38 b(the)i(source)d(for)i
+(the)h(fann)f(library)f(and)h(the)g(\014les)g(generated)f(during)h(the)
+538 2482 y(b)r(enc)n(hmarks.)p Black 330 2598 a Fs(src/test)p
+Black 41 w Fy(Con)n(tains)27 b(the)h(test)g(and)f(b)r(enc)n(hmark)g
+(programs.)p Black 330 2714 a Fs(src/datasets)p Black
+42 w Fy(Con)n(tains)g(the)h(datasets)e(used)i(for)f(the)h(qualit)n(y)f
+(b)r(enc)n(hmarks.)p Black 330 5514 1200 4 v 422 5568
+a Fr(1)457 5591 y Fq(DIKU:)19 b(Datalogisk)i(Institut)g(K\034b)r(enha)n
+(vns)h(Univ)n(ersitet,)f(Departmen)n(t)g(of)f(Computer)g(Science)i
+(Univ)n(er-)330 5670 y(sit)n(y)i(of)f(Cop)r(enhagen)p
+Black Black 1807 5919 a Fy(ii)p Black eop end
+%%Page: 3 3
+TeXDict begin 3 2 bop Black 330 70 a Fp(CONTENTS)2056
+b(CONTENTS)p 330 103 3000 4 v Black 330 390 a Fv(Con)l(ten)l(ts)330
+570 y Fs(1)77 b(In)m(tro)s(duction)2301 b(1)455 667 y
+Fy(1.1)83 b(Motiv)-5 b(ation)84 b(.)41 b(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)
+h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f
+(.)h(.)g(.)f(.)h(.)f(.)p Black 138 w(1)p Black 455 764
+a(1.2)83 b(Requiremen)n(ts)28 b(F)-7 b(or)27 b(the)g(Library)38
+b(.)k(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h
+(.)g(.)f(.)h(.)f(.)p Black 138 w(1)p Black 455 861 a(1.3)83
+b(The)28 b(Structure)g(of)f(This)h(Rep)r(ort)48 b(.)42
+b(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g
+(.)f(.)h(.)f(.)p Black 138 w(2)p Black 330 1041 a Fs(2)77
+b(Neural)31 b(Net)m(w)m(ork)i(Theory)1823 b(3)455 1138
+y Fy(2.1)83 b(Neural)28 b(Net)n(w)n(orks)64 b(.)42 b(.)f(.)h(.)g(.)f(.)
+h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f
+(.)h(.)g(.)f(.)h(.)f(.)p Black 138 w(3)p Black 455 1235
+a(2.2)83 b(Arti\014cial)28 b(Neural)f(Net)n(w)n(orks)39
+b(.)j(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h
+(.)f(.)h(.)g(.)f(.)h(.)f(.)p Black 138 w(4)p Black 645
+1332 a(2.2.1)94 b(The)28 b(Arti\014cial)f(Neuron)75 b(.)42
+b(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g
+(.)f(.)h(.)f(.)p Black 138 w(4)p Black 645 1429 a(2.2.2)94
+b(The)28 b(Arti\014cial)f(Neural)g(Net)n(w)n(ork)d(.)41
+b(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)p
+Black 138 w(5)p Black 645 1526 a(2.2.3)94 b(Running)28
+b(Time)g(of)f(Executing)g(an)h(ANN)35 b(.)41 b(.)h(.)g(.)f(.)h(.)f(.)h
+(.)f(.)h(.)g(.)f(.)h(.)f(.)p Black 138 w(6)p Black 455
+1623 a(2.3)83 b(T)-7 b(raining)27 b(an)g(ANN)38 b(.)k(.)f(.)h(.)g(.)f
+(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)
+f(.)h(.)g(.)f(.)h(.)f(.)p Black 138 w(7)p Black 645 1720
+a(2.3.1)94 b(The)28 b(Bac)n(kpropagation)c(Algorithm)65
+b(.)41 b(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)p
+Black 138 w(8)p Black 645 1817 a(2.3.2)94 b(Running)28
+b(Time)g(of)f(Bac)n(kpropagation)47 b(.)42 b(.)f(.)h(.)g(.)f(.)h(.)f(.)
+h(.)f(.)h(.)g(.)f(.)h(.)f(.)p Black 138 w(9)p Black 330
+1997 a Fs(3)77 b(Analysis)2429 b(10)455 2094 y Fy(3.1)83
+b(Usage)27 b(Analysis)61 b(.)41 b(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f
+(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)
+h(.)f(.)p Black 97 w(10)p Black 455 2191 a(3.2)83 b(Fixed)28
+b(P)n(oin)n(t)f(Analysis)42 b(.)g(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f
+(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)p
+Black 97 w(10)p Black 455 2288 a(3.3)83 b(P)n(erformance)26
+b(Analysis)80 b(.)42 b(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f
+(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)p
+Black 97 w(11)p Black 645 2385 a(3.3.1)94 b(Algorithmic)27
+b(Optimization)50 b(.)42 b(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f
+(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)p Black 97 w(11)p Black
+645 2482 a(3.3.2)94 b(Arc)n(hitectural)27 b(Optimization)66
+b(.)42 b(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)
+h(.)f(.)p Black 97 w(12)p Black 645 2579 a(3.3.3)94 b(Cac)n(he)27
+b(Optimization)69 b(.)41 b(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g
+(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)p Black 97
+w(12)p Black 645 2676 a(3.3.4)94 b(Common)27 b(Sub)r(expression)g
+(Elimination)55 b(.)41 b(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)
+f(.)p Black 97 w(13)p Black 645 2773 a(3.3.5)94 b(In-lining)28
+b(of)f(Co)r(de)51 b(.)41 b(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f
+(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)p
+Black 97 w(13)p Black 645 2870 a(3.3.6)94 b(Sp)r(ecializations)27
+b(for)g(F)-7 b(ully)28 b(Connected)g(ANNs)42 b(.)f(.)h(.)f(.)h(.)f(.)h
+(.)g(.)f(.)h(.)f(.)p Black 97 w(13)p Black 645 2967 a(3.3.7)94
+b(Lo)r(op)27 b(Unrolling)51 b(.)42 b(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)
+h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)p
+Black 97 w(13)p Black 645 3064 a(3.3.8)94 b(T)-7 b(able)27
+b(Lo)r(okup)35 b(.)42 b(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h
+(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)p
+Black 97 w(14)p Black 330 3244 a Fs(4)77 b(Design)30
+b(and)j(Implemen)m(tation)1620 b(15)455 3341 y Fy(4.1)83
+b(API)28 b(Design)60 b(.)41 b(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h
+(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)
+f(.)h(.)f(.)p Black 97 w(15)p Black 455 3438 a(4.2)83
+b(Arc)n(hitectural)27 b(Design)51 b(.)42 b(.)g(.)f(.)h(.)f(.)h(.)f(.)h
+(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)
+f(.)p Black 97 w(15)p Black 645 3535 a(4.2.1)94 b(Connection)27
+b(Cen)n(tered)g(Arc)n(hitecture)68 b(.)42 b(.)f(.)h(.)g(.)f(.)h(.)f(.)h
+(.)f(.)h(.)g(.)f(.)h(.)f(.)p Black 97 w(15)p Black 645
+3633 a(4.2.2)94 b(Neuron)27 b(Cen)n(tered)g(Arc)n(hitecture)84
+b(.)42 b(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)
+p Black 97 w(16)p Black 455 3730 a(4.3)83 b(Algorithmic)28
+b(Design)35 b(.)41 b(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)
+h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)p
+Black 97 w(18)p Black 645 3827 a(4.3.1)94 b(The)28 b(Densit)n(y)g
+(Algorithm)78 b(.)41 b(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f
+(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)p Black 97 w(18)p Black
+645 3924 a(4.3.2)94 b(The)28 b(Activ)-5 b(ation)28 b(F)-7
+b(unctions)60 b(.)42 b(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h
+(.)f(.)h(.)g(.)f(.)h(.)f(.)p Black 97 w(19)p Black 455
+4021 a(4.4)83 b(Fixed)28 b(P)n(oin)n(t)f(Design)40 b(.)h(.)h(.)g(.)f(.)
+h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f
+(.)h(.)g(.)f(.)h(.)f(.)p Black 97 w(19)p Black 645 4118
+a(4.4.1)94 b(The)28 b(P)n(osition)e(of)i(the)g(Decimal)f(P)n(oin)n(t)64
+b(.)42 b(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)p
+Black 97 w(20)p Black 455 4215 a(4.5)83 b(Co)r(de)28
+b(Design)22 b(.)41 b(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)
+g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f
+(.)p Black 97 w(21)p Black 330 4395 a Fs(5)77 b(User's)31
+b(Guide)2238 b(23)455 4492 y Fy(5.1)83 b(Installation)27
+b(and)h(T)-7 b(est)45 b(.)d(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f
+(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)p
+Black 97 w(23)p Black 455 4589 a(5.2)83 b(Getting)28
+b(Started)37 b(.)k(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h
+(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)p
+Black 97 w(23)p Black 645 4686 a(5.2.1)94 b(The)28 b(T)-7
+b(raining)58 b(.)42 b(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h
+(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)p
+Black 97 w(23)p Black 645 4783 a(5.2.2)94 b(The)28 b(Execution)67
+b(.)42 b(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)
+h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)p Black 97 w(24)p
+Black 455 4880 a(5.3)83 b(Adv)-5 b(anced)28 b(Usage)75
+b(.)42 b(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)
+h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)p Black
+97 w(25)p Black 645 4977 a(5.3.1)94 b(Adjusting)28 b(P)n(arameters)64
+b(.)42 b(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)
+h(.)g(.)f(.)h(.)f(.)p Black 97 w(25)p Black 645 5074
+a(5.3.2)94 b(Net)n(w)n(ork)26 b(Design)g(.)42 b(.)f(.)h(.)f(.)h(.)f(.)h
+(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)
+f(.)p Black 97 w(26)p Black 645 5171 a(5.3.3)94 b(Understanding)27
+b(the)h(Error-v)-5 b(alue)66 b(.)42 b(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f
+(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)p Black 97 w(26)p Black
+645 5268 a(5.3.4)94 b(T)-7 b(raining)27 b(and)g(T)-7
+b(esting)34 b(.)41 b(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)
+h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)p Black 97 w(27)p
+Black 645 5365 a(5.3.5)94 b(Av)n(oid)27 b(Ov)n(er-\014tting)63
+b(.)42 b(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)
+h(.)f(.)h(.)g(.)f(.)h(.)f(.)p Black 97 w(28)p Black 645
+5462 a(5.3.6)94 b(Adjusting)28 b(P)n(arameters)d(During)j(T)-7
+b(raining)31 b(.)42 b(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)p
+Black 97 w(28)p Black 455 5559 a(5.4)83 b(Fixed)28 b(P)n(oin)n(t)f
+(Usage)68 b(.)41 b(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h
+(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)p
+Black 97 w(28)p Black 645 5656 a(5.4.1)94 b(T)-7 b(raining)27
+b(a)g(Fixed)h(P)n(oin)n(t)e(ANN)75 b(.)41 b(.)h(.)f(.)h(.)f(.)h(.)g(.)f
+(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)p Black 97 w(28)p
+Black Black 1795 5919 a(iii)p Black eop end
+%%Page: 4 4
+TeXDict begin 4 3 bop Black 330 70 a Fp(CONTENTS)2056
+b(CONTENTS)p 330 103 3000 4 v Black 645 390 a Fy(5.4.2)94
+b(Running)28 b(a)f(Fixed)h(P)n(oin)n(t)f(ANN)71 b(.)41
+b(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)p
+Black 97 w(29)p Black 645 487 a(5.4.3)94 b(Precision)26
+b(of)i(a)f(Fixed)h(P)n(oin)n(t)e(ANN)c(.)42 b(.)f(.)h(.)f(.)h(.)g(.)f
+(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)p Black 97 w(29)p
+Black 330 667 a Fs(6)77 b(Benc)m(hmarks)2270 b(30)455
+764 y Fy(6.1)83 b(The)28 b(Libraries)52 b(.)42 b(.)f(.)h(.)f(.)h(.)g(.)
+f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h
+(.)f(.)h(.)g(.)f(.)h(.)f(.)p Black 97 w(30)p Black 645
+861 a(6.1.1)94 b(Jet's)27 b(Neural)h(Library)e(\(jneural\))38
+b(.)j(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f
+(.)p Black 97 w(30)p Black 645 958 a(6.1.2)94 b(Ligh)n(t)n(w)n(eigh)n
+(t)26 b(Neural)h(Net)n(w)n(ork)g(\(lwnn\))82 b(.)41 b(.)h(.)g(.)f(.)h
+(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)p Black 97 w(31)p
+Black 455 1055 a(6.2)83 b(Qualit)n(y)27 b(Benc)n(hmark)h(.)41
+b(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f
+(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)p Black 97 w(31)p
+Black 645 1152 a(6.2.1)94 b(Benc)n(hmark)26 b(Setup)d(.)41
+b(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h
+(.)f(.)h(.)g(.)f(.)h(.)f(.)p Black 97 w(31)p Black 645
+1249 a(6.2.2)94 b(The)28 b(Benc)n(hmarks)52 b(.)41 b(.)h(.)f(.)h(.)f(.)
+h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h
+(.)f(.)p Black 97 w(32)p Black 645 1346 a(6.2.3)94 b(Qualit)n(y)27
+b(Benc)n(hmark)f(Conclusion)48 b(.)42 b(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f
+(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)p Black 97 w(36)p Black
+455 1443 a(6.3)83 b(P)n(erformance)26 b(Benc)n(hmark)40
+b(.)h(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f
+(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)p Black 97 w(38)p Black
+645 1540 a(6.3.1)94 b(The)28 b(Benc)n(hmark)e(on)h(the)h(AMD)h(A)n
+(thlon)j(.)41 b(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)p
+Black 97 w(38)p Black 645 1637 a(6.3.2)94 b(The)28 b(Benc)n(hmark)e(on)
+h(the)h(iP)-7 b(A)n(Q)55 b(.)41 b(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f
+(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)p Black 97 w(41)p Black
+455 1734 a(6.4)83 b(Benc)n(hmark)27 b(Conclusion)32 b(.)42
+b(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f
+(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)p Black 97 w(42)p Black
+330 1914 a Fs(7)77 b(Conclusion)2322 b(44)455 2011 y
+Fy(7.1)83 b(F)-7 b(uture)28 b(W)-7 b(ork)79 b(.)42 b(.)f(.)h(.)f(.)h(.)
+g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f
+(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)p Black 97 w(45)p Black
+330 2191 a Fs(References)2456 b(46)330 2371 y(A)53 b(Output)31
+b(from)h(runs)2033 b(48)455 2468 y Fy(A.1)63 b(Output)29
+b(from)e Ft(make)42 b(runtest)i Fy(.)d(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h
+(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)p
+Black 97 w(48)p Black 330 2648 a Fs(B)57 b(Source)32
+b(Co)s(de)2252 b(49)455 2745 y Fy(B.1)66 b(The)28 b(library)66
+b(.)41 b(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)
+f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)p
+Black 97 w(49)p Black 645 2842 a(B.1.1)77 b Ft(fann.h)j
+Fy(.)41 b(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h
+(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)p
+Black 97 w(49)p Black 645 2939 a(B.1.2)77 b Ft(fann)p
+1092 2939 27 4 v 30 w(data.h)67 b Fy(.)42 b(.)g(.)f(.)h(.)f(.)h(.)f(.)h
+(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)
+f(.)p Black 97 w(52)p Black 645 3036 a(B.1.3)77 b Ft(floatfann.h)53
+b Fy(.)42 b(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g
+(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)p Black 97
+w(54)p Black 645 3133 a(B.1.4)77 b Ft(doublefann.h)d
+Fy(.)42 b(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f
+(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)p Black 97 w(54)p
+Black 645 3230 a(B.1.5)77 b Ft(fixedfann.h)53 b Fy(.)42
+b(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h
+(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)p Black 97 w(54)p
+Black 645 3327 a(B.1.6)77 b Ft(fann)p 1092 3327 V 30
+w(internal.h)21 b Fy(.)41 b(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f
+(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)p
+Black 97 w(55)p Black 645 3425 a(B.1.7)77 b Ft(fann.c)j
+Fy(.)41 b(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h
+(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)p
+Black 97 w(56)p Black 645 3522 a(B.1.8)77 b Ft(fann)p
+1092 3522 V 30 w(internal.c)21 b Fy(.)41 b(.)h(.)f(.)h(.)f(.)h(.)g(.)f
+(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)p
+Black 97 w(69)p Black 455 3619 a(B.2)66 b(T)-7 b(est)28
+b(programs)22 b(.)42 b(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g
+(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)
+p Black 97 w(74)p Black 645 3716 a(B.2.1)77 b Ft(xor)p
+1048 3716 V 30 w(train.c)67 b Fy(.)42 b(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g
+(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)
+p Black 97 w(74)p Black 645 3813 a(B.2.2)77 b Ft(xor)p
+1048 3813 V 30 w(test.c)47 b Fy(.)41 b(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h
+(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)
+f(.)p Black 97 w(75)p Black 645 3910 a(B.2.3)77 b Ft(steepness)p
+1312 3910 V 28 w(train.c)64 b Fy(.)41 b(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h
+(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)p
+Black 97 w(76)p Black 455 4007 a(B.3)66 b(Benc)n(hmark)27
+b(programs)e(.)42 b(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f
+(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)p
+Black 97 w(78)p Black 645 4104 a(B.3.1)77 b Ft(quality.cc)33
+b Fy(.)41 b(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h
+(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)p Black
+97 w(78)p Black 645 4201 a(B.3.2)77 b Ft(quality)p 1224
+4201 V 29 w(fixed.c)22 b Fy(.)41 b(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f
+(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)p
+Black 97 w(83)p Black 645 4298 a(B.3.3)77 b Ft(performance.cc)51
+b Fy(.)41 b(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h
+(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)p Black 97 w(84)p
+Black 645 4395 a(B.3.4)77 b Ft(benchmark.sh)d Fy(.)42
+b(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f
+(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)p Black 97 w(87)p Black
+Black 1797 5919 a(iv)p Black eop end
+%%Page: 1 5
+TeXDict begin 1 4 bop Black 2527 70 a Fp(1)83 b(INTR)n(ODUCTION)p
+330 103 3000 4 v Black 330 390 a Fv(1)135 b(In)l(tro)t(duction)330
+572 y Fy(This)29 b(rep)r(ort)f(fo)r(cuses)h(on)f(the)i(pro)r(cess)e(of)
+g(implemen)n(ting)i(a)e(fast)h(arti\014cial)f(neural)h(net)n(w)n(ork)
+330 672 y(library)-7 b(.)38 b(Man)n(y)27 b(p)r(erformance)g(enhancemen)
+n(t)h(tec)n(hniques)g(will)h(b)r(e)f(used)h(and)f(do)r(cumen)n(ted,)330
+771 y(to)f(allo)n(w)g(the)h(library)e(to)i(b)r(e)g(as)f(fast)g(as)g(p)r
+(ossible.)455 871 y(The)37 b(rep)r(ort)h(is)f(written)h(in)h(English)e
+(to)g(b)r(e)i(able)e(to)h(reac)n(h)f(a)g(broader)f(audience.)68
+b(It)330 971 y(is)36 b(m)n(y)g(hop)r(e)g(that)g(p)r(eople)g(in)n
+(terested)g(in)g(implemen)n(ting)g(an)g(application)f(in)h(the)h
+(\014eld)f(of)330 1070 y(arti\014cial)27 b(in)n(telligence)h(and)g
+(computerized)g(learning,)f(will)h(b)r(e)h(able)f(to)g(read)f(this)h
+(rep)r(ort)g(as)330 1170 y(an)c(in)n(tro)r(duction)f(to)h(programming)e
+(with)j(an)f(arti\014cial)f(neural)g(net)n(w)n(ork)g(library)-7
+b(.)34 b(And)25 b(that)330 1269 y(p)r(eople)g(who)g(ha)n(v)n(e)f
+(already)g(written)h(an)g(application)g(using)f(neural)h(net)n(w)n
+(orks,)f(can)h(use)g(this)330 1369 y(rep)r(ort)g(as)h(a)f(guide)h(on)g
+(ho)n(w)f(to)h(increase)f(the)i(p)r(erformance)e(of)h(their)g
+(application)f(using)h(the)330 1469 y(fann)i(library)-7
+b(.)330 1701 y Fo(1.1)112 b(Motiv)-6 b(ation)330 1854
+y Fy(In)42 b([Nissen)28 b(et)g(al.,)f(2002)n(])42 b(I)g(participated)f
+(in)i(building)f(and)g(programming)d(of)j(an)g(auto-)330
+1954 y(nomous)i(rob)r(ot,)k(based)43 b(on)h(an)h(Compaq)e(iP)-7
+b(A)n(Q)44 b(with)g(a)g(camera)f(attac)n(hed)h(to)g(it.)88
+b(In)330 2054 y([Nissen)28 b(et)f(al.,)h(2003)n(])22
+b(I)h(participated)e(in)i(rebuilding)f(this)g(rob)r(ot)g(and)g(adding)g
+(arti\014cial)f(neu-)330 2153 y(ral)f(net)n(w)n(orks)g(\(ANN\))i(for)f
+(use)g(in)g(the)h(image)e(pro)r(cessing.)34 b(Unfortunately)21
+b(the)g(ANN)h(library)330 2253 y(that)j(w)n(e)f(used)g([Heller,)k(2002)
+n(])c(w)n(as)g(to)r(o)g(slo)n(w)g(and)g(the)h(image)e(pro)r(cessing)g
+(on)i(the)f(iP)-7 b(A)n(Q)24 b(w)n(as)330 2352 y(not)k(e\016cien)n(t)f
+(enough.)455 2452 y(The)j(iP)-7 b(A)n(Q)30 b(do)r(es)g(not)g(ha)n(v)n
+(e)f(a)h(\015oating)g(p)r(oin)n(t)g(pro)r(cessor)f(and)h(for)g(this)g
+(reason)f(w)n(e)h(had)330 2552 y(written)d(a)g(lot)g(of)h(the)f(image)g
+(pro)r(cessing)f(using)h(\014xed)g(p)r(oin)n(t)g(arithmetic.)37
+b(F)-7 b(rom)27 b(this)g(exp)r(e-)330 2651 y(rience)32
+b(I)g(ha)n(v)n(e)f(learned)h(that)g(rewriting)g(co)r(de)g(to)g(\014xed)
+h(p)r(oin)n(t)f(arithmetic,)h(mak)n(es)f(a)g(h)n(uge)330
+2751 y(di\013erence)c(on)f(the)h(p)r(erformance)e(of)i(programs)d
+(running)i(on)h(the)g(iP)-7 b(A)n(Q.)455 2851 y(This)24
+b(exp)r(erience)f(ga)n(v)n(e)g(me)h(the)h(idea,)f(that)h(it)f(migh)n(t)
+h(b)r(e)f(useful)h(to)f(dev)n(elop)f(a)h(fast)g(ANN)330
+2950 y(library)d(with)h(supp)r(ort)g(for)f(\014xed)h(p)r(oin)n(t)h
+(arithmetic.)35 b(I)22 b(did)g(ho)n(w)n(ev)n(er)e(not)i(think)g(that)g
+(writing)330 3050 y(another)28 b(pro)5 b(ject)29 b(based)f(on)h(the)h
+(rob)r(ot)e(w)n(ould)h(b)r(e)g(a)g(go)r(o)r(d)g(idea,)g(so)g(I)g
+(started)f(sp)r(eculating)330 3149 y(on)f(what)h(I)g(w)n(an)n(ted)e(to)
+i(do)f(for)g(m)n(y)h(master)f(thesis.)455 3249 y(F)-7
+b(or)29 b(m)n(y)h(master)g(thesis)g(I)g(w)n(ould)g(lik)n(e)g(to)g(mak)n
+(e)f(an)h(autonomous)f(agen)n(t,)h(whic)n(h)g(learns)330
+3349 y(from)k(exp)r(erience.)57 b(T)-7 b(o)34 b(allo)n(w)g(the)g(agen)n
+(t)g(to)g(op)r(erate)g(in)h(a)f(virtual)g(en)n(vironmen)n(t,)h(I)f(ha)n
+(v)n(e)330 3448 y(c)n(hosen)18 b(the)i(\014eld)f(of)h(computer)e
+(games.)33 b(The)20 b(agen)n(t)e(should)h(b)r(e)h(able)e(to)i(function)
+f(as)g(a)g(virtual)330 3548 y(pla)n(y)n(er)29 b(in)j(a)e(computer)h
+(game)f(and)h(learn)f(while)h(doing)g(so.)46 b(Man)n(y)30
+b(di\013eren)n(t)h(games)f(could)330 3648 y(b)r(e)k(used)f(for)g(this)h
+(purp)r(ose,)g(but)g(I)f(am)g(leaning)g(to)n(w)n(ards)f(Quak)n(e)g(I)r
+(I)r(I)i(Arena)f([IDS,)28 b(2000)n(],)330 3747 y(b)r(ecause)f(it)h
+(already)e(has)h(arti\014cial)g(agen)n(ts)g(called)g(game)g(b)r(ots)g
+([v)-5 b(an)28 b(W)-7 b(a)n(v)n(eren,)26 b(2001)n(].)37
+b(P)n(art)330 3847 y(of)32 b(the)h(co)r(de)f(for)g(these)h(b)r(ots)f
+(are)g(public)h(domain)f(and)g(it)h(should)f(b)r(e)h(p)r(ossible)f(to)g
+(write)g(a)330 3946 y(new)c(game)e(b)r(ot)i(on)g(the)g(basis)e(of)i
+(this)g(co)r(de.)455 4046 y(One)g(w)n(a)n(y)g(of)g(building)i(a)e
+(learning)g(game)g(b)r(ot)h(is)g(to)f(use)h(reinforcemen)n(t)f
+(learning)g(algo-)330 4146 y(rithms)g([Kaelbling)f(et)h(al.,)f(1996)n
+(].)40 b(Reinforcemen)n(t)28 b(learning)f(can)i(b)r(ene\014t)g(from)f
+(ha)n(ving)f(an)330 4245 y(ANN)j(core,)d(whic)n(h)i(mak)n(es)f(it)h
+(useful)g(to)f(ha)n(v)n(e)g(a)g(fast)h(ANN)g(library)e(that)i(can)g(b)r
+(e)g(mo)r(di\014ed)330 4345 y(for)24 b(use)h(as)g(a)f(reinforcemen)n(t)
+g(learning)g(core.)35 b(Quak)n(e)23 b(I)r(I)r(I)j(Arena)e(is)h(written)
+g(in)h(ANSI)f(C)g(and)330 4445 y(for)g(this)h(reason)d(the)j(ANN)h
+(library)d(used)h(as)g(the)h(reinforcemen)n(t)e(learning)h(core)f
+(should)h(also)330 4544 y(b)r(e)j(written)g(in)g(ANSI)g(C.)455
+4644 y(This)36 b(researc)n(h)e(lead)h(bac)n(k)h(to)g(the)g(need)g(for)g
+(a)g(fast)g(ANN)h(library)-7 b(.)61 b(So)36 b(I)g(decided)g(to)330
+4743 y(implemen)n(t)28 b(a)f(fast)g(ANN)h(library)e(whic)n(h)i(could)f
+(b)r(e)g(not)h(only)f(b)r(e)g(used)h(b)n(y)f(me,)g(but)h(also)e(b)n(y)
+330 4843 y(other)h(dev)n(elop)r(ers.)330 5076 y Fo(1.2)112
+b(Requiremen)m(ts)38 b(F)-9 b(or)38 b(the)f(Library)330
+5229 y Fy(The)31 b(primary)f(aim)h(of)g(this)g(pro)5
+b(ject,)31 b(is)g(to)g(implemen)n(t)h(a)f(fast)g(ANN)h(library)-7
+b(.)45 b(Ho)n(w)n(ev)n(er,)30 b(a)330 5328 y(fast)e(library)f(is)i(an)f
+(am)n(biguous)f(term)h(and)g(although)g(it)h(is)f(the)h(primary)e(aim,)
+h(it)h(is)f(not)h(the)330 5428 y(only)e(aim.)37 b(Therefore)26
+b(the)i(aim)g(will)g(b)r(e)g(discussed)f(and)g(sp)r(eci\014ed)h
+(further.)455 5528 y(The)19 b(primary)f(aim)h(is)g(for)f(the)i(library)
+e(to)g(b)r(e)i(fast)f(at)g(executing)g(the)g(ANN,)i(while)e(training)
+330 5627 y(the)24 b(ANN)h(is)f(not)f(as)g(time)i(critical.)35
+b(The)24 b(execution)f(of)h(the)g(library)f(should)g(b)r(e)h(fast)g(on)
+g(b)r(oth)p Black 1809 5919 a(1)p Black eop end
+%%Page: 2 6
+TeXDict begin 2 5 bop Black 330 70 a Fp(1.3)82 b(The)28
+b(Structure)f(of)h(This)f(Rep)r(ort)931 b(1)83 b(INTR)n(ODUCTION)p
+330 103 3000 4 v Black 330 390 a Fy(systems)30 b(whic)n(h)g(has)g(a)g
+(\015oating)g(p)r(oin)n(t)g(pro)r(cessor)e(and)j(on)f(systems)g(whic)n
+(h)g(do)r(es)g(not)g(ha)n(v)n(e)330 490 y(a)d(\015oating)g(p)r(oin)n(t)
+h(pro)r(cessor.)455 589 y(Although)39 b(I)g(ha)n(v)n(e)e(some)i(real)f
+(needs)h(for)f(this)i(library)-7 b(,)40 b(there)f(really)f(is)h(no)g(p)
+r(oin)n(t)g(in)330 689 y(dev)n(eloping)d(a)g(library)g(whic)n(h)g(is)h
+(not)g(used)f(b)n(y)h(other)f(dev)n(elop)r(ers.)63 b(F)-7
+b(or)36 b(this)i(reason)d(the)330 789 y(library)26 b(should)i(b)r(e)g
+(easy)e(to)i(use,)f(v)n(ersatile,)g(w)n(ell)g(do)r(cumen)n(ted)h(and)f
+(p)r(ortable.)455 888 y(Since)35 b(the)h(library)e(should)i(b)r(e)f
+(used)h(in)g(Quak)n(e)e(I)r(I)r(I)i(Arena,)h(it)f(should)f(b)r(e)h
+(written)g(in)330 988 y(ANSI)28 b(C.)f(This)g(also)f(supp)r(orts)g(the)
+i(requiremen)n(t)e(for)g(p)r(ortabilit)n(y)-7 b(,)27
+b(since)g(ANSI)g(C)h(libraries)330 1088 y(can)e(b)r(e)h(used)g(from)f
+(a)h(wide)g(v)-5 b(ariet)n(y)25 b(of)i(programming)e(languages)f(and)j
+(op)r(erating)f(systems.)330 1320 y Fo(1.3)112 b(The)38
+b(Structure)f(of)g(This)h(Rep)s(ort)330 1473 y Fy(This)28
+b(rep)r(ort)e(ha)n(v)n(e)h(t)n(w)n(o)g(main)g(purp)r(oses:)p
+Black 455 1656 a Fn(\017)p Black 41 w Fy(A)32 b(rep)r(ort)g(do)r(cumen)
+n(ting)g(the)h(analysis,)f(design)g(and)g(implemen)n(tation)g(of)g(a)g
+(library)-7 b(,)538 1756 y(where)26 b(sp)r(eed)i(is)f(of)h(imp)r
+(ortance)e(and)i(b)r(enc)n(hmarking)e(the)i(library)e(to)h(do)r(cumen)n
+(t)h(the)538 1855 y(p)r(erformance)33 b(and)h(to)g(disco)n(v)n(er,)g
+(whic)n(h)g(optimizations)g(ha)n(v)n(e)f(signi\014can)n(t)h
+(in\015uence)538 1955 y(on)27 b(p)r(erformance.)p Black
+455 2071 a Fn(\017)p Black 41 w Fy(A)c(complete)g(user's)g(guide)g(to)g
+(the)g(fann)h(library)-7 b(,)23 b(making)f(it)i(p)r(ossible)f(for)f(p)r
+(eople)i(with)538 2171 y(no)32 b(prior)g(kno)n(wledge)f(of)i(ANNs)g(to)
+g(read)f(this)h(rep)r(ort)f(and)h(start)f(using)g(the)h(library)538
+2270 y(and)28 b(making)f(it)i(p)r(ossible)e(for)h(p)r(eople)g(with)h
+(extensiv)n(e)e(kno)n(wledge)g(of)h(ANNs)h(to)f(read)538
+2370 y(parts)e(of)i(this)g(rep)r(ort)e(and)i(disco)n(v)n(er,)d(ho)n(w)i
+(they)h(could)f(b)r(ene\014t)i(from)e(using)g(the)h(fann)538
+2470 y(library)-7 b(.)330 2652 y(The)28 b(rep)r(ort)e(is)i(divided)g
+(in)n(to)f(\014v)n(e)g(main)h(sections:)p Black 330 2835
+a Fs(Neural)k(Net)m(w)m(ork)g(Theory)p Black 42 w Fy(Describ)r(es)i
+(the)h(neural)e(net)n(w)n(ork)g(theory)g(needed)h(in)g(order)538
+2934 y(to)27 b(understand)g(the)h(rest)f(of)h(the)g(rep)r(ort.)p
+Black 330 3051 a Fs(Analysis)p Black 41 w Fy(Analyzes)18
+b(what)i(the)f(library)f(should)h(b)r(e)g(able)g(to)g(do)g(and)g(whic)n
+(h)g(metho)r(ds)g(should)538 3150 y(b)r(e)28 b(used)f(in)h(order)e(to)i
+(reac)n(h)e(this)i(goal.)p Black 330 3267 a Fs(Design)j(and)h(Implemen)
+m(tation)p Black 40 w Fy(Lo)n(wlev)n(el)39 b(API,)h(arc)n(hitectural)f
+(and)g(algorithmic)g(de-)538 3366 y(sign.)p Black 330
+3482 a Fs(User's)31 b(Guide)p Black 41 w Fy(A)24 b(guide)g(to)f(using)h
+(the)g(library)-7 b(.)34 b(This)24 b(guide)f(is)h(partly)f(written)h
+(for)f(p)r(eople)538 3582 y(w)n(an)n(ting)h(to)h(use)g(the)h(library)e
+(and)h(partly)g(written)g(to)g(do)r(cumen)n(t)h(the)f(v)n(ersatilit)n
+(y)f(and)538 3682 y(userfriendliness)i(of)i(the)g(library)-7
+b(.)p Black 330 3798 a Fs(Benc)m(hmarks)p Black 42 w
+Fy(Do)r(cumen)n(tation)28 b(of)g(the)g(qualit)n(y)f(and)g(p)r
+(erformance)g(of)g(the)h(library)-7 b(.)p Black 1809
+5919 a(2)p Black eop end
+%%Page: 3 7
+TeXDict begin 3 6 bop Black 1982 70 a Fp(2)83 b(NEURAL)28
+b(NETW)n(ORK)e(THEOR)-7 b(Y)p 330 103 3000 4 v Black
+330 390 a Fv(2)135 b(Neural)45 b(Net)l(w)l(ork)i(Theory)330
+572 y Fy(This)29 b(section)f(will)h(brie\015y)f(explain)g(the)h(theory)
+f(of)h(neural)f(net)n(w)n(orks)f(\(hereafter)h(kno)n(wn)g(as)330
+672 y(NN\))f(and)e(arti\014cial)g(neural)h(net)n(w)n(orks)e
+(\(hereafter)h(kno)n(wn)g(as)g(ANN\).)j(F)-7 b(or)25
+b(a)g(more)g(in)h(depth)330 771 y(explanation)19 b(of)h(these)g
+(concepts)g(please)f(consult)h(the)g(literature;)i([Hassoun,)27
+b(1995)n(])20 b(has)g(go)r(o)r(d)330 871 y(co)n(v)n(erage)h(of)j(most)f
+(concepts)h(of)g(ANN)g(and)g([Hertz)k(et)f(al.,)h(1991)n(])c(describ)r
+(es)f(the)h(mathemat-)330 971 y(ics)31 b(of)f(ANN)i(v)n(ery)e
+(thoroughly)-7 b(,)30 b(while)h([Anderson,)c(1995)n(])k(has)f(a)h(more)
+f(psyc)n(hological)e(and)330 1070 y(ph)n(ysiological)36
+b(approac)n(h)h(to)i(NN)g(and)f(ANN.)i(F)-7 b(or)38 b(the)h(pragmatic)e
+(I)i(could)g(recommend)330 1170 y([T)-7 b(ettamanzi)28
+b(and)f(T)-7 b(omassini,)27 b(2001)n(],)f(whic)n(h)g(has)f(a)g(short)g
+(and)g(easily)g(understandable)g(in-)330 1269 y(tro)r(duction)i(to)h
+(NN)g(and)g(ANN.)330 1502 y Fo(2.1)112 b(Neural)38 b(Net)m(w)m(orks)330
+1655 y Fy(The)27 b(h)n(uman)g(brain)g(is)f(a)h(highly)g(complicated)g
+(mac)n(hine)f(capable)h(of)g(solving)f(v)n(ery)g(complex)330
+1755 y(problems.)36 b(Although)27 b(w)n(e)f(ha)n(v)n(e)f(a)i(go)r(o)r
+(d)f(understanding)g(of)g(some)h(of)f(the)h(basic)f(op)r(erations)330
+1854 y(that)e(driv)n(e)e(the)i(brain,)g(w)n(e)f(are)g(still)h(far)f
+(from)g(understanding)g(ev)n(erything)f(there)h(is)h(to)f(kno)n(w)330
+1954 y(ab)r(out)28 b(the)g(brain.)455 2054 y(In)k(order)f(to)g
+(understand)h(ANN,)h(y)n(ou)e(will)i(need)f(to)g(ha)n(v)n(e)f(a)g
+(basic)h(kno)n(wledge)f(of)h(ho)n(w)330 2153 y(the)24
+b(in)n(ternals)g(of)g(the)g(brain)g(w)n(ork.)34 b(The)24
+b(brain)g(is)g(part)f(of)h(the)h(cen)n(tral)e(nerv)n(ous)f(system)i
+(and)330 2253 y(consists)29 b(of)h(a)f(v)n(ery)f(large)h(NN.)h(The)g
+(NN)g(is)g(actually)f(quite)h(complicated,)g(but)g(I)g(will)f(only)330
+2352 y(include)23 b(the)g(details)f(needed)h(to)g(understand)f(ANN,)h
+(in)g(order)e(to)i(simplify)g(the)g(explanation.)p Black
+930 3386 a @beginspecial 0 @llx 0 @lly 598 @urx 305 @ury
+2160 @rwi @setspecial
+%%BeginDocument: figs/neuron.fig.eps
+%!PS-Adobe-2.0 EPSF-2.0
+%%Title: figs/neuron.fig
+%%Creator: fig2dev Version 3.2 Patchlevel 4
+%%CreationDate: Fri Oct 31 01:02:48 2003
+%%For: lukesky at luke (Steffen Nissen,,,)
+%%BoundingBox: 0 0 598 305
+%%Magnification: 1.0000
+%%EndComments
+/$F2psDict 200 dict def
+$F2psDict begin
+$F2psDict /mtrx matrix put
+/col-1 {0 setgray} bind def
+/col0 {0.000 0.000 0.000 srgb} bind def
+/col1 {0.000 0.000 1.000 srgb} bind def
+/col2 {0.000 1.000 0.000 srgb} bind def
+/col3 {0.000 1.000 1.000 srgb} bind def
+/col4 {1.000 0.000 0.000 srgb} bind def
+/col5 {1.000 0.000 1.000 srgb} bind def
+/col6 {1.000 1.000 0.000 srgb} bind def
+/col7 {1.000 1.000 1.000 srgb} bind def
+/col8 {0.000 0.000 0.560 srgb} bind def
+/col9 {0.000 0.000 0.690 srgb} bind def
+/col10 {0.000 0.000 0.820 srgb} bind def
+/col11 {0.530 0.810 1.000 srgb} bind def
+/col12 {0.000 0.560 0.000 srgb} bind def
+/col13 {0.000 0.690 0.000 srgb} bind def
+/col14 {0.000 0.820 0.000 srgb} bind def
+/col15 {0.000 0.560 0.560 srgb} bind def
+/col16 {0.000 0.690 0.690 srgb} bind def
+/col17 {0.000 0.820 0.820 srgb} bind def
+/col18 {0.560 0.000 0.000 srgb} bind def
+/col19 {0.690 0.000 0.000 srgb} bind def
+/col20 {0.820 0.000 0.000 srgb} bind def
+/col21 {0.560 0.000 0.560 srgb} bind def
+/col22 {0.690 0.000 0.690 srgb} bind def
+/col23 {0.820 0.000 0.820 srgb} bind def
+/col24 {0.500 0.190 0.000 srgb} bind def
+/col25 {0.630 0.250 0.000 srgb} bind def
+/col26 {0.750 0.380 0.000 srgb} bind def
+/col27 {1.000 0.500 0.500 srgb} bind def
+/col28 {1.000 0.630 0.630 srgb} bind def
+/col29 {1.000 0.750 0.750 srgb} bind def
+/col30 {1.000 0.880 0.880 srgb} bind def
+/col31 {1.000 0.840 0.000 srgb} bind def
+
+end
+save
+newpath 0 305 moveto 0 0 lineto 598 0 lineto 598 305 lineto closepath clip newpath
+5.7 463.8 translate
+1 -1 scale
+
+/cp {closepath} bind def
+/ef {eofill} bind def
+/gr {grestore} bind def
+/gs {gsave} bind def
+/sa {save} bind def
+/rs {restore} bind def
+/l {lineto} bind def
+/m {moveto} bind def
+/rm {rmoveto} bind def
+/n {newpath} bind def
+/s {stroke} bind def
+/sh {show} bind def
+/slc {setlinecap} bind def
+/slj {setlinejoin} bind def
+/slw {setlinewidth} bind def
+/srgb {setrgbcolor} bind def
+/rot {rotate} bind def
+/sc {scale} bind def
+/sd {setdash} bind def
+/ff {findfont} bind def
+/sf {setfont} bind def
+/scf {scalefont} bind def
+/sw {stringwidth} bind def
+/tr {translate} bind def
+/tnt {dup dup currentrgbcolor
+  4 -2 roll dup 1 exch sub 3 -1 roll mul add
+  4 -2 roll dup 1 exch sub 3 -1 roll mul add
+  4 -2 roll dup 1 exch sub 3 -1 roll mul add srgb}
+  bind def
+/shd {dup dup currentrgbcolor 4 -2 roll mul 4 -2 roll mul
+  4 -2 roll mul srgb} bind def
+/$F2psBegin {$F2psDict begin /$F2psEnteredState save def} def
+/$F2psEnd {$F2psEnteredState restore end} def
+
+$F2psBegin
+10 setmiterlimit
+0 slj 0 slc
+ 0.06299 0.06299 sc
+%
+% Fig objects follow
+%
+% 
+% here starts figure with depth 50
+% Polyline
+7.500 slw
+gs  clippath
+4245 4290 m 4305 4290 l 4305 4138 l 4275 4258 l 4245 4138 l cp
+eoclip
+n 4275 3375 m
+ 4275 4275 l gs col0 s gr gr
+
+% arrowhead
+n 4245 4138 m 4275 4258 l 4305 4138 l  col0 s
+% Polyline
+gs  clippath
+3795 4290 m 3855 4290 l 3855 4138 l 3825 4258 l 3795 4138 l cp
+eoclip
+n 3825 3375 m
+ 3825 4275 l gs col0 s gr gr
+
+% arrowhead
+n 3795 4138 m 3825 4258 l 3855 4138 l  col0 s
+% Polyline
+gs  clippath
+3345 4290 m 3405 4290 l 3405 4138 l 3375 4258 l 3345 4138 l cp
+eoclip
+n 3375 3375 m
+ 3375 4275 l gs col0 s gr gr
+
+% arrowhead
+n 3345 4138 m 3375 4258 l 3405 4138 l  col0 s
+% Polyline
+gs  clippath
+2895 4290 m 2955 4290 l 2955 4138 l 2925 4258 l 2895 4138 l cp
+eoclip
+n 2925 3375 m
+ 2925 4275 l gs col0 s gr gr
+
+% arrowhead
+n 2895 4138 m 2925 4258 l 2955 4138 l  col0 s
+% Polyline
+gs  clippath
+2715 4530 m 2715 4470 l 2563 4470 l 2683 4500 l 2563 4530 l cp
+eoclip
+n 2700 4500 m
+ 1800 4500 l gs col0 s gr gr
+
+% arrowhead
+n 2563 4530 m 2683 4500 l 2563 4470 l  col0 s
+% Polyline
+gs  clippath
+2715 4980 m 2715 4920 l 2563 4920 l 2683 4950 l 2563 4980 l cp
+eoclip
+n 2700 4950 m
+ 1800 4950 l gs col0 s gr gr
+
+% arrowhead
+n 2563 4980 m 2683 4950 l 2563 4920 l  col0 s
+% Polyline
+gs  clippath
+2715 5430 m 2715 5370 l 2563 5370 l 2683 5400 l 2563 5430 l cp
+eoclip
+n 2700 5400 m
+ 1800 5400 l gs col0 s gr gr
+
+% arrowhead
+n 2563 5430 m 2683 5400 l 2563 5370 l  col0 s
+% Polyline
+gs  clippath
+2955 5610 m 2895 5610 l 2895 5762 l 2925 5642 l 2955 5762 l cp
+eoclip
+n 2925 5625 m
+ 2925 6525 l gs col0 s gr gr
+
+% arrowhead
+n 2955 5762 m 2925 5642 l 2895 5762 l  col0 s
+% Polyline
+gs  clippath
+3405 5610 m 3345 5610 l 3345 5762 l 3375 5642 l 3405 5762 l cp
+eoclip
+n 3375 5625 m
+ 3375 6525 l gs col0 s gr gr
+
+% arrowhead
+n 3405 5762 m 3375 5642 l 3345 5762 l  col0 s
+% Polyline
+gs  clippath
+3855 5610 m 3795 5610 l 3795 5762 l 3825 5642 l 3855 5762 l cp
+eoclip
+n 3825 5625 m
+ 3825 6525 l gs col0 s gr gr
+
+% arrowhead
+n 3855 5762 m 3825 5642 l 3795 5762 l  col0 s
+% Polyline
+gs  clippath
+4305 5610 m 4245 5610 l 4245 5762 l 4275 5642 l 4305 5762 l cp
+eoclip
+n 4275 5625 m
+ 4275 6525 l gs col0 s gr gr
+
+% arrowhead
+n 4305 5762 m 4275 5642 l 4245 5762 l  col0 s
+% Polyline
+n 2955 4275 m 2700 4275 2700 5370 255 arcto 4 {pop} repeat
+  2700 5625 4245 5625 255 arcto 4 {pop} repeat
+  4500 5625 4500 4530 255 arcto 4 {pop} repeat
+  4500 4275 2955 4275 255 arcto 4 {pop} repeat
+ cp gs col0 s gr 
+% Polyline
+gs  clippath
+7007 4042 m 6949 4028 l 6912 4175 l 6971 4066 l 6971 4189 l cp
+eoclip
+n 6750 4950 m
+ 6975 4050 l gs col0 s gr gr
+
+% arrowhead
+n 6971 4189 m 6971 4066 l 6912 4175 l  col0 s
+% Polyline
+gs  clippath
+7233 4279 m 7183 4245 l 7099 4372 l 7191 4289 l 7149 4405 l cp
+eoclip
+n 6750 4950 m
+ 7200 4275 l gs col0 s gr gr
+
+% arrowhead
+n 7149 4405 m 7191 4289 l 7099 4372 l  col0 s
+% Polyline
+gs  clippath
+7454 4516 m 7420 4466 l 7294 4550 l 7411 4509 l 7327 4600 l cp
+eoclip
+n 6750 4950 m
+ 7425 4500 l gs col0 s gr gr
+
+% arrowhead
+n 7327 4600 m 7411 4509 l 7294 4550 l  col0 s
+% Polyline
+gs  clippath
+7671 4750 m 7657 4692 l 7510 4729 l 7634 4729 l 7524 4787 l cp
+eoclip
+n 6750 4950 m
+ 7650 4725 l gs col0 s gr gr
+
+% arrowhead
+n 7524 4787 m 7634 4729 l 7510 4729 l  col0 s
+% Polyline
+gs  clippath
+7665 4980 m 7665 4920 l 7513 4920 l 7633 4950 l 7513 4980 l cp
+eoclip
+n 6750 4950 m
+ 7650 4950 l gs col0 s gr gr
+
+% arrowhead
+n 7513 4980 m 7633 4950 l 7513 4920 l  col0 s
+% Polyline
+gs  clippath
+7657 5207 m 7671 5149 l 7524 5112 l 7634 5171 l 7510 5171 l cp
+eoclip
+n 6750 4950 m
+ 7650 5175 l gs col0 s gr gr
+
+% arrowhead
+n 7510 5171 m 7634 5171 l 7524 5112 l  col0 s
+% Polyline
+gs  clippath
+7420 5433 m 7454 5383 l 7327 5299 l 7411 5391 l 7294 5349 l cp
+eoclip
+n 6750 4950 m
+ 7425 5400 l gs col0 s gr gr
+
+% arrowhead
+n 7294 5349 m 7411 5391 l 7327 5299 l  col0 s
+% Polyline
+gs  clippath
+7183 5654 m 7233 5620 l 7149 5494 l 7191 5611 l 7099 5527 l cp
+eoclip
+n 6750 4950 m
+ 7200 5625 l gs col0 s gr gr
+
+% arrowhead
+n 7099 5527 m 7191 5611 l 7149 5494 l  col0 s
+% Polyline
+gs  clippath
+6949 5871 m 7007 5857 l 6971 5710 l 6971 5834 l 6912 5724 l cp
+eoclip
+n 6750 4950 m
+ 6975 5850 l gs col0 s gr gr
+
+% arrowhead
+n 6912 5724 m 6971 5834 l 6971 5710 l  col0 s
+% Polyline
+15.000 slw
+n 4500 4950 m
+ 6750 4950 l gs col0 s gr 
+% Polyline
+gs  clippath
+1545 5010 m 1545 4890 l 1257 4890 l 1497 4950 l 1257 5010 l cp
+eoclip
+n 1125 4950 m
+ 1530 4950 l gs col0 s gr gr
+
+% arrowhead
+n 1257 5010 m 1497 4950 l 1257 4890 l  col0 s
+% Polyline
+2 slj
+gs  clippath
+3661 6522 m 3544 6498 l 3488 6780 l 3594 6557 l 3605 6804 l cp
+eoclip
+n 675 5175 m 675 5176 l 675 5178 l 675 5183 l 675 5190 l 675 5200 l
+ 675 5214 l 676 5231 l 676 5251 l 677 5275 l 678 5303 l
+ 679 5334 l 681 5368 l 682 5404 l 685 5443 l 687 5485 l
+ 691 5527 l 695 5572 l 699 5617 l 705 5664 l 711 5711 l
+ 718 5759 l 726 5808 l 735 5858 l 746 5908 l 758 5959 l
+ 771 6012 l 787 6065 l 804 6119 l 823 6175 l 845 6232 l
+ 869 6290 l 895 6348 l 924 6408 l 956 6467 l 990 6525 l
+ 1028 6585 l 1066 6641 l 1105 6693 l 1141 6741 l 1176 6784 l
+ 1207 6821 l 1236 6855 l 1262 6883 l 1285 6907 l 1305 6928 l
+ 1322 6945 l 1337 6959 l 1350 6971 l 1362 6980 l 1372 6988 l
+ 1382 6995 l 1391 7001 l 1401 7007 l 1411 7013 l 1423 7019 l
+ 1436 7026 l 1452 7033 l 1470 7043 l 1491 7053 l 1516 7066 l
+ 1545 7080 l 1578 7097 l 1616 7115 l 1658 7135 l 1706 7156 l
+ 1758 7179 l 1814 7202 l 1873 7224 l 1935 7245 l 1997 7264 l
+ 2059 7280 l 2118 7293 l 2174 7304 l 2226 7314 l 2273 7321 l
+ 2316 7327 l 2355 7332 l 2390 7336 l 2420 7338 l 2447 7340 l
+ 2470 7341 l 2491 7341 l 2510 7341 l 2527 7341 l 2542 7340 l
+ 2558 7339 l 2573 7337 l 2588 7335 l 2604 7333 l 2622 7330 l
+ 2642 7327 l 2664 7323 l 2688 7318 l 2716 7313 l 2747 7306 l
+ 2782 7299 l 2820 7290 l 2862 7280 l 2907 7268 l 2955 7254 l
+ 3005 7238 l 3055 7220 l 3105 7200 l 3159 7175 l 3209 7148 l
+ 3254 7119 l 3296 7090 l 3333 7060 l 3366 7029 l 3395 6999 l
+ 3421 6968 l 3444 6937 l 3465 6907 l 3484 6876 l 3500 6845 l
+ 3515 6814 l 3528 6783 l 3540 6753 l 3550 6723 l 3559 6695 l
+ 3567 6667 l 3574 6642 l 3580 6618 l 3585 6597 l 3590 6578 l
+ 3593 6562 l 3595 6550 l 3597 6540 l
+ 3600 6525 l gs col0 s gr gr
+
+% arrowhead
+0 slj
+n 3605 6804 m 3594 6557 l 3488 6780 l  col0 s
+% Polyline
+2 slj
+gs  clippath
+3544 3401 m 3661 3377 l 3605 3095 l 3594 3343 l 3488 3119 l cp
+eoclip
+n 675 4725 m 675 4724 l 675 4722 l 675 4717 l 675 4710 l 675 4700 l
+ 675 4686 l 676 4669 l 676 4649 l 677 4625 l 678 4597 l
+ 679 4566 l 681 4532 l 682 4496 l 685 4457 l 687 4415 l
+ 691 4373 l 695 4328 l 699 4283 l 705 4236 l 711 4189 l
+ 718 4141 l 726 4092 l 735 4042 l 746 3992 l 758 3941 l
+ 771 3888 l 787 3835 l 804 3781 l 823 3725 l 845 3668 l
+ 869 3610 l 895 3552 l 924 3492 l 956 3433 l 990 3375 l
+ 1028 3315 l 1066 3259 l 1105 3207 l 1141 3159 l 1176 3116 l
+ 1207 3079 l 1236 3045 l 1262 3017 l 1285 2993 l 1305 2972 l
+ 1322 2955 l 1337 2941 l 1350 2929 l 1362 2920 l 1372 2912 l
+ 1382 2905 l 1391 2899 l 1401 2893 l 1411 2887 l 1423 2881 l
+ 1436 2874 l 1452 2867 l 1470 2857 l 1491 2847 l 1516 2834 l
+ 1545 2820 l 1578 2803 l 1616 2785 l 1658 2765 l 1706 2744 l
+ 1758 2721 l 1814 2698 l 1873 2676 l 1935 2655 l 1997 2636 l
+ 2059 2620 l 2118 2607 l 2174 2596 l 2226 2586 l 2273 2579 l
+ 2316 2573 l 2355 2568 l 2390 2564 l 2420 2562 l 2447 2560 l
+ 2470 2559 l 2491 2559 l 2510 2559 l 2527 2559 l 2542 2560 l
+ 2558 2561 l 2573 2563 l 2588 2565 l 2604 2567 l 2622 2570 l
+ 2642 2573 l 2664 2577 l 2688 2582 l 2716 2587 l 2747 2594 l
+ 2782 2601 l 2820 2610 l 2862 2620 l 2907 2632 l 2955 2646 l
+ 3005 2662 l 3055 2680 l 3105 2700 l 3159 2725 l 3209 2752 l
+ 3254 2781 l 3296 2810 l 3333 2840 l 3366 2871 l 3395 2901 l
+ 3421 2932 l 3444 2963 l 3465 2993 l 3484 3024 l 3500 3055 l
+ 3515 3086 l 3528 3117 l 3540 3147 l 3550 3177 l 3559 3205 l
+ 3567 3233 l 3574 3258 l 3580 3282 l 3585 3303 l 3590 3322 l
+ 3593 3338 l 3595 3350 l 3597 3360 l
+ 3600 3375 l gs col0 s gr gr
+
+% arrowhead
+0 slj
+n 3488 3119 m 3594 3343 l 3605 3095 l  col0 s
+/Helvetica ff 300.00 scf sf
+5220 4860 m
+gs 1 -1 sc (axon) col0 sh gr
+/Helvetica ff 300.00 scf sf
+-90 5040 m
+gs 1 -1 sc (dendrites) col0 sh gr
+/Helvetica ff 300.00 scf sf
+3105 5040 m
+gs 1 -1 sc (nucleus) col0 sh gr
+/Helvetica ff 300.00 scf sf
+6525 3930 m
+gs 1 -1 sc (to other neurons) col0 sh gr
+/Helvetica ff 300.00 scf sf
+6525 3600 m
+gs 1 -1 sc (synaptic connections  ) col0 sh gr
+% here ends figure;
+$F2psEnd
+rs
+showpage
+
+%%EndDocument
+ @endspecial Black 1318 3569 a(Figure)k(1:)37 b(Simpli\014ed)28
+b(neuron.)p Black Black 455 3768 a(The)d(NN)h(is)f(a)g(net)n(w)n(ork)f
+(consisting)g(of)h(connected)h(neurons.)35 b(The)25 b(cen)n(ter)g(of)g
+(the)h(neuron)330 3868 y(is)j(called)f(the)h(n)n(ucleus.)40
+b(The)28 b(n)n(ucleus)h(is)f(connected)h(to)f(other)g(n)n(ucleuses)h(b)
+n(y)f(means)g(of)h(the)330 3967 y(dendrites)e(and)h(the)g(axon.)36
+b(This)27 b(connection)g(is)h(called)f(a)g(synaptic)h(connection.)455
+4067 y(The)34 b(neuron)g(can)g(\014re)g(electric)g(pulses)g(through)g
+(its)g(synaptic)g(connections,)i(whic)n(h)e(is)330 4167
+y(receiv)n(ed)26 b(at)g(the)h(dendrites)f(of)h(other)f(neurons.)36
+b(Figure)26 b(1)g(sho)n(ws)f(ho)n(w)h(a)h(simpli\014ed)g(neuron)330
+4266 y(lo)r(oks)g(lik)n(e.)455 4366 y(When)c(a)g(neuron)f(receiv)n(es)g
+(enough)h(electric)f(pulses)h(through)g(its)g(dendrites,)h(it)g(activ)
+-5 b(ates)330 4466 y(and)26 b(\014res)g(a)h(pulse)f(through)g(its)h
+(axon,)f(whic)n(h)h(is)f(then)h(receiv)n(ed)f(b)n(y)g(other)g(neurons.)
+36 b(In)27 b(this)330 4565 y(w)n(a)n(y)h(information)g(can)h(propagate)
+e(through)h(the)i(NN.)f(The)g(synaptic)g(connections)f(c)n(hange)330
+4665 y(throughout)h(the)i(lifetime)g(of)f(a)g(neuron)f(and)h(the)h
+(amoun)n(t)e(of)h(incoming)g(pulses)g(needed)g(to)330
+4764 y(activ)-5 b(ate)21 b(a)g(neuron)f(\(the)i(threshold\))f(also)f(c)
+n(hange.)34 b(This)21 b(b)r(eha)n(vior)f(allo)n(ws)f(the)j(NN)g(to)f
+(learn.)455 4864 y(The)36 b(h)n(uman)f(brain)h(consists)f(of)h(around)f
+(10)1933 4834 y Fu(11)2038 4864 y Fy(neurons)h(whic)n(h)f(are)g(highly)
+h(in)n(tercon-)330 4964 y(nected)20 b(with)h(around)e(10)1125
+4934 y Fu(15)1215 4964 y Fy(connections)g([T)-7 b(ettamanzi)28
+b(and)f(T)-7 b(omassini,)27 b(2001)n(].)34 b(These)20
+b(neu-)330 5063 y(rons)26 b(activ)-5 b(ates)27 b(in)g(parallel)f(as)g
+(an)h(e\013ect)h(to)f(in)n(ternal)f(and)h(external)f(sources.)36
+b(The)27 b(brain)f(is)330 5163 y(connected)i(to)f(the)h(rest)f(of)h
+(the)g(nerv)n(ous)e(system,)i(whic)n(h)f(allo)n(ws)g(it)h(to)f(receiv)n
+(e)g(information)330 5263 y(b)n(y)g(means)g(of)h(the)g(\014v)n(e)f
+(senses)g(and)g(also)g(allo)n(ws)f(it)i(to)g(con)n(trol)e(the)i(m)n
+(uscles.)p Black 1809 5919 a(3)p Black eop end
+%%Page: 4 8
+TeXDict begin 4 7 bop Black 330 70 a Fp(2.2)82 b(Arti\014cial)28
+b(Neural)f(Net)n(w)n(orks)505 b(2)83 b(NEURAL)28 b(NETW)n(ORK)e(THEOR)
+-7 b(Y)p 330 103 3000 4 v Black 330 390 a Fo(2.2)112
+b(Arti\014cial)38 b(Neural)f(Net)m(w)m(orks)330 543 y
+Fy(It)30 b(is)f(not)h(p)r(ossible)f(\(at)h(the)f(momen)n(t\))h(to)g
+(mak)n(e)e(an)i(arti\014cial)e(brain,)i(but)g(it)g(is)f(p)r(ossible)g
+(to)330 643 y(mak)n(e)h(simpli\014ed)h(arti\014cial)e(neurons)h(and)g
+(arti\014cial)g(neural)g(net)n(w)n(orks.)44 b(These)30
+b(ANNs)h(can)330 743 y(b)r(e)f(made)f(in)h(man)n(y)f(di\013eren)n(t)h
+(w)n(a)n(ys)e(and)i(can)f(try)g(to)h(mimic)g(the)g(brain)f(in)h(man)n
+(y)f(di\013eren)n(t)330 842 y(w)n(a)n(ys.)455 942 y(ANNs)22
+b(are)f(not)i(in)n(telligen)n(t,)g(but)f(they)h(are)e(go)r(o)r(d)g(for)
+h(recognizing)e(patterns)i(and)g(making)330 1042 y(simple)33
+b(rules)g(for)g(complex)g(problems.)53 b(They)33 b(also)f(ha)n(v)n(e)g
+(excellen)n(t)h(training)g(capabilities)330 1141 y(whic)n(h)28
+b(is)f(wh)n(y)g(they)h(are)f(often)h(used)f(in)h(arti\014cial)f(in)n
+(telligence)g(researc)n(h.)455 1241 y(ANNs)36 b(are)e(go)r(o)r(d)h(at)g
+(generalizing)f(from)h(a)g(set)h(of)f(training)g(data.)60
+b(E.g.)g(this)36 b(means)330 1340 y(an)c(ANN)i(giv)n(en)d(data)h(ab)r
+(out)h(a)f(set)h(of)f(animals)g(connected)g(to)h(a)f(fact)h(telling)f
+(if)h(they)g(are)330 1440 y(mammals)28 b(or)h(not,)g(is)g(able)g(to)g
+(predict)g(whether)g(an)f(animal)h(outside)g(the)g(original)f(set)h(is)
+f(a)330 1540 y(mammal)j(from)g(its)g(data.)47 b(This)31
+b(is)g(a)g(v)n(ery)f(desirable)g(feature)h(of)g(ANNs,)i(b)r(ecause)e(y)
+n(ou)f(do)330 1639 y(not)d(need)g(to)g(kno)n(w)f(the)h(c)n
+(haracteristics)e(de\014ning)i(a)g(mammal,)g(the)g(ANN)h(will)f(\014nd)
+g(out)g(b)n(y)330 1739 y(itself.)330 1948 y Fs(2.2.1)94
+b(The)32 b(Arti\014cial)g(Neuron)330 2101 y Fy(A)c(single)g
+(arti\014cial)f(neuron)g(can)h(b)r(e)g(implemen)n(ted)g(in)h(man)n(y)e
+(di\013eren)n(t)h(w)n(a)n(ys.)36 b(The)28 b(general)330
+2201 y(mathematic)g(de\014nition)g(is)f(as)g(sho)n(w)n(ed)f(in)i
+(equation)f(2.1.)1455 2454 y Fm(y)s Fy(\()p Fm(x)p Fy(\))d(=)e
+Fm(g)1778 2312 y Fl( )1883 2350 y Fk(n)1843 2375 y Fl(X)1850
+2552 y Fk(i)p Fu(=0)1977 2454 y Fm(w)2036 2466 y Fk(i)2064
+2454 y Fm(x)2111 2466 y Fk(i)2139 2312 y Fl(!)3159 2454
+y Fy(\(2.1\))455 2657 y Fm(x)36 b Fy(is)h(a)e(neuron)h(with)h
+Fm(n)f Fy(input)h(dendrites)f(\()p Fm(x)1956 2669 y Fu(0)2045
+2657 y Fm(:)14 b(:)g(:)50 b(x)2239 2669 y Fk(n)2284 2657
+y Fy(\))37 b(and)f(one)g(output)h(axon)e Fm(y)s Fy(\()p
+Fm(x)p Fy(\))330 2757 y(and)f(where)g(\()p Fm(w)836 2769
+y Fu(0)923 2757 y Fm(:)14 b(:)g(:)48 b(w)1127 2769 y
+Fk(n)1172 2757 y Fy(\))35 b(are)f(w)n(eigh)n(ts)f(determining)i(ho)n(w)
+e(m)n(uc)n(h)i(the)f(inputs)h(should)g(b)r(e)330 2856
+y(w)n(eigh)n(ted.)455 2956 y Fm(g)27 b Fy(is)d(an)h(activ)-5
+b(ation)24 b(function)h(that)g(w)n(eigh)n(ts)f(ho)n(w)g(p)r(o)n(w)n
+(erful)g(the)h(output)h(\(if)f(an)n(y\))f(should)330
+3056 y(b)r(e)29 b(from)g(the)h(neuron,)e(based)h(on)g(the)g(sum)g(of)g
+(the)h(input.)42 b(If)29 b(the)h(arti\014cial)e(neuron)g(should)330
+3155 y(mimic)j(a)g(real)f(neuron,)h(the)h(activ)-5 b(ation)30
+b(function)i Fm(g)h Fy(should)e(b)r(e)h(a)e(simple)h(threshold)g(func-)
+330 3255 y(tion)i(returning)f(0)h(or)f(1.)52 b(This)33
+b(is)g(ho)n(w)n(ev)n(er,)f(not)h(the)g(w)n(a)n(y)f(arti\014cial)g
+(neurons)g(are)g(usually)330 3355 y(implemen)n(ted.)k(F)-7
+b(or)24 b(man)n(y)f(di\013eren)n(t)h(reasons)e(it)i(is)g(smarter)e(to)i
+(ha)n(v)n(e)f(a)g(smo)r(oth)h(\(preferably)330 3454 y(di\013eren)n
+(tiable\))33 b(activ)-5 b(ation)32 b(function.)54 b(The)33
+b(output)g(from)f(the)i(activ)-5 b(ation)32 b(function)i(is)e(ei-)330
+3554 y(ther)26 b(b)r(et)n(w)n(een)f(0)g(and)h(1,)g(or)e(b)r(et)n(w)n
+(een)i(-1)f(and)h(1,)f(dep)r(ending)h(on)g(whic)n(h)f(activ)-5
+b(ation)26 b(function)330 3653 y(is)36 b(used.)61 b(This)36
+b(is)g(not)g(en)n(tirely)f(true,)j(since)e(e.g.)61 b(the)36
+b(iden)n(tit)n(y)g(function,)j(whic)n(h)c(is)h(also)330
+3753 y(sometimes)d(used)g(as)g(activ)-5 b(ation)33 b(function,)j(do)r
+(es)d(not)g(ha)n(v)n(e)g(these)g(limitations,)i(but)f(most)330
+3853 y(other)e(activ)-5 b(ation)33 b(functions)g(uses)f(these)h
+(limitations.)52 b(The)33 b(inputs)g(and)g(the)g(w)n(eigh)n(ts)f(are)
+330 3952 y(not)d(restricted)f(in)i(the)f(same)f(w)n(a)n(y)g(and)h(can)f
+(in)i(principle)f(b)r(e)g(b)r(et)n(w)n(een)g Fn(\0001)g
+Fy(and)f(+)p Fn(1)p Fy(,)h(but)330 4052 y(they)f(are)f(v)n(ery)f(often)
+i(small)f(v)-5 b(alues)27 b(cen)n(tered)h(around)e(zero.)36
+b(The)28 b(arti\014cial)f(neuron)g(is)g(also)330 4152
+y(illustrated)g(in)h(\014gure)f(2.)p Black 1155 5105
+a @beginspecial 0 @llx 0 @lly 424 @urx 268 @ury 1620
+ at rwi @setspecial
+%%BeginDocument: figs/artificial_neuron.fig.eps
+%!PS-Adobe-2.0 EPSF-2.0
+%%Title: figs/artificial_neuron.fig
+%%Creator: fig2dev Version 3.2 Patchlevel 4
+%%CreationDate: Fri Oct 31 01:02:48 2003
+%%For: lukesky at luke (Steffen Nissen,,,)
+%%BoundingBox: 0 0 424 268
+%%Magnification: 1.0000
+%%EndComments
+/$F2psDict 200 dict def
+$F2psDict begin
+$F2psDict /mtrx matrix put
+/col-1 {0 setgray} bind def
+/col0 {0.000 0.000 0.000 srgb} bind def
+/col1 {0.000 0.000 1.000 srgb} bind def
+/col2 {0.000 1.000 0.000 srgb} bind def
+/col3 {0.000 1.000 1.000 srgb} bind def
+/col4 {1.000 0.000 0.000 srgb} bind def
+/col5 {1.000 0.000 1.000 srgb} bind def
+/col6 {1.000 1.000 0.000 srgb} bind def
+/col7 {1.000 1.000 1.000 srgb} bind def
+/col8 {0.000 0.000 0.560 srgb} bind def
+/col9 {0.000 0.000 0.690 srgb} bind def
+/col10 {0.000 0.000 0.820 srgb} bind def
+/col11 {0.530 0.810 1.000 srgb} bind def
+/col12 {0.000 0.560 0.000 srgb} bind def
+/col13 {0.000 0.690 0.000 srgb} bind def
+/col14 {0.000 0.820 0.000 srgb} bind def
+/col15 {0.000 0.560 0.560 srgb} bind def
+/col16 {0.000 0.690 0.690 srgb} bind def
+/col17 {0.000 0.820 0.820 srgb} bind def
+/col18 {0.560 0.000 0.000 srgb} bind def
+/col19 {0.690 0.000 0.000 srgb} bind def
+/col20 {0.820 0.000 0.000 srgb} bind def
+/col21 {0.560 0.000 0.560 srgb} bind def
+/col22 {0.690 0.000 0.690 srgb} bind def
+/col23 {0.820 0.000 0.820 srgb} bind def
+/col24 {0.500 0.190 0.000 srgb} bind def
+/col25 {0.630 0.250 0.000 srgb} bind def
+/col26 {0.750 0.380 0.000 srgb} bind def
+/col27 {1.000 0.500 0.500 srgb} bind def
+/col28 {1.000 0.630 0.630 srgb} bind def
+/col29 {1.000 0.750 0.750 srgb} bind def
+/col30 {1.000 0.880 0.880 srgb} bind def
+/col31 {1.000 0.840 0.000 srgb} bind def
+
+end
+save
+newpath 0 268 moveto 0 0 lineto 424 0 lineto 424 268 lineto closepath clip newpath
+-42.5 428.0 translate
+1 -1 scale
+
+/cp {closepath} bind def
+/ef {eofill} bind def
+/gr {grestore} bind def
+/gs {gsave} bind def
+/sa {save} bind def
+/rs {restore} bind def
+/l {lineto} bind def
+/m {moveto} bind def
+/rm {rmoveto} bind def
+/n {newpath} bind def
+/s {stroke} bind def
+/sh {show} bind def
+/slc {setlinecap} bind def
+/slj {setlinejoin} bind def
+/slw {setlinewidth} bind def
+/srgb {setrgbcolor} bind def
+/rot {rotate} bind def
+/sc {scale} bind def
+/sd {setdash} bind def
+/ff {findfont} bind def
+/sf {setfont} bind def
+/scf {scalefont} bind def
+/sw {stringwidth} bind def
+/tr {translate} bind def
+/tnt {dup dup currentrgbcolor
+  4 -2 roll dup 1 exch sub 3 -1 roll mul add
+  4 -2 roll dup 1 exch sub 3 -1 roll mul add
+  4 -2 roll dup 1 exch sub 3 -1 roll mul add srgb}
+  bind def
+/shd {dup dup currentrgbcolor 4 -2 roll mul 4 -2 roll mul
+  4 -2 roll mul srgb} bind def
+ /DrawEllipse {
+	/endangle exch def
+	/startangle exch def
+	/yrad exch def
+	/xrad exch def
+	/y exch def
+	/x exch def
+	/savematrix mtrx currentmatrix def
+	x y tr xrad yrad sc 0 0 1 startangle endangle arc
+	closepath
+	savematrix setmatrix
+	} def
+
+/$F2psBegin {$F2psDict begin /$F2psEnteredState save def} def
+/$F2psEnd {$F2psEnteredState restore end} def
+
+$F2psBegin
+10 setmiterlimit
+0 slj 0 slc
+ 0.06299 0.06299 sc
+%
+% Fig objects follow
+%
+% 
+% here starts figure with depth 50
+/Helvetica ff 150.00 scf sf
+810 6795 m
+gs 1 -1 sc (n) col0 sh gr
+/Helvetica ff 300.00 scf sf
+675 6750 m
+gs 1 -1 sc (x) col0 sh gr
+/Helvetica ff 150.00 scf sf
+810 3645 m
+gs 1 -1 sc (1) col0 sh gr
+/Helvetica ff 300.00 scf sf
+675 3600 m
+gs 1 -1 sc (x) col0 sh gr
+/Helvetica ff 150.00 scf sf
+810 2745 m
+gs 1 -1 sc (0) col0 sh gr
+/Helvetica ff 300.00 scf sf
+675 2700 m
+gs 1 -1 sc (x) col0 sh gr
+/Helvetica ff 300.00 scf sf
+7245 4770 m
+gs 1 -1 sc (y) col0 sh gr
+% Ellipse
+7.500 slw
+n 4275 4725 1273 1273 0 360 DrawEllipse gs col0 s gr
+
+% Polyline
+gs  clippath
+3148 3858 m 3177 3806 l 3045 3732 l 3136 3817 l 3016 3784 l cp
+eoclip
+n 1125 2700 m
+ 3150 3825 l gs col0 s gr gr
+
+% arrowhead
+n 3016 3784 m 3136 3817 l 3045 3732 l  col0 s
+% Polyline
+gs  clippath
+2928 4308 m 2949 4252 l 2807 4198 l 2909 4269 l 2786 4254 l cp
+eoclip
+n 1125 3600 m
+ 2925 4275 l gs col0 s gr gr
+
+% arrowhead
+n 2786 4254 m 2909 4269 l 2807 4198 l  col0 s
+% Polyline
+n 4275 3447 m
+ 4275 6002 l gs col0 s gr 
+% Polyline
+15.000 slw
+n 3870 4455 m 3870 4410 l 3465 4410 l 3645 4725 l 3465 4995 l 3870 4995 l
+
+ 3870 4950 l gs col0 s gr 
+% Polyline
+7.500 slw
+gs  clippath
+7080 4755 m 7080 4695 l 6928 4695 l 7048 4725 l 6928 4755 l cp
+eoclip
+n 5550 4725 m
+ 7065 4725 l gs col0 s gr gr
+
+% arrowhead
+n 6928 4755 m 7048 4725 l 6928 4695 l  col0 s
+% Polyline
+gs  clippath
+3196 5632 m 3167 5580 l 3035 5654 l 3155 5622 l 3064 5706 l cp
+eoclip
+n 1144 6739 m
+ 3169 5614 l gs col0 s gr gr
+
+% arrowhead
+n 3064 5706 m 3155 5622 l 3035 5654 l  col0 s
+/Helvetica ff 300.00 scf sf
+1350 4500 m
+gs 1 -1 sc (.) col0 sh gr
+/Helvetica ff 300.00 scf sf
+1350 4830 m
+gs 1 -1 sc (.) col0 sh gr
+/Helvetica ff 300.00 scf sf
+1350 5160 m
+gs 1 -1 sc (.) col0 sh gr
+/Helvetica ff 300.00 scf sf
+1350 5490 m
+gs 1 -1 sc (.) col0 sh gr
+/Helvetica ff 300.00 scf sf
+1350 5820 m
+gs 1 -1 sc (.) col0 sh gr
+/Helvetica ff 300.00 scf sf
+1350 6150 m
+gs 1 -1 sc (.) col0 sh gr
+/Helvetica ff 300.00 scf sf
+1800 3780 m
+gs 1 -1 sc (w) col0 sh gr
+/Helvetica ff 300.00 scf sf
+1800 3015 m
+gs 1 -1 sc (w) col0 sh gr
+/Helvetica ff 150.00 scf sf
+1980 3105 m
+gs 1 -1 sc (0) col0 sh gr
+/Helvetica ff 150.00 scf sf
+1980 3870 m
+gs 1 -1 sc (1) col0 sh gr
+/Helvetica ff 300.00 scf sf
+1800 6165 m
+gs 1 -1 sc (w) col0 sh gr
+/Helvetica ff 150.00 scf sf
+1980 6210 m
+gs 1 -1 sc (n) col0 sh gr
+/Helvetica ff 450.00 scf sf
+4725 4815 m
+gs 1 -1 sc (g) col0 sh gr
+% here ends figure;
+$F2psEnd
+rs
+showpage
+
+%%EndDocument
+ @endspecial Black 1280 5288 a(Figure)g(2:)37 b(An)28
+b(arti\014cial)e(neuron.)p Black Black 455 5471 a(In)32
+b(the)g(\014gure)f(of)h(the)h(real)e(neuron)g(\(\014gure)h(1\),)h(the)f
+(w)n(eigh)n(ts)f(are)g(not)i(illustrated,)f(but)330 5571
+y(they)c(are)f(implicitly)h(giv)n(en)f(b)n(y)h(the)g(n)n(um)n(b)r(er)g
+(of)g(pulses)f(a)h(neuron)f(sends)g(out,)h(the)h(strength)330
+5670 y(of)f(the)g(pulses)f(and)g(ho)n(w)g(closely)g(connected)g(the)h
+(neurons)f(are.)p Black 1809 5919 a(4)p Black eop end
+%%Page: 5 9
+TeXDict begin 5 8 bop Black 330 70 a Fp(2.2)82 b(Arti\014cial)28
+b(Neural)f(Net)n(w)n(orks)505 b(2)83 b(NEURAL)28 b(NETW)n(ORK)e(THEOR)
+-7 b(Y)p 330 103 3000 4 v Black 455 390 a Fy(As)28 b(men)n(tioned)g
+(earlier)f(there)h(are)f(man)n(y)g(di\013eren)n(t)i(activ)-5
+b(ation)27 b(functions,)i(some)f(of)g(the)330 490 y(most)20
+b(commonly)f(used)h(are)f(threshold)g(\(2.2\),)i(sigmoid)e(\(2.3\))h
+(and)g(h)n(yp)r(erb)r(olic)f(tangen)n(t)g(\(2.4\).)1297
+718 y Fm(g)s Fy(\()p Fm(x)p Fy(\))24 b(=)1563 601 y Fl(\032)1667
+667 y Fy(1)82 b Fm(if)119 b(x)19 b Fy(+)f Fm(t)23 b(>)g
+Fy(0)1667 767 y(0)82 b Fm(if)119 b(x)19 b Fy(+)f Fm(t)23
+b Fn(\024)g Fy(0)3159 718 y(\(2.2\))1454 985 y Fm(g)s
+Fy(\()p Fm(x)p Fy(\))g(=)1942 929 y(1)p 1729 966 468
+4 v 1729 1043 a(1)18 b(+)g Fm(e)1911 1019 y Fj(\000)p
+Fu(2)p Fk(s)p Fu(\()p Fk(x)p Fu(+)p Fk(t)p Fu(\))3159
+985 y Fy(\(2.3\))1018 1226 y Fm(g)s Fy(\()p Fm(x)p Fy(\))83
+b(=)134 b(tanh\()p Fm(s)p Fy(\()p Fm(x)19 b Fy(+)f Fm(t)p
+Fy(\)\))134 b(=)2262 1186 y Fu(sinh)o(\()p Fk(s)p Fu(\()p
+Fk(x)p Fu(+)p Fk(t)p Fu(\)\))p 2258 1207 375 4 v 2258
+1254 a(cosh\()p Fk(s)p Fu(\()p Fk(x)p Fu(+)p Fk(t)p Fu(\)\))1255
+1457 y Fy(=)1441 1425 y Fk(e)1472 1400 y Fi(s)p Fh(\()p
+Fi(x)p Fh(+)p Fi(t)p Fh(\))1648 1425 y Fj(\000)27 b Fk(e)1758
+1400 y Fg(\000)p Fi(s)p Fh(\()p Fi(x)p Fh(+)p Fi(t)p
+Fh(\))p 1413 1439 595 4 v 1441 1489 a Fk(e)1472 1473
+y Fi(s)p Fh(\()p Fi(x)p Fh(+)p Fi(t)p Fh(\))1648 1489
+y Fu(+)h Fk(e)1758 1473 y Fg(\000)p Fi(s)p Fh(\()p Fi(x)p
+Fh(+)p Fi(t)p Fh(\))2100 1457 y Fy(=)2262 1425 y Fk(e)2293
+1400 y Fh(2\()p Fi(s)p Fh(\()p Fi(x)p Fh(+)p Fi(t)p Fh(\)\))2543
+1425 y Fj(\000)p Fu(1)p 2262 1439 366 4 v 2262 1489 a
+Fk(e)2293 1473 y Fh(2\()p Fi(s)p Fh(\()p Fi(x)p Fh(+)p
+Fi(t)p Fh(\)\))2543 1489 y Fu(+1)3159 1340 y Fy(\(2.4\))455
+1611 y(Where)38 b Fm(t)h Fy(is)g(the)g(v)-5 b(alue)39
+b(that)g(pushes)f(the)h(cen)n(ter)g(of)f(the)h(activ)-5
+b(ation)39 b(function)g(a)n(w)n(a)n(y)330 1711 y(from)24
+b(zero)g(and)g Fm(s)g Fy(is)h(a)f(steepness)g(parameter.)34
+b(Sigmoid)25 b(and)f(h)n(yp)r(erb)r(olic)g(tangen)n(t)g(are)g(b)r(oth)
+330 1811 y(smo)r(oth)h(di\013eren)n(tiable)h(functions,)g(with)g(v)n
+(ery)e(similar)h(graphs,)g(the)h(only)f(ma)5 b(jor)24
+b(di\013erence)330 1910 y(is)36 b(that)g(h)n(yp)r(erb)r(olic)g(tangen)n
+(t)g(has)f(output)i(that)f(ranges)f(from)g(-1)h(to)g(1)f(and)h(sigmoid)
+g(has)330 2010 y(output)29 b(that)f(ranges)e(from)i(0)g(to)g(1.)38
+b(A)28 b(graph)f(of)h(a)g(sigmoid)f(function)i(is)f(giv)n(en)f(in)h
+(\014gure)f(3,)330 2110 y(to)g(illustrate)h(ho)n(w)f(the)h(activ)-5
+b(ation)27 b(function)h(lo)r(ok)f(lik)n(e.)p Black 930
+3011 a @beginspecial 0 @llx 0 @lly 608 @urx 271 @ury
+2160 @rwi @setspecial
+%%BeginDocument: figs/sigmoid.fig.eps
+%!PS-Adobe-2.0 EPSF-2.0
+%%Title: figs/sigmoid.fig
+%%Creator: fig2dev Version 3.2 Patchlevel 4
+%%CreationDate: Fri Oct 31 01:02:48 2003
+%%For: lukesky at luke (Steffen Nissen,,,)
+%%BoundingBox: 0 0 608 271
+%%Magnification: 1.0000
+%%EndComments
+/$F2psDict 200 dict def
+$F2psDict begin
+$F2psDict /mtrx matrix put
+/col-1 {0 setgray} bind def
+/col0 {0.000 0.000 0.000 srgb} bind def
+/col1 {0.000 0.000 1.000 srgb} bind def
+/col2 {0.000 1.000 0.000 srgb} bind def
+/col3 {0.000 1.000 1.000 srgb} bind def
+/col4 {1.000 0.000 0.000 srgb} bind def
+/col5 {1.000 0.000 1.000 srgb} bind def
+/col6 {1.000 1.000 0.000 srgb} bind def
+/col7 {1.000 1.000 1.000 srgb} bind def
+/col8 {0.000 0.000 0.560 srgb} bind def
+/col9 {0.000 0.000 0.690 srgb} bind def
+/col10 {0.000 0.000 0.820 srgb} bind def
+/col11 {0.530 0.810 1.000 srgb} bind def
+/col12 {0.000 0.560 0.000 srgb} bind def
+/col13 {0.000 0.690 0.000 srgb} bind def
+/col14 {0.000 0.820 0.000 srgb} bind def
+/col15 {0.000 0.560 0.560 srgb} bind def
+/col16 {0.000 0.690 0.690 srgb} bind def
+/col17 {0.000 0.820 0.820 srgb} bind def
+/col18 {0.560 0.000 0.000 srgb} bind def
+/col19 {0.690 0.000 0.000 srgb} bind def
+/col20 {0.820 0.000 0.000 srgb} bind def
+/col21 {0.560 0.000 0.560 srgb} bind def
+/col22 {0.690 0.000 0.690 srgb} bind def
+/col23 {0.820 0.000 0.820 srgb} bind def
+/col24 {0.500 0.190 0.000 srgb} bind def
+/col25 {0.630 0.250 0.000 srgb} bind def
+/col26 {0.750 0.380 0.000 srgb} bind def
+/col27 {1.000 0.500 0.500 srgb} bind def
+/col28 {1.000 0.630 0.630 srgb} bind def
+/col29 {1.000 0.750 0.750 srgb} bind def
+/col30 {1.000 0.880 0.880 srgb} bind def
+/col31 {1.000 0.840 0.000 srgb} bind def
+
+end
+save
+newpath 0 271 moveto 0 0 lineto 608 0 lineto 608 271 lineto closepath clip newpath
+20.0 439.4 translate
+1 -1 scale
+
+/cp {closepath} bind def
+/ef {eofill} bind def
+/gr {grestore} bind def
+/gs {gsave} bind def
+/sa {save} bind def
+/rs {restore} bind def
+/l {lineto} bind def
+/m {moveto} bind def
+/rm {rmoveto} bind def
+/n {newpath} bind def
+/s {stroke} bind def
+/sh {show} bind def
+/slc {setlinecap} bind def
+/slj {setlinejoin} bind def
+/slw {setlinewidth} bind def
+/srgb {setrgbcolor} bind def
+/rot {rotate} bind def
+/sc {scale} bind def
+/sd {setdash} bind def
+/ff {findfont} bind def
+/sf {setfont} bind def
+/scf {scalefont} bind def
+/sw {stringwidth} bind def
+/tr {translate} bind def
+/tnt {dup dup currentrgbcolor
+  4 -2 roll dup 1 exch sub 3 -1 roll mul add
+  4 -2 roll dup 1 exch sub 3 -1 roll mul add
+  4 -2 roll dup 1 exch sub 3 -1 roll mul add srgb}
+  bind def
+/shd {dup dup currentrgbcolor 4 -2 roll mul 4 -2 roll mul
+  4 -2 roll mul srgb} bind def
+/reencdict 12 dict def /ReEncode { reencdict begin
+/newcodesandnames exch def /newfontname exch def /basefontname exch def
+/basefontdict basefontname findfont def /newfont basefontdict maxlength dict def
+basefontdict { exch dup /FID ne { dup /Encoding eq
+{ exch dup length array copy newfont 3 1 roll put }
+{ exch newfont 3 1 roll put } ifelse } { pop pop } ifelse } forall
+newfont /FontName newfontname put newcodesandnames aload pop
+128 1 255 { newfont /Encoding get exch /.notdef put } for
+newcodesandnames length 2 idiv { newfont /Encoding get 3 1 roll put } repeat
+newfontname newfont definefont pop end } def
+/isovec [
+8#055 /minus 8#200 /grave 8#201 /acute 8#202 /circumflex 8#203 /tilde
+8#204 /macron 8#205 /breve 8#206 /dotaccent 8#207 /dieresis
+8#210 /ring 8#211 /cedilla 8#212 /hungarumlaut 8#213 /ogonek 8#214 /caron
+8#220 /dotlessi 8#230 /oe 8#231 /OE
+8#240 /space 8#241 /exclamdown 8#242 /cent 8#243 /sterling
+8#244 /currency 8#245 /yen 8#246 /brokenbar 8#247 /section 8#250 /dieresis
+8#251 /copyright 8#252 /ordfeminine 8#253 /guillemotleft 8#254 /logicalnot
+8#255 /hyphen 8#256 /registered 8#257 /macron 8#260 /degree 8#261 /plusminus
+8#262 /twosuperior 8#263 /threesuperior 8#264 /acute 8#265 /mu 8#266 /paragraph
+8#267 /periodcentered 8#270 /cedilla 8#271 /onesuperior 8#272 /ordmasculine
+8#273 /guillemotright 8#274 /onequarter 8#275 /onehalf
+8#276 /threequarters 8#277 /questiondown 8#300 /Agrave 8#301 /Aacute
+8#302 /Acircumflex 8#303 /Atilde 8#304 /Adieresis 8#305 /Aring
+8#306 /AE 8#307 /Ccedilla 8#310 /Egrave 8#311 /Eacute
+8#312 /Ecircumflex 8#313 /Edieresis 8#314 /Igrave 8#315 /Iacute
+8#316 /Icircumflex 8#317 /Idieresis 8#320 /Eth 8#321 /Ntilde 8#322 /Ograve
+8#323 /Oacute 8#324 /Ocircumflex 8#325 /Otilde 8#326 /Odieresis 8#327 /multiply
+8#330 /Oslash 8#331 /Ugrave 8#332 /Uacute 8#333 /Ucircumflex
+8#334 /Udieresis 8#335 /Yacute 8#336 /Thorn 8#337 /germandbls 8#340 /agrave
+8#341 /aacute 8#342 /acircumflex 8#343 /atilde 8#344 /adieresis 8#345 /aring
+8#346 /ae 8#347 /ccedilla 8#350 /egrave 8#351 /eacute
+8#352 /ecircumflex 8#353 /edieresis 8#354 /igrave 8#355 /iacute
+8#356 /icircumflex 8#357 /idieresis 8#360 /eth 8#361 /ntilde 8#362 /ograve
+8#363 /oacute 8#364 /ocircumflex 8#365 /otilde 8#366 /odieresis 8#367 /divide
+8#370 /oslash 8#371 /ugrave 8#372 /uacute 8#373 /ucircumflex
+8#374 /udieresis 8#375 /yacute 8#376 /thorn 8#377 /ydieresis] def
+/Helvetica-Bold /Helvetica-Bold-iso isovec ReEncode
+/$F2psBegin {$F2psDict begin /$F2psEnteredState save def} def
+/$F2psEnd {$F2psEnteredState restore end} def
+
+$F2psBegin
+10 setmiterlimit
+0 slj 0 slc
+ 0.06299 0.06299 sc
+%
+% Fig objects follow
+%
+% 
+% here starts figure with depth 50
+% Polyline
+7.500 slw
+n 0 6525 m
+ 9225 6525 l gs col0 s gr 
+% Polyline
+n 2475 6525 m
+ 2475 6750 l gs col0 s gr 
+% Polyline
+n 6975 6750 m
+ 6975 6525 l gs col0 s gr 
+% Polyline
+n 9225 6750 m
+ 9225 6525 l gs col0 s gr 
+% Polyline
+n 4725 6525 m
+ 4725 6750 l gs col0 s gr 
+% Polyline
+gs  clippath
+255 2685 m 195 2685 l 195 2837 l 225 2717 l 255 2837 l cp
+eoclip
+n 225 6750 m
+ 225 2700 l gs col0 s gr gr
+
+% arrowhead
+n 255 2837 m 225 2717 l 195 2837 l  col0 s
+% Polyline
+n 0 3150 m
+ 450 3150 l gs col0 s gr 
+% Polyline
+n 225 4725 m
+ 0 4725 l gs col0 s gr 
+% Polyline
+2 slj
+n 225 6525 m 226 6525 l 230 6525 l 236 6525 l 246 6525 l 261 6525 l
+ 281 6525 l 305 6525 l 336 6525 l 372 6524 l 414 6524 l
+ 461 6524 l 514 6524 l 571 6523 l 632 6523 l 696 6523 l
+ 764 6522 l 834 6522 l 905 6521 l 977 6521 l 1049 6520 l
+ 1121 6519 l 1193 6519 l 1263 6518 l 1332 6517 l 1400 6516 l
+ 1465 6515 l 1529 6514 l 1591 6513 l 1651 6512 l 1708 6511 l
+ 1764 6510 l 1818 6509 l 1870 6508 l 1920 6507 l 1969 6505 l
+ 2016 6504 l 2062 6502 l 2107 6501 l 2151 6499 l 2194 6498 l
+ 2236 6496 l 2278 6494 l 2319 6492 l 2360 6490 l 2400 6488 l
+ 2444 6485 l 2488 6482 l 2532 6479 l 2576 6476 l 2620 6473 l
+ 2664 6469 l 2709 6465 l 2753 6461 l 2798 6456 l 2843 6450 l
+ 2889 6444 l 2934 6437 l 2980 6430 l 3026 6422 l 3071 6413 l
+ 3117 6404 l 3163 6394 l 3208 6383 l 3254 6371 l 3299 6358 l
+ 3344 6345 l 3388 6331 l 3432 6315 l 3476 6299 l 3518 6282 l
+ 3561 6264 l 3602 6245 l 3643 6226 l 3682 6205 l 3721 6183 l
+ 3760 6161 l 3797 6137 l 3833 6113 l 3869 6088 l 3904 6062 l
+ 3937 6035 l 3970 6007 l 4003 5978 l 4034 5947 l 4065 5916 l
+ 4095 5884 l 4125 5850 l 4151 5819 l 4176 5788 l 4201 5755 l
+ 4226 5721 l 4251 5686 l 4276 5650 l 4300 5613 l 4325 5574 l
+ 4349 5535 l 4374 5494 l 4399 5452 l 4423 5409 l 4448 5366 l
+ 4473 5321 l 4498 5275 l 4523 5229 l 4548 5182 l 4573 5134 l
+ 4598 5085 l 4624 5036 l 4649 4987 l 4674 4937 l 4700 4887 l
+ 4725 4837 l 4750 4788 l 4776 4738 l 4801 4688 l 4826 4639 l
+ 4852 4590 l 4877 4541 l 4902 4493 l 4927 4446 l 4952 4400 l
+ 4977 4354 l 5002 4309 l 5027 4266 l 5051 4223 l 5076 4181 l
+ 5101 4140 l 5125 4101 l 5150 4062 l 5174 4025 l 5199 3989 l
+ 5224 3954 l 5249 3920 l 5274 3887 l 5299 3856 l 5325 3825 l
+ 5355 3791 l 5385 3759 l 5416 3728 l 5447 3697 l 5480 3668 l
+ 5513 3640 l 5546 3613 l 5581 3587 l 5617 3562 l 5653 3538 l
+ 5690 3514 l 5729 3492 l 5768 3470 l 5807 3449 l 5848 3430 l
+ 5889 3411 l 5932 3393 l 5974 3376 l 6018 3360 l 6062 3344 l
+ 6106 3330 l 6151 3317 l 6196 3304 l 6242 3292 l 6287 3281 l
+ 6333 3271 l 6379 3262 l 6424 3253 l 6470 3245 l 6516 3238 l
+ 6561 3231 l 6607 3225 l 6652 3219 l 6697 3214 l 6741 3210 l
+ 6786 3206 l 6830 3202 l 6874 3199 l 6918 3196 l 6962 3193 l
+ 7006 3190 l 7050 3188 l 7090 3185 l 7131 3183 l 7172 3181 l
+ 7214 3179 l 7256 3177 l 7299 3176 l 7343 3174 l 7388 3173 l
+ 7434 3171 l 7481 3170 l 7530 3168 l 7580 3167 l 7632 3166 l
+ 7686 3165 l 7742 3164 l 7799 3163 l 7859 3162 l 7921 3161 l
+ 7985 3160 l 8050 3159 l 8118 3158 l 8187 3157 l 8257 3156 l
+ 8329 3156 l 8401 3155 l 8473 3154 l 8545 3154 l 8616 3153 l
+ 8686 3153 l 8754 3152 l 8818 3152 l 8879 3152 l 8936 3151 l
+ 8989 3151 l 9036 3151 l 9078 3151 l 9114 3150 l 9145 3150 l
+ 9169 3150 l 9189 3150 l 9204 3150 l 9214 3150 l 9220 3150 l
+ 9224 3150 l
+ 9225 3150 l gs col0 s gr 
+/Helvetica-Bold-iso ff 180.00 scf sf
+225 6975 m
+gs 1 -1 sc (-10) dup sw pop 2 div neg 0 rm  col0 sh gr
+/Helvetica-Bold-iso ff 180.00 scf sf
+2475 6975 m
+gs 1 -1 sc (-5) dup sw pop 2 div neg 0 rm  col0 sh gr
+/Helvetica-Bold-iso ff 180.00 scf sf
+4725 6975 m
+gs 1 -1 sc (0) dup sw pop 2 div neg 0 rm  col0 sh gr
+/Helvetica-Bold-iso ff 180.00 scf sf
+6975 6975 m
+gs 1 -1 sc (5) dup sw pop 2 div neg 0 rm  col0 sh gr
+/Helvetica-Bold-iso ff 180.00 scf sf
+9225 6975 m
+gs 1 -1 sc (10) dup sw pop 2 div neg 0 rm  col0 sh gr
+/Helvetica-Bold-iso ff 180.00 scf sf
+-225 3195 m
+gs 1 -1 sc (1) col0 sh gr
+/Helvetica-Bold-iso ff 180.00 scf sf
+-225 6570 m
+gs 1 -1 sc (0) col0 sh gr
+/Helvetica-Bold-iso ff 180.00 scf sf
+-180 4770 m
+gs 1 -1 sc (0.5) dup sw pop 2 div neg 0 rm  col0 sh gr
+% here ends figure;
+$F2psEnd
+rs
+showpage
+
+%%EndDocument
+ @endspecial Black 660 3194 a(Figure)g(3:)36 b(A)28 b(graph)f(of)g(a)g
+(sigmoid)g(function)i(with)f Fm(s)f Fy(=)g(0.5)g(and)h
+Fm(t)f Fy(=)h(0.)p Black Black 455 3409 a(The)h Fm(t)g
+Fy(parameter)e(in)i(an)g(arti\014cial)f(neuron)g(can)h(b)r(e)g(seen)g
+(as)f(the)h(amoun)n(t)g(of)g(incoming)330 3508 y(pulses)24
+b(needed)h(to)f(activ)-5 b(ate)24 b(a)g(real)g(neuron.)35
+b(This)24 b(parameter,)g(together)f(with)i(the)g(w)n(eigh)n(ts,)330
+3608 y(are)i(the)h(parameters)d(adjusted)j(when)g(the)g(neuron)f
+(learns.)330 3824 y Fs(2.2.2)94 b(The)32 b(Arti\014cial)g(Neural)f(Net)
+m(w)m(ork)330 3977 y Fy(The)37 b(ANN)h(library)e(I)h(ha)n(v)n(e)f(c)n
+(hosen)h(to)g(implemen)n(t)h(is)f(a)f(m)n(ultila)n(y)n(er)g(feedforw)n
+(ard)g(ANN,)330 4076 y(whic)n(h)g(is)g(the)h(most)f(common)g(kind)h(of)
+f(ANN.)h(In)g(a)f(m)n(ultila)n(y)n(er)f(feedforw)n(ard)f(ANN,)k(the)330
+4176 y(neurons)g(are)h(ordered)f(in)h(la)n(y)n(ers,)i(starting)d(with)i
+(an)f(input)h(la)n(y)n(er)e(and)h(ending)h(with)f(an)330
+4276 y(output)26 b(la)n(y)n(er.)34 b(Bet)n(w)n(een)25
+b(these)g(t)n(w)n(o)f(la)n(y)n(ers)g(are)g(a)h(n)n(um)n(b)r(er)g(of)g
+(hidden)h(la)n(y)n(ers.)34 b(Connections)330 4375 y(in)29
+b(these)h(kinds)f(of)g(net)n(w)n(ork)f(only)h(go)f(forw)n(ard)f(from)i
+(one)g(la)n(y)n(er)f(to)h(the)g(next.)42 b(Man)n(y)29
+b(other)330 4475 y(kinds)36 b(of)f(ANNs)h(exists,)i(but)e(I)f(will)h
+(not)g(explain)f(them)h(further)g(here.)60 b([Hassoun,)27
+b(1995)n(])330 4575 y(describ)r(es)g(sev)n(eral)f(of)h(these)h(other)f
+(kinds)h(of)f(ANNs.)455 4674 y(Multila)n(y)n(er)19 b(feedforw)n(ard)f
+(ANNs)j(ha)n(v)n(e)e(t)n(w)n(o)g(di\013eren)n(t)i(phases:)32
+b(A)21 b(training)e(phase)h(\(some-)330 4774 y(times)j(also)e(referred)
+g(to)i(as)f(the)g(learning)g(phase\))g(and)g(an)g(execution)h(phase.)34
+b(In)23 b(the)g(training)330 4873 y(phase)30 b(the)i(ANN)g(is)f
+(trained)f(to)h(return)g(a)f(sp)r(eci\014c)i(output)f(when)g(giv)n(en)f
+(a)h(sp)r(eci\014c)g(input,)330 4973 y(this)24 b(is)g(done)f(b)n(y)h
+(con)n(tin)n(uous)f(training)g(on)g(a)h(set)g(of)g(training)f(data.)35
+b(In)24 b(the)g(execution)g(phase)330 5073 y(the)k(ANN)g(returns)f
+(outputs)h(on)g(the)g(basis)e(of)i(inputs.)455 5172 y(The)k(w)n(a)n(y)f
+(the)i(execution)f(of)h(a)f(feedforw)n(ard)f(ANN)i(functions)g(are)e
+(the)i(follo)n(wing:)46 b(An)330 5272 y(input)26 b(is)g(presen)n(ted)f
+(to)h(the)g(input)g(la)n(y)n(er,)f(the)h(input)g(is)g(propagated)e
+(through)h(all)g(the)h(la)n(y)n(ers)330 5372 y(\(using)f(equation)f
+(2.1\))h(un)n(til)g(it)h(reac)n(hes)d(the)j(output)f(la)n(y)n(er,)f
+(where)h(the)g(output)h(is)e(returned.)330 5471 y(In)40
+b(a)g(feedforw)n(ard)f(ANN)i(an)f(input)i(can)e(easily)f(b)r(e)i
+(propagated)d(through)i(the)g(net)n(w)n(ork)330 5571
+y(and)35 b(ev)-5 b(aluated)34 b(to)h(an)f(output.)59
+b(It)35 b(is)f(more)g(di\016cult)i(to)e(compute)h(a)g(clear)e(output)i
+(from)330 5670 y(a)29 b(net)n(w)n(ork)g(where)g(connections)g(are)g
+(allo)n(w)n(ed)f(in)i(all)g(directions)f(\(lik)n(e)h(in)g(the)g
+(brain\),)g(since)p Black 1809 5919 a(5)p Black eop end
+%%Page: 6 10
+TeXDict begin 6 9 bop Black 330 70 a Fp(2.2)82 b(Arti\014cial)28
+b(Neural)f(Net)n(w)n(orks)505 b(2)83 b(NEURAL)28 b(NETW)n(ORK)e(THEOR)
+-7 b(Y)p 330 103 3000 4 v Black 330 390 a Fy(this)40
+b(will)g(create)f(lo)r(ops.)74 b(There)39 b(are)g(w)n(a)n(ys)f(of)i
+(dealing)g(with)g(these)g(lo)r(ops)f(in)i(recurren)n(t)330
+490 y(net)n(w)n(orks,)31 b(\([Hassoun,)c(1995)n(])32
+b(p.)50 b(271\))30 b(describ)r(es)h(ho)n(w)g(recurren)n(t)g(net)n(w)n
+(orks)f(can)h(b)r(e)h(used)330 589 y(to)24 b(co)r(de)g(time)g(dep)r
+(endencies,)h(but)g(feedforw)n(ard)e(net)n(w)n(orks)f(are)h(usually)g
+(a)h(b)r(etter)g(c)n(hoice)g(for)330 689 y(problems)j(that)h(are)e(not)
+i(time)g(dep)r(enden)n(t.)p Black 930 1887 a @beginspecial
+0 @llx 0 @lly 371 @urx 223 @ury 2160 @rwi @setspecial
+%%BeginDocument: figs/feedforward.fig.eps
+%!PS-Adobe-2.0 EPSF-2.0
+%%Title: figs/feedforward.fig
+%%Creator: fig2dev Version 3.2 Patchlevel 4
+%%CreationDate: Fri Oct 31 01:02:48 2003
+%%For: lukesky at luke (Steffen Nissen,,,)
+%%BoundingBox: 0 0 371 223
+%%Magnification: 1.0000
+%%EndComments
+/$F2psDict 200 dict def
+$F2psDict begin
+$F2psDict /mtrx matrix put
+/col-1 {0 setgray} bind def
+/col0 {0.000 0.000 0.000 srgb} bind def
+/col1 {0.000 0.000 1.000 srgb} bind def
+/col2 {0.000 1.000 0.000 srgb} bind def
+/col3 {0.000 1.000 1.000 srgb} bind def
+/col4 {1.000 0.000 0.000 srgb} bind def
+/col5 {1.000 0.000 1.000 srgb} bind def
+/col6 {1.000 1.000 0.000 srgb} bind def
+/col7 {1.000 1.000 1.000 srgb} bind def
+/col8 {0.000 0.000 0.560 srgb} bind def
+/col9 {0.000 0.000 0.690 srgb} bind def
+/col10 {0.000 0.000 0.820 srgb} bind def
+/col11 {0.530 0.810 1.000 srgb} bind def
+/col12 {0.000 0.560 0.000 srgb} bind def
+/col13 {0.000 0.690 0.000 srgb} bind def
+/col14 {0.000 0.820 0.000 srgb} bind def
+/col15 {0.000 0.560 0.560 srgb} bind def
+/col16 {0.000 0.690 0.690 srgb} bind def
+/col17 {0.000 0.820 0.820 srgb} bind def
+/col18 {0.560 0.000 0.000 srgb} bind def
+/col19 {0.690 0.000 0.000 srgb} bind def
+/col20 {0.820 0.000 0.000 srgb} bind def
+/col21 {0.560 0.000 0.560 srgb} bind def
+/col22 {0.690 0.000 0.690 srgb} bind def
+/col23 {0.820 0.000 0.820 srgb} bind def
+/col24 {0.500 0.190 0.000 srgb} bind def
+/col25 {0.630 0.250 0.000 srgb} bind def
+/col26 {0.750 0.380 0.000 srgb} bind def
+/col27 {1.000 0.500 0.500 srgb} bind def
+/col28 {1.000 0.630 0.630 srgb} bind def
+/col29 {1.000 0.750 0.750 srgb} bind def
+/col30 {1.000 0.880 0.880 srgb} bind def
+/col31 {1.000 0.840 0.000 srgb} bind def
+
+end
+save
+newpath 0 223 moveto 0 0 lineto 371 0 lineto 371 223 lineto closepath clip newpath
+-84.3 298.1 translate
+1 -1 scale
+
+/cp {closepath} bind def
+/ef {eofill} bind def
+/gr {grestore} bind def
+/gs {gsave} bind def
+/sa {save} bind def
+/rs {restore} bind def
+/l {lineto} bind def
+/m {moveto} bind def
+/rm {rmoveto} bind def
+/n {newpath} bind def
+/s {stroke} bind def
+/sh {show} bind def
+/slc {setlinecap} bind def
+/slj {setlinejoin} bind def
+/slw {setlinewidth} bind def
+/srgb {setrgbcolor} bind def
+/rot {rotate} bind def
+/sc {scale} bind def
+/sd {setdash} bind def
+/ff {findfont} bind def
+/sf {setfont} bind def
+/scf {scalefont} bind def
+/sw {stringwidth} bind def
+/tr {translate} bind def
+/tnt {dup dup currentrgbcolor
+  4 -2 roll dup 1 exch sub 3 -1 roll mul add
+  4 -2 roll dup 1 exch sub 3 -1 roll mul add
+  4 -2 roll dup 1 exch sub 3 -1 roll mul add srgb}
+  bind def
+/shd {dup dup currentrgbcolor 4 -2 roll mul 4 -2 roll mul
+  4 -2 roll mul srgb} bind def
+ /DrawEllipse {
+	/endangle exch def
+	/startangle exch def
+	/yrad exch def
+	/xrad exch def
+	/y exch def
+	/x exch def
+	/savematrix mtrx currentmatrix def
+	x y tr xrad yrad sc 0 0 1 startangle endangle arc
+	closepath
+	savematrix setmatrix
+	} def
+
+/$F2psBegin {$F2psDict begin /$F2psEnteredState save def} def
+/$F2psEnd {$F2psEnteredState restore end} def
+
+$F2psBegin
+10 setmiterlimit
+0 slj 0 slc
+ 0.06299 0.06299 sc
+%
+% Fig objects follow
+%
+% 
+% here starts figure with depth 50
+% Ellipse
+7.500 slw
+n 2025 1800 225 225 0 360 DrawEllipse gs col0 s gr
+
+% Ellipse
+n 2025 2700 225 225 0 360 DrawEllipse gs col0 s gr
+
+% Ellipse
+n 2025 3600 225 225 0 360 DrawEllipse gs col0 s gr
+
+% Ellipse
+n 2025 4500 225 225 0 360 DrawEllipse gs col0 s gr
+
+% Ellipse
+n 4275 1800 225 225 0 360 DrawEllipse gs col0 s gr
+
+% Ellipse
+n 4275 2700 225 225 0 360 DrawEllipse gs col0 s gr
+
+% Ellipse
+n 4275 3600 225 225 0 360 DrawEllipse gs col0 s gr
+
+% Ellipse
+n 4275 4500 225 225 0 360 DrawEllipse gs col0 s gr
+
+% Ellipse
+n 6525 4500 225 225 0 360 DrawEllipse gs col0 s gr
+
+% Ellipse
+n 6525 3600 225 225 0 360 DrawEllipse gs col0 s gr
+
+% Ellipse
+n 6525 2700 225 225 0 360 DrawEllipse gs col0 s gr
+
+% Ellipse
+n 6525 1800 225 225 0 360 DrawEllipse gs col0 s gr
+
+% Polyline
+gs  clippath
+4065 1830 m 4065 1770 l 3913 1770 l 4033 1800 l 3913 1830 l cp
+eoclip
+n 2250 1800 m
+ 4050 1800 l gs col0 s gr gr
+
+% arrowhead
+n 3913 1830 m 4033 1800 l 3913 1770 l  col0 s
+% Polyline
+gs  clippath
+4050 2733 m 4076 2679 l 3941 2612 l 4035 2693 l 3914 2666 l cp
+eoclip
+n 2250 1800 m
+ 4050 2700 l gs col0 s gr gr
+
+% arrowhead
+n 3914 2666 m 4035 2693 l 3941 2612 l  col0 s
+% Polyline
+gs  clippath
+4039 3631 m 4081 3589 l 3974 3481 l 4038 3588 l 3931 3524 l cp
+eoclip
+n 2250 1800 m
+ 4050 3600 l gs col0 s gr gr
+
+% arrowhead
+n 3931 3524 m 4038 3588 l 3974 3481 l  col0 s
+% Polyline
+gs  clippath
+4033 4529 m 4083 4495 l 3999 4369 l 4041 4486 l 3949 4402 l cp
+eoclip
+n 2250 1800 m
+ 4050 4500 l gs col0 s gr gr
+
+% arrowhead
+n 3949 4402 m 4041 4486 l 3999 4369 l  col0 s
+% Polyline
+gs  clippath
+4076 1820 m 4050 1766 l 3914 1833 l 4035 1807 l 3941 1887 l cp
+eoclip
+n 2250 2700 m
+ 4050 1800 l gs col0 s gr gr
+
+% arrowhead
+n 3941 1887 m 4035 1807 l 3914 1833 l  col0 s
+% Polyline
+gs  clippath
+4065 2730 m 4065 2670 l 3913 2670 l 4033 2700 l 3913 2730 l cp
+eoclip
+n 2250 2700 m 2475 2700 l 2700 2700 l 2925 2700 l 3150 2700 l 3375 2700 l
+ 3600 2700 l 3825 2700 l
+ 4050 2700 l gs col0 s gr gr
+
+% arrowhead
+n 3913 2730 m 4033 2700 l 3913 2670 l  col0 s
+% Polyline
+gs  clippath
+4050 3633 m 4076 3579 l 3941 3512 l 4035 3593 l 3914 3566 l cp
+eoclip
+n 2250 2700 m
+ 4050 3600 l gs col0 s gr gr
+
+% arrowhead
+n 3914 3566 m 4035 3593 l 3941 3512 l  col0 s
+% Polyline
+gs  clippath
+4039 4531 m 4081 4489 l 3974 4381 l 4038 4488 l 3931 4424 l cp
+eoclip
+n 2250 2700 m
+ 4050 4500 l gs col0 s gr gr
+
+% arrowhead
+n 3931 4424 m 4038 4488 l 3974 4381 l  col0 s
+% Polyline
+gs  clippath
+4081 1810 m 4039 1768 l 3931 1875 l 4038 1812 l 3974 1918 l cp
+eoclip
+n 2250 3600 m
+ 4050 1800 l gs col0 s gr gr
+
+% arrowhead
+n 3974 1918 m 4038 1812 l 3931 1875 l  col0 s
+% Polyline
+gs  clippath
+4076 2720 m 4050 2666 l 3914 2733 l 4035 2707 l 3941 2787 l cp
+eoclip
+n 2250 3600 m
+ 4050 2700 l gs col0 s gr gr
+
+% arrowhead
+n 3941 2787 m 4035 2707 l 3914 2733 l  col0 s
+% Polyline
+gs  clippath
+4065 3630 m 4065 3570 l 3913 3570 l 4033 3600 l 3913 3630 l cp
+eoclip
+n 2250 3600 m
+ 4050 3600 l gs col0 s gr gr
+
+% arrowhead
+n 3913 3630 m 4033 3600 l 3913 3570 l  col0 s
+% Polyline
+gs  clippath
+4050 4533 m 4076 4479 l 3941 4412 l 4035 4493 l 3914 4466 l cp
+eoclip
+n 2250 3600 m
+ 4050 4500 l gs col0 s gr gr
+
+% arrowhead
+n 3914 4466 m 4035 4493 l 3941 4412 l  col0 s
+% Polyline
+gs  clippath
+4083 1804 m 4033 1770 l 3949 1897 l 4041 1814 l 3999 1930 l cp
+eoclip
+n 2250 4500 m
+ 4050 1800 l gs col0 s gr gr
+
+% arrowhead
+n 3999 1930 m 4041 1814 l 3949 1897 l  col0 s
+% Polyline
+gs  clippath
+4081 2710 m 4039 2668 l 3931 2775 l 4038 2712 l 3974 2818 l cp
+eoclip
+n 2250 4500 m
+ 4050 2700 l gs col0 s gr gr
+
+% arrowhead
+n 3974 2818 m 4038 2712 l 3931 2775 l  col0 s
+% Polyline
+gs  clippath
+4076 3620 m 4050 3566 l 3914 3633 l 4035 3607 l 3941 3687 l cp
+eoclip
+n 2250 4500 m
+ 4050 3600 l gs col0 s gr gr
+
+% arrowhead
+n 3941 3687 m 4035 3607 l 3914 3633 l  col0 s
+% Polyline
+gs  clippath
+4065 4530 m 4065 4470 l 3913 4470 l 4033 4500 l 3913 4530 l cp
+eoclip
+n 2250 4500 m
+ 4050 4500 l gs col0 s gr gr
+
+% arrowhead
+n 3913 4530 m 4033 4500 l 3913 4470 l  col0 s
+% Polyline
+gs  clippath
+6315 1830 m 6315 1770 l 6163 1770 l 6283 1800 l 6163 1830 l cp
+eoclip
+n 4500 1800 m
+ 6300 1800 l gs col0 s gr gr
+
+% arrowhead
+n 6163 1830 m 6283 1800 l 6163 1770 l  col0 s
+% Polyline
+gs  clippath
+6300 2733 m 6326 2679 l 6191 2612 l 6285 2693 l 6164 2666 l cp
+eoclip
+n 4500 1800 m
+ 6300 2700 l gs col0 s gr gr
+
+% arrowhead
+n 6164 2666 m 6285 2693 l 6191 2612 l  col0 s
+% Polyline
+gs  clippath
+6289 3631 m 6331 3589 l 6224 3481 l 6288 3588 l 6181 3524 l cp
+eoclip
+n 4500 1800 m
+ 6300 3600 l gs col0 s gr gr
+
+% arrowhead
+n 6181 3524 m 6288 3588 l 6224 3481 l  col0 s
+% Polyline
+gs  clippath
+6283 4529 m 6333 4495 l 6249 4369 l 6291 4486 l 6199 4402 l cp
+eoclip
+n 4500 1800 m
+ 6300 4500 l gs col0 s gr gr
+
+% arrowhead
+n 6199 4402 m 6291 4486 l 6249 4369 l  col0 s
+% Polyline
+gs  clippath
+6326 1820 m 6300 1766 l 6164 1833 l 6285 1807 l 6191 1887 l cp
+eoclip
+n 4500 2700 m
+ 6300 1800 l gs col0 s gr gr
+
+% arrowhead
+n 6191 1887 m 6285 1807 l 6164 1833 l  col0 s
+% Polyline
+gs  clippath
+6315 2730 m 6315 2670 l 6163 2670 l 6283 2700 l 6163 2730 l cp
+eoclip
+n 4500 2700 m
+ 6300 2700 l gs col0 s gr gr
+
+% arrowhead
+n 6163 2730 m 6283 2700 l 6163 2670 l  col0 s
+% Polyline
+gs  clippath
+6300 3633 m 6326 3579 l 6191 3512 l 6285 3593 l 6164 3566 l cp
+eoclip
+n 4500 2700 m
+ 6300 3600 l gs col0 s gr gr
+
+% arrowhead
+n 6164 3566 m 6285 3593 l 6191 3512 l  col0 s
+% Polyline
+gs  clippath
+6289 4531 m 6331 4489 l 6224 4381 l 6288 4488 l 6181 4424 l cp
+eoclip
+n 4500 2700 m
+ 6300 4500 l gs col0 s gr gr
+
+% arrowhead
+n 6181 4424 m 6288 4488 l 6224 4381 l  col0 s
+% Polyline
+gs  clippath
+6331 1810 m 6289 1768 l 6181 1875 l 6288 1812 l 6224 1918 l cp
+eoclip
+n 4500 3600 m
+ 6300 1800 l gs col0 s gr gr
+
+% arrowhead
+n 6224 1918 m 6288 1812 l 6181 1875 l  col0 s
+% Polyline
+gs  clippath
+6326 2720 m 6300 2666 l 6164 2733 l 6285 2707 l 6191 2787 l cp
+eoclip
+n 4500 3600 m
+ 6300 2700 l gs col0 s gr gr
+
+% arrowhead
+n 6191 2787 m 6285 2707 l 6164 2733 l  col0 s
+% Polyline
+gs  clippath
+6315 3630 m 6315 3570 l 6163 3570 l 6283 3600 l 6163 3630 l cp
+eoclip
+n 4500 3600 m
+ 6300 3600 l gs col0 s gr gr
+
+% arrowhead
+n 6163 3630 m 6283 3600 l 6163 3570 l  col0 s
+% Polyline
+gs  clippath
+6300 4533 m 6326 4479 l 6191 4412 l 6285 4493 l 6164 4466 l cp
+eoclip
+n 4500 3600 m
+ 6300 4500 l gs col0 s gr gr
+
+% arrowhead
+n 6164 4466 m 6285 4493 l 6191 4412 l  col0 s
+% Polyline
+gs  clippath
+6333 1804 m 6283 1770 l 6199 1897 l 6291 1814 l 6249 1930 l cp
+eoclip
+n 4500 4500 m
+ 6300 1800 l gs col0 s gr gr
+
+% arrowhead
+n 6249 1930 m 6291 1814 l 6199 1897 l  col0 s
+% Polyline
+gs  clippath
+6331 2710 m 6289 2668 l 6181 2775 l 6288 2712 l 6224 2818 l cp
+eoclip
+n 4500 4500 m
+ 6300 2700 l gs col0 s gr gr
+
+% arrowhead
+n 6224 2818 m 6288 2712 l 6181 2775 l  col0 s
+% Polyline
+gs  clippath
+6326 3620 m 6300 3566 l 6164 3633 l 6285 3607 l 6191 3687 l cp
+eoclip
+n 4500 4500 m
+ 6300 3600 l gs col0 s gr gr
+
+% arrowhead
+n 6191 3687 m 6285 3607 l 6164 3633 l  col0 s
+% Polyline
+gs  clippath
+6315 4530 m 6315 4470 l 6163 4470 l 6283 4500 l 6163 4530 l cp
+eoclip
+n 4500 4500 m
+ 6300 4500 l gs col0 s gr gr
+
+% arrowhead
+n 6163 4530 m 6283 4500 l 6163 4470 l  col0 s
+% Polyline
+gs  clippath
+7215 1830 m 7215 1770 l 7063 1770 l 7183 1800 l 7063 1830 l cp
+eoclip
+n 6750 1800 m
+ 7200 1800 l gs col0 s gr gr
+
+% arrowhead
+n 7063 1830 m 7183 1800 l 7063 1770 l  col0 s
+% Polyline
+gs  clippath
+7215 2730 m 7215 2670 l 7063 2670 l 7183 2700 l 7063 2730 l cp
+eoclip
+n 6750 2700 m
+ 7200 2700 l gs col0 s gr gr
+
+% arrowhead
+n 7063 2730 m 7183 2700 l 7063 2670 l  col0 s
+% Polyline
+gs  clippath
+7215 3630 m 7215 3570 l 7063 3570 l 7183 3600 l 7063 3630 l cp
+eoclip
+n 6750 3600 m
+ 7200 3600 l gs col0 s gr gr
+
+% arrowhead
+n 7063 3630 m 7183 3600 l 7063 3570 l  col0 s
+% Polyline
+gs  clippath
+7215 4530 m 7215 4470 l 7063 4470 l 7183 4500 l 7063 4530 l cp
+eoclip
+n 6750 4500 m
+ 7200 4500 l gs col0 s gr gr
+
+% arrowhead
+n 7063 4530 m 7183 4500 l 7063 4470 l  col0 s
+% Polyline
+gs  clippath
+1815 1830 m 1815 1770 l 1663 1770 l 1783 1800 l 1663 1830 l cp
+eoclip
+n 1350 1800 m
+ 1800 1800 l gs col0 s gr gr
+
+% arrowhead
+n 1663 1830 m 1783 1800 l 1663 1770 l  col0 s
+% Polyline
+gs  clippath
+1815 2730 m 1815 2670 l 1663 2670 l 1783 2700 l 1663 2730 l cp
+eoclip
+n 1350 2700 m
+ 1800 2700 l gs col0 s gr gr
+
+% arrowhead
+n 1663 2730 m 1783 2700 l 1663 2670 l  col0 s
+% Polyline
+gs  clippath
+1815 3630 m 1815 3570 l 1663 3570 l 1783 3600 l 1663 3630 l cp
+eoclip
+n 1350 3600 m
+ 1800 3600 l gs col0 s gr gr
+
+% arrowhead
+n 1663 3630 m 1783 3600 l 1663 3570 l  col0 s
+% Polyline
+gs  clippath
+1815 4530 m 1815 4470 l 1663 4470 l 1783 4500 l 1663 4530 l cp
+eoclip
+n 1350 4500 m
+ 1800 4500 l gs col0 s gr gr
+
+% arrowhead
+n 1663 4530 m 1783 4500 l 1663 4470 l  col0 s
+/Helvetica-Bold ff 180.00 scf sf
+2025 1350 m
+gs 1 -1 sc (Input layer) dup sw pop 2 div neg 0 rm  col0 sh gr
+/Helvetica-Bold ff 180.00 scf sf
+4275 1350 m
+gs 1 -1 sc (Hidden layer) dup sw pop 2 div neg 0 rm  col0 sh gr
+/Helvetica-Bold ff 180.00 scf sf
+6525 1350 m
+gs 1 -1 sc (Output layer) dup sw pop 2 div neg 0 rm  col0 sh gr
+% here ends figure;
+$F2psEnd
+rs
+showpage
+
+%%EndDocument
+ @endspecial Black 331 2069 a(Figure)f(4:)36 b(A)28 b(fully)g
+(connected)g(m)n(ultila)n(y)n(er)e(feedforw)n(ard)g(net)n(w)n(ork)g
+(with)j(one)e(hidden)h(la)n(y)n(er.)p Black Black 455
+2269 a(Figure)20 b(4)h(sho)n(ws)f(a)g(m)n(ultila)n(y)n(er)g(feedforw)n
+(ard)f(ANN)j(where)f(all)g(the)g(neurons)f(in)i(eac)n(h)e(la)n(y)n(er)
+330 2368 y(are)28 b(connected)g(to)h(all)f(the)h(neurons)f(in)h(the)g
+(next)g(la)n(y)n(er.)38 b(This)29 b(is)f(called)h(a)f(fully)h
+(connected)330 2468 y(net)n(w)n(ork)d(and)i(although)f(ANNs)h(do)f(not)
+h(need)f(to)h(b)r(e)g(fully)g(connected,)f(they)h(often)g(are.)455
+2568 y(Tw)n(o)36 b(di\013eren)n(t)h(kinds)g(of)g(parameters)f(can)h(b)r
+(e)g(adjusted)h(during)e(the)i(training)e(of)h(an)330
+2667 y(ANN,)32 b(the)g(w)n(eigh)n(ts)e(and)h(the)g Fm(t)g
+Fy(v)-5 b(alue)31 b(in)h(the)f(activ)-5 b(ation)31 b(functions.)48
+b(This)31 b(is)g(impractical)330 2767 y(and)g(it)h(w)n(ould)e(b)r(e)i
+(easier)e(if)i(only)f(one)f(of)i(the)f(parameters)f(should)h(b)r(e)g
+(adjusted.)48 b(T)-7 b(o)31 b(cop)r(e)330 2866 y(with)h(this)g(problem)
+f(a)g(bias)h(neuron)f(is)g(in)n(v)n(en)n(ted.)49 b(The)31
+b(bias)h(neuron)f(lies)g(in)h(one)f(la)n(y)n(er,)g(is)330
+2966 y(connected)f(to)g(all)g(the)g(neurons)f(in)h(the)h(next)f(la)n(y)
+n(er,)f(but)i(none)e(in)i(the)f(previous)f(la)n(y)n(er)f(and)330
+3066 y(it)f(alw)n(a)n(ys)f(emits)h(1.)36 b(Since)27 b(the)h(bias)e
+(neuron)h(emits)g(1)g(the)g(w)n(eigh)n(ts,)f(connected)h(to)g(the)h
+(bias)330 3165 y(neuron,)23 b(are)f(added)h(directly)g(to)f(the)i(com)n
+(bined)e(sum)h(of)g(the)h(other)e(w)n(eigh)n(ts)g(\(equation)h(2.1\),)
+330 3265 y(just)h(lik)n(e)f(the)h Fm(t)f Fy(v)-5 b(alue)23
+b(in)h(the)f(activ)-5 b(ation)23 b(functions.)36 b(A)24
+b(mo)r(di\014ed)f(equation)g(for)g(the)h(neuron,)330
+3365 y(where)18 b(the)h(w)n(eigh)n(t)f(for)h(the)g(bias)f(neuron)g(is)h
+(represen)n(ted)f(as)g Fm(w)2292 3377 y Fk(n)p Fu(+1)2421
+3365 y Fy(,)j(is)e(sho)n(wn)f(in)h(equation)f(2.5.)1354
+3618 y Fm(y)s Fy(\()p Fm(x)p Fy(\))23 b(=)g Fm(g)1676
+3476 y Fl( )1742 3618 y Fm(w)1801 3630 y Fk(n)p Fu(+1)1984
+3514 y Fk(n)1945 3539 y Fl(X)1951 3716 y Fk(i)p Fu(=0)2078
+3618 y Fm(w)2137 3630 y Fk(i)2166 3618 y Fm(x)2213 3630
+y Fk(i)2241 3476 y Fl(!)3159 3618 y Fy(\(2.5\))455 3840
+y(Adding)38 b(the)h(bias)f(neuron)g(allo)n(ws)f(us)h(to)g(remo)n(v)n(e)
+f(the)i Fm(t)f Fy(v)-5 b(alue)39 b(from)f(the)h(activ)-5
+b(ation)330 3939 y(function,)30 b(only)e(lea)n(ving)f(the)i(w)n(eigh)n
+(ts)f(to)g(b)r(e)i(adjusted,)f(when)g(the)g(ANN)g(is)g(b)r(eing)f
+(trained.)330 4039 y(A)g(mo)r(di\014ed)g(v)n(ersion)e(of)i(the)g
+(sigmoid)e(function)j(is)e(sho)n(wn)g(in)h(equation)f(2.6.)1518
+4257 y Fm(g)s Fy(\()p Fm(x)p Fy(\))c(=)1942 4201 y(1)p
+1793 4238 340 4 v 1793 4314 a(1)18 b(+)g Fm(e)1975 4290
+y Fj(\000)p Fu(2)p Fk(sx)3159 4257 y Fy(\(2.6\))455 4436
+y(W)-7 b(e)32 b(cannot)g(remo)n(v)n(e)e(the)j Fm(t)f
+Fy(v)-5 b(alue)32 b(without)g(adding)g(a)g(bias)f(neuron,)i(since)f
+(this)h(w)n(ould)330 4536 y(result)g(in)g(a)f(zero)g(output)h(from)f
+(the)i(sum)f(function)g(if)g(all)g(inputs)g(where)f(zero,)h(regardless)
+330 4636 y(of)g(the)h(v)-5 b(alues)33 b(of)g(the)g(w)n(eigh)n(ts.)53
+b(Some)33 b(ANN)h(libraries)e(do)h(ho)n(w)n(ev)n(er)e(remo)n(v)n(e)g
+(the)j Fm(t)f Fy(v)-5 b(alue)330 4735 y(without)36 b(adding)g(bias)f
+(neurons,)j(coun)n(ting)d(on)h(the)g(subsequen)n(t)g(la)n(y)n(ers)e(to)
+i(get)f(the)i(righ)n(t)330 4835 y(results.)f(An)28 b(ANN)h(with)f
+(added)f(bias)h(neurons)e(is)i(sho)n(wn)f(in)g(\014gure)g(5.)330
+5051 y Fs(2.2.3)94 b(Running)31 b(Time)g(of)g(Executing)h(an)g(ANN)330
+5204 y Fy(When)23 b(executing)e(an)h(ANN,)h(equation)e(2.5)g(needs)h
+(to)g(b)r(e)h(calculated)e(for)h(eac)n(h)f(neuron)g(whic)n(h)330
+5303 y(is)e(not)h(an)f(input)i(or)e(bias)g(neuron.)33
+b(This)20 b(means)f(that)h(w)n(e)f(ha)n(v)n(e)g(to)g(do)g(one)h(m)n
+(ultiplication)f(and)330 5403 y(one)24 b(addition)g(for)f(eac)n(h)g
+(connection)h(\(including)g(the)h(connections)e(from)h(the)g(bias)g
+(neurons\),)330 5503 y(b)r(esides)e(that)g(w)n(e)f(also)g(need)h(to)f
+(mak)n(e)g(one)h(call)f(to)h(the)g(activ)-5 b(ation)21
+b(function)i(for)e(eac)n(h)g(neuron)330 5602 y(that)28
+b(is)f(not)h(an)f(input)i(or)d(bias)h(neuron.)37 b(This)27
+b(giv)n(es)g(the)h(follo)n(wing)e(running)h(time:)p Black
+1809 5919 a(6)p Black eop end
+%%Page: 7 11
+TeXDict begin 7 10 bop Black 330 70 a Fp(2.3)82 b(T)-7
+b(raining)27 b(an)g(ANN)827 b(2)83 b(NEURAL)28 b(NETW)n(ORK)e(THEOR)-7
+b(Y)p 330 103 3000 4 v Black Black 930 1772 a @beginspecial
+0 @llx 0 @lly 371 @urx 302 @ury 2160 @rwi @setspecial
+%%BeginDocument: figs/feedforward_bias.fig.eps
+%!PS-Adobe-2.0 EPSF-2.0
+%%Title: figs/feedforward_bias.fig
+%%Creator: fig2dev Version 3.2 Patchlevel 4
+%%CreationDate: Fri Oct 31 01:02:48 2003
+%%For: lukesky at luke (Steffen Nissen,,,)
+%%BoundingBox: 0 0 371 302
+%%Magnification: 1.0000
+%%EndComments
+/$F2psDict 200 dict def
+$F2psDict begin
+$F2psDict /mtrx matrix put
+/col-1 {0 setgray} bind def
+/col0 {0.000 0.000 0.000 srgb} bind def
+/col1 {0.000 0.000 1.000 srgb} bind def
+/col2 {0.000 1.000 0.000 srgb} bind def
+/col3 {0.000 1.000 1.000 srgb} bind def
+/col4 {1.000 0.000 0.000 srgb} bind def
+/col5 {1.000 0.000 1.000 srgb} bind def
+/col6 {1.000 1.000 0.000 srgb} bind def
+/col7 {1.000 1.000 1.000 srgb} bind def
+/col8 {0.000 0.000 0.560 srgb} bind def
+/col9 {0.000 0.000 0.690 srgb} bind def
+/col10 {0.000 0.000 0.820 srgb} bind def
+/col11 {0.530 0.810 1.000 srgb} bind def
+/col12 {0.000 0.560 0.000 srgb} bind def
+/col13 {0.000 0.690 0.000 srgb} bind def
+/col14 {0.000 0.820 0.000 srgb} bind def
+/col15 {0.000 0.560 0.560 srgb} bind def
+/col16 {0.000 0.690 0.690 srgb} bind def
+/col17 {0.000 0.820 0.820 srgb} bind def
+/col18 {0.560 0.000 0.000 srgb} bind def
+/col19 {0.690 0.000 0.000 srgb} bind def
+/col20 {0.820 0.000 0.000 srgb} bind def
+/col21 {0.560 0.000 0.560 srgb} bind def
+/col22 {0.690 0.000 0.690 srgb} bind def
+/col23 {0.820 0.000 0.820 srgb} bind def
+/col24 {0.500 0.190 0.000 srgb} bind def
+/col25 {0.630 0.250 0.000 srgb} bind def
+/col26 {0.750 0.380 0.000 srgb} bind def
+/col27 {1.000 0.500 0.500 srgb} bind def
+/col28 {1.000 0.630 0.630 srgb} bind def
+/col29 {1.000 0.750 0.750 srgb} bind def
+/col30 {1.000 0.880 0.880 srgb} bind def
+/col31 {1.000 0.840 0.000 srgb} bind def
+
+end
+save
+newpath 0 302 moveto 0 0 lineto 371 0 lineto 371 302 lineto closepath clip newpath
+-84.3 377.0 translate
+1 -1 scale
+
+/cp {closepath} bind def
+/ef {eofill} bind def
+/gr {grestore} bind def
+/gs {gsave} bind def
+/sa {save} bind def
+/rs {restore} bind def
+/l {lineto} bind def
+/m {moveto} bind def
+/rm {rmoveto} bind def
+/n {newpath} bind def
+/s {stroke} bind def
+/sh {show} bind def
+/slc {setlinecap} bind def
+/slj {setlinejoin} bind def
+/slw {setlinewidth} bind def
+/srgb {setrgbcolor} bind def
+/rot {rotate} bind def
+/sc {scale} bind def
+/sd {setdash} bind def
+/ff {findfont} bind def
+/sf {setfont} bind def
+/scf {scalefont} bind def
+/sw {stringwidth} bind def
+/tr {translate} bind def
+/tnt {dup dup currentrgbcolor
+  4 -2 roll dup 1 exch sub 3 -1 roll mul add
+  4 -2 roll dup 1 exch sub 3 -1 roll mul add
+  4 -2 roll dup 1 exch sub 3 -1 roll mul add srgb}
+  bind def
+/shd {dup dup currentrgbcolor 4 -2 roll mul 4 -2 roll mul
+  4 -2 roll mul srgb} bind def
+ /DrawEllipse {
+	/endangle exch def
+	/startangle exch def
+	/yrad exch def
+	/xrad exch def
+	/y exch def
+	/x exch def
+	/savematrix mtrx currentmatrix def
+	x y tr xrad yrad sc 0 0 1 startangle endangle arc
+	closepath
+	savematrix setmatrix
+	} def
+
+/$F2psBegin {$F2psDict begin /$F2psEnteredState save def} def
+/$F2psEnd {$F2psEnteredState restore end} def
+
+$F2psBegin
+10 setmiterlimit
+0 slj 0 slc
+ 0.06299 0.06299 sc
+%
+% Fig objects follow
+%
+% 
+% here starts figure with depth 50
+% Ellipse
+7.500 slw
+n 2025 1800 225 225 0 360 DrawEllipse gs col0 s gr
+
+% Ellipse
+n 2025 2700 225 225 0 360 DrawEllipse gs col0 s gr
+
+% Ellipse
+n 2025 3600 225 225 0 360 DrawEllipse gs col0 s gr
+
+% Ellipse
+n 2025 4500 225 225 0 360 DrawEllipse gs col0 s gr
+
+% Ellipse
+n 4275 1800 225 225 0 360 DrawEllipse gs col0 s gr
+
+% Ellipse
+n 4275 2700 225 225 0 360 DrawEllipse gs col0 s gr
+
+% Ellipse
+n 4275 3600 225 225 0 360 DrawEllipse gs col0 s gr
+
+% Ellipse
+n 4275 4500 225 225 0 360 DrawEllipse gs col0 s gr
+
+% Ellipse
+n 6525 4500 225 225 0 360 DrawEllipse gs col0 s gr
+
+% Ellipse
+n 6525 3600 225 225 0 360 DrawEllipse gs col0 s gr
+
+% Ellipse
+n 6525 2700 225 225 0 360 DrawEllipse gs col0 s gr
+
+% Ellipse
+n 6525 1800 225 225 0 360 DrawEllipse gs col0 s gr
+
+% Ellipse
+n 2025 5400 225 225 0 360 DrawEllipse gs col0 s gr
+
+% Ellipse
+n 4275 5400 225 225 0 360 DrawEllipse gs col0 s gr
+
+% Polyline
+gs  clippath
+4065 1830 m 4065 1770 l 3913 1770 l 4033 1800 l 3913 1830 l cp
+eoclip
+n 2250 1800 m
+ 4050 1800 l gs col0 s gr gr
+
+% arrowhead
+n 3913 1830 m 4033 1800 l 3913 1770 l  col0 s
+% Polyline
+gs  clippath
+4050 2733 m 4076 2679 l 3941 2612 l 4035 2693 l 3914 2666 l cp
+eoclip
+n 2250 1800 m
+ 4050 2700 l gs col0 s gr gr
+
+% arrowhead
+n 3914 2666 m 4035 2693 l 3941 2612 l  col0 s
+% Polyline
+gs  clippath
+4039 3631 m 4081 3589 l 3974 3481 l 4038 3588 l 3931 3524 l cp
+eoclip
+n 2250 1800 m
+ 4050 3600 l gs col0 s gr gr
+
+% arrowhead
+n 3931 3524 m 4038 3588 l 3974 3481 l  col0 s
+% Polyline
+gs  clippath
+4033 4529 m 4083 4495 l 3999 4369 l 4041 4486 l 3949 4402 l cp
+eoclip
+n 2250 1800 m
+ 4050 4500 l gs col0 s gr gr
+
+% arrowhead
+n 3949 4402 m 4041 4486 l 3999 4369 l  col0 s
+% Polyline
+gs  clippath
+4076 1820 m 4050 1766 l 3914 1833 l 4035 1807 l 3941 1887 l cp
+eoclip
+n 2250 2700 m
+ 4050 1800 l gs col0 s gr gr
+
+% arrowhead
+n 3941 1887 m 4035 1807 l 3914 1833 l  col0 s
+% Polyline
+gs  clippath
+4065 2730 m 4065 2670 l 3913 2670 l 4033 2700 l 3913 2730 l cp
+eoclip
+n 2250 2700 m 2475 2700 l 2700 2700 l 2925 2700 l 3150 2700 l 3375 2700 l
+ 3600 2700 l 3825 2700 l
+ 4050 2700 l gs col0 s gr gr
+
+% arrowhead
+n 3913 2730 m 4033 2700 l 3913 2670 l  col0 s
+% Polyline
+gs  clippath
+4050 3633 m 4076 3579 l 3941 3512 l 4035 3593 l 3914 3566 l cp
+eoclip
+n 2250 2700 m
+ 4050 3600 l gs col0 s gr gr
+
+% arrowhead
+n 3914 3566 m 4035 3593 l 3941 3512 l  col0 s
+% Polyline
+gs  clippath
+4039 4531 m 4081 4489 l 3974 4381 l 4038 4488 l 3931 4424 l cp
+eoclip
+n 2250 2700 m
+ 4050 4500 l gs col0 s gr gr
+
+% arrowhead
+n 3931 4424 m 4038 4488 l 3974 4381 l  col0 s
+% Polyline
+gs  clippath
+4081 1810 m 4039 1768 l 3931 1875 l 4038 1812 l 3974 1918 l cp
+eoclip
+n 2250 3600 m
+ 4050 1800 l gs col0 s gr gr
+
+% arrowhead
+n 3974 1918 m 4038 1812 l 3931 1875 l  col0 s
+% Polyline
+gs  clippath
+4076 2720 m 4050 2666 l 3914 2733 l 4035 2707 l 3941 2787 l cp
+eoclip
+n 2250 3600 m
+ 4050 2700 l gs col0 s gr gr
+
+% arrowhead
+n 3941 2787 m 4035 2707 l 3914 2733 l  col0 s
+% Polyline
+gs  clippath
+4065 3630 m 4065 3570 l 3913 3570 l 4033 3600 l 3913 3630 l cp
+eoclip
+n 2250 3600 m
+ 4050 3600 l gs col0 s gr gr
+
+% arrowhead
+n 3913 3630 m 4033 3600 l 3913 3570 l  col0 s
+% Polyline
+gs  clippath
+4050 4533 m 4076 4479 l 3941 4412 l 4035 4493 l 3914 4466 l cp
+eoclip
+n 2250 3600 m
+ 4050 4500 l gs col0 s gr gr
+
+% arrowhead
+n 3914 4466 m 4035 4493 l 3941 4412 l  col0 s
+% Polyline
+gs  clippath
+4083 1804 m 4033 1770 l 3949 1897 l 4041 1814 l 3999 1930 l cp
+eoclip
+n 2250 4500 m
+ 4050 1800 l gs col0 s gr gr
+
+% arrowhead
+n 3999 1930 m 4041 1814 l 3949 1897 l  col0 s
+% Polyline
+gs  clippath
+4081 2710 m 4039 2668 l 3931 2775 l 4038 2712 l 3974 2818 l cp
+eoclip
+n 2250 4500 m
+ 4050 2700 l gs col0 s gr gr
+
+% arrowhead
+n 3974 2818 m 4038 2712 l 3931 2775 l  col0 s
+% Polyline
+gs  clippath
+4076 3620 m 4050 3566 l 3914 3633 l 4035 3607 l 3941 3687 l cp
+eoclip
+n 2250 4500 m
+ 4050 3600 l gs col0 s gr gr
+
+% arrowhead
+n 3941 3687 m 4035 3607 l 3914 3633 l  col0 s
+% Polyline
+gs  clippath
+4065 4530 m 4065 4470 l 3913 4470 l 4033 4500 l 3913 4530 l cp
+eoclip
+n 2250 4500 m
+ 4050 4500 l gs col0 s gr gr
+
+% arrowhead
+n 3913 4530 m 4033 4500 l 3913 4470 l  col0 s
+% Polyline
+gs  clippath
+6315 1830 m 6315 1770 l 6163 1770 l 6283 1800 l 6163 1830 l cp
+eoclip
+n 4500 1800 m
+ 6300 1800 l gs col0 s gr gr
+
+% arrowhead
+n 6163 1830 m 6283 1800 l 6163 1770 l  col0 s
+% Polyline
+gs  clippath
+6300 2733 m 6326 2679 l 6191 2612 l 6285 2693 l 6164 2666 l cp
+eoclip
+n 4500 1800 m
+ 6300 2700 l gs col0 s gr gr
+
+% arrowhead
+n 6164 2666 m 6285 2693 l 6191 2612 l  col0 s
+% Polyline
+gs  clippath
+6289 3631 m 6331 3589 l 6224 3481 l 6288 3588 l 6181 3524 l cp
+eoclip
+n 4500 1800 m
+ 6300 3600 l gs col0 s gr gr
+
+% arrowhead
+n 6181 3524 m 6288 3588 l 6224 3481 l  col0 s
+% Polyline
+gs  clippath
+6283 4529 m 6333 4495 l 6249 4369 l 6291 4486 l 6199 4402 l cp
+eoclip
+n 4500 1800 m
+ 6300 4500 l gs col0 s gr gr
+
+% arrowhead
+n 6199 4402 m 6291 4486 l 6249 4369 l  col0 s
+% Polyline
+gs  clippath
+6326 1820 m 6300 1766 l 6164 1833 l 6285 1807 l 6191 1887 l cp
+eoclip
+n 4500 2700 m
+ 6300 1800 l gs col0 s gr gr
+
+% arrowhead
+n 6191 1887 m 6285 1807 l 6164 1833 l  col0 s
+% Polyline
+gs  clippath
+6315 2730 m 6315 2670 l 6163 2670 l 6283 2700 l 6163 2730 l cp
+eoclip
+n 4500 2700 m
+ 6300 2700 l gs col0 s gr gr
+
+% arrowhead
+n 6163 2730 m 6283 2700 l 6163 2670 l  col0 s
+% Polyline
+gs  clippath
+6300 3633 m 6326 3579 l 6191 3512 l 6285 3593 l 6164 3566 l cp
+eoclip
+n 4500 2700 m
+ 6300 3600 l gs col0 s gr gr
+
+% arrowhead
+n 6164 3566 m 6285 3593 l 6191 3512 l  col0 s
+% Polyline
+gs  clippath
+6289 4531 m 6331 4489 l 6224 4381 l 6288 4488 l 6181 4424 l cp
+eoclip
+n 4500 2700 m
+ 6300 4500 l gs col0 s gr gr
+
+% arrowhead
+n 6181 4424 m 6288 4488 l 6224 4381 l  col0 s
+% Polyline
+gs  clippath
+6331 1810 m 6289 1768 l 6181 1875 l 6288 1812 l 6224 1918 l cp
+eoclip
+n 4500 3600 m
+ 6300 1800 l gs col0 s gr gr
+
+% arrowhead
+n 6224 1918 m 6288 1812 l 6181 1875 l  col0 s
+% Polyline
+gs  clippath
+6326 2720 m 6300 2666 l 6164 2733 l 6285 2707 l 6191 2787 l cp
+eoclip
+n 4500 3600 m
+ 6300 2700 l gs col0 s gr gr
+
+% arrowhead
+n 6191 2787 m 6285 2707 l 6164 2733 l  col0 s
+% Polyline
+gs  clippath
+6315 3630 m 6315 3570 l 6163 3570 l 6283 3600 l 6163 3630 l cp
+eoclip
+n 4500 3600 m
+ 6300 3600 l gs col0 s gr gr
+
+% arrowhead
+n 6163 3630 m 6283 3600 l 6163 3570 l  col0 s
+% Polyline
+gs  clippath
+6300 4533 m 6326 4479 l 6191 4412 l 6285 4493 l 6164 4466 l cp
+eoclip
+n 4500 3600 m
+ 6300 4500 l gs col0 s gr gr
+
+% arrowhead
+n 6164 4466 m 6285 4493 l 6191 4412 l  col0 s
+% Polyline
+gs  clippath
+6333 1804 m 6283 1770 l 6199 1897 l 6291 1814 l 6249 1930 l cp
+eoclip
+n 4500 4500 m
+ 6300 1800 l gs col0 s gr gr
+
+% arrowhead
+n 6249 1930 m 6291 1814 l 6199 1897 l  col0 s
+% Polyline
+gs  clippath
+6331 2710 m 6289 2668 l 6181 2775 l 6288 2712 l 6224 2818 l cp
+eoclip
+n 4500 4500 m
+ 6300 2700 l gs col0 s gr gr
+
+% arrowhead
+n 6224 2818 m 6288 2712 l 6181 2775 l  col0 s
+% Polyline
+gs  clippath
+6326 3620 m 6300 3566 l 6164 3633 l 6285 3607 l 6191 3687 l cp
+eoclip
+n 4500 4500 m
+ 6300 3600 l gs col0 s gr gr
+
+% arrowhead
+n 6191 3687 m 6285 3607 l 6164 3633 l  col0 s
+% Polyline
+gs  clippath
+6315 4530 m 6315 4470 l 6163 4470 l 6283 4500 l 6163 4530 l cp
+eoclip
+n 4500 4500 m
+ 6300 4500 l gs col0 s gr gr
+
+% arrowhead
+n 6163 4530 m 6283 4500 l 6163 4470 l  col0 s
+% Polyline
+gs  clippath
+7215 1830 m 7215 1770 l 7063 1770 l 7183 1800 l 7063 1830 l cp
+eoclip
+n 6750 1800 m
+ 7200 1800 l gs col0 s gr gr
+
+% arrowhead
+n 7063 1830 m 7183 1800 l 7063 1770 l  col0 s
+% Polyline
+gs  clippath
+7215 2730 m 7215 2670 l 7063 2670 l 7183 2700 l 7063 2730 l cp
+eoclip
+n 6750 2700 m
+ 7200 2700 l gs col0 s gr gr
+
+% arrowhead
+n 7063 2730 m 7183 2700 l 7063 2670 l  col0 s
+% Polyline
+gs  clippath
+7215 3630 m 7215 3570 l 7063 3570 l 7183 3600 l 7063 3630 l cp
+eoclip
+n 6750 3600 m
+ 7200 3600 l gs col0 s gr gr
+
+% arrowhead
+n 7063 3630 m 7183 3600 l 7063 3570 l  col0 s
+% Polyline
+gs  clippath
+7215 4530 m 7215 4470 l 7063 4470 l 7183 4500 l 7063 4530 l cp
+eoclip
+n 6750 4500 m
+ 7200 4500 l gs col0 s gr gr
+
+% arrowhead
+n 7063 4530 m 7183 4500 l 7063 4470 l  col0 s
+% Polyline
+gs  clippath
+1815 1830 m 1815 1770 l 1663 1770 l 1783 1800 l 1663 1830 l cp
+eoclip
+n 1350 1800 m
+ 1800 1800 l gs col0 s gr gr
+
+% arrowhead
+n 1663 1830 m 1783 1800 l 1663 1770 l  col0 s
+% Polyline
+gs  clippath
+1815 2730 m 1815 2670 l 1663 2670 l 1783 2700 l 1663 2730 l cp
+eoclip
+n 1350 2700 m
+ 1800 2700 l gs col0 s gr gr
+
+% arrowhead
+n 1663 2730 m 1783 2700 l 1663 2670 l  col0 s
+% Polyline
+gs  clippath
+1815 3630 m 1815 3570 l 1663 3570 l 1783 3600 l 1663 3630 l cp
+eoclip
+n 1350 3600 m
+ 1800 3600 l gs col0 s gr gr
+
+% arrowhead
+n 1663 3630 m 1783 3600 l 1663 3570 l  col0 s
+% Polyline
+gs  clippath
+1815 4530 m 1815 4470 l 1663 4470 l 1783 4500 l 1663 4530 l cp
+eoclip
+n 1350 4500 m
+ 1800 4500 l gs col0 s gr gr
+
+% arrowhead
+n 1663 4530 m 1783 4500 l 1663 4470 l  col0 s
+% Polyline
+gs  clippath
+4083 1800 m 4029 1773 l 3962 1908 l 4043 1815 l 4016 1935 l cp
+eoclip
+n 2250 5400 m
+ 4050 1800 l gs col0 s gr gr
+
+% arrowhead
+n 4016 1935 m 4043 1815 l 3962 1908 l  col0 s
+% Polyline
+gs  clippath
+4083 2704 m 4033 2670 l 3949 2797 l 4041 2714 l 3999 2830 l cp
+eoclip
+n 2250 5400 m
+ 4050 2700 l gs col0 s gr gr
+
+% arrowhead
+n 3999 2830 m 4041 2714 l 3949 2797 l  col0 s
+% Polyline
+gs  clippath
+4081 3610 m 4039 3568 l 3931 3675 l 4038 3612 l 3974 3718 l cp
+eoclip
+n 2250 5400 m
+ 4050 3600 l gs col0 s gr gr
+
+% arrowhead
+n 3974 3718 m 4038 3612 l 3931 3675 l  col0 s
+% Polyline
+gs  clippath
+4076 4520 m 4050 4466 l 3914 4533 l 4035 4507 l 3941 4587 l cp
+eoclip
+n 2250 5400 m
+ 4050 4500 l gs col0 s gr gr
+
+% arrowhead
+n 3941 4587 m 4035 4507 l 3914 4533 l  col0 s
+% Polyline
+gs  clippath
+6333 1800 m 6279 1773 l 6212 1908 l 6293 1815 l 6266 1935 l cp
+eoclip
+n 4500 5400 m
+ 6300 1800 l gs col0 s gr gr
+
+% arrowhead
+n 6266 1935 m 6293 1815 l 6212 1908 l  col0 s
+% Polyline
+gs  clippath
+6333 2704 m 6283 2670 l 6199 2797 l 6291 2714 l 6249 2830 l cp
+eoclip
+n 4500 5400 m
+ 6300 2700 l gs col0 s gr gr
+
+% arrowhead
+n 6249 2830 m 6291 2714 l 6199 2797 l  col0 s
+% Polyline
+gs  clippath
+6331 3610 m 6289 3568 l 6181 3675 l 6288 3612 l 6224 3718 l cp
+eoclip
+n 4500 5400 m
+ 6300 3600 l gs col0 s gr gr
+
+% arrowhead
+n 6224 3718 m 6288 3612 l 6181 3675 l  col0 s
+% Polyline
+gs  clippath
+6326 4520 m 6300 4466 l 6164 4533 l 6285 4507 l 6191 4587 l cp
+eoclip
+n 4500 5400 m
+ 6300 4500 l gs col0 s gr gr
+
+% arrowhead
+n 6191 4587 m 6285 4507 l 6164 4533 l  col0 s
+/Helvetica-Bold ff 180.00 scf sf
+2025 1350 m
+gs 1 -1 sc (Input layer) dup sw pop 2 div neg 0 rm  col0 sh gr
+/Helvetica-Bold ff 180.00 scf sf
+4275 1350 m
+gs 1 -1 sc (Hidden layer) dup sw pop 2 div neg 0 rm  col0 sh gr
+/Helvetica-Bold ff 180.00 scf sf
+6525 1350 m
+gs 1 -1 sc (Output layer) dup sw pop 2 div neg 0 rm  col0 sh gr
+/Helvetica-Bold ff 180.00 scf sf
+2025 5985 m
+gs 1 -1 sc (Bias) dup sw pop 2 div neg 0 rm  col0 sh gr
+/Helvetica-Bold ff 180.00 scf sf
+4275 5985 m
+gs 1 -1 sc (Bias) dup sw pop 2 div neg 0 rm  col0 sh gr
+% here ends figure;
+$F2psEnd
+rs
+showpage
+
+%%EndDocument
+ @endspecial 330 1955 a Fy(Figure)29 b(5:)41 b(A)30 b(fully)g
+(connected)f(m)n(ultila)n(y)n(er)g(feedforw)n(ard)f(net)n(w)n(ork)g
+(with)i(one)g(hidden)g(la)n(y)n(er)330 2055 y(and)d(bias)h(neurons.)p
+Black 1465 2401 a Fm(T)35 b Fy(=)22 b Fm(cA)d Fy(+)f(\()p
+Fm(n)g Fn(\000)g Fm(n)2069 2413 y Fk(i)2097 2401 y Fy(\))p
+Fm(G)965 b Fy(\(2.7\))455 2548 y(Where)31 b Fm(c)g Fy(is)h(the)f(n)n
+(um)n(b)r(er)g(of)h(connections,)g Fm(n)f Fy(is)g(the)h(total)f(n)n(um)
+n(b)r(er)g(of)h(neurons,)f Fm(n)3215 2560 y Fk(i)3274
+2548 y Fy(is)330 2647 y(the)c(n)n(um)n(b)r(er)f(of)g(input)h(and)f
+(bias)g(neurons,)g Fm(A)h Fy(is)f(the)h(cost)e(of)i(m)n(ultiplying)f
+(the)h(w)n(eigh)n(t)f(with)330 2747 y(the)j(input)g(and)g(adding)f(it)h
+(to)f(the)h(sum,)g Fm(G)g Fy(is)f(the)h(cost)f(of)h(the)f(activ)-5
+b(ation)29 b(function)g(and)f Fm(T)330 2847 y Fy(is)f(the)h(total)g
+(cost.)455 2946 y(If)e(the)h(ANN)h(is)e(fully)h(connected,)f
+Fm(l)i Fy(is)f(the)g(n)n(um)n(b)r(er)f(of)g(la)n(y)n(ers)f(and)h
+Fm(n)2686 2958 y Fk(l)2738 2946 y Fy(is)g(the)h(n)n(um)n(b)r(er)f(of)
+330 3046 y(neurons)c(in)h(eac)n(h)g(la)n(y)n(er)e(\(not)i(coun)n(ting)g
+(the)g(bias)g(neuron\),)h(this)f(equation)f(can)h(b)r(e)g(rewritten)330
+3146 y(to:)1194 3345 y Fm(T)34 b Fy(=)23 b(\()p Fm(l)d
+Fn(\000)e Fy(1\)\()p Fm(n)1681 3311 y Fu(2)1681 3365
+y Fk(l)1737 3345 y Fy(+)g Fm(n)1870 3357 y Fk(l)1895
+3345 y Fy(\))p Fm(A)h Fy(+)f(\()p Fm(l)i Fn(\000)e Fy(1\))p
+Fm(n)2375 3357 y Fk(l)2400 3345 y Fm(G)694 b Fy(\(2.8\))455
+3492 y(This)27 b(equation)g(sho)n(ws)g(that)h(the)g(total)g(cost)f(is)g
+(dominated)h(b)n(y)g Fm(A)g Fy(in)g(a)f(fully)h(connected)330
+3592 y(ANN.)34 b(This)e(means)h(that)g(if)g(w)n(e)g(w)n(an)n(t)f(to)g
+(optimize)h(the)g(execution)g(of)g(a)f(fully)h(connected)330
+3691 y(ANN,)g(w)n(e)e(need)i(to)e(optimize)h Fm(A)h Fy(and)f(retriev)-5
+b(al)31 b(of)g(the)i(information)e(needed)h(to)g(compute)330
+3791 y Fm(A)p Fy(.)330 4023 y Fo(2.3)112 b(T)-9 b(raining)38
+b(an)g(ANN)330 4176 y Fy(When)27 b(training)f(an)g(ANN)i(with)f(a)f
+(set)h(of)f(input)i(and)e(output)h(data,)g(w)n(e)f(wish)g(to)h(adjust)g
+(the)330 4276 y(w)n(eigh)n(ts)21 b(in)i(the)g(ANN,)g(to)f(mak)n(e)g
+(the)h(ANN)g(giv)n(e)e(the)i(same)f(outputs)h(as)e(seen)h(in)h(the)g
+(training)330 4375 y(data.)47 b(On)31 b(the)h(other)f(hand,)h(w)n(e)f
+(do)g(not)g(w)n(an)n(t)f(to)h(mak)n(e)g(the)g(ANN)i(to)r(o)d(sp)r
+(eci\014c,)j(making)330 4475 y(it)c(giv)n(e)e(precise)g(results)g(for)h
+(the)g(training)g(data,)g(but)g(incorrect)f(results)h(for)f(all)h
+(other)g(data.)330 4575 y(When)g(this)g(happ)r(ens,)g(w)n(e)f(sa)n(y)f
+(that)i(the)g(ANN)h(has)e(b)r(een)h(o)n(v)n(er-\014tted.)455
+4674 y(The)34 b(training)g(pro)r(cess)f(can)h(b)r(e)h(seen)f(as)g(an)g
+(optimization)g(problem,)i(where)e(w)n(e)g(wish)330 4774
+y(to)h(minimize)h(the)f(mean)g(square)f(error)f(of)i(the)g(en)n(tire)g
+(set)g(of)g(training)g(data)f(\(for)h(further)330 4873
+y(information)21 b(on)h(the)h(mean)e(square)g(error)f(see)i(section)f
+(5.3.3\).)35 b(This)22 b(problem)f(can)h(b)r(e)g(solv)n(ed)330
+4973 y(in)e(man)n(y)g(di\013eren)n(t)g(w)n(a)n(ys,)g(ranging)f(from)h
+(standard)f(optimization)h(heuristics)g(lik)n(e)f(sim)n(ulated)330
+5073 y(annealing,)27 b(through)g(more)g(sp)r(ecial)h(optimization)f
+(tec)n(hniques)h(lik)n(e)f(genetic)h(algorithms)e(to)330
+5172 y(sp)r(ecialized)h(gradien)n(t)g(descen)n(t)g(algorithms)f(lik)n
+(e)h(bac)n(kpropagation.)455 5272 y(The)j(most)h(used)g(algorithm)e(is)
+i(the)g(bac)n(kpropagation)c(algorithm)j(\(see)h(section)f(2.3.1\),)330
+5372 y(but)24 b(this)h(algorithm)d(has)h(some)h(limitations)g
+(concerning,)f(the)h(exten)n(t)g(of)g(adjustmen)n(t)g(to)g(the)330
+5471 y(w)n(eigh)n(ts)34 b(in)h(eac)n(h)f(iteration.)59
+b(This)35 b(problem)f(has)h(b)r(een)g(solv)n(ed)f(in)h(more)f(adv)-5
+b(anced)35 b(algo-)330 5571 y(rithms)e(lik)n(e)f(RPR)n(OP)g
+([Riedmiller)c(and)f(Braun,)g(1993)n(])33 b(and)g(quic)n(kprop)e([F)-7
+b(ahlman,)28 b(1988)n(],)330 5670 y(but)g(I)g(will)g(not)f(elab)r
+(orate)g(further)g(on)g(these)h(algorithms.)p Black 1809
+5919 a(7)p Black eop end
+%%Page: 8 12
+TeXDict begin 8 11 bop Black 330 70 a Fp(2.3)82 b(T)-7
+b(raining)27 b(an)g(ANN)827 b(2)83 b(NEURAL)28 b(NETW)n(ORK)e(THEOR)-7
+b(Y)p 330 103 3000 4 v Black 330 390 a Fs(2.3.1)94 b(The)32
+b(Bac)m(kpropagation)h(Algorithm)330 543 y Fy(The)25
+b(bac)n(kpropagation)c(algorithm)j(w)n(orks)f(in)h(m)n(uc)n(h)h(the)g
+(same)f(w)n(a)n(y)f(as)h(the)h(name)f(suggests:)330 643
+y(After)35 b(propagating)e(an)i(input)h(through)e(the)h(net)n(w)n(ork,)
+g(the)h(error)d(is)i(calculated)f(and)h(the)330 743 y(error)g(is)i
+(propagated)e(bac)n(k)i(through)f(the)i(net)n(w)n(ork)d(while)j(the)f
+(w)n(eigh)n(ts)f(are)g(adjusted)i(in)330 842 y(order)25
+b(to)i(mak)n(e)f(the)h(error)e(smaller.)36 b(When)27
+b(I)g(explain)g(this)g(algorithm,)f(I)h(will)g(only)f(explain)330
+942 y(it)e(for)f(fully)h(connected)g(ANNs,)h(but)f(the)g(theory)f(is)h
+(the)g(same)f(for)g(sparse)f(connected)h(ANNs.)455 1042
+y(Although)28 b(w)n(e)h(w)n(an)n(t)f(to)g(minimize)h(the)g(mean)g
+(square)e(error)g(for)h(all)h(the)g(training)f(data,)330
+1141 y(the)e(most)f(e\016cien)n(t)h(w)n(a)n(y)f(of)g(doing)g(this)h
+(with)g(the)g(bac)n(kpropagation)d(algorithm,)i(is)g(to)h(train)330
+1241 y(on)g(data)f(sequen)n(tially)g(one)g(input)i(at)f(a)f(time,)i
+(instead)e(of)h(training)f(on)h(the)g(com)n(bined)g(data.)330
+1340 y(Ho)n(w)n(ev)n(er,)d(this)h(means)g(that)g(the)h(order)e(the)h
+(data)g(is)g(giv)n(en)f(in)h(is)g(of)h(imp)r(ortance,)f(but)h(it)f
+(also)330 1440 y(pro)n(vides)i(a)h(v)n(ery)g(e\016cien)n(t)g(w)n(a)n(y)
+g(of)g(a)n(v)n(oiding)f(getting)i(stuc)n(k)f(in)h(a)f(lo)r(cal)g
+(minima.)455 1540 y(I)j(will)g(no)n(w)g(explain)g(the)h(bac)n
+(kpropagation)c(algorithm,)j(in)h(su\016cien)n(t)f(details)g(to)g(allo)
+n(w)330 1639 y(an)d(implemen)n(tation)h(from)f(this)h(explanation:)455
+1739 y(First)k(the)h(input)h(is)e(propagated)f(through)h(the)h(ANN)h
+(to)f(the)g(output.)53 b(After)33 b(this)g(the)330 1839
+y(error)26 b Fm(e)573 1851 y Fk(k)641 1839 y Fy(on)h(a)g(single)g
+(output)i(neuron)d Fm(k)31 b Fy(can)c(b)r(e)h(calculated)f(as:)1601
+2038 y Fm(e)1640 2050 y Fk(k)1704 2038 y Fy(=)c Fm(d)1835
+2050 y Fk(k)1894 2038 y Fn(\000)18 b Fm(y)2018 2050 y
+Fk(k)3159 2038 y Fy(\(2.9\))455 2165 y(Where)35 b Fm(y)769
+2177 y Fk(k)846 2165 y Fy(is)h(the)g(calculated)f(output)i(and)e
+Fm(d)1982 2177 y Fk(k)2059 2165 y Fy(is)h(the)g(desired)g(output)g(of)g
+(neuron)f Fm(k)s Fy(.)330 2265 y(This)d(error)e(v)-5
+b(alue)32 b(is)f(used)h(to)g(calculate)f(a)h Fm(\016)1799
+2277 y Fk(k)1872 2265 y Fy(v)-5 b(alue,)33 b(whic)n(h)e(is)h(again)f
+(used)h(for)f(adjusting)330 2364 y(the)d(w)n(eigh)n(ts.)36
+b(The)28 b Fm(\016)1009 2376 y Fk(k)1077 2364 y Fy(v)-5
+b(alue)27 b(is)h(calculated)f(b)n(y:)1576 2564 y Fm(\016)1613
+2576 y Fk(k)1677 2564 y Fy(=)c Fm(e)1804 2576 y Fk(k)1872
+2564 y Fm(g)1915 2529 y Fj(0)1938 2564 y Fy(\()p Fm(y)2011
+2576 y Fk(k)2052 2564 y Fy(\))1034 b(\(2.10\))455 2691
+y(Where)22 b Fm(g)758 2661 y Fj(0)803 2691 y Fy(is)g(the)h(deriv)n(ed)e
+(activ)-5 b(ation)22 b(function.)35 b(The)23 b(need)f(for)g
+(calculating)f(the)i(deriv)n(ed)330 2790 y(activ)-5 b(ation)39
+b(function)i(w)n(as)e(wh)n(y)h(I)g(expressed)e(the)j(need)f(for)f(a)h
+(di\013eren)n(tiable)g(activ)-5 b(ation)330 2890 y(function)28
+b(in)g(section)f(2.2.1.)455 2990 y(When)34 b(the)h Fm(\016)890
+3002 y Fk(k)965 2990 y Fy(v)-5 b(alue)34 b(is)g(calculated,)i(w)n(e)e
+(can)g(calculate)f(the)i Fm(\016)2527 3002 y Fk(j)2596
+2990 y Fy(v)-5 b(alues)34 b(for)g(preceding)330 3089
+y(la)n(y)n(ers.)44 b(The)31 b Fm(\016)816 3101 y Fk(j)881
+3089 y Fy(v)-5 b(alues)31 b(of)f(the)h(previous)f(la)n(y)n(er)f(is)h
+(calculated)g(from)g(the)h Fm(\016)2776 3101 y Fk(k)2848
+3089 y Fy(v)-5 b(alues)30 b(of)h(this)330 3189 y(la)n(y)n(er.)k(By)27
+b(the)h(follo)n(wing)f(equation:)1421 3449 y Fm(\016)1458
+3461 y Fk(j)1516 3449 y Fy(=)c Fm(\021)31 b(g)1719 3414
+y Fj(0)1741 3449 y Fy(\()p Fm(y)1814 3461 y Fk(j)1849
+3449 y Fy(\))1926 3345 y Fk(K)1896 3370 y Fl(X)1895 3548
+y Fk(k)q Fu(=0)2030 3449 y Fm(\016)2067 3461 y Fk(k)2108
+3449 y Fm(w)2167 3461 y Fk(j)s(k)3118 3449 y Fy(\(2.11\))455
+3650 y(Where)40 b Fm(K)46 b Fy(is)40 b(the)h(n)n(um)n(b)r(er)f(of)g
+(neurons)g(in)g(this)h(la)n(y)n(er)e(and)h Fm(\021)j
+Fy(is)e(the)g(learning)e(rate)330 3750 y(parameter,)29
+b(whic)n(h)g(determines)h(ho)n(w)f(m)n(uc)n(h)g(the)h(w)n(eigh)n(t)f
+(should)h(b)r(e)g(adjusted.)43 b(The)30 b(more)330 3850
+y(adv)-5 b(anced)21 b(gradien)n(t)g(descen)n(t)h(algorithms)f(do)r(es)g
+(not)h(use)g(a)g(learning)e(rate,)j(but)f(a)g(set)g(of)g(more)330
+3949 y(adv)-5 b(anced)33 b(parameters)g(that)h(mak)n(es)f(a)g(more)g
+(quali\014ed)h(guess)f(to)h(ho)n(w)f(m)n(uc)n(h)g(the)i(w)n(eigh)n(t)
+330 4049 y(should)27 b(b)r(e)h(adjusted.)455 4148 y(Using)c(these)g
+Fm(\016)k Fy(v)-5 b(alues,)25 b(the)f(\001)p Fm(w)k Fy(v)-5
+b(alues)24 b(that)g(the)h(w)n(eigh)n(ts)f(should)g(b)r(e)h(adjusted)g
+(b)n(y)-7 b(,)24 b(can)330 4248 y(b)r(e)k(calculated)f(b)n(y:)1584
+4447 y(\001)p Fm(w)1712 4459 y Fk(j)s(k)1807 4447 y Fy(=)c
+Fm(\016)1932 4459 y Fk(j)1995 4447 y Fm(y)2036 4459 y
+Fk(k)3118 4447 y Fy(\(2.12\))455 4575 y(The)33 b(\001)p
+Fm(w)759 4587 y Fk(j)s(k)865 4575 y Fy(v)-5 b(alue)33
+b(is)g(used)g(to)h(adjust)f(the)h(w)n(eigh)n(t)e Fm(w)2210
+4587 y Fk(j)s(k)2283 4575 y Fy(,)i(b)n(y)f Fm(w)2520
+4587 y Fk(j)s(k)2625 4575 y Fy(=)f Fm(w)2781 4587 y Fk(j)s(k)2876
+4575 y Fy(+)22 b(\001)p Fm(w)3091 4587 y Fk(j)s(k)3196
+4575 y Fy(and)330 4674 y(the)k(bac)n(kpropagation)d(algorithm)i(mo)n(v)
+n(es)f(on)i(to)f(the)i(next)f(input)g(and)g(adjusts)g(the)g(w)n(eigh)n
+(ts)330 4774 y(according)19 b(to)i(the)g(output.)35 b(This)21
+b(pro)r(cess)f(go)r(es)g(on)g(un)n(til)i(a)e(certain)g(stop)h(criteria)
+f(is)g(reac)n(hed.)330 4873 y(The)k(stop)g(criteria)f(is)h(t)n
+(ypically)f(determined)i(b)n(y)f(measuring)e(the)j(mean)f(square)f
+(error)f(of)i(the)330 4973 y(training)29 b(data)g(while)h(training)f
+(with)h(the)g(data,)f(when)h(this)g(mean)g(square)e(error)g(reac)n(hes)
+f(a)330 5073 y(certain)34 b(limit,)k(the)d(training)f(is)h(stopp)r(ed.)
+59 b(More)34 b(adv)-5 b(anced)34 b(stopping)h(criteria)f(in)n(v)n
+(olving)330 5172 y(b)r(oth)28 b(training)f(and)g(testing)h(data)f(are)g
+(also)f(used.)455 5272 y(In)h(this)h(section)e(I)i(ha)n(v)n(e)e
+(brie\015y)h(discussed)g(the)g(mathematics)g(of)h(the)f(bac)n
+(kpropagation)330 5372 y(algorithm,)37 b(but)f(since)g(this)g(rep)r
+(ort)f(is)g(mainly)h(concerned)f(with)h(the)g(implemen)n(tation)g(of)
+330 5471 y(ANN)21 b(algorithms,)g(I)f(ha)n(v)n(e)g(left)h(out)f
+(details)h(unnecessary)e(for)h(implemen)n(ting)g(the)h(algorithm.)330
+5571 y(I)j(will)g(refer)f(to)h([Hassoun,)j(1995)n(])d(and)g([Hertz)j
+(et)h(al.,)f(1991)o(])d(for)f(more)g(detailed)h(explanation)330
+5670 y(of)k(the)g(theory)e(b)r(ehind)j(and)e(the)h(mathematics)g(of)f
+(this)h(algorithm.)p Black 1809 5919 a(8)p Black eop
+end
+%%Page: 9 13
+TeXDict begin 9 12 bop Black 330 70 a Fp(2.3)82 b(T)-7
+b(raining)27 b(an)g(ANN)827 b(2)83 b(NEURAL)28 b(NETW)n(ORK)e(THEOR)-7
+b(Y)p 330 103 3000 4 v Black 330 390 a Fs(2.3.2)94 b(Running)31
+b(Time)g(of)g(Bac)m(kpropagation)330 543 y Fy(The)44
+b(bac)n(kpropagation)d(algorithm)i(starts)g(b)n(y)h(executing)g(the)g
+(net)n(w)n(ork,)j(in)n(v)n(olving)c(the)330 643 y(amoun)n(t)20
+b(of)h(w)n(ork)f(describ)r(ed)g(in)i(section)e(2.2.3)g(in)h(addition)g
+(to)f(the)i(actual)e(bac)n(kpropagation.)455 743 y(If)33
+b(the)g(ANN)h(is)f(fully)g(connected,)i(the)e(running)f(time)i(of)f
+(algorithms)e(on)i(the)g(ANN)h(is)330 842 y(dominated)26
+b(b)n(y)f(the)h(op)r(erations)f(executed)g(for)h(eac)n(h)e(connection)i
+(\(as)f(with)h(execution)g(of)f(an)330 942 y(ANN)j(in)g(section)g
+(2.2.3\).)455 1042 y(The)40 b(bac)n(kpropagation)c(is)k(dominated)g(b)n
+(y)g(the)g(calculation)f(of)h(the)h Fm(\016)2811 1054
+y Fk(j)2886 1042 y Fy(and)e(the)i(ad-)330 1141 y(justmen)n(t)36
+b(of)f Fm(w)845 1153 y Fk(j)s(k)917 1141 y Fy(,)h(since)f(these)g(are)f
+(the)h(only)g(calculations)f(that)h(are)f(executed)h(for)f(eac)n(h)330
+1241 y(connection.)53 b(The)33 b(calculations)f(executed)h(for)f(eac)n
+(h)g(connection)h(when)g(calculating)f Fm(\016)3206 1253
+y Fk(j)3274 1241 y Fy(is)330 1340 y(one)27 b(m)n(ultiplication)h(and)g
+(one)f(addition.)38 b(When)28 b(adjusting)g Fm(w)2354
+1352 y Fk(j)s(k)2454 1340 y Fy(it)g(is)g(also)f(one)g(m)n(ultiplica-)
+330 1440 y(tion)d(and)g(one)g(addition.)36 b(This)24
+b(means)f(that)i(the)f(total)g(running)g(time)h(is)f(dominated)g(b)n(y)
+g(t)n(w)n(o)330 1540 y(m)n(ultiplications)35 b(and)g(t)n(w)n(o)f
+(additions)g(\(three)h(if)h(y)n(ou)e(also)g(coun)n(t)g(the)i(addition)e
+(and)h(m)n(ul-)330 1639 y(tiplication)e(used)f(in)h(the)g(forw)n(ard)d
+(propagation\))h(p)r(er)h(connection.)51 b(This)33 b(is)f(only)g(a)g
+(small)330 1739 y(amoun)n(t)c(of)g(w)n(ork)f(for)h(eac)n(h)f
+(connection,)i(whic)n(h)f(giv)n(es)f(a)h(clue)g(to)h(ho)n(w)e(imp)r
+(ortan)n(t)h(it)h(is,)g(for)330 1839 y(the)f(data)f(needed)h(in)g
+(these)f(op)r(erations)g(to)g(b)r(e)h(easily)f(accessible.)p
+Black 1809 5919 a(9)p Black eop end
+%%Page: 10 14
+TeXDict begin 10 13 bop Black 2789 70 a Fp(3)83 b(ANAL)-7
+b(YSIS)p 330 103 3000 4 v Black 330 390 a Fv(3)135 b(Analysis)330
+572 y Fy(In)21 b(this)h(section)f(I)g(will)h(analyze)e(the)i
+(requiremen)n(ts)e(of)h(the)h(library)e(and)h(the)g(metho)r(ds)h
+(needed)330 672 y(to)28 b(meet)g(these)g(requiremen)n(ts.)37
+b(A)28 b(ma)5 b(jor)27 b(requiremen)n(t)g(is)h(the)g(demand)g(for)g(sp)
+r(eed)g(and)g(for)330 771 y(this)g(reason)e(I)i(will)f(analyze)g(n)n
+(umerous)f(metho)r(ds)i(for)f(optimizing)h(sp)r(eed.)330
+1004 y Fo(3.1)112 b(Usage)39 b(Analysis)330 1157 y Fy(The)29
+b(fann)h(library)d(is)j(not)f(in)n(tended)g(to)g(b)r(e)h(used)f(b)n(y)g
+(me)g(alone,)g(it)h(is)f(in)n(tended)g(to)h(b)r(e)f(used)330
+1257 y(b)n(y)d(man)n(y)g(p)r(eople.)36 b(F)-7 b(or)26
+b(the)g(library)f(to)h(b)r(e)h(a)f(success)f(in)i(this)f(area,)f(it)i
+(should)f(b)r(e)g(fast,)h(easy)330 1356 y(to)c(use)f(and)h(v)n
+(ersatile)e(enough)h(to)h(allo)n(w)e(for)h(it)i(to)e(b)r(e)h(used)g(in)
+g(man)n(y)f(di\013eren)n(t)h(situations.)35 b(A)330 1456
+y(common)27 b(mistak)n(e)h(in)g(soft)n(w)n(are)e(design)i(is)f(to)h(k)n
+(eep)g(adding)f(more)g(and)h(more)f(functionalit)n(y)330
+1555 y(without)35 b(thinking)f(ab)r(out)g(user)f(friendliness.)57
+b(This)34 b(added)g(functionalit)n(y)g(can)f(mak)n(e)h(the)330
+1655 y(system)27 b(di\016cult)i(to)e(comprehend)h(for)f(a)g(user,)g
+(whic)n(h)h(is)f(wh)n(y)h(I)f(will)h(try)g(to)f(hide)h(the)g(inner)330
+1755 y(arc)n(hitecture)c(for)h(the)g(user)g(and)g(only)g(exp)r(ose)f
+(functions)i(needed)f(b)n(y)g(the)h(user.)35 b(ANNs)26
+b(ha)n(v)n(e)330 1854 y(the)34 b(app)r(ealing)f(feature,)i(that)f(if)g
+(implemen)n(ted)h(correctly)d(they)i(can)f(b)r(e)h(used)g(b)n(y)f(p)r
+(eople,)330 1954 y(who)27 b(ha)n(v)n(e)g(only)g(v)n(ery)f(little)j
+(understanding)e(of)g(the)h(theory)f(b)r(ehind)h(them.)455
+2054 y(I)i(ha)n(v)n(e)f(already)g(men)n(tioned,)i(that)f(the)h(kind)f
+(of)h(net)n(w)n(ork)d(I)j(will)f(implemen)n(t)h(is)f(a)g(feed-)330
+2153 y(forw)n(ard)g(net)n(w)n(ork)g(and)h(that)g(it)h(should)f(b)r(e)h
+(fast.)48 b(What)32 b(I)f(ha)n(v)n(e)f(not)i(men)n(tioned)f(is)g(whic)n
+(h)330 2253 y(functionalities)e(I)g(w)n(ould)g(lik)n(e)f(to)h(implemen)
+n(t)h(in)f(the)g(library)f(and)h(whic)n(h)g(I)g(w)n(ould)f(not)h(lik)n
+(e)330 2352 y(to)e(implemen)n(t.)455 2452 y(The)32 b(library)f(should)i
+(b)r(e)f(easy)g(to)g(use)h(and)f(easy)g(to)g(train.)51
+b(F)-7 b(or)32 b(this)h(reason,)f(I)h(w)n(ould)330 2552
+y(lik)n(e)c(to)g(b)r(e)g(able)g(to)g(train)f(a)h(net)n(w)n(ork)f
+(directly)g(from)h(training)f(data)h(stored)f(in)h(a)g(\014le)g(\(with)
+330 2651 y(one)35 b(function)i(call\).)61 b(I)36 b(w)n(ould)f(also)g
+(lik)n(e)g(to)h(b)r(e)g(able)g(to)f(sa)n(v)n(e)g(and)g(load)g(all)h
+(information)330 2751 y(ab)r(out)28 b(an)g(ANN)g(to)g(and)g(from)g(a)f
+(\014le.)38 b(The)28 b(most)g(basic)g(ANN)g(op)r(erations)f(should)h(b)
+r(e)g(v)n(ery)330 2851 y(easy)d(to)g(use.)36 b(The)26
+b(basic)f(op)r(erations)g(are:)35 b(creating)24 b(a)i(net)n(w)n(ork)e
+(with)i(reasonable)e(defaults,)330 2950 y(training)j(a)g(net)n(w)n(ork)
+f(and)i(executing)f(a)g(net)n(w)n(ork.)455 3050 y(I)37
+b(w)n(ould)f(lik)n(e)h(to)g(mak)n(e)f(the)h(library)f(easy)g(to)h
+(alter)f(in)h(the)g(future,)j(whic)n(h)d(is)g(wh)n(y)g(it)330
+3149 y(should)25 b(b)r(e)h(p)r(ossible)g(to)f(mak)n(e)g(sparse)f
+(connected)i(ANNs.)36 b(I)26 b(w)n(ould)f(also)g(lik)n(e)g(to)g
+(implemen)n(t)330 3249 y(at)f(least)h(one)f(of)g(the)h(p)r(ossible)f
+(activ)-5 b(ation)24 b(functions,)i(but)f(still)g(allo)n(wing)e(more)h
+(to)g(b)r(e)h(added)330 3349 y(later.)455 3448 y(It)31
+b(should)f(b)r(e)i(p)r(ossible)e(to)h(alter)f(all)h(the)g(parameters)e
+(men)n(tioned)i(in)g(the)g(theory)f(\(sec-)330 3548 y(tion)38
+b(2\))g(at)g(run)n(time.)68 b(The)38 b(parameters)e(are:)56
+b(learning)37 b(rate,)j(activ)-5 b(ation)38 b(function,)j(the)330
+3648 y(steepness)27 b(v)-5 b(alue)28 b(of)f(the)h(activ)-5
+b(ation)27 b(function)h(and)g(the)g(v)-5 b(alues)27 b(of)h(the)g
+(initial)f(w)n(eigh)n(ts.)455 3747 y(It)32 b(should)f(not)h(b)r(e)g(p)r
+(ossible)g(to)f(hand)h(design)f(a)h(net)n(w)n(ork)e(top)r(ology)-7
+b(,)32 b(but)g(it)g(should)g(b)r(e)330 3847 y(p)r(ossible)22
+b(to)g(create)f(a)h(net)n(w)n(ork)f(and)h(decide)g(ho)n(w)g(man)n(y)f
+(la)n(y)n(ers)f(there)i(should)g(b)r(e,)i(ho)n(w)e(man)n(y)330
+3946 y(neurons)28 b(there)h(should)g(b)r(e)h(in)f(eac)n(h)f(of)h(these)
+h(la)n(y)n(ers)d(and)i(ho)n(w)f(dense)h(the)h(net)n(w)n(ork)d(should)
+330 4046 y(b)r(e.)52 b(I)32 b(will)h(get)f(bac)n(k)f(to)h(the)h(densit)
+n(y)f(in)h(section)f(4.3,)h(but)g(generally)d(what)j(I)f(w)n(an)n(t,)h
+(is)f(to)330 4146 y(b)r(e)d(able)f(to)h(create)f(a)g(net)n(w)n(ork)f
+(and)i(sa)n(y)e(that)i(e.g.)40 b(only)28 b(half)h(of)f(the)h(p)r
+(ossible)g(connections)330 4245 y(should)e(b)r(e)h(connected.)455
+4345 y(Some)i(ANN)i(pac)n(k)-5 b(ages)28 b(ha)n(v)n(e)i(GUIs)h(for)f
+(viewing)g(information)g(ab)r(out)h(an)f(ANN,)i(but)f(I)330
+4445 y(do)i(not)h(think)g(that)g(it)g(is)g(the)g(primary)e(goal)h(of)g
+(an)h(ANN)g(library)e(and)i(for)f(this)h(reason)e(I)330
+4544 y(do)27 b(not)g(w)n(an)n(t)f(to)h(implemen)n(t)g(this.)37
+b(Due)28 b(to)f(the)g(\015exible)g(nature)g(of)g(the)g(library)f(that)h
+(I)g(will)330 4644 y(implemen)n(t)g(\(a)f(net)n(w)n(ork)f(can)h(b)r(e)h
+(sa)n(v)n(ed)e(to)h(and)g(loaded)g(from)g(a)g(\014le\),)h(it)g(w)n
+(ould)f(b)r(e)g(p)r(ossible)330 4743 y(to)h(mak)n(e)g(a)g(stand-alone)g
+(program)e(that)j(could)g(implemen)n(t)g(these)f(kinds)h(of)f
+(features.)330 4976 y Fo(3.2)112 b(Fixed)39 b(P)m(oin)m(t)e(Analysis)
+330 5129 y Fy(As)27 b(men)n(tioned)f(in)h(section)g(1.1,)f(the)h(ANN)g
+(should)g(b)r(e)g(able)f(to)h(run)f(with)i(\014xed)e(p)r(oin)n(t)h(n)n
+(um-)330 5229 y(b)r(ers.)36 b(This)28 b(ho)n(w)n(ev)n(er)d(raises)h(a)g
+(lot)h(of)h(questions)e(and)h(not)h(all)e(of)i(them)f(ha)n(v)n(e)f
+(easy)h(answ)n(ers.)455 5328 y(The)40 b(\014rst)h(big)g(question)f(is)h
+(ho)n(w)f(m)n(uc)n(h)h(of)g(the)g(functionalit)n(y)g(implemen)n(ted)h
+(in)f(the)330 5428 y(\015oating)33 b(p)r(oin)n(t)g(library)g(should)g
+(also)f(b)r(e)i(implemen)n(ted)h(in)e(the)h(\014xed)g(p)r(oin)n(t)g
+(library)-7 b(.)53 b(The)330 5528 y(ob)n(vious)22 b(answ)n(er)f(to)i
+(this)g(question)g(w)n(ould)f(b)r(e)i(all)e(of)h(the)g(functionalit)n
+(y)-7 b(,)24 b(this)g(ho)n(w)n(ev)n(er)d(raises)330 5627
+y(a)27 b(new)h(question:)36 b(What)28 b(should)g(b)r(e)g(done)f(when)h
+(o)n(v)n(er\015o)n(w)d(o)r(ccurs?)p Black 1788 5919 a(10)p
+Black eop end
+%%Page: 11 15
+TeXDict begin 11 14 bop Black 330 70 a Fp(3.3)82 b(P)n(erformance)25
+b(Analysis)1483 b(3)83 b(ANAL)-7 b(YSIS)p 330 103 3000
+4 v Black 455 390 a Fy(The)38 b(hardw)n(are)e(in)n(teger)i(o)n(v)n
+(er\015o)n(w)e(exception)i(is)g(usually)g(mask)n(ed)f(b)n(y)h(the)h(op)
+r(erating)330 490 y(system)31 b(or)f(the)h(compiler)1170
+460 y Fu(2)1207 490 y Fy(.)47 b(This)31 b(implies)g(that)g(the)h(only)e
+(real)h(alternativ)n(es)e(are)h(to)h(c)n(hec)n(k)330
+589 y(for)i(o)n(v)n(er\015o)n(w)f(on)i(eac)n(h)f(calculation)g(or)g
+(not)h(to)g(c)n(hec)n(k)f(for)h(o)n(v)n(er\015o)n(w)d(at)j(all.)56
+b(T)-7 b(o)33 b(c)n(hec)n(k)h(for)330 689 y(o)n(v)n(er\015o)n(w)26
+b(on)i(eac)n(h)g(calculation)g(w)n(ould)g(b)r(e)h(to)r(o)f(costly)g
+(and)g(w)n(ould)g(v)n(oid)g(the)h(whole)f(idea)g(of)330
+789 y(using)i(\014xed)g(p)r(oin)n(t)g(arithmetic)h(for)e(greater)g(sp)r
+(eed.)44 b(On)30 b(the)h(other)f(hand)g(not)g(to)g(c)n(hec)n(k)f(at)330
+888 y(all)e(w)n(ould)g(create)g(o)n(v)n(er\015o)n(w)e(and)j
+(unpredictable)f(results)g(in)h(consequence.)455 988
+y(This)20 b(is)g(an)g(anno)n(ying)f(problem,)i(esp)r(ecially)f(b)r
+(ecause)g(y)n(ou)g(ha)n(v)n(e)f(no)h(real)f(con)n(trol)g(o)n(v)n(er)g
+(the)330 1088 y(v)-5 b(alues)24 b(of)h(the)g(w)n(eigh)n(ts.)35
+b(Usually)24 b(in)h(\014xed)f(p)r(oin)n(t)h(arithmetic)g(y)n(ou)f
+(either)g(giv)n(e)g(a)g(guaran)n(tee,)330 1187 y(that)39
+b(there)g(will)h(nev)n(er)e(b)r(e)h(in)n(teger)f(o)n(v)n(er\015o)n(w)f
+(or)h(y)n(ou)h(mak)n(e)f(a)h(simple)g(c)n(hec)n(k,)i(that)e(can)330
+1287 y(see)32 b(if)g(an)g(o)n(v)n(er\015o)n(w)e(has)h(o)r(ccurred)g
+(during)h(a)g(series)f(of)h(calculations.)49 b(I)32 b(can)g(not)g
+(\014nd)h(an)n(y)330 1386 y(simple)26 b(c)n(hec)n(k,)f(that)h(can)g
+(guaran)n(tee)e(that)i(there)g(has)f(not)h(b)r(een)g(an)f(o)n(v)n
+(er\015o)n(w)f(for)h(a)g(series)g(of)330 1486 y(op)r(erations,)h(but)j
+(what)e(I)h(can)f(do,)g(is)h(to)f(guaran)n(tee)f(that)i(an)f(o)n(v)n
+(er\015o)n(w)e(will)j(nev)n(er)f(o)r(ccur.)455 1586 y(In)k(order)g(to)g
+(mak)n(e)g(a)h(guaran)n(tee)d(that)j(an)g(o)n(v)n(er\015o)n(w)d(will)j
+(nev)n(er)f(o)r(ccur,)h(I)g(will)g(ha)n(v)n(e)e(to)330
+1685 y(reev)-5 b(aluate)32 b(the)i(amoun)n(t)e(of)i(functionalit)n(y)f
+(whic)n(h)g(should)g(b)r(e)g(implemen)n(ted)h(in)f(the)h(\014xed)330
+1785 y(p)r(oin)n(t)29 b(library)-7 b(.)41 b(Since)29
+b(\014xed)g(p)r(oin)n(t)g(arithmetic)g(is)g(mostly)g(geared)f(to)n(w)n
+(ards)f(p)r(ortable)i(com-)330 1885 y(puters,)h(it)f(is)h(safe)f(to)g
+(assume)g(that)g(there)g(will)h(b)r(e)g(a)f(standard)f(PC)h(a)n(v)-5
+b(ailable)28 b(for)h(training)330 1984 y(the)24 b(ANN.)h(This)e(means)h
+(that)g(the)g(training)f(part)g(of)h(the)g(ANN)g(do)r(es)g(not)f(need)h
+(to)g(b)r(e)g(imple-)330 2084 y(men)n(ted)29 b(in)h(\014xed)f(p)r(oin)n
+(t.)42 b(Another)28 b(observ)-5 b(ation)28 b(is)h(that)h(after)e(the)i
+(ANN)g(is)f(fully)g(trained,)330 2183 y(the)35 b(ANN)g(nev)n(er)e(c)n
+(hanges)g(and)h(it)h(is)f(therefore)g(p)r(ossible)g(to)g(mak)n(e)g(one)
+g(c)n(hec)n(k,)h(after)f(the)330 2283 y(training)27 b(has)g
+(\014nished,)h(that)g(will)g(guaran)n(tee)d(that)j(an)g(o)n(v)n
+(er\015o)n(w)d(will)i(nev)n(er)g(o)r(ccur.)455 2383 y(These)c(observ)-5
+b(ations)22 b(ab)r(out)i(the)g(problem)f(of)h(\014xed)g(p)r(oin)n(t)g
+(arithmetic,)g(giv)n(e)f(rise)g(to)h(sev-)330 2482 y(eral)h(di\013eren)
+n(t)i(implemen)n(tation)f(strategies.)35 b(In)27 b(section)f(4.4)g(I)g
+(will)h(c)n(ho)r(ose)e(an)h(appropriate)330 2582 y(strategy)g(and)i
+(pro)n(v)n(e)e(that)h(there)h(can)f(b)r(e)h(no)f(o)n(v)n(er\015o)n(w)f
+(using)h(this)h(strategy)-7 b(.)330 2814 y Fo(3.3)112
+b(P)m(erformance)38 b(Analysis)330 2968 y Fy(The)g(primary)f(aim)h(of)h
+(the)f(library)f(is)h(to)g(b)r(e)h(as)e(fast)i(as)e(p)r(ossible)h
+(during)g(training)f(and)330 3067 y(execution)27 b(of)h(the)g(ANN.)g(T)
+-7 b(o)27 b(reac)n(h)g(this)h(aim,)f(I)h(will)f(consider)g(sev)n(eral)f
+(kinds)h(of)h(optimiza-)330 3167 y(tion)c(tec)n(hniques.)36
+b(The)24 b(tec)n(hniques)g(are)g(partly)f(inspired)h(b)n(y)g(the)h(p)r
+(erformance)e(engineering)330 3267 y(course)h(at)h(DIKU)g(and)g(the)g
+(rules)f(de\014ned)i(in)f([Ben)n(tley)-7 b(,)27 b(1982)n(])e(and)g
+(partly)g(b)n(y)f(general)g(com-)330 3366 y(mon)j(sense.)37
+b(The)28 b(optimization)f(tec)n(hniques)g(that)h(I)g(will)g(consider)e
+(are)h(the)h(follo)n(wing:)p Black 455 3549 a Fn(\017)p
+Black 41 w Fy(Algorithmic)f(optimization)p Black 455
+3665 a Fn(\017)p Black 41 w Fy(Arc)n(hitectural)f(optimization)p
+Black 455 3781 a Fn(\017)p Black 41 w Fy(Cac)n(he)g(optimization)p
+Black 455 3897 a Fn(\017)p Black 41 w Fy(Common)h(sub)r(expression)f
+(elimination)p Black 455 4014 a Fn(\017)p Black 41 w
+Fy(In-lining)h(of)h(co)r(de)p Black 455 4130 a Fn(\017)p
+Black 41 w Fy(Sp)r(ecializations)e(for)h(fully)i(connected)e(ANNs)p
+Black 455 4246 a Fn(\017)p Black 41 w Fy(Lo)r(op)g(unrolling)p
+Black 455 4362 a Fn(\017)p Black 41 w Fy(T)-7 b(able)27
+b(lo)r(okup)455 4545 y(The)22 b(cac)n(he)f(optimizations)h(are)f(the)h
+(most)g(e\016cien)n(t,)i(as)d(can)h(b)r(e)g(seen)g(in)h(the)f(b)r(enc)n
+(hmarks)330 4645 y(\(section)27 b(6\).)330 4860 y Fs(3.3.1)94
+b(Algorithmic)30 b(Optimization)330 5014 y Fy(When)c(optimizing)f(a)f
+(piece)h(of)h(soft)n(w)n(are,)e(y)n(ou)g(will)h(often)h(\014nd)f(the)h
+(most)f(e\016cien)n(t)g(impro)n(v)n(e-)330 5113 y(men)n(ts,)36
+b(in)f(the)g(algorithms)e(used)i(for)e(the)i(soft)n(w)n(are.)56
+b(If)35 b(y)n(ou)f(could)g(c)n(hange)g(the)g(running)330
+5213 y(time)23 b(of)g(a)f(piece)g(of)h(soft)n(w)n(are,)f(from)g(\002\()
+p Fm(n)1643 5183 y Fu(2)1680 5213 y Fy(\))h(to)f(\002\()p
+Fm(n)p Fy(\))h(then)g(this)f(optimization)h(w)n(ould)f(almost)330
+5313 y(certainly)27 b(b)r(e)h(b)r(etter)g(than)g(all)f(other)g
+(optimizations)g(y)n(ou)g(could)g(think)h(of.)p Black
+330 5382 1200 4 v 422 5436 a Fr(2)457 5459 y Fq(In)i(gcc)g(it)g(is)f(p)
+r(ossible)g(to)h(get)g(signals)f(when)h(a)g(o)n(v)n(er\015o)n(w)g(o)r
+(ccurs)g(with)g Ff(-ftrapv)p Fq(,)i(but)e(unfortunately)330
+5538 y(some)21 b(optimized)g(p)r(oin)n(ter)g(arithmetic)h(in)e(gcc)i
+(mak)n(es)f(in)n(teger)g(o)n(v)n(er\015o)n(w)g(and)h(breaks)f(this)f
+(functionalit)n(y)i(\(see)330 5617 y Ff(http://gcc.gnu.org/bugz)q(illa)
+q(/sh)q(ow)p 1457 5617 22 4 v 32 w(bug.cgi?id=1823)p
+Fq(\).)p Black Black 1788 5919 a Fy(11)p Black eop end
+%%Page: 12 16
+TeXDict begin 12 15 bop Black 330 70 a Fp(3.3)82 b(P)n(erformance)25
+b(Analysis)1483 b(3)83 b(ANAL)-7 b(YSIS)p 330 103 3000
+4 v Black 455 390 a Fy(The)34 b(bac)n(kpropagation)e(algorithm)i(will)h
+(ha)n(v)n(e)e(to)i(visit)g(all)g(connections,)g(this)h(cannot)330
+490 y(b)r(e)27 b(c)n(hanged)e(and)h(it)h(is)f(therefore)g(not)g(p)r
+(ossible)g(to)g(c)n(hange)g(the)g(running)g(time)h(of)g(the)f(bac)n(k-)
+330 589 y(propagation)g(algorithm.)39 b(Ho)n(w)n(ev)n(er,)26
+b(as)i(describ)r(ed)g(in)h(section)f(2.3,)g(other)g(more)g(adv)-5
+b(anced)330 689 y(algorithms)37 b(exists)i(whic)n(h)f(could)h(get)g(b)r
+(etter)g(results)f(than)h(the)g(bac)n(kpropagation)d(algo-)330
+789 y(rithm.)g(These)22 b(algorithms)g(do)h(not)g(execute)g(faster)f
+(than)i(the)f(bac)n(kpropagation)d(algorithm,)330 888
+y(but)28 b(they)g(adjust)g(the)g(w)n(eigh)n(ts)e(more)h(precise,)g
+(making)g(them)h(reac)n(h)f(a)g(result)g(faster.)455
+988 y(I)e(ha)n(v)n(e)f(c)n(hosen)g(to)h(implemen)n(t)h(the)g(bac)n
+(kpropagation)c(algorithm,)i(b)r(ecause)h(it)h(is)f(simple)330
+1088 y(and)i(e\013ectiv)n(e)f(enough)h(in)g(most)f(cases.)36
+b(This)26 b(decision)h(means)f(that)h(I)g(ha)n(v)n(e)f(kno)n(wingly)f
+(not)330 1187 y(implemen)n(ted)33 b(an)e(imp)r(ortan)n(t)h
+(optimization)f(for)h(the)g(training)f(algorithm,)h(whic)n(h)g(implies)
+330 1287 y(that)h(there)h(is)f(not)g(m)n(uc)n(h)g(use)g(in)g(sp)r
+(ending)h(to)r(o)f(m)n(uc)n(h)g(time)g(on)g(the)h(other)e(optimization)
+330 1386 y(strategies,)k(b)r(ecause)g(a)f(highly)h(tuned)g(bac)n
+(kpropagation)d(algorithm)i(will)h(still)g(b)r(e)g(slo)n(w)n(er)330
+1486 y(than)29 b(an)f(un)n(tuned)h(RPR)n(OP)e(algorithm.)38
+b(In)28 b(spite)h(of)f(that,)h(a)f(basic)g(lev)n(el)g(of)g
+(optimization)330 1586 y(is)e(still)h(a)f(desirable)g(feature)g(in)h
+(the)g(implemen)n(tation)f(of)h(the)g(bac)n(kpropagation)c(algorithm.)
+455 1685 y(In)e(conclusion;)i(not)f(m)n(uc)n(h)f(is)g(done)h(ab)r(out)f
+(the)h(algorithms)e(\(although)h(something)g(could)330
+1785 y(b)r(e)i(done)g(ab)r(out)g(the)h(training\),)f(whic)n(h)g(means)g
+(that)g(the)h(running)f(time)g(is)g(still)h(\002\()p
+Fm(n)p Fy(\),)g(where)330 1885 y Fm(n)h Fy(is)g(the)h(n)n(um)n(b)r(er)e
+(of)i(connections.)35 b(Ho)n(w)n(ev)n(er,)24 b(there)g(is)i(still)f(ro)
+r(om)f(for)h(optimization)g(of)g(the)330 1984 y(o)n(v)n(erhead)g(in)n
+(v)n(olv)n(ed)i(in)g(executing)h(the)g(actual)f(calculations.)330
+2200 y Fs(3.3.2)94 b(Arc)m(hitectural)33 b(Optimization)330
+2353 y Fy(There)j(are)g(man)n(y)g(w)n(a)n(ys)f(of)i(building)g(the)g
+(arc)n(hitecture)f(\(data)g(structures\))g(for)g(a)h(neural)330
+2453 y(net)n(w)n(ork.)e(The)24 b(ob)5 b(ject)25 b(orien)n(ted)f
+(approac)n(h)f(w)n(ould)h(b)r(e)i(to)e(mak)n(e)g(ev)n(erything)g(an)h
+(ob)5 b(ject)24 b(and)330 2553 y(there)29 b(are)g(actually)g(go)r(o)r
+(d)g(abstract)f(concepts)h(lik)n(e)h(neurons,)f(synapses)f(etc.)43
+b(whic)n(h)30 b(w)n(ould)330 2652 y(mak)n(e)37 b(for)g(a)h(great)e
+(class)h(hierarc)n(h)n(y)-7 b(.)66 b(In)38 b(Jet's)g(Neural)f(Library)f
+([Heller,)28 b(2002)n(])38 b(suc)n(h)f(an)330 2752 y(approac)n(h)21
+b(has)i(b)r(een)h(c)n(hosen,)g(with)f(all)h(the)f(adv)-5
+b(an)n(tages)22 b(and)h(disadv)-5 b(an)n(tages)22 b(of)h(this)h(c)n
+(hoice.)330 2851 y(There)j(are)g(sev)n(eral)e(ma)5 b(jor)27
+b(disadv)-5 b(an)n(tage)26 b(of)h(this)h(approac)n(h:)p
+Black 455 3034 a Fn(\017)p Black 41 w Fy(Data)21 b(itself)i(are)e(not)h
+(lo)r(cated)g(closely)f(together)g(and)h(cac)n(he)f(p)r(erformance)g
+(is)h(v)n(ery)f(bad.)p Black 455 3150 a Fn(\017)p Black
+41 w Fy(Algorithms)35 b(lik)n(e)g(executing)g(the)h(net)n(w)n(ork)e
+(has)h(co)r(de)h(lo)r(cated)f(in)h(sev)n(eral)e(di\013eren)n(t)538
+3250 y(classes,)41 b(whic)n(h)e(mak)n(es)f(the)i(co)r(de)f(hard)g(to)g
+(optimize)h(and)f(adds)g(an)g(o)n(v)n(erhead)e(on)538
+3350 y(sev)n(eral)25 b(k)n(ey)i(functions.)p Black 455
+3466 a Fn(\017)p Black 41 w Fy(It)g(is)h(di\016cult)g(to)g(mak)n(e)f
+(tigh)n(t)g(inner)h(lo)r(ops.)455 3648 y(These)33 b(are)f(ob)n(viously)
+g(problems)h(that)h(could)f(b)r(e)h(\014xed,)i(while)d(still)h(using)f
+(the)h(ob)5 b(ject)330 3748 y(orien)n(ted)27 b(approac)n(h,)f(but)i
+(the)g(ob)5 b(ject)27 b(orien)n(ted)g(approac)n(h)f(mak)n(es)g(it)i
+(di\016cult)h(to)e(do)g(so.)455 3848 y(A)22 b(go)r(o)r(d)g(arc)n
+(hitecture)e(for)i(a)g(neural)f(net)n(w)n(ork)g(should)h(not)g(tak)n(e)
+g(up)g(to)r(o)g(m)n(uc)n(h)g(space)f(and)330 3947 y(should)e(not)g
+(include)h(to)r(o)f(deep)h(a)f(lev)n(el)f(of)i(ob)5 b(jects.)33
+b(On)20 b(the)f(other)g(hand)g(some)g(lev)n(el)g(of)g(ob)5
+b(ject)330 4047 y(abstraction)27 b(is)h(highly)g(desired.)39
+b(P)n(erhaps)26 b(a)i(three)g(lev)n(el)g(hierarc)n(h)n(y)e(w)n(ould)i
+(b)r(e)h(acceptable,)330 4147 y(with)j(the)g(outer)f(lev)n(el)h
+(consisting)e(of)i(the)g(en)n(tire)f(ANN,)i(the)f(next)g(lev)n(el)f
+(consisting)g(of)h(the)330 4246 y(individual)24 b(la)n(y)n(ers)f(and)h
+(the)g(last)g(lev)n(el)g(consisting)f(of)h(the)h(single)e(neurons)h
+(and)g(connections.)455 4346 y(A)40 b(go)r(o)r(d)g(arc)n(hitecture)g
+(will)h(also)e(allo)n(w)h(for)g(easy)f(access)h(to)g(information)g(lik)
+n(e)g(total)330 4445 y(n)n(um)n(b)r(er)27 b(of)h(neurons)f(etc.)330
+4661 y Fs(3.3.3)94 b(Cac)m(he)33 b(Optimization)330 4814
+y Fy(If)27 b(a)g(go)r(o)r(d)f(data)h(arc)n(hitecture)f(is)h(in)g(place)
+g(m)n(uc)n(h)f(of)h(the)h(w)n(ork)d(for)i(the)g(cac)n(he)f
+(optimization)330 4914 y(is)e(already)e(done.)36 b(But)24
+b(some)f(w)n(ork)g(still)h(needs)g(to)g(b)r(e)g(done)g(in)g(impro)n
+(ving)f(the)h(arc)n(hitecture)330 5014 y(and)j(making)g(sure)g(that)h
+(the)g(algorithms)e(themselv)n(es)h(are)g(cac)n(he)g(a)n(w)n(are.)455
+5113 y(The)22 b(arc)n(hitecture)f(should)h(assure)f(that)i(data)f
+(could)g(b)r(e)h(accessed)e(sequen)n(tially)h(for)g(go)r(o)r(d)330
+5213 y(cac)n(he)f(p)r(erformance.)34 b(A)23 b(go)r(o)r(d)e(example)h
+(of)g(this)h(is)f(the)g(w)n(eigh)n(ts,)h(whic)n(h)f(should)g(b)r(e)g
+(accessed)330 5313 y(sequen)n(tially)33 b(when)g(executing)g(the)h(net)
+n(w)n(ork.)53 b(F)-7 b(or)33 b(this)h(reasons)d(the)j(w)n(eigh)n(ts)e
+(should)i(b)r(e)330 5412 y(aligned)27 b(in)h(memory)f(in)g(one)h(long)f
+(arra)n(y)-7 b(,)25 b(whic)n(h)i(could)h(b)r(e)g(accessed)e(sequen)n
+(tially)-7 b(.)455 5512 y(The)23 b(algorithms)g(themselv)n(es)g(should)
+h(ob)n(viously)e(use)i(this)g(optimized)g(arc)n(hitecture)e(and)330
+5611 y(access)30 b(the)i(data)f(sequen)n(tially)-7 b(.)48
+b(The)32 b(algorithms)e(should)h(also)g(assure)f(that)i(all)f(the)h(co)
+r(de,)p Black 1788 5919 a(12)p Black eop end
+%%Page: 13 17
+TeXDict begin 13 16 bop Black 330 70 a Fp(3.3)82 b(P)n(erformance)25
+b(Analysis)1483 b(3)83 b(ANAL)-7 b(YSIS)p 330 103 3000
+4 v Black 330 390 a Fy(that)36 b(they)g(execute,)i(are)c(lo)r(cated)i
+(at)f(the)h(same)f(place)h(to)f(utilize)h(the)g(co)r(de)g(cac)n(he)f
+(to)g(an)330 490 y(optim)n(um.)330 706 y Fs(3.3.4)94
+b(Common)30 b(Sub)s(expression)h(Elimination)330 859
+y Fy(Man)n(y)39 b(expressions)f(are)g(calculated)h(sev)n(eral)f(times)i
+(in)g(standard)f(neural)g(net)n(w)n(ork)f(algo-)330 958
+y(rithms.)f(Although)27 b(a)h(compiler)e(can)h(do)h(common)f(sub)r
+(expression)f(elimination,)i(it)f(is)h(often)330 1058
+y(a)f(go)r(o)r(d)f(idea)h(to)f(calculate)h(expressions)e(only)i(once)f
+(and)h(store)f(them)i(in)f(lo)r(cal)f(v)-5 b(ariables.)36
+b(A)330 1158 y(p)r(erson)30 b(can)g(often)h(do)g(a)f(b)r(etter)h(job)g
+(at)f(this,)i(b)r(ecause)e(a)g(p)r(erson)g(can)h(predict)f(side)h
+(e\013ects)330 1257 y(and)c(aliasing)765 1227 y Fu(3)801
+1257 y Fy(,)h(whic)n(h)g(the)g(compiler)e(can)i(not)f(predict.)455
+1357 y(This)g(is)g(esp)r(ecially)f(a)h(go)r(o)r(d)g(idea)g(for)f(the)i
+(stop)f(criteria)f(of)h(a)g(lo)r(op,)g(b)r(ecause)f(this)i(calcu-)330
+1457 y(lation)j(is)h(made)g(in)g(eac)n(h)f(run)h(of)f(the)i(lo)r(op.)49
+b(If)32 b(some)f(of)h(this)g(calculation)f(could)h(b)r(e)g(made)330
+1556 y(only)g(once,)g(this)h(w)n(ould)e(mak)n(e)h(for)f(a)h(go)r(o)r(d)
+f(p)r(erformance)g(increase.)49 b(Also)32 b(v)-5 b(ariables)30
+b(from)330 1656 y(the)i(ANN)g(whic)n(h)g(is)f(used)g(in)h(cen)n(tral)e
+(lo)r(ops)h(could)g(b)r(e)h(prefetc)n(hed)g(to)f(a)g(lo)r(cal)g(v)-5
+b(ariable)30 b(to)330 1756 y(a)n(v)n(oid)c(o)n(v)n(erhead)g(of)h(fetc)n
+(hing)h(the)g(v)-5 b(ariable)26 b(from)i(memory)e(eac)n(h)h(time.)455
+1855 y(The)22 b(cen)n(tral)f(algorithms)g(should)h(b)r(e)h(hand)g
+(optimized)f(to)g(ev)-5 b(aluate)22 b(all)g(common)g(sub)r(ex-)330
+1955 y(pressions)k(at)i(an)f(early)g(state,)h(while)g(the)g(not)g(so)f
+(cen)n(tral)g(algorithms)f(should)h(let)i(the)f(com-)330
+2054 y(piler)f(tak)n(e)g(care)g(of)g(this)h(optimization.)330
+2270 y Fs(3.3.5)94 b(In-lining)30 b(of)i(Co)s(de)330
+2423 y Fy(All)g(co)r(de)g(whic)n(h)g(is)g(ev)-5 b(aluated)31
+b(more)h(than)g(once)f(in)h(either)g(execution)g(or)f(training)g(of)h
+(the)330 2523 y(ANN,)25 b(should)f(b)r(e)h(in-lined)f(in)h(the)g
+(algorithm.)34 b(This)24 b(will)h(a)n(v)n(oid)e(unnecessary)f(o)n(v)n
+(erhead)h(for)330 2623 y(function)28 b(calls)f(and)h(allo)n(w)e(the)i
+(compiler)f(to)g(do)h(optimizations)f(across)e(the)j(function)h(call.)
+455 2722 y(The)g(in-lining)h(can)f(b)r(e)h(done)f(b)n(y)h(either)f
+(writing)g(the)h(co)r(de)g(directly)f(in)h(the)g(algorithm,)330
+2822 y(b)n(y)d(using)h(in-line)f(functions)h(or)f(macros.)330
+3038 y Fs(3.3.6)94 b(Sp)s(ecializations)30 b(for)i(F)-8
+b(ully)32 b(Connected)g(ANNs)330 3191 y Fy(In)f(fully)h(connected)f
+(ANNs)h(w)n(e)f(already)f(kno)n(w)g(the)i(connections)e(b)r(et)n(w)n
+(een)h(t)n(w)n(o)g(la)n(y)n(ers.)46 b(If)330 3291 y(w)n(e)23
+b(assure)f(that)i(the)f(w)n(eigh)n(ts)g(for)g(fully)h(connected)f(ANNs)
+h(are)e(alw)n(a)n(ys)g(lo)r(cated)h(at)g(the)h(same)330
+3390 y(place,)43 b(w)n(e)d(can)g(implemen)n(t)h(algorithms)e(whic)n(h)i
+(b)r(ene\014t)g(from)f(this)h(information.)74 b(This)330
+3490 y(information)40 b(can)h(b)r(e)g(used)g(to)f(access)g(the)h(w)n
+(eigh)n(t)f(indep)r(enden)n(tly)i(of)f(the)g(information)330
+3589 y(stored)27 b(ab)r(out)g(connections.)455 3689 y(Suc)n(h)37
+b(an)g(optimization)h(b)r(ene\014ts)g(the)g(p)r(erformance)e(in)i(t)n
+(w)n(o)f(w)n(a)n(ys:)56 b(First)37 b(of)h(all,)h(w)n(e)330
+3789 y(can)31 b(completely)h(eliminate)g(the)g(need)g(for)f(using)g
+(the)h(memory)-7 b(,)32 b(whic)n(h)g(store)f(information)330
+3888 y(ab)r(out)22 b(connections.)35 b(Secondly)-7 b(,)23
+b(w)n(e)f(can)h(access)e(the)i(w)n(eigh)n(ts)e(in)i(one)f(step)h(less)f
+(\(one)g(p)r(oin)n(ter)330 3988 y(reference)27 b(instead)g(of)h(t)n(w)n
+(o\).)330 4204 y Fs(3.3.7)94 b(Lo)s(op)31 b(Unrolling)330
+4357 y Fy(Unrolling)c(lo)r(ops)g(can)g(often)g(b)r(e)h(done)f(more)g
+(e\016cien)n(t)h(b)n(y)f(hand)g(than)h(b)n(y)f(a)g(compiler.)36
+b(This)330 4457 y(is)31 b(partly)f(b)r(ecause)g(the)h(compiler)f(has)g
+(to)g(deal)h(with)g(aliasing,)f(where)g(a)g(programmer)e(can)330
+4556 y(see)f(that)h(aliasing)e(will)i(not)g(happ)r(en)g(and)f(mak)n(e)g
+(faster)g(co)r(de.)455 4656 y(A)g(short)g(example)h(of)f(this)h(is:)p
+Black Black 330 4839 a Ft(a[0])42 b(=)h(b[0];)330 4938
+y(a[0])f(+=)h(b[1];)330 5038 y(a[0])f(+=)h(b[2];)455
+5220 y Fy(Whic)n(h)25 b(could)g(b)r(e)h(rewritten)f(b)n(y)g(a)g
+(programmer)e(to)i(the)g(follo)n(wing)g(\(if)h(the)g(programmer)330
+5320 y(w)n(as)h(sure)g(that)g Ft(a)h Fy(and)f Ft(b)g
+Fy(did)h(not)g(share)e(data\):)p Black 330 5394 1200
+4 v 422 5448 a Fr(3)457 5471 y Fq(C)j(and)g(C++)f(automaticly)i(thinks)
+f(that)h(data)g(reac)n(hed)g(from)e(t)n(w)n(o)h(di\013eren)n(t)h(p)r
+(oin)n(ters)f(could)g(b)r(e)g(the)330 5550 y(same.)i(This)23
+b(mak)n(es)h(for)e(safe)i(but)g(slo)n(w)f(co)r(de)h(\(F)n(OR)-6
+b(TRAN)23 b(assumes)h(the)g(opp)r(osite,)g(whic)n(h)g(mak)n(es)f(for)g
+(fast)330 5629 y(unsafe)h(co)r(de\).)p Black Black 1788
+5919 a Fy(13)p Black eop end
+%%Page: 14 18
+TeXDict begin 14 17 bop Black 330 70 a Fp(3.3)82 b(P)n(erformance)25
+b(Analysis)1483 b(3)83 b(ANAL)-7 b(YSIS)p 330 103 3000
+4 v Black Black Black 330 390 a Ft(a[0])42 b(=)h(b[0])f(+)h(b[1])f(+)h
+(b[2];)455 573 y Fy(The)23 b(compiler)g(can)g(not)g(do)g(this,)h(b)r
+(ecause)f(it)h(can)f(not)g(b)r(e)h(sure)f(that)g Ft(b[1])f
+Fy(and)h Ft(b[2])f Fy(are)330 672 y(not)28 b(sharing)e(the)i(same)f
+(memory)g(as)g Ft(a[0])f Fy(and)h(is)h(therefore)e(altered)h(b)n(y)i
+Ft(a[0])42 b(=)h(b[0];)p Fy(.)330 888 y Fs(3.3.8)94 b(T)-8
+b(able)32 b(Lo)s(okup)330 1042 y Fy(As)g(seen)g(in)g(\014gure)f(3,)i
+(the)g(activ)-5 b(ation)31 b(functions)i(are)e(often)h(v)n(ery)f(close)
+g(to)h(zero)f(for)g(small)330 1141 y(v)-5 b(alues)30
+b(and)g(close)g(to)g(one)h(for)f(large)f(v)-5 b(alues.)45
+b(This)30 b(lea)n(v)n(es)f(a)h(relativ)n(ely)f(small)i(span)f(where)330
+1241 y(the)c(output)g(is)f(not)g(zero)g(or)f(one.)36
+b(This)25 b(span)g(can)g(b)r(e)h(represen)n(ted)e(as)h(a)g(lo)r(okup)g
+(table,)h(with)330 1340 y(a)31 b(reasonable)f(resolution.)48
+b(It)32 b(is)g(hard)f(to)g(tell)h(whether)g(this)g(lo)r(okup)f(table)h
+(will)g(b)r(e)g(faster)330 1440 y(than)c(actually)f(calculating)f(the)i
+(activ)-5 b(ation)28 b(function,)g(but)g(it)g(is)f(w)n(orth)g(a)g(try)
+-7 b(.)p Black 1788 5919 a(14)p Black eop end
+%%Page: 15 19
+TeXDict begin 15 18 bop Black 1848 70 a Fp(4)82 b(DESIGN)28
+b(AND)h(IMPLEMENT)-7 b(A)g(TION)p 330 103 3000 4 v Black
+330 390 a Fv(4)135 b(Design)45 b(and)g(Implemen)l(tation)330
+572 y Fy(In)19 b(section)g(3)f(I)h(ha)n(v)n(e)f(analyzed)g(what)h(the)g
+(library)f(should)h(b)r(e)g(able)g(to)f(do)h(and)g(whic)n(h)g(metho)r
+(ds)330 672 y(should)k(b)r(e)g(used)g(to)g(reac)n(h)f(this)h(ob)5
+b(jectiv)n(e.)35 b(In)23 b(this)h(section)e(I)i(will)f(use)g(these)g
+(considerations)330 771 y(to)30 b(giv)n(e)g(concrete)g(suggestions)e
+(as)i(to)h(ho)n(w)e(the)i(design)f(and)h(programming)d(of)j(the)f
+(library)330 871 y(should)g(b)r(e)h(constructed.)44 b(I)31
+b(will)f(also)f(describ)r(e)h(ho)n(w)g(I)g(ha)n(v)n(e)f(implemen)n(ted)
+i(some)f(of)g(these)330 971 y(suggestions)h(and)h(wh)n(y)f(I)i(ha)n(v)n
+(e)e(not)h(implemen)n(ted)h(others.)49 b(If)33 b(nothing)f(else)g(is)g
+(stated,)h(all)330 1070 y(suggestions)26 b(from)h(b)r(oth)h(analysis)e
+(and)i(design)f(ha)n(v)n(e)f(b)r(een)i(implemen)n(ted.)330
+1301 y Fo(4.1)112 b(API)37 b(Design)330 1455 y Fy(Muc)n(h)25
+b(of)h(the)f(API)h(ha)n(v)n(e)e(already)g(b)r(een)h(sk)n(etc)n(hed)g
+(in)g(the)h(\\Usage)e(Analysis")g(\(section)i(3.1\),)330
+1554 y(so)e(I)g(will)h(only)f(giv)n(e)f(a)h(few)h(more)e(details)i(in)f
+(this)h(section)f(and)g(lea)n(v)n(e)f(the)i(actual)f(description)330
+1654 y(of)k(the)g(API)f(to)g(the)h(\\User's)f(Guide")g(\(section)h
+(5\).)455 1754 y(Since)g(the)h(library)f(should)g(b)r(e)h(written)g(in)
+g(ANSI)g(C,)g(the)g(API)f(needs)h(to)f(b)r(e)h(a)g(function)330
+1853 y(based)e(API,)h(but)g(there)f(can)g(still)h(b)r(e)g(an)g(ob)5
+b(ject)27 b(orien)n(ted)g(though)n(t)g(b)r(ehind)i(the)e(API.)455
+1953 y(I)g(will)g(use)g(an)g(ANN)h(structure,)e(whic)n(h)h(can)g(b)r(e)
+g(allo)r(cated)g(b)n(y)g(a)f(constructor)g(and)h(deal-)330
+2052 y(lo)r(cated)f(b)n(y)g(a)g(destructor.)35 b(This)26
+b(structure)g(should)g(b)r(e)h(giv)n(en)e(as)h(the)g(\014rst)g(argumen)
+n(t)f(to)h(all)330 2152 y(functions)i(whic)n(h)f(op)r(erates)g(on)g
+(the)h(ANN,)h(to)e(mimic)h(an)g(ob)5 b(ject)27 b(orien)n(ted)g(approac)
+n(h.)455 2252 y(The)32 b(ANN)g(should)g(ha)n(v)n(e)f(three)g
+(di\013eren)n(t)i(metho)r(ds)f(of)g(storing)e(the)j(in)n(ternal)e(w)n
+(eigh)n(ts:)330 2351 y Ft(float)p Fy(,)40 b Ft(double)d
+Fy(and)i Ft(int)p Fy(.)71 b(Where)39 b Ft(float)e Fy(and)i
+Ft(double)e Fy(are)h(standard)g(\015oating)h(p)r(oin)n(t)330
+2451 y(represen)n(tations)f(and)i Ft(int)f Fy(is)i(the)f(\014xed)g(p)r
+(oin)n(t)h(represen)n(tation.)73 b(In)40 b(order)f(to)h(giv)n(e)g(the)
+330 2551 y(compiler)24 b(the)h(b)r(est)g(p)r(ossible)f(opp)r(ortunit)n
+(y)g(to)g(optimize)h(the)g(co)r(de,)g(this)f(distinction)h(should)330
+2650 y(b)r(e)31 b(made)g(at)g(compile-time.)46 b(This)31
+b(will)g(pro)r(duce)g(sev)n(eral)e(di\013eren)n(t)i(libraries)e(and)i
+(require)330 2750 y(that)i(the)h(p)r(erson)e(using)h(the)h(library)d
+(should)i(include)h(a)e(header)h(\014le)g(whic)n(h)g(is)g(sp)r
+(eci\014c)g(to)330 2849 y(the)i(metho)r(d)g(c)n(hosen.)57
+b(Although)34 b(there)g(is)h(this)g(distinction)f(b)r(et)n(w)n(een)h
+(whic)n(h)f(header)g(\014le)330 2949 y(is)c(include,)i(it)f(should)g
+(still)g(b)r(e)g(easy)e(to)i(write)f(co)r(de)h(whic)n(h)f(could)g
+(compile)h(with)g(all)f(three)330 3049 y(header)d(\014les.)39
+b(F)-7 b(or)28 b(this)g(purp)r(ose)g(I)g(ha)n(v)n(e)f(in)n(v)n(en)n
+(ted)h(a)g Ft(fann)p 2258 3049 27 4 v 29 w(type)p Fy(,)f(whic)n(h)h(is)
+h(de\014ned)f(in)h(the)330 3148 y(three)e(header)g(\014les)h(as)f
+Ft(float)p Fy(,)e Ft(double)g Fy(and)j Ft(int)e Fy(resp)r(ectiv)n(ely)
+-7 b(.)455 3248 y(It)27 b(should)h(b)r(e)f(p)r(ossible)h(to)f(sa)n(v)n
+(e)f(the)i(net)n(w)n(ork)e(in)h(standard)g(\015oating)f(p)r(oin)n(t)i
+(represen)n(ta-)330 3348 y(tion)g(and)f(in)h(\014xed)g(p)r(oin)n(t)f
+(represen)n(tation)f(\(more)h(on)h(this)g(in)f(section)h(4.4\).)455
+3447 y(F)-7 b(urthermore)29 b(there)i(should)f(b)r(e)h(a)f(structure)g
+(whic)n(h)h(could)f(hold)h(training)f(data.)45 b(This)330
+3547 y(structure)27 b(should)g(lik)n(e)g(the)h(net)g(itself)g(b)r(e)g
+(loadable)f(from)g(a)g(\014le.)37 b(The)28 b(structure)f(of)g(the)h
+(\014le)330 3646 y(should)f(b)r(e)h(fairly)f(simple,)g(making)g(it)h
+(easy)e(to)h(exp)r(ort)g(a)g(\014le)h(in)g(this)f(format)g(from)g
+(another)330 3746 y(program.)455 3846 y(I)g(will)h(lea)n(v)n(e)e(the)i
+(rest)f(of)h(the)g(API)f(details)h(to)f(section)g(5)h(\\User's)e
+(Guide".)330 4077 y Fo(4.2)112 b(Arc)m(hitectural)37
+b(Design)330 4230 y Fy(In)28 b(section)g(3.3.2)e(\\Arc)n(hitectural)h
+(Optimization")g(I)h(ha)n(v)n(e)e(outlined)j(ho)n(w)e(I)h(will)g
+(create)f(the)330 4330 y(general)k(arc)n(hitectural)h(design.)52
+b(In)32 b(this)i(section)e(I)h(will)g(sp)r(ecify)g(more)f(precisely)g
+(ho)n(w)g(the)330 4429 y(design)27 b(should)h(b)r(e.)455
+4529 y(The)e(data)g(structures)g(should)g(b)r(e)h(structured)f(in)h
+(three)f(lev)n(els:)35 b(A)27 b(lev)n(el)f(con)n(taining)g(the)330
+4629 y(whole)33 b(ANN,)i(a)e(lev)n(el)g(con)n(taining)g(the)h(la)n(y)n
+(ers)e(and)h(a)h(lev)n(el)f(con)n(taining)f(the)i(neurons)f(and)330
+4728 y(connections.)455 4828 y(With)38 b(this)h(three)f(lev)n(el)f
+(structure,)j(I)f(will)f(suggest)f(t)n(w)n(o)g(di\013eren)n(t)h
+(implemen)n(tations.)330 4928 y(The)27 b(\014rst)f(is)h(cen)n(tered)f
+(around)g(the)h(connections)f(and)h(the)g(second)f(is)h(cen)n(tered)f
+(around)g(the)330 5027 y(neurons.)330 5242 y Fs(4.2.1)94
+b(Connection)31 b(Cen)m(tered)h(Arc)m(hitecture)330 5395
+y Fy(In)21 b(a)f(structure)h(where)f(the)h(connections)f(are)g(the)h
+(cen)n(tral)f(structure,)i(the)f(three)f(lev)n(els)h(w)n(ould)330
+5495 y(lo)r(ok)27 b(lik)n(e)g(this:)p Black 431 5670
+a(1.)p Black 42 w Ft(fann)f Fy(The)h(ANN)i(with)f(references)e(to)i
+(the)g(connection)f(la)n(y)n(ers.)p Black 1788 5919 a(15)p
+Black eop end
+%%Page: 16 20
+TeXDict begin 16 19 bop Black 330 70 a Fp(4.2)82 b(Arc)n(hitectural)27
+b(Design)577 b(4)82 b(DESIGN)28 b(AND)h(IMPLEMENT)-7
+b(A)g(TION)p 330 103 3000 4 v Black Black 431 390 a Fy(2.)p
+Black 42 w Ft(fann)p 719 390 27 4 v 29 w(connection)p
+1188 390 V 28 w(layer)21 b Fy(The)j(connection)f(la)n(y)n(ers)e(with)j
+(references)f(to)g(the)h(connec-)538 490 y(tions.)p Black
+431 606 a(3.)p Black 42 w Ft(fann)p 719 606 V 29 w(connection)d
+Fy(The)26 b(connections)e(with)i(a)e(w)n(eigh)n(t)h(and)g(t)n(w)n(o)f
+(p)r(oin)n(ters)g(to)h(the)h(t)n(w)n(o)538 706 y(connected)h(neurons.)
+455 888 y(Where)34 b(the)h(connection)f(la)n(y)n(ers)f(represen)n(t)g
+(all)i(the)g(connections)f(b)r(et)n(w)n(een)g(t)n(w)n(o)g(la)n(y)n(ers)
+330 988 y(and)i(the)g(neurons)f(themselv)n(es)g(are)g(only)h(basic)f
+Ft(fann)p 2128 988 V 30 w(type)p Fy('s.)60 b(The)36 b(main)g(adv)-5
+b(an)n(tage)34 b(of)330 1088 y(this)29 b(structure)e(is)h(that)h(one)f
+(simple)g(lo)r(op)g(can)g(run)g(through)f(all)h(the)h(connections)e(b)r
+(et)n(w)n(een)330 1187 y(t)n(w)n(o)20 b(la)n(y)n(ers.)33
+b(If)21 b(these)g(connections)g(are)f(allo)r(cated)g(in)h(one)g(long)f
+(arra)n(y)-7 b(,)20 b(the)i(arra)n(y)c(can)j(b)r(e)g(pro-)330
+1287 y(cessed)26 b(completely)g(sequen)n(tially)-7 b(.)36
+b(The)27 b(neurons)e(themselv)n(es)h(are)g(only)g(basic)g
+Ft(fann)p 3075 1287 V 30 w(type)p Fy('s)330 1386 y(and)g(since)g(there)
+g(are)f(far)h(less)g(neurons)f(than)i(there)f(are)f(connections)h(they)
+g(do)g(not)g(tak)n(e)g(up)330 1486 y(that)i(m)n(uc)n(h)f(space.)36
+b(This)28 b(arc)n(hitecture)e(is)i(sho)n(wn)f(on)g(\014gure)g(6.)p
+Black 480 3291 a @beginspecial 0 @llx 0 @lly 767 @urx
+480 @ury 3240 @rwi @setspecial
+%%BeginDocument: figs/connection_centered.fig.eps
+%!PS-Adobe-2.0 EPSF-2.0
+%%Title: figs/connection_centered.fig
+%%Creator: fig2dev Version 3.2 Patchlevel 4
+%%CreationDate: Fri Oct 31 01:02:48 2003
+%%For: lukesky at luke (Steffen Nissen,,,)
+%%BoundingBox: 0 0 767 480
+%%Magnification: 1.0000
+%%EndComments
+/$F2psDict 200 dict def
+$F2psDict begin
+$F2psDict /mtrx matrix put
+/col-1 {0 setgray} bind def
+/col0 {0.000 0.000 0.000 srgb} bind def
+/col1 {0.000 0.000 1.000 srgb} bind def
+/col2 {0.000 1.000 0.000 srgb} bind def
+/col3 {0.000 1.000 1.000 srgb} bind def
+/col4 {1.000 0.000 0.000 srgb} bind def
+/col5 {1.000 0.000 1.000 srgb} bind def
+/col6 {1.000 1.000 0.000 srgb} bind def
+/col7 {1.000 1.000 1.000 srgb} bind def
+/col8 {0.000 0.000 0.560 srgb} bind def
+/col9 {0.000 0.000 0.690 srgb} bind def
+/col10 {0.000 0.000 0.820 srgb} bind def
+/col11 {0.530 0.810 1.000 srgb} bind def
+/col12 {0.000 0.560 0.000 srgb} bind def
+/col13 {0.000 0.690 0.000 srgb} bind def
+/col14 {0.000 0.820 0.000 srgb} bind def
+/col15 {0.000 0.560 0.560 srgb} bind def
+/col16 {0.000 0.690 0.690 srgb} bind def
+/col17 {0.000 0.820 0.820 srgb} bind def
+/col18 {0.560 0.000 0.000 srgb} bind def
+/col19 {0.690 0.000 0.000 srgb} bind def
+/col20 {0.820 0.000 0.000 srgb} bind def
+/col21 {0.560 0.000 0.560 srgb} bind def
+/col22 {0.690 0.000 0.690 srgb} bind def
+/col23 {0.820 0.000 0.820 srgb} bind def
+/col24 {0.500 0.190 0.000 srgb} bind def
+/col25 {0.630 0.250 0.000 srgb} bind def
+/col26 {0.750 0.380 0.000 srgb} bind def
+/col27 {1.000 0.500 0.500 srgb} bind def
+/col28 {1.000 0.630 0.630 srgb} bind def
+/col29 {1.000 0.750 0.750 srgb} bind def
+/col30 {1.000 0.880 0.880 srgb} bind def
+/col31 {1.000 0.840 0.000 srgb} bind def
+
+end
+save
+newpath 0 480 moveto 0 0 lineto 767 0 lineto 767 480 lineto closepath clip newpath
+-13.4 596.0 translate
+1 -1 scale
+
+/cp {closepath} bind def
+/ef {eofill} bind def
+/gr {grestore} bind def
+/gs {gsave} bind def
+/sa {save} bind def
+/rs {restore} bind def
+/l {lineto} bind def
+/m {moveto} bind def
+/rm {rmoveto} bind def
+/n {newpath} bind def
+/s {stroke} bind def
+/sh {show} bind def
+/slc {setlinecap} bind def
+/slj {setlinejoin} bind def
+/slw {setlinewidth} bind def
+/srgb {setrgbcolor} bind def
+/rot {rotate} bind def
+/sc {scale} bind def
+/sd {setdash} bind def
+/ff {findfont} bind def
+/sf {setfont} bind def
+/scf {scalefont} bind def
+/sw {stringwidth} bind def
+/tr {translate} bind def
+/tnt {dup dup currentrgbcolor
+  4 -2 roll dup 1 exch sub 3 -1 roll mul add
+  4 -2 roll dup 1 exch sub 3 -1 roll mul add
+  4 -2 roll dup 1 exch sub 3 -1 roll mul add srgb}
+  bind def
+/shd {dup dup currentrgbcolor 4 -2 roll mul 4 -2 roll mul
+  4 -2 roll mul srgb} bind def
+ /DrawEllipse {
+	/endangle exch def
+	/startangle exch def
+	/yrad exch def
+	/xrad exch def
+	/y exch def
+	/x exch def
+	/savematrix mtrx currentmatrix def
+	x y tr xrad yrad sc 0 0 1 startangle endangle arc
+	closepath
+	savematrix setmatrix
+	} def
+
+/$F2psBegin {$F2psDict begin /$F2psEnteredState save def} def
+/$F2psEnd {$F2psEnteredState restore end} def
+
+$F2psBegin
+10 setmiterlimit
+0 slj 0 slc
+ 0.06299 0.06299 sc
+%
+% Fig objects follow
+%
+% 
+% here starts figure with depth 50
+% Ellipse
+7.500 slw
+n 10800 3600 45 45 0 360 DrawEllipse gs 0.00 setgray ef gr gs col0 s gr
+
+% Ellipse
+n 10800 3825 45 45 0 360 DrawEllipse gs 0.00 setgray ef gr gs col0 s gr
+
+% Ellipse
+n 10800 4050 45 45 0 360 DrawEllipse gs 0.00 setgray ef gr gs col0 s gr
+
+% Ellipse
+n 10800 5850 45 45 0 360 DrawEllipse gs 0.00 setgray ef gr gs col0 s gr
+
+% Ellipse
+n 10800 6075 45 45 0 360 DrawEllipse gs 0.00 setgray ef gr gs col0 s gr
+
+% Ellipse
+n 10800 7875 45 45 0 360 DrawEllipse gs 0.00 setgray ef gr gs col0 s gr
+
+% Ellipse
+n 10800 8100 45 45 0 360 DrawEllipse gs 0.00 setgray ef gr gs col0 s gr
+
+% Ellipse
+n 6300 5400 45 45 0 360 DrawEllipse gs 0.00 setgray ef gr gs col0 s gr
+
+% Ellipse
+n 6300 4275 45 45 0 360 DrawEllipse gs 0.00 setgray ef gr gs col0 s gr
+
+% Ellipse
+n 10800 7650 45 45 0 360 DrawEllipse gs 0.00 setgray ef gr gs col0 s gr
+
+% Ellipse
+n 10800 5625 45 45 0 360 DrawEllipse gs 0.00 setgray ef gr gs col0 s gr
+
+% Ellipse
+n 6300 4837 45 45 0 360 DrawEllipse gs 0.00 setgray ef gr gs col0 s gr
+
+% Polyline
+gs  clippath
+4740 2730 m 4740 2670 l 4588 2670 l 4708 2700 l 4588 2730 l cp
+eoclip
+n 3375 2700 m
+ 4725 2700 l gs col0 s gr gr
+
+% arrowhead
+n 4588 2730 m 4708 2700 l 4588 2670 l  col0 s
+% Polyline
+gs  clippath
+4701 6774 m 4758 6754 l 4707 6610 l 4719 6734 l 4650 6630 l cp
+eoclip
+n 3375 2925 m
+ 4725 6750 l gs col0 s gr gr
+
+% arrowhead
+n 4650 6630 m 4719 6734 l 4707 6610 l  col0 s
+% Polyline
+gs  clippath
+9240 2730 m 9240 2670 l 9088 2670 l 9208 2700 l 9088 2730 l cp
+eoclip
+n 7875 2700 m
+ 9225 2700 l gs 0.00 setgray ef gr gs col0 s gr gr
+
+% arrowhead
+n 9088 2730 m 9208 2700 l 9088 2670 l  col0 s
+% Polyline
+gs  clippath
+9209 4755 m 9258 4719 l 9167 4597 l 9215 4712 l 9119 4633 l cp
+eoclip
+n 7875 2925 m
+ 9225 4725 l gs 0.00 setgray ef gr gs col0 s gr gr
+
+% arrowhead
+n 9119 4633 m 9215 4712 l 9167 4597 l  col0 s
+% Polyline
+gs  clippath
+9240 6780 m 9240 6720 l 9088 6720 l 9208 6750 l 9088 6780 l cp
+eoclip
+n 7875 6750 m
+ 9225 6750 l gs 0.00 setgray ef gr gs col0 s gr gr
+
+% arrowhead
+n 9088 6780 m 9208 6750 l 9088 6720 l  col0 s
+% Polyline
+gs  clippath
+9209 8805 m 9258 8769 l 9167 8647 l 9215 8762 l 9119 8683 l cp
+eoclip
+n 7875 6975 m
+ 9225 8775 l gs 0.00 setgray ef gr gs col0 s gr gr
+
+% arrowhead
+n 9119 8683 m 9215 8762 l 9167 8647 l  col0 s
+% Polyline
+n 4725 6300 m 7875 6300 l 7875 7425 l 4725 7425 l
+ cp gs col0 s gr 
+% Polyline
+n 4725 2250 m 7875 2250 l 7875 3375 l 4725 3375 l
+ cp gs col0 s gr 
+% Polyline
+n 225 2250 m 3375 2250 l 3375 3375 l 225 3375 l
+ cp gs col0 s gr 
+% Polyline
+n 9225 2250 m 12375 2250 l 12375 3375 l 9225 3375 l
+ cp gs col0 s gr 
+% Polyline
+n 9225 4275 m 12375 4275 l 12375 5400 l 9225 5400 l
+ cp gs col0 s gr 
+% Polyline
+n 9225 6300 m 12375 6300 l 12375 7425 l 9225 7425 l
+ cp gs col0 s gr 
+% Polyline
+n 9225 8325 m 12375 8325 l 12375 9450 l 9225 9450 l
+ cp gs col0 s gr 
+/Helvetica-Bold ff 210.00 scf sf
+6300 3150 m
+gs 1 -1 sc (of connections) dup sw pop 2 div neg 0 rm  col0 sh gr
+/Helvetica-Bold ff 210.00 scf sf
+6300 2925 m
+gs 1 -1 sc (The first layer) dup sw pop 2 div neg 0 rm  col0 sh gr
+/Helvetica-Bold ff 210.00 scf sf
+10800 2925 m
+gs 1 -1 sc (The first connection) dup sw pop 2 div neg 0 rm  col0 sh gr
+/Helvetica-Bold ff 210.00 scf sf
+10800 3150 m
+gs 1 -1 sc (in the first layer) dup sw pop 2 div neg 0 rm  col0 sh gr
+/Helvetica-Bold ff 210.00 scf sf
+1800 2925 m
+gs 1 -1 sc (The entire ANN) dup sw pop 2 div neg 0 rm  col0 sh gr
+/Helvetica-Bold ff 240.00 scf sf
+1800 2025 m
+gs 1 -1 sc (Level 1) dup sw pop 2 div neg 0 rm  col0 sh gr
+/Helvetica-Bold ff 240.00 scf sf
+6300 2025 m
+gs 1 -1 sc (Level 2) dup sw pop 2 div neg 0 rm  col0 sh gr
+/Helvetica-Bold ff 240.00 scf sf
+10800 2025 m
+gs 1 -1 sc (Level 3) dup sw pop 2 div neg 0 rm  col0 sh gr
+/Helvetica-Bold ff 210.00 scf sf
+6300 7200 m
+gs 1 -1 sc (of connections) dup sw pop 2 div neg 0 rm  col0 sh gr
+/Helvetica-Bold ff 210.00 scf sf
+6300 6975 m
+gs 1 -1 sc (The last layer) dup sw pop 2 div neg 0 rm  col0 sh gr
+/Helvetica-Bold ff 210.00 scf sf
+10800 7200 m
+gs 1 -1 sc (in the last layer) dup sw pop 2 div neg 0 rm  col0 sh gr
+/Helvetica-Bold ff 210.00 scf sf
+10800 9000 m
+gs 1 -1 sc (The last connection) dup sw pop 2 div neg 0 rm  col0 sh gr
+/Helvetica-Bold ff 210.00 scf sf
+10800 9225 m
+gs 1 -1 sc (in the last layer) dup sw pop 2 div neg 0 rm  col0 sh gr
+/Helvetica-Bold ff 210.00 scf sf
+10800 4950 m
+gs 1 -1 sc (The last connection) dup sw pop 2 div neg 0 rm  col0 sh gr
+/Helvetica-Bold ff 210.00 scf sf
+10800 5175 m
+gs 1 -1 sc (in the first layer) dup sw pop 2 div neg 0 rm  col0 sh gr
+/Courier-Bold ff 225.00 scf sf
+6300 2475 m
+gs 1 -1 sc (fann_connection_layer) dup sw pop 2 div neg 0 rm  col0 sh gr
+/Courier-Bold ff 225.00 scf sf
+6300 6525 m
+gs 1 -1 sc (fann_connection_layer) dup sw pop 2 div neg 0 rm  col0 sh gr
+/Courier-Bold ff 225.00 scf sf
+1800 2475 m
+gs 1 -1 sc (fann) dup sw pop 2 div neg 0 rm  col0 sh gr
+/Courier-Bold ff 225.00 scf sf
+10800 2475 m
+gs 1 -1 sc (fann_connection) dup sw pop 2 div neg 0 rm  col0 sh gr
+/Courier-Bold ff 225.00 scf sf
+10800 4500 m
+gs 1 -1 sc (fann_connection) dup sw pop 2 div neg 0 rm  col0 sh gr
+/Courier-Bold ff 225.00 scf sf
+10800 6525 m
+gs 1 -1 sc (fann_connection) dup sw pop 2 div neg 0 rm  col0 sh gr
+/Courier-Bold ff 225.00 scf sf
+10800 8550 m
+gs 1 -1 sc (fann_connection) dup sw pop 2 div neg 0 rm  col0 sh gr
+/Helvetica-Bold ff 210.00 scf sf
+10800 6975 m
+gs 1 -1 sc (The first connection) dup sw pop 2 div neg 0 rm  col0 sh gr
+% here ends figure;
+$F2psEnd
+rs
+showpage
+
+%%EndDocument
+ @endspecial 330 3474 a(Figure)g(6:)38 b(The)28 b(three)g(lev)n(els)f
+(for)h(the)g(connection)g(cen)n(tered)g(arc)n(hitecture.)37
+b(A)n(t)28 b(lev)n(el)g(3,)g(the)330 3574 y Ft(fann)p
+511 3574 V 30 w(connection)e Fy(structures)k(consists)g(of)g(a)g(w)n
+(eigh)n(t)g(and)g(a)g(p)r(oin)n(ter)g(to)h(eac)n(h)f(of)g(the)h(t)n(w)n
+(o)330 3673 y(connected)c(neurons.)p Black 455 3857 a(This)e(w)n(as)g
+(the)i(\014rst)e(arc)n(hitecture)g(whic)n(h)h(I)g(implemen)n(ted,)h
+(but)f(after)g(testing)g(it)g(against)330 3956 y(Ligh)n(t)n(w)n(eigh)n
+(t)39 b(Neural)g(Net)n(w)n(ork)g(v)n(ersion)f(0.3)h([v)-5
+b(an)28 b(Rossum,)f(2003)n(],)43 b(I)e(noticed)e(that)i(this)330
+4056 y(library)26 b(w)n(as)h(more)g(than)g(t)n(wice)h(as)f(fast)g(as)g
+(mine.)455 4155 y(The)j(question)g(is)g(no)n(w,)g(wh)n(y)g(w)n(as)f
+(the)h(connection)g(cen)n(tered)g(arc)n(hitecture)e(not)j(as)e(fast)330
+4255 y(as)g(it)h(should)g(ha)n(v)n(e)e(b)r(een?)44 b(I)29
+b(think)i(the)f(main)f(reasons)f(w)n(as)h(that)h(the)g(connections,)f
+(whic)n(h)330 4355 y(is)f(the)h(most)f(represen)n(ted)g(structure)g(in)
+g(ANNs,)i(w)n(as)d(implemen)n(ted)i(b)n(y)f(a)g(struct)h(with)g(t)n(w)n
+(o)330 4454 y(p)r(oin)n(ters)34 b(and)g(a)g(w)n(eigh)n(t.)56
+b(This)35 b(to)r(ok)e(up)i(more)f(space)f(than)i(needed)f(whic)n(h)h
+(mean)n(t)f(p)r(o)r(or)330 4554 y(cac)n(he)24 b(p)r(erformance.)35
+b(It)26 b(also)e(mean)n(t)g(that)i(the)f(inner)g(lo)r(op)g(should)g
+(constan)n(tly)f(dereference)330 4654 y(p)r(oin)n(ters,)h(whic)n(h)f
+(the)h(compiler)f(had)g(no)g(idea)h(where)f(w)n(ould)g(end)g(up,)i
+(although)e(they)h(where)330 4753 y(actually)i(accessing)f(the)i
+(neurons)f(in)h(a)f(sequen)n(tial)g(order.)330 4969 y
+Fs(4.2.2)94 b(Neuron)31 b(Cen)m(tered)h(Arc)m(hitecture)330
+5122 y Fy(After)24 b(an)g(insp)r(ection)g(of)g(the)h(arc)n(hitecture)e
+(used)h(in)g(the)g(Ligh)n(t)n(w)n(eigh)n(t)f(Neural)g(Net)n(w)n(ork)g
+(and)330 5222 y(ev)-5 b(aluation)28 b(of)h(what)h(w)n(en)n(t)e(wrong)g
+(in)h(the)h(connection)f(cen)n(tered)f(arc)n(hitecture,)g(I)i(designed)
+330 5321 y(the)e(neuron)f(cen)n(tered)g(arc)n(hitecture,)f(where)h(the)
+h(three)g(lev)n(els)f(lo)r(oks)f(lik)n(e)i(this:)p Black
+431 5504 a(1.)p Black 42 w Ft(fann)e Fy(The)h(ANN)i(with)f(references)e
+(to)i(the)g(la)n(y)n(ers.)p Black 431 5620 a(2.)p Black
+42 w Ft(fann)p 719 5620 V 29 w(layer)e Fy(The)i(la)n(y)n(ers)d(with)j
+(references)f(to)g(the)h(neurons.)p Black 1788 5919 a(16)p
+Black eop end
+%%Page: 17 21
+TeXDict begin 17 20 bop Black 330 70 a Fp(4.2)82 b(Arc)n(hitectural)27
+b(Design)577 b(4)82 b(DESIGN)28 b(AND)h(IMPLEMENT)-7
+b(A)g(TION)p 330 103 3000 4 v Black Black 431 390 a Fy(3.)p
+Black 42 w Ft(fann)p 719 390 27 4 v 29 w(neuron)35 b
+Fy(The)i(neurons)f(with)h(references)f(to)h(the)g(connected)g(neurons)f
+(in)h(the)538 490 y(previous)26 b(la)n(y)n(er)g(and)h(the)h(w)n(eigh)n
+(ts)f(for)g(the)h(connections.)330 672 y(In)d(this)h(arc)n(hitecture)e
+(the)i Ft(fann)d Fy(structure)i(has)g(a)g(p)r(oin)n(ter)f(to)h(the)h
+(\014rst)f(la)n(y)n(er)f(and)h(a)f(p)r(oin)n(ter)330
+772 y(to)29 b(the)h(last)f(la)n(y)n(er)912 742 y Fu(4)947
+772 y Fy(.)42 b(F)-7 b(urthermore,)28 b(it)i(con)n(tains)e(all)h(the)h
+(parameters)d(of)j(the)f(net)n(w)n(ork,)f(lik)n(e)330
+872 y(learning)h(rate)f(etc.)44 b(The)29 b(individual)h(la)n(y)n(ers)e
+(consists)h(of)g(a)h(p)r(oin)n(ter)f(to)g(the)h(\014rst)g(neuron)f(in)
+330 971 y(the)h(la)n(y)n(er)e(and)h(a)g(p)r(oin)n(ter)g(to)g(the)h
+(last)f(neuron)g(in)g(the)h(la)n(y)n(er.)41 b(This)29
+b(arc)n(hitecture)g(is)g(sho)n(wn)330 1071 y(on)e(\014gure)g(7.)p
+Black 480 2876 a @beginspecial 0 @llx 0 @lly 767 @urx
+480 @ury 3240 @rwi @setspecial
+%%BeginDocument: figs/neuron_centered.fig.eps
+%!PS-Adobe-2.0 EPSF-2.0
+%%Title: figs/neuron_centered.fig
+%%Creator: fig2dev Version 3.2 Patchlevel 4
+%%CreationDate: Fri Oct 31 01:02:48 2003
+%%For: lukesky at luke (Steffen Nissen,,,)
+%%BoundingBox: 0 0 767 480
+%%Magnification: 1.0000
+%%EndComments
+/$F2psDict 200 dict def
+$F2psDict begin
+$F2psDict /mtrx matrix put
+/col-1 {0 setgray} bind def
+/col0 {0.000 0.000 0.000 srgb} bind def
+/col1 {0.000 0.000 1.000 srgb} bind def
+/col2 {0.000 1.000 0.000 srgb} bind def
+/col3 {0.000 1.000 1.000 srgb} bind def
+/col4 {1.000 0.000 0.000 srgb} bind def
+/col5 {1.000 0.000 1.000 srgb} bind def
+/col6 {1.000 1.000 0.000 srgb} bind def
+/col7 {1.000 1.000 1.000 srgb} bind def
+/col8 {0.000 0.000 0.560 srgb} bind def
+/col9 {0.000 0.000 0.690 srgb} bind def
+/col10 {0.000 0.000 0.820 srgb} bind def
+/col11 {0.530 0.810 1.000 srgb} bind def
+/col12 {0.000 0.560 0.000 srgb} bind def
+/col13 {0.000 0.690 0.000 srgb} bind def
+/col14 {0.000 0.820 0.000 srgb} bind def
+/col15 {0.000 0.560 0.560 srgb} bind def
+/col16 {0.000 0.690 0.690 srgb} bind def
+/col17 {0.000 0.820 0.820 srgb} bind def
+/col18 {0.560 0.000 0.000 srgb} bind def
+/col19 {0.690 0.000 0.000 srgb} bind def
+/col20 {0.820 0.000 0.000 srgb} bind def
+/col21 {0.560 0.000 0.560 srgb} bind def
+/col22 {0.690 0.000 0.690 srgb} bind def
+/col23 {0.820 0.000 0.820 srgb} bind def
+/col24 {0.500 0.190 0.000 srgb} bind def
+/col25 {0.630 0.250 0.000 srgb} bind def
+/col26 {0.750 0.380 0.000 srgb} bind def
+/col27 {1.000 0.500 0.500 srgb} bind def
+/col28 {1.000 0.630 0.630 srgb} bind def
+/col29 {1.000 0.750 0.750 srgb} bind def
+/col30 {1.000 0.880 0.880 srgb} bind def
+/col31 {1.000 0.840 0.000 srgb} bind def
+
+end
+save
+newpath 0 480 moveto 0 0 lineto 767 0 lineto 767 480 lineto closepath clip newpath
+-13.4 596.0 translate
+1 -1 scale
+
+/cp {closepath} bind def
+/ef {eofill} bind def
+/gr {grestore} bind def
+/gs {gsave} bind def
+/sa {save} bind def
+/rs {restore} bind def
+/l {lineto} bind def
+/m {moveto} bind def
+/rm {rmoveto} bind def
+/n {newpath} bind def
+/s {stroke} bind def
+/sh {show} bind def
+/slc {setlinecap} bind def
+/slj {setlinejoin} bind def
+/slw {setlinewidth} bind def
+/srgb {setrgbcolor} bind def
+/rot {rotate} bind def
+/sc {scale} bind def
+/sd {setdash} bind def
+/ff {findfont} bind def
+/sf {setfont} bind def
+/scf {scalefont} bind def
+/sw {stringwidth} bind def
+/tr {translate} bind def
+/tnt {dup dup currentrgbcolor
+  4 -2 roll dup 1 exch sub 3 -1 roll mul add
+  4 -2 roll dup 1 exch sub 3 -1 roll mul add
+  4 -2 roll dup 1 exch sub 3 -1 roll mul add srgb}
+  bind def
+/shd {dup dup currentrgbcolor 4 -2 roll mul 4 -2 roll mul
+  4 -2 roll mul srgb} bind def
+ /DrawEllipse {
+	/endangle exch def
+	/startangle exch def
+	/yrad exch def
+	/xrad exch def
+	/y exch def
+	/x exch def
+	/savematrix mtrx currentmatrix def
+	x y tr xrad yrad sc 0 0 1 startangle endangle arc
+	closepath
+	savematrix setmatrix
+	} def
+
+/$F2psBegin {$F2psDict begin /$F2psEnteredState save def} def
+/$F2psEnd {$F2psEnteredState restore end} def
+
+$F2psBegin
+10 setmiterlimit
+0 slj 0 slc
+ 0.06299 0.06299 sc
+%
+% Fig objects follow
+%
+% 
+% here starts figure with depth 50
+% Ellipse
+7.500 slw
+n 10800 3600 45 45 0 360 DrawEllipse gs 0.00 setgray ef gr gs col0 s gr
+
+% Ellipse
+n 10800 3825 45 45 0 360 DrawEllipse gs 0.00 setgray ef gr gs col0 s gr
+
+% Ellipse
+n 10800 4050 45 45 0 360 DrawEllipse gs 0.00 setgray ef gr gs col0 s gr
+
+% Ellipse
+n 10800 5850 45 45 0 360 DrawEllipse gs 0.00 setgray ef gr gs col0 s gr
+
+% Ellipse
+n 10800 6075 45 45 0 360 DrawEllipse gs 0.00 setgray ef gr gs col0 s gr
+
+% Ellipse
+n 10800 7875 45 45 0 360 DrawEllipse gs 0.00 setgray ef gr gs col0 s gr
+
+% Ellipse
+n 10800 8100 45 45 0 360 DrawEllipse gs 0.00 setgray ef gr gs col0 s gr
+
+% Ellipse
+n 6300 5400 45 45 0 360 DrawEllipse gs 0.00 setgray ef gr gs col0 s gr
+
+% Ellipse
+n 6300 4275 45 45 0 360 DrawEllipse gs 0.00 setgray ef gr gs col0 s gr
+
+% Ellipse
+n 10800 7650 45 45 0 360 DrawEllipse gs 0.00 setgray ef gr gs col0 s gr
+
+% Ellipse
+n 10800 5625 45 45 0 360 DrawEllipse gs 0.00 setgray ef gr gs col0 s gr
+
+% Ellipse
+n 6300 4837 45 45 0 360 DrawEllipse gs 0.00 setgray ef gr gs col0 s gr
+
+% Polyline
+gs  clippath
+4740 2730 m 4740 2670 l 4588 2670 l 4708 2700 l 4588 2730 l cp
+eoclip
+n 3375 2700 m
+ 4725 2700 l gs col0 s gr gr
+
+% arrowhead
+n 4588 2730 m 4708 2700 l 4588 2670 l  col0 s
+% Polyline
+gs  clippath
+4701 6774 m 4758 6754 l 4707 6610 l 4719 6734 l 4650 6630 l cp
+eoclip
+n 3375 2925 m
+ 4725 6750 l gs col0 s gr gr
+
+% arrowhead
+n 4650 6630 m 4719 6734 l 4707 6610 l  col0 s
+% Polyline
+gs  clippath
+9240 2730 m 9240 2670 l 9088 2670 l 9208 2700 l 9088 2730 l cp
+eoclip
+n 7875 2700 m
+ 9225 2700 l gs 0.00 setgray ef gr gs col0 s gr gr
+
+% arrowhead
+n 9088 2730 m 9208 2700 l 9088 2670 l  col0 s
+% Polyline
+gs  clippath
+9209 4755 m 9258 4719 l 9167 4597 l 9215 4712 l 9119 4633 l cp
+eoclip
+n 7875 2925 m
+ 9225 4725 l gs 0.00 setgray ef gr gs col0 s gr gr
+
+% arrowhead
+n 9119 4633 m 9215 4712 l 9167 4597 l  col0 s
+% Polyline
+gs  clippath
+9240 6780 m 9240 6720 l 9088 6720 l 9208 6750 l 9088 6780 l cp
+eoclip
+n 7875 6750 m
+ 9225 6750 l gs 0.00 setgray ef gr gs col0 s gr gr
+
+% arrowhead
+n 9088 6780 m 9208 6750 l 9088 6720 l  col0 s
+% Polyline
+gs  clippath
+9209 8805 m 9258 8769 l 9167 8647 l 9215 8762 l 9119 8683 l cp
+eoclip
+n 7875 6975 m
+ 9225 8775 l gs 0.00 setgray ef gr gs col0 s gr gr
+
+% arrowhead
+n 9119 8683 m 9215 8762 l 9167 8647 l  col0 s
+% Polyline
+n 4725 6300 m 7875 6300 l 7875 7425 l 4725 7425 l
+ cp gs col0 s gr 
+% Polyline
+n 4725 2250 m 7875 2250 l 7875 3375 l 4725 3375 l
+ cp gs col0 s gr 
+% Polyline
+n 225 2250 m 3375 2250 l 3375 3375 l 225 3375 l
+ cp gs col0 s gr 
+% Polyline
+n 9225 2250 m 12375 2250 l 12375 3375 l 9225 3375 l
+ cp gs col0 s gr 
+% Polyline
+n 9225 4275 m 12375 4275 l 12375 5400 l 9225 5400 l
+ cp gs col0 s gr 
+% Polyline
+n 9225 6300 m 12375 6300 l 12375 7425 l 9225 7425 l
+ cp gs col0 s gr 
+% Polyline
+n 9225 8325 m 12375 8325 l 12375 9450 l 9225 9450 l
+ cp gs col0 s gr 
+/Helvetica-Bold ff 210.00 scf sf
+6300 2925 m
+gs 1 -1 sc (The first layer) dup sw pop 2 div neg 0 rm  col0 sh gr
+/Helvetica-Bold ff 210.00 scf sf
+10800 3150 m
+gs 1 -1 sc (in the first layer) dup sw pop 2 div neg 0 rm  col0 sh gr
+/Helvetica-Bold ff 210.00 scf sf
+1800 2925 m
+gs 1 -1 sc (The entire ANN) dup sw pop 2 div neg 0 rm  col0 sh gr
+/Helvetica-Bold ff 240.00 scf sf
+1800 2025 m
+gs 1 -1 sc (Level 1) dup sw pop 2 div neg 0 rm  col0 sh gr
+/Helvetica-Bold ff 240.00 scf sf
+6300 2025 m
+gs 1 -1 sc (Level 2) dup sw pop 2 div neg 0 rm  col0 sh gr
+/Helvetica-Bold ff 240.00 scf sf
+10800 2025 m
+gs 1 -1 sc (Level 3) dup sw pop 2 div neg 0 rm  col0 sh gr
+/Helvetica-Bold ff 210.00 scf sf
+6300 6975 m
+gs 1 -1 sc (The last layer) dup sw pop 2 div neg 0 rm  col0 sh gr
+/Helvetica-Bold ff 210.00 scf sf
+10800 7200 m
+gs 1 -1 sc (in the last layer) dup sw pop 2 div neg 0 rm  col0 sh gr
+/Helvetica-Bold ff 210.00 scf sf
+10800 9225 m
+gs 1 -1 sc (in the last layer) dup sw pop 2 div neg 0 rm  col0 sh gr
+/Helvetica-Bold ff 210.00 scf sf
+10800 5175 m
+gs 1 -1 sc (in the first layer) dup sw pop 2 div neg 0 rm  col0 sh gr
+/Courier-Bold ff 225.00 scf sf
+6300 6525 m
+gs 1 -1 sc (fann_layer) dup sw pop 2 div neg 0 rm  col0 sh gr
+/Courier-Bold ff 225.00 scf sf
+1800 2475 m
+gs 1 -1 sc (fann) dup sw pop 2 div neg 0 rm  col0 sh gr
+/Courier-Bold ff 225.00 scf sf
+6300 2475 m
+gs 1 -1 sc (fann_layer) dup sw pop 2 div neg 0 rm  col0 sh gr
+/Courier-Bold ff 225.00 scf sf
+10800 2475 m
+gs 1 -1 sc (fann_neuron) dup sw pop 2 div neg 0 rm  col0 sh gr
+/Courier-Bold ff 225.00 scf sf
+10800 4500 m
+gs 1 -1 sc (fann_neuron) dup sw pop 2 div neg 0 rm  col0 sh gr
+/Courier-Bold ff 225.00 scf sf
+10800 6525 m
+gs 1 -1 sc (fann_neuron) dup sw pop 2 div neg 0 rm  col0 sh gr
+/Courier-Bold ff 225.00 scf sf
+10800 8550 m
+gs 1 -1 sc (fann_neuron) dup sw pop 2 div neg 0 rm  col0 sh gr
+/Helvetica-Bold ff 210.00 scf sf
+10800 2925 m
+gs 1 -1 sc (The first neuron) dup sw pop 2 div neg 0 rm  col0 sh gr
+/Helvetica-Bold ff 210.00 scf sf
+10800 6975 m
+gs 1 -1 sc (The first neuron) dup sw pop 2 div neg 0 rm  col0 sh gr
+/Helvetica-Bold ff 210.00 scf sf
+10800 4950 m
+gs 1 -1 sc (The last neuron) dup sw pop 2 div neg 0 rm  col0 sh gr
+/Helvetica-Bold ff 210.00 scf sf
+10800 9000 m
+gs 1 -1 sc (The last neuron) dup sw pop 2 div neg 0 rm  col0 sh gr
+% here ends figure;
+$F2psEnd
+rs
+showpage
+
+%%EndDocument
+ @endspecial 330 3059 a(Figure)36 b(7:)54 b(The)37 b(three)g(lev)n(els)
+e(for)h(the)h(neuron)f(cen)n(tered)g(arc)n(hitecture.)63
+b(A)n(t)37 b(lev)n(el)f(3,)j(the)330 3159 y Ft(fann)p
+511 3159 V 30 w(neuron)17 b Fy(structures)i(consists)g(of)h(a)f(neuron)
+g(v)-5 b(alue,)21 b(a)f(v)-5 b(alue)19 b(for)h(the)g(n)n(um)n(b)r(er)f
+(of)h(neurons)330 3258 y(from)h(the)h(previous)f(la)n(y)n(er,)g
+(connected)g(to)h(the)g(neuron)f(and)g(t)n(w)n(o)g(p)r(oin)n(ters.)34
+b(The)22 b(\014rst)f(p)r(oin)n(ter)330 3358 y(p)r(oin)n(ts)g(at)g(the)h
+(\014rst)f(w)n(eigh)n(t)g(for)g(the)g(incoming)g(connections)g(and)g
+(the)h(second)e(p)r(oin)n(ter)h(p)r(oin)n(ts)330 3458
+y(to)27 b(the)h(\014rst)g(incoming)f(connection)g(\(see)h(\014gure)e
+(8\).)p Black 455 3661 a(Figure)33 b(8)i(illustrates)f(ho)n(w)f(the)i
+(arc)n(hitecture)f(is)g(connected)h(at)f(the)h(third)g(lev)n(el.)57
+b(The)330 3761 y(neurons,)40 b(the)f(w)n(eigh)n(ts)e(and)h(the)h
+(connections)e(are)g(allo)r(cated)h(in)g(three)g(long)g(arra)n(ys.)66
+b(A)330 3861 y(single)23 b(neuron)g Fm(N)32 b Fy(consists)23
+b(of)g(a)g(neuron)g(v)-5 b(alue,)24 b(t)n(w)n(o)f(p)r(oin)n(ters)g(and)
+g(a)g(v)-5 b(alue)24 b(for)e(the)i(n)n(um)n(b)r(er)330
+3960 y(of)34 b(neurons)f(connected)h(to)h Fm(N)43 b Fy(in)34
+b(the)h(previous)e(la)n(y)n(er.)55 b(The)34 b(\014rst)g(p)r(oin)n(ter)g
+(p)r(oin)n(ts)g(at)g(the)330 4060 y(p)r(osition)22 b(in)g(the)g(w)n
+(eigh)n(t)f(arra)n(y)-7 b(,)21 b(whic)n(h)h(con)n(tain)f(the)i(\014rst)
+e(w)n(eigh)n(t)h(for)f(the)h(connections)f(to)h Fm(N)9
+b Fy(.)330 4160 y(Lik)n(ewise)31 b(the)h(second)g(p)r(oin)n(ter)f(p)r
+(oin)n(ts)h(to)g(the)g(\014rst)g(connection)f(to)h Fm(N)41
+b Fy(in)32 b(the)h(connection)330 4259 y(arra)n(y)-7
+b(.)34 b(A)28 b(connection)e(is)h(simply)g(a)f(p)r(oin)n(ter)g(to)h(a)g
+(neuron,)f(in)h(the)g(previous)f(la)n(y)n(er,)f(whic)n(h)i(is)330
+4359 y(connected)g(to)h Fm(N)9 b Fy(.)455 4458 y(This)27
+b(arc)n(hitecture)f(is)h(more)g(cac)n(he)f(friendly)-7
+b(,)28 b(than)f(the)h(connection)f(cen)n(tered)f(arc)n(hitec-)330
+4558 y(ture.)59 b(When)36 b(calculating)e(the)i(input)g(to)f(a)f
+(neuron,)j(the)e(w)n(eigh)n(ts,)h(the)g(connections)e(and)330
+4658 y(the)e(input)h(neurons)e(are)f(all)i(pro)r(cessed)f(sequen)n
+(tially)-7 b(.)48 b(The)32 b(v)-5 b(alue)32 b(of)g(the)g(neuron)f
+(itself)h(is)330 4757 y(allo)r(cated)37 b(in)h(a)f(lo)r(cal)g(v)-5
+b(ariable,)39 b(whic)n(h)e(mak)n(es)f(for)h(m)n(uc)n(h)h(faster)f
+(access.)65 b(F)-7 b(urthermore,)330 4857 y(the)26 b(w)n(eigh)n(ts)f
+(and)g(the)h(connections)f(are)g(all)g(pro)r(cessed)f(completely)i
+(sequen)n(tially)-7 b(,)25 b(through-)330 4957 y(out)35
+b(the)h(whole)f(algorithm.)58 b(When)36 b(the)g(ANN)g(is)f(fully)g
+(connected,)j(the)d(arra)n(y)e(with)j(the)330 5056 y(connected)27
+b(neurons)g(is)h(obsolete)e(and)i(the)g(algorithms)e(can)h(use)h(this)g
+(to)f(increase)f(sp)r(eed.)p Black 330 5125 1200 4 v
+422 5179 a Fr(4)457 5203 y Fq(Actually)i(this)g(is)f(a)h(past)h(the)g
+(end)f(p)r(oin)n(ter,)h(whic)n(h)f(p)r(oin)n(ts)h(to)f(the)h(la)n(y)n
+(er)f(one)g(p)r(osition)h(past)f(the)h(last)330 5281
+y(la)n(y)n(er.)i(But)24 b(it)g(is)f(easier)g(to)h(think)h(of)e(it)h(as)
+f(a)h(p)r(oin)n(ter)g(to)g(the)h(last)f(la)n(y)n(er.)p
+Black Black 1788 5919 a Fy(17)p Black eop end
+%%Page: 18 22
+TeXDict begin 18 21 bop Black 330 70 a Fp(4.3)82 b(Algorithmic)27
+b(Design)626 b(4)82 b(DESIGN)28 b(AND)h(IMPLEMENT)-7
+b(A)g(TION)p 330 103 3000 4 v Black Black 330 1193 a
+ at beginspecial 0 @llx 0 @lly 870 @urx 257 @ury 3600 @rwi
+ at setspecial
+%%BeginDocument: figs/architecture.fig.eps
+%!PS-Adobe-2.0 EPSF-2.0
+%%Title: figs/architecture.fig
+%%Creator: fig2dev Version 3.2 Patchlevel 4
+%%CreationDate: Fri Oct 31 01:02:48 2003
+%%For: lukesky at luke (Steffen Nissen,,,)
+%%BoundingBox: 0 0 870 257
+%%Magnification: 1.0000
+%%EndComments
+/$F2psDict 200 dict def
+$F2psDict begin
+$F2psDict /mtrx matrix put
+/col-1 {0 setgray} bind def
+/col0 {0.000 0.000 0.000 srgb} bind def
+/col1 {0.000 0.000 1.000 srgb} bind def
+/col2 {0.000 1.000 0.000 srgb} bind def
+/col3 {0.000 1.000 1.000 srgb} bind def
+/col4 {1.000 0.000 0.000 srgb} bind def
+/col5 {1.000 0.000 1.000 srgb} bind def
+/col6 {1.000 1.000 0.000 srgb} bind def
+/col7 {1.000 1.000 1.000 srgb} bind def
+/col8 {0.000 0.000 0.560 srgb} bind def
+/col9 {0.000 0.000 0.690 srgb} bind def
+/col10 {0.000 0.000 0.820 srgb} bind def
+/col11 {0.530 0.810 1.000 srgb} bind def
+/col12 {0.000 0.560 0.000 srgb} bind def
+/col13 {0.000 0.690 0.000 srgb} bind def
+/col14 {0.000 0.820 0.000 srgb} bind def
+/col15 {0.000 0.560 0.560 srgb} bind def
+/col16 {0.000 0.690 0.690 srgb} bind def
+/col17 {0.000 0.820 0.820 srgb} bind def
+/col18 {0.560 0.000 0.000 srgb} bind def
+/col19 {0.690 0.000 0.000 srgb} bind def
+/col20 {0.820 0.000 0.000 srgb} bind def
+/col21 {0.560 0.000 0.560 srgb} bind def
+/col22 {0.690 0.000 0.690 srgb} bind def
+/col23 {0.820 0.000 0.820 srgb} bind def
+/col24 {0.500 0.190 0.000 srgb} bind def
+/col25 {0.630 0.250 0.000 srgb} bind def
+/col26 {0.750 0.380 0.000 srgb} bind def
+/col27 {1.000 0.500 0.500 srgb} bind def
+/col28 {1.000 0.630 0.630 srgb} bind def
+/col29 {1.000 0.750 0.750 srgb} bind def
+/col30 {1.000 0.880 0.880 srgb} bind def
+/col31 {1.000 0.840 0.000 srgb} bind def
+
+end
+save
+newpath 0 257 moveto 0 0 lineto 870 0 lineto 870 257 lineto closepath clip newpath
+-110.3 566.9 translate
+1 -1 scale
+
+/cp {closepath} bind def
+/ef {eofill} bind def
+/gr {grestore} bind def
+/gs {gsave} bind def
+/sa {save} bind def
+/rs {restore} bind def
+/l {lineto} bind def
+/m {moveto} bind def
+/rm {rmoveto} bind def
+/n {newpath} bind def
+/s {stroke} bind def
+/sh {show} bind def
+/slc {setlinecap} bind def
+/slj {setlinejoin} bind def
+/slw {setlinewidth} bind def
+/srgb {setrgbcolor} bind def
+/rot {rotate} bind def
+/sc {scale} bind def
+/sd {setdash} bind def
+/ff {findfont} bind def
+/sf {setfont} bind def
+/scf {scalefont} bind def
+/sw {stringwidth} bind def
+/tr {translate} bind def
+/tnt {dup dup currentrgbcolor
+  4 -2 roll dup 1 exch sub 3 -1 roll mul add
+  4 -2 roll dup 1 exch sub 3 -1 roll mul add
+  4 -2 roll dup 1 exch sub 3 -1 roll mul add srgb}
+  bind def
+/shd {dup dup currentrgbcolor 4 -2 roll mul 4 -2 roll mul
+  4 -2 roll mul srgb} bind def
+ /DrawEllipse {
+	/endangle exch def
+	/startangle exch def
+	/yrad exch def
+	/xrad exch def
+	/y exch def
+	/x exch def
+	/savematrix mtrx currentmatrix def
+	x y tr xrad yrad sc 0 0 1 startangle endangle arc
+	closepath
+	savematrix setmatrix
+	} def
+
+/$F2psBegin {$F2psDict begin /$F2psEnteredState save def} def
+/$F2psEnd {$F2psEnteredState restore end} def
+
+$F2psBegin
+10 setmiterlimit
+0 slj 0 slc
+ 0.06299 0.06299 sc
+%
+% Fig objects follow
+%
+% 
+% here starts figure with depth 50
+% Arc
+7.500 slw
+gs  clippath
+3794 5386 m 3833 5432 l 3948 5333 l 3838 5389 l 3909 5288 l cp
+eoclip
+n 5000.0 6675.0 1733.9 -132.7 -28.4 arc
+gs col0 s gr
+ gr
+
+% arrowhead
+n 3909 5288 m 3838 5389 l 3948 5333 l  col0 s
+% Arc
+gs  clippath
+4021 7407 m 4053 7458 l 4181 7376 l 4064 7416 l 4148 7326 l cp
+eoclip
+n 6300.0 10800.0 4056.2 -86.8 -123.7 arcn
+gs col0 s gr
+ gr
+
+% arrowhead
+n 4148 7326 m 4064 7416 l 4181 7376 l  col0 s
+% Arc
+gs  clippath
+7845 5834 m 7880 5883 l 8004 5795 l 7889 5840 l 7969 5746 l cp
+eoclip
+n 9225.0 7650.0 2250.0 -53.1 -126.9 arcn
+gs col0 s gr
+ gr
+
+% arrowhead
+n 7969 5746 m 7889 5840 l 8004 5795 l  col0 s
+% Ellipse
+n 2475 6525 225 225 0 360 DrawEllipse gs col1 s gr
+
+% Ellipse
+n 2475 7425 225 225 0 360 DrawEllipse gs col1 s gr
+
+% Ellipse
+n 6525 7875 225 225 0 360 DrawEllipse gs col1 s gr
+
+% Ellipse
+n 6525 6975 225 225 0 360 DrawEllipse gs col1 s gr
+
+% Ellipse
+n 6525 6075 225 225 0 360 DrawEllipse gs col1 s gr
+
+% Ellipse
+n 10575 6075 225 225 0 360 DrawEllipse gs col1 s gr
+
+% Ellipse
+n 10575 6975 225 225 0 360 DrawEllipse gs col1 s gr
+
+% Ellipse
+n 11700 5175 225 225 0 360 DrawEllipse gs col1 s gr
+
+% Polyline
+gs  clippath
+2668 6514 m 2710 6556 l 2818 6449 l 2712 6513 l 2775 6406 l cp
+eoclip
+n 3600 5625 m
+ 2700 6525 l gs col0 s gr gr
+
+% arrowhead
+n 2775 6406 m 2712 6513 l 2818 6449 l  col0 s
+% Polyline
+gs  clippath
+2668 7414 m 2710 7456 l 2818 7349 l 2712 7413 l 2775 7306 l cp
+eoclip
+n 3600 6525 m
+ 2700 7425 l gs col0 s gr gr
+
+% arrowhead
+n 2775 7306 m 2712 7413 l 2818 7349 l  col0 s
+% Polyline
+gs  clippath
+2710 6493 m 2668 6535 l 2775 6643 l 2712 6537 l 2818 6600 l cp
+eoclip
+n 3600 7425 m
+ 2700 6525 l gs col0 s gr gr
+
+% arrowhead
+n 2818 6600 m 2712 6537 l 2775 6643 l  col0 s
+% Polyline
+gs  clippath
+2710 7393 m 2668 7435 l 2775 7543 l 2712 7437 l 2818 7500 l cp
+eoclip
+n 3600 8325 m
+ 2700 7425 l gs col0 s gr gr
+
+% arrowhead
+n 2818 7500 m 2712 7437 l 2775 7543 l  col0 s
+% Polyline
+gs  clippath
+5400 5591 m 5373 5645 l 5508 5712 l 5415 5632 l 5535 5658 l cp
+eoclip
+n 6300 6075 m
+ 5400 5625 l gs col0 s gr gr
+
+% arrowhead
+n 5535 5658 m 5415 5632 l 5508 5712 l  col0 s
+% Polyline
+gs  clippath
+5373 7404 m 5400 7458 l 5535 7391 l 5415 7418 l 5508 7337 l cp
+eoclip
+n 6300 6975 m
+ 5400 7425 l gs col0 s gr gr
+
+% arrowhead
+n 5508 7337 m 5415 7418 l 5535 7391 l  col0 s
+% Polyline
+gs  clippath
+6735 6045 m 6735 6105 l 6887 6105 l 6767 6075 l 6887 6045 l cp
+eoclip
+n 7650 6075 m
+ 6750 6075 l gs col0 s gr gr
+
+% arrowhead
+n 6887 6045 m 6767 6075 l 6887 6105 l  col0 s
+% Polyline
+gs  clippath
+6735 6945 m 6735 7005 l 6887 7005 l 6767 6975 l 6887 6945 l cp
+eoclip
+n 7650 6975 m
+ 6750 6975 l gs col0 s gr gr
+
+% arrowhead
+n 6887 6945 m 6767 6975 l 6887 7005 l  col0 s
+% Polyline
+gs  clippath
+6735 7845 m 6735 7905 l 6887 7905 l 6767 7875 l 6887 7845 l cp
+eoclip
+n 7650 7875 m
+ 6750 7875 l gs col0 s gr gr
+
+% arrowhead
+n 6887 7845 m 6767 7875 l 6887 7905 l  col0 s
+% Polyline
+gs  clippath
+9435 6045 m 9435 6105 l 9587 6105 l 9467 6075 l 9587 6045 l cp
+eoclip
+n 10350 6075 m
+ 9450 6075 l gs col0 s gr gr
+
+% arrowhead
+n 9587 6045 m 9467 6075 l 9587 6105 l  col0 s
+% Polyline
+gs  clippath
+11940 7680 m 11940 7620 l 11788 7620 l 11908 7650 l 11788 7680 l cp
+eoclip
+n 11475 7650 m
+ 11925 7650 l gs col0 s gr gr
+
+% arrowhead
+n 11788 7680 m 11908 7650 l 11788 7620 l  col0 s
+% Polyline
+ [15 45] 45 sd
+n 2025 6075 m 2925 6075 l 2925 7875 l 2025 7875 l
+ cp gs col1 s gr  [] 0 sd
+% Polyline
+ [15 45] 45 sd
+n 6075 5625 m 6975 5625 l 6975 8325 l 6075 8325 l
+ cp gs col1 s gr  [] 0 sd
+% Polyline
+ [15 45] 45 sd
+n 10125 5625 m 11025 5625 l 11025 7425 l 10125 7425 l
+ cp gs col1 s gr  [] 0 sd
+% Polyline
+ [15 45] 45 sd
+n 3375 5175 m 4275 5175 l 4275 6975 l 3375 6975 l
+ cp gs col4 s gr  [] 0 sd
+% Polyline
+ [15 45] 45 sd
+n 3375 6975 m 4275 6975 l 4275 8775 l 3375 8775 l
+ cp gs col4 s gr  [] 0 sd
+% Polyline
+ [15 45] 45 sd
+n 7425 5625 m 8325 5625 l 8325 8325 l 7425 8325 l
+ cp gs col4 s gr  [] 0 sd
+% Polyline
+n 9000 5850 m 9450 5850 l 9450 6300 l 9000 6300 l
+ cp gs col2 s gr 
+% Polyline
+n 9000 6750 m 9450 6750 l 9450 7200 l 9000 7200 l
+ cp gs col2 s gr 
+% Polyline
+n 9000 7650 m 9450 7650 l 9450 8100 l 9000 8100 l
+ cp gs col2 s gr 
+% Polyline
+n 4950 8100 m 5400 8100 l 5400 8550 l 4950 8550 l
+ cp gs col2 s gr 
+% Polyline
+n 4950 7200 m 5400 7200 l 5400 7650 l 4950 7650 l
+ cp gs col2 s gr 
+% Polyline
+n 4950 6300 m 5400 6300 l 5400 6750 l 4950 6750 l
+ cp gs col2 s gr 
+% Polyline
+n 4950 5400 m 5400 5400 l 5400 5850 l 4950 5850 l
+ cp gs col2 s gr 
+% Polyline
+n 11475 5850 m 11925 5850 l 11925 6300 l 11475 6300 l
+ cp gs col2 s gr 
+% Polyline
+ [15 45] 45 sd
+n 4725 5175 m 5625 5175 l 5625 6975 l 4725 6975 l
+ cp gs col2 s gr  [] 0 sd
+% Polyline
+ [15 45] 45 sd
+n 4725 6975 m 5625 6975 l 5625 8775 l 4725 8775 l
+ cp gs col2 s gr  [] 0 sd
+% Polyline
+ [15 45] 45 sd
+n 8775 5625 m 9675 5625 l 9675 8325 l 8775 8325 l
+ cp gs col2 s gr  [] 0 sd
+% Polyline
+n 7875 5850 m 7650 6075 l 7875 6300 l 8100 6075 l
+ 7875 5850 l  cp gs col4 s gr 
+% Polyline
+n 7875 6750 m 7650 6975 l 7875 7200 l 8100 6975 l
+ 7875 6750 l  cp gs col4 s gr 
+% Polyline
+n 7875 7650 m 7650 7875 l 7875 8100 l 8100 7875 l
+ 7875 7650 l  cp gs col4 s gr 
+% Polyline
+n 11700 6750 m 11475 6975 l 11700 7200 l 11925 6975 l
+ 11700 6750 l  cp gs col4 s gr 
+% Polyline
+n 3825 6300 m 3600 6525 l 3825 6750 l 4050 6525 l
+ 3825 6300 l  cp gs col4 s gr 
+% Polyline
+n 3825 5400 m 3600 5625 l 3825 5850 l 4050 5625 l
+ 3825 5400 l  cp gs col4 s gr 
+% Polyline
+n 3825 7200 m 3600 7425 l 3825 7650 l 4050 7425 l
+ 3825 7200 l  cp gs col4 s gr 
+% Polyline
+n 3825 8100 m 3600 8325 l 3825 8550 l 4050 8325 l
+ 3825 8100 l  cp gs col4 s gr 
+/Helvetica-Bold ff 210.00 scf sf
+2475 8775 m
+gs 1 -1 sc (Input layer) dup sw pop 2 div neg 0 rm  col0 sh gr
+/Helvetica-Bold ff 210.00 scf sf
+2475 9000 m
+gs 1 -1 sc (with 1 neuron) dup sw pop 2 div neg 0 rm  col0 sh gr
+/Helvetica-Bold ff 210.00 scf sf
+6525 8775 m
+gs 1 -1 sc (Hidden layer) dup sw pop 2 div neg 0 rm  col0 sh gr
+/Helvetica-Bold ff 210.00 scf sf
+6525 9000 m
+gs 1 -1 sc (with 2 neurons) dup sw pop 2 div neg 0 rm  col0 sh gr
+/Helvetica-Bold ff 210.00 scf sf
+10575 8775 m
+gs 1 -1 sc (Output layer) dup sw pop 2 div neg 0 rm  col0 sh gr
+/Helvetica-Bold ff 210.00 scf sf
+10575 9000 m
+gs 1 -1 sc (with 1 neuron) dup sw pop 2 div neg 0 rm  col0 sh gr
+/Helvetica-Bold ff 210.00 scf sf
+12150 8160 m
+gs 1 -1 sc (Index to the array where the) col0 sh gr
+/Helvetica-Bold ff 210.00 scf sf
+12150 8385 m
+gs 1 -1 sc (neurons / weights / connections) col0 sh gr
+/Helvetica-Bold ff 210.00 scf sf
+12150 8610 m
+gs 1 -1 sc (are allocated.) col0 sh gr
+/Helvetica-Bold ff 210.00 scf sf
+12150 7710 m
+gs 1 -1 sc (Pointer) col0 sh gr
+/Helvetica-Bold ff 210.00 scf sf
+12150 7035 m
+gs 1 -1 sc (Connection) col0 sh gr
+/Helvetica-Bold ff 210.00 scf sf
+12150 6135 m
+gs 1 -1 sc (Weight) col0 sh gr
+/Helvetica-Bold ff 210.00 scf sf
+12150 5235 m
+gs 1 -1 sc (Neuron) col0 sh gr
+/Helvetica-Bold ff 210.00 scf sf
+3827 5690 m
+gs 1 -1 sc (0) dup sw pop 2 div neg 0 rm  col0 sh gr
+/Helvetica-Bold ff 210.00 scf sf
+3827 6590 m
+gs 1 -1 sc (1) dup sw pop 2 div neg 0 rm  col0 sh gr
+/Helvetica-Bold ff 210.00 scf sf
+3827 7490 m
+gs 1 -1 sc (2) dup sw pop 2 div neg 0 rm  col0 sh gr
+/Helvetica-Bold ff 210.00 scf sf
+3827 8390 m
+gs 1 -1 sc (3) dup sw pop 2 div neg 0 rm  col0 sh gr
+/Helvetica-Bold ff 210.00 scf sf
+5177 8390 m
+gs 1 -1 sc (3) dup sw pop 2 div neg 0 rm  col0 sh gr
+/Helvetica-Bold ff 210.00 scf sf
+5177 7490 m
+gs 1 -1 sc (2) dup sw pop 2 div neg 0 rm  col0 sh gr
+/Helvetica-Bold ff 210.00 scf sf
+5177 6590 m
+gs 1 -1 sc (1) dup sw pop 2 div neg 0 rm  col0 sh gr
+/Helvetica-Bold ff 210.00 scf sf
+5177 5690 m
+gs 1 -1 sc (0) dup sw pop 2 div neg 0 rm  col0 sh gr
+/Helvetica-Bold ff 210.00 scf sf
+7877 7040 m
+gs 1 -1 sc (5) dup sw pop 2 div neg 0 rm  col0 sh gr
+/Helvetica-Bold ff 210.00 scf sf
+7877 7940 m
+gs 1 -1 sc (6) dup sw pop 2 div neg 0 rm  col0 sh gr
+/Helvetica-Bold ff 210.00 scf sf
+9227 6140 m
+gs 1 -1 sc (4) dup sw pop 2 div neg 0 rm  col0 sh gr
+/Helvetica-Bold ff 210.00 scf sf
+9227 7040 m
+gs 1 -1 sc (5) dup sw pop 2 div neg 0 rm  col0 sh gr
+/Helvetica-Bold ff 210.00 scf sf
+9227 7940 m
+gs 1 -1 sc (6) dup sw pop 2 div neg 0 rm  col0 sh gr
+/Helvetica-Bold ff 210.00 scf sf
+11702 8390 m
+gs 1 -1 sc (3) dup sw pop 2 div neg 0 rm  col0 sh gr
+/Helvetica-Bold ff 210.00 scf sf
+2477 7490 m
+gs 1 -1 sc (1) dup sw pop 2 div neg 0 rm  col0 sh gr
+/Helvetica-Bold ff 210.00 scf sf
+2477 6590 m
+gs 1 -1 sc (0) dup sw pop 2 div neg 0 rm  col0 sh gr
+/Helvetica-Bold ff 210.00 scf sf
+6527 6140 m
+gs 1 -1 sc (2) dup sw pop 2 div neg 0 rm  col0 sh gr
+/Helvetica-Bold ff 210.00 scf sf
+6527 7040 m
+gs 1 -1 sc (3) dup sw pop 2 div neg 0 rm  col0 sh gr
+/Helvetica-Bold ff 210.00 scf sf
+6527 7940 m
+gs 1 -1 sc (4) dup sw pop 2 div neg 0 rm  col0 sh gr
+/Helvetica-Bold ff 210.00 scf sf
+10577 7040 m
+gs 1 -1 sc (6) dup sw pop 2 div neg 0 rm  col0 sh gr
+/Helvetica-Bold ff 210.00 scf sf
+10577 6140 m
+gs 1 -1 sc (5) dup sw pop 2 div neg 0 rm  col0 sh gr
+/Helvetica-Bold ff 210.00 scf sf
+7877 6140 m
+gs 1 -1 sc (4) dup sw pop 2 div neg 0 rm  col0 sh gr
+% here ends figure;
+$F2psEnd
+rs
+showpage
+
+%%EndDocument
+ @endspecial 183 x Fy(Figure)26 b(8:)35 b(Arc)n(hitecture)26
+b(of)h(the)f(fann)h(library)e(at)h(the)h(third)f(lev)n(el,)g
+(illustrated)g(b)n(y)g(an)g(ANN)330 1476 y(with)32 b(1)f(input)h
+(neuron,)g(t)n(w)n(o)f(neurons)g(in)g(a)h(hidden)g(la)n(y)n(er)d(and)j
+(one)f(output)h(neuron.)48 b(Bias)330 1575 y(neurons)33
+b(are)g(also)f(illustrated,)j(including)f(a)g(bias)f(neuron)g(in)h(the)
+g(output)g(la)n(y)n(er)f(whic)n(h)g(is)330 1675 y(not)d(used,)i(but)f
+(still)f(included)h(to)f(mak)n(e)g(algorithms)f(more)h(simple.)45
+b(Three)30 b(things)g(should)330 1775 y(b)r(e)g(noticed)g(on)g(this)h
+(\014gure,)f(the)g(\014rst)g(is)g(that)g(all)g(p)r(oin)n(ters)f(go)g
+(bac)n(kw)n(ards)f(whic)n(h)i(is)g(more)330 1874 y(optimal)39
+b(when)h(executing)g(the)g(ANN.)g(The)g(second)f(is)g(that)h(all)g
+(neurons,)i(w)n(eigh)n(ts)c(and)330 1974 y(connections)29
+b(ha)n(v)n(e)f(a)i(n)n(um)n(b)r(er)f(inside)h(of)f(them)h(whic)n(h)g
+(sho)n(ws)e(their)i(p)r(osition)g(in)f(the)h(arra)n(y)330
+2073 y(that)36 b(they)h(are)e(allo)r(cated)g(in,)j(the)f(arra)n(ys)c
+(are)i(implicit)i(sho)n(wn)e(b)n(y)h(colored)f(b)r(o)n(xes.)61
+b(The)330 2173 y(third)25 b(is)g(that)h(only)e(p)r(oin)n(ters)h(to)g
+(the)g(\014rst)g(connection)g(and)g(w)n(eigh)n(t)f(connected)h(to)g(a)g
+(neuron)330 2273 y(is)i(required,)g(b)r(ecause)g(the)h(neuron)f(kno)n
+(ws)g(ho)n(w)g(man)n(y)g(incoming)g(connections)g(it)h(has.)p
+Black 330 2538 a Fo(4.3)112 b(Algorithmic)38 b(Design)330
+2691 y Fy(The)i(algorithm)g(for)f(executing)h(the)h(net)n(w)n(ork)e
+(and)h(the)h(bac)n(kpropagation)c(algorithm)i(is)330
+2791 y(describ)r(ed)20 b(in)g(section)g(2.2.2)f(and)g(2.3.1)g(and)h
+(the)g(optimizations)g(needed)g(in)g(these)g(algorithms)330
+2890 y(are)27 b(describ)r(ed)g(in)h(section)f(3.3.)455
+2990 y(These)g(algorithms)f(are)h(ho)n(w)n(ev)n(er)e(not)j(the)g(only)f
+(algorithms)f(needed)i(in)g(this)g(library)-7 b(.)330
+3206 y Fs(4.3.1)94 b(The)32 b(Densit)m(y)g(Algorithm)330
+3359 y Fy(In)27 b(section)f(3.1)g(I)h(expressed)f(the)h(wish)f(for)h(a)
+f(densit)n(y)h(parameter)e(in)i(the)g(constructor.)35
+b(The)330 3459 y(reason)e(for)h(adding)h(this)g(parameter,)g(is)g(to)f
+(allo)n(w)g(it)h(to)g(b)r(e)g(lik)n(e)f(a)h(c)n(heap)f(v)n(ersion)f(of)
+i(the)330 3558 y(optimal)28 b(brain)g(damage)e(algorithm)h([LeCun)h(et)
+g(al.,)f(1990)n(].)39 b(In)28 b(large)f(ANNs,)i(man)n(y)f(of)g(the)330
+3658 y(rules)39 b(that)g(are)g(generated)f(only)h(utilize)h(a)e(few)i
+(connections.)71 b(Optimal)40 b(brain)e(damage)330 3758
+y(try)30 b(to)h(remo)n(v)n(e)d(un)n(used)j(connections.)45
+b(I)30 b(will)h(pro)n(vide)e(the)i(opp)r(ortunit)n(y)f(to)h(remo)n(v)n
+(e)e(some)330 3857 y(connections)f(in)h(adv)-5 b(ance)28
+b(and)g(then)i(try)e(to)h(see)f(if)h(the)g(net)n(w)n(ork)f(could)g(b)r
+(e)h(trained)f(to)h(giv)n(e)330 3957 y(go)r(o)r(d)j(results.)53
+b(There)33 b(is)g(no)g(guaran)n(tee)e(that)i(this)h(will)f(giv)n(e)f(a)
+h(b)r(etter)h(ANN,)g(but)f(it)h(will)330 4056 y(giv)n(e)k(the)h(users)f
+(of)g(the)i(library)d(another)h(parameter)f(to)i(t)n(w)n(eak)e(in)i
+(order)f(to)g(get)h(b)r(etter)330 4156 y(p)r(erformance.)455
+4256 y(The)29 b(algorithm,)g(whic)n(h)g(creates)f(an)h(ANN)h(with)g(a)f
+(certain)g(densit)n(y)g Fm(D)r Fy(,)h(has)e(a)h(n)n(um)n(b)r(er)330
+4355 y(of)f(requiremen)n(ts)e(whic)n(h)i(it)g(m)n(ust)f(comply)h(to:)p
+Black 431 4538 a(1.)p Black 42 w(The)33 b(n)n(um)n(b)r(er)g(of)g
+(neurons)g(should)g(b)r(e)h(the)f(same)g(as)g(stated)g(b)n(y)g(the)h
+(parameters)d(to)538 4638 y(the)d(constructor.)p Black
+431 4754 a(2.)p Black 42 w(The)34 b(bias)g(neurons)f(should)h(still)h
+(b)r(e)f(fully)h(connected,)h(since)e(they)g(represen)n(t)f(the)i
+Fm(t)538 4853 y Fy(v)-5 b(alue)33 b(in)g(the)h(activ)-5
+b(ation)32 b(functions.)54 b(These)33 b(connections)g(should)g(not)g(b)
+r(e)g(coun)n(ted)538 4953 y(when)27 b(calculating)g(the)h(densit)n(y)-7
+b(.)p Black 431 5069 a(3.)p Black 42 w(All)29 b(neurons)e(should)i(b)r
+(e)g(connected)f(to)h(at)f(least)g(one)h(neuron)e(in)i(the)g(previous)f
+(la)n(y)n(er)538 5169 y(and)f(one)g(neuron)g(in)h(the)g(next)g(la)n(y)n
+(er.)p Black 431 5285 a(4.)p Black 42 w(The)f(same)g(connection)g(m)n
+(ust)h(not)g(o)r(ccur)f(t)n(wice.)p Black 431 5401 a(5.)p
+Black 42 w(The)g(connections)g(should)g(b)r(e)h(as)f(random)g(as)g(p)r
+(ossible.)p Black 431 5518 a(6.)p Black 42 w(The)g(densit)n(y)h(in)f
+(eac)n(h)g(la)n(y)n(er)f(should)i(b)r(e)g(as)e(close)h(to)h
+Fm(D)h Fy(as)e(p)r(ossible.)p Black 1788 5919 a(18)p
+Black eop end
+%%Page: 19 23
+TeXDict begin 19 22 bop Black 330 70 a Fp(4.4)82 b(Fixed)28
+b(P)n(oin)n(t)e(Design)631 b(4)82 b(DESIGN)28 b(AND)h(IMPLEMENT)-7
+b(A)g(TION)p 330 103 3000 4 v Black 455 390 a Fy(The)31
+b(algorithm)f(that)i(I)g(ha)n(v)n(e)e(constructed)h(to)g(do)g(this)h
+(is)f(illustrated)g(in)h(algorithm)e(1.)330 490 y(Because)36
+b(some)g(connections)g(should)g(alw)n(a)n(ys)f(b)r(e)i(in)g(place,)h
+(the)f(actual)g(connection)f(rate)330 589 y(ma)n(y)27
+b(b)r(e)h(di\013eren)n(t)g(than)f(the)h(connection)f(rate)g(parameter)f
+(giv)n(en.)p 330 712 3000 7 v 330 786 a Fs(Algorithm)34
+b(1)d Fy(Algorithm)f(for)g(generating)g(connections)f(with)j(a)e(giv)n
+(en)g(densit)n(y)h Fm(D)h Fy(in)f(an)330 886 y(ANN.)i(Bias)e(neurons)h
+(is)g(not)g(represen)n(ted)f(in)h(this)h(algorithm)e(in)h(order)f(to)h
+(mak)n(e)f(it)i(more)330 985 y(simple.)p 330 1021 3000
+4 v Black Black 330 1096 a Fs(Require:)p Black 40 w Fy(0)23
+b Fn(\024)g Fm(D)i Fn(\024)d Fy(1)413 1195 y Fn(f)p Fy(First)27
+b(\014nd)h(out)g(ho)n(w)f(man)n(y)g(input)h(connections)f(eac)n(h)g
+(neuron)g(should)g(ha)n(v)n(e)p Fn(g)p Black Black 413
+1295 a Fs(for)32 b(all)27 b Fm(l)713 1307 y Fk(i)741
+1295 y Fm(;)41 b(l)830 1307 y Fk(o)895 1295 y Fy(where)27
+b Fm(l)1160 1307 y Fk(i)1215 1295 y Fy(is)g(a)g(la)n(y)n(er)f(with)i
+Fm(l)1782 1307 y Fk(o)1847 1295 y Fy(as)f(the)h(next)f(la)n(y)n(er)f
+Fs(do)p Black Black 496 1395 a Fm(num)667 1407 y Fk(in)758
+1395 y Fn( )i Fy(the)g(n)n(um)n(b)r(er)f(of)h(neurons)e(in)i
+Fm(l)1840 1407 y Fk(i)p Black Black 496 1494 a Fm(num)667
+1506 y Fk(out)791 1494 y Fn( )f Fy(the)h(n)n(um)n(b)r(er)g(of)f
+(neurons)g(in)h Fm(l)1873 1506 y Fk(o)p Black Black 496
+1594 a Fm(num)667 1606 y Fk(min)817 1594 y Fn( )23 b
+Fm(max)p Fy(\()p Fm(num)1290 1606 y Fk(in)1358 1594 y
+Fm(;)42 b(num)1594 1606 y Fk(out)1695 1594 y Fy(\))p
+Black Black 496 1693 a Fm(num)667 1705 y Fk(max)826 1693
+y Fn( )23 b Fm(num)1103 1705 y Fk(in)1190 1693 y Fn(\003)18
+b Fm(num)1421 1705 y Fk(out)p Black Black 496 1793 a
+Fm(num)667 1805 y Fk(con)797 1793 y Fn( )23 b Fm(max)p
+Fy(\()p Fm(D)e Fn(\003)d Fm(num)1420 1805 y Fk(max)1556
+1793 y Fm(;)42 b(num)1792 1805 y Fk(min)1918 1793 y Fy(\))p
+Black Black 496 1893 a(Spread)27 b Fm(num)944 1905 y
+Fk(con)1079 1893 y Fy(equally)g(among)f(the)i(neurons)f(in)h
+Fm(l)2207 1905 y Fk(o)p Black Black 413 1992 a Fs(end)g(for)p
+Black Black Black Black 413 2192 a Fn(f)p Fy(Then)f(mak)n(e)g(the)h
+(actual)f(connections)p Fn(g)p Black Black 413 2291 a
+Fs(for)32 b(all)27 b Fm(l)713 2303 y Fk(i)741 2291 y
+Fm(;)41 b(l)830 2303 y Fk(o)895 2291 y Fy(where)27 b
+Fm(l)1160 2303 y Fk(i)1215 2291 y Fy(is)g(a)g(la)n(y)n(er)f(with)i
+Fm(l)1782 2303 y Fk(o)1847 2291 y Fy(as)f(the)h(next)f(la)n(y)n(er)f
+Fs(do)p Black Black 496 2391 a Fn(f)p Fy(Connections)g(from)i(all)f
+(neurons)g(in)h Fm(l)1752 2403 y Fk(i)1779 2391 y Fn(g)p
+Black Black 496 2490 a Fs(for)k(all)27 b Fm(n)821 2502
+y Fk(i)876 2490 y Fy(where)g Fm(n)1166 2502 y Fk(i)1222
+2490 y Fy(is)g(a)g(neuron)g(in)h Fm(l)1773 2502 y Fk(i)1828
+2490 y Fs(do)p Black Black 579 2590 a Fm(n)629 2602 y
+Fk(o)689 2590 y Fn( )g Fy(a)f(random)f(neuron)h(in)h
+Fm(l)1572 2602 y Fk(o)1637 2590 y Fy(with)g(ro)r(om)e(for)h(more)g
+(connections)p Black Black 579 2690 a(Mak)n(e)g(a)g(connection)g(b)r
+(et)n(w)n(een)h Fm(n)1658 2702 y Fk(i)1713 2690 y Fy(and)f
+Fm(n)1924 2702 y Fk(o)p Black Black 496 2789 a Fs(end)h(for)p
+Black Black Black Black 496 2989 a Fn(f)p Fy(The)f(rest)g(of)h(the)g
+(connections)p Fn(g)p Black Black 496 3088 a Fs(for)k(all)27
+b Fm(n)821 3100 y Fk(o)886 3088 y Fy(where)g Fm(n)1176
+3100 y Fk(o)1240 3088 y Fy(is)h(a)f(neuron)g(in)h Fm(l)1792
+3100 y Fk(o)1856 3088 y Fs(do)p Black Black 579 3188
+a(while)f Fy(There)g(is)g(still)h(ro)r(om)f(for)g(connections)g(in)g
+Fm(n)2247 3200 y Fk(o)2312 3188 y Fs(do)p Black Black
+662 3287 a Fm(n)712 3299 y Fk(i)763 3287 y Fn( )g Fy(a)h(random)e
+(neuron)h(in)h Fm(l)1646 3299 y Fk(i)1701 3287 y Fy(whic)n(h)g(is)f
+(not)h(already)e(connected)h(to)h Fm(n)3002 3299 y Fk(o)p
+Black Black 662 3387 a Fy(Mak)n(e)f(a)g(connection)g(b)r(et)n(w)n(een)h
+Fm(n)1741 3399 y Fk(i)1796 3387 y Fy(and)f Fm(n)2007
+3399 y Fk(o)p Black Black 579 3487 a Fs(end)h(while)p
+Black Black 496 3586 a(end)g(for)p Black Black 413 3686
+a(end)g(for)p Black 330 3723 V 330 4022 a(4.3.2)94 b(The)32
+b(Activ)-5 b(ation)32 b(F)-8 b(unctions)330 4175 y Fy(I)25
+b(section)g(3.3.8)f(I)i(suggested)e(that)h(a)g(lo)r(okup)g(table)g(w)n
+(ould)g(probably)f(b)r(e)i(faster)e(than)i(calcu-)330
+4275 y(lating)d(the)h(actual)f(activ)-5 b(ation)23 b(functions.)36
+b(I)24 b(ha)n(v)n(e)e(c)n(hosen)h(not)g(to)h(implemen)n(t)g(this)g
+(solution,)330 4374 y(but)k(it)g(w)n(ould)f(probably)g(b)r(e)h(a)f(go)r
+(o)r(d)g(idea)g(to)h(try)f(it)h(in)g(the)g(future.)455
+4474 y(This)f(optimization)h(has)f(not)h(b)r(een)g(implemen)n(ted)h(b)r
+(ecause)e(the)h(activ)-5 b(ation)28 b(function)g(is)330
+4574 y(only)k(calculated)g(once)g(for)g(eac)n(h)f(neuron)h(and)g(not)h
+(once)f(for)g(eac)n(h)f(connection.)51 b(The)33 b(cost)330
+4673 y(of)h(the)h(activ)-5 b(ation)33 b(function)i(b)r(ecomes)f
+(insigni\014can)n(t)f(compared)g(to)h(the)h(cost)e(of)h(the)h(sum)330
+4773 y(function,)28 b(if)g(fully)g(connected)g(ANNs)g(b)r(ecome)g
+(large)e(enough.)455 4872 y(The)e(activ)-5 b(ation)24
+b(functions,)h(that)g(I)f(ha)n(v)n(e)f(c)n(hosen)g(to)h(implemen)n(t)h
+(is)f(the)h(threshold)f(func-)330 4972 y(tion)k(and)f(the)h(sigmoid)f
+(function.)330 5204 y Fo(4.4)112 b(Fixed)39 b(P)m(oin)m(t)e(Design)330
+5358 y Fy(In)j(section)f(3.2)g(I)h(explained,)j(that)d(after)f(fully)i
+(training)e(an)g(ANN)i(y)n(ou)e(can)g(mak)n(e)g(one)330
+5457 y(c)n(hec)n(k,)29 b(that)h(will)g(guaran)n(tee,)e(that)i(there)f
+(will)h(b)r(e)g(no)f(in)n(teger)g(o)n(v)n(er\015o)n(w.)40
+b(In)30 b(this)g(section)f(I)330 5557 y(will)h(suggest)f(sev)n(eral)g
+(w)n(a)n(ys)f(that)j(this)f(could)g(b)r(e)h(implemen)n(ted)g(and)f
+(describ)r(e)g(ho)n(w)f(I)h(ha)n(v)n(e)330 5657 y(implemen)n(ted)e(one)
+f(of)h(these)g(suggestions.)p Black 1788 5919 a(19)p
+Black eop end
+%%Page: 20 24
+TeXDict begin 20 23 bop Black 330 70 a Fp(4.4)82 b(Fixed)28
+b(P)n(oin)n(t)e(Design)631 b(4)82 b(DESIGN)28 b(AND)h(IMPLEMENT)-7
+b(A)g(TION)p 330 103 3000 4 v Black 455 390 a Fy(The)19
+b(general)g(idea)g(b)r(ehind)i(all)e(of)h(these)f(suggestions,)h(is)g
+(the)g(fact)g(that)g(y)n(ou)e(can)i(calculate)330 490
+y(the)26 b(maxim)n(um)g(v)-5 b(alue)25 b(that)h(y)n(ou)f(will)h(ev)n
+(er)f(get)h(as)f(input)h(to)g(the)g(activ)-5 b(ation)25
+b(function.)37 b(This)330 589 y(is)29 b(done,)g(b)n(y)f(assuming)g
+(that)i(the)f(input)h(on)e(eac)n(h)g(connection)h(in)n(to)f(a)h(neuron)
+f(is)h(the)g(w)n(orst)330 689 y(p)r(ossible)e(and)h(then)g(calculating)
+f(ho)n(w)f(high)i(a)f(v)-5 b(alue)28 b(y)n(ou)e(could)i(get.)455
+789 y(Since)i(all)g(inputs)g(in)n(ternally)g(in)g(the)g(net)n(w)n(ork)f
+(is)h(an)g(output)h(from)e(another)h(activ)-5 b(ation)330
+888 y(function,)28 b(y)n(ou)f(will)g(alw)n(a)n(ys)f(kno)n(w)g(whic)n(h)
+h(v)-5 b(alue)27 b(is)h(the)f(w)n(orst)g(p)r(ossible)f(v)-5
+b(alue.)37 b(The)28 b(inputs)330 988 y(on)e(the)g(other)f(hand)h(are)f
+(not)h(con)n(trolled)f(in)h(an)n(y)f(w)n(a)n(y)-7 b(.)35
+b(In)26 b(order)f(to)h(ensure)f(that)h(an)g(in)n(teger)330
+1088 y(o)n(v)n(er\015o)n(w)d(will)j(nev)n(er)f(o)r(ccur,)g(y)n(ou)g
+(will)h(ha)n(v)n(e)e(to)i(put)g(constrain)n(ts)e(on)h(the)h(inputs.)37
+b(There)25 b(are)330 1187 y(sev)n(eral)i(di\013eren)n(t)i(kinds)f(of)h
+(constrain)n(ts)e(y)n(ou)h(could)g(put)i(on)e(the)h(inputs,)h(but)f(I)g
+(think)g(that)330 1287 y(it)f(w)n(ould)e(b)r(e)i(b)r(ene\014cial)f(to)g
+(put)h(the)g(same)f(constrain)n(ts)e(on)i(the)h(inputs)g(as)e(on)h(the)
+h(outputs,)330 1386 y(implying)i(that)g(the)g(input)h(should)f(b)r(e)g
+(b)r(et)n(w)n(een)g(zero)f(and)h(one.)43 b(Actually)30
+b(this)g(constrain)n(t)330 1486 y(can)d(b)r(e)h(relaxed)f(to)g(allo)n
+(w)g(inputs)h(b)r(et)n(w)n(een)f(min)n(us)h(one)f(and)h(one.)455
+1586 y(I)j(no)n(w)f(ha)n(v)n(e)g(full)i(con)n(trol)e(of)i(all)e(the)i
+(v)-5 b(ariables)30 b(and)h(I)g(will)h(ha)n(v)n(e)e(to)h(c)n(ho)r(ose)f
+(an)h(imple-)330 1685 y(men)n(tation)c(metho)r(d)h(for)f(ensuring)f
+(that)i(in)n(teger)f(o)n(v)n(er\015o)n(w)d(will)k(not)f(o)r(ccur.)37
+b(There)26 b(are)h(t)n(w)n(o)330 1785 y(questions)34
+b(here)g(whic)n(h)h(needs)f(to)h(b)r(e)g(answ)n(ered.)57
+b(The)35 b(\014rst)f(is)h(ho)n(w)f(should)g(the)h(decimal)330
+1885 y(p)r(oin)n(t)28 b(b)r(e)g(handled?)37 b(But)28
+b(I)f(will)h(come)f(to)h(this)g(in)g(section)f(4.4.1.)455
+1984 y(The)36 b(second)g(is)g(when)h(and)f(ho)n(w)g(the)h(c)n(hec)n(k)f
+(b)r(e)h(should)f(made?)64 b(An)37 b(ob)n(vious)e(c)n(hoice)330
+2084 y(w)n(ould)f(b)r(e)i(to)e(let)h(the)h(\014xed)f(p)r(oin)n(t)g
+(library)e(mak)n(e)h(the)h(c)n(hec)n(k,)h(as)e(this)h(library)f(needs)h
+(the)330 2183 y(\014xed)27 b(p)r(oin)n(t)h(functionalit)n(y)-7
+b(.)37 b(Ho)n(w)n(ev)n(er,)25 b(this)j(presen)n(ts)e(a)h(problem)g(b)r
+(ecause)g(the)h(\014xed)f(p)r(oin)n(t)330 2283 y(library)35
+b(is)h(often)g(run)g(on)g(some)g(kind)g(of)h(p)r(ortable)e(or)g(em)n(b)
+r(edded)i(device.)63 b(The)36 b(\015oating)330 2383 y(p)r(oin)n(t)28
+b(library)-7 b(,)27 b(on)g(the)h(other)g(hand,)f(is)h(often)g(run)g(on)
+f(a)h(standard)f(w)n(orkstation.)35 b(This)28 b(fact)330
+2482 y(suggests)22 b(that)h(it)g(w)n(ould)g(b)r(e)g(useful)g(to)g(let)g
+(the)h(\015oating)e(p)r(oin)n(t)h(library)f(do)g(all)h(the)g(hard)g(w)n
+(ork)330 2582 y(and)j(simply)g(let)g(the)g(\014xed)g(p)r(oin)n(t)h
+(library)d(read)h(a)h(con\014guration)e(\014le)i(sa)n(v)n(ed)f(b)n(y)h
+(the)g(\015oating)330 2682 y(p)r(oin)n(t)i(library)-7
+b(.)455 2781 y(These)39 b(c)n(hoices)g(mak)n(e)g(for)h(a)f(mo)r(del,)44
+b(where)39 b(the)h(\015oating)g(p)r(oin)n(t)g(library)e(trains)i(the)
+330 2881 y(ANN,)35 b(then)g(c)n(hec)n(ks)e(for)g(the)i(p)r(ossibilit)n
+(y)f(of)g(in)n(teger)f(o)n(v)n(er\015o)n(w)e(and)j(sa)n(v)n(es)f(the)h
+(ANN)h(in)f(a)330 2980 y(\014xed)f(p)r(oin)n(t)g(v)n(ersion.)50
+b(The)33 b(\014xed)g(p)r(oin)n(t)f(library)g(then)h(reads)e(this)i
+(con\014guration)e(\014le)i(and)330 3080 y(can)27 b(b)r(egin)h
+(executing)f(inputs.)330 3296 y Fs(4.4.1)94 b(The)32
+b(P)m(osition)f(of)g(the)h(Decimal)f(P)m(oin)m(t)330
+3449 y Fy(The)21 b(p)r(osition)g(of)g(the)h(decimal)f(p)r(oin)n(t)h(is)
+f(the)g(n)n(um)n(b)r(er)g(of)g(bits)h(y)n(ou)e(will)i(use)f(for)g(the)g
+(fractional)330 3549 y(part)29 b(of)g(the)h(\014xed)f(p)r(oin)n(t)g(n)n
+(um)n(b)r(er.)42 b(The)30 b(p)r(osition)f(of)g(the)h(decimal)f(p)r(oin)
+n(t)g(also)f(determines)330 3648 y(ho)n(w)f(man)n(y)g(bits)h(that)g
+(can)f(b)r(e)h(used)g(b)n(y)f(the)h(in)n(teger)e(part)i(of)f(the)h
+(\014xed)g(p)r(oin)n(t)g(n)n(um)n(b)r(er.)455 3748 y(There)g(are)g(t)n
+(w)n(o)g(w)n(a)n(ys)f(of)i(determining)f(the)i(p)r(osition)e(of)h(the)g
+(decimal)g(p)r(oin)n(t.)40 b(The)29 b(\014rst)330 3848
+y(w)n(a)n(y)-7 b(,)29 b(is)g(to)h(set)g(the)g(decimal)f(p)r(oin)n(t)h
+(at)f(compile)h(time.)43 b(The)30 b(second)f(is)g(to)h(set)f(the)h
+(decimal)330 3947 y(p)r(oin)n(t)e(when)g(sa)n(ving)e(the)i(ANN)g(from)f
+(the)h(\015oating)f(p)r(oin)n(t)h(library)-7 b(.)455
+4047 y(There)27 b(are)f(sev)n(eral)g(adv)-5 b(an)n(tages)26
+b(of)h(setting)h(the)g(decimal)f(p)r(oin)n(t)h(at)g(compile)f(time:)p
+Black 455 4230 a Fn(\017)p Black 41 w Fy(Easy)f(to)h(implemen)n(t)p
+Black 455 4346 a Fn(\017)p Black 41 w Fy(The)g(precision)g(is)g(kno)n
+(wn)g(in)h(adv)-5 b(ance)p Black 455 4462 a Fn(\017)p
+Black 41 w Fy(The)35 b(scop)r(e)g(of)g(the)h(inputs)g(and)f(outputs)h
+(are)f(kno)n(wn)f(when)i(writing)f(the)h(soft)n(w)n(are)538
+4562 y(using)27 b(the)h(\014xed)f(p)r(oin)n(t)h(library)p
+Black 455 4678 a Fn(\017)p Black 41 w Fy(The)f(compiler)g(can)g
+(optimize)h(on)f(basis)g(of)h(the)g(decimal)f(p)r(oin)n(t)455
+4861 y(There)35 b(are)g(ho)n(w)n(ev)n(er)f(also)h(sev)n(eral)g(adv)-5
+b(an)n(tages)34 b(of)i(setting)g(the)h(decimal)f(p)r(oin)n(t)g(when)330
+4960 y(sa)n(ving)26 b(the)i(ANN)h(to)e(a)g(\014xed)h(p)r(oin)n(t)g
+(con\014guration)e(\014le:)p Black 455 5143 a Fn(\017)p
+Black 41 w Fy(The)h(precision)g(will)h(b)r(e)g(as)f(high)g(as)g(p)r
+(ossible)p Black 455 5259 a Fn(\017)p Black 41 w Fy(Less)g(ANNs)h(will)
+g(fail)f(the)h(c)n(hec)n(k)f(that)h(ensures)f(that)g(an)h(o)n(v)n
+(er\015o)n(w)d(will)j(not)f(o)r(ccur)455 5442 y(Although)33
+b(there)g(are)f(less)h(adv)-5 b(an)n(tages)31 b(in)j(the)f(last)g
+(solution,)h(it)g(is)f(the)g(most)g(general)330 5541
+y(and)c(scalable)g(solution,)h(therefore)e(I)i(will)g(c)n(ho)r(ose)e
+(to)i(set)f(the)h(decimal)g(p)r(oin)n(t)g(when)g(sa)n(ving)330
+5641 y(the)h(ANN.)g(The)f(big)g(question)g(is)h(no)n(w,)f(where)g
+(should)g(the)h(decimal)f(p)r(oin)n(t)g(b)r(e?)46 b(And)31
+b(ho)n(w)p Black 1788 5919 a(20)p Black eop end
+%%Page: 21 25
+TeXDict begin 21 24 bop Black 330 70 a Fp(4.5)82 b(Co)r(de)28
+b(Design)870 b(4)82 b(DESIGN)28 b(AND)h(IMPLEMENT)-7
+b(A)g(TION)p 330 103 3000 4 v Black 330 390 a Fy(can)24
+b(y)n(ou)f(b)r(e)h(absolutely)f(sure)h(that)g(an)g(in)n(teger)f(o)n(v)n
+(er\015o)n(w)e(will)j(not)g(o)r(ccur)g(when)g(the)g(decimal)330
+490 y(p)r(oin)n(t)k(is)f(there?)455 589 y(Before)20 b(calculating)i
+(where)f(the)h(decimal)g(p)r(oin)n(t)g(should)g(b)r(e,)h(I)f(will)g
+(de\014ne)g(what)g(happ)r(ens)330 689 y(with)42 b(the)f(n)n(um)n(b)r
+(er)g(of)h(used)f(bits)g(under)g(certain)g(conditions:)64
+b(When)41 b(m)n(ultiplying)h(t)n(w)n(o)330 789 y(in)n(teger)36
+b(n)n(um)n(b)r(ers,)i(y)n(ou)e(will)h(need)g(the)g(same)f(n)n(um)n(b)r
+(er)h(of)f(bits)h(to)g(represen)n(t)e(the)i(result,)330
+888 y(as)g(w)n(as)f(needed)i(to)f(represen)n(t)g(b)r(oth)h(of)f(the)h
+(m)n(ultipliers.)66 b(E.g.)g(if)38 b(y)n(ou)f(m)n(ultiply)h(t)n(w)n(o)e
+(8)330 988 y(bit)d(n)n(um)n(b)r(ers,)h(y)n(ou)e(will)h(get)f(a)h(16)f
+(bit)h(n)n(um)n(b)r(er)f([P)n(endleton,)27 b(1993)n(].)53
+b(F)-7 b(urthermore,)33 b(when)330 1088 y(adding)25 b(or)g(subtracting)
+f(t)n(w)n(o)h(signed)g(in)n(tegers)f(y)n(ou)h(will)h(need)f(as)g(man)n
+(y)g(bits)h(as)f(used)g(in)h(the)330 1187 y(largest)31
+b(of)h(the)g(t)n(w)n(o)f(n)n(um)n(b)r(ers)h(plus)g(one.)50
+b(When)32 b(doing)g(a)g(\014xed)g(p)r(oin)n(t)g(division,)g(y)n(ou)f
+(will)330 1287 y(need)26 b(to)h(shift)g(the)f(n)n(umerator)f(left)i(b)n
+(y)f(as)g(man)n(y)f(bits)i(as)e(the)i(decimal)f(p)r(oin)n(t.)37
+b(When)27 b(doing)330 1386 y(a)32 b(decimal)g(p)r(oin)n(t)h(m)n
+(ultiplication,)g(y)n(ou)f(\014rst)g(do)g(a)g(standard)f(in)n(teger)h
+(m)n(ultiplication)g(and)330 1486 y(then)c(shift)g(righ)n(t)f(b)n(y)h
+(as)e(man)n(y)h(bits)h(as)f(the)h(decimal)g(p)r(oin)n(t.)455
+1586 y(Sev)n(eral)c(op)r(erations)g(has)h(the)h(p)r(ossibilit)n(y)f(of)
+h(generating)e(in)n(teger)h(o)n(v)n(er\015o)n(w,)e(when)j(lo)r(ok-)330
+1685 y(ing)h(at)h(what)f(happ)r(ens)h(when)g(executing)f(an)g(ANN)i
+(with)f(equation)f(2.5.)455 1785 y(If)21 b Fm(t)h Fy(is)f(the)g(n)n(um)
+n(b)r(er)g(of)g(bits)h(needed)f(for)g(the)h(fractional)e(part)h(of)g
+(the)h(\014xed)f(p)r(oin)n(t)g(n)n(um)n(b)r(er,)330 1885
+y(w)n(e)32 b(can)f(calculate)h(ho)n(w)f(man)n(y)h(bits)g(are)f(needed)h
+(for)g(eac)n(h)f(of)h(these)g(op)r(erations.)49 b(T)-7
+b(o)32 b(help)330 1984 y(in)27 b(these)g(calculations,)f(i)h(will)g
+(de\014ne)g(the)h Fm(y)d Fy(=)e Fm(bits)p Fy(\()p Fm(x)p
+Fy(\))k(function,)h(w)n(ere)e Fm(y)j Fy(is)e(the)g(n)n(um)n(b)r(er)g
+(of)330 2084 y(bits)h(used)f(to)h(represen)n(t)e(the)i(in)n(teger)f
+(part)g(of)h Fm(x)p Fy(.)455 2183 y(When)j(calculating)f
+Fm(w)1182 2195 y Fk(i)1210 2183 y Fm(x)1257 2195 y Fk(i)1316
+2183 y Fy(w)n(e)h(do)f(a)h(\014xed)g(p)r(oin)n(t)g(m)n(ultiplication)g
+(with)g(a)g(w)n(eigh)n(t)f(and)g(a)330 2283 y(n)n(um)n(b)r(er)35
+b(b)r(et)n(w)n(een)g(zero)f(and)i(one.)59 b(The)35 b(n)n(um)n(b)r(er)g
+(of)h(bits)f(needed)h(in)f(this)h(calculation)e(is)330
+2383 y(calculated)27 b(in)h(equation)f(4.1.)1295 2560
+y Fm(t)19 b Fy(+)f Fm(bits)p Fy(\()p Fm(w)1652 2572 y
+Fk(i)1679 2560 y Fy(\))h(+)f Fm(t)g Fy(+)g Fm(bits)p
+Fy(\()p Fm(x)2157 2572 y Fk(i)2185 2560 y Fy(\))83 b(=)1295
+2660 y Fm(t)19 b Fy(+)f Fm(bits)p Fy(\()p Fm(w)1652 2672
+y Fk(i)1679 2660 y Fy(\))h(+)f Fm(t)g Fy(+)g(0)314 b(=)1295
+2760 y(2)p Fm(t)18 b Fy(+)g Fm(bits)p Fy(\()p Fm(w)1693
+2772 y Fk(i)1721 2760 y Fy(\))3159 2661 y(\(4.1\))455
+2905 y(When)24 b(calculating)e(the)i(activ)-5 b(ation)24
+b(function)g(in)g(\014xed)f(p)r(oin)n(t)h(n)n(um)n(b)r(ers,)g(it)g(is)g
+(calculated)330 3005 y(as)f(a)g(step)n(wise)g(linear)g(function.)36
+b(In)24 b(this)g(function)g(the)g(dominating)f(calculation)g(is)h(a)f
+(m)n(ulti-)330 3105 y(plication)k(b)r(et)n(w)n(een)g(a)g(\014xed)h(p)r
+(oin)n(t)f(n)n(um)n(b)r(er)g(b)r(et)n(w)n(een)h(zero)e(and)h(one)g(and)
+h(the)f(input)h(to)g(the)330 3204 y(activ)-5 b(ation)29
+b(function.)44 b(F)-7 b(rom)29 b(the)h(input)g(to)f(the)h(activ)-5
+b(ation)30 b(function)g(another)e(\014xed)i(p)r(oin)n(t)330
+3304 y(n)n(um)n(b)r(er)e(is)g(subtracted)g(b)r(efore)g(the)g(m)n
+(ultiplication.)39 b(The)28 b(n)n(um)n(b)r(er)g(of)g(bits)h(needed)f
+(in)h(this)330 3403 y(calculation)e(is)g(calculated)g(in)h(equation)f
+(4.2.)1284 3657 y(2)p Fm(t)18 b Fy(+)g Fm(bits)1605 3515
+y Fl( )1669 3657 y Fm(w)1728 3669 y Fk(n)p Fu(+1)1911
+3553 y Fk(n)1872 3578 y Fl(X)1878 3755 y Fk(i)p Fu(=0)2006
+3657 y Fm(w)2065 3669 y Fk(i)2093 3657 y Fm(x)2140 3669
+y Fk(i)2168 3515 y Fl(!)2252 3657 y Fy(+)g(1)782 b(\(4.2\))455
+3879 y(Since)25 b(the)h(highest)g(p)r(ossible)f(output)h(of)f(the)h
+(sum)g(function)g(is)g(higher)f(than)g(the)h(highest)330
+3978 y(p)r(ossible)j(w)n(eigh)n(t,)f(this)h(op)r(eration)f(is)h(the)h
+(dominating)e(op)r(eration.)40 b(This)29 b(implies,)g(that)h(if)f(I)330
+4078 y(can)c(pro)n(v)n(e)f(that)h(an)g(o)n(v)n(er\015o)n(w)e(will)i
+(not)h(o)r(ccur)e(in)i(this)f(op)r(eration,)g(I)g(can)g(guaran)n(tee)f
+(that)h(an)330 4178 y(o)n(v)n(er\015o)n(w)g(will)j(nev)n(er)f(o)r
+(ccur.)455 4277 y(When)35 b(sa)n(ving)f(the)h(ANN)h(in)f(the)g(\014xed)
+g(p)r(oin)n(t)h(format,)g(I)f(can)g(calculate)f(the)h(n)n(um)n(b)r(er)
+330 4377 y(of)h(bits)g(used)g(for)f(the)i(in)n(teger)e(part)g(of)h(the)
+g(largest)f(p)r(ossible)g(v)-5 b(alue)36 b(that)g(the)h(activ)-5
+b(ation)330 4476 y(function)39 b(can)f(b)r(e)h(giv)n(en)e(as)h(a)g
+(parameter.)67 b(This)39 b(v)-5 b(alue)38 b(is)g(named)g
+Fm(m)h Fy(in)f(equation)g(4.3,)330 4576 y(whic)n(h)j(calculates)f(the)h
+(p)r(osition)f(of)h(the)g(decimal)g(p)r(oin)n(t)g Fm(f)49
+b Fy(for)40 b(a)h Fm(n)f Fy(bit)i(signed)e(in)n(teger)330
+4676 y(\(remem)n(b)r(ering)27 b(that)h(one)f(bit)h(is)g(needed)f(for)g
+(the)h(sign\).)1556 4893 y Fm(f)k Fy(=)1727 4837 y Fm(n)18
+b Fn(\000)g Fy(2)g Fn(\000)g Fm(m)p 1727 4874 368 4 v
+1889 4950 a Fy(2)3159 4893 y(\(4.3\))330 5144 y Fo(4.5)112
+b(Co)s(de)38 b(Design)330 5297 y Fy(Section)32 b(3.3)g(describ)r(es)f
+(the)i(optimization)f(tec)n(hniques)g(used)g(when)g(implemen)n(ting)h
+(the)f(li-)330 5397 y(brary)-7 b(.)38 b(This)28 b(section)g(will)h(not)
+f(elab)r(orate)f(on)h(this,)h(but)g(rather)e(explain)h(whic)n(h)g(tec)n
+(hniques)330 5496 y(is)k(used)g(in)g(the)h(lo)n(w-lev)n(el)d(co)r(de)i
+(design,)h(in)f(order)f(to)h(mak)n(e)f(the)i(library)d(easy)h(to)h(use)
+g(and)330 5596 y(main)n(tain.)p Black 1788 5919 a(21)p
+Black eop end
+%%Page: 22 26
+TeXDict begin 22 25 bop Black 330 70 a Fp(4.5)82 b(Co)r(de)28
+b(Design)870 b(4)82 b(DESIGN)28 b(AND)h(IMPLEMENT)-7
+b(A)g(TION)p 330 103 3000 4 v Black 455 390 a Fy(The)25
+b(library)f(is)i(written)g(in)f(ANSI)i(C)e(whic)n(h)h(puts)g(some)f
+(limitations)g(on)g(a)h(programmer)330 490 y(lik)n(e)32
+b(me,)j(who)d(normally)g(co)r(des)g(in)h(C++.)51 b(Ho)n(w)n(ev)n(er,)32
+b(this)h(is)g(not)g(an)f(excuse)g(for)g(writing)330 589
+y(ugly)23 b(co)r(de,)i(although)e(allo)r(cating)g(all)h(v)-5
+b(ariables)22 b(at)i(the)g(b)r(eginning)g(of)g(a)f(function)i(will)f
+(nev)n(er)330 689 y(b)r(e)k(prett)n(y)-7 b(.)455 789
+y(I)22 b(ha)n(v)n(e)g(tried)h(to)g(use)f(comprehensible)g(v)-5
+b(ariable)22 b(and)h(function)g(names,)h(I)f(ha)n(v)n(e)e(also)h(tried)
+330 888 y(only)e(using)g(standard)f(C)h(functions,)i(in)f(order)e(to)h
+(mak)n(e)f(the)i(library)e(as)g(p)r(ortable)h(as)f(p)r(ossible.)330
+988 y(I)38 b(ha)n(v)n(e)g(made)g(sure)g(that)g(I)h(did)f(not)h(create)e
+(an)n(y)h(global)f(v)-5 b(ariables)37 b(and)h(that)h(all)f(global)330
+1088 y(functions)c(or)g(macros)e(w)n(as)h(named)i(in)f(a)g(w)n(a)n(y)-7
+b(,)34 b(so)g(that)g(they)h(w)n(ould)e(not)h(easily)g(in)n(terfere)330
+1187 y(with)29 b(other)g(libraries)e(\(b)n(y)i(adding)g(the)g(name)g
+(fann\).)41 b(F)-7 b(urthermore,)29 b(I)g(ha)n(v)n(e)e(de\014ned)j
+(some)330 1287 y(macros)g(whic)n(h)h(are)f(de\014ned)i(di\013eren)n
+(tly)f(in)h(the)g(\014xed)f(p)r(oin)n(t)h(v)n(ersion)d(and)j(in)f(the)h
+(\015oating)330 1386 y(p)r(oin)n(t)g(v)n(ersion.)49 b(These)32
+b(macros)f(help)h(writing)g(comprehensible)f(co)r(de)h(without)h(to)r
+(o)f(man)n(y)330 1486 y Ft(#ifdef)p Fy('s.)p Black 1788
+5919 a(22)p Black eop end
+%%Page: 23 27
+TeXDict begin 23 26 bop Black 2605 70 a Fp(5)83 b(USER'S)28
+b(GUIDE)p 330 103 3000 4 v Black 330 390 a Fv(5)135 b(User's)46
+b(Guide)330 572 y Fy(In)37 b(this)g(section)f(I)h(will)g(describ)r(e)g
+(ho)n(w)f(the)h(in)n(tended)g(use)g(of)f(this)h(library)f(is.)64
+b(F)-7 b(or)36 b(most)330 672 y(usage)i(the)h(\\Getting)g(Started")f
+(section)h(5.2)f(should)g(b)r(e)i(su\016cien)n(t,)i(but)d(for)g(users)f
+(with)330 771 y(more)27 b(adv)-5 b(anced)27 b(needs)g(I)h(will)g(also)e
+(recommend)h(the)h(\\Adv)-5 b(anced)28 b(Usage")e(section)h(5.3.)455
+871 y(The)37 b(\\Fixed)g(P)n(oin)n(t)f(Usage")f(section)i(5.4)f(is)h
+(only)g(in)n(tended)g(for)g(users)f(with)i(need)f(of)330
+971 y(running)23 b(the)h(ANN)h(on)e(a)g(computer)g(with)h(no)f
+(\015oating)g(p)r(oin)n(t)h(pro)r(cessor)d(lik)n(e)i(e.g.)36
+b(an)23 b(iP)-7 b(A)n(Q.)330 1199 y Fo(5.1)112 b(Installation)39
+b(and)f(T)-9 b(est)330 1352 y Fy(The)29 b(library)f(is)h(dev)n(elop)r
+(ed)g(on)g(a)g(Lin)n(ux)g(PC)g(using)f(the)i(gcc)f(compiler,)g(but)h
+(it)f(should)g(also)330 1452 y(b)r(e)i(p)r(ossible)f(to)g(compile)g
+(the)h(library)e(on)h(other)g(platforms.)45 b(Since)31
+b(the)f(library)g(is)g(written)330 1551 y(as)h(a)g(part)g(of)h(this)g
+(rep)r(ort,)g(m)n(y)g(main)f(concern)g(ha)n(v)n(e)f(not)i(b)r(een)g(to)
+g(create)f(an)g(easy)g(to)g(use)330 1651 y(install)d(metho)r(d,)g(but)g
+(I)g(plan)f(to)h(create)e(one)h(in)h(the)g(future.)455
+1750 y(In)g(order)e(to)i(compile)g(and)g(test)g(the)h(library)-7
+b(,)27 b(go)g(to)h(the)g Ft(src)f Fy(directory)g(and)g(t)n(yp)r(e)i
+Ft(make)330 1850 y(runtest)p Fy(.)65 b(This)38 b(will)g(compile)f(the)i
+(library)d(and)i(run)g(a)f(couple)h(of)f(tests.)68 b(An)39
+b(example)330 1950 y(output)32 b(from)e(this)i(run)f(is)g(sho)n(wn)f
+(in)h(app)r(endix)h(A.1.)47 b(The)31 b(output)h(is)f(quite)g(v)n(erb)r
+(ose,)f(but)330 2049 y(ev)n(erything)25 b(should)g(w)n(ork)g(\014ne)h
+(if)h(the)f(\\)p Ft(Test)41 b(failed)p Fy(")23 b(string)j(is)f(not)h
+(sho)n(wn)f(in)i(an)n(y)e(of)h(the)330 2149 y(last)h(\014v)n(e)g
+(lines.)330 2249 y(If)h(the)g(test)g(succeeds,)f(the)h(follo)n(wing)e
+(libraries)h(should)g(b)r(e)h(ready)f(for)g(use:)p Black
+455 2395 a Fn(\017)p Black 41 w Ft(libfloatfann.a)21
+b Fy(The)28 b(standard)f(\015oating)g(p)r(oin)n(t)g(library)-7
+b(.)p Black 455 2501 a Fn(\017)p Black 41 w Ft(libdebugfloatfa)o(nn.)o
+(a)26 b Fy(The)32 b(standard)e(\015oating)i(p)r(oin)n(t)g(library)-7
+b(,)31 b(with)i(debug)e(out-)538 2601 y(put.)p Black
+455 2707 a Fn(\017)p Black 41 w Ft(libdoublefann.a)21
+b Fy(The)28 b(\015oating)e(p)r(oin)n(t)i(library)f(with)h(double)f
+(precision)g(\015oats.)p Black 455 2813 a Fn(\017)p Black
+41 w Ft(libdebugdoublef)o(ann)o(.a)13 b Fy(The)20 b(\015oating)f(p)r
+(oin)n(t)h(library)f(with)h(double)g(precision)f(\015oats)538
+2913 y(and)27 b(debug)g(output.)p Black 455 3019 a Fn(\017)p
+Black 41 w Ft(libfixedfann.a)21 b Fy(The)28 b(\014xed)g(p)r(oin)n(t)g
+(library)-7 b(.)p Black 455 3126 a Fn(\017)p Black 41
+w Ft(libdebugfixedfa)o(nn.)o(a)21 b Fy(The)28 b(\014xed)g(p)r(oin)n(t)f
+(library)g(with)h(debug)f(output.)455 3272 y(These)34
+b(libraries)g(can)h(either)g(b)r(e)g(used)g(directly)g(from)g(this)h
+(directory)-7 b(,)35 b(or)g(installed)g(in)330 3372 y(other)27
+b(directories)f(lik)n(e)h(e.g.)37 b Ft(/usr/lib/)p Fy(.)330
+3600 y Fo(5.2)112 b(Getting)38 b(Started)330 3753 y Fy(An)26
+b(ANN)h(is)f(normally)f(run)h(in)g(t)n(w)n(o)f(di\013eren)n(t)h(mo)r
+(des,)g(a)g(training)f(mo)r(de)h(and)g(an)f(execution)330
+3853 y(mo)r(de.)53 b(Although)33 b(it)g(is)g(p)r(ossible)g(to)g(do)f
+(this)h(in)h(the)f(same)f(program,)h(I)g(will)g(recommend)330
+3952 y(doing)27 b(it)h(in)g(t)n(w)n(o)f(di\013eren)n(t)g(programs.)455
+4052 y(There)h(are)f(sev)n(eral)g(reasons)g(to)h(wh)n(y)g(it)h(is)g
+(usually)f(a)g(go)r(o)r(d)g(idea)g(to)h(write)f(the)h(training)330
+4151 y(and)34 b(execution)f(in)h(t)n(w)n(o)f(di\013eren)n(t)h
+(programs,)f(but)h(the)g(most)g(ob)n(vious)e(is)i(the)g(fact)f(that)h
+(a)330 4251 y(t)n(ypical)27 b(ANN)i(system)e(is)g(only)h(trained)f
+(once,)g(while)h(it)g(is)f(executed)h(man)n(y)f(times.)330
+4463 y Fs(5.2.1)94 b(The)32 b(T)-8 b(raining)330 4616
+y Fy(Figure)31 b(9)h(sho)n(ws)f(a)h(simple)g(program)e(whic)n(h)i
+(trains)f(an)h(ANN)h(with)f(a)g(data)g(set)g(and)g(then)330
+4715 y(sa)n(v)n(es)27 b(the)i(ANN)g(to)f(a)g(\014le.)40
+b(The)28 b(data)g(is)h(for)f(the)h(binary)e(function)i(X)n(OR)f(and)h
+(is)f(sho)n(wn)g(in)330 4815 y(\014gure)f(10,)g(but)h(it)g(could)f(ha)n
+(v)n(e)g(b)r(een)h(data)f(represen)n(ting)f(all)h(kinds)h(of)f
+(problems.)455 4915 y(F)-7 b(our)27 b(functions)h(are)e(used)i(in)g
+(this)f(program)f(and)h(often)h(these)g(are)e(the)i(only)g(four)f
+(func-)330 5014 y(tions)i(y)n(ou)f(will)h(need,)g(when)h(y)n(ou)e
+(train)g(an)h(ANN.)h(I)f(will)g(no)n(w)f(explain)h(ho)n(w)f(eac)n(h)g
+(of)h(these)330 5114 y(functions)f(w)n(ork.)p Black 330
+5272 a Fs(fann)p 517 5272 29 4 v 35 w(create)p Black
+42 w Fy(Creates)40 b(the)g(ANN)i(with)f(a)f(connection)g(rate)f(\(1)h
+(for)g(a)g(fully)h(connected)538 5372 y(net)n(w)n(ork\),)24
+b(a)h(learning)f(rate)h(\(0.7)f(is)h(a)g(reasonable)e(default\))j(and)f
+(a)g(parameter)f(telling)538 5471 y(ho)n(w)19 b(man)n(y)g(la)n(y)n(ers)
+f(the)i(net)n(w)n(ork)f(should)g(consist)h(of)g(\(including)g(the)g
+(input)h(and)f(output)538 5571 y(la)n(y)n(er\).)32 b(After)20
+b(this)f(parameter)e(follo)n(ws)h(one)h(parameter)e(for)i(eac)n(h)f(la)
+n(y)n(er)f(\(starting)i(with)538 5670 y(the)28 b(input)g(la)n(y)n(er\))
+e(telling)i(ho)n(w)f(man)n(y)g(neurons)f(should)i(b)r(e)g(in)g(eac)n(h)
+e(la)n(y)n(er.)p Black 1788 5919 a(23)p Black eop end
+%%Page: 24 28
+TeXDict begin 24 27 bop Black 330 70 a Fp(5.2)82 b(Getting)28
+b(Started)1513 b(5)83 b(USER'S)28 b(GUIDE)p 330 103 3000
+4 v Black Black Black Black 330 343 a Fe(#include)i("floatfann.h")330
+476 y(int)g(main\(\))330 542 y({)577 608 y(const)g(float)g
+(connection_rate)f(=)i(1;)577 675 y(const)f(float)g(learning_rate)g(=)g
+(0.7;)577 741 y(const)g(unsigned)g(int)h(num_layers)e(=)i(3;)577
+808 y(const)f(unsigned)g(int)h(num_input)e(=)i(2;)577
+874 y(const)f(unsigned)g(int)h(num_neurons_hidden)d(=)j(4;)577
+940 y(const)f(unsigned)g(int)h(num_output)e(=)i(1;)577
+1007 y(const)f(float)g(desired_error)g(=)g(0.0001;)577
+1073 y(const)g(unsigned)g(int)h(max_epochs)e(=)i(500000;)577
+1140 y(const)f(unsigned)g(int)h(epochs_between_reports)d(=)i(1000;)577
+1273 y(struct)g(fann)g(*ann)h(=)g(fann_create\(connection_rate,)824
+1339 y(learning_rate,)e(num_layers,)824 1405 y(num_input,)h
+(num_neurons_hidden,)e(num_output\);)577 1538 y
+(fann_train_on_file\(ann,)g("xor.data",)h(max_epochs,)824
+1605 y(epochs_between_reports,)f(desired_error\);)577
+1737 y(fann_save\(ann,)h("xor_float.net"\);)577 1870
+y(fann_destroy\(ann\);)577 2003 y(return)h(0;)330 2070
+y(})330 2252 y Fy(Figure)23 b(9:)35 b(Simple)25 b(program)d(for)h
+(training)h(an)g(ANN)h(on)e(the)i(data)e(in)i Ft(xor.data)c
+Fy(and)j(sa)n(ving)330 2352 y(the)k(net)n(w)n(ork)e(in)i
+Ft(xor)p 1023 2352 27 4 v 30 w(float.net)p Fy(.)p Black
+Black Black Black 330 2487 a Fe(4)j(2)f(1)330 2553 y(0)h(0)330
+2619 y(0)330 2686 y(0)g(1)330 2752 y(1)330 2819 y(1)g(0)330
+2885 y(1)330 2951 y(1)g(1)330 3018 y(0)330 3201 y Fy(Figure)25
+b(10:)35 b(The)25 b(\014le)h Ft(xor.data)p Fy(,)d(used)i(to)h(train)f
+(the)h(xor)e(function.)37 b(The)26 b(\014rst)f(line)h(consists)330
+3300 y(of)g(three)g(n)n(um)n(b)r(ers:)36 b(The)26 b(\014rst)g(is)g(the)
+h(n)n(um)n(b)r(er)f(of)g(training)g(pairs)f(in)i(the)f(\014le,)h(the)g
+(second)e(is)330 3400 y(the)h(n)n(um)n(b)r(er)g(of)g(inputs)g(and)g
+(the)h(third)f(is)g(the)g(n)n(um)n(b)r(er)g(of)g(outputs.)36
+b(The)26 b(rest)g(of)g(the)g(\014le)g(is)330 3499 y(the)i(actual)f
+(training)g(data,)g(consisting)g(of)g(one)h(line)f(with)i(inputs,)f
+(one)f(with)h(outputs)g(etc.)p Black Black 330 3764 a
+Fs(fann)p 517 3764 29 4 v 35 w(train)p 754 3764 V 35
+w(on)p 890 3764 V 34 w(\014le)p Black 41 w Fy(T)-7 b(rains)36
+b(the)i(ANN)h(for)e(a)g(maxim)n(um)h(of)44 b Ft(max)p
+2589 3764 27 4 v 30 w(epochs)35 b Fy(ep)r(o)r(c)n(hs)3156
+3734 y Fu(5)3193 3764 y Fy(,)40 b(or)538 3863 y(un)n(til)35
+b(the)h(mean)g(square)e(error)f(is)j(lo)n(w)n(er)e(than)h
+Ft(desired)p 2433 3863 V 29 w(error)p Fy(.)58 b(A)36
+b(status)f(line)h(is)538 3963 y(written)27 b(ev)n(ery)h
+Ft(epochs)p 1318 3963 V 29 w(between)p 1655 3963 V 28
+w(reports)d Fy(ep)r(o)r(c)n(h.)p Black 330 4079 a Fs(fann)p
+517 4079 29 4 v 35 w(sa)m(v)m(e)p Black 42 w Fy(Sa)n(v)n(es)i(the)h
+(ANN)g(to)g(a)f(\014le.)p Black 330 4195 a Fs(fann)p
+517 4195 V 35 w(destro)m(y)p Black 42 w Fy(Destro)n(ys)f(the)i(ANN)h
+(and)e(deallo)r(cates)g(the)h(memory)e(it)i(uses.)455
+4376 y(The)35 b(con\014guration)g(\014le)h(sa)n(v)n(ed)e(b)n(y)j
+Ft(fann)p 1825 4376 27 4 v 30 w(save)d Fy(con)n(tains)h(all)h
+(information)f(needed)h(in)330 4476 y(order)25 b(to)h(recreate)e(the)j
+(net)n(w)n(ork.)35 b(F)-7 b(or)25 b(more)g(sp)r(eci\014c)i(information)
+e(ab)r(out)h(ho)n(w)f(it)i(is)f(stored)330 4575 y(please)h(lo)r(ok)g
+(in)h(the)g(source)e(co)r(de.)330 4791 y Fs(5.2.2)94
+b(The)32 b(Execution)330 4944 y Fy(Figure)d(11)g(sho)n(ws)f(a)h(simple)
+h(program)e(whic)n(h)h(executes)g(a)g(single)h(input)g(on)f(the)h(ANN,)
+h(the)330 5044 y(output)j(from)f(this)h(program)d(can)i(b)r(e)h(seen)f
+(in)g(\014gure)g(12.)53 b(The)34 b(program)d(in)n(tro)r(duces)i(t)n(w)n
+(o)330 5144 y(new)c(functions)g(whic)n(h)f(w)n(as)g(not)g(used)h(in)f
+(the)h(training)f(pro)r(cedure)g(and)g(it)h(also)f(in)n(tro)r(duces)330
+5243 y(the)g Ft(fann)p 654 5243 V 30 w(type)e Fy(t)n(yp)r(e.)37
+b(I)27 b(will)h(no)n(w)f(explain)h(the)g(t)n(w)n(o)e(functions)i(and)g
+(the)g(t)n(yp)r(e:)p Black 330 5425 a Fs(fann)p 517 5425
+29 4 v 35 w(create)p 804 5425 V 35 w(from)p 1035 5425
+V 34 w(\014le)p Black 41 w Fy(Creates)h(the)g(net)n(w)n(ork)g(from)g(a)
+g(con\014guration)f(\014le,)i(whic)n(h)f(ha)n(v)n(e)538
+5524 y(earlier)d(b)r(een)i(sa)n(v)n(ed)e(b)n(y)h(the)h(training)f
+(program)f(in)h(\014gure)g(9.)p Black 330 5593 1200 4
+v 422 5647 a Fr(5)457 5670 y Fq(During)c(one)i(ep)r(o)r(c)n(h)g(eac)n
+(h)f(of)g(the)g(training)g(pairs)f(are)g(trained)i(for)d(one)j
+(iteration.)p Black Black 1788 5919 a Fy(24)p Black eop
+end
+%%Page: 25 29
+TeXDict begin 25 28 bop Black 330 70 a Fp(5.3)82 b(Adv)-5
+b(anced)28 b(Usage)1487 b(5)83 b(USER'S)28 b(GUIDE)p
+330 103 3000 4 v Black Black Black Black 330 343 a Fe(#include)i
+(<stdio.h>)330 409 y(#include)g("floatfann.h")330 542
+y(int)g(main\(\))330 608 y({)577 675 y(fann_type)g(*calc_out;)577
+741 y(fann_type)g(input[2];)577 874 y(struct)g(fann)g(*ann)h(=)g
+(fann_create_from_file\("xor_float.net"\);)577 1007 y(input[0])f(=)h
+(0;)577 1073 y(input[1])f(=)h(1;)577 1140 y(calc_out)f(=)h
+(fann_run\(ann,)e(input\);)577 1273 y(printf\("xor)g(test)i
+(\(\045f,\045f\))f(->)g(\045f\\n",)824 1339 y(input[0],)g(input[1],)f
+(calc_out[0]\);)577 1472 y(fann_destroy\(ann\);)577 1538
+y(return)h(0;)330 1605 y(})330 1787 y Fy(Figure)36 b(11:)54
+b(Creates)36 b(an)g(ANN)i(from)e(the)h(\014le)g Ft(xor)p
+2057 1787 27 4 v 30 w(float.net)c Fy(and)j(runs)h(one)f(arra)n(y)e(of)
+330 1887 y(inputs)28 b(through)f(the)h(ANN.)p Black Black
+Black Black 330 2043 a Fe(xor)i(test)h(\(0.000000,1.000000\))d(->)j
+(0.990685)p Black 763 2226 a Fy(Figure)c(12:)36 b(The)28
+b(output)g(from)f(the)h(program)e(seen)h(in)h(\014gure)f(11.)p
+Black Black Black 330 2491 a Fs(fann)p 517 2491 29 4
+v 35 w(run)p Black 42 w Fy(Executes)g(the)g(input)i(on)e(the)g(ANN)i
+(and)e(returns)g(the)g(output)h(from)f(the)h(ANN.)p Black
+330 2607 a Fs(fann)p 517 2607 V 35 w(t)m(yp)s(e)p Black
+42 w Fy(Is)22 b(the)h(t)n(yp)r(e)g(used)g(in)n(ternally)f(b)n(y)g(the)h
+(fann)g(library)-7 b(.)34 b(This)23 b(t)n(yp)r(e)g(is)f
+Ft(float)f Fy(when)538 2707 y(including)k Ft(floatfann.h)p
+Fy(,)c Ft(double)h Fy(when)i(including)i Ft(doublefann.h)19
+b Fy(and)25 b Ft(int)e Fy(when)538 2806 y(including)28
+b Ft(fixedfann.h)p Fy(.)33 b(F)-7 b(or)27 b(further)g(info)h(on)f
+Ft(fixedfann.h)p Fy(,)d(see)j(section)g(5.4.)455 2989
+y(These)c(six)g(functions)h(and)f(one)g(t)n(yp)r(e)h(describ)r(ed)f(in)
+h(these)f(t)n(w)n(o)g(sections,)h(are)e(all)h(y)n(ou)g(will)330
+3089 y(need)i(to)g(use)g(the)g(fann)h(library)-7 b(.)34
+b(Ho)n(w)n(ev)n(er,)24 b(if)i(y)n(ou)e(w)n(ould)h(lik)n(e)f(to)h
+(exploit)g(the)g(full)h(p)r(oten)n(tial)330 3188 y(of)d(the)h(fann)f
+(library)-7 b(,)23 b(I)g(suggest)f(y)n(ou)h(read)f(the)i(\\Adv)-5
+b(anced)23 b(Usage")e(section)i(and)g(preferably)330
+3288 y(the)28 b(rest)f(of)h(this)g(rep)r(ort.)330 3520
+y Fo(5.3)112 b(Adv)-6 b(anced)38 b(Usage)330 3674 y Fy(In)29
+b(this)g(section)g(I)g(will)g(describ)r(e)g(some)f(of)h(the)g(lo)n
+(w-lev)n(el)f(functions)h(and)g(ho)n(w)f(they)h(can)g(b)r(e)330
+3773 y(used)22 b(to)g(obtain)f(more)g(con)n(trol)g(of)h(the)g(fann)g
+(library)-7 b(.)34 b(F)-7 b(or)22 b(a)f(full)i(list)f(of)g(functions,)h
+(please)e(see)330 3873 y Ft(fann.h)f Fy(\(app)r(endix)i(B.1.1\),)h
+(whic)n(h)e(has)h(an)g(explanation)f(of)h(all)f(the)i(fann)f(library)f
+(functions.)330 3972 y(Also)27 b(feel)h(free)g(to)f(tak)n(e)g(a)g(lo)r
+(ok)g(at)g(the)h(rest)g(of)f(the)h(source)e(co)r(de.)455
+4072 y(I)j(will)g(describ)r(e)f(four)h(di\013eren)n(t)g(pro)r(cedures,)
+f(whic)n(h)h(can)f(help)i(to)e(get)h(more)f(p)r(o)n(w)n(er)g(out)330
+4172 y(of)34 b(the)g(fann)h(library:)48 b(\\Adjusting)34
+b(P)n(arameters",)f(\\Net)n(w)n(ork)f(Design",)j(\\Understanding)330
+4271 y(the)28 b(Error-v)-5 b(alue")24 b(and)k(\\T)-7
+b(raining)26 b(and)h(T)-7 b(esting".)330 4487 y Fs(5.3.1)94
+b(Adjusting)31 b(P)m(arameters)330 4640 y Fy(Sev)n(eral)26
+b(di\013eren)n(t)h(parameters)e(exists)i(in)h(an)f(ANN,)h(these)f
+(parameters)e(are)i(giv)n(en)f(defaults)330 4740 y(in)38
+b(the)h(fann)f(library)-7 b(,)40 b(but)e(they)h(can)f(b)r(e)g(adjusted)
+g(at)g(run)n(time.)69 b(There)37 b(is)h(no)g(sense)g(in)330
+4840 y(adjusting)27 b(most)h(of)f(these)h(parameters)d(after)j(the)f
+(training,)g(since)h(it)g(w)n(ould)f(in)n(v)-5 b(alidate)27
+b(the)330 4939 y(training,)h(but)h(it)g(do)r(es)e(mak)n(e)h(sense)g(to)
+g(adjust)h(some)e(of)i(the)f(parameters)f(during)h(training,)330
+5039 y(as)33 b(I)g(will)h(describ)r(e)f(in)h(section)f(5.3.4.)53
+b(Generally)32 b(sp)r(eaking,)i(these)g(are)e(parameters)g(that)330
+5138 y(should)27 b(b)r(e)h(adjusted)g(b)r(efore)g(training.)455
+5238 y(The)40 b(learning)f(rate,)k(as)c(describ)r(ed)h(in)g(equation)g
+(2.11,)i(is)e(one)g(of)g(the)h(most)f(imp)r(or-)330 5338
+y(tan)n(t)e(parameters,)i(but)e(unfortunately)h(it)f(is)h(also)e(a)h
+(parameter)e(whic)n(h)j(is)f(hard)f(to)i(\014nd)330 5437
+y(a)j(reasonable)e(default)i(for.)79 b(I)42 b(ha)n(v)n(e)f(sev)n(eral)f
+(times)j(ended)f(up)g(using)g(0.7,)j(but)d(it)h(is)e(a)330
+5537 y(go)r(o)r(d)c(idea)h(to)g(test)g(sev)n(eral)e(di\013eren)n(t)i
+(learning)f(rates)g(when)h(training)f(a)h(net)n(w)n(ork.)66
+b(The)p Black 1788 5919 a(25)p Black eop end
+%%Page: 26 30
+TeXDict begin 26 29 bop Black 330 70 a Fp(5.3)82 b(Adv)-5
+b(anced)28 b(Usage)1487 b(5)83 b(USER'S)28 b(GUIDE)p
+330 103 3000 4 v Black 330 390 a Fy(learning)j(rate)g(can)h(b)r(e)g
+(set)g(when)g(creating)f(the)h(net)n(w)n(ork,)g(but)h(it)f(can)g(also)f
+(b)r(e)h(set)g(b)n(y)g(the)330 490 y Ft(fann)p 511 490
+27 4 v 30 w(set)p 673 490 V 30 w(learning)p 1055 490
+V 28 w(rate\(struct)39 b(fann)j(*ann,)f(float)h(learning)p
+2699 490 V 28 w(rate\))26 b Fy(function.)455 589 y(The)g(initial)g(w)n
+(eigh)n(ts)f(are)g(random)g(v)-5 b(alues)25 b(b)r(et)n(w)n(een)h(-0.1)f
+(and)h(0.1,)f(if)i(other)e(w)n(eigh)n(ts)g(are)330 689
+y(preferred,)19 b(the)g(w)n(eigh)n(ts)e(can)h(b)r(e)h(altered)f(b)n(y)g
+(the)h Ft(void)42 b(fann)p 2273 689 V 29 w(randomize)p
+2698 689 V 28 w(weights\(struct)330 789 y(fann)g(*ann,)f(fann)p
+990 789 V 30 w(type)h(min)p 1370 789 V 30 w(weight,)f(fann)p
+1925 789 V 30 w(type)h(max)p 2305 789 V 30 w(weight\))25
+b Fy(function.)455 888 y(The)35 b(standard)g(activ)-5
+b(ation)36 b(function)g(is)g(the)g(sigmoid)f(activ)-5
+b(ation)35 b(function,)k(but)d(it)g(is)330 988 y(also)22
+b(p)r(ossible)g(to)g(use)h(the)g(threshold)f(activ)-5
+b(ation)22 b(function.)36 b(I)23 b(hop)r(e)g(to)f(add)h(more)f(activ)-5
+b(ation)330 1088 y(functions)27 b(in)f(the)h(future,)f(but)h(for)f(no)n
+(w)f(these)i(will)f(do.)36 b(The)26 b(t)n(w)n(o)g(activ)-5
+b(ation)26 b(functions)g(are)330 1187 y(de\014ned)e(as)e
+Ft(FANN)p 890 1187 V 30 w(SIGMOID)e Fy(and)k Ft(FANN)p
+1582 1187 V 29 w(THRESHOLD)c Fy(and)j(are)f(c)n(hosen)h(b)n(y)g(the)g
+(t)n(w)n(o)g(functions:)p Black 455 1368 a Fn(\017)p
+Black 41 w Ft(void)41 b(fann)p 936 1368 V 30 w(set)p
+1098 1368 V 30 w(activation)p 1568 1368 V 28 w(function)p
+1948 1368 V 28 w(hidden\(struct)d(fann)k(*ann,)538 1468
+y(unsigned)e(int)i(activation)p 1549 1468 V 27 w(function\))p
+Black 455 1584 a Fn(\017)p Black 41 w Ft(void)f(fann)p
+936 1584 V 30 w(set)p 1098 1584 V 30 w(activation)p 1568
+1584 V 28 w(function)p 1948 1584 V 28 w(output\(struct)d(fann)k(*ann,)
+538 1683 y(unsigned)e(int)i(activation)p 1549 1683 V
+27 w(function\))455 1864 y Fy(These)24 b(t)n(w)n(o)f(functions)i(set)f
+(the)h(activ)-5 b(ation)24 b(function)h(for)f(the)g(hidden)h(la)n(y)n
+(ers)e(and)h(for)g(the)330 1964 y(output)h(la)n(y)n(er.)34
+b(Lik)n(ewise)23 b(the)i(steepness)f(parameter)f(used)h(in)h(the)f
+(sigmoid)g(function)h(can)f(b)r(e)330 2064 y(adjusted)k(b)n(y)f(these)h
+(t)n(w)n(o)f(functions:)p Black 455 2245 a Fn(\017)p
+Black 41 w Ft(void)41 b(fann)p 936 2245 V 30 w(set)p
+1098 2245 V 30 w(activation)p 1568 2245 V 28 w(hidden)p
+1860 2245 V 28 w(steepness\(struct)c(fann)42 b(*ann,)538
+2345 y(fann)p 719 2345 V 29 w(type)g(steepness\))p Black
+455 2460 a Fn(\017)p Black 41 w Ft(void)f(fann)p 936
+2460 V 30 w(set)p 1098 2460 V 30 w(activation)p 1568
+2460 V 28 w(output)p 1860 2460 V 28 w(steepness\(struct)c(fann)42
+b(*ann,)538 2560 y(fann)p 719 2560 V 29 w(type)g(steepness\))455
+2741 y Fy(I)35 b(ha)n(v)n(e)g(c)n(hosen)f(to)i(distinguish)g(b)r(et)n
+(w)n(een)f(the)h(hidden)g(la)n(y)n(ers)e(and)i(the)g(output)g(la)n(y)n
+(er,)330 2841 y(to)c(allo)n(w)e(more)h(\015exibilit)n(y)-7
+b(.)50 b(This)32 b(is)f(esp)r(ecially)h(a)f(go)r(o)r(d)g(idea)h(for)f
+(users)g(w)n(an)n(ting)g(discrete)330 2940 y(output)e(from)f(the)h(net)
+n(w)n(ork,)e(since)h(they)g(can)g(set)h(the)f(activ)-5
+b(ation)28 b(function)h(for)f(the)h(output)330 3040 y(to)e(threshold.)
+36 b(Please)26 b(note,)h(that)g(it)h(is)f(not)g(p)r(ossible)g(to)g
+(train)f(a)h(net)n(w)n(ork)f(when)h(using)g(the)330 3140
+y(threshold)d(activ)-5 b(ation)23 b(function,)j(due)e(to)h(the)f(fact,)
+h(that)g(it)f(is)h(not)f(di\013eren)n(tiable.)35 b(F)-7
+b(or)24 b(more)330 3239 y(information)j(ab)r(out)g(activ)-5
+b(ation)28 b(functions)g(please)e(see)i(section)f(2.2.1.)330
+3455 y Fs(5.3.2)94 b(Net)m(w)m(ork)32 b(Design)330 3608
+y Fy(When)i(creating)f(a)g(net)n(w)n(ork)f(it)i(is)f(necessary)f(to)i
+(de\014ne)f(ho)n(w)g(man)n(y)g(la)n(y)n(ers,)h(neurons)e(and)330
+3708 y(connections)h(it)h(should)g(ha)n(v)n(e.)53 b(If)35
+b(the)f(net)n(w)n(ork)e(b)r(ecome)i(to)r(o)f(large,)h(the)g(ANN)g(will)
+g(ha)n(v)n(e)330 3807 y(di\016culties)29 b(learning)e(and)h(when)g(it)h
+(do)r(es)f(learn)f(it)i(will)f(tend)h(to)f(o)n(v)n(er-\014t)f
+(resulting)g(in)i(p)r(o)r(or)330 3907 y(generalization.)49
+b(If)33 b(the)f(net)n(w)n(ork)f(b)r(ecomes)h(to)r(o)g(small,)h(it)g
+(will)f(not)h(b)r(e)f(able)g(to)g(represen)n(t)330 4006
+y(the)27 b(rules)g(needed)g(to)g(learn)g(the)g(problem)g(and)g(it)g
+(will)g(nev)n(er)f(gain)h(a)g(su\016cien)n(tly)g(lo)n(w)f(error)330
+4106 y(rate.)455 4206 y(The)f(n)n(um)n(b)r(er)g(of)g(hidden)h(la)n(y)n
+(ers)d(is)i(also)f(imp)r(ortan)n(t.)36 b(Generally)24
+b(sp)r(eaking,)h(if)g(the)h(prob-)330 4305 y(lem)21 b(is)f(simple)h(it)
+g(is)f(often)h(enough)f(to)g(ha)n(v)n(e)f(one)i(or)e(t)n(w)n(o)h
+(hidden)h(la)n(y)n(ers,)f(but)h(as)f(the)h(problems)330
+4405 y(get)27 b(more)g(complex,)g(so)g(do)r(es)h(the)g(need)f(for)g
+(more)g(la)n(y)n(ers.)455 4505 y(One)j(w)n(a)n(y)g(of)h(getting)g(a)g
+(large)e(net)n(w)n(ork)h(whic)n(h)h(is)g(not)g(to)r(o)g(complex,)g(is)g
+(to)g(adjust)h(the)330 4604 y Ft(connection)p 775 4604
+V 27 w(rate)i Fy(parameter)f(giv)n(en)h(to)h Ft(fann)p
+1925 4604 V 30 w(create)p Fy(.)57 b(If)35 b(this)g(parameter)f(is)h
+(0.5,)h(the)330 4704 y(constructed)28 b(net)n(w)n(ork)f(will)h(ha)n(v)n
+(e)f(the)i(same)e(amoun)n(t)h(of)g(neurons,)g(but)h(only)f(half)g(as)g
+(man)n(y)330 4803 y(connections.)53 b(It)34 b(is)f(di\016cult)i(to)e
+(sa)n(y)f(whic)n(h)h(problems)g(this)h(approac)n(h)d(is)i(useful)h
+(for,)g(but)330 4903 y(if)g(y)n(ou)e(ha)n(v)n(e)g(a)h(problem)g(whic)n
+(h)g(can)g(b)r(e)h(solv)n(ed)e(b)n(y)h(a)g(fully)g(connected)h(net)n(w)
+n(ork,)f(then)h(it)330 5003 y(w)n(ould)27 b(b)r(e)h(a)f(go)r(o)r(d)g
+(idea)h(to)f(see)g(if)h(it)g(still)g(w)n(orks)e(after)h(remo)n(ving)f
+(half)i(the)g(connections.)330 5218 y Fs(5.3.3)94 b(Understanding)32
+b(the)g(Error-v)-5 b(alue)330 5372 y Fy(The)32 b(mean)f(square)f(error)
+g(v)-5 b(alue)31 b(is)h(calculated)f(while)g(the)h(ANN)h(is)e(b)r(eing)
+h(trained.)48 b(Some)330 5471 y(functions)39 b(are)f(implemen)n(ted,)k
+(to)d(use)g(and)f(manipulate)h(this)g(error)e(v)-5 b(alue.)70
+b(The)39 b Ft(float)330 5571 y(fann)p 511 5571 V 30 w(get)p
+673 5571 V 30 w(error\(struct)f(fann)k(*ann\))20 b Fy(function)i
+(returns)e(the)i(error)d(v)-5 b(alue)22 b(and)f(the)h
+Ft(void)330 5670 y(fann)p 511 5670 V 30 w(reset)p 761
+5670 V 29 w(error\()41 b(struct)g(fann)h(*ann\))26 b
+Fy(resets)g(the)i(error)d(v)-5 b(alue.)37 b(I)27 b(will)h(no)n(w)e
+(explain)p Black 1788 5919 a(26)p Black eop end
+%%Page: 27 31
+TeXDict begin 27 30 bop Black 330 70 a Fp(5.3)82 b(Adv)-5
+b(anced)28 b(Usage)1487 b(5)83 b(USER'S)28 b(GUIDE)p
+330 103 3000 4 v Black 330 390 a Fy(ho)n(w)e(the)h(mean)f(square)f
+(error)g(v)-5 b(alue)26 b(is)g(calculated,)h(to)f(giv)n(e)g(an)g(idea)g
+(of)g(the)h(v)-5 b(alue's)26 b(abilit)n(y)330 490 y(to)h(rev)n(eal)g
+(the)h(qualit)n(y)f(of)g(the)h(training.)455 589 y(If)f
+Fm(d)g Fy(is)g(the)h(desired)e(output)i(of)f(an)g(output)h(neuron)e
+(and)h Fm(y)j Fy(is)d(the)g(actual)g(output)h(of)f(the)330
+689 y(neuron,)k(the)h(square)e(error)f(is)i(\()p Fm(d)21
+b Fn(\000)f Fm(y)s Fy(\))1597 659 y Fu(2)1635 689 y Fy(.)47
+b(If)31 b(t)n(w)n(o)g(output)g(neurons)g(exists,)g(then)h(the)f(mean)
+330 789 y(square)26 b(error)g(for)h(these)h(t)n(w)n(o)e(neurons)h(is)h
+(the)g(a)n(v)n(erage)c(of)k(the)g(t)n(w)n(o)f(square)f(errors.)455
+888 y(When)e(training)f(with)h(the)g Ft(fann)p 1508 888
+27 4 v 30 w(train)p 1758 888 V 29 w(on)p 1875 888 V 31
+w(file)e Fy(function,)j(an)f(error)e(v)-5 b(alue)23 b(is)h(prin)n(ted.)
+330 988 y(This)j(error)d(v)-5 b(alue)26 b(is)h(the)g(mean)f(square)f
+(error)g(for)h(all)g(the)h(training)f(data.)36 b(Meaning)26
+b(that)h(it)330 1088 y(is)g(the)h(a)n(v)n(erage)d(of)j(all)f(the)h
+(square)e(errors)g(in)i(eac)n(h)e(of)i(the)g(training)f(pairs.)330
+1303 y Fs(5.3.4)94 b(T)-8 b(raining)32 b(and)g(T)-8 b(esting)330
+1457 y Fy(Normally)40 b(it)i(will)f(b)r(e)h(su\016cien)n(t)f(to)g(use)g
+(the)h Ft(fann)p 2074 1457 V 30 w(train)p 2324 1457 V
+29 w(on)p 2441 1457 V 30 w(file)e Fy(training)g(function,)330
+1556 y(but)26 b(some)f(times)h(y)n(ou)f(w)n(an)n(t)g(to)h(ha)n(v)n(e)f
+(more)f(con)n(trol)h(and)g(y)n(ou)g(will)h(ha)n(v)n(e)f(to)g(write)h(a)
+f(custom)330 1656 y(training)20 b(lo)r(op.)34 b(This)20
+b(could)h(b)r(e)f(b)r(ecause)h(y)n(ou)e(w)n(ould)h(lik)n(e)g(another)g
+(stop)g(criteria,)h(or)e(b)r(ecause)330 1756 y(y)n(ou)36
+b(w)n(ould)h(lik)n(e)g(to)g(adjust)g(some)f(of)h(the)h(parameters)d
+(during)i(training.)64 b(Another)37 b(stop)330 1855 y(criteria)24
+b(than)g(the)h(v)-5 b(alue)25 b(of)g(the)g(com)n(bined)f(mean)h(square)
+e(error)g(could)h(b)r(e)h(that)g(eac)n(h)f(of)h(the)330
+1955 y(training)i(pairs)g(should)g(ha)n(v)n(e)f(a)h(mean)h(square)e
+(error)g(lo)n(w)n(er)g(than)i(a)f(giv)n(en)f(v)-5 b(alue.)p
+Black Black Black 330 2111 a Fe(struct)30 b(fann_train_data)f(*data)h
+(=)h(fann_read_train_from_file\(filename\);)330 2177
+y(for\(i)f(=)h(1;)g(i)f(<=)h(max_epochs;)e(i++\){)577
+2244 y(fann_reset_error\(ann\);)577 2310 y(for\(j)h(=)h(0;)g(j)f(!=)h
+(data->num_data;)e(j++\){)824 2377 y(fann_train\(ann,)g
+(data->input[j],)g(data->output[j]\);)577 2443 y(})577
+2509 y(if\(fann_get_error\(ann\))f(<)j(desired_error\){)824
+2576 y(break;)577 2642 y(})330 2709 y(})330 2775 y
+(fann_reset_error\(ann\);)330 2841 y(fann_destroy_train\(data\);)330
+3024 y Fy(Figure)d(13:)38 b(The)29 b(in)n(ternals)f(of)h(the)g
+Ft(fann)p 1672 3024 V 30 w(train)p 1922 3024 V 29 w(on)p
+2039 3024 V 30 w(file)f Fy(function,)h(without)g(writing)g(the)330
+3124 y(status)e(line.)p Black 455 3307 a(The)f(in)n(ternals)f(of)h(the)
+g Ft(fann)p 1377 3307 V 30 w(train)p 1627 3307 V 29 w(on)p
+1744 3307 V 31 w(file)e Fy(function)j(is)f(sho)n(wn)f(in)h(a)g
+(simpli\014ed)g(form)330 3406 y(in)40 b(\014gure)g(13.)73
+b(This)40 b(piece)g(of)g(co)r(de)g(in)n(tro)r(duces)f(the)h
+Ft(void)i(fann)p 2564 3406 V 30 w(train\(struct)d(fann)330
+3506 y(*ann,)j(fann)p 773 3506 V 29 w(type)g(*input,)f(fann)p
+1545 3506 V 30 w(type)h(*desired)p 2145 3506 V 28 w(output\))35
+b Fy(function,)42 b(whic)n(h)d(trains)330 3606 y(the)34
+b(ANN)h(for)e(one)h(iteration)f(with)h(one)g(pair)f(of)g(inputs)i(and)e
+(outputs)i(and)e(also)g(up)r(dates)330 3705 y(the)39
+b(mean)f(square)f(error.)67 b(The)39 b Ft(fann)p 1619
+3705 V 29 w(train)p 1868 3705 V 30 w(data)e Fy(structure)g(is)i(also)e
+(in)n(tro)r(duced,)k(this)330 3805 y(structure)27 b(is)h(a)f(con)n
+(tainer)f(for)h(the)i(training)d(data)i(in)g(the)g(\014le)g(describ)r
+(ed)f(in)h(\014gure)f(10.)36 b(The)330 3905 y(structure)30
+b(can)h(b)r(e)g(used)g(to)f(train)h(the)g(ANN,)h(but)f(it)g(can)g(also)
+e(b)r(e)j(used)e(to)h(test)g(the)g(ANN)330 4004 y(with)d(data)f(whic)n
+(h)h(it)g(has)f(not)g(b)r(een)h(trained)g(with.)p Black
+Black Black 330 4144 a Fe(struct)i(fann_train_data)f(*data)h(=)h
+(fann_read_train_from_file\(filename\);)330 4211 y
+(fann_reset_error\(ann\);)330 4277 y(for\(i)f(=)h(0;)g(i)f(!=)h
+(data->num_data;)e(i++\){)577 4343 y(fann_test\(ann,)g(data->input[i],)
+g(data->output[i]\);)330 4410 y(})330 4476 y(printf\("Mean)g(Square)h
+(Error:)h(\045f\\n",)f(fann_get_error\(ann\)\);)330 4543
+y(fann_destroy_train\(data\);)p Black 433 4725 a Fy(Figure)d(14:)36
+b(T)-7 b(est)28 b(all)f(of)g(the)h(data)f(in)h(a)g(\014le)f(and)h
+(calculates)e(the)i(mean)g(square)e(error.)p Black Black
+455 4941 a(Figure)21 b(14)g(sho)n(ws)g(ho)n(w)g(the)h(mean)g(square)f
+(error)f(for)h(a)g(test)i(\014le)f(can)f(b)r(e)i(calculated.)34
+b(This)330 5040 y(piece)g(of)g(co)r(de)g(in)n(tro)r(duces)f(another)h
+(useful)g(function:)51 b Ft(fann)p 2359 5040 V 29 w(type)42
+b(*fann)p 2826 5040 V 30 w(test\(struct)330 5140 y(fann)g(*ann,)f(fann)
+p 990 5140 V 30 w(type)h(*input,)f(fann)p 1763 5140 V
+30 w(type)g(*desired)p 2362 5140 V 29 w(output)g(\))p
+Fy(.)73 b(This)40 b(function)330 5240 y(tak)n(es)26 b(an)h(input)h
+(arra)n(y)d(and)h(a)h(desired)g(output)g(arra)n(y)e(as)i(the)g
+(parameters)e(and)i(returns)g(the)330 5339 y(calculated)g(output.)37
+b(It)28 b(also)f(up)r(dates)h(the)g(mean)f(square)f(error.)p
+Black 1788 5919 a(27)p Black eop end
+%%Page: 28 32
+TeXDict begin 28 31 bop Black 330 70 a Fp(5.4)82 b(Fixed)28
+b(P)n(oin)n(t)e(Usage)1416 b(5)83 b(USER'S)28 b(GUIDE)p
+330 103 3000 4 v Black 330 390 a Fs(5.3.5)94 b(Av)m(oid)32
+b(Ov)m(er-\014tting)330 543 y Fy(With)d(the)f(kno)n(wledge)f(of)h(ho)n
+(w)g(to)g(train)g(and)f(test)i(an)f(ANN,)h(a)e(new)i(approac)n(h)d(to)i
+(training)330 643 y(can)i(b)r(e)h(in)n(tro)r(duced.)46
+b(If)31 b(to)r(o)g(m)n(uc)n(h)f(training)g(is)h(applied)f(to)h(a)f(set)
+h(of)f(data,)h(the)g(ANN)h(will)330 743 y(ev)n(en)n(tually)i(o)n(v)n
+(er-\014t,)h(meaning)f(that)i(it)f(will)g(b)r(e)g(\014tted)h(precisely)
+e(to)h(this)g(set)g(of)g(training)330 842 y(data)30 b(and)g(thereb)n(y)
+f(lo)r(osing)g(generalization.)43 b(It)30 b(is)h(often)f(a)g(go)r(o)r
+(d)f(idea)h(to)g(test,)h(ho)n(w)f(go)r(o)r(d)330 942
+y(an)f(ANN)h(p)r(erforms)e(on)h(data)g(that)g(it)h(has)f(not)g(seen)g
+(b)r(efore.)41 b(T)-7 b(esting)29 b(with)g(data)g(not)g(seen)330
+1042 y(b)r(efore,)k(can)g(b)r(e)f(done)h(while)f(training,)h(to)g(see)f
+(ho)n(w)g(m)n(uc)n(h)g(training)g(is)g(required)g(in)g(order)330
+1141 y(to)h(p)r(erform)g(w)n(ell)g(without)g(o)n(v)n(er-\014tting.)52
+b(The)34 b(testing)f(can)g(either)g(b)r(e)g(done)g(b)n(y)g(hand,)i(or)
+330 1241 y(an)30 b(automatic)f(test)h(can)f(b)r(e)i(applied,)f(whic)n
+(h)g(stops)f(the)h(training)g(when)g(the)g(mean)f(square)330
+1340 y(error)d(of)h(the)h(test)g(data)f(is)h(not)f(impro)n(ving)g(an)n
+(ymore.)330 1556 y Fs(5.3.6)94 b(Adjusting)31 b(P)m(arameters)i(During)
+f(T)-8 b(raining)330 1710 y Fy(If)37 b(a)g(v)n(ery)e(lo)n(w)i(mean)f
+(square)g(error)f(is)i(required)e(it)j(can)e(sometimes)h(b)r(e)g(a)f
+(go)r(o)r(d)h(idea)f(to)330 1809 y(gradually)23 b(decrease)g(the)h
+(learning)g(rate)f(during)h(training,)h(in)f(order)f(to)i(mak)n(e)e
+(the)i(adjusting)330 1909 y(of)30 b(w)n(eigh)n(ts)e(more)h(subtle.)44
+b(If)30 b(more)e(precision)h(is)h(required,)f(it)h(migh)n(t)g(also)e(b)
+r(e)i(a)f(go)r(o)r(d)g(idea)330 2008 y(to)e(use)h(double)f(precision)g
+(\015oats)g(instead)g(of)h(standard)f(\015oats.)455 2108
+y(The)g(threshold)g(activ)-5 b(ation)27 b(function)h(is)g(faster)f
+(than)g(the)h(sigmoid)f(function,)h(but)g(since)330 2208
+y(it)g(is)g(not)f(p)r(ossible)g(to)h(train)f(with)h(this)g(function,)g
+(I)g(will)g(suggest)e(another)h(approac)n(h:)455 2307
+y(While)i(training)e(the)i(ANN)h(y)n(ou)e(could)g(sligh)n(tly)g
+(increase)f(the)i(steepness)f(parameter)f(of)330 2407
+y(the)h(sigmoid)f(function.)38 b(This)28 b(w)n(ould)f(mak)n(e)g(the)h
+(sigmoid)f(function)i(more)e(steep)g(and)h(mak)n(e)330
+2507 y(it)k(lo)r(ok)g(more)f(lik)n(e)g(the)i(threshold)e(function.)51
+b(After)32 b(this)g(training)f(session)g(y)n(ou)g(could)h(set)330
+2606 y(the)j(activ)-5 b(ation)35 b(function)g(to)g(the)g(threshold)f
+(function)h(and)g(the)g(ANN)h(w)n(ould)e(w)n(ork)g(with)330
+2706 y(this)27 b(activ)-5 b(ation)27 b(function.)37 b(This)27
+b(approac)n(h)e(will)i(not)g(w)n(ork)f(on)g(all)h(kinds)g(of)g
+(problems,)f(but)330 2805 y(I)i(ha)n(v)n(e)f(successfully)g(tested)i
+(it)f(on)g(the)g(X)n(OR)g(function.)39 b(The)28 b(source)e(co)r(de)i
+(for)g(this)g(can)g(b)r(e)330 2905 y(seen)f(in)h(app)r(endix)g(B.2.3)
+330 3137 y Fo(5.4)112 b(Fixed)39 b(P)m(oin)m(t)e(Usage)330
+3291 y Fy(It)31 b(is)g(p)r(ossible)f(to)g(run)h(the)g(ANN)g(with)h
+(\014xed)e(p)r(oin)n(t)h(n)n(um)n(b)r(ers)f(\(in)n(ternally)g(represen)
+n(ted)g(as)330 3390 y(in)n(tegers\).)36 b(This)27 b(option)g(is)g(only)
+g(in)n(tended)g(for)g(use)g(on)g(computers)f(with)i(no)f(\015oating)f
+(p)r(oin)n(t)330 3490 y(pro)r(cessor,)31 b(lik)n(e)h(e.g.)51
+b(the)33 b(iP)-7 b(A)n(Q,)31 b(but)i(a)f(minor)g(p)r(erformance)f
+(enhancemen)n(t)h(can)g(also)g(b)r(e)330 3590 y(seen)24
+b(on)f(most)h(mo)r(dern)f(computers)g(\(see)h(section)f(6)h(\\Benc)n
+(hmarks")d(for)i(further)h(info)g(of)g(the)330 3689 y(p)r(erformance)f
+(of)h(this)g(library\).)34 b(With)25 b(this)f(in)g(mind,)h(I)f(will)g
+(no)n(w)g(describ)r(e)f(ho)n(w)g(y)n(ou)g(should)330
+3789 y(use)k(the)g(\014xed)g(p)r(oin)n(t)g(v)n(ersion)e(of)i(the)g
+(fann)g(library)-7 b(.)36 b(If)27 b(y)n(ou)f(do)h(not)g(kno)n(w,)f(ho)n
+(w)g(\014xed)h(p)r(oin)n(t)330 3888 y(n)n(um)n(b)r(ers)g(w)n(ork,)f
+(please)h(read)g(section)g(3.2)g(and)g(section)h(4.4.)330
+4104 y Fs(5.4.1)94 b(T)-8 b(raining)32 b(a)g(Fixed)f(P)m(oin)m(t)i(ANN)
+330 4257 y Fy(The)19 b(ANN)i(cannot)d(b)r(e)i(trained)f(in)h(\014xed)f
+(p)r(oin)n(t,)i(whic)n(h)f(is)f(wh)n(y)g(the)h(training)e(part)h(is)g
+(basically)330 4357 y(the)26 b(same)g(as)f(for)g(\015oating)g(p)r(oin)n
+(t)i(n)n(um)n(b)r(ers.)35 b(The)26 b(only)g(di\013erence)g(is)g(that)g
+(y)n(ou)f(should)h(sa)n(v)n(e)330 4457 y(the)39 b(ANN)h(as)e(\014xed)h
+(p)r(oin)n(t.)70 b(This)39 b(is)g(done)f(b)n(y)g(the)i
+Ft(int)i(fann)p 2458 4457 27 4 v 30 w(save)p 2664 4457
+V 29 w(to)p 2781 4457 V 31 w(fixed\(struct)330 4556 y(fann)g(*ann,)f
+(const)h(char)g(*configuration)p 1910 4556 V 25 w(file\))30
+b Fy(function.)50 b(This)32 b(function)h(sa)n(v)n(es)c(a)330
+4656 y(\014xed)e(p)r(oin)n(t)g(v)n(ersion)f(of)h(the)g(ANN,)h(but)g(it)
+g(also)d(do)r(es)i(some)g(analysis,)f(in)h(order)f(to)h(\014nd)g(out)
+330 4756 y(where)f(the)h(decimal)f(p)r(oin)n(t)h(should)f(b)r(e.)37
+b(The)26 b(result)g(of)h(this)f(analysis)f(is)i(returned)f(from)g(the)
+330 4855 y(function.)455 4955 y(The)g(decimal)g(p)r(oin)n(t)g(returned)
+g(from)g(the)g(function)h(is)f(an)g(indicator)f(of,)i(ho)n(w)e(man)n(y)
+h(bits)330 5054 y(is)d(used)f(for)g(the)h(fractional)f(part)g(of)h(the)
+g(\014xed)g(p)r(oin)n(t)f(n)n(um)n(b)r(ers.)35 b(If)23
+b(this)g(n)n(um)n(b)r(er)g(is)f(negativ)n(e,)330 5154
+y(there)k(will)g(most)g(lik)n(ely)f(b)r(e)i(in)n(teger)e(o)n(v)n
+(er\015o)n(w)e(when)k(running)e(the)i(library)d(with)j(\014xed)f(p)r
+(oin)n(t)330 5254 y(n)n(um)n(b)r(ers)j(and)h(this)g(should)g(b)r(e)g(a)
+n(v)n(oided.)43 b(F)-7 b(urthermore,)29 b(if)h(the)h(decimal)e(p)r(oin)
+n(t)h(is)g(to)r(o)g(lo)n(w)330 5353 y(\(e.g.)37 b(lo)n(w)n(er)26
+b(than)h(5\),)h(it)g(is)f(probably)g(not)h(a)f(go)r(o)r(d)g(idea)g(to)g
+(use)h(the)g(\014xed)f(p)r(oin)n(t)h(v)n(ersion.)455
+5453 y(Please)37 b(note,)42 b(that)e(the)f(inputs)h(to)f(net)n(w)n
+(orks)e(that)j(should)f(b)r(e)g(used)g(in)h(\014xed)f(p)r(oin)n(t)330
+5553 y(should)27 b(b)r(e)h(b)r(et)n(w)n(een)g(-1)f(and)g(1.)p
+Black 1788 5919 a(28)p Black eop end
+%%Page: 29 33
+TeXDict begin 29 32 bop Black 330 70 a Fp(5.4)82 b(Fixed)28
+b(P)n(oin)n(t)e(Usage)1416 b(5)83 b(USER'S)28 b(GUIDE)p
+330 103 3000 4 v Black 455 390 a Fy(An)k(example)g(of)g(a)g(program)e
+(written)j(to)f(supp)r(ort)g(training)f(in)i(b)r(oth)g(\014xed)f(p)r
+(oin)n(t)g(and)330 490 y(\015oating)27 b(p)r(oin)n(t)h(n)n(um)n(b)r
+(ers)f(is)g(giv)n(en)g(in)h(app)r(endix)g(B.2.1)e Ft(xor)p
+2291 490 27 4 v 30 w(train.c)p Fy(.)330 706 y Fs(5.4.2)94
+b(Running)31 b(a)h(Fixed)f(P)m(oin)m(t)i(ANN)330 859
+y Fy(Running)22 b(a)g(\014xed)g(p)r(oin)n(t)h(ANN)g(is)f(done)f(m)n(uc)
+n(h)h(lik)n(e)g(running)g(an)g(ordinary)e(ANN.)j(The)f(di\013er-)330
+958 y(ence)f(is)g(that)h(the)f(inputs)h(and)f(outputs)h(should)f(b)r(e)
+g(in)h(\014xed)f(p)r(oin)n(t)h(represen)n(tation.)33
+b(F)-7 b(urther-)330 1058 y(more)30 b(the)h(inputs)g(should)g(b)r(e)g
+(restricted)f(to)g(b)r(e)i(b)r(et)n(w)n(een)e Fn(\000)p
+Fm(mul)r(tipl)r(ier)g Fy(and)h(+)p Fm(mul)r(tipl)r(ier)330
+1158 y Fy(to)23 b(a)n(v)n(oid)e(in)n(teger)h(o)n(v)n(er\015o)n(w,)f
+(where)i(the)g Fm(mul)r(tipl)r(ier)g Fy(is)f(the)i(v)-5
+b(alue)22 b(returned)h(from)f Ft(unsigned)330 1257 y(int)42
+b(fann)p 685 1257 V 30 w(get)p 847 1257 V 30 w(multiplier\(struct)37
+b(fann)42 b(*ann\))p Fy(.)e(This)29 b(m)n(ultiplier)h(is)f(the)h(v)-5
+b(alue)29 b(that)330 1357 y(a)37 b(\015oating)g(p)r(oin)n(t)h(n)n(um)n
+(b)r(er)f(should)g(b)r(e)h(m)n(ultiplied)g(with,)j(in)d(order)e(to)h(b)
+r(e)h(a)f(\014xed)h(p)r(oin)n(t)330 1457 y(n)n(um)n(b)r(er,)f(lik)n
+(ewise)e(the)h(output)g(of)g(the)g(ANN)h(should)e(b)r(e)h(divided)g(b)n
+(y)f(this)h(m)n(ultiplier)g(in)330 1556 y(order)26 b(to)i(b)r(e)g(b)r
+(et)n(w)n(een)f(zero)g(and)g(one.)455 1656 y(T)-7 b(o)24
+b(help)g(using)g(\014xed)h(p)r(oin)n(t)f(n)n(um)n(b)r(ers,)h(another)e
+(function)i(is)f(pro)n(vided.)35 b Ft(unsigned)40 b(int)330
+1756 y(fann)p 511 1756 V 30 w(get)p 673 1756 V 30 w(decimal)p
+1011 1756 V 28 w(point\(struct)f(fann)j(*ann\))g Fy(whic)n(h)i(returns)
+f(the)h(decimal)g(p)r(oin)n(t.)330 1855 y(The)36 b(decimal)f(p)r(oin)n
+(t)h(is)f(the)h(p)r(osition)g(dividing)f(the)h(in)n(teger)f(and)g
+(fractional)g(part)g(of)h(the)330 1955 y(\014xed)26 b(p)r(oin)n(t)g(n)n
+(um)n(b)r(er)g(and)f(is)h(useful)h(for)e(doing)g(op)r(erations)g(on)g
+(the)i(\014xed)f(p)r(oin)n(t)g(inputs)g(and)330 2054
+y(outputs.)455 2154 y(F)-7 b(or)30 b(an)g(example)h(of)g(a)f(program)f
+(written)i(to)g(supp)r(ort)g(b)r(oth)g(\014xed)g(p)r(oin)n(t)g(and)g
+(\015oating)330 2254 y(p)r(oin)n(t)d(n)n(um)n(b)r(ers)f(please)g(see)g
+Ft(xor)p 1398 2254 V 30 w(test.c)e Fy(in)j(app)r(endix)g(B.2.2.)330
+2469 y Fs(5.4.3)94 b(Precision)31 b(of)h(a)g(Fixed)f(P)m(oin)m(t)i(ANN)
+330 2623 y Fy(The)38 b(\014xed)h(p)r(oin)n(t)g(ANN)g(is)f(not)h(as)e
+(precise)h(as)g(a)g(\015oating)f(p)r(oin)n(t)i(ANN,)g(furthermore)f(it)
+330 2722 y(appro)n(ximates)h(the)i(sigmoid)f(function)h(b)n(y)g(a)f
+(step)n(wise)g(linear)g(function.)77 b(Therefore,)43
+b(it)330 2822 y(is)d(alw)n(a)n(ys)e(a)i(go)r(o)r(d)f(idea)h(to)g(test)h
+(the)f(\014xed)g(p)r(oin)n(t)h(ANN)g(after)f(loading)f(it)h(from)g(a)g
+(\014le.)330 2922 y(This)33 b(can)g(b)r(e)h(done)f(b)n(y)g(calculating)
+f(the)i(mean)f(square)f(error)f(as)i(describ)r(ed)g(in)g(\014gure)g
+(14.)330 3021 y(There)i(is,)i(ho)n(w)n(ev)n(er,)e(one)g(problem)f(with)
+i(this)g(approac)n(h:)50 b(The)35 b(training)g(data)f(stored)h(in)330
+3121 y(the)h(\014le)h(is)f(in)g(\015oating)f(p)r(oin)n(t)h(format.)62
+b(Therefore,)37 b(it)g(is)f(p)r(ossible)f(to)h(sa)n(v)n(e)f(this)h
+(data)g(in)330 3220 y(a)41 b(\014xed)g(p)r(oin)n(t)h(format)e(from)h
+(within)h(the)g(\015oating)f(p)r(oin)n(t)g(program.)76
+b(This)41 b(is)g(done)g(b)n(y)330 3320 y(the)k(function)g
+Ft(void)d(fann)p 1231 3320 V 29 w(save)p 1436 3320 V
+30 w(train)p 1686 3320 V 29 w(to)p 1803 3320 V 31 w(fixed\(struct)d
+(fann)p 2577 3320 V 29 w(train)p 2826 3320 V 30 w(data*)i(data,)330
+3420 y(char)h(*filename,)d(unsigned)i(int)h(decimal)p
+1907 3420 V 28 w(point\))p Fy(.)35 b(Please)26 b(note)h(that)h(this)g
+(function)330 3519 y(tak)n(es)e(the)h(decimal)f(p)r(oin)n(t)h(as)e(an)i
+(argumen)n(t,)e(meaning)i(that)f(the)h(decimal)g(p)r(oin)n(t)f(should)h
+(b)r(e)330 3619 y(calculated)g(\014rst)g(b)n(y)h(the)g
+Ft(fann)p 1333 3619 V 29 w(save)p 1538 3619 V 30 w(to)p
+1656 3619 V 31 w(fixed)d Fy(function.)p Black 1788 5919
+a(29)p Black eop end
+%%Page: 30 34
+TeXDict begin 30 33 bop Black 2595 70 a Fp(6)83 b(BENCHMARKS)p
+330 103 3000 4 v Black 330 390 a Fv(6)135 b(Benc)l(hmarks)330
+572 y Fy(In)35 b(this)g(section)g(I)g(will)g(run)f(sev)n(eral)g(b)r
+(enc)n(hmarks)f(on)i(di\013eren)n(t)g(ANN)h(libraries)d(in)i(order)330
+672 y(to)40 b(\014nd)h(out)f(ho)n(w)g(w)n(ell)g(the)h(libraries)e(p)r
+(erforms.)74 b(In)40 b(addition)g(to)h(this)f(I)h(will)f(test)h(the)330
+771 y(p)r(erformance)29 b(of)h(di\013eren)n(t)g(v)n(ersions)f(of)h(the)
+h(fann)f(library)-7 b(.)43 b(The)30 b(b)r(enc)n(hmarks)g(are)f(divided)
+330 871 y(in)f(t)n(w)n(o)f(parts:)p Black 330 1054 a
+Fs(Qualit)m(y)32 b(Benc)m(hmark)p Black 43 w Fy(This)24
+b(b)r(enc)n(hmark)f(tests)h(ho)n(w)g(go)r(o)r(d)f(the)i(libraries)e
+(are)g(at)h(training)538 1153 y(di\013eren)n(t)j(ANNs.)38
+b(The)27 b(b)r(enc)n(hmark)g(measures)g(the)h(mean)f(square)f(error)g
+(o)n(v)n(er)g(time.)p Black 330 1319 a Fs(P)m(erformance)33
+b(Benc)m(hmark)p Black 43 w Fy(This)19 b(b)r(enc)n(hmark)g(tests)h(the)
+g(p)r(erformance)f(of)g(the)h(libraries.)538 1419 y(The)32
+b(p)r(erformance)f(is)h(tested)g(on)g(di\013eren)n(t)g(sizes)g(of)g
+(ANNs)g(in)h(order)e(to)h(c)n(hec)n(k)f(ho)n(w)538 1518
+y(w)n(ell)g(the)h(libraries)f(scale.)49 b(The)32 b(p)r(erformance)f(is)
+g(measured)g(as)g(execution-time)h(p)r(er)538 1618 y(connection.)455
+1801 y(The)g(reason)f(for)h(this)h(division)f(is)g(the)h(fact)f(that)h
+(it)g(will)g(not)f(do)g(an)n(y)g(go)r(o)r(d)g(to)g(ha)n(v)n(e)f(a)330
+1900 y(fast)d(library)-7 b(,)26 b(if)i(it)g(is)g(not)f(go)r(o)r(d)g(at)
+h(training.)455 2000 y(The)j(libraries)f(will)h(b)r(e)h(tested)g(b)r
+(oth)f(for)g(qualit)n(y)g(and)g(for)g(p)r(erformance.)47
+b(P)n(art)30 b(of)h(this)330 2100 y(test)24 b(will)f(b)r(e)h(on)f(a)f
+(hand-held)i(Compaq)e(iP)-7 b(A)n(Q)22 b(H3600)g(with)i(a)f(206)e(MHz)j
+(In)n(tel)f(StrongARM)330 2199 y(pro)r(cessor,)28 b(whic)n(h)h(excels)f
+(in)i(the)g(fact)f(that)h(it)f(do)r(es)g(not)g(ha)n(v)n(e)f(a)h
+(\015oating)g(p)r(oin)n(t)g(pro)r(cessor)330 2299 y(and)c(only)f(has)h
+(a)f(8)h(KB)f(cac)n(he)g(consisting)g(of)h(256)f(cac)n(he)g(lines)h(of)
+g(32)f(b)n(ytes.)35 b(The)25 b(rest)g(of)g(the)330 2399
+y(b)r(enc)n(hmarks)20 b(will)i(b)r(e)g(run)f(on)g(a)g(w)n(orkstation)e
+(AMD)j(A)n(thlon)f(XP)h(1600+)d(mac)n(hine)h(\(actually)330
+2498 y(only)29 b(1400)f(MHz\))i(with)g(a)f(256)f(KB)h(L2)g(cac)n(he)g
+(and)g(a)g(128)g(KB)g(L1)g(cac)n(he.)41 b(Both)30 b(mac)n(hines)330
+2598 y(use)d(the)h(Lin)n(ux)g(op)r(erating)e(system.)330
+2830 y Fo(6.1)112 b(The)38 b(Libraries)330 2983 y Fy(Besides)24
+b(the)h(fann)f(library)-7 b(,)24 b(I)g(will)h(b)r(enc)n(hmark)f(Jet's)g
+(Neural)g(Library)f([Heller,)k(2002)n(])e(\(here-)330
+3083 y(after)f(kno)n(wn)f(as)h(jneural\))g(and)g(Ligh)n(t)n(w)n(eigh)n
+(t)f(Neural)h(Net)n(w)n(ork)e([v)-5 b(an)28 b(Rossum,)f(2003)n(])e
+(\(here-)330 3183 y(after)h(kno)n(wn)g(as)g(lwnn\).)38
+b(I)26 b(ha)n(v)n(e)g(made)g(sure)g(that)h(all)g(three)f(libraries)g
+(ha)n(v)n(e)f(b)r(een)i(compiled)330 3282 y(with)h(the)g(same)f
+(compiler)g(and)g(the)h(same)f(compile-options.)455 3382
+y(I)37 b(ha)n(v)n(e)f(do)n(wnloaded)h(sev)n(eral)e(other)i(ANN)i
+(libraries,)f(but)g(most)g(of)f(them)h(had)g(some)330
+3482 y(problem)d(making)h(them)g(di\016cult)h(to)f(use.)61
+b(Either)36 b(they)g(where)f(not)h(libraries,)h(but)f(pro-)330
+3581 y(grams)26 b([Anguita,)i(1993)n(],)f([Zell,)h(2003)n(],)g(they)f
+(could)g(not)h(compile)f([Soft)n(w)n(are,)f(2002)o(],)h(or)g(the)330
+3681 y(do)r(cumen)n(tation)21 b(w)n(as)g(so)g(inadequate)g(that)h(is)g
+(w)n(as)f(not)g(p)r(ossible)h(to)f(implemen)n(t)i(the)f(features)330
+3780 y(needed)28 b(in)g(the)g(b)r(enc)n(hmark)e([Darrington,)h(2003)n
+(].)455 3880 y(Ev)n(en)f(though)h(I)g(will)g(only)g(b)r(enc)n(hmark)f
+(t)n(w)n(o)g(libraries)g(b)r(esides)h(the)g(fann)h(library)-7
+b(,)26 b(I)h(still)330 3980 y(think)f(that)g(they)g(giv)n(e)e(a)h(go)r
+(o)r(d)g(co)n(v)n(erage)e(of)i(the)h(di\013eren)n(t)g(libraries)e(whic)
+n(h)i(are)e(a)n(v)-5 b(ailable.)35 b(I)330 4079 y(will)28
+b(no)n(w)f(brie\015y)g(discuss)g(the)h(pros)f(and)g(cons)g(of)h(these)f
+(t)n(w)n(o)g(libraries.)330 4295 y Fs(6.1.1)94 b(Jet's)31
+b(Neural)h(Library)h(\(jneural\))330 4448 y Fy(The)28
+b(jneural)g(library)f([Heller,)h(2002)n(])g(is)g(a)g(C++)g(library)f
+(whic)n(h)h(is)g(prett)n(y)g(straigh)n(tforw)n(ard)330
+4548 y(to)40 b(use.)74 b(It)40 b(supp)r(orts)g(sev)n(eral)e(di\013eren)
+n(t)j(net)n(w)n(ork)d(arc)n(hitectures)h(and)h(sev)n(eral)e(di\013eren)
+n(t)330 4648 y(activ)-5 b(ation)41 b(functions,)k(but)d(no)f(p)r
+(ossibilit)n(y)g(of)g(c)n(hanging)f(the)i(steepness.)78
+b(It)42 b(uses)f(bias)330 4747 y(neurons)29 b(and)h(supp)r(orts)f(the)i
+(standard)e(bac)n(kpropagation)e(algorithm.)42 b(Besides)30
+b(this,)g(only)330 4847 y(a)23 b(few)i(help)r(er)f(functions)g(are)f
+(implemen)n(ted.)36 b(E.g.)f(it)24 b(is)g(p)r(ossible)f(to)h(sa)n(v)n
+(e)e(the)j(w)n(eigh)n(ts)e(of)g(an)330 4946 y(ANN)31
+b(to)f(a)g(\014le,)i(but)f(not)f(p)r(ossible)g(to)g(sa)n(v)n(e)f(the)i
+(structure.)44 b(The)31 b(library)e(is)h(accompanied)330
+5046 y(b)n(y)d(a)g(reference)g(man)n(ual)g(and)h(a)f(few)h(easy)e(to)i
+(understand)f(examples.)455 5146 y(P)n(art)22 b(of)i(the)g(jneural)g
+(library)e(is)i(an)g(arc)n(hitecture)e(designed)i(to)g(load)f(training)
+g(data)g(from)330 5245 y(a)33 b(\014le.)55 b(This)33
+b(feature)g(is)h(a)f(big)g(help)h(when)g(training)e(an)i(ANN)g(and)f
+(should)g(b)r(e)h(a)f(feature)330 5345 y(included)28
+b(in)g(all)f(ANN)i(libraries.)455 5445 y(The)21 b(library)f(in)n
+(ternally)h(implemen)n(ts)h(an)f(ANN)h(as)f(a)g(lot)g(of)h(link)n(ed)f
+(ob)5 b(jects,)22 b(whic)n(h)g(mak)n(e)330 5544 y(for)27
+b(v)n(ery)e(p)r(o)r(or)i(cac)n(he)f(p)r(erformance.)36
+b(In)27 b(its)g(original)f(form)g(jneural)h(used)g(double)g(precision)p
+Black 1788 5919 a(30)p Black eop end
+%%Page: 31 35
+TeXDict begin 31 34 bop Black 330 70 a Fp(6.2)82 b(Qualit)n(y)27
+b(Benc)n(hmark)1365 b(6)83 b(BENCHMARKS)p 330 103 3000
+4 v Black 330 390 a Fy(\015oats,)29 b(but)g(I)g(ha)n(v)n(e)f(altered)g
+(it)h(to)g(use)g(single)f(precision)g(\015oats,)h(in)g(order)e(to)i
+(compare)f(it)h(to)330 490 y(the)f(other)f(libraries.)35
+b(The)28 b(library)e(used)i(in)g(the)g(b)r(enc)n(hmarks)e(is)i(v)n
+(ersion)e(1.05)g(from)h(2002.)455 589 y(I)c(ha)n(v)n(e)f(used)h(this)g
+(library)f(on)h(sev)n(eral)e(o)r(ccasions,)h(most)h(recen)n(t)g(in)g
+([Nissen)28 b(et)f(al.,)h(2003)n(],)330 689 y(where)f(the)h(library)e
+(w)n(as)h(trained)g(on)g(a)h(normal)e(PC)h(and)h(executed)f(on)h(an)f
+(iP)-7 b(A)n(Q.)330 905 y Fs(6.1.2)94 b(Ligh)m(t)m(w)m(eigh)m(t)32
+b(Neural)g(Net)m(w)m(ork)g(\(lwnn\))330 1058 y Fy(The)37
+b(lwnn)h([v)-5 b(an)27 b(Rossum,)h(2003)n(])37 b(library)f(is)h(a)g(C)g
+(library)f(written)h(with)h(the)f(purp)r(ose)g(of)330
+1158 y(b)r(eing)23 b(ligh)n(t)n(w)n(eigh)n(t)f(and)h(easy)g(to)g(use.)
+35 b(It)23 b(only)g(supp)r(orts)g(m)n(ultila)n(y)n(er)f(feedforw)n(ard)
+g(net)n(w)n(orks)330 1257 y(and)30 b(only)g(one)g(activ)-5
+b(ation)30 b(function)h(\(sigmoid)f(with)h(no)g(p)r(ossibilit)n(y)f(of)
+g(setting)h(the)f(steep-)330 1357 y(ness\).)36 b(A)24
+b(sligh)n(tly)f(mo)r(di\014ed)i(bac)n(kpropagation)20
+b(algorithm)j(with)i(a)e(momen)n(tum)i(parameter)330
+1457 y(is)34 b(implemen)n(ted.)56 b(The)34 b(library)f(supp)r(orts)g(a)
+h(wide)g(arra)n(y)d(of)j(help)r(er)g(functions)g(for)f(using,)330
+1556 y(sa)n(ving)23 b(and)h(loading)f(the)i(ANN,)g(but)g(there)f(is)g
+(no)g(supp)r(ort)g(for)g(loading)f(training)h(data)f(from)330
+1656 y(a)36 b(\014le.)64 b(A)36 b(short)g(and)g(simple)h(reference)f
+(man)n(ual)f(accompanies)g(the)i(library)e(along)h(with)330
+1756 y(some)27 b(large)f(examples.)455 1855 y(The)c(library)f(is)h(in)h
+(activ)n(e)f(dev)n(elopmen)n(t)g(and)g(has)g(gone)f(from)h(v)n(ersion)f
+(0.3)h(to)g(v)n(ersion)f(0.6)330 1955 y(while)28 b(I)f(ha)n(v)n(e)g
+(implemen)n(ted)h(the)g(fann)g(library)-7 b(.)35 b(V)-7
+b(ersion)27 b(0.6)g(is)h(used)f(in)h(the)g(b)r(enc)n(hmarks.)455
+2054 y(The)g(library)f(has)h(a)g(go)r(o)r(d)g(compact)g(arc)n
+(hitecture)g(and)g(is)h(highly)f(optimized.)40 b(E.g.)f(the)330
+2154 y(sigmoid)27 b(activ)-5 b(ation)27 b(function)h(is)g(implemen)n
+(ted)g(as)f(a)g(lo)r(okup)g(table.)330 2386 y Fo(6.2)112
+b(Qualit)m(y)38 b(Benc)m(hmark)330 2540 y Fy(In)32 b(this)g(section)f
+(I)h(will)g(measure)f(the)h(qualit)n(y)g(of)f(an)h(ANN)g(implemen)n
+(tation,)h(as)f(ho)n(w)f(lo)n(w)330 2639 y(mean)36 b(square)f(error)f
+(v)-5 b(alues)36 b(it)g(can)g(pro)r(duce)g(during)g(a)f(\014xed)i(p)r
+(erio)r(d)f(of)g(training.)62 b(It)36 b(is)330 2739 y(alw)n(a)n(ys)f
+(hard)h(to)g(test)h(the)g(qualit)n(y)g(of)f(an)h(ANN)g(implemen)n
+(tation.)64 b(Ho)n(w)37 b(w)n(ell)f(a)g(library)330 2839
+y(p)r(erforms)25 b(on)g(a)h(giv)n(en)f(problem)g(is)g(a)h(com)n
+(bination)f(of)g(a)h(n)n(um)n(b)r(er)f(of)h(factors,)f(including)h(the)
+330 2938 y(initial)k(w)n(eigh)n(ts,)g(the)g(training)f(algorithm,)g
+(the)h(activ)-5 b(ation)30 b(function)g(and)g(the)g(parameters)330
+3038 y(for)i(this)g(function.)51 b(Esp)r(ecially)32 b(the)g(initial)h
+(w)n(eigh)n(ts)e(are)g(tric)n(ky)h(b)r(ecause)f(they)i(are)e(set)h(at)
+330 3137 y(random.)j(F)-7 b(or)24 b(this)h(reason)e(t)n(w)n(o)h
+(training)g(sessions)f(with)j(the)f(same)f(data)g(can)g(giv)n(e)g
+(di\013eren)n(t)330 3237 y(results.)455 3337 y(Another)31
+b(problem)f(is)i(\014nding)f(go)r(o)r(d)g(datasets.)47
+b(ANN)32 b(libraries)e(p)r(erform)h(di\013eren)n(t)g(on)330
+3436 y(di\013eren)n(t)g(datasets,)g(meaning)f(that)h(just)h(b)r(ecause)
+e(one)h(library)e(is)i(b)r(etter)g(at)g(one)g(problem)330
+3536 y(do)r(es)c(not)h(mean)f(that)h(it)g(is)g(b)r(etter)g(at)f
+(another)g(problem.)36 b(F)-7 b(or)27 b(this)h(reason)e(qualit)n(y)h(b)
+r(enc)n(h-)330 3636 y(marks)g(should)h(b)r(e)g(run)g(on)g(sev)n(eral)e
+(di\013eren)n(t)i(datasets.)38 b(The)28 b(datasets)f(themselv)n(es)g
+(should)330 3735 y(include)h(b)r(oth)g(training)f(and)g(testing)h
+(sets,)f(to)h(allo)n(w)e(c)n(hec)n(ks)h(for)g(o)n(v)n(er-\014tting.)455
+3835 y(It)k(is)g(p)r(ossible)g(to)g(mak)n(e)f(arti\014cial)g(datasets,)
+i(but)f(they)h(v)n(ery)e(seldom)h(re\015ect)f(the)i(kind)330
+3934 y(of)26 b(problems)g(ANNs)h(are)f(faced)g(with)h(when)g(they)g
+(are)e(used.)37 b(F)-7 b(or)26 b(this)g(reason)f(man)n(y)h(di\013er-)
+330 4034 y(en)n(t)k(databases)e(with)j(real)e(ANN)i(problems)e(ha)n(v)n
+(e)g(b)r(een)h(created,)g([Blak)n(e)c(and)i(Merz,)f(1998)n(])330
+4134 y(b)r(eing)f(the)g(largest.)35 b(I)25 b(ha)n(v)n(e)g(lo)r(ok)n(ed)
+g(at)g(sev)n(eral)f(di\013eren)n(t)i(sources)e(of)i(datasets,)f(b)r
+(efore)h(I)f(de-)330 4233 y(cided)g(to)f(c)n(hose)g(the)h(datasets)f
+(deliv)n(ered)g(b)n(y)g(Prob)r(en1)f([Prec)n(helt,)k(1994)n(].)36
+b(Prob)r(en1)23 b(deliv)n(ers)330 4333 y(12)28 b(di\013eren)n(t)g
+(datasets,)g(divided)h(in)g(t)n(w)n(o)f(di\013eren)n(t)h(categories,)d
+(classi\014cation)i(and)g(appro)n(x-)330 4433 y(imation.)63
+b(These)36 b(problems)g(ha)n(v)n(e)f(b)r(een)i(b)r(enc)n(hmark)n(ed)e
+(with)i(sev)n(eral)d(di\013eren)n(t)j(training)330 4532
+y(metho)r(ds)c(and)g(suggestions)e(for)i(net)n(w)n(ork)e(sizes)i(ha)n
+(v)n(e)f(b)r(een)h(giv)n(en.)52 b(I)33 b(c)n(hose)f(the)i(Prob)r(en1)
+330 4632 y(datasets)27 b(b)r(ecause)g(the)h(problems)f(are)f(v)n(ery)h
+(di\013eren)n(tiated)g(and)h(w)n(ell)f(do)r(cumen)n(ted.)330
+4848 y Fs(6.2.1)94 b(Benc)m(hmark)33 b(Setup)330 5001
+y Fy(I)d(will)g(b)r(enc)n(hmark)f(the)h(three)f(libraries)g(with)h(a)f
+(selection)g(of)h(datasets)f(from)g(the)i(Prob)r(en1)330
+5100 y(datasets.)j(I)23 b(will)f(select)h(the)f(sets)g(on)g(the)h
+(basis,)g(that)g(they)f(should)g(b)r(e)h(represen)n(tativ)n(e)d(of)j
+(the)330 5200 y(problems)i(in)h(Prob)r(en1.)35 b(Unfortunately)25
+b(some)g(of)h(the)g(problems)f(in)h(Prob)r(en1)e(ha)n(v)n(e)g(serious)
+330 5300 y(o)n(v)n(er-\014tting)31 b(problems.)51 b(I)32
+b(will)h(only)f(include)h(a)f(few)h(of)f(these)h(b)r(ecause)f(often)h
+(the)f(library)330 5399 y(whic)n(h)24 b(is)f(b)r(est)h(at)g(\014tting,)
+h(is)e(also)g(b)r(est)h(at)f(o)n(v)n(er-\014tting.)34
+b(This)24 b(is)f(most)h(often)g(not)f(a)h(problem)330
+5499 y(with)35 b(the)f(library)f(itself,)j(but)f(a)f(problem)g(whic)n
+(h)g(should)g(b)r(e)g(corrected)f(b)n(y)h(stopping)g(the)330
+5599 y(training)e(b)r(efore)h(to)r(o)g(m)n(uc)n(h)g(o)n(v)n
+(er-\014tting)e(o)r(ccurs.)53 b(F)-7 b(or)32 b(the)i(net)n(w)n(ork)e
+(sizes)g(I)h(will)h(use)f(the)p Black 1788 5919 a(31)p
+Black eop end
+%%Page: 32 36
+TeXDict begin 32 35 bop Black 330 70 a Fp(6.2)82 b(Qualit)n(y)27
+b(Benc)n(hmark)1365 b(6)83 b(BENCHMARKS)p 330 103 3000
+4 v Black 330 390 a Fy(sized)25 b(suggested)f(in)i([Prec)n(helt,)h
+(1994)n(])e(and)g(for)g(the)h(learning)e(rate)g(I)i(will)f(use)g(0.7)g
+(for)g(all)g(the)330 490 y(libraries.)35 b(The)24 b(c)n(haracteristics)
+f(of)h(the)i(data)e(sets)g(are)g(sho)n(wn)g(in)h(\014gure)f(15,)h(but)g
+(for)f(further)330 589 y(information)j(on)g(the)h(datasets)f(please)g
+(consult)g([Prec)n(helt,)g(1994)n(].)p Black 417 780
+a(Dataset)g(name)p 967 809 4 100 v 100 w(T)n(yp)r(e)99
+b(Dataset)28 b(size)99 b(Inputs)h(Neurons)27 b(in)h(hidden)100
+b(Outputs)p 367 813 2926 4 v 417 883 a(building)p 967
+912 4 100 v 379 w(a)444 b(4208)248 b(14)683 b(16)357
+b(3)417 982 y(card)p 967 1012 V 519 w(c)488 b(690)248
+b(51)683 b(32)357 b(2)417 1082 y(gene)p 967 1112 V 515
+w(c)446 b(3175)207 b(120)562 b(4)27 b(+)g(2)358 b(3)417
+1181 y(m)n(ushro)r(om)p 967 1211 V 297 w(c)446 b(8124)207
+b(125)682 b(32)357 b(2)417 1281 y(so)n(yb)r(ean)p 967
+1311 V 387 w(c)488 b(683)248 b(82)522 b(16)26 b(+)h(8)317
+b(19)417 1381 y(th)n(yroid)p 967 1411 V 413 w(c)446 b(7200)248
+b(21)522 b(16)26 b(+)h(8)358 b(3)330 1564 y(Figure)24
+b(15:)34 b(The)25 b(datasets,)f(where)g(the)g(t)n(yp)r(e)h(is)f(either)
+h(a)f(\(appro)n(ximation\))f(or)g(c)h(\(classi\014ca-)330
+1664 y(tion\))i(and)g(16)f(+)h(8)g(in)g(\\Neurons)f(in)h(hidden")g
+(indicates)g(that)g(there)g(are)f(t)n(w)n(o)g(hidden)i(la)n(y)n(ers)330
+1763 y(with)h(16)f(neurons)g(in)g(the)h(\014rst)g(and)f(8)g(in)h(the)g
+(second.)p Black 455 1942 a(The)j(Prob)r(en1)e(datasets)i(are)f
+(separated)g(with)h(50\045)g(for)f(training,)i(25\045)e(for)h(v)-5
+b(alidation)330 2042 y(and)31 b(25\045)g(for)g(testing.)49
+b(I)31 b(will)h(ho)n(w)n(ev)n(er)e(not)h(do)g(v)-5 b(alidation)31
+b(while)h(training)f(and)g(ha)n(v)n(e)g(for)330 2141
+y(this)d(reason)e(decided)i(to)f(use)h(b)r(oth)g(the)g(v)-5
+b(alidation)27 b(and)g(test)h(sets)f(for)g(testing.)455
+2241 y(I)d(will)g(do)g(the)h(qualit)n(y)f(b)r(enc)n(hmarks)f(b)n(y)h
+(training)f(ANNs)i(with)g(training)e(sets)h(for)g(a)g(\014xed)330
+2340 y(p)r(erio)r(d)j(of)h(200)e(seconds.)36 b(During)27
+b(this)h(p)r(erio)r(d)f(I)g(will)h(regularly)e(stop)h(the)h(time)f(in)h
+(order)e(to)330 2440 y(write)d(information)g(ab)r(out)h(the)g(mean)f
+(square)g(error)e(for)j(the)g(training)e(data)i(and)f(the)h(testing)330
+2540 y(data)38 b(to)h(a)f(\014le.)70 b(Preferably)37
+b(once)h(ev)n(ery)f(second)h(but)h(since)g(I)f(will)h(only)f(stop)h
+(training)330 2639 y(b)r(et)n(w)n(een)31 b(t)n(w)n(o)f(ep)r(o)r(c)n
+(hs,)h(this)g(can)f(not)h(alw)n(a)n(ys)d(b)r(e)k(accomplished.)45
+b(T)-7 b(o)30 b(calculate)g(the)h(mean)330 2739 y(square)26
+b(error)f(I)i(will)g(use)g(the)g(same)g(function)g(on)g(all)f(the)i
+(di\013eren)n(t)f(libraries,)f(to)h(mak)n(e)f(sure)330
+2839 y(that)i(di\013erences)f(in)h(this)g(calculation)f(do)r(es)g(not)g
+(a\013ect)h(the)g(result.)455 2938 y(I)39 b(will)g(use)g(this)g(data)g
+(to)f(create)h(graphs)e(whic)n(h)i(plot)g(the)h(mean)e(square)g(error)f
+(as)h(a)330 3038 y(function)d(of)g(the)h(time.)59 b(I)35
+b(will)g(create)f(one)g(graph)g(for)g(eac)n(h)g(of)h(the)g(datasets.)58
+b(On)35 b(these)330 3137 y(graphs)e(I)i(will)f(plot)h(the)g(training)f
+(and)g(testing)g(error)f(for)h(the)h(jneural)f(library)-7
+b(,)35 b(the)g(lwnn)330 3237 y(library)-7 b(,)42 b(the)e(fann)g
+(library)f(with)h(single)g(precision)f(\015oats)g(and)h(the)g(fann)g
+(library)f(where)330 3337 y(connection)31 b(rate)g(is)h(set)g(to)f
+(0.75)1400 3307 y Fu(6)1436 3337 y Fy(.)49 b(I)32 b(will)g(only)f(plot)
+h(data)f(for)h(one)f(training)g(session)g(with)330 3436
+y(eac)n(h)21 b(library)-7 b(,)22 b(but)g(I)g(will)g(run)f(other)g
+(smaller)g(training)g(sessions)f(to)i(ensure)f(that)h(the)g(selected)
+330 3536 y(session)27 b(is)g(represen)n(tativ)n(e.)455
+3636 y(The)k(mean)g(square)e(error)g(of)i(the)h(training)e(and)h
+(testing)g(data,)h(executed)f(on)g(the)g(\014xed)330
+3735 y(p)r(oin)n(t)22 b(v)n(ersion)f(of)h(the)h(fann)g(library)e(will)h
+(also)f(b)r(e)i(included)g(on)f(these)g(graphs.)34 b(This)22
+b(ho)n(w)n(ev)n(er)330 3835 y(needs)f(a)f(little)i(bit)g(of)f
+(explanation:)32 b(Ev)n(ery)20 b(time)h(I)g(stop)g(the)g(time)h(to)e
+(prin)n(t)h(the)h(mean)e(square)330 3934 y(error)g(for)i(the)h(fann)f
+(library)-7 b(,)23 b(I)f(will)g(also)g(sa)n(v)n(e)e(the)j(ANN)g(to)f(a)
+g(\014xed)h(p)r(oin)n(t)f(con\014guration)f(\014le.)330
+4034 y(After)27 b(the)g(training)e(has)h(\014nished)h(I)f(will)h(read)e
+(eac)n(h)h(of)g(these)g(con\014guration)f(\014les,)i(with)g(the)330
+4134 y(\014xed)g(p)r(oin)n(t)f(library)f(and)i(calculate)e(the)i(mean)g
+(square)e(error)f(for)i(the)h(training)f(and)g(testing)330
+4233 y(data.)36 b(This)28 b(info)g(will)g(then)g(b)r(e)g(plotted)g(on)f
+(the)h(graph.)455 4333 y(I)c(will)h(sum)g(up)g(all)f(of)h(the)g(b)r
+(enc)n(hmarks)e(in)i(\014gure)f(22,)g(to)h(giv)n(e)e(a)i(quic)n(k)f(o)n
+(v)n(erview)e(of)j(ho)n(w)330 4433 y(w)n(ell)32 b(the)h(libraries)e(p)r
+(erformed.)50 b(The)32 b(programs)e(used)j(for)e(b)r(enc)n(hmarking)h
+(the)g(qualit)n(y)g(of)330 4532 y(the)c(libraries)e(is)i(included)g(in)
+g(app)r(endix)f(B.3.1)g(and)g(B.3.2.)330 4748 y Fs(6.2.2)94
+b(The)32 b(Benc)m(hmarks)330 4901 y Fy(Figure)g(16)h(to)f(21)h(sho)n(w)
+f(the)h(b)r(enc)n(hmark)f(graphs)g(the)h(di\013eren)n(t)h(problems.)52
+b(Some)33 b(of)g(the)330 5001 y(graphs)39 b(are)h(sho)n(wn)f(on)i
+(logarithmic)e(scales)h(to)g(mak)n(e)g(it)h(easier)e(to)h(see)g(the)h
+(di\013erences)330 5100 y(b)r(et)n(w)n(een)34 b(the)g(libraries.)54
+b(Some)34 b(of)f(the)i(plots)e(do)h(not)g(start)f(and)g(end)h(at)g(the)
+g(same)g(time.)330 5200 y(This)26 b(is)h(b)r(ecause)f(I)g(ha)n(v)n(e)f
+(only)h(allo)n(w)n(ed)f(for)h(testing)g(of)g(the)h(net)n(w)n(orks)e(b)r
+(et)n(w)n(een)h(ep)r(o)r(c)n(hs)g(and)330 5300 y(since)33
+b(some)f(of)h(the)h(training)e(sets)h(where)f(quite)i(large)d(\(esp)r
+(ecially)i(m)n(ushro)r(om\),)h(the)f(\014rst)330 5399
+y(ep)r(o)r(c)n(h)28 b(could)f(tak)n(e)g(sev)n(eral)f(seconds.)p
+Black 330 5469 1200 4 v 422 5522 a Fr(6)457 5546 y Fq(The)i(actual)g
+(connection)i(rate)d(ma)n(y)h(b)r(e)g(di\013eren)n(t,)g(b)r(ecause)h
+(some)e(connections)j(should)d(alw)n(a)n(ys)h(b)r(e)f(in)330
+5625 y(place.)p Black Black 1788 5919 a Fy(32)p Black
+eop end
+%%Page: 33 37
+TeXDict begin 33 36 bop Black 330 70 a Fp(6.2)82 b(Qualit)n(y)27
+b(Benc)n(hmark)1365 b(6)83 b(BENCHMARKS)p 330 103 3000
+4 v Black Black 330 399 a
+ gsave currentpoint currentpoint translate -90 neg rotate neg exch
+neg exch translate
+ 330 399 a @beginspecial 50
+ at llx 50 @lly 554 @urx 770 @ury 3600 @rhi @setspecial
+%%BeginDocument: figs/building.ps
+%!PS-Adobe-2.0
+%%Title: ../doc/figs/building.ps
+%%Creator: gnuplot 3.7 patchlevel 3
+%%CreationDate: Fri Oct 24 13:10:39 2003
+%%DocumentFonts: (atend)
+%%BoundingBox: 50 50 554 770
+%%Orientation: Landscape
+%%Pages: (atend)
+%%EndComments
+/gnudict 256 dict def
+gnudict begin
+/Color true def
+/Solid true def
+/gnulinewidth 5.000 def
+/userlinewidth gnulinewidth def
+/vshift -46 def
+/dl {10 mul} def
+/hpt_ 31.5 def
+/vpt_ 31.5 def
+/hpt hpt_ def
+/vpt vpt_ def
+/M {moveto} bind def
+/L {lineto} bind def
+/R {rmoveto} bind def
+/V {rlineto} bind def
+/vpt2 vpt 2 mul def
+/hpt2 hpt 2 mul def
+/Lshow { currentpoint stroke M
+  0 vshift R show } def
+/Rshow { currentpoint stroke M
+  dup stringwidth pop neg vshift R show } def
+/Cshow { currentpoint stroke M
+  dup stringwidth pop -2 div vshift R show } def
+/UP { dup vpt_ mul /vpt exch def hpt_ mul /hpt exch def
+  /hpt2 hpt 2 mul def /vpt2 vpt 2 mul def } def
+/DL { Color {setrgbcolor Solid {pop []} if 0 setdash }
+ {pop pop pop Solid {pop []} if 0 setdash} ifelse } def
+/BL { stroke userlinewidth 2 mul setlinewidth } def
+/AL { stroke userlinewidth 2 div setlinewidth } def
+/UL { dup gnulinewidth mul /userlinewidth exch def
+      dup 1 lt {pop 1} if 10 mul /udl exch def } def
+/PL { stroke userlinewidth setlinewidth } def
+/LTb { BL [] 0 0 0 DL } def
+/LTa { AL [1 udl mul 2 udl mul] 0 setdash 0 0 0 setrgbcolor } def
+/LT0 { PL [] 1 0 0 DL } def
+/LT1 { PL [4 dl 2 dl] 0 1 0 DL } def
+/LT2 { PL [2 dl 3 dl] 0 0 1 DL } def
+/LT3 { PL [1 dl 1.5 dl] 1 0 1 DL } def
+/LT4 { PL [5 dl 2 dl 1 dl 2 dl] 0 1 1 DL } def
+/LT5 { PL [4 dl 3 dl 1 dl 3 dl] 1 1 0 DL } def
+/LT6 { PL [2 dl 2 dl 2 dl 4 dl] 0 0 0 DL } def
+/LT7 { PL [2 dl 2 dl 2 dl 2 dl 2 dl 4 dl] 1 0.3 0 DL } def
+/LT8 { PL [2 dl 2 dl 2 dl 2 dl 2 dl 2 dl 2 dl 4 dl] 0.5 0.5 0.5 DL } def
+/Pnt { stroke [] 0 setdash
+   gsave 1 setlinecap M 0 0 V stroke grestore } def
+/Dia { stroke [] 0 setdash 2 copy vpt add M
+  hpt neg vpt neg V hpt vpt neg V
+  hpt vpt V hpt neg vpt V closepath stroke
+  Pnt } def
+/Pls { stroke [] 0 setdash vpt sub M 0 vpt2 V
+  currentpoint stroke M
+  hpt neg vpt neg R hpt2 0 V stroke
+  } def
+/Box { stroke [] 0 setdash 2 copy exch hpt sub exch vpt add M
+  0 vpt2 neg V hpt2 0 V 0 vpt2 V
+  hpt2 neg 0 V closepath stroke
+  Pnt } def
+/Crs { stroke [] 0 setdash exch hpt sub exch vpt add M
+  hpt2 vpt2 neg V currentpoint stroke M
+  hpt2 neg 0 R hpt2 vpt2 V stroke } def
+/TriU { stroke [] 0 setdash 2 copy vpt 1.12 mul add M
+  hpt neg vpt -1.62 mul V
+  hpt 2 mul 0 V
+  hpt neg vpt 1.62 mul V closepath stroke
+  Pnt  } def
+/Star { 2 copy Pls Crs } def
+/BoxF { stroke [] 0 setdash exch hpt sub exch vpt add M
+  0 vpt2 neg V  hpt2 0 V  0 vpt2 V
+  hpt2 neg 0 V  closepath fill } def
+/TriUF { stroke [] 0 setdash vpt 1.12 mul add M
+  hpt neg vpt -1.62 mul V
+  hpt 2 mul 0 V
+  hpt neg vpt 1.62 mul V closepath fill } def
+/TriD { stroke [] 0 setdash 2 copy vpt 1.12 mul sub M
+  hpt neg vpt 1.62 mul V
+  hpt 2 mul 0 V
+  hpt neg vpt -1.62 mul V closepath stroke
+  Pnt  } def
+/TriDF { stroke [] 0 setdash vpt 1.12 mul sub M
+  hpt neg vpt 1.62 mul V
+  hpt 2 mul 0 V
+  hpt neg vpt -1.62 mul V closepath fill} def
+/DiaF { stroke [] 0 setdash vpt add M
+  hpt neg vpt neg V hpt vpt neg V
+  hpt vpt V hpt neg vpt V closepath fill } def
+/Pent { stroke [] 0 setdash 2 copy gsave
+  translate 0 hpt M 4 {72 rotate 0 hpt L} repeat
+  closepath stroke grestore Pnt } def
+/PentF { stroke [] 0 setdash gsave
+  translate 0 hpt M 4 {72 rotate 0 hpt L} repeat
+  closepath fill grestore } def
+/Circle { stroke [] 0 setdash 2 copy
+  hpt 0 360 arc stroke Pnt } def
+/CircleF { stroke [] 0 setdash hpt 0 360 arc fill } def
+/C0 { BL [] 0 setdash 2 copy moveto vpt 90 450  arc } bind def
+/C1 { BL [] 0 setdash 2 copy        moveto
+       2 copy  vpt 0 90 arc closepath fill
+               vpt 0 360 arc closepath } bind def
+/C2 { BL [] 0 setdash 2 copy moveto
+       2 copy  vpt 90 180 arc closepath fill
+               vpt 0 360 arc closepath } bind def
+/C3 { BL [] 0 setdash 2 copy moveto
+       2 copy  vpt 0 180 arc closepath fill
+               vpt 0 360 arc closepath } bind def
+/C4 { BL [] 0 setdash 2 copy moveto
+       2 copy  vpt 180 270 arc closepath fill
+               vpt 0 360 arc closepath } bind def
+/C5 { BL [] 0 setdash 2 copy moveto
+       2 copy  vpt 0 90 arc
+       2 copy moveto
+       2 copy  vpt 180 270 arc closepath fill
+               vpt 0 360 arc } bind def
+/C6 { BL [] 0 setdash 2 copy moveto
+      2 copy  vpt 90 270 arc closepath fill
+              vpt 0 360 arc closepath } bind def
+/C7 { BL [] 0 setdash 2 copy moveto
+      2 copy  vpt 0 270 arc closepath fill
+              vpt 0 360 arc closepath } bind def
+/C8 { BL [] 0 setdash 2 copy moveto
+      2 copy vpt 270 360 arc closepath fill
+              vpt 0 360 arc closepath } bind def
+/C9 { BL [] 0 setdash 2 copy moveto
+      2 copy  vpt 270 450 arc closepath fill
+              vpt 0 360 arc closepath } bind def
+/C10 { BL [] 0 setdash 2 copy 2 copy moveto vpt 270 360 arc closepath fill
+       2 copy moveto
+       2 copy vpt 90 180 arc closepath fill
+               vpt 0 360 arc closepath } bind def
+/C11 { BL [] 0 setdash 2 copy moveto
+       2 copy  vpt 0 180 arc closepath fill
+       2 copy moveto
+       2 copy  vpt 270 360 arc closepath fill
+               vpt 0 360 arc closepath } bind def
+/C12 { BL [] 0 setdash 2 copy moveto
+       2 copy  vpt 180 360 arc closepath fill
+               vpt 0 360 arc closepath } bind def
+/C13 { BL [] 0 setdash  2 copy moveto
+       2 copy  vpt 0 90 arc closepath fill
+       2 copy moveto
+       2 copy  vpt 180 360 arc closepath fill
+               vpt 0 360 arc closepath } bind def
+/C14 { BL [] 0 setdash 2 copy moveto
+       2 copy  vpt 90 360 arc closepath fill
+               vpt 0 360 arc } bind def
+/C15 { BL [] 0 setdash 2 copy vpt 0 360 arc closepath fill
+               vpt 0 360 arc closepath } bind def
+/Rec   { newpath 4 2 roll moveto 1 index 0 rlineto 0 exch rlineto
+       neg 0 rlineto closepath } bind def
+/Square { dup Rec } bind def
+/Bsquare { vpt sub exch vpt sub exch vpt2 Square } bind def
+/S0 { BL [] 0 setdash 2 copy moveto 0 vpt rlineto BL Bsquare } bind def
+/S1 { BL [] 0 setdash 2 copy vpt Square fill Bsquare } bind def
+/S2 { BL [] 0 setdash 2 copy exch vpt sub exch vpt Square fill Bsquare } bind def
+/S3 { BL [] 0 setdash 2 copy exch vpt sub exch vpt2 vpt Rec fill Bsquare } bind def
+/S4 { BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt Square fill Bsquare } bind def
+/S5 { BL [] 0 setdash 2 copy 2 copy vpt Square fill
+       exch vpt sub exch vpt sub vpt Square fill Bsquare } bind def
+/S6 { BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt vpt2 Rec fill Bsquare } bind def
+/S7 { BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt vpt2 Rec fill
+       2 copy vpt Square fill
+       Bsquare } bind def
+/S8 { BL [] 0 setdash 2 copy vpt sub vpt Square fill Bsquare } bind def
+/S9 { BL [] 0 setdash 2 copy vpt sub vpt vpt2 Rec fill Bsquare } bind def
+/S10 { BL [] 0 setdash 2 copy vpt sub vpt Square fill 2 copy exch vpt sub exch vpt Square fill
+       Bsquare } bind def
+/S11 { BL [] 0 setdash 2 copy vpt sub vpt Square fill 2 copy exch vpt sub exch vpt2 vpt Rec fill
+       Bsquare } bind def
+/S12 { BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt2 vpt Rec fill Bsquare } bind def
+/S13 { BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt2 vpt Rec fill
+       2 copy vpt Square fill Bsquare } bind def
+/S14 { BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt2 vpt Rec fill
+       2 copy exch vpt sub exch vpt Square fill Bsquare } bind def
+/S15 { BL [] 0 setdash 2 copy Bsquare fill Bsquare } bind def
+/D0 { gsave translate 45 rotate 0 0 S0 stroke grestore } bind def
+/D1 { gsave translate 45 rotate 0 0 S1 stroke grestore } bind def
+/D2 { gsave translate 45 rotate 0 0 S2 stroke grestore } bind def
+/D3 { gsave translate 45 rotate 0 0 S3 stroke grestore } bind def
+/D4 { gsave translate 45 rotate 0 0 S4 stroke grestore } bind def
+/D5 { gsave translate 45 rotate 0 0 S5 stroke grestore } bind def
+/D6 { gsave translate 45 rotate 0 0 S6 stroke grestore } bind def
+/D7 { gsave translate 45 rotate 0 0 S7 stroke grestore } bind def
+/D8 { gsave translate 45 rotate 0 0 S8 stroke grestore } bind def
+/D9 { gsave translate 45 rotate 0 0 S9 stroke grestore } bind def
+/D10 { gsave translate 45 rotate 0 0 S10 stroke grestore } bind def
+/D11 { gsave translate 45 rotate 0 0 S11 stroke grestore } bind def
+/D12 { gsave translate 45 rotate 0 0 S12 stroke grestore } bind def
+/D13 { gsave translate 45 rotate 0 0 S13 stroke grestore } bind def
+/D14 { gsave translate 45 rotate 0 0 S14 stroke grestore } bind def
+/D15 { gsave translate 45 rotate 0 0 S15 stroke grestore } bind def
+/DiaE { stroke [] 0 setdash vpt add M
+  hpt neg vpt neg V hpt vpt neg V
+  hpt vpt V hpt neg vpt V closepath stroke } def
+/BoxE { stroke [] 0 setdash exch hpt sub exch vpt add M
+  0 vpt2 neg V hpt2 0 V 0 vpt2 V
+  hpt2 neg 0 V closepath stroke } def
+/TriUE { stroke [] 0 setdash vpt 1.12 mul add M
+  hpt neg vpt -1.62 mul V
+  hpt 2 mul 0 V
+  hpt neg vpt 1.62 mul V closepath stroke } def
+/TriDE { stroke [] 0 setdash vpt 1.12 mul sub M
+  hpt neg vpt 1.62 mul V
+  hpt 2 mul 0 V
+  hpt neg vpt -1.62 mul V closepath stroke } def
+/PentE { stroke [] 0 setdash gsave
+  translate 0 hpt M 4 {72 rotate 0 hpt L} repeat
+  closepath stroke grestore } def
+/CircE { stroke [] 0 setdash 
+  hpt 0 360 arc stroke } def
+/Opaque { gsave closepath 1 setgray fill grestore 0 setgray closepath } def
+/DiaW { stroke [] 0 setdash vpt add M
+  hpt neg vpt neg V hpt vpt neg V
+  hpt vpt V hpt neg vpt V Opaque stroke } def
+/BoxW { stroke [] 0 setdash exch hpt sub exch vpt add M
+  0 vpt2 neg V hpt2 0 V 0 vpt2 V
+  hpt2 neg 0 V Opaque stroke } def
+/TriUW { stroke [] 0 setdash vpt 1.12 mul add M
+  hpt neg vpt -1.62 mul V
+  hpt 2 mul 0 V
+  hpt neg vpt 1.62 mul V Opaque stroke } def
+/TriDW { stroke [] 0 setdash vpt 1.12 mul sub M
+  hpt neg vpt 1.62 mul V
+  hpt 2 mul 0 V
+  hpt neg vpt -1.62 mul V Opaque stroke } def
+/PentW { stroke [] 0 setdash gsave
+  translate 0 hpt M 4 {72 rotate 0 hpt L} repeat
+  Opaque stroke grestore } def
+/CircW { stroke [] 0 setdash 
+  hpt 0 360 arc Opaque stroke } def
+/BoxFill { gsave Rec 1 setgray fill grestore } def
+/Symbol-Oblique /Symbol findfont [1 0 .167 1 0 0] makefont
+dup length dict begin {1 index /FID eq {pop pop} {def} ifelse} forall
+currentdict end definefont pop
+end
+%%EndProlog
+%%Page: 1 1
+gnudict begin
+gsave
+50 50 translate
+0.100 0.100 scale
+90 rotate
+0 -5040 translate
+0 setgray
+newpath
+(Helvetica) findfont 140 scalefont setfont
+1.000 UL
+LTb
+1.000 UL
+LTa
+966 420 M
+5996 0 V
+1.000 UL
+LTb
+966 420 M
+63 0 V
+5933 0 R
+-63 0 V
+882 420 M
+( 0.0055) Rshow
+1.000 UL
+LTa
+966 802 M
+5996 0 V
+1.000 UL
+LTb
+966 802 M
+63 0 V
+5933 0 R
+-63 0 V
+882 802 M
+( 0.006) Rshow
+1.000 UL
+LTa
+966 1184 M
+5996 0 V
+1.000 UL
+LTb
+966 1184 M
+63 0 V
+5933 0 R
+-63 0 V
+-6017 0 R
+( 0.0065) Rshow
+1.000 UL
+LTa
+966 1565 M
+5996 0 V
+1.000 UL
+LTb
+966 1565 M
+63 0 V
+5933 0 R
+-63 0 V
+-6017 0 R
+( 0.007) Rshow
+1.000 UL
+LTa
+966 1947 M
+5996 0 V
+1.000 UL
+LTb
+966 1947 M
+63 0 V
+5933 0 R
+-63 0 V
+-6017 0 R
+( 0.0075) Rshow
+1.000 UL
+LTa
+966 2329 M
+5996 0 V
+1.000 UL
+LTb
+966 2329 M
+63 0 V
+5933 0 R
+-63 0 V
+-6017 0 R
+( 0.008) Rshow
+1.000 UL
+LTa
+966 2711 M
+5996 0 V
+1.000 UL
+LTb
+966 2711 M
+63 0 V
+5933 0 R
+-63 0 V
+-6017 0 R
+( 0.0085) Rshow
+1.000 UL
+LTa
+966 3093 M
+5996 0 V
+1.000 UL
+LTb
+966 3093 M
+63 0 V
+5933 0 R
+-63 0 V
+-6017 0 R
+( 0.009) Rshow
+1.000 UL
+LTa
+966 3475 M
+3917 0 V
+1995 0 R
+84 0 V
+1.000 UL
+LTb
+966 3475 M
+63 0 V
+5933 0 R
+-63 0 V
+-6017 0 R
+( 0.0095) Rshow
+1.000 UL
+LTa
+966 3856 M
+3917 0 V
+1995 0 R
+84 0 V
+1.000 UL
+LTb
+966 3856 M
+63 0 V
+5933 0 R
+-63 0 V
+-6017 0 R
+( 0.01) Rshow
+1.000 UL
+LTa
+966 4238 M
+3917 0 V
+1995 0 R
+84 0 V
+1.000 UL
+LTb
+966 4238 M
+63 0 V
+5933 0 R
+-63 0 V
+-6017 0 R
+( 0.0105) Rshow
+1.000 UL
+LTa
+966 4620 M
+5996 0 V
+1.000 UL
+LTb
+966 4620 M
+63 0 V
+5933 0 R
+-63 0 V
+-6017 0 R
+( 0.011) Rshow
+1.000 UL
+LTa
+966 420 M
+0 4200 V
+1.000 UL
+LTb
+966 420 M
+0 63 V
+0 4137 R
+0 -63 V
+966 280 M
+( 1) Cshow
+1568 420 M
+0 31 V
+0 4169 R
+0 -31 V
+1920 420 M
+0 31 V
+0 4169 R
+0 -31 V
+2169 420 M
+0 31 V
+0 4169 R
+0 -31 V
+2363 420 M
+0 31 V
+0 4169 R
+0 -31 V
+2521 420 M
+0 31 V
+0 4169 R
+0 -31 V
+2655 420 M
+0 31 V
+0 4169 R
+0 -31 V
+2771 420 M
+0 31 V
+0 4169 R
+0 -31 V
+2873 420 M
+0 31 V
+0 4169 R
+0 -31 V
+1.000 UL
+LTa
+2965 420 M
+0 4200 V
+1.000 UL
+LTb
+2965 420 M
+0 63 V
+0 4137 R
+0 -63 V
+0 -4277 R
+( 10) Cshow
+3566 420 M
+0 31 V
+0 4169 R
+0 -31 V
+3918 420 M
+0 31 V
+0 4169 R
+0 -31 V
+4168 420 M
+0 31 V
+0 4169 R
+0 -31 V
+4362 420 M
+0 31 V
+0 4169 R
+0 -31 V
+4520 420 M
+0 31 V
+0 4169 R
+0 -31 V
+4654 420 M
+0 31 V
+0 4169 R
+0 -31 V
+4770 420 M
+0 31 V
+0 4169 R
+0 -31 V
+4872 420 M
+0 31 V
+0 4169 R
+0 -31 V
+1.000 UL
+LTa
+4963 420 M
+0 2737 V
+0 1400 R
+0 63 V
+1.000 UL
+LTb
+4963 420 M
+0 63 V
+0 4137 R
+0 -63 V
+0 -4277 R
+( 100) Cshow
+5565 420 M
+0 31 V
+0 4169 R
+0 -31 V
+5917 420 M
+0 31 V
+0 4169 R
+0 -31 V
+6167 420 M
+0 31 V
+0 4169 R
+0 -31 V
+6360 420 M
+0 31 V
+0 4169 R
+0 -31 V
+6519 420 M
+0 31 V
+0 4169 R
+0 -31 V
+6652 420 M
+0 31 V
+0 4169 R
+0 -31 V
+6768 420 M
+0 31 V
+0 4169 R
+0 -31 V
+6871 420 M
+0 31 V
+0 4169 R
+0 -31 V
+1.000 UL
+LTa
+6962 420 M
+0 4200 V
+1.000 UL
+LTb
+6962 420 M
+0 63 V
+0 4137 R
+0 -63 V
+0 -4277 R
+( 1000) Cshow
+1.000 UL
+LTb
+966 420 M
+5996 0 V
+0 4200 V
+-5996 0 V
+966 420 L
+140 2520 M
+currentpoint gsave translate 90 rotate 0 0 M
+(Mean square error) Cshow
+grestore
+3964 70 M
+(Seconds of training) Cshow
+3964 4830 M
+(building) Cshow
+1.000 UL
+LTb
+6311 4487 M
+(fann train) Rshow
+6395 4487 M
+399 0 V
+966 2360 M
+602 -167 V
+352 -102 V
+249 -91 V
+194 -69 V
+158 -50 V
+134 -44 V
+117 -46 V
+102 -49 V
+92 -52 V
+82 -57 V
+76 -50 V
+70 -40 V
+64 -32 V
+60 -27 V
+56 -25 V
+52 -26 V
+50 -28 V
+47 -36 V
+44 -64 V
+43 -57 V
+40 -25 V
+39 -20 V
+37 -19 V
+35 -19 V
+35 -17 V
+32 -18 V
+32 -16 V
+31 -16 V
+29 -14 V
+29 -13 V
+27 -13 V
+27 -11 V
+26 -10 V
+25 -9 V
+25 -8 V
+24 -7 V
+23 -7 V
+22 -7 V
+23 -6 V
+21 -5 V
+21 -6 V
+20 -5 V
+20 -6 V
+20 -5 V
+19 -5 V
+19 -5 V
+18 -6 V
+18 -5 V
+17 -6 V
+18 -6 V
+16 -6 V
+17 -5 V
+16 -5 V
+16 -5 V
+16 -4 V
+15 -4 V
+15 -4 V
+15 -4 V
+15 -4 V
+14 -4 V
+14 -4 V
+15 -5 V
+13 -4 V
+14 -5 V
+13 -5 V
+13 -5 V
+13 -6 V
+12 -6 V
+13 -6 V
+12 -6 V
+12 -7 V
+12 -6 V
+12 -7 V
+11 -7 V
+12 -7 V
+11 -8 V
+12 -7 V
+11 -8 V
+10 -7 V
+11 -7 V
+11 -7 V
+10 -8 V
+11 -6 V
+10 -7 V
+10 -6 V
+10 -5 V
+10 -6 V
+10 -4 V
+9 -4 V
+10 -4 V
+9 -3 V
+10 -4 V
+9 -2 V
+9 -3 V
+9 -2 V
+9 -2 V
+9 -2 V
+9 -2 V
+9 -2 V
+8 -2 V
+9 -1 V
+8 -2 V
+9 -1 V
+8 -1 V
+8 -1 V
+8 -2 V
+9 -1 V
+8 -1 V
+8 -1 V
+7 -1 V
+8 -1 V
+8 -1 V
+7 0 V
+8 -1 V
+8 -1 V
+7 -1 V
+7 -1 V
+8 -1 V
+7 0 V
+7 -1 V
+7 -1 V
+7 -1 V
+7 -1 V
+7 -1 V
+7 -1 V
+7 -1 V
+7 -2 V
+7 -1 V
+7 -2 V
+6 -1 V
+7 -1 V
+6 -1 V
+7 -1 V
+6 0 V
+7 -1 V
+6 0 V
+6 0 V
+7 -1 V
+6 0 V
+6 0 V
+6 0 V
+6 0 V
+6 0 V
+6 0 V
+6 0 V
+6 0 V
+6 0 V
+6 0 V
+6 0 V
+6 0 V
+5 0 V
+6 0 V
+6 0 V
+5 0 V
+6 1 V
+5 0 V
+6 0 V
+5 1 V
+6 0 V
+5 1 V
+6 0 V
+5 1 V
+5 0 V
+6 1 V
+5 0 V
+5 1 V
+5 0 V
+5 0 V
+5 0 V
+6 0 V
+5 0 V
+5 -1 V
+5 0 V
+5 0 V
+5 0 V
+4 -1 V
+5 0 V
+5 0 V
+5 -1 V
+5 0 V
+5 -1 V
+4 0 V
+5 -1 V
+5 0 V
+5 -1 V
+4 -1 V
+5 0 V
+4 -1 V
+5 0 V
+5 -1 V
+4 0 V
+5 -1 V
+4 -1 V
+5 0 V
+4 -1 V
+4 0 V
+5 -1 V
+4 -1 V
+4 0 V
+1.000 UL
+LT0
+6311 4347 M
+(fann \(0.75\) train) Rshow
+6395 4347 M
+399 0 V
+966 2509 M
+602 -301 V
+352 -125 V
+250 -85 V
+193 -71 V
+159 -55 V
+133 -43 V
+116 -37 V
+102 -30 V
+92 -24 V
+83 -18 V
+76 -15 V
+69 -12 V
+64 -10 V
+60 -9 V
+56 -10 V
+53 -9 V
+50 -9 V
+47 -9 V
+44 -9 V
+43 -10 V
+40 -11 V
+39 -12 V
+37 -12 V
+35 -11 V
+34 -12 V
+33 -11 V
+32 -11 V
+30 -10 V
+30 -10 V
+28 -10 V
+28 -9 V
+27 -9 V
+25 -8 V
+26 -8 V
+24 -8 V
+24 -7 V
+23 -7 V
+22 -6 V
+22 -6 V
+22 -5 V
+21 -5 V
+20 -5 V
+20 -5 V
+20 -4 V
+19 -4 V
+18 -4 V
+19 -4 V
+18 -3 V
+17 -4 V
+17 -3 V
+17 -3 V
+17 -4 V
+16 -3 V
+16 -4 V
+16 -3 V
+15 -5 V
+15 -6 V
+15 -6 V
+15 -7 V
+14 -6 V
+14 -6 V
+14 -6 V
+14 -5 V
+13 -4 V
+13 -4 V
+14 -4 V
+12 -3 V
+13 -3 V
+13 -3 V
+12 -2 V
+12 -2 V
+12 -2 V
+12 -2 V
+11 -2 V
+12 -1 V
+11 -1 V
+12 -1 V
+11 0 V
+10 -1 V
+11 0 V
+11 0 V
+10 0 V
+11 -1 V
+10 0 V
+10 -1 V
+10 -1 V
+10 -2 V
+10 -2 V
+10 -2 V
+9 -2 V
+10 -2 V
+9 -1 V
+9 -2 V
+10 -2 V
+9 -1 V
+9 -2 V
+9 -1 V
+8 -1 V
+9 -2 V
+9 -1 V
+8 -1 V
+9 -1 V
+8 -1 V
+9 -2 V
+8 -1 V
+8 -1 V
+8 -1 V
+8 -1 V
+8 -1 V
+8 -1 V
+8 -1 V
+7 -1 V
+8 -2 V
+8 -1 V
+7 -3 V
+8 -11 V
+7 -10 V
+7 -3 V
+8 -3 V
+7 -3 V
+7 -2 V
+7 -3 V
+7 -2 V
+7 -2 V
+7 -2 V
+7 -2 V
+7 -2 V
+6 -1 V
+7 -2 V
+7 -1 V
+6 -1 V
+7 -2 V
+6 -1 V
+7 -1 V
+6 -1 V
+7 -2 V
+6 -1 V
+6 -1 V
+6 -1 V
+7 -1 V
+6 -1 V
+6 -1 V
+6 -1 V
+6 -1 V
+6 -1 V
+6 -1 V
+6 -1 V
+5 -1 V
+6 -1 V
+6 -1 V
+6 -1 V
+5 0 V
+6 -1 V
+6 -1 V
+5 -1 V
+6 -1 V
+5 -1 V
+6 0 V
+5 -1 V
+6 -1 V
+5 -1 V
+6 -1 V
+5 0 V
+5 -1 V
+5 -1 V
+6 -1 V
+5 0 V
+5 -1 V
+5 -1 V
+5 0 V
+5 -1 V
+5 -1 V
+5 0 V
+5 -1 V
+5 -1 V
+5 0 V
+5 -1 V
+5 0 V
+5 -1 V
+5 -1 V
+4 0 V
+5 -1 V
+5 0 V
+5 -1 V
+4 -1 V
+5 0 V
+5 -1 V
+4 0 V
+5 -1 V
+4 0 V
+5 -1 V
+4 0 V
+5 -1 V
+4 0 V
+5 -1 V
+4 0 V
+5 -1 V
+4 0 V
+4 0 V
+1.000 UL
+LT1
+6311 4207 M
+(fann \(fix\) train) Rshow
+6395 4207 M
+399 0 V
+966 2675 M
+602 -239 V
+352 -45 V
+249 78 V
+194 37 V
+158 -7 V
+134 -47 V
+117 -62 V
+102 -59 V
+92 -56 V
+82 -50 V
+76 -54 V
+70 -51 V
+64 -46 V
+60 -40 V
+56 -68 V
+52 -84 V
+50 -83 V
+47 -59 V
+44 -121 V
+43 -170 V
+40 -45 V
+39 4 V
+37 14 V
+35 19 V
+35 7 V
+32 0 V
+32 -1 V
+31 -5 V
+29 -4 V
+29 -5 V
+27 -4 V
+27 0 V
+26 -3 V
+25 1 V
+25 2 V
+24 -2 V
+23 -4 V
+22 -4 V
+23 -4 V
+21 -7 V
+21 -5 V
+20 -9 V
+20 -4 V
+20 -3 V
+19 -7 V
+19 -13 V
+18 -8 V
+18 -8 V
+17 -4 V
+18 -7 V
+16 -9 V
+17 -9 V
+16 -8 V
+16 -8 V
+16 -6 V
+15 -6 V
+15 -6 V
+15 -5 V
+15 -5 V
+14 -6 V
+14 -6 V
+15 -4 V
+13 -2 V
+14 -1 V
+13 -1 V
+13 -1 V
+13 -1 V
+12 0 V
+13 1 V
+12 -3 V
+12 -4 V
+12 0 V
+12 -5 V
+11 -2 V
+12 -1 V
+11 -4 V
+12 -7 V
+11 -6 V
+10 -6 V
+11 -5 V
+11 -7 V
+10 -4 V
+11 -3 V
+10 -5 V
+10 -6 V
+10 -4 V
+10 -4 V
+10 -8 V
+9 -1 V
+10 -3 V
+9 -3 V
+10 -2 V
+9 -2 V
+9 -4 V
+9 -3 V
+9 -2 V
+9 -1 V
+9 -4 V
+9 -4 V
+8 -2 V
+9 -4 V
+8 -2 V
+9 -6 V
+8 -1 V
+8 -5 V
+8 0 V
+9 -1 V
+8 -6 V
+8 -3 V
+7 -4 V
+8 -2 V
+8 -1 V
+7 -1 V
+8 -2 V
+8 0 V
+7 0 V
+7 -2 V
+8 -1 V
+7 1 V
+7 -1 V
+7 -1 V
+7 1 V
+7 -1 V
+7 1 V
+7 -2 V
+7 2 V
+7 -2 V
+7 1 V
+7 -3 V
+6 1 V
+7 1 V
+6 1 V
+7 0 V
+6 1 V
+7 0 V
+6 -2 V
+6 0 V
+7 0 V
+6 -2 V
+6 1 V
+6 0 V
+6 0 V
+6 -1 V
+6 1 V
+6 0 V
+6 -3 V
+6 3 V
+6 2 V
+6 -1 V
+6 1 V
+5 1 V
+6 0 V
+6 -1 V
+5 0 V
+6 3 V
+5 0 V
+6 -2 V
+5 -1 V
+6 0 V
+5 1 V
+6 -4 V
+5 -1 V
+5 0 V
+6 0 V
+5 -3 V
+5 0 V
+5 -4 V
+5 -1 V
+5 0 V
+6 -1 V
+5 -3 V
+5 -1 V
+5 -2 V
+5 -1 V
+5 -1 V
+4 1 V
+5 -1 V
+5 -1 V
+5 2 V
+5 -2 V
+5 1 V
+4 -3 V
+5 0 V
+5 -2 V
+5 1 V
+4 -3 V
+5 -1 V
+4 0 V
+5 -1 V
+5 -2 V
+4 -1 V
+5 -1 V
+4 0 V
+5 0 V
+4 0 V
+4 -1 V
+5 -1 V
+4 0 V
+4 -2 V
+1.000 UL
+LT2
+6311 4067 M
+(lwnn train) Rshow
+6395 4067 M
+399 0 V
+975 2932 M
+601 -177 V
+349 -168 V
+251 -189 V
+194 -197 V
+158 -157 V
+134 -85 V
+117 -81 V
+102 -39 V
+91 -55 V
+83 -33 V
+76 -30 V
+69 -36 V
+64 -13 V
+60 -27 V
+56 -4 V
+53 -18 V
+50 -27 V
+47 0 V
+44 -20 V
+42 -16 V
+41 -27 V
+39 -6 V
+37 -17 V
+35 -16 V
+34 -15 V
+33 -17 V
+31 -12 V
+31 -21 V
+29 -18 V
+29 -11 V
+27 -22 V
+27 -12 V
+26 -16 V
+25 -18 V
+25 -9 V
+23 -7 V
+24 -24 V
+22 1 V
+22 -17 V
+22 0 V
+21 -15 V
+20 -1 V
+20 -11 V
+19 -1 V
+20 -1 V
+18 -6 V
+19 -2 V
+17 -7 V
+18 -9 V
+17 -1 V
+17 -4 V
+17 -11 V
+16 0 V
+16 -12 V
+15 -8 V
+16 -4 V
+15 -6 V
+15 3 V
+14 -20 V
+15 -6 V
+14 -13 V
+14 0 V
+13 -9 V
+14 -11 V
+13 -2 V
+13 -10 V
+13 -9 V
+13 -4 V
+12 -11 V
+12 -6 V
+13 -6 V
+12 2 V
+11 -7 V
+12 -14 V
+12 0 V
+11 -15 V
+11 3 V
+11 -10 V
+11 -4 V
+11 -6 V
+11 -5 V
+10 -3 V
+10 -11 V
+11 -5 V
+10 -9 V
+10 -2 V
+10 -27 V
+10 -6 V
+9 -6 V
+10 -3 V
+9 -10 V
+10 0 V
+9 -18 V
+9 -5 V
+9 -3 V
+9 -8 V
+9 -14 V
+9 -2 V
+9 0 V
+8 -20 V
+9 -5 V
+8 -4 V
+9 -5 V
+8 -10 V
+8 -4 V
+8 -2 V
+9 -7 V
+8 -4 V
+7 -3 V
+8 -7 V
+8 -6 V
+8 -5 V
+7 -3 V
+8 1 V
+8 0 V
+7 -7 V
+7 -2 V
+8 -4 V
+7 3 V
+7 -4 V
+7 -3 V
+7 -2 V
+7 -3 V
+7 1 V
+7 -10 V
+7 -1 V
+7 2 V
+7 -3 V
+7 -4 V
+6 0 V
+7 5 V
+6 -6 V
+7 3 V
+6 -1 V
+7 -2 V
+6 2 V
+6 1 V
+7 -1 V
+6 0 V
+6 -3 V
+6 0 V
+6 0 V
+6 -1 V
+6 -2 V
+6 -3 V
+6 0 V
+6 2 V
+6 2 V
+6 -7 V
+6 8 V
+5 -10 V
+6 3 V
+6 1 V
+5 3 V
+6 -2 V
+5 1 V
+6 -1 V
+5 3 V
+6 0 V
+5 -3 V
+6 0 V
+5 2 V
+5 -4 V
+5 11 V
+6 0 V
+5 -4 V
+5 -2 V
+5 -1 V
+5 -1 V
+6 2 V
+5 -2 V
+5 -3 V
+5 0 V
+5 -3 V
+5 6 V
+4 2 V
+5 -5 V
+5 6 V
+5 -3 V
+5 -4 V
+5 -2 V
+4 -1 V
+5 3 V
+5 -1 V
+4 1 V
+5 -8 V
+5 2 V
+4 4 V
+5 -3 V
+5 -1 V
+4 2 V
+5 -3 V
+4 4 V
+5 -5 V
+4 -2 V
+4 0 V
+5 2 V
+4 3 V
+1.000 UL
+LT3
+6311 3927 M
+(jneural train) Rshow
+6395 3927 M
+399 0 V
+1000 3786 M
+614 -798 V
+348 -246 V
+248 -143 V
+192 -99 V
+157 -70 V
+134 -51 V
+115 -40 V
+102 -34 V
+91 -31 V
+83 -29 V
+75 -28 V
+69 -28 V
+65 -28 V
+60 -29 V
+56 -29 V
+53 -29 V
+49 -28 V
+47 -27 V
+44 -26 V
+43 -25 V
+40 -24 V
+38 -22 V
+37 -22 V
+36 -20 V
+34 -19 V
+32 -18 V
+32 -18 V
+31 -16 V
+31 -16 V
+28 -15 V
+28 -16 V
+26 -15 V
+26 -16 V
+25 -17 V
+25 -17 V
+23 -19 V
+23 -19 V
+23 -21 V
+22 -21 V
+21 -21 V
+21 -22 V
+20 -21 V
+20 -22 V
+20 -21 V
+19 -21 V
+18 -20 V
+19 -19 V
+17 -18 V
+18 -16 V
+17 -15 V
+17 -13 V
+16 -12 V
+17 -11 V
+15 -9 V
+16 -9 V
+15 -8 V
+15 -8 V
+15 -7 V
+15 -7 V
+15 -7 V
+14 -6 V
+13 -7 V
+14 -6 V
+14 -6 V
+13 -6 V
+13 -6 V
+13 -6 V
+12 -5 V
+13 -6 V
+12 -5 V
+12 -6 V
+12 -5 V
+12 -6 V
+11 -5 V
+12 -5 V
+11 -6 V
+11 -5 V
+11 -5 V
+11 -5 V
+11 -6 V
+11 -5 V
+10 -5 V
+11 -5 V
+10 -5 V
+10 -5 V
+10 -5 V
+10 -5 V
+10 -4 V
+9 -5 V
+10 -4 V
+10 -5 V
+9 -4 V
+9 -4 V
+10 -4 V
+9 -4 V
+9 -4 V
+9 -3 V
+8 -4 V
+9 -3 V
+9 -3 V
+8 -4 V
+9 -3 V
+8 -3 V
+9 -2 V
+8 -3 V
+8 -3 V
+8 -3 V
+8 -2 V
+8 -2 V
+8 -3 V
+7 -2 V
+8 -2 V
+8 -2 V
+7 -3 V
+8 -2 V
+7 -2 V
+8 -1 V
+7 -2 V
+7 -2 V
+7 -2 V
+8 -2 V
+7 -1 V
+7 -2 V
+7 -2 V
+7 -1 V
+6 -2 V
+7 -2 V
+7 -1 V
+7 -2 V
+6 -1 V
+7 -2 V
+6 -1 V
+7 -2 V
+6 -1 V
+7 -2 V
+6 -1 V
+6 -1 V
+7 -2 V
+6 -1 V
+6 -2 V
+6 -1 V
+6 -1 V
+6 -2 V
+6 -1 V
+6 -1 V
+6 -2 V
+6 -1 V
+6 -1 V
+6 -2 V
+5 -1 V
+6 -1 V
+6 -1 V
+5 -2 V
+6 -1 V
+6 -1 V
+5 -1 V
+6 -2 V
+5 -1 V
+6 -1 V
+5 -1 V
+5 -1 V
+6 -2 V
+5 -1 V
+5 -1 V
+6 -1 V
+5 -1 V
+5 -1 V
+5 -1 V
+5 -2 V
+5 -1 V
+5 -1 V
+5 -1 V
+5 -1 V
+5 -1 V
+5 -1 V
+5 -1 V
+5 -1 V
+5 -1 V
+5 -1 V
+4 -1 V
+5 -1 V
+5 -1 V
+5 -1 V
+4 -1 V
+5 -1 V
+5 -1 V
+4 -1 V
+5 -1 V
+5 -1 V
+4 -1 V
+5 -1 V
+4 0 V
+1.000 UL
+LTb
+6311 3787 M
+(fann test) Rshow
+6395 3787 M
+399 0 V
+966 2985 M
+602 -132 V
+352 -62 V
+249 -68 V
+194 -47 V
+158 -31 V
+134 -27 V
+117 -28 V
+102 -26 V
+92 -26 V
+82 -26 V
+76 -21 V
+70 -15 V
+64 -12 V
+60 -13 V
+56 -13 V
+52 -14 V
+50 -14 V
+47 -21 V
+44 -48 V
+43 -37 V
+40 -6 V
+39 -5 V
+37 -7 V
+35 -9 V
+35 -8 V
+32 -9 V
+32 -8 V
+31 -7 V
+29 -6 V
+29 -4 V
+27 -4 V
+27 -3 V
+26 -1 V
+25 -1 V
+25 -1 V
+24 -1 V
+23 -1 V
+22 -1 V
+23 -2 V
+21 -1 V
+21 -1 V
+20 -2 V
+20 -2 V
+20 -2 V
+19 -2 V
+19 -2 V
+18 -3 V
+18 -3 V
+17 -3 V
+18 -3 V
+16 -3 V
+17 -3 V
+16 -2 V
+16 -2 V
+16 -2 V
+15 -1 V
+15 -2 V
+15 -1 V
+15 -1 V
+14 -2 V
+14 -2 V
+15 -1 V
+13 -2 V
+14 -2 V
+13 -3 V
+13 -2 V
+13 -3 V
+12 -2 V
+13 -2 V
+12 -2 V
+12 -2 V
+12 -2 V
+12 -2 V
+11 -2 V
+12 -2 V
+11 -2 V
+12 -2 V
+11 -1 V
+10 -2 V
+11 -1 V
+11 -2 V
+10 -1 V
+11 -2 V
+10 -1 V
+10 -1 V
+10 0 V
+10 -1 V
+10 0 V
+9 1 V
+10 1 V
+9 1 V
+10 1 V
+9 3 V
+9 2 V
+9 3 V
+9 4 V
+9 3 V
+9 4 V
+9 3 V
+8 4 V
+9 3 V
+8 3 V
+9 3 V
+8 3 V
+8 2 V
+8 3 V
+9 2 V
+8 2 V
+8 2 V
+7 2 V
+8 2 V
+8 1 V
+7 2 V
+8 1 V
+8 1 V
+7 1 V
+7 1 V
+8 1 V
+7 1 V
+7 0 V
+7 0 V
+7 0 V
+7 0 V
+7 -1 V
+7 -1 V
+7 -2 V
+7 -2 V
+7 -3 V
+7 -3 V
+6 -3 V
+7 -2 V
+6 -1 V
+7 0 V
+6 0 V
+7 1 V
+6 1 V
+6 1 V
+7 2 V
+6 1 V
+6 1 V
+6 1 V
+6 1 V
+6 1 V
+6 2 V
+6 1 V
+6 1 V
+6 1 V
+6 1 V
+6 0 V
+6 1 V
+5 1 V
+6 1 V
+6 1 V
+5 1 V
+6 1 V
+5 1 V
+6 1 V
+5 1 V
+6 1 V
+5 2 V
+6 1 V
+5 1 V
+5 1 V
+6 1 V
+5 1 V
+5 1 V
+5 1 V
+5 0 V
+5 1 V
+6 0 V
+5 1 V
+5 0 V
+5 1 V
+5 0 V
+5 1 V
+4 0 V
+5 0 V
+5 1 V
+5 0 V
+5 0 V
+5 0 V
+4 1 V
+5 0 V
+5 0 V
+5 0 V
+4 1 V
+5 0 V
+4 0 V
+5 0 V
+5 1 V
+4 0 V
+5 0 V
+4 1 V
+5 0 V
+4 0 V
+4 1 V
+5 0 V
+4 1 V
+4 0 V
+1.000 UL
+LT0
+6311 3647 M
+(fann \(0.75\) test) Rshow
+6395 3647 M
+399 0 V
+966 3113 M
+602 -246 V
+352 -78 V
+250 -44 V
+193 -37 V
+159 -41 V
+133 -41 V
+116 -40 V
+102 -38 V
+92 -33 V
+83 -28 V
+76 -23 V
+69 -17 V
+64 -14 V
+60 -13 V
+56 -11 V
+53 -12 V
+50 -13 V
+47 -14 V
+44 -14 V
+43 -15 V
+40 -16 V
+39 -16 V
+37 -15 V
+35 -15 V
+34 -13 V
+33 -12 V
+32 -12 V
+30 -10 V
+30 -9 V
+28 -9 V
+28 -8 V
+27 -7 V
+25 -6 V
+26 -6 V
+24 -6 V
+24 -6 V
+23 -5 V
+22 -5 V
+22 -5 V
+22 -4 V
+21 -4 V
+20 -4 V
+20 -3 V
+20 -3 V
+19 -3 V
+18 -3 V
+19 -2 V
+18 -3 V
+17 -2 V
+17 -2 V
+17 -3 V
+17 -2 V
+16 -2 V
+16 -2 V
+16 -3 V
+15 -3 V
+15 -5 V
+15 -6 V
+15 -3 V
+14 -2 V
+14 -2 V
+14 -1 V
+14 -1 V
+13 0 V
+13 0 V
+14 0 V
+12 0 V
+13 0 V
+13 0 V
+12 1 V
+12 1 V
+12 1 V
+12 2 V
+11 1 V
+12 2 V
+11 3 V
+12 3 V
+11 3 V
+10 4 V
+11 4 V
+11 4 V
+10 4 V
+11 5 V
+10 4 V
+10 4 V
+10 4 V
+10 3 V
+10 3 V
+10 3 V
+9 1 V
+10 1 V
+9 1 V
+9 1 V
+10 0 V
+9 0 V
+9 0 V
+9 0 V
+8 -1 V
+9 0 V
+9 0 V
+8 -1 V
+9 0 V
+8 0 V
+9 -1 V
+8 0 V
+8 -1 V
+8 0 V
+8 -1 V
+8 -1 V
+8 0 V
+8 -1 V
+7 -1 V
+8 -1 V
+8 -2 V
+7 -3 V
+8 -14 V
+7 -23 V
+7 -4 V
+8 -3 V
+7 -3 V
+7 -3 V
+7 -2 V
+7 -2 V
+7 -3 V
+7 -2 V
+7 -2 V
+7 -1 V
+6 -2 V
+7 -2 V
+7 -1 V
+6 -1 V
+7 -2 V
+6 -1 V
+7 -2 V
+6 -1 V
+7 -1 V
+6 -1 V
+6 -2 V
+6 -1 V
+7 -1 V
+6 -1 V
+6 -1 V
+6 -1 V
+6 -1 V
+6 -2 V
+6 -1 V
+6 -1 V
+5 -1 V
+6 -1 V
+6 -1 V
+6 -1 V
+5 -1 V
+6 -1 V
+6 -1 V
+5 -1 V
+6 -1 V
+5 -1 V
+6 -1 V
+5 -1 V
+6 -1 V
+5 -1 V
+6 -1 V
+5 -1 V
+5 -1 V
+5 -1 V
+6 -1 V
+5 0 V
+5 -1 V
+5 -1 V
+5 -1 V
+5 -1 V
+5 0 V
+5 -1 V
+5 -1 V
+5 -1 V
+5 0 V
+5 -1 V
+5 -1 V
+5 -1 V
+5 0 V
+4 -1 V
+5 -1 V
+5 0 V
+5 -1 V
+4 0 V
+5 -1 V
+5 -1 V
+4 0 V
+5 -1 V
+4 0 V
+5 -1 V
+4 0 V
+5 -1 V
+4 0 V
+5 -1 V
+4 0 V
+5 -1 V
+4 0 V
+4 -1 V
+1.000 UL
+LT1
+6311 3507 M
+(fann \(fix\) test) Rshow
+6395 3507 M
+399 0 V
+966 3260 M
+602 -214 V
+352 -32 V
+249 99 V
+194 26 V
+158 -24 V
+134 -32 V
+117 -25 V
+102 -14 V
+92 -14 V
+82 -22 V
+76 -15 V
+70 -12 V
+64 -30 V
+60 -42 V
+56 -68 V
+52 -83 V
+50 -67 V
+47 -49 V
+44 -95 V
+43 -127 V
+40 4 V
+39 49 V
+37 42 V
+35 37 V
+35 21 V
+32 10 V
+32 0 V
+31 4 V
+29 2 V
+29 7 V
+27 9 V
+27 0 V
+26 7 V
+25 2 V
+25 1 V
+24 -1 V
+23 -4 V
+22 8 V
+23 -2 V
+21 -3 V
+21 -3 V
+20 -7 V
+20 -5 V
+20 -4 V
+19 -7 V
+19 -8 V
+18 -7 V
+18 -7 V
+17 -10 V
+18 -6 V
+16 -5 V
+17 -4 V
+16 -7 V
+16 0 V
+16 -1 V
+15 -5 V
+15 -4 V
+15 -1 V
+15 0 V
+14 -1 V
+14 2 V
+15 1 V
+13 5 V
+14 2 V
+13 -1 V
+13 6 V
+13 1 V
+12 0 V
+13 3 V
+12 2 V
+12 2 V
+12 -1 V
+12 -3 V
+11 -10 V
+12 -2 V
+11 0 V
+12 -4 V
+11 -2 V
+10 3 V
+11 4 V
+11 2 V
+10 3 V
+11 -1 V
+10 5 V
+10 3 V
+10 -2 V
+10 1 V
+10 0 V
+9 6 V
+10 1 V
+9 0 V
+10 0 V
+9 -1 V
+9 2 V
+9 0 V
+9 -1 V
+9 5 V
+9 1 V
+9 0 V
+8 -2 V
+9 -2 V
+8 0 V
+9 1 V
+8 4 V
+8 2 V
+8 1 V
+9 2 V
+8 -2 V
+8 2 V
+7 1 V
+8 1 V
+8 -3 V
+7 2 V
+8 1 V
+8 3 V
+7 0 V
+7 -2 V
+8 2 V
+7 3 V
+7 -1 V
+7 -2 V
+7 -2 V
+7 -2 V
+7 -3 V
+7 -2 V
+7 -3 V
+7 -6 V
+7 -3 V
+7 -7 V
+6 -1 V
+7 -1 V
+6 1 V
+7 0 V
+6 0 V
+7 2 V
+6 -3 V
+6 1 V
+7 -1 V
+6 -1 V
+6 -1 V
+6 -3 V
+6 1 V
+6 0 V
+6 -1 V
+6 0 V
+6 -3 V
+6 -1 V
+6 -2 V
+6 -3 V
+6 0 V
+5 -2 V
+6 -1 V
+6 -2 V
+5 -1 V
+6 -3 V
+5 -1 V
+6 -2 V
+5 -1 V
+6 2 V
+5 -1 V
+6 -3 V
+5 2 V
+5 -2 V
+6 -1 V
+5 0 V
+5 1 V
+5 -2 V
+5 0 V
+5 0 V
+6 2 V
+5 -3 V
+5 -1 V
+5 0 V
+5 0 V
+5 0 V
+4 -2 V
+5 1 V
+5 -2 V
+5 2 V
+5 0 V
+5 2 V
+4 0 V
+5 0 V
+5 -1 V
+5 0 V
+4 1 V
+5 0 V
+4 4 V
+5 -2 V
+5 1 V
+4 2 V
+5 4 V
+4 1 V
+5 0 V
+4 2 V
+4 0 V
+5 3 V
+4 -1 V
+4 1 V
+1.000 UL
+LT2
+6311 3367 M
+(lwnn test) Rshow
+6395 3367 M
+399 0 V
+975 3606 M
+601 -125 V
+349 -127 V
+251 -172 V
+194 -191 V
+158 -156 V
+134 -83 V
+117 -68 V
+102 -29 V
+91 -40 V
+83 -4 V
+76 -7 V
+69 -17 V
+64 -3 V
+60 -10 V
+56 3 V
+53 -16 V
+50 -18 V
+47 -3 V
+44 -7 V
+42 -17 V
+41 -13 V
+39 -11 V
+37 -11 V
+35 -16 V
+34 -10 V
+33 -9 V
+31 -11 V
+31 -5 V
+29 -7 V
+29 -7 V
+27 -8 V
+27 -3 V
+26 -14 V
+25 -2 V
+25 -3 V
+23 -2 V
+24 -13 V
+22 -5 V
+22 -18 V
+22 -9 V
+21 -21 V
+20 2 V
+20 -10 V
+19 -6 V
+20 -7 V
+18 -13 V
+19 2 V
+17 -11 V
+18 -4 V
+17 -2 V
+17 -6 V
+17 -10 V
+16 2 V
+16 -5 V
+15 -9 V
+16 -1 V
+15 -3 V
+15 3 V
+14 -16 V
+15 -5 V
+14 -8 V
+14 -2 V
+13 -8 V
+14 -12 V
+13 4 V
+13 -9 V
+13 -6 V
+13 -1 V
+12 -13 V
+12 -4 V
+13 -6 V
+12 -6 V
+11 -11 V
+12 1 V
+12 -5 V
+11 -16 V
+11 1 V
+11 -4 V
+11 -9 V
+11 -8 V
+11 -4 V
+10 -4 V
+10 1 V
+11 -5 V
+10 -9 V
+10 5 V
+10 -25 V
+10 5 V
+9 -5 V
+10 1 V
+9 2 V
+10 5 V
+9 -7 V
+9 1 V
+9 2 V
+9 -7 V
+9 0 V
+9 7 V
+9 0 V
+8 -9 V
+9 3 V
+8 -2 V
+9 -2 V
+8 -2 V
+8 2 V
+8 -2 V
+9 3 V
+8 -3 V
+7 1 V
+8 4 V
+8 -3 V
+8 -7 V
+7 5 V
+8 3 V
+8 -7 V
+7 1 V
+7 -2 V
+8 -1 V
+7 3 V
+7 -2 V
+7 4 V
+7 -3 V
+7 3 V
+7 -1 V
+7 -7 V
+7 2 V
+7 6 V
+7 -8 V
+7 7 V
+6 -7 V
+7 3 V
+6 6 V
+7 0 V
+6 -5 V
+7 8 V
+6 0 V
+6 4 V
+7 -3 V
+6 6 V
+6 -2 V
+6 2 V
+6 1 V
+6 2 V
+6 1 V
+6 0 V
+6 -1 V
+6 2 V
+6 1 V
+6 -2 V
+6 12 V
+5 -9 V
+6 1 V
+6 0 V
+5 3 V
+6 7 V
+5 0 V
+6 -2 V
+5 2 V
+6 2 V
+5 6 V
+6 -3 V
+5 1 V
+5 1 V
+5 2 V
+6 0 V
+5 5 V
+5 0 V
+5 -3 V
+5 6 V
+6 0 V
+5 -1 V
+5 -3 V
+5 0 V
+5 7 V
+5 0 V
+4 1 V
+5 3 V
+5 3 V
+5 -6 V
+5 6 V
+5 1 V
+4 -3 V
+5 5 V
+5 2 V
+4 -3 V
+5 4 V
+5 0 V
+4 3 V
+5 -4 V
+5 6 V
+4 4 V
+5 -1 V
+4 6 V
+5 -4 V
+4 -1 V
+4 0 V
+5 3 V
+4 3 V
+1.000 UL
+LT3
+6311 3227 M
+(jneural test) Rshow
+6395 3227 M
+399 0 V
+1000 4330 M
+614 -768 V
+348 -226 V
+248 -136 V
+192 -95 V
+157 -66 V
+134 -47 V
+115 -35 V
+102 -26 V
+91 -22 V
+83 -19 V
+75 -19 V
+69 -19 V
+65 -20 V
+60 -21 V
+56 -22 V
+53 -23 V
+49 -23 V
+47 -23 V
+44 -23 V
+43 -23 V
+40 -22 V
+38 -21 V
+37 -20 V
+36 -19 V
+34 -17 V
+32 -16 V
+32 -15 V
+31 -15 V
+31 -13 V
+28 -12 V
+28 -13 V
+26 -12 V
+26 -13 V
+25 -14 V
+25 -15 V
+23 -16 V
+23 -16 V
+23 -16 V
+22 -17 V
+21 -16 V
+21 -15 V
+20 -15 V
+20 -14 V
+20 -14 V
+19 -13 V
+18 -12 V
+19 -11 V
+17 -10 V
+18 -9 V
+17 -7 V
+17 -6 V
+16 -4 V
+17 -4 V
+15 -4 V
+16 -3 V
+15 -3 V
+15 -2 V
+15 -3 V
+15 -3 V
+15 -2 V
+14 -3 V
+13 -3 V
+14 -2 V
+14 -3 V
+13 -3 V
+13 -3 V
+13 -3 V
+12 -2 V
+13 -3 V
+12 -3 V
+12 -3 V
+12 -3 V
+12 -2 V
+11 -3 V
+12 -3 V
+11 -2 V
+11 -3 V
+11 -2 V
+11 -3 V
+11 -2 V
+11 -2 V
+10 -3 V
+11 -2 V
+10 -2 V
+10 -2 V
+10 -2 V
+10 -2 V
+10 -1 V
+9 -2 V
+10 -2 V
+10 -1 V
+9 -1 V
+9 -2 V
+10 -1 V
+9 -1 V
+9 0 V
+9 -1 V
+8 -1 V
+9 0 V
+9 -1 V
+8 0 V
+9 -1 V
+8 0 V
+9 0 V
+8 0 V
+8 0 V
+8 0 V
+8 0 V
+8 0 V
+8 1 V
+7 0 V
+8 0 V
+8 0 V
+7 1 V
+8 0 V
+7 0 V
+8 1 V
+7 0 V
+7 1 V
+7 0 V
+8 0 V
+7 1 V
+7 0 V
+7 1 V
+7 0 V
+6 1 V
+7 0 V
+7 0 V
+7 1 V
+6 0 V
+7 1 V
+6 0 V
+7 0 V
+6 1 V
+7 0 V
+6 0 V
+6 1 V
+7 0 V
+6 1 V
+6 0 V
+6 0 V
+6 0 V
+6 1 V
+6 0 V
+6 0 V
+6 1 V
+6 0 V
+6 0 V
+6 0 V
+5 1 V
+6 0 V
+6 0 V
+5 0 V
+6 0 V
+6 1 V
+5 0 V
+6 0 V
+5 0 V
+6 0 V
+5 0 V
+5 0 V
+6 0 V
+5 1 V
+5 0 V
+6 0 V
+5 0 V
+5 0 V
+5 0 V
+5 0 V
+5 0 V
+5 0 V
+5 0 V
+5 0 V
+5 0 V
+5 0 V
+5 0 V
+5 0 V
+5 0 V
+5 0 V
+4 0 V
+5 0 V
+5 0 V
+5 0 V
+4 -1 V
+5 0 V
+5 0 V
+4 0 V
+5 0 V
+5 0 V
+4 0 V
+5 0 V
+4 -1 V
+stroke
+grestore
+end
+showpage
+%%Trailer
+%%DocumentFonts: Helvetica
+%%Pages: 1
+
+%%EndDocument
+ @endspecial 2430 399 a
+ currentpoint grestore moveto
+ 2430 399 a 330 2648 a Fy(Figure)29
+b(16:)39 b(Graph)28 b(sho)n(wing)g(the)i(mean)f(square)f(error)f(as)h
+(a)h(function)h(of)f(the)g(time)h(for)f(the)330 2748
+y(building)35 b(problem.)56 b(The)34 b(mean)g(square)f(error)g(drops)g
+(in)i(a)e(step)n(wise)h(manor,)h(whic)n(h)f(is)g(a)330
+2847 y(t)n(ypical)27 b(b)r(eha)n(vior)f(of)i(training)f(an)g(ANN)i(on)e
+(di\016cult)h(but)h(solv)n(e-able)c(problems.)p Black
+Black 330 3114 a
+ gsave currentpoint currentpoint translate -90 neg rotate neg exch
+neg exch translate
+ 330 3114 a @beginspecial 50 @llx 50
+ at lly 554 @urx 770 @ury 3600 @rhi @setspecial
+%%BeginDocument: figs/card.ps
+%!PS-Adobe-2.0
+%%Title: ../doc/figs/card.ps
+%%Creator: gnuplot 3.7 patchlevel 3
+%%CreationDate: Fri Oct 24 13:10:39 2003
+%%DocumentFonts: (atend)
+%%BoundingBox: 50 50 554 770
+%%Orientation: Landscape
+%%Pages: (atend)
+%%EndComments
+/gnudict 256 dict def
+gnudict begin
+/Color true def
+/Solid true def
+/gnulinewidth 5.000 def
+/userlinewidth gnulinewidth def
+/vshift -46 def
+/dl {10 mul} def
+/hpt_ 31.5 def
+/vpt_ 31.5 def
+/hpt hpt_ def
+/vpt vpt_ def
+/M {moveto} bind def
+/L {lineto} bind def
+/R {rmoveto} bind def
+/V {rlineto} bind def
+/vpt2 vpt 2 mul def
+/hpt2 hpt 2 mul def
+/Lshow { currentpoint stroke M
+  0 vshift R show } def
+/Rshow { currentpoint stroke M
+  dup stringwidth pop neg vshift R show } def
+/Cshow { currentpoint stroke M
+  dup stringwidth pop -2 div vshift R show } def
+/UP { dup vpt_ mul /vpt exch def hpt_ mul /hpt exch def
+  /hpt2 hpt 2 mul def /vpt2 vpt 2 mul def } def
+/DL { Color {setrgbcolor Solid {pop []} if 0 setdash }
+ {pop pop pop Solid {pop []} if 0 setdash} ifelse } def
+/BL { stroke userlinewidth 2 mul setlinewidth } def
+/AL { stroke userlinewidth 2 div setlinewidth } def
+/UL { dup gnulinewidth mul /userlinewidth exch def
+      dup 1 lt {pop 1} if 10 mul /udl exch def } def
+/PL { stroke userlinewidth setlinewidth } def
+/LTb { BL [] 0 0 0 DL } def
+/LTa { AL [1 udl mul 2 udl mul] 0 setdash 0 0 0 setrgbcolor } def
+/LT0 { PL [] 1 0 0 DL } def
+/LT1 { PL [4 dl 2 dl] 0 1 0 DL } def
+/LT2 { PL [2 dl 3 dl] 0 0 1 DL } def
+/LT3 { PL [1 dl 1.5 dl] 1 0 1 DL } def
+/LT4 { PL [5 dl 2 dl 1 dl 2 dl] 0 1 1 DL } def
+/LT5 { PL [4 dl 3 dl 1 dl 3 dl] 1 1 0 DL } def
+/LT6 { PL [2 dl 2 dl 2 dl 4 dl] 0 0 0 DL } def
+/LT7 { PL [2 dl 2 dl 2 dl 2 dl 2 dl 4 dl] 1 0.3 0 DL } def
+/LT8 { PL [2 dl 2 dl 2 dl 2 dl 2 dl 2 dl 2 dl 4 dl] 0.5 0.5 0.5 DL } def
+/Pnt { stroke [] 0 setdash
+   gsave 1 setlinecap M 0 0 V stroke grestore } def
+/Dia { stroke [] 0 setdash 2 copy vpt add M
+  hpt neg vpt neg V hpt vpt neg V
+  hpt vpt V hpt neg vpt V closepath stroke
+  Pnt } def
+/Pls { stroke [] 0 setdash vpt sub M 0 vpt2 V
+  currentpoint stroke M
+  hpt neg vpt neg R hpt2 0 V stroke
+  } def
+/Box { stroke [] 0 setdash 2 copy exch hpt sub exch vpt add M
+  0 vpt2 neg V hpt2 0 V 0 vpt2 V
+  hpt2 neg 0 V closepath stroke
+  Pnt } def
+/Crs { stroke [] 0 setdash exch hpt sub exch vpt add M
+  hpt2 vpt2 neg V currentpoint stroke M
+  hpt2 neg 0 R hpt2 vpt2 V stroke } def
+/TriU { stroke [] 0 setdash 2 copy vpt 1.12 mul add M
+  hpt neg vpt -1.62 mul V
+  hpt 2 mul 0 V
+  hpt neg vpt 1.62 mul V closepath stroke
+  Pnt  } def
+/Star { 2 copy Pls Crs } def
+/BoxF { stroke [] 0 setdash exch hpt sub exch vpt add M
+  0 vpt2 neg V  hpt2 0 V  0 vpt2 V
+  hpt2 neg 0 V  closepath fill } def
+/TriUF { stroke [] 0 setdash vpt 1.12 mul add M
+  hpt neg vpt -1.62 mul V
+  hpt 2 mul 0 V
+  hpt neg vpt 1.62 mul V closepath fill } def
+/TriD { stroke [] 0 setdash 2 copy vpt 1.12 mul sub M
+  hpt neg vpt 1.62 mul V
+  hpt 2 mul 0 V
+  hpt neg vpt -1.62 mul V closepath stroke
+  Pnt  } def
+/TriDF { stroke [] 0 setdash vpt 1.12 mul sub M
+  hpt neg vpt 1.62 mul V
+  hpt 2 mul 0 V
+  hpt neg vpt -1.62 mul V closepath fill} def
+/DiaF { stroke [] 0 setdash vpt add M
+  hpt neg vpt neg V hpt vpt neg V
+  hpt vpt V hpt neg vpt V closepath fill } def
+/Pent { stroke [] 0 setdash 2 copy gsave
+  translate 0 hpt M 4 {72 rotate 0 hpt L} repeat
+  closepath stroke grestore Pnt } def
+/PentF { stroke [] 0 setdash gsave
+  translate 0 hpt M 4 {72 rotate 0 hpt L} repeat
+  closepath fill grestore } def
+/Circle { stroke [] 0 setdash 2 copy
+  hpt 0 360 arc stroke Pnt } def
+/CircleF { stroke [] 0 setdash hpt 0 360 arc fill } def
+/C0 { BL [] 0 setdash 2 copy moveto vpt 90 450  arc } bind def
+/C1 { BL [] 0 setdash 2 copy        moveto
+       2 copy  vpt 0 90 arc closepath fill
+               vpt 0 360 arc closepath } bind def
+/C2 { BL [] 0 setdash 2 copy moveto
+       2 copy  vpt 90 180 arc closepath fill
+               vpt 0 360 arc closepath } bind def
+/C3 { BL [] 0 setdash 2 copy moveto
+       2 copy  vpt 0 180 arc closepath fill
+               vpt 0 360 arc closepath } bind def
+/C4 { BL [] 0 setdash 2 copy moveto
+       2 copy  vpt 180 270 arc closepath fill
+               vpt 0 360 arc closepath } bind def
+/C5 { BL [] 0 setdash 2 copy moveto
+       2 copy  vpt 0 90 arc
+       2 copy moveto
+       2 copy  vpt 180 270 arc closepath fill
+               vpt 0 360 arc } bind def
+/C6 { BL [] 0 setdash 2 copy moveto
+      2 copy  vpt 90 270 arc closepath fill
+              vpt 0 360 arc closepath } bind def
+/C7 { BL [] 0 setdash 2 copy moveto
+      2 copy  vpt 0 270 arc closepath fill
+              vpt 0 360 arc closepath } bind def
+/C8 { BL [] 0 setdash 2 copy moveto
+      2 copy vpt 270 360 arc closepath fill
+              vpt 0 360 arc closepath } bind def
+/C9 { BL [] 0 setdash 2 copy moveto
+      2 copy  vpt 270 450 arc closepath fill
+              vpt 0 360 arc closepath } bind def
+/C10 { BL [] 0 setdash 2 copy 2 copy moveto vpt 270 360 arc closepath fill
+       2 copy moveto
+       2 copy vpt 90 180 arc closepath fill
+               vpt 0 360 arc closepath } bind def
+/C11 { BL [] 0 setdash 2 copy moveto
+       2 copy  vpt 0 180 arc closepath fill
+       2 copy moveto
+       2 copy  vpt 270 360 arc closepath fill
+               vpt 0 360 arc closepath } bind def
+/C12 { BL [] 0 setdash 2 copy moveto
+       2 copy  vpt 180 360 arc closepath fill
+               vpt 0 360 arc closepath } bind def
+/C13 { BL [] 0 setdash  2 copy moveto
+       2 copy  vpt 0 90 arc closepath fill
+       2 copy moveto
+       2 copy  vpt 180 360 arc closepath fill
+               vpt 0 360 arc closepath } bind def
+/C14 { BL [] 0 setdash 2 copy moveto
+       2 copy  vpt 90 360 arc closepath fill
+               vpt 0 360 arc } bind def
+/C15 { BL [] 0 setdash 2 copy vpt 0 360 arc closepath fill
+               vpt 0 360 arc closepath } bind def
+/Rec   { newpath 4 2 roll moveto 1 index 0 rlineto 0 exch rlineto
+       neg 0 rlineto closepath } bind def
+/Square { dup Rec } bind def
+/Bsquare { vpt sub exch vpt sub exch vpt2 Square } bind def
+/S0 { BL [] 0 setdash 2 copy moveto 0 vpt rlineto BL Bsquare } bind def
+/S1 { BL [] 0 setdash 2 copy vpt Square fill Bsquare } bind def
+/S2 { BL [] 0 setdash 2 copy exch vpt sub exch vpt Square fill Bsquare } bind def
+/S3 { BL [] 0 setdash 2 copy exch vpt sub exch vpt2 vpt Rec fill Bsquare } bind def
+/S4 { BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt Square fill Bsquare } bind def
+/S5 { BL [] 0 setdash 2 copy 2 copy vpt Square fill
+       exch vpt sub exch vpt sub vpt Square fill Bsquare } bind def
+/S6 { BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt vpt2 Rec fill Bsquare } bind def
+/S7 { BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt vpt2 Rec fill
+       2 copy vpt Square fill
+       Bsquare } bind def
+/S8 { BL [] 0 setdash 2 copy vpt sub vpt Square fill Bsquare } bind def
+/S9 { BL [] 0 setdash 2 copy vpt sub vpt vpt2 Rec fill Bsquare } bind def
+/S10 { BL [] 0 setdash 2 copy vpt sub vpt Square fill 2 copy exch vpt sub exch vpt Square fill
+       Bsquare } bind def
+/S11 { BL [] 0 setdash 2 copy vpt sub vpt Square fill 2 copy exch vpt sub exch vpt2 vpt Rec fill
+       Bsquare } bind def
+/S12 { BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt2 vpt Rec fill Bsquare } bind def
+/S13 { BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt2 vpt Rec fill
+       2 copy vpt Square fill Bsquare } bind def
+/S14 { BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt2 vpt Rec fill
+       2 copy exch vpt sub exch vpt Square fill Bsquare } bind def
+/S15 { BL [] 0 setdash 2 copy Bsquare fill Bsquare } bind def
+/D0 { gsave translate 45 rotate 0 0 S0 stroke grestore } bind def
+/D1 { gsave translate 45 rotate 0 0 S1 stroke grestore } bind def
+/D2 { gsave translate 45 rotate 0 0 S2 stroke grestore } bind def
+/D3 { gsave translate 45 rotate 0 0 S3 stroke grestore } bind def
+/D4 { gsave translate 45 rotate 0 0 S4 stroke grestore } bind def
+/D5 { gsave translate 45 rotate 0 0 S5 stroke grestore } bind def
+/D6 { gsave translate 45 rotate 0 0 S6 stroke grestore } bind def
+/D7 { gsave translate 45 rotate 0 0 S7 stroke grestore } bind def
+/D8 { gsave translate 45 rotate 0 0 S8 stroke grestore } bind def
+/D9 { gsave translate 45 rotate 0 0 S9 stroke grestore } bind def
+/D10 { gsave translate 45 rotate 0 0 S10 stroke grestore } bind def
+/D11 { gsave translate 45 rotate 0 0 S11 stroke grestore } bind def
+/D12 { gsave translate 45 rotate 0 0 S12 stroke grestore } bind def
+/D13 { gsave translate 45 rotate 0 0 S13 stroke grestore } bind def
+/D14 { gsave translate 45 rotate 0 0 S14 stroke grestore } bind def
+/D15 { gsave translate 45 rotate 0 0 S15 stroke grestore } bind def
+/DiaE { stroke [] 0 setdash vpt add M
+  hpt neg vpt neg V hpt vpt neg V
+  hpt vpt V hpt neg vpt V closepath stroke } def
+/BoxE { stroke [] 0 setdash exch hpt sub exch vpt add M
+  0 vpt2 neg V hpt2 0 V 0 vpt2 V
+  hpt2 neg 0 V closepath stroke } def
+/TriUE { stroke [] 0 setdash vpt 1.12 mul add M
+  hpt neg vpt -1.62 mul V
+  hpt 2 mul 0 V
+  hpt neg vpt 1.62 mul V closepath stroke } def
+/TriDE { stroke [] 0 setdash vpt 1.12 mul sub M
+  hpt neg vpt 1.62 mul V
+  hpt 2 mul 0 V
+  hpt neg vpt -1.62 mul V closepath stroke } def
+/PentE { stroke [] 0 setdash gsave
+  translate 0 hpt M 4 {72 rotate 0 hpt L} repeat
+  closepath stroke grestore } def
+/CircE { stroke [] 0 setdash 
+  hpt 0 360 arc stroke } def
+/Opaque { gsave closepath 1 setgray fill grestore 0 setgray closepath } def
+/DiaW { stroke [] 0 setdash vpt add M
+  hpt neg vpt neg V hpt vpt neg V
+  hpt vpt V hpt neg vpt V Opaque stroke } def
+/BoxW { stroke [] 0 setdash exch hpt sub exch vpt add M
+  0 vpt2 neg V hpt2 0 V 0 vpt2 V
+  hpt2 neg 0 V Opaque stroke } def
+/TriUW { stroke [] 0 setdash vpt 1.12 mul add M
+  hpt neg vpt -1.62 mul V
+  hpt 2 mul 0 V
+  hpt neg vpt 1.62 mul V Opaque stroke } def
+/TriDW { stroke [] 0 setdash vpt 1.12 mul sub M
+  hpt neg vpt 1.62 mul V
+  hpt 2 mul 0 V
+  hpt neg vpt -1.62 mul V Opaque stroke } def
+/PentW { stroke [] 0 setdash gsave
+  translate 0 hpt M 4 {72 rotate 0 hpt L} repeat
+  Opaque stroke grestore } def
+/CircW { stroke [] 0 setdash 
+  hpt 0 360 arc Opaque stroke } def
+/BoxFill { gsave Rec 1 setgray fill grestore } def
+/Symbol-Oblique /Symbol findfont [1 0 .167 1 0 0] makefont
+dup length dict begin {1 index /FID eq {pop pop} {def} ifelse} forall
+currentdict end definefont pop
+end
+%%EndProlog
+%%Page: 1 1
+gnudict begin
+gsave
+50 50 translate
+0.100 0.100 scale
+90 rotate
+0 -5040 translate
+0 setgray
+newpath
+(Helvetica) findfont 140 scalefont setfont
+1.000 UL
+LTb
+1.000 UL
+LTa
+798 420 M
+6164 0 V
+1.000 UL
+LTb
+798 420 M
+63 0 V
+6101 0 R
+-63 0 V
+714 420 M
+( 0) Rshow
+1.000 UL
+LTa
+798 802 M
+6164 0 V
+1.000 UL
+LTb
+798 802 M
+63 0 V
+6101 0 R
+-63 0 V
+714 802 M
+( 0.02) Rshow
+1.000 UL
+LTa
+798 1184 M
+6164 0 V
+1.000 UL
+LTb
+798 1184 M
+63 0 V
+6101 0 R
+-63 0 V
+-6185 0 R
+( 0.04) Rshow
+1.000 UL
+LTa
+798 1565 M
+6164 0 V
+1.000 UL
+LTb
+798 1565 M
+63 0 V
+6101 0 R
+-63 0 V
+-6185 0 R
+( 0.06) Rshow
+1.000 UL
+LTa
+798 1947 M
+6164 0 V
+1.000 UL
+LTb
+798 1947 M
+63 0 V
+6101 0 R
+-63 0 V
+-6185 0 R
+( 0.08) Rshow
+1.000 UL
+LTa
+798 2329 M
+6164 0 V
+1.000 UL
+LTb
+798 2329 M
+63 0 V
+6101 0 R
+-63 0 V
+-6185 0 R
+( 0.1) Rshow
+1.000 UL
+LTa
+798 2711 M
+6164 0 V
+1.000 UL
+LTb
+798 2711 M
+63 0 V
+6101 0 R
+-63 0 V
+-6185 0 R
+( 0.12) Rshow
+1.000 UL
+LTa
+798 3093 M
+6164 0 V
+1.000 UL
+LTb
+798 3093 M
+63 0 V
+6101 0 R
+-63 0 V
+-6185 0 R
+( 0.14) Rshow
+1.000 UL
+LTa
+798 3475 M
+4085 0 V
+1995 0 R
+84 0 V
+1.000 UL
+LTb
+798 3475 M
+63 0 V
+6101 0 R
+-63 0 V
+-6185 0 R
+( 0.16) Rshow
+1.000 UL
+LTa
+798 3856 M
+4085 0 V
+1995 0 R
+84 0 V
+1.000 UL
+LTb
+798 3856 M
+63 0 V
+6101 0 R
+-63 0 V
+-6185 0 R
+( 0.18) Rshow
+1.000 UL
+LTa
+798 4238 M
+4085 0 V
+1995 0 R
+84 0 V
+1.000 UL
+LTb
+798 4238 M
+63 0 V
+6101 0 R
+-63 0 V
+-6185 0 R
+( 0.2) Rshow
+1.000 UL
+LTa
+798 4620 M
+6164 0 V
+1.000 UL
+LTb
+798 4620 M
+63 0 V
+6101 0 R
+-63 0 V
+-6185 0 R
+( 0.22) Rshow
+1.000 UL
+LTa
+798 420 M
+0 4200 V
+1.000 UL
+LTb
+798 420 M
+0 63 V
+0 4137 R
+0 -63 V
+798 280 M
+( 1) Cshow
+1417 420 M
+0 31 V
+0 4169 R
+0 -31 V
+1778 420 M
+0 31 V
+0 4169 R
+0 -31 V
+2035 420 M
+0 31 V
+0 4169 R
+0 -31 V
+2234 420 M
+0 31 V
+0 4169 R
+0 -31 V
+2397 420 M
+0 31 V
+0 4169 R
+0 -31 V
+2534 420 M
+0 31 V
+0 4169 R
+0 -31 V
+2654 420 M
+0 31 V
+0 4169 R
+0 -31 V
+2759 420 M
+0 31 V
+0 4169 R
+0 -31 V
+1.000 UL
+LTa
+2853 420 M
+0 4200 V
+1.000 UL
+LTb
+2853 420 M
+0 63 V
+0 4137 R
+0 -63 V
+0 -4277 R
+( 10) Cshow
+3471 420 M
+0 31 V
+0 4169 R
+0 -31 V
+3833 420 M
+0 31 V
+0 4169 R
+0 -31 V
+4090 420 M
+0 31 V
+0 4169 R
+0 -31 V
+4289 420 M
+0 31 V
+0 4169 R
+0 -31 V
+4452 420 M
+0 31 V
+0 4169 R
+0 -31 V
+4589 420 M
+0 31 V
+0 4169 R
+0 -31 V
+4708 420 M
+0 31 V
+0 4169 R
+0 -31 V
+4813 420 M
+0 31 V
+0 4169 R
+0 -31 V
+1.000 UL
+LTa
+4907 420 M
+0 2737 V
+0 1400 R
+0 63 V
+1.000 UL
+LTb
+4907 420 M
+0 63 V
+0 4137 R
+0 -63 V
+0 -4277 R
+( 100) Cshow
+5526 420 M
+0 31 V
+0 4169 R
+0 -31 V
+5888 420 M
+0 31 V
+0 4169 R
+0 -31 V
+6144 420 M
+0 31 V
+0 4169 R
+0 -31 V
+6343 420 M
+0 31 V
+0 4169 R
+0 -31 V
+6506 420 M
+0 31 V
+0 4169 R
+0 -31 V
+6644 420 M
+0 31 V
+0 4169 R
+0 -31 V
+6763 420 M
+0 31 V
+0 4169 R
+0 -31 V
+6868 420 M
+0 31 V
+0 4169 R
+0 -31 V
+1.000 UL
+LTa
+6962 420 M
+0 4200 V
+1.000 UL
+LTb
+6962 420 M
+0 63 V
+0 4137 R
+0 -63 V
+0 -4277 R
+( 1000) Cshow
+1.000 UL
+LTb
+798 420 M
+6164 0 V
+0 4200 V
+-6164 0 V
+798 420 L
+140 2520 M
+currentpoint gsave translate 90 rotate 0 0 M
+(Mean square error) Cshow
+grestore
+3880 70 M
+(Seconds of training) Cshow
+3880 4830 M
+(card) Cshow
+1.000 UL
+LTb
+6311 4487 M
+(fann train) Rshow
+6395 4487 M
+399 0 V
+798 1454 M
+619 -6 V
+361 -2 V
+257 -1 V
+199 -58 V
+163 -51 V
+137 -2 V
+120 0 V
+105 -37 V
+94 -18 V
+85 0 V
+77 -1 V
+72 0 V
+66 0 V
+61 0 V
+58 0 V
+54 0 V
+51 0 V
+48 0 V
+46 -55 V
+44 -55 V
+41 -1 V
+40 0 V
+38 0 V
+36 0 V
+35 0 V
+34 0 V
+32 0 V
+32 0 V
+30 0 V
+29 0 V
+29 0 V
+27 0 V
+27 0 V
+26 0 V
+25 0 V
+24 0 V
+24 0 V
+23 0 V
+23 0 V
+22 0 V
+21 0 V
+21 0 V
+21 0 V
+20 0 V
+19 0 V
+20 0 V
+18 0 V
+19 0 V
+18 0 V
+17 0 V
+18 0 V
+17 0 V
+16 0 V
+17 0 V
+16 0 V
+16 0 V
+15 0 V
+16 0 V
+15 0 V
+14 0 V
+15 0 V
+14 0 V
+14 0 V
+14 0 V
+14 0 V
+13 0 V
+13 0 V
+13 0 V
+13 0 V
+13 0 V
+12 0 V
+13 0 V
+12 0 V
+12 0 V
+11 0 V
+12 0 V
+12 0 V
+11 0 V
+11 0 V
+11 0 V
+11 0 V
+11 0 V
+11 0 V
+10 0 V
+11 0 V
+10 0 V
+10 0 V
+10 0 V
+10 0 V
+10 0 V
+10 0 V
+10 0 V
+9 0 V
+10 0 V
+9 0 V
+9 0 V
+9 0 V
+9 0 V
+9 -54 V
+9 -1 V
+9 0 V
+9 0 V
+8 0 V
+9 0 V
+8 0 V
+9 0 V
+8 0 V
+8 0 V
+8 0 V
+8 0 V
+8 0 V
+8 0 V
+8 0 V
+8 0 V
+8 0 V
+7 0 V
+8 0 V
+8 0 V
+7 0 V
+7 0 V
+8 0 V
+7 0 V
+7 0 V
+7 0 V
+8 0 V
+7 0 V
+7 0 V
+7 0 V
+6 0 V
+7 0 V
+7 0 V
+7 0 V
+6 0 V
+7 0 V
+7 0 V
+6 0 V
+7 0 V
+6 0 V
+7 0 V
+6 0 V
+6 0 V
+6 0 V
+7 0 V
+6 0 V
+6 0 V
+6 0 V
+6 0 V
+6 0 V
+6 0 V
+6 0 V
+6 0 V
+6 0 V
+6 0 V
+5 0 V
+6 0 V
+6 0 V
+6 0 V
+5 0 V
+6 0 V
+5 0 V
+6 0 V
+5 0 V
+6 0 V
+5 0 V
+6 0 V
+5 0 V
+5 0 V
+6 0 V
+5 0 V
+5 0 V
+5 0 V
+5 0 V
+6 0 V
+5 0 V
+5 0 V
+5 0 V
+5 0 V
+5 0 V
+5 0 V
+5 0 V
+5 0 V
+5 0 V
+5 0 V
+4 0 V
+5 0 V
+5 0 V
+5 0 V
+4 0 V
+5 0 V
+5 0 V
+5 0 V
+4 0 V
+5 0 V
+4 0 V
+5 0 V
+4 0 V
+5 0 V
+4 0 V
+5 0 V
+1.000 UL
+LT0
+6311 4347 M
+(fann \(0.75\) train) Rshow
+6395 4347 M
+399 0 V
+798 1176 M
+619 -62 V
+361 -2 V
+257 -1 V
+199 0 V
+163 0 V
+137 -1 V
+121 0 V
+105 -55 V
+94 0 V
+86 2 V
+78 -2 V
+71 0 V
+67 0 V
+61 0 V
+58 0 V
+54 0 V
+50 0 V
+49 0 V
+45 0 V
+44 0 V
+41 0 V
+40 0 V
+38 0 V
+36 0 V
+35 -1 V
+33 0 V
+33 0 V
+31 0 V
+30 0 V
+30 0 V
+28 0 V
+27 0 V
+27 0 V
+26 0 V
+25 0 V
+25 0 V
+24 0 V
+23 0 V
+22 0 V
+22 0 V
+22 0 V
+21 0 V
+20 0 V
+20 0 V
+20 0 V
+19 0 V
+19 0 V
+18 0 V
+18 0 V
+18 0 V
+17 0 V
+17 0 V
+17 0 V
+16 0 V
+16 0 V
+16 0 V
+16 0 V
+15 0 V
+15 0 V
+15 0 V
+14 0 V
+14 0 V
+14 -1 V
+14 0 V
+14 0 V
+13 0 V
+13 0 V
+13 0 V
+13 0 V
+13 0 V
+12 0 V
+13 0 V
+12 0 V
+12 0 V
+12 0 V
+11 0 V
+12 0 V
+11 0 V
+11 0 V
+11 0 V
+11 0 V
+11 0 V
+11 0 V
+10 0 V
+11 0 V
+10 0 V
+10 0 V
+10 0 V
+10 0 V
+10 0 V
+10 0 V
+10 0 V
+9 0 V
+10 0 V
+9 0 V
+9 0 V
+9 0 V
+9 0 V
+9 0 V
+9 0 V
+9 0 V
+9 0 V
+8 0 V
+9 0 V
+8 0 V
+9 0 V
+8 0 V
+8 0 V
+8 0 V
+9 0 V
+8 0 V
+7 0 V
+8 0 V
+8 0 V
+8 0 V
+8 0 V
+7 0 V
+8 0 V
+7 0 V
+7 0 V
+8 0 V
+7 0 V
+7 0 V
+7 0 V
+8 0 V
+7 0 V
+7 0 V
+7 0 V
+6 0 V
+7 0 V
+7 0 V
+7 0 V
+7 0 V
+6 0 V
+7 0 V
+6 0 V
+7 0 V
+6 0 V
+7 0 V
+6 0 V
+6 0 V
+7 0 V
+6 0 V
+6 0 V
+6 0 V
+6 0 V
+6 0 V
+6 0 V
+6 0 V
+6 0 V
+6 0 V
+6 0 V
+6 0 V
+5 0 V
+6 0 V
+6 0 V
+5 0 V
+6 0 V
+6 0 V
+5 0 V
+6 0 V
+5 0 V
+6 0 V
+5 0 V
+5 0 V
+6 0 V
+5 0 V
+5 0 V
+6 0 V
+5 0 V
+5 0 V
+5 0 V
+5 0 V
+6 0 V
+5 0 V
+5 0 V
+5 0 V
+5 0 V
+5 0 V
+5 0 V
+4 0 V
+5 0 V
+5 0 V
+5 0 V
+5 0 V
+5 0 V
+4 0 V
+5 0 V
+5 0 V
+5 0 V
+4 0 V
+5 0 V
+4 0 V
+5 0 V
+5 0 V
+4 0 V
+5 0 V
+4 0 V
+5 0 V
+1.000 UL
+LT1
+6311 4207 M
+(fann \(fix\) test) Rshow
+6395 4207 M
+399 0 V
+798 3975 M
+619 61 V
+361 42 V
+257 47 V
+199 68 V
+163 -107 V
+137 22 V
+120 -24 V
+105 -74 V
+94 54 V
+85 -4 V
+77 -5 V
+72 -11 V
+66 -13 V
+61 20 V
+58 -10 V
+54 -4 V
+51 17 V
+48 -4 V
+46 97 V
+44 -50 V
+41 -17 V
+40 -10 V
+38 -5 V
+36 -3 V
+35 5 V
+34 -9 V
+32 1 V
+32 -1 V
+30 -7 V
+29 5 V
+29 2 V
+27 -1 V
+27 -5 V
+26 5 V
+25 -5 V
+24 -3 V
+24 5 V
+23 -1 V
+23 -4 V
+22 1 V
+21 0 V
+21 5 V
+21 -3 V
+20 -3 V
+19 4 V
+20 -3 V
+18 2 V
+19 -3 V
+18 5 V
+17 0 V
+18 -4 V
+17 3 V
+16 2 V
+17 -4 V
+16 2 V
+16 -3 V
+15 2 V
+16 -1 V
+15 4 V
+14 -1 V
+15 -3 V
+14 3 V
+14 -2 V
+14 4 V
+14 0 V
+13 -3 V
+13 0 V
+13 3 V
+13 1 V
+13 -3 V
+12 3 V
+13 -3 V
+12 4 V
+12 1 V
+11 -4 V
+12 1 V
+12 0 V
+11 3 V
+11 0 V
+11 2 V
+11 -4 V
+11 3 V
+11 2 V
+10 -4 V
+11 2 V
+10 3 V
+10 -3 V
+10 2 V
+10 1 V
+10 -2 V
+10 1 V
+10 2 V
+9 0 V
+10 1 V
+9 1 V
+9 2 V
+9 4 V
+9 7 V
+9 -41 V
+9 -50 V
+9 -3 V
+9 -1 V
+8 0 V
+9 0 V
+8 1 V
+9 0 V
+8 1 V
+8 0 V
+8 0 V
+8 1 V
+8 0 V
+8 1 V
+8 1 V
+8 -1 V
+8 5 V
+7 -1 V
+8 -1 V
+8 1 V
+7 0 V
+7 0 V
+8 0 V
+7 0 V
+7 1 V
+7 1 V
+8 0 V
+7 0 V
+7 0 V
+7 0 V
+6 1 V
+7 -1 V
+7 2 V
+7 -2 V
+6 4 V
+7 -2 V
+7 0 V
+6 2 V
+7 0 V
+6 -2 V
+7 2 V
+6 -2 V
+6 3 V
+6 -3 V
+7 3 V
+6 0 V
+6 -1 V
+6 1 V
+6 -1 V
+6 1 V
+6 -1 V
+6 0 V
+6 1 V
+6 0 V
+6 -1 V
+5 1 V
+6 0 V
+6 0 V
+6 0 V
+5 1 V
+6 0 V
+5 0 V
+6 -1 V
+5 0 V
+6 1 V
+5 0 V
+6 0 V
+5 0 V
+5 0 V
+6 0 V
+5 1 V
+5 -1 V
+5 1 V
+5 0 V
+6 -1 V
+5 1 V
+5 0 V
+5 0 V
+5 0 V
+5 0 V
+5 0 V
+5 -1 V
+5 1 V
+5 0 V
+5 -1 V
+4 2 V
+5 0 V
+5 -1 V
+5 0 V
+4 1 V
+5 -1 V
+5 1 V
+5 -1 V
+4 0 V
+5 0 V
+4 1 V
+5 0 V
+4 0 V
+5 0 V
+4 0 V
+5 0 V
+1.000 UL
+LT2
+6311 4067 M
+(lwnn train) Rshow
+6395 4067 M
+399 0 V
+798 849 M
+619 -14 V
+361 -55 V
+257 -18 V
+199 -1 V
+163 -1 V
+137 -1 V
+120 0 V
+105 -1 V
+94 0 V
+85 -54 V
+77 0 V
+72 0 V
+66 0 V
+61 -1 V
+58 0 V
+54 0 V
+51 1 V
+48 -1 V
+46 -1 V
+44 0 V
+41 0 V
+40 0 V
+38 1 V
+36 -1 V
+35 1 V
+34 0 V
+32 -1 V
+32 1 V
+30 -1 V
+29 0 V
+29 0 V
+27 0 V
+27 0 V
+26 0 V
+25 0 V
+24 0 V
+24 0 V
+23 0 V
+23 0 V
+22 0 V
+21 0 V
+21 0 V
+21 0 V
+20 0 V
+19 0 V
+20 0 V
+18 0 V
+19 0 V
+18 0 V
+17 0 V
+18 0 V
+17 0 V
+16 0 V
+17 0 V
+16 0 V
+16 0 V
+15 0 V
+16 0 V
+15 0 V
+14 0 V
+15 0 V
+14 0 V
+14 0 V
+14 0 V
+14 0 V
+13 0 V
+13 0 V
+13 0 V
+13 0 V
+13 0 V
+12 0 V
+13 0 V
+12 0 V
+12 0 V
+11 0 V
+12 0 V
+12 0 V
+11 0 V
+11 0 V
+11 0 V
+11 0 V
+11 0 V
+11 0 V
+10 0 V
+11 0 V
+10 0 V
+10 0 V
+10 0 V
+10 0 V
+10 0 V
+10 0 V
+10 0 V
+9 0 V
+10 0 V
+9 0 V
+9 0 V
+9 0 V
+9 0 V
+9 0 V
+9 0 V
+9 0 V
+9 0 V
+8 0 V
+9 0 V
+8 0 V
+9 0 V
+8 0 V
+8 0 V
+8 0 V
+9 0 V
+8 0 V
+7 0 V
+8 0 V
+8 0 V
+8 0 V
+8 0 V
+7 0 V
+8 0 V
+7 0 V
+8 0 V
+7 0 V
+7 0 V
+7 0 V
+8 0 V
+7 0 V
+7 0 V
+7 0 V
+7 -55 V
+7 0 V
+6 0 V
+7 0 V
+7 0 V
+7 0 V
+6 0 V
+7 -1 V
+6 0 V
+7 1 V
+6 0 V
+7 0 V
+6 -1 V
+6 0 V
+7 0 V
+6 0 V
+6 0 V
+6 0 V
+6 0 V
+6 0 V
+6 0 V
+6 0 V
+6 0 V
+6 0 V
+6 0 V
+6 0 V
+6 0 V
+5 0 V
+6 0 V
+6 0 V
+5 0 V
+6 0 V
+5 0 V
+6 0 V
+5 0 V
+6 0 V
+5 0 V
+6 0 V
+5 0 V
+5 0 V
+6 0 V
+5 0 V
+5 0 V
+5 0 V
+6 0 V
+5 0 V
+5 0 V
+5 0 V
+5 0 V
+5 0 V
+5 0 V
+5 0 V
+5 0 V
+5 0 V
+5 0 V
+5 0 V
+4 0 V
+5 0 V
+5 0 V
+5 0 V
+5 0 V
+4 0 V
+5 0 V
+5 0 V
+4 0 V
+5 0 V
+4 0 V
+5 0 V
+5 0 V
+4 0 V
+5 0 V
+4 0 V
+1.000 UL
+LT3
+6311 3927 M
+(jneural train) Rshow
+6395 3927 M
+399 0 V
+850 1991 M
+619 -111 V
+361 -30 V
+257 -33 V
+199 -248 V
+163 -223 V
+137 -104 V
+120 -61 V
+105 -95 V
+94 17 V
+85 -71 V
+77 -16 V
+72 -5 V
+66 -2 V
+61 -2 V
+58 -1 V
+54 0 V
+51 -1 V
+48 0 V
+46 -1 V
+44 0 V
+41 0 V
+40 1 V
+38 0 V
+36 0 V
+35 0 V
+34 -1 V
+32 0 V
+32 -1 V
+30 1 V
+29 -1 V
+29 0 V
+27 0 V
+27 0 V
+26 0 V
+25 0 V
+24 -1 V
+24 1 V
+23 -1 V
+23 0 V
+22 0 V
+21 0 V
+21 0 V
+21 0 V
+20 0 V
+19 0 V
+20 0 V
+18 0 V
+19 0 V
+18 0 V
+17 0 V
+18 0 V
+17 0 V
+16 0 V
+17 -1 V
+16 1 V
+16 -1 V
+15 0 V
+16 0 V
+15 0 V
+14 0 V
+15 0 V
+14 0 V
+14 0 V
+14 0 V
+14 0 V
+13 0 V
+13 0 V
+13 0 V
+13 0 V
+13 0 V
+12 0 V
+13 0 V
+12 0 V
+12 0 V
+11 0 V
+12 0 V
+12 0 V
+11 0 V
+11 0 V
+11 0 V
+11 0 V
+11 0 V
+11 0 V
+10 0 V
+11 0 V
+10 0 V
+10 0 V
+10 0 V
+10 0 V
+10 0 V
+10 0 V
+10 0 V
+9 0 V
+10 0 V
+9 0 V
+9 0 V
+9 0 V
+10 0 V
+8 0 V
+9 0 V
+9 0 V
+8 0 V
+9 0 V
+8 0 V
+9 0 V
+8 0 V
+8 0 V
+9 0 V
+8 0 V
+8 0 V
+8 0 V
+8 0 V
+8 0 V
+7 0 V
+8 0 V
+8 0 V
+7 0 V
+8 0 V
+7 0 V
+8 0 V
+7 0 V
+7 0 V
+8 0 V
+7 0 V
+7 0 V
+7 0 V
+7 0 V
+7 0 V
+7 0 V
+7 0 V
+6 0 V
+7 0 V
+7 0 V
+7 0 V
+6 0 V
+7 0 V
+6 0 V
+7 0 V
+6 0 V
+6 0 V
+7 0 V
+6 0 V
+6 0 V
+6 0 V
+7 0 V
+6 0 V
+6 0 V
+6 0 V
+6 0 V
+6 0 V
+6 0 V
+5 0 V
+6 0 V
+6 0 V
+6 0 V
+5 0 V
+6 0 V
+6 0 V
+5 0 V
+6 0 V
+5 0 V
+6 0 V
+5 0 V
+6 0 V
+5 0 V
+6 0 V
+5 0 V
+5 0 V
+5 0 V
+6 0 V
+5 0 V
+5 0 V
+5 0 V
+5 0 V
+5 0 V
+5 0 V
+5 0 V
+5 0 V
+5 0 V
+5 0 V
+5 0 V
+5 0 V
+5 0 V
+5 0 V
+5 0 V
+5 0 V
+4 0 V
+5 0 V
+1.000 UL
+LTb
+6311 3787 M
+(fann test) Rshow
+6395 3787 M
+399 0 V
+798 4055 M
+619 61 V
+361 40 V
+257 50 V
+199 49 V
+163 -128 V
+137 17 V
+120 -24 V
+105 -76 V
+94 64 V
+85 -4 V
+77 -6 V
+72 -11 V
+66 -15 V
+61 20 V
+58 -10 V
+54 -4 V
+51 19 V
+48 -5 V
+46 102 V
+44 -65 V
+41 -20 V
+40 -10 V
+38 -5 V
+36 -3 V
+35 4 V
+34 -10 V
+32 1 V
+32 -1 V
+30 -7 V
+29 5 V
+29 2 V
+27 -1 V
+27 -5 V
+26 5 V
+25 -5 V
+24 -3 V
+24 5 V
+23 -1 V
+23 -5 V
+22 1 V
+21 1 V
+21 4 V
+21 -2 V
+20 -4 V
+19 4 V
+20 -2 V
+18 1 V
+19 -3 V
+18 5 V
+17 0 V
+18 -4 V
+17 3 V
+16 2 V
+17 -5 V
+16 3 V
+16 -3 V
+15 2 V
+16 -2 V
+15 5 V
+14 -1 V
+15 -4 V
+14 3 V
+14 -2 V
+14 4 V
+14 0 V
+13 -4 V
+13 0 V
+13 3 V
+13 2 V
+13 -4 V
+12 3 V
+13 -3 V
+12 3 V
+12 1 V
+11 -3 V
+12 1 V
+12 -1 V
+11 4 V
+11 -1 V
+11 2 V
+11 -4 V
+11 3 V
+11 1 V
+10 -3 V
+11 1 V
+10 4 V
+10 -3 V
+10 1 V
+10 2 V
+10 -3 V
+10 2 V
+10 1 V
+9 0 V
+10 1 V
+9 1 V
+9 2 V
+9 4 V
+9 6 V
+9 -48 V
+9 -57 V
+9 -6 V
+9 0 V
+8 1 V
+9 1 V
+8 1 V
+9 1 V
+8 1 V
+8 1 V
+8 1 V
+8 1 V
+8 1 V
+8 1 V
+8 0 V
+8 -1 V
+8 7 V
+7 -2 V
+8 -1 V
+8 1 V
+7 0 V
+7 1 V
+8 0 V
+7 0 V
+7 1 V
+7 1 V
+8 1 V
+7 0 V
+7 0 V
+7 0 V
+6 1 V
+7 -1 V
+7 2 V
+7 -2 V
+6 4 V
+7 -2 V
+7 0 V
+6 2 V
+7 0 V
+6 -1 V
+7 1 V
+6 -1 V
+6 3 V
+6 -3 V
+7 3 V
+6 0 V
+6 -2 V
+6 2 V
+6 -1 V
+6 1 V
+6 -1 V
+6 1 V
+6 0 V
+6 0 V
+6 0 V
+5 1 V
+6 0 V
+6 0 V
+6 0 V
+5 0 V
+6 1 V
+5 1 V
+6 -3 V
+5 1 V
+6 1 V
+5 0 V
+6 0 V
+5 0 V
+5 1 V
+6 -1 V
+5 1 V
+5 -1 V
+5 1 V
+5 0 V
+6 -1 V
+5 1 V
+5 0 V
+5 0 V
+5 0 V
+5 0 V
+5 0 V
+5 0 V
+5 0 V
+5 1 V
+5 -2 V
+4 2 V
+5 0 V
+5 -1 V
+5 0 V
+4 1 V
+5 -1 V
+5 1 V
+5 -1 V
+4 1 V
+5 -1 V
+4 1 V
+5 0 V
+4 0 V
+5 0 V
+4 0 V
+5 -1 V
+1.000 UL
+LT0
+6311 3647 M
+(fann \(0.75\) test) Rshow
+6395 3647 M
+399 0 V
+798 4015 M
+619 -52 V
+361 16 V
+257 5 V
+199 6 V
+163 6 V
+137 -6 V
+121 33 V
+105 -11 V
+94 7 V
+86 -12 V
+78 14 V
+71 3 V
+67 -9 V
+61 8 V
+58 -7 V
+54 0 V
+50 1 V
+49 0 V
+45 0 V
+44 1 V
+41 0 V
+40 0 V
+38 0 V
+36 5 V
+35 1 V
+33 -5 V
+33 0 V
+31 5 V
+30 0 V
+30 0 V
+28 0 V
+27 -4 V
+27 4 V
+26 -4 V
+25 4 V
+25 0 V
+24 0 V
+23 0 V
+22 0 V
+22 -3 V
+22 0 V
+21 3 V
+20 0 V
+20 0 V
+20 -1 V
+19 -2 V
+19 0 V
+18 0 V
+18 -1 V
+18 0 V
+17 0 V
+17 2 V
+17 -1 V
+16 0 V
+16 -1 V
+16 -2 V
+16 -1 V
+15 1 V
+15 -2 V
+15 -2 V
+14 -4 V
+14 -6 V
+14 -7 V
+14 -2 V
+14 -2 V
+13 0 V
+13 0 V
+13 0 V
+13 0 V
+13 1 V
+12 -1 V
+13 0 V
+12 2 V
+12 1 V
+12 0 V
+11 0 V
+12 1 V
+11 1 V
+11 1 V
+11 0 V
+11 2 V
+11 1 V
+11 1 V
+10 0 V
+11 0 V
+10 1 V
+10 1 V
+10 1 V
+10 1 V
+10 -1 V
+10 2 V
+10 0 V
+9 1 V
+10 1 V
+9 0 V
+9 1 V
+9 0 V
+9 0 V
+9 1 V
+9 0 V
+9 1 V
+9 1 V
+8 0 V
+9 1 V
+8 0 V
+9 1 V
+8 0 V
+8 0 V
+8 0 V
+9 1 V
+8 1 V
+7 0 V
+8 1 V
+8 -1 V
+8 1 V
+8 1 V
+7 0 V
+8 1 V
+7 0 V
+7 0 V
+8 1 V
+7 0 V
+7 0 V
+7 1 V
+8 0 V
+7 0 V
+7 0 V
+7 0 V
+6 1 V
+7 0 V
+7 0 V
+7 0 V
+7 1 V
+6 1 V
+7 0 V
+6 0 V
+7 0 V
+6 1 V
+7 0 V
+6 0 V
+6 0 V
+7 1 V
+6 0 V
+6 0 V
+6 0 V
+6 1 V
+6 0 V
+6 0 V
+6 0 V
+6 1 V
+6 0 V
+6 0 V
+6 0 V
+5 0 V
+6 1 V
+6 0 V
+5 0 V
+6 0 V
+6 1 V
+5 -1 V
+6 0 V
+5 1 V
+6 0 V
+5 0 V
+5 0 V
+6 0 V
+5 1 V
+5 0 V
+6 0 V
+5 0 V
+5 0 V
+5 1 V
+5 0 V
+6 0 V
+5 1 V
+5 0 V
+5 0 V
+5 0 V
+5 0 V
+5 0 V
+4 1 V
+5 0 V
+5 0 V
+5 0 V
+5 0 V
+5 0 V
+4 1 V
+5 0 V
+5 0 V
+5 0 V
+4 0 V
+5 0 V
+4 0 V
+5 1 V
+5 -1 V
+4 0 V
+5 1 V
+4 0 V
+5 0 V
+1.000 UL
+LT1
+6311 3507 M
+(fann \(fix\) train) Rshow
+6395 3507 M
+399 0 V
+798 1457 M
+619 -7 V
+361 -2 V
+257 -1 V
+199 -58 V
+163 -52 V
+137 0 V
+120 -1 V
+105 -33 V
+94 -22 V
+85 0 V
+77 -1 V
+72 0 V
+66 0 V
+61 0 V
+58 0 V
+54 -1 V
+51 1 V
+48 -1 V
+46 -54 V
+44 -55 V
+41 -1 V
+40 0 V
+38 0 V
+36 0 V
+35 0 V
+34 0 V
+32 0 V
+32 0 V
+30 -1 V
+29 1 V
+29 -1 V
+27 0 V
+27 0 V
+26 0 V
+25 0 V
+24 0 V
+24 0 V
+23 0 V
+23 0 V
+22 0 V
+21 0 V
+21 0 V
+21 0 V
+20 0 V
+19 0 V
+20 0 V
+18 0 V
+19 0 V
+18 0 V
+17 0 V
+18 0 V
+17 0 V
+16 0 V
+17 0 V
+16 0 V
+16 0 V
+15 0 V
+16 0 V
+15 0 V
+14 0 V
+15 0 V
+14 0 V
+14 0 V
+14 0 V
+14 0 V
+13 0 V
+13 0 V
+13 0 V
+13 0 V
+13 0 V
+12 0 V
+13 0 V
+12 0 V
+12 0 V
+11 0 V
+12 0 V
+12 0 V
+11 0 V
+11 0 V
+11 0 V
+11 0 V
+11 0 V
+11 0 V
+10 0 V
+11 0 V
+10 0 V
+10 0 V
+10 0 V
+10 0 V
+10 0 V
+10 0 V
+10 0 V
+9 0 V
+10 0 V
+9 0 V
+9 0 V
+9 0 V
+9 0 V
+9 -53 V
+9 -2 V
+9 0 V
+9 0 V
+8 0 V
+9 0 V
+8 0 V
+9 0 V
+8 0 V
+8 0 V
+8 0 V
+8 0 V
+8 0 V
+8 0 V
+8 0 V
+8 0 V
+8 0 V
+7 0 V
+8 0 V
+8 0 V
+7 0 V
+7 0 V
+8 0 V
+7 0 V
+7 -1 V
+7 1 V
+8 -1 V
+7 1 V
+7 -1 V
+7 0 V
+6 1 V
+7 -1 V
+7 1 V
+7 -1 V
+6 1 V
+7 -1 V
+7 0 V
+6 1 V
+7 0 V
+6 -1 V
+7 1 V
+6 -1 V
+6 1 V
+6 -1 V
+7 1 V
+6 0 V
+6 -1 V
+6 1 V
+6 -1 V
+6 1 V
+6 -1 V
+6 1 V
+6 0 V
+6 0 V
+6 -1 V
+5 1 V
+6 -1 V
+6 1 V
+6 0 V
+5 0 V
+6 0 V
+5 0 V
+6 -1 V
+5 0 V
+6 1 V
+5 0 V
+6 0 V
+5 0 V
+5 0 V
+6 0 V
+5 0 V
+5 -1 V
+5 1 V
+5 0 V
+6 0 V
+5 0 V
+5 0 V
+5 0 V
+5 0 V
+5 0 V
+5 0 V
+5 0 V
+5 0 V
+5 0 V
+5 0 V
+4 0 V
+5 0 V
+5 0 V
+5 0 V
+4 0 V
+5 0 V
+5 0 V
+5 0 V
+4 0 V
+5 0 V
+4 0 V
+5 0 V
+4 0 V
+5 0 V
+4 0 V
+5 0 V
+1.000 UL
+LT2
+6311 3367 M
+(lwnn test) Rshow
+6395 3367 M
+399 0 V
+798 3325 M
+619 105 V
+361 185 V
+257 -16 V
+199 6 V
+163 -28 V
+137 12 V
+120 -8 V
+105 13 V
+94 37 V
+85 115 V
+77 -5 V
+72 7 V
+66 5 V
+61 -16 V
+58 9 V
+54 -7 V
+51 15 V
+48 -8 V
+46 -5 V
+44 -1 V
+41 0 V
+40 1 V
+38 3 V
+36 -10 V
+35 8 V
+34 -6 V
+32 3 V
+32 4 V
+30 -9 V
+29 2 V
+29 -8 V
+27 0 V
+27 8 V
+26 -1 V
+25 3 V
+24 -5 V
+24 0 V
+23 4 V
+23 -6 V
+22 0 V
+21 7 V
+21 -8 V
+21 10 V
+20 -7 V
+19 -1 V
+20 6 V
+18 -9 V
+19 5 V
+18 -1 V
+17 5 V
+18 -4 V
+17 2 V
+16 0 V
+17 0 V
+16 2 V
+16 -4 V
+15 -2 V
+16 2 V
+15 0 V
+14 4 V
+15 4 V
+14 -2 V
+14 2 V
+14 -2 V
+14 1 V
+13 -4 V
+13 0 V
+13 -1 V
+13 -6 V
+13 7 V
+12 -2 V
+13 3 V
+12 -8 V
+12 6 V
+11 1 V
+12 -2 V
+12 0 V
+11 2 V
+11 -2 V
+11 -3 V
+11 0 V
+11 -1 V
+11 1 V
+10 -1 V
+11 0 V
+10 0 V
+10 1 V
+10 -7 V
+10 3 V
+10 -1 V
+10 8 V
+10 -2 V
+9 -13 V
+10 6 V
+9 2 V
+9 0 V
+9 -4 V
+9 2 V
+9 2 V
+9 3 V
+9 -1 V
+9 -6 V
+8 3 V
+9 1 V
+8 -2 V
+9 -3 V
+8 6 V
+8 -9 V
+8 8 V
+9 12 V
+8 -6 V
+7 -1 V
+8 -12 V
+8 -3 V
+8 2 V
+8 -1 V
+7 -5 V
+8 0 V
+7 1 V
+8 0 V
+7 -4 V
+7 0 V
+7 -1 V
+8 -4 V
+7 3 V
+7 5 V
+7 -3 V
+7 -2 V
+7 -10 V
+6 -9 V
+7 -11 V
+7 1 V
+7 -3 V
+6 -4 V
+7 7 V
+6 1 V
+7 5 V
+6 -5 V
+7 1 V
+6 -4 V
+6 8 V
+7 -2 V
+6 -1 V
+6 2 V
+6 -3 V
+6 8 V
+6 1 V
+6 -8 V
+6 3 V
+6 1 V
+6 0 V
+6 1 V
+6 -5 V
+6 0 V
+5 4 V
+6 -2 V
+6 -4 V
+5 2 V
+6 0 V
+5 -1 V
+6 4 V
+5 -4 V
+6 6 V
+5 -4 V
+6 7 V
+5 -3 V
+5 3 V
+6 0 V
+5 -5 V
+5 3 V
+5 5 V
+6 -1 V
+5 -1 V
+5 3 V
+5 0 V
+5 -3 V
+5 2 V
+5 -2 V
+5 2 V
+5 -2 V
+5 4 V
+5 3 V
+5 -1 V
+4 1 V
+5 2 V
+5 -2 V
+5 -2 V
+5 2 V
+4 -2 V
+5 1 V
+5 -1 V
+4 8 V
+5 -1 V
+4 -1 V
+5 -5 V
+5 1 V
+4 0 V
+5 1 V
+4 -2 V
+1.000 UL
+LT3
+6311 3227 M
+(jneural test) Rshow
+6395 3227 M
+399 0 V
+850 3458 M
+619 481 V
+361 -10 V
+257 -101 V
+199 -61 V
+163 -160 V
+137 127 V
+120 -31 V
+105 15 V
+94 84 V
+85 -122 V
+77 -6 V
+72 17 V
+66 16 V
+61 11 V
+58 9 V
+54 7 V
+51 6 V
+48 5 V
+46 5 V
+44 4 V
+41 1 V
+40 18 V
+38 -24 V
+36 28 V
+35 -22 V
+34 26 V
+32 -21 V
+32 25 V
+30 -21 V
+29 25 V
+29 -20 V
+27 23 V
+27 -20 V
+26 23 V
+25 -19 V
+24 22 V
+24 -19 V
+23 21 V
+23 -18 V
+22 20 V
+21 -17 V
+21 19 V
+21 -17 V
+20 19 V
+19 -17 V
+20 19 V
+18 -17 V
+19 18 V
+18 -16 V
+17 17 V
+18 -14 V
+17 15 V
+16 -13 V
+17 14 V
+16 -12 V
+16 14 V
+15 -12 V
+16 14 V
+15 -12 V
+14 14 V
+15 -13 V
+14 15 V
+14 -13 V
+14 15 V
+14 -14 V
+13 16 V
+13 -14 V
+13 15 V
+13 -14 V
+13 15 V
+12 -13 V
+13 15 V
+12 -14 V
+12 15 V
+11 -13 V
+12 14 V
+12 -13 V
+11 14 V
+11 -13 V
+11 14 V
+11 -12 V
+11 14 V
+11 -13 V
+10 14 V
+11 -13 V
+10 14 V
+10 -13 V
+10 13 V
+10 -12 V
+10 13 V
+10 -12 V
+10 13 V
+9 -12 V
+10 13 V
+9 -12 V
+9 13 V
+9 -12 V
+10 13 V
+8 0 V
+9 -12 V
+9 13 V
+8 0 V
+9 -12 V
+8 13 V
+9 -12 V
+8 12 V
+8 -11 V
+9 12 V
+8 -11 V
+8 12 V
+8 -12 V
+8 12 V
+8 -11 V
+7 12 V
+8 -11 V
+8 12 V
+7 -12 V
+8 12 V
+7 -11 V
+8 12 V
+7 -11 V
+7 11 V
+8 -11 V
+7 12 V
+7 -11 V
+7 11 V
+7 -11 V
+7 12 V
+7 -11 V
+7 11 V
+6 -10 V
+7 11 V
+7 -11 V
+7 11 V
+6 -10 V
+7 11 V
+6 -11 V
+7 11 V
+6 -10 V
+6 10 V
+7 -10 V
+6 11 V
+6 -10 V
+6 10 V
+7 -10 V
+6 11 V
+6 -10 V
+6 10 V
+6 -10 V
+6 10 V
+6 -9 V
+5 10 V
+6 -10 V
+6 10 V
+6 -10 V
+5 10 V
+6 -9 V
+6 10 V
+5 -10 V
+6 10 V
+5 -9 V
+6 9 V
+5 -9 V
+6 10 V
+5 -10 V
+6 10 V
+5 -9 V
+5 9 V
+5 -9 V
+6 10 V
+5 -10 V
+5 10 V
+5 -9 V
+5 9 V
+5 -9 V
+5 10 V
+5 -10 V
+5 10 V
+5 -9 V
+5 9 V
+5 -9 V
+5 9 V
+5 -9 V
+5 10 V
+5 -9 V
+5 9 V
+4 -9 V
+5 9 V
+stroke
+grestore
+end
+showpage
+%%Trailer
+%%DocumentFonts: Helvetica
+%%Pages: 1
+
+%%EndDocument
+ @endspecial 2430 3114 a
+ currentpoint grestore moveto
+ 2430 3114 a 330 5363 a Fy(Figure)k(17:)39
+b(Graph)28 b(sho)n(wing)g(the)i(mean)f(square)f(error)f(as)h(a)h
+(function)h(of)f(the)g(time)h(for)f(the)330 5463 y(card)23
+b(problem.)35 b(The)25 b(libraries)d(ha)n(v)n(e)h(di\016culties)i
+(training)e(on)h(this)g(problem)g(and)g(hence)g(the)330
+5562 y(mean)j(square)g(error)e(for)i(the)h(test)g(data)f(is)h(high.)p
+Black Black 1788 5919 a(33)p Black eop end
+%%Page: 34 38
+TeXDict begin 34 37 bop Black 330 70 a Fp(6.2)82 b(Qualit)n(y)27
+b(Benc)n(hmark)1365 b(6)83 b(BENCHMARKS)p 330 103 3000
+4 v Black Black 330 399 a
+ gsave currentpoint currentpoint translate -90 neg rotate neg exch
+neg exch translate
+ 330 399 a @beginspecial 50
+ at llx 50 @lly 554 @urx 770 @ury 3600 @rhi @setspecial
+%%BeginDocument: figs/gene.ps
+%!PS-Adobe-2.0
+%%Title: ../doc/figs/gene.ps
+%%Creator: gnuplot 3.7 patchlevel 3
+%%CreationDate: Fri Oct 24 13:10:39 2003
+%%DocumentFonts: (atend)
+%%BoundingBox: 50 50 554 770
+%%Orientation: Landscape
+%%Pages: (atend)
+%%EndComments
+/gnudict 256 dict def
+gnudict begin
+/Color true def
+/Solid true def
+/gnulinewidth 5.000 def
+/userlinewidth gnulinewidth def
+/vshift -46 def
+/dl {10 mul} def
+/hpt_ 31.5 def
+/vpt_ 31.5 def
+/hpt hpt_ def
+/vpt vpt_ def
+/M {moveto} bind def
+/L {lineto} bind def
+/R {rmoveto} bind def
+/V {rlineto} bind def
+/vpt2 vpt 2 mul def
+/hpt2 hpt 2 mul def
+/Lshow { currentpoint stroke M
+  0 vshift R show } def
+/Rshow { currentpoint stroke M
+  dup stringwidth pop neg vshift R show } def
+/Cshow { currentpoint stroke M
+  dup stringwidth pop -2 div vshift R show } def
+/UP { dup vpt_ mul /vpt exch def hpt_ mul /hpt exch def
+  /hpt2 hpt 2 mul def /vpt2 vpt 2 mul def } def
+/DL { Color {setrgbcolor Solid {pop []} if 0 setdash }
+ {pop pop pop Solid {pop []} if 0 setdash} ifelse } def
+/BL { stroke userlinewidth 2 mul setlinewidth } def
+/AL { stroke userlinewidth 2 div setlinewidth } def
+/UL { dup gnulinewidth mul /userlinewidth exch def
+      dup 1 lt {pop 1} if 10 mul /udl exch def } def
+/PL { stroke userlinewidth setlinewidth } def
+/LTb { BL [] 0 0 0 DL } def
+/LTa { AL [1 udl mul 2 udl mul] 0 setdash 0 0 0 setrgbcolor } def
+/LT0 { PL [] 1 0 0 DL } def
+/LT1 { PL [4 dl 2 dl] 0 1 0 DL } def
+/LT2 { PL [2 dl 3 dl] 0 0 1 DL } def
+/LT3 { PL [1 dl 1.5 dl] 1 0 1 DL } def
+/LT4 { PL [5 dl 2 dl 1 dl 2 dl] 0 1 1 DL } def
+/LT5 { PL [4 dl 3 dl 1 dl 3 dl] 1 1 0 DL } def
+/LT6 { PL [2 dl 2 dl 2 dl 4 dl] 0 0 0 DL } def
+/LT7 { PL [2 dl 2 dl 2 dl 2 dl 2 dl 4 dl] 1 0.3 0 DL } def
+/LT8 { PL [2 dl 2 dl 2 dl 2 dl 2 dl 2 dl 2 dl 4 dl] 0.5 0.5 0.5 DL } def
+/Pnt { stroke [] 0 setdash
+   gsave 1 setlinecap M 0 0 V stroke grestore } def
+/Dia { stroke [] 0 setdash 2 copy vpt add M
+  hpt neg vpt neg V hpt vpt neg V
+  hpt vpt V hpt neg vpt V closepath stroke
+  Pnt } def
+/Pls { stroke [] 0 setdash vpt sub M 0 vpt2 V
+  currentpoint stroke M
+  hpt neg vpt neg R hpt2 0 V stroke
+  } def
+/Box { stroke [] 0 setdash 2 copy exch hpt sub exch vpt add M
+  0 vpt2 neg V hpt2 0 V 0 vpt2 V
+  hpt2 neg 0 V closepath stroke
+  Pnt } def
+/Crs { stroke [] 0 setdash exch hpt sub exch vpt add M
+  hpt2 vpt2 neg V currentpoint stroke M
+  hpt2 neg 0 R hpt2 vpt2 V stroke } def
+/TriU { stroke [] 0 setdash 2 copy vpt 1.12 mul add M
+  hpt neg vpt -1.62 mul V
+  hpt 2 mul 0 V
+  hpt neg vpt 1.62 mul V closepath stroke
+  Pnt  } def
+/Star { 2 copy Pls Crs } def
+/BoxF { stroke [] 0 setdash exch hpt sub exch vpt add M
+  0 vpt2 neg V  hpt2 0 V  0 vpt2 V
+  hpt2 neg 0 V  closepath fill } def
+/TriUF { stroke [] 0 setdash vpt 1.12 mul add M
+  hpt neg vpt -1.62 mul V
+  hpt 2 mul 0 V
+  hpt neg vpt 1.62 mul V closepath fill } def
+/TriD { stroke [] 0 setdash 2 copy vpt 1.12 mul sub M
+  hpt neg vpt 1.62 mul V
+  hpt 2 mul 0 V
+  hpt neg vpt -1.62 mul V closepath stroke
+  Pnt  } def
+/TriDF { stroke [] 0 setdash vpt 1.12 mul sub M
+  hpt neg vpt 1.62 mul V
+  hpt 2 mul 0 V
+  hpt neg vpt -1.62 mul V closepath fill} def
+/DiaF { stroke [] 0 setdash vpt add M
+  hpt neg vpt neg V hpt vpt neg V
+  hpt vpt V hpt neg vpt V closepath fill } def
+/Pent { stroke [] 0 setdash 2 copy gsave
+  translate 0 hpt M 4 {72 rotate 0 hpt L} repeat
+  closepath stroke grestore Pnt } def
+/PentF { stroke [] 0 setdash gsave
+  translate 0 hpt M 4 {72 rotate 0 hpt L} repeat
+  closepath fill grestore } def
+/Circle { stroke [] 0 setdash 2 copy
+  hpt 0 360 arc stroke Pnt } def
+/CircleF { stroke [] 0 setdash hpt 0 360 arc fill } def
+/C0 { BL [] 0 setdash 2 copy moveto vpt 90 450  arc } bind def
+/C1 { BL [] 0 setdash 2 copy        moveto
+       2 copy  vpt 0 90 arc closepath fill
+               vpt 0 360 arc closepath } bind def
+/C2 { BL [] 0 setdash 2 copy moveto
+       2 copy  vpt 90 180 arc closepath fill
+               vpt 0 360 arc closepath } bind def
+/C3 { BL [] 0 setdash 2 copy moveto
+       2 copy  vpt 0 180 arc closepath fill
+               vpt 0 360 arc closepath } bind def
+/C4 { BL [] 0 setdash 2 copy moveto
+       2 copy  vpt 180 270 arc closepath fill
+               vpt 0 360 arc closepath } bind def
+/C5 { BL [] 0 setdash 2 copy moveto
+       2 copy  vpt 0 90 arc
+       2 copy moveto
+       2 copy  vpt 180 270 arc closepath fill
+               vpt 0 360 arc } bind def
+/C6 { BL [] 0 setdash 2 copy moveto
+      2 copy  vpt 90 270 arc closepath fill
+              vpt 0 360 arc closepath } bind def
+/C7 { BL [] 0 setdash 2 copy moveto
+      2 copy  vpt 0 270 arc closepath fill
+              vpt 0 360 arc closepath } bind def
+/C8 { BL [] 0 setdash 2 copy moveto
+      2 copy vpt 270 360 arc closepath fill
+              vpt 0 360 arc closepath } bind def
+/C9 { BL [] 0 setdash 2 copy moveto
+      2 copy  vpt 270 450 arc closepath fill
+              vpt 0 360 arc closepath } bind def
+/C10 { BL [] 0 setdash 2 copy 2 copy moveto vpt 270 360 arc closepath fill
+       2 copy moveto
+       2 copy vpt 90 180 arc closepath fill
+               vpt 0 360 arc closepath } bind def
+/C11 { BL [] 0 setdash 2 copy moveto
+       2 copy  vpt 0 180 arc closepath fill
+       2 copy moveto
+       2 copy  vpt 270 360 arc closepath fill
+               vpt 0 360 arc closepath } bind def
+/C12 { BL [] 0 setdash 2 copy moveto
+       2 copy  vpt 180 360 arc closepath fill
+               vpt 0 360 arc closepath } bind def
+/C13 { BL [] 0 setdash  2 copy moveto
+       2 copy  vpt 0 90 arc closepath fill
+       2 copy moveto
+       2 copy  vpt 180 360 arc closepath fill
+               vpt 0 360 arc closepath } bind def
+/C14 { BL [] 0 setdash 2 copy moveto
+       2 copy  vpt 90 360 arc closepath fill
+               vpt 0 360 arc } bind def
+/C15 { BL [] 0 setdash 2 copy vpt 0 360 arc closepath fill
+               vpt 0 360 arc closepath } bind def
+/Rec   { newpath 4 2 roll moveto 1 index 0 rlineto 0 exch rlineto
+       neg 0 rlineto closepath } bind def
+/Square { dup Rec } bind def
+/Bsquare { vpt sub exch vpt sub exch vpt2 Square } bind def
+/S0 { BL [] 0 setdash 2 copy moveto 0 vpt rlineto BL Bsquare } bind def
+/S1 { BL [] 0 setdash 2 copy vpt Square fill Bsquare } bind def
+/S2 { BL [] 0 setdash 2 copy exch vpt sub exch vpt Square fill Bsquare } bind def
+/S3 { BL [] 0 setdash 2 copy exch vpt sub exch vpt2 vpt Rec fill Bsquare } bind def
+/S4 { BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt Square fill Bsquare } bind def
+/S5 { BL [] 0 setdash 2 copy 2 copy vpt Square fill
+       exch vpt sub exch vpt sub vpt Square fill Bsquare } bind def
+/S6 { BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt vpt2 Rec fill Bsquare } bind def
+/S7 { BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt vpt2 Rec fill
+       2 copy vpt Square fill
+       Bsquare } bind def
+/S8 { BL [] 0 setdash 2 copy vpt sub vpt Square fill Bsquare } bind def
+/S9 { BL [] 0 setdash 2 copy vpt sub vpt vpt2 Rec fill Bsquare } bind def
+/S10 { BL [] 0 setdash 2 copy vpt sub vpt Square fill 2 copy exch vpt sub exch vpt Square fill
+       Bsquare } bind def
+/S11 { BL [] 0 setdash 2 copy vpt sub vpt Square fill 2 copy exch vpt sub exch vpt2 vpt Rec fill
+       Bsquare } bind def
+/S12 { BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt2 vpt Rec fill Bsquare } bind def
+/S13 { BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt2 vpt Rec fill
+       2 copy vpt Square fill Bsquare } bind def
+/S14 { BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt2 vpt Rec fill
+       2 copy exch vpt sub exch vpt Square fill Bsquare } bind def
+/S15 { BL [] 0 setdash 2 copy Bsquare fill Bsquare } bind def
+/D0 { gsave translate 45 rotate 0 0 S0 stroke grestore } bind def
+/D1 { gsave translate 45 rotate 0 0 S1 stroke grestore } bind def
+/D2 { gsave translate 45 rotate 0 0 S2 stroke grestore } bind def
+/D3 { gsave translate 45 rotate 0 0 S3 stroke grestore } bind def
+/D4 { gsave translate 45 rotate 0 0 S4 stroke grestore } bind def
+/D5 { gsave translate 45 rotate 0 0 S5 stroke grestore } bind def
+/D6 { gsave translate 45 rotate 0 0 S6 stroke grestore } bind def
+/D7 { gsave translate 45 rotate 0 0 S7 stroke grestore } bind def
+/D8 { gsave translate 45 rotate 0 0 S8 stroke grestore } bind def
+/D9 { gsave translate 45 rotate 0 0 S9 stroke grestore } bind def
+/D10 { gsave translate 45 rotate 0 0 S10 stroke grestore } bind def
+/D11 { gsave translate 45 rotate 0 0 S11 stroke grestore } bind def
+/D12 { gsave translate 45 rotate 0 0 S12 stroke grestore } bind def
+/D13 { gsave translate 45 rotate 0 0 S13 stroke grestore } bind def
+/D14 { gsave translate 45 rotate 0 0 S14 stroke grestore } bind def
+/D15 { gsave translate 45 rotate 0 0 S15 stroke grestore } bind def
+/DiaE { stroke [] 0 setdash vpt add M
+  hpt neg vpt neg V hpt vpt neg V
+  hpt vpt V hpt neg vpt V closepath stroke } def
+/BoxE { stroke [] 0 setdash exch hpt sub exch vpt add M
+  0 vpt2 neg V hpt2 0 V 0 vpt2 V
+  hpt2 neg 0 V closepath stroke } def
+/TriUE { stroke [] 0 setdash vpt 1.12 mul add M
+  hpt neg vpt -1.62 mul V
+  hpt 2 mul 0 V
+  hpt neg vpt 1.62 mul V closepath stroke } def
+/TriDE { stroke [] 0 setdash vpt 1.12 mul sub M
+  hpt neg vpt 1.62 mul V
+  hpt 2 mul 0 V
+  hpt neg vpt -1.62 mul V closepath stroke } def
+/PentE { stroke [] 0 setdash gsave
+  translate 0 hpt M 4 {72 rotate 0 hpt L} repeat
+  closepath stroke grestore } def
+/CircE { stroke [] 0 setdash 
+  hpt 0 360 arc stroke } def
+/Opaque { gsave closepath 1 setgray fill grestore 0 setgray closepath } def
+/DiaW { stroke [] 0 setdash vpt add M
+  hpt neg vpt neg V hpt vpt neg V
+  hpt vpt V hpt neg vpt V Opaque stroke } def
+/BoxW { stroke [] 0 setdash exch hpt sub exch vpt add M
+  0 vpt2 neg V hpt2 0 V 0 vpt2 V
+  hpt2 neg 0 V Opaque stroke } def
+/TriUW { stroke [] 0 setdash vpt 1.12 mul add M
+  hpt neg vpt -1.62 mul V
+  hpt 2 mul 0 V
+  hpt neg vpt 1.62 mul V Opaque stroke } def
+/TriDW { stroke [] 0 setdash vpt 1.12 mul sub M
+  hpt neg vpt 1.62 mul V
+  hpt 2 mul 0 V
+  hpt neg vpt -1.62 mul V Opaque stroke } def
+/PentW { stroke [] 0 setdash gsave
+  translate 0 hpt M 4 {72 rotate 0 hpt L} repeat
+  Opaque stroke grestore } def
+/CircW { stroke [] 0 setdash 
+  hpt 0 360 arc Opaque stroke } def
+/BoxFill { gsave Rec 1 setgray fill grestore } def
+/Symbol-Oblique /Symbol findfont [1 0 .167 1 0 0] makefont
+dup length dict begin {1 index /FID eq {pop pop} {def} ifelse} forall
+currentdict end definefont pop
+end
+%%EndProlog
+%%Page: 1 1
+gnudict begin
+gsave
+50 50 translate
+0.100 0.100 scale
+90 rotate
+0 -5040 translate
+0 setgray
+newpath
+(Helvetica) findfont 140 scalefont setfont
+1.000 UL
+LTb
+1.000 UL
+LTa
+798 420 M
+6164 0 V
+1.000 UL
+LTb
+798 420 M
+63 0 V
+6101 0 R
+-63 0 V
+714 420 M
+( 0.05) Rshow
+1.000 UL
+LTa
+798 840 M
+6164 0 V
+1.000 UL
+LTb
+798 840 M
+63 0 V
+6101 0 R
+-63 0 V
+714 840 M
+( 0.1) Rshow
+1.000 UL
+LTa
+798 1260 M
+6164 0 V
+1.000 UL
+LTb
+798 1260 M
+63 0 V
+6101 0 R
+-63 0 V
+-6185 0 R
+( 0.15) Rshow
+1.000 UL
+LTa
+798 1680 M
+6164 0 V
+1.000 UL
+LTb
+798 1680 M
+63 0 V
+6101 0 R
+-63 0 V
+-6185 0 R
+( 0.2) Rshow
+1.000 UL
+LTa
+798 2100 M
+6164 0 V
+1.000 UL
+LTb
+798 2100 M
+63 0 V
+6101 0 R
+-63 0 V
+-6185 0 R
+( 0.25) Rshow
+1.000 UL
+LTa
+798 2520 M
+6164 0 V
+1.000 UL
+LTb
+798 2520 M
+63 0 V
+6101 0 R
+-63 0 V
+-6185 0 R
+( 0.3) Rshow
+1.000 UL
+LTa
+798 2940 M
+6164 0 V
+1.000 UL
+LTb
+798 2940 M
+63 0 V
+6101 0 R
+-63 0 V
+-6185 0 R
+( 0.35) Rshow
+1.000 UL
+LTa
+798 3360 M
+4085 0 V
+1995 0 R
+84 0 V
+1.000 UL
+LTb
+798 3360 M
+63 0 V
+6101 0 R
+-63 0 V
+-6185 0 R
+( 0.4) Rshow
+1.000 UL
+LTa
+798 3780 M
+4085 0 V
+1995 0 R
+84 0 V
+1.000 UL
+LTb
+798 3780 M
+63 0 V
+6101 0 R
+-63 0 V
+-6185 0 R
+( 0.45) Rshow
+1.000 UL
+LTa
+798 4200 M
+4085 0 V
+1995 0 R
+84 0 V
+1.000 UL
+LTb
+798 4200 M
+63 0 V
+6101 0 R
+-63 0 V
+-6185 0 R
+( 0.5) Rshow
+1.000 UL
+LTa
+798 4620 M
+6164 0 V
+1.000 UL
+LTb
+798 4620 M
+63 0 V
+6101 0 R
+-63 0 V
+-6185 0 R
+( 0.55) Rshow
+1.000 UL
+LTa
+798 420 M
+0 4200 V
+1.000 UL
+LTb
+798 420 M
+0 63 V
+0 4137 R
+0 -63 V
+798 280 M
+( 1) Cshow
+1417 420 M
+0 31 V
+0 4169 R
+0 -31 V
+1778 420 M
+0 31 V
+0 4169 R
+0 -31 V
+2035 420 M
+0 31 V
+0 4169 R
+0 -31 V
+2234 420 M
+0 31 V
+0 4169 R
+0 -31 V
+2397 420 M
+0 31 V
+0 4169 R
+0 -31 V
+2534 420 M
+0 31 V
+0 4169 R
+0 -31 V
+2654 420 M
+0 31 V
+0 4169 R
+0 -31 V
+2759 420 M
+0 31 V
+0 4169 R
+0 -31 V
+1.000 UL
+LTa
+2853 420 M
+0 4200 V
+1.000 UL
+LTb
+2853 420 M
+0 63 V
+0 4137 R
+0 -63 V
+0 -4277 R
+( 10) Cshow
+3471 420 M
+0 31 V
+0 4169 R
+0 -31 V
+3833 420 M
+0 31 V
+0 4169 R
+0 -31 V
+4090 420 M
+0 31 V
+0 4169 R
+0 -31 V
+4289 420 M
+0 31 V
+0 4169 R
+0 -31 V
+4452 420 M
+0 31 V
+0 4169 R
+0 -31 V
+4589 420 M
+0 31 V
+0 4169 R
+0 -31 V
+4708 420 M
+0 31 V
+0 4169 R
+0 -31 V
+4813 420 M
+0 31 V
+0 4169 R
+0 -31 V
+1.000 UL
+LTa
+4907 420 M
+0 2737 V
+0 1400 R
+0 63 V
+1.000 UL
+LTb
+4907 420 M
+0 63 V
+0 4137 R
+0 -63 V
+0 -4277 R
+( 100) Cshow
+5526 420 M
+0 31 V
+0 4169 R
+0 -31 V
+5888 420 M
+0 31 V
+0 4169 R
+0 -31 V
+6144 420 M
+0 31 V
+0 4169 R
+0 -31 V
+6343 420 M
+0 31 V
+0 4169 R
+0 -31 V
+6506 420 M
+0 31 V
+0 4169 R
+0 -31 V
+6644 420 M
+0 31 V
+0 4169 R
+0 -31 V
+6763 420 M
+0 31 V
+0 4169 R
+0 -31 V
+6868 420 M
+0 31 V
+0 4169 R
+0 -31 V
+1.000 UL
+LTa
+6962 420 M
+0 4200 V
+1.000 UL
+LTb
+6962 420 M
+0 63 V
+0 4137 R
+0 -63 V
+0 -4277 R
+( 1000) Cshow
+1.000 UL
+LTb
+798 420 M
+6164 0 V
+0 4200 V
+-6164 0 V
+798 420 L
+140 2520 M
+currentpoint gsave translate 90 rotate 0 0 M
+(Mean square error) Cshow
+grestore
+3880 70 M
+(Seconds of training) Cshow
+3880 4830 M
+(gene) Cshow
+1.000 UL
+LTb
+6311 4487 M
+(fann train) Rshow
+6395 4487 M
+399 0 V
+806 983 M
+1425 859 L
+359 -40 V
+258 44 V
+2239 755 L
+162 -1 V
+137 -11 V
+119 27 V
+105 -29 V
+93 -84 V
+85 -1 V
+78 2 V
+71 -18 V
+66 38 V
+62 -50 V
+58 -4 V
+54 0 V
+51 -1 V
+48 37 V
+46 -38 V
+43 -11 V
+42 -8 V
+40 0 V
+38 0 V
+36 0 V
+35 0 V
+34 0 V
+33 0 V
+31 -1 V
+30 0 V
+30 0 V
+28 0 V
+27 0 V
+27 -11 V
+26 0 V
+25 0 V
+24 0 V
+24 0 V
+24 0 V
+22 0 V
+22 0 V
+22 0 V
+22 0 V
+20 0 V
+20 0 V
+20 0 V
+19 0 V
+19 0 V
+18 0 V
+18 0 V
+18 0 V
+17 0 V
+17 0 V
+17 0 V
+16 0 V
+16 0 V
+16 0 V
+16 0 V
+15 0 V
+15 0 V
+15 0 V
+14 0 V
+15 0 V
+14 0 V
+13 0 V
+14 0 V
+14 0 V
+13 0 V
+13 0 V
+13 0 V
+12 0 V
+13 0 V
+12 0 V
+12 0 V
+12 0 V
+12 0 V
+12 0 V
+11 0 V
+12 0 V
+11 0 V
+11 0 V
+11 0 V
+11 0 V
+11 0 V
+10 0 V
+11 0 V
+10 0 V
+10 0 V
+10 0 V
+10 0 V
+11 0 V
+9 0 V
+10 0 V
+10 0 V
+9 0 V
+10 0 V
+9 0 V
+9 0 V
+9 0 V
+9 0 V
+9 0 V
+9 0 V
+9 0 V
+9 0 V
+8 0 V
+9 0 V
+8 0 V
+9 0 V
+8 0 V
+8 0 V
+8 0 V
+8 0 V
+8 0 V
+8 0 V
+8 0 V
+7 0 V
+8 0 V
+8 0 V
+7 0 V
+8 0 V
+7 0 V
+7 0 V
+8 0 V
+7 0 V
+7 0 V
+7 0 V
+7 0 V
+7 0 V
+7 0 V
+7 0 V
+7 0 V
+7 0 V
+6 0 V
+7 0 V
+7 -1 V
+7 0 V
+6 0 V
+7 0 V
+6 0 V
+6 0 V
+7 0 V
+6 0 V
+6 0 V
+6 0 V
+7 0 V
+6 0 V
+6 0 V
+6 0 V
+6 0 V
+6 0 V
+6 0 V
+6 0 V
+6 0 V
+5 0 V
+6 0 V
+6 0 V
+6 0 V
+5 0 V
+6 0 V
+5 0 V
+6 0 V
+5 0 V
+6 0 V
+5 0 V
+6 0 V
+5 0 V
+5 0 V
+6 0 V
+5 0 V
+5 0 V
+6 0 V
+5 0 V
+5 0 V
+5 0 V
+5 0 V
+5 0 V
+5 0 V
+5 0 V
+5 0 V
+5 0 V
+5 0 V
+5 0 V
+5 0 V
+5 0 V
+5 0 V
+5 0 V
+5 0 V
+4 0 V
+5 0 V
+5 0 V
+5 0 V
+4 0 V
+5 0 V
+5 0 V
+4 0 V
+5 0 V
+4 0 V
+5 0 V
+5 0 V
+1.000 UL
+LT0
+6311 4347 M
+(fann \(0.75\) train) Rshow
+6395 4347 M
+399 0 V
+798 816 M
+619 -70 V
+1778 641 L
+259 0 V
+201 61 V
+163 -63 V
+138 -7 V
+119 -2 V
+106 -1 V
+94 -6 V
+85 0 V
+78 -11 V
+71 0 V
+66 -1 V
+61 1 V
+58 -9 V
+53 0 V
+51 -1 V
+48 -4 V
+46 0 V
+43 0 V
+41 0 V
+40 4 V
+39 0 V
+36 0 V
+35 -9 V
+33 0 V
+33 -4 V
+31 0 V
+30 0 V
+29 0 V
+29 0 V
+27 -1 V
+27 0 V
+25 0 V
+26 0 V
+24 0 V
+24 0 V
+23 0 V
+23 0 V
+21 0 V
+22 0 V
+21 0 V
+20 0 V
+20 0 V
+20 0 V
+19 0 V
+19 0 V
+18 0 V
+18 0 V
+18 0 V
+17 0 V
+17 0 V
+17 0 V
+16 0 V
+16 0 V
+16 0 V
+15 0 V
+16 0 V
+15 -1 V
+14 0 V
+15 0 V
+14 0 V
+15 0 V
+13 0 V
+14 0 V
+14 0 V
+13 0 V
+13 0 V
+13 0 V
+13 0 V
+12 0 V
+12 0 V
+13 0 V
+12 0 V
+11 0 V
+12 0 V
+12 0 V
+11 0 V
+11 -1 V
+11 0 V
+11 0 V
+11 0 V
+11 0 V
+11 0 V
+10 0 V
+11 0 V
+10 0 V
+10 0 V
+10 199 V
+10 -60 V
+9 -37 V
+10 -10 V
+9 -10 V
+10 -10 V
+9 0 V
+10 -10 V
+9 0 V
+9 0 V
+9 19 V
+9 -19 V
+8 -14 V
+9 -9 V
+9 -10 V
+8 4 V
+9 -1 V
+8 -10 V
+8 0 V
+9 -1 V
+8 0 V
+8 -9 V
+8 -1 V
+8 0 V
+8 0 V
+7 0 V
+8 0 V
+8 0 V
+8 0 V
+7 0 V
+8 0 V
+7 0 V
+7 0 V
+8 0 V
+7 0 V
+7 0 V
+7 2 V
+7 0 V
+7 0 V
+7 0 V
+7 -2 V
+7 0 V
+7 0 V
+6 -1 V
+7 0 V
+7 0 V
+6 0 V
+7 0 V
+6 0 V
+7 0 V
+6 0 V
+7 0 V
+6 0 V
+6 0 V
+6 0 V
+7 0 V
+6 0 V
+6 0 V
+6 0 V
+6 0 V
+6 0 V
+6 -2 V
+6 2 V
+6 0 V
+5 -2 V
+6 0 V
+6 0 V
+6 0 V
+5 0 V
+6 0 V
+6 0 V
+5 0 V
+6 0 V
+5 0 V
+6 0 V
+5 0 V
+5 0 V
+6 0 V
+5 -1 V
+5 0 V
+6 0 V
+5 0 V
+5 0 V
+5 0 V
+5 0 V
+6 0 V
+5 0 V
+5 0 V
+5 0 V
+5 0 V
+5 0 V
+5 0 V
+5 0 V
+4 0 V
+5 0 V
+5 0 V
+5 0 V
+5 0 V
+4 0 V
+5 0 V
+5 0 V
+5 0 V
+4 0 V
+5 0 V
+4 0 V
+5 0 V
+5 0 V
+4 0 V
+5 0 V
+4 0 V
+5 0 V
+1.000 UL
+LT1
+6311 4207 M
+(fann \(fix\) train) Rshow
+6395 4207 M
+399 0 V
+806 989 M
+1425 868 L
+359 -42 V
+258 43 V
+2239 762 L
+162 -1 V
+137 -10 V
+119 26 V
+105 -27 V
+93 -86 V
+85 0 V
+78 2 V
+71 -18 V
+66 37 V
+62 -50 V
+58 -2 V
+54 -1 V
+51 -1 V
+48 37 V
+46 -37 V
+43 -13 V
+42 -6 V
+40 0 V
+38 -1 V
+36 0 V
+35 0 V
+34 0 V
+33 0 V
+31 0 V
+30 0 V
+30 0 V
+28 0 V
+27 0 V
+27 -11 V
+26 0 V
+25 0 V
+24 0 V
+24 0 V
+24 0 V
+22 0 V
+22 0 V
+22 0 V
+22 -1 V
+20 0 V
+20 0 V
+20 0 V
+19 0 V
+19 0 V
+18 0 V
+18 0 V
+18 0 V
+17 0 V
+17 0 V
+17 0 V
+16 0 V
+16 0 V
+16 0 V
+16 0 V
+15 0 V
+15 0 V
+15 0 V
+14 1 V
+15 0 V
+14 0 V
+13 0 V
+14 0 V
+14 0 V
+13 0 V
+13 -1 V
+13 0 V
+12 0 V
+13 0 V
+12 0 V
+12 0 V
+12 0 V
+12 0 V
+12 0 V
+11 0 V
+12 0 V
+11 0 V
+11 0 V
+11 0 V
+11 0 V
+11 0 V
+10 0 V
+11 0 V
+10 0 V
+10 0 V
+10 0 V
+10 0 V
+11 0 V
+9 0 V
+10 0 V
+10 0 V
+9 0 V
+10 0 V
+9 0 V
+9 0 V
+9 0 V
+9 0 V
+9 0 V
+9 0 V
+9 0 V
+9 0 V
+8 0 V
+9 0 V
+8 0 V
+9 0 V
+8 0 V
+8 0 V
+8 0 V
+8 0 V
+8 0 V
+8 0 V
+8 0 V
+7 0 V
+8 0 V
+8 0 V
+7 0 V
+8 0 V
+7 0 V
+7 0 V
+8 0 V
+7 0 V
+7 0 V
+7 0 V
+7 0 V
+7 0 V
+7 0 V
+7 0 V
+7 0 V
+7 0 V
+6 0 V
+7 0 V
+7 -1 V
+7 0 V
+6 0 V
+7 0 V
+6 0 V
+6 0 V
+7 0 V
+6 -1 V
+6 0 V
+6 0 V
+7 0 V
+6 0 V
+6 0 V
+6 0 V
+6 0 V
+6 0 V
+6 0 V
+6 0 V
+6 0 V
+5 0 V
+6 0 V
+6 0 V
+6 0 V
+5 0 V
+6 0 V
+5 0 V
+6 0 V
+5 0 V
+6 0 V
+5 0 V
+6 0 V
+5 0 V
+5 0 V
+6 0 V
+5 0 V
+5 0 V
+6 0 V
+5 0 V
+5 0 V
+5 0 V
+5 0 V
+5 0 V
+5 0 V
+5 0 V
+5 0 V
+5 0 V
+5 0 V
+5 0 V
+5 0 V
+5 0 V
+5 0 V
+5 0 V
+5 0 V
+4 0 V
+5 0 V
+5 0 V
+5 0 V
+4 0 V
+5 0 V
+5 0 V
+4 0 V
+5 0 V
+4 0 V
+5 0 V
+5 0 V
+1.000 UL
+LT2
+6311 4067 M
+(lwnn train) Rshow
+6395 4067 M
+399 0 V
+807 2507 M
+618 -352 V
+362 -86 V
+259 -64 V
+197 -19 V
+161 -98 V
+138 72 V
+119 -58 V
+106 -55 V
+94 -42 V
+85 -7 V
+77 -7 V
+71 -4 V
+67 4 V
+61 -8 V
+57 -4 V
+54 -7 V
+51 -5 V
+48 -1 V
+46 -1 V
+43 -5 V
+42 133 V
+40 -40 V
+38 -29 V
+36 2 V
+35 -1 V
+34 -5 V
+33 -28 V
+31 8 V
+30 -7 V
+30 -2 V
+28 -1 V
+27 0 V
+27 0 V
+26 0 V
+25 -3 V
+25 0 V
+23 -1 V
+24 0 V
+22 0 V
+22 0 V
+22 -6 V
+21 -6 V
+20 0 V
+20 -1 V
+20 265 V
+19 -87 V
+19 -49 V
+18 708 V
+18 -251 V
+18 -239 V
+17 -25 V
+17 6 V
+17 -12 V
+16 -12 V
+16 -1 V
+16 -11 V
+15 -1 V
+15 -1 V
+15 1 V
+15 1 V
+15 -2 V
+14 -4 V
+14 -2 V
+14 -1 V
+14 2 V
+13 -6 V
+13 10 V
+13 0 V
+13 -6 V
+13 4 V
+12 -12 V
+12 17 V
+12 -3 V
+12 -4 V
+12 -22 V
+12 5 V
+11 0 V
+12 0 V
+11 -9 V
+11 10 V
+11 -17 V
+11 0 V
+11 0 V
+10 -5 V
+11 0 V
+10 2 V
+10 -2 V
+10 3 V
+10 -4 V
+10 1 V
+10 -1 V
+9 4 V
+10 1 V
+9 -1 V
+10 -4 V
+9 3 V
+9 2 V
+9 -14 V
+9 -3 V
+9 0 V
+9 0 V
+8 -1 V
+9 1 V
+9 -3 V
+8 -16 V
+8 -2 V
+9 0 V
+8 0 V
+8 -3 V
+8 0 V
+8 -1 V
+8 2 V
+8 0 V
+8 1 V
+8 0 V
+7 -8 V
+8 -2 V
+7 -1 V
+8 24 V
+7 -1 V
+7 -9 V
+8 -5 V
+7 -13 V
+7 0 V
+7 -5 V
+7 6 V
+7 -4 V
+7 2 V
+7 -5 V
+7 3 V
+7 0 V
+7 -1 V
+6 -14 V
+7 -1 V
+6 3 V
+7 1 V
+7 -5 V
+6 -1 V
+6 0 V
+7 5 V
+6 -3 V
+6 -5 V
+7 0 V
+6 0 V
+6 -2 V
+6 1 V
+6 0 V
+6 2 V
+6 1 V
+6 -2 V
+6 2 V
+6 -5 V
+5 1 V
+6 -2 V
+6 1 V
+6 -2 V
+5 5 V
+6 0 V
+6 -4 V
+5 -2 V
+6 0 V
+5 -11 V
+6 1 V
+5 -1 V
+5 -1 V
+6 1 V
+5 26 V
+5 1 V
+6 1 V
+5 0 V
+5 -2 V
+5 1 V
+5 0 V
+6 -2 V
+5 0 V
+5 -1 V
+5 -1 V
+5 0 V
+5 0 V
+5 0 V
+5 -3 V
+4 -6 V
+5 1 V
+5 -1 V
+5 -1 V
+5 -2 V
+5 1 V
+4 0 V
+5 1 V
+5 -6 V
+4 -1 V
+5 1 V
+5 -1 V
+4 1 V
+5 0 V
+4 0 V
+5 0 V
+4 -38 V
+1.000 UL
+LT3
+6311 3927 M
+(jneural train) Rshow
+6395 3927 M
+399 0 V
+798 2811 M
+619 -141 V
+364 -65 V
+258 -78 V
+202 -68 V
+166 15 V
+140 -37 V
+121 2 V
+106 26 V
+96 -29 V
+87 0 V
+79 -14 V
+72 -15 V
+68 -8 V
+63 16 V
+58 12 V
+56 -20 V
+52 0 V
+49 0 V
+46 0 V
+44 0 V
+43 -1 V
+40 -6 V
+38 -8 V
+37 0 V
+36 0 V
+34 0 V
+33 0 V
+31 0 V
+31 0 V
+29 0 V
+29 0 V
+28 0 V
+27 0 V
+26 0 V
+25 0 V
+25 0 V
+24 0 V
+23 0 V
+23 0 V
+22 -1 V
+22 0 V
+21 0 V
+20 11 V
+21 -11 V
+20 13 V
+19 8 V
+19 -20 V
+19 0 V
+18 0 V
+18 -1 V
+17 1 V
+17 -1 V
+17 0 V
+16 0 V
+16 1 V
+16 -1 V
+16 1 V
+15 -1 V
+15 1 V
+15 0 V
+15 0 V
+14 -1 V
+14 1 V
+14 0 V
+14 -1 V
+13 1 V
+13 0 V
+14 0 V
+12 -1 V
+13 0 V
+13 0 V
+12 0 V
+12 0 V
+12 0 V
+12 0 V
+12 0 V
+11 0 V
+12 0 V
+11 0 V
+11 0 V
+11 0 V
+11 0 V
+11 0 V
+10 0 V
+11 0 V
+10 0 V
+11 0 V
+10 0 V
+10 0 V
+10 0 V
+9 0 V
+10 0 V
+10 0 V
+9 0 V
+9 0 V
+10 0 V
+9 0 V
+9 0 V
+9 0 V
+9 0 V
+9 0 V
+9 0 V
+8 0 V
+9 0 V
+8 0 V
+9 0 V
+8 -8 V
+8 0 V
+8 0 V
+8 0 V
+8 0 V
+8 0 V
+8 2 V
+8 87 V
+8 -46 V
+8 -21 V
+7 -21 V
+8 0 V
+7 1 V
+8 -1 V
+7 0 V
+7 0 V
+8 0 V
+7 0 V
+7 0 V
+7 0 V
+7 0 V
+7 0 V
+7 0 V
+7 0 V
+6 0 V
+7 0 V
+7 0 V
+7 0 V
+6 0 V
+7 0 V
+6 0 V
+7 0 V
+6 0 V
+6 0 V
+7 0 V
+6 0 V
+6 0 V
+6 0 V
+7 0 V
+6 0 V
+6 0 V
+6 0 V
+6 0 V
+6 0 V
+6 0 V
+5 0 V
+6 0 V
+6 0 V
+6 0 V
+6 0 V
+5 0 V
+6 0 V
+5 0 V
+6 0 V
+6 0 V
+5 0 V
+6 0 V
+5 0 V
+5 0 V
+6 0 V
+5 0 V
+5 0 V
+6 0 V
+5 0 V
+5 0 V
+5 0 V
+6 0 V
+5 0 V
+5 0 V
+5 0 V
+5 0 V
+5 0 V
+5 0 V
+5 0 V
+5 0 V
+5 0 V
+4 0 V
+5 0 V
+5 0 V
+5 0 V
+5 0 V
+4 0 V
+5 0 V
+5 0 V
+1.000 UL
+LTb
+6311 3787 M
+(fann test) Rshow
+6395 3787 M
+399 0 V
+806 2626 M
+619 65 V
+359 -17 V
+258 63 V
+197 -22 V
+162 -13 V
+137 18 V
+119 -115 V
+105 33 V
+93 -101 V
+85 13 V
+78 -45 V
+71 -39 V
+66 6 V
+62 150 V
+58 -5 V
+54 2 V
+51 8 V
+48 -52 V
+46 68 V
+43 8 V
+42 2 V
+40 0 V
+38 9 V
+36 2 V
+35 2 V
+34 0 V
+33 0 V
+31 -5 V
+30 -2 V
+30 -2 V
+28 -2 V
+27 -2 V
+27 -5 V
+26 -2 V
+25 0 V
+24 0 V
+24 0 V
+24 1 V
+22 0 V
+22 1 V
+22 4 V
+22 11 V
+20 2 V
+20 1 V
+20 1 V
+19 0 V
+19 1 V
+18 0 V
+18 -1 V
+18 0 V
+17 0 V
+17 1 V
+17 0 V
+16 1 V
+16 0 V
+16 1 V
+16 1 V
+15 0 V
+15 0 V
+15 0 V
+14 0 V
+15 0 V
+14 0 V
+13 0 V
+14 0 V
+14 -1 V
+13 0 V
+13 -8 V
+13 -3 V
+12 -2 V
+13 -1 V
+12 -1 V
+12 -1 V
+12 -1 V
+12 -2 V
+12 0 V
+11 2 V
+12 1 V
+11 0 V
+11 1 V
+11 0 V
+11 0 V
+11 0 V
+10 0 V
+11 0 V
+10 0 V
+10 0 V
+10 0 V
+10 -1 V
+11 0 V
+9 0 V
+10 0 V
+10 0 V
+9 0 V
+10 1 V
+9 0 V
+9 0 V
+9 1 V
+9 0 V
+9 0 V
+9 0 V
+9 1 V
+9 0 V
+8 0 V
+9 0 V
+8 0 V
+9 1 V
+8 0 V
+8 0 V
+8 0 V
+8 0 V
+8 1 V
+8 0 V
+8 0 V
+7 0 V
+8 0 V
+8 0 V
+7 1 V
+8 0 V
+7 0 V
+7 0 V
+8 0 V
+7 0 V
+7 0 V
+7 0 V
+7 1 V
+7 0 V
+7 0 V
+7 0 V
+7 -1 V
+7 0 V
+6 -1 V
+7 -1 V
+7 -6 V
+7 -4 V
+6 1 V
+7 1 V
+6 1 V
+6 1 V
+7 0 V
+6 0 V
+6 0 V
+6 0 V
+7 1 V
+6 0 V
+6 1 V
+6 0 V
+6 0 V
+6 1 V
+6 0 V
+6 0 V
+6 -2 V
+5 1 V
+6 0 V
+6 1 V
+6 2 V
+5 2 V
+6 0 V
+5 -1 V
+6 0 V
+5 0 V
+6 0 V
+5 -1 V
+6 0 V
+5 -2 V
+5 -5 V
+6 -2 V
+5 -1 V
+5 -1 V
+6 -1 V
+5 -1 V
+5 0 V
+5 -1 V
+5 0 V
+5 -1 V
+5 0 V
+5 -1 V
+5 0 V
+5 0 V
+5 -1 V
+5 0 V
+5 -1 V
+5 0 V
+5 -1 V
+5 0 V
+5 -1 V
+4 0 V
+5 -1 V
+5 0 V
+5 0 V
+4 0 V
+5 0 V
+5 0 V
+4 0 V
+5 0 V
+4 0 V
+5 0 V
+5 0 V
+1.000 UL
+LT0
+6311 3647 M
+(fann \(0.75\) test) Rshow
+6395 3647 M
+399 0 V
+798 2416 M
+619 148 V
+361 -71 V
+259 16 V
+201 -140 V
+163 77 V
+138 18 V
+119 -36 V
+106 -2 V
+94 7 V
+85 4 V
+78 -5 V
+71 6 V
+66 -19 V
+61 3 V
+58 35 V
+53 -1 V
+51 19 V
+48 12 V
+46 15 V
+43 20 V
+41 3 V
+40 5 V
+39 2 V
+36 0 V
+35 3 V
+33 0 V
+33 15 V
+31 -3 V
+30 -3 V
+29 -2 V
+29 -4 V
+27 -1 V
+27 0 V
+25 -2 V
+26 -2 V
+24 -2 V
+24 0 V
+23 1 V
+23 -1 V
+21 1 V
+22 0 V
+21 -1 V
+20 -1 V
+20 0 V
+20 0 V
+19 0 V
+19 9 V
+18 -4 V
+18 -44 V
+18 49 V
+17 -1 V
+17 -10 V
+17 18 V
+16 -1 V
+16 4 V
+16 4 V
+15 1 V
+16 -1 V
+15 -3 V
+14 2 V
+15 -1 V
+14 -3 V
+15 -2 V
+13 -2 V
+14 -1 V
+14 0 V
+13 0 V
+13 0 V
+13 0 V
+13 3 V
+12 0 V
+12 0 V
+13 3 V
+12 0 V
+11 4 V
+12 8 V
+12 0 V
+11 6 V
+11 0 V
+11 -9 V
+11 -2 V
+11 -3 V
+11 -4 V
+11 -6 V
+10 -5 V
+11 -5 V
+10 -4 V
+10 -4 V
+10 78 V
+10 -162 V
+9 61 V
+10 -9 V
+9 -23 V
+10 7 V
+9 -6 V
+10 12 V
+9 -1 V
+9 33 V
+9 -39 V
+9 8 V
+8 29 V
+9 2 V
+9 -66 V
+8 8 V
+9 16 V
+8 42 V
+8 -1 V
+9 -11 V
+8 -6 V
+8 5 V
+8 1 V
+8 6 V
+8 5 V
+7 1 V
+8 2 V
+8 1 V
+8 1 V
+7 1 V
+8 1 V
+7 1 V
+7 0 V
+8 -4 V
+7 -4 V
+7 -2 V
+7 16 V
+7 -2 V
+7 0 V
+7 -6 V
+7 -17 V
+7 -8 V
+7 -1 V
+6 -1 V
+7 0 V
+7 1 V
+6 0 V
+7 1 V
+6 2 V
+7 2 V
+6 1 V
+7 1 V
+6 2 V
+6 5 V
+6 6 V
+7 4 V
+6 3 V
+6 5 V
+6 -4 V
+6 1 V
+6 -3 V
+6 -7 V
+6 23 V
+6 -9 V
+5 -17 V
+6 -6 V
+6 1 V
+6 6 V
+5 -2 V
+6 -2 V
+6 -2 V
+5 -1 V
+6 -1 V
+5 -2 V
+6 -2 V
+5 -2 V
+5 -3 V
+6 -2 V
+5 -2 V
+5 -3 V
+6 -6 V
+5 -2 V
+5 1 V
+5 -3 V
+5 4 V
+6 7 V
+5 -2 V
+5 0 V
+5 2 V
+5 2 V
+5 1 V
+5 0 V
+5 1 V
+4 1 V
+5 -5 V
+5 -1 V
+5 -1 V
+5 -4 V
+4 -2 V
+5 -1 V
+5 0 V
+5 0 V
+4 1 V
+5 0 V
+4 11 V
+5 4 V
+5 4 V
+4 5 V
+5 4 V
+4 4 V
+5 5 V
+1.000 UL
+LT1
+6311 3507 M
+(fann \(fix\) test) Rshow
+6395 3507 M
+399 0 V
+806 2551 M
+619 59 V
+359 -3 V
+258 51 V
+197 -22 V
+162 -9 V
+137 18 V
+119 -105 V
+105 27 V
+93 -98 V
+85 7 V
+78 -36 V
+71 -34 V
+66 7 V
+62 144 V
+58 1 V
+54 3 V
+51 8 V
+48 -61 V
+46 80 V
+43 10 V
+42 3 V
+40 -1 V
+38 7 V
+36 2 V
+35 2 V
+34 1 V
+33 0 V
+31 -4 V
+30 -2 V
+30 -1 V
+28 -1 V
+27 -2 V
+27 -5 V
+26 -3 V
+25 -1 V
+24 0 V
+24 0 V
+24 1 V
+22 0 V
+22 1 V
+22 4 V
+22 8 V
+20 2 V
+20 1 V
+20 1 V
+19 1 V
+19 0 V
+18 0 V
+18 0 V
+18 -1 V
+17 1 V
+17 0 V
+17 0 V
+16 1 V
+16 0 V
+16 0 V
+16 0 V
+15 0 V
+15 0 V
+15 0 V
+14 -1 V
+15 0 V
+14 0 V
+13 0 V
+14 -1 V
+14 0 V
+13 -1 V
+13 -9 V
+13 -3 V
+12 -1 V
+13 0 V
+12 -1 V
+12 -2 V
+12 0 V
+12 -1 V
+12 1 V
+11 2 V
+12 1 V
+11 1 V
+11 0 V
+11 0 V
+11 0 V
+11 0 V
+10 -1 V
+11 0 V
+10 0 V
+10 -1 V
+10 -1 V
+10 0 V
+11 -1 V
+9 0 V
+10 0 V
+10 0 V
+9 0 V
+10 0 V
+9 1 V
+9 0 V
+9 0 V
+9 0 V
+9 1 V
+9 0 V
+9 0 V
+9 0 V
+8 1 V
+9 0 V
+8 0 V
+9 1 V
+8 0 V
+8 0 V
+8 0 V
+8 0 V
+8 0 V
+8 0 V
+8 1 V
+7 0 V
+8 0 V
+8 0 V
+7 0 V
+8 0 V
+7 1 V
+7 0 V
+8 0 V
+7 0 V
+7 0 V
+7 0 V
+7 0 V
+7 0 V
+7 0 V
+7 0 V
+7 0 V
+7 0 V
+6 -1 V
+7 0 V
+7 -4 V
+7 -3 V
+6 1 V
+7 1 V
+6 1 V
+6 0 V
+7 0 V
+6 -1 V
+6 0 V
+6 0 V
+7 0 V
+6 0 V
+6 1 V
+6 0 V
+6 0 V
+6 0 V
+6 1 V
+6 1 V
+6 -1 V
+5 0 V
+6 0 V
+6 1 V
+6 1 V
+5 1 V
+6 0 V
+5 -1 V
+6 0 V
+5 0 V
+6 0 V
+5 -1 V
+6 0 V
+5 0 V
+5 -4 V
+6 -1 V
+5 -1 V
+5 -1 V
+6 -1 V
+5 0 V
+5 -1 V
+5 0 V
+5 -1 V
+5 0 V
+5 -1 V
+5 0 V
+5 -1 V
+5 0 V
+5 0 V
+5 -1 V
+5 0 V
+5 -1 V
+5 -1 V
+5 0 V
+5 0 V
+4 0 V
+5 0 V
+5 -1 V
+5 0 V
+4 0 V
+5 0 V
+5 0 V
+4 0 V
+5 0 V
+4 0 V
+5 -1 V
+5 0 V
+1.000 UL
+LT2
+6311 3367 M
+(lwnn test) Rshow
+6395 3367 M
+399 0 V
+807 3652 M
+618 110 V
+362 36 V
+259 57 V
+197 -11 V
+161 -66 V
+138 -92 V
+119 170 V
+106 -4 V
+94 -12 V
+85 -15 V
+77 14 V
+71 -6 V
+67 13 V
+61 4 V
+57 -2 V
+54 -23 V
+51 -7 V
+48 -8 V
+46 -20 V
+43 17 V
+42 142 V
+40 -10 V
+38 36 V
+36 18 V
+35 -4 V
+34 -4 V
+33 28 V
+31 -15 V
+30 3 V
+30 -31 V
+28 -3 V
+27 5 V
+27 1 V
+26 -1 V
+25 0 V
+25 3 V
+23 3 V
+24 13 V
+22 -4 V
+22 5 V
+22 -6 V
+21 -1 V
+20 1 V
+20 -8 V
+20 5 V
+19 -11 V
+19 -15 V
+18 266 V
+18 -172 V
+18 -105 V
+17 22 V
+17 -4 V
+17 -11 V
+16 27 V
+16 5 V
+16 -2 V
+15 -4 V
+15 -2 V
+15 -4 V
+15 0 V
+15 -2 V
+14 3 V
+14 13 V
+14 0 V
+14 -4 V
+13 -9 V
+13 10 V
+13 -1 V
+13 -1 V
+13 -4 V
+12 -11 V
+12 0 V
+12 3 V
+12 2 V
+12 -7 V
+12 5 V
+11 -1 V
+12 0 V
+11 -9 V
+11 9 V
+11 -7 V
+11 -1 V
+11 -2 V
+10 -15 V
+11 6 V
+10 4 V
+10 -4 V
+10 9 V
+10 -5 V
+10 2 V
+10 -1 V
+9 6 V
+10 0 V
+9 -2 V
+10 -5 V
+9 1 V
+9 -1 V
+9 -1 V
+9 1 V
+9 -9 V
+9 -7 V
+8 -5 V
+9 -2 V
+9 -9 V
+8 16 V
+8 6 V
+9 5 V
+8 2 V
+8 -2 V
+8 1 V
+8 -2 V
+8 -8 V
+8 -3 V
+8 -1 V
+8 -1 V
+7 -2 V
+8 1 V
+7 1 V
+8 27 V
+7 18 V
+7 -6 V
+8 2 V
+7 -18 V
+7 -8 V
+7 19 V
+7 5 V
+7 9 V
+7 -2 V
+7 -6 V
+7 7 V
+7 -1 V
+7 1 V
+6 -14 V
+7 3 V
+6 5 V
+7 -3 V
+7 -8 V
+6 -5 V
+6 -3 V
+7 11 V
+6 -3 V
+6 6 V
+7 -3 V
+6 -2 V
+6 -2 V
+6 -1 V
+6 -2 V
+6 2 V
+6 -1 V
+6 -2 V
+6 2 V
+6 -5 V
+5 2 V
+6 1 V
+6 2 V
+6 -2 V
+5 5 V
+6 0 V
+6 -2 V
+5 -3 V
+6 0 V
+5 -6 V
+6 2 V
+5 -1 V
+5 -1 V
+6 0 V
+5 -23 V
+5 -6 V
+6 7 V
+5 5 V
+5 -3 V
+5 -1 V
+5 1 V
+6 1 V
+5 0 V
+5 1 V
+5 -2 V
+5 2 V
+5 -2 V
+5 0 V
+5 -3 V
+4 14 V
+5 -2 V
+5 -3 V
+5 4 V
+5 -4 V
+5 -3 V
+4 0 V
+5 -3 V
+5 -8 V
+4 -3 V
+5 -1 V
+5 2 V
+4 -1 V
+5 1 V
+4 3 V
+5 0 V
+4 31 V
+1.000 UL
+LT3
+6311 3227 M
+(jneural test) Rshow
+6395 3227 M
+399 0 V
+798 3668 M
+619 88 V
+364 -157 V
+258 149 V
+202 16 V
+166 33 V
+140 -23 V
+121 11 V
+106 3 V
+96 -6 V
+87 -2 V
+79 74 V
+72 -8 V
+68 10 V
+63 40 V
+58 34 V
+56 -26 V
+52 3 V
+49 0 V
+46 1 V
+44 1 V
+43 41 V
+40 -7 V
+38 -1 V
+37 1 V
+36 1 V
+34 2 V
+33 2 V
+31 2 V
+31 2 V
+29 2 V
+29 2 V
+28 1 V
+27 1 V
+26 1 V
+25 0 V
+25 0 V
+24 0 V
+23 -2 V
+23 -1 V
+22 -2 V
+22 -3 V
+21 -4 V
+20 -37 V
+21 -9 V
+20 22 V
+19 -22 V
+19 42 V
+19 8 V
+18 4 V
+18 3 V
+17 -19 V
+17 -2 V
+17 -1 V
+16 -14 V
+16 5 V
+16 -2 V
+16 1 V
+15 -1 V
+15 -8 V
+15 -5 V
+15 4 V
+14 5 V
+14 -24 V
+14 2 V
+14 -2 V
+13 3 V
+13 2 V
+14 6 V
+12 -1 V
+13 -1 V
+13 4 V
+12 -2 V
+12 0 V
+12 -2 V
+12 4 V
+12 4 V
+11 -2 V
+12 2 V
+11 -12 V
+11 14 V
+11 -11 V
+11 -3 V
+11 18 V
+10 0 V
+11 -28 V
+10 -6 V
+11 5 V
+10 4 V
+10 3 V
+10 2 V
+9 1 V
+10 1 V
+10 -1 V
+9 2 V
+9 6 V
+10 -7 V
+9 -12 V
+9 11 V
+9 7 V
+9 4 V
+9 1 V
+9 3 V
+8 -7 V
+9 -1 V
+8 -5 V
+9 -1 V
+8 -3 V
+8 2 V
+8 3 V
+8 3 V
+8 -2 V
+8 -11 V
+8 0 V
+8 14 V
+8 -25 V
+8 2 V
+7 5 V
+8 30 V
+7 -16 V
+8 0 V
+7 -1 V
+7 -1 V
+8 0 V
+7 -1 V
+7 0 V
+7 -1 V
+7 0 V
+7 -1 V
+7 0 V
+7 0 V
+6 1 V
+7 0 V
+7 0 V
+7 0 V
+6 0 V
+7 0 V
+6 0 V
+7 1 V
+6 0 V
+6 0 V
+7 1 V
+6 0 V
+6 0 V
+6 0 V
+7 1 V
+6 0 V
+6 0 V
+6 0 V
+6 0 V
+6 0 V
+6 0 V
+5 0 V
+6 0 V
+6 0 V
+6 0 V
+6 0 V
+5 0 V
+6 0 V
+5 0 V
+6 0 V
+6 0 V
+5 0 V
+6 -1 V
+5 0 V
+5 0 V
+6 0 V
+5 0 V
+5 0 V
+6 0 V
+5 0 V
+5 0 V
+5 0 V
+6 -1 V
+5 0 V
+5 -1 V
+5 -1 V
+5 -1 V
+5 1 V
+5 1 V
+5 2 V
+5 -1 V
+5 1 V
+4 3 V
+5 -5 V
+5 -3 V
+5 0 V
+5 0 V
+4 0 V
+5 -1 V
+5 0 V
+stroke
+grestore
+end
+showpage
+%%Trailer
+%%DocumentFonts: Helvetica
+%%Pages: 1
+
+%%EndDocument
+ @endspecial 2430 399 a
+ currentpoint grestore moveto
+ 2430 399 a 330 2648 a Fy(Figure)29
+b(18:)39 b(Graph)28 b(sho)n(wing)g(the)i(mean)f(square)f(error)f(as)h
+(a)h(function)h(of)f(the)g(time)h(for)f(the)330 2748
+y(gene)f(problem.)38 b(It)29 b(seems)e(that)i(the)g(problem)e(is)h
+(di\016cult)i(to)e(train)f(on)h(and)h(that)f(there)g(are)330
+2847 y(some)f(spik)n(es)g(in)h(the)g(optimization)f(landscap)r(e.)p
+Black Black 330 3114 a
+ gsave currentpoint currentpoint translate -90 neg rotate neg exch
+neg exch translate
+ 330 3114 a @beginspecial 50 @llx
+50 @lly 554 @urx 770 @ury 3600 @rhi @setspecial
+%%BeginDocument: figs/mushroom.ps
+%!PS-Adobe-2.0
+%%Title: ../doc/figs/mushroom.ps
+%%Creator: gnuplot 3.7 patchlevel 3
+%%CreationDate: Fri Oct 24 13:10:39 2003
+%%DocumentFonts: (atend)
+%%BoundingBox: 50 50 554 770
+%%Orientation: Landscape
+%%Pages: (atend)
+%%EndComments
+/gnudict 256 dict def
+gnudict begin
+/Color true def
+/Solid true def
+/gnulinewidth 5.000 def
+/userlinewidth gnulinewidth def
+/vshift -46 def
+/dl {10 mul} def
+/hpt_ 31.5 def
+/vpt_ 31.5 def
+/hpt hpt_ def
+/vpt vpt_ def
+/M {moveto} bind def
+/L {lineto} bind def
+/R {rmoveto} bind def
+/V {rlineto} bind def
+/vpt2 vpt 2 mul def
+/hpt2 hpt 2 mul def
+/Lshow { currentpoint stroke M
+  0 vshift R show } def
+/Rshow { currentpoint stroke M
+  dup stringwidth pop neg vshift R show } def
+/Cshow { currentpoint stroke M
+  dup stringwidth pop -2 div vshift R show } def
+/UP { dup vpt_ mul /vpt exch def hpt_ mul /hpt exch def
+  /hpt2 hpt 2 mul def /vpt2 vpt 2 mul def } def
+/DL { Color {setrgbcolor Solid {pop []} if 0 setdash }
+ {pop pop pop Solid {pop []} if 0 setdash} ifelse } def
+/BL { stroke userlinewidth 2 mul setlinewidth } def
+/AL { stroke userlinewidth 2 div setlinewidth } def
+/UL { dup gnulinewidth mul /userlinewidth exch def
+      dup 1 lt {pop 1} if 10 mul /udl exch def } def
+/PL { stroke userlinewidth setlinewidth } def
+/LTb { BL [] 0 0 0 DL } def
+/LTa { AL [1 udl mul 2 udl mul] 0 setdash 0 0 0 setrgbcolor } def
+/LT0 { PL [] 1 0 0 DL } def
+/LT1 { PL [4 dl 2 dl] 0 1 0 DL } def
+/LT2 { PL [2 dl 3 dl] 0 0 1 DL } def
+/LT3 { PL [1 dl 1.5 dl] 1 0 1 DL } def
+/LT4 { PL [5 dl 2 dl 1 dl 2 dl] 0 1 1 DL } def
+/LT5 { PL [4 dl 3 dl 1 dl 3 dl] 1 1 0 DL } def
+/LT6 { PL [2 dl 2 dl 2 dl 4 dl] 0 0 0 DL } def
+/LT7 { PL [2 dl 2 dl 2 dl 2 dl 2 dl 4 dl] 1 0.3 0 DL } def
+/LT8 { PL [2 dl 2 dl 2 dl 2 dl 2 dl 2 dl 2 dl 4 dl] 0.5 0.5 0.5 DL } def
+/Pnt { stroke [] 0 setdash
+   gsave 1 setlinecap M 0 0 V stroke grestore } def
+/Dia { stroke [] 0 setdash 2 copy vpt add M
+  hpt neg vpt neg V hpt vpt neg V
+  hpt vpt V hpt neg vpt V closepath stroke
+  Pnt } def
+/Pls { stroke [] 0 setdash vpt sub M 0 vpt2 V
+  currentpoint stroke M
+  hpt neg vpt neg R hpt2 0 V stroke
+  } def
+/Box { stroke [] 0 setdash 2 copy exch hpt sub exch vpt add M
+  0 vpt2 neg V hpt2 0 V 0 vpt2 V
+  hpt2 neg 0 V closepath stroke
+  Pnt } def
+/Crs { stroke [] 0 setdash exch hpt sub exch vpt add M
+  hpt2 vpt2 neg V currentpoint stroke M
+  hpt2 neg 0 R hpt2 vpt2 V stroke } def
+/TriU { stroke [] 0 setdash 2 copy vpt 1.12 mul add M
+  hpt neg vpt -1.62 mul V
+  hpt 2 mul 0 V
+  hpt neg vpt 1.62 mul V closepath stroke
+  Pnt  } def
+/Star { 2 copy Pls Crs } def
+/BoxF { stroke [] 0 setdash exch hpt sub exch vpt add M
+  0 vpt2 neg V  hpt2 0 V  0 vpt2 V
+  hpt2 neg 0 V  closepath fill } def
+/TriUF { stroke [] 0 setdash vpt 1.12 mul add M
+  hpt neg vpt -1.62 mul V
+  hpt 2 mul 0 V
+  hpt neg vpt 1.62 mul V closepath fill } def
+/TriD { stroke [] 0 setdash 2 copy vpt 1.12 mul sub M
+  hpt neg vpt 1.62 mul V
+  hpt 2 mul 0 V
+  hpt neg vpt -1.62 mul V closepath stroke
+  Pnt  } def
+/TriDF { stroke [] 0 setdash vpt 1.12 mul sub M
+  hpt neg vpt 1.62 mul V
+  hpt 2 mul 0 V
+  hpt neg vpt -1.62 mul V closepath fill} def
+/DiaF { stroke [] 0 setdash vpt add M
+  hpt neg vpt neg V hpt vpt neg V
+  hpt vpt V hpt neg vpt V closepath fill } def
+/Pent { stroke [] 0 setdash 2 copy gsave
+  translate 0 hpt M 4 {72 rotate 0 hpt L} repeat
+  closepath stroke grestore Pnt } def
+/PentF { stroke [] 0 setdash gsave
+  translate 0 hpt M 4 {72 rotate 0 hpt L} repeat
+  closepath fill grestore } def
+/Circle { stroke [] 0 setdash 2 copy
+  hpt 0 360 arc stroke Pnt } def
+/CircleF { stroke [] 0 setdash hpt 0 360 arc fill } def
+/C0 { BL [] 0 setdash 2 copy moveto vpt 90 450  arc } bind def
+/C1 { BL [] 0 setdash 2 copy        moveto
+       2 copy  vpt 0 90 arc closepath fill
+               vpt 0 360 arc closepath } bind def
+/C2 { BL [] 0 setdash 2 copy moveto
+       2 copy  vpt 90 180 arc closepath fill
+               vpt 0 360 arc closepath } bind def
+/C3 { BL [] 0 setdash 2 copy moveto
+       2 copy  vpt 0 180 arc closepath fill
+               vpt 0 360 arc closepath } bind def
+/C4 { BL [] 0 setdash 2 copy moveto
+       2 copy  vpt 180 270 arc closepath fill
+               vpt 0 360 arc closepath } bind def
+/C5 { BL [] 0 setdash 2 copy moveto
+       2 copy  vpt 0 90 arc
+       2 copy moveto
+       2 copy  vpt 180 270 arc closepath fill
+               vpt 0 360 arc } bind def
+/C6 { BL [] 0 setdash 2 copy moveto
+      2 copy  vpt 90 270 arc closepath fill
+              vpt 0 360 arc closepath } bind def
+/C7 { BL [] 0 setdash 2 copy moveto
+      2 copy  vpt 0 270 arc closepath fill
+              vpt 0 360 arc closepath } bind def
+/C8 { BL [] 0 setdash 2 copy moveto
+      2 copy vpt 270 360 arc closepath fill
+              vpt 0 360 arc closepath } bind def
+/C9 { BL [] 0 setdash 2 copy moveto
+      2 copy  vpt 270 450 arc closepath fill
+              vpt 0 360 arc closepath } bind def
+/C10 { BL [] 0 setdash 2 copy 2 copy moveto vpt 270 360 arc closepath fill
+       2 copy moveto
+       2 copy vpt 90 180 arc closepath fill
+               vpt 0 360 arc closepath } bind def
+/C11 { BL [] 0 setdash 2 copy moveto
+       2 copy  vpt 0 180 arc closepath fill
+       2 copy moveto
+       2 copy  vpt 270 360 arc closepath fill
+               vpt 0 360 arc closepath } bind def
+/C12 { BL [] 0 setdash 2 copy moveto
+       2 copy  vpt 180 360 arc closepath fill
+               vpt 0 360 arc closepath } bind def
+/C13 { BL [] 0 setdash  2 copy moveto
+       2 copy  vpt 0 90 arc closepath fill
+       2 copy moveto
+       2 copy  vpt 180 360 arc closepath fill
+               vpt 0 360 arc closepath } bind def
+/C14 { BL [] 0 setdash 2 copy moveto
+       2 copy  vpt 90 360 arc closepath fill
+               vpt 0 360 arc } bind def
+/C15 { BL [] 0 setdash 2 copy vpt 0 360 arc closepath fill
+               vpt 0 360 arc closepath } bind def
+/Rec   { newpath 4 2 roll moveto 1 index 0 rlineto 0 exch rlineto
+       neg 0 rlineto closepath } bind def
+/Square { dup Rec } bind def
+/Bsquare { vpt sub exch vpt sub exch vpt2 Square } bind def
+/S0 { BL [] 0 setdash 2 copy moveto 0 vpt rlineto BL Bsquare } bind def
+/S1 { BL [] 0 setdash 2 copy vpt Square fill Bsquare } bind def
+/S2 { BL [] 0 setdash 2 copy exch vpt sub exch vpt Square fill Bsquare } bind def
+/S3 { BL [] 0 setdash 2 copy exch vpt sub exch vpt2 vpt Rec fill Bsquare } bind def
+/S4 { BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt Square fill Bsquare } bind def
+/S5 { BL [] 0 setdash 2 copy 2 copy vpt Square fill
+       exch vpt sub exch vpt sub vpt Square fill Bsquare } bind def
+/S6 { BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt vpt2 Rec fill Bsquare } bind def
+/S7 { BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt vpt2 Rec fill
+       2 copy vpt Square fill
+       Bsquare } bind def
+/S8 { BL [] 0 setdash 2 copy vpt sub vpt Square fill Bsquare } bind def
+/S9 { BL [] 0 setdash 2 copy vpt sub vpt vpt2 Rec fill Bsquare } bind def
+/S10 { BL [] 0 setdash 2 copy vpt sub vpt Square fill 2 copy exch vpt sub exch vpt Square fill
+       Bsquare } bind def
+/S11 { BL [] 0 setdash 2 copy vpt sub vpt Square fill 2 copy exch vpt sub exch vpt2 vpt Rec fill
+       Bsquare } bind def
+/S12 { BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt2 vpt Rec fill Bsquare } bind def
+/S13 { BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt2 vpt Rec fill
+       2 copy vpt Square fill Bsquare } bind def
+/S14 { BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt2 vpt Rec fill
+       2 copy exch vpt sub exch vpt Square fill Bsquare } bind def
+/S15 { BL [] 0 setdash 2 copy Bsquare fill Bsquare } bind def
+/D0 { gsave translate 45 rotate 0 0 S0 stroke grestore } bind def
+/D1 { gsave translate 45 rotate 0 0 S1 stroke grestore } bind def
+/D2 { gsave translate 45 rotate 0 0 S2 stroke grestore } bind def
+/D3 { gsave translate 45 rotate 0 0 S3 stroke grestore } bind def
+/D4 { gsave translate 45 rotate 0 0 S4 stroke grestore } bind def
+/D5 { gsave translate 45 rotate 0 0 S5 stroke grestore } bind def
+/D6 { gsave translate 45 rotate 0 0 S6 stroke grestore } bind def
+/D7 { gsave translate 45 rotate 0 0 S7 stroke grestore } bind def
+/D8 { gsave translate 45 rotate 0 0 S8 stroke grestore } bind def
+/D9 { gsave translate 45 rotate 0 0 S9 stroke grestore } bind def
+/D10 { gsave translate 45 rotate 0 0 S10 stroke grestore } bind def
+/D11 { gsave translate 45 rotate 0 0 S11 stroke grestore } bind def
+/D12 { gsave translate 45 rotate 0 0 S12 stroke grestore } bind def
+/D13 { gsave translate 45 rotate 0 0 S13 stroke grestore } bind def
+/D14 { gsave translate 45 rotate 0 0 S14 stroke grestore } bind def
+/D15 { gsave translate 45 rotate 0 0 S15 stroke grestore } bind def
+/DiaE { stroke [] 0 setdash vpt add M
+  hpt neg vpt neg V hpt vpt neg V
+  hpt vpt V hpt neg vpt V closepath stroke } def
+/BoxE { stroke [] 0 setdash exch hpt sub exch vpt add M
+  0 vpt2 neg V hpt2 0 V 0 vpt2 V
+  hpt2 neg 0 V closepath stroke } def
+/TriUE { stroke [] 0 setdash vpt 1.12 mul add M
+  hpt neg vpt -1.62 mul V
+  hpt 2 mul 0 V
+  hpt neg vpt 1.62 mul V closepath stroke } def
+/TriDE { stroke [] 0 setdash vpt 1.12 mul sub M
+  hpt neg vpt 1.62 mul V
+  hpt 2 mul 0 V
+  hpt neg vpt -1.62 mul V closepath stroke } def
+/PentE { stroke [] 0 setdash gsave
+  translate 0 hpt M 4 {72 rotate 0 hpt L} repeat
+  closepath stroke grestore } def
+/CircE { stroke [] 0 setdash 
+  hpt 0 360 arc stroke } def
+/Opaque { gsave closepath 1 setgray fill grestore 0 setgray closepath } def
+/DiaW { stroke [] 0 setdash vpt add M
+  hpt neg vpt neg V hpt vpt neg V
+  hpt vpt V hpt neg vpt V Opaque stroke } def
+/BoxW { stroke [] 0 setdash exch hpt sub exch vpt add M
+  0 vpt2 neg V hpt2 0 V 0 vpt2 V
+  hpt2 neg 0 V Opaque stroke } def
+/TriUW { stroke [] 0 setdash vpt 1.12 mul add M
+  hpt neg vpt -1.62 mul V
+  hpt 2 mul 0 V
+  hpt neg vpt 1.62 mul V Opaque stroke } def
+/TriDW { stroke [] 0 setdash vpt 1.12 mul sub M
+  hpt neg vpt 1.62 mul V
+  hpt 2 mul 0 V
+  hpt neg vpt -1.62 mul V Opaque stroke } def
+/PentW { stroke [] 0 setdash gsave
+  translate 0 hpt M 4 {72 rotate 0 hpt L} repeat
+  Opaque stroke grestore } def
+/CircW { stroke [] 0 setdash 
+  hpt 0 360 arc Opaque stroke } def
+/BoxFill { gsave Rec 1 setgray fill grestore } def
+/Symbol-Oblique /Symbol findfont [1 0 .167 1 0 0] makefont
+dup length dict begin {1 index /FID eq {pop pop} {def} ifelse} forall
+currentdict end definefont pop
+end
+%%EndProlog
+%%Page: 1 1
+gnudict begin
+gsave
+50 50 translate
+0.100 0.100 scale
+90 rotate
+0 -5040 translate
+0 setgray
+newpath
+(Helvetica) findfont 140 scalefont setfont
+1.000 UL
+LTb
+1.000 UL
+LTa
+966 420 M
+5996 0 V
+1.000 UL
+LTb
+966 420 M
+63 0 V
+5933 0 R
+-63 0 V
+882 420 M
+( 1e-07) Rshow
+966 673 M
+31 0 V
+5965 0 R
+-31 0 V
+966 1007 M
+31 0 V
+5965 0 R
+-31 0 V
+966 1179 M
+31 0 V
+5965 0 R
+-31 0 V
+1.000 UL
+LTa
+966 1260 M
+5996 0 V
+1.000 UL
+LTb
+966 1260 M
+63 0 V
+5933 0 R
+-63 0 V
+-6017 0 R
+( 1e-06) Rshow
+966 1513 M
+31 0 V
+5965 0 R
+-31 0 V
+966 1847 M
+31 0 V
+5965 0 R
+-31 0 V
+966 2019 M
+31 0 V
+5965 0 R
+-31 0 V
+1.000 UL
+LTa
+966 2100 M
+5996 0 V
+1.000 UL
+LTb
+966 2100 M
+63 0 V
+5933 0 R
+-63 0 V
+-6017 0 R
+( 1e-05) Rshow
+966 2353 M
+31 0 V
+5965 0 R
+-31 0 V
+966 2687 M
+31 0 V
+5965 0 R
+-31 0 V
+966 2859 M
+31 0 V
+5965 0 R
+-31 0 V
+1.000 UL
+LTa
+966 2940 M
+5996 0 V
+1.000 UL
+LTb
+966 2940 M
+63 0 V
+5933 0 R
+-63 0 V
+-6017 0 R
+( 0.0001) Rshow
+966 3193 M
+31 0 V
+5965 0 R
+-31 0 V
+966 3527 M
+31 0 V
+5965 0 R
+-31 0 V
+966 3699 M
+31 0 V
+5965 0 R
+-31 0 V
+1.000 UL
+LTa
+966 3780 M
+3917 0 V
+1995 0 R
+84 0 V
+1.000 UL
+LTb
+966 3780 M
+63 0 V
+5933 0 R
+-63 0 V
+-6017 0 R
+( 0.001) Rshow
+966 4033 M
+31 0 V
+5965 0 R
+-31 0 V
+966 4367 M
+31 0 V
+5965 0 R
+-31 0 V
+966 4539 M
+31 0 V
+5965 0 R
+-31 0 V
+1.000 UL
+LTa
+966 4620 M
+5996 0 V
+1.000 UL
+LTb
+966 4620 M
+63 0 V
+5933 0 R
+-63 0 V
+-6017 0 R
+( 0.01) Rshow
+1.000 UL
+LTa
+966 420 M
+0 4200 V
+1.000 UL
+LTb
+966 420 M
+0 63 V
+0 4137 R
+0 -63 V
+966 280 M
+( 1) Cshow
+1568 420 M
+0 31 V
+0 4169 R
+0 -31 V
+1920 420 M
+0 31 V
+0 4169 R
+0 -31 V
+2169 420 M
+0 31 V
+0 4169 R
+0 -31 V
+2363 420 M
+0 31 V
+0 4169 R
+0 -31 V
+2521 420 M
+0 31 V
+0 4169 R
+0 -31 V
+2655 420 M
+0 31 V
+0 4169 R
+0 -31 V
+2771 420 M
+0 31 V
+0 4169 R
+0 -31 V
+2873 420 M
+0 31 V
+0 4169 R
+0 -31 V
+1.000 UL
+LTa
+2965 420 M
+0 4200 V
+1.000 UL
+LTb
+2965 420 M
+0 63 V
+0 4137 R
+0 -63 V
+0 -4277 R
+( 10) Cshow
+3566 420 M
+0 31 V
+0 4169 R
+0 -31 V
+3918 420 M
+0 31 V
+0 4169 R
+0 -31 V
+4168 420 M
+0 31 V
+0 4169 R
+0 -31 V
+4362 420 M
+0 31 V
+0 4169 R
+0 -31 V
+4520 420 M
+0 31 V
+0 4169 R
+0 -31 V
+4654 420 M
+0 31 V
+0 4169 R
+0 -31 V
+4770 420 M
+0 31 V
+0 4169 R
+0 -31 V
+4872 420 M
+0 31 V
+0 4169 R
+0 -31 V
+1.000 UL
+LTa
+4963 420 M
+0 2737 V
+0 1400 R
+0 63 V
+1.000 UL
+LTb
+4963 420 M
+0 63 V
+0 4137 R
+0 -63 V
+0 -4277 R
+( 100) Cshow
+5565 420 M
+0 31 V
+0 4169 R
+0 -31 V
+5917 420 M
+0 31 V
+0 4169 R
+0 -31 V
+6167 420 M
+0 31 V
+0 4169 R
+0 -31 V
+6360 420 M
+0 31 V
+0 4169 R
+0 -31 V
+6519 420 M
+0 31 V
+0 4169 R
+0 -31 V
+6652 420 M
+0 31 V
+0 4169 R
+0 -31 V
+6768 420 M
+0 31 V
+0 4169 R
+0 -31 V
+6871 420 M
+0 31 V
+0 4169 R
+0 -31 V
+1.000 UL
+LTa
+6962 420 M
+0 4200 V
+1.000 UL
+LTb
+6962 420 M
+0 63 V
+0 4137 R
+0 -63 V
+0 -4277 R
+( 1000) Cshow
+1.000 UL
+LTb
+966 420 M
+5996 0 V
+0 4200 V
+-5996 0 V
+966 420 L
+140 2520 M
+currentpoint gsave translate 90 rotate 0 0 M
+(Mean square error) Cshow
+grestore
+3964 70 M
+(Seconds of training) Cshow
+3964 4830 M
+(mushroom) Cshow
+1.000 UL
+LTb
+6311 4487 M
+(fann train) Rshow
+6395 4487 M
+399 0 V
+975 2865 M
+601 -280 V
+366 -157 V
+247 -112 V
+191 -86 V
+160 -71 V
+132 -59 V
+115 -52 V
+103 -46 V
+91 -41 V
+82 -37 V
+76 -34 V
+69 -31 V
+64 -28 V
+60 -27 V
+55 -25 V
+52 -24 V
+50 -22 V
+46 -21 V
+45 -20 V
+42 -19 V
+41 -18 V
+38 -18 V
+37 -16 V
+39 -10 V
+34 -15 V
+32 -15 V
+33 -14 V
+30 -14 V
+29 -14 V
+28 -13 V
+28 -12 V
+26 -12 V
+26 -12 V
+25 -11 V
+24 -12 V
+24 -10 V
+24 -11 V
+22 -10 V
+22 -10 V
+22 -10 V
+21 -9 V
+20 -9 V
+21 -9 V
+19 -9 V
+19 -9 V
+19 -8 V
+18 -9 V
+18 -8 V
+18 -8 V
+17 -7 V
+17 -8 V
+16 -7 V
+16 -8 V
+16 -7 V
+16 -7 V
+15 -7 V
+15 -7 V
+14 -6 V
+16 -7 V
+14 -6 V
+14 -7 V
+14 -6 V
+14 -6 V
+13 -6 V
+14 -6 V
+13 -6 V
+12 -6 V
+14 -6 V
+12 -5 V
+12 -6 V
+12 -5 V
+12 -6 V
+12 -5 V
+11 -5 V
+12 -5 V
+11 -5 V
+11 -6 V
+11 -4 V
+11 -5 V
+10 -5 V
+12 -5 V
+10 -5 V
+10 -4 V
+11 -5 V
+10 -5 V
+10 -4 V
+10 -5 V
+10 -4 V
+10 -4 V
+10 -5 V
+9 -4 V
+9 -4 V
+10 -4 V
+9 -4 V
+9 -5 V
+9 -4 V
+8 -4 V
+9 -4 V
+9 -3 V
+9 -4 V
+8 -4 V
+9 -4 V
+8 -4 V
+9 -4 V
+8 -3 V
+8 -4 V
+8 -4 V
+8 -3 V
+8 -4 V
+8 -3 V
+8 -4 V
+8 -3 V
+7 -4 V
+8 -3 V
+7 -3 V
+8 -4 V
+7 -3 V
+7 -3 V
+8 -4 V
+7 -3 V
+7 -3 V
+7 -3 V
+7 -3 V
+7 -3 V
+7 -4 V
+7 -3 V
+7 -3 V
+7 -3 V
+6 -3 V
+7 -3 V
+7 -3 V
+6 -3 V
+7 -3 V
+6 -3 V
+6 -2 V
+7 -3 V
+6 -3 V
+6 -3 V
+6 -3 V
+7 -2 V
+6 -3 V
+6 -3 V
+6 -3 V
+6 -2 V
+6 -3 V
+6 -3 V
+6 -2 V
+6 -3 V
+5 -3 V
+6 -2 V
+6 -3 V
+6 -2 V
+5 -3 V
+6 -2 V
+6 -3 V
+5 -2 V
+6 -3 V
+5 -2 V
+5 -3 V
+6 -2 V
+5 -2 V
+5 -3 V
+6 -2 V
+5 -3 V
+5 -2 V
+6 -2 V
+5 -3 V
+5 -2 V
+5 -2 V
+5 -3 V
+5 -2 V
+5 -2 V
+5 -2 V
+5 -3 V
+5 -2 V
+5 -2 V
+5 -2 V
+5 -2 V
+5 -2 V
+4 -3 V
+5 -2 V
+5 -2 V
+4 -2 V
+5 -2 V
+5 -2 V
+5 -2 V
+4 -2 V
+5 -2 V
+5 -3 V
+4 -2 V
+5 -2 V
+4 -2 V
+5 -2 V
+4 -2 V
+5 -2 V
+4 -2 V
+1.000 UL
+LT0
+6311 4347 M
+(fann \(0.75\) train) Rshow
+6395 4347 M
+399 0 V
+1156 3066 M
+590 -302 V
+347 -169 V
+248 -118 V
+192 -90 V
+158 -74 V
+133 -62 V
+116 -53 V
+101 -48 V
+76 -34 V
+85 -38 V
+76 -36 V
+72 -32 V
+65 -30 V
+60 -28 V
+57 -26 V
+53 -24 V
+51 -23 V
+45 -17 V
+40 -17 V
+43 -20 V
+41 -19 V
+39 -18 V
+37 -17 V
+36 -17 V
+34 -16 V
+34 -15 V
+32 -12 V
+30 -14 V
+30 -14 V
+29 -13 V
+28 -13 V
+27 -12 V
+26 -12 V
+25 -12 V
+25 -11 V
+24 -11 V
+23 -11 V
+23 -10 V
+22 -11 V
+21 -10 V
+21 -9 V
+21 -10 V
+20 -9 V
+20 -9 V
+19 -9 V
+19 -8 V
+19 -9 V
+18 -8 V
+17 -8 V
+18 -8 V
+17 -8 V
+16 -7 V
+17 -8 V
+16 -7 V
+15 -7 V
+16 -7 V
+15 -7 V
+15 -7 V
+15 -7 V
+12 -5 V
+14 -7 V
+14 -6 V
+14 -6 V
+13 -6 V
+14 -6 V
+13 -6 V
+13 -6 V
+13 -6 V
+12 -6 V
+12 -6 V
+13 -5 V
+12 -6 V
+11 -5 V
+12 -5 V
+12 -6 V
+11 -5 V
+11 -5 V
+11 -5 V
+11 -5 V
+11 -5 V
+11 -5 V
+10 -5 V
+11 -4 V
+10 -5 V
+10 -5 V
+11 -4 V
+10 -5 V
+9 -4 V
+10 -5 V
+10 -4 V
+9 -4 V
+10 -5 V
+9 -4 V
+9 -4 V
+9 -4 V
+9 -4 V
+9 -4 V
+9 -4 V
+9 -4 V
+8 -4 V
+9 -4 V
+9 -4 V
+8 -4 V
+8 -4 V
+9 -3 V
+8 -4 V
+8 -4 V
+8 -3 V
+8 -4 V
+8 -4 V
+7 -3 V
+8 -4 V
+8 -3 V
+8 -4 V
+7 -3 V
+8 -3 V
+7 -4 V
+8 -3 V
+7 -3 V
+7 -4 V
+7 -3 V
+7 -3 V
+7 -3 V
+7 -3 V
+7 -3 V
+7 -4 V
+7 -3 V
+7 -3 V
+6 -3 V
+7 -3 V
+7 -3 V
+6 -3 V
+7 -3 V
+6 -3 V
+7 -2 V
+6 -3 V
+6 -3 V
+7 -3 V
+6 -3 V
+6 -3 V
+6 -2 V
+6 -3 V
+6 -3 V
+6 -3 V
+6 -2 V
+6 -3 V
+6 -3 V
+6 -2 V
+6 -3 V
+6 -3 V
+5 -2 V
+6 -3 V
+6 -2 V
+5 -3 V
+6 -2 V
+5 -3 V
+6 -2 V
+5 -3 V
+6 -2 V
+5 -3 V
+6 -2 V
+5 -2 V
+5 -3 V
+6 -2 V
+5 -3 V
+1.000 UL
+LT1
+6311 4207 M
+(fann \(fix\) train) Rshow
+6395 4207 M
+399 0 V
+975 3212 M
+601 -258 V
+366 -144 V
+247 -92 V
+191 -74 V
+160 -61 V
+132 -52 V
+115 -47 V
+103 -43 V
+91 -39 V
+82 -36 V
+76 -32 V
+69 -30 V
+64 -29 V
+60 -27 V
+55 -25 V
+52 -25 V
+50 -22 V
+46 -24 V
+45 -21 V
+42 -21 V
+41 -19 V
+38 -18 V
+37 -18 V
+39 -12 V
+34 -16 V
+32 -18 V
+33 -16 V
+30 -17 V
+29 -14 V
+28 -15 V
+28 -15 V
+26 -14 V
+26 -14 V
+25 -14 V
+24 -13 V
+24 -14 V
+24 -13 V
+22 -13 V
+22 -13 V
+22 -13 V
+21 -13 V
+20 -13 V
+21 -11 V
+19 -13 V
+19 -12 V
+19 -11 V
+18 -12 V
+18 -10 V
+18 -11 V
+17 -11 V
+17 -10 V
+16 -10 V
+16 -10 V
+16 -9 V
+16 -11 V
+15 -9 V
+15 -9 V
+14 -10 V
+16 -10 V
+14 -8 V
+14 -11 V
+14 -10 V
+14 -9 V
+13 -9 V
+14 -8 V
+13 -8 V
+12 -10 V
+14 -8 V
+12 -11 V
+12 -9 V
+12 -6 V
+12 -10 V
+12 -8 V
+11 -10 V
+12 -11 V
+11 -9 V
+11 -6 V
+11 -7 V
+11 -5 V
+10 -8 V
+12 -7 V
+10 -6 V
+10 -6 V
+11 -8 V
+10 -4 V
+10 -8 V
+10 -6 V
+10 -8 V
+10 -5 V
+10 -6 V
+9 -5 V
+9 -7 V
+10 -5 V
+9 -6 V
+9 -7 V
+9 -6 V
+8 -9 V
+9 -5 V
+9 -5 V
+9 -5 V
+8 -6 V
+9 -7 V
+8 -5 V
+9 -8 V
+8 -5 V
+8 -7 V
+8 -8 V
+8 -8 V
+8 -5 V
+8 -5 V
+8 -6 V
+8 -4 V
+7 -6 V
+8 -6 V
+7 -5 V
+8 -4 V
+7 -4 V
+7 -8 V
+8 -4 V
+7 -7 V
+7 -12 V
+7 -4 V
+7 -4 V
+7 -7 V
+7 -3 V
+7 -7 V
+7 -13 V
+7 -2 V
+6 -10 V
+7 -4 V
+7 -5 V
+6 -4 V
+7 -4 V
+6 -8 V
+6 -4 V
+7 -5 V
+6 -8 V
+6 -8 V
+6 -6 V
+7 -2 V
+6 -5 V
+6 -5 V
+6 -4 V
+6 -4 V
+6 -4 V
+6 -5 V
+6 -4 V
+6 -8 V
+5 -4 V
+6 -4 V
+6 -4 V
+6 -3 V
+5 -11 V
+6 -3 V
+6 -3 V
+5 -5 V
+6 -5 V
+5 -5 V
+5 -2 V
+6 -6 V
+5 -1 V
+5 -6 V
+6 -3 V
+5 -6 V
+5 -1 V
+6 -7 V
+5 -3 V
+5 -4 V
+5 -6 V
+5 -2 V
+5 -3 V
+5 -7 V
+5 -2 V
+5 -4 V
+5 -4 V
+5 -6 V
+5 -1 V
+5 -5 V
+5 -2 V
+4 -13 V
+5 -2 V
+5 -4 V
+4 -5 V
+5 -2 V
+5 -14 V
+5 0 V
+4 -4 V
+5 -5 V
+5 -5 V
+4 -2 V
+5 -2 V
+4 -5 V
+5 -4 V
+4 -7 V
+5 -2 V
+4 -4 V
+1.000 UL
+LT2
+6311 4067 M
+(lwnn train) Rshow
+6395 4067 M
+399 0 V
+1264 3388 M
+614 -336 V
+348 -179 V
+248 -123 V
+192 -94 V
+158 -76 V
+133 -65 V
+115 -56 V
+102 -48 V
+91 -43 V
+83 -39 V
+75 -36 V
+70 -32 V
+64 -30 V
+59 -28 V
+56 -26 V
+53 -26 V
+49 -23 V
+47 -21 V
+45 -21 V
+42 -20 V
+40 -19 V
+39 -18 V
+37 -16 V
+35 -17 V
+34 -16 V
+33 -16 V
+32 -14 V
+30 -14 V
+29 -13 V
+29 -14 V
+27 -13 V
+27 -12 V
+26 -13 V
+25 -11 V
+24 -11 V
+24 -11 V
+23 -11 V
+23 -10 V
+22 -10 V
+21 -10 V
+21 -10 V
+21 -9 V
+20 -9 V
+19 -10 V
+19 -9 V
+19 -8 V
+18 -9 V
+18 -8 V
+17 -8 V
+18 -8 V
+16 -8 V
+17 -7 V
+16 -7 V
+16 -8 V
+16 -8 V
+15 -7 V
+15 -6 V
+15 -7 V
+15 -6 V
+14 -8 V
+14 -6 V
+14 -6 V
+14 -7 V
+13 -6 V
+13 -5 V
+13 -7 V
+13 -6 V
+13 -6 V
+12 -5 V
+13 -5 V
+12 -7 V
+12 -5 V
+12 -5 V
+11 -5 V
+12 -5 V
+11 -6 V
+11 -5 V
+11 -5 V
+11 -5 V
+11 -5 V
+11 -5 V
+10 -5 V
+11 -5 V
+10 -5 V
+10 -4 V
+10 -4 V
+10 -5 V
+10 -4 V
+9 -5 V
+10 -5 V
+9 -4 V
+10 -4 V
+9 -5 V
+9 -4 V
+9 -3 V
+9 -4 V
+9 -4 V
+9 -5 V
+9 -3 V
+9 -5 V
+8 -4 V
+9 -3 V
+8 -4 V
+8 -4 V
+8 -4 V
+9 -3 V
+8 -4 V
+8 -4 V
+8 -3 V
+8 -4 V
+7 -4 V
+8 -3 V
+8 -3 V
+7 -4 V
+8 -3 V
+7 -4 V
+8 -3 V
+7 -3 V
+7 -3 V
+7 -4 V
+8 -3 V
+7 -4 V
+7 -3 V
+7 -3 V
+7 -3 V
+6 -3 V
+7 -4 V
+7 -3 V
+7 -2 V
+6 -3 V
+7 -3 V
+6 -3 V
+7 -3 V
+6 -3 V
+7 -3 V
+6 -3 V
+6 -3 V
+7 -2 V
+6 -3 V
+6 -4 V
+6 -2 V
+1.000 UL
+LT3
+6311 3927 M
+(jneural train) Rshow
+6395 3927 M
+399 0 V
+-3641 44 R
+599 -429 V
+351 -291 V
+249 -152 V
+194 -106 V
+168 -82 V
+132 -67 V
+115 -57 V
+101 -49 V
+91 -43 V
+82 -39 V
+75 -36 V
+69 -32 V
+64 -30 V
+60 -28 V
+56 -26 V
+52 -24 V
+1.000 UL
+LTb
+6311 3787 M
+(fann test) Rshow
+6395 3787 M
+399 0 V
+975 2993 M
+601 -265 V
+366 -150 V
+247 -106 V
+191 -82 V
+160 -66 V
+132 -56 V
+115 -49 V
+103 -43 V
+91 -38 V
+82 -34 V
+76 -32 V
+69 -29 V
+64 -27 V
+60 -25 V
+55 -24 V
+52 -22 V
+50 -20 V
+46 -20 V
+45 -19 V
+42 -17 V
+41 -17 V
+38 -16 V
+37 -16 V
+39 -9 V
+34 -14 V
+32 -14 V
+33 -13 V
+30 -13 V
+29 -13 V
+28 -12 V
+28 -12 V
+26 -11 V
+26 -11 V
+25 -10 V
+24 -11 V
+24 -10 V
+24 -10 V
+22 -9 V
+22 -9 V
+22 -10 V
+21 -8 V
+20 -9 V
+21 -8 V
+19 -9 V
+19 -8 V
+19 -8 V
+18 -7 V
+18 -8 V
+18 -7 V
+17 -7 V
+17 -7 V
+16 -7 V
+16 -7 V
+16 -7 V
+16 -7 V
+15 -6 V
+15 -6 V
+14 -7 V
+16 -6 V
+14 -6 V
+14 -6 V
+14 -6 V
+14 -5 V
+13 -6 V
+14 -6 V
+13 -5 V
+12 -5 V
+14 -6 V
+12 -5 V
+12 -5 V
+12 -5 V
+12 -5 V
+12 -5 V
+11 -5 V
+12 -5 V
+11 -5 V
+11 -5 V
+11 -4 V
+11 -5 V
+10 -4 V
+12 -5 V
+10 -4 V
+10 -5 V
+11 -4 V
+10 -4 V
+10 -4 V
+10 -5 V
+10 -4 V
+10 -4 V
+10 -4 V
+9 -4 V
+9 -4 V
+10 -4 V
+9 -3 V
+9 -4 V
+9 -4 V
+8 -4 V
+9 -3 V
+9 -4 V
+9 -4 V
+8 -3 V
+9 -4 V
+8 -3 V
+9 -4 V
+8 -3 V
+8 -4 V
+8 -3 V
+8 -4 V
+8 -3 V
+8 -3 V
+8 -3 V
+8 -4 V
+7 -3 V
+8 -3 V
+7 -3 V
+8 -3 V
+7 -3 V
+7 -3 V
+8 -4 V
+7 -3 V
+7 -3 V
+7 -3 V
+7 -2 V
+7 -3 V
+7 -3 V
+7 -3 V
+7 -3 V
+7 -3 V
+6 -3 V
+7 -2 V
+7 -3 V
+6 -3 V
+7 -3 V
+6 -2 V
+6 -3 V
+7 -3 V
+6 -2 V
+6 -3 V
+6 -3 V
+7 -2 V
+6 -3 V
+6 -2 V
+6 -3 V
+6 -2 V
+6 -3 V
+6 -2 V
+6 -3 V
+6 -2 V
+5 -3 V
+6 -2 V
+6 -3 V
+6 -2 V
+5 -2 V
+6 -3 V
+6 -2 V
+5 -2 V
+6 -3 V
+5 -2 V
+5 -2 V
+6 -2 V
+5 -3 V
+5 -2 V
+6 -2 V
+5 -2 V
+5 -3 V
+6 -2 V
+5 -2 V
+5 -2 V
+5 -2 V
+5 -2 V
+5 -3 V
+5 -2 V
+5 -2 V
+5 -2 V
+5 -2 V
+5 -2 V
+5 -2 V
+5 -2 V
+5 -2 V
+4 -2 V
+5 -2 V
+5 -2 V
+4 -2 V
+5 -2 V
+5 -2 V
+5 -2 V
+4 -2 V
+5 -2 V
+5 -2 V
+4 -2 V
+5 -2 V
+4 -1 V
+5 -2 V
+4 -2 V
+5 -2 V
+4 -2 V
+1.000 UL
+LT0
+6311 3647 M
+(fann \(0.75\) test) Rshow
+6395 3647 M
+399 0 V
+1156 3184 M
+590 -285 V
+347 -162 V
+248 -112 V
+192 -86 V
+158 -70 V
+133 -59 V
+116 -51 V
+101 -45 V
+76 -32 V
+85 -37 V
+76 -33 V
+72 -31 V
+65 -28 V
+60 -26 V
+57 -25 V
+53 -23 V
+51 -22 V
+45 -16 V
+40 -16 V
+43 -19 V
+41 -18 V
+39 -17 V
+37 -16 V
+36 -16 V
+34 -15 V
+34 -14 V
+32 -12 V
+30 -13 V
+30 -13 V
+29 -13 V
+28 -12 V
+27 -12 V
+26 -11 V
+25 -11 V
+25 -11 V
+24 -10 V
+23 -10 V
+23 -10 V
+22 -10 V
+21 -9 V
+21 -9 V
+21 -9 V
+20 -9 V
+20 -9 V
+19 -8 V
+19 -8 V
+19 -8 V
+18 -8 V
+17 -8 V
+18 -7 V
+17 -7 V
+16 -8 V
+17 -7 V
+16 -7 V
+15 -6 V
+16 -7 V
+15 -7 V
+15 -6 V
+15 -6 V
+12 -5 V
+14 -7 V
+14 -6 V
+14 -6 V
+13 -5 V
+14 -6 V
+13 -6 V
+13 -5 V
+13 -6 V
+12 -5 V
+12 -6 V
+13 -5 V
+12 -5 V
+11 -5 V
+12 -5 V
+12 -5 V
+11 -5 V
+11 -5 V
+11 -5 V
+11 -5 V
+11 -4 V
+11 -5 V
+10 -4 V
+11 -5 V
+10 -4 V
+10 -5 V
+11 -4 V
+10 -4 V
+9 -5 V
+10 -4 V
+10 -4 V
+9 -4 V
+10 -4 V
+9 -4 V
+9 -4 V
+9 -4 V
+9 -4 V
+9 -4 V
+9 -4 V
+9 -3 V
+8 -4 V
+9 -4 V
+9 -3 V
+8 -4 V
+8 -4 V
+9 -3 V
+8 -4 V
+8 -3 V
+8 -4 V
+8 -3 V
+8 -3 V
+7 -4 V
+8 -3 V
+8 -3 V
+8 -4 V
+7 -3 V
+8 -3 V
+7 -3 V
+8 -3 V
+7 -4 V
+7 -3 V
+7 -3 V
+7 -3 V
+7 -3 V
+7 -3 V
+7 -3 V
+7 -3 V
+7 -3 V
+7 -3 V
+6 -2 V
+7 -3 V
+7 -3 V
+6 -3 V
+7 -3 V
+6 -2 V
+7 -3 V
+6 -3 V
+6 -3 V
+7 -2 V
+6 -3 V
+6 -3 V
+6 -2 V
+6 -3 V
+6 -3 V
+6 -2 V
+6 -3 V
+6 -2 V
+6 -3 V
+6 -2 V
+6 -3 V
+6 -2 V
+5 -3 V
+6 -2 V
+6 -3 V
+5 -2 V
+6 -2 V
+5 -3 V
+6 -2 V
+5 -2 V
+6 -3 V
+5 -2 V
+6 -2 V
+5 -3 V
+5 -2 V
+6 -2 V
+5 -2 V
+1.000 UL
+LT1
+6311 3507 M
+(fann \(fix\) test) Rshow
+6395 3507 M
+399 0 V
+975 3306 M
+601 -229 V
+366 -123 V
+247 -87 V
+191 -72 V
+160 -60 V
+132 -49 V
+115 -42 V
+103 -38 V
+91 -35 V
+82 -32 V
+76 -30 V
+69 -28 V
+64 -25 V
+60 -22 V
+55 -22 V
+52 -20 V
+50 -20 V
+46 -19 V
+45 -18 V
+42 -17 V
+41 -18 V
+38 -15 V
+37 -15 V
+39 -9 V
+34 -14 V
+32 -14 V
+33 -14 V
+30 -13 V
+29 -13 V
+28 -14 V
+28 -13 V
+26 -12 V
+26 -12 V
+25 -11 V
+24 -11 V
+24 -12 V
+24 -10 V
+22 -11 V
+22 -10 V
+22 -10 V
+21 -9 V
+20 -10 V
+21 -9 V
+19 -9 V
+19 -9 V
+19 -9 V
+18 -9 V
+18 -8 V
+18 -9 V
+17 -8 V
+17 -8 V
+16 -8 V
+16 -8 V
+16 -9 V
+16 -8 V
+15 -6 V
+15 -8 V
+14 -6 V
+16 -9 V
+14 -7 V
+14 -6 V
+14 -7 V
+14 -8 V
+13 -7 V
+14 -5 V
+13 -7 V
+12 -6 V
+14 -5 V
+12 -8 V
+12 -6 V
+12 -7 V
+12 -5 V
+12 -7 V
+11 -6 V
+12 -5 V
+11 -5 V
+11 -7 V
+11 -6 V
+11 -6 V
+10 -5 V
+12 -5 V
+10 -6 V
+10 -7 V
+11 -5 V
+10 -6 V
+10 -5 V
+10 -4 V
+10 -5 V
+10 -5 V
+10 -3 V
+9 -7 V
+9 -3 V
+10 -5 V
+9 -5 V
+9 -2 V
+9 -7 V
+8 -2 V
+9 -4 V
+9 -6 V
+9 -4 V
+8 -5 V
+9 -6 V
+8 -4 V
+9 -3 V
+8 -4 V
+8 -4 V
+8 -3 V
+8 -5 V
+8 -4 V
+8 -3 V
+8 -3 V
+8 -5 V
+7 -4 V
+8 -2 V
+7 -3 V
+8 -5 V
+7 -3 V
+7 -3 V
+8 -4 V
+7 -3 V
+7 -2 V
+7 -5 V
+7 -4 V
+7 -4 V
+7 -2 V
+7 -3 V
+7 -5 V
+7 -2 V
+6 -4 V
+7 -3 V
+7 -3 V
+6 -3 V
+7 -3 V
+6 -3 V
+6 -3 V
+7 -3 V
+6 -2 V
+6 -4 V
+6 -2 V
+7 -2 V
+6 -3 V
+6 -3 V
+6 -4 V
+6 -1 V
+6 -5 V
+6 -1 V
+6 -3 V
+6 -3 V
+5 -4 V
+6 -4 V
+6 -3 V
+6 -2 V
+5 -2 V
+6 -2 V
+6 -4 V
+5 -1 V
+6 -4 V
+5 -2 V
+5 -3 V
+6 -1 V
+5 -2 V
+5 -2 V
+6 -3 V
+5 -1 V
+5 -1 V
+6 -4 V
+5 -2 V
+5 -2 V
+5 -2 V
+5 -1 V
+5 -1 V
+5 -5 V
+5 -2 V
+5 0 V
+5 -3 V
+5 -3 V
+5 -4 V
+5 -1 V
+5 -1 V
+4 -1 V
+5 -4 V
+5 -2 V
+4 -2 V
+5 0 V
+5 -2 V
+5 -2 V
+4 -3 V
+5 -3 V
+5 0 V
+4 -1 V
+5 -4 V
+4 -1 V
+5 -2 V
+4 -1 V
+5 -1 V
+4 -3 V
+1.000 UL
+LT2
+6311 3367 M
+(lwnn test) Rshow
+6395 3367 M
+399 0 V
+-5530 86 R
+614 -305 V
+348 -165 V
+248 -116 V
+192 -90 V
+158 -73 V
+133 -62 V
+115 -53 V
+102 -46 V
+91 -43 V
+83 -38 V
+75 -34 V
+70 -32 V
+64 -30 V
+59 -27 V
+56 -26 V
+53 -23 V
+49 -23 V
+47 -22 V
+45 -20 V
+42 -20 V
+40 -18 V
+39 -18 V
+37 -17 V
+35 -16 V
+34 -15 V
+33 -15 V
+32 -15 V
+30 -13 V
+29 -14 V
+29 -12 V
+27 -13 V
+27 -12 V
+26 -12 V
+25 -11 V
+24 -11 V
+24 -11 V
+23 -11 V
+23 -10 V
+22 -9 V
+21 -10 V
+21 -10 V
+21 -9 V
+20 -9 V
+19 -9 V
+19 -8 V
+19 -9 V
+18 -8 V
+18 -8 V
+17 -8 V
+18 -8 V
+16 -7 V
+17 -8 V
+16 -7 V
+16 -7 V
+16 -6 V
+15 -8 V
+15 -7 V
+15 -6 V
+15 -6 V
+14 -7 V
+14 -7 V
+14 -6 V
+14 -6 V
+13 -6 V
+13 -6 V
+13 -6 V
+13 -5 V
+13 -6 V
+12 -6 V
+13 -5 V
+12 -6 V
+12 -5 V
+12 -5 V
+11 -6 V
+12 -5 V
+11 -5 V
+11 -5 V
+11 -4 V
+11 -6 V
+11 -5 V
+11 -5 V
+10 -4 V
+11 -5 V
+10 -4 V
+10 -4 V
+10 -5 V
+10 -5 V
+10 -4 V
+9 -3 V
+10 -5 V
+9 -5 V
+10 -4 V
+9 -4 V
+9 -4 V
+9 -4 V
+9 -5 V
+9 -3 V
+9 -4 V
+9 -4 V
+9 -4 V
+8 -3 V
+9 -4 V
+8 -4 V
+8 -4 V
+8 -3 V
+9 -4 V
+8 -4 V
+8 -3 V
+8 -3 V
+8 -4 V
+7 -3 V
+8 -4 V
+8 -3 V
+7 -3 V
+8 -4 V
+7 -3 V
+8 -4 V
+7 -3 V
+7 -4 V
+7 -2 V
+8 -3 V
+7 -3 V
+7 -3 V
+7 -4 V
+7 -3 V
+6 -2 V
+7 -3 V
+7 -3 V
+7 -3 V
+6 -4 V
+7 -3 V
+6 -3 V
+7 -3 V
+6 -2 V
+7 -3 V
+6 -2 V
+6 -4 V
+7 -3 V
+6 -2 V
+6 -3 V
+6 -3 V
+1.000 UL
+LT3
+6311 3227 M
+(jneural test) Rshow
+6395 3227 M
+399 0 V
+3153 4063 M
+599 -412 V
+351 -279 V
+249 -147 V
+194 -101 V
+168 -76 V
+132 -63 V
+115 -53 V
+101 -47 V
+91 -41 V
+82 -37 V
+75 -34 V
+69 -31 V
+64 -29 V
+60 -26 V
+56 -25 V
+52 -23 V
+stroke
+grestore
+end
+showpage
+%%Trailer
+%%DocumentFonts: Helvetica
+%%Pages: 1
+
+%%EndDocument
+ @endspecial 2430 3114 a
+ currentpoint grestore moveto
+ 2430 3114 a 330 5363 a Fy(Figure)i(19:)39
+b(Graph)28 b(sho)n(wing)g(the)i(mean)f(square)f(error)f(as)h(a)h
+(function)h(of)f(the)g(time)h(for)f(the)330 5463 y(m)n(ushro)r(om)h
+(problem.)45 b(V)-7 b(ery)30 b(easy)g(problem)g(to)h(learn)f(whic)n(h)g
+(generates)f(straigh)n(t)h(lines)g(on)330 5562 y(logarithmic)c(scales.)
+p Black Black 1788 5919 a(34)p Black eop end
+%%Page: 35 39
+TeXDict begin 35 38 bop Black 330 70 a Fp(6.2)82 b(Qualit)n(y)27
+b(Benc)n(hmark)1365 b(6)83 b(BENCHMARKS)p 330 103 3000
+4 v Black Black 330 399 a
+ gsave currentpoint currentpoint translate -90 neg rotate neg exch
+neg exch translate
+ 330 399 a @beginspecial 50
+ at llx 50 @lly 554 @urx 770 @ury 3600 @rhi @setspecial
+%%BeginDocument: figs/soybean.ps
+%!PS-Adobe-2.0
+%%Title: ../doc/figs/soybean.ps
+%%Creator: gnuplot 3.7 patchlevel 3
+%%CreationDate: Fri Oct 24 13:10:39 2003
+%%DocumentFonts: (atend)
+%%BoundingBox: 50 50 554 770
+%%Orientation: Landscape
+%%Pages: (atend)
+%%EndComments
+/gnudict 256 dict def
+gnudict begin
+/Color true def
+/Solid true def
+/gnulinewidth 5.000 def
+/userlinewidth gnulinewidth def
+/vshift -46 def
+/dl {10 mul} def
+/hpt_ 31.5 def
+/vpt_ 31.5 def
+/hpt hpt_ def
+/vpt vpt_ def
+/M {moveto} bind def
+/L {lineto} bind def
+/R {rmoveto} bind def
+/V {rlineto} bind def
+/vpt2 vpt 2 mul def
+/hpt2 hpt 2 mul def
+/Lshow { currentpoint stroke M
+  0 vshift R show } def
+/Rshow { currentpoint stroke M
+  dup stringwidth pop neg vshift R show } def
+/Cshow { currentpoint stroke M
+  dup stringwidth pop -2 div vshift R show } def
+/UP { dup vpt_ mul /vpt exch def hpt_ mul /hpt exch def
+  /hpt2 hpt 2 mul def /vpt2 vpt 2 mul def } def
+/DL { Color {setrgbcolor Solid {pop []} if 0 setdash }
+ {pop pop pop Solid {pop []} if 0 setdash} ifelse } def
+/BL { stroke userlinewidth 2 mul setlinewidth } def
+/AL { stroke userlinewidth 2 div setlinewidth } def
+/UL { dup gnulinewidth mul /userlinewidth exch def
+      dup 1 lt {pop 1} if 10 mul /udl exch def } def
+/PL { stroke userlinewidth setlinewidth } def
+/LTb { BL [] 0 0 0 DL } def
+/LTa { AL [1 udl mul 2 udl mul] 0 setdash 0 0 0 setrgbcolor } def
+/LT0 { PL [] 1 0 0 DL } def
+/LT1 { PL [4 dl 2 dl] 0 1 0 DL } def
+/LT2 { PL [2 dl 3 dl] 0 0 1 DL } def
+/LT3 { PL [1 dl 1.5 dl] 1 0 1 DL } def
+/LT4 { PL [5 dl 2 dl 1 dl 2 dl] 0 1 1 DL } def
+/LT5 { PL [4 dl 3 dl 1 dl 3 dl] 1 1 0 DL } def
+/LT6 { PL [2 dl 2 dl 2 dl 4 dl] 0 0 0 DL } def
+/LT7 { PL [2 dl 2 dl 2 dl 2 dl 2 dl 4 dl] 1 0.3 0 DL } def
+/LT8 { PL [2 dl 2 dl 2 dl 2 dl 2 dl 2 dl 2 dl 4 dl] 0.5 0.5 0.5 DL } def
+/Pnt { stroke [] 0 setdash
+   gsave 1 setlinecap M 0 0 V stroke grestore } def
+/Dia { stroke [] 0 setdash 2 copy vpt add M
+  hpt neg vpt neg V hpt vpt neg V
+  hpt vpt V hpt neg vpt V closepath stroke
+  Pnt } def
+/Pls { stroke [] 0 setdash vpt sub M 0 vpt2 V
+  currentpoint stroke M
+  hpt neg vpt neg R hpt2 0 V stroke
+  } def
+/Box { stroke [] 0 setdash 2 copy exch hpt sub exch vpt add M
+  0 vpt2 neg V hpt2 0 V 0 vpt2 V
+  hpt2 neg 0 V closepath stroke
+  Pnt } def
+/Crs { stroke [] 0 setdash exch hpt sub exch vpt add M
+  hpt2 vpt2 neg V currentpoint stroke M
+  hpt2 neg 0 R hpt2 vpt2 V stroke } def
+/TriU { stroke [] 0 setdash 2 copy vpt 1.12 mul add M
+  hpt neg vpt -1.62 mul V
+  hpt 2 mul 0 V
+  hpt neg vpt 1.62 mul V closepath stroke
+  Pnt  } def
+/Star { 2 copy Pls Crs } def
+/BoxF { stroke [] 0 setdash exch hpt sub exch vpt add M
+  0 vpt2 neg V  hpt2 0 V  0 vpt2 V
+  hpt2 neg 0 V  closepath fill } def
+/TriUF { stroke [] 0 setdash vpt 1.12 mul add M
+  hpt neg vpt -1.62 mul V
+  hpt 2 mul 0 V
+  hpt neg vpt 1.62 mul V closepath fill } def
+/TriD { stroke [] 0 setdash 2 copy vpt 1.12 mul sub M
+  hpt neg vpt 1.62 mul V
+  hpt 2 mul 0 V
+  hpt neg vpt -1.62 mul V closepath stroke
+  Pnt  } def
+/TriDF { stroke [] 0 setdash vpt 1.12 mul sub M
+  hpt neg vpt 1.62 mul V
+  hpt 2 mul 0 V
+  hpt neg vpt -1.62 mul V closepath fill} def
+/DiaF { stroke [] 0 setdash vpt add M
+  hpt neg vpt neg V hpt vpt neg V
+  hpt vpt V hpt neg vpt V closepath fill } def
+/Pent { stroke [] 0 setdash 2 copy gsave
+  translate 0 hpt M 4 {72 rotate 0 hpt L} repeat
+  closepath stroke grestore Pnt } def
+/PentF { stroke [] 0 setdash gsave
+  translate 0 hpt M 4 {72 rotate 0 hpt L} repeat
+  closepath fill grestore } def
+/Circle { stroke [] 0 setdash 2 copy
+  hpt 0 360 arc stroke Pnt } def
+/CircleF { stroke [] 0 setdash hpt 0 360 arc fill } def
+/C0 { BL [] 0 setdash 2 copy moveto vpt 90 450  arc } bind def
+/C1 { BL [] 0 setdash 2 copy        moveto
+       2 copy  vpt 0 90 arc closepath fill
+               vpt 0 360 arc closepath } bind def
+/C2 { BL [] 0 setdash 2 copy moveto
+       2 copy  vpt 90 180 arc closepath fill
+               vpt 0 360 arc closepath } bind def
+/C3 { BL [] 0 setdash 2 copy moveto
+       2 copy  vpt 0 180 arc closepath fill
+               vpt 0 360 arc closepath } bind def
+/C4 { BL [] 0 setdash 2 copy moveto
+       2 copy  vpt 180 270 arc closepath fill
+               vpt 0 360 arc closepath } bind def
+/C5 { BL [] 0 setdash 2 copy moveto
+       2 copy  vpt 0 90 arc
+       2 copy moveto
+       2 copy  vpt 180 270 arc closepath fill
+               vpt 0 360 arc } bind def
+/C6 { BL [] 0 setdash 2 copy moveto
+      2 copy  vpt 90 270 arc closepath fill
+              vpt 0 360 arc closepath } bind def
+/C7 { BL [] 0 setdash 2 copy moveto
+      2 copy  vpt 0 270 arc closepath fill
+              vpt 0 360 arc closepath } bind def
+/C8 { BL [] 0 setdash 2 copy moveto
+      2 copy vpt 270 360 arc closepath fill
+              vpt 0 360 arc closepath } bind def
+/C9 { BL [] 0 setdash 2 copy moveto
+      2 copy  vpt 270 450 arc closepath fill
+              vpt 0 360 arc closepath } bind def
+/C10 { BL [] 0 setdash 2 copy 2 copy moveto vpt 270 360 arc closepath fill
+       2 copy moveto
+       2 copy vpt 90 180 arc closepath fill
+               vpt 0 360 arc closepath } bind def
+/C11 { BL [] 0 setdash 2 copy moveto
+       2 copy  vpt 0 180 arc closepath fill
+       2 copy moveto
+       2 copy  vpt 270 360 arc closepath fill
+               vpt 0 360 arc closepath } bind def
+/C12 { BL [] 0 setdash 2 copy moveto
+       2 copy  vpt 180 360 arc closepath fill
+               vpt 0 360 arc closepath } bind def
+/C13 { BL [] 0 setdash  2 copy moveto
+       2 copy  vpt 0 90 arc closepath fill
+       2 copy moveto
+       2 copy  vpt 180 360 arc closepath fill
+               vpt 0 360 arc closepath } bind def
+/C14 { BL [] 0 setdash 2 copy moveto
+       2 copy  vpt 90 360 arc closepath fill
+               vpt 0 360 arc } bind def
+/C15 { BL [] 0 setdash 2 copy vpt 0 360 arc closepath fill
+               vpt 0 360 arc closepath } bind def
+/Rec   { newpath 4 2 roll moveto 1 index 0 rlineto 0 exch rlineto
+       neg 0 rlineto closepath } bind def
+/Square { dup Rec } bind def
+/Bsquare { vpt sub exch vpt sub exch vpt2 Square } bind def
+/S0 { BL [] 0 setdash 2 copy moveto 0 vpt rlineto BL Bsquare } bind def
+/S1 { BL [] 0 setdash 2 copy vpt Square fill Bsquare } bind def
+/S2 { BL [] 0 setdash 2 copy exch vpt sub exch vpt Square fill Bsquare } bind def
+/S3 { BL [] 0 setdash 2 copy exch vpt sub exch vpt2 vpt Rec fill Bsquare } bind def
+/S4 { BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt Square fill Bsquare } bind def
+/S5 { BL [] 0 setdash 2 copy 2 copy vpt Square fill
+       exch vpt sub exch vpt sub vpt Square fill Bsquare } bind def
+/S6 { BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt vpt2 Rec fill Bsquare } bind def
+/S7 { BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt vpt2 Rec fill
+       2 copy vpt Square fill
+       Bsquare } bind def
+/S8 { BL [] 0 setdash 2 copy vpt sub vpt Square fill Bsquare } bind def
+/S9 { BL [] 0 setdash 2 copy vpt sub vpt vpt2 Rec fill Bsquare } bind def
+/S10 { BL [] 0 setdash 2 copy vpt sub vpt Square fill 2 copy exch vpt sub exch vpt Square fill
+       Bsquare } bind def
+/S11 { BL [] 0 setdash 2 copy vpt sub vpt Square fill 2 copy exch vpt sub exch vpt2 vpt Rec fill
+       Bsquare } bind def
+/S12 { BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt2 vpt Rec fill Bsquare } bind def
+/S13 { BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt2 vpt Rec fill
+       2 copy vpt Square fill Bsquare } bind def
+/S14 { BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt2 vpt Rec fill
+       2 copy exch vpt sub exch vpt Square fill Bsquare } bind def
+/S15 { BL [] 0 setdash 2 copy Bsquare fill Bsquare } bind def
+/D0 { gsave translate 45 rotate 0 0 S0 stroke grestore } bind def
+/D1 { gsave translate 45 rotate 0 0 S1 stroke grestore } bind def
+/D2 { gsave translate 45 rotate 0 0 S2 stroke grestore } bind def
+/D3 { gsave translate 45 rotate 0 0 S3 stroke grestore } bind def
+/D4 { gsave translate 45 rotate 0 0 S4 stroke grestore } bind def
+/D5 { gsave translate 45 rotate 0 0 S5 stroke grestore } bind def
+/D6 { gsave translate 45 rotate 0 0 S6 stroke grestore } bind def
+/D7 { gsave translate 45 rotate 0 0 S7 stroke grestore } bind def
+/D8 { gsave translate 45 rotate 0 0 S8 stroke grestore } bind def
+/D9 { gsave translate 45 rotate 0 0 S9 stroke grestore } bind def
+/D10 { gsave translate 45 rotate 0 0 S10 stroke grestore } bind def
+/D11 { gsave translate 45 rotate 0 0 S11 stroke grestore } bind def
+/D12 { gsave translate 45 rotate 0 0 S12 stroke grestore } bind def
+/D13 { gsave translate 45 rotate 0 0 S13 stroke grestore } bind def
+/D14 { gsave translate 45 rotate 0 0 S14 stroke grestore } bind def
+/D15 { gsave translate 45 rotate 0 0 S15 stroke grestore } bind def
+/DiaE { stroke [] 0 setdash vpt add M
+  hpt neg vpt neg V hpt vpt neg V
+  hpt vpt V hpt neg vpt V closepath stroke } def
+/BoxE { stroke [] 0 setdash exch hpt sub exch vpt add M
+  0 vpt2 neg V hpt2 0 V 0 vpt2 V
+  hpt2 neg 0 V closepath stroke } def
+/TriUE { stroke [] 0 setdash vpt 1.12 mul add M
+  hpt neg vpt -1.62 mul V
+  hpt 2 mul 0 V
+  hpt neg vpt 1.62 mul V closepath stroke } def
+/TriDE { stroke [] 0 setdash vpt 1.12 mul sub M
+  hpt neg vpt 1.62 mul V
+  hpt 2 mul 0 V
+  hpt neg vpt -1.62 mul V closepath stroke } def
+/PentE { stroke [] 0 setdash gsave
+  translate 0 hpt M 4 {72 rotate 0 hpt L} repeat
+  closepath stroke grestore } def
+/CircE { stroke [] 0 setdash 
+  hpt 0 360 arc stroke } def
+/Opaque { gsave closepath 1 setgray fill grestore 0 setgray closepath } def
+/DiaW { stroke [] 0 setdash vpt add M
+  hpt neg vpt neg V hpt vpt neg V
+  hpt vpt V hpt neg vpt V Opaque stroke } def
+/BoxW { stroke [] 0 setdash exch hpt sub exch vpt add M
+  0 vpt2 neg V hpt2 0 V 0 vpt2 V
+  hpt2 neg 0 V Opaque stroke } def
+/TriUW { stroke [] 0 setdash vpt 1.12 mul add M
+  hpt neg vpt -1.62 mul V
+  hpt 2 mul 0 V
+  hpt neg vpt 1.62 mul V Opaque stroke } def
+/TriDW { stroke [] 0 setdash vpt 1.12 mul sub M
+  hpt neg vpt 1.62 mul V
+  hpt 2 mul 0 V
+  hpt neg vpt -1.62 mul V Opaque stroke } def
+/PentW { stroke [] 0 setdash gsave
+  translate 0 hpt M 4 {72 rotate 0 hpt L} repeat
+  Opaque stroke grestore } def
+/CircW { stroke [] 0 setdash 
+  hpt 0 360 arc Opaque stroke } def
+/BoxFill { gsave Rec 1 setgray fill grestore } def
+/Symbol-Oblique /Symbol findfont [1 0 .167 1 0 0] makefont
+dup length dict begin {1 index /FID eq {pop pop} {def} ifelse} forall
+currentdict end definefont pop
+end
+%%EndProlog
+%%Page: 1 1
+gnudict begin
+gsave
+50 50 translate
+0.100 0.100 scale
+90 rotate
+0 -5040 translate
+0 setgray
+newpath
+(Helvetica) findfont 140 scalefont setfont
+1.000 UL
+LTb
+1.000 UL
+LTa
+714 420 M
+6248 0 V
+1.000 UL
+LTb
+714 420 M
+63 0 V
+6185 0 R
+-63 0 V
+630 420 M
+( 0) Rshow
+1.000 UL
+LTa
+714 945 M
+6248 0 V
+1.000 UL
+LTb
+714 945 M
+63 0 V
+6185 0 R
+-63 0 V
+630 945 M
+( 0.1) Rshow
+1.000 UL
+LTa
+714 1470 M
+6248 0 V
+1.000 UL
+LTb
+714 1470 M
+63 0 V
+6185 0 R
+-63 0 V
+-6269 0 R
+( 0.2) Rshow
+1.000 UL
+LTa
+714 1995 M
+6248 0 V
+1.000 UL
+LTb
+714 1995 M
+63 0 V
+6185 0 R
+-63 0 V
+-6269 0 R
+( 0.3) Rshow
+1.000 UL
+LTa
+714 2520 M
+6248 0 V
+1.000 UL
+LTb
+714 2520 M
+63 0 V
+6185 0 R
+-63 0 V
+-6269 0 R
+( 0.4) Rshow
+1.000 UL
+LTa
+714 3045 M
+6248 0 V
+1.000 UL
+LTb
+714 3045 M
+63 0 V
+6185 0 R
+-63 0 V
+-6269 0 R
+( 0.5) Rshow
+1.000 UL
+LTa
+714 3570 M
+4169 0 V
+1995 0 R
+84 0 V
+1.000 UL
+LTb
+714 3570 M
+63 0 V
+6185 0 R
+-63 0 V
+-6269 0 R
+( 0.6) Rshow
+1.000 UL
+LTa
+714 4095 M
+4169 0 V
+1995 0 R
+84 0 V
+1.000 UL
+LTb
+714 4095 M
+63 0 V
+6185 0 R
+-63 0 V
+-6269 0 R
+( 0.7) Rshow
+1.000 UL
+LTa
+714 4620 M
+6248 0 V
+1.000 UL
+LTb
+714 4620 M
+63 0 V
+6185 0 R
+-63 0 V
+-6269 0 R
+( 0.8) Rshow
+1.000 UL
+LTa
+714 420 M
+0 4200 V
+1.000 UL
+LTb
+714 420 M
+0 63 V
+0 4137 R
+0 -63 V
+714 280 M
+( 1) Cshow
+1341 420 M
+0 31 V
+0 4169 R
+0 -31 V
+1708 420 M
+0 31 V
+0 4169 R
+0 -31 V
+1968 420 M
+0 31 V
+0 4169 R
+0 -31 V
+2170 420 M
+0 31 V
+0 4169 R
+0 -31 V
+2335 420 M
+0 31 V
+0 4169 R
+0 -31 V
+2474 420 M
+0 31 V
+0 4169 R
+0 -31 V
+2595 420 M
+0 31 V
+0 4169 R
+0 -31 V
+2701 420 M
+0 31 V
+0 4169 R
+0 -31 V
+1.000 UL
+LTa
+2797 420 M
+0 4200 V
+1.000 UL
+LTb
+2797 420 M
+0 63 V
+0 4137 R
+0 -63 V
+0 -4277 R
+( 10) Cshow
+3424 420 M
+0 31 V
+0 4169 R
+0 -31 V
+3790 420 M
+0 31 V
+0 4169 R
+0 -31 V
+4051 420 M
+0 31 V
+0 4169 R
+0 -31 V
+4252 420 M
+0 31 V
+0 4169 R
+0 -31 V
+4417 420 M
+0 31 V
+0 4169 R
+0 -31 V
+4557 420 M
+0 31 V
+0 4169 R
+0 -31 V
+4678 420 M
+0 31 V
+0 4169 R
+0 -31 V
+4784 420 M
+0 31 V
+0 4169 R
+0 -31 V
+1.000 UL
+LTa
+4879 420 M
+0 4200 V
+1.000 UL
+LTb
+4879 420 M
+0 63 V
+0 4137 R
+0 -63 V
+0 -4277 R
+( 100) Cshow
+5506 420 M
+0 31 V
+0 4169 R
+0 -31 V
+5873 420 M
+0 31 V
+0 4169 R
+0 -31 V
+6133 420 M
+0 31 V
+0 4169 R
+0 -31 V
+6335 420 M
+0 31 V
+0 4169 R
+0 -31 V
+6500 420 M
+0 31 V
+0 4169 R
+0 -31 V
+6639 420 M
+0 31 V
+0 4169 R
+0 -31 V
+6760 420 M
+0 31 V
+0 4169 R
+0 -31 V
+6867 420 M
+0 31 V
+0 4169 R
+0 -31 V
+1.000 UL
+LTa
+6962 420 M
+0 4200 V
+1.000 UL
+LTb
+6962 420 M
+0 63 V
+0 4137 R
+0 -63 V
+0 -4277 R
+( 1000) Cshow
+1.000 UL
+LTb
+714 420 M
+6248 0 V
+0 4200 V
+-6248 0 V
+714 420 L
+140 2520 M
+currentpoint gsave translate 90 rotate 0 0 M
+(Mean square error) Cshow
+grestore
+3838 70 M
+(Seconds of training) Cshow
+3838 4830 M
+(soybean) Cshow
+1.000 UL
+LTb
+6311 4487 M
+(fann train) Rshow
+6395 4487 M
+399 0 V
+714 839 M
+1341 461 L
+367 -1 V
+260 -36 V
+202 -1 V
+165 -1 V
+139 0 V
+121 0 V
+106 -1 V
+96 0 V
+86 0 V
+79 0 V
+72 0 V
+67 0 V
+62 0 V
+59 0 V
+55 0 V
+51 0 V
+49 0 V
+47 0 V
+44 0 V
+42 0 V
+40 0 V
+39 -1 V
+36 0 V
+36 0 V
+34 0 V
+33 0 V
+32 0 V
+31 0 V
+29 0 V
+29 0 V
+28 0 V
+27 0 V
+26 0 V
+26 0 V
+24 0 V
+24 0 V
+24 0 V
+23 0 V
+22 0 V
+22 0 V
+21 0 V
+21 0 V
+20 0 V
+20 0 V
+20 0 V
+19 0 V
+18 0 V
+19 0 V
+17 0 V
+18 0 V
+17 0 V
+17 0 V
+17 0 V
+16 0 V
+16 0 V
+16 0 V
+15 0 V
+15 0 V
+15 0 V
+15 0 V
+15 0 V
+14 0 V
+14 0 V
+14 0 V
+13 0 V
+14 0 V
+13 0 V
+13 0 V
+13 0 V
+12 0 V
+13 0 V
+12 0 V
+12 0 V
+12 0 V
+12 0 V
+12 0 V
+11 0 V
+12 0 V
+11 0 V
+11 0 V
+11 0 V
+11 0 V
+10 0 V
+11 0 V
+10 0 V
+11 0 V
+10 0 V
+10 0 V
+10 0 V
+10 0 V
+10 0 V
+9 0 V
+10 0 V
+10 0 V
+9 0 V
+9 0 V
+9 0 V
+9 0 V
+9 0 V
+9 0 V
+9 0 V
+9 0 V
+9 0 V
+8 0 V
+9 0 V
+8 0 V
+8 0 V
+9 0 V
+8 0 V
+8 0 V
+8 0 V
+8 0 V
+8 0 V
+8 0 V
+7 0 V
+8 0 V
+8 0 V
+7 0 V
+8 0 V
+7 0 V
+8 0 V
+7 0 V
+7 0 V
+7 0 V
+8 0 V
+7 0 V
+7 0 V
+7 0 V
+7 0 V
+7 0 V
+6 0 V
+7 0 V
+7 0 V
+7 0 V
+6 0 V
+7 0 V
+6 0 V
+7 0 V
+6 0 V
+7 0 V
+6 0 V
+6 0 V
+6 0 V
+7 0 V
+6 0 V
+6 0 V
+6 0 V
+6 0 V
+6 0 V
+6 0 V
+6 0 V
+6 0 V
+6 0 V
+6 0 V
+5 0 V
+6 0 V
+6 0 V
+6 0 V
+5 0 V
+6 0 V
+5 0 V
+6 0 V
+5 0 V
+6 0 V
+5 0 V
+6 0 V
+5 0 V
+5 0 V
+6 0 V
+5 0 V
+5 0 V
+5 0 V
+6 0 V
+5 0 V
+5 0 V
+5 0 V
+5 0 V
+5 0 V
+5 0 V
+5 0 V
+5 0 V
+5 0 V
+5 0 V
+5 0 V
+5 0 V
+5 0 V
+4 0 V
+5 0 V
+5 0 V
+5 0 V
+4 0 V
+5 0 V
+5 0 V
+4 0 V
+5 0 V
+4 0 V
+5 0 V
+4 0 V
+1.000 UL
+LT0
+6311 4347 M
+(fann \(0.75\) train) Rshow
+6395 4347 M
+399 0 V
+714 919 M
+1341 565 L
+367 107 V
+1970 488 L
+203 -2 V
+165 -1 V
+139 -1 V
+120 0 V
+106 -1 V
+95 0 V
+87 0 V
+78 0 V
+73 0 V
+67 0 V
+62 0 V
+58 -1 V
+55 0 V
+52 0 V
+48 0 V
+47 0 V
+44 0 V
+42 0 V
+40 0 V
+39 0 V
+36 0 V
+36 0 V
+34 0 V
+33 0 V
+32 0 V
+30 0 V
+30 0 V
+28 0 V
+28 0 V
+27 0 V
+26 0 V
+26 0 V
+25 0 V
+24 0 V
+24 0 V
+23 0 V
+22 0 V
+22 0 V
+21 0 V
+21 0 V
+20 0 V
+20 0 V
+19 0 V
+19 0 V
+19 0 V
+18 0 V
+18 0 V
+18 0 V
+17 0 V
+17 0 V
+16 0 V
+17 0 V
+16 0 V
+15 0 V
+16 0 V
+15 0 V
+15 0 V
+15 0 V
+14 0 V
+14 0 V
+14 0 V
+14 0 V
+14 0 V
+13 0 V
+13 0 V
+13 0 V
+13 0 V
+13 0 V
+12 0 V
+13 0 V
+12 0 V
+12 0 V
+12 0 V
+11 0 V
+12 0 V
+11 0 V
+11 0 V
+11 0 V
+11 0 V
+11 0 V
+11 0 V
+10 0 V
+11 0 V
+10 0 V
+10 0 V
+11 0 V
+10 0 V
+9 0 V
+10 0 V
+10 0 V
+10 0 V
+9 0 V
+9 0 V
+10 0 V
+9 0 V
+9 0 V
+9 0 V
+9 0 V
+9 0 V
+9 0 V
+8 0 V
+9 0 V
+8 0 V
+9 0 V
+8 0 V
+8 0 V
+9 0 V
+8 0 V
+8 0 V
+8 0 V
+7 0 V
+8 0 V
+8 0 V
+8 0 V
+8 0 V
+7 0 V
+8 0 V
+7 0 V
+7 0 V
+8 0 V
+7 0 V
+7 0 V
+7 0 V
+7 0 V
+7 0 V
+7 0 V
+7 0 V
+7 0 V
+7 0 V
+7 0 V
+7 0 V
+6 0 V
+7 0 V
+6 0 V
+7 0 V
+6 0 V
+7 0 V
+6 0 V
+7 0 V
+6 0 V
+6 0 V
+6 0 V
+7 0 V
+6 0 V
+6 0 V
+6 0 V
+6 0 V
+6 0 V
+6 0 V
+6 0 V
+5 0 V
+6 0 V
+6 0 V
+6 0 V
+5 0 V
+6 0 V
+6 0 V
+5 0 V
+6 0 V
+5 0 V
+6 0 V
+5 -1 V
+6 0 V
+5 0 V
+6 0 V
+5 0 V
+5 0 V
+6 0 V
+5 0 V
+5 0 V
+5 0 V
+5 0 V
+5 0 V
+6 0 V
+5 0 V
+5 0 V
+5 0 V
+5 0 V
+5 0 V
+4 0 V
+5 0 V
+5 0 V
+5 0 V
+5 0 V
+5 0 V
+5 0 V
+4 0 V
+5 0 V
+5 0 V
+4 0 V
+5 0 V
+5 0 V
+4 0 V
+5 0 V
+4 0 V
+5 0 V
+1.000 UL
+LT1
+6311 4207 M
+(fann \(fix\) train) Rshow
+6395 4207 M
+399 0 V
+714 875 M
+1341 483 L
+367 -11 V
+260 -41 V
+202 -2 V
+165 -2 V
+139 -1 V
+121 -1 V
+106 0 V
+96 -1 V
+86 0 V
+79 -1 V
+72 0 V
+67 0 V
+62 0 V
+59 -1 V
+55 0 V
+51 0 V
+49 0 V
+47 0 V
+44 0 V
+42 0 V
+40 0 V
+39 0 V
+36 -1 V
+36 0 V
+34 0 V
+33 0 V
+32 0 V
+31 0 V
+29 0 V
+29 0 V
+28 0 V
+27 0 V
+26 0 V
+26 0 V
+24 0 V
+24 0 V
+24 0 V
+23 0 V
+22 0 V
+22 0 V
+21 0 V
+21 0 V
+20 0 V
+20 0 V
+20 0 V
+19 0 V
+18 0 V
+19 0 V
+17 0 V
+18 0 V
+17 0 V
+17 0 V
+17 0 V
+16 0 V
+16 0 V
+16 0 V
+15 0 V
+15 -1 V
+15 0 V
+15 0 V
+15 0 V
+14 0 V
+14 0 V
+14 0 V
+13 0 V
+14 0 V
+13 0 V
+13 0 V
+13 0 V
+12 0 V
+13 0 V
+12 0 V
+12 0 V
+12 0 V
+12 0 V
+12 0 V
+11 0 V
+12 0 V
+11 0 V
+11 0 V
+11 0 V
+11 0 V
+10 0 V
+11 0 V
+10 0 V
+11 0 V
+10 0 V
+10 0 V
+10 0 V
+10 0 V
+10 0 V
+9 0 V
+10 0 V
+10 0 V
+9 0 V
+9 0 V
+9 0 V
+9 0 V
+9 0 V
+9 0 V
+9 0 V
+9 0 V
+9 0 V
+8 0 V
+9 0 V
+8 0 V
+8 0 V
+9 0 V
+8 0 V
+8 0 V
+8 0 V
+8 0 V
+8 0 V
+8 0 V
+7 0 V
+8 0 V
+8 0 V
+7 0 V
+8 0 V
+7 0 V
+8 0 V
+7 0 V
+7 0 V
+7 0 V
+8 0 V
+7 0 V
+7 0 V
+7 0 V
+7 0 V
+7 0 V
+6 0 V
+7 0 V
+7 0 V
+7 0 V
+6 0 V
+7 0 V
+6 0 V
+7 0 V
+6 0 V
+7 0 V
+6 0 V
+6 0 V
+6 0 V
+7 0 V
+6 0 V
+6 0 V
+6 0 V
+6 0 V
+6 0 V
+6 0 V
+6 0 V
+6 0 V
+6 0 V
+6 0 V
+5 0 V
+6 0 V
+6 0 V
+6 0 V
+5 0 V
+6 0 V
+5 0 V
+6 0 V
+5 0 V
+6 0 V
+5 0 V
+6 0 V
+5 0 V
+5 0 V
+6 0 V
+5 0 V
+5 0 V
+5 0 V
+6 0 V
+5 0 V
+5 0 V
+5 0 V
+5 0 V
+5 0 V
+5 0 V
+5 0 V
+5 0 V
+5 0 V
+5 0 V
+5 0 V
+5 0 V
+5 0 V
+4 0 V
+5 0 V
+5 0 V
+5 0 V
+4 0 V
+5 0 V
+5 0 V
+4 0 V
+5 0 V
+4 0 V
+5 0 V
+4 0 V
+1.000 UL
+LT2
+6311 4067 M
+(lwnn train) Rshow
+6395 4067 M
+399 0 V
+714 1288 M
+627 -246 V
+1708 731 L
+260 -26 V
+202 -7 V
+165 -17 V
+139 -57 V
+121 -31 V
+106 -5 V
+96 -9 V
+86 -1 V
+79 -1 V
+72 0 V
+67 0 V
+62 -1 V
+59 0 V
+55 0 V
+51 0 V
+49 0 V
+47 0 V
+44 -1 V
+42 0 V
+40 0 V
+39 0 V
+36 0 V
+36 0 V
+34 0 V
+33 0 V
+32 0 V
+30 0 V
+30 0 V
+29 0 V
+28 0 V
+27 0 V
+26 0 V
+25 0 V
+25 0 V
+24 0 V
+24 -1 V
+23 0 V
+22 0 V
+22 0 V
+21 0 V
+21 0 V
+20 0 V
+20 0 V
+20 0 V
+19 0 V
+18 0 V
+19 0 V
+17 0 V
+18 0 V
+17 0 V
+17 0 V
+17 0 V
+16 0 V
+16 0 V
+16 0 V
+15 0 V
+15 0 V
+15 0 V
+15 0 V
+15 0 V
+14 0 V
+14 0 V
+14 0 V
+13 0 V
+14 0 V
+13 0 V
+13 0 V
+13 0 V
+12 0 V
+13 0 V
+12 0 V
+12 0 V
+12 0 V
+12 0 V
+12 0 V
+11 0 V
+12 0 V
+11 0 V
+11 0 V
+11 0 V
+11 0 V
+10 0 V
+11 0 V
+10 0 V
+11 0 V
+10 0 V
+10 0 V
+10 0 V
+10 0 V
+10 0 V
+9 0 V
+10 0 V
+10 0 V
+9 0 V
+9 0 V
+9 0 V
+9 0 V
+9 0 V
+9 0 V
+9 0 V
+9 0 V
+9 0 V
+8 0 V
+9 0 V
+8 0 V
+8 0 V
+9 0 V
+8 0 V
+8 0 V
+8 0 V
+8 0 V
+8 0 V
+8 0 V
+7 0 V
+8 0 V
+8 0 V
+7 0 V
+8 0 V
+7 0 V
+8 0 V
+7 0 V
+7 0 V
+8 0 V
+7 0 V
+7 0 V
+7 0 V
+7 0 V
+7 0 V
+7 0 V
+6 0 V
+7 0 V
+7 0 V
+7 0 V
+6 0 V
+7 0 V
+6 0 V
+7 0 V
+6 0 V
+7 0 V
+6 0 V
+6 0 V
+7 0 V
+6 0 V
+6 0 V
+6 0 V
+6 0 V
+6 0 V
+6 0 V
+6 0 V
+6 0 V
+6 0 V
+6 0 V
+6 0 V
+5 0 V
+6 0 V
+6 0 V
+6 0 V
+5 0 V
+6 0 V
+5 0 V
+6 0 V
+5 0 V
+6 0 V
+5 0 V
+6 0 V
+5 0 V
+5 0 V
+6 0 V
+5 0 V
+5 0 V
+5 0 V
+6 0 V
+5 0 V
+5 0 V
+5 0 V
+5 0 V
+5 0 V
+5 0 V
+5 0 V
+5 0 V
+5 0 V
+5 0 V
+5 0 V
+5 0 V
+4 0 V
+5 0 V
+5 0 V
+5 0 V
+4 0 V
+5 0 V
+5 0 V
+4 0 V
+5 0 V
+5 0 V
+4 0 V
+5 0 V
+4 0 V
+1.000 UL
+LT3
+6311 3927 M
+(jneural train) Rshow
+6395 3927 M
+399 0 V
+732 4015 M
+1359 2645 L
+367 -530 V
+260 -655 V
+2188 868 L
+2353 640 L
+139 -55 V
+121 104 V
+2719 571 L
+96 116 V
+86 -116 V
+78 -43 V
+73 -20 V
+67 -10 V
+62 -4 V
+59 17 V
+55 0 V
+51 -25 V
+49 -11 V
+47 -6 V
+44 -2 V
+42 -1 V
+40 -1 V
+39 -1 V
+37 0 V
+35 -1 V
+34 -1 V
+33 0 V
+32 0 V
+31 0 V
+29 0 V
+29 -1 V
+28 -1 V
+27 -3 V
+26 -2 V
+25 -2 V
+25 -1 V
+24 -1 V
+24 0 V
+23 -1 V
+22 0 V
+22 0 V
+21 1 V
+21 0 V
+20 1 V
+21 0 V
+19 -11 V
+19 -3 V
+19 0 V
+18 0 V
+18 0 V
+17 0 V
+18 -1 V
+17 0 V
+16 0 V
+16 0 V
+16 0 V
+16 0 V
+16 0 V
+15 -2 V
+15 -12 V
+14 -1 V
+15 0 V
+14 0 V
+14 0 V
+14 0 V
+14 0 V
+13 0 V
+13 -1 V
+13 0 V
+13 0 V
+13 0 V
+12 0 V
+12 0 V
+13 0 V
+11 0 V
+12 0 V
+12 0 V
+11 0 V
+12 0 V
+11 0 V
+11 0 V
+11 0 V
+11 0 V
+11 0 V
+10 0 V
+11 0 V
+10 0 V
+10 0 V
+10 0 V
+10 0 V
+10 0 V
+10 0 V
+10 0 V
+9 0 V
+10 0 V
+9 0 V
+9 0 V
+10 0 V
+9 0 V
+9 0 V
+9 0 V
+8 0 V
+9 0 V
+9 0 V
+9 0 V
+8 0 V
+8 0 V
+9 0 V
+8 0 V
+8 0 V
+8 0 V
+8 0 V
+8 0 V
+8 0 V
+8 0 V
+8 0 V
+7 0 V
+8 0 V
+8 0 V
+7 0 V
+8 0 V
+7 0 V
+7 0 V
+8 0 V
+7 0 V
+7 0 V
+7 0 V
+7 0 V
+7 0 V
+7 0 V
+7 0 V
+7 -1 V
+7 0 V
+6 0 V
+7 0 V
+7 0 V
+6 0 V
+7 0 V
+6 0 V
+7 0 V
+6 0 V
+6 0 V
+7 0 V
+6 0 V
+6 0 V
+6 0 V
+7 0 V
+6 0 V
+6 0 V
+6 0 V
+6 0 V
+6 0 V
+5 0 V
+6 0 V
+6 0 V
+6 0 V
+6 0 V
+5 0 V
+6 0 V
+6 0 V
+5 0 V
+6 0 V
+5 0 V
+6 0 V
+5 0 V
+6 0 V
+5 0 V
+5 0 V
+6 0 V
+5 0 V
+5 0 V
+6 0 V
+5 0 V
+5 0 V
+5 0 V
+5 0 V
+5 0 V
+5 0 V
+6 0 V
+5 0 V
+5 0 V
+4 0 V
+5 0 V
+5 0 V
+5 0 V
+5 0 V
+5 0 V
+5 0 V
+4 0 V
+5 0 V
+5 0 V
+5 0 V
+4 0 V
+5 0 V
+5 0 V
+1.000 UL
+LTb
+6311 3787 M
+(fann test) Rshow
+6395 3787 M
+399 0 V
+714 1179 M
+627 -60 V
+367 51 V
+260 30 V
+202 -20 V
+165 -8 V
+139 -3 V
+121 1 V
+106 2 V
+96 3 V
+86 2 V
+79 2 V
+72 2 V
+67 2 V
+62 2 V
+59 1 V
+55 2 V
+51 1 V
+49 1 V
+47 1 V
+44 1 V
+42 1 V
+40 1 V
+39 0 V
+36 1 V
+36 1 V
+34 0 V
+33 1 V
+32 1 V
+31 0 V
+29 1 V
+29 0 V
+28 0 V
+27 1 V
+26 0 V
+26 1 V
+24 0 V
+24 0 V
+24 1 V
+23 0 V
+22 0 V
+22 1 V
+21 0 V
+21 0 V
+20 0 V
+20 1 V
+20 0 V
+19 0 V
+18 0 V
+19 0 V
+17 1 V
+18 0 V
+17 0 V
+17 0 V
+17 0 V
+16 1 V
+16 0 V
+16 0 V
+15 0 V
+15 0 V
+15 0 V
+15 1 V
+15 0 V
+14 0 V
+14 0 V
+14 0 V
+13 0 V
+14 0 V
+13 0 V
+13 1 V
+13 0 V
+12 0 V
+13 0 V
+12 0 V
+12 0 V
+12 0 V
+12 0 V
+12 0 V
+11 0 V
+12 0 V
+11 0 V
+11 1 V
+11 0 V
+11 0 V
+10 0 V
+11 0 V
+10 0 V
+11 0 V
+10 0 V
+10 0 V
+10 0 V
+10 0 V
+10 0 V
+9 0 V
+10 0 V
+10 1 V
+9 0 V
+9 0 V
+9 0 V
+9 0 V
+9 0 V
+9 0 V
+9 0 V
+9 0 V
+9 0 V
+8 0 V
+9 0 V
+8 0 V
+8 0 V
+9 0 V
+8 0 V
+8 0 V
+8 0 V
+8 0 V
+8 0 V
+8 0 V
+7 0 V
+8 0 V
+8 0 V
+7 0 V
+8 0 V
+7 0 V
+8 0 V
+7 0 V
+7 0 V
+7 0 V
+8 0 V
+7 0 V
+7 0 V
+7 0 V
+7 0 V
+7 0 V
+6 0 V
+7 1 V
+7 0 V
+7 0 V
+6 0 V
+7 0 V
+6 0 V
+7 0 V
+6 0 V
+7 0 V
+6 0 V
+6 0 V
+6 0 V
+7 0 V
+6 0 V
+6 0 V
+6 0 V
+6 0 V
+6 0 V
+6 0 V
+6 0 V
+6 0 V
+6 0 V
+6 0 V
+5 0 V
+6 0 V
+6 0 V
+6 1 V
+5 0 V
+6 0 V
+5 0 V
+6 0 V
+5 0 V
+6 0 V
+5 0 V
+6 0 V
+5 0 V
+5 0 V
+6 0 V
+5 0 V
+5 0 V
+5 0 V
+6 0 V
+5 0 V
+5 0 V
+5 0 V
+5 0 V
+5 1 V
+5 0 V
+5 0 V
+5 0 V
+5 0 V
+5 0 V
+5 0 V
+5 0 V
+5 0 V
+4 0 V
+5 0 V
+5 0 V
+5 0 V
+4 0 V
+5 0 V
+5 0 V
+4 0 V
+5 0 V
+4 0 V
+5 0 V
+4 0 V
+1.000 UL
+LT0
+6311 3647 M
+(fann \(0.75\) test) Rshow
+6395 3647 M
+399 0 V
+714 1444 M
+627 -115 V
+367 -34 V
+262 0 V
+203 -4 V
+165 -3 V
+139 -3 V
+120 -1 V
+106 -1 V
+95 -1 V
+87 -1 V
+78 -2 V
+73 -2 V
+67 -2 V
+62 -2 V
+58 -1 V
+55 -2 V
+52 -2 V
+48 -1 V
+47 -2 V
+44 -1 V
+42 -1 V
+40 -2 V
+39 -1 V
+36 -1 V
+36 -1 V
+34 -1 V
+33 -1 V
+32 -1 V
+30 -1 V
+30 -1 V
+28 -1 V
+28 -1 V
+27 0 V
+26 -1 V
+26 -1 V
+25 -1 V
+24 0 V
+24 -1 V
+23 -1 V
+22 0 V
+22 -1 V
+21 0 V
+21 -1 V
+20 -1 V
+20 0 V
+19 -1 V
+19 0 V
+19 -1 V
+18 0 V
+18 -1 V
+18 0 V
+17 0 V
+17 -1 V
+16 0 V
+17 -1 V
+16 0 V
+15 0 V
+16 -1 V
+15 0 V
+15 -1 V
+15 0 V
+14 0 V
+14 -1 V
+14 0 V
+14 0 V
+14 -1 V
+13 0 V
+13 0 V
+13 -1 V
+13 0 V
+13 0 V
+12 -1 V
+13 0 V
+12 0 V
+12 0 V
+12 -1 V
+11 0 V
+12 0 V
+11 0 V
+11 -1 V
+11 0 V
+11 0 V
+11 -1 V
+11 0 V
+10 0 V
+11 0 V
+10 0 V
+10 -1 V
+11 0 V
+10 0 V
+9 0 V
+10 -1 V
+10 0 V
+10 0 V
+9 0 V
+9 -1 V
+10 0 V
+9 0 V
+9 0 V
+9 0 V
+9 -1 V
+9 0 V
+9 0 V
+8 0 V
+9 -1 V
+8 0 V
+9 0 V
+8 0 V
+8 0 V
+9 0 V
+8 -1 V
+8 0 V
+8 0 V
+7 0 V
+8 0 V
+8 -1 V
+8 0 V
+8 0 V
+7 0 V
+8 0 V
+7 -1 V
+7 0 V
+8 0 V
+7 0 V
+7 0 V
+7 0 V
+7 -1 V
+7 0 V
+7 0 V
+7 0 V
+7 0 V
+7 0 V
+7 -1 V
+7 0 V
+6 0 V
+7 0 V
+6 0 V
+7 0 V
+6 -1 V
+7 0 V
+6 0 V
+7 0 V
+6 0 V
+6 0 V
+6 -1 V
+7 0 V
+6 0 V
+6 0 V
+6 0 V
+6 0 V
+6 -1 V
+6 0 V
+6 0 V
+5 0 V
+6 0 V
+6 0 V
+6 -1 V
+5 0 V
+6 0 V
+6 0 V
+5 0 V
+6 0 V
+5 -1 V
+6 0 V
+5 0 V
+6 0 V
+5 0 V
+6 0 V
+5 0 V
+5 -1 V
+6 0 V
+5 0 V
+5 0 V
+5 0 V
+5 0 V
+5 0 V
+6 -1 V
+5 0 V
+5 0 V
+5 0 V
+5 0 V
+5 0 V
+4 0 V
+5 -1 V
+5 0 V
+5 0 V
+5 0 V
+5 0 V
+5 0 V
+4 0 V
+5 0 V
+5 -1 V
+4 0 V
+5 0 V
+5 0 V
+4 0 V
+5 0 V
+4 0 V
+5 0 V
+1.000 UL
+LT1
+6311 3507 M
+(fann \(fix\) test) Rshow
+6395 3507 M
+399 0 V
+714 1212 M
+627 -108 V
+367 53 V
+260 26 V
+202 -21 V
+165 -9 V
+139 -5 V
+121 -1 V
+106 2 V
+96 2 V
+86 2 V
+79 2 V
+72 2 V
+67 2 V
+62 1 V
+59 1 V
+55 1 V
+51 1 V
+49 1 V
+47 1 V
+44 0 V
+42 1 V
+40 0 V
+39 1 V
+36 0 V
+36 0 V
+34 1 V
+33 1 V
+32 0 V
+31 1 V
+29 0 V
+29 1 V
+28 0 V
+27 0 V
+26 0 V
+26 1 V
+24 0 V
+24 1 V
+24 0 V
+23 0 V
+22 0 V
+22 1 V
+21 0 V
+21 0 V
+20 0 V
+20 0 V
+20 1 V
+19 0 V
+18 0 V
+19 0 V
+17 0 V
+18 0 V
+17 1 V
+17 0 V
+17 0 V
+16 0 V
+16 0 V
+16 1 V
+15 0 V
+15 0 V
+15 0 V
+15 0 V
+15 0 V
+14 0 V
+14 0 V
+14 0 V
+13 1 V
+14 0 V
+13 0 V
+13 0 V
+13 0 V
+12 0 V
+13 0 V
+12 0 V
+12 0 V
+12 0 V
+12 0 V
+12 0 V
+11 0 V
+12 0 V
+11 1 V
+11 0 V
+11 0 V
+11 0 V
+10 0 V
+11 0 V
+10 0 V
+11 0 V
+10 0 V
+10 0 V
+10 0 V
+10 1 V
+10 -1 V
+9 0 V
+10 0 V
+10 1 V
+9 0 V
+9 0 V
+9 0 V
+9 0 V
+9 -1 V
+9 0 V
+9 0 V
+9 0 V
+9 0 V
+8 0 V
+9 0 V
+8 0 V
+8 0 V
+9 0 V
+8 0 V
+8 0 V
+8 0 V
+8 1 V
+8 0 V
+8 -1 V
+7 1 V
+8 0 V
+8 -1 V
+7 0 V
+8 1 V
+7 0 V
+8 0 V
+7 0 V
+7 0 V
+7 0 V
+8 -1 V
+7 1 V
+7 0 V
+7 0 V
+7 0 V
+7 0 V
+6 0 V
+7 0 V
+7 0 V
+7 0 V
+6 0 V
+7 0 V
+6 0 V
+7 0 V
+6 0 V
+7 0 V
+6 0 V
+6 0 V
+6 0 V
+7 0 V
+6 0 V
+6 0 V
+6 0 V
+6 0 V
+6 0 V
+6 0 V
+6 0 V
+6 0 V
+6 0 V
+6 0 V
+5 0 V
+6 0 V
+6 0 V
+6 0 V
+5 0 V
+6 0 V
+5 0 V
+6 0 V
+5 0 V
+6 0 V
+5 0 V
+6 0 V
+5 0 V
+5 0 V
+6 0 V
+5 0 V
+5 0 V
+5 1 V
+6 0 V
+5 0 V
+5 0 V
+5 0 V
+5 0 V
+5 0 V
+5 0 V
+5 0 V
+5 0 V
+5 0 V
+5 0 V
+5 0 V
+5 0 V
+5 0 V
+4 0 V
+5 0 V
+5 0 V
+5 0 V
+4 0 V
+5 0 V
+5 0 V
+4 0 V
+5 0 V
+4 0 V
+5 0 V
+4 0 V
+1.000 UL
+LT2
+6311 3367 M
+(lwnn test) Rshow
+6395 3367 M
+399 0 V
+714 1720 M
+627 -105 V
+367 -185 V
+260 -59 V
+202 -14 V
+165 11 V
+139 -40 V
+121 18 V
+106 -30 V
+96 -66 V
+86 -21 V
+79 -10 V
+72 -3 V
+67 -2 V
+62 -1 V
+59 0 V
+55 -1 V
+51 0 V
+49 0 V
+47 0 V
+44 0 V
+42 -1 V
+40 0 V
+39 0 V
+36 0 V
+36 -1 V
+34 1 V
+33 -1 V
+32 0 V
+30 0 V
+30 0 V
+29 -1 V
+28 0 V
+27 0 V
+26 0 V
+25 -1 V
+25 0 V
+24 0 V
+24 0 V
+23 0 V
+22 -1 V
+22 0 V
+21 -1 V
+21 1 V
+20 -1 V
+20 0 V
+20 0 V
+19 -1 V
+18 0 V
+19 0 V
+17 0 V
+18 0 V
+17 -1 V
+17 0 V
+17 -1 V
+16 1 V
+16 0 V
+16 0 V
+15 -1 V
+15 0 V
+15 0 V
+15 0 V
+15 -1 V
+14 0 V
+14 0 V
+14 0 V
+13 0 V
+14 -1 V
+13 0 V
+13 0 V
+13 0 V
+12 0 V
+13 0 V
+12 0 V
+12 -1 V
+12 0 V
+12 0 V
+12 -1 V
+11 1 V
+12 0 V
+11 -1 V
+11 0 V
+11 0 V
+11 -1 V
+10 1 V
+11 -1 V
+10 0 V
+11 0 V
+10 0 V
+10 0 V
+10 0 V
+10 -1 V
+10 0 V
+9 0 V
+10 0 V
+10 0 V
+9 0 V
+9 0 V
+9 -1 V
+9 0 V
+9 0 V
+9 0 V
+9 0 V
+9 -1 V
+9 1 V
+8 -1 V
+9 0 V
+8 0 V
+8 0 V
+9 0 V
+8 0 V
+8 0 V
+8 0 V
+8 0 V
+8 0 V
+8 -1 V
+7 0 V
+8 0 V
+8 0 V
+7 0 V
+8 0 V
+7 0 V
+8 0 V
+7 0 V
+7 0 V
+8 0 V
+7 0 V
+7 0 V
+7 0 V
+7 0 V
+7 -1 V
+7 0 V
+6 0 V
+7 0 V
+7 0 V
+7 0 V
+6 0 V
+7 0 V
+6 0 V
+7 0 V
+6 0 V
+7 0 V
+6 0 V
+6 0 V
+7 0 V
+6 0 V
+6 0 V
+6 0 V
+6 -1 V
+6 0 V
+6 0 V
+6 1 V
+6 0 V
+6 0 V
+6 0 V
+6 0 V
+5 -1 V
+6 0 V
+6 0 V
+6 0 V
+5 0 V
+6 0 V
+5 0 V
+6 0 V
+5 0 V
+6 0 V
+5 0 V
+6 0 V
+5 0 V
+5 -1 V
+6 0 V
+5 0 V
+5 0 V
+5 0 V
+6 1 V
+5 0 V
+5 0 V
+5 0 V
+5 0 V
+5 -1 V
+5 0 V
+5 1 V
+5 0 V
+5 0 V
+5 -1 V
+5 1 V
+5 0 V
+4 0 V
+5 0 V
+5 0 V
+5 0 V
+4 0 V
+5 0 V
+5 0 V
+4 0 V
+5 0 V
+5 0 V
+4 0 V
+5 -1 V
+4 0 V
+1.000 UL
+LT3
+6311 3227 M
+(jneural test) Rshow
+6395 3227 M
+399 0 V
+732 4302 M
+1359 3118 L
+367 -562 V
+260 -584 V
+202 -486 V
+165 -269 V
+139 6 V
+121 113 V
+106 -53 V
+96 8 V
+86 11 V
+78 -14 V
+73 14 V
+67 -23 V
+62 -17 V
+59 -67 V
+55 32 V
+51 22 V
+49 1 V
+47 0 V
+44 -11 V
+42 -6 V
+40 -6 V
+39 -5 V
+37 -6 V
+35 -6 V
+34 -7 V
+33 -6 V
+32 -6 V
+31 -5 V
+29 -5 V
+29 -4 V
+28 -2 V
+27 -1 V
+26 0 V
+25 1 V
+25 4 V
+24 4 V
+24 5 V
+23 5 V
+22 6 V
+22 4 V
+21 5 V
+21 4 V
+20 4 V
+21 4 V
+19 23 V
+19 -13 V
+19 0 V
+18 5 V
+18 8 V
+17 9 V
+18 8 V
+17 9 V
+16 9 V
+16 10 V
+16 9 V
+16 10 V
+16 9 V
+15 10 V
+15 -24 V
+14 -8 V
+15 -6 V
+14 -4 V
+14 -3 V
+14 -3 V
+14 -2 V
+13 -3 V
+13 -2 V
+13 -2 V
+13 -1 V
+13 -2 V
+12 -2 V
+12 -1 V
+13 -2 V
+11 -1 V
+12 -2 V
+12 -1 V
+11 -1 V
+12 -2 V
+11 -1 V
+11 -1 V
+11 -1 V
+11 -1 V
+11 -2 V
+10 -1 V
+11 -1 V
+10 -1 V
+10 -1 V
+10 -1 V
+10 -1 V
+10 -1 V
+10 -1 V
+10 -1 V
+9 0 V
+10 -1 V
+9 -1 V
+9 -1 V
+10 -1 V
+9 -1 V
+9 0 V
+9 -1 V
+8 -1 V
+9 -1 V
+9 0 V
+9 -1 V
+8 -1 V
+8 0 V
+9 -1 V
+8 -1 V
+8 0 V
+8 -1 V
+8 -1 V
+8 0 V
+8 -1 V
+8 0 V
+8 -1 V
+7 -1 V
+8 0 V
+8 -1 V
+7 0 V
+8 -1 V
+7 0 V
+7 -1 V
+8 0 V
+7 -1 V
+7 0 V
+7 -1 V
+7 0 V
+7 -1 V
+7 0 V
+7 -1 V
+7 0 V
+7 0 V
+6 -1 V
+7 0 V
+7 -1 V
+6 0 V
+7 -1 V
+6 0 V
+7 0 V
+6 -1 V
+6 0 V
+7 -1 V
+6 0 V
+6 0 V
+6 -1 V
+7 0 V
+6 0 V
+6 -1 V
+6 0 V
+6 0 V
+6 -1 V
+5 0 V
+6 0 V
+6 -1 V
+6 0 V
+6 0 V
+5 -1 V
+6 0 V
+6 0 V
+5 -1 V
+6 0 V
+5 0 V
+6 -1 V
+5 0 V
+6 0 V
+5 0 V
+5 -1 V
+6 0 V
+5 0 V
+5 0 V
+6 -1 V
+5 0 V
+5 0 V
+5 0 V
+5 -1 V
+5 0 V
+5 0 V
+6 0 V
+5 -1 V
+5 0 V
+4 0 V
+5 0 V
+5 -1 V
+5 0 V
+5 0 V
+5 0 V
+5 -1 V
+4 0 V
+5 0 V
+5 0 V
+5 0 V
+4 -1 V
+5 0 V
+5 0 V
+stroke
+grestore
+end
+showpage
+%%Trailer
+%%DocumentFonts: Helvetica
+%%Pages: 1
+
+%%EndDocument
+ @endspecial 2430 399 a
+ currentpoint grestore moveto
+ 2430 399 a 330 2648 a Fy(Figure)29
+b(20:)39 b(Graph)28 b(sho)n(wing)g(the)i(mean)f(square)f(error)f(as)h
+(a)h(function)h(of)f(the)g(time)h(for)f(the)330 2748
+y(so)n(yb)r(ean)37 b(problem.)70 b(The)39 b(training)f(quic)n(kly)g
+(con)n(v)n(erges)e(to)i(a)h(standstill,)i(with)f(no)e(more)330
+2847 y(impro)n(v)n(emen)n(t.)p Black Black 330 3114 a
+ gsave currentpoint currentpoint translate -90 neg rotate neg exch
+neg exch translate
+
+330 3114 a @beginspecial 50 @llx 50 @lly 554 @urx 770
+ at ury 3600 @rhi @setspecial
+%%BeginDocument: figs/thyroid.ps
+%!PS-Adobe-2.0
+%%Title: ../doc/figs/thyroid.ps
+%%Creator: gnuplot 3.7 patchlevel 3
+%%CreationDate: Fri Oct 24 13:10:39 2003
+%%DocumentFonts: (atend)
+%%BoundingBox: 50 50 554 770
+%%Orientation: Landscape
+%%Pages: (atend)
+%%EndComments
+/gnudict 256 dict def
+gnudict begin
+/Color true def
+/Solid true def
+/gnulinewidth 5.000 def
+/userlinewidth gnulinewidth def
+/vshift -46 def
+/dl {10 mul} def
+/hpt_ 31.5 def
+/vpt_ 31.5 def
+/hpt hpt_ def
+/vpt vpt_ def
+/M {moveto} bind def
+/L {lineto} bind def
+/R {rmoveto} bind def
+/V {rlineto} bind def
+/vpt2 vpt 2 mul def
+/hpt2 hpt 2 mul def
+/Lshow { currentpoint stroke M
+  0 vshift R show } def
+/Rshow { currentpoint stroke M
+  dup stringwidth pop neg vshift R show } def
+/Cshow { currentpoint stroke M
+  dup stringwidth pop -2 div vshift R show } def
+/UP { dup vpt_ mul /vpt exch def hpt_ mul /hpt exch def
+  /hpt2 hpt 2 mul def /vpt2 vpt 2 mul def } def
+/DL { Color {setrgbcolor Solid {pop []} if 0 setdash }
+ {pop pop pop Solid {pop []} if 0 setdash} ifelse } def
+/BL { stroke userlinewidth 2 mul setlinewidth } def
+/AL { stroke userlinewidth 2 div setlinewidth } def
+/UL { dup gnulinewidth mul /userlinewidth exch def
+      dup 1 lt {pop 1} if 10 mul /udl exch def } def
+/PL { stroke userlinewidth setlinewidth } def
+/LTb { BL [] 0 0 0 DL } def
+/LTa { AL [1 udl mul 2 udl mul] 0 setdash 0 0 0 setrgbcolor } def
+/LT0 { PL [] 1 0 0 DL } def
+/LT1 { PL [4 dl 2 dl] 0 1 0 DL } def
+/LT2 { PL [2 dl 3 dl] 0 0 1 DL } def
+/LT3 { PL [1 dl 1.5 dl] 1 0 1 DL } def
+/LT4 { PL [5 dl 2 dl 1 dl 2 dl] 0 1 1 DL } def
+/LT5 { PL [4 dl 3 dl 1 dl 3 dl] 1 1 0 DL } def
+/LT6 { PL [2 dl 2 dl 2 dl 4 dl] 0 0 0 DL } def
+/LT7 { PL [2 dl 2 dl 2 dl 2 dl 2 dl 4 dl] 1 0.3 0 DL } def
+/LT8 { PL [2 dl 2 dl 2 dl 2 dl 2 dl 2 dl 2 dl 4 dl] 0.5 0.5 0.5 DL } def
+/Pnt { stroke [] 0 setdash
+   gsave 1 setlinecap M 0 0 V stroke grestore } def
+/Dia { stroke [] 0 setdash 2 copy vpt add M
+  hpt neg vpt neg V hpt vpt neg V
+  hpt vpt V hpt neg vpt V closepath stroke
+  Pnt } def
+/Pls { stroke [] 0 setdash vpt sub M 0 vpt2 V
+  currentpoint stroke M
+  hpt neg vpt neg R hpt2 0 V stroke
+  } def
+/Box { stroke [] 0 setdash 2 copy exch hpt sub exch vpt add M
+  0 vpt2 neg V hpt2 0 V 0 vpt2 V
+  hpt2 neg 0 V closepath stroke
+  Pnt } def
+/Crs { stroke [] 0 setdash exch hpt sub exch vpt add M
+  hpt2 vpt2 neg V currentpoint stroke M
+  hpt2 neg 0 R hpt2 vpt2 V stroke } def
+/TriU { stroke [] 0 setdash 2 copy vpt 1.12 mul add M
+  hpt neg vpt -1.62 mul V
+  hpt 2 mul 0 V
+  hpt neg vpt 1.62 mul V closepath stroke
+  Pnt  } def
+/Star { 2 copy Pls Crs } def
+/BoxF { stroke [] 0 setdash exch hpt sub exch vpt add M
+  0 vpt2 neg V  hpt2 0 V  0 vpt2 V
+  hpt2 neg 0 V  closepath fill } def
+/TriUF { stroke [] 0 setdash vpt 1.12 mul add M
+  hpt neg vpt -1.62 mul V
+  hpt 2 mul 0 V
+  hpt neg vpt 1.62 mul V closepath fill } def
+/TriD { stroke [] 0 setdash 2 copy vpt 1.12 mul sub M
+  hpt neg vpt 1.62 mul V
+  hpt 2 mul 0 V
+  hpt neg vpt -1.62 mul V closepath stroke
+  Pnt  } def
+/TriDF { stroke [] 0 setdash vpt 1.12 mul sub M
+  hpt neg vpt 1.62 mul V
+  hpt 2 mul 0 V
+  hpt neg vpt -1.62 mul V closepath fill} def
+/DiaF { stroke [] 0 setdash vpt add M
+  hpt neg vpt neg V hpt vpt neg V
+  hpt vpt V hpt neg vpt V closepath fill } def
+/Pent { stroke [] 0 setdash 2 copy gsave
+  translate 0 hpt M 4 {72 rotate 0 hpt L} repeat
+  closepath stroke grestore Pnt } def
+/PentF { stroke [] 0 setdash gsave
+  translate 0 hpt M 4 {72 rotate 0 hpt L} repeat
+  closepath fill grestore } def
+/Circle { stroke [] 0 setdash 2 copy
+  hpt 0 360 arc stroke Pnt } def
+/CircleF { stroke [] 0 setdash hpt 0 360 arc fill } def
+/C0 { BL [] 0 setdash 2 copy moveto vpt 90 450  arc } bind def
+/C1 { BL [] 0 setdash 2 copy        moveto
+       2 copy  vpt 0 90 arc closepath fill
+               vpt 0 360 arc closepath } bind def
+/C2 { BL [] 0 setdash 2 copy moveto
+       2 copy  vpt 90 180 arc closepath fill
+               vpt 0 360 arc closepath } bind def
+/C3 { BL [] 0 setdash 2 copy moveto
+       2 copy  vpt 0 180 arc closepath fill
+               vpt 0 360 arc closepath } bind def
+/C4 { BL [] 0 setdash 2 copy moveto
+       2 copy  vpt 180 270 arc closepath fill
+               vpt 0 360 arc closepath } bind def
+/C5 { BL [] 0 setdash 2 copy moveto
+       2 copy  vpt 0 90 arc
+       2 copy moveto
+       2 copy  vpt 180 270 arc closepath fill
+               vpt 0 360 arc } bind def
+/C6 { BL [] 0 setdash 2 copy moveto
+      2 copy  vpt 90 270 arc closepath fill
+              vpt 0 360 arc closepath } bind def
+/C7 { BL [] 0 setdash 2 copy moveto
+      2 copy  vpt 0 270 arc closepath fill
+              vpt 0 360 arc closepath } bind def
+/C8 { BL [] 0 setdash 2 copy moveto
+      2 copy vpt 270 360 arc closepath fill
+              vpt 0 360 arc closepath } bind def
+/C9 { BL [] 0 setdash 2 copy moveto
+      2 copy  vpt 270 450 arc closepath fill
+              vpt 0 360 arc closepath } bind def
+/C10 { BL [] 0 setdash 2 copy 2 copy moveto vpt 270 360 arc closepath fill
+       2 copy moveto
+       2 copy vpt 90 180 arc closepath fill
+               vpt 0 360 arc closepath } bind def
+/C11 { BL [] 0 setdash 2 copy moveto
+       2 copy  vpt 0 180 arc closepath fill
+       2 copy moveto
+       2 copy  vpt 270 360 arc closepath fill
+               vpt 0 360 arc closepath } bind def
+/C12 { BL [] 0 setdash 2 copy moveto
+       2 copy  vpt 180 360 arc closepath fill
+               vpt 0 360 arc closepath } bind def
+/C13 { BL [] 0 setdash  2 copy moveto
+       2 copy  vpt 0 90 arc closepath fill
+       2 copy moveto
+       2 copy  vpt 180 360 arc closepath fill
+               vpt 0 360 arc closepath } bind def
+/C14 { BL [] 0 setdash 2 copy moveto
+       2 copy  vpt 90 360 arc closepath fill
+               vpt 0 360 arc } bind def
+/C15 { BL [] 0 setdash 2 copy vpt 0 360 arc closepath fill
+               vpt 0 360 arc closepath } bind def
+/Rec   { newpath 4 2 roll moveto 1 index 0 rlineto 0 exch rlineto
+       neg 0 rlineto closepath } bind def
+/Square { dup Rec } bind def
+/Bsquare { vpt sub exch vpt sub exch vpt2 Square } bind def
+/S0 { BL [] 0 setdash 2 copy moveto 0 vpt rlineto BL Bsquare } bind def
+/S1 { BL [] 0 setdash 2 copy vpt Square fill Bsquare } bind def
+/S2 { BL [] 0 setdash 2 copy exch vpt sub exch vpt Square fill Bsquare } bind def
+/S3 { BL [] 0 setdash 2 copy exch vpt sub exch vpt2 vpt Rec fill Bsquare } bind def
+/S4 { BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt Square fill Bsquare } bind def
+/S5 { BL [] 0 setdash 2 copy 2 copy vpt Square fill
+       exch vpt sub exch vpt sub vpt Square fill Bsquare } bind def
+/S6 { BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt vpt2 Rec fill Bsquare } bind def
+/S7 { BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt vpt2 Rec fill
+       2 copy vpt Square fill
+       Bsquare } bind def
+/S8 { BL [] 0 setdash 2 copy vpt sub vpt Square fill Bsquare } bind def
+/S9 { BL [] 0 setdash 2 copy vpt sub vpt vpt2 Rec fill Bsquare } bind def
+/S10 { BL [] 0 setdash 2 copy vpt sub vpt Square fill 2 copy exch vpt sub exch vpt Square fill
+       Bsquare } bind def
+/S11 { BL [] 0 setdash 2 copy vpt sub vpt Square fill 2 copy exch vpt sub exch vpt2 vpt Rec fill
+       Bsquare } bind def
+/S12 { BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt2 vpt Rec fill Bsquare } bind def
+/S13 { BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt2 vpt Rec fill
+       2 copy vpt Square fill Bsquare } bind def
+/S14 { BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt2 vpt Rec fill
+       2 copy exch vpt sub exch vpt Square fill Bsquare } bind def
+/S15 { BL [] 0 setdash 2 copy Bsquare fill Bsquare } bind def
+/D0 { gsave translate 45 rotate 0 0 S0 stroke grestore } bind def
+/D1 { gsave translate 45 rotate 0 0 S1 stroke grestore } bind def
+/D2 { gsave translate 45 rotate 0 0 S2 stroke grestore } bind def
+/D3 { gsave translate 45 rotate 0 0 S3 stroke grestore } bind def
+/D4 { gsave translate 45 rotate 0 0 S4 stroke grestore } bind def
+/D5 { gsave translate 45 rotate 0 0 S5 stroke grestore } bind def
+/D6 { gsave translate 45 rotate 0 0 S6 stroke grestore } bind def
+/D7 { gsave translate 45 rotate 0 0 S7 stroke grestore } bind def
+/D8 { gsave translate 45 rotate 0 0 S8 stroke grestore } bind def
+/D9 { gsave translate 45 rotate 0 0 S9 stroke grestore } bind def
+/D10 { gsave translate 45 rotate 0 0 S10 stroke grestore } bind def
+/D11 { gsave translate 45 rotate 0 0 S11 stroke grestore } bind def
+/D12 { gsave translate 45 rotate 0 0 S12 stroke grestore } bind def
+/D13 { gsave translate 45 rotate 0 0 S13 stroke grestore } bind def
+/D14 { gsave translate 45 rotate 0 0 S14 stroke grestore } bind def
+/D15 { gsave translate 45 rotate 0 0 S15 stroke grestore } bind def
+/DiaE { stroke [] 0 setdash vpt add M
+  hpt neg vpt neg V hpt vpt neg V
+  hpt vpt V hpt neg vpt V closepath stroke } def
+/BoxE { stroke [] 0 setdash exch hpt sub exch vpt add M
+  0 vpt2 neg V hpt2 0 V 0 vpt2 V
+  hpt2 neg 0 V closepath stroke } def
+/TriUE { stroke [] 0 setdash vpt 1.12 mul add M
+  hpt neg vpt -1.62 mul V
+  hpt 2 mul 0 V
+  hpt neg vpt 1.62 mul V closepath stroke } def
+/TriDE { stroke [] 0 setdash vpt 1.12 mul sub M
+  hpt neg vpt 1.62 mul V
+  hpt 2 mul 0 V
+  hpt neg vpt -1.62 mul V closepath stroke } def
+/PentE { stroke [] 0 setdash gsave
+  translate 0 hpt M 4 {72 rotate 0 hpt L} repeat
+  closepath stroke grestore } def
+/CircE { stroke [] 0 setdash 
+  hpt 0 360 arc stroke } def
+/Opaque { gsave closepath 1 setgray fill grestore 0 setgray closepath } def
+/DiaW { stroke [] 0 setdash vpt add M
+  hpt neg vpt neg V hpt vpt neg V
+  hpt vpt V hpt neg vpt V Opaque stroke } def
+/BoxW { stroke [] 0 setdash exch hpt sub exch vpt add M
+  0 vpt2 neg V hpt2 0 V 0 vpt2 V
+  hpt2 neg 0 V Opaque stroke } def
+/TriUW { stroke [] 0 setdash vpt 1.12 mul add M
+  hpt neg vpt -1.62 mul V
+  hpt 2 mul 0 V
+  hpt neg vpt 1.62 mul V Opaque stroke } def
+/TriDW { stroke [] 0 setdash vpt 1.12 mul sub M
+  hpt neg vpt 1.62 mul V
+  hpt 2 mul 0 V
+  hpt neg vpt -1.62 mul V Opaque stroke } def
+/PentW { stroke [] 0 setdash gsave
+  translate 0 hpt M 4 {72 rotate 0 hpt L} repeat
+  Opaque stroke grestore } def
+/CircW { stroke [] 0 setdash 
+  hpt 0 360 arc Opaque stroke } def
+/BoxFill { gsave Rec 1 setgray fill grestore } def
+/Symbol-Oblique /Symbol findfont [1 0 .167 1 0 0] makefont
+dup length dict begin {1 index /FID eq {pop pop} {def} ifelse} forall
+currentdict end definefont pop
+end
+%%EndProlog
+%%Page: 1 1
+gnudict begin
+gsave
+50 50 translate
+0.100 0.100 scale
+90 rotate
+0 -5040 translate
+0 setgray
+newpath
+(Helvetica) findfont 140 scalefont setfont
+1.000 UL
+LTb
+1.000 UL
+LTa
+798 420 M
+6164 0 V
+1.000 UL
+LTb
+798 420 M
+63 0 V
+6101 0 R
+-63 0 V
+714 420 M
+( 0) Rshow
+1.000 UL
+LTa
+798 1020 M
+6164 0 V
+1.000 UL
+LTb
+798 1020 M
+63 0 V
+6101 0 R
+-63 0 V
+-6185 0 R
+( 0.05) Rshow
+1.000 UL
+LTa
+798 1620 M
+6164 0 V
+1.000 UL
+LTb
+798 1620 M
+63 0 V
+6101 0 R
+-63 0 V
+-6185 0 R
+( 0.1) Rshow
+1.000 UL
+LTa
+798 2220 M
+6164 0 V
+1.000 UL
+LTb
+798 2220 M
+63 0 V
+6101 0 R
+-63 0 V
+-6185 0 R
+( 0.15) Rshow
+1.000 UL
+LTa
+798 2820 M
+6164 0 V
+1.000 UL
+LTb
+798 2820 M
+63 0 V
+6101 0 R
+-63 0 V
+-6185 0 R
+( 0.2) Rshow
+1.000 UL
+LTa
+798 3420 M
+4085 0 V
+1995 0 R
+84 0 V
+1.000 UL
+LTb
+798 3420 M
+63 0 V
+6101 0 R
+-63 0 V
+-6185 0 R
+( 0.25) Rshow
+1.000 UL
+LTa
+798 4020 M
+4085 0 V
+1995 0 R
+84 0 V
+1.000 UL
+LTb
+798 4020 M
+63 0 V
+6101 0 R
+-63 0 V
+-6185 0 R
+( 0.3) Rshow
+1.000 UL
+LTa
+798 4620 M
+6164 0 V
+1.000 UL
+LTb
+798 4620 M
+63 0 V
+6101 0 R
+-63 0 V
+-6185 0 R
+( 0.35) Rshow
+1.000 UL
+LTa
+798 420 M
+0 4200 V
+1.000 UL
+LTb
+798 420 M
+0 63 V
+0 4137 R
+0 -63 V
+798 280 M
+( 0) Cshow
+1.000 UL
+LTa
+1358 420 M
+0 4200 V
+1.000 UL
+LTb
+1358 420 M
+0 63 V
+0 4137 R
+0 -63 V
+0 -4277 R
+( 20) Cshow
+1.000 UL
+LTa
+1919 420 M
+0 4200 V
+1.000 UL
+LTb
+1919 420 M
+0 63 V
+0 4137 R
+0 -63 V
+0 -4277 R
+( 40) Cshow
+1.000 UL
+LTa
+2479 420 M
+0 4200 V
+1.000 UL
+LTb
+2479 420 M
+0 63 V
+0 4137 R
+0 -63 V
+0 -4277 R
+( 60) Cshow
+1.000 UL
+LTa
+3039 420 M
+0 4200 V
+1.000 UL
+LTb
+3039 420 M
+0 63 V
+0 4137 R
+0 -63 V
+0 -4277 R
+( 80) Cshow
+1.000 UL
+LTa
+3600 420 M
+0 4200 V
+1.000 UL
+LTb
+3600 420 M
+0 63 V
+0 4137 R
+0 -63 V
+0 -4277 R
+( 100) Cshow
+1.000 UL
+LTa
+4160 420 M
+0 4200 V
+1.000 UL
+LTb
+4160 420 M
+0 63 V
+0 4137 R
+0 -63 V
+0 -4277 R
+( 120) Cshow
+1.000 UL
+LTa
+4721 420 M
+0 4200 V
+1.000 UL
+LTb
+4721 420 M
+0 63 V
+0 4137 R
+0 -63 V
+0 -4277 R
+( 140) Cshow
+1.000 UL
+LTa
+5281 420 M
+0 2737 V
+0 1400 R
+0 63 V
+1.000 UL
+LTb
+5281 420 M
+0 63 V
+0 4137 R
+0 -63 V
+0 -4277 R
+( 160) Cshow
+1.000 UL
+LTa
+5841 420 M
+0 2737 V
+0 1400 R
+0 63 V
+1.000 UL
+LTb
+5841 420 M
+0 63 V
+0 4137 R
+0 -63 V
+0 -4277 R
+( 180) Cshow
+1.000 UL
+LTa
+6402 420 M
+0 2737 V
+0 1400 R
+0 63 V
+1.000 UL
+LTb
+6402 420 M
+0 63 V
+0 4137 R
+0 -63 V
+0 -4277 R
+( 200) Cshow
+1.000 UL
+LTa
+6962 420 M
+0 4200 V
+1.000 UL
+LTb
+6962 420 M
+0 63 V
+0 4137 R
+0 -63 V
+0 -4277 R
+( 220) Cshow
+1.000 UL
+LTb
+798 420 M
+6164 0 V
+0 4200 V
+-6164 0 V
+798 420 L
+140 2520 M
+currentpoint gsave translate 90 rotate 0 0 M
+(Mean square error) Cshow
+grestore
+3880 70 M
+(Seconds of training) Cshow
+3880 4830 M
+(thyroid) Cshow
+1.000 UL
+LTb
+6311 4487 M
+(fann train) Rshow
+6395 4487 M
+399 0 V
+826 2183 M
+28 270 V
+28 -289 V
+28 -216 V
+28 -410 V
+28 -161 V
+28 -6 V
+29 7 V
+28 -64 V
+28 210 V
+28 -198 V
+29 -19 V
+28 1870 V
+28 -516 V
+28 -625 V
+28 212 V
+29 -724 V
+28 -241 V
+28 16 V
+28 -121 V
+28 43 V
+28 -275 V
+28 129 V
+28 -224 V
+28 161 V
+28 424 V
+29 -410 V
+28 -52 V
+28 504 V
+28 -342 V
+28 -119 V
+28 -89 V
+28 241 V
+28 37 V
+28 -442 V
+28 603 V
+28 418 V
+28 -661 V
+28 -332 V
+29 562 V
+28 -561 V
+28 465 V
+29 -488 V
+28 -72 V
+28 84 V
+28 -34 V
+29 26 V
+28 -42 V
+28 88 V
+28 -15 V
+28 -89 V
+28 30 V
+29 44 V
+28 -31 V
+28 -16 V
+28 524 V
+28 -543 V
+28 75 V
+28 -62 V
+29 -17 V
+28 -16 V
+28 158 V
+28 -135 V
+28 -9 V
+28 172 V
+28 -119 V
+28 98 V
+29 538 V
+29 -660 V
+28 71 V
+28 -72 V
+28 75 V
+28 391 V
+28 -483 V
+28 11 V
+28 84 V
+28 -56 V
+29 -64 V
+28 39 V
+28 21 V
+28 210 V
+29 -201 V
+28 -39 V
+28 -14 V
+28 60 V
+28 -28 V
+28 -56 V
+28 71 V
+28 -81 V
+28 -23 V
+28 51 V
+28 170 V
+28 -123 V
+28 -35 V
+29 -41 V
+28 106 V
+28 68 V
+29 -202 V
+28 -26 V
+28 57 V
+28 55 V
+28 -14 V
+28 24 V
+29 -48 V
+28 13 V
+28 -35 V
+28 -4 V
+28 -23 V
+29 -33 V
+28 114 V
+28 -111 V
+29 59 V
+28 33 V
+28 63 V
+28 -75 V
+28 -44 V
+29 169 V
+28 -138 V
+28 7 V
+28 193 V
+28 -172 V
+29 -40 V
+28 -15 V
+28 51 V
+28 -18 V
+28 20 V
+29 -96 V
+29 10 V
+28 155 V
+30 369 V
+28 -505 V
+28 184 V
+28 -174 V
+28 29 V
+29 -12 V
+28 -66 V
+28 130 V
+30 -113 V
+28 -14 V
+28 68 V
+28 33 V
+28 -126 V
+28 118 V
+28 591 V
+28 -691 V
+28 47 V
+28 -4 V
+29 111 V
+28 -71 V
+28 51 V
+28 -143 V
+28 20 V
+28 278 V
+28 -276 V
+28 44 V
+28 602 V
+29 -401 V
+28 -151 V
+28 88 V
+28 -114 V
+28 -17 V
+28 26 V
+28 82 V
+28 44 V
+29 -185 V
+28 11 V
+28 -31 V
+28 49 V
+28 -61 V
+28 60 V
+29 231 V
+29 -70 V
+28 -201 V
+29 28 V
+28 -8 V
+28 65 V
+28 -86 V
+28 24 V
+28 -9 V
+28 67 V
+28 -21 V
+28 -86 V
+29 293 V
+28 37 V
+28 -95 V
+28 -209 V
+29 113 V
+28 -105 V
+28 165 V
+28 -192 V
+28 18 V
+28 -23 V
+28 -8 V
+28 147 V
+28 19 V
+28 -128 V
+28 246 V
+28 78 V
+28 -375 V
+1.000 UL
+LT0
+6311 4347 M
+(fann \(0.75\) train) Rshow
+6395 4347 M
+399 0 V
+829 2138 M
+28 547 V
+29 -263 V
+29 -298 V
+29 -453 V
+29 -210 V
+29 -68 V
+29 -2 V
+29 -10 V
+28 339 V
+29 -20 V
+29 -527 V
+29 43 V
+29 24 V
+29 -17 V
+29 131 V
+28 889 V
+29 -367 V
+29 444 V
+29 -986 V
+29 -5 V
+29 845 V
+1464 831 L
+28 460 V
+29 -406 V
+29 -85 V
+29 -16 V
+29 592 V
+28 -124 V
+29 -165 V
+29 -362 V
+29 279 V
+29 355 V
+29 -580 V
+29 3 V
+28 -30 V
+29 47 V
+29 -19 V
+29 -56 V
+29 126 V
+29 -87 V
+28 33 V
+29 -42 V
+29 53 V
+29 -14 V
+29 -23 V
+29 -13 V
+28 4 V
+29 -15 V
+29 40 V
+29 -56 V
+29 27 V
+29 140 V
+29 -164 V
+28 35 V
+29 -25 V
+29 60 V
+29 54 V
+28 -58 V
+29 -7 V
+29 -42 V
+28 8 V
+29 43 V
+29 64 V
+29 -127 V
+29 -41 V
+29 26 V
+29 41 V
+28 46 V
+29 238 V
+29 -336 V
+29 323 V
+29 -309 V
+29 22 V
+29 3 V
+28 54 V
+29 -106 V
+29 -17 V
+29 63 V
+28 52 V
+29 -163 V
+29 59 V
+29 -55 V
+29 602 V
+29 -543 V
+28 48 V
+29 40 V
+29 -13 V
+29 -98 V
+29 -29 V
+28 145 V
+29 -80 V
+29 170 V
+29 252 V
+29 -299 V
+29 -132 V
+28 85 V
+29 -108 V
+29 45 V
+29 51 V
+29 -128 V
+29 52 V
+29 33 V
+28 -92 V
+29 115 V
+29 20 V
+29 -125 V
+29 21 V
+28 -31 V
+29 -2 V
+29 18 V
+29 29 V
+29 -52 V
+29 11 V
+28 118 V
+29 -18 V
+29 -21 V
+29 -59 V
+29 -40 V
+29 41 V
+28 259 V
+29 -324 V
+29 103 V
+29 -91 V
+29 115 V
+28 46 V
+29 -136 V
+29 20 V
+29 2 V
+29 25 V
+28 -58 V
+30 78 V
+28 -68 V
+29 16 V
+29 -63 V
+29 96 V
+29 -76 V
+28 40 V
+28 73 V
+29 172 V
+29 -64 V
+29 -162 V
+28 -41 V
+30 94 V
+28 -75 V
+29 39 V
+29 -59 V
+29 120 V
+29 -56 V
+29 63 V
+28 -58 V
+29 -21 V
+29 34 V
+29 -39 V
+28 124 V
+29 -214 V
+29 270 V
+29 529 V
+29 -557 V
+29 -203 V
+29 138 V
+28 -143 V
+28 162 V
+29 91 V
+29 -284 V
+29 113 V
+28 22 V
+29 75 V
+29 -173 V
+29 241 V
+29 -255 V
+28 -24 V
+29 68 V
+29 2 V
+29 164 V
+29 -219 V
+28 24 V
+29 -13 V
+29 98 V
+29 11 V
+29 -71 V
+29 76 V
+29 -135 V
+28 18 V
+29 2 V
+29 48 V
+29 -45 V
+29 70 V
+29 205 V
+28 -232 V
+29 -11 V
+29 187 V
+29 -273 V
+29 827 V
+29 -738 V
+1.000 UL
+LT1
+6311 4207 M
+(fann \(fix\) train) Rshow
+6395 4207 M
+399 0 V
+826 2189 M
+28 324 V
+28 -47 V
+28 -178 V
+28 -545 V
+28 -332 V
+28 -57 V
+29 19 V
+28 -19 V
+28 433 V
+28 -485 V
+29 -14 V
+28 2494 V
+28 -409 V
+28 -729 V
+28 327 V
+29 -1497 V
+28 -231 V
+28 15 V
+28 307 V
+28 71 V
+28 -584 V
+28 -41 V
+28 -64 V
+28 282 V
+28 186 V
+29 -435 V
+28 49 V
+28 432 V
+28 -378 V
+28 -123 V
+28 -70 V
+28 215 V
+28 59 V
+28 -374 V
+28 533 V
+28 924 V
+28 -1151 V
+28 -268 V
+29 491 V
+28 -442 V
+28 536 V
+29 -609 V
+28 -100 V
+28 91 V
+28 -36 V
+29 5 V
+28 -23 V
+28 60 V
+28 -5 V
+28 -78 V
+28 34 V
+29 41 V
+28 -34 V
+28 -18 V
+28 496 V
+28 -510 V
+28 55 V
+28 -51 V
+29 -24 V
+28 10 V
+28 129 V
+28 -110 V
+28 -22 V
+28 155 V
+28 -113 V
+28 92 V
+29 543 V
+29 -636 V
+28 59 V
+28 -77 V
+28 75 V
+28 376 V
+28 -462 V
+28 24 V
+28 59 V
+28 -47 V
+29 -59 V
+28 36 V
+28 56 V
+28 257 V
+29 -272 V
+28 -58 V
+28 -7 V
+28 65 V
+28 -33 V
+28 -53 V
+28 87 V
+28 -110 V
+28 -11 V
+28 48 V
+28 166 V
+28 -124 V
+28 -20 V
+29 -43 V
+28 102 V
+28 58 V
+29 -175 V
+28 -34 V
+28 55 V
+28 59 V
+28 -20 V
+28 43 V
+29 -57 V
+28 -8 V
+28 -11 V
+28 -10 V
+28 -29 V
+29 -16 V
+28 102 V
+28 -115 V
+29 55 V
+28 50 V
+28 67 V
+28 -80 V
+28 -59 V
+29 180 V
+28 -132 V
+28 -4 V
+28 203 V
+28 -172 V
+29 -42 V
+28 -26 V
+28 68 V
+28 -20 V
+28 9 V
+29 -93 V
+29 9 V
+28 163 V
+30 350 V
+28 -490 V
+28 216 V
+28 -216 V
+28 51 V
+29 -36 V
+28 -56 V
+28 125 V
+30 -107 V
+28 -13 V
+28 64 V
+28 32 V
+28 -125 V
+28 118 V
+28 395 V
+28 -506 V
+28 63 V
+28 -15 V
+29 115 V
+28 -68 V
+28 52 V
+28 -159 V
+28 33 V
+28 277 V
+28 -263 V
+28 34 V
+28 595 V
+29 -404 V
+28 -134 V
+28 81 V
+28 -108 V
+28 -13 V
+28 24 V
+28 96 V
+28 16 V
+29 -190 V
+28 33 V
+28 -25 V
+28 23 V
+28 -46 V
+28 54 V
+29 255 V
+29 -82 V
+28 -204 V
+29 25 V
+28 -25 V
+28 32 V
+28 -51 V
+28 26 V
+28 6 V
+28 44 V
+28 0 V
+28 -99 V
+29 306 V
+28 4 V
+28 -70 V
+28 -217 V
+29 128 V
+28 -108 V
+28 183 V
+28 -236 V
+28 31 V
+28 -43 V
+28 -1 V
+28 187 V
+28 1 V
+28 -128 V
+28 265 V
+28 54 V
+28 -363 V
+1.000 UL
+LT2
+6311 4067 M
+(lwnn train) Rshow
+6395 4067 M
+399 0 V
+827 2551 M
+29 -915 V
+28 -174 V
+29 -82 V
+28 -37 V
+29 140 V
+29 306 V
+29 -446 V
+29 57 V
+29 -14 V
+29 57 V
+28 -32 V
+29 -428 V
+29 145 V
+29 -205 V
+29 54 V
+29 409 V
+29 -478 V
+29 -57 V
+29 40 V
+29 -71 V
+29 10 V
+29 69 V
+29 14 V
+28 -131 V
+29 50 V
+29 109 V
+29 -13 V
+29 -16 V
+29 -40 V
+29 -40 V
+29 71 V
+29 -94 V
+29 51 V
+28 -75 V
+29 109 V
+29 82 V
+29 -136 V
+29 -96 V
+29 140 V
+29 -100 V
+29 83 V
+29 -99 V
+30 75 V
+29 -133 V
+28 -6 V
+29 47 V
+29 -15 V
+29 1 V
+29 -11 V
+29 -65 V
+29 91 V
+29 -38 V
+29 -8 V
+29 18 V
+29 20 V
+29 31 V
+29 25 V
+30 -79 V
+29 -6 V
+29 33 V
+29 -75 V
+29 41 V
+29 -46 V
+29 61 V
+29 58 V
+29 -65 V
+29 -77 V
+29 67 V
+29 92 V
+29 -120 V
+29 10 V
+29 11 V
+29 -21 V
+30 -41 V
+29 16 V
+29 68 V
+29 0 V
+29 -78 V
+30 27 V
+29 -14 V
+29 11 V
+29 -39 V
+29 21 V
+29 61 V
+29 -84 V
+30 52 V
+29 -59 V
+29 9 V
+29 20 V
+29 5 V
+29 8 V
+29 16 V
+29 -36 V
+30 -26 V
+29 291 V
+29 -264 V
+29 124 V
+29 -68 V
+29 -35 V
+30 -19 V
+29 -47 V
+29 54 V
+29 -32 V
+29 51 V
+29 -51 V
+29 -20 V
+29 53 V
+29 8 V
+30 -32 V
+29 -44 V
+29 375 V
+29 -391 V
+29 165 V
+29 -121 V
+29 -55 V
+29 210 V
+30 -158 V
+29 99 V
+29 -46 V
+29 47 V
+29 -115 V
+29 305 V
+29 -330 V
+29 39 V
+30 20 V
+29 -7 V
+29 52 V
+29 -71 V
+29 -26 V
+29 95 V
+29 -103 V
+29 133 V
+30 -64 V
+29 17 V
+29 -24 V
+29 -33 V
+29 14 V
+29 8 V
+29 15 V
+30 109 V
+29 -96 V
+29 -49 V
+29 -9 V
+29 53 V
+29 -59 V
+29 42 V
+29 -17 V
+29 30 V
+30 -51 V
+29 -4 V
+29 118 V
+29 -131 V
+29 46 V
+29 12 V
+29 5 V
+30 18 V
+29 -88 V
+29 72 V
+29 -45 V
+29 -20 V
+29 1 V
+29 9 V
+30 99 V
+29 198 V
+29 -299 V
+29 49 V
+29 -28 V
+29 61 V
+29 -114 V
+29 7 V
+29 18 V
+30 17 V
+29 6 V
+29 18 V
+29 6 V
+29 20 V
+29 -72 V
+29 53 V
+30 -16 V
+29 -30 V
+29 58 V
+29 -68 V
+29 -4 V
+29 -30 V
+29 129 V
+30 -37 V
+29 58 V
+29 -79 V
+29 -5 V
+29 30 V
+29 92 V
+29 -164 V
+1.000 UL
+LT3
+6311 3927 M
+(jneural train) Rshow
+6395 3927 M
+399 0 V
+832 2173 M
+33 -27 V
+34 -27 V
+34 94 V
+33 688 V
+33 -308 V
+34 -227 V
+33 -173 V
+33 -122 V
+34 -90 V
+33 -61 V
+33 -43 V
+34 -31 V
+33 -22 V
+33 -12 V
+34 -20 V
+33 -45 V
+33 -60 V
+34 -60 V
+33 -56 V
+33 -51 V
+34 -41 V
+33 -33 V
+33 -24 V
+34 -19 V
+33 -14 V
+34 -13 V
+33 -12 V
+33 -10 V
+34 -7 V
+33 -5 V
+33 -5 V
+34 -6 V
+33 -3 V
+34 1 V
+33 3 V
+33 -11 V
+34 -8 V
+34 15 V
+33 49 V
+33 19 V
+34 19 V
+33 5 V
+33 39 V
+34 178 V
+33 -131 V
+33 -81 V
+34 134 V
+33 -202 V
+33 44 V
+34 -3 V
+33 11 V
+34 -199 V
+33 125 V
+33 276 V
+34 -371 V
+33 766 V
+33 -859 V
+34 -37 V
+33 955 V
+33 5 V
+34 -450 V
+33 -217 V
+33 -344 V
+34 114 V
+33 -121 V
+34 1238 V
+33 -462 V
+33 303 V
+34 375 V
+34 -339 V
+33 -46 V
+33 342 V
+34 -1182 V
+34 1175 V
+33 64 V
+33 -1247 V
+34 -196 V
+33 -21 V
+33 844 V
+34 -743 V
+34 -128 V
+33 137 V
+33 163 V
+34 1253 V
+33 -1502 V
+33 -69 V
+34 217 V
+33 -52 V
+33 -227 V
+34 204 V
+33 -228 V
+33 -45 V
+34 1107 V
+33 -530 V
+33 -400 V
+34 61 V
+33 -56 V
+34 4 V
+33 124 V
+34 -364 V
+33 398 V
+33 -399 V
+34 32 V
+33 1467 V
+33 -385 V
+34 305 V
+33 -1100 V
+33 526 V
+34 -614 V
+33 202 V
+33 -345 V
+34 794 V
+33 -704 V
+33 361 V
+34 -293 V
+33 456 V
+34 -405 V
+33 -34 V
+33 22 V
+34 -274 V
+33 95 V
+33 120 V
+34 -151 V
+33 205 V
+33 1317 V
+34 -1108 V
+33 2428 V
+5104 860 L
+34 86 V
+33 40 V
+33 -183 V
+34 -29 V
+33 223 V
+33 -200 V
+34 255 V
+33 -296 V
+34 140 V
+33 -73 V
+33 -47 V
+34 -13 V
+33 104 V
+33 -130 V
+34 29 V
+33 578 V
+33 -580 V
+34 341 V
+33 -278 V
+33 -41 V
+34 212 V
+33 417 V
+33 -290 V
+34 -351 V
+33 9 V
+33 108 V
+34 24 V
+33 659 V
+33 -706 V
+34 -120 V
+33 218 V
+33 441 V
+34 -483 V
+33 -217 V
+33 69 V
+34 99 V
+33 -152 V
+33 137 V
+34 55 V
+1.000 UL
+LTb
+6311 3787 M
+(fann test) Rshow
+6395 3787 M
+399 0 V
+826 2127 M
+28 391 V
+28 -262 V
+28 -149 V
+28 -296 V
+28 -110 V
+28 -3 V
+29 -5 V
+28 -21 V
+28 176 V
+28 -204 V
+29 0 V
+28 1665 V
+28 -392 V
+28 -547 V
+28 185 V
+29 -859 V
+28 -135 V
+28 -22 V
+28 12 V
+28 52 V
+28 -321 V
+28 90 V
+28 -213 V
+28 239 V
+28 196 V
+29 -293 V
+28 36 V
+28 302 V
+28 -269 V
+28 -63 V
+28 -57 V
+28 158 V
+28 5 V
+28 -312 V
+28 430 V
+28 737 V
+28 -895 V
+28 -259 V
+29 405 V
+28 -365 V
+28 471 V
+29 -541 V
+28 -79 V
+28 49 V
+28 -13 V
+29 3 V
+28 18 V
+28 12 V
+28 66 V
+28 -91 V
+28 -2 V
+29 42 V
+28 -46 V
+28 17 V
+28 397 V
+28 -406 V
+28 74 V
+28 -82 V
+29 -23 V
+28 -11 V
+28 169 V
+28 -141 V
+28 26 V
+28 133 V
+28 -101 V
+28 62 V
+29 402 V
+29 -484 V
+28 66 V
+28 -60 V
+28 75 V
+28 309 V
+28 -407 V
+28 38 V
+28 17 V
+28 -31 V
+29 -37 V
+28 35 V
+28 33 V
+28 294 V
+29 -322 V
+28 -5 V
+28 -42 V
+28 104 V
+28 -90 V
+28 -47 V
+28 101 V
+28 -97 V
+28 -1 V
+28 34 V
+28 190 V
+28 -151 V
+28 -9 V
+29 -54 V
+28 119 V
+28 82 V
+29 -191 V
+28 -60 V
+28 91 V
+28 82 V
+28 -32 V
+28 2 V
+29 -22 V
+28 89 V
+28 -141 V
+28 -35 V
+28 71 V
+29 -86 V
+28 138 V
+28 -92 V
+29 10 V
+28 80 V
+28 1 V
+28 -52 V
+28 13 V
+29 96 V
+28 -130 V
+28 10 V
+28 187 V
+28 -152 V
+29 -60 V
+28 -17 V
+28 52 V
+28 -6 V
+28 6 V
+29 -39 V
+29 -31 V
+28 82 V
+30 329 V
+28 -371 V
+28 131 V
+28 -104 V
+28 17 V
+29 -13 V
+28 -75 V
+28 151 V
+30 -172 V
+28 8 V
+28 88 V
+28 -37 V
+28 -40 V
+28 82 V
+28 667 V
+28 -696 V
+28 -3 V
+28 12 V
+29 78 V
+28 -54 V
+28 33 V
+28 -90 V
+28 -39 V
+28 230 V
+28 -207 V
+28 34 V
+28 434 V
+29 -217 V
+28 -148 V
+28 19 V
+28 -84 V
+28 9 V
+28 63 V
+28 103 V
+28 -38 V
+29 -163 V
+28 29 V
+28 -9 V
+28 29 V
+28 -50 V
+28 6 V
+29 209 V
+29 -7 V
+28 -213 V
+29 61 V
+28 -18 V
+28 123 V
+28 -153 V
+28 43 V
+28 -11 V
+28 125 V
+28 -122 V
+28 -46 V
+29 238 V
+28 179 V
+28 -181 V
+28 -171 V
+29 55 V
+28 -130 V
+28 196 V
+28 -146 V
+28 9 V
+28 -36 V
+28 33 V
+28 139 V
+28 -84 V
+28 -45 V
+28 183 V
+28 82 V
+28 -275 V
+1.000 UL
+LT0
+6311 3647 M
+(fann \(0.75\) test) Rshow
+6395 3647 M
+399 0 V
+829 2078 M
+28 648 V
+29 -245 V
+29 -242 V
+29 -381 V
+29 -172 V
+29 -44 V
+29 3 V
+29 2 V
+28 312 V
+29 -26 V
+29 -464 V
+29 -11 V
+29 16 V
+29 -26 V
+29 85 V
+28 1006 V
+29 -334 V
+29 439 V
+29 -1162 V
+29 -5 V
+29 1082 V
+29 -1452 V
+28 485 V
+29 -452 V
+29 -51 V
+29 -46 V
+29 511 V
+28 -111 V
+29 -120 V
+29 -289 V
+29 369 V
+29 146 V
+29 -455 V
+29 1 V
+28 -5 V
+29 -2 V
+29 44 V
+29 -115 V
+29 90 V
+29 -38 V
+28 69 V
+29 -92 V
+29 39 V
+29 -21 V
+29 19 V
+29 -76 V
+28 48 V
+29 -15 V
+29 22 V
+29 -30 V
+29 -10 V
+29 163 V
+29 -126 V
+28 6 V
+29 -50 V
+29 41 V
+29 112 V
+28 -78 V
+29 -36 V
+29 -30 V
+28 2 V
+29 47 V
+29 56 V
+29 -127 V
+29 -8 V
+29 -9 V
+29 19 V
+28 75 V
+29 352 V
+29 -460 V
+29 472 V
+29 -425 V
+29 16 V
+29 -15 V
+28 71 V
+29 -150 V
+29 15 V
+29 67 V
+28 60 V
+29 -147 V
+29 34 V
+29 -27 V
+29 495 V
+29 -476 V
+28 75 V
+29 22 V
+29 -70 V
+29 -32 V
+29 -47 V
+28 151 V
+29 -58 V
+29 157 V
+29 243 V
+29 -317 V
+29 -83 V
+28 73 V
+29 -42 V
+29 -30 V
+29 72 V
+29 -160 V
+29 23 V
+29 6 V
+28 -42 V
+29 115 V
+29 22 V
+29 -86 V
+29 26 V
+28 -46 V
+29 27 V
+29 0 V
+29 24 V
+29 -78 V
+29 75 V
+28 40 V
+29 11 V
+29 -21 V
+29 -27 V
+29 -54 V
+29 30 V
+28 232 V
+29 -283 V
+29 54 V
+29 -35 V
+29 69 V
+28 53 V
+29 -139 V
+29 41 V
+29 8 V
+29 -9 V
+28 -21 V
+30 77 V
+28 -40 V
+29 10 V
+29 -95 V
+29 162 V
+29 -115 V
+28 21 V
+28 59 V
+29 171 V
+29 -110 V
+29 -62 V
+28 -65 V
+30 29 V
+28 -54 V
+29 25 V
+29 -2 V
+29 79 V
+29 -51 V
+29 71 V
+28 -73 V
+29 27 V
+29 6 V
+29 -30 V
+28 114 V
+29 -184 V
+29 192 V
+29 427 V
+29 -445 V
+29 -155 V
+29 125 V
+28 -70 V
+28 74 V
+29 88 V
+29 -251 V
+29 77 V
+28 42 V
+29 38 V
+29 -112 V
+29 187 V
+29 -166 V
+28 -2 V
+29 41 V
+29 -24 V
+29 137 V
+29 -166 V
+28 -28 V
+29 48 V
+29 36 V
+29 48 V
+29 -71 V
+29 54 V
+29 -89 V
+28 48 V
+29 -50 V
+29 25 V
+29 20 V
+29 54 V
+29 118 V
+28 -185 V
+29 -49 V
+29 195 V
+29 -198 V
+29 624 V
+29 -565 V
+1.000 UL
+LT1
+6311 3507 M
+(fann \(fix\) test) Rshow
+6395 3507 M
+399 0 V
+826 2126 M
+28 450 V
+28 -72 V
+28 -150 V
+28 -426 V
+28 -249 V
+28 -31 V
+29 11 V
+28 20 V
+28 362 V
+28 -413 V
+29 -1 V
+28 2186 V
+28 -310 V
+28 -649 V
+28 323 V
+29 -1523 V
+28 -149 V
+28 -18 V
+28 397 V
+28 76 V
+28 -589 V
+28 -78 V
+28 -39 V
+28 349 V
+28 -42 V
+29 -328 V
+28 141 V
+28 238 V
+28 -307 V
+28 -75 V
+28 -47 V
+28 158 V
+28 22 V
+28 -266 V
+28 404 V
+28 1173 V
+28 -1351 V
+28 -172 V
+29 332 V
+28 -266 V
+28 560 V
+29 -660 V
+28 -137 V
+28 91 V
+28 -37 V
+29 5 V
+28 7 V
+28 0 V
+28 50 V
+28 -71 V
+28 17 V
+29 31 V
+28 -44 V
+28 14 V
+28 384 V
+28 -404 V
+28 63 V
+28 -73 V
+29 -20 V
+28 22 V
+28 122 V
+28 -94 V
+28 -7 V
+28 118 V
+28 -98 V
+28 68 V
+29 415 V
+29 -474 V
+28 39 V
+28 -68 V
+28 96 V
+28 302 V
+28 -406 V
+28 43 V
+28 16 V
+28 -38 V
+29 -31 V
+28 46 V
+28 90 V
+28 321 V
+29 -408 V
+28 -19 V
+28 -39 V
+28 102 V
+28 -82 V
+28 -46 V
+28 127 V
+28 -127 V
+28 -9 V
+28 35 V
+28 189 V
+28 -139 V
+28 2 V
+29 -65 V
+28 115 V
+28 69 V
+29 -177 V
+28 -48 V
+28 74 V
+28 95 V
+28 -47 V
+28 35 V
+29 -50 V
+28 55 V
+28 -101 V
+28 -10 V
+28 36 V
+29 -61 V
+28 129 V
+28 -105 V
+29 28 V
+28 73 V
+28 13 V
+28 -61 V
+28 7 V
+29 101 V
+28 -117 V
+28 -11 V
+28 195 V
+28 -167 V
+29 -53 V
+28 -4 V
+28 61 V
+28 -6 V
+28 -12 V
+29 -39 V
+29 -29 V
+28 106 V
+30 315 V
+28 -378 V
+28 157 V
+28 -137 V
+28 34 V
+29 -26 V
+28 -71 V
+28 142 V
+30 -154 V
+28 19 V
+28 70 V
+28 -15 V
+28 -73 V
+28 93 V
+28 500 V
+28 -560 V
+28 34 V
+28 -1 V
+29 77 V
+28 -43 V
+28 36 V
+28 -109 V
+28 -29 V
+28 243 V
+28 -218 V
+28 45 V
+28 422 V
+29 -234 V
+28 -127 V
+28 23 V
+28 -76 V
+28 4 V
+28 45 V
+28 103 V
+28 -29 V
+29 -155 V
+28 21 V
+28 2 V
+28 17 V
+28 -49 V
+28 15 V
+29 213 V
+29 -18 V
+28 -196 V
+29 46 V
+28 -38 V
+28 97 V
+28 -107 V
+28 28 V
+28 1 V
+28 88 V
+28 -75 V
+28 -57 V
+29 249 V
+28 154 V
+28 -168 V
+28 -174 V
+29 64 V
+28 -112 V
+28 191 V
+28 -210 V
+28 29 V
+28 -42 V
+28 31 V
+28 186 V
+28 -86 V
+28 -60 V
+28 209 V
+28 59 V
+28 -267 V
+1.000 UL
+LT2
+6311 3367 M
+(lwnn test) Rshow
+6395 3367 M
+399 0 V
+827 2583 M
+29 -757 V
+28 -117 V
+29 -43 V
+28 -1 V
+29 130 V
+29 224 V
+29 -425 V
+29 45 V
+29 49 V
+29 100 V
+28 -7 V
+29 -487 V
+29 197 V
+29 -236 V
+29 -15 V
+29 505 V
+29 -509 V
+29 -122 V
+29 31 V
+29 -8 V
+29 12 V
+29 55 V
+29 6 V
+28 -75 V
+29 9 V
+29 83 V
+29 26 V
+29 -18 V
+29 -49 V
+29 -31 V
+29 81 V
+29 -13 V
+29 -28 V
+28 -68 V
+29 94 V
+29 35 V
+29 -109 V
+29 -53 V
+29 154 V
+29 -97 V
+29 53 V
+29 -84 V
+30 74 V
+29 -139 V
+28 -38 V
+29 81 V
+29 25 V
+29 7 V
+29 -66 V
+29 -27 V
+29 75 V
+29 -36 V
+29 51 V
+29 -5 V
+29 -20 V
+29 57 V
+29 1 V
+30 -37 V
+29 -42 V
+29 131 V
+29 -168 V
+29 52 V
+29 -38 V
+29 45 V
+29 59 V
+29 -65 V
+29 -22 V
+29 -4 V
+29 110 V
+29 -122 V
+29 19 V
+29 0 V
+29 -29 V
+30 -63 V
+29 74 V
+29 35 V
+29 24 V
+29 -59 V
+30 -7 V
+29 7 V
+29 3 V
+29 22 V
+29 -7 V
+29 50 V
+29 -76 V
+30 36 V
+29 -44 V
+29 12 V
+29 10 V
+29 -7 V
+29 12 V
+29 -1 V
+29 -13 V
+30 -46 V
+29 226 V
+29 -136 V
+29 192 V
+29 -181 V
+29 15 V
+30 -75 V
+29 -30 V
+29 94 V
+29 -37 V
+29 17 V
+29 -58 V
+29 64 V
+29 -25 V
+29 43 V
+30 -15 V
+29 -60 V
+29 223 V
+29 -288 V
+29 175 V
+29 -78 V
+29 -80 V
+29 179 V
+30 -91 V
+29 37 V
+29 -78 V
+29 89 V
+29 -29 V
+29 134 V
+29 -230 V
+29 32 V
+30 33 V
+29 -15 V
+29 42 V
+29 -50 V
+29 -19 V
+29 73 V
+29 -62 V
+29 142 V
+30 -80 V
+29 90 V
+29 -111 V
+29 -39 V
+29 71 V
+29 -21 V
+29 -20 V
+30 60 V
+29 -89 V
+29 37 V
+29 7 V
+29 -17 V
+29 -8 V
+29 5 V
+29 -37 V
+29 7 V
+30 -35 V
+29 9 V
+29 80 V
+29 -107 V
+29 93 V
+29 6 V
+29 -44 V
+30 52 V
+29 -75 V
+29 50 V
+29 -30 V
+29 -10 V
+29 17 V
+29 -31 V
+30 50 V
+29 177 V
+29 -139 V
+29 7 V
+29 -42 V
+29 55 V
+29 -137 V
+29 46 V
+29 60 V
+30 -28 V
+29 44 V
+29 -10 V
+29 -33 V
+29 62 V
+29 -56 V
+29 64 V
+30 -88 V
+29 -16 V
+29 48 V
+29 -92 V
+29 52 V
+29 -17 V
+29 0 V
+30 108 V
+29 -66 V
+29 -8 V
+29 4 V
+29 37 V
+29 32 V
+29 -106 V
+1.000 UL
+LT3
+6311 3227 M
+(jneural test) Rshow
+6395 3227 M
+399 0 V
+832 2116 M
+33 -30 V
+34 -28 V
+34 129 V
+33 700 V
+33 -250 V
+34 -188 V
+33 -147 V
+33 -108 V
+34 -84 V
+33 -56 V
+33 -39 V
+34 -27 V
+33 -18 V
+33 -9 V
+34 -12 V
+33 -27 V
+33 -41 V
+34 -45 V
+33 -45 V
+33 -42 V
+34 -35 V
+33 -28 V
+33 -22 V
+34 -16 V
+33 -14 V
+34 -10 V
+33 -9 V
+33 -7 V
+34 -4 V
+33 -4 V
+33 -2 V
+34 -1 V
+33 2 V
+34 6 V
+33 6 V
+33 -10 V
+34 -8 V
+34 11 V
+33 41 V
+33 20 V
+34 14 V
+33 2 V
+33 37 V
+34 174 V
+33 -102 V
+33 -67 V
+34 129 V
+33 -182 V
+33 40 V
+34 -4 V
+33 19 V
+34 -191 V
+33 120 V
+33 272 V
+34 -352 V
+33 703 V
+33 -806 V
+34 -34 V
+33 916 V
+33 35 V
+34 -386 V
+33 -231 V
+33 -346 V
+34 127 V
+33 -130 V
+34 1190 V
+33 -372 V
+33 302 V
+34 282 V
+34 -340 V
+33 70 V
+33 233 V
+34 -1290 V
+34 1375 V
+33 1 V
+33 -1363 V
+34 -124 V
+33 37 V
+33 882 V
+34 -899 V
+34 -109 V
+33 152 V
+33 95 V
+34 1407 V
+33 -1604 V
+33 -64 V
+34 190 V
+33 -35 V
+33 -183 V
+34 145 V
+33 -177 V
+33 7 V
+34 1146 V
+33 -744 V
+33 -324 V
+34 76 V
+33 -47 V
+34 -8 V
+33 111 V
+34 -284 V
+33 305 V
+33 -343 V
+34 12 V
+33 1669 V
+33 -465 V
+34 383 V
+33 -1309 V
+33 761 V
+34 -754 V
+33 71 V
+33 -331 V
+34 928 V
+33 -826 V
+33 291 V
+34 -99 V
+33 491 V
+34 -532 V
+33 -46 V
+33 -12 V
+34 -211 V
+33 148 V
+33 151 V
+34 -206 V
+33 141 V
+33 1545 V
+34 -1226 V
+33 2663 V
+33 -3170 V
+34 18 V
+33 203 V
+33 -293 V
+34 -25 V
+33 287 V
+33 -213 V
+34 209 V
+33 -229 V
+34 40 V
+33 31 V
+33 -39 V
+34 -13 V
+33 78 V
+33 -119 V
+34 57 V
+33 394 V
+33 -422 V
+34 356 V
+33 -263 V
+33 -92 V
+34 241 V
+33 213 V
+33 -54 V
+34 -373 V
+33 36 V
+33 32 V
+34 32 V
+33 781 V
+33 -882 V
+34 -70 V
+33 295 V
+33 561 V
+34 -601 V
+33 -274 V
+33 49 V
+34 144 V
+33 -170 V
+33 122 V
+34 69 V
+stroke
+grestore
+end
+showpage
+%%Trailer
+%%DocumentFonts: Helvetica
+%%Pages: 1
+
+%%EndDocument
+ @endspecial 2430 3114 a
+ currentpoint grestore moveto
+ 2430 3114 a 330 5363 a Fy(Figure)29
+b(21:)39 b(Graph)28 b(sho)n(wing)g(the)i(mean)f(square)f(error)f(as)h
+(a)h(function)h(of)f(the)g(time)h(for)f(the)330 5463
+y(th)n(yroid)24 b(problem.)36 b(A)25 b(v)n(ery)f(spik)n(ed)h(plot)g
+(whic)n(h)g(is)g(di\016cult)h(to)f(train)g(on,)g(but)h(it)f(seems)g
+(that)330 5562 y(progress)g(is)j(made)f(an)n(yw)n(a)n(y)-7
+b(.)p Black Black 1788 5919 a(35)p Black eop end
+%%Page: 36 40
+TeXDict begin 36 39 bop Black 330 70 a Fp(6.2)82 b(Qualit)n(y)27
+b(Benc)n(hmark)1365 b(6)83 b(BENCHMARKS)p 330 103 3000
+4 v Black 455 390 a Fy(It)24 b(is)g(exp)r(ected)g(that)g(the)h(test)f
+(data)g(p)r(erforms)f(w)n(orse)f(than)i(the)h(training)e(data,)h(whic)n
+(h)g(is)330 490 y(wh)n(y)k(the)h(plot)g(for)f(the)g(test)h(data)f(will)
+h(b)r(e)g(lo)r(cated)f(higher)g(than)h(the)f(plot)h(for)f(the)h
+(training)330 589 y(data.)44 b(With)32 b(this)e(in)h(mind,)g(I)g(ha)n
+(v)n(e)e(c)n(hosen)g(to)h(plot)g(b)r(oth)h(test)g(and)f(training)f
+(data)h(in)h(the)330 689 y(same)21 b(color)g(to)g(mak)n(e)g(the)i
+(graphs)d(easier)h(to)g(lo)r(ok)h(at.)34 b(I)22 b(will)g(no)n(w)g
+(brie\015y)f(discuss)g(the)i(results)330 789 y(of)28
+b(the)g(individual)f(b)r(enc)n(hmarks.)330 1005 y Fs(Figure)33
+b(16)g(-)h(building)81 b Fy(This)29 b(is)h(a)e(go)r(o)r(d)h(problem,)g
+(where)g(training)f(b)r(ene\014ts)i(b)r(oth)g(the)330
+1104 y(mean)22 b(square)g(error)f(of)h(the)h(training)f(data)g(and)h
+(of)f(the)h(testing)g(data.)35 b(It)23 b(seems)f(that)h(testing)330
+1204 y(past)k(the)h(200)f(seconds)f(w)n(ould)h(b)r(e)h(able)g(to)f
+(further)h(decrease)e(the)i(mean)f(square)f(error.)330
+1420 y Fs(Figure)38 b(17)h(-)f(card)84 b Fy(This)34 b(problem)f(seems)h
+(to)f(o)n(v)n(er-\014t)f(easily)-7 b(.)54 b(The)34 b(problem)f(has)g
+(one)330 1519 y(input)39 b(with)g(the)f(v)-5 b(alue)38
+b(1.00112)e(in)i(its)h(training)e(data.)69 b(This)38
+b(violates)f(the)i(\014xed)f(p)r(oin)n(t)330 1619 y(v)n(ersion)29
+b(of)i(the)g(library)-7 b(,)30 b(since)g(it)h(only)g(supp)r(orts)f
+(input)h(b)r(et)n(w)n(een)g(zero)e(and)i(one.)45 b(It)31
+b(do)r(es,)330 1718 y(ho)n(w)n(ev)n(er,)26 b(not)h(seem)h(to)f(giv)n(e)
+g(rise)g(to)g(an)n(y)g(problems.)455 1818 y(It)j(is)f(w)n(orth)g
+(noticing)g(the)h(fact)g(that)g(the)g(\014xed)g(p)r(oin)n(t)g(v)n
+(ersion)e(is)i(sligh)n(tly)f(b)r(etter)h(than)330 1918
+y(the)35 b(\015oating)e(p)r(oin)n(t)h(v)n(ersion.)55
+b(This)35 b(b)r(eha)n(vior)d(w)n(as)i(rep)r(eated)f(m)n(ultiple)i
+(times,)h(but)f(I)f(can)330 2017 y(not)d(\014nd)h(a)f(reasonable)f
+(explanation)g(to)i(wh)n(y)f(this)h(b)r(eha)n(vior)e(can)h(b)r(e)h(rep)
+r(eated.)48 b(Some)31 b(of)330 2117 y(the)d(other)f(b)r(enc)n(hmarks)g
+(also)f(sho)n(w)h(this)h(b)r(eha)n(vior.)330 2333 y Fs(Figure)c(18)g(-)
+h(gene)82 b Fy(This)22 b(is)f(the)h(most)f(di\016cult)h(problem)f(to)g
+(solv)n(e,)h(and)f(it)h(do)r(es)f(not)g(seem)330 2432
+y(ideal)31 b(for)g(solving)g(with)h(ANNs.)49 b(The)31
+b(jneural)h(and)f(the)h(lwnn)g(libraries)e(seem)h(to)h(p)r(erform)330
+2532 y(considerable)c(w)n(orse)g(on)i(this)g(problem)f(than)h(the)g
+(fann)g(library)-7 b(.)42 b(I)29 b(do)h(not)g(kno)n(w)e(wh)n(y)i(this)
+330 2632 y(problem)36 b(is)h(easier)e(to)i(solv)n(e)e(for)i(the)g(fann)
+g(library)-7 b(,)37 b(but)h(the)f(b)r(eha)n(vior)e(w)n(as)h(rep)r
+(eatable.)330 2731 y(P)n(erhaps)29 b(the)i(lo)n(w)f(n)n(um)n(b)r(er)h
+(of)g(neurons)f(in)h(the)g(la)n(y)n(ers)e(made)i(it)g(di\016cult)h(to)e
+(learn)g(for)h(the)330 2831 y(lwnn)e(library)-7 b(,)27
+b(whic)n(h)h(do)r(es)g(not)g(use)g(bias)g(neurons.)38
+b(A)29 b(clear)e(spik)n(e)h(is)g(visible)g(on)g(the)h(lwnn)330
+2931 y(graph,)c(whic)n(h)g(migh)n(t)g(suggest)f(that)i(the)f(training)g
+(is)g(trying)g(to)g(get)g(out)g(of)g(a)g(lo)r(cal)g(minima.)330
+3146 y Fs(Figure)33 b(19)g(-)g(m)m(ushro)s(om)82 b Fy(This)29
+b(problem)g(is)g(v)n(ery)f(easy)g(to)h(solv)n(e)f(for)g(all)h(the)g
+(libraries.)330 3246 y(It)g(seems)g(lik)n(e)f(there)h(exists)f(a)h
+(single)f(rule)h(whic)n(h)g(the)g(libraries)f(try)g(to)h(\014gure)f
+(out)h(and)g(the)330 3346 y(more)f(they)i(train,)f(the)h(closer)e(they)
+i(come)e(to)i(the)f(pure)g(form)g(of)h(this)f(rule.)42
+b(I)29 b(w)n(ould)g(guess)330 3445 y(that)f(this)g(rule)f(could)g(b)r
+(e)h(expressed)f(in)h(a)f(simpler)g(w)n(a)n(y)g(than)g(with)h(an)g
+(ANN.)330 3661 y Fs(Figure)g(20)h(-)f(so)m(yb)s(ean)83
+b Fy(The)25 b(libraries)f(quic)n(kly)g(con)n(v)n(erge)f(to)i(a)f(stand)
+h(still)g(and)g(it)h(seems)330 3761 y(that)i(more)f(training)g(will)g
+(not)h(help)g(this)g(problem.)330 3976 y Fs(Figure)33
+b(21)f(-)h(th)m(yroid)84 b Fy(This)29 b(is)f(a)h(v)n(ery)e(tric)n(ky)h
+(problem,)h(whic)n(h)g(pro)r(duces)f(v)n(ery)g(spik)n(ed)330
+4076 y(graphs.)44 b(When)31 b(comparing)d(the)j(spik)n(es)f(on)g(the)g
+(training)g(data)g(and)g(the)g(testing)h(data)f(for)330
+4176 y(a)37 b(library)-7 b(,)39 b(there)e(is)g(a)g(visible)g
+(connection)g(b)r(et)n(w)n(een)h(ho)n(w)e(lo)n(w)h(the)h(mean)f(square)
+f(errors)330 4275 y(are.)j(This)29 b(suggests)e(that)i(more)f(training)
+g(w)n(ould)g(in)h(fact)g(help,)g(although)f(it)h(is)g(di\016cult)g(to)
+330 4375 y(determine)f(when)f(the)h(training)f(should)h(stop.)455
+4475 y(The)39 b(spik)n(ed)f(lo)r(ok)h(of)g(the)g(graphs)f(suggests)g
+(that)h(p)r(erhaps)g(gradien)n(t)f(descen)n(t)h(train-)330
+4574 y(ing)33 b(metho)r(ds)h(are)f(not)h(the)g(b)r(est)g(w)n(a)n(y)e
+(of)i(training)f(ANNs)h(with)h(this)f(problem.)54 b(Another)330
+4674 y(optimization)27 b(metho)r(d)g(lik)n(e)f(e.g.)36
+b(sim)n(ulated)27 b(annealing)f(w)n(ould)g(probably)g(do)g(a)h(b)r
+(etter)g(job.)330 4890 y Fs(6.2.3)94 b(Qualit)m(y)32
+b(Benc)m(hmark)h(Conclusion)330 5043 y Fy(Figure)24 b(22)g(sho)n(ws)g
+(a)h(summary)f(table)h(of)g(all)f(the)i(di\013eren)n(t)f(runs)f(and)h
+(although)f(there)h(is)g(not)330 5142 y(an)j(ob)n(vious)g(winner,)g
+(there)h(is)f(an)h(ob)n(vious)e(lo)r(oser.)39 b(The)28
+b(jneural)h(library)e(is)h(clearly)g(slo)n(w)n(er)330
+5242 y(than)h(the)h(other)f(libraries)f(and)h(do)r(es)g(not)g(manage)f
+(to)i(reac)n(h)e(as)g(lo)n(w)h(a)g(mean)g(square)f(error)330
+5342 y(as)f(the)h(other)f(libraries.)455 5441 y(The)22
+b(lwnn)g(library)f(seems)h(to)g(b)r(e)h(the)f(second)g(w)n(orst)f
+(library)-7 b(,)22 b(but)h(m)n(uc)n(h)f(of)g(this)h(is)f(due)g(to)330
+5541 y(the)i(fact)f(that)h(it)g(did)g(a)f(v)n(ery)f(p)r(o)r(or)h(job)g
+(on)g(the)h(gene)f(problem.)35 b(When)24 b(lo)r(oking)f(at)g(the)h
+(other)330 5641 y(problems)33 b(it)h(do)r(es)g(a)f(fairly)h(go)r(o)r(d)
+f(job)h(\(esp)r(ecially)f(on)h(the)g(card)f(problem\).)55
+b(The)34 b(library)p Black 1788 5919 a(36)p Black eop
+end
+%%Page: 37 41
+TeXDict begin 37 40 bop Black 330 70 a Fp(6.2)82 b(Qualit)n(y)27
+b(Benc)n(hmark)1365 b(6)83 b(BENCHMARKS)p 330 103 3000
+4 v Black Black 445 377 a Fy(Dataset)p 1139 407 4 100
+v 585 w(lwnn)143 b(jneural)236 b(fann)99 b(fann)28 b(\(0.75\))99
+b(fann)28 b(\(\014x\))p 395 410 2871 4 v 445 480 a(building)g
+(\(train\))p 1139 510 4 100 v 206 w(0.00593)120 b(0.00622)p
+Green 120 w(0.00579)p Black Red 223 w(0.00645)p Black
+166 w(0.00634)445 579 y(building)28 b(\(test\))p 1139
+609 V 248 w(0.00773)120 b(0.00774)g(0.00786)p Green 223
+w(0.00759)p Black Red 166 w(0.00828)p Black 445 679 a(card)26
+b(\(train\))p 1139 709 V Green 345 w(0.01185)p Black
+120 w(0.03042)120 b(0.03624)223 b(0.03315)p Red 166 w(0.03628)p
+Black 445 779 a(card)26 b(\(test\))p 1139 809 V Green
+387 w(0.17171)p Black 120 w(0.18019)120 b(0.18839)p Red
+223 w(0.18951)p Black 166 w(0.18761)445 878 y(gene)27
+b(\(train\))p 1139 908 V 340 w(0.22597)p Red 120 w(0.28381)p
+Black Green 120 w(0.07019)p Black 223 w(0.07057)166 b(0.07110)445
+978 y(gene)27 b(\(test\))p 1139 1008 V Red 382 w(0.47122)p
+Black 120 w(0.46384)120 b(0.31386)p Green 223 w(0.29976)p
+Black 166 w(0.30720)445 1078 y(m)n(ushro)r(om)26 b(\(train\))p
+1139 1108 V 100 w(1.13e-06)p Red 97 w(2.83e-05)p Black
+Green 97 w(2.86e-07)p Black 200 w(4.96e-07)143 b(2.96e-07)445
+1177 y(m)n(ushro)r(om)26 b(\(test\))p 1139 1207 V 142
+w(1.73e-06)p Red 97 w(4.39e-05)p Black Green 97 w(5.73e-07)p
+Black 200 w(9.18e-07)143 b(1.53e-06)445 1277 y(so)n(yb)r(ean)26
+b(\(train\))p 1139 1307 V Red 213 w(0.02927)p Black 97
+w(6.16e-05)p Green 97 w(1.12e-05)p Black 223 w(0.01171)143
+b(1.86e-05)445 1377 y(so)n(yb)r(ean)26 b(\(test\))p 1139
+1406 V 255 w(0.14692)120 b(0.14781)p Red 120 w(0.15114)p
+Black 223 w(0.15043)p Green 166 w(0.14500)p Black 445
+1476 a(th)n(yroid)26 b(\(train\))p 1139 1506 V Green
+239 w(0.01162)p Black Red 120 w(0.04124)p Black 120 w(0.01357)223
+b(0.01857)166 b(0.01502)445 1576 y(th)n(yroid)26 b(\(test\))p
+1139 1606 V 281 w(0.05013)p Red 120 w(0.07341)p Black
+120 w(0.05347)p Green 223 w(0.04603)p Black 166 w(0.05313)p
+395 1609 2871 4 v 445 1679 a(Mean)h(error)f(train)p 1139
+1709 4 100 v 161 w(0.04744)p Red 120 w(0.06030)p Black
+Green 120 w(0.02097)p Black 223 w(0.02341)166 b(0.02146)445
+1778 y(Mean)27 b(error)f(test)p 1139 1808 V 203 w(0.14129)p
+Red 120 w(0.14551)p Black 120 w(0.11912)p Green 223 w(0.11555)p
+Black 166 w(0.11687)p 395 1812 2871 4 v 445 1881 a(Mean)h(error)f
+(total)p 1139 1911 4 100 v 166 w(0.09437)p Red 120 w(0.10290)p
+Black 120 w(0.07004)223 b(0.06948)p Green 166 w(0.06917)p
+Black 445 1981 a(T)-7 b(otal)27 b(ep)r(o)r(c)n(hs)p 1139
+2011 V 372 w(44995)p Red 226 w(9900)p Black Green 185
+w(76591)p Black 289 w(67421)411 b(-)330 2160 y(Figure)35
+b(22:)53 b(Summary)35 b(of)h(the)g(qualit)n(y)g(b)r(enc)n(hmarks,)h
+(sho)n(wing)d(the)j(mean)e(square)g(error)330 2259 y(after)27
+b(the)g(full)h(training)e(time.)37 b(The)27 b(library)f(with)h(the)h(b)
+r(est)f(mean)g(square)e(error)g(is)i(mark)n(ed)330 2359
+y(with)p Green 30 w(green)p Black 29 w(and)j(the)h(one)e(with)i(the)f
+(w)n(orst)f(is)g(mark)n(ed)g(with)p Red 31 w(red)p Black(.)43
+b(F)-7 b(urthermore)29 b(the)h(total)330 2459 y(n)n(um)n(b)r(er)d(of)h
+(ep)r(o)r(c)n(hs)f(for)g(eac)n(h)g(library)f(is)i(sho)n(wn.)p
+Black 330 2724 a(is)k(a)g(little)h(bit)g(slo)n(w)n(er)e(at)h(learning)f
+(than)h(the)h(fann)g(library)e(\(44995)f(ep)r(o)r(c)n(hs)i(compared)f
+(to)330 2823 y(76591\),)26 b(whic)n(h)j(explains)e(wh)n(y)h(it)h(do)r
+(es)f(not)g(get)g(as)f(lo)n(w)h(a)g(mean)g(square)f(error)f(for)h(some)
+h(of)330 2923 y(the)g(easier)e(problems)h(lik)n(e)g(m)n(ushro)r(om)g
+(and)g(building.)455 3023 y(This)35 b(lea)n(v)n(es)f(the)i(three)g(v)n
+(ersions)d(of)j(the)g(fann)g(library:)51 b(The)36 b(standard)f(fann)g
+(library)330 3122 y(has)i(the)i(lo)n(w)n(est)d(mean)i(square)f(error)f
+(for)h(the)h(training)f(data,)j(the)e(fann)h(library)d(with)i(a)330
+3222 y(connection)31 b(rate)f(of)i(0.75)e(has)g(the)i(lo)n(w)n(est)e
+(mean)h(square)f(error)g(for)g(the)i(testing)f(data)g(and)330
+3322 y(the)d(\014xed)g(p)r(oin)n(t)f(fann)h(library)e(has)i(the)g(lo)n
+(w)n(est)e(total)h(mean)h(square)e(error.)455 3421 y(The)g(standard)f
+(fann)i(library)e(do)r(es)h(a)g(really)f(go)r(o)r(d)h(job)g(on)h(most)f
+(of)g(the)h(problems.)35 b(It)27 b(is)330 3521 y(also)f(the)i(library)e
+(whic)n(h)h(manages)f(to)h(train)g(for)g(the)h(most)f(ep)r(o)r(c)n(hs.)
+36 b(It)28 b(only)f(has)g(one)g(set)g(of)330 3620 y(data,)j(where)f(it)
+h(\014nishes)g(last)f(and)h(this)g(is)f(the)h(test)g(data)f(for)h(the)g
+(so)n(yb)r(ean)e(problem.)43 b(But)330 3720 y(the)25
+b(di\013erence)g(b)r(et)n(w)n(een)g(the)h(libraries)d(on)i(this)g(set)g
+(of)g(data)g(is)g(so)f(small)h(that)g(it)g(really)f(do)r(es)330
+3820 y(not)k(matter.)455 3919 y(The)j(fann)g(library)f(with)i(a)e
+(connection)h(rate)g(of)g(0.75,)g(is)g(a)f(bit)i(b)r(etter)g(at)f
+(generalizing)330 4019 y(than)c(the)h(standard)e(fann)i(library)-7
+b(,)26 b(but)i(there)f(is)g(no)g(clear)f(tendency)-7
+b(.)38 b(Surprisingly)26 b(it)h(do)r(es)330 4119 y(not)38
+b(manage)f(to)h(train)g(for)g(as)f(man)n(y)h(ep)r(o)r(c)n(hs)g(as)g
+(the)g(standard)g(fann)g(library)-7 b(,)40 b(but)f(it)f(is)330
+4218 y(probably)25 b(due)h(to)g(the)g(fact)g(that)g(the)h(standard)e
+(fann)h(library)e(uses)i(optimizations)f(for)h(fully)330
+4318 y(connected)h(net)n(w)n(orks.)455 4418 y(T)-7 b(o)31
+b(m)n(y)h(big)g(surprise,)g(the)g(o)n(v)n(erall)e(winner)i(w)n(as)f
+(the)i(\014xed)f(p)r(oin)n(t)g(v)n(ersion)e(of)i(the)h(fann)330
+4517 y(library)-7 b(.)67 b(I)39 b(will)f(ho)n(w)n(ev)n(er)e(sa)n(y)h
+(that)h(it)h(m)n(ust)f(b)r(e)h(a)f(coincidence)f(that)i(it)f(is)g(b)r
+(etter)h(than)330 4617 y(the)c(standard)e(fann)h(library)f(b)r(ecause)h
+(the)g(\014xed)g(p)r(oin)n(t)h(library)d(uses)i(the)h(w)n(eigh)n(ts)e
+(stored)330 4716 y(from)26 b(the)i(\015oating)e(p)r(oin)n(t)h(library)
+-7 b(.)35 b(It)27 b(is)g(ho)n(w)n(ev)n(er)d(not)j(a)g(coincidence)f
+(that)h(the)g(\014xed)g(p)r(oin)n(t)330 4816 y(fann)h(library)e(is)h
+(just)h(as)f(go)r(o)r(d)f(as)h(the)h(\015oating)e(p)r(oin)n(t)i(fann)g
+(library)-7 b(.)35 b(When)28 b(lo)r(oking)e(at)i(the)330
+4916 y(data\014les)g(sa)n(v)n(ed)g(b)n(y)g(the)i(\015oating)e(p)r(oin)n
+(t)h(library)-7 b(,)28 b(it)h(is)g(p)r(ossible)g(to)f(see)h(whic)n(h)g
+(p)r(ositions)f(of)330 5015 y(the)35 b(decimal)g(p)r(oin)n(t)g(that)g
+(are)f(used.)59 b(Throughout)33 b(all)i(of)g(the)g(b)r(enc)n(hmarks)f
+(the)h(decimal)330 5115 y(p)r(oin)n(t)c(has)f(b)r(een)h(in)g(the)f(bit)
+i(p)r(osition)e(range)f(10)h(-)g(13,)g(these)h(bit)g(p)r(ositions)f
+(giv)n(e)g(plen)n(t)n(y)g(of)330 5215 y(accuracy)c(to)h(execute)h(an)f
+(ANN.)455 5314 y(F)-7 b(rom)24 b(these)g(observ)-5 b(ations)23
+b(I)i(can)f(conclude)g(that)h(the)g(\014xed)f(p)r(oin)n(t)h(implemen)n
+(tation)g(has)330 5414 y(pro)n(v)n(en)32 b(that)i(it)g(can)f(p)r
+(erform)g(just)h(as)f(go)r(o)r(d)g(as)f(a)i(\015oating)e(p)r(oin)n(t)i
+(library)-7 b(.)53 b(Though)33 b(it)h(is)330 5513 y(not)28
+b(p)r(ossible)g(to)g(conclude)f(that)h(it)h(will)f(alw)n(a)n(ys)e(p)r
+(erform)i(this)g(w)n(ell.)38 b(Some)28 b(problems)f(ma)n(y)330
+5613 y(giv)n(e)i(rise)g(to)h(v)n(ery)e(high)i(w)n(eigh)n(ts,)g(whic)n
+(h)g(will)g(giv)n(e)f(a)g(lo)n(w)n(er)f(accuracy)g(for)i(the)g(\014xed)
+g(p)r(oin)n(t)p Black 1788 5919 a(37)p Black eop end
+%%Page: 38 42
+TeXDict begin 38 41 bop Black 330 70 a Fp(6.3)82 b(P)n(erformance)25
+b(Benc)n(hmark)1184 b(6)83 b(BENCHMARKS)p 330 103 3000
+4 v Black 330 390 a Fy(library)-7 b(.)455 490 y(The)33
+b(\014nal)g(conclusion)f(m)n(ust)i(b)r(e)g(that)f(b)r(oth)h(the)g(lwnn)
+f(library)f(and)h(the)h(fann)f(library)330 589 y(do)r(es)i(a)g(go)r(o)r
+(d)g(job)h(on)f(these)g(problems.)60 b(I)36 b(susp)r(ect)f(that)h(with)
+g(t)n(w)n(eaking)e(of)i(parameters)330 689 y(these)28
+b(t)n(w)n(o)e(libraries)h(will)g(p)r(erform)h(w)n(ell)f(on)g(most)h
+(ANN)g(problems.)330 921 y Fo(6.3)112 b(P)m(erformance)38
+b(Benc)m(hmark)330 1075 y Fy(In)27 b(this)g(section)f(I)h(will)g(run)f
+(t)n(w)n(o)g(b)r(enc)n(hmarks)g(with)h(the)g(lwnn)g(library)-7
+b(,)26 b(the)h(jneural)f(library)330 1174 y(and)31 b(sev)n(eral)f
+(con\014gurations)f(of)i(the)h(fann)g(library)-7 b(.)46
+b(Both)32 b(b)r(enc)n(hmarks)e(will)h(measure)g(the)330
+1274 y(nanoseconds)k(used)h(p)r(er)g(connection)g(when)g(executing)g
+(di\013eren)n(t)h(sizes)f(of)g(ANNs)h(on)f(the)330 1374
+y(library)-7 b(.)455 1473 y(The)31 b(\014rst)g(b)r(enc)n(hmark)g(will)h
+(b)r(e)f(run)h(on)f(the)h(AMD)g(A)n(thlon)g(mac)n(hine)f(and)g(the)h
+(second)330 1573 y(b)r(enc)n(hmark)27 b(will)h(b)r(e)g(run)f(on)g(the)h
+(iP)-7 b(A)n(Q.)455 1672 y(The)39 b(con\014gurations)f(of)i(the)g(fann)
+g(library)e(whic)n(h)h(I)h(will)g(use)g(are)e(the)i(normal)f(fann)330
+1772 y(library)34 b(with)i(the)g(sigmoid)f(activ)-5 b(ation)35
+b(function,)k(the)c(fann)h(library)f(with)h(the)g(threshold)330
+1872 y(activ)-5 b(ation)31 b(function)g(\(hereafter)g(kno)n(wn)f(as)g
+(fann)i(\(thres\)\),)g(the)g(\014xed)f(p)r(oin)n(t)g(fann)g(library)330
+1971 y(\(hereafter)j(kno)n(wn)g(as)g(fann)h(\(\014x\)\))h(and)f(a)f(v)n
+(ersion)f(of)i(the)g(fann)g(library)f(whic)n(h)h(do)r(es)f(not)330
+2071 y(use)d(the)h(p)r(erformance)f(enhancemen)n(ts)g(for)g(fully)h
+(connected)g(net)n(w)n(orks)e(\(hereafter)h(kno)n(wn)330
+2171 y(as)c(fann)h(\(no)r(opt\)\).)37 b(The)28 b(reasons)e(for)h(c)n
+(ho)r(osing)f(these)i(con\014gurations)d(are:)p Black
+330 2353 a Fs(fann)32 b(\(thres\))p Black 42 w Fy(This)43
+b(library)e(measures)g(ho)n(w)h(m)n(uc)n(h)g(the)h(sigmoid)f(activ)-5
+b(ation)42 b(function)538 2453 y(slo)n(ws)26 b(do)n(wn)h(the)h(ANN.)p
+Black 330 2619 a Fs(fann)k(\(\014x\))p Black 43 w Fy(Measures)f(the)i
+(p)r(erformance)f(enhancemen)n(ts)h(pro)r(duced)f(b)n(y)h(the)g
+(\014xed)g(p)r(oin)n(t)538 2719 y(optimizations.)p Black
+330 2885 a Fs(fann)f(\(no)s(opt\))p Black 42 w Fy(Measures)19
+b(the)i(p)r(erformance)f(enhancemen)n(ts)g(pro)r(duced)h(b)n(y)f(the)i
+(optimiza-)538 2984 y(tions)g(for)h(fully)g(connected)g(net)n(w)n
+(orks.)34 b(This)23 b(can)f(b)r(e)i(used)f(to)g(see)f(ho)n(w)h(small)f
+(the)i(con-)538 3084 y(nection)f(rate)h(should)f(b)r(e)i(b)r(efore)e
+(the)h(ANN)h(w)n(ould)f(b)r(e)g(faster)f(than)h(a)g(fully)g(connected)
+538 3183 y(ANN.)455 3366 y(I)32 b(will)g(measure)f(the)i(p)r
+(erformance)e(for)h(sev)n(eral)e(di\013eren)n(t)j(sizes)e(of)h(ANNs.)52
+b(These)32 b(dif-)330 3466 y(feren)n(t)g(sized)g(ANNs)h(will)g(consist)
+f(of)g(four)g(la)n(y)n(ers)f(with)i(the)f(same)g(amoun)n(t)g(of)g
+(neurons)g(in)330 3565 y(eac)n(h.)55 b(The)33 b(amoun)n(t)h(of)f
+(neurons)g(in)h(the)g(la)n(y)n(ers)e(will)i(b)r(e)g(doubled)g(for)f
+(eac)n(h)g(run)h(starting)330 3665 y(with)e(only)f(one)f(neuron.)47
+b(With)33 b(these)e(four)g(la)n(y)n(ers,)f(the)h(total)g(amoun)n(t)g
+(of)g(connections)g(in)330 3765 y(an)h(ANN)h(without)f(bias)g(neurons)f
+(\(only)h(lwnn\))h(will)f(b)r(e)h(3)p Fm(n)2302 3735
+y Fu(2)2338 3765 y Fy(,)h(where)d Fm(n)h Fy(is)g(the)h(amoun)n(t)e(of)
+330 3864 y(neurons)e(in)g(the)h(la)n(y)n(ers.)41 b(F)-7
+b(or)29 b(an)g(ANN)h(with)g(bias)f(neurons)g(\(jneural)g(and)h(fann\))f
+(the)h(total)330 3964 y(amoun)n(t)d(of)h(connections)f(will)g(b)r(e)h
+(3\()p Fm(n)1568 3934 y Fu(2)1624 3964 y Fy(+)18 b Fm(n)p
+Fy(\).)455 4064 y(F)-7 b(or)26 b(eac)n(h)h(net)n(w)n(ork)f(size,)h(the)
+h(net)n(w)n(ork)e(will)i(b)r(e)g(executed)f(consecutiv)n(e)f(for)h(20)g
+(seconds.)330 4163 y(After)i(this)g(time)h(the)f(n)n(um)n(b)r(er)f(of)h
+(nanoseconds)e(used)i(for)f(eac)n(h)g(connection)h(will)g(b)r(e)g
+(calcu-)330 4263 y(lated.)36 b(The)25 b(t)n(w)n(o)f(b)r(enc)n(hmarks)g
+(will)h(pro)r(duce)g(one)f(graph)g(eac)n(h,)h(furthermore)f(I)h(will)g
+(include)330 4362 y(tables)j(sho)n(wing)f(the)i(p)r(erformance)f(of)g
+(la)n(y)n(er)f(sizes)h(whic)n(h)g(are)f(of)i(particular)e(in)n(terest.)
+39 b(The)330 4462 y(program)26 b(used)i(for)g(b)r(enc)n(hmarking)f(the)
+i(p)r(erformance)e(in)i(the)f(libraries)f(is)h(included)h(in)g(ap-)330
+4562 y(p)r(endix)f(B.3.3.)330 4777 y Fs(6.3.1)94 b(The)32
+b(Benc)m(hmark)h(on)e(the)h(AMD)g(A)m(thlon)330 4931
+y Fy(Figure)39 b(23)g(sho)n(ws)f(the)i(b)r(enc)n(hmark)f(for)g(the)h
+(libraries)f(on)g(the)h(AMD)h(A)n(thlon)e(mac)n(hine.)330
+5030 y(Before)23 b(describing)g(whic)n(h)h(library)e(is)i(the)g
+(fastest,)g(I)g(will)g(describ)r(e)g(the)g(shap)r(es)f(of)h(the)g
+(plots.)330 5130 y(All)h(of)g(the)g(plots)f(ha)n(v)n(e)g(a)g(c)n
+(haracteristic)f(S)i(shap)r(e,)g(whic)n(h)g(start)f(high)g(then)i(go)r
+(es)d(lo)n(w)h(b)r(efore)330 5230 y(going)32 b(high)h(again.)51
+b(The)33 b(reason)e(wh)n(y)i(the)g(plots)g(start)f(high)h(is)g(that,)i
+(for)d(small)h(net)n(w)n(ork)330 5329 y(sizes,)38 b(the)f(p)r(er)f
+(neuron)f(o)n(v)n(erhead)f(is)j(rather)e(high)h(compared)f(to)h(the)h
+(time)g(used)f(on)g(the)330 5429 y(connections.)j(As)29
+b(ANNs)g(b)r(ecome)g(larger,)e(the)i(inner)f(lo)r(ops)g(will)h(run)f
+(for)g(more)g(iterations,)330 5528 y(th)n(us)f(making)f(the)i(o)n(v)n
+(erhead)d(smaller.)35 b(If)28 b(go)r(o)r(d)e(cac)n(he)g(optimization)h
+(is)g(applied,)g(the)g(ANN)330 5628 y(will)e(run)g(v)n(ery)f(smo)r(oth)
+h(and)g(all)g(the)g(CPU)g(time)h(will)f(b)r(e)g(used)g(for)g(actually)f
+(calculating)h(the)p Black 1788 5919 a(38)p Black eop
+end
+%%Page: 39 43
+TeXDict begin 39 42 bop Black 330 70 a Fp(6.3)82 b(P)n(erformance)25
+b(Benc)n(hmark)1184 b(6)83 b(BENCHMARKS)p 330 103 3000
+4 v Black Black 330 307 a
+ gsave currentpoint currentpoint translate -90 neg rotate neg exch
+neg exch translate
+ 330 307 a @beginspecial 50
+ at llx 50 @lly 554 @urx 770 @ury 3600 @rhi @setspecial
+%%BeginDocument: figs/performance.ps
+%!PS-Adobe-2.0
+%%Title: ../doc/figs/performance.ps
+%%Creator: gnuplot 3.7 patchlevel 3
+%%CreationDate: Fri Oct 24 13:10:39 2003
+%%DocumentFonts: (atend)
+%%BoundingBox: 50 50 554 770
+%%Orientation: Landscape
+%%Pages: (atend)
+%%EndComments
+/gnudict 256 dict def
+gnudict begin
+/Color true def
+/Solid true def
+/gnulinewidth 5.000 def
+/userlinewidth gnulinewidth def
+/vshift -46 def
+/dl {10 mul} def
+/hpt_ 31.5 def
+/vpt_ 31.5 def
+/hpt hpt_ def
+/vpt vpt_ def
+/M {moveto} bind def
+/L {lineto} bind def
+/R {rmoveto} bind def
+/V {rlineto} bind def
+/vpt2 vpt 2 mul def
+/hpt2 hpt 2 mul def
+/Lshow { currentpoint stroke M
+  0 vshift R show } def
+/Rshow { currentpoint stroke M
+  dup stringwidth pop neg vshift R show } def
+/Cshow { currentpoint stroke M
+  dup stringwidth pop -2 div vshift R show } def
+/UP { dup vpt_ mul /vpt exch def hpt_ mul /hpt exch def
+  /hpt2 hpt 2 mul def /vpt2 vpt 2 mul def } def
+/DL { Color {setrgbcolor Solid {pop []} if 0 setdash }
+ {pop pop pop Solid {pop []} if 0 setdash} ifelse } def
+/BL { stroke userlinewidth 2 mul setlinewidth } def
+/AL { stroke userlinewidth 2 div setlinewidth } def
+/UL { dup gnulinewidth mul /userlinewidth exch def
+      dup 1 lt {pop 1} if 10 mul /udl exch def } def
+/PL { stroke userlinewidth setlinewidth } def
+/LTb { BL [] 0 0 0 DL } def
+/LTa { AL [1 udl mul 2 udl mul] 0 setdash 0 0 0 setrgbcolor } def
+/LT0 { PL [] 1 0 0 DL } def
+/LT1 { PL [4 dl 2 dl] 0 1 0 DL } def
+/LT2 { PL [2 dl 3 dl] 0 0 1 DL } def
+/LT3 { PL [1 dl 1.5 dl] 1 0 1 DL } def
+/LT4 { PL [5 dl 2 dl 1 dl 2 dl] 0 1 1 DL } def
+/LT5 { PL [4 dl 3 dl 1 dl 3 dl] 1 1 0 DL } def
+/LT6 { PL [2 dl 2 dl 2 dl 4 dl] 0 0 0 DL } def
+/LT7 { PL [2 dl 2 dl 2 dl 2 dl 2 dl 4 dl] 1 0.3 0 DL } def
+/LT8 { PL [2 dl 2 dl 2 dl 2 dl 2 dl 2 dl 2 dl 4 dl] 0.5 0.5 0.5 DL } def
+/Pnt { stroke [] 0 setdash
+   gsave 1 setlinecap M 0 0 V stroke grestore } def
+/Dia { stroke [] 0 setdash 2 copy vpt add M
+  hpt neg vpt neg V hpt vpt neg V
+  hpt vpt V hpt neg vpt V closepath stroke
+  Pnt } def
+/Pls { stroke [] 0 setdash vpt sub M 0 vpt2 V
+  currentpoint stroke M
+  hpt neg vpt neg R hpt2 0 V stroke
+  } def
+/Box { stroke [] 0 setdash 2 copy exch hpt sub exch vpt add M
+  0 vpt2 neg V hpt2 0 V 0 vpt2 V
+  hpt2 neg 0 V closepath stroke
+  Pnt } def
+/Crs { stroke [] 0 setdash exch hpt sub exch vpt add M
+  hpt2 vpt2 neg V currentpoint stroke M
+  hpt2 neg 0 R hpt2 vpt2 V stroke } def
+/TriU { stroke [] 0 setdash 2 copy vpt 1.12 mul add M
+  hpt neg vpt -1.62 mul V
+  hpt 2 mul 0 V
+  hpt neg vpt 1.62 mul V closepath stroke
+  Pnt  } def
+/Star { 2 copy Pls Crs } def
+/BoxF { stroke [] 0 setdash exch hpt sub exch vpt add M
+  0 vpt2 neg V  hpt2 0 V  0 vpt2 V
+  hpt2 neg 0 V  closepath fill } def
+/TriUF { stroke [] 0 setdash vpt 1.12 mul add M
+  hpt neg vpt -1.62 mul V
+  hpt 2 mul 0 V
+  hpt neg vpt 1.62 mul V closepath fill } def
+/TriD { stroke [] 0 setdash 2 copy vpt 1.12 mul sub M
+  hpt neg vpt 1.62 mul V
+  hpt 2 mul 0 V
+  hpt neg vpt -1.62 mul V closepath stroke
+  Pnt  } def
+/TriDF { stroke [] 0 setdash vpt 1.12 mul sub M
+  hpt neg vpt 1.62 mul V
+  hpt 2 mul 0 V
+  hpt neg vpt -1.62 mul V closepath fill} def
+/DiaF { stroke [] 0 setdash vpt add M
+  hpt neg vpt neg V hpt vpt neg V
+  hpt vpt V hpt neg vpt V closepath fill } def
+/Pent { stroke [] 0 setdash 2 copy gsave
+  translate 0 hpt M 4 {72 rotate 0 hpt L} repeat
+  closepath stroke grestore Pnt } def
+/PentF { stroke [] 0 setdash gsave
+  translate 0 hpt M 4 {72 rotate 0 hpt L} repeat
+  closepath fill grestore } def
+/Circle { stroke [] 0 setdash 2 copy
+  hpt 0 360 arc stroke Pnt } def
+/CircleF { stroke [] 0 setdash hpt 0 360 arc fill } def
+/C0 { BL [] 0 setdash 2 copy moveto vpt 90 450  arc } bind def
+/C1 { BL [] 0 setdash 2 copy        moveto
+       2 copy  vpt 0 90 arc closepath fill
+               vpt 0 360 arc closepath } bind def
+/C2 { BL [] 0 setdash 2 copy moveto
+       2 copy  vpt 90 180 arc closepath fill
+               vpt 0 360 arc closepath } bind def
+/C3 { BL [] 0 setdash 2 copy moveto
+       2 copy  vpt 0 180 arc closepath fill
+               vpt 0 360 arc closepath } bind def
+/C4 { BL [] 0 setdash 2 copy moveto
+       2 copy  vpt 180 270 arc closepath fill
+               vpt 0 360 arc closepath } bind def
+/C5 { BL [] 0 setdash 2 copy moveto
+       2 copy  vpt 0 90 arc
+       2 copy moveto
+       2 copy  vpt 180 270 arc closepath fill
+               vpt 0 360 arc } bind def
+/C6 { BL [] 0 setdash 2 copy moveto
+      2 copy  vpt 90 270 arc closepath fill
+              vpt 0 360 arc closepath } bind def
+/C7 { BL [] 0 setdash 2 copy moveto
+      2 copy  vpt 0 270 arc closepath fill
+              vpt 0 360 arc closepath } bind def
+/C8 { BL [] 0 setdash 2 copy moveto
+      2 copy vpt 270 360 arc closepath fill
+              vpt 0 360 arc closepath } bind def
+/C9 { BL [] 0 setdash 2 copy moveto
+      2 copy  vpt 270 450 arc closepath fill
+              vpt 0 360 arc closepath } bind def
+/C10 { BL [] 0 setdash 2 copy 2 copy moveto vpt 270 360 arc closepath fill
+       2 copy moveto
+       2 copy vpt 90 180 arc closepath fill
+               vpt 0 360 arc closepath } bind def
+/C11 { BL [] 0 setdash 2 copy moveto
+       2 copy  vpt 0 180 arc closepath fill
+       2 copy moveto
+       2 copy  vpt 270 360 arc closepath fill
+               vpt 0 360 arc closepath } bind def
+/C12 { BL [] 0 setdash 2 copy moveto
+       2 copy  vpt 180 360 arc closepath fill
+               vpt 0 360 arc closepath } bind def
+/C13 { BL [] 0 setdash  2 copy moveto
+       2 copy  vpt 0 90 arc closepath fill
+       2 copy moveto
+       2 copy  vpt 180 360 arc closepath fill
+               vpt 0 360 arc closepath } bind def
+/C14 { BL [] 0 setdash 2 copy moveto
+       2 copy  vpt 90 360 arc closepath fill
+               vpt 0 360 arc } bind def
+/C15 { BL [] 0 setdash 2 copy vpt 0 360 arc closepath fill
+               vpt 0 360 arc closepath } bind def
+/Rec   { newpath 4 2 roll moveto 1 index 0 rlineto 0 exch rlineto
+       neg 0 rlineto closepath } bind def
+/Square { dup Rec } bind def
+/Bsquare { vpt sub exch vpt sub exch vpt2 Square } bind def
+/S0 { BL [] 0 setdash 2 copy moveto 0 vpt rlineto BL Bsquare } bind def
+/S1 { BL [] 0 setdash 2 copy vpt Square fill Bsquare } bind def
+/S2 { BL [] 0 setdash 2 copy exch vpt sub exch vpt Square fill Bsquare } bind def
+/S3 { BL [] 0 setdash 2 copy exch vpt sub exch vpt2 vpt Rec fill Bsquare } bind def
+/S4 { BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt Square fill Bsquare } bind def
+/S5 { BL [] 0 setdash 2 copy 2 copy vpt Square fill
+       exch vpt sub exch vpt sub vpt Square fill Bsquare } bind def
+/S6 { BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt vpt2 Rec fill Bsquare } bind def
+/S7 { BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt vpt2 Rec fill
+       2 copy vpt Square fill
+       Bsquare } bind def
+/S8 { BL [] 0 setdash 2 copy vpt sub vpt Square fill Bsquare } bind def
+/S9 { BL [] 0 setdash 2 copy vpt sub vpt vpt2 Rec fill Bsquare } bind def
+/S10 { BL [] 0 setdash 2 copy vpt sub vpt Square fill 2 copy exch vpt sub exch vpt Square fill
+       Bsquare } bind def
+/S11 { BL [] 0 setdash 2 copy vpt sub vpt Square fill 2 copy exch vpt sub exch vpt2 vpt Rec fill
+       Bsquare } bind def
+/S12 { BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt2 vpt Rec fill Bsquare } bind def
+/S13 { BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt2 vpt Rec fill
+       2 copy vpt Square fill Bsquare } bind def
+/S14 { BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt2 vpt Rec fill
+       2 copy exch vpt sub exch vpt Square fill Bsquare } bind def
+/S15 { BL [] 0 setdash 2 copy Bsquare fill Bsquare } bind def
+/D0 { gsave translate 45 rotate 0 0 S0 stroke grestore } bind def
+/D1 { gsave translate 45 rotate 0 0 S1 stroke grestore } bind def
+/D2 { gsave translate 45 rotate 0 0 S2 stroke grestore } bind def
+/D3 { gsave translate 45 rotate 0 0 S3 stroke grestore } bind def
+/D4 { gsave translate 45 rotate 0 0 S4 stroke grestore } bind def
+/D5 { gsave translate 45 rotate 0 0 S5 stroke grestore } bind def
+/D6 { gsave translate 45 rotate 0 0 S6 stroke grestore } bind def
+/D7 { gsave translate 45 rotate 0 0 S7 stroke grestore } bind def
+/D8 { gsave translate 45 rotate 0 0 S8 stroke grestore } bind def
+/D9 { gsave translate 45 rotate 0 0 S9 stroke grestore } bind def
+/D10 { gsave translate 45 rotate 0 0 S10 stroke grestore } bind def
+/D11 { gsave translate 45 rotate 0 0 S11 stroke grestore } bind def
+/D12 { gsave translate 45 rotate 0 0 S12 stroke grestore } bind def
+/D13 { gsave translate 45 rotate 0 0 S13 stroke grestore } bind def
+/D14 { gsave translate 45 rotate 0 0 S14 stroke grestore } bind def
+/D15 { gsave translate 45 rotate 0 0 S15 stroke grestore } bind def
+/DiaE { stroke [] 0 setdash vpt add M
+  hpt neg vpt neg V hpt vpt neg V
+  hpt vpt V hpt neg vpt V closepath stroke } def
+/BoxE { stroke [] 0 setdash exch hpt sub exch vpt add M
+  0 vpt2 neg V hpt2 0 V 0 vpt2 V
+  hpt2 neg 0 V closepath stroke } def
+/TriUE { stroke [] 0 setdash vpt 1.12 mul add M
+  hpt neg vpt -1.62 mul V
+  hpt 2 mul 0 V
+  hpt neg vpt 1.62 mul V closepath stroke } def
+/TriDE { stroke [] 0 setdash vpt 1.12 mul sub M
+  hpt neg vpt 1.62 mul V
+  hpt 2 mul 0 V
+  hpt neg vpt -1.62 mul V closepath stroke } def
+/PentE { stroke [] 0 setdash gsave
+  translate 0 hpt M 4 {72 rotate 0 hpt L} repeat
+  closepath stroke grestore } def
+/CircE { stroke [] 0 setdash 
+  hpt 0 360 arc stroke } def
+/Opaque { gsave closepath 1 setgray fill grestore 0 setgray closepath } def
+/DiaW { stroke [] 0 setdash vpt add M
+  hpt neg vpt neg V hpt vpt neg V
+  hpt vpt V hpt neg vpt V Opaque stroke } def
+/BoxW { stroke [] 0 setdash exch hpt sub exch vpt add M
+  0 vpt2 neg V hpt2 0 V 0 vpt2 V
+  hpt2 neg 0 V Opaque stroke } def
+/TriUW { stroke [] 0 setdash vpt 1.12 mul add M
+  hpt neg vpt -1.62 mul V
+  hpt 2 mul 0 V
+  hpt neg vpt 1.62 mul V Opaque stroke } def
+/TriDW { stroke [] 0 setdash vpt 1.12 mul sub M
+  hpt neg vpt 1.62 mul V
+  hpt 2 mul 0 V
+  hpt neg vpt -1.62 mul V Opaque stroke } def
+/PentW { stroke [] 0 setdash gsave
+  translate 0 hpt M 4 {72 rotate 0 hpt L} repeat
+  Opaque stroke grestore } def
+/CircW { stroke [] 0 setdash 
+  hpt 0 360 arc Opaque stroke } def
+/BoxFill { gsave Rec 1 setgray fill grestore } def
+/Symbol-Oblique /Symbol findfont [1 0 .167 1 0 0] makefont
+dup length dict begin {1 index /FID eq {pop pop} {def} ifelse} forall
+currentdict end definefont pop
+end
+%%EndProlog
+%%Page: 1 1
+gnudict begin
+gsave
+50 50 translate
+0.100 0.100 scale
+90 rotate
+0 -5040 translate
+0 setgray
+newpath
+(Helvetica) findfont 140 scalefont setfont
+1.000 UL
+LTb
+1.000 UL
+LTa
+798 420 M
+6164 0 V
+1.000 UL
+LTb
+798 420 M
+63 0 V
+6101 0 R
+-63 0 V
+714 420 M
+( 1) Rshow
+798 841 M
+31 0 V
+6133 0 R
+-31 0 V
+798 1088 M
+31 0 V
+6133 0 R
+-31 0 V
+798 1263 M
+31 0 V
+6133 0 R
+-31 0 V
+798 1399 M
+31 0 V
+6133 0 R
+-31 0 V
+798 1509 M
+31 0 V
+6133 0 R
+-31 0 V
+798 1603 M
+31 0 V
+6133 0 R
+-31 0 V
+798 1684 M
+31 0 V
+6133 0 R
+-31 0 V
+798 1756 M
+31 0 V
+6133 0 R
+-31 0 V
+1.000 UL
+LTa
+798 1820 M
+6164 0 V
+1.000 UL
+LTb
+798 1820 M
+63 0 V
+6101 0 R
+-63 0 V
+-6185 0 R
+( 10) Rshow
+798 2241 M
+31 0 V
+6133 0 R
+-31 0 V
+798 2488 M
+31 0 V
+6133 0 R
+-31 0 V
+798 2663 M
+31 0 V
+6133 0 R
+-31 0 V
+798 2799 M
+31 0 V
+6133 0 R
+-31 0 V
+798 2909 M
+31 0 V
+6133 0 R
+-31 0 V
+798 3003 M
+31 0 V
+6133 0 R
+-31 0 V
+798 3084 M
+31 0 V
+6133 0 R
+-31 0 V
+798 3156 M
+31 0 V
+6133 0 R
+-31 0 V
+1.000 UL
+LTa
+798 3220 M
+6164 0 V
+1.000 UL
+LTb
+798 3220 M
+63 0 V
+6101 0 R
+-63 0 V
+-6185 0 R
+( 100) Rshow
+798 3641 M
+31 0 V
+6133 0 R
+-31 0 V
+798 3888 M
+31 0 V
+6133 0 R
+-31 0 V
+798 4063 M
+31 0 V
+6133 0 R
+-31 0 V
+798 4199 M
+31 0 V
+6133 0 R
+-31 0 V
+798 4309 M
+31 0 V
+6133 0 R
+-31 0 V
+798 4403 M
+31 0 V
+6133 0 R
+-31 0 V
+798 4484 M
+31 0 V
+6133 0 R
+-31 0 V
+798 4556 M
+31 0 V
+6133 0 R
+-31 0 V
+1.000 UL
+LTa
+798 4620 M
+6164 0 V
+1.000 UL
+LTb
+798 4620 M
+63 0 V
+6101 0 R
+-63 0 V
+-6185 0 R
+( 1000) Rshow
+1.000 UL
+LTa
+798 420 M
+0 4200 V
+1.000 UL
+LTb
+798 420 M
+0 63 V
+0 4137 R
+0 -63 V
+798 280 M
+( 1) Cshow
+1262 420 M
+0 31 V
+0 4169 R
+0 -31 V
+1533 420 M
+0 31 V
+0 4169 R
+0 -31 V
+1726 420 M
+0 31 V
+0 4169 R
+0 -31 V
+1875 420 M
+0 31 V
+0 4169 R
+0 -31 V
+1997 420 M
+0 31 V
+0 4169 R
+0 -31 V
+2100 420 M
+0 31 V
+0 4169 R
+0 -31 V
+2190 420 M
+0 31 V
+0 4169 R
+0 -31 V
+2268 420 M
+0 31 V
+0 4169 R
+0 -31 V
+1.000 UL
+LTa
+2339 420 M
+0 4200 V
+1.000 UL
+LTb
+2339 420 M
+0 63 V
+0 4137 R
+0 -63 V
+0 -4277 R
+( 10) Cshow
+2803 420 M
+0 31 V
+0 4169 R
+0 -31 V
+3074 420 M
+0 31 V
+0 4169 R
+0 -31 V
+3267 420 M
+0 31 V
+0 4169 R
+0 -31 V
+3416 420 M
+0 31 V
+0 4169 R
+0 -31 V
+3538 420 M
+0 31 V
+0 4169 R
+0 -31 V
+3641 420 M
+0 31 V
+0 4169 R
+0 -31 V
+3731 420 M
+0 31 V
+0 4169 R
+0 -31 V
+3809 420 M
+0 31 V
+0 4169 R
+0 -31 V
+1.000 UL
+LTa
+3880 420 M
+0 4200 V
+1.000 UL
+LTb
+3880 420 M
+0 63 V
+0 4137 R
+0 -63 V
+0 -4277 R
+( 100) Cshow
+4344 420 M
+0 31 V
+0 4169 R
+0 -31 V
+4615 420 M
+0 31 V
+0 4169 R
+0 -31 V
+4808 420 M
+0 31 V
+0 4169 R
+0 -31 V
+4957 420 M
+0 31 V
+0 4169 R
+0 -31 V
+5079 420 M
+0 31 V
+0 4169 R
+0 -31 V
+5182 420 M
+0 31 V
+0 4169 R
+0 -31 V
+5272 420 M
+0 31 V
+0 4169 R
+0 -31 V
+5350 420 M
+0 31 V
+0 4169 R
+0 -31 V
+1.000 UL
+LTa
+5421 420 M
+0 3297 V
+0 840 R
+0 63 V
+1.000 UL
+LTb
+5421 420 M
+0 63 V
+0 4137 R
+0 -63 V
+0 -4277 R
+( 1000) Cshow
+5885 420 M
+0 31 V
+0 4169 R
+0 -31 V
+6156 420 M
+0 31 V
+0 4169 R
+0 -31 V
+6349 420 M
+0 31 V
+0 4169 R
+0 -31 V
+6498 420 M
+0 31 V
+0 4169 R
+0 -31 V
+6620 420 M
+0 31 V
+0 4169 R
+0 -31 V
+6723 420 M
+0 31 V
+0 4169 R
+0 -31 V
+6813 420 M
+0 31 V
+0 4169 R
+0 -31 V
+6891 420 M
+0 31 V
+0 4169 R
+0 -31 V
+1.000 UL
+LTa
+6962 420 M
+0 4200 V
+1.000 UL
+LTb
+6962 420 M
+0 63 V
+0 4137 R
+0 -63 V
+0 -4277 R
+( 10000) Cshow
+1.000 UL
+LTb
+798 420 M
+6164 0 V
+0 4200 V
+-6164 0 V
+798 420 L
+140 2520 M
+currentpoint gsave translate 90 rotate 0 0 M
+(Nanoseconds per connection) Cshow
+grestore
+3880 70 M
+(Number of neurons in the four layers) Cshow
+3880 4830 M
+(Performance) Cshow
+1.000 UL
+LTb
+6311 4487 M
+(fann) Rshow
+6395 4487 M
+399 0 V
+798 3496 M
+464 -391 V
+464 -389 V
+464 -398 V
+464 -392 V
+463 -361 V
+464 -318 V
+464 -140 V
+464 602 V
+464 -20 V
+464 -10 V
+464 -3 V
+1.000 UL
+LT0
+6311 4347 M
+(fann \(thres\)) Rshow
+6395 4347 M
+399 0 V
+798 3091 M
+464 -557 V
+464 -512 V
+464 -434 V
+464 -384 V
+3117 973 L
+3581 786 L
+464 95 V
+464 801 V
+464 -6 V
+464 -4 V
+464 1 V
+1.000 UL
+LT1
+6311 4207 M
+(fann \(fix\)) Rshow
+6395 4207 M
+399 0 V
+798 3218 M
+464 -502 V
+464 -510 V
+464 -400 V
+464 -263 V
+463 -161 V
+464 -67 V
+464 -2 V
+464 474 V
+464 -5 V
+464 -2 V
+464 2 V
+1.000 UL
+LT4
+6311 4067 M
+(fann \(noopt\)) Rshow
+6395 4067 M
+399 0 V
+798 3512 M
+464 -413 V
+464 -377 V
+464 -383 V
+464 -373 V
+463 -327 V
+464 -167 V
+464 468 V
+464 -1 V
+464 -22 V
+464 -7 V
+464 4 V
+1.000 UL
+LT2
+6311 3927 M
+(lwnn) Rshow
+6395 3927 M
+399 0 V
+798 3591 M
+464 -667 V
+464 -551 V
+464 -444 V
+464 -339 V
+463 -211 V
+464 -113 V
+464 -2 V
+464 494 V
+464 -25 V
+464 -14 V
+464 -14 V
+1.000 UL
+LT3
+6311 3787 M
+(jneural) Rshow
+6395 3787 M
+399 0 V
+798 3759 M
+464 -324 V
+464 -268 V
+464 -151 V
+464 70 V
+463 754 V
+464 327 V
+464 43 V
+464 1 V
+464 15 V
+stroke
+grestore
+end
+showpage
+%%Trailer
+%%DocumentFonts: Helvetica
+%%Pages: 1
+
+%%EndDocument
+ @endspecial 2430 307 a
+ currentpoint grestore moveto
+ 2430 307 a 330 2556 a Fy(Figure)35
+b(23:)53 b(Graph)36 b(sho)n(wing)f(the)h(n)n(um)n(b)r(er)g(of)g
+(nanoseconds)f(used)h(p)r(er)g(connection)f(as)g(a)330
+2656 y(function)28 b(of)g(the)g(net)n(w)n(ork)e(size,)h(on)h(an)f(AMD)h
+(A)n(thlon)g(mac)n(hine.)p Black 330 2921 a(sum)j(function.)47
+b(A)n(t)31 b(some)f(p)r(oin)n(t)h(the)g(ANNs)g(b)r(ecome)g(so)f(large,)
+g(that)h(they)g(can)f(no)g(longer)330 3021 y(\014t)36
+b(in)g(the)h(cac)n(he,)g(whic)n(h)e(on)h(the)g(AMD)h(A)n(thlon)f(is)f
+(256)g(KB.)g(When)i(this)f(happ)r(ens,)i(the)330 3120
+y(p)r(erformance)31 b(declines)g(and)h(the)g(plots)g(go)e(up)j(again.)
+48 b(The)32 b(fann)g(and)f(lwnn)h(library)f(b)r(oth)330
+3220 y(hit)36 b(the)h(cac)n(he)e(b)r(oundary)g(b)r(et)n(w)n(een)h(la)n
+(y)n(er)e(sizes)h(of)h(128)f(and)h(256.)60 b(This)36
+b(is)g(the)g(optimal)330 3320 y(place,)30 b(since)g(the)h(amoun)n(t)f
+(of)g(space)f(needed)h(to)h(represen)n(t)d(the)j(w)n(eigh)n(ts)e(in)i
+(an)f(ANN)h(with)330 3419 y(la)n(y)n(er)d(sizes)i(of)g(128)f(and)h(256)
+f(is)h(appro)n(ximately)e(190)h(KB)h(and)g(770)e(KB)i(\(when)h(using)e
+(four)330 3519 y(b)n(ytes)f(for)f(eac)n(h)h(w)n(eigh)n(t\).)37
+b(The)29 b(fann)f(\(no)r(opt\))g(con\014guration)f(of)h(the)g(fann)h
+(library)d(hits)j(the)330 3618 y(cac)n(he)g(b)r(oundary)f(b)r(efore,)i
+(b)r(ecause)f(it)h(needs)g(to)f(access)f(memory)h(con)n(taining)g
+(information)330 3718 y(ab)r(out)34 b(the)f(connections.)55
+b(Where)33 b(the)h(jneural)f(library)g(has)g(no)g(optimizations)g(for)g
+(cac)n(he)330 3818 y(and)27 b(therefore)g(hits)h(the)g(cac)n(he)f(b)r
+(oundary)g(a)g(lot)g(so)r(oner.)455 3917 y(A)35 b(brief)g(lo)r(ok)f(at)
+h(the)h(graphs)d(sho)n(ws)h(that)i(the)f(jneural)g(library)f(has)g(the)
+h(lo)n(w)n(est)f(p)r(er-)330 4017 y(formance)27 b(and)h(that)g(the)h
+(fann)f(\(thres\))h(con\014guration)d(p)r(erforms)h(b)r(est.)39
+b(The)28 b(fann)h(\(no)r(opt\))330 4117 y(con\014guration)22
+b(p)r(erforms)g(sligh)n(tly)h(w)n(orse)e(than)j(the)f(three)g
+(remaining)f(libraries)g(\(lwnn,)j(fann)330 4216 y(and)e(fann)h
+(\(\014x\)\),)i(but)e(b)r(et)n(w)n(een)g(these)f(libraries)f(p)r
+(erformance)h(v)-5 b(aries)23 b(for)g(di\013eren)n(t)g(net)n(w)n(ork)
+330 4316 y(sizes.)455 4415 y(I)28 b(ha)n(v)n(e)g(c)n(hosen)g(three)g
+(di\013eren)n(t)h(la)n(y)n(er)e(sizes,)i(whic)n(h)f(I)h(will)g(study)g
+(in)g(detail)g(to)f(see)h(ho)n(w)330 4515 y(fast)24 b(the)g(individual)
+h(libraries)d(are.)35 b(F)-7 b(or)23 b(eac)n(h)g(of)h(these)h(sizes)e
+(I)h(ha)n(v)n(e)f(made)h(a)f(table)h(sho)n(wing)330 4615
+y(ho)n(w)j(fast)h(the)g(libraries)e(are.)455 4714 y(Figure)k(24)f(sho)n
+(ws)h(a)g(table)h(for)f(the)h(p)r(erformances)f(of)g(ANNs)i(with)f(8)f
+(neurons)g(in)h(eac)n(h)330 4814 y(la)n(y)n(er.)i(This)19
+b(is)h(the)g(la)n(y)n(er)f(size)g(where)h(the)g(jneural)f(library)g(p)r
+(erforms)g(b)r(est.)35 b(Unfortunately)20 b(it)330 4914
+y(still)27 b(uses)g(more)f(than)g(three)h(times)g(as)f(m)n(uc)n(h)h
+(time)g(as)f(the)i(rest)e(of)h(the)g(libraries.)35 b(The)27
+b(fann)330 5013 y(\(no)r(opt\))38 b(con\014gurations)d(is)i(only)f
+(sligh)n(tly)h(slo)n(w)n(er)e(than)i(the)g(fann)g(con\014guration,)h
+(whic)n(h)330 5113 y(comes)c(from)h(the)h(fact,)h(that)f(there)e(is)i
+(still)f(plen)n(t)n(y)g(of)g(free)g(cac)n(he.)59 b(The)35
+b(lwnn)g(library)f(is)330 5212 y(faster)e(than)g(the)h(fann)f(library)
+-7 b(,)32 b(whic)n(h)g(is)g(probably)g(due)g(to)g(the)h(fact)f(that)h
+(it)f(uses)g(a)g(pre-)330 5312 y(calculated)26 b(table)h(for)f
+(calculating)g(the)h(sigmoid)f(function.)38 b(Using)26
+b(a)h(table)f(for)h(the)g(sigmoid)330 5412 y(function)g(greatly)f
+(reduces)g(the)h(p)r(er)g(neuron)f(o)n(v)n(erhead)f(and)i(giv)n(es)e
+(the)i(lwnn)h(library)d(a)h(p)r(er-)330 5511 y(formance)i(increase)f
+(on)i(the)g(small)g(ANNs.)41 b(The)29 b(\014xed)g(p)r(oin)n(t)g
+(library)e(p)r(erforms)h(quite)h(w)n(ell)330 5611 y(for)d(these)g
+(smaller)g(problems)f(and)h(pro)n(v)n(es)f(that)h(the)h(\014xed)g(p)r
+(oin)n(t)f(library)f(can)h(also)f(increase)p Black 1788
+5919 a(39)p Black eop end
+%%Page: 40 44
+TeXDict begin 40 43 bop Black 330 70 a Fp(6.3)82 b(P)n(erformance)25
+b(Benc)n(hmark)1184 b(6)83 b(BENCHMARKS)p 330 103 3000
+4 v Black Black 585 377 a Fy(Library)p 1095 407 4 100
+v 288 w(Nanoseconds)26 b(p)r(er)i(neuron)99 b(Times)27
+b(b)r(etter)h(than)g(jneural)p 536 410 2589 4 v 585 480
+a(fann)p 1095 510 4 100 v 1059 w(22.675)850 b(3.151)585
+579 y(fann)28 b(\(thres\))p 1095 609 V 827 w(6.827)809
+b(10.465)585 679 y(fann)28 b(\(\014x\))p 1095 709 V 918
+w(9.766)851 b(7.316)585 779 y(fann)28 b(\(no)r(opt\))p
+1095 809 V 757 w(23.487)850 b(3.048)585 878 y(lwnn)p
+1095 908 V 1043 w(11.962)g(5.972)585 978 y(jneural)p
+1095 1008 V 966 w(71.440)g(1.000)330 1157 y(Figure)27
+b(24:)36 b(The)27 b(results)g(with)h(fully)h(connected)e(net)n(w)n
+(orks)f(consisting)g(of)i(four)f(la)n(y)n(ers)f(with)330
+1256 y(8)d(neurons)g(in)i(eac)n(h,)f(on)f(an)h(AMD)g(A)n(thlon)g(mac)n
+(hine)g(\(this)g(is)g(the)g(net)n(w)n(ork)f(size)g(whic)n(h)h(giv)n(es)
+330 1356 y(the)k(highest)f(p)r(erformance)g(for)g(the)h(jneural)f
+(library\).)p Black 330 1619 a(the)h(p)r(erformance)e(on)h(computers)f
+(with)i(\015oating)e(p)r(oin)n(t)h(pro)r(cessors.)35
+b(This)27 b(is)g(probably)f(b)r(e-)330 1719 y(cause)32
+b(the)h(step)n(wise)f(linear)g(activ)-5 b(ation)33 b(function)g(is)f
+(faster)h(than)f(the)i(sigmoid)e(activ)-5 b(ation)330
+1818 y(function.)40 b(The)28 b(fann)h(\(thres\))f(con\014guration)f(is)
+h(the)h(fastest)f(con\014guration)f(and)h(it)h(is)f(more)330
+1918 y(than)c(three)g(times)g(as)f(fast)h(as)f(the)i(normal)d(fann)i
+(library)-7 b(,)24 b(whic)n(h)g(suggests)e(that)j(the)f(sigmoid)330
+2017 y(function)f(uses)g(t)n(w)n(o)f(third)h(of)g(the)g(fann)g
+(library's)f(time.)35 b(This)23 b(observ)-5 b(ation)22
+b(clearly)f(suggests,)330 2117 y(that)31 b(creating)f(a)h(fast)g
+(sigmoid)f(implemen)n(tation)h(is)g(a)g(go)r(o)r(d)f(w)n(a)n(y)g(of)h
+(optimizing)f(an)h(ANN)330 2217 y(library)-7 b(.)p Black
+594 2399 a(Library)p 1104 2429 V 288 w(Nanoseconds)26
+b(p)r(er)i(neuron)99 b(Times)27 b(faster)g(than)h(jneural)p
+545 2432 2571 4 v 594 2502 a(fann)p 1104 2532 4 100 v
+1059 w(3.0972)749 b(164.388)594 2601 y(fann)28 b(\(thres\))p
+1104 2631 V 786 w(2.1340)749 b(238.583)594 2701 y(fann)28
+b(\(\014x\))p 1104 2731 V 918 w(4.344)750 b(117.194)594
+2801 y(fann)28 b(\(no)r(opt\))p 1104 2830 V 757 w(12.175)790
+b(41.818)594 2900 y(lwnn)p 1104 2930 V 1084 w(4.007)750
+b(127.074)594 3000 y(jneural)p 1104 3030 V 924 w(509.138)832
+b(1.000)330 3179 y(Figure)27 b(25:)36 b(The)27 b(results)g(with)h
+(fully)h(connected)e(net)n(w)n(orks)f(consisting)g(of)i(four)f(la)n(y)n
+(ers)f(with)330 3278 y(128)31 b(neurons)g(in)i(eac)n(h,)f(on)g(an)g
+(AMD)h(A)n(thlon)f(mac)n(hine)g(\(this)h(is)f(the)h(net)n(w)n(ork)d
+(size)i(whic)n(h)330 3378 y(giv)n(es)26 b(the)i(highest)g(p)r
+(erformance)e(for)h(the)h(lwnn)g(and)g(fann)g(libraries\).)p
+Black 455 3578 a(Figure)35 b(25)h(sho)n(ws)f(ho)n(w)g(w)n(ell)h(the)h
+(libraries)e(p)r(erforms)g(with)i(128)e(neurons)g(in)i(eac)n(h)e(of)330
+3678 y(the)28 b(four)f(la)n(y)n(ers.)36 b(This)28 b(is)f(an)h
+(indication)f(of)h(ho)n(w)f(the)h(libraries)f(p)r(erform)g(at)g(a)h
+(stage)f(where)330 3778 y(the)36 b(jneural)g(and)g(fann)g(\(no)r(opt\))
+h(libraries)d(ha)n(v)n(e)h(already)f(reac)n(hed)h(the)i(cac)n(he)e(b)r
+(oundary)-7 b(,)330 3877 y(but)37 b(the)f(others)f(ha)n(v)n(e)g(not.)62
+b(A)n(t)37 b(this)f(p)r(oin)n(t)g(the)h(fann)f(\(thres\))g(library)f
+(is)h(238.583)d(times)330 3977 y(faster)j(than)i(the)f(jneural)g
+(library)f(and)g(the)i(fann)f(library)f(is)h(164.388)d(times)j(faster)g
+(than)330 4076 y(the)32 b(jneural)f(library)-7 b(.)48
+b(This)32 b(is)f(a)g(clear)g(indication)g(of)h(the)g(b)r(ene\014t)h
+(whic)n(h)e(can)g(b)r(e)h(reac)n(hed)330 4176 y(through)27
+b(p)r(erformance)f(engineering.)455 4276 y(Another)i(in)n(teresting)g
+(observ)-5 b(ation)27 b(is)i(that)g(the)g(standard)e(fann)i(library)e
+(is)i(faster)f(than)330 4375 y(the)i(fann)f(\(\014x\))h(and)f(lwnn)g
+(libraries.)40 b(I)30 b(think)f(this)h(is)f(due)g(to)g(the)h(fact)f
+(that)g(b)r(oth)h(of)f(these)330 4475 y(libraries)38
+b(use)h(v)-5 b(ariables)38 b(whic)n(h)h(are)f(stored)g(in)h(memory)g
+(for)f(calculating)h(their)g(sigmoid)330 4575 y(functions.)j(These)29
+b(v)-5 b(ariables)28 b(will)h(most)g(lik)n(ely)g(ha)n(v)n(e)f(b)r(een)i
+(erased)e(from)h(the)g(cac)n(he)g(at)g(the)330 4674 y(p)r(oin)n(t)i
+(where)g(the)h(sigmoid)e(function)i(should)f(b)r(e)g(calculated,)h
+(hence)f(resulting)g(in)g(a)g(cac)n(he)330 4774 y(miss.)64
+b(On)37 b(the)g(AMD)g(A)n(thlon)g(a)f(cac)n(he)g(miss)h(tak)n(es)e
+(longer)h(time)h(than)g(calculating)f(the)330 4873 y(sigmoid)29
+b(function,)j(whic)n(h)d(in)i(e\013ect)f(mak)n(es)f(the)i(fann)f
+(library)e(faster)i(than)g(the)g(t)n(w)n(o)g(other)330
+4973 y(libraries.)455 5073 y(With)36 b(a)f(la)n(y)n(er)e(size)i(of)g
+(512)f(neurons)h(\(\014gure)g(26\),)h(all)f(of)h(the)f(libraries)f(ha)n
+(v)n(e)g(reac)n(hed)330 5172 y(the)i(cac)n(he)e(b)r(oundary)-7
+b(.)60 b(The)35 b(jneural)g(library)f(is)h(also)g(close)f(to)h(the)h
+(limit)g(for)f(ho)n(w)g(man)n(y)330 5272 y(connections)k(it)h(can)f
+(handle)g(without)h(b)r(eing)g(killed)f(b)n(y)g(the)h(system.)72
+b(I)40 b(did)g(not)f(really)330 5372 y(in)n(v)n(estigate)32
+b(further)g(in)n(to)h(wh)n(y)g(it)g(w)n(as)f(killed)h(b)n(y)f(the)i
+(system,)g(but)f(it)h(probably)d(to)r(ok)i(up)330 5471
+y(to)r(o)d(man)n(y)f(resources.)42 b(A)n(t)31 b(this)f(p)r(oin)n(t)g
+(the)h(fann)f(library)f(is)h(64.867)e(times)i(faster)g(than)g(the)330
+5571 y(jneural)f(library)-7 b(,)29 b(whic)n(h)g(is)g(not)g(as)g(m)n(uc)
+n(h)g(as)g(b)r(efore)g(it)g(reac)n(hed)f(the)i(cac)n(he)e(b)r(oundary)
+-7 b(,)29 b(but)330 5670 y(it)f(is)g(still)f(a)h(h)n(uge)f(p)r
+(erformance)f(increase.)p Black 1788 5919 a(40)p Black
+eop end
+%%Page: 41 45
+TeXDict begin 41 44 bop Black 330 70 a Fp(6.3)82 b(P)n(erformance)25
+b(Benc)n(hmark)1184 b(6)83 b(BENCHMARKS)p 330 103 3000
+4 v Black Black 594 377 a Fy(Library)p 1104 407 4 100
+v 288 w(Nanoseconds)26 b(p)r(er)i(neuron)99 b(Times)27
+b(faster)g(than)h(jneural)p 545 410 2571 4 v 594 480
+a(fann)p 1104 510 4 100 v 1100 w(8.065)791 b(64.867)594
+579 y(fann)28 b(\(thres\))p 1104 609 V 827 w(7.890)791
+b(66.310)594 679 y(fann)28 b(\(\014x\))p 1104 709 V 918
+w(9.390)791 b(55.715)594 779 y(fann)28 b(\(no)r(opt\))p
+1104 809 V 757 w(11.735)790 b(44.584)594 878 y(lwnn)p
+1104 908 V 1084 w(8.662)h(60.400)594 978 y(jneural)p
+1104 1008 V 924 w(523.175)832 b(1.000)330 1157 y(Figure)27
+b(26:)36 b(The)27 b(results)g(with)h(fully)h(connected)e(net)n(w)n
+(orks)f(consisting)g(of)i(four)f(la)n(y)n(ers)f(with)330
+1256 y(512)j(neurons)g(in)h(eac)n(h,)g(on)g(an)f(AMD)i(A)n(thlon)g(mac)
+n(hine)e(\(this)i(is)f(the)g(largest)f(net)n(w)n(ork)f(size)330
+1356 y(whic)n(h)g(could)f(b)r(e)h(executed)g(b)n(y)f(the)h(jneural)f
+(library\).)p Black 455 1626 a(With)h(this)h(large)d(la)n(y)n(er)h
+(size,)h(there)g(is)g(v)n(ery)e(little)j(p)r(enalt)n(y)f(of)g
+(calculating)f(the)i(sigmoid)330 1726 y(function)34 b(and)g(the)f(fann)
+h(\(thres\))g(library)e(is)i(only)f(sligh)n(tly)g(faster)g(than)g(the)h
+(normal)f(fann)330 1825 y(library)-7 b(.)56 b(The)34
+b(lwnn)g(library)-7 b(,)35 b(whic)n(h)f(uses)g(a)g(table)g(lo)r(okup)g
+(for)g(the)g(sigmoid)g(function,)i(is)330 1925 y(no)n(w)27
+b(slo)n(w)n(er)e(than)j(the)g(fann)f(library)f(and)i(so)e(is)i(the)f
+(fann)h(\(\014x\))g(library)-7 b(.)36 b(The)27 b(fann)h(\(no)r(opt\))
+330 2024 y(library)e(is)i(still)g(slo)n(w)n(er,)d(but)k(the)f
+(di\013erence)f(is)h(no)f(longer)f(as)h(sev)n(ere.)330
+2240 y Fs(6.3.2)94 b(The)32 b(Benc)m(hmark)h(on)e(the)h(iP)-8
+b(A)m(Q)p Black 330 2410 a
+ gsave currentpoint currentpoint translate -90 neg rotate neg exch
+neg exch translate
+ 330 2410 a @beginspecial 50
+ at llx 50 @lly 554 @urx 770 @ury 3600 @rhi @setspecial
+%%BeginDocument: figs/performance_arm.ps
+%!PS-Adobe-2.0
+%%Title: ../doc/figs/performance_arm.ps
+%%Creator: gnuplot 3.7 patchlevel 3
+%%CreationDate: Fri Oct 24 13:10:39 2003
+%%DocumentFonts: (atend)
+%%BoundingBox: 50 50 554 770
+%%Orientation: Landscape
+%%Pages: (atend)
+%%EndComments
+/gnudict 256 dict def
+gnudict begin
+/Color true def
+/Solid true def
+/gnulinewidth 5.000 def
+/userlinewidth gnulinewidth def
+/vshift -46 def
+/dl {10 mul} def
+/hpt_ 31.5 def
+/vpt_ 31.5 def
+/hpt hpt_ def
+/vpt vpt_ def
+/M {moveto} bind def
+/L {lineto} bind def
+/R {rmoveto} bind def
+/V {rlineto} bind def
+/vpt2 vpt 2 mul def
+/hpt2 hpt 2 mul def
+/Lshow { currentpoint stroke M
+  0 vshift R show } def
+/Rshow { currentpoint stroke M
+  dup stringwidth pop neg vshift R show } def
+/Cshow { currentpoint stroke M
+  dup stringwidth pop -2 div vshift R show } def
+/UP { dup vpt_ mul /vpt exch def hpt_ mul /hpt exch def
+  /hpt2 hpt 2 mul def /vpt2 vpt 2 mul def } def
+/DL { Color {setrgbcolor Solid {pop []} if 0 setdash }
+ {pop pop pop Solid {pop []} if 0 setdash} ifelse } def
+/BL { stroke userlinewidth 2 mul setlinewidth } def
+/AL { stroke userlinewidth 2 div setlinewidth } def
+/UL { dup gnulinewidth mul /userlinewidth exch def
+      dup 1 lt {pop 1} if 10 mul /udl exch def } def
+/PL { stroke userlinewidth setlinewidth } def
+/LTb { BL [] 0 0 0 DL } def
+/LTa { AL [1 udl mul 2 udl mul] 0 setdash 0 0 0 setrgbcolor } def
+/LT0 { PL [] 1 0 0 DL } def
+/LT1 { PL [4 dl 2 dl] 0 1 0 DL } def
+/LT2 { PL [2 dl 3 dl] 0 0 1 DL } def
+/LT3 { PL [1 dl 1.5 dl] 1 0 1 DL } def
+/LT4 { PL [5 dl 2 dl 1 dl 2 dl] 0 1 1 DL } def
+/LT5 { PL [4 dl 3 dl 1 dl 3 dl] 1 1 0 DL } def
+/LT6 { PL [2 dl 2 dl 2 dl 4 dl] 0 0 0 DL } def
+/LT7 { PL [2 dl 2 dl 2 dl 2 dl 2 dl 4 dl] 1 0.3 0 DL } def
+/LT8 { PL [2 dl 2 dl 2 dl 2 dl 2 dl 2 dl 2 dl 4 dl] 0.5 0.5 0.5 DL } def
+/Pnt { stroke [] 0 setdash
+   gsave 1 setlinecap M 0 0 V stroke grestore } def
+/Dia { stroke [] 0 setdash 2 copy vpt add M
+  hpt neg vpt neg V hpt vpt neg V
+  hpt vpt V hpt neg vpt V closepath stroke
+  Pnt } def
+/Pls { stroke [] 0 setdash vpt sub M 0 vpt2 V
+  currentpoint stroke M
+  hpt neg vpt neg R hpt2 0 V stroke
+  } def
+/Box { stroke [] 0 setdash 2 copy exch hpt sub exch vpt add M
+  0 vpt2 neg V hpt2 0 V 0 vpt2 V
+  hpt2 neg 0 V closepath stroke
+  Pnt } def
+/Crs { stroke [] 0 setdash exch hpt sub exch vpt add M
+  hpt2 vpt2 neg V currentpoint stroke M
+  hpt2 neg 0 R hpt2 vpt2 V stroke } def
+/TriU { stroke [] 0 setdash 2 copy vpt 1.12 mul add M
+  hpt neg vpt -1.62 mul V
+  hpt 2 mul 0 V
+  hpt neg vpt 1.62 mul V closepath stroke
+  Pnt  } def
+/Star { 2 copy Pls Crs } def
+/BoxF { stroke [] 0 setdash exch hpt sub exch vpt add M
+  0 vpt2 neg V  hpt2 0 V  0 vpt2 V
+  hpt2 neg 0 V  closepath fill } def
+/TriUF { stroke [] 0 setdash vpt 1.12 mul add M
+  hpt neg vpt -1.62 mul V
+  hpt 2 mul 0 V
+  hpt neg vpt 1.62 mul V closepath fill } def
+/TriD { stroke [] 0 setdash 2 copy vpt 1.12 mul sub M
+  hpt neg vpt 1.62 mul V
+  hpt 2 mul 0 V
+  hpt neg vpt -1.62 mul V closepath stroke
+  Pnt  } def
+/TriDF { stroke [] 0 setdash vpt 1.12 mul sub M
+  hpt neg vpt 1.62 mul V
+  hpt 2 mul 0 V
+  hpt neg vpt -1.62 mul V closepath fill} def
+/DiaF { stroke [] 0 setdash vpt add M
+  hpt neg vpt neg V hpt vpt neg V
+  hpt vpt V hpt neg vpt V closepath fill } def
+/Pent { stroke [] 0 setdash 2 copy gsave
+  translate 0 hpt M 4 {72 rotate 0 hpt L} repeat
+  closepath stroke grestore Pnt } def
+/PentF { stroke [] 0 setdash gsave
+  translate 0 hpt M 4 {72 rotate 0 hpt L} repeat
+  closepath fill grestore } def
+/Circle { stroke [] 0 setdash 2 copy
+  hpt 0 360 arc stroke Pnt } def
+/CircleF { stroke [] 0 setdash hpt 0 360 arc fill } def
+/C0 { BL [] 0 setdash 2 copy moveto vpt 90 450  arc } bind def
+/C1 { BL [] 0 setdash 2 copy        moveto
+       2 copy  vpt 0 90 arc closepath fill
+               vpt 0 360 arc closepath } bind def
+/C2 { BL [] 0 setdash 2 copy moveto
+       2 copy  vpt 90 180 arc closepath fill
+               vpt 0 360 arc closepath } bind def
+/C3 { BL [] 0 setdash 2 copy moveto
+       2 copy  vpt 0 180 arc closepath fill
+               vpt 0 360 arc closepath } bind def
+/C4 { BL [] 0 setdash 2 copy moveto
+       2 copy  vpt 180 270 arc closepath fill
+               vpt 0 360 arc closepath } bind def
+/C5 { BL [] 0 setdash 2 copy moveto
+       2 copy  vpt 0 90 arc
+       2 copy moveto
+       2 copy  vpt 180 270 arc closepath fill
+               vpt 0 360 arc } bind def
+/C6 { BL [] 0 setdash 2 copy moveto
+      2 copy  vpt 90 270 arc closepath fill
+              vpt 0 360 arc closepath } bind def
+/C7 { BL [] 0 setdash 2 copy moveto
+      2 copy  vpt 0 270 arc closepath fill
+              vpt 0 360 arc closepath } bind def
+/C8 { BL [] 0 setdash 2 copy moveto
+      2 copy vpt 270 360 arc closepath fill
+              vpt 0 360 arc closepath } bind def
+/C9 { BL [] 0 setdash 2 copy moveto
+      2 copy  vpt 270 450 arc closepath fill
+              vpt 0 360 arc closepath } bind def
+/C10 { BL [] 0 setdash 2 copy 2 copy moveto vpt 270 360 arc closepath fill
+       2 copy moveto
+       2 copy vpt 90 180 arc closepath fill
+               vpt 0 360 arc closepath } bind def
+/C11 { BL [] 0 setdash 2 copy moveto
+       2 copy  vpt 0 180 arc closepath fill
+       2 copy moveto
+       2 copy  vpt 270 360 arc closepath fill
+               vpt 0 360 arc closepath } bind def
+/C12 { BL [] 0 setdash 2 copy moveto
+       2 copy  vpt 180 360 arc closepath fill
+               vpt 0 360 arc closepath } bind def
+/C13 { BL [] 0 setdash  2 copy moveto
+       2 copy  vpt 0 90 arc closepath fill
+       2 copy moveto
+       2 copy  vpt 180 360 arc closepath fill
+               vpt 0 360 arc closepath } bind def
+/C14 { BL [] 0 setdash 2 copy moveto
+       2 copy  vpt 90 360 arc closepath fill
+               vpt 0 360 arc } bind def
+/C15 { BL [] 0 setdash 2 copy vpt 0 360 arc closepath fill
+               vpt 0 360 arc closepath } bind def
+/Rec   { newpath 4 2 roll moveto 1 index 0 rlineto 0 exch rlineto
+       neg 0 rlineto closepath } bind def
+/Square { dup Rec } bind def
+/Bsquare { vpt sub exch vpt sub exch vpt2 Square } bind def
+/S0 { BL [] 0 setdash 2 copy moveto 0 vpt rlineto BL Bsquare } bind def
+/S1 { BL [] 0 setdash 2 copy vpt Square fill Bsquare } bind def
+/S2 { BL [] 0 setdash 2 copy exch vpt sub exch vpt Square fill Bsquare } bind def
+/S3 { BL [] 0 setdash 2 copy exch vpt sub exch vpt2 vpt Rec fill Bsquare } bind def
+/S4 { BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt Square fill Bsquare } bind def
+/S5 { BL [] 0 setdash 2 copy 2 copy vpt Square fill
+       exch vpt sub exch vpt sub vpt Square fill Bsquare } bind def
+/S6 { BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt vpt2 Rec fill Bsquare } bind def
+/S7 { BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt vpt2 Rec fill
+       2 copy vpt Square fill
+       Bsquare } bind def
+/S8 { BL [] 0 setdash 2 copy vpt sub vpt Square fill Bsquare } bind def
+/S9 { BL [] 0 setdash 2 copy vpt sub vpt vpt2 Rec fill Bsquare } bind def
+/S10 { BL [] 0 setdash 2 copy vpt sub vpt Square fill 2 copy exch vpt sub exch vpt Square fill
+       Bsquare } bind def
+/S11 { BL [] 0 setdash 2 copy vpt sub vpt Square fill 2 copy exch vpt sub exch vpt2 vpt Rec fill
+       Bsquare } bind def
+/S12 { BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt2 vpt Rec fill Bsquare } bind def
+/S13 { BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt2 vpt Rec fill
+       2 copy vpt Square fill Bsquare } bind def
+/S14 { BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt2 vpt Rec fill
+       2 copy exch vpt sub exch vpt Square fill Bsquare } bind def
+/S15 { BL [] 0 setdash 2 copy Bsquare fill Bsquare } bind def
+/D0 { gsave translate 45 rotate 0 0 S0 stroke grestore } bind def
+/D1 { gsave translate 45 rotate 0 0 S1 stroke grestore } bind def
+/D2 { gsave translate 45 rotate 0 0 S2 stroke grestore } bind def
+/D3 { gsave translate 45 rotate 0 0 S3 stroke grestore } bind def
+/D4 { gsave translate 45 rotate 0 0 S4 stroke grestore } bind def
+/D5 { gsave translate 45 rotate 0 0 S5 stroke grestore } bind def
+/D6 { gsave translate 45 rotate 0 0 S6 stroke grestore } bind def
+/D7 { gsave translate 45 rotate 0 0 S7 stroke grestore } bind def
+/D8 { gsave translate 45 rotate 0 0 S8 stroke grestore } bind def
+/D9 { gsave translate 45 rotate 0 0 S9 stroke grestore } bind def
+/D10 { gsave translate 45 rotate 0 0 S10 stroke grestore } bind def
+/D11 { gsave translate 45 rotate 0 0 S11 stroke grestore } bind def
+/D12 { gsave translate 45 rotate 0 0 S12 stroke grestore } bind def
+/D13 { gsave translate 45 rotate 0 0 S13 stroke grestore } bind def
+/D14 { gsave translate 45 rotate 0 0 S14 stroke grestore } bind def
+/D15 { gsave translate 45 rotate 0 0 S15 stroke grestore } bind def
+/DiaE { stroke [] 0 setdash vpt add M
+  hpt neg vpt neg V hpt vpt neg V
+  hpt vpt V hpt neg vpt V closepath stroke } def
+/BoxE { stroke [] 0 setdash exch hpt sub exch vpt add M
+  0 vpt2 neg V hpt2 0 V 0 vpt2 V
+  hpt2 neg 0 V closepath stroke } def
+/TriUE { stroke [] 0 setdash vpt 1.12 mul add M
+  hpt neg vpt -1.62 mul V
+  hpt 2 mul 0 V
+  hpt neg vpt 1.62 mul V closepath stroke } def
+/TriDE { stroke [] 0 setdash vpt 1.12 mul sub M
+  hpt neg vpt 1.62 mul V
+  hpt 2 mul 0 V
+  hpt neg vpt -1.62 mul V closepath stroke } def
+/PentE { stroke [] 0 setdash gsave
+  translate 0 hpt M 4 {72 rotate 0 hpt L} repeat
+  closepath stroke grestore } def
+/CircE { stroke [] 0 setdash 
+  hpt 0 360 arc stroke } def
+/Opaque { gsave closepath 1 setgray fill grestore 0 setgray closepath } def
+/DiaW { stroke [] 0 setdash vpt add M
+  hpt neg vpt neg V hpt vpt neg V
+  hpt vpt V hpt neg vpt V Opaque stroke } def
+/BoxW { stroke [] 0 setdash exch hpt sub exch vpt add M
+  0 vpt2 neg V hpt2 0 V 0 vpt2 V
+  hpt2 neg 0 V Opaque stroke } def
+/TriUW { stroke [] 0 setdash vpt 1.12 mul add M
+  hpt neg vpt -1.62 mul V
+  hpt 2 mul 0 V
+  hpt neg vpt 1.62 mul V Opaque stroke } def
+/TriDW { stroke [] 0 setdash vpt 1.12 mul sub M
+  hpt neg vpt 1.62 mul V
+  hpt 2 mul 0 V
+  hpt neg vpt -1.62 mul V Opaque stroke } def
+/PentW { stroke [] 0 setdash gsave
+  translate 0 hpt M 4 {72 rotate 0 hpt L} repeat
+  Opaque stroke grestore } def
+/CircW { stroke [] 0 setdash 
+  hpt 0 360 arc Opaque stroke } def
+/BoxFill { gsave Rec 1 setgray fill grestore } def
+/Symbol-Oblique /Symbol findfont [1 0 .167 1 0 0] makefont
+dup length dict begin {1 index /FID eq {pop pop} {def} ifelse} forall
+currentdict end definefont pop
+end
+%%EndProlog
+%%Page: 1 1
+gnudict begin
+gsave
+50 50 translate
+0.100 0.100 scale
+90 rotate
+0 -5040 translate
+0 setgray
+newpath
+(Helvetica) findfont 140 scalefont setfont
+1.000 UL
+LTb
+1.000 UL
+LTa
+966 420 M
+5996 0 V
+1.000 UL
+LTb
+966 420 M
+63 0 V
+5933 0 R
+-63 0 V
+882 420 M
+( 100) Rshow
+966 736 M
+31 0 V
+5965 0 R
+-31 0 V
+966 921 M
+31 0 V
+5965 0 R
+-31 0 V
+966 1052 M
+31 0 V
+5965 0 R
+-31 0 V
+966 1154 M
+31 0 V
+5965 0 R
+-31 0 V
+966 1237 M
+31 0 V
+5965 0 R
+-31 0 V
+966 1307 M
+31 0 V
+5965 0 R
+-31 0 V
+966 1368 M
+31 0 V
+5965 0 R
+-31 0 V
+966 1422 M
+31 0 V
+5965 0 R
+-31 0 V
+1.000 UL
+LTa
+966 1470 M
+5996 0 V
+1.000 UL
+LTb
+966 1470 M
+63 0 V
+5933 0 R
+-63 0 V
+-6017 0 R
+( 1000) Rshow
+966 1786 M
+31 0 V
+5965 0 R
+-31 0 V
+966 1971 M
+31 0 V
+5965 0 R
+-31 0 V
+966 2102 M
+31 0 V
+5965 0 R
+-31 0 V
+966 2204 M
+31 0 V
+5965 0 R
+-31 0 V
+966 2287 M
+31 0 V
+5965 0 R
+-31 0 V
+966 2357 M
+31 0 V
+5965 0 R
+-31 0 V
+966 2418 M
+31 0 V
+5965 0 R
+-31 0 V
+966 2472 M
+31 0 V
+5965 0 R
+-31 0 V
+1.000 UL
+LTa
+966 2520 M
+5996 0 V
+1.000 UL
+LTb
+966 2520 M
+63 0 V
+5933 0 R
+-63 0 V
+-6017 0 R
+( 10000) Rshow
+966 2836 M
+31 0 V
+5965 0 R
+-31 0 V
+966 3021 M
+31 0 V
+5965 0 R
+-31 0 V
+966 3152 M
+31 0 V
+5965 0 R
+-31 0 V
+966 3254 M
+31 0 V
+5965 0 R
+-31 0 V
+966 3337 M
+31 0 V
+5965 0 R
+-31 0 V
+966 3407 M
+31 0 V
+5965 0 R
+-31 0 V
+966 3468 M
+31 0 V
+5965 0 R
+-31 0 V
+966 3522 M
+31 0 V
+5965 0 R
+-31 0 V
+1.000 UL
+LTa
+966 3570 M
+5996 0 V
+1.000 UL
+LTb
+966 3570 M
+63 0 V
+5933 0 R
+-63 0 V
+-6017 0 R
+( 100000) Rshow
+966 3886 M
+31 0 V
+5965 0 R
+-31 0 V
+966 4071 M
+31 0 V
+5965 0 R
+-31 0 V
+966 4202 M
+31 0 V
+5965 0 R
+-31 0 V
+966 4304 M
+31 0 V
+5965 0 R
+-31 0 V
+966 4387 M
+31 0 V
+5965 0 R
+-31 0 V
+966 4457 M
+31 0 V
+5965 0 R
+-31 0 V
+966 4518 M
+31 0 V
+5965 0 R
+-31 0 V
+966 4572 M
+31 0 V
+5965 0 R
+-31 0 V
+1.000 UL
+LTa
+966 4620 M
+5996 0 V
+1.000 UL
+LTb
+966 4620 M
+63 0 V
+5933 0 R
+-63 0 V
+-6017 0 R
+( 1e+06) Rshow
+1.000 UL
+LTa
+966 420 M
+0 4200 V
+1.000 UL
+LTb
+966 420 M
+0 63 V
+0 4137 R
+0 -63 V
+966 280 M
+( 1) Cshow
+1568 420 M
+0 31 V
+0 4169 R
+0 -31 V
+1920 420 M
+0 31 V
+0 4169 R
+0 -31 V
+2169 420 M
+0 31 V
+0 4169 R
+0 -31 V
+2363 420 M
+0 31 V
+0 4169 R
+0 -31 V
+2521 420 M
+0 31 V
+0 4169 R
+0 -31 V
+2655 420 M
+0 31 V
+0 4169 R
+0 -31 V
+2771 420 M
+0 31 V
+0 4169 R
+0 -31 V
+2873 420 M
+0 31 V
+0 4169 R
+0 -31 V
+1.000 UL
+LTa
+2965 420 M
+0 4200 V
+1.000 UL
+LTb
+2965 420 M
+0 63 V
+0 4137 R
+0 -63 V
+0 -4277 R
+( 10) Cshow
+3566 420 M
+0 31 V
+0 4169 R
+0 -31 V
+3918 420 M
+0 31 V
+0 4169 R
+0 -31 V
+4168 420 M
+0 31 V
+0 4169 R
+0 -31 V
+4362 420 M
+0 31 V
+0 4169 R
+0 -31 V
+4520 420 M
+0 31 V
+0 4169 R
+0 -31 V
+4654 420 M
+0 31 V
+0 4169 R
+0 -31 V
+4770 420 M
+0 31 V
+0 4169 R
+0 -31 V
+4872 420 M
+0 31 V
+0 4169 R
+0 -31 V
+1.000 UL
+LTa
+4963 420 M
+0 4200 V
+1.000 UL
+LTb
+4963 420 M
+0 63 V
+0 4137 R
+0 -63 V
+0 -4277 R
+( 100) Cshow
+5565 420 M
+0 31 V
+0 4169 R
+0 -31 V
+5917 420 M
+0 31 V
+0 4169 R
+0 -31 V
+6167 420 M
+0 31 V
+0 4169 R
+0 -31 V
+6360 420 M
+0 31 V
+0 4169 R
+0 -31 V
+6519 420 M
+0 31 V
+0 4169 R
+0 -31 V
+6652 420 M
+0 31 V
+0 4169 R
+0 -31 V
+6768 420 M
+0 31 V
+0 4169 R
+0 -31 V
+6871 420 M
+0 31 V
+0 4169 R
+0 -31 V
+1.000 UL
+LTa
+6962 420 M
+0 4200 V
+1.000 UL
+LTb
+6962 420 M
+0 63 V
+0 4137 R
+0 -63 V
+0 -4277 R
+( 1000) Cshow
+1.000 UL
+LTb
+966 420 M
+5996 0 V
+0 4200 V
+-5996 0 V
+966 420 L
+140 2520 M
+currentpoint gsave translate 90 rotate 0 0 M
+(Nanoseconds per connection) Cshow
+grestore
+3964 70 M
+(Number of neurons in the four layers) Cshow
+3964 4830 M
+(Performance iPAQ) Cshow
+1.000 UL
+LTb
+6311 4487 M
+(fann) Rshow
+6395 4487 M
+399 0 V
+966 3784 M
+602 -199 V
+601 -210 V
+602 -225 V
+602 -206 V
+601 -176 V
+602 -129 V
+602 -81 V
+601 -43 V
+602 -29 V
+1.000 UL
+LT0
+6311 4347 M
+(fann \(thres\)) Rshow
+6395 4347 M
+399 0 V
+966 2902 M
+602 -209 V
+601 -119 V
+602 -71 V
+602 -34 V
+601 -20 V
+602 -12 V
+602 -3 V
+601 -1 V
+602 3 V
+1.000 UL
+LT1
+6311 4207 M
+(fann \(fix\)) Rshow
+6395 4207 M
+399 0 V
+966 2374 M
+602 -339 V
+601 -323 V
+602 -307 V
+602 -267 V
+3974 962 L
+4576 800 L
+602 -92 V
+601 5 V
+602 156 V
+1.000 UL
+LT4
+6311 4067 M
+(fann \(noopt\)) Rshow
+6395 4067 M
+399 0 V
+966 3778 M
+602 -200 V
+601 -198 V
+602 -220 V
+602 -213 V
+601 -171 V
+602 -126 V
+602 -79 V
+601 -45 V
+602 -27 V
+1.000 UL
+LT2
+6311 3927 M
+(lwnn) Rshow
+6395 3927 M
+399 0 V
+966 3072 M
+602 -277 V
+601 -187 V
+602 -99 V
+602 -48 V
+601 -30 V
+602 -15 V
+602 -6 V
+601 -2 V
+602 2 V
+1.000 UL
+LT3
+6311 3787 M
+(jneural) Rshow
+6395 3787 M
+399 0 V
+966 3761 M
+602 -182 V
+601 -208 V
+602 -217 V
+602 -188 V
+601 -145 V
+602 -102 V
+602 -76 V
+stroke
+grestore
+end
+showpage
+%%Trailer
+%%DocumentFonts: Helvetica
+%%Pages: 1
+
+%%EndDocument
+ @endspecial 2430 2410 a
+ currentpoint grestore moveto
+ 2430 2410 a 330 4659 a Fy(Figure)35
+b(27:)53 b(Graph)36 b(sho)n(wing)f(the)h(n)n(um)n(b)r(er)g(of)g
+(nanoseconds)f(used)h(p)r(er)g(connection)f(as)g(a)330
+4758 y(function)28 b(of)g(the)g(net)n(w)n(ork)e(size,)h(on)h(an)f(iP)-7
+b(A)n(Q.)p Black 455 4957 a(Figure)33 b(27)h(sho)n(ws)f(the)i(p)r
+(erformance)e(graph)h(of)g(the)h(b)r(enc)n(hmarks)e(run)i(on)f(the)h
+(iP)-7 b(A)n(Q.)330 5057 y(The)29 b(\014rst)f(thing)h(whic)n(h)f(is)h
+(noticed,)g(is)f(the)h(fact)g(that)g(the)g(plots)g(do)f(not)h(ha)n(v)n
+(e)e(an)h(S)h(shap)r(e.)330 5157 y(This)j(is)h(b)r(ecause)f(there)g(is)
+g(only)g(a)g(small)g(amoun)n(t)g(of)g(cac)n(he)g(on)g(the)g(iP)-7
+b(A)n(Q)32 b(and)g(that)h(this)330 5256 y(cac)n(he)24
+b(is)i(not)f(suited)h(for)f(storing)f(large)g(arra)n(ys.)33
+b(Muc)n(h)26 b(of)f(the)h(cac)n(he)f(is)g(probably)f(o)r(ccupied)330
+5356 y(b)n(y)30 b(the)g(op)r(erating)f(system.)43 b(The)30
+b(b)r(ottlenec)n(k)g(on)g(the)g(iP)-7 b(A)n(Q)29 b(is)h(the)g(CPU)g
+(running)g(at)f(206)330 5456 y(MHz)d(and)f(without)h(a)f(\015oating)f
+(p)r(oin)n(t)i(unit.)37 b(This)25 b(mak)n(es)f(the)i(sigmoid)f
+(function)h(v)n(ery)e(hard)330 5555 y(to)f(calculate)g(and)g(if)g(w)n
+(e)g(lo)r(ok)g(at)g(results)f(for)h(the)g(smaller)g(net)n(w)n(orks)e
+(on)i(the)h(graph)e(the)h(plots)330 5655 y(are)k(divided)g(in)h(three)g
+(groups.)p Black 1788 5919 a(41)p Black eop end
+%%Page: 42 46
+TeXDict begin 42 45 bop Black 330 70 a Fp(6.4)82 b(Benc)n(hmark)26
+b(Conclusion)1241 b(6)83 b(BENCHMARKS)p 330 103 3000
+4 v Black Black 594 377 a Fy(Library)p 1104 407 4 100
+v 288 w(Nanoseconds)26 b(p)r(er)i(neuron)99 b(Times)27
+b(faster)g(than)h(jneural)p 545 410 2571 4 v 594 480
+a(fann)p 1104 510 4 100 v 934 w(39843.236)831 b(1.008)594
+579 y(fann)28 b(\(thres\))p 1104 609 V 703 w(9626.957)831
+b(4.171)594 679 y(fann)28 b(\(\014x\))p 1104 709 V 835
+w(867.798)790 b(46.272)594 779 y(fann)28 b(\(no)r(opt\))p
+1104 809 V 632 w(40716.392)831 b(0.986)594 878 y(lwnn)p
+1104 908 V 960 w(9768.376)g(4.112)594 978 y(jneural)p
+1104 1008 V 841 w(40154.518)g(1.000)330 1157 y(Figure)27
+b(28:)36 b(The)27 b(results)g(with)h(fully)h(connected)e(net)n(w)n
+(orks)f(consisting)g(of)i(four)f(la)n(y)n(ers)f(with)330
+1256 y(8)h(neurons)g(in)h(eac)n(h,)f(on)g(an)g(iP)-7
+b(A)n(Q.)p Black 455 1522 a(Figure)31 b(28)h(clearly)f(sho)n(ws)h(the)h
+(three)f(groups)f(that)i(the)g(plots)f(are)g(divided)h(in)n(to.)51
+b(The)330 1621 y(\014rst)30 b(group)g(consists)g(of)g(the)h(fann,)h
+(fann)f(\(no)r(opt\))g(and)g(the)g(jneural)f(library)-7
+b(.)45 b(These)30 b(three)330 1721 y(libraries)d(all)g(need)h(to)g
+(calculate)f(the)i(real)e(sigmoid)g(function.)39 b(The)28
+b(second)f(group)g(consists)330 1821 y(of)37 b(the)g(fann)g(\(thres\))g
+(and)g(lwnn)g(libraries)e(whic)n(h)i(do)r(es)f(not)h(need)g(to)g
+(calculate)f(the)h(real)330 1920 y(sigmoid)31 b(function)i(and)f
+(therefore)f(is)h(faster.)50 b(The)32 b(last)g(group)e(consists)i(of)g
+(the)g(fann)g(\(\014x\))330 2020 y(library)-7 b(,)37
+b(whic)n(h)f(is)g(m)n(uc)n(h)g(faster)g(than)g(the)g(other)g(libraries)
+f(b)r(ecause)g(it)i(uses)f(\014xed)g(p)r(oin)n(t)330
+2119 y(n)n(um)n(b)r(ers.)p Black 594 2289 a(Library)p
+1104 2319 V 288 w(Nanoseconds)26 b(p)r(er)i(neuron)99
+b(Times)27 b(faster)g(than)h(jneural)p 545 2322 2571
+4 v 594 2392 a(fann)p 1104 2422 4 100 v 911 w(10,858.245)831
+b(1.207)594 2491 y(fann)28 b(\(thres\))p 1104 2521 V
+679 w(8,272.628)832 b(1.585)594 2591 y(fann)28 b(\(\014x\))p
+1104 2621 V 835 w(188.134)790 b(69.677)594 2691 y(fann)28
+b(\(no)r(opt\))p 1104 2721 V 609 w(11,178.446)831 b(1.173)594
+2790 y(lwnn)p 1104 2820 V 936 w(7,851.955)h(1.669)594
+2890 y(jneural)p 1104 2920 V 818 w(13,108.617)f(1.000)330
+3069 y(Figure)27 b(29:)36 b(The)27 b(results)g(with)h(fully)h
+(connected)e(net)n(w)n(orks)f(consisting)g(of)i(four)f(la)n(y)n(ers)f
+(with)330 3168 y(128)31 b(neurons)g(in)h(eac)n(h,)h(on)f(an)g(iP)-7
+b(A)n(Q)31 b(\(this)i(is)f(the)g(largest)f(net)n(w)n(ork)g(size)h(whic)
+n(h)g(could)g(b)r(e)330 3268 y(executed)c(b)n(y)f(the)h(jneural)f
+(library\).)p Black 455 3488 a(A)n(t)21 b(a)g(la)n(y)n(er)f(size)h(of)h
+(128)e(\(\014gure)h(29\))g(the)h(p)r(er)f(neuron)g(o)n(v)n(erhead)e(is)
+j(not)f(as)g(imp)r(ortan)n(t)g(and)330 3588 y(neither)31
+b(is)g(the)g(time)h(it)f(tak)n(es)f(to)h(calculate)f(the)h(sigmoid)g
+(function.)47 b(What)31 b(is)g(imp)r(ortan)n(t,)330 3687
+y(is)38 b(ho)n(w)g(m)n(uc)n(h)g(the)g(library)f(uses)h(\015oating)g(p)r
+(oin)n(t)g(calculations.)68 b(The)38 b(fann)h(\(\014x\))f(library)330
+3787 y(uses)27 b(no)g(\015oating)g(p)r(oin)n(t)h(calculations)e(when)i
+(executing)f(the)h(library)e(and)i(hence)f(receiv)n(es)f(a)330
+3887 y(h)n(uge)g(p)r(erformance)g(b)r(ene\014t.)37 b(The)27
+b(fann)g(\(\014x\))g(library)f(is)h(almost)f(70)g(times)h(faster)f
+(than)h(the)330 3986 y(jneural)f(library)e(and)i(more)f(than)i(40)e
+(times)h(faster)f(than)h(the)h(lwnn)f(library)-7 b(,)25
+b(whic)n(h)h(really)f(is)330 4086 y(a)i(noticeable)g(p)r(erformance)g
+(increase.)455 4185 y(A)34 b(surprising)g(thing,)i(whic)n(h)f(is)f
+(visible)h(on)f(these)g(\014gures,)i(is)e(ho)n(w)g(close)g(the)h(plot)g
+(for)330 4285 y(the)g(standard)f(fann)h(library)e(is)i(to)f(the)h(plot)
+g(for)f(the)h(jneural)g(library)-7 b(.)57 b(This)35 b(means)f(that)330
+4385 y(all)28 b(the)g(optimizations)g(made)g(to)g(the)g(fann)g(library)
+f(has)h(v)n(ery)f(little)h(in\015uence)h(on)f(ho)n(w)f(fast)330
+4484 y(it)k(p)r(erforms)e(on)h(the)g(iP)-7 b(A)n(Q.)30
+b(Had)g(I)g(not)g(made)g(the)g(\014xed)h(p)r(oin)n(t)f(optimizations,)g
+(then)h(this)330 4584 y(w)n(ould)c(truly)h(ha)n(v)n(e)e(b)r(een)i(a)f
+(depressing)g(b)r(enc)n(hmark.)330 4816 y Fo(6.4)112
+b(Benc)m(hmark)39 b(Conclusion)330 4970 y Fy(The)23 b(jneural)g
+(library)f(w)n(as)g(clearly)g(w)n(orse)g(than)h(the)g(other)g
+(libraries)f(on)h(almost)f(all)h(p)r(oin)n(ts)g(of)330
+5069 y(the)i(b)r(enc)n(hmark)g(tests.)36 b(The)25 b(\014xed)f(p)r(oin)n
+(t)i(implemen)n(tation)f(of)f(the)i(fann)f(library)f(pro)n(v)n(ed)f
+(its)330 5169 y(use)d(b)n(y)g(b)r(eing)g(b)r(oth)h(accurate)e(and)g(v)n
+(ery)g(fast)i(on)e(the)i(iP)-7 b(A)n(Q.)19 b(A)i(p)r(oin)n(t)f(w)n
+(orth)g(noticing)f(is)h(seen)330 5268 y(when)28 b(comparing)e(\014gure)
+g(25)h(with)h(\014gure)f(29.)36 b(These)27 b(t)n(w)n(o)g(\014gures)f
+(sho)n(w)h(ho)n(w)g(the)h(libraries)330 5368 y(p)r(erform)e(on)g(fully)
+g(connected)g(ANNs)h(with)g(four)f(la)n(y)n(ers)e(and)i(128)f(neurons)g
+(in)i(eac)n(h,)f(but)g(on)330 5468 y(di\013eren)n(t)33
+b(mac)n(hines.)52 b(On)33 b(the)g(iP)-7 b(A)n(Q)32 b(the)i(fann)f
+(\(\014x\))g(library)f(uses)h(188.134)d(nanoseconds)330
+5567 y(p)r(er)g(connection,)g(while)f(the)i(jneural)e(library)f(uses)i
+(509.138)d(nanoseconds)h(p)r(er)i(connection)330 5667
+y(on)23 b(the)h(AMD)g(A)n(thlon.)35 b(This)23 b(sho)n(ws)g(that)g(the)h
+(\014xed)f(p)r(oin)n(t)g(fann)h(library)e(is)h(2.7)f(times)i(faster)p
+Black 1788 5919 a(42)p Black eop end
+%%Page: 43 47
+TeXDict begin 43 46 bop Black 330 70 a Fp(6.4)82 b(Benc)n(hmark)26
+b(Conclusion)1241 b(6)83 b(BENCHMARKS)p 330 103 3000
+4 v Black 330 390 a Fy(on)32 b(a)g(206)f(MHz)i(hand-held)f(iP)-7
+b(A)n(Q,)32 b(than)g(the)h(jneural)f(library)f(is)i(on)f(a)g(1400)e
+(MHz)j(AMD)330 490 y(A)n(thlon)28 b(w)n(orkstation.)455
+589 y(It)22 b(is)g(di\016cult)h(to)f(tell)h(whic)n(h)f(library)f(is)h
+(the)g(fastest)g(and)g(most)g(accurate,)g(when)h(compar-)330
+689 y(ing)g(the)h(standard)e(fann)i(library)e(and)h(the)h(lwnn)f
+(library)-7 b(.)34 b(The)24 b(lwnn)g(library)e(is)h(faster)f(at)i(the)
+330 789 y(smaller)32 b(problems)h(due)g(to)h(a)e(highly)h(optimized)h
+(sigmoid)f(function,)i(while)e(the)h(standard)330 888
+y(fann)26 b(library)e(is)h(faster)g(at)g(the)h(larger)d(problems)i(due)
+g(to)g(optimized)h(inner)f(lo)r(ops)g(and)g(cac)n(he)330
+988 y(p)r(erformance.)34 b(These)23 b(b)r(enc)n(hmarks)e(mak)n(es)h(it)
+h(easier)e(to)i(c)n(ho)r(ose)e(a)i(library)-7 b(,)22
+b(when)h(y)n(ou)f(kno)n(w)330 1088 y(whic)n(h)28 b(kind)f(of)h(problem)
+f(y)n(ou)g(should)g(solv)n(e.)455 1187 y(Man)n(y)33 b(di\013eren)n(t)i
+(optimizations)f(where)g(made)h(in)f(the)h(fann)g(and)g(lwnn)g
+(libraries,)f(but)330 1287 y(when)39 b(observing)f(di\013erences)g(b)r
+(et)n(w)n(een)h(\014gure)g(23)f(and)h(\014gure)f(27,)j(three)e
+(optimizations)330 1386 y(app)r(ear)27 b(to)g(b)r(e)h(most)g(e\016cien)
+n(t.)p Black 330 1569 a Fs(Cac)m(he)33 b(optimization)p
+Black 40 w Fy(This)26 b(optimization)g(is)g(only)g(e\013ectiv)n(e)g(on)
+g(the)h(AMD)g(A)n(thlon)g(ma-)538 1669 y(c)n(hine)c(and)g(giv)n(es)f
+(the)i(fann)f(and)h(lwnn)f(libraries)f(a)h(h)n(uge)g(adv)-5
+b(an)n(tage)22 b(on)h(this)g(mac)n(hine.)p Black 330
+1785 a Fs(Fixed)32 b(p)s(oin)m(t)f(optimization)p Black
+40 w Fy(This)i(optimization)g(is)g(only)f(e\013ectiv)n(e)h(on)g(the)g
+(iP)-7 b(A)n(Q)32 b(and)538 1885 y(giv)n(es)26 b(the)i(\014xed)g(p)r
+(oin)n(t)f(fann)h(library)e(a)i(h)n(uge)f(adv)-5 b(an)n(tage)26
+b(on)h(this)h(mac)n(hine.)p Black 330 2001 a Fs(F)-8
+b(ast)32 b(sigmoid)p Black 39 w Fy(This)c(optimization)g(is)g
+(e\013ectiv)n(e)g(on)g(b)r(oth)g(mac)n(hines)g(and)f(giv)n(es)g(the)i
+(lwnn)538 2100 y(and)e(\014xed)h(p)r(oin)n(t)f(fann)h(library)e(a)i
+(minor)f(adv)-5 b(an)n(tage.)455 2283 y(A)31 b(lot)f(can)h(b)r(e)g
+(learned)f(from)g(these)h(b)r(enc)n(hmarks.)46 b(I)31
+b(will)g(no)n(w)f(discuss)g(some)g(of)h(these)330 2383
+y(learnings)39 b(and)h(suggest)g(w)n(a)n(ys)e(of)j(impro)n(ving)e(the)i
+(fann)f(library)f(on)h(the)h(basis)f(of)g(these)330 2482
+y(learnings:)455 2582 y(The)33 b(sigmoid)f(function)i(tak)n(es)e(a)h
+(long)g(time)g(to)g(calculate)g(and)g(optimizations)g(on)g(the)330
+2682 y(time)28 b(used)g(for)f(this)h(function)g(should)f(b)r(e)h
+(implemen)n(ted)g(in)g(the)g(fann)g(library)-7 b(.)455
+2781 y(Sparse)26 b(connected)h(ANNs)h(ha)n(v)n(e)e(serious)f(p)r
+(erformance)h(problems)h(in)g(the)h(fann)f(library)-7
+b(.)330 2881 y(F)g(or)30 b(this)g(reason)f(they)i(should)f(b)r(e)g
+(used)h(with)g(care,)f(but)h(still)f(it)h(seems)f(lik)n(e)g(smaller)f
+(sized)330 2980 y(ANNs)f(could)g(receiv)n(e)e(extra)h(p)r(erformance)f
+(b)n(y)i(decreasing)d(the)j(n)n(um)n(b)r(er)g(of)f(connections.)455
+3080 y(Cac)n(he)j(p)r(erformance)g(is)h(v)n(ery)g(imp)r(ortan)n(t)g
+(for)f(the)i(execution)f(time)h(of)f(ANN)h(libraries,)330
+3180 y(p)r(erhaps)23 b(further)g(impro)n(v)n(emen)n(ts)f(could)i(b)r(e)
+g(receiv)n(ed)e(b)n(y)h(lo)r(oking)g(ev)n(en)g(closer)f(at)h(the)h
+(mem-)330 3279 y(ory)j(accessed)f(b)n(y)h(the)h(fann)g(library)-7
+b(.)p Black 1788 5919 a(43)p Black eop end
+%%Page: 44 48
+TeXDict begin 44 47 bop Black 2642 70 a Fp(7)82 b(CONCLUSION)p
+330 103 3000 4 v Black 330 390 a Fv(7)135 b(Conclusion)330
+572 y Fy(When)25 b(I)g(decided)g(to)f(dev)n(elop)g(the)h(fann)g
+(library)-7 b(,)24 b(I)g(had)h(t)n(w)n(o)f(reasons)e(for)i(dev)n
+(eloping)g(it,)i(the)330 672 y(\014rst)j(reason)f(w)n(as)h(that)h(I)f
+(w)n(an)n(ted)g(to)g(ha)n(v)n(e)g(a)g(fast)g(ANN)i(library)d(whic)n(h)i
+(could)f(b)r(e)h(used)f(on)330 771 y(our)j(rob)r(ot)f([Nissen)d(et)g
+(al.,)f(2003)n(].)52 b(The)33 b(second)e(reason)g(w)n(as)h(that)g(I)h
+(w)n(an)n(ted)f(to)g(ha)n(v)n(e)f(full)330 871 y(con)n(trol)j(of)g(a)h
+(fast)g(ANN)g(library)-7 b(,)36 b(whic)n(h)f(could)f(b)r(e)i(used)e(in)
+h(m)n(y)g(master)f(thesis.)59 b(As)35 b(the)330 971 y(pro)5
+b(ject)32 b(grew,)g(a)g(third)g(reason)f(b)r(ecame)h(more)f(and)h(more)
+g(eviden)n(t,)h(I)f(w)n(an)n(ted)g(to)g(mak)n(e)f(a)330
+1070 y(library)26 b(whic)n(h)i(w)n(ould)f(b)r(e)h(used)g(b)n(y)f(other)
+g(dev)n(elop)r(ers.)455 1170 y(These)h(three)h(reasons)e(for)i(dev)n
+(eloping)f(the)h(fann)g(library)f(had)h(di\013eren)n(t)g(requiremen)n
+(ts.)330 1269 y(If)35 b(the)g(library)e(should)i(b)r(e)g(used)f(on)g
+(the)h(rob)r(ot,)h(it)f(should)f(b)r(e)h(fast)g(on)f(systems)g(with)h
+(no)330 1369 y(\015oating)23 b(p)r(oin)n(t)g(pro)r(cessor.)33
+b(If)24 b(the)g(library)e(should)h(b)r(e)h(used)f(in)h(m)n(y)f(master)f
+(thesis,)j(it)e(should)330 1469 y(b)r(e)31 b(fast)f(on)g(standard)f(w)n
+(orkstation)g(mac)n(hines)g(and)i(it)f(should)g(b)r(e)h(v)n(ery)e(v)n
+(ersatile)g(to)h(allo)n(w)330 1568 y(for)25 b(new)g(functionalit)n(y)h
+(to)f(b)r(e)h(implemen)n(ted.)37 b(If)26 b(the)g(library)e(should)h(b)r
+(e)h(used)f(b)n(y)h(others,)f(it)330 1668 y(should)i(b)r(e)h(b)r(oth)g
+(fast,)g(v)n(ersatile)e(and)i(easy)e(to)i(use.)455 1768
+y(I)e(knew)h(that)g(it)h(w)n(ould)e(not)h(b)r(e)g(easy)f(to)h(dev)n
+(elop)f(a)h(\014xed)g(p)r(oin)n(t)g(v)n(ersion)e(of)i(the)g(library)-7
+b(,)330 1867 y(but)23 b(I)f(also)f(knew)h(that)h(it)f(could)g(b)r(e)h
+(done.)35 b(During)22 b(the)h(dev)n(elopmen)n(t)e(of)h(the)h(library)e
+(sev)n(eral)330 1967 y(di\013eren)n(t)k(metho)r(ds)g(of)g(a)n(v)n
+(oiding)d(in)n(teger)i(o)n(v)n(er\015o)n(w)e(w)n(as)i(suggested)g
+(\(see)h(section)f(4.4\),)h(but)g(I)330 2066 y(think)h(the)f(metho)r(d)
+h(I)f(\014nally)g(c)n(hose)f(w)n(as)g(the)i(most)f(elegan)n(t.)35
+b(The)25 b(\014xed)h(p)r(oin)n(t)f(fann)g(library)330
+2166 y(w)n(as)c(a)h(h)n(uge)g(success)g(in)h(all)f(the)h(b)r(enc)n
+(hmarks,)f(it)h(w)n(as)e(accurate)h(in)g(the)h(qualit)n(y)f(b)r(enc)n
+(hmarks)330 2266 y(and)j(it)g(w)n(as)e(more)h(than)h(40)f(times)h
+(faster)f(than)h(all)f(the)i(other)e(libraries)f(in)i(the)g(p)r
+(erformance)330 2365 y(b)r(enc)n(hmark)i(on)g(the)h(iP)-7
+b(A)n(Q.)455 2465 y(The)33 b(aim)g(for)f(the)i(\015oating)e(p)r(oin)n
+(t)h(library)-7 b(,)33 b(w)n(as)f(to)h(b)r(e)h(v)n(ery)e(fast)h(while)g
+(still)h(allo)n(wing)330 2565 y(b)r(oth)28 b(fully)g(and)g(sparse)e
+(connected)i(ANNs)g(to)g(function.)38 b(This)27 b(pro)n(v)n(ed)f(a)i
+(bigger)e(c)n(hallenge)330 2664 y(than)36 b(\014rst)g(exp)r(ected)h
+(and)f(m)n(y)g(\014rst)g(implemen)n(tation)g(did)h(not)f(meet)h(the)f
+(demands)g(\(see)330 2764 y(section)27 b(4.2\).)36 b(The)28
+b(second)e(implemen)n(tation)i(did)g(ho)n(w)n(ev)n(er,)d(meet)j(the)g
+(demands)f(although)330 2863 y(it)d(is)f(only)h(faster)f(than)g(the)h
+(lwnn)g(library)e(in)i(some)f(situations.)35 b(This)24
+b(sho)n(ws,)f(that)h(although)330 2963 y(the)k(library)e(is)i(fast,)f
+(there)h(is)f(still)h(ro)r(om)f(for)g(impro)n(v)n(emen)n(t.)455
+3063 y(If)35 b(the)h(fann)f(library)f(should)h(b)r(e)h(used)f(b)n(y)g
+(other)g(dev)n(elop)r(ers,)h(sp)r(eed)f(is)h(not)f(the)g(only)330
+3162 y(requiremen)n(t.)47 b(Just)31 b(as)g(imp)r(ortan)n(t)g
+(requiremen)n(ts)f(are,)i(that)f(the)h(library)e(should)h(b)r(e)h(easy)
+330 3262 y(to)e(use)f(and)h(install,)g(w)n(ell)g(do)r(cumen)n(ted)g
+(and)f(v)n(ersatile.)42 b(The)30 b(fann)g(library)f(is)g(clearly)g
+(easy)330 3362 y(to)23 b(use,)h(as)e(sho)n(wn)g(in)h(\014gure)g(9)f
+(and)h(\014gure)f(11.)35 b(It)23 b(is)g(also)f(v)n(ersatile)f(as)i(sho)
+n(wn)f(in)h(section)g(5.3,)330 3461 y(but)32 b(what)e(ab)r(out,)i(easy)
+e(to)h(install)g(and)g(w)n(ell)f(do)r(cumen)n(ted?)48
+b(No)30 b(p)r(olished)h(install)g(system)330 3561 y(accompanies)j(the)i
+(library)-7 b(,)37 b(hence)f(installation)f(is)g(not)h(easy)-7
+b(,)37 b(still)f(it)g(should)g(not)f(b)r(e)h(to)r(o)330
+3660 y(di\016cult)c(to)e(install)h(the)g(library)-7 b(.)45
+b(The)31 b(user's)f(guide)h(do)r(cumen)n(ts)g(ho)n(w)f(the)h(library)e
+(should)330 3760 y(b)r(e)39 b(used,)i(but)e(it)g(do)r(es)g(not)f
+(include)h(a)f(complete)h(reference)e(man)n(ual.)70 b(App)r(endix)39
+b(B.1.1)330 3860 y Ft(fann.h)e Fy(can)i(function)i(as)e(a)g(reference)f
+(man)n(ual,)k(but)f(it)f(is)f(not)h(an)f(ideal)g(solution.)73
+b(In)330 3959 y(conclusion,)24 b(the)g(library)e(could)i(easily)f(b)r
+(e)h(used)g(b)n(y)f(other)h(dev)n(elop)r(ers,)f(but)h(some)f(w)n(ork)g
+(still)330 4059 y(needs)k(to)h(b)r(e)g(done)f(in)h(order)e(to)i(mak)n
+(e)f(it)h(app)r(ealing)f(to)g(a)g(broad)g(audience.)455
+4159 y(It)39 b(is)h(sometimes)f(argued)f(that)i(p)r(erformance)e
+(engineering)g(is)i(not)f(a)g(real)f(computer)330 4258
+y(science,)22 b(b)r(ecause)e(new)h(algorithms)e(are)g(not)i(created.)34
+b(I)21 b(do)f(ho)n(w)n(ev)n(er)e(not)j(share)f(this)g(opinion)330
+4358 y(and)40 b(will)h(no)n(w)f(giv)n(e)g(a)g(short)g(example)h(to)f
+(illustrate)g(the)h(imp)r(ortance)g(of)f(p)r(erformance)330
+4457 y(engineering.)35 b(On)25 b(the)h(AMD)h(A)n(thlon)f(the)g(jneural)
+f(library)f(uses)h(509.138)e(nanoseconds)h(p)r(er)330
+4557 y(connection)k(in)h(a)f(fully)h(connected)g(ANN)g(with)g(four)f
+(la)n(y)n(ers)f(and)h(128)g(neurons)f(in)i(eac)n(h,)f(on)330
+4657 y(the)h(iP)-7 b(A)n(Q)28 b(the)h(\014xed)g(p)r(oin)n(t)g(fann)g
+(library)f(uses)g(188.134)e(nanoseconds)h(p)r(er)i(connection)f(on)330
+4756 y(a)h(similar)g(ANN.)i(This)e(is)h(2.7)e(times)i(faster)f(than)h
+(the)g(jneural)f(library)g(and)g(although)g(it)h(is)330
+4856 y(probably)k(p)r(ossible)h(to)g(buy)g(a)g(computer,)h(whic)n(h)f
+(will)g(execute)g(the)h(jneural)f(library)e(just)330
+4956 y(as)c(fast)g(as)g(the)h(\014xed)g(p)r(oin)n(t)f(library)g(on)g
+(the)h(iP)-7 b(A)n(Q,)29 b(then)h(it)g(w)n(ould)f(not)g(b)r(e)h(p)r
+(ossible)f(to)h(\014t)330 5055 y(this)22 b(computer)f(in)n(to)h(y)n
+(our)e(p)r(o)r(c)n(k)n(et.)35 b(This)21 b(clearly)g(illustrates)g(that)
+h(sometimes)f(p)r(erformance)330 5155 y(engineering)26
+b(is)i(the)g(only)f(c)n(hoice.)455 5254 y(I)39 b(am)f(most)h
+(satis\014ed)f(with)i(the)f(result)g(of)g(this)g(pro)5
+b(ject,)41 b(the)e(requiremen)n(ts)f(for)h(the)330 5354
+y(library)24 b(where)h(met)h(and)f(the)h(p)r(erformance)e(of)h(the)h
+(library)e(exceeded)h(m)n(y)g(exp)r(ectations.)36 b(It)330
+5454 y(has)25 b(b)r(een)g(a)g(fun)h(c)n(hallenge)e(to)h(dev)n(elop)f
+(the)i(fann)f(library)f(and)h(I)g(lo)r(ok)f(forw)n(ard)g(to)h
+(releasing)330 5553 y(it)j(on)f(SourceF)-7 b(orge.net.)p
+Black 1788 5919 a(44)p Black eop end
+%%Page: 45 49
+TeXDict begin 45 48 bop Black 330 70 a Fp(7.1)82 b(F)-7
+b(uture)28 b(W)-7 b(ork)1657 b(7)82 b(CONCLUSION)p 330
+103 3000 4 v Black 330 390 a Fo(7.1)112 b(F)-9 b(uture)38
+b(W)-9 b(ork)330 543 y Fy(After)26 b(the)g(library)f(has)g(b)r(een)h
+(released)f(on)h(SourceF)-7 b(orge.net,)24 b(a)h(few)i(c)n(hanges)d
+(will)i(b)r(e)g(made)330 643 y(to)33 b(mak)n(e)g(installation)g(of)h
+(the)g(library)e(easier,)i(but)g(n)n(umerous)e(other)h(additions)g
+(could)h(b)r(e)330 743 y(made)27 b(to)h(the)g(library)-7
+b(.)35 b(In)28 b(this)g(section)f(I)h(will)g(discuss)f(some)g(of)h
+(these)f(additions.)455 842 y(Man)n(y)k(di\013eren)n(t)g(algorithms)g
+(can)g(b)r(e)h(used)g(for)f(training)g(ANNs,)j(it)e(w)n(ould)f(b)r(e)h
+(nice)g(to)330 942 y(b)r(e)38 b(able)f(to)g(c)n(ho)r(ose)f(from)h(some)
+g(of)g(these)h(algorithms)e(in)h(the)h(fann)g(library)-7
+b(.)65 b(As)37 b(a)g(\014rst)330 1042 y(addition)29 b(it)h(w)n(ould)f
+(b)r(e)h(nice)f(ha)n(v)n(e)f(a)h(b)r(etter)h(gradien)n(t)e(descen)n(t)h
+(algorithm)f(lik)n(e)h(e.g.)42 b(quic)n(k-)330 1141 y(prop)30
+b([F)-7 b(ahlman,)28 b(1988)n(])j(or)f(RPR)n(OP)f([Riedmiller)f(and)g
+(Braun,)e(1993)n(],)32 b(but)g(later)e(it)i(w)n(ould)330
+1241 y(b)r(e)e(nice)g(to)f(apply)h(more)f(general)f(purp)r(ose)h
+(optimization)h(tec)n(hniques)f(lik)n(e)h(e.g.)42 b(sim)n(ulated)330
+1340 y(annealing)27 b(\(p)r(erhaps)g(this)h(algorithm)e(w)n(ould)h(do)h
+(a)f(b)r(etter)h(job)g(on)f(the)h(th)n(yroid)f(problem\).)455
+1440 y(A)n(t)32 b(this)h(p)r(oin)n(t)g(only)f(t)n(w)n(o)g(activ)-5
+b(ation)32 b(functions)h(exists)f(in)h(the)g(fann)f(library)g
+(\(sigmoid)330 1540 y(and)40 b(threshold\).)74 b(More)40
+b(activ)-5 b(ation)39 b(functions)i(could)f(easily)f(b)r(e)i(added,)i
+(lik)n(e)d(e.g.)74 b(the)330 1639 y(h)n(yp)r(erb)r(olic)27
+b(tangen)n(t.)37 b(This)27 b(activ)-5 b(ation)27 b(function)i(has)e(an)
+g(output)h(in)g(the)g(range)e(of)i(-1)f(to)g(1,)330 1739
+y(while)f(the)g(other)e(t)n(w)n(o)h(activ)-5 b(ation)25
+b(functions)h(has)f(an)g(output)h(in)g(the)g(range)e(of)h(0)g(to)h(1.)
+35 b(T)-7 b(ests)330 1839 y(ha)n(v)n(e)24 b(sho)n(wn)g(that)h(co)r
+(ding)g(binary)f(input)i(as)e(-1)h(and)g(1)f(is)h(b)r(etter)g(than)h
+(co)r(ding)e(it)i(as)e(0)h(and)f(1)330 1938 y([Sarle,)j(2002)n(],)f
+(whic)n(h)f(in)h(e\013ect)g(w)n(ould)e(also)h(mak)n(e)f(an)h(ANN)h(w)n
+(ork)e(b)r(etter)i(if)g(the)g(activ)-5 b(ation)330 2038
+y(function)33 b(used)f(for)g(the)h(hidden)g(la)n(y)n(ers)d(ga)n(v)n(e)h
+(an)h(output)h(in)f(the)h(range)e(of)h(-1)g(to)g(1.)51
+b(Since)330 2137 y(the)25 b(sigmoid)f(function)g(can)h(b)r(e)f(altered)
+g(to)g(giv)n(e)g(an)g(output)h(in)g(the)f(range)g(of)g(-1)g(to)g(1,)h
+(b)n(y)f(the)330 2237 y(follo)n(wing)31 b(equation:)46
+b Fm(y)s Fy(\()p Fm(x)p Fy(\))32 b(=)e(2)22 b Fn(\002)f
+Fm(sig)s(moid)p Fy(\()p Fm(x)p Fy(\))h Fn(\000)f Fy(1,)33
+b(the)g(range)e(of)h(the)h(output)g(from)f(the)330 2337
+y(activ)-5 b(ation)25 b(functions)g(could)g(b)r(e)h(a)f(separate)f
+(parameter,)g(whic)n(h)h(is)g(not)g(determined)h(b)n(y)f(the)330
+2436 y(t)n(yp)r(e)j(of)f(activ)-5 b(ation)27 b(function.)455
+2536 y(The)g(cost)g(of)h(calculating)f(the)h(activ)-5
+b(ation)27 b(functions)h(could)f(b)r(e)h(optimized.)38
+b(This)27 b(could)330 2636 y(either)h(b)r(e)g(done)g(b)n(y)g(using)g
+(the)g(step)n(wise)f(linear)h(activ)-5 b(ation)27 b(function)i(as)e
+(used)h(in)h(the)f(\014xed)330 2735 y(p)r(oin)n(t)g(library)-7
+b(,)26 b(or)h(b)n(y)g(using)g(a)h(table)f(lo)r(okup)g(as)g(in)h(the)g
+(lwnn)g(library)-7 b(.)455 2835 y(It)38 b(seems)g(lik)n(e)g(fully)h
+(connected)f(ANNs)h(are)e(usually)h(faster)g(than)g(sparse)f(connected)
+330 2934 y(ANNs,)45 b(it)c(w)n(ould)f(ho)n(w)n(ev)n(er)f(still)i(b)r(e)
+g(a)f(go)r(o)r(d)g(idea)h(to)f(add)h(an)g(optimal)f(brain)g(damage)330
+3034 y(algorithm)26 b([LeCun)i(et)g(al.,)f(1990)n(])h(whic)n(h)g(could)
+f(remo)n(v)n(e)f(un)n(used)i(connections.)455 3134 y(If)g(the)h(fann)f
+(library)f(should)h(b)r(e)g(used)g(in)g(dev)n(eloping)f(a)h(learning)f
+(game)g(b)r(ot)i(for)e(Quak)n(e)330 3233 y(I)r(I)r(I)34
+b(Arena,)f(a)h(reinforcemen)n(t)f(learning)f(framew)n(ork)g(should)h(b)
+r(e)h(dev)n(elop)r(ed.)55 b(This)34 b(frame-)330 3333
+y(w)n(ork)f(could)h(either)g(b)r(e)h(a)e(part)h(of)g(the)h(fann)f
+(library)-7 b(,)35 b(or)e(it)i(could)f(b)r(e)h(a)f(separate)e(library)
+330 3433 y(whic)n(h)h(dep)r(end)h(on)e(the)i(fann)f(library)f(for)g
+(ANN)i(supp)r(ort.)53 b(I)33 b(think)g(dev)n(eloping)f(the)i(rein-)330
+3532 y(forcemen)n(t)c(learning)f(framew)n(ork)f(as)i(an)g(indep)r
+(enden)n(t)h(library)e(w)n(ould)g(b)r(e)i(a)f(go)r(o)r(d)g(idea,)g(to)
+330 3632 y(a)n(v)n(oid)c(confusion)h(of)h(what)f(the)h(primary)f(ob)5
+b(jectiv)n(es)26 b(of)i(the)g(fann)g(library)e(are.)455
+3731 y(All)h(of)h(these)f(additions)g(add)g(new)h(functionalit)n(y)f
+(to)h(the)f(library)-7 b(,)27 b(but)h(other)e(additions,)330
+3831 y(whic)n(h)g(do)g(not)h(add)f(functionalit)n(y)g(but)h(rather)f
+(impro)n(v)n(e)f(the)i(existing)f(functionalit)n(y)-7
+b(,)26 b(could)330 3931 y(also)h(b)r(e)h(prop)r(osed.)35
+b(Some)28 b(of)f(these)h(additions)f(could)h(b)r(e:)p
+Black 455 4113 a Fn(\017)p Black 41 w Fy(Add)h(a)g(C++)f(wrapp)r(er)g
+(to)h(allo)n(w)f(a)g(more)h(ob)5 b(ject)28 b(orien)n(ted)h(approac)n
+(h,)e(to)i(using)g(the)538 4213 y(library)-7 b(.)p Black
+455 4329 a Fn(\017)p Black 41 w Fy(Rewrite)25 b(the)i(inner)e(lo)r(op)h
+(the)g(execution)g(function)g(in)h(assem)n(bler)d(\(p)r(erhaps)i(with)g
+(use)538 4429 y(of)h(the)h(MMX)g(instruction)g(set\),)g(for)f(extra)f
+(p)r(erformance.)p Black 455 4545 a Fn(\017)p Black 41
+w Fy(Add)33 b(the)g(p)r(ossibilit)n(y)f(of)h(more)f(precision)f(to)i
+(the)g(\014xed)g(p)r(oin)n(t)f(library)-7 b(,)33 b(b)n(y)g(allo)n(wing)
+538 4645 y(the)28 b(users)e(to)i(c)n(hose)e(the)i Ft(long)42
+b(int)27 b Fy(t)n(yp)r(e)g(as)g(in)n(ternal)g(represen)n(tation.)p
+Black 455 4761 a Fn(\017)p Black 41 w Fy(The)d(la)n(y)n(er)g(sizes)g
+(are)g(giv)n(en)g(as)g(parameters)f(to)i(the)g Ft(fann)p
+2387 4761 27 4 v 30 w(create)d Fy(function,)k(in)g(e\013ect)538
+4861 y(making)h(the)h(n)n(um)n(b)r(er)g(of)g(la)n(y)n(ers)e(a)h
+(parameter)g(whic)n(h)h(should)g(b)r(e)g(kno)n(wn)f(at)h(compile)538
+4960 y(time.)35 b(It)24 b(w)n(ould)f(b)r(e)g(nice)h(to)f(add)g(another)
+f(create)g(function)i(whic)n(h)f(do)g(not)g(ha)n(v)n(e)f(these)538
+5060 y(limitations.)455 5242 y(Hop)r(efully)27 b(man)n(y)f(of)g(these)h
+(additions)f(will)g(b)r(e)h(implemen)n(ted,)h(I)e(will)h(try)f(to)g
+(implemen)n(t)330 5342 y(some)39 b(of)h(them)g(b)r(efore)g(I)f(start)h
+(m)n(y)f(master)g(thesis.)73 b(During)40 b(m)n(y)f(master)g(thesis)h(I)
+g(will)330 5442 y(probably)c(implemen)n(t)h(some)g(of)g(the)g
+(remaining)f(additions)h(and)g(I)g(will)g(most)g(lik)n(ely)f(also)330
+5541 y(implemen)n(t)28 b(additions)f(not)h(men)n(tioned)g(here.)p
+Black 1788 5919 a(45)p Black eop end
+%%Page: 46 50
+TeXDict begin 46 49 bop Black 330 70 a Fp(REFERENCES)1857
+b(REFERENCES)p 330 103 3000 4 v Black 330 390 a Fv(References)p
+Black 330 572 a Fy([Anderson,)27 b(1995])p Black 40 w(Anderson,)22
+b(J.)h(A.)f(\(1995\).)27 b Fd(A)n(n)d(Intr)l(o)l(duction)g(to)h(Neur)l
+(al)g(Networks)p Fy(.)j(The)418 672 y(MIT)f(Press.)p
+Black 330 838 a([Anguita,)h(1993])p Black 39 w(Anguita,)g(D.)g
+(\(1993\).)36 b(Matrix)27 b(bac)n(k)f(propagation)g(v1.1.)p
+Black 330 1004 a([Ben)n(tley)-7 b(,)27 b(1982])p Black
+40 w(Ben)n(tley)-7 b(,)27 b(J.)h(L.)g(\(1982\).)35 b
+Fd(Writing)30 b(E\016cient)g(Pr)l(o)l(gr)l(ams)p Fy(.)38
+b(Pren)n(tice-Hall.)p Black 330 1170 a([Blak)n(e)27 b(and)g(Merz,)g
+(1998])p Black 40 w(Blak)n(e,)f(C.)i(and)f(Merz,)g(C.)g(\(1998\).)36
+b(UCI)27 b(rep)r(ository)f(of)i(mac)n(hine)418 1269 y(learning)e
+(databases.)418 1369 y(h)n(ttp://www.ics.uci.edu/)p Fn(\030)p
+Fy(mlearn/MLRep)r(ository)-7 b(.h)n(tml.)p Black 330
+1535 a([Darrington,)26 b(2003])p Black 40 w(Darrington,)g(J.)i
+(\(2003\).)35 b(Libann.)418 1635 y(h)n(ttp://www.nongn)n
+(u.org/libann/index.h)n(tml.)p Black 330 1801 a([F)-7
+b(ahlman,)28 b(1988])p Black 39 w(F)-7 b(ahlman,)63 b(S.)56
+b(E.)g(\(1988\).)120 b(F)-7 b(aster-learning)53 b(v)-5
+b(ariations)55 b(on)g(bac)n(k-)418 1900 y(propagation:)34
+b(An)28 b(emp)r(erical)g(study)-7 b(.)p Black 330 2066
+a([FSF,)28 b(1999])p Black 40 w(FSF,)g(F.)g(S.)g(F.)g(\(1999\).)35
+b(Gn)n(u)28 b(lesser)f(general)f(public)i(license.)418
+2166 y(h)n(ttp://www.fsf.org/cop)n(yleft/lesser.h)n(tml.)p
+Black 330 2332 a([Hassoun,)f(1995])p Black 39 w(Hassoun,)40
+b(M.)e(H.)h(\(1995\).)66 b Fd(F)-6 b(undamentals)39 b(of)h(A)n
+(rti\014cial)g(Neur)l(al)f(Net-)418 2432 y(works)p Fy(.)e(The)28
+b(MIT)g(Press.)p Black 330 2598 a([Heller,)g(2002])p
+Black 39 w(Heller,)g(J.)f(\(2002\).)35 b(Jet's)28 b(neural)f(library)-7
+b(.)418 2697 y(h)n(ttp://www.v)n(oltar.org/jneural/jneural)p
+1829 2697 25 4 v 24 w(do)r(c/.)p Black 330 2863 a([Hertz)28
+b(et)f(al.,)h(1991])p Black 39 w(Hertz,)e(J.,)f(Krogh,)e(A.,)j(and)e(P)
+n(almer,)g(R.)h(G.)g(\(1991\).)30 b Fd(Intr)l(o)l(duction)d(to)418
+2963 y(The)j(The)l(ory)i(of)e(Neur)l(al)g(Computing)p
+Fy(.)37 b(Addison-W)-7 b(esley)27 b(Publishing)h(Compan)n(y)-7
+b(.)p Black 330 3129 a([IDS,)28 b(2000])p Black 40 w(IDS,)g(I.)g(S.)g
+(\(2000\).)35 b(Quak)n(e)27 b(I)r(I)r(I)h(arena.)418
+3229 y(h)n(ttp://www.idsoft)n(w)n(are.com/games/quak)n(e/)o(quak)m
+(e3-a)o(re)o(na/.)p Black 330 3395 a([Kaelbling)f(et)h(al.,)f(1996])p
+Black 40 w(Kaelbling,)g(L.)h(P)-7 b(.,)28 b(Littman,)g(M.)h(L.,)f(and)g
+(Mo)r(ore,)f(A.)i(P)-7 b(.)27 b(\(1996\).)418 3494 y(Reinforcemen)n(t)
+36 b(learning:)55 b(A)37 b(surv)n(ey)-7 b(.)63 b Fd(Journal)39
+b(of)g(A)n(rti\014cial)g(Intel)t(ligenc)l(e)g(R)l(ese)l(ar)l(ch)p
+Fy(,)418 3594 y(4:237{285.)p Black 330 3760 a([LeCun)28
+b(et)g(al.,)f(1990])p Black 40 w(LeCun,)34 b(Y.,)h(Denk)n(er,)f(J.,)h
+(Solla,)f(S.,)h(Ho)n(w)n(ard,)e(R.)g(E.,)i(and)e(Jac)n(k)n(el,)418
+3860 y(L.)f(D.)h(\(1990\).)49 b(Optimal)32 b(brain)g(damage.)49
+b(In)33 b(T)-7 b(ouretzky)g(,)32 b(D.)h(S.,)h(editor,)f
+Fd(A)l(dvanc)l(es)h(in)418 3959 y(Neur)l(al)29 b(Information)i(Pr)l(o)l
+(c)l(essing)f(Systems)g(II)p Fy(,)d(San)h(Mateo,)f(CA.)h(Morgan)e
+(Kau\013man.)p Black 330 4125 a([Nissen)i(et)f(al.,)h(2003])p
+Black 39 w(Nissen,)k(S.,)g(Damkj\032r,)f(J.,)g(Hansson,)g(J.,)g
+(Larsen,)f(S.,)i(and)e(Jensen,)418 4225 y(S.)k(\(2003\).)54
+b(Real-time)33 b(image)g(pro)r(cessing)g(of)g(an)h(ipaq)f(based)h(rob)r
+(ot)f(with)h(fuzzy)g(logic)418 4325 y(\(fuzzy\).)418
+4424 y(h)n(ttp://www.hamster.dk/~purple/rob)r(ot/fuzzy/w)n(eblog/)o(.)p
+Black 330 4590 a([Nissen)28 b(et)f(al.,)h(2002])p Black
+39 w(Nissen,)g(S.,)g(Larsen,)e(S.,)i(and)g(Jensen,)f(S.)h(\(2002\).)35
+b(Real-time)28 b(image)418 4690 y(pro)r(cessing)e(of)h(an)h(iP)-7
+b(A)n(Q)26 b(based)i(rob)r(ot)e(\(iBOT\).)418 4790 y(h)n
+(ttp://www.hamster.dk/~purple/rob)r(ot/iBOT/rep)r(or)o(t.p)r(df.)p
+Black 330 4956 a([OSDN,)i(2003])p Black 40 w(OSDN,)g(O.)f(S.)h(D.)g(N.)
+g(\(2003\).)36 b(Sourceforge.net.)418 5055 y(h)n
+(ttp://sourceforge.net/.)p Black 330 5221 a([P)n(endleton,)27
+b(1993])p Black 40 w(P)n(endleton,)g(R.)g(C.)h(\(1993\).)36
+b(Doing)27 b(it)h(fast.)418 5321 y(h)n
+(ttp://www.gameprogrammer.com/4-\014xed.h)n(tml.)p Black
+330 5487 a([Prec)n(helt,)f(1994])p Black 39 w(Prec)n(helt,)f(L.)h
+(\(1994\).)34 b(Prob)r(en1)25 b({)i(a)f(set)h(of)f(neural)g(net)n(w)n
+(ork)g(b)r(enc)n(hmark)418 5587 y(problems)g(and)i(b)r(enc)n(hmarking)e
+(rules.)p Black 1788 5919 a(46)p Black eop end
+%%Page: 47 51
+TeXDict begin 47 50 bop Black 330 70 a Fp(REFERENCES)1857
+b(REFERENCES)p 330 103 3000 4 v Black Black 330 390 a
+Fy([Riedmiller)28 b(and)f(Braun,)g(1993])p Black 40 w(Riedmiller,)f(M.)
+g(and)f(Braun,)h(H.)g(\(1993\).)32 b(A)26 b(direct)g(adap-)418
+490 y(tiv)n(e)38 b(metho)r(d)h(for)f(faster)g(bac)n(kpropagation)e
+(learning:)58 b(The)38 b(RPR)n(OP)f(algorithm.)69 b(In)418
+589 y Fd(Pr)l(o)l(c.)26 b(of)h(the)f(IEEE)h(Intl.)f(Conf.)h(on)f(Neur)l
+(al)g(Networks)p Fy(,)f(pages)d(586{591,)f(San)i(F)-7
+b(rancisco,)418 689 y(CA.)p Black 330 855 a([Sarle,)27
+b(2002])p Black 40 w(Sarle,)f(W.)i(S.)g(\(2002\).)36
+b(Neural)27 b(net)n(w)n(ork)f(faq.)418 955 y
+(ftp://ftp.sas.com/pub/neural/F)-9 b(A)n(Q2.h)n(tml#A)p
+2063 955 25 4 v 27 w(binary)i(.)p Black 330 1121 a([Soft)n(w)n(are,)26
+b(2002])p Black 40 w(Soft)n(w)n(are,)g(W.)i(\(2002\).)36
+b(Ann++.)418 1220 y(h)n(ttp://sa)n(v)-5 b(annah.nongn)n(u.org/pro)5
+b(jects/a)o(nnpp/.)p Black 330 1386 a([T)-7 b(ettamanzi)28
+b(and)f(T)-7 b(omassini,)27 b(2001])p Black 39 w(T)-7
+b(ettamanzi,)31 b(A.)f(and)g(T)-7 b(omassini,)29 b(M.)i(\(2001\).)42
+b Fd(Soft)418 1486 y(Computing)p Fy(.)37 b(Springer-V)-7
+b(erlag.)p Black 330 1652 a([v)i(an)28 b(Rossum,)f(2003])p
+Black 39 w(v)-5 b(an)28 b(Rossum,)f(P)-7 b(.)27 b(\(2003\).)36
+b(Ligh)n(t)n(w)n(eigh)n(t)26 b(neural)h(net)n(w)n(ork.)418
+1752 y(h)n(ttp://lwneuralnet.sourceforge.net/.)p Black
+330 1918 a([v)-5 b(an)28 b(W)-7 b(a)n(v)n(eren,)26 b(2001])p
+Black 39 w(v)-5 b(an)28 b(W)-7 b(a)n(v)n(eren,)26 b(J.)i(P)-7
+b(.)27 b(\(2001\).)36 b(The)27 b(quak)n(e)g(I)r(I)r(I)h(arena)e(b)r
+(ot.)418 2017 y(h)n(ttp://www.kbs.t)n
+(wi.tudelft.nl/Publications/MSc/2001-V)-7 b(anW)g(a)n(v)n(eren-MSc.h)n
+(tml.)p Black 330 2183 a([Zell,)28 b(2003])p Black 39
+w(Zell,)g(A.)g(\(2003\).)35 b(Stuttgart)28 b(neural)f(net)n(w)n(ork)f
+(sim)n(ulator.)418 2283 y(h)n
+(ttp://www-ra.informatik.uni-tuebingen.de/SNNS/.)p Black
+1788 5919 a(47)p Black eop end
+%%Page: 48 52
+TeXDict begin 48 51 bop Black 2281 70 a Fp(A)83 b(OUTPUT)27
+b(FR)n(OM)h(R)n(UNS)p 330 103 3000 4 v Black 330 390
+a Fv(A)134 b(Output)45 b(from)g(runs)330 589 y Fo(A.1)112
+b(Output)37 b(from)h Fc(make)53 b(runtest)337 758 y Fu(T)7
+b(r)g(a)g(i)g(n)g(i)g(n)g(g)56 b(n)6 b(e)g(t)g(w)g(o)g(r)g(k)339
+825 y(.)j(/)20 b(t)10 b(e)g(s)g(t)k(/)g(x)e(o)f(r)p 751
+825 20 4 v 47 w(t)g(r)g(a)h(i)f(n)p 984 825 V 46 w(f)g(l)g(o)h(a)f(t)
+337 891 y(C)c(r)g(e)g(a)g(t)g(i)g(n)g(g)56 b(n)6 b(e)g(t)g(w)g(o)g(r)g
+(k)13 b(.)339 958 y(c)c(r)g(e)g(a)g(t)g(i)g(n)g(g)57
+b(n)6 b(e)g(t)g(w)g(o)g(r)g(k)48 b(w)6 b(i)g(t)g(h)55
+b(l)9 b(e)g(a)g(r)g(n)g(i)g(n)g(g)60 b(r)9 b(a)g(t)g(e)49
+b(0)9 b(.)g(7)g(0)g(0)g(0)g(0)g(0)46 b(a)s(n)s(d)51 b(c)8
+b(o)g(n)g(n)g(e)g(c)g(t)g(i)g(o)g(n)54 b(r)9 b(a)g(t)g(e)47
+b(1)8 b(.)g(0)g(0)g(0)g(0)g(0)g(0)337 1024 y(i)f(n)g(p)g(u)g(t)419
+1091 y(l)i(a)g(y)g(e)g(r)300 b(:)47 b(3)54 b(n)6 b(e)g(u)g(r)g(o)g(n)g
+(s)22 b(,)47 b(1)56 b(b)9 b(i)g(a)g(s)419 1157 y(l)g(a)g(y)g(e)g(r)300
+b(:)47 b(5)54 b(n)6 b(e)g(u)g(r)g(o)g(n)g(s)22 b(,)47
+b(1)56 b(b)9 b(i)g(a)g(s)419 1223 y(l)g(a)g(y)g(e)g(r)300
+b(:)47 b(2)54 b(n)6 b(e)g(u)g(r)g(o)g(n)g(s)22 b(,)47
+b(1)56 b(b)9 b(i)g(a)g(s)336 1290 y(o)d(u)g(t)g(p)g(u)g(t)337
+1356 y(T)h(r)g(a)g(i)g(n)g(i)g(n)g(g)56 b(n)6 b(e)g(t)g(w)g(o)g(r)g(k)
+13 b(.)328 1423 y(M)n(a)n(x)43 b(e)7 b(p)g(o)g(c)g(h)g(s)132
+b(5)9 b(0)g(0)g(0)g(0)g(0)g(.)46 b(D)8 b(e)g(s)g(i)g(r)g(e)g(d)53
+b(e)10 b(r)f(r)h(o)g(r)18 b(:)40 b(0)9 b(.)g(0)g(0)g(0)g(1)g(0)g(0)g(0)
+g(0)g(0)g(0)334 1489 y(E)t(p)t(o)t(c)t(h)t(s)494 b(1)11
+b(.)51 b(C)6 b(u)g(r)g(r)g(e)g(n)g(t)56 b(e)10 b(r)f(r)h(o)g(r)18
+b(:)40 b(0)9 b(.)g(2)g(8)g(3)g(5)g(7)g(1)g(3)g(0)g(2)g(9)334
+1556 y(E)t(p)t(o)t(c)t(h)t(s)373 b(1)9 b(0)g(0)g(0)g(.)48
+b(C)6 b(u)g(r)g(r)g(e)g(n)g(t)56 b(e)10 b(r)f(r)h(o)g(r)18
+b(:)40 b(0)9 b(.)g(0)g(3)g(2)g(6)g(9)g(6)g(4)g(9)g(3)g(0)334
+1622 y(E)t(p)t(o)t(c)t(h)t(s)373 b(2)9 b(0)g(0)g(0)g(.)48
+b(C)6 b(u)g(r)g(r)g(e)g(n)g(t)56 b(e)10 b(r)f(r)h(o)g(r)18
+b(:)40 b(0)9 b(.)g(0)g(0)g(1)g(4)g(1)g(8)g(6)g(9)g(5)g(3)334
+1688 y(E)t(p)t(o)t(c)t(h)t(s)373 b(3)9 b(0)g(0)g(0)g(.)48
+b(C)6 b(u)g(r)g(r)g(e)g(n)g(t)56 b(e)10 b(r)f(r)h(o)g(r)18
+b(:)40 b(0)9 b(.)g(0)g(0)g(0)g(6)g(5)g(9)g(3)g(3)g(5)g(2)334
+1755 y(E)t(p)t(o)t(c)t(h)t(s)373 b(4)9 b(0)g(0)g(0)g(.)48
+b(C)6 b(u)g(r)g(r)g(e)g(n)g(t)56 b(e)10 b(r)f(r)h(o)g(r)18
+b(:)40 b(0)9 b(.)g(0)g(0)g(0)g(4)g(2)g(2)g(1)g(8)g(7)g(4)334
+1821 y(E)t(p)t(o)t(c)t(h)t(s)373 b(5)9 b(0)g(0)g(0)g(.)48
+b(C)6 b(u)g(r)g(r)g(e)g(n)g(t)56 b(e)10 b(r)f(r)h(o)g(r)18
+b(:)40 b(0)9 b(.)g(0)g(0)g(0)g(3)g(0)g(8)g(3)g(5)g(9)g(5)334
+1888 y(E)t(p)t(o)t(c)t(h)t(s)373 b(6)9 b(0)g(0)g(0)g(.)48
+b(C)6 b(u)g(r)g(r)g(e)g(n)g(t)56 b(e)10 b(r)f(r)h(o)g(r)18
+b(:)40 b(0)9 b(.)g(0)g(0)g(0)g(2)g(4)g(1)g(9)g(6)g(9)g(8)334
+1954 y(E)t(p)t(o)t(c)t(h)t(s)373 b(7)9 b(0)g(0)g(0)g(.)48
+b(C)6 b(u)g(r)g(r)g(e)g(n)g(t)56 b(e)10 b(r)f(r)h(o)g(r)18
+b(:)40 b(0)9 b(.)g(0)g(0)g(0)g(1)g(9)g(8)g(6)g(5)g(7)g(3)334
+2020 y(E)t(p)t(o)t(c)t(h)t(s)373 b(8)9 b(0)g(0)g(0)g(.)48
+b(C)6 b(u)g(r)g(r)g(e)g(n)g(t)56 b(e)10 b(r)f(r)h(o)g(r)18
+b(:)40 b(0)9 b(.)g(0)g(0)g(0)g(1)g(6)g(8)g(2)g(5)g(2)g(2)334
+2087 y(E)t(p)t(o)t(c)t(h)t(s)373 b(9)9 b(0)g(0)g(0)g(.)48
+b(C)6 b(u)g(r)g(r)g(e)g(n)g(t)56 b(e)10 b(r)f(r)h(o)g(r)18
+b(:)40 b(0)9 b(.)g(0)g(0)g(0)g(1)g(4)g(5)g(7)g(5)g(8)g(7)334
+2153 y(E)t(p)t(o)t(c)t(h)t(s)333 b(1)9 b(0)g(0)g(0)g(0)g(.)46
+b(C)6 b(u)g(r)g(r)g(e)g(n)g(t)56 b(e)10 b(r)f(r)h(o)g(r)18
+b(:)40 b(0)9 b(.)g(0)g(0)g(0)g(1)g(2)g(8)g(4)g(7)g(6)g(5)334
+2220 y(E)t(p)t(o)t(c)t(h)t(s)333 b(1)9 b(1)g(0)g(0)g(0)g(.)46
+b(C)6 b(u)g(r)g(r)g(e)g(n)g(t)56 b(e)10 b(r)f(r)h(o)g(r)18
+b(:)40 b(0)9 b(.)g(0)g(0)g(0)g(1)g(1)g(4)g(7)g(8)g(5)g(7)334
+2286 y(E)t(p)t(o)t(c)t(h)t(s)333 b(1)9 b(2)g(0)g(0)g(0)g(.)46
+b(C)6 b(u)g(r)g(r)g(e)g(n)g(t)56 b(e)10 b(r)f(r)h(o)g(r)18
+b(:)40 b(0)9 b(.)g(0)g(0)g(0)g(1)g(0)g(3)g(6)g(7)g(2)g(4)334
+2353 y(E)t(p)t(o)t(c)t(h)t(s)333 b(1)9 b(2)g(3)g(7)g(9)g(.)46
+b(C)6 b(u)g(r)g(r)g(e)g(n)g(t)56 b(e)10 b(r)f(r)h(o)g(r)18
+b(:)40 b(0)9 b(.)g(0)g(0)g(0)g(0)g(9)g(9)g(9)g(9)g(0)g(7)338
+2419 y(T)f(e)g(s)g(t)g(i)g(n)g(g)49 b(n)6 b(e)g(t)g(w)g(o)g(r)g(k)13
+b(.)323 2485 y(X)-7 b(O)g(R)42 b(t)10 b(e)g(s)h(t)48
+b(\()8 b(0)g(.)g(0)g(0)g(0)g(0)g(0)g(0)18 b(,)8 b(0)g(.)g(0)g(0)g(0)g
+(0)g(0)g(0)g(\))48 b Fj(\000)16 b Fk(>)38 b Fu(0)8 b(.)g(0)g(0)g(7)g(6)
+g(2)g(0)18 b(,)45 b(s)7 b(h)g(o)g(u)g(l)g(d)51 b(b)t(e)46
+b(0)9 b(.)g(0)g(0)g(0)g(0)g(0)g(0)22 b(,)52 b(d)11 b(i)f(f)h(f)f(e)h(r)
+g(e)f(n)g(c)h(e)16 b(=)6 b(0)g(.)g(0)g(0)g(7)g(6)g(2)g(0)323
+2552 y(X)-7 b(O)g(R)42 b(t)10 b(e)g(s)h(t)48 b(\()8 b(0)g(.)g(0)g(0)g
+(0)g(0)g(0)g(0)18 b(,)8 b(1)g(.)g(0)g(0)g(0)g(0)g(0)g(0)g(\))48
+b Fj(\000)16 b Fk(>)38 b Fu(0)8 b(.)g(9)g(9)g(0)g(2)g(5)g(6)18
+b(,)45 b(s)7 b(h)g(o)g(u)g(l)g(d)51 b(b)t(e)46 b(1)9
+b(.)g(0)g(0)g(0)g(0)g(0)g(0)22 b(,)52 b(d)11 b(i)f(f)h(f)f(e)h(r)g(e)f
+(n)g(c)h(e)16 b(=)6 b(0)g(.)g(0)g(0)g(9)g(7)g(4)g(4)323
+2618 y(X)-7 b(O)g(R)42 b(t)10 b(e)g(s)h(t)48 b(\()8 b(1)g(.)g(0)g(0)g
+(0)g(0)g(0)g(0)18 b(,)8 b(0)g(.)g(0)g(0)g(0)g(0)g(0)g(0)g(\))48
+b Fj(\000)16 b Fk(>)38 b Fu(0)8 b(.)g(9)g(9)g(0)g(9)g(4)g(6)18
+b(,)45 b(s)7 b(h)g(o)g(u)g(l)g(d)51 b(b)t(e)46 b(1)9
+b(.)g(0)g(0)g(0)g(0)g(0)g(0)22 b(,)52 b(d)11 b(i)f(f)h(f)f(e)h(r)g(e)f
+(n)g(c)h(e)16 b(=)6 b(0)g(.)g(0)g(0)g(9)g(0)g(5)g(4)323
+2685 y(X)-7 b(O)g(R)42 b(t)10 b(e)g(s)h(t)48 b(\()8 b(1)g(.)g(0)g(0)g
+(0)g(0)g(0)g(0)18 b(,)8 b(1)g(.)g(0)g(0)g(0)g(0)g(0)g(0)g(\))48
+b Fj(\000)16 b Fk(>)38 b Fu(0)8 b(.)g(0)g(1)g(2)g(8)g(3)g(8)18
+b(,)45 b(s)7 b(h)g(o)g(u)g(l)g(d)51 b(b)t(e)46 b(0)9
+b(.)g(0)g(0)g(0)g(0)g(0)g(0)22 b(,)52 b(d)11 b(i)f(f)h(f)f(e)h(r)g(e)f
+(n)g(c)h(e)16 b(=)6 b(0)g(.)g(0)g(1)g(2)g(8)g(3)g(8)336
+2751 y(S)g(a)g(v)g(i)g(n)g(g)54 b(n)6 b(e)g(t)g(w)g(o)g(r)g(k)12
+b(.)341 2817 y(c)e(a)h(l)g(c)g(u)f(l)h(a)g(t)g(e)f(d)p
+746 2817 V 46 w(f)g(i)h(x)p 888 2817 V 45 w(p)g(o)g(i)g(n)f(t)17
+b(=)6 b(1)g(2)11 b(,)45 b(f)10 b(i)h(x)p 1444 2817 V
+45 w(p)f(o)h(i)g(n)f(t)17 b(=)6 b(1)g(2)11 b(,)43 b(b)9
+b(i)g(t)g(s)p 2036 2817 V 42 w(u)g(s)g(e)g(d)p 2235 2817
+V 42 w(f)g(o)g(r)p 2375 2817 V 42 w(m)g(a)g(x)e(=)n(5)337
+2884 y(C)g(l)g(e)g(a)g(n)g(i)g(n)g(g)48 b(u)r(p)12 b(.)338
+2950 y(T)c(e)g(s)g(t)g(i)g(n)g(g)49 b(n)6 b(e)g(t)g(w)g(o)g(r)g(k)48
+b(w)6 b(i)g(t)g(h)57 b(f)12 b(l)f(o)g(a)h(t)f(s)339 3017
+y(.)e(/)20 b(t)10 b(e)g(s)g(t)k(/)h(x)c(o)h(r)p 753 3017
+V 47 w(t)g(e)f(s)h(t)p 943 3017 V 47 w(f)f(l)h(o)g(a)f(t)337
+3083 y(C)c(r)g(e)g(a)g(t)g(i)g(n)g(g)56 b(n)6 b(e)g(t)g(w)g(o)g(r)g(k)
+13 b(.)339 3150 y(c)c(r)g(e)g(a)g(t)g(i)g(n)g(g)57 b(n)6
+b(e)g(t)g(w)g(o)g(r)g(k)48 b(w)6 b(i)g(t)g(h)55 b(l)9
+b(e)g(a)g(r)g(n)g(i)g(n)g(g)60 b(r)9 b(a)g(t)g(e)47 b(0)8
+b(.)g(7)g(0)g(0)g(0)g(0)g(0)337 3216 y(i)f(n)g(p)g(u)g(t)419
+3282 y(l)i(a)g(y)g(e)g(r)300 b(:)47 b(3)54 b(n)6 b(e)g(u)g(r)g(o)g(n)g
+(s)22 b(,)47 b(1)56 b(b)9 b(i)g(a)g(s)419 3349 y(l)g(a)g(y)g(e)g(r)300
+b(:)47 b(5)54 b(n)6 b(e)g(u)g(r)g(o)g(n)g(s)22 b(,)47
+b(1)56 b(b)9 b(i)g(a)g(s)419 3415 y(l)g(a)g(y)g(e)g(r)300
+b(:)47 b(2)54 b(n)6 b(e)g(u)g(r)g(o)g(n)g(s)22 b(,)47
+b(1)56 b(b)9 b(i)g(a)g(s)336 3482 y(o)d(u)g(t)g(p)g(u)g(t)338
+3548 y(T)i(e)g(s)g(t)g(i)g(n)g(g)49 b(n)6 b(e)g(t)g(w)g(o)g(r)g(k)13
+b(.)323 3614 y(X)-7 b(O)g(R)42 b(t)10 b(e)g(s)h(t)49
+b(\()8 b(0)g(.)g(0)g(0)g(0)g(0)g(0)g(0)20 b(,)38 b(0)8
+b(.)g(0)g(0)g(0)g(0)g(0)g(0)g(\))51 b Fj(\000)16 b Fk(>)39
+b Fu(0)8 b(.)g(0)g(0)g(7)g(6)g(2)g(0)20 b(,)46 b(s)7
+b(h)g(o)g(u)g(l)g(d)51 b(b)t(e)45 b(0)9 b(.)g(0)g(0)g(0)g(0)g(0)g(0)23
+b(,)52 b(d)10 b(i)h(f)g(f)f(e)g(r)h(e)g(n)f(c)h(e)16
+b(=)6 b(0)g(.)g(0)g(0)g(7)g(6)g(2)g(0)323 3681 y(X)-7
+b(O)g(R)42 b(t)10 b(e)g(s)h(t)49 b(\()8 b(0)g(.)g(0)g(0)g(0)g(0)g(0)g
+(0)20 b(,)38 b(1)8 b(.)g(0)g(0)g(0)g(0)g(0)g(0)g(\))51
+b Fj(\000)16 b Fk(>)39 b Fu(0)8 b(.)g(9)g(9)g(0)g(2)g(5)g(6)20
+b(,)46 b(s)7 b(h)g(o)g(u)g(l)g(d)51 b(b)t(e)45 b(1)9
+b(.)g(0)g(0)g(0)g(0)g(0)g(0)23 b(,)52 b(d)10 b(i)h(f)g(f)f(e)g(r)h(e)g
+(n)f(c)h(e)16 b(=)6 b(0)g(.)g(0)g(0)g(9)g(7)g(4)g(4)323
+3747 y(X)-7 b(O)g(R)42 b(t)10 b(e)g(s)h(t)49 b(\()8 b(1)g(.)g(0)g(0)g
+(0)g(0)g(0)g(0)20 b(,)38 b(0)8 b(.)g(0)g(0)g(0)g(0)g(0)g(0)g(\))51
+b Fj(\000)16 b Fk(>)39 b Fu(0)8 b(.)g(9)g(9)g(0)g(9)g(4)g(6)20
+b(,)46 b(s)7 b(h)g(o)g(u)g(l)g(d)51 b(b)t(e)45 b(1)9
+b(.)g(0)g(0)g(0)g(0)g(0)g(0)23 b(,)52 b(d)10 b(i)h(f)g(f)f(e)g(r)h(e)g
+(n)f(c)h(e)16 b(=)6 b(0)g(.)g(0)g(0)g(9)g(0)g(5)g(4)323
+3814 y(X)-7 b(O)g(R)42 b(t)10 b(e)g(s)h(t)49 b(\()8 b(1)g(.)g(0)g(0)g
+(0)g(0)g(0)g(0)20 b(,)38 b(1)8 b(.)g(0)g(0)g(0)g(0)g(0)g(0)g(\))51
+b Fj(\000)16 b Fk(>)39 b Fu(0)8 b(.)g(0)g(1)g(2)g(8)g(3)g(8)20
+b(,)46 b(s)7 b(h)g(o)g(u)g(l)g(d)51 b(b)t(e)45 b(0)9
+b(.)g(0)g(0)g(0)g(0)g(0)g(0)23 b(,)52 b(d)10 b(i)h(f)g(f)f(e)g(r)h(e)g
+(n)f(c)h(e)16 b(=)6 b(0)g(.)g(0)g(1)g(2)g(8)g(3)g(8)337
+3880 y(C)h(l)g(e)g(a)g(n)g(i)g(n)g(g)48 b(u)r(p)12 b(.)338
+3947 y(T)c(e)g(s)g(t)g(i)g(n)g(g)49 b(n)6 b(e)g(t)g(w)g(o)g(r)g(k)48
+b(w)6 b(i)g(t)g(h)56 b(f)9 b(i)g(x)h(e)f(d)58 b(p)9 b(o)g(i)g(n)g(t)g
+(s)339 4013 y(.)g(/)20 b(t)10 b(e)g(s)g(t)k(/)g(x)d(o)g(r)p
+750 4013 V 46 w(t)g(e)g(s)g(t)p 937 4013 V 46 w(f)g(i)g(x)g(e)f(d)337
+4079 y(C)d(r)g(e)g(a)g(t)g(i)g(n)g(g)56 b(n)6 b(e)g(t)g(w)g(o)g(r)g(k)
+13 b(.)339 4146 y(c)c(r)g(e)g(a)g(t)g(i)g(n)g(g)57 b(n)6
+b(e)g(t)g(w)g(o)g(r)g(k)48 b(w)6 b(i)g(t)g(h)55 b(l)9
+b(e)g(a)g(r)g(n)g(i)g(n)g(g)60 b(r)9 b(a)g(t)g(e)47 b(0)8
+b(.)g(7)g(0)g(0)g(0)g(0)g(0)337 4212 y(i)f(n)g(p)g(u)g(t)419
+4279 y(l)i(a)g(y)g(e)g(r)300 b(:)47 b(3)54 b(n)6 b(e)g(u)g(r)g(o)g(n)g
+(s)22 b(,)47 b(1)56 b(b)9 b(i)g(a)g(s)419 4345 y(l)g(a)g(y)g(e)g(r)300
+b(:)47 b(5)54 b(n)6 b(e)g(u)g(r)g(o)g(n)g(s)22 b(,)47
+b(1)56 b(b)9 b(i)g(a)g(s)419 4411 y(l)g(a)g(y)g(e)g(r)300
+b(:)47 b(2)54 b(n)6 b(e)g(u)g(r)g(o)g(n)g(s)22 b(,)47
+b(1)56 b(b)9 b(i)g(a)g(s)336 4478 y(o)d(u)g(t)g(p)g(u)g(t)338
+4544 y(T)i(e)g(s)g(t)g(i)g(n)g(g)49 b(n)6 b(e)g(t)g(w)g(o)g(r)g(k)13
+b(.)323 4611 y(X)-7 b(O)g(R)42 b(t)10 b(e)g(s)h(t)48
+b(\()8 b(0)16 b(,)38 b(0)8 b(\))46 b Fj(\000)15 b Fk(>)38
+b Fu(8)8 b(5)16 b(,)46 b(s)7 b(h)g(o)g(u)g(l)g(d)51 b(b)t(e)c(0)21
+b(,)54 b(d)10 b(i)h(f)f(f)h(e)f(r)h(e)f(n)h(c)f(e)16
+b(=)6 b(0)g(.)g(0)g(2)g(0)g(7)g(5)g(2)323 4677 y(X)-7
+b(O)g(R)42 b(t)10 b(e)g(s)h(t)47 b(\()8 b(0)15 b(,)38
+b(4)8 b(0)g(9)g(6)g(\))44 b Fj(\000)15 b Fk(>)38 b Fu(3)8
+b(9)g(8)g(5)14 b(,)45 b(s)7 b(h)g(o)g(u)g(l)g(d)51 b(b)t(e)45
+b(4)9 b(0)g(9)g(6)19 b(,)51 b(d)11 b(i)f(f)h(f)f(e)h(r)g(e)f(n)h(c)f(e)
+16 b(=)6 b(0)g(.)g(0)g(2)g(7)g(1)g(0)g(0)323 4744 y(X)-7
+b(O)g(R)42 b(t)10 b(e)g(s)h(t)47 b(\()8 b(4)g(0)g(9)g(6)15
+b(,)37 b(0)8 b(\))45 b Fj(\000)15 b Fk(>)38 b Fu(3)8
+b(9)g(9)g(1)14 b(,)45 b(s)7 b(h)g(o)g(u)g(l)g(d)51 b(b)t(e)45
+b(4)9 b(0)g(9)g(6)19 b(,)51 b(d)11 b(i)f(f)h(f)f(e)h(r)g(e)f(n)h(c)f(e)
+16 b(=)6 b(0)g(.)g(0)g(2)g(5)g(6)g(3)g(5)323 4810 y(X)-7
+b(O)g(R)42 b(t)10 b(e)g(s)h(t)47 b(\()8 b(4)g(0)g(9)g(6)14
+b(,)37 b(4)8 b(0)g(9)g(6)g(\))44 b Fj(\000)15 b Fk(>)37
+b Fu(1)8 b(2)g(2)15 b(,)45 b(s)7 b(h)g(o)g(u)g(l)g(d)51
+b(b)t(e)c(0)21 b(,)54 b(d)10 b(i)h(f)f(f)h(e)f(r)h(e)f(n)h(c)f(e)16
+b(=)6 b(0)g(.)g(0)g(2)g(9)g(7)g(8)g(5)337 4876 y(C)h(l)g(e)g(a)g(n)g(i)
+g(n)g(g)48 b(u)r(p)12 b(.)p Black 1788 5919 a Fy(48)p
+Black eop end
+%%Page: 49 53
+TeXDict begin 49 52 bop Black 2568 70 a Fp(B)83 b(SOUR)n(CE)27
+b(CODE)p 330 103 3000 4 v Black 330 390 a Fv(B)134 b(Source)45
+b(Co)t(de)330 589 y Fo(B.1)112 b(The)38 b(library)330
+742 y Fs(B.1.1)94 b Ft(fann.h)p Black Black 330 862 a
+Fb(/)p Fj(\003)33 b Fb(This)h(\014le)f(de\014nes)g(the)g(user)g
+(interfac)m(e)g(to)g(the)g(fann)i(libr)m(ary.)429 928
+y(It)f(is)g(include)m(d)e(fr)m(om)h(\014xe)m(dfann.h,)i(\015o)m
+(atfann.h)g(and)e(doublefann.h)h(and)g(should)429 995
+y(NOT)g(b)m(e)d(include)m(d)i(dir)m(e)m(ctly.)330 1061
+y Fj(\003)p Fb(/)330 1194 y Fe(#include)21 b Fu(")p Fe(fann)p
+760 1194 19 4 v 22 w(data.h)p Fu(")330 1260 y Fe(#include)g
+Fu(")p Fe(fann)p 760 1260 V 22 w(internal.h)p Fu(")330
+1393 y Fe(#ifdef)p 542 1393 20 4 v 565 1393 V 69 w Fu(cplusplus)330
+1460 y Fa(extern)i Fe("C")f Fj(f)330 1526 y Fe(#endif)330
+1725 y Fb(/)p Fj(\003)33 b Fb(|{)g(Initialisation)k(and)d(c)m
+(on\014gur)m(ation)f(|{)g Fj(\003)p Fb(/)330 1858 y(/)p
+Fj(\003)g Fb(Constructs)h(a)f(b)m(ackpr)m(op)m(agation)f(neur)m(al)g
+(network,)i(fr)m(om)f(an)g(c)m(onne)m(ction)h(r)m(ate,)429
+1925 y(a)f(le)m(arning)h(r)m(ate,)f(the)g(numb)m(er)f(of)h(layers)g
+(and)h(the)f(numb)m(er)f(of)h(neur)m(ons)h(in)g(e)m(ach)429
+1991 y(of)g(the)f(layers.)429 2124 y(The)g(c)m(onne)m(ction)g(r)m(ate)g
+(c)m(ontr)m(ols)f(how)i(many)f(c)m(onne)m(ctions)h(ther)m(e)e(wil)s(l)i
+(b)m(e)e(in)i(the)429 2190 y(network.)g(If)g(the)f(c)m(onne)m(ction)g
+(r)m(ate)g(is)g(set)g(to)h(1,)f(the)g(network)h(wil)s(l)g(b)m(e)e(ful)s
+(ly)429 2257 y(c)m(onne)m(cte)m(d,)g(but)h(if)h(it)f(is)h(set)f(to)g
+(0.5)h(only)g(half)g(of)f(the)g(c)m(onne)m(ctions)g(wil)s(l)i(b)m(e)d
+(set.)429 2390 y(Ther)m(e)g(wil)s(l)i(b)m(e)e(a)h(bias)h(neur)m(on)f
+(in)h(e)m(ach)e(layer)h(\(exc)m(ept)f(the)h(output)g(layer\),)429
+2456 y(and)h(this)g(bias)f(neur)m(on)g(wil)s(l)i(b)m(e)d(c)m(onne)m
+(cte)m(d)f(to)i(al)s(l)h(neur)m(ons)f(in)h(the)f(next)g(layer.)429
+2522 y(When)h(running)g(the)f(network,)h(the)f(bias)g(no)m(des)g
+(always)h(emits)f(1)363 2589 y Fj(\003)p Fb(/)330 2655
+y Fa(struct)23 b Fu(fann)f Fj(\003)g Fu(fann)p 885 2655
+V 23 w(create\()p Fa(\015oat)e Fu(connection)p 1587 2655
+V 22 w(rate,)h Fa(\015oat)h Fu(learning)p 2166 2655 V
+23 w(rate,)462 2722 y Fb(/)p Fj(\003)34 b Fb(the)e(numb)m(er)g(of)i
+(layers,)g(including)g(the)e(input)i(and)g(output)f(layer)g
+Fj(\003)p Fb(/)462 2788 y Fa(unsigned)22 b(in)n(t)g Fu(n)n(um)p
+1018 2788 V 23 w(la)n(y)n(ers,)462 2854 y Fb(/)p Fj(\003)34
+b Fb(the)e(numb)m(er)g(of)i(neur)m(ons)f(in)h(e)m(ach)e(of)i(the)f
+(layers,)g(starting)i(with)562 2921 y(the)e(input)g(layer)h(and)f
+(ending)h(with)g(the)f(output)g(layer)g Fj(\003)p Fb(/)462
+2987 y Fk(:)11 b(:)g(:)p Fu(\);)330 3120 y Fb(/)p Fj(\003)33
+b Fb(Constructs)h(a)f(b)m(ackpr)m(op)m(agation)f(neur)m(al)g(network)i
+(fr)m(om)e(a)i(c)m(on\014gur)m(ation)f(\014le.)363 3187
+y Fj(\003)p Fb(/)330 3253 y Fa(struct)23 b Fu(fann)f
+Fj(\003)g Fu(fann)p 885 3253 V 23 w(create)p 1083 3253
+V 22 w(from)p 1240 3253 V 23 w(\014le\()p Fa(const)f(c)n(har)h
+Fj(\003)p Fu(con\014guration)p 2148 3253 V 22 w(\014le\);)330
+3386 y Fb(/)p Fj(\003)33 b Fb(Destructs)g(the)g(entir)m(e)g(network.)
+429 3452 y(Be)g(sur)m(e)f(to)h(c)m(al)s(l)g(this)h(function)h(after)e
+(\014nishe)m(d)h(using)f(the)g(network.)363 3519 y Fj(\003)p
+Fb(/)330 3585 y Fa(v)n(oid)21 b Fu(fann)p 622 3585 V
+23 w(destro)n(y\()p Fa(struct)i Fu(fann)e Fj(\003)p Fu(ann\);)330
+3718 y Fb(/)p Fj(\003)33 b Fb(Save)g(the)g(entir)m(e)g(network)g(to)h
+(a)f(c)m(on\014gur)m(ation)g(\014le.)363 3784 y Fj(\003)p
+Fb(/)330 3851 y Fa(v)n(oid)21 b Fu(fann)p 622 3851 V
+23 w(sa)n(v)n(e\()p Fa(struct)j Fu(fann)d Fj(\003)p Fu(ann,)h
+Fa(const)g(c)n(har)g Fj(\003)p Fu(con\014guration)p 2113
+3851 V 22 w(\014le\);)330 3984 y Fb(/)p Fj(\003)33 b
+Fb(Saves)g(the)g(entir)m(e)g(network)h(to)f(a)g(c)m(on\014gur)m(ation)g
+(\014le.)429 4050 y(But)g(it)h(is)f(save)m(d)g(in)h(\014xe)m(d)e(p)m
+(oint)i(format)f(no)h(matter)e(which)429 4116 y(format)i(it)f(is)h
+(curr)m(ently)f(in.)429 4249 y(This)h(is)f(useful)s(l)h(for)f(tr)m
+(aining)i(a)e(network)g(in)h(\015o)m(ating)g(p)m(oints,)429
+4316 y(and)g(then)f(later)g(exe)m(cuting)f(it)i(in)f(\014xe)m(d)g(p)m
+(oint.)429 4448 y(The)g(function)h(r)m(eturns)f(the)g(bit)g(p)m
+(osition)i(of)e(the)g(\014x)g(p)m(oint,)i(which)429 4515
+y(c)m(an)e(b)m(e)f(use)m(d)g(to)i(\014nd)g(out)f(how)g(ac)m(cur)m(ate)e
+(the)i(\014xe)m(d)g(p)m(oint)h(network)f(wil)s(l)h(b)m(e.)429
+4581 y(A)g(high)f(value)f(indic)m(ates)i(high)f(pr)m(e)m(cision,)h(and)
+f(a)g(low)h(value)e(indic)m(ates)i(low)429 4648 y(pr)m(e)m(cision.)429
+4781 y(A)g(ne)m(gative)e(value)g(indic)m(ates)i(very)f(low)g(pr)m(e)m
+(cision,)h(and)f(a)h(very)429 4847 y(str)m(ong)g(p)m(ossibility)g(for)g
+(over\015ow.)429 4913 y(\(the)f(actual)g(\014x)g(p)m(oint)h(wil)s(l)g
+(b)m(e)e(set)h(to)g(0,)h(sinc)m(e)f(a)g(ne)m(gative)429
+4980 y(\014x)g(p)m(oint)h(do)m(es)f(not)h(make)e(senc)m(e\).)429
+5113 y(Gener)m(al)s(ly,)i(a)f(\014x)g(p)m(oint)h(lower)f(than)g(6)h(is)
+f(b)m(ad,)g(and)h(should)f(b)m(e)f(avoide)m(d.)429 5179
+y(The)h(b)m(est)f(way)i(to)f(avoid)g(this,)i(is)e(to)h(have)e(less)h(c)
+m(onne)m(ctions)h(to)f(e)m(ach)f(neur)m(on,)429 5245
+y(or)i(just)f(less)g(neur)m(ons)h(in)g(e)m(ach)e(layer.)429
+5378 y(The)h(\014xe)m(d)f(p)m(oint)i(use)f(of)g(this)h(network)f(is)h
+(only)g(intende)m(d)g(for)f(use)g(on)h(machines)f(that)429
+5445 y(have)g(no)g(\015o)m(ating)h(p)m(oint)g(pr)m(o)m(c)m(essor,)e
+(like)h(an)g(iP)-5 b(A)n(Q.)35 b(On)f(normal)f(c)m(omputers)f(the)h
+(\015o)m(ating)429 5511 y(p)m(oint)h(version)g(is)f(actual)s(ly)h
+(faster.)330 5578 y Fj(\003)p Fb(/)330 5644 y Fa(in)n(t)23
+b Fu(fann)p 575 5644 V 22 w(sa)n(v)n(e)p 717 5644 V 24
+w(to)p 800 5644 V 24 w(\014xed\()p Fa(struct)f Fu(fann)f
+Fj(\003)p Fu(ann,)h Fa(const)g(c)n(har)h Fj(\003)p Fu(con\014guration)p
+2311 5644 V 22 w(\014le\);)p Black 1788 5919 a Fy(49)p
+Black eop end
+%%Page: 50 54
+TeXDict begin 50 53 bop Black 330 70 a Fp(B.1)82 b(The)28
+b(library)1617 b(B)83 b(SOUR)n(CE)27 b(CODE)p 330 103
+3000 4 v Black 330 457 a Fb(/)p Fj(\003)33 b Fb(|{)g(Some)g(stu\013)g
+(to)g(set)h(options)g(on)g(the)e(network)i(on)f(the)g(\015y.)h(|{)g
+Fj(\003)p Fb(/)330 589 y(/)p Fj(\003)f Fb(Set)g(the)g(le)m(arning)h(r)m
+(ate.)363 656 y Fj(\003)p Fb(/)330 722 y Fa(v)n(oid)21
+b Fu(fann)p 622 722 20 4 v 23 w(set)p 727 722 V 24 w(learning)p
+985 722 V 22 w(rate\()p Fa(struct)i Fu(fann)e Fj(\003)p
+Fu(ann,)h Fa(\015oat)g Fu(learning)p 2098 722 V 22 w(rate\);)330
+855 y Fb(/)p Fj(\003)33 b Fb(The)g(p)m(ossible)g(activation)h
+(functions.)429 922 y(Thr)m(eshold)f(c)m(an)g(not)g(b)m(e)f(use)m(d,)h
+(when)h(tr)m(aining)g(the)f(network.)363 988 y Fj(\003)p
+Fb(/)330 1054 y Fe(#define)21 b Fu(F)-7 b(ANN)p 755 1054
+V 24 w(SIGMOID)22 b(1)330 1121 y Fe(#define)f Fu(F)-7
+b(ANN)p 755 1121 V 24 w(THRESHOLD)22 b(2)330 1254 y Fb(/)p
+Fj(\003)33 b Fb(Set)g(the)g(activation)h(function)h(for)e(the)g(hidden)
+h(layers)g(\(default)f(SIGMOID\).)363 1320 y Fj(\003)p
+Fb(/)330 1386 y Fa(v)n(oid)21 b Fu(fann)p 622 1386 V
+23 w(set)p 727 1386 V 24 w(activ)l(ation)p 1038 1386
+V 23 w(function)p 1301 1386 V 22 w(hidden\()p Fa(struct)g
+Fu(fann)g Fj(\003)p Fu(ann,)h Fa(unsigned)f(in)n(t)i
+Fu(activ)l(ation)p 2804 1386 V 23 w(function\);)330 1519
+y Fb(/)p Fj(\003)33 b Fb(Set)g(the)g(activation)h(function)h(for)e(the)
+g(output)g(layer)g(\(default)h(SIGMOID\).)363 1586 y
+Fj(\003)p Fb(/)330 1652 y Fa(v)n(oid)21 b Fu(fann)p 622
+1652 V 23 w(set)p 727 1652 V 24 w(activ)l(ation)p 1038
+1652 V 23 w(function)p 1301 1652 V 22 w(output\()p Fa(struct)h
+Fu(fann)f Fj(\003)p Fu(ann,)h Fa(unsigned)f(in)n(t)i
+Fu(activ)l(ation)p 2804 1652 V 23 w(function\);)330 1785
+y Fb(/)p Fj(\003)33 b Fb(Set)g(the)g(ste)m(epness)g(of)h(the)f(sigmoid)
+g(function)i(use)m(d)d(in)i(the)f(hidden)h(layers.)429
+1851 y(Only)g(useful)s(l)g(if)f(sigmoid)h(function)g(is)g(use)m(d)e(in)
+i(the)f(hidden)h(layers)f(\(default)h(0.5\).)363 1918
+y Fj(\003)p Fb(/)330 1984 y Fa(v)n(oid)21 b Fu(fann)p
+622 1984 V 23 w(set)p 727 1984 V 24 w(activ)l(ation)p
+1038 1984 V 23 w(hidden)p 1258 1984 V 22 w(steepness\()p
+Fa(struct)h Fu(fann)f Fj(\003)p Fu(ann,)h(fann)p 2249
+1984 V 22 w(t)n(yp)r(e)g(steepness\);)330 2117 y Fb(/)p
+Fj(\003)33 b Fb(Set)g(the)g(ste)m(epness)g(of)h(the)f(sigmoid)g
+(function)i(use)m(d)d(in)i(the)f(output)g(layer.)429
+2183 y(Only)h(useful)s(l)g(if)f(sigmoid)h(function)g(is)g(use)m(d)e(in)
+i(the)f(output)g(layer)g(\(default)h(0.5\).)363 2250
+y Fj(\003)p Fb(/)330 2316 y Fa(v)n(oid)21 b Fu(fann)p
+622 2316 V 23 w(set)p 727 2316 V 24 w(activ)l(ation)p
+1038 2316 V 23 w(output)p 1257 2316 V 23 w(steepness\()p
+Fa(struct)h Fu(fann)f Fj(\003)p Fu(ann,)h(fann)p 2249
+2316 V 22 w(t)n(yp)r(e)g(steepness\);)330 2449 y Fb(/)p
+Fj(\003)33 b Fb(|{)g(Some)g(stu\013)g(to)g(r)m(e)m(ad)g(network)g
+(options)h(fr)m(om)f(the)g(network.)h(|{)f Fj(\003)p
+Fb(/)330 2582 y(/)p Fj(\003)g Fb(Get)g(the)f(le)m(arning)i(r)m(ate.)363
+2648 y Fj(\003)p Fb(/)330 2715 y Fa(\015oat)22 b Fu(fann)p
+630 2715 V 23 w(get)p 742 2715 V 23 w(learning)p 999
+2715 V 23 w(rate\()p Fa(struct)g Fu(fann)g Fj(\003)p
+Fu(ann\);)330 2848 y Fb(/)p Fj(\003)33 b Fb(Get)g(the)f(numb)m(er)g(of)
+i(input)g(neur)m(ons.)363 2914 y Fj(\003)p Fb(/)330 2980
+y Fa(unsigned)21 b(in)n(t)i Fu(fann)p 887 2980 V 23 w(get)p
+999 2980 V 23 w(n)n(um)p 1149 2980 V 23 w(input\()p Fa(struct)f
+Fu(fann)f Fj(\003)p Fu(ann\);)330 3113 y Fb(/)p Fj(\003)33
+b Fb(Get)g(the)f(numb)m(er)g(of)i(output)f(neur)m(ons.)363
+3180 y Fj(\003)p Fb(/)330 3246 y Fa(unsigned)21 b(in)n(t)i
+Fu(fann)p 887 3246 V 23 w(get)p 999 3246 V 23 w(n)n(um)p
+1149 3246 V 23 w(output\()p Fa(struct)f Fu(fann)f Fj(\003)p
+Fu(ann\);)330 3379 y Fb(/)p Fj(\003)33 b Fb(Get)g(the)f(activation)i
+(function)h(use)m(d)d(in)i(the)f(hidden)h(layers.)363
+3445 y Fj(\003)p Fb(/)330 3512 y Fa(unsigned)21 b(in)n(t)i
+Fu(fann)p 887 3512 V 23 w(get)p 999 3512 V 23 w(activ)l(ation)p
+1309 3512 V 23 w(function)p 1572 3512 V 22 w(hidden\()p
+Fa(struct)e Fu(fann)g Fj(\003)p Fu(ann\);)330 3645 y
+Fb(/)p Fj(\003)33 b Fb(Get)g(the)f(activation)i(function)h(use)m(d)d
+(in)i(the)f(output)g(layer.)363 3711 y Fj(\003)p Fb(/)330
+3778 y Fa(unsigned)21 b(in)n(t)i Fu(fann)p 887 3778 V
+23 w(get)p 999 3778 V 23 w(activ)l(ation)p 1309 3778
+V 23 w(function)p 1572 3778 V 22 w(output\()p Fa(struct)f
+Fu(fann)f Fj(\003)p Fu(ann\);)330 3910 y Fb(/)p Fj(\003)33
+b Fb(Get)g(the)f(ste)m(epness)h(p)m(ar)m(ameter)f(for)h(the)g(sigmoid)h
+(function)g(use)m(d)f(in)h(the)e(hidden)i(layers.)363
+3977 y Fj(\003)p Fb(/)330 4043 y Fu(fann)p 462 4043 V
+23 w(t)n(yp)r(e)21 b(fann)p 762 4043 V 23 w(get)p 874
+4043 V 23 w(activ)l(ation)p 1184 4043 V 24 w(hidden)p
+1405 4043 V 21 w(steepness\()p Fa(struct)h Fu(fann)g
+Fj(\003)p Fu(ann\);)330 4176 y Fb(/)p Fj(\003)33 b Fb(Get)g(the)f(ste)m
+(epness)h(p)m(ar)m(ameter)f(for)h(the)g(sigmoid)h(function)g(use)m(d)f
+(in)h(the)e(output)h(layer.)363 4242 y Fj(\003)p Fb(/)330
+4309 y Fu(fann)p 462 4309 V 23 w(t)n(yp)r(e)21 b(fann)p
+762 4309 V 23 w(get)p 874 4309 V 23 w(activ)l(ation)p
+1184 4309 V 24 w(output)p 1404 4309 V 22 w(steepness\()p
+Fa(struct)h Fu(fann)g Fj(\003)p Fu(ann\);)330 4442 y
+Fb(/)p Fj(\003)33 b Fb(Get)g(the)f(total)i(numb)m(er)e(of)h(neur)m(ons)
+h(in)g(the)e(entir)m(e)h(network.)363 4508 y Fj(\003)p
+Fb(/)330 4575 y Fa(unsigned)21 b(in)n(t)i Fu(fann)p 887
+4575 V 23 w(get)p 999 4575 V 23 w(total)p 1159 4575 V
+24 w(neurons\()p Fa(struct)f Fu(fann)f Fj(\003)p Fu(ann\);)330
+4707 y Fb(/)p Fj(\003)33 b Fb(Get)g(the)f(total)i(numb)m(er)e(of)h(c)m
+(onne)m(ctions)h(in)g(the)e(entir)m(e)i(network.)363
+4774 y Fj(\003)p Fb(/)330 4840 y Fa(unsigned)21 b(in)n(t)i
+Fu(fann)p 887 4840 V 23 w(get)p 999 4840 V 23 w(total)p
+1159 4840 V 24 w(connections\()p Fa(struct)e Fu(fann)g
+Fj(\003)p Fu(ann\);)330 4973 y Fb(/)p Fj(\003)33 b Fb(R)m(andomize)g
+(weights)g(\(fr)m(om)g(the)g(b)m(e)m(ginning)g(the)g(weights)h(ar)m(e)e
+(r)m(andom)h(b)m(etwe)m(en)f(-0.1)h(and)h(0.1\))363 5039
+y Fj(\003)p Fb(/)330 5106 y Fa(v)n(oid)21 b Fu(fann)p
+622 5106 V 23 w(randomize)p 945 5106 V 22 w(w)n(eigh)n(ts\()p
+Fa(struct)i Fu(fann)f Fj(\003)p Fu(ann,)f(fann)p 1883
+5106 V 23 w(t)n(yp)r(e)g(min)p 2166 5106 V 23 w(w)n(eigh)n(t,)h(fann)p
+2546 5106 V 23 w(t)n(yp)r(e)f(max)p 2841 5106 V 24 w(w)n(eigh)n(t\);)
+330 5239 y Fb(/)p Fj(\003)33 b Fb(|{)g(T)-5 b(r)m(aining)34
+b(|{)f Fj(\003)p Fb(/)330 5372 y Fe(#ifndef)21 b Fu(FIXEDF)-7
+b(ANN)330 5438 y Fb(/)p Fj(\003)33 b Fb(T)-5 b(r)m(ain)33
+b(one)h(iter)m(ation)g(with)g(a)f(set)g(of)g(inputs,)i(and)f(a)f(set)g
+(of)g(desir)m(e)m(d)g(outputs.)363 5504 y Fj(\003)p Fb(/)330
+5571 y Fa(v)n(oid)21 b Fu(fann)p 622 5571 V 23 w(train\()p
+Fa(struct)i Fu(fann)e Fj(\003)p Fu(ann,)h(fann)p 1488
+5571 V 23 w(t)n(yp)r(e)f Fj(\003)p Fu(input,)g(fann)p
+2018 5571 V 23 w(t)n(yp)r(e)g Fj(\003)p Fu(desired)p
+2429 5571 V 22 w(output\);)330 5637 y Fe(#endif)p Black
+1788 5919 a Fy(50)p Black eop end
+%%Page: 51 55
+TeXDict begin 51 54 bop Black 330 70 a Fp(B.1)82 b(The)28
+b(library)1617 b(B)83 b(SOUR)n(CE)27 b(CODE)p 330 103
+3000 4 v Black 330 457 a Fb(/)p Fj(\003)33 b Fb(T)-5
+b(est)33 b(with)h(a)f(set)g(of)h(inputs,)g(and)g(a)f(set)g(of)g(desir)m
+(e)m(d)g(outputs.)429 523 y(This)h(op)m(er)m(ation)f(up)m(dates)g(the)f
+(me)m(an)h(squar)m(e)f(err)m(or,)h(but)g(do)m(es)f(not)429
+589 y(change)h(the)g(network)g(in)h(any)g(way.)330 656
+y Fj(\003)p Fb(/)330 722 y Fu(fann)p 462 722 20 4 v 23
+w(t)n(yp)r(e)21 b Fj(\003)p Fu(fann)p 796 722 V 23 w(test\()p
+Fa(struct)i Fu(fann)e Fj(\003)p Fu(ann,)h(fann)p 1629
+722 V 23 w(t)n(yp)r(e)f Fj(\003)p Fu(input,)g(fann)p
+2159 722 V 23 w(t)n(yp)r(e)g Fj(\003)p Fu(desired)p 2570
+722 V 23 w(output\);)330 855 y Fb(/)p Fj(\003)33 b Fb(R)m(e)m(ads)f(a)h
+(\014le)g(that)h(stor)m(es)f(tr)m(aining)h(data,)g(in)g(the)f(format:)
+429 922 y(num)p 564 922 22 4 v 25 w(tr)m(ain)p 732 922
+V 26 w(data)h(num)p 1051 922 V 25 w(input)f(num)p 1394
+922 V 25 w(output)p Fj(n)p Fb(n)429 988 y(inputdata)h(sep)m(er)m(ate)m
+(d)e(by)h(sp)m(ac)m(e)p Fj(n)p Fb(n)429 1054 y(outputdata)g(sep)m(er)m
+(ate)m(d)f(by)h(sp)m(ac)m(e)p Fj(n)p Fb(n)429 1187 y(.)429
+1254 y(.)429 1320 y(.)429 1453 y(inputdata)h(sep)m(er)m(ate)m(d)e(by)h
+(sp)m(ac)m(e)p Fj(n)p Fb(n)429 1519 y(outputdata)g(sep)m(er)m(ate)m(d)f
+(by)h(sp)m(ac)m(e)p Fj(n)p Fb(n)330 1586 y Fj(\003)p
+Fb(/)330 1652 y Fa(struct)23 b Fu(fann)p 679 1652 20
+4 v 23 w(train)p 843 1652 V 23 w(data)p Fj(\003)f Fu(fann)p
+1179 1652 V 23 w(read)p 1328 1652 V 23 w(train)p 1492
+1652 V 24 w(from)p 1651 1652 V 23 w(\014le\()p Fa(c)n(har)f
+Fj(\003)p Fu(\014lename\);)330 1785 y Fb(/)p Fj(\003)33
+b Fb(Destructs)g(the)g(tr)m(aining)h(data)429 1851 y(Be)f(sur)m(e)f(to)
+h(c)m(al)s(l)g(this)h(function)h(after)e(\014nishe)m(d)h(using)f(the)g
+(tr)m(aining)i(data.)363 1918 y Fj(\003)p Fb(/)330 1984
+y Fa(v)n(oid)21 b Fu(fann)p 622 1984 V 23 w(destro)n(y)p
+856 1984 V 24 w(train\()p Fa(struct)h Fu(fann)p 1391
+1984 V 23 w(train)p 1555 1984 V 23 w(data)p Fj(\003)h
+Fu(train)p 1905 1984 V 23 w(data\);)330 2117 y Fe(#ifndef)e
+Fu(FIXEDF)-7 b(ANN)330 2183 y Fb(/)p Fj(\003)33 b Fb(T)-5
+b(r)m(ains)34 b(on)f(an)h(entir)m(e)f(dataset,)h(for)f(a)g(maximum)f
+(of)i(max)p 2070 2183 22 4 v 24 w(ep)m(o)m(chs)429 2250
+y(ep)m(o)m(chs)e(or)h(until)h(me)m(an)f(squar)m(e)f(err)m(or)g(is)i
+(lower)f(than)h(desir)m(e)m(d)p 2166 2250 V 25 w(err)m(or.)429
+2316 y(R)m(ep)m(orts)e(ab)m(out)h(the)f(pr)m(o)m(gr)m(ess)g(is)i(given)
+f(every)429 2383 y(ep)m(o)m(chs)p 624 2383 V 24 w(b)m(etwe)m(en)p
+876 2383 V 24 w(r)m(ep)m(orts)g(ep)m(o)m(chs.)429 2449
+y(If)h(ep)m(o)m(chs)p 705 2449 V 24 w(b)m(etwe)m(en)p
+957 2449 V 24 w(r)m(ep)m(orts)f(is)g(zer)m(o,)g(no)h(r)m(ep)m(orts)f
+(ar)m(e)f(given.)330 2516 y Fj(\003)p Fb(/)330 2582 y
+Fa(v)n(oid)21 b Fu(fann)p 622 2582 20 4 v 23 w(train)p
+786 2582 V 24 w(on)p 880 2582 V 23 w(data\()p Fa(struct)i
+Fu(fann)e Fj(\003)p Fu(ann,)h Fa(struct)h Fu(fann)p 1951
+2582 V 23 w(train)p 2115 2582 V 23 w(data)f Fj(\003)p
+Fu(data,)g Fa(unsigned)g(in)n(t)g Fu(max)p 3041 2582
+V 24 w(ep)r(o)r(c)n(hs,)330 2648 y Fa(unsigned)f(in)n(t)i
+Fu(ep)r(o)r(c)n(hs)p 954 2648 V 22 w(b)r(et)n(w)n(een)p
+1211 2648 V 22 w(rep)r(orts,)f Fa(\015oat)g Fu(desired)p
+1853 2648 V 22 w(error\);)330 2781 y Fb(/)p Fj(\003)33
+b Fb(Do)m(es)g(the)g(same)f(as)i(tr)m(ain)p 1158 2781
+22 4 v 26 w(on)p 1257 2781 V 26 w(data,)f(but)g(r)m(e)m(ads)f(the)h
+(data)g(dir)m(e)m(ctly)g(fr)m(om)g(a)g(\014le.)363 2848
+y Fj(\003)p Fb(/)330 2914 y Fa(v)n(oid)21 b Fu(fann)p
+622 2914 20 4 v 23 w(train)p 786 2914 V 24 w(on)p 880
+2914 V 23 w(\014le\()p Fa(struct)h Fu(fann)g Fj(\003)p
+Fu(ann,)f Fa(c)n(har)h Fj(\003)p Fu(\014lename,)e Fa(unsigned)h(in)n(t)
+i Fu(max)p 2589 2914 V 23 w(ep)r(o)r(c)n(hs,)e Fa(unsigned)g(in)n(t)330
+2980 y Fu(ep)r(o)r(c)n(hs)p 529 2980 V 22 w(b)r(et)n(w)n(een)p
+786 2980 V 23 w(rep)r(orts,)g Fa(\015oat)h Fu(desired)p
+1428 2980 V 22 w(error\);)330 3047 y Fe(#endif)330 3180
+y Fb(/)p Fj(\003)33 b Fb(Save)g(the)g(tr)m(aining)h(structur)m(e)e(to)i
+(a)f(\014le.)363 3246 y Fj(\003)p Fb(/)330 3313 y Fa(v)n(oid)21
+b Fu(fann)p 622 3313 V 23 w(sa)n(v)n(e)p 765 3313 V 24
+w(train\()p Fa(struct)i Fu(fann)p 1301 3313 V 23 w(train)p
+1465 3313 V 23 w(data)p Fj(\003)f Fu(data,)g Fa(c)n(har)g
+Fj(\003)p Fu(\014lename\);)330 3445 y Fb(/)p Fj(\003)33
+b Fb(Saves)g(the)g(tr)m(aining)h(structur)m(e)f(to)g(a)g(\014xe)m(d)f
+(p)m(oint)i(data)g(\014le.)363 3512 y Fj(\003)66 b Fb(\(V)-5
+b(ery)34 b(useful)s(l)f(for)h(testing)f(the)g(quality)h(of)f(a)g
+(\014xe)m(d)g(p)m(oint)h(network\).)363 3578 y Fj(\003)p
+Fb(/)330 3645 y Fa(v)n(oid)21 b Fu(fann)p 622 3645 V
+23 w(sa)n(v)n(e)p 765 3645 V 24 w(train)p 930 3645 V
+24 w(to)p 1013 3645 V 23 w(\014xed\()p Fa(struct)h Fu(fann)p
+1546 3645 V 23 w(train)p 1710 3645 V 23 w(data)p Fj(\003)h
+Fu(data,)e Fa(c)n(har)i Fj(\003)p Fu(\014lename,)d Fa(unsigned)h(in)n
+(t)330 3711 y Fu(decimal)p 557 3711 V 22 w(p)r(oin)n(t\);)330
+3844 y Fb(/)p Fj(\003)33 b Fb(R)m(e)m(ads)f(the)h(me)m(an)f(squar)m(e)g
+(err)m(or)h(fr)m(om)g(the)g(network.)363 3910 y Fj(\003)p
+Fb(/)330 3977 y Fa(\015oat)22 b Fu(fann)p 630 3977 V
+23 w(get)p 742 3977 V 23 w(error\()p Fa(struct)h Fu(fann)e
+Fj(\003)p Fu(ann\);)330 4110 y Fb(/)p Fj(\003)33 b Fb(R)m(esets)f(the)h
+(me)m(an)f(squar)m(e)h(err)m(or)f(fr)m(om)h(the)g(network.)363
+4176 y Fj(\003)p Fb(/)330 4242 y Fa(v)n(oid)21 b Fu(fann)p
+622 4242 V 23 w(reset)p 783 4242 V 23 w(error\()p Fa(struct)i
+Fu(fann)e Fj(\003)p Fu(ann\);)330 4375 y Fb(/)p Fj(\003)33
+b Fb(|{)g(R)n(unning)26 b(|{)34 b Fj(\003)p Fb(/)330
+4508 y(/)p Fj(\003)f Fb(R)n(uns)h(a)f(input)h(thr)m(ough)e(the)h
+(network,)h(and)f(r)m(eturns)g(the)g(output.)363 4575
+y Fj(\003)p Fb(/)330 4641 y Fu(fann)p 462 4641 V 23 w(t)n(yp)r(e)p
+Fj(\003)21 b Fu(fann)p 796 4641 V 23 w(run\()p Fa(struct)h
+Fu(fann)g Fj(\003)p Fu(ann,)f(fann)p 1620 4641 V 23 w(t)n(yp)r(e)h
+Fj(\003)p Fu(input\);)330 4774 y Fe(#ifdef)g Fu(FIXEDF)-7
+b(ANN)330 4907 y Fb(/)p Fj(\003)33 b Fb(r)m(eturns)g(the)g(p)m(osition)
+i(of)e(the)g(de)m(cimal)f(p)m(oint.)363 4973 y Fj(\003)p
+Fb(/)330 5039 y Fa(unsigned)21 b(in)n(t)i Fu(fann)p 887
+5039 V 23 w(get)p 999 5039 V 23 w(decimal)p 1245 5039
+V 22 w(p)r(oin)n(t\()p Fa(struct)f Fu(fann)f Fj(\003)p
+Fu(ann\);)330 5172 y Fb(/)p Fj(\003)33 b Fb(r)m(eturns)g(the)g
+(multiplier)g(that)h(\014x)f(p)m(oint)g(data)h(is)g(multiplie)m(d)e
+(with.)363 5239 y Fj(\003)p Fb(/)330 5305 y Fa(unsigned)21
+b(in)n(t)i Fu(fann)p 887 5305 V 23 w(get)p 999 5305 V
+23 w(m)n(ultiplier\()p Fa(struct)e Fu(fann)g Fj(\003)p
+Fu(ann\);)330 5372 y Fe(#endif)330 5504 y(#ifdef)p 542
+5504 V 565 5504 V 69 w Fu(cplusplus)330 5571 y Fj(g)330
+5637 y Fe(#endif)p Black 1788 5919 a Fy(51)p Black eop
+end
+%%Page: 52 56
+TeXDict begin 52 55 bop Black 330 70 a Fp(B.1)82 b(The)28
+b(library)1617 b(B)83 b(SOUR)n(CE)27 b(CODE)p 330 103
+3000 4 v Black 330 390 a Fs(B.1.2)94 b Ft(fann)p 823
+390 27 4 v 30 w(data.h)p Black Black 330 510 a Fe(#ifndef)p
+572 510 20 4 v 596 510 V 69 w Fu(fann)p 748 510 V 23
+w(data)p 900 510 V 24 w(h)p 961 510 V 984 510 V 330 577
+a Fe(#define)p 572 577 V 596 577 V 69 w Fu(fann)p 748
+577 V 23 w(data)p 900 577 V 24 w(h)p 961 577 V 984 577
+V 330 709 a Fb(/)p Fj(\003)33 b Fb(|{)g(Data)h(structur)m(es)e(|{)363
+776 y Fj(\003)h Fb(No)h(data)f(within)i(these)e(structur)m(es)f(should)
+h(b)m(e)f(alter)m(e)m(d)g(dir)m(e)m(ctly)g(by)i(the)e(user.)363
+842 y Fj(\003)p Fb(/)330 975 y Fa(struct)23 b Fu(fann)p
+679 975 V 23 w(neuron)330 1042 y Fj(f)462 1108 y Fu(fann)p
+594 1108 V 23 w(t)n(yp)r(e)f Fj(\003)p Fu(w)n(eigh)n(ts;)462
+1174 y Fa(struct)i Fu(fann)p 812 1174 V 22 w(neuron)d
+Fj(\003\003)p Fu(connected)p 1413 1174 V 21 w(neurons;)462
+1241 y Fa(unsigned)h(in)n(t)g Fu(n)n(um)p 1018 1241 V
+23 w(connections;)462 1307 y(fann)p 594 1307 V 23 w(t)n(yp)r(e)g(v)l
+(alue;)330 1374 y Fj(g)p 368 1374 V 392 1374 V 48 w Fu(attribute)p
+676 1374 V 698 1374 V 46 w(\(\(pac)n(k)n(ed\)\);)330
+1507 y Fb(/)p Fj(\003)33 b Fb(A)h(single)f(layer)g(in)h(the)f(neur)m
+(al)g(network.)363 1573 y Fj(\003)p Fb(/)330 1639 y Fa(struct)23
+b Fu(fann)p 679 1639 V 23 w(la)n(y)n(er)330 1706 y Fj(f)462
+1772 y Fb(/)p Fj(\003)34 b Fb(A)f(p)m(ointer)g(to)h(the)f(\014rst)g
+(neur)m(on)h(in)g(the)f(layer)495 1839 y Fj(\003)h Fb(When)f(al)s(lo)m
+(c)m(ate)m(d,)f(al)s(l)i(the)f(neur)m(ons)g(in)h(al)s(l)g(the)f(layers)
+g(ar)m(e)g(actual)s(ly)495 1905 y Fj(\003)h Fb(in)g(one)f(long)g(arr)m
+(ay,)h(this)g(is)f(b)m(e)m(c)m(ause)e(we)i(wan)-7 b('t)34
+b(to)g(e)m(asily)f(cle)m(ar)f(al)s(l)495 1971 y Fj(\003)i
+Fb(the)e(neur)m(ons)i(at)f(onc)m(e.)495 2038 y Fj(\003)p
+Fb(/)462 2104 y Fa(struct)24 b Fu(fann)p 812 2104 V 22
+w(neuron)d Fj(\003)p Fu(\014rst)p 1205 2104 V 24 w(neuron;)462
+2237 y Fb(/)p Fj(\003)34 b Fb(A)f(p)m(ointer)g(to)h(the)f(neur)m(on)g
+(p)m(ast)g(the)g(last)g(neur)m(on)g(in)h(the)f(layer)g
+Fj(\003)p Fb(/)462 2304 y(/)p Fj(\003)h Fb(the)e(numb)m(er)g(of)i(neur)
+m(ons)f(is)h(last)p 1488 2304 22 4 v 26 w(neur)m(on)f(-)g(\014rst)p
+1930 2304 V 26 w(neur)m(on)g Fj(\003)p Fb(/)462 2370
+y Fa(struct)24 b Fu(fann)p 812 2370 20 4 v 22 w(neuron)d
+Fj(\003)p Fu(last)p 1193 2370 V 24 w(neuron;)330 2436
+y Fj(g)p Fu(;)330 2569 y Fb(/)p Fj(\003)33 b Fb(The)g(fast)h
+(arti\014cial)g(neur)m(al)e(network\(fann\))k(structur)m(e)363
+2636 y Fj(\003)p Fb(/)330 2702 y Fa(struct)23 b Fu(fann)330
+2768 y Fj(f)462 2835 y Fb(/)p Fj(\003)34 b Fb(the)e(le)m(arning)i(r)m
+(ate)e(of)i(the)f(network)g Fj(\003)p Fb(/)462 2901 y
+Fa(\015oat)23 b Fu(learning)p 869 2901 V 22 w(rate;)462
+3034 y Fb(/)p Fj(\003)34 b Fb(the)e(c)m(onne)m(ction)i(r)m(ate)e(of)i
+(the)f(network)495 3101 y Fj(\003)h Fb(b)m(etwe)m(en)d(0)i(and)h(1,)g
+(1)f(me)m(aning)g(ful)s(ly)h(c)m(onne)m(cte)m(d)495 3167
+y Fj(\003)p Fb(/)462 3233 y Fa(\015oat)23 b Fu(connection)p
+947 3233 V 21 w(rate;)462 3366 y Fb(/)p Fj(\003)34 b
+Fb(p)m(ointer)f(to)g(the)g(\014rst)h(layer)f(\(input)h(layer\))g(in)g
+(an)f(arr)m(ay)h(af)f(al)s(l)h(the)f(layers,)495 3433
+y Fj(\003)h Fb(including)f(the)g(input)h(and)g(outputlayers)495
+3499 y Fj(\003)p Fb(/)462 3565 y Fa(struct)24 b Fu(fann)p
+812 3565 V 22 w(la)n(y)n(er)e Fj(\003)p Fu(\014rst)p
+1145 3565 V 24 w(la)n(y)n(er;)462 3698 y Fb(/)p Fj(\003)34
+b Fb(p)m(ointer)f(to)g(the)g(layer)g(p)m(ast)h(the)e(last)i(layer)f(in)
+h(an)g(arr)m(ay)f(af)h(al)s(l)f(the)g(layers,)495 3765
+y Fj(\003)h Fb(including)f(the)g(input)h(and)g(outputlayers)495
+3831 y Fj(\003)p Fb(/)462 3898 y Fa(struct)24 b Fu(fann)p
+812 3898 V 22 w(la)n(y)n(er)e Fj(\003)p Fu(last)p 1133
+3898 V 24 w(la)n(y)n(er;)462 4030 y Fb(/)p Fj(\003)34
+b Fb(T)-5 b(otal)32 b(numb)m(er)g(of)i(neur)m(ons.)495
+4097 y Fj(\003)g Fb(very)e(useful)s(l,)i(b)m(e)m(c)m(ause)d(the)h
+(actual)h(neur)m(ons)g(ar)m(e)g(al)s(lo)m(c)m(ate)m(d)f(in)i(one)f
+(long)g(arr)m(ay)495 4163 y Fj(\003)p Fb(/)462 4230 y
+Fa(unsigned)22 b(in)n(t)g Fu(total)p 1028 4230 V 24 w(neurons;)462
+4362 y Fb(/)p Fj(\003)34 b Fb(Numb)m(er)d(of)j(input)g(neur)m(ons)f
+(\(not)h(c)m(alculating)e(bias\))i Fj(\003)p Fb(/)462
+4429 y Fa(unsigned)22 b(in)n(t)g Fu(n)n(um)p 1018 4429
+V 23 w(input;)462 4562 y Fb(/)p Fj(\003)34 b Fb(Numb)m(er)d(of)j
+(output)f(neur)m(ons)g(\(not)h(c)m(alculating)e(bias\))i
+Fj(\003)p Fb(/)462 4628 y Fa(unsigned)22 b(in)n(t)g Fu(n)n(um)p
+1018 4628 V 23 w(output;)462 4761 y Fb(/)p Fj(\003)34
+b Fb(Use)m(d)e(to)i(c)m(ontain)g(the)e(err)m(or)h(deltas)g(use)m(d)g
+(during)g(tr)m(aining)495 4827 y Fj(\003)h Fb(Is)f(al)s(lo)m(c)m(ate)m
+(d)f(during)i(\014rst)g(tr)m(aining)g(session,)495 4894
+y Fj(\003)g Fb(which)f(me)m(ans)g(that)g(if)h(we)f(do)g(not)h(tr)m
+(ain,)g(it)g(is)g(never)e(al)s(lo)m(c)m(ate)m(d.)495
+4960 y Fj(\003)p Fb(/)462 5027 y Fu(fann)p 594 5027 V
+23 w(t)n(yp)r(e)22 b Fj(\003)p Fu(train)p 942 5027 V
+23 w(deltas;)462 5159 y Fb(/)p Fj(\003)34 b Fb(Use)m(d)e(to)i(cho)m
+(ose)e(which)i(activation)g(function)g(to)f(use)562 5292
+y(Sometimes)f(it)i(c)m(an)f(b)m(e)f(smart,)h(to)h(set)f(the)f
+(activation)j(function)f(for)g(the)e(hidden)i(neur)m(ons)562
+5359 y(to)f(THRESHOLD)g(and)h(the)f(activation)h(function)g(for)g(the)f
+(output)g(neur)m(ons)g(to)h(SIGMOID,)562 5425 y(in)g(this)g(way)f(you)h
+(get)e(a)h(very)g(fast)h(network,)g(that)f(is)h(stil)s(l)g(c)m(ab)m
+(able)d(of)562 5492 y(pr)m(o)m(ducing)h(r)m(e)m(al)g(value)m(d)g
+(output.)495 5558 y Fj(\003)p Fb(/)462 5624 y Fa(unsigned)22
+b(in)n(t)g Fu(activ)l(ation)p 1178 5624 V 23 w(function)p
+1441 5624 V 22 w(hidden,)e(activ)l(ation)p 1986 5624
+V 23 w(function)p 2249 5624 V 22 w(output;)p Black 1788
+5919 a Fy(52)p Black eop end
+%%Page: 53 57
+TeXDict begin 53 56 bop Black 330 70 a Fp(B.1)82 b(The)28
+b(library)1617 b(B)83 b(SOUR)n(CE)27 b(CODE)p 330 103
+3000 4 v Black 462 457 a Fb(/)p Fj(\003)34 b Fb(Par)m(ameters)e(for)h
+(the)g(activation)h(function)h Fj(\003)p Fb(/)462 523
+y Fu(fann)p 594 523 20 4 v 23 w(t)n(yp)r(e)22 b(activ)l(ation)p
+1054 523 V 23 w(hidden)p 1274 523 V 21 w(steepness;)462
+589 y(fann)p 594 589 V 23 w(t)n(yp)r(e)g(activ)l(ation)p
+1054 589 V 23 w(output)p 1273 589 V 22 w(steepness;)330
+722 y Fe(#ifdef)g Fu(FIXEDF)-7 b(ANN)462 789 y Fb(/)p
+Fj(\003)34 b Fb(the)e(de)m(cimal)p 917 789 22 4 v 25
+w(p)m(oint,)i(use)m(d)e(for)i(shifting)h(the)d(\014x)i(p)m(oint)562
+855 y(in)g(\014xe)m(d)e(p)m(oint)i(inte)m(ger)e(op)m(er)m(atons.)462
+922 y Fj(\003)p Fb(/)462 988 y Fa(unsigned)22 b(in)n(t)g
+Fu(decimal)p 1114 988 20 4 v 22 w(p)r(oin)n(t;)462 1121
+y Fb(/)p Fj(\003)34 b Fb(the)e(multiplier,)i(use)m(d)e(for)i
+(multiplying)g(the)f(\014x)g(p)m(oint)562 1187 y(in)h(\014xe)m(d)e(p)m
+(oint)i(inte)m(ger)e(op)m(er)m(atons.)562 1254 y(Only)i(use)m(d)e(in)i
+(sp)m(e)m(cial)e(c)m(ases,)h(sinc)m(e)g(the)g(de)m(cimal)p
+1958 1254 22 4 v 24 w(p)m(oint)h(is)g(much)e(faster.)462
+1320 y Fj(\003)p Fb(/)462 1386 y Fa(unsigned)22 b(in)n(t)g
+Fu(m)n(ultiplier;)462 1519 y Fb(/)p Fj(\003)34 b Fb(When)f(in)h(\014xe)
+m(d)f(p)m(oint,)h(the)f(sigmoid)g(function)h(is)g(c)m(alculate)m(d)d
+(as)j(a)f(stepwise)h(line)m(ar)562 1586 y(function.)g(In)g(the)f
+(activa-)330 1652 y(tion)p 451 1652 V 26 w(r)m(esults)g(arr)m(ay,)h
+(the)f(r)m(esult)f(is)i(save)m(d,)e(and)i(in)g(the)f(two)h(values)e
+(arr)m(ays,)562 1719 y(the)h(values)f(that)h(gives)g(the)g(r)m(esults)g
+(ar)m(e)f(save)m(d.)495 1785 y Fj(\003)p Fb(/)462 1851
+y Fu(fann)p 594 1851 20 4 v 23 w(t)n(yp)r(e)22 b(activ)l(ation)p
+1054 1851 V 23 w(results[6];)462 1918 y(fann)p 594 1918
+V 23 w(t)n(yp)r(e)g(activ)l(ation)p 1054 1918 V 23 w(hidden)p
+1274 1918 V 21 w(v)l(alues[6];)462 1984 y(fann)p 594
+1984 V 23 w(t)n(yp)r(e)g(activ)l(ation)p 1054 1984 V
+23 w(output)p 1273 1984 V 22 w(v)l(alues[6];)330 2117
+y Fe(#endif)462 2250 y Fb(/)p Fj(\003)34 b Fb(T)-5 b(otal)32
+b(numb)m(er)g(of)i(c)m(onne)m(ctions.)495 2316 y Fj(\003)g
+Fb(very)e(useful)s(l,)i(b)m(e)m(c)m(ause)d(the)h(actual)h(c)m(onne)m
+(ctions)495 2383 y Fj(\003)h Fb(ar)m(e)e(al)s(lo)m(c)m(ate)m(d)g(in)i
+(one)f(long)g(arr)m(ay)495 2449 y Fj(\003)p Fb(/)462
+2516 y Fa(unsigned)22 b(in)n(t)g Fu(total)p 1028 2516
+V 24 w(connections;)462 2648 y Fb(/)p Fj(\003)34 b Fb(use)m(d)e(to)h
+(stor)m(e)g(outputs)g(in)h Fj(\003)p Fb(/)462 2715 y
+Fu(fann)p 594 2715 V 23 w(t)n(yp)r(e)22 b Fj(\003)p Fu(output;)462
+2848 y Fb(/)p Fj(\003)34 b Fb(the)e(numb)m(er)g(of)i(data)f(use)m(d)g
+(to)g(c)m(alculate)e(the)i(err)m(or.)495 2914 y Fj(\003)p
+Fb(/)462 2980 y Fa(unsigned)22 b(in)n(t)g Fu(n)n(um)p
+1018 2980 V 23 w(errors;)462 3113 y Fb(/)p Fj(\003)34
+b Fb(the)e(total)i(err)m(or)e(value.)562 3180 y(the)h(r)m(e)m(al)f(me)m
+(an)g(squar)m(e)g(err)m(or)h(is)g(err)m(or)p 1658 3180
+22 4 v 25 w(value/num)p 2003 3180 V 24 w(err)m(ors)495
+3246 y Fj(\003)p Fb(/)462 3313 y Fa(\015oat)23 b Fu(error)p
+776 3313 20 4 v 23 w(v)l(alue;)330 3379 y Fj(g)p Fu(;)330
+3512 y Fb(/)p Fj(\003)33 b Fb(Structur)m(e)f(use)m(d)h(to)g(stor)m(e)g
+(data,)h(for)f(use)g(with)h(tr)m(aining.)h Fj(\003)p
+Fb(/)330 3578 y Fa(struct)23 b Fu(fann)p 679 3578 V 23
+w(train)p 843 3578 V 23 w(data)330 3645 y Fj(f)462 3711
+y Fa(unsigned)f(in)n(t)g Fu(n)n(um)p 1018 3711 V 23 w(data;)462
+3778 y Fa(unsigned)g(in)n(t)g Fu(n)n(um)p 1018 3778 V
+23 w(input;)462 3844 y Fa(unsigned)g(in)n(t)g Fu(n)n(um)p
+1018 3844 V 23 w(output;)462 3910 y(fann)p 594 3910 V
+23 w(t)n(yp)r(e)g Fj(\003\003)p Fu(input;)462 3977 y(fann)p
+594 3977 V 23 w(t)n(yp)r(e)g Fj(\003\003)p Fu(output;)330
+4043 y Fj(g)p Fu(;)330 4176 y Fe(#endif)p Black 1788
+5919 a Fy(53)p Black eop end
+%%Page: 54 58
+TeXDict begin 54 57 bop Black 330 70 a Fp(B.1)82 b(The)28
+b(library)1617 b(B)83 b(SOUR)n(CE)27 b(CODE)p 330 103
+3000 4 v Black 330 390 a Fs(B.1.3)94 b Ft(floatfann.h)p
+Black Black 330 510 a Fe(#ifndef)p 572 510 20 4 v 596
+510 V 69 w Fu(\015oatfann)p 878 510 V 23 w(h)p 938 510
+V 961 510 V 330 577 a Fe(#define)p 572 577 V 596 577
+V 69 w Fu(\015oatfann)p 878 577 V 23 w(h)p 938 577 V
+961 577 V 330 709 a Fa(t)n(yp)r(edef)30 b(\015oat)22
+b Fu(fann)p 904 709 V 23 w(t)n(yp)r(e;)330 776 y Fe(#define)f
+Fu(FLO)n(A)-5 b(TF)e(ANN)330 842 y Fe(#define)21 b Fu(F)-7
+b(ANNPRINTF)23 b Fe("\045.20e")330 909 y(#define)e Fu(F)-7
+b(ANNSCANF)22 b Fe("\045f")330 1042 y(#include)f Fu(")p
+Fe(fann.h)p Fu(")330 1174 y Fe(#endif)330 1390 y Fs(B.1.4)94
+b Ft(doublefann.h)p Black Black 330 1510 a Fe(#ifndef)p
+572 1510 V 596 1510 V 69 w Fu(doublefann)p 941 1510 V
+21 w(h)p 999 1510 V 1023 1510 V 330 1577 a Fe(#define)p
+572 1577 V 596 1577 V 69 w Fu(doublefann)p 941 1577 V
+21 w(h)p 999 1577 V 1023 1577 V 330 1710 a Fa(t)n(yp)r(edef)30
+b(double)22 b Fu(fann)p 977 1710 V 23 w(t)n(yp)r(e;)330
+1776 y Fe(#define)f Fu(DOUBLEF)-7 b(ANN)330 1842 y Fe(#define)21
+b Fu(F)-7 b(ANNPRINTF)23 b Fe("\045.20e")330 1909 y(#define)e
+Fu(F)-7 b(ANNSCANF)22 b Fe("\045le")330 2042 y(#include)f
+Fu(")p Fe(fann.h)p Fu(")330 2174 y Fe(#endif)330 2390
+y Fs(B.1.5)94 b Ft(fixedfann.h)p Black Black 330 2510
+a Fe(#ifndef)p 572 2510 V 596 2510 V 69 w Fu(\014xedfann)p
+888 2510 V 22 w(h)p 947 2510 V 970 2510 V 330 2577 a
+Fe(#define)p 572 2577 V 596 2577 V 69 w Fu(\014xedfann)p
+888 2577 V 22 w(h)p 947 2577 V 970 2577 V 330 2710 a
+Fa(t)n(yp)r(edef)30 b(in)n(t)22 b Fu(fann)p 848 2710
+V 23 w(t)n(yp)r(e;)330 2776 y Fe(#define)f Fu(FIXEDF)-7
+b(ANN)330 2842 y Fe(#define)21 b Fu(F)-7 b(ANNPRINTF)23
+b Fe("\045d")330 2909 y(#define)e Fu(F)-7 b(ANNSCANF)22
+b Fe("\045d")330 3042 y(#include)f Fu(")p Fe(fann.h)p
+Fu(")330 3174 y Fe(#endif)p Black 1788 5919 a Fy(54)p
+Black eop end
+%%Page: 55 59
+TeXDict begin 55 58 bop Black 330 70 a Fp(B.1)82 b(The)28
+b(library)1617 b(B)83 b(SOUR)n(CE)27 b(CODE)p 330 103
+3000 4 v Black 330 390 a Fs(B.1.6)94 b Ft(fann)p 823
+390 27 4 v 30 w(internal.h)p Black Black 330 510 a Fe(#ifndef)p
+572 510 20 4 v 596 510 V 69 w Fu(fann)p 748 510 V 23
+w(in)n(ternal)p 996 510 V 22 w(h)p 1055 510 V 1079 510
+V 330 577 a Fe(#define)p 572 577 V 596 577 V 69 w Fu(fann)p
+748 577 V 23 w(in)n(ternal)p 996 577 V 22 w(h)p 1055
+577 V 1079 577 V 330 643 a Fb(/)p Fj(\003)33 b Fb(internal)h(include)g
+(\014le,)f(not)h(to)f(b)m(e)f(include)m(d)h(dir)m(e)m(ctly)363
+709 y Fj(\003)p Fb(/)330 842 y Fe(#include)21 b Fk(<)p
+Fe(math.h)p Fk(>)330 909 y Fe(#include)g Fu(")p Fe(fann)p
+760 909 19 4 v 22 w(data.h)p Fu(")330 1042 y Fe(#define)g
+Fu(F)-7 b(ANN)p 755 1042 20 4 v 24 w(FIX)p 895 1042 V
+24 w(VERSION)22 b Fe("FANN)p 1399 1042 19 4 v 21 w(FIX)p
+1513 1042 V 22 w(0.1")330 1108 y(#define)f Fu(F)-7 b(ANN)p
+755 1108 20 4 v 24 w(FLO)p 914 1108 V 24 w(VERSION)22
+b Fe("FANN)p 1418 1108 19 4 v 21 w(FLO)p 1532 1108 V
+22 w(0.1")330 1241 y(#ifdef)g Fu(FIXEDF)-7 b(ANN)330
+1307 y Fe(#define)21 b Fu(F)-7 b(ANN)p 755 1307 20 4
+v 24 w(VERSION)22 b(F)-7 b(ANN)p 1287 1307 V 23 w(FIX)p
+1426 1307 V 24 w(VERSION)330 1374 y Fe(#else)330 1440
+y(#define)21 b Fu(F)-7 b(ANN)p 755 1440 V 24 w(VERSION)22
+b(F)-7 b(ANN)p 1287 1440 V 23 w(FLO)p 1445 1440 V 24
+w(VERSION)330 1507 y Fe(#endif)330 1639 y Fa(struct)23
+b Fu(fann)f Fj(\003)g Fu(fann)p 885 1639 V 23 w(allo)r(cate)p
+1133 1639 V 22 w(structure\()p Fa(\015oat)f Fu(learning)p
+1846 1639 V 22 w(rate,)h Fa(unsigned)f(in)n(t)i Fu(n)n(um)p
+2576 1639 V 22 w(la)n(y)n(ers\);)330 1706 y Fa(v)n(oid)e
+Fu(fann)p 622 1706 V 23 w(allo)r(cate)p 870 1706 V 23
+w(neurons\()p Fa(struct)h Fu(fann)f Fj(\003)p Fu(ann\);)330
+1839 y Fa(v)n(oid)g Fu(fann)p 622 1839 V 23 w(allo)r(cate)p
+870 1839 V 23 w(connections\()p Fa(struct)g Fu(fann)g
+Fj(\003)p Fu(ann\);)330 1971 y Fa(in)n(t)i Fu(fann)p
+575 1971 V 22 w(sa)n(v)n(e)p 717 1971 V 24 w(in)n(ternal\()p
+Fa(struct)f Fu(fann)g Fj(\003)p Fu(ann,)f Fa(const)h(c)n(har)h
+Fj(\003)p Fu(con\014guration)p 2313 1971 V 22 w(\014le,)e
+Fa(unsigned)g(in)n(t)h Fu(sa)n(v)n(e)p 3006 1971 V 25
+w(as)p 3090 1971 V 24 w(\014xed\);)330 2038 y Fa(v)n(oid)f
+Fu(fann)p 622 2038 V 23 w(sa)n(v)n(e)p 765 2038 V 24
+w(train)p 930 2038 V 24 w(in)n(ternal\()p Fa(struct)g
+Fu(fann)p 1548 2038 V 23 w(train)p 1712 2038 V 23 w(data)p
+Fj(\003)i Fu(data,)f Fa(c)n(har)g Fj(\003)p Fu(\014lename,)e
+Fa(unsigned)h(in)n(t)330 2104 y Fu(sa)n(v)n(e)p 454 2104
+V 24 w(as)p 537 2104 V 24 w(\014xed,)g Fa(unsigned)g(in)n(t)i
+Fu(decimal)p 1389 2104 V 22 w(p)r(oin)n(t\);)330 2237
+y Fa(in)n(t)g Fu(fann)p 575 2237 V 22 w(compare)p 841
+2237 V 23 w(connections\()p Fa(const)d(v)n(oid)p Fj(\003)h
+Fu(c1,)h Fa(const)g(v)n(oid)p Fj(\003)g Fu(c2\);)330
+2304 y Fa(v)n(oid)f Fu(fann)p 622 2304 V 23 w(seed)p
+768 2304 V 23 w(rand\(\);)330 2436 y Fb(/)p Fj(\003)33
+b Fb(c)m(al)s(le)m(d)f(fann)p 767 2436 22 4 v 27 w(max,)h(in)h(or)m
+(der)e(to)h(not)h(interferr)m(e)f(with)h(pr)m(e)m(de\014ne)m(d)e
+(versions)i(of)g(max)e Fj(\003)p Fb(/)330 2503 y Fe(#define)21
+b Fu(fann)p 700 2503 20 4 v 23 w(max\(x,)h(y\))g(\(\(\(x\))g
+Fk(>)g Fu(\(y\)\))g(?)30 b(\(x\))22 b(:)30 b(\(y\)\))330
+2569 y Fe(#define)21 b Fu(fann)p 700 2569 V 23 w(min\(x,)g(y\))i
+(\(\(\(x\))f Fk(<)g Fu(\(y\)\))g(?)30 b(\(x\))22 b(:)29
+b(\(y\)\))330 2702 y Fe(#define)21 b Fu(fann)p 700 2702
+V 23 w(rand\(min)p 993 2702 V 22 w(v)l(alue,)h(max)p
+1329 2702 V 23 w(v)l(alue\))330 2768 y(\(\(\()p Fa(double)p
+Fu(\)\(min)p 794 2768 V 22 w(v)l(alue\)\)+\(\(\()p Fa(double)p
+Fu(\)\(max)p 1541 2768 V 22 w(v)l(alue\)-\(\()p Fa(double)p
+Fu(\)\(min)p 2195 2768 V 21 w(v)l(alue\)\)\))p Fj(\003)p
+Fu(rand\(\))p Fk(=)p Fu(\(RAND)p 2919 2768 V 23 w(MAX+1.0\)\)\))330
+2901 y Fe(#define)f Fu(fann)p 700 2901 V 23 w(abs\(v)l(alue\))h
+(\(\(\(v)l(alue\))g Fk(>)g Fu(0\))g(?)30 b(\(v)l(alue\))22
+b(:)29 b(-\(v)l(alue\)\))330 3034 y Fe(#ifdef)22 b Fu(FIXEDF)-7
+b(ANN)330 3167 y Fe(#define)21 b Fu(fann)p 700 3167 V
+23 w(m)n(ult\(x,y\))g(\(\(x)p Fj(\003)p Fu(y\))h Fj(\035)h
+Fu(decimal)p 1536 3167 V 22 w(p)r(oin)n(t\))330 3233
+y Fe(#define)e Fu(fann)p 700 3233 V 23 w(div\(x,y\))g(\(\(\(x\))i
+Fj(\034)f Fu(decimal)p 1449 3233 V 22 w(p)r(oin)n(t\))p
+Fk(=)p Fu(y\))330 3300 y Fe(#define)f Fu(fann)p 700 3300
+V 23 w(random)p 944 3300 V 23 w(w)n(eigh)n(t\(\))h(\(fann)p
+1383 3300 V 23 w(t)n(yp)r(e\)\(fann)p 1714 3300 V 22
+w(rand\(-m)n(ultiplier)p Fk(=)p Fu(10,m)n(ultiplier)p
+Fk(=)p Fu(10\)\))330 3366 y Fb(/)p Fj(\003)33 b Fb(sigmoid)h(c)m
+(alculate)m(d)d(with)j(use)e(of)i(\015o)m(ats,)g(only)g(as)f(r)m(efer)m
+(enc)m(e)e Fj(\003)p Fb(/)330 3433 y Fe(#define)21 b
+Fu(fann)p 700 3433 V 23 w(sigmoid\(steepness,)f(v)l(alue\))i(\(\(fann)p
+1656 3433 V 23 w(t)n(yp)r(e\)\(0.5+\(\(1.0)p Fk(=)p Fu(\(1.0)f(+)h
+(exp\(-2.0)g Fj(\003)330 3499 y Fu(\(\()p Fa(\015oat)p
+Fu(\)steepness)p Fk(=)p Fu(m)n(ultiplier\))c Fj(\003)23
+b Fu(\(\()p Fa(\015oat)p Fu(\)v)l(alue)p Fk(=)p Fu(m)n
+(ultiplier\)\)\)\))p Fj(\003)p Fu(m)n(ultiplier\)\)\))330
+3565 y Fb(/)p Fj(\003)33 b Fb(sigmoid)h(as)f(a)g(stepwise)h(line)m(ar)f
+(function)h Fj(\003)p Fb(/)330 3632 y Fe(#define)21 b
+Fu(fann)p 700 3632 V 23 w(linear\(v1,)g(r1,)h(v2,)h(r2,)f(v)l(alue\))f
+(\(\(\(\(r2-r1\))i Fj(\003)f Fu(\(v)l(alue-v1\)\))p Fk(=)p
+Fu(\(v2-v1\)\))g(+)h(r1\))330 3698 y Fe(#define)d Fu(fann)p
+699 3698 V 23 w(sigmoid)p 944 3698 V 23 w(step)n(wise\(v1,)h(v2,)g(v3,)
+h(v4,)f(v5,)g(v6,)g(r1,)g(r2,)h(r3,)f(r4,)g(r5,)h(r6,)f(v)l(alue,)g(m)n
+(ultiplier\))d(\(v)l(alue)j Fk(<)g Fu(v5)330 3765 y(?)30
+b(\(v)l(alue)22 b Fk(<)g Fu(v3)g(?)30 b(\(v)l(alue)22
+b Fk(<)g Fu(v2)g(?)30 b(\(v)l(alue)22 b Fk(<)g Fu(v1)g(?)30
+b(0)23 b(:)29 b(fann)p 1896 3765 V 23 w(linear\(v1,)21
+b(r1,)h(v2,)g(r2,)g(v)l(alue\)\))g(:)29 b(fann)p 2926
+3765 V 23 w(linear\(v2,)21 b(r2,)330 3831 y(v3,)h(r3,)g(v)l(alue\)\))g
+(:)29 b(\(v)l(alue)22 b Fk(<)g Fu(v4)h(?)29 b(fann)p
+1366 3831 V 23 w(linear\(v3,)21 b(r3,)h(v4,)h(r4,)f(v)l(alue\))f(:)30
+b(fann)p 2371 3831 V 23 w(linear\(v4,)20 b(r4,)j(v5,)f(r5,)g(v)l
+(alue\)\)\))g(:)330 3898 y(\(v)l(alue)g Fk(<)g Fu(v6)g(?)30
+b(fann)p 885 3898 V 23 w(linear\(v5,)21 b(r5,)h(v6,)g(r6,)g(v)l(alue\))
+g(:)29 b(m)n(ultiplier\)\))330 3964 y Fe(#else)330 4097
+y(#define)21 b Fu(fann)p 700 4097 V 23 w(m)n(ult\(x,y\))g(\(x)p
+Fj(\003)p Fu(y\))330 4163 y Fe(#define)g Fu(fann)p 700
+4163 V 23 w(div\(x,y\))g(\(x)p Fk(=)p Fu(y\))330 4230
+y Fe(#define)g Fu(fann)p 700 4230 V 23 w(random)p 944
+4230 V 23 w(w)n(eigh)n(t\(\))h(\(fann)p 1383 4230 V 23
+w(rand\(-0.1,0.1\)\))330 4296 y Fe(#define)f Fu(fann)p
+700 4296 V 23 w(sigmoid\(steepness,)f(v)l(alue\))i(\(1.0)p
+Fk(=)p Fu(\(1.0)g(+)h(exp\(-2.0)e Fj(\003)i Fu(steepness)e
+Fj(\003)h Fu(v)l(alue\)\)\))330 4362 y Fe(#define)f Fu(fann)p
+700 4362 V 23 w(sigmoid)p 945 4362 V 23 w(deriv)n(e\(steepness,)f(v)l
+(alue\))i(\(2.0)g Fj(\003)g Fu(steepness)f Fj(\003)i
+Fu(v)l(alue)e Fj(\003)i Fu(\(1.0)f(-)h(v)l(alue\)\))330
+4495 y Fe(#endif)330 4628 y(#endif)p Black 1788 5919
+a Fy(55)p Black eop end
+%%Page: 56 60
+TeXDict begin 56 59 bop Black 330 70 a Fp(B.1)82 b(The)28
+b(library)1617 b(B)83 b(SOUR)n(CE)27 b(CODE)p 330 103
+3000 4 v Black 330 390 a Fs(B.1.7)94 b Ft(fann.c)p Black
+Black 330 510 a Fe(#include)21 b Fk(<)p Fe(stdio.h)p
+Fk(>)330 577 y Fe(#include)g Fk(<)p Fe(stdlib.h)p Fk(>)330
+643 y Fe(#include)g Fk(<)p Fe(stdarg.h)p Fk(>)330 709
+y Fe(#include)g Fk(<)p Fe(string.h)p Fk(>)330 842 y Fb(/)p
+Fj(\003)33 b Fb(cr)m(e)m(ate)f(a)h(neur)m(al)f(network.)363
+909 y Fj(\003)p Fb(/)330 975 y Fa(struct)23 b Fu(fann)f
+Fj(\003)g Fu(fann)p 885 975 20 4 v 23 w(create\()p Fa(\015oat)e
+Fu(connection)p 1587 975 V 22 w(rate,)h Fa(\015oat)h
+Fu(learning)p 2166 975 V 23 w(rate,)462 1042 y Fa(unsigned)g(in)n(t)g
+Fu(n)n(um)p 1018 1042 V 23 w(la)n(y)n(ers,)81 b Fb(/)p
+Fj(\003)33 b Fb(the)g(numb)m(er)f(of)i(layers,)f(including)h(the)f
+(input)h(and)g(output)f(layer)g Fj(\003)p Fb(/)462 1108
+y Fk(:)11 b(:)g(:)p Fu(\))330 1174 y Fb(/)p Fj(\003)33
+b Fb(the)g(numb)m(er)f(of)h(neur)m(ons)h(in)g(e)m(ach)e(of)h(the)g
+(layers,)h(starting)g(with)g(the)f(input)h(layer)f(and)h(ending)g(with)
+g(the)f(output)f(layer)i Fj(\003)p Fb(/)330 1241 y Fj(f)462
+1307 y Fu(v)l(a)p 530 1307 V 25 w(list)22 b(la)n(y)n(er)p
+806 1307 V 23 w(sizes;)462 1374 y Fa(struct)i Fu(fann)p
+812 1374 V 22 w(la)n(y)n(er)e Fj(\003)p Fu(la)n(y)n(er)p
+1168 1374 V 24 w(it,)g Fj(\003)p Fu(last)p 1416 1374
+V 24 w(la)n(y)n(er,)g Fj(\003)p Fu(prev)p 1782 1374 V
+22 w(la)n(y)n(er;)462 1440 y Fa(struct)i Fu(fann)d Fj(\003)p
+Fu(ann;)462 1507 y Fa(struct)j Fu(fann)p 812 1507 V 22
+w(neuron)d Fj(\003)p Fu(neuron)p 1289 1507 V 23 w(it,)h
+Fj(\003)p Fu(last)p 1536 1507 V 24 w(neuron,)e Fj(\003)p
+Fu(random)p 2054 1507 V 23 w(neuron,)h Fj(\003)p Fu(bias)p
+2466 1507 V 24 w(neuron;)462 1573 y Fa(unsigned)h(in)n(t)g
+Fu(prev)p 1019 1573 V 23 w(la)n(y)n(er)p 1181 1573 V
+23 w(size,)g(i,)g(j;)462 1639 y Fa(unsigned)g(in)n(t)g
+Fu(n)n(um)p 1018 1639 V 23 w(neurons)p 1267 1639 V 23
+w(in,)f(n)n(um)p 1513 1639 V 23 w(neurons)p 1762 1639
+V 23 w(out;)462 1706 y Fa(unsigned)h(in)n(t)g Fu(min)p
+1002 1706 V 23 w(connections,)e(max)p 1525 1706 V 23
+w(connections,)g(n)n(um)p 2052 1706 V 23 w(connections;)462
+1772 y Fa(unsigned)i(in)n(t)g Fu(connections)p 1229 1772
+V 22 w(p)r(er)p 1346 1772 V 22 w(neuron,)f(allo)r(cated)p
+1870 1772 V 22 w(connections;)462 1839 y Fa(unsigned)h(in)n(t)g
+Fu(random)p 1112 1839 V 23 w(n)n(um)n(b)r(er,)e(found)p
+1559 1839 V 23 w(connection;)330 1971 y Fe(#ifdef)i Fu(FIXEDF)-7
+b(ANN)462 2038 y Fa(unsigned)22 b(in)n(t)g Fu(decimal)p
+1114 2038 V 22 w(p)r(oin)n(t;)462 2104 y Fa(unsigned)g(in)n(t)g
+Fu(m)n(ultiplier;)330 2171 y Fe(#endif)462 2304 y Fa(if)7
+b Fu(\(connection)p 855 2304 V 22 w(rate)22 b Fk(>)g
+Fu(1\))p Fj(f)595 2370 y Fu(connection)p 911 2370 V 21
+w(rate)g(=)g(1;)462 2436 y Fj(g)462 2569 y Fb(/)p Fj(\003)34
+b Fb(se)m(e)m(d)d(r)m(andom)i Fj(\003)p Fb(/)462 2636
+y Fu(fann)p 594 2636 V 23 w(seed)p 740 2636 V 23 w(rand\(\);)462
+2768 y Fb(/)p Fj(\003)h Fb(al)s(lo)m(c)m(ate)e(the)h(gener)m(al)f
+(structur)m(e)g Fj(\003)p Fb(/)462 2835 y Fu(ann)22 b(=)h(fann)p
+797 2835 V 22 w(allo)r(cate)p 1044 2835 V 23 w(structure\(learning)p
+1591 2835 V 21 w(rate,)e(n)n(um)p 1894 2835 V 23 w(la)n(y)n(ers\);)462
+2901 y(ann)p Fj(!)p Fu(connection)p 951 2901 V 21 w(rate)h(=)h
+(connection)p 1495 2901 V 21 w(rate;)330 2968 y Fe(#ifdef)f
+Fu(FIXEDF)-7 b(ANN)462 3034 y(decimal)p 689 3034 V 22
+w(p)r(oin)n(t)22 b(=)g(ann)p Fj(!)p Fu(decimal)p 1354
+3034 V 21 w(p)r(oin)n(t;)462 3101 y(m)n(ultiplier)e(=)j(ann)p
+Fj(!)p Fu(m)n(ultiplier;)330 3167 y Fe(#endif)462 3300
+y Fb(/)p Fj(\003)34 b Fb(determine)e(how)i(many)f(neur)m(ons)h(ther)m
+(e)e(should)h(b)m(e)f(in)i(e)m(ach)e(layer)h Fj(\003)p
+Fb(/)462 3366 y Fu(v)l(a)p 530 3366 V 25 w(start\(la)n(y)n(er)p
+857 3366 V 23 w(sizes,)22 b(n)n(um)p 1179 3366 V 23 w(la)n(y)n(ers\);)
+462 3433 y Fa(for)p Fu(\(la)n(y)n(er)p 723 3433 V 24
+w(it)g(=)g(ann)p Fj(!)p Fu(\014rst)p 1176 3433 V 23 w(la)n(y)n(er;)g
+(la)n(y)n(er)p 1518 3433 V 24 w(it)g Fj(6)p Fu(=)g(ann)p
+Fj(!)p Fu(last)p 1959 3433 V 24 w(la)n(y)n(er;)f(la)n(y)n(er)p
+2301 3433 V 24 w(it++\))p Fj(f)595 3499 y Fb(/)p Fj(\003)33
+b Fb(we)g(do)g(not)h(al)s(lo)m(c)m(ate)e(r)m(o)m(om)g(her)m(e,)h(but)f
+(we)h(make)f(sur)m(e)h(that)694 3565 y(last)p 802 3565
+22 4 v 26 w(neur)m(on)g(-)g(\014rst)p 1244 3565 V 26
+w(neur)m(on)g(is)h(the)f(numb)m(er)e(of)j(neur)m(ons)f
+Fj(\003)p Fb(/)595 3632 y Fu(la)n(y)n(er)p 738 3632 20
+4 v 23 w(it)p Fj(!)p Fu(\014rst)p 988 3632 V 24 w(neuron)21
+b(=)h(NULL;)595 3698 y(la)n(y)n(er)p 738 3698 V 23 w(it)p
+Fj(!)p Fu(last)p 976 3698 V 24 w(neuron)f(=)h(la)n(y)n(er)p
+1433 3698 V 24 w(it)p Fj(!)p Fu(\014rst)p 1684 3698 V
+23 w(neuron)f(+)i(v)l(a)p 2066 3698 V 24 w(arg\(la)n(y)n(er)p
+2347 3698 V 23 w(sizes,)f Fa(unsigned)f(in)n(t)p Fu(\))i(+1;)330
+3765 y Fb(/)p Fj(\003)33 b Fu(+)p Fb(1)g(for)h(bias)f
+Fj(\003)p Fb(/)595 3898 y Fu(ann)p Fj(!)p Fu(total)p
+909 3898 V 23 w(neurons)21 b(+=)i(la)n(y)n(er)p 1443
+3898 V 23 w(it)p Fj(!)p Fu(last)p 1681 3898 V 24 w(neuron)e(-)i(la)n(y)
+n(er)p 2110 3898 V 23 w(it)p Fj(!)p Fu(\014rst)p 2360
+3898 V 24 w(neuron;)462 3964 y Fj(g)462 4030 y Fu(v)l(a)p
+530 4030 V 25 w(end\(la)n(y)n(er)p 824 4030 V 22 w(sizes\);)462
+4163 y(ann)p Fj(!)p Fu(n)n(um)p 766 4163 V 23 w(output)e(=)i(\(ann)p
+Fj(!)p Fu(last)p 1383 4163 V 23 w(la)n(y)n(er-1\))p Fj(!)p
+Fu(last)p 1796 4163 V 24 w(neuron)e(-)i(\(ann)p Fj(!)p
+Fu(last)p 2389 4163 V 24 w(la)n(y)n(er-1\))p Fj(!)p Fu(\014rst)p
+2815 4163 V 23 w(neuron)e(-1;)462 4230 y(ann)p Fj(!)p
+Fu(n)n(um)p 766 4230 V 23 w(input)g(=)h(ann)p Fj(!)p
+Fu(\014rst)p 1328 4230 V 24 w(la)n(y)n(er)p Fj(!)p Fu(last)p
+1661 4230 V 23 w(neuron)f(-)i(ann)p Fj(!)p Fu(\014rst)p
+2239 4230 V 23 w(la)n(y)n(er)p Fj(!)p Fu(\014rst)p 2583
+4230 V 24 w(neuron)e(-1;)462 4362 y Fb(/)p Fj(\003)34
+b Fb(al)s(lo)m(c)m(ate)e(r)m(o)m(om)g(for)h(the)g(actual)g(neur)m(ons)g
+Fj(\003)p Fb(/)462 4429 y Fu(fann)p 594 4429 V 23 w(allo)r(cate)p
+842 4429 V 23 w(neurons\(ann\);)330 4562 y Fe(#ifdef)22
+b Fu(DEBUG)462 4628 y(prin)n(tf\()p Fe("creating)29 b(network)h(with)g
+(learning)g(rate)g(\045f)h(and)g(connection)e(rate)i(\045f)p
+Fj(n)p Fe(n")p Fu(,)21 b(learning)p 2940 4628 V 23 w(rate,)330
+4695 y(connection)p 646 4695 V 21 w(rate\);)462 4761
+y(prin)n(tf\()p Fe("input)p Fj(n)p Fe(n")p Fu(\);)462
+4827 y(prin)n(tf\()p Fe(")30 b(layer)g(:)62 b(\045d)30
+b(neurons,)g(1)h(bias)p Fj(n)p Fe(n")p Fu(,)21 b(ann)p
+Fj(!)p Fu(\014rst)p 1976 4827 V 24 w(la)n(y)n(er)p Fj(!)p
+Fu(last)p 2309 4827 V 23 w(neuron)g(-)330 4894 y(ann)p
+Fj(!)p Fu(\014rst)p 623 4894 V 23 w(la)n(y)n(er)p Fj(!)p
+Fu(\014rst)p 967 4894 V 24 w(neuron)g(-)h(1\);)330 4960
+y Fe(#endif)462 5093 y Fu(n)n(um)p 593 5093 V 23 w(neurons)p
+842 5093 V 23 w(in)g(=)g(ann)p Fj(!)p Fu(n)n(um)p 1316
+5093 V 23 w(input;)462 5159 y Fa(for)p Fu(\(la)n(y)n(er)p
+723 5159 V 24 w(it)g(=)g(ann)p Fj(!)p Fu(\014rst)p 1176
+5159 V 23 w(la)n(y)n(er+1;)g(la)n(y)n(er)p 1602 5159
+V 24 w(it)g Fj(6)p Fu(=)g(ann)p Fj(!)p Fu(last)p 2043
+5159 V 24 w(la)n(y)n(er;)g(la)n(y)n(er)p 2386 5159 V
+23 w(it++\))p Fj(f)595 5226 y Fu(n)n(um)p 726 5226 V
+23 w(neurons)p 975 5226 V 22 w(out)g(=)h(la)n(y)n(er)p
+1328 5226 V 23 w(it)p Fj(!)p Fu(last)p 1566 5226 V 24
+w(neuron)e(-)i(la)n(y)n(er)p 1995 5226 V 23 w(it)p Fj(!)p
+Fu(\014rst)p 2245 5226 V 24 w(neuron)e(-)i(1;)595 5292
+y Fb(/)p Fj(\003)i Fb(if)34 b(al)s(l)f(neur)m(ons)g(in)h(e)m(ach)e
+(layer)i(should)f(b)m(e)f(c)m(onne)m(cte)m(d)f(to)j(at)f(le)m(ast)g
+(one)g(neur)m(on)661 5359 y(in)h(the)f(pr)m(evious)f(layer,)i(and)g
+(one)f(neur)m(on)g(in)h(the)f(next)g(layer.)661 5425
+y(and)h(the)f(bias)g(no)m(de)g(should)g(b)m(e)f(c)m(onne)m(cte)m(d)g
+(to)h(the)g(al)s(l)g(neur)m(ons)h(in)g(the)f(next)f(layer.)661
+5492 y(Then)h(this)h(is)g(the)e(minimum)h(amount)g(of)h(neur)m(ons)f
+Fj(\003)p Fb(/)595 5558 y Fu(min)p 710 5558 V 23 w(connections)20
+b(=)i(fann)p 1292 5558 V 23 w(max\(n)n(um)p 1591 5558
+V 22 w(neurons)p 1839 5558 V 23 w(in,)g(n)n(um)p 2086
+5558 V 23 w(neurons)p 2335 5558 V 22 w(out\))g(+)h(n)n(um)p
+2702 5558 V 23 w(neurons)p 2951 5558 V 22 w(out;)595
+5624 y(max)p 722 5624 V 23 w(connections)d(=)j(n)n(um)p
+1304 5624 V 23 w(neurons)p 1553 5624 V 22 w(in)f Fj(\003)g
+Fu(n)n(um)p 1836 5624 V 23 w(neurons)p 2085 5624 V 23
+w(out;)310 b Fb(/)p Fj(\003)33 b Fb(not)h(c)m(alculating)f(bias)g
+Fj(\003)p Fb(/)p Black 1788 5919 a Fy(56)p Black eop
+end
+%%Page: 57 61
+TeXDict begin 57 60 bop Black 330 70 a Fp(B.1)82 b(The)28
+b(library)1617 b(B)83 b(SOUR)n(CE)27 b(CODE)p 330 103
+3000 4 v Black 595 390 a Fu(n)n(um)p 726 390 20 4 v 23
+w(connections)20 b(=)i(fann)p 1308 390 V 23 w(max\(min)p
+1591 390 V 22 w(connections,)727 457 y(\()p Fa(unsigned)f(in)n(t)p
+Fu(\)\(0.5+\(connection)p 1685 457 V 22 w(rate)g Fj(\003)i
+Fu(max)p 2023 457 V 23 w(connections\)\))d(+)j(n)n(um)p
+2657 457 V 22 w(neurons)p 2905 457 V 23 w(out\);)595
+589 y(ann)p Fj(!)p Fu(total)p 909 589 V 23 w(connections)d(+=)j(n)n(um)
+p 1542 589 V 22 w(connections;)595 722 y(connections)p
+937 722 V 21 w(p)r(er)p 1053 722 V 23 w(neuron)e(=)h(n)n(um)p
+1497 722 V 23 w(connections)p Fk(=)p Fu(n)n(um)p 2019
+722 V 21 w(neurons)p 2266 722 V 23 w(out;)595 789 y(allo)r(cated)p
+861 789 V 22 w(connections)e(=)i(0;)595 855 y Fb(/)p
+Fj(\003)33 b Fb(Now)h(split)g(out)f(the)f(c)m(onne)m(ctions)i(on)g(the)
+e(di\013er)m(ent)h(neur)m(ons)h Fj(\003)p Fb(/)595 922
+y Fa(for)p Fu(\(i)22 b(=)g(0;)g(i)g Fj(6)p Fu(=)h(n)n(um)p
+1147 922 V 23 w(neurons)p 1396 922 V 22 w(out;)f(i++\))p
+Fj(f)727 988 y Fu(la)n(y)n(er)p 870 988 V 24 w(it)p Fj(!)p
+Fu(\014rst)p 1121 988 V 23 w(neuron[i].n)n(um)p 1547
+988 V 21 w(connections)e(=)i(connections)p 2337 988 V
+22 w(p)r(er)p 2454 988 V 23 w(neuron;)727 1054 y(allo)r(cated)p
+993 1054 V 22 w(connections)e(+=)j(connections)p 1836
+1054 V 21 w(p)r(er)p 1952 1054 V 23 w(neuron;)727 1187
+y Fa(if)7 b Fu(\(allo)r(cated)p 1070 1187 V 23 w(connections)20
+b Fk(<)i Fu(\(n)n(um)p 1678 1187 V 23 w(connections)p
+Fj(\003)p Fu(\(i+1\)\))p Fk(=)p Fu(n)n(um)p 2415 1187
+V 20 w(neurons)p 2661 1187 V 23 w(out\))p Fj(f)859 1254
+y Fu(la)n(y)n(er)p 1002 1254 V 24 w(it)p Fj(!)p Fu(\014rst)p
+1253 1254 V 24 w(neuron[i].n)n(um)p 1680 1254 V 20 w(connections++;)859
+1320 y(allo)r(cated)p 1125 1320 V 23 w(connections++;)727
+1386 y Fj(g)595 1453 y(g)595 1586 y Fb(/)p Fj(\003)33
+b Fb(use)m(d)f(in)i(the)f(next)g(run)g(of)h(the)f(lo)m(op)g
+Fj(\003)p Fb(/)595 1652 y Fu(n)n(um)p 726 1652 V 23 w(neurons)p
+975 1652 V 22 w(in)22 b(=)h(n)n(um)p 1276 1652 V 22 w(neurons)p
+1524 1652 V 23 w(out;)462 1719 y Fj(g)462 1851 y Fu(fann)p
+594 1851 V 23 w(allo)r(cate)p 842 1851 V 23 w(connections\(ann\);)462
+1984 y Fa(if)7 b Fu(\(connection)p 855 1984 V 22 w(rate)22
+b(==)g(1\))p Fj(f)595 2051 y Fu(prev)p 727 2051 V 23
+w(la)n(y)n(er)p 889 2051 V 23 w(size)g(=)g(ann)p Fj(!)p
+Fu(n)n(um)p 1412 2051 V 22 w(input+1;)595 2117 y(prev)p
+727 2117 V 23 w(la)n(y)n(er)g(=)g(ann)p Fj(!)p Fu(\014rst)p
+1273 2117 V 23 w(la)n(y)n(er;)595 2183 y(last)p 703 2183
+V 24 w(la)n(y)n(er)g(=)g(ann)p Fj(!)p Fu(last)p 1238
+2183 V 24 w(la)n(y)n(er;)595 2250 y Fa(for)p Fu(\(la)n(y)n(er)p
+856 2250 V 23 w(it)g(=)g(ann)p Fj(!)p Fu(\014rst)p 1308
+2250 V 24 w(la)n(y)n(er+1;)g(la)n(y)n(er)p 1735 2250
+V 23 w(it)g Fj(6)p Fu(=)h(last)p 2003 2250 V 23 w(la)n(y)n(er;)f(la)n
+(y)n(er)p 2345 2250 V 24 w(it++\))p Fj(f)727 2316 y Fu(last)p
+835 2316 V 24 w(neuron)f(=)h(la)n(y)n(er)p 1292 2316
+V 24 w(it)p Fj(!)p Fu(last)p 1531 2316 V 24 w(neuron-1;)727
+2383 y Fa(for)p Fu(\(neuron)p 1049 2383 V 22 w(it)g(=)h(la)n(y)n(er)p
+1351 2383 V 23 w(it)p Fj(!)p Fu(\014rst)p 1601 2383 V
+24 w(neuron;)d(neuron)p 2064 2383 V 23 w(it)i Fj(6)p
+Fu(=)g(last)p 2331 2383 V 24 w(neuron;)f(neuron)p 2795
+2383 V 22 w(it++\))p Fj(f)859 2449 y Fa(for)p Fu(\(i)h(=)h(0;)f(i)g
+Fj(6)p Fu(=)h(prev)p 1413 2449 V 22 w(la)n(y)n(er)p 1574
+2449 V 24 w(size;)e(i++\))p Fj(f)992 2516 y Fu(neuron)p
+1196 2516 V 22 w(it)p Fj(!)p Fu(w)n(eigh)n(ts[i])h(=)g(fann)p
+1823 2516 V 23 w(random)p 2067 2516 V 23 w(w)n(eigh)n(t\(\);)992
+2582 y Fb(/)p Fj(\003)33 b Fb(these)g(c)m(onne)m(ctions)g(ar)m(e)g
+(stil)s(l)h(initialize)m(d)h(for)e(ful)s(ly)h(c)m(onne)m(cte)m(d)e
+(networks,)i(to)f(al)s(low)1091 2648 y(op)m(er)m(ations)h(to)f(work,)g
+(that)h(ar)m(e)e(not)i(optimize)m(d)f(for)h(ful)s(ly)g(c)m(onne)m(cte)m
+(d)d(networks.)992 2715 y Fj(\003)p Fb(/)992 2781 y Fu(neuron)p
+1196 2781 V 22 w(it)p Fj(!)p Fu(connected)p 1619 2781
+V 21 w(neurons[i])21 b(=)h(prev)p 2145 2781 V 23 w(la)n(y)n(er)p
+Fj(!)p Fu(\014rst)p 2489 2781 V 23 w(neuron+i;)859 2848
+y Fj(g)727 2980 y(g)727 3047 y Fu(prev)p 859 3047 V 23
+w(la)n(y)n(er)p 1021 3047 V 23 w(size)g(=)g(la)n(y)n(er)p
+1383 3047 V 24 w(it)p Fj(!)p Fu(last)p 1622 3047 V 24
+w(neuron)f(-)h(la)n(y)n(er)p 2050 3047 V 24 w(it)p Fj(!)p
+Fu(\014rst)p 2301 3047 V 23 w(neuron;)727 3113 y(prev)p
+859 3113 V 23 w(la)n(y)n(er)g(=)g(la)n(y)n(er)p 1255
+3113 V 24 w(it;)330 3180 y Fe(#ifdef)g Fu(DEBUG)727 3246
+y(prin)n(tf\()p Fe(")30 b(layer)g(:)62 b(\045d)30 b(neurons,)g(1)h
+(bias)p Fj(n)p Fe(n")p Fu(,)21 b(prev)p 2080 3246 V 23
+w(la)n(y)n(er)p 2242 3246 V 23 w(size-1\);)330 3313 y
+Fe(#endif)595 3379 y Fj(g)462 3445 y(g)p Fa(else)p Fj(f)595
+3512 y Fb(/)p Fj(\003)33 b Fb(make)f(c)m(onne)m(ctions)h(for)h(a)f
+(network,)h(that)f(ar)m(e)g(not)g(ful)s(ly)h(c)m(onne)m(cte)m(d)e
+Fj(\003)p Fb(/)595 3645 y(/)p Fj(\003)h Fb(gener)m(al)s(ly,)g(what)h
+(we)f(do)g(is)h(\014rst)g(to)f(c)m(onne)m(ct)f(al)s(l)i(the)f(input)694
+3711 y(neur)m(ons)g(to)h(a)f(output)g(neur)m(on,)g(r)m(esp)m(e)m(cting)
+f(the)h(numb)m(er)f(of)694 3778 y(available)h(input)g(neur)m(ons)h(for)
+f(e)m(ach)g(output)f(neur)m(on.)i(Then)694 3844 y(we)f(go)g(thr)m(ough)
+f(al)s(l)i(the)f(output)g(neur)m(ons,)g(and)h(c)m(onne)m(ct)e(the)694
+3910 y(r)m(est)h(of)g(the)g(c)m(onne)m(ctions)h(to)f(input)h(neur)m
+(ons,)g(that)f(they)g(ar)m(e)694 3977 y(not)h(al)s(lr)m(e)m(ady)f(c)m
+(onne)m(cte)m(d)e(to.)595 4043 y Fj(\003)p Fb(/)595 4176
+y(/)p Fj(\003)i Fb(\014rst)h(cle)m(ar)e(al)s(l)h(the)g(c)m(onne)m
+(ctions,)h(b)m(e)m(c)m(ause)d(we)i(want)h(to)694 4242
+y(b)m(e)e(able)g(to)i(se)m(e)e(which)h(c)m(onne)m(ctions)h(ar)m(e)e(al)
+s(lr)m(e)m(ady)h(c)m(onne)m(cte)m(d)f Fj(\003)p Fb(/)595
+4309 y Fu(memset\(\(ann)p Fj(!)p Fu(\014rst)p 1162 4309
+V 21 w(la)n(y)n(er+1\))p Fj(!)p Fu(\014rst)p 1614 4309
+V 24 w(neuron)p Fj(!)p Fu(connected)p 2194 4309 V 19
+w(neurons,)21 b(0,)i(ann)p Fj(!)p Fu(total)p 2864 4309
+V 23 w(connections)d Fj(\003)330 4375 y Fa(sizeof)7 b
+Fu(\()p Fa(struct)24 b Fu(fann)p 892 4375 V 23 w(neuron)p
+Fj(\003)p Fu(\)\);)595 4508 y Fa(for)p Fu(\(la)n(y)n(er)p
+856 4508 V 23 w(it)e(=)g(ann)p Fj(!)p Fu(\014rst)p 1308
+4508 V 24 w(la)n(y)n(er+1;)727 4575 y(la)n(y)n(er)p 870
+4575 V 24 w(it)g Fj(6)p Fu(=)g(ann)p Fj(!)p Fu(last)p
+1311 4575 V 24 w(la)n(y)n(er;)f(la)n(y)n(er)p 1653 4575
+V 24 w(it++\))p Fj(f)727 4707 y Fu(n)n(um)p 858 4707
+V 23 w(neurons)p 1107 4707 V 23 w(out)h(=)g(la)n(y)n(er)p
+1460 4707 V 24 w(it)p Fj(!)p Fu(last)p 1699 4707 V 24
+w(neuron)e(-)j(la)n(y)n(er)p 2127 4707 V 24 w(it)p Fj(!)p
+Fu(\014rst)p 2378 4707 V 23 w(neuron)e(-)i(1;)727 4774
+y(n)n(um)p 858 4774 V 23 w(neurons)p 1107 4774 V 23 w(in)f(=)g(\(la)n
+(y)n(er)p 1446 4774 V 23 w(it-1\))p Fj(!)p Fu(last)p
+1765 4774 V 25 w(neuron)f(-)h(\(la)n(y)n(er)p 2220 4774
+V 24 w(it-1\))p Fj(!)p Fu(\014rst)p 2552 4774 V 24 w(neuron)f(-)h(1;)
+727 4907 y Fb(/)p Fj(\003)33 b Fb(\014rst)h(c)m(onne)m(ct)e(the)h(bias)
+h(neur)m(on)f Fj(\003)p Fb(/)727 4973 y Fu(bias)p 846
+4973 V 24 w(neuron)21 b(=)h(\(la)n(y)n(er)p 1329 4973
+V 24 w(it-1\))p Fj(!)p Fu(last)p 1649 4973 V 24 w(neuron-1;)727
+5039 y(last)p 835 5039 V 24 w(neuron)f(=)h(la)n(y)n(er)p
+1292 5039 V 24 w(it)p Fj(!)p Fu(last)p 1531 5039 V 24
+w(neuron-1;)727 5106 y Fa(for)p Fu(\(neuron)p 1049 5106
+V 22 w(it)g(=)h(la)n(y)n(er)p 1351 5106 V 23 w(it)p Fj(!)p
+Fu(\014rst)p 1601 5106 V 24 w(neuron;)859 5172 y(neuron)p
+1063 5172 V 23 w(it)f Fj(6)p Fu(=)g(last)p 1330 5172
+V 24 w(neuron;)f(neuron)p 1794 5172 V 22 w(it++\))p Fj(f)859
+5305 y Fu(neuron)p 1063 5305 V 23 w(it)p Fj(!)p Fu(connected)p
+1487 5305 V 21 w(neurons[0])g(=)h(bias)p 2014 5305 V
+24 w(neuron;)859 5372 y(neuron)p 1063 5372 V 23 w(it)p
+Fj(!)p Fu(w)n(eigh)n(ts[0])g(=)g(fann)p 1705 5372 V 23
+w(random)p 1949 5372 V 23 w(w)n(eigh)n(t\(\);)727 5438
+y Fj(g)727 5571 y Fb(/)p Fj(\003)33 b Fb(then)h(c)m(onne)m(ct)e(al)s(l)
+h(neur)m(ons)h(in)g(the)f(input)h(layer)f Fj(\003)p Fb(/)727
+5637 y Fu(last)p 835 5637 V 24 w(neuron)21 b(=)h(\(la)n(y)n(er)p
+1318 5637 V 24 w(it-1\))p Fj(!)p Fu(last)p 1638 5637
+V 24 w(neuron)f(-)i(1;)p Black 1788 5919 a Fy(57)p Black
+eop end
+%%Page: 58 62
+TeXDict begin 58 61 bop Black 330 70 a Fp(B.1)82 b(The)28
+b(library)1617 b(B)83 b(SOUR)n(CE)27 b(CODE)p 330 103
+3000 4 v Black 727 390 a Fa(for)p Fu(\(neuron)p 1049
+390 20 4 v 22 w(it)22 b(=)h(\(la)n(y)n(er)p 1377 390
+V 23 w(it-1\))p Fj(!)p Fu(\014rst)p 1708 390 V 24 w(neuron;)859
+457 y(neuron)p 1063 457 V 23 w(it)f Fj(6)p Fu(=)g(last)p
+1330 457 V 24 w(neuron;)f(neuron)p 1794 457 V 22 w(it++\))p
+Fj(f)859 589 y Fb(/)p Fj(\003)34 b Fb(r)m(andom)f(neur)m(on)g(in)h(the)
+f(output)g(layer)g(that)g(has)h(sp)m(ac)m(e)959 656 y(for)f(mor)m(e)f
+(c)m(onne)m(ctions)i Fj(\003)p Fb(/)859 722 y Fa(do)22
+b Fj(f)992 789 y Fu(random)p 1217 789 V 23 w(n)n(um)n(b)r(er)e(=)j(\()p
+Fa(in)n(t)p Fu(\))f(\(0.5+fann)p 2008 789 V 23 w(rand\(0,)f(n)n(um)p
+2390 789 V 23 w(neurons)p 2639 789 V 23 w(out-1\)\);)992
+855 y(random)p 1217 855 V 23 w(neuron)g(=)h(la)n(y)n(er)p
+1673 855 V 23 w(it)p Fj(!)p Fu(\014rst)p 1923 855 V 24
+w(neuron)f(+)h(random)p 2462 855 V 23 w(n)n(um)n(b)r(er;)992
+922 y Fb(/)p Fj(\003)33 b Fb(che)m(cks)f(the)g(last)i(sp)m(ac)m(e)e(in)
+i(the)f(c)m(onne)m(ctions)g(arr)m(ay)g(for)h(r)m(o)m(om)e
+Fj(\003)p Fb(/)859 988 y Fj(g)p Fa(while)p Fu(\(random)p
+1316 988 V 24 w(neuron)p Fj(!)p Fu(connected)p 1896 988
+V 19 w(neurons[random)p 2381 988 V 22 w(neuron)p Fj(!)p
+Fu(n)n(um)p 2796 988 V 22 w(connections-1]\);)859 1121
+y Fb(/)p Fj(\003)i Fb(\014nd)g(an)f(empty)g(sp)m(ac)m(e)f(in)i(the)f(c)
+m(onne)m(ction)g(arr)m(ay)g(and)h(c)m(onne)m(ct)e Fj(\003)p
+Fb(/)859 1187 y Fa(for)p Fu(\(i)22 b(=)h(0;)f(i)g Fk(<)g
+Fu(random)p 1506 1187 V 23 w(neuron)p Fj(!)p Fu(n)n(um)p
+1922 1187 V 22 w(connections;)e(i++\))p Fj(f)992 1254
+y Fa(if)7 b Fu(\(random)p 1294 1254 V 23 w(neuron)p Fj(!)p
+Fu(connected)p 1873 1254 V 20 w(neurons[i])20 b(==)j(NULL\))p
+Fj(f)1124 1320 y Fu(random)p 1349 1320 V 23 w(neuron)p
+Fj(!)p Fu(connected)p 1928 1320 V 20 w(neurons[i])d(=)j(neuron)p
+2525 1320 V 22 w(it;)1124 1386 y(random)p 1349 1386 V
+23 w(neuron)p Fj(!)p Fu(w)n(eigh)n(ts[i])e(=)h(fann)p
+2131 1386 V 23 w(random)p 2375 1386 V 23 w(w)n(eigh)n(t\(\);)1124
+1453 y Fa(break)p Fu(;)992 1519 y Fj(g)859 1586 y(g)727
+1652 y(g)727 1785 y Fb(/)p Fj(\003)33 b Fb(then)h(c)m(onne)m(ct)e(the)h
+(r)m(est)g(of)g(the)g(unc)m(onne)m(cte)m(d)f(neur)m(ons)h
+Fj(\003)p Fb(/)727 1851 y Fu(last)p 835 1851 V 24 w(neuron)21
+b(=)h(la)n(y)n(er)p 1292 1851 V 24 w(it)p Fj(!)p Fu(last)p
+1531 1851 V 24 w(neuron)f(-)h(1;)727 1918 y Fa(for)p
+Fu(\(neuron)p 1049 1918 V 22 w(it)g(=)h(la)n(y)n(er)p
+1351 1918 V 23 w(it)p Fj(!)p Fu(\014rst)p 1601 1918 V
+24 w(neuron;)859 1984 y(neuron)p 1063 1984 V 23 w(it)f
+Fj(6)p Fu(=)g(last)p 1330 1984 V 24 w(neuron;)f(neuron)p
+1794 1984 V 22 w(it++\))p Fj(f)859 2051 y Fb(/)p Fj(\003)34
+b Fb(\014nd)g(empty)e(sp)m(ac)m(e)g(in)i(the)f(c)m(onne)m(ction)g(arr)m
+(ay)h(and)f(c)m(onne)m(ct)g Fj(\003)p Fb(/)859 2117 y
+Fa(for)p Fu(\(i)22 b(=)h(0;)f(i)g Fk(<)g Fu(neuron)p
+1485 2117 V 23 w(it)p Fj(!)p Fu(n)n(um)p 1746 2117 V
+23 w(connections;)e(i++\))p Fj(f)992 2183 y Fb(/)p Fj(\003)33
+b Fb(c)m(ontinue)g(if)h(al)s(lr)m(e)m(ady)f(c)m(onne)m(cte)m(d)f
+Fj(\003)p Fb(/)992 2250 y Fa(if)7 b Fu(\(neuron)p 1273
+2250 V 23 w(it)p Fj(!)p Fu(connected)p 1697 2250 V 20
+w(neurons[i])21 b Fj(6)p Fu(=)h(NULL\))h Fa(con)n(tin)n(ue)p
+Fu(;)992 2383 y Fa(do)f Fj(f)1124 2449 y Fu(found)p 1293
+2449 V 23 w(connection)e(=)i(0;)1124 2516 y(random)p
+1349 2516 V 23 w(n)n(um)n(b)r(er)f(=)h(\()p Fa(in)n(t)p
+Fu(\))g(\(0.5+fann)p 2140 2516 V 23 w(rand\(0,)g(n)n(um)p
+2523 2516 V 23 w(neurons)p 2772 2516 V 22 w(in-1\)\);)1124
+2582 y(random)p 1349 2582 V 23 w(neuron)f(=)h(\(la)n(y)n(er)p
+1831 2582 V 24 w(it-1\))p Fj(!)p Fu(\014rst)p 2163 2582
+V 24 w(neuron)f(+)h(random)p 2702 2582 V 23 w(n)n(um)n(b)r(er;)1124
+2715 y Fb(/)p Fj(\003)33 b Fb(che)m(ck)f(to)h(se)m(e)f(if)i(this)g(c)m
+(onne)m(ction)f(is)h(al)s(lr)m(e)m(ady)f(ther)m(e)f Fj(\003)p
+Fb(/)1124 2781 y Fa(for)p Fu(\(j)22 b(=)g(0;)h(j)f Fk(<)g
+Fu(i;)g(j++\))p Fj(f)1257 2848 y Fa(if)7 b Fu(\(random)p
+1559 2848 V 23 w(neuron)21 b(==)h(neuron)p 2127 2848
+V 22 w(it)p Fj(!)p Fu(connected)p 2550 2848 V 21 w(neurons[j]\))p
+Fj(f)1389 2914 y Fu(found)p 1558 2914 V 23 w(connection)d(=)k(1;)1389
+2980 y Fa(break)p Fu(;)1257 3047 y Fj(g)1124 3113 y(g)992
+3246 y(g)p Fa(while)p Fu(\(found)p 1393 3246 V 23 w(connection\);)992
+3379 y Fb(/)p Fj(\003)33 b Fb(we)g(have)g(found)g(a)h(neur)m(on)f(that)
+g(is)h(not)g(al)s(lr)m(e)m(ady)1091 3445 y(c)m(onne)m(cte)m(d)e(to)h
+(us,)g(c)m(onne)m(ct)g(it)g Fj(\003)p Fb(/)992 3512 y
+Fu(neuron)p 1196 3512 V 22 w(it)p Fj(!)p Fu(connected)p
+1619 3512 V 21 w(neurons[i])21 b(=)h(random)p 2238 3512
+V 23 w(neuron;)992 3578 y(neuron)p 1196 3578 V 22 w(it)p
+Fj(!)p Fu(w)n(eigh)n(ts[i])g(=)g(fann)p 1823 3578 V 23
+w(random)p 2067 3578 V 23 w(w)n(eigh)n(t\(\);)859 3645
+y Fj(g)727 3711 y(g)330 3844 y Fe(#ifdef)g Fu(DEBUG)727
+3910 y(prin)n(tf\()p Fe(")30 b(layer)g(:)62 b(\045d)30
+b(neurons,)g(1)h(bias)p Fj(n)p Fe(n")p Fu(,)21 b(n)n(um)p
+2079 3910 V 23 w(neurons)p 2328 3910 V 23 w(out\);)330
+3977 y Fe(#endif)595 4043 y Fj(g)595 4176 y Fb(/)p Fj(\003)33
+b Fb(TODO)g(it)h(would)f(b)m(e)f(nic)m(e)h(to)g(have)g(the)f(r)m
+(andomly)i(cr)m(e)m(ate)m(d)d(c)m(onne)m(ctions)i(sorte)m(d)694
+4242 y(for)h(smo)m(other)e(memory)g(ac)m(c)m(ess.)595
+4309 y Fj(\003)p Fb(/)462 4375 y Fj(g)330 4508 y Fe(#ifdef)22
+b Fu(DEBUG)462 4575 y(prin)n(tf\()p Fe("output)p Fj(n)p
+Fe(n")p Fu(\);)330 4641 y Fe(#endif)462 4774 y Fa(return)h
+Fu(ann;)330 4840 y Fj(g)330 5039 y Fb(/)p Fj(\003)33
+b Fb(Cr)m(e)m(ate)f(a)h(network)g(fr)m(om)g(a)g(c)m(on\014gur)m(ation)g
+(\014le.)363 5106 y Fj(\003)p Fb(/)330 5172 y Fa(struct)23
+b Fu(fann)f Fj(\003)g Fu(fann)p 885 5172 V 23 w(create)p
+1083 5172 V 22 w(from)p 1240 5172 V 23 w(\014le\()p Fa(const)f(c)n(har)
+h Fj(\003)p Fu(con\014guration)p 2148 5172 V 22 w(\014le\))330
+5239 y Fj(f)462 5305 y Fa(unsigned)g(in)n(t)g Fu(n)n(um)p
+1018 5305 V 23 w(la)n(y)n(ers,)g(la)n(y)n(er)p 1386 5305
+V 24 w(size,)f(activ)l(ation)p 1842 5305 V 23 w(function)p
+2105 5305 V 22 w(hidden,)f(activ)l(ation)p 2650 5305
+V 23 w(function)p 2913 5305 V 22 w(output,)330 5372 y(input)p
+490 5372 V 23 w(neuron,)g(i;)330 5438 y Fe(#ifdef)i Fu(FIXEDF)-7
+b(ANN)462 5504 y Fa(unsigned)22 b(in)n(t)g Fu(decimal)p
+1114 5504 V 22 w(p)r(oin)n(t,)f(m)n(ultiplier;)330 5571
+y Fe(#endif)462 5637 y Fu(fann)p 594 5637 V 23 w(t)n(yp)r(e)h(activ)l
+(ation)p 1054 5637 V 23 w(hidden)p 1274 5637 V 21 w(steepness,)f(activ)
+l(ation)p 1890 5637 V 23 w(output)p 2109 5637 V 23 w(steepness;)p
+Black 1788 5919 a Fy(58)p Black eop end
+%%Page: 59 63
+TeXDict begin 59 62 bop Black 330 70 a Fp(B.1)82 b(The)28
+b(library)1617 b(B)83 b(SOUR)n(CE)27 b(CODE)p 330 103
+3000 4 v Black 462 390 a Fa(\015oat)c Fu(learning)p 869
+390 20 4 v 22 w(rate,)f(connection)p 1359 390 V 21 w(rate;)462
+457 y Fa(struct)i Fu(fann)p 812 457 V 22 w(neuron)d Fj(\003)p
+Fu(\014rst)p 1205 457 V 24 w(neuron,)g Fj(\003)p Fu(neuron)p
+1703 457 V 22 w(it,)h Fj(\003)p Fu(last)p 1949 457 V
+24 w(neuron,)f Fj(\003\003)p Fu(connected)p 2571 457
+V 21 w(neurons;)462 523 y(fann)p 594 523 V 23 w(t)n(yp)r(e)h
+Fj(\003)p Fu(w)n(eigh)n(ts;)462 589 y Fa(struct)i Fu(fann)p
+812 589 V 22 w(la)n(y)n(er)e Fj(\003)p Fu(la)n(y)n(er)p
+1168 589 V 24 w(it;)462 656 y Fa(struct)i Fu(fann)d Fj(\003)p
+Fu(ann;)462 789 y Fa(c)n(har)i Fj(\003)p Fu(read)p 790
+789 V 23 w(v)n(ersion;)462 855 y(FILE)f Fj(\003)p Fu(conf)f(=)i(fop)r
+(en\(con\014guration)p 1459 855 V 20 w(\014le,)e Fe("r")p
+Fu(\);)462 988 y Fa(if)7 b Fu(\(!conf)e(\))p Fj(f)595
+1054 y Fu(prin)n(tf\()p Fe("Unable)29 b(to)h(open)g(configuration)g
+(file)g Fj(n)p Fe("\045s)p Fj(n)p Fe(")h(for)f(reading.)p
+Fj(n)p Fe(n")p Fu(,)21 b(con\014guration)p 2980 1054
+V 22 w(\014le\);)595 1121 y Fa(return)i Fu(NULL;)462
+1187 y Fj(g)462 1320 y Fu(read)p 592 1320 V 23 w(v)n(ersion)f(=)h(\()p
+Fa(c)n(har)f Fj(\003)p Fu(\)callo)r(c\(strlen\(F)-7 b(ANN)p
+1729 1320 V 21 w(VERSION)p Fe(")p Fj(n)p Fe(n")p Fu(\),)21
+b(1\);)462 1386 y(fread\(read)p 765 1386 V 22 w(v)n(ersion,)h(1,)g
+(strlen\(F)-7 b(ANN)p 1479 1386 V 23 w(VERSION)p Fe(")p
+Fj(n)p Fe(n")p Fu(\),)21 b(conf)5 b(\);)560 b Fb(/)p
+Fj(\003)33 b Fb(r)m(e)m(ads)f(version)i Fj(\003)p Fb(/)462
+1519 y(/)p Fj(\003)g Fb(c)m(omp)m(ar)m(es)d(the)i(version)g
+(information)i Fj(\003)p Fb(/)462 1586 y Fa(if)7 b Fu(\(strncmp\(read)p
+932 1586 V 22 w(v)n(ersion,)22 b(F)-7 b(ANN)p 1382 1586
+V 23 w(VERSION)p Fe(")p Fj(n)p Fe(n")p Fu(,)22 b(strlen\(F)-7
+b(ANN)p 2249 1586 V 22 w(VERSION)p Fe(")p Fj(n)p Fe(n")p
+Fu(\)\))22 b Fj(6)p Fu(=)g(0\))p Fj(f)595 1652 y Fu(prin)n(tf\()p
+Fe("Wrong)29 b(version,)g(aborting)h(read)h(of)f(configuration)g(file)g
+Fj(n)p Fe("\045s)p Fj(n)p Fe(".)p Fj(n)p Fe(n")p Fu(,)21
+b(con\014guration)p 3134 1652 V 22 w(\014le\);)595 1719
+y Fa(return)i Fu(NULL;)462 1785 y Fj(g)330 1918 y Fe(#ifdef)f
+Fu(FIXEDF)-7 b(ANN)462 1984 y Fa(if)7 b Fu(\(fscanf\(conf,)20
+b Fe("\045u)p Fj(n)p Fe(n")p Fu(,)i(&decimal)p 1401 1984
+V 22 w(p)r(oin)n(t\))f Fj(6)p Fu(=)h(1\))p Fj(f)595 2051
+y Fu(prin)n(tf\()p Fe("Error)29 b(reading)h(info)g(from)g
+(configuration)g(file)g Fj(n)p Fe("\045s)p Fj(n)p Fe(".)p
+Fj(n)p Fe(n")p Fu(,)21 b(con\014guration)p 2887 2051
+V 22 w(\014le\);)595 2117 y Fa(return)i Fu(NULL;)462
+2183 y Fj(g)462 2250 y Fu(m)n(ultiplier)d(=)j(1)f Fj(\034)h
+Fu(decimal)p 1212 2250 V 22 w(p)r(oin)n(t;)330 2316 y
+Fe(#endif)462 2449 y Fa(if)7 b Fu(\(fscanf\(conf,)20
+b Fe("\045u)31 b(\045f)f(\045f)h(\045u)g(\045u)f(")p
+Fu(F)-7 b(ANNSCANF)p Fe(")31 b(")p Fu(F)-7 b(ANNSCANF)p
+Fe(")p Fj(n)p Fe(n")p Fu(,)21 b(&n)n(um)p 2676 2449 V
+23 w(la)n(y)n(ers,)330 2516 y(&learning)p 619 2516 V
+22 w(rate,)h(&connection)p 1160 2516 V 21 w(rate,)g(&activ)l(ation)p
+1675 2516 V 23 w(function)p 1938 2516 V 22 w(hidden,)e(&activ)l(ation)p
+2534 2516 V 23 w(function)p 2797 2516 V 22 w(output,)330
+2582 y(&activ)l(ation)p 672 2582 V 23 w(hidden)p 892
+2582 V 22 w(steepness,)h(&activ)l(ation)p 1560 2582 V
+23 w(output)p 1779 2582 V 23 w(steepness\))g Fj(6)p Fu(=)h(7\))p
+Fj(f)595 2648 y Fu(prin)n(tf\()p Fe("Error)29 b(reading)h(info)g(from)g
+(configuration)g(file)g Fj(n)p Fe("\045s)p Fj(n)p Fe(".)p
+Fj(n)p Fe(n")p Fu(,)21 b(con\014guration)p 2887 2648
+V 22 w(\014le\);)595 2715 y Fa(return)i Fu(NULL;)462
+2781 y Fj(g)462 2914 y Fu(ann)f(=)h(fann)p 797 2914 V
+22 w(allo)r(cate)p 1044 2914 V 23 w(structure\(learning)p
+1591 2914 V 21 w(rate,)e(n)n(um)p 1894 2914 V 23 w(la)n(y)n(ers\);)330
+2980 y Fe(#ifdef)h Fu(FIXEDF)-7 b(ANN)462 3047 y(ann)p
+Fj(!)p Fu(decimal)p 862 3047 V 22 w(p)r(oin)n(t)21 b(=)i(decimal)p
+1354 3047 V 21 w(p)r(oin)n(t;)462 3113 y(ann)p Fj(!)p
+Fu(m)n(ultiplier)d(=)i(m)n(ultiplier;)462 3180 y(ann)p
+Fj(!)p Fu(activ)l(ation)p 926 3180 V 23 w(function)p
+1189 3180 V 22 w(hidden)e(=)j(activ)l(ation)p 1789 3180
+V 23 w(function)p 2052 3180 V 21 w(hidden;)462 3246 y(ann)p
+Fj(!)p Fu(activ)l(ation)p 926 3246 V 23 w(function)p
+1189 3246 V 22 w(output)e(=)i(activ)l(ation)p 1789 3246
+V 23 w(function)p 2052 3246 V 21 w(output;)462 3313 y(ann)p
+Fj(!)p Fu(activ)l(ation)p 926 3313 V 23 w(hidden)p 1146
+3313 V 22 w(steepness)e(=)h(activ)l(ation)p 1817 3313
+V 23 w(hidden)p 2037 3313 V 22 w(steepness;)462 3379
+y(ann)p Fj(!)p Fu(activ)l(ation)p 926 3379 V 23 w(output)p
+1145 3379 V 23 w(steepness)f(=)h(activ)l(ation)p 1817
+3379 V 23 w(output)p 2036 3379 V 23 w(steepness;)462
+3445 y(ann)p Fj(!)p Fu(connection)p 951 3445 V 21 w(rate)g(=)h
+(connection)p 1495 3445 V 21 w(rate;)462 3578 y Fb(/)p
+Fj(\003)34 b Fb(Calculate)e(the)g(p)m(ar)m(ameters)g(for)i(the)f
+(stepwise)g(line)m(ar)h(sigmoid)f(function)i(\014xe)m(d)d(p)m(oint.)562
+3645 y(Using)i(a)f(r)m(ewritten)g(sigmoid)h(function.)562
+3711 y(r)m(esults)e(0.005,)i(0.05,)h(0.25,)f(0.75,)g(0.95,)g(0.995)495
+3778 y Fj(\003)p Fb(/)462 3844 y Fu(ann)p Fj(!)p Fu(activ)l(ation)p
+926 3844 V 23 w(results[0])22 b(=)g(\(fann)p 1459 3844
+V 23 w(t)n(yp)r(e\)\(m)n(ultiplier)p Fk(=)p Fu(200.0+0.5\);)462
+3910 y(ann)p Fj(!)p Fu(activ)l(ation)p 926 3910 V 23
+w(results[1])g(=)g(\(fann)p 1459 3910 V 23 w(t)n(yp)r(e\)\(m)n
+(ultiplier)p Fk(=)p Fu(20.0+0.5\);)462 3977 y(ann)p Fj(!)p
+Fu(activ)l(ation)p 926 3977 V 23 w(results[2])g(=)g(\(fann)p
+1459 3977 V 23 w(t)n(yp)r(e\)\(m)n(ultiplier)p Fk(=)p
+Fu(4.0+0.5\);)462 4043 y(ann)p Fj(!)p Fu(activ)l(ation)p
+926 4043 V 23 w(results[3])g(=)g(m)n(ultiplier)e(-)j(\(fann)p
+1809 4043 V 23 w(t)n(yp)r(e\)\(m)n(ultiplier)p Fk(=)p
+Fu(4.0+0.5\);)462 4110 y(ann)p Fj(!)p Fu(activ)l(ation)p
+926 4110 V 23 w(results[4])f(=)g(m)n(ultiplier)e(-)j(\(fann)p
+1809 4110 V 23 w(t)n(yp)r(e\)\(m)n(ultiplier)p Fk(=)p
+Fu(20.0+0.5\);)462 4176 y(ann)p Fj(!)p Fu(activ)l(ation)p
+926 4176 V 23 w(results[5])f(=)g(m)n(ultiplier)e(-)j(\(fann)p
+1809 4176 V 23 w(t)n(yp)r(e\)\(m)n(ultiplier)p Fk(=)p
+Fu(200.0+0.5\);)462 4309 y(fann)p 594 4309 V 23 w(set)p
+699 4309 V 24 w(activ)l(ation)p 1010 4309 V 23 w(hidden)p
+1230 4309 V 22 w(steepness\(ann,)d(activ)l(ation)p 1979
+4309 V 23 w(hidden)p 2199 4309 V 22 w(steepness\);)462
+4375 y(fann)p 594 4375 V 23 w(set)p 699 4375 V 24 w(activ)l(ation)p
+1010 4375 V 23 w(output)p 1229 4375 V 23 w(steepness\(ann,)g(activ)l
+(ation)p 1979 4375 V 23 w(output)p 2198 4375 V 23 w(steepness\);)330
+4442 y Fe(#endif)330 4575 y(#ifdef)i Fu(DEBUG)462 4641
+y(prin)n(tf\()p Fe("creating)29 b(network)h(with)g(learning)g(rate)g
+(\045f)p Fj(n)p Fe(n")p Fu(,)22 b(learning)p 2230 4641
+V 23 w(rate\);)462 4707 y(prin)n(tf\()p Fe("input)p Fj(n)p
+Fe(n")p Fu(\);)330 4774 y Fe(#endif)462 4907 y Fb(/)p
+Fj(\003)34 b Fb(determine)e(how)i(many)f(neur)m(ons)h(ther)m(e)e
+(should)h(b)m(e)f(in)i(e)m(ach)e(layer)h Fj(\003)p Fb(/)462
+4973 y Fa(for)p Fu(\(la)n(y)n(er)p 723 4973 V 24 w(it)22
+b(=)g(ann)p Fj(!)p Fu(\014rst)p 1176 4973 V 23 w(la)n(y)n(er;)g(la)n(y)
+n(er)p 1518 4973 V 24 w(it)g Fj(6)p Fu(=)g(ann)p Fj(!)p
+Fu(last)p 1959 4973 V 24 w(la)n(y)n(er;)f(la)n(y)n(er)p
+2301 4973 V 24 w(it++\))p Fj(f)595 5039 y Fa(if)7 b Fu(\(fscanf\(conf,)
+20 b Fe("\045u)30 b(")p Fu(,)22 b(&la)n(y)n(er)p 1415
+5039 V 24 w(size\))f Fj(6)p Fu(=)h(1\))p Fj(f)727 5106
+y Fu(prin)n(tf\()p Fe("Error)29 b(reading)h(neuron)g(info)g(from)h
+(configuration)e(file)h Fj(n)p Fe("\045s)p Fj(n)p Fe(".)p
+Fj(n)p Fe(n")p Fu(,)330 5172 y(con\014guration)p 716
+5172 V 22 w(\014le\);)727 5239 y Fa(return)23 b Fu(ann;)595
+5305 y Fj(g)595 5372 y Fb(/)p Fj(\003)33 b Fb(we)g(do)g(not)h(al)s(lo)m
+(c)m(ate)e(r)m(o)m(om)g(her)m(e,)h(but)f(we)h(make)f(sur)m(e)h(that)694
+5438 y(last)p 802 5438 22 4 v 26 w(neur)m(on)g(-)g(\014rst)p
+1244 5438 V 26 w(neur)m(on)g(is)h(the)f(numb)m(er)e(of)j(neur)m(ons)f
+Fj(\003)p Fb(/)595 5504 y Fu(la)n(y)n(er)p 738 5504 20
+4 v 23 w(it)p Fj(!)p Fu(\014rst)p 988 5504 V 24 w(neuron)21
+b(=)h(NULL;)595 5571 y(la)n(y)n(er)p 738 5571 V 23 w(it)p
+Fj(!)p Fu(last)p 976 5571 V 24 w(neuron)f(=)h(la)n(y)n(er)p
+1433 5571 V 24 w(it)p Fj(!)p Fu(\014rst)p 1684 5571 V
+23 w(neuron)f(+)i(la)n(y)n(er)p 2141 5571 V 23 w(size;)595
+5637 y(ann)p Fj(!)p Fu(total)p 909 5637 V 23 w(neurons)e(+=)i(la)n(y)n
+(er)p 1443 5637 V 23 w(size;)p Black 1788 5919 a Fy(59)p
+Black eop end
+%%Page: 60 64
+TeXDict begin 60 63 bop Black 330 70 a Fp(B.1)82 b(The)28
+b(library)1617 b(B)83 b(SOUR)n(CE)27 b(CODE)p 330 103
+3000 4 v Black 330 390 a Fe(#ifdef)22 b Fu(DEBUG)595
+457 y(prin)n(tf\()p Fe(")29 b(layer)i(:)61 b(\045d)31
+b(neurons,)f(1)g(bias)p Fj(n)p Fe(n")p Fu(,)22 b(la)n(y)n(er)p
+1959 457 20 4 v 23 w(size\);)330 523 y Fe(#endif)462
+589 y Fj(g)462 722 y Fu(ann)p Fj(!)p Fu(n)n(um)p 766
+722 V 23 w(input)f(=)h(ann)p Fj(!)p Fu(\014rst)p 1328
+722 V 24 w(la)n(y)n(er)p Fj(!)p Fu(last)p 1661 722 V
+23 w(neuron)f(-)i(ann)p Fj(!)p Fu(\014rst)p 2239 722
+V 23 w(la)n(y)n(er)p Fj(!)p Fu(\014rst)p 2583 722 V 24
+w(neuron;)462 789 y(ann)p Fj(!)p Fu(n)n(um)p 766 789
+V 23 w(output)e(=)i(\(\(ann)p Fj(!)p Fu(last)p 1409 789
+V 23 w(la)n(y)n(er-1\))p Fj(!)p Fu(last)p 1822 789 V
+24 w(neuron)e(-)i(\(ann)p Fj(!)p Fu(last)p 2415 789 V
+23 w(la)n(y)n(er-1\))p Fj(!)p Fu(\014rst)p 2840 789 V
+24 w(neuron\))e(-)i(1;)462 922 y Fb(/)p Fj(\003)34 b
+Fb(al)s(lo)m(c)m(ate)e(r)m(o)m(om)g(for)h(the)g(actual)g(neur)m(ons)g
+Fj(\003)p Fb(/)462 988 y Fu(fann)p 594 988 V 23 w(allo)r(cate)p
+842 988 V 23 w(neurons\(ann\);)462 1121 y(last)p 570
+1121 V 24 w(neuron)21 b(=)i(\(ann)p Fj(!)p Fu(last)p
+1192 1121 V 23 w(la)n(y)n(er-1\))p Fj(!)p Fu(last)p 1605
+1121 V 24 w(neuron;)462 1187 y Fa(for)p Fu(\(neuron)p
+784 1187 V 23 w(it)f(=)g(ann)p Fj(!)p Fu(\014rst)p 1236
+1187 V 23 w(la)n(y)n(er)p Fj(!)p Fu(\014rst)p 1580 1187
+V 24 w(neuron;)595 1254 y(neuron)p 799 1254 V 22 w(it)g
+Fj(6)p Fu(=)h(last)p 1066 1254 V 24 w(neuron;)d(neuron)p
+1529 1254 V 23 w(it++\))p Fj(f)595 1320 y Fa(if)7 b Fu(\(fscanf\(conf,)
+20 b Fe("\045u)30 b(")p Fu(,)22 b(&neuron)p 1476 1320
+V 23 w(it)p Fj(!)p Fu(n)n(um)p 1737 1320 V 22 w(connections\))f
+Fj(6)p Fu(=)h(1\))p Fj(f)727 1386 y Fu(prin)n(tf\()p
+Fe("Error)29 b(reading)h(neuron)g(info)g(from)h(configuration)e(file)h
+Fj(n)p Fe("\045s)p Fj(n)p Fe(".)p Fj(n)p Fe(n")p Fu(,)330
+1453 y(con\014guration)p 716 1453 V 22 w(\014le\);)727
+1519 y Fa(return)23 b Fu(ann;)595 1586 y Fj(g)595 1652
+y Fu(ann)p Fj(!)p Fu(total)p 909 1652 V 23 w(connections)d(+=)j(neuron)
+p 1615 1652 V 22 w(it)p Fj(!)p Fu(n)n(um)p 1875 1652
+V 23 w(connections;)462 1719 y Fj(g)462 1851 y Fu(fann)p
+594 1851 V 23 w(allo)r(cate)p 842 1851 V 23 w(connections\(ann\);)462
+1984 y(connected)p 756 1984 V 21 w(neurons)f(=)g(\(ann)p
+Fj(!)p Fu(\014rst)p 1413 1984 V 23 w(la)n(y)n(er+1\))p
+Fj(!)p Fu(\014rst)p 1867 1984 V 24 w(neuron)p Fj(!)p
+Fu(connected)p 2447 1984 V 19 w(neurons;)462 2051 y(w)n(eigh)n(ts)h(=)f
+(\(ann)p Fj(!)p Fu(\014rst)p 1091 2051 V 23 w(la)n(y)n(er+1\))p
+Fj(!)p Fu(\014rst)p 1545 2051 V 24 w(neuron)p Fj(!)p
+Fu(w)n(eigh)n(ts;)462 2117 y(\014rst)p 582 2117 V 24
+w(neuron)f(=)h(ann)p Fj(!)p Fu(\014rst)p 1189 2117 V
+23 w(la)n(y)n(er)p Fj(!)p Fu(\014rst)p 1533 2117 V 24
+w(neuron;)462 2250 y Fa(for)p Fu(\(i)g(=)h(0;)f(i)g Fk(<)g
+Fu(ann)p Fj(!)p Fu(total)p 1198 2250 V 24 w(connections;)e(i++\))p
+Fj(f)595 2316 y Fa(if)7 b Fu(\(fscanf\(conf,)20 b Fe("\(\045u)30
+b(")p Fu(F)-7 b(ANNSCANF)p Fe("\))30 b(")p Fu(,)22 b(&input)p
+1994 2316 V 23 w(neuron,)f(&w)n(eigh)n(ts[i]\))g Fj(6)p
+Fu(=)i(2\))p Fj(f)727 2383 y Fu(prin)n(tf\()p Fe("Error)29
+b(reading)h(connections)f(from)i(configuration)e(file)h
+Fj(n)p Fe("\045s)p Fj(n)p Fe(".)p Fj(n)p Fe(n")p Fu(,)330
+2449 y(con\014guration)p 716 2449 V 22 w(\014le\);)727
+2516 y Fa(return)23 b Fu(ann;)595 2582 y Fj(g)595 2648
+y Fu(connected)p 889 2648 V 21 w(neurons[i])d(=)j(\014rst)p
+1403 2648 V 23 w(neuron+input)p 1833 2648 V 21 w(neuron;)462
+2715 y Fj(g)330 2848 y Fe(#ifdef)f Fu(DEBUG)462 2914
+y(prin)n(tf\()p Fe("output)p Fj(n)p Fe(n")p Fu(\);)330
+2980 y Fe(#endif)462 3047 y Fu(fclose\(conf)5 b(\);)462
+3113 y Fa(return)23 b Fu(ann;)330 3180 y Fj(g)330 3379
+y Fb(/)p Fj(\003)33 b Fb(de)m(al)s(lo)m(c)m(ate)f(the)h(network.)363
+3445 y Fj(\003)p Fb(/)330 3512 y Fa(v)n(oid)21 b Fu(fann)p
+622 3512 V 23 w(destro)n(y\()p Fa(struct)i Fu(fann)e
+Fj(\003)p Fu(ann\))330 3578 y Fj(f)462 3645 y Fu(free\(\(ann)p
+Fj(!)p Fu(\014rst)p 914 3645 V 22 w(la)n(y)n(er+1\))p
+Fj(!)p Fu(\014rst)p 1367 3645 V 24 w(neuron)p Fj(!)p
+Fu(w)n(eigh)n(ts\);)462 3711 y(free\(\(ann)p Fj(!)p Fu(\014rst)p
+914 3711 V 22 w(la)n(y)n(er+1\))p Fj(!)p Fu(\014rst)p
+1367 3711 V 24 w(neuron)p Fj(!)p Fu(connected)p 1947
+3711 V 19 w(neurons\);)462 3778 y(free\(ann)p Fj(!)p
+Fu(\014rst)p 888 3778 V 22 w(la)n(y)n(er)p Fj(!)p Fu(\014rst)p
+1231 3778 V 24 w(neuron\);)462 3844 y(free\(ann)p Fj(!)p
+Fu(\014rst)p 888 3844 V 22 w(la)n(y)n(er\);)462 3910
+y(free\(ann)p Fj(!)p Fu(output\);)462 3977 y Fa(if)7
+b Fu(\(ann)p Fj(!)p Fu(train)p 857 3977 V 24 w(deltas)21
+b Fj(6)p Fu(=)i(NULL\))f(free\(ann)p Fj(!)p Fu(train)p
+1822 3977 V 21 w(deltas\);)462 4043 y(free\(ann\);)330
+4110 y Fj(g)330 4242 y Fb(/)p Fj(\003)33 b Fb(Save)g(the)g(network.)363
+4309 y Fj(\003)p Fb(/)330 4375 y Fa(v)n(oid)21 b Fu(fann)p
+622 4375 V 23 w(sa)n(v)n(e\()p Fa(struct)j Fu(fann)d
+Fj(\003)p Fu(ann,)h Fa(const)g(c)n(har)g Fj(\003)p Fu(con\014guration)p
+2113 4375 V 22 w(\014le\))330 4442 y Fj(f)462 4508 y
+Fu(fann)p 594 4508 V 23 w(sa)n(v)n(e)p 737 4508 V 24
+w(in)n(ternal\(ann,)e(con\014guration)p 1540 4508 V 22
+w(\014le,)i(0\);)330 4575 y Fj(g)330 4707 y Fb(/)p Fj(\003)33
+b Fb(Save)g(the)g(network)g(as)h(\014xe)m(d)e(p)m(oint)i(data.)363
+4774 y Fj(\003)p Fb(/)330 4840 y Fa(in)n(t)23 b Fu(fann)p
+575 4840 V 22 w(sa)n(v)n(e)p 717 4840 V 24 w(to)p 800
+4840 V 24 w(\014xed\()p Fa(struct)f Fu(fann)f Fj(\003)p
+Fu(ann,)h Fa(const)g(c)n(har)h Fj(\003)p Fu(con\014guration)p
+2311 4840 V 22 w(\014le\))330 4907 y Fj(f)462 4973 y
+Fa(return)g Fu(fann)p 826 4973 V 23 w(sa)n(v)n(e)p 969
+4973 V 24 w(in)n(ternal\(ann,)d(con\014guration)p 1772
+4973 V 22 w(\014le,)h(1\);)330 5039 y Fj(g)330 5172 y
+Fa(v)n(oid)g Fu(fann)p 622 5172 V 23 w(set)p 727 5172
+V 24 w(learning)p 985 5172 V 22 w(rate\()p Fa(struct)i
+Fu(fann)e Fj(\003)p Fu(ann,)h Fa(\015oat)g Fu(learning)p
+2098 5172 V 22 w(rate\))330 5239 y Fj(f)462 5305 y Fu(ann)p
+Fj(!)p Fu(learning)p 873 5305 V 22 w(rate)g(=)h(learning)p
+1340 5305 V 22 w(rate;)330 5372 y Fj(g)330 5504 y Fa(v)n(oid)e
+Fu(fann)p 622 5504 V 23 w(set)p 727 5504 V 24 w(activ)l(ation)p
+1038 5504 V 23 w(function)p 1301 5504 V 22 w(hidden\()p
+Fa(struct)g Fu(fann)g Fj(\003)p Fu(ann,)h Fa(unsigned)f(in)n(t)i
+Fu(activ)l(ation)p 2804 5504 V 23 w(function\))330 5571
+y Fj(f)462 5637 y Fu(ann)p Fj(!)p Fu(activ)l(ation)p
+926 5637 V 23 w(function)p 1189 5637 V 22 w(hidden)d(=)j(activ)l(ation)
+p 1789 5637 V 23 w(function;)p Black 1788 5919 a Fy(60)p
+Black eop end
+%%Page: 61 65
+TeXDict begin 61 64 bop Black 330 70 a Fp(B.1)82 b(The)28
+b(library)1617 b(B)83 b(SOUR)n(CE)27 b(CODE)p 330 103
+3000 4 v Black 330 390 a Fj(g)330 523 y Fa(v)n(oid)21
+b Fu(fann)p 622 523 20 4 v 23 w(set)p 727 523 V 24 w(activ)l(ation)p
+1038 523 V 23 w(function)p 1301 523 V 22 w(output\()p
+Fa(struct)h Fu(fann)f Fj(\003)p Fu(ann,)h Fa(unsigned)f(in)n(t)i
+Fu(activ)l(ation)p 2804 523 V 23 w(function\))330 589
+y Fj(f)462 656 y Fu(ann)p Fj(!)p Fu(activ)l(ation)p 926
+656 V 23 w(function)p 1189 656 V 22 w(output)e(=)i(activ)l(ation)p
+1789 656 V 23 w(function;)330 722 y Fj(g)330 855 y Fa(v)n(oid)e
+Fu(fann)p 622 855 V 23 w(set)p 727 855 V 24 w(activ)l(ation)p
+1038 855 V 23 w(hidden)p 1258 855 V 22 w(steepness\()p
+Fa(struct)h Fu(fann)f Fj(\003)p Fu(ann,)h(fann)p 2249
+855 V 22 w(t)n(yp)r(e)g(steepness\))330 922 y Fj(f)330
+988 y Fe(#ifdef)g Fu(FIXEDF)-7 b(ANN)462 1054 y Fa(in)n(t)23
+b Fu(i;)330 1121 y Fe(#endif)462 1187 y Fu(ann)p Fj(!)p
+Fu(activ)l(ation)p 926 1187 V 23 w(hidden)p 1146 1187
+V 22 w(steepness)e(=)h(steepness;)330 1254 y Fe(#ifdef)g
+Fu(FIXEDF)-7 b(ANN)462 1320 y Fa(for)p Fu(\(i)22 b(=)h(0;)f(i)g
+Fk(<)g Fu(6;)h(i++\))p Fj(f)595 1386 y Fu(ann)p Fj(!)p
+Fu(activ)l(ation)p 1059 1386 V 22 w(hidden)p 1278 1386
+V 22 w(v)l(alues[i])f(=)330 1453 y(\(fann)p 488 1453
+V 23 w(t)n(yp)r(e\)\(\(\(\(log\(ann)p Fj(!)p Fu(m)n(ultiplier)p
+Fk(=)p Fu(\()p Fa(\015oat)p Fu(\)ann)p Fj(!)p Fu(activ)l(ation)p
+2030 1453 V 18 w(results[i])f(-1\))p Fj(\003)p Fu(\()p
+Fa(\015oat)p Fu(\)ann)p Fj(!)p Fu(m)n(ultiplier\))f Fk(=)330
+1519 y Fu(-2.0\))p Fj(\003)p Fu(\()p Fa(\015oat)p Fu(\)ann)p
+Fj(!)p Fu(m)n(ultiplier\))g Fk(=)i Fu(steepness\);)462
+1586 y Fj(g)330 1652 y Fe(#endif)330 1719 y Fj(g)330
+1851 y Fa(v)n(oid)f Fu(fann)p 622 1851 V 23 w(set)p 727
+1851 V 24 w(activ)l(ation)p 1038 1851 V 23 w(output)p
+1257 1851 V 23 w(steepness\()p Fa(struct)h Fu(fann)f
+Fj(\003)p Fu(ann,)h(fann)p 2249 1851 V 22 w(t)n(yp)r(e)g(steepness\))
+330 1918 y Fj(f)330 1984 y Fe(#ifdef)g Fu(FIXEDF)-7 b(ANN)462
+2051 y Fa(in)n(t)23 b Fu(i;)330 2117 y Fe(#endif)462
+2183 y Fu(ann)p Fj(!)p Fu(activ)l(ation)p 926 2183 V
+23 w(hidden)p 1146 2183 V 22 w(steepness)e(=)h(steepness;)330
+2250 y Fe(#ifdef)g Fu(FIXEDF)-7 b(ANN)462 2316 y Fa(for)p
+Fu(\(i)22 b(=)h(0;)f(i)g Fk(<)g Fu(6;)h(i++\))p Fj(f)595
+2383 y Fu(ann)p Fj(!)p Fu(activ)l(ation)p 1059 2383 V
+22 w(output)p 1277 2383 V 23 w(v)l(alues[i])f(=)330 2449
+y(\(fann)p 488 2449 V 23 w(t)n(yp)r(e\)\(\(\(\(log\(ann)p
+Fj(!)p Fu(m)n(ultiplier)p Fk(=)p Fu(\()p Fa(\015oat)p
+Fu(\)ann)p Fj(!)p Fu(activ)l(ation)p 2030 2449 V 18 w(results[i])f
+(-1\))p Fj(\003)p Fu(\()p Fa(\015oat)p Fu(\)ann)p Fj(!)p
+Fu(m)n(ultiplier\))f Fk(=)330 2516 y Fu(-2.0\))p Fj(\003)p
+Fu(\()p Fa(\015oat)p Fu(\)ann)p Fj(!)p Fu(m)n(ultiplier\))g
+Fk(=)i Fu(steepness\);)462 2582 y Fj(g)330 2648 y Fe(#endif)330
+2715 y Fj(g)330 2848 y Fa(\015oat)g Fu(fann)p 630 2848
+V 23 w(get)p 742 2848 V 23 w(learning)p 999 2848 V 23
+w(rate\()p Fa(struct)g Fu(fann)g Fj(\003)p Fu(ann\))330
+2914 y Fj(f)462 2980 y Fa(return)h Fu(ann)p Fj(!)p Fu(learning)p
+1105 2980 V 22 w(rate;)330 3047 y Fj(g)330 3180 y Fa(unsigned)e(in)n(t)
+i Fu(fann)p 887 3180 V 23 w(get)p 999 3180 V 23 w(n)n(um)p
+1149 3180 V 23 w(input\()p Fa(struct)f Fu(fann)f Fj(\003)p
+Fu(ann\))330 3246 y Fj(f)462 3313 y Fa(return)i Fu(ann)p
+Fj(!)p Fu(n)n(um)p 998 3313 V 23 w(input;)330 3379 y
+Fj(g)330 3512 y Fa(unsigned)e(in)n(t)i Fu(fann)p 887
+3512 V 23 w(get)p 999 3512 V 23 w(n)n(um)p 1149 3512
+V 23 w(output\()p Fa(struct)f Fu(fann)f Fj(\003)p Fu(ann\))330
+3578 y Fj(f)462 3645 y Fa(return)i Fu(ann)p Fj(!)p Fu(n)n(um)p
+998 3645 V 23 w(output;)330 3711 y Fj(g)330 3844 y Fa(unsigned)e(in)n
+(t)i Fu(fann)p 887 3844 V 23 w(get)p 999 3844 V 23 w(activ)l(ation)p
+1309 3844 V 23 w(function)p 1572 3844 V 22 w(hidden\()p
+Fa(struct)e Fu(fann)g Fj(\003)p Fu(ann\))330 3910 y Fj(f)462
+3977 y Fa(return)i Fu(ann)p Fj(!)p Fu(activ)l(ation)p
+1158 3977 V 23 w(function)p 1421 3977 V 22 w(hidden;)330
+4043 y Fj(g)330 4176 y Fa(unsigned)e(in)n(t)i Fu(fann)p
+887 4176 V 23 w(get)p 999 4176 V 23 w(activ)l(ation)p
+1309 4176 V 23 w(function)p 1572 4176 V 22 w(output\()p
+Fa(struct)f Fu(fann)f Fj(\003)p Fu(ann\))330 4242 y Fj(f)462
+4309 y Fa(return)i Fu(ann)p Fj(!)p Fu(activ)l(ation)p
+1158 4309 V 23 w(function)p 1421 4309 V 22 w(output;)330
+4375 y Fj(g)330 4508 y Fu(fann)p 462 4508 V 23 w(t)n(yp)r(e)e(fann)p
+762 4508 V 23 w(get)p 874 4508 V 23 w(activ)l(ation)p
+1184 4508 V 24 w(hidden)p 1405 4508 V 21 w(steepness\()p
+Fa(struct)h Fu(fann)g Fj(\003)p Fu(ann\))330 4575 y Fj(f)462
+4641 y Fa(return)h Fu(ann)p Fj(!)p Fu(activ)l(ation)p
+1158 4641 V 23 w(hidden)p 1378 4641 V 22 w(steepness;)330
+4707 y Fj(g)330 4840 y Fu(fann)p 462 4840 V 23 w(t)n(yp)r(e)e(fann)p
+762 4840 V 23 w(get)p 874 4840 V 23 w(activ)l(ation)p
+1184 4840 V 24 w(output)p 1404 4840 V 22 w(steepness\()p
+Fa(struct)h Fu(fann)g Fj(\003)p Fu(ann\))330 4907 y Fj(f)462
+4973 y Fa(return)h Fu(ann)p Fj(!)p Fu(activ)l(ation)p
+1158 4973 V 23 w(output)p 1377 4973 V 23 w(steepness;)330
+5039 y Fj(g)330 5172 y Fa(unsigned)e(in)n(t)i Fu(fann)p
+887 5172 V 23 w(get)p 999 5172 V 23 w(total)p 1159 5172
+V 24 w(neurons\()p Fa(struct)f Fu(fann)f Fj(\003)p Fu(ann\))330
+5239 y Fj(f)462 5305 y Fb(/)p Fj(\003)34 b Fb(-1,)f(b)m(e)m(c)m(ause)d
+(ther)m(e)j(is)g(always)h(an)g(unuse)m(d)f(bias)g(neur)m(on)g(in)h(the)
+f(last)g(layer)h Fj(\003)p Fb(/)462 5372 y Fa(return)23
+b Fu(ann)p Fj(!)p Fu(total)p 1008 5372 V 23 w(neurons)f(-)g(1;)330
+5438 y Fj(g)330 5571 y Fa(unsigned)f(in)n(t)i Fu(fann)p
+887 5571 V 23 w(get)p 999 5571 V 23 w(total)p 1159 5571
+V 24 w(connections\()p Fa(struct)e Fu(fann)g Fj(\003)p
+Fu(ann\))330 5637 y Fj(f)p Black 1788 5919 a Fy(61)p
+Black eop end
+%%Page: 62 66
+TeXDict begin 62 65 bop Black 330 70 a Fp(B.1)82 b(The)28
+b(library)1617 b(B)83 b(SOUR)n(CE)27 b(CODE)p 330 103
+3000 4 v Black 462 390 a Fa(return)c Fu(ann)p Fj(!)p
+Fu(total)p 1008 390 20 4 v 23 w(connections;)330 457
+y Fj(g)330 589 y Fa(v)n(oid)e Fu(fann)p 622 589 V 23
+w(randomize)p 945 589 V 22 w(w)n(eigh)n(ts\()p Fa(struct)i
+Fu(fann)f Fj(\003)p Fu(ann,)f(fann)p 1883 589 V 23 w(t)n(yp)r(e)g(min)p
+2166 589 V 23 w(w)n(eigh)n(t,)h(fann)p 2546 589 V 23
+w(t)n(yp)r(e)f(max)p 2841 589 V 24 w(w)n(eigh)n(t\))330
+656 y Fj(f)462 722 y Fu(fann)p 594 722 V 23 w(t)n(yp)r(e)h
+Fj(\003)p Fu(last)p 905 722 V 24 w(w)n(eigh)n(t;)462
+789 y(fann)p 594 789 V 23 w(t)n(yp)r(e)g Fj(\003)p Fu(w)n(eigh)n(ts)g
+(=)g(\(ann)p Fj(!)p Fu(\014rst)p 1425 789 V 24 w(la)n(y)n(er+1\))p
+Fj(!)p Fu(\014rst)p 1880 789 V 23 w(neuron)p Fj(!)p Fu(w)n(eigh)n(ts;)
+462 855 y(last)p 570 855 V 24 w(w)n(eigh)n(t)h(=)f(w)n(eigh)n(ts)g(+)h
+(ann)p Fj(!)p Fu(total)p 1498 855 V 23 w(connections;)462
+922 y Fa(for)p Fu(\(;w)n(eigh)n(ts)f Fj(6)p Fu(=)h(last)p
+1017 922 V 24 w(w)n(eigh)n(t;)f(w)n(eigh)n(ts++\))p Fj(f)595
+988 y(\003)p Fu(w)n(eigh)n(ts)g(=)h(\(fann)p 1097 988
+V 22 w(t)n(yp)r(e\)\(fann)p 1427 988 V 22 w(rand\(min)p
+1719 988 V 22 w(w)n(eigh)n(t,)f(max)p 2093 988 V 24 w(w)n(eigh)n
+(t\)\);)462 1054 y Fj(g)330 1121 y(g)330 1254 y Fe(#ifndef)f
+Fu(FIXEDF)-7 b(ANN)330 1320 y Fb(/)p Fj(\003)33 b Fb(T)-5
+b(r)m(ains)34 b(the)f(network)g(with)h(the)f(b)m(ackpr)m(op)m(agation)f
+(algorithm.)363 1386 y Fj(\003)p Fb(/)330 1453 y Fa(v)n(oid)21
+b Fu(fann)p 622 1453 V 23 w(train\()p Fa(struct)i Fu(fann)e
+Fj(\003)p Fu(ann,)h(fann)p 1488 1453 V 23 w(t)n(yp)r(e)f
+Fj(\003)p Fu(input,)g(fann)p 2018 1453 V 23 w(t)n(yp)r(e)g
+Fj(\003)p Fu(desired)p 2429 1453 V 22 w(output\))330
+1519 y Fj(f)462 1586 y Fa(struct)j Fu(fann)p 812 1586
+V 22 w(neuron)d Fj(\003)p Fu(neuron)p 1289 1586 V 23
+w(it,)h Fj(\003)p Fu(last)p 1536 1586 V 24 w(neuron,)e
+Fj(\003)p Fu(neurons;)462 1652 y(fann)p 594 1652 V 23
+w(t)n(yp)r(e)i(neuron)p 967 1652 V 22 w(v)l(alue,)g Fj(\003)p
+Fu(delta)p 1359 1652 V 22 w(it,)g Fj(\003)p Fu(delta)p
+1646 1652 V 23 w(b)r(egin,)f(tmp)p 1985 1652 V 23 w(delta;)462
+1719 y Fa(struct)j Fu(fann)p 812 1719 V 22 w(la)n(y)n(er)e
+Fj(\003)p Fu(la)n(y)n(er)p 1168 1719 V 24 w(it;)462 1785
+y Fa(unsigned)g(in)n(t)g Fu(i,)g(shift)p 1080 1785 V
+23 w(prev)p 1231 1785 V 23 w(la)n(y)n(er;)462 1918 y
+Fb(/)p Fj(\003)34 b Fb(stor)m(e)e(some)h(variab)m(els)f(lo)m(c)m(al)g
+(for)i(fast)g(ac)m(c)m(ess)d Fj(\003)p Fb(/)462 1984
+y Fa(const)23 b(\015oat)f Fu(learning)p 1063 1984 V 22
+w(rate)g(=)g(ann)p Fj(!)p Fu(learning)p 1702 1984 V 22
+w(rate;)462 2051 y Fa(const)h Fu(fann)p 789 2051 V 23
+w(t)n(yp)r(e)e(activ)l(ation)p 1248 2051 V 23 w(output)p
+1467 2051 V 23 w(steepness)g(=)h(ann)p Fj(!)p Fu(activ)l(ation)p
+2312 2051 V 23 w(output)p 2531 2051 V 23 w(steepness;)462
+2117 y Fa(const)h Fu(fann)p 789 2117 V 23 w(t)n(yp)r(e)e(activ)l(ation)
+p 1248 2117 V 23 w(hidden)p 1468 2117 V 22 w(steepness)g(=)h(ann)p
+Fj(!)p Fu(activ)l(ation)p 2312 2117 V 23 w(hidden)p 2532
+2117 V 22 w(steepness;)462 2183 y Fa(const)h(struct)g
+Fu(fann)p 1006 2183 V 23 w(neuron)e Fj(\003)p Fu(\014rst)p
+1400 2183 V 23 w(neuron)g(=)i(ann)p Fj(!)p Fu(\014rst)p
+2007 2183 V 23 w(la)n(y)n(er)p Fj(!)p Fu(\014rst)p 2351
+2183 V 23 w(neuron;)462 2316 y Fa(const)g(struct)g Fu(fann)p
+1006 2316 V 23 w(neuron)e Fj(\003)p Fu(last)p 1388 2316
+V 24 w(la)n(y)n(er)p 1551 2316 V 23 w(b)r(egin)g(=)h(\(ann)p
+Fj(!)p Fu(last)p 2129 2316 V 24 w(la)n(y)n(er-1\))p Fj(!)p
+Fu(\014rst)p 2555 2316 V 24 w(neuron;)462 2383 y Fa(const)h(struct)g
+Fu(fann)p 1006 2383 V 23 w(neuron)e Fj(\003)p Fu(last)p
+1388 2383 V 24 w(la)n(y)n(er)p 1551 2383 V 23 w(end)g(=)i(last)p
+1877 2383 V 24 w(la)n(y)n(er)p 2040 2383 V 23 w(b)r(egin)e(+)h(ann)p
+Fj(!)p Fu(n)n(um)p 2615 2383 V 23 w(output;)462 2449
+y Fa(struct)i Fu(fann)p 812 2449 V 22 w(la)n(y)n(er)e
+Fj(\003)p Fu(\014rst)p 1145 2449 V 24 w(la)n(y)n(er)g(=)g(ann)p
+Fj(!)p Fu(\014rst)p 1692 2449 V 24 w(la)n(y)n(er;)462
+2516 y Fa(struct)i Fu(fann)p 812 2516 V 22 w(la)n(y)n(er)e
+Fj(\003)p Fu(last)p 1133 2516 V 24 w(la)n(y)n(er)g(=)h(ann)p
+Fj(!)p Fu(last)p 1669 2516 V 23 w(la)n(y)n(er;)462 2648
+y(fann)p 594 2648 V 23 w(run\(ann,)e(input\);)462 2715
+y Fb(/)p Fj(\003)34 b Fb(if)f(no)h(r)m(o)m(om)e(al)s(lo)m(c)m(ate)m(d)g
+(for)i(the)e(delta)h(variab)m(els,)g(al)s(lo)m(c)m(ate)f(it)i(now)g
+Fj(\003)p Fb(/)462 2781 y Fa(if)7 b Fu(\(ann)p Fj(!)p
+Fu(train)p 857 2781 V 24 w(deltas)21 b(==)i(NULL\))p
+Fj(f)595 2848 y Fu(ann)p Fj(!)p Fu(train)p 913 2848 V
+23 w(deltas)e(=)i(\(fann)p 1356 2848 V 22 w(t)n(yp)r(e)f
+Fj(\003)p Fu(\)callo)r(c\(ann)p Fj(!)p Fu(total)p 2090
+2848 V 22 w(neurons,)f Fa(sizeof)7 b Fu(\(fann)p 2718
+2848 V 23 w(t)n(yp)r(e\)\);)462 2914 y Fj(g)462 2980
+y Fu(delta)p 611 2980 V 23 w(b)r(egin)21 b(=)h(ann)p
+Fj(!)p Fu(train)p 1200 2980 V 23 w(deltas;)462 3113 y
+Fb(/)p Fj(\003)34 b Fb(cle)m(ar)e(the)h(delta)f(variab)m(els)h
+Fj(\003)p Fb(/)462 3180 y Fu(memset\(delta)p 859 3180
+V 22 w(b)r(egin,)20 b(0,)i(\(ann)p Fj(!)p Fu(total)p
+1488 3180 V 24 w(neurons\))f Fj(\003)h Fa(sizeof)7 b
+Fu(\(fann)p 2181 3180 V 24 w(t)n(yp)r(e\)\);)330 3313
+y Fe(#ifdef)22 b Fu(DEBUGTRAIN)462 3379 y(prin)n(tf\()p
+Fe("calculate)29 b(deltas)p Fj(n)p Fe(n")p Fu(\);)330
+3445 y Fe(#endif)462 3512 y Fb(/)p Fj(\003)34 b Fb(c)m(alculate)d(the)i
+(err)m(or)g(and)g(plac)m(e)f(it)i(in)g(the)f(output)g(layer)g
+Fj(\003)p Fb(/)462 3578 y Fu(delta)p 611 3578 V 23 w(it)22
+b(=)h(delta)p 920 3578 V 23 w(b)r(egin)d(+)j(\(last)p
+1325 3578 V 24 w(la)n(y)n(er)p 1488 3578 V 23 w(b)r(egin)e(-)i(\014rst)
+p 1851 3578 V 23 w(neuron\);)462 3645 y Fa(for)p Fu(\(;)f(last)p
+729 3645 V 24 w(la)n(y)n(er)p 892 3645 V 24 w(b)r(egin)f
+Fj(6)p Fu(=)h(last)p 1272 3645 V 24 w(la)n(y)n(er)p 1435
+3645 V 23 w(end;)f(last)p 1706 3645 V 24 w(la)n(y)n(er)p
+1869 3645 V 24 w(b)r(egin++\))p Fj(f)595 3711 y Fu(neuron)p
+799 3711 V 22 w(v)l(alue)h(=)g(last)p 1170 3711 V 24
+w(la)n(y)n(er)p 1333 3711 V 24 w(b)r(egin)p Fj(!)p Fu(v)l(alue;)595
+3778 y Fb(/)p Fj(\003)33 b Fb(TODO)g(add)g(switch)h(the)f(minute)g
+(ther)m(e)f(ar)m(e)h(other)g(activation)h(functions)g
+Fj(\003)p Fb(/)595 3844 y Fj(\003)p Fu(delta)p 778 3844
+V 23 w(it)22 b(=)g(fann)p 1069 3844 V 23 w(sigmoid)p
+1314 3844 V 23 w(deriv)n(e\(activ)l(ation)p 1825 3844
+V 22 w(output)p 2043 3844 V 22 w(steepness,)f(neuron)p
+2573 3844 V 23 w(v)l(alue\))g Fj(\003)i Fu(\()p Fj(\003)p
+Fu(desired)p 3115 3844 V 22 w(output)330 3910 y(-)g(neuron)p
+579 3910 V 22 w(v)l(alue\);)595 4043 y(ann)p Fj(!)p Fu(error)p
+913 4043 V 23 w(v)l(alue)e(+=)i(\()p Fj(\003)p Fu(desired)p
+1497 4043 V 22 w(output)e(-)i(neuron)p 1981 4043 V 22
+w(v)l(alue\))f Fj(\003)g Fu(\()p Fj(\003)p Fu(desired)p
+2522 4043 V 23 w(output)f(-)i(neuron)p 3007 4043 V 22
+w(v)l(alue\);)330 4176 y Fe(#ifdef)f Fu(DEBUGTRAIN)595
+4242 y(prin)n(tf\()p Fe("delta[\045d])28 b Fu(=)j Fe(")p
+Fu(F)-7 b(ANNPRINTF)p Fe(")p Fj(n)p Fe(n")p Fu(,)21 b(\(delta)p
+2017 4242 V 23 w(it)h(-)h(delta)p 2297 4242 V 23 w(b)r(egin\),)e
+Fj(\003)p Fu(delta)p 2723 4242 V 22 w(it\);)330 4309
+y Fe(#endif)595 4375 y Fu(desired)p 804 4375 V 22 w(output++;)595
+4442 y(delta)p 744 4442 V 23 w(it++;)462 4508 y Fj(g)462
+4575 y Fu(ann)p Fj(!)p Fu(n)n(um)p 766 4575 V 23 w(errors++;)462
+4774 y Fb(/)p Fj(\003)34 b Fb(go)e(thr)m(ough)h(al)s(l)g(the)g(layers,)
+h(fr)m(om)f(last)g(to)h(\014rst.)g(A)n(nd)g(pr)m(op)m(agate)e(the)h
+(err)m(or)g(b)m(ackwar)m(ds)f Fj(\003)p Fb(/)462 4840
+y Fa(for)p Fu(\(la)n(y)n(er)p 723 4840 V 24 w(it)22 b(=)g(last)p
+991 4840 V 24 w(la)n(y)n(er-1;)g(la)n(y)n(er)p 1389 4840
+V 24 w(it)g Fj(6)p Fu(=)g(\014rst)p 1669 4840 V 24 w(la)n(y)n(er;)g
+(--la)n(y)n(er)p 2056 4840 V 24 w(it\))p Fj(f)595 4907
+y Fu(last)p 703 4907 V 24 w(neuron)f(=)h(la)n(y)n(er)p
+1160 4907 V 23 w(it)p Fj(!)p Fu(last)p 1398 4907 V 24
+w(neuron;)595 5039 y Fb(/)p Fj(\003)33 b Fb(for)h(e)m(ach)e(c)m(onne)m
+(ction)h(in)h(this)g(layer,)f(pr)m(op)m(agate)f(the)h(err)m(or)g(b)m
+(ackwar)m(ds)p Fj(\003)p Fb(/)595 5106 y Fa(if)7 b Fu(\(ann)p
+Fj(!)p Fu(connection)p 1161 5106 V 21 w(rate)22 b(==)g(1\))p
+Fj(f)323 b Fb(/)p Fj(\003)33 b Fb(optimization)i(for)f(ful)s(ly)g(c)m
+(onne)m(cte)m(d)d(networks)j Fj(\003)p Fb(/)727 5172
+y Fu(shift)p 860 5172 V 23 w(prev)p 1011 5172 V 23 w(la)n(y)n(er)22
+b(=)g(\(la)n(y)n(er)p 1433 5172 V 24 w(it-1\))p Fj(!)p
+Fu(\014rst)p 1765 5172 V 24 w(neuron)f(-)h(\014rst)p
+2170 5172 V 24 w(neuron;)727 5239 y Fa(for)p Fu(\(neuron)p
+1049 5239 V 22 w(it)g(=)h(la)n(y)n(er)p 1351 5239 V 23
+w(it)p Fj(!)p Fu(\014rst)p 1601 5239 V 24 w(neuron;)859
+5305 y(neuron)p 1063 5305 V 23 w(it)f Fj(6)p Fu(=)g(last)p
+1330 5305 V 24 w(neuron;)f(neuron)p 1794 5305 V 22 w(it++\))p
+Fj(f)859 5372 y Fu(tmp)p 981 5372 V 23 w(delta)h(=)g
+Fj(\003)p Fu(\(delta)p 1449 5372 V 23 w(b)r(egin)f(+)h(\(neuron)p
+1950 5372 V 23 w(it)g(-)g(\014rst)p 2200 5372 V 24 w(neuron\)\);)859
+5438 y Fa(for)p Fu(\(i)g(=)h(0;)f(i)g Fk(<)g Fu(neuron)p
+1485 5438 V 23 w(it)p Fj(!)p Fu(n)n(um)p 1746 5438 V
+23 w(connections;)e(i++\))p Fj(f)992 5504 y(\003)p Fu(\(delta)p
+1201 5504 V 23 w(b)r(egin)h(+)h(i)g(+)g(shift)p 1719
+5504 V 24 w(prev)p 1871 5504 V 22 w(la)n(y)n(er\))g(+=)h(tmp)p
+2323 5504 V 23 w(delta)e Fj(\003)h Fu(neuron)p 2768 5504
+V 23 w(it)p Fj(!)p Fu(w)n(eigh)n(ts[i];)859 5571 y Fj(g)727
+5637 y(g)p Black 1788 5919 a Fy(62)p Black eop end
+%%Page: 63 67
+TeXDict begin 63 66 bop Black 330 70 a Fp(B.1)82 b(The)28
+b(library)1617 b(B)83 b(SOUR)n(CE)27 b(CODE)p 330 103
+3000 4 v Black 595 390 a Fj(g)p Fa(else)p Fj(f)727 457
+y Fa(for)p Fu(\(neuron)p 1049 457 20 4 v 22 w(it)22 b(=)h(la)n(y)n(er)p
+1351 457 V 23 w(it)p Fj(!)p Fu(\014rst)p 1601 457 V 24
+w(neuron;)859 523 y(neuron)p 1063 523 V 23 w(it)f Fj(6)p
+Fu(=)g(last)p 1330 523 V 24 w(neuron;)f(neuron)p 1794
+523 V 22 w(it++\))p Fj(f)859 589 y Fu(tmp)p 981 589 V
+23 w(delta)h(=)g Fj(\003)p Fu(\(delta)p 1449 589 V 23
+w(b)r(egin)f(+)h(\(neuron)p 1950 589 V 23 w(it)g(-)g(\014rst)p
+2200 589 V 24 w(neuron\)\);)859 656 y Fa(for)p Fu(\(i)g(=)h(0;)f(i)g
+Fk(<)g Fu(neuron)p 1485 656 V 23 w(it)p Fj(!)p Fu(n)n(um)p
+1746 656 V 23 w(connections;)e(i++\))p Fj(f)992 722 y(\003)p
+Fu(\(delta)p 1201 722 V 23 w(b)r(egin)h(+)h(\(neuron)p
+1702 722 V 22 w(it)p Fj(!)p Fu(connected)p 2125 722 V
+21 w(neurons[i])f(-)h(\014rst)p 2610 722 V 24 w(neuron\)\))f(+=)1124
+789 y(tmp)p 1246 789 V 23 w(delta)h Fj(\003)g Fu(neuron)p
+1692 789 V 22 w(it)p Fj(!)p Fu(w)n(eigh)n(ts[i];)859
+855 y Fj(g)727 922 y(g)595 988 y(g)595 1121 y Fb(/)p
+Fj(\003)33 b Fb(then)g(c)m(alculate)f(the)h(actual)f(err)m(ors)h(in)h
+(the)f(pr)m(evious)g(layer)g Fj(\003)p Fb(/)595 1187
+y Fu(delta)p 744 1187 V 23 w(it)22 b(=)g(delta)p 1052
+1187 V 23 w(b)r(egin)f(+)h(\(\(la)n(y)n(er)p 1518 1187
+V 24 w(it-1\))p Fj(!)p Fu(\014rst)p 1850 1187 V 23 w(neuron)f(-)i
+(\014rst)p 2255 1187 V 24 w(neuron\);)595 1254 y(last)p
+703 1254 V 24 w(neuron)e(=)h(\(la)n(y)n(er)p 1186 1254
+V 23 w(it-1\))p Fj(!)p Fu(last)p 1505 1254 V 25 w(neuron;)595
+1320 y Fa(for)p Fu(\(neuron)p 917 1320 V 22 w(it)g(=)g(\(la)n(y)n(er)p
+1244 1320 V 24 w(it-1\))p Fj(!)p Fu(\014rst)p 1576 1320
+V 24 w(neuron;)727 1386 y(neuron)p 931 1386 V 23 w(it)g
+Fj(6)p Fu(=)g(last)p 1198 1386 V 24 w(neuron;)f(neuron)p
+1662 1386 V 22 w(it++\))p Fj(f)727 1453 y Fu(neuron)p
+931 1453 V 23 w(v)l(alue)g(=)i(neuron)p 1399 1453 V 22
+w(it)p Fj(!)p Fu(v)l(alue;)727 1519 y Fb(/)p Fj(\003)33
+b Fb(TODO)h(add)f(switch)h(the)f(minute)g(ther)m(e)f(ar)m(e)g(other)h
+(activation)h(functions)h Fj(\003)p Fb(/)727 1586 y Fj(\003)p
+Fu(delta)p 910 1586 V 23 w(it)22 b Fj(\003)d Fu(=)j(fann)p
+1254 1586 V 23 w(sigmoid)p 1499 1586 V 23 w(deriv)n(e\(activ)l(ation)p
+2010 1586 V 22 w(hidden)p 2229 1586 V 22 w(steepness,)f(neuron)p
+2759 1586 V 22 w(v)l(alue\))h Fj(\003)330 1652 y Fu(learning)p
+568 1652 V 22 w(rate;)330 1785 y Fe(#ifdef)g Fu(DEBUGTRAIN)727
+1851 y(prin)n(tf\()p Fe("delta[\045d])29 b Fu(=)h Fe(")p
+Fu(F)-7 b(ANNPRINTF)p Fe(")p Fj(n)p Fe(n")p Fu(,)22 b(delta)p
+2124 1851 V 23 w(it)g(-)g(delta)p 2403 1851 V 23 w(b)r(egin,)f
+Fj(\003)p Fu(delta)p 2803 1851 V 23 w(it\);)330 1918
+y Fe(#endif)727 1984 y Fu(delta)p 876 1984 V 23 w(it++;)595
+2051 y Fj(g)462 2117 y(g)330 2250 y Fe(#ifdef)h Fu(DEBUGTRAIN)462
+2316 y(prin)n(tf\()p Fe(")p Fj(n)p Fe(nupdate)29 b(weights)p
+Fj(n)p Fe(n")p Fu(\);)330 2383 y Fe(#endif)462 2516 y
+Fa(for)p Fu(\(la)n(y)n(er)p 723 2516 V 24 w(it)22 b(=)g(\(\014rst)p
+1029 2516 V 24 w(la)n(y)n(er+1\);)f(la)n(y)n(er)p 1481
+2516 V 24 w(it)h Fj(6)p Fu(=)g(last)p 1749 2516 V 24
+w(la)n(y)n(er;)g(la)n(y)n(er)p 2092 2516 V 24 w(it++\))p
+Fj(f)330 2582 y Fe(#ifdef)g Fu(DEBUGTRAIN)595 2648 y(prin)n(tf\()p
+Fe("layer[\045d])p Fj(n)p Fe(n")p Fu(,)d(la)n(y)n(er)p
+1372 2648 V 24 w(it)j(-)h(\014rst)p 1624 2648 V 23 w(la)n(y)n(er\);)330
+2715 y Fe(#endif)595 2781 y Fu(last)p 703 2781 V 24 w(neuron)e(=)h(la)n
+(y)n(er)p 1160 2781 V 23 w(it)p Fj(!)p Fu(last)p 1398
+2781 V 24 w(neuron;)595 2848 y Fa(if)7 b Fu(\(ann)p Fj(!)p
+Fu(connection)p 1161 2848 V 21 w(rate)22 b(==)g(1\))p
+Fj(f)323 b Fb(/)p Fj(\003)33 b Fb(optimization)i(for)f(ful)s(ly)g(c)m
+(onne)m(cte)m(d)d(networks)j Fj(\003)p Fb(/)727 2914
+y Fu(neurons)21 b(=)i(\(la)n(y)n(er)p 1217 2914 V 23
+w(it-1\))p Fj(!)p Fu(\014rst)p 1548 2914 V 24 w(neuron;)727
+2980 y Fa(for)p Fu(\(neuron)p 1049 2980 V 22 w(it)f(=)h(la)n(y)n(er)p
+1351 2980 V 23 w(it)p Fj(!)p Fu(\014rst)p 1601 2980 V
+24 w(neuron;)859 3047 y(neuron)p 1063 3047 V 23 w(it)f
+Fj(6)p Fu(=)g(last)p 1330 3047 V 24 w(neuron;)f(neuron)p
+1794 3047 V 22 w(it++\))p Fj(f)859 3113 y Fu(tmp)p 981
+3113 V 23 w(delta)h(=)g Fj(\003)p Fu(\(delta)p 1449 3113
+V 23 w(b)r(egin)f(+)h(\(neuron)p 1950 3113 V 23 w(it)g(-)g(\014rst)p
+2200 3113 V 24 w(neuron\)\);)859 3180 y Fa(for)p Fu(\(i)g(=)h(0;)f(i)g
+Fk(<)g Fu(neuron)p 1485 3180 V 23 w(it)p Fj(!)p Fu(n)n(um)p
+1746 3180 V 23 w(connections;)e(i++\))p Fj(f)992 3246
+y Fu(neuron)p 1196 3246 V 22 w(it)p Fj(!)p Fu(w)n(eigh)n(ts[i])i(+=)g
+(tmp)p 1864 3246 V 23 w(delta)g Fj(\003)g Fu(neurons[i].v)l(alue;)859
+3313 y Fj(g)727 3379 y(g)595 3445 y(g)p Fa(else)p Fj(f)727
+3512 y Fa(for)p Fu(\(neuron)p 1049 3512 V 22 w(it)g(=)h(la)n(y)n(er)p
+1351 3512 V 23 w(it)p Fj(!)p Fu(\014rst)p 1601 3512 V
+24 w(neuron;)859 3578 y(neuron)p 1063 3578 V 23 w(it)f
+Fj(6)p Fu(=)g(last)p 1330 3578 V 24 w(neuron;)f(neuron)p
+1794 3578 V 22 w(it++\))p Fj(f)859 3645 y Fu(tmp)p 981
+3645 V 23 w(delta)h(=)g Fj(\003)p Fu(\(delta)p 1449 3645
+V 23 w(b)r(egin)f(+)h(\(neuron)p 1950 3645 V 23 w(it)g(-)g(\014rst)p
+2200 3645 V 24 w(neuron\)\);)859 3711 y Fa(for)p Fu(\(i)g(=)h(0;)f(i)g
+Fk(<)g Fu(neuron)p 1485 3711 V 23 w(it)p Fj(!)p Fu(n)n(um)p
+1746 3711 V 23 w(connections;)e(i++\))p Fj(f)992 3778
+y Fu(neuron)p 1196 3778 V 22 w(it)p Fj(!)p Fu(w)n(eigh)n(ts[i])i(+=)g
+(tmp)p 1864 3778 V 23 w(delta)g Fj(\003)g Fu(neuron)p
+2310 3778 V 23 w(it)p Fj(!)p Fu(connected)p 2734 3778
+V 20 w(neurons[i])p Fj(!)p Fu(v)l(alue;)859 3844 y Fj(g)727
+3910 y(g)595 3977 y(g)462 4043 y(g)330 4110 y(g)330 4176
+y Fe(#endif)330 4309 y Fb(/)p Fj(\003)33 b Fb(T)-5 b(ests)33
+b(the)g(network.)363 4375 y Fj(\003)p Fb(/)330 4442 y
+Fu(fann)p 462 4442 V 23 w(t)n(yp)r(e)21 b Fj(\003)p Fu(fann)p
+796 4442 V 23 w(test\()p Fa(struct)i Fu(fann)e Fj(\003)p
+Fu(ann,)h(fann)p 1629 4442 V 23 w(t)n(yp)r(e)f Fj(\003)p
+Fu(input,)g(fann)p 2159 4442 V 23 w(t)n(yp)r(e)g Fj(\003)p
+Fu(desired)p 2570 4442 V 23 w(output\))330 4508 y Fj(f)462
+4575 y Fu(fann)p 594 4575 V 23 w(t)n(yp)r(e)h(neuron)p
+967 4575 V 22 w(v)l(alue;)462 4641 y(fann)p 594 4641
+V 23 w(t)n(yp)r(e)g Fj(\003)p Fu(output)p 997 4641 V
+22 w(b)r(egin)f(=)i(fann)p 1400 4641 V 23 w(run\(ann,)d(input\);)462
+4707 y(fann)p 594 4707 V 23 w(t)n(yp)r(e)i Fj(\003)p
+Fu(output)p 997 4707 V 22 w(it;)462 4774 y Fa(const)h
+Fu(fann)p 789 4774 V 23 w(t)n(yp)r(e)e Fj(\003)p Fu(output)p
+1191 4774 V 23 w(end)g(=)h(output)p 1608 4774 V 23 w(b)r(egin)f(+)h
+(ann)p Fj(!)p Fu(n)n(um)p 2183 4774 V 23 w(output;)462
+4907 y Fb(/)p Fj(\003)34 b Fb(c)m(alculate)d(the)i(err)m(or)g
+Fj(\003)p Fb(/)462 4973 y Fa(for)p Fu(\(output)p 780
+4973 V 23 w(it)22 b(=)g(output)p 1139 4973 V 23 w(b)r(egin;)595
+5039 y(output)p 795 5039 V 23 w(it)g Fj(6)p Fu(=)g(output)p
+1154 5039 V 23 w(end;)f(output)p 1517 5039 V 23 w(it++\))p
+Fj(f)595 5106 y Fu(neuron)p 799 5106 V 22 w(v)l(alue)h(=)g
+Fj(\003)p Fu(output)p 1296 5106 V 23 w(it;)330 5239 y
+Fe(#ifdef)g Fu(FIXEDF)-7 b(ANN)595 5305 y(ann)p Fj(!)p
+Fu(error)p 913 5305 V 23 w(v)l(alue)21 b(+=)i(\(\()p
+Fj(\003)p Fu(desired)p 1523 5305 V 22 w(output)e(-)i(neuron)p
+2007 5305 V 22 w(v)l(alue\))p Fk(=)p Fu(\()p Fa(\015oat)p
+Fu(\)ann)p Fj(!)p Fu(m)n(ultiplier\))c Fj(\003)330 5372
+y Fu(\(\()p Fj(\003)p Fu(desired)p 625 5372 V 22 w(output)j(-)g(neuron)
+p 1109 5372 V 23 w(v)l(alue\))p Fk(=)p Fu(\()p Fa(\015oat)p
+Fu(\)ann)p Fj(!)p Fu(m)n(ultiplier\);)330 5438 y Fe(#else)595
+5504 y Fu(ann)p Fj(!)p Fu(error)p 913 5504 V 23 w(v)l(alue)f(+=)i(\()p
+Fj(\003)p Fu(desired)p 1497 5504 V 22 w(output)e(-)i(neuron)p
+1981 5504 V 22 w(v)l(alue\))f Fj(\003)g Fu(\()p Fj(\003)p
+Fu(desired)p 2522 5504 V 23 w(output)f(-)i(neuron)p 3007
+5504 V 22 w(v)l(alue\);)330 5571 y Fe(#endif)p Black
+1788 5919 a Fy(63)p Black eop end
+%%Page: 64 68
+TeXDict begin 64 67 bop Black 330 70 a Fp(B.1)82 b(The)28
+b(library)1617 b(B)83 b(SOUR)n(CE)27 b(CODE)p 330 103
+3000 4 v Black 595 390 a Fu(desired)p 804 390 20 4 v
+22 w(output++;)462 457 y Fj(g)462 523 y Fu(ann)p Fj(!)p
+Fu(n)n(um)p 766 523 V 23 w(errors++;)462 656 y Fa(return)c
+Fu(output)p 894 656 V 23 w(b)r(egin;)330 722 y Fj(g)330
+855 y Fb(/)p Fj(\003)33 b Fb(R)m(e)m(ads)f(tr)m(aining)i(data)g(fr)m
+(om)e(a)h(\014le.)363 922 y Fj(\003)p Fb(/)330 988 y
+Fa(struct)23 b Fu(fann)p 679 988 V 23 w(train)p 843 988
+V 23 w(data)p Fj(\003)f Fu(fann)p 1179 988 V 23 w(read)p
+1328 988 V 23 w(train)p 1492 988 V 24 w(from)p 1651 988
+V 23 w(\014le\()p Fa(c)n(har)f Fj(\003)p Fu(\014lename\))330
+1054 y Fj(f)462 1121 y Fa(unsigned)h(in)n(t)g Fu(n)n(um)p
+1018 1121 V 23 w(input,)f(n)n(um)p 1364 1121 V 23 w(output,)g(n)n(um)p
+1750 1121 V 23 w(data,)h(i,)g(j;)462 1187 y Fa(unsigned)g(in)n(t)g
+Fu(line)f(=)i(1;)462 1254 y Fa(struct)h Fu(fann)p 812
+1254 V 22 w(train)p 975 1254 V 24 w(data)p Fj(\003)e
+Fu(data;)462 1386 y(FILE)g Fj(\003)p Fu(\014le)g(=)g(fop)r
+(en\(\014lename,)c Fe("r")p Fu(\);)462 1519 y(data)23
+b(=)f(\()p Fa(struct)h Fu(fann)p 1062 1519 V 23 w(train)p
+1226 1519 V 23 w(data)f Fj(\003)p Fu(\)mallo)r(c\()p
+Fa(sizeof)7 b Fu(\()p Fa(struct)22 b Fu(fann)p 2233 1519
+V 23 w(train)p 2397 1519 V 24 w(data\)\);)462 1652 y
+Fa(if)7 b Fu(\(!\014le\))p Fj(f)595 1719 y Fu(prin)n(tf\()p
+Fe("Unable)29 b(to)h(open)g(train)h(data)f(file)g Fj(n)p
+Fe("\045s)p Fj(n)p Fe(")h(for)f(reading.)p Fj(n)p Fe(n")p
+Fu(,)21 b(\014lename\);)595 1785 y Fa(return)i Fu(NULL;)462
+1851 y Fj(g)462 1984 y Fa(if)7 b Fu(\(fscanf\(\014le,)20
+b Fe("\045u)31 b(\045u)g(\045u)p Fj(n)p Fe(n")p Fu(,)21
+b(&n)n(um)p 1456 1984 V 23 w(data,)h(&n)n(um)p 1827 1984
+V 23 w(input,)f(&n)n(um)p 2224 1984 V 23 w(output\))g
+Fj(6)p Fu(=)h(3\))p Fj(f)595 2051 y Fu(prin)n(tf\()p
+Fe("Error)29 b(reading)h(info)g(from)g(train)h(data)f(file)g
+Fj(n)p Fe("\045s)p Fj(n)p Fe(",)h(line:)61 b(\045d.)p
+Fj(n)p Fe(n")p Fu(,)21 b(\014lename,)f(line\);)595 2117
+y Fa(return)j Fu(NULL;)462 2183 y Fj(g)462 2250 y Fu(line++;)462
+2383 y(data)p Fj(!)p Fu(n)n(um)p 788 2383 V 23 w(data)f(=)h(n)n(um)p
+1163 2383 V 23 w(data;)462 2449 y(data)p Fj(!)p Fu(n)n(um)p
+788 2449 V 23 w(input)e(=)i(n)n(um)p 1189 2449 V 23 w(input;)462
+2516 y(data)p Fj(!)p Fu(n)n(um)p 788 2516 V 23 w(output)f(=)g(n)n(um)p
+1229 2516 V 23 w(output;)462 2582 y(data)p Fj(!)p Fu(input)f(=)i
+(\(fann)p 1066 2582 V 23 w(t)n(yp)r(e)e Fj(\003\003)p
+Fu(\)callo)r(c\(n)n(um)p 1651 2582 V 21 w(data,)h Fa(sizeof)7
+b Fu(\(fann)p 2182 2582 V 24 w(t)n(yp)r(e)21 b Fj(\003)p
+Fu(\)\);)462 2648 y(data)p Fj(!)p Fu(output)h(=)g(\(fann)p
+1106 2648 V 23 w(t)n(yp)r(e)f Fj(\003\003)p Fu(\)callo)r(c\(n)n(um)p
+1691 2648 V 22 w(data,)h Fa(sizeof)7 b Fu(\(fann)p 2223
+2648 V 23 w(t)n(yp)r(e)21 b Fj(\003)p Fu(\)\);)462 2781
+y Fa(for)p Fu(\(i)h(=)h(0;)f(i)g Fj(6)p Fu(=)g(n)n(um)p
+1014 2781 V 23 w(data;)g(i++\))p Fj(f)595 2848 y Fu(data)p
+Fj(!)p Fu(input[i])e(=)j(\(fann)p 1255 2848 V 22 w(t)n(yp)r(e)f
+Fj(\003)p Fu(\)callo)r(c\(n)n(um)p 1806 2848 V 21 w(input,)f
+Fa(sizeof)7 b Fu(\(fann)p 2363 2848 V 23 w(t)n(yp)r(e\)\);)595
+2914 y Fa(for)p Fu(\(j)21 b(=)i(0;)f(j)g Fj(6)p Fu(=)g(n)n(um)p
+1150 2914 V 23 w(input;)f(j++\))p Fj(f)727 2980 y Fa(if)7
+b Fu(\(fscanf\(\014le,)20 b(F)-7 b(ANNSCANF)p Fe(")31
+b(")p Fu(,)22 b(&data)p Fj(!)p Fu(input[i][j]\))d Fj(6)p
+Fu(=)j(1\))p Fj(f)859 3047 y Fu(prin)n(tf\()p Fe("Error)29
+b(reading)h(info)h(from)f(train)g(data)h(file)f Fj(n)p
+Fe("\045s)p Fj(n)p Fe(",)g(line:)61 b(\045d.)p Fj(n)p
+Fe(n")p Fu(,)22 b(\014lename,)330 3113 y(line\);)859
+3180 y Fa(return)h Fu(NULL;)727 3246 y Fj(g)595 3313
+y(g)595 3379 y Fu(line++;)595 3512 y(data)p Fj(!)p Fu(output[i])d(=)j
+(\(fann)p 1295 3512 V 23 w(t)n(yp)r(e)e Fj(\003)p Fu(\)callo)r(c\(n)n
+(um)p 1846 3512 V 21 w(output,)h Fa(sizeof)7 b Fu(\(fann)p
+2444 3512 V 23 w(t)n(yp)r(e\)\);)595 3578 y Fa(for)p
+Fu(\(j)21 b(=)i(0;)f(j)g Fj(6)p Fu(=)g(n)n(um)p 1150
+3578 V 23 w(output;)f(j++\))p Fj(f)727 3645 y Fa(if)7
+b Fu(\(fscanf\(\014le,)20 b(F)-7 b(ANNSCANF)p Fe(")31
+b(")p Fu(,)22 b(&data)p Fj(!)p Fu(output[i][j]\))d Fj(6)p
+Fu(=)k(1\))p Fj(f)859 3711 y Fu(prin)n(tf\()p Fe("Error)29
+b(reading)h(info)h(from)f(train)g(data)h(file)f Fj(n)p
+Fe("\045s)p Fj(n)p Fe(",)g(line:)61 b(\045d.)p Fj(n)p
+Fe(n")p Fu(,)22 b(\014lename,)330 3778 y(line\);)859
+3844 y Fa(return)h Fu(NULL;)727 3910 y Fj(g)595 3977
+y(g)595 4043 y Fu(line++;)462 4110 y Fj(g)462 4242 y
+Fa(return)g Fu(data;)330 4309 y Fj(g)330 4442 y Fb(/)p
+Fj(\003)33 b Fb(Save)g(tr)m(aining)h(data)g(to)f(a)g(\014le)363
+4508 y Fj(\003)p Fb(/)330 4575 y Fa(v)n(oid)21 b Fu(fann)p
+622 4575 V 23 w(sa)n(v)n(e)p 765 4575 V 24 w(train\()p
+Fa(struct)i Fu(fann)p 1301 4575 V 23 w(train)p 1465 4575
+V 23 w(data)p Fj(\003)f Fu(data,)g Fa(c)n(har)g Fj(\003)p
+Fu(\014lename\))330 4641 y Fj(f)462 4707 y Fu(fann)p
+594 4707 V 23 w(sa)n(v)n(e)p 737 4707 V 24 w(train)p
+902 4707 V 24 w(in)n(ternal\(data,)e(\014lename,)g(0,)i(0\);)330
+4774 y Fj(g)330 4907 y Fb(/)p Fj(\003)33 b Fb(Save)g(tr)m(aining)h
+(data)g(to)f(a)g(\014le)g(in)h(\014xe)m(d)f(p)m(oint)g(algebr)m(a.)429
+4973 y(\(Go)m(o)m(d)f(for)i(testing)g(a)f(network)g(in)h(\014xe)m(d)f
+(p)m(oint\))363 5039 y Fj(\003)p Fb(/)330 5106 y Fa(v)n(oid)21
+b Fu(fann)p 622 5106 V 23 w(sa)n(v)n(e)p 765 5106 V 24
+w(train)p 930 5106 V 24 w(to)p 1013 5106 V 23 w(\014xed\()p
+Fa(struct)h Fu(fann)p 1546 5106 V 23 w(train)p 1710 5106
+V 23 w(data)p Fj(\003)h Fu(data,)e Fa(c)n(har)i Fj(\003)p
+Fu(\014lename,)d Fa(unsigned)h(in)n(t)330 5172 y Fu(decimal)p
+557 5172 V 22 w(p)r(oin)n(t\))330 5239 y Fj(f)462 5305
+y Fu(fann)p 594 5305 V 23 w(sa)n(v)n(e)p 737 5305 V 24
+w(train)p 902 5305 V 24 w(in)n(ternal\(data,)f(\014lename,)g(1,)i
+(decimal)p 1923 5305 V 22 w(p)r(oin)n(t\);)330 5372 y
+Fj(g)330 5504 y Fb(/)p Fj(\003)33 b Fb(de)m(al)s(lo)m(c)m(ate)f(the)h
+(tr)m(ain)g(data)h(structur)m(e.)363 5571 y Fj(\003)p
+Fb(/)330 5637 y Fa(v)n(oid)21 b Fu(fann)p 622 5637 V
+23 w(destro)n(y)p 856 5637 V 24 w(train\()p Fa(struct)h
+Fu(fann)p 1391 5637 V 23 w(train)p 1555 5637 V 23 w(data)g
+Fj(\003)p Fu(data\))p Black 1788 5919 a Fy(64)p Black
+eop end
+%%Page: 65 69
+TeXDict begin 65 68 bop Black 330 70 a Fp(B.1)82 b(The)28
+b(library)1617 b(B)83 b(SOUR)n(CE)27 b(CODE)p 330 103
+3000 4 v Black 330 390 a Fj(f)462 457 y Fa(unsigned)22
+b(in)n(t)g Fu(i;)462 523 y Fa(for)p Fu(\(i)g(=)h(0;)f(i)g
+Fj(6)p Fu(=)g(data)p Fj(!)p Fu(n)n(um)p 1209 523 20 4
+v 23 w(data;)g(i++\))p Fj(f)595 589 y Fu(free\(data)p
+Fj(!)p Fu(input[i]\);)595 656 y(free\(data)p Fj(!)p Fu(output[i]\);)462
+722 y Fj(g)462 789 y Fu(free\(data)p Fj(!)p Fu(input\);)462
+855 y(free\(data)p Fj(!)p Fu(output\);)462 922 y(free\(data\);)330
+988 y Fj(g)330 1121 y Fe(#ifndef)f Fu(FIXEDF)-7 b(ANN)330
+1187 y Fb(/)p Fj(\003)33 b Fb(T)-5 b(r)m(ain)33 b(dir)m(e)m(ctly)g(on)h
+(the)e(tr)m(aining)j(data.)363 1254 y Fj(\003)p Fb(/)330
+1320 y Fa(v)n(oid)21 b Fu(fann)p 622 1320 V 23 w(train)p
+786 1320 V 24 w(on)p 880 1320 V 23 w(data\()p Fa(struct)i
+Fu(fann)e Fj(\003)p Fu(ann,)h Fa(struct)h Fu(fann)p 1951
+1320 V 23 w(train)p 2115 1320 V 23 w(data)f Fj(\003)p
+Fu(data,)g Fa(unsigned)g(in)n(t)g Fu(max)p 3041 1320
+V 24 w(ep)r(o)r(c)n(hs,)330 1386 y Fa(unsigned)f(in)n(t)i
+Fu(ep)r(o)r(c)n(hs)p 954 1386 V 22 w(b)r(et)n(w)n(een)p
+1211 1386 V 22 w(rep)r(orts,)f Fa(\015oat)g Fu(desired)p
+1853 1386 V 22 w(error\))330 1453 y Fj(f)462 1519 y Fa(\015oat)h
+Fu(error;)462 1586 y Fa(unsigned)f(in)n(t)g Fu(i,)g(j;)462
+1719 y Fa(if)7 b Fu(\(ep)r(o)r(c)n(hs)p 738 1719 V 23
+w(b)r(et)n(w)n(een)p 996 1719 V 22 w(rep)r(orts\))p Fj(f)595
+1785 y Fu(prin)n(tf\()p Fe("Max)29 b(epochs)h(\0458d.)61
+b(Desired)30 b(error:)61 b(\045.10f)p Fj(n)p Fe(n")p
+Fu(,)22 b(max)p 2252 1785 V 23 w(ep)r(o)r(c)n(hs,)f(desired)p
+2715 1785 V 22 w(error\);)462 1851 y Fj(g)462 1984 y
+Fa(for)p Fu(\(i)h(=)h(1;)f(i)g Fj(\024)g Fu(max)p 1011
+1984 V 24 w(ep)r(o)r(c)n(hs;)e(i++\))p Fj(f)595 2051
+y Fb(/)p Fj(\003)33 b Fb(tr)m(ain)h Fj(\003)p Fb(/)595
+2117 y Fu(fann)p 727 2117 V 23 w(reset)p 888 2117 V 23
+w(error\(ann\);)595 2250 y Fa(for)p Fu(\(j)21 b(=)i(0;)f(j)g
+Fj(6)p Fu(=)g(data)p Fj(!)p Fu(n)n(um)p 1345 2250 V 23
+w(data;)g(j++\))p Fj(f)727 2316 y Fu(fann)p 859 2316
+V 23 w(train\(ann,)f(data)p Fj(!)p Fu(input[j],)f(data)p
+Fj(!)p Fu(output[j]\);)595 2383 y Fj(g)595 2516 y Fu(error)i(=)g(fann)p
+963 2516 V 23 w(get)p 1075 2516 V 23 w(error\(ann\);)595
+2648 y Fb(/)p Fj(\003)33 b Fb(print)h(curr)m(ent)f(output)g
+Fj(\003)p Fb(/)595 2715 y Fa(if)7 b Fu(\(ep)r(o)r(c)n(hs)p
+871 2715 V 22 w(b)r(et)n(w)n(een)p 1128 2715 V 23 w(rep)r(orts)21
+b(&&)727 2781 y(\(i)h(\045)g(ep)r(o)r(c)n(hs)p 1070 2781
+V 23 w(b)r(et)n(w)n(een)p 1328 2781 V 22 w(rep)r(orts)f(==)i(0)859
+2848 y Fj(jj)f Fu(i)g(==)h(max)p 1214 2848 V 23 w(ep)r(o)r(c)n(hs)859
+2914 y Fj(jj)f Fu(i)g(==)h(1)859 2980 y Fj(jj)f Fu(error)g
+Fk(<)g Fu(desired)p 1367 2980 V 23 w(error\)\))p Fj(f)727
+3047 y Fu(prin)n(tf\()p Fe("Epochs)29 b(\0458d.)61 b(Current)30
+b(error:)61 b(\045.10f)p Fj(n)p Fe(n")p Fu(,)21 b(i,)h(error\);)595
+3113 y Fj(g)595 3246 y Fa(if)7 b Fu(\(error)22 b Fk(<)g
+Fu(desired)p 1118 3246 V 22 w(error\))p Fj(f)727 3313
+y Fa(break)p Fu(;)595 3379 y Fj(g)462 3445 y(g)462 3512
+y Fu(fann)p 594 3512 V 23 w(reset)p 755 3512 V 23 w(error\(ann\);)330
+3578 y Fj(g)330 3711 y Fb(/)p Fj(\003)33 b Fb(Wr)m(app)m(er)g(to)g
+(make)f(it)i(e)m(asy)f(to)g(tr)m(ain)h(dir)m(e)m(ctly)e(on)i(a)f(tr)m
+(aining)h(data)g(\014le.)363 3778 y Fj(\003)p Fb(/)330
+3844 y Fa(v)n(oid)21 b Fu(fann)p 622 3844 V 23 w(train)p
+786 3844 V 24 w(on)p 880 3844 V 23 w(\014le\()p Fa(struct)h
+Fu(fann)g Fj(\003)p Fu(ann,)f Fa(c)n(har)h Fj(\003)p
+Fu(\014lename,)e Fa(unsigned)h(in)n(t)i Fu(max)p 2589
+3844 V 23 w(ep)r(o)r(c)n(hs,)e Fa(unsigned)g(in)n(t)330
+3910 y Fu(ep)r(o)r(c)n(hs)p 529 3910 V 22 w(b)r(et)n(w)n(een)p
+786 3910 V 23 w(rep)r(orts,)g Fa(\015oat)h Fu(desired)p
+1428 3910 V 22 w(error\))330 3977 y Fj(f)462 4043 y Fa(struct)i
+Fu(fann)p 812 4043 V 22 w(train)p 975 4043 V 24 w(data)e
+Fj(\003)p Fu(data)g(=)g(fann)p 1536 4043 V 23 w(read)p
+1685 4043 V 23 w(train)p 1849 4043 V 23 w(from)p 2007
+4043 V 23 w(\014le\(\014lename\);)462 4110 y(fann)p 594
+4110 V 23 w(train)p 758 4110 V 23 w(on)p 851 4110 V 24
+w(data\(ann,)f(data,)h(max)p 1470 4110 V 24 w(ep)r(o)r(c)n(hs,)e(ep)r
+(o)r(c)n(hs)p 1923 4110 V 23 w(b)r(et)n(w)n(een)p 2181
+4110 V 22 w(rep)r(orts,)h(desired)p 2654 4110 V 23 w(error\);)462
+4176 y(fann)p 594 4176 V 23 w(destro)n(y)p 828 4176 V
+24 w(train\(data\);)330 4242 y Fj(g)330 4309 y Fe(#endif)330
+4442 y Fb(/)p Fj(\003)33 b Fb(get)g(the)g(me)m(an)f(squar)m(e)g(err)m
+(or.)363 4508 y Fj(\003)p Fb(/)330 4575 y Fa(\015oat)22
+b Fu(fann)p 630 4575 V 23 w(get)p 742 4575 V 23 w(error\()p
+Fa(struct)h Fu(fann)e Fj(\003)p Fu(ann\))330 4641 y Fj(f)462
+4707 y Fa(if)7 b Fu(\(ann)p Fj(!)p Fu(n)n(um)p 843 4707
+V 23 w(errors\))p Fj(f)595 4774 y Fa(return)23 b Fu(ann)p
+Fj(!)p Fu(error)p 1145 4774 V 22 w(v)l(alue)p Fk(=)p
+Fu(\()p Fa(\015oat)p Fu(\)ann)p Fj(!)p Fu(n)n(um)p 1849
+4774 V 22 w(errors;)462 4840 y Fj(g)p Fa(else)p Fj(f)595
+4907 y Fa(return)g Fu(0;)462 4973 y Fj(g)330 5039 y(g)330
+5172 y Fb(/)p Fj(\003)33 b Fb(r)m(eset)g(the)f(me)m(an)h(squar)m(e)f
+(err)m(or.)363 5239 y Fj(\003)p Fb(/)330 5305 y Fa(v)n(oid)21
+b Fu(fann)p 622 5305 V 23 w(reset)p 783 5305 V 23 w(error\()p
+Fa(struct)i Fu(fann)e Fj(\003)p Fu(ann\))330 5372 y Fj(f)462
+5438 y Fu(ann)p Fj(!)p Fu(n)n(um)p 766 5438 V 23 w(errors)h(=)g(0;)462
+5504 y(ann)p Fj(!)p Fu(error)p 780 5504 V 23 w(v)l(alue)g(=)g(0;)330
+5571 y Fj(g)p Black 1788 5919 a Fy(65)p Black eop end
+%%Page: 66 70
+TeXDict begin 66 69 bop Black 330 70 a Fp(B.1)82 b(The)28
+b(library)1617 b(B)83 b(SOUR)n(CE)27 b(CODE)p 330 103
+3000 4 v Black 330 390 a Fe(#ifdef)22 b Fu(FIXEDF)-7
+b(ANN)330 457 y Fb(/)p Fj(\003)33 b Fb(r)m(eturns)g(the)g(p)m(osition)i
+(of)e(the)g(\014x)g(p)m(oint.)363 523 y Fj(\003)p Fb(/)330
+589 y Fa(unsigned)21 b(in)n(t)i Fu(fann)p 887 589 20
+4 v 23 w(get)p 999 589 V 23 w(decimal)p 1245 589 V 22
+w(p)r(oin)n(t\()p Fa(struct)f Fu(fann)f Fj(\003)p Fu(ann\))330
+656 y Fj(f)462 722 y Fa(return)i Fu(ann)p Fj(!)p Fu(decimal)p
+1094 722 V 22 w(p)r(oin)n(t;)330 789 y Fj(g)330 922 y
+Fb(/)p Fj(\003)33 b Fb(r)m(eturns)g(the)g(multiplier)g(that)h(\014x)f
+(p)m(oint)g(data)h(is)g(multiplie)m(d)e(with.)363 988
+y Fj(\003)p Fb(/)330 1054 y Fa(unsigned)21 b(in)n(t)i
+Fu(fann)p 887 1054 V 23 w(get)p 999 1054 V 23 w(m)n(ultiplier\()p
+Fa(struct)e Fu(fann)g Fj(\003)p Fu(ann\))330 1121 y Fj(f)462
+1187 y Fa(return)i Fu(ann)p Fj(!)p Fu(m)n(ultiplier;)330
+1254 y Fj(g)330 1386 y Fe(#endif)330 1519 y Fb(/)p Fj(\003)33
+b Fb(runs)h(the)f(network.)363 1586 y Fj(\003)p Fb(/)330
+1652 y Fu(fann)p 462 1652 V 23 w(t)n(yp)r(e)p Fj(\003)21
+b Fu(fann)p 796 1652 V 23 w(run\()p Fa(struct)h Fu(fann)g
+Fj(\003)p Fu(ann,)f(fann)p 1620 1652 V 23 w(t)n(yp)r(e)h
+Fj(\003)p Fu(input\))330 1719 y Fj(f)462 1785 y Fa(struct)i
+Fu(fann)p 812 1785 V 22 w(neuron)d Fj(\003)p Fu(neuron)p
+1289 1785 V 23 w(it,)h Fj(\003)p Fu(last)p 1536 1785
+V 24 w(neuron,)e Fj(\003)p Fu(neurons,)h Fj(\003\003)p
+Fu(neuron)p 2367 1785 V 23 w(p)r(oin)n(ters;)462 1851
+y Fa(unsigned)h(in)n(t)g Fu(activ)l(ation)p 1178 1851
+V 23 w(function,)e(i,)i(n)n(um)p 1667 1851 V 23 w(connections,)e(n)n
+(um)p 2194 1851 V 23 w(input,)h(n)n(um)p 2540 1851 V
+23 w(output;)462 1918 y(fann)p 594 1918 V 23 w(t)n(yp)r(e)h(neuron)p
+967 1918 V 22 w(v)l(alue,)g Fj(\003)p Fu(w)n(eigh)n(ts,)g
+Fj(\003)p Fu(output;)462 1984 y Fa(struct)i Fu(fann)p
+812 1984 V 22 w(la)n(y)n(er)e Fj(\003)p Fu(la)n(y)n(er)p
+1168 1984 V 24 w(it,)g Fj(\003)p Fu(last)p 1416 1984
+V 24 w(la)n(y)n(er;)462 2183 y Fb(/)p Fj(\003)34 b Fb(stor)m(e)e(some)h
+(variab)m(els)f(lo)m(c)m(al)g(for)i(fast)g(ac)m(c)m(ess)d
+Fj(\003)p Fb(/)330 2250 y Fe(#ifndef)21 b Fu(FIXEDF)-7
+b(ANN)462 2316 y(fann)p 594 2316 V 23 w(t)n(yp)r(e)22
+b(steepness;)462 2383 y Fa(const)h Fu(fann)p 789 2383
+V 23 w(t)n(yp)r(e)e(activ)l(ation)p 1248 2383 V 23 w(output)p
+1467 2383 V 23 w(steepness)g(=)h(ann)p Fj(!)p Fu(activ)l(ation)p
+2312 2383 V 23 w(output)p 2531 2383 V 23 w(steepness;)462
+2449 y Fa(const)h Fu(fann)p 789 2449 V 23 w(t)n(yp)r(e)e(activ)l(ation)
+p 1248 2449 V 23 w(hidden)p 1468 2449 V 22 w(steepness)g(=)h(ann)p
+Fj(!)p Fu(activ)l(ation)p 2312 2449 V 23 w(hidden)p 2532
+2449 V 22 w(steepness;)330 2516 y Fe(#endif)462 2648
+y Fa(unsigned)g(in)n(t)g Fu(activ)l(ation)p 1178 2648
+V 23 w(function)p 1441 2648 V 22 w(output)f(=)i(ann)p
+Fj(!)p Fu(activ)l(ation)p 2214 2648 V 22 w(function)p
+2476 2648 V 22 w(output;)462 2715 y Fa(unsigned)f(in)n(t)g
+Fu(activ)l(ation)p 1178 2715 V 23 w(function)p 1441 2715
+V 22 w(hidden)e(=)j(ann)p Fj(!)p Fu(activ)l(ation)p 2214
+2715 V 22 w(function)p 2476 2715 V 22 w(hidden;)462 2781
+y Fa(struct)h Fu(fann)p 812 2781 V 22 w(neuron)d Fj(\003)p
+Fu(\014rst)p 1205 2781 V 24 w(neuron)g(=)h(ann)p Fj(!)p
+Fu(\014rst)p 1812 2781 V 23 w(la)n(y)n(er)p Fj(!)p Fu(\014rst)p
+2156 2781 V 24 w(neuron;)330 2848 y Fe(#ifdef)g Fu(FIXEDF)-7
+b(ANN)462 2914 y Fa(unsigned)22 b(in)n(t)g Fu(m)n(ultiplier)e(=)j(ann)p
+Fj(!)p Fu(m)n(ultiplier;)462 2980 y Fa(unsigned)f(in)n(t)g
+Fu(decimal)p 1114 2980 V 22 w(p)r(oin)n(t)f(=)i(ann)p
+Fj(!)p Fu(decimal)p 1779 2980 V 21 w(p)r(oin)n(t;)462
+3113 y Fb(/)p Fj(\003)34 b Fb(values)e(use)m(d)g(for)i(the)f(stepwise)h
+(line)m(ar)f(sigmoid)g(function)i Fj(\003)p Fb(/)462
+3246 y(/)p Fj(\003)f Fb(the)e(r)m(esults)h Fj(\003)p
+Fb(/)462 3313 y Fu(fann)p 594 3313 V 23 w(t)n(yp)r(e)22
+b(r1)g(=)g(ann)p Fj(!)p Fu(activ)l(ation)p 1381 3313
+V 23 w(results[0];)462 3379 y(fann)p 594 3379 V 23 w(t)n(yp)r(e)g(r2)g
+(=)g(ann)p Fj(!)p Fu(activ)l(ation)p 1381 3379 V 23 w(results[1];)462
+3445 y(fann)p 594 3445 V 23 w(t)n(yp)r(e)g(r3)g(=)g(ann)p
+Fj(!)p Fu(activ)l(ation)p 1381 3445 V 23 w(results[2];)462
+3512 y(fann)p 594 3512 V 23 w(t)n(yp)r(e)g(r4)g(=)g(ann)p
+Fj(!)p Fu(activ)l(ation)p 1381 3512 V 23 w(results[3];)462
+3578 y(fann)p 594 3578 V 23 w(t)n(yp)r(e)g(r5)g(=)g(ann)p
+Fj(!)p Fu(activ)l(ation)p 1381 3578 V 23 w(results[4];)462
+3645 y(fann)p 594 3645 V 23 w(t)n(yp)r(e)g(r6)g(=)g(ann)p
+Fj(!)p Fu(activ)l(ation)p 1381 3645 V 23 w(results[5];)462
+3778 y Fb(/)p Fj(\003)34 b Fb(the)e(hidden)i(p)m(ar)m(ameters)e
+Fj(\003)p Fb(/)462 3844 y Fu(fann)p 594 3844 V 23 w(t)n(yp)r(e)22
+b(h1)g(=)g(ann)p Fj(!)p Fu(activ)l(ation)p 1392 3844
+V 23 w(hidden)p 1612 3844 V 22 w(v)l(alues[0];)462 3910
+y(fann)p 594 3910 V 23 w(t)n(yp)r(e)g(h2)g(=)g(ann)p
+Fj(!)p Fu(activ)l(ation)p 1392 3910 V 23 w(hidden)p 1612
+3910 V 22 w(v)l(alues[1];)462 3977 y(fann)p 594 3977
+V 23 w(t)n(yp)r(e)g(h3)g(=)g(ann)p Fj(!)p Fu(activ)l(ation)p
+1392 3977 V 23 w(hidden)p 1612 3977 V 22 w(v)l(alues[2];)462
+4043 y(fann)p 594 4043 V 23 w(t)n(yp)r(e)g(h4)g(=)g(ann)p
+Fj(!)p Fu(activ)l(ation)p 1392 4043 V 23 w(hidden)p 1612
+4043 V 22 w(v)l(alues[3];)462 4110 y(fann)p 594 4110
+V 23 w(t)n(yp)r(e)g(h5)g(=)g(ann)p Fj(!)p Fu(activ)l(ation)p
+1392 4110 V 23 w(hidden)p 1612 4110 V 22 w(v)l(alues[4];)462
+4176 y(fann)p 594 4176 V 23 w(t)n(yp)r(e)g(h6)g(=)g(ann)p
+Fj(!)p Fu(activ)l(ation)p 1392 4176 V 23 w(hidden)p 1612
+4176 V 22 w(v)l(alues[5];)462 4309 y Fb(/)p Fj(\003)34
+b Fb(the)e(output)h(p)m(ar)m(ameters)f Fj(\003)p Fb(/)462
+4375 y Fu(fann)p 594 4375 V 23 w(t)n(yp)r(e)22 b(o1)g(=)g(ann)p
+Fj(!)p Fu(activ)l(ation)p 1388 4375 V 23 w(output)p 1607
+4375 V 23 w(v)l(alues[0];)462 4442 y(fann)p 594 4442
+V 23 w(t)n(yp)r(e)g(o2)g(=)g(ann)p Fj(!)p Fu(activ)l(ation)p
+1388 4442 V 23 w(output)p 1607 4442 V 23 w(v)l(alues[1];)462
+4508 y(fann)p 594 4508 V 23 w(t)n(yp)r(e)g(o3)g(=)g(ann)p
+Fj(!)p Fu(activ)l(ation)p 1388 4508 V 23 w(output)p 1607
+4508 V 23 w(v)l(alues[2];)462 4575 y(fann)p 594 4575
+V 23 w(t)n(yp)r(e)g(o4)g(=)g(ann)p Fj(!)p Fu(activ)l(ation)p
+1388 4575 V 23 w(output)p 1607 4575 V 23 w(v)l(alues[3];)462
+4641 y(fann)p 594 4641 V 23 w(t)n(yp)r(e)g(o5)g(=)g(ann)p
+Fj(!)p Fu(activ)l(ation)p 1388 4641 V 23 w(output)p 1607
+4641 V 23 w(v)l(alues[4];)462 4707 y(fann)p 594 4707
+V 23 w(t)n(yp)r(e)g(o6)g(=)g(ann)p Fj(!)p Fu(activ)l(ation)p
+1388 4707 V 23 w(output)p 1607 4707 V 23 w(v)l(alues[5];)330
+4774 y Fe(#endif)462 4907 y Fb(/)p Fj(\003)34 b Fb(\014rst)f(set)h(the)
+e(input)i Fj(\003)p Fb(/)462 4973 y Fu(n)n(um)p 593 4973
+V 23 w(input)21 b(=)i(ann)p Fj(!)p Fu(n)n(um)p 1167 4973
+V 22 w(input;)462 5039 y Fa(for)p Fu(\(i)f(=)h(0;)f(i)g
+Fj(6)p Fu(=)g(n)n(um)p 1014 5039 V 23 w(input;)f(i++\))p
+Fj(f)330 5106 y Fe(#ifdef)h Fu(FIXEDF)-7 b(ANN)595 5172
+y Fa(if)7 b Fu(\(fann)p 804 5172 V 23 w(abs\(input[i]\))20
+b Fk(>)j Fu(m)n(ultiplier\))p Fj(f)727 5239 y Fu(prin)n(tf\()p
+Fe("Warning)29 b(input)h(number)g(\045d)h(is)f(out)h(of)f(range)h
+(-\045d)f(-)h(\045d)g(with)f(value)g(\045d,)h(integer)330
+5305 y(overflow)f(may)g(occur.)p Fj(n)p Fe(n")p Fu(,)22
+b(i,)g(m)n(ultiplier,)d(m)n(ultiplier,)h(input[i]\);)595
+5372 y Fj(g)330 5438 y Fe(#endif)595 5504 y Fu(\014rst)p
+715 5504 V 23 w(neuron[i].v)l(alue)g(=)i(input[i];)462
+5571 y Fj(g)p Black 1788 5919 a Fy(66)p Black eop end
+%%Page: 67 71
+TeXDict begin 67 70 bop Black 330 70 a Fp(B.1)82 b(The)28
+b(library)1617 b(B)83 b(SOUR)n(CE)27 b(CODE)p 330 103
+3000 4 v Black 462 390 a Fu(last)p 570 390 20 4 v 24
+w(la)n(y)n(er)22 b(=)h(ann)p Fj(!)p Fu(last)p 1106 390
+V 23 w(la)n(y)n(er;)462 457 y Fa(for)p Fu(\(la)n(y)n(er)p
+723 457 V 24 w(it)f(=)g(ann)p Fj(!)p Fu(\014rst)p 1176
+457 V 23 w(la)n(y)n(er+1;)g(la)n(y)n(er)p 1602 457 V
+24 w(it)g Fj(6)p Fu(=)g(last)p 1870 457 V 24 w(la)n(y)n(er;)g(la)n(y)n
+(er)p 2213 457 V 23 w(it++\))p Fj(f)330 589 y Fe(#ifdef)g
+Fu(FIXEDF)-7 b(ANN)595 656 y(\(\(la)n(y)n(er)p 790 656
+V 23 w(it-1\))p Fj(!)p Fu(last)p 1109 656 V 24 w(neuron-1\))p
+Fj(!)p Fu(v)l(alue)21 b(=)i(m)n(ultiplier;)330 722 y
+Fe(#else)595 789 y Fb(/)p Fj(\003)33 b Fb(set)g(the)g(bias)g(neur)m(on)
+g Fj(\003)p Fb(/)595 855 y Fu(\(\(la)n(y)n(er)p 790 855
+V 23 w(it-1\))p Fj(!)p Fu(last)p 1109 855 V 24 w(neuron-1\))p
+Fj(!)p Fu(v)l(alue)21 b(=)i(1;)595 988 y(steepness)e(=)h(\(la)n(y)n(er)
+p 1126 988 V 24 w(it)g(==)g(last)p 1445 988 V 24 w(la)n(y)n(er-1\))g(?)
+727 1054 y(activ)l(ation)p 1018 1054 V 23 w(output)p
+1237 1054 V 23 w(steepness)f(:)29 b(activ)l(ation)p 1884
+1054 V 24 w(hidden)p 2105 1054 V 21 w(steepness;)330
+1121 y Fe(#endif)595 1254 y Fu(activ)l(ation)p 886 1254
+V 23 w(function)20 b(=)i(\(la)n(y)n(er)p 1407 1254 V
+24 w(it)g(==)g(last)p 1726 1254 V 24 w(la)n(y)n(er-1\))h(?)727
+1320 y(activ)l(ation)p 1018 1320 V 23 w(function)p 1281
+1320 V 22 w(output)e(:)30 b(activ)l(ation)p 1856 1320
+V 23 w(function)p 2119 1320 V 21 w(hidden;)595 1453 y(last)p
+703 1453 V 24 w(neuron)21 b(=)h(la)n(y)n(er)p 1160 1453
+V 23 w(it)p Fj(!)p Fu(last)p 1398 1453 V 24 w(neuron-1;)595
+1519 y Fa(for)p Fu(\(neuron)p 917 1519 V 22 w(it)g(=)g(la)n(y)n(er)p
+1218 1519 V 24 w(it)p Fj(!)p Fu(\014rst)p 1469 1519 V
+23 w(neuron;)f(neuron)p 1932 1519 V 23 w(it)h Fj(6)p
+Fu(=)g(last)p 2199 1519 V 24 w(neuron;)f(neuron)p 2663
+1519 V 22 w(it++\))p Fj(f)727 1586 y Fu(neuron)p 931
+1586 V 23 w(v)l(alue)g(=)i(0;)727 1652 y(n)n(um)p 858
+1652 V 23 w(connections)d(=)j(neuron)p 1513 1652 V 22
+w(it)p Fj(!)p Fu(n)n(um)p 1773 1652 V 23 w(connections;)727
+1719 y(w)n(eigh)n(ts)g(=)f(neuron)p 1241 1719 V 22 w(it)p
+Fj(!)p Fu(w)n(eigh)n(ts;)727 1785 y Fa(if)7 b Fu(\(ann)p
+Fj(!)p Fu(connection)p 1293 1785 V 21 w(rate)22 b(==)g(1\))p
+Fj(f)859 1851 y Fu(neurons)g(=)g(\(la)n(y)n(er)p 1349
+1851 V 23 w(it-1\))p Fj(!)p Fu(\014rst)p 1680 1851 V
+24 w(neuron;)859 1984 y(i)h(=)f(n)n(um)p 1105 1984 V
+23 w(connections)e(&)i(3;)959 b Fb(/)p Fj(\003)33 b Fb(same)f(as)i(mo)m
+(dulo)e(4)h Fj(\003)p Fb(/)859 2051 y Fa(switc)n(h)p
+Fu(\(i\))23 b Fj(f)992 2117 y Fa(case)g Fu(3:)1124 2183
+y(neuron)p 1328 2183 V 23 w(v)l(alue)e(+=)i(fann)p 1775
+2183 V 23 w(m)n(ult\(w)n(eigh)n(ts[2],)e(neurons[2].v)l(alue\);)992
+2250 y Fa(case)i Fu(2:)1124 2316 y(neuron)p 1328 2316
+V 23 w(v)l(alue)e(+=)i(fann)p 1775 2316 V 23 w(m)n(ult\(w)n(eigh)n
+(ts[1],)e(neurons[1].v)l(alue\);)992 2383 y Fa(case)i
+Fu(1:)1124 2449 y(neuron)p 1328 2449 V 23 w(v)l(alue)e(+=)i(fann)p
+1775 2449 V 23 w(m)n(ult\(w)n(eigh)n(ts[0],)e(neurons[0].v)l(alue\);)
+992 2516 y Fa(case)i Fu(0:)1124 2582 y Fa(break)p Fu(;)859
+2648 y Fj(g)859 2781 y Fa(for)p Fu(\(;i)f Fj(6)p Fu(=)h(n)n(um)p
+1242 2781 V 22 w(connections;)d(i)j(+=)f(4\))p Fj(f)992
+2848 y Fu(neuron)p 1196 2848 V 22 w(v)l(alue)g(+=)1124
+2914 y(fann)p 1256 2914 V 23 w(m)n(ult\(w)n(eigh)n(ts[i],)f
+(neurons[i].v)l(alue\))f(+)1124 2980 y(fann)p 1256 2980
+V 23 w(m)n(ult\(w)n(eigh)n(ts[i+1],)h(neurons[i+1].v)l(alue\))f(+)1124
+3047 y(fann)p 1256 3047 V 23 w(m)n(ult\(w)n(eigh)n(ts[i+2],)h
+(neurons[i+2].v)l(alue\))f(+)1124 3113 y(fann)p 1256
+3113 V 23 w(m)n(ult\(w)n(eigh)n(ts[i+3],)h(neurons[i+3].v)l(alue\);)859
+3180 y Fj(g)727 3246 y(g)p Fa(else)p Fj(f)859 3313 y
+Fu(neuron)p 1063 3313 V 23 w(p)r(oin)n(ters)g(=)i(neuron)p
+1615 3313 V 22 w(it)p Fj(!)p Fu(connected)p 2038 3313
+V 21 w(neurons;)859 3445 y(i)g(=)f(n)n(um)p 1105 3445
+V 23 w(connections)e(&)i(3;)959 b Fb(/)p Fj(\003)33 b
+Fb(same)f(as)i(mo)m(dulo)e(4)h Fj(\003)p Fb(/)859 3512
+y Fa(switc)n(h)p Fu(\(i\))23 b Fj(f)992 3578 y Fa(case)g
+Fu(3:)1124 3645 y(neuron)p 1328 3645 V 23 w(v)l(alue)e(+=)i(fann)p
+1775 3645 V 23 w(m)n(ult\(w)n(eigh)n(ts[2],)e(neuron)p
+2484 3645 V 22 w(p)r(oin)n(ters[2])p Fj(!)p Fu(v)l(alue\);)992
+3711 y Fa(case)i Fu(2:)1124 3778 y(neuron)p 1328 3778
+V 23 w(v)l(alue)e(+=)i(fann)p 1775 3778 V 23 w(m)n(ult\(w)n(eigh)n
+(ts[1],)e(neuron)p 2484 3778 V 22 w(p)r(oin)n(ters[1])p
+Fj(!)p Fu(v)l(alue\);)992 3844 y Fa(case)i Fu(1:)1124
+3910 y(neuron)p 1328 3910 V 23 w(v)l(alue)e(+=)i(fann)p
+1775 3910 V 23 w(m)n(ult\(w)n(eigh)n(ts[0],)e(neuron)p
+2484 3910 V 22 w(p)r(oin)n(ters[0])p Fj(!)p Fu(v)l(alue\);)992
+3977 y Fa(case)i Fu(0:)1124 4043 y Fa(break)p Fu(;)859
+4110 y Fj(g)859 4242 y Fa(for)p Fu(\(;i)f Fj(6)p Fu(=)h(n)n(um)p
+1242 4242 V 22 w(connections;)d(i)j(+=)f(4\))p Fj(f)992
+4309 y Fu(neuron)p 1196 4309 V 22 w(v)l(alue)g(+=)1124
+4375 y(fann)p 1256 4375 V 23 w(m)n(ult\(w)n(eigh)n(ts[i],)f(neuron)p
+1951 4375 V 22 w(p)r(oin)n(ters[i])p Fj(!)p Fu(v)l(alue\))f(+)1124
+4442 y(fann)p 1256 4442 V 23 w(m)n(ult\(w)n(eigh)n(ts[i+1],)h(neuron)p
+2035 4442 V 22 w(p)r(oin)n(ters[i+1])p Fj(!)p Fu(v)l(alue\))g(+)1124
+4508 y(fann)p 1256 4508 V 23 w(m)n(ult\(w)n(eigh)n(ts[i+2],)g(neuron)p
+2035 4508 V 22 w(p)r(oin)n(ters[i+2])p Fj(!)p Fu(v)l(alue\))g(+)1124
+4575 y(fann)p 1256 4575 V 23 w(m)n(ult\(w)n(eigh)n(ts[i+3],)g(neuron)p
+2035 4575 V 22 w(p)r(oin)n(ters[i+3])p Fj(!)p Fu(v)l(alue\);)859
+4641 y Fj(g)727 4707 y(g)727 4840 y Fa(if)7 b Fu(\(activ)l(ation)p
+1095 4840 V 23 w(function)21 b(==)h(F)-7 b(ANN)p 1686
+4840 V 24 w(SIGMOID\))p Fj(f)330 4907 y Fe(#ifdef)22
+b Fu(FIXEDF)-7 b(ANN)859 4973 y Fa(if)7 b Fu(\(la)n(y)n(er)p
+1079 4973 V 24 w(it)22 b(==)h(last)p 1399 4973 V 24 w(la)n(y)n(er-1\))p
+Fj(f)992 5039 y Fu(neuron)p 1196 5039 V 22 w(it)p Fj(!)p
+Fu(v)l(alue)f(=)g(fann)p 1702 5039 V 23 w(sigmoid)p 1947
+5039 V 23 w(step)n(wise\(o1,)g(o2,)h(o3,)f(o4,)g(o5,)h(o6,)f(r1,)g(r2,)
+g(r3,)h(r4,)330 5106 y(r5,)f(r6,)g(neuron)p 734 5106
+V 23 w(v)l(alue,)f(m)n(ultiplier\);)859 5172 y Fj(g)p
+Fa(else)p Fj(f)992 5239 y Fu(neuron)p 1196 5239 V 22
+w(it)p Fj(!)p Fu(v)l(alue)h(=)g(fann)p 1702 5239 V 23
+w(sigmoid)p 1947 5239 V 23 w(step)n(wise\(h1,)g(h2,)g(h3,)g(h4,)g(h5,)f
+(h6,)h(r1,)h(r2,)f(r3,)g(r4,)330 5305 y(r5,)g(r6,)g(neuron)p
+734 5305 V 23 w(v)l(alue,)f(m)n(ultiplier\);)859 5372
+y Fj(g)330 5438 y Fe(#else)859 5504 y Fu(neuron)p 1063
+5504 V 23 w(it)p Fj(!)p Fu(v)l(alue)h(=)g(fann)p 1570
+5504 V 23 w(sigmoid\(steepness,)e(neuron)p 2348 5504
+V 22 w(v)l(alue\);)330 5571 y Fe(#endif)727 5637 y Fj(g)p
+Fa(else)p Fj(f)p Black 1788 5919 a Fy(67)p Black eop
+end
+%%Page: 68 72
+TeXDict begin 68 71 bop Black 330 70 a Fp(B.1)82 b(The)28
+b(library)1617 b(B)83 b(SOUR)n(CE)27 b(CODE)p 330 103
+3000 4 v Black 859 390 a Fu(neuron)p 1063 390 20 4 v
+23 w(it)p Fj(!)p Fu(v)l(alue)22 b(=)g(\(neuron)p 1668
+390 V 22 w(v)l(alue)g Fk(<)g Fu(0\))h(?)29 b(0)23 b(:)29
+b(1;)727 457 y Fj(g)595 523 y(g)462 589 y(g)462 722 y
+Fb(/)p Fj(\003)34 b Fb(set)f(the)g(output)f Fj(\003)p
+Fb(/)462 789 y Fu(output)22 b(=)g(ann)p Fj(!)p Fu(output;)462
+855 y(n)n(um)p 593 855 V 23 w(output)g(=)g(ann)p Fj(!)p
+Fu(n)n(um)p 1207 855 V 23 w(output;)462 922 y(neurons)g(=)g(\(ann)p
+Fj(!)p Fu(last)p 1090 922 V 23 w(la)n(y)n(er-1\))p Fj(!)p
+Fu(\014rst)p 1515 922 V 24 w(neuron;)462 988 y Fa(for)p
+Fu(\(i)g(=)h(0;)f(i)g Fj(6)p Fu(=)g(n)n(um)p 1014 988
+V 23 w(output;)f(i++\))p Fj(f)595 1054 y Fu(output[i])f(=)j
+(neurons[i].v)l(alue;)462 1121 y Fj(g)462 1187 y Fa(return)g
+Fu(ann)p Fj(!)p Fu(output;)330 1254 y Fj(g)p Black 1788
+5919 a Fy(68)p Black eop end
+%%Page: 69 73
+TeXDict begin 69 72 bop Black 330 70 a Fp(B.1)82 b(The)28
+b(library)1617 b(B)83 b(SOUR)n(CE)27 b(CODE)p 330 103
+3000 4 v Black 330 390 a Fs(B.1.8)94 b Ft(fann)p 823
+390 27 4 v 30 w(internal.c)p Black Black 330 510 a Fe(#include)21
+b Fk(<)p Fe(stdlib.h)p Fk(>)330 577 y Fe(#include)g Fk(<)p
+Fe(stdio.h)p Fk(>)330 643 y Fe(#include)g Fk(<)p Fe(string.h)p
+Fk(>)330 709 y Fe(#include)g Fk(<)p Fe(sys/time.h)p Fk(>)330
+776 y Fe(#include)g Fk(<)p Fe(time.h)p Fk(>)330 909 y
+Fe(#include)g Fu(")p Fe(fann)p 760 909 19 4 v 22 w(internal.h)p
+Fu(")330 1042 y Fb(/)p Fj(\003)33 b Fb(A)n(l)s(lo)m(c)m(ates)g(the)g
+(main)h(structur)m(e)e(and)h(sets)h(some)e(default)h(values.)363
+1108 y Fj(\003)p Fb(/)330 1174 y Fa(struct)23 b Fu(fann)f
+Fj(\003)g Fu(fann)p 885 1174 20 4 v 23 w(allo)r(cate)p
+1133 1174 V 22 w(structure\()p Fa(\015oat)f Fu(learning)p
+1846 1174 V 22 w(rate,)h Fa(unsigned)f(in)n(t)i Fu(n)n(um)p
+2576 1174 V 22 w(la)n(y)n(ers\))330 1241 y Fj(f)462 1307
+y Fa(struct)h Fu(fann)d Fj(\003)p Fu(ann;)462 1440 y
+Fa(if)7 b Fu(\(n)n(um)p 670 1440 V 24 w(la)n(y)n(ers)22
+b Fk(<)g Fu(2\))p Fj(f)330 1507 y Fe(#ifdef)g Fu(DEBUG)595
+1573 y(prin)n(tf\()p Fe("less)29 b(than)h(2)h(layers)f(-)h(ABORTING.)p
+Fj(n)p Fe(n")p Fu(\);)330 1639 y Fe(#endif)595 1706 y
+Fa(return)23 b Fu(NULL;)462 1772 y Fj(g)462 1905 y Fb(/)p
+Fj(\003)34 b Fb(al)s(lo)m(c)m(ate)e(and)h(initialize)j(the)c(main)i
+(network)f(structur)m(e)g Fj(\003)p Fb(/)462 1971 y Fu(ann)22
+b(=)h(\()p Fa(struct)g Fu(fann)e Fj(\003)p Fu(\)mallo)r(c\()p
+Fa(sizeof)7 b Fu(\()p Fa(struct)22 b Fu(fann\)\);)462
+2038 y(ann)p Fj(!)p Fu(learning)p 873 2038 V 22 w(rate)g(=)h(learning)p
+1340 2038 V 22 w(rate;)462 2104 y(ann)p Fj(!)p Fu(total)p
+776 2104 V 24 w(neurons)e(=)h(0;)462 2171 y(ann)p Fj(!)p
+Fu(total)p 776 2171 V 24 w(connections)e(=)i(0;)462 2237
+y(ann)p Fj(!)p Fu(n)n(um)p 766 2237 V 23 w(input)f(=)h(0;)462
+2304 y(ann)p Fj(!)p Fu(n)n(um)p 766 2304 V 23 w(output)f(=)i(0;)462
+2370 y(ann)p Fj(!)p Fu(train)p 780 2370 V 23 w(deltas)f(=)g(NULL;)462
+2436 y(ann)p Fj(!)p Fu(n)n(um)p 766 2436 V 23 w(errors)g(=)g(0;)462
+2503 y(ann)p Fj(!)p Fu(error)p 780 2503 V 23 w(v)l(alue)g(=)g(0;)330
+2636 y Fe(#ifdef)g Fu(FIXEDF)-7 b(ANN)462 2702 y Fb(/)p
+Fj(\003)34 b Fb(these)e(values)h(ar)m(e)f(only)i(b)m(oring)f(defaults,)
+h(and)f(should)h(r)m(e)m(al)s(ly)562 2768 y(never)e(b)m(e)g(use)m(d,)h
+(sinc)m(e)g(the)g(r)m(e)m(al)f(values)g(ar)m(e)h(always)h(lo)m(ade)m(d)
+e(fr)m(om)h(a)g(\014le.)g Fj(\003)p Fb(/)462 2835 y Fu(ann)p
+Fj(!)p Fu(decimal)p 862 2835 V 22 w(p)r(oin)n(t)21 b(=)i(8;)462
+2901 y(ann)p Fj(!)p Fu(m)n(ultiplier)d(=)i(256;)330 2968
+y Fe(#endif)462 3101 y Fu(ann)p Fj(!)p Fu(activ)l(ation)p
+926 3101 V 23 w(function)p 1189 3101 V 22 w(hidden)e(=)j(F)-7
+b(ANN)p 1685 3101 V 23 w(SIGMOID;)462 3167 y(ann)p Fj(!)p
+Fu(activ)l(ation)p 926 3167 V 23 w(function)p 1189 3167
+V 22 w(output)21 b(=)i(F)-7 b(ANN)p 1685 3167 V 23 w(SIGMOID;)330
+3233 y Fe(#ifdef)22 b Fu(FIXEDF)-7 b(ANN)462 3300 y(ann)p
+Fj(!)p Fu(activ)l(ation)p 926 3300 V 23 w(hidden)p 1146
+3300 V 22 w(steepness)21 b(=)h(ann)p Fj(!)p Fu(m)n(ultiplier)p
+Fk(=)p Fu(2;)462 3366 y(ann)p Fj(!)p Fu(activ)l(ation)p
+926 3366 V 23 w(output)p 1145 3366 V 23 w(steepness)f(=)h(ann)p
+Fj(!)p Fu(m)n(ultiplier)p Fk(=)p Fu(2;)330 3433 y Fe(#else)462
+3499 y Fu(ann)p Fj(!)p Fu(activ)l(ation)p 926 3499 V
+23 w(hidden)p 1146 3499 V 22 w(steepness)f(=)h(0.5;)462
+3565 y(ann)p Fj(!)p Fu(activ)l(ation)p 926 3565 V 23
+w(output)p 1145 3565 V 23 w(steepness)f(=)h(0.5;)330
+3632 y Fe(#endif)462 3765 y Fb(/)p Fj(\003)34 b Fb(al)s(lo)m(c)m(ate)e
+(r)m(o)m(om)g(for)h(the)g(layers)h Fj(\003)p Fb(/)462
+3831 y Fu(ann)p Fj(!)p Fu(\014rst)p 755 3831 V 24 w(la)n(y)n(er)22
+b(=)g(\()p Fa(struct)h Fu(fann)p 1384 3831 V 23 w(la)n(y)n(er)f
+Fj(\003)p Fu(\)callo)r(c\(n)n(um)p 1947 3831 V 21 w(la)n(y)n(ers,)g
+Fa(sizeof)7 b Fu(\()p Fa(struct)24 b Fu(fann)p 2732 3831
+V 23 w(la)n(y)n(er\)\);)462 3898 y(ann)p Fj(!)p Fu(last)p
+743 3898 V 24 w(la)n(y)n(er)e(=)g(ann)p Fj(!)p Fu(\014rst)p
+1290 3898 V 24 w(la)n(y)n(er)g(+)g(n)n(um)p 1675 3898
+V 23 w(la)n(y)n(ers;)462 4030 y Fa(return)h Fu(ann;)330
+4097 y Fj(g)330 4230 y Fb(/)p Fj(\003)33 b Fb(A)n(l)s(lo)m(c)m(ates)g
+(r)m(o)m(om)f(for)i(the)f(neur)m(ons.)363 4296 y Fj(\003)p
+Fb(/)330 4362 y Fa(v)n(oid)21 b Fu(fann)p 622 4362 V
+23 w(allo)r(cate)p 870 4362 V 23 w(neurons\()p Fa(struct)h
+Fu(fann)f Fj(\003)p Fu(ann\))330 4429 y Fj(f)462 4495
+y Fa(struct)j Fu(fann)p 812 4495 V 22 w(la)n(y)n(er)e
+Fj(\003)p Fu(la)n(y)n(er)p 1168 4495 V 24 w(it;)462 4562
+y Fa(struct)i Fu(fann)p 812 4562 V 22 w(neuron)d Fj(\003)p
+Fu(neurons;)462 4628 y Fa(unsigned)h(in)n(t)g Fu(n)n(um)p
+1018 4628 V 23 w(neurons)p 1267 4628 V 23 w(so)p 1349
+4628 V 24 w(far)g(=)g(0;)462 4695 y Fa(unsigned)g(in)n(t)g
+Fu(n)n(um)p 1018 4695 V 23 w(neurons)f(=)i(0;)462 4827
+y Fb(/)p Fj(\003)34 b Fb(al)s(l)f(the)g(neur)m(ons)g(is)h(al)s(lo)m(c)m
+(ate)m(d)e(in)i(one)f(long)g(arr)m(ay)h Fj(\003)p Fb(/)462
+4894 y Fu(neurons)22 b(=)g(\()p Fa(struct)h Fu(fann)p
+1158 4894 V 23 w(neuron)e Fj(\003)p Fu(\)callo)r(c\(ann)p
+Fj(!)p Fu(total)p 1964 4894 V 22 w(neurons,)g Fa(sizeof)7
+b Fu(\()p Fa(struct)23 b Fu(fann)p 2809 4894 V 23 w(neuron\)\);)462
+5027 y Fb(/)p Fj(\003)34 b Fb(cle)m(ar)e(data,)h(primarily)h(to)g(make)
+e(the)h(input)g(neur)m(ons)h(cle)m(ar)m(e)m(d)d Fj(\003)p
+Fb(/)462 5093 y Fu(memset\(neurons,)20 b(0,)i(ann)p Fj(!)p
+Fu(total)p 1363 5093 V 23 w(neurons)g Fj(\003)g Fa(sizeof)7
+b Fu(\()p Fa(struct)24 b Fu(fann)p 2248 5093 V 22 w(neuron\)\);)462
+5226 y Fa(for)p Fu(\(la)n(y)n(er)p 723 5226 V 24 w(it)e(=)g(ann)p
+Fj(!)p Fu(\014rst)p 1176 5226 V 23 w(la)n(y)n(er;)g(la)n(y)n(er)p
+1518 5226 V 24 w(it)g Fj(6)p Fu(=)g(ann)p Fj(!)p Fu(last)p
+1959 5226 V 24 w(la)n(y)n(er;)f(la)n(y)n(er)p 2301 5226
+V 24 w(it++\))p Fj(f)595 5292 y Fu(n)n(um)p 726 5292
+V 23 w(neurons)g(=)h(la)n(y)n(er)p 1208 5292 V 24 w(it)p
+Fj(!)p Fu(last)p 1447 5292 V 24 w(neuron)f(-)h(la)n(y)n(er)p
+1875 5292 V 24 w(it)p Fj(!)p Fu(\014rst)p 2126 5292 V
+23 w(neuron;)595 5359 y(la)n(y)n(er)p 738 5359 V 23 w(it)p
+Fj(!)p Fu(\014rst)p 988 5359 V 24 w(neuron)f(=)h(neurons+n)n(um)p
+1710 5359 V 22 w(neurons)p 1958 5359 V 22 w(so)p 2039
+5359 V 25 w(far;)595 5425 y(la)n(y)n(er)p 738 5425 V
+23 w(it)p Fj(!)p Fu(last)p 976 5425 V 24 w(neuron)f(=)h(la)n(y)n(er)p
+1433 5425 V 24 w(it)p Fj(!)p Fu(\014rst)p 1684 5425 V
+23 w(neuron+n)n(um)p 2085 5425 V 22 w(neurons;)595 5492
+y(n)n(um)p 726 5492 V 23 w(neurons)p 975 5492 V 22 w(so)p
+1056 5492 V 25 w(far)g(+=)g(n)n(um)p 1434 5492 V 23 w(neurons;)462
+5558 y Fj(g)p Black 1788 5919 a Fy(69)p Black eop end
+%%Page: 70 74
+TeXDict begin 70 73 bop Black 330 70 a Fp(B.1)82 b(The)28
+b(library)1617 b(B)83 b(SOUR)n(CE)27 b(CODE)p 330 103
+3000 4 v Black 462 390 a Fu(ann)p Fj(!)p Fu(output)21
+b(=)i(\(fann)p 1084 390 20 4 v 22 w(t)n(yp)r(e)f Fj(\003)p
+Fu(\)callo)r(c\(n)n(um)p 1635 390 V 21 w(neurons,)f Fa(sizeof)7
+b Fu(\(fann)p 2262 390 V 24 w(t)n(yp)r(e\)\);)330 457
+y Fj(g)330 589 y Fb(/)p Fj(\003)33 b Fb(A)n(l)s(lo)m(c)m(ate)g(r)m(o)m
+(om)f(for)i(the)e(c)m(onne)m(ctions.)363 656 y Fj(\003)p
+Fb(/)330 722 y Fa(v)n(oid)21 b Fu(fann)p 622 722 V 23
+w(allo)r(cate)p 870 722 V 23 w(connections\()p Fa(struct)g
+Fu(fann)g Fj(\003)p Fu(ann\))330 789 y Fj(f)462 855 y
+Fa(struct)j Fu(fann)p 812 855 V 22 w(la)n(y)n(er)e Fj(\003)p
+Fu(la)n(y)n(er)p 1168 855 V 24 w(it,)g Fj(\003)p Fu(last)p
+1416 855 V 24 w(la)n(y)n(er;)462 922 y Fa(struct)i Fu(fann)p
+812 922 V 22 w(neuron)d Fj(\003)p Fu(neuron)p 1289 922
+V 23 w(it,)h Fj(\003)p Fu(last)p 1536 922 V 24 w(neuron;)462
+988 y(fann)p 594 988 V 23 w(t)n(yp)r(e)g Fj(\003)p Fu(w)n(eigh)n(ts;)
+462 1054 y Fa(struct)i Fu(fann)p 812 1054 V 22 w(neuron)d
+Fj(\003\003)p Fu(connected)p 1413 1054 V 21 w(neurons)h(=)g(NULL;)462
+1121 y Fa(unsigned)g(in)n(t)g Fu(connections)p 1229 1121
+V 22 w(so)p 1310 1121 V 24 w(far)g(=)g(0;)462 1254 y(w)n(eigh)n(ts)h(=)
+f(\(fann)p 930 1254 V 23 w(t)n(yp)r(e)f Fj(\003)p Fu(\)callo)r(c\(ann)p
+Fj(!)p Fu(total)p 1664 1254 V 22 w(connections,)f Fa(sizeof)7
+b Fu(\(fann)p 2403 1254 V 24 w(t)n(yp)r(e\)\);)462 1386
+y Fb(/)p Fj(\003)34 b Fb(TODO)f(make)f(sp)m(e)m(cial)g(c)m(ases)h(for)g
+(al)s(l)h(plac)m(es)e(wher)m(e)g(the)h(c)m(onne)m(ctions)562
+1453 y(is)g(use)m(d,)g(so)h(that)f(it)h(is)f(not)h(ne)m(e)m(de)m(d)d
+(for)j(ful)s(ly)g(c)m(onne)m(cte)m(d)e(networks.)462
+1519 y Fj(\003)p Fb(/)462 1586 y Fu(connected)p 756 1586
+V 21 w(neurons)22 b(=)g(\()p Fa(struct)h Fu(fann)p 1469
+1586 V 23 w(neuron)e Fj(\003\003)p Fu(\))h(callo)r(c\(ann)p
+Fj(!)p Fu(total)p 2331 1586 V 22 w(connections,)e Fa(sizeof)7
+b Fu(\()p Fa(struct)330 1652 y Fu(fann)p 462 1652 V 23
+w(neuron)p Fj(\003)p Fu(\)\);)462 1785 y(last)p 570 1785
+V 24 w(la)n(y)n(er)22 b(=)h(ann)p Fj(!)p Fu(last)p 1106
+1785 V 23 w(la)n(y)n(er;)462 1851 y Fa(for)p Fu(\(la)n(y)n(er)p
+723 1851 V 24 w(it)f(=)g(ann)p Fj(!)p Fu(\014rst)p 1176
+1851 V 23 w(la)n(y)n(er+1;)g(la)n(y)n(er)p 1602 1851
+V 24 w(it)g Fj(6)p Fu(=)g(ann)p Fj(!)p Fu(last)p 2043
+1851 V 24 w(la)n(y)n(er;)g(la)n(y)n(er)p 2386 1851 V
+23 w(it++\))p Fj(f)595 1918 y Fu(last)p 703 1918 V 24
+w(neuron)f(=)h(la)n(y)n(er)p 1160 1918 V 23 w(it)p Fj(!)p
+Fu(last)p 1398 1918 V 24 w(neuron-1;)595 1984 y Fa(for)p
+Fu(\(neuron)p 917 1984 V 22 w(it)g(=)g(la)n(y)n(er)p
+1218 1984 V 24 w(it)p Fj(!)p Fu(\014rst)p 1469 1984 V
+23 w(neuron;)f(neuron)p 1932 1984 V 23 w(it)h Fj(6)p
+Fu(=)g(last)p 2199 1984 V 24 w(neuron;)f(neuron)p 2663
+1984 V 22 w(it++\))p Fj(f)727 2051 y Fu(neuron)p 931
+2051 V 23 w(it)p Fj(!)p Fu(w)n(eigh)n(ts)h(=)g(w)n(eigh)n
+(ts+connections)p 1977 2051 V 22 w(so)p 2058 2051 V 24
+w(far;)727 2117 y(neuron)p 931 2117 V 23 w(it)p Fj(!)p
+Fu(connected)p 1355 2117 V 20 w(neurons)g(=)g(connected)p
+1986 2117 V 21 w(neurons+connections)p 2622 2117 V 20
+w(so)p 2701 2117 V 25 w(far;)727 2183 y(connections)p
+1069 2183 V 22 w(so)p 1150 2183 V 24 w(far)g(+=)g(neuron)p
+1600 2183 V 23 w(it)p Fj(!)p Fu(n)n(um)p 1861 2183 V
+22 w(connections;)595 2250 y Fj(g)462 2316 y(g)462 2449
+y Fa(if)7 b Fu(\(connections)p 881 2449 V 22 w(so)p 962
+2449 V 24 w(far)22 b Fj(6)p Fu(=)h(ann)p Fj(!)p Fu(total)p
+1472 2449 V 23 w(connections\))p Fj(f)595 2516 y Fu(prin)n(tf\()p
+Fe("ERROR)29 b(connections)p 1345 2516 19 4 v 20 w(so)p
+1427 2516 V 22 w(far)p Fu(=)p Fe(\045d,)i(total)p 1872
+2516 V 21 w(connections)p Fu(=)p Fe(\045d)p Fj(n)p Fe(n")p
+Fu(,)20 b(connections)p 2820 2516 20 4 v 22 w(so)p 2901
+2516 V 24 w(far,)330 2582 y(ann)p Fj(!)p Fu(total)p 644
+2582 V 23 w(connections\);)595 2648 y(exit\(0\);)462
+2715 y Fj(g)330 2781 y(g)330 2914 y Fb(/)p Fj(\003)33
+b Fb(Use)m(d)g(to)g(save)g(the)g(network)g(to)h(a)f(\014le.)363
+2980 y Fj(\003)p Fb(/)330 3047 y Fa(in)n(t)23 b Fu(fann)p
+575 3047 V 22 w(sa)n(v)n(e)p 717 3047 V 24 w(in)n(ternal\()p
+Fa(struct)f Fu(fann)g Fj(\003)p Fu(ann,)f Fa(const)h(c)n(har)h
+Fj(\003)p Fu(con\014guration)p 2313 3047 V 22 w(\014le,)e
+Fa(unsigned)g(in)n(t)h Fu(sa)n(v)n(e)p 3006 3047 V 25
+w(as)p 3090 3047 V 24 w(\014xed\))330 3113 y Fj(f)462
+3180 y Fa(struct)i Fu(fann)p 812 3180 V 22 w(la)n(y)n(er)e
+Fj(\003)p Fu(la)n(y)n(er)p 1168 3180 V 24 w(it;)462 3246
+y Fa(in)n(t)h Fu(calculated)p 873 3246 V 21 w(decimal)p
+1117 3246 V 22 w(p)r(oin)n(t)f(=)g(0;)462 3313 y Fa(struct)i
+Fu(fann)p 812 3313 V 22 w(neuron)d Fj(\003)p Fu(neuron)p
+1289 3313 V 23 w(it,)h Fj(\003)p Fu(\014rst)p 1548 3313
+V 23 w(neuron;)462 3379 y(fann)p 594 3379 V 23 w(t)n(yp)r(e)g
+Fj(\003)p Fu(w)n(eigh)n(ts;)462 3445 y Fa(struct)i Fu(fann)p
+812 3445 V 22 w(neuron)d Fj(\003\003)p Fu(connected)p
+1413 3445 V 21 w(neurons;)462 3512 y Fa(unsigned)h(in)n(t)g
+Fu(i)g(=)h(0;)330 3578 y Fe(#ifndef)e Fu(FIXEDF)-7 b(ANN)462
+3645 y Fb(/)p Fj(\003)34 b Fb(variab)m(els)e(for)i(use)e(when)i(saving)
+f(\015o)m(ats)h(as)f(\014xe)m(d)f(p)m(oint)i(variab)m(els)f
+Fj(\003)p Fb(/)462 3711 y Fa(unsigned)22 b(in)n(t)g Fu(decimal)p
+1114 3711 V 22 w(p)r(oin)n(t)f(=)i(0;)462 3778 y Fa(unsigned)f(in)n(t)g
+Fu(\014xed)p 1031 3778 V 23 w(m)n(ultiplier)e(=)i(0;)462
+3844 y(fann)p 594 3844 V 23 w(t)n(yp)r(e)g(max)p 890
+3844 V 23 w(p)r(ossible)p 1142 3844 V 23 w(v)l(alue)f(=)i(0;)462
+3910 y Fa(unsigned)f(in)n(t)g Fu(bits)p 999 3910 V 24
+w(used)p 1153 3910 V 23 w(for)p 1256 3910 V 23 w(max)g(=)g(0;)462
+3977 y(fann)p 594 3977 V 23 w(t)n(yp)r(e)g(curren)n(t)p
+977 3977 V 22 w(max)p 1122 3977 V 23 w(v)l(alue)g(=)g(0;)330
+4043 y Fe(#endif)462 4176 y Fu(FILE)g Fj(\003)p Fu(conf)f(=)i(fop)r
+(en\(con\014guration)p 1459 4176 V 20 w(\014le,)e Fe("w)p
+Fu(+)p Fe(")p Fu(\);)462 4242 y Fa(if)7 b Fu(\(!conf)e(\))p
+Fj(f)595 4309 y Fu(prin)n(tf\()p Fe("Unable)29 b(to)h(open)g
+(configuration)g(file)g Fj(n)p Fe("\045s)p Fj(n)p Fe(")h(for)f
+(writing.)p Fj(n)p Fe(n")p Fu(,)21 b(con\014guration)p
+2980 4309 V 22 w(\014le\);)595 4375 y Fa(return)i Fu(-1;)462
+4442 y Fj(g)330 4575 y Fe(#ifndef)e Fu(FIXEDF)-7 b(ANN)462
+4641 y Fa(if)7 b Fu(\(sa)n(v)n(e)p 663 4641 V 25 w(as)p
+747 4641 V 24 w(\014xed\))p Fj(f)595 4707 y Fb(/)p Fj(\003)33
+b Fb(save)g(the)f(version)i(information)h Fj(\003)p Fb(/)595
+4774 y Fu(fprin)n(tf\(conf,)19 b(F)-7 b(ANN)p 1152 4774
+V 24 w(FIX)p 1292 4774 V 23 w(VERSION)p Fe(")p Fj(n)p
+Fe(n")p Fu(\);)462 4840 y Fj(g)p Fa(else)p Fj(f)595 4907
+y Fb(/)p Fj(\003)33 b Fb(save)g(the)f(version)i(information)h
+Fj(\003)p Fb(/)595 4973 y Fu(fprin)n(tf\(conf,)19 b(F)-7
+b(ANN)p 1152 4973 V 24 w(FLO)p 1311 4973 V 23 w(VERSION)p
+Fe(")p Fj(n)p Fe(n")p Fu(\);)462 5039 y Fj(g)330 5106
+y Fe(#else)462 5172 y Fb(/)p Fj(\003)34 b Fb(save)e(the)h(version)h
+(information)h Fj(\003)p Fb(/)462 5239 y Fu(fprin)n(tf\(conf,)20
+b(F)-7 b(ANN)p 1020 5239 V 23 w(FIX)p 1159 5239 V 24
+w(VERSION)p Fe(")p Fj(n)p Fe(n")p Fu(\);)330 5305 y Fe(#endif)330
+5438 y(#ifndef)21 b Fu(FIXEDF)-7 b(ANN)462 5504 y Fa(if)7
+b Fu(\(sa)n(v)n(e)p 663 5504 V 25 w(as)p 747 5504 V 24
+w(\014xed\))p Fj(f)595 5571 y Fb(/)p Fj(\003)33 b Fb(c)m(alculate)e
+(the)i(maximal)g(p)m(ossible)g(shift)h(value)e Fj(\003)p
+Fb(/)p Black 1788 5919 a Fy(70)p Black eop end
+%%Page: 71 75
+TeXDict begin 71 74 bop Black 330 70 a Fp(B.1)82 b(The)28
+b(library)1617 b(B)83 b(SOUR)n(CE)27 b(CODE)p 330 103
+3000 4 v Black 595 390 a Fa(for)p Fu(\(la)n(y)n(er)p
+856 390 20 4 v 23 w(it)22 b(=)g(ann)p Fj(!)p Fu(\014rst)p
+1308 390 V 24 w(la)n(y)n(er+1;)g(la)n(y)n(er)p 1735 390
+V 23 w(it)g Fj(6)p Fu(=)h(ann)p Fj(!)p Fu(last)p 2176
+390 V 23 w(la)n(y)n(er;)f(la)n(y)n(er)p 2518 390 V 23
+w(it++\))p Fj(f)727 457 y Fa(for)p Fu(\(neuron)p 1049
+457 V 22 w(it)g(=)h(la)n(y)n(er)p 1351 457 V 23 w(it)p
+Fj(!)p Fu(\014rst)p 1601 457 V 24 w(neuron;)d(neuron)p
+2064 457 V 23 w(it)i Fj(6)p Fu(=)g(la)n(y)n(er)p 2366
+457 V 24 w(it)p Fj(!)p Fu(last)p 2605 457 V 24 w(neuron;)e(neuron)p
+3068 457 V 23 w(it++\))p Fj(f)859 523 y Fb(/)p Fj(\003)34
+b Fb(lo)m(ok)e(at)h(al)s(l)h(c)m(onne)m(ctions)f(to)h(e)m(ach)e(neur)m
+(ons,)h(and)h(se)m(e)e(how)i(high)f(a)g(value)f(we)h(c)m(an)g(get)g
+Fj(\003)p Fb(/)859 589 y Fu(curren)n(t)p 1073 589 V 23
+w(max)p 1219 589 V 23 w(v)l(alue)22 b(=)g(0;)859 656
+y Fa(for)p Fu(\(i)g(=)h(0;)f(i)g Fj(6)p Fu(=)h(neuron)p
+1485 656 V 22 w(it)p Fj(!)p Fu(n)n(um)p 1745 656 V 23
+w(connections;)d(i++\))p Fj(f)992 722 y Fu(curren)n(t)p
+1206 722 V 22 w(max)p 1351 722 V 23 w(v)l(alue)i(+=)h(fann)p
+1799 722 V 22 w(abs\(neuron)p 2143 722 V 23 w(it)p Fj(!)p
+Fu(w)n(eigh)n(ts[i]\);)859 789 y Fj(g)859 922 y Fa(if)7
+b Fu(\(curren)n(t)p 1150 922 V 23 w(max)p 1296 922 V
+23 w(v)l(alue)22 b Fk(>)g Fu(max)p 1688 922 V 24 w(p)r(ossible)p
+1941 922 V 22 w(v)l(alue\))p Fj(f)992 988 y Fu(max)p
+1119 988 V 23 w(p)r(ossible)p 1371 988 V 23 w(v)l(alue)g(=)g(curren)n
+(t)p 1849 988 V 22 w(max)p 1994 988 V 24 w(v)l(alue;)859
+1054 y Fj(g)727 1121 y(g)595 1187 y(g)595 1320 y Fa(for)p
+Fu(\(bits)p 825 1320 V 23 w(used)p 978 1320 V 23 w(for)p
+1081 1320 V 24 w(max)f(=)i(0;)f(max)p 1520 1320 V 23
+w(p)r(ossible)p 1772 1320 V 23 w(v)l(alue)g Fj(\025)g
+Fu(1;)g(bits)p 2223 1320 V 24 w(used)p 2377 1320 V 23
+w(for)p 2480 1320 V 23 w(max++\))p Fj(f)727 1386 y Fu(max)p
+854 1386 V 23 w(p)r(ossible)p 1106 1386 V 23 w(v)l(alue)g(/=)g(2.0;)595
+1453 y Fj(g)595 1586 y Fb(/)p Fj(\003)33 b Fb(The)f(maximum)g(numb)m
+(er)g(of)h(bits)h(we)f(shift)h(the)f(\014x)g(p)m(oint,)h(is)g(the)f
+(numb)m(er)694 1652 y(of)h(bits)f(in)h(a)f(inte)m(ger,)g(minus)h(one)f
+(for)h(the)e(sign,)j(one)e(for)h(the)f(minus)694 1719
+y(in)h(stepwise)g(sigmoid,)f(and)h(minus)g(the)f(bits)g(use)m(d)f(for)i
+(the)f(maximum.)694 1785 y(This)h(is)f(devide)m(d)f(by)h(two,)h(to)g
+(al)s(low)g(multiplic)m(ation)f(of)h(two)f(\014xe)m(d)694
+1851 y(p)m(oint)h(numb)m(ers.)595 1918 y Fj(\003)p Fb(/)595
+1984 y Fu(calculated)p 893 1984 V 21 w(decimal)p 1137
+1984 V 22 w(p)r(oin)n(t)21 b(=)i(\()p Fa(sizeof)7 b Fu(\()p
+Fa(in)n(t)p Fu(\))p Fj(\003)p Fu(8-2-bits)p 2012 1984
+V 25 w(used)p 2167 1984 V 23 w(for)p 2270 1984 V 23 w(max\))p
+Fk(=)p Fu(2;)595 2117 y Fa(if)g Fu(\(calculated)p 970
+2117 V 21 w(decimal)p 1214 2117 V 22 w(p)r(oin)n(t)22
+b Fk(<)g Fu(0\))p Fj(f)727 2183 y Fu(decimal)p 954 2183
+V 22 w(p)r(oin)n(t)f(=)i(0;)595 2250 y Fj(g)p Fa(else)p
+Fj(f)727 2316 y Fu(decimal)p 954 2316 V 22 w(p)r(oin)n(t)e(=)i
+(calculated)p 1517 2316 V 21 w(decimal)p 1761 2316 V
+22 w(p)r(oin)n(t;)595 2383 y Fj(g)595 2516 y Fu(\014xed)p
+739 2516 V 22 w(m)n(ultiplier)d(=)j(1)f Fj(\034)h Fu(decimal)p
+1507 2516 V 21 w(p)r(oin)n(t;)330 2648 y Fe(#ifdef)f
+Fu(DEBUG)595 2715 y(prin)n(tf\()p Fe("calculated)p 1130
+2715 19 4 v 19 w(decimal)p 1366 2715 V 22 w(point)p Fu(=)p
+Fe(\045d,)30 b(decimal)p 1934 2715 V 21 w(point)p Fu(=)p
+Fe(\045u,)g(bits)p 2408 2715 V 21 w(used)p 2553 2715
+V 22 w(for)p 2668 2715 V 22 w(max)p Fu(=)p Fe(\045u)p
+Fj(n)p Fe(n")p Fu(,)330 2781 y(calculated)p 628 2781
+20 4 v 21 w(decimal)p 872 2781 V 22 w(p)r(oin)n(t,)22
+b(decimal)p 1310 2781 V 21 w(p)r(oin)n(t,)g(bits)p 1632
+2781 V 23 w(used)p 1785 2781 V 23 w(for)p 1888 2781 V
+24 w(max\);)330 2848 y Fe(#endif)595 2980 y Fb(/)p Fj(\003)33
+b Fb(save)g(the)f(de)m(cimal)p 1209 2980 22 4 v 25 w(p)m(oint)h(on)h(a)
+f(sep)m(er)m(ate)f(line)h Fj(\003)p Fb(/)595 3047 y Fu(fprin)n
+(tf\(conf,)19 b Fe("\045u)p Fj(n)p Fe(n")p Fu(,)j(decimal)p
+1422 3047 20 4 v 21 w(p)r(oin)n(t\);)595 3180 y Fb(/)p
+Fj(\003)33 b Fb(save)g(the)f(numb)m(er)g(layers)i("num)p
+1611 3180 22 4 v 25 w(layers)f(le)m(arning)p 2084 3180
+V 26 w(r)m(ate)f(c)m(onne)m(ction)p 2576 3180 V 26 w(r)m(ate)g(activa-)
+330 3246 y(tion)p 451 3246 V 26 w(function)p 722 3246
+V 27 w(hidden)i(activation)p 1274 3246 V 26 w(function)p
+1545 3246 V 26 w(output)f(activation)p 2089 3246 V 26
+w(hidden)p 2311 3246 V 26 w(ste)m(epness)g(activa-)330
+3313 y(tion)p 451 3313 V 26 w(output)p 667 3313 V 25
+w(ste)m(epness")g Fj(\003)p Fb(/)595 3445 y Fu(fprin)n(tf\(conf,)19
+b Fe("\045u)31 b(\045f)f(\045f)h(\045u)f(\045u)h(\045d)g(\045d)p
+Fj(n)p Fe(n")p Fu(,)21 b(ann)p Fj(!)p Fu(last)p 2031
+3445 20 4 v 24 w(la)n(y)n(er)h(-)h(ann)p Fj(!)p Fu(\014rst)p
+2550 3445 V 23 w(la)n(y)n(er,)f(ann)p Fj(!)p Fu(learning)p
+3160 3445 V 22 w(rate,)330 3512 y(ann)p Fj(!)p Fu(connection)p
+819 3512 V 21 w(rate,)g(ann)p Fj(!)p Fu(activ)l(ation)p
+1456 3512 V 22 w(function)p 1718 3512 V 22 w(hidden,)e(ann)p
+Fj(!)p Fu(activ)l(ation)p 2436 3512 V 23 w(function)p
+2699 3512 V 22 w(output,)330 3578 y(\()p Fa(in)n(t)p
+Fu(\)\(ann)p Fj(!)p Fu(activ)l(ation)p 962 3578 V 23
+w(hidden)p 1182 3578 V 21 w(steepness)i Fj(\003)g Fu(\014xed)p
+1689 3578 V 22 w(m)n(ultiplier\),)e(\()p Fa(in)n(t)p
+Fu(\)\(ann)p Fj(!)p Fu(activ)l(ation)p 2689 3578 V 23
+w(output)p 2908 3578 V 23 w(steepness)h Fj(\003)330 3645
+y Fu(\014xed)p 474 3645 V 22 w(m)n(ultiplier\)\);)462
+3711 y Fj(g)p Fa(else)p Fj(f)595 3778 y Fb(/)p Fj(\003)33
+b Fb(save)g(the)f(numb)m(er)g(layers)i("num)p 1611 3778
+22 4 v 25 w(layers)f(le)m(arning)p 2084 3778 V 26 w(r)m(ate)f(c)m(onne)
+m(ction)p 2576 3778 V 26 w(r)m(ate)g(activa-)330 3844
+y(tion)p 451 3844 V 26 w(function)p 722 3844 V 27 w(hidden)i
+(activation)p 1274 3844 V 26 w(function)p 1545 3844 V
+26 w(output)f(activation)p 2089 3844 V 26 w(hidden)p
+2311 3844 V 26 w(ste)m(epness)g(activa-)330 3910 y(tion)p
+451 3910 V 26 w(output)p 667 3910 V 25 w(ste)m(epness")g
+Fj(\003)p Fb(/)595 4043 y Fu(fprin)n(tf\(conf,)19 b Fe("\045u)31
+b(\045f)f(\045f)h(\045u)f(\045u)h(")p Fu(F)-7 b(ANNPRINTF)p
+Fe(")30 b(")p Fu(F)-7 b(ANNPRINTF)p Fe(")p Fj(n)p Fe(n")p
+Fu(,)22 b(ann)p Fj(!)p Fu(last)p 2909 4043 20 4 v 23
+w(la)n(y)n(er)h(-)330 4110 y(ann)p Fj(!)p Fu(\014rst)p
+623 4110 V 23 w(la)n(y)n(er,)f(ann)p Fj(!)p Fu(learning)p
+1233 4110 V 22 w(rate,)g(ann)p Fj(!)p Fu(connection)p
+1896 4110 V 21 w(rate,)f(ann)p Fj(!)p Fu(activ)l(ation)p
+2532 4110 V 23 w(function)p 2795 4110 V 22 w(hidden,)330
+4176 y(ann)p Fj(!)p Fu(activ)l(ation)p 794 4176 V 23
+w(function)p 1057 4176 V 21 w(output,)f(ann)p Fj(!)p
+Fu(activ)l(ation)p 1773 4176 V 23 w(hidden)p 1993 4176
+V 22 w(steepness,)f(ann)p Fj(!)p Fu(activ)l(ation)p 2781
+4176 V 23 w(output)p 3000 4176 V 23 w(steepness\);)462
+4242 y Fj(g)330 4309 y Fe(#else)462 4375 y Fb(/)p Fj(\003)34
+b Fb(save)e(the)h(de)m(cimal)p 1077 4375 22 4 v 24 w(p)m(oint)h(on)g(a)
+f(sep)m(er)m(ate)e(line)j Fj(\003)p Fb(/)462 4442 y Fu(fprin)n
+(tf\(conf,)20 b Fe("\045u)p Fj(n)p Fe(n")p Fu(,)h(ann)p
+Fj(!)p Fu(decimal)p 1462 4442 20 4 v 22 w(p)r(oin)n(t\);)462
+4575 y Fb(/)p Fj(\003)34 b Fb(save)e(the)h(numb)m(er)f(layers)h("num)p
+1478 4575 22 4 v 25 w(layers)h(le)m(arning)p 1952 4575
+V 25 w(r)m(ate)f(c)m(onne)m(ction)p 2444 4575 V 25 w(r)m(ate)g(activa-)
+330 4641 y(tion)p 451 4641 V 26 w(function)p 722 4641
+V 27 w(hidden)h(activation)p 1274 4641 V 26 w(function)p
+1545 4641 V 26 w(output)f(activation)p 2089 4641 V 26
+w(hidden)p 2311 4641 V 26 w(ste)m(epness)g(activa-)330
+4707 y(tion)p 451 4707 V 26 w(output)p 667 4707 V 25
+w(ste)m(epness")g Fj(\003)p Fb(/)462 4840 y Fu(fprin)n(tf\(conf,)20
+b Fe("\045u)30 b(\045f)h(\045f)f(\045u)h(\045u)g(")p
+Fu(F)-7 b(ANNPRINTF)p Fe(")30 b(")p Fu(F)-7 b(ANNPRINTF)p
+Fe(")p Fj(n)p Fe(n")p Fu(,)22 b(ann)p Fj(!)p Fu(last)p
+2777 4840 20 4 v 23 w(la)n(y)n(er)g(-)330 4907 y(ann)p
+Fj(!)p Fu(\014rst)p 623 4907 V 23 w(la)n(y)n(er,)g(ann)p
+Fj(!)p Fu(learning)p 1233 4907 V 22 w(rate,)g(ann)p Fj(!)p
+Fu(connection)p 1896 4907 V 21 w(rate,)f(ann)p Fj(!)p
+Fu(activ)l(ation)p 2532 4907 V 23 w(function)p 2795 4907
+V 22 w(hidden,)330 4973 y(ann)p Fj(!)p Fu(activ)l(ation)p
+794 4973 V 23 w(function)p 1057 4973 V 21 w(output,)h(ann)p
+Fj(!)p Fu(activ)l(ation)p 1775 4973 V 22 w(hidden)p 1994
+4973 V 22 w(steepness,)330 5039 y(ann)p Fj(!)p Fu(activ)l(ation)p
+794 5039 V 23 w(output)p 1013 5039 V 23 w(steepness\);)330
+5106 y Fe(#endif)462 5239 y Fa(for)p Fu(\(la)n(y)n(er)p
+723 5239 V 24 w(it)g(=)g(ann)p Fj(!)p Fu(\014rst)p 1176
+5239 V 23 w(la)n(y)n(er;)g(la)n(y)n(er)p 1518 5239 V
+24 w(it)g Fj(6)p Fu(=)g(ann)p Fj(!)p Fu(last)p 1959 5239
+V 24 w(la)n(y)n(er;)f(la)n(y)n(er)p 2301 5239 V 24 w(it++\))p
+Fj(f)595 5305 y Fb(/)p Fj(\003)33 b Fb(the)g(numb)m(er)f(of)h(neur)m
+(ons)h(in)g(the)e(layers)i(\(in)g(the)f(last)g(layer,)h(ther)m(e)e(is)i
+(always)g(one)f(to)m(o)g(many)h(neur)m(ons,)f(b)m(e)m(c)m(ause)e(of)i
+(an)h(unuse)m(d)f(bias\))g Fj(\003)p Fb(/)595 5372 y
+Fu(fprin)n(tf\(conf,)19 b Fe("\045u)31 b(")p Fu(,)22
+b(la)n(y)n(er)p 1304 5372 V 23 w(it)p Fj(!)p Fu(last)p
+1542 5372 V 24 w(neuron)f(-)i(la)n(y)n(er)p 1971 5372
+V 23 w(it)p Fj(!)p Fu(\014rst)p 2221 5372 V 24 w(neuron\);)462
+5438 y Fj(g)462 5504 y Fu(fprin)n(tf\(conf,)d Fe(")p
+Fj(n)p Fe(n")p Fu(\);)p Black 1788 5919 a Fy(71)p Black
+eop end
+%%Page: 72 76
+TeXDict begin 72 75 bop Black 330 70 a Fp(B.1)82 b(The)28
+b(library)1617 b(B)83 b(SOUR)n(CE)27 b(CODE)p 330 103
+3000 4 v Black 462 390 a Fa(for)p Fu(\(la)n(y)n(er)p
+723 390 20 4 v 24 w(it)22 b(=)g(ann)p Fj(!)p Fu(\014rst)p
+1176 390 V 23 w(la)n(y)n(er;)g(la)n(y)n(er)p 1518 390
+V 24 w(it)g Fj(6)p Fu(=)g(ann)p Fj(!)p Fu(last)p 1959
+390 V 24 w(la)n(y)n(er;)f(la)n(y)n(er)p 2301 390 V 24
+w(it++\))p Fj(f)595 457 y Fb(/)p Fj(\003)33 b Fb(the)g(numb)m(er)f(of)h
+(c)m(onne)m(ctions)h(to)f(e)m(ach)f(neur)m(on)h Fj(\003)p
+Fb(/)595 523 y Fa(for)p Fu(\(neuron)p 917 523 V 22 w(it)22
+b(=)g(la)n(y)n(er)p 1218 523 V 24 w(it)p Fj(!)p Fu(\014rst)p
+1469 523 V 23 w(neuron;)f(neuron)p 1932 523 V 23 w(it)h
+Fj(6)p Fu(=)g(la)n(y)n(er)p 2234 523 V 23 w(it)p Fj(!)p
+Fu(last)p 2472 523 V 24 w(neuron;)f(neuron)p 2936 523
+V 22 w(it++\))p Fj(f)727 589 y Fu(fprin)n(tf\(conf,)e
+Fe("\045u)31 b(")p Fu(,)22 b(neuron)p 1497 589 V 22 w(it)p
+Fj(!)p Fu(n)n(um)p 1757 589 V 23 w(connections\);)595
+656 y Fj(g)595 722 y Fu(fprin)n(tf\(conf,)d Fe(")p Fj(n)p
+Fe(n")p Fu(\);)462 789 y Fj(g)462 922 y Fu(connected)p
+756 922 V 21 w(neurons)j(=)g(\(ann)p Fj(!)p Fu(\014rst)p
+1413 922 V 23 w(la)n(y)n(er+1\))p Fj(!)p Fu(\014rst)p
+1867 922 V 24 w(neuron)p Fj(!)p Fu(connected)p 2447 922
+V 19 w(neurons;)462 988 y(w)n(eigh)n(ts)h(=)f(\(ann)p
+Fj(!)p Fu(\014rst)p 1091 988 V 23 w(la)n(y)n(er+1\))p
+Fj(!)p Fu(\014rst)p 1545 988 V 24 w(neuron)p Fj(!)p Fu(w)n(eigh)n(ts;)
+462 1054 y(\014rst)p 582 1054 V 24 w(neuron)f(=)h(ann)p
+Fj(!)p Fu(\014rst)p 1189 1054 V 23 w(la)n(y)n(er)p Fj(!)p
+Fu(\014rst)p 1533 1054 V 24 w(neuron;)462 1187 y Fb(/)p
+Fj(\003)34 b Fb(Now)f(save)g(al)s(l)g(the)g(c)m(onne)m(ctions.)562
+1254 y(We)g(only)h(ne)m(e)m(d)e(to)h(save)g(the)g(sour)m(c)m(e)e(and)j
+(the)f(weight,)562 1320 y(sinc)m(e)g(the)g(destination)i(is)e(given)g
+(by)g(the)g(or)m(der.)562 1453 y(The)f(weight)h(is)h(not)g(save)m(d)e
+(binary)i(due)f(to)g(di\013er)m(enc)m(es)562 1519 y(in)h(binary)g
+(de\014nition)h(of)e(\015o)m(ating)h(p)m(oint)g(numb)m(ers.)562
+1586 y(Esp)m(e)m(cial)s(ly)f(an)g(iP)-5 b(A)n(Q)35 b(do)m(es)d(not)i
+(use)f(the)g(same)f(binary)562 1652 y(r)m(epr)m(esentation)h(as)g(an)h
+(i386)g(machine.)495 1719 y Fj(\003)p Fb(/)462 1785 y
+Fa(for)p Fu(\(i)22 b(=)h(0;)f(i)g Fk(<)g Fu(ann)p Fj(!)p
+Fu(total)p 1198 1785 V 24 w(connections;)e(i++\))p Fj(f)330
+1851 y Fe(#ifndef)h Fu(FIXEDF)-7 b(ANN)595 1918 y Fa(if)7
+b Fu(\(sa)n(v)n(e)p 796 1918 V 24 w(as)p 879 1918 V 24
+w(\014xed\))p Fj(f)727 1984 y Fb(/)p Fj(\003)33 b Fb(save)g(the)g(c)m
+(onne)m(ction)g("\(sour)m(c)m(e)f(weight\))h(")p Fj(\003)p
+Fb(/)727 2051 y Fu(fprin)n(tf\(conf,)19 b Fe("\(\045u)31
+b(\045d\))f(")p Fu(,)859 2117 y(connected)p 1153 2117
+V 21 w(neurons[i])21 b(-)i(\014rst)p 1639 2117 V 23 w(neuron,)859
+2183 y(\()p Fa(in)n(t)p Fu(\)\015o)r(or\(\(w)n(eigh)n(ts[i])p
+Fj(\003)p Fu(\014xed)p 1634 2183 V 22 w(m)n(ultiplier\))d(+)i(0.5\)\);)
+595 2250 y Fj(g)p Fa(else)p Fj(f)727 2316 y Fb(/)p Fj(\003)33
+b Fb(save)g(the)g(c)m(onne)m(ction)g("\(sour)m(c)m(e)f(weight\))h(")p
+Fj(\003)p Fb(/)727 2383 y Fu(fprin)n(tf\(conf,)19 b Fe("\(\045u)31
+b(")p Fu(F)-7 b(ANNPRINTF)p Fe("\))30 b(")p Fu(,)859
+2449 y(connected)p 1153 2449 V 21 w(neurons[i])21 b(-)i(\014rst)p
+1639 2449 V 23 w(neuron,)e(w)n(eigh)n(ts[i]\);)595 2516
+y Fj(g)330 2582 y Fe(#else)595 2648 y Fb(/)p Fj(\003)33
+b Fb(save)g(the)f(c)m(onne)m(ction)i("\(sour)m(c)m(e)e(weight\))h(")p
+Fj(\003)p Fb(/)595 2715 y Fu(fprin)n(tf\(conf,)19 b Fe("\(\045u)30
+b(")p Fu(F)-7 b(ANNPRINTF)p Fe("\))31 b(")p Fu(,)727
+2781 y(connected)p 1021 2781 V 21 w(neurons[i])21 b(-)h(\014rst)p
+1506 2781 V 24 w(neuron,)f(w)n(eigh)n(ts[i]\);)330 2848
+y Fe(#endif)462 2980 y Fj(g)462 3047 y Fu(fprin)n(tf\(conf,)f
+Fe(")p Fj(n)p Fe(n")p Fu(\);)462 3180 y(fclose\(conf)5
+b(\);)462 3313 y Fa(return)23 b Fu(calculated)p 992 3313
+V 22 w(decimal)p 1237 3313 V 21 w(p)r(oin)n(t;)330 3379
+y Fj(g)330 3512 y Fb(/)p Fj(\003)33 b Fb(Save)g(the)g(tr)m(ain)h(data)f
+(structur)m(e.)363 3578 y Fj(\003)p Fb(/)330 3645 y Fa(v)n(oid)21
+b Fu(fann)p 622 3645 V 23 w(sa)n(v)n(e)p 765 3645 V 24
+w(train)p 930 3645 V 24 w(in)n(ternal\()p Fa(struct)g
+Fu(fann)p 1548 3645 V 23 w(train)p 1712 3645 V 23 w(data)p
+Fj(\003)i Fu(data,)f Fa(c)n(har)g Fj(\003)p Fu(\014lename,)e
+Fa(unsigned)h(in)n(t)330 3711 y Fu(sa)n(v)n(e)p 454 3711
+V 24 w(as)p 537 3711 V 24 w(\014xed,)g Fa(unsigned)g(in)n(t)i
+Fu(decimal)p 1389 3711 V 22 w(p)r(oin)n(t\))330 3778
+y Fj(f)462 3844 y Fa(unsigned)f(in)n(t)g Fu(n)n(um)p
+1018 3844 V 23 w(data)g(=)h(data)p Fj(!)p Fu(n)n(um)p
+1588 3844 V 22 w(data;)462 3910 y Fa(unsigned)f(in)n(t)g
+Fu(n)n(um)p 1018 3910 V 23 w(input)f(=)h(data)p Fj(!)p
+Fu(n)n(um)p 1613 3910 V 23 w(input;)462 3977 y Fa(unsigned)g(in)n(t)g
+Fu(n)n(um)p 1018 3977 V 23 w(output)f(=)i(data)p Fj(!)p
+Fu(n)n(um)p 1654 3977 V 23 w(output;)462 4043 y Fa(unsigned)f(in)n(t)g
+Fu(i,)g(j;)330 4110 y Fe(#ifndef)f Fu(FIXEDF)-7 b(ANN)462
+4176 y Fa(unsigned)22 b(in)n(t)g Fu(m)n(ultiplier)e(=)j(1)f
+Fj(\034)h Fu(decimal)p 1637 4176 V 21 w(p)r(oin)n(t;)330
+4242 y Fe(#endif)462 4375 y Fu(FILE)f Fj(\003)p Fu(\014le)g(=)g(fop)r
+(en\(\014lename,)c Fe("w")p Fu(\);)462 4442 y Fa(if)7
+b Fu(\(!\014le\))p Fj(f)595 4508 y Fu(prin)n(tf\()p Fe("Unable)29
+b(to)h(open)g(train)h(data)f(file)g Fj(n)p Fe("\045s)p
+Fj(n)p Fe(")h(for)f(writing.)p Fj(n)p Fe(n")p Fu(,)21
+b(\014lename\);)595 4575 y Fa(return)p Fu(;)462 4641
+y Fj(g)462 4774 y Fu(fprin)n(tf\(\014le,)f Fe("\045u)30
+b(\045u)h(\045u)p Fj(n)p Fe(n")p Fu(,)22 b(data)p Fj(!)p
+Fu(n)n(um)p 1540 4774 V 22 w(data,)g(data)p Fj(!)p Fu(n)n(um)p
+2054 4774 V 23 w(input,)f(data)p Fj(!)p Fu(n)n(um)p 2595
+4774 V 23 w(output\);)462 4907 y Fa(for)p Fu(\(i)h(=)h(0;)f(i)g
+Fk(<)g Fu(n)n(um)p 1015 4907 V 23 w(data;)g(i++\))p Fj(f)595
+4973 y Fa(for)p Fu(\(j)f(=)i(0;)f(j)g Fk(<)g Fu(n)n(um)p
+1151 4973 V 23 w(input;)f(j++\))p Fj(f)330 5039 y Fe(#ifndef)g
+Fu(FIXEDF)-7 b(ANN)727 5106 y Fa(if)7 b Fu(\(sa)n(v)n(e)p
+928 5106 V 24 w(as)p 1011 5106 V 25 w(\014xed\))p Fj(f)859
+5172 y Fu(fprin)n(tf\(\014le,)20 b Fe("\045d)30 b(")p
+Fu(,)22 b(\()p Fa(in)n(t)p Fu(\)\(data)p Fj(!)p Fu(input[i][j])p
+Fj(\003)p Fu(m)n(ultiplier\)\);)727 5239 y Fj(g)p Fa(else)p
+Fj(f)859 5305 y Fu(fprin)n(tf\(\014le,)e(F)-7 b(ANNPRINTF)p
+Fe(")30 b(")p Fu(,)22 b(data)p Fj(!)p Fu(input[i][j]\);)727
+5372 y Fj(g)330 5438 y Fe(#else)727 5504 y Fu(fprin)n(tf\(\014le,)e(F)
+-7 b(ANNPRINTF)p Fe(")30 b(")p Fu(,)22 b(data)p Fj(!)p
+Fu(input[i][j]\);)330 5571 y Fe(#endif)595 5637 y Fj(g)p
+Black 1788 5919 a Fy(72)p Black eop end
+%%Page: 73 77
+TeXDict begin 73 76 bop Black 330 70 a Fp(B.1)82 b(The)28
+b(library)1617 b(B)83 b(SOUR)n(CE)27 b(CODE)p 330 103
+3000 4 v Black 595 390 a Fu(fprin)n(tf\(\014le,)19 b
+Fe(")p Fj(n)p Fe(n")p Fu(\);)595 523 y Fa(for)p Fu(\(j)i(=)i(0;)f(j)g
+Fk(<)g Fu(n)n(um)p 1151 523 20 4 v 23 w(output;)f(j++\))p
+Fj(f)330 589 y Fe(#ifndef)g Fu(FIXEDF)-7 b(ANN)727 656
+y Fa(if)7 b Fu(\(sa)n(v)n(e)p 928 656 V 24 w(as)p 1011
+656 V 25 w(\014xed\))p Fj(f)859 722 y Fu(fprin)n(tf\(\014le,)20
+b Fe("\045d)30 b(")p Fu(,)22 b(\()p Fa(in)n(t)p Fu(\)\(data)p
+Fj(!)p Fu(output[i][j])p Fj(\003)p Fu(m)n(ultiplier\)\);)727
+789 y Fj(g)p Fa(else)p Fj(f)859 855 y Fu(fprin)n(tf\(\014le,)e(F)-7
+b(ANNPRINTF)p Fe(")30 b(")p Fu(,)22 b(data)p Fj(!)p Fu(output[i][j]\);)
+727 922 y Fj(g)330 988 y Fe(#else)727 1054 y Fu(fprin)n(tf\(\014le,)e
+(F)-7 b(ANNPRINTF)p Fe(")30 b(")p Fu(,)22 b(data)p Fj(!)p
+Fu(output[i][j]\);)330 1121 y Fe(#endif)595 1187 y Fj(g)595
+1254 y Fu(fprin)n(tf\(\014le,)d Fe(")p Fj(n)p Fe(n")p
+Fu(\);)462 1320 y Fj(g)462 1453 y Fu(fclose\(\014le\);)330
+1519 y Fj(g)330 1652 y Fb(/)p Fj(\003)33 b Fb(Se)m(e)m(d)f(the)h(r)m
+(andom)g(function.)363 1719 y Fj(\003)p Fb(/)330 1785
+y Fa(v)n(oid)21 b Fu(fann)p 622 1785 V 23 w(seed)p 768
+1785 V 23 w(rand\(\))330 1851 y Fj(f)462 1918 y Fu(FILE)h
+Fj(\003)p Fu(fp)g(=)g(fop)r(en\()p Fe("/dev/urandom")p
+Fu(,)d Fe("r")p Fu(\);)462 1984 y Fa(unsigned)j(in)n(t)g
+Fu(fo)r(o;)462 2051 y Fa(struct)i Fu(timev)l(al)d(t;)462
+2117 y Fa(if)7 b Fu(\(!fp\))p Fj(f)595 2183 y Fu(gettimeofda)n(y\(&t,)
+20 b(NULL\);)595 2250 y(fo)r(o)i(=)g(t.tv)p 889 2250
+V 23 w(usec;)330 2316 y Fe(#ifdef)g Fu(DEBUG)595 2383
+y(prin)n(tf\()p Fe("unable)29 b(to)h(open)g(/dev/urandom)p
+Fj(n)p Fe(n")p Fu(\);)330 2449 y Fe(#endif)462 2516 y
+Fj(g)p Fa(else)p Fj(f)595 2582 y Fu(fread\(&fo)r(o,)20
+b Fa(sizeof)7 b Fu(\(fo)r(o\),)22 b(1,)h(fp\);)595 2648
+y(fclose\(fp\);)462 2715 y Fj(g)462 2781 y Fu(srand\(fo)r(o\);)330
+2848 y Fj(g)p Black 1788 5919 a Fy(73)p Black eop end
+%%Page: 74 78
+TeXDict begin 74 77 bop Black 330 70 a Fp(B.2)82 b(T)-7
+b(est)28 b(programs)1509 b(B)83 b(SOUR)n(CE)27 b(CODE)p
+330 103 3000 4 v Black 330 390 a Fo(B.2)112 b(T)-9 b(est)37
+b(programs)330 543 y Fs(B.2.1)94 b Ft(xor)p 779 543 27
+4 v 30 w(train.c)p Black Black 330 663 a Fe(#include)21
+b Fk(<)p Fe(stdio.h)p Fk(>)330 796 y Fb(/)p Fj(\003)33
+b Fb(In)h(this)g(\014le)f(I)h(do)f(not)h(ne)m(e)m(d)e(to)h(include)g
+(\015o)m(atfann)h(or)g(doublefann,)429 863 y(b)m(e)m(c)m(ause)d(it)i
+(is)h(include)m(d)f(in)h(the)f(make\014le.)f(Normaly)h(you)h(would)f
+(ne)m(e)m(d)429 929 y(to)h(do)f(a)g(#include)f("\015o)m(atfann.h".)330
+996 y Fj(\003)p Fb(/)330 1128 y Fa(in)n(t)23 b Fu(main\(\))330
+1195 y Fj(f)462 1261 y Fu(fann)p 594 1261 20 4 v 23 w(t)n(yp)r(e)f
+Fj(\003)p Fu(calc)p 913 1261 V 22 w(out;)462 1328 y Fa(const)h(\015oat)
+f Fu(connection)p 1141 1328 V 21 w(rate)g(=)g(1;)462
+1394 y Fa(const)h(\015oat)f Fu(learning)p 1063 1394 V
+22 w(rate)g(=)g(0.7;)462 1460 y Fa(const)h(unsigned)e(in)n(t)h
+Fu(n)n(um)p 1212 1460 V 23 w(input)f(=)i(2;)462 1527
+y Fa(const)g(unsigned)e(in)n(t)h Fu(n)n(um)p 1212 1527
+V 23 w(output)g(=)g(1;)462 1593 y Fa(const)h(unsigned)e(in)n(t)h
+Fu(n)n(um)p 1212 1593 V 23 w(la)n(y)n(ers)h(=)f(3;)462
+1660 y Fa(const)h(unsigned)e(in)n(t)h Fu(n)n(um)p 1212
+1660 V 23 w(neurons)p 1461 1660 V 23 w(hidden)e(=)j(4;)462
+1726 y Fa(const)g(\015oat)f Fu(desired)p 1034 1726 V
+22 w(error)g(=)g(0.0001;)462 1793 y Fa(const)h(unsigned)e(in)n(t)h
+Fu(max)p 1208 1793 V 24 w(iterations)f(=)i(500000;)462
+1859 y Fa(const)g(unsigned)e(in)n(t)h Fu(iterations)p
+1360 1859 V 23 w(b)r(et)n(w)n(een)p 1618 1859 V 23 w(rep)r(orts)f(=)i
+(1000;)462 1925 y Fa(struct)h Fu(fann)d Fj(\003)p Fu(ann;)462
+1992 y Fa(struct)j Fu(fann)p 812 1992 V 22 w(train)p
+975 1992 V 24 w(data)e Fj(\003)p Fu(data;)462 2125 y
+Fa(unsigned)g(in)n(t)g Fu(i)g(=)h(0;)462 2191 y Fa(unsigned)f(in)n(t)g
+Fu(decimal)p 1114 2191 V 22 w(p)r(oin)n(t;)462 2324 y(prin)n(tf\()p
+Fe("Creating)29 b(network.)p Fj(n)p Fe(n")p Fu(\);)462
+2457 y(ann)22 b(=)h(fann)p 797 2457 V 22 w(create\(connection)p
+1332 2457 V 20 w(rate,)f(learning)p 1742 2457 V 22 w(rate,)g(n)n(um)p
+2047 2457 V 23 w(la)n(y)n(ers,)595 2523 y(n)n(um)p 726
+2523 V 23 w(input,)595 2590 y(n)n(um)p 726 2590 V 23
+w(neurons)p 975 2590 V 22 w(hidden,)595 2656 y(n)n(um)p
+726 2656 V 23 w(output\);)462 2789 y(prin)n(tf\()p Fe("Training)29
+b(network.)p Fj(n)p Fe(n")p Fu(\);)462 2922 y(data)23
+b(=)f(fann)p 819 2922 V 23 w(read)p 968 2922 V 23 w(train)p
+1132 2922 V 23 w(from)p 1290 2922 V 23 w(\014le\()p Fe("xor.data")p
+Fu(\);)462 2988 y(fann)p 594 2988 V 23 w(train)p 758
+2988 V 23 w(on)p 851 2988 V 24 w(data\(ann,)f(data,)h(max)p
+1470 2988 V 24 w(iterations,)f(iterations)p 2084 2988
+V 23 w(b)r(et)n(w)n(een)p 2342 2988 V 22 w(rep)r(orts,)h(desired)p
+2816 2988 V 22 w(error\);)462 3121 y(prin)n(tf\()p Fe("Testing)29
+b(network.)p Fj(n)p Fe(n")p Fu(\);)462 3254 y Fa(for)p
+Fu(\(i)22 b(=)h(0;)f(i)g Fk(<)g Fu(data)p Fj(!)p Fu(n)n(um)p
+1210 3254 V 23 w(data;)g(i++\))p Fj(f)595 3320 y Fu(calc)p
+711 3320 V 23 w(out)g(=)g(fann)p 1053 3320 V 23 w(run\(ann,)f(data)p
+Fj(!)p Fu(input[i]\);)595 3387 y(prin)n(tf\()p Fe("XOR)29
+b(test)h(\(\045f,\045f\))g(-)p Fk(>)h Fe(\045f,)f(should)g(be)h(\045f,)
+g(difference)p Fu(=)p Fe(\045f)p Fj(n)p Fe(n")p Fu(,)595
+3453 y(data)p Fj(!)p Fu(input[i][0],)20 b(data)p Fj(!)p
+Fu(input[i][1],)g Fj(\003)p Fu(calc)p 1781 3453 V 22
+w(out,)i(data)p Fj(!)p Fu(output[i][0],)f(fann)p 2627
+3453 V 22 w(abs\()p Fj(\003)p Fu(calc)p 2917 3453 V 23
+w(out)h(-)330 3519 y(data)p Fj(!)p Fu(output[i][0]\)\);)462
+3586 y Fj(g)462 3719 y Fu(prin)n(tf\()p Fe("Saving)29
+b(network.)p Fj(n)p Fe(n")p Fu(\);)462 3852 y(fann)p
+594 3852 V 23 w(sa)n(v)n(e\(ann,)22 b Fe("xor)p 1035
+3852 19 4 v 22 w(float.net")p Fu(\);)462 3984 y(decimal)p
+689 3984 20 4 v 22 w(p)r(oin)n(t)g(=)g(fann)p 1086 3984
+V 23 w(sa)n(v)n(e)p 1229 3984 V 24 w(to)p 1312 3984 V
+24 w(\014xed\(ann,)e Fe("xor)p 1772 3984 19 4 v 22 w(fixed.net")p
+Fu(\);)462 4051 y(fann)p 594 4051 20 4 v 23 w(sa)n(v)n(e)p
+737 4051 V 24 w(train)p 902 4051 V 24 w(to)p 985 4051
+V 23 w(\014xed\(data,)h Fe("xor)p 1467 4051 19 4 v 22
+w(fixed.data")p Fu(,)f(decimal)p 2092 4051 20 4 v 22
+w(p)r(oin)n(t\);)462 4184 y(prin)n(tf\()p Fe("Cleaning)29
+b(up.)p Fj(n)p Fe(n")p Fu(\);)462 4250 y(fann)p 594 4250
+V 23 w(destro)n(y)p 828 4250 V 24 w(train\(data\);)462
+4316 y(fann)p 594 4316 V 23 w(destro)n(y\(ann\);)462
+4449 y Fa(return)23 b Fu(0;)330 4516 y Fj(g)p Black 1788
+5919 a Fy(74)p Black eop end
+%%Page: 75 79
+TeXDict begin 75 78 bop Black 330 70 a Fp(B.2)82 b(T)-7
+b(est)28 b(programs)1509 b(B)83 b(SOUR)n(CE)27 b(CODE)p
+330 103 3000 4 v Black 330 390 a Fs(B.2.2)94 b Ft(xor)p
+779 390 27 4 v 30 w(test.c)p Black Black 330 510 a Fe(#include)21
+b Fk(<)p Fe(time.h)p Fk(>)330 577 y Fe(#include)g Fk(<)p
+Fe(sys/time.h)p Fk(>)330 643 y Fe(#include)g Fk(<)p Fe(stdio.h)p
+Fk(>)330 776 y Fb(/)p Fj(\003)33 b Fb(In)h(this)g(\014le)f(I)h(do)f
+(not)h(ne)m(e)m(d)e(to)h(include)g(\014xe)m(dfann,)h(\015o)m(atfann)h
+(or)e(doublefann,)429 842 y(b)m(e)m(c)m(ause)e(it)i(is)h(include)m(d)f
+(in)h(the)f(make\014le.)f(Normaly)h(you)h(would)f(ne)m(e)m(d)429
+909 y(to)h(do)f(a)g(#include)f("\015o)m(atfann.h")j(or)f(#include)e
+("\014xe)m(dfann.h".)330 975 y Fj(\003)p Fb(/)330 1108
+y Fa(in)n(t)23 b Fu(main\(\))330 1174 y Fj(f)462 1241
+y Fu(fann)p 594 1241 20 4 v 23 w(t)n(yp)r(e)f Fj(\003)p
+Fu(calc)p 913 1241 V 22 w(out;)462 1307 y Fa(unsigned)g(in)n(t)g
+Fu(i;)462 1374 y Fa(in)n(t)h Fu(ret)f(=)g(0;)462 1507
+y Fa(struct)i Fu(fann)d Fj(\003)p Fu(ann;)462 1573 y
+Fa(struct)j Fu(fann)p 812 1573 V 22 w(train)p 975 1573
+V 24 w(data)e Fj(\003)p Fu(data;)462 1706 y(prin)n(tf\()p
+Fe("Creating)29 b(network.)p Fj(n)p Fe(n")p Fu(\);)330
+1839 y Fe(#ifdef)22 b Fu(FIXEDF)-7 b(ANN)462 1905 y(ann)22
+b(=)h(fann)p 797 1905 V 22 w(create)p 994 1905 V 23 w(from)p
+1152 1905 V 23 w(\014le\()p Fe("xor)p 1412 1905 19 4
+v 20 w(fixed.net")p Fu(\);)330 1971 y Fe(#else)462 2038
+y Fu(ann)f(=)h(fann)p 797 2038 20 4 v 22 w(create)p 994
+2038 V 23 w(from)p 1152 2038 V 23 w(\014le\()p Fe("xor)p
+1412 2038 19 4 v 20 w(float.net")p Fu(\);)330 2104 y
+Fe(#endif)462 2237 y Fa(if)7 b Fu(\(!ann\))p Fj(f)595
+2304 y Fu(prin)n(tf\()p Fe("Error)29 b(creating)g(ann)i(---)f
+(ABORTING.)p Fj(n)p Fe(n")p Fu(\);)595 2370 y Fa(return)23
+b Fu(0;)462 2436 y Fj(g)462 2569 y Fu(prin)n(tf\()p Fe("Testing)29
+b(network.)p Fj(n)p Fe(n")p Fu(\);)330 2702 y Fe(#ifdef)22
+b Fu(FIXEDF)-7 b(ANN)462 2768 y(data)23 b(=)f(fann)p
+819 2768 20 4 v 23 w(read)p 968 2768 V 23 w(train)p 1132
+2768 V 23 w(from)p 1290 2768 V 23 w(\014le\()p Fe("xor)p
+1550 2768 19 4 v 21 w(fixed.data")p Fu(\);)330 2835 y
+Fe(#else)462 2901 y Fu(data)h(=)f(fann)p 819 2901 20
+4 v 23 w(read)p 968 2901 V 23 w(train)p 1132 2901 V 23
+w(from)p 1290 2901 V 23 w(\014le\()p Fe("xor.data")p
+Fu(\);)330 2968 y Fe(#endif)462 3101 y Fa(for)p Fu(\(i)g(=)h(0;)f(i)g
+Fk(<)g Fu(data)p Fj(!)p Fu(n)n(um)p 1210 3101 V 23 w(data;)g(i++\))p
+Fj(f)595 3167 y Fu(fann)p 727 3167 V 23 w(reset)p 888
+3167 V 23 w(error\(ann\);)595 3233 y(calc)p 711 3233
+V 23 w(out)g(=)g(fann)p 1053 3233 V 23 w(test\(ann,)f(data)p
+Fj(!)p Fu(input[i],)f(data)p Fj(!)p Fu(output[i]\);)330
+3300 y Fe(#ifdef)i Fu(FIXEDF)-7 b(ANN)595 3366 y(prin)n(tf\()p
+Fe("XOR)29 b(test)h(\(\045d,)h(\045d\))f(-)p Fk(>)h Fe(\045d,)f(should)
+g(be)h(\045d,)f(difference)p Fu(=)p Fe(\045f)p Fj(n)p
+Fe(n")p Fu(,)595 3433 y(data)p Fj(!)p Fu(input[i][0],)20
+b(data)p Fj(!)p Fu(input[i][1],)g Fj(\003)p Fu(calc)p
+1781 3433 V 22 w(out,)i(data)p Fj(!)p Fu(output[i][0],)f(\()p
+Fa(\015oat)p Fu(\)fann)p 2825 3433 V 22 w(abs\()p Fj(\003)p
+Fu(calc)p 3115 3433 V 23 w(out)h(-)330 3499 y(data)p
+Fj(!)p Fu(output[i][0]\))p Fk(=)p Fu(fann)p 1041 3499
+V 21 w(get)p 1151 3499 V 23 w(m)n(ultiplier\(ann\)\);)595
+3632 y Fa(if)7 b Fu(\(\()p Fa(\015oat)p Fu(\)fann)p 1002
+3632 V 22 w(abs\()p Fj(\003)p Fu(calc)p 1292 3632 V 23
+w(out)22 b(-)h(data)p Fj(!)p Fu(output[i][0]\))p Fk(=)p
+Fu(fann)p 2185 3632 V 21 w(get)p 2295 3632 V 23 w(m)n(ultiplier\(ann\))
+d Fk(>)i Fu(0.1\))p Fj(f)727 3698 y Fu(prin)n(tf\()p
+Fe("Test)29 b(failed)p Fj(n)p Fe(n")p Fu(\);)727 3765
+y(ret)22 b(=)g(-1;)595 3831 y Fj(g)330 3898 y Fe(#else)595
+3964 y Fu(prin)n(tf\()p Fe("XOR)29 b(test)h(\(\045f,)h(\045f\))f(-)p
+Fk(>)h Fe(\045f,)f(should)g(be)h(\045f,)f(difference)p
+Fu(=)p Fe(\045f)p Fj(n)p Fe(n")p Fu(,)595 4030 y(data)p
+Fj(!)p Fu(input[i][0],)20 b(data)p Fj(!)p Fu(input[i][1],)g
+Fj(\003)p Fu(calc)p 1781 4030 V 22 w(out,)i(data)p Fj(!)p
+Fu(output[i][0],)f(\()p Fa(\015oat)p Fu(\)fann)p 2825
+4030 V 22 w(abs\()p Fj(\003)p Fu(calc)p 3115 4030 V 23
+w(out)h(-)330 4097 y(data)p Fj(!)p Fu(output[i][0]\)\);)330
+4163 y Fe(#endif)462 4230 y Fj(g)462 4362 y Fu(prin)n(tf\()p
+Fe("Cleaning)29 b(up.)p Fj(n)p Fe(n")p Fu(\);)462 4429
+y(fann)p 594 4429 V 23 w(destro)n(y\(ann\);)462 4562
+y Fa(return)23 b Fu(ret;)330 4628 y Fj(g)p Black 1788
+5919 a Fy(75)p Black eop end
+%%Page: 76 80
+TeXDict begin 76 79 bop Black 330 70 a Fp(B.2)82 b(T)-7
+b(est)28 b(programs)1509 b(B)83 b(SOUR)n(CE)27 b(CODE)p
+330 103 3000 4 v Black 330 390 a Fs(B.2.3)94 b Ft(steepness)p
+1043 390 27 4 v 28 w(train.c)p Black Black 330 510 a
+Fb(/)p Fj(\003)33 b Fb(In)h(this)g(\014le)f(I)h(do)f(not)h(ne)m(e)m(d)e
+(to)h(include)g(\015o)m(atfann)h(or)g(doublefann,)429
+577 y(b)m(e)m(c)m(ause)d(it)i(is)h(include)m(d)f(in)h(the)f
+(make\014le.)f(Normaly)h(you)h(would)f(ne)m(e)m(d)429
+643 y(to)h(do)f(a)g(#include)f("\015o)m(atfann.h".)330
+709 y Fj(\003)p Fb(/)330 842 y Fe(#include)21 b Fk(<)p
+Fe(stdio.h)p Fk(>)330 975 y Fa(v)n(oid)g Fu(train)p 635
+975 20 4 v 24 w(on)p 729 975 V 23 w(steepness)p 1020
+975 V 23 w(\014le\()p Fa(struct)h Fu(fann)f Fj(\003)p
+Fu(ann,)h Fa(c)n(har)g Fj(\003)p Fu(\014lename,)462 1042
+y Fa(unsigned)g(in)n(t)g Fu(max)p 1014 1042 V 23 w(ep)r(o)r(c)n(hs,)f
+Fa(unsigned)g(in)n(t)i Fu(ep)r(o)r(c)n(hs)p 1892 1042
+V 22 w(b)r(et)n(w)n(een)p 2149 1042 V 23 w(rep)r(orts,)462
+1108 y Fa(\015oat)g Fu(desired)p 840 1108 V 22 w(error,)e
+Fa(\015oat)h Fu(steepness)p 1479 1108 V 23 w(start,)462
+1174 y Fa(\015oat)h Fu(steepness)p 903 1174 V 22 w(step,)f
+Fa(\015oat)g Fu(steepness)p 1521 1174 V 22 w(end\))330
+1241 y Fj(f)462 1307 y Fa(\015oat)h Fu(error;)462 1374
+y Fa(unsigned)f(in)n(t)g Fu(i,)g(j;)462 1507 y Fa(struct)i
+Fu(fann)p 812 1507 V 22 w(train)p 975 1507 V 24 w(data)e
+Fj(\003)p Fu(data)g(=)g(fann)p 1536 1507 V 23 w(read)p
+1685 1507 V 23 w(train)p 1849 1507 V 23 w(from)p 2007
+1507 V 23 w(\014le\(\014lename\);)462 1573 y Fa(if)7
+b Fu(\(ep)r(o)r(c)n(hs)p 738 1573 V 23 w(b)r(et)n(w)n(een)p
+996 1573 V 22 w(rep)r(orts\))p Fj(f)595 1639 y Fu(prin)n(tf\()p
+Fe("Max)29 b(epochs)h(\0458d.)61 b(Desired)30 b(error:)61
+b(\045.10f)p Fj(n)p Fe(n")p Fu(,)727 1706 y(max)p 854
+1706 V 23 w(ep)r(o)r(c)n(hs,)21 b(desired)p 1317 1706
+V 22 w(error\);)462 1772 y Fj(g)462 1905 y Fu(fann)p
+594 1905 V 23 w(set)p 699 1905 V 24 w(activ)l(ation)p
+1010 1905 V 23 w(hidden)p 1230 1905 V 22 w(steepness\(ann,)f(steepness)
+p 1960 1905 V 23 w(start\);)462 1971 y(fann)p 594 1971
+V 23 w(set)p 699 1971 V 24 w(activ)l(ation)p 1010 1971
+V 23 w(output)p 1229 1971 V 23 w(steepness\(ann,)g(steepness)p
+1960 1971 V 23 w(start\);)462 2038 y Fa(for)p Fu(\(i)i(=)h(1;)f(i)g
+Fj(\024)g Fu(max)p 1011 2038 V 24 w(ep)r(o)r(c)n(hs;)e(i++\))p
+Fj(f)595 2104 y Fb(/)p Fj(\003)33 b Fb(tr)m(ain)h Fj(\003)p
+Fb(/)595 2171 y Fu(fann)p 727 2171 V 23 w(reset)p 888
+2171 V 23 w(error\(ann\);)595 2304 y Fa(for)p Fu(\(j)21
+b(=)i(0;)f(j)g Fj(6)p Fu(=)g(data)p Fj(!)p Fu(n)n(um)p
+1345 2304 V 23 w(data;)g(j++\))p Fj(f)727 2370 y Fu(fann)p
+859 2370 V 23 w(train\(ann,)f(data)p Fj(!)p Fu(input[j],)f(data)p
+Fj(!)p Fu(output[j]\);)595 2436 y Fj(g)595 2569 y Fu(error)i(=)g(fann)p
+963 2569 V 23 w(get)p 1075 2569 V 23 w(error\(ann\);)595
+2702 y Fb(/)p Fj(\003)33 b Fb(print)h(curr)m(ent)f(output)g
+Fj(\003)p Fb(/)595 2768 y Fa(if)7 b Fu(\(ep)r(o)r(c)n(hs)p
+871 2768 V 22 w(b)r(et)n(w)n(een)p 1128 2768 V 23 w(rep)r(orts)21
+b(&&)727 2835 y(\(i)h(\045)g(ep)r(o)r(c)n(hs)p 1070 2835
+V 23 w(b)r(et)n(w)n(een)p 1328 2835 V 22 w(rep)r(orts)f(==)i(0)859
+2901 y Fj(jj)f Fu(i)g(==)h(max)p 1214 2901 V 23 w(ep)r(o)r(c)n(hs)859
+2968 y Fj(jj)f Fu(i)g(==)h(1)859 3034 y Fj(jj)f Fu(error)g
+Fk(<)g Fu(desired)p 1367 3034 V 23 w(error\)\))p Fj(f)727
+3101 y Fu(prin)n(tf\()p Fe("Epochs)29 b(\0458d.)61 b(Current)30
+b(error:)61 b(\045.10f)p Fj(n)p Fe(n")p Fu(,)21 b(i,)h(error\);)595
+3167 y Fj(g)595 3300 y Fa(if)7 b Fu(\(error)22 b Fk(<)g
+Fu(desired)p 1118 3300 V 22 w(error\))p Fj(f)727 3366
+y Fu(steepness)p 999 3366 V 23 w(start)g(+=)h(steepness)p
+1574 3366 V 22 w(step;)727 3433 y Fa(if)7 b Fu(\(steepness)p
+1076 3433 V 23 w(start)23 b Fj(\024)f Fu(steepness)p
+1601 3433 V 22 w(end\))p Fj(f)859 3499 y Fu(prin)n(tf\()p
+Fe("Steepness:)60 b(\045f)p Fj(n)p Fe(n")p Fu(,)21 b(steepness)p
+1920 3499 V 23 w(start\);)859 3565 y(fann)p 991 3565
+V 23 w(set)p 1096 3565 V 24 w(activ)l(ation)p 1407 3565
+V 23 w(hidden)p 1627 3565 V 22 w(steepness\(ann,)f(steepness)p
+2357 3565 V 23 w(start\);)859 3632 y(fann)p 991 3632
+V 23 w(set)p 1096 3632 V 24 w(activ)l(ation)p 1407 3632
+V 23 w(output)p 1626 3632 V 23 w(steepness\(ann,)g(steepness)p
+2357 3632 V 23 w(start\);)727 3698 y Fj(g)p Fa(else)p
+Fj(f)859 3765 y Fa(break)p Fu(;)727 3831 y Fj(g)595 3898
+y(g)462 3964 y(g)462 4030 y Fu(fann)p 594 4030 V 23 w(destro)n(y)p
+828 4030 V 24 w(train\(data\);)330 4097 y Fj(g)330 4230
+y Fa(in)n(t)j Fu(main\(\))330 4296 y Fj(f)462 4362 y
+Fa(const)g(\015oat)f Fu(connection)p 1141 4362 V 21 w(rate)g(=)g(1;)462
+4429 y Fa(const)h(\015oat)f Fu(learning)p 1063 4429 V
+22 w(rate)g(=)g(0.7;)462 4495 y Fa(const)h(unsigned)e(in)n(t)h
+Fu(n)n(um)p 1212 4495 V 23 w(input)f(=)i(2;)462 4562
+y Fa(const)g(unsigned)e(in)n(t)h Fu(n)n(um)p 1212 4562
+V 23 w(output)g(=)g(1;)462 4628 y Fa(const)h(unsigned)e(in)n(t)h
+Fu(n)n(um)p 1212 4628 V 23 w(la)n(y)n(ers)h(=)f(3;)462
+4695 y Fa(const)h(unsigned)e(in)n(t)h Fu(n)n(um)p 1212
+4695 V 23 w(neurons)p 1461 4695 V 23 w(hidden)e(=)j(4;)462
+4761 y Fa(const)g(\015oat)f Fu(desired)p 1034 4761 V
+22 w(error)g(=)g(0.0001;)462 4827 y Fa(const)h(unsigned)e(in)n(t)h
+Fu(max)p 1208 4827 V 24 w(iterations)f(=)i(500000;)462
+4894 y Fa(const)g(unsigned)e(in)n(t)h Fu(iterations)p
+1360 4894 V 23 w(b)r(et)n(w)n(een)p 1618 4894 V 23 w(rep)r(orts)f(=)i
+(1000;)462 4960 y Fa(unsigned)f(in)n(t)g Fu(i;)462 5027
+y(fann)p 594 5027 V 23 w(t)n(yp)r(e)g Fj(\003)p Fu(calc)p
+913 5027 V 22 w(out;)462 5159 y Fa(struct)i Fu(fann)p
+812 5159 V 22 w(train)p 975 5159 V 24 w(data)e Fj(\003)p
+Fu(data;)462 5292 y Fa(struct)i Fu(fann)d Fj(\003)p Fu(ann)h(=)g(fann)p
+1197 5292 V 23 w(create\(connection)p 1733 5292 V 20
+w(rate,)595 5359 y(learning)p 833 5359 V 22 w(rate,)g(n)n(um)p
+1138 5359 V 23 w(la)n(y)n(ers,)595 5425 y(n)n(um)p 726
+5425 V 23 w(input,)f(n)n(um)p 1072 5425 V 22 w(neurons)p
+1320 5425 V 23 w(hidden,)f(n)n(um)p 1706 5425 V 23 w(output\);)462
+5558 y(data)j(=)f(fann)p 819 5558 V 23 w(read)p 968 5558
+V 23 w(train)p 1132 5558 V 23 w(from)p 1290 5558 V 23
+w(\014le\()p Fe("xor.data")p Fu(\);)p Black 1788 5919
+a Fy(76)p Black eop end
+%%Page: 77 81
+TeXDict begin 77 80 bop Black 330 70 a Fp(B.2)82 b(T)-7
+b(est)28 b(programs)1509 b(B)83 b(SOUR)n(CE)27 b(CODE)p
+330 103 3000 4 v Black 462 390 a Fu(train)p 607 390 20
+4 v 24 w(on)p 701 390 V 23 w(steepness)p 992 390 V 23
+w(\014le\(ann,)20 b Fe("xor.data")p Fu(,)h(max)p 1747
+390 V 24 w(iterations,)595 457 y(iterations)p 874 457
+V 23 w(b)r(et)n(w)n(een)p 1132 457 V 22 w(rep)r(orts,)g(desired)p
+1605 457 V 23 w(error,)g(0.5,)h(0.1,)g(20.0\);)462 589
+y(fann)p 594 589 V 23 w(set)p 699 589 V 24 w(activ)l(ation)p
+1010 589 V 23 w(function)p 1273 589 V 22 w(hidden\(ann,)d(F)-7
+b(ANN)p 1846 589 V 24 w(THRESHOLD\);)462 656 y(fann)p
+594 656 V 23 w(set)p 699 656 V 24 w(activ)l(ation)p 1010
+656 V 23 w(function)p 1273 656 V 22 w(output\(ann,)20
+b(F)-7 b(ANN)p 1846 656 V 24 w(THRESHOLD\);)462 789 y
+Fa(for)p Fu(\(i)22 b(=)h(0;)f(i)g Fj(6)p Fu(=)g(data)p
+Fj(!)p Fu(n)n(um)p 1209 789 V 23 w(data;)g(i++\))p Fj(f)595
+855 y Fu(calc)p 711 855 V 23 w(out)g(=)g(fann)p 1053
+855 V 23 w(run\(ann,)f(data)p Fj(!)p Fu(input[i]\);)595
+922 y(prin)n(tf\()p Fe("XOR)29 b(test)h(\(\045f,)h(\045f\))f(-)p
+Fk(>)h Fe(\045f,)f(should)g(be)h(\045f,)f(difference)p
+Fu(=)p Fe(\045f)p Fj(n)p Fe(n")p Fu(,)595 988 y(data)p
+Fj(!)p Fu(input[i][0],)20 b(data)p Fj(!)p Fu(input[i][1],)g
+Fj(\003)p Fu(calc)p 1781 988 V 22 w(out,)i(data)p Fj(!)p
+Fu(output[i][0],)727 1054 y(\()p Fa(\015oat)p Fu(\)fann)p
+1057 1054 V 23 w(abs\()p Fj(\003)p Fu(calc)p 1348 1054
+V 22 w(out)g(-)h(data)p Fj(!)p Fu(output[i][0]\)\);)462
+1121 y Fj(g)462 1320 y Fu(fann)p 594 1320 V 23 w(sa)n(v)n(e\(ann,)f
+Fe("xor)p 1035 1320 19 4 v 22 w(float.net")p Fu(\);)462
+1453 y(fann)p 594 1453 20 4 v 23 w(destro)n(y\(ann\);)462
+1519 y(fann)p 594 1519 V 23 w(destro)n(y)p 828 1519 V
+24 w(train\(data\);)462 1652 y Fa(return)h Fu(0;)330
+1719 y Fj(g)p Black 1788 5919 a Fy(77)p Black eop end
+%%Page: 78 82
+TeXDict begin 78 81 bop Black 330 70 a Fp(B.3)82 b(Benc)n(hmark)27
+b(programs)1254 b(B)83 b(SOUR)n(CE)27 b(CODE)p 330 103
+3000 4 v Black 330 390 a Fo(B.3)112 b(Benc)m(hmark)38
+b(programs)330 543 y Fs(B.3.1)94 b Ft(quality.cc)p Black
+Black 330 663 a Fe(#include)21 b Fk(<)p Fe(stdio.h)p
+Fk(>)330 730 y Fe(#include)g Fk(<)p Fe(stdlib.h)p Fk(>)330
+796 y Fe(#include)g Fk(<)p Fe(string.h)p Fk(>)330 929
+y Fe(#include)g Fu(")p Fe(nets/backprop.h)p Fu(")330
+996 y Fe(#include)g Fu(")p Fe(ctimer.h)p Fu(")330 1062
+y Fe(#include)g Fu(")p Fe(lwneuralnet.h)p Fu(")330 1195
+y Fa(unsigned)g(in)n(t)i Fu(n)n(um)p 886 1195 20 4 v
+23 w(errors)f(=)g(0;)330 1261 y Fa(double)g Fu(error)p
+716 1261 V 23 w(v)l(alue)g(=)g(0;)330 1394 y Fa(v)n(oid)f
+Fu(clear)p 632 1394 V 23 w(error\(\))330 1460 y Fj(f)462
+1527 y Fu(n)n(um)p 593 1527 V 23 w(errors)h(=)h(0;)462
+1593 y(error)p 607 1593 V 24 w(v)l(alue)e(=)i(0;)330
+1660 y Fj(g)330 1793 y Fa(v)n(oid)e Fu(up)r(date)p 696
+1793 V 23 w(error\(fann)p 1014 1793 V 22 w(t)n(yp)r(e)g
+Fj(\003)p Fu(output,)g(fann)p 1583 1793 V 23 w(t)n(yp)r(e)h
+Fj(\003)p Fu(desired)p 1995 1793 V 22 w(output,)f Fa(unsigned)g(in)n(t)
+i Fu(n)n(um)p 2805 1793 V 23 w(output\))330 1859 y Fj(f)462
+1925 y Fa(unsigned)f(in)n(t)g Fu(i)g(=)h(0;)462 1992
+y Fb(/)p Fj(\003)34 b Fb(c)m(alculate)d(the)i(err)m(or)g
+Fj(\003)p Fb(/)462 2058 y Fa(for)p Fu(\(i)22 b(=)h(0;)f(i)g
+Fk(<)g Fu(n)n(um)p 1015 2058 V 23 w(output;)f(i++\))p
+Fj(f)595 2125 y Fu(error)p 740 2125 V 23 w(v)l(alue)h(+=)g(\(desired)p
+1290 2125 V 22 w(output[i])f(-)i(output[i]\))d Fj(\003)j
+Fu(\(desired)p 2218 2125 V 22 w(output[i])e(-)h(output[i]\);)462
+2191 y Fj(g)462 2258 y Fu(n)n(um)p 593 2258 V 23 w(errors++;)330
+2324 y Fj(g)330 2457 y Fa(double)g Fu(mean)p 730 2457
+V 22 w(error\(\))330 2523 y Fj(f)462 2590 y Fa(return)h
+Fu(error)p 839 2590 V 23 w(v)l(alue)p Fk(=)p Fu(\()p
+Fa(double)p Fu(\)n)n(um)p 1444 2590 V 22 w(errors;)330
+2656 y Fj(g)330 2855 y Fa(v)n(oid)e Fu(qualit)n(y)p 696
+2855 V 24 w(b)r(enc)n(hmark)p 1040 2855 V 21 w(jneural\()462
+2922 y Fa(struct)j Fu(fann)p 812 2922 V 22 w(train)p
+975 2922 V 24 w(data)e Fj(\003)p Fu(train)p 1325 2922
+V 23 w(data,)462 2988 y Fa(struct)i Fu(fann)p 812 2988
+V 22 w(train)p 975 2988 V 24 w(data)e Fj(\003)p Fu(test)p
+1292 2988 V 23 w(data,)462 3055 y(FILE)g Fj(\003)p Fu(train)p
+816 3055 V 24 w(out,)f(FILE)h Fj(\003)p Fu(test)p 1293
+3055 V 24 w(out,)462 3121 y Fa(unsigned)g(in)n(t)g Fu(n)n(um)p
+1018 3121 V 23 w(input,)f Fa(unsigned)g(in)n(t)i Fu(n)n(um)p
+1789 3121 V 23 w(neurons)p 2038 3121 V 22 w(hidden1,)462
+3187 y Fa(unsigned)f(in)n(t)g Fu(n)n(um)p 1018 3187 V
+23 w(neurons)p 1267 3187 V 23 w(hidden2,)e Fa(unsigned)h(in)n(t)i
+Fu(n)n(um)p 2111 3187 V 23 w(output,)462 3254 y Fa(unsigned)f(in)n(t)g
+Fu(seconds)p 1110 3254 V 23 w(of)p 1187 3254 V 24 w(training,)f
+Fa(unsigned)g(in)n(t)h Fu(seconds)p 2124 3254 V 23 w(b)r(et)n(w)n(een)p
+2382 3254 V 23 w(rep)r(orts\))330 3320 y Fj(f)462 3387
+y Fa(\015oat)h Fu(train)p 776 3387 V 23 w(error,)e(test)p
+1088 3387 V 24 w(error;)462 3453 y Fa(unsigned)h(in)n(t)g
+Fu(i;)462 3519 y Fa(unsigned)g(in)n(t)g Fu(ep)r(o)r(c)n(hs)f(=)h(0;)462
+3586 y Fa(double)g Fu(elapsed)f(=)h(0;)462 3652 y Fa(double)g
+Fu(total)p 844 3652 V 24 w(elapsed)f(=)h(0;)462 3719
+y(fann)p 594 3719 V 23 w(t)n(yp)r(e)g Fj(\003)p Fu(output;)462
+3785 y Fa(struct)i Fu(bac)n(kprop)d Fj(\003)p Fu(ann;)462
+3918 y Fa(if)7 b Fu(\(n)n(um)p 670 3918 V 24 w(neurons)p
+920 3918 V 22 w(hidden2\))p Fj(f)595 3984 y Fu(ann)22
+b(=)g Fa(new)i Fu(bac)n(kprop\(0.7,)c(n)n(um)p 1498 3984
+V 23 w(input,)h(n)n(um)p 1844 3984 V 23 w(output,)g(2,)i(n)n(um)p
+2305 3984 V 22 w(neurons)p 2553 3984 V 23 w(hidden1,)330
+4051 y(n)n(um)p 461 4051 V 23 w(neurons)p 710 4051 V
+23 w(hidden2\);)462 4117 y Fj(g)p Fa(else)p Fj(f)595
+4184 y Fu(ann)f(=)g Fa(new)i Fu(bac)n(kprop\(0.7,)c(n)n(um)p
+1498 4184 V 23 w(input,)h(n)n(um)p 1844 4184 V 23 w(output,)g(1,)i(n)n
+(um)p 2305 4184 V 22 w(neurons)p 2553 4184 V 23 w(hidden1\);)462
+4250 y Fj(g)462 4383 y Fu(calibrate)p 719 4383 V 23 w(timer\(\);)462
+4516 y Fa(while)p Fu(\(total)p 801 4516 V 25 w(elapsed)d
+Fk(<)j Fu(\()p Fa(double)p Fu(\)seconds)p 1623 4516 V
+22 w(of)p 1699 4516 V 23 w(training\))p Fj(f)595 4582
+y Fb(/)p Fj(\003)33 b Fb(tr)m(ain)h Fj(\003)p Fb(/)595
+4649 y Fu(elapsed)21 b(=)h(0;)595 4715 y(start)p 736
+4715 V 24 w(timer\(\);)595 4781 y Fa(while)p Fu(\(elapsed)f
+Fk(<)h Fu(\()p Fa(double)p Fu(\)seconds)p 1594 4781 V
+23 w(b)r(et)n(w)n(een)p 1852 4781 V 22 w(rep)r(orts\))p
+Fj(f)727 4848 y Fa(for)p Fu(\(i)g(=)g(0;)h(i)f Fj(6)p
+Fu(=)g(train)p 1293 4848 V 23 w(data)p Fj(!)p Fu(n)n(um)p
+1638 4848 V 23 w(data;)g(i++\))p Fj(f)859 4914 y Fu(ann)p
+Fj(!)p Fu(set)p 1118 4914 V 24 w(input\(train)p 1465
+4914 V 22 w(data)p Fj(!)p Fu(input[i]\);)859 4981 y(ann)p
+Fj(!)p Fu(train)p 1177 4981 V 23 w(on\(train)p 1437 4981
+V 23 w(data)p Fj(!)p Fu(output[i]\);)727 5047 y Fj(g)727
+5180 y Fu(elapsed)f(=)h(time)p 1167 5180 V 23 w(elapsed\(\);)727
+5246 y(ep)r(o)r(c)n(hs++;)595 5313 y Fj(g)595 5379 y
+Fu(stop)p 721 5379 V 24 w(timer\(\);)595 5446 y(total)p
+736 5446 V 23 w(elapsed)f(+=)i(getSecs\(\);)595 5578
+y Fb(/)p Fj(\003)33 b Fb(make)f(r)m(ep)m(ort)g Fj(\003)p
+Fb(/)595 5645 y Fu(clear)p 737 5645 V 22 w(error\(\);)p
+Black 1788 5919 a Fy(78)p Black eop end
+%%Page: 79 83
+TeXDict begin 79 82 bop Black 330 70 a Fp(B.3)82 b(Benc)n(hmark)27
+b(programs)1254 b(B)83 b(SOUR)n(CE)27 b(CODE)p 330 103
+3000 4 v Black 595 390 a Fa(for)p Fu(\(i)22 b(=)g(0;)g(i)g
+Fj(6)p Fu(=)h(train)p 1161 390 20 4 v 23 w(data)p Fj(!)p
+Fu(n)n(um)p 1506 390 V 23 w(data;)f(i++\))p Fj(f)727
+457 y Fu(ann)p Fj(!)p Fu(set)p 986 457 V 23 w(input\(train)p
+1332 457 V 22 w(data)p Fj(!)p Fu(input[i]\);)727 523
+y(output)f(=)i(ann)p Fj(!)p Fu(query)p 1358 523 V 22
+w(output\(\);)727 589 y(up)r(date)p 933 589 V 22 w(error\(output,)e
+(train)p 1499 589 V 23 w(data)p Fj(!)p Fu(output[i],)g(train)p
+2151 589 V 23 w(data)p Fj(!)p Fu(n)n(um)p 2496 589 V
+23 w(output\);)595 656 y Fj(g)595 722 y Fu(train)p 740
+722 V 23 w(error)h(=)g(mean)p 1154 722 V 23 w(error\(\);)595
+855 y(clear)p 737 855 V 22 w(error\(\);)595 922 y Fa(for)p
+Fu(\(i)g(=)g(0;)g(i)g Fj(6)p Fu(=)h(test)p 1128 922 V
+23 w(data)p Fj(!)p Fu(n)n(um)p 1473 922 V 23 w(data;)f(i++\))p
+Fj(f)727 988 y Fu(ann)p Fj(!)p Fu(set)p 986 988 V 23
+w(input\(test)p 1299 988 V 23 w(data)p Fj(!)p Fu(input[i]\);)727
+1054 y(output)f(=)i(ann)p Fj(!)p Fu(query)p 1358 1054
+V 22 w(output\(\);)727 1121 y(up)r(date)p 933 1121 V
+22 w(error\(output,)e(test)p 1466 1121 V 23 w(data)p
+Fj(!)p Fu(output[i],)g(test)p 2085 1121 V 23 w(data)p
+Fj(!)p Fu(n)n(um)p 2430 1121 V 23 w(output\);)595 1187
+y Fj(g)595 1254 y Fu(test)p 707 1254 V 23 w(error)h(=)g(mean)p
+1121 1254 V 23 w(error\(\);)595 1386 y(fprin)n(tf\(train)p
+951 1386 V 21 w(out,)g Fe("\045f)31 b(\045.20e)f(\045d)p
+Fj(n)p Fe(n")p Fu(,)22 b(total)p 1754 1386 V 23 w(elapsed,)f(train)p
+2170 1386 V 23 w(error,)h(ep)r(o)r(c)n(hs\);)595 1453
+y(fprin)n(tf\(test)p 918 1453 V 22 w(out,)g Fe("\045f)30
+b(\045.20e)g(\045d)p Fj(n)p Fe(n")p Fu(,)22 b(total)p
+1721 1453 V 24 w(elapsed,)e(test)p 2104 1453 V 24 w(error,)i(ep)r(o)r
+(c)n(hs\);)595 1519 y(fprin)n(tf\(stderr,)e Fe(".")p
+Fu(\);)462 1586 y Fj(g)462 1719 y Fa(delete)k Fu(ann;)330
+1785 y Fj(g)330 1918 y Fa(v)n(oid)d Fu(qualit)n(y)p 696
+1918 V 24 w(b)r(enc)n(hmark)p 1040 1918 V 21 w(fann\()p
+Fa(\015oat)g Fu(connection)p 1694 1918 V 21 w(rate,)462
+1984 y Fa(c)n(har)i Fj(\003)p Fu(\014lename,)462 2051
+y Fa(struct)h Fu(fann)p 812 2051 V 22 w(train)p 975 2051
+V 24 w(data)e Fj(\003)p Fu(train)p 1325 2051 V 23 w(data,)462
+2117 y Fa(struct)i Fu(fann)p 812 2117 V 22 w(train)p
+975 2117 V 24 w(data)e Fj(\003)p Fu(test)p 1292 2117
+V 23 w(data,)462 2183 y(FILE)g Fj(\003)p Fu(train)p 816
+2183 V 24 w(out,)f(FILE)h Fj(\003)p Fu(test)p 1293 2183
+V 24 w(out,)462 2250 y Fa(unsigned)g(in)n(t)g Fu(n)n(um)p
+1018 2250 V 23 w(input,)f Fa(unsigned)g(in)n(t)i Fu(n)n(um)p
+1789 2250 V 23 w(neurons)p 2038 2250 V 22 w(hidden1,)462
+2316 y Fa(unsigned)f(in)n(t)g Fu(n)n(um)p 1018 2316 V
+23 w(neurons)p 1267 2316 V 23 w(hidden2,)e Fa(unsigned)h(in)n(t)i
+Fu(n)n(um)p 2111 2316 V 23 w(output,)462 2383 y Fa(unsigned)f(in)n(t)g
+Fu(seconds)p 1110 2383 V 23 w(of)p 1187 2383 V 24 w(training,)f
+Fa(unsigned)g(in)n(t)h Fu(seconds)p 2124 2383 V 23 w(b)r(et)n(w)n(een)p
+2382 2383 V 23 w(rep)r(orts\))330 2449 y Fj(f)462 2516
+y Fa(\015oat)h Fu(train)p 776 2516 V 23 w(error,)e(test)p
+1088 2516 V 24 w(error;)462 2582 y Fa(unsigned)h(in)n(t)g
+Fu(i,)g(decimal)p 1174 2582 V 22 w(p)r(oin)n(t;)462 2648
+y Fa(unsigned)g(in)n(t)g Fu(ep)r(o)r(c)n(hs)f(=)h(0;)462
+2715 y Fa(double)g Fu(elapsed)f(=)h(0;)462 2781 y Fa(double)g
+Fu(total)p 844 2781 V 24 w(elapsed)f(=)h(0;)462 2848
+y(fann)p 594 2848 V 23 w(t)n(yp)r(e)g Fj(\003)p Fu(output;)462
+2914 y Fa(struct)i Fu(fann)d Fj(\003)p Fu(ann;)462 2980
+y Fa(c)n(har)i Fu(\014xed)p 770 2980 V 22 w(p)r(oin)n(t)p
+944 2980 V 23 w(\014le[256];)462 3113 y Fa(if)7 b Fu(\(n)n(um)p
+670 3113 V 24 w(neurons)p 920 3113 V 22 w(hidden2\))p
+Fj(f)595 3180 y Fu(ann)22 b(=)g(fann)p 929 3180 V 23
+w(create\(connection)p 1465 3180 V 20 w(rate,)f(0.7,)h(4,)727
+3246 y(n)n(um)p 858 3246 V 23 w(input,)f(n)n(um)p 1204
+3246 V 23 w(neurons)p 1453 3246 V 23 w(hidden1,)f(n)n(um)p
+1872 3246 V 23 w(neurons)p 2121 3246 V 22 w(hidden2,)h(n)n(um)p
+2540 3246 V 23 w(output\);)462 3313 y Fj(g)p Fa(else)p
+Fj(f)595 3379 y Fu(ann)h(=)g(fann)p 929 3379 V 23 w(create\(connection)
+p 1465 3379 V 20 w(rate,)f(0.7,)h(3,)727 3445 y(n)n(um)p
+858 3445 V 23 w(input,)f(n)n(um)p 1204 3445 V 23 w(neurons)p
+1453 3445 V 23 w(hidden1,)f(n)n(um)p 1872 3445 V 23 w(output\);)462
+3512 y Fj(g)462 3645 y Fu(calibrate)p 719 3645 V 23 w(timer\(\);)462
+3778 y Fa(while)p Fu(\(total)p 801 3778 V 25 w(elapsed)g
+Fk(<)j Fu(\()p Fa(double)p Fu(\)seconds)p 1623 3778 V
+22 w(of)p 1699 3778 V 23 w(training\))p Fj(f)595 3844
+y Fb(/)p Fj(\003)33 b Fb(tr)m(ain)h Fj(\003)p Fb(/)595
+3910 y Fu(elapsed)21 b(=)h(0;)595 3977 y(start)p 736
+3977 V 24 w(timer\(\);)595 4043 y Fa(while)p Fu(\(elapsed)f
+Fk(<)h Fu(\()p Fa(double)p Fu(\)seconds)p 1594 4043 V
+23 w(b)r(et)n(w)n(een)p 1852 4043 V 22 w(rep)r(orts\))p
+Fj(f)727 4110 y Fa(for)p Fu(\(i)g(=)g(0;)h(i)f Fj(6)p
+Fu(=)g(train)p 1293 4110 V 23 w(data)p Fj(!)p Fu(n)n(um)p
+1638 4110 V 23 w(data;)g(i++\))p Fj(f)859 4176 y Fu(fann)p
+991 4176 V 23 w(train\(ann,)f(train)p 1469 4176 V 24
+w(data)p Fj(!)p Fu(input[i],)f(train)p 2081 4176 V 23
+w(data)p Fj(!)p Fu(output[i]\);)727 4242 y Fj(g)727 4375
+y Fu(elapsed)h(=)h(time)p 1167 4375 V 23 w(elapsed\(\);)727
+4442 y(ep)r(o)r(c)n(hs++;)595 4508 y Fj(g)595 4575 y
+Fu(stop)p 721 4575 V 24 w(timer\(\);)595 4641 y(total)p
+736 4641 V 23 w(elapsed)f(+=)i(getSecs\(\);)595 4774
+y Fb(/)p Fj(\003)33 b Fb(make)f(r)m(ep)m(ort)g Fj(\003)p
+Fb(/)595 4840 y Fu(clear)p 737 4840 V 22 w(error\(\);)595
+4907 y Fa(for)p Fu(\(i)22 b(=)g(0;)g(i)g Fj(6)p Fu(=)h(train)p
+1161 4907 V 23 w(data)p Fj(!)p Fu(n)n(um)p 1506 4907
+V 23 w(data;)f(i++\))p Fj(f)727 4973 y Fu(output)f(=)i(fann)p
+1150 4973 V 23 w(run\(ann,)d(train)p 1586 4973 V 24 w(data)p
+Fj(!)p Fu(input[i]\);)727 5039 y(up)r(date)p 933 5039
+V 22 w(error\(output,)h(train)p 1499 5039 V 23 w(data)p
+Fj(!)p Fu(output[i],)g(train)p 2151 5039 V 23 w(data)p
+Fj(!)p Fu(n)n(um)p 2496 5039 V 23 w(output\);)595 5106
+y Fj(g)595 5172 y Fu(train)p 740 5172 V 23 w(error)h(=)g(mean)p
+1154 5172 V 23 w(error\(\);)595 5305 y(clear)p 737 5305
+V 22 w(error\(\);)595 5372 y Fa(for)p Fu(\(i)g(=)g(0;)g(i)g
+Fj(6)p Fu(=)h(test)p 1128 5372 V 23 w(data)p Fj(!)p Fu(n)n(um)p
+1473 5372 V 23 w(data;)f(i++\))p Fj(f)727 5438 y Fu(output)f(=)i(fann)p
+1150 5438 V 23 w(run\(ann,)d(test)p 1553 5438 V 24 w(data)p
+Fj(!)p Fu(input[i]\);)727 5504 y(up)r(date)p 933 5504
+V 22 w(error\(output,)h(test)p 1466 5504 V 23 w(data)p
+Fj(!)p Fu(output[i],)g(test)p 2085 5504 V 23 w(data)p
+Fj(!)p Fu(n)n(um)p 2430 5504 V 23 w(output\);)595 5571
+y Fj(g)595 5637 y Fu(test)p 707 5637 V 23 w(error)h(=)g(mean)p
+1121 5637 V 23 w(error\(\);)p Black 1788 5919 a Fy(79)p
+Black eop end
+%%Page: 80 84
+TeXDict begin 80 83 bop Black 330 70 a Fp(B.3)82 b(Benc)n(hmark)27
+b(programs)1254 b(B)83 b(SOUR)n(CE)27 b(CODE)p 330 103
+3000 4 v Black 595 457 a Fu(fprin)n(tf\(train)p 951 457
+20 4 v 21 w(out,)22 b Fe("\045f)31 b(\045.20e)f(\045d)p
+Fj(n)p Fe(n")p Fu(,)22 b(total)p 1754 457 V 23 w(elapsed,)f(train)p
+2170 457 V 23 w(error,)h(ep)r(o)r(c)n(hs\);)595 523 y(fprin)n(tf\(test)
+p 918 523 V 22 w(out,)g Fe("\045f)30 b(\045.20e)g(\045d)p
+Fj(n)p Fe(n")p Fu(,)22 b(total)p 1721 523 V 24 w(elapsed,)e(test)p
+2104 523 V 24 w(error,)i(ep)r(o)r(c)n(hs\);)595 589 y(fprin)n
+(tf\(stderr,)e Fe(".")p Fu(\);)595 722 y Fb(/)p Fj(\003)33
+b Fb(Save)g(the)g(data)g(as)g(\014xe)m(d)g(p)m(oint,)h(to)f(al)s(low)h
+(for)g(dr)m(awing)f(of)694 789 y(a)g(\014xe)m(d)g(p)m(oint)g(gr)m(aph)g
+Fj(\003)p Fb(/)595 855 y Fa(if)7 b Fu(\(connection)p
+988 855 V 21 w(rate)22 b(==)g(1\))p Fj(f)727 922 y Fb(/)p
+Fj(\003)33 b Fb(bu\013er)f(over\015ow)h(c)m(ould)f(o)m(c)m(cur)g(her)m
+(e)g Fj(\003)p Fb(/)727 988 y Fu(sprin)n(tf\(\014xed)p
+1087 988 V 22 w(p)r(oin)n(t)p 1261 988 V 23 w(\014le,)21
+b Fe("\04505d)p 1566 988 19 4 v 21 w(\045f)p 1649 988
+V 22 w(\045s)p 1733 988 V 22 w(fixed")p Fu(,)h(ep)r(o)r(c)n(hs,)e
+(total)p 2353 988 20 4 v 24 w(elapsed,)h(\014lename\);)727
+1054 y(decimal)p 954 1054 V 22 w(p)r(oin)n(t)g(=)i(fann)p
+1351 1054 V 23 w(sa)n(v)n(e)p 1494 1054 V 24 w(to)p 1577
+1054 V 24 w(\014xed\(ann,)d(\014xed)p 2053 1054 V 22
+w(p)r(oin)n(t)p 2227 1054 V 23 w(\014le\);)727 1187 y(sprin)n
+(tf\(\014xed)p 1087 1187 V 22 w(p)r(oin)n(t)p 1261 1187
+V 23 w(\014le,)h Fe("\045s)p 1504 1187 19 4 v 22 w(fixed)p
+1681 1187 V 21 w(train)p 1857 1187 V 22 w(\045d")p Fu(,)h(\014lename,)d
+(decimal)p 2516 1187 20 4 v 22 w(p)r(oin)n(t\);)727 1254
+y(fann)p 859 1254 V 23 w(sa)n(v)n(e)p 1002 1254 V 24
+w(train)p 1167 1254 V 23 w(to)p 1249 1254 V 24 w(\014xed\(train)p
+1580 1254 V 22 w(data,)j(\014xed)p 1912 1254 V 22 w(p)r(oin)n(t)p
+2086 1254 V 23 w(\014le,)g(decimal)p 2460 1254 V 21 w(p)r(oin)n(t\);)
+727 1386 y(sprin)n(tf\(\014xed)p 1087 1386 V 22 w(p)r(oin)n(t)p
+1261 1386 V 23 w(\014le,)f Fe("\045s)p 1504 1386 19 4
+v 22 w(fixed)p 1681 1386 V 21 w(test)p 1826 1386 V 22
+w(\045d")p Fu(,)h(\014lename,)e(decimal)p 2486 1386 20
+4 v 21 w(p)r(oin)n(t\);)727 1453 y(fann)p 859 1453 V
+23 w(sa)n(v)n(e)p 1002 1453 V 24 w(train)p 1167 1453
+V 23 w(to)p 1249 1453 V 24 w(\014xed\(test)p 1547 1453
+V 22 w(data,)i(\014xed)p 1879 1453 V 23 w(p)r(oin)n(t)p
+2054 1453 V 23 w(\014le,)f(decimal)p 2427 1453 V 22 w(p)r(oin)n(t\);)
+595 1519 y Fj(g)462 1586 y(g)462 1719 y Fu(fann)p 594
+1719 V 23 w(destro)n(y\(ann\);)330 1785 y Fj(g)330 1918
+y Fa(v)n(oid)g Fu(qualit)n(y)p 696 1918 V 24 w(b)r(enc)n(hmark)p
+1040 1918 V 21 w(lwnn\()462 1984 y Fa(struct)j Fu(fann)p
+812 1984 V 22 w(train)p 975 1984 V 24 w(data)e Fj(\003)p
+Fu(train)p 1325 1984 V 23 w(data,)462 2051 y Fa(struct)i
+Fu(fann)p 812 2051 V 22 w(train)p 975 2051 V 24 w(data)e
+Fj(\003)p Fu(test)p 1292 2051 V 23 w(data,)462 2117 y(FILE)g
+Fj(\003)p Fu(train)p 816 2117 V 24 w(out,)f(FILE)h Fj(\003)p
+Fu(test)p 1293 2117 V 24 w(out,)462 2183 y Fa(unsigned)g(in)n(t)g
+Fu(n)n(um)p 1018 2183 V 23 w(input,)f Fa(unsigned)g(in)n(t)i
+Fu(n)n(um)p 1789 2183 V 23 w(neurons)p 2038 2183 V 22
+w(hidden1,)462 2250 y Fa(unsigned)f(in)n(t)g Fu(n)n(um)p
+1018 2250 V 23 w(neurons)p 1267 2250 V 23 w(hidden2,)e
+Fa(unsigned)h(in)n(t)i Fu(n)n(um)p 2111 2250 V 23 w(output,)462
+2316 y Fa(unsigned)f(in)n(t)g Fu(seconds)p 1110 2316
+V 23 w(of)p 1187 2316 V 24 w(training,)f Fa(unsigned)g(in)n(t)h
+Fu(seconds)p 2124 2316 V 23 w(b)r(et)n(w)n(een)p 2382
+2316 V 23 w(rep)r(orts\))330 2383 y Fj(f)462 2449 y Fa(\015oat)h
+Fu(train)p 776 2449 V 23 w(error)f(=)g(0;)462 2516 y
+Fa(\015oat)h Fu(test)p 743 2516 V 23 w(error)f(=)g(0;)462
+2582 y Fa(unsigned)g(in)n(t)g Fu(i;)462 2648 y Fa(unsigned)g(in)n(t)g
+Fu(ep)r(o)r(c)n(hs)f(=)h(0;)462 2715 y Fa(double)g Fu(elapsed)f(=)h(0;)
+462 2781 y Fa(double)g Fu(total)p 844 2781 V 24 w(elapsed)f(=)h(0;)462
+2848 y(fann)p 594 2848 V 23 w(t)n(yp)r(e)g Fj(\003)p
+Fu(output;)462 2914 y(net)n(w)n(ork)p 696 2914 V 24 w(t)g
+Fj(\003)p Fu(ann;)462 3047 y Fa(if)7 b Fu(\(n)n(um)p
+670 3047 V 24 w(neurons)p 920 3047 V 22 w(hidden2\))p
+Fj(f)595 3113 y Fu(ann)22 b(=)g(net)p 894 3113 V 23 w(allo)r(cate)f
+(\(4,)h(n)n(um)p 1390 3113 V 23 w(input,)f(n)n(um)p 1736
+3113 V 23 w(neurons)p 1985 3113 V 22 w(hidden1,)g(n)n(um)p
+2404 3113 V 22 w(neurons)p 2652 3113 V 23 w(hidden2,)f(n)n(um)p
+3071 3113 V 23 w(output\);)462 3180 y Fj(g)p Fa(else)p
+Fj(f)595 3246 y Fu(ann)i(=)g(net)p 894 3246 V 23 w(allo)r(cate)f(\(3,)h
+(n)n(um)p 1390 3246 V 23 w(input,)f(n)n(um)p 1736 3246
+V 23 w(neurons)p 1985 3246 V 22 w(hidden1,)g(n)n(um)p
+2404 3246 V 23 w(output\);)462 3313 y Fj(g)462 3445 y
+Fu(net)p 559 3445 V 23 w(set)p 664 3445 V 24 w(learning)p
+922 3445 V 22 w(rate\(ann,)g(0.7\);)462 3578 y(calibrate)p
+719 3578 V 23 w(timer\(\);)462 3711 y(output)h(=)g(\(fann)p
+911 3711 V 23 w(t)n(yp)r(e)f Fj(\003)p Fu(\)callo)r(c\(n)n(um)p
+1462 3711 V 22 w(output,)g Fa(sizeof)7 b Fu(\(fann)p
+2060 3711 V 23 w(t)n(yp)r(e\)\);)462 3844 y Fa(while)p
+Fu(\(total)p 801 3844 V 25 w(elapsed)20 b Fk(<)j Fu(\()p
+Fa(double)p Fu(\)seconds)p 1623 3844 V 22 w(of)p 1699
+3844 V 23 w(training\))p Fj(f)595 3910 y Fb(/)p Fj(\003)33
+b Fb(tr)m(ain)h Fj(\003)p Fb(/)595 3977 y Fu(elapsed)21
+b(=)h(0;)595 4043 y(start)p 736 4043 V 24 w(timer\(\);)595
+4110 y Fa(while)p Fu(\(elapsed)f Fk(<)h Fu(\()p Fa(double)p
+Fu(\)seconds)p 1594 4110 V 23 w(b)r(et)n(w)n(een)p 1852
+4110 V 22 w(rep)r(orts\))p Fj(f)727 4176 y Fa(for)p Fu(\(i)g(=)g(0;)h
+(i)f Fj(6)p Fu(=)g(train)p 1293 4176 V 23 w(data)p Fj(!)p
+Fu(n)n(um)p 1638 4176 V 23 w(data;)g(i++\))p Fj(f)859
+4242 y Fb(/)p Fj(\003)34 b Fb(c)m(ompute)d(the)i(outputs)g(for)h
+(inputs\(i\))h Fj(\003)p Fb(/)859 4309 y Fu(net)p 956
+4309 V 23 w(compute)21 b(\(ann,)g(train)p 1562 4309 V
+24 w(data)p Fj(!)p Fu(input[i],)f(output\);)859 4442
+y Fb(/)p Fj(\003)34 b Fb(\014nd)g(the)f(err)m(or)f(with)i(r)m(esp)m(e)m
+(ct)d(to)j(tar)m(gets\(i\))f Fj(\003)p Fb(/)859 4508
+y Fu(net)p 956 4508 V 23 w(compute)p 1227 4508 V 22 w(output)p
+1445 4508 V 23 w(error)22 b(\(ann,)f(train)p 1945 4508
+V 24 w(data)p Fj(!)p Fu(output[i]\);)859 4641 y Fb(/)p
+Fj(\003)34 b Fb(tr)m(ain)f(the)g(network)h(one)f(step)g
+Fj(\003)p Fb(/)859 4707 y Fu(net)p 956 4707 V 23 w(train)22
+b(\(ann\);)727 4774 y Fj(g)727 4907 y Fu(elapsed)f(=)h(time)p
+1167 4907 V 23 w(elapsed\(\);)727 4973 y(ep)r(o)r(c)n(hs++;)595
+5039 y Fj(g)595 5106 y Fu(stop)p 721 5106 V 24 w(timer\(\);)595
+5172 y(total)p 736 5172 V 23 w(elapsed)f(+=)i(getSecs\(\);)595
+5305 y Fb(/)p Fj(\003)33 b Fb(make)f(r)m(ep)m(ort)g Fj(\003)p
+Fb(/)595 5438 y Fu(clear)p 737 5438 V 22 w(error\(\);)595
+5504 y Fa(for)p Fu(\(i)22 b(=)g(0;)g(i)g Fj(6)p Fu(=)h(train)p
+1161 5504 V 23 w(data)p Fj(!)p Fu(n)n(um)p 1506 5504
+V 23 w(data;)f(i++\))p Fj(f)727 5571 y Fu(net)p 824 5571
+V 23 w(compute)e(\(ann,)i(train)p 1430 5571 V 23 w(data)p
+Fj(!)p Fu(input[i],)f(output\);)727 5637 y(up)r(date)p
+933 5637 V 22 w(error\(output,)g(train)p 1499 5637 V
+23 w(data)p Fj(!)p Fu(output[i],)g(train)p 2151 5637
+V 23 w(data)p Fj(!)p Fu(n)n(um)p 2496 5637 V 23 w(output\);)p
+Black 1788 5919 a Fy(80)p Black eop end
+%%Page: 81 85
+TeXDict begin 81 84 bop Black 330 70 a Fp(B.3)82 b(Benc)n(hmark)27
+b(programs)1254 b(B)83 b(SOUR)n(CE)27 b(CODE)p 330 103
+3000 4 v Black 595 390 a Fj(g)595 457 y Fu(train)p 740
+457 20 4 v 23 w(error)22 b(=)g(mean)p 1154 457 V 23 w(error\(\);)595
+589 y(clear)p 737 589 V 22 w(error\(\);)595 656 y Fa(for)p
+Fu(\(i)g(=)g(0;)g(i)g Fj(6)p Fu(=)h(test)p 1128 656 V
+23 w(data)p Fj(!)p Fu(n)n(um)p 1473 656 V 23 w(data;)f(i++\))p
+Fj(f)727 722 y Fu(net)p 824 722 V 23 w(compute)e(\(ann,)i(test)p
+1397 722 V 23 w(data)p Fj(!)p Fu(input[i],)f(output\);)727
+789 y(up)r(date)p 933 789 V 22 w(error\(output,)g(test)p
+1466 789 V 23 w(data)p Fj(!)p Fu(output[i],)g(test)p
+2085 789 V 23 w(data)p Fj(!)p Fu(n)n(um)p 2430 789 V
+23 w(output\);)595 855 y Fj(g)595 922 y Fu(test)p 707
+922 V 23 w(error)h(=)g(mean)p 1121 922 V 23 w(error\(\);)595
+1121 y(fprin)n(tf\(train)p 951 1121 V 21 w(out,)g Fe("\045f)31
+b(\045.20e)f(\045d)p Fj(n)p Fe(n")p Fu(,)22 b(total)p
+1754 1121 V 23 w(elapsed,)f(train)p 2170 1121 V 23 w(error,)h(ep)r(o)r
+(c)n(hs\);)595 1187 y(fprin)n(tf\(test)p 918 1187 V 22
+w(out,)g Fe("\045f)30 b(\045.20e)g(\045d)p Fj(n)p Fe(n")p
+Fu(,)22 b(total)p 1721 1187 V 24 w(elapsed,)e(test)p
+2104 1187 V 24 w(error,)i(ep)r(o)r(c)n(hs\);)595 1254
+y(fprin)n(tf\(stderr,)e Fe(".")p Fu(\);)462 1320 y Fj(g)462
+1453 y Fu(net)p 559 1453 V 23 w(free\(ann\);)330 1519
+y Fj(g)330 1652 y Fa(in)n(t)j Fu(main\()p Fa(in)n(t)e
+Fu(argc,)h Fa(c)n(har)p Fj(\003)g Fu(argv[]\))330 1719
+y Fj(f)462 1785 y Fb(/)p Fj(\003)34 b Fb(p)m(ar)m(ameters)d
+Fj(\003)p Fb(/)462 1851 y Fa(unsigned)22 b(in)n(t)g Fu(n)n(um)p
+1018 1851 V 23 w(neurons)p 1267 1851 V 23 w(hidden1;)462
+1918 y Fa(unsigned)g(in)n(t)g Fu(n)n(um)p 1018 1918 V
+23 w(neurons)p 1267 1918 V 23 w(hidden2;)462 1984 y Fa(unsigned)g(in)n
+(t)g Fu(seconds)p 1110 1984 V 23 w(of)p 1187 1984 V 24
+w(training;)462 2051 y Fa(unsigned)g(in)n(t)g Fu(seconds)p
+1110 2051 V 23 w(b)r(et)n(w)n(een)p 1368 2051 V 22 w(rep)r(orts;)462
+2183 y Fa(struct)i Fu(fann)p 812 2183 V 22 w(train)p
+975 2183 V 24 w(data)e Fj(\003)p Fu(train)p 1325 2183
+V 23 w(data,)g Fj(\003)p Fu(test)p 1660 2183 V 24 w(data;)462
+2250 y(FILE)g Fj(\003)p Fu(train)p 816 2250 V 24 w(out,)f
+Fj(\003)p Fu(test)p 1118 2250 V 24 w(out;)462 2383 y
+Fa(if)7 b Fu(\(argc)23 b Fj(6)p Fu(=)f(10\))p Fj(f)595
+2449 y Fu(prin)n(tf\()p Fe("usage)29 b(\045s)h(net)h(train)p
+1375 2449 19 4 v 21 w(file)g(test)p 1675 2449 V 21 w(file)g(train)p
+2006 2449 V 21 w(file)p 2151 2449 V 22 w(out)g(test)p
+2421 2449 V 21 w(file)p 2566 2449 V 22 w(out)g(num)p
+2805 2449 V 21 w(hidden1)330 2516 y(num)p 427 2516 V
+22 w(hidden2)f(seconds)p 913 2516 V 21 w(of)p 996 2516
+V 22 w(training)g(seconds)p 1513 2516 V 21 w(between)p
+1751 2516 V 22 w(reports)p Fj(n)p Fe(n")p Fu(,)21 b(argv[0]\);)595
+2582 y Fa(return)i Fu(-1;)462 2648 y Fj(g)462 2781 y
+Fu(n)n(um)p 593 2781 20 4 v 23 w(neurons)p 842 2781 V
+23 w(hidden1)d(=)j(atoi\(argv[6]\);)462 2848 y(n)n(um)p
+593 2848 V 23 w(neurons)p 842 2848 V 23 w(hidden2)d(=)j
+(atoi\(argv[7]\);)462 2914 y(seconds)p 685 2914 V 23
+w(of)p 762 2914 V 24 w(training)e(=)h(atoi\(argv[8]\);)462
+2980 y(seconds)p 685 2980 V 23 w(b)r(et)n(w)n(een)p 943
+2980 V 23 w(rep)r(orts)f(=)h(atoi\(argv[9]\);)462 3113
+y(train)p 607 3113 V 24 w(data)g(=)g(fann)p 983 3113
+V 23 w(read)p 1132 3113 V 23 w(train)p 1296 3113 V 23
+w(from)p 1454 3113 V 23 w(\014le\(argv[2]\);)462 3180
+y(test)p 574 3180 V 24 w(data)g(=)g(fann)p 950 3180 V
+23 w(read)p 1099 3180 V 23 w(train)p 1263 3180 V 24 w(from)p
+1422 3180 V 23 w(\014le\(argv[3]\);)462 3313 y Fa(if)7
+b Fu(\(strlen\(argv[4]\))22 b(==)g(1)h(&&)f(argv[4][0])g(==)g('-'\))p
+Fj(f)595 3379 y Fu(train)p 740 3379 V 23 w(out)g(=)g(stdout;)462
+3445 y Fj(g)p Fa(else)p Fj(f)595 3512 y Fu(train)p 740
+3512 V 23 w(out)g(=)g(fop)r(en\(argv[4],)f Fe("w")p Fu(\);)462
+3578 y Fj(g)462 3711 y Fa(if)7 b Fu(\(strlen\(argv[5]\))22
+b(==)g(1)h(&&)f(argv[5][0])g(==)g('-'\))p Fj(f)595 3778
+y Fu(test)p 707 3778 V 23 w(out)g(=)h(stdout;)462 3844
+y Fj(g)p Fa(else)p Fj(f)595 3910 y Fu(test)p 707 3910
+V 23 w(out)f(=)h(fop)r(en\(argv[5],)d Fe("w")p Fu(\);)462
+3977 y Fj(g)462 4110 y Fu(fprin)n(tf\(stderr,)g Fe("Quality)30
+b(test)g(of)h(\045s)g(\045s)f(")p Fu(,)22 b(argv[1],)g(argv[2]\);)462
+4242 y Fa(if)7 b Fu(\(strcmp\(argv[1],)21 b Fe("lwnn")p
+Fu(\))h(==)g(0\))p Fj(f)595 4309 y Fu(qualit)n(y)p 801
+4309 V 23 w(b)r(enc)n(hmark)p 1144 4309 V 21 w(lwnn\(train)p
+1472 4309 V 23 w(data,)g(test)p 1773 4309 V 23 w(data,)727
+4375 y(train)p 872 4375 V 23 w(out,)g(test)p 1140 4375
+V 24 w(out,)727 4442 y(train)p 872 4442 V 23 w(data)p
+Fj(!)p Fu(n)n(um)p 1217 4442 V 23 w(input,)f(n)n(um)p
+1563 4442 V 23 w(neurons)p 1812 4442 V 23 w(hidden1,)727
+4508 y(n)n(um)p 858 4508 V 23 w(neurons)p 1107 4508 V
+23 w(hidden2,)f(train)p 1540 4508 V 23 w(data)p Fj(!)p
+Fu(n)n(um)p 1885 4508 V 23 w(output,)727 4575 y(seconds)p
+950 4575 V 23 w(of)p 1027 4575 V 24 w(training,)h(seconds)p
+1540 4575 V 23 w(b)r(et)n(w)n(een)p 1798 4575 V 22 w(rep)r(orts\);)462
+4641 y Fj(g)p Fa(else)i(if)7 b Fu(\(strcmp\(argv[1],)21
+b Fe("fann")p Fu(\))h(==)g(0\))p Fj(f)595 4707 y Fu(qualit)n(y)p
+801 4707 V 23 w(b)r(enc)n(hmark)p 1144 4707 V 21 w(fann\(1,)f(argv[4],)
+h(train)p 1772 4707 V 24 w(data,)f(test)p 2073 4707 V
+24 w(data,)727 4774 y(train)p 872 4774 V 23 w(out,)h(test)p
+1140 4774 V 24 w(out,)727 4840 y(train)p 872 4840 V 23
+w(data)p Fj(!)p Fu(n)n(um)p 1217 4840 V 23 w(input,)f(n)n(um)p
+1563 4840 V 23 w(neurons)p 1812 4840 V 23 w(hidden1,)727
+4907 y(n)n(um)p 858 4907 V 23 w(neurons)p 1107 4907 V
+23 w(hidden2,)f(train)p 1540 4907 V 23 w(data)p Fj(!)p
+Fu(n)n(um)p 1885 4907 V 23 w(output,)727 4973 y(seconds)p
+950 4973 V 23 w(of)p 1027 4973 V 24 w(training,)h(seconds)p
+1540 4973 V 23 w(b)r(et)n(w)n(een)p 1798 4973 V 22 w(rep)r(orts\);)462
+5039 y Fj(g)p Fa(else)i(if)7 b Fu(\(strcmp\(argv[1],)21
+b Fe("fann)p 1338 5039 19 4 v 22 w(half")p Fu(\))h(==)g(0\))p
+Fj(f)595 5106 y Fu(qualit)n(y)p 801 5106 20 4 v 23 w(b)r(enc)n(hmark)p
+1144 5106 V 21 w(fann\(0.75,)f(NULL,)i(train)p 1840 5106
+V 23 w(data,)f(test)p 2141 5106 V 23 w(data,)727 5172
+y(train)p 872 5172 V 23 w(out,)g(test)p 1140 5172 V 24
+w(out,)727 5239 y(train)p 872 5239 V 23 w(data)p Fj(!)p
+Fu(n)n(um)p 1217 5239 V 23 w(input,)f(n)n(um)p 1563 5239
+V 23 w(neurons)p 1812 5239 V 23 w(hidden1,)727 5305 y(n)n(um)p
+858 5305 V 23 w(neurons)p 1107 5305 V 23 w(hidden2,)f(train)p
+1540 5305 V 23 w(data)p Fj(!)p Fu(n)n(um)p 1885 5305
+V 23 w(output,)727 5372 y(seconds)p 950 5372 V 23 w(of)p
+1027 5372 V 24 w(training,)h(seconds)p 1540 5372 V 23
+w(b)r(et)n(w)n(een)p 1798 5372 V 22 w(rep)r(orts\);)462
+5438 y Fj(g)p Fa(else)i(if)7 b Fu(\(strcmp\(argv[1],)21
+b Fe("jneural")p Fu(\))h(==)g(0\))p Fj(f)595 5504 y Fu(qualit)n(y)p
+801 5504 V 23 w(b)r(enc)n(hmark)p 1144 5504 V 21 w(jneural\(train)p
+1535 5504 V 22 w(data,)g(test)p 1835 5504 V 23 w(data,)727
+5571 y(train)p 872 5571 V 23 w(out,)g(test)p 1140 5571
+V 24 w(out,)727 5637 y(train)p 872 5637 V 23 w(data)p
+Fj(!)p Fu(n)n(um)p 1217 5637 V 23 w(input,)f(n)n(um)p
+1563 5637 V 23 w(neurons)p 1812 5637 V 23 w(hidden1,)p
+Black 1788 5919 a Fy(81)p Black eop end
+%%Page: 82 86
+TeXDict begin 82 85 bop Black 330 70 a Fp(B.3)82 b(Benc)n(hmark)27
+b(programs)1254 b(B)83 b(SOUR)n(CE)27 b(CODE)p 330 103
+3000 4 v Black 727 390 a Fu(n)n(um)p 858 390 20 4 v 23
+w(neurons)p 1107 390 V 23 w(hidden2,)20 b(train)p 1540
+390 V 23 w(data)p Fj(!)p Fu(n)n(um)p 1885 390 V 23 w(output,)727
+457 y(seconds)p 950 457 V 23 w(of)p 1027 457 V 24 w(training,)h
+(seconds)p 1540 457 V 23 w(b)r(et)n(w)n(een)p 1798 457
+V 22 w(rep)r(orts\);)462 523 y Fj(g)462 656 y Fu(fprin)n(tf\(stderr,)f
+Fe(")p Fj(n)p Fe(n")p Fu(\);)462 789 y(fann)p 594 789
+V 23 w(destro)n(y)p 828 789 V 24 w(train\(train)p 1160
+789 V 22 w(data\);)462 855 y(fann)p 594 855 V 23 w(destro)n(y)p
+828 855 V 24 w(train\(test)p 1127 855 V 23 w(data\);)462
+988 y Fa(return)j Fu(0;)330 1054 y Fj(g)p Black 1788
+5919 a Fy(82)p Black eop end
+%%Page: 83 87
+TeXDict begin 83 86 bop Black 330 70 a Fp(B.3)82 b(Benc)n(hmark)27
+b(programs)1254 b(B)83 b(SOUR)n(CE)27 b(CODE)p 330 103
+3000 4 v Black 330 390 a Fs(B.3.2)94 b Ft(quality)p 955
+390 27 4 v 28 w(fixed.c)p Black Black 330 510 a Fe(#include)21
+b Fk(<)p Fe(stdio.h)p Fk(>)330 577 y Fe(#include)g Fu(")p
+Fe(fixedfann.h)p Fu(")330 709 y Fa(in)n(t)i Fu(main\()p
+Fa(in)n(t)e Fu(argc,)h Fa(c)n(har)p Fj(\003)g Fu(argv[]\))330
+776 y Fj(f)462 842 y Fa(struct)i Fu(fann)p 812 842 20
+4 v 22 w(train)p 975 842 V 24 w(data)e Fj(\003)p Fu(train)p
+1325 842 V 23 w(data,)g Fj(\003)p Fu(test)p 1660 842
+V 24 w(data;)462 909 y(FILE)g Fj(\003)p Fu(train)p 816
+909 V 24 w(out,)f Fj(\003)p Fu(test)p 1118 909 V 24 w(out;)462
+975 y Fa(struct)j Fu(fann)d Fj(\003)p Fu(ann;)462 1042
+y Fa(\015oat)i Fu(train)p 776 1042 V 23 w(error,)e(test)p
+1088 1042 V 24 w(error;)462 1108 y Fa(unsigned)h(in)n(t)g
+Fu(i,)g(j;)462 1174 y Fa(unsigned)g(in)n(t)g Fu(ep)r(o)r(c)n(hs)f(=)h
+(0;)462 1241 y Fa(double)g Fu(total)p 844 1241 V 24 w(elapsed)f(=)h(0;)
+462 1307 y Fa(c)n(har)h Fu(\014le[256];)462 1440 y Fa(if)7
+b Fu(\(argc)23 b Fk(<)f Fu(6\))p Fj(f)595 1507 y Fu(prin)n(tf\()p
+Fe("usage)29 b(\045s)h(train)p 1251 1507 19 4 v 22 w(file)g(test)p
+1551 1507 V 22 w(file)g(train)p 1882 1507 V 22 w(file)p
+2028 1507 V 22 w(out)g(test)p 2297 1507 V 22 w(file)p
+2443 1507 V 22 w(out)g(fixed)p 2743 1507 V 22 w(conf)p
+2889 1507 V 21 w(files)p Fj(n)p Fe(n")p Fu(,)330 1573
+y(argv[0]\);)595 1639 y Fa(return)23 b Fu(-1;)462 1706
+y Fj(g)462 1839 y Fa(if)7 b Fu(\(strlen\(argv[3]\))22
+b(==)g(1)h(&&)f(argv[3][0])g(==)g('-'\))p Fj(f)595 1905
+y Fu(train)p 740 1905 20 4 v 23 w(out)g(=)g(stdout;)462
+1971 y Fj(g)p Fa(else)p Fj(f)595 2038 y Fu(train)p 740
+2038 V 23 w(out)g(=)g(fop)r(en\(argv[3],)f Fe("w")p Fu(\);)462
+2104 y Fj(g)462 2237 y Fa(if)7 b Fu(\(strlen\(argv[4]\))22
+b(==)g(1)h(&&)f(argv[4][0])g(==)g('-'\))p Fj(f)595 2304
+y Fu(test)p 707 2304 V 23 w(out)g(=)h(stdout;)462 2370
+y Fj(g)p Fa(else)p Fj(f)595 2436 y Fu(test)p 707 2436
+V 23 w(out)f(=)h(fop)r(en\(argv[4],)d Fe("w")p Fu(\);)462
+2503 y Fj(g)462 2636 y Fa(for)p Fu(\(j)i(=)g(5;)h(j)f
+Fk(<)g Fu(argc;)g(j++\))p Fj(f)595 2702 y Fu(ann)g(=)g(fann)p
+929 2702 V 23 w(create)p 1127 2702 V 22 w(from)p 1284
+2702 V 23 w(\014le\(argv[j]\);)595 2835 y(sprin)n(tf\(\014le,)e
+Fe("\045s)p 1034 2835 19 4 v 22 w(\045d")p Fu(,)i(argv[1],)f(fann)p
+1556 2835 20 4 v 23 w(get)p 1668 2835 V 24 w(decimal)p
+1915 2835 V 21 w(p)r(oin)n(t\(ann\)\);)595 2901 y(train)p
+740 2901 V 23 w(data)h(=)h(fann)p 1116 2901 V 22 w(read)p
+1264 2901 V 23 w(train)p 1428 2901 V 24 w(from)p 1587
+2901 V 23 w(\014le\(\014le\);)595 3034 y(sprin)n(tf\(\014le,)d
+Fe("\045s)p 1034 3034 19 4 v 22 w(\045d")p Fu(,)i(argv[2],)f(fann)p
+1556 3034 20 4 v 23 w(get)p 1668 3034 V 24 w(decimal)p
+1915 3034 V 21 w(p)r(oin)n(t\(ann\)\);)595 3101 y(test)p
+707 3101 V 23 w(data)h(=)h(fann)p 1083 3101 V 23 w(read)p
+1232 3101 V 23 w(train)p 1396 3101 V 23 w(from)p 1554
+3101 V 23 w(\014le\(\014le\);)595 3233 y(fann)p 727 3233
+V 23 w(reset)p 888 3233 V 23 w(error\(ann\);)595 3300
+y Fa(for)p Fu(\(i)f(=)g(0;)g(i)g Fj(6)p Fu(=)h(train)p
+1161 3300 V 23 w(data)p Fj(!)p Fu(n)n(um)p 1506 3300
+V 23 w(data;)f(i++\))p Fj(f)727 3366 y Fu(fann)p 859
+3366 V 23 w(test\(ann,)f(train)p 1304 3366 V 23 w(data)p
+Fj(!)p Fu(input[i],)g(train)p 1916 3366 V 23 w(data)p
+Fj(!)p Fu(output[i]\);)595 3433 y Fj(g)595 3499 y Fu(train)p
+740 3499 V 23 w(error)h(=)g(fann)p 1127 3499 V 23 w(get)p
+1239 3499 V 23 w(error\(ann\);)595 3632 y(fann)p 727
+3632 V 23 w(reset)p 888 3632 V 23 w(error\(ann\);)595
+3698 y Fa(for)p Fu(\(i)g(=)g(0;)g(i)g Fj(6)p Fu(=)h(test)p
+1128 3698 V 23 w(data)p Fj(!)p Fu(n)n(um)p 1473 3698
+V 23 w(data;)f(i++\))p Fj(f)727 3765 y Fu(fann)p 859
+3765 V 23 w(test\(ann,)f(test)p 1271 3765 V 24 w(data)p
+Fj(!)p Fu(input[i],)f(test)p 1850 3765 V 24 w(data)p
+Fj(!)p Fu(output[i]\);)595 3831 y Fj(g)595 3898 y Fu(test)p
+707 3898 V 23 w(error)i(=)g(fann)p 1094 3898 V 23 w(get)p
+1206 3898 V 24 w(error\(ann\);)595 4030 y(sscanf\(argv[j],)f
+Fe("\045d)p 1117 4030 19 4 v 21 w(\045lf")p Fu(,)h(&ep)r(o)r(c)n(hs,)f
+(&total)p 1777 4030 20 4 v 23 w(elapsed\);)595 4097 y(fprin)n
+(tf\(train)p 951 4097 V 21 w(out,)h Fe("\045f)31 b(\045.20e)f(\045d)p
+Fj(n)p Fe(n")p Fu(,)22 b(total)p 1754 4097 V 23 w(elapsed,)f(train)p
+2170 4097 V 23 w(error,)h(ep)r(o)r(c)n(hs\);)595 4163
+y(fprin)n(tf\(test)p 918 4163 V 22 w(out,)g Fe("\045f)30
+b(\045.20e)g(\045d)p Fj(n)p Fe(n")p Fu(,)22 b(total)p
+1721 4163 V 24 w(elapsed,)e(test)p 2104 4163 V 24 w(error,)i(ep)r(o)r
+(c)n(hs\);)595 4230 y(fprin)n(tf\(stderr,)e Fe(".")p
+Fu(\);)595 4362 y(fann)p 727 4362 V 23 w(destro)n(y\(ann\);)462
+4429 y Fj(g)462 4562 y Fa(return)j Fu(0;)330 4628 y Fj(g)p
+Black 1788 5919 a Fy(83)p Black eop end
+%%Page: 84 88
+TeXDict begin 84 87 bop Black 330 70 a Fp(B.3)82 b(Benc)n(hmark)27
+b(programs)1254 b(B)83 b(SOUR)n(CE)27 b(CODE)p 330 103
+3000 4 v Black 330 390 a Fs(B.3.3)94 b Ft(performance.cc)p
+Black Black 330 510 a Fe(#include)21 b Fk(<)p Fe(stdio.h)p
+Fk(>)330 577 y Fe(#include)g Fk(<)p Fe(stdlib.h)p Fk(>)330
+643 y Fe(#include)g Fk(<)p Fe(string.h)p Fk(>)330 709
+y Fe(#include)g Fu(")p Fe(ctimer.h)p Fu(")330 842 y Fe(#ifndef)g
+Fu(FIXEDF)-7 b(ANN)330 975 y Fe(#include)21 b Fu(")p
+Fe(nets/backprop.h)p Fu(")330 1042 y Fe(#include)g Fu(")p
+Fe(lwneuralnet.h)p Fu(")330 1174 y Fa(v)n(oid)g Fu(p)r(erformance)p
+854 1174 20 4 v 21 w(b)r(enc)n(hmark)p 1195 1174 V 21
+w(jneural\(FILE)g Fj(\003)p Fu(out,)g(fann)p 1917 1174
+V 23 w(t)n(yp)r(e)h Fj(\003)p Fu(input,)462 1241 y Fa(unsigned)g(in)n
+(t)g Fu(n)n(um)p 1018 1241 V 23 w(neurons,)f Fa(unsigned)g(in)n(t)i
+Fu(seconds)p 1951 1241 V 23 w(p)r(er)p 2069 1241 V 22
+w(test\))330 1307 y Fj(f)462 1374 y Fa(unsigned)f(in)n(t)g
+Fu(i,)g(total)p 1088 1374 V 24 w(connections;)462 1440
+y(fann)p 594 1440 V 23 w(t)n(yp)r(e)g Fj(\003)p Fu(output;)462
+1573 y(bac)n(kprop)f Fj(\003)p Fu(ann)h(=)h Fa(new)g
+Fu(bac)n(kprop\(0.7,)e(n)n(um)p 1687 1573 V 23 w(neurons,)g(n)n(um)p
+2103 1573 V 23 w(neurons,)g(2,)h(n)n(um)p 2593 1573 V
+23 w(neurons,)f(n)n(um)p 3009 1573 V 23 w(neurons\);)462
+1706 y(total)p 603 1706 V 24 w(connections)f(=)j(\(n)n(um)p
+1212 1706 V 22 w(neurons+1\))f Fj(\003)g Fu(n)n(um)p
+1775 1706 V 23 w(neurons)f Fj(\003)i Fu(3;)462 1839 y(start)p
+603 1839 V 24 w(timer\(\);)462 1971 y Fa(for)p Fu(\(i)f(=)h(0;)f(time)p
+903 1971 V 23 w(elapsed\(\))e Fk(<)j Fu(\()p Fa(double)p
+Fu(\)seconds)p 1775 1971 V 22 w(p)r(er)p 1892 1971 V
+23 w(test;)e(i++\))p Fj(f)595 2038 y Fu(ann)p Fj(!)p
+Fu(set)p 854 2038 V 23 w(input\(input\);)595 2104 y(output)g(=)h(ann)p
+Fj(!)p Fu(query)p 1225 2104 V 23 w(output\(\);)462 2171
+y Fj(g)462 2304 y Fu(stop)p 588 2304 V 24 w(timer\(\);)462
+2436 y(fprin)n(tf\(out,)f Fe("\045d)30 b(\045.20e)p Fj(n)p
+Fe(n")p Fu(,)21 b(n)n(um)p 1354 2436 V 23 w(neurons,)g(getNanoP)n
+(erN\(i\))p Fk(=)p Fu(total)p 2274 2436 V 22 w(connections\);)462
+2503 y(fprin)n(tf\(stderr,)f Fe("\045d)31 b(")p Fu(,)22
+b(n)n(um)p 1210 2503 V 23 w(neurons\);)462 2636 y Fa(delete)i
+Fu(ann;)330 2702 y Fj(g)330 2835 y Fa(v)n(oid)d Fu(p)r(erformance)p
+854 2835 V 21 w(b)r(enc)n(hmark)p 1195 2835 V 21 w(lwnn\(FILE)h
+Fj(\003)p Fu(out,)g(fann)p 1856 2835 V 23 w(t)n(yp)r(e)f
+Fj(\003)p Fu(input,)462 2901 y Fa(unsigned)h(in)n(t)g
+Fu(n)n(um)p 1018 2901 V 23 w(neurons,)f Fa(unsigned)g(in)n(t)i
+Fu(seconds)p 1951 2901 V 23 w(p)r(er)p 2069 2901 V 22
+w(test\))330 2968 y Fj(f)462 3034 y Fa(unsigned)f(in)n(t)g
+Fu(i,)g(total)p 1088 3034 V 24 w(connections;)462 3101
+y(fann)p 594 3101 V 23 w(t)n(yp)r(e)g Fj(\003)p Fu(output;)462
+3233 y(output)g(=)g(\(fann)p 911 3233 V 23 w(t)n(yp)r(e)p
+Fj(\003)p Fu(\)callo)r(c\(n)n(um)p 1441 3233 V 20 w(neurons,)f
+Fa(sizeof)7 b Fu(\(fann)p 2067 3233 V 24 w(t)n(yp)r(e\)\);)462
+3300 y(net)n(w)n(ork)p 696 3300 V 24 w(t)22 b Fj(\003)p
+Fu(ann)g(=)h(net)p 1098 3300 V 22 w(allo)r(cate)f(\(4,)g(n)n(um)p
+1594 3300 V 23 w(neurons,)f(n)n(um)p 2010 3300 V 23 w(neurons,)g(n)n
+(um)p 2426 3300 V 23 w(neurons,)g(n)n(um)p 2842 3300
+V 22 w(neurons\);)462 3433 y(total)p 603 3433 V 24 w(connections)f(=)j
+(n)n(um)p 1186 3433 V 22 w(neurons)f Fj(\003)g Fu(n)n(um)p
+1639 3433 V 23 w(neurons)f Fj(\003)i Fu(3;)462 3565 y(start)p
+603 3565 V 24 w(timer\(\);)462 3698 y Fa(for)p Fu(\(i)f(=)h(0;)f(time)p
+903 3698 V 23 w(elapsed\(\))e Fk(<)j Fu(\()p Fa(double)p
+Fu(\)seconds)p 1775 3698 V 22 w(p)r(er)p 1892 3698 V
+23 w(test;)e(i++\))p Fj(f)595 3765 y Fu(net)p 692 3765
+V 23 w(compute)f(\(ann,)i(input,)e(output\);)462 3831
+y Fj(g)462 3964 y Fu(stop)p 588 3964 V 24 w(timer\(\);)462
+4097 y(fprin)n(tf\(out,)h Fe("\045d)30 b(\045.20e)p Fj(n)p
+Fe(n")p Fu(,)21 b(n)n(um)p 1354 4097 V 23 w(neurons,)g(getNanoP)n
+(erN\(i\))p Fk(=)p Fu(total)p 2274 4097 V 22 w(connections\);)462
+4163 y(fprin)n(tf\(stderr,)f Fe("\045d)31 b(")p Fu(,)22
+b(n)n(um)p 1210 4163 V 23 w(neurons\);)462 4296 y(net)p
+559 4296 V 23 w(free\(ann\);)462 4362 y(free\(output\);)330
+4429 y Fj(g)330 4562 y Fa(v)n(oid)f Fu(p)r(erformance)p
+854 4562 V 21 w(b)r(enc)n(hmark)p 1195 4562 V 21 w(fann)p
+1344 4562 V 23 w(no)r(opt\(FILE)g Fj(\003)p Fu(out,)h(fann)p
+2034 4562 V 23 w(t)n(yp)r(e)f Fj(\003)p Fu(input,)462
+4628 y Fa(unsigned)h(in)n(t)g Fu(n)n(um)p 1018 4628 V
+23 w(neurons,)f Fa(unsigned)g(in)n(t)i Fu(seconds)p 1951
+4628 V 23 w(p)r(er)p 2069 4628 V 22 w(test\))330 4695
+y Fj(f)462 4761 y Fa(unsigned)f(in)n(t)g Fu(i,)g(total)p
+1088 4761 V 24 w(connections;)462 4827 y(fann)p 594 4827
+V 23 w(t)n(yp)r(e)g Fj(\003)p Fu(output;)462 4960 y Fa(struct)i
+Fu(fann)d Fj(\003)p Fu(ann)h(=)g(fann)p 1197 4960 V 23
+w(create\(1,)f(0.7,)h(4,)595 5027 y(n)n(um)p 726 5027
+V 23 w(neurons,)f(n)n(um)p 1142 5027 V 23 w(neurons,)g(n)n(um)p
+1558 5027 V 23 w(neurons,)g(n)n(um)p 1974 5027 V 23 w(neurons\);)462
+5159 y Fb(//just)34 b(to)f(fo)m(ol)h(the)e(optimizer)i(into)g(thinking)
+g(that)g(the)f(network)g(is)h(not)g(ful)s(ly)g(c)m(onne)m(cte)m(d)462
+5226 y Fu(ann)p Fj(!)p Fu(connection)p 951 5226 V 21
+w(rate)22 b(=)h(0.9;)462 5359 y(total)p 603 5359 V 24
+w(connections)d(=)j(\(n)n(um)p 1212 5359 V 22 w(neurons+1\))f
+Fj(\003)g Fu(n)n(um)p 1775 5359 V 23 w(neurons)f Fj(\003)i
+Fu(3;)462 5492 y(start)p 603 5492 V 24 w(timer\(\);)462
+5624 y Fa(for)p Fu(\(i)f(=)h(0;)f(time)p 903 5624 V 23
+w(elapsed\(\))e Fk(<)j Fu(\()p Fa(double)p Fu(\)seconds)p
+1775 5624 V 22 w(p)r(er)p 1892 5624 V 23 w(test;)e(i++\))p
+Fj(f)p Black 1788 5919 a Fy(84)p Black eop end
+%%Page: 85 89
+TeXDict begin 85 88 bop Black 330 70 a Fp(B.3)82 b(Benc)n(hmark)27
+b(programs)1254 b(B)83 b(SOUR)n(CE)27 b(CODE)p 330 103
+3000 4 v Black 595 390 a Fu(output)21 b(=)h(fann)p 1017
+390 20 4 v 23 w(run\(ann,)f(input\);)462 457 y Fj(g)462
+589 y Fu(stop)p 588 589 V 24 w(timer\(\);)462 722 y(fprin)n(tf\(out,)g
+Fe("\045d)30 b(\045.20e)p Fj(n)p Fe(n")p Fu(,)21 b(n)n(um)p
+1354 722 V 23 w(neurons,)g(getNanoP)n(erN\(i\))p Fk(=)p
+Fu(total)p 2274 722 V 22 w(connections\);)462 789 y(fprin)n
+(tf\(stderr,)f Fe("\045d)31 b(")p Fu(,)22 b(n)n(um)p
+1210 789 V 23 w(neurons\);)462 855 y(fann)p 594 855 V
+23 w(destro)n(y\(ann\);)330 922 y Fj(g)330 1054 y Fa(v)n(oid)f
+Fu(p)r(erformance)p 854 1054 V 21 w(b)r(enc)n(hmark)p
+1195 1054 V 21 w(fann)p 1344 1054 V 23 w(thres\(FILE)h
+Fj(\003)p Fu(out,)f(fann)p 2011 1054 V 23 w(t)n(yp)r(e)h
+Fj(\003)p Fu(input,)462 1121 y Fa(unsigned)g(in)n(t)g
+Fu(n)n(um)p 1018 1121 V 23 w(neurons,)f Fa(unsigned)g(in)n(t)i
+Fu(seconds)p 1951 1121 V 23 w(p)r(er)p 2069 1121 V 22
+w(test\))330 1187 y Fj(f)462 1254 y Fa(unsigned)f(in)n(t)g
+Fu(i,)g(total)p 1088 1254 V 24 w(connections;)462 1320
+y(fann)p 594 1320 V 23 w(t)n(yp)r(e)g Fj(\003)p Fu(output;)462
+1453 y Fa(struct)i Fu(fann)d Fj(\003)p Fu(ann)h(=)g(fann)p
+1197 1453 V 23 w(create\(1,)f(0.7,)h(4,)595 1519 y(n)n(um)p
+726 1519 V 23 w(neurons,)f(n)n(um)p 1142 1519 V 23 w(neurons,)g(n)n(um)
+p 1558 1519 V 23 w(neurons,)g(n)n(um)p 1974 1519 V 23
+w(neurons\);)462 1652 y(fann)p 594 1652 V 23 w(set)p
+699 1652 V 24 w(activ)l(ation)p 1010 1652 V 23 w(function)p
+1273 1652 V 22 w(hidden\(ann,)e(F)-7 b(ANN)p 1846 1652
+V 24 w(THRESHOLD\);)462 1719 y(fann)p 594 1719 V 23 w(set)p
+699 1719 V 24 w(activ)l(ation)p 1010 1719 V 23 w(function)p
+1273 1719 V 22 w(output\(ann,)20 b(F)-7 b(ANN)p 1846
+1719 V 24 w(THRESHOLD\);)462 1851 y(total)p 603 1851
+V 24 w(connections)20 b(=)j(\(n)n(um)p 1212 1851 V 22
+w(neurons+1\))f Fj(\003)g Fu(n)n(um)p 1775 1851 V 23
+w(neurons)f Fj(\003)i Fu(3;)462 1984 y(start)p 603 1984
+V 24 w(timer\(\);)462 2117 y Fa(for)p Fu(\(i)f(=)h(0;)f(time)p
+903 2117 V 23 w(elapsed\(\))e Fk(<)j Fu(\()p Fa(double)p
+Fu(\)seconds)p 1775 2117 V 22 w(p)r(er)p 1892 2117 V
+23 w(test;)e(i++\))p Fj(f)595 2183 y Fu(output)g(=)h(fann)p
+1017 2183 V 23 w(run\(ann,)f(input\);)462 2250 y Fj(g)462
+2383 y Fu(stop)p 588 2383 V 24 w(timer\(\);)462 2516
+y(fprin)n(tf\(out,)g Fe("\045d)30 b(\045.20e)p Fj(n)p
+Fe(n")p Fu(,)21 b(n)n(um)p 1354 2516 V 23 w(neurons,)g(getNanoP)n
+(erN\(i\))p Fk(=)p Fu(total)p 2274 2516 V 22 w(connections\);)462
+2582 y(fprin)n(tf\(stderr,)f Fe("\045d)31 b(")p Fu(,)22
+b(n)n(um)p 1210 2582 V 23 w(neurons\);)462 2648 y(fann)p
+594 2648 V 23 w(destro)n(y\(ann\);)330 2715 y Fj(g)330
+2848 y Fe(#endif)330 2980 y Fa(v)n(oid)f Fu(p)r(erformance)p
+854 2980 V 21 w(b)r(enc)n(hmark)p 1195 2980 V 21 w(fann\(FILE)g
+Fj(\003)p Fu(out,)h(fann)p 1843 2980 V 23 w(t)n(yp)r(e)f
+Fj(\003)p Fu(input,)462 3047 y Fa(unsigned)h(in)n(t)g
+Fu(n)n(um)p 1018 3047 V 23 w(neurons,)f Fa(unsigned)g(in)n(t)i
+Fu(seconds)p 1951 3047 V 23 w(p)r(er)p 2069 3047 V 22
+w(test\))330 3113 y Fj(f)462 3180 y Fa(unsigned)f(in)n(t)g
+Fu(i,)g(total)p 1088 3180 V 24 w(connections;)462 3246
+y(fann)p 594 3246 V 23 w(t)n(yp)r(e)g Fj(\003)p Fu(output;)462
+3379 y Fa(struct)i Fu(fann)d Fj(\003)p Fu(ann)h(=)g(fann)p
+1197 3379 V 23 w(create\(1,)f(0.7,)h(4,)595 3445 y(n)n(um)p
+726 3445 V 23 w(neurons,)f(n)n(um)p 1142 3445 V 23 w(neurons,)g(n)n(um)
+p 1558 3445 V 23 w(neurons,)g(n)n(um)p 1974 3445 V 23
+w(neurons\);)462 3578 y(total)p 603 3578 V 24 w(connections)f(=)j(\(n)n
+(um)p 1212 3578 V 22 w(neurons+1\))f Fj(\003)g Fu(n)n(um)p
+1775 3578 V 23 w(neurons)f Fj(\003)i Fu(3;)462 3711 y(start)p
+603 3711 V 24 w(timer\(\);)462 3844 y Fa(for)p Fu(\(i)f(=)h(0;)f(time)p
+903 3844 V 23 w(elapsed\(\))e Fk(<)j Fu(\()p Fa(double)p
+Fu(\)seconds)p 1775 3844 V 22 w(p)r(er)p 1892 3844 V
+23 w(test;)e(i++\))p Fj(f)595 3910 y Fu(output)g(=)h(fann)p
+1017 3910 V 23 w(run\(ann,)f(input\);)462 3977 y Fj(g)462
+4110 y Fu(stop)p 588 4110 V 24 w(timer\(\);)462 4242
+y(fprin)n(tf\(out,)g Fe("\045d)30 b(\045.20e)p Fj(n)p
+Fe(n")p Fu(,)21 b(n)n(um)p 1354 4242 V 23 w(neurons,)g(getNanoP)n
+(erN\(i\))p Fk(=)p Fu(total)p 2274 4242 V 22 w(connections\);)462
+4309 y(fprin)n(tf\(stderr,)f Fe("\045d)31 b(")p Fu(,)22
+b(n)n(um)p 1210 4309 V 23 w(neurons\);)462 4375 y(fann)p
+594 4375 V 23 w(destro)n(y\(ann\);)330 4442 y Fj(g)330
+4575 y Fa(in)n(t)h Fu(main\()p Fa(in)n(t)e Fu(argc,)h
+Fa(c)n(har)p Fj(\003)g Fu(argv[]\))330 4641 y Fj(f)462
+4707 y Fb(/)p Fj(\003)34 b Fb(p)m(ar)m(ameters)d Fj(\003)p
+Fb(/)462 4774 y Fa(unsigned)22 b(in)n(t)g Fu(n)n(um)p
+1018 4774 V 23 w(neurons)p 1267 4774 V 23 w(\014rst;)462
+4840 y Fa(unsigned)g(in)n(t)g Fu(n)n(um)p 1018 4840 V
+23 w(neurons)p 1267 4840 V 23 w(last;)462 4907 y Fa(double)g
+Fu(m)n(ultiplier;)462 4973 y Fa(unsigned)g(in)n(t)g Fu(seconds)p
+1110 4973 V 23 w(p)r(er)p 1228 4973 V 23 w(test;)462
+5039 y(FILE)g Fj(\003)p Fu(out;)462 5172 y(fann)p 594
+5172 V 23 w(t)n(yp)r(e)g Fj(\003)p Fu(input;)462 5239
+y Fa(unsigned)g(in)n(t)g Fu(n)n(um)p 1018 5239 V 23 w(neurons,)f(i;)462
+5372 y Fa(if)7 b Fu(\(argc)23 b Fj(6)p Fu(=)f(7\))p Fj(f)595
+5438 y Fu(prin)n(tf\()p Fe("usage)29 b(\045s)h(net)h(file)p
+1344 5438 19 4 v 21 w(out)g(num)p 1582 5438 V 22 w(neurons)p
+1821 5438 V 21 w(first)f(num)p 2120 5438 V 22 w(neurons)p
+2359 5438 V 22 w(last)g(multiplier)330 5504 y(seconds)p
+551 5504 V 21 w(per)p 665 5504 V 22 w(test)p Fj(n)p Fe(n")p
+Fu(,)22 b(argv[0]\);)595 5571 y Fa(return)h Fu(-1;)462
+5637 y Fj(g)p Black 1788 5919 a Fy(85)p Black eop end
+%%Page: 86 90
+TeXDict begin 86 89 bop Black 330 70 a Fp(B.3)82 b(Benc)n(hmark)27
+b(programs)1254 b(B)83 b(SOUR)n(CE)27 b(CODE)p 330 103
+3000 4 v Black 462 457 a Fu(calibrate)p 719 457 20 4
+v 23 w(timer\(\);)462 589 y(n)n(um)p 593 589 V 23 w(neurons)p
+842 589 V 23 w(\014rst)22 b(=)g(atoi\(argv[3]\);)462
+656 y(n)n(um)p 593 656 V 23 w(neurons)p 842 656 V 23
+w(last)g(=)h(atoi\(argv[4]\);)462 722 y(m)n(ultiplier)d(=)j
+(atof\(argv[5]\);)462 789 y(seconds)p 685 789 V 23 w(p)r(er)p
+803 789 V 23 w(test)f(=)g(atoi\(argv[6]\);)462 922 y
+Fa(if)7 b Fu(\(strlen\(argv[2]\))22 b(==)g(1)h(&&)f(argv[2][0])g(==)g
+('-'\))p Fj(f)595 988 y Fu(out)g(=)g(stdout;)462 1054
+y Fj(g)p Fa(else)p Fj(f)595 1121 y Fu(out)g(=)g(fop)r(en\(argv[2],)e
+Fe("w")p Fu(\);)462 1187 y Fj(g)462 1320 y Fu(fprin)n(tf\(stderr,)g
+Fe("Performance)30 b(test)g(of)h(\045s)f(\045s)h(")p
+Fu(,)22 b(argv[1],)g(argv[2]\);)462 1453 y(input)f(=)i(\(fann)p
+871 1453 V 23 w(t)n(yp)r(e)p Fj(\003)p Fu(\)callo)r(c\(n)n(um)p
+1401 1453 V 20 w(neurons)p 1647 1453 V 23 w(last,)f Fa(sizeof)7
+b Fu(\(fann)p 2155 1453 V 23 w(t)n(yp)r(e\)\);)462 1519
+y Fa(for)p Fu(\(i)22 b(=)h(0;)f(i)g Fk(<)g Fu(n)n(um)p
+1015 1519 V 23 w(neurons)p 1264 1519 V 23 w(last;)g(i++\))p
+Fj(f)595 1586 y Fu(input[i])e(=)j(fann)p 1034 1586 V
+22 w(random)p 1277 1586 V 23 w(w)n(eigh)n(t\(\);)728
+b Fb(//\014l)s(l)34 b(input)f(with)h(r)m(andom)f(variables)462
+1652 y Fj(g)462 1785 y Fa(for)p Fu(\(n)n(um)p 711 1785
+V 23 w(neurons)21 b(=)i(n)n(um)p 1182 1785 V 23 w(neurons)p
+1431 1785 V 22 w(\014rst;)595 1851 y(n)n(um)p 726 1851
+V 23 w(neurons)e Fj(\024)h Fu(n)n(um)p 1197 1851 V 23
+w(neurons)p 1446 1851 V 23 w(last;)g(n)n(um)p 1741 1851
+V 23 w(neurons)f(=)i(\()p Fa(in)n(t)p Fu(\)\(n)n(um)p
+2380 1851 V 22 w(neurons)f Fj(\003)g Fu(m)n(ultiplier\)\))p
+Fj(f)330 1984 y Fe(#ifndef)f Fu(FIXEDF)-7 b(ANN)595 2051
+y Fa(if)7 b Fu(\(strcmp\(argv[1],)21 b Fe("lwnn")p Fu(\))g(==)i(0\))p
+Fj(f)727 2117 y Fu(p)r(erformance)p 1091 2117 V 21 w(b)r(enc)n(hmark)p
+1432 2117 V 21 w(lwnn\(out,)f(input,)793 2183 y(n)n(um)p
+924 2183 V 23 w(neurons,)f(seconds)p 1432 2183 V 23 w(p)r(er)p
+1550 2183 V 23 w(test\);)595 2250 y Fj(g)p Fa(else)i(if)7
+b Fu(\(strcmp\(argv[1],)21 b Fe("fann")p Fu(\))g(==)i(0\))p
+Fj(f)330 2316 y Fe(#endif)727 2383 y Fu(p)r(erformance)p
+1091 2383 V 21 w(b)r(enc)n(hmark)p 1432 2383 V 21 w(fann\(out,)e
+(input,)859 2449 y(n)n(um)p 990 2449 V 23 w(neurons,)g(seconds)p
+1498 2449 V 23 w(p)r(er)p 1616 2449 V 23 w(test\);)330
+2516 y Fe(#ifndef)g Fu(FIXEDF)-7 b(ANN)595 2582 y Fj(g)p
+Fa(else)23 b(if)7 b Fu(\(strcmp\(argv[1],)21 b Fe("fann)p
+1471 2582 19 4 v 21 w(noopt")p Fu(\))h(==)g(0\))p Fj(f)727
+2648 y Fu(p)r(erformance)p 1091 2648 20 4 v 21 w(b)r(enc)n(hmark)p
+1432 2648 V 21 w(fann)p 1581 2648 V 23 w(no)r(opt\(out,)f(input,)859
+2715 y(n)n(um)p 990 2715 V 23 w(neurons,)g(seconds)p
+1498 2715 V 23 w(p)r(er)p 1616 2715 V 23 w(test\);)595
+2781 y Fj(g)p Fa(else)i(if)7 b Fu(\(strcmp\(argv[1],)21
+b Fe("fann)p 1471 2781 19 4 v 21 w(thres")p Fu(\))h(==)g(0\))p
+Fj(f)727 2848 y Fu(p)r(erformance)p 1091 2848 20 4 v
+21 w(b)r(enc)n(hmark)p 1432 2848 V 21 w(fann)p 1581 2848
+V 23 w(thres\(out,)f(input,)859 2914 y(n)n(um)p 990 2914
+V 23 w(neurons,)g(seconds)p 1498 2914 V 23 w(p)r(er)p
+1616 2914 V 23 w(test\);)595 2980 y Fj(g)p Fa(else)i(if)7
+b Fu(\(strcmp\(argv[1],)21 b Fe("jneural")p Fu(\))g(==)h(0\))p
+Fj(f)727 3047 y Fu(p)r(erformance)p 1091 3047 V 21 w(b)r(enc)n(hmark)p
+1432 3047 V 21 w(jneural\(out,)e(input,)859 3113 y(n)n(um)p
+990 3113 V 23 w(neurons,)h(seconds)p 1498 3113 V 23 w(p)r(er)p
+1616 3113 V 23 w(test\);)595 3180 y Fj(g)330 3246 y Fe(#endif)462
+3379 y Fj(g)462 3512 y Fu(fprin)n(tf\(stderr,)f Fe(")p
+Fj(n)p Fe(n")p Fu(\);)462 3578 y(free\(input\);)462 3711
+y Fa(return)j Fu(0;)330 3778 y Fj(g)p Black 1788 5919
+a Fy(86)p Black eop end
+%%Page: 87 91
+TeXDict begin 87 90 bop Black 330 70 a Fp(B.3)82 b(Benc)n(hmark)27
+b(programs)1254 b(B)83 b(SOUR)n(CE)27 b(CODE)p 330 103
+3000 4 v Black 330 390 a Fs(B.3.4)94 b Ft(benchmark.sh)p
+Black Black 330 510 a Fe(#)p Fu(!)p Fk(=)p Fu(bin)p Fk(=)p
+Fu(sh)330 577 y(test)p Fk(=)p Fu(p)r(erformance)19 b(fann)i(fann)p
+1132 577 20 4 v 23 w(p)r(erformance.out)e(1)j(2048)h(2)g(20)330
+643 y(test)p Fk(=)p Fu(p)r(erformance)c(fann)p 983 643
+V 23 w(no)r(opt)i(fann)p 1323 643 V 23 w(no)r(opt)p 1514
+643 V 23 w(p)r(erformance.out)e(1)k(2048)f(2)h(20)330
+709 y(test)p Fk(=)p Fu(p)r(erformance)c(fann)p 983 709
+V 23 w(thres)j(fann)p 1301 709 V 22 w(thres)p 1468 709
+V 24 w(p)r(erformance.out)c(1)23 b(2048)g(2)f(20)330
+776 y(test)p Fk(=)p Fu(p)r(erformance)p 836 776 V 20
+w(\014xed)f(fann)h(fann)p 1295 776 V 23 w(\014xed)p 1458
+776 V 22 w(p)r(erformance.out)d(1)j(2048)h(2)g(20)330
+842 y(test)p Fk(=)p Fu(p)r(erformance)c(lwnn)j(lwnn)p
+1157 842 V 23 w(p)r(erformance.out)d(1)j(2048)h(2)g(20)330
+909 y(test)p Fk(=)p Fu(p)r(erformance)c(jneural)i(jneural)p
+1282 909 V 22 w(p)r(erformance.out)d(1)23 b(512)g(2)f(20)330
+1042 y Fe(#)p Fu(.)p Fk(=)p Fu(p)r(erformance)p 778 1042
+V 20 w(arm)g(fann)g(fann)p 1212 1042 V 23 w(p)r(erformance)p
+1595 1042 V 20 w(arm.out)g(1)g(512)h(2)f(20)330 1108
+y Fe(#)p Fu(.)p Fk(=)p Fu(p)r(erformance)p 778 1108 V
+20 w(arm)g(fann)p 1062 1108 V 23 w(no)r(opt)g(fann)p
+1403 1108 V 23 w(no)r(opt)p 1594 1108 V 23 w(p)r(erformance)p
+1977 1108 V 20 w(arm.out)g(1)g(512)h(2)f(20)330 1174
+y Fe(#)p Fu(.)p Fk(=)p Fu(p)r(erformance)p 778 1174 V
+20 w(arm)g(fann)p 1062 1174 V 23 w(thres)g(fann)p 1380
+1174 V 23 w(thres)p 1548 1174 V 23 w(p)r(erformance)p
+1931 1174 V 21 w(arm.out)f(1)i(512)f(2)h(20)330 1241
+y Fe(#)p Fu(.)p Fk(=)p Fu(p)r(erformance)p 778 1241 V
+20 w(\014xed)p 938 1241 V 23 w(arm)f(fann)f(fann)p 1374
+1241 V 23 w(\014xed)p 1537 1241 V 23 w(p)r(erformance)p
+1920 1241 V 20 w(arm.out)h(1)g(512)h(2)f(20)330 1307
+y Fe(#)p Fu(.)p Fk(=)p Fu(p)r(erformance)p 778 1307 V
+20 w(arm)g(lwnn)g(lwnn)p 1236 1307 V 24 w(p)r(erformance)p
+1620 1307 V 20 w(arm.out)g(1)g(512)h(2)f(20)330 1374
+y Fe(#)p Fu(.)p Fk(=)p Fu(p)r(erformance)p 778 1374 V
+20 w(arm)g(jneural)f(jneural)p 1361 1374 V 22 w(p)r(erformance)p
+1743 1374 V 21 w(arm.out)g(1)i(512)f(2)h(20)330 1507
+y(rm)f(-f)g Fj(\003)p 536 1507 V 24 w Fu(\014xed)330
+1573 y(test)p Fk(=)p Fu(qualit)n(y)f(fann)h(datasets)p
+Fk(=)p Fu(m)n(ydata)p Fk(=)p Fu(building.train)d(datasets)p
+Fk(=)p Fu(m)n(ydata)p Fk(=)p Fu(building.test)330 1639
+y(building)p 572 1639 V 22 w(fann)p 722 1639 V 23 w(train.out)i
+(building)p 1260 1639 V 22 w(fann)p 1410 1639 V 23 w(test.out)h(16)g(0)
+h(200)f(1)330 1706 y(test)p Fk(=)p Fu(qualit)n(y)p 678
+1706 V 23 w(\014xed)f(building)p 1100 1706 V 22 w(fann)p
+1250 1706 V 23 w(train.out)p 1529 1706 V 22 w(\014xed)p
+1691 1706 V 23 w(train)h(building)p 2115 1706 V 22 w(fann)p
+2265 1706 V 23 w(train.out)p 2544 1706 V 22 w(\014xed)p
+2706 1706 V 23 w(test)330 1772 y(building)p 572 1772
+V 22 w(fann)p 722 1772 V 23 w(\014xed)p 885 1772 V 22
+w(train.out)g(building)p 1423 1772 V 22 w(fann)p 1573
+1772 V 22 w(\014xed)p 1735 1772 V 23 w(test.out)g Fj(\003)p
+2037 1772 V 23 w Fu(\014xed)330 1839 y(test)p Fk(=)p
+Fu(qualit)n(y)f(fann)p 827 1839 V 23 w(half)h(datasets)p
+Fk(=)p Fu(m)n(ydata)p Fk(=)p Fu(building.train)d(datasets)p
+Fk(=)p Fu(m)n(ydata)p Fk(=)p Fu(building.test)330 1905
+y(building)p 572 1905 V 22 w(fann)p 722 1905 V 23 w(half)p
+855 1905 V 23 w(train.out)i(building)p 1393 1905 V 22
+w(fann)p 1543 1905 V 23 w(half)p 1676 1905 V 23 w(test.out)g(16)i(0)f
+(200)h(1)330 1971 y(test)p Fk(=)p Fu(qualit)n(y)e(lwnn)h(datasets)p
+Fk(=)p Fu(m)n(ydata)p Fk(=)p Fu(building.train)d(datasets)p
+Fk(=)p Fu(m)n(ydata)p Fk(=)p Fu(building.test)330 2038
+y(building)p 572 2038 V 22 w(lwnn)p 734 2038 V 23 w(train.out)j
+(building)p 1273 2038 V 22 w(lwnn)p 1435 2038 V 23 w(test.out)g(16)g(0)
+h(200)f(1)330 2104 y(test)p Fk(=)p Fu(qualit)n(y)f(jneural)g(datasets)p
+Fk(=)p Fu(m)n(ydata)p Fk(=)p Fu(building.train)e(datasets)p
+Fk(=)p Fu(m)n(ydata)p Fk(=)p Fu(building.test)330 2171
+y(building)p 572 2171 V 22 w(jneural)p 797 2171 V 22
+w(train.out)i(building)p 1334 2171 V 22 w(jneural)p 1559
+2171 V 22 w(test.out)h(16)h(0)f(200)h(1)330 2304 y(rm)f(-f)g
+Fj(\003)p 536 2304 V 24 w Fu(\014xed)330 2370 y(test)p
+Fk(=)p Fu(qualit)n(y)f(fann)h(datasets)p Fk(=)p Fu(m)n(ydata)p
+Fk(=)p Fu(card.train)e(datasets)p Fk(=)p Fu(m)n(ydata)p
+Fk(=)p Fu(card.test)g(card)p 2598 2370 V 23 w(fann)p
+2749 2370 V 23 w(train.out)330 2436 y(card)p 460 2436
+V 23 w(fann)p 611 2436 V 23 w(test.out)h(32)i(0)f(200)h(1)330
+2503 y(test)p Fk(=)p Fu(qualit)n(y)p 678 2503 V 23 w(\014xed)e(card)p
+988 2503 V 23 w(fann)p 1139 2503 V 23 w(train.out)p 1418
+2503 V 23 w(\014xed)p 1581 2503 V 22 w(train)h(card)p
+1892 2503 V 23 w(fann)p 2043 2503 V 23 w(train.out)p
+2322 2503 V 22 w(\014xed)p 2484 2503 V 23 w(test)330
+2569 y(card)p 460 2569 V 23 w(fann)p 611 2569 V 23 w(\014xed)p
+774 2569 V 22 w(train.out)g(card)p 1200 2569 V 23 w(fann)p
+1351 2569 V 23 w(\014xed)p 1514 2569 V 22 w(test.out)g
+Fj(\003)p 1815 2569 V 24 w Fu(\014xed)330 2636 y(test)p
+Fk(=)p Fu(qualit)n(y)f(fann)p 827 2636 V 23 w(half)h(datasets)p
+Fk(=)p Fu(m)n(ydata)p Fk(=)p Fu(card.train)e(datasets)p
+Fk(=)p Fu(m)n(ydata)p Fk(=)p Fu(card.test)g(card)p 2731
+2636 V 23 w(fann)p 2882 2636 V 23 w(half)p 3015 2636
+V 23 w(train.out)330 2702 y(card)p 460 2702 V 23 w(fann)p
+611 2702 V 23 w(half)p 744 2702 V 23 w(test.out)h(32)i(0)f(200)h(1)330
+2768 y(test)p Fk(=)p Fu(qualit)n(y)e(lwnn)h(datasets)p
+Fk(=)p Fu(m)n(ydata)p Fk(=)p Fu(card.train)e(datasets)p
+Fk(=)p Fu(m)n(ydata)p Fk(=)p Fu(card.test)h(card)p 2611
+2768 V 23 w(lwnn)p 2774 2768 V 23 w(train.out)330 2835
+y(card)p 460 2835 V 23 w(lwnn)p 623 2835 V 23 w(test.out)h(32)h(0)f
+(200)h(1)330 2901 y(test)p Fk(=)p Fu(qualit)n(y)e(jneural)g(datasets)p
+Fk(=)p Fu(m)n(ydata)p Fk(=)p Fu(card.train)f(datasets)p
+Fk(=)p Fu(m)n(ydata)p Fk(=)p Fu(card.test)h(card)p 2673
+2901 V 23 w(jneural)p 2899 2901 V 22 w(train.out)330
+2968 y(card)p 460 2968 V 23 w(jneural)p 686 2968 V 22
+w(test.out)h(32)g(0)h(200)f(1)330 3101 y(rm)g(-f)g Fj(\003)p
+536 3101 V 24 w Fu(\014xed)330 3167 y(test)p Fk(=)p Fu(qualit)n(y)f
+(fann)h(datasets)p Fk(=)p Fu(m)n(ydata)p Fk(=)p Fu(gene.train)d
+(datasets)p Fk(=)p Fu(m)n(ydata)p Fk(=)p Fu(gene.test)i(gene)p
+2610 3167 V 22 w(fann)p 2760 3167 V 23 w(train.out)330
+3233 y(gene)p 464 3233 V 23 w(fann)p 615 3233 V 22 w(test.out)h(4)h(2)f
+(200)h(1)330 3300 y(test)p Fk(=)p Fu(qualit)n(y)p 678
+3300 V 23 w(\014xed)e(gene)p 992 3300 V 22 w(fann)p 1142
+3300 V 23 w(train.out)p 1421 3300 V 23 w(\014xed)p 1584
+3300 V 23 w(train)g(gene)p 1899 3300 V 23 w(fann)p 2050
+3300 V 23 w(train.out)p 2329 3300 V 23 w(\014xed)p 2492
+3300 V 22 w(test)330 3366 y(gene)p 464 3366 V 23 w(fann)p
+615 3366 V 22 w(\014xed)p 777 3366 V 23 w(train.out)g(gene)p
+1207 3366 V 23 w(fann)p 1358 3366 V 23 w(\014xed)p 1521
+3366 V 22 w(test.out)h Fj(\003)p 1822 3366 V 24 w Fu(\014xed)330
+3433 y(test)p Fk(=)p Fu(qualit)n(y)f(fann)p 827 3433
+V 23 w(half)h(datasets)p Fk(=)p Fu(m)n(ydata)p Fk(=)p
+Fu(gene.train)d(datasets)p Fk(=)p Fu(m)n(ydata)p Fk(=)p
+Fu(gene.test)h(gene)p 2742 3433 V 23 w(fann)p 2893 3433
+V 23 w(half)p 3026 3433 V 23 w(train.out)330 3499 y(gene)p
+464 3499 V 23 w(fann)p 615 3499 V 22 w(half)p 747 3499
+V 23 w(test.out)i(4)g(2)h(200)g(1)330 3565 y(test)p Fk(=)p
+Fu(qualit)n(y)e(lwnn)h(datasets)p Fk(=)p Fu(m)n(ydata)p
+Fk(=)p Fu(gene.train)e(datasets)p Fk(=)p Fu(m)n(ydata)p
+Fk(=)p Fu(gene.test)g(gene)p 2622 3565 V 23 w(lwnn)p
+2785 3565 V 23 w(train.out)330 3632 y(gene)p 464 3632
+V 23 w(lwnn)p 627 3632 V 23 w(test.out)i(4)g(2)g(200)h(1)330
+3698 y(test)p Fk(=)p Fu(qualit)n(y)e(jneural)g(datasets)p
+Fk(=)p Fu(m)n(ydata)p Fk(=)p Fu(gene.train)f(datasets)p
+Fk(=)p Fu(m)n(ydata)p Fk(=)p Fu(gene.test)g(gene)p 2684
+3698 V 22 w(jneural)p 2909 3698 V 22 w(train.out)330
+3765 y(gene)p 464 3765 V 23 w(jneural)p 690 3765 V 22
+w(test.out)h(4)i(2)f(200)h(1)330 3898 y(rm)f(-f)g Fj(\003)p
+536 3898 V 24 w Fu(\014xed)330 3964 y(test)p Fk(=)p Fu(qualit)n(y)f
+(fann)h(datasets)p Fk(=)p Fu(m)n(ydata)p Fk(=)p Fu(m)n(ushro)r
+(om.train)e(datasets)p Fk(=)p Fu(m)n(ydata)p Fk(=)p Fu(m)n(ushro)r
+(om.test)330 4030 y(m)n(ushro)r(om)p 636 4030 V 23 w(fann)p
+787 4030 V 23 w(train.out)h(m)n(ushro)r(om)p 1389 4030
+V 23 w(fann)p 1540 4030 V 22 w(test.out)h(32)g(0)h(200)g(1)330
+4097 y(test)p Fk(=)p Fu(qualit)n(y)p 678 4097 V 23 w(\014xed)e(m)n
+(ushro)r(om)p 1164 4097 V 23 w(fann)p 1315 4097 V 22
+w(train.out)p 1593 4097 V 23 w(\014xed)p 1756 4097 V
+23 w(train)g(m)n(ushro)r(om)p 2243 4097 V 23 w(fann)p
+2394 4097 V 23 w(train.out)p 2673 4097 V 23 w(\014xed)p
+2836 4097 V 22 w(test)330 4163 y(m)n(ushro)r(om)p 636
+4163 V 23 w(fann)p 787 4163 V 23 w(\014xed)p 950 4163
+V 22 w(train.out)g(m)n(ushro)r(om)p 1551 4163 V 23 w(fann)p
+1702 4163 V 23 w(\014xed)p 1865 4163 V 22 w(test.out)h
+Fj(\003)p 2166 4163 V 24 w Fu(\014xed)330 4230 y(test)p
+Fk(=)p Fu(qualit)n(y)f(fann)p 827 4230 V 23 w(half)h(datasets)p
+Fk(=)p Fu(m)n(ydata)p Fk(=)p Fu(m)n(ushro)r(om.train)e(datasets)p
+Fk(=)p Fu(m)n(ydata)p Fk(=)p Fu(m)n(ushro)r(om.test)330
+4296 y(m)n(ushro)r(om)p 636 4296 V 23 w(fann)p 787 4296
+V 23 w(half)p 920 4296 V 22 w(train.out)i(m)n(ushro)r(om)p
+1522 4296 V 22 w(fann)p 1672 4296 V 23 w(half)p 1805
+4296 V 23 w(test.out)g(32)g(0)h(200)g(1)330 4362 y(test)p
+Fk(=)p Fu(qualit)n(y)e(lwnn)h(datasets)p Fk(=)p Fu(m)n(ydata)p
+Fk(=)p Fu(m)n(ushro)r(om.train)e(datasets)p Fk(=)p Fu(m)n(ydata)p
+Fk(=)p Fu(m)n(ushro)r(om.test)330 4429 y(m)n(ushro)r(om)p
+636 4429 V 23 w(lwnn)p 799 4429 V 23 w(train.out)h(m)n(ushro)r(om)p
+1401 4429 V 23 w(lwnn)p 1564 4429 V 23 w(test.out)h(32)h(0)f(200)h(1)
+330 4495 y(test)p Fk(=)p Fu(qualit)n(y)e(jneural)g(datasets)p
+Fk(=)p Fu(m)n(ydata)p Fk(=)p Fu(m)n(ushro)r(om.train)f(datasets)p
+Fk(=)p Fu(m)n(ydata)p Fk(=)p Fu(m)n(ushro)r(om.test)330
+4562 y(m)n(ushro)r(om)p 636 4562 V 23 w(jneural)p 862
+4562 V 22 w(train.out)h(m)n(ushro)r(om)p 1463 4562 V
+23 w(jneural)p 1689 4562 V 22 w(test.out)g(32)i(0)f(200)h(1)330
+4695 y(rm)f(-f)g Fj(\003)p 536 4695 V 24 w Fu(\014xed)330
+4761 y(test)p Fk(=)p Fu(qualit)n(y)f(fann)h(datasets)p
+Fk(=)p Fu(m)n(ydata)p Fk(=)p Fu(so)n(yb)r(ean.train)e(datasets)p
+Fk(=)p Fu(m)n(ydata)p Fk(=)p Fu(so)n(yb)r(ean.test)330
+4827 y(so)n(yb)r(ean)p 565 4827 V 23 w(fann)p 716 4827
+V 23 w(train.out)h(so)n(yb)r(ean)p 1247 4827 V 23 w(fann)p
+1398 4827 V 23 w(test.out)h(16)g(8)h(200)f(1)330 4894
+y(test)p Fk(=)p Fu(qualit)n(y)p 678 4894 V 23 w(\014xed)f(so)n(yb)r
+(ean)p 1093 4894 V 23 w(fann)p 1244 4894 V 23 w(train.out)p
+1523 4894 V 23 w(\014xed)p 1686 4894 V 22 w(train)h(so)n(yb)r(ean)p
+2102 4894 V 23 w(fann)p 2253 4894 V 23 w(train.out)p
+2532 4894 V 22 w(\014xed)p 2694 4894 V 23 w(test)330
+4960 y(so)n(yb)r(ean)p 565 4960 V 23 w(fann)p 716 4960
+V 23 w(\014xed)p 879 4960 V 22 w(train.out)g(so)n(yb)r(ean)p
+1410 4960 V 23 w(fann)p 1561 4960 V 23 w(\014xed)p 1724
+4960 V 22 w(test.out)g Fj(\003)p 2025 4960 V 24 w Fu(\014xed)330
+5027 y(test)p Fk(=)p Fu(qualit)n(y)f(fann)p 827 5027
+V 23 w(half)h(datasets)p Fk(=)p Fu(m)n(ydata)p Fk(=)p
+Fu(so)n(yb)r(ean.train)e(datasets)p Fk(=)p Fu(m)n(ydata)p
+Fk(=)p Fu(so)n(yb)r(ean.test)330 5093 y(so)n(yb)r(ean)p
+565 5093 V 23 w(fann)p 716 5093 V 23 w(half)p 849 5093
+V 23 w(train.out)h(so)n(yb)r(ean)p 1380 5093 V 23 w(fann)p
+1531 5093 V 23 w(half)p 1664 5093 V 23 w(test.out)h(16)g(8)h(200)f(1)
+330 5159 y(test)p Fk(=)p Fu(qualit)n(y)f(lwnn)h(datasets)p
+Fk(=)p Fu(m)n(ydata)p Fk(=)p Fu(so)n(yb)r(ean.train)e(datasets)p
+Fk(=)p Fu(m)n(ydata)p Fk(=)p Fu(so)n(yb)r(ean.test)330
+5226 y(so)n(yb)r(ean)p 565 5226 V 23 w(lwnn)p 728 5226
+V 23 w(train.out)i(so)n(yb)r(ean)p 1260 5226 V 23 w(lwnn)p
+1423 5226 V 23 w(test.out)g(16)g(8)h(200)f(1)330 5292
+y(test)p Fk(=)p Fu(qualit)n(y)f(jneural)g(datasets)p
+Fk(=)p Fu(m)n(ydata)p Fk(=)p Fu(so)n(yb)r(ean.train)f(datasets)p
+Fk(=)p Fu(m)n(ydata)p Fk(=)p Fu(so)n(yb)r(ean.test)330
+5359 y(so)n(yb)r(ean)p 565 5359 V 23 w(jneural)p 791
+5359 V 22 w(train.out)h(so)n(yb)r(ean)p 1321 5359 V 24
+w(jneural)p 1548 5359 V 22 w(test.out)g(16)i(8)f(200)h(1)330
+5492 y(rm)f(-f)g Fj(\003)p 536 5492 V 24 w Fu(\014xed)330
+5558 y(test)p Fk(=)p Fu(qualit)n(y)f(fann)h(datasets)p
+Fk(=)p Fu(m)n(ydata)p Fk(=)p Fu(th)n(yroid.train)e(datasets)p
+Fk(=)p Fu(m)n(ydata)p Fk(=)p Fu(th)n(yroid.test)g(th)n(yroid)p
+2853 5558 V 23 w(fann)p 3004 5558 V 23 w(train.out)330
+5624 y(th)n(yroid)p 545 5624 V 23 w(fann)p 696 5624 V
+23 w(test.out)h(16)i(8)f(200)h(1)p Black 1788 5919 a
+Fy(87)p Black eop end
+%%Page: 88 92
+TeXDict begin 88 91 bop Black 330 70 a Fp(B.3)82 b(Benc)n(hmark)27
+b(programs)1254 b(B)83 b(SOUR)n(CE)27 b(CODE)p 330 103
+3000 4 v Black 330 390 a Fu(test)p Fk(=)p Fu(qualit)n(y)p
+678 390 20 4 v 23 w(\014xed)21 b(th)n(yroid)p 1073 390
+V 23 w(fann)p 1224 390 V 23 w(train.out)p 1503 390 V
+23 w(\014xed)p 1666 390 V 22 w(train)h(th)n(yroid)p 2062
+390 V 23 w(fann)p 2213 390 V 23 w(train.out)p 2492 390
+V 22 w(\014xed)p 2654 390 V 23 w(test)330 457 y(th)n(yroid)p
+545 457 V 23 w(fann)p 696 457 V 23 w(\014xed)p 859 457
+V 22 w(train.out)g(th)n(yroid)p 1370 457 V 23 w(fann)p
+1521 457 V 23 w(\014xed)p 1684 457 V 22 w(test.out)g
+Fj(\003)p 1985 457 V 23 w Fu(\014xed)330 523 y(test)p
+Fk(=)p Fu(qualit)n(y)f(fann)p 827 523 V 23 w(half)h(datasets)p
+Fk(=)p Fu(m)n(ydata)p Fk(=)p Fu(th)n(yroid.train)e(datasets)p
+Fk(=)p Fu(m)n(ydata)p Fk(=)p Fu(th)n(yroid.test)330 589
+y(th)n(yroid)p 545 589 V 23 w(fann)p 696 589 V 23 w(half)p
+829 589 V 23 w(train.out)h(th)n(yroid)p 1340 589 V 23
+w(fann)p 1491 589 V 23 w(half)p 1624 589 V 23 w(test.out)h(16)g(8)h
+(200)f(1)330 656 y(test)p Fk(=)p Fu(qualit)n(y)f(lwnn)h(datasets)p
+Fk(=)p Fu(m)n(ydata)p Fk(=)p Fu(th)n(yroid.train)e(datasets)p
+Fk(=)p Fu(m)n(ydata)p Fk(=)p Fu(th)n(yroid.test)h(th)n(yroid)p
+2866 656 V 23 w(lwnn)p 3029 656 V 23 w(train.out)330
+722 y(th)n(yroid)p 545 722 V 23 w(lwnn)p 708 722 V 23
+w(test.out)h(16)h(8)f(200)h(1)330 789 y(test)p Fk(=)p
+Fu(qualit)n(y)e(jneural)g(datasets)p Fk(=)p Fu(m)n(ydata)p
+Fk(=)p Fu(th)n(yroid.train)f(datasets)p Fk(=)p Fu(m)n(ydata)p
+Fk(=)p Fu(th)n(yroid.test)330 855 y(th)n(yroid)p 545
+855 V 23 w(jneural)p 771 855 V 22 w(train.out)h(th)n(yroid)p
+1281 855 V 23 w(jneural)p 1507 855 V 23 w(test.out)g(16)i(8)f(200)h(1)p
+Black 1788 5919 a Fy(88)p Black eop end
+%%Trailer
+
+userdict /end-hook known{end-hook}if
+%%EOF
diff --git a/doc/fann_doc_users_guide_1.0.pdf b/doc/fann_doc_users_guide_1.0.pdf
new file mode 100644
index 0000000..42d5ba3
Binary files /dev/null and b/doc/fann_doc_users_guide_1.0.pdf differ

-- 
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/debian-science/packages/libfann.git



More information about the debian-science-commits mailing list