summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNorbert Preining <norbert@preining.info>2018-04-18 09:58:55 +0900
committerNorbert Preining <norbert@preining.info>2018-04-18 09:58:55 +0900
commit97c498990768240db2126f56c5bb2a07014b3b88 (patch)
tree2f76a18f973d5e1aff3f7596160941a315b05a8f
parentb37ee2eee26b9135cb474d95eac1fc5660c0d049 (diff)
remove ketcindy, it is in main
-rw-r--r--texmf-dist/doc/support/ketcindy/CindyJS/Cindy.js781
-rw-r--r--texmf-dist/doc/support/ketcindy/CindyJS/CindyJS.css121
-rw-r--r--texmf-dist/doc/support/ketcindy/CindyJS/ketcindylib.txt6419
-rw-r--r--texmf-dist/doc/support/ketcindy/LICENSE14
-rw-r--r--texmf-dist/doc/support/ketcindy/README.TeXLive9
-rw-r--r--texmf-dist/doc/support/ketcindy/ScriptKeytyped.txt134
-rw-r--r--texmf-dist/doc/support/ketcindy/Scriptfigure.txt16
-rw-r--r--texmf-dist/doc/support/ketcindy/Scriptkelib.txt4
-rw-r--r--texmf-dist/doc/support/ketcindy/Scriptketlibsci.txt8
-rw-r--r--texmf-dist/doc/support/ketcindy/ketmanual/CindyJS/Cindy.js781
-rw-r--r--texmf-dist/doc/support/ketcindy/ketmanual/CindyJS/CindyJS.css121
-rw-r--r--texmf-dist/doc/support/ketcindy/ketmanual/CindyJS/ketcindylib.txt6419
-rw-r--r--texmf-dist/doc/support/ketcindy/ketmanual/KeTCindyReferenceJ.pdfbin2126809 -> 0 bytes
-rw-r--r--texmf-dist/doc/support/ketcindy/ketmanual/helpbuttonJ.pdfbin216362 -> 0 bytes
-rw-r--r--texmf-dist/doc/support/ketcindy/ketmanual/helpbuttonsE.pdfbin95209 -> 0 bytes
-rw-r--r--texmf-dist/doc/support/ketcindy/ketmanual/helplist3dJ.pdfbin46132 -> 0 bytes
-rw-r--r--texmf-dist/doc/support/ketcindy/ketmanual/helplistJ.pdfbin92358 -> 0 bytes
-rw-r--r--texmf-dist/doc/support/ketcindy/ketmanual/referenceR4_3_1_ltd.pdfbin197440 -> 0 bytes
-rw-r--r--texmf-dist/doc/support/ketcindy/ketmanual/refketlayer20161211J.pdfbin35211 -> 0 bytes
-rw-r--r--texmf-dist/doc/support/ketcindy/ketmanual/refketpic161211J.pdfbin12499 -> 0 bytes
-rw-r--r--texmf-dist/doc/support/ketcindy/ketmanual/refketslide161211J.pdfbin10095 -> 0 bytes
-rw-r--r--texmf-dist/doc/support/ketcindy/ketsample/samples/s01figure/s0101figure.cdybin5314 -> 0 bytes
-rw-r--r--texmf-dist/doc/support/ketcindy/ketsample/samples/s01figure/s0101figurepdf.cdybin5303 -> 0 bytes
-rw-r--r--texmf-dist/doc/support/ketcindy/ketsample/samples/s01figure/s0102figure2.cdybin5255 -> 0 bytes
-rw-r--r--texmf-dist/doc/support/ketcindy/ketsample/samples/s01figure/s0103polygon.cdybin4731 -> 0 bytes
-rw-r--r--texmf-dist/doc/support/ketcindy/ketsample/samples/s01figure/s0104shade.cdybin5526 -> 0 bytes
-rw-r--r--texmf-dist/doc/support/ketcindy/ketsample/samples/s01figure/s0105vector.cdybin4886 -> 0 bytes
-rw-r--r--texmf-dist/doc/support/ketcindy/ketsample/samples/s01figure/s0106bowdotfill.cdybin5567 -> 0 bytes
-rw-r--r--texmf-dist/doc/support/ketcindy/ketsample/samples/s01figure/s0106bowhatch.cdybin5574 -> 0 bytes
-rw-r--r--texmf-dist/doc/support/ketcindy/ketsample/samples/s01figure/s0107hyperbolahatch.cdybin4219 -> 0 bytes
-rw-r--r--texmf-dist/doc/support/ketcindy/ketsample/samples/s01figure/s0108cycloid.cdybin4195 -> 0 bytes
-rw-r--r--texmf-dist/doc/support/ketcindy/ketsample/samples/s01figure/s0109epitrochoid.cdybin4449 -> 0 bytes
-rw-r--r--texmf-dist/doc/support/ketcindy/ketsample/samples/s01figure/s0110hypotrochoid.cdybin4445 -> 0 bytes
-rw-r--r--texmf-dist/doc/support/ketcindy/ketsample/samples/s02graph/s0201basic.cdybin4223 -> 0 bytes
-rw-r--r--texmf-dist/doc/support/ketcindy/ketsample/samples/s02graph/s0202graph1.cdybin4455 -> 0 bytes
-rw-r--r--texmf-dist/doc/support/ketcindy/ketsample/samples/s02graph/s0203graph2.cdybin4422 -> 0 bytes
-rw-r--r--texmf-dist/doc/support/ketcindy/ketsample/samples/s02graph/s0204graph3.cdybin4728 -> 0 bytes
-rw-r--r--texmf-dist/doc/support/ketcindy/ketsample/samples/s02graph/s0205coniccurve.cdybin4224 -> 0 bytes
-rw-r--r--texmf-dist/doc/support/ketcindy/ketsample/samples/s02graph/s0206defexp.cdybin5152 -> 0 bytes
-rw-r--r--texmf-dist/doc/support/ketcindy/ketsample/samples/s02graph/s0207envelope.cdybin4481 -> 0 bytes
-rw-r--r--texmf-dist/doc/support/ketcindy/ketsample/samples/s02graph/s0208intersecthatch.cdybin3907 -> 0 bytes
-rw-r--r--texmf-dist/doc/support/ketcindy/ketsample/samples/s02graph/s0209diffeq.cdybin4008 -> 0 bytes
-rw-r--r--texmf-dist/doc/support/ketcindy/ketsample/samples/s02graph/s0210diffeq2.cdybin5729 -> 0 bytes
-rw-r--r--texmf-dist/doc/support/ketcindy/ketsample/samples/s02graph/s0211plotdataS.cdybin3870 -> 0 bytes
-rw-r--r--texmf-dist/doc/support/ketcindy/ketsample/samples/s02graph/s0212implicit.cdybin3966 -> 0 bytes
-rw-r--r--texmf-dist/doc/support/ketcindy/ketsample/samples/s02graph/s0213implicithatch.cdybin3807 -> 0 bytes
-rw-r--r--texmf-dist/doc/support/ketcindy/ketsample/samples/s03table/s0301table.cdybin5223 -> 0 bytes
-rw-r--r--texmf-dist/doc/support/ketcindy/ketsample/samples/s03table/s0302table2.cdybin3999 -> 0 bytes
-rw-r--r--texmf-dist/doc/support/ketcindy/ketsample/samples/s03table/s0302table2line.cdybin3975 -> 0 bytes
-rw-r--r--texmf-dist/doc/support/ketcindy/ketsample/samples/s03table/s0303papersquared.cdybin4054 -> 0 bytes
-rw-r--r--texmf-dist/doc/support/ketcindy/ketsample/samples/s03table/s0304graphforincanddec.cdybin3871 -> 0 bytes
-rw-r--r--texmf-dist/doc/support/ketcindy/ketsample/samples/s03table/s0305incanddec.cdybin4066 -> 0 bytes
-rw-r--r--texmf-dist/doc/support/ketcindy/ketsample/samples/s04bezier/dogwalk.pngbin118714 -> 0 bytes
-rw-r--r--texmf-dist/doc/support/ketcindy/ketsample/samples/s04bezier/heart.pngbin66003 -> 0 bytes
-rw-r--r--texmf-dist/doc/support/ketcindy/ketsample/samples/s04bezier/mtfuji.pngbin9171 -> 0 bytes
-rw-r--r--texmf-dist/doc/support/ketcindy/ketsample/samples/s04bezier/s0401bezierbasic.cdybin6397 -> 0 bytes
-rw-r--r--texmf-dist/doc/support/ketcindy/ketsample/samples/s04bezier/s0402bezier2.cdybin5993 -> 0 bytes
-rw-r--r--texmf-dist/doc/support/ketcindy/ketsample/samples/s04bezier/s0403bezierspline.cdybin7538 -> 0 bytes
-rw-r--r--texmf-dist/doc/support/ketcindy/ketsample/samples/s04bezier/s0404heart.cdybin83622 -> 0 bytes
-rw-r--r--texmf-dist/doc/support/ketcindy/ketsample/samples/s04bezier/s0405dogwalk.cdybin72346 -> 0 bytes
-rw-r--r--texmf-dist/doc/support/ketcindy/ketsample/samples/s04bezier/s0406mtfuji.cdybin9403 -> 0 bytes
-rw-r--r--texmf-dist/doc/support/ketcindy/ketsample/samples/s05spacefigure/s0501basic.cdybin5865 -> 0 bytes
-rw-r--r--texmf-dist/doc/support/ketcindy/ketsample/samples/s05spacefigure/s0501plane.cdybin8166 -> 0 bytes
-rw-r--r--texmf-dist/doc/support/ketcindy/ketsample/samples/s05spacefigure/s0502spacecurve.cdybin5169 -> 0 bytes
-rw-r--r--texmf-dist/doc/support/ketcindy/ketsample/samples/s05spacefigure/s0503perp.cdybin6005 -> 0 bytes
-rw-r--r--texmf-dist/doc/support/ketcindy/ketsample/samples/s05spacefigure/s0504embed.cdybin6060 -> 0 bytes
-rw-r--r--texmf-dist/doc/support/ketcindy/ketsample/samples/s05spacefigure/s0505bezier3d.cdybin6889 -> 0 bytes
-rw-r--r--texmf-dist/doc/support/ketcindy/ketsample/samples/s05spacefigure/s0506embedhatch.cdybin6109 -> 0 bytes
-rw-r--r--texmf-dist/doc/support/ketcindy/ketsample/samples/s05spacefigure/s0507polyhedron.cdybin6589 -> 0 bytes
-rw-r--r--texmf-dist/doc/support/ketcindy/ketsample/samples/s05spacefigure/s0508concatobj.cdybin8260 -> 0 bytes
-rw-r--r--texmf-dist/doc/support/ketcindy/ketsample/samples/s05spacefigure/s05091tetra.cdybin6718 -> 0 bytes
-rw-r--r--texmf-dist/doc/support/ketcindy/ketsample/samples/s05spacefigure/s05092cubiccut.cdybin11115 -> 0 bytes
-rw-r--r--texmf-dist/doc/support/ketcindy/ketsample/samples/s05spacefigure/s05093cubiccut2.cdybin8451 -> 0 bytes
-rw-r--r--texmf-dist/doc/support/ketcindy/ketsample/samples/s06animation/s0601cycloid.cdybin5147 -> 0 bytes
-rw-r--r--texmf-dist/doc/support/ketcindy/ketsample/samples/s06animation/s0602diffeq.cdybin5702 -> 0 bytes
-rw-r--r--texmf-dist/doc/support/ketcindy/ketsample/samples/s06animation/s0603envelope.cdybin4943 -> 0 bytes
-rw-r--r--texmf-dist/doc/support/ketcindy/ketsample/samples/s06animation/s0604diffeq2.cdybin5156 -> 0 bytes
-rw-r--r--texmf-dist/doc/support/ketcindy/ketsample/samples/s06animation/s0605cycloid2.cdybin5390 -> 0 bytes
-rw-r--r--texmf-dist/doc/support/ketcindy/ketsample/samples/s06animation/s0606epitrochoid.cdybin5501 -> 0 bytes
-rw-r--r--texmf-dist/doc/support/ketcindy/ketsample/samples/s06animation/s0607hypotrochoid.cdybin5485 -> 0 bytes
-rw-r--r--texmf-dist/doc/support/ketcindy/ketsample/samples/s07slides/fig/slide0.tex11
-rw-r--r--texmf-dist/doc/support/ketcindy/ketsample/samples/s07slides/fig/wallpaper.tex12
-rw-r--r--texmf-dist/doc/support/ketcindy/ketsample/samples/s07slides/howtouseslideE.txt79
-rw-r--r--texmf-dist/doc/support/ketcindy/ketsample/samples/s07slides/howtouseslideJ.txt132
-rw-r--r--texmf-dist/doc/support/ketcindy/ketsample/samples/s07slides/s0701basic.cdybin5454 -> 0 bytes
-rw-r--r--texmf-dist/doc/support/ketcindy/ketsample/samples/s07slides/s0701basic.txt21
-rw-r--r--texmf-dist/doc/support/ketcindy/ketsample/samples/s07slides/s0701basicE.cdybin5464 -> 0 bytes
-rw-r--r--texmf-dist/doc/support/ketcindy/ketsample/samples/s07slides/s0701basicE.txt21
-rw-r--r--texmf-dist/doc/support/ketcindy/ketsample/samples/s07slides/s0702graph.cdybin5695 -> 0 bytes
-rw-r--r--texmf-dist/doc/support/ketcindy/ketsample/samples/s07slides/s0702graphE.cdybin5463 -> 0 bytes
-rw-r--r--texmf-dist/doc/support/ketcindy/ketsample/samples/s07slides/s0702graphE.txt19
-rw-r--r--texmf-dist/doc/support/ketcindy/ketsample/samples/s07slides/s0703repeat.cdybin5634 -> 0 bytes
-rw-r--r--texmf-dist/doc/support/ketcindy/ketsample/samples/s07slides/s0703repeat.txt32
-rw-r--r--texmf-dist/doc/support/ketcindy/ketsample/samples/s07slides/s0703repeatE.cdybin5535 -> 0 bytes
-rw-r--r--texmf-dist/doc/support/ketcindy/ketsample/samples/s07slides/s0703repeatE.txt32
-rw-r--r--texmf-dist/doc/support/ketcindy/ketsample/samples/s07slides/s0704thin.cdybin4857 -> 0 bytes
-rw-r--r--texmf-dist/doc/support/ketcindy/ketsample/samples/s07slides/s0704thin.txt53
-rw-r--r--texmf-dist/doc/support/ketcindy/ketsample/samples/s07slides/s0705para.cdybin5782 -> 0 bytes
-rw-r--r--texmf-dist/doc/support/ketcindy/ketsample/samples/s07slides/s0705paraE.cdybin5714 -> 0 bytes
-rw-r--r--texmf-dist/doc/support/ketcindy/ketsample/samples/s07slides/s0705paraE.txt9
-rw-r--r--texmf-dist/doc/support/ketcindy/ketsample/samples/s07slides/s0706animate.cdybin5856 -> 0 bytes
-rw-r--r--texmf-dist/doc/support/ketcindy/ketsample/samples/s07slides/s0706animate.txt18
-rw-r--r--texmf-dist/doc/support/ketcindy/ketsample/samples/s07slides/s0706animateE.cdybin5801 -> 0 bytes
-rw-r--r--texmf-dist/doc/support/ketcindy/ketsample/samples/s07slides/s0706animateE.txt18
-rw-r--r--texmf-dist/doc/support/ketcindy/ketsample/samples/s08R/s0801plotR.cdybin3926 -> 0 bytes
-rw-r--r--texmf-dist/doc/support/ketcindy/ketsample/samples/s08R/s0802plotR2.cdybin5238 -> 0 bytes
-rw-r--r--texmf-dist/doc/support/ketcindy/ketsample/samples/s08R/s0803boxplot.cdybin4120 -> 0 bytes
-rw-r--r--texmf-dist/doc/support/ketcindy/ketsample/samples/s08R/s0804histplot.cdybin4203 -> 0 bytes
-rw-r--r--texmf-dist/doc/support/ketcindy/ketsample/samples/s08R/s0805random.cdybin3804 -> 0 bytes
-rw-r--r--texmf-dist/doc/support/ketcindy/ketsample/samples/s08R/s0806dataframe.cdybin3915 -> 0 bytes
-rw-r--r--texmf-dist/doc/support/ketcindy/ketsample/samples/s08R/s0807timecount.cdybin3906 -> 0 bytes
-rw-r--r--texmf-dist/doc/support/ketcindy/ketsample/samples/s08R/s0808ttest.cdybin3859 -> 0 bytes
-rw-r--r--texmf-dist/doc/support/ketcindy/ketsample/samples/s09surface/s0901paraboloid.cdybin5474 -> 0 bytes
-rw-r--r--texmf-dist/doc/support/ketcindy/ketsample/samples/s09surface/s0902cone.cdybin5302 -> 0 bytes
-rw-r--r--texmf-dist/doc/support/ketcindy/ketsample/samples/s09surface/s0903saddle.cdybin5204 -> 0 bytes
-rw-r--r--texmf-dist/doc/support/ketcindy/ketsample/samples/s09surface/s0904mant.cdybin5246 -> 0 bytes
-rw-r--r--texmf-dist/doc/support/ketcindy/ketsample/samples/s09surface/s0905sphere.cdybin5208 -> 0 bytes
-rw-r--r--texmf-dist/doc/support/ketcindy/ketsample/samples/s09surface/s0906curveonsurf.cdybin5299 -> 0 bytes
-rw-r--r--texmf-dist/doc/support/ketcindy/ketsample/samples/s09surface/s0907intersectcrvsf.cdybin5469 -> 0 bytes
-rw-r--r--texmf-dist/doc/support/ketcindy/ketsample/samples/s09surface/s0908multisurfaces.cdybin5256 -> 0 bytes
-rw-r--r--texmf-dist/doc/support/ketcindy/ketsample/samples/s09surface/s0909wiredata.cdybin5259 -> 0 bytes
-rw-r--r--texmf-dist/doc/support/ketcindy/ketsample/samples/s09surface/s0910conecut.cdybin5253 -> 0 bytes
-rw-r--r--texmf-dist/doc/support/ketcindy/ketsample/samples/s09surface/s0921totaldiffskeleton.cdybin6136 -> 0 bytes
-rw-r--r--texmf-dist/doc/support/ketcindy/ketsample/samples/s09surface/s0922conecutmaxima.cdybin7534 -> 0 bytes
-rw-r--r--texmf-dist/doc/support/ketcindy/ketsample/samples/s10maxima/s1000list.cdybin3813 -> 0 bytes
-rw-r--r--texmf-dist/doc/support/ketcindy/ketsample/samples/s10maxima/s1001basic.cdybin4019 -> 0 bytes
-rw-r--r--texmf-dist/doc/support/ketcindy/ketsample/samples/s10maxima/s1002equation.cdybin3847 -> 0 bytes
-rw-r--r--texmf-dist/doc/support/ketcindy/ketsample/samples/s10maxima/s1003trig.cdybin3884 -> 0 bytes
-rw-r--r--texmf-dist/doc/support/ketcindy/ketsample/samples/s10maxima/s1004calcby.cdybin4067 -> 0 bytes
-rw-r--r--texmf-dist/doc/support/ketcindy/ketsample/samples/s10maxima/s1005diffint.cdybin3826 -> 0 bytes
-rw-r--r--texmf-dist/doc/support/ketcindy/ketsample/samples/s10maxima/s1006calculus.cdybin3908 -> 0 bytes
-rw-r--r--texmf-dist/doc/support/ketcindy/ketsample/samples/s10maxima/s1007linalg.cdybin4122 -> 0 bytes
-rw-r--r--texmf-dist/doc/support/ketcindy/ketsample/samples/s10maxima/s1008idtable.cdybin4208 -> 0 bytes
-rw-r--r--texmf-dist/doc/support/ketcindy/ketsample/samples/s10maxima/s1009diffeq.cdybin4078 -> 0 bytes
-rw-r--r--texmf-dist/doc/support/ketcindy/ketsample/samples/s10maxima/s1010fourier.cdybin4600 -> 0 bytes
-rw-r--r--texmf-dist/doc/support/ketcindy/ketsample/samples/s10maxima/s1010fourier2.cdybin4925 -> 0 bytes
-rw-r--r--texmf-dist/doc/support/ketcindy/ketsample/samples/s10maxima/s1010fourier3.cdybin4750 -> 0 bytes
-rw-r--r--texmf-dist/doc/support/ketcindy/ketsample/samples/s10maxima/s1011matrixop.cdybin3846 -> 0 bytes
-rw-r--r--texmf-dist/doc/support/ketcindy/ketsample/samples/s10maxima/s1011matrixop2.cdybin5087 -> 0 bytes
-rw-r--r--texmf-dist/doc/support/ketcindy/ketsample/samples/s10maxima/s1012fourierpw.cdybin4804 -> 0 bytes
-rw-r--r--texmf-dist/doc/support/ketcindy/ketsample/samples/s10maxima/s1013for.cdybin3883 -> 0 bytes
-rw-r--r--texmf-dist/doc/support/ketcindy/ketsample/samples/s10maxima/s1014incdec2.cdybin4418 -> 0 bytes
-rw-r--r--texmf-dist/doc/support/ketcindy/ketsample/samples/s10maxima/s1015primenumber.cdybin3973 -> 0 bytes
-rw-r--r--texmf-dist/doc/support/ketcindy/ketsample/samples/s11asir/s1100list.cdybin3785 -> 0 bytes
-rw-r--r--texmf-dist/doc/support/ketcindy/ketsample/samples/s11asir/s1101calculator1.cdybin3858 -> 0 bytes
-rw-r--r--texmf-dist/doc/support/ketcindy/ketsample/samples/s11asir/s1102calculator2.cdybin3847 -> 0 bytes
-rw-r--r--texmf-dist/doc/support/ketcindy/ketsample/samples/s11asir/s1103calcby.cdybin3869 -> 0 bytes
-rw-r--r--texmf-dist/doc/support/ketcindy/ketsample/samples/s11asir/s1104diff.cdybin3881 -> 0 bytes
-rw-r--r--texmf-dist/doc/support/ketcindy/ketsample/samples/s11asir/s1105fint101.cdybin3913 -> 0 bytes
-rw-r--r--texmf-dist/doc/support/ketcindy/ketsample/samples/s11asir/s1105fzero109.cdybin3862 -> 0 bytes
-rw-r--r--texmf-dist/doc/support/ketcindy/ketsample/samples/s11asir/s1106fmmx110.cdybin3850 -> 0 bytes
-rw-r--r--texmf-dist/doc/support/ketcindy/ketsample/samples/s11asir/s1110integrate.cdybin3993 -> 0 bytes
-rw-r--r--texmf-dist/doc/support/ketcindy/ketsample/samples/s11asir/s1111grobner1.cdybin3022 -> 0 bytes
-rw-r--r--texmf-dist/doc/support/ketcindy/ketsample/samples/s11asir/s1112residue.cdybin4172 -> 0 bytes
-rw-r--r--texmf-dist/doc/support/ketcindy/ketsample/samples/s12fricas/s1201integrate.cdybin4069 -> 0 bytes
-rw-r--r--texmf-dist/doc/support/ketcindy/ketsample/samples/s12fricas/s1201integrate2.cdybin3805 -> 0 bytes
-rw-r--r--texmf-dist/doc/support/ketcindy/ketsample/samples/s12fricas/s1202calcby.cdybin3069 -> 0 bytes
-rw-r--r--texmf-dist/doc/support/ketcindy/ketsample/samples/s12fricas/s1202equations.cdybin3134 -> 0 bytes
-rw-r--r--texmf-dist/doc/support/ketcindy/ketsample/samples/s13meshlab/s1301basic.cdybin5346 -> 0 bytes
-rw-r--r--texmf-dist/doc/support/ketcindy/ketsample/samples/s13meshlab/s1303objparts.cdybin5561 -> 0 bytes
-rw-r--r--texmf-dist/doc/support/ketcindy/ketsample/samples/s13meshlab/s1304symbol.cdybin5381 -> 0 bytes
-rw-r--r--texmf-dist/doc/support/ketcindy/ketsample/samples/s13meshlab/s1305hyperpara.cdybin5415 -> 0 bytes
-rw-r--r--texmf-dist/doc/support/ketcindy/ketsample/samples/s13meshlab/s1306poly.cdybin6958 -> 0 bytes
-rw-r--r--texmf-dist/doc/support/ketcindy/ketsample/samples/s13meshlab/s1307poly2.cdybin8229 -> 0 bytes
-rw-r--r--texmf-dist/doc/support/ketcindy/ketsample/samples/s13meshlab/s1308discont.cdybin5799 -> 0 bytes
-rw-r--r--texmf-dist/doc/support/ketcindy/ketsample/samples/s13meshlab/s1309discont2.cdybin5955 -> 0 bytes
-rw-r--r--texmf-dist/doc/support/ketcindy/ketsample/samples/s13meshlab/s1310totaldiff.cdybin4613 -> 0 bytes
-rw-r--r--texmf-dist/doc/support/ketcindy/ketsample/samples/s13meshlab/s1311plate.cdybin6684 -> 0 bytes
-rw-r--r--texmf-dist/doc/support/ketcindy/ketsample/samples/s13meshlab/s1312plane.cdybin7332 -> 0 bytes
-rw-r--r--texmf-dist/doc/support/ketcindy/ketsample/samples/s13meshlab/s1313changescale.cdybin8193 -> 0 bytes
-rw-r--r--texmf-dist/doc/support/ketcindy/ketsample/samples/s14dataprocessing/s1401csvprocessing.cdybin3934 -> 0 bytes
-rw-r--r--texmf-dist/doc/support/ketcindy/ketsample/samples/s14dataprocessing/s1402copypaste.cdybin4409 -> 0 bytes
-rw-r--r--texmf-dist/doc/support/ketcindy/ketsample/samples/s14dataprocessing/s1403maketableJ.cdybin7508 -> 0 bytes
-rw-r--r--texmf-dist/doc/support/ketcindy/ketsample/samples/s14dataprocessing/sample1.csv10
-rw-r--r--texmf-dist/doc/support/ketcindy/ketsample/samples/s14dataprocessing/sample2.csv10
-rw-r--r--texmf-dist/doc/support/ketcindy/ketsample/samples/s15C/s1501mant.cdybin5558 -> 0 bytes
-rw-r--r--texmf-dist/doc/support/ketcindy/ketsample/samples/s15C/s1502torus.cdybin5598 -> 0 bytes
-rw-r--r--texmf-dist/doc/support/ketcindy/ketsample/samples/s15C/s1503parabola.cdybin5700 -> 0 bytes
-rw-r--r--texmf-dist/doc/support/ketcindy/ketsample/samples/s15C/s1504conecut.cdybin5667 -> 0 bytes
-rw-r--r--texmf-dist/doc/support/ketcindy/ketsample/samples/s15C/s1505skeleton.cdybin5654 -> 0 bytes
-rwxr-xr-xtexmf-dist/doc/support/ketcindy/ketsample/samplesJS/js01basic.cdybin4683 -> 0 bytes
-rw-r--r--texmf-dist/doc/support/ketcindy/ketsample/samplesJS/js02diffeq2.cdybin6006 -> 0 bytes
-rwxr-xr-xtexmf-dist/doc/support/ketcindy/ketsample/samplesJS/js03gamow.cdybin4674 -> 0 bytes
-rw-r--r--texmf-dist/doc/support/ketcindy/source/ketjava/KetCindyPlugin.java430
-rw-r--r--texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/ForRef-Arrowhead-1.tex64
-rw-r--r--texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/ForRef-Arrowhead-10.tex24
-rw-r--r--texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/ForRef-Arrowhead-2.tex46
-rw-r--r--texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/ForRef-Arrowhead-3.tex46
-rw-r--r--texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/ForRef-Arrowhead-4.tex46
-rw-r--r--texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/ForRef-Arrowhead-5.tex43
-rw-r--r--texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/ForRef-Arrowhead-6.tex26
-rw-r--r--texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/ForRef-Arrowhead-7.tex24
-rw-r--r--texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/ForRef-Arrowhead-8.tex24
-rw-r--r--texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/ForRef-Arrowhead-9.tex21
-rw-r--r--texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/ForRef-Arrowhead-ya1.tex32
-rw-r--r--texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/HatchZuKita1.tex115
-rw-r--r--texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/HatchZuKita2.tex67
-rw-r--r--texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/HatchZuKita3.tex117
-rw-r--r--texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/HatchZuKita4.tex69
-rw-r--r--texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/HatchZuKita5.tex103
-rw-r--r--texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/HatchZuKita6.tex179
-rw-r--r--texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/HatchZuKita7.tex102
-rw-r--r--texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/HatchZuKita8.tex128
-rw-r--r--texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/HatchZuKita9.tex137
-rw-r--r--texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/Nearestpt.tex104
-rw-r--r--texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/Nearestpt1.tex108
-rw-r--r--texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/addax1.tex44
-rw-r--r--texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/addax2.tex25
-rw-r--r--texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/addgraph.tex651
-rw-r--r--texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/anglemark.tex48
-rw-r--r--texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/arrowdata.tex72
-rw-r--r--texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/arrowhead.tex38
-rw-r--r--texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/assign.tex361
-rw-r--r--texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/binvsnormal.tex94
-rw-r--r--texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/bowdata.tex74
-rw-r--r--texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/bowdata2.tex248
-rw-r--r--texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/boxplot.tex115
-rw-r--r--texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/checkCR.tex52
-rw-r--r--texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/checkb1.tex38
-rw-r--r--texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/checkb10.tex175
-rw-r--r--texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/checkb11.tex78
-rw-r--r--texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/checkb2.tex47
-rw-r--r--texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/checkb3.tex65
-rw-r--r--texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/checkb4.tex146
-rw-r--r--texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/checkb5.tex66
-rw-r--r--texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/checkb6.tex63
-rw-r--r--texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/checkb7.tex92
-rw-r--r--texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/checkb8.tex75
-rw-r--r--texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/checkb9.tex57
-rw-r--r--texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/checkbe1.tex38
-rw-r--r--texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/checkbe2.tex47
-rw-r--r--texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/checkbe3.tex65
-rw-r--r--texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/checkbe4.tex66
-rw-r--r--texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/checkbe5.tex63
-rw-r--r--texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/checkbe6.tex92
-rw-r--r--texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/checkbe7.tex105
-rw-r--r--texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/checkbe8.tex100
-rw-r--r--texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/checkbmain.tex17
-rw-r--r--texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/checkbs1.tex61
-rw-r--r--texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/checkbs2.tex56
-rw-r--r--texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/checkmc1.tex146
-rw-r--r--texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/checkmp1.tex75
-rw-r--r--texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/checkmp2.tex78
-rw-r--r--texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/checkmp3.tex57
-rw-r--r--texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/checkmp4.tex175
-rw-r--r--texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/checksm1.tex112
-rw-r--r--texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/checksm2.tex112
-rw-r--r--texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/checksy1.tex104
-rw-r--r--texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/checksy2.tex104
-rw-r--r--texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/circledata1.tex76
-rw-r--r--texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/circledata2.tex43
-rw-r--r--texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/circledata3.tex43
-rw-r--r--texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/circledata4.tex41
-rw-r--r--texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/circledata5.tex27
-rw-r--r--texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/colortable1-34.tex1936
-rw-r--r--texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/colortable35-68.tex1934
-rw-r--r--texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/colortablee1-34.tex1936
-rw-r--r--texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/colortablee35-68.tex1934
-rw-r--r--texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/concept.tex403
-rw-r--r--texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/crosspoint.tex68
-rw-r--r--texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/deffun.tex48
-rw-r--r--texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/deqplot1.tex56
-rw-r--r--texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/deqplot2.tex56
-rw-r--r--texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/deqplot3.tex69
-rw-r--r--texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/derivative.tex63
-rw-r--r--texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/drawpoint.tex14
-rw-r--r--texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/drwxy.tex112
-rw-r--r--texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/ellipseplot1.tex92
-rw-r--r--texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/ellipseplot2.tex72
-rw-r--r--texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/enclosing.tex302
-rw-r--r--texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/expr.tex70
-rw-r--r--texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/fontsize.tex70
-rw-r--r--texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/fourier.tex99
-rw-r--r--texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/hatch1.tex136
-rw-r--r--texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/hatch2.tex275
-rw-r--r--texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/hatch3.tex203
-rw-r--r--texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/hatch4.tex172
-rw-r--r--texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/hatch5.tex136
-rw-r--r--texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/histgram.tex137
-rw-r--r--texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/htickmark.tex123
-rw-r--r--texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/hyper1.tex145
-rw-r--r--texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/intersectcrvs1.tex83
-rw-r--r--texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/intersectcrvs2.tex83
-rw-r--r--texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/intlog.tex247
-rw-r--r--texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/inversefun.tex48
-rw-r--r--texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/joincrvs.tex92
-rw-r--r--texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/letter.tex57
-rw-r--r--texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/letter2.tex61
-rw-r--r--texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/letter3.tex118
-rw-r--r--texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/letter4.tex545
-rw-r--r--texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/lineplot.tex80
-rw-r--r--texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/listplot1.tex10
-rw-r--r--texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/listplot2.tex376
-rw-r--r--texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/listplot3.tex61
-rw-r--r--texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/maxfun01.tex43
-rw-r--r--texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/maxfun02.tex75
-rw-r--r--texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/mxtex01.pngbin36618 -> 0 bytes
-rw-r--r--texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/mxtex02.tex18
-rw-r--r--texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/mxtex03.tex64
-rw-r--r--texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/numptcrv.tex299
-rw-r--r--texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/ovaldata.tex123
-rw-r--r--texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/parabolaplot.pngbin77713 -> 0 bytes
-rw-r--r--texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/parabolaplot.tex141
-rw-r--r--texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/paramark.tex43
-rw-r--r--texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/paramoncrv.tex118
-rw-r--r--texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/paramplot1.tex40
-rw-r--r--texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/paramplot2.tex77
-rw-r--r--texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/partcrv.tex111
-rw-r--r--texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/partcrv1.tex63
-rw-r--r--texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/partcrv2.tex69
-rw-r--r--texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/partcrv3.tex134
-rw-r--r--texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/partcrv4.tex137
-rw-r--r--texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/plotdata1.tex37
-rw-r--r--texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/plotdata2.tex40
-rw-r--r--texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/plotdata3.tex100
-rw-r--r--texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/plotdata4.tex62
-rw-r--r--texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/plotdata5.tex57
-rw-r--r--texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/poiintable.tex153
-rw-r--r--texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/pointdata.tex21
-rw-r--r--texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/pointoncrv.tex118
-rw-r--r--texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/pointsize.tex43
-rw-r--r--texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/poison01.tex87
-rw-r--r--texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/ptcrv.tex106
-rw-r--r--texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/ptstart.tex147
-rw-r--r--texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/putcell.tex143
-rw-r--r--texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/putcol.tex188
-rw-r--r--texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/putintersect.tex99
-rw-r--r--texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/putoncurve.tex48
-rw-r--r--texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/reflectdata.tex161
-rw-r--r--texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/reflectpoint.tex128
-rw-r--r--texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/rotatedata.tex126
-rw-r--r--texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/rotatepoint.tex140
-rw-r--r--texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/rshade.tex72
-rw-r--r--texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/ruler.tex66
-rw-r--r--texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/scaledata.tex126
-rw-r--r--texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/scalepoint.tex71
-rw-r--r--texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/scatter.tex204
-rw-r--r--texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/segmark.tex52
-rw-r--r--texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/setax(theta).tex43
-rw-r--r--texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/setax.tex43
-rw-r--r--texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/setcolor.pdfbin8589 -> 0 bytes
-rw-r--r--texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/setorigin.pngbin10537 -> 0 bytes
-rw-r--r--texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/setorigin.tex37
-rw-r--r--texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/setscaling.tex80
-rw-r--r--texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/settable1.tex170
-rw-r--r--texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/settable2.tex142
-rw-r--r--texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/shade.tex103
-rw-r--r--texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/shade01.tex122
-rw-r--r--texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/slot.pngbin65370 -> 0 bytes
-rw-r--r--texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/tab2list00.pngbin33252 -> 0 bytes
-rw-r--r--texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/tab2list001.pngbin33938 -> 0 bytes
-rw-r--r--texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/tab2list01.pngbin24680 -> 0 bytes
-rw-r--r--texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/tab2list02.pngbin25727 -> 0 bytes
-rw-r--r--texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/tab2list03.pngbin65097 -> 0 bytes
-rw-r--r--texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/tab2list04.pngbin40076 -> 0 bytes
-rw-r--r--texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/table01.pngbin29973 -> 0 bytes
-rw-r--r--texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/table02.tex106
-rw-r--r--texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/table03.pngbin29022 -> 0 bytes
-rw-r--r--texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/tablesample1.tex182
-rw-r--r--texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/tablesample2.tex258
-rw-r--r--texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/tableseg.tex162
-rw-r--r--texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/taylor.tex60
-rw-r--r--texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/translatedata.tex141
-rw-r--r--texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/translatepoint.tex63
-rw-r--r--texmf-dist/doc/support/ketcindy/source/ketmanual/Fig3d/3dscreen.pngbin156863 -> 0 bytes
-rw-r--r--texmf-dist/doc/support/ketcindy/source/ketmanual/Fig3d/3dstart.pngbin143812 -> 0 bytes
-rw-r--r--texmf-dist/doc/support/ketcindy/source/ketmanual/Fig3d/IntersectsgpL0.pngbin124126 -> 0 bytes
-rw-r--r--texmf-dist/doc/support/ketcindy/source/ketmanual/Fig3d/IntersectsgpL1.tex68
-rw-r--r--texmf-dist/doc/support/ketcindy/source/ketmanual/Fig3d/IntersectsgpL2.tex118
-rw-r--r--texmf-dist/doc/support/ketcindy/source/ketmanual/Fig3d/bezier3d1.tex123
-rw-r--r--texmf-dist/doc/support/ketcindy/source/ketmanual/Fig3d/concatobj.tex42
-rw-r--r--texmf-dist/doc/support/ketcindy/source/ketmanual/Fig3d/crvsfparadata1.tex74
-rw-r--r--texmf-dist/doc/support/ketcindy/source/ketmanual/Fig3d/crvsfparadata2.tex139
-rw-r--r--texmf-dist/doc/support/ketcindy/source/ketmanual/Fig3d/embed01.tex79
-rw-r--r--texmf-dist/doc/support/ketcindy/source/ketmanual/Fig3d/embed02.tex82
-rw-r--r--texmf-dist/doc/support/ketcindy/source/ketmanual/Fig3d/embed03.pngbin102967 -> 0 bytes
-rw-r--r--texmf-dist/doc/support/ketcindy/source/ketmanual/Fig3d/invparapt.tex110
-rw-r--r--texmf-dist/doc/support/ketcindy/source/ketmanual/Fig3d/nohiddenbyfaces1.tex105
-rw-r--r--texmf-dist/doc/support/ketcindy/source/ketmanual/Fig3d/nohiddenbyfaces2.tex58
-rw-r--r--texmf-dist/doc/support/ketcindy/source/ketmanual/Fig3d/parabola.tex335
-rw-r--r--texmf-dist/doc/support/ketcindy/source/ketmanual/Fig3d/partcrv3d1.tex78
-rw-r--r--texmf-dist/doc/support/ketcindy/source/ketmanual/Fig3d/partcrv3d2.tex129
-rw-r--r--texmf-dist/doc/support/ketcindy/source/ketmanual/Fig3d/perpplane.tex69
-rw-r--r--texmf-dist/doc/support/ketcindy/source/ketmanual/Fig3d/perppt.tex58
-rw-r--r--texmf-dist/doc/support/ketcindy/source/ketmanual/Fig3d/phparadata01.pngbin218251 -> 0 bytes
-rw-r--r--texmf-dist/doc/support/ketcindy/source/ketmanual/Fig3d/phparadata02.tex118
-rw-r--r--texmf-dist/doc/support/ketcindy/source/ketmanual/Fig3d/phparadata03.tex272
-rw-r--r--texmf-dist/doc/support/ketcindy/source/ketmanual/Fig3d/rasen.tex55
-rw-r--r--texmf-dist/doc/support/ketcindy/source/ketmanual/Fig3d/readobj.tex64
-rw-r--r--texmf-dist/doc/support/ketcindy/source/ketmanual/Fig3d/rotatedata3d01.tex85
-rw-r--r--texmf-dist/doc/support/ketcindy/source/ketmanual/Fig3d/rotatedata3d02.tex85
-rw-r--r--texmf-dist/doc/support/ketcindy/source/ketmanual/Fig3d/saddle1.tex326
-rw-r--r--texmf-dist/doc/support/ketcindy/source/ketmanual/Fig3d/sf3ddata3.tex312
-rw-r--r--texmf-dist/doc/support/ketcindy/source/ketmanual/Fig3d/sf3ddata4.tex326
-rw-r--r--texmf-dist/doc/support/ketcindy/source/ketmanual/Fig3d/sfbdpara01.tex72
-rw-r--r--texmf-dist/doc/support/ketcindy/source/ketmanual/Fig3d/sfbdpara02.tex91
-rw-r--r--texmf-dist/doc/support/ketcindy/source/ketmanual/Fig3d/sfbdpara03.tex42
-rw-r--r--texmf-dist/doc/support/ketcindy/source/ketmanual/Fig3d/sfbdpara04.tex51
-rw-r--r--texmf-dist/doc/support/ketcindy/source/ketmanual/Fig3d/skeletonparadata01.tex81
-rw-r--r--texmf-dist/doc/support/ketcindy/source/ketmanual/Fig3d/skeletonparadata02.tex76
-rw-r--r--texmf-dist/doc/support/ketcindy/source/ketmanual/Fig3d/skeletonparadata03.tex68
-rw-r--r--texmf-dist/doc/support/ketcindy/source/ketmanual/Fig3d/translate01.tex53
-rw-r--r--texmf-dist/doc/support/ketcindy/source/ketmanual/Fig3d/vertex01.tex20
-rw-r--r--texmf-dist/doc/support/ketcindy/source/ketmanual/Fig3d/wirepara1.tex202
-rw-r--r--texmf-dist/doc/support/ketcindy/source/ketmanual/Fig3d/wirepara2.tex179
-rw-r--r--texmf-dist/doc/support/ketcindy/source/ketmanual/Fig3d/wirepara3.tex265
-rw-r--r--texmf-dist/doc/support/ketcindy/source/ketmanual/Fig3d/wirepara4.tex320
-rw-r--r--texmf-dist/doc/support/ketcindy/source/ketmanual/Fig3d/wirepara5.tex253
-rw-r--r--texmf-dist/doc/support/ketcindy/source/ketmanual/Figmv/moviedata01.pngbin82502 -> 0 bytes
-rw-r--r--texmf-dist/doc/support/ketcindy/source/ketmanual/Figmv/mvgaiyou01.pngbin94798 -> 0 bytes
-rw-r--r--texmf-dist/doc/support/ketcindy/source/ketmanual/Figmv/templatemvmoviefigs.tex9302
-rw-r--r--texmf-dist/doc/support/ketcindy/source/ketmanual/Gfig/oresenex01.tex83
-rw-r--r--texmf-dist/doc/support/ketcindy/source/ketmanual/KeTCindyReferenceJ.pdfbin1821529 -> 0 bytes
-rw-r--r--texmf-dist/doc/support/ketcindy/source/ketmanual/KeTCindyReferenceJ.tex5842
-rw-r--r--texmf-dist/doc/support/ketcindy/source/ketmanual/referenceR4_2_2_ltd.tex1422
-rw-r--r--texmf-dist/doc/support/ketcindy/source/ketmanual/refketlayer20161211J.tex273
-rw-r--r--texmf-dist/doc/support/ketcindy/source/ketmanual/refketpic161211J.pdfbin47109 -> 0 bytes
-rw-r--r--texmf-dist/doc/support/ketcindy/source/ketmanual/refketpic161211J.tex90
-rw-r--r--texmf-dist/doc/support/ketcindy/source/ketmanual/refketslide161211.tex72
-rw-r--r--texmf-dist/scripts/ketcindy/LICENSE.txt14
-rw-r--r--texmf-dist/scripts/ketcindy/data/fontF/0Small.pngbin44733 -> 0 bytes
-rw-r--r--texmf-dist/scripts/ketcindy/data/fontF/0Smalla-h.pngbin53016 -> 0 bytes
-rw-r--r--texmf-dist/scripts/ketcindy/data/fontF/0Smalli-o.pngbin50904 -> 0 bytes
-rw-r--r--texmf-dist/scripts/ketcindy/data/fontF/0Smallp-w.pngbin50873 -> 0 bytes
-rw-r--r--texmf-dist/scripts/ketcindy/data/fontF/0Smallxyz.pngbin25488 -> 0 bytes
-rw-r--r--texmf-dist/scripts/ketcindy/data/fontF/nsi.cdybin150809 -> 0 bytes
-rw-r--r--texmf-dist/scripts/ketcindy/data/fontF/nsi.txt29
-rw-r--r--texmf-dist/scripts/ketcindy/data/fontF/pcr.cdybin17929 -> 0 bytes
-rw-r--r--texmf-dist/scripts/ketcindy/data/fontF/pcr.txt26
-rw-r--r--texmf-dist/scripts/ketcindy/data/fontF/qcr.cdybin17298 -> 0 bytes
-rw-r--r--texmf-dist/scripts/ketcindy/data/fontF/qcr.txt23
-rw-r--r--texmf-dist/scripts/ketcindy/data/fontF/rcr.cdybin18491 -> 0 bytes
-rw-r--r--texmf-dist/scripts/ketcindy/data/fontF/rcr.txt34
-rw-r--r--texmf-dist/scripts/ketcindy/data/fontF/tsi.cdybin149969 -> 0 bytes
-rw-r--r--texmf-dist/scripts/ketcindy/data/fontF/tsi.txt23
-rw-r--r--texmf-dist/scripts/ketcindy/data/fontF/xsi.cdybin150258 -> 0 bytes
-rw-r--r--texmf-dist/scripts/ketcindy/data/fontF/xsi.txt26
-rw-r--r--texmf-dist/scripts/ketcindy/data/fontF/ysi.cdybin150465 -> 0 bytes
-rw-r--r--texmf-dist/scripts/ketcindy/data/fontF/ysi.txt26
-rw-r--r--texmf-dist/scripts/ketcindy/data/fontF/zsi.cdybin150287 -> 0 bytes
-rw-r--r--texmf-dist/scripts/ketcindy/data/fontF/zsi.txt28
-rw-r--r--texmf-dist/scripts/ketcindy/data/polyhedrons_obj/READMEj(kobayashi-suzuki).txt116
-rw-r--r--texmf-dist/scripts/ketcindy/data/polyhedrons_obj/READMEj(mitani).txt7
-rw-r--r--texmf-dist/scripts/ketcindy/data/polyhedrons_obj/a03.obj14
-rw-r--r--texmf-dist/scripts/ketcindy/data/polyhedrons_obj/a04.obj18
-rw-r--r--texmf-dist/scripts/ketcindy/data/polyhedrons_obj/a05.obj22
-rw-r--r--texmf-dist/scripts/ketcindy/data/polyhedrons_obj/a06.obj26
-rw-r--r--texmf-dist/scripts/ketcindy/data/polyhedrons_obj/a07.obj30
-rw-r--r--texmf-dist/scripts/ketcindy/data/polyhedrons_obj/a08.obj34
-rw-r--r--texmf-dist/scripts/ketcindy/data/polyhedrons_obj/a09.obj38
-rw-r--r--texmf-dist/scripts/ketcindy/data/polyhedrons_obj/a10.obj42
-rw-r--r--texmf-dist/scripts/ketcindy/data/polyhedrons_obj/n01.obj10
-rw-r--r--texmf-dist/scripts/ketcindy/data/polyhedrons_obj/n02.obj12
-rw-r--r--texmf-dist/scripts/ketcindy/data/polyhedrons_obj/n03.obj17
-rw-r--r--texmf-dist/scripts/ketcindy/data/polyhedrons_obj/n04.obj22
-rw-r--r--texmf-dist/scripts/ketcindy/data/polyhedrons_obj/n05.obj27
-rw-r--r--texmf-dist/scripts/ketcindy/data/polyhedrons_obj/n06.obj37
-rw-r--r--texmf-dist/scripts/ketcindy/data/polyhedrons_obj/n07.obj14
-rw-r--r--texmf-dist/scripts/ketcindy/data/polyhedrons_obj/n08.obj18
-rw-r--r--texmf-dist/scripts/ketcindy/data/polyhedrons_obj/n09.obj22
-rw-r--r--texmf-dist/scripts/ketcindy/data/polyhedrons_obj/n10.obj22
-rw-r--r--texmf-dist/scripts/ketcindy/data/polyhedrons_obj/n11.obj27
-rw-r--r--texmf-dist/scripts/ketcindy/data/polyhedrons_obj/n12.obj11
-rw-r--r--texmf-dist/scripts/ketcindy/data/polyhedrons_obj/n13.obj17
-rw-r--r--texmf-dist/scripts/ketcindy/data/polyhedrons_obj/n14.obj17
-rw-r--r--texmf-dist/scripts/ketcindy/data/polyhedrons_obj/n15.obj22
-rw-r--r--texmf-dist/scripts/ketcindy/data/polyhedrons_obj/n16.obj27
-rw-r--r--texmf-dist/scripts/ketcindy/data/polyhedrons_obj/n17.obj26
-rw-r--r--texmf-dist/scripts/ketcindy/data/polyhedrons_obj/n18.obj29
-rw-r--r--texmf-dist/scripts/ketcindy/data/polyhedrons_obj/n19.obj38
-rw-r--r--texmf-dist/scripts/ketcindy/data/polyhedrons_obj/n20.obj47
-rw-r--r--texmf-dist/scripts/ketcindy/data/polyhedrons_obj/n21.obj57
-rw-r--r--texmf-dist/scripts/ketcindy/data/polyhedrons_obj/n22.obj35
-rw-r--r--texmf-dist/scripts/ketcindy/data/polyhedrons_obj/n23.obj46
-rw-r--r--texmf-dist/scripts/ketcindy/data/polyhedrons_obj/n24.obj57
-rw-r--r--texmf-dist/scripts/ketcindy/data/polyhedrons_obj/n25.obj67
-rw-r--r--texmf-dist/scripts/ketcindy/data/polyhedrons_obj/n26.obj16
-rw-r--r--texmf-dist/scripts/ketcindy/data/polyhedrons_obj/n27.obj26
-rw-r--r--texmf-dist/scripts/ketcindy/data/polyhedrons_obj/n28.obj34
-rw-r--r--texmf-dist/scripts/ketcindy/data/polyhedrons_obj/n29.obj34
-rw-r--r--texmf-dist/scripts/ketcindy/data/polyhedrons_obj/n30.obj42
-rw-r--r--texmf-dist/scripts/ketcindy/data/polyhedrons_obj/n31.obj42
-rw-r--r--texmf-dist/scripts/ketcindy/data/polyhedrons_obj/n32.obj52
-rw-r--r--texmf-dist/scripts/ketcindy/data/polyhedrons_obj/n33.obj52
-rw-r--r--texmf-dist/scripts/ketcindy/data/polyhedrons_obj/n34.obj62
-rw-r--r--texmf-dist/scripts/ketcindy/data/polyhedrons_obj/n35.obj38
-rw-r--r--texmf-dist/scripts/ketcindy/data/polyhedrons_obj/n36.obj38
-rw-r--r--texmf-dist/scripts/ketcindy/data/polyhedrons_obj/n37.obj50
-rw-r--r--texmf-dist/scripts/ketcindy/data/polyhedrons_obj/n38.obj62
-rw-r--r--texmf-dist/scripts/ketcindy/data/polyhedrons_obj/n39.obj62
-rw-r--r--texmf-dist/scripts/ketcindy/data/polyhedrons_obj/n40.obj72
-rw-r--r--texmf-dist/scripts/ketcindy/data/polyhedrons_obj/n41.obj72
-rw-r--r--texmf-dist/scripts/ketcindy/data/polyhedrons_obj/n42.obj82
-rw-r--r--texmf-dist/scripts/ketcindy/data/polyhedrons_obj/n43.obj82
-rw-r--r--texmf-dist/scripts/ketcindy/data/polyhedrons_obj/n44L.obj44
-rw-r--r--texmf-dist/scripts/ketcindy/data/polyhedrons_obj/n44R.obj44
-rw-r--r--texmf-dist/scripts/ketcindy/data/polyhedrons_obj/n45L.obj58
-rw-r--r--texmf-dist/scripts/ketcindy/data/polyhedrons_obj/n45R.obj58
-rw-r--r--texmf-dist/scripts/ketcindy/data/polyhedrons_obj/n46L.obj72
-rw-r--r--texmf-dist/scripts/ketcindy/data/polyhedrons_obj/n46R.obj72
-rw-r--r--texmf-dist/scripts/ketcindy/data/polyhedrons_obj/n47L.obj82
-rw-r--r--texmf-dist/scripts/ketcindy/data/polyhedrons_obj/n47R.obj82
-rw-r--r--texmf-dist/scripts/ketcindy/data/polyhedrons_obj/n48L.obj92
-rw-r--r--texmf-dist/scripts/ketcindy/data/polyhedrons_obj/n48R.obj92
-rw-r--r--texmf-dist/scripts/ketcindy/data/polyhedrons_obj/n49.obj15
-rw-r--r--texmf-dist/scripts/ketcindy/data/polyhedrons_obj/n50.obj19
-rw-r--r--texmf-dist/scripts/ketcindy/data/polyhedrons_obj/n51.obj23
-rw-r--r--texmf-dist/scripts/ketcindy/data/polyhedrons_obj/n52.obj21
-rw-r--r--texmf-dist/scripts/ketcindy/data/polyhedrons_obj/n53.obj25
-rw-r--r--texmf-dist/scripts/ketcindy/data/polyhedrons_obj/n54.obj24
-rw-r--r--texmf-dist/scripts/ketcindy/data/polyhedrons_obj/n55.obj28
-rw-r--r--texmf-dist/scripts/ketcindy/data/polyhedrons_obj/n56.obj28
-rw-r--r--texmf-dist/scripts/ketcindy/data/polyhedrons_obj/n57.obj32
-rw-r--r--texmf-dist/scripts/ketcindy/data/polyhedrons_obj/n58.obj37
-rw-r--r--texmf-dist/scripts/ketcindy/data/polyhedrons_obj/n59.obj42
-rw-r--r--texmf-dist/scripts/ketcindy/data/polyhedrons_obj/n60.obj42
-rw-r--r--texmf-dist/scripts/ketcindy/data/polyhedrons_obj/n61.obj47
-rw-r--r--texmf-dist/scripts/ketcindy/data/polyhedrons_obj/n62.obj22
-rw-r--r--texmf-dist/scripts/ketcindy/data/polyhedrons_obj/n63.obj17
-rw-r--r--texmf-dist/scripts/ketcindy/data/polyhedrons_obj/n64.obj20
-rw-r--r--texmf-dist/scripts/ketcindy/data/polyhedrons_obj/n65.obj29
-rw-r--r--texmf-dist/scripts/ketcindy/data/polyhedrons_obj/n66.obj50
-rw-r--r--texmf-dist/scripts/ketcindy/data/polyhedrons_obj/n67.obj62
-rw-r--r--texmf-dist/scripts/ketcindy/data/polyhedrons_obj/n68.obj107
-rw-r--r--texmf-dist/scripts/ketcindy/data/polyhedrons_obj/n69.obj122
-rw-r--r--texmf-dist/scripts/ketcindy/data/polyhedrons_obj/n70.obj122
-rw-r--r--texmf-dist/scripts/ketcindy/data/polyhedrons_obj/n71.obj137
-rw-r--r--texmf-dist/scripts/ketcindy/data/polyhedrons_obj/n72.obj122
-rw-r--r--texmf-dist/scripts/ketcindy/data/polyhedrons_obj/n73.obj122
-rw-r--r--texmf-dist/scripts/ketcindy/data/polyhedrons_obj/n74.obj122
-rw-r--r--texmf-dist/scripts/ketcindy/data/polyhedrons_obj/n75.obj122
-rw-r--r--texmf-dist/scripts/ketcindy/data/polyhedrons_obj/n76.obj107
-rw-r--r--texmf-dist/scripts/ketcindy/data/polyhedrons_obj/n77.obj107
-rw-r--r--texmf-dist/scripts/ketcindy/data/polyhedrons_obj/n78.obj107
-rw-r--r--texmf-dist/scripts/ketcindy/data/polyhedrons_obj/n79.obj107
-rw-r--r--texmf-dist/scripts/ketcindy/data/polyhedrons_obj/n80.obj92
-rw-r--r--texmf-dist/scripts/ketcindy/data/polyhedrons_obj/n81.obj92
-rw-r--r--texmf-dist/scripts/ketcindy/data/polyhedrons_obj/n82.obj92
-rw-r--r--texmf-dist/scripts/ketcindy/data/polyhedrons_obj/n83.obj77
-rw-r--r--texmf-dist/scripts/ketcindy/data/polyhedrons_obj/n84.obj20
-rw-r--r--texmf-dist/scripts/ketcindy/data/polyhedrons_obj/n85.obj42
-rw-r--r--texmf-dist/scripts/ketcindy/data/polyhedrons_obj/n86.obj24
-rw-r--r--texmf-dist/scripts/ketcindy/data/polyhedrons_obj/n87.obj28
-rw-r--r--texmf-dist/scripts/ketcindy/data/polyhedrons_obj/n88.obj30
-rw-r--r--texmf-dist/scripts/ketcindy/data/polyhedrons_obj/n89.obj35
-rw-r--r--texmf-dist/scripts/ketcindy/data/polyhedrons_obj/n90.obj40
-rw-r--r--texmf-dist/scripts/ketcindy/data/polyhedrons_obj/n91.obj28
-rw-r--r--texmf-dist/scripts/ketcindy/data/polyhedrons_obj/n92.obj38
-rw-r--r--texmf-dist/scripts/ketcindy/data/polyhedrons_obj/p03.obj11
-rw-r--r--texmf-dist/scripts/ketcindy/data/polyhedrons_obj/p04.obj14
-rw-r--r--texmf-dist/scripts/ketcindy/data/polyhedrons_obj/p05.obj17
-rw-r--r--texmf-dist/scripts/ketcindy/data/polyhedrons_obj/p06.obj20
-rw-r--r--texmf-dist/scripts/ketcindy/data/polyhedrons_obj/p07.obj23
-rw-r--r--texmf-dist/scripts/ketcindy/data/polyhedrons_obj/p08.obj26
-rw-r--r--texmf-dist/scripts/ketcindy/data/polyhedrons_obj/p09.obj29
-rw-r--r--texmf-dist/scripts/ketcindy/data/polyhedrons_obj/p10.obj32
-rw-r--r--texmf-dist/scripts/ketcindy/data/polyhedrons_obj/r01.obj8
-rw-r--r--texmf-dist/scripts/ketcindy/data/polyhedrons_obj/r02.obj14
-rw-r--r--texmf-dist/scripts/ketcindy/data/polyhedrons_obj/r03.obj14
-rw-r--r--texmf-dist/scripts/ketcindy/data/polyhedrons_obj/r04.obj32
-rw-r--r--texmf-dist/scripts/ketcindy/data/polyhedrons_obj/r05.obj32
-rw-r--r--texmf-dist/scripts/ketcindy/data/polyhedrons_obj/s01.obj26
-rw-r--r--texmf-dist/scripts/ketcindy/data/polyhedrons_obj/s02.obj62
-rw-r--r--texmf-dist/scripts/ketcindy/data/polyhedrons_obj/s03.obj20
-rw-r--r--texmf-dist/scripts/ketcindy/data/polyhedrons_obj/s04.obj38
-rw-r--r--texmf-dist/scripts/ketcindy/data/polyhedrons_obj/s05.obj38
-rw-r--r--texmf-dist/scripts/ketcindy/data/polyhedrons_obj/s06.obj92
-rw-r--r--texmf-dist/scripts/ketcindy/data/polyhedrons_obj/s07.obj92
-rw-r--r--texmf-dist/scripts/ketcindy/data/polyhedrons_obj/s08.obj50
-rw-r--r--texmf-dist/scripts/ketcindy/data/polyhedrons_obj/s09.obj122
-rw-r--r--texmf-dist/scripts/ketcindy/data/polyhedrons_obj/s10.obj74
-rw-r--r--texmf-dist/scripts/ketcindy/data/polyhedrons_obj/s11.obj182
-rw-r--r--texmf-dist/scripts/ketcindy/data/polyhedrons_obj/s12L.obj62
-rw-r--r--texmf-dist/scripts/ketcindy/data/polyhedrons_obj/s12R.obj62
-rw-r--r--texmf-dist/scripts/ketcindy/data/polyhedrons_obj/s13L.obj152
-rw-r--r--texmf-dist/scripts/ketcindy/data/polyhedrons_obj/s13R.obj152
-rw-r--r--texmf-dist/scripts/ketcindy/dirhead.txt7
-rwxr-xr-xtexmf-dist/scripts/ketcindy/ketcindy.sh100
-rw-r--r--texmf-dist/scripts/ketcindy/ketjava/KetCindyPlugin.jarbin156502 -> 0 bytes
-rw-r--r--texmf-dist/scripts/ketcindy/ketlib/ketcindylib3dhelpE.txt29
-rw-r--r--texmf-dist/scripts/ketcindy/ketlib/ketcindylib3dhelpJ.txt45
-rw-r--r--texmf-dist/scripts/ketcindy/ketlib/ketcindylib3dlogr.txt34
-rw-r--r--texmf-dist/scripts/ketcindy/ketlib/ketcindylib3dr.cs4503
-rw-r--r--texmf-dist/scripts/ketcindy/ketlib/ketcindylibbasic1logr.txt90
-rw-r--r--texmf-dist/scripts/ketcindy/ketlib/ketcindylibbasic1r.cs5932
-rw-r--r--texmf-dist/scripts/ketcindy/ketlib/ketcindylibbasic2logr.txt87
-rw-r--r--texmf-dist/scripts/ketcindy/ketlib/ketcindylibbasic2r.cs5073
-rw-r--r--texmf-dist/scripts/ketcindy/ketlib/ketcindylibhelpE.txt115
-rw-r--r--texmf-dist/scripts/ketcindy/ketlib/ketcindylibhelpJ.txt139
-rw-r--r--texmf-dist/scripts/ketcindy/ketlib/ketcindylibmvhelpE.txt4
-rw-r--r--texmf-dist/scripts/ketcindy/ketlib/ketcindylibmvhelpJ.txt4
-rw-r--r--texmf-dist/scripts/ketcindy/ketlib/ketcindylibmvlogr.txt28
-rw-r--r--texmf-dist/scripts/ketcindy/ketlib/ketcindylibmvr.cs564
-rw-r--r--texmf-dist/scripts/ketcindy/ketlib/ketcindyliboutlogr.txt59
-rw-r--r--texmf-dist/scripts/ketcindy/ketlib/ketcindyliboutr.cs5935
-rw-r--r--texmf-dist/scripts/ketcindy/ketlib/ketpicR/ketpic5_2_4.r14413
-rw-r--r--texmf-dist/scripts/ketcindy/ketlib/ketpicR/ketpic5_2_4_rep2e.r580
-rw-r--r--texmf-dist/scripts/ketcindy/ketlib/ketpiccurrent.r14614
-rw-r--r--texmf-dist/scripts/ketcindy/ketlib/ketpiccurrent_rep2e.r580
-rw-r--r--texmf-dist/scripts/ketcindy/ketlib/maximaL/fourier_sec.max260
-rw-r--r--texmf-dist/scripts/ketcindy/ketlib/maximaL/matoperation.max47
-rw-r--r--texmf-dist/scripts/ketcindy/ketlib/maximaL/poincare.mac71
-rw-r--r--texmf-dist/scripts/ketcindy/ketlib/maximaL/rkfun.lisp99
-rw-r--r--texmf-dist/scripts/ketcindy/ketlib/oshima/os_muldif.pdfbin2278676 -> 0 bytes
-rw-r--r--texmf-dist/scripts/ketcindy/ketlib/oshima/os_muldif.rr19295
-rw-r--r--texmf-dist/scripts/ketcindy/ketlibC/ketcommon.h2127
-rw-r--r--texmf-dist/scripts/ketcindy/ketlibC/ketcommonhead.h97
-rw-r--r--texmf-dist/scripts/ketcindy/ketlibC/surflib.h2098
-rw-r--r--texmf-dist/scripts/ketcindy/ketlibC/surflibhead.h58
-rw-r--r--texmf-dist/scripts/ketcindy/ketoutset.txt68
-rwxr-xr-xtexmf-dist/scripts/ketcindy/setketcindy.txt12
-rw-r--r--texmf-dist/scripts/ketcindy/template1basic.cdybin4302 -> 0 bytes
-rwxr-xr-xtexmf-dist/scripts/ketcindy/template2advanced.cdybin5778 -> 0 bytes
-rwxr-xr-xtexmf-dist/tex/latex/ketcindy/ketlayer.sty2836
-rw-r--r--texmf-dist/tex/latex/ketcindy/ketlayer2e.sty3155
-rw-r--r--texmf-dist/tex/latex/ketcindy/ketmedia.sty108
-rw-r--r--texmf-dist/tex/latex/ketcindy/ketpic.sty825
-rw-r--r--texmf-dist/tex/latex/ketcindy/ketpic2e.sty680
-rw-r--r--texmf-dist/tex/latex/ketcindy/ketslide.sty151
-rw-r--r--texmf-dist/tex/latex/ketcindy/ketslide2.sty151
-rw-r--r--tlpkg/tlpsrc/ketcindy.tlpsrc1
621 files changed, 0 insertions, 154646 deletions
diff --git a/texmf-dist/doc/support/ketcindy/CindyJS/Cindy.js b/texmf-dist/doc/support/ketcindy/CindyJS/Cindy.js
deleted file mode 100644
index 04aa2fd9..00000000
--- a/texmf-dist/doc/support/ketcindy/CindyJS/Cindy.js
+++ /dev/null
@@ -1,781 +0,0 @@
-/* CindyJS - (C) 2014-2016 The CindyJS Project
- * Mostly licensed under the Apache License 2.0, but subprojects may use different licensing.
- * See https://github.com/CindyJS/CindyJS/tree/bb244cab7fdc8d4ea030751ec40c6d384c09f464
- * for corresponding sources and their respective licensing conditions.
- */
-var enableInlineVideo=function(){function p(f,k,p,F){function E(p){ea=k(E,F);f(p-(K||p));K=p}var ea,K;return{start:function(){ea||E(0)},stop:function(){p(ea);ea=null;K=0}}}function E(f,k,p,F){function E(k){!!f[p]===!!F&&k.stopImmediatePropagation();delete f[p]}return f.addEventListener(k,E,!1),E}function ja(f,k,p,F){function E(f){p[k]=f}F&&E(f[k]);Object.defineProperty(f,k,{get:function(){return p[k]},set:E})}function Ca(f,k,p){p.addEventListener(k,function(){return f.dispatchEvent(new Event(k))})}
-function pa(f,k){Promise.resolve().then(function(){f.dispatchEvent(new Event(k))})}function Da(f){var k=new Audio;return Ca(f,"play",k),Ca(f,"playing",k),Ca(f,"pause",k),k.crossOrigin=f.crossOrigin,k.src=f.src||f.currentSrc||"data:",k}function aa(k,p,F){(K||0)+200<Date.now()&&(k[Ea]=!0,K=Date.now());F||(k.currentTime=p);f[++nb%3]=100*p|0}function k(f){this.video.readyState>=this.video.HAVE_FUTURE_DATA?(this.hasAudio||(this.driver.currentTime=this.video.currentTime+f*this.video.playbackRate/1E3,this.video.loop&&
-this.driver.currentTime>=this.video.duration&&(this.driver.currentTime=0)),aa(this.video,this.driver.currentTime)):this.video.networkState===this.video.NETWORK_IDLE&&0===this.video.buffered.length&&this.video.load();this.video.ended&&(delete this.video[Ea],this.video.pause(!0))}function Oa(){var f=this[W];return this.webkitDisplayingFullscreen?void this[ob]():("data:"!==f.driver.src&&f.driver.src!==this.src&&(aa(this,0,!0),f.driver.src=this.src),void(this.paused&&(f.paused=!1,0===this.buffered.length&&
-this.load(),f.driver.play(),f.updater.start(),f.hasAudio||(pa(this,"play"),f.video.readyState>=f.video.HAVE_ENOUGH_DATA&&pa(this,"playing")))))}function F(f){var k=this[W];k.driver.pause();k.updater.stop();this.webkitDisplayingFullscreen&&this[sa]();k.paused&&!f||(k.paused=!0,k.hasAudio||pa(this,"pause"),this.ended&&(this[Ea]=!0,pa(this,"ended")))}function ea(F,E){var I=F[W]={};I.paused=!0;I.hasAudio=E;I.video=F;I.updater=p(k.bind(I),requestAnimationFrame,cancelAnimationFrame);E?I.driver=Da(F):(F.addEventListener("canplay",
-function(){F.paused||pa(F,"playing")}),I.driver={src:F.src||F.currentSrc||"data:",muted:!0,paused:!0,pause:function(){I.driver.paused=!0},play:function(){I.driver.paused=!1;I.driver.currentTime>=I.video.duration&&aa(F,0)},get ended(){return I.driver.currentTime>=I.video.duration}});F.addEventListener("emptied",function(){var f=!I.driver.src||"data:"===I.driver.src;I.driver.src&&I.driver.src!==F.src&&(aa(F,0,!0),I.driver.src=F.src,f?I.driver.play():I.updater.stop())},!1);F.addEventListener("webkitbeginfullscreen",
-function(){F.paused?E&&0===I.driver.buffered.length&&I.driver.load():(F.pause(),F[ob]())});E&&(F.addEventListener("webkitendfullscreen",function(){I.driver.currentTime=F.currentTime}),F.addEventListener("seeking",function(){0>f.indexOf(100*F.currentTime|0)&&(I.driver.currentTime=F.currentTime)}))}var K,U="object"==typeof document&&"object-fit"in document.head.style&&!matchMedia("(-webkit-video-playable-inline)").matches,W="bfred-it:iphone-inline-video",Ea="bfred-it:iphone-inline-video:event",ob="bfred-it:iphone-inline-video:nativeplay",
-sa="bfred-it:iphone-inline-video:nativepause",f=[],nb=0;return function(f,k){if(void 0===k&&(k={}),!f[W])if(k.everywhere||U&&(k.iPad||k.ipad?/iPhone|iPod|iPad/:/iPhone|iPod/).test(navigator.userAgent)){!f.paused&&f.webkitDisplayingFullscreen&&f.pause();ea(f,!f.muted);var p=f[W];f[ob]=f.play;f[sa]=f.pause;f.play=Oa;f.pause=F;ja(f,"paused",p.driver);ja(f,"muted",p.driver,!0);ja(f,"playbackRate",p.driver,!0);ja(f,"ended",p.driver);ja(f,"loop",p.driver,!0);E(f,"seeking");E(f,"seeked");E(f,"timeupdate",
-Ea,!1);E(f,"ended",Ea,!1);f.classList.add("IIV");f.muted&&f.autoplay&&f.play();/iPhone|iPod|iPad/.test(navigator.platform)||console.warn("iphone-inline-video is not guaranteed to work in emulated environments")}}}();
-(function(){function p(b,d,e){f.biginteger_used=1;null!=b&&("number"==typeof b&&"undefined"==typeof d?this.fromInt(b):"number"==typeof b?this.fromNumber(b,d,e):null==d&&"string"!=typeof b?this.fromString(b,256):this.fromString(b,d))}function E(){return new p(null,void 0,void 0)}function ja(b,d,e,q,f,k){for(;0<=--k;){var v=d*this[b++]+e[q]+f;f=Math.floor(v/67108864);e[q++]=v&67108863}return f}function Ca(b,d,e,q,f,k){var v=d&32767;for(d>>=15;0<=--k;){var C=this[b]&32767,p=this[b++]>>15,F=d*C+p*v,C=
-v*C+((F&32767)<<15)+e[q]+(f&1073741823);f=(C>>>30)+(F>>>15)+d*p+(f>>>30);e[q++]=C&1073741823}return f}function pa(b,d,e,q,f,k){var v=d&16383;for(d>>=14;0<=--k;){var C=this[b]&16383,p=this[b++]>>14,F=d*C+p*v,C=v*C+((F&16383)<<14)+e[q]+f;f=(C>>28)+(F>>14)+d*p;e[q++]=C&268435455}return f}function Da(b,d){var e=cb[b.charCodeAt(d)];return null==e?-1:e}function aa(b){var d=E();d.fromInt(b);return d}function k(b){var d=1,e;0!=(e=b>>>16)&&(b=e,d+=16);0!=(e=b>>8)&&(b=e,d+=8);0!=(e=b>>4)&&(b=e,d+=4);0!=(e=
-b>>2)&&(b=e,d+=2);0!=b>>1&&(d+=1);return d}function Oa(b){this.m=b}function F(b){this.m=b;this.mp=b.invDigit();this.mpl=this.mp&32767;this.mph=this.mp>>15;this.um=(1<<b.DB-15)-1;this.mt2=2*b.t}function ea(b,d){return b&d}function K(b,d){return b|d}function U(b,d){return b^d}function W(b,d){return b&~d}function Ea(){}function ob(b){return b}function sa(b){this.r2=E();this.q3=E();p.ONE.dlShiftTo(2*b.t,this.r2);this.mu=this.r2.divide(b);this.m=b}var f={use_lines:!0,use_xyz:!1},nb=!1;"undefined"!==typeof module&&
-module.exports?(module.exports=f,nb=!0):"undefined"!==typeof document?window.ClipperLib=f:self.ClipperLib=f;var V;if(nb)Y="chrome",V="Netscape";else{var Y=navigator.userAgent.toString().toLowerCase();V=navigator.appName}var I,Xb,Jb,Qa,ab,xb;I=-1!=Y.indexOf("chrome")&&-1==Y.indexOf("chromium")?1:0;nb=-1!=Y.indexOf("chromium")?1:0;Xb=-1!=Y.indexOf("safari")&&-1==Y.indexOf("chrome")&&-1==Y.indexOf("chromium")?1:0;Jb=-1!=Y.indexOf("firefox")?1:0;Y.indexOf("firefox/17");Y.indexOf("firefox/15");Y.indexOf("firefox/3");
-Qa=-1!=Y.indexOf("opera")?1:0;Y.indexOf("msie 10");Y.indexOf("msie 9");ab=-1!=Y.indexOf("msie 8")?1:0;xb=-1!=Y.indexOf("msie 7")?1:0;Y=-1!=Y.indexOf("msie ")?1:0;f.biginteger_used=null;"Microsoft Internet Explorer"==V?(p.prototype.am=Ca,V=30):"Netscape"!=V?(p.prototype.am=ja,V=26):(p.prototype.am=pa,V=28);p.prototype.DB=V;p.prototype.DM=(1<<V)-1;p.prototype.DV=1<<V;p.prototype.FV=Math.pow(2,52);p.prototype.F1=52-V;p.prototype.F2=2*V-52;var cb=[],qa;V=48;for(qa=0;9>=qa;++qa)cb[V++]=qa;V=97;for(qa=
-10;36>qa;++qa)cb[V++]=qa;V=65;for(qa=10;36>qa;++qa)cb[V++]=qa;Oa.prototype.convert=function(b){return 0>b.s||0<=b.compareTo(this.m)?b.mod(this.m):b};Oa.prototype.revert=function(b){return b};Oa.prototype.reduce=function(b){b.divRemTo(this.m,null,b)};Oa.prototype.mulTo=function(b,d,e){b.multiplyTo(d,e);this.reduce(e)};Oa.prototype.sqrTo=function(b,d){b.squareTo(d);this.reduce(d)};F.prototype.convert=function(b){var d=E();b.abs().dlShiftTo(this.m.t,d);d.divRemTo(this.m,null,d);0>b.s&&0<d.compareTo(p.ZERO)&&
-this.m.subTo(d,d);return d};F.prototype.revert=function(b){var d=E();b.copyTo(d);this.reduce(d);return d};F.prototype.reduce=function(b){for(;b.t<=this.mt2;)b[b.t++]=0;for(var d=0;d<this.m.t;++d){var e=b[d]&32767,q=e*this.mpl+((e*this.mph+(b[d]>>15)*this.mpl&this.um)<<15)&b.DM,e=d+this.m.t;for(b[e]+=this.m.am(0,q,b,d,0,this.m.t);b[e]>=b.DV;)b[e]-=b.DV,b[++e]++}b.clamp();b.drShiftTo(this.m.t,b);0<=b.compareTo(this.m)&&b.subTo(this.m,b)};F.prototype.mulTo=function(b,d,e){b.multiplyTo(d,e);this.reduce(e)};
-F.prototype.sqrTo=function(b,d){b.squareTo(d);this.reduce(d)};p.prototype.copyTo=function(b){for(var d=this.t-1;0<=d;--d)b[d]=this[d];b.t=this.t;b.s=this.s};p.prototype.fromInt=function(b){this.t=1;this.s=0>b?-1:0;0<b?this[0]=b:-1>b?this[0]=b+this.DV:this.t=0};p.prototype.fromString=function(b,d){var e;if(16==d)e=4;else if(8==d)e=3;else if(256==d)e=8;else if(2==d)e=1;else if(32==d)e=5;else if(4==d)e=2;else{this.fromRadix(b,d);return}this.s=this.t=0;for(var q=b.length,f=!1,k=0;0<=--q;){var v=8==e?
-b[q]&255:Da(b,q);0>v?"-"==b.charAt(q)&&(f=!0):(f=!1,0==k?this[this.t++]=v:k+e>this.DB?(this[this.t-1]|=(v&(1<<this.DB-k)-1)<<k,this[this.t++]=v>>this.DB-k):this[this.t-1]|=v<<k,k+=e,k>=this.DB&&(k-=this.DB))}8==e&&0!=(b[0]&128)&&(this.s=-1,0<k&&(this[this.t-1]|=(1<<this.DB-k)-1<<k));this.clamp();f&&p.ZERO.subTo(this,this)};p.prototype.clamp=function(){for(var b=this.s&this.DM;0<this.t&&this[this.t-1]==b;)--this.t};p.prototype.dlShiftTo=function(b,d){var e;for(e=this.t-1;0<=e;--e)d[e+b]=this[e];for(e=
-b-1;0<=e;--e)d[e]=0;d.t=this.t+b;d.s=this.s};p.prototype.drShiftTo=function(b,d){for(var e=b;e<this.t;++e)d[e-b]=this[e];d.t=Math.max(this.t-b,0);d.s=this.s};p.prototype.lShiftTo=function(b,d){var e=b%this.DB,q=this.DB-e,f=(1<<q)-1,k=Math.floor(b/this.DB),v=this.s<<e&this.DM,C;for(C=this.t-1;0<=C;--C)d[C+k+1]=this[C]>>q|v,v=(this[C]&f)<<e;for(C=k-1;0<=C;--C)d[C]=0;d[k]=v;d.t=this.t+k+1;d.s=this.s;d.clamp()};p.prototype.rShiftTo=function(b,d){d.s=this.s;var e=Math.floor(b/this.DB);if(e>=this.t)d.t=
-0;else{var q=b%this.DB,f=this.DB-q,k=(1<<q)-1;d[0]=this[e]>>q;for(var v=e+1;v<this.t;++v)d[v-e-1]|=(this[v]&k)<<f,d[v-e]=this[v]>>q;0<q&&(d[this.t-e-1]|=(this.s&k)<<f);d.t=this.t-e;d.clamp()}};p.prototype.subTo=function(b,d){for(var e=0,f=0,n=Math.min(b.t,this.t);e<n;)f+=this[e]-b[e],d[e++]=f&this.DM,f>>=this.DB;if(b.t<this.t){for(f-=b.s;e<this.t;)f+=this[e],d[e++]=f&this.DM,f>>=this.DB;f+=this.s}else{for(f+=this.s;e<b.t;)f-=b[e],d[e++]=f&this.DM,f>>=this.DB;f-=b.s}d.s=0>f?-1:0;-1>f?d[e++]=this.DV+
-f:0<f&&(d[e++]=f);d.t=e;d.clamp()};p.prototype.multiplyTo=function(b,d){var e=this.abs(),f=b.abs(),n=e.t;for(d.t=n+f.t;0<=--n;)d[n]=0;for(n=0;n<f.t;++n)d[n+e.t]=e.am(0,f[n],d,n,0,e.t);d.s=0;d.clamp();this.s!=b.s&&p.ZERO.subTo(d,d)};p.prototype.squareTo=function(b){for(var d=this.abs(),e=b.t=2*d.t;0<=--e;)b[e]=0;for(e=0;e<d.t-1;++e){var f=d.am(e,d[e],b,2*e,0,1);(b[e+d.t]+=d.am(e+1,2*d[e],b,2*e+1,f,d.t-e-1))>=d.DV&&(b[e+d.t]-=d.DV,b[e+d.t+1]=1)}0<b.t&&(b[b.t-1]+=d.am(e,d[e],b,2*e,0,1));b.s=0;b.clamp()};
-p.prototype.divRemTo=function(b,d,e){var f=b.abs();if(!(0>=f.t)){var n=this.abs();if(n.t<f.t)null!=d&&d.fromInt(0),null!=e&&this.copyTo(e);else{null==e&&(e=E());var N=E(),v=this.s;b=b.s;var C=this.DB-k(f[f.t-1]);0<C?(f.lShiftTo(C,N),n.lShiftTo(C,e)):(f.copyTo(N),n.copyTo(e));f=N.t;n=N[f-1];if(0!=n){var F=n*(1<<this.F1)+(1<f?N[f-2]>>this.F2:0),bb=this.FV/F,F=(1<<this.F1)/F,pb=1<<this.F2,H=e.t,ea=H-f,K=null==d?E():d;N.dlShiftTo(ea,K);0<=e.compareTo(K)&&(e[e.t++]=1,e.subTo(K,e));p.ONE.dlShiftTo(f,K);
-for(K.subTo(N,N);N.t<f;)N[N.t++]=0;for(;0<=--ea;){var I=e[--H]==n?this.DM:Math.floor(e[H]*bb+(e[H-1]+pb)*F);if((e[H]+=N.am(0,I,e,ea,0,f))<I)for(N.dlShiftTo(ea,K),e.subTo(K,e);e[H]<--I;)e.subTo(K,e)}null!=d&&(e.drShiftTo(f,d),v!=b&&p.ZERO.subTo(d,d));e.t=f;e.clamp();0<C&&e.rShiftTo(C,e);0>v&&p.ZERO.subTo(e,e)}}}};p.prototype.invDigit=function(){if(1>this.t)return 0;var b=this[0];if(0==(b&1))return 0;var d=b&3,d=d*(2-(b&15)*d)&15,d=d*(2-(b&255)*d)&255,d=d*(2-((b&65535)*d&65535))&65535,d=d*(2-b*d%this.DV)%
-this.DV;return 0<d?this.DV-d:-d};p.prototype.isEven=function(){return 0==(0<this.t?this[0]&1:this.s)};p.prototype.exp=function(b,d){if(4294967295<b||1>b)return p.ONE;var e=E(),f=E(),n=d.convert(this),N=k(b)-1;for(n.copyTo(e);0<=--N;)if(d.sqrTo(e,f),0<(b&1<<N))d.mulTo(f,n,e);else var v=e,e=f,f=v;return d.revert(e)};p.prototype.toString=function(b){if(0>this.s)return"-"+this.negate().toString(b);if(16==b)b=4;else if(8==b)b=3;else if(2==b)b=1;else if(32==b)b=5;else if(4==b)b=2;else return this.toRadix(b);
-var d=(1<<b)-1,e,f=!1,n="",k=this.t,v=this.DB-k*this.DB%b;if(0<k--)for(v<this.DB&&0<(e=this[k]>>v)&&(f=!0,n="0123456789abcdefghijklmnopqrstuvwxyz".charAt(e));0<=k;)v<b?(e=(this[k]&(1<<v)-1)<<b-v,e|=this[--k]>>(v+=this.DB-b)):(e=this[k]>>(v-=b)&d,0>=v&&(v+=this.DB,--k)),0<e&&(f=!0),f&&(n+="0123456789abcdefghijklmnopqrstuvwxyz".charAt(e));return f?n:"0"};p.prototype.negate=function(){var b=E();p.ZERO.subTo(this,b);return b};p.prototype.abs=function(){return 0>this.s?this.negate():this};p.prototype.compareTo=
-function(b){var d=this.s-b.s;if(0!=d)return d;var e=this.t,d=e-b.t;if(0!=d)return 0>this.s?-d:d;for(;0<=--e;)if(0!=(d=this[e]-b[e]))return d;return 0};p.prototype.bitLength=function(){return 0>=this.t?0:this.DB*(this.t-1)+k(this[this.t-1]^this.s&this.DM)};p.prototype.mod=function(b){var d=E();this.abs().divRemTo(b,null,d);0>this.s&&0<d.compareTo(p.ZERO)&&b.subTo(d,d);return d};p.prototype.modPowInt=function(b,d){var e;e=256>b||d.isEven()?new Oa(d):new F(d);return this.exp(b,e)};p.ZERO=aa(0);p.ONE=
-aa(1);Ea.prototype.convert=ob;Ea.prototype.revert=ob;Ea.prototype.mulTo=function(b,d,e){b.multiplyTo(d,e)};Ea.prototype.sqrTo=function(b,d){b.squareTo(d)};sa.prototype.convert=function(b){if(0>b.s||b.t>2*this.m.t)return b.mod(this.m);if(0>b.compareTo(this.m))return b;var d=E();b.copyTo(d);this.reduce(d);return d};sa.prototype.revert=function(b){return b};sa.prototype.reduce=function(b){b.drShiftTo(this.m.t-1,this.r2);b.t>this.m.t+1&&(b.t=this.m.t+1,b.clamp());this.mu.multiplyUpperTo(this.r2,this.m.t+
-1,this.q3);for(this.m.multiplyLowerTo(this.q3,this.m.t+1,this.r2);0>b.compareTo(this.r2);)b.dAddOffset(1,this.m.t+1);for(b.subTo(this.r2,b);0<=b.compareTo(this.m);)b.subTo(this.m,b)};sa.prototype.mulTo=function(b,d,e){b.multiplyTo(d,e);this.reduce(e)};sa.prototype.sqrTo=function(b,d){b.squareTo(d);this.reduce(d)};var H=[2,3,5,7,11,13,17,19,23,29,31,37,41,43,47,53,59,61,67,71,73,79,83,89,97,101,103,107,109,113,127,131,137,139,149,151,157,163,167,173,179,181,191,193,197,199,211,223,227,229,233,239,
-241,251,257,263,269,271,277,281,283,293,307,311,313,317,331,337,347,349,353,359,367,373,379,383,389,397,401,409,419,421,431,433,439,443,449,457,461,463,467,479,487,491,499,503,509,521,523,541,547,557,563,569,571,577,587,593,599,601,607,613,617,619,631,641,643,647,653,659,661,673,677,683,691,701,709,719,727,733,739,743,751,757,761,769,773,787,797,809,811,821,823,827,829,839,853,857,859,863,877,881,883,887,907,911,919,929,937,941,947,953,967,971,977,983,991,997],Zb=67108864/H[H.length-1];p.prototype.chunkSize=
-function(b){return Math.floor(Math.LN2*this.DB/Math.log(b))};p.prototype.toRadix=function(b){null==b&&(b=10);if(0==this.signum()||2>b||36<b)return"0";var d=this.chunkSize(b),d=Math.pow(b,d),e=aa(d),f=E(),n=E(),k="";for(this.divRemTo(e,f,n);0<f.signum();)k=(d+n.intValue()).toString(b).substr(1)+k,f.divRemTo(e,f,n);return n.intValue().toString(b)+k};p.prototype.fromRadix=function(b,d){this.fromInt(0);null==d&&(d=10);for(var e=this.chunkSize(d),f=Math.pow(d,e),n=!1,k=0,v=0,C=0;C<b.length;++C){var F=
-Da(b,C);0>F?"-"==b.charAt(C)&&0==this.signum()&&(n=!0):(v=d*v+F,++k>=e&&(this.dMultiply(f),this.dAddOffset(v,0),v=k=0))}0<k&&(this.dMultiply(Math.pow(d,k)),this.dAddOffset(v,0));n&&p.ZERO.subTo(this,this)};p.prototype.fromNumber=function(b,d,e){if("number"==typeof d)if(2>b)this.fromInt(1);else for(this.fromNumber(b,e),this.testBit(b-1)||this.bitwiseTo(p.ONE.shiftLeft(b-1),K,this),this.isEven()&&this.dAddOffset(1,0);!this.isProbablePrime(d);)this.dAddOffset(2,0),this.bitLength()>b&&this.subTo(p.ONE.shiftLeft(b-
-1),this);else{e=[];var f=b&7;e.length=(b>>3)+1;d.nextBytes(e);e[0]=0<f?e[0]&(1<<f)-1:0;this.fromString(e,256)}};p.prototype.bitwiseTo=function(b,d,e){var f,n,k=Math.min(b.t,this.t);for(f=0;f<k;++f)e[f]=d(this[f],b[f]);if(b.t<this.t){n=b.s&this.DM;for(f=k;f<this.t;++f)e[f]=d(this[f],n);e.t=this.t}else{n=this.s&this.DM;for(f=k;f<b.t;++f)e[f]=d(n,b[f]);e.t=b.t}e.s=d(this.s,b.s);e.clamp()};p.prototype.changeBit=function(b,d){var e=p.ONE.shiftLeft(b);this.bitwiseTo(e,d,e);return e};p.prototype.addTo=function(b,
-d){for(var e=0,f=0,n=Math.min(b.t,this.t);e<n;)f+=this[e]+b[e],d[e++]=f&this.DM,f>>=this.DB;if(b.t<this.t){for(f+=b.s;e<this.t;)f+=this[e],d[e++]=f&this.DM,f>>=this.DB;f+=this.s}else{for(f+=this.s;e<b.t;)f+=b[e],d[e++]=f&this.DM,f>>=this.DB;f+=b.s}d.s=0>f?-1:0;0<f?d[e++]=f:-1>f&&(d[e++]=this.DV+f);d.t=e;d.clamp()};p.prototype.dMultiply=function(b){this[this.t]=this.am(0,b-1,this,0,0,this.t);++this.t;this.clamp()};p.prototype.dAddOffset=function(b,d){if(0!=b){for(;this.t<=d;)this[this.t++]=0;for(this[d]+=
-b;this[d]>=this.DV;)this[d]-=this.DV,++d>=this.t&&(this[this.t++]=0),++this[d]}};p.prototype.multiplyLowerTo=function(b,d,e){var f=Math.min(this.t+b.t,d);e.s=0;for(e.t=f;0<f;)e[--f]=0;var n;for(n=e.t-this.t;f<n;++f)e[f+this.t]=this.am(0,b[f],e,f,0,this.t);for(n=Math.min(b.t,d);f<n;++f)this.am(0,b[f],e,f,0,d-f);e.clamp()};p.prototype.multiplyUpperTo=function(b,d,e){--d;var f=e.t=this.t+b.t-d;for(e.s=0;0<=--f;)e[f]=0;for(f=Math.max(d-this.t,0);f<b.t;++f)e[this.t+f-d]=this.am(d-f,b[f],e,0,0,this.t+f-
-d);e.clamp();e.drShiftTo(1,e)};p.prototype.modInt=function(b){if(0>=b)return 0;var d=this.DV%b,e=0>this.s?b-1:0;if(0<this.t)if(0==d)e=this[0]%b;else for(var f=this.t-1;0<=f;--f)e=(d*e+this[f])%b;return e};p.prototype.millerRabin=function(b){var d=this.subtract(p.ONE),e=d.getLowestSetBit();if(0>=e)return!1;var f=d.shiftRight(e);b=b+1>>1;b>H.length&&(b=H.length);for(var n=E(),k=0;k<b;++k){n.fromInt(H[Math.floor(Math.random()*H.length)]);var v=n.modPow(f,this);if(0!=v.compareTo(p.ONE)&&0!=v.compareTo(d)){for(var C=
-1;C++<e&&0!=v.compareTo(d);)if(v=v.modPowInt(2,this),0==v.compareTo(p.ONE))return!1;if(0!=v.compareTo(d))return!1}}return!0};p.prototype.clone=function(){var b=E();this.copyTo(b);return b};p.prototype.intValue=function(){if(0>this.s){if(1==this.t)return this[0]-this.DV;if(0==this.t)return-1}else{if(1==this.t)return this[0];if(0==this.t)return 0}return(this[1]&(1<<32-this.DB)-1)<<this.DB|this[0]};p.prototype.byteValue=function(){return 0==this.t?this.s:this[0]<<24>>24};p.prototype.shortValue=function(){return 0==
-this.t?this.s:this[0]<<16>>16};p.prototype.signum=function(){return 0>this.s?-1:0>=this.t||1==this.t&&0>=this[0]?0:1};p.prototype.toByteArray=function(){var b=this.t,d=[];d[0]=this.s;var e=this.DB-b*this.DB%8,f,n=0;if(0<b--)for(e<this.DB&&(f=this[b]>>e)!=(this.s&this.DM)>>e&&(d[n++]=f|this.s<<this.DB-e);0<=b;)if(8>e?(f=(this[b]&(1<<e)-1)<<8-e,f|=this[--b]>>(e+=this.DB-8)):(f=this[b]>>(e-=8)&255,0>=e&&(e+=this.DB,--b)),0!=(f&128)&&(f|=-256),0==n&&(this.s&128)!=(f&128)&&++n,0<n||f!=this.s)d[n++]=f;
-return d};p.prototype.equals=function(b){return 0==this.compareTo(b)};p.prototype.min=function(b){return 0>this.compareTo(b)?this:b};p.prototype.max=function(b){return 0<this.compareTo(b)?this:b};p.prototype.and=function(b){var d=E();this.bitwiseTo(b,ea,d);return d};p.prototype.or=function(b){var d=E();this.bitwiseTo(b,K,d);return d};p.prototype.xor=function(b){var d=E();this.bitwiseTo(b,U,d);return d};p.prototype.andNot=function(b){var d=E();this.bitwiseTo(b,W,d);return d};p.prototype.not=function(){for(var b=
-E(),d=0;d<this.t;++d)b[d]=this.DM&~this[d];b.t=this.t;b.s=~this.s;return b};p.prototype.shiftLeft=function(b){var d=E();0>b?this.rShiftTo(-b,d):this.lShiftTo(b,d);return d};p.prototype.shiftRight=function(b){var d=E();0>b?this.lShiftTo(-b,d):this.rShiftTo(b,d);return d};p.prototype.getLowestSetBit=function(){for(var b=0;b<this.t;++b)if(0!=this[b]){var d=b*this.DB,b=this[b];if(0==b)b=-1;else{var e=0;0==(b&65535)&&(b>>=16,e+=16);0==(b&255)&&(b>>=8,e+=8);0==(b&15)&&(b>>=4,e+=4);0==(b&3)&&(b>>=2,e+=2);
-0==(b&1)&&++e;b=e}return d+b}return 0>this.s?this.t*this.DB:-1};p.prototype.bitCount=function(){for(var b=0,d=this.s&this.DM,e=0;e<this.t;++e){for(var f=this[e]^d,n=0;0!=f;)f&=f-1,++n;b+=n}return b};p.prototype.testBit=function(b){var d=Math.floor(b/this.DB);return d>=this.t?0!=this.s:0!=(this[d]&1<<b%this.DB)};p.prototype.setBit=function(b){return this.changeBit(b,K)};p.prototype.clearBit=function(b){return this.changeBit(b,W)};p.prototype.flipBit=function(b){return this.changeBit(b,U)};p.prototype.add=
-function(b){var d=E();this.addTo(b,d);return d};p.prototype.subtract=function(b){var d=E();this.subTo(b,d);return d};p.prototype.multiply=function(b){var d=E();this.multiplyTo(b,d);return d};p.prototype.divide=function(b){var d=E();this.divRemTo(b,d,null);return d};p.prototype.remainder=function(b){var d=E();this.divRemTo(b,null,d);return d};p.prototype.divideAndRemainder=function(b){var d=E(),e=E();this.divRemTo(b,d,e);return[d,e]};p.prototype.modPow=function(b,d){var e=b.bitLength(),f,n=aa(1),N;
-if(0>=e)return n;f=18>e?1:48>e?3:144>e?4:768>e?5:6;N=8>e?new Oa(d):d.isEven()?new sa(d):new F(d);var v=[],C=3,p=f-1,bb=(1<<f)-1;v[1]=N.convert(this);if(1<f)for(e=E(),N.sqrTo(v[1],e);C<=bb;)v[C]=E(),N.mulTo(e,v[C-2],v[C]),C+=2;for(var H=b.t-1,K,ea=!0,I=E(),e=k(b[H])-1;0<=H;){e>=p?K=b[H]>>e-p&bb:(K=(b[H]&(1<<e+1)-1)<<p-e,0<H&&(K|=b[H-1]>>this.DB+e-p));for(C=f;0==(K&1);)K>>=1,--C;0>(e-=C)&&(e+=this.DB,--H);if(ea)v[K].copyTo(n),ea=!1;else{for(;1<C;)N.sqrTo(n,I),N.sqrTo(I,n),C-=2;0<C?N.sqrTo(n,I):(C=n,
-n=I,I=C);N.mulTo(I,v[K],n)}for(;0<=H&&0==(b[H]&1<<e);)N.sqrTo(n,I),C=n,n=I,I=C,0>--e&&(e=this.DB-1,--H)}return N.revert(n)};p.prototype.modInverse=function(b){var d=b.isEven();if(this.isEven()&&d||0==b.signum())return p.ZERO;for(var e=b.clone(),f=this.clone(),n=aa(1),k=aa(0),v=aa(0),C=aa(1);0!=e.signum();){for(;e.isEven();)e.rShiftTo(1,e),d?(n.isEven()&&k.isEven()||(n.addTo(this,n),k.subTo(b,k)),n.rShiftTo(1,n)):k.isEven()||k.subTo(b,k),k.rShiftTo(1,k);for(;f.isEven();)f.rShiftTo(1,f),d?(v.isEven()&&
-C.isEven()||(v.addTo(this,v),C.subTo(b,C)),v.rShiftTo(1,v)):C.isEven()||C.subTo(b,C),C.rShiftTo(1,C);0<=e.compareTo(f)?(e.subTo(f,e),d&&n.subTo(v,n),k.subTo(C,k)):(f.subTo(e,f),d&&v.subTo(n,v),C.subTo(k,C))}if(0!=f.compareTo(p.ONE))return p.ZERO;if(0<=C.compareTo(b))return C.subtract(b);if(0>C.signum())C.addTo(b,C);else return C;return 0>C.signum()?C.add(b):C};p.prototype.pow=function(b){return this.exp(b,new Ea)};p.prototype.gcd=function(b){var d=0>this.s?this.negate():this.clone();b=0>b.s?b.negate():
-b.clone();if(0>d.compareTo(b)){var e=d,d=b;b=e}var e=d.getLowestSetBit(),f=b.getLowestSetBit();if(0>f)return d;e<f&&(f=e);for(0<f&&(d.rShiftTo(f,d),b.rShiftTo(f,b));0<d.signum();)0<(e=d.getLowestSetBit())&&d.rShiftTo(e,d),0<(e=b.getLowestSetBit())&&b.rShiftTo(e,b),0<=d.compareTo(b)?(d.subTo(b,d),d.rShiftTo(1,d)):(b.subTo(d,b),b.rShiftTo(1,b));0<f&&b.lShiftTo(f,b);return b};p.prototype.isProbablePrime=function(b){var d,e=this.abs();if(1==e.t&&e[0]<=H[H.length-1]){for(d=0;d<H.length;++d)if(e[0]==H[d])return!0;
-return!1}if(e.isEven())return!1;for(d=1;d<H.length;){for(var f=H[d],n=d+1;n<H.length&&f<Zb;)f*=H[n++];for(f=e.modInt(f);d<n;)if(0==f%H[d++])return!1}return e.millerRabin(b)};p.prototype.square=function(){var b=E();this.squareTo(b);return b};p.prototype.IsNegative=function(){return-1==this.compareTo(p.ZERO)?!0:!1};p.op_Equality=function(b,d){return 0==b.compareTo(d)?!0:!1};p.op_Inequality=function(b,d){return 0!=b.compareTo(d)?!0:!1};p.op_GreaterThan=function(b,d){return 0<b.compareTo(d)?!0:!1};p.op_LessThan=
-function(b,d){return 0>b.compareTo(d)?!0:!1};p.op_Addition=function(b,d){return(new p(b)).add(new p(d))};p.op_Subtraction=function(b,d){return(new p(b)).subtract(new p(d))};p.Int128Mul=function(b,d){return(new p(b)).multiply(new p(d))};p.op_Division=function(b,d){return b.divide(d)};p.prototype.ToDouble=function(){return parseFloat(this.toString())};V=function(b,d){var e;if("undefined"==typeof Object.getOwnPropertyNames)for(e in d.prototype){if("undefined"==typeof b.prototype[e]||b.prototype[e]==
-Object.prototype[e])b.prototype[e]=d.prototype[e]}else for(var f=Object.getOwnPropertyNames(d.prototype),n=0;n<f.length;n++)"undefined"==typeof Object.getOwnPropertyDescriptor(b.prototype,f[n])&&Object.defineProperty(b.prototype,f[n],Object.getOwnPropertyDescriptor(d.prototype,f[n]));for(e in d)"undefined"==typeof b[e]&&(b[e]=d[e]);b.$baseCtor=d};f.Path=function(){return[]};f.Paths=function(){return[]};f.DoublePoint=function(){var b=arguments;this.Y=this.X=0;1==b.length?(this.X=b[0].X,this.Y=b[0].Y):
-2==b.length&&(this.X=b[0],this.Y=b[1])};f.DoublePoint0=function(){this.Y=this.X=0};f.DoublePoint1=function(b){this.X=b.X;this.Y=b.Y};f.DoublePoint2=function(b,d){this.X=b;this.Y=d};f.PolyNode=function(){this.m_Parent=null;this.m_polygon=new f.Path;this.m_endtype=this.m_jointype=this.m_Index=0;this.m_Childs=[];this.IsOpen=!1};f.PolyNode.prototype.IsHoleNode=function(){for(var b=!0,d=this.m_Parent;null!==d;)b=!b,d=d.m_Parent;return b};f.PolyNode.prototype.ChildCount=function(){return this.m_Childs.length};
-f.PolyNode.prototype.Contour=function(){return this.m_polygon};f.PolyNode.prototype.AddChild=function(b){var d=this.m_Childs.length;this.m_Childs.push(b);b.m_Parent=this;b.m_Index=d};f.PolyNode.prototype.GetNext=function(){return 0<this.m_Childs.length?this.m_Childs[0]:this.GetNextSiblingUp()};f.PolyNode.prototype.GetNextSiblingUp=function(){return null===this.m_Parent?null:this.m_Index==this.m_Parent.m_Childs.length-1?this.m_Parent.GetNextSiblingUp():this.m_Parent.m_Childs[this.m_Index+1]};f.PolyNode.prototype.Childs=
-function(){return this.m_Childs};f.PolyNode.prototype.Parent=function(){return this.m_Parent};f.PolyNode.prototype.IsHole=function(){return this.IsHoleNode()};f.PolyTree=function(){this.m_AllPolys=[];f.PolyNode.call(this)};f.PolyTree.prototype.Clear=function(){for(var b=0,d=this.m_AllPolys.length;b<d;b++)this.m_AllPolys[b]=null;this.m_AllPolys.length=0;this.m_Childs.length=0};f.PolyTree.prototype.GetFirst=function(){return 0<this.m_Childs.length?this.m_Childs[0]:null};f.PolyTree.prototype.Total=function(){var b=
-this.m_AllPolys.length;0<b&&this.m_Childs[0]!=this.m_AllPolys[0]&&b--;return b};V(f.PolyTree,f.PolyNode);f.Math_Abs_Int64=f.Math_Abs_Int32=f.Math_Abs_Double=function(b){return Math.abs(b)};f.Math_Max_Int32_Int32=function(b,d){return Math.max(b,d)};f.Cast_Int32=Y||Qa||Xb?function(b){return b|0}:function(b){return~~b};f.Cast_Int64=I?function(b){return-2147483648>b||2147483647<b?0>b?Math.ceil(b):Math.floor(b):~~b}:Jb&&"function"==typeof Number.toInteger?function(b){return Number.toInteger(b)}:xb||ab?
-function(b){return parseInt(b,10)}:Y?function(b){return-2147483648>b||2147483647<b?0>b?Math.ceil(b):Math.floor(b):b|0}:function(b){return 0>b?Math.ceil(b):Math.floor(b)};f.Clear=function(b){b.length=0};f.PI=3.141592653589793;f.PI2=6.283185307179586;f.IntPoint=function(){var b=arguments,d=b.length;this.Y=this.X=0;f.use_xyz?(this.Z=0,3==d?(this.X=b[0],this.Y=b[1],this.Z=b[2]):2==d?(this.X=b[0],this.Y=b[1],this.Z=0):1==d?b[0]instanceof f.DoublePoint?(b=b[0],this.X=f.Clipper.Round(b.X),this.Y=f.Clipper.Round(b.Y),
-this.Z=0):(b=b[0],"undefined"==typeof b.Z&&(b.Z=0),this.X=b.X,this.Y=b.Y,this.Z=b.Z):this.Z=this.Y=this.X=0):2==d?(this.X=b[0],this.Y=b[1]):1==d?b[0]instanceof f.DoublePoint?(b=b[0],this.X=f.Clipper.Round(b.X),this.Y=f.Clipper.Round(b.Y)):(b=b[0],this.X=b.X,this.Y=b.Y):this.Y=this.X=0};f.IntPoint.op_Equality=function(b,d){return b.X==d.X&&b.Y==d.Y};f.IntPoint.op_Inequality=function(b,d){return b.X!=d.X||b.Y!=d.Y};f.use_xyz?(f.IntPoint0=function(){this.Z=this.Y=this.X=0},f.IntPoint1=function(b){this.X=
-b.X;this.Y=b.Y;this.Z=b.Z},f.IntPoint1dp=function(b){this.X=f.Clipper.Round(b.X);this.Y=f.Clipper.Round(b.Y);this.Z=0},f.IntPoint2=function(b,d){this.X=b;this.Y=d;this.Z=0},f.IntPoint3=function(b,d,e){this.X=b;this.Y=d;this.Z=e}):(f.IntPoint0=function(){this.Y=this.X=0},f.IntPoint1=function(b){this.X=b.X;this.Y=b.Y},f.IntPoint1dp=function(b){this.X=f.Clipper.Round(b.X);this.Y=f.Clipper.Round(b.Y)},f.IntPoint2=function(b,d){this.X=b;this.Y=d});f.IntRect=function(){var b=arguments,d=b.length;4==d?(this.left=
-b[0],this.top=b[1],this.right=b[2],this.bottom=b[3]):1==d?(this.left=b[0].left,this.top=b[0].top,this.right=b[0].right,this.bottom=b[0].bottom):this.bottom=this.right=this.top=this.left=0};f.IntRect0=function(){this.bottom=this.right=this.top=this.left=0};f.IntRect1=function(b){this.left=b.left;this.top=b.top;this.right=b.right;this.bottom=b.bottom};f.IntRect4=function(b,d,e,f){this.left=b;this.top=d;this.right=e;this.bottom=f};f.ClipType={ctIntersection:0,ctUnion:1,ctDifference:2,ctXor:3};f.PolyType=
-{ptSubject:0,ptClip:1};f.PolyFillType={pftEvenOdd:0,pftNonZero:1,pftPositive:2,pftNegative:3};f.JoinType={jtSquare:0,jtRound:1,jtMiter:2};f.EndType={etOpenSquare:0,etOpenRound:1,etOpenButt:2,etClosedLine:3,etClosedPolygon:4};f.EdgeSide={esLeft:0,esRight:1};f.Direction={dRightToLeft:0,dLeftToRight:1};f.TEdge=function(){this.Bot=new f.IntPoint;this.Curr=new f.IntPoint;this.Top=new f.IntPoint;this.Delta=new f.IntPoint;this.Dx=0;this.PolyTyp=f.PolyType.ptSubject;this.Side=f.EdgeSide.esLeft;this.OutIdx=
-this.WindCnt2=this.WindCnt=this.WindDelta=0;this.PrevInSEL=this.NextInSEL=this.PrevInAEL=this.NextInAEL=this.NextInLML=this.Prev=this.Next=null};f.IntersectNode=function(){this.Edge2=this.Edge1=null;this.Pt=new f.IntPoint};f.MyIntersectNodeSort=function(){};f.MyIntersectNodeSort.Compare=function(b,d){var e=d.Pt.Y-b.Pt.Y;return 0<e?1:0>e?-1:0};f.LocalMinima=function(){this.Y=0;this.Next=this.RightBound=this.LeftBound=null};f.Scanbeam=function(){this.Y=0;this.Next=null};f.OutRec=function(){this.Idx=
-0;this.IsOpen=this.IsHole=!1;this.PolyNode=this.BottomPt=this.Pts=this.FirstLeft=null};f.OutPt=function(){this.Idx=0;this.Pt=new f.IntPoint;this.Prev=this.Next=null};f.Join=function(){this.OutPt2=this.OutPt1=null;this.OffPt=new f.IntPoint};f.ClipperBase=function(){this.m_CurrentLM=this.m_MinimaList=null;this.m_edges=[];this.PreserveCollinear=this.m_HasOpenPaths=this.m_UseFullRange=!1;this.m_CurrentLM=this.m_MinimaList=null;this.m_HasOpenPaths=this.m_UseFullRange=!1};f.ClipperBase.horizontal=-9007199254740992;
-f.ClipperBase.Skip=-2;f.ClipperBase.Unassigned=-1;f.ClipperBase.tolerance=1E-20;f.ClipperBase.loRange=47453132;f.ClipperBase.hiRange=0xfffffffffffff;f.ClipperBase.near_zero=function(b){return b>-f.ClipperBase.tolerance&&b<f.ClipperBase.tolerance};f.ClipperBase.IsHorizontal=function(b){return 0===b.Delta.Y};f.ClipperBase.prototype.PointIsVertex=function(b,d){var e=d;do{if(f.IntPoint.op_Equality(e.Pt,b))return!0;e=e.Next}while(e!=d);return!1};f.ClipperBase.prototype.PointOnLineSegment=function(b,d,
-e,f){return f?b.X==d.X&&b.Y==d.Y||b.X==e.X&&b.Y==e.Y||b.X>d.X==b.X<e.X&&b.Y>d.Y==b.Y<e.Y&&p.op_Equality(p.Int128Mul(b.X-d.X,e.Y-d.Y),p.Int128Mul(e.X-d.X,b.Y-d.Y)):b.X==d.X&&b.Y==d.Y||b.X==e.X&&b.Y==e.Y||b.X>d.X==b.X<e.X&&b.Y>d.Y==b.Y<e.Y&&(b.X-d.X)*(e.Y-d.Y)==(e.X-d.X)*(b.Y-d.Y)};f.ClipperBase.prototype.PointOnPolygon=function(b,d,e){for(var f=d;;){if(this.PointOnLineSegment(b,f.Pt,f.Next.Pt,e))return!0;f=f.Next;if(f==d)break}return!1};f.ClipperBase.prototype.SlopesEqual=f.ClipperBase.SlopesEqual=
-function(){var b=arguments,d=b.length,e,q,n;if(3==d)return d=b[0],e=b[1],b[2]?p.op_Equality(p.Int128Mul(d.Delta.Y,e.Delta.X),p.Int128Mul(d.Delta.X,e.Delta.Y)):f.Cast_Int64(d.Delta.Y*e.Delta.X)==f.Cast_Int64(d.Delta.X*e.Delta.Y);if(4==d)return d=b[0],e=b[1],q=b[2],b[3]?p.op_Equality(p.Int128Mul(d.Y-e.Y,e.X-q.X),p.Int128Mul(d.X-e.X,e.Y-q.Y)):0===f.Cast_Int64((d.Y-e.Y)*(e.X-q.X))-f.Cast_Int64((d.X-e.X)*(e.Y-q.Y));d=b[0];e=b[1];q=b[2];n=b[3];return b[4]?p.op_Equality(p.Int128Mul(d.Y-e.Y,q.X-n.X),p.Int128Mul(d.X-
-e.X,q.Y-n.Y)):0===f.Cast_Int64((d.Y-e.Y)*(q.X-n.X))-f.Cast_Int64((d.X-e.X)*(q.Y-n.Y))};f.ClipperBase.SlopesEqual3=function(b,d,e){return e?p.op_Equality(p.Int128Mul(b.Delta.Y,d.Delta.X),p.Int128Mul(b.Delta.X,d.Delta.Y)):f.Cast_Int64(b.Delta.Y*d.Delta.X)==f.Cast_Int64(b.Delta.X*d.Delta.Y)};f.ClipperBase.SlopesEqual4=function(b,d,e,q){return q?p.op_Equality(p.Int128Mul(b.Y-d.Y,d.X-e.X),p.Int128Mul(b.X-d.X,d.Y-e.Y)):0===f.Cast_Int64((b.Y-d.Y)*(d.X-e.X))-f.Cast_Int64((b.X-d.X)*(d.Y-e.Y))};f.ClipperBase.SlopesEqual5=
-function(b,d,e,q,n){return n?p.op_Equality(p.Int128Mul(b.Y-d.Y,e.X-q.X),p.Int128Mul(b.X-d.X,e.Y-q.Y)):0===f.Cast_Int64((b.Y-d.Y)*(e.X-q.X))-f.Cast_Int64((b.X-d.X)*(e.Y-q.Y))};f.ClipperBase.prototype.Clear=function(){this.DisposeLocalMinimaList();for(var b=0,d=this.m_edges.length;b<d;++b){for(var e=0,q=this.m_edges[b].length;e<q;++e)this.m_edges[b][e]=null;f.Clear(this.m_edges[b])}f.Clear(this.m_edges);this.m_HasOpenPaths=this.m_UseFullRange=!1};f.ClipperBase.prototype.DisposeLocalMinimaList=function(){for(;null!==
-this.m_MinimaList;){var b=this.m_MinimaList.Next;this.m_MinimaList=null;this.m_MinimaList=b}this.m_CurrentLM=null};f.ClipperBase.prototype.RangeTest=function(b,d){if(d.Value)(b.X>f.ClipperBase.hiRange||b.Y>f.ClipperBase.hiRange||-b.X>f.ClipperBase.hiRange||-b.Y>f.ClipperBase.hiRange)&&f.Error("Coordinate outside allowed range in RangeTest().");else if(b.X>f.ClipperBase.loRange||b.Y>f.ClipperBase.loRange||-b.X>f.ClipperBase.loRange||-b.Y>f.ClipperBase.loRange)d.Value=!0,this.RangeTest(b,d)};f.ClipperBase.prototype.InitEdge=
-function(b,d,e,q){b.Next=d;b.Prev=e;b.Curr.X=q.X;b.Curr.Y=q.Y;f.use_xyz&&(b.Curr.Z=q.Z);b.OutIdx=-1};f.ClipperBase.prototype.InitEdge2=function(b,d){b.Curr.Y>=b.Next.Curr.Y?(b.Bot.X=b.Curr.X,b.Bot.Y=b.Curr.Y,f.use_xyz&&(b.Bot.Z=b.Curr.Z),b.Top.X=b.Next.Curr.X,b.Top.Y=b.Next.Curr.Y,f.use_xyz&&(b.Top.Z=b.Next.Curr.Z)):(b.Top.X=b.Curr.X,b.Top.Y=b.Curr.Y,f.use_xyz&&(b.Top.Z=b.Curr.Z),b.Bot.X=b.Next.Curr.X,b.Bot.Y=b.Next.Curr.Y,f.use_xyz&&(b.Bot.Z=b.Next.Curr.Z));this.SetDx(b);b.PolyTyp=d};f.ClipperBase.prototype.FindNextLocMin=
-function(b){for(var d;;){for(;f.IntPoint.op_Inequality(b.Bot,b.Prev.Bot)||f.IntPoint.op_Equality(b.Curr,b.Top);)b=b.Next;if(b.Dx!=f.ClipperBase.horizontal&&b.Prev.Dx!=f.ClipperBase.horizontal)break;for(;b.Prev.Dx==f.ClipperBase.horizontal;)b=b.Prev;for(d=b;b.Dx==f.ClipperBase.horizontal;)b=b.Next;if(b.Top.Y!=b.Prev.Bot.Y){d.Prev.Bot.X<b.Bot.X&&(b=d);break}}return b};f.ClipperBase.prototype.ProcessBound=function(b,d){var e,q=b,n;if(q.OutIdx==f.ClipperBase.Skip){b=q;if(d){for(;b.Top.Y==b.Next.Bot.Y;)b=
-b.Next;for(;b!=q&&b.Dx==f.ClipperBase.horizontal;)b=b.Prev}else{for(;b.Top.Y==b.Prev.Bot.Y;)b=b.Prev;for(;b!=q&&b.Dx==f.ClipperBase.horizontal;)b=b.Next}b==q?q=d?b.Next:b.Prev:(b=d?q.Next:q.Prev,e=new f.LocalMinima,e.Next=null,e.Y=b.Bot.Y,e.LeftBound=null,e.RightBound=b,b.WindDelta=0,q=this.ProcessBound(b,d),this.InsertLocalMinima(e));return q}b.Dx==f.ClipperBase.horizontal&&(e=d?b.Prev:b.Next,e.OutIdx!=f.ClipperBase.Skip&&(e.Dx==f.ClipperBase.horizontal?e.Bot.X!=b.Bot.X&&e.Top.X!=b.Bot.X&&this.ReverseHorizontal(b):
-e.Bot.X!=b.Bot.X&&this.ReverseHorizontal(b)));e=b;if(d){for(;q.Top.Y==q.Next.Bot.Y&&q.Next.OutIdx!=f.ClipperBase.Skip;)q=q.Next;if(q.Dx==f.ClipperBase.horizontal&&q.Next.OutIdx!=f.ClipperBase.Skip){for(n=q;n.Prev.Dx==f.ClipperBase.horizontal;)n=n.Prev;n.Prev.Top.X==q.Next.Top.X?d||(q=n.Prev):n.Prev.Top.X>q.Next.Top.X&&(q=n.Prev)}for(;b!=q;)b.NextInLML=b.Next,b.Dx==f.ClipperBase.horizontal&&b!=e&&b.Bot.X!=b.Prev.Top.X&&this.ReverseHorizontal(b),b=b.Next;b.Dx==f.ClipperBase.horizontal&&b!=e&&b.Bot.X!=
-b.Prev.Top.X&&this.ReverseHorizontal(b);q=q.Next}else{for(;q.Top.Y==q.Prev.Bot.Y&&q.Prev.OutIdx!=f.ClipperBase.Skip;)q=q.Prev;if(q.Dx==f.ClipperBase.horizontal&&q.Prev.OutIdx!=f.ClipperBase.Skip){for(n=q;n.Next.Dx==f.ClipperBase.horizontal;)n=n.Next;n.Next.Top.X==q.Prev.Top.X?d||(q=n.Next):n.Next.Top.X>q.Prev.Top.X&&(q=n.Next)}for(;b!=q;)b.NextInLML=b.Prev,b.Dx==f.ClipperBase.horizontal&&b!=e&&b.Bot.X!=b.Next.Top.X&&this.ReverseHorizontal(b),b=b.Prev;b.Dx==f.ClipperBase.horizontal&&b!=e&&b.Bot.X!=
-b.Next.Top.X&&this.ReverseHorizontal(b);q=q.Prev}return q};f.ClipperBase.prototype.AddPath=function(b,d,e){f.use_lines?e||d!=f.PolyType.ptClip||f.Error("AddPath: Open paths must be subject."):e||f.Error("AddPath: Open paths have been disabled.");var q=b.length-1;if(e)for(;0<q&&f.IntPoint.op_Equality(b[q],b[0]);)--q;for(;0<q&&f.IntPoint.op_Equality(b[q],b[q-1]);)--q;if(e&&2>q||!e&&1>q)return!1;for(var n=[],k=0;k<=q;k++)n.push(new f.TEdge);var v=!0;n[1].Curr.X=b[1].X;n[1].Curr.Y=b[1].Y;f.use_xyz&&(n[1].Curr.Z=
-b[1].Z);var C={Value:this.m_UseFullRange};this.RangeTest(b[0],C);this.m_UseFullRange=C.Value;C.Value=this.m_UseFullRange;this.RangeTest(b[q],C);this.m_UseFullRange=C.Value;this.InitEdge(n[0],n[1],n[q],b[0]);this.InitEdge(n[q],n[0],n[q-1],b[q]);for(k=q-1;1<=k;--k)C.Value=this.m_UseFullRange,this.RangeTest(b[k],C),this.m_UseFullRange=C.Value,this.InitEdge(n[k],n[k+1],n[k-1],b[k]);for(k=b=q=n[0];;)if(b.Curr!=b.Next.Curr||!e&&b.Next==q){if(b.Prev==b.Next)break;else if(e&&f.ClipperBase.SlopesEqual(b.Prev.Curr,
-b.Curr,b.Next.Curr,this.m_UseFullRange)&&(!this.PreserveCollinear||!this.Pt2IsBetweenPt1AndPt3(b.Prev.Curr,b.Curr,b.Next.Curr))){b==q&&(q=b.Next);b=this.RemoveEdge(b);k=b=b.Prev;continue}b=b.Next;if(b==k||!e&&b.Next==q)break}else{if(b==b.Next)break;b==q&&(q=b.Next);k=b=this.RemoveEdge(b)}if(!e&&b==b.Next||e&&b.Prev==b.Next)return!1;e||(this.m_HasOpenPaths=!0,q.Prev.OutIdx=f.ClipperBase.Skip);b=q;do this.InitEdge2(b,d),b=b.Next,v&&b.Curr.Y!=q.Curr.Y&&(v=!1);while(b!=q);if(v){if(e)return!1;b.Prev.OutIdx=
-f.ClipperBase.Skip;b.Prev.Bot.X<b.Prev.Top.X&&this.ReverseHorizontal(b.Prev);d=new f.LocalMinima;d.Next=null;d.Y=b.Bot.Y;d.LeftBound=null;d.RightBound=b;d.RightBound.Side=f.EdgeSide.esRight;for(d.RightBound.WindDelta=0;b.Next.OutIdx!=f.ClipperBase.Skip;)b.NextInLML=b.Next,b.Bot.X!=b.Prev.Top.X&&this.ReverseHorizontal(b),b=b.Next;this.InsertLocalMinima(d);this.m_edges.push(n);return!0}this.m_edges.push(n);v=null;for(f.IntPoint.op_Equality(b.Prev.Bot,b.Prev.Top)&&(b=b.Next);;){b=this.FindNextLocMin(b);
-if(b==v)break;else null==v&&(v=b);d=new f.LocalMinima;d.Next=null;d.Y=b.Bot.Y;b.Dx<b.Prev.Dx?(d.LeftBound=b.Prev,d.RightBound=b,n=!1):(d.LeftBound=b,d.RightBound=b.Prev,n=!0);d.LeftBound.Side=f.EdgeSide.esLeft;d.RightBound.Side=f.EdgeSide.esRight;d.LeftBound.WindDelta=e?d.LeftBound.Next==d.RightBound?-1:1:0;d.RightBound.WindDelta=-d.LeftBound.WindDelta;b=this.ProcessBound(d.LeftBound,n);b.OutIdx==f.ClipperBase.Skip&&(b=this.ProcessBound(b,n));q=this.ProcessBound(d.RightBound,!n);q.OutIdx==f.ClipperBase.Skip&&
-(q=this.ProcessBound(q,!n));d.LeftBound.OutIdx==f.ClipperBase.Skip?d.LeftBound=null:d.RightBound.OutIdx==f.ClipperBase.Skip&&(d.RightBound=null);this.InsertLocalMinima(d);n||(b=q)}return!0};f.ClipperBase.prototype.AddPaths=function(b,d,e){for(var f=!1,n=0,k=b.length;n<k;++n)this.AddPath(b[n],d,e)&&(f=!0);return f};f.ClipperBase.prototype.Pt2IsBetweenPt1AndPt3=function(b,d,e){return f.IntPoint.op_Equality(b,e)||f.IntPoint.op_Equality(b,d)||f.IntPoint.op_Equality(e,d)?!1:b.X!=e.X?d.X>b.X==d.X<e.X:d.Y>
-b.Y==d.Y<e.Y};f.ClipperBase.prototype.RemoveEdge=function(b){b.Prev.Next=b.Next;b.Next.Prev=b.Prev;var d=b.Next;b.Prev=null;return d};f.ClipperBase.prototype.SetDx=function(b){b.Delta.X=b.Top.X-b.Bot.X;b.Delta.Y=b.Top.Y-b.Bot.Y;b.Dx=0===b.Delta.Y?f.ClipperBase.horizontal:b.Delta.X/b.Delta.Y};f.ClipperBase.prototype.InsertLocalMinima=function(b){if(null===this.m_MinimaList)this.m_MinimaList=b;else if(b.Y>=this.m_MinimaList.Y)b.Next=this.m_MinimaList,this.m_MinimaList=b;else{for(var d=this.m_MinimaList;null!==
-d.Next&&b.Y<d.Next.Y;)d=d.Next;b.Next=d.Next;d.Next=b}};f.ClipperBase.prototype.PopLocalMinima=function(){null!==this.m_CurrentLM&&(this.m_CurrentLM=this.m_CurrentLM.Next)};f.ClipperBase.prototype.ReverseHorizontal=function(b){var d=b.Top.X;b.Top.X=b.Bot.X;b.Bot.X=d;f.use_xyz&&(d=b.Top.Z,b.Top.Z=b.Bot.Z,b.Bot.Z=d)};f.ClipperBase.prototype.Reset=function(){this.m_CurrentLM=this.m_MinimaList;if(null!=this.m_CurrentLM)for(var b=this.m_MinimaList;null!=b;){var d=b.LeftBound;null!=d&&(d.Curr.X=d.Bot.X,
-d.Curr.Y=d.Bot.Y,f.use_xyz&&(d.Curr.Z=d.Bot.Z),d.Side=f.EdgeSide.esLeft,d.OutIdx=f.ClipperBase.Unassigned);d=b.RightBound;null!=d&&(d.Curr.X=d.Bot.X,d.Curr.Y=d.Bot.Y,f.use_xyz&&(d.Curr.Z=d.Bot.Z),d.Side=f.EdgeSide.esRight,d.OutIdx=f.ClipperBase.Unassigned);b=b.Next}};f.Clipper=function(b){"undefined"==typeof b&&(b=0);this.m_PolyOuts=null;this.m_ClipType=f.ClipType.ctIntersection;this.m_IntersectNodeComparer=this.m_IntersectList=this.m_SortedEdges=this.m_ActiveEdges=this.m_Scanbeam=null;this.m_ExecuteLocked=
-!1;this.m_SubjFillType=this.m_ClipFillType=f.PolyFillType.pftEvenOdd;this.m_GhostJoins=this.m_Joins=null;this.StrictlySimple=this.ReverseSolution=this.m_UsingPolyTree=!1;f.ClipperBase.call(this);this.m_SortedEdges=this.m_ActiveEdges=this.m_Scanbeam=null;this.m_IntersectList=[];this.m_IntersectNodeComparer=f.MyIntersectNodeSort.Compare;this.m_UsingPolyTree=this.m_ExecuteLocked=!1;this.m_PolyOuts=[];this.m_Joins=[];this.m_GhostJoins=[];this.ReverseSolution=0!==(1&b);this.StrictlySimple=0!==(2&b);this.PreserveCollinear=
-0!==(4&b);f.use_xyz&&(this.ZFillFunction=null)};f.Clipper.ioReverseSolution=1;f.Clipper.ioStrictlySimple=2;f.Clipper.ioPreserveCollinear=4;f.Clipper.prototype.Clear=function(){0!==this.m_edges.length&&(this.DisposeAllPolyPts(),f.ClipperBase.prototype.Clear.call(this))};f.Clipper.prototype.DisposeScanbeamList=function(){for(;null!==this.m_Scanbeam;){var b=this.m_Scanbeam.Next;this.m_Scanbeam=null;this.m_Scanbeam=b}};f.Clipper.prototype.Reset=function(){f.ClipperBase.prototype.Reset.call(this);this.m_SortedEdges=
-this.m_ActiveEdges=this.m_Scanbeam=null;for(var b=this.m_MinimaList;null!==b;)this.InsertScanbeam(b.Y),b=b.Next};f.Clipper.prototype.InsertScanbeam=function(b){if(null===this.m_Scanbeam)this.m_Scanbeam=new f.Scanbeam,this.m_Scanbeam.Next=null,this.m_Scanbeam.Y=b;else if(b>this.m_Scanbeam.Y){var d=new f.Scanbeam;d.Y=b;d.Next=this.m_Scanbeam;this.m_Scanbeam=d}else{for(var e=this.m_Scanbeam;null!==e.Next&&b<=e.Next.Y;)e=e.Next;b!=e.Y&&(d=new f.Scanbeam,d.Y=b,d.Next=e.Next,e.Next=d)}};f.Clipper.prototype.Execute=
-function(){var b=arguments,d=b.length,e=b[1]instanceof f.PolyTree;if(4!=d||e){if(4==d&&e){var d=b[0],q=b[1],e=b[2],b=b[3];if(this.m_ExecuteLocked)return!1;this.m_ExecuteLocked=!0;this.m_SubjFillType=e;this.m_ClipFillType=b;this.m_ClipType=d;this.m_UsingPolyTree=!0;try{(n=this.ExecuteInternal())&&this.BuildResult2(q)}finally{this.DisposeAllPolyPts(),this.m_ExecuteLocked=!1}return n}if(2==d&&!e||2==d&&e)return d=b[0],q=b[1],this.Execute(d,q,f.PolyFillType.pftEvenOdd,f.PolyFillType.pftEvenOdd)}else{d=
-b[0];q=b[1];e=b[2];b=b[3];if(this.m_ExecuteLocked)return!1;this.m_HasOpenPaths&&f.Error("Error: PolyTree struct is need for open path clipping.");this.m_ExecuteLocked=!0;f.Clear(q);this.m_SubjFillType=e;this.m_ClipFillType=b;this.m_ClipType=d;this.m_UsingPolyTree=!1;try{var n=this.ExecuteInternal();n&&this.BuildResult(q)}finally{this.DisposeAllPolyPts(),this.m_ExecuteLocked=!1}return n}};f.Clipper.prototype.FixHoleLinkage=function(b){if(null!==b.FirstLeft&&(b.IsHole==b.FirstLeft.IsHole||null===b.FirstLeft.Pts)){for(var d=
-b.FirstLeft;null!==d&&(d.IsHole==b.IsHole||null===d.Pts);)d=d.FirstLeft;b.FirstLeft=d}};f.Clipper.prototype.ExecuteInternal=function(){try{this.Reset();if(null===this.m_CurrentLM)return!1;var b=this.PopScanbeam();do{this.InsertLocalMinimaIntoAEL(b);f.Clear(this.m_GhostJoins);this.ProcessHorizontals(!1);if(null===this.m_Scanbeam)break;var d=this.PopScanbeam();if(!this.ProcessIntersections(d))return!1;this.ProcessEdgesAtTopOfScanbeam(d);b=d}while(null!==this.m_Scanbeam||null!==this.m_CurrentLM);for(var b=
-0,e=this.m_PolyOuts.length;b<e;b++){var q=this.m_PolyOuts[b];null===q.Pts||q.IsOpen||(q.IsHole^this.ReverseSolution)==0<this.Area(q)&&this.ReversePolyPtLinks(q.Pts)}this.JoinCommonEdges();b=0;for(e=this.m_PolyOuts.length;b<e;b++)q=this.m_PolyOuts[b],null===q.Pts||q.IsOpen||this.FixupOutPolygon(q);this.StrictlySimple&&this.DoSimplePolygons();return!0}finally{f.Clear(this.m_Joins),f.Clear(this.m_GhostJoins)}};f.Clipper.prototype.PopScanbeam=function(){var b=this.m_Scanbeam.Y;this.m_Scanbeam=this.m_Scanbeam.Next;
-return b};f.Clipper.prototype.DisposeAllPolyPts=function(){for(var b=0,d=this.m_PolyOuts.length;b<d;++b)this.DisposeOutRec(b);f.Clear(this.m_PolyOuts)};f.Clipper.prototype.DisposeOutRec=function(b){this.m_PolyOuts[b].Pts=null;this.m_PolyOuts[b]=null};f.Clipper.prototype.AddJoin=function(b,d,e){var q=new f.Join;q.OutPt1=b;q.OutPt2=d;q.OffPt.X=e.X;q.OffPt.Y=e.Y;f.use_xyz&&(q.OffPt.Z=e.Z);this.m_Joins.push(q)};f.Clipper.prototype.AddGhostJoin=function(b,d){var e=new f.Join;e.OutPt1=b;e.OffPt.X=d.X;e.OffPt.Y=
-d.Y;f.use_xyz&&(e.OffPt.Z=d.Z);this.m_GhostJoins.push(e)};f.Clipper.prototype.SetZ=function(b,d,e){null!==this.ZFillFunction&&0==b.Z&&null!==this.ZFillFunction&&(f.IntPoint.op_Equality(b,d.Bot)?b.Z=d.Bot.Z:f.IntPoint.op_Equality(b,d.Top)?b.Z=d.Top.Z:f.IntPoint.op_Equality(b,e.Bot)?b.Z=e.Bot.Z:f.IntPoint.op_Equality(b,e.Top)?b.Z=e.Top.Z:this.ZFillFunction(d.Bot,d.Top,e.Bot,e.Top,b))};f.Clipper.prototype.InsertLocalMinimaIntoAEL=function(b){for(;null!==this.m_CurrentLM&&this.m_CurrentLM.Y==b;){var d=
-this.m_CurrentLM.LeftBound,e=this.m_CurrentLM.RightBound;this.PopLocalMinima();var q=null;null===d?(this.InsertEdgeIntoAEL(e,null),this.SetWindingCount(e),this.IsContributing(e)&&(q=this.AddOutPt(e,e.Bot))):(null==e?(this.InsertEdgeIntoAEL(d,null),this.SetWindingCount(d),this.IsContributing(d)&&(q=this.AddOutPt(d,d.Bot))):(this.InsertEdgeIntoAEL(d,null),this.InsertEdgeIntoAEL(e,d),this.SetWindingCount(d),e.WindCnt=d.WindCnt,e.WindCnt2=d.WindCnt2,this.IsContributing(d)&&(q=this.AddLocalMinPoly(d,e,
-d.Bot))),this.InsertScanbeam(d.Top.Y));null!=e&&(f.ClipperBase.IsHorizontal(e)?this.AddEdgeToSEL(e):this.InsertScanbeam(e.Top.Y));if(null!=d&&null!=e){if(null!==q&&f.ClipperBase.IsHorizontal(e)&&0<this.m_GhostJoins.length&&0!==e.WindDelta)for(var n=0,k=this.m_GhostJoins.length;n<k;n++){var v=this.m_GhostJoins[n];this.HorzSegmentsOverlap(v.OutPt1.Pt.X,v.OffPt.X,e.Bot.X,e.Top.X)&&this.AddJoin(v.OutPt1,q,v.OffPt)}0<=d.OutIdx&&null!==d.PrevInAEL&&d.PrevInAEL.Curr.X==d.Bot.X&&0<=d.PrevInAEL.OutIdx&&f.ClipperBase.SlopesEqual(d.PrevInAEL,
-d,this.m_UseFullRange)&&0!==d.WindDelta&&0!==d.PrevInAEL.WindDelta&&(n=this.AddOutPt(d.PrevInAEL,d.Bot),this.AddJoin(q,n,d.Top));if(d.NextInAEL!=e&&(0<=e.OutIdx&&0<=e.PrevInAEL.OutIdx&&f.ClipperBase.SlopesEqual(e.PrevInAEL,e,this.m_UseFullRange)&&0!==e.WindDelta&&0!==e.PrevInAEL.WindDelta&&(n=this.AddOutPt(e.PrevInAEL,e.Bot),this.AddJoin(q,n,e.Top)),q=d.NextInAEL,null!==q))for(;q!=e;)this.IntersectEdges(e,q,d.Curr,!1),q=q.NextInAEL}}};f.Clipper.prototype.InsertEdgeIntoAEL=function(b,d){if(null===
-this.m_ActiveEdges)b.PrevInAEL=null,b.NextInAEL=null,this.m_ActiveEdges=b;else if(null===d&&this.E2InsertsBeforeE1(this.m_ActiveEdges,b))b.PrevInAEL=null,b.NextInAEL=this.m_ActiveEdges,this.m_ActiveEdges=this.m_ActiveEdges.PrevInAEL=b;else{for(null===d&&(d=this.m_ActiveEdges);null!==d.NextInAEL&&!this.E2InsertsBeforeE1(d.NextInAEL,b);)d=d.NextInAEL;b.NextInAEL=d.NextInAEL;null!==d.NextInAEL&&(d.NextInAEL.PrevInAEL=b);b.PrevInAEL=d;d.NextInAEL=b}};f.Clipper.prototype.E2InsertsBeforeE1=function(b,d){return d.Curr.X==
-b.Curr.X?d.Top.Y>b.Top.Y?d.Top.X<f.Clipper.TopX(b,d.Top.Y):b.Top.X>f.Clipper.TopX(d,b.Top.Y):d.Curr.X<b.Curr.X};f.Clipper.prototype.IsEvenOddFillType=function(b){return b.PolyTyp==f.PolyType.ptSubject?this.m_SubjFillType==f.PolyFillType.pftEvenOdd:this.m_ClipFillType==f.PolyFillType.pftEvenOdd};f.Clipper.prototype.IsEvenOddAltFillType=function(b){return b.PolyTyp==f.PolyType.ptSubject?this.m_ClipFillType==f.PolyFillType.pftEvenOdd:this.m_SubjFillType==f.PolyFillType.pftEvenOdd};f.Clipper.prototype.IsContributing=
-function(b){var d,e;b.PolyTyp==f.PolyType.ptSubject?(d=this.m_SubjFillType,e=this.m_ClipFillType):(d=this.m_ClipFillType,e=this.m_SubjFillType);switch(d){case f.PolyFillType.pftEvenOdd:if(0===b.WindDelta&&1!=b.WindCnt)return!1;break;case f.PolyFillType.pftNonZero:if(1!=Math.abs(b.WindCnt))return!1;break;case f.PolyFillType.pftPositive:if(1!=b.WindCnt)return!1;break;default:if(-1!=b.WindCnt)return!1}switch(this.m_ClipType){case f.ClipType.ctIntersection:switch(e){case f.PolyFillType.pftEvenOdd:case f.PolyFillType.pftNonZero:return 0!==
-b.WindCnt2;case f.PolyFillType.pftPositive:return 0<b.WindCnt2;default:return 0>b.WindCnt2}case f.ClipType.ctUnion:switch(e){case f.PolyFillType.pftEvenOdd:case f.PolyFillType.pftNonZero:return 0===b.WindCnt2;case f.PolyFillType.pftPositive:return 0>=b.WindCnt2;default:return 0<=b.WindCnt2}case f.ClipType.ctDifference:if(b.PolyTyp==f.PolyType.ptSubject)switch(e){case f.PolyFillType.pftEvenOdd:case f.PolyFillType.pftNonZero:return 0===b.WindCnt2;case f.PolyFillType.pftPositive:return 0>=b.WindCnt2;
-default:return 0<=b.WindCnt2}else switch(e){case f.PolyFillType.pftEvenOdd:case f.PolyFillType.pftNonZero:return 0!==b.WindCnt2;case f.PolyFillType.pftPositive:return 0<b.WindCnt2;default:return 0>b.WindCnt2}case f.ClipType.ctXor:if(0===b.WindDelta)switch(e){case f.PolyFillType.pftEvenOdd:case f.PolyFillType.pftNonZero:return 0===b.WindCnt2;case f.PolyFillType.pftPositive:return 0>=b.WindCnt2;default:return 0<=b.WindCnt2}}return!0};f.Clipper.prototype.SetWindingCount=function(b){for(var d=b.PrevInAEL;null!==
-d&&(d.PolyTyp!=b.PolyTyp||0===d.WindDelta);)d=d.PrevInAEL;if(null===d)b.WindCnt=0===b.WindDelta?1:b.WindDelta,b.WindCnt2=0,d=this.m_ActiveEdges;else{if(0===b.WindDelta&&this.m_ClipType!=f.ClipType.ctUnion)b.WindCnt=1;else if(this.IsEvenOddFillType(b))if(0===b.WindDelta){for(var e=!0,q=d.PrevInAEL;null!==q;)q.PolyTyp==d.PolyTyp&&0!==q.WindDelta&&(e=!e),q=q.PrevInAEL;b.WindCnt=e?0:1}else b.WindCnt=b.WindDelta;else b.WindCnt=0>d.WindCnt*d.WindDelta?1<Math.abs(d.WindCnt)?0>d.WindDelta*b.WindDelta?d.WindCnt:
-d.WindCnt+b.WindDelta:0===b.WindDelta?1:b.WindDelta:0===b.WindDelta?0>d.WindCnt?d.WindCnt-1:d.WindCnt+1:0>d.WindDelta*b.WindDelta?d.WindCnt:d.WindCnt+b.WindDelta;b.WindCnt2=d.WindCnt2;d=d.NextInAEL}if(this.IsEvenOddAltFillType(b))for(;d!=b;)0!==d.WindDelta&&(b.WindCnt2=0===b.WindCnt2?1:0),d=d.NextInAEL;else for(;d!=b;)b.WindCnt2+=d.WindDelta,d=d.NextInAEL};f.Clipper.prototype.AddEdgeToSEL=function(b){null===this.m_SortedEdges?(this.m_SortedEdges=b,b.PrevInSEL=null,b.NextInSEL=null):(b.NextInSEL=this.m_SortedEdges,
-b.PrevInSEL=null,this.m_SortedEdges=this.m_SortedEdges.PrevInSEL=b)};f.Clipper.prototype.CopyAELToSEL=function(){var b=this.m_ActiveEdges;for(this.m_SortedEdges=b;null!==b;)b.PrevInSEL=b.PrevInAEL,b=b.NextInSEL=b.NextInAEL};f.Clipper.prototype.SwapPositionsInAEL=function(b,d){if(b.NextInAEL!=b.PrevInAEL&&d.NextInAEL!=d.PrevInAEL){if(b.NextInAEL==d){var e=d.NextInAEL;null!==e&&(e.PrevInAEL=b);var f=b.PrevInAEL;null!==f&&(f.NextInAEL=d);d.PrevInAEL=f;d.NextInAEL=b;b.PrevInAEL=d;b.NextInAEL=e}else d.NextInAEL==
-b?(e=b.NextInAEL,null!==e&&(e.PrevInAEL=d),f=d.PrevInAEL,null!==f&&(f.NextInAEL=b),b.PrevInAEL=f,b.NextInAEL=d,d.PrevInAEL=b,d.NextInAEL=e):(e=b.NextInAEL,f=b.PrevInAEL,b.NextInAEL=d.NextInAEL,null!==b.NextInAEL&&(b.NextInAEL.PrevInAEL=b),b.PrevInAEL=d.PrevInAEL,null!==b.PrevInAEL&&(b.PrevInAEL.NextInAEL=b),d.NextInAEL=e,null!==d.NextInAEL&&(d.NextInAEL.PrevInAEL=d),d.PrevInAEL=f,null!==d.PrevInAEL&&(d.PrevInAEL.NextInAEL=d));null===b.PrevInAEL?this.m_ActiveEdges=b:null===d.PrevInAEL&&(this.m_ActiveEdges=
-d)}};f.Clipper.prototype.SwapPositionsInSEL=function(b,d){if(null!==b.NextInSEL||null!==b.PrevInSEL)if(null!==d.NextInSEL||null!==d.PrevInSEL){if(b.NextInSEL==d){var e=d.NextInSEL;null!==e&&(e.PrevInSEL=b);var f=b.PrevInSEL;null!==f&&(f.NextInSEL=d);d.PrevInSEL=f;d.NextInSEL=b;b.PrevInSEL=d;b.NextInSEL=e}else d.NextInSEL==b?(e=b.NextInSEL,null!==e&&(e.PrevInSEL=d),f=d.PrevInSEL,null!==f&&(f.NextInSEL=b),b.PrevInSEL=f,b.NextInSEL=d,d.PrevInSEL=b,d.NextInSEL=e):(e=b.NextInSEL,f=b.PrevInSEL,b.NextInSEL=
-d.NextInSEL,null!==b.NextInSEL&&(b.NextInSEL.PrevInSEL=b),b.PrevInSEL=d.PrevInSEL,null!==b.PrevInSEL&&(b.PrevInSEL.NextInSEL=b),d.NextInSEL=e,null!==d.NextInSEL&&(d.NextInSEL.PrevInSEL=d),d.PrevInSEL=f,null!==d.PrevInSEL&&(d.PrevInSEL.NextInSEL=d));null===b.PrevInSEL?this.m_SortedEdges=b:null===d.PrevInSEL&&(this.m_SortedEdges=d)}};f.Clipper.prototype.AddLocalMaxPoly=function(b,d,e){this.AddOutPt(b,e);0==d.WindDelta&&this.AddOutPt(d,e);b.OutIdx==d.OutIdx?(b.OutIdx=-1,d.OutIdx=-1):b.OutIdx<d.OutIdx?
-this.AppendPolygon(b,d):this.AppendPolygon(d,b)};f.Clipper.prototype.AddLocalMinPoly=function(b,d,e){var q,n;f.ClipperBase.IsHorizontal(d)||b.Dx>d.Dx?(q=this.AddOutPt(b,e),d.OutIdx=b.OutIdx,b.Side=f.EdgeSide.esLeft,d.Side=f.EdgeSide.esRight,n=b,b=n.PrevInAEL==d?d.PrevInAEL:n.PrevInAEL):(q=this.AddOutPt(d,e),b.OutIdx=d.OutIdx,b.Side=f.EdgeSide.esRight,d.Side=f.EdgeSide.esLeft,n=d,b=n.PrevInAEL==b?b.PrevInAEL:n.PrevInAEL);null!==b&&0<=b.OutIdx&&f.Clipper.TopX(b,e.Y)==f.Clipper.TopX(n,e.Y)&&f.ClipperBase.SlopesEqual(n,
-b,this.m_UseFullRange)&&0!==n.WindDelta&&0!==b.WindDelta&&(e=this.AddOutPt(b,e),this.AddJoin(q,e,n.Top));return q};f.Clipper.prototype.CreateOutRec=function(){var b=new f.OutRec;b.Idx=-1;b.IsHole=!1;b.IsOpen=!1;b.FirstLeft=null;b.Pts=null;b.BottomPt=null;b.PolyNode=null;this.m_PolyOuts.push(b);b.Idx=this.m_PolyOuts.length-1;return b};f.Clipper.prototype.AddOutPt=function(b,d){var e=b.Side==f.EdgeSide.esLeft;if(0>b.OutIdx){var q=this.CreateOutRec();q.IsOpen=0===b.WindDelta;var n=new f.OutPt;q.Pts=
-n;n.Idx=q.Idx;n.Pt.X=d.X;n.Pt.Y=d.Y;f.use_xyz&&(n.Pt.Z=d.Z);n.Next=n;n.Prev=n;q.IsOpen||this.SetHoleState(b,q);b.OutIdx=q.Idx}else{var q=this.m_PolyOuts[b.OutIdx],k=q.Pts;if(e&&f.IntPoint.op_Equality(d,k.Pt))return k;if(!e&&f.IntPoint.op_Equality(d,k.Prev.Pt))return k.Prev;n=new f.OutPt;n.Idx=q.Idx;n.Pt.X=d.X;n.Pt.Y=d.Y;f.use_xyz&&(n.Pt.Z=d.Z);n.Next=k;n.Prev=k.Prev;n.Prev.Next=n;k.Prev=n;e&&(q.Pts=n)}return n};f.Clipper.prototype.SwapPoints=function(b,d){var e=new f.IntPoint(b.Value);b.Value.X=d.Value.X;
-b.Value.Y=d.Value.Y;f.use_xyz&&(b.Value.Z=d.Value.Z);d.Value.X=e.X;d.Value.Y=e.Y;f.use_xyz&&(d.Value.Z=e.Z)};f.Clipper.prototype.HorzSegmentsOverlap=function(b,d,e,f){var n;b>d&&(n=b,b=d,d=n);e>f&&(n=e,e=f,f=n);return b<f&&e<d};f.Clipper.prototype.SetHoleState=function(b,d){for(var e=!1,f=b.PrevInAEL;null!==f;)0<=f.OutIdx&&0!=f.WindDelta&&(e=!e,null===d.FirstLeft&&(d.FirstLeft=this.m_PolyOuts[f.OutIdx])),f=f.PrevInAEL;e&&(d.IsHole=!0)};f.Clipper.prototype.GetDx=function(b,d){return b.Y==d.Y?f.ClipperBase.horizontal:
-(d.X-b.X)/(d.Y-b.Y)};f.Clipper.prototype.FirstIsBottomPt=function(b,d){for(var e=b.Prev;f.IntPoint.op_Equality(e.Pt,b.Pt)&&e!=b;)e=e.Prev;for(var q=Math.abs(this.GetDx(b.Pt,e.Pt)),e=b.Next;f.IntPoint.op_Equality(e.Pt,b.Pt)&&e!=b;)e=e.Next;for(var n=Math.abs(this.GetDx(b.Pt,e.Pt)),e=d.Prev;f.IntPoint.op_Equality(e.Pt,d.Pt)&&e!=d;)e=e.Prev;for(var k=Math.abs(this.GetDx(d.Pt,e.Pt)),e=d.Next;f.IntPoint.op_Equality(e.Pt,d.Pt)&&e!=d;)e=e.Next;e=Math.abs(this.GetDx(d.Pt,e.Pt));return q>=k&&q>=e||n>=k&&n>=
-e};f.Clipper.prototype.GetBottomPt=function(b){for(var d=null,e=b.Next;e!=b;)e.Pt.Y>b.Pt.Y?(b=e,d=null):e.Pt.Y==b.Pt.Y&&e.Pt.X<=b.Pt.X&&(e.Pt.X<b.Pt.X?(d=null,b=e):e.Next!=b&&e.Prev!=b&&(d=e)),e=e.Next;if(null!==d)for(;d!=e;)for(this.FirstIsBottomPt(e,d)||(b=d),d=d.Next;f.IntPoint.op_Inequality(d.Pt,b.Pt);)d=d.Next;return b};f.Clipper.prototype.GetLowermostRec=function(b,d){null===b.BottomPt&&(b.BottomPt=this.GetBottomPt(b.Pts));null===d.BottomPt&&(d.BottomPt=this.GetBottomPt(d.Pts));var e=b.BottomPt,
-f=d.BottomPt;return e.Pt.Y>f.Pt.Y?b:e.Pt.Y<f.Pt.Y?d:e.Pt.X<f.Pt.X?b:e.Pt.X>f.Pt.X?d:e.Next==e?d:f.Next==f?b:this.FirstIsBottomPt(e,f)?b:d};f.Clipper.prototype.Param1RightOfParam2=function(b,d){do if(b=b.FirstLeft,b==d)return!0;while(null!==b);return!1};f.Clipper.prototype.GetOutRec=function(b){for(b=this.m_PolyOuts[b];b!=this.m_PolyOuts[b.Idx];)b=this.m_PolyOuts[b.Idx];return b};f.Clipper.prototype.AppendPolygon=function(b,d){var e=this.m_PolyOuts[b.OutIdx],q=this.m_PolyOuts[d.OutIdx],n;n=this.Param1RightOfParam2(e,
-q)?q:this.Param1RightOfParam2(q,e)?e:this.GetLowermostRec(e,q);var k=e.Pts,v=k.Prev,C=q.Pts,p=C.Prev;b.Side==f.EdgeSide.esLeft?(d.Side==f.EdgeSide.esLeft?(this.ReversePolyPtLinks(C),C.Next=k,k.Prev=C,v.Next=p,p.Prev=v,e.Pts=p):(p.Next=k,k.Prev=p,C.Prev=v,v.Next=C,e.Pts=C),k=f.EdgeSide.esLeft):(d.Side==f.EdgeSide.esRight?(this.ReversePolyPtLinks(C),v.Next=p,p.Prev=v,C.Next=k,k.Prev=C):(v.Next=C,C.Prev=v,k.Prev=p,p.Next=k),k=f.EdgeSide.esRight);e.BottomPt=null;n==q&&(q.FirstLeft!=e&&(e.FirstLeft=q.FirstLeft),
-e.IsHole=q.IsHole);q.Pts=null;q.BottomPt=null;q.FirstLeft=e;n=b.OutIdx;v=d.OutIdx;b.OutIdx=-1;d.OutIdx=-1;for(C=this.m_ActiveEdges;null!==C;){if(C.OutIdx==v){C.OutIdx=n;C.Side=k;break}C=C.NextInAEL}q.Idx=e.Idx};f.Clipper.prototype.ReversePolyPtLinks=function(b){if(null!==b){var d,e;d=b;do e=d.Next,d.Next=d.Prev,d=d.Prev=e;while(d!=b)}};f.Clipper.SwapSides=function(b,d){var e=b.Side;b.Side=d.Side;d.Side=e};f.Clipper.SwapPolyIndexes=function(b,d){var e=b.OutIdx;b.OutIdx=d.OutIdx;d.OutIdx=e};f.Clipper.prototype.IntersectEdges=
-function(b,d,e){var q=0<=b.OutIdx,n=0<=d.OutIdx;f.use_xyz&&this.SetZ(e,b,d);if(!f.use_lines||0!==b.WindDelta&&0!==d.WindDelta){if(b.PolyTyp==d.PolyTyp)if(this.IsEvenOddFillType(b)){var k=b.WindCnt;b.WindCnt=d.WindCnt;d.WindCnt=k}else b.WindCnt=0===b.WindCnt+d.WindDelta?-b.WindCnt:b.WindCnt+d.WindDelta,d.WindCnt=0===d.WindCnt-b.WindDelta?-d.WindCnt:d.WindCnt-b.WindDelta;else this.IsEvenOddFillType(d)?b.WindCnt2=0===b.WindCnt2?1:0:b.WindCnt2+=d.WindDelta,this.IsEvenOddFillType(b)?d.WindCnt2=0===d.WindCnt2?
-1:0:d.WindCnt2-=b.WindDelta;var v,C,p;b.PolyTyp==f.PolyType.ptSubject?(v=this.m_SubjFillType,p=this.m_ClipFillType):(v=this.m_ClipFillType,p=this.m_SubjFillType);d.PolyTyp==f.PolyType.ptSubject?(C=this.m_SubjFillType,k=this.m_ClipFillType):(C=this.m_ClipFillType,k=this.m_SubjFillType);switch(v){case f.PolyFillType.pftPositive:v=b.WindCnt;break;case f.PolyFillType.pftNegative:v=-b.WindCnt;break;default:v=Math.abs(b.WindCnt)}switch(C){case f.PolyFillType.pftPositive:C=d.WindCnt;break;case f.PolyFillType.pftNegative:C=
--d.WindCnt;break;default:C=Math.abs(d.WindCnt)}if(q&&n)0!=v&&1!=v||0!=C&&1!=C||b.PolyTyp!=d.PolyTyp&&this.m_ClipType!=f.ClipType.ctXor?this.AddLocalMaxPoly(b,d,e):(this.AddOutPt(b,e),this.AddOutPt(d,e),f.Clipper.SwapSides(b,d),f.Clipper.SwapPolyIndexes(b,d));else if(q){if(0===C||1==C)this.AddOutPt(b,e),f.Clipper.SwapSides(b,d),f.Clipper.SwapPolyIndexes(b,d)}else if(n){if(0===v||1==v)this.AddOutPt(d,e),f.Clipper.SwapSides(b,d),f.Clipper.SwapPolyIndexes(b,d)}else if(!(0!=v&&1!=v||0!=C&&1!=C)){switch(p){case f.PolyFillType.pftPositive:q=
-b.WindCnt2;break;case f.PolyFillType.pftNegative:q=-b.WindCnt2;break;default:q=Math.abs(b.WindCnt2)}switch(k){case f.PolyFillType.pftPositive:n=d.WindCnt2;break;case f.PolyFillType.pftNegative:n=-d.WindCnt2;break;default:n=Math.abs(d.WindCnt2)}if(b.PolyTyp!=d.PolyTyp)this.AddLocalMinPoly(b,d,e);else if(1==v&&1==C)switch(this.m_ClipType){case f.ClipType.ctIntersection:0<q&&0<n&&this.AddLocalMinPoly(b,d,e);break;case f.ClipType.ctUnion:0>=q&&0>=n&&this.AddLocalMinPoly(b,d,e);break;case f.ClipType.ctDifference:(b.PolyTyp==
-f.PolyType.ptClip&&0<q&&0<n||b.PolyTyp==f.PolyType.ptSubject&&0>=q&&0>=n)&&this.AddLocalMinPoly(b,d,e);break;case f.ClipType.ctXor:this.AddLocalMinPoly(b,d,e)}else f.Clipper.SwapSides(b,d)}}else if(0!=b.WindDelta||0!=d.WindDelta)b.PolyTyp==d.PolyTyp&&b.WindDelta!=d.WindDelta&&this.m_ClipType==f.ClipType.ctUnion?0===b.WindDelta?n&&(this.AddOutPt(b,e),q&&(b.OutIdx=-1)):q&&(this.AddOutPt(d,e),n&&(d.OutIdx=-1)):b.PolyTyp!=d.PolyTyp&&(0!==b.WindDelta||1!=Math.abs(d.WindCnt)||this.m_ClipType==f.ClipType.ctUnion&&
-0!==d.WindCnt2?0!==d.WindDelta||1!=Math.abs(b.WindCnt)||this.m_ClipType==f.ClipType.ctUnion&&0!==b.WindCnt2||(this.AddOutPt(d,e),n&&(d.OutIdx=-1)):(this.AddOutPt(b,e),q&&(b.OutIdx=-1)))};f.Clipper.prototype.DeleteFromAEL=function(b){var d=b.PrevInAEL,e=b.NextInAEL;if(null!==d||null!==e||b==this.m_ActiveEdges)null!==d?d.NextInAEL=e:this.m_ActiveEdges=e,null!==e&&(e.PrevInAEL=d),b.NextInAEL=null,b.PrevInAEL=null};f.Clipper.prototype.DeleteFromSEL=function(b){var d=b.PrevInSEL,e=b.NextInSEL;if(null!==
-d||null!==e||b==this.m_SortedEdges)null!==d?d.NextInSEL=e:this.m_SortedEdges=e,null!==e&&(e.PrevInSEL=d),b.NextInSEL=null,b.PrevInSEL=null};f.Clipper.prototype.UpdateEdgeIntoAEL=function(b){null===b.NextInLML&&f.Error("UpdateEdgeIntoAEL: invalid call");var d=b.PrevInAEL,e=b.NextInAEL;b.NextInLML.OutIdx=b.OutIdx;null!==d?d.NextInAEL=b.NextInLML:this.m_ActiveEdges=b.NextInLML;null!==e&&(e.PrevInAEL=b.NextInLML);b.NextInLML.Side=b.Side;b.NextInLML.WindDelta=b.WindDelta;b.NextInLML.WindCnt=b.WindCnt;
-b.NextInLML.WindCnt2=b.WindCnt2;b=b.NextInLML;b.Curr.X=b.Bot.X;b.Curr.Y=b.Bot.Y;f.use_xyz&&(b.Curr.Z=b.Bot.Z);b.PrevInAEL=d;b.NextInAEL=e;f.ClipperBase.IsHorizontal(b)||this.InsertScanbeam(b.Top.Y);return b};f.Clipper.prototype.ProcessHorizontals=function(b){for(var d=this.m_SortedEdges;null!==d;)this.DeleteFromSEL(d),this.ProcessHorizontal(d,b),d=this.m_SortedEdges};f.Clipper.prototype.GetHorzDirection=function(b,d){b.Bot.X<b.Top.X?(d.Left=b.Bot.X,d.Right=b.Top.X,d.Dir=f.Direction.dLeftToRight):
-(d.Left=b.Top.X,d.Right=b.Bot.X,d.Dir=f.Direction.dRightToLeft)};f.Clipper.prototype.ProcessHorizontal=function(b,d){var e={Dir:null,Left:null,Right:null};this.GetHorzDirection(b,e);for(var q=e.Dir,n=e.Left,k=e.Right,v=b,C=null;null!==v.NextInLML&&f.ClipperBase.IsHorizontal(v.NextInLML);)v=v.NextInLML;for(null===v.NextInLML&&(C=this.GetMaximaPair(v));;){for(var p=b==v,F=this.GetNextInAEL(b,q);null!==F&&!(F.Curr.X==b.Top.X&&null!==b.NextInLML&&F.Dx<b.NextInLML.Dx);){e=this.GetNextInAEL(F,q);if(q==
-f.Direction.dLeftToRight&&F.Curr.X<=k||q==f.Direction.dRightToLeft&&F.Curr.X>=n){if(F==C&&p){if(0<=b.OutIdx){q=this.AddOutPt(b,b.Top);for(e=this.m_SortedEdges;null!==e;)0<=e.OutIdx&&this.HorzSegmentsOverlap(b.Bot.X,b.Top.X,e.Bot.X,e.Top.X)&&(n=this.AddOutPt(e,e.Bot),this.AddJoin(n,q,e.Top)),e=e.NextInSEL;this.AddGhostJoin(q,b.Bot);this.AddLocalMaxPoly(b,C,b.Top)}this.DeleteFromAEL(b);this.DeleteFromAEL(C);return}if(q==f.Direction.dLeftToRight){var E=new f.IntPoint(F.Curr.X,b.Curr.Y);this.IntersectEdges(b,
-F,E)}else E=new f.IntPoint(F.Curr.X,b.Curr.Y),this.IntersectEdges(F,b,E);this.SwapPositionsInAEL(b,F)}else if(q==f.Direction.dLeftToRight&&F.Curr.X>=k||q==f.Direction.dRightToLeft&&F.Curr.X<=n)break;F=e}if(null!==b.NextInLML&&f.ClipperBase.IsHorizontal(b.NextInLML))b=this.UpdateEdgeIntoAEL(b),0<=b.OutIdx&&this.AddOutPt(b,b.Bot),e={Dir:q,Left:n,Right:k},this.GetHorzDirection(b,e),q=e.Dir,n=e.Left,k=e.Right;else break}null!==b.NextInLML?0<=b.OutIdx?(q=this.AddOutPt(b,b.Top),d&&this.AddGhostJoin(q,b.Bot),
-b=this.UpdateEdgeIntoAEL(b),0!==b.WindDelta&&(C=b.PrevInAEL,e=b.NextInAEL,null!==C&&C.Curr.X==b.Bot.X&&C.Curr.Y==b.Bot.Y&&0!==C.WindDelta&&0<=C.OutIdx&&C.Curr.Y>C.Top.Y&&f.ClipperBase.SlopesEqual(b,C,this.m_UseFullRange)?(n=this.AddOutPt(C,b.Bot),this.AddJoin(q,n,b.Top)):null!==e&&e.Curr.X==b.Bot.X&&e.Curr.Y==b.Bot.Y&&0!==e.WindDelta&&0<=e.OutIdx&&e.Curr.Y>e.Top.Y&&f.ClipperBase.SlopesEqual(b,e,this.m_UseFullRange)&&(n=this.AddOutPt(e,b.Bot),this.AddJoin(q,n,b.Top)))):this.UpdateEdgeIntoAEL(b):(0<=
-b.OutIdx&&this.AddOutPt(b,b.Top),this.DeleteFromAEL(b))};f.Clipper.prototype.GetNextInAEL=function(b,d){return d==f.Direction.dLeftToRight?b.NextInAEL:b.PrevInAEL};f.Clipper.prototype.IsMinima=function(b){return null!==b&&b.Prev.NextInLML!=b&&b.Next.NextInLML!=b};f.Clipper.prototype.IsMaxima=function(b,d){return null!==b&&b.Top.Y==d&&null===b.NextInLML};f.Clipper.prototype.IsIntermediate=function(b,d){return b.Top.Y==d&&null!==b.NextInLML};f.Clipper.prototype.GetMaximaPair=function(b){var d=null;
-f.IntPoint.op_Equality(b.Next.Top,b.Top)&&null===b.Next.NextInLML?d=b.Next:f.IntPoint.op_Equality(b.Prev.Top,b.Top)&&null===b.Prev.NextInLML&&(d=b.Prev);return null===d||-2!=d.OutIdx&&(d.NextInAEL!=d.PrevInAEL||f.ClipperBase.IsHorizontal(d))?d:null};f.Clipper.prototype.ProcessIntersections=function(b){if(null==this.m_ActiveEdges)return!0;try{this.BuildIntersectList(b);if(0==this.m_IntersectList.length)return!0;if(1==this.m_IntersectList.length||this.FixupIntersectionOrder())this.ProcessIntersectList();
-else return!1}catch(d){this.m_SortedEdges=null,this.m_IntersectList.length=0,f.Error("ProcessIntersections error")}this.m_SortedEdges=null;return!0};f.Clipper.prototype.BuildIntersectList=function(b){if(null!==this.m_ActiveEdges){var d=this.m_ActiveEdges;for(this.m_SortedEdges=d;null!==d;)d.PrevInSEL=d.PrevInAEL,d.NextInSEL=d.NextInAEL,d.Curr.X=f.Clipper.TopX(d,b),d=d.NextInAEL;for(var e=!0;e&&null!==this.m_SortedEdges;){e=!1;for(d=this.m_SortedEdges;null!==d.NextInSEL;){b=d.NextInSEL;var q=new f.IntPoint;
-d.Curr.X>b.Curr.X?(this.IntersectPoint(d,b,q),e=new f.IntersectNode,e.Edge1=d,e.Edge2=b,e.Pt.X=q.X,e.Pt.Y=q.Y,f.use_xyz&&(e.Pt.Z=q.Z),this.m_IntersectList.push(e),this.SwapPositionsInSEL(d,b),e=!0):d=b}if(null!==d.PrevInSEL)d.PrevInSEL.NextInSEL=null;else break}this.m_SortedEdges=null}};f.Clipper.prototype.EdgesAdjacent=function(b){return b.Edge1.NextInSEL==b.Edge2||b.Edge1.PrevInSEL==b.Edge2};f.Clipper.IntersectNodeSort=function(b,d){return d.Pt.Y-b.Pt.Y};f.Clipper.prototype.FixupIntersectionOrder=
-function(){this.m_IntersectList.sort(this.m_IntersectNodeComparer);this.CopyAELToSEL();for(var b=this.m_IntersectList.length,d=0;d<b;d++){if(!this.EdgesAdjacent(this.m_IntersectList[d])){for(var e=d+1;e<b&&!this.EdgesAdjacent(this.m_IntersectList[e]);)e++;if(e==b)return!1;var f=this.m_IntersectList[d];this.m_IntersectList[d]=this.m_IntersectList[e];this.m_IntersectList[e]=f}this.SwapPositionsInSEL(this.m_IntersectList[d].Edge1,this.m_IntersectList[d].Edge2)}return!0};f.Clipper.prototype.ProcessIntersectList=
-function(){for(var b=0,d=this.m_IntersectList.length;b<d;b++){var e=this.m_IntersectList[b];this.IntersectEdges(e.Edge1,e.Edge2,e.Pt);this.SwapPositionsInAEL(e.Edge1,e.Edge2)}this.m_IntersectList.length=0};I=function(b){return 0>b?Math.ceil(b-.5):Math.round(b)};Jb=function(b){return 0>b?Math.ceil(b-.5):Math.floor(b+.5)};Qa=function(b){return 0>b?-Math.round(Math.abs(b)):Math.round(b)};ab=function(b){if(0>b)return b-=.5,-2147483648>b?Math.ceil(b):b|0;b+=.5;return 2147483647<b?Math.floor(b):b|0};f.Clipper.Round=
-Y?I:nb?Qa:Xb?ab:Jb;f.Clipper.TopX=function(b,d){return d==b.Top.Y?b.Top.X:b.Bot.X+f.Clipper.Round(b.Dx*(d-b.Bot.Y))};f.Clipper.prototype.IntersectPoint=function(b,d,e){e.X=0;e.Y=0;var q,n;if(b.Dx==d.Dx)e.Y=b.Curr.Y,e.X=f.Clipper.TopX(b,e.Y);else{if(0===b.Delta.X)e.X=b.Bot.X,f.ClipperBase.IsHorizontal(d)?e.Y=d.Bot.Y:(n=d.Bot.Y-d.Bot.X/d.Dx,e.Y=f.Clipper.Round(e.X/d.Dx+n));else if(0===d.Delta.X)e.X=d.Bot.X,f.ClipperBase.IsHorizontal(b)?e.Y=b.Bot.Y:(q=b.Bot.Y-b.Bot.X/b.Dx,e.Y=f.Clipper.Round(e.X/b.Dx+
-q));else{q=b.Bot.X-b.Bot.Y*b.Dx;n=d.Bot.X-d.Bot.Y*d.Dx;var k=(n-q)/(b.Dx-d.Dx);e.Y=f.Clipper.Round(k);e.X=Math.abs(b.Dx)<Math.abs(d.Dx)?f.Clipper.Round(b.Dx*k+q):f.Clipper.Round(d.Dx*k+n)}if(e.Y<b.Top.Y||e.Y<d.Top.Y){if(b.Top.Y>d.Top.Y)return e.Y=b.Top.Y,e.X=f.Clipper.TopX(d,b.Top.Y),e.X<b.Top.X;e.Y=d.Top.Y;e.X=Math.abs(b.Dx)<Math.abs(d.Dx)?f.Clipper.TopX(b,e.Y):f.Clipper.TopX(d,e.Y)}e.Y>b.Curr.Y&&(e.Y=b.Curr.Y,e.X=Math.abs(b.Dx)>Math.abs(d.Dx)?f.Clipper.TopX(d,e.Y):f.Clipper.TopX(b,e.Y))}};f.Clipper.prototype.ProcessEdgesAtTopOfScanbeam=
-function(b){for(var d=this.m_ActiveEdges;null!==d;){var e=this.IsMaxima(d,b);e&&(e=this.GetMaximaPair(d),e=null===e||!f.ClipperBase.IsHorizontal(e));if(e){var q=d.PrevInAEL;this.DoMaxima(d);d=null===q?this.m_ActiveEdges:q.NextInAEL}else{this.IsIntermediate(d,b)&&f.ClipperBase.IsHorizontal(d.NextInLML)?(d=this.UpdateEdgeIntoAEL(d),0<=d.OutIdx&&this.AddOutPt(d,d.Bot),this.AddEdgeToSEL(d)):(d.Curr.X=f.Clipper.TopX(d,b),d.Curr.Y=b);if(this.StrictlySimple&&(q=d.PrevInAEL,0<=d.OutIdx&&0!==d.WindDelta&&
-null!==q&&0<=q.OutIdx&&q.Curr.X==d.Curr.X&&0!==q.WindDelta)){var n=new f.IntPoint(d.Curr);f.use_xyz&&this.SetZ(n,q,d);e=this.AddOutPt(q,n);q=this.AddOutPt(d,n);this.AddJoin(e,q,n)}d=d.NextInAEL}}this.ProcessHorizontals(!0);for(d=this.m_ActiveEdges;null!==d;)this.IsIntermediate(d,b)&&(e=null,0<=d.OutIdx&&(e=this.AddOutPt(d,d.Top)),d=this.UpdateEdgeIntoAEL(d),q=d.PrevInAEL,n=d.NextInAEL,null!==q&&q.Curr.X==d.Bot.X&&q.Curr.Y==d.Bot.Y&&null!==e&&0<=q.OutIdx&&q.Curr.Y>q.Top.Y&&f.ClipperBase.SlopesEqual(d,
-q,this.m_UseFullRange)&&0!==d.WindDelta&&0!==q.WindDelta?(q=this.AddOutPt(q,d.Bot),this.AddJoin(e,q,d.Top)):null!==n&&n.Curr.X==d.Bot.X&&n.Curr.Y==d.Bot.Y&&null!==e&&0<=n.OutIdx&&n.Curr.Y>n.Top.Y&&f.ClipperBase.SlopesEqual(d,n,this.m_UseFullRange)&&0!==d.WindDelta&&0!==n.WindDelta&&(q=this.AddOutPt(n,d.Bot),this.AddJoin(e,q,d.Top))),d=d.NextInAEL};f.Clipper.prototype.DoMaxima=function(b){var d=this.GetMaximaPair(b);if(null===d)0<=b.OutIdx&&this.AddOutPt(b,b.Top),this.DeleteFromAEL(b);else{for(var e=
-b.NextInAEL;null!==e&&e!=d;)this.IntersectEdges(b,e,b.Top),this.SwapPositionsInAEL(b,e),e=b.NextInAEL;-1==b.OutIdx&&-1==d.OutIdx?(this.DeleteFromAEL(b),this.DeleteFromAEL(d)):0<=b.OutIdx&&0<=d.OutIdx?(0<=b.OutIdx&&this.AddLocalMaxPoly(b,d,b.Top),this.DeleteFromAEL(b),this.DeleteFromAEL(d)):f.use_lines&&0===b.WindDelta?(0<=b.OutIdx&&(this.AddOutPt(b,b.Top),b.OutIdx=-1),this.DeleteFromAEL(b),0<=d.OutIdx&&(this.AddOutPt(d,b.Top),d.OutIdx=-1),this.DeleteFromAEL(d)):f.Error("DoMaxima error")}};f.Clipper.ReversePaths=
-function(b){for(var d=0,e=b.length;d<e;d++)b[d].reverse()};f.Clipper.Orientation=function(b){return 0<=f.Clipper.Area(b)};f.Clipper.prototype.PointCount=function(b){if(null===b)return 0;var d=0,e=b;do d++,e=e.Next;while(e!=b);return d};f.Clipper.prototype.BuildResult=function(b){f.Clear(b);for(var d=0,e=this.m_PolyOuts.length;d<e;d++){var q=this.m_PolyOuts[d];if(null!==q.Pts){var q=q.Pts.Prev,n=this.PointCount(q);if(!(2>n)){for(var k=Array(n),v=0;v<n;v++)k[v]=q.Pt,q=q.Prev;b.push(k)}}}};f.Clipper.prototype.BuildResult2=
-function(b){b.Clear();for(var d=0,e=this.m_PolyOuts.length;d<e;d++){var q=this.m_PolyOuts[d],n=this.PointCount(q.Pts);if(!(q.IsOpen&&2>n||!q.IsOpen&&3>n)){this.FixHoleLinkage(q);var k=new f.PolyNode;b.m_AllPolys.push(k);q.PolyNode=k;k.m_polygon.length=n;for(var q=q.Pts.Prev,v=0;v<n;v++)k.m_polygon[v]=q.Pt,q=q.Prev}}d=0;for(e=this.m_PolyOuts.length;d<e;d++)q=this.m_PolyOuts[d],null!==q.PolyNode&&(q.IsOpen?(q.PolyNode.IsOpen=!0,b.AddChild(q.PolyNode)):null!==q.FirstLeft&&null!=q.FirstLeft.PolyNode?
-q.FirstLeft.PolyNode.AddChild(q.PolyNode):b.AddChild(q.PolyNode))};f.Clipper.prototype.FixupOutPolygon=function(b){var d=null;b.BottomPt=null;for(var e=b.Pts;;){if(e.Prev==e||e.Prev==e.Next){b.Pts=null;return}if(f.IntPoint.op_Equality(e.Pt,e.Next.Pt)||f.IntPoint.op_Equality(e.Pt,e.Prev.Pt)||f.ClipperBase.SlopesEqual(e.Prev.Pt,e.Pt,e.Next.Pt,this.m_UseFullRange)&&(!this.PreserveCollinear||!this.Pt2IsBetweenPt1AndPt3(e.Prev.Pt,e.Pt,e.Next.Pt)))d=null,e.Prev.Next=e.Next,e=e.Next.Prev=e.Prev;else if(e==
-d)break;else null===d&&(d=e),e=e.Next}b.Pts=e};f.Clipper.prototype.DupOutPt=function(b,d){var e=new f.OutPt;e.Pt.X=b.Pt.X;e.Pt.Y=b.Pt.Y;f.use_xyz&&(e.Pt.Z=b.Pt.Z);e.Idx=b.Idx;d?(e.Next=b.Next,e.Prev=b,b.Next.Prev=e,b.Next=e):(e.Prev=b.Prev,e.Next=b,b.Prev.Next=e,b.Prev=e);return e};f.Clipper.prototype.GetOverlap=function(b,d,e,f,n){b<d?e<f?(n.Left=Math.max(b,e),n.Right=Math.min(d,f)):(n.Left=Math.max(b,f),n.Right=Math.min(d,e)):e<f?(n.Left=Math.max(d,e),n.Right=Math.min(b,f)):(n.Left=Math.max(d,f),
-n.Right=Math.min(b,e));return n.Left<n.Right};f.Clipper.prototype.JoinHorz=function(b,d,e,q,n,k){var v=b.Pt.X>d.Pt.X?f.Direction.dRightToLeft:f.Direction.dLeftToRight;q=e.Pt.X>q.Pt.X?f.Direction.dRightToLeft:f.Direction.dLeftToRight;if(v==q)return!1;if(v==f.Direction.dLeftToRight){for(;b.Next.Pt.X<=n.X&&b.Next.Pt.X>=b.Pt.X&&b.Next.Pt.Y==n.Y;)b=b.Next;k&&b.Pt.X!=n.X&&(b=b.Next);d=this.DupOutPt(b,!k);f.IntPoint.op_Inequality(d.Pt,n)&&(b=d,b.Pt.X=n.X,b.Pt.Y=n.Y,f.use_xyz&&(b.Pt.Z=n.Z),d=this.DupOutPt(b,
-!k))}else{for(;b.Next.Pt.X>=n.X&&b.Next.Pt.X<=b.Pt.X&&b.Next.Pt.Y==n.Y;)b=b.Next;k||b.Pt.X==n.X||(b=b.Next);d=this.DupOutPt(b,k);f.IntPoint.op_Inequality(d.Pt,n)&&(b=d,b.Pt.X=n.X,b.Pt.Y=n.Y,f.use_xyz&&(b.Pt.Z=n.Z),d=this.DupOutPt(b,k))}if(q==f.Direction.dLeftToRight){for(;e.Next.Pt.X<=n.X&&e.Next.Pt.X>=e.Pt.X&&e.Next.Pt.Y==n.Y;)e=e.Next;k&&e.Pt.X!=n.X&&(e=e.Next);q=this.DupOutPt(e,!k);f.IntPoint.op_Inequality(q.Pt,n)&&(e=q,e.Pt.X=n.X,e.Pt.Y=n.Y,f.use_xyz&&(e.Pt.Z=n.Z),q=this.DupOutPt(e,!k))}else{for(;e.Next.Pt.X>=
-n.X&&e.Next.Pt.X<=e.Pt.X&&e.Next.Pt.Y==n.Y;)e=e.Next;k||e.Pt.X==n.X||(e=e.Next);q=this.DupOutPt(e,k);f.IntPoint.op_Inequality(q.Pt,n)&&(e=q,e.Pt.X=n.X,e.Pt.Y=n.Y,f.use_xyz&&(e.Pt.Z=n.Z),q=this.DupOutPt(e,k))}v==f.Direction.dLeftToRight==k?(b.Prev=e,e.Next=b,d.Next=q,q.Prev=d):(b.Next=e,e.Prev=b,d.Prev=q,q.Next=d);return!0};f.Clipper.prototype.JoinPoints=function(b,d,e){var q=b.OutPt1,n;new f.OutPt;var k=b.OutPt2,v;new f.OutPt;if((v=b.OutPt1.Pt.Y==b.OffPt.Y)&&f.IntPoint.op_Equality(b.OffPt,b.OutPt1.Pt)&&
-f.IntPoint.op_Equality(b.OffPt,b.OutPt2.Pt)){if(d!=e)return!1;for(n=b.OutPt1.Next;n!=q&&f.IntPoint.op_Equality(n.Pt,b.OffPt);)n=n.Next;n=n.Pt.Y>b.OffPt.Y;for(v=b.OutPt2.Next;v!=k&&f.IntPoint.op_Equality(v.Pt,b.OffPt);)v=v.Next;if(n==v.Pt.Y>b.OffPt.Y)return!1;n?(n=this.DupOutPt(q,!1),v=this.DupOutPt(k,!0),q.Prev=k,k.Next=q,n.Next=v,v.Prev=n):(n=this.DupOutPt(q,!0),v=this.DupOutPt(k,!1),q.Next=k,k.Prev=q,n.Prev=v,v.Next=n);b.OutPt1=q;b.OutPt2=n;return!0}if(v){for(n=q;q.Prev.Pt.Y==q.Pt.Y&&q.Prev!=n&&
-q.Prev!=k;)q=q.Prev;for(;n.Next.Pt.Y==n.Pt.Y&&n.Next!=q&&n.Next!=k;)n=n.Next;if(n.Next==q||n.Next==k)return!1;for(v=k;k.Prev.Pt.Y==k.Pt.Y&&k.Prev!=v&&k.Prev!=n;)k=k.Prev;for(;v.Next.Pt.Y==v.Pt.Y&&v.Next!=k&&v.Next!=q;)v=v.Next;if(v.Next==k||v.Next==q)return!1;e={Left:null,Right:null};if(!this.GetOverlap(q.Pt.X,n.Pt.X,k.Pt.X,v.Pt.X,e))return!1;d=e.Left;var C=e.Right;e=new f.IntPoint;q.Pt.X>=d&&q.Pt.X<=C?(e.X=q.Pt.X,e.Y=q.Pt.Y,f.use_xyz&&(e.Z=q.Pt.Z),d=q.Pt.X>n.Pt.X):k.Pt.X>=d&&k.Pt.X<=C?(e.X=k.Pt.X,
-e.Y=k.Pt.Y,f.use_xyz&&(e.Z=k.Pt.Z),d=k.Pt.X>v.Pt.X):n.Pt.X>=d&&n.Pt.X<=C?(e.X=n.Pt.X,e.Y=n.Pt.Y,f.use_xyz&&(e.Z=n.Pt.Z),d=n.Pt.X>q.Pt.X):(e.X=v.Pt.X,e.Y=v.Pt.Y,f.use_xyz&&(e.Z=v.Pt.Z),d=v.Pt.X>k.Pt.X);b.OutPt1=q;b.OutPt2=k;return this.JoinHorz(q,n,k,v,e,d)}for(n=q.Next;f.IntPoint.op_Equality(n.Pt,q.Pt)&&n!=q;)n=n.Next;if(C=n.Pt.Y>q.Pt.Y||!f.ClipperBase.SlopesEqual(q.Pt,n.Pt,b.OffPt,this.m_UseFullRange)){for(n=q.Prev;f.IntPoint.op_Equality(n.Pt,q.Pt)&&n!=q;)n=n.Prev;if(n.Pt.Y>q.Pt.Y||!f.ClipperBase.SlopesEqual(q.Pt,
-n.Pt,b.OffPt,this.m_UseFullRange))return!1}for(v=k.Next;f.IntPoint.op_Equality(v.Pt,k.Pt)&&v!=k;)v=v.Next;var p=v.Pt.Y>k.Pt.Y||!f.ClipperBase.SlopesEqual(k.Pt,v.Pt,b.OffPt,this.m_UseFullRange);if(p){for(v=k.Prev;f.IntPoint.op_Equality(v.Pt,k.Pt)&&v!=k;)v=v.Prev;if(v.Pt.Y>k.Pt.Y||!f.ClipperBase.SlopesEqual(k.Pt,v.Pt,b.OffPt,this.m_UseFullRange))return!1}if(n==q||v==k||n==v||d==e&&C==p)return!1;C?(n=this.DupOutPt(q,!1),v=this.DupOutPt(k,!0),q.Prev=k,k.Next=q,n.Next=v,v.Prev=n):(n=this.DupOutPt(q,!0),
-v=this.DupOutPt(k,!1),q.Next=k,k.Prev=q,n.Prev=v,v.Next=n);b.OutPt1=q;b.OutPt2=n;return!0};f.Clipper.GetBounds=function(b){for(var d=0,e=b.length;d<e&&0==b[d].length;)d++;if(d==e)return new f.IntRect(0,0,0,0);var q=new f.IntRect;q.left=b[d][0].X;q.right=q.left;q.top=b[d][0].Y;for(q.bottom=q.top;d<e;d++)for(var k=0,N=b[d].length;k<N;k++)b[d][k].X<q.left?q.left=b[d][k].X:b[d][k].X>q.right&&(q.right=b[d][k].X),b[d][k].Y<q.top?q.top=b[d][k].Y:b[d][k].Y>q.bottom&&(q.bottom=b[d][k].Y);return q};f.Clipper.prototype.GetBounds2=
-function(b){var d=b,e=new f.IntRect;e.left=b.Pt.X;e.right=b.Pt.X;e.top=b.Pt.Y;e.bottom=b.Pt.Y;for(b=b.Next;b!=d;)b.Pt.X<e.left&&(e.left=b.Pt.X),b.Pt.X>e.right&&(e.right=b.Pt.X),b.Pt.Y<e.top&&(e.top=b.Pt.Y),b.Pt.Y>e.bottom&&(e.bottom=b.Pt.Y),b=b.Next;return e};f.Clipper.PointInPolygon=function(b,d){var e=0,f=d.length;if(3>f)return 0;for(var k=d[0],N=1;N<=f;++N){var v=N==f?d[0]:d[N];if(v.Y==b.Y&&(v.X==b.X||k.Y==b.Y&&v.X>b.X==k.X<b.X))return-1;if(k.Y<b.Y!=v.Y<b.Y)if(k.X>=b.X)if(v.X>b.X)e=1-e;else{var C=
-(k.X-b.X)*(v.Y-b.Y)-(v.X-b.X)*(k.Y-b.Y);if(0==C)return-1;0<C==v.Y>k.Y&&(e=1-e)}else if(v.X>b.X){C=(k.X-b.X)*(v.Y-b.Y)-(v.X-b.X)*(k.Y-b.Y);if(0==C)return-1;0<C==v.Y>k.Y&&(e=1-e)}k=v}return e};f.Clipper.prototype.PointInPolygon=function(b,d){var e=0,f=d,k=b.X,N=b.Y,v=d.Pt.X,C=d.Pt.Y;do{d=d.Next;var p=d.Pt.X,F=d.Pt.Y;if(F==N&&(p==k||C==N&&p>k==v<k))return-1;if(C<N!=F<N)if(v>=k)if(p>k)e=1-e;else{v=(v-k)*(F-N)-(p-k)*(C-N);if(0==v)return-1;0<v==F>C&&(e=1-e)}else if(p>k){v=(v-k)*(F-N)-(p-k)*(C-N);if(0==
-v)return-1;0<v==F>C&&(e=1-e)}v=p;C=F}while(f!=d);return e};f.Clipper.prototype.Poly2ContainsPoly1=function(b,d){var e=b;do{var f=this.PointInPolygon(e.Pt,d);if(0<=f)return 0<f;e=e.Next}while(e!=b);return!0};f.Clipper.prototype.FixupFirstLefts1=function(b,d){for(var e=0,f=this.m_PolyOuts.length;e<f;e++){var k=this.m_PolyOuts[e];null!=k.Pts&&null!=k.FirstLeft&&this.ParseFirstLeft(k.FirstLeft)==b&&this.Poly2ContainsPoly1(k.Pts,d.Pts)&&(k.FirstLeft=d)}};f.Clipper.prototype.FixupFirstLefts2=function(b,
-d){for(var e=0,f=this.m_PolyOuts,k=f.length,p=f[e];e<k;e++,p=f[e])p.FirstLeft==b&&(p.FirstLeft=d)};f.Clipper.ParseFirstLeft=function(b){for(;null!=b&&null==b.Pts;)b=b.FirstLeft;return b};f.Clipper.prototype.JoinCommonEdges=function(){for(var b=0,d=this.m_Joins.length;b<d;b++){var e=this.m_Joins[b],k=this.GetOutRec(e.OutPt1.Idx),n=this.GetOutRec(e.OutPt2.Idx);if(null!=k.Pts&&null!=n.Pts){var p;p=k==n?k:this.Param1RightOfParam2(k,n)?n:this.Param1RightOfParam2(n,k)?k:this.GetLowermostRec(k,n);if(this.JoinPoints(e,
-k,n))if(k==n){k.Pts=e.OutPt1;k.BottomPt=null;n=this.CreateOutRec();n.Pts=e.OutPt2;this.UpdateOutPtIdxs(n);if(this.m_UsingPolyTree){p=0;for(var v=this.m_PolyOuts.length;p<v-1;p++){var C=this.m_PolyOuts[p];null!=C.Pts&&f.Clipper.ParseFirstLeft(C.FirstLeft)==k&&C.IsHole!=k.IsHole&&this.Poly2ContainsPoly1(C.Pts,e.OutPt2)&&(C.FirstLeft=n)}}this.Poly2ContainsPoly1(n.Pts,k.Pts)?(n.IsHole=!k.IsHole,n.FirstLeft=k,this.m_UsingPolyTree&&this.FixupFirstLefts2(n,k),(n.IsHole^this.ReverseSolution)==0<this.Area(n)&&
-this.ReversePolyPtLinks(n.Pts)):this.Poly2ContainsPoly1(k.Pts,n.Pts)?(n.IsHole=k.IsHole,k.IsHole=!n.IsHole,n.FirstLeft=k.FirstLeft,k.FirstLeft=n,this.m_UsingPolyTree&&this.FixupFirstLefts2(k,n),(k.IsHole^this.ReverseSolution)==0<this.Area(k)&&this.ReversePolyPtLinks(k.Pts)):(n.IsHole=k.IsHole,n.FirstLeft=k.FirstLeft,this.m_UsingPolyTree&&this.FixupFirstLefts1(k,n))}else n.Pts=null,n.BottomPt=null,n.Idx=k.Idx,k.IsHole=p.IsHole,p==n&&(k.FirstLeft=n.FirstLeft),n.FirstLeft=k,this.m_UsingPolyTree&&this.FixupFirstLefts2(n,
-k)}}};f.Clipper.prototype.UpdateOutPtIdxs=function(b){var d=b.Pts;do d.Idx=b.Idx,d=d.Prev;while(d!=b.Pts)};f.Clipper.prototype.DoSimplePolygons=function(){for(var b=0;b<this.m_PolyOuts.length;){var d=this.m_PolyOuts[b++],e=d.Pts;if(null!=e&&!d.IsOpen){do{for(var k=e.Next;k!=d.Pts;){if(f.IntPoint.op_Equality(e.Pt,k.Pt)&&k.Next!=e&&k.Prev!=e){var n=e.Prev,p=k.Prev;e.Prev=p;p.Next=e;k.Prev=n;n.Next=k;d.Pts=e;n=this.CreateOutRec();n.Pts=k;this.UpdateOutPtIdxs(n);this.Poly2ContainsPoly1(n.Pts,d.Pts)?(n.IsHole=
-!d.IsHole,n.FirstLeft=d,this.m_UsingPolyTree&&this.FixupFirstLefts2(n,d)):this.Poly2ContainsPoly1(d.Pts,n.Pts)?(n.IsHole=d.IsHole,d.IsHole=!n.IsHole,n.FirstLeft=d.FirstLeft,d.FirstLeft=n,this.m_UsingPolyTree&&this.FixupFirstLefts2(d,n)):(n.IsHole=d.IsHole,n.FirstLeft=d.FirstLeft,this.m_UsingPolyTree&&this.FixupFirstLefts1(d,n));k=e}k=k.Next}e=e.Next}while(e!=d.Pts)}}};f.Clipper.Area=function(b){var d=b.length;if(3>d)return 0;for(var e=0,f=0,k=d-1;f<d;++f)e+=(b[k].X+b[f].X)*(b[k].Y-b[f].Y),k=f;return.5*
--e};f.Clipper.prototype.Area=function(b){var d=b.Pts;if(null==d)return 0;var e=0;do e+=(d.Prev.Pt.X+d.Pt.X)*(d.Prev.Pt.Y-d.Pt.Y),d=d.Next;while(d!=b.Pts);return.5*e};f.Clipper.SimplifyPolygon=function(b,d){var e=[],k=new f.Clipper(0);k.StrictlySimple=!0;k.AddPath(b,f.PolyType.ptSubject,!0);k.Execute(f.ClipType.ctUnion,e,d,d);return e};f.Clipper.SimplifyPolygons=function(b,d){"undefined"==typeof d&&(d=f.PolyFillType.pftEvenOdd);var e=[],k=new f.Clipper(0);k.StrictlySimple=!0;k.AddPaths(b,f.PolyType.ptSubject,
-!0);k.Execute(f.ClipType.ctUnion,e,d,d);return e};f.Clipper.DistanceSqrd=function(b,d){var e=b.X-d.X,f=b.Y-d.Y;return e*e+f*f};f.Clipper.DistanceFromLineSqrd=function(b,d,e){var f=d.Y-e.Y;e=e.X-d.X;d=f*d.X+e*d.Y;d=f*b.X+e*b.Y-d;return d*d/(f*f+e*e)};f.Clipper.SlopesNearCollinear=function(b,d,e,k){return Math.abs(b.X-d.X)>Math.abs(b.Y-d.Y)?b.X>d.X==b.X<e.X?f.Clipper.DistanceFromLineSqrd(b,d,e)<k:d.X>b.X==d.X<e.X?f.Clipper.DistanceFromLineSqrd(d,b,e)<k:f.Clipper.DistanceFromLineSqrd(e,b,d)<k:b.Y>d.Y==
-b.Y<e.Y?f.Clipper.DistanceFromLineSqrd(b,d,e)<k:d.Y>b.Y==d.Y<e.Y?f.Clipper.DistanceFromLineSqrd(d,b,e)<k:f.Clipper.DistanceFromLineSqrd(e,b,d)<k};f.Clipper.PointsAreClose=function(b,d,e){var f=b.X-d.X;b=b.Y-d.Y;return f*f+b*b<=e};f.Clipper.ExcludeOp=function(b){var d=b.Prev;d.Next=b.Next;b.Next.Prev=d;d.Idx=0;return d};f.Clipper.CleanPolygon=function(b,d){"undefined"==typeof d&&(d=1.415);var e=b.length;if(0==e)return[];for(var k=Array(e),n=0;n<e;++n)k[n]=new f.OutPt;for(n=0;n<e;++n)k[n].Pt=b[n],k[n].Next=
-k[(n+1)%e],k[n].Next.Prev=k[n],k[n].Idx=0;n=d*d;for(k=k[0];0==k.Idx&&k.Next!=k.Prev;)f.Clipper.PointsAreClose(k.Pt,k.Prev.Pt,n)?(k=f.Clipper.ExcludeOp(k),e--):f.Clipper.PointsAreClose(k.Prev.Pt,k.Next.Pt,n)?(f.Clipper.ExcludeOp(k.Next),k=f.Clipper.ExcludeOp(k),e-=2):f.Clipper.SlopesNearCollinear(k.Prev.Pt,k.Pt,k.Next.Pt,n)?(k=f.Clipper.ExcludeOp(k),e--):(k.Idx=1,k=k.Next);3>e&&(e=0);for(var p=Array(e),n=0;n<e;++n)p[n]=new f.IntPoint(k.Pt),k=k.Next;return p};f.Clipper.CleanPolygons=function(b,d){for(var e=
-Array(b.length),k=0,n=b.length;k<n;k++)e[k]=f.Clipper.CleanPolygon(b[k],d);return e};f.Clipper.Minkowski=function(b,d,e,k){k=k?1:0;var n=b.length,p=d.length,v=[];if(e)for(e=0;e<p;e++){for(var C=Array(n),F=0,E=b.length,H=b[F];F<E;F++,H=b[F])C[F]=new f.IntPoint(d[e].X+H.X,d[e].Y+H.Y);v.push(C)}else for(e=0;e<p;e++){C=Array(n);F=0;E=b.length;for(H=b[F];F<E;F++,H=b[F])C[F]=new f.IntPoint(d[e].X-H.X,d[e].Y-H.Y);v.push(C)}b=[];for(e=0;e<p-1+k;e++)for(F=0;F<n;F++)d=[],d.push(v[e%p][F%n]),d.push(v[(e+1)%
-p][F%n]),d.push(v[(e+1)%p][(F+1)%n]),d.push(v[e%p][(F+1)%n]),f.Clipper.Orientation(d)||d.reverse(),b.push(d);return b};f.Clipper.MinkowskiSum=function(b,d,e){if(d[0]instanceof Array){v=d;d=new f.Paths;for(var k=new f.Clipper,n=0;n<v.length;++n){var p=f.Clipper.Minkowski(b,v[n],!0,e);k.AddPaths(p,f.PolyType.ptSubject,!0);e&&(p=f.Clipper.TranslatePath(v[n],b[0]),k.AddPath(p,f.PolyType.ptClip,!0))}k.Execute(f.ClipType.ctUnion,d,f.PolyFillType.pftNonZero,f.PolyFillType.pftNonZero);return d}var v=f.Clipper.Minkowski(b,
-d,!0,e),k=new f.Clipper;k.AddPaths(v,f.PolyType.ptSubject,!0);k.Execute(f.ClipType.ctUnion,v,f.PolyFillType.pftNonZero,f.PolyFillType.pftNonZero);return v};f.Clipper.TranslatePath=function(b,d){for(var e=new f.Path,k=0;k<b.length;k++)e.push(new f.IntPoint(b[k].X+d.X,b[k].Y+d.Y));return e};f.Clipper.MinkowskiDiff=function(b,d){var e=f.Clipper.Minkowski(b,d,!1,!0),k=new f.Clipper;k.AddPaths(e,f.PolyType.ptSubject,!0);k.Execute(f.ClipType.ctUnion,e,f.PolyFillType.pftNonZero,f.PolyFillType.pftNonZero);
-return e};f.Clipper.PolyTreeToPaths=function(b){var d=[];f.Clipper.AddPolyNodeToPaths(b,f.Clipper.NodeType.ntAny,d);return d};f.Clipper.AddPolyNodeToPaths=function(b,d,e){var k=!0;switch(d){case f.Clipper.NodeType.ntOpen:return;case f.Clipper.NodeType.ntClosed:k=!b.IsOpen}0<b.m_polygon.length&&k&&e.push(b.m_polygon);k=0;b=b.Childs();for(var n=b.length,p=b[k];k<n;k++,p=b[k])f.Clipper.AddPolyNodeToPaths(p,d,e)};f.Clipper.OpenPathsFromPolyTree=function(b){for(var d=new f.Paths,e=0,k=b.ChildCount();e<
-k;e++)b.Childs()[e].IsOpen&&d.push(b.Childs()[e].m_polygon);return d};f.Clipper.ClosedPathsFromPolyTree=function(b){var d=new f.Paths;f.Clipper.AddPolyNodeToPaths(b,f.Clipper.NodeType.ntClosed,d);return d};V(f.Clipper,f.ClipperBase);f.Clipper.NodeType={ntAny:0,ntOpen:1,ntClosed:2};f.ClipperOffset=function(b,d){"undefined"==typeof b&&(b=2);"undefined"==typeof d&&(d=f.ClipperOffset.def_arc_tolerance);this.m_destPolys=new f.Paths;this.m_srcPoly=new f.Path;this.m_destPoly=new f.Path;this.m_normals=[];
-this.m_StepsPerRad=this.m_miterLim=this.m_cos=this.m_sin=this.m_sinA=this.m_delta=0;this.m_lowest=new f.IntPoint;this.m_polyNodes=new f.PolyNode;this.MiterLimit=b;this.ArcTolerance=d;this.m_lowest.X=-1};f.ClipperOffset.two_pi=6.28318530717959;f.ClipperOffset.def_arc_tolerance=.25;f.ClipperOffset.prototype.Clear=function(){f.Clear(this.m_polyNodes.Childs());this.m_lowest.X=-1};f.ClipperOffset.Round=f.Clipper.Round;f.ClipperOffset.prototype.AddPath=function(b,d,e){var k=b.length-1;if(!(0>k)){var n=
-new f.PolyNode;n.m_jointype=d;n.m_endtype=e;if(e==f.EndType.etClosedLine||e==f.EndType.etClosedPolygon)for(;0<k&&f.IntPoint.op_Equality(b[0],b[k]);)k--;n.m_polygon.push(b[0]);var p=0;d=0;for(var v=1;v<=k;v++)f.IntPoint.op_Inequality(n.m_polygon[p],b[v])&&(p++,n.m_polygon.push(b[v]),b[v].Y>n.m_polygon[d].Y||b[v].Y==n.m_polygon[d].Y&&b[v].X<n.m_polygon[d].X)&&(d=p);if(!(e==f.EndType.etClosedPolygon&&2>p)&&(this.m_polyNodes.AddChild(n),e==f.EndType.etClosedPolygon))if(0>this.m_lowest.X)this.m_lowest=
-new f.IntPoint(this.m_polyNodes.ChildCount()-1,d);else if(b=this.m_polyNodes.Childs()[this.m_lowest.X].m_polygon[this.m_lowest.Y],n.m_polygon[d].Y>b.Y||n.m_polygon[d].Y==b.Y&&n.m_polygon[d].X<b.X)this.m_lowest=new f.IntPoint(this.m_polyNodes.ChildCount()-1,d)}};f.ClipperOffset.prototype.AddPaths=function(b,d,e){for(var f=0,k=b.length;f<k;f++)this.AddPath(b[f],d,e)};f.ClipperOffset.prototype.FixOrientations=function(){if(0<=this.m_lowest.X&&!f.Clipper.Orientation(this.m_polyNodes.Childs()[this.m_lowest.X].m_polygon))for(var b=
-0;b<this.m_polyNodes.ChildCount();b++){var d=this.m_polyNodes.Childs()[b];(d.m_endtype==f.EndType.etClosedPolygon||d.m_endtype==f.EndType.etClosedLine&&f.Clipper.Orientation(d.m_polygon))&&d.m_polygon.reverse()}else for(b=0;b<this.m_polyNodes.ChildCount();b++)d=this.m_polyNodes.Childs()[b],d.m_endtype!=f.EndType.etClosedLine||f.Clipper.Orientation(d.m_polygon)||d.m_polygon.reverse()};f.ClipperOffset.GetUnitNormal=function(b,d){var e=d.X-b.X,k=d.Y-b.Y;if(0==e&&0==k)return new f.DoublePoint(0,0);var n=
-1/Math.sqrt(e*e+k*k);return new f.DoublePoint(k*n,-(e*n))};f.ClipperOffset.prototype.DoOffset=function(b){this.m_destPolys=[];this.m_delta=b;if(f.ClipperBase.near_zero(b))for(var d=0;d<this.m_polyNodes.ChildCount();d++){var e=this.m_polyNodes.Childs()[d];e.m_endtype==f.EndType.etClosedPolygon&&this.m_destPolys.push(e.m_polygon)}else{this.m_miterLim=2<this.MiterLimit?2/(this.MiterLimit*this.MiterLimit):.5;var k=3.14159265358979/Math.acos(1-(0>=this.ArcTolerance?f.ClipperOffset.def_arc_tolerance:this.ArcTolerance>
-Math.abs(b)*f.ClipperOffset.def_arc_tolerance?Math.abs(b)*f.ClipperOffset.def_arc_tolerance:this.ArcTolerance)/Math.abs(b));this.m_sin=Math.sin(f.ClipperOffset.two_pi/k);this.m_cos=Math.cos(f.ClipperOffset.two_pi/k);this.m_StepsPerRad=k/f.ClipperOffset.two_pi;0>b&&(this.m_sin=-this.m_sin);for(d=0;d<this.m_polyNodes.ChildCount();d++){e=this.m_polyNodes.Childs()[d];this.m_srcPoly=e.m_polygon;var n=this.m_srcPoly.length;if(!(0==n||0>=b&&(3>n||e.m_endtype!=f.EndType.etClosedPolygon))){this.m_destPoly=
-[];if(1==n)if(e.m_jointype==f.JoinType.jtRound)for(var e=1,n=0,p=1;p<=k;p++){this.m_destPoly.push(new f.IntPoint(f.ClipperOffset.Round(this.m_srcPoly[0].X+e*b),f.ClipperOffset.Round(this.m_srcPoly[0].Y+n*b)));var v=e,e=e*this.m_cos-this.m_sin*n,n=v*this.m_sin+n*this.m_cos}else for(n=e=-1,p=0;4>p;++p)this.m_destPoly.push(new f.IntPoint(f.ClipperOffset.Round(this.m_srcPoly[0].X+e*b),f.ClipperOffset.Round(this.m_srcPoly[0].Y+n*b))),0>e?e=1:0>n?n=1:e=-1;else{for(p=this.m_normals.length=0;p<n-1;p++)this.m_normals.push(f.ClipperOffset.GetUnitNormal(this.m_srcPoly[p],
-this.m_srcPoly[p+1]));e.m_endtype==f.EndType.etClosedLine||e.m_endtype==f.EndType.etClosedPolygon?this.m_normals.push(f.ClipperOffset.GetUnitNormal(this.m_srcPoly[n-1],this.m_srcPoly[0])):this.m_normals.push(new f.DoublePoint(this.m_normals[n-2]));if(e.m_endtype==f.EndType.etClosedPolygon)for(v=n-1,p=0;p<n;p++)v=this.OffsetPoint(p,v,e.m_jointype);else if(e.m_endtype==f.EndType.etClosedLine){v=n-1;for(p=0;p<n;p++)v=this.OffsetPoint(p,v,e.m_jointype);this.m_destPolys.push(this.m_destPoly);this.m_destPoly=
-[];v=this.m_normals[n-1];for(p=n-1;0<p;p--)this.m_normals[p]=new f.DoublePoint(-this.m_normals[p-1].X,-this.m_normals[p-1].Y);this.m_normals[0]=new f.DoublePoint(-v.X,-v.Y);v=0;for(p=n-1;0<=p;p--)v=this.OffsetPoint(p,v,e.m_jointype)}else{v=0;for(p=1;p<n-1;++p)v=this.OffsetPoint(p,v,e.m_jointype);e.m_endtype==f.EndType.etOpenButt?(p=n-1,v=new f.IntPoint(f.ClipperOffset.Round(this.m_srcPoly[p].X+this.m_normals[p].X*b),f.ClipperOffset.Round(this.m_srcPoly[p].Y+this.m_normals[p].Y*b)),this.m_destPoly.push(v),
-v=new f.IntPoint(f.ClipperOffset.Round(this.m_srcPoly[p].X-this.m_normals[p].X*b),f.ClipperOffset.Round(this.m_srcPoly[p].Y-this.m_normals[p].Y*b)),this.m_destPoly.push(v)):(p=n-1,v=n-2,this.m_sinA=0,this.m_normals[p]=new f.DoublePoint(-this.m_normals[p].X,-this.m_normals[p].Y),e.m_endtype==f.EndType.etOpenSquare?this.DoSquare(p,v):this.DoRound(p,v));for(p=n-1;0<p;p--)this.m_normals[p]=new f.DoublePoint(-this.m_normals[p-1].X,-this.m_normals[p-1].Y);this.m_normals[0]=new f.DoublePoint(-this.m_normals[1].X,
--this.m_normals[1].Y);v=n-1;for(p=v-1;0<p;--p)v=this.OffsetPoint(p,v,e.m_jointype);e.m_endtype==f.EndType.etOpenButt?(v=new f.IntPoint(f.ClipperOffset.Round(this.m_srcPoly[0].X-this.m_normals[0].X*b),f.ClipperOffset.Round(this.m_srcPoly[0].Y-this.m_normals[0].Y*b)),this.m_destPoly.push(v),v=new f.IntPoint(f.ClipperOffset.Round(this.m_srcPoly[0].X+this.m_normals[0].X*b),f.ClipperOffset.Round(this.m_srcPoly[0].Y+this.m_normals[0].Y*b)),this.m_destPoly.push(v)):(this.m_sinA=0,e.m_endtype==f.EndType.etOpenSquare?
-this.DoSquare(0,1):this.DoRound(0,1))}}this.m_destPolys.push(this.m_destPoly)}}}};f.ClipperOffset.prototype.Execute=function(){var b=arguments;if(b[0]instanceof f.PolyTree)if(d=b[0],e=b[1],d.Clear(),this.FixOrientations(),this.DoOffset(e),b=new f.Clipper(0),b.AddPaths(this.m_destPolys,f.PolyType.ptSubject,!0),0<e)b.Execute(f.ClipType.ctUnion,d,f.PolyFillType.pftPositive,f.PolyFillType.pftPositive);else if(e=f.Clipper.GetBounds(this.m_destPolys),k=new f.Path,k.push(new f.IntPoint(e.left-10,e.bottom+
-10)),k.push(new f.IntPoint(e.right+10,e.bottom+10)),k.push(new f.IntPoint(e.right+10,e.top-10)),k.push(new f.IntPoint(e.left-10,e.top-10)),b.AddPath(k,f.PolyType.ptSubject,!0),b.ReverseSolution=!0,b.Execute(f.ClipType.ctUnion,d,f.PolyFillType.pftNegative,f.PolyFillType.pftNegative),1==d.ChildCount()&&0<d.Childs()[0].ChildCount())for(b=d.Childs()[0],d.Childs()[0]=b.Childs()[0],d.Childs()[0].m_Parent=d,e=1;e<b.ChildCount();e++)d.AddChild(b.Childs()[e]);else d.Clear();else{var d=b[0],e=b[1];f.Clear(d);
-this.FixOrientations();this.DoOffset(e);b=new f.Clipper(0);b.AddPaths(this.m_destPolys,f.PolyType.ptSubject,!0);if(0<e)b.Execute(f.ClipType.ctUnion,d,f.PolyFillType.pftPositive,f.PolyFillType.pftPositive);else{var e=f.Clipper.GetBounds(this.m_destPolys),k=new f.Path;k.push(new f.IntPoint(e.left-10,e.bottom+10));k.push(new f.IntPoint(e.right+10,e.bottom+10));k.push(new f.IntPoint(e.right+10,e.top-10));k.push(new f.IntPoint(e.left-10,e.top-10));b.AddPath(k,f.PolyType.ptSubject,!0);b.ReverseSolution=
-!0;b.Execute(f.ClipType.ctUnion,d,f.PolyFillType.pftNegative,f.PolyFillType.pftNegative);0<d.length&&d.splice(0,1)}}};f.ClipperOffset.prototype.OffsetPoint=function(b,d,e){this.m_sinA=this.m_normals[d].X*this.m_normals[b].Y-this.m_normals[b].X*this.m_normals[d].Y;if(1>Math.abs(this.m_sinA*this.m_delta)){if(0<this.m_normals[d].X*this.m_normals[b].X+this.m_normals[b].Y*this.m_normals[d].Y)return this.m_destPoly.push(new f.IntPoint(f.ClipperOffset.Round(this.m_srcPoly[b].X+this.m_normals[d].X*this.m_delta),
-f.ClipperOffset.Round(this.m_srcPoly[b].Y+this.m_normals[d].Y*this.m_delta))),d}else 1<this.m_sinA?this.m_sinA=1:-1>this.m_sinA&&(this.m_sinA=-1);if(0>this.m_sinA*this.m_delta)this.m_destPoly.push(new f.IntPoint(f.ClipperOffset.Round(this.m_srcPoly[b].X+this.m_normals[d].X*this.m_delta),f.ClipperOffset.Round(this.m_srcPoly[b].Y+this.m_normals[d].Y*this.m_delta))),this.m_destPoly.push(new f.IntPoint(this.m_srcPoly[b])),this.m_destPoly.push(new f.IntPoint(f.ClipperOffset.Round(this.m_srcPoly[b].X+this.m_normals[b].X*
-this.m_delta),f.ClipperOffset.Round(this.m_srcPoly[b].Y+this.m_normals[b].Y*this.m_delta)));else switch(e){case f.JoinType.jtMiter:e=1+(this.m_normals[b].X*this.m_normals[d].X+this.m_normals[b].Y*this.m_normals[d].Y);e>=this.m_miterLim?this.DoMiter(b,d,e):this.DoSquare(b,d);break;case f.JoinType.jtSquare:this.DoSquare(b,d);break;case f.JoinType.jtRound:this.DoRound(b,d)}return b};f.ClipperOffset.prototype.DoSquare=function(b,d){var e=Math.tan(Math.atan2(this.m_sinA,this.m_normals[d].X*this.m_normals[b].X+
-this.m_normals[d].Y*this.m_normals[b].Y)/4);this.m_destPoly.push(new f.IntPoint(f.ClipperOffset.Round(this.m_srcPoly[b].X+this.m_delta*(this.m_normals[d].X-this.m_normals[d].Y*e)),f.ClipperOffset.Round(this.m_srcPoly[b].Y+this.m_delta*(this.m_normals[d].Y+this.m_normals[d].X*e))));this.m_destPoly.push(new f.IntPoint(f.ClipperOffset.Round(this.m_srcPoly[b].X+this.m_delta*(this.m_normals[b].X+this.m_normals[b].Y*e)),f.ClipperOffset.Round(this.m_srcPoly[b].Y+this.m_delta*(this.m_normals[b].Y-this.m_normals[b].X*
-e))))};f.ClipperOffset.prototype.DoMiter=function(b,d,e){e=this.m_delta/e;this.m_destPoly.push(new f.IntPoint(f.ClipperOffset.Round(this.m_srcPoly[b].X+(this.m_normals[d].X+this.m_normals[b].X)*e),f.ClipperOffset.Round(this.m_srcPoly[b].Y+(this.m_normals[d].Y+this.m_normals[b].Y)*e)))};f.ClipperOffset.prototype.DoRound=function(b,d){for(var e=Math.max(f.Cast_Int32(f.ClipperOffset.Round(this.m_StepsPerRad*Math.abs(Math.atan2(this.m_sinA,this.m_normals[d].X*this.m_normals[b].X+this.m_normals[d].Y*this.m_normals[b].Y)))),
-1),k=this.m_normals[d].X,n=this.m_normals[d].Y,p,v=0;v<e;++v)this.m_destPoly.push(new f.IntPoint(f.ClipperOffset.Round(this.m_srcPoly[b].X+k*this.m_delta),f.ClipperOffset.Round(this.m_srcPoly[b].Y+n*this.m_delta))),p=k,k=k*this.m_cos-this.m_sin*n,n=p*this.m_sin+n*this.m_cos;this.m_destPoly.push(new f.IntPoint(f.ClipperOffset.Round(this.m_srcPoly[b].X+this.m_normals[b].X*this.m_delta),f.ClipperOffset.Round(this.m_srcPoly[b].Y+this.m_normals[b].Y*this.m_delta)))};f.Error=function(b){try{throw Error(b);
-}catch(d){alert(d.message)}};f.JS={};f.JS.AreaOfPolygon=function(b,d){d||(d=1);return f.Clipper.Area(b)/(d*d)};f.JS.AreaOfPolygons=function(b,d){d||(d=1);for(var e=0,k=0;k<b.length;k++)e+=f.Clipper.Area(b[k]);return e/(d*d)};f.JS.BoundsOfPath=function(b,d){return f.JS.BoundsOfPaths([b],d)};f.JS.BoundsOfPaths=function(b,d){d||(d=1);var e=f.Clipper.GetBounds(b);e.left/=d;e.bottom/=d;e.right/=d;e.top/=d;return e};f.JS.Clean=function(b,d){if(!(b instanceof Array))return[];var e=b[0]instanceof Array;b=
-f.JS.Clone(b);if("number"!=typeof d||null===d)return f.Error("Delta is not a number in Clean()."),b;if(0===b.length||1==b.length&&0===b[0].length||0>d)return b;e||(b=[b]);for(var k=b.length,n,p,v,F,E,H,K,I=[],ea=0;ea<k;ea++)if(p=b[ea],n=p.length,0!==n)if(3>n)v=p,I.push(v);else{v=p;F=d*d;E=p[0];for(K=H=1;K<n;K++)(p[K].X-E.X)*(p[K].X-E.X)+(p[K].Y-E.Y)*(p[K].Y-E.Y)<=F||(v[H]=p[K],E=p[K],H++);E=p[H-1];(p[0].X-E.X)*(p[0].X-E.X)+(p[0].Y-E.Y)*(p[0].Y-E.Y)<=F&&H--;H<n&&v.splice(H,n-H);v.length&&I.push(v)}!e&&
-I.length?I=I[0]:e||0!==I.length?e&&0===I.length&&(I=[[]]):I=[];return I};f.JS.Clone=function(b){if(!(b instanceof Array)||0===b.length)return[];if(1==b.length&&0===b[0].length)return[[]];var d=b[0]instanceof Array;d||(b=[b]);var e=b.length,f,k,p,v,F=Array(e);for(k=0;k<e;k++){f=b[k].length;v=Array(f);for(p=0;p<f;p++)v[p]={X:b[k][p].X,Y:b[k][p].Y};F[k]=v}d||(F=F[0]);return F};f.JS.Lighten=function(b,d){if(!(b instanceof Array))return[];if("number"!=typeof d||null===d)return f.Error("Tolerance is not a number in Lighten()."),
-f.JS.Clone(b);if(0===b.length||1==b.length&&0===b[0].length||0>d)return f.JS.Clone(b);b[0]instanceof Array||(b=[b]);var e,k,n,p,v,F,E,H,K,I,ea,U,W,V,Y,Ea=b.length,ja=d*d,aa=[];for(e=0;e<Ea;e++)if(n=b[e],F=n.length,0!=F){for(p=0;1E6>p;p++){v=[];F=n.length;n[F-1].X!=n[0].X||n[F-1].Y!=n[0].Y?(ea=1,n.push({X:n[0].X,Y:n[0].Y}),F=n.length):ea=0;I=[];for(k=0;k<F-2;k++){E=n[k];K=n[k+1];H=n[k+2];V=E.X;Y=E.Y;E=H.X-V;U=H.Y-Y;if(0!==E||0!==U)W=((K.X-V)*E+(K.Y-Y)*U)/(E*E+U*U),1<W?(V=H.X,Y=H.Y):0<W&&(V+=E*W,Y+=
-U*W);E=K.X-V;U=K.Y-Y;H=E*E+U*U;H<=ja&&(I[k+1]=1,k++)}v.push({X:n[0].X,Y:n[0].Y});for(k=1;k<F-1;k++)I[k]||v.push({X:n[k].X,Y:n[k].Y});v.push({X:n[F-1].X,Y:n[F-1].Y});ea&&n.pop();if(I.length)n=v;else break}F=v.length;v[F-1].X==v[0].X&&v[F-1].Y==v[0].Y&&v.pop();2<v.length&&aa.push(v)}b[0]instanceof Array||(aa=aa[0]);"undefined"==typeof aa&&(aa=[[]]);return aa};f.JS.PerimeterOfPath=function(b,d,e){if("undefined"==typeof b)return 0;var f=Math.sqrt,k=0,p,v,F,E,H=b.length;if(2>H)return 0;for(d&&(b[H]=b[0],
-H++);--H;)p=b[H],F=p.X,p=p.Y,v=b[H-1],E=v.X,v=v.Y,k+=f((F-E)*(F-E)+(p-v)*(p-v));d&&b.pop();return k/e};f.JS.PerimeterOfPaths=function(b,d,e){e||(e=1);for(var k=0,n=0;n<b.length;n++)k+=f.JS.PerimeterOfPath(b[n],d,e);return k};f.JS.ScaleDownPath=function(b,d){var e,f;d||(d=1);for(e=b.length;e--;)f=b[e],f.X/=d,f.Y/=d};f.JS.ScaleDownPaths=function(b,d){var e,f,k;d||(d=1);for(e=b.length;e--;)for(f=b[e].length;f--;)k=b[e][f],k.X/=d,k.Y/=d};f.JS.ScaleUpPath=function(b,d){var e,f,k=Math.round;d||(d=1);for(e=
-b.length;e--;)f=b[e],f.X=k(f.X*d),f.Y=k(f.Y*d)};f.JS.ScaleUpPaths=function(b,d){var e,f,k,p=Math.round;d||(d=1);for(e=b.length;e--;)for(f=b[e].length;f--;)k=b[e][f],k.X=p(k.X*d),k.Y=p(k.Y*d)};f.ExPolygons=function(){return[]};f.ExPolygon=function(){this.holes=this.outer=null};f.JS.AddOuterPolyNodeToExPolygons=function(b,d){var e=new f.ExPolygon;e.outer=b.Contour();var k=b.Childs(),n=k.length;e.holes=Array(n);var p,v,F,E,H;for(v=0;v<n;v++)for(p=k[v],e.holes[v]=p.Contour(),F=0,E=p.Childs(),H=E.length;F<
-H;F++)p=E[F],f.JS.AddOuterPolyNodeToExPolygons(p,d);d.push(e)};f.JS.ExPolygonsToPaths=function(b){var d,e,k,n,p=new f.Paths;d=0;for(k=b.length;d<k;d++)for(p.push(b[d].outer),e=0,n=b[d].holes.length;e<n;e++)p.push(b[d].holes[e]);return p};f.JS.PolyTreeToExPolygons=function(b){var d=new f.ExPolygons,e,k,n;e=0;k=b.Childs();for(n=k.length;e<n;e++)b=k[e],f.JS.AddOuterPolyNodeToExPolygons(b,d);return d}})();
-var CindyJS=function(){function p(k){if(0===ja)return console.error("Waiting for "+k+" after we finished waiting."),function(){};0>ja&&(ja=0);++ja;return function(){--ja;0>ja&&console.error("Wait count mismatch: "+k);if(0===ja)for(var p=0,E=Ca.length;p<E;)Ca[p++].startup()}}function E(k){var p=E.newInstance(k);0>=ja?p.startup():!1!==k.autostart&&Ca.push(p);return p}var ja=-1,Ca=[];"undefined"===typeof document||"undefined"===typeof window||"undefined"===typeof document.addEventListener||"undefined"!==
-typeof window.cindyDontWait&&!0===window.cindyDontWait||document.addEventListener("DOMContentLoaded",p("DOMContentLoaded"));var pa=null,Da=null,aa={};E.getBaseDir=function(){if(null!==pa)return pa;for(var k=document.getElementsByTagName("script"),p=0;p<k.length;++p){var E=k[p],U=E.src;if(U){var W=/Cindy\.js$/.exec(U);if(W)return pa=U.substr(0,W.index),console.log("Will load extensions from "+pa),Da=E,pa}}console.error("Could not find <script> tag for Cindy.js");return pa=Da=!1};E.addNewScript=function(k,
-p){p||console.error.bind(console);var K=E.getBaseDir();if(!1===K)return!1;var U=document.createElement("script");U.src=K+k;var K=Da.nextSibling,W=Da.parentElement;K?W.insertBefore(U,K):W.appendChild(U);return U};E.loadScript=function(k,p,K,U){if(window[k])return K(),!0;U||(U=console.error.bind(console));var W=aa[k];if(!W){W=E.addNewScript(p,U);if(!1===W)return U("Can't load additional components."),!1;aa[k]=W}W.addEventListener("load",K);W.addEventListener("error",U);return null};E._autoLoadingPlugin=
-{};E.autoLoadPlugin=function(k,p,K){if(E._pluginRegistry[k])return K(),!0;var U=E._autoLoadingPlugin[k];if(!U){p||(p=k+"-plugin.js");U=E._autoLoadingPlugin[k]=[];k=E.addNewScript(p);if(!1===k)return!1;k.addEventListener("error",console.error.bind(console))}U.push(K);return null};var k={ctype:"undefined"};E.waitFor=p;E._pluginRegistry={};E.instances=[];E.registerPlugin=function(k,p,K){if(1!==k)return console.error("Plugin API version "+k+" not supported"),!1;E._pluginRegistry[p]=K;(E._autoLoadingPlugin[p]||
-[]).forEach(function(k){k()})};var Oa=0;E.dumpState=function(k){k=E.instances[k||0].saveState();console.log(JSON.stringify(k))};E.debugState=function(k){E.instances.map(function(k){var p=k.config,p=JSON.parse(JSON.stringify(p)),F=k.saveState();console.log(JSON.stringify(F));for(var E in F)p[E]=F[E];k.shutdown();return p}).forEach(function(k){E(k)})};E.newInstance=function(p){function E(){ka.width=da=ka.clientWidth;ka.height=ca=ka.clientHeight;y.setTransform(1,0,0,1,0,0);z.setMat(25,0,0,25,250.5,250.5);
-if(yb)for(var a=0;a<yb.length;a++){var h=yb[a],c=Object.keys(h)[0];"scale"===c&&(Kb=h.scale,z[c](h.scale));if("translate"===c)z[c](h.translate[0],h.translate[1]);"scaleAndOrigin"===c&&(Kb=h[c][0]/25,z[c].apply(null,h[c]));"visibleRect"===c&&(z[c].apply(null,h[c]),Kb=z.drawingstate.initialmatrix.a/25)}z.createnewbackup();z.greset();a=1;"undefined"!==typeof window&&window.devicePixelRatio&&(a=window.devicePixelRatio);h=y.webkitBackingStorePixelRatio||y.mozBackingStorePixelRatio||y.msBackingStorePixelRatio||
-y.oBackingStorePixelRatio||y.backingStorePixelRatio||1;a!==h&&(a/=h,ka.width=da*a,ka.height=ca*a,y.scale(a,a))}function K(a){var h;if("canvas"!==a.tagName.toLowerCase())for(h=a,ka=document.createElement("canvas");h.firstChild;)h.removeChild(h.firstChild);else{ka=a;h=document.createElement("div");var c=null,r=null;Array.prototype.slice.call(ka.attributes).forEach(function(a){"width"===a.name?c=a.value:"height"===a.name?r=a.value:h.setAttributeNodeNS(ka.removeAttributeNode(a))});null===c||h.style.width||
-(h.style.width=c+"px");null===r||h.style.height||(h.style.height=r+"px");ka.parentNode.replaceChild(h,ka)}h.classList.add("CindyJS-widget");a=ka.style;a.position="absolute";a.border="none";a.margin=a.padding=a.left=a.top="0px";a.width=a.height="100%";a="static";window.getComputedStyle&&(a=window.getComputedStyle(h).getPropertyValue("position"),a=String(a||"static"));"static"===a&&(h.style.position="relative");h.appendChild(ka);return ka}function U(){var a=p.cinderella;if(!a||!a.version)return!1;for(var h=
-0;h<arguments.length;++h){var c=a.version[h],r=arguments[h];if(c!==r)return typeof c===typeof r&&c<r}return!1}function W(){ac=!0;if(0===Lb){if(p.exclusive)for(b=wa.instances.length;0<b;)wa.instances[--b].shutdown();void 0!==p.csconsole&&(ia=p.csconsole);ia=null===ia?new qa:!0===ia?new xb:"string"===typeof ia?new cb(ia):"object"===typeof ia&&"function"===typeof ia.appendChild?new cb(ia):new qa;ta=[100,100];var a=null;yb=p.transform;if(p.ports&&0<p.ports.length){b=p.ports[0];(a=b.element)||(a=document.getElementById(b.id));
-var a=K(a),h=a.parentNode.style;"window"===b.fill?(h.width="100vw",h.height="100vh"):"parent"===b.fill?(h.width="100%",h.height="100%"):b.width&&b.height&&(h.width=b.width+"px",h.height=b.height+"px");b.background&&(a.style.backgroundColor=b.background);void 0!==b.transform&&(yb=b.transform);Fa(b.grid)&&0<b.grid&&(Wa=b.grid);Fa(b.tgrid)&&0<b.tgrid&&(bc=b.tgrid);b.snap&&(cc=!0);b.axes&&(zb=!0)}a||(a=p.canvas,a||"undefined"===typeof document||(a=document.getElementById(p.canvasname))&&(a=K(a)));a&&
-(ka=a,y=a.getContext("2d"),E(),y.setLineDash||(y.setLineDash=function(){}),(p.animation?p.animation.controls:p.animcontrols)&&ja(p),p.animation&&Fa(p.animation.speed)&&(void 0===p.animation.accuracy&&U(2,9,1875)?sa(.5*p.animation.speed):sa(p.animation.speed)),p.animation&&Fa(p.animation.accuracy)&&(Mb=p.animation.accuracy));p.statusbar&&(dc="string"===typeof p.statusbar?document.getElementById(p.statusbar):p.statusbar);var c=p.scripts,r=null;"string"===typeof c&&c.search(/\*/)&&(r=c);"object"!==typeof c&&
-(c=null);"move keydown keyup keytyped keytype mousedown mouseup mousedrag mousemove mouseclick init tick draw simulationstep simulationstart simulationstop ondrop".split(" ").forEach(function(a){var h;if(null!==c&&c[a])h=c[a];else{h=a+"script";if(p[h])h=document.getElementById(p[h]);else if(r){if(h=document.getElementById(r.replace(/\*/,a)),!h)return}else return;h=h.text}h=Ra(h,!1);"error"===h.ctype?console.error("Error compiling "+a+" script: "+h.message):S[a]=h});U(2,9,1888)&&!S.keydown&&(S.keydown=
-S.keytyped,S.keytyped=S.keytype,S.keytype=void 0);Fa(p.grid)&&0<p.grid&&(Wa=p.grid);p.snap&&(cc=!0);u={};var b=0;Xa={};p.geometry||(p.geometry=[]);Md(p.geometry);p.behavior||(p.behavior=[]);"function"===typeof ec&&ec(p.behavior);for(var d in p.images)b=aa(p.images[d],!1),b!==k&&(Xa[d]=b);for(var g in p.videos)d=aa(p.videos[g],!0),d!==k&&(Xa[g]=d);oa.canvas=a;if(p.oninit)p.oninit(oa);wa.instances.push(oa);p.use&&p.use.forEach(function(a){t.use$1([w.wrap(a)],{})});Nc.convexhull3d$1&&pa("QuickHull3D",
-"QuickHull3D.js");V()}}function aa(a,h){var c;"string"===typeof a?(h?(c=document.createElement("video"),c.preload="auto",c.loop=!0,c.setAttribute("playsinline",""),enableInlineVideo(c)):c=new Image,c.src=a):c=a;if(!c.tagName)return console.error("Not a valid image element",c),k;var r={img:c,width:NaN,height:NaN,ready:!0,live:!1,generation:0,whenReady:f},b=c.tagName.toLowerCase(),d=[];if("img"===b)c.complete?(r.width=c.width,r.height=c.height):(r.ready=!1,c.addEventListener("load",function(){r.width=
-c.width;r.height=c.height;r.ready=!0;r.whenReady=f;d.forEach(f);e()}),r.whenReady=d.push.bind(d));else if("video"===b)r.live=!0,c.readyState>=c.HAVE_METADATA?(r.width=c.videoWidth,r.height=c.videoHeight):(r.ready=!1,c.addEventListener("loadedmetadata",function(){r.width=c.videoWidth;r.height=c.videoHeight;r.ready=!0;r.whenReady=f;d.forEach(f);e()}),r.whenReady=d.push.bind(d));else if("canvas"===b)r.width=c.width,r.height=c.height;else return console.error("Not a valid image element",b,c),k;return{ctype:"image",
-value:r}}function ja(a){function h(a,c){var h=document.createElement("button"),r=document.createElement("img");h.appendChild(r);l.appendChild(h);Ab(r,a);h.addEventListener("click",c);Sa[a]=function(a){a?h.classList.add("CindyJS-active"):h.classList.remove("CindyJS-active")}}function c(a){if(k){var c=e.getBoundingClientRect();sa(g*(a.clientX-c.left-e.clientLeft+.5)/c.width+b)}}var r=document.createElement("div");r.className="CindyJS-animcontrols";ka.parentNode.appendChild(r);var b=0,d=1,g=1;a.animation&&
-a.animation.speedRange&&Fa(a.animation.speedRange[0])&&Fa(a.animation.speedRange[1])&&(b=a.animation.speedRange[0],d=a.animation.speedRange[1],g=d-b);var e=document.createElement("div");e.className="CindyJS-animspeed";r.appendChild(e);var f=document.createElement("div");e.appendChild(f);H(e,"mousedown",function(a){k=!0;c(a)});H(e,"mousemove",c);H(ka.parentNode,"mouseup",function(a){k=!1},!0);var l=document.createElement("div");l.className="CindyJS-animbuttons";r.appendChild(l);h("play",I);h("pause",
-Ca);h("stop",Da);Sa.stop(!0);gc=function(a){a=(a-b)/g;a=Math.max(0,Math.min(1,a));a=.1*Math.round(1E3*a);f.style.width=a+"%"};var k=!1}function sa(a){Oc=a;gc&&gc(a)}function f(a){return a()}function pa(a,h){var c=null;p.plugins&&(c=p.plugins[a]);c||(c=wa._pluginRegistry[a]);c?t.use$1([w.wrap(a)],{}):(++Pc,wa.autoLoadPlugin(a,h,function(){t.use$1([w.wrap(a)],{});V()}))}function V(){0===--Pc&&(A(S.init),(p.animation||p).autoplay&&I(),oa.canvas&&Zb(oa.canvas,p))}function Y(){null!==Bb&&(ma.set(Bb.state),
-Object.keys(Bb.speeds).forEach(function(a){var h=u.csnames[a];"undefined"!==typeof h.behavior&&(a=Bb.speeds[a],h.behavior.vx=a[0],h.behavior.vy=a[1],h.behavior.vz=a[2],h.behavior.fx=0,h.behavior.fy=0,h.behavior.fz=0)}),Nd())}function I(){if(!Ya){if(Ob){var a=db.backup;a.set(ma);for(var h={},c=0;c<u.points.length;c++){var r=u.points[c];"undefined"!==typeof r.behavior&&(h[r.name]=[r.behavior.vx,r.behavior.vy,r.behavior.vz])}Bb={state:a,speeds:h};Cb=0;Ob=!1;Sa.stop(!1)}else Sa.pause(!1);hc=Date.now();
-Sa.play(!0);"function"===typeof ec&&ic&&Od();Ya=!0;A(S.simulationstart);e()}}function Ca(){Ya&&(Sa.play(!1),Sa.pause(!0),Ya=!1)}function Da(){Ob||(Ya?(A(S.simulationstop),Ya=!1,Sa.play(!1)):Sa.pause(!1),Sa.stop(!0),Ob=!0,Y())}function Qa(){if(!jc){jc=!0;for(var a=wa.instances.length;0<a;)if(wa.instances[--a]===oa){wa.instances.splice(a,1);break}for(a=jb.length;0<a;)try{jb[--a]()}catch(h){console.error(h)}}}function ab(a){this["in"]=function(a,c){console.log(a);c?this.append(this.createTextNode("span",
-"blue",a)):this.append(this.createTextNode("p","blue",a))};this.out=function(a,c){console.log(a);c?this.append(this.createTextNode("span","red",a)):this.append(this.createTextNode("p","red",a))};this.err=function(a,c){console.log(a);c?this.append(this.createTextNode("span","red",a)):this.append(this.createTextNode("p","red",a))};this.createTextNode=function(a,c,r){return"undefined"!==typeof document?(a=document.createElement(a),a.appendChild(document.createTextNode(r)),a.style.color=c,a):r+"\n"}}
-function xb(){var a=this,h,c=document.createElement("div"),r;c.innerHTML='<div id="console" style="border-top: 1px solid #333333; bottom: 0px; position: absolute; width: 100%;"><div id="log" style="height: 150px; overflow-y: auto;"></div><input id="cmd" type="text" style="box-sizing: border-box; height: 30px; width: 100%;"></div>';document.body.appendChild(c);h=document.getElementById("cmd");r=document.getElementById("log");h.onkeydown=function(c){13===c.keyCode&&""!==h.value&&(a["in"](h.value),c=
-t.parse$1([w.wrap(h.value)],[]),c=A(c),console.log(ba(c)),"undefined"!==c.ctype&&ia.out(ba(c)),h.value="",r.scrollTop=r.scrollHeight)};this.append=function(a){r.appendChild(a)};this.clear=function(){r.innerHTML=""}}function cb(a){var h=a;"string"===typeof a&&(h=document.getElementById(a));this.append=function(a){h.appendChild(a)};this.clear=function(){h.innerHTML=""}}function qa(){this.append=function(a){};this.clear=function(){}}function H(a,h,c,r){void 0===r&&(r=!1);jb.push(function(){a.removeEventListener(h,
-c,r)});a.addEventListener(h,c,r)}function Zb(a,h){function c(c){var h=a.getBoundingClientRect();c=z.to(c.clientX-h.left-a.clientLeft+.5,c.clientY-h.top-a.clientTop+.5);X.prevx=X.x;X.prevy=X.y;X.x=c[0];X.y=c[1];ta[0]=X.x;ta[1]=X.y;e()}function r(a){for(var c=a.changedTouches,h=!1,r=0;r<c.length;r++)c[r].identifier===Q&&(h=!0);h&&(Q=-1,X.down=!1,fa=void 0,A(S.mouseup),qb("mouseup"),e(),a.preventDefault())}var b=null;"undefined"!==typeof MutationObserver&&(b=MutationObserver);b||"undefined"===typeof WebKitMutationObserver||
-(b=WebKitMutationObserver);b?(b=new b(function(c){document.body.contains(a)||Qa()}),b.observe(document.documentElement,{childList:!0,subtree:!0}),jb.push(function(){b.disconnect()})):(H(a,"DOMNodeRemovedFromDocument",Qa),H(a,"DOMNodeRemoved",Qa));if(!0===h.keylistener)H(document,"keydown",function(a){N(a,S.keydown);return!1}),H(document,"keyup",function(a){N(a,S.keyup);return!1}),H(document,"keypress",function(a){N(a,S.keytyped);return!1});else if(S.keydown||S.keyup||S.keytyped)a.setAttribute("tabindex",
-"0"),H(a,"mousedown",function(){a.focus()}),H(a,"keydown",function(a){9!==a.keyCode&&(N(a,S.keydown),S.keytyped||a.preventDefault())}),H(a,"keyup",function(a){N(a,S.keyup);a.preventDefault()}),H(a,"keypress",function(a){9!==a.keyCode&&(N(a,S.keytyped),a.preventDefault())});H(a,"mousedown",function(a){X.button=a.which;c(a);A(S.mousedown);qb("mousedown");X.down=!0;a.preventDefault()});H(a,"mouseup",function(a){X.down=!1;fa=void 0;A(S.mouseup);qb("mouseup");e();a.preventDefault()});H(a,"mousemove",function(a){c(a);
-X.down?A(S.mousedrag):A(S.mousemove);qb("mousemove");a.preventDefault()});H(a,"click",function(a){c(a);A(S.mouseclick);a.preventDefault()});H(a,"dragenter",function(a){a.preventDefault()});H(a,"dragover",function(a){a.preventDefault()});H(a,"drop",function(c){function h(a,c){function g(){e.readyState===XMLHttpRequest.DONE&&(200!==e.status?(console.error("GET request for "+a+" failed: "+(e.responseText||"(no error message)")),d(c,k)):b(c,e.responseText))}var Q=a.replace(/[?#][^]*/,""),Q=Q.replace(/[^]*\/([^\/])/,
-"$1");f[c]={type:"",name:Q};var e=new XMLHttpRequest;e.onreadystatechange=function(){if(e.readyState===XMLHttpRequest.DONE)if(200!==e.status)console.error("HEAD request for "+a+" failed: "+(e.responseText||"(no error message)")),d(c,k);else{var h=e.getResponseHeader("Content-Type");f[c].type=h;/^image\//.test(h)?na(c,a):r(h)?(e=new XMLHttpRequest,e.onreadystatechange=g,e.open("GET",a),e.send()):d(c,k)}};e.open("HEAD",a);e.send()}function r(a){a=a.replace(/;[^]*/,"");return/^text\//.test(a)?1:"application/json"===
-a?2:0}function b(a,c){switch(r(f[a].type)){case 1:d(a,w.string(c));break;case 2:var h,na;try{h=JSON.parse(c),na=w.wrapJSON(h)}catch(g){console.error(g),na=k}d(a,na);break;default:d(a,k)}}function na(a,c){var h=new Image,r=!1;h.onload=function(){r||(r=!0,d(a,aa(h,!1)))};h.onerror=function(c){r||(r=!0,console.error(c),d(a,k))};h.src=c}function d(a,c,h){l[a]=g.turnIntoCSList([c,w.string(h||c.ctype),w.string(f[a].type),w.string(f[a].name)]);0===--m&&(a=p,kc=g.turnIntoCSList(l),lc=a,A(S.ondrop),lc=kc=
-k,e())}c.preventDefault();var Q=c.dataTransfer,f=Q.files,l=Array(f.length),m=f.length,n=c.currentTarget.getBoundingClientRect(),p=g.realVector(z.to(c.clientX-n.left-a.clientLeft+.5,c.clientY-n.top-a.clientTop+.5));if(0<f.length)Array.prototype.forEach.call(f,function(a,c){var h=new FileReader;r(a.type)?(h.onload=function(){b(c,h.result)},h.readAsText(a)):/^image\//.test(a.type)?(h.onload=function(){na(c,h.result)},h.readAsDataURL(a)):(console.log("Unknown MIME type: "+a.type),d(c,k))});else if(c=
-Q.getData("text/uri-list"))c=c.split("\n").filter(function(a){return!/^\s*(#|$)/.test(a)}),m=c.length,l=Array(m),f=Array(m),c.forEach(h)});var Q=-1;H(a,"touchstart",function(a){if(-1===Q){var h=a.changedTouches;0!==h.length&&(Q=h[0].identifier,c(a.targetTouches[0]),A(S.mousedown),X.down=!0,qb("mousedown"),a.preventDefault())}},!1);H(a,"touchmove",function(a){for(var h=a.changedTouches,r=!1,b=0;b<h.length;b++)h[b].identifier===Q&&(r=!0);r&&(c(a.targetTouches[0]),X.down?A(S.mousedrag):A(S.mousemove),
-qb("mousemove"),a.preventDefault())},!0);H(a,"touchend",r,!1);"undefined"!==typeof document&&document.body&&H(document.body,"touchcancel",r,!1);"undefined"!==typeof window&&H(window,"resize",function(){Pb(function(){E();e()})},!1);d(a.parentNode);e()}function b(a,h){var c=document.createElement("div");c.setAttribute("style",h);a.appendChild(c);return c}function d(a){function h(){r.scrollLeft=r.scrollTop=na.scrollLeft=na.scrollTop=1E5}function c(){if(d!==a.clientWidth||g!==a.clientHeight)d=a.clientWidth,
-g=a.clientHeight,f||(f=!0,Pb(function(){f=!1;E();e()}));h()}if("undefined"!==typeof document){var r=b(a,"position: absolute; transition: 0s; left: 0; top: 0; right: 0; bottom: 0; overflow: hidden; z-index: -1; visibility: hidden;");b(r,"position: absolute; transition: 0s; left: 0; top: 0; width: 100000px; height: 100000px");var na=b(a,"position: absolute; transition: 0s; left: 0; top: 0; right: 0; bottom: 0; overflow: hidden; z-index: -1; visibility: hidden;");b(na,"position: absolute; transition: 0s; left: 0; top: 0; width: 200%; height: 200%");
-h();var d=a.clientWidth,g=a.clientHeight,f=!1;r.addEventListener("scroll",c);na.addEventListener("scroll",c)}}function e(){mc||(mc=Pb(q))}function q(){mc=null;if(!jc){if(Ya){var a=Date.now(),h=Math.min(50,a-hc)*Oc*Pd;hc=a;a=Cb+h;ic&&"undefined"!==typeof ra&&ra.tick(h);Cb=a;Ya&&A(S.tick)}n();Ya&&e()}}function n(){z.reset();y.save();y.clearRect(0,0,da,ca);var a=z.drawingstate.matrix,h,c,r,b,d;if(0!==Wa){y.beginPath();y.strokeStyle="rgba(0,0,0,0.1)";y.lineWidth=1;y.lineCap="butt";h=Wa*a.a;for(b=Math.ceil(-a.tx/
-h);(d=b*h+a.tx)<da;){if(b||!zb)y.moveTo(d,0),y.lineTo(d,ca);b++}for(b=Math.floor(a.ty/h);(d=b*h-a.ty)<ca;){if(b||!zb)y.moveTo(0,d),y.lineTo(da,d);b++}y.stroke()}if(0!==bc){y.beginPath();y.strokeStyle="rgba(0,0,0,0.1)";y.lineWidth=1;y.lineCap="butt";h=bc*a.a;var e=Math.sqrt(3);c=a.ty/e;r=(ca+a.ty)/e;for(b=Math.ceil(-(a.tx+r)/h);(d=b*h+a.tx)+c<da;)y.moveTo(d+c,0),y.lineTo(d+r,ca),b++;for(b=Math.ceil(-(a.tx-c)/h);(d=b*h+a.tx)-r<da;)y.moveTo(d-c,0),y.lineTo(d-r,ca),b++;h*=.5*e;for(b=Math.floor(a.ty/h);(d=
-b*h-a.ty)<ca;){if(b||!zb)y.moveTo(0,d),y.lineTo(da,d);b++}y.stroke()}zb&&(y.beginPath(),y.strokeStyle="rgba(0,0,0,0.2)",y.lineWidth=3,y.lineCap="butt",y.lineJoin="miter",y.miterLimit=10,y.beginPath(),y.moveTo(0,-a.ty),y.lineTo(da-6,-a.ty),y.moveTo(da-13,-5-a.ty),y.lineTo(da-3,-a.ty),y.lineTo(da-13,5-a.ty),y.moveTo(a.tx,ca),y.lineTo(a.tx,6),y.moveTo(a.tx-5,13),y.lineTo(a.tx,3),y.lineTo(a.tx+5,13),y.stroke());Qd();z.greset();Rd();for(a=0;a<u.polygons.length;a++)h=u.polygons[a],h.isshowing&&!1!==h.visible&&
-(c={color:h.color,alpha:h.alpha,fillcolor:h.fillcolor,fillalpha:h.fillalpha,size:h.size,lineJoin:w.string("miter"),fillrule:w.string(h.fillrule)},D.drawpolygon([h.vertices],c,"D",!0));for(a=0;a<u.conics.length;a++)u.conics[a].isArc?(h=u.conics[a],h.isshowing&&!1!==h.visible&&(c={},c.color=h.color,c.alpha=h.alpha,c.size=h.size,D.drawarc(h,c,h.filled?"F":"D"))):(h=u.conics[a],h.isshowing&&!1!==h.visible&&(c={},c.color=h.color,c.alpha=h.alpha,c.size=h.size,D.drawconic(h.matrix,c)));for(a=0;a<u.lines.length;a++)a:if(h=
-u.lines[a],h.isshowing&&!1!==h.visible&&g._helper.isAlmostReal(h.homog))if("S"===h.kind)c={overhang:h.overhang,dashtype:h.dashtype,size:h.size,color:h.color,alpha:h.alpha,arrow:h.arrow,arrowsize:h.arrowsize,arrowposition:h.arrowposition,arrowshape:h.arrowshape,arrowsides:h.arrowsides},0<=l.mult(h.startpos.value[2],l.conjugate(h.endpos.value[2])).value.real?t.draw$2([h.startpos,h.endpos],c):(x.handleModifs(c,x.lineModifs),x.drawRaySegment(h.startpos,h.endpos));else if("end"===h.clip.value&&"Join"===
-h.type)b=u.csnames[h.args[0]],c=u.csnames[h.args[1]],t.draw$2([b.homog,c.homog],{overhang:h.overhang,dashtype:h.dashtype,size:h.size,color:h.color,alpha:h.alpha});else{if("inci"===h.clip.value){b=[1E6,0];c=[-1E6,0];d=[1E6,0];r=[-1E6,0];for(e=0;e<h.incidences.length;e++){var f=u.csnames[h.incidences[e]].homog,k=f.value[0],m=f.value[1],n=f.value[2];l._helper.isAlmostZero(n)||(k=l.div(k,n),m=l.div(m,n),l._helper.isAlmostReal(k)&&l._helper.isAlmostReal(m)&&(k.value.real<b[0]&&(b=[k.value.real,f]),k.value.real>
-c[0]&&(c=[k.value.real,f]),m.value.real<d[0]&&(d=[m.value.real,f]),m.value.real>r[0]&&(r=[m.value.real,f])))}c[0]-b[0]>r[0]-d[0]?(b=b[1],c=c[1]):(b=d[1],c=r[1]);if(b!==c){t.draw$2([b,c],{dashtype:h.dashtype,size:h.size,color:h.color,alpha:h.alpha,overhang:h.overhang});break a}}t.draw$1([h.homog],{dashtype:h.dashtype,size:h.size,color:h.color,alpha:h.alpha})}for(a=0;a<u.points.length;a++)h=u.points[a],h.isshowing&&!1!==h.visible&&g._helper.isAlmostReal(h.homog)&&(c=h.color,h.behavior&&(c=h.color),
-t.draw$1([h.homog],{size:h.size,color:c,alpha:h.alpha}),h.labeled&&!h.tmp&&(c=h.printname||h.name||"P",r=h.labelpos||{x:3,y:3},b=h.textsize||la.textsize,d=!0===h.textbold,e=!0===h.textitalics,f=h.text_fontfamily||la.fontFamily,k=r.x*r.x+r.y*r.y,m=1,0<k&&(m=1+h.size.value.real/Math.sqrt(k)),D.drawtext([h.homog,w.wrap(c)],{x_offset:w.wrap(m*r.x),y_offset:w.wrap(m*r.y),size:w.wrap(b),bold:w.wrap(d),italics:w.wrap(e),family:w.wrap(f)})));for(a=0;a<u.texts.length;a++)Sd(u.texts[a]);y.restore()}function N(a,
-h){var c=window.event?event:a,c=c.charCode?c.charCode:c.keyCode;Qc=String.fromCharCode(c);Rc=c;A(h);e()}function v(a){var h=a.value;a=h[0].value;var c=h[1].value,h=h[2].value;return g.turnIntoCSList([a[0],l.add(a[1],c[0]),l.add(a[2],h[0]),c[1],l.add(c[2],h[1]),h[2]])}function C(a){var h=!0;return function(c,r){h&&(console.error("Operator "+a+" is not supported yet."),h=!1);return k}}function ba(a){if("undefined"===typeof a)return"_??_";if(null===a)return"_???_";if("undefined"===a.ctype)return"___";
-if("number"===a.ctype)return l.niceprint(a);if("string"===a.ctype||"boolean"===a.ctype)return a.value;if("list"===a.ctype){for(var h="[",c=0;c<a.value.length;c++)h+=ba(A(a.value[c])),c!==a.value.length-1&&(h+=", ");return h+"]"}return"dict"===a.ctype?Ka.niceprint(a):"function"===a.ctype?"FUNCTION":"infix"===a.ctype?"INFIX":"modifier"===a.ctype?a.key+"->"+ba(a.value):"shape"===a.ctype?a.type:"error"===a.ctype?"Error: "+a.message:"variable"===a.ctype?ba(J.getvar(a.name)):"geo"===a.ctype?a.value.name:
-"image"===a.ctype?"IMAGE":"_?_"}function bb(a,h){var c="undefined"===a[0].ctype,r="undefined"===a[1].ctype,b=A(a[1]);if(c||r)return k;"variable"===a[0].ctype?J.setvar(a[0].name,b):"infix"===a[0].ctype?"_"===a[0].oper?D.assigntake(a[0],b):console.error("Can't use infix expression as lvalue"):"field"===a[0].ctype?D.assigndot(a[0],b):"function"===a[0].ctype&&"genList"===a[0].oper?"list"===b.ctype?D.assignlist(a[0].args,b.value):console.error("Expected list in rhs of assignment"):console.error("Left hand side of assignment is not a recognized lvalue");
-return b}function pb(a,h){var c=A(a[0]),r=A(a[1]);if(c.ctype===r.ctype){if("number"===c.ctype)return w.bool(c.value.real===r.value.real&&c.value.imag===r.value.imag);if("string"===c.ctype||"boolean"===c.ctype)return w.bool(c.value===r.value);if("list"===c.ctype)return g.equals(c,r);if("geo"===c.ctype)return w.bool(c.value===r.value)}return{ctype:"boolean",value:!1}}function Gc(a,h){return w.not(pb(a,h))}function Yb(a,h){var c=B(a[0]),r=B(a[1]);return"number"===c.ctype&&"number"===r.ctype?{ctype:"boolean",
-value:l._helper.isAlmostEqual(c,r)}:"string"===c.ctype&&"string"===r.ctype||"boolean"===c.ctype&&"boolean"===r.ctype?{ctype:"boolean",value:c.value===r.value}:"list"===c.ctype&&"list"===r.ctype?g.almostequals(c,r):{ctype:"boolean",value:!1}}function Hc(a,h){var c=B(a[0]),r=B(a[1]);return"boolean"===c.ctype&&"boolean"===r.ctype?{ctype:"boolean",value:c.value&&r.value}:k}function Ic(a,h){var c=B(a[0]),r=B(a[1]);return"boolean"===c.ctype&&"boolean"===r.ctype?{ctype:"boolean",value:c.value||r.value}:
-k}function Jc(a,h){var c=a[0];"void"!==c.ctype&&(c=B(c));var r=B(a[1]),b=w.add(c,r);"Angle"===c.usage&&"Angle"===r.usage&&(b=w.withUsage(b,"Angle"));return b}function $b(a,h){var c=a[0];"void"!==c.ctype&&(c=B(c));var r=B(a[1]),b=w.sub(c,r);"Angle"===c.usage&&"Angle"===r.usage&&(b=w.withUsage(b,"Angle"));return b}function Kc(a,h){var c=B(a[0]),r=B(a[1]),b=w.mult(c,r);"Angle"!==c.usage||r.usage?"Angle"!==r.usage||c.usage||(b=w.withUsage(b,"Angle")):b=w.withUsage(b,"Angle");return b}function Lc(a,h){var c=
-B(a[0]),r=B(a[1]);"number"===r.ctype&&l._helper.isZero(r)&&ia.err("WARNING: Division by zero!");var b=w.div(c,r);"Angle"!==c.usage||r.usage?"Angle"!==r.usage||c.usage||(b=w.withUsage(b,"Angle")):b=w.withUsage(b,"Angle");return b}function Mc(a,h){var c=B(a[0]),r=B(a[1]);return"number"===c.ctype&&"number"===r.ctype?l.pow(c,r):k}function Sc(a,h){var c=M(a[0]),r=M(a[1]);if(c!==k&&r!==k){var b=g.cross(c,r);"Point"===c.usage&&"Point"===r.usage&&(b=w.withUsage(b,"Line"));"Line"===c.usage&&"Line"===r.usage&&
-(b=w.withUsage(b,"Point"));return b}return k}function nc(a){var h=a.length;if(0===h)return[];if(1===h)return[0];if(2===h)return a[0][0]+a[1][1]<=a[0][1]+a[1][0]?[0,1]:[1,0];if(4<h)return Td(a);for(var c=Ud[h],r=Number.POSITIVE_INFINITY,b=c[0],d=0;d<c.length;++d){for(var g=c[d],e=0,f=0;f<h;++f)e+=a[f][g[f]];e<r&&(r=e,b=g)}return b}function Td(a){function h(){return{matched:-1,prev:-1,start:-1,cost:0,used:!1,leaf:!1}}function c(a){for(var h=0;h<d;++h)0<k[a][h]||l[h].used||(l[h].used=!0,c(l[h].matched))}
-function r(a){for(var c=0;c<d;++c)0<k[c][a]||f[c].used||(f[c].used=!0,r(f[c].matched))}var b=Math.abs,d=a.length,g,e,f=Array(d),l=Array(d),k=Array(d);for(g=0;g<d;++g)k[g]=Array(d);for(g=0;g<d;++g)for(f[g]=h(),l[g]=h(),f[g].cost=a[g][0],e=1;e<d;++e)f[g].cost>a[g][e]&&(f[g].cost=a[g][e]);for(;;){for(g=0;g<d;++g)for(e=0;e<d;++e)k[g][e]=a[g][e]-f[g].cost-l[e].cost,k[g][e]<1E-14*(b(a[g][e])+b(f[g].cost)+b(l[e].cost))&&(k[g][e]=0);for(g=0;g<d;++g)f[g].matched=l[g].matched=-1;for(var m=0;;){for(g=0;g<d;++g)f[g].used=
-f[g].leaf=l[g].used=l[g].leaf=!1,-1===f[g].matched&&(f[g].start=g,f[g].used=f[g].leaf=!0,f[g].prev=-1);for(var n=!1,p=!1;!p;){for(g=0;g<d;++g)if(f[g].leaf)for(f[g].leaf=!1,e=0;e<d;++e)if(!(l[e].used||0<k[g][e])&&f[g].matched!==e&&(l[e].prev=g,l[e].start=f[g].start,l[e].used=l[e].leaf=!0,-1===l[e].matched)){f[l[e].start].prev=e;n=!0;break}if(n)break;p=!0;for(e=0;e<d;++e)l[e].leaf&&(l[e].leaf=!1,g=l[e].matched,f[g].used||(f[g].prev=e,f[g].start=l[e].start,f[g].used=f[g].leaf=!0,p=!1))}if(!n)break;for(n=
-0;n<d;++n)if(-1===f[n].matched&&-1!==f[n].prev){e=f[n].prev;do g=l[e].prev,l[e].matched=g,f[g].matched=e,e=f[g].prev;while(g!==n);++m}}if(m===d)break;for(g=0;g<d;++g)f[g].used=f[g].leaf=l[g].used=l[g].leaf=!1;for(g=0;g<d;++g)-1===f[g].matched&&c(g);for(e=0;e<d;++e)-1===l[e].matched&&r(e);for(g=0;g<d;++g)-1===f[g].matched||f[g].used||l[f[g].matched].used||(f[g].used=!0);m=Number.POSITIVE_INFINITY;for(g=0;g<d;++g)if(!f[g].used)for(e=0;e<d;++e)l[e].used||m>k[g][e]&&(m=k[g][e]);for(g=0;g<d;++g)f[g].used||
-(f[g].cost+=m),l[g].used&&(l[g].cost-=m)}a=Array(d);for(g=0;g<d;++g)e=f[g].matched,a[g]=e;return a}function oc(a,h){var c=A(a[0]),r=B(a[1]);"string"!==c.ctype&&(c=g.asList(c));if("number"===r.ctype){r=Math.floor(r.value.real);0>r&&(r=c.value.length+r+1);if(0<r&&r<c.value.length+1)return"list"===c.ctype?c.value[r-1]:{ctype:"string",value:c.value.charAt(r-1)};ia.err("WARNING: Index out of range!");return k}if("list"===r.ctype){for(var b=[],d=0;d<r.value.length;d++){var e=B(r.value[d]);b[d]=oc([c,e],
-[])}return g.turnIntoCSList(b)}return k}function Tc(a,h){var c=A(a[0]),r=A(a[1]);if("shape"===c.ctype&&"shape"===r.ctype)return D.shapeconcat(c,r);c=g.asList(c);r=g.asList(r);return"list"===c.ctype&&"list"===r.ctype?g.concat(c,r):k}function Uc(a,h){var c=A(a[0]),r=A(a[1]);return"list"===c.ctype&&"list"===r.ctype?g.set(g.common(c,r)):"shape"===c.ctype&&"shape"===r.ctype?D.shapecommon(c,r):k}function Vc(a,h){var c=A(a[0]),r=A(a[1]);return"list"===c.ctype&&"list"===r.ctype?g.remove(c,r):"shape"===c.ctype&&
-"shape"===r.ctype?D.shaperemove(c,r):k}function Wc(a,h){var c=A(a[0]),r=A(a[1]);return"list"===c.ctype?g.append(c,r):k}function Xc(a,h){var c=A(a[0]),r=A(a[1]);return"list"===r.ctype?g.prepend(c,r):k}function pc(a,h){a|=0;h|=0;if(0===a&&0===h)return 0;for(;0!==h;){var c=a;a=h;h=c%h|0}return a}function Vd(a){return 1===a?0:1}function Yc(a,h,c,r,b,d,g){if(-1!==h.indexOf("\n")){var e=Infinity,f=-Infinity,l=Infinity,k=-Infinity;h.split("\n").forEach(function(h){h=Yc(a,h,c,r,b,d);e>h.left&&(e=h.left);
-f<h.right&&(f=h.right);l>h.top&&(l=h.top);k<h.bottom&&(k=h.bottom);r+=g});return{left:e,right:f,top:l,bottom:k}}var m=a.measureText(h);a.fillText(h,c-m.width*b,r);return{left:c-m.width*b,right:c+m.width*(1-b),top:r-.84*d,bottom:r+.36*d}}function La(a){return"image"===a.ctype?a.value:"string"===a.ctype&&Xa.hasOwnProperty(a.value)?Xa[a.value].value:null}function rb(a,h,c,r,b){var d=[];if(a.readPixels)d=a.readPixels(h,c,r,b);else{var g,e;if(a.img.getContext)e=a.img.getContext("2d"),g=e.getImageData(h,
-c,r,b).data;else try{Db||(Db=document.createElement("canvas")),Db.width=r,Db.height=b,e=Db.getContext("2d"),e.drawImage(a.img,h,c,r,b,0,0,r,b),g=e.getImageData(0,0,r,b).data}catch(f){console.log(f)}for(var l in g)d.push(g[l]/255)}return d}function Zc(a){return a.replace(/[^A-Za-z0-9 \u0080-\uffff]/ig,"\\$&")}function ha(a,h,c){var r=a;h&&(r=r+" at "+h.row+":"+h.col);c&&(r=r+": \u2018"+c+"\u2019");r=Error(r);r.name="CindyScriptParseError";r.description=a;r.location=h;r.text=c;return r}function kb(a){this.input=
-a;this.re=new RegExp($c,"g");for(var h=[],c=a.indexOf("\n")+1;c;)h.push(c),c=a.indexOf("\n",c)+1;h.push(a.length);this.bols=h;this.bol=this.pos=0;this.line=1}function Qb(a){var h=a[a.length-2],c=a[a.length-3],r=a[a.length-1];if(c){if(c.isSuperscript&&h.precedence<=c.precedence)throw ha("Operator not allowed after superscript",h.start,h.text);if(r){if(!h.op.infix)throw ha("Operator may not be used infix",h.start,h.text);}else if(!h.op.postfix)throw ha("Operator may not be used postfix",h.start,h.text);
-}else if(r){if(!h.op.prefix)throw ha("Operator may not be used prefix",h.start,h.text);}else if(!h.op.bare)throw ha("Operator without operands",h.start,h.text);h.ctype="infix";h.oper=h.op.sym;h.args=[c,r];a.splice(a.length-3,3,h)}function ad(a,h,c,r){a.length&1||a.push(null);for(c=xa[c];3<=a.length&&a[a.length-2].precedence<=c.precedence;)Qb(a);a.push({op:c,precedence:c.precedence+(c.rassoc?1:0),start:h.start,end:h.end,text:h.text,rawtext:h.rawtext});c="";for(var b=h.text,d=0;d<b.length;++d)c+="0123456789+-".charAt(r.indexOf(b.charAt(d)));
-h.ctype="number";h.value={real:+c,imag:0};a.push(h);Qb(a)}function bd(a,h){var c=[],r;a:for(;;)switch(r=a.next(),r.toktype){case "OP":var b=xa[r.text];"_"!==b.sym||!c.length||c.length&1||"OP"!==c[c.length-1].toktype||":="!==c[c.length-1].op.sym||(c.pop(),b=xa[":=_"],r.text=b.sym);r.op=b;r.precedence=b.precedence;for(c.length&1||c.push(null);3<=c.length&&c[c.length-2].precedence<=r.precedence;)Qb(c);b.rassoc&&r.precedence++;c.push(r);break;case "ID":r.ctype="variable";r.name=r.text;if(c.length&1)throw ha("Missing operator",
-r.start,r.text);c.push(r);break;case "NUM":r.ctype="number";r.value={real:+r.text,imag:0};if(c.length&1)throw ha("Missing operator",r.start,r.text);c.push(r);break;case "STR":r.ctype="string";r.value=r.raw.substring(1,r.raw.length-1);if(c.length&1)throw ha("Missing operator",r.start,r.text);c.push(r);break;case "SUB":ad(c,r,"_","\u2080\u2081\u2082\u2083\u2084\u2085\u2086\u2087\u2088\u2089\u208a\u208b");break;case "SUP":ad(c,r,"^","\u2070\u00b9\u00b2\u00b3\u2074\u2075\u2076\u2077\u2078\u2079\u207a\u207b");
-c[c.length-1].isSuperscript=!0;break;case "BRA":b="[](){}||".indexOf(r.text);if(r.text===h||b&1)break a;var b="[](){}||".charAt(b+1),d=bd(a,b),g=d.closedBy;if(g.text!==b)throw ha("Opening "+r.text+" at "+r.start.row+":"+r.start.col+" closed by "+(g.text||"EOF")+" at "+g.start.row+":"+g.start.col);g=r.text+g.text;b=[];if(d=d.expr){for(;d&&"infix"===d.ctype&&","===d.oper;)b.push(d.args[0]),d=d.args[1];b.push(d)}if(c.length&1){if("{}"===g)throw ha("{\u2026} reserved for future use",r.start);d=c[c.length-
-1];if("variable"!==d.ctype)throw ha("Function name must be an identifier",d.start);if(2<c.length&&c[c.length-2].precedence<cd)throw ha("Function call in indexing construct must be enclosed in parentheses",r.start);d.ctype="function";r=d.args=[];for(var g=d.modifs={},e=0;e<b.length;++e){var f=b[e];if(f&&"infix"===f.ctype&&"->"===f.oper){var l=f.args[0];if("variable"!==l.ctype)throw ha("Modifier name must be an identifier",f.start);g[l.name]=f.args[1]}else r.push(f)}d.oper=d.name.toLowerCase()+"$"+
-d.args.length}else if("||"===g)if(1===b.length)c.push({ctype:"function",oper:"abs_infix",args:b,modifs:{}});else if(2===b.length)c.push({ctype:"function",oper:"dist_infix",args:b,modifs:{}});else throw ha("Don't support |\u2026| with "+b.length+" arguments",r.start);else{if("{}"===g)throw ha("{\u2026} reserved for future use",r.start);"[]"!==g&&1===b.length?c.push({ctype:"paren",args:b}):0===b.length?c.push({ctype:"list",value:[]}):c.push({ctype:"function",oper:"genList",args:b,modifs:{}})}break;
-case "EOF":break a}for(c.length&1||c.push(null);3<=c.length;)Qb(c);return{expr:c[0],closedBy:r}}function Eb(a){this.usedFunctions={};this.usedVariables={}}function A(a){if(void 0===a)return k;if("infix"===a.ctype)return a.impl(a.args,{},a);if("variable"===a.ctype)return A(J.getvar(a.name));if("function"===a.ctype)return D.evaluate(a.oper,a.args,a.modifs);if("void"===a.ctype)return k;if("field"===a.ctype){var h=A(a.obj);return"geo"===h.ctype?ya.getField(h.value,a.key):"list"===h.ctype?g.getField(h,
-a.key):k}return a}function B(a){a=A(a);if("geo"===a.ctype){var h=a.value;if("P"===h.kind)return ya.getField(h,"xy");if("V"===h.kind)return h.value}return a}function M(a){a=A(a);if("geo"===a.ctype){var h=a.value;if("P"===h.kind||"L"===h.kind)return ya.getField(h,"homog")}return g._helper.isNumberVecN(a,3)?a:g._helper.isNumberVecN(a,2)?(h=g.turnIntoCSList([a.value[0],a.value[1],l.real(1)]),a.usage&&(h=w.withUsage(h,a.usage)),h):k}function Ra(a){var h=new Eb;h.usedFunctions=Nc;h.infixmap=R;a=h.parse(a);
-for(var c in h.usedVariables)J.create(c);return a}function dd(){this._path=[];this._defs=["<defs>"];this._imgcache=[];this._body=[];this._saveStack=[""];this._clipIndex=0;this._stroke=this._fill="#000";this._strokeOpacity=this._fillOpacity=null;this.height=this.width=0;this.lineWidth=1;this.lineCap="butt";this.lineJoin="miter";this.miterLimit=10;this.globalAlpha=1}function ed(){this._body=[];this._yPos=this._xPos=NaN;this._extGState={Af255:"<< /ca 1 >>",As255:"<< /CA 1 >>"};this._objects=[["%PDF-1.4\n"]];
-this._offset=this._objects[0][0].length;this._nextIndex=5;this._imgcache=[];this._xobjects={};this._pathUsed=-1;this._fillAlpha=this._strokeAlpha=this._globalAlpha=1;this.height=this.width=0;this.lineWidth=1;this.lineCap="butt";this.lineJoin="miter";this.miterLimit=10}function fd(a,h){var c=a.width,r=a.height,b=document.createElement("canvas");b.setAttribute("width",c);b.setAttribute("height",r);b.setAttribute("style","display:none;");var d=oa.canvas;d.parentNode.insertBefore(b,d.nextSibling);try{return b.getContext("2d").drawImage(a,
-0,0,c,r),b.toDataURL(h||"image/png")}finally{b.parentNode.removeChild(b)}}function Wd(a){a=a.replace(RegExp("[^ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/]+","g"),"");var h=new Uint8Array(3*a.length>>2),c,r,b,d,g,e;for(r=c=0;c+3<a.length;c+=4)b="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".indexOf(a.charAt(c)),d="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".indexOf(a.charAt(c+1)),g="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".indexOf(a.charAt(c+
-2)),e="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".indexOf(a.charAt(c+3)),h[r++]=b<<2|d>>4,h[r++]=d<<4|g>>2,h[r++]=g<<6|e;switch(a.length-c){case 0:break;case 2:b="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".indexOf(a.charAt(c));d="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".indexOf(a.charAt(c+1));h[r++]=b<<2|d>>4;break;case 3:b="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".indexOf(a.charAt(c));d="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".indexOf(a.charAt(c+
-1));g="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".indexOf(a.charAt(c+2));h[r++]=b<<2|d>>4;h[r++]=d<<4|g>>2;break;default:throw Error("Malformed Base64 input: "+(a.length-c)+" chars left: "+a.substr(c));}if(r!==h.length)throw Error("Failed assertion: "+r+" should be "+h.length);return h}function Xd(a){function h(c){return(a[c]<<24|a[c+1]<<16|a[c+2]<<8|a[c+3])>>>0}if(57>a.length)throw Error("Too short to be a PNG file");if(2303741511!==h(0)||218765834!==h(4))throw Error("PNG signature missing");
-for(var c=[],r=8;r<a.length;){if(r+12>a.length)throw Error("Incomplete chunk at offset 0x"+r.toString(16));var b=h(r);if(2147483648<=b)throw Error("Chunk too long");var d=r+12+b;if(d>a.length)throw Error("Incomplete chunk at offset 0x"+r.toString(16));var g=a.subarray(r+4,r+8),g=String.fromCharCode.apply(String,g);c.push({len:b,type:g,data:a.subarray(r+8,r+8+b),crc:h(r+8+b)});r=d}return c}function Rb(a,h){var c;if(c=/^rgba\(([0-9]+), *([0-9]+), *([0-9]+), *([0-9]+)\)$/.exec(a))h(+c[1],+c[2],+c[3],
-+c[4]);else if(c=/^rgb\(([0-9]+), *([0-9]+), *([0-9]+)\)$/.exec(a))h(+c[1],+c[2],+c[3],1);else throw Error("Can't handle color style "+a);}function Yd(a){var h=1;Object.keys(Xa).forEach(function(c){var r=Xa[c].value.img;if(void 0===r.cachedDataURL&&r.src)if("data:"===r.src.substr(0,5))r.cachedDataURL=r.src;else{++h;r.cachedDataURL=null;var b=new XMLHttpRequest;b.responseType="blob";b.onreadystatechange=function(){if(b.readyState===XMLHttpRequest.DONE)if(200===b.status){var c=new FileReader;c.onloadend=
-function(){r.cachedDataURL=c.result;console.log("Cached data for image "+r.src);0===--h&&a()};c.readAsDataURL(b.response)}else console.error("Failed to load "+r.src+": "+b.statusText),0===--h&&a()};b.open("GET",r.src,!0);b.send()}});0===--h&&a()}function lb(a,h,c){for(c||(c="0");a.length<h;)a=c+a;return a}function gd(){null!==Fb&&(window.URL.revokeObjectURL(Fb),Fb=null)}function hd(a){Yd(function(){var h=y;try{y=new a;y.width=da;y.height=ca;n();var c=y.toBlob();Fb=window.URL.createObjectURL(c);id(Fb)}finally{y=
-h}})}function Gb(a){var h=null,c=1E6,r;console.log("getElementAtMouse");for(var b=0;b<u.gslp.length;b++){var d=u.gslp[b];if(!d.pinned&&!1!==d.visible&&!0!==d.tmp){var e,f,k,m=z.drawingstate.matrix.sdet;if("P"===d.kind){var n=g.normalizeZ(d.homog);if(!g._helper.isAlmostReal(n))continue;e=n.value[0].value.real-a.x;f=n.value[1].value.real-a.y;k=Math.sqrt(e*e+f*f);d.narrow&k>20/m&&(k=1E4)}else if("C"===d.kind)f=u.csnames[d.args[0]],k=0,"undefined"!==typeof d.radius&&(k=d.radius.value.real),e=l.div(f.homog.value[0],
-f.homog.value[2]).value.real,f=l.div(f.homog.value[1],f.homog.value[2]).value.real,e-=a.x,f-=a.y,k=Math.sqrt(e*e+f*f)-k,f=e=0,0>k&&(k=-k),k+=30/m;else if("L"===d.kind||"S"===d.kind)e=d.homog,k=l,f=k.add(k.mult(e.value[0],k.conjugate(e.value[0])),k.mult(e.value[1],k.conjugate(e.value[1]))),f=g.scaldiv(k.sqrt(f),e),k=f.value[0].value.real*a.x+f.value[1].value.real*a.y+f.value[2].value.real,e=f.value[0].value.real*k,f=f.value[1].value.real*k,0>k&&(k=-k),k+=1;k<c+.2/m&&(c=k,h=d,r={x:e,y:f})}}return null===
-h?null:{mover:h,offset:r,prev:{x:a.x,y:a.y}}}function Ta(){return"P"+Zd++}function qb(a){var h=G[qc].actions;h[sb].event===a&&h[sb]["do"]()&&(e(),sb===h.length-1?(ua=[],sb=Ua=0):sb++)}function rc(a){return a&&.5>Math.abs(a.offset.x)&&.5>Math.abs(a.offset.y)&&!a.mover.tmp}function jd(a){return rc(a)&&"P"===a.mover.kind}function kd(a){return rc(a)&&("L"===a.mover.kind||"S"===a.mover.kind)}function sc(a){fa={mover:a,offset:{x:0,y:0},prev:{x:X.x,y:X.y}}}function mb(){var a=Gb(X);jd(a)?ua[Ua]=a.mover:
-(ua[Ua]={type:"Free",name:Ta(),labeled:!0,pos:[ta[0],ta[1],1]},Ha(ua[Ua]));Ua++}function ld(){var a=Gb(X);return kd(a)?(ua[Ua]=a.mover,Ua++,!0):!1}function md(){var a=Gb(X),h;(h=kd(a))||(h=rc(a)&&"C"===a.mover.kind);return h?(ua[Ua]=a.mover,Ua++,!0):!1}function tb(){var a=Gb(X);if(jd(a))for(Hb.args[1]=a.mover.name,a=0;a<u.gslp.length;a++){var h=u.gslp[a];!0===h.tmp&&nd(h.name)}else for(a=0;a<u.gslp.length;a++)h=u.gslp[a],!0===h.tmp&&(h.tmp=!1)}function Sb(a){var h={type:"Free",name:Ta(),labeled:!0,
-pos:[ta[0],ta[1],1],tmp:!0},h=Ha(h);Hb=Ha({type:a,name:Ta(),labeled:!0,args:[ua[0].name,h.name]});sc(h)}function $d(a){for(var h in a)null!==a[h]&&(la[h]=a[h])}function Md(a){Object.keys(m).forEach(function(a){var c=m[a];eb(c.signature||"_helper"===a,a+" has no signature");void 0!==c.updatePosition&&void 0===c.stateSize&&(c.stateSize=0)});u.gslp=[];u.csnames={};u.points=[];u.lines=[];u.conics=[];u.texts=[];u.free=[];u.polygons=[];a.forEach(od);pd()}function qd(a){"undefined"===typeof a.tracedim&&
-(a.tracedim=1);"undefined"===typeof a.tracelength&&(a.tracelength=100);"undefined"===typeof a.traceskip&&(a.traceskip=1);a._traces=Array(a.tracelength);a._traces_index=0;a._traces_tick=0}function ae(a){void 0===a.size&&(a.size=la.pointSize);a.size=l.real(a.size);!a.movable||a.pinned?(a.color=g.realVector(a.color||la.pointColor),a.color=g.scalmult(l.real(la.dimDependent),a.color)):a.color=g.realVector(a.color||la.pointColor);void 0===a.alpha&&(a.alpha=la.alpha);a.alpha=l.real(a.alpha);a.drawtrace&&
-qd(a)}function Tb(a){void 0===a.size&&(a.size=la.lineSize);a.size=l.real(a.size);a.color=g.realVector(a.color||la.lineColor);void 0===a.alpha&&(a.alpha=la.alpha);a.alpha=l.real(a.alpha);a.clip=w.string(a.clip||la.clip);void 0===a.overhang&&(a.overhang=la.overhangLine);a.overhang=l.real(a.overhang);a.dashtype&&(a.dashtype=w.wrap(a.dashtype))}function be(a){void 0===a.overhang&&(a.overhang=la.overhangSeg);a.arrow&&(a.arrow=w.bool(a.arrow));a.arrowsize&&(a.arrowsize=l.real(a.arrowsize));a.arrowposition&&
-(a.arrowposition=l.real(a.arrowposition));a.arrowshape&&(a.arrowshape=w.string(a.arrowshape));a.arrowsides&&(a.arrowsides=w.string(a.arrowsides));Tb(a);a.clip=w.string("end")}function ce(a){a.size=void 0!==a.textsize?a.textsize:void 0!==a.size?a.size:la.textsize;a.size=l.real(+a.size)}function de(a){a.filled=void 0!==a.filled?w.bool(a.filled):w.bool(!0);a.fillcolor=void 0===a.fillcolor?k:g.realVector(a.fillcolor);void 0===a.fillalpha&&(a.fillalpha=0);a.fillalpha=l.real(a.fillalpha);Tb(a)}function Ha(a){a=
-od(a);pd();return a}function od(a){var h;if(void 0!==u.csnames[a.name])return console.log("Element name '"+a.name+"' already exists"),h=u.csnames[a.name],m[h.type].isMovable&&"P"===m[h.type].kind&&Ia(h,a.pos,"homog"),{ctype:"geo",value:h};for(;tc.hasOwnProperty(a.type);)a.type=tc[a.type];if(h=rd[a.type]){var c=h(a),r=null;for(h=0;h<c.length;++h)r=Ha(c[h]);return r}var b=m[a.type],c=!1;if(!b)return console.error(a),console.error("Operation "+a.type+" not implemented yet"),null;if("**"!==b.signature)if(!Array.isArray(b.signature)&&
-"*"===b.signature.charAt(1))c=!0,a.args.forEach(function(c){if(u.csnames[c].kind!==b.signature.charAt(0))return console.error("Not all elements in set are of same type: "+a.name+" expects "+b.signature+" but "+c+" is of kind "+u.csnames[c].kind),"undefined"!==typeof window&&window.alert("Not all elements in set are of same type: "+a.name),null});else if(b.signature.length!==(a.args?a.args.length:0))return console.error("Wrong number of arguments for "+a.name+" of type "+a.type),"undefined"!==typeof window&&
-window.alert("Wrong number of arguments for "+a.name),null;if(a.args)for(h=0;h<a.args.length;++h){if(!u.csnames.hasOwnProperty(a.args[h]))return console.log("Dropping "+a.name+" due to missing argument "+a.args[h]),null;if("**"!==b.signature&&!c&&(r=u.csnames[a.args[h]].kind,b.signature[h]!==r&&("S"!==r||"L"!==b.signature[h])))return window.alert("Wrong argument kind "+r+" as argument "+h+" to element "+a.name+" of type "+a.type),null}b.signatureConstraints&&!b.signatureConstraints(a)&&window.alert("signature constraints violated for element "+
-a.name);u.gslp.push(a);u.csnames[a.name]=a;h=za.length;a.kind=b.kind;a.stateIdx=h;h+=b.stateSize;a.incidences=[];a.isshowing=!0;a.movable=!1;b.isMovable&&(a.movable=!0,u.free.push(a));"P"===a.kind&&(u.points.push(a),ae(a));"L"===a.kind&&(u.lines.push(a),Tb(a));"C"===a.kind&&(u.conics.push(a),Tb(a));"S"===a.kind&&(u.lines.push(a),be(a));"Text"===a.kind&&(u.texts.push(a),ce(a));"Poly"===a.kind&&(u.polygons.push(a),de(a));ee(h);ma=Ma=za;fb=!0;b.initialize&&(va=Aa=a.stateIdx,a.param=b.initialize(a),eb(Aa===
-a.stateIdx+b.stateSize,"State fully initialized"));va=Aa=a.stateIdx;b.updatePosition(a,!1);eb(va===a.stateIdx+b.stateSize,"State fully consumed");eb(Aa===a.stateIdx+b.stateSize,"State fully updated");fb=!1;ma=db["in"];ma.set(za);Ma=db.out;uc(a,b);Ub={};gb(a);return u.csnames[a.name]}function nd(a){var h,c;console.log("Remove element "+a);delete u.csnames[a];for(h=0;h<u.gslp.length;h++)c=u.gslp[h],c.name===a&&(console.log("Removed element from gslp "+a),u.gslp.splice(h,1));for(h=0;h<u.free.length;h++)c=
-u.free[h],c.name===a&&(console.log("Removed element from free "+a),u.free.splice(h,1));for(h=0;h<u.points.length;h++)c=u.points[h],c.name===a&&(console.log("Removed element from points "+a),u.points.splice(h,1));for(h=0;h<u.lines.length;h++)c=u.lines[h],c.name===a&&(console.log("Removed element from lines "+a),u.lines.splice(h,1));for(h=0;h<u.conics.length;h++)c=u.conics[h],c.name===a&&(console.log("Removed element from conics "+a),u.conics.splice(h,1));Ub={}}function sd(a,h){var c=u.csnames[h.args[0]].homog,
-r=u.csnames[h.args[1]].homog,b=a.homog,d=l.div(c.value[0],c.value[2]),c=l.div(c.value[1],c.value[2]),g=l.div(r.value[0],r.value[2]),r=l.div(r.value[1],r.value[2]),e=l.div(b.value[0],b.value[2]),b=l.div(b.value[1],b.value[2]);return l._helper.isAlmostReal(d)&&l._helper.isAlmostReal(c)&&l._helper.isAlmostReal(g)&&l._helper.isAlmostReal(r)&&l._helper.isAlmostReal(e)&&l._helper.isAlmostReal(b)?(d=d.value.real,c=c.value.real,g=g.value.real,r=r.value.real,e=e.value.real,b=b.value.real,d=Math.sqrt((d-g)*
-(d-g)+(c-r)*(c-r))-Math.sqrt((d-e)*(d-e)+(c-b)*(c-b))-Math.sqrt((g-e)*(g-e)+(r-b)*(r-b)),1E-15>d*d):!1}function uc(a,h){a.isshowing=!0;if(a.args)for(var c=0;c<a.args.length;c++)if(!u.csnames[a.args[c]].isshowing){a.isshowing=!1;return}h.visiblecheck&&h.visiblecheck(a)}function Sd(a){a._bbox=null;if(a.isshowing&&!1!==a.visible){var h={size:a.size},c=a.homog,r=a.text,b=m[a.type].getText,r=b?b(a):r.replace(/@[$#]"([^"\\]|\\.)*"/g,function(a){var c,h;try{if(c=JSON.parse(a.substring(2)),h=u.csnames[c],
-!h)return"?"}catch(r){return"?"}switch(a.charAt(1)){case "$":return h.printname||c;case "#":return"V"!==h.kind?"?":ba(h.value)}}),b=null;if(a.html)var d=a._textCache||{text:!1},g=a.html,e=g.parentNode,f=e.parentNode,b=function(c,h,r,b,na){d.invisible&&f.style.removeProperty("display");if(c!==d.text||h!==d.font||r!==d.x||b!==d.y||na!==d.align){h!==d.font&&(g.style.font=h,g.style.lineHeight=la.lineHeight);c!==d.text&&!1!==c&&!1===td(g,c,h)&&(c=!1);f.style.left=r+"px";f.style.top=b+"px";if(na||e.style.transform)e.style.transform=
-"translateX("+-100*na+"%)";a._textCache={text:c,font:h,x:r,y:b,align:na}}};r=w.string(r);a.dock&&(a.dock.to?c=u.csnames[a.dock.to].homog:ud.hasOwnProperty(a.dock.corner)&&(c=t.screenbounds$0([],{}),c=c.value[ud[a.dock.corner]]),h.offset=a.dock.offset);a.align&&(h.align=w.string(a.align));c&&(a._bbox=D.drawtext([c,r],h,b))}else a.html&&(a.html.parentNode.parentNode.style.display="none",a._textCache={invisible:!0})}function Rd(){function a(){var a=e++/c._traces.length,h=c._traces[g];h&&(a*=r*a*a,t.draw$1([h],
-{size:l.real(b),color:c.color,alpha:l.real(a)}));b*=d}for(var h=0;h<u.points.length;h++){var c=u.points[h];if(c.drawtrace){c._traces_tick===c.traceskip?(c._traces[c._traces_index]=c.homog,c._traces_index=(c._traces_index+1)%c._traces.length,c._traces_tick=0):c._traces_tick++;var r=c.alpha.value.real,b=c.size.value.real,d=1;1!==c.tracedim&&(b*=c.tracedim,d=Math.pow(c.tracedim,-1/c._traces.length));var g,e=0;for(g=c._traces_index;g<c._traces.length;++g)a();for(g=0;g<c._traces_index;++g)a()}}}function eb(a,
-h){var c="Assertion failed: "+h;if(!a)throw console.log(c),Qa(),"undefined"!==typeof alert&&alert(c),Error(c);}function ee(a){if(a!==za.length){var h,c,r=vc.length;hb.length<a*r?(h=2*a,hb=new Float64Array(r*h)):h=hb.length/r|0;for(c=0;c<r;++c)db[vc[c]]=hb.subarray(c*h,c*h+a);a=za;ma=db["in"];Ma=db.out;za=db.good;za.set(a)}}function ub(){za.set(ma);Ja=!1;vd(!1);for(var a=za.length,h=Math.abs,c=0;c<a;c+=2)h(za[c])>1E12*h(za[c+1])&&(za[c+1]=0)}function Vb(){if(vb)Ja=!0;else throw wd;}function xd(a,h,
-c,r,b){return w.add(r,w.mult(c,w.sub(b,r)))}function Qd(){L&&(L.currentMouseAndScripts=[]);wc=!0;if(fa){var a=fa.mover,h=g.realVector([X.x+fa.offset.x,X.y+fa.offset.y,1]);yd(a,h,"mouse");fa.prev.x=X.x;fa.prev.y=X.y}A(S.move);A(S.draw);Ja||ub();wc=!1;L&&(L.fullLog.push(g.turnIntoCSList([g.turnIntoCSList(L.currentMouseAndScripts)])),L.length>L.logLength&&L.splice(0,L.length-L.logLength),L.currentMouseAndScripts=null,L.postMouseHooks.forEach(function(a){a()}))}function Ia(a,h,c){yd(a,h,c);wc||Ja||ub()}
-function yd(a,h,c){L&&L.currentMouseAndScripts&&(L.currentMover=[]);a===zd?(ma.set(za),Ja=!1):(zd=a,ub());Ma.set(ma);var r=1E4,b;b=Ub[a.name];if(!b){var d={},e=0;b=[];d[a.name]=a;for(var f=u.gslp,k=0;k<f.length;++k){var n=f[k],p=n.args;if(p)for(var q=0;q<p.length;++q)d.hasOwnProperty(p[q])&&(d[n.name]=n,b[e++]=n)}Ub[a.name]=b}var d=-1,e=.9,t,v,x,f=m[a.type],k=f.parameterPath||xd;va=a.stateIdx;n=f.getParamFromState(a);va=Aa=a.stateIdx;p=f.getParamForInput(a,h,c);for(q=d+e;d!==q;){var y=q*q,z=.5/(1+
-y),z=l.complex(2*q*z+.5,(1-y)*z);vb=d+.5*e<=d||0===r;0===r&&console.log("tracing limit Reached");y=!1;L&&L.currentMouseAndScripts&&(L.currentStep=[]);try{va=Aa=a.stateIdx;var A=k(a,q,z,n,p);L&&(L.currentParam=A);z=Ma;Ma=ma;f.putParamToState(a,A);Ma=z;Aa=a.stateIdx;L&&(L.currentElement=a);f.updatePosition(a,!0);eb(va===a.stateIdx+f.stateSize,"State fully consumed");eb(Aa===a.stateIdx+f.stateSize,"State fully updated");for(t=0;t<b.length;++t)v=b[t],x=m[v.type],va=Aa=v.stateIdx,L&&(L.currentElement=
-v),x.updatePosition(v,!1),eb(va===v.stateIdx+x.stateSize,"State fully consumed"),eb(Aa===v.stateIdx+x.stateSize,"State fully updated");L&&(L.currentElement=null);d=q;e*=1.25;q+=e;1<=q&&(q=1);Ma=ma;ma=z}catch(B){if(B!==wd)throw B;e*=.5;q=d+e;--r;y=!0}L&&L.currentMouseAndScripts&&(L.currentMover.push(g.turnIntoCSList([g.turnIntoCSList(L.currentStep),w.wrap(y),w.wrap(d),w.wrap(q),w.wrap(L.currentParam)])),L.currentStep=null,L.currentParam=null)}vd(Ja);for(t=0;t<b.length;++t)v=b[t],x=m[v.type],uc(v,x);
-L&&L.currentMouseAndScripts&&(L.currentMouseAndScripts.push(g.turnIntoCSList([g.turnIntoCSList(L.currentMover),w.wrap(Ja),w.wrap(a.name),h,w.wrap(c),n,p])),L.currentMover=null)}function Nd(){ub();vb=!0;for(var a=u.gslp,h=0;h<a.length;h++){var c=a[h],r=m[c.type];va=Aa=c.stateIdx;r.updatePosition(c,!1);uc(c,r)}a=Ma;Ma=ma;ma=a;ub()}function vd(a){var h=p.tracingStateReport;"string"===typeof h&&(document.getElementById(h).textContent=a?"BAD":"GOOD")}function fe(){return g.turnIntoCSList(L.fullLog.slice())}
-function ge(a){var h=JSON.stringify(L.fullLog);a=new Blob([h],{type:a?"application/octet-stream":"application/json"});return window.URL.createObjectURL(a)}function wb(){var a=va;va+=2;return l.complex(ma[a],ma[a+1])}function Z(a){for(var h=Array(a),c=0;c<a;++c)h[c]=wb();return g.turnIntoCSList(h)}function Va(a){Ma[Aa]=a.value.real;Ma[Aa+1]=a.value.imag;Aa+=2}function T(a){for(var h=0,c=a.value.length;h<c;++h)Va(a.value[h])}function Na(a,h){var c=Z(3),r=Z(3),c=Ad(a,h,c,r);T(c[0]);T(c[1]);return g.turnIntoCSList(c)}
-function Ad(a,h,c,r){if(fb)return[a,h];var b=g.projectiveDistMinScal(c,a),d=g.projectiveDistMinScal(c,h),e=g.projectiveDistMinScal(r,a),f=g.projectiveDistMinScal(r,h),l=g.projectiveDistMinScal(c,r),m=g.projectiveDistMinScal(a,h),n=b+f,p=d+e,q;n>p?(q=[h,a],n=p):q=[a,h];p=function(){};if(L&&L.currentStep){var t=[L.labelTracing2,w.wrap(L.currentElement.name),g.turnIntoCSList(q),g.turnIntoCSList([c,r]),g.realMatrix([[b,d],[e,f]]),w.wrap(n),w.wrap(l),w.wrap(m),k];L.currentStep.push(g.turnIntoCSList(t));
-p=function(a){L.hasOwnProperty(a)||(L[a]=w.wrap(a));t[t.length-1]=L[a]}}g._helper.isNaN(a)||g._helper.isNaN(h)?(p("Tracing failed due to NaNs."),Ja=!0):l>3*n&&m>3*n?p("Normal case, everything all right."):1E-5>m?1E-5>l?p("Staying inside singularity."):(p("Moved into singularity."),Ja=!0):1E-5>l?p("Moved out of singularity."):(vb?p("Reached refinement limit, giving up."):p("Need to refine."),Vb());return q}function xc(a,h,c,r){var b=Z(3),d=Z(3),e=Z(3),f=Z(3);a=he(a,h,c,r,b,d,e,f);T(a[0]);T(a[1]);T(a[2]);
-T(a[3]);return g.turnIntoCSList(a)}function he(a,h,c,r,b,d,e,f){var l=function(){};b=[b,d,e,f];a=[a,h,c,r];if(fb)return a;d=0;r=Array(4);for(c=0;4>c;c++)for(r[c]=Array(4),f=0;4>f;f++)e=g.projectiveDistMinScal(b[c],a[f]),r[c][f]=e;e=nc(r);h=Array(4);for(c=0;4>c;++c)h[c]=a[e[c]],d+=r[c][e[c]];var m=1*d,n=Infinity,p=Infinity;for(c=0;4>c;c++){if(g._helper.isNaN(a[c]))return l("Tracing failed due to NaNs."),Ja=!0,h;for(f=c+1;4>f;f++)e=g.projectiveDistMinScal(b[c],b[f]),n>e&&(n=e),e=g.projectiveDistMinScal(h[c],
-h[f]),p>e&&(p=e)}if(L&&L.currentStep){var q=[L.labelTracing4,w.wrap(L.currentElement.name),g.turnIntoCSList(h),g.turnIntoCSList(b),g.realMatrix(r),w.wrap(d),w.wrap(n),w.wrap(p),k];L.currentStep.push(g.turnIntoCSList(q));l=function(a){L.hasOwnProperty(a)||(L[a]=w.wrap(a));q[q.length-1]=L[a]}}n>m&&p>m||(1E-5>p?1E-5>n?l("Staying inside singularity."):(l("Moved into singularity."),Ja=!0):1E-5>n?l("Moved out of singularity."):(vb?l("Reached refinement limit, giving up."):l("Need to refine."),Vb()));return h}
-function Bd(a){var h=a.length,c,r;if(fb){for(c=0;c<h;++c)va+=2*a[c].value.length,T(a[c]);return a}var b=Array(h),d=Array(h),e=Array(h),f=99,l=99,m=Array(h);for(c=0;c<h;++c)b[c]=Z(a[c].value.length),d[c]=g.normSquared(b[c]).value.real,e[c]=g.normSquared(a[c]).value.real,m[c]=Array(h);var n;for(c=0;c<h;++c){for(r=0;r<h;++r)n=g.sesquilinearproduct(b[c],a[r]).value,n=(n.real*n.real+n.imag*n.imag)/(d[c]*e[r]),m[c][r]=1-n;for(r=c+1;r<h;++r)n=g.sesquilinearproduct(b[c],b[r]).value,n=(n.real*n.real+n.imag*
-n.imag)/(d[c]*d[r]),f>1-n&&(f=1-n),n=g.sesquilinearproduct(a[c],a[r]).value,n=(n.real*n.real+n.imag*n.imag)/(e[c]*e[r]),l>1-n&&(l=1-n)}n=nc(m);r=Array(h);d=0;e=!1;for(c=0;c<h;++c){var d=d+m[c][n[c]],p=r[c]=a[n[c]];T(p);e|=g._helper.isNaN(p)}e|=isNaN(d);a=function(){};if(L&&L.currentStep){var q=[L.labelTracingSesq,w.wrap(L.currentElement.name),g.turnIntoCSList(r),g.turnIntoCSList(b),g.realMatrix(m),w.wrap(d),w.wrap(f),w.wrap(l),k];L.currentStep.push(g.turnIntoCSList(q));a=function(a){L.hasOwnProperty(a)||
-(L[a]=w.wrap(a));q[q.length-1]=L[a]}}e?(a("Tracing failed due to NaNs."),Ja=!0):f>3*d&&l>3*d?a("Normal case, everything all right."):1E-5>l?1E-5>f?a("Staying inside singularity."):(a("Moved into singularity."),Ja=!0):1E-5>f?a("Moved out of singularity."):(vb?a("Reached refinement limit, giving up."):a("Need to refine."),Vb());return r}function gb(a){if(gb.hasOwnProperty(a.kind))gb[a.kind](a)}function Cd(a,h){return function(){a.incidences.push(h.name);h.incidences.push(a.name)}}function Dd(a,h){return{toString:function(){return"point "+
-a.name+" incident line "+h.name},apply:Cd(a,h),holds:function(){var c=g.scaldiv(g.abs(a.homog),a.homog),r=g.scaldiv(g.abs(h.homog),h.homog);return 1E-13>l.abs(g.scalproduct(c,r)).value.real}}}function Ed(a,h){return{toString:function(){return"point "+a.name+" incident conic "+h.name},apply:Cd(a,h),holds:function(){var c=w.mult(h.matrix,a.homog),c=w.mult(a.homog,c),c=l.abs(c);1E-13>c.value.real&&(a.incidences.push(h.name),h.incidences.push(a.name))}}}function pd(){if(0!==ib.length){for(var a=0;a<ib.length;++a)ib[a].apply();
-ib=[]}}function yc(a,h,c){var r=document.createElement("div"),b=document.createElement("img");b.src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAPoCAQAAAC1v1zVAAAAGklEQVR42u3BMQEAAADCoPVPbQ0PoAAAgHcDC7gAAVI8ZnwAAAAASUVORK5CYII=";r.className="CindyJS-baseline";r.appendChild(b);b=document.createElement("div");b.className="CindyJS-button";r.appendChild(b);for(var d=2;d<arguments.length;++d)b.appendChild(arguments[d]);ka.parentNode.appendChild(r);a.html=arguments[arguments.length-1];Fa(a.fillalpha)||
-(a.fillalpha=1);a.fillcolor&&(a.html.style.backgroundColor=x.makeColor(a.fillcolor,a.fillalpha));r=e;if(a.script)var g=Ra(a.script),r=function(){A(g);e()};c.addEventListener(h,r);!p.keylistener&&(S.keydown||S.keyup||S.keytyped)&&(c.addEventListener("keydown",function(a){9!==a.keyCode&&N(a,S.keydown)}),c.addEventListener("keyup",function(a){N(a,S.keyup)}),c.addEventListener("keypress",function(a){9!==a.keyCode&&N(a,S.keytyped)}));m.Text.initialize(a)}function Pa(){}function ie(a){if(!/^Select/.test(a.type)&&
-!m[a.type].isMovable)return null;var h=w.unwrap,c=l.add;switch(a.kind){case "P":case "L":case "Text":return h(a.homog);case "C":return a=a.matrix.value,{xx:h(a[0].value[0]),yy:h(a[1].value[1]),zz:h(a[2].value[2]),xy:h(c(a[0].value[1],a[1].value[0])),xz:h(c(a[0].value[2],a[2].value[0])),yz:h(c(a[1].value[2],a[2].value[1]))};default:return null}}function je(a){var h={};h.offset=w.unwrap(a.offset);a.to&&(h.to=a.to);a.corner&&(h.corner=a.corner);return h}function ke(a){var h={};le.forEach(function(c){if(a.hasOwnProperty(c)){var b=
-w.unwrap(a[c]);null!==b&&void 0!==b&&(h[c]=b)}});if("P"===a.kind&&(!a.movable||a.pinned)&&h.color){var c=l.real(1/la.dimDependent);h.color=w.unwrap(g.scalmult(c,a.color))}if(c=ie(a))h.pos=c;a.dock&&(h.dock=je(a.dock));return h}function me(){var a=[];u.gslp.forEach(function(h){h.tmp||a.push(ke(h))});return a}function Od(){Ba.forEach(function(a){var h=(a.geo||[]).map(function(a){return u.csnames[a]});O[a.type].reset(a,h[0],h)})}function ec(a){ic=0!==a.length;Ba=[];ga=[];zc=[];O.Environment.init({});
-a.forEach(function(a){a.behavior?(a.name&&(a.behavior.geo=[a.name]),a=a.behavior,a.gravity&&(a.gravity=-a.gravity)):c=a.geo;var c=(a.geo||[]).map(function(a){return u.csnames[a]}),r=c[0],b=O[a.type];b?(b.init&&b.init(a,r,c),r&&(r.behavior=a,"Mass"===a.type?ga.push(r):"Spring"===a.type&&zc.push(r)),Ba.push(a)):(console.error(a),console.error("Behavior "+a.type+" not implemented yet"))})}var wa=this,ia,S={},Ya=!1,Ob=!0,Cb=0,Oc=.5,hc=0,Mb=10,Fd=5/360,Pd=.32/Fd/1E3*2,Kb=1,Wa=0,bc=0,cc=!1,zb=!1,ka,yb,
-Fa=Number.isFinite||function(a){return"number"===typeof a&&isFinite(a)},ta,y,da,ca,u,Xa,kc=k,lc=k,Sa={play:Pa,pause:Pa,stop:Pa},gc=null,Ab=function(a,h){var c=[];Ab=function(a,h){c.push({img:a,id:h})};Ab(a,h);var r=wa.getBaseDir()+"images/Icons.svg",b=new XMLHttpRequest;b.onreadystatechange=function(){if(b.readyState===XMLHttpRequest.DONE)if(200!==b.status)console.error("Failed to load CindyJS Icons.svg from "+r+": "+b.statusText);else{var a=b.responseXML,h=a.documentElement,d={},g,e;for(g=h.firstChild;g;g=
-e)e=g.nextSibling,g.nodeType===Node.ELEMENT_NODE&&"http://www.w3.org/2000/svg"===g.namespaceURI&&"g"===g.localName.toLowerCase()&&(h.removeChild(g),g.setAttribute("style","display:inline"),d[g.getAttribute("id")]=g);var f=new XMLSerializer;Ab=function(c,r){if(d.hasOwnProperty(r)){var b=d[r];h.appendChild(b);var g;try{g=f.serializeToString(a)}finally{h.removeChild(b)}c.src="data:image/svg+xml;charset=utf-8,"+encodeURIComponent(g)}};c.forEach(function(a){Ab(a.img,a.id)});c=null}};b.responseType="document";
-b.open("GET",r);b.send()},Pc=1,Bb=null,jb=[],jc=!1,oa={config:p,startup:W,shutdown:Qa,evokeCS:function(a){a=Ra(a,!1);console.log(a);A(a);e()},play:I,pause:Ca,stop:Da,evalcs:function(a){return A(Ra(a,!1))},parse:function(a){return Ra(a)},niceprint:ba,canvas:null},ac=!1,Lb=0;p.use&&p.use.forEach(function(a){var h=null;p.plugins&&(h=p.plugins[a]);h||(h=wa._pluginRegistry[a]);h||(++Lb,console.log("Loading script for plugin "+a),wa.loadScript(a+"-plugin",a+"-plugin.js",function(){console.log("Successfully loaded plugin "+
-a);0===--Lb&&ac&&W()},function(){console.error("Failed to auto-load plugin "+a);0===--Lb&&ac&&W()}))});xb.prototype=new ab;cb.prototype=new ab;qa.prototype=new ab;var X={},fa,Qc="",Rc=0,Pb;Pb=p.isNode?process.nextTick:window.requestAnimationFrame||window.webkitRequestAnimationFrame||window.mozRequestAnimationFrame||window.oRequestAnimationFrame||window.msRequestAnimationFrame||function(a){window.setTimeout(a,0)};var mc=null,ne=[0,8,4,0,"gbb244ca"],l={_helper:{}};l._helper.roundingfactor=1E4;l._helper.angleroundingfactor=
-10;l._helper.niceround=function(a,h){return Math.round(a*h)/h};l.niceprint=function(a,h){h=h||l._helper.roundingfactor;if("Angle"===a.usage)return l._helper.niceangle(a);var c=l._helper.niceround(a.value.real,h),r=l._helper.niceround(a.value.imag,h);return 0===r?""+c:0<r?""+c+" + i*"+r:""+c+" - i*"+-r};var Ac=p.angleUnit||"\u00b0",oe=Ac.replace(/\s+/g,""),Gd=2*Math.PI,pe=1/Gd,qe={rad:Gd,"\u00b0":360,deg:360,degree:360,gra:400,grad:400,turn:1,cyc:1,rev:1,rot:1,"\u03c0":2,pi:2,quad:4};l._helper.niceangle=
-function(a){var h=qe[oe];if(!h)return l.niceprint(w.withUsage(a,null));if("function"===typeof h)return h(a);a=l.niceprint(l.realmult(h*pe,a),200<h?l._helper.angleroundingfactor:null);return-1===a.indexOf("i*")?a+Ac:"("+a+")"+Ac};l.complex=function(a,h){return{ctype:"number",value:{real:a,imag:h}}};l.real=function(a){return{ctype:"number",value:{real:a,imag:0}}};l.zero=l.real(0);l.one=l.real(1);l.infinity=l.complex(Infinity,Infinity);l.nan=l.complex(NaN,NaN);l._helper.input=function(a){return"object"===
-typeof a?l.complex(+a.r,+a.i):l.real(+a)};l.argmax=function(a,h){return a.value.real*a.value.real+a.value.imag*a.value.imag<h.value.real*h.value.real+h.value.imag*h.value.imag?h:a};l.max=function(a,h){return{ctype:"number",value:{real:Math.max(a.value.real,h.value.real),imag:Math.max(a.value.imag,h.value.imag)}}};l.min=function(a,h){return{ctype:"number",value:{real:Math.min(a.value.real,h.value.real),imag:Math.min(a.value.imag,h.value.imag)}}};l.add=function(a,h){return{ctype:"number",value:{real:a.value.real+
-h.value.real,imag:a.value.imag+h.value.imag}}};l.sub=function(a,h){return{ctype:"number",value:{real:a.value.real-h.value.real,imag:a.value.imag-h.value.imag}}};l.neg=function(a){return{ctype:"number",value:{real:-a.value.real,imag:-a.value.imag}}};l.re=function(a){return{ctype:"number",value:{real:a.value.real,imag:0}}};l.im=function(a){return{ctype:"number",value:{real:a.value.imag,imag:0}}};l.conjugate=function(a){return{ctype:"number",value:{real:a.value.real,imag:-a.value.imag}}};l.round=function(a){return{ctype:"number",
-value:{real:Math.round(a.value.real),imag:Math.round(a.value.imag)}}};l.ceil=function(a){return{ctype:"number",value:{real:Math.ceil(a.value.real),imag:Math.ceil(a.value.imag)}}};l.floor=function(a){return{ctype:"number",value:{real:Math.floor(a.value.real),imag:Math.floor(a.value.imag)}}};l.mult=function(a,h){return{ctype:"number",value:{real:a.value.real*h.value.real-a.value.imag*h.value.imag,imag:a.value.real*h.value.imag+a.value.imag*h.value.real}}};l.realmult=function(a,h){return{ctype:"number",
-value:{real:a*h.value.real,imag:a*h.value.imag}}};l.multiMult=function(a){var h=a[0];if("number"!==h.ctype)return k;for(var c=1;c<a.length;c++){if("number"!==a[c].ctype)return k;h=l.mult(h,a[c])}return h};l.abs2=function(a,h){return{ctype:"number",value:{real:a.value.real*a.value.real+a.value.imag*a.value.imag,imag:0}}};l.abs=function(a){return l.sqrt(l.abs2(a))};l.inv=function(a){var h=a.value.real*a.value.real+a.value.imag*a.value.imag;return{ctype:"number",value:{real:a.value.real/h,imag:-a.value.imag/
-h}}};l.div=function(a,h){var c=a.value.real,r=a.value.imag,b=h.value.real,d=h.value.imag,g=b*b+d*d;return{ctype:"number",value:{real:(c*b+r*d)/g,imag:(r*b-c*d)/g}}};l.eps=1E-10;l.epsbig=1E-6;l.snap=function(a){var h=a.value.real;a=a.value.imag;Math.floor(h+l.eps)!==Math.floor(h-l.eps)&&(h=Math.round(h));Math.floor(a+l.eps)!==Math.floor(a-l.eps)&&(a=Math.round(a));return{ctype:"number",value:{real:h,imag:a}}};l.exp=function(a){var h=Math.exp(a.value.real);return{ctype:"number",value:{real:h*Math.cos(a.value.imag),
-imag:h*Math.sin(a.value.imag)}}};l.cos=function(a){var h=a.value.real;a=a.value.imag;var c=Math.exp(a),r=c*Math.sin(-h),b=c*Math.cos(-h),c=Math.exp(-a);return{ctype:"number",value:{real:(b+c*Math.cos(h))/2,imag:(r+c*Math.sin(h))/2}}};l.sin=function(a){var h=a.value.real;a=a.value.imag;var c=Math.exp(a),r=c*Math.sin(-h),b=c*Math.cos(-h),c=Math.exp(-a);return{ctype:"number",value:{real:-(r-c*Math.sin(h))/2,imag:(b-c*Math.cos(h))/2}}};l.tan=function(a){var h=l.sin(a);a=l.cos(a);return l.div(h,a)};l.arccos=
-function(a){var h=l.mult(a,l.neg(a)),h=l.sqrt(l.add(l.real(1),h));a=l.add(l.mult(a,l.complex(0,1)),h);a=l.add(l.mult(l.log(a),l.complex(0,1)),l.real(.5*Math.PI));return w.withUsage(a,"Angle")};l.arcsin=function(a){var h=l.mult(a,l.neg(a)),h=l.sqrt(l.add(l.real(1),h));a=l.add(l.mult(a,l.complex(0,1)),h);a=l.mult(l.log(a),l.complex(0,-1));return w.withUsage(a,"Angle")};l.arctan=function(a){var h=l.log(l.add(l.mult(a,l.complex(0,-1)),l.real(1)));a=l.log(l.add(l.mult(a,l.complex(0,1)),l.real(1)));h=l.mult(l.sub(h,
-a),l.complex(0,.5));return w.withUsage(h,"Angle")};l.arctan2=function(a,h){var c;if(void 0===h)c=l.real(Math.atan2(a.value.imag,a.value.real));else if(l._helper.isReal(a)&&l._helper.isReal(h))c=l.real(Math.atan2(h.value.real,a.value.real));else{c=l.add(a,l.mult(l.complex(0,1),h));var r=l.sqrt(l.add(l.mult(a,a),l.mult(h,h)));c=l.mult(l.complex(0,-1),l.log(l.div(c,r)))}return w.withUsage(c,"Angle")};l.sqrt=function(a){var h=a.value.real,c=a.value.imag;a=Math.sqrt(Math.sqrt(h*h+c*c));h=Math.atan2(c,
-h);return{ctype:"number",value:{real:a*Math.cos(h/2),imag:a*Math.sin(h/2)}}};l.powRealExponent=function(a,h){var c=a.value.real,r=a.value.imag,b=Math.pow(Math.sqrt(c*c+r*r),h),c=Math.atan2(r,c);return{ctype:"number",value:{real:b*Math.cos(c*h),imag:b*Math.sin(c*h)}}};l.log=function(a){var h=a.value.real;a=a.value.imag;var c=Math.sqrt(h*h+a*a),r=Math.atan2(a,h);0>a&&(r+=2*Math.PI);0===a&&0>h&&(r=Math.PI);r>Math.PI&&(r-=2*Math.PI);return l.snap({ctype:"number",value:{real:Math.log(c),imag:r}})};l.pow=
-function(a,h){return l._helper.isZero(h)?l.one:l._helper.isZero(a)?l.zero:l._helper.isReal(h)?l.powRealExponent(a,h.value.real):l.exp(l.mult(l.log(a),h))};l.mod=function(a,h){var c=a.value.real,r=h.value.real,b=a.value.imag,d=h.value.imag,c=c-Math.floor(c/r)*r,b=b-Math.floor(b/d)*d;0===r&&(c=0);0===d&&(b=0);return l.snap({ctype:"number",value:{real:c,imag:b}})};l._helper.seed="NO";l._helper.seedrandom=function(a){a-=Math.floor(a);l._helper.seed=.8*a+.1};l._helper.rand=function(){if("NO"===l._helper.seed)return Math.random();
-var a=l._helper.seed,a=1E3*Math.sin(1E3*a),a=a-Math.floor(a);return l._helper.seed=a};l._helper.randnormal=function(){var a=l._helper.rand(),h=l._helper.rand();return Math.sqrt(-2*Math.log(a))*Math.cos(2*Math.PI*h)};l._helper.isEqual=function(a,h){return a.value.real===h.value.real&&a.value.imag===h.value.imag};l._helper.isLessThan=function(a,h){return a.value.real<h.value.real||a.value.real===h.value.real&&a.value.imag<h.value.imag};l._helper.compare=function(a,h){return l._helper.isLessThan(a,h)?
--1:l._helper.isEqual(a,h)?0:1};l._helper.isAlmostEqual=function(a,h,c){var r=l.eps;"undefined"!==typeof c&&(r=c);c=a.value.real-h.value.real;a=a.value.imag-h.value.imag;return c<r&&c>-r&&a<r&&a>-r};l._helper.isZero=function(a){return 0===a.value.real&&0===a.value.imag};l._helper.isAlmostZero=function(a){var h=a.value.real;a=a.value.imag;return h<l.eps&&h>-l.eps&&a<l.eps&&a>-l.eps};l._helper.isReal=function(a){return 0===a.value.imag};l._helper.isAlmostReal=function(a){a=a.value.imag;return a<l.epsbig&&
-a>-l.epsbig};l._helper.isNaN=function(a){return isNaN(a.value.real)||isNaN(a.value.imag)};l._helper.isFinite=function(a){return isFinite(a.value.real)&&isFinite(a.value.imag)};l._helper.isAlmostImag=function(a){a=a.value.real;return a<l.epsbig&&a>-l.epsbig};l._helper.z3a=l.complex(-.5,.5*Math.sqrt(3));l._helper.z3b=l.complex(-.5,-.5*Math.sqrt(3));l._helper.cub1={ctype:"list",value:[l.one,l.one,l.one]};l._helper.cub2={ctype:"list",value:[l._helper.z3a,l.one,l._helper.z3b]};l._helper.cub3={ctype:"list",
-value:[l._helper.z3b,l.one,l._helper.z3a]};l.solveCubic=function(a,h,c,r){a=l._helper.solveCubicHelper(a,h,c,r);return[g.scalproduct(l._helper.cub1,a),g.scalproduct(l._helper.cub2,a),g.scalproduct(l._helper.cub3,a)]};l._helper.solveCubicHelper=function(a,h,c,r){var b=a.value.real;a=a.value.imag;var d=h.value.real;h=h.value.imag;var e=c.value.real,f=c.value.imag,k=r.value.real,m=r.value.imag,n=b*e-a*f;c=b*f+a*e;r=4*n-(d*d-h*h);var p=4*c-2*d*h,q=b*d-a*h,t=b*h+a*d,v=r*e-p*f-18*(q*k-t*m),p=r*f+p*e-18*
-(q*m+t*k);r=27*(b*b-a*a);var u=54*a*b,w=r*k-u*m,x=r*m+u*k,z=d*d-h*h,y=2*d*h,A=z*d-y*h,B=z*h+y*d,C=w+4*A,u=x+4*B;r=27*(v*e-p*f+C*k-u*m);p=27*(v*f+p*e+C*m+u*k);C=Math.sqrt(Math.sqrt(r*r+p*p));u=Math.atan2(p,r);p=C*Math.sin(u/2);r=C*Math.cos(u/2);A=-2*A+9*(q*e-t*f)-w+(r*b-p*a);B=-2*B+9*(q*f+t*e)-x+(r*a+p*b);r=Math.exp(Math.log(Math.sqrt(A*A+B*B))/3);e=Math.atan2(B,A);u=r*Math.sin(e/3);p=r*Math.cos(e/3);r*=r;e*=2;n=2*z-6*n;c=2*y-6*c;y=-1.5874010519681996*(d*p-h*u);d=-1.5874010519681996*(d*u+h*p);h=1.2599210498948732*
-r*Math.cos(e/3);e=1.2599210498948732*r*Math.sin(e/3);r=4.762203155904599*(p*b-u*a);p=4.762203155904599*(p*a+u*b);b=r*r+p*p;u=(-n*p+c*r)/b;n=(n*r+c*p)/b;c=u;u=(-y*p+d*r)/b;y=(y*r+d*p)/b;d=u;u=(-h*p+e*r)/b;h=(h*r+e*p)/b;e=u;return g.turnIntoCSList([l.complex(n,c),l.complex(y,d),l.complex(h,e)])};var g={_helper:{},turnIntoCSList:function(a){return{ctype:"list",value:a}}};g.EMPTY=g.turnIntoCSList([]);g.asList=function(a){return"list"===a.ctype?a:"number"===a.ctype||"boolean"===a.ctype||"geo"===a.ctype?
-g.turnIntoCSList([a]):g.EMPTY};g.realVector=function(a){for(var h=[],c=0;c<a.length;c++)h[c]={ctype:"number",value:{real:a[c],imag:0}};return{ctype:"list",value:h}};g._helper.unitvector=function(a,h){var c=g.zerovector(a);c.value[Math.floor(h.value.real-1)]=l.real(1);return c};g.idMatrix=function(a){for(var h=g.zeromatrix(a,a),c=l.real(1),r=0;r<a.value.real;r++)h.value[r].value[r]=c;return h};g._helper.flippedidMatrix=function(a){for(var h=g.zeromatrix(a,a),c=l.real(1),r=0;r<a.value.real;r++)h.value[r].value[a.value.real-
-r-1]=c;return h};g.println=function(a){for(var h=[],c=0;c<a.value.length;c++)if("number"===a.value[c].ctype)h[c]=l.niceprint(a.value[c]);else if("list"===a.value[c].ctype)g.println(a.value[c]);else return k;"number"===a.value[0].ctype&&console.log(h)};g.matrix=function(a){return g.turnIntoCSList(a.map(g.turnIntoCSList))};g.realMatrix=function(a){for(var h=a.length,c=Array(h),r=0;r<h;r++)c[r]=g.realVector(a[r]);return g.turnIntoCSList(c)};g.ex=g.realVector([1,0,0]);g.ey=g.realVector([0,1,0]);g.ez=
-g.realVector([0,0,1]);g.linfty=g.realVector([0,0,1]);g.ii=g.turnIntoCSList([l.complex(1,0),l.complex(0,1),l.complex(0,0)]);g.jj=g.turnIntoCSList([l.complex(1,0),l.complex(0,-1),l.complex(0,0)]);g.fundDual=g.realMatrix([[1,0,0],[0,1,0],[0,0,0]]);g.fund=g.realMatrix([[0,0,0],[0,0,0],[0,0,1]]);g.sequence=function(a,h){for(var c=[],r=0,b=Math.round(a.value.real);b<Math.round(h.value.real)+1;b++)c[r]={ctype:"number",value:{real:b,imag:0}},r++;return{ctype:"list",value:c}};g.pairs=function(a){for(var h=
-[],c=0;c<a.value.length-1;c++)for(var r=c+1;r<a.value.length;r++)h.push({ctype:"list",value:[a.value[c],a.value[r]]});return{ctype:"list",value:h}};g.triples=function(a){for(var h=[],c=0;c<a.value.length-2;c++)for(var r=c+1;r<a.value.length-1;r++)for(var b=r+1;b<a.value.length;b++)h.push({ctype:"list",value:[a.value[c],a.value[r],a.value[b]]});return{ctype:"list",value:h}};g.cycle=function(a){for(var h=[],c=0;c<a.value.length-1;c++)h[c]={ctype:"list",value:[a.value[c],a.value[c+1]]};h.push({ctype:"list",
-value:[a.value[a.value.length-1],a.value[0]]});return{ctype:"list",value:h}};g.consecutive=function(a){for(var h=[],c=0;c<a.value.length-1;c++)h[c]={ctype:"list",value:[a.value[c],a.value[c+1]]};return{ctype:"list",value:h}};g.reverse=function(a){for(var h=Array(a.value.length),c=a.value.length-1,r=0;0<=c;c--,r++)h[r]=a.value[c];return{ctype:"list",value:h}};g.directproduct=function(a,h){for(var c=[],r=0;r<a.value.length;r++)for(var b=0;b<h.value.length;b++)c.push({ctype:"list",value:[a.value[r],
-h.value[b]]});return{ctype:"list",value:c}};g.concat=function(a,h){for(var c=[],r=0;r<a.value.length;r++)c.push(a.value[r]);for(r=0;r<h.value.length;r++)c.push(h.value[r]);return{ctype:"list",value:c}};g.prepend=function(a,h){var c=[];c[0]=a;for(var r=0;r<h.value.length;r++)c[r+1]=h.value[r];return{ctype:"list",value:c}};g.append=function(a,h){for(var c=[],r=0;r<a.value.length;r++)c[r]=a.value[r];c.push(h);return{ctype:"list",value:c}};g.contains=function(a,h){for(var c=0;c<a.value.length;c++)if(D.equals(a.value[c],
-h).value)return{ctype:"boolean",value:!0};return{ctype:"boolean",value:!1}};g.common=function(a,h){for(var c=[],r=0,b=0;b<a.value.length;b++){for(var d=!1,g=a.value[b],e=0;e<h.value.length;e++)d=d||D.equals(g,h.value[e]).value;d&&(c[r]=a.value[b],r++)}return{ctype:"list",value:c}};g.remove=function(a,h){for(var c=[],r=0,b=0;b<a.value.length;b++){for(var d=!1,g=a.value[b],e=0;e<h.value.length;e++)d=d||D.equals(g,h.value[e]).value;d||(c[r]=a.value[b],r++)}return{ctype:"list",value:c}};g.sort1=function(a){a=
-a.value.slice();a.sort(w.compare);return g.turnIntoCSList(a)};g._helper.isEqual=function(a,h){return g.equals(a,h).value};g._helper.isLessThan=function(a,h){for(var c=a.value.length,r=h.value.length,b=0;!(b>=c||b>=r)&&w.isEqual(a.value[b],h.value[b]);)b++;return b===c&&b<r?!0:b===r&&b<c||b===c&&b===r?!1:w.isLessThan(a.value[b],h.value[b])};g._helper.compare=function(a,h){return g._helper.isLessThan(a,h)?-1:g._helper.isEqual(a,h)?0:1};g.equals=function(a,h){if(a.value.length!==h.value.length)return{ctype:"boolean",
-value:!1};for(var c=!0,r=0;r<a.value.length;r++)var b=a.value[r],d=h.value[r],c="list"===b.ctype&&"list"===d.ctype?c&&g.equals(b,d).value:c&&pb([b,d],[]).value;return{ctype:"boolean",value:c}};g.almostequals=function(a,h){if(a.value.length!==h.value.length)return{ctype:"boolean",value:!1};for(var c=!0,r=0;r<a.value.length;r++)var b=a.value[r],d=h.value[r],c="list"===b.ctype&&"list"===d.ctype?c&&g.almostequals(b,d).value:c&&Yb([b,d],[]).value;return{ctype:"boolean",value:c}};g._helper.isAlmostReal=
-function(a){for(var h=!0,c=0;c<a.value.length;c++)var r=a.value[c],h="list"===r.ctype?h&&g._helper.isAlmostReal(r):h&&l._helper.isAlmostReal(r);return h};g._helper.isAlmostZero=function(a){for(var h=0;h<a.value.length;h++){var c=a.value[h];if("list"===c.ctype){if(!g._helper.isAlmostZero(c))return!1}else if(!l._helper.isAlmostZero(c))return!1}return!0};g._helper.isNaN=function(a){for(var h=!1,c=0;c<a.value.length;c++)var r=a.value[c],h="list"===r.ctype?h||g._helper.isNaN(r):h||l._helper.isNaN(r);return h};
-g.set=function(a){var h=[],c=0;a=a.value.slice();a.sort(w.compare);for(var r=0;r<a.length;r++)0!==r&&pb([h[h.length-1],a[r]],[]).value||(h[c]=a[r],c++);return{ctype:"list",value:h}};g.maxval=function(a){for(var h=l.zero,c=0;c<a.value.length;c++){var r=a.value[c];"number"===r.ctype&&(h=l.argmax(h,r));"list"===r.ctype&&(h=l.argmax(h,g.maxval(r)))}return h};g.maxIndex=function(a,h,c){var r=0;void 0!==c&&(r=c);c=r;for(var b=h(a.value[r]).value.real;r<a.value.length;++r){var d=h(a.value[r]).value.real;
-d>b&&(c=r,b=d)}return c};g.normalizeMax=function(a){var h=l.inv(g.maxval(a));return l._helper.isFinite(h)?g.scalmult(h,a):a};g.normalizeZ=function(a){var h=l.inv(a.value[2]);return g.scalmult(h,a)};g.dehom=function(a){a=a.value.slice();var h=a.length-1,c=l.inv(a[h]);a.length=h;for(var r=0;r<h;++r)a[r]=l.mult(c,a[r]);return g.turnIntoCSList(a)};g.normalizeAbs=function(a){var h=l.inv(g.abs(a));return g.scalmult(h,a)};g.max=function(a,h){if(a.value.length!==h.value.length)return k;for(var c=[],r=0;r<
-a.value.length;r++)c[r]=w.max(a.value[r],h.value[r]);return{ctype:"list",value:c}};g.min=function(a,h){if(a.value.length!==h.value.length)return k;for(var c=[],r=0;r<a.value.length;r++)c[r]=w.min(a.value[r],h.value[r]);return{ctype:"list",value:c}};g.scaldiv=function(a,h){if("number"!==a.ctype)return k;for(var c=[],r=0;r<h.value.length;r++){var b=h.value[r];c[r]="number"===b.ctype?w.div(b,a):"list"===b.ctype?g.scaldiv(a,b):k}return{ctype:"list",value:c}};g.scalmult=function(a,h){if("number"!==a.ctype)return k;
-for(var c=[],r=0;r<h.value.length;r++){var b=h.value[r];c[r]="number"===b.ctype?w.mult(b,a):"list"===b.ctype?g.scalmult(a,b):k}return{ctype:"list",value:c}};g.add=function(a,h){if(a.value.length!==h.value.length)return k;for(var c=[],r=0;r<a.value.length;r++){var b=a.value[r],d=h.value[r];c[r]="number"===b.ctype&&"number"===d.ctype?w.add(b,d):"list"===b.ctype&&"list"===d.ctype?g.add(b,d):k}return{ctype:"list",value:c}};g.sub=function(a,h){if(a.value.length!==h.value.length)return k;for(var c=[],r=
-0;r<a.value.length;r++){var b=a.value[r],d=h.value[r];c[r]="number"===b.ctype&&"number"===d.ctype?l.sub(b,d):"list"===b.ctype&&"list"===d.ctype?g.sub(b,d):k}return{ctype:"list",value:c}};g.abs2=function(a){for(var h=0,c=0;c<a.value.length;c++){var r=a.value[c];if("number"===r.ctype)h+=l.abs2(r).value.real;else if("list"===r.ctype)h+=g.abs2(r).value.real;else return k}return{ctype:"number",value:{real:h,imag:0}}};g.abs=function(a){return l.sqrt(g.abs2(a))};g.normalizeMaxXX=function(a){for(var h=-1E4,
-c=l.real(1),r=0;r<a.value.length;r++){var b=l.abs(a.value[r]);b.value.real>h&&(c=a.value[r],h=b.value.real)}return g.scaldiv(c,a)};g.recursive=function(a,h){for(var c=[],r=0;r<a.value.length;r++){var b=B(a.value[r]);c[r]="number"===b.ctype?l[h](b):"list"===b.ctype?g[h](b):k}return{ctype:"list",value:c}};g.re=function(a){return g.recursive(a,"re")};g.neg=function(a){return g.recursive(a,"neg")};g.im=function(a){return g.recursive(a,"im")};g.conjugate=function(a){return g.recursive(a,"conjugate")};
-g.transjugate=function(a){return g.transpose(g.conjugate(a))};g.round=function(a){return g.recursive(a,"round")};g.ceil=function(a){return g.recursive(a,"ceil")};g.floor=function(a){return g.recursive(a,"floor")};g._helper.colNumb=function(a){if("list"!==a.ctype)return-1;for(var h=-1,c=0;c<a.value.length;c++){if("list"!==a.value[c].ctype)return-1;if(0===c)h=a.value[c].value.length;else if(h!==a.value[c].value.length)return-1}return h};g._helper.isNumberVecN=function(a,h){if("list"!==a.ctype||a.value.length!==
-h)return!1;for(var c=0;c<a.value.length;c++)if("number"!==a.value[c].ctype)return!1;return!0};g.isNumberVector=function(a){if("list"!==a.ctype)return{ctype:"boolean",value:!1};for(var h=0;h<a.value.length;h++)if("number"!==a.value[h].ctype)return{ctype:"boolean",value:!1};return{ctype:"boolean",value:!0}};g.isNumberVectorN=function(a,h){if("list"!==a.ctype)return{ctype:"boolean",value:!1};if(a.value)for(var c=0;c<a.value.length;c++)if("number"!==a.value[c].ctype)return{ctype:"boolean",value:!1};return{ctype:"boolean",
-value:!0}};g.isNumberMatrix=function(a){if(-1===g._helper.colNumb(a))return{ctype:"boolean",value:!1};for(var h=0;h<a.value.length;h++)if(!g.isNumberVector(a.value[h]).value)return{ctype:"boolean",value:!1};return{ctype:"boolean",value:!0}};g._helper.isNumberMatrixMN=function(a,h,c){return g.isNumberMatrix(a).value&&a.value.length===h&&a.value[0].value.length===c};g.scalproduct=function(a,h){if(a.value.length!==h.value.length)return k;for(var c={ctype:"number",value:{real:0,imag:0}},r=0;r<h.value.length;r++){var b=
-a.value[r],d=h.value[r];if("number"===b.ctype&&"number"===d.ctype)c=l.add(l.mult(b,d),c);else return k}return c};g.sesquilinearproduct=function(a,h){if(a.value.length!==h.value.length)return k;for(var c=0,r=0,b=0;b<h.value.length;b++)var d=a.value[b].value,g=h.value[b].value,c=c+(d.real*g.real+d.imag*g.imag),r=r+(d.real*g.imag-d.imag*g.real);return l.complex(c,r)};g.normSquared=function(a){for(var h=0,c=0;c<a.value.length;c++)var r=a.value[c].value,h=h+(r.real*r.real+r.imag*r.imag);return l.real(h)};
-g.productMV=function(a,h){if(a.value[0].value.length!==h.value.length)return k;for(var c=[],r=0;r<a.value.length;r++){for(var b={ctype:"number",value:{real:0,imag:0}},d=a.value[r],e=0;e<h.value.length;e++){var f=d.value[e],m=h.value[e];if("number"===f.ctype&&"number"===m.ctype)b=l.add(l.mult(f,m),b);else return k}c[r]=b}return g.turnIntoCSList(c)};g.productVM=function(a,h){if(a.value.length!==h.value.length)return k;for(var c=[],b=0;b<h.value[0].value.length;b++){for(var d={ctype:"number",value:{real:0,
-imag:0}},e=0;e<a.value.length;e++){var f=a.value[e],m=h.value[e].value[b];if("number"===f.ctype&&"number"===m.ctype)d=l.add(l.mult(f,m),d);else return k}c[b]=d}return g.turnIntoCSList(c)};g.productMM=function(a,h){if(a.value[0].value.length!==h.value.length)return k;for(var c=[],b=0;b<a.value.length;b++){var d=g.productVM(a.value[b],h);c[b]=d}return g.turnIntoCSList(c)};g.mult=function(a,h){return a.value.length===h.value.length&&g.isNumberVector(a).value&&g.isNumberVector(h).value?g.scalproduct(a,
-h):g.isNumberMatrix(a).value&&h.value.length===a.value[0].value.length&&g.isNumberVector(h).value?g.productMV(a,h):g.isNumberMatrix(h).value&&a.value.length===h.value.length&&g.isNumberVector(a).value?g.productVM(a,h):g.isNumberMatrix(a).value&&g.isNumberMatrix(h).value&&h.value.length===a.value[0].value.length?g.productMM(a,h):k};g.projectiveDistMinScal=function(a,h){var c=g.abs(a),b=g.abs(h);if(0===c.value.real||0===b.value.real)return 0;var d=g.conjugate(h),d=g.scalproduct(a,d),d=l._helper.isAlmostZero(d)?
-l.real(1):l.div(d,l.abs(d)),c=g.scaldiv(c,a),b=g.scaldiv(b,h),b=g.scalmult(d,b),d=g.abs(g.add(c,b)),b=g.abs(g.sub(c,b));return Math.min(d.value.real,b.value.real)};g.conicDist=function(a,h){var c=v(a),b=v(h);console.log(ba(c),ba(b));return g.projectiveDistMinScal(c,b)};g.crossOperator=function(a){var h=a.value[0],c=a.value[1];a=a.value[2];return g.turnIntoCSList([g.turnIntoCSList([l.zero,l.neg(a),c]),g.turnIntoCSList([a,l.zero,l.neg(h)]),g.turnIntoCSList([l.neg(c),h,l.zero])])};g.cross=function(a,
-h){var c=l.sub(l.mult(a.value[1],h.value[2]),l.mult(a.value[2],h.value[1])),b=l.sub(l.mult(a.value[2],h.value[0]),l.mult(a.value[0],h.value[2])),d=l.sub(l.mult(a.value[0],h.value[1]),l.mult(a.value[1],h.value[0]));return g.turnIntoCSList([c,b,d])};g.crossratio3harm=function(a,h,c,b,d){var e=g.det3(a,c,d),f=g.det3(h,b,d);a=g.det3(a,b,d);h=g.det3(h,c,d);e=l.mult(e,f);f=l.mult(a,h);return g.turnIntoCSList([e,f])};g.crossratio3=function(a,h,c,b,d){a=g.crossratio3harm(a,h,c,b,d);return l.div(a.value[0],
-a.value[1])};g.veronese=function(a){var h=l.mult(a.value[0],a.value[0]),c=l.mult(a.value[1],a.value[1]),b=l.mult(a.value[2],a.value[2]),d=l.mult(a.value[0],a.value[1]),e=l.mult(a.value[0],a.value[2]);a=l.mult(a.value[1],a.value[2]);return g.turnIntoSCList([h,c,b,d,e,a])};g.matrixFromVeronese=function(a){var h=a.value[0],c=a.value[1],b=a.value[2],d=l.realmult(.5,a.value[3]),e=l.realmult(.5,a.value[4]);a=l.realmult(.5,a.value[5]);return g.turnIntoCSList([g.turnIntoCSList([h,d,e]),g.turnIntoCSList([d,
-c,a]),g.turnIntoCSList([e,a,b])])};g.det2=function(a,h){var c=l.mult(a.value[0],h.value[1]);return c=l.sub(c,l.mult(a.value[1],h.value[0]))};g.det3=function(a,h,c){return l.complex(a.value[0].value.real*h.value[1].value.real*c.value[2].value.real-a.value[0].value.imag*h.value[1].value.imag*c.value[2].value.real-a.value[0].value.imag*h.value[1].value.real*c.value[2].value.imag-a.value[0].value.real*h.value[1].value.imag*c.value[2].value.imag+a.value[2].value.real*h.value[0].value.real*c.value[1].value.real-
-a.value[2].value.imag*h.value[0].value.imag*c.value[1].value.real-a.value[2].value.imag*h.value[0].value.real*c.value[1].value.imag-a.value[2].value.real*h.value[0].value.imag*c.value[1].value.imag+a.value[1].value.real*h.value[2].value.real*c.value[0].value.real-a.value[1].value.imag*h.value[2].value.imag*c.value[0].value.real-a.value[1].value.imag*h.value[2].value.real*c.value[0].value.imag-a.value[1].value.real*h.value[2].value.imag*c.value[0].value.imag-a.value[0].value.real*h.value[2].value.real*
-c.value[1].value.real+a.value[0].value.imag*h.value[2].value.imag*c.value[1].value.real+a.value[0].value.imag*h.value[2].value.real*c.value[1].value.imag+a.value[0].value.real*h.value[2].value.imag*c.value[1].value.imag-a.value[2].value.real*h.value[1].value.real*c.value[0].value.real+a.value[2].value.imag*h.value[1].value.imag*c.value[0].value.real+a.value[2].value.imag*h.value[1].value.real*c.value[0].value.imag+a.value[2].value.real*h.value[1].value.imag*c.value[0].value.imag-a.value[1].value.real*
-h.value[0].value.real*c.value[2].value.real+a.value[1].value.imag*h.value[0].value.imag*c.value[2].value.real+a.value[1].value.imag*h.value[0].value.real*c.value[2].value.imag+a.value[1].value.real*h.value[0].value.imag*c.value[2].value.imag,-a.value[0].value.imag*h.value[1].value.imag*c.value[2].value.imag+a.value[0].value.imag*h.value[1].value.real*c.value[2].value.real+a.value[0].value.real*h.value[1].value.real*c.value[2].value.imag+a.value[0].value.real*h.value[1].value.imag*c.value[2].value.real-
-a.value[2].value.imag*h.value[0].value.imag*c.value[1].value.imag+a.value[2].value.imag*h.value[0].value.real*c.value[1].value.real+a.value[2].value.real*h.value[0].value.real*c.value[1].value.imag+a.value[2].value.real*h.value[0].value.imag*c.value[1].value.real-a.value[1].value.imag*h.value[2].value.imag*c.value[0].value.imag+a.value[1].value.imag*h.value[2].value.real*c.value[0].value.real+a.value[1].value.real*h.value[2].value.real*c.value[0].value.imag+a.value[1].value.real*h.value[2].value.imag*
-c.value[0].value.real+a.value[0].value.imag*h.value[2].value.imag*c.value[1].value.imag-a.value[0].value.imag*h.value[2].value.real*c.value[1].value.real-a.value[0].value.real*h.value[2].value.real*c.value[1].value.imag-a.value[0].value.real*h.value[2].value.imag*c.value[1].value.real+a.value[2].value.imag*h.value[1].value.imag*c.value[0].value.imag-a.value[2].value.imag*h.value[1].value.real*c.value[0].value.real-a.value[2].value.real*h.value[1].value.real*c.value[0].value.imag-a.value[2].value.real*
-h.value[1].value.imag*c.value[0].value.real+a.value[1].value.imag*h.value[0].value.imag*c.value[2].value.imag-a.value[1].value.imag*h.value[0].value.real*c.value[2].value.real-a.value[1].value.real*h.value[0].value.real*c.value[2].value.imag-a.value[1].value.real*h.value[0].value.imag*c.value[2].value.real)};g.det4m=function(a){var h=a.value,c=h[0].value,b=c[0].value,d=+b.real,g=+b.imag,b=c[1].value,e=+b.real,f=+b.imag,b=c[2].value,k=+b.real,m=+b.imag,b=c[3].value,n=+b.real,p=+b.imag,c=h[1].value,
-b=c[0].value,q=+b.real,t=+b.imag,b=c[1].value,u=+b.real,v=+b.imag,b=c[2].value,w=+b.real,x=+b.imag,b=c[3].value,c=+b.real,b=+b.imag;a=d*u-g*v-e*q+f*t;var y=d*v+g*u-e*t-f*q,z=d*w-g*x-k*q+m*t,A=d*x+g*w-k*t-m*q,B=d*c-g*b-n*q+p*t,C=d*b+g*c-n*t-p*q,D=e*w-f*x-k*u+m*v,E=e*x+f*w-k*v-m*u,F=e*c-f*b-n*u+p*v,G=e*b+f*c-n*v-p*u,H=k*c-m*b-n*w+p*x,L=k*b+m*c-n*x-p*w,c=h[2].value,b=c[0].value,d=+b.real,g=+b.imag,b=c[1].value,e=+b.real,f=+b.imag,b=c[2].value,k=+b.real,m=+b.imag,b=c[3].value,n=+b.real,p=+b.imag,c=h[3].value,
-b=c[0].value,q=+b.real,t=+b.imag,b=c[1].value,u=+b.real,v=+b.imag,b=c[2].value,w=+b.real,x=+b.imag,b=c[3].value,c=+b.real,b=+b.imag,h=d*u-g*v-e*q+f*t,J=d*v+g*u-e*t-f*q,I=d*w-g*x-k*q+m*t,K=d*x+g*w-k*t-m*q,M=d*c-g*b-n*q+p*t,d=d*b+g*c-n*t-p*q,g=e*w-f*x-k*u+m*v,q=e*x+f*w-k*v-m*u,t=e*c-f*b-n*u+p*v,e=e*b+f*c-n*v-p*u,f=k*c-m*b-n*w+p*x,k=k*b+m*c-n*x-p*w;return l.complex(a*f-y*k-z*t+A*e+B*g-C*q+D*M-E*d-F*I+G*K+H*h-L*J,a*k+y*f-z*e-A*t+B*q+C*g+D*d+E*M-F*K-G*I+H*J+L*h)};g.eucangle=function(a,h){var c=g.cross(a,
-g.linfty),b=g.cross(h,g.linfty),d=g.det3(g.ez,c,g.ii),c=g.det3(g.ez,c,g.jj),e=g.det3(g.ez,b,g.ii),b=g.det3(g.ez,b,g.jj),d=l.div(l.mult(d,b),l.mult(e,c)),d=l.log(d);return d=l.mult(d,l.complex(0,.5))};g.zerovector=function(a){a=Math.floor(a.value.real);for(var h=Array(a),c=0;c<a;c++)h[c]=0;return g.realVector(h)};g.zeromatrix=function(a,h){for(var c=Math.floor(a.value.real),b=Array(c),d=0;d<c;d++)b[d]=g.zerovector(h);return g.turnIntoCSList(b)};g.vandermonde=function(a){for(var h=a.value.length,c=
-g.zeromatrix(h,h),b=0;b<h;b++)for(var d=0;d<h;d++)c.value[b].value[d]=l.pow(a.value[b],l.real(d-1));return c};g.transpose=function(a){for(var h=[],c=a.value[0].value.length,b=a.value.length,d=0;d<c;d++){for(var e=[],f=0;f<b;f++)e[f]=a.value[f].value[d];h[d]=g.turnIntoCSList(e)}return g.turnIntoCSList(h)};g.column=function(a,h){for(var c=[],b=a.value.length,d=Math.floor(h.value.real-1),e=0;e<b;e++)c[e]=a.value[e].value[d];return g.turnIntoCSList(c)};g.row=function(a,h){for(var c=[],b=a.value[0].value.length,
-d=Math.floor(h.value.real-1),e=0;e<b;e++)c[e]=a.value[d].value[e];return g.turnIntoCSList(c)};g.adjoint2=function(a){var h=a.value[0].value[0],c=a.value[1].value[0],b=Array(2);b[0]=g.turnIntoCSList([a.value[1].value[1],l.neg(a.value[0].value[1])]);b[1]=g.turnIntoCSList([l.neg(c),h]);return b=g.turnIntoCSList(b)};g.adjoint3=function(a){var h,c,b,d,g,e,f,k,l,m,n,p,q,t,u,v,w;h=a.value[0].value;c=h[0].value;b=c.real;d=c.imag;c=h[1].value;g=c.real;e=c.imag;c=h[2].value;f=c.real;k=c.imag;h=a.value[1].value;
-c=h[0].value;l=c.real;m=c.imag;c=h[1].value;n=c.real;p=c.imag;c=h[2].value;q=c.real;t=c.imag;h=a.value[2].value;c=h[0].value;a=c.real;u=c.imag;c=h[1].value;v=c.real;w=c.imag;c=h[2].value;h=c.real;c=c.imag;return{ctype:"list",value:[{ctype:"list",value:[{ctype:"number",value:{real:n*h-q*v-p*c+t*w,imag:n*c-q*w-v*t+h*p}},{ctype:"number",value:{real:-g*h+f*v+e*c-k*w,imag:-g*c+f*w+v*k-h*e}},{ctype:"number",value:{real:g*q-f*n-e*t+k*p,imag:g*t-f*p-n*k+q*e}}]},{ctype:"list",value:[{ctype:"number",value:{real:-l*
-h+q*a+m*c-t*u,imag:-l*c+q*u+a*t-h*m}},{ctype:"number",value:{real:b*h-f*a-d*c+k*u,imag:b*c-f*u-a*k+h*d}},{ctype:"number",value:{real:-b*q+f*l+d*t-k*m,imag:-b*t+f*m+l*k-q*d}}]},{ctype:"list",value:[{ctype:"number",value:{real:l*v-n*a-m*w+p*u,imag:l*w-n*u-a*p+v*m}},{ctype:"number",value:{real:-b*v+g*a+d*w-e*u,imag:-b*w+g*u+a*e-v*d}},{ctype:"number",value:{real:b*n-g*l-d*p+e*m,imag:b*p-g*m-l*e+n*d}}]}]}};g.inverse=function(a){var h=a.value.length;if(h!==a.value[0].value.length)return console.log("Inverse works only for square matrices"),
-k;if(2===h)return g.scaldiv(g.det(a),g.adjoint2(a));if(3===h)return g.scaldiv(g.det(a),g.adjoint3(a));h=g.LUdecomp(a);a=a.value.length;var c=l.real(0),b=l.real(1),d=g.zerovector(l.real(a));d.value[0]=b;for(var e=Array(a),f=0;f<a;f++)e[f]=g._helper.LUsolve(h,d),d.value[f]=c,d.value[f+1]=b;e=g.turnIntoCSList(e);return e=g.transpose(e)};g.linearsolve=function(a,h){return 2===a.value.length?g.linearsolveCramer2(a,h):3===a.value.length?g.linearsolveCramer3(a,h):g.LUsolve(a,h)};g.getDiag=function(a){if(a.value.length!==
-a.value[0].value.length)return k;for(var h=Array(a.value.length),c=0;c<a.value.length;c++)h[c]=a.value[c].value[c];return g.turnIntoCSList(h)};g.getSubDiag=function(a){if(a.value.length!==a.value[0].value.length)return k;for(var h=Array(a.value.length-1),c=0;c<a.value.length-1;c++)h[c]=a.value[c+1].value[c];return g.turnIntoCSList(h)};g.eig2=function(a){var h=l.add(a.value[0].value[0],a.value[1].value[1]);a=g.det2(a.value[0],a.value[1]);var c=l.mult(h,h),b=h=l.mult(h,l.real(.5));a=l.sqrt(l.sub(l.div(c,
-l.real(4)),a));h=l.add(h,a);b=l.sub(b,a);return g.turnIntoCSList([h,b])};g.eig=function(a,h){var c=h||!0,b=a,d=l.real(b.value.length),e=d.value.real;l.real(0);var b=g._helper.QRIteration(b)[0],b=g.getDiag(b),b=g.sort1(b),d=g.idMatrix(d,d),f=Array(e),f=g.turnIntoCSList(f);if(c){for(var k,m,n,p=0,q=!1,c=0;c<e;c++)q?m=k.value[p]:(k=b.value[c],k=g.sub(a,g.scalmult(k,d)),k=g.nullSpace(k),m=k.value[0],void 0!==m&&(n=m)),void 0===m&&(m=n),1E-8>g.abs(m).value.real&&0===p&&(m=g._helper.inverseIteration(a,
-b.value[c])),f.value[c]=g._helper.isAlmostZeroVec(m)?m:g.scaldiv(g.abs(m),m),c<e-1&&((q=1E-6>l.abs(l.sub(b.value[c],b.value[c+1])).value.real)?p++:p=0);f=g.transpose(f)}return g.turnIntoCSList([b,f])};g._helper.isNormalMatrix=function(a){return 1E-10>g.abs(g.sub(a,g.transjugate(a))).value.real};g._helper.QRIteration=function(a,h){var c,b=a;c=l.real(b.value.length);var d=c.value.real,e=c.value.real;l.real(0);var f;g.idMatrix(c,c);var k=g.zeromatrix(c,c),m=g.idMatrix(c,c),n=h?h:2500,p,q,t,u=0,v=Array(e);
-for(c=0;c<n;c++){f=g._helper.getBlock(b,[e-2,e-1],[e-2,e-1]);p=g.eig2(f);f=p.value[0];p=p.value[1];g.abs(f);g.abs(p);q=b.value[e-1].value[e-1];t=l.abs(l.sub(q,f)).value.real;q=l.abs(l.sub(q,p)).value.real;p=t<q?f:p;f=g.idMatrix(l.real(e),l.real(e));p=g.scalmult(p,f);f=g.QRdecomp(g.sub(b,p));b=w.mult(f.R,f.Q);b=g.add(b,p);f.Q=g._helper.buildBlockMatrix(f.Q,g.idMatrix(l.real(u),l.real(u)));m=w.mult(m,f.Q);if(1E-48>l.abs2(b.value[b.value.length-1].value[b.value[0].value.length-2]).value.real&&1<e){v[d-
-u-1]=b.value[e-1].value[e-1];for(c=0;c<e;c++)k.value[e-1].value[c]=b.value[e-1].value[c],k.value[c].value[e-1]=b.value[c].value[e-1];b=g._helper.getBlock(b,[0,e-2],[0,e-2]);u++;e--}if(1===e){k.value[0].value[0]=b.value[0].value[0];break}if(g._helper.isUpperTriangular(b)){for(c=0;c<e;c++)k.value[c].value[c]=b.value[c].value[c];break}}return[k,m]};g.rank=function(a,h){return g.RRQRdecomp(a,h).rank};g._helper.isAlmostZeroVec=function(a){for(var h=a.value.length,c=0;c<h;c++)if(!l._helper.isAlmostZero(a.value[c]))return!1;
-return!0};g._helper.isLowerTriangular=function(a){for(var h=a.value.length,c=a.value[0].value.length,b=0;b<h;b++)for(var d=b+1;d<c;d++)if(!l._helper.isAlmostZero(a.value[b].value[d]))return!1;return!0};g._helper.isUpperTriangular=function(a){return g._helper.isLowerTriangular(g.transpose(a))};g._helper.isAlmostId=function(a){var h=a.value.length,c=l.real(h);if(h!==a.value[0].value.length)return!1;a=g.sub(a,g.idMatrix(c),c);for(c=0;c<h;c++)for(var b=0;b<h;b++)if(1E-16<l.abs(a.value[c].value[b]).value.real)return!1;
-return!0};g.nullSpace=function(a,h){var c=a.value.length,b=g.RRQRdecomp(g.transjugate(a),h),d=g.transpose(b.Q),b=c-b.rank.value.real,e=Array(b);d.value.reverse();for(var f,k=0;k<b;k++)f=d.value[k],e[k]=g.scaldiv(g.abs(f),f);e=g.turnIntoCSList(e);return 0<e.value.length?e:g.turnIntoCSList([g.zerovector(l.real(c))])};g._helper.isAlmostDiagonal=function(a){var h=a.value.length;l.real(h);l.real(0);if(h!==a.value[0].value.length)return!1;for(var c=0;c<h;c++)for(var b=0;b<h;b++)if(c!==b&&1E-16<l.abs(a.value[c].value[b]).value.real)return!1;
-return!0};g._helper.inverseIteration=function(a,h){console.log("warning: code untested");for(var c=a.value.length,b=Array(c),d=0;d<c;d++)b[d]=2*Math.random()-.5;for(var b=g.realVector(b),c=g.idMatrix(l.real(c),l.real(c)),d=l.add(h,l.real(.1*Math.random()-.5)),e=0;100>e;e++)b=g.scaldiv(g.abs(b),b),b=g.LUsolve(g.sub(a,g.scalmult(d,c)),JSON.parse(JSON.stringify(b)));return g.scaldiv(g.abs(b),b)};g._helper.toHessenberg=function(a){var h=JSON.parse(JSON.stringify(a)),c=h.value.length,b=l.real(c-1),d=l.real(c);
-l.real(1);if(g._helper.isUpperTriangular(h))return[g.idMatrix(b,b),a];var e;a=g.idMatrix(d,d);for(var f,d=1;d<c-1;d++)e=g.column(h,l.real(d)),e.value=e.value.splice(d),f=g.abs2(e).value.real,1E-16<f&&(e=g._helper.getHouseHolder(e),a=w.mult(a,e),h=w.mult(w.mult(e,h),e)),b.value.real--;return[a,h]};g._helper.swapEl=function(a,h,c){var b;"[object Array]"===Object.prototype.toString.call(a)?(b=a[h],a[h]=a[c],a[c]=b):"list"===a.ctype&&(b=a.value[h],a.value[h]=a.value[c],a.value[c]=b)};g.RRQRdecomp=function(a,
-h){var c=Math.sqrt(l.eps);void 0!==h&&(c=.1*h.value.real);var c=c*c,b,d=a.value.length,e=l.real(d),f=l.real(1),k=g._helper.unitvector(l.real(a.value.length),f),m=g.idMatrix(e,e),n=JSON.parse(JSON.stringify(a)),p=g.transpose(a),q=Array(d);for(b=0;b<d;b++)q[b]=g.abs2(p.value[b]);q=g.turnIntoCSList(q);p=Array(d);for(b=0;b<d;b++)p[b]=b;b=g.maxIndex(q,l.abs);for(var t=q.value[b],u=0,v=0;1E-16<l.abs2(t).value.real;v++){u++;g._helper.swapColumn(n,v,b);g._helper.swapEl(q,v,b);g._helper.swapEl(p,v,b);b=g._helper.getBlock(n,
-[v],[v]);b=g.column(b,f);t=g.abs2(b).value.real;1E-8<t&&(b=g._helper.getHouseHolder(b),b=g._helper.buildBlockMatrix(g.idMatrix(l.real(v),l.real(v)),b),m=w.mult(m,g.transjugate(b)),n=w.mult(b,n));for(b=v+1;b<d;b++)q.value[b]=l.sub(q.value[b],l.mult(n.value[v].value[b],l.conjugate(n.value[v].value[b])));b=g.maxIndex(q,l.abs2,v+1);t=q.value[b];if(v+2===d){l.abs(t).value.real>c&&u++;break}e=l.sub(e,f);k.value=k.value.splice(0,k.value.length-1)}return{Q:m,R:n,P:g.turnIntoCSList(p),rank:l.real(u)}};g._helper.getHouseHolder=
-function(a){var h=l.real(a.value.length);if(1E-16>g.abs2(a))return g.idMatrix(h,h);var c,b=l.real(1),d=g._helper.unitvector(l.real(a.value.length),b);c=g._helper.QRgetAlpha(a,0);c=g.sub(a,g.scalmult(c,d));c=g.scaldiv(g.abs(c),c);a=l.div(g.sesquilinearproduct(a,c),g.sesquilinearproduct(c,a));h=g.idMatrix(h,h);return h=g.sub(h,g.scalmult(l.add(b,a),g._helper.transposeMult(c,g.conjugate(c))))};g._helper.reOrderbyPivots=function(a,h){for(var c=a.value.length.length,b=g.transpose(a),c=Array(c),d=0;d<h.length;d++)c[h[d]]=
-b.value[d];c=g.turnIntoCSList(c);return g.transpose(c)};g.QRdecomp=function(a){var h,c=a.value.length,b=l.real(c);if(g._helper.isUpperTriangular(a))return{Q:g.idMatrix(b,b),R:a};var d=l.real(1),e=g._helper.unitvector(l.real(a.value.length),d),f,k=g.idMatrix(b,b);a=JSON.parse(JSON.stringify(a));for(var m=0;;m++){h=g._helper.getBlock(a,[m],[m]);h=g.column(h,d);f=g.abs2(h).value.real;1E-8<f&&(h=g._helper.getHouseHolder(h),h=g._helper.buildBlockMatrix(g.idMatrix(l.real(m),l.real(m)),h),k=w.mult(k,g.transjugate(h)),
-a=w.mult(h,a));if(m+2===c)break;b=l.sub(b,d);e.value=e.value.splice(0,e.value.length-1)}return{Q:k,R:a}};g._helper.swapColumn=function(a,h,c){for(var b,d=0;d<a.value.length;d++)b=a.value[d].value[h],a.value[d].value[h]=a.value[d].value[c],a.value[d].value[c]=b};g._helper.buildBlockMatrix=function(a,h){if(0===a.value.length)return h;if(0===h.value.length)return a;for(var c=a.value.length,b=a.value[0].value.length,d=b+h.value[0].value.length,d=g.zeromatrix(l.real(c+h.value.length),l.real(d)),e=0;e<
-a.value.length;e++)for(var f=0;f<a.value[0].value.length;f++)d.value[e].value[f]=a.value[e].value[f];for(e=0;e<h.value.length;e++)for(f=0;f<h.value[0].value.length;f++)d.value[c+e].value[b+f]=h.value[e].value[f];return d};g._helper.getBlock=function(a,h,c){a=JSON.parse(JSON.stringify(a));var b=h[0],d=c[0];h=void 0===h[1]?a.value.length:h[1];c=void 0===c[1]?a.value[0].value.length:c[1];h++;c++;a.value=a.value.slice(b,h);for(b=0;b<a.value.length;b++)a.value[b].value=a.value[b].value.slice(d,c);return a};
-g._helper.setBlock=function(a,h,c){a=JSON.parse(JSON.stringify(a));var b=c[0];c=c[1];for(var d=h.value.length,g=h.value[0].value.length,e=0;e<d;e++)for(var f=0;f<g;f++)a.value[b+e].value[c+f]=h.value[e].value[f];return a};g._helper.transposeMult=function(a,h){if(a.value.length!==h.value.length)return k;for(var c=a.value.length,b=Array(c),d=0;d<c;d++)b[d]=g.scalmult(a.value[d],h);return g.turnIntoCSList(b)};g._helper.QRgetAlpha=function(a,h){return 0>a.value[h].value.real?g.abs(a):l.neg(g.abs(a))};
-g.LUdecomp=function(a){a=JSON.parse(JSON.stringify(a));var h,c,b,d,g,e=0,f,k=a.value.length,m=k-1,n=Array(k);for(b=0;b<k;++b){g=b;d=a.value[b];f=l.abs(d.value[b]).value.real;for(c=b+1;c<k;++c)h=l.abs(a.value[c].value[b]),f<h.value.real&&(f=h.value.real,g=c);f<l.eps&&console.log("Warning: singular matrix!");n[b]=g;g!==b&&(a.value[b]=a.value[g],a.value[g]=d,d=a.value[b],e++);c=d.value[b];for(h=b+1;h<k;++h)a.value[h].value[b]=l.div(a.value[h].value[b],c);for(h=b+1;h<k;++h){g=a.value[h];for(c=b+1;c<m;++c)g.value[c]=
-l.sub(g.value[c],l.mult(g.value[b],d.value[c])),++c,g.value[c]=l.sub(g.value[c],l.mult(g.value[b],d.value[c]));c===m&&(g.value[c]=l.sub(g.value[c],l.mult(g.value[b],d.value[c])))}}return{LU:a,P:n,TransPos:e}};g.LUsolve=function(a,h){var c=g.LUdecomp(a);return g._helper.LUsolve(c,h)};g._helper.LUsolve=function(a,h){var c=JSON.parse(JSON.stringify(h)),b,d=a.LU,g=d.value.length,e=JSON.parse(JSON.stringify(c)),f=a.P,k;for(b=g-1;-1!==b;--b)e.value[b]=c.value[b];for(b=0;b<g;++b)for(c=f[b],f[b]!==b&&(k=
-e.value[b],e.value[b]=e.value[c],e.value[c]=k),k=d.value[b],c=0;c<b;++c)e.value[b]=l.sub(e.value[b],l.mult(e.value[c],k.value[c]));for(b=g-1;0<=b;--b){k=d.value[b];for(c=b+1;c<g;++c)e.value[b]=l.sub(e.value[b],l.mult(e.value[c],k.value[c]));e.value[b]=l.div(e.value[b],k.value[b])}return e};g.linearsolveCramer2=function(a,h){var c=g.column(a,l.real(1)),b=g.column(a,l.real(2)),d=g.det2(c,b);l._helper.isZero(d)&&console.log("A is not regular!");b=g.det2(h,b);b=l.div(b,d);c=g.det2(c,h);c=l.div(c,d);return g.turnIntoCSList([b,
-c])};g.linearsolveCramer3=function(a,h){var c=g.column(a,l.real(1)),b=g.column(a,l.real(2)),d=g.column(a,l.real(3)),e=g.det3(c,b,d);l._helper.isZero(e)&&console.log("A is not regular!");var f=g.det3(h,b,d),d=g.det3(c,h,d),c=g.det3(c,b,h),f=g.turnIntoCSList([f,d,c]);return f=g.scaldiv(e,f)};g.linearsolveCGNR=function(a,h){var c=g.transpose(a),b=w.mult(c,a),c=w.mult(c,h);return g.linearsolveCG(b,c)};g.linearsolveCG=function(a,h){var c,b,d,e,f,k;e=h;b=c=g.sub(h,w.mult(a,h));for(var m=Math.ceil(1.2*a.value.length),
-n=0;n<m;){n++;f=w.mult(a,b);k=d=g.scalproduct(c,c);d=l.div(d,g.scalproduct(b,f));e=g.add(e,w.mult(d,b));c=g.sub(c,w.mult(d,f));if(g.abs(c).value.real<l.eps)break;d=g.scalproduct(c,c);d=l.div(d,k);b=g.add(c,w.mult(d,b))}n>=m&&console.log("CG did not converge");return e};g.det=function(a){if(1===a.value.length)return a.value[0].value[0];if(2===a.value.length)return g.det2(a.value[0],a.value[1]);if(3===a.value.length)return g.det3(a.value[0],a.value[1],a.value[2]);if(4===a.value.length)return g.det4m(a);
-var h=a.value.length,c=l.real(1),b,d,e=JSON.parse(JSON.stringify(a)),f,k,m,n;for(a=0;a<h-1;a++){d=a;for(b=a+1;b<h;b++)l.abs(e.value[b].value[a]).value.real>l.abs(e.value[d].value[a]).value.real&&(d=b);d!==a&&(b=e.value[d],e.value[d]=e.value[a],e.value[a]=b,c=l.neg(c));f=e.value[a];for(b=a+1;b<h;b++){k=e.value[b];m=l.div(k.value[a],f.value[a]);for(d=a+1;d<h-1;d+=2)n=d+1,k.value[d]=l.sub(k.value[d],l.mult(f.value[d],m)),k.value[n]=l.sub(k.value[n],l.mult(f.value[n],m));d!==h&&(k.value[d]=l.sub(k.value[d],
-l.mult(f.value[d],m)))}if(l._helper.isZero(f.value[a]))return l.real(0);c=l.mult(c,f.value[a])}return l.mult(c,e.value[a].value[a])};g.LUdet=function(a){a=g.LUdecomp(a);for(var h=a.LU,c=h.value.length,b=h.value[0].value[0],d=1;d<c;d++)b=l.mult(b,h.value[d].value[d]);1===a.TransPos%2&&(b=l.neg(b));return b};g.getField=function(a,h){var c;if("homog"===h){if(g._helper.isNumberVecN(a,3))return a;if(g._helper.isNumberVecN(a,2))return g.turnIntoCSList([a.value[0],a.value[1],l.real(1)])}if("xy"===h){if(g._helper.isNumberVecN(a,
-2))return a;if(g._helper.isNumberVecN(a,3))return g.turnIntoCSList([l.div(a.value[0],a.value[2]),l.div(a.value[1],a.value[2])])}if("x"===h&&g.isNumberVector(a)){c=a.value.length;if(0<c&&3!==c)return a.value[0];if(3===c)return"Point"===a.usage?l.div(a.value[0],a.value[2]):a.value[0]}if("y"===h&&g.isNumberVector(a)){c=a.value.length;if(1<c&&3!==c)return a.value[1];if(3===c)return"Point"===a.usage?l.div(a.value[1],a.value[2]):a.value[1]}return"z"===h&&g.isNumberVector(a)&&(c=a.value.length,2<c)?a.value[2]:
-k};g.nil=g.turnIntoCSList([]);g.ofGeos=function(a){return g.turnIntoCSList(a.map(function(a){return{ctype:"geo",value:a}}))};var Ka={key:function(a){if("string"===a.ctype)return"s"+a.value.length+":"+a.value+";";if("number"===a.ctype)return"n"+a.value.real+","+a.value.imag+";";if("list"===a.ctype)return"l"+a.value.length+":"+a.value.map(Ka.key).join(",")+";";if("boolean"===a.ctype)return"b"+a.value+";";if("dict"===a.ctype)return a=Object.keys(a.value).sort(),"d"+a.length+":"+a.join(",")+";";"undefined"!==
-a.ctype&&ia.err("Bad dictionary key: "+ba(a));return"undef"},create:function(){return{ctype:"dict",value:{}}},clone:function(a){var h=Ka.create(),c;for(c in a.value)a.value.hasOwnProperty(c)&&(h.value[c]=a.value[c]);return h},put:function(a,h,c){a.value[Ka.key(h)]={key:h,value:c}},get:function(a,h,c){return(a=a.value[Ka.key(h)])?a.value:c},niceprint:function(a){return"{"+Object.keys(a.value).sort().map(function(h){h=a.value[h];return ba(h.key)+":"+ba(h.value)}).join(", ")+"}"}},w={_helper:{},order:{undefined:0,
-"boolean":1,number:2,term:3,atomic:4,variable:5,geo:6,string:7,list:8},string:function(a){return{ctype:"string",value:a}},bool:function(a){return{ctype:"boolean",value:a}},not:function(a){return w.bool(!a.value)},isLessThan:function(a,h){return-1===w.compare(a,h)},isEqual:function(a,h){return 0===w.compare(a,h)},compareResults:function(a,h){return w.compare(a.result,h.result)},compare:function(a,h){if(a.ctype!==h.ctype)return w.order[a.ctype]-w.order[h.ctype];if("number"===a.ctype)return l._helper.compare(a,
-h);if("list"===a.ctype)return g._helper.compare(a,h);if("geo"===a.ctype)return a.value.name===h.value.name?0:a.value.name<h.value.name?-1:1;if("string"===a.ctype)return a.value===h.value?0:a.value<h.value?-1:1;if("boolean"===a.ctype)return a.value===h.value?0:!1===a.value?-1:1},add:function(a,h){return"void"===a.ctype&&"number"===h.ctype||"void"===a.ctype&&"list"===h.ctype?h:"number"===a.ctype&&"number"===h.ctype?l.add(a,h):"string"===a.ctype||"string"===h.ctype?{ctype:"string",value:ba(a)+ba(h)}:
-"list"===a.ctype&&"list"===h.ctype?g.add(a,h):k},sub:function(a,h){return"void"===a.ctype&&"number"===h.ctype?l.neg(h):"void"===a.ctype&&"list"===h.ctype?g.neg(h):"number"===a.ctype&&"number"===h.ctype?l.sub(a,h):"list"===a.ctype&&"list"===h.ctype?g.sub(a,h):k},mult:function(a,h){return"number"===a.ctype&&"number"===h.ctype?l.mult(a,h):"number"===a.ctype&&"list"===h.ctype?g.scalmult(a,h):"list"===a.ctype&&"number"===h.ctype?g.scalmult(h,a):"list"===a.ctype&&"list"===h.ctype?g.mult(a,h):k},div:function(a,
-h){return"number"===a.ctype&&"number"===h.ctype?l.div(a,h):"list"===a.ctype&&"number"===h.ctype?g.scaldiv(h,a):k},max:function(a,h){return"number"===a.ctype&&"number"===h.ctype?l.max(a,h):"list"===a.ctype&&"list"===h.ctype?g.max(a,h):k},min:function(a,h){return"number"===a.ctype&&"number"===h.ctype?l.min(a,h):"list"===a.ctype&&"list"===h.ctype?g.min(a,h):k},wrap:function(a){if("number"===typeof a)return l.real(a);if("object"===typeof a&&void 0!==a.length){for(var h=[],c=0;c<a.length;c++)h[c]=w.wrap(a[c]);
-return g.turnIntoCSList(h)}return"string"===typeof a?{ctype:"string",value:a}:"boolean"===typeof a?{ctype:"boolean",value:a}:k},unwrap:function(a){if("object"!==typeof a||null===a)return a;if(Array.isArray(a))return a.map(w.unwrap);switch(a.ctype){case "string":case "boolean":return a.value;case "number":return 0===a.value.imag?a.value.real:{r:a.value.real,i:a.value.imag};case "list":return a.value.map(w.unwrap);default:return null}},withUsage:function(a,h){return{ctype:a.ctype,value:a.value,usage:h}},
-wrapJSON:function(a){switch(typeof a){case "number":return l.real(a);case "string":return w.string(a);case "boolean":return w.bool(a);case "object":if(null===a)return k;if(Array.isArray(a))return g.turnIntoCSList(a.map(w.wrapJSON));var h=Ka.create(),c;for(c in a)Ka.put(h,w.string(c),w.wrapJSON(a[c]));return h;default:return console.log("Failed to convert "+typeof a+" to CindyJS data type"),k}},identity:function(a){return a}},Za={},R={};R[":"]=C(":");R["\u00b0"]=function(a,h){var c=B(a[0]);return"number"===
-c.ctype&&"void"===a[1].ctype?w.withUsage(l.realmult(Math.PI/180,c),"Angle"):k};R._=oc;R["^"]=Mc;R["\u221a"]=function(a,h){return"void"===a[0].ctype?t.sqrt$1([a[1]],h):k};R["*"]=Kc;R["\u00d7"]=Sc;R["/"]=Lc;R["+"]=Jc;R["-"]=$b;R["!"]=function(a,h){var c=B(a[1]);return"void"===a[0].ctype&&"boolean"===c.ctype?{ctype:"boolean",value:!c.value}:k};R["=="]=pb;R["~="]=Yb;R["~<"]=function(a,h){var c=B(a[0]),b=B(a[1]);return"number"===c.ctype&&"number"===b.ctype&&l._helper.isAlmostReal(c)&&l._helper.isAlmostReal(b)?
-{ctype:"boolean",value:c.value.real-b.value.real<=-l.eps}:k};R["~>"]=function(a,h){var c=B(a[0]),b=B(a[1]);return"number"===c.ctype&&"number"===b.ctype&&l._helper.isAlmostReal(c)&&l._helper.isAlmostReal(b)?{ctype:"boolean",value:c.value.real-b.value.real>=l.eps}:k};R["=:="]=C("=:=");R[">="]=function(a,h){var c=B(a[0]),b=B(a[1]);return"number"===c.ctype&&"number"===b.ctype&&l._helper.isAlmostReal(c)&&l._helper.isAlmostReal(b)?{ctype:"boolean",value:c.value.real>=b.value.real}:"string"===c.ctype&&"string"===
-b.ctype?{ctype:"boolean",value:c.value>=b.value}:k};R["<="]=function(a,h){var c=B(a[0]),b=B(a[1]);return"number"===c.ctype&&"number"===b.ctype&&l._helper.isAlmostReal(c)&&l._helper.isAlmostReal(b)?{ctype:"boolean",value:c.value.real<=b.value.real}:"string"===c.ctype&&"string"===b.ctype?{ctype:"boolean",value:c.value<=b.value}:k};R["~>="]=function(a,h){var c=B(a[0]),b=B(a[1]);return"number"===c.ctype&&"number"===b.ctype&&l._helper.isAlmostReal(c)&&l._helper.isAlmostReal(b)?{ctype:"boolean",value:c.value.real-
-b.value.real>-l.eps}:k};R["~<="]=function(a,h){var c=B(a[0]),b=B(a[1]);return"number"===c.ctype&&"number"===b.ctype&&l._helper.isAlmostReal(c)&&l._helper.isAlmostReal(b)?{ctype:"boolean",value:c.value.real-b.value.real<l.eps}:k};R[">"]=function(a,h){var c=B(a[0]),b=B(a[1]);return"number"===c.ctype&&"number"===b.ctype&&l._helper.isAlmostReal(c)&&l._helper.isAlmostReal(b)?{ctype:"boolean",value:c.value.real>b.value.real}:"string"===c.ctype&&"string"===b.ctype?{ctype:"boolean",value:c.value>b.value}:
-k};R["<"]=function(a,h){var c=B(a[0]),b=B(a[1]);return"number"===c.ctype&&"number"===b.ctype&&l._helper.isAlmostReal(c)&&l._helper.isAlmostReal(b)?{ctype:"boolean",value:c.value.real<b.value.real}:"string"===c.ctype&&"string"===b.ctype?{ctype:"boolean",value:c.value<b.value}:k};R["<>"]=Gc;R["\u2208"]=function(a,h){var c=A(a[0]),b=A(a[1]);return"list"===b.ctype?g.contains(b,c):k};R["\u2209"]=function(a,h){var c=A(a[0]),b=A(a[1]);return"list"===b.ctype?w.not(g.contains(b,c)):k};R["&"]=Hc;R["%"]=Ic;
-R["!="]=Gc;R["~!="]=function(a,h){return w.not(Yb(a,h))};R[".."]=function(a,h){var c=A(a[0]),b=A(a[1]);return"number"===c.ctype&&"number"===b.ctype?g.sequence(c,b):k};R["++"]=Tc;R["--"]=Vc;R["~~"]=Uc;R[":>"]=Wc;R["<:"]=Xc;R["="]=bb;R[":="]=function(a,h,c){h="undefined"===a[1].ctype;if("undefined"===a[0].ctype||h)return k;if("function"===a[0].ctype){h=a[0].oper;var b=a[0].args,d=a[1],g=1;if(Za.hasOwnProperty(h)){g=Za[h];if(g.definer===c)return k;g=g.generation+1}Za[h]={oper:h,body:d,arglist:b,definer:c,
-generation:g}}"variable"===a[0].ctype&&J.setvar(a[0].name,a[1]);return k};R[":=_"]=function(a,h){if("void"!==a[1].ctype)return k;"function"===a[0].ctype&&delete Za[a[0].oper];return k};R["::="]=C("::=");R[";"]=function(a,h){var c="void"===a[0].ctype,b="void"===a[1].ctype;if(c&&b)return k;if(!c&&b)return A(a[0]);c||b||A(a[0]);return b?k:A(a[1])};var t={},D={evaluate:function(a,h,c){if(Za.hasOwnProperty(a)){a=Za[a];if(void 0===a)h=k;else{var b=[];for(c=0;c<a.arglist.length;c++)b[c]=A(h[c]);for(c=0;c<
-a.arglist.length;c++)J.newvar(a.arglist[c].name),J.setvar(a.arglist[c].name,b[c]);J.pushVstack("*");h=A(a.body);J.cleanVstack();for(c=0;c<a.arglist.length;c++)J.removevar(a.arglist[c].name)}return h}if(b=t[a])return b(h,c);var d=a.lastIndexOf("$");if(-1!==d&&(d=a.substr(0,d),b=t[d]))return b(h,c);ia.err("Called undefined function "+d+" (as "+a+")");return k},equals:function(a,h){return"number"===a.ctype&&"number"===h.ctype?{ctype:"boolean",value:a.value.real===h.value.real&&a.value.imag===h.value.imag}:
-"string"===a.ctype&&"string"===h.ctype||"boolean"===a.ctype&&"boolean"===h.ctype?{ctype:"boolean",value:a.value===h.value}:"list"===a.ctype&&"list"===h.ctype?g.equals(a,h):"geo"===a.ctype&&"geo"===h.ctype?{ctype:"boolean",value:a.value===h.value}:{ctype:"boolean",value:!1}}},J={};J.vars=function(){var a={pi:l.real(Math.PI),"\u03c0":l.real(Math.PI),i:l.complex(0,1),"true":w.bool(!0),"false":w.bool(!1),"#":k,nil:g.turnIntoCSList([]),newline:w.string("\n"),tab:w.string("\t")},h=[],c;for(c in a)h[c]=
-[a[c]];return h}();J.isVariable=function(a){return this.vars.hasOwnProperty(a)};J.create=function(a){if(this.vars.hasOwnProperty(a))return this.vars[a];var h=[null];return this.vars[a]=h};J.newvar=function(a){a=this.vars[a];a.push(k);return a};J.removevar=function(a){var h=this.vars[a];0===h.length&&console.error("Removing non-existing "+a);h.pop();0===h.length&&console.warn("Removing last "+a)};J.setvar=function(a,h){var c=this.vars[a];0===c.length&&console.error("Setting non-existing variable "+
-a);void 0===h&&(console.error("Setting variable "+a+" to undefined value"),h=k);if("undefined"===h.ctype)c[c.length-1]=h;else{var b=h;null===b&&(b=k);c[c.length-1]=b}};J.undefinedWarning={};J.getvar=function(a){var h=this.vars[a];0===h.length&&console.error("Getting non-existing variable "+a);h=h[h.length-1];if(null===h){if(u.csnames.hasOwnProperty(a))return{ctype:"geo",value:u.csnames[a]};console&&console.log&&void 0===this.undefinedWarning[a]&&(this.undefinedWarning[a]=!0,console.log("Warning: Accessing undefined variable: "+
-a));return k}return h};J.dump=function(a){var h=this.vars[a];console.log("*** Dump "+a);for(a=0;a<h.length;a++)console.log(a+":> "+ba(h[a]))};J.vstack=[];J.pushVstack=function(a){this.vstack.push(a)};J.popVstack=function(){this.vstack.pop()};J.cleanVstack=function(){for(var a=this.vstack;0<a.length&&"*"!==a[a.length-1];)this.removevar(a[a.length-1]),a.pop();0<a.length&&a.pop()};var ya={generalFields:{color:"color",colorhsb:"",size:"size",alpha:"alpha",fillcolor:"fillcolor",fillalpha:"fillalpha",isshowing:"isshowing",
-visible:"visible",name:"name",caption:"caption",trace:"",tracelength:"",selected:"",labeled:"labeled",labelled:"labeled"},getGeoField:function(a,h){return"undefined"!==typeof u.csnames[a]?ya.getField(u.csnames[a],h):k},setGeoField:function(a,h,c){return"undefined"!==typeof u.csnames[a]?ya.setField(u.csnames[a],h,c):k},getField:function(a,h){var c;if("P"===a.kind){if("xy"===h)return c=g.dehom(a.homog),w.withUsage(c,"Point");if("homog"===h)return w.withUsage(a.homog,"Point");if("x"===h)return l.div(a.homog.value[0],
-a.homog.value[2]);if("y"===h)return l.div(a.homog.value[1],a.homog.value[2])}if("L"===a.kind||"S"===a.kind){if("homog"===h)return w.withUsage(a.homog,"Line");if("angle"===h)return c=g.eucangle(g.ey,a.homog),w.withUsage(c,"Angle");if("slope"===h)return l.neg(l.div(a.homog.value[0],a.homog.value[1]))}if("Tr"===a.kind&&"matrix"===h)return a.matrix;if("C"===a.kind){if("radius"===h){var b=a.matrix;c=b.value[0].value[0];var d=b.value[0].value[2],e=b.value[1].value[2],b=b.value[2].value[2];l.mult(c,c);d=
-l.div(d,c);e=l.div(e,c);c=l.div(b,c);return c=l.sqrt(l.sub(l.add(l.mult(d,d),l.mult(e,e)),c))}if("size"===h)return a.size;if("matrix"===h)return a.matrix;if("center"===h)return c=m._helper.CenterOfConic(a.matrix),c=g.dehom(c),w.withUsage(c,"Point");if("dualMatrix"===h)return g.normalizeMax(g.adjoint3(a.matrix))}if("Text"===a.kind){if("pressed"===h)return a.checkbox?w.bool(a.checkbox.checked):w.bool(!1);if("xy"===h)return c=g.dehom(a.homog),w.withUsage(c,"Point");if("homog"===h)return w.withUsage(a.homog,
-"Point");if("x"===h)return l.div(a.homog.value[0],a.homog.value[2]);if("y"===h)return l.div(a.homog.value[1],a.homog.value[2])}if("trace"===h)return w.bool(!!a.drawtrace);if(ya.generalFields[h])return(c=a[ya.generalFields[h]])&&c.ctype?c:"object"!==typeof c?w.wrap(c):k;if(a.behavior){if("mass"===h&&"Mass"===a.behavior.type)return l.real(a.behavior.mass);if("radius"===h&&"Mass"===a.behavior.type)return l.real(a.behavior.radius);if("charge"===h&&"Mass"===a.behavior.type)return l.real(a.behavior.charge);
-if("friction"===h&&"Mass"===a.behavior.type)return l.real(a.behavior.friction);if("vx"===h&&"Mass"===a.behavior.type)return l.real(a.behavior.vx);if("vy"===h&&"Mass"===a.behavior.type)return l.real(a.behavior.vy);if("v"===h&&"Mass"===a.behavior.type)return g.realVector([a.behavior.vx,a.behavior.vy]);if("fx"===h&&"Mass"===a.behavior.type)return l.real(a.behavior.fx);if("fy"===h&&"Mass"===a.behavior.type)return l.real(a.behavior.fy);if("f"===h&&"Mass"===a.behavior.type)return g.realVector([a.behavior.fx,
-a.behavior.fy])}c=m[a.type]["get_"+h];return"function"===typeof c?c(a):k},setField:function(a,h,c){"color"===h&&g._helper.isNumberVecN(c,3)&&(a.color=c);"size"===h&&"number"===c.ctype&&(a.size=c);"alpha"===h&&"number"===c.ctype&&(a.alpha=c);"fillcolor"===h&&g._helper.isNumberVecN(c,3)&&(a.fillcolor=c);"fillalpha"===h&&"number"===c.ctype&&(a.fillalpha=c);"visible"===h&&"boolean"===c.ctype&&(a.visible=c.value);"pinned"===h&&"boolean"===c.ctype&&(a.pinned=c.value);"labeled"!==h&&"labelled"!==h||"boolean"!==
-c.ctype||(a.labeled=c.value);"printlabel"===h&&(a.printname=ba(c));"trace"===h&&"boolean"===c.ctype&&(c.value&&!a.drawtrace?(a.drawtrace=!0,qd(a)):a.drawtrace=c.value);"P"===a.kind&&a.movable&&("xy"===h&&g._helper.isNumberVecN(c,2)&&Ia(a,g.turnIntoCSList([c.value[0],c.value[1],l.real(1)]),"homog"),"xy"===h&&g._helper.isNumberVecN(c,3)&&Ia(a,c,"homog"),"x"===h&&"number"===c.ctype&&Ia(a,g.turnIntoCSList([l.mult(c,a.homog.value[2]),a.homog.value[1],a.homog.value[2]]),"homog"),"y"===h&&"number"===c.ctype&&
-Ia(a,g.turnIntoCSList([a.homog.value[0],l.mult(c,a.homog.value[2]),a.homog.value[2]]),"homog"),"homog"===h&&g._helper.isNumberVecN(c,3)&&Ia(a,c,"homog"));"homog"===h&&"L"===a.kind&&a.movable&&g._helper.isNumberVecN(c,3)&&Ia(a,c,"homog");"Text"===a.kind&&("pressed"===h&&"boolean"===c.ctype&&a.checkbox&&(a.checkbox.checked=c.value),a.movable&&("xy"===h?g._helper.isNumberVecN(c,2)?a.homog=g.turnIntoCSList([c.value[0],c.value[1],l.real(1)]):g._helper.isNumberVecN(c,3)&&(a.homog=c):"homog"===h&&g._helper.isNumberVecN(c,
-3)?a.homog=c:"x"===h&&"number"===c.ctype?a.homog=g.turnIntoCSList([l.mult(c,a.homog.value[2]),a.homog.value[1],a.homog.value[2]]):"y"===h&&"number"===c.ctype&&(a.homog=g.turnIntoCSList([a.homog.value[0],l.mult(c,a.homog.value[2]),a.homog.value[2]]))));a.behavior&&("mass"===h&&"Mass"===a.behavior.type&&"number"===c.ctype&&(a.behavior.mass=c.value.real),"mass"===h&&"Sun"===a.behavior.type&&"number"===c.ctype&&(a.behavior.mass=c.value.real),"friction"===h&&"Mass"===a.behavior.type&&"number"===c.ctype&&
-(a.behavior.friction=c.value.real),"charge"===h&&"Mass"===a.behavior.type&&"number"===c.ctype&&(a.behavior.charge=c.value.real),"radius"===h&&"Mass"===a.behavior.type&&"number"===c.ctype&&(a.behavior.radius=c.value.real),"vx"===h&&"Mass"===a.behavior.type&&"number"===c.ctype&&(a.behavior.vx=c.value.real),"vy"===h&&"Mass"===a.behavior.type&&"number"===c.ctype&&(a.behavior.vy=c.value.real),"v"===h&&"Mass"===a.behavior.type&&g._helper.isNumberVecN(c,2)&&(a.behavior.vx=c.value[0].value.real,a.behavior.vy=
-c.value[1].value.real));h=m[a.type]["set_"+h];if("function"===typeof h)return h(a,c)}};t.version$0=function(a,h){var c=["CindyJS"].concat(ne);return g.turnIntoCSList(c.map(w.wrap))};t.clearconsole$0=function(a,h){ia.clear()};t.err$1=function(a,h){var c="",b;"variable"===a[0].ctype?(c=a[0].name,b=J.getvar(a[0].name)):b=a[0];b=c+" ===> "+ba(A(b));ia.err(b);return k};t.errc$1=function(a,h){var c;"variable"===a[0].ctype?(c=A(J.getvar(a[0].name)),console.log(a[0].name+" ===> "+ba(c))):(c=A(a[0]),console.log(" ===> "+
-ba(c)));return k};t.print$1=function(a,h){ia.out(ba(A(a[0])),!0);return k};t.println$1=function(a,h){ia.out(ba(A(a[0])));return k};t.assert$2=function(a,h){var c=A(a[0]);if("boolean"===c.ctype){if(!1===c.value)return t.println$1([a[1]],h)}else ia.err("Condition for assert is not boolean");return k};t.dump$1=function(a,h){console.log(JSON.stringify(a[0]));return k};t.repeat$2=function(a,h){return t.repeat$3([a[0],null,a[1]],h)};t.repeat$3=function(a,h){var c=B(a[0]),b="#";null!==a[1]&&"variable"===
-a[1].ctype&&(b=a[1].name);if("number"!==c.ctype)return k;var c=Math.round(c.value.real),d=1,g=1,e=c+1,f=!1,l=!1,m=!1,n;void 0!==h.start&&(n=A(h.start),"number"===n.ctype&&(f=!0,g=n.value.real));void 0!==h.step&&(n=A(h.step),"number"===n.ctype&&(m=!0,d=n.value.real));void 0!==h.stop&&(n=A(h.stop),"number"===n.ctype&&(l=!0,e=n.value.real));!f||l||m||(e=d*c+g);f||!l||m||(g=-d*(c-1)+e,e+=d);f||l||!m||(e=d*c+g);f&&l&&!m&&(d=(e-g)/(c-1),e+=d);f&&!l&&m&&(e=d*c+g);!f&&l&&m&&(g=-d*(c-1)+e,e+=d);f&&l&&m&&(e+=
-d);(g<=e&&0<d||g>=e&&0>d)&&f&&l&&m&&(c=Math.floor((e-g)/d));J.newvar(b);e=k;for(f=0;f<c;f++)J.setvar(b,{ctype:"number",value:{real:f*d+g,imag:0}}),e=A(a[2]);J.removevar(b);return e};t.while$2=function(a,h){for(var c=a[1],b=a[0],d=A(b),e=k;"list"!==d.ctype&&d.value;)e=A(c),d=A(b);return e};t.apply$2=function(a,h){return t.apply$3([a[0],null,a[1]],h)};t.apply$3=function(a,h){var c=B(a[0]);if("list"!==c.ctype)return k;var b="#";null!==a[1]&&"variable"===a[1].ctype&&(b=a[1].name);var c=c.value,d=[];J.newvar(b);
-for(var e=0;e<c.length;e++)J.setvar(b,c[e]),d[e]=A(a[2]);J.removevar(b);return{ctype:"list",value:d}};t.forall$2=function(a,h){return t.forall$3([a[0],null,a[1]],h)};t.forall$3=function(a,h){var c=B(a[0]);if("list"!==c.ctype)return k;var b="#";null!==a[1]&&"variable"===a[1].ctype&&(b=a[1].name);c=c.value;J.newvar(b);for(var d,e=0;e<c.length;e++)J.setvar(b,c[e]),d=A(a[2]);J.removevar(b);return d};t.select$2=function(a,h){return t.select$3([a[0],null,a[1]],h)};t.select$3=function(a,h){var c=B(a[0]);
-if("list"!==c.ctype)return k;var b="#";null!==a[1]&&"variable"===a[1].ctype&&(b=a[1].name);var c=c.value,d=[];J.newvar(b);for(var e=0,g=0;g<c.length;g++){J.setvar(b,c[g]);var f=A(a[2]);"boolean"===f.ctype&&!0===f.value&&(d[e]=c[g],e++)}J.removevar(b);return{ctype:"list",value:d}};t.flatten$1=function(a,h){function c(a,h){return-1===h||"list"!==a.ctype?a:[].concat.apply([],a.value.map(function(a){return c(a,h-1)}))}var b=B(a[0]);if("list"!==b.ctype)return b;var d=h.levels;void 0===d?d=1:(d=A(d),d=
-"number"===d.ctype?d.value.real:"string"===d.ctype&&"all"===d.value?-2:1);return{ctype:"list",value:c(b,d)}};t.createvar$1=function(a,h){"variable"===a[0].ctype&&J.newvar(a[0].name);return k};t.local=function(a,h){for(var c=0;c<a.length;c++)"variable"===a[c].ctype&&J.newvar(a[c].name);return k};t.removevar$1=function(a,h){var c=A(a[0]);"variable"===a[0].ctype&&J.removevar(a[0].name);return c};t.release=function(a,h){if(0===a.length)return k;for(var c=A(a[a.length-1]),b=0;b<a.length;b++)"variable"===
-a[b].ctype&&J.removevar(a[b].name);return c};t.regional=function(a,h){for(var c=0;c<a.length;c++)if("variable"===a[c].ctype){var b=a[c].name;J.newvar(b);J.pushVstack(b)}return k};t.genList=function(a,h){return g.turnIntoCSList(a.map(A))};D.assigntake=function(a,h){var c=a.args[0],b=A(c),d=B(a.args[1]),e=k;if("list"===b.ctype||"string"===b.ctype)d=Math.floor(d.value.real),0>d&&(d=b.value.length+d+1),0<d&&d<=b.value.length&&("list"===b.ctype?(b=b.value.slice(),b[d-1]=A(h),e=g.turnIntoCSList(b)):(b=
-b.value,b=b.substring(0,d-1)+ba(A(h))+b.substring(d,b.length),e=w.string(b)));bb([c,e])};D.assigndot=function(a,h){var c=A(a.obj),b=a.key;"geo"===c.ctype&&b&&ya.setField(c.value,b,B(h));return k};D.assignlist=function(a,h){var c=a.length,b=h.length;b<c&&(c=b);for(b=0;b<c;b++)bb([a[b],h[b]],[])};t.if$2=function(a,h){return t.if$3(a,h)};t.if$3=function(a,h){var c=B(a[0]);if("boolean"===c.ctype){if(!0===c.value)return A(a[1]);if(3===a.length)return A(a[2])}else ia.err("Condition for if is not boolean");
-return k};t.and$2=Hc;t.or$2=Ic;t.xor$2=function(a,h){var c=B(a[0]),b=B(a[1]);return"boolean"===c.ctype&&"boolean"===b.ctype?{ctype:"boolean",value:c.value!==b.value}:k};t.not$1=function(a,h){var c=B(a[0]);return"boolean"===c.ctype?{ctype:"boolean",value:!c.value}:k};D.genericListMathGen=function(a,h,c){t[a+"$1"]=function(a,b){var d=A(a[0]);if("list"!==d.ctype)return k;d=d.value;if(0===d.length)return c;for(var r=d[0],e=1;e<d.length;e++)r=h(r,d[e]);return r};var b=a+"$3";t[a+"$2"]=function(a,c){return t[b]([a[0],
-null,a[1]])};t[b]=function(a,b){var d=B(a[0]);if("list"!==d.ctype)return k;d=d.value;if(0===d.length)return c;var r="#";null!==a[1]&&"variable"===a[1].ctype&&(r=a[1].name);J.newvar(r);J.setvar(r,d[0]);for(var e=A(a[2]),g=1;g<d.length;g++){J.setvar(r,d[g]);var f=A(a[2]),e=h(e,f)}J.removevar(r);return e}};D.genericListMathGen("product",w.mult,l.real(1));D.genericListMathGen("sum",w.add,l.real(0));D.genericListMathGen("max",w.max,k);D.genericListMathGen("min",w.min,k);t.max$2=function(a,h){var c=B(a[0]);
-if("list"===c.ctype)return t.max$3([c,null,a[1]]);var b=B(a[1]);return t.max$1([g.turnIntoCSList([c,b])])};t.min$2=function(a,h){var c=B(a[0]);if("list"===c.ctype)return t.min$3([c,null,a[1]]);var b=B(a[1]);return t.min$1([g.turnIntoCSList([c,b])])};t.add$2=Jc;t.sub$2=$b;t.mult$2=Kc;t.div$2=Lc;t.mod$2=function(a,h){var c=B(a[0]),b=B(a[1]);return"number"===c.ctype&&"number"===b.ctype?l.mod(c,b):k};t.pow$2=Mc;t.exp$1=function(a,h){var c=B(a[0]);return"number"===c.ctype?l.exp(c):k};t.sin$1=function(a,
-h){var c=B(a[0]);return"number"===c.ctype?l.sin(c):k};t.sqrt$1=function(a,h){var c=B(a[0]);return"number"===c.ctype?l.sqrt(c):k};D.laguerre=function(a,h,c){if("list"!==a.ctype)return k;var b=a.value.length-1,d;for(d=0;d<=b;d++)if("number"!==a.value[d].ctype)return k;if("number"!==h.ctype)return k;for(var e=[1,.3141,.5926,.5358,.9793,.2385,.6264,.3383,.2795,.0288],g,f,m,n=1;n<=c;n++){f=m=l.zero;g=a.value[b];for(d=b-1;0<=d;d--)m=l.add(f,l.mult(m,h)),f=l.add(g,l.mult(f,h)),g=l.add(a.value[d],l.mult(g,
-h));if(l._helper.isLessThan(l.abs(g),l.real(1E-14)))break;d=l.div(f,g);f=l.mult(d,d);g=l.sub(f,l.div(l.mult(l.real(2),m),g));m=l.sqrt(l.mult(l.real(b-1),l.sub(l.mult(l.real(b),g),f)));g=l.add(d,m);d=l.sub(d,m);l._helper.isLessThan(l.abs(g),l.abs(d))&&(g=d);d=l._helper.isLessThan(l.real(1E-14),l.abs(g))?l.div(l.real(b),g):l.mult(l.add(l.abs(h),l.one),l.complex(Math.cos(n),Math.sin(n)));if(l._helper.isLessThan(l.abs(d),l.real(1E-14)))break;0===n%20&&n<c-19&&(d=l.mult(d,l.real(e[Math.floor(n/20)])));
-h=l.sub(h,d)}return h};D.quadratic_roots=function(a){if("list"!==a.ctype)return k;var h=a.value[2],c=a.value[1];a=a.value[0];if(l._helper.isZero(a))return[l.zero,l.neg(l.div(c,h))];var b=l.sqrt(l.sub(l.mult(c,c),l.mult(l.real(4),l.mult(h,a))));0<=l.re(c)&&(b=l.neg(b));return[l.div(l.sub(b,c),l.mult(l.real(2),h)),l.div(l.mult(l.real(2),a),l.sub(b,c))]};D.roots=function(a){var h=[],c=a,b=a.value.length-1;if(0>=b)return g.turnIntoCSList([]);if(l._helper.isZero(a.value[b]))return h=D.roots(g.turnIntoCSList(a.value.slice(0,
-b))),g.append(h,l.infinity);if(1===b)h[0]=l.neg(l.div(a.value[0],a.value[1]));else if(2===b)h=D.quadratic_roots(a);else{for(var d=0;d<b-2;d++){h[d]=D.laguerre(a,l.zero,200);h[d]=D.laguerre(c,h[d],1);var e=[];e[b-d]=a.value[b-d];for(var f=b-d;0<f;f--)e[f-1]=l.add(a.value[f-1],l.mult(e[f],h[d]));e.shift();a=g.turnIntoCSList(e)}a=D.quadratic_roots(a);h[b-2]=a[0];h[b-1]=a[1]}return g.turnIntoCSList(h)};t.roots$1=function(a,h){var c=B(a[0]);if("list"===c.ctype){for(var b=0;b<c.value.length;b++)if("number"!==
-c.value[b].ctype)return k;c=D.roots(c);return g.sort1(c)}return k};t.autodiff$3=function(a,h){var c="x",b;if("function"===a[0].ctype)b=Za[a[0].oper].body,c=a[0].args[0].name;else if("function"===typeof a[0].impl)b=a[0];else return console.log("could not parse function"),k;var d=B(a[1]),e=B(a[2]);if(1>e.value.real)return console.log("grade cant be < 1"),k;e=l.add(e,l.real(1));return P.autodiff(b,c,d,e)};t.cos$1=function(a,h){var c=B(a[0]);return"number"===c.ctype?l.cos(c):k};t.tan$1=function(a,h){var c=
-B(a[0]);return"number"===c.ctype?l.tan(c):k};t.arccos$1=function(a,h){var c=B(a[0]);return"number"===c.ctype?l.arccos(c):k};t.arcsin$1=function(a,h){var c=B(a[0]);return"number"===c.ctype?l.arcsin(c):k};t.arctan$1=function(a,h){var c=B(a[0]);return"number"===c.ctype?l.arctan(c):k};t.arctan2$2=function(a,h){var c=B(a[0]),b=B(a[1]);return"number"===c.ctype&&"number"===b.ctype?l.arctan2(c,b):k};t.arctan2$1=function(a,h){var c=B(a[0]);if("list"===c.ctype&&2===c.value.length){if(c=c.value,"number"===c[0].ctype&&
-"number"===c[1].ctype)return t.arctan2$2(c,h)}else if("number"===c.ctype)return l.arctan2(c);return k};t.log$1=function(a,h){var c=B(a[0]);return"number"===c.ctype?l.log(c):k};D.recursiveGen=function(a){var h=l[a],c=g[a];t[a+"$1"]=function(a,b){var d=B(a[0]);return"number"===d.ctype?h(d):"list"===d.ctype?c(d):k}};D.recursiveGen("im");D.recursiveGen("re");D.recursiveGen("conjugate");D.recursiveGen("round");D.recursiveGen("ceil");D.recursiveGen("floor");D.recursiveGen("abs");t.abs_infix=t.abs$1;t.random$0=
-function(a,h){return l.real(l._helper.rand())};t.random$1=function(a,h){var c=B(a[0]);return"number"===c.ctype?l.complex(c.value.real*l._helper.rand(),c.value.imag*l._helper.rand()):k};t.seedrandom$1=function(a,h){var c=B(a[0]);"number"===c.ctype&&l._helper.seedrandom(c.value.real);return k};t.randomnormal$0=function(a,h){return l.real(l._helper.randnormal())};t.randominteger$1=function(a,h){var c=B(a[0]);if("number"===c.ctype){var b=c.value.real|0,c=c.value.imag|0,b=b*l._helper.rand()|0,c=c*l._helper.rand()|
-0;return l.complex(b,c)}return k};t.randomint$1=t.randominteger$1;t.randombool$0=function(a,h){return.5<l._helper.rand()?{ctype:"boolean",value:!0}:{ctype:"boolean",value:!1}};t.isreal$1=function(a,h){var c=A(a[0]);return"number"===c.ctype&&l._helper.isAlmostReal(c)?{ctype:"boolean",value:!0}:{ctype:"boolean",value:!1}};t.isinteger$1=function(a,h){var c=A(a[0]);return"number"===c.ctype&&l._helper.isAlmostReal(c)&&c.value.real===Math.floor(c.value.real)?{ctype:"boolean",value:!0}:{ctype:"boolean",
-value:!1}};t.iseven$1=function(a,h){var c=A(a[0]);return"number"===c.ctype&&l._helper.isAlmostReal(c)&&c.value.real/2===Math.floor(c.value.real/2)?{ctype:"boolean",value:!0}:{ctype:"boolean",value:!1}};t.isodd$1=function(a,h){var c=A(a[0]);return"number"===c.ctype&&l._helper.isAlmostReal(c)&&(c.value.real-1)/2===Math.floor((c.value.real-1)/2)?{ctype:"boolean",value:!0}:{ctype:"boolean",value:!1}};t.iscomplex$1=function(a,h){return"number"===A(a[0]).ctype?{ctype:"boolean",value:!0}:{ctype:"boolean",
-value:!1}};t.isstring$1=function(a,h){return"string"===A(a[0]).ctype?{ctype:"boolean",value:!0}:{ctype:"boolean",value:!1}};t.islist$1=function(a,h){return"list"===A(a[0]).ctype?{ctype:"boolean",value:!0}:{ctype:"boolean",value:!1}};t.ismatrix$1=function(a,h){var c=A(a[0]);return-1!==g._helper.colNumb(c)?{ctype:"boolean",value:!0}:{ctype:"boolean",value:!1}};t.iscircle$1=function(a,h){var c=A(a[0]);return"geo"===c.ctype&&"C"===c.value.kind&&"Circle"===c.value.matrix.usage?{ctype:"boolean",value:!0}:
-{ctype:"boolean",value:!1}};t.isconic$1=function(a,h){var c=A(a[0]);return"geo"===c.ctype&&"C"===c.value.kind?{ctype:"boolean",value:!0}:{ctype:"boolean",value:!1}};t.isline$1=function(a,h){var c=A(a[0]);return"geo"===c.ctype&&"L"===c.value.kind?{ctype:"boolean",value:!0}:{ctype:"boolean",value:!1}};t.ispoint$1=function(a,h){var c=A(a[0]);return"geo"===c.ctype&&"P"===c.value.kind?{ctype:"boolean",value:!0}:{ctype:"boolean",value:!1}};t.isgeometric$1=function(a,h){return"geo"===A(a[0]).ctype?{ctype:"boolean",
-value:!0}:{ctype:"boolean",value:!1}};t.isnumbermatrix$1=function(a,h){var c=A(a[0]);return g.isNumberMatrix(c)};t.isnumbervector$1=function(a,h){var c=A(a[0]);return g.isNumberVector(c)};t.issun$1=function(a,h){var c=A(a[0]);return"geo"===c.ctype&&void 0!==c.value.behavior&&"Sun"===c.value.behavior.type?{ctype:"boolean",value:!0}:{ctype:"boolean",value:!1}};t.ismass$1=function(a,h){var c=A(a[0]);return"geo"===c.ctype&&void 0!==c.value.behavior&&"Mass"===c.value.behavior.type?{ctype:"boolean",value:!0}:
-{ctype:"boolean",value:!1}};t.isspring$1=function(a,h){var c=A(a[0]);return"geo"===c.ctype&&void 0!==c.value.behavior&&"Spring"===c.value.behavior.type?{ctype:"boolean",value:!0}:{ctype:"boolean",value:!1}};t.isbouncer$1=function(a,h){var c=A(a[0]);return"geo"===c.ctype&&void 0!==c.value.behavior&&"Bouncer"===c.value.behavior.type?{ctype:"boolean",value:!0}:{ctype:"boolean",value:!1}};t.isundefined$1=function(a,h){return"undefined"===A(a[0]).ctype?{ctype:"boolean",value:!0}:{ctype:"boolean",value:!1}};
-var Hd={ArcBy3:"Arc",CenterOfConic:"Center",ConicBy1p4l:"Conic1P4L",ConicBy4p1l:"Conic4P1L",ConicBy5lines:"Conic5L",ConicBy2Foci1P:"ConicFoci",ConicFromPrincipalDirections:"ConicPrincipleDirs",Free:"FreePoint",PolarOfLine:"PolarLine",PolarOfPoint:"PolarPoint",PointOnSegment:"PointOnLine",Button:"Text",ToggleButton:"Text",TrReflectionL:"TrReflection",TrReflectionP:"TrReflection",TrReflectionC:"TrReflection",TrTranslation:"TrProjection",TrSimilarity:"TrProjection",TrAffine:"TrProjection",TransformP:"Transform",
-TransformL:"Transform",TransformSegment:"Transform",TransformS:"Transform",TransformPolygon:"Transform",TransformArc:"Transform",TransformConic:"Transform",TransformC:"Transform",TrMoebiusP:"Transform",TrMoebiusL:"Transform",TrMoebiusSegment:"Transform",TrMoebiusS:"Transform",TrMoebiusPolygon:"Transform",TrMoebiusArc:"Transform",TrMoebiusCircle:"Transform",TrMoebiusC:"Transform",TrInverseMoebius:"TrInverse",Perp:"Orthogonal",Para:"Parallel",AngleBisector:"AngularBisector",IntersectLC:"IntersectionConicLine",
-IntersectCirCir:"IntersectionCircleCircle",OtherPointOnCircle:"PointOnCircle"};t.algorithm$1=function(a,h){var c=A(a[0]);if("geo"===c.ctype){var c=c.value,b=c.type,d=B(h.compatibility);"string"===d.ctype&&/^cinderella$/i.test(d.value)&&(/^Select/.test(b)&&(c=u.csnames[c.args[0]],b=c.type),Hd.hasOwnProperty(b)?b=Hd[b]:"CircleMr"===b&&(b=c.pinned?"CircleByFixedRadius":"CircleByRadius"));return w.string(b)}return k};t.inputs$1=function(a,h){var c=A(a[0]);if("geo"===c.ctype){var c=c.value,b=c.type,d=
-[];c.args&&(d=c.args.map(function(a){return{ctype:"geo",value:u.csnames[a]}}));if(/^Select/.test(b)||m[b].isMovable)switch(c.kind){case "P":case "L":d.push(c.homog);break;case "C":d.push(c.matrix)}return g.turnIntoCSList(d)}return k};t.moveto$2=function(a,h){var c=A(a[0]),b=B(a[1]);"geo"===c.ctype&&(c=c.value,g._helper.isNumberVecN(b,2)?ya.setField(c,"xy",b):g._helper.isNumberVecN(b,3)&&ya.setField(c,"homog",b));return k};t.continuefromhere$0=function(a,h){ub();return k};t.matrixrowcolumn$1=function(a,
-h){var c=A(a[0]);return-1!==g._helper.colNumb(c)?g.realVector([c.value.length,c.value[0].value.length]):k};t.rowmatrix$1=function(a,h){var c=A(a[0]);return"list"===c.ctype?g.turnIntoCSList([c]):k};t.columnmatrix$1=function(a,h){var c=A(a[0]);return"list"===c.ctype?g.turnIntoCSList(c.value.map(function(a){return g.turnIntoCSList([a])})):k};t.submatrix$3=function(a,h){var c=A(a[0]),b=A(a[1]),d=A(a[2]);if("list"===c.ctype&&"number"===b.ctype&&"number"===d.ctype){var e=Math.round(b.value.real),b=Math.round(d.value.real),
-c=c.value.slice();0<b&&b<=c.length&&c.splice(b-1,1);var f=!0,c=c.map(function(a){if("list"!==a.ctype)f=!1;else return a=a.value.slice(),0<e&&e<=a.length&&a.splice(e-1,1),g.turnIntoCSList(a)});return f?g.turnIntoCSList(c):k}return k};t.complex$1=function(a,h){var c,b,d;d=B(a[0]);if("list"===d.ctype&&g.isNumberVector(d)){if(2===d.value.length)return c=d.value[0],b=d.value[1],l.complex(c.value.real-b.value.imag,b.value.real+c.value.imag);if(3===d.value.length)return c=d.value[0],b=d.value[1],d=d.value[2],
-c=l.div(c,d),b=l.div(b,d),l.complex(c.value.real-b.value.imag,b.value.real+c.value.imag)}return k};t.gauss$1=function(a,h){var c=B(a[0]);return"number"===c.ctype?g.realVector([c.value.real,c.value.imag]):k};t.cross$2=Sc;t.crossratio$4=function(a,h){var c=A(a[0]),b=A(a[1]),d=A(a[2]),e=A(a[3]),f=M(c),m=M(b),n=M(d),p=M(e);return f!==k&&m!==k&&n!==k&&p!==k?g.crossratio3(f,m,n,p,g.ii):"number"===c.ctype&&"number"===b.ctype&&"number"===d.ctype&&"number"===e.ctype?l.div(l.mult(l.sub(c,d),l.sub(b,e)),l.mult(l.sub(c,
-e),l.sub(b,d))):k};t.para$2=function(a,h){var c=B(a[0]),b=B(a[1]),d=M(c),e=M(b);if(c!==k&&b!==k){var b=b.usage,f=d,l=e;if("Line"===c.usage||"Point"===b)f=e,l=d;c=g.cross(g.cross(g.linfty,l),f);return w.withUsage(c,"Line")}return k};t.perp$2=function(a,h){var c=B(a[0]),b=B(a[1]),d=M(c),e=M(b);if(c!==k&&b!==k){var f=b.usage||e.usage,b=d,m=e;if("Line"===(c.usage||d.usage)||"Point"===f)b=e,m=d;c=g.turnIntoCSList([m.value[0],m.value[1],l.zero]);c=g.cross(c,b);return w.withUsage(c,"Line")}return k};t.perp$1=
-function(a,h){var c=B(a[0]);return g._helper.isNumberVecN(c,2)?g.turnIntoCSList([l.neg(c.value[1]),c.value[0]]):k};t.parallel$2=t.para$2;t.perpendicular$2=t.perp$2;t.perpendicular$1=t.perp$1;t.meet$2=function(a,h){var c=M(a[0]),b=M(a[1]);return c!==k&&b!==k?(c=g.cross(c,b),w.withUsage(c,"Point")):k};t.join$2=function(a,h){var c=M(a[0]),b=M(a[1]);return c!==k&&b!==k?(c=g.cross(c,b),w.withUsage(c,"Line")):k};t.dist$2=function(a,h){var c=B(a[0]),b=B(a[1]),c=$b([c,b],[]);return t.abs$1([c],[])};t.dist_infix=
-t.dist$2;t.point$1=function(a,h){var c=A(a[0]);return g._helper.isNumberVecN(c,3)||g._helper.isNumberVecN(c,2)?w.withUsage(c,"Point"):c};t.line$1=function(a,h){var c=A(a[0]);return g._helper.isNumberVecN(c,3)?w.withUsage(c,"Line"):c};t.det$3=function(a,h){var c=M(a[0]),b=M(a[1]),d=M(a[2]);if(c!==k&&b!==k&&d!==k)return g.det3(c,b,d)};t.det$1=function(a,h){var c=B(a[0]);if("list"===c.ctype){var b=g._helper.colNumb(c);if(-1!==b&&b===c.value.length)return g.det(c)}return k};t.eig$1=function(a,h){var c=
-B(a[0]);if("list"===c.ctype){var b=g._helper.colNumb(c);if(-1!==b&&b===c.value.length)return g.eig(c)}return k};t.eigenvalues$1=function(a,h){var c=B(a[0]);if("list"===c.ctype){var b=g._helper.colNumb(c);if(-1!==b&&b===c.value.length)return g.eig(c,!1).value[0]}return k};t.rank$1=function(a,h){var c=B(a[0]);if("list"===c.ctype){var b=g._helper.colNumb(c);if(-1!==b&&b===c.value.length)return g.rank(c,h.precision)}return k};t.kernel$1=function(a,h){var c=B(a[0]);if("list"===c.ctype){var b=g._helper.colNumb(c);
-if(-1!==b&&b===c.value.length)return c=g.nullSpace(c,h.precision),g.transpose(c)}return k};t.eigenvectors$1=function(a,h){var c=B(a[0]);if("list"===c.ctype){var b=g._helper.colNumb(c);if(-1!==b&&b===c.value.length)return g.eig(c).value[1]}return k};t.area$3=function(a,h){var c=M(a[0]),b=M(a[1]),d=M(a[2]);if(c!==k&&b!==k&&d!==k){var e=c.value[2],f=b.value[2],m=d.value[2];if(!l._helper.isAlmostZero(e)&&!l._helper.isAlmostZero(f)&&!l._helper.isAlmostZero(m))return c=g.scaldiv(e,c),b=g.scaldiv(f,b),d=
-g.scaldiv(m,d),c=g.det3(c,b,d),l.realmult(.5,c)}return k};t.inverse$1=function(a,h){var c=B(a[0]);if("list"===c.ctype){var b=g._helper.colNumb(c);if(-1!==b&&b===c.value.length)return g.inverse(c)}return k};t.linearsolve$2=function(a,h){var c=B(a[0]),b=B(a[1]);if("list"===c.ctype){var d=g._helper.colNumb(c);if(-1!==d&&d===c.value.length&&g._helper.isNumberVecN(b,d))return g.linearsolve(c,b)}return k};var Ud=[[[]],[[0]],[[0,1],[1,0]],[[0,1,2],[0,2,1],[1,0,2],[1,2,0],[2,0,1],[2,1,0]],[[0,1,2,3],[0,1,
-3,2],[0,2,1,3],[0,2,3,1],[0,3,1,2],[0,3,2,1],[1,0,2,3],[1,0,3,2],[1,2,0,3],[1,2,3,0],[1,3,0,2],[1,3,2,0],[2,0,1,3],[2,0,3,1],[2,1,0,3],[2,1,3,0],[2,3,0,1],[2,3,1,0],[3,0,1,2],[3,0,2,1],[3,1,0,2],[3,1,2,0],[3,2,0,1],[3,2,1,0]]];t.mincostmatching$1=function(a,h){var c=A(a[0]);if(g.isNumberMatrix(c).value){var b=c.value.length,d=g._helper.colNumb(c),e=b<d?d:b,f,m,n=Array(e);for(f=0;f<e;++f)for(n[f]=Array(e),m=0;m<e;++m)n[f][m]=f<b&&m<d?c.value[f].value[m].value.real:0;c=nc(n);e=Array(b);for(f=0;f<b;++f)m=
-c[f],e[f]=m<d?l.real(m+1):l.real(0);return g.turnIntoCSList(e)}return k};t.take$2=oc;t.length$1=function(a,h){var c=A(a[0]);return"list"===c.ctype||"string"===c.ctype?l.real(c.value.length):k};t.pairs$1=function(a,h){var c=A(a[0]);return"list"===c.ctype?g.pairs(c):k};t.triples$1=function(a,h){var c=A(a[0]);return"list"===c.ctype?g.triples(c):k};t.cycle$1=function(a,h){var c=A(a[0]);return"list"===c.ctype?g.cycle(c):k};t.consecutive$1=function(a,h){var c=A(a[0]);return"list"===c.ctype?g.consecutive(c):
-k};t.reverse$1=function(a,h){var c=A(a[0]);return"list"===c.ctype?g.reverse(c):k};t.directproduct$2=function(a,h){var c=A(a[0]),b=A(a[1]);return"list"===c.ctype&&"list"===b.ctype?g.directproduct(c,b):k};t.concat$2=Tc;t.common$2=Uc;t.remove$2=Vc;t.append$2=Wc;t.prepend$2=Xc;t.contains$2=function(a,h){var c=A(a[0]),b=A(a[1]);return"list"===c.ctype?g.contains(c,b):k};t.sort$2=function(a,h){return t.sort$3([a[0],null,a[1]],h)};t.sort$3=function(a,h){var c=B(a[0]);if("list"!==c.ctype)return k;var b="#";
-null!==a[1]&&"variable"===a[1].ctype&&(b=a[1].name);var c=c.value,d=[];J.newvar(b);var e;for(e=0;e<c.length;e++)J.setvar(b,c[e]),d[e]={val:c[e],result:A(a[2])};J.removevar(b);d.sort(w.compareResults);b=[];for(e=0;e<c.length;e++)b[e]=d[e].val;return{ctype:"list",value:b}};t.sort$1=function(a,h){var c=A(a[0]);return"list"===c.ctype?g.sort1(c):k};t.set$1=function(a,h){var c=A(a[0]);return"list"===c.ctype?g.set(c):k};t.combinations$2=function(a,h){function c(a,h){a===f?n.push(g.turnIntoCSList(m.slice())):
-h<e&&(m[a]=b.value[h],c(a+1,h+1),c(a,h+1))}var b=A(a[0]),d=A(a[1]),e,f,m,n;if("number"===d.ctype){f=d.value.real|0;if("number"===b.ctype){e=b.value.real|0;e-f<f&&(f=e-f);if(0>f)return l.real(0);if(0===f)return l.real(1);if(1===f)return b;for(var p=d=1,q=1;q<=f;++q)var t=e-f+q|0,v=q|0,u=pc(t,v)|0,t=t/u|0,v=v/u|0,u=pc(d,v)|0,d=d/u|0,v=v/u|0,u=pc(t,p)|0,t=t/u|0,p=p/u|0,d=d*t|0,p=p*v|0;return l.real(d/p)}if("list"===b.ctype){e=b.value.length;if(0>f||f>e)return g.turnIntoCSList([]);if(0===f)return g.turnIntoCSList([g.turnIntoCSList([])]);
-if(f===e)return g.turnIntoCSList([b]);n=[];m=Array(f);c(0,0);return g.turnIntoCSList(n)}}return k};t.zeromatrix$2=function(a,h){var c=B(a[0]),b=B(a[1]);return"number"===c.ctype&&"number"===b.ctype?g.zeromatrix(c,b):k};t.zerovector$1=function(a,h){var c=B(a[0]);return"number"===c.ctype?g.zerovector(c):k};t.transpose$1=function(a,h){var c=B(a[0]);return"list"===c.ctype&&-1!==g._helper.colNumb(c)?g.transpose(c):k};t.row$2=function(a,h){var c=B(a[0]),b=B(a[1]);return"number"===b.ctype&&"list"===c.ctype&&
--1!==g._helper.colNumb(c)?g.row(c,b):k};t.column$2=function(a,h){var c=B(a[0]),b=B(a[1]);return"number"===b.ctype&&"list"===c.ctype&&-1!==g._helper.colNumb(c)?g.column(c,b):k};t.dict$0=function(a,h){var c=Ka.create(),b;for(b in h)h.hasOwnProperty(b)&&Ka.put(c,w.string(b),A(h[b]));return c};t.put$3=function(a,h){var c=A(a[0]),b=A(a[1]),d=A(a[2]);return"dict"===c.ctype?(c=Ka.clone(c),Ka.put(c,b,d),c):k};t.get$2=function(a,h){var c=A(a[0]),b=A(a[1]);return"dict"===c.ctype?Ka.get(c,b,k):k};t.red$1=function(a,
-h){var c=A(a[0]);return"number"===c.ctype?g.realVector([Math.min(1,Math.max(0,c.value.real)),0,0]):k};t.green$1=function(a,h){var c=A(a[0]);return"number"===c.ctype?g.realVector([0,Math.min(1,Math.max(0,c.value.real)),0]):k};t.blue$1=function(a,h){var c=A(a[0]);return"number"===c.ctype?g.realVector([0,0,Math.min(1,Math.max(0,c.value.real))]):k};t.gray$1=function(a,h){var c=A(a[0]);return"number"===c.ctype?(c=Math.min(1,Math.max(0,c.value.real)),g.realVector([c,c,c])):k};t.grey$1=t.gray$1;D.HSVtoRGB=
-function(a,h,c){var b,d,e,f,k,l;a&&void 0===h&&void 0===c&&(h=a.s,c=a.v,a=a.h);f=Math.floor(6*a);k=6*a-f;a=c*(1-h);l=c*(1-k*h);h=c*(1-(1-k)*h);switch(f%6){case 0:b=c;d=h;e=a;break;case 1:b=l;d=c;e=a;break;case 2:b=a;d=c;e=h;break;case 3:b=a;d=l;e=c;break;case 4:b=h;d=a;e=c;break;case 5:b=c,d=a,e=l}return g.realVector([b,d,e])};t.hue$1=function(a,h){var c=A(a[0]);return"number"===c.ctype?(c=c.value.real,c-=Math.floor(c),D.HSVtoRGB(c,1,1)):k};D.shapeconvert=function(a){var h,c;if("circle"===a.type){h=
-a.value.value[0];h=w.div(h,h.value[2]);var b=h.value[0].value.real,d=h.value[1].value.real;a=a.value.value[1].value.real;c=Array(125);var e=2*Math.PI/125;for(h=0;125>h;h++)c[h]={X:b+Math.cos(h*e)*a,Y:d+Math.sin(h*e)*a};return[c]}if("polygon"===a.type){b=[];for(h=0;h<a.value.length;h++){d=a.value[h];c=[];for(e=0;e<d.length;e++)c[e]={X:d[e].X,Y:d[e].Y};b[h]=c}return b}};D.shapeop=function(a,h,c){a=D.shapeconvert(a);var b=D.shapeconvert(h);ClipperLib.JS.ScaleUpPaths(a,1E3);ClipperLib.JS.ScaleUpPaths(b,
-1E3);h=new ClipperLib.Clipper;h.AddPaths(a,ClipperLib.PolyType.ptSubject,!0);h.AddPaths(b,ClipperLib.PolyType.ptClip,!0);var b=a=ClipperLib.PolyFillType.pftNonZero,d=new ClipperLib.Paths;h.Execute(c,d,a,b);ClipperLib.JS.ScaleDownPaths(d,1E3);return{ctype:"shape",type:"polygon",value:d}};D.shapecommon=function(a,h){return D.shapeop(a,h,ClipperLib.ClipType.ctIntersection)};D.shaperemove=function(a,h){return D.shapeop(a,h,ClipperLib.ClipType.ctDifference)};D.shapeconcat=function(a,h){return D.shapeop(a,
-h,ClipperLib.ClipType.ctUnion)};t.key$0=function(a,h){return{ctype:"string",value:Qc}};t.keycode$0=function(a,h){return l.real(Rc)};t.mouse$0=function(a,h){return g.realVector([ta[0],ta[1]])};t.mover$0=function(a,h){if(fa&&fa.mover)return{ctype:"geo",value:fa.mover};console.log("Not moving anything at the moment");return k};t.translate$1=function(a,h){var c=B(a[0]);"list"===c.ctype&&g.isNumberVector(c)&&2===c.value.length&&z.translate(c.value[0].value.real,c.value[1].value.real);return k};t.rotate$1=
-function(a,h){var c=B(a[0]);"number"===c.ctype&&z.rotate(c.value.real);return k};t.scale$1=function(a,h){var c=B(a[0]);"number"===c.ctype&&z.scale(c.value.real);return k};t.greset$0=function(a,h){var c=$a.stack.length;z.greset();for(var b=0;b<c;b++)y.restore();return k};t.gsave$0=function(a,h){z.gsave();y.save();return k};t.grestore$0=function(a,h){z.grestore();y.restore();return k};t.color$1=function(a,h){var c=B(a[0]);"list"===c.ctype&&g.isNumberVector(c).value&&z.setcolor(c);return k};t.linecolor$1=
-function(a,h){var c=B(a[0]);"list"===c.ctype&&g.isNumberVector(c).value&&z.setlinecolor(c);return k};t.pointcolor$1=function(a,h){var c=B(a[0]);"list"===c.ctype&&g.isNumberVector(c).value&&z.setpointcolor(c);return k};t.alpha$1=function(a,h){var c=B(a[0]);"number"===c.ctype&&z.setalpha(c);return k};t.pointsize$1=function(a,h){var c=B(a[0]);"number"===c.ctype&&z.setpointsize(c);return k};t.linesize$1=function(a,h){var c=B(a[0]);"number"===c.ctype&&z.setlinesize(c);return k};t.textsize$1=function(a,
-h){var c=B(a[0]);"number"===c.ctype&&z.settextsize(c);return k};t.playanimation$0=function(a,h){I();return k};t.pauseanimation$0=function(a,h){Ca();return k};t.stopanimation$0=function(a,h){Da();return k};t.text$1=function(a,h){var c=B(a[0]);return w.string(ba(c))};t.replace$3=function(a,h){var c=A(a[0]),b=A(a[1]),d=A(a[2]);if("string"===c.ctype&&"string"===b.ctype&&"string"===d.ctype)return c=c.value,b=b.value.replace(/[^A-Za-z0-9]/g,"\\$&"),d=d.value.replace(/\$/g,"$$$$"),c=c.replace(new RegExp(b,
-"g"),d),{ctype:"string",value:c}};t.replace$2=function(a,h){function c(a,c,h){var e="";d=b=-1;for(var g=0;g<c.length;g++){var f=c[g][0],k=a.indexOf(f,h);-1!==k&&(-1===b?(e=f,b=k,d=g):k<b&&(e=f,b=k,d=g))}return e}var b,d,e,g=A(a[0]);e=A(a[1]);if("string"===g.ctype&&"list"===e.ctype){for(var g=g.value,f=[],l=0;l<e.value.length;l++){var m=e.value[l];"list"===m.ctype&&2===m.value.length&&"string"===m.value[0].ctype&&"string"===m.value[1].ctype&&(f[f.length]=[m.value[0].value,m.value[1].value])}b=-1;for(e=
-c(g,f,0);-1!==b;)g=g.substring(0,b)+f[d][1]+g.substring(b+e.length,g.length),e=b+f[d][1].length,e=c(g,f,e);return{ctype:"string",value:g}}return k};t.substring$3=function(a,h){var c=A(a[0]),b=B(a[1]),d=B(a[2]);return"string"===c.ctype&&"number"===b.ctype&&"number"===d.ctype?{ctype:"string",value:c.value.substring(Math.floor(b.value.real),Math.floor(d.value.real))}:k};t.tokenize$2=function(a,h){var c=A(a[0]),b=A(a[1]);if("string"===c.ctype&&"string"===b.ctype)return t.tokenize$2([c,g.turnIntoCSList([b])],
-h);if("string"===c.ctype&&"list"===b.ctype){c=c.value;if(0===b.value.length){b=!0;if(void 0!==h.autoconvert){var d=A(h.autoconvert);"boolean"===d.ctype&&(b=d.value)}return b&&""!==c&&(b=Number(c),!isNaN(b))?l.real(b):w.string(c)}var d=b.value[0],e=g.turnIntoCSList(b.value.slice(1)),c=c.split(d.value);return g.turnIntoCSList(c.map(function(a){return t.tokenize$2([w.string(a),e],h)}))}return k};t.indexof$2=function(a,h){var c=A(a[0]),b=A(a[1]);return"string"===c.ctype&&"string"===b.ctype?(c=c.value.indexOf(b.value),
-l.real(c+1)):k};t.indexof$3=function(a,h){var c=A(a[0]),b=A(a[1]),d=A(a[2]);return"string"===c.ctype&&"string"===b.ctype&&"number"===d.ctype?(c=c.value.indexOf(b.value,Math.round(d.value.real)-1),l.real(c+1)):k};t.parse$1=function(a,h){var c=A(a[0]);return"string"===c.ctype?(c=Ra(c.value),A(c)):k};t.unicode$1=function(a,h){var c;c=A(a[0]);var b=16;if(h.base){var d=A(h.base);"number"===d.ctype&&(b=d.value.real)}if("string"===c.ctype)c=parseInt(c.value,b);else if("number"===c.ctype)c=c.value.real;else return k;
-"undefined"!==typeof String.fromCodePoint?c=String.fromCodePoint(c):65535>=c?c=String.fromCharCode(c):(c-=65536,c=String.fromCharCode((c>>10)+55296,(c&1023)+56320));return w.string(c)};t.international$1=function(a,h){return t.international$2([a[0],null],h)};t.international$2=function(a,h){var c=A(a[0]);if("string"!==c.ctype)return k;var b=(p.translations||{})[p.language||"en"]||{};if(!b.hasOwnProperty(c.value))return c;var d=b[c.value];if("string"===typeof d)return w.string(d);if(null===a[1])return c;
-var e=A(a[1]),e="number"===e.ctype?e.value.real:0,b=(b._pluralFormFunction||Vd)(e);return b<d.length?w.string(d[b]):c};t.currentlanguage$0=function(a,h){return w.string(p.language||"en")};D.basismap=function(a,h,c,b){var d=g.turnIntoCSList([a,h,c]),d=g.adjoint3(g.transpose(d));b=w.mult(d,b);d=g.turnIntoCSList([w.mult(b.value[0],a),w.mult(b.value[1],h),w.mult(b.value[2],c)]);return g.transpose(d)};t.map$8=function(a,h){var c=M(a[0]),b=M(a[1]),d=M(a[2]),e=M(a[3]),f=M(a[4]),l=M(a[5]),m=M(a[6]),n=M(a[7]);
-return f!==k&&l!==k&&m!==k&&n!==k&&c!==k&&b!==k&&d!==k&&e!==k?(f=D.basismap(f,l,m,n),c=D.basismap(c,b,d,e),c=w.mult(f,g.adjoint3(c)),g.normalizeMax(c)):k};t.map$6=function(a,h){var c=M(a[0]),b=M(a[1]),d=M(a[2]),e=g.realVector([0,0,1]),f=g.cross,l=f(f(d,f(e,f(c,b))),f(b,f(e,f(c,d)))),m=M(a[3]),n=M(a[4]),p=M(a[5]),e=f(f(p,f(e,f(m,n))),f(n,f(e,f(m,p))));return m!==k&&n!==k&&p!==k&&e!==k&&c!==k&&b!==k&&d!==k&&l!==k?(m=D.basismap(m,n,p,e),c=D.basismap(c,b,d,l),c=w.mult(m,g.adjoint3(c)),g.normalizeMax(c)):
-k};t.map$4=function(a,h){var c=g.ii,b=g.jj,d=M(a[0]),e=M(a[1]),f=M(a[2]),l=M(a[3]);return f!==k&&l!==k&&d!==k&&e!==k?(f=D.basismap(f,l,c,b),c=D.basismap(d,e,c,b),c=w.mult(f,g.adjoint3(c)),g.normalizeMax(c)):k};t.map$2=function(a,h){var c=g.ii,b=g.jj,d=M(a[0]),e=w.add(g.realVector([1,0,0]),d),f=M(a[1]),l=w.add(g.realVector([1,0,0]),f);return f!==k&&l!==k&&d!==k&&e!==k?(f=D.basismap(f,l,c,b),c=D.basismap(d,e,c,b),c=w.mult(f,g.adjoint3(c)),g.normalizeMax(c)):k};t.pointreflect$1=function(a,h){var c=g.ii,
-b=g.jj,d=M(a[0]),e=w.add(g.realVector([1,0,0]),d),f=w.add(g.realVector([-1,0,0]),d);return f!==k&&d!==k&&e!==k?(f=D.basismap(d,f,c,b),c=D.basismap(d,e,c,b),c=w.mult(f,g.adjoint3(c)),g.normalizeMax(c)):k};t.linereflect$1=function(a,h){var c=g.ii,b=g.jj,d=M(a[0]),e=g.realVector([Math.random(),Math.random(),Math.random()]),f=g.realVector([Math.random(),Math.random(),Math.random()]),e=g.cross(e,d),f=g.cross(f,d);return d!==k&&e!==k?(d=D.basismap(e,f,c,b),c=D.basismap(e,f,b,c),c=w.mult(d,g.adjoint3(c)),
-g.normalizeMax(c)):k};D.extractPointVec=function(a){var h={ok:!1};if("geo"===a.ctype){var c=a.value;if("P"===c.kind)return h.x=ya.getField(c,"x"),h.y=ya.getField(c,"y"),h.z=l.real(1),h.ok=!0,h}if("list"!==a.ctype)return h;var b=a.value;if(2===b.length&&(a=b[0],c=b[1],"number"===a.ctype&&"number"===c.ctype))return h.x=a,h.y=c,h.z=l.real(1),h.ok=!0,h;3===b.length&&(a=b[0],c=b[1],b=b[2],"number"===a.ctype&&"number"===c.ctype&&"number"===b.ctype&&(h.x=l.div(a,b),h.y=l.div(c,b),h.z=l.real(1),h.ok=!0));
-return h};t.polygon$1=function(a,h){var c=A(a[0]);if("list"===c.ctype){for(var b=[],d=0;d<c.value.length;d++){var e=D.extractPoint(c.value[d]);if(!e.ok)return k;b[d]={X:e.x,Y:e.y}}return{ctype:"shape",type:"polygon",value:[b]}}return k};t.circle$2=function(a,h){var c=B(a[0]),b=B(a[1]),c=D.extractPointVec(c);if(!c.ok||"number"!==b.ctype)return k;c=g.turnIntoCSList([c.x,c.y,c.z]);return{ctype:"shape",type:"circle",value:g.turnIntoCSList([c,b])}};t.screen$0=function(a,h){var c=z.drawingstate.initialmatrix,
-b=function(a,b){var h=a-c.tx,d=b+c.ty;return{X:(h*c.d-d*c.b)/c.det,Y:-(-h*c.c+d*c.a)/c.det}};return{ctype:"shape",type:"polygon",value:[[b(0,0),b(da,0),b(da,ca),b(0,ca)]]}};t.halfplane$2=function(a,b){var c=B(a[0]),d=B(a[1]),e=M(c),f=M(d);if(c!==k&&d!==k){var m=d.usage,d=e,n=f;if("Line"===c.usage||"Point"===m)d=f,n=e;c=g.turnIntoCSList([n.value[0],n.value[1],l.zero]);c=g.cross(c,d);c=g.cross(n,c);c=w.div(c,c.value[2]);d=w.div(d,d.value[2]);d=g.sub(d,c);n=g.abs(d);d=w.div(d,n);n=c.value[0].value.real;
-c=c.value[1].value.real;e=1E3*d.value[0].value.real;d=1E3*d.value[1].value.real;return{ctype:"shape",type:"polygon",value:[[{X:n+d/2,Y:c-e/2},{X:n+d/2+e,Y:c-e/2+d},{X:n-d/2+e,Y:c+e/2+d},{X:n-d/2,Y:c+e/2}]]}}return k};t.element$1=function(a,b){var c=A(a[0]);return"string"===c.ctype&&u.csnames.hasOwnProperty(c.value)?{ctype:"geo",value:u.csnames[c.value]}:k};D.all$1=function(a,b){var c=A(a[0]);return"geo"===c.ctype&&c.value.incidences?g.ofGeos(c.value.incidences.map(function(a){return u.csnames[a]}).filter(b)):
-g.nil};t.allpoints$0=function(a,b){return g.ofGeos(u.points)};t.allpoints$1=function(a,b){return D.all$1(a,function(a){return"P"===a.kind})};t.allmasses$0=function(a,b){return g.ofGeos(ga)};t.allmasses$1=function(a,b){return D.all$1(a,function(a){return"P"===a.kind&&a.behavior&&"Mass"===a.behavior.type})};t.allsprings$0=function(a,b){return g.ofGeos(zc)};t.allsprings$1=function(a,b){return D.all$1(a,function(a){return"S"===a.kind&&a.behavior&&"Spring"===a.behavior.type})};t.alllines$0=function(a,
-b){return g.ofGeos(u.lines)};t.alllines$1=function(a,b){return D.all$1(a,function(a){return"L"===a.kind||"S"===a.kind})};t.allsegments$0=function(a,b){return g.ofGeos(u.lines.filter(function(a){return"S"===a.kind}))};t.allsegments$1=function(a,b){return D.all$1(a,function(a){return"S"===a.kind})};t.allconics$0=function(a,b){return g.ofGeos(u.conics)};t.allconics$1=function(a,b){return D.all$1(a,function(a){return"C"===a.kind})};t.allcircles$0=function(a,b){return g.ofGeos(u.conics.filter(function(a){return"Circle"===
-a.matrix.usage}))};t.allcircles$1=function(a,b){return D.all$1(a,function(a){return"C"===a.kind&&"Circle"===a.matrix.usage})};t.allelements$0=function(a,b){return g.ofGeos(u.gslp)};t.allelements$1=function(a,b){return D.all$1(a,function(a){return!0})};t.incidences$1=t.allelements$1;t.createpoint$2=function(a,b){var c=A(a[0]),d=M(a[1]);return"string"!==c.ctype?(console.log("Name must be a string"),k):"list"!==d.ctype&&g.isNumberVector(d)?(console.log("Position must be a number vector"),k):Ha({name:c.value,
-type:"Free",labeled:!0,pos:d})};t.create$3=function(a,b){var c=A(a[0]),d=A(a[1]),e=A(a[2]),f,n;if("string"===c.ctype)f=c.value;else{if("list"!==c.ctype)return console.log("Names must be a string or a list of strings"),k;if(1!==c.value.length){f=w.string(c.value.map(function(a){return a.value}).join("__"));f=t.create$3([f,d,e],b);if(f!==k)for(d=w.string(f.kind.replace(/^(.*)s$/,"Select$1")),e=g.turnIntoCSList([w.string(f.name)]),n=0;n<c.value.length;++n)t.create$3([c.value[n],d,e],{index:l.real(n+
-1)});return f}if("string"!==c.value[0].ctype)return console.log("Element of names list must be a string"),k;f=c.value[0].value}if("string"!==d.ctype)return console.log("Type must be a string"),k;if("list"!==e.ctype)return console.log("Arguments must be a list"),k;if(!m.hasOwnProperty(d.value)&&!tc.hasOwnProperty(d.value)&&!rd.hasOwnProperty(d.value))return console.log("Invalid geometric operation: '"+d.value+"'"),k;var c=[],p=null;for(n=0;n<e.value.length;n++){var q=e.value[n];if("string"===q.ctype)c.push(q.value);
-else if("geo"===q.ctype)c.push(q.value.name);else if(p=M(q),p===k)return console.log("Unknown argument type"),k}f={name:f,type:d.value,labeled:!0};p&&(f.pos=p);0<c.length&&(f.args=c);d=B(b.index);"number"===d.ctype&&(f.index=d.value.real|0);return Ha(f)};t.javascript$1=function(a,b){var c=A(a[0]);"string"===c.ctype&&(new Function(c.value)).call(oa);return k};t.use$1=function(a,b){function c(a,c,b){t[a.toLowerCase()+"$"+c]=b}var d=A(a[0]);if("string"===d.ctype){var d=d.value,e;p.plugins&&(e=p.plugins[d]);
-e||(e=wa._pluginRegistry[d]);if(e)return e({instance:oa,config:p,nada:k,evaluate:A,extractPoint:D.extractPoint,evaluateAndVal:B,defineFunction:c,addShutdownHook:jb.push.bind(jb),addAutoCleaningEventListener:H,getVariable:J.getvar.bind(J),getInitialMatrix:function(){return z.drawingstate.initialmatrix},setTextRenderer:function(a,c){Bc=a;c&&(td=c)},getImage:function(a,c){"string"===typeof a&&(a=w.string(a));var b=La(a);if(!b)return null;!c&&b.cdyUpdate&&b.cdyUpdate();return b},getMyfunction:function(a){return Za.hasOwnProperty(a)?
-Za[a]:null}}),{ctype:"boolean",value:!0};console.log("Plugin "+d+" not found");return{ctype:"boolean",value:!1}}return k};t.format$2=function(a,b){function c(a){a=a.toFixed(f);var c;do c=a,a=a.substring(0,a.length-1);while(""!==a&&"-"!==a&&+a===+c);return""+c}function d(a){var b;return"number"===a.ctype?(b=c(a.value.real),a=c(a.value.imag),b="0"===a?b:"-"===a.substring(0,1)?b+" - i*"+a.substring(1):b+" + i*"+a,{ctype:"string",value:b}):"list"===a.ctype?{ctype:"list",value:a.value.map(d)}:{ctype:"string",
-value:ba(a).toString()}}var e=B(a[0]),g=B(a[1]),f;return"number"!==e.ctype&&"list"!==e.ctype||"number"!==g.ctype?k:(f=Math.max(0,Math.min(20,Math.round(g.value.real))),d(e))};Date.now||(Date.now=function(){return(new Date).getTime()});var Id=0;t.timestamp$0=function(a,b){return l.real(Date.now())};t.seconds$0=function(a,b){return l.real((Date.now()-Id)/1E3)};t.resetclock$0=function(a,b){Id=Date.now();return k};t.time$0=function(a,b){var c=new Date;return g.realVector([c.getHours(),c.getMinutes(),
-c.getSeconds(),c.getMilliseconds()])};t.date$0=function(a,b){var c=new Date;return g.realVector([c.getFullYear(),c.getMonth()+1,c.getDate()])};t.simulationtime$0=function(a,b){return l.real(Cb*Fd)};t.settimeout$2=function(a,b){function c(){A(g);e()}var d=A(a[0]),g=a[1];"number"===d.ctype&&"undefined"!==typeof window&&window.setTimeout(c,1E3*d.value.real);return k};D.formatForWebGL=function(a){return a.toFixed(10)};t.generateWebGL$2=function(a,b){var c=D.formatForWebGL,d=a[0],e=A(a[1]);console.log(e);
-if("list"!==e.ctype)return k;for(var g=[],f=0;f<e.value.length;f++)"string"===e.value[f].ctype&&g.push(e.value[f].value);console.log("***********");console.log(g);e=D.plotvars(d);console.log(e);-1===e.indexOf("a")&&-1===e.indexOf("b")&&-1===e.indexOf("c")&&-1===e.indexOf("d")&&-1===e.indexOf("e")&&-1===e.indexOf("f")&&(d=B(d));if("number"===d.ctype)return{ctype:"string",value:"vec2("+c(d.value.real)+","+c(d.value.imag)+")"};if("variable"===d.ctype)return{ctype:"string",value:d.name};if("string"===
-d.ctype||"void"===d.ctype)return d;if(2===d.args.length&&("infix"===d.ctype||"function"===d.ctype)){c=t.compileToWebGL$1([d.args[0]],{});e=t.compileToWebGL$1([d.args[1]],{});if("+"===d.oper||"add"===d.oper)return void 0===c.value||"void"===c.ctype?{ctype:"string",value:e.value}:{ctype:"string",value:"addc("+c.value+","+e.value+")"};if("*"===d.oper||"mult"===d.oper)return{ctype:"string",value:"multc("+c.value+","+e.value+")"};if("/"===d.oper||"div"===d.oper)return{ctype:"string",value:"divc("+c.value+
-","+e.value+")"};if("-"===d.oper||"sub"===d.oper)return void 0===c.value||"void"===c.ctype?{ctype:"string",value:"negc("+e.value+")"}:{ctype:"string",value:"subc("+c.value+","+e.value+")"};if("^"===d.oper||"pow"===d.oper)return{ctype:"string",value:"powc("+c.value+","+e.value+")"}}if("function"===d.ctype&&1===d.args.length){c=t.compileToWebGL$1([d.args[0]],{});if("sin$1"===d.oper)return{ctype:"string",value:"sinc("+c.value+")"};if("cos$1"===d.oper)return{ctype:"string",value:"cosc("+c.value+")"};
-if("tan$1"===d.oper)return{ctype:"string",value:"tanc("+c.value+")"};if("exp$1"===d.oper)return{ctype:"string",value:"expc("+c.value+")"};if("log$1"===d.oper)return{ctype:"string",value:"logc("+c.value+")"};if("arctan$1"===d.oper)return{ctype:"string",value:"arctanc("+c.value+")"};if("arcsin$1"===d.oper)return{ctype:"string",value:"arcsinc("+c.value+")"};if("arccos$1"===d.oper)return{ctype:"string",value:"arccosc("+c.value+")"};if("sqrt$1"===d.oper)return{ctype:"string",value:"sqrtc("+c.value+")"}}return k};
-t.compileToWebGL$1=function(a,b){var c,d;c=D.formatForWebGL;var e=a[0];d=D.plotvars(e);-1===d.indexOf("a")&&-1===d.indexOf("b")&&-1===d.indexOf("c")&&-1===d.indexOf("d")&&-1===d.indexOf("e")&&-1===d.indexOf("f")&&(e=B(e));if("number"===e.ctype)return{ctype:"string",value:"vec2("+c(e.value.real)+","+c(e.value.imag)+")"};if("variable"===e.ctype)return{ctype:"string",value:e.name};if("string"===e.ctype||"void"===e.ctype)return e;if(2===e.args.length&&("infix"===e.ctype||"function"===e.ctype)){c=t.compileToWebGL$1([e.args[0]],
-{});d=t.compileToWebGL$1([e.args[1]],{});if("+"===e.oper||"add"===e.oper)return void 0===c.value||"void"===c.ctype?{ctype:"string",value:d.value}:{ctype:"string",value:"addc("+c.value+","+d.value+")"};if("*"===e.oper||"mult"===e.oper)return{ctype:"string",value:"multc("+c.value+","+d.value+")"};if("/"===e.oper||"div"===e.oper)return{ctype:"string",value:"divc("+c.value+","+d.value+")"};if("-"===e.oper||"sub"===e.oper)return void 0===c.value||"void"===c.ctype?{ctype:"string",value:"negc("+d.value+
-")"}:{ctype:"string",value:"subc("+c.value+","+d.value+")"};if("^"===e.oper||"pow"===e.oper)return{ctype:"string",value:"powc("+c.value+","+d.value+")"}}if("function"===e.ctype&&1===e.args.length){c=t.compileToWebGL$1([e.args[0]],{});if("sin$1"===e.oper)return{ctype:"string",value:"sinc("+c.value+")"};if("cos$1"===e.oper)return{ctype:"string",value:"cosc("+c.value+")"};if("tan$1"===e.oper)return{ctype:"string",value:"tanc("+c.value+")"};if("exp$1"===e.oper)return{ctype:"string",value:"expc("+c.value+
-")"};if("log$1"===e.oper)return{ctype:"string",value:"logc("+c.value+")"};if("arctan$1"===e.oper)return{ctype:"string",value:"arctanc("+c.value+")"};if("arcsin$1"===e.oper)return{ctype:"string",value:"arcsinc("+c.value+")"};if("arccos$1"===e.oper)return{ctype:"string$1",value:"arccosc("+c.value+")"};if("sqrt$1"===e.oper)return{ctype:"string",value:"sqrtc("+c.value+")"}}return k};t.setsimulationspeed$1=function(a,b){var c=B(a[0]);"number"===c.ctype&&sa(c.value.real);return k};t.setsimulationaccuracy$1=
-function(a,b){var c=B(a[0]);"number"===c.ctype&&"undefined"!==typeof O&&"undefined"!==typeof O.env&&(O.env.accuracy=Math.max(1,c.value.real|0));return k};t.setsimulationquality$1=function(a,b){var c=B(a[0]);"number"===c.ctype&&"undefined"!==typeof O&&"undefined"!==typeof O.env&&(c=c.value.real,0===c&&(O.env.errorbound=.01,O.env.lowestdeltat=1E-5,O.env.slowdownfactor=2),1===c&&(O.env.errorbound=.001,O.env.lowestdeltat=1E-7,O.env.slowdownfactor=2),2===c&&(O.env.errorbound=1E-5,O.env.lowestdeltat=1E-10,
-O.env.slowdownfactor=4),3===c&&(O.env.errorbound=1E-6,O.env.lowestdeltat=1E-12,O.env.slowdownfactor=4));return k};var Wb=null,dc=null;t.createtool$3=function(a,b){var c,d="left",e="top",g=null;b.space&&(c=A(b.space),"number"===c.ctype&&(g=c.value.real/2));var f=null;b.toolbar&&(c=A(b.toolbar),"string"===c.ctype&&((f=document.getElementById(c.value))||console.warn("Element #"+c.value+" not found")));if(!f){if(b.reference){var l=A(b.reference);if("string"===l.ctype)switch(l.value){case "UR":d="right";
-break;case "LL":e="bottom";break;case "LR":d="right",e="bottom"}}f=document.createElement("div");f.className="CindyJS-toolbar";ka.parentNode.appendChild(f);l=A(a[1]);c=A(a[2]);"number"===l.ctype&&(f.style[d]=l.value.real+"px");"number"===c.ctype&&(f.style[e]=c.value.real+"px");null!==g&&(f.style.margin=-g+"px")}l=A(a[0]);if("string"===l.ctype)l=[[l.value]];else if("list"===l.ctype)l=l.value.map(function(a){return"string"===a.ctype?[a.value]:"list"===a.ctype?a.value.map(function(a){return"string"===
-a.ctype?a.value:null}):[null]});else return console.log("Name must be a string or a list of strings"),k;if(b.flipped&&(c=A(b.flipped),"boolean"===c.ctype&&c.value)){console.log("Flipping");var m=0;c=l.length;l.forEach(function(a){a.length>m&&(m=a.length)});for(var n=[],p=0;p<m;++p){n[p]=[];for(var q=0;q<c;++q)n[p][q]=l[q][p]||null}l=n}"bottom"===e&&l.reverse();l.forEach(function(a){"right"===d&&a.reverse();var c=document.createElement("div");f.appendChild(c);a.forEach(function(a){function b(){Wb&&
-Wb.classList.remove("CindyJS-active");Wb=d;d.classList.add("CindyJS-active");qc=a;var c=G[qc].actions;dc&&(dc.textContent=c[0].tooltip||"");ua=[];sb=Ua=0}G.hasOwnProperty(a)||(console.log("Tool '"+a+"' not implemented yet."),a=null);if(null===a){var h=document.createElement("span");h.className="CindyJS-spacer";c.appendChild(h)}else{var d=document.createElement("button"),h=document.createElement("img");h.src=wa.getBaseDir()+"images/"+a+".png";d.appendChild(h);d.addEventListener("click",b);Wb||b();
-null!==g&&(d.style.margin=g+"px");c.appendChild(d)}})});return k};t.dropped$0=function(){return kc};t.droppoint$0=function(){return lc};t.parsecsv$1=function(a,b){var c=!0,d=B(b.autoconvert);"boolean"===d.ctype&&(c=d.value);var e=null,d=B(b.delimiter);"string"===d.ctype&&/^[^\"\r\n]$/.test(d.value)&&(e=d.value);d=B(a[0]);if("string"!==d.ctype)return console.log("CSV data is not a string"),k;var d=d.value,f='(?:"((?:[^"]+|"")*)"|([^]*?))(\r\n|(,)|[\r\n]|$)';e&&(e=e.replace(/[^A-Za-z0-9]/g,"\\$&").replace(/\$/g,
-"$$$$"),f=f.replace(/,/g,e));for(var f=new RegExp(f,"g"),e=[],m=[],n=null;f.lastIndex<d.length;){var p=f.exec(d),q=p[2];"string"===typeof p[1]&&(q=p[1].replace(/""/g,'"'));q=c?/^[Tt]rue$/.test(q)?w.bool(!0):/^[Ff]alse$/.test(q)?w.bool(!1):/^[\-+]?([0-9]+(\.[0-9]*)?|\.[0-9]+|Infinity)$/.test(q)?l.real(Number(q)):w.string(q):w.string(q);e.push(q);p[4]&&f.lastIndex===d.length&&(e.push(w.string("")),p={});if(!p[4]){null===n&&(n=e.length);if(n<e.length)for(n=e.length,p=0;p<m.length;++p)for(q=m[p].length;q<
-n;++q)m[p][q]=k;else if(n>e.length)for(p=e.length;p<n;++p)e[p]=k;m.push(e);e=[]}}return g.turnIntoCSList(m.map(g.turnIntoCSList))};t.load$2=function(a,b){return t.load$3([a[0],null,a[1]],b)};t.load$3=function(a,b){function c(){if(l.readyState===XMLHttpRequest.DONE){var c;200===l.status?c=w.string(String(l.responseText)):(ia.err("Failed to load "+f+": "+l.statusText),c=k);J.newvar(d);J.setvar(d,c);A(a[2]);J.removevar(d);e()}}var d="#";null!==a[1]&&"variable"===a[1].ctype&&(d=a[1].name);var g=B(a[0]),
-f=null,l=null;"string"===g.ctype&&/^https?:\/\//.test(g.value)&&(f=g.value);return null!==f?(l=new XMLHttpRequest,l.onreadystatechange=c,l.open("GET",f),l.send(),w.bool(!0)):k};D.extractPoint=function(a){var b={ok:!1};if("geo"===a.ctype){var c=a.value;if("P"===c.kind)return b.x=ya.getField(c,"x").value.real,b.y=ya.getField(c,"y").value.real,b.ok=!0,b}if("list"!==a.ctype)return b;var d=a.value;if(2===d.length&&(a=d[0],c=d[1],"number"===a.ctype&&"number"===c.ctype))return b.x=a.value.real,b.y=c.value.real,
-b.ok=!0,b;3===d.length&&(a=d[0],c=d[1],d=d[2],"number"===a.ctype&&"number"===c.ctype&&"number"===d.ctype&&(a=l.div(a,d),c=l.div(c,d),b.x=a.value.real,b.y=c.value.real,b.ok=!0));return b};t.draw$1=function(a,b){var c=B(a[0]);if("shape"===c.ctype)D.drawshape(c,b);else if("Line"===c.usage)x.handleModifs(b,x.lineModifs),x.drawline(c);else{var d=D.extractPoint(c);if(!d.ok){if("undefined"!==typeof c.value&&2===c.value.length)return t.draw$2(c.value,b);return}null!==b&&x.handleModifs(b,x.pointModifs);x.drawpoint(d)}return k};
-t.draw$2=function(a,b){var c=B(a[0]),d=B(a[1]),c=D.extractPoint(c),d=D.extractPoint(d);if(!c.ok||!d.ok)return k;null!==b&&x.handleModifs(b,x.lineModifs);x.drawsegcore(c,d);return k};t.drawcircle$2=function(a,b){return D.drawcircle(a,b,"D")};D.arcHelper=function(a){var b={};b.startPoint=M(a[0]);b.viaPoint=M(a[1]);b.endPoint=M(a[2]);return b};t.fillcircle$2=function(a,b){return D.drawcircle(a,b,"F")};t.drawarc$3=function(a,b){var c=D.arcHelper(a);return D.drawarc(c,b,"D")};t.fillarc$3=function(a,b){var c=
-D.arcHelper(a);return D.drawarc(c,b,"F")};D.drawarc=function(a,b,c){var d=a.startPoint,e=a.viaPoint;a=a.endPoint;if(!g._helper.isAlmostReal(g.turnIntoCSList([d,e,a])))return k;x.handleModifs(b,x.conicModifs);x.preDrawCurve();b=g.det3(d,e,a);if(1E-12<Math.abs(b.value.real)){b=m._helper.ConicBy5(null,d,e,a,g.ii,g.jj);var f=m._helper.CenterOfConic(b),f=g.normalizeMax(f);b=l.real(0);var n=g.turnIntoCSList([g.turnIntoCSList([f.value[2],b,l.neg(f.value[0])]),g.turnIntoCSList([b,f.value[2],l.neg(f.value[1])]),
-g.turnIntoCSList([b,b,f.value[2]])]);b=g.normalizeZ(w.mult(n,d));g.normalizeZ(w.mult(n,e));n=g.normalizeZ(w.mult(n,a));b=-Math.atan2(b.value[1].value.real,b.value[0].value.real);n=-Math.atan2(n.value[1].value.real,n.value[0].value.real);f=g.normalizeZ(f);d=g.normalizeZ(d);e=g.normalizeZ(e);a=g.normalizeZ(a);var p=g.abs(g.sub(d,f)),q=[f.value[0].value.real,f.value[1].value.real],f=z.drawingstate.matrix,t=q[0]*f.a-q[1]*f.b+f.tx,q=q[0]*f.c-q[1]*f.d-f.ty,d=0<g.det3(d,e,a).value.real;y.save();y.beginPath();
-y.translate(t,q);y.arc(0,0,p.value.real*f.sdet,b,n,d);"F"===c&&(y.fillStyle=x.lineColor,y.closePath(),y.fill());"D"===c&&y.stroke();y.restore()}else{if("D"!==c)return k;c=D.extractPoint(d);b=D.extractPoint(e);n=D.extractPoint(a);if(!c.ok||!b.ok||!n.ok)return k;p=(c.x-n.x)*(c.x-n.x)+(c.y-n.y)*(c.y-n.y);f=(n.x-b.x)*(n.x-b.x)+(n.y-b.y)*(n.y-b.y);if(1E-12>(c.x-b.x)*(c.x-b.x)+(c.y-b.y)*(c.y-b.y)||1E-12>p||1E-12>f)return k;0>g.crossratio3(d,a,e,g.cross(g.cross(d,e),g.linfty),g.ii).value.real?x.drawsegcore(c,
-n):x.drawRaySegment(d,a)}return k};D.drawcircle=function(a,b,c){var d=B(a[0]);a=B(a[1]);var e=D.extractPoint(d);if(!e.ok||"number"!==a.ctype||!l._helper.isAlmostReal(a))return k;var d=z.drawingstate.matrix,g=e.x*d.a-e.y*d.b+d.tx,e=e.x*d.c-e.y*d.d-d.ty;x.handleModifs(b,x.conicModifs);x.preDrawCurve();y.lineJoin="miter";y.beginPath();y.arc(g,e,Math.abs(a.value.real)*d.sdet,0,2*Math.PI);y.closePath();"D"===c&&y.stroke();"F"===c&&(y.fillStyle=x.lineColor,y.fill());"C"===c&&y.clip();return k};t.drawconic$1=
-function(a,b){var c;c=B(a[0]);if("list"!==c.ctype||3!==c.value.length&&6!==c.value.length)return console.error("could not parse conic"),k;if(6===c.value.length){for(var d=0;6>d;d++)if("number"!==c.value[d].ctype)return console.error("could not parse conic"),k;var e=l.real(.5),d=c.value[0],f=c.value[2],f=l.mult(f,e),m=c.value[1],n=c.value[3],n=l.mult(n,e),p=c.value[4],p=l.mult(p,e);c=c.value[5];c=g.turnIntoCSList([g.turnIntoCSList([d,f,n]),g.turnIntoCSList([f,m,p]),g.turnIntoCSList([n,p,c])])}else{for(d=
-0;3>d;d++)for(f=0;3>f;f++)if("number"!==c.value[d].value[f].ctype)return console.error("could not parse conic"),k;g.equals(c,g.transpose(c)).value||(d=w.mult(c,l.real(.5)),c=w.mult(g.transpose(c),l.real(.5)),c=g.add(d,c))}c=g.normalizeMax(c);return D.drawconic(c,b)};D.drawconic=function(a,b){x.handleModifs(b,x.conicModifs);if(0!==x.lsize){x.preDrawCurve();for(var c=g.normalizeMax(a),d=c,e=0;2>e;e++)for(var f=0;2>f;f++)if(Math.abs(c.value[e].value[f].value.imag)>l.eps)return;e=g.turnIntoCSList([g.realVector([-1,
--1,1]),g.realVector([1,0,0]),g.realVector([0,1,0])]);f=z.from(0,0,1);f[2]=1;var n=z.from(1,0,1);n[2]=1;var p=z.from(0,1,1);p[2]=1;var f=g.turnIntoCSList([g.realVector(f),g.realVector(n),g.realVector(p)]),f=g.transpose(f),e=w.mult(f,e),e=g.inverse(e),c=w.mult(g.transpose(e),c),c=w.mult(c,e),e=c.value[0].value[0].value.real,f=c.value[1].value[0].value.real,n=c.value[1].value[1].value.real,p=c.value[2].value[0].value.real,q=c.value[2].value[1].value.real,v=c.value[2].value[2].value.real,c=[[e,f,p],[f,
-n,q],[p,q,v]],u=1E-14>Math.abs(e*n*v-e*q*q-f*f*v+2*f*p*q-n*p*p);if(u&&"Circle"===a.usage){var A=w.mult(g.adjoint3(d),g.linfty);l.abs(A.value[2]).value.real>l.eps&&(u=!1)}var A=da>ca?da:ca,B=-1.5*A,C=1.5*A,D=-1.5*A,E=1.5*A,F=1;u&&(F=0);if(F)var p=0,p=1E-14<Math.abs(e-f)?Math.atan(f/e-n)/2:Math.PI/4,G=function(a){var c=Math.cos(a);a=Math.sin(a);return[[c,-a,0],[a,c,0],[0,0,1]]}(p),G=g.realMatrix(G),e=g.transpose(G),c=w.mult(g.realMatrix(c),G),c=w.mult(e,c),e=c.value[0].value[0].value.real,f=c.value[1].value[0].value.real,
-n=c.value[1].value[1].value.real,p=c.value[2].value[0].value.real,q=c.value[2].value[1].value.real,v=c.value[2].value[2].value.real;var c=[e,f,n,p,q,v],e=function(){var a=m._helper.splitDegenConic(d);if(a!==k){var c=a[1],a=[a[0]];t.draw$1(a,b);a[0]=c;t.draw$1(a,b)}},H=function(a){"undefined"!==a&&6===a.length||console.error("this does not define a Conic");if(u)return"degenerate";a=a[0]*a[2]-a[1]*a[1];return 1E-14>Math.abs(a)?"parabola":1E-14<a?"ellipsoid":"hyperbola"};H(c);var L=function(a,c){return 0<
-a&&a<da&&0<c&&c<ca},J=[],I=[],K=[],M=[],N=[],O=[],P=function(){J=[];I=[];K=[];M=[];N=[];O=[]},R=function(a,c){y.beginPath();y.moveTo(a[0],c[0]);for(var b=1;b<a.length;b++)y.lineTo(a[b],c[b]);y.stroke()},S=function(a,c,b){var h,d,e=H(a);if(6!==a.length)console.error("Conic needs 6 Parameters");else{var f=a[0],r=a[1],k=a[2],l=a[3],m=a[4];a=a[5];var n;h=b-c;for(var p=.1*h+c,na=b-.1*h,Q=c;Q<=b;Q+=n){n=Q<p||Q>na||100>Math.abs(b-c)?.5:0>Q||Q>ca?10:3;d=-f*k*Q*Q-2*f*m*Q-f*a+r*r*Q*Q+2*r*l*Q+l*l;d=Math.sqrt(d);
-h=1/f*(-r*Q-l+d);d=-1/f*(r*Q+l+d);var q,Ga;F?(q=[h,Q,1],Ga=[d,Q,1],q=w.mult(G,g.realVector(q)),Ga=w.mult(G,g.realVector(Ga)),h=q.value[0].value.real,d=Ga.value[0].value.real,q=q.value[1].value.real,Ga=Ga.value[1].value.real):Ga=q=Q;isNaN(h)||"ellipsoid"!==e?!isNaN(h)&&h>=B&&h<=C&&(J.push(h),K.push(q)):(J.push(h),K.push(q));isNaN(d)||"ellipsoid"!==e?!isNaN(d)&&d>=B&&d<=C&&(I.push(d),M.push(Ga)):(I.push(d),M.push(Ga))}}},f=function(a){var c,b,h;H(a);if(6!==a.length)console.error("Conic needs 6 Parameters");
-else{h=a[0];var d=a[1],e=a[2],f=a[3],g=a[4],r=a[5];c=-h*g+d*f;b=Math.sqrt(h*(-h*e*r+h*Math.pow(g,2)+Math.pow(d,2)*r-2*d*f*g+e*Math.pow(f,2)));e=h*e-Math.pow(d,2);1E-14<Math.abs(e)?(h=(c-b)/e,b=(c+b)/e):b=h=(-h*r+f*f)/(2*h*g-2*d*f);!isNaN(h)&&h>D&&h<E||(h=D);!isNaN(b)&&b>D&&b<E||(b=D);c=h<b?h:b;b=h>b?h:b;S(a,D,c);N=J.concat(I.reverse());O=K.concat(M.reverse());R(N,O);P();S(a,b,E);R(J,K);if(L(J[0],K[1])||L(I[0],M[0]))y.beginPath(),y.moveTo(J[0],K[0]),y.lineTo(I[0],M[0]),y.stroke();R(I,M);P();S(a,c,
-b);R(J,K);y.beginPath();y.moveTo(J[0],K[0]);y.lineTo(I[0],M[0]);y.stroke();y.beginPath();y.moveTo(J[J.length-1],K[K.length-1]);y.lineTo(I[I.length-1],M[M.length-1]);y.stroke();R(I,M);P()}};u?e():f(c)}};t.drawall$1=function(a,b){var c=A(a[0]);if("list"===c.ctype){x.handleModifs(b,x.pointAndLineModifs);for(var d=0;d<c.value.length;d++)t.draw$1([c.value[d]],null)}return k};t.connect$1=function(a,b){return D.drawpolygon(a,b,"D",!1)};t.drawpoly$1=function(a,b){return D.drawpolygon(a,b,"D",!0)};t.fillpoly$1=
-function(a,b){return D.drawpolygon(a,b,"F",!0)};t.drawpolygon$1=function(a,b){return D.drawpolygon(a,b,"D",!0)};t.fillpolygon$1=function(a,b){return D.drawpolygon(a,b,"F",!0)};D.drawpolygon=function(a,b,c,d){function e(){for(var a=l.value,c=0;c<a.length;c++){var b=a[c],h;for(h=0;h<b.length;h++){var d=b[h],f=d.X*g.a-d.Y*g.b+g.tx,d=d.X*g.c-d.Y*g.d-g.ty;0===h?y.moveTo(f,d):y.lineTo(f,d)}y.closePath()}}function f(){var a;for(a=0;a<l.value.length;a++){var c=D.extractPoint(l.value[a]);if(!c.ok)return;var b=
-c.x*g.a-c.y*g.b+g.tx,c=c.x*g.c-c.y*g.d-g.ty;0===a?y.moveTo(b,c):y.lineTo(b,c)}d&&y.closePath()}x.handleModifs(b,x.conicModifs);x.preDrawCurve();var g=z.drawingstate.matrix,l=A(a[0]);y.beginPath();"list"===l.ctype&&f();"shape"===l.ctype&&e();"D"===c&&(x.fillColor&&(y.fillStyle=x.fillColor,y.fill(x.fillrule)),y.stroke());"F"===c&&(y.fillStyle=x.lineColor,y.fill(x.fillrule));"C"===c&&y.clip();return k};var Bc=Yc,td=function(a,b,c){if(-1!==b.indexOf("\n"))for(b=b.split("\n"),a.textContent=b[0],c=1;c<
-b.length;++c)a.appendChild(document.createElement("br")),a.appendChild(document.createTextNode(b[c]));else a.textContent=b};D.drawtext=function(a,b,c){var d=B(a[0]);a=A(a[1]);var e=D.extractPoint(d);if(!e.ok)return null;x.handleModifs(b,x.textModifs);b=z.drawingstate.textsize;null===b&&(b=la.textsize);null!==x.size&&(b=x.size);y.fillStyle=x.textColor;var f=z.drawingstate.matrix,d=e.x*f.a-e.y*f.b+f.tx+x.xOffset,e=e.x*f.c-e.y*f.d-f.ty-x.yOffset;a=ba(a);f=x.bold+x.italics+Math.round(10*b)/10+"px "+x.family;
-y.font=f;return c?c(a,f,d,e,x.align,b):Bc(y,a,d,e,x.align,b,b*la.lineHeight)};t.drawtext$2=function(a,b){D.drawtext(a,b,null);return k};t.drawtable$2=function(a,b){var c=B(a[0]),d=B(a[1]),e=D.extractPoint(c);if(!e.ok||"list"!==d.ctype)return k;var d=d.value,c=d.length,f=-1,l;for(l=0;l<c;++l)"list"===d[l].ctype&&d[l].value.length>f&&(f=d[l].value.length);-1===f?(d=d.map(function(a){return[a]}),f=1):d=d.map(function(a){return g.asList(a).value});var m=100,n=null,p=!0,q=z.drawingstate.textcolor;x.handleModifs(b,
-{size:!0,color:function(a){g._helper.isNumberVecN(a,3)&&(q=x.makeColor([a.value[0].value.real,a.value[1].value.real,a.value[2].value.real]))},alpha:!0,bold:!0,italics:!0,family:!0,align:!0,x_offset:!0,y_offset:!0,offset:!0,width:function(a){"number"===a.ctype&&(m=a.value.real)},height:function(a){"number"===a.ctype&&(n=a.value.real)},border:function(a){"boolean"===a.ctype&&(p=a.value)}});var t=z.drawingstate.textsize;null===t&&(t=la.textsize);null!==x.size&&(t=x.size);null===n&&(n=1.6*t);y.font=x.bold+
-x.italics+Math.round(10*t)/10+"px "+x.family;l=z.drawingstate.matrix;var v=f*m,u=c*n,t=e.x*l.a-e.y*l.b+l.tx+x.xOffset,w=e.x*l.c-e.y*l.d-l.ty-x.yOffset-u;if(p){x.preDrawCurve();y.strokeStyle=x.lineColor;y.beginPath();for(l=1;l<c;++l)y.moveTo(t,w+l*n),y.lineTo(t+v,w+l*n);for(e=1;e<f;++e)y.moveTo(t+e*m,w),y.lineTo(t+e*m,w+u);y.stroke();y.lineWidth=x.lsize+1;y.beginPath();y.rect(t,w,v,u);y.stroke()}t+=x.align*m+(1-2*x.align)*n*.3;w+=.7*n;y.fillStyle=q;for(l=0;l<c;++l)for(e=0;e<f;++e)v=ba(d[l][e]),Bc(y,
-v,t+e*m,w+l*n,x.align);return k};D.drawshape=function(a,b){return"polygon"===a.type?D.drawpolygon([a],b,"D",1):"circle"===a.type?D.drawcircle([a.value.value[0],a.value.value[1]],b,"D"):k};D.fillshape=function(a,b){return"polygon"===a.type?D.drawpolygon([a],b,"F",1):"circle"===a.type?D.drawcircle([a.value.value[0],a.value.value[1]],b,"F"):k};D.clipshape=function(a,b){return"polygon"===a.type?D.drawpolygon([a],b,"C",1):"circle"===a.type?D.drawcircle([a.value.value[0],a.value.value[1]],b,"C"):k};t.fill$1=
-function(a,b){var c=A(a[0]);return"shape"===c.ctype?D.fillshape(c,b):k};t.clip$1=function(a,b){var c=A(a[0]);return"shape"===c.ctype?D.clipshape(c,b):"list"===c.ctype?(c=t.polygon$1(a,[]),t.clip$1([c],[])):k};t.plot$1=function(a,b){return t.plot$2([a[0],null],b)};t.plot$2=function(a,b){function c(a){return"number"===a.ctype&&l._helper.isAlmostReal(a)}function d(a,c,b,h,e){n++;c=+c.value.real;e=+h.value.real;h=c*E.a-e*E.b+E.tx;c=c*E.c-e*E.d-E.ty;a=+a.value.real;e=+b.value.real;b=a*E.a-e*E.b+E.tx;a=
-a*E.c-e*E.d-E.ty;p?(y.lineTo(b,a),y.lineTo(h,c)):(y.beginPath(),y.moveTo(b,a),y.lineTo(h,c),p=!0)}function e(a,b,h,g,k){var n=c(h),q=c(g);if(.001>k)!f&&p&&(y.stroke(),p=!1);else if(n||q){var t=l.real((a.value.real+b.value.real)/2);J.setvar(B,t);var v=A(w),u=c(v);if(n&&q&&u){var Nb=h.value.real,q=v.value.real,u=g.value.real;if(n=1>Math.abs(Nb+u-2*q)/m){var x=l.real((a.value.real+t.value.real)/2);J.setvar(B,x);var x=A(w),fc=l.real((t.value.real+b.value.real)/2);J.setvar(B,fc);fc=A(w);Nb=Math.abs(Nb+
-q-2*x.value.real)/m;q=Math.abs(q+u-2*fc.value.real)/m;n=n&&1>Nb&&1>q}n?(d(a,t,h,v,k/2),d(t,b,v,g,k/2)):(e(a,t,h,v,k/2),e(t,b,v,g,k/2))}else e(a,t,h,v,k/2),e(t,b,v,g,k/2)}}var f=!1,m=.2/Kb,n=0,p=!1,q=-10,t=10,v=.1,u=1E3,w=a[0],B;if(null!==a[1]&&"variable"===a[1].ctype)B=a[1].name;else{var C=D.plotvars(w);B="#";-1!==C.indexOf("t")&&(B="t");-1!==C.indexOf("z")&&(B="z");-1!==C.indexOf("y")&&(B="y");-1!==C.indexOf("x")&&(B="x")}J.newvar(B);var E=z.drawingstate.matrix;x.handleModifs(b,{color:!0,alpha:!0,
-size:!0,dashpattern:!0,dashtype:!0,dashing:!0,lineCap:!0,lineJoin:!0,miterLimit:!0,connect:function(a){"boolean"===a.ctype&&(f=a.value)},start:function(a){"number"===a.ctype&&(q=a.value.real)},stop:function(a){"number"===a.ctype&&(t=a.value.real)},steps:function(a){"number"===a.ctype&&(u=a.value.real)}});y.strokeStyle=x.lineColor;y.lineWidth=x.lsize;var F,G,H,I,p=!1,C=l.real(14.32);J.setvar(B,C);H=A(w);if("number"!==H.ctype){if(g.isNumberVector(H).value&&2===H.value.length){p=!1;v=(t-q)/u;for(C=q;C<
-t;C+=v)J.setvar(B,l.real(C)),I=A(w),g.isNumberVector(I).value&&2===I.value.length&&(F=+I.value[0].value.real,G=+I.value[1].value.real,I=F*E.a-G*E.b+E.tx,F=F*E.c-G*E.d-E.ty,p?y.lineTo(I,F):(y.beginPath(),y.moveTo(I,F),p=!0));y.stroke();J.removevar(B)}return k}for(I=q;I<t+v;I+=v)C=l.real(I),J.setvar(B,C),H=A(w),C.value.real>q&&e(F,C,G,H,v),F=C,G=H;J.removevar(B);p&&y.stroke();return k};t.plotX$1=function(a,b){var c=a[0],d=D.plotvars(c),e="#";-1!==d.indexOf("t")&&(e="t");-1!==d.indexOf("z")&&(e="z");
--1!==d.indexOf("y")&&(e="y");-1!==d.indexOf("x")&&(e="x");J.newvar(e);d=z.drawingstate.matrix;y.fillStyle=z.drawingstate.linecolor;y.lineWidth=1;y.lineCap=x.lineCap;y.lineJoin=x.lineJoin;y.miterLimit=x.miterLimit;for(var f=!1,g=-10;10>g;g+=.01){J.setvar(e,l.real(g));var m=A(c);if("number"===m.ctype){var n=+m.value.real,m=g*d.a-n*d.b+d.tx,n=g*d.c-n*d.d-d.ty;f?y.lineTo(m,n):(y.beginPath(),y.moveTo(m,n),f=!0)}}y.stroke();J.removevar(e);return k};D.plotvars=function(a){function b(a,c){var h={},d;for(d=
-a.length-1;0<=d;--d)h[a[d]]=a[d];for(d=c.length-1;0<=d;--d)h[c[d]]=c[d];d=[];for(var e in h)h.hasOwnProperty(e)&&d.push(h[e]);return d}function c(a,c){for(var b=0;b<a.length;b++)a[b]===c&&(a.splice(b,1),b--);return a}var d,e,f,g;if("variable"===a.ctype)return[a.name];if("infix"===a.ctype)return d=D.plotvars(a.args[0]),a=D.plotvars(a.args[1]),b(d,a);if("list"===a.ctype){f=a.value;e=[];for(g=0;g<f.length;g++)d=D.plotvars(f[g]),e=b(e,d);return e}if("function"===a.ctype){f=a.args;e=[];for(g=0;g<f.length;g++)d=
-D.plotvars(f[g]),e=b(e,d);"apply"!==a.oper&&"select"!==a.oper&&"forall"!==a.oper&&"sum"!==a.oper&&"product"!==a.oper&&"repeat"!==a.oper&&"min"!==a.oper&&"max"!==a.oper&&"sort"!==a.oper||"variable"!==a.args[1].ctype||(e=c(e,a.args[1].name));return e}return[]};t.clrscr$0=function(a,b){"undefined"!==typeof da&&"undefined"!==typeof ca&&y.clearRect(0,0,da,ca);return k};t.repaint$0=function(a,b){e();return k};t.screenbounds$0=function(a,b){var c=w.withUsage(g.realVector(z.to(0,0)),"Point"),d=w.withUsage(g.realVector(z.to(da,
-0)),"Point"),e=w.withUsage(g.realVector(z.to(da,ca)),"Point"),f=w.withUsage(g.realVector(z.to(0,ca)),"Point");return g.turnIntoCSList([c,d,e,f])};t.createimage$3=function(a,b){var c=A(a[0]),d=B(a[1]),e=B(a[2]);if("number"!==d.ctype||"number"!==e.ctype||"string"!==c.ctype)return k;var f=document.createElement("canvas");f.id=c.value;f.width=d.value.real;f.height=e.value.real;f.style.display="none";document.body.appendChild(f);Xa[c.value]=aa(f,!1);return k};t.clearimage$1=function(a,b){var c=A(a[0]);
-if("string"!==c.ctype&&"image"!==c.ctype)return k;var c=La(c),d=c.img;if("undefined"===typeof d||null===d)return k;var e=c.width,f=c.height;d.getContext("2d").clearRect(0,0,e,f);c.generation++;return k};t.canvas$4=function(a,b){var c=B(a[0]),d=B(a[1]),e=A(a[2]),f=a[3],g=D.extractPoint(c),l=D.extractPoint(d);if(!g.ok||!l.ok||"string"!==e.ctype&&"image"!==e.ctype)return k;e=La(e);if(!e||!e.img.getContext)return k;var d=e.img,m=e.width,c=e.height,n=l.x-g.x,p=l.y-g.y,q=g.x-p*c/m,t=g.y+n*c/m,p=l.x-p*c/
-m,n=l.y+n*c/m,l=z.from(g.x,g.y,1),q=z.from(q,t,1),p=z.from(p,n,1),g=l[0],t=l[1],n=q[0],v=q[1],u=p[0],w=p[1],q=m*(t-v)/((g-n)*(t-w)-(g-u)*(t-v)),m=m*(g-n)/((t-v)*(g-u)-(t-w)*(g-n)),p=-q*g-m*t,l=(c*(t-w)-c*(t-v))/((g-n)*(t-w)-(g-u)*(t-v)),n=(c*(g-u)-c*(g-n))/((t-v)*(g-u)-(t-w)*(g-n)),c=c-l*g-n*t,d=d.getContext("2d"),g=y;y=d;y.save();y.transform(q,l,m,n,p,c);e.generation++;A(f);y.restore();y=g};t.canvas$5=function(a,b){var c=B(a[0]),d=B(a[1]),e=B(a[2]),f=A(a[3]),g=a[4],c=D.extractPoint(c),l=D.extractPoint(d),
-m=D.extractPoint(e);if(!c.ok||!l.ok||!m.ok||"string"!==f.ctype&&"image"!==f.ctype)return k;f=La(f);if(!f||!f.img.getContext)return k;var e=f.img,n=f.width,d=f.height,p=z.from(c.x,c.y,1),q=z.from(l.x,l.y,1),l=z.from(m.x,m.y,1),c=p[0],m=p[1],t=q[0],v=q[1],u=l[0],w=l[1],l=((0-n)*(m-w)-0*(m-v))/((c-t)*(m-w)-(c-u)*(m-v)),n=((0-n)*(c-u)-0*(c-t))/((m-v)*(c-u)-(m-w)*(c-t)),q=0-l*c-n*m,p=((d-d)*(m-w)-(d-0)*(m-v))/((c-t)*(m-w)-(c-u)*(m-v)),t=((d-d)*(c-u)-(d-0)*(c-t))/((m-v)*(c-u)-(m-w)*(c-t)),d=d-p*c-t*m,e=
-e.getContext("2d"),c=y;y=e;y.save();y.transform(l,p,n,t,q,d);f.generation++;A(g);y.restore();y=c};t.screenresolution$0=function(a,b){return l.real(z.drawingstate.matrix.a)};t.layer$1=function(a,b){};t.imagesize$1=function(a,b){var c=La(B(a[0]));return c?g.realVector([+c.width,+c.height]):k};t.imageready$1=function(a,b){var c=La(B(a[0]));return w.bool(!(!c||!c.ready))};t.drawimage$2=function(a,b){function c(){var a=1,c=1,d=1,f=1,r=0,l=1,n=D.extractPoint(e);if(!n.ok)return k;m=La(m);if(!m)return k;
-y.save();var p;void 0!==b.angle&&(p=A(b.angle),"number"===p.ctype&&(r=p.value.real));void 0!==b.rotation&&(p=A(b.rotation),"number"===p.ctype&&(r=p.value.real));void 0!==b.scale&&(p=B(b.scale),"number"===p.ctype&&(c=a=p.value.real),g.isNumberVector(p).value&&2===p.value.length&&(a=p.value[0].value.real,c=p.value[1].value.real));void 0!==b.scalex&&(p=A(b.scalex),"number"===p.ctype&&(a=p.value.real));void 0!==b.scaley&&(p=A(b.scaley),"number"===p.ctype&&(c=p.value.real));void 0!==b.flipx&&(p=A(b.flipx),
-"boolean"===p.ctype&&p.value&&(d=-1));void 0!==b.flipy&&(p=A(b.flipy),"boolean"===p.ctype&&p.value&&(f=-1));void 0!==b.alpha&&(p=A(b.alpha),"number"===p.ctype&&(l=p.value.real));var q=z.drawingstate.matrix,Q=z.drawingstate.initialmatrix,t=m.width,v=m.height;p=n.x*q.a-n.y*q.b+q.tx;var u=n.x*q.c-n.y*q.d-q.ty,w=(n.x+1)*q.a-n.y*q.b+q.tx-p,q=(n.x+1)*q.c-n.y*q.d-q.ty-u,Ga=(n.x+1)*Q.a-n.y*Q.b+Q.tx-(n.x*Q.a-n.y*Q.b+Q.tx),Q=(n.x+1)*Q.c-n.y*Q.d-Q.ty-(n.x*Q.c-n.y*Q.d-Q.ty),n=Math.sqrt(w*w+q*q)/Math.sqrt(Ga*
-Ga+Q*Q),w=-Math.atan2(w,q)+Math.atan2(Ga,Q),q=z.drawingstate.matrix.sdet/72,a=a*q,c=c*q;1!==l&&(y.globalAlpha=l);y.translate(p,u);y.scale(a*d*n,c*f*n);y.rotate(r+w);y.translate(-p,-u);y.translate(-t/2,-v/2);a=m;a.drawTo?a.drawTo(y,p,u):y.drawImage(a.img,p,u);y.globalAlpha=1;y.restore()}function d(){var a=1,c=1,g=1,r=1,n=D.extractPoint(e),p=D.extractPoint(f),q;if(!n.ok||!p.ok)return k;m=La(m);if(!m)return k;var t=m.width,v=m.height;if(0===l)q={},q.x=n.x-(p.y-n.y),q.y=n.y+(p.x-n.x),r=v/t;else if(q=
-D.extractPoint(l),!n.ok)return k;y.save();var u;void 0!==b.alpha&&(u=A(b.alpha),"number"===u.ctype&&(a=u.value.real));void 0!==b.aspect&&(u=A(b.aspect),"number"===u.ctype&&(r=u.value.real));void 0!==b.flipx&&(u=A(b.flipx),"boolean"===u.ctype&&u.value&&(c=-1));void 0!==b.flipy&&(u=A(b.flipy),"boolean"===u.ctype&&u.value&&(g=-1));u=z.drawingstate.matrix;1!==a&&(y.globalAlpha=a);a=n.x*u.a-n.y*u.b+u.tx;n=n.x*u.c-n.y*u.d-u.ty;y.transform(p.x*u.a-p.y*u.b+u.tx-a,p.x*u.c-p.y*u.d-u.ty-n,q.x*u.a-q.y*u.b+u.tx-
-a,q.x*u.c-q.y*u.d-u.ty-n,a,n);y.scale(1/t,-1/v*r);y.translate(t/2,-v/2);y.scale(c,g);y.translate(-t/2,v/2);y.translate(0,-v);c=m;c.drawTo?c.drawTo(y,0,0):y.drawImage(c.img,0,0);y.globalAlpha=1;y.restore()}var e,f,l,m;return 2===a.length?(e=B(a[0]),m=B(a[1]),c()):3===a.length?(e=B(a[0]),f=B(a[1]),l=0,m=B(a[2]),d()):4===a.length?(e=B(a[0]),f=B(a[1]),l=B(a[2]),m=B(a[3]),d()):k};t.drawimage$3=t.drawimage$2;t.drawimage$4=t.drawimage$2;t.allimages$0=function(){var a=[];Object.keys(Xa).forEach(function(b){a.push({ctype:"string",
-value:b})});return g.turnIntoCSList(a)};t.cameravideo$0=function(a,b){function c(a){return{video:{width:a,advanced:[{width:{max:a,min:a}},{width:{ideal:a}}]},audio:!1}}var d=!0,e={};if(void 0!==b.resolution){var f=A(b.resolution);"string"===f.ctype&&"maximal"===f.value?d=!0:"number"===f.ctype?(d=!1,e=c(f.value.real)):g._helper.isNumberVecN(f,2)&&(d=!1,e=c(f.value[0].value.real),f=f.value[1].value.real,10>f||!Number.isInteger(f)?(e.video.aspectRatio=f,e.video.advanced[0].aspectRatio={min:f,max:f},
-e.video.advanced[1].aspectRatio={ideal:f}):(e.video.height=f,e.video.advanced[0].height={min:f,max:f},e.video.advanced[1].height={ideal:f}))}d&&(e=[320,640,1024,1280,1920,2560],e=e.map(function(a){return{width:{min:a}}}),e={video:{width:16E3,height:9E3,advanced:e},audio:!1});var d=null,l=navigator.mediaDevices&&navigator.mediaDevices.getUserMedia;l?d=function(a,c){navigator.mediaDevices.getUserMedia(e).then(a,c)}:(l=navigator.getUserMedia||navigator.webkitGetUserMedia||navigator.mozGetUserMedia||
-navigator.msGetUserMedia)&&(d=function(a,c){l.call(navigator,e,a,c)});if(!d)return console.warn("getUserMedia call not supported"),k;var m=document.createElement("video");m.autoplay=!0;f=aa(m,!0);console.log("Opening stream.");d(function(a){a=window.URL.createObjectURL(a);m.src=a;m.addEventListener("loadeddata",I)},function(a){console.error("Could not get user video:",String(a),a)});return f};t.playvideo$1=function(a,b){var c=La(B(a[0]));c.live&&c.img.play&&c.img.play();return k};t.pausevideo$1=function(a,
-b){var c=La(B(a[0]));c.live&&c.img.pause&&c.img.pause();return k};var Db;t.imagergba$3=function(a,b){var c=La(B(a[0])),d=B(a[1]),e=B(a[2]);if(!c||"number"!==d.ctype||"number"!==e.ctype||!c.ready)return k;d=Math.round(d.value.real);e=Math.round(e.value.real);if(!Fa(d)||!Fa(e))return k;c=rb(c,d,e,1,1);return g.realVector([255*c[0],255*c[1],255*c[2],c[3]])};t.imagergb$3=t.imagergba$3;t.imagergba$4=function(a,b){var c=La(B(a[2]));if(!c||!c.ready)return k;var d=c.width,e=c.height,f=M(a[0]),l=M(a[1]),m=
-M(g.realVector([0,e,1])),d=M(g.realVector([d,e,1]));if(f===k||l===k||n===k)return k;var n=g.ii,e=g.jj,m=D.basismap(m,d,n,e),f=D.basismap(f,l,e,n),n=M(a[3]);var p=D.extractPoint(w.mult(m,w.mult(g.adjoint3(f),n)));if(p.ok){var l=c.width,m=c.height,n=!0,q=!1;void 0!==b.interpolate&&(f=A(b.interpolate),"boolean"===f.ctype&&(n=f.value));void 0!==b.repeat&&(f=A(b.repeat),"boolean"===f.ctype&&(q=f.value));n&&(p.x-=.5,p.y-=.5);q&&(p.x=(p.x%l+l)%l,p.y=(p.y%m+m)%m);d=Math.floor(p.x);e=Math.floor(p.y);if(Fa(d)&&
-Fa(e)){f=[0,0,0,0];if(n){var n=p.x-d,p=p.y-e,t=rb(c,d,e,2,2);if(q){if(d===l-1||e===m-1)var q=rb(c,(d+1)%l,e,1,1),u=rb(c,d,(e+1)%m,1,1),c=rb(c,(d+1)%l,(e+1)%m,1,1),t=t.slice(0,4).concat(q,u,c)}else{if(-1===d||d===l-1)n=Math.round(n);if(-1===e||e===m-1)p=Math.round(p)}for(c=0;4>c;c++)f[c]=(1-p)*((1-n)*t[c]+n*t[c+4])+p*((1-n)*t[c+8]+n*t[c+12])}else f=rb(c,d,e,1,1);c=g.realVector(f)}else c=k}else c=k;return c};t.imagergb$4=function(a,b){var c=t.imagergba$4(a,b);return c===k?k:g.turnIntoCSList(c.value.slice(0,
-3))};"use strict";var re=[{key:[":"],field:["."],deg:["\u00b0"],take:["_"]},{functionCall:!0},{rassoc:!0,pow:["^"],sqrt:["\u221a"]},{mul:["*","\u2062","\u22c5","\u00b7"],cross:["\u00d7"],div:["/","\u00f7","\u2215","\u2236"]},{add:["+"],sub:["-","\u2212"],neg:["!","\u00ac"]},{seq:[".."]},{eq:["==","\u225f"],ne:["!=","<>","\u2260"],lt:["<"],gt:[">"],le:["<=","\u2264","\u2266"],ge:[">=","\u2265","\u2267"],aeq:["~=","\u2248"],ane:["~!=","\u2249"],alt:["~<","\u2a89"],agt:["~>","\u2a8a"],ale:["~<=","\u2a85"],
-age:["~>=","\u2a86"],"in":["\u2208"],nin:["\u2209"]},{and:["&","\u2227"],or:["%","\u2228"]},{rassoc:!0,prepend:["<:"]},{concat:["++","\u222a"],remove:["--","\u2216"],common:["~~","\u2229"],append:[":>"]},{rassoc:!0,assign:["="],define:[":="],undefine:[":=_"],bdefine:["::="]},{seq:[";"]},{modif:["->","\u2192"]},{rassoc:!0,list:[","]}],se=["+","-"],te=["!","\u221a"],ue=["\u00b0",":=_"],ve=[";",","],Cc=[],xa={},cd;(function(){var a=0;re.forEach(function(b){a+=2;var c=!!b.rassoc;b.functionCall&&(cd=a);
-for(var d in b){var e=b[d];if("boolean"!==typeof e)for(var f={name:d,sym:e[0],symbols:e,rassoc:c,precedence:a,prefix:!1,postfix:!1,infix:!0,bare:!1},g=0;g<e.length;++g){var l=e[g];if(xa.hasOwnProperty(l))throw Error("Duplicate operator: "+l);xa[l]=f;Cc.push(l)}}});se.forEach(function(a){xa[a].prefix=!0});te.forEach(function(a){xa[a].prefix=!0;xa[a].infix=!1});ue.forEach(function(a){xa[a].postfix=!0;xa[a].infix=!1});ve.forEach(function(a){xa[a].prefix=!0;xa[a].postfix=!0;xa[a].infix=!0;xa[a].bare=
-!0})})();Cc.sort(function(a,b){return b.length-a.length});var we="(?:[0-9](?: [0-9])*(?: \\.(?! \\.)(?: [0-9])*)?|\\.(?: [0-9])+)(?: [Ee](?: [+-])?(?: [0-9])+)?".replace(/ /g,"[ \t]*"),xe="(?:[\u207a\u207b] )?[\u2070\u00b9\u00b2\u00b3\u2074\u2075\u2076\u2077\u2078\u2079](?: [\u2070\u00b9\u00b2\u00b3\u2074\u2075\u2076\u2077\u2078\u2079])*".replace(/ /g,"[ \t]*"),ye="(?:[\u208a\u208b] )?[\u2080\u2081\u2082\u2083\u2084\u2085\u2086\u2087\u2088\u2089](?: [\u2080\u2081\u2082\u2083\u2084\u2085\u2086\u2087\u2088\u2089])*".replace(/ /g,
-"[ \t]*"),Dc=function(a,b,c){var d,e,f=0,g="(?:[",l=b.length;for(d=0;d<l;++d)e=b.charCodeAt(d),55296<=e?(g+="]|"+b.charAt(d)+"[",f=56320):(g+=String.fromCharCode(e=f=a[e-32]+f),f+=a[b.charCodeAt(++d)-32],f!==e&&(f!==e+1&&(g+="-"),g+=String.fromCharCode(f)));return g+"]|["+c+"][\udc00-\udfff])"}([2,0,106,3,4,1,6,5,7,11,17,8,12,21,9,22,30,10,15,24,25,16,13,42,46,14,18,19,29,37,27,28,35,26,32,36,40,43,47,53,20,48,50,56,33,34,39,51,52,55,63,64,65,68,85,23,31,38,45,49,105,59,66,69,72,88,102,114,117,128,
-157,191,41,44,54,60,67,70,71,73,74,75,76,80,81,82,83,84,86,87,89,93,94,98,99,107,108,116,122,130,132,134,138,160,165,185,195,196,255,268,277,310,332,339,362,365,390,449,457,470,512,513,541,568,582,619,673,726,768,820,921,991,1164,2684,6581,8453,11171,20949],"T4(4I!)!'!&/ 0 \u0096')2$+! !\u0083$ %## !(! ! ; u \u0086.\u0088 =#!+YoA& 87C% } !5%+%) #!*! <0a,!4B1%'!&-'!1!$!33`HsG$!;!+.52'(#%#- & !$#$!*!9% 2%H''%#- & % % %B# !H *+ - & % $$!;!5%3!,(#%#- & % $$!X% 5!:! '$ #$% ! %$%$ $)W!G( / 2$!> &%C( / . $$!L! %5%;( D#!*!* 4'&*$W + !#&]F %6&]% !#% !#!(# & ! !#% # %1!#$ !/#L!S( @?$\u00817-!*''#$!$%+ ',6!:= !&!#7 \u0090 ##& ! ##D ##B ##& ! ##9 K ##^Y2*V#'$\u009d#5 4&p((+, #2*2*2, 5OC!'!Uy.D !&_)0J<#$,E'4Q/1Pv!|8:&K<9%)E>@7 )@\u0080# #$%1gT\u008e#'#=#'#( ! ! ! 0#P & !$ &$##'',& &d!9!*,b!'!#. !$$(! ! ! # 1##&$'!G%\u00a58 8 \u0084(#$%6= !&!#Q+!*/1& & & & & & & &t!\u0097%E$&%'V( z #&D${:Aj2\u0099\u00a6q\u00a9E\u00a4UZ#\u008d$2)%-8*0#_J+#b#M#(S1 # /0O2[R'$! !6>)/A?+8<!*$ .)$ D3 (-/$!$[ !$%#$#! !4 #1+ 6'#'#'1& & 7 .)c0\u00a86/'I\u00a7\u0093#\\N&6$&! . , $ ! % % \u007fM\u0092;R#Gh)d$ \u0085=4(4,a$'#'#'# \ud800!) 4 : % 9#6@\u0082\u0094?$IIX*5 ((=)<#@'(\ud801!f~N.Of\u008f1-)(\ud802!'#! E %$!#/)/10^: %)-)4nQ(%T!5# AZ?$?C( >?G)-):9*\ud803!`KJ9J\ud804#PriL3>@7M$!6F2#/! !C* 3V& ! # 9 .+8N(#%#- & % $$!;!6$\ud805eF-% !\u008987#=F-!k7x4\ud806\u0087RB!\u0095K\ud808!\u00a2\ud809e\u008a\ud80d!8\ud811!\u009c\ud81a!\u009b+0c<;F*#BH&:\ud81b\u00a0U,!l,\ud82c!%\ud82f!\"&,$++.\ud835!w m %#!#%## ) ! & S ##( & > # $ !$& \u0091#3 3 0 3 0 3 0 3 0 3 (\ud83a!\u008b\ud83b\u0098# A % !#! . # ! !(!'! ! ! % !#! ! ! ! ! % !## & # # ! . 5& $ 5\ud869!\u009f7\u008c\ud86d!\u00a1,g\ud86e!<#\u00a3\ud873!\u009e\ud87e!\u009a",
-"\ud80c\ud840-\ud868\ud86a-\ud86c\ud86f-\ud872"),ze=("#(?: [1-9])?|(?:'|"+Dc+")(?: (?:[0-9']|"+Dc+"))*").replace(/ /g,"[ \t]*"),$c=["([ \t\n]+)|(//.*)|(/\\*)","("+we+")","("+Cc.map(Zc).join("|")+")","("+"[](){}||".split("").map(Zc).join("|")+")","("+ye+")","("+xe+")","("+ze+")",'("[^"]*")|($)'].join("|"),Ae=new RegExp("[ \t]*".replace(/\*$/,"+"),"g"),Ec="ANY WS COMMENT START_COMMENT NUM OP BRA SUB SUP ID STR EOF".split(" ");(function(){var a=(new RegExp($c,"g")).exec("");if(a.hasOwnProperty(Ec.length))throw Error("RE has more groups than expected");
-if(!a.hasOwnProperty(Ec.length-1))throw Error("RE has fewer groups than expected");})();kb.prototype.advanceBy=function(a){this.advanceTo(this.pos+a)};kb.prototype.advanceTo=function(a){for(this.pos=a;this.bols[0]<=a;)this.bol=this.bols.shift(),this.line++};kb.prototype.curPos=function(){return{row:this.line,col:this.pos-this.bol,pos:this.pos}};kb.prototype.nextInternal=function(){var a=this.re.exec(this.input);if(a.index!==this.pos)throw ha("Invalid token",this.curPos(),this.input.substring(this.pos,
-a.index));var b=this.curPos();this.advanceBy(a[0].length);var c=this.curPos(),d;for(d=1;null==a[d];++d);return{start:b,end:c,raw:a[0],text:a[0].replace(Ae,""),toktype:Ec[d]}};kb.prototype.next=function(){var a;do if(a=this.nextInternal(),"START_COMMENT"===a.toktype){var b=/\*\/|\/\*/g;b.lastIndex=a.start.pos+2;for(var c=1,d;0<c;)if(d=b.exec(this.input))"/*"===d[0]?++c:--c;else throw ha("Unterminated comment",a.start,a.text);this.re.lastIndex=b.lastIndex;this.advanceTo(b.lastIndex);a.end=this.curPos();
-a.raw=this.input.substring(a.start.pos,a.end.pos);a.text=a.raw;a.toktype="COMMENT"}while("WS"===a.toktype||"COMMENT"===a.toktype);return a};var Be={ctype:"void"};Eb.prototype.postprocess=function(a){if(null===a)return Be;if(a){if("infix"===a.ctype)if(":="===a.oper){var b=a.args[0];if("function"===b.ctype)b.args.forEach(function(c){if(null===c||"variable"!==c.ctype)throw ha("Function argument must be an identifier",c.start||a.start);});else if("variable"!==b.ctype)throw ha(a.oper+" can only be used to define functions or variables",
-a.start);}else if(","===a.oper)throw ha("comma may only be used to delimit list elements",a.start);a.args&&(a.args=a.args.map(this.postprocess,this));if(a.modifs)for(var c in a.modifs)a.modifs[c]=this.postprocess(a.modifs[c]);if("paren"===a.ctype)return a.args[0];if("infix"===a.ctype){if("."===a.oper){if(!a.args[1]||"variable"!==a.args[1].ctype)throw ha("Field name must be identifier",a.start,a.text);a.ctype="field";a.obj=a.args[0];a.key=a.args[1].name;delete a.args}this.infixmap&&(a.impl=this.infixmap[a.oper])}else"variable"===
-a.ctype?this.usedVariables[a.name]=!0:"function"===a.ctype&&(this.usedFunctions[a.oper]=!0)}if("infix"===a.ctype)return{ctype:"infix",oper:String(a.oper),args:[a.args[0],a.args[1]],impl:a.impl};if("variable"===a.ctype)return{ctype:"variable",name:String(a.name)};if("number"===a.ctype)return{ctype:"number",value:{real:+a.value.real,imag:+a.value.imag}};if("string"===a.ctype)return{ctype:"string",value:String(a.value)};if("list"===a.ctype)return{ctype:"list",value:a.value};if("function"===a.ctype)return{ctype:"function",
-oper:String(a.oper),args:a.args,modifs:a.modifs};if("field"===a.ctype)return{ctype:"field",obj:a.obj,key:String(a.key)};throw Error("Unsupported AST node of type "+a.ctype);};Eb.prototype.parse=function(a){try{var b=bd(new kb(a));if("EOF"!==b.closedBy.toktype)throw ha("Closing bracket never opened.",b.closedBy.start,b.closedBy.text);return this.postprocess(b.expr)}catch(c){return c.ctype="error",c}};"undefined"!==typeof process&&"undefined"!==typeof module&&"undefined"!==typeof module.exports&&"undefined"===
-typeof window&&(module.exports.Parser=Eb,module.exports.Tokenizer=kb,module.exports.unicodeLetters=Dc,module.exports.parse=function(a){return(new Eb).parse(a)});var Nc={},Fc;Fc=[0,0,0,0,0,0,0,0,0,0,0,0];t.playsin$1=function(a,b){var c=B(a[0]),d=0;if("number"===c.ctype){var e;void 0!==b.line&&(e=A(b.line),"number"===e.ctype&&(d=Math.floor(e.value.real),0>d&&(d=0),10<d&&(d=10)));c=c.value.real;0!==Fc[d]&&Fc[d].set({freq:c})}return k};var P={printArr:function(a){for(var b=a.value.length,c=[],d=[],e=
-!1,f=0;f<b;f++)c[f]=a.value[f].value.real,d[f]=a.value[f].value.imag,0!==d[f]&&(e=!0);console.log(c);e&&console.log(d)},zero:function(a){for(var b=[],c=l.real(0),d=0;d<a.value.real;d++)b[d]=c;return g.turnIntoCSList(b)},number:function(a,b){var c=P.zero(b);c.value[0]=a;return c},variable:function(a,b){var c=P.zero(b);c.value[0]=a;c.value[1]=l.real(1);return c},add:function(a,b){return g.add(a,b)},sub:function(a,b){return g.sub(a,b)},mult:function(a,b){if(a.value.length!==b.value.length)return console.error("dims don't fit return nada"),
-k;for(var c=a.value.length,d=P.zero(l.real(c)),e=l.real(0),f=0;f<c;f++){for(var g=0;g<=f;g++)e=l.add(e,l.mult(a.value[g],b.value[f-g]));d.value[f]=e;e=l.real(0)}return d},pow:function(a,b){if(0>b.value.real||b.value.real!==Math.floor(b.value.real))return P.root(a,b);for(var c=a,d=1;d<b.value.real;d++)c=P.mult(c,a);return c},root:function(a,b){var c=l.real(0),d=l.real(1),e=l.add(d,b),f=a.value.length,g=P.zero(l.real(f));g.value[0]=l.pow(a.value[0],b);for(var k=c,m,n,p=1;p<f;p++){n=l.real(p);for(var q=
-1;q<=p;q++)m=l.mult(e,l.real(q)),m=l.div(m,n),m=l.sub(m,d),m=l.mult(m,a.value[q]),m=l.mult(m,g.value[p-q]),k=l.add(k,m);k=l.div(k,a.value[0]);g.value[p]=k;k=c}return g},findFirstNoneZero:function(a,b,c){for(var d=Infinity,e=Infinity,f=c;f<a.value.length;f++)if(1E-12<l.abs2(a.value[f]).value.real){d=f;break}for(a=c;a<b.value.length;a++)if(1E-12<l.abs2(b.value[a]).value.real){e=a;break}return[d,e]},div:function(a,b){if(a.value.length!==b.value.length)return console.log("dims don't fit - return nada"),
-k;for(var c=a.value.length,d=l.real(0),e=P.zero(l.real(c)),f=d,g,m=0;m<c;m++){g=P.findFirstNoneZero(a,b,m);m<g[0]&&g[0]===g[1]&&Infinity!==g[0]&&(a.value.splice(m,g[0]),b.value.splice(m,g[0]),e.value.splice(m,g[0]),c-=g[0]);g=a.value[m];for(var n=0;n<m;n++)f=l.add(f,l.mult(e.value[n],b.value[m-n]));g=l.sub(g,f);g=l.div(g,b.value[0]);e.value[m]=g;f=d}return e},exp:function(a){var b=l.real(0),c=a.value.length,d=P.zero(l.real(c)),e=b,f;d.value[0]=l.exp(a.value[0]);for(var g=1;g<c;g++){for(var k=1;k<=
-g;k++)f=l.mult(l.real(k),a.value[k]),f=l.mult(f,d.value[g-k]),e=l.add(e,f);d.value[g]=l.div(e,l.real(g));e=b}return d},log:function(a){var b=l.real(0),c=a.value.length,d=P.zero(l.real(c));d.value[0]=l.log(a.value[0]);for(var e=b,f,g,k=1;k<c;k++){f=a.value[k];for(var m=1;m<k;m++)g=l.mult(l.real(m),d.value[m]),g=l.mult(g,a.value[k-m]),e=l.add(e,g);e=l.div(e,l.real(k));f=l.sub(f,e);f=l.div(f,a.value[0]);d.value[k]=f;e=b}return d},sincos:function(a){var b=l.real(0),c=a.value.length,d=P.zero(l.real(c)),
-e=P.zero(l.real(c));d.value[0]=l.sin(a.value[0]);e.value[0]=l.cos(a.value[0]);for(var f=b,g=b,k,m,n,p=1;p<c;p++){n=l.real(p);for(var q=1;q<=p;q++)m=l.mult(l.real(q),a.value[q]),k=l.mult(m,e.value[p-q]),m=l.mult(m,d.value[p-q]),g=l.add(g,k),f=l.add(f,m);g=l.div(g,n);f=l.div(f,l.neg(n));d.value[p]=g;e.value[p]=f;f=g=b}P.sinsave=d;P.cossave=e;return[d,e]},sin:function(a){return P.sincos(a)[0]},cos:function(a){return P.sincos(a)[1]},faculty:function(a){var b=[];b[0]=l.real(1);for(var c=1,d=1;d<=a.value.real;d++)c*=
-d,b[d]=l.real(c);return b=g.turnIntoCSList(b)},diff:function(a,b,c,d){var e;if("variable"===a.ctype)e=a.name!==b?P.number(A(a),d):P.variable(c,d);else if("number"===a.ctype)e=P.number(a,d);else{if("infix"===a.ctype){if("*"===a.oper)return P.mult(P.diff(a.args[0],b,c,d),P.diff(a.args[1],b,c,d));if("^"===a.oper)return P.pow(P.diff(a.args[0],b,c,d),P.diff(a.args[1],b,c,d).value[0]);if("/"===a.oper)return P.div(P.diff(a.args[0],b,c,d),P.diff(a.args[1],b,c,d));if("+"===a.oper)return P.add(P.diff(a.args[0],
-b,c,d),P.diff(a.args[1],b,c,d));if("-"===a.oper)return P.sub(P.diff(a.args[0],b,c,d),P.diff(a.args[1],b,c,d));console.log("infix not found",a.oper);return k}if("function"===a.ctype){if("exp$1"===a.oper)return P.exp(P.diff(a.args[0],b,c,d));if("log$1"===a.oper)return P.log(P.diff(a.args[0],b,c,d));if("sin$1"===a.oper)return P.sin(P.diff(a.args[0],b,c,d));if("cos$1"===a.oper)return P.cos(P.diff(a.args[0],b,c,d))}else return console.log("ctype not found",a.ctype),k}return e},adevaluate:function(a,b,
-c,d){a=P.diff(a,b,c,d);d=P.faculty(d);for(b=2;b<a.value.length;b++)a.value[b]=l.mult(a.value[b],d.value[b]);return a},autodiff:function(a,b,c,d){for(var e=[],f=c.value.length,l,k=0;k<f;k++)l=P.adevaluate(a,b,c.value[k],d),e[k]=l;return e=g.turnIntoCSList(e)}},x={handleModifs:function(a,b){x.dashing&&x.unSetDash();x.colorraw=null;x.fillcolorraw=null;x.fillrule="nonzero";x.size=null;0>=x.psize&&(x.psize=0);0>=x.lsize&&(x.lsize=0);x.overhang=1;x.dashing=!1;x.isArrow=!1;x.arrowSides="==>";x.arrowposition=
-1;x.headlen=10;x.arrowShape=x.arrowShapes.line;x.alpha=z.drawingstate.alpha;x.fillalpha=0;x.bold="";x.italics="";x.family="sans-serif";x.align=0;x.xOffset=0;x.yOffset=0;x.lineCap="round";x.lineJoin="round";x.miterLimit=10;var c,d;for(c in a){var e=a[c];e&&((d=b[c])?(!0===d&&(d=x.modifHandlers[c]),d(A(e))):console.log("Modifier not supported: "+c))}null!==x.size?x.psize=x.lsize=x.size:(x.psize=z.drawingstate.pointsize,x.lsize=z.drawingstate.linesize);x.dashing&&x.dashing(x.lsize);null!==x.colorraw?
-x.pointColor=x.lineColor=x.textColor=x.makeColor(x.colorraw):1===x.alpha?(x.pointColor=z.drawingstate.pointcolor,x.lineColor=z.drawingstate.linecolor,x.textColor=z.drawingstate.textcolor):(x.pointColor=x.makeColor(z.drawingstate.pointcolorraw),x.lineColor=x.makeColor(z.drawingstate.linecolorraw),x.textColor=x.makeColor(z.drawingstate.textcolorraw));x.black=1===x.alpha?"rgb(0,0,0)":"rgba(0,0,0,"+x.alpha+")";x.fillColor=x.fillcolorraw&&0<x.fillalpha?x.makeColor(x.fillcolorraw,x.fillalpha):null},modifHandlers:{size:function(a){"number"===
-a.ctype&&(x.size=a.value.real,0>x.size&&(x.size=0),1E3<x.size&&(x.size=1E3))},color:function(a){g.isNumberVector(a).value&&3===a.value.length&&(x.colorraw=[a.value[0].value.real,a.value[1].value.real,a.value[2].value.real])},fillcolor:function(a){g.isNumberVector(a).value&&3===a.value.length&&(x.fillcolorraw=[a.value[0].value.real,a.value[1].value.real,a.value[2].value.real])},alpha:function(a){"number"===a.ctype&&(x.alpha=a.value.real)},fillalpha:function(a){"number"===a.ctype&&(x.fillalpha=a.value.real)},
-dashpattern:function(a){if("list"===a.ctype){for(var b=[],c=0,d=0;c<a.value.length;c++)"number"===a.value[c].ctype&&(b[d++]=a.value[c].value.real);x.dashing=x.setDash.bind(null,b)}},dashtype:function(a){if("number"===a.ctype)a=Math.floor(a.value.real);else if("string"===a.ctype)a=a.value;else return;if(a=x.dashTypes[a])x.dashing=x.setDash.bind(null,a)},dashing:function(a){"number"===a.ctype&&(a=Math.floor(a.value.real),x.dashing=x.setDash.bind(null,[2*a,a]))},overhang:function(a){"number"===a.ctype&&
-(x.overhang=x.overhang*a.value.real+(1-x.overhang)*(1-a.value.real))},arrow:function(a){"boolean"===a.ctype?x.isArrow=a.value:console.error("arrow needs to be of type boolean")},arrowshape:function(a){"string"!==a.ctype?console.error("arrowshape needs to be of type string"):x.arrowShapes.hasOwnProperty(a.value)?(x.arrowShape=x.arrowShapes[a.value],x.isArrow=!0,x.arrowShape.deprecated&&(console.log("arrowshape "+a.value+" is deprecated, use "+x.arrowShape.deprecated+" instead."),x.arrowShape.deprecated=
-null)):(a=Object.keys(x.arrowShapes),a.sort(),a=a.join(", "),console.error("arrowshape needs to be one of "+a))},arrowsides:function(a){"string"!==a.ctype?console.error("arrowsides is not of type string"):"==>"!==a.value&&"<==>"!==a.value&&"<=="!==a.value?console.error("arrowsides is unknows"):(x.arrowSides=a.value,x.isArrow=!0)},arrowposition:function(a){"number"!==a.ctype?console.error("arrowposition is not of type number"):0>a.value.real?console.error("arrowposition has to be positive"):1<a.value.real?
-x.overhang=x.overhang*a.value.real+(1-x.overhang)*(1-a.value.real):(x.arrowposition=a.value.real,x.isArrow=!0)},arrowsize:function(a){"number"!==a.ctype?console.error("arrowsize is not of type number"):0>a.value.real?console.error("arrowsize has to be positive"):x.headlen*=a.value.real},bold:function(a){"boolean"===a.ctype&&a.value&&(x.bold="bold ")},italics:function(a){"boolean"===a.ctype&&a.value&&(x.italics="italic ")},family:function(a){"string"===a.ctype&&(x.family=a.value)},align:function(a){"string"===
-a.ctype&&(a=a.value,"left"===a&&(x.align=0),"right"===a&&(x.align=1),"mid"===a&&(x.align=.5))},x_offset:function(a){"number"===a.ctype&&(x.xOffset=a.value.real)},y_offset:function(a){"number"===a.ctype&&(x.yOffset=a.value.real)},offset:function(a){"list"===a.ctype&&2===a.value.length&&"number"===a.value[0].ctype&&"number"===a.value[1].ctype&&(x.xOffset=a.value[0].value.real,x.yOffset=a.value[1].value.real)},lineCap:function(a){"string"!==a.ctype||"round"!==a.value&&"square"!==a.value&&"butt"!==a.value||
-(x.lineCap=a.value)},lineJoin:function(a){"string"!==a.ctype||"round"!==a.value&&"bevel"!==a.value&&"miter"!==a.value||(x.lineJoin=a.value)},fillrule:function(a){"string"!==a.ctype||"nonzero"!==a.value&&"evenodd"!==a.value||(x.fillrule=a.value)},miterLimit:function(a){"number"===a.ctype&&0<a.value.real&&(x.miterLimit=Math.round(a.value.real))}},lineModifs:{size:!0,color:!0,alpha:!0,dashpattern:!0,dashtype:!0,dashing:!0,overhang:!0,arrow:!0,arrowshape:!0,arrowsides:!0,arrowposition:!0,arrowsize:!0,
-lineCap:!0,lineJoin:!0,miterLimit:!0},pointModifs:{size:!0,color:!0,alpha:!0}};x.pointAndLineModifs=x.lineModifs;x.conicModifs={size:!0,color:!0,alpha:!0,fillcolor:!0,fillrule:!0,fillalpha:!0,lineCap:!0,lineJoin:!0,miterLimit:!0};x.textModifs={size:!0,color:!0,alpha:!0,bold:!0,italics:!0,family:!0,align:!0,x_offset:!0,y_offset:!0,offset:!0};x.makeColor=function(a,b){void 0===b&&(b=x.alpha);return"rgba("+Math.floor(255*a[0])+","+Math.floor(255*a[1])+","+Math.floor(255*a[2])+","+b+")"};x.preDrawCurve=
-function(){y.lineWidth=x.lsize;y.lineCap=x.lineCap;y.lineJoin=x.lineJoin;y.mozFillRule=x.fillrule;y.fillrule=x.fillrule;y.miterLimit=x.miterLimit;y.strokeStyle=x.lineColor};x.arrowShapes={"default":{close:!1,fill:!1,ratio:1,deprecated:"line"},line:{close:!1,fill:!1,ratio:1},empty:{close:!0,fill:!1,ratio:1},hollow:{close:!0,fill:!1,ratio:1,deprecated:"empty"},full:{close:!0,fill:!0,ratio:1},jet:{close:!0,fill:!0,ratio:1.5},delta:{close:!0,fill:!0,ratio:1.5,deprecated:"jet"}};x.clipSegment=function(a,
-b){var c=b.x-a.x,d=b.y-a.y,e=x.clipLineCore(-d,c,a.x*b.y-b.x*a.y);if(2!==e.length)return[];var f=e[0],e=e[1],g=1/(c*c+d*d),l=((f.x-a.x)*c+(f.y-a.y)*d)*g,c=((e.x-a.x)*c+(e.y-a.y)*d)*g;0>l&&(f=a);1<l&&(f=b);0>c&&(e=a);1<c&&(e=b);return f===e?[]:[f,e]};x.drawsegcore=function(a,b){function c(a,b,c,h){var d=a-h*q+.5*t,e=b-h*t-.5*q,f=a-h*q-.5*t;h=b-h*t+.5*q;y.beginPath();x.arrowShape.fill&&(y.lineWidth=x.lsize/2);y.moveTo(d,e);y.lineTo(a,b);y.lineTo(f,h);x.arrowShape.close&&(y.fillStyle=x.lineColor,y.lineTo(a-
-c*q,b-c*t),y.closePath(),x.arrowShape.fill&&y.fill());y.stroke()}var d=z.drawingstate.matrix,e=a.x*d.a-a.y*d.b+d.tx,f=a.x*d.c-a.y*d.d-d.ty,g=b.x*d.a-b.y*d.b+d.tx,l=b.x*d.c-b.y*d.d-d.ty,k=x.overhang,m=1-k,d=k*e+m*g,n=k*f+m*l,p=k*g+m*e,k=k*l+m*f;if(0>d||d>da||0>n||n>ca||0>p||p>da||0>k||k>ca){k=x.clipSegment({x:d,y:n},{x:p,y:k});if(2!==k.length||.01>x.lsize)return;d=k[0].x;n=k[0].y;p=k[1].x;k=k[1].y}x.preDrawCurve();if(!x.isArrow||e===f&&g===l).01>x.lsize||(y.beginPath(),y.moveTo(d,n),y.lineTo(p,k),
-y.stroke());else{var e=g-e,f=l-f,g=x.headlen/Math.sqrt(e*e+f*f),q=e*g,t=f*g,l=x.arrowposition,m=1-l,f=l*d+m*p,e=l*n+m*k,g=l*p+m*d,l=l*k+m*n,m=x.arrowSides;y.beginPath();x.arrowShape.close?("<==>"===m||"<=="===m?(1>x.arrowposition&&(y.moveTo(d,n),y.lineTo(f,e)),y.moveTo(f+q,e+t)):y.moveTo(d,n),"==>"===m||"<==>"===m?(y.lineTo(g-q,l-t),1>x.arrowposition&&(y.moveTo(g,l),y.lineTo(p,k))):y.lineTo(p,k)):(y.moveTo(d,n),y.lineTo(p,k));y.stroke();"==>"!==m&&"<==>"!==m||c(g,l,1,x.arrowShape.ratio);"<=="!==m&&
-"<==>"!==m||c(f,e,-1,-x.arrowShape.ratio)}};x.drawpoint=function(a){var b=z.drawingstate.matrix,c=a.x*b.a-a.y*b.b+b.tx;a=a.x*b.c-a.y*b.d-b.ty;y.lineWidth=.3*x.psize;y.beginPath();y.arc(c,a,x.psize,0,2*Math.PI);y.fillStyle=x.pointColor;y.fill();y.beginPath();y.arc(c,a,1.15*x.psize,0,2*Math.PI);y.fillStyle=x.black;y.strokeStyle=x.black;y.stroke()};x.clipLineCore=function(a,b,c){var d=Math.SQRT1_2*x.lsize,e=0-d,f=da+d,g=0-d,d=ca+d,l=0>e*a+g*b+c,k=0>f*a+g*b+c,m=0>e*a+d*b+c,n=0>f*a+d*b+c,p=[];l!==k&&p.push({x:(-c-
-b*g)/a,y:g});k!==n&&p.push({x:f,y:(-c-a*f)/b});m!==n&&p.push({x:(-c-b*d)/a,y:d});l!==m&&p.push({x:e,y:(-c-a*e)/b});return p};x.clipLine=function(a){a=g.normalizeMax(g.productVM(a,z.toMat()));return x.clipLineCore(a.value[0].value.real,a.value[1].value.real,a.value[2].value.real)};x.drawline=function(a){g._helper.isAlmostReal(a)&&(a=x.clipLine(a),2===a.length&&.01<=x.lsize&&(x.preDrawCurve(),y.beginPath(),y.moveTo(a[0].x,a[0].y),y.lineTo(a[1].x,a[1].y),y.stroke()))};x.drawRaySegment=function(a,b){var c=
-D.extractPoint(a),d=D.extractPoint(b);if(c.ok&&d.ok){var e=c.x-d.x,f=c.y-d.y,g=25E3/z.drawingstate.matrix.sdet/Math.sqrt(e*e+f*f),e=e*g,f=f*g;x.drawsegcore(c,{x:c.x+e,y:c.y+f});x.drawsegcore(d,{x:d.x-e,y:d.y-f})}};x.dashTypes={solid:[],dashed:[10,10],tightdash:[10,4],dotted:[1,3],dashdot:[10,5,1,5],"dashvalue.solid":[],"dashvalue.dashed":[10,10],"dashvalue.tightdash":[10,4],"dashvalue.dotted":[1,3],"dashvalue.dashdot":[10,5,1,5],0:[],1:[10,10],2:[10,4],3:[1,3],4:[10,5,1,5]};x.setDash=function(a,b){var c=
-Math.sqrt(b);a=a.slice();for(var d=0;d<a.length;d++)a[d]*=c;y.webkitLineDash=a;y.setLineDash(a);y.mozDash=a};x.unSetDash=function(){y.webkitLineDash=[];y.setLineDash([]);y.mozDash=[]};dd.prototype={set fillStyle(a){var b=this;Rb(a,function(a,d,e,f){b._fill="#"+lb(a.toString(16),2)+lb(d.toString(16),2)+lb(e.toString(16),2);b._fillOpacity=255===f?null:f})},set strokeStyle(a){var b=this;Rb(a,function(a,d,e,f){b._stroke="#"+lb(a.toString(16),2)+lb(d.toString(16),2)+lb(e.toString(16),2);b._strokeOpacity=
-255===f?null:f})},clearRect:function(){},beginPath:function(){this._path=[]},_pathcmd:function(){this._path.push.apply(this._path,arguments)},closePath:function(){this._pathcmd("Z")},moveTo:function(a,b){this._pathcmd("M",a,b)},lineTo:function(a,b){this._pathcmd("L",a,b)},bezierCurveTo:function(a,b,c,d,e,f){this._pathcmd("C",a,b,c,d,e,f)},quadraticCurveTo:function(a,b,c,d){this._pathcmd("Q",a,b,c,d)},arc:function(a,b,c,d,e,f){var g=c*Math.cos(d)+a,l=c*Math.sin(d)+b,k=c*Math.cos(e)+a,m=c*Math.sin(e)+
-b;e=f?d-e:e-d;e>=2*Math.PI?this._pathcmd(this._path.length?"L":"M",g,l,"A",c,c,0,0,f?1:0,a-c*Math.cos(d),b-c*Math.sin(d),"A",c,c,0,0,f?1:0,g,l):this._pathcmd(this._path.length?"L":"M",g,l,"A",c,c,0,e>Math.PI?1:0,f?1:0,k,m)},rect:function(a,b,c,d){this._pathcmd("M",a,b,"h",c,"v",d,"h",-c,"z")},_cmd:function(a){1!==this.globalAlpha?(this._body.push('<g opacity="'+this.globalAlpha+'">'),this._body.push(a),this._body.push("</g>")):this._body.push(a)},_attrs:function(a){var b="",c;for(c in a)null!==a[c]&&
-(b+=" "+c+'="'+a[c]+'"');return b},fill:function(){this._cmd("<path"+this._attrs({d:this._path.join(" "),fill:this._fill,"fill-opacity":this._fillOpacity})+"/>")},stroke:function(){this._cmd("<path"+this._attrs({d:this._path.join(" "),stroke:this._stroke,"stroke-opacity":this._strokeOpacity,"stroke-width":this.lineWidth,"stroke-linecap":this.lineCap,"stroke-linejoin":this.lineJoin,"stroke-miterlimit":"miter"===this.lineJoin?this.miterLimit:null})+"/>")},clip:function(){++this._clipIndex;this._body.push('<clipPath id="clip'+
-this._clipIndex+'"><path d="'+this._path.join(" ")+'"/></clipPath>','<g clip-path="url(#clip'+this._clipIndex+')">');this._saveStack[this._saveStack.length-1]+="</g>"},save:function(){this._saveStack.push("")},restore:function(){this._body.push(this._saveStack.pop());0===this._saveStack.length&&this._saveStack.push("")},_transform:function(a){this._body.push('<g transform="'+a+'">');this._saveStack[this._saveStack.length-1]+="</g>"},translate:function(a,b){this._transform("translate("+a+" "+b+")")},
-rotate:function(a){this._transform("rotate("+Math.PI/180*a+")")},scale:function(a,b){this._transform("scale("+a+" "+b+")")},transform:function(a,b,c,d,e,f){this._transform("matrix("+[a,b,c,d,e,f].join(" ")+")")},drawImage:function(a,b,c){if(3!==arguments.length)throw Error("SvgWriterContext only supports 3-argument version of drawImage");var d=this._imgcache.indexOf(a);if(-1===d){var d=this._imgcache.length,e;e=a.cachedDataURL?a.cachedDataURL:fd(a);this._defs.push('<image id="img'+d+'" x="0" y="0" width="'+
-a.width+'" height="'+a.height+'" xlink:href="'+e+'"/>');this._imgcache.push(a)}this._cmd('<use x="'+b+'" y="'+c+'" xlink:href="#img'+d+'"/>')},toBlob:function(){for(;1<this._saveStack.length||""!==this._saveStack[0];)this.restore();var a='<?xml version="1.0" encoding="UTF-8" standalone="no"?>\n<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" width="'+this.width+'px" height="'+this.height+'px">\n'+this._defs.join("\n")+'\n</defs>\n<g stroke="none" fill="none">\n'+
-this._body.join("\n")+"\n</g>\n</svg>\n";return new Blob([a],{type:"image/svg+xml"})}};ed.prototype={_cmd:function(){this._body.push(Array.prototype.join.call(arguments," "))},_setAlpha:function(a,b,c){var d=Math.round(255*a*this._globalAlpha);b+=d;this._extGState[b]="<< /"+c+" "+d/255+" >>";this._cmd("/"+b,"gs");return a},set globalAlpha(a){this._globalAlpha=a;this._setAlpha(this._strokeAlpha,"As","CA");this._setAlpha(this._fillAlpha,"Af","ca")},set fillStyle(a){var b=this;Rb(a,function(a,d,e,f){b._cmd(a/
-255,d/255,e/255,"rg");b._setAlpha(b._fillAlpha=f,"Af","ca")})},set strokeStyle(a){var b=this;Rb(a,function(a,d,e,f){b._cmd(a/255,d/255,e/255,"RG");b._setAlpha(b._strokeAlpha=f,"As","CA")})},set lineWidth(a){this._cmd(a,"w")},set lineCap(a){this._cmd({butt:0,round:1,square:2}[a],"J")},set lineJoin(a){this._cmd({miter:0,round:1,bevel:2}[a],"j")},set miterLimit(a){this._cmd(a,"M")},clearRect:function(){},beginPath:function(){this._pathUsed=!1},closePath:function(){this._cmd("h")},moveTo:function(a,b){this._cmd(this._xPos=
-a,this._yPos=-b,"m")},lineTo:function(a,b){this._cmd(this._xPos=a,this._yPos=-b,"l")},bezierCurveTo:function(a,b,c,d,e,f){this._cmd(a,-b,c,-d,this._xPos=e,this._yPos=-f,"c")},quadraticCurveTo:function(a,b,c,d){this.bezierCurveTo((2*a+this._xPos)/3,(2*b-this._yPos)/3,(c+2*a)/3,(d+2*b)/3,c,d)},_kappa:.5522847498307935,arc:function(a,b,c,d,e,f){if(0===d&&e===2*Math.PI)d=this._kappa*c,this.moveTo(a+c,b),this.bezierCurveTo(a+c,b+d,a+d,b+c,a,b+c),this.bezierCurveTo(a-d,b+c,a-c,b+d,a-c,b),this.bezierCurveTo(a-
-c,b-d,a-d,b-c,a,b-c),this.bezierCurveTo(a+d,b-c,a+c,b-d,a+c,b);else throw Error("PdfWriterContext.arc only supports full circles");},rect:function(a,b,c,d){this._cmd(a,-b,c,-d,"re")},_usePath:function(a){if(this._pathUsed){var b=this._body[this._pathUsed],c={"S + f":"B","f + S":"B","W n + S":"W S","W n + f":"W f","S + W n":"W S","f + W n":"W f","B + W n":"W B","W S + f":"W B","W f + S":"W B"}[b+" + "+a];if(!c)throw Error("Don't know how to combine '"+b+"' and '"+a+"'");this._body.splice(this._pathUsed,
-1);a=c}this._pathUsed=this._body.length;this._cmd(a)},fill:function(){this._usePath("f")},stroke:function(){this._usePath("S")},clip:function(){this._usePath("W n")},save:function(){this._cmd("q")},restore:function(){this._cmd("Q")},translate:function(a,b){this.transform(1,0,0,1,a,b)},rotate:function(a){var b=Math.cos(a);a=Math.sin(a);this.transform(b,a,-a,b,0,0)},scale:function(a,b){this.transform(a,0,0,b,0,0)},transform:function(a,b,c,d,e,f){this._cmd(a,-b,-c,d,e,-f,"cm")},_png:function(a){if("data:image/png;base64,"!==
-a.substr(0,22))return{error:"Not a base64-encoded PNG file"};a=Wd(a.substr(22));var b=Xd(a);console.log("PNG chunks:",b.map(function(a){return a.type}));if("IHDR"!==b[0].type)throw Error("Image does not start with an IHDR");var c=b[0].data;a=(c[0]<<24|c[1]<<16|c[2]<<8|c[3])>>>0;var d=(c[4]<<24|c[5]<<16|c[6]<<8|c[7])>>>0,e=c[8],f=c[9],g=0===(f&2),l=0!==(f&4),k=c[10],m=c[11],c=c[12];if(0!==k)throw Error("Unsupported PNG compression method: "+k);if(0!==m)throw Error("Unsupported PNG filter method: "+
-m);if(0!==c)return{error:"Interlaced image not supported"};if(0!==(f&1))return{error:"Indexed PNG image not supported"};m=null;f=g?1:3;k=b.filter(function(a){return"IDAT"===a.type}).map(function(a){return a.data});if(l){l=window.pako;m=new l.Inflate;for(b=0;b<k.length;++b)m.push(k[b],b+1===k.length);if(m.err)throw Error(m.err);m=m.result;c=e>>>3;if(m.length!==d*(a*(f+1)*c+1))throw Error("Data length mismatch");for(var n=f*c,k=new Uint8Array(d*(a*n+1)),p=new Uint8Array(d*(a*c+1)),q=0,t=0,u=0,v=0;v<
-d;++v){k[t++]=p[u++]=m[q++];for(var w=0;w<a;++w){for(b=0;b<n;++b)k[t++]=m[q++];for(b=0;b<c;++b)p[u++]=m[q++]}}if(q!==m.length||t!==k.length||u!==p.length)throw Error("Seems we garbled our index computation somehow");p=l.deflate(p);m=this._strm({Type:"/XObject",Subtype:"/Image",Width:a,Height:d,ColorSpace:"/DeviceGray",BitsPerComponent:e,Filter:"/FlateDecode",DecodeParms:this._dict({Predictor:15,Colors:1,BitsPerComponent:e,Columns:a})},p).ref;k=[l.deflate(k)]}var x=0;k.forEach(function(a){x+=a.length});
-return this._obj([this._dict({Type:"/XObject",Subtype:"/Image",Name:"/img"+this._imgcache.length,Width:a,Height:d,ColorSpace:g?"/DeviceGray":"/DeviceRGB",SMask:m,BitsPerComponent:e,Length:x,Filter:"/FlateDecode",DecodeParms:this._dict({Predictor:15,Colors:f,BitsPerComponent:e,Columns:a})}),"\nstream\n"].concat(k,["\nendstream"]))},drawImage:function(a,b,c){if(3!==arguments.length)throw Error("PdfWriterContext only supports 3-argument version of drawImage");var d=this._imgcache.indexOf(a);if(-1===
-d){d=this._imgcache.length;this._imgcache.push(a);var e=this._png(a.cachedDataURL||"");e.hasOwnProperty("error")&&(e=this._png(fd(a)));if(e.hasOwnProperty("error"))throw Error(e.error);this._xobjects["img"+d]=e.ref}this._cmd("q");this._setAlpha(1,"Af","ca");this._cmd(a.width,0,0,a.height,b,-c-a.height,"cm");this._cmd("/img"+d,"Do");this._cmd("Q")},_dict:function(a){var b="<<",c;for(c in a)b+=" /"+c+" "+a[c];return b+" >>"},_obj:function(a,b){b||(b=this._nextIndex++);Array.isArray(a)||(a=[this._dict(a)]);
-a.index=b;a.ref=b+" 0 R";a.offset=this._offset;var c=0;a.unshift(b+" 0 obj\n");a.push("\nendobj\n");for(var d=0;d<a.length;++d)c+=a[d].length;this._offset+=c;this._objects.push(a);return a},_strm:function(a,b,c){a.Length=b.length;return this._obj([this._dict(a),"\nstream\n",b,"\nendstream"],c)},toBlob:function(){var a;a="["+[0,-this.height,this.width,0].join(" ")+"]";this._obj({Type:"/Catalog",Pages:"2 0 R"},1);this._obj({Type:"/Pages",Kids:"[3 0 R]",Count:1},2);this._obj({Type:"/Page",Parent:"2 0 R",
-MediaBox:a,Contents:"4 0 R",Resources:this._dict({ProcSet:"[/PDF /Text /ImageB /ImageC /ImageI]",XObject:this._dict(this._xobjects),ExtGState:this._dict(this._extGState)})},3);var b=this._body.join("\n"),c=new Uint8Array(b.length);for(a=0;a<b.length;++a)c[a]=b.charCodeAt(a)&255;b=window.pako.deflate(c);this._strm({Filter:"/FlateDecode"},b,4);var b=this._objects,d=[];for(a=1;a<b.length;++a)d[b[a].index]=b[a];c="xref\n0 "+d.length+"\n";for(a=0;a<d.length;++a)c=d[a]?c+(lb(String(d[a].offset),10)+" 00000 n \n"):
-c+"0000000000 65535 f \n";a="trailer\n"+this._dict({Size:d.length,Root:"1 0 R"})+"\nstartxref\n"+this._offset+"\n%%EOF\n";b=Array.prototype.concat.apply([],b);b.push(c,a);return new Blob(b,{type:"application/pdf"})}};var Fb=null;jb.push(gd);oa.exportSVG=function(){hd(dd)};oa.exportPDF=function(){wa.loadScript("pako","pako.min.js",function(){hd(ed)})};oa.exportPNG=function(){id(y.canvas.toDataURL())};var id=function(a){var b=document.createElement("a");document.body.appendChild(b);b.style="display: none";
-b.href=a;b.download="CindyJSExport";b.click();setTimeout(function(){document.body.removeChild(b);gd()},100)},qc="Move",Hb,ua=[],Ua=0,Zd=0,sb=0,G={Delete:{}};G.Delete.actions=[];G.Delete.actions[0]={};G.Delete.actions[0].event="mousedown";G.Delete.actions[0].tooltip="...";G.Delete.actions[0]["do"]=function(){fa=Gb(X);null!==fa&&nd(fa.mover.name);return!0};G.Move={};G.Move.actions=[];G.Move.actions[0]={};G.Move.actions[0].event="mousedown";G.Move.actions[0].tooltip="Move free elements by dragging the mouse";
-G.Move.actions[0]["do"]=function(){for(var a=X,b=null,c=1E6,d,e=0;e<u.free.length;e++){var f=u.free[e];if(!f.pinned&&!1!==f.visible&&!0!==f.tmp){var k,m,n,p=z.drawingstate.matrix.sdet;if("P"===f.kind){m=g.normalizeZ(f.homog);if(!g._helper.isAlmostReal(m))continue;k=m.value[0].value.real-a.x;m=m.value[1].value.real-a.y;n=Math.sqrt(k*k+m*m);if(f.narrow&&n>("number"===typeof f.narrow?f.narrow:20)/p)continue}else if("C"===f.kind)m=u.csnames[f.args[0]],n=f.radius,k=l.div(m.homog.value[0],m.homog.value[2]).value.real,
-m=l.div(m.homog.value[1],m.homog.value[2]).value.real,k-=a.x,m-=a.y,n=Math.sqrt(k*k+m*m)-n.value.real,m=k=0,0>n&&(n=-n),n+=30/p;else if("L"===f.kind)k=f.homog,n=l,m=n.add(n.mult(k.value[0],n.conjugate(k.value[0])),n.mult(k.value[1],n.conjugate(k.value[1]))),m=g.scaldiv(n.sqrt(m),k),n=m.value[0].value.real*a.x+m.value[1].value.real*a.y+m.value[2].value.real,k=-m.value[0].value.real*n,m=-m.value[1].value.real*n,0>n&&(n=-n),n+=25/p;else if("Text"===f.kind){if(!f.homog||f.dock||!f._bbox)continue;m=z.from(a.x,
-a.y,1);k=Math.max(0,m[0]-f._bbox.right,f._bbox.left-m[0]);m=Math.max(0,m[1]-f._bbox.bottom,f._bbox.top-m[1]);n=Math.sqrt(k*k+m*m);if(20<n)continue;n/=p;m=g.normalizeZ(f.homog);if(!g._helper.isAlmostReal(m))continue;k=m.value[0].value.real-a.x;m=m.value[1].value.real-a.y}else continue;n<c+.2/p&&(c=n,b=f,d={x:k,y:m})}}console.log("Moving "+(b?b.name:"nothing"));fa=null===b?null:{mover:b,offset:d,prev:{x:a.x,y:a.y}};return!0};G.Point={};G.Point.actions=[];G.Point.actions[0]={};G.Point.actions[0].event=
-"mousedown";G.Point.actions[0].tooltip="Add a single point with the mouse";G.Point.actions[0]["do"]=function(){Ha({type:"Free",name:Ta(),labeled:!0,pos:[ta[0],ta[1],1]});return!0};G.Mid={};G.Mid.actions=[];G.Mid.actions[0]={};G.Mid.actions[0].event="mousedown";G.Mid.actions[0].tooltip="Construct two points and their midpoint by dragging";G.Mid.actions[0]["do"]=function(){mb();return!0};G.Mid.actions[1]={};G.Mid.actions[1].event="mousemove";G.Mid.actions[1]["do"]=function(){Sb("Mid");return!0};G.Mid.actions[2]=
-{};G.Mid.actions[2].event="mouseup";G.Mid.actions[2]["do"]=function(){tb();return!0};G.Circle={};G.Circle.actions=[];G.Circle.actions[0]={};G.Circle.actions[0].event="mousedown";G.Circle.actions[0].tooltip="Construct two points and a circle by dragging the mouse";G.Circle.actions[0]["do"]=function(){mb();return!0};G.Circle.actions[1]={};G.Circle.actions[1].event="mousemove";G.Circle.actions[1]["do"]=function(){Sb("CircleMP");return!0};G.Circle.actions[2]={};G.Circle.actions[2].event="mouseup";G.Circle.actions[2]["do"]=
-function(){tb();return!0};G.Compass={};G.Compass.actions=[];G.Compass.actions[0]={};G.Compass.actions[0].event="mousedown";G.Compass.actions[0].tooltip="...";G.Compass.actions[0]["do"]=function(){mb();return!0};G.Compass.actions[1]={};G.Compass.actions[1].event="mousedown";G.Compass.actions[1].tooltip="...";G.Compass.actions[1]["do"]=function(){mb();return!0};G.Compass.actions[2]={};G.Compass.actions[2].event="mousedown";G.Compass.actions[2].tooltip="...";G.Compass.actions[2]["do"]=function(){mb();
-Ha({type:"Compass",name:Ta(),labeled:!0,args:[ua[0].name,ua[1].name,ua[2].name]});return!0};G.Line={};G.Line.actions=[];G.Line.actions[0]={};G.Line.actions[0].event="mousedown";G.Line.actions[0].tooltip="Construct two points and their connecting line by dragging the mouse";G.Line.actions[0]["do"]=function(){mb();return!0};G.Line.actions[1]={};G.Line.actions[1].event="mousemove";G.Line.actions[1]["do"]=function(){Sb("Join");return!0};G.Line.actions[2]={};G.Line.actions[2].event="mouseup";G.Line.actions[2]["do"]=
-function(){tb();return!0};G.Segment={};G.Segment.actions=[];G.Segment.actions[0]={};G.Segment.actions[0].event="mousedown";G.Segment.actions[0].tooltip="Draw a segment by dragging the mouse";G.Segment.actions[0]["do"]=function(){mb();return!0};G.Segment.actions[1]={};G.Segment.actions[1].event="mousemove";G.Segment.actions[1]["do"]=function(){Sb("Segment");return!0};G.Segment.actions[2]={};G.Segment.actions[2].event="mouseup";G.Segment.actions[2]["do"]=function(){tb();return!0};G.Parallel={};G.Parallel.actions=
-[];G.Parallel.actions[0]={};G.Parallel.actions[0].event="mousedown";G.Parallel.actions[0].tooltip="Construct a parallel line by dragging a line";G.Parallel.actions[0]["do"]=function(){return ld()};G.Parallel.actions[1]={};G.Parallel.actions[1].event="mousemove";G.Parallel.actions[1]["do"]=function(){var a={type:"Free",name:Ta(),labeled:!0,pos:[ta[0],ta[1],1],tmp:!0},a=Ha(a);Hb=Ha({type:"Para",name:Ta(),labeled:!0,args:[ua[0].name,a.name]});sc(a);return!0};G.Parallel.actions[2]={};G.Parallel.actions[2].event=
-"mouseup";G.Parallel.actions[2]["do"]=function(){tb();return!0};G.Orthogonal={};G.Orthogonal.actions=[];G.Orthogonal.actions[0]={};G.Orthogonal.actions[0].event="mousedown";G.Orthogonal.actions[0].tooltip="Construct a orthogonal line by dragging a line";G.Orthogonal.actions[0]["do"]=function(){if(ld()){var a={type:"Free",name:Ta(),labeled:!0,pos:[ta[0],ta[1],1],tmp:!0},a=Ha(a);Hb=Ha({type:"Perp",name:Ta(),labeled:!0,args:[ua[0].name,a.name]});sc(a);return!0}return!1};G.Orthogonal.actions[1]={};G.Orthogonal.actions[1].event=
-"mouseup";G.Orthogonal.actions[1]["do"]=function(){tb();return!0};G.Intersection={};G.Intersection.actions=[];G.Intersection.actions[0]={};G.Intersection.actions[0].event="mousedown";G.Intersection.actions[0].tooltip="Select two elements to define their intersection";G.Intersection.actions[0]["do"]=function(){return md()};G.Intersection.actions[1]={};G.Intersection.actions[1].event="mousedown";G.Intersection.actions[1]["do"]=function(){return md()?(Hb=Ha({type:"Meet",name:Ta(),labeled:!0,args:[ua[0].name,
-ua[1].name]}),!0):!1};var $a={},z={drawingstate:{}};z.drawingstate.linecolor="rgb(0,0,255)";z.drawingstate.linecolorraw=[0,0,1];z.drawingstate.pointcolor="rgb(0,255,0)";z.drawingstate.pointcolorraw=[0,1,0];z.drawingstate.textcolor="rgb(0,0,0)";z.drawingstate.textcolorraw=[0,0,0];z.drawingstate.alpha=1;z.drawingstate.pointsize=4;z.drawingstate.linesize=1;z.drawingstate.textsize=null;z.drawingstate.matrix={};z.drawingstate.matrix.a=25;z.drawingstate.matrix.b=0;z.drawingstate.matrix.c=0;z.drawingstate.matrix.d=
-25;z.drawingstate.matrix.tx=250.5;z.drawingstate.matrix.ty=250.5;z.drawingstate.matrix.det=z.drawingstate.matrix.a*z.drawingstate.matrix.d-z.drawingstate.matrix.b*z.drawingstate.matrix.c;z.drawingstate.matrix.sdet=Math.sqrt(z.drawingstate.matrix.det);z.drawingstate.initialmatrix={};z.drawingstate.initialmatrix.a=z.drawingstate.matrix.a;z.drawingstate.initialmatrix.b=z.drawingstate.matrix.b;z.drawingstate.initialmatrix.c=z.drawingstate.matrix.c;z.drawingstate.initialmatrix.d=z.drawingstate.matrix.d;
-z.drawingstate.initialmatrix.tx=z.drawingstate.matrix.tx;z.drawingstate.initialmatrix.ty=z.drawingstate.matrix.ty;z.drawingstate.initialmatrix.det=z.drawingstate.matrix.det;z.drawingstate.initialmatrix.sdet=z.drawingstate.matrix.sdet;z.clone=function(a){if(null===a||"object"!==typeof a)return a;var b=a.constructor(),c;for(c in a)b[c]=z.clone(a[c]);return b};$a.backup=z.clone(z.drawingstate);$a.stack=[];z.clone(z.drawingstate);z.reset=function(){z.drawingstate.matrix.a=z.drawingstate.initialmatrix.a;
-z.drawingstate.matrix.b=z.drawingstate.initialmatrix.b;z.drawingstate.matrix.c=z.drawingstate.initialmatrix.c;z.drawingstate.matrix.d=z.drawingstate.initialmatrix.d;z.drawingstate.matrix.tx=z.drawingstate.initialmatrix.tx;z.drawingstate.matrix.ty=z.drawingstate.initialmatrix.ty;z.drawingstate.matrix.det=z.drawingstate.initialmatrix.det;z.drawingstate.matrix.sdet=z.drawingstate.initialmatrix.sdet};z.from=function(a,b,c){a/=c;b/=c;c=z.drawingstate.matrix;return[a*c.a-b*c.b+c.tx,a*c.c-b*c.d-c.ty]};z.to=
-function(a,b){var c=z.drawingstate.matrix,d=a-c.tx,e=b+c.ty;return[(d*c.d-e*c.b)/c.det,-(-d*c.c+e*c.a)/c.det,1]};z.toMat=function(){var a=z.drawingstate.matrix;return g.realMatrix([[a.d,-a.b,-a.tx*a.d-a.ty*a.b],[a.c,-a.a,-a.tx*a.c-a.ty*a.a],[0,0,a.det]])};z.dumpTrafo=function(){function a(a){return Math.round(1E3*a)/1E3}var b=z.drawingstate.matrix;console.log("a:"+a(b.a)+" b:"+a(b.b)+" c:"+a(b.c)+" d:"+a(b.d)+" tx:"+a(b.ty)+" ty:"+a(b.tx))};z.setMat=function(a,b,c,d,e,f){var g=z.drawingstate.matrix;
-g.a=a;g.b=b;g.c=c;g.d=d;g.tx=e;g.ty=f;g.det=a*d-b*c;g.sdet=Math.sqrt(g.det)};z.scaleAndOrigin=function(a,b,c){z.setMat(a,0,0,a,b,c)};z.visibleRect=function(a,b,c,d){var e=c-a,f=b-d,e=da*f<ca*e?da/e:ca/f;z.setMat(e,0,0,e,(da-e*(a+c))/2,(ca-e*(b+d))/2)};z.applyMat=function(a,b,c,d,e,f){var g=z.drawingstate.matrix;z.setMat(g.a*a+g.c*b,g.b*a+g.d*b,g.a*c+g.c*d,g.b*c+g.d*d,g.a*e+g.c*f+g.tx,g.b*e+g.d*f+g.ty)};z.translate=function(a,b){z.applyMat(1,0,0,1,a,b)};z.rotate=function(a){var b=Math.cos(a);a=Math.sin(a);
-z.applyMat(b,a,-a,b,0,0)};z.scale=function(a){z.applyMat(a,0,0,a,0,0)};z.gsave=function(){$a.stack.push(z.clone(z.drawingstate))};z.grestore=function(){0!==$a.stack.length&&(z.drawingstate=$a.stack.pop())};z.greset=function(){z.drawingstate=z.clone($a.backup);z.drawingstate.matrix.ty-=ca;z.drawingstate.initialmatrix.ty-=ca;$a.stack=[]};z.createnewbackup=function(){z.drawingstate.initialmatrix.a=z.drawingstate.matrix.a;z.drawingstate.initialmatrix.b=z.drawingstate.matrix.b;z.drawingstate.initialmatrix.c=
-z.drawingstate.matrix.c;z.drawingstate.initialmatrix.d=z.drawingstate.matrix.d;z.drawingstate.initialmatrix.tx=z.drawingstate.matrix.tx;z.drawingstate.initialmatrix.ty=z.drawingstate.matrix.ty;z.drawingstate.initialmatrix.det=z.drawingstate.matrix.det;z.drawingstate.initialmatrix.sdet=z.drawingstate.matrix.sdet;$a.backup=z.clone(z.drawingstate)};z.makecolor=function(a,b,c){a=Math.floor(255*a);b=Math.floor(255*b);c=Math.floor(255*c);return 1===z.drawingstate.alpha?"rgb("+a+","+b+","+c+")":"rgba("+
-a+","+b+","+c+","+z.drawingstate.alpha+")"};z.setcolor=function(a){var b=a.value[0].value.real,c=a.value[1].value.real;a=a.value[2].value.real;z.drawingstate.linecolor=z.drawingstate.pointcolor=z.makecolor(b,c,a);z.drawingstate.linecolorraw=z.drawingstate.pointcolorraw=[b,c,a]};z.setlinecolor=function(a){var b=a.value[0].value.real,c=a.value[1].value.real;a=a.value[2].value.real;z.drawingstate.linecolor=z.makecolor(b,c,a);z.drawingstate.linecolorraw=[b,c,a]};z.settextcolor=function(a){var b=a.value[0].value.real,
-c=a.value[1].value.real;a=a.value[2].value.real;z.drawingstate.textcolor=z.makecolor(b,c,a);z.drawingstate.textcolorraw=[b,c,a]};z.setpointcolor=function(a){var b=a.value[0].value.real,c=a.value[1].value.real;a=a.value[2].value.real;z.drawingstate.pointcolor=z.makecolor(b,c,a);z.drawingstate.pointcolorraw=[b,c,a]};z.setalpha=function(a){z.drawingstate.alpha=a.value.real;z.drawingstate.linecolor=z.makecolor(z.drawingstate.linecolorraw[0],z.drawingstate.linecolorraw[1],z.drawingstate.linecolorraw[2]);
-z.drawingstate.pointcolor=z.makecolor(z.drawingstate.pointcolorraw[0],z.drawingstate.pointcolorraw[1],z.drawingstate.pointcolorraw[2]);z.drawingstate.textcolor=z.makecolor(z.drawingstate.textcolorraw[0],z.drawingstate.textcolorraw[1],z.drawingstate.textcolorraw[2])};z.setpointsize=function(a){z.drawingstate.pointsize=a.value.real};z.setlinesize=function(a){z.drawingstate.linesize=a.value.real};z.settextsize=function(a){z.drawingstate.textsize=a.value.real};var la={clip:"none",pointColor:[1,0,0],lineColor:[0,
-0,1],pointSize:5,lineSize:1,alpha:1,overhangLine:1,overhangSeg:1,dimDependent:.7,fontFamily:"sans-serif",textsize:20,lineHeight:1.45};p.defaultAppearance&&$d(p.defaultAppearance);var Ub={},ud={UL:0,UR:1,LR:2,LL:3},vc=["in","out","good","backup"],hb=new Float64Array(0),db={};vc.forEach(function(a){db[a]=hb});var ma=hb,Ma=hb,za=hb,va,Aa,fb,Ja,vb,wc=!1,wd={toString:function(){return"RefineException"}},zd=null,L=null;p.enableTraceLog&&(L={logLength:Infinity,fullLog:[],currentMouseAndScripts:null,currentMover:null,
-currentStep:null,currentElement:null,currentParam:null,labelTracing2:w.wrap("tracing2"),labelTracing4:w.wrap("tracing4"),labelTracingSesq:w.wrap("tracingSesq"),postMouseHooks:[]},"number"===typeof p.enableTraceLog&&(L.logLength=p.enableTraceLog),oa.getTraceLog=fe,oa.formatTraceLog=ge,oa.addTraceHook=L.postMouseHooks.push.bind(L.postMouseHooks));Na.stateSize=12;xc.stateSize=24;var ib=[];gb.P=function(a){u.lines.forEach(function(b){b=Dd(a,b);b.holds()&&ib.push(b)});u.conics.forEach(function(b){b=Ed(a,
-b);b.holds()&&ib.push(b)})};gb.L=function(a){u.points.forEach(function(b){b=Dd(b,a);b.holds()&&ib.push(b)})};gb.S=gb.L;gb.C=function(a){u.points.forEach(function(b){b=Ed(b,a);b.holds()&&ib.push(b)})};var m={_helper:{},RandomLine:{}};m.RandomLine.kind="L";m.RandomLine.signature=[];m.RandomLine.updatePosition=function(a){a.homog=g.realVector([Math.random()-.5,Math.random()-.5,Math.random()-.5]);a.homog=g.normalizeMax(a.homog);a.homog=w.withUsage(a.homog,"Line")};m.FreeLine={};m.FreeLine.kind="L";m.FreeLine.signature=
-[];m.FreeLine.isMovable=!0;m.FreeLine.initialize=function(a){a=m._helper.initializeLine(a);T(a)};m.FreeLine.getParamForInput=function(a,b,c){"mouse"===c?(a=g.cross(b,g.ez),a=g.cross(a,b)):a="homog"===c?b:g.turnIntoCSList([l.zero,l.zero,l.zero]);return g.normalizeMax(a)};m.FreeLine.getParamFromState=function(a){return Z(3)};m.FreeLine.putParamToState=function(a,b){T(b)};m.FreeLine.updatePosition=function(a){var b=Z(3);T(b);a.homog=w.withUsage(b,"Line")};m.FreeLine.stateSize=6;m.RandomPoint={};m.RandomPoint.kind=
-"P";m.RandomPoint.signature=[];m.RandomPoint.updatePosition=function(a){a.homog=g.realVector([100*Math.random(),100*Math.random(),100*Math.random()]);a.homog=g.normalizeMax(a.homog);a.homog=w.withUsage(a.homog,"Point")};m.Join={};m.Join.kind="L";m.Join.signature=["P","P"];m.Join.updatePosition=function(a){a.homog=g.cross(u.csnames[a.args[0]].homog,u.csnames[a.args[1]].homog);a.homog=g.normalizeMax(a.homog);a.homog=w.withUsage(a.homog,"Line")};m.Segment={};m.Segment.kind="S";m.Segment.signature=["P",
-"P"];m.Segment.updatePosition=function(a){var b=u.csnames[a.args[0]],c=u.csnames[a.args[1]];m.Segment.setSegmentPos(a,g.cross(b.homog,c.homog),g.scalmult(c.homog.value[2],b.homog),g.scalmult(b.homog.value[2],c.homog))};m.Segment.setSegmentPos=function(a,b,c,d){b=g.normalizeMax(b);a.homog=w.withUsage(b,"Line");b=g.turnIntoCSList([c,d]);b=g.normalizeMax(b);a.startpos=b.value[0];a.endpos=b.value[1]};m.Meet={};m.Meet.kind="P";m.Meet.signature=["L","L"];m.Meet.updatePosition=function(a){a.homog=g.cross(u.csnames[a.args[0]].homog,
-u.csnames[a.args[1]].homog);a.homog=g.normalizeMax(a.homog);a.homog=w.withUsage(a.homog,"Point")};m.Meet.visiblecheck=function(a){var b=!0,c=u.csnames[a.args[0]],d=u.csnames[a.args[1]];"S"===c.kind&&(b=sd(a,c));b&&"S"===d.kind&&(b=sd(a,d));a.isshowing=b};m._helper.midpoint=function(a,b){return g.normalizeMax(g.add(g.scalmult(b.value[2],a),g.scalmult(a.value[2],b)))};m.Mid={};m.Mid.kind="P";m.Mid.signature=["P","P"];m.Mid.updatePosition=function(a){var b=m._helper.midpoint(u.csnames[a.args[0]].homog,
-u.csnames[a.args[1]].homog);a.homog=w.withUsage(b,"Point")};m.Perp={};m.Perp.kind="L";m.Perp.signature=["L","P"];m.Perp.updatePosition=function(a){var b=u.csnames[a.args[0]].homog,c=u.csnames[a.args[1]].homog,b=g.turnIntoCSList([b.value[0],b.value[1],l.zero]);a.homog=g.cross(b,c);a.homog=g.normalizeMax(a.homog);a.homog=w.withUsage(a.homog,"Line")};m.Para={};m.Para.kind="L";m.Para.signature=["L","P"];m.Para.updatePosition=function(a){var b=u.csnames[a.args[1]].homog;a.homog=g.cross(g.cross(g.linfty,
-u.csnames[a.args[0]].homog),b);a.homog=g.normalizeMax(a.homog);a.homog=w.withUsage(a.homog,"Line")};m.Horizontal={};m.Horizontal.kind="L";m.Horizontal.signature=["P"];m.Horizontal.updatePosition=function(a){a.homog=g.cross(g.ex,u.csnames[a.args[0]].homog);a.homog=g.normalizeMax(a.homog);a.homog=w.withUsage(a.homog,"Line")};m.HorizontalLine={};m.HorizontalLine.kind="L";m.HorizontalLine.signature=[];m.HorizontalLine.isMovable=!0;m.HorizontalLine.initialize=function(a){a=m._helper.initializeLine(a);
-a=g.turnIntoCSList([l.zero,a.value[1],a.value[2]]);a=g.normalizeMax(a);T(a)};m.HorizontalLine.getParamForInput=function(a,b,c){if("mouse"===c)b=g.cross(b,g.ex);else if("homog"===c){if(0!==b.value[0].real||0!==b.value[0].imag)b=g.turnIntoCSList([l.zero,b.value[1],b.value[2]])}else b=g.turnIntoCSList([l.zero,l.zero,l.zero]);return g.normalizeMax(b)};m.HorizontalLine.getParamFromState=function(a){return Z(3)};m.HorizontalLine.putParamToState=function(a,b){T(b)};m.HorizontalLine.updatePosition=function(a){var b=
-Z(3);T(b);a.homog=w.withUsage(b,"Line")};m.HorizontalLine.stateSize=6;m.Vertical={};m.Vertical.kind="L";m.Vertical.signature=["P"];m.Vertical.updatePosition=function(a){a.homog=g.cross(g.ey,u.csnames[a.args[0]].homog);a.homog=g.normalizeMax(a.homog);a.homog=w.withUsage(a.homog,"Line")};m.VerticalLine={};m.VerticalLine.kind="L";m.VerticalLine.signature=[];m.VerticalLine.isMovable=!0;m.VerticalLine.initialize=function(a){a=m._helper.initializeLine(a);a=g.turnIntoCSList([a.value[0],l.zero,a.value[2]]);
-a=g.normalizeMax(a);T(a)};m.VerticalLine.getParamForInput=function(a,b,c){if("mouse"===c)b=g.cross(b,g.ey);else if("homog"===c){if(0!==b.value[1].real||0!==b.value[1].imag)b=g.turnIntoCSList([b.value[0],l.zero,b.value[2]])}else b=g.turnIntoCSList([l.zero,l.zero,l.zero]);return g.normalizeMax(b)};m.VerticalLine.getParamFromState=function(a){return Z(3)};m.VerticalLine.putParamToState=function(a,b){T(b)};m.VerticalLine.updatePosition=function(a){var b=Z(3);T(b);a.homog=w.withUsage(b,"Line")};m.VerticalLine.stateSize=
-6;m.LineByFixedAngle={};m.LineByFixedAngle.kind="L";m.LineByFixedAngle.signature=["L","P"];m.LineByFixedAngle.initialize=function(a){var b=l._helper.input(a.angle),c=l.cos(b),b=l.sin(b);a.rot=g.turnIntoCSList([g.turnIntoCSList([b,c,l.zero]),g.turnIntoCSList([l.neg(c),b,l.zero]),g.turnIntoCSList([l.zero,l.zero,l.zero])])};m.LineByFixedAngle.updatePosition=function(a){var b=u.csnames[a.args[1]],c=g.productMV(a.rot,u.csnames[a.args[0]].homog);a.homog=g.cross(b.homog,c);a.homog=g.normalizeMax(a.homog);
-a.homog=w.withUsage(a.homog,"Line")};m.Through={};m.Through.kind="L";m.Through.signature=["P"];m.Through.isMovable=!0;m.Through.initialize=function(a){a=a.dir?w.wrap(a.dir):g.realVector([a.pos[1],-a.pos[0],0]);T(a)};m.Through.getParamForInput=function(a,b,c){a="dir"===c||"mouse"===c?g.cross(u.csnames[a.args[0]].homog,b):"homog"===c?b:g.turnIntoCSList([l.zero,l.zero,l.zero]);a=g.cross(g.linfty,a);return g.normalizeMax(a)};m.Through.getParamFromState=function(a){return Z(3)};m.Through.putParamToState=
-function(a,b){T(b)};m.Through.updatePosition=function(a){var b=Z(3);T(b);b=g.cross(u.csnames[a.args[0]].homog,b);b=g.normalizeMax(b);a.homog=w.withUsage(b,"Line")};m.Through.stateSize=6;m.Through.set_angle=function(a,b){if("number"===b.ctype){var c=l.cos(b),d=l.sin(b),c=g.turnIntoCSList([c,d,l.real(0)]);Ia(a,c,"dir")}};m.Through.set_slope=function(a,b){if("number"===b.ctype){var c=g.turnIntoCSList([l.real(1),b,l.real(0)]);Ia(a,c,"dir")}};m.Free={};m.Free.kind="P";m.Free.signature=[];m.Free.isMovable=
-!0;m.Free.initialize=function(a){a=m._helper.initializePoint(a);T(a)};m.Free.getParamForInput=function(a,b,c){if("mouse"===c&&cc&&0!==Wa){b=g.normalizeZ(b);a=b.value[0].value.real;c=b.value[1].value.real;var d=Math.round(a/Wa)*Wa,e=Math.round(c/Wa)*Wa;.2>Math.abs(d-a)&&.2>Math.abs(e-c)&&(b=g.realVector([d,e,1]))}return g.normalizeMax(b)};m.Free.getParamFromState=function(a){return Z(3)};m.Free.putParamToState=function(a,b){T(b)};m.Free.updatePosition=function(a){var b=Z(3);T(b);a.homog=w.withUsage(b,
-"Point")};m.Free.stateSize=6;m._helper.projectPointToLine=function(a,b){var c=g.turnIntoCSList([b.value[0],b.value[1],l.zero]),c=g.cross(c,a);return g.normalizeMax(g.cross(c,b))};m.PointOnLine={};m.PointOnLine.kind="P";m.PointOnLine.signature=["L"];m.PointOnLine.isMovable=!0;m.PointOnLine.initialize=function(a){var b=m._helper.initializePoint(a);a=u.csnames[a.args[0]].homog;var b=m._helper.projectPointToLine(b,a),b=g.normalizeMax(b),c=g.cross(g.linfty,b);g.normalizeMax(c);T(b);T(a);fb=!1};m.PointOnLine.updatePosition=
-function(a,b){var c,d=u.csnames[a.args[0]].homog;c=Z(3);Z(3);if(!b){va=a.stateIdx;var e=ma;ma=za;var f=Z(3),l=Z(3);ma=e;e=g.cross(l,d);g._helper.isAlmostZero(e)&&(e=g.cross(g.linfty,d));f=m._helper.CircleMP(e,f);f=m._helper.IntersectLC(d,f);e=m._helper.pointReflection(e,c);c=Ad(f[0],f[1],c,e)[0]}c=g.normalizeMax(c);T(c);T(d);a.homog=w.withUsage(c,"Point")};m.PointOnLine.getParamForInput=function(a,b,c){return b=m._helper.projectPointToLine(b,u.csnames[a.args[0]].homog)};m.PointOnLine.getParamFromState=
-function(a){return Z(3)};m.PointOnLine.putParamToState=function(a,b){return T(b)};m.PointOnLine.stateSize=12;m.PointOnCircle={};m.PointOnCircle.kind="P";m.PointOnCircle.signature=["C"];m.PointOnCircle.isMovable=!0;m.PointOnCircle.initialize=function(a){var b=u.csnames[a.args[0]];a=g.normalizeZ(m._helper.initializePoint(a));var c=g.normalizeZ(m._helper.CenterOfCircle(b.matrix)),d=g.sub(a,c),d=g.turnIntoCSList([d.value[1],l.neg(d.value[0]),l.zero]),c=g.cross(a,c),b=m._helper.IntersectLC(c,b.matrix),
-c=g.projectiveDistMinScal(a,b[0]);g.projectiveDistMinScal(a,b[1])<c?(a=b[1],b=b[0]):(a=b[0],b=b[1]);T(d);T(a);T(b);fb=!1};m.PointOnCircle.putParamToState=function(a,b){T(b)};m.PointOnCircle.getParamFromState=function(a){return Z(3)};m.PointOnCircle.getParamForInput=function(a,b,c){c=g.normalizeZ(m._helper.CenterOfCircle(u.csnames[a.args[0]].matrix));b=g.sub(b,c);va=a.stateIdx;a=Z(3);var d=g.normalizeZ(Z(3));c=g.sub(d,c);0>l.sub(l.mult(a.value[0],c.value[1]),l.mult(a.value[1],c.value[0])).value.real&&
-(b=g.neg(b));return g.turnIntoCSList([b.value[1],l.neg(b.value[0]),l.zero])};m.PointOnCircle.parameterPath=function(a,b,c,d,e){d=g.normalizeAbs(d);e=g.normalizeAbs(e);var f=g.scalproduct(d,e);if(0<=f.value.real)return xd(a,b,c,d,e);a=g.turnIntoCSList([l.sub(d.value[1],e.value[1]),l.sub(e.value[0],d.value[0]),l.zero]);f=g.scalproduct(d,a);0>f.value.real&&(a=g.neg(a));0>b?(b=2*b+1,c=b*b,f=.25/(1+c),c=l.complex(2*b*f+.25,(1-c)*f)):(b=2*b-1,c=b*b,f=.25/(1+c),c=l.complex(2*b*f+.75,(1-c)*f));var k=l.sub(l.real(1),
-c);b=l.mult(c,c);f=l.mult(k,k);c=l.mult(c,k);d=g.scalmult(f,d);d=g.add(d,g.scalmult(c,a));return d=g.add(d,g.scalmult(b,e))};m.PointOnCircle.updatePosition=function(a){var b=Z(3);T(b);var c=u.csnames[a.args[0]],b=g.productMV(c.matrix,b),c=m._helper.IntersectLC(b,c.matrix),c=Na(c[0],c[1]),b=g.normalizeMax(c.value[0]);a.homog=w.withUsage(b,"Point");a.antipodalPoint=c.value[1]};m.PointOnCircle.stateSize=6+Na.stateSize;m.OtherPointOnCircle={};m.OtherPointOnCircle.kind="P";m.OtherPointOnCircle.signature=
-["P"];m.OtherPointOnCircle.signatureConstraints=function(a){return"PointOnCircle"===u.csnames[a.args[0]].type};m.OtherPointOnCircle.updatePosition=function(a){var b=u.csnames[a.args[0]].antipodalPoint,b=g.normalizeMax(b);a.homog=w.withUsage(b,"Point")};m.PointOnSegment={};m.PointOnSegment.kind="P";m.PointOnSegment.signature=["S"];m.PointOnSegment.isMovable=!0;m.PointOnSegment.initialize=function(a){var b=m._helper.initializePoint(a);a=m.PointOnSegment.getParamForInput(a,b);Va(a)};m.PointOnSegment.getParamForInput=
-function(a,b){var c=u.csnames[a.args[0]],d=c.homog,d=g.turnIntoCSList([d.value[0],d.value[1],l.zero]),e=g.sub(c.startpos,c.endpos),c=g.crossratio3(e,c.startpos,c.endpos,b,d);0>c.value.real&&(c=l.complex(0,c.value.imag));1<c.value.real&&(c=l.complex(1,c.value.imag));return c};m.PointOnSegment.getParamFromState=function(a){return wb()};m.PointOnSegment.putParamToState=function(a,b){Va(b)};m.PointOnSegment.updatePosition=function(a){var b=wb();Va(b);var c=u.csnames[a.args[0]],d=c.startpos,c=g.sub(c.endpos,
-d),b=g.add(d,g.scalmult(b,c)),b=g.normalizeMax(b);a.homog=w.withUsage(b,"Point")};m.PointOnSegment.stateSize=2;m._helper.projectPointToCircle=function(a,b){var c=m._helper.CenterOfCircle(a.matrix),c=g.normalizeMax(c),c=g.normalizeMax(g.cross(b,c)),c=m._helper.IntersectLC(c,a.matrix),d=g.projectiveDistMinScal(b,c[0]),e=g.projectiveDistMinScal(b,c[1]);return d<e?c[0]:c[1]};m.PointOnArc={};m.PointOnArc.kind="P";m.PointOnArc.signature=["C"];m.PointOnArc.signatureConstraints=function(a){return u.csnames[a.args[0]].isArc};
-m.PointOnArc.isMovable=!0;m.PointOnArc.initialize=function(a){var b=m._helper.initializePoint(a);a=m.PointOnArc.getParamForInput(a,b);T(a)};m.PointOnArc.getParamForInput=function(a,b){var c=u.csnames[a.args[0]],d=m._helper.projectPointToCircle(c,b),c=g.normalizeMax(g.crossratio3harm(c.startPoint,c.endPoint,c.viaPoint,d,g.ii)),d=l.div(c.value[0],c.value[1]);0>d.value.real&&(c=-1>d.value.real?g.realVector([1,0]):g.realVector([0,1]));return c};m.PointOnArc.getParamFromState=function(a){return Z(2)};
-m.PointOnArc.putParamToState=function(a,b){T(b)};m.PointOnArc.updatePosition=function(a){var b=u.csnames[a.args[0]],c=b.startPoint,d=b.viaPoint,e=b.endPoint,f=g.ii,k=g.cross(c,f),d=g.cross(d,f),n=g.cross(e,f),n=g.turnIntoCSList([k,n]),k=g.transpose(n),n=g.conjugate(n),k=g.productMM(n,k),d=g.productMV(n,d),k=g.productMV(g.adjoint2(k),d),d=k.value[0],k=k.value[1],n=Z(2);T(n);c=g.normalizeMax(g.add(g.scalmult(l.mult(d,n.value[0]),c),g.scalmult(l.mult(k,n.value[1]),e)));b=m._helper.conicOtherIntersection(b.matrix,
-f,c);a.homog=w.withUsage(b,"Point")};m.PointOnArc.stateSize=4;m._helper.CenterOfCircle=function(a){return g.turnIntoCSList([a.value[2].value[0],a.value[2].value[1],l.neg(a.value[0].value[0])])};m._helper.CenterOfConic=function(a){a=g.adjoint3(a);return{ctype:"list",value:[a.value[2].value[0],a.value[2].value[1],a.value[2].value[2]]}};m.CenterOfConic={};m.CenterOfConic.kind="P";m.CenterOfConic.signature=["C"];m.CenterOfConic.updatePosition=function(a){var b=m._helper.CenterOfConic(u.csnames[a.args[0]].matrix);
-a.homog=b;a.homog=g.normalizeMax(a.homog);a.homog=w.withUsage(a.homog,"Point")};m._helper.CircleMP=function(a,b){var c=a.value[0],d=a.value[1],e=l.neg(a.value[2]),f=l.zero,c=g.turnIntoCSList([g.turnIntoCSList([e,f,c]),g.turnIntoCSList([f,e,d]),g.turnIntoCSList([c,d,f])]),e=w.mult(w.mult(b,c),b),d=w.mult(w.mult(b,g.fund),b),e=w.mult(e,g.fund),c=w.mult(d,c);return g.sub(e,c)};m.CircleMP={};m.CircleMP.kind="C";m.CircleMP.signature=["P","P"];m.CircleMP.updatePosition=function(a){a.matrix=m._helper.CircleMP(u.csnames[a.args[0]].homog,
-u.csnames[a.args[1]].homog);a.matrix=g.normalizeMax(a.matrix);a.matrix=w.withUsage(a.matrix,"Circle")};m.CircleMr={};m.CircleMr.kind="C";m.CircleMr.signature=["P"];m.CircleMr.isMovable=!0;m.CircleMr.initialize=function(a){Va(l.real(a.radius))};m.CircleMr.getParamForInput=function(a,b,c){if("radius"===c)return b;a=u.csnames[a.args[0]].homog;a=g.normalizeZ(a);b=g.normalizeZ(b);b=g.sub(a,b);return b=g.abs(b)};m.CircleMr.getParamFromState=function(a){return wb()};m.CircleMr.putParamToState=function(a,
-b){Va(b)};m.CircleMr.updatePosition=function(a){var b=wb();Va(b);var c=u.csnames[a.args[0]].homog,d=l.mult(c.value[2],b),d=l.mult(d,d);if(!l._helper.isFinite(d)&&!l._helper.isNaN(d))return g.fund;c=m._helper.ScaledCircleMrr(c,d);a.matrix=w.withUsage(c,"Circle");a.radius=b};m.CircleMr.stateSize=2;m.CircleMr.set_radius=function(a,b){"number"===b.ctype&&Ia(a,b,"radius")};m._helper.ScaledCircleMrr=function(a,b){var c=a.value[0],d=a.value[1],e=l.neg(a.value[2]),e=g.scalmult(e,g.turnIntoCSList([c,d,e])).value,
-c=g.turnIntoCSList([c,d]),c=l.sub(g.scalproduct(c,c),b),e=m._helper.buildConicMatrix([e[2],l.zero,e[2],e[0],e[1],c]);return g.normalizeMax(e)};m.Compass={};m.Compass.kind="C";m.Compass.signature=["P","P","P"];m.Compass.updatePosition=function(a){var b=u.csnames[a.args[0]].homog,c=u.csnames[a.args[1]].homog,d=u.csnames[a.args[2]].homog,e=b.value[2],f=c.value[2],k=d.value[2],b=g.scalmult(l.mult(f,k),b),c=g.scalmult(l.mult(e,k),c),d=g.scalmult(l.mult(e,f),d),b=g.sub(c,b),d=m._helper.ScaledCircleMrr(d,
-g.scalproduct(b,b));a.matrix=w.withUsage(d,"Circle")};m._helper.getConicType=function(a){if(1E-16>l.abs(g.det(a)).value.real)return"degenerate";var b=l.mult(a.value[0].value[0],a.value[1].value[1]),b=l.sub(b,l.pow(a.value[0].value[1],l.real(2))),b=b.value.real;return 1E-16>Math.abs(b)?"parabola":1E-16<b?"ellipsoid":"hyperbola"};m._helper.ConicBy5=function(a,b,c,d,e,f){a=g.turnIntoCSList([g.cross(c,d)]);var k=g.turnIntoCSList([g.cross(b,e)]);b=g.turnIntoCSList([g.cross(b,c)]);d=g.turnIntoCSList([g.cross(d,
-e)]);return m._helper.conicFromTwoDegenerates(a,k,b,d,f)};m._helper.conicFromTwoDegenerates=function(a,b,c,d,e){a=w.mult(g.transpose(b),a);c=w.mult(g.transpose(d),c);a=g.add(a,g.transpose(a));c=g.add(c,g.transpose(c));d=w.mult(w.mult(e,a),e);e=w.mult(w.mult(e,c),e);c=w.mult(d,c);e=w.mult(e,a);return g.sub(c,e)};m.ConicBy5={};m.ConicBy5.kind="C";m.ConicBy5.signature=["P","P","P","P","P"];m.ConicBy5.updatePosition=function(a){var b=m._helper.ConicBy5(a,u.csnames[a.args[0]].homog,u.csnames[a.args[1]].homog,
-u.csnames[a.args[2]].homog,u.csnames[a.args[3]].homog,u.csnames[a.args[4]].homog);a.matrix=b;a.matrix=g.normalizeMax(a.matrix);a.matrix=w.withUsage(a.matrix,"Conic")};m.FreeConic={};m.FreeConic.kind="C";m.FreeConic.signature=[];m.FreeConic.initialize=function(a){var b;b=a.pos?m._helper.inputConic(a.pos):g.zeromatrix(l.real(3),l.real(3));m.FreeConic.putParamToState(a,b)};m.FreeConic.getParamForInput=function(a,b,c){return g.normalizeMax(b)};m.FreeConic.getParamFromState=function(a){return m._helper.buildConicMatrix(Z(6).value)};
-m.FreeConic.putParamToState=function(a,b){for(var c=0;3>c;++c)for(var d=0;d<=c;++d)Va(b.value[c].value[d])};m.FreeConic.updatePosition=function(a){var b=Z(6);T(b);a.matrix=m._helper.buildConicMatrix(b.value);a.matrix=g.normalizeMax(a.matrix);a.matrix=w.withUsage(a.matrix,"Conic")};m.FreeConic.set_matrix=function(a,b){g._helper.isNumberMatrixMN(b,3,3)&&Ia(a,g.add(b,g.transpose(b)),"matrix")};m.FreeConic.stateSize=12;m._helper.buildConicMatrix=function(a){var b=a[1],c=a[2],d=a[3],e=a[4],f=a[5];return g.turnIntoCSList([g.turnIntoCSList([a[0],
-b,d]),g.turnIntoCSList([b,c,e]),g.turnIntoCSList([d,e,f])])};m._helper.splitDegenConic=function(a){var b=g.adjoint3(a),c=0,d,e,f=l.abs2(b.value[0].value[0]).value.real;for(d=1;3>d;d++)e=l.abs2(b.value[d].value[d]).value.real,e>f&&(c=d,f=e);d=l.sqrt(l.mult(l.real(-1),b.value[c].value[c]));if(1E-16>l.abs2(d).value.real)return a=g.turnIntoCSList([l.zero,l.zero,l.zero]),[a,a];c=l.real(c+1);e=g.column(b,c);e=g.scaldiv(d,e);d=e.value[0];f=e.value[1];e=e.value[2];d=g.turnIntoCSList([g.turnIntoCSList([l.real(0),
-e,l.mult(l.real(-1),f)]),g.turnIntoCSList([l.mult(l.real(-1),e),l.real(0),d]),g.turnIntoCSList([f,l.mult(l.real(-1),d),l.real(0)])]);a=g.add(a,d);var k=0;for(d=f=b=0;3>d;d++)for(c=0;3>c;c++)e=l.abs2(a.value[d].value[c]).value.real,e>f&&(k=d,b=c,f=e);d=a.value[k];a=g.transpose(a);a=a.value[b];d=g.normalizeMax(d);a=g.normalizeMax(a);d=w.withUsage(d,"Line");a=w.withUsage(a,"Line");return[d,a]};m._helper.inputConic=function(a){var b="xx xy yy xz yz zz".split(" ").map(function(b){var d=l._helper.input(a[b]);
-b[0]!==b[1]&&(d=l.realmult(.5,d));return d});return m._helper.buildConicMatrix(b)};m.SelectConic={};m.SelectConic.kind="C";m.SelectConic.signature=["Cs"];m.SelectConic.initialize=function(a){if(void 0!==a.index)return a.index-1;var b=m._helper.inputConic(a.pos);a=u.csnames[a.args[0]].results;for(var c=g.conicDist(b,a[0]),d=0,e=1;e<a.length;++e){var f=g.conicDist(b,a[e]);f<c&&(c=f,d=e)}return d};m.SelectConic.updatePosition=function(a){a.matrix=u.csnames[a.args[0]].results[a.param];a.matrix=g.normalizeMax(a.matrix);
-a.matrix=w.withUsage(a.matrix,"Conic")};m._helper.ConicBy4p1l=function(a,b,c,d,e,f){var k=g.scalproduct(b,f),n=g.scalproduct(c,f),p=g.scalproduct(d,f),q=g.scalproduct(e,f),t=g.det3(c,d,e),u=g.det3(b,c,e),v=g.det3(b,d,e),w=g.det3(b,c,d),x=l.mult,n=l.sqrt(x(x(n,q),x(t,u))),k=l.sqrt(x(x(k,p),x(v,w))),p=g.cross(g.cross(b,d),f);f=g.cross(g.cross(c,e),f);p=g.scalmult(n,p);k=g.scalmult(k,f);f=g.normalizeMax(g.add(p,k));k=g.normalizeMax(g.sub(p,k));k=Na(f,k);f=m._helper.ConicBy5(a,b,c,d,e,k.value[0]);a=m._helper.ConicBy5(a,
-b,c,d,e,k.value[1]);return[g.normalizeMax(f),g.normalizeMax(a)]};m.ConicBy4p1l={};m.ConicBy4p1l.kind="Cs";m.ConicBy4p1l.signature=["P","P","P","P","L"];m.ConicBy4p1l.updatePosition=function(a){var b=m._helper.ConicBy4p1l(a,u.csnames[a.args[0]].homog,u.csnames[a.args[1]].homog,u.csnames[a.args[2]].homog,u.csnames[a.args[3]].homog,u.csnames[a.args[4]].homog);a.results=b};m.ConicBy4p1l.stateSize=Na.stateSize;m._helper.ConicBy3p2l=function(a,b,c,d,e){function f(a,b,c,d){return l.sub(l.mult(a,d),l.mult(b,
-c))}var k=g.cross(a,b),m=g.cross(d,e);d=g.cross(d,k);e=g.cross(e,k);k=g.turnIntoCSList([d,e,m]);c=g.productVM(c,g.adjoint3(k));m=g.adjoint3(g.turnIntoCSList([g.scalmult(c.value[0],d),g.scalmult(c.value[1],e),g.scalmult(c.value[2],m)]));c=g.transpose(m);d=l.mult;e=g.productMV(c,a);a=e.value[0];e=e.value[1];k=g.productMV(c,b);b=k.value[0];var k=k.value[1],n=l.sqrt(d(a,e)),p=l.sqrt(d(b,k)),q,t=Array(4);for(q=0;4>q;++q){var u=(q&2)-1,v=d(l.real(((q&1)<<1)-1),n),w=d(l.real(u),p),x=f(e,v,k,w),y=f(b,w,a,
-v),u=f(a,e,b,k),z=l.add(l.add(f(b,k,a,e),f(k,w,e,v)),f(w,b,v,a)),v=d(x,x),w=d(y,y),A=d(z,z),B=d(x,y),x=d(x,z),y=d(y,z),B=l.sub(B,d(l.real(.5),d(u,u))),u=g.turnIntoCSList([g.turnIntoCSList([v,B,x]),g.turnIntoCSList([B,w,y]),g.turnIntoCSList([x,y,A])]),u=g.productMM(m,g.productMM(u,c)),u=g.turnIntoCSList([u.value[0].value[0],u.value[0].value[1],u.value[0].value[2],u.value[1].value[1],u.value[1].value[2],u.value[2].value[2]]);t[q]=u}return t};m.ConicBy3p2l={};m.ConicBy3p2l.kind="Cs";m.ConicBy3p2l.signature=
-["P","P","P","L","L"];m.ConicBy3p2l.updatePosition=function(a){for(var b=m._helper.ConicBy3p2l(u.csnames[a.args[0]].homog,u.csnames[a.args[1]].homog,u.csnames[a.args[2]].homog,u.csnames[a.args[3]].homog,u.csnames[a.args[4]].homog),b=Bd(b),c=Array(4),d=0;4>d;++d){var e=b[d].value;c[d]=g.turnIntoCSList([g.turnIntoCSList([e[0],e[1],e[2]]),g.turnIntoCSList([e[1],e[3],e[4]]),g.turnIntoCSList([e[2],e[4],e[5]])])}a.results=c};m.ConicBy3p2l.stateSize=48;m.ConicBy2p3l={};m.ConicBy2p3l.kind="Cs";m.ConicBy2p3l.signature=
-["P","P","L","L","L"];m.ConicBy2p3l.updatePosition=function(a){for(var b=m._helper.ConicBy3p2l(u.csnames[a.args[2]].homog,u.csnames[a.args[3]].homog,u.csnames[a.args[4]].homog,u.csnames[a.args[0]].homog,u.csnames[a.args[1]].homog),b=Bd(b),c=Array(4),d=0;4>d;++d){var e=b[d].value,e=g.turnIntoCSList([g.turnIntoCSList([e[0],e[1],e[2]]),g.turnIntoCSList([e[1],e[3],e[4]]),g.turnIntoCSList([e[2],e[4],e[5]])]);c[d]=g.normalizeMax(g.adjoint3(e))}a.results=c};m.ConicBy2p3l.stateSize=48;m.ConicBy1p4l={};m.ConicBy1p4l.kind=
-"Cs";m.ConicBy1p4l.signature=["P","L","L","L","L"];m.ConicBy1p4l.updatePosition=function(a){var b=m._helper.ConicBy4p1l(a,u.csnames[a.args[1]].homog,u.csnames[a.args[2]].homog,u.csnames[a.args[3]].homog,u.csnames[a.args[4]].homog,u.csnames[a.args[0]].homog),c=b[0],b=b[1],c=g.adjoint3(c),b=g.adjoint3(b),b=[c,b];a.results=b};m.ConicBy1p4l.stateSize=Na.stateSize;m.ConicParabolaPL={};m.ConicParabolaPL.kind="C";m.ConicParabolaPL.signature=["P","L"];m.ConicParabolaPL.updatePosition=function(a){var b=u.csnames[a.args[0]].homog.value,
-c=u.csnames[a.args[1]].homog.value,d=l.mult,e=l.neg,f=l.add,k=l.sub,n=b[0],p=b[1],q=b[2],t=c[0],b=c[1],c=c[2],v=d(q,q),x=d(t,t),y=d(b,b),z=d(q,c),A=e(q),q=f(x,y),y=d(v,y),x=d(v,x),e=d(e(v),d(t,b)),t=d(A,f(d(n,q),d(z,t))),b=d(A,f(d(p,q),d(z,b))),d=k(d(f(d(n,n),d(p,p)),q),d(v,d(c,c))),d=m._helper.buildConicMatrix([y,e,x,t,b,d]),d=g.normalizeMax(d);a.matrix=w.withUsage(d,"Conic")};m.ConicBy2Foci1P={};m.ConicBy2Foci1P.kind="Cs";m.ConicBy2Foci1P.signature=["P","P","P"];m.ConicBy2Foci1P.updatePosition=
-function(a){var b=u.csnames[a.args[0]].homog,c=u.csnames[a.args[1]].homog,d=u.csnames[a.args[2]].homog,e=g.ii,f=g.jj,k=g.normalizeMax(g.cross(b,d)),n=g.normalizeMax(g.cross(c,d)),p=g.normalizeMax(g.cross(d,e)),d=g.normalizeMax(g.cross(d,f)),n=m._helper.coHarmonic(p,d,k,n),k=g.normalizeMax(n[0]),n=g.normalizeMax(n[1]),e=g.turnIntoCSList([e]),p=g.turnIntoCSList([f]),d=g.turnIntoCSList([b]),q=g.turnIntoCSList([c]),f=m._helper.conicFromTwoDegenerates(e,p,d,q,k),f=g.normalizeMax(f),e=m._helper.conicFromTwoDegenerates(e,
-p,d,q,n),e=g.normalizeMax(e),f=g.normalizeMax(g.adjoint3(f)),e=g.normalizeMax(g.adjoint3(e));"ellipsoid"!==m._helper.getConicType(f)&&(k=f,f=e,e=k);g.almostequals(b,c).value&&(b=l.real(3),e=g.zeromatrix(b,b));a.results=[f,e]};m.ConicBy2Pol1P={};m.ConicBy2Pol1P.kind="C";m.ConicBy2Pol1P.signature=["P","L","P","L","P"];m.ConicBy2Pol1P.updatePosition=function(a){var b=u.csnames[a.args[0]].homog,c=u.csnames[a.args[1]].homog,d=u.csnames[a.args[2]].homog,e=u.csnames[a.args[3]].homog,f=u.csnames[a.args[4]].homog,
-k=g.scalproduct,m=g.scalmult,n=g.sub,p=g.productMM,q=l.realmult,t=g.transpose,v=g.turnIntoCSList,x=n(m(k(c,b),f),m(q(2,k(c,f)),b)),y=n(m(k(e,d),f),m(q(2,k(e,f)),d)),z=v([g.cross(b,f)]),f=v([g.cross(d,f)]),y=p(t(z),v([g.cross(b,y)])),v=p(t(f),v([g.cross(d,x)])),p=p(t(z),f),b=k(b,e),c=k(d,c),d=g.add(m(c,y),m(b,v)),d=n(d,m(q(2,l.mult(b,c)),p)),d=g.add(d,t(d)),d=g.normalizeMax(d),d=w.withUsage(d,"Conic");a.matrix=d};m.ConicBy2Pol1L={};m.ConicBy2Pol1L.kind="C";m.ConicBy2Pol1L.signature=["P","L","P","L",
-"L"];m.ConicBy2Pol1L.updatePosition=function(a){var b=u.csnames[a.args[0]].homog,c=u.csnames[a.args[1]].homog,d=u.csnames[a.args[2]].homog,e=u.csnames[a.args[3]].homog,f=u.csnames[a.args[4]].homog,k=g.scalproduct,m=g.scalmult,n=g.productMM,p=l.mult,q=g.transpose,t=g.turnIntoCSList,v=k(c,b),x=k(c,d),y=k(e,b),z=k(e,d),A=k(f,b),k=k(f,d),B=t([g.sub(m(p(y,k),c),m(p(x,A),e))]),b=g.add(n(q(t([m(p(y,x),f)])),t([g.sub(g.add(m(l.sub(p(v,k),p(x,A)),e),m(l.sub(p(z,A),p(y,k)),c)),m(g.det3(c,e,f),g.cross(b,d)))])),
-n(q(B),B)),b=g.add(b,q(b)),b=g.normalizeMax(b),b=w.withUsage(b,"Conic");a.matrix=b};m._helper.conic1Pol3Inc=function(a,b,c,d,e){var f=g.scalproduct,k=g.scalmult,m=g.productMM,n=g.cross,p=l.realmult,q=l.mult,t=g.transpose,u=g.turnIntoCSList,v=g.det3,w=v(a,c,d),x=u([n(c,e)]),y=u([n(a,e)]),z=u([n(c,d)]),A=f(b,a),B=f(b,c);b=f(b,e);n=u([n(d,g.sub(k(A,e),k(p(2,b),a)))]);x=k(w,m(t(x),n));a=p(2,l.add(q(v(a,d,e),B),q(w,b)));a=l.sub(q(v(c,d,e),A),a);x=g.add(x,k(a,m(t(y),z)));x=g.add(x,t(x));return x=g.normalizeMax(x)};
-m.ConicBy1Pol3P={};m.ConicBy1Pol3P.kind="C";m.ConicBy1Pol3P.signature=["P","L","P","P","P"];m.ConicBy1Pol3P.updatePosition=function(a){var b=m._helper.conic1Pol3Inc(u.csnames[a.args[0]].homog,u.csnames[a.args[1]].homog,u.csnames[a.args[2]].homog,u.csnames[a.args[3]].homog,u.csnames[a.args[4]].homog),b=w.withUsage(b,"Conic");a.matrix=b};m.ConicBy1Pol3L={};m.ConicBy1Pol3L.kind="C";m.ConicBy1Pol3L.signature=["P","L","L","L","L"];m.ConicBy1Pol3L.updatePosition=function(a){var b=m._helper.conic1Pol3Inc(u.csnames[a.args[1]].homog,
-u.csnames[a.args[0]].homog,u.csnames[a.args[2]].homog,u.csnames[a.args[3]].homog,u.csnames[a.args[4]].homog),b=g.normalizeMax(g.adjoint3(b)),b=w.withUsage(b,"Conic");a.matrix=b};m._helper.coHarmonic=function(a,b,c,d){var e=g.realVector([100*Math.random(),100*Math.random(),1]),f=g.det3(e,c,a),k=g.det3(e,c,b);c=g.det3(e,d,a);d=g.det3(e,d,b);d=l.sqrt(l.mult(d,k));f=l.sqrt(l.mult(c,f));a=w.mult(a,d);f=w.mult(b,f);b=g.add(a,f);a=g.sub(a,f);return[b,a]};m.ConicInSquare={};m.ConicInSquare.kind="C";m.ConicInSquare.signature=
-["P","P","P","P"];m.ConicInSquare.updatePosition=function(a){var b=D.basismap(u.csnames[a.args[0]].homog,u.csnames[a.args[1]].homog,u.csnames[a.args[2]].homog,u.csnames[a.args[3]].homog),c=l.one,c=m._helper.buildConicMatrix([c,c,c,l.real(-3),c,c]),b=g.adjoint3(b),b=g.productMM(g.productMM(g.transpose(b),c),b),b=g.normalizeMax(b);a.matrix=w.withUsage(b,"Conic")};m.ConicBy5lines={};m.ConicBy5lines.kind="C";m.ConicBy5lines.signature=["L","L","L","L","L"];m.ConicBy5lines.updatePosition=function(a){var b=
-m._helper.ConicBy5(a,u.csnames[a.args[0]].homog,u.csnames[a.args[1]].homog,u.csnames[a.args[2]].homog,u.csnames[a.args[3]].homog,u.csnames[a.args[4]].homog),b=g.adjoint3(b);a.matrix=b;a.matrix=g.normalizeMax(a.matrix);a.matrix=w.withUsage(a.matrix,"Conic")};m.ConicFromPrincipalDirections={};m.ConicFromPrincipalDirections.kind="C";m.ConicFromPrincipalDirections.signature=["P","P","P"];m.ConicFromPrincipalDirections.updatePosition=function(a){var b=u.csnames[a.args[0]].homog,c=u.csnames[a.args[1]].homog,
-d=u.csnames[a.args[2]].homog,e=m._helper.pointReflection(b,c),f=g.cross(c,b),b=g.turnIntoCSList([f.value[0],f.value[1],l.zero]),f=g.turnIntoCSList([f]),c=g.turnIntoCSList([g.cross(c,b)]),e=g.turnIntoCSList([g.cross(e,b)]);a.matrix=m._helper.conicFromTwoDegenerates(f,f,c,e,d);a.matrix=g.normalizeMax(a.matrix);a.matrix=w.withUsage(a.matrix,"Conic")};m.CircleBy3={};m.CircleBy3.kind="C";m.CircleBy3.signature=["P","P","P"];m.CircleBy3.updatePosition=function(a){var b=m._helper.ConicBy5(a,u.csnames[a.args[0]].homog,
-u.csnames[a.args[1]].homog,g.ii,g.jj,u.csnames[a.args[2]].homog);a.matrix=g.normalizeMax(b);a.matrix=w.withUsage(a.matrix,"Circle")};m.ArcBy3={};m.ArcBy3.kind="C";m.ArcBy3.signature=["P","P","P"];m.ArcBy3.updatePosition=function(a){m.CircleBy3.updatePosition(a);a.startPoint=u.csnames[a.args[0]].homog;a.viaPoint=u.csnames[a.args[1]].homog;a.endPoint=u.csnames[a.args[2]].homog};m.ArcBy3.initialize=function(a){a.startPoint=u.csnames[a.args[0]].homog;a.viaPoint=u.csnames[a.args[1]].homog;a.endPoint=u.csnames[a.args[2]].homog;
-a.isArc=!0};m.PolarOfPoint={};m.PolarOfPoint.kind="L";m.PolarOfPoint.signature=["P","C"];m.PolarOfPoint.updatePosition=function(a){var b=w.mult(u.csnames[a.args[1]].matrix,u.csnames[a.args[0]].homog),b=g.normalizeMax(b);a.homog=w.withUsage(b,"Line")};m.PolarOfLine={};m.PolarOfLine.kind="P";m.PolarOfLine.signature=["L","C"];m.PolarOfLine.updatePosition=function(a){var b=u.csnames[a.args[0]],c=g.adjoint3(u.csnames[a.args[1]].matrix),b=w.mult(c,b.homog),b=g.normalizeMax(b);a.homog=w.withUsage(b,"Point")};
-m.AngleBisector={};m.AngleBisector.kind="Ls";m.AngleBisector.signature=["L","L","P"];m.AngleBisector.updatePosition=function(a){var b=u.csnames[a.args[0]].homog,c=u.csnames[a.args[1]].homog,d=u.csnames[a.args[2]].homog,e=g.add,f=g.sub,k=g.abs,l=g.cross,m=g.scalmult,n=g.normalizeMax,p=g._helper.isAlmostZero,q=g.linfty,t=m(k(l(l(q,c),q)),b),b=m(k(l(l(q,b),q)),c),f=f(t,b),e=e(t,b);p(f)&&(f=l(l(l(q,e),q),d));p(e)&&(e=l(l(l(q,f),q),d));a.results=Na(n(f),n(e))};m.AngleBisector.stateSize=Na.stateSize;m._helper.IntersectLC=
-function(a,b){var c=l,d=g.crossOperator(a),e=g.transpose(d),e=w.mult(e,w.mult(b,d)),f=g.maxIndex(a,l.abs2),k,m,n,p;0===f?(f=e.value[1].value[1],k=e.value[1].value[2],m=e.value[2].value[1],n=e.value[2].value[2],p=a.value[0]):1===f?(f=e.value[0].value[0],k=e.value[0].value[2],m=e.value[2].value[0],n=e.value[2].value[2],p=a.value[1]):(f=e.value[0].value[0],k=e.value[0].value[1],m=e.value[1].value[0],n=e.value[1].value[1],p=a.value[2]);c=c.div(c.sqrt(c.sub(c.mult(k,m),c.mult(f,n))),p);c=g.add(e,g.scalmult(c,
-d));f=g.maxIndex(c,g.abs2);d=c.value[f];d=g.normalizeMax(d);d=w.withUsage(d,"Point");c=g.transpose(c);f=g.maxIndex(c,g.abs2);c=c.value[f];c=g.normalizeMax(c);c=w.withUsage(c,"Point");return[d,c]};m.IntersectLC={};m.IntersectLC.kind="Ps";m.IntersectLC.signature=["L","C"];m.IntersectLC.updatePosition=function(a){var b=m._helper.IntersectLC(u.csnames[a.args[0]].homog,u.csnames[a.args[1]].matrix);a.results=Na(b[0],b[1])};m.IntersectLC.stateSize=Na.stateSize;m.OtherIntersectionCL={};m.OtherIntersectionCL.kind=
-"P";m.OtherIntersectionCL.signature=["C","L","P"];m.OtherIntersectionCL.updatePosition=function(a){var b=u.csnames[a.args[2]].homog,c=m._helper.IntersectLC(u.csnames[a.args[1]].homog,u.csnames[a.args[0]].matrix),d=c[0],c=c[1],e=g.projectiveDistMinScal(d,b),b=g.projectiveDistMinScal(c,b);a.homog=e<b?c:d;a.homog=g.normalizeMax(a.homog);a.homog=w.withUsage(a.homog,"Point")};m.IntersectCirCir={};m.IntersectCirCir.kind="Ps";m.IntersectCirCir.signature=["C","C"];m.IntersectCirCir.updatePosition=function(a){var b=
-u.csnames[a.args[0]].matrix,c=u.csnames[a.args[1]].matrix,d=g.scalmult(c.value[0].value[0],b.value[2]),c=g.scalmult(b.value[0].value[0],c.value[2]),d=g.sub(d,c),d=g.turnIntoCSList([d.value[0],d.value[1],l.realmult(.5,d.value[2])]),d=g.normalizeMax(d),b=m._helper.IntersectLC(d,b);a.results=Na(b[0],b[1])};m.IntersectCirCir.stateSize=Na.stateSize;m.OtherIntersectionCC={};m.OtherIntersectionCC.kind="P";m.OtherIntersectionCC.signature=["C","C","P"];m.OtherIntersectionCC.updatePosition=function(a){var b=
-u.csnames[a.args[0]].matrix,c=u.csnames[a.args[1]].matrix,d=u.csnames[a.args[2]].homog,e=g.scalmult(c.value[0].value[0],b.value[2]),c=g.scalmult(b.value[0].value[0],c.value[2]),e=g.sub(e,c),e=g.turnIntoCSList([e.value[0],e.value[1],l.realmult(.5,e.value[2])]),e=g.normalizeMax(e),e=m._helper.IntersectLC(e,b),b=e[0],e=e[1],c=g.projectiveDistMinScal(b,d),d=g.projectiveDistMinScal(e,d);a.homog=c<d?e:b;a.homog=g.normalizeMax(a.homog);a.homog=w.withUsage(a.homog,"Point")};m._helper.IntersectConicConic=
-function(a,b){var c=a.value[0],d=a.value[1],e=a.value[2],f=b.value[0],k=b.value[1],n=b.value[2],p=g.det3(c,d,e),q=l.add(l.add(g.det3(c,d,n),g.det3(c,k,e)),g.det3(f,d,e)),c=l.add(l.add(g.det3(c,k,n),g.det3(f,d,n)),g.det3(f,k,e)),f=g.det3(f,k,n),n=l.abs2(p).value.real,k=l.abs2(f).value.real;n<k&&(n=a,a=b,b=n,n=f,f=p,p=n,n=c,c=q,q=n,n=k);1E-24>n?(p=a,c=b):(q=l.solveCubic(p,q,c,f),c=l.abs2(l.sub(q[0],q[1])).value.real,f=l.abs2(l.sub(q[0],q[2])).value.real,k=l.abs2(l.sub(q[1],q[2])).value.real,c>f?(p=
-q[1],q=c>k?q[0]:q[2]):(p=q[2],q=f>k?q[0]:q[1]),p=g.add(g.scalmult(p,a),b),c=g.add(g.scalmult(q,a),b));q=m._helper.splitDegenConic(p);p=q[0];q=q[1];c=m._helper.splitDegenConic(c);k=c[0];f=c[1];c=g.cross(p,k);k=g.cross(q,k);p=g.cross(p,f);q=g.cross(q,f);c=g.normalizeMax(c);k=g.normalizeMax(k);p=g.normalizeMax(p);q=g.normalizeMax(q);c=w.withUsage(c,"Point");k=w.withUsage(k,"Point");p=w.withUsage(p,"Point");q=w.withUsage(q,"Point");return[c,k,p,q]};m.IntersectConicConic={};m.IntersectConicConic.kind=
-"Ps";m.IntersectConicConic.signature=["C","C"];m.IntersectConicConic.updatePosition=function(a){var b=m._helper.IntersectConicConic(u.csnames[a.args[0]].matrix,u.csnames[a.args[1]].matrix),b=xc(b[0],b[1],b[2],b[3]);a.results=b};m.IntersectConicConic.stateSize=xc.stateSize;m.SelectP={};m.SelectP.kind="P";m.SelectP.signature=["Ps"];m.SelectP.initialize=function(a){if(void 0!==a.index)return a.index-1;var b=u.csnames[a.args[0]].results.value;a=m._helper.initializePoint(a);for(var c=g.projectiveDistMinScal(a,
-b[0]),d=0,e=1;e<b.length;++e){var f=g.projectiveDistMinScal(a,b[e]);f<c&&(c=f,d=e)}return d};m.SelectP.updatePosition=function(a){a.homog=u.csnames[a.args[0]].results.value[a.param]};m.SelectL={};m.SelectL.kind="L";m.SelectL.signature=["Ls"];m.SelectL.initialize=function(a){if(void 0!==a.index)return a.index-1;var b=u.csnames[a.args[0]].results.value;a=m._helper.initializeLine(a);for(var c=g.projectiveDistMinScal(a,b[0]),d=0,e=1;e<b.length;++e){var f=g.projectiveDistMinScal(a,b[e]);f<c&&(c=f,d=e)}return d};
-m.SelectL.updatePosition=function(a){a.homog=u.csnames[a.args[0]].results.value[a.param];a.homog=w.withUsage(a.homog,"Line")};m._helper.moebiusStep=function(a,b,c){var d=l.add,e=l.sub,f=l.mult,g=a.value[0],k=a.value[1];a=a.value[2];var m=b.value[0],n=b.value[1];b=b.value[2];var p=c.value[0],q=c.value[1],t=c.value[2];c=e(f(b,p),f(m,t));var u=e(f(b,q),f(n,t)),p=e(f(g,t),f(a,p)),q=e(f(k,t),f(a,q));return[e(f(g,c),f(k,u)),d(f(k,c),f(g,u)),f(a,c),f(a,u),e(f(m,p),f(n,q)),d(f(n,p),f(m,q)),f(b,p),f(b,q)]};
-m.TrMoebius={};m.TrMoebius.kind="Mt";m.TrMoebius.signature="PPPPPP".split("");m.TrMoebius.updatePosition=function(a){var b=l.neg,c=m._helper.moebiusStep(u.csnames[a.args[0]].homog,u.csnames[a.args[2]].homog,u.csnames[a.args[4]].homog),d=m._helper.moebiusStep(u.csnames[a.args[1]].homog,u.csnames[a.args[3]].homog,u.csnames[a.args[5]].homog),d=g.normalizeMax(g.matrix([[d[0],b(d[1]),d[4],b(d[5])],[d[1],d[0],d[5],d[4]],[d[2],b(d[3]),d[6],b(d[7])],[d[3],d[2],d[7],d[6]]])),b=g.normalizeMax(g.matrix([[c[6],
-b(c[4])],[c[7],b(c[5])],[b(c[2]),c[0]],[b(c[3]),c[1]]])),b=g.normalizeMax(g.productMM(d,b));a.moebius={anti:!1,ar:b.value[0].value[0],ai:b.value[1].value[0],br:b.value[0].value[1],bi:b.value[1].value[1],cr:b.value[2].value[0],ci:b.value[3].value[0],dr:b.value[2].value[1],di:b.value[3].value[1]};m._helper.moebiusPair(a)};m._helper.moebiusPair=function(a){var b=a.moebius,c=l.neg,d=b.anti?c:w.identity;a.mat1=g.normalizeMax(g.matrix([[c(b.cr),d(b.ci),c(b.dr)],[b.ci,d(b.cr),b.di],[b.ar,c(d(b.ai)),b.br]]));
-a.mat2=g.normalizeMax(g.matrix([[c(b.ci),c(d(b.cr)),c(b.di)],[c(b.cr),d(b.ci),c(b.dr)],[b.ai,d(b.ar),b.bi]]))};m.TrInverseMoebius={};m.TrInverseMoebius.kind="Mt";m.TrInverseMoebius.signature=["Mt"];m.TrInverseMoebius.updatePosition=function(a){var b=u.csnames[a.args[0]].moebius,c=l.neg,d=b.anti?c:w.identity;a.moebius={anti:b.anti,ar:b.dr,ai:d(b.di),br:c(b.br),bi:c(d(b.bi)),cr:c(b.cr),ci:c(d(b.ci)),dr:b.ar,di:d(b.ai)};m._helper.moebiusPair(a)};m.TrMoebiusP={};m.TrMoebiusP.kind="P";m.TrMoebiusP.signature=
-["Mt","P"];m.TrMoebiusP.updatePosition=function(a){var b=u.csnames[a.args[0]],c=u.csnames[a.args[1]].homog,d=g.productMV(b.mat1,c),b=g.productMV(b.mat2,c);a.homog=g.normalizeMax(g.cross(d,b));a.homog=w.withUsage(a.homog,"Point")};m._helper.TrMoebiusP=function(a,b){var c=g.productMV(b.mat1,a),d=g.productMV(b.mat2,a);return g.normalizeMax(g.cross(c,d))};m.TrMoebiusL={};m.TrMoebiusL.kind="C";m.TrMoebiusL.signature=["Mt","L"];m.TrMoebiusL.updatePosition=function(a){var b=u.csnames[a.args[0]],c=u.csnames[a.args[1]].homog,
-d=function(){var a=g.realVector([Math.random()-.5,Math.random()-.5,Math.random()-.5]);return g.normalizeMax(a)},e=g.cross(d(),c),f=g.cross(d(),c),c=g.cross(d(),c),e=m._helper.TrMoebiusP(e,b),f=m._helper.TrMoebiusP(f,b),b=m._helper.TrMoebiusP(c,b);a.matrix=g.normalizeMax(m._helper.ConicBy5(null,e,f,b,g.ii,g.jj));a.matrix=w.withUsage(a.matrix,"Circle")};m.TrMoebiusS={};m.TrMoebiusS.kind="C";m.TrMoebiusS.signature=["Mt","S"];m.TrMoebiusS.updatePosition=function(a){var b=u.csnames[a.args[0]],c=u.csnames[a.args[1]],
-d=c.startpos,c=c.endpos,e=g.add(d,c),d=m._helper.TrMoebiusP(d,b),e=m._helper.TrMoebiusP(e,b),b=m._helper.TrMoebiusP(c,b);a.startPoint=d;a.viaPoint=e;a.endPoint=b;a.isArc=!0;a.matrix=g.normalizeMax(m._helper.ConicBy5(null,d,e,b,g.ii,g.jj));a.matrix=w.withUsage(a.matrix,"Circle")};m.TrMoebiusC={};m.TrMoebiusC.kind="C";m.TrMoebiusC.signature=["Mt","C"];m.TrMoebiusC.signatureConstraints=function(a){return"Circle"===u.csnames[a.args[1]].matrix.usage};m.TrMoebiusC.updatePosition=function(a){var b=u.csnames[a.args[0]],
-c=u.csnames[a.args[1]].matrix,d=function(){var a=g.realVector([Math.random()-.5,Math.random()-.5,Math.random()-.5]);return g.normalizeMax(a)},e=m._helper.IntersectLC(d(),c),d=m._helper.IntersectLC(d(),c),c=e[1],d=d[1],e=m._helper.TrMoebiusP(e[0],b),c=m._helper.TrMoebiusP(c,b),b=m._helper.TrMoebiusP(d,b);a.matrix=g.normalizeMax(m._helper.ConicBy5(null,e,c,b,g.ii,g.jj));a.matrix=w.withUsage(a.matrix,"Circle")};m.TrMoebiusArc={};m.TrMoebiusArc.kind="C";m.TrMoebiusArc.signature=["Mt","C"];m.TrMoebiusArc.signatureConstraints=
-function(a){return u.csnames[a.args[1]].isArc};m.TrMoebiusArc.updatePosition=function(a){var b=u.csnames[a.args[0]],c=u.csnames[a.args[1]],d=c.viaPoint,e=c.endPoint,c=m._helper.TrMoebiusP(c.startPoint,b),d=m._helper.TrMoebiusP(d,b),b=m._helper.TrMoebiusP(e,b);a.startPoint=c;a.viaPoint=d;a.endPoint=b;a.isArc=!0;a.matrix=g.normalizeMax(m._helper.ConicBy5(null,c,d,b,g.ii,g.jj));a.matrix=w.withUsage(a.matrix,"Circle")};m._helper.trBuildMatrix=function(a,b){var c=b(0),d=b(1),e=g.productMM(d,g.adjoint3(c));
-a.matrix=g.normalizeMax(e);e=g.transpose(g.productMM(c,g.adjoint3(d)));a.dualMatrix=g.normalizeMax(e)};m.TrProjection={};m.TrProjection.kind="Tr";m.TrProjection.signature="PPPPPPPP".split("");m.TrProjection.updatePosition=function(a){m._helper.trBuildMatrix(a,function(b){return D.basismap(u.csnames[a.args[0+b]].homog,u.csnames[a.args[2+b]].homog,u.csnames[a.args[4+b]].homog,u.csnames[a.args[6+b]].homog)})};m.TrAffine={};m.TrAffine.kind="Tr";m.TrAffine.signature="PPPPPP".split("");m.TrAffine.updatePosition=
-function(a){var b=l.mult,c=g.scalmult,d=g.turnIntoCSList,e=g.transpose,f=g.normalizeMax,k=g.productMM,m=g.adjoint3,n=d([u.csnames[a.args[0]].homog,u.csnames[a.args[2]].homog,u.csnames[a.args[4]].homog]),p=d([u.csnames[a.args[1]].homog,u.csnames[a.args[3]].homog,u.csnames[a.args[5]].homog]),q=e(n),e=e(p),t=q.value[2].value,v=e.value[2].value,w=[b(t[0],v[2]),b(t[1],v[0]),b(t[2],v[1])],q=m(q).value;a.matrix=f(k(e,d([c(b(w[0],v[1]),q[0]),c(b(w[1],v[2]),q[1]),c(b(w[2],v[0]),q[2])])));q=n.value;a.dualMatrix=
-f(k(m(p),d([c(b(t[2],w[1]),q[0]),c(b(t[0],w[2]),q[1]),c(b(t[1],w[0]),q[2])])))};m.TrSimilarity={};m.TrSimilarity.kind="Tr";m.TrSimilarity.signature=["P","P","P","P"];m.TrSimilarity.updatePosition=function(a){m._helper.trBuildMatrix(a,function(b){return D.basismap(u.csnames[a.args[0+b]].homog,u.csnames[a.args[2+b]].homog,g.ii,g.jj)})};m.TrTranslation={};m.TrTranslation.kind="Tr";m.TrTranslation.signature=["P","P"];m.TrTranslation.updatePosition=function(a){var b=u.csnames[a.args[0]].homog,c=u.csnames[a.args[1]].homog,
-d=g.cross(b,c).value,b=l.mult(b.value[2],c.value[2]),c=g.turnIntoCSList,e=l.neg,f=l.zero,d=c([c([b,f,d[1]]),c([f,b,e(d[0])]),c([f,f,b])]),d=g.normalizeMax(d);a.matrix=d;b=e(d.value[0].value[0]);d=c([c([b,f,f]),c([f,b,f]),c([d.value[0].value[2],d.value[1].value[2],b])]);a.dualMatrix=d};m.TrReflectionP={};m.TrReflectionP.kind="Tr";m.TrReflectionP.signature=["P"];m.TrReflectionP.updatePosition=function(a){var b=u.csnames[a.args[0]].homog.value,c=l.realmult(-.5,b[2]),d=l.zero,b=g.turnIntoCSList([g.turnIntoCSList([c,
-d,b[0]]),g.turnIntoCSList([d,c,b[1]]),g.turnIntoCSList([d,d,l.neg(c)])]),b=g.normalizeMax(b);a.matrix=b;a.dualMatrix=g.transpose(b)};m.TrReflectionL={};m.TrReflectionL.kind="Tr";m.TrReflectionL.signature=["L"];m.TrReflectionL.updatePosition=function(a){var b=l.mult,c=l.realmult,d=l.zero,e=u.csnames[a.args[0]].homog.value,f=e[0],k=e[1],e=e[2],m=b(f,f),n=b(k,k),p=c(-.5,l.sub(m,n)),q=b(f,k),b=g.turnIntoCSList([g.turnIntoCSList([l.neg(p),q,b(f,e)]),g.turnIntoCSList([q,p,b(k,e)]),g.turnIntoCSList([d,d,
-c(-.5,l.add(m,n))])]),b=g.normalizeMax(b);a.matrix=b;a.dualMatrix=g.transpose(b)};m.TrReflectionS={};m.TrReflectionS.kind="Tr";m.TrReflectionS.signature=["S"];m.TrReflectionS.updatePosition=m.TrReflectionL.updatePosition;m.TrReflectionC={};m.TrReflectionC.kind="Mt";m.TrReflectionC.signature=["C"];m.TrReflectionC.signatureConstraints=function(a){return"Circle"===u.csnames[a.args[0]].matrix.usage};m.TrReflectionC.updatePosition=function(a){var b=u.csnames[a.args[0]].matrix,c=b.value[0].value[2],d=b.value[1].value[2],
-e=l.neg;a.moebius={anti:!0,ar:c,ai:d,br:b.value[2].value[2],bi:l.zero,cr:e(b.value[0].value[0]),ci:l.zero,dr:e(c),di:d};m._helper.moebiusPair(a)};m.TrInverse={};m.TrInverse.kind="Tr";m.TrInverse.signature=["Tr"];m.TrInverse.updatePosition=function(a){var b=u.csnames[a.args[0]];a.dualMatrix=g.transpose(b.matrix);a.matrix=g.transpose(b.dualMatrix)};m.TransformC={};m.TransformC.kind="C";m.TransformC.signature=["Tr","C"];m.TransformC.updatePosition=function(a){var b=u.csnames[a.args[0]].dualMatrix,b=
-g.productMM(g.productMM(b,u.csnames[a.args[1]].matrix),g.transpose(b)),b=g.normalizeMax(b);a.matrix=w.withUsage(b,"Conic")};m.TransformArc={};m.TransformArc.kind="C";m.TransformArc.signature=["Tr","C"];m.TransformArc.signatureConstraints=function(a){return u.csnames[a.args[0]].isArc};m.TransformArc.updatePosition=function(a){var b=u.csnames[a.args[0]].matrix,c=u.csnames[a.args[1]],d=c.viaPoint,e=c.endPoint,c=g.normalizeMax(g.productMV(b,c.startPoint)),d=g.normalizeMax(g.productMV(b,d)),b=g.normalizeMax(g.productMV(b,
-e));a.startPoint=c;a.viaPoint=d;a.endPoint=b;a.isArc=!0;a.matrix=g.normalizeMax(m._helper.ConicBy5(null,c,d,b,g.ii,g.jj));a.matrix=w.withUsage(a.matrix,"Circle")};m.TransformP={};m.TransformP.kind="P";m.TransformP.signature=["Tr","P"];m.TransformP.updatePosition=function(a){a.homog=g.normalizeMax(g.productMV(u.csnames[a.args[0]].matrix,u.csnames[a.args[1]].homog));a.homog=w.withUsage(a.homog,"Point")};m.TransformL={};m.TransformL.kind="L";m.TransformL.signature=["Tr","L"];m.TransformL.updatePosition=
-function(a){a.homog=g.normalizeMax(g.productMV(u.csnames[a.args[0]].dualMatrix,u.csnames[a.args[1]].homog));a.homog=w.withUsage(a.homog,"Line")};m.TransformS={};m.TransformS.kind="S";m.TransformS.signature=["Tr","S"];m.TransformS.updatePosition=function(a){var b=u.csnames[a.args[0]],c=u.csnames[a.args[1]];m.Segment.setSegmentPos(a,g.productMV(b.dualMatrix,c.homog),g.productMV(b.matrix,c.startpos),g.productMV(b.matrix,c.endpos))};m.TransformPolygon={};m.TransformPolygon.kind="Poly";m.TransformPolygon.signature=
-["Tr","Poly"];m.TransformPolygon.updatePosition=function(a){var b=u.csnames[a.args[0]].matrix;a.vertices=g.turnIntoCSList(u.csnames[a.args[1]].vertices.value.map(function(a){a=g.normalizeMax(g.productMV(b,a));return a=w.withUsage(a,"Point")}))};m._helper.pointReflection=function(a,b){return g.normalizeMax(g.sub(g.scalmult(l.realmult(2,b.value[2]),a),g.scalmult(a.value[2],b)))};m._helper.conicOtherIntersection=function(a,b,c){var d=g.productMV(a,c);a=g.scalproduct(c,d);d=g.scalproduct(b,d);d=l.realmult(-2,
-d);b=g.scalmult(a,b);c=g.scalmult(d,c);c=g.add(b,c);return c=g.normalizeMax(c)};m.Dist={};m.Dist.kind="V";m.Dist.signature=["P","P"];m.Dist.updatePosition=function(a){var b=u.csnames[a.args[1]].homog;a.value=g.abs(g.sub(g.normalizeZ(u.csnames[a.args[0]].homog),g.normalizeZ(b)))};m.Angle={};m.Angle.kind="V";m.Angle.signature=["L","L","P"];m.Angle.initialize=function(a){void 0===a.angle&&(a.angle=.5*Math.PI);Va(l._helper.input(a.angle))};m.Angle.updatePosition=function(a){var b=u.csnames[a.args[1]].homog,
-c=u.csnames[a.args[2]].homog,d=g.cross(u.csnames[a.args[0]].homog,g.linfty),b=g.cross(b,g.linfty),c=g.crossratio3(d,b,g.ii,g.jj,c),c=l.mult(l.complex(0,.5),l.log(c)),d=(wb().value.real-c.value.real)/Math.PI,b=Math.round(d);!fb&&.01<Math.abs(b-d)&&Vb();c=l.complex(b*Math.PI+c.value.real,c.value.imag);Va(c);a.value=w.withUsage(c,"Angle")};m.Angle.stateSize=2;m.Text={};m.Text.kind="Text";m.Text.signature="**";m.Text.isMovable=!0;m.Text.updatePosition=Pa;m.Text.initialize=function(a){a.text=String(a.text);
-a.pos&&(a.homog=m._helper.initializePoint(a));a.dock&&(a.dock.offset=a.dock.offset&&2===a.dock.offset.length?g.realVector([+a.dock.offset[0],+a.dock.offset[1]]):g.realVector([0,0]))};m.Text.getParamForInput=function(a,b,c){return m.Free.getParamForInput(a,b,c)};m.Text.getParamFromState=function(a){return a.homog};m.Text.putParamToState=function(a,b){a.homog=b};m.Calculation={};m.Calculation.kind="Text";m.Calculation.signature="**";m.Calculation.isMovable=!0;m.Calculation.updatePosition=Pa;m.Calculation.initialize=
-function(a){m.Text.initialize(a);a.calculation=Ra(a.text)};m.Calculation.getText=function(a){return ba(A(a.calculation))};m.Calculation.getParamForInput=m.Text.getParamForInput;m.Calculation.getParamFromState=m.Text.getParamFromState;m.Calculation.putParamToState=m.Text.putParamToState;m.Equation={};m.Equation.kind="Text";m.Equation.isMovable=!0;m.Equation.signature="**";m.Equation.updatePosition=Pa;m.Equation.initialize=function(a){m.Text.initialize(a);a.calculation=Ra(a.text)};m.Equation.getText=
-function(a){return a.text+" = "+ba(A(a.calculation))};m.Equation.getParamForInput=m.Text.getParamForInput;m.Equation.getParamFromState=m.Text.getParamFromState;m.Equation.putParamToState=m.Text.putParamToState;m.Evaluate={};m.Evaluate.kind="Text";m.Evaluate.isMovable=!0;m.Evaluate.signature="**";m.Evaluate.updatePosition=Pa;m.Evaluate.initialize=function(a){m.Text.initialize(a);a.calculation=Ra(a.text)};m.Evaluate.getText=function(a){A(a.calculation);return a.text};m.Evaluate.getParamForInput=m.Text.getParamForInput;
-m.Evaluate.getParamFromState=m.Text.getParamFromState;m.Evaluate.putParamToState=m.Text.putParamToState;m.Plot={};m.Plot.kind="Text";m.Plot.isMovable=!0;m.Plot.signature="**";m.Plot.updatePosition=Pa;m.Plot.initialize=function(a){m.Text.initialize(a);a.calculation=Ra("plot(("+a.text+"))")};m.Plot.getText=function(a){A(a.calculation);return a.text};m.Plot.getParamForInput=m.Text.getParamForInput;m.Plot.getParamFromState=m.Text.getParamFromState;m.Plot.putParamToState=m.Text.putParamToState;m.Button=
-{};m.Button.kind="Text";m.Button.signature="**";m.Button.isMovable=!0;m.Button.updatePosition=Pa;m.Button.initialize=function(a){var b=document.createElement("button");yc(a,"click",b)};m.Button.getParamForInput=m.Text.getParamForInput;m.Button.getParamFromState=m.Text.getParamFromState;m.Button.putParamToState=m.Text.putParamToState;m.Button.set_fillcolor=function(a,b){g._helper.isNumberVecN(b,3)&&(a.fillcolor=b.value.map(function(a){return a.value.real}),a.html.style.backgroundColor=x.makeColor(a.fillcolor,
-a.fillalpha))};m.ToggleButton={};m.ToggleButton.kind="Text";m.ToggleButton.signature="**";m.ToggleButton.isMovable=!0;m.ToggleButton.updatePosition=Pa;m.ToggleButton.initialize=function(a){var b;b=void 0;void 0===b&&(b="CindyJSid");b+=++Oa;var c=document.createElement("input"),d=document.createElement("label");c.setAttribute("id",b);d.setAttribute("for",b);c.setAttribute("type","checkbox");a.pressed&&(c.checked=!0);a.checkbox=c;yc(a,"change",c,d)};m.ToggleButton.getParamForInput=m.Text.getParamForInput;
-m.ToggleButton.getParamFromState=m.Text.getParamFromState;m.ToggleButton.putParamToState=m.Text.putParamToState;m.ToggleButton.set_fillcolor=m.Button.set_fillcolor;m.EditableText={};m.EditableText.kind="Text";m.EditableText.isMovable=!0;m.EditableText.signature=[];m.EditableText.updatePosition=Pa;m.EditableText.initialize=function(a){var b=document.createElement("input");b.setAttribute("type","text");b.className="CindyJS-editabletext";Fa(a.minwidth)&&(b.style.width=a.minwidth-3+"px");"string"===typeof a.text&&
-(b.value=a.text);b.addEventListener("keydown",function(a){13===a.keyCode&&b.blur()});yc(a,"change",b)};m.EditableText.getText=function(a){return!1};m.EditableText.getParamForInput=m.Text.getParamForInput;m.EditableText.getParamFromState=m.Text.getParamFromState;m.EditableText.putParamToState=m.Text.putParamToState;m.EditableText.set_fillcolor=m.Button.set_fillcolor;m.EditableText.get_currenttext=function(a){return w.string(String(a.html.value))};m.EditableText.set_currenttext=function(a,b){a.html.value=
-ba(b)};m.EditableText.get_text=m.EditableText.get_currenttext;m.EditableText.set_text=m.EditableText.set_currenttext;m._helper.initializePoint=function(a){var b=0,c=0,d=0;if(a.pos){if("list"===a.pos.ctype&&g.isNumberVector(a.pos))return a.pos;2===a.pos.length&&(b=a.pos[0],c=a.pos[1],d=1);3===a.pos.length&&(b=a.pos[0],c=a.pos[1],d=a.pos[2])}a=g.turnIntoCSList([l._helper.input(b),l._helper.input(c),l._helper.input(d)]);return a=g.normalizeMax(a)};m._helper.initializeLine=function(a){var b=0,c=0,d=0;
-if(a.pos){if("list"===a.pos.ctype&&g.isNumberVector(a.pos))return a.pos;3===a.pos.length&&(b=a.pos[0],c=a.pos[1],d=a.pos[2])}a=g.turnIntoCSList([l._helper.input(b),l._helper.input(c),l._helper.input(d)]);return a=g.normalizeMax(a)};m.Poly={};m.Poly.kind="Poly";m.Poly.signature="P*";m.Poly.updatePosition=function(a){a.vertices=g.turnIntoCSList(a.args.map(function(a){return u.csnames[a].homog}))};var tc={CircleByRadius:"CircleMr",IntersectionCircleCircle:"IntersectCirCir",IntersectionConicConic:"IntersectConicConic",
-FreePoint:"Free",Orthogonal:"Perp",Parallel:"Para",Pole:"PolarOfLine",Polar:"PolarOfPoint",Arc:"ArcBy3",EuclideanMid:"Mid",AngularBisector:"AngleBisector",TransformConic:"TransformC",TransformSegment:"TransformS",TrMoebiusSegment:"TrMoebiusS",ReflectCC:"TrMoebiusC",ReflectCL:"TrMoebiusL",ReflectCP:"TrMoebiusP",ReflectCArc:"TrMoebiusArc",ReflectCS:"TrMoebiusS",TrMoebiusCircle:"TrMoebiusC"},rd={CircleMFixedr:function(a){a.pinned=!0;a.type="CircleMr";return[a]},CircleByFixedRadius:function(a){a.pinned=
-!0;a.type="CircleMr";return[a]},IntersectionConicLine:function(a){a.args=[a.args[1],a.args[0]];a.type="IntersectLC";return[a]},angleBisector:function(a){var b={name:a.name+"_Intersection",type:"Meet",args:a.args,visible:!1};a.type="AngleBisector";a.args=[a.args[0],a.args[1],b.name];return[b,a]},Transform:function(a){var b=u.csnames[a.args[1]],b={Tr:"Transform",Mt:"TrMoebius"}[u.csnames[a.args[0]].kind]+(b.isArc?"Arc":b.kind);if(m.hasOwnProperty(b))return a.type=b,[a];console.log(b+" not implemented yet");
-return[]},TrReflection:function(a){var b="TrReflection"+u.csnames[a.args[0]].kind;if(m.hasOwnProperty(b))return a.type=b,[a];console.log(b+" not implemented yet");return[]}},le="align alpha angle args arrow arrowposition arrowshape arrowsides arrowsize clip color dashtype drawtrace fillalpha fillcolor filled labeled labelpos name overhang pinned printname radius size text text_fontfamily textbold textitalics textsize tracedim tracelength traceskip tracing type visible".split(" ");oa.saveState=function(){return{geometry:me()}};
-var ra={},Jd,Ib,Kd,Ld;Jd=[[],[.2],[.075,.225],[44/45,-56/15,32/9],[19372/6561,-25360/2187,64448/6561,-212/729],[9017/3168,-355/33,46732/5247,49/176,-5103/18656],[35/384,0,500/1113,125/192,-2187/6784,11/84]];Ib=[0,.2,.3,.8,8/9,1,1];Kd=[35/384,0,500/1113,125/192,-2187/6784,11/84,0];Ld=[5179/57600,0,7571/16695,.6140625,-92097/339200,187/2100,.025];var Ba,ga=[],zc=[],ic=!1;ra.tick=function(a){a/=Mb;for(var b=0;b<Mb;b++)ra.tick1(a),Cb+=a,A(S.simulationstep)};ra.tick1=function(a){for(var b=a,c=0;0<a&&c<
-.999*a||0>a&&c>.999*a;)b=ra.oneRKStep(b),c+=b,b=Math.min(2*b,a-c),b=Math.max(b,1E-16),ra.restorePosition(),ra.doCollisions(),ra.calculateForces(),ra.moveToFinalPos();return!0};ra.restorePosition=function(){Ba.forEach(function(a){O[a.type].restorePos(a,9)})};ra.doCollisions=function(){Ba.forEach(function(a){O[a.type].doCollisions(a)})};ra.calculateForces=function(){Ba.forEach(function(a){O[a.type].calculateForces(a)})};ra.moveToFinalPos=function(){Ba.forEach(function(a){O[a.type].move(a)})};ra.oneRKStep=
-function(a){for(var b=function(a){Ba.forEach(function(b){O[b.type].initRK(b,a);O[b.type].storePosition(b)})},c=function(a){Ba.forEach(function(b){O[b.type].setToTimestep(b,Ib[a])})},d=function(a){Ba.forEach(function(b){O[b.type].proceedMotion(b,Ib[a],a,Jd[a])})},e=function(){Ba.forEach(function(a){O[a.type].resetForces(a)})},f=function(a){Ba.forEach(function(b){O[b.type].calculateDelta(b,a)})},g=function(b){var c=0;Ba.forEach(function(a){O[a.type].proceedMotion(a,Ib[6],7,Kd);O[a.type].savePos(a,8);
-O[a.type].proceedMotion(a,Ib[6],7,Ld);O[a.type].savePos(a,9);c+=O[a.type].sqDist(a,8,9)});return c=Math.sqrt(c)/a},k=function(a){Ba.forEach(function(a){O[a.type].recallPosition(a)})},l=!1;!l;){b(a);for(var m=0;7>m;m++)c(m),d(m),e(),ra.calculateForces(),f(m);g(a)>O.env.errorbound&&a>O.env.lowestdeltat?(a/=O.env.slowdownfactor,k()):l=!0}return a};var O={Mass:{reset:function(a,b){a.vel=[0,0,0];a.pos=[0,0,0,0];a.el=b;"undefined"===typeof a.mass&&(a.mass=1);"undefined"===typeof a.charge&&(a.charge=0);
-"undefined"===typeof a.friction&&(a.friction=0);a.lnfrict=0;"undefined"===typeof a.limitspeed&&(a.limitspeed=!1);"undefined"===typeof a.fixed&&(a.fixed=!1);"undefined"===typeof a.radius&&(a.radius=1);a.internalmove=!1;a.fx=0;a.fy=0;a.fz=0;a.vx=a.vx||0;a.vy=a.vy||0;a.vz=a.vz||0;a.mtype=0;a.env=O.env;a.deltat=0;a.mx=0;a.my=0;a.mz=0;a.mvx=0;a.mvy=0;a.mvz=0;a.dx=[0,0,0,0,0,0,0,0,0,0];a.dy=[0,0,0,0,0,0,0,0,0,0];a.dz=[0,0,0,0,0,0,0,0,0,0];a.dvx=[0,0,0,0,0,0,0,0,0,0];a.dvy=[0,0,0,0,0,0,0,0,0,0];a.dvz=[0,
-0,0,0,0,0,0,0,0,0];a.midx=0;a.midy=0;a.midz=0;a.lx=0;a.ly=0;a.lz=0},resetForces:function(a){a.fx=0;a.fy=0;a.fz=0},getBlock:!1,setToTimestep:function(a,b,c){},initRK:function(a,b){var c=D.extractPoint(a.el.homog);a.x=c.x;a.y=c.y;a.z=0;a.xo=a.x;a.yo=a.y;a.zo=a.z;a.vxo=a.vx;a.vyo=a.vy;a.vzo=a.vz;a.deltat=b;a.fx=0;a.fy=0;a.fz=0},setVelocity:function(a,b,c,d){d||(d=0);a.vx=b;a.vy=c;a.vz=d},move:function(a){a.pos=[a.x,a.y,1];a.internalmove=!0;fa&&X.down&&a.el===fa.mover||Ia(a.el,g.realVector(a.pos),"homog");
-a.el.sx=a.x;a.el.sy=a.y;a.internalmove=!1},proceedMotion:function(a,b,c,d){if(!a.fixed)for(a.x=a.mx,a.y=a.my,a.z=a.mz,a.vx=a.mvx,a.vy=a.mvy,a.vz=a.mvz,b=0;b<c;b++)a.x+=d[b]*a.dx[b]*a.deltat,a.y+=d[b]*a.dy[b]*a.deltat,a.z+=d[b]*a.dz[b]*a.deltat,a.vx+=d[b]*a.dvx[b]*a.deltat,a.vy+=d[b]*a.dvy[b]*a.deltat,a.vz+=d[b]*a.dvz[b]*a.deltat},calculateForces:function(a){var b=Math.sqrt(a.vx*a.vx+a.vy*a.vy+a.vz*a.vz);a.lnfrict=-Math.log((1-a.friction)*(1-a.env.friction)*(.1<b&&a.limitSpeed?.1/b:1));a.fx+=-a.vx*
-a.lnfrict*a.mass;a.fy+=-a.vy*a.lnfrict*a.mass;a.fz+=-a.vz*a.lnfrict*a.mass},calculateDelta:function(a,b){a.dx[b]=a.vx;a.dy[b]=a.vy;a.dz[b]=a.vz;a.dvx[b]=a.fx/a.mass;a.dvy[b]=a.fy/a.mass;a.dvz[b]=a.fz/a.mass},savePos:function(a,b){a.dx[b]=a.x;a.dy[b]=a.y;a.dz[b]=a.z;a.dvx[b]=a.vx;a.dvy[b]=a.vy;a.dvz[b]=a.vz},restorePos:function(a,b){a.fixed||(a.x=a.dx[b],a.y=a.dy[b],a.z=a.dz[b],a.vx=a.dvx[b],a.vy=a.dvy[b],a.vz=a.dvz[b])},sqDist:function(a,b,c){var d=(a.dx[b]-a.dx[c])*(a.dx[b]-a.dx[c]),d=d+(a.dy[b]-
-a.dy[c])*(a.dy[b]-a.dy[c]),d=d+(a.dz[b]-a.dz[c])*(a.dz[b]-a.dz[c]),d=d+(a.dvx[b]-a.dvx[c])*(a.dvx[b]-a.dvx[c]),d=d+(a.dvy[b]-a.dvy[c])*(a.dvy[b]-a.dvy[c]);return d+=(a.dvz[b]-a.dvz[c])*(a.dvz[b]-a.dvz[c])},kineticEnergy:function(a){return.5*a.mass*(a.vx*a.vx+a.vy*a.vy+a.vz*a.vz)},storePosition:function(a){a.mx=a.x;a.my=a.y;a.mz=a.z;a.mvx=a.vx;a.mvy=a.vy;a.mvz=a.vz},recallPosition:function(a){a.fixed||(a.x=a.mx,a.y=a.my,a.z=a.mz,a.vx=a.mvx,a.vy=a.mvy,a.vz=a.mvz)},doCollisions:function(a){}},Sun:{reset:function(a,
-b){a.vel=[0,0,0];a.pos=[0,0,0,0];a.el=b;"undefined"===typeof a.mass&&(a.mass=10);"undefined"===typeof a.friction&&(a.friction=0);a.charge=0;a.x=0;a.y=0;a.z=0},resetForces:function(a){},getBlock:!1,setToTimestep:function(a,b,c){},initRK:function(a,b){var c=D.extractPoint(a.el.homog);a.x=c.x;a.y=c.y;a.z=0},setVelocity:function(a,b,c,d){},move:function(a){},proceedMotion:function(a,b,c,d){},calculateDelta:function(a,b){},calculateForces:function(a){for(var b=a.x,c=a.y,d=a.z,e=0;e<ga.length;e++){var f=
-ga[e],g=f.behavior.x,k=f.behavior.y,l=f.behavior.z,m=Math.sqrt((b-g)*(b-g)+(c-k)*(c-k)+(d-l)*(d-l)),k=(c-k)*a.mass*f.behavior.mass/(m*m*m),l=(d-l)*a.mass*f.behavior.mass/(m*m*m);f.behavior.fx+=(b-g)*a.mass*f.behavior.mass/(m*m*m)*f.behavior.mass;f.behavior.fy+=k*f.behavior.mass;f.behavior.fz+=l*f.behavior.mass}},savePos:function(a,b){},restorePos:function(a,b){},sqDist:function(a,b,c){return 0},kineticEnergy:function(a){},storePosition:function(a){},recallPosition:function(a){},doCollisions:function(a){}},
-Velocity:{reset:function(a){var b=u.csnames[a.geo[1]];console.log(b);var c=D.extractPoint(b.homog);a=D.extractPoint(u.csnames[a.geo[2]].homog);b=b.behavior;O[b.type].setVelocity(b,a.x-c.x,a.y-c.y,0)},resetForces:function(a){},getBlock:!1,setToTimestep:function(a,b,c){},initRK:function(a,b){},setVelocity:function(a,b,c,d){},move:function(a){var b=u.csnames[a.geo[2]];if(!fa||!X.down||b!==fa.mover){var c=u.csnames[a.geo[1]];a=D.extractPoint(c.homog);c=c.behavior;a=g.realVector([a.x+c.vx,a.y+c.vy,1]);
-Ia(b,a,"homog")}},proceedMotion:function(a,b,c,d){},calculateForces:function(a){},calculateDelta:function(a,b){},savePos:function(a,b){},restorePos:function(a,b){},sqDist:function(a,b,c){return 0},kineticEnergy:function(a){},storePosition:function(a){},recallPosition:function(a){},doCollisions:function(a){}},Gravity:{reset:function(a,b){a.vel=[0,0,0];a.pos=[0,0,0,0];a.el=b;"undefined"===typeof a.strength&&(a.strength=1);a.namea=b.args[0];a.nameb=b.args[1];a.ma=u.csnames[a.namea];a.mb=u.csnames[a.nameb]},
-resetForces:function(a){},getBlock:!1,setToTimestep:function(a,b,c){},initRK:function(a,b){},setVelocity:function(a,b,c,d){},move:function(a){},proceedMotion:function(a,b,c,d){},calculateDelta:function(a,b){},calculateForces:function(a){var b=D.extractPoint(a.ma.homog),c=D.extractPoint(a.mb.homog),d=(c.x-b.x)*a.strength;a=(c.y-b.y)*a.strength;for(b=0;b<ga.length;b++)c=ga[b],c.behavior.fx+=d*c.behavior.mass,c.behavior.fy+=a*c.behavior.mass,c.behavior.fz+=0*c.behavior.mass},savePos:function(a,b){},
-restorePos:function(a,b){},sqDist:function(a,b,c){return 0},kineticEnergy:function(a){},storePosition:function(a){},recallPosition:function(a){},doCollisions:function(a){}},Spring:{reset:function(a,b){a.el=b;"undefined"===typeof a.strength&&(a.strength=1);"undefined"===typeof a.amplitude&&(a.amplitude=0);"undefined"===typeof a.phase&&(a.phase=0);"undefined"===typeof a.speed&&(a.speed=1);"undefined"===typeof a.l0&&(a.l0=0);"undefined"===typeof a.stype&&(a.stype=1);"undefined"===typeof a.readOnInit&&
-(a.readOnInit=!1);a.namea=b.args[0];a.nameb=b.args[1];a.ma=u.csnames[a.namea];a.mb=u.csnames[a.nameb];var c=D.extractPoint(a.ma.homog),d=D.extractPoint(a.mb.homog);a.l0=Math.sqrt((c.x-d.x)*(c.x-d.x)+(c.y-d.y)*(c.y-d.y));a.env=O.env},resetForces:function(a){},getBlock:!1,setToTimestep:function(a,b,c){},initRK:function(a,b){},setVelocity:function(a,b,c,d){},move:function(a){},proceedMotion:function(a,b,c,d){},calculateForces:function(a){var b,c,d,e;!a.ma.behavior||fa&&X.down&&a.ma===fa.mover?(c=D.extractPoint(a.ma.homog),
-b=c.x,d=c.y):(b=a.ma.behavior.x,d=a.ma.behavior.y);!a.mb.behavior||fa&&X.down&&a.mb===fa.mover?(e=D.extractPoint(a.mb.homog),c=e.x,e=e.y):(c=a.mb.behavior.x,e=a.mb.behavior.y);var f=Math.sqrt((b-c)*(b-c)+(d-e)*(d-e)),g=a.l0,k=a.stype;1===k&&(g=0);var l=0;if(2===k||3===k)l=a.ma.behavior.mass*a.mb.behavior.mass*a.strength;2===k&&(l=-l);var m,n;if(0===f||0!==k&&1!==k)if(a.ma.behavior&&a.mb.behavior&&0!==f){if(f*=f*f,2===k||3===k)m=(b-c)*l/f,n=(d-e)*l/f}else m=n=0;else m=-(b-c)*a.strength*(f-g)/f*a.env.springstrength,
-n=-(d-e)*a.strength*(f-g)/f*a.env.springstrength;a.ma.behavior&&(a.ma.behavior.fx+=m,a.ma.behavior.fy+=n);a.mb.behavior&&(a.mb.behavior.fx-=m,a.mb.behavior.fy-=n)},calculateDelta:function(a,b){},savePos:function(a,b){},restorePos:function(a,b){},sqDist:function(a,b,c){return 0},kineticEnergy:function(a){},storePosition:function(a){},recallPosition:function(a){},doCollisions:function(a){}},det:function(a,b,c,d,e,f){return c*f-e*d+e*b-a*f+a*d-c*b},Bouncer:{reset:function(a,b){a.el=b;"undefined"===typeof a.xdamp&&
-(a.xdamp=0);"undefined"===typeof a.ydamp&&(a.ydamp=0);"undefined"===typeof a.motorchanger&&(a.motorchanger=!0);a.namea=b.args[0];a.nameb=b.args[1];a.ma=u.csnames[a.namea];a.mb=u.csnames[a.nameb];var c=D.extractPoint(a.ma.homog),d=D.extractPoint(a.mb.homog);a.x1o=1.01*c.x-.01*d.x;a.y1o=1.01*c.y-.01*d.y;a.x2o=1.01*d.x-.01*c.x;a.y2o=1.01*d.y-.01*c.y;a.env=O.env},resetForces:function(a){},getBlock:!1,setToTimestep:function(a,b,c){},initRK:function(a,b){a.deltat=b},setVelocity:function(a,b,c,d){},move:function(a){},
-proceedMotion:function(a,b,c,d){},calculateForces:function(a){},calculateDelta:function(a,b){},savePos:function(a,b){},restorePos:function(a,b){},sqDist:function(a,b,c){return 0},kineticEnergy:function(a){},storePosition:function(a){},recallPosition:function(a){},doCollisions:function(a){for(var b=D.extractPoint(a.ma.homog),c=D.extractPoint(a.mb.homog),d=b.x,b=b.y,e=c.x,c=c.y,f=a.x1o,g=a.y1o,k=a.x2o,m=a.y2o,n=Math.sqrt((d-e)*(d-e)+(b-c)*(b-c)),p=(d-e)/n,n=(b-c)/n,q=0;q<ga.length;q++){var t=ga[q],
-u=t.behavior.xo,v=t.behavior.yo,w=t.behavior.x,x=t.behavior.y,y=l.mult(l.complex(f,g),l.complex(e,c)),z=l.mult(l.complex(k,m),l.complex(d,b)),y=l.sub(y,z),z=l.mult(l.complex(u,v),l.complex(d,b)),y=l.add(y,z),z=l.mult(l.complex(u,v),l.complex(e,c)),y=l.sub(y,z),z=l.sub(l.complex(f,g),l.complex(k,m)),y=l.div(y,z);0>O.det(d,b,e,c,w,x)*O.det(d,b,e,c,y.value.real,y.value.imag)&&0>O.det(d,b,w,x,y.value.real,y.value.imag)*O.det(e,c,w,x,y.value.real,y.value.imag)&&(v=t.behavior.mvx+a.deltat*(-y.value.real+
-t.behavior.xo),w=t.behavior.mvy+a.deltat*(-y.value.imag+t.behavior.yo),u=p*v+n*w,v=n*v-p*w,t.behavior.x=y.value.real,t.behavior.y=y.value.imag,t.behavior.vx=p*u*(1-a.xdamp),t.behavior.vy=n*u*(1-a.xdamp),t.behavior.vx+=-n*v*(1-a.ydamp),t.behavior.vy+=p*v*(1-a.ydamp))}a.x1o=d;a.y1o=b;a.x2o=e;a.y2o=c}},Environment:{init:function(a){"undefined"===typeof a.gravity&&(a.gravity=0);"undefined"===typeof a.friction&&(a.friction=0);"undefined"===typeof a.springstrength&&(a.springstrength=1);"undefined"!==typeof a.accuracy&&
-(Mb=a.accuracy);"undefined"!==typeof a.deltat&&sa(a.deltat/.6);"undefined"===typeof a.charges&&(a.charges=!1);"undefined"===typeof a.balls&&(a.balls=!1);"undefined"===typeof a.newton&&(a.newton=!1);"undefined"===typeof a.ballInteractionBoosting&&(a.ballInteractionBoosting=1);O.env=a;a.errorbound=.001;a.lowestdeltat=1E-7;a.slowdownfactor=2},reset:function(a){},resetForces:function(a){},getBlock:!1,setToTimestep:function(a,b,c){},initRK:function(a,b){},setVelocity:function(a,b,c,d){},move:function(a){},
-proceedMotion:function(a,b,c,d){},calculateForces:function(a){var b,c,d,e,f,g,k,l,m,n;if(a.newton)for(b=0;b<ga.length-1;b++)for(c=ga[b],d=c.behavior.x,e=c.behavior.y,f=b+1;f<ga.length;f++)g=ga[f],k=g.behavior.x,l=g.behavior.y,n=Math.sqrt((d-k)*(d-k)+(e-l)*(e-l)),k=(d-k)*c.behavior.mass*g.behavior.mass/(n*n*n),l=(e-l)*c.behavior.mass*g.behavior.mass/(n*n*n),c.behavior.fx-=k,c.behavior.fy-=l,g.behavior.fx+=k,g.behavior.fy+=l;if(a.charges)for(b=0;b<ga.length-1;b++)for(c=ga[b],d=c.behavior.x,e=c.behavior.y,
-f=b+1;f<ga.length;f++)g=ga[f],k=g.behavior.x,l=g.behavior.y,n=Math.sqrt((d-k)*(d-k)+(e-l)*(e-l)),k=(d-k)*c.behavior.charge*g.behavior.charge/(n*n*n),l=(e-l)*c.behavior.charge*g.behavior.charge/(n*n*n),c.behavior.fx+=k,c.behavior.fy+=l,g.behavior.fx-=k,g.behavior.fy-=l;if(a.balls)for(b=0;b<ga.length-1;b++)if(c=ga[b],0!==c.behavior.radius)for(d=c.behavior.x,e=c.behavior.y,f=b+1;f<ga.length;f++)g=ga[f],0!==g.behavior.radius&&(k=g.behavior.x,l=g.behavior.y,m=c.behavior.radius+g.behavior.radius,n=Math.sqrt((d-
-k)*(d-k)+(e-l)*(e-l)),0===a.ballInteractionBoosting?(k=(d-k)/(n*n*n)*(n>m?0:(n-m)*(n-m)),l=(e-l)/(n*n*n)*(n>m?0:(n-m)*(n-m))):1===a.ballInteractionBoosting?(k=(d-k)/(n*n*n*n)*(n>m?0:(n-m)*(n-m)),l=(e-l)/(n*n*n*n)*(n>m?0:(n-m)*(n-m))):(k=(d-k)/(n*n*n*n*n)*(n>m?0:(n-m)*(n-m)),l=(e-l)/(n*n*n*n*n)*(n>m?0:(n-m)*(n-m))),c.behavior.fx+=k,c.behavior.fy+=l,g.behavior.fx-=k,g.behavior.fy-=l);for(b=0;b<ga.length;b++)c=ga[b],c.behavior.fx+=0,c.behavior.fy+=-a.gravity*c.behavior.mass,c.behavior.fz+=0},calculateDelta:function(a,
-b){},savePos:function(a,b){},restorePos:function(a,b){},sqDist:function(a,b,c){return 0},kineticEnergy:function(a){},storePosition:function(a){},recallPosition:function(a){},doCollisions:function(a){}}};return oa};return E}(),createCindy=CindyJS;"undefined"!==typeof process&&"undefined"!==typeof module&&"undefined"!==typeof module.exports&&"undefined"===typeof window&&(module.exports=CindyJS);
-//# sourceMappingURL=Cindy.js.map
diff --git a/texmf-dist/doc/support/ketcindy/CindyJS/CindyJS.css b/texmf-dist/doc/support/ketcindy/CindyJS/CindyJS.css
deleted file mode 100644
index 2fdefb34..00000000
--- a/texmf-dist/doc/support/ketcindy/CindyJS/CindyJS.css
+++ /dev/null
@@ -1,121 +0,0 @@
-.CindyJS-toolbar button, .CindyJS-animbuttons button, .CindyJS-button button, .CindyJS-button label {
- background-color: #bfc4d0;
- border: 1px solid #d0d0d0;
- box-shadow: inset 1px 1px 2px #fff, inset -1px -1px 2px #aaa;
- outline: none; }
-
-.CindyJS-toolbar button:active, .CindyJS-animbuttons button:active, .CindyJS-toolbar button.CindyJS-active, .CindyJS-animbuttons button.CindyJS-active, .CindyJS-button button:active, .CindyJS-button label:active, .CindyJS-button input[type=checkbox]:checked + label {
- background-color: #aaafbb;
- box-shadow: inset 1px 1px 2px #999, inset -1px -1px 2px #ccc; }
-
-.CindyJS-toolbar, .CindyJS-animbuttons {
- line-height: 0px; }
- .CindyJS-toolbar button, .CindyJS-animbuttons button {
- display: inline-block;
- margin: 0px;
- padding: 0px; }
- .CindyJS-toolbar button:focus, .CindyJS-animbuttons button:focus {
- border-color: #06f; }
- .CindyJS-toolbar img, .CindyJS-animbuttons img {
- margin: 0px;
- border: none;
- display: block; }
-
-.CindyJS-widget {
- overflow: hidden;
- z-index: 0; }
- .CindyJS-widget canvas {
- z-index: 1; }
- .CindyJS-widget .CindyJS-baseline {
- margin: 0px;
- padding: 0px;
- border: none;
- position: absolute;
- white-space: nowrap;
- margin-top: -1000px; }
- .CindyJS-widget .CindyJS-baseline > img {
- margin: 0px;
- padding: 0px;
- border: none;
- display: inline;
- position: static;
- vertical-align: baseline;
- visibility: hidden;
- margin-right: -1px; }
- .CindyJS-widget .CindyJS-baseline .CindyJS-button {
- display: inline-block; }
- .CindyJS-widget .CindyJS-button {
- position: relative;
- z-index: 2; }
- .CindyJS-widget .CindyJS-toolbar, .CindyJS-widget .CindyJS-animbuttons {
- position: absolute; }
- .CindyJS-widget .CindyJS-toolbar button, .CindyJS-widget .CindyJS-animbuttons button {
- position: relative;
- z-index: 3; }
- .CindyJS-widget .CindyJS-animspeed {
- position: relative;
- z-index: 3; }
- .CindyJS-widget .CindyJS-animcontrols {
- bottom: 5px;
- left: 5px; }
-
-.CindyJS-button input[type=checkbox] {
- position: absolute;
- left: -10000px; }
-
-.CindyJS-button button, .CindyJS-button label {
- margin: -6px -7px;
- padding: 5px 6px;
- border-radius: 4px; }
-
-.CindyJS-button button:focus, .CindyJS-button input[type=checkbox]:focus + label {
- box-shadow: 0px 0px 3px #06f, inset 1px 1px 2px #fff, inset -1px -1px 2px #aaa; }
-
-.CindyJS-button button:focus:active, .CindyJS-button input[type=checkbox]:focus:checked + label {
- background-color: #aaafbb;
- box-shadow: 0px 0px 3px #06f, inset 1px 1px 2px #999, inset -1px -1px 2px #ccc; }
-
-.CindyJS-editabletext {
- border: 1px solid #000;
- margin: -4px -4px -1px;
- padding: 4px 4px 1px; }
- .CindyJS-editabletext:focus {
- box-shadow: 0px 0px 3px #06f; }
-
-.CindyJS-toolbar div {
- line-height: 0px; }
-
-.CindyJS-toolbar span.CindyJS-spacer {
- display: inline-block;
- margin: 0px;
- padding: 1px;
- width: 32px;
- height: 24px; }
-
-.CindyJS-animcontrols {
- position: absolute;
- background-color: #00f;
- height: 36px;
- width: 102px; }
- .CindyJS-animcontrols .CindyJS-animspeed {
- height: 10px;
- width: 100%;
- border-radius: 4px;
- background-color: #ff7f7f;
- box-shadow: inset 1px 1px 2px #999, inset -1px -1px 2px #ccc; }
- .CindyJS-animcontrols .CindyJS-animspeed div {
- width: 50%;
- height: 100%;
- border-radius: 4px;
- background-color: #cc0000;
- box-shadow: inset 1px 1px 2px #fff, inset -1px -1px 2px #aaa; }
- .CindyJS-animcontrols .CindyJS-animbuttons {
- white-space: nowrap; }
-
-.CindyJS-animbuttons button {
- border-radius: 4px;
- width: 34px;
- height: 26px;
- box-sizing: border-box; }
-
-/*# sourceMappingURL=CindyJS.css.map */ \ No newline at end of file
diff --git a/texmf-dist/doc/support/ketcindy/CindyJS/ketcindylib.txt b/texmf-dist/doc/support/ketcindy/CindyJS/ketcindylib.txt
deleted file mode 100644
index 72469da8..00000000
--- a/texmf-dist/doc/support/ketcindy/CindyJS/ketcindylib.txt
+++ /dev/null
@@ -1,6419 +0,0 @@
-// 17.08.26 Slider
-// 16.11.27
-Ketinit():=Ketinit(1);
-Ketinit(sy):=Ketinit(sy,[-5,5],[-5,5]);
-Ketinit(sy,rangex,rangey):=(
- regional(pt,tmp,tmp1,tmp2);
- PenThickInit=8;
- ULEN="1cm";
- KETPICLAYER=20;
- MilliIn=1/2.54*1000;
- PenThick=round(MilliIn*0.02);
- PenThickInit=PenThick;
- TenSizeInit=0.02;
- TenSize=TenSizeInit;
- YaSize=1; YaAngle=18; YaPosition=1;
- YaThick=1; YaStyle='tf';
- KETPICCOUNT=1;
- KCOLOR=[0,0,0];
- GLIST=[];
- GCLIST=[];
-// GDATALIST=[];
- GOUTLIST=[];
- POUTLIST=[];
- VLIST=[];
- FUNLIST=[];
- LETTERlist=[];
- COM0thlist=[];
- COM1stlist=[];
- COM2ndlist=[];
- SCIWRLIST=[];
- SCIRELIST=[];
- ADDAXES="1";
- LFmark=unicode("000a");
- Dq=unicode("0022");
- WaitUnit=10;
- CONTINUED=0;
- OutComList=[];
- OutFileLIst=[]; // 15.10.22
- FigPdfList=[]; // 16.04.08
- ADDPACK=[]; // 16.05.16
- ErrFlag=0;
- setdirectory(Dirwork);
- if(isstring(Fhead), // 15.04.06
- Fnametex=Fhead+".tex";
- Fnamesci=Fhead+".sce";
- Fnamescibody=Fhead+"body.sce";
- Fnameout=Fhead+".txt";
- );
- if(!isstring(Mackc),// 16.06.07
- Mackc="sh";
- );
- ArrowlineNumber=1; // 15.01.05
- ArrowheadNumber=1;
- BezierNumber=1; //15.01.03
- SCALEX=1;
- SCALEY=sy;
-// Setscaling(sy);
- XMIN=rangex_1/SCALEX;
- XMAX=rangex_2/SCALEX;
- YMIN=rangey_1/SCALEY;
- YMAX=rangey_2/SCALEY;
- Setwindow("Msg=n"); // 16.05.31
-);
-
-DqDq(str):=unicode("0022")+str+unicode("0022");
-
-Tab2list(dtstr):=Tab2list(dtstr,[]);
-Tab2list(dtstr,options):=(
-//help:Tab2list(datastr);
-//help:Tab2list(options=[0]);
- regional(dtall,dt,rep,out,crm,lfm,htm,first,tmp,tmp1,tmp2);
- crm=unicode("000d");
- lfm=unicode("000a");
- htm=unicode("0009");
- rep=0;
- if(length(options)>0,rep=options_1);
- first=lfm; // 16.09.05from
- if(indexof(dtstr,crm)>0,
- first=crm;
- if(indexof(dtstr,crm+lfm)>0,
- first=first+lfm;
- ); // 16.09.05upto
- );
- tmp1=Indexall(dtstr,first);
- tmp1=prepend(0,tmp1);
- tmp1=append(tmp1,length(dtstr));
- dtall=[];
- forall(1..(length(tmp1)-1),
- tmp=substring(dtstr,tmp1_#,tmp1_(#+1)-1);
- if(length(tmp)>0,
- dtall=append(dtall,tmp);
- );
- );
- out=[];
- forall(dtall,dt,
- tmp1=tokenize(dt,unicode("0009"));
- tmp2=[];
- forall(tmp1,
- if(isstring(#),tmp=parse(#),tmp=#);
- if(!isreal(tmp),
- if(length(#)>0,tmp=#,tmp=rep);
- );
- tmp2=append(tmp2,tmp);
- );
- out=append(out,tmp2);
- );
- out;
-);
-
-Columnlist(dt,list):=( // 16.09.04
-//help:Columnlist(dt,1..3);
- apply(dt,#_list);
-);
-
-Dispmat(dt):=( // 16.09.16
-//help:Dispmat(dt);
- regional(htm,crm,lfm,row,tmp,tmp1,tmp2);
- htm=unicode("0009");
- crm=unicode("000d");
- lfm=unicode("000a");
- tmp2="";
- forall(dt,row,
- tmp1="";
- forall(row,
- if(isstring(#),
- tmp1=tmp1+#+htm;
- ,
- tmp1=tmp1+text(#)+htm;
- );
- );
- tmp1=substring(tmp1,0,length(tmp1)-1);
- tmp1=tmp1+lfm;
- tmp2=tmp2+tmp1;
- );
- print(tmp2);
- println();
-);
-
-norm(v1):=( // 16.09.01
-//help:norm([2,1,3]);
- regional(out,tmp,tmp1,tmp2);
- out=0;
- forall(1..length(v1),
- out=out+(v1_#)^2;
- );
- out=sqrt(out);
- out;
-);
-norm(v1,v2):=(
- norm(v2-v1);
-);
-
-// 16.03.28
-Removespace(str):=(
-//help:Removespace(" a b c ");
- regional(tmp,flg,out);
- tmp=length(str)+1;
- flg=0;
- forall(1..length(str),
- if(flg==0,
- if((str_#)!=" ",
- tmp=#;
- flg=1;
- );
- );
- );
- out=substring(str,tmp-1,length(str));
- flg=0;
- tmp=0;
- forall(reverse(1..length(out)),
- if(flg==0,
- if((out_#)!=" ",
- tmp=#;
- flg=1;
- );
- );
- );
- out=substring(out,0,tmp);
-);
-
-Indexall(str,key):=(
- regional(rest,out,flg,tmp,tmp1,);
- out=[];
- rest=str;
- flg=0;
- forall(1..length(str),
- if(flg==0,
- tmp=indexof(rest,key);
- if(tmp>0,
- tmp1=tmp+length(str)-length(rest);
- out=append(out,tmp1);
- rest=substring(rest,tmp,length(rest));
- ,
- flg=1;
- );
- );
- );
- out;
-);
-
-Changestyle(nameL,style):=(
-//help:Changestyle(["sgAB"],["da"]);
- regional(nmL,name,Ltype,Ltypeorg,Noflg,opcindy,tmp);
- tmp=Divoptions(style);
- Ltypeorg=tmp_1;
- Noflg=tmp_2;
- opcindy=tmp_(length(tmp));
- if(islist(nameL),nmL=nameL,nmL=[nameL]);
- forall(nmL,name,
- Ltype=Ltypeorg;
- GCLIST=select(GCLIST,#_1!=name);
- COM2ndlist=select(COM2ndlist,indexof(#,"("+name)==0); // 15.05.23
- if(Noflg<2,
- if(isstring(Ltype),
- Ltype=GetLinestyle(text(Noflg)+Ltype,name);
- ,
- if(Noflg==1,Ltype=0);
- );
- GCLIST=append(GCLIST,[name,Ltype,opcindy]);
- );
- );
-);
-
-Op(n,object):=( // 16.05.25
-//help:Op(4,[1,2,3,4]);
-//help:Op(3,"abcd");
- regional(out);
- if(islist(object),
- out=object_n;
- ,
- if(isstring(object),
- out=substring(object,n-1,n);
- );
- );
- out;
-);
-
-Toupper(str):=(
- regional(alphabet,out,tmp,tmp1);
- alphabet="abcdefghijklmnopqrstuvwxyz";
- out="";
- forall(1..length(str),
- tmp=substring(str,#-1,#);
- tmp1=indexof(alphabet,tmp);
- if(tmp1>0,
- out=out+unicode(text(tmp1+64),base->10);
- ,
- out=out+tmp;
- );
- );
- out;
-);
-
-Textformat(value,dig):=(
-//help:Textformat(2/3,4);
-//help:Textformat([gr1,gr2],5);
- regional(vv,tmp,tmp1);
- if(islist(value),
- tmp1="[";
- forall(value,
- tmp1=tmp1+Textformat(#,dig)+",";
- );
- tmp1=substring(tmp1,0,length(tmp1)-1)+"]";
- ,
- if(ispoint(value) % isstring(value),
-// vv=Lcrd(value);
-// tmp1=Textformat(vv,dig);
-// tmp1=text(value); // 15.04.07
- if(isstring(value),tmp1=Dq+value+Dq,tmp1=text(value)); // 15.10.02
- ,
- tmp1=format(value,dig);
- );
- );
- tmp1;
-);
-
-Sprintf(value,dig):=(
-//help:Sprintf(5.1,4);
- regional(vv,tmp,tmp1);
- if(!islist(value),
- vv=Textformat(value,dig);
- if(indexof(vv,".")==0,vv=vv+".");
- vv=vv+"0000000000000000";
- tmp=indexof(vv,".")+dig;
- vv=substring(vv,0,tmp);
- ,
- vv=apply(value,Sprintf(#,dig));
- );
- vv;
-);
-
-Assign(funstr,vrL):=(
- regional(nn,out,tmp,tmp1);
- nn=length(vrL)/2;
- out=funstr;
- forall(1..nn,
- out=Assign(out,vrL_(2*#-1),vrL_(2*#));
- );
- out;
-);
-
-Assign(funstr,varname,rep):=(
-//help:Assign("x^2+a*x","a",1.3);
-//help:Assign("a*x^2+b*x",["a",1,"b",2]);
- regional(repstr,ii,jj,tmp,tmp1,tmp2,Notvar,Flg);
- if(isstring(rep),repstr=rep,repstr="("+Textformat(rep,5)+")"); // 15.02.09, 07.06
- tmp=[46]; // 12.20
- tmp=concat(tmp,48..57);
- tmp=concat(tmp,65..90);
- tmp=concat(tmp,97..122);
- Notvar=apply(tmp,unicode(text(#),base->10));
- tmp2="";
- forall(1..100,
- ii=indexof(funstr,varname);
- if(ii>0,
- Flg=0;
- if(ii>1,
- tmp=substring(funstr,ii-2,ii-1);
- if(contains(Notvar,tmp),
- tmp2=tmp2+substring(funstr,0,ii);
- funstr=substring(funstr,ii,length(funstr));
- Flg=1;
- );
- );
- if(Flg==0,
- jj=ii-1+length(varname);
- if(jj<length(funstr),
- tmp=substring(funstr,jj,jj+1));
- if(contains(Notvar,tmp),
- tmp2=tmp2+substring(funstr,0,jj);
- funstr=substring(funstr,jj,length(funstr));
- Flg=1;
- );
- );
- if(Flg==0,
- tmp2=tmp2+substring(funstr,0,ii-1)+repstr;
- funstr=substring(funstr,jj,length(funstr));
- );
- );
- );
- funstr=tmp2+funstr;
- funstr;
-);
-
-MeasureDepth(list):=(
- regional(tmp,Depth,Flg);
- Flg=0;
- Depth=0;
- if(ispoint(list), // 15.01.22
- Depth=0;
- Flg=1;
- ,
- tmp=list_1;
- );
- repeat(4,
- if(Flg==0,
- if(islist(tmp),
- tmp=tmp_1;
- Depth=Depth+1;
- ,
- if(ispoint(tmp),Depth=Depth+1);
- Flg=1;
- );
- );
- );
- Depth;
-);
-
-Flattenlist(pltlist):=(
-//help:Flattenlist([[2,3],[[1,2],[5,6]]]);
- regional(Out,nn,Dt,ii,tmp,flg);
- Out=[];
- if(MeasureDepth(pltlist)==1,
- Out=[pltlist];
- ,
- forall(1..length(pltlist),nn,
- Dt=pltlist_nn;
- if(MeasureDepth(Dt)<2,
- Out=append(Out,Dt);
- ,
- forall(1..length(Dt),ii,
- tmp=Flattenlist(Dt_ii);
- Out=concat(Out,tmp);
- );
- );
- );
- );
- Out;
-);
-
-Divoptions(options):=(
-//help:Divoptions(options);
- regional(Ltype,Noflg,Inflg,Outflg,eqL,realL,strL,opstr,opcindy,flg,tmp,tmp1);
- Ltype="dr"; // 2015.01.13
- Noflg=0;
- Inflg=0;
- Outflg=0;
- eqL=[];
- realL=[];
- strL=[];
- opstr="";
- opcindy="";
- forall(options,
- flg=0;
- if(flg==0,
- if(isreal(#) % ispoint(#) % islist(#),
- realL=append(realL,#);
- opstr=opstr+","+text(#);
- flg=1;
- );
- );
- if(flg==0,
- if(indexof(#,"=")>0,
- eqL=append(eqL,#);
- flg=1;
- );
- );
- if(flg==0,
- if(indexof(#,"no")+indexof(#,"No")>0,
- if(indexof(#,"tex")>0,Noflg=1);
- if(indexof(#,"disp")>0,Noflg=2);
- if(indexof(#,"data")>0,Noflg=3);
- flg=1;
- );
- );
- if(flg==0,
- if(indexof(#,"->")>0,
- opcindy=opcindy+","+#;
- flg=1;
- );
- );
- if(flg==0,
- if(indexof(#,"out")+indexof(#,"Out")>0,
- if(indexof(#,"-")==0,
- Outflg=1;
- ,
- Outflg=2;
- );
- flg=1;
- );
- );
- if(flg==0,
- if(indexof(#,"in")+indexof(#,"In")>0,
- if(indexof(#,"-")==0,
- Inflg=1;
- ,
- Inflg=2;
- );
- flg=1;
- );
- );
- if(flg==0,
- tmp=substring(#,0,2);
- tmp1=indexof(tmp,"dr")+indexof(tmp,"Dr");
- tmp1=tmp1+indexof(tmp,"da")+indexof(tmp,"Da");
- tmp1=tmp1+indexof(tmp,"id")+indexof(tmp,"Id");
- tmp1=tmp1+indexof(tmp,"do")+indexof(tmp,"Do");
- tmp1=tmp1+indexof(tmp,"dp")+indexof(tmp,"Dp");
- if(tmp1>0,
- Ltype=#;
- flg=1;
- );
- if(flg==0,
- strL=append(strL,#);
- opstr=opstr+","+Dq+#+Dq;
- );
- );
- );
- if(indexof(opcindy,"color->")==0,// 16.10.07from
- opcindy=opcindy+",color->[0,0,0]";
- );
- [Ltype,Noflg,Inflg,Outflg,eqL,realL,strL,opstr,opcindy];
-);
-
-Dotprod(vec1,vec2):=(
-//help:Dotprod(vec1,vec2);
- regional(v1,v2,tmp);
- if(ispoint(vec1),v1=vec1.xy,v1=vec1);
- if(ispoint(vec2),v2=vec2.xy,v2=vec2);
- v1*v2;
-);
-
-Crossprod(a,b):=(
-//help:Crossprod(vec1,vec2);
- regional(tmp1,tmp2,tmp3,Out);
- if(length(a)==3,
- tmp1=a_2*b_3-a_3*b_2;
- tmp2=a_3*b_1-a_1*b_3;
- tmp3=a_1*b_2-a_2*b_1;
- Out=[tmp1,tmp2,tmp3];
- ,
- Out=a_1*b_2-a_2*b_1;
- );
- Out;
-);
-
-Ptstart(Fig):=(
-//help:Ptstart("gr1");
- regional(tmp);
- if(isstring(Fig),tmp=parse(Fig),tmp=Fig); // 16.01.21
- tmp_1;
-);
-
-Ptend(Fig):=(
-//help:Ptend("gr1");
- regional(tmp);
- if(isstring(Fig),tmp=parse(Fig),tmp=Fig);
- tmp_(length(tmp)); // 15.04.12
-);
-
-Numptcrv(Fig):=(
-//help:Numptcrv("gr1");
- regional(tmp);
- if(isstring(Fig),tmp=parse(Fig),tmp=Fig); // 15.12.23
- length(tmp);
-);
-
-Ptcrv(Num,Fig):=(
-//help:Ptcrv(10,"gr1");
- regional(tmp);
- if(isstring(Fig),tmp=parse(Fig),tmp=Fig);
- tmp_Num;
-);
-
-Invert(Fig):=(
-//help:Invert("gr1");
- regional(tmp);
- if(isstring(Fig),tmp=parse(Fig),tmp=Fig); // 16.01.27
- reverse(tmp);
-);
-Invert(nm,Fig):=Invert(nm,Fig,["nodisp"]); // from 16.01.27
-Invert(nm,Fig,options):=(
-//help:Invert("1","gr1");
- regional(name,tmp);
- name="-inv"+nm;
- tmp=Invert(Fig);
- Listplot(name,tmp,options);
-);// upto 16.01.27
-
-Paramoncrv(pP,Gdata):=(
- regional(Tmp,PtL);
-// Eps=10^(-8);
- if(isstring(Gdata),PtL=parse(Gdata),PtL=Gdata);
- Tmp=Nearestpt(pP,PtL);
- Tmp_2;
-);
-
-ParamonCurve(pP,nN,plist):=(
-//help:ParamonCurve(A,10,"gr1");
- regional(PtL,Out,Pa,Pb,vV,vW,sS);
- if(isstring(plist),PtL=parse(plist),PtL=plist);
- PtL=apply(PtL,LLcrd(#));//16.10.16
- if(nN==length(PtL),
- Out=nN;
- ,
- Pa=PtL_nN;
- Pb=PtL_(nN+1);
- vV=Pb-Pa;
- vW=pP-Pa;
- sS=vV*vW/|vV|^2;
- sS=min([max([sS,0]),1]);
- Out=nN+sS;
- );
- Out;
-);
-
-Pointoncrv(tT,PtL):=PointonCurve(tT,PtL);
-PointonCurve(tT,Gdata):=(
-//help:PointonCurve(20.5,"gr1");
- regional(Out,Eps,nN,sS,Pa,Pb,PtL);
- if(isstring(Gdata),PtL=parse(Gdata),PtL=Gdata);
- if(length(PtL)==1,PtL=PtL_1);
- Eps=10^(-4);
- nN=floor(tT+Eps);
- sS=max([tT-nN,0]);
- if(nN==length(PtL),
- Out=PtL_nN;
- ,
- Pa=PtL_nN;
- Pb=PtL_(nN+1);
- Out=(1-sS)*Pa+sS*Pb;
- );
- Out;
-);
-
-Koutenseg(pA,pB,pC,pD):=Koutenseg(pA,pB,pC,pD,[]);
-Koutenseg(pA,pB,pC,pD,options):=(
- regional(Eps0,Eps,Eps2,pV,Sv2,Out,pP,pQ,Flg,p1,p2,q1,q2,
- em1,eM1,em2,eM2,rT,Tmp1,Tmp2);
- Eps0=10^(-4);
- pV=pB-pA;
- Sv2=|pV|;
- pP=pC-pA; pQ=pD-pA;
- Eps=10^(-3);
- Eps2=0.2;
- Tmp1=0;
- forall(options,
- if(Tmp1==0,
- Eps=#;
- Tmp1=1;
- ,
- Eps2=#;
- );
- );
- Flg=0;
- if(Sv2<10^(-3),
- Out=["inf","inf"];
- Flg=1;
- );
- if(Flg==0,
- Eps=min([Eps2,Eps/Sv2]);
- p1=pP*pV/Sv2^2;
- p2=[pP_2,-pP_1]*pV/Sv2^2;
- q1=pQ*pV/Sv2^2;
- q2=[pQ_2,-pQ_1]*pV/Sv2^2;
- em1=-Eps; eM1=1+Eps;
- em2=-Eps; eM2=Eps;
- if(max([p1,q1])<em1 % min([p1,q1])>eM1,
- Out=["inf","inf"];
- Flg=1;
- );
- if(max([p2,q2])<em2 % min([p2,q2])>eM2,
- Out=["inf","inf"];
- Flg=1;
- );
- );
- if(Flg==0 & p2*q2<0,
- rT=p1-(q1-p1)/(q2-p2)*p2;
- if(rT>em1 & rT<eM1,
- if(rT>-Eps0 & rT<1+Eps0,
- Tmp1=pA+rT*pV;
- Tmp2=min([max([rT,0]),1]);
- Out=[Tmp1,Tmp2,0];
- ,
- Tmp1=pA+rT*pV;
- Tmp2=min([max([rT,0]),1]);
- Out=[Tmp1,Tmp2,1];
- );
- Flg=1;
- );
- if(Flg==0 & (p1<em1 % p1>eM1 % p2<em2 % p2>eM2),
- if(q1<em1 % q1>eM1 % q2<em2 % q2>eM2,
- Out=["inf","inf"];
- Flg=1;
- );
- if(Flg==0,
- rT=min([max([p1,0]),1]);
- Tmp1=pA+rT*pV;
- Out=[Tmp1,rT,1];
- Flg=1;
- );
- );
- );
- if(Flg==0 & (p1 > -Eps0 & p1 < 1 + Eps0 & p2 > -Eps0 & p2 < Eps0),
- rT= p1;
- Tmp1=pA+rT*pV;
- Out= [Tmp1, rT, 0];
- Flg=1;
- );
- if(Flg==0 & (q1 > -Eps0 & q1 < 1 + Eps0 & q2 > -Eps0 & q2 < Eps0),
- rT= q1;
- Tmp1=pA+rT*pV;
- Out=[Tmp1,rT,0];
- Flg=1;
- );
- if(Flg==0 & (p1<em1 % p1>eM1 % p2<em2 % p2>eM2),
- if(q1<em1 % q1>eM1 % q2<em2 % q2>eM2,
- Out=["inf","inf"];
- Flg=1;
- );
- if(Flg==0,
- rT=min([max([q1,0]),1]);
- Tmp1=pA+rT*pV;
- Out=[Tmp1,rT,1];
- Flg=1;
- );
- );
- if(Flg==0 & (q1<em1 % q1>eM1% q2<em2 % q2>eM2),
- rT=min([max([p1,0]),1]);
- Tmp1=pA+rT*pV;
- Out=[Tmp1,rT,1];
- Flg=1;
- );
- if(Flg==0,
- if(abs(p2)<abs(q2),
- rT=min([max([p1,0]),1]);
- ,
- rT=min([max([q1,0]),1]);
- );
- Tmp1=pA+rT*pV;
- Out=[Tmp1,rT,1];
- );
- Out;
-);
-
-IntersectcrvsPp(Gr1,Gr2):=IntersectcrvsPp(Gr1,Gr2,[]);
-IntersectcrvsPp(Gr1,Gr2,options):=(
-//help:IntersectcrvsPp("gr1","pa1");
- regional(Out,Eps,Eps2,Eps0,Flg,Data1,Data2,
- Tmp1,Tmp2,Tmp3,Tmp,KL1,KL2,pA,pB,Ni,Nj,
- pP,pQ,rT,Flg,eqL,realL,opstr,Dif);
- Eps=10^(-4);
- Eps2=0.1;
- Dif=0.05; // 2015.05.31
- Flg=0;
- Tmp1=Divoptions(options); //
- eqL=Tmp1_5;
- realL=Tmp1_6;
- opstr=Tmp1_(length(Tmp1));
- forall(eqL,
- if(substring(#,0,1)=="D",
- Tmp1=indexof(#,"=");
- Dif=parse(substring(#,Tmp1,length(#)));
- );
- );
- Tmp1=length(realL);
- if(Tmp1>0,
- Eps=realL_1;
- if(Tmp1>1,
- Eps2=realL_2;
- );
- );
- Flg=0;
- if(isstring(Gr1),Data1=parse(Gr1),Data1=Gr1);
- if(isstring(Gr2),Data2=parse(Gr2),Data2=Gr2);
- if(MeasureDepth(Data1)==2,Data1=Data1_1);
- if(MeasureDepth(Data2)==2,Data2=Data2_1);
- Data1=apply(Data1,LLcrd(#));
- Data2=apply(Data2,LLcrd(#));
- if(length(Data1)==length(Data2),
- Tmp1=Reverse(Data2);
- Eps0=10^(-6);
- Tmp2=0;
- forall(1..length(Data1),
- Tmp2=Tmp2+abs(Data1_#-Data2_#);
- );
- Tmp3=0;
- forall(1..length(Data1),
- Tmp3=Tmp3+abs(Data1_#-Tmp1_#);
- );
- if(Tmp2<Eps0 % Tmp3<Eps0,
- Out=[];
- Flg=1;
- );
- );
- if(Flg==0,
- KL1=[];
- KL2=[];
- forall(1..(length(Data1)-1),Ni,
- pA=Data1_Ni;
- pB=Data1_(Ni+1);
- forall(1..(length(Data2)-1),
- pP=Data2_#; pQ=Data2_(#+1);
- Tmp=Koutenseg(pA,pB,pP,pQ,[Eps,Eps2]);
- if(Tmp!=["inf","inf"],
- if(Tmp_3==0,
- Tmp1=[Tmp_1,Tmp_2,Ni,#];
- KL1=concat(KL1,[Tmp1]);
- ,
- Tmp2=[Tmp_1,Tmp_2,Ni,#];
- KL2=concat(KL2,[Tmp2]);
- );
- );
- );
- );
- Out=[];
- if(length(KL1)>0,
- Tmp=KL1_1;
- pP=Tmp_1;
- rT=Tmp_2;
- Ni=Tmp_3;
- Nj=Tmp_4;
- Tmp=[pP,Ni+rT,Nj];
- Out=[Tmp];
- );
- forall(2..length(KL1),Ni,
- Tmp=KL1_Ni;
- pP=Tmp_1;
- Tmp2=0;
- Flg=0;
- forall(1..length(Out),Nj,
- if(Flg==0,
- Tmp=Out_Nj;
- if(|pP-Tmp_1|<Eps,
- Tmp2=1;
- Flg=1;
- );
- );
- );
- if(Tmp2==0,
- Tmp=KL1_Ni;
- pP=Tmp_1;
- rT=Tmp_2;
- Tmp1=Tmp_3;
- Tmp2=Tmp_4;
- Tmp=[pP,Tmp1+rT,Tmp2];
- Out=concat(Out,[Tmp]);
- );
- );
- forall(1..length(KL2),Ni,
- Tmp=KL2_Ni; // 15.11.21 Usui
- pP=Tmp_1;
- Tmp2=0;
- Flg=0;
- forall(1..length(Out),Nj,
- if(Flg==0,
- Tmp=Out_Nj;
- if(|pP-Tmp_1|<Eps,
- Tmp2=1;
- Flg=1;
- );
- );
- );
- if(Tmp2==0,
- Tmp=KL2_Ni;
- rT=Tmp_2;
- rT=min([max([rT,0]),1]); // 15.11.21 Usui
- Tmp=[pP,Tmp_3+rT,Tmp_4];
- Out=concat(Out,[Tmp]);
- );
- );
- );
- Tmp1=Out; // 15.04.06 from
- Out=[];
- forall(Tmp1,Tmp2,
- Tmp3=select(1..(length(Out)),|Out_#_1-Tmp2_1|<Dif);//16.11.27
- if(length(Tmp3)==0,
- Out=append(Out,Tmp2);
- ,
- forall(Tmp3,//16.11.27
- Out_#=(Out_#+Tmp2)/2;
- );
- );
- ); // 15.04.06 upto
- Out;
-);
-
-Intersectcrvs(Gr1,Gr2):=Intersectcrvs(Gr1,Gr2,[]);
-//help:Intersectcrvs("gr1","pa1");
-Intersectcrvs(Gr1,Gr2,options):=(
- regional(tmp,tmp1,tmp2);
- tmp1=IntersectcrvsPp(Gr1,Gr2,options);
- apply(tmp1,#_1);
-);
-
-NearestptcrvPhy(point,PL):=(
- regional(tmp,pP,plist);
- pP=Pcrd(point);
- if(isstring(PL),plist=parse(PL),plist=PL);
- if(MeasureDepth(plist)==2,plist=plist_1);
- plist=apply(plist,#); // 14.12.18
- tmp=Nearestpt(pP,plist);
- tmp=tmp_1;
- [tmp_1/SCALEX,tmp_2/SCALEY];
-);
-
-Nearestptcrv(point,plist):=(
-//help:Nearestptcrv(A,"gr1");
- regional(tmp);
- tmp=Nearestpt(point,plist);
- tmp_1;
-);
-
-Nearestpt(point,PL2):=(
- regional(PL1,PL,Ans,Flg,Eps,pA,Pm,Im,Sm,Nn,Ni,
- a1,b1,a2,b2,v1,v2,x1,x2,Tmp,rT,pP,sS,Lm,Pm,Sm,Flg);
-//help:Nearestpt("gr1","gr2");
- if(isstring(point),PL1=parse(point),PL1=point);
- if(MeasureDepth(PL1)==2,PL1=PL1_1);
- if(!islist(PL1_1),
- PL1=[PL1];
- Flg=0;
- ,
- Flg=1;
- );
- if(isstring(PL2),PL=parse(PL2),PL=PL2);
- if(MeasureDepth(PL)==2,PL=PL_1);
- Eps=10^(-6);
- Ans=[PL1_1,1,PL_1,1,|PL1_1-PL_1|];
- forall(1..length(PL1),Nn, // 16.05.04
- pA=PL1_Nn;
- Pm=PL_1;
- Im=1;
- Sm=|Pm-pA|;
- forall(1..(length(PL)-1),Ni,
- a1=PL_Ni_1; a2=PL_Ni_2;
- b1=PL_(Ni+1)_1; b2=PL_(Ni+1)_2;
- v1=b1-a1; v2=b2-a2;
- x1=pA_1; x2=pA_2;
- Tmp=v2^2+v1^2;
- if(abs(Tmp)>Eps,
- rT=(-a2*v2-v1*a1+v1*x1+x2*v2)/Tmp;
- if(rT<-Eps,
- pP=[a1,a2];
- ,
- if(rT>1+Eps,
- pP=[b1,b2];
- ,
- pP=[a1+rT*v1,a2+rT*v2];
- );
- );
- sS=|pP-pA|;
- if(sS<Sm-Eps,
- Tmp=ParamonCurve(pP,Ni,PL);
- Pm=pP; Lm=Tmp; Sm=sS;
- );
- );
- if(Sm<Ans_5, // 16.05.03from
- Ans=[pA,Nn,Pm,Lm,Sm];
- );
- ); // 16.05.03upto
- );
- if(Flg==0,
- Ans=Ans_(3..5);
- );
- Ans;
-);
-
-Derivative(fun,var,value):=(
-//help:Derivative("x^3","x",2);
- regional(str,tmp);
- str="d(";
- str=str+replace(fun,var,"#")+",";
- str=str+value+")";
- tmp=Pcrd([1,parse(str)]); // 14.11.08
- tmp_2;
-);
-
-Integrate(pltdata,range):=Integrate(pltdata,range,[]);
-Intergrate(Arg1,Arg2,Arg3):=(
- regional(pltdata,range,options,fnstr,vartr);
- if(islist(Arg2),
- pltdata=Arg1;
- range=Arg2;
- options=Arg3;
- Integrate(pltdata,range,options);
- ,
- fnstr=Arg1;
- vastr=Arg2;
- range=Arg3;
- Integrate(fnstr,vastr,range,[]);
- );
-);
-
-Integrate(pltdata,range,options):=(
-//help:Integrate("gr1",[1,3]);
-//help:Integrate("gr1",[1,3],["Rule=t"]);
- regional(tmp,tmp1,eqL,Rule,pdata,Sm,ptP,ptQ,list,va1,va2);
- tmp=Divoptions(options);
- eqL=tmp_5;
- Rule="o";
- forall(eqL,
- if(Toupper(substring(#,0,1))=="R",
- tmp=indexof(#,"=");
- Rule=substring(#,tmp,tmp+1);
- );
- );
- if(Rule=="o",
- Sm= IntegrateO(pltdata,range);
- ,
- if(isstring(pltdata),pdata=parse(pltdata),pdata=pltdata);
- if(MeasureDepth(pdata)==2,pdata=pdata_1);
- va1=MeetCurve(pdata,range_1,0);
- va2=MeetCurve(pdata,range_2,0);
- list=select(pdata,(#_1>range_1 & #_1<range_2));
- list=apply(list,LLcrd(#)); // 15.09.14
- list=concat([va1],list);
- list=concat(list,[va2]);
- Sm=0;
- forall(1..(length(list)-1),
- ptP=list_#; // 15.09.14
- ptQ=list_(#+1);
- Sm=Sm+(ptP_2+ptQ_2)*(ptQ_1-ptP_1)/2;
- );
- Sm;
- );
-);
-
-Integrate(fnstr,vastr,range,options):=(
-//help:Integrate("sin(x)","x",[0,pi],["Num=100","Rule=s"]);
- regional(tmp,tmp1,Sm,Lx,Rx,va1,va2,Num,Waysx,ex,dx,xn,yn,x0,x1,x2,y0,y1,y2);
- Num=100;
- Way="t";
- forall(options,
- if(indexof(#,"=")>0,
- if(indexof(#,"N=")>0,
- Num=parse(substring(#,indexof(#,"="),length(#)));
- );
- if(indexof(#,"Num=")>0,
- Num=parse(substring(#,indexof(#,"="),length(#)));
- );
- if(Toupper(substring(#,0,1))=="R",
- tmp=indexof(#,"=");
- Way=substring(#,tmp,tmp+1);
- );
- );
- );
- Sm=0;
- if(Way=="t",
- forall(1..Num,
- Lx=range_1+(range_2-range_1)*(#-1)/Num;
- Rx=range_1+(range_2-range_1)*#/Num;
- va1=parse(replace(fnstr,vastr,textformat(Lx,5)));
- va2=parse(replace(fnstr,vastr,textformat(Rx,5)));
- Sm=Sm+(va1+va2)*(Rx-Lx)/2;
- );
- ,
- sx=range_1;
- ex=range_2;
- dx=(ex-sx)/Num;
- xn=apply(0..Num,sx+#*dx);
- yn=apply(xn,parse(replace(fnstr,vastr,textformat(#,5))));
- dx=dx/2;
- repeat(Num,s,
- x0=xn_s;
- x1=(xn_s+xn_(s+1))/2;
- x2=xn_(s+1);
- y0=yn_s;
- y1=parse(replace(fnstr,vastr,textformat(x1,5)));
- y2=yn_(s+1);
- Sm=Sm+dx*(y0+4*y1+y2)/3;
- );
- );
- Sm;
-);
-
-IntegrateO(p0org,p1org,p2org,p3org):=(
- regional(p0,p1,p2,p3,pQ,pR,cc,p01,p02,
- p11,p12,p21,p22,p31,p32, tmp);
- if(ispoint(p0org),p0=p0org.xy,p0=p0org); // 16.03.10
- if(ispoint(p1org),p1=p1org.xy,p1=p1org); // 16.03.16
- if(ispoint(p2org),p2=p2org.xy,p2=p2org);
- if(ispoint(p3org),p3=p3org.xy,p3=p3org);
- tmp=1+sqrt((1+Dotprod(p2-p0,p3-p1)/|p2-p0|/|p3-p1|)/2);
- cc=4*|p2-p1|/3/(|p2-p0|+|p3-p1|)/tmp;
- pQ=p1+cc*(p2-p0);
- pR=p2+cc*(p1-p3);
- p01=p1_1; p02=p1_2;
- p31=p2_1; p32=p2_2;
- p11=pQ_1; p12=pQ_2;
- p21=pR_1; p22=pR_2;
- tmp=-6*p12*p01+3*p12*p21+3*p12*p31+6*p02*p11-
- 10*p02*p01+3*p02*p21+p02*p31-3*p22*p11-
- 3*p22*p01+6*p22*p31-3*p32*p11-p32*p01-
- 6*p32*p21+10*p32*p31;
- tmp=tmp/20;
-);
-IntegrateO(pltdata,rangeorg):=(
-//help:IntegrateO("gr1",[0,2]);
- regional(tmp,tmp1,tmp2,pdata,va1,va2,list,Bzk,Bzc,range,pmflg,
- Sm,p0,p1,p2,p3,pQ,pR,cc,p01,p02,p11,p12,p21,p22,p31,p32);
- if(isstring(pltdata),pdata=parse(pltdata),pdata=pltdata);
- if(MeasureDepth(pdata)==2,pdata=pdata_1);
- range=rangeorg;
- pmflg=1;
- if(range_2<range_1,
- range=reverse(range);
- pmflg=-1;
- );
- va1=MeetCurve(pdata,range_1,0);
- va2=MeetCurve(pdata,range_2,0);
- list=select(pdata,(#_1>range_1 & #_1<range_2));
- if((length(list)>0) & (list_1_1>list_(length(list))_1),
- list=reverse(list);
-// pmflg=pmflg*(-1);
- );
- list=apply(list,LLcrd(#));
- list=concat([va1],list);
- list=concat(list,[va2]);
- Sm=0;
- forall(1..(length(list)-1),
- p1=list_#;
- p2=list_(#+1);
- if(#==1 % #==length(list)-1,
- tmp1=(p1_2+p2_2)*(p2_1-p1_1)/2;
- Sm=Sm+tmp1;
- ,
- p0=list_(#-1);
- p3=list_(#+2);
- tmp=1+sqrt((1+Dotprod(p2-p0,p3-p1)/|p2-p0|/|p3-p1|)/2);
- cc=4*|p2-p1|/3/(|p2-p0|+|p3-p1|)/tmp;
- pQ=p1+cc*(p2-p0);
- pR=p2+cc*(p1-p3);
- p01=p1_1; p02=p1_2;
- p31=p2_1; p32=p2_2;
- p11=pQ_1; p12=pQ_2;
- p21=pR_1; p22=pR_2;
- tmp1=-6*p12*p01+3*p12*p21+3*p12*p31+6*p02*p11-
- 10*p02*p01+3*p02*p21+p02*p31-3*p22*p11-
- 3*p22*p01+6*p22*p31-3*p32*p11-p32*p01-
- 6*p32*p21+10*p32*p31;
- tmp1=tmp1/20;
- Sm=Sm+tmp1;
- );
- );
- if(pmflg==-1,
- Sm=-Sm;
- );
- Sm;
-);
-
-Findarea(pdstr):=(
-//help:Findarea("sgABCA");
- regional(pd,p1,p2,s,tmp);
- if(isstring(pdstr),pd=parse(pdstr),pd=pdstr);
- s=0;
- forall(1..(length(pd)-1),
- p1=Lcrd(pd_#);
- p2=Lcrd(pd_(#+1));
- tmp=(p1_2+p2_2)*(p2_1-p1_1)/2;
- s=s+tmp;
- );
- if(s<0,s=-s);
- s;
-);
-
-Findarea(pdstr):=( // 15.11.27
-//help:Findarea("cr1");
- regional(pd,p0,p1,p2,p3,s,tmp);
- if(isstring(pdstr),pd=parse(pdstr),pd=pdstr);
- s=0;
- forall(1..(length(pd)-1),
- p1=pd_#;
- p2=pd_(#+1);
- if(#==1,p0=pd_(length(pd)-1),p0=pd_(#-1));
- if(#==length(pd)-1,p3=pd_2,p3=pd_(#+2));
- tmp=IntegrateO(p0,p1,p2,p3);
- s=s+tmp;
- );
- if(s<0,s=-s);
- s;
-);
-
-Findlength(pdstr):=(
-//help:Findlength("gr1");
- regional(pd,p1,p2,s,tmp);
- if(isstring(pdstr),pd=parse(pdstr),pd=pdstr);
- s=0;
- forall(1..(length(pd)-1),
- p1=Lcrd(pd_#);
- p2=Lcrd(pd_(#+1));
- tmp=|p2-p1|;
- s=s+tmp;
- );
- s;
-);
-
-Inversefun(fnstr,rngstr,value):=(
- regional(tmp,varstr,range,x1,x2,x3,va1,va2);
- tmp=indexof(rngstr,"=");
- varstr=substring(rngstr,0,tmp-1);
- range=parse(substring(rngstr,tmp,length(rngstr)));
- x1=range_1; x2=range_2;
- repeat(15,
- x3=(x1+x2)/2;
- va1=parse(replace(fnstr,varstr,textformat(x1,5)));
- va2=parse(replace(fnstr,varstr,textformat(x3,5)));
- if((va1>value & va2>value) % (va1<value & va2<value),
- x1=x3;
- ,
- x2=x3;
- );
- );
- va1=parse(replace(fnstr,varstr,textformat(x1,5)))-value;
- va2=parse(replace(fnstr,varstr,textformat(x2,5)))-value;
- if(x1==range_1 % x2==range_2,
- println("not found in ("+textformat(range_1,5)
- +","+textformat(range_2,5)+")");
- );
- if(abs(va1)<=abs(va2),x1,x2);
-);
-
-Lcrd(pt):=(
- regional(tmp);
- if(ispoint(pt),
- tmp=[pt.x/SCALEX,pt.y/SCALEY];
- ,
- tmp=pt;
- );
- tmp;
-);
-
-Pcrd(pt):=(
- regional(tmp);
- if(ispoint(pt),
- tmp=re(pt.xy); // 15.07.24
- ,
- tmp=[pt_1*SCALEX,pt_2*SCALEY];
- );
- tmp;
-);
-
-LLcrd(pt):=(
- regional(tmp);
- if(ispoint(pt),
- tmp=pt.xy
- ,
- tmp=pt;
- );
- tmp=[tmp_1/SCALEX,tmp_2/SCALEY];
- tmp;
-);
-
-Doscaling(pltdata):=(
- regional(Level,Out,gL,gr,tmp);
- if(ispoint(pltdata) % isreal(pltdata_1),
- gL=[[pltdata]];
- Level=0;
- ,
- if(ispoint(pltdata_1) % isreal(pltdata_1_1),
- gL=[pltdata];
- Level=1;
- ,
- gL=pltdata;
- Level=2;
- );
- );
- Out=[];
- forall(gL,gr,
- tmp=apply(gr,Lcrd(#));
- tmp=apply(tmp,LLcrd(#));
- Out=concat(Out,[tmp]);
- );
- if(Level==0,
- Out=Out_1_1;
- );
- if(Level==1,
- Out=Out_1;
- );
- Out;
-);
-
-Unscaling(pltdata):=(
- regional(Level,Out,gL,gr,tmp);
- if(ispoint(pltdata) % isreal(pltdata_1),
- gL=[[pltdata]];
- Level=0;
- ,
- if(ispoint(pltdata_1) % isreal(pltdata_1_1),
- gL=[pltdata];
- Level=1;
- ,
- gL=pltdata;
- Level=2;
- );
- );
- Out=[];
- forall(gL,gr,
- tmp=apply(gr,Lcrd(#));
- tmp=apply(tmp,LLcrd(#));
- Out=concat(Out,[tmp]);
- );
- if(Level==0,
- Out=Out_1_1;
- );
- if(Level==1,
- Out=Out_1;
- );
- Out;
-);
-
-Definecolor(name,data):=(
-//help:Definecolor("mycolor",[1,1,1,0]);
- regional(type,tmp);
- if(length(data)>3,type="cmyk",type="rgb");
- tmp=text(data);
- tmp=substring(tmp,1,length(tmp)-1);
- tmp="\definecolor{"+name+"}{"+type+"}{"+tmp+"}";
- Texcom(tmp);
-);
-
-Setcolor(Par):=(
-//help:Setcolor([1,0,0,1]);
-//help:Setcolor([1,1,0]);
- if(islist(Par),
- if(length(Par)==3,
- Setcolorrgb(Par); // 2015.04.28
-// KCOLOR=Par;
- );
- if(length(Par)==4,
- Setcolor(Par,[]);
- );
- ,
- Setcolor(Par,[]);
- );
-);
-
-Setcolor(colorname,options):=(
-//help:Setcolor("greenyellow",0.3);
- regional(tmp);
- if(isstring(colorname),
- tmp="Setcolor("+Dq+colorname+Dq;
- if(length(options)>0,
- tmp=tmp+","+text(options_1);
- );
- Com2nd(tmp+")");
- );
- if(islist(colorname),
- tmp=text(colorname);
- tmp=substring(tmp,1,length(tmp)-1);
- tmp="Texcom("+Dq+"\color[cmyk]{"+tmp+"}"+Dq+")";
- Com2nd(tmp);
- );
-);
-
-Setcolorrgb(colorlist):=(
-// help:Setcolorrgb([0.5,0.3,0.4]);
- regional(tmp);
- tmp=text(colorlist);
- tmp=substring(tmp,1,length(tmp)-1);
- tmp="Texcom("+Dq+"\color[rgb]{"+tmp+"}"+Dq+")";
- Com2nd(tmp);
-);
-
-ColorRgb2Cmyk(clr):=(
-// help:ColorRgb([0.2,0.5,0.1]);
- regional(clrnew,tmp,black);
- tmp=apply(clr,1-#);
- black=min(tmp);
- tmp=apply(clr,(1-#-black)/(1-black));
- clrnew=append(tmp,black);
- clrnew;
-);
-
-ColorCmyk2Rgb(clr):=(
-// help:ColorRgb([0.2,0.5,0.1,0.2]);
- regional(clrnew,tmp,black);
- black=clr_4;
- tmp=apply(clr,1-min(1,#*(1-black)+black));
- clrnew=tmp_(1..3);
- clrnew;
-);
-
-Colorrgbhsv(rgb):=(
- regional(varR,varG,varB,varMin,varMax,delMax,hh,ss,vv,delR,delG,delB);
- varR = rgb_1;
- varG = rgb_2;
- varB = rgb_3;
- varMin = min( [varR, varG, varB] );
- varMax = max( [varR, varG, varB] );
- delMax = varMax - varMin ;
- vv = varMax;
- if ( delMax == 0 ,
- hh = 0 ;
- ss = 0 ;
- ,
- ss = delMax / varMax;
- delR = ( ( ( varMax - varR ) / 6 ) + ( delMax / 2 ) ) / delMax;
- delG = ( ( ( varMax - varG ) / 6 ) + ( delMax / 2 ) ) / delMax;
- delB = ( ( ( varMax - varB ) / 6 ) + ( delMax / 2 ) ) / delMax;
- if( varR == varMax ,
- hh = delB - delG;
- ,
- if ( varG == varMax,
- hh = ( 1 / 3 ) + delR - delB;
- ,
- if ( varB == varMax ,
- hh = ( 2 / 3 ) + delG - delR;
- );
- );
- );
- if ( hh < 0 ,hh = hh+1);
- if ( hh > 1 ,hh = hh-1);
- );
- [hh*360,ss,vv];
-);
-
-Colorhsvrgb(sL):=(
- regional(tmp,tmp1,tmp2,tmp3,hi,ff,dL);
- tmp=[sL_1/60,sL_2,sL_3];
- hi=mod(floor(tmp_1),6);
- ff=tmp_1-floor(tmp_1);
- tmp2=tmp_3*[1-tmp_2,1-tmp_2*ff,1-tmp_2*(1-ff)];
- tmp2=append(tmp2,tmp_3);
- if(hi==0,dL=tmp2_[4,3,1]);
- if(hi==1,dL=tmp2_[2,4,1]);
- if(hi==2,dL=tmp2_[1,4,3]);
- if(hi==3,dL=tmp2_[1,2,4]);
- if(hi==4,dL=tmp2_[3,1,4]);
- if(hi==5,dL=tmp2_[4,1,2]);
- dL;
-);
-
-Colorrgbhsl(rgb):=(
- regional(rr,gg,bb,mn,mx,delta,deltaR,deltaG,deltaB,hh,ss,ll);
- rr = rgb_1 ;
- gg = rgb_2 ;
- bb = rgb_3 ;
- mn = min([rr, gg, bb]);
- mx = max([rr, gg, bb]);
- delta = mx - mn;
- ll = (mx + mn) / 2;
- if (delta == 0,
- hh=0;
- ss=0;
- ,
- if (ll < 0.5,
- ss = delta/ (mx + mn);
- ,
- ss = delta / (2 - mx - mn);
- );
- deltaR = (((mx - rr) / 6) + (delta / 2)) / delta;
- deltaG = (((mx - gg) / 6) + (delta / 2)) / delta;
- deltaB = (((mx - bb) / 6) + (delta / 2)) / delta;
- if (rr == mx,
- hh = deltaB - deltaG;
- ,
- if (gg == mx,
- hh = (1 / 3) + deltaR - deltaB;
- ,
- if (bb == mx,
- hh = (2 / 3) + deltaG - deltaR;
- );
- );
- );
- if ( hh < 0, hh = hh+1);
- if ( hh > 1, hh = hh-1);
- );
- [hh*360,ss,ll];
-);
-
-Colorhslrgb(hsl):=(
- regional(hh,ss,ll,rr,gg,bb,var1,var2);
- hh=hsl_1/360;
- ss=hsl_2;
- ll=hsl_3;
- if ( ss == 0.0,
- rr = ll ;
- gg = ll ;
- bb = ll ;
- ,
- if ( ll < 0.5 ,
- var2 = ll * ( 1.0 + ss );
- ,
- var2 = ( ll + ss ) - ( ss * ll );
- );
- var1 = 2.0 * ll - var2;
- rr = hue2rgb( var1, var2, hh + ( 1.0 / 3.0 ) );
- gg = hue2rgb( var1, var2, hh );
- bb = hue2rgb( var1, var2, hh - ( 1.0 / 3.0 ) );
- );
- [rr,gg,bb];
-);
-
-hue2rgb(vv1,vv2,vh):=(
- regional(out);
- if ( vh < 0.0 ,vh =vh+1);
- if ( vh > 1.0 ,vh =vh-1);
- if ( 6.0*vh < 1.0 ,
- out = vv1 + ( vv2 - vv1 ) * 6.0 * vh ;
- ,
- if( 2.0*vh < 1.0 ,
- out = vv2;
- ,
- if ( 3.0*vh < 2.0 ,
- out = vv1 + ( vv2 - vv1 ) * ( ( 2.0 / 3.0 ) - vh ) * 6.0 ;
- ,
- out= vv1 ;
- );
- );
- );
- out;
-);
-
-Colorrgbhwb(sL):=(
- regional(dl1,dl2,dl3);
- dl1 = Colorrgbhsl(sL)_1;//Colorcode("rgb","hsl",sL)_1;
- dl2 = min(sL);
- dl3 = 1 - max(sL);
- dL= [dl1, dl2 , dl3 ];
-);
-
-Colorhwbrgb(sLorg):=(
- regional(sL,tmp,tmp1,tmp2,tmp3,ratio,ff,ii,vv,nn,dL,flg);
- sL=sLorg;
- sL=[sL_1/360,sL_2,sL_3];
- ratio = sL_2 + sL_3;
- // sL_2 + sL_3 cant be > 1
- if (ratio > 1.,
- sL_2 =sL_2 / ratio;
- sL_3 = sL_3 / ratio;
- );
- ii = floor(6 * sL_1);
- vv = 1 - sL_3;
- ff = 6 * sL_1 - ii;
- if(mod(ii,2)==1,ff = 1 - ff);
- nn = sL_2 + ff * (vv - sL_2); // linear interpolation
- tmp=[[vv,nn,sL_2],[nn,vv,sL_2],[sL_2,vv,nn],
- [sL_2,nn,vv],[nn,sL_2,vv],[vv,sL_2,nn],[vv,nn,sL_2]];
- flg=0;
- forall(0..6,
- if(flg==0 & ii == # ,
- dL=tmp_(#+1);
- flg=1;
- );
- );
- dL;
-);
-
-Colorhslhsv(sL):=(
- regional(dl1,dl2,dl3,dL);
- dl1=sL_1;
- if(sL_3 == 0,
- // no need to do calc on black
- // also avoids divide by 0 error
- dL= [0, 0, 0];
- ,
- sL_3 = sL_3 * 2;
- if(sL_3 <= 1,sL_2 = sL_2 * sL_3,sL_2 = sL_2 * (2 - sL_3));
- dl3 = (sL_3 + sL_2) / 2;
- dl2 = (2 * sL_2) / (sL_3 + sL_2);
- dL = [dl1, dl2, dl3];
- );
- dL;
-);
-
-Colorcode(src,dest,sL):=(
-//help:Colorcode("rgb","cmyk",[1,0.5,0]);
- regional(tmp,tmp1,tmp2,tmp3,mn,mx,delta,black,dL,flg);
- regional(dl1,dl2,dl3);
- if(src=="rgb" & dest=="hsv", dL=Colorrgbhsv(sL));
- if(src=="hsv" & dest=="rgb", dL=Colorhsvrgb(sL));
- if(src=="rgb" & dest=="hsl", dL=Colorrgbhsl(sL));
- if(src=="hsl" & dest=="rgb", dL=Colorhslrgb(sL));
- if(src=="rgb" & dest=="hwb", dL=Colorrgbhwb(sL));
- if(src=="hwb" & dest=="rgb", dL=Colorhwbrgb(sL));
- if(src=="hsl" & dest=="hsv", dL=Colorhslhsv(sL));
- if(src=="hsv" & dest=="hsl",
- dl1 = sL_1;
- dl3 = (2 - sL_2) * sL_3;
- dl2 = sL_2 * sL_3;
- if(dl3 <= 1,dl2 = dl2/dl3,dl2=dl2/(2 - dl3));
- dl3 =d l3/ 2;
- dL = [dl1, dl2 , dl3 ];
- );
-
- if(src=="rgb" & dest=="cmyk",
- tmp=apply(sL,1-#);
- black=min(tmp);
- tmp=apply(sL,(1-#-black)/(1-black));
- dL=append(tmp,black);
- );
- if(src=="cmyk" & dest=="rgb",
- black=sL_4;
- tmp=apply(sL,1-min(1,#*(1-black)+black));
- dL=tmp_(1..3);
- );
- if(src=="hsv" & dest=="cmyk",
- tmp=Colorcode("hsv","rgb",sL);
- dL=Colorcode("rgb","cmyk",tmp);
- );
- if(src=="cmyk" & dest=="hsv",
- tmp=Colorcode("cmyk","rgb",sL);
- dL=Colorcode("rgb","hsv",tmp);
- );
-
- if(src=="hsv" & dest=="hwb",
- tmp = Colorcode("hsv","rgb",sL);
- dL = Colorcode("rgb","hwb",tmp);
- );
- if(src=="hwb" & dest=="hsv",
- tmp = Colorcode("hwb","rgb",sL);
- dL = Colorcode("rgb","hsv",tmp);
- );
- if(src=="hsl" & dest=="hwb",
- tmp = Colorcode("hsl","rgb",sL);
- dL = Colorcode("rgb","hwb",tmp);
- );
- if(src=="hwb" & dest=="hsl",
- tmp = Colorcode("hwb","rgb",sL);
- dL = Colorcode("rgb","hsl",tmp);
- );
- if(src=="hsl" & dest=="cmyk",
- tmp = Colorcode("hsl","rgb",sL);
- dL = Colorcode("rgb","cmyk",tmp);
- );
- if(src=="hwb" & dest=="cmyk",
- tmp = Colorcode("hwb","rgb",sL);
- dL = Colorcode("rgb","cmyk",tmp);
- );
- if(src=="cmyk" & dest=="hsl",
- tmp = Colorcode("cmyk","rgb",sL);
- dL = Colorcode("rgb","hsl",tmp);
- );
- if(src=="cmyk" & dest=="hwb",
- tmp = Colorcode("cmyk","rgb",sL);
- dL = Colorcode("rgb","hwb",tmp);
- );
- if(src=="hsb" & dest=="rgb",dL=Colorcode("hsv","rgb",sL));
- if(src=="rgb" & dest=="hsb",dL=Colorcode("rgb","hsv",sL));
-
- if(src=="hsb" & dest=="hsl",dL=Colorcode("hsv","hsl",sL));
- if(src=="hsl" & dest=="hsb",dL=Colorcode("hsl","hsv",sL));
-
- if(src=="hsb" & dest=="hwb",dL=Colorcode("hsv","hwb",sL));
- if(src=="hwb" & dest=="hsb",dL=Colorcode("hwb","hsv",sL));
-
- if(src=="hsb" & dest=="cmyk",dL=Colorcode("hsv","cmyk",sL));
- if(src=="cmyk" & dest=="hsb",dL=Colorcode("cmyk","hsv",sL));
-
- dL;
-);
-
-Addcolor(cmdorg,list):=(
-//help:Addcolor("Plotdata('1','x^2','x',[])",[1,1,0]);
- regional(rgb,cmyk,cmd,tmp,tmp1,tmp2,tmp3,tmp4);
- cmd=replace(cmdorg,"'",Dq);
- if(length(list)==3,
- rgb=list;
- cmyk=Colorcode("rgb","cmyk",list);
- ,
- cmyk=list;
- rgb=Colorcode("cmyk","rgb",list);
- );
- tmp1="color->"+text(rgb);
- tmp2="Setcolor("+text(cmyk)+");";
- tmp3=substring(cmd,0,length(cmd)-2);
- tmp=substring(tmp3,length(tmp3)-1,length(tmp3));
- if(tmp!="[",
- tmp3=tmp3+",";
- );
- tmp3=tmp3+Dq+tmp1+Dq+"])";
- parse(tmp2);
- parse(tmp3);
- Setcolor("black");
-);
-
-Colorinfile(filename,clrf,clrt):=(
- regional(tmp,tmp1,tmp2,head,cstrL,chstrL,head,body);
- if(length(clrf_1)==3,
- head="[rgb]{";
- ,
- head="[cmyk]{";
- );
- tmp=apply(clrf,text(#));
- cstrL=apply(tmp,head+substring(#,1,length(#)-1)+"}");
- if(length(clrt_1)==3,
- head="[rgb]{";
- ,
- head="[cmyk]{";
- );
- tmp=apply(clrt,text(#));
- chstrL=apply(tmp,head+substring(#,1,length(#)-1)+"}");
- tmp1=load(filename);
- tmp=tokenize(tmp1,"{\unitlength");
- head=tokenize(tmp_1,"%%%");
- head=head_(2..length(head));
- head=apply(head,"%%%"+#);
- tmp2=tmp_2;
- forall(1..5,
- tmp2=replace(tmp2,cstrL_#,chstrL_#);
- );
- body=tokenize(tmp2,"%");
- body_1="{\unitlength"+body_1;
- body=apply(body,#+"%");
- body=body_(1..(length(body)-1));
- tmp=replace(filename,".tex","new.tex");
- SCEOUT=openfile(tmp);
- forall(head,
- println(SCEOUT,#);
- );
- forall(1..length(body),
- tmp=body_#;
- if(#<length(body),
- println(SCEOUT,tmp);
- ,
- print(SCEOUT,tmp)
- );
- );
- closefile(SCEOUT);
-);
-
-GetLinestyle(str,name):=(
- regional(noflg,tmp,tmp1,tmp2,Dop,Ltype,subflg);
- Ltype=-1;
- Dop="";
- tmp1=indexof(str,",");
- if(tmp1>0,
- Dop=","+substring(str,tmp1,length(str));
- );
- noflg=parse(substring(str,0,1));
- if(substring(name,0,3)=="sub",subflg=1,subflg=0); // 16.02.29
- tmp1=substring(str,1,3);
- if(tmp1=="dr" % tmp1=="Dr",
- Ltype=0;
- if(noflg==0 & subflg==0, // 16.02.29
- Drwline(name+Dop);
- );
- );
- if(tmp1=="da" % tmp1=="Da",
- Ltype=1;
- if(noflg==0 & subflg==0, // 16.02.29
- Dashline(name+Dop);
- );
- );
- if(tmp1=="id" % tmp1=="Id",
- Ltype=2; // 15.11.09
- if(noflg==0 & subflg==0, // 16.02.29
- Invdashline(name+Dop);
- );
- );
- if(tmp1=="do" % tmp1=="Do",
- Ltype=3;
- if(noflg==0 & subflg==0, // 16.02.29
- Dottedline(name+Dop);
- );
- );
- if(tmp1=="dp" % tmp1=="Dp",
- Ltype=0;
- tmp1=parse(name);
- tmp2="";
- forall(tmp1,
- tmp2=tmp2+textformat(#_1,5)+",";
- );
- tmp2=substring(tmp2,0,length(tmp2)-1);
- if(noflg==0,
- Drwpt(tmp2+Dop);
- );
- );
- if(tmp1=="no" % tmp1=="No",
- Ltype=10;
- );
- Ltype;
-);
-
-Chunderscore(str):=(
- regional(flg,tmp,tmp1,tmp2,tmp3);
- if(indexof(str,"]")>0,
- tmp1=replace(str,"]",",]");
- ,
- tmp1=str+",";
- );
- flg=0;
- tmp2=[];
- tmp3=0;
- forall(1..length(tmp1),
- if(flg==0,
- tmp=substring(tmp1,tmp3,length(tmp1));
- tmp=indexof(tmp,"_");
- if(tmp==0,
- flg=1;
- ,
- tmp3=tmp3+tmp;
- tmp=substring(tmp1,tmp3,length(tmp1));
- tmp=indexof(tmp,",")-1;
- tmp=substring(tmp1,tmp3,tmp3+tmp);
- tmp2=append(tmp2,tmp);
- );
- );
- );
- forall(tmp2,
- tmp1=replace(tmp1,"_"+#,"("+#+")");
- );
- if(indexof(str,"]")>0,
- tmp1=replace(tmp1,",]",")");
- tmp1=replace(tmp1,"[","list(");
- ,
- tmp1=substring(tmp1,0,length(tmp1)-1);
- );
- tmp1;
-);
-
-//AddGraph(pltdata):=AddGraph("-"+pltdata,pltdata,[]);
-AddGraph(nm,pltdata):=AddGraph(nm,pltdata,[]);
-// if(isstring(Arg2),
-// AddGraph(Arg1,Arg2,[]);
-// ,
-// if(MeasureDepth(Arg2)>0,
-// Addgraph(Arg1,Arg2,[]);
-// ,
-// Addgraph("-"+Arg1,Arg1,Arg2);
-// );
-// );
-//);
-AddGraph(nm,pltdata,options):=(
-//help:AddGraph("1","imp1"); // 16.04.04
-//help:Addgraph("1",["[pt1]","gr1"],["nodisp"]);
- regional(name,Ltype,Noflg,opcindy,pdata,fname,flg,
- tmp,tmp1,tmp2,tmp3);
- if(substring(nm,0,1)=="-",
- name=substring(nm,1,length(nm));
- ,
- name="ad"+nm;
- );
- tmp=Divoptions(options);
- Ltype=tmp_1;
- Noflg=tmp_2;
- opcindy=tmp_9;
- if(isstring(pltdata),
- pdata=parse(pltdata)
- ,
- if(!islist(pltdata),pdata=[pltdata],pdata=pltdata);
- pdata=apply(pdata,parse(#));
- ); // 15.01.22
- pdata=Flattenlist(pdata);
- tmp1=[];
- forall(pdata,tmp2,
- tmp=apply(tmp2,Pcrd(#));
- tmp1=append(tmp1,tmp);
- );
- if(length(tmp1)==1,tmp1=tmp1_1);
- pdata=tmp1;
- if(Noflg<3,
- println("generate addgraph "+name);
- tmp=name+"="+textformat(pdata,5);
- parse(tmp);
- if(isstring(pltdata), // 16.04.04 from
- if(indexof(pltdata,"]")>0,
- tmp1="list(Listplot("+substring(pltdata,1,length(pltdata));
- tmp1=replace(tmp1,"]",",]");
- ,
- tmp1="Listplot("+substring(pltdata,0,length(pltdata))+",]";
- );
- flg=0;
- tmp2=[];
- tmp3=0;
- forall(1..length(tmp1),
- if(flg==0,
- tmp=indexof(substring(tmp1,tmp3,length(tmp1)),"_");
- if(tmp==0,
- flg=1;
- ,
- tmp3=tmp3+tmp;
- tmp=indexof(substring(tmp1,tmp3,length(tmp1)),",")-1;
- tmp=substring(tmp1,tmp3,tmp3+tmp);
- tmp2=append(tmp2,tmp);
- );
- );
- );
- forall(tmp2,
- tmp1=replace(tmp1,"_"+#,"("+#+")");
- );
- tmp1=replace(tmp1,",]",")");
- tmp1=replace(tmp1,",","),Listplot(");
- if(indexof(pltdata,"[")>0,
- tmp1=tmp1+")";
- );
- GLIST=append(GLIST,name+"="+tmp1);
- ,
- if(MeasureDepth(pdata)==1,
- tmp1=name+"=Listplot("+textformat(pdata,5)+")";
- ,
- tmp1="list(";
- forall(1..length(pdata),
- tmp=name+"p"+textformat(#,5)+"=";
- if(length(pdata_#)>1, // 15.01.22
- tmp=tmp+"Listplot("+textformat(pdata_#,5)+")";
- ,
- tmp=tmp+"Pointdata("+textformat(pdata_#_1,5)+")";
- );
- GLIST=append(GLIST,tmp);
- tmp1=tmp1+name+"p"+textformat(#,5)+",";
- );
- tmp1=name+"="+substring(tmp1,0,length(tmp1)-1)+")";
- );
- GLIST=append(GLIST,tmp1);
- );
- ); // 16.04.04 upto
- if(Noflg<2,
- if(isstring(Ltype),
- Ltype=GetLinestyle(text(Noflg)+Ltype,name);
- ,
- if(Noflg==1,Ltype=0);
- );
- GCLIST=append(GCLIST,[name,Ltype,opcindy]);
- );
-);
-
-Joincrvs(nm,plotstrL):=Joincrvs(nm,plotstrL,[]);
-Joincrvs(nm,plotstrL,options):=(
-//help:Joincrvs("1",["sgAB","sgDCB"]);
- regional(plotlist,PtL,Eps,QdL,Flg,Ni,Qd,pP,pS,pQ,pR,rMN,
- opcindy,tmp,tmp1,tmp2,str,name,Ltype,Noflg);
- name="join"+nm;
- plotlist=[];
- forall(plotstrL,str,
- if(isstring(str),
- tmp=parse(str);
- tmp=apply(tmp,LLcrd(#));
- ,
- tmp=str;
- );
- plotlist=append(plotlist,tmp);
- );
- Eps=10^(-4);
- tmp=Divoptions(options);
- Ltype=tmp_1;
- Noflg=tmp_2;
- opcindy=tmp_(length(tmp));
- tmp1=tmp_6;
- if(length(tmp1)>0,Eps=tmp1_1);
- QdL=[];
- forall(plotlist,Qd,
- if(ispoint(Qd_1) % !islist(Qd_1_1),
- QdL=concat(QdL,[Qd]);
- ,
- forall(Qd,
- QdL=concat(QdL,[#]);
- );
- );
- );
- Flg=0;
- if(length(QdL)==0,
- PtL=[];
- Flg=1;
- );
- if(Flg==0,
- PtL=QdL_1;
- forall(2..length(QdL),Ni,
- Qd=QdL_Ni;
- if(Numptcrv(Qd)>1,
- pP=Ptend(PtL);
- pS=Ptstart(PtL);
- pQ=Ptstart(Qd);
- pR=Ptend(Qd);
- rMN=min([|pP-pQ|,|pP-pR|,|pS-pQ|,|pS-pR|]);
- if(rMN==|pP-pR|,
- Qd=reverse(Qd);
- ,
- if(rMN==|pS-pQ|,
- PtL=reverse(PtL);
- ,
- if(rMN==|pS-pR|,
- PtL=reverse(PtL);
- Qd=reverse(Qd);
- );
- );
- );
- );
- if(rMN>Eps,
- PtL=concat(PtL,Qd);
- ,
- PtL=concat(PtL,Qd_(2..length(Qd)));
- );
- );
- );
- if(Noflg<3,
- println("generate joincurve "+name);
- tmp1=apply(PtL,Pcrd(#));
- tmp=name+"="+textformat(tmp1,5);
- parse(tmp);
- tmp1="";
- forall(plotstrL,
- tmp1=tmp1+#+",";
- );
- tmp1=substring(tmp1,0,length(tmp1)-1);
- GLIST=append(GLIST,name+"=Joincrvs("+tmp1+")");
- );
- if(Noflg<2,
- if(isstring(Ltype),
- Ltype=GetLinestyle(text(Noflg)+Ltype,name);
- ,
- if(Noflg==1,Ltype=0);
- );
- GCLIST=append(GCLIST,[name,Ltype,opcindy]);
- );
- PtL;
-);
-
-Partcrv(nm,pA,pB,PkLstr):=Partcrv(nm,pA,pB,PkLstr,[]);
-Partcrv(nm,pA,pB,PkLstr,options):=(
-//help:Partcrv("1",A,B,"sgABC");
-//help:Partcrv("1",1.3,2.5,"sgABC");
- regional(PkL,Ans,Eps,Npt,Out1,Out2,tmp,tmp1,Flg,nS,nE,PPL,pP,
- opcindy,Ta,Tb,name,Ltype,Noflg,DepthFlg);
- name="part"+nm;
- if(isstring(PkLstr),PkL=parse(PkLstr),PkL=PkLstr);
- DepthFlg=0;
- if(MeasureDepth(PkL)==2,
- PkL=PkL_1;
- DepthFlg=1;
- );
- PkL=apply(PkL,LLcrd(#));
- tmp=Divoptions(options);
- Ltype=tmp_1;
- Noflg=tmp_2;
- opcindy=tmp_(length(tmp));
- Eps=10^(-3);
- Flg=0;
- if(isreal(pA),
- if(pA>pB+Eps,
- Npt=Numptcrv(PkL);
- Out1=Partcrv("",pA,Npt,PkLstr,["nodata"]);
- Out2=Partcrv("",1,pB,PkLstr,["nodata"]);
- tmp=Ptstart(PkL)-Ptend(PkL);
- if(|tmp|<Eps,
- Ans=Joincrvs("",[Out1,Out2],["nodata"]);
- ,
- Ans=[apply(Out1,Pcrd(#)),apply(Out2,Pcrd(#))];
- );
- Flg=1;
- );
- if(Flg==0,
- nS=ceil(pA);
- nE=floor(pB);
- PPL=[];
- if(pA<nS-Eps,
- pP=(nS-pA)*PkL_(nS-1)+(1-nS+pA)*PkL_nS;
- PPL=[pP];
- );
- PPL=concat(PPL,PkL_(nS..nE));
- if(pB>nE+Eps,
- pP=(1-pB+nE)*PkL_nE+(pB-nE)*PkL_(nE+1);
- PPL=concat(PPL,[pP]);
- );
- Ans=PPL;
- Flg=1;
- );
- );
- if(Flg==0,
- tmp=Nearestpt(LLcrd(Pcrd(pA)),PkL);
- Ta=tmp_2;
- tmp=Nearestpt(LLcrd(Pcrd(pB)),PkL); // 15.09.12
- Tb=tmp_2;
- Ans=Partcrv("",Ta,Tb,PkL,["nodata"] );
- Ans=apply(Ans,Pcrd(#));
- );
- if(Noflg<3,
- println("generate partcrv "+name);
- tmp1=apply(Ans,Pcrd(#));
- tmp=name+"="+textformat(tmp1,5);
- parse(tmp);
-// GLIST=append(GLIST, // 16.04.03
- if(DepthFlg==0,
- tmp=PkLstr;
- ,
- tmp=PkLstr+"(1)";
- );
- tmp1=name+"=Partcrv("+textformat(Lcrd(pA),5)
- +","+textformat(Lcrd(pB),5)+","+tmp+")"; // 16.04.03
- GLIST=append(GLIST,tmp1);
- );
- if(Noflg<2,
- if(isstring(Ltype),
- Ltype=GetLinestyle(text(Noflg)+Ltype,name);
- ,
- if(Noflg==1,Ltype=0);
- );
- GCLIST=append(GCLIST,[name,Ltype,opcindy]);
- );
- Ans;
-);
-
-Opcrvs(num,Fig):=Opcrvs(num,Fig,["nodisp"]);
-Opcrvs(num,Fig,options):=(
- //help:Subgraph(2,"grfs");
- regional(name,tmp,tmp1);
- name="-"+Fig+text(num);
- tmp=Fig+"_"+text(num);
- tmp1=parse(tmp);
- Listplot(name,tmp1,options);
-);
-
-
-Pointdata(nm,list):=Pointdata(nm,list,[]);
-Pointdata(nm,list,options):=(
-//help:Pointdata("1",[2,4],["Size=5"]);
-//help:Pointdata("2",[[2,3],[4,1]]);
- regional(name,nameL,ptlist,opstr,opcindy,
- eqL,size,thick,tmp,tmp1,tmp2,tmp3,Ltype,Noflg);
- name="pt"+nm;
- nameL=name+"L";
- println("generate pointdata "+name);
- tmp=Divoptions(options);
- Ltype=tmp_1;
- Noflg=tmp_2;
- opcindy=tmp_(length(tmp));
- opstr=tmp_(length(tmp)-1);
- size="";
- eqL=tmp_5;
- if(length(eqL)>0,
- forall(eqL,
- tmp=substring(#,0,1);
- if(tmp=="s" % tmp=="S",
- tmp=indexof(#,"=");
- size=substring(#,tmp,length(#));
- );
- );
- );
- tmp=MeasureDepth(list);
- if(tmp>0, // 2015.02.21
- if(tmp==1,ptlist=list,ptlist=list_1);
- tmp=apply(ptlist,[textformat(Pcrd(#),5)]);
- tmp1=text(tmp);
- tmp2=substring(tmp1,1,length(tmp1)-1);
- tmp3=tmp1;
- ,
- ptlist=list;
- tmp1=textformat(Pcrd(ptlist),5);
- tmp2=tmp1;
- tmp3="["+tmp1+"]";
- );
- tmp=name+"="+tmp1;
- parse(tmp);
- tmp=nameL+"="+tmp3;
- parse(tmp);
- if(Noflg<3,
- GLIST=append(GLIST,name+"=Pointdata("+tmp2+")");
- );
- if(Noflg<2,
- tmp=[nameL,0,opcindy];
- GCLIST=append(GCLIST,tmp);
- if(Noflg==0,
- if(length(size)>0,
- Com2nd("Setpt("+size+")");
- );
- thick=PenThick/PenThickInit; // 16.04.09 from
- if(length(size)>0,tmp1=parse(size),tmp1=1);
- tmp1=max(tmp1,1)/8;
- Setpen(tmp1); // 16.04.09 upto
- Com2nd("Drwpt(list("+name+")"+opstr+")");
- Setpen(thick); // 16.04.09
- if(length(size)>0,
- Com2nd("Setpt("+textformat(TenSize/TenSizeInit,1)+")");
- );
- );
- );
- ptlist;
-);
-
-Listplot(nm,list,options):=(
-//help:Listplot([A,B]);
-// help:Listplot(["A","B"]);
-//help:Listplot("1",[[2,1],[3,3]]);
-//help:Listplot(options2=["Msg=yes"]);
- regional(name,tmp,tmp1,ptlist,Ltype,opcindy,Noflg,eqL,Msg);
- if(substring(nm,0,1)=="-", // 16.01.27 from
- name=substring(nm,1,length(nm));
- ,
- name="sg"+nm;
- ); // upto
- tmp=Divoptions(options);
- Ltype=tmp_1;
- Noflg=tmp_2;
- eqL=tmp_5;
- opcindy=tmp_(length(tmp));
- Msg=1; // 15.09.17
- forall(eqL,
- tmp=substring(#,0,1);
- if(Toupper(tmp)=="M",
- tmp=indexof(#,"=");
- tmp1=substring(#,tmp,tmp+1); // 16.06.28
- if(Toupper(tmp1)=="N", // 16.06.28
- Msg=0;
- );
- );
- );
- if(Noflg<3,
- if(Msg==1,
- println("generate Listplot "+name);
- );
- if(isstring(list_1),tmp=apply(list,parse(#)),tmp=list); // 15.03.24
- ptlist=apply(tmp,Pcrd(#));
- tmp=name+"="+textformat(ptlist,5);
- parse(tmp);
- GLIST=append(GLIST,name+"=Listplot("+textformat(list,5)+")"); // 15.12.23
- );
- if(Noflg<2,
- if(isstring(Ltype),
- Ltype=GetLinestyle(text(Noflg)+Ltype,name);
- ,
- if(Noflg==1,Ltype=0);
- );
- GCLIST=append(GCLIST,[name,Ltype,opcindy]);
- );
- tmp1=apply(list,Lcrd(#));
- tmp1;
-);
-Listplot(Arg1,Arg2):=(
- regional(name,list,options,str);
- if(isstring(Arg1),
- name=Arg1;
- list=Arg2;
- Listplot(name,list,[]);
- ,
- list=Arg1;
- options=Arg2;
- name="";
- forall(list, // 16.10.07from
- name=name+#.name;
- );// 16.10.07upto
- Listplot(name,list,options);
- );
-);
-Listplot(list):=Listplot(list,[]);
-
-Lineplot(nm,list,options):=(
-//help:Lineplot([A,B]);
-//help:Lineplot("1",[[2,1],[3,3]]);
- regional(name,Out,tmp,tmp1,opstr,opcindy,Mag,Semi,
- Vec,pA,pB,Ltype,Noflg);
- name="ln"+nm;
- Mag=100;
- Semi="";
- tmp=Divoptions(options);
- Ltype=tmp_1;
- Noflg=tmp_2;
- opcindy=tmp_(length(tmp));
- opstr=tmp_(length(tmp)-1);
- tmp1=tmp_6;
- if(length(tmp1)>0,Mag=tmp1_1);
- tmp1=tmp_7;
- if(length(tmp1)>0,Semi=tmp1_1);
- pA=Lcrd(list_1); pB=Lcrd(list_2);
- Vec= Mag/dist(pA,pB)*(pB-pA);
- if(length(Semi)==0,
- Out=[pA-Vec,pA+Vec];
- ,
- if(Semi=="+",
- Out=[pA,pA+Vec];
- ,
- Out=[pA-Vec,pA];
- );
- );
- if(Noflg<3,
- println("generate Lineplot "+name);
- tmp1=apply(Out,Pcrd(#));
- tmp=name+"="+textformat(tmp1,5);
- parse(tmp);
- GLIST=append(GLIST,name+"=Lineplot("+textformat(list,5)+opstr+")");
- );
- if(Noflg<2,
- if(isstring(Ltype),
- Ltype=GetLinestyle(text(Noflg)+Ltype,name);
- ,
- if(Noflg==1,Ltype=0);
- );
- GCLIST=append(GCLIST,[name,Ltype,opcindy]);
- );
- Out;
-);
-Lineplot(Arg1,Arg2):=(
- regional(name,list,options,str);
- if(isstring(Arg1),
- name=Arg1;
- list=Arg2;
- Lineplot(name,list,[]);
- ,
- list=Arg1;
- options=Arg2;
- name="";
- forall(list, // 16.10.07from
- name=name+#.name;
- );// 16.10.07upto
- Lineplot(name,list,options);
- );
-);
-Lineplot(list):=Lineplot(list,[]);
-
-Plotdata(name1,func,variable):=Plotdata(name1,func,variable,[]);
-Plotdata(name1,func,variable,options):=(
-//help:Plotdata("1","sin(x)","x",["Num=100"]);
-//help:Plotdata("2","x^2","x=[-1,1]");
-//help:Plotdata("3","Fout(x)","x",["out"]);
- regional(Fn,Va,tmp,tmp1,tmp2,eqL,name,Vname,x1,x2,dx,
- PdL,QdL,Num,Ec,Dc,Fun,Exfun,x,Ke,Eps,Pa,
- Ltype,Noflg,Inflg,Outflg,opstr,opcindy);
- name="gr"+name1;
- tmp=Divoptions(options);
- Ltype=tmp_1;
- Noflg=tmp_2;
- Inflg=tmp_3;
- Outflg=tmp_4;
- opstr=tmp_(length(tmp)-1);
- opcindy=tmp_(length(tmp));
- eqL=tmp_5;
- Num=50;
- Ec=[];
- Exfun="";
- Dc=1000;
- forall(eqL,
- tmp=indexof(#,"=");
- tmp1=substring(#,tmp,length(#));
- opstr=opstr+",'"+#+"'";
- if(substring(#,0,1)=="N",
- Num=parse(tmp1);
- );
- if(substring(#,0,1)=="E",
- if(substring(tmp1,0,1)=="[",
- Ec=parse(tmp1);
- ,
- Exfun=tmp1;
- );
- );
- if(substring(#,0,1)=="D",
- Dc=parse(tmp1);
- );
- );
- if(Inflg==0 & Outflg==0,
- Eps=10^(-3);
- tmp=replace(func,LFmark,"");
- tmp=tokenize(variable,"=");
- Vname=tmp_1;
- if(length(tmp)>1,
- tmp=tmp_2;
- tmp=parse(tmp);
- x1=tmp_1;
- x2=tmp_2;
- ,
- x1=XMIN;
- x2=XMAX;
- );
- // dx=(x2-x2)/Num;
- Ec=append(sort(Ec),10000);
- Fun=Assign(func,Vname, "xx");
- Exfun=Assign(Exfun,Vname, "xx");
- PdL=[];
- Ke=1;
- forall(0..Num,
- xx=x1+#*(x2-x1)/Num; // differs from Scilab ( / Num-1)
- if(length(Exfun)>0,
- tmp=parse(Exfun);
- if(abs(tmp)<Eps,
- if(length(Pdt)>0,
- PdL=concat(PdL,["inf"]);
- );
- );
- ,
- Pa=[];
- if(xx-Ec_Ke<-Eps,
- Pa=[xx,parse(Fun)];
- );
- if(abs(xx-Ec_Ke)<=Eps,
- if(length(PdL)>0,
- if(PdL_(length(PdL))_1!="inf",
- Pa=["inf"];
- );
- );
- );
- if(xx-Ec_Ke>Eps,
- Pa=[xx,parse(Fun)];
- Ke=Ke+1;
- );
- if(length(Pa)>0,
- if(Pa_1=="inf",
- PdL=concat(PdL,[Pa]);
- ,
- if(length(PdL)==0,
- PdL=[Pa];
- ,
- tmp=PdL_(length(PdL));
- if(tmp_1=="inf",
- PdL=concat(PdL,[Pa]);
- ,
- if(dist(tmp,Pa)<Dc,
- PdL=concat(PdL,[Pa]);
- ,
- PdL=concat(PdL,[["inf"],Pa]);
- );
- );
- );
- );
- );
- );
- );
- tmp1=[];
- tmp2=select(1..length(PdL),PdL_#==["inf"]);
- tmp=1;
- forall(tmp2,
- if(#>tmp,
- tmp1=concat(tmp1,[PdL_(tmp..(#-1))])
- );
- tmp=#+1;
- );
- if(tmp<length(PdL),
- tmp1=concat(tmp1,[PdL_(tmp..length(PdL))]);
- );
- PdL=tmp1;
- if(length(PdL)==1,
- PdL=PdL_1;
- );
- if(Noflg<3,
- println("generate Plotdata "+name);
- if(MeasureDepth(PdL)==1,
- tmp1=apply(PdL,Pcrd(#));
- ,
- tmp1=[];
- forall(PdL,tmp2,
- tmp1=append(tmp1,apply(tmp2,Pcrd(#)));
- );
- );
- tmp=name+"="+textformat(tmp1,5);
- parse(tmp);
- tmp1=replace(func,LFmark,"");
- tmp2=replace(variable,LFmark,"");
- tmp=name+"=Plotdata('"+tmp1+"','"+tmp2+"'"+opstr+")";
- GLIST=append(GLIST,tmp);
- );
- if(Noflg<2,
- if(isstring(Ltype),
- Ltype=GetLinestyle(text(Noflg)+Ltype,name);
- ,
- if(Noflg==1,Ltype=0);
- );
- GCLIST=append(GCLIST,[name,Ltype,opcindy]);
- );
- PdL;
- ,
- // Inflg or Outflg >0 15.05.15
- if(Noflg<3,
- if(Outflg==1,
- println("Output Plotdata "+name);
- tmp=name+"=Plotdata('"+func+"','"+variable+"'"+opstr+")";
- GLIST=append(GLIST,tmp);
- SCIWRLIST=append(SCIWRLIST,name);
- if(Inflg==0,Inflg=1); // 15.05.17
- );
- if(Inflg==1,
- println("Input Plotdata "+name);
- if(length(SCIRELIST)==0,
- ReadOutData(Fnameout);
- );
- tmp=parse(name);
- if(islist(tmp),
- Extractdata(name,["nodisp"]); // 12.19
- );
- tmp="// "+name+"=Plotdata('"+func+"','"+variable+"'"+opstr+")";
- Com1st(tmp);
- SCIRELIST=append(SCIRELIST,name);
- );
- );
- if(Noflg<2,
- if(isstring(Ltype),
- Ltype=GetLinestyle(text(Noflg)+Ltype,name);
- ,
- if(Noflg==1,Ltype=0);
- );
- if(Inflg==1,
- GCLIST=append(GCLIST,[name,Ltype,opcindy]);
- );
- );
- );
-);
-
-Paramplot(name1,funstr,variable):=Paramplot(name1,funstr,variable,[]);
-Paramplot(name1,funstr,variable,options):=(
-//help:Paramplot("1","[2*cos(t),sin(t)]","t=[0,2*pi]");
- regional(name,Out,tmp,tmp1,tmp2,vname,func,str,Rng,Num,
- Ec,Exfun,Dc,eqL,Fntmp,Vatmp,t1,t2,dt,tt,pa,ke,
- Ltype,Noflg,Inflg,Outflg,opstr,opcindy);
- name="gp"+name1;
- Eps=10^(-4);
- tmp=Divoptions(options);
- Ltype=tmp_1;
- Noflg=tmp_2;
- Inflg=tmp_3;
- Outflg=tmp_4;
- opstr=tmp_(length(tmp)-1);
- opcindy=tmp_(length(tmp));
- eqL=tmp_5;
- Num=50;
- Ec=[];
- Exfun="";
- Dc=1000;
- forall(eqL,
- tmp=indexof(#,"=");
- tmp1=substring(#,tmp,length(#));
- opstr=opstr+",'"+#+"'";
- if(substring(#,0,1)=="N",
- Num=parse(tmp1);
- );
- if(substring(#,0,1)=="E",
- if(substring(tmp1,0,1)=="[",
- Ec=parse(tmp1);
- ,
- Exfun=tmp1;
- );
- );
- if(substring(#,0,1)=="D",
- Dc=parse(tmp1);
- );
- );
- if(Inflg==0 & Outflg==0,
- tmp=indexof(variable,"=");
- vname=substring(variable,0,tmp-1);
- str=substring(variable,tmp,length(variable));
- Rng=parse(str);
- t1=Rng_1; t2=Rng_2;
- dt=(t2-t1)/Num;// differs from Scilab ( / Num-1)
- func=Assign(funstr,vname,"tt");
- Out=[];
- Ec=append(sort(Ec),10000);
- ke=1;
- forall(0..Num,
- pt=[];
- tt=Rng_1+#*dt;
- if(tt-Ec_ke<-Eps,
- pa=parse(func);
- );
- if(abs(tt-Ec_ke)<=Eps,
- if(length(Out)>0,
- if(Out_(length(Out))_1!="inf",
- pa=["inf"];
- );
- );
- );
- if(tt-Ec_ke>Eps,
- pa=parse(func);
- ke=ke+1;
- );
- if(length(pa)>0,
- if(pa_1=="inf",
- Out=append(Out,pa);
- ,
- if(length(Out)==0,
- Out=[pa];
- ,
- tmp=Out_(length(Out));
- if(tmp_1=="inf",
- Out=append(Out,pa);
- ,
- if(|tmp-pa|<Dc,
- Out=append(Out,pa);
- ,
- Out=concat(Out,[["inf"],pa]);
- );
- );
- );
- );
- );
- );
- tmp1=[];
- tmp2=select(1..length(Out),Out_#==["inf"]);
- tmp=1;
- forall(tmp2,
- if(#>tmp,
- tmp1=concat(tmp1,[Out_(tmp..(#-1))])
- );
- tmp=#+1;
- );
- if(tmp<length(Out),
- tmp1=concat(tmp1,[Out_(tmp..length(Out))]);
- );
- Out=tmp1;
- if(length(Out)==1,
- Out=Out_1;
- );
- if(Noflg<3,
- println("generate Paramplot "+name);
- if(MeasureDepth(Out)==1,
- tmp1=apply(Out,Pcrd(#));
- ,
- tmp1=[];
- forall(Out,tmp2,
- tmp1=append(tmp1,apply(tmp2,Pcrd(#)));
- );
- );
- tmp=name+"="+textformat(tmp1,5);
- parse(tmp);
- tmp1=replace(funstr,LFmark,""); // 15.11.13
- tmp2=replace(variable,LFmark,"");
- tmp=name+"=Paramplot('"+tmp1+"','"+tmp2+"'"+opstr+")";
- GLIST=append(GLIST,tmp);
- );
- if(Noflg<2,
- if(isstring(Ltype),
- Ltype=GetLinestyle(text(Noflg)+Ltype,name);
- ,
- if(Noflg==1,Ltype=0);
- );
- GCLIST=append(GCLIST,[name,Ltype,opcindy]);
- );
- Out;
- ,
- // Inflg or Outflg >0 15.05.15
- if(Noflg<3,
- if(Outflg==1,
- println("Output Paramplot "+name);
- tmp=name+"=Paramplot('"+funstr+"','"+variable+"'"+opstr+")";
- GLIST=append(GLIST,tmp);
- SCIWRLIST=append(SCIWRLIST,name);
- if(Inflg==0,Inflg=1); // 15.05.17
- );
- if(Inflg==1,
- println("Input Paramplotdata "+name);
- if(length(SCIRELIST)==0,
- ReadOutData(Fnameout);
- );
- tmp=parse(name);
- if(islist(tmp),
- Extractdata(name,["nodisp"]); // 12.19
- );
- tmp="// "+name+"=Paramplot('"+func+"','"+variable+"'"+opstr+")";
- Com1st(tmp);
- SCIRELIST=append(SCIRELIST,name);
- );
- );
- if(Noflg<2,
- if(isstring(Ltype),
- Ltype=GetLinestyle(text(Noflg)+Ltype,name);
- ,
- if(Noflg==1,Ltype=0);
- );
- if(Inflg==1,
- GCLIST=append(GCLIST,[name,Ltype,opcindy]);
- );
- );
- );
-);
-
-Circledata(cenrad):=Circledata(cenrad,[]);
-Circledata(para1,para2):=(
-//help:Circledata([A,B],["Rng=[0,pi/2]"]);
-//help:Circledata([A,B,C]);
- regional(name,cenrad,options,str,n);
- if(isstring(para1),
- name=para1;
- cenrad=para2;
- options=[];
- ,
- cenrad=para1;
- options=para2;
- name="";// 16.10.07from
- forall(cenrad,
- name=name+#.name;
- );// 16.10.07upto
- );
- Circledata(name,cenrad,options);
-);
-Circledata(nm,cenrad,options):=(
- regional(name,Out,Ctr,Ptcir,ra,Num,Rg,opstr,opcindy,
- tmp,tmp1,tmp1,Th,Ltype,Noflg,eqL,pA,pB,pC,d1,d2,Eps);
- name="cr"+nm;
- tmp=Divoptions(options);
- Ltype=tmp_1;
- Noflg=tmp_2;
- opstr=tmp_(length(tmp)-1);
- opcindy=tmp_(length(tmp));
- eqL=tmp_5;
- Num=50;
- Rg=[0,2*pi];
- forall(eqL,
- tmp=indexof(#,"=");
- tmp1=substring(#,tmp,length(#));
- opstr=opstr+",'"+#+"'";
- if(substring(#,0,1)=="N",
- Num=parse(tmp1);
- );
- if(substring(#,0,1)=="R",
- Rg=parse(tmp1);
- );
- );
- if(length(cenrad)==2,
- Ctr=Lcrd(cenrad_1);
- Ptcir=Lcrd(cenrad_2);
- ra=dist(Ctr,Ptcir);
- ,
- Eps=10^(-1);
- pA=Lcrd(cenrad_1);
- pB=Lcrd(cenrad_2);
- pC=Lcrd(cenrad_3);
- tmp=pB-pA;
- tmp1=(tmp_2,-tmp_1);
- tmp=pC-pB;
- tmp2=(tmp_2,-tmp_1);
- d1=det([tmp1,tmp2]);
- d2=det([pC-pA,tmp2]);
- if(abs(d1)<Eps & abs(d2)>10*Eps,
- println("points are in a line");
- ra=0;
- ,
- Ctr=1/2*(pA+pB)+1/2*d2/d1*tmp1;
- ra=|pA-Ctr|;
- tmp=name+"center="+Ctr;
- parse(tmp);
- Defvar(name+"center",Ctr);
- );
- );
- if(ra>0,
- Out=[];
- forall(0..Num,
- Th=Rg_1+#*(Rg_2-Rg_1)/Num;
- Out=append(Out,Ctr+ra*[cos(Th),sin(Th)]);
- );
- ,
- Out=Lineplot("1",[pA,pB],["nodata"]);
- );
- if(Noflg<3,
- println("generate Circledata "+name);
- tmp1=apply(Out,Pcrd(#));
- tmp=name+"="+textformat(tmp1,5);
- parse(tmp);
- if(length(cenrad)==2,
- tmp=name+"=Circledata("+cenrad+opstr+")";
- ,
- if(ra>0,
- tmp=name+"=Circledata(["+Ctr+","+cenrad_1+"]"+opstr+")";
- ,
- tmp=name+"=Lineplot("+cenrad_1+","+cenrad_2+")";
- );
- );
- GLIST=append(GLIST,tmp);
- );
- if(Noflg<2,
- if(isstring(Ltype),
- Ltype=GetLinestyle(text(Noflg)+Ltype,name);
- ,
- if(Noflg==1,Ltype=0);
- );
- GCLIST=append(GCLIST,[name,Ltype,opcindy]);
- );
- Out;
-);
-
-Framedata():=(
- regional(pA,pB);
- pA=LLcrd((SW+NE)/2); // 15.09.17
- pB=LLcrd(NE);
- Framedata("win",[pA,pB]);
-);
-Framedata(list):=Framedata(list,[]);
-Framedata(Arg1,Arg2):=(
- regional(name,list,options,str);
- if(isstring(Arg1),
- name=Arg1;
- list=Arg2;
- Framedata(name,list,[]);
- ,
- list=Arg1;
- options=Arg2;
- name="";// 16.10.07from
- forall(list,
- name=name+#.name;
- );// 16.10.07upto
- Framedata(name,list,options);
- );
-);
-
-Framedata(nm,list,options):=(
-//help:Framedata();
-//help:Framedata([A,B]);
-//help:Framedata("1",[A,B]);
-//help:Framedata("1",[C,dx,dy]);
- regional(name,Out,tmp,tmp1,pB,x1,x2,y1,y2,dx,dy,
- opcindy,Ltype,Noflg,cent,dx,dy);
- name="fr"+nm;
- tmp=Divoptions(options);
- Ltype=tmp_1;
- Noflg=tmp_2;
- opcindy=tmp_(length(tmp));
- if(length(list)==2, // 15.05.12
- pA=Lcrd(list_1); pB=Lcrd(list_2);
- dx=abs(pB_1-pA_1); dy=abs(pB_2-pA_2);
- ,
- pA=Lcrd(list_1);
- dx=list_2; dy=list_3;
- );
- x1=pA_1-dx; x2=pA_1+dx;
- y1=pA_2-dy; y2=pA_2+dy;
- Out=[[x1,y1],[x2,y1],[x2,y2],[x1,y2],[x1,y1]];
- if(Noflg<3,
- println("generate Framedata "+name);
- tmp1=apply(Out,Pcrd(#));
- tmp=name+"="+textformat(tmp1,5);
- parse(tmp);
- GLIST=append(GLIST,name+"=Framedata("+pA+","+dx+","+dy+")");
- );
- if(Noflg<2,
- if(isstring(Ltype),
- Ltype=GetLinestyle(text(Noflg)+Ltype,name);
- ,
- if(Noflg==1,Ltype=0);
- );
- GCLIST=append(GCLIST,[name,Ltype,opcindy]);
- );
- Out;
-);
-Framedata(nm,cent,dx,dy):=Framedata(nm,cent,dx,dy,[]);
-Framedata(nm,cent,dx,dy,options):=(
- regional(name,Out,tmp,tmp1,x1,y1,x2,y2,Ltype,opcindy,Noflg);
- name="fr"+nm;
- tmp=Divoptions(options);
- Ltype=tmp_1;
- Noflg=tmp_2;
- opcindy=tmp_(length(tmp));
- x1=cent.x-dx; x2=cent.x+dx;
- y1=cent.y-dy; y2=cent.y+dy;
- Out=[[x1,y1],[x2,y1],[x2,y2],[x1,y2],[x1,y1]];
- if(Noflg<3,
- println("generate Framedata "+name);
- tmp1=apply(Out,Pcrd(#));
- tmp=name+"="+textformat(tmp1,5);
- parse(tmp);
- GLIST=append(GLIST,name+"=Framedata("+cent.xy+","+dx+","+dy+")");
- );
- if(Noflg<2,
- if(isstring(Ltype),
- Ltype=GetLinestyle(text(Noflg)+Ltype,name);
- ,
- if(Noflg==1,Ltype=0);
- );
- GCLIST=append(GCLIST,[name,Ltype,opcindy]);
- );
- Out;
-);
-
-Framedata2(nm,list):=Framedata2(nm,list,[]);
-Framedata2(nm,list,options):=(
-//help:Framedata2("1",[A,B]);
- regional(tmp,tmp1,pC,pB);
- pC=(Lcrd(list_1)+Lcrd(list_2))/2;
- pB=Lcrd(list_2);
- Framedata(nm,[pC,pB],options);
-);
-
-Ovaldata(nm,Pdata):=Ovaldata(nm,Pdata,[]);
-Ovaldata(nm,Pdata,options):=(
-//help:Ovaldata("1",[A,B]);
-//help:Ovaldata(optios=[size]);
- regional(name,Graph,Ctr,Dx,Dy,Rc,Out,Point,Graph,
- opstr,opcindy,tmp,tmp1,tmp2,tmp3,Ltype,Noflg);
- name="ov"+nm;
- tmp=Divoptions(options);
- Ltype=tmp_1;
- Noflg=tmp_2;
- opcindy=tmp_(length(tmp));
- opstr=tmp_(length(tmp)-1);
- Rc=0.2;
- tmp1=tmp_6;
- if(length(tmp1)>0,Rc=tmp1_1*Rc);
-// if(length(tmp1)>0,Rc=tmp1_1); //15.11.15
- Ctr=Lcrd(Pdata_1);
- if(ispoint(Pdata_2) % islist(Pdata_2),
- tmp1=Lcrd(Pdata_2);
- Dx=abs(tmp1_1-Ctr_1);
- Dy=abs(tmp1_2-Ctr_2);
- ,
- Dx=Pdata_2;
- Dy=Pdata_3;
- );
- Point=Ctr+[Dx-Rc,Dy-Rc];
- tmp1=Circledata("1",[Point,Point+[Rc,0]],
- ["Rng=[0,pi/2]","Num=10","nodata"]);
- tmp2=Listplot("1",[Ctr+[Dx-Rc,Dy],Ctr+[0,Dy]],
- ["nodata"]);
- tmp3=Listplot("2",[Ctr+[Dx,0],Ctr+[Dx,Dy-Rc]],
- ["nodata"]);
- Graph=Joincrvs("1",[tmp3,tmp1,tmp2],["nodata"]);
- tmp1=Reflectdata("1",[Graph],[Ctr,Ctr+[0,1]],["nodata"]);
- Graph=Joincrvs("1",[Graph,tmp1],["nodata"]);
- tmp2=Reflectdata("2",[Graph],[Ctr,Ctr+[1,0]],
- ["nodata"]);
- Graph=Joincrvs("2",[Graph,tmp2],["nodata"]);
- if(Noflg<3,
- println("generate Ovaldata "+name);
- tmp1=apply(Graph,Pcrd(#));
- tmp=name+"="+textformat(tmp1,5);
- parse(tmp);
- GLIST=append(GLIST,
- name+"=Ovaldata("+Ctr+","+Dx+","+Dy+opstr+")");//16.01.30
- );
- if(Noflg<2,
- if(isstring(Ltype),
- Ltype=GetLinestyle(text(Noflg)+Ltype,name);
- ,
- if(Noflg==1,Ltype=0);
- );
- GCLIST=append(GCLIST,[name,Ltype,opcindy]);
- tmp1=apply(Graph,Pcrd(#));
- tmp=name+"="+textformat(tmp1,5);
- parse(tmp);
- tmp=textformat(Ctr,5)+","+textformat(Dx,5)+","+textformat(Dy,5);
- GLIST=append(GLIST,
- name+"=Ovaldata("+tmp+opstr+")");
- );
- Graph;
-);
-
-Segmark(nm,ptlist):=Segmark(nm,ptlist,[]);
-Segmark(nm,ptlist,options):=Drawsegmark(nm,ptlist,options);
-Drawsegmark(nm,ptlist):=Drawsegmark(nm,ptlist,[]);
-Drawsegmark(nm,ptlist,options):=(
-//help:Segmark("1",[A,B]);
-//help:Segmark(options=["Type=1","Width=1","Size=1"]);
- regional(name,pA,pB,wid,mid,size,tp,dir,nor,eqL,
- tmp,tmp1,tmp2);
- name="mrk"+nm;
- pA=ptlist_1;
- pB=ptlist_2;
- size=0.15;
- wid=0.05;
- tp=1;
- tmp1=Divoptions(options);
- eqL=tmp1_5;
- forall(eqL,
- tmp=indexof(#,"=");
- tmp1=substring(#,tmp,length(#));
- tmp1=parse(tmp1);
- tmp=substring(#,0,1);
- if(tmp=="S" % tmp=="s",
- size=size*tmp1;
- );
- if(tmp=="W" % tmp=="w",
- wid=wid*tmp1;
- );
- if(tmp=="T" % tmp=="t",
- tp=tmp1;
- );
- );
- mid=(pA+pB)/2;
- dir=(pB-pA)/|pB-pA|;
- nor=[-dir_2,dir_1];
-// nor=nor/|nor|;
- if(tp==1,
- tmp1=mid+size*nor;
- tmp2=mid-size*nor;
- Listplot(name,[tmp1,tmp2]);
- );
- if(tp==2,
- tmp1=mid+wid*dir+size*nor;
- tmp2=mid+wid*dir-size*nor;
- Listplot(name+"r",[tmp1,tmp2]);
- tmp1=mid-wid*dir+size*nor;
- tmp2=mid-wid*dir-size*nor;
- Listplot(name+"l",[tmp1,tmp2]);
- );
- if(tp==3,
- tmp1=mid;
- tmp2=mid+size*dir;
- Circledata(name,[tmp1,tmp2]);
- );
- if(tp==4,
- tmp=mid+size*2/sqrt(3)*nor;
- tmp1=mid+size*dir-size/sqrt(3)*nor;
- tmp2=mid-size*dir-size/sqrt(3)*nor;
- Listplot(name,[tmp,tmp1,tmp2,tmp]);
- );
-);
-
-Parabolaplot(nm,ptlist):=Parabolaplot(nm,ptlist,"[-5,5]",[]);
-Parabolaplot(nm,ptlist,Arg):=(
- regional(rng,options);
- if(isstring(Arg),
- rng=Arg;
- options=[];
- ,
- rng="[-5,5]";
- options=Arg;
- );
- Parabolaplot(nm,ptlist,rng,options);
-);
-Parabolaplot(nm,ptlist,rng,options):=(
-//help:Parabolaplot("1",[A,B,C]):
-//help:Parabolaplot("1",[A,B,C],"[-5,5]");
- regional(pA,pB,pC,angle,tmp,tmp1,tmp2);
- tmp1=Lcrd(ptlist_1);
- tmp2=Lcrd(ptlist_3);
- pB=Lcrd(ptlist_2);
- tmp=(tmp2-pB)/|tmp2-pB|;
- if(tmp_2>=0,
- angle=arccos(tmp_1);
- ,
- if(tmp_1>=0,
- angle=arcsin(tmp_2);
- ,
- angle=-arccos(tmp_1);
- );
- );
- pA=Rotatepoint(tmp1,-angle,pB);
- pC=Rotatepoint(tmp2,-angle,pB);
- tmp1=1/(2*(pA_2-pB_2));
- tmp2=1/2*(pA_2+pB_2);
- tmp="("+format(tmp1,5)+")*(x-("+format(pA_1,5)+"))^2";
- tmp=tmp+"+("+format(tmp2,5)+")";
- tmp1=parse(rng);
- tmp1=[pA_1-(tmp1_2-tmp1_1)/2,pA_1+(tmp1_2-tmp1_1)/2];
- tmp2="x="+textformat(tmp1,5);
- Plotdata(nm+"para",tmp,tmp2,append(options,"nodisp"));
- Rotatedata(nm+"para","gr"+nm+"para",angle,append(options,pB));
-);
-
-Ellipseplot(nm,ptlist):=Ellipseplot(nm,ptlist,"[0,2*pi]",[]);
-Ellipseplot(nm,ptlist,Arg):=(
- regional(rng,options);
- if(isstring(Arg),
- rng=Arg;
- options=[];
- ,
- rng="[0,2*pi]";
- options=Arg;
- );
- Ellipseplot(nm,ptlist,rng,options);
-);
-Ellipseplot(nm,ptlist,rng,options):=(
-//help:Ellipseplot("1",[A,B,3]);
-//help:Ellipseplot("1",[A,B,C],"[0,pi]",[options]);
- regional(pA,pB,d,angle,f,a,b,pM,tmp,tmp1,tmp2);
- pA=Lcrd(ptlist_1);
- tmp1=Lcrd(ptlist_2);
- if(ispoint(ptlist_3),
- tmp2=Lcrd(ptlist_3);
- d=|tmp2-pA|+|tmp2-tmp1|;
- ,
- d=ptlist_3;
- );
- tmp=(tmp1-pA)/|tmp1-pA|;
- if(tmp_2>=0,
- angle=arccos(tmp_1);
- ,
- if(tmp_1>=0,
- angle=arcsin(tmp_2);
- ,
- angle=-arccos(tmp_1);
- );
- );
- pB=Rotatepoint(tmp1,-angle,pA);
- f=|pB_1-pA_1|/2;
- a=d/2;
- b=sqrt(d^2/4-f^2);
- pM=(pA+pB)/2;
- tmp="["+format(pM_1,5)+","+format(pM_2,5)+"]";
- tmp=tmp+"+["+format(a,5)+"*cos(t),"+format(b,5)+"*sin(t)]";
- Paramplot(nm+"elp",tmp,"t="+rng,append(options,"nodisp"));
- Rotatedata(nm+"elp","gp"+nm+"elp",angle,append(options,pA));
-);
-
-Hyperbolaplot(nm,ptlist):=Hyperbolaplot(nm,ptlist,"[-5/2,5/2]",[]);
-Hyperbolaplot(nm,ptlist,Arg):=(
- regional(rng,options);
- if(isstring(Arg),
- rng=Arg;
- options=[];
- ,
- rng="[-5/2,5/2]";
- options=Arg;
- );
- Hyperbolaplot(nm,ptlist,rng,options);
-);
-Hyperbolaplot(nm,ptlist,rng,optionsorg):=(
-//help:Hyperbolaplot("1",[A,B,C],["Num=200"]):
-//help:Hyperbolaplot("1",[A,B,C],"[-5,5]",["Asy=do"]);
- regional(pA,pB,d,angle,f,a,b,pM,eqL,options,opasy,tmp,tmp1,tmp2);
- tmp=Divoptions(optionsorg);
- eqL=tmp_5;
- options=optionsorg;
- opasy=[];
- forall(eqL,
- if(Toupper(substring(#,0,1))=="A",
- tmp=indexof(#,"=");
- opasy=[substring(#,tmp,length(#))];
- options=remove(options,[#]);
- );
- );
- pA=Lcrd(ptlist_1);
- tmp1=Lcrd(ptlist_2);
- if(ispoint(ptlist_3),
- tmp2=Lcrd(ptlist_3);
- d=abs(|tmp2-pA|-|tmp2-tmp1|);
- ,
- d=ptlist_3;
- );
- tmp=(tmp1-pA)/|tmp1-pA|;
- if(tmp_2>=0,
- angle=arccos(tmp_1);
- ,
- if(tmp_1>=0,
- angle=arcsin(tmp_2);
- ,
- angle=-arccos(tmp_1);
- );
- );
- pB=Rotatepoint(tmp1,-angle,pA);
- f=|pB_1-pA_1|/2;
- a=d/2;
- b=sqrt(f^2-d^2/4);
- pM=(pA+pB)/2;
- tmp="["+format(pM_1,5)+"+"+format(a,5)+"*(exp(t)+exp(-t))/2,";
- tmp=tmp+format(pM_2,5)+"+"+format(b,5)+"*(exp(t)-exp(-t))/2]";
- Paramplot(nm+"hyp1",tmp,"t="+rng,append(options,"nodisp"));
- tmp="["+format(pM_1,5)+"-"+format(a,5)+"*(exp(t)+exp(-t))/2,";
- tmp=tmp+format(pM_2,5)+"+"+format(b,5)+"*(exp(t)-exp(-t))/2]";
- Paramplot(nm+"hyp2",tmp,"t="+rng,append(options,"nodisp"));
- tmp=["gp"+nm+"hyp1","gp"+nm+"hyp2"];
- Rotatedata(nm+"hyp",tmp,angle,append(options,pA));
- if(length(opasy)>0,
- Lineplot(nm+"asy1",[pM+[a,b],pM+[-a,-b]],["nodisp"]);
- Lineplot(nm+"asy2",[pM+[-a,b],pM+[a,-b]],["nodisp"]);
- tmp=["ln"+nm+"asy1","ln"+nm+"asy2"];
- Rotatedata(nm+"asy",tmp,angle,append(opasy,pA));
- );
-);
-
-Polygonplot(nm,ptlist,number):=Polygonplot(nm,ptlist,number,[]);
-Polygonplot(nm,ptlist,number,options):=(
-//help:Polygonplot("1",[A,B],12);
- regional(rr,pA,pB,ptL,angle,tmp,tmp1,tmp2);
- pA=Lcrd(ptlist_1);
- pB=Lcrd(ptlist_2);
- rr=|pB-pA|;
- tmp=(pB-pA)/rr;
- if(tmp_2>=0,
- angle=arccos(tmp_1);
- ,
- if(tmp_1>=0,
- angle=arcsin(tmp_2);
- ,
- angle=-arccos(tmp_1);
- );
- );
- ptL=[];
- forall(0..number,
- tmp=angle+#*2*pi/number;
- tmp1=pA+rr*[cos(tmp),sin(tmp)];
- if(#>0 & #<number,
- Putpoint((ptlist_2).name+text(#),tmp1);//16.10.07
- //Pointdata(nm,ptL);
- );
- tmp2=tmp1;
- ptL=append(ptL,tmp1);
- );
- Listplot(nm+"ply",ptL,options);
-);
-
-Putintersect(nm,pdata1,pdata2):=(
-//help:Putintersect("Q","gr1","gr2");
- regional(pd1,pd2,tmp);
- if(isstring(pdata1),pd1=parse(pdata1),pd1=pdata1);
- if(isstring(pdata2),pd2=parse(pdata2),pd2=pdata2);
- tmp=Intersectcrvs(pd1,pd2);
- if(length(tmp)==1,
- Putpoint(nm,tmp_1);
- ,
- if(length(tmp)==0,
- err("No intersect point");
- ,
- err("Multiple intersect points");
- println(tmp);
- err("Choose point number");
- );
- );
-);
-Putintersect(nm,pdata1,pdata2,ptno):=(
- regional(pd1,pd2,tmp);
- if(isstring(pdata1),pd1=parse(pdata1),pd1=pdata1);
- if(isstring(pdata2),pd2=parse(pdata2),pd2=pdata2);
- tmp=Intersectcrvs(pd1,pd2);
- if(length(tmp)>0,
- Putpoint(nm,tmp_ptno);
- ,
- err("No intersect point");
- );
-);
-
-Arrowheaddata(point,direction):=Arrowheaddata(point,direction,[]);
-Arrowheaddata(point,direction,options):=(
-//help:Arrowheaddata(A,B);
- regional(list,Ookisa,Hiraki,Futosa,Houkou,Str,Flg,tmp,Ev,Nv,pA,pB,
- pP,rF,gG,Flg,Nj,Eps,tmp1,scx,scy);
- Eps=10^(-3);
- pP=point;
- Ookisa=0.2*YaSize;
- Hiraki=YaAngle;
- Futosa=0;
- Str=YaStyle;
- tmp=Divoptions(options);
- tmp1=tmp_6;
- if(length(tmp1)>0,Ookisa=Ookisa*tmp1_1);
- if(length(tmp1)>1,
- tmp=tmp1_2;
- if(tmp<5,
- Hiraki=Hiraki*tmp;
- ,
- Hiraki=tmp;
- );
- );
- Flg=0;
- Hiraki=Hiraki*pi/180;
- if(isstring(direction),Houkou=parse(direction),Houkou=direction);
- if(MeasureDepth(Houkou)==2,Houkou=Houkou_1);
- if(islist(Houkou_1),
-// pP=Lcrd(pP);
-// pP=Doscaling(pP);
-// Houkou=Dosscaling(Houkou);
- pP=Pcrd(pP);
- scy=SCALEY;
- SCALEY=1;
- tmp=Nearestpt(pP,Houkou);
- pA=tmp_1;
- rF=floor(tmp_2);
- if(rF==1,
- if(|Ptend(Houkou)-Ptstart(Houkou)|<Eps,
- rF=Numptcrv(Houkou);
- );
- );
- gG=apply(0..10,pP+Ookisa*cos(Hiraki)*[cos(2*pi/10*#),sin(2*pi/10*#)]);
- Flg=0;
- forall(1..rF,Nj,
- if(Flg==0,
- pB=Ptcrv(rF+1-Nj,Houkou);
- tmp=IntersectcrvsPp([pA,pB],gG);
- if(length(tmp)>0,
- Houkou=pP-tmp_1_1;
- Flg=1;
- );
- pA=pB;
- );
- );
- SCALEY=scy;
- if(Flg==0,
- println("Arrowhead may be too large (no intersect)");
- Flg=2;
- );
- if(Flg==1,
- Houkou=Unscaling(Houkou);
- pP=Unscaling(pP);
- );
- );
- if(Flg<2,
-// pP=Doscaling(pP);
-// Houkou=Doscaling(Houkou);
- pP=Pcrd(pP);
- if(!ispoint(point),
- Houkou=Pcrd(Houkou);
- );
-// if(MeasureDepth(Houkou)==0,Houkou=Pcrd(Houkou));
- Ev=-1/|Houkou|*Houkou;
- Ev=Lcrd(Ev);
- Nv=[-Ev_2, Ev_1];
- if(indexof(Str,"c")>0,
- pP=pP-0.5*Ookisa*cos(Hiraki)*Ev;
- );
- if(indexof(Str,"b")>0,
- pP=pP-Ookisa*cos(Hiraki)*Ev;
- );
- pA=pP+Ookisa*cos(Hiraki)*Ev+Ookisa*sin(Hiraki)*Nv;
- pB=pP+Ookisa*cos(Hiraki)*Ev-Ookisa*sin(Hiraki)*Nv;
- list=[pA,pP,pB];
- list=apply(list,LLcrd(#));
-// Out=Unscaling(Out);
- list;
- );
-);
-
-Arrowhead(point,Houkou):=Arrowhead(point,Houkou,[]);
-Arrowhead(point,Houkou,options):=(
-//help:Arrowhead(B,B-A,[1.5,30]);
-//help:Arrowhead(A,"gr1");
- // global ArrowheadNumber
- regional(name,Ltype,Noflg,reL,opstr,opcindy,ptstr,hostr,tmp,tmp1,list);
- name="arh"+text(ArrowheadNumber);
- ArrowheadNumber=ArrowheadNumber+1;
- ptstr=textformat(point,5);
- if(isstring(Houkou), // 15.01.11
- tmp=parse(Houkou);
- if(MeasureDepth(tmp)<2,
- hostr=Houkou;
- ,
- hostr=Houkou+"(1)";
- );
- ,
- if(ispoint(point),
- hostr=textformat(LLcrd(Houkou),5);
- ,
- hostr=textformat(Houkou,5);
- );
- );
- tmp=Divoptions(options);
- Ltype=tmp_1;
- Noflg=tmp_2;
- reL=tmp_6;
- opstr=tmp_(length(tmp)-1);
- opcindy=tmp_(length(tmp));
- list=Arrowheaddata(point,Houkou,options);
- if(Noflg<3,
-// println("generate Arrowhead "+name);
- tmp1=apply(list,Pcrd(#));
- tmp=name+"="+textformat(tmp1,5);
- parse(tmp);
-// GLIST=append(GLIST,name+"=Listplot("+list+")");
- );
- if(Noflg<2,
- if(isstring(Ltype),
- Ltype=GetLinestyle(text(1)+Ltype,name);
- ,
-// if(Noflg==1,Ltype=0);
- Ltype=0;
- );
- GCLIST=append(GCLIST,[name,Ltype,opcindy]);
- );
- if(Noflg==0,
- if(length(reL)<3, // 16.04.09 from
- forall(1..(2-length(reL)),
- opstr=opstr+",1";
- );
- tmp=PenThick/PenThickInit;
- opstr=opstr+","+text(tmp);
- ); // 16.04.09 upto
- Com2nd("Arrowhead("+ptstr+","+hostr+opstr+")");
- );
-);
-
-Arrowdata(ptlist):=Arrowdata(ptlist,[]);
-Arrowdata(Arg1,Arg2):=(
- regional(tmp,nm,ptlist,flg,pA,pB,options);
- flg=0;
- if(isstring(Arg1),
- nm=Arg1;
- ptlist=Arg2;
- Arrowdata(nm,ptlist,[]);
- flg=1;
- );
- if(flg==0,
- tmp=MeasureDepth(Arg1);
- if(tmp==0,
- pA=Arg1;
- pB=Arg2;
- Arrowdata(pA,pB,[]);
- ,
- ptlist=Arg1;
- options=Arg2;
- nm=text(ArrowlineNumber);
- ArrowlineNumber=ArrowlineNumber+1;
- Arrowdata(nm,ptlist,options);
- );
- );
-);
-Arrowdata(Arg1,Arg2,options):=(
-//help:Arrowdata([A,B],[2,10]);
- regional(Retflg,nm,ptlist,name,opstr,opcindy,realL,strL,size,
- flg,Ltype,Noflg,lineflg,tmp,tmp1,tmp2,pA,pB,segpos);
- Retflg=0;
- Noflg=0;
- Ltype=0;
- if(!isstring(Arg1),
- pA=Arg1;
- pB=Arg2;
- Arrowdata(pA,pB,options,"old");
- Retflg=1;
- ptlist=[pA,pB];
- );
- if(Retflg==0,
- nm=Arg1;
- ptlist=Arg2;
- name="ar"+nm;
- tmp=Divoptions(options);
- Ltype=tmp_1;
- Noflg=tmp_2;
- realL=tmp_6;
- strL=tmp_7;
- opstr=tmp_(length(tmp)-1);
- opcindy=tmp_(length(tmp));
- size=1; // 15.06.11
- if(length(realL)>0,
- size=realL_1;
- );
- tmp2=select(strL,indexof(#,"l")>0); // 16.04.09
- if(length(tmp2)>0,lineflg=1,lineflg=0); // 16.04.09
- segpos=1;
- tmp1=tmp_5;
- if(length(tmp1)>2,
- segpos=tmp1_3;
- );
- if(Noflg<3,
-// println("generate Arrowdata "+name);
- tmp1=apply(ptlist,Pcrd(#));
- tmp=name+"="+textformat(tmp1,5);
- parse(tmp);
- tmp1=Pcrd(ptlist_1);//16.10.20
- tmp2=Pcrd(ptlist_2);//16.10.20
- if(lineflg==0, // 16.04.09 from
- tmp=tmp2-0.2*size/2*(tmp2-tmp1)/|tmp2-tmp1|; // 15.06.11
- ,
- tmp=tmp2;
- ); // 16.04.09 upto
- tmp=[LLcrd(tmp1),LLcrd(tmp)];//16.10.20
- GLIST=append(GLIST,name+"=Listplot("+textformat(tmp,5)+")");
- );
- if(Noflg<2,
- if(isstring(Ltype),
- Ltype=GetLinestyle(text(Noflg)+Ltype,name);
- ,
- if(Noflg==1,Ltype=0);
- );
- tmp=textformat(ptlist,5);
- tmp=substring(tmp,1,length(tmp)-1);
- tmp1=indexof(tmp,"],[");
- if(tmp1>0,
- pA=substring(tmp,0,tmp1);
- pB=substring(tmp,tmp1+1,length(tmp));
- ,
- tmp1=indexof(tmp,",");
- pA=substring(tmp,0,tmp1-1);
- pB=substring(tmp,tmp1,length(tmp));
- );
- tmp1="Lcrd("+pA+")+"
- +textformat(segpos,5)+"*(Lcrd("+pB+")-"+"Lcrd("+pA+"))";
- tmp1=parse(tmp1);
- tmp2="Lcrd("+pB+")-Lcrd("+pA+")";
- tmp2=parse(tmp2);
- Arrowhead(tmp1,tmp2,options);
- GCLIST=append(GCLIST,[name,Ltype,opcindy]);
- );
- );
- ptlist;
-);
-Arrowdata(pA,pB,options,str):=(
- regional(ptA,ptB,opstr,Astr,Bstr,name,tmp,opcindy);
- Astr=textformat(pA,5);
- Bstr=textformat(pB,5);
- name="ar"+pA.name+pB.name;
- println("generate Arrow "+name);
- opstr="";
- opcindy="";
- forall(options,
- if(isstring(#),
- if(indexof(#,"->")>0,
- opcindy=opcindy+","+#;
- ,
- tmp="'"+#+"'";
- );
- ,
- tmp=text(#);
- );
- opstr=opstr+","+tmp;
- );
- ptA=Lcrd(pA);
- ptB=Lcrd(pB);
- Arrowheaddata(ptB,ptB-ptA,options);
- tmp="connect("+textformat([ptA,ptB],5)
- +",linecolor->"+text(KCOLOR)+opcindy+");";
- parse(tmp); // 14.11.17
- Com2nd("Arrowline("+Astr+","+Bstr+opstr+")"); // 14.10.04
-);
-
-Anglemark(plist):=Anglemark(plist,[]);
-Anglemark(Arg1,Arg2):=( // 2015.04.28 from
- regional(nm,plist,options,tmp);
- if(isstring(Arg1),
- nm=Arg1;
- plist=Arg2;
- Anglemark(nm,plist,[]);
- ,
- plist=Arg1;
- options=Arg2;
- tmp=textformat(plist,5);
- tmp=replace(tmp,",","");
- nm=substring(tmp,1,length(tmp)-1);
- Anglemark(nm,plist,options);
- );
-); // upto
-Anglemark(nm,plist,options):=(
-//help:Anglemark([A,B,C],["E=\theta",2]);
-//help:Anglemark("1",[A,B,C],["E=1.2,\theta",2]);
-//help:Anglemark(options=["E/L=(sep,)letter",size]);
- regional(name,Out,pB,pA,pC,Ctr,ra,sab,sac,ratio,opstr,Bname,Bpos,
- Brat,tmp,tmp1,tmp2,Num,opcindy,Ltype,eqL,realL,Rg,Th,Noflg);
- name="ag"+nm;
- ra=0.5;
- tmp=Divoptions(options);
- Ltype=tmp_1;
- Noflg=tmp_2;
- opstr=tmp_(length(tmp)-1);
- opcindy=tmp_(length(tmp));
- eqL=tmp_5;
- realL=tmp_6;
- Bname="";
- Brat=1.5;
- Num=20;
- if(length(realL)>0,
- ra=realL_1*ra;
- opstr=opstr+","+text(realL_1);
- );
- forall(eqL,
- if(substring(#,0,1)=="L",Bname="Letter(");
- if(substring(#,0,1)=="E",Bname="Expr(");
- Bpos="md"+name;
- Bname=Bname+Bpos+","+Dq+"c"+Dq+","+Dq;//16.10.29
- tmp=substring(#,indexof(#,"="),length(#));
- tmp1=indexof(tmp,",");
- Bname=Bname+substring(tmp,tmp1,length(tmp))+Dq+")";
- if(tmp1>0,
- Brat=parse(substring(tmp,0,tmp1-1));
- );
- );
- pB=Lcrd(plist_1); pA=Lcrd(plist_2); pC=Lcrd(plist_3);
- Ctr=Lcrd(pA);
- sab=pB-pA;
- sac=pC-pA;
- Rg=[arctan2(sab)+0,arctan2(sac)+0];
- if(Rg_2<Rg_1,Rg_2=Rg_2+2*pi);
- Out=[];
- forall(0..Num,
- Th=Rg_1+#*(Rg_2-Rg_1)/Num;
- Out=append(Out,Ctr+ra*[cos(Th),sin(Th)]);
- );
- if(length(Bname)>0,
- Th=(Rg_1+Rg_2)/2;
- tmp1=Ctr+Brat*ra*[cos(Th),sin(Th)];
- tmp="Defvar("+Dq+Bpos+"=";
- tmp=tmp+textformat(tmp1,5)+Dq+");";
- parse(tmp);
- parse(Bname);
- );
- if(Noflg<3,
- println("generate anglemark "+name);
- tmp1=apply(Out,Pcrd(#));
- tmp=name+"="+textformat(tmp1,5);
- parse(tmp);
- tmp=textformat(plist,5);
- tmp1=substring(tmp,1,length(tmp)-1);
- tmp=name+"=Anglemark("+tmp1+opstr+")";
- GLIST=append(GLIST,tmp);
- );
- if(Noflg<2,
- if(isstring(Ltype),
- Ltype=GetLinestyle(text(Noflg)+Ltype,name);
- ,
- if(Noflg==1,Ltype=0);
- );
- GCLIST=append(GCLIST,[name,Ltype,opcindy]);
- );
- Out;
-);
-
-Paramark(plist):=Paramark(plist,[]);
-Paramark(plist,options):=(
-//help:Paramark([A,B,C],["E=\theta"]);
- regional(name,Out,pB,pA,pC,ra,sab,sac,ratio,opstr,Bname,Bpos,
- Brat,tmp,tmp1,tmp2,Ltype,Noflg,eqL,realL,opcindy);
- tmp=textformat(plist,5);
- tmp=replace(tmp,",","");
- tmp=substring(tmp,1,length(tmp)-1);
- name="pm"+tmp;
- tmp=Divoptions(options);
- Ltype=tmp_1;
- Noflg=tmp_2;
- opstr=tmp_(length(tmp)-1);
- opcindy=tmp_(length(tmp));
- eqL=tmp_5;
- realL=tmp_6;
- ra=0.5;
- Bname="";
- Brat=1.2;
- if(length(realL)>0,
- tmp=realL_1;
- ra=tmp*ra;
- opstr=opstr+","+text(tmp);
- );
- forall(eqL,
- if(substring(#,0,1)=="L",Bname="Letter(");
- if(substring(#,0,1)=="E",Bname="Expr(");
- Bpos="md"+name;
- Bname=Bname+Dq+Bpos+Dq+","+Dq+"c"+Dq+","+Dq;
- tmp=substring(#,indexof(#,"="),length(#));
- tmp1=indexof(tmp,",");
- Bname=Bname+substring(tmp,tmp1,length(tmp))+Dq+")";
- if(tmp1>0,
- Brat=parse(substring(tmp,0,tmp1-1));
- );
- );
- pB=Lcrd(plist_1); pA=Lcrd(plist_2); pC=Lcrd(plist_3);
- Ctr=Lcrd(pA);
- Out=[];
- Out=append(Out,pA+ra*(pB-pA)/|pB-pA|);
- Out=append(Out,pA+ra*(pB-pA)/|pB-pA|+ra*(pC-pA)/|pC-pA|);
- Out=append(Out,pA+ra*(pC-pA)/|pC-pA|);
- if(length(Bname)>0,
- tmp1=pA+Brat*ra*(pB-pA)/|pB-pA|+Brat*ra*(pC-pA)/|pC-pA|;
- tmp="Defvar("+Dq+Bpos+"="+textformat(tmp1,5)+Dq+");";
- parse(tmp);
- parse(Bname);
- );
- if(Noflg<3,
- println("generate paramark "+name);
- tmp1=apply(Out,Pcrd(#));
- tmp=name+"="+textformat(tmp1,5);
- parse(tmp);
- tmp1=substring(textformat(plist,5),1,length(textformat(plist,5))-1);
- tmp=name+"=Paramark("+tmp1+opstr+")";
- GLIST=append(GLIST,tmp);
- );
- if(Noflg<2,
- if(isstring(Ltype),
- Ltype=GetLinestyle(text(Noflg)+Ltype,name);
- ,
- if(Noflg==1,Ltype=0);
- );
- GCLIST=append(GCLIST,[name,Ltype,opcindy]);
- );
- Out;
-);
-
-MakeBowdata(pA,pB,Hgt):=(
- regional(angle,pB2,pH2,pC2,pC,tmp,Th1,Th2,ra,dMA);
- angle=arctan2(pB-pA)+0;
- pB2=Rotatepoint(pB,-angle,pA);
- tmp=Lcrd(pA);
- pH2=[(tmp_1+pB2_1)/2,tmp_2-Hgt];
- dMA=|tmp-pB2|/2;
- ra=(dMA^2+Hgt^2)/(2*Hgt);
- pC2=[pH2_1,pB2_2+(ra-Hgt)];
- pC=Rotatepoint(pC2,angle,pA);
- Th1=arctan2(pA-pC2)+angle;
- Th2=arctan2(pB2-pC2)+angle;
- [pC,ra,Th1,Th2];
-);
-
-Bowdata(nm,plist,options):=(
-//help:Bowdata([C,A],[2,1.2,"Expr=10","da"]);
-//help:Bowdata([A,B],["Expr=t0n3,a"]);
-//help:Bowdata([A,B],["Exprrot=t0n2r,a"]);
- regional(name,Out,pB,pA,pC,ra,tmp,tmp1,tmp2,Ltype,eqL,realL,
- Bname,Bpos,Th,Cut,Num,Hgt,opstr,opcindy,Ydata,pC,
- Th1,Th2,Noflg,Bops,Bmov,Tmov,Nmov,rev);
- name="bw"+nm;
- tmp=Divoptions(options);
- Ltype=tmp_1;
- Noflg=tmp_2;
- opstr=tmp_(length(tmp)-1);
- opcindy=tmp_(length(tmp));
- eqL=tmp_5;
- realL=tmp_6;
- pA=Lcrd(plist_1); pB=Lcrd(plist_2);
- Hgt=1/2*|pB-pA|*0.2;
- Cut=0;
- Num=24;
- Bname="";
- Tmov=0;//16.11.01from
- Nmov=0;
- Bmov="";
- rev=0;//16.11.01upto
- if(length(realL)>0,
- Hgt=realL_1*Hgt; // 15.04.12
- if(length(realL)>1,Cut=realL_2);
- );
- forall(eqL,
- tmp=substring(#,0,1);
- if(tmp=="L" % tmp=="l",
- if(indexof(#,"rot")>0,
- Bname="Letterrot(";
- ,
- Bname="Letter(";
- );
- );
- if(tmp=="E" % tmp=="e",
- if(indexof(#,"rot")>0,
- Bname="Exprrot(";
- ,
- Bname="Expr(";
- );
- );
- tmp=indexof(#,"=");
- Bops=substring(#,tmp,length(#)); // 16.11.01
- );
- Ydata=MakeBowdata(pA,pB,Hgt);
- pC=Ydata_1;
- ra=Ydata_2;
- Th=(Ydata_3+Ydata_4)*0.5;
- BOWMIDDLE=[pC_1+ra*cos(Th),pC_2+ra*sin(Th)];
- Bpos="md"+name; // 16.10.31from(moved)
- tmp="Defvar("+Dq+Bpos+"="+textformat(BOWMIDDLE,5)+Dq+");";
- parse(tmp);// 16.10.31upto(moved)
- if(length(Bname)>0, //16.11.01from
- tmp=indexof(Bops,",");
- if(tmp>0,
- tmp1=substring(Bops,0,tmp-1);
- if(length(tmp1)>=4 & substring(tmp1,0,1)=="t" & indexof(tmp1,"n")>0,
- Bmov=tmp1;
- Bops=substring(Bops,tmp,length(Bops));
- );
- );
- if(length(Bmov)>0,
- tmp=indexof(Bmov,"t");
- if(tmp>0,
- tmp1=indexof(Bmov,"n");
- Tmov=parse(substring(Bmov,tmp,tmp1-1));
- tmp=indexof(Bmov,"r");
- if(tmp>0,
- Nmov=parse(substring(Bmov,tmp1,tmp-1));
- rev=1;
- ,
- Nmov=parse(substring(Bmov,tmp1,length(Bmov)));
- );
- );
- );
- Bname=Bname+Bpos;//16.11.01
- if(abs(Tmov)+abs(Nmov)>0,
- tmp=Pcrd(pA)-Pcrd(pB);
- tmp1=1/norm(tmp)*tmp;
- tmp2=[-tmp1_2,tmp1_1];
- tmp=MARKLEN*(Tmov*tmp1+Nmov*tmp2);
- tmp=LLcrd(tmp);
- Bname=Bname+"+"+text(tmp);
- );
- Bname=Bname+",";
- if(indexof(Bname,"rot")>0,
- if(rev==1,tmp=pB-pA,tmp=pA-pB);
- Bname=Bname+textformat(tmp,5)+",";
- ,
- Bname=Bname+Dq+"c"+Dq+",";
- );
- Bname=Bname+Dq+Bops+Dq+")";
- parse(Bname);
- );//16.11.01upto
- if(Cut==0,
- Th1=Ydata_3;
- Th2=Ydata_4;
- Out=[];
- forall(0..Num,
- tmp=Th1+#*(Th2-Th1)/Num;
- Out=append(Out,pC+ra*[cos(tmp),sin(tmp)]);
- );
- ,
- Th1=Ydata_3;
- Th2=Th-Cut/(2*ra);
- tmp1=[];
- forall(0..Num/2,
- tmp=Th1+#*(Th2-Th1)/(Num/2);
- tmp1=append(tmp1,pC+ra*[cos(tmp),sin(tmp)]);
- );
- Th1=Th+Cut/(2*ra);
- Th2=Ydata_4;
- tmp2=[];
- forall(0..Num/2,
- tmp=Th1+#*(Th2-Th1)/(Num/2);
- tmp2=append(tmp2,pC+ra*[cos(tmp),sin(tmp)]);
- );
- Out=[tmp1,tmp2];
- );
- if(Noflg<3,
- println("generate bowdata "+name+" and "+Bpos);//16.10.31
- if(MeasureDepth(Out)==1,Out=[Out]);
- tmp1=[];
- forall(Out,tmp2,
- tmp=apply(tmp2,Pcrd(#));
- tmp1=append(tmp1,tmp);
- );
- tmp=name+"="+textformat(tmp1,5);
- parse(tmp);
- tmp1=substring(textformat(plist,5),1,length(textformat(plist,5))-1);
- tmp=name+"=Bowdata("+tmp1+opstr+")";
- GLIST=append(GLIST,tmp);
- );
- if(Noflg<2,
- if(isstring(Ltype),
- Ltype=GetLinestyle(text(Noflg)+Ltype,name);
- ,
- if(Noflg==1,Ltype=0);
- );
- GCLIST=append(GCLIST,[name,Ltype,opcindy]);
- );
-);
-
-Deqplot(nm,deq,rng,initf):=Deqplot(nm,deq,rng,Lcrd(initf)_1,initf,[]);
-Deqplot(nm,deq,rng,Arg1,Arg2):=(
- regional(initt,initf,options);
- if(isreal(Arg1) & length(Arg1)==1,
- initt=Arg1;
- initf=Arg2;
- options=[];
- ,
- initf=Lcrd(Arg1);
- initt=initf_1;
- options=Arg2;
- );
- Deqplot(nm,deq,rng,initt,initf,options);
-);
-Deqplot(nm,deq,rng,initt,initf,options):=(
- regional(name,Noflg,Ltype,eqL,opstr,opcindy,pdL,var2,deq2,rng2,initt2,initf2,
- tmp,tmp1,tmp2,tmp3,tmp4);
- tmp=tokenize(deq,"=");
- tmp1=tmp_1;
- tmp2=tmp_2;
- tmp3=tokenize(tmp1,"`");
- if(length(tmp3)==2,
- if(indexof(tmp1,"[")>0,
- Deqplot(nm,deq,rng,initt,initf,options,[2,3]);
- ,
- if(indexof(rng,"=")>0,rng2=rng,rng2=rng+"=[XMIN,XMAX]");
- tmp=tokenize(rng2,"=");
- deq2="["+tmp_1+","+replace(tmp1,"`","]")+"`=[1,"+tmp2+"]";
- rng2="t="+tmp_2;
- if(isreal(initf) & length(initf)==1,
- initf2=[initt,initf];
- initt2=initt;
- ,
- initf2=Lcrd(initf));
- initt2=initf2_1;
- Deqplot(nm,deq2,rng2,initt2,initf2,options,[2,3]);
- );
- ,
- name="de"+nm;
- tmp=Divoptions(options);
- Ltype=tmp_1;
- Noflg=tmp_2;
- eqL=tmp_5;
- opcindy=tmp_9;
- opstr="";
- forall(eqL,
- if(Toupper(substring(#,0,1))=="N",
- tmp=indexof(#,"=");
- tmp1="N="+substring(#,tmp,length(#));
- opstr=opstr+",'"+tmp1+"'";
- );
- );
- if(Noflg<1,
- if(indexof(rng,"=")>0,rng2=rng,rng2=rng+"=[XMIN,XMAX]");
- var2="d"+tmp3_1;
- deq2="["+tmp3_1+","+var2+"]`=[";
- tmp=replace(tmp2,tmp3_1+"`",var2);
- deq2=deq2+var2+","+tmp+"]";
- Deqplot(nm,deq2,rng2,initt,initf,append(options,"nodisp"),[1,2]);
- parse(tmp);
- tmp=name+"=Deqplot(Assign("+Dq+deq+Dq+"),'"+rng+"',";
- tmp=tmp+initt+","+initf+opstr+")";
- GLIST=append(GLIST,tmp);
- );
- if(Noflg<2,
- if(isstring(Ltype),
- Ltype=GetLinestyle(text(Noflg)+Ltype,name);
- ,
- if(Noflg==1,Ltype=0);
- );
- GCLIST=append(GCLIST,[name,Ltype,opcindy]);
- parse("de"+nm);
- );
- );
-);
-Deqplot(nm,deq,rng,initt,initf,options,Sel):=(
-//help:Deqplot("2","y`=y*(1-y)","x",0, 0.5,["Num=100"]);
-//help:Deqplot("1","y``=-y","x",0, [1,0]);
-//help:Deqplot("3","[x,y]`=[x*(1-y),0.3*y*(x-1)]","t=[0,20]",[1,0.5]);
- regional(Ltype,Noflg,Inflg,Outflg,strL,opstr,opcindy,Num,
- outstr,name,func,xf,yf,pdL,Eps,Inf,t1,t2,tt,Vname,dt,funP,funN,flg,
- kl1,kl2,kl3,kl4,x0,y0,x1,y1,tmp,tmp1,tmp2);
- name="de"+nm;
- tmp=Divoptions(options);
- Ltype=tmp_1;
- Noflg=tmp_2;
- Inflg=tmp_3;
- Outflg=tmp_4;
- eqL=tmp_5;
- strL=tmp_7;
-// opstr=tmp_(length(tmp)-1);
- opstr="";
- opcindy=tmp_(length(tmp));
- outstr="";
- forall(strL,
- tmp=Toupper(substring(#,0,1));
- if(tmp=="S",
- outstr="Sci";
- );
- );
- Num=50;
- forall(eqL,
- tmp=indexof(#,"=");
- tmp2=substring(#,0,1);
- tmp2=Toupper(tmp2);
- tmp1=substring(#,tmp,length(#));
- opstr=opstr+",'"+tmp2+"="+tmp1+"'";
- if(Toupper(substring(#,0,1))=="N",
- Num=parse(tmp1);
- );
- );
- if(outstr=="Sci",
- if(Inflg==0 & Outflg==0,Outflg=1;Inflg=1);
- );
- if(Noflg<3,
- if(outstr=="Sci",
- if(Outflg==1,
- println("Output Deqplot "+name);
- SCIWRLIST=append(SCIWRLIST,name);
- );
- if(Inflg==1,
- println("Input Deqplot "+name);
- if(length(SCIRELIST)==0,
- ReadOutData(Fnameout);
- );
- tmp=parse(name);
- if(islist(tmp),
- Extractdata(name,["nodisp"]); // 12.19
- );
- SCIRELIST=append(SCIRELIST,name);
- );
- ,
- Eps=10^(-3);
- Inf=10^3;
- tmp=tokenize(deq,"=");
- tmp1=tmp_1;
- func=tmp_2;
- tmp=indexof(tmp1,",");
- xf=substring(tmp1,1,tmp-1);
- yf=substring(tmp1,tmp,length(tmp1));
- tmp=indexof(yf,"]");
- yf=substring(yf,0,tmp-1);
- tmp=tokenize(rng,"=");
- Vname=tmp_1;
- tmp=parse(tmp_2);
- t1=tmp_1;
- t2=tmp_2;
- tmp="funP("+Vname+","+xf+","+yf+"):="+func+";";
- parse(tmp);
- tmp=tokenize(func,",");
- tmp1="-("+substring(tmp_1,1,length(tmp_1))+")";
- tmp2="-("+substring(tmp_2,0,length(tmp_2)-1)+")";
- tmp="funN("+Vname+","+xf+","+yf+"):=["+tmp1+","+tmp2+"];";
- parse(tmp);
- dt=(t2-t1)/Num;
- tt=initt;
- tmp=Lcrd(initf);
- x0=tmp_1;
- y0=tmp_2;
- pdL=[[tt,x0,y0]];
- flg=0;
- forall(1..floor((t2-initt)/dt),
- if(flg==0,
- kl1=dt*funP(tt,x0,y0);
- kl2=dt*funP(tt+dt/2,x0+kl1_1/2,y0+kl1_2/2);
- kl3=dt*funP(tt+dt/2,x0+kl2_1/2,y0+kl2_2/2);
- kl4=dt*funP(tt+dt,x0+kl3_1,y0+kl3_2);//16.10.14
- tmp1=[x0,y0]+(kl1+2*kl2+2*kl3+kl4)/6;
- x0=tmp1_1;
- y0=tmp1_2;
- tt=initt+#*dt;
- pdL=append(pdL,[tt,x0,y0]);
- if(|tmp1|>Inf,flg=1);
- );
- );
- tt=initt;
- tmp=Lcrd(initf);
- x0=tmp_1;
- y0=tmp_2;
- flg=0;
- forall(1..floor((initt-t1)/dt),
- if(flg==0,
- kl1=dt*funN(tt,x0,y0);
- kl2=dt*funN(tt+dt/2,x0+kl1_1/2,y0+kl1_2/2);
- kl3=dt*funN(tt+dt/2,x0+kl2_1/2,y0+kl2_2/2);
- kl4=dt*funN(tt+dt/2,x0+kl3_1/2,y0+kl3_2/2);
- tmp1=[x0,y0]+(kl1+2*kl2+2*kl3+kl4)/6;
- x0=tmp1_1;
- y0=tmp1_2;
- tt=initt-#*dt;
- pdL=prepend([tt,x0,y0],pdL);
- if(|tmp1|>Inf,flg=1);
- );
- );
- println("Generate Deqplot "+name);
- pdL=apply(pdL,#_Sel);
- tmp1=apply(pdL,Pcrd(#));
- tmp=name+"="+textformat(tmp1,5);
- parse(tmp);
- );
- if(Noflg<1,
- tmp=name+"=Deqplot(Assign("+Dq+deq+Dq+"),'"+rng+"',";
- tmp=tmp+initt+","+initf+opstr+")";
- GLIST=append(GLIST,tmp);
- );
- );
- if(Noflg<2,
- if(isstring(Ltype),
- Ltype=GetLinestyle(text(Noflg)+Ltype,name);
- ,
- if(Noflg==1,Ltype=0);
- );
- if(outstr=="Sci",
- if(Inflg==1,
- GCLIST=append(GCLIST,[name,Ltype,opcindy]);
- );
- ,
- GCLIST=append(GCLIST,[name,Ltype,opcindy]);
- pdL;
- );
- );
-);
-
-Enclosing(nm,plist):=EnclosingS(nm,plist);
-Enclosing(nm,plist,options):=EnclosingS(nm,plist,options);
-EnclosingS(nm,plist):=EnclosingS(nm,plist,[]);
-EnclosingS(nm,plist,options):=(
-//help:Enclosing("1",["sc2","crAB","sc2","Invert(sc1)"],[pt,"dr"]);
- regional(name,AnsL,Start,Eps,EEps,S,Flg,Fdata,Gdata,KL,pt,qt,
- t1,t2,t3,ii,nn,tmp,tmp1,tmp2,Ltype,Noflg,realL,eqL,opstr,opcindy);
- name="en"+nm;
- tmp=Divoptions(options);
- Ltype=tmp_1;
- Noflg=tmp_2;
- eqL=tmp_5;
- realL=tmp_6;
- opstr=tmp_(length(tmp)-1);
- opcindy=tmp_(length(tmp));
- Eps=10^(-3);
- EEps=0.1;
- Start=[];
- Flg=0;
- forall(realL,
- if(isList(#) % ispoint(#),
- Start=Lcrd(#); // 15.09.12
- ,
- Flg=Flg+1;
- if(Flg==1,Eps=#);
- if(Flg==2,EEps=#);
- );
- );
-// tmp1=concat([Eps,EEps],eqL); // 15.04.06
- Fdata=plist_1;
- Gdata=plist_(length(plist));
- KL=IntersectcrvsPp(Fdata,Gdata);
- if(length(KL)==1,
- pt=KL_1_1;
- t1=KL_1_2;
- );
- if(length(KL)==0,
- if(Numptcrv(Fdata)>Numptcrv(Gdata),
- tmp=Nearestpt(Fdata,Gdata);
- pt=tmp_1;
- t1=tmp_2;
- ,
- tmp=Nearestpt(Gdata,Fdata);
- pt=tmp_3;
- t1=tmp_4;
- );
- );
- if(length(KL)>1,
- if(Start==[],
- err("No Start Point");
- ,
- pt=KL_1_1;
- t1=KL_1_2;
- tmp=|pt-Start|;
- forall(2..length(KL),ii, // 15.04.20
- tmp1=KL_ii_1;
- tmp2=|tmp1-Start|; // 15.04.20
- if(tmp2<tmp,
- pt=tmp1;
- t1=KL_ii_2;
- tmp=tmp2;
- );
- );
- );
- );
-// pt=Pcrd(pt); // 15.09.12
- Start=pt;
- AnsL=[];
- forall(1..length(plist),nn,
- Fdata=plist_nn;
- if(nn>1, pt=qt);
- if(nn==length(plist),
- qt=Start;
- ,
- Flg=0;
- Gdata=plist_(nn+1);
-// tmp1=concat([Eps,EEps],eqL); // 15.04.06
- KL=IntersectcrvsPp(Gdata,Fdata);
- if(length(KL)==1,
- tmp=KL_1;
- qt=KL_1_1;
- t3=KL_1_2;
- Flg=10;
- );
- if(length(KL)==0,Flg=1);
- if(length(KL)>1,
- tmp1=KL_1_1;
- tmp2=KL_2_1;
- tmp=|tmp1-tmp2|;
- if(tmp<Eps*10, Flg=1);
- );
- if(Flg==1,
- if(Numptcrv(Fdata)>Numptcrv(Gdata),
- tmp=Nearestpt(Fdata,Gdata);
- qt=tmp_1;
- t3=tmp_4;
- Flg=10;
- ,
- tmp=Nearestpt(Gdata,Fdata);
- qt=tmp_3;
- t3=tmp_2;
- Flg=10;
- );
- );
- if(Flg<10,
- t2=10^6; //%inf;
- forall(1..length(KL),ii,
- tmp1=KL_ii_1;
- tmp=KL_ii_3;
- tmp2=ParamonCurve(tmp1,tmp,Fdata);
- tmp3=KL_ii_2;
- if(tmp2>t1+Eps & tmp2<t2+Eps,
- qt=tmp1;
- t2=tmp2;
- t3=tmp3;
- );
- );
- );
- );
- tmp=Partcrv("",pt,qt,Fdata,["nodata"]);
- t1=t3;
- if(nn==1,
- AnsL=tmp;
- ,
- AnsL=concat(AnsL,tmp_(2..length(tmp)));
- );
- );
- AnsL=apply(AnsL,Pcrd(#)); // 15.09.12
- AnsL_(length(AnsL))=AnsL_1;//16.10.20
- if(Noflg<3,
- println("generate Enclosing "+name);
- tmp=name+"="+textformat(AnsL,5);
- parse(tmp);
-// tmp=name+"=Enclosing(";//16.10.20from
-// tmp1="list(";
-// forall(plist,
-// tmp1=tmp1+#+",";
-// );
-// tmp=tmp+substring(tmp1,0,length(tmp1)-1)+")"+opstr+")";
- tmp=apply(AnsL,LLcrd(#));
- tmp=name+"=Listplot("+textformat(tmp,5)+")";//16.10.20upto
- GLIST=append(GLIST,tmp);
- );
- if(Noflg<2,
- if(isstring(Ltype),
- Ltype=GetLinestyle(text(Noflg)+Ltype,name);
- ,
- if(Noflg==1,Ltype=0);
- );
- GCLIST=append(GCLIST,[name,Ltype,opcindy]);
- );
- tmp=apply(AnsL,LLcrd(#));//16.10.20
- tmp;
-);
-
-Shade(plist):=Shade(plist,[]);
-Shade(plist,options):=(
-//help:Shade(["gr2","sg1"],[0.5]);
-//help:Shade([pointlist],[0.5]);
- regional(tmp,tmp1,tmp2,opstr,opcindy,Str,G2,flg);
- if(isstring(plist_1), // 16.01.24
- println("output Shade of "+plist);
- ,
- println("output Shade of lists");
- );
- tmp=Divoptions(options);
- opstr=tmp_(length(tmp)-1);
- opcindy=tmp_(length(tmp));
- flg=0;
- forall(plist,
- if(flg==0,
- if(isstring(#),tmp=parse(#),tmp=#); // from 16.01.24
- if(!islist(tmp),flg=1); upto
- );
- );
- if(flg==1,
-// err("some data not defined yet");
- ,
- G2=Joincrvs("1",plist,["nodata"]);
- G2=apply(G2,Pcrd(#));
- tmp1="fillpoly("+textformat(G2,5)+opcindy+");";
- parse(tmp1);
- );
- Str="Shade(";
- tmp1="list(";
- forall(plist,
- if(isstring(#), // from 16.01.24
- if(length(#)>1,
- tmp1=tmp1+#+",";
- ,
- tmp1=tmp1+Dq+#+Dq+",";
- );
- ,
- tmp1=tmp1+"Listplot("+textformat(#,5)+"),";
- ); // upto 16.01.24
- );
- Str=Str+substring(tmp1,0,length(tmp1)-1)+")"+opstr+")";
- Com2nd(Str);
-);
-
-
-//help:start();
-
-Rotatepoint(point,Theta,ctr):=(
-//help:Rotatepoint(A,2*pi/3,B);
- regional(X1,X2,Y1,Y2,Cx,Cy,tmp);
- tmp=Lcrd(point);
- X1=tmp_1; Y1=tmp_2;
- tmp=Lcrd(ctr);
- Cx=tmp_1; Cy=tmp_2;
- X2=Cx+(X1-Cx)*cos(Theta)-(Y1-Cy)*sin(Theta);
- Y2=Cy+(X1-Cx)*sin(Theta)+(Y1-Cy)*cos(Theta);
- [X2,Y2];
-);
-
-Translatepoint(point,mov):=(
-//help:Translatepoint(A,[2,3]);
- regional(X1,X2,Y1,Y2,Cx,Cy,tmp);
- tmp=Lcrd(point);
- X1=tmp_1; Y1=tmp_2;
- tmp=Lcrd(mov);
- Cx=tmp_1; Cy=tmp_2;
- X2=X1+Cx;
- Y2=Y1+Cy;
- [X2,Y2];
-);
-
-Scalepoint(point,ratio,center):=(
-//help:Scalepoint(A,[3,2],[0,0]);
- regional(X1,X2,Y1,Y2,Cx,Cy,tmp);
- tmp=Lcrd(point);
- X1=tmp_1; Y1=tmp_2;
- tmp=Lcrd(center);
- Cx=tmp_1; Cy=tmp_2;
- X2=Cx+ratio_1*(X1-Cx);
- Y2=Cy+ratio_2*(Y1-Cy);
- [X2,Y2];
-);
-
-Reflectpoint(point,symL):=(
-//help:Reflectpoint(A,B);
-//help:Reflectpoint(A,[[2,3]]);
-//help:Reflectpoint(A,[C,E]);\\
- regional(X1,X2,Y1,Y2,Us,Vs,Pt1,Pt2,Cx,Cy,tmp);
- tmp=Lcrd(point);
- X1=tmp_1; Y1=tmp_2;
- Pt1=Lcrd(symL_1);
- if(length(symL)==1,
- Pt2=Pt1;
- ,
- Pt2=Lcrd(symL_2);
- );
- Us=Pt2_1-Pt1_1;
- Vs=Pt2_2-Pt1_2;
- if(Pt1==Pt2,
- X2=2*Pt1_1-X1;
- Y2=2*Pt1_2-Y1;
- ,
- X2=(Us^2-Vs^2)/(Us^2+Vs^2)*X1+2*Us*Vs/(Us^2+Vs^2)*Y1
- -2*Vs*(Us*Pt1_2-Vs*Pt1_1)/(Us^2+Vs^2);
- Y2=2*Us*Vs/(Us^2+Vs^2)*X1-(Us^2-Vs^2)/(Us^2+Vs^2)*Y1
- +2*Us*(Us*Pt1_2-Vs*Pt1_1)/(Us^2+Vs^2);
- );
- [X2,Y2];
-);
-
-Rotatedata(nm,plist,Theta):=Rotatedata(nm,plist,Theta,[]);
-Rotatedata(nm,plist,angle,options):=(
-//help:Rotatedata("1","crAB",pi/3,[[1,5],"dr,2"]);
- regional(tmp,tmp1,tmp2,pdata,Theta,Pt,Cx,Cy,PdLL,PdL,
- opcindy,Nj,Njj,Kj,Mj,X1,Y1,X2,Y2,Ltype,Noflg,name);
- name="rt"+nm;
- Pt=[0,0];
- tmp=Divoptions(options);
- Ltype=tmp_1;
- Noflg=tmp_2;
- opcindy=tmp_(length(tmp));
- tmp1=tmp_6;
- if(length(tmp1)>0,Pt=Lcrd(tmp1_1));
- pdata=plist;
- if(isstring(pdata),pdata=[pdata]);
- if(!isstring(pdata_1) & MeasureDepth(pdata)==1,
- pdata=[pdata];
- );
- if(isstring(angle),Theta=parse(angle),Theta=angle);
- Cx=Pt_1; Cy=Pt_2;
- PdL=[];
- forall(pdata,Njj,
- if(isstring(Njj),Kj=parse(Njj),Kj=Njj);
- if(MeasureDepth(Kj)==1,Kj=[Kj]);
- tmp2=[];
- forall(Kj,Nj,
- tmp1=[];
- forall(Nj,
- tmp=LLcrd(#);
- X1=tmp_1;
- Y1=tmp_2;
- X2=Cx+(X1-Cx)*cos(Theta)-(Y1-Cy)*sin(Theta);
- Y2=Cy+(X1-Cx)*sin(Theta)+(Y1-Cy)*cos(Theta);
- tmp1=concat(tmp1,[[X2,Y2]]);
- );
- tmp2=concat(tmp2,[tmp1]);
- );
- PdL=concat(PdL,tmp2);
- );
- if(Noflg<3,
- println("generate Rotatedata "+name);
- tmp1=[];
- forall(PdL,tmp2,
- tmp=apply(tmp2,Pcrd(#));
- tmp1=append(tmp1,tmp);
- );
- if(length(tmp1)==1,tmp1=tmp1_1);
- tmp=name+"="+textformat(tmp1,5);
- parse(tmp);
-// tmp1=textformat(plist,5);
- tmp1=text(plist); // 15.10.15
- tmp1=replace(tmp1,"[","list(");
- tmp1=replace(tmp1,"]",")");
- tmp=name+"=Rotatedata("+tmp1+","
- +textformat(angle,5)+","+textformat(Pt,5)+")";
- GLIST=append(GLIST,tmp);
- );
- if(Noflg<2,
- if(isstring(Ltype),
- Ltype=GetLinestyle(text(Noflg)+Ltype,name);
- ,
- if(Noflg==1,Ltype=0);
- );
- GCLIST=append(GCLIST,[name,Ltype,opcindy]);
- );
- PdL;
-);
-
-translatedata(nm,plist,mov):=translatedata(nm,plist,mov,[]);
-translatedata(nm,plist,mov,options):=(
-//help:translatedata("1",["gr1"],[1,2]);
- regional(tmp,tmp1,tmp2,pdata,Cx,Cy,PdL,Nj,Njj,Kj,
- opcindy,X2,Y2,Ltype,Noflg,name);
- name="tr"+nm;
- tmp=Divoptions(options);
- Ltype=tmp_1;
- Noflg=tmp_2;
- opcindy=tmp_(length(tmp));
- pdata=plist;
- if(isstring(pdata),pdata=[pdata]);
- if(!isstring(pdata_1) & MeasureDepth(pdata)==1,
- pdata=[pdata];
- );
- tmp=Lcrd(mov);
- Cx=tmp_1; Cy=tmp_2;
- PdL=[];
- forall(pdata,Njj,
- if(isstring(Njj),Kj=parse(Njj),Kj=Njj);
- if(MeasureDepth(Kj)==1,Kj=[Kj]);
- tmp2=[];
- forall(Kj,Nj,
- tmp1=[];
- forall(Nj,
- tmp=LLcrd(#);
- X2=tmp_1+Cx;
- Y2=tmp_2+Cy;
- tmp1=concat(tmp1,[[X2,Y2]]);
- );
- tmp2=concat(tmp2,[tmp1]);
- );
- PdL=concat(PdL,tmp2);
- );
- if(Noflg<3,
- println("generate translatedata "+name);
- tmp1=[];
- forall(PdL,tmp2,
- tmp=apply(tmp2,Pcrd(#));
- tmp1=append(tmp1,tmp);
- );
- if(length(tmp1)==1,tmp1=tmp1_1);
- tmp=name+"="+textformat(tmp1,5);
- parse(tmp);
-// tmp1=textformat(plist,5);
- tmp1=text(plist); // 15.10.15
- tmp1=replace(tmp1,"[","list(");
- tmp1=replace(tmp1,"]",")");
- tmp=name+"=translatedata("+tmp1+","+textformat(mov,5)+")";
- GLIST=append(GLIST,tmp);
- );
- if(Noflg<2,
- if(isstring(Ltype),
- Ltype=GetLinestyle(text(Noflg)+Ltype,name);
- ,
- if(Noflg==1,Ltype=0);
- );
- GCLIST=append(GCLIST,[name,Ltype,opcindy]);
- );
- PdL;
-);
-
-Scaledata(nm,plist,ratioV):=(
- regional(tmp);
- tmp=Lcrd(ratioV);
- Scaledata(nm,plist,tmp_1,tmp_2,[]);
-);
-Scaledata(nm,plist,Arg1,Arg2):=(
-//help:Scaledata("1","crAB",3,2,[[0,0]]);
- regional(tmp,options);
- if(islist(Arg2),
- tmp=Lcrd(Arg1);
- options=Arg2;
- Scaledata(nm,plist,tmp_1,tmp_2,options);
- ,
- Scaledata(nm,plist,Arg1,Arg2,[]);
- );
-);
-Scaledata(nm,plist,rx,ry,options):=(
- regional(tmp,tmp1,tmp2,pdata,Theta,Pt,Cx,Cy,PdL,
- opcindy,Nj,Njj,Kj,X2,Y2,Ltype,Noflg,name);
- name="sc"+nm;
- Pt=[0,0];
- tmp=Divoptions(options);
- Ltype=tmp_1;
- Noflg=tmp_2;
- opcindy=tmp_(length(tmp));
- tmp1=tmp_6;
- if(length(tmp1)>0,
- Pt=Lcrd(tmp1_1);
- );
- pdata=plist;
- if(isstring(pdata),pdata=[pdata]);
- if(!isstring(pdata_1) & MeasureDepth(pdata)==1,
- pdata=[pdata];
- );
- Cx=Pt_1; Cy=Pt_2;
- PdL=[];
- forall(pdata,Njj,
- if(isstring(Njj),Kj=parse(Njj),Kj=Njj);
- if(MeasureDepth(Kj)==1,Kj=[Kj]);
- tmp2=[];
- forall(Kj,Nj,
- tmp1=[];
- forall(Nj,
- tmp=LLcrd(#);
- X2=Cx+rx*(tmp_1-Cx);
- Y2=Cy+ry*(tmp_2-Cy);
- tmp1=concat(tmp1,[[X2,Y2]]);
- );
- tmp2=concat(tmp2,[tmp1]);
- );
- PdL=concat(PdL,tmp2);
- );
- if(Noflg<3,
- println("generate Scaledata "+name);
- tmp1=[];
- forall(PdL,tmp2,
- tmp=apply(tmp2,Pcrd(#));
- tmp1=append(tmp1,tmp);
- );
- if(length(tmp1)==1,tmp1=tmp1_1);
- tmp=name+"="+textformat(tmp1,5);
- parse(tmp);
- tmp1=text(plist); // 15.10.15
- tmp1=replace(tmp1,"[","list(");
- tmp1=replace(tmp1,"]",")");
- tmp=name+"=Scaledata("+tmp1+","
- +textformat(rx,5)+","+textformat(ry,5)+","+textformat(Pt,5)+")";
- GLIST=append(GLIST,tmp);
- );
- if(Noflg<2,
- if(isstring(Ltype),
- Ltype=GetLinestyle(text(Noflg)+Ltype,name);
- ,
- if(Noflg==1,Ltype=0);
- );
- GCLIST=append(GCLIST,[name,Ltype,opcindy]);
- );
- PdL;
-);
-
-Reflectdata(nm,plist,symL):=Reflectdata(nm,plist,symL,[]);
-Reflectdata(nm,plist,symL,options):=(
-//help:Reflectdata("1","crAB",[C]);
- regional(tmp,tmp1,tmp2,pdata,Us,Vs,Pt1,Pt2,Cx,Cy,PdL,
- opcindy,Nj,Njj,Kj,X1,Y1,X2,Y2,Ltype,Noflg,name);
- name="re"+nm;
- Pt=[0,0];
- tmp=Divoptions(options);
- Ltype=tmp_1;
- Noflg=tmp_2;
- opcindy=tmp_(length(tmp));
- pdata=plist;
- if(isstring(pdata),pdata=[pdata]);
- if(!isstring(pdata_1) & MeasureDepth(pdata)==1,
- pdata=[pdata];
- );
- Pt1=Lcrd(symL_1);
- if(length(symL)==1,
- Pt2=Pt1;
- ,
- Pt2=Lcrd(symL_2);
- );
- Us=Pt2_1-Pt1_1;
- Vs=Pt2_2-Pt1_2;
- PdL=[];
- forall(pdata,Njj,
- if(isstring(Njj),Kj=parse(Njj),Kj=Njj);
- if(MeasureDepth(Kj)==1,Kj=[Kj]);
- tmp2=[];
- forall(Kj,Nj,
- tmp1=[];
- forall(Nj,
- tmp=LLcrd(#);
- X1=tmp_1;
- Y1=tmp_2;
- if(Pt1==Pt2,
- X2=2*Pt1_1-X1;
- Y2=2*Pt1_2-Y1;
- ,
- X2=(Us^2-Vs^2)/(Us^2+Vs^2)*X1+2*Us*Vs/(Us^2+Vs^2)*Y1
- -2*Vs*(Us*Pt1_2-Vs*Pt1_1)/(Us^2+Vs^2);
- Y2=2*Us*Vs/(Us^2+Vs^2)*X1-(Us^2-Vs^2)/(Us^2+Vs^2)*Y1
- +2*Us*(Us*Pt1_2-Vs*Pt1_1)/(Us^2+Vs^2);
- );
- tmp1=concat(tmp1,[[X2,Y2]]);
- );
- tmp2=concat(tmp2,[tmp1]);
- );
- PdL=concat(PdL,tmp2);
- );
- if(Noflg<3,
- println("generate Reflectdata "+name);
- tmp1=[];
- forall(PdL,tmp2,
- tmp=apply(tmp2,Pcrd(#));
- tmp1=append(tmp1,tmp);
- );
- if(length(tmp1)==1,tmp1=tmp1_1);
- tmp=name+"="+textformat(tmp1,5);
- parse(tmp);
-// tmp1=textformat(plist,5);
- tmp1=text(plist); // 15.10.15
- tmp1=replace(tmp1,"[","list(");
- tmp1=replace(tmp1,"]",")");
- tmp=name+"=Reflectdata("+tmp1+","+textformat(symL,5)+")";
- GLIST=append(GLIST,tmp);
- );
- if(Noflg<2,
- if(isstring(Ltype),
- Ltype=GetLinestyle(text(Noflg)+Ltype,name);
- ,
- if(Noflg==1,Ltype=0);
- );
- GCLIST=append(GCLIST,[name,Ltype,opcindy]);
- );
- PdL;
-);
-
-Mksegments():=Mksegments([]);
-Mksegments(options):=(
-//help:Mksegments();
- regional(segstr,p,q,r,tmp1,tmp2,tmp3);
- forall(allsegments(),seg,
- str=text(inspect(seg,"definition"));
- tmp1=indexof(str,"(");
- tmp2=indexof(str,";");
- tmp3=indexof(str,")");
- p=substring(str,tmp1,tmp2-1);
- q=substring(str,tmp2,tmp3-1);
- Listplot([parse(p),parse(q)]);
- );
-);
-
-Mkcircles():=Mkcircles([]);
-Mkcircles(options):=(
-//help:Mkcircles():
- regional(seg,cir,str,p,q,r,tmp1,tmp2,tmp3,tmp4);
- forall(allcircles(),cir,
- str=text(inspect(cir,"definition"));
- tmp1=indexof(str,"(");
- tmp2=indexof(str,";");
- tmp3=indexof(str,")");
- tmp4=indexof(str,";",tmp2+1);
- if(tmp4==0,
- p=substring(str,tmp1,tmp2-1);
- q=substring(str,tmp2,tmp3-1);
- Circledata([parse(p),parse(q)]);
- ,
- p=substring(str,tmp1,tmp2-1);
- q=substring(str,tmp2,tmp4-1);
- r=substring(str,tmp4,tmp3-1);
- Circledata([parse(p),parse(q),parse(r)]);
- );
- );
-);
-
-Makesciarg(arglist):=(
- regional(str,tmpstr);
- str="";
- forall(arglist,
- if(isstring(#),
- tmpstr=Dq+#+Dq;
- ,
- tmpstr=textformat(#,5);
- );
- str=str+tmpstr+",";
- );
- str=substring(str,0,length(str)-1);
- str;
-);
-
-Setax(arglist):=(
-//help:Setax(["l","x","e","y","n","O","sw"]);
-//help:Setax([7,"nw"]);
- regional(tmp);
- tmp=Makesciarg(arglist);
- Com1st("Setax("+tmp+")");
-);
-
-Htickmark(arglist):=(
-//help:Htickmark([1,"1",2,"sw","2"]);
- regional(tmp);
- tmp="";
- tmp=Makesciarg(arglist);
- Com2nd("Htickmark("+tmp+")");
-);
-
-Vtickmark(arglist):=(
-//help:Vtickmark([1,"1",2,"sw","2"]);
- regional(tmp);
- tmp=Makesciarg(arglist);
- Com2nd("Vtickmark("+tmp+")");
-);
-
-Drwxy():=(
-//help:Drwxy();
- Com2nd("Drwxy()");
- Addax(0); // 16.01.21
-);
-
-Drwpt(pstr):=Drawpoint(pstr);
-Drwpt(ptlist,nn):=( // 16.03.05 from
-//help:Drwpt(A);
-//help:Drwpt("[1,1],0");
-//help:Drwpt(A,0);
-//help:Drwpt([1,2],0);
- Drawpoint(ptlist,nn);
-);
-Drawpoint(pstr):=(
- if(isstring(pstr),
- println("Drwpt : "+pstr);
- Com2nd("Drwpt("+pstr+")");
- ,
- Drawpoint(pstr,1);
- );
-);
-Drawpoint(ptlistorg,nn):=(
- regional(ptlist,thick,tmp,tmp1);
- println("Drwpt : "+text(ptlistorg));
- if(islist(ptlistorg),
- if(MeasureDepth(ptlistorg)==1,
- ptlist=ptlistorg
- ,
- ptlist=[ptlistorg]
- );
- ,
- ptlist=[ptlistorg]
- );
- thick=PenThick/PenThickInit;// 16.04.09 from
- tmp1=max(TenSize/TenSizeInit,1)/8;
- Setpen(tmp1); // 16.04.09 upto
- forall(ptlist,
- tmp=textformat(#,5)+","+text(nn);
- Com2nd("Drwpt("+tmp+")"); // 16.04.09
- );
- Setpen(thick); // 16.04.09
-);// 16.03.05 upto
-
-Addax(param):=(
-//help:Addax(0);
- ADDAXES=text(param);
-);
-
-Expr(Pt,Dr,St):=Expr([Pt,Dr,St]);
-Expr(list):=Expr(list,[]);
-Expr(listorg,options):=( //16.10.09
-//help:Expr([A,"e","f(x)=x^2"]);
- regional(list,str,tmp,tmp1,tmp2);
- list=listorg;
- forall(1..round(length(list)/3),
- str=list_(3*#);
- if(!isstring(str),str=format(str,5));
- str="$"+str+"$";
- list_(3*#)=str;
- );
- Letter(list,options);
-);
-
-Letter(Pt,Dr,St):=Letter([Pt,Dr,St]);
-Letter(list):=Letter(list,[]);
-Letter(list,options):=(
-//help:Letter([C,"c","Graph of f(x)"]);
- regional(Nj,Pos,Dir,Str,Off,Dmv,Xmv,Ymv,Noflg,opcindy,
- opL,aln,sz,clr,bld,ita,tmp,tmp1,tmp2);
- tmp=Divoptions(options);
- Noflg=tmp_2;
- opL=select(options,indexof(#,"->")>0); //16.10.09from
- tmp=select(opL,indexof(#,"color"));
- size=12;
- clr=[0,0,0];
- bld=false;
- ita=false;
- aln="left";
- forall(opL,
- tmp=indexof(#,"->");
- tmp1=removespace(substring(#,0,tmp-1));
- tmp2=substring(#,tmp+1,length(#));
- if(tmp1=="size",sz=parse(tmp2));
- if(tmp1=="color",clr=parse(tmp2));
- if(tmp1=="bold",bld=parse(tmp2));
- if(tmp1=="ita",ita=parse(tmp2));
- );//16.10.09upto
- Off=-4;
- Dmv=8;
- Nj=1;
- while(Nj+2<=length(list),
-// Pos=textformat(list_Nj,5);
- Pos=list_Nj;
- Dir=list_(Nj+1);
- tmp=indexof(Dir,"s")+indexof(Dir,"n");//16.10.19from
- if(tmp>0,
- tmp=indexof(Dir,"w")+indexof(Dir,"e");
- if(tmp==0,
- Dir="c"+Dir;//16.10.08
- );
- );//16.10.19upto
- Str=list_(Nj+2);
- if(!isstring(Str),Str=format(Str,5)); // 16.09.30,10.09
- tmp=replace(Str,".xy","");
- tmp=replace(tmp,".x","(1)");
- Str=replace(tmp,".y","(2)");
- if(indexof(Str,"`")>0,
-// tmp=Dq+",Assign('"+Str+"','`',Prime()))";
- tmp=Dq+",Assign('"+Str+"'))"; // 15.02.22
- ,
- tmp=Dq+","+Dq+Str+Dq+")";
- );
- if(Noflg==0,
- Com2nd("Letter("+Lcrd(Pos)+","+Dq+Dir+tmp);//16.10.10
- );
- if(Noflg<2,
- Xmv=0;//16.10.13
- Ymv=-4;
- if(indexof(Dir,"n")>0,
- Ymv=Dmv/2;
- );
- if(indexof(Dir,"s")>0,
- Ymv=-Dmv*3/2;//16.10.13
- );
- if(indexof(Dir,"e")>0,
- Xmv=Dmv/2;
- Off=0;
- aln="left";
- );
- if(indexof(Dir,"w")>0,
- Xmv=-Dmv/2;
- Off=0; // 16.09.30from
- aln="right";
- );
- if(indexof(Dir,"c")>0,
- Xmv=0;//16.10.13
- Off=0;
- if(Ymv==0,Ymv=-4);//16.10.08
- aln="mid"; // 16.09.30upto
- );
- drawtext(Pcrd(Pos),Str,offset->[Off+Xmv,Off+Ymv],
- size->sz,color->clr,align->aln,bold->bld,italics->ita);//16.10.09
- );
- Nj=Nj+3;
- );
-);
-
-Letterrot(pt,dir,str):=Letterrot(pt,dir,0,0,str);
-Letterrot(pt,dir,movstr,str):=(
-//help:Letterrot(C,B-A,"AB"):
-//help:Letterrot(C,B-A,0,5,"AB"):
-//help:Letterrot(C,B-A,"t0n5","AB"):
- regional(tmov,nmov,tmp,tmp1,tmp2);
- tmp1=indexof(movstr,"t");
- tmp2=indexof(movstr,"n");
- if(tmp1>0,
- if(tmp2>0,tmp=tmp2-1,tmp=length(movstr));
- tmov=parse(substring(movstr,tmp1,tmp));
- ,
- tmov=0;
- );
- if(tmp2>0,
- nmov=parse(substring(movstr,tmp2,length(movstr)));
- ,
- nmov=0;
- );
- Letterrot(pt,dir,tmov,nmov,str);
-);
-Letterrot(pt,dir,tmov,nmov,str):=(
- Letter([pt,"c",str],["notex"]);
- Com2nd("Letterrot("+pt+","+dir+","+tmov+","+nmov+",'"+str+"')");
-);
-
-Exprrot(pt,dir,str):=Exprrot(pt,dir,0,0,str);
-Exprrot(pt,dir,movstr,str):=(
-//help:Exprrot(C,B-A,"d"):
-//help:Exprrot(C,B-A,0,5,"d"):
-//help:Exprrot(C,B-A,"t0n5","d"):
- regional(tmov,nmov,tmp,tmp1,tmp2);
- tmp1=indexof(movstr,"t");
- tmp2=indexof(movstr,"n");
- if(tmp1>0,
- if(tmp2>0,tmp=tmp2-1,tmp=length(movstr));
- tmov=parse(substring(movstr,tmp1,tmp));
- ,
- tmov=0;
- );
- if(tmp2>0,
- nmov=parse(substring(movstr,tmp2,length(movstr)));
- ,
- nmov=0;
- );
- Exprrot(pt,dir,tmov,nmov,str);
-);
-Exprrot(pt,dir,tmov,nmov,str):=(
- Expr([pt,"c",str],["notex"]);
- Com2nd("Exprrot("+pt+","+dir+","+tmov+","+nmov+",'"+str+"')");
-);
-
-Slider(ptstr,p1,p2):=( //17.04.11
-//help:Slider("A-C-B",[-3,0],[3,0]);
- regional(pA,pB,pC,seg,sname,Alpha,tmp,tmp1);
- tmp=indexall(ptstr,"-");
- pA=substring(ptstr,0,tmp_1-1);
- pC=substring(ptstr,tmp_1,tmp_2-1);
- pB=substring(ptstr,tmp_2,length(ptstr));
- seg=pA+pB;
- Alpha="ABCDEFGHIJKLMNOPQRSTUVWXYZ";
- sname="";
- forall(1..(length(seg)),
- tmp=substring(seg,#-1,#);
- tmp1=indexof(Alpha,tmp);
- if(tmp1>0,
- sname=sname+unicode(text(tmp1+96),base->10);
- ,
- sname=sname+tmp;
- );
- );
- Putpoint(pA,p1);
- Putpoint(pB,p2);
- Listplot([parse(pA),parse(pB)],["notex","color->[0,0.4,0.4]","size->2"]);
-// create([sname],"Segment",[parse(pA),parse(pB)]);
-// tmp2=Listplot("",[p1,p2],["nodata"]);
- Putonseg(pC,parse("sg"+pA+pB));
-// create([pC],"PointOn",[parse(sname),0.5]);
-);
-
-Putpoint(name,Pt):=Putpoint(name,Pt,Pt);
-Putpoint(name,Ptinit,Pt):=(
-//help:Putpoint("A",[1,2],[1,A.y]);
- regional(ptstr);
- ptstr=apply(allpoints(),#.name);
- if(!contains(ptstr,name),
- createpoint(name,Pcrd([Ptinit_1,Ptinit_2]));
- ,
- ptstr=name+".xy="+textformat(Pcrd(Pt),5);
- parse(ptstr);
- );
-);
-
-Bezierpt(t,ptlist,ctrlist):=(
- regional(flg3,p0,p1,p2,p3,p4,p5,p6,p7,p8,p9);
- p0=ptlist_1;
- p3=ptlist_2;
- p1=ctrlist_1;
- if(length(ctrlist)==1,
- p2=p3;
- flg3=0;
- ,
- p2=ctrlist_2;
- flg3=1;
- );
- if(length(p0)<3, // 15.02.08
- p0=Lcrd(p0);
- p3=Lcrd(p3);
- p1=Lcrd(p1);
- p2=Lcrd(p2);
- );
- p4=(1-t)*p0+t*p1;
- p5=(1-t)*p1+t*p2;
- p6=(1-t)*p2+t*p3;
- p7=(1-t)*p4+t*p5;
- p8=(1-t)*p5+t*p6;
- p9=(1-t)*p7+t*p8;
- if(flg3==0,p7,p9);
-);
-
-Bezier(ptctrlist):=BezierCurve(ptctrlist_3,ptctrlist_1,ptctrlist_2,[]);
-Bezier(ptctrlist,options):=BezierCurve(ptctrlist_3,ptctrlist_1,ptctrlist_2,options);
-Bezier(nm,ptlist,ctrlist):=BezierCurve(nm,ptlist,ctrlist,[]);
-Bezier(nm,ptlist,ctrlist,options):=BezierCurve(nm,ptlist,ctrlist,options);
-BezierCurve(nm,ptlist,ctrlist):=BezierCurve(nm,ptlist,ctrlist,[]);
-BezierCurve(nm,ptlistorg,ctrlistorg,options):=(
-//help:Bezier("1",[A,D],[B,C]);
-//help:Bezier(options=["Num=10"]);
- regional(name,Ltype,Noflg,opstr,opcindy,Num,
- ptlist,ctrlist,tmp,tmp1,tmp2,ii,st,out,list);
- name="bz"+nm;
- tmp=Divoptions(options);
- Ltype=tmp_1;
- Noflg=tmp_2;
- opstr=tmp_(length(tmp)-1);
- opcindy=tmp_(length(tmp));
- Num=10;
- tmp1=tmp_5;
- forall(tmp1, // 14.12.31
- if(substring(#,0,1)=="N",
- tmp2=indexof(#,"=");
- Num=parse(substring(#,tmp2,length(#)));
- opstr=opstr+","+Dq+#+Dq;
- );
- );
- ptlist=apply(ptlistorg,Lcrd(#)); // 16.08.16
- ctrlist=[]; // 14.12.31
- if(length(ctrlistorg)==length(ptlist)-1,
- forall(ctrlistorg,tmp1,
- if(MeasureDepth(tmp1)==0,tmp=[tmp1],tmp=tmp1);
- tmp=apply(tmp,Lcrd(#)); // 16.08.16
- ctrlist=append(ctrlist,tmp);
- );
- ,
- forall(1..(length(ptlist)-1),ii,
- tmp=ctrlistorg_((2*ii-1)..(2*ii));
- tmp=apply(tmp,Lcrd(#)); // 16.08.16
- ctrlist=append(ctrlist,tmp);
- );
- );
- if(!islist(Num),
- Num=apply(ctrlist,Num);
- );
- list=[];
- forall(1..(length(ptlist)-1),ii,
- tmp1=ptlist_(ii..(ii+1));
- tmp2=ctrlist_ii;
- if(ii==1,st=0,st=1);
- forall(st..Num_ii,
- tmp=Bezierpt(#/Num_ii,tmp1,tmp2);
- list=append(list,tmp);
- );
- );
- if(Noflg<3,
- println("generate Bezier "+name);
- out=apply(list,Pcrd(#));
- tmp=name+"="+textformat(out,5);
- parse(tmp);
- tmp1=textformat(ptlist,5);
- tmp1="list("+substring(tmp1,1,length(tmp1)-1)+")";
- tmp2=textformat(ctrlist,5);
- tmp2="list("+substring(tmp2,1,length(tmp2)-1)+")";
- GLIST=append(GLIST,name+"=Bezier("+tmp1+","+tmp2+opstr+")");
- );
- if(Noflg<2,
- if(isstring(Ltype),
- Ltype=GetLinestyle(text(Noflg)+Ltype,name);
- ,
- if(Noflg==1,Ltype=0);
- );
- GCLIST=append(GCLIST,[name,Ltype,opcindy]);
- );
- list;
-);
-
-Readcsvsla(fname):=Readplotdigdata(fname,[]);
-Readcsvsla(fname,options):=Readplotdigdata(fname,options);
-Readplotdigdata(fname):=Readplotdigdata(fname,[]);
-Readplotdigdata(fname,options):=(
- regional(fsc,mv,cmdall,dataL,nd,npt,ptdata,ii,tmp,tmp1,tmp2,tmp3);
- tmp=Divoptions(options);
- tmp1=tmp_6;
- sc=1;//10;
- mv=[0,0];//[5,5];
- forall(tmp1,
- if(!islist(#),sc=#,mv=#);
- );
- if(indexof(fname,".")>0,
- tmp=load(fname);
- ,
- tmp=load(fname+".txt");
- );
- cmdall=tokenize(tmp,"//");
- dataL=[];
- forall(2..length(cmdall),ii,
- tmp1=parse("["+cmdall_ii+"]");
- dataL=append(dataL,tmp1);
- );
- if(length(dataL_(length(dataL)))<2,
- dataL=dataL_(1..(length(dataL)-1));
- );
- nd=length(dataL_1)/2;
- npt=length(dataL);
- ptdata=[];
- forall(1..nd,ii,
- tmp3=[];
- forall(1..npt,
- tmp1=dataL_#_(2*ii-1);
- tmp2=dataL_#_(2*ii);
- if(isreal(tmp1),
- tmp3=append(tmp3,[tmp1,tmp2]);
- );
- );
- ptdata=append(ptdata,tmp3);
- );
- tmp1=[];
- forall(ptdata,
- tmp=#/sc;
- tmp=translatedata("1",[tmp],-mv,["nodata"]);
- tmp1=append(tmp1,tmp);
- );
- ptdata=tmp1;
- ptdata;
-);
-
-Putbezierdata(name,ptL):=Putbezierdata(name,ptL,[]);
-Putbezierdata(name,ptL,options):=(
- regional(psize,Deg,tmp,tmp1,tmp2,p1,p2,pts,ctrs);
- tmp=Divoptions(options);
- psize=3;
- Deg=3;
- tmp1=tmp_5;
- forall(tmp1,
- if(substring(#,0,1)=="D",
- tmp=indexof(#,"=");
- Deg=parse(substring(#,tmp,length(#)));
- );
- if(substring(#,0,1)=="S",
- tmp=indexof(#,"=");
- psize=parse(substring(#,tmp,length(#)));
- );
- );
- pts=[];
- ctrs=[];
- forall(1..length(ptL),
- p2=ptL_#; // 16.08.16
- if(ispoint(p2),
- tmp1=text(p2);
- ,
- tmp1=name+text(#);
- Putpoint(tmp1,p2,Lcrd(parse(tmp1))); // 16.08.16
- );
- inspect(parse(tmp1),"ptsize",psize);
- pts=append(pts,parse(tmp1));
- inspect(parse(tmp1),"color",4);
- if(#>1,
- p1=Lcrd(ptL_(#-1)); // 16.08.16
- p2=Lcrd(ptL_#); // 16.08.16
- if(Deg==3,
- tmp=(2*p1+p2)/3;
- tmp1=name+"p"+text(#-1);
- Putpoint(tmp1,tmp,Lcrd(parse(tmp1))); // 16.08.16
- inspect(parse(tmp1),"labeled",false); //15.01.22
- Letter([parse(tmp1),"ne",tmp1],["notex"]); //15.01.22
- inspect(parse(tmp1),"ptsize",psize);
- inspect(parse(tmp1),"color",3);
- tmp=(p1+2*p2)/3;
- tmp2=name+"q"+text(#-1);
- Putpoint(tmp2,tmp,Lcrd(parse(tmp2))); // 16.08.16
- inspect(parse(tmp2),"labeled",false); //15.01.22
- Letter([parse(tmp2),"ne",tmp2],["notex"]); //15.01.22
- inspect(parse(tmp2),"ptsize",psize);
- inspect(parse(tmp2),"color",3);
- ctrs=append(ctrs,[parse(tmp1),parse(tmp2)]);
- ,
- tmp=(p1+p2)/2;
- tmp1=name+"p"+text(#-1);
- Putpoint(tmp1,tmp,Lcrd(parse(tmp1))); // 16.08.16
- inspect(parse(tmp1),"labeled",false); //15.01.22
- Letter([parse(tmp1),"ne",tmp1],["notex"]); //15.01.22
- inspect(parse(tmp1),"ptsize",psize);
- inspect(parse(tmp1),"color",3);
- ctrs=append(ctrs,[parse(tmp1)]);
- );
- );
- );
- [pts,ctrs,name];
-);
-
-Bezierstart(n):=( // 2016.02.26
- BezierNumber=n;
-);
-
-Mkbezierptcrv(ptdata):=Mkbezierptcrv(ptdata,[]);
-Mkbezierptcrv(ptdata,options):=(
- //help:Mkbezierptcrv([A,B,C,D]);
- //help:Mkbezierptcrv([[A,B],[C,D]]);
- //help:Mkbezierptcrv(options=["Num=10"]);
- // global BezierNumber
- regional(ptlist,Out,tmp,tmp1,tmp2);
- if(isstring(ptdata),
- ptlist=Readcsvsla(ptdata,options);
- ,
- ptlist=ptdata;
- );
- if(MeasureDepth(ptlist)==1,ptlist=[ptlist]);
- Out=[];
- forall(1..length(ptlist),
- tmp=floor((BezierNumber-1)/26);// 15.02.23
- if(tmp==0,tmp="",tmp=text(tmp));
- tmp2=mod(BezierNumber,26);
- if(tmp2==0,tmp2=26);
- tmp1=unicode(text(96+tmp2),base->10)+tmp;// 15.03.11
- tmp2=Putbezierdata(tmp1,ptlist_#,options);
- Bezier(tmp2,options);
- BezierNumber=BezierNumber+1;
- Out=append(Out,tmp2_(1..2));
- );
- Out;
-);
-
-Mkbeziercrv(nm,ptctrL):=Mkbeziercrv(nm,ptctrL,[]);
-Mkbeziercrv(nm,ptctrL,options):=(
- //help:Mkbeziercrv("1",[[A,B,C,D],[[P,Q],[R,S],T]]);
- regional(ptctrLL,name,ptlist,ctrlist,tmp,tmp1,tmp2);
- if(MeasureDepth(ptctrL)==2,ptctrLL=[ptctrL],ptctrLL=ptctrL);
- forall(1..length(ptctrLL),
- name=nm+text(#);
- ptlist=ptctrLL_#_1;
- ctrlist=ptctrLL_#_2;
- Bezier(name,ptlist,ctrlist,options);
- );
-);
-
-Writebezier():=Writebezier(Fhead,"all");
-Writebezier(head):=Writebezier(head,"all");
-Writebezier(head,seL):=(
-//help:Writebezier(file);
-//help:Writebezier(file,"acd");
- regional(bz,dt,name,tmp,tmp1,tmp2);
- bz=select(GLIST,indexof(#,"=Bezier")>0);
- tmp1=[]; // 16.04.22from
- if(seL!="all",
- forall(1..length(seL),
- tmp=substring(seL,#-1,#);
- tmp=select(bz,indexof(#,"bz"+tmp)>0);
- tmp1=concat(tmp1,tmp);
- );
- bz=tmp1;// 16.04.22upto
- );
- dt=[head+"n",[[length(bz),0]]];
- forall(1..length(bz),
- tmp=indexof(bz_#,"=");
- name=substring(bz_#,0,tmp-1);
- tmp=indexof(bz_#,","+Dq);
- if(tmp>0,
- tmp1=substring(bz_#,0,tmp-1)+")";
- ,
- tmp1=bz_#;
- );
- tmp1=replace(tmp1,"Bezier(","[");
- tmp1=replace(tmp1,"list(","[");
- tmp1=replace(tmp1,")","]");
- tmp1=replace(tmp1,",",".xy,");
- tmp1=replace(tmp1,"]",".xy]");
- tmp1=replace(tmp1,".xy,[",",[");
- tmp1=replace(tmp1,"].xy","]");
- tmp1=replace(tmp1,name,head+text(#));
- parse(tmp1);
- tmp=parse(head+text(#)+"_1");
- dt=concat(dt,[head+text(#)+"k",tmp]);
- tmp=parse(head+text(#)+"_2");
- dt=concat(dt,[head+text(#)+"c",tmp]);
- );
- WriteOutData(head+".txt",dt);
- dt;
-);
-
-Readbezier(file):=Readbezier(file,[]);
-Readbezier(file,optionorg):=(
-//help:Readbezier("xsr");
-//help:Readbezier(options=["Num=10","nogeo"]);
- regional(nn,options,stL,geo,nc,alpha,out,tmp,tmp1,tmp2,tmp3);
- options=optionorg;
- tmp=Divoptions(options);
- stL=tmp_7;
- geo=0;
- forall(stL,
- tmp=Toupper(substring(#,0,1));
- if(tmp=="G",geo=1);
- options=remove(options,[#]);
- );
- ReadOutData(file);
- tmp=file+"n_1_1";
- nn=parse(tmp);
- out=[];
- forall(1..nn,nc,
- tmp=file+text(nc);
- tmp1=parse(tmp+"k");
- tmp2=parse(tmp+"c");
- if(MeasureDepth(tmp2)==1,tmp2=[tmp2]); // 16.04.22from
- if(geo==1,
- alpha="abcdefghijklmnopqrstuvwxyz";
- forall(1..length(tmp1),
- tmp="k"+BezierNumber+"n"+text(nc)+substring(alpha,#-1,#);
- Putpoint(tmp,tmp1_#,parse(tmp+".xy"));
- inspect(parse(tmp),"labeled",false);
- inspect(parse(tmp),"ptsize",3);
- tmp1_#=parse(tmp+".xy");
- );
- forall(1..length(tmp2),
- tmp="c"+BezierNumber+"n"+text(nc)+substring(alpha,#-1,#)+"1";
- Putpoint(tmp,tmp2_#_1,parse(tmp+".xy"));
- inspect(parse(tmp),"labeled",false);
- inspect(parse(tmp),"color",4);
- inspect(parse(tmp),"ptsize",3);
- tmp2_#_1=parse(tmp+".xy");
- tmp="c"+BezierNumber+"no"+text(nc)+substring(alpha,#-1,#)+"2";
- Putpoint(tmp,tmp2_#_2,parse(tmp+".xy"));
- inspect(parse(tmp),"labeled",false);
- inspect(parse(tmp),"color",4);
- inspect(parse(tmp),"ptsize",3);
- tmp2_#_2=parse(tmp+".xy");
- );
- BezierNumber=BezierNumber+1;
- );
- Bezier(file+text(nc),tmp1,tmp2,options);// 16.04.22upto
- out=append(out,"bz"+tmp);
- );
- out;
-);
-
-Ospline(nm,ptlist):=Ospline(nm,ptlist,[]);
-Ospline(nm,ptlist,options):=(
-//help:Ospline("1",ptlist,[options]);
- regional(tmp,tmp1,tmp2,list,ptL,ctrL,name,closed,flg,
- p0,p1,p2,p3,pQ,pR,cc,p01,p02,p11,p12,p21,p22,p31,p32);
- name="o"+nm;
- if(isstring(ptlist),list=parse(ptlist),list=ptlist);
- if(|list_1-list_(length(list))|<10^(-6),closed=1,closed=0);
-// list=apply(list,LLcrd(#));
- ctrL=[];
- forall(1..(length(list)-1),
- flg=0;
- p1=Lcrd(list_#); // 16.08.16
- p2=Lcrd(list_(#+1)); // 16.08.16
- if(#==1 % #==length(list)-1,
- flg=1;
- if(closed==0,
- pQ=(p1+2*p2)/3; // 15.09.21 // 16.08.16
- pR=(2*p1+p2)/3; // 16.08.16
- ctrL=append(ctrL,[pQ,pR]);
- flg=2;
- ,
- if(#==1,
- p0=Lcrd(list_(length(list)-1)); // 16.08.16
- p3=Lcrd(list_(#+2)); // 16.08.16
- ,
- p0=Lcrd(list_(#-1)); // 16.08.16
- p3=Lcrd(list_2); // 16.08.16
- );
- );
- );
- if(flg<=1,
- if(flg==0,
- p0=Lcrd(list_(#-1)); // 16.08.16
- p3=Lcrd(list_(#+2)); // 16.08.16
- );
- tmp=1+sqrt((1+Dotprod(p2-p0,p3-p1)/|p2-p0|/|p3-p1|)/2);
- cc=4*|p2-p1|/3/(|p2-p0|+|p3-p1|)/tmp;
- pQ=p1+cc*(p2-p0); // 15.09.21 // 16.08.16
- pR=p2+cc*(p1-p3); // 16.08.16
- ctrL=append(ctrL,[pQ,pR]);
- );
- );
-// list=apply(list,LLcrd(#)); // 16.08.16
-// ctrL=apply(ctrL,LLcrd(#));
- if(closed==0, // 15.09.21
- p1=ctrL_2_1;
- p2=Lcrd(list_2); // 16.08.16
- pQ=p2+(p2-p1);
- ctrL_1=[pQ];
- tmp=length(ctrL);
- tmp1=ctrL_(tmp-1);
- p1=ctrL_(tmp-1)_2;
- p2=Lcrd(list_(tmp)); // 16.08.16
- pQ=p2+(p2-p1);
- ctrL_tmp=[pQ];
- );
- Bezier("o"+nm,list,ctrL,options);
-);
-
-CRspline(nm,ptL):=CRspline(nm,ptL,[]);
-CRspline(nm,ptL,options):=(
- // Catmull-Rom spline
-//help:CRspline("1",[A,B,C,A]);
- regional(name,ptlist,ctrpts,eqL,opcindy,c,v,tmp,tmp1,tmp2,ctrlist,cflg);
- name="crsp"+nm;
- if(MeasureDepth(ptL)==1,tmp=[ptL],tmp=ptL);
- ptlist=tmp_1;
- if(length(tmp)==1,
- cflg=1;
- ,
- cflg=0;
- ctrpts=tmp_2;
- );
- c=1/6;
- tmp=Divoptions(options);
- eqL=tmp_5;
- opcindy=tmp_(length(tmp)); // 15.03.05
- forall(eqL,
- if(substring(#,0,1)=="R",
- tmp2=indexof(#,"=");
- c=parse(substring(#,tmp2,length(#)));
- );
- );
- ptlist=apply(ptlist,Lcrd(#)); // 16.08.16
- ctrlist=[];
- forall(1..(length(ptlist)-1),
- if(#==1,
- if(cflg==0,
- tmp1=ctrpts_1;
- ,
- v=ptlist_2-ptlist_(length(ptlist)-1);
- tmp1=ptlist_#+c*v;
- );
- ,
- v=ptlist_(#+1)-ptlist_(#-1);
- tmp1=ptlist_#+c*v;
- );
- if(#==length(ptlist)-1,
- if(cflg==0,
- tmp2=ctrpts_2;
- ,
- v=ptlist_2-ptlist_#;
- tmp2=ptlist_(#+1)-c*v;
- );
- ,
- v=ptlist_(#+2)-ptlist_#;
- tmp2=ptlist_(#+1)-c*v;
- );
- tmp=select(options,indexof(text(#),"->")>0);
- tmp=append(tmp,"notex"); //15.03.05
- Pointdata(name+text(#),[tmp1,tmp2],tmp);
- ctrlist=append(ctrlist,[tmp1,tmp2]);
- );
- Bezier(nm,ptlist,ctrlist,options);
-);
-
-Beziersmooth(nm,ptL):=Bzspline(nm,ptL,[]);
-//help:Beziersmooth("1",[A,B,C,A]);
-Beziersmooth(nm,ptL,options):=Bzspline(nm,ptL,options);
-Bzspline(nm,ptL):=Bzspline(nm,ptL,[]);
-Bzspline(nm,ptLorg,options):=(
- // smooth bezier
- regional(name,Eps,ptL,pt,pt1,pt2,pt3,npt,lstr,
- tmp,tmp1,tmp2,cflg,ctrlist);
- name="bzsp"+nm;
- Eps=10^(-3);
- ptL=apply(ptLorg,Lcrd(#)); // 16.08.16
- if(|ptL_1-ptL_(length(ptL))|<Eps,cflg=1,cflg=0);
- forall(2..length(ptL),
- pt=ptL_#;
- pt1=ptL_(#-1);
- tmp1="C"+text(#-1)+"q";
- Putpoint(tmp1,(pt1+4*pt)/5,Lcrd(parse(tmp1))); // 16.08.16
- );
- forall(2..(length(ptL)-1),
- if(#<length(ptL) % cflg==1,
- lstr="c"+text(#);
- pt=ptLorg_#; // 16.08.16
- pt1=parse("C"+text(#-1)+"q");
- create([lstr],"Join",[pt1,pt]);
- tmp2="C"+text(#)+"p";
- tmp=Append((2*pt.xy-pt1.xy),1);
- create([tmp2],"PointOnLine",[parse(lstr),tmp]);
- );
- );
- if(cflg==0,
- pt=ptL_1;
- pt1=ptL_2;
- tmp1="C1p";
- Putpoint(tmp1,(4*pt+pt1)/5,Lcrd(parse(tmp1))); // 16.08.16
- );
- if(cflg==1,
- lstr="c1";
- pt=ptLorg_1; // 16.08.16
- pt1=parse("C"+text(length(ptL)-1)+"q");
- create([lstr],"Join",[pt1,pt]);
- tmp1="C1p";
- tmp=Append((2*pt.xy-pt1.xy),1);
- create([tmp1],"PointOnLine",[parse(lstr),tmp]);
- );
- ctrlist=[];
- forall(1..(length(ptL)-1),
- if(#>1 % cflg==1,
- tmp1="c"+text(#);
- inspect(parse(tmp1),"alpha",0.3);
- );
- tmp1="C"+text(#)+"p";
- tmp2="C"+text(#)+"q";
- inspect(parse(tmp1),"ptsize",3);
- inspect(parse(tmp1),"color",3);
- inspect(parse(tmp2),"ptsize",3);
- inspect(parse(tmp2),"color",3);
- tmp=[parse(tmp1),parse(tmp2)];
- ctrlist=append(ctrlist,tmp);
- );
- Bezier(nm,ptL,ctrlist,options);
- [ptL,ctrlist];
-);
-
-Beziersym(nm,ptL):=Bzsspline(nm,ptL,[]);
-Beziersym(nm,ptL,options):=Bzsspline(nm,ptL,options);
-Bzsspline(nm,ptL):=Bzsspline(nm,ptL,[]);
-Bzsspline(nm,ptLorg,options):=(
- // smooth bezier with symmetric control points
- regional(name,Eps,ptL,pt,pt1,pt2,pt3,npt,lstr,
- tmp,tmp1,tmp2,cflg,ctrlist);
- name="bzssp"+nm;
- Eps=10^(-3);
- ptL=apply(ptLorg,Lcrd(#)); // 16.08.16
- if(|ptL_1-ptL_(length(ptL))|<Eps,cflg=1,cflg=0);
- forall(2..length(ptL),
- pt=ptL_#;
- pt1=ptL_(#-1);
- tmp1="C"+text(#-1)+"q";
- Putpoint(tmp1,(pt1+4*pt)/5,Lcrd(parse(tmp1)));
- );
- forall(2..(length(ptL)-1),
- if(#<length(ptL) % cflg==1,
- pt=ptL_#;
- pt1=parse("C"+text(#-1)+"q");
- tmp2="C"+text(#)+"p=2*pt-pt1";
- parse(tmp2);
- );
- );
- if(cflg==0,
- pt=ptL_1;
- pt1=ptL_2;
- Putpoint("C1p",(4*pt+pt1)/5,Lcrd(C1p)); // 16.08.16
- inspect(C1p,"ptsize",3);
- inspect(C1p,"color",3);
- );
- if(cflg==1,
- pt=ptL_1;
- pt1=Lcrd(parse("C"+text(length(ptL)-1)+"q")); // 16.08.16
- tmp1="Putpoint("+Dq+"C1p"+Dq+",2*pt-pt1)"; // 16.08.16
- parse(tmp1);
- );
- ctrlist=[];
- forall(1..(length(ptL)-1),
- tmp1="C"+text(#)+"p";
- tmp2="C"+text(#)+"q";
- inspect(parse(tmp2),"ptsize",3);
- inspect(parse(tmp2),"color",3);
- tmp=[parse(tmp1),parse(tmp2)];
- ctrlist=append(ctrlist,tmp);
- );
- Bezier(nm,ptL,ctrlist,options);
- [ptL,ctrlist];
-);
-
-Listbspline2bz(listorg):=(
- regional(Eps,list,pcl,ptl,ctrl,k);
- Eps=10^(-3);
- list=apply(listorg,Lcrd(#)); // 16.08.16
- k=length(list);
- if(|list_1-list_k|>Eps,
- pcl=list;
- pcl_1=2*list_1-list_2;
- pcl_k=2*list_k-list_(k-1);
- ,
- pcl=concat(list,[list_2]);
- );
- ctrl=apply(2..(length(pcl)-1),[pcl_#]);
- ptl=apply(1..(length(pcl)-1),(pcl_#+pcl_(#+1))/2);
- [ptl,ctrl];
-);
-
-Bspline(nm,ctrL):=Bspline(nm,ctrL,[]);
-Bspline(nm,ctrL,options):=(
-//help:Bspline("",[A,B,C]);
- regional(list,tmp);
- list=Listbspline2bz(ctrL);
- tmp=BezierCurve("b"+nm,list_1,list_2,options);
- tmp;
-);
-
-MeetCurve(Crv,Xorg,Yorg):=(
- regional(Cv,tmp,tmp1,tmp2,X0,Y0,x1,x2,y1,y2,Ylist,Ban,Tate);
- if(isstring(Crv),Cv=parse(Crv),Cv=Crv);
- if(MeasureDepth(Cv)==2,Cv=Cv_1);
- Cv=apply(Cv,LLcrd(#)); // 14.12.18
- while(length(Cv)==1,
- Cv=Cv_1;
- );
- Cv=apply(Cv,Lcrd(#));
- tmp1=min(apply(Cv,#_1));
- tmp2=max(apply(Cv,#_1));
- if(isstring(Xorg),X0=parse(Xorg),X0=Xorg);
- if(isstring(Yorg),Y0=parse(Yorg),Y0=Yorg);
- if(X0<tmp1,
- X0=tmp1;
- ,
- if(X0>tmp2,
- X0=tmp2;
- );
- );
- tmp1=select(
- 1..(length(Cv)-1),Cv_#_1<=X0 & X0<=Cv_(#+1)_1);
- tmp2=select(
- 1..(length(Cv)-1),Cv_#_1>=X0 & X0>=Cv_(#+1)_1);
- tmp2=remove(tmp2,common(tmp2,tmp1));
- Ban=concat(tmp1,tmp2);
- Tate=select(Ban,
- abs(Cv_#_1-Cv_(#+1)_1)<=
- 10^(-2)*abs(Cv_#_2-Cv_(#+1)_2)
- );
- Ban=remove(Ban,Tate);
- Ylist=[];
- forall(Ban,
- tmp=Cv_#;
- x1=tmp_1; y1=tmp_2;
- tmp=Cv_(#+1);
- x2=tmp_1; y2=tmp_2;
- tmp=((x2-X0)*y1+(X0-x1)*y2)/(x2-x1);
- Ylist=append(Ylist,tmp);
- );
- forall(Tate,
- tmp=Cv_#;
- x1=tmp_1; y1=tmp_2;
- tmp=Cv_(#+1);
- x2=tmp_1; y2=tmp_2;
- tmp1=min([y1,y2]);
- tmp2=max([y1,y2]);
- if(Y0<tmp1,
- tmp=tmp1;
- ,
- if(Y0>tmp2,
- tmp=tmp2;
- ,
- tmp=Y0;
- );
- );
- Ylist=append(Ylist,tmp);
- );
- tmp=sort(Ylist,abs(#_1-Y0));
- [X0,tmp_1];
-);
-
-PutonLine(name,p1,p2):=PutonLine(name,p1,p2,[]);
-PutonLine(name,p1org,p2org,options):=(
-//help:PutonLine("C","sgAB");
-//help:PutonLine("C",pA,pB);
- regional(par,p1,p2,dx,dy,tmp,tmp1,tmp2);
- par=0.5;
- tmp=Divoptions(options);
- if(length(tmp_6)>0,
- par=tmp_6_1;
- );
- p1=Lcrd(p1org);//16.10.11from
- p2=Lcrd(p2org);
- dx=p2_1-p1_1;
- dy=p2_2-p1_2;
- tmp1=(1-par)*p1+par*p2;
- if(abs(dx)>abs(dy),
- tmp=name+".x";
- tmp2="["+tmp+",dy/dx*("+tmp+"-p1_1)+p1_2]";//16.10.11upto
- Putpoint(name,tmp1,parse(tmp2));
- ,
- if(abs(dy)>0,
- tmp=name+".y";
- tmp2="[dx/dy*("+tmp+"-p1.y)+p1_1,"+tmp+"]";
- Putpoint(name,tmp1,parse(tmp2));
- ,
- tmp2=p1;//16.10.11
- Putpoint(name,tmp1,tmp2);
- );
- );
-);
-
-PutonSeg(name,sgstr):=(
- regional(seg,p1,p2);
- if(isstring(sgstr),seg=parse(sgstr),seg=sgstr);
- PutonSeg(name,LLcrd(seg_1),LLcrd(seg_2));
-);
-PutonSeg(name,p1,p2):=PutonSeg(name,p1,p2,[]);
-PutonSeg(name,p1org,p2org,options):=(
-//help:PutonSeg("C","sgAB");
-//help:PutonSeg("C",pA,pB);
- regional(par,dx,dy,p,tmp,tmp1,tmp2);
- par=0.5;
- tmp=Divoptions(options);
- if(length(tmp_6)>0,
- par=tmp_6_1;
- );
- p1=Lcrd(p1org);//16.10.11from
- p2=Lcrd(p2org);
- PutonLine(name,p1,p2,[par]);
- dx=p2_1-p1_1;
- dy=p2_2-p1_2;
- p=parse(name+".xy");
- p=LLcrd(p);
- if(abs(dx)>abs(dy) & (p_1-p1_1)*(p_1-p2_1)>0,
- if(|p-p1|<|p-p2|,
- parse(name+".xy=Pcrd(p1)");
- ,
- parse(name+".xy=Pcrd(p2)");
- );
- );
- if(abs(dx)<abs(dy) & (p_2-p1_2)*(p_2-p2_2)>0,
- if(|p-p1|<|p-p2|,
- parse(name+".xy=Pcrd(p1)");
- ,
- parse(name+".xy=Pcrd(p2)");//16.10.11upto
- );
- );
-);
-
-PutonCurve(pn,crv):=PutonCurve(pn,crv,[]);
-PutonCurve(pn,crv,options):=(
-//help:PutonCurve("A","gr1");
- regional(Pmt,pstr,optionL,leftlim,rightlim,tmp,tmp1,Flg,Msg);
- if(!islist(options),optionL=[options],optionL=options);
- leftlim=XMIN;
- rightlim=XMAX;
- Flg=0;
- Msg="y";
- forall(optionL,
- if(isstring(#), // 16.02.10 from
- tmp=indexof(#,"=");
- tmp1=Toupper(substring(#,tmp,tmp+1));
- if(tmp1=="N", Msg="n"); // 16.02.10 upto
- ,
- if(Flg==0,
- leftlim=#;
- Flg=Flg+1;
- ,
- rightlim=#;
- );
- );
- );
- Pmt=MeetCurve(crv,leftlim,0);
- pstr=apply(allpoints(),textformat(#,5)); // 15.04.07
- if(!contains(pstr,pn),
- createpoint(pn,Pcrd(Pmt));
- ,
- tmp1=parse(pn+".x");
- if(tmp1< leftlim % tmp1>rightlim,
- if(tmp1< leftlim,tmp= leftlim, tmp=rightlim);
- Pmt=MeetCurve(crv,textformat(tmp,5),pn+".y");
- ,
- Pmt=MeetCurve(crv,pn+".x",pn+".y");
- );
- ptstr=pn+".xy="+textformat(Pcrd(Pmt),5)+";";
- parse(ptstr);
- );
- if(Msg=="y",
- println("Put "+pn+" on Curve "+text(crv));
- );
-);
-
-CrossPoint(name,Crv1,Crv2,range):=(
- regional(Mx1,Mx2,Mx3,tmp,Crs1,Crs2,Crs3,Crs4,df1,df2);
- Mx1=range_1; Mx2=range_2;
- repeat(15,
- Mx3=(Mx1+Mx2)/2;
- Crs1=MeetCurve(Crv1,Mx1,0);
- Crs2=MeetCurve(Crv2,Mx1,0);
- Crs3=MeetCurve(Crv1,Mx3,0);
- Crs4=MeetCurve(Crv2,Mx3,0);
- df1=Crs1_2-Crs2_2;
- df2=Crs3_2-Crs4_2;
- if((df1>0 & df2>0) % (df1<0 & df2<0),
- Mx1=Mx3;
- ,
- Mx2=Mx3;
- );
- );
- Putpoint(name,Crs1);
-);
-
-Setscaling(sc):=(
-//help:Setscaling(3);
- SCALEX=1;
- SCALEY=sc;
- Com0th("Setscaling("+sc+")");
- Setwindow("Msg=no");
-);
-
-Tabledatalight(nm,xLst,yLst,rmvL):=Tabledatalight(nm,xLst,yLst,rmvL,[]);
-Tabledatalight(nm,xLst,yLst,rmvL,options):=(
-//help:Tabledatalight("",xLst,yLst,rmvL,[2]);
- regional(name,upleft,ul,flg,tick,n,m,xsize,ysize,rlist,clist,Tb,
- tmp,tmp1,tmp2,tmp3,Eps);
-// name="tb"+nm;
- name="tb";
- println("Tabledatalight "+name+" generated");
- tmp=sum(yLst);
- upleft=[0,tmp];
- tick=1;
- tmp=Divoptions(options);
- flg=0;
- forall(tmp_6,
- if(flg==0,
- tick=#;
- flg=flg+1;
- ,
- upleft=tmp_6_1;
- );
- );
- ul=upleft/10;
- m=length(xLst);
- n=length(yLst);
- xsize=sum(xLst);
- ysize=sum(yLst);
- clist=[ul];
- rlist=[ul];
- forall(1..m,
- tmp1=clist_(#)_1+xLst_#/10;
- clist=append(clist,[tmp1,clist_1_2]);
- );
- forall(1..n,
- tmp1=rlist_(#)_2-yLst_#/10;
- rlist=append(rlist,[0,tmp1]);
- );
- Tb=[clist,rlist];
- tmp=name+"="+Tb;
- parse(tmp);
- forall(0..m,
- tmp1="c"+text(#)+"r0";
- tmp2="c"+text(#)+"r"+text(n);
- Tlistplot("c"+text(#)+"r0r"+text(n),[tmp1,tmp2],options);
- if(mod(#,tick)==0 % #==m,
- tmp=clist_(#+1);
- drawtext(clist_(#+1)-[0.04,-0.1],"c"+text(#));
- );
- );
- forall(0..n,
- tmp1="c0r"+text(#);
- tmp2="c"+text(m)+"r"+text(#);
- Tlistplot("r"+text(#)+"c0c"+text(m),[tmp1,tmp2],options);
- if(mod(#,tick)==0 % #==n,
- tmp=rlist_(#+1);
- drawtext(rlist_(#+1)-[0.4,0.1],"r"+text(#));
- );
- );
- Tsegrmv(rmvL,options);
- Addax(0);
- Eps=10^(-3);
- tmp1=clist_(length(clist));
- tmp2=rlist_1;
- tmp3=rlist_(length(rlist));
- Setwindow([0-Eps,tmp1_1+Eps],[tmp3_2-Eps,tmp2_2+Eps]);
- Tb;
-);
-
-Tabledata(nm,n,m,xsize,ysize,rmvL):=
- Tabledata(nm,n,m,xsize,ysize,rmvL,[]);
-Tabledata(nm,n,m,xsize,ysize,rmvL,options):=(
- regional(Tb,name,tmp,xLst,yLst);
- name="tb"+nm;
- xLst=apply(1..n,xsize/n);
- yLst=apply(1..m,ysize/m);
- Tabledata(nm,xLst,yLst,rmvL,options)
-);
-Tabledata(nm,xLst,yLst,rmvL):=Tabledata(nm,xLst,yLst,rmvL,[]);
-Tabledata(nm,xLst,yLst,rmvL,options):=(
-//help:Tabledata("",xLst,yLst,rmvL,[2]);
- regional(name,upleft,ul,flg,tick,n,m,xsize,ysize,rlist,clist,Tb,
- tmp,tmp1,tmp2,tmp3,Eps);
-// name="tb"+nm;
- name="tb";
- println("Tabledata "+name+" generated");
- tmp=sum(yLst);
- upleft=[0,tmp];
- tick=1;
- tmp=Divoptions(options);
- flg=0;
- forall(tmp_6,
- if(flg==0,
- tick=#;
- flg=flg+1;
- ,
- upleft=tmp_6_1;
- );
- );
- ul=upleft/10;
- m=length(xLst);
- n=length(yLst);
- xsize=sum(xLst);
- ysize=sum(yLst);
- clist=[ul];
- rlist=[ul];
- forall(1..m,
- tmp1=clist_(#)_1+xLst_#/10;
- clist=append(clist,[tmp1,clist_1_2]);
- );
- forall(1..n,
- tmp1=rlist_(#)_2-yLst_#/10;
- rlist=append(rlist,[0,tmp1]);
- );
- Tb=[clist,rlist];
- tmp=name+"="+Tb;
- parse(tmp);
- forall(0..m,
- tmp="C"+text(#);
- tmp1="c"+text(#)+"r0";
- if(#==0,
- Putpoint(tmp,Tgrid(tmp1));
- ,
- Putpoint(tmp,Tgrid(tmp1),[parse(tmp+".x"),C0.y]);
- clist_(#+1)=parse(tmp+".xy");
- );
- inspect(parse(tmp),"ptsize",3);
- inspect(parse(tmp),"labeled",false);
- if(mod(#,tick)==0 % #==m,
- tmp=clist_(#+1);
- drawtext(clist_(#+1)-[0.04,-0.1],"c"+text(#));
- );
- );
- forall(0..n,
- tmp="R"+text(#);
- tmp1="c0r"+text(#);
- if(#==0,
- Putpoint(tmp,Tgrid(tmp1));
- ,
- Putpoint(tmp,Tgrid(tmp1),[R0.x,parse(tmp+".y")]);
- rlist_(#+1)=parse(tmp+".xy");
- );
- Putpoint(tmp,Tgrid(tmp1),[R0.x,parse(tmp+".y")]);
- inspect(parse(tmp),"ptsize",3);
- inspect(parse(tmp),"labeled",false);
- if(mod(#,tick)==0 % #==n,
- tmp=rlist_(#+1);
- drawtext(rlist_(#+1)-[0.4,0.1],"r"+text(#));
- );
- );
- Tb=[clist,rlist];
- tmp=name+"="+Tb;
- parse(tmp);
- forall(0..m,
- tmp1="c"+text(#)+"r0";
- tmp2="c"+text(#)+"r"+text(n);
- Tlistplot("c"+text(#)+"r0r"+text(n),[tmp1,tmp2],options);
- if(#<m,
- tmp1=parse("C"+text(#));
- tmp2=parse("C"+text(#+1));
- tmp=(tmp1.xy+tmp2.xy)/2;
- drawtext(tmp+[-0.2,0.5],text((tmp2.x-tmp1.x)*10));
- );
- );
- forall(0..n,
- tmp1="c0r"+text(#);
- tmp2="c"+text(m)+"r"+text(#);
- Tlistplot("r"+text(#)+"c0c"+text(m),[tmp1,tmp2],options);
- if(#<n,
- tmp1=parse("R"+text(#));
- tmp2=parse("R"+text(#+1));
- tmp=(tmp1.xy+tmp2.xy)/2;
- drawtext(tmp-[1.2,0.1],text(abs(tmp1.y-tmp2.y)*10));
- );
- );
- Tsegrmv(rmvL,options);
- Addax(0);
- Eps=10^(-3);
- tmp1=clist_(length(clist));
- tmp2=rlist_1;
- tmp3=rlist_(length(rlist)); // 15.06.11
- Setwindow([0-Eps,tmp1_1+Eps],[tmp3_2-Eps,tmp2_2+Eps]);
- Tb;
-);
-
-Tseginfo(seg):=(
- regional(cr,tp,tpc,n1,n2,n3,tmp,tmp1,tmp2);
- if(substring(seg,0,2)=="sg",
- cr=substring(seg,2,length(seg));
- ,
- cr=seg;
- );
- tp=substring(cr,0,1);
- if(tp=="c",
- tpc="r";
- ,
- tpc="c";
- );
- tmp1=indexof(cr,tpc);
- tmp=substring(cr,tmp1,length(cr));
- tmp2=tmp1+indexof(tmp,tpc);
- n1=substring(cr,1,tmp1-1);
- n2=substring(cr,tmp1,tmp2-1);
- n3=substring(cr,tmp2,length(cr));
- [tp+n1,tpc,parse(n2),parse(n3)];
-);
-
-Tsegrmv(rmvL):=Tsegrmv(rmvL,[]);
-Tsegrmv(rmvL,options):=(
- regional(cr,gcL,flg,gc,hd,tail,tpc,m1,m2,n1,n2,tmp,tmp1,tmp2);
- forall(rmvL,cr,
- tmp1=Tseginfo(cr);
- hd=tmp1_1;
- tpc=tmp1_2;
- m1=tmp1_3;
- m2=tmp1_4;
- gcL=select(GCLIST,Tseginfo(#_1)_1==tmp1_1);
- flg=0;
- forall(gcL,
- if(flg==0,
- tmp=Tseginfo(#_1);
- n1=tmp_3;
- n2=tmp_4;
- if(m1>=n1 & m2<=n2,
- gc=#;
- flg=1;
- );
- );
- );
- if(flg==1,
- Changestyle([gc_1],["nodisp"]);
- tail="";
- if(indexof(hd,"r")>0,
- tail=hd; hd="";
- );
- if(n1<m1,
- tmp1=tpc+text(n1);
- tmp2=tpc+text(m1);
- tmp=hd+tail+tmp1+tmp2;
- Tlistplot(tmp,[hd+tmp1+tail,hd+tmp2+tail],options);
- );
- if(m2<n2,
- tmp1=tpc+text(m2);
- tmp2=tpc+text(n2);
- tmp=hd+tail+tmp1+tmp2;
- Tlistplot(tmp,[hd+tmp1+tail,hd+tmp2+tail],options);
- );
- );
- );
-);
-
-Tgrid(ptstr):=(
-//help:Tgrid("c2r5");
- regional(tmp,tmp1,tmp2);
- tmp=parse(ptstr);
- if(islist(tmp),
- tmp;
- ,
- tmp=indexof(ptstr,"r");
- tmp1=substring(ptstr,1,tmp-1);
- tmp1=parse(tmp1);
- tmp2=substring(ptstr,tmp,length(ptstr));
- tmp2=parse(tmp2);
- [tb_1_(tmp1+1)_1,tb_2_(tmp2+1)_2];
- );
-);
-
-Tlistplot(ptL):=Tlistplot(ptL,[]);
-Tlistplot(Ag1,Ag2):=(
- regional(nm,ptL,options);
- if(isstring(Ag1),
- nm=Ag1;
- ptL=Ag2;
- options=[];
- ,
- ptL=Ag1;
- options=Ag2;
- nm=ptL_1+ptL_2;
- );
- Tlistplot(nm,ptL,options);
-);
-Tlistplot(nm,ptL,options):=(
-//help:Tlistplot(["c0r0","c0r4"]);
-//help:Tlistplot("1",["c0r0","c0r4"]);
- regional(tmp);
- tmp=apply(ptL,Tgrid(#)); // 15.06.03
- Listplot(nm,tmp,append(options,"Msg=no"));
-);
-
-ChangeTablestyle(nameL,style):=(
-////help:ChangeTablestyle(["r0c0c3"],["da"]);
- regional(nmL,tmp,tmp1,tmp2);
- if(islist(nameL),nmL=nameL,nmL=[nameL]);
- nmL=apply(nmL,"sg"+#);
- nmL=select(nmL,islist(parse(#)));
- Changestyle(nmL,style);
-);
-
-Findcell(pos1,pos2):=Findcell("",pos1,pos2);
-Findcell(Tbdata,pos1,pos2):=(
-//help:Findcell("c0r0","c2r1");
- regional(tmp1,tmp2,posnw,posse,ctr,dx,dy);
- if(isstring(pos1),
- posnw=Tgrid(pos1); // 15.05.20
- posse=Tgrid(pos2);
- //posnw=parse(pos1);
- //posse=parse(pos2);
- ,
- if(islist(pos1),
- posnw=pos1;
- posse=pos2;
- ,
- tmp1="c"+text(pos1-1)+"r"+text(pos2-1);
- tmp2="c"+text(pos1)+"r"+text(pos2);
- posnw=Tgrid(tmp1);
- posse=Tgrid(tmp2);
-// posnw=parse(tmp1);
-// posse=parse(tmp2);
- );
- );
- ctr=(posnw+posse)/2;
- dx=abs(posse_1-ctr_1);
- dy=abs(posnw_2-ctr_2);
- [ctr,dx,dy];
-);
-
-Putcell(pos1,pos2,dir,lttr):=Putcell("",pos1,pos2,dir,lttr);
-Putcell(Tbdata,pos1,pos2,dir,lttr):=(
-//help:Putcell("c0r0","c2r1","lt","abc");
-//help:Putcell(2,3,"c","xyz");
- regional(tmp,tmp1,tmp2,posnw,posse,
- posdir,posstr,ctr,dx,dy);
- tmp=Findcell(Tbdata,pos1,pos2);
- ctr=tmp_1; dx=tmp_2; dy=tmp_3;
- posdir=ctr;
- posstr=dir;
- if(indexof(dir,"b")>0,
- posdir_2=posdir_2-dy;
- posstr=replace(posstr,"b","n");
- );
- if(indexof(dir,"t")>0,
- posdir_2=posdir_2+dy;
- posstr=replace(posstr,"t","s");
- );
- if(indexof(dir,"l")>0,
- posdir_1=posdir_1-dx;
- posstr=replace(posstr,"l","e");
- );
- if(indexof(dir,"r")>0,
- posdir_1=posdir_1+dx;
- posstr=replace(posstr,"r","w");
- );
- Letter(posdir,posstr,text(lttr));
-);
-
-Putcellexpr(pos1,pos2,dir,ex):=Putcellexpr("",pos1,pos2,dir,ex);
-Putcellexpr(Tbdata,pos1,pos2,dir,ex):=(
-//help:Putcellexpr("c0r0","c2r1","lt","abc");
-//help:Putcellexpr(2,3,"c","\sin x");
- Putcell(Tbdata,pos1,pos2,dir,"$"+text(ex)+"$");
-);
-
-Putrow(nrow,dir,lttrL):=Putrow("",nrow,dir,lttrL);
-Putrow(Tbdata,nrow,dir,lttrL):=(
-//help:Putrow(1,"c",["x","y","z"]);
- regional(tmp,tmp1,mcol);
- mcol=length(lttrL);
- forall(1..mcol,
- Putcell(Tbdata,#,nrow,dir,lttrL_#);
- );
-);
-
-Putrowexpr(nrow,dir,exL):=Putrowexpr("",nrow,dir,exL);
-Putrowexpr(Tbdata,nrow,dir,exL):=(
-//help:Putrowexpr(2,"r",["x","y","z"]);
- regional(lttrL);
- lttrL=apply(exL,"$"+#+"$");
- Putrow(Tbdata,nrow,dir,lttrL);
-);
-
-PutcoL(mcol,dir,lttrL):=PutcoL("",mcol,dir,lttrL);
-PutcoL(Tbdata,mcol,dir,lttrL):=(
-//help:PutcoL(1,"c",["x","y","z"]);
- regional(tmp,tmp1,nrow);
- nrow=length(lttrL);
- forall(1..nrow,
- Putcell(Tbdata,mcol,#,dir,lttrL_#);
- );
-);
-PutcoLexpr(mcol,dir,exL):=PutcoLexpr("",mcol,dir,exL);
-PutcoLexpr(Tbdata,mcol,dir,exL):=(
-//help:PutcoLexpr(2,"r",["x","y","z"]);
- regional(lttrL);
- lttrL=apply(exL,"$"+#+"$");
- PutcoL(Tbdata,mcol,dir,lttrL);
-);
-
-Setwindow():=Setwindow("Msg=yes");
-Setwindow(str):=(
- regional(tmp,tmp1,tmp2,msg);
- msg="y";
- tmp=indexof(str,"="); // 16.02.10
- tmp1=Toupper(substring(str,tmp,tmp+1));
- if(tmp1=="N",msg="n");
- if((ispoint(SW) & ispoint(NE)),
- tmp1=Lcrd(SW);
- tmp2=Lcrd(NE);
- XMIN=tmp1_1; XMAX=tmp2_1;
- YMIN=tmp1_2; YMAX=tmp2_2;
- ,
-// XMIN=-5; XMAX=5;
-// YMIN=Lcrdy(-5); YMAX=Lcrdy(5);
- createpoint("SW",Pcrd([XMIN,YMIN]));
- createpoint("NE", Pcrd([XMAX,YMAX]));
- );
- if(msg=="y",
- println("Setwindow(["+XMIN+","+XMAX+"],["+YMIN+","+YMAX+"])");
- );
- layer(KETPICLAYER);
- autoclearlayer(KETPICLAYER,true);
- drawpoly([Pcrd([XMIN,YMIN]), Pcrd([XMAX,YMIN]),
- Pcrd([XMAX,YMAX]),Pcrd([XMIN,YMAX])],color->[1,1,1]);
-);
-Setwindow(xrange,yrange):=(
-//help:Setwindow([2,3],[-1,1]);
- XMIN=xrange_1;
- XMAX=xrange_2;
- YMIN=yrange_1;
- YMAX=yrange_2;
-// Setwindow();
-);
-
-Sciform(list):=(
- regional(plotlist,comp,pos,out,out2,nn,strL,flg,
- tmp,tmp1,tmp2,tmp3,Nj);
- plotlist=Flatten([list]);
- out=replace(plotlist_1,".xy","");
- out=replace(out,".x","(1)");
- out=replace(out,".y","(2)");
- if(length(plotlist)==1,
- comp=[];
- forall(1..length(out),
- comp=append(comp,substring(out,#-1,#));
- );
- out="";
- pos=0;
- forall(comp,
- if(#!="'",
- out=out+#;
- ,
- if(pos==0,
- tmp=indexof(out,"Assign(");
- if(substring(out,length(out)-7,length(out))=="Assign(",
- out=out+"'";
- pos=1;
- ,
- out=out+"Assign('";
- pos=2;
- );
- ,
- if(pos==2,
- out=out+"')";
- ,
- out=out+"'";
- );
- pos=0;
- );
- );
- );
- ,
- forall(2..length(plotlist),
- comp=plotlist_#;
- if(isstring(comp),
- pos=indexof(comp,"Assign(");
- if(pos>0,
- comp=substring(comp,6,length(comp));
- );
- out=out+"Assign(";
- comp=replace(comp,".xy","");
- comp=replace(comp,".x","(1)");
- comp=replace(comp,".y","(2)");
- out=out+"'"+comp+"'";
- out=out+"),";
- );
- if(islist(comp),
- forall(comp,
- out=out+"'"+#+"',";
- );
- );
- );
- if(length(plotlist)>1,
- out=substring(out,0,length(out)-1);
- out=out+");";
- );
- );
- pos=[];
- forall(1..length(out),
- tmp=indexof(substring(out,#-1,length(out)),"Assign");
- if(tmp>0,
- tmp1=#-1+tmp;
- if(length(pos)==0,
- pos=[tmp1];
- ,
- if(pos_(length(pos))<tmp1,
- pos=append(pos,tmp1);
- );
- );
- );
- );
- if(length(pos)>0,
- strL=[];
- Nj=0;
- forall(pos,
- tmp=substring(out,Nj,#-1);
- strL=append(strL,tmp);
- Nj=#-1;
- );
- strL=append(strL,substring(out,Nj,length(out)));
- out="";
- forall(strL,
- if(indexof(#,"Assign")==0,
- out=out+#;
- ,
- tmp=indexof(#,"('");
- tmp1=indexof(#,"')");
- tmp2=substring(#,tmp+1,tmp1-2);
- tmp3=substring(#,tmp1-2,length(#));
- if(indexof(tmp2,"=")==0,
- out=out+#;
- ,
- tmp=substring(tmp2,0,indexof(tmp2,"="));
- out=out+"'"+tmp+"'+"+"Assign('";
- tmp=substring(tmp2,indexof(tmp2,"="),length(tmp2));
- out=out+tmp+tmp3;
- );
- );
- );
- );
- out2=""; // patched 16.01.21 from
- nn=length(out);
- flg=0;
- forall(1..nn,
- if(flg==0,
- tmp=indexof(out,"='+Assign('");
- if(tmp==0,
- out2=out2+out;
- flg=1;
- ,
- out2=out2+substring(out,0,tmp);
- out=substring(out,tmp+10,length(out));
- tmp=indexof(out,"'"); // 16.04.19 from
- tmp1=substring(out,0,tmp-1);
- tmp2="1234567890";
- tmp=apply(1..length(tmp1),
- indexof(tmp2,substring(tmp1,#-1,#)));
- tmp=min(tmp);
- if(tmp==0, // 16.04.19 upto
- out2=out2+"'+Assign('";
- ,
- tmp=indexof(out,"'");
- out=substring(out,0,tmp)+substring(out,tmp+1,length(out)); // 16.04.18 upto
- );
- );
- );
- );
- out2=replace(out2,"Dist=","D=");
- out2=replace(out2,"Dis=","D=");
- out2;
-);
-
-
-Rform(list):=(
- regional(plotlist,comp,pos,out,strL,tmp,tmp1,tmp2,tmp3,Nj);
- out=list;
- out=replace(out,"[[[","list([[");
- out=replace(out,"[","c(");
- out=replace(out,"]",")");
- out=replace(out,".xy","");
- out=replace(out,".x","[1]");
- out=replace(out,".y","[2]");
- out;
-);
-
-Defvar(varstr):=(
- regional(name,value,tmp,tmp1);
- parse(varstr);
- tmp=indexof(varstr,"=");
- name=substring(varstr,0,tmp-1);
- value=substring(varstr,tmp,length(varstr));
- value=parse(value);
- tmp1=select(1..length(VLIST),VLIST_#_1==name+"=");
- if(length(tmp1)>0,
- tmp=tmp1_1;
- VLIST_tmp=[name+"=",value];
- ,
- VLIST=prepend([name+"=",value],VLIST);
- );
-);
-
-Defvar(name,value):=(
-//help:Defvar("a",0.3);
- regional(tmp,tmp1);
- if(islist(value),
- tmp1="[";
- forall(value,
- tmp1=tmp1+format(#,5)+",";
- );
- tmp1=substring(tmp1,0,length(tmp1)-1)+"]";
- ,
- tmp1=format(value,5);
- );
- tmp=name+"="+tmp1; // 15.02.06
- parse(tmp);
- VLIST=select(VLIST,#_1!=name+"="); // 15.02.08
- VLIST=prepend([name+"=",value],VLIST);
-);
-
-Iftosci(strorg):=( // 16.06.10
- regional(str,ifL,ppL,cpL,kk,sL,
- tmp,tmp1,tmp2,tmp3,tmp4);
- str=replace(strorg,LFmark,"");
- ifL=Indexall(str,"if(");
- ppL=Bracket(str,"()");
- cpL=Indexall(str,",");
- tmp1=Bracket(str,"[]");
- forall(1..(length(tmp1)/2),kk,
- cpL=select(cpL,#<tmp1_(2*kk-1)_1%#_1>tmp1_(2*kk)_1);
- );
- forall(1..length(ifL),kk,
- tmp=select(ppL,#_1>ifL_kk);
- tmp1=tmp_1;
- tmp2=select(tmp,#_2==-tmp1_2);
- tmp2=tmp2_1;
- tmp3=select(cpL,#>tmp1_1 & #<tmp2_1);
- ifL_kk=[tmp1_1,tmp2_1,tmp1_2,tmp3];
- );
- forall(1..length(cpL),kk,
- tmp=select(1..length(ifL),contains(ifL_#_4,cpL_kk));
- tmp1=tmp_(length(tmp));
- cpL_kk=[cpL_kk,tmp1];
- );
- sL=apply(1..length(str),substring(str,#-1,#));
- forall(1..length(ifL),kk,
- tmp1=ifL_kk_1;
- tmp2=ifL_kk_2;
- tmp=select(cpL,#_2==kk);
- tmp3=apply(tmp,#_1);
- sL_tmp1=" ";
- sL_tmp2=";end;";
- sL_(tmp3_1)=" then,";
- if(length(tmp3)>1,
- sL_(tmp3_2)=";else,";
- );
- );
- tmp=sum(sL);
-);
-
-Fortosci(strorg):=(
- regional(str,jj,var,tmp,tmp1,tmp2,tmp3,tmp4,
- Out,repL,Pflg,Iflg,Cflg);
- str=strorg;
- repL=[];
- tmp1=Indexall(str,"forall");
- tmp2=Indexall(str,",");
- forall(1..length(tmp1),jj,
- tmp=select(tmp2,#>tmp1_jj);
- var=substring(str,tmp_1,tmp_2-1);
- tmp3=substring(str,tmp1_jj-1,tmp_2-1);
- tmp=indexof(tmp3,"(");
- tmp4=substring(tmp3,tmp,length(tmp3));
- tmp=indexof(tmp4,",");
- tmp4=substring(tmp4,0,tmp-1);
- tmp4="for "+var+"="+tmp4;
- tmp4=replace(tmp4,"..",":");
- repL=concat(repL,[tmp3,tmp4]);
- );
- forall(1..length(repL)/2,
- str=replace(str,repL_(2*#-1),repL_(2*#));
- );
- tmp=Bracket(str);
- tmp=select(tmp,#_2==0);
- tmp=tmp_1_1;
- tmp1=substring(str,tmp-1,length(str));
- tmp1=replace(tmp1,")",";end");
- str=substring(str,0,tmp-1)+tmp1;
- str=replace(str,";;",";");
- str;
-);
-
-Deffun(name,bodylist):=(
-//help:Deffun("f(x)",["regional(y)","y=x^2*(x-3)","y"]); // 16.02.18
- regional(funstr,tmp,tmp1,str,Pos);
- funstr=name+":=(";
- forall(bodylist,
- funstr=funstr+#+";";
- );
- funstr=funstr+");";
- parse(funstr);
- tmp=bodylist_(length(bodylist));
- str="function "+tmp+"="+name+",";
- forall(1..(length(bodylist)-1),
- tmp1=bodylist_#;
- tmp1=replace(tmp1,LFmark,"");// 16.05.26
- tmp1=replace(tmp1," ","");// 16.05.26
- Pos=indexof(tmp1,"regional")+indexof(tmp1,"local");
- if(Pos==0,
- tmp=replace(tmp1,".xy","");
- tmp=replace(tmp,".x","(1)");
- tmp=replace(tmp,".y","(2)");
- if(indexof(tmp,"if(")>0,
- tmp=iftosci(tmp);
- );
- if(indexof(tmp,"forall(")>0, // 16.05.26from
- tmp=Fortosci(tmp);
- ); // 16.05.26upto
- str=str+tmp+",";
- );
- );
- str=str+"endfunction;";
- FUNLIST=append(FUNLIST,str);
-);
-
-Windispg():=(
- regional(Nj,Nk,Dt,Vj,tmp,tmp1,tmp2,tmp3,opcindy);
- gsave();
- layer(KETPIClayer);
- forall(GCLIST,Nj,
- if(isstring(Nj_1),Dt=parse(Nj_1),Dt=Nj_1); // 11.17
- if(islist(Dt) & length(Dt)>0, // 12.19,12.22
- tmp=MeasureDepth(Dt);
- if(tmp==1,Dt=[Dt]);
- opcindy=Nj_3;
- if(Nj_2<0,tmp1=0,tmp1=Nj_2);
- if(tmp1<10,
- forall(Dt,Nk,
-// tmp2=apply(Nk,if(ispoint(#),Lcrd(#),#));
-// tmp2=apply(tmp2,Pcrd(#));
- tmp2=Nk; // 14.12.04
- if(length(Nk)>1,
- forall(2..length(Nk),
- tmp3=textformat(Nk_[#-1,#],5);
- tmp3=substring(tmp3,1,length(tmp3)-1);
- if(tmp1==1,opcindy=opcindy+",dashpattern->[2,2]");
- tmp="draw("+tmp3+
- ",dashtype->"+text(tmp1)+",linecolor->"+KCOLOR+opcindy+")";
- parse(tmp);
- );
- ,
- if(length(Nk)==1,
- tmp="draw("+text(tmp2_1)+opcindy+")"; // 14.12.31
- parse(tmp);
- );
- );
- );
- );
- );
- );
-// if(ADDAXES=="1", // 16.10.08from
-// draw([XMIN,0],[XMAX,0],color->[0,0.2,0]);
-// draw([0,YMIIN],[0,YMAX],color->[0,0.2,0]);
-// Letter([[XMAX,0],"e","x",[0,YMAX],"n","y"]);
-// Letter([[0,0],"sw","O"]);
-// ); // 16.10.08upto
- grestore();
- layer(0);
-);
diff --git a/texmf-dist/doc/support/ketcindy/LICENSE b/texmf-dist/doc/support/ketcindy/LICENSE
deleted file mode 100644
index 6bdf8962..00000000
--- a/texmf-dist/doc/support/ketcindy/LICENSE
+++ /dev/null
@@ -1,14 +0,0 @@
-// Copyright (C) 2014 Setsuo Takato, KETCindy Japan project team
-//
-//This program is free software: you can redistribute it and/or modify
-// it under the terms of the GNU General Public License as published by
-// the Free Software Foundation; either version 3 of the License, or
-// (at your option) any later version.
-//
-// This program is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-// GNU General Public License for more details.
-//
-// You should have received a copy of the GNU General Public License
-// along with this program. If not, see <http://www.gnu.org/licenses/>
diff --git a/texmf-dist/doc/support/ketcindy/README.TeXLive b/texmf-dist/doc/support/ketcindy/README.TeXLive
deleted file mode 100644
index 5a4f0daf..00000000
--- a/texmf-dist/doc/support/ketcindy/README.TeXLive
+++ /dev/null
@@ -1,9 +0,0 @@
-KETCindy for TeX Live
-=====================
-The files originally distributed by Prof. Takato have been adapted
-by Norbert Preining to work within the framework of TeX Live.
-In particular the setketcindy(r).txt and the ScriptInitialization.txt
-and its depending template.cdy have been patched to work with
-unwritable texmf-dist trees.
-
-2017-10-19 Norbert Preining
diff --git a/texmf-dist/doc/support/ketcindy/ScriptKeytyped.txt b/texmf-dist/doc/support/ketcindy/ScriptKeytyped.txt
deleted file mode 100644
index cbb97c47..00000000
--- a/texmf-dist/doc/support/ketcindy/ScriptKeytyped.txt
+++ /dev/null
@@ -1,134 +0,0 @@
-if(key()=="?" % keydownlist()==[32],
- if(!isreal(NumTyped),NumTyped=0);
- if(NumTyped==0,
- DispStr=
- "Figure(1) Parent(2) Parapara(3) Movie(4) Surf(5)";
- );
- if(NumTyped==1,
- DispStr=
- "Shift+ Title(T) Para(P) AniF(A) Slide(S) Digest(D)";
- );
- if(NumTyped==2,
- DispStr="Shift+ Meshlab(M) KeTCindyJS(J)";
- );
- if(NumTyped==3,
- DispStr=
- "Ch : disp(0) chg(9) N(+,-) add(<) rmv(>)";
- );
- drawtext(mouse().xy,DispStr,size->24);
- NumTyped=mod(NumTyped+1,4);
-,
- NumTyped=0;
-);
-if(key()=="1",//Mkfigure
- Viewtex();
- kc();
-);
-if(key()=="2",//Mkparent
- Viewparent();
-);
-if(key()=="3",//Flipbook(Parapara)
- Flipbook();
-);
-if(key()=="4",//Texmovie
- Texmovie();
- kc();
-);
-if(key()=="5",//Surface
- Cheader();
- Cmain();
- kcC();
- if(ChNum>0,
- Ch=[ChNum];
- ,
- Ch=[1];
- );
- ChNum=0;
-);
-if(key()=="T",//Title
- Maketitle();
-);
-if(key()=="P",//ParaF
- Parafolder();
-);
-if(key()=="A",//Animatefile
- Animatefile();
-);
-if(key()=="S",//Slide
- Mkslides();
-);
-if(key()=="D",//Digest(Summary)
- Mkslidesummary();
-);
-if(key()=="M",//Meshlab
- Mkviewobj(OCNAME,OBJCMD,OCOPTION);
-);
-if(key()=="J",//KeTCindyJS
- Mkketcindyjs();
-);
-
-if(key()=="0",
- Dispchoice();
-);
-if(key()=="9",
- if(length(Ch)==0,
- Ch=[ChNum];
- ,
- if(!contains(Ch,ChNum),
- Ch=append(Ch,ChNum);
- ChNum=Ch_(length(Ch)-1);
- Ch=remove(Ch,[ChNum]);
- Ch=sort(Ch);
- );
- );
- Dispchoice();
-);
-if(key()=="+",
- ChNum=ChNum+1;
- Dispchoice();
-);
-if(key()=="-",
- ChNum=ChNum-1;
- Dispchoice();
-);
-if(key()=="<",
- if(length(select(Ch,#==ChNum))==0,
- Ch=append(Ch,ChNum);
- Ch=sort(Ch);
- ChNum=ChNum+1;
- );
- Dispchoice();
-);
-if(key()=="^",
- if(length(Ch)==0,
- Ch=[ChNum];
- ,
- if(!contains(Ch,ChNum),
- Ch=Ch_(1..(length(Ch)-1));
- Ch=append(Ch,ChNum);
- Ch=sort(Ch);
- );
- );
- ChNum=ChNum+1;
- Dispchoice();
-);
-if(key()=="~",
- if(length(Ch)==0,
- Ch=[ChNum];
- ,
- if(!contains(Ch,ChNum),
- Ch=Ch_(1..(length(Ch)-1));
- Ch=append(Ch,ChNum);
- Ch=sort(Ch);
- );
- );
- ChNum=max(ChNum-1,1);
- Dispchoice();
-);
-if(key()==">",
- if(length(Ch)>0,
- ChNum=Ch_(length(Ch));
- Ch=Remove(Ch,[ChNum]);
- );
- Dispchoice();
-);
diff --git a/texmf-dist/doc/support/ketcindy/Scriptfigure.txt b/texmf-dist/doc/support/ketcindy/Scriptfigure.txt
deleted file mode 100644
index 9a330d46..00000000
--- a/texmf-dist/doc/support/ketcindy/Scriptfigure.txt
+++ /dev/null
@@ -1,16 +0,0 @@
-Ketinit();
-Texparent="";
-
-Putpoint("A",[-4,0],A.xy);
-Putpoint("B",[4,0],B.xy);
-Putpoint("C",[1,4],C.xy);
- // points can be put with Cindy button.
-
-Listplot([A,B,C,A]);
-Plotdata("1","sin(x)","x",["da"]);
-Paramplot("1","3*[cos(3*t),sin(2*t)]","t=[0,4*pi]",["Num=200","do"]);
-
-Windispg();
-
-//Help("Plotdata");
-//Help("Option");
diff --git a/texmf-dist/doc/support/ketcindy/Scriptkelib.txt b/texmf-dist/doc/support/ketcindy/Scriptkelib.txt
deleted file mode 100644
index bd9197ba..00000000
--- a/texmf-dist/doc/support/ketcindy/Scriptkelib.txt
+++ /dev/null
@@ -1,4 +0,0 @@
-use("KetCindyPlugin");
-Dircdy=loaddirectory;
-setdirectory(plugindirectory);
-import("dirhead.txt");
diff --git a/texmf-dist/doc/support/ketcindy/Scriptketlibsci.txt b/texmf-dist/doc/support/ketcindy/Scriptketlibsci.txt
deleted file mode 100644
index a703b64c..00000000
--- a/texmf-dist/doc/support/ketcindy/Scriptketlibsci.txt
+++ /dev/null
@@ -1,8 +0,0 @@
-use("KetCindyPlugin");
-Dircdy=loaddirectory;
-setdirectory(plugindirectory);
-import("dirheadsci.txt");
-//PathS=replace(PathS,"6.0.0","5.5.2");
-
-//Ketinit();
-//Ketinit3d();
diff --git a/texmf-dist/doc/support/ketcindy/ketmanual/CindyJS/Cindy.js b/texmf-dist/doc/support/ketcindy/ketmanual/CindyJS/Cindy.js
deleted file mode 100644
index 04aa2fd9..00000000
--- a/texmf-dist/doc/support/ketcindy/ketmanual/CindyJS/Cindy.js
+++ /dev/null
@@ -1,781 +0,0 @@
-/* CindyJS - (C) 2014-2016 The CindyJS Project
- * Mostly licensed under the Apache License 2.0, but subprojects may use different licensing.
- * See https://github.com/CindyJS/CindyJS/tree/bb244cab7fdc8d4ea030751ec40c6d384c09f464
- * for corresponding sources and their respective licensing conditions.
- */
-var enableInlineVideo=function(){function p(f,k,p,F){function E(p){ea=k(E,F);f(p-(K||p));K=p}var ea,K;return{start:function(){ea||E(0)},stop:function(){p(ea);ea=null;K=0}}}function E(f,k,p,F){function E(k){!!f[p]===!!F&&k.stopImmediatePropagation();delete f[p]}return f.addEventListener(k,E,!1),E}function ja(f,k,p,F){function E(f){p[k]=f}F&&E(f[k]);Object.defineProperty(f,k,{get:function(){return p[k]},set:E})}function Ca(f,k,p){p.addEventListener(k,function(){return f.dispatchEvent(new Event(k))})}
-function pa(f,k){Promise.resolve().then(function(){f.dispatchEvent(new Event(k))})}function Da(f){var k=new Audio;return Ca(f,"play",k),Ca(f,"playing",k),Ca(f,"pause",k),k.crossOrigin=f.crossOrigin,k.src=f.src||f.currentSrc||"data:",k}function aa(k,p,F){(K||0)+200<Date.now()&&(k[Ea]=!0,K=Date.now());F||(k.currentTime=p);f[++nb%3]=100*p|0}function k(f){this.video.readyState>=this.video.HAVE_FUTURE_DATA?(this.hasAudio||(this.driver.currentTime=this.video.currentTime+f*this.video.playbackRate/1E3,this.video.loop&&
-this.driver.currentTime>=this.video.duration&&(this.driver.currentTime=0)),aa(this.video,this.driver.currentTime)):this.video.networkState===this.video.NETWORK_IDLE&&0===this.video.buffered.length&&this.video.load();this.video.ended&&(delete this.video[Ea],this.video.pause(!0))}function Oa(){var f=this[W];return this.webkitDisplayingFullscreen?void this[ob]():("data:"!==f.driver.src&&f.driver.src!==this.src&&(aa(this,0,!0),f.driver.src=this.src),void(this.paused&&(f.paused=!1,0===this.buffered.length&&
-this.load(),f.driver.play(),f.updater.start(),f.hasAudio||(pa(this,"play"),f.video.readyState>=f.video.HAVE_ENOUGH_DATA&&pa(this,"playing")))))}function F(f){var k=this[W];k.driver.pause();k.updater.stop();this.webkitDisplayingFullscreen&&this[sa]();k.paused&&!f||(k.paused=!0,k.hasAudio||pa(this,"pause"),this.ended&&(this[Ea]=!0,pa(this,"ended")))}function ea(F,E){var I=F[W]={};I.paused=!0;I.hasAudio=E;I.video=F;I.updater=p(k.bind(I),requestAnimationFrame,cancelAnimationFrame);E?I.driver=Da(F):(F.addEventListener("canplay",
-function(){F.paused||pa(F,"playing")}),I.driver={src:F.src||F.currentSrc||"data:",muted:!0,paused:!0,pause:function(){I.driver.paused=!0},play:function(){I.driver.paused=!1;I.driver.currentTime>=I.video.duration&&aa(F,0)},get ended(){return I.driver.currentTime>=I.video.duration}});F.addEventListener("emptied",function(){var f=!I.driver.src||"data:"===I.driver.src;I.driver.src&&I.driver.src!==F.src&&(aa(F,0,!0),I.driver.src=F.src,f?I.driver.play():I.updater.stop())},!1);F.addEventListener("webkitbeginfullscreen",
-function(){F.paused?E&&0===I.driver.buffered.length&&I.driver.load():(F.pause(),F[ob]())});E&&(F.addEventListener("webkitendfullscreen",function(){I.driver.currentTime=F.currentTime}),F.addEventListener("seeking",function(){0>f.indexOf(100*F.currentTime|0)&&(I.driver.currentTime=F.currentTime)}))}var K,U="object"==typeof document&&"object-fit"in document.head.style&&!matchMedia("(-webkit-video-playable-inline)").matches,W="bfred-it:iphone-inline-video",Ea="bfred-it:iphone-inline-video:event",ob="bfred-it:iphone-inline-video:nativeplay",
-sa="bfred-it:iphone-inline-video:nativepause",f=[],nb=0;return function(f,k){if(void 0===k&&(k={}),!f[W])if(k.everywhere||U&&(k.iPad||k.ipad?/iPhone|iPod|iPad/:/iPhone|iPod/).test(navigator.userAgent)){!f.paused&&f.webkitDisplayingFullscreen&&f.pause();ea(f,!f.muted);var p=f[W];f[ob]=f.play;f[sa]=f.pause;f.play=Oa;f.pause=F;ja(f,"paused",p.driver);ja(f,"muted",p.driver,!0);ja(f,"playbackRate",p.driver,!0);ja(f,"ended",p.driver);ja(f,"loop",p.driver,!0);E(f,"seeking");E(f,"seeked");E(f,"timeupdate",
-Ea,!1);E(f,"ended",Ea,!1);f.classList.add("IIV");f.muted&&f.autoplay&&f.play();/iPhone|iPod|iPad/.test(navigator.platform)||console.warn("iphone-inline-video is not guaranteed to work in emulated environments")}}}();
-(function(){function p(b,d,e){f.biginteger_used=1;null!=b&&("number"==typeof b&&"undefined"==typeof d?this.fromInt(b):"number"==typeof b?this.fromNumber(b,d,e):null==d&&"string"!=typeof b?this.fromString(b,256):this.fromString(b,d))}function E(){return new p(null,void 0,void 0)}function ja(b,d,e,q,f,k){for(;0<=--k;){var v=d*this[b++]+e[q]+f;f=Math.floor(v/67108864);e[q++]=v&67108863}return f}function Ca(b,d,e,q,f,k){var v=d&32767;for(d>>=15;0<=--k;){var C=this[b]&32767,p=this[b++]>>15,F=d*C+p*v,C=
-v*C+((F&32767)<<15)+e[q]+(f&1073741823);f=(C>>>30)+(F>>>15)+d*p+(f>>>30);e[q++]=C&1073741823}return f}function pa(b,d,e,q,f,k){var v=d&16383;for(d>>=14;0<=--k;){var C=this[b]&16383,p=this[b++]>>14,F=d*C+p*v,C=v*C+((F&16383)<<14)+e[q]+f;f=(C>>28)+(F>>14)+d*p;e[q++]=C&268435455}return f}function Da(b,d){var e=cb[b.charCodeAt(d)];return null==e?-1:e}function aa(b){var d=E();d.fromInt(b);return d}function k(b){var d=1,e;0!=(e=b>>>16)&&(b=e,d+=16);0!=(e=b>>8)&&(b=e,d+=8);0!=(e=b>>4)&&(b=e,d+=4);0!=(e=
-b>>2)&&(b=e,d+=2);0!=b>>1&&(d+=1);return d}function Oa(b){this.m=b}function F(b){this.m=b;this.mp=b.invDigit();this.mpl=this.mp&32767;this.mph=this.mp>>15;this.um=(1<<b.DB-15)-1;this.mt2=2*b.t}function ea(b,d){return b&d}function K(b,d){return b|d}function U(b,d){return b^d}function W(b,d){return b&~d}function Ea(){}function ob(b){return b}function sa(b){this.r2=E();this.q3=E();p.ONE.dlShiftTo(2*b.t,this.r2);this.mu=this.r2.divide(b);this.m=b}var f={use_lines:!0,use_xyz:!1},nb=!1;"undefined"!==typeof module&&
-module.exports?(module.exports=f,nb=!0):"undefined"!==typeof document?window.ClipperLib=f:self.ClipperLib=f;var V;if(nb)Y="chrome",V="Netscape";else{var Y=navigator.userAgent.toString().toLowerCase();V=navigator.appName}var I,Xb,Jb,Qa,ab,xb;I=-1!=Y.indexOf("chrome")&&-1==Y.indexOf("chromium")?1:0;nb=-1!=Y.indexOf("chromium")?1:0;Xb=-1!=Y.indexOf("safari")&&-1==Y.indexOf("chrome")&&-1==Y.indexOf("chromium")?1:0;Jb=-1!=Y.indexOf("firefox")?1:0;Y.indexOf("firefox/17");Y.indexOf("firefox/15");Y.indexOf("firefox/3");
-Qa=-1!=Y.indexOf("opera")?1:0;Y.indexOf("msie 10");Y.indexOf("msie 9");ab=-1!=Y.indexOf("msie 8")?1:0;xb=-1!=Y.indexOf("msie 7")?1:0;Y=-1!=Y.indexOf("msie ")?1:0;f.biginteger_used=null;"Microsoft Internet Explorer"==V?(p.prototype.am=Ca,V=30):"Netscape"!=V?(p.prototype.am=ja,V=26):(p.prototype.am=pa,V=28);p.prototype.DB=V;p.prototype.DM=(1<<V)-1;p.prototype.DV=1<<V;p.prototype.FV=Math.pow(2,52);p.prototype.F1=52-V;p.prototype.F2=2*V-52;var cb=[],qa;V=48;for(qa=0;9>=qa;++qa)cb[V++]=qa;V=97;for(qa=
-10;36>qa;++qa)cb[V++]=qa;V=65;for(qa=10;36>qa;++qa)cb[V++]=qa;Oa.prototype.convert=function(b){return 0>b.s||0<=b.compareTo(this.m)?b.mod(this.m):b};Oa.prototype.revert=function(b){return b};Oa.prototype.reduce=function(b){b.divRemTo(this.m,null,b)};Oa.prototype.mulTo=function(b,d,e){b.multiplyTo(d,e);this.reduce(e)};Oa.prototype.sqrTo=function(b,d){b.squareTo(d);this.reduce(d)};F.prototype.convert=function(b){var d=E();b.abs().dlShiftTo(this.m.t,d);d.divRemTo(this.m,null,d);0>b.s&&0<d.compareTo(p.ZERO)&&
-this.m.subTo(d,d);return d};F.prototype.revert=function(b){var d=E();b.copyTo(d);this.reduce(d);return d};F.prototype.reduce=function(b){for(;b.t<=this.mt2;)b[b.t++]=0;for(var d=0;d<this.m.t;++d){var e=b[d]&32767,q=e*this.mpl+((e*this.mph+(b[d]>>15)*this.mpl&this.um)<<15)&b.DM,e=d+this.m.t;for(b[e]+=this.m.am(0,q,b,d,0,this.m.t);b[e]>=b.DV;)b[e]-=b.DV,b[++e]++}b.clamp();b.drShiftTo(this.m.t,b);0<=b.compareTo(this.m)&&b.subTo(this.m,b)};F.prototype.mulTo=function(b,d,e){b.multiplyTo(d,e);this.reduce(e)};
-F.prototype.sqrTo=function(b,d){b.squareTo(d);this.reduce(d)};p.prototype.copyTo=function(b){for(var d=this.t-1;0<=d;--d)b[d]=this[d];b.t=this.t;b.s=this.s};p.prototype.fromInt=function(b){this.t=1;this.s=0>b?-1:0;0<b?this[0]=b:-1>b?this[0]=b+this.DV:this.t=0};p.prototype.fromString=function(b,d){var e;if(16==d)e=4;else if(8==d)e=3;else if(256==d)e=8;else if(2==d)e=1;else if(32==d)e=5;else if(4==d)e=2;else{this.fromRadix(b,d);return}this.s=this.t=0;for(var q=b.length,f=!1,k=0;0<=--q;){var v=8==e?
-b[q]&255:Da(b,q);0>v?"-"==b.charAt(q)&&(f=!0):(f=!1,0==k?this[this.t++]=v:k+e>this.DB?(this[this.t-1]|=(v&(1<<this.DB-k)-1)<<k,this[this.t++]=v>>this.DB-k):this[this.t-1]|=v<<k,k+=e,k>=this.DB&&(k-=this.DB))}8==e&&0!=(b[0]&128)&&(this.s=-1,0<k&&(this[this.t-1]|=(1<<this.DB-k)-1<<k));this.clamp();f&&p.ZERO.subTo(this,this)};p.prototype.clamp=function(){for(var b=this.s&this.DM;0<this.t&&this[this.t-1]==b;)--this.t};p.prototype.dlShiftTo=function(b,d){var e;for(e=this.t-1;0<=e;--e)d[e+b]=this[e];for(e=
-b-1;0<=e;--e)d[e]=0;d.t=this.t+b;d.s=this.s};p.prototype.drShiftTo=function(b,d){for(var e=b;e<this.t;++e)d[e-b]=this[e];d.t=Math.max(this.t-b,0);d.s=this.s};p.prototype.lShiftTo=function(b,d){var e=b%this.DB,q=this.DB-e,f=(1<<q)-1,k=Math.floor(b/this.DB),v=this.s<<e&this.DM,C;for(C=this.t-1;0<=C;--C)d[C+k+1]=this[C]>>q|v,v=(this[C]&f)<<e;for(C=k-1;0<=C;--C)d[C]=0;d[k]=v;d.t=this.t+k+1;d.s=this.s;d.clamp()};p.prototype.rShiftTo=function(b,d){d.s=this.s;var e=Math.floor(b/this.DB);if(e>=this.t)d.t=
-0;else{var q=b%this.DB,f=this.DB-q,k=(1<<q)-1;d[0]=this[e]>>q;for(var v=e+1;v<this.t;++v)d[v-e-1]|=(this[v]&k)<<f,d[v-e]=this[v]>>q;0<q&&(d[this.t-e-1]|=(this.s&k)<<f);d.t=this.t-e;d.clamp()}};p.prototype.subTo=function(b,d){for(var e=0,f=0,n=Math.min(b.t,this.t);e<n;)f+=this[e]-b[e],d[e++]=f&this.DM,f>>=this.DB;if(b.t<this.t){for(f-=b.s;e<this.t;)f+=this[e],d[e++]=f&this.DM,f>>=this.DB;f+=this.s}else{for(f+=this.s;e<b.t;)f-=b[e],d[e++]=f&this.DM,f>>=this.DB;f-=b.s}d.s=0>f?-1:0;-1>f?d[e++]=this.DV+
-f:0<f&&(d[e++]=f);d.t=e;d.clamp()};p.prototype.multiplyTo=function(b,d){var e=this.abs(),f=b.abs(),n=e.t;for(d.t=n+f.t;0<=--n;)d[n]=0;for(n=0;n<f.t;++n)d[n+e.t]=e.am(0,f[n],d,n,0,e.t);d.s=0;d.clamp();this.s!=b.s&&p.ZERO.subTo(d,d)};p.prototype.squareTo=function(b){for(var d=this.abs(),e=b.t=2*d.t;0<=--e;)b[e]=0;for(e=0;e<d.t-1;++e){var f=d.am(e,d[e],b,2*e,0,1);(b[e+d.t]+=d.am(e+1,2*d[e],b,2*e+1,f,d.t-e-1))>=d.DV&&(b[e+d.t]-=d.DV,b[e+d.t+1]=1)}0<b.t&&(b[b.t-1]+=d.am(e,d[e],b,2*e,0,1));b.s=0;b.clamp()};
-p.prototype.divRemTo=function(b,d,e){var f=b.abs();if(!(0>=f.t)){var n=this.abs();if(n.t<f.t)null!=d&&d.fromInt(0),null!=e&&this.copyTo(e);else{null==e&&(e=E());var N=E(),v=this.s;b=b.s;var C=this.DB-k(f[f.t-1]);0<C?(f.lShiftTo(C,N),n.lShiftTo(C,e)):(f.copyTo(N),n.copyTo(e));f=N.t;n=N[f-1];if(0!=n){var F=n*(1<<this.F1)+(1<f?N[f-2]>>this.F2:0),bb=this.FV/F,F=(1<<this.F1)/F,pb=1<<this.F2,H=e.t,ea=H-f,K=null==d?E():d;N.dlShiftTo(ea,K);0<=e.compareTo(K)&&(e[e.t++]=1,e.subTo(K,e));p.ONE.dlShiftTo(f,K);
-for(K.subTo(N,N);N.t<f;)N[N.t++]=0;for(;0<=--ea;){var I=e[--H]==n?this.DM:Math.floor(e[H]*bb+(e[H-1]+pb)*F);if((e[H]+=N.am(0,I,e,ea,0,f))<I)for(N.dlShiftTo(ea,K),e.subTo(K,e);e[H]<--I;)e.subTo(K,e)}null!=d&&(e.drShiftTo(f,d),v!=b&&p.ZERO.subTo(d,d));e.t=f;e.clamp();0<C&&e.rShiftTo(C,e);0>v&&p.ZERO.subTo(e,e)}}}};p.prototype.invDigit=function(){if(1>this.t)return 0;var b=this[0];if(0==(b&1))return 0;var d=b&3,d=d*(2-(b&15)*d)&15,d=d*(2-(b&255)*d)&255,d=d*(2-((b&65535)*d&65535))&65535,d=d*(2-b*d%this.DV)%
-this.DV;return 0<d?this.DV-d:-d};p.prototype.isEven=function(){return 0==(0<this.t?this[0]&1:this.s)};p.prototype.exp=function(b,d){if(4294967295<b||1>b)return p.ONE;var e=E(),f=E(),n=d.convert(this),N=k(b)-1;for(n.copyTo(e);0<=--N;)if(d.sqrTo(e,f),0<(b&1<<N))d.mulTo(f,n,e);else var v=e,e=f,f=v;return d.revert(e)};p.prototype.toString=function(b){if(0>this.s)return"-"+this.negate().toString(b);if(16==b)b=4;else if(8==b)b=3;else if(2==b)b=1;else if(32==b)b=5;else if(4==b)b=2;else return this.toRadix(b);
-var d=(1<<b)-1,e,f=!1,n="",k=this.t,v=this.DB-k*this.DB%b;if(0<k--)for(v<this.DB&&0<(e=this[k]>>v)&&(f=!0,n="0123456789abcdefghijklmnopqrstuvwxyz".charAt(e));0<=k;)v<b?(e=(this[k]&(1<<v)-1)<<b-v,e|=this[--k]>>(v+=this.DB-b)):(e=this[k]>>(v-=b)&d,0>=v&&(v+=this.DB,--k)),0<e&&(f=!0),f&&(n+="0123456789abcdefghijklmnopqrstuvwxyz".charAt(e));return f?n:"0"};p.prototype.negate=function(){var b=E();p.ZERO.subTo(this,b);return b};p.prototype.abs=function(){return 0>this.s?this.negate():this};p.prototype.compareTo=
-function(b){var d=this.s-b.s;if(0!=d)return d;var e=this.t,d=e-b.t;if(0!=d)return 0>this.s?-d:d;for(;0<=--e;)if(0!=(d=this[e]-b[e]))return d;return 0};p.prototype.bitLength=function(){return 0>=this.t?0:this.DB*(this.t-1)+k(this[this.t-1]^this.s&this.DM)};p.prototype.mod=function(b){var d=E();this.abs().divRemTo(b,null,d);0>this.s&&0<d.compareTo(p.ZERO)&&b.subTo(d,d);return d};p.prototype.modPowInt=function(b,d){var e;e=256>b||d.isEven()?new Oa(d):new F(d);return this.exp(b,e)};p.ZERO=aa(0);p.ONE=
-aa(1);Ea.prototype.convert=ob;Ea.prototype.revert=ob;Ea.prototype.mulTo=function(b,d,e){b.multiplyTo(d,e)};Ea.prototype.sqrTo=function(b,d){b.squareTo(d)};sa.prototype.convert=function(b){if(0>b.s||b.t>2*this.m.t)return b.mod(this.m);if(0>b.compareTo(this.m))return b;var d=E();b.copyTo(d);this.reduce(d);return d};sa.prototype.revert=function(b){return b};sa.prototype.reduce=function(b){b.drShiftTo(this.m.t-1,this.r2);b.t>this.m.t+1&&(b.t=this.m.t+1,b.clamp());this.mu.multiplyUpperTo(this.r2,this.m.t+
-1,this.q3);for(this.m.multiplyLowerTo(this.q3,this.m.t+1,this.r2);0>b.compareTo(this.r2);)b.dAddOffset(1,this.m.t+1);for(b.subTo(this.r2,b);0<=b.compareTo(this.m);)b.subTo(this.m,b)};sa.prototype.mulTo=function(b,d,e){b.multiplyTo(d,e);this.reduce(e)};sa.prototype.sqrTo=function(b,d){b.squareTo(d);this.reduce(d)};var H=[2,3,5,7,11,13,17,19,23,29,31,37,41,43,47,53,59,61,67,71,73,79,83,89,97,101,103,107,109,113,127,131,137,139,149,151,157,163,167,173,179,181,191,193,197,199,211,223,227,229,233,239,
-241,251,257,263,269,271,277,281,283,293,307,311,313,317,331,337,347,349,353,359,367,373,379,383,389,397,401,409,419,421,431,433,439,443,449,457,461,463,467,479,487,491,499,503,509,521,523,541,547,557,563,569,571,577,587,593,599,601,607,613,617,619,631,641,643,647,653,659,661,673,677,683,691,701,709,719,727,733,739,743,751,757,761,769,773,787,797,809,811,821,823,827,829,839,853,857,859,863,877,881,883,887,907,911,919,929,937,941,947,953,967,971,977,983,991,997],Zb=67108864/H[H.length-1];p.prototype.chunkSize=
-function(b){return Math.floor(Math.LN2*this.DB/Math.log(b))};p.prototype.toRadix=function(b){null==b&&(b=10);if(0==this.signum()||2>b||36<b)return"0";var d=this.chunkSize(b),d=Math.pow(b,d),e=aa(d),f=E(),n=E(),k="";for(this.divRemTo(e,f,n);0<f.signum();)k=(d+n.intValue()).toString(b).substr(1)+k,f.divRemTo(e,f,n);return n.intValue().toString(b)+k};p.prototype.fromRadix=function(b,d){this.fromInt(0);null==d&&(d=10);for(var e=this.chunkSize(d),f=Math.pow(d,e),n=!1,k=0,v=0,C=0;C<b.length;++C){var F=
-Da(b,C);0>F?"-"==b.charAt(C)&&0==this.signum()&&(n=!0):(v=d*v+F,++k>=e&&(this.dMultiply(f),this.dAddOffset(v,0),v=k=0))}0<k&&(this.dMultiply(Math.pow(d,k)),this.dAddOffset(v,0));n&&p.ZERO.subTo(this,this)};p.prototype.fromNumber=function(b,d,e){if("number"==typeof d)if(2>b)this.fromInt(1);else for(this.fromNumber(b,e),this.testBit(b-1)||this.bitwiseTo(p.ONE.shiftLeft(b-1),K,this),this.isEven()&&this.dAddOffset(1,0);!this.isProbablePrime(d);)this.dAddOffset(2,0),this.bitLength()>b&&this.subTo(p.ONE.shiftLeft(b-
-1),this);else{e=[];var f=b&7;e.length=(b>>3)+1;d.nextBytes(e);e[0]=0<f?e[0]&(1<<f)-1:0;this.fromString(e,256)}};p.prototype.bitwiseTo=function(b,d,e){var f,n,k=Math.min(b.t,this.t);for(f=0;f<k;++f)e[f]=d(this[f],b[f]);if(b.t<this.t){n=b.s&this.DM;for(f=k;f<this.t;++f)e[f]=d(this[f],n);e.t=this.t}else{n=this.s&this.DM;for(f=k;f<b.t;++f)e[f]=d(n,b[f]);e.t=b.t}e.s=d(this.s,b.s);e.clamp()};p.prototype.changeBit=function(b,d){var e=p.ONE.shiftLeft(b);this.bitwiseTo(e,d,e);return e};p.prototype.addTo=function(b,
-d){for(var e=0,f=0,n=Math.min(b.t,this.t);e<n;)f+=this[e]+b[e],d[e++]=f&this.DM,f>>=this.DB;if(b.t<this.t){for(f+=b.s;e<this.t;)f+=this[e],d[e++]=f&this.DM,f>>=this.DB;f+=this.s}else{for(f+=this.s;e<b.t;)f+=b[e],d[e++]=f&this.DM,f>>=this.DB;f+=b.s}d.s=0>f?-1:0;0<f?d[e++]=f:-1>f&&(d[e++]=this.DV+f);d.t=e;d.clamp()};p.prototype.dMultiply=function(b){this[this.t]=this.am(0,b-1,this,0,0,this.t);++this.t;this.clamp()};p.prototype.dAddOffset=function(b,d){if(0!=b){for(;this.t<=d;)this[this.t++]=0;for(this[d]+=
-b;this[d]>=this.DV;)this[d]-=this.DV,++d>=this.t&&(this[this.t++]=0),++this[d]}};p.prototype.multiplyLowerTo=function(b,d,e){var f=Math.min(this.t+b.t,d);e.s=0;for(e.t=f;0<f;)e[--f]=0;var n;for(n=e.t-this.t;f<n;++f)e[f+this.t]=this.am(0,b[f],e,f,0,this.t);for(n=Math.min(b.t,d);f<n;++f)this.am(0,b[f],e,f,0,d-f);e.clamp()};p.prototype.multiplyUpperTo=function(b,d,e){--d;var f=e.t=this.t+b.t-d;for(e.s=0;0<=--f;)e[f]=0;for(f=Math.max(d-this.t,0);f<b.t;++f)e[this.t+f-d]=this.am(d-f,b[f],e,0,0,this.t+f-
-d);e.clamp();e.drShiftTo(1,e)};p.prototype.modInt=function(b){if(0>=b)return 0;var d=this.DV%b,e=0>this.s?b-1:0;if(0<this.t)if(0==d)e=this[0]%b;else for(var f=this.t-1;0<=f;--f)e=(d*e+this[f])%b;return e};p.prototype.millerRabin=function(b){var d=this.subtract(p.ONE),e=d.getLowestSetBit();if(0>=e)return!1;var f=d.shiftRight(e);b=b+1>>1;b>H.length&&(b=H.length);for(var n=E(),k=0;k<b;++k){n.fromInt(H[Math.floor(Math.random()*H.length)]);var v=n.modPow(f,this);if(0!=v.compareTo(p.ONE)&&0!=v.compareTo(d)){for(var C=
-1;C++<e&&0!=v.compareTo(d);)if(v=v.modPowInt(2,this),0==v.compareTo(p.ONE))return!1;if(0!=v.compareTo(d))return!1}}return!0};p.prototype.clone=function(){var b=E();this.copyTo(b);return b};p.prototype.intValue=function(){if(0>this.s){if(1==this.t)return this[0]-this.DV;if(0==this.t)return-1}else{if(1==this.t)return this[0];if(0==this.t)return 0}return(this[1]&(1<<32-this.DB)-1)<<this.DB|this[0]};p.prototype.byteValue=function(){return 0==this.t?this.s:this[0]<<24>>24};p.prototype.shortValue=function(){return 0==
-this.t?this.s:this[0]<<16>>16};p.prototype.signum=function(){return 0>this.s?-1:0>=this.t||1==this.t&&0>=this[0]?0:1};p.prototype.toByteArray=function(){var b=this.t,d=[];d[0]=this.s;var e=this.DB-b*this.DB%8,f,n=0;if(0<b--)for(e<this.DB&&(f=this[b]>>e)!=(this.s&this.DM)>>e&&(d[n++]=f|this.s<<this.DB-e);0<=b;)if(8>e?(f=(this[b]&(1<<e)-1)<<8-e,f|=this[--b]>>(e+=this.DB-8)):(f=this[b]>>(e-=8)&255,0>=e&&(e+=this.DB,--b)),0!=(f&128)&&(f|=-256),0==n&&(this.s&128)!=(f&128)&&++n,0<n||f!=this.s)d[n++]=f;
-return d};p.prototype.equals=function(b){return 0==this.compareTo(b)};p.prototype.min=function(b){return 0>this.compareTo(b)?this:b};p.prototype.max=function(b){return 0<this.compareTo(b)?this:b};p.prototype.and=function(b){var d=E();this.bitwiseTo(b,ea,d);return d};p.prototype.or=function(b){var d=E();this.bitwiseTo(b,K,d);return d};p.prototype.xor=function(b){var d=E();this.bitwiseTo(b,U,d);return d};p.prototype.andNot=function(b){var d=E();this.bitwiseTo(b,W,d);return d};p.prototype.not=function(){for(var b=
-E(),d=0;d<this.t;++d)b[d]=this.DM&~this[d];b.t=this.t;b.s=~this.s;return b};p.prototype.shiftLeft=function(b){var d=E();0>b?this.rShiftTo(-b,d):this.lShiftTo(b,d);return d};p.prototype.shiftRight=function(b){var d=E();0>b?this.lShiftTo(-b,d):this.rShiftTo(b,d);return d};p.prototype.getLowestSetBit=function(){for(var b=0;b<this.t;++b)if(0!=this[b]){var d=b*this.DB,b=this[b];if(0==b)b=-1;else{var e=0;0==(b&65535)&&(b>>=16,e+=16);0==(b&255)&&(b>>=8,e+=8);0==(b&15)&&(b>>=4,e+=4);0==(b&3)&&(b>>=2,e+=2);
-0==(b&1)&&++e;b=e}return d+b}return 0>this.s?this.t*this.DB:-1};p.prototype.bitCount=function(){for(var b=0,d=this.s&this.DM,e=0;e<this.t;++e){for(var f=this[e]^d,n=0;0!=f;)f&=f-1,++n;b+=n}return b};p.prototype.testBit=function(b){var d=Math.floor(b/this.DB);return d>=this.t?0!=this.s:0!=(this[d]&1<<b%this.DB)};p.prototype.setBit=function(b){return this.changeBit(b,K)};p.prototype.clearBit=function(b){return this.changeBit(b,W)};p.prototype.flipBit=function(b){return this.changeBit(b,U)};p.prototype.add=
-function(b){var d=E();this.addTo(b,d);return d};p.prototype.subtract=function(b){var d=E();this.subTo(b,d);return d};p.prototype.multiply=function(b){var d=E();this.multiplyTo(b,d);return d};p.prototype.divide=function(b){var d=E();this.divRemTo(b,d,null);return d};p.prototype.remainder=function(b){var d=E();this.divRemTo(b,null,d);return d};p.prototype.divideAndRemainder=function(b){var d=E(),e=E();this.divRemTo(b,d,e);return[d,e]};p.prototype.modPow=function(b,d){var e=b.bitLength(),f,n=aa(1),N;
-if(0>=e)return n;f=18>e?1:48>e?3:144>e?4:768>e?5:6;N=8>e?new Oa(d):d.isEven()?new sa(d):new F(d);var v=[],C=3,p=f-1,bb=(1<<f)-1;v[1]=N.convert(this);if(1<f)for(e=E(),N.sqrTo(v[1],e);C<=bb;)v[C]=E(),N.mulTo(e,v[C-2],v[C]),C+=2;for(var H=b.t-1,K,ea=!0,I=E(),e=k(b[H])-1;0<=H;){e>=p?K=b[H]>>e-p&bb:(K=(b[H]&(1<<e+1)-1)<<p-e,0<H&&(K|=b[H-1]>>this.DB+e-p));for(C=f;0==(K&1);)K>>=1,--C;0>(e-=C)&&(e+=this.DB,--H);if(ea)v[K].copyTo(n),ea=!1;else{for(;1<C;)N.sqrTo(n,I),N.sqrTo(I,n),C-=2;0<C?N.sqrTo(n,I):(C=n,
-n=I,I=C);N.mulTo(I,v[K],n)}for(;0<=H&&0==(b[H]&1<<e);)N.sqrTo(n,I),C=n,n=I,I=C,0>--e&&(e=this.DB-1,--H)}return N.revert(n)};p.prototype.modInverse=function(b){var d=b.isEven();if(this.isEven()&&d||0==b.signum())return p.ZERO;for(var e=b.clone(),f=this.clone(),n=aa(1),k=aa(0),v=aa(0),C=aa(1);0!=e.signum();){for(;e.isEven();)e.rShiftTo(1,e),d?(n.isEven()&&k.isEven()||(n.addTo(this,n),k.subTo(b,k)),n.rShiftTo(1,n)):k.isEven()||k.subTo(b,k),k.rShiftTo(1,k);for(;f.isEven();)f.rShiftTo(1,f),d?(v.isEven()&&
-C.isEven()||(v.addTo(this,v),C.subTo(b,C)),v.rShiftTo(1,v)):C.isEven()||C.subTo(b,C),C.rShiftTo(1,C);0<=e.compareTo(f)?(e.subTo(f,e),d&&n.subTo(v,n),k.subTo(C,k)):(f.subTo(e,f),d&&v.subTo(n,v),C.subTo(k,C))}if(0!=f.compareTo(p.ONE))return p.ZERO;if(0<=C.compareTo(b))return C.subtract(b);if(0>C.signum())C.addTo(b,C);else return C;return 0>C.signum()?C.add(b):C};p.prototype.pow=function(b){return this.exp(b,new Ea)};p.prototype.gcd=function(b){var d=0>this.s?this.negate():this.clone();b=0>b.s?b.negate():
-b.clone();if(0>d.compareTo(b)){var e=d,d=b;b=e}var e=d.getLowestSetBit(),f=b.getLowestSetBit();if(0>f)return d;e<f&&(f=e);for(0<f&&(d.rShiftTo(f,d),b.rShiftTo(f,b));0<d.signum();)0<(e=d.getLowestSetBit())&&d.rShiftTo(e,d),0<(e=b.getLowestSetBit())&&b.rShiftTo(e,b),0<=d.compareTo(b)?(d.subTo(b,d),d.rShiftTo(1,d)):(b.subTo(d,b),b.rShiftTo(1,b));0<f&&b.lShiftTo(f,b);return b};p.prototype.isProbablePrime=function(b){var d,e=this.abs();if(1==e.t&&e[0]<=H[H.length-1]){for(d=0;d<H.length;++d)if(e[0]==H[d])return!0;
-return!1}if(e.isEven())return!1;for(d=1;d<H.length;){for(var f=H[d],n=d+1;n<H.length&&f<Zb;)f*=H[n++];for(f=e.modInt(f);d<n;)if(0==f%H[d++])return!1}return e.millerRabin(b)};p.prototype.square=function(){var b=E();this.squareTo(b);return b};p.prototype.IsNegative=function(){return-1==this.compareTo(p.ZERO)?!0:!1};p.op_Equality=function(b,d){return 0==b.compareTo(d)?!0:!1};p.op_Inequality=function(b,d){return 0!=b.compareTo(d)?!0:!1};p.op_GreaterThan=function(b,d){return 0<b.compareTo(d)?!0:!1};p.op_LessThan=
-function(b,d){return 0>b.compareTo(d)?!0:!1};p.op_Addition=function(b,d){return(new p(b)).add(new p(d))};p.op_Subtraction=function(b,d){return(new p(b)).subtract(new p(d))};p.Int128Mul=function(b,d){return(new p(b)).multiply(new p(d))};p.op_Division=function(b,d){return b.divide(d)};p.prototype.ToDouble=function(){return parseFloat(this.toString())};V=function(b,d){var e;if("undefined"==typeof Object.getOwnPropertyNames)for(e in d.prototype){if("undefined"==typeof b.prototype[e]||b.prototype[e]==
-Object.prototype[e])b.prototype[e]=d.prototype[e]}else for(var f=Object.getOwnPropertyNames(d.prototype),n=0;n<f.length;n++)"undefined"==typeof Object.getOwnPropertyDescriptor(b.prototype,f[n])&&Object.defineProperty(b.prototype,f[n],Object.getOwnPropertyDescriptor(d.prototype,f[n]));for(e in d)"undefined"==typeof b[e]&&(b[e]=d[e]);b.$baseCtor=d};f.Path=function(){return[]};f.Paths=function(){return[]};f.DoublePoint=function(){var b=arguments;this.Y=this.X=0;1==b.length?(this.X=b[0].X,this.Y=b[0].Y):
-2==b.length&&(this.X=b[0],this.Y=b[1])};f.DoublePoint0=function(){this.Y=this.X=0};f.DoublePoint1=function(b){this.X=b.X;this.Y=b.Y};f.DoublePoint2=function(b,d){this.X=b;this.Y=d};f.PolyNode=function(){this.m_Parent=null;this.m_polygon=new f.Path;this.m_endtype=this.m_jointype=this.m_Index=0;this.m_Childs=[];this.IsOpen=!1};f.PolyNode.prototype.IsHoleNode=function(){for(var b=!0,d=this.m_Parent;null!==d;)b=!b,d=d.m_Parent;return b};f.PolyNode.prototype.ChildCount=function(){return this.m_Childs.length};
-f.PolyNode.prototype.Contour=function(){return this.m_polygon};f.PolyNode.prototype.AddChild=function(b){var d=this.m_Childs.length;this.m_Childs.push(b);b.m_Parent=this;b.m_Index=d};f.PolyNode.prototype.GetNext=function(){return 0<this.m_Childs.length?this.m_Childs[0]:this.GetNextSiblingUp()};f.PolyNode.prototype.GetNextSiblingUp=function(){return null===this.m_Parent?null:this.m_Index==this.m_Parent.m_Childs.length-1?this.m_Parent.GetNextSiblingUp():this.m_Parent.m_Childs[this.m_Index+1]};f.PolyNode.prototype.Childs=
-function(){return this.m_Childs};f.PolyNode.prototype.Parent=function(){return this.m_Parent};f.PolyNode.prototype.IsHole=function(){return this.IsHoleNode()};f.PolyTree=function(){this.m_AllPolys=[];f.PolyNode.call(this)};f.PolyTree.prototype.Clear=function(){for(var b=0,d=this.m_AllPolys.length;b<d;b++)this.m_AllPolys[b]=null;this.m_AllPolys.length=0;this.m_Childs.length=0};f.PolyTree.prototype.GetFirst=function(){return 0<this.m_Childs.length?this.m_Childs[0]:null};f.PolyTree.prototype.Total=function(){var b=
-this.m_AllPolys.length;0<b&&this.m_Childs[0]!=this.m_AllPolys[0]&&b--;return b};V(f.PolyTree,f.PolyNode);f.Math_Abs_Int64=f.Math_Abs_Int32=f.Math_Abs_Double=function(b){return Math.abs(b)};f.Math_Max_Int32_Int32=function(b,d){return Math.max(b,d)};f.Cast_Int32=Y||Qa||Xb?function(b){return b|0}:function(b){return~~b};f.Cast_Int64=I?function(b){return-2147483648>b||2147483647<b?0>b?Math.ceil(b):Math.floor(b):~~b}:Jb&&"function"==typeof Number.toInteger?function(b){return Number.toInteger(b)}:xb||ab?
-function(b){return parseInt(b,10)}:Y?function(b){return-2147483648>b||2147483647<b?0>b?Math.ceil(b):Math.floor(b):b|0}:function(b){return 0>b?Math.ceil(b):Math.floor(b)};f.Clear=function(b){b.length=0};f.PI=3.141592653589793;f.PI2=6.283185307179586;f.IntPoint=function(){var b=arguments,d=b.length;this.Y=this.X=0;f.use_xyz?(this.Z=0,3==d?(this.X=b[0],this.Y=b[1],this.Z=b[2]):2==d?(this.X=b[0],this.Y=b[1],this.Z=0):1==d?b[0]instanceof f.DoublePoint?(b=b[0],this.X=f.Clipper.Round(b.X),this.Y=f.Clipper.Round(b.Y),
-this.Z=0):(b=b[0],"undefined"==typeof b.Z&&(b.Z=0),this.X=b.X,this.Y=b.Y,this.Z=b.Z):this.Z=this.Y=this.X=0):2==d?(this.X=b[0],this.Y=b[1]):1==d?b[0]instanceof f.DoublePoint?(b=b[0],this.X=f.Clipper.Round(b.X),this.Y=f.Clipper.Round(b.Y)):(b=b[0],this.X=b.X,this.Y=b.Y):this.Y=this.X=0};f.IntPoint.op_Equality=function(b,d){return b.X==d.X&&b.Y==d.Y};f.IntPoint.op_Inequality=function(b,d){return b.X!=d.X||b.Y!=d.Y};f.use_xyz?(f.IntPoint0=function(){this.Z=this.Y=this.X=0},f.IntPoint1=function(b){this.X=
-b.X;this.Y=b.Y;this.Z=b.Z},f.IntPoint1dp=function(b){this.X=f.Clipper.Round(b.X);this.Y=f.Clipper.Round(b.Y);this.Z=0},f.IntPoint2=function(b,d){this.X=b;this.Y=d;this.Z=0},f.IntPoint3=function(b,d,e){this.X=b;this.Y=d;this.Z=e}):(f.IntPoint0=function(){this.Y=this.X=0},f.IntPoint1=function(b){this.X=b.X;this.Y=b.Y},f.IntPoint1dp=function(b){this.X=f.Clipper.Round(b.X);this.Y=f.Clipper.Round(b.Y)},f.IntPoint2=function(b,d){this.X=b;this.Y=d});f.IntRect=function(){var b=arguments,d=b.length;4==d?(this.left=
-b[0],this.top=b[1],this.right=b[2],this.bottom=b[3]):1==d?(this.left=b[0].left,this.top=b[0].top,this.right=b[0].right,this.bottom=b[0].bottom):this.bottom=this.right=this.top=this.left=0};f.IntRect0=function(){this.bottom=this.right=this.top=this.left=0};f.IntRect1=function(b){this.left=b.left;this.top=b.top;this.right=b.right;this.bottom=b.bottom};f.IntRect4=function(b,d,e,f){this.left=b;this.top=d;this.right=e;this.bottom=f};f.ClipType={ctIntersection:0,ctUnion:1,ctDifference:2,ctXor:3};f.PolyType=
-{ptSubject:0,ptClip:1};f.PolyFillType={pftEvenOdd:0,pftNonZero:1,pftPositive:2,pftNegative:3};f.JoinType={jtSquare:0,jtRound:1,jtMiter:2};f.EndType={etOpenSquare:0,etOpenRound:1,etOpenButt:2,etClosedLine:3,etClosedPolygon:4};f.EdgeSide={esLeft:0,esRight:1};f.Direction={dRightToLeft:0,dLeftToRight:1};f.TEdge=function(){this.Bot=new f.IntPoint;this.Curr=new f.IntPoint;this.Top=new f.IntPoint;this.Delta=new f.IntPoint;this.Dx=0;this.PolyTyp=f.PolyType.ptSubject;this.Side=f.EdgeSide.esLeft;this.OutIdx=
-this.WindCnt2=this.WindCnt=this.WindDelta=0;this.PrevInSEL=this.NextInSEL=this.PrevInAEL=this.NextInAEL=this.NextInLML=this.Prev=this.Next=null};f.IntersectNode=function(){this.Edge2=this.Edge1=null;this.Pt=new f.IntPoint};f.MyIntersectNodeSort=function(){};f.MyIntersectNodeSort.Compare=function(b,d){var e=d.Pt.Y-b.Pt.Y;return 0<e?1:0>e?-1:0};f.LocalMinima=function(){this.Y=0;this.Next=this.RightBound=this.LeftBound=null};f.Scanbeam=function(){this.Y=0;this.Next=null};f.OutRec=function(){this.Idx=
-0;this.IsOpen=this.IsHole=!1;this.PolyNode=this.BottomPt=this.Pts=this.FirstLeft=null};f.OutPt=function(){this.Idx=0;this.Pt=new f.IntPoint;this.Prev=this.Next=null};f.Join=function(){this.OutPt2=this.OutPt1=null;this.OffPt=new f.IntPoint};f.ClipperBase=function(){this.m_CurrentLM=this.m_MinimaList=null;this.m_edges=[];this.PreserveCollinear=this.m_HasOpenPaths=this.m_UseFullRange=!1;this.m_CurrentLM=this.m_MinimaList=null;this.m_HasOpenPaths=this.m_UseFullRange=!1};f.ClipperBase.horizontal=-9007199254740992;
-f.ClipperBase.Skip=-2;f.ClipperBase.Unassigned=-1;f.ClipperBase.tolerance=1E-20;f.ClipperBase.loRange=47453132;f.ClipperBase.hiRange=0xfffffffffffff;f.ClipperBase.near_zero=function(b){return b>-f.ClipperBase.tolerance&&b<f.ClipperBase.tolerance};f.ClipperBase.IsHorizontal=function(b){return 0===b.Delta.Y};f.ClipperBase.prototype.PointIsVertex=function(b,d){var e=d;do{if(f.IntPoint.op_Equality(e.Pt,b))return!0;e=e.Next}while(e!=d);return!1};f.ClipperBase.prototype.PointOnLineSegment=function(b,d,
-e,f){return f?b.X==d.X&&b.Y==d.Y||b.X==e.X&&b.Y==e.Y||b.X>d.X==b.X<e.X&&b.Y>d.Y==b.Y<e.Y&&p.op_Equality(p.Int128Mul(b.X-d.X,e.Y-d.Y),p.Int128Mul(e.X-d.X,b.Y-d.Y)):b.X==d.X&&b.Y==d.Y||b.X==e.X&&b.Y==e.Y||b.X>d.X==b.X<e.X&&b.Y>d.Y==b.Y<e.Y&&(b.X-d.X)*(e.Y-d.Y)==(e.X-d.X)*(b.Y-d.Y)};f.ClipperBase.prototype.PointOnPolygon=function(b,d,e){for(var f=d;;){if(this.PointOnLineSegment(b,f.Pt,f.Next.Pt,e))return!0;f=f.Next;if(f==d)break}return!1};f.ClipperBase.prototype.SlopesEqual=f.ClipperBase.SlopesEqual=
-function(){var b=arguments,d=b.length,e,q,n;if(3==d)return d=b[0],e=b[1],b[2]?p.op_Equality(p.Int128Mul(d.Delta.Y,e.Delta.X),p.Int128Mul(d.Delta.X,e.Delta.Y)):f.Cast_Int64(d.Delta.Y*e.Delta.X)==f.Cast_Int64(d.Delta.X*e.Delta.Y);if(4==d)return d=b[0],e=b[1],q=b[2],b[3]?p.op_Equality(p.Int128Mul(d.Y-e.Y,e.X-q.X),p.Int128Mul(d.X-e.X,e.Y-q.Y)):0===f.Cast_Int64((d.Y-e.Y)*(e.X-q.X))-f.Cast_Int64((d.X-e.X)*(e.Y-q.Y));d=b[0];e=b[1];q=b[2];n=b[3];return b[4]?p.op_Equality(p.Int128Mul(d.Y-e.Y,q.X-n.X),p.Int128Mul(d.X-
-e.X,q.Y-n.Y)):0===f.Cast_Int64((d.Y-e.Y)*(q.X-n.X))-f.Cast_Int64((d.X-e.X)*(q.Y-n.Y))};f.ClipperBase.SlopesEqual3=function(b,d,e){return e?p.op_Equality(p.Int128Mul(b.Delta.Y,d.Delta.X),p.Int128Mul(b.Delta.X,d.Delta.Y)):f.Cast_Int64(b.Delta.Y*d.Delta.X)==f.Cast_Int64(b.Delta.X*d.Delta.Y)};f.ClipperBase.SlopesEqual4=function(b,d,e,q){return q?p.op_Equality(p.Int128Mul(b.Y-d.Y,d.X-e.X),p.Int128Mul(b.X-d.X,d.Y-e.Y)):0===f.Cast_Int64((b.Y-d.Y)*(d.X-e.X))-f.Cast_Int64((b.X-d.X)*(d.Y-e.Y))};f.ClipperBase.SlopesEqual5=
-function(b,d,e,q,n){return n?p.op_Equality(p.Int128Mul(b.Y-d.Y,e.X-q.X),p.Int128Mul(b.X-d.X,e.Y-q.Y)):0===f.Cast_Int64((b.Y-d.Y)*(e.X-q.X))-f.Cast_Int64((b.X-d.X)*(e.Y-q.Y))};f.ClipperBase.prototype.Clear=function(){this.DisposeLocalMinimaList();for(var b=0,d=this.m_edges.length;b<d;++b){for(var e=0,q=this.m_edges[b].length;e<q;++e)this.m_edges[b][e]=null;f.Clear(this.m_edges[b])}f.Clear(this.m_edges);this.m_HasOpenPaths=this.m_UseFullRange=!1};f.ClipperBase.prototype.DisposeLocalMinimaList=function(){for(;null!==
-this.m_MinimaList;){var b=this.m_MinimaList.Next;this.m_MinimaList=null;this.m_MinimaList=b}this.m_CurrentLM=null};f.ClipperBase.prototype.RangeTest=function(b,d){if(d.Value)(b.X>f.ClipperBase.hiRange||b.Y>f.ClipperBase.hiRange||-b.X>f.ClipperBase.hiRange||-b.Y>f.ClipperBase.hiRange)&&f.Error("Coordinate outside allowed range in RangeTest().");else if(b.X>f.ClipperBase.loRange||b.Y>f.ClipperBase.loRange||-b.X>f.ClipperBase.loRange||-b.Y>f.ClipperBase.loRange)d.Value=!0,this.RangeTest(b,d)};f.ClipperBase.prototype.InitEdge=
-function(b,d,e,q){b.Next=d;b.Prev=e;b.Curr.X=q.X;b.Curr.Y=q.Y;f.use_xyz&&(b.Curr.Z=q.Z);b.OutIdx=-1};f.ClipperBase.prototype.InitEdge2=function(b,d){b.Curr.Y>=b.Next.Curr.Y?(b.Bot.X=b.Curr.X,b.Bot.Y=b.Curr.Y,f.use_xyz&&(b.Bot.Z=b.Curr.Z),b.Top.X=b.Next.Curr.X,b.Top.Y=b.Next.Curr.Y,f.use_xyz&&(b.Top.Z=b.Next.Curr.Z)):(b.Top.X=b.Curr.X,b.Top.Y=b.Curr.Y,f.use_xyz&&(b.Top.Z=b.Curr.Z),b.Bot.X=b.Next.Curr.X,b.Bot.Y=b.Next.Curr.Y,f.use_xyz&&(b.Bot.Z=b.Next.Curr.Z));this.SetDx(b);b.PolyTyp=d};f.ClipperBase.prototype.FindNextLocMin=
-function(b){for(var d;;){for(;f.IntPoint.op_Inequality(b.Bot,b.Prev.Bot)||f.IntPoint.op_Equality(b.Curr,b.Top);)b=b.Next;if(b.Dx!=f.ClipperBase.horizontal&&b.Prev.Dx!=f.ClipperBase.horizontal)break;for(;b.Prev.Dx==f.ClipperBase.horizontal;)b=b.Prev;for(d=b;b.Dx==f.ClipperBase.horizontal;)b=b.Next;if(b.Top.Y!=b.Prev.Bot.Y){d.Prev.Bot.X<b.Bot.X&&(b=d);break}}return b};f.ClipperBase.prototype.ProcessBound=function(b,d){var e,q=b,n;if(q.OutIdx==f.ClipperBase.Skip){b=q;if(d){for(;b.Top.Y==b.Next.Bot.Y;)b=
-b.Next;for(;b!=q&&b.Dx==f.ClipperBase.horizontal;)b=b.Prev}else{for(;b.Top.Y==b.Prev.Bot.Y;)b=b.Prev;for(;b!=q&&b.Dx==f.ClipperBase.horizontal;)b=b.Next}b==q?q=d?b.Next:b.Prev:(b=d?q.Next:q.Prev,e=new f.LocalMinima,e.Next=null,e.Y=b.Bot.Y,e.LeftBound=null,e.RightBound=b,b.WindDelta=0,q=this.ProcessBound(b,d),this.InsertLocalMinima(e));return q}b.Dx==f.ClipperBase.horizontal&&(e=d?b.Prev:b.Next,e.OutIdx!=f.ClipperBase.Skip&&(e.Dx==f.ClipperBase.horizontal?e.Bot.X!=b.Bot.X&&e.Top.X!=b.Bot.X&&this.ReverseHorizontal(b):
-e.Bot.X!=b.Bot.X&&this.ReverseHorizontal(b)));e=b;if(d){for(;q.Top.Y==q.Next.Bot.Y&&q.Next.OutIdx!=f.ClipperBase.Skip;)q=q.Next;if(q.Dx==f.ClipperBase.horizontal&&q.Next.OutIdx!=f.ClipperBase.Skip){for(n=q;n.Prev.Dx==f.ClipperBase.horizontal;)n=n.Prev;n.Prev.Top.X==q.Next.Top.X?d||(q=n.Prev):n.Prev.Top.X>q.Next.Top.X&&(q=n.Prev)}for(;b!=q;)b.NextInLML=b.Next,b.Dx==f.ClipperBase.horizontal&&b!=e&&b.Bot.X!=b.Prev.Top.X&&this.ReverseHorizontal(b),b=b.Next;b.Dx==f.ClipperBase.horizontal&&b!=e&&b.Bot.X!=
-b.Prev.Top.X&&this.ReverseHorizontal(b);q=q.Next}else{for(;q.Top.Y==q.Prev.Bot.Y&&q.Prev.OutIdx!=f.ClipperBase.Skip;)q=q.Prev;if(q.Dx==f.ClipperBase.horizontal&&q.Prev.OutIdx!=f.ClipperBase.Skip){for(n=q;n.Next.Dx==f.ClipperBase.horizontal;)n=n.Next;n.Next.Top.X==q.Prev.Top.X?d||(q=n.Next):n.Next.Top.X>q.Prev.Top.X&&(q=n.Next)}for(;b!=q;)b.NextInLML=b.Prev,b.Dx==f.ClipperBase.horizontal&&b!=e&&b.Bot.X!=b.Next.Top.X&&this.ReverseHorizontal(b),b=b.Prev;b.Dx==f.ClipperBase.horizontal&&b!=e&&b.Bot.X!=
-b.Next.Top.X&&this.ReverseHorizontal(b);q=q.Prev}return q};f.ClipperBase.prototype.AddPath=function(b,d,e){f.use_lines?e||d!=f.PolyType.ptClip||f.Error("AddPath: Open paths must be subject."):e||f.Error("AddPath: Open paths have been disabled.");var q=b.length-1;if(e)for(;0<q&&f.IntPoint.op_Equality(b[q],b[0]);)--q;for(;0<q&&f.IntPoint.op_Equality(b[q],b[q-1]);)--q;if(e&&2>q||!e&&1>q)return!1;for(var n=[],k=0;k<=q;k++)n.push(new f.TEdge);var v=!0;n[1].Curr.X=b[1].X;n[1].Curr.Y=b[1].Y;f.use_xyz&&(n[1].Curr.Z=
-b[1].Z);var C={Value:this.m_UseFullRange};this.RangeTest(b[0],C);this.m_UseFullRange=C.Value;C.Value=this.m_UseFullRange;this.RangeTest(b[q],C);this.m_UseFullRange=C.Value;this.InitEdge(n[0],n[1],n[q],b[0]);this.InitEdge(n[q],n[0],n[q-1],b[q]);for(k=q-1;1<=k;--k)C.Value=this.m_UseFullRange,this.RangeTest(b[k],C),this.m_UseFullRange=C.Value,this.InitEdge(n[k],n[k+1],n[k-1],b[k]);for(k=b=q=n[0];;)if(b.Curr!=b.Next.Curr||!e&&b.Next==q){if(b.Prev==b.Next)break;else if(e&&f.ClipperBase.SlopesEqual(b.Prev.Curr,
-b.Curr,b.Next.Curr,this.m_UseFullRange)&&(!this.PreserveCollinear||!this.Pt2IsBetweenPt1AndPt3(b.Prev.Curr,b.Curr,b.Next.Curr))){b==q&&(q=b.Next);b=this.RemoveEdge(b);k=b=b.Prev;continue}b=b.Next;if(b==k||!e&&b.Next==q)break}else{if(b==b.Next)break;b==q&&(q=b.Next);k=b=this.RemoveEdge(b)}if(!e&&b==b.Next||e&&b.Prev==b.Next)return!1;e||(this.m_HasOpenPaths=!0,q.Prev.OutIdx=f.ClipperBase.Skip);b=q;do this.InitEdge2(b,d),b=b.Next,v&&b.Curr.Y!=q.Curr.Y&&(v=!1);while(b!=q);if(v){if(e)return!1;b.Prev.OutIdx=
-f.ClipperBase.Skip;b.Prev.Bot.X<b.Prev.Top.X&&this.ReverseHorizontal(b.Prev);d=new f.LocalMinima;d.Next=null;d.Y=b.Bot.Y;d.LeftBound=null;d.RightBound=b;d.RightBound.Side=f.EdgeSide.esRight;for(d.RightBound.WindDelta=0;b.Next.OutIdx!=f.ClipperBase.Skip;)b.NextInLML=b.Next,b.Bot.X!=b.Prev.Top.X&&this.ReverseHorizontal(b),b=b.Next;this.InsertLocalMinima(d);this.m_edges.push(n);return!0}this.m_edges.push(n);v=null;for(f.IntPoint.op_Equality(b.Prev.Bot,b.Prev.Top)&&(b=b.Next);;){b=this.FindNextLocMin(b);
-if(b==v)break;else null==v&&(v=b);d=new f.LocalMinima;d.Next=null;d.Y=b.Bot.Y;b.Dx<b.Prev.Dx?(d.LeftBound=b.Prev,d.RightBound=b,n=!1):(d.LeftBound=b,d.RightBound=b.Prev,n=!0);d.LeftBound.Side=f.EdgeSide.esLeft;d.RightBound.Side=f.EdgeSide.esRight;d.LeftBound.WindDelta=e?d.LeftBound.Next==d.RightBound?-1:1:0;d.RightBound.WindDelta=-d.LeftBound.WindDelta;b=this.ProcessBound(d.LeftBound,n);b.OutIdx==f.ClipperBase.Skip&&(b=this.ProcessBound(b,n));q=this.ProcessBound(d.RightBound,!n);q.OutIdx==f.ClipperBase.Skip&&
-(q=this.ProcessBound(q,!n));d.LeftBound.OutIdx==f.ClipperBase.Skip?d.LeftBound=null:d.RightBound.OutIdx==f.ClipperBase.Skip&&(d.RightBound=null);this.InsertLocalMinima(d);n||(b=q)}return!0};f.ClipperBase.prototype.AddPaths=function(b,d,e){for(var f=!1,n=0,k=b.length;n<k;++n)this.AddPath(b[n],d,e)&&(f=!0);return f};f.ClipperBase.prototype.Pt2IsBetweenPt1AndPt3=function(b,d,e){return f.IntPoint.op_Equality(b,e)||f.IntPoint.op_Equality(b,d)||f.IntPoint.op_Equality(e,d)?!1:b.X!=e.X?d.X>b.X==d.X<e.X:d.Y>
-b.Y==d.Y<e.Y};f.ClipperBase.prototype.RemoveEdge=function(b){b.Prev.Next=b.Next;b.Next.Prev=b.Prev;var d=b.Next;b.Prev=null;return d};f.ClipperBase.prototype.SetDx=function(b){b.Delta.X=b.Top.X-b.Bot.X;b.Delta.Y=b.Top.Y-b.Bot.Y;b.Dx=0===b.Delta.Y?f.ClipperBase.horizontal:b.Delta.X/b.Delta.Y};f.ClipperBase.prototype.InsertLocalMinima=function(b){if(null===this.m_MinimaList)this.m_MinimaList=b;else if(b.Y>=this.m_MinimaList.Y)b.Next=this.m_MinimaList,this.m_MinimaList=b;else{for(var d=this.m_MinimaList;null!==
-d.Next&&b.Y<d.Next.Y;)d=d.Next;b.Next=d.Next;d.Next=b}};f.ClipperBase.prototype.PopLocalMinima=function(){null!==this.m_CurrentLM&&(this.m_CurrentLM=this.m_CurrentLM.Next)};f.ClipperBase.prototype.ReverseHorizontal=function(b){var d=b.Top.X;b.Top.X=b.Bot.X;b.Bot.X=d;f.use_xyz&&(d=b.Top.Z,b.Top.Z=b.Bot.Z,b.Bot.Z=d)};f.ClipperBase.prototype.Reset=function(){this.m_CurrentLM=this.m_MinimaList;if(null!=this.m_CurrentLM)for(var b=this.m_MinimaList;null!=b;){var d=b.LeftBound;null!=d&&(d.Curr.X=d.Bot.X,
-d.Curr.Y=d.Bot.Y,f.use_xyz&&(d.Curr.Z=d.Bot.Z),d.Side=f.EdgeSide.esLeft,d.OutIdx=f.ClipperBase.Unassigned);d=b.RightBound;null!=d&&(d.Curr.X=d.Bot.X,d.Curr.Y=d.Bot.Y,f.use_xyz&&(d.Curr.Z=d.Bot.Z),d.Side=f.EdgeSide.esRight,d.OutIdx=f.ClipperBase.Unassigned);b=b.Next}};f.Clipper=function(b){"undefined"==typeof b&&(b=0);this.m_PolyOuts=null;this.m_ClipType=f.ClipType.ctIntersection;this.m_IntersectNodeComparer=this.m_IntersectList=this.m_SortedEdges=this.m_ActiveEdges=this.m_Scanbeam=null;this.m_ExecuteLocked=
-!1;this.m_SubjFillType=this.m_ClipFillType=f.PolyFillType.pftEvenOdd;this.m_GhostJoins=this.m_Joins=null;this.StrictlySimple=this.ReverseSolution=this.m_UsingPolyTree=!1;f.ClipperBase.call(this);this.m_SortedEdges=this.m_ActiveEdges=this.m_Scanbeam=null;this.m_IntersectList=[];this.m_IntersectNodeComparer=f.MyIntersectNodeSort.Compare;this.m_UsingPolyTree=this.m_ExecuteLocked=!1;this.m_PolyOuts=[];this.m_Joins=[];this.m_GhostJoins=[];this.ReverseSolution=0!==(1&b);this.StrictlySimple=0!==(2&b);this.PreserveCollinear=
-0!==(4&b);f.use_xyz&&(this.ZFillFunction=null)};f.Clipper.ioReverseSolution=1;f.Clipper.ioStrictlySimple=2;f.Clipper.ioPreserveCollinear=4;f.Clipper.prototype.Clear=function(){0!==this.m_edges.length&&(this.DisposeAllPolyPts(),f.ClipperBase.prototype.Clear.call(this))};f.Clipper.prototype.DisposeScanbeamList=function(){for(;null!==this.m_Scanbeam;){var b=this.m_Scanbeam.Next;this.m_Scanbeam=null;this.m_Scanbeam=b}};f.Clipper.prototype.Reset=function(){f.ClipperBase.prototype.Reset.call(this);this.m_SortedEdges=
-this.m_ActiveEdges=this.m_Scanbeam=null;for(var b=this.m_MinimaList;null!==b;)this.InsertScanbeam(b.Y),b=b.Next};f.Clipper.prototype.InsertScanbeam=function(b){if(null===this.m_Scanbeam)this.m_Scanbeam=new f.Scanbeam,this.m_Scanbeam.Next=null,this.m_Scanbeam.Y=b;else if(b>this.m_Scanbeam.Y){var d=new f.Scanbeam;d.Y=b;d.Next=this.m_Scanbeam;this.m_Scanbeam=d}else{for(var e=this.m_Scanbeam;null!==e.Next&&b<=e.Next.Y;)e=e.Next;b!=e.Y&&(d=new f.Scanbeam,d.Y=b,d.Next=e.Next,e.Next=d)}};f.Clipper.prototype.Execute=
-function(){var b=arguments,d=b.length,e=b[1]instanceof f.PolyTree;if(4!=d||e){if(4==d&&e){var d=b[0],q=b[1],e=b[2],b=b[3];if(this.m_ExecuteLocked)return!1;this.m_ExecuteLocked=!0;this.m_SubjFillType=e;this.m_ClipFillType=b;this.m_ClipType=d;this.m_UsingPolyTree=!0;try{(n=this.ExecuteInternal())&&this.BuildResult2(q)}finally{this.DisposeAllPolyPts(),this.m_ExecuteLocked=!1}return n}if(2==d&&!e||2==d&&e)return d=b[0],q=b[1],this.Execute(d,q,f.PolyFillType.pftEvenOdd,f.PolyFillType.pftEvenOdd)}else{d=
-b[0];q=b[1];e=b[2];b=b[3];if(this.m_ExecuteLocked)return!1;this.m_HasOpenPaths&&f.Error("Error: PolyTree struct is need for open path clipping.");this.m_ExecuteLocked=!0;f.Clear(q);this.m_SubjFillType=e;this.m_ClipFillType=b;this.m_ClipType=d;this.m_UsingPolyTree=!1;try{var n=this.ExecuteInternal();n&&this.BuildResult(q)}finally{this.DisposeAllPolyPts(),this.m_ExecuteLocked=!1}return n}};f.Clipper.prototype.FixHoleLinkage=function(b){if(null!==b.FirstLeft&&(b.IsHole==b.FirstLeft.IsHole||null===b.FirstLeft.Pts)){for(var d=
-b.FirstLeft;null!==d&&(d.IsHole==b.IsHole||null===d.Pts);)d=d.FirstLeft;b.FirstLeft=d}};f.Clipper.prototype.ExecuteInternal=function(){try{this.Reset();if(null===this.m_CurrentLM)return!1;var b=this.PopScanbeam();do{this.InsertLocalMinimaIntoAEL(b);f.Clear(this.m_GhostJoins);this.ProcessHorizontals(!1);if(null===this.m_Scanbeam)break;var d=this.PopScanbeam();if(!this.ProcessIntersections(d))return!1;this.ProcessEdgesAtTopOfScanbeam(d);b=d}while(null!==this.m_Scanbeam||null!==this.m_CurrentLM);for(var b=
-0,e=this.m_PolyOuts.length;b<e;b++){var q=this.m_PolyOuts[b];null===q.Pts||q.IsOpen||(q.IsHole^this.ReverseSolution)==0<this.Area(q)&&this.ReversePolyPtLinks(q.Pts)}this.JoinCommonEdges();b=0;for(e=this.m_PolyOuts.length;b<e;b++)q=this.m_PolyOuts[b],null===q.Pts||q.IsOpen||this.FixupOutPolygon(q);this.StrictlySimple&&this.DoSimplePolygons();return!0}finally{f.Clear(this.m_Joins),f.Clear(this.m_GhostJoins)}};f.Clipper.prototype.PopScanbeam=function(){var b=this.m_Scanbeam.Y;this.m_Scanbeam=this.m_Scanbeam.Next;
-return b};f.Clipper.prototype.DisposeAllPolyPts=function(){for(var b=0,d=this.m_PolyOuts.length;b<d;++b)this.DisposeOutRec(b);f.Clear(this.m_PolyOuts)};f.Clipper.prototype.DisposeOutRec=function(b){this.m_PolyOuts[b].Pts=null;this.m_PolyOuts[b]=null};f.Clipper.prototype.AddJoin=function(b,d,e){var q=new f.Join;q.OutPt1=b;q.OutPt2=d;q.OffPt.X=e.X;q.OffPt.Y=e.Y;f.use_xyz&&(q.OffPt.Z=e.Z);this.m_Joins.push(q)};f.Clipper.prototype.AddGhostJoin=function(b,d){var e=new f.Join;e.OutPt1=b;e.OffPt.X=d.X;e.OffPt.Y=
-d.Y;f.use_xyz&&(e.OffPt.Z=d.Z);this.m_GhostJoins.push(e)};f.Clipper.prototype.SetZ=function(b,d,e){null!==this.ZFillFunction&&0==b.Z&&null!==this.ZFillFunction&&(f.IntPoint.op_Equality(b,d.Bot)?b.Z=d.Bot.Z:f.IntPoint.op_Equality(b,d.Top)?b.Z=d.Top.Z:f.IntPoint.op_Equality(b,e.Bot)?b.Z=e.Bot.Z:f.IntPoint.op_Equality(b,e.Top)?b.Z=e.Top.Z:this.ZFillFunction(d.Bot,d.Top,e.Bot,e.Top,b))};f.Clipper.prototype.InsertLocalMinimaIntoAEL=function(b){for(;null!==this.m_CurrentLM&&this.m_CurrentLM.Y==b;){var d=
-this.m_CurrentLM.LeftBound,e=this.m_CurrentLM.RightBound;this.PopLocalMinima();var q=null;null===d?(this.InsertEdgeIntoAEL(e,null),this.SetWindingCount(e),this.IsContributing(e)&&(q=this.AddOutPt(e,e.Bot))):(null==e?(this.InsertEdgeIntoAEL(d,null),this.SetWindingCount(d),this.IsContributing(d)&&(q=this.AddOutPt(d,d.Bot))):(this.InsertEdgeIntoAEL(d,null),this.InsertEdgeIntoAEL(e,d),this.SetWindingCount(d),e.WindCnt=d.WindCnt,e.WindCnt2=d.WindCnt2,this.IsContributing(d)&&(q=this.AddLocalMinPoly(d,e,
-d.Bot))),this.InsertScanbeam(d.Top.Y));null!=e&&(f.ClipperBase.IsHorizontal(e)?this.AddEdgeToSEL(e):this.InsertScanbeam(e.Top.Y));if(null!=d&&null!=e){if(null!==q&&f.ClipperBase.IsHorizontal(e)&&0<this.m_GhostJoins.length&&0!==e.WindDelta)for(var n=0,k=this.m_GhostJoins.length;n<k;n++){var v=this.m_GhostJoins[n];this.HorzSegmentsOverlap(v.OutPt1.Pt.X,v.OffPt.X,e.Bot.X,e.Top.X)&&this.AddJoin(v.OutPt1,q,v.OffPt)}0<=d.OutIdx&&null!==d.PrevInAEL&&d.PrevInAEL.Curr.X==d.Bot.X&&0<=d.PrevInAEL.OutIdx&&f.ClipperBase.SlopesEqual(d.PrevInAEL,
-d,this.m_UseFullRange)&&0!==d.WindDelta&&0!==d.PrevInAEL.WindDelta&&(n=this.AddOutPt(d.PrevInAEL,d.Bot),this.AddJoin(q,n,d.Top));if(d.NextInAEL!=e&&(0<=e.OutIdx&&0<=e.PrevInAEL.OutIdx&&f.ClipperBase.SlopesEqual(e.PrevInAEL,e,this.m_UseFullRange)&&0!==e.WindDelta&&0!==e.PrevInAEL.WindDelta&&(n=this.AddOutPt(e.PrevInAEL,e.Bot),this.AddJoin(q,n,e.Top)),q=d.NextInAEL,null!==q))for(;q!=e;)this.IntersectEdges(e,q,d.Curr,!1),q=q.NextInAEL}}};f.Clipper.prototype.InsertEdgeIntoAEL=function(b,d){if(null===
-this.m_ActiveEdges)b.PrevInAEL=null,b.NextInAEL=null,this.m_ActiveEdges=b;else if(null===d&&this.E2InsertsBeforeE1(this.m_ActiveEdges,b))b.PrevInAEL=null,b.NextInAEL=this.m_ActiveEdges,this.m_ActiveEdges=this.m_ActiveEdges.PrevInAEL=b;else{for(null===d&&(d=this.m_ActiveEdges);null!==d.NextInAEL&&!this.E2InsertsBeforeE1(d.NextInAEL,b);)d=d.NextInAEL;b.NextInAEL=d.NextInAEL;null!==d.NextInAEL&&(d.NextInAEL.PrevInAEL=b);b.PrevInAEL=d;d.NextInAEL=b}};f.Clipper.prototype.E2InsertsBeforeE1=function(b,d){return d.Curr.X==
-b.Curr.X?d.Top.Y>b.Top.Y?d.Top.X<f.Clipper.TopX(b,d.Top.Y):b.Top.X>f.Clipper.TopX(d,b.Top.Y):d.Curr.X<b.Curr.X};f.Clipper.prototype.IsEvenOddFillType=function(b){return b.PolyTyp==f.PolyType.ptSubject?this.m_SubjFillType==f.PolyFillType.pftEvenOdd:this.m_ClipFillType==f.PolyFillType.pftEvenOdd};f.Clipper.prototype.IsEvenOddAltFillType=function(b){return b.PolyTyp==f.PolyType.ptSubject?this.m_ClipFillType==f.PolyFillType.pftEvenOdd:this.m_SubjFillType==f.PolyFillType.pftEvenOdd};f.Clipper.prototype.IsContributing=
-function(b){var d,e;b.PolyTyp==f.PolyType.ptSubject?(d=this.m_SubjFillType,e=this.m_ClipFillType):(d=this.m_ClipFillType,e=this.m_SubjFillType);switch(d){case f.PolyFillType.pftEvenOdd:if(0===b.WindDelta&&1!=b.WindCnt)return!1;break;case f.PolyFillType.pftNonZero:if(1!=Math.abs(b.WindCnt))return!1;break;case f.PolyFillType.pftPositive:if(1!=b.WindCnt)return!1;break;default:if(-1!=b.WindCnt)return!1}switch(this.m_ClipType){case f.ClipType.ctIntersection:switch(e){case f.PolyFillType.pftEvenOdd:case f.PolyFillType.pftNonZero:return 0!==
-b.WindCnt2;case f.PolyFillType.pftPositive:return 0<b.WindCnt2;default:return 0>b.WindCnt2}case f.ClipType.ctUnion:switch(e){case f.PolyFillType.pftEvenOdd:case f.PolyFillType.pftNonZero:return 0===b.WindCnt2;case f.PolyFillType.pftPositive:return 0>=b.WindCnt2;default:return 0<=b.WindCnt2}case f.ClipType.ctDifference:if(b.PolyTyp==f.PolyType.ptSubject)switch(e){case f.PolyFillType.pftEvenOdd:case f.PolyFillType.pftNonZero:return 0===b.WindCnt2;case f.PolyFillType.pftPositive:return 0>=b.WindCnt2;
-default:return 0<=b.WindCnt2}else switch(e){case f.PolyFillType.pftEvenOdd:case f.PolyFillType.pftNonZero:return 0!==b.WindCnt2;case f.PolyFillType.pftPositive:return 0<b.WindCnt2;default:return 0>b.WindCnt2}case f.ClipType.ctXor:if(0===b.WindDelta)switch(e){case f.PolyFillType.pftEvenOdd:case f.PolyFillType.pftNonZero:return 0===b.WindCnt2;case f.PolyFillType.pftPositive:return 0>=b.WindCnt2;default:return 0<=b.WindCnt2}}return!0};f.Clipper.prototype.SetWindingCount=function(b){for(var d=b.PrevInAEL;null!==
-d&&(d.PolyTyp!=b.PolyTyp||0===d.WindDelta);)d=d.PrevInAEL;if(null===d)b.WindCnt=0===b.WindDelta?1:b.WindDelta,b.WindCnt2=0,d=this.m_ActiveEdges;else{if(0===b.WindDelta&&this.m_ClipType!=f.ClipType.ctUnion)b.WindCnt=1;else if(this.IsEvenOddFillType(b))if(0===b.WindDelta){for(var e=!0,q=d.PrevInAEL;null!==q;)q.PolyTyp==d.PolyTyp&&0!==q.WindDelta&&(e=!e),q=q.PrevInAEL;b.WindCnt=e?0:1}else b.WindCnt=b.WindDelta;else b.WindCnt=0>d.WindCnt*d.WindDelta?1<Math.abs(d.WindCnt)?0>d.WindDelta*b.WindDelta?d.WindCnt:
-d.WindCnt+b.WindDelta:0===b.WindDelta?1:b.WindDelta:0===b.WindDelta?0>d.WindCnt?d.WindCnt-1:d.WindCnt+1:0>d.WindDelta*b.WindDelta?d.WindCnt:d.WindCnt+b.WindDelta;b.WindCnt2=d.WindCnt2;d=d.NextInAEL}if(this.IsEvenOddAltFillType(b))for(;d!=b;)0!==d.WindDelta&&(b.WindCnt2=0===b.WindCnt2?1:0),d=d.NextInAEL;else for(;d!=b;)b.WindCnt2+=d.WindDelta,d=d.NextInAEL};f.Clipper.prototype.AddEdgeToSEL=function(b){null===this.m_SortedEdges?(this.m_SortedEdges=b,b.PrevInSEL=null,b.NextInSEL=null):(b.NextInSEL=this.m_SortedEdges,
-b.PrevInSEL=null,this.m_SortedEdges=this.m_SortedEdges.PrevInSEL=b)};f.Clipper.prototype.CopyAELToSEL=function(){var b=this.m_ActiveEdges;for(this.m_SortedEdges=b;null!==b;)b.PrevInSEL=b.PrevInAEL,b=b.NextInSEL=b.NextInAEL};f.Clipper.prototype.SwapPositionsInAEL=function(b,d){if(b.NextInAEL!=b.PrevInAEL&&d.NextInAEL!=d.PrevInAEL){if(b.NextInAEL==d){var e=d.NextInAEL;null!==e&&(e.PrevInAEL=b);var f=b.PrevInAEL;null!==f&&(f.NextInAEL=d);d.PrevInAEL=f;d.NextInAEL=b;b.PrevInAEL=d;b.NextInAEL=e}else d.NextInAEL==
-b?(e=b.NextInAEL,null!==e&&(e.PrevInAEL=d),f=d.PrevInAEL,null!==f&&(f.NextInAEL=b),b.PrevInAEL=f,b.NextInAEL=d,d.PrevInAEL=b,d.NextInAEL=e):(e=b.NextInAEL,f=b.PrevInAEL,b.NextInAEL=d.NextInAEL,null!==b.NextInAEL&&(b.NextInAEL.PrevInAEL=b),b.PrevInAEL=d.PrevInAEL,null!==b.PrevInAEL&&(b.PrevInAEL.NextInAEL=b),d.NextInAEL=e,null!==d.NextInAEL&&(d.NextInAEL.PrevInAEL=d),d.PrevInAEL=f,null!==d.PrevInAEL&&(d.PrevInAEL.NextInAEL=d));null===b.PrevInAEL?this.m_ActiveEdges=b:null===d.PrevInAEL&&(this.m_ActiveEdges=
-d)}};f.Clipper.prototype.SwapPositionsInSEL=function(b,d){if(null!==b.NextInSEL||null!==b.PrevInSEL)if(null!==d.NextInSEL||null!==d.PrevInSEL){if(b.NextInSEL==d){var e=d.NextInSEL;null!==e&&(e.PrevInSEL=b);var f=b.PrevInSEL;null!==f&&(f.NextInSEL=d);d.PrevInSEL=f;d.NextInSEL=b;b.PrevInSEL=d;b.NextInSEL=e}else d.NextInSEL==b?(e=b.NextInSEL,null!==e&&(e.PrevInSEL=d),f=d.PrevInSEL,null!==f&&(f.NextInSEL=b),b.PrevInSEL=f,b.NextInSEL=d,d.PrevInSEL=b,d.NextInSEL=e):(e=b.NextInSEL,f=b.PrevInSEL,b.NextInSEL=
-d.NextInSEL,null!==b.NextInSEL&&(b.NextInSEL.PrevInSEL=b),b.PrevInSEL=d.PrevInSEL,null!==b.PrevInSEL&&(b.PrevInSEL.NextInSEL=b),d.NextInSEL=e,null!==d.NextInSEL&&(d.NextInSEL.PrevInSEL=d),d.PrevInSEL=f,null!==d.PrevInSEL&&(d.PrevInSEL.NextInSEL=d));null===b.PrevInSEL?this.m_SortedEdges=b:null===d.PrevInSEL&&(this.m_SortedEdges=d)}};f.Clipper.prototype.AddLocalMaxPoly=function(b,d,e){this.AddOutPt(b,e);0==d.WindDelta&&this.AddOutPt(d,e);b.OutIdx==d.OutIdx?(b.OutIdx=-1,d.OutIdx=-1):b.OutIdx<d.OutIdx?
-this.AppendPolygon(b,d):this.AppendPolygon(d,b)};f.Clipper.prototype.AddLocalMinPoly=function(b,d,e){var q,n;f.ClipperBase.IsHorizontal(d)||b.Dx>d.Dx?(q=this.AddOutPt(b,e),d.OutIdx=b.OutIdx,b.Side=f.EdgeSide.esLeft,d.Side=f.EdgeSide.esRight,n=b,b=n.PrevInAEL==d?d.PrevInAEL:n.PrevInAEL):(q=this.AddOutPt(d,e),b.OutIdx=d.OutIdx,b.Side=f.EdgeSide.esRight,d.Side=f.EdgeSide.esLeft,n=d,b=n.PrevInAEL==b?b.PrevInAEL:n.PrevInAEL);null!==b&&0<=b.OutIdx&&f.Clipper.TopX(b,e.Y)==f.Clipper.TopX(n,e.Y)&&f.ClipperBase.SlopesEqual(n,
-b,this.m_UseFullRange)&&0!==n.WindDelta&&0!==b.WindDelta&&(e=this.AddOutPt(b,e),this.AddJoin(q,e,n.Top));return q};f.Clipper.prototype.CreateOutRec=function(){var b=new f.OutRec;b.Idx=-1;b.IsHole=!1;b.IsOpen=!1;b.FirstLeft=null;b.Pts=null;b.BottomPt=null;b.PolyNode=null;this.m_PolyOuts.push(b);b.Idx=this.m_PolyOuts.length-1;return b};f.Clipper.prototype.AddOutPt=function(b,d){var e=b.Side==f.EdgeSide.esLeft;if(0>b.OutIdx){var q=this.CreateOutRec();q.IsOpen=0===b.WindDelta;var n=new f.OutPt;q.Pts=
-n;n.Idx=q.Idx;n.Pt.X=d.X;n.Pt.Y=d.Y;f.use_xyz&&(n.Pt.Z=d.Z);n.Next=n;n.Prev=n;q.IsOpen||this.SetHoleState(b,q);b.OutIdx=q.Idx}else{var q=this.m_PolyOuts[b.OutIdx],k=q.Pts;if(e&&f.IntPoint.op_Equality(d,k.Pt))return k;if(!e&&f.IntPoint.op_Equality(d,k.Prev.Pt))return k.Prev;n=new f.OutPt;n.Idx=q.Idx;n.Pt.X=d.X;n.Pt.Y=d.Y;f.use_xyz&&(n.Pt.Z=d.Z);n.Next=k;n.Prev=k.Prev;n.Prev.Next=n;k.Prev=n;e&&(q.Pts=n)}return n};f.Clipper.prototype.SwapPoints=function(b,d){var e=new f.IntPoint(b.Value);b.Value.X=d.Value.X;
-b.Value.Y=d.Value.Y;f.use_xyz&&(b.Value.Z=d.Value.Z);d.Value.X=e.X;d.Value.Y=e.Y;f.use_xyz&&(d.Value.Z=e.Z)};f.Clipper.prototype.HorzSegmentsOverlap=function(b,d,e,f){var n;b>d&&(n=b,b=d,d=n);e>f&&(n=e,e=f,f=n);return b<f&&e<d};f.Clipper.prototype.SetHoleState=function(b,d){for(var e=!1,f=b.PrevInAEL;null!==f;)0<=f.OutIdx&&0!=f.WindDelta&&(e=!e,null===d.FirstLeft&&(d.FirstLeft=this.m_PolyOuts[f.OutIdx])),f=f.PrevInAEL;e&&(d.IsHole=!0)};f.Clipper.prototype.GetDx=function(b,d){return b.Y==d.Y?f.ClipperBase.horizontal:
-(d.X-b.X)/(d.Y-b.Y)};f.Clipper.prototype.FirstIsBottomPt=function(b,d){for(var e=b.Prev;f.IntPoint.op_Equality(e.Pt,b.Pt)&&e!=b;)e=e.Prev;for(var q=Math.abs(this.GetDx(b.Pt,e.Pt)),e=b.Next;f.IntPoint.op_Equality(e.Pt,b.Pt)&&e!=b;)e=e.Next;for(var n=Math.abs(this.GetDx(b.Pt,e.Pt)),e=d.Prev;f.IntPoint.op_Equality(e.Pt,d.Pt)&&e!=d;)e=e.Prev;for(var k=Math.abs(this.GetDx(d.Pt,e.Pt)),e=d.Next;f.IntPoint.op_Equality(e.Pt,d.Pt)&&e!=d;)e=e.Next;e=Math.abs(this.GetDx(d.Pt,e.Pt));return q>=k&&q>=e||n>=k&&n>=
-e};f.Clipper.prototype.GetBottomPt=function(b){for(var d=null,e=b.Next;e!=b;)e.Pt.Y>b.Pt.Y?(b=e,d=null):e.Pt.Y==b.Pt.Y&&e.Pt.X<=b.Pt.X&&(e.Pt.X<b.Pt.X?(d=null,b=e):e.Next!=b&&e.Prev!=b&&(d=e)),e=e.Next;if(null!==d)for(;d!=e;)for(this.FirstIsBottomPt(e,d)||(b=d),d=d.Next;f.IntPoint.op_Inequality(d.Pt,b.Pt);)d=d.Next;return b};f.Clipper.prototype.GetLowermostRec=function(b,d){null===b.BottomPt&&(b.BottomPt=this.GetBottomPt(b.Pts));null===d.BottomPt&&(d.BottomPt=this.GetBottomPt(d.Pts));var e=b.BottomPt,
-f=d.BottomPt;return e.Pt.Y>f.Pt.Y?b:e.Pt.Y<f.Pt.Y?d:e.Pt.X<f.Pt.X?b:e.Pt.X>f.Pt.X?d:e.Next==e?d:f.Next==f?b:this.FirstIsBottomPt(e,f)?b:d};f.Clipper.prototype.Param1RightOfParam2=function(b,d){do if(b=b.FirstLeft,b==d)return!0;while(null!==b);return!1};f.Clipper.prototype.GetOutRec=function(b){for(b=this.m_PolyOuts[b];b!=this.m_PolyOuts[b.Idx];)b=this.m_PolyOuts[b.Idx];return b};f.Clipper.prototype.AppendPolygon=function(b,d){var e=this.m_PolyOuts[b.OutIdx],q=this.m_PolyOuts[d.OutIdx],n;n=this.Param1RightOfParam2(e,
-q)?q:this.Param1RightOfParam2(q,e)?e:this.GetLowermostRec(e,q);var k=e.Pts,v=k.Prev,C=q.Pts,p=C.Prev;b.Side==f.EdgeSide.esLeft?(d.Side==f.EdgeSide.esLeft?(this.ReversePolyPtLinks(C),C.Next=k,k.Prev=C,v.Next=p,p.Prev=v,e.Pts=p):(p.Next=k,k.Prev=p,C.Prev=v,v.Next=C,e.Pts=C),k=f.EdgeSide.esLeft):(d.Side==f.EdgeSide.esRight?(this.ReversePolyPtLinks(C),v.Next=p,p.Prev=v,C.Next=k,k.Prev=C):(v.Next=C,C.Prev=v,k.Prev=p,p.Next=k),k=f.EdgeSide.esRight);e.BottomPt=null;n==q&&(q.FirstLeft!=e&&(e.FirstLeft=q.FirstLeft),
-e.IsHole=q.IsHole);q.Pts=null;q.BottomPt=null;q.FirstLeft=e;n=b.OutIdx;v=d.OutIdx;b.OutIdx=-1;d.OutIdx=-1;for(C=this.m_ActiveEdges;null!==C;){if(C.OutIdx==v){C.OutIdx=n;C.Side=k;break}C=C.NextInAEL}q.Idx=e.Idx};f.Clipper.prototype.ReversePolyPtLinks=function(b){if(null!==b){var d,e;d=b;do e=d.Next,d.Next=d.Prev,d=d.Prev=e;while(d!=b)}};f.Clipper.SwapSides=function(b,d){var e=b.Side;b.Side=d.Side;d.Side=e};f.Clipper.SwapPolyIndexes=function(b,d){var e=b.OutIdx;b.OutIdx=d.OutIdx;d.OutIdx=e};f.Clipper.prototype.IntersectEdges=
-function(b,d,e){var q=0<=b.OutIdx,n=0<=d.OutIdx;f.use_xyz&&this.SetZ(e,b,d);if(!f.use_lines||0!==b.WindDelta&&0!==d.WindDelta){if(b.PolyTyp==d.PolyTyp)if(this.IsEvenOddFillType(b)){var k=b.WindCnt;b.WindCnt=d.WindCnt;d.WindCnt=k}else b.WindCnt=0===b.WindCnt+d.WindDelta?-b.WindCnt:b.WindCnt+d.WindDelta,d.WindCnt=0===d.WindCnt-b.WindDelta?-d.WindCnt:d.WindCnt-b.WindDelta;else this.IsEvenOddFillType(d)?b.WindCnt2=0===b.WindCnt2?1:0:b.WindCnt2+=d.WindDelta,this.IsEvenOddFillType(b)?d.WindCnt2=0===d.WindCnt2?
-1:0:d.WindCnt2-=b.WindDelta;var v,C,p;b.PolyTyp==f.PolyType.ptSubject?(v=this.m_SubjFillType,p=this.m_ClipFillType):(v=this.m_ClipFillType,p=this.m_SubjFillType);d.PolyTyp==f.PolyType.ptSubject?(C=this.m_SubjFillType,k=this.m_ClipFillType):(C=this.m_ClipFillType,k=this.m_SubjFillType);switch(v){case f.PolyFillType.pftPositive:v=b.WindCnt;break;case f.PolyFillType.pftNegative:v=-b.WindCnt;break;default:v=Math.abs(b.WindCnt)}switch(C){case f.PolyFillType.pftPositive:C=d.WindCnt;break;case f.PolyFillType.pftNegative:C=
--d.WindCnt;break;default:C=Math.abs(d.WindCnt)}if(q&&n)0!=v&&1!=v||0!=C&&1!=C||b.PolyTyp!=d.PolyTyp&&this.m_ClipType!=f.ClipType.ctXor?this.AddLocalMaxPoly(b,d,e):(this.AddOutPt(b,e),this.AddOutPt(d,e),f.Clipper.SwapSides(b,d),f.Clipper.SwapPolyIndexes(b,d));else if(q){if(0===C||1==C)this.AddOutPt(b,e),f.Clipper.SwapSides(b,d),f.Clipper.SwapPolyIndexes(b,d)}else if(n){if(0===v||1==v)this.AddOutPt(d,e),f.Clipper.SwapSides(b,d),f.Clipper.SwapPolyIndexes(b,d)}else if(!(0!=v&&1!=v||0!=C&&1!=C)){switch(p){case f.PolyFillType.pftPositive:q=
-b.WindCnt2;break;case f.PolyFillType.pftNegative:q=-b.WindCnt2;break;default:q=Math.abs(b.WindCnt2)}switch(k){case f.PolyFillType.pftPositive:n=d.WindCnt2;break;case f.PolyFillType.pftNegative:n=-d.WindCnt2;break;default:n=Math.abs(d.WindCnt2)}if(b.PolyTyp!=d.PolyTyp)this.AddLocalMinPoly(b,d,e);else if(1==v&&1==C)switch(this.m_ClipType){case f.ClipType.ctIntersection:0<q&&0<n&&this.AddLocalMinPoly(b,d,e);break;case f.ClipType.ctUnion:0>=q&&0>=n&&this.AddLocalMinPoly(b,d,e);break;case f.ClipType.ctDifference:(b.PolyTyp==
-f.PolyType.ptClip&&0<q&&0<n||b.PolyTyp==f.PolyType.ptSubject&&0>=q&&0>=n)&&this.AddLocalMinPoly(b,d,e);break;case f.ClipType.ctXor:this.AddLocalMinPoly(b,d,e)}else f.Clipper.SwapSides(b,d)}}else if(0!=b.WindDelta||0!=d.WindDelta)b.PolyTyp==d.PolyTyp&&b.WindDelta!=d.WindDelta&&this.m_ClipType==f.ClipType.ctUnion?0===b.WindDelta?n&&(this.AddOutPt(b,e),q&&(b.OutIdx=-1)):q&&(this.AddOutPt(d,e),n&&(d.OutIdx=-1)):b.PolyTyp!=d.PolyTyp&&(0!==b.WindDelta||1!=Math.abs(d.WindCnt)||this.m_ClipType==f.ClipType.ctUnion&&
-0!==d.WindCnt2?0!==d.WindDelta||1!=Math.abs(b.WindCnt)||this.m_ClipType==f.ClipType.ctUnion&&0!==b.WindCnt2||(this.AddOutPt(d,e),n&&(d.OutIdx=-1)):(this.AddOutPt(b,e),q&&(b.OutIdx=-1)))};f.Clipper.prototype.DeleteFromAEL=function(b){var d=b.PrevInAEL,e=b.NextInAEL;if(null!==d||null!==e||b==this.m_ActiveEdges)null!==d?d.NextInAEL=e:this.m_ActiveEdges=e,null!==e&&(e.PrevInAEL=d),b.NextInAEL=null,b.PrevInAEL=null};f.Clipper.prototype.DeleteFromSEL=function(b){var d=b.PrevInSEL,e=b.NextInSEL;if(null!==
-d||null!==e||b==this.m_SortedEdges)null!==d?d.NextInSEL=e:this.m_SortedEdges=e,null!==e&&(e.PrevInSEL=d),b.NextInSEL=null,b.PrevInSEL=null};f.Clipper.prototype.UpdateEdgeIntoAEL=function(b){null===b.NextInLML&&f.Error("UpdateEdgeIntoAEL: invalid call");var d=b.PrevInAEL,e=b.NextInAEL;b.NextInLML.OutIdx=b.OutIdx;null!==d?d.NextInAEL=b.NextInLML:this.m_ActiveEdges=b.NextInLML;null!==e&&(e.PrevInAEL=b.NextInLML);b.NextInLML.Side=b.Side;b.NextInLML.WindDelta=b.WindDelta;b.NextInLML.WindCnt=b.WindCnt;
-b.NextInLML.WindCnt2=b.WindCnt2;b=b.NextInLML;b.Curr.X=b.Bot.X;b.Curr.Y=b.Bot.Y;f.use_xyz&&(b.Curr.Z=b.Bot.Z);b.PrevInAEL=d;b.NextInAEL=e;f.ClipperBase.IsHorizontal(b)||this.InsertScanbeam(b.Top.Y);return b};f.Clipper.prototype.ProcessHorizontals=function(b){for(var d=this.m_SortedEdges;null!==d;)this.DeleteFromSEL(d),this.ProcessHorizontal(d,b),d=this.m_SortedEdges};f.Clipper.prototype.GetHorzDirection=function(b,d){b.Bot.X<b.Top.X?(d.Left=b.Bot.X,d.Right=b.Top.X,d.Dir=f.Direction.dLeftToRight):
-(d.Left=b.Top.X,d.Right=b.Bot.X,d.Dir=f.Direction.dRightToLeft)};f.Clipper.prototype.ProcessHorizontal=function(b,d){var e={Dir:null,Left:null,Right:null};this.GetHorzDirection(b,e);for(var q=e.Dir,n=e.Left,k=e.Right,v=b,C=null;null!==v.NextInLML&&f.ClipperBase.IsHorizontal(v.NextInLML);)v=v.NextInLML;for(null===v.NextInLML&&(C=this.GetMaximaPair(v));;){for(var p=b==v,F=this.GetNextInAEL(b,q);null!==F&&!(F.Curr.X==b.Top.X&&null!==b.NextInLML&&F.Dx<b.NextInLML.Dx);){e=this.GetNextInAEL(F,q);if(q==
-f.Direction.dLeftToRight&&F.Curr.X<=k||q==f.Direction.dRightToLeft&&F.Curr.X>=n){if(F==C&&p){if(0<=b.OutIdx){q=this.AddOutPt(b,b.Top);for(e=this.m_SortedEdges;null!==e;)0<=e.OutIdx&&this.HorzSegmentsOverlap(b.Bot.X,b.Top.X,e.Bot.X,e.Top.X)&&(n=this.AddOutPt(e,e.Bot),this.AddJoin(n,q,e.Top)),e=e.NextInSEL;this.AddGhostJoin(q,b.Bot);this.AddLocalMaxPoly(b,C,b.Top)}this.DeleteFromAEL(b);this.DeleteFromAEL(C);return}if(q==f.Direction.dLeftToRight){var E=new f.IntPoint(F.Curr.X,b.Curr.Y);this.IntersectEdges(b,
-F,E)}else E=new f.IntPoint(F.Curr.X,b.Curr.Y),this.IntersectEdges(F,b,E);this.SwapPositionsInAEL(b,F)}else if(q==f.Direction.dLeftToRight&&F.Curr.X>=k||q==f.Direction.dRightToLeft&&F.Curr.X<=n)break;F=e}if(null!==b.NextInLML&&f.ClipperBase.IsHorizontal(b.NextInLML))b=this.UpdateEdgeIntoAEL(b),0<=b.OutIdx&&this.AddOutPt(b,b.Bot),e={Dir:q,Left:n,Right:k},this.GetHorzDirection(b,e),q=e.Dir,n=e.Left,k=e.Right;else break}null!==b.NextInLML?0<=b.OutIdx?(q=this.AddOutPt(b,b.Top),d&&this.AddGhostJoin(q,b.Bot),
-b=this.UpdateEdgeIntoAEL(b),0!==b.WindDelta&&(C=b.PrevInAEL,e=b.NextInAEL,null!==C&&C.Curr.X==b.Bot.X&&C.Curr.Y==b.Bot.Y&&0!==C.WindDelta&&0<=C.OutIdx&&C.Curr.Y>C.Top.Y&&f.ClipperBase.SlopesEqual(b,C,this.m_UseFullRange)?(n=this.AddOutPt(C,b.Bot),this.AddJoin(q,n,b.Top)):null!==e&&e.Curr.X==b.Bot.X&&e.Curr.Y==b.Bot.Y&&0!==e.WindDelta&&0<=e.OutIdx&&e.Curr.Y>e.Top.Y&&f.ClipperBase.SlopesEqual(b,e,this.m_UseFullRange)&&(n=this.AddOutPt(e,b.Bot),this.AddJoin(q,n,b.Top)))):this.UpdateEdgeIntoAEL(b):(0<=
-b.OutIdx&&this.AddOutPt(b,b.Top),this.DeleteFromAEL(b))};f.Clipper.prototype.GetNextInAEL=function(b,d){return d==f.Direction.dLeftToRight?b.NextInAEL:b.PrevInAEL};f.Clipper.prototype.IsMinima=function(b){return null!==b&&b.Prev.NextInLML!=b&&b.Next.NextInLML!=b};f.Clipper.prototype.IsMaxima=function(b,d){return null!==b&&b.Top.Y==d&&null===b.NextInLML};f.Clipper.prototype.IsIntermediate=function(b,d){return b.Top.Y==d&&null!==b.NextInLML};f.Clipper.prototype.GetMaximaPair=function(b){var d=null;
-f.IntPoint.op_Equality(b.Next.Top,b.Top)&&null===b.Next.NextInLML?d=b.Next:f.IntPoint.op_Equality(b.Prev.Top,b.Top)&&null===b.Prev.NextInLML&&(d=b.Prev);return null===d||-2!=d.OutIdx&&(d.NextInAEL!=d.PrevInAEL||f.ClipperBase.IsHorizontal(d))?d:null};f.Clipper.prototype.ProcessIntersections=function(b){if(null==this.m_ActiveEdges)return!0;try{this.BuildIntersectList(b);if(0==this.m_IntersectList.length)return!0;if(1==this.m_IntersectList.length||this.FixupIntersectionOrder())this.ProcessIntersectList();
-else return!1}catch(d){this.m_SortedEdges=null,this.m_IntersectList.length=0,f.Error("ProcessIntersections error")}this.m_SortedEdges=null;return!0};f.Clipper.prototype.BuildIntersectList=function(b){if(null!==this.m_ActiveEdges){var d=this.m_ActiveEdges;for(this.m_SortedEdges=d;null!==d;)d.PrevInSEL=d.PrevInAEL,d.NextInSEL=d.NextInAEL,d.Curr.X=f.Clipper.TopX(d,b),d=d.NextInAEL;for(var e=!0;e&&null!==this.m_SortedEdges;){e=!1;for(d=this.m_SortedEdges;null!==d.NextInSEL;){b=d.NextInSEL;var q=new f.IntPoint;
-d.Curr.X>b.Curr.X?(this.IntersectPoint(d,b,q),e=new f.IntersectNode,e.Edge1=d,e.Edge2=b,e.Pt.X=q.X,e.Pt.Y=q.Y,f.use_xyz&&(e.Pt.Z=q.Z),this.m_IntersectList.push(e),this.SwapPositionsInSEL(d,b),e=!0):d=b}if(null!==d.PrevInSEL)d.PrevInSEL.NextInSEL=null;else break}this.m_SortedEdges=null}};f.Clipper.prototype.EdgesAdjacent=function(b){return b.Edge1.NextInSEL==b.Edge2||b.Edge1.PrevInSEL==b.Edge2};f.Clipper.IntersectNodeSort=function(b,d){return d.Pt.Y-b.Pt.Y};f.Clipper.prototype.FixupIntersectionOrder=
-function(){this.m_IntersectList.sort(this.m_IntersectNodeComparer);this.CopyAELToSEL();for(var b=this.m_IntersectList.length,d=0;d<b;d++){if(!this.EdgesAdjacent(this.m_IntersectList[d])){for(var e=d+1;e<b&&!this.EdgesAdjacent(this.m_IntersectList[e]);)e++;if(e==b)return!1;var f=this.m_IntersectList[d];this.m_IntersectList[d]=this.m_IntersectList[e];this.m_IntersectList[e]=f}this.SwapPositionsInSEL(this.m_IntersectList[d].Edge1,this.m_IntersectList[d].Edge2)}return!0};f.Clipper.prototype.ProcessIntersectList=
-function(){for(var b=0,d=this.m_IntersectList.length;b<d;b++){var e=this.m_IntersectList[b];this.IntersectEdges(e.Edge1,e.Edge2,e.Pt);this.SwapPositionsInAEL(e.Edge1,e.Edge2)}this.m_IntersectList.length=0};I=function(b){return 0>b?Math.ceil(b-.5):Math.round(b)};Jb=function(b){return 0>b?Math.ceil(b-.5):Math.floor(b+.5)};Qa=function(b){return 0>b?-Math.round(Math.abs(b)):Math.round(b)};ab=function(b){if(0>b)return b-=.5,-2147483648>b?Math.ceil(b):b|0;b+=.5;return 2147483647<b?Math.floor(b):b|0};f.Clipper.Round=
-Y?I:nb?Qa:Xb?ab:Jb;f.Clipper.TopX=function(b,d){return d==b.Top.Y?b.Top.X:b.Bot.X+f.Clipper.Round(b.Dx*(d-b.Bot.Y))};f.Clipper.prototype.IntersectPoint=function(b,d,e){e.X=0;e.Y=0;var q,n;if(b.Dx==d.Dx)e.Y=b.Curr.Y,e.X=f.Clipper.TopX(b,e.Y);else{if(0===b.Delta.X)e.X=b.Bot.X,f.ClipperBase.IsHorizontal(d)?e.Y=d.Bot.Y:(n=d.Bot.Y-d.Bot.X/d.Dx,e.Y=f.Clipper.Round(e.X/d.Dx+n));else if(0===d.Delta.X)e.X=d.Bot.X,f.ClipperBase.IsHorizontal(b)?e.Y=b.Bot.Y:(q=b.Bot.Y-b.Bot.X/b.Dx,e.Y=f.Clipper.Round(e.X/b.Dx+
-q));else{q=b.Bot.X-b.Bot.Y*b.Dx;n=d.Bot.X-d.Bot.Y*d.Dx;var k=(n-q)/(b.Dx-d.Dx);e.Y=f.Clipper.Round(k);e.X=Math.abs(b.Dx)<Math.abs(d.Dx)?f.Clipper.Round(b.Dx*k+q):f.Clipper.Round(d.Dx*k+n)}if(e.Y<b.Top.Y||e.Y<d.Top.Y){if(b.Top.Y>d.Top.Y)return e.Y=b.Top.Y,e.X=f.Clipper.TopX(d,b.Top.Y),e.X<b.Top.X;e.Y=d.Top.Y;e.X=Math.abs(b.Dx)<Math.abs(d.Dx)?f.Clipper.TopX(b,e.Y):f.Clipper.TopX(d,e.Y)}e.Y>b.Curr.Y&&(e.Y=b.Curr.Y,e.X=Math.abs(b.Dx)>Math.abs(d.Dx)?f.Clipper.TopX(d,e.Y):f.Clipper.TopX(b,e.Y))}};f.Clipper.prototype.ProcessEdgesAtTopOfScanbeam=
-function(b){for(var d=this.m_ActiveEdges;null!==d;){var e=this.IsMaxima(d,b);e&&(e=this.GetMaximaPair(d),e=null===e||!f.ClipperBase.IsHorizontal(e));if(e){var q=d.PrevInAEL;this.DoMaxima(d);d=null===q?this.m_ActiveEdges:q.NextInAEL}else{this.IsIntermediate(d,b)&&f.ClipperBase.IsHorizontal(d.NextInLML)?(d=this.UpdateEdgeIntoAEL(d),0<=d.OutIdx&&this.AddOutPt(d,d.Bot),this.AddEdgeToSEL(d)):(d.Curr.X=f.Clipper.TopX(d,b),d.Curr.Y=b);if(this.StrictlySimple&&(q=d.PrevInAEL,0<=d.OutIdx&&0!==d.WindDelta&&
-null!==q&&0<=q.OutIdx&&q.Curr.X==d.Curr.X&&0!==q.WindDelta)){var n=new f.IntPoint(d.Curr);f.use_xyz&&this.SetZ(n,q,d);e=this.AddOutPt(q,n);q=this.AddOutPt(d,n);this.AddJoin(e,q,n)}d=d.NextInAEL}}this.ProcessHorizontals(!0);for(d=this.m_ActiveEdges;null!==d;)this.IsIntermediate(d,b)&&(e=null,0<=d.OutIdx&&(e=this.AddOutPt(d,d.Top)),d=this.UpdateEdgeIntoAEL(d),q=d.PrevInAEL,n=d.NextInAEL,null!==q&&q.Curr.X==d.Bot.X&&q.Curr.Y==d.Bot.Y&&null!==e&&0<=q.OutIdx&&q.Curr.Y>q.Top.Y&&f.ClipperBase.SlopesEqual(d,
-q,this.m_UseFullRange)&&0!==d.WindDelta&&0!==q.WindDelta?(q=this.AddOutPt(q,d.Bot),this.AddJoin(e,q,d.Top)):null!==n&&n.Curr.X==d.Bot.X&&n.Curr.Y==d.Bot.Y&&null!==e&&0<=n.OutIdx&&n.Curr.Y>n.Top.Y&&f.ClipperBase.SlopesEqual(d,n,this.m_UseFullRange)&&0!==d.WindDelta&&0!==n.WindDelta&&(q=this.AddOutPt(n,d.Bot),this.AddJoin(e,q,d.Top))),d=d.NextInAEL};f.Clipper.prototype.DoMaxima=function(b){var d=this.GetMaximaPair(b);if(null===d)0<=b.OutIdx&&this.AddOutPt(b,b.Top),this.DeleteFromAEL(b);else{for(var e=
-b.NextInAEL;null!==e&&e!=d;)this.IntersectEdges(b,e,b.Top),this.SwapPositionsInAEL(b,e),e=b.NextInAEL;-1==b.OutIdx&&-1==d.OutIdx?(this.DeleteFromAEL(b),this.DeleteFromAEL(d)):0<=b.OutIdx&&0<=d.OutIdx?(0<=b.OutIdx&&this.AddLocalMaxPoly(b,d,b.Top),this.DeleteFromAEL(b),this.DeleteFromAEL(d)):f.use_lines&&0===b.WindDelta?(0<=b.OutIdx&&(this.AddOutPt(b,b.Top),b.OutIdx=-1),this.DeleteFromAEL(b),0<=d.OutIdx&&(this.AddOutPt(d,b.Top),d.OutIdx=-1),this.DeleteFromAEL(d)):f.Error("DoMaxima error")}};f.Clipper.ReversePaths=
-function(b){for(var d=0,e=b.length;d<e;d++)b[d].reverse()};f.Clipper.Orientation=function(b){return 0<=f.Clipper.Area(b)};f.Clipper.prototype.PointCount=function(b){if(null===b)return 0;var d=0,e=b;do d++,e=e.Next;while(e!=b);return d};f.Clipper.prototype.BuildResult=function(b){f.Clear(b);for(var d=0,e=this.m_PolyOuts.length;d<e;d++){var q=this.m_PolyOuts[d];if(null!==q.Pts){var q=q.Pts.Prev,n=this.PointCount(q);if(!(2>n)){for(var k=Array(n),v=0;v<n;v++)k[v]=q.Pt,q=q.Prev;b.push(k)}}}};f.Clipper.prototype.BuildResult2=
-function(b){b.Clear();for(var d=0,e=this.m_PolyOuts.length;d<e;d++){var q=this.m_PolyOuts[d],n=this.PointCount(q.Pts);if(!(q.IsOpen&&2>n||!q.IsOpen&&3>n)){this.FixHoleLinkage(q);var k=new f.PolyNode;b.m_AllPolys.push(k);q.PolyNode=k;k.m_polygon.length=n;for(var q=q.Pts.Prev,v=0;v<n;v++)k.m_polygon[v]=q.Pt,q=q.Prev}}d=0;for(e=this.m_PolyOuts.length;d<e;d++)q=this.m_PolyOuts[d],null!==q.PolyNode&&(q.IsOpen?(q.PolyNode.IsOpen=!0,b.AddChild(q.PolyNode)):null!==q.FirstLeft&&null!=q.FirstLeft.PolyNode?
-q.FirstLeft.PolyNode.AddChild(q.PolyNode):b.AddChild(q.PolyNode))};f.Clipper.prototype.FixupOutPolygon=function(b){var d=null;b.BottomPt=null;for(var e=b.Pts;;){if(e.Prev==e||e.Prev==e.Next){b.Pts=null;return}if(f.IntPoint.op_Equality(e.Pt,e.Next.Pt)||f.IntPoint.op_Equality(e.Pt,e.Prev.Pt)||f.ClipperBase.SlopesEqual(e.Prev.Pt,e.Pt,e.Next.Pt,this.m_UseFullRange)&&(!this.PreserveCollinear||!this.Pt2IsBetweenPt1AndPt3(e.Prev.Pt,e.Pt,e.Next.Pt)))d=null,e.Prev.Next=e.Next,e=e.Next.Prev=e.Prev;else if(e==
-d)break;else null===d&&(d=e),e=e.Next}b.Pts=e};f.Clipper.prototype.DupOutPt=function(b,d){var e=new f.OutPt;e.Pt.X=b.Pt.X;e.Pt.Y=b.Pt.Y;f.use_xyz&&(e.Pt.Z=b.Pt.Z);e.Idx=b.Idx;d?(e.Next=b.Next,e.Prev=b,b.Next.Prev=e,b.Next=e):(e.Prev=b.Prev,e.Next=b,b.Prev.Next=e,b.Prev=e);return e};f.Clipper.prototype.GetOverlap=function(b,d,e,f,n){b<d?e<f?(n.Left=Math.max(b,e),n.Right=Math.min(d,f)):(n.Left=Math.max(b,f),n.Right=Math.min(d,e)):e<f?(n.Left=Math.max(d,e),n.Right=Math.min(b,f)):(n.Left=Math.max(d,f),
-n.Right=Math.min(b,e));return n.Left<n.Right};f.Clipper.prototype.JoinHorz=function(b,d,e,q,n,k){var v=b.Pt.X>d.Pt.X?f.Direction.dRightToLeft:f.Direction.dLeftToRight;q=e.Pt.X>q.Pt.X?f.Direction.dRightToLeft:f.Direction.dLeftToRight;if(v==q)return!1;if(v==f.Direction.dLeftToRight){for(;b.Next.Pt.X<=n.X&&b.Next.Pt.X>=b.Pt.X&&b.Next.Pt.Y==n.Y;)b=b.Next;k&&b.Pt.X!=n.X&&(b=b.Next);d=this.DupOutPt(b,!k);f.IntPoint.op_Inequality(d.Pt,n)&&(b=d,b.Pt.X=n.X,b.Pt.Y=n.Y,f.use_xyz&&(b.Pt.Z=n.Z),d=this.DupOutPt(b,
-!k))}else{for(;b.Next.Pt.X>=n.X&&b.Next.Pt.X<=b.Pt.X&&b.Next.Pt.Y==n.Y;)b=b.Next;k||b.Pt.X==n.X||(b=b.Next);d=this.DupOutPt(b,k);f.IntPoint.op_Inequality(d.Pt,n)&&(b=d,b.Pt.X=n.X,b.Pt.Y=n.Y,f.use_xyz&&(b.Pt.Z=n.Z),d=this.DupOutPt(b,k))}if(q==f.Direction.dLeftToRight){for(;e.Next.Pt.X<=n.X&&e.Next.Pt.X>=e.Pt.X&&e.Next.Pt.Y==n.Y;)e=e.Next;k&&e.Pt.X!=n.X&&(e=e.Next);q=this.DupOutPt(e,!k);f.IntPoint.op_Inequality(q.Pt,n)&&(e=q,e.Pt.X=n.X,e.Pt.Y=n.Y,f.use_xyz&&(e.Pt.Z=n.Z),q=this.DupOutPt(e,!k))}else{for(;e.Next.Pt.X>=
-n.X&&e.Next.Pt.X<=e.Pt.X&&e.Next.Pt.Y==n.Y;)e=e.Next;k||e.Pt.X==n.X||(e=e.Next);q=this.DupOutPt(e,k);f.IntPoint.op_Inequality(q.Pt,n)&&(e=q,e.Pt.X=n.X,e.Pt.Y=n.Y,f.use_xyz&&(e.Pt.Z=n.Z),q=this.DupOutPt(e,k))}v==f.Direction.dLeftToRight==k?(b.Prev=e,e.Next=b,d.Next=q,q.Prev=d):(b.Next=e,e.Prev=b,d.Prev=q,q.Next=d);return!0};f.Clipper.prototype.JoinPoints=function(b,d,e){var q=b.OutPt1,n;new f.OutPt;var k=b.OutPt2,v;new f.OutPt;if((v=b.OutPt1.Pt.Y==b.OffPt.Y)&&f.IntPoint.op_Equality(b.OffPt,b.OutPt1.Pt)&&
-f.IntPoint.op_Equality(b.OffPt,b.OutPt2.Pt)){if(d!=e)return!1;for(n=b.OutPt1.Next;n!=q&&f.IntPoint.op_Equality(n.Pt,b.OffPt);)n=n.Next;n=n.Pt.Y>b.OffPt.Y;for(v=b.OutPt2.Next;v!=k&&f.IntPoint.op_Equality(v.Pt,b.OffPt);)v=v.Next;if(n==v.Pt.Y>b.OffPt.Y)return!1;n?(n=this.DupOutPt(q,!1),v=this.DupOutPt(k,!0),q.Prev=k,k.Next=q,n.Next=v,v.Prev=n):(n=this.DupOutPt(q,!0),v=this.DupOutPt(k,!1),q.Next=k,k.Prev=q,n.Prev=v,v.Next=n);b.OutPt1=q;b.OutPt2=n;return!0}if(v){for(n=q;q.Prev.Pt.Y==q.Pt.Y&&q.Prev!=n&&
-q.Prev!=k;)q=q.Prev;for(;n.Next.Pt.Y==n.Pt.Y&&n.Next!=q&&n.Next!=k;)n=n.Next;if(n.Next==q||n.Next==k)return!1;for(v=k;k.Prev.Pt.Y==k.Pt.Y&&k.Prev!=v&&k.Prev!=n;)k=k.Prev;for(;v.Next.Pt.Y==v.Pt.Y&&v.Next!=k&&v.Next!=q;)v=v.Next;if(v.Next==k||v.Next==q)return!1;e={Left:null,Right:null};if(!this.GetOverlap(q.Pt.X,n.Pt.X,k.Pt.X,v.Pt.X,e))return!1;d=e.Left;var C=e.Right;e=new f.IntPoint;q.Pt.X>=d&&q.Pt.X<=C?(e.X=q.Pt.X,e.Y=q.Pt.Y,f.use_xyz&&(e.Z=q.Pt.Z),d=q.Pt.X>n.Pt.X):k.Pt.X>=d&&k.Pt.X<=C?(e.X=k.Pt.X,
-e.Y=k.Pt.Y,f.use_xyz&&(e.Z=k.Pt.Z),d=k.Pt.X>v.Pt.X):n.Pt.X>=d&&n.Pt.X<=C?(e.X=n.Pt.X,e.Y=n.Pt.Y,f.use_xyz&&(e.Z=n.Pt.Z),d=n.Pt.X>q.Pt.X):(e.X=v.Pt.X,e.Y=v.Pt.Y,f.use_xyz&&(e.Z=v.Pt.Z),d=v.Pt.X>k.Pt.X);b.OutPt1=q;b.OutPt2=k;return this.JoinHorz(q,n,k,v,e,d)}for(n=q.Next;f.IntPoint.op_Equality(n.Pt,q.Pt)&&n!=q;)n=n.Next;if(C=n.Pt.Y>q.Pt.Y||!f.ClipperBase.SlopesEqual(q.Pt,n.Pt,b.OffPt,this.m_UseFullRange)){for(n=q.Prev;f.IntPoint.op_Equality(n.Pt,q.Pt)&&n!=q;)n=n.Prev;if(n.Pt.Y>q.Pt.Y||!f.ClipperBase.SlopesEqual(q.Pt,
-n.Pt,b.OffPt,this.m_UseFullRange))return!1}for(v=k.Next;f.IntPoint.op_Equality(v.Pt,k.Pt)&&v!=k;)v=v.Next;var p=v.Pt.Y>k.Pt.Y||!f.ClipperBase.SlopesEqual(k.Pt,v.Pt,b.OffPt,this.m_UseFullRange);if(p){for(v=k.Prev;f.IntPoint.op_Equality(v.Pt,k.Pt)&&v!=k;)v=v.Prev;if(v.Pt.Y>k.Pt.Y||!f.ClipperBase.SlopesEqual(k.Pt,v.Pt,b.OffPt,this.m_UseFullRange))return!1}if(n==q||v==k||n==v||d==e&&C==p)return!1;C?(n=this.DupOutPt(q,!1),v=this.DupOutPt(k,!0),q.Prev=k,k.Next=q,n.Next=v,v.Prev=n):(n=this.DupOutPt(q,!0),
-v=this.DupOutPt(k,!1),q.Next=k,k.Prev=q,n.Prev=v,v.Next=n);b.OutPt1=q;b.OutPt2=n;return!0};f.Clipper.GetBounds=function(b){for(var d=0,e=b.length;d<e&&0==b[d].length;)d++;if(d==e)return new f.IntRect(0,0,0,0);var q=new f.IntRect;q.left=b[d][0].X;q.right=q.left;q.top=b[d][0].Y;for(q.bottom=q.top;d<e;d++)for(var k=0,N=b[d].length;k<N;k++)b[d][k].X<q.left?q.left=b[d][k].X:b[d][k].X>q.right&&(q.right=b[d][k].X),b[d][k].Y<q.top?q.top=b[d][k].Y:b[d][k].Y>q.bottom&&(q.bottom=b[d][k].Y);return q};f.Clipper.prototype.GetBounds2=
-function(b){var d=b,e=new f.IntRect;e.left=b.Pt.X;e.right=b.Pt.X;e.top=b.Pt.Y;e.bottom=b.Pt.Y;for(b=b.Next;b!=d;)b.Pt.X<e.left&&(e.left=b.Pt.X),b.Pt.X>e.right&&(e.right=b.Pt.X),b.Pt.Y<e.top&&(e.top=b.Pt.Y),b.Pt.Y>e.bottom&&(e.bottom=b.Pt.Y),b=b.Next;return e};f.Clipper.PointInPolygon=function(b,d){var e=0,f=d.length;if(3>f)return 0;for(var k=d[0],N=1;N<=f;++N){var v=N==f?d[0]:d[N];if(v.Y==b.Y&&(v.X==b.X||k.Y==b.Y&&v.X>b.X==k.X<b.X))return-1;if(k.Y<b.Y!=v.Y<b.Y)if(k.X>=b.X)if(v.X>b.X)e=1-e;else{var C=
-(k.X-b.X)*(v.Y-b.Y)-(v.X-b.X)*(k.Y-b.Y);if(0==C)return-1;0<C==v.Y>k.Y&&(e=1-e)}else if(v.X>b.X){C=(k.X-b.X)*(v.Y-b.Y)-(v.X-b.X)*(k.Y-b.Y);if(0==C)return-1;0<C==v.Y>k.Y&&(e=1-e)}k=v}return e};f.Clipper.prototype.PointInPolygon=function(b,d){var e=0,f=d,k=b.X,N=b.Y,v=d.Pt.X,C=d.Pt.Y;do{d=d.Next;var p=d.Pt.X,F=d.Pt.Y;if(F==N&&(p==k||C==N&&p>k==v<k))return-1;if(C<N!=F<N)if(v>=k)if(p>k)e=1-e;else{v=(v-k)*(F-N)-(p-k)*(C-N);if(0==v)return-1;0<v==F>C&&(e=1-e)}else if(p>k){v=(v-k)*(F-N)-(p-k)*(C-N);if(0==
-v)return-1;0<v==F>C&&(e=1-e)}v=p;C=F}while(f!=d);return e};f.Clipper.prototype.Poly2ContainsPoly1=function(b,d){var e=b;do{var f=this.PointInPolygon(e.Pt,d);if(0<=f)return 0<f;e=e.Next}while(e!=b);return!0};f.Clipper.prototype.FixupFirstLefts1=function(b,d){for(var e=0,f=this.m_PolyOuts.length;e<f;e++){var k=this.m_PolyOuts[e];null!=k.Pts&&null!=k.FirstLeft&&this.ParseFirstLeft(k.FirstLeft)==b&&this.Poly2ContainsPoly1(k.Pts,d.Pts)&&(k.FirstLeft=d)}};f.Clipper.prototype.FixupFirstLefts2=function(b,
-d){for(var e=0,f=this.m_PolyOuts,k=f.length,p=f[e];e<k;e++,p=f[e])p.FirstLeft==b&&(p.FirstLeft=d)};f.Clipper.ParseFirstLeft=function(b){for(;null!=b&&null==b.Pts;)b=b.FirstLeft;return b};f.Clipper.prototype.JoinCommonEdges=function(){for(var b=0,d=this.m_Joins.length;b<d;b++){var e=this.m_Joins[b],k=this.GetOutRec(e.OutPt1.Idx),n=this.GetOutRec(e.OutPt2.Idx);if(null!=k.Pts&&null!=n.Pts){var p;p=k==n?k:this.Param1RightOfParam2(k,n)?n:this.Param1RightOfParam2(n,k)?k:this.GetLowermostRec(k,n);if(this.JoinPoints(e,
-k,n))if(k==n){k.Pts=e.OutPt1;k.BottomPt=null;n=this.CreateOutRec();n.Pts=e.OutPt2;this.UpdateOutPtIdxs(n);if(this.m_UsingPolyTree){p=0;for(var v=this.m_PolyOuts.length;p<v-1;p++){var C=this.m_PolyOuts[p];null!=C.Pts&&f.Clipper.ParseFirstLeft(C.FirstLeft)==k&&C.IsHole!=k.IsHole&&this.Poly2ContainsPoly1(C.Pts,e.OutPt2)&&(C.FirstLeft=n)}}this.Poly2ContainsPoly1(n.Pts,k.Pts)?(n.IsHole=!k.IsHole,n.FirstLeft=k,this.m_UsingPolyTree&&this.FixupFirstLefts2(n,k),(n.IsHole^this.ReverseSolution)==0<this.Area(n)&&
-this.ReversePolyPtLinks(n.Pts)):this.Poly2ContainsPoly1(k.Pts,n.Pts)?(n.IsHole=k.IsHole,k.IsHole=!n.IsHole,n.FirstLeft=k.FirstLeft,k.FirstLeft=n,this.m_UsingPolyTree&&this.FixupFirstLefts2(k,n),(k.IsHole^this.ReverseSolution)==0<this.Area(k)&&this.ReversePolyPtLinks(k.Pts)):(n.IsHole=k.IsHole,n.FirstLeft=k.FirstLeft,this.m_UsingPolyTree&&this.FixupFirstLefts1(k,n))}else n.Pts=null,n.BottomPt=null,n.Idx=k.Idx,k.IsHole=p.IsHole,p==n&&(k.FirstLeft=n.FirstLeft),n.FirstLeft=k,this.m_UsingPolyTree&&this.FixupFirstLefts2(n,
-k)}}};f.Clipper.prototype.UpdateOutPtIdxs=function(b){var d=b.Pts;do d.Idx=b.Idx,d=d.Prev;while(d!=b.Pts)};f.Clipper.prototype.DoSimplePolygons=function(){for(var b=0;b<this.m_PolyOuts.length;){var d=this.m_PolyOuts[b++],e=d.Pts;if(null!=e&&!d.IsOpen){do{for(var k=e.Next;k!=d.Pts;){if(f.IntPoint.op_Equality(e.Pt,k.Pt)&&k.Next!=e&&k.Prev!=e){var n=e.Prev,p=k.Prev;e.Prev=p;p.Next=e;k.Prev=n;n.Next=k;d.Pts=e;n=this.CreateOutRec();n.Pts=k;this.UpdateOutPtIdxs(n);this.Poly2ContainsPoly1(n.Pts,d.Pts)?(n.IsHole=
-!d.IsHole,n.FirstLeft=d,this.m_UsingPolyTree&&this.FixupFirstLefts2(n,d)):this.Poly2ContainsPoly1(d.Pts,n.Pts)?(n.IsHole=d.IsHole,d.IsHole=!n.IsHole,n.FirstLeft=d.FirstLeft,d.FirstLeft=n,this.m_UsingPolyTree&&this.FixupFirstLefts2(d,n)):(n.IsHole=d.IsHole,n.FirstLeft=d.FirstLeft,this.m_UsingPolyTree&&this.FixupFirstLefts1(d,n));k=e}k=k.Next}e=e.Next}while(e!=d.Pts)}}};f.Clipper.Area=function(b){var d=b.length;if(3>d)return 0;for(var e=0,f=0,k=d-1;f<d;++f)e+=(b[k].X+b[f].X)*(b[k].Y-b[f].Y),k=f;return.5*
--e};f.Clipper.prototype.Area=function(b){var d=b.Pts;if(null==d)return 0;var e=0;do e+=(d.Prev.Pt.X+d.Pt.X)*(d.Prev.Pt.Y-d.Pt.Y),d=d.Next;while(d!=b.Pts);return.5*e};f.Clipper.SimplifyPolygon=function(b,d){var e=[],k=new f.Clipper(0);k.StrictlySimple=!0;k.AddPath(b,f.PolyType.ptSubject,!0);k.Execute(f.ClipType.ctUnion,e,d,d);return e};f.Clipper.SimplifyPolygons=function(b,d){"undefined"==typeof d&&(d=f.PolyFillType.pftEvenOdd);var e=[],k=new f.Clipper(0);k.StrictlySimple=!0;k.AddPaths(b,f.PolyType.ptSubject,
-!0);k.Execute(f.ClipType.ctUnion,e,d,d);return e};f.Clipper.DistanceSqrd=function(b,d){var e=b.X-d.X,f=b.Y-d.Y;return e*e+f*f};f.Clipper.DistanceFromLineSqrd=function(b,d,e){var f=d.Y-e.Y;e=e.X-d.X;d=f*d.X+e*d.Y;d=f*b.X+e*b.Y-d;return d*d/(f*f+e*e)};f.Clipper.SlopesNearCollinear=function(b,d,e,k){return Math.abs(b.X-d.X)>Math.abs(b.Y-d.Y)?b.X>d.X==b.X<e.X?f.Clipper.DistanceFromLineSqrd(b,d,e)<k:d.X>b.X==d.X<e.X?f.Clipper.DistanceFromLineSqrd(d,b,e)<k:f.Clipper.DistanceFromLineSqrd(e,b,d)<k:b.Y>d.Y==
-b.Y<e.Y?f.Clipper.DistanceFromLineSqrd(b,d,e)<k:d.Y>b.Y==d.Y<e.Y?f.Clipper.DistanceFromLineSqrd(d,b,e)<k:f.Clipper.DistanceFromLineSqrd(e,b,d)<k};f.Clipper.PointsAreClose=function(b,d,e){var f=b.X-d.X;b=b.Y-d.Y;return f*f+b*b<=e};f.Clipper.ExcludeOp=function(b){var d=b.Prev;d.Next=b.Next;b.Next.Prev=d;d.Idx=0;return d};f.Clipper.CleanPolygon=function(b,d){"undefined"==typeof d&&(d=1.415);var e=b.length;if(0==e)return[];for(var k=Array(e),n=0;n<e;++n)k[n]=new f.OutPt;for(n=0;n<e;++n)k[n].Pt=b[n],k[n].Next=
-k[(n+1)%e],k[n].Next.Prev=k[n],k[n].Idx=0;n=d*d;for(k=k[0];0==k.Idx&&k.Next!=k.Prev;)f.Clipper.PointsAreClose(k.Pt,k.Prev.Pt,n)?(k=f.Clipper.ExcludeOp(k),e--):f.Clipper.PointsAreClose(k.Prev.Pt,k.Next.Pt,n)?(f.Clipper.ExcludeOp(k.Next),k=f.Clipper.ExcludeOp(k),e-=2):f.Clipper.SlopesNearCollinear(k.Prev.Pt,k.Pt,k.Next.Pt,n)?(k=f.Clipper.ExcludeOp(k),e--):(k.Idx=1,k=k.Next);3>e&&(e=0);for(var p=Array(e),n=0;n<e;++n)p[n]=new f.IntPoint(k.Pt),k=k.Next;return p};f.Clipper.CleanPolygons=function(b,d){for(var e=
-Array(b.length),k=0,n=b.length;k<n;k++)e[k]=f.Clipper.CleanPolygon(b[k],d);return e};f.Clipper.Minkowski=function(b,d,e,k){k=k?1:0;var n=b.length,p=d.length,v=[];if(e)for(e=0;e<p;e++){for(var C=Array(n),F=0,E=b.length,H=b[F];F<E;F++,H=b[F])C[F]=new f.IntPoint(d[e].X+H.X,d[e].Y+H.Y);v.push(C)}else for(e=0;e<p;e++){C=Array(n);F=0;E=b.length;for(H=b[F];F<E;F++,H=b[F])C[F]=new f.IntPoint(d[e].X-H.X,d[e].Y-H.Y);v.push(C)}b=[];for(e=0;e<p-1+k;e++)for(F=0;F<n;F++)d=[],d.push(v[e%p][F%n]),d.push(v[(e+1)%
-p][F%n]),d.push(v[(e+1)%p][(F+1)%n]),d.push(v[e%p][(F+1)%n]),f.Clipper.Orientation(d)||d.reverse(),b.push(d);return b};f.Clipper.MinkowskiSum=function(b,d,e){if(d[0]instanceof Array){v=d;d=new f.Paths;for(var k=new f.Clipper,n=0;n<v.length;++n){var p=f.Clipper.Minkowski(b,v[n],!0,e);k.AddPaths(p,f.PolyType.ptSubject,!0);e&&(p=f.Clipper.TranslatePath(v[n],b[0]),k.AddPath(p,f.PolyType.ptClip,!0))}k.Execute(f.ClipType.ctUnion,d,f.PolyFillType.pftNonZero,f.PolyFillType.pftNonZero);return d}var v=f.Clipper.Minkowski(b,
-d,!0,e),k=new f.Clipper;k.AddPaths(v,f.PolyType.ptSubject,!0);k.Execute(f.ClipType.ctUnion,v,f.PolyFillType.pftNonZero,f.PolyFillType.pftNonZero);return v};f.Clipper.TranslatePath=function(b,d){for(var e=new f.Path,k=0;k<b.length;k++)e.push(new f.IntPoint(b[k].X+d.X,b[k].Y+d.Y));return e};f.Clipper.MinkowskiDiff=function(b,d){var e=f.Clipper.Minkowski(b,d,!1,!0),k=new f.Clipper;k.AddPaths(e,f.PolyType.ptSubject,!0);k.Execute(f.ClipType.ctUnion,e,f.PolyFillType.pftNonZero,f.PolyFillType.pftNonZero);
-return e};f.Clipper.PolyTreeToPaths=function(b){var d=[];f.Clipper.AddPolyNodeToPaths(b,f.Clipper.NodeType.ntAny,d);return d};f.Clipper.AddPolyNodeToPaths=function(b,d,e){var k=!0;switch(d){case f.Clipper.NodeType.ntOpen:return;case f.Clipper.NodeType.ntClosed:k=!b.IsOpen}0<b.m_polygon.length&&k&&e.push(b.m_polygon);k=0;b=b.Childs();for(var n=b.length,p=b[k];k<n;k++,p=b[k])f.Clipper.AddPolyNodeToPaths(p,d,e)};f.Clipper.OpenPathsFromPolyTree=function(b){for(var d=new f.Paths,e=0,k=b.ChildCount();e<
-k;e++)b.Childs()[e].IsOpen&&d.push(b.Childs()[e].m_polygon);return d};f.Clipper.ClosedPathsFromPolyTree=function(b){var d=new f.Paths;f.Clipper.AddPolyNodeToPaths(b,f.Clipper.NodeType.ntClosed,d);return d};V(f.Clipper,f.ClipperBase);f.Clipper.NodeType={ntAny:0,ntOpen:1,ntClosed:2};f.ClipperOffset=function(b,d){"undefined"==typeof b&&(b=2);"undefined"==typeof d&&(d=f.ClipperOffset.def_arc_tolerance);this.m_destPolys=new f.Paths;this.m_srcPoly=new f.Path;this.m_destPoly=new f.Path;this.m_normals=[];
-this.m_StepsPerRad=this.m_miterLim=this.m_cos=this.m_sin=this.m_sinA=this.m_delta=0;this.m_lowest=new f.IntPoint;this.m_polyNodes=new f.PolyNode;this.MiterLimit=b;this.ArcTolerance=d;this.m_lowest.X=-1};f.ClipperOffset.two_pi=6.28318530717959;f.ClipperOffset.def_arc_tolerance=.25;f.ClipperOffset.prototype.Clear=function(){f.Clear(this.m_polyNodes.Childs());this.m_lowest.X=-1};f.ClipperOffset.Round=f.Clipper.Round;f.ClipperOffset.prototype.AddPath=function(b,d,e){var k=b.length-1;if(!(0>k)){var n=
-new f.PolyNode;n.m_jointype=d;n.m_endtype=e;if(e==f.EndType.etClosedLine||e==f.EndType.etClosedPolygon)for(;0<k&&f.IntPoint.op_Equality(b[0],b[k]);)k--;n.m_polygon.push(b[0]);var p=0;d=0;for(var v=1;v<=k;v++)f.IntPoint.op_Inequality(n.m_polygon[p],b[v])&&(p++,n.m_polygon.push(b[v]),b[v].Y>n.m_polygon[d].Y||b[v].Y==n.m_polygon[d].Y&&b[v].X<n.m_polygon[d].X)&&(d=p);if(!(e==f.EndType.etClosedPolygon&&2>p)&&(this.m_polyNodes.AddChild(n),e==f.EndType.etClosedPolygon))if(0>this.m_lowest.X)this.m_lowest=
-new f.IntPoint(this.m_polyNodes.ChildCount()-1,d);else if(b=this.m_polyNodes.Childs()[this.m_lowest.X].m_polygon[this.m_lowest.Y],n.m_polygon[d].Y>b.Y||n.m_polygon[d].Y==b.Y&&n.m_polygon[d].X<b.X)this.m_lowest=new f.IntPoint(this.m_polyNodes.ChildCount()-1,d)}};f.ClipperOffset.prototype.AddPaths=function(b,d,e){for(var f=0,k=b.length;f<k;f++)this.AddPath(b[f],d,e)};f.ClipperOffset.prototype.FixOrientations=function(){if(0<=this.m_lowest.X&&!f.Clipper.Orientation(this.m_polyNodes.Childs()[this.m_lowest.X].m_polygon))for(var b=
-0;b<this.m_polyNodes.ChildCount();b++){var d=this.m_polyNodes.Childs()[b];(d.m_endtype==f.EndType.etClosedPolygon||d.m_endtype==f.EndType.etClosedLine&&f.Clipper.Orientation(d.m_polygon))&&d.m_polygon.reverse()}else for(b=0;b<this.m_polyNodes.ChildCount();b++)d=this.m_polyNodes.Childs()[b],d.m_endtype!=f.EndType.etClosedLine||f.Clipper.Orientation(d.m_polygon)||d.m_polygon.reverse()};f.ClipperOffset.GetUnitNormal=function(b,d){var e=d.X-b.X,k=d.Y-b.Y;if(0==e&&0==k)return new f.DoublePoint(0,0);var n=
-1/Math.sqrt(e*e+k*k);return new f.DoublePoint(k*n,-(e*n))};f.ClipperOffset.prototype.DoOffset=function(b){this.m_destPolys=[];this.m_delta=b;if(f.ClipperBase.near_zero(b))for(var d=0;d<this.m_polyNodes.ChildCount();d++){var e=this.m_polyNodes.Childs()[d];e.m_endtype==f.EndType.etClosedPolygon&&this.m_destPolys.push(e.m_polygon)}else{this.m_miterLim=2<this.MiterLimit?2/(this.MiterLimit*this.MiterLimit):.5;var k=3.14159265358979/Math.acos(1-(0>=this.ArcTolerance?f.ClipperOffset.def_arc_tolerance:this.ArcTolerance>
-Math.abs(b)*f.ClipperOffset.def_arc_tolerance?Math.abs(b)*f.ClipperOffset.def_arc_tolerance:this.ArcTolerance)/Math.abs(b));this.m_sin=Math.sin(f.ClipperOffset.two_pi/k);this.m_cos=Math.cos(f.ClipperOffset.two_pi/k);this.m_StepsPerRad=k/f.ClipperOffset.two_pi;0>b&&(this.m_sin=-this.m_sin);for(d=0;d<this.m_polyNodes.ChildCount();d++){e=this.m_polyNodes.Childs()[d];this.m_srcPoly=e.m_polygon;var n=this.m_srcPoly.length;if(!(0==n||0>=b&&(3>n||e.m_endtype!=f.EndType.etClosedPolygon))){this.m_destPoly=
-[];if(1==n)if(e.m_jointype==f.JoinType.jtRound)for(var e=1,n=0,p=1;p<=k;p++){this.m_destPoly.push(new f.IntPoint(f.ClipperOffset.Round(this.m_srcPoly[0].X+e*b),f.ClipperOffset.Round(this.m_srcPoly[0].Y+n*b)));var v=e,e=e*this.m_cos-this.m_sin*n,n=v*this.m_sin+n*this.m_cos}else for(n=e=-1,p=0;4>p;++p)this.m_destPoly.push(new f.IntPoint(f.ClipperOffset.Round(this.m_srcPoly[0].X+e*b),f.ClipperOffset.Round(this.m_srcPoly[0].Y+n*b))),0>e?e=1:0>n?n=1:e=-1;else{for(p=this.m_normals.length=0;p<n-1;p++)this.m_normals.push(f.ClipperOffset.GetUnitNormal(this.m_srcPoly[p],
-this.m_srcPoly[p+1]));e.m_endtype==f.EndType.etClosedLine||e.m_endtype==f.EndType.etClosedPolygon?this.m_normals.push(f.ClipperOffset.GetUnitNormal(this.m_srcPoly[n-1],this.m_srcPoly[0])):this.m_normals.push(new f.DoublePoint(this.m_normals[n-2]));if(e.m_endtype==f.EndType.etClosedPolygon)for(v=n-1,p=0;p<n;p++)v=this.OffsetPoint(p,v,e.m_jointype);else if(e.m_endtype==f.EndType.etClosedLine){v=n-1;for(p=0;p<n;p++)v=this.OffsetPoint(p,v,e.m_jointype);this.m_destPolys.push(this.m_destPoly);this.m_destPoly=
-[];v=this.m_normals[n-1];for(p=n-1;0<p;p--)this.m_normals[p]=new f.DoublePoint(-this.m_normals[p-1].X,-this.m_normals[p-1].Y);this.m_normals[0]=new f.DoublePoint(-v.X,-v.Y);v=0;for(p=n-1;0<=p;p--)v=this.OffsetPoint(p,v,e.m_jointype)}else{v=0;for(p=1;p<n-1;++p)v=this.OffsetPoint(p,v,e.m_jointype);e.m_endtype==f.EndType.etOpenButt?(p=n-1,v=new f.IntPoint(f.ClipperOffset.Round(this.m_srcPoly[p].X+this.m_normals[p].X*b),f.ClipperOffset.Round(this.m_srcPoly[p].Y+this.m_normals[p].Y*b)),this.m_destPoly.push(v),
-v=new f.IntPoint(f.ClipperOffset.Round(this.m_srcPoly[p].X-this.m_normals[p].X*b),f.ClipperOffset.Round(this.m_srcPoly[p].Y-this.m_normals[p].Y*b)),this.m_destPoly.push(v)):(p=n-1,v=n-2,this.m_sinA=0,this.m_normals[p]=new f.DoublePoint(-this.m_normals[p].X,-this.m_normals[p].Y),e.m_endtype==f.EndType.etOpenSquare?this.DoSquare(p,v):this.DoRound(p,v));for(p=n-1;0<p;p--)this.m_normals[p]=new f.DoublePoint(-this.m_normals[p-1].X,-this.m_normals[p-1].Y);this.m_normals[0]=new f.DoublePoint(-this.m_normals[1].X,
--this.m_normals[1].Y);v=n-1;for(p=v-1;0<p;--p)v=this.OffsetPoint(p,v,e.m_jointype);e.m_endtype==f.EndType.etOpenButt?(v=new f.IntPoint(f.ClipperOffset.Round(this.m_srcPoly[0].X-this.m_normals[0].X*b),f.ClipperOffset.Round(this.m_srcPoly[0].Y-this.m_normals[0].Y*b)),this.m_destPoly.push(v),v=new f.IntPoint(f.ClipperOffset.Round(this.m_srcPoly[0].X+this.m_normals[0].X*b),f.ClipperOffset.Round(this.m_srcPoly[0].Y+this.m_normals[0].Y*b)),this.m_destPoly.push(v)):(this.m_sinA=0,e.m_endtype==f.EndType.etOpenSquare?
-this.DoSquare(0,1):this.DoRound(0,1))}}this.m_destPolys.push(this.m_destPoly)}}}};f.ClipperOffset.prototype.Execute=function(){var b=arguments;if(b[0]instanceof f.PolyTree)if(d=b[0],e=b[1],d.Clear(),this.FixOrientations(),this.DoOffset(e),b=new f.Clipper(0),b.AddPaths(this.m_destPolys,f.PolyType.ptSubject,!0),0<e)b.Execute(f.ClipType.ctUnion,d,f.PolyFillType.pftPositive,f.PolyFillType.pftPositive);else if(e=f.Clipper.GetBounds(this.m_destPolys),k=new f.Path,k.push(new f.IntPoint(e.left-10,e.bottom+
-10)),k.push(new f.IntPoint(e.right+10,e.bottom+10)),k.push(new f.IntPoint(e.right+10,e.top-10)),k.push(new f.IntPoint(e.left-10,e.top-10)),b.AddPath(k,f.PolyType.ptSubject,!0),b.ReverseSolution=!0,b.Execute(f.ClipType.ctUnion,d,f.PolyFillType.pftNegative,f.PolyFillType.pftNegative),1==d.ChildCount()&&0<d.Childs()[0].ChildCount())for(b=d.Childs()[0],d.Childs()[0]=b.Childs()[0],d.Childs()[0].m_Parent=d,e=1;e<b.ChildCount();e++)d.AddChild(b.Childs()[e]);else d.Clear();else{var d=b[0],e=b[1];f.Clear(d);
-this.FixOrientations();this.DoOffset(e);b=new f.Clipper(0);b.AddPaths(this.m_destPolys,f.PolyType.ptSubject,!0);if(0<e)b.Execute(f.ClipType.ctUnion,d,f.PolyFillType.pftPositive,f.PolyFillType.pftPositive);else{var e=f.Clipper.GetBounds(this.m_destPolys),k=new f.Path;k.push(new f.IntPoint(e.left-10,e.bottom+10));k.push(new f.IntPoint(e.right+10,e.bottom+10));k.push(new f.IntPoint(e.right+10,e.top-10));k.push(new f.IntPoint(e.left-10,e.top-10));b.AddPath(k,f.PolyType.ptSubject,!0);b.ReverseSolution=
-!0;b.Execute(f.ClipType.ctUnion,d,f.PolyFillType.pftNegative,f.PolyFillType.pftNegative);0<d.length&&d.splice(0,1)}}};f.ClipperOffset.prototype.OffsetPoint=function(b,d,e){this.m_sinA=this.m_normals[d].X*this.m_normals[b].Y-this.m_normals[b].X*this.m_normals[d].Y;if(1>Math.abs(this.m_sinA*this.m_delta)){if(0<this.m_normals[d].X*this.m_normals[b].X+this.m_normals[b].Y*this.m_normals[d].Y)return this.m_destPoly.push(new f.IntPoint(f.ClipperOffset.Round(this.m_srcPoly[b].X+this.m_normals[d].X*this.m_delta),
-f.ClipperOffset.Round(this.m_srcPoly[b].Y+this.m_normals[d].Y*this.m_delta))),d}else 1<this.m_sinA?this.m_sinA=1:-1>this.m_sinA&&(this.m_sinA=-1);if(0>this.m_sinA*this.m_delta)this.m_destPoly.push(new f.IntPoint(f.ClipperOffset.Round(this.m_srcPoly[b].X+this.m_normals[d].X*this.m_delta),f.ClipperOffset.Round(this.m_srcPoly[b].Y+this.m_normals[d].Y*this.m_delta))),this.m_destPoly.push(new f.IntPoint(this.m_srcPoly[b])),this.m_destPoly.push(new f.IntPoint(f.ClipperOffset.Round(this.m_srcPoly[b].X+this.m_normals[b].X*
-this.m_delta),f.ClipperOffset.Round(this.m_srcPoly[b].Y+this.m_normals[b].Y*this.m_delta)));else switch(e){case f.JoinType.jtMiter:e=1+(this.m_normals[b].X*this.m_normals[d].X+this.m_normals[b].Y*this.m_normals[d].Y);e>=this.m_miterLim?this.DoMiter(b,d,e):this.DoSquare(b,d);break;case f.JoinType.jtSquare:this.DoSquare(b,d);break;case f.JoinType.jtRound:this.DoRound(b,d)}return b};f.ClipperOffset.prototype.DoSquare=function(b,d){var e=Math.tan(Math.atan2(this.m_sinA,this.m_normals[d].X*this.m_normals[b].X+
-this.m_normals[d].Y*this.m_normals[b].Y)/4);this.m_destPoly.push(new f.IntPoint(f.ClipperOffset.Round(this.m_srcPoly[b].X+this.m_delta*(this.m_normals[d].X-this.m_normals[d].Y*e)),f.ClipperOffset.Round(this.m_srcPoly[b].Y+this.m_delta*(this.m_normals[d].Y+this.m_normals[d].X*e))));this.m_destPoly.push(new f.IntPoint(f.ClipperOffset.Round(this.m_srcPoly[b].X+this.m_delta*(this.m_normals[b].X+this.m_normals[b].Y*e)),f.ClipperOffset.Round(this.m_srcPoly[b].Y+this.m_delta*(this.m_normals[b].Y-this.m_normals[b].X*
-e))))};f.ClipperOffset.prototype.DoMiter=function(b,d,e){e=this.m_delta/e;this.m_destPoly.push(new f.IntPoint(f.ClipperOffset.Round(this.m_srcPoly[b].X+(this.m_normals[d].X+this.m_normals[b].X)*e),f.ClipperOffset.Round(this.m_srcPoly[b].Y+(this.m_normals[d].Y+this.m_normals[b].Y)*e)))};f.ClipperOffset.prototype.DoRound=function(b,d){for(var e=Math.max(f.Cast_Int32(f.ClipperOffset.Round(this.m_StepsPerRad*Math.abs(Math.atan2(this.m_sinA,this.m_normals[d].X*this.m_normals[b].X+this.m_normals[d].Y*this.m_normals[b].Y)))),
-1),k=this.m_normals[d].X,n=this.m_normals[d].Y,p,v=0;v<e;++v)this.m_destPoly.push(new f.IntPoint(f.ClipperOffset.Round(this.m_srcPoly[b].X+k*this.m_delta),f.ClipperOffset.Round(this.m_srcPoly[b].Y+n*this.m_delta))),p=k,k=k*this.m_cos-this.m_sin*n,n=p*this.m_sin+n*this.m_cos;this.m_destPoly.push(new f.IntPoint(f.ClipperOffset.Round(this.m_srcPoly[b].X+this.m_normals[b].X*this.m_delta),f.ClipperOffset.Round(this.m_srcPoly[b].Y+this.m_normals[b].Y*this.m_delta)))};f.Error=function(b){try{throw Error(b);
-}catch(d){alert(d.message)}};f.JS={};f.JS.AreaOfPolygon=function(b,d){d||(d=1);return f.Clipper.Area(b)/(d*d)};f.JS.AreaOfPolygons=function(b,d){d||(d=1);for(var e=0,k=0;k<b.length;k++)e+=f.Clipper.Area(b[k]);return e/(d*d)};f.JS.BoundsOfPath=function(b,d){return f.JS.BoundsOfPaths([b],d)};f.JS.BoundsOfPaths=function(b,d){d||(d=1);var e=f.Clipper.GetBounds(b);e.left/=d;e.bottom/=d;e.right/=d;e.top/=d;return e};f.JS.Clean=function(b,d){if(!(b instanceof Array))return[];var e=b[0]instanceof Array;b=
-f.JS.Clone(b);if("number"!=typeof d||null===d)return f.Error("Delta is not a number in Clean()."),b;if(0===b.length||1==b.length&&0===b[0].length||0>d)return b;e||(b=[b]);for(var k=b.length,n,p,v,F,E,H,K,I=[],ea=0;ea<k;ea++)if(p=b[ea],n=p.length,0!==n)if(3>n)v=p,I.push(v);else{v=p;F=d*d;E=p[0];for(K=H=1;K<n;K++)(p[K].X-E.X)*(p[K].X-E.X)+(p[K].Y-E.Y)*(p[K].Y-E.Y)<=F||(v[H]=p[K],E=p[K],H++);E=p[H-1];(p[0].X-E.X)*(p[0].X-E.X)+(p[0].Y-E.Y)*(p[0].Y-E.Y)<=F&&H--;H<n&&v.splice(H,n-H);v.length&&I.push(v)}!e&&
-I.length?I=I[0]:e||0!==I.length?e&&0===I.length&&(I=[[]]):I=[];return I};f.JS.Clone=function(b){if(!(b instanceof Array)||0===b.length)return[];if(1==b.length&&0===b[0].length)return[[]];var d=b[0]instanceof Array;d||(b=[b]);var e=b.length,f,k,p,v,F=Array(e);for(k=0;k<e;k++){f=b[k].length;v=Array(f);for(p=0;p<f;p++)v[p]={X:b[k][p].X,Y:b[k][p].Y};F[k]=v}d||(F=F[0]);return F};f.JS.Lighten=function(b,d){if(!(b instanceof Array))return[];if("number"!=typeof d||null===d)return f.Error("Tolerance is not a number in Lighten()."),
-f.JS.Clone(b);if(0===b.length||1==b.length&&0===b[0].length||0>d)return f.JS.Clone(b);b[0]instanceof Array||(b=[b]);var e,k,n,p,v,F,E,H,K,I,ea,U,W,V,Y,Ea=b.length,ja=d*d,aa=[];for(e=0;e<Ea;e++)if(n=b[e],F=n.length,0!=F){for(p=0;1E6>p;p++){v=[];F=n.length;n[F-1].X!=n[0].X||n[F-1].Y!=n[0].Y?(ea=1,n.push({X:n[0].X,Y:n[0].Y}),F=n.length):ea=0;I=[];for(k=0;k<F-2;k++){E=n[k];K=n[k+1];H=n[k+2];V=E.X;Y=E.Y;E=H.X-V;U=H.Y-Y;if(0!==E||0!==U)W=((K.X-V)*E+(K.Y-Y)*U)/(E*E+U*U),1<W?(V=H.X,Y=H.Y):0<W&&(V+=E*W,Y+=
-U*W);E=K.X-V;U=K.Y-Y;H=E*E+U*U;H<=ja&&(I[k+1]=1,k++)}v.push({X:n[0].X,Y:n[0].Y});for(k=1;k<F-1;k++)I[k]||v.push({X:n[k].X,Y:n[k].Y});v.push({X:n[F-1].X,Y:n[F-1].Y});ea&&n.pop();if(I.length)n=v;else break}F=v.length;v[F-1].X==v[0].X&&v[F-1].Y==v[0].Y&&v.pop();2<v.length&&aa.push(v)}b[0]instanceof Array||(aa=aa[0]);"undefined"==typeof aa&&(aa=[[]]);return aa};f.JS.PerimeterOfPath=function(b,d,e){if("undefined"==typeof b)return 0;var f=Math.sqrt,k=0,p,v,F,E,H=b.length;if(2>H)return 0;for(d&&(b[H]=b[0],
-H++);--H;)p=b[H],F=p.X,p=p.Y,v=b[H-1],E=v.X,v=v.Y,k+=f((F-E)*(F-E)+(p-v)*(p-v));d&&b.pop();return k/e};f.JS.PerimeterOfPaths=function(b,d,e){e||(e=1);for(var k=0,n=0;n<b.length;n++)k+=f.JS.PerimeterOfPath(b[n],d,e);return k};f.JS.ScaleDownPath=function(b,d){var e,f;d||(d=1);for(e=b.length;e--;)f=b[e],f.X/=d,f.Y/=d};f.JS.ScaleDownPaths=function(b,d){var e,f,k;d||(d=1);for(e=b.length;e--;)for(f=b[e].length;f--;)k=b[e][f],k.X/=d,k.Y/=d};f.JS.ScaleUpPath=function(b,d){var e,f,k=Math.round;d||(d=1);for(e=
-b.length;e--;)f=b[e],f.X=k(f.X*d),f.Y=k(f.Y*d)};f.JS.ScaleUpPaths=function(b,d){var e,f,k,p=Math.round;d||(d=1);for(e=b.length;e--;)for(f=b[e].length;f--;)k=b[e][f],k.X=p(k.X*d),k.Y=p(k.Y*d)};f.ExPolygons=function(){return[]};f.ExPolygon=function(){this.holes=this.outer=null};f.JS.AddOuterPolyNodeToExPolygons=function(b,d){var e=new f.ExPolygon;e.outer=b.Contour();var k=b.Childs(),n=k.length;e.holes=Array(n);var p,v,F,E,H;for(v=0;v<n;v++)for(p=k[v],e.holes[v]=p.Contour(),F=0,E=p.Childs(),H=E.length;F<
-H;F++)p=E[F],f.JS.AddOuterPolyNodeToExPolygons(p,d);d.push(e)};f.JS.ExPolygonsToPaths=function(b){var d,e,k,n,p=new f.Paths;d=0;for(k=b.length;d<k;d++)for(p.push(b[d].outer),e=0,n=b[d].holes.length;e<n;e++)p.push(b[d].holes[e]);return p};f.JS.PolyTreeToExPolygons=function(b){var d=new f.ExPolygons,e,k,n;e=0;k=b.Childs();for(n=k.length;e<n;e++)b=k[e],f.JS.AddOuterPolyNodeToExPolygons(b,d);return d}})();
-var CindyJS=function(){function p(k){if(0===ja)return console.error("Waiting for "+k+" after we finished waiting."),function(){};0>ja&&(ja=0);++ja;return function(){--ja;0>ja&&console.error("Wait count mismatch: "+k);if(0===ja)for(var p=0,E=Ca.length;p<E;)Ca[p++].startup()}}function E(k){var p=E.newInstance(k);0>=ja?p.startup():!1!==k.autostart&&Ca.push(p);return p}var ja=-1,Ca=[];"undefined"===typeof document||"undefined"===typeof window||"undefined"===typeof document.addEventListener||"undefined"!==
-typeof window.cindyDontWait&&!0===window.cindyDontWait||document.addEventListener("DOMContentLoaded",p("DOMContentLoaded"));var pa=null,Da=null,aa={};E.getBaseDir=function(){if(null!==pa)return pa;for(var k=document.getElementsByTagName("script"),p=0;p<k.length;++p){var E=k[p],U=E.src;if(U){var W=/Cindy\.js$/.exec(U);if(W)return pa=U.substr(0,W.index),console.log("Will load extensions from "+pa),Da=E,pa}}console.error("Could not find <script> tag for Cindy.js");return pa=Da=!1};E.addNewScript=function(k,
-p){p||console.error.bind(console);var K=E.getBaseDir();if(!1===K)return!1;var U=document.createElement("script");U.src=K+k;var K=Da.nextSibling,W=Da.parentElement;K?W.insertBefore(U,K):W.appendChild(U);return U};E.loadScript=function(k,p,K,U){if(window[k])return K(),!0;U||(U=console.error.bind(console));var W=aa[k];if(!W){W=E.addNewScript(p,U);if(!1===W)return U("Can't load additional components."),!1;aa[k]=W}W.addEventListener("load",K);W.addEventListener("error",U);return null};E._autoLoadingPlugin=
-{};E.autoLoadPlugin=function(k,p,K){if(E._pluginRegistry[k])return K(),!0;var U=E._autoLoadingPlugin[k];if(!U){p||(p=k+"-plugin.js");U=E._autoLoadingPlugin[k]=[];k=E.addNewScript(p);if(!1===k)return!1;k.addEventListener("error",console.error.bind(console))}U.push(K);return null};var k={ctype:"undefined"};E.waitFor=p;E._pluginRegistry={};E.instances=[];E.registerPlugin=function(k,p,K){if(1!==k)return console.error("Plugin API version "+k+" not supported"),!1;E._pluginRegistry[p]=K;(E._autoLoadingPlugin[p]||
-[]).forEach(function(k){k()})};var Oa=0;E.dumpState=function(k){k=E.instances[k||0].saveState();console.log(JSON.stringify(k))};E.debugState=function(k){E.instances.map(function(k){var p=k.config,p=JSON.parse(JSON.stringify(p)),F=k.saveState();console.log(JSON.stringify(F));for(var E in F)p[E]=F[E];k.shutdown();return p}).forEach(function(k){E(k)})};E.newInstance=function(p){function E(){ka.width=da=ka.clientWidth;ka.height=ca=ka.clientHeight;y.setTransform(1,0,0,1,0,0);z.setMat(25,0,0,25,250.5,250.5);
-if(yb)for(var a=0;a<yb.length;a++){var h=yb[a],c=Object.keys(h)[0];"scale"===c&&(Kb=h.scale,z[c](h.scale));if("translate"===c)z[c](h.translate[0],h.translate[1]);"scaleAndOrigin"===c&&(Kb=h[c][0]/25,z[c].apply(null,h[c]));"visibleRect"===c&&(z[c].apply(null,h[c]),Kb=z.drawingstate.initialmatrix.a/25)}z.createnewbackup();z.greset();a=1;"undefined"!==typeof window&&window.devicePixelRatio&&(a=window.devicePixelRatio);h=y.webkitBackingStorePixelRatio||y.mozBackingStorePixelRatio||y.msBackingStorePixelRatio||
-y.oBackingStorePixelRatio||y.backingStorePixelRatio||1;a!==h&&(a/=h,ka.width=da*a,ka.height=ca*a,y.scale(a,a))}function K(a){var h;if("canvas"!==a.tagName.toLowerCase())for(h=a,ka=document.createElement("canvas");h.firstChild;)h.removeChild(h.firstChild);else{ka=a;h=document.createElement("div");var c=null,r=null;Array.prototype.slice.call(ka.attributes).forEach(function(a){"width"===a.name?c=a.value:"height"===a.name?r=a.value:h.setAttributeNodeNS(ka.removeAttributeNode(a))});null===c||h.style.width||
-(h.style.width=c+"px");null===r||h.style.height||(h.style.height=r+"px");ka.parentNode.replaceChild(h,ka)}h.classList.add("CindyJS-widget");a=ka.style;a.position="absolute";a.border="none";a.margin=a.padding=a.left=a.top="0px";a.width=a.height="100%";a="static";window.getComputedStyle&&(a=window.getComputedStyle(h).getPropertyValue("position"),a=String(a||"static"));"static"===a&&(h.style.position="relative");h.appendChild(ka);return ka}function U(){var a=p.cinderella;if(!a||!a.version)return!1;for(var h=
-0;h<arguments.length;++h){var c=a.version[h],r=arguments[h];if(c!==r)return typeof c===typeof r&&c<r}return!1}function W(){ac=!0;if(0===Lb){if(p.exclusive)for(b=wa.instances.length;0<b;)wa.instances[--b].shutdown();void 0!==p.csconsole&&(ia=p.csconsole);ia=null===ia?new qa:!0===ia?new xb:"string"===typeof ia?new cb(ia):"object"===typeof ia&&"function"===typeof ia.appendChild?new cb(ia):new qa;ta=[100,100];var a=null;yb=p.transform;if(p.ports&&0<p.ports.length){b=p.ports[0];(a=b.element)||(a=document.getElementById(b.id));
-var a=K(a),h=a.parentNode.style;"window"===b.fill?(h.width="100vw",h.height="100vh"):"parent"===b.fill?(h.width="100%",h.height="100%"):b.width&&b.height&&(h.width=b.width+"px",h.height=b.height+"px");b.background&&(a.style.backgroundColor=b.background);void 0!==b.transform&&(yb=b.transform);Fa(b.grid)&&0<b.grid&&(Wa=b.grid);Fa(b.tgrid)&&0<b.tgrid&&(bc=b.tgrid);b.snap&&(cc=!0);b.axes&&(zb=!0)}a||(a=p.canvas,a||"undefined"===typeof document||(a=document.getElementById(p.canvasname))&&(a=K(a)));a&&
-(ka=a,y=a.getContext("2d"),E(),y.setLineDash||(y.setLineDash=function(){}),(p.animation?p.animation.controls:p.animcontrols)&&ja(p),p.animation&&Fa(p.animation.speed)&&(void 0===p.animation.accuracy&&U(2,9,1875)?sa(.5*p.animation.speed):sa(p.animation.speed)),p.animation&&Fa(p.animation.accuracy)&&(Mb=p.animation.accuracy));p.statusbar&&(dc="string"===typeof p.statusbar?document.getElementById(p.statusbar):p.statusbar);var c=p.scripts,r=null;"string"===typeof c&&c.search(/\*/)&&(r=c);"object"!==typeof c&&
-(c=null);"move keydown keyup keytyped keytype mousedown mouseup mousedrag mousemove mouseclick init tick draw simulationstep simulationstart simulationstop ondrop".split(" ").forEach(function(a){var h;if(null!==c&&c[a])h=c[a];else{h=a+"script";if(p[h])h=document.getElementById(p[h]);else if(r){if(h=document.getElementById(r.replace(/\*/,a)),!h)return}else return;h=h.text}h=Ra(h,!1);"error"===h.ctype?console.error("Error compiling "+a+" script: "+h.message):S[a]=h});U(2,9,1888)&&!S.keydown&&(S.keydown=
-S.keytyped,S.keytyped=S.keytype,S.keytype=void 0);Fa(p.grid)&&0<p.grid&&(Wa=p.grid);p.snap&&(cc=!0);u={};var b=0;Xa={};p.geometry||(p.geometry=[]);Md(p.geometry);p.behavior||(p.behavior=[]);"function"===typeof ec&&ec(p.behavior);for(var d in p.images)b=aa(p.images[d],!1),b!==k&&(Xa[d]=b);for(var g in p.videos)d=aa(p.videos[g],!0),d!==k&&(Xa[g]=d);oa.canvas=a;if(p.oninit)p.oninit(oa);wa.instances.push(oa);p.use&&p.use.forEach(function(a){t.use$1([w.wrap(a)],{})});Nc.convexhull3d$1&&pa("QuickHull3D",
-"QuickHull3D.js");V()}}function aa(a,h){var c;"string"===typeof a?(h?(c=document.createElement("video"),c.preload="auto",c.loop=!0,c.setAttribute("playsinline",""),enableInlineVideo(c)):c=new Image,c.src=a):c=a;if(!c.tagName)return console.error("Not a valid image element",c),k;var r={img:c,width:NaN,height:NaN,ready:!0,live:!1,generation:0,whenReady:f},b=c.tagName.toLowerCase(),d=[];if("img"===b)c.complete?(r.width=c.width,r.height=c.height):(r.ready=!1,c.addEventListener("load",function(){r.width=
-c.width;r.height=c.height;r.ready=!0;r.whenReady=f;d.forEach(f);e()}),r.whenReady=d.push.bind(d));else if("video"===b)r.live=!0,c.readyState>=c.HAVE_METADATA?(r.width=c.videoWidth,r.height=c.videoHeight):(r.ready=!1,c.addEventListener("loadedmetadata",function(){r.width=c.videoWidth;r.height=c.videoHeight;r.ready=!0;r.whenReady=f;d.forEach(f);e()}),r.whenReady=d.push.bind(d));else if("canvas"===b)r.width=c.width,r.height=c.height;else return console.error("Not a valid image element",b,c),k;return{ctype:"image",
-value:r}}function ja(a){function h(a,c){var h=document.createElement("button"),r=document.createElement("img");h.appendChild(r);l.appendChild(h);Ab(r,a);h.addEventListener("click",c);Sa[a]=function(a){a?h.classList.add("CindyJS-active"):h.classList.remove("CindyJS-active")}}function c(a){if(k){var c=e.getBoundingClientRect();sa(g*(a.clientX-c.left-e.clientLeft+.5)/c.width+b)}}var r=document.createElement("div");r.className="CindyJS-animcontrols";ka.parentNode.appendChild(r);var b=0,d=1,g=1;a.animation&&
-a.animation.speedRange&&Fa(a.animation.speedRange[0])&&Fa(a.animation.speedRange[1])&&(b=a.animation.speedRange[0],d=a.animation.speedRange[1],g=d-b);var e=document.createElement("div");e.className="CindyJS-animspeed";r.appendChild(e);var f=document.createElement("div");e.appendChild(f);H(e,"mousedown",function(a){k=!0;c(a)});H(e,"mousemove",c);H(ka.parentNode,"mouseup",function(a){k=!1},!0);var l=document.createElement("div");l.className="CindyJS-animbuttons";r.appendChild(l);h("play",I);h("pause",
-Ca);h("stop",Da);Sa.stop(!0);gc=function(a){a=(a-b)/g;a=Math.max(0,Math.min(1,a));a=.1*Math.round(1E3*a);f.style.width=a+"%"};var k=!1}function sa(a){Oc=a;gc&&gc(a)}function f(a){return a()}function pa(a,h){var c=null;p.plugins&&(c=p.plugins[a]);c||(c=wa._pluginRegistry[a]);c?t.use$1([w.wrap(a)],{}):(++Pc,wa.autoLoadPlugin(a,h,function(){t.use$1([w.wrap(a)],{});V()}))}function V(){0===--Pc&&(A(S.init),(p.animation||p).autoplay&&I(),oa.canvas&&Zb(oa.canvas,p))}function Y(){null!==Bb&&(ma.set(Bb.state),
-Object.keys(Bb.speeds).forEach(function(a){var h=u.csnames[a];"undefined"!==typeof h.behavior&&(a=Bb.speeds[a],h.behavior.vx=a[0],h.behavior.vy=a[1],h.behavior.vz=a[2],h.behavior.fx=0,h.behavior.fy=0,h.behavior.fz=0)}),Nd())}function I(){if(!Ya){if(Ob){var a=db.backup;a.set(ma);for(var h={},c=0;c<u.points.length;c++){var r=u.points[c];"undefined"!==typeof r.behavior&&(h[r.name]=[r.behavior.vx,r.behavior.vy,r.behavior.vz])}Bb={state:a,speeds:h};Cb=0;Ob=!1;Sa.stop(!1)}else Sa.pause(!1);hc=Date.now();
-Sa.play(!0);"function"===typeof ec&&ic&&Od();Ya=!0;A(S.simulationstart);e()}}function Ca(){Ya&&(Sa.play(!1),Sa.pause(!0),Ya=!1)}function Da(){Ob||(Ya?(A(S.simulationstop),Ya=!1,Sa.play(!1)):Sa.pause(!1),Sa.stop(!0),Ob=!0,Y())}function Qa(){if(!jc){jc=!0;for(var a=wa.instances.length;0<a;)if(wa.instances[--a]===oa){wa.instances.splice(a,1);break}for(a=jb.length;0<a;)try{jb[--a]()}catch(h){console.error(h)}}}function ab(a){this["in"]=function(a,c){console.log(a);c?this.append(this.createTextNode("span",
-"blue",a)):this.append(this.createTextNode("p","blue",a))};this.out=function(a,c){console.log(a);c?this.append(this.createTextNode("span","red",a)):this.append(this.createTextNode("p","red",a))};this.err=function(a,c){console.log(a);c?this.append(this.createTextNode("span","red",a)):this.append(this.createTextNode("p","red",a))};this.createTextNode=function(a,c,r){return"undefined"!==typeof document?(a=document.createElement(a),a.appendChild(document.createTextNode(r)),a.style.color=c,a):r+"\n"}}
-function xb(){var a=this,h,c=document.createElement("div"),r;c.innerHTML='<div id="console" style="border-top: 1px solid #333333; bottom: 0px; position: absolute; width: 100%;"><div id="log" style="height: 150px; overflow-y: auto;"></div><input id="cmd" type="text" style="box-sizing: border-box; height: 30px; width: 100%;"></div>';document.body.appendChild(c);h=document.getElementById("cmd");r=document.getElementById("log");h.onkeydown=function(c){13===c.keyCode&&""!==h.value&&(a["in"](h.value),c=
-t.parse$1([w.wrap(h.value)],[]),c=A(c),console.log(ba(c)),"undefined"!==c.ctype&&ia.out(ba(c)),h.value="",r.scrollTop=r.scrollHeight)};this.append=function(a){r.appendChild(a)};this.clear=function(){r.innerHTML=""}}function cb(a){var h=a;"string"===typeof a&&(h=document.getElementById(a));this.append=function(a){h.appendChild(a)};this.clear=function(){h.innerHTML=""}}function qa(){this.append=function(a){};this.clear=function(){}}function H(a,h,c,r){void 0===r&&(r=!1);jb.push(function(){a.removeEventListener(h,
-c,r)});a.addEventListener(h,c,r)}function Zb(a,h){function c(c){var h=a.getBoundingClientRect();c=z.to(c.clientX-h.left-a.clientLeft+.5,c.clientY-h.top-a.clientTop+.5);X.prevx=X.x;X.prevy=X.y;X.x=c[0];X.y=c[1];ta[0]=X.x;ta[1]=X.y;e()}function r(a){for(var c=a.changedTouches,h=!1,r=0;r<c.length;r++)c[r].identifier===Q&&(h=!0);h&&(Q=-1,X.down=!1,fa=void 0,A(S.mouseup),qb("mouseup"),e(),a.preventDefault())}var b=null;"undefined"!==typeof MutationObserver&&(b=MutationObserver);b||"undefined"===typeof WebKitMutationObserver||
-(b=WebKitMutationObserver);b?(b=new b(function(c){document.body.contains(a)||Qa()}),b.observe(document.documentElement,{childList:!0,subtree:!0}),jb.push(function(){b.disconnect()})):(H(a,"DOMNodeRemovedFromDocument",Qa),H(a,"DOMNodeRemoved",Qa));if(!0===h.keylistener)H(document,"keydown",function(a){N(a,S.keydown);return!1}),H(document,"keyup",function(a){N(a,S.keyup);return!1}),H(document,"keypress",function(a){N(a,S.keytyped);return!1});else if(S.keydown||S.keyup||S.keytyped)a.setAttribute("tabindex",
-"0"),H(a,"mousedown",function(){a.focus()}),H(a,"keydown",function(a){9!==a.keyCode&&(N(a,S.keydown),S.keytyped||a.preventDefault())}),H(a,"keyup",function(a){N(a,S.keyup);a.preventDefault()}),H(a,"keypress",function(a){9!==a.keyCode&&(N(a,S.keytyped),a.preventDefault())});H(a,"mousedown",function(a){X.button=a.which;c(a);A(S.mousedown);qb("mousedown");X.down=!0;a.preventDefault()});H(a,"mouseup",function(a){X.down=!1;fa=void 0;A(S.mouseup);qb("mouseup");e();a.preventDefault()});H(a,"mousemove",function(a){c(a);
-X.down?A(S.mousedrag):A(S.mousemove);qb("mousemove");a.preventDefault()});H(a,"click",function(a){c(a);A(S.mouseclick);a.preventDefault()});H(a,"dragenter",function(a){a.preventDefault()});H(a,"dragover",function(a){a.preventDefault()});H(a,"drop",function(c){function h(a,c){function g(){e.readyState===XMLHttpRequest.DONE&&(200!==e.status?(console.error("GET request for "+a+" failed: "+(e.responseText||"(no error message)")),d(c,k)):b(c,e.responseText))}var Q=a.replace(/[?#][^]*/,""),Q=Q.replace(/[^]*\/([^\/])/,
-"$1");f[c]={type:"",name:Q};var e=new XMLHttpRequest;e.onreadystatechange=function(){if(e.readyState===XMLHttpRequest.DONE)if(200!==e.status)console.error("HEAD request for "+a+" failed: "+(e.responseText||"(no error message)")),d(c,k);else{var h=e.getResponseHeader("Content-Type");f[c].type=h;/^image\//.test(h)?na(c,a):r(h)?(e=new XMLHttpRequest,e.onreadystatechange=g,e.open("GET",a),e.send()):d(c,k)}};e.open("HEAD",a);e.send()}function r(a){a=a.replace(/;[^]*/,"");return/^text\//.test(a)?1:"application/json"===
-a?2:0}function b(a,c){switch(r(f[a].type)){case 1:d(a,w.string(c));break;case 2:var h,na;try{h=JSON.parse(c),na=w.wrapJSON(h)}catch(g){console.error(g),na=k}d(a,na);break;default:d(a,k)}}function na(a,c){var h=new Image,r=!1;h.onload=function(){r||(r=!0,d(a,aa(h,!1)))};h.onerror=function(c){r||(r=!0,console.error(c),d(a,k))};h.src=c}function d(a,c,h){l[a]=g.turnIntoCSList([c,w.string(h||c.ctype),w.string(f[a].type),w.string(f[a].name)]);0===--m&&(a=p,kc=g.turnIntoCSList(l),lc=a,A(S.ondrop),lc=kc=
-k,e())}c.preventDefault();var Q=c.dataTransfer,f=Q.files,l=Array(f.length),m=f.length,n=c.currentTarget.getBoundingClientRect(),p=g.realVector(z.to(c.clientX-n.left-a.clientLeft+.5,c.clientY-n.top-a.clientTop+.5));if(0<f.length)Array.prototype.forEach.call(f,function(a,c){var h=new FileReader;r(a.type)?(h.onload=function(){b(c,h.result)},h.readAsText(a)):/^image\//.test(a.type)?(h.onload=function(){na(c,h.result)},h.readAsDataURL(a)):(console.log("Unknown MIME type: "+a.type),d(c,k))});else if(c=
-Q.getData("text/uri-list"))c=c.split("\n").filter(function(a){return!/^\s*(#|$)/.test(a)}),m=c.length,l=Array(m),f=Array(m),c.forEach(h)});var Q=-1;H(a,"touchstart",function(a){if(-1===Q){var h=a.changedTouches;0!==h.length&&(Q=h[0].identifier,c(a.targetTouches[0]),A(S.mousedown),X.down=!0,qb("mousedown"),a.preventDefault())}},!1);H(a,"touchmove",function(a){for(var h=a.changedTouches,r=!1,b=0;b<h.length;b++)h[b].identifier===Q&&(r=!0);r&&(c(a.targetTouches[0]),X.down?A(S.mousedrag):A(S.mousemove),
-qb("mousemove"),a.preventDefault())},!0);H(a,"touchend",r,!1);"undefined"!==typeof document&&document.body&&H(document.body,"touchcancel",r,!1);"undefined"!==typeof window&&H(window,"resize",function(){Pb(function(){E();e()})},!1);d(a.parentNode);e()}function b(a,h){var c=document.createElement("div");c.setAttribute("style",h);a.appendChild(c);return c}function d(a){function h(){r.scrollLeft=r.scrollTop=na.scrollLeft=na.scrollTop=1E5}function c(){if(d!==a.clientWidth||g!==a.clientHeight)d=a.clientWidth,
-g=a.clientHeight,f||(f=!0,Pb(function(){f=!1;E();e()}));h()}if("undefined"!==typeof document){var r=b(a,"position: absolute; transition: 0s; left: 0; top: 0; right: 0; bottom: 0; overflow: hidden; z-index: -1; visibility: hidden;");b(r,"position: absolute; transition: 0s; left: 0; top: 0; width: 100000px; height: 100000px");var na=b(a,"position: absolute; transition: 0s; left: 0; top: 0; right: 0; bottom: 0; overflow: hidden; z-index: -1; visibility: hidden;");b(na,"position: absolute; transition: 0s; left: 0; top: 0; width: 200%; height: 200%");
-h();var d=a.clientWidth,g=a.clientHeight,f=!1;r.addEventListener("scroll",c);na.addEventListener("scroll",c)}}function e(){mc||(mc=Pb(q))}function q(){mc=null;if(!jc){if(Ya){var a=Date.now(),h=Math.min(50,a-hc)*Oc*Pd;hc=a;a=Cb+h;ic&&"undefined"!==typeof ra&&ra.tick(h);Cb=a;Ya&&A(S.tick)}n();Ya&&e()}}function n(){z.reset();y.save();y.clearRect(0,0,da,ca);var a=z.drawingstate.matrix,h,c,r,b,d;if(0!==Wa){y.beginPath();y.strokeStyle="rgba(0,0,0,0.1)";y.lineWidth=1;y.lineCap="butt";h=Wa*a.a;for(b=Math.ceil(-a.tx/
-h);(d=b*h+a.tx)<da;){if(b||!zb)y.moveTo(d,0),y.lineTo(d,ca);b++}for(b=Math.floor(a.ty/h);(d=b*h-a.ty)<ca;){if(b||!zb)y.moveTo(0,d),y.lineTo(da,d);b++}y.stroke()}if(0!==bc){y.beginPath();y.strokeStyle="rgba(0,0,0,0.1)";y.lineWidth=1;y.lineCap="butt";h=bc*a.a;var e=Math.sqrt(3);c=a.ty/e;r=(ca+a.ty)/e;for(b=Math.ceil(-(a.tx+r)/h);(d=b*h+a.tx)+c<da;)y.moveTo(d+c,0),y.lineTo(d+r,ca),b++;for(b=Math.ceil(-(a.tx-c)/h);(d=b*h+a.tx)-r<da;)y.moveTo(d-c,0),y.lineTo(d-r,ca),b++;h*=.5*e;for(b=Math.floor(a.ty/h);(d=
-b*h-a.ty)<ca;){if(b||!zb)y.moveTo(0,d),y.lineTo(da,d);b++}y.stroke()}zb&&(y.beginPath(),y.strokeStyle="rgba(0,0,0,0.2)",y.lineWidth=3,y.lineCap="butt",y.lineJoin="miter",y.miterLimit=10,y.beginPath(),y.moveTo(0,-a.ty),y.lineTo(da-6,-a.ty),y.moveTo(da-13,-5-a.ty),y.lineTo(da-3,-a.ty),y.lineTo(da-13,5-a.ty),y.moveTo(a.tx,ca),y.lineTo(a.tx,6),y.moveTo(a.tx-5,13),y.lineTo(a.tx,3),y.lineTo(a.tx+5,13),y.stroke());Qd();z.greset();Rd();for(a=0;a<u.polygons.length;a++)h=u.polygons[a],h.isshowing&&!1!==h.visible&&
-(c={color:h.color,alpha:h.alpha,fillcolor:h.fillcolor,fillalpha:h.fillalpha,size:h.size,lineJoin:w.string("miter"),fillrule:w.string(h.fillrule)},D.drawpolygon([h.vertices],c,"D",!0));for(a=0;a<u.conics.length;a++)u.conics[a].isArc?(h=u.conics[a],h.isshowing&&!1!==h.visible&&(c={},c.color=h.color,c.alpha=h.alpha,c.size=h.size,D.drawarc(h,c,h.filled?"F":"D"))):(h=u.conics[a],h.isshowing&&!1!==h.visible&&(c={},c.color=h.color,c.alpha=h.alpha,c.size=h.size,D.drawconic(h.matrix,c)));for(a=0;a<u.lines.length;a++)a:if(h=
-u.lines[a],h.isshowing&&!1!==h.visible&&g._helper.isAlmostReal(h.homog))if("S"===h.kind)c={overhang:h.overhang,dashtype:h.dashtype,size:h.size,color:h.color,alpha:h.alpha,arrow:h.arrow,arrowsize:h.arrowsize,arrowposition:h.arrowposition,arrowshape:h.arrowshape,arrowsides:h.arrowsides},0<=l.mult(h.startpos.value[2],l.conjugate(h.endpos.value[2])).value.real?t.draw$2([h.startpos,h.endpos],c):(x.handleModifs(c,x.lineModifs),x.drawRaySegment(h.startpos,h.endpos));else if("end"===h.clip.value&&"Join"===
-h.type)b=u.csnames[h.args[0]],c=u.csnames[h.args[1]],t.draw$2([b.homog,c.homog],{overhang:h.overhang,dashtype:h.dashtype,size:h.size,color:h.color,alpha:h.alpha});else{if("inci"===h.clip.value){b=[1E6,0];c=[-1E6,0];d=[1E6,0];r=[-1E6,0];for(e=0;e<h.incidences.length;e++){var f=u.csnames[h.incidences[e]].homog,k=f.value[0],m=f.value[1],n=f.value[2];l._helper.isAlmostZero(n)||(k=l.div(k,n),m=l.div(m,n),l._helper.isAlmostReal(k)&&l._helper.isAlmostReal(m)&&(k.value.real<b[0]&&(b=[k.value.real,f]),k.value.real>
-c[0]&&(c=[k.value.real,f]),m.value.real<d[0]&&(d=[m.value.real,f]),m.value.real>r[0]&&(r=[m.value.real,f])))}c[0]-b[0]>r[0]-d[0]?(b=b[1],c=c[1]):(b=d[1],c=r[1]);if(b!==c){t.draw$2([b,c],{dashtype:h.dashtype,size:h.size,color:h.color,alpha:h.alpha,overhang:h.overhang});break a}}t.draw$1([h.homog],{dashtype:h.dashtype,size:h.size,color:h.color,alpha:h.alpha})}for(a=0;a<u.points.length;a++)h=u.points[a],h.isshowing&&!1!==h.visible&&g._helper.isAlmostReal(h.homog)&&(c=h.color,h.behavior&&(c=h.color),
-t.draw$1([h.homog],{size:h.size,color:c,alpha:h.alpha}),h.labeled&&!h.tmp&&(c=h.printname||h.name||"P",r=h.labelpos||{x:3,y:3},b=h.textsize||la.textsize,d=!0===h.textbold,e=!0===h.textitalics,f=h.text_fontfamily||la.fontFamily,k=r.x*r.x+r.y*r.y,m=1,0<k&&(m=1+h.size.value.real/Math.sqrt(k)),D.drawtext([h.homog,w.wrap(c)],{x_offset:w.wrap(m*r.x),y_offset:w.wrap(m*r.y),size:w.wrap(b),bold:w.wrap(d),italics:w.wrap(e),family:w.wrap(f)})));for(a=0;a<u.texts.length;a++)Sd(u.texts[a]);y.restore()}function N(a,
-h){var c=window.event?event:a,c=c.charCode?c.charCode:c.keyCode;Qc=String.fromCharCode(c);Rc=c;A(h);e()}function v(a){var h=a.value;a=h[0].value;var c=h[1].value,h=h[2].value;return g.turnIntoCSList([a[0],l.add(a[1],c[0]),l.add(a[2],h[0]),c[1],l.add(c[2],h[1]),h[2]])}function C(a){var h=!0;return function(c,r){h&&(console.error("Operator "+a+" is not supported yet."),h=!1);return k}}function ba(a){if("undefined"===typeof a)return"_??_";if(null===a)return"_???_";if("undefined"===a.ctype)return"___";
-if("number"===a.ctype)return l.niceprint(a);if("string"===a.ctype||"boolean"===a.ctype)return a.value;if("list"===a.ctype){for(var h="[",c=0;c<a.value.length;c++)h+=ba(A(a.value[c])),c!==a.value.length-1&&(h+=", ");return h+"]"}return"dict"===a.ctype?Ka.niceprint(a):"function"===a.ctype?"FUNCTION":"infix"===a.ctype?"INFIX":"modifier"===a.ctype?a.key+"->"+ba(a.value):"shape"===a.ctype?a.type:"error"===a.ctype?"Error: "+a.message:"variable"===a.ctype?ba(J.getvar(a.name)):"geo"===a.ctype?a.value.name:
-"image"===a.ctype?"IMAGE":"_?_"}function bb(a,h){var c="undefined"===a[0].ctype,r="undefined"===a[1].ctype,b=A(a[1]);if(c||r)return k;"variable"===a[0].ctype?J.setvar(a[0].name,b):"infix"===a[0].ctype?"_"===a[0].oper?D.assigntake(a[0],b):console.error("Can't use infix expression as lvalue"):"field"===a[0].ctype?D.assigndot(a[0],b):"function"===a[0].ctype&&"genList"===a[0].oper?"list"===b.ctype?D.assignlist(a[0].args,b.value):console.error("Expected list in rhs of assignment"):console.error("Left hand side of assignment is not a recognized lvalue");
-return b}function pb(a,h){var c=A(a[0]),r=A(a[1]);if(c.ctype===r.ctype){if("number"===c.ctype)return w.bool(c.value.real===r.value.real&&c.value.imag===r.value.imag);if("string"===c.ctype||"boolean"===c.ctype)return w.bool(c.value===r.value);if("list"===c.ctype)return g.equals(c,r);if("geo"===c.ctype)return w.bool(c.value===r.value)}return{ctype:"boolean",value:!1}}function Gc(a,h){return w.not(pb(a,h))}function Yb(a,h){var c=B(a[0]),r=B(a[1]);return"number"===c.ctype&&"number"===r.ctype?{ctype:"boolean",
-value:l._helper.isAlmostEqual(c,r)}:"string"===c.ctype&&"string"===r.ctype||"boolean"===c.ctype&&"boolean"===r.ctype?{ctype:"boolean",value:c.value===r.value}:"list"===c.ctype&&"list"===r.ctype?g.almostequals(c,r):{ctype:"boolean",value:!1}}function Hc(a,h){var c=B(a[0]),r=B(a[1]);return"boolean"===c.ctype&&"boolean"===r.ctype?{ctype:"boolean",value:c.value&&r.value}:k}function Ic(a,h){var c=B(a[0]),r=B(a[1]);return"boolean"===c.ctype&&"boolean"===r.ctype?{ctype:"boolean",value:c.value||r.value}:
-k}function Jc(a,h){var c=a[0];"void"!==c.ctype&&(c=B(c));var r=B(a[1]),b=w.add(c,r);"Angle"===c.usage&&"Angle"===r.usage&&(b=w.withUsage(b,"Angle"));return b}function $b(a,h){var c=a[0];"void"!==c.ctype&&(c=B(c));var r=B(a[1]),b=w.sub(c,r);"Angle"===c.usage&&"Angle"===r.usage&&(b=w.withUsage(b,"Angle"));return b}function Kc(a,h){var c=B(a[0]),r=B(a[1]),b=w.mult(c,r);"Angle"!==c.usage||r.usage?"Angle"!==r.usage||c.usage||(b=w.withUsage(b,"Angle")):b=w.withUsage(b,"Angle");return b}function Lc(a,h){var c=
-B(a[0]),r=B(a[1]);"number"===r.ctype&&l._helper.isZero(r)&&ia.err("WARNING: Division by zero!");var b=w.div(c,r);"Angle"!==c.usage||r.usage?"Angle"!==r.usage||c.usage||(b=w.withUsage(b,"Angle")):b=w.withUsage(b,"Angle");return b}function Mc(a,h){var c=B(a[0]),r=B(a[1]);return"number"===c.ctype&&"number"===r.ctype?l.pow(c,r):k}function Sc(a,h){var c=M(a[0]),r=M(a[1]);if(c!==k&&r!==k){var b=g.cross(c,r);"Point"===c.usage&&"Point"===r.usage&&(b=w.withUsage(b,"Line"));"Line"===c.usage&&"Line"===r.usage&&
-(b=w.withUsage(b,"Point"));return b}return k}function nc(a){var h=a.length;if(0===h)return[];if(1===h)return[0];if(2===h)return a[0][0]+a[1][1]<=a[0][1]+a[1][0]?[0,1]:[1,0];if(4<h)return Td(a);for(var c=Ud[h],r=Number.POSITIVE_INFINITY,b=c[0],d=0;d<c.length;++d){for(var g=c[d],e=0,f=0;f<h;++f)e+=a[f][g[f]];e<r&&(r=e,b=g)}return b}function Td(a){function h(){return{matched:-1,prev:-1,start:-1,cost:0,used:!1,leaf:!1}}function c(a){for(var h=0;h<d;++h)0<k[a][h]||l[h].used||(l[h].used=!0,c(l[h].matched))}
-function r(a){for(var c=0;c<d;++c)0<k[c][a]||f[c].used||(f[c].used=!0,r(f[c].matched))}var b=Math.abs,d=a.length,g,e,f=Array(d),l=Array(d),k=Array(d);for(g=0;g<d;++g)k[g]=Array(d);for(g=0;g<d;++g)for(f[g]=h(),l[g]=h(),f[g].cost=a[g][0],e=1;e<d;++e)f[g].cost>a[g][e]&&(f[g].cost=a[g][e]);for(;;){for(g=0;g<d;++g)for(e=0;e<d;++e)k[g][e]=a[g][e]-f[g].cost-l[e].cost,k[g][e]<1E-14*(b(a[g][e])+b(f[g].cost)+b(l[e].cost))&&(k[g][e]=0);for(g=0;g<d;++g)f[g].matched=l[g].matched=-1;for(var m=0;;){for(g=0;g<d;++g)f[g].used=
-f[g].leaf=l[g].used=l[g].leaf=!1,-1===f[g].matched&&(f[g].start=g,f[g].used=f[g].leaf=!0,f[g].prev=-1);for(var n=!1,p=!1;!p;){for(g=0;g<d;++g)if(f[g].leaf)for(f[g].leaf=!1,e=0;e<d;++e)if(!(l[e].used||0<k[g][e])&&f[g].matched!==e&&(l[e].prev=g,l[e].start=f[g].start,l[e].used=l[e].leaf=!0,-1===l[e].matched)){f[l[e].start].prev=e;n=!0;break}if(n)break;p=!0;for(e=0;e<d;++e)l[e].leaf&&(l[e].leaf=!1,g=l[e].matched,f[g].used||(f[g].prev=e,f[g].start=l[e].start,f[g].used=f[g].leaf=!0,p=!1))}if(!n)break;for(n=
-0;n<d;++n)if(-1===f[n].matched&&-1!==f[n].prev){e=f[n].prev;do g=l[e].prev,l[e].matched=g,f[g].matched=e,e=f[g].prev;while(g!==n);++m}}if(m===d)break;for(g=0;g<d;++g)f[g].used=f[g].leaf=l[g].used=l[g].leaf=!1;for(g=0;g<d;++g)-1===f[g].matched&&c(g);for(e=0;e<d;++e)-1===l[e].matched&&r(e);for(g=0;g<d;++g)-1===f[g].matched||f[g].used||l[f[g].matched].used||(f[g].used=!0);m=Number.POSITIVE_INFINITY;for(g=0;g<d;++g)if(!f[g].used)for(e=0;e<d;++e)l[e].used||m>k[g][e]&&(m=k[g][e]);for(g=0;g<d;++g)f[g].used||
-(f[g].cost+=m),l[g].used&&(l[g].cost-=m)}a=Array(d);for(g=0;g<d;++g)e=f[g].matched,a[g]=e;return a}function oc(a,h){var c=A(a[0]),r=B(a[1]);"string"!==c.ctype&&(c=g.asList(c));if("number"===r.ctype){r=Math.floor(r.value.real);0>r&&(r=c.value.length+r+1);if(0<r&&r<c.value.length+1)return"list"===c.ctype?c.value[r-1]:{ctype:"string",value:c.value.charAt(r-1)};ia.err("WARNING: Index out of range!");return k}if("list"===r.ctype){for(var b=[],d=0;d<r.value.length;d++){var e=B(r.value[d]);b[d]=oc([c,e],
-[])}return g.turnIntoCSList(b)}return k}function Tc(a,h){var c=A(a[0]),r=A(a[1]);if("shape"===c.ctype&&"shape"===r.ctype)return D.shapeconcat(c,r);c=g.asList(c);r=g.asList(r);return"list"===c.ctype&&"list"===r.ctype?g.concat(c,r):k}function Uc(a,h){var c=A(a[0]),r=A(a[1]);return"list"===c.ctype&&"list"===r.ctype?g.set(g.common(c,r)):"shape"===c.ctype&&"shape"===r.ctype?D.shapecommon(c,r):k}function Vc(a,h){var c=A(a[0]),r=A(a[1]);return"list"===c.ctype&&"list"===r.ctype?g.remove(c,r):"shape"===c.ctype&&
-"shape"===r.ctype?D.shaperemove(c,r):k}function Wc(a,h){var c=A(a[0]),r=A(a[1]);return"list"===c.ctype?g.append(c,r):k}function Xc(a,h){var c=A(a[0]),r=A(a[1]);return"list"===r.ctype?g.prepend(c,r):k}function pc(a,h){a|=0;h|=0;if(0===a&&0===h)return 0;for(;0!==h;){var c=a;a=h;h=c%h|0}return a}function Vd(a){return 1===a?0:1}function Yc(a,h,c,r,b,d,g){if(-1!==h.indexOf("\n")){var e=Infinity,f=-Infinity,l=Infinity,k=-Infinity;h.split("\n").forEach(function(h){h=Yc(a,h,c,r,b,d);e>h.left&&(e=h.left);
-f<h.right&&(f=h.right);l>h.top&&(l=h.top);k<h.bottom&&(k=h.bottom);r+=g});return{left:e,right:f,top:l,bottom:k}}var m=a.measureText(h);a.fillText(h,c-m.width*b,r);return{left:c-m.width*b,right:c+m.width*(1-b),top:r-.84*d,bottom:r+.36*d}}function La(a){return"image"===a.ctype?a.value:"string"===a.ctype&&Xa.hasOwnProperty(a.value)?Xa[a.value].value:null}function rb(a,h,c,r,b){var d=[];if(a.readPixels)d=a.readPixels(h,c,r,b);else{var g,e;if(a.img.getContext)e=a.img.getContext("2d"),g=e.getImageData(h,
-c,r,b).data;else try{Db||(Db=document.createElement("canvas")),Db.width=r,Db.height=b,e=Db.getContext("2d"),e.drawImage(a.img,h,c,r,b,0,0,r,b),g=e.getImageData(0,0,r,b).data}catch(f){console.log(f)}for(var l in g)d.push(g[l]/255)}return d}function Zc(a){return a.replace(/[^A-Za-z0-9 \u0080-\uffff]/ig,"\\$&")}function ha(a,h,c){var r=a;h&&(r=r+" at "+h.row+":"+h.col);c&&(r=r+": \u2018"+c+"\u2019");r=Error(r);r.name="CindyScriptParseError";r.description=a;r.location=h;r.text=c;return r}function kb(a){this.input=
-a;this.re=new RegExp($c,"g");for(var h=[],c=a.indexOf("\n")+1;c;)h.push(c),c=a.indexOf("\n",c)+1;h.push(a.length);this.bols=h;this.bol=this.pos=0;this.line=1}function Qb(a){var h=a[a.length-2],c=a[a.length-3],r=a[a.length-1];if(c){if(c.isSuperscript&&h.precedence<=c.precedence)throw ha("Operator not allowed after superscript",h.start,h.text);if(r){if(!h.op.infix)throw ha("Operator may not be used infix",h.start,h.text);}else if(!h.op.postfix)throw ha("Operator may not be used postfix",h.start,h.text);
-}else if(r){if(!h.op.prefix)throw ha("Operator may not be used prefix",h.start,h.text);}else if(!h.op.bare)throw ha("Operator without operands",h.start,h.text);h.ctype="infix";h.oper=h.op.sym;h.args=[c,r];a.splice(a.length-3,3,h)}function ad(a,h,c,r){a.length&1||a.push(null);for(c=xa[c];3<=a.length&&a[a.length-2].precedence<=c.precedence;)Qb(a);a.push({op:c,precedence:c.precedence+(c.rassoc?1:0),start:h.start,end:h.end,text:h.text,rawtext:h.rawtext});c="";for(var b=h.text,d=0;d<b.length;++d)c+="0123456789+-".charAt(r.indexOf(b.charAt(d)));
-h.ctype="number";h.value={real:+c,imag:0};a.push(h);Qb(a)}function bd(a,h){var c=[],r;a:for(;;)switch(r=a.next(),r.toktype){case "OP":var b=xa[r.text];"_"!==b.sym||!c.length||c.length&1||"OP"!==c[c.length-1].toktype||":="!==c[c.length-1].op.sym||(c.pop(),b=xa[":=_"],r.text=b.sym);r.op=b;r.precedence=b.precedence;for(c.length&1||c.push(null);3<=c.length&&c[c.length-2].precedence<=r.precedence;)Qb(c);b.rassoc&&r.precedence++;c.push(r);break;case "ID":r.ctype="variable";r.name=r.text;if(c.length&1)throw ha("Missing operator",
-r.start,r.text);c.push(r);break;case "NUM":r.ctype="number";r.value={real:+r.text,imag:0};if(c.length&1)throw ha("Missing operator",r.start,r.text);c.push(r);break;case "STR":r.ctype="string";r.value=r.raw.substring(1,r.raw.length-1);if(c.length&1)throw ha("Missing operator",r.start,r.text);c.push(r);break;case "SUB":ad(c,r,"_","\u2080\u2081\u2082\u2083\u2084\u2085\u2086\u2087\u2088\u2089\u208a\u208b");break;case "SUP":ad(c,r,"^","\u2070\u00b9\u00b2\u00b3\u2074\u2075\u2076\u2077\u2078\u2079\u207a\u207b");
-c[c.length-1].isSuperscript=!0;break;case "BRA":b="[](){}||".indexOf(r.text);if(r.text===h||b&1)break a;var b="[](){}||".charAt(b+1),d=bd(a,b),g=d.closedBy;if(g.text!==b)throw ha("Opening "+r.text+" at "+r.start.row+":"+r.start.col+" closed by "+(g.text||"EOF")+" at "+g.start.row+":"+g.start.col);g=r.text+g.text;b=[];if(d=d.expr){for(;d&&"infix"===d.ctype&&","===d.oper;)b.push(d.args[0]),d=d.args[1];b.push(d)}if(c.length&1){if("{}"===g)throw ha("{\u2026} reserved for future use",r.start);d=c[c.length-
-1];if("variable"!==d.ctype)throw ha("Function name must be an identifier",d.start);if(2<c.length&&c[c.length-2].precedence<cd)throw ha("Function call in indexing construct must be enclosed in parentheses",r.start);d.ctype="function";r=d.args=[];for(var g=d.modifs={},e=0;e<b.length;++e){var f=b[e];if(f&&"infix"===f.ctype&&"->"===f.oper){var l=f.args[0];if("variable"!==l.ctype)throw ha("Modifier name must be an identifier",f.start);g[l.name]=f.args[1]}else r.push(f)}d.oper=d.name.toLowerCase()+"$"+
-d.args.length}else if("||"===g)if(1===b.length)c.push({ctype:"function",oper:"abs_infix",args:b,modifs:{}});else if(2===b.length)c.push({ctype:"function",oper:"dist_infix",args:b,modifs:{}});else throw ha("Don't support |\u2026| with "+b.length+" arguments",r.start);else{if("{}"===g)throw ha("{\u2026} reserved for future use",r.start);"[]"!==g&&1===b.length?c.push({ctype:"paren",args:b}):0===b.length?c.push({ctype:"list",value:[]}):c.push({ctype:"function",oper:"genList",args:b,modifs:{}})}break;
-case "EOF":break a}for(c.length&1||c.push(null);3<=c.length;)Qb(c);return{expr:c[0],closedBy:r}}function Eb(a){this.usedFunctions={};this.usedVariables={}}function A(a){if(void 0===a)return k;if("infix"===a.ctype)return a.impl(a.args,{},a);if("variable"===a.ctype)return A(J.getvar(a.name));if("function"===a.ctype)return D.evaluate(a.oper,a.args,a.modifs);if("void"===a.ctype)return k;if("field"===a.ctype){var h=A(a.obj);return"geo"===h.ctype?ya.getField(h.value,a.key):"list"===h.ctype?g.getField(h,
-a.key):k}return a}function B(a){a=A(a);if("geo"===a.ctype){var h=a.value;if("P"===h.kind)return ya.getField(h,"xy");if("V"===h.kind)return h.value}return a}function M(a){a=A(a);if("geo"===a.ctype){var h=a.value;if("P"===h.kind||"L"===h.kind)return ya.getField(h,"homog")}return g._helper.isNumberVecN(a,3)?a:g._helper.isNumberVecN(a,2)?(h=g.turnIntoCSList([a.value[0],a.value[1],l.real(1)]),a.usage&&(h=w.withUsage(h,a.usage)),h):k}function Ra(a){var h=new Eb;h.usedFunctions=Nc;h.infixmap=R;a=h.parse(a);
-for(var c in h.usedVariables)J.create(c);return a}function dd(){this._path=[];this._defs=["<defs>"];this._imgcache=[];this._body=[];this._saveStack=[""];this._clipIndex=0;this._stroke=this._fill="#000";this._strokeOpacity=this._fillOpacity=null;this.height=this.width=0;this.lineWidth=1;this.lineCap="butt";this.lineJoin="miter";this.miterLimit=10;this.globalAlpha=1}function ed(){this._body=[];this._yPos=this._xPos=NaN;this._extGState={Af255:"<< /ca 1 >>",As255:"<< /CA 1 >>"};this._objects=[["%PDF-1.4\n"]];
-this._offset=this._objects[0][0].length;this._nextIndex=5;this._imgcache=[];this._xobjects={};this._pathUsed=-1;this._fillAlpha=this._strokeAlpha=this._globalAlpha=1;this.height=this.width=0;this.lineWidth=1;this.lineCap="butt";this.lineJoin="miter";this.miterLimit=10}function fd(a,h){var c=a.width,r=a.height,b=document.createElement("canvas");b.setAttribute("width",c);b.setAttribute("height",r);b.setAttribute("style","display:none;");var d=oa.canvas;d.parentNode.insertBefore(b,d.nextSibling);try{return b.getContext("2d").drawImage(a,
-0,0,c,r),b.toDataURL(h||"image/png")}finally{b.parentNode.removeChild(b)}}function Wd(a){a=a.replace(RegExp("[^ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/]+","g"),"");var h=new Uint8Array(3*a.length>>2),c,r,b,d,g,e;for(r=c=0;c+3<a.length;c+=4)b="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".indexOf(a.charAt(c)),d="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".indexOf(a.charAt(c+1)),g="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".indexOf(a.charAt(c+
-2)),e="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".indexOf(a.charAt(c+3)),h[r++]=b<<2|d>>4,h[r++]=d<<4|g>>2,h[r++]=g<<6|e;switch(a.length-c){case 0:break;case 2:b="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".indexOf(a.charAt(c));d="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".indexOf(a.charAt(c+1));h[r++]=b<<2|d>>4;break;case 3:b="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".indexOf(a.charAt(c));d="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".indexOf(a.charAt(c+
-1));g="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".indexOf(a.charAt(c+2));h[r++]=b<<2|d>>4;h[r++]=d<<4|g>>2;break;default:throw Error("Malformed Base64 input: "+(a.length-c)+" chars left: "+a.substr(c));}if(r!==h.length)throw Error("Failed assertion: "+r+" should be "+h.length);return h}function Xd(a){function h(c){return(a[c]<<24|a[c+1]<<16|a[c+2]<<8|a[c+3])>>>0}if(57>a.length)throw Error("Too short to be a PNG file");if(2303741511!==h(0)||218765834!==h(4))throw Error("PNG signature missing");
-for(var c=[],r=8;r<a.length;){if(r+12>a.length)throw Error("Incomplete chunk at offset 0x"+r.toString(16));var b=h(r);if(2147483648<=b)throw Error("Chunk too long");var d=r+12+b;if(d>a.length)throw Error("Incomplete chunk at offset 0x"+r.toString(16));var g=a.subarray(r+4,r+8),g=String.fromCharCode.apply(String,g);c.push({len:b,type:g,data:a.subarray(r+8,r+8+b),crc:h(r+8+b)});r=d}return c}function Rb(a,h){var c;if(c=/^rgba\(([0-9]+), *([0-9]+), *([0-9]+), *([0-9]+)\)$/.exec(a))h(+c[1],+c[2],+c[3],
-+c[4]);else if(c=/^rgb\(([0-9]+), *([0-9]+), *([0-9]+)\)$/.exec(a))h(+c[1],+c[2],+c[3],1);else throw Error("Can't handle color style "+a);}function Yd(a){var h=1;Object.keys(Xa).forEach(function(c){var r=Xa[c].value.img;if(void 0===r.cachedDataURL&&r.src)if("data:"===r.src.substr(0,5))r.cachedDataURL=r.src;else{++h;r.cachedDataURL=null;var b=new XMLHttpRequest;b.responseType="blob";b.onreadystatechange=function(){if(b.readyState===XMLHttpRequest.DONE)if(200===b.status){var c=new FileReader;c.onloadend=
-function(){r.cachedDataURL=c.result;console.log("Cached data for image "+r.src);0===--h&&a()};c.readAsDataURL(b.response)}else console.error("Failed to load "+r.src+": "+b.statusText),0===--h&&a()};b.open("GET",r.src,!0);b.send()}});0===--h&&a()}function lb(a,h,c){for(c||(c="0");a.length<h;)a=c+a;return a}function gd(){null!==Fb&&(window.URL.revokeObjectURL(Fb),Fb=null)}function hd(a){Yd(function(){var h=y;try{y=new a;y.width=da;y.height=ca;n();var c=y.toBlob();Fb=window.URL.createObjectURL(c);id(Fb)}finally{y=
-h}})}function Gb(a){var h=null,c=1E6,r;console.log("getElementAtMouse");for(var b=0;b<u.gslp.length;b++){var d=u.gslp[b];if(!d.pinned&&!1!==d.visible&&!0!==d.tmp){var e,f,k,m=z.drawingstate.matrix.sdet;if("P"===d.kind){var n=g.normalizeZ(d.homog);if(!g._helper.isAlmostReal(n))continue;e=n.value[0].value.real-a.x;f=n.value[1].value.real-a.y;k=Math.sqrt(e*e+f*f);d.narrow&k>20/m&&(k=1E4)}else if("C"===d.kind)f=u.csnames[d.args[0]],k=0,"undefined"!==typeof d.radius&&(k=d.radius.value.real),e=l.div(f.homog.value[0],
-f.homog.value[2]).value.real,f=l.div(f.homog.value[1],f.homog.value[2]).value.real,e-=a.x,f-=a.y,k=Math.sqrt(e*e+f*f)-k,f=e=0,0>k&&(k=-k),k+=30/m;else if("L"===d.kind||"S"===d.kind)e=d.homog,k=l,f=k.add(k.mult(e.value[0],k.conjugate(e.value[0])),k.mult(e.value[1],k.conjugate(e.value[1]))),f=g.scaldiv(k.sqrt(f),e),k=f.value[0].value.real*a.x+f.value[1].value.real*a.y+f.value[2].value.real,e=f.value[0].value.real*k,f=f.value[1].value.real*k,0>k&&(k=-k),k+=1;k<c+.2/m&&(c=k,h=d,r={x:e,y:f})}}return null===
-h?null:{mover:h,offset:r,prev:{x:a.x,y:a.y}}}function Ta(){return"P"+Zd++}function qb(a){var h=G[qc].actions;h[sb].event===a&&h[sb]["do"]()&&(e(),sb===h.length-1?(ua=[],sb=Ua=0):sb++)}function rc(a){return a&&.5>Math.abs(a.offset.x)&&.5>Math.abs(a.offset.y)&&!a.mover.tmp}function jd(a){return rc(a)&&"P"===a.mover.kind}function kd(a){return rc(a)&&("L"===a.mover.kind||"S"===a.mover.kind)}function sc(a){fa={mover:a,offset:{x:0,y:0},prev:{x:X.x,y:X.y}}}function mb(){var a=Gb(X);jd(a)?ua[Ua]=a.mover:
-(ua[Ua]={type:"Free",name:Ta(),labeled:!0,pos:[ta[0],ta[1],1]},Ha(ua[Ua]));Ua++}function ld(){var a=Gb(X);return kd(a)?(ua[Ua]=a.mover,Ua++,!0):!1}function md(){var a=Gb(X),h;(h=kd(a))||(h=rc(a)&&"C"===a.mover.kind);return h?(ua[Ua]=a.mover,Ua++,!0):!1}function tb(){var a=Gb(X);if(jd(a))for(Hb.args[1]=a.mover.name,a=0;a<u.gslp.length;a++){var h=u.gslp[a];!0===h.tmp&&nd(h.name)}else for(a=0;a<u.gslp.length;a++)h=u.gslp[a],!0===h.tmp&&(h.tmp=!1)}function Sb(a){var h={type:"Free",name:Ta(),labeled:!0,
-pos:[ta[0],ta[1],1],tmp:!0},h=Ha(h);Hb=Ha({type:a,name:Ta(),labeled:!0,args:[ua[0].name,h.name]});sc(h)}function $d(a){for(var h in a)null!==a[h]&&(la[h]=a[h])}function Md(a){Object.keys(m).forEach(function(a){var c=m[a];eb(c.signature||"_helper"===a,a+" has no signature");void 0!==c.updatePosition&&void 0===c.stateSize&&(c.stateSize=0)});u.gslp=[];u.csnames={};u.points=[];u.lines=[];u.conics=[];u.texts=[];u.free=[];u.polygons=[];a.forEach(od);pd()}function qd(a){"undefined"===typeof a.tracedim&&
-(a.tracedim=1);"undefined"===typeof a.tracelength&&(a.tracelength=100);"undefined"===typeof a.traceskip&&(a.traceskip=1);a._traces=Array(a.tracelength);a._traces_index=0;a._traces_tick=0}function ae(a){void 0===a.size&&(a.size=la.pointSize);a.size=l.real(a.size);!a.movable||a.pinned?(a.color=g.realVector(a.color||la.pointColor),a.color=g.scalmult(l.real(la.dimDependent),a.color)):a.color=g.realVector(a.color||la.pointColor);void 0===a.alpha&&(a.alpha=la.alpha);a.alpha=l.real(a.alpha);a.drawtrace&&
-qd(a)}function Tb(a){void 0===a.size&&(a.size=la.lineSize);a.size=l.real(a.size);a.color=g.realVector(a.color||la.lineColor);void 0===a.alpha&&(a.alpha=la.alpha);a.alpha=l.real(a.alpha);a.clip=w.string(a.clip||la.clip);void 0===a.overhang&&(a.overhang=la.overhangLine);a.overhang=l.real(a.overhang);a.dashtype&&(a.dashtype=w.wrap(a.dashtype))}function be(a){void 0===a.overhang&&(a.overhang=la.overhangSeg);a.arrow&&(a.arrow=w.bool(a.arrow));a.arrowsize&&(a.arrowsize=l.real(a.arrowsize));a.arrowposition&&
-(a.arrowposition=l.real(a.arrowposition));a.arrowshape&&(a.arrowshape=w.string(a.arrowshape));a.arrowsides&&(a.arrowsides=w.string(a.arrowsides));Tb(a);a.clip=w.string("end")}function ce(a){a.size=void 0!==a.textsize?a.textsize:void 0!==a.size?a.size:la.textsize;a.size=l.real(+a.size)}function de(a){a.filled=void 0!==a.filled?w.bool(a.filled):w.bool(!0);a.fillcolor=void 0===a.fillcolor?k:g.realVector(a.fillcolor);void 0===a.fillalpha&&(a.fillalpha=0);a.fillalpha=l.real(a.fillalpha);Tb(a)}function Ha(a){a=
-od(a);pd();return a}function od(a){var h;if(void 0!==u.csnames[a.name])return console.log("Element name '"+a.name+"' already exists"),h=u.csnames[a.name],m[h.type].isMovable&&"P"===m[h.type].kind&&Ia(h,a.pos,"homog"),{ctype:"geo",value:h};for(;tc.hasOwnProperty(a.type);)a.type=tc[a.type];if(h=rd[a.type]){var c=h(a),r=null;for(h=0;h<c.length;++h)r=Ha(c[h]);return r}var b=m[a.type],c=!1;if(!b)return console.error(a),console.error("Operation "+a.type+" not implemented yet"),null;if("**"!==b.signature)if(!Array.isArray(b.signature)&&
-"*"===b.signature.charAt(1))c=!0,a.args.forEach(function(c){if(u.csnames[c].kind!==b.signature.charAt(0))return console.error("Not all elements in set are of same type: "+a.name+" expects "+b.signature+" but "+c+" is of kind "+u.csnames[c].kind),"undefined"!==typeof window&&window.alert("Not all elements in set are of same type: "+a.name),null});else if(b.signature.length!==(a.args?a.args.length:0))return console.error("Wrong number of arguments for "+a.name+" of type "+a.type),"undefined"!==typeof window&&
-window.alert("Wrong number of arguments for "+a.name),null;if(a.args)for(h=0;h<a.args.length;++h){if(!u.csnames.hasOwnProperty(a.args[h]))return console.log("Dropping "+a.name+" due to missing argument "+a.args[h]),null;if("**"!==b.signature&&!c&&(r=u.csnames[a.args[h]].kind,b.signature[h]!==r&&("S"!==r||"L"!==b.signature[h])))return window.alert("Wrong argument kind "+r+" as argument "+h+" to element "+a.name+" of type "+a.type),null}b.signatureConstraints&&!b.signatureConstraints(a)&&window.alert("signature constraints violated for element "+
-a.name);u.gslp.push(a);u.csnames[a.name]=a;h=za.length;a.kind=b.kind;a.stateIdx=h;h+=b.stateSize;a.incidences=[];a.isshowing=!0;a.movable=!1;b.isMovable&&(a.movable=!0,u.free.push(a));"P"===a.kind&&(u.points.push(a),ae(a));"L"===a.kind&&(u.lines.push(a),Tb(a));"C"===a.kind&&(u.conics.push(a),Tb(a));"S"===a.kind&&(u.lines.push(a),be(a));"Text"===a.kind&&(u.texts.push(a),ce(a));"Poly"===a.kind&&(u.polygons.push(a),de(a));ee(h);ma=Ma=za;fb=!0;b.initialize&&(va=Aa=a.stateIdx,a.param=b.initialize(a),eb(Aa===
-a.stateIdx+b.stateSize,"State fully initialized"));va=Aa=a.stateIdx;b.updatePosition(a,!1);eb(va===a.stateIdx+b.stateSize,"State fully consumed");eb(Aa===a.stateIdx+b.stateSize,"State fully updated");fb=!1;ma=db["in"];ma.set(za);Ma=db.out;uc(a,b);Ub={};gb(a);return u.csnames[a.name]}function nd(a){var h,c;console.log("Remove element "+a);delete u.csnames[a];for(h=0;h<u.gslp.length;h++)c=u.gslp[h],c.name===a&&(console.log("Removed element from gslp "+a),u.gslp.splice(h,1));for(h=0;h<u.free.length;h++)c=
-u.free[h],c.name===a&&(console.log("Removed element from free "+a),u.free.splice(h,1));for(h=0;h<u.points.length;h++)c=u.points[h],c.name===a&&(console.log("Removed element from points "+a),u.points.splice(h,1));for(h=0;h<u.lines.length;h++)c=u.lines[h],c.name===a&&(console.log("Removed element from lines "+a),u.lines.splice(h,1));for(h=0;h<u.conics.length;h++)c=u.conics[h],c.name===a&&(console.log("Removed element from conics "+a),u.conics.splice(h,1));Ub={}}function sd(a,h){var c=u.csnames[h.args[0]].homog,
-r=u.csnames[h.args[1]].homog,b=a.homog,d=l.div(c.value[0],c.value[2]),c=l.div(c.value[1],c.value[2]),g=l.div(r.value[0],r.value[2]),r=l.div(r.value[1],r.value[2]),e=l.div(b.value[0],b.value[2]),b=l.div(b.value[1],b.value[2]);return l._helper.isAlmostReal(d)&&l._helper.isAlmostReal(c)&&l._helper.isAlmostReal(g)&&l._helper.isAlmostReal(r)&&l._helper.isAlmostReal(e)&&l._helper.isAlmostReal(b)?(d=d.value.real,c=c.value.real,g=g.value.real,r=r.value.real,e=e.value.real,b=b.value.real,d=Math.sqrt((d-g)*
-(d-g)+(c-r)*(c-r))-Math.sqrt((d-e)*(d-e)+(c-b)*(c-b))-Math.sqrt((g-e)*(g-e)+(r-b)*(r-b)),1E-15>d*d):!1}function uc(a,h){a.isshowing=!0;if(a.args)for(var c=0;c<a.args.length;c++)if(!u.csnames[a.args[c]].isshowing){a.isshowing=!1;return}h.visiblecheck&&h.visiblecheck(a)}function Sd(a){a._bbox=null;if(a.isshowing&&!1!==a.visible){var h={size:a.size},c=a.homog,r=a.text,b=m[a.type].getText,r=b?b(a):r.replace(/@[$#]"([^"\\]|\\.)*"/g,function(a){var c,h;try{if(c=JSON.parse(a.substring(2)),h=u.csnames[c],
-!h)return"?"}catch(r){return"?"}switch(a.charAt(1)){case "$":return h.printname||c;case "#":return"V"!==h.kind?"?":ba(h.value)}}),b=null;if(a.html)var d=a._textCache||{text:!1},g=a.html,e=g.parentNode,f=e.parentNode,b=function(c,h,r,b,na){d.invisible&&f.style.removeProperty("display");if(c!==d.text||h!==d.font||r!==d.x||b!==d.y||na!==d.align){h!==d.font&&(g.style.font=h,g.style.lineHeight=la.lineHeight);c!==d.text&&!1!==c&&!1===td(g,c,h)&&(c=!1);f.style.left=r+"px";f.style.top=b+"px";if(na||e.style.transform)e.style.transform=
-"translateX("+-100*na+"%)";a._textCache={text:c,font:h,x:r,y:b,align:na}}};r=w.string(r);a.dock&&(a.dock.to?c=u.csnames[a.dock.to].homog:ud.hasOwnProperty(a.dock.corner)&&(c=t.screenbounds$0([],{}),c=c.value[ud[a.dock.corner]]),h.offset=a.dock.offset);a.align&&(h.align=w.string(a.align));c&&(a._bbox=D.drawtext([c,r],h,b))}else a.html&&(a.html.parentNode.parentNode.style.display="none",a._textCache={invisible:!0})}function Rd(){function a(){var a=e++/c._traces.length,h=c._traces[g];h&&(a*=r*a*a,t.draw$1([h],
-{size:l.real(b),color:c.color,alpha:l.real(a)}));b*=d}for(var h=0;h<u.points.length;h++){var c=u.points[h];if(c.drawtrace){c._traces_tick===c.traceskip?(c._traces[c._traces_index]=c.homog,c._traces_index=(c._traces_index+1)%c._traces.length,c._traces_tick=0):c._traces_tick++;var r=c.alpha.value.real,b=c.size.value.real,d=1;1!==c.tracedim&&(b*=c.tracedim,d=Math.pow(c.tracedim,-1/c._traces.length));var g,e=0;for(g=c._traces_index;g<c._traces.length;++g)a();for(g=0;g<c._traces_index;++g)a()}}}function eb(a,
-h){var c="Assertion failed: "+h;if(!a)throw console.log(c),Qa(),"undefined"!==typeof alert&&alert(c),Error(c);}function ee(a){if(a!==za.length){var h,c,r=vc.length;hb.length<a*r?(h=2*a,hb=new Float64Array(r*h)):h=hb.length/r|0;for(c=0;c<r;++c)db[vc[c]]=hb.subarray(c*h,c*h+a);a=za;ma=db["in"];Ma=db.out;za=db.good;za.set(a)}}function ub(){za.set(ma);Ja=!1;vd(!1);for(var a=za.length,h=Math.abs,c=0;c<a;c+=2)h(za[c])>1E12*h(za[c+1])&&(za[c+1]=0)}function Vb(){if(vb)Ja=!0;else throw wd;}function xd(a,h,
-c,r,b){return w.add(r,w.mult(c,w.sub(b,r)))}function Qd(){L&&(L.currentMouseAndScripts=[]);wc=!0;if(fa){var a=fa.mover,h=g.realVector([X.x+fa.offset.x,X.y+fa.offset.y,1]);yd(a,h,"mouse");fa.prev.x=X.x;fa.prev.y=X.y}A(S.move);A(S.draw);Ja||ub();wc=!1;L&&(L.fullLog.push(g.turnIntoCSList([g.turnIntoCSList(L.currentMouseAndScripts)])),L.length>L.logLength&&L.splice(0,L.length-L.logLength),L.currentMouseAndScripts=null,L.postMouseHooks.forEach(function(a){a()}))}function Ia(a,h,c){yd(a,h,c);wc||Ja||ub()}
-function yd(a,h,c){L&&L.currentMouseAndScripts&&(L.currentMover=[]);a===zd?(ma.set(za),Ja=!1):(zd=a,ub());Ma.set(ma);var r=1E4,b;b=Ub[a.name];if(!b){var d={},e=0;b=[];d[a.name]=a;for(var f=u.gslp,k=0;k<f.length;++k){var n=f[k],p=n.args;if(p)for(var q=0;q<p.length;++q)d.hasOwnProperty(p[q])&&(d[n.name]=n,b[e++]=n)}Ub[a.name]=b}var d=-1,e=.9,t,v,x,f=m[a.type],k=f.parameterPath||xd;va=a.stateIdx;n=f.getParamFromState(a);va=Aa=a.stateIdx;p=f.getParamForInput(a,h,c);for(q=d+e;d!==q;){var y=q*q,z=.5/(1+
-y),z=l.complex(2*q*z+.5,(1-y)*z);vb=d+.5*e<=d||0===r;0===r&&console.log("tracing limit Reached");y=!1;L&&L.currentMouseAndScripts&&(L.currentStep=[]);try{va=Aa=a.stateIdx;var A=k(a,q,z,n,p);L&&(L.currentParam=A);z=Ma;Ma=ma;f.putParamToState(a,A);Ma=z;Aa=a.stateIdx;L&&(L.currentElement=a);f.updatePosition(a,!0);eb(va===a.stateIdx+f.stateSize,"State fully consumed");eb(Aa===a.stateIdx+f.stateSize,"State fully updated");for(t=0;t<b.length;++t)v=b[t],x=m[v.type],va=Aa=v.stateIdx,L&&(L.currentElement=
-v),x.updatePosition(v,!1),eb(va===v.stateIdx+x.stateSize,"State fully consumed"),eb(Aa===v.stateIdx+x.stateSize,"State fully updated");L&&(L.currentElement=null);d=q;e*=1.25;q+=e;1<=q&&(q=1);Ma=ma;ma=z}catch(B){if(B!==wd)throw B;e*=.5;q=d+e;--r;y=!0}L&&L.currentMouseAndScripts&&(L.currentMover.push(g.turnIntoCSList([g.turnIntoCSList(L.currentStep),w.wrap(y),w.wrap(d),w.wrap(q),w.wrap(L.currentParam)])),L.currentStep=null,L.currentParam=null)}vd(Ja);for(t=0;t<b.length;++t)v=b[t],x=m[v.type],uc(v,x);
-L&&L.currentMouseAndScripts&&(L.currentMouseAndScripts.push(g.turnIntoCSList([g.turnIntoCSList(L.currentMover),w.wrap(Ja),w.wrap(a.name),h,w.wrap(c),n,p])),L.currentMover=null)}function Nd(){ub();vb=!0;for(var a=u.gslp,h=0;h<a.length;h++){var c=a[h],r=m[c.type];va=Aa=c.stateIdx;r.updatePosition(c,!1);uc(c,r)}a=Ma;Ma=ma;ma=a;ub()}function vd(a){var h=p.tracingStateReport;"string"===typeof h&&(document.getElementById(h).textContent=a?"BAD":"GOOD")}function fe(){return g.turnIntoCSList(L.fullLog.slice())}
-function ge(a){var h=JSON.stringify(L.fullLog);a=new Blob([h],{type:a?"application/octet-stream":"application/json"});return window.URL.createObjectURL(a)}function wb(){var a=va;va+=2;return l.complex(ma[a],ma[a+1])}function Z(a){for(var h=Array(a),c=0;c<a;++c)h[c]=wb();return g.turnIntoCSList(h)}function Va(a){Ma[Aa]=a.value.real;Ma[Aa+1]=a.value.imag;Aa+=2}function T(a){for(var h=0,c=a.value.length;h<c;++h)Va(a.value[h])}function Na(a,h){var c=Z(3),r=Z(3),c=Ad(a,h,c,r);T(c[0]);T(c[1]);return g.turnIntoCSList(c)}
-function Ad(a,h,c,r){if(fb)return[a,h];var b=g.projectiveDistMinScal(c,a),d=g.projectiveDistMinScal(c,h),e=g.projectiveDistMinScal(r,a),f=g.projectiveDistMinScal(r,h),l=g.projectiveDistMinScal(c,r),m=g.projectiveDistMinScal(a,h),n=b+f,p=d+e,q;n>p?(q=[h,a],n=p):q=[a,h];p=function(){};if(L&&L.currentStep){var t=[L.labelTracing2,w.wrap(L.currentElement.name),g.turnIntoCSList(q),g.turnIntoCSList([c,r]),g.realMatrix([[b,d],[e,f]]),w.wrap(n),w.wrap(l),w.wrap(m),k];L.currentStep.push(g.turnIntoCSList(t));
-p=function(a){L.hasOwnProperty(a)||(L[a]=w.wrap(a));t[t.length-1]=L[a]}}g._helper.isNaN(a)||g._helper.isNaN(h)?(p("Tracing failed due to NaNs."),Ja=!0):l>3*n&&m>3*n?p("Normal case, everything all right."):1E-5>m?1E-5>l?p("Staying inside singularity."):(p("Moved into singularity."),Ja=!0):1E-5>l?p("Moved out of singularity."):(vb?p("Reached refinement limit, giving up."):p("Need to refine."),Vb());return q}function xc(a,h,c,r){var b=Z(3),d=Z(3),e=Z(3),f=Z(3);a=he(a,h,c,r,b,d,e,f);T(a[0]);T(a[1]);T(a[2]);
-T(a[3]);return g.turnIntoCSList(a)}function he(a,h,c,r,b,d,e,f){var l=function(){};b=[b,d,e,f];a=[a,h,c,r];if(fb)return a;d=0;r=Array(4);for(c=0;4>c;c++)for(r[c]=Array(4),f=0;4>f;f++)e=g.projectiveDistMinScal(b[c],a[f]),r[c][f]=e;e=nc(r);h=Array(4);for(c=0;4>c;++c)h[c]=a[e[c]],d+=r[c][e[c]];var m=1*d,n=Infinity,p=Infinity;for(c=0;4>c;c++){if(g._helper.isNaN(a[c]))return l("Tracing failed due to NaNs."),Ja=!0,h;for(f=c+1;4>f;f++)e=g.projectiveDistMinScal(b[c],b[f]),n>e&&(n=e),e=g.projectiveDistMinScal(h[c],
-h[f]),p>e&&(p=e)}if(L&&L.currentStep){var q=[L.labelTracing4,w.wrap(L.currentElement.name),g.turnIntoCSList(h),g.turnIntoCSList(b),g.realMatrix(r),w.wrap(d),w.wrap(n),w.wrap(p),k];L.currentStep.push(g.turnIntoCSList(q));l=function(a){L.hasOwnProperty(a)||(L[a]=w.wrap(a));q[q.length-1]=L[a]}}n>m&&p>m||(1E-5>p?1E-5>n?l("Staying inside singularity."):(l("Moved into singularity."),Ja=!0):1E-5>n?l("Moved out of singularity."):(vb?l("Reached refinement limit, giving up."):l("Need to refine."),Vb()));return h}
-function Bd(a){var h=a.length,c,r;if(fb){for(c=0;c<h;++c)va+=2*a[c].value.length,T(a[c]);return a}var b=Array(h),d=Array(h),e=Array(h),f=99,l=99,m=Array(h);for(c=0;c<h;++c)b[c]=Z(a[c].value.length),d[c]=g.normSquared(b[c]).value.real,e[c]=g.normSquared(a[c]).value.real,m[c]=Array(h);var n;for(c=0;c<h;++c){for(r=0;r<h;++r)n=g.sesquilinearproduct(b[c],a[r]).value,n=(n.real*n.real+n.imag*n.imag)/(d[c]*e[r]),m[c][r]=1-n;for(r=c+1;r<h;++r)n=g.sesquilinearproduct(b[c],b[r]).value,n=(n.real*n.real+n.imag*
-n.imag)/(d[c]*d[r]),f>1-n&&(f=1-n),n=g.sesquilinearproduct(a[c],a[r]).value,n=(n.real*n.real+n.imag*n.imag)/(e[c]*e[r]),l>1-n&&(l=1-n)}n=nc(m);r=Array(h);d=0;e=!1;for(c=0;c<h;++c){var d=d+m[c][n[c]],p=r[c]=a[n[c]];T(p);e|=g._helper.isNaN(p)}e|=isNaN(d);a=function(){};if(L&&L.currentStep){var q=[L.labelTracingSesq,w.wrap(L.currentElement.name),g.turnIntoCSList(r),g.turnIntoCSList(b),g.realMatrix(m),w.wrap(d),w.wrap(f),w.wrap(l),k];L.currentStep.push(g.turnIntoCSList(q));a=function(a){L.hasOwnProperty(a)||
-(L[a]=w.wrap(a));q[q.length-1]=L[a]}}e?(a("Tracing failed due to NaNs."),Ja=!0):f>3*d&&l>3*d?a("Normal case, everything all right."):1E-5>l?1E-5>f?a("Staying inside singularity."):(a("Moved into singularity."),Ja=!0):1E-5>f?a("Moved out of singularity."):(vb?a("Reached refinement limit, giving up."):a("Need to refine."),Vb());return r}function gb(a){if(gb.hasOwnProperty(a.kind))gb[a.kind](a)}function Cd(a,h){return function(){a.incidences.push(h.name);h.incidences.push(a.name)}}function Dd(a,h){return{toString:function(){return"point "+
-a.name+" incident line "+h.name},apply:Cd(a,h),holds:function(){var c=g.scaldiv(g.abs(a.homog),a.homog),r=g.scaldiv(g.abs(h.homog),h.homog);return 1E-13>l.abs(g.scalproduct(c,r)).value.real}}}function Ed(a,h){return{toString:function(){return"point "+a.name+" incident conic "+h.name},apply:Cd(a,h),holds:function(){var c=w.mult(h.matrix,a.homog),c=w.mult(a.homog,c),c=l.abs(c);1E-13>c.value.real&&(a.incidences.push(h.name),h.incidences.push(a.name))}}}function pd(){if(0!==ib.length){for(var a=0;a<ib.length;++a)ib[a].apply();
-ib=[]}}function yc(a,h,c){var r=document.createElement("div"),b=document.createElement("img");b.src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAPoCAQAAAC1v1zVAAAAGklEQVR42u3BMQEAAADCoPVPbQ0PoAAAgHcDC7gAAVI8ZnwAAAAASUVORK5CYII=";r.className="CindyJS-baseline";r.appendChild(b);b=document.createElement("div");b.className="CindyJS-button";r.appendChild(b);for(var d=2;d<arguments.length;++d)b.appendChild(arguments[d]);ka.parentNode.appendChild(r);a.html=arguments[arguments.length-1];Fa(a.fillalpha)||
-(a.fillalpha=1);a.fillcolor&&(a.html.style.backgroundColor=x.makeColor(a.fillcolor,a.fillalpha));r=e;if(a.script)var g=Ra(a.script),r=function(){A(g);e()};c.addEventListener(h,r);!p.keylistener&&(S.keydown||S.keyup||S.keytyped)&&(c.addEventListener("keydown",function(a){9!==a.keyCode&&N(a,S.keydown)}),c.addEventListener("keyup",function(a){N(a,S.keyup)}),c.addEventListener("keypress",function(a){9!==a.keyCode&&N(a,S.keytyped)}));m.Text.initialize(a)}function Pa(){}function ie(a){if(!/^Select/.test(a.type)&&
-!m[a.type].isMovable)return null;var h=w.unwrap,c=l.add;switch(a.kind){case "P":case "L":case "Text":return h(a.homog);case "C":return a=a.matrix.value,{xx:h(a[0].value[0]),yy:h(a[1].value[1]),zz:h(a[2].value[2]),xy:h(c(a[0].value[1],a[1].value[0])),xz:h(c(a[0].value[2],a[2].value[0])),yz:h(c(a[1].value[2],a[2].value[1]))};default:return null}}function je(a){var h={};h.offset=w.unwrap(a.offset);a.to&&(h.to=a.to);a.corner&&(h.corner=a.corner);return h}function ke(a){var h={};le.forEach(function(c){if(a.hasOwnProperty(c)){var b=
-w.unwrap(a[c]);null!==b&&void 0!==b&&(h[c]=b)}});if("P"===a.kind&&(!a.movable||a.pinned)&&h.color){var c=l.real(1/la.dimDependent);h.color=w.unwrap(g.scalmult(c,a.color))}if(c=ie(a))h.pos=c;a.dock&&(h.dock=je(a.dock));return h}function me(){var a=[];u.gslp.forEach(function(h){h.tmp||a.push(ke(h))});return a}function Od(){Ba.forEach(function(a){var h=(a.geo||[]).map(function(a){return u.csnames[a]});O[a.type].reset(a,h[0],h)})}function ec(a){ic=0!==a.length;Ba=[];ga=[];zc=[];O.Environment.init({});
-a.forEach(function(a){a.behavior?(a.name&&(a.behavior.geo=[a.name]),a=a.behavior,a.gravity&&(a.gravity=-a.gravity)):c=a.geo;var c=(a.geo||[]).map(function(a){return u.csnames[a]}),r=c[0],b=O[a.type];b?(b.init&&b.init(a,r,c),r&&(r.behavior=a,"Mass"===a.type?ga.push(r):"Spring"===a.type&&zc.push(r)),Ba.push(a)):(console.error(a),console.error("Behavior "+a.type+" not implemented yet"))})}var wa=this,ia,S={},Ya=!1,Ob=!0,Cb=0,Oc=.5,hc=0,Mb=10,Fd=5/360,Pd=.32/Fd/1E3*2,Kb=1,Wa=0,bc=0,cc=!1,zb=!1,ka,yb,
-Fa=Number.isFinite||function(a){return"number"===typeof a&&isFinite(a)},ta,y,da,ca,u,Xa,kc=k,lc=k,Sa={play:Pa,pause:Pa,stop:Pa},gc=null,Ab=function(a,h){var c=[];Ab=function(a,h){c.push({img:a,id:h})};Ab(a,h);var r=wa.getBaseDir()+"images/Icons.svg",b=new XMLHttpRequest;b.onreadystatechange=function(){if(b.readyState===XMLHttpRequest.DONE)if(200!==b.status)console.error("Failed to load CindyJS Icons.svg from "+r+": "+b.statusText);else{var a=b.responseXML,h=a.documentElement,d={},g,e;for(g=h.firstChild;g;g=
-e)e=g.nextSibling,g.nodeType===Node.ELEMENT_NODE&&"http://www.w3.org/2000/svg"===g.namespaceURI&&"g"===g.localName.toLowerCase()&&(h.removeChild(g),g.setAttribute("style","display:inline"),d[g.getAttribute("id")]=g);var f=new XMLSerializer;Ab=function(c,r){if(d.hasOwnProperty(r)){var b=d[r];h.appendChild(b);var g;try{g=f.serializeToString(a)}finally{h.removeChild(b)}c.src="data:image/svg+xml;charset=utf-8,"+encodeURIComponent(g)}};c.forEach(function(a){Ab(a.img,a.id)});c=null}};b.responseType="document";
-b.open("GET",r);b.send()},Pc=1,Bb=null,jb=[],jc=!1,oa={config:p,startup:W,shutdown:Qa,evokeCS:function(a){a=Ra(a,!1);console.log(a);A(a);e()},play:I,pause:Ca,stop:Da,evalcs:function(a){return A(Ra(a,!1))},parse:function(a){return Ra(a)},niceprint:ba,canvas:null},ac=!1,Lb=0;p.use&&p.use.forEach(function(a){var h=null;p.plugins&&(h=p.plugins[a]);h||(h=wa._pluginRegistry[a]);h||(++Lb,console.log("Loading script for plugin "+a),wa.loadScript(a+"-plugin",a+"-plugin.js",function(){console.log("Successfully loaded plugin "+
-a);0===--Lb&&ac&&W()},function(){console.error("Failed to auto-load plugin "+a);0===--Lb&&ac&&W()}))});xb.prototype=new ab;cb.prototype=new ab;qa.prototype=new ab;var X={},fa,Qc="",Rc=0,Pb;Pb=p.isNode?process.nextTick:window.requestAnimationFrame||window.webkitRequestAnimationFrame||window.mozRequestAnimationFrame||window.oRequestAnimationFrame||window.msRequestAnimationFrame||function(a){window.setTimeout(a,0)};var mc=null,ne=[0,8,4,0,"gbb244ca"],l={_helper:{}};l._helper.roundingfactor=1E4;l._helper.angleroundingfactor=
-10;l._helper.niceround=function(a,h){return Math.round(a*h)/h};l.niceprint=function(a,h){h=h||l._helper.roundingfactor;if("Angle"===a.usage)return l._helper.niceangle(a);var c=l._helper.niceround(a.value.real,h),r=l._helper.niceround(a.value.imag,h);return 0===r?""+c:0<r?""+c+" + i*"+r:""+c+" - i*"+-r};var Ac=p.angleUnit||"\u00b0",oe=Ac.replace(/\s+/g,""),Gd=2*Math.PI,pe=1/Gd,qe={rad:Gd,"\u00b0":360,deg:360,degree:360,gra:400,grad:400,turn:1,cyc:1,rev:1,rot:1,"\u03c0":2,pi:2,quad:4};l._helper.niceangle=
-function(a){var h=qe[oe];if(!h)return l.niceprint(w.withUsage(a,null));if("function"===typeof h)return h(a);a=l.niceprint(l.realmult(h*pe,a),200<h?l._helper.angleroundingfactor:null);return-1===a.indexOf("i*")?a+Ac:"("+a+")"+Ac};l.complex=function(a,h){return{ctype:"number",value:{real:a,imag:h}}};l.real=function(a){return{ctype:"number",value:{real:a,imag:0}}};l.zero=l.real(0);l.one=l.real(1);l.infinity=l.complex(Infinity,Infinity);l.nan=l.complex(NaN,NaN);l._helper.input=function(a){return"object"===
-typeof a?l.complex(+a.r,+a.i):l.real(+a)};l.argmax=function(a,h){return a.value.real*a.value.real+a.value.imag*a.value.imag<h.value.real*h.value.real+h.value.imag*h.value.imag?h:a};l.max=function(a,h){return{ctype:"number",value:{real:Math.max(a.value.real,h.value.real),imag:Math.max(a.value.imag,h.value.imag)}}};l.min=function(a,h){return{ctype:"number",value:{real:Math.min(a.value.real,h.value.real),imag:Math.min(a.value.imag,h.value.imag)}}};l.add=function(a,h){return{ctype:"number",value:{real:a.value.real+
-h.value.real,imag:a.value.imag+h.value.imag}}};l.sub=function(a,h){return{ctype:"number",value:{real:a.value.real-h.value.real,imag:a.value.imag-h.value.imag}}};l.neg=function(a){return{ctype:"number",value:{real:-a.value.real,imag:-a.value.imag}}};l.re=function(a){return{ctype:"number",value:{real:a.value.real,imag:0}}};l.im=function(a){return{ctype:"number",value:{real:a.value.imag,imag:0}}};l.conjugate=function(a){return{ctype:"number",value:{real:a.value.real,imag:-a.value.imag}}};l.round=function(a){return{ctype:"number",
-value:{real:Math.round(a.value.real),imag:Math.round(a.value.imag)}}};l.ceil=function(a){return{ctype:"number",value:{real:Math.ceil(a.value.real),imag:Math.ceil(a.value.imag)}}};l.floor=function(a){return{ctype:"number",value:{real:Math.floor(a.value.real),imag:Math.floor(a.value.imag)}}};l.mult=function(a,h){return{ctype:"number",value:{real:a.value.real*h.value.real-a.value.imag*h.value.imag,imag:a.value.real*h.value.imag+a.value.imag*h.value.real}}};l.realmult=function(a,h){return{ctype:"number",
-value:{real:a*h.value.real,imag:a*h.value.imag}}};l.multiMult=function(a){var h=a[0];if("number"!==h.ctype)return k;for(var c=1;c<a.length;c++){if("number"!==a[c].ctype)return k;h=l.mult(h,a[c])}return h};l.abs2=function(a,h){return{ctype:"number",value:{real:a.value.real*a.value.real+a.value.imag*a.value.imag,imag:0}}};l.abs=function(a){return l.sqrt(l.abs2(a))};l.inv=function(a){var h=a.value.real*a.value.real+a.value.imag*a.value.imag;return{ctype:"number",value:{real:a.value.real/h,imag:-a.value.imag/
-h}}};l.div=function(a,h){var c=a.value.real,r=a.value.imag,b=h.value.real,d=h.value.imag,g=b*b+d*d;return{ctype:"number",value:{real:(c*b+r*d)/g,imag:(r*b-c*d)/g}}};l.eps=1E-10;l.epsbig=1E-6;l.snap=function(a){var h=a.value.real;a=a.value.imag;Math.floor(h+l.eps)!==Math.floor(h-l.eps)&&(h=Math.round(h));Math.floor(a+l.eps)!==Math.floor(a-l.eps)&&(a=Math.round(a));return{ctype:"number",value:{real:h,imag:a}}};l.exp=function(a){var h=Math.exp(a.value.real);return{ctype:"number",value:{real:h*Math.cos(a.value.imag),
-imag:h*Math.sin(a.value.imag)}}};l.cos=function(a){var h=a.value.real;a=a.value.imag;var c=Math.exp(a),r=c*Math.sin(-h),b=c*Math.cos(-h),c=Math.exp(-a);return{ctype:"number",value:{real:(b+c*Math.cos(h))/2,imag:(r+c*Math.sin(h))/2}}};l.sin=function(a){var h=a.value.real;a=a.value.imag;var c=Math.exp(a),r=c*Math.sin(-h),b=c*Math.cos(-h),c=Math.exp(-a);return{ctype:"number",value:{real:-(r-c*Math.sin(h))/2,imag:(b-c*Math.cos(h))/2}}};l.tan=function(a){var h=l.sin(a);a=l.cos(a);return l.div(h,a)};l.arccos=
-function(a){var h=l.mult(a,l.neg(a)),h=l.sqrt(l.add(l.real(1),h));a=l.add(l.mult(a,l.complex(0,1)),h);a=l.add(l.mult(l.log(a),l.complex(0,1)),l.real(.5*Math.PI));return w.withUsage(a,"Angle")};l.arcsin=function(a){var h=l.mult(a,l.neg(a)),h=l.sqrt(l.add(l.real(1),h));a=l.add(l.mult(a,l.complex(0,1)),h);a=l.mult(l.log(a),l.complex(0,-1));return w.withUsage(a,"Angle")};l.arctan=function(a){var h=l.log(l.add(l.mult(a,l.complex(0,-1)),l.real(1)));a=l.log(l.add(l.mult(a,l.complex(0,1)),l.real(1)));h=l.mult(l.sub(h,
-a),l.complex(0,.5));return w.withUsage(h,"Angle")};l.arctan2=function(a,h){var c;if(void 0===h)c=l.real(Math.atan2(a.value.imag,a.value.real));else if(l._helper.isReal(a)&&l._helper.isReal(h))c=l.real(Math.atan2(h.value.real,a.value.real));else{c=l.add(a,l.mult(l.complex(0,1),h));var r=l.sqrt(l.add(l.mult(a,a),l.mult(h,h)));c=l.mult(l.complex(0,-1),l.log(l.div(c,r)))}return w.withUsage(c,"Angle")};l.sqrt=function(a){var h=a.value.real,c=a.value.imag;a=Math.sqrt(Math.sqrt(h*h+c*c));h=Math.atan2(c,
-h);return{ctype:"number",value:{real:a*Math.cos(h/2),imag:a*Math.sin(h/2)}}};l.powRealExponent=function(a,h){var c=a.value.real,r=a.value.imag,b=Math.pow(Math.sqrt(c*c+r*r),h),c=Math.atan2(r,c);return{ctype:"number",value:{real:b*Math.cos(c*h),imag:b*Math.sin(c*h)}}};l.log=function(a){var h=a.value.real;a=a.value.imag;var c=Math.sqrt(h*h+a*a),r=Math.atan2(a,h);0>a&&(r+=2*Math.PI);0===a&&0>h&&(r=Math.PI);r>Math.PI&&(r-=2*Math.PI);return l.snap({ctype:"number",value:{real:Math.log(c),imag:r}})};l.pow=
-function(a,h){return l._helper.isZero(h)?l.one:l._helper.isZero(a)?l.zero:l._helper.isReal(h)?l.powRealExponent(a,h.value.real):l.exp(l.mult(l.log(a),h))};l.mod=function(a,h){var c=a.value.real,r=h.value.real,b=a.value.imag,d=h.value.imag,c=c-Math.floor(c/r)*r,b=b-Math.floor(b/d)*d;0===r&&(c=0);0===d&&(b=0);return l.snap({ctype:"number",value:{real:c,imag:b}})};l._helper.seed="NO";l._helper.seedrandom=function(a){a-=Math.floor(a);l._helper.seed=.8*a+.1};l._helper.rand=function(){if("NO"===l._helper.seed)return Math.random();
-var a=l._helper.seed,a=1E3*Math.sin(1E3*a),a=a-Math.floor(a);return l._helper.seed=a};l._helper.randnormal=function(){var a=l._helper.rand(),h=l._helper.rand();return Math.sqrt(-2*Math.log(a))*Math.cos(2*Math.PI*h)};l._helper.isEqual=function(a,h){return a.value.real===h.value.real&&a.value.imag===h.value.imag};l._helper.isLessThan=function(a,h){return a.value.real<h.value.real||a.value.real===h.value.real&&a.value.imag<h.value.imag};l._helper.compare=function(a,h){return l._helper.isLessThan(a,h)?
--1:l._helper.isEqual(a,h)?0:1};l._helper.isAlmostEqual=function(a,h,c){var r=l.eps;"undefined"!==typeof c&&(r=c);c=a.value.real-h.value.real;a=a.value.imag-h.value.imag;return c<r&&c>-r&&a<r&&a>-r};l._helper.isZero=function(a){return 0===a.value.real&&0===a.value.imag};l._helper.isAlmostZero=function(a){var h=a.value.real;a=a.value.imag;return h<l.eps&&h>-l.eps&&a<l.eps&&a>-l.eps};l._helper.isReal=function(a){return 0===a.value.imag};l._helper.isAlmostReal=function(a){a=a.value.imag;return a<l.epsbig&&
-a>-l.epsbig};l._helper.isNaN=function(a){return isNaN(a.value.real)||isNaN(a.value.imag)};l._helper.isFinite=function(a){return isFinite(a.value.real)&&isFinite(a.value.imag)};l._helper.isAlmostImag=function(a){a=a.value.real;return a<l.epsbig&&a>-l.epsbig};l._helper.z3a=l.complex(-.5,.5*Math.sqrt(3));l._helper.z3b=l.complex(-.5,-.5*Math.sqrt(3));l._helper.cub1={ctype:"list",value:[l.one,l.one,l.one]};l._helper.cub2={ctype:"list",value:[l._helper.z3a,l.one,l._helper.z3b]};l._helper.cub3={ctype:"list",
-value:[l._helper.z3b,l.one,l._helper.z3a]};l.solveCubic=function(a,h,c,r){a=l._helper.solveCubicHelper(a,h,c,r);return[g.scalproduct(l._helper.cub1,a),g.scalproduct(l._helper.cub2,a),g.scalproduct(l._helper.cub3,a)]};l._helper.solveCubicHelper=function(a,h,c,r){var b=a.value.real;a=a.value.imag;var d=h.value.real;h=h.value.imag;var e=c.value.real,f=c.value.imag,k=r.value.real,m=r.value.imag,n=b*e-a*f;c=b*f+a*e;r=4*n-(d*d-h*h);var p=4*c-2*d*h,q=b*d-a*h,t=b*h+a*d,v=r*e-p*f-18*(q*k-t*m),p=r*f+p*e-18*
-(q*m+t*k);r=27*(b*b-a*a);var u=54*a*b,w=r*k-u*m,x=r*m+u*k,z=d*d-h*h,y=2*d*h,A=z*d-y*h,B=z*h+y*d,C=w+4*A,u=x+4*B;r=27*(v*e-p*f+C*k-u*m);p=27*(v*f+p*e+C*m+u*k);C=Math.sqrt(Math.sqrt(r*r+p*p));u=Math.atan2(p,r);p=C*Math.sin(u/2);r=C*Math.cos(u/2);A=-2*A+9*(q*e-t*f)-w+(r*b-p*a);B=-2*B+9*(q*f+t*e)-x+(r*a+p*b);r=Math.exp(Math.log(Math.sqrt(A*A+B*B))/3);e=Math.atan2(B,A);u=r*Math.sin(e/3);p=r*Math.cos(e/3);r*=r;e*=2;n=2*z-6*n;c=2*y-6*c;y=-1.5874010519681996*(d*p-h*u);d=-1.5874010519681996*(d*u+h*p);h=1.2599210498948732*
-r*Math.cos(e/3);e=1.2599210498948732*r*Math.sin(e/3);r=4.762203155904599*(p*b-u*a);p=4.762203155904599*(p*a+u*b);b=r*r+p*p;u=(-n*p+c*r)/b;n=(n*r+c*p)/b;c=u;u=(-y*p+d*r)/b;y=(y*r+d*p)/b;d=u;u=(-h*p+e*r)/b;h=(h*r+e*p)/b;e=u;return g.turnIntoCSList([l.complex(n,c),l.complex(y,d),l.complex(h,e)])};var g={_helper:{},turnIntoCSList:function(a){return{ctype:"list",value:a}}};g.EMPTY=g.turnIntoCSList([]);g.asList=function(a){return"list"===a.ctype?a:"number"===a.ctype||"boolean"===a.ctype||"geo"===a.ctype?
-g.turnIntoCSList([a]):g.EMPTY};g.realVector=function(a){for(var h=[],c=0;c<a.length;c++)h[c]={ctype:"number",value:{real:a[c],imag:0}};return{ctype:"list",value:h}};g._helper.unitvector=function(a,h){var c=g.zerovector(a);c.value[Math.floor(h.value.real-1)]=l.real(1);return c};g.idMatrix=function(a){for(var h=g.zeromatrix(a,a),c=l.real(1),r=0;r<a.value.real;r++)h.value[r].value[r]=c;return h};g._helper.flippedidMatrix=function(a){for(var h=g.zeromatrix(a,a),c=l.real(1),r=0;r<a.value.real;r++)h.value[r].value[a.value.real-
-r-1]=c;return h};g.println=function(a){for(var h=[],c=0;c<a.value.length;c++)if("number"===a.value[c].ctype)h[c]=l.niceprint(a.value[c]);else if("list"===a.value[c].ctype)g.println(a.value[c]);else return k;"number"===a.value[0].ctype&&console.log(h)};g.matrix=function(a){return g.turnIntoCSList(a.map(g.turnIntoCSList))};g.realMatrix=function(a){for(var h=a.length,c=Array(h),r=0;r<h;r++)c[r]=g.realVector(a[r]);return g.turnIntoCSList(c)};g.ex=g.realVector([1,0,0]);g.ey=g.realVector([0,1,0]);g.ez=
-g.realVector([0,0,1]);g.linfty=g.realVector([0,0,1]);g.ii=g.turnIntoCSList([l.complex(1,0),l.complex(0,1),l.complex(0,0)]);g.jj=g.turnIntoCSList([l.complex(1,0),l.complex(0,-1),l.complex(0,0)]);g.fundDual=g.realMatrix([[1,0,0],[0,1,0],[0,0,0]]);g.fund=g.realMatrix([[0,0,0],[0,0,0],[0,0,1]]);g.sequence=function(a,h){for(var c=[],r=0,b=Math.round(a.value.real);b<Math.round(h.value.real)+1;b++)c[r]={ctype:"number",value:{real:b,imag:0}},r++;return{ctype:"list",value:c}};g.pairs=function(a){for(var h=
-[],c=0;c<a.value.length-1;c++)for(var r=c+1;r<a.value.length;r++)h.push({ctype:"list",value:[a.value[c],a.value[r]]});return{ctype:"list",value:h}};g.triples=function(a){for(var h=[],c=0;c<a.value.length-2;c++)for(var r=c+1;r<a.value.length-1;r++)for(var b=r+1;b<a.value.length;b++)h.push({ctype:"list",value:[a.value[c],a.value[r],a.value[b]]});return{ctype:"list",value:h}};g.cycle=function(a){for(var h=[],c=0;c<a.value.length-1;c++)h[c]={ctype:"list",value:[a.value[c],a.value[c+1]]};h.push({ctype:"list",
-value:[a.value[a.value.length-1],a.value[0]]});return{ctype:"list",value:h}};g.consecutive=function(a){for(var h=[],c=0;c<a.value.length-1;c++)h[c]={ctype:"list",value:[a.value[c],a.value[c+1]]};return{ctype:"list",value:h}};g.reverse=function(a){for(var h=Array(a.value.length),c=a.value.length-1,r=0;0<=c;c--,r++)h[r]=a.value[c];return{ctype:"list",value:h}};g.directproduct=function(a,h){for(var c=[],r=0;r<a.value.length;r++)for(var b=0;b<h.value.length;b++)c.push({ctype:"list",value:[a.value[r],
-h.value[b]]});return{ctype:"list",value:c}};g.concat=function(a,h){for(var c=[],r=0;r<a.value.length;r++)c.push(a.value[r]);for(r=0;r<h.value.length;r++)c.push(h.value[r]);return{ctype:"list",value:c}};g.prepend=function(a,h){var c=[];c[0]=a;for(var r=0;r<h.value.length;r++)c[r+1]=h.value[r];return{ctype:"list",value:c}};g.append=function(a,h){for(var c=[],r=0;r<a.value.length;r++)c[r]=a.value[r];c.push(h);return{ctype:"list",value:c}};g.contains=function(a,h){for(var c=0;c<a.value.length;c++)if(D.equals(a.value[c],
-h).value)return{ctype:"boolean",value:!0};return{ctype:"boolean",value:!1}};g.common=function(a,h){for(var c=[],r=0,b=0;b<a.value.length;b++){for(var d=!1,g=a.value[b],e=0;e<h.value.length;e++)d=d||D.equals(g,h.value[e]).value;d&&(c[r]=a.value[b],r++)}return{ctype:"list",value:c}};g.remove=function(a,h){for(var c=[],r=0,b=0;b<a.value.length;b++){for(var d=!1,g=a.value[b],e=0;e<h.value.length;e++)d=d||D.equals(g,h.value[e]).value;d||(c[r]=a.value[b],r++)}return{ctype:"list",value:c}};g.sort1=function(a){a=
-a.value.slice();a.sort(w.compare);return g.turnIntoCSList(a)};g._helper.isEqual=function(a,h){return g.equals(a,h).value};g._helper.isLessThan=function(a,h){for(var c=a.value.length,r=h.value.length,b=0;!(b>=c||b>=r)&&w.isEqual(a.value[b],h.value[b]);)b++;return b===c&&b<r?!0:b===r&&b<c||b===c&&b===r?!1:w.isLessThan(a.value[b],h.value[b])};g._helper.compare=function(a,h){return g._helper.isLessThan(a,h)?-1:g._helper.isEqual(a,h)?0:1};g.equals=function(a,h){if(a.value.length!==h.value.length)return{ctype:"boolean",
-value:!1};for(var c=!0,r=0;r<a.value.length;r++)var b=a.value[r],d=h.value[r],c="list"===b.ctype&&"list"===d.ctype?c&&g.equals(b,d).value:c&&pb([b,d],[]).value;return{ctype:"boolean",value:c}};g.almostequals=function(a,h){if(a.value.length!==h.value.length)return{ctype:"boolean",value:!1};for(var c=!0,r=0;r<a.value.length;r++)var b=a.value[r],d=h.value[r],c="list"===b.ctype&&"list"===d.ctype?c&&g.almostequals(b,d).value:c&&Yb([b,d],[]).value;return{ctype:"boolean",value:c}};g._helper.isAlmostReal=
-function(a){for(var h=!0,c=0;c<a.value.length;c++)var r=a.value[c],h="list"===r.ctype?h&&g._helper.isAlmostReal(r):h&&l._helper.isAlmostReal(r);return h};g._helper.isAlmostZero=function(a){for(var h=0;h<a.value.length;h++){var c=a.value[h];if("list"===c.ctype){if(!g._helper.isAlmostZero(c))return!1}else if(!l._helper.isAlmostZero(c))return!1}return!0};g._helper.isNaN=function(a){for(var h=!1,c=0;c<a.value.length;c++)var r=a.value[c],h="list"===r.ctype?h||g._helper.isNaN(r):h||l._helper.isNaN(r);return h};
-g.set=function(a){var h=[],c=0;a=a.value.slice();a.sort(w.compare);for(var r=0;r<a.length;r++)0!==r&&pb([h[h.length-1],a[r]],[]).value||(h[c]=a[r],c++);return{ctype:"list",value:h}};g.maxval=function(a){for(var h=l.zero,c=0;c<a.value.length;c++){var r=a.value[c];"number"===r.ctype&&(h=l.argmax(h,r));"list"===r.ctype&&(h=l.argmax(h,g.maxval(r)))}return h};g.maxIndex=function(a,h,c){var r=0;void 0!==c&&(r=c);c=r;for(var b=h(a.value[r]).value.real;r<a.value.length;++r){var d=h(a.value[r]).value.real;
-d>b&&(c=r,b=d)}return c};g.normalizeMax=function(a){var h=l.inv(g.maxval(a));return l._helper.isFinite(h)?g.scalmult(h,a):a};g.normalizeZ=function(a){var h=l.inv(a.value[2]);return g.scalmult(h,a)};g.dehom=function(a){a=a.value.slice();var h=a.length-1,c=l.inv(a[h]);a.length=h;for(var r=0;r<h;++r)a[r]=l.mult(c,a[r]);return g.turnIntoCSList(a)};g.normalizeAbs=function(a){var h=l.inv(g.abs(a));return g.scalmult(h,a)};g.max=function(a,h){if(a.value.length!==h.value.length)return k;for(var c=[],r=0;r<
-a.value.length;r++)c[r]=w.max(a.value[r],h.value[r]);return{ctype:"list",value:c}};g.min=function(a,h){if(a.value.length!==h.value.length)return k;for(var c=[],r=0;r<a.value.length;r++)c[r]=w.min(a.value[r],h.value[r]);return{ctype:"list",value:c}};g.scaldiv=function(a,h){if("number"!==a.ctype)return k;for(var c=[],r=0;r<h.value.length;r++){var b=h.value[r];c[r]="number"===b.ctype?w.div(b,a):"list"===b.ctype?g.scaldiv(a,b):k}return{ctype:"list",value:c}};g.scalmult=function(a,h){if("number"!==a.ctype)return k;
-for(var c=[],r=0;r<h.value.length;r++){var b=h.value[r];c[r]="number"===b.ctype?w.mult(b,a):"list"===b.ctype?g.scalmult(a,b):k}return{ctype:"list",value:c}};g.add=function(a,h){if(a.value.length!==h.value.length)return k;for(var c=[],r=0;r<a.value.length;r++){var b=a.value[r],d=h.value[r];c[r]="number"===b.ctype&&"number"===d.ctype?w.add(b,d):"list"===b.ctype&&"list"===d.ctype?g.add(b,d):k}return{ctype:"list",value:c}};g.sub=function(a,h){if(a.value.length!==h.value.length)return k;for(var c=[],r=
-0;r<a.value.length;r++){var b=a.value[r],d=h.value[r];c[r]="number"===b.ctype&&"number"===d.ctype?l.sub(b,d):"list"===b.ctype&&"list"===d.ctype?g.sub(b,d):k}return{ctype:"list",value:c}};g.abs2=function(a){for(var h=0,c=0;c<a.value.length;c++){var r=a.value[c];if("number"===r.ctype)h+=l.abs2(r).value.real;else if("list"===r.ctype)h+=g.abs2(r).value.real;else return k}return{ctype:"number",value:{real:h,imag:0}}};g.abs=function(a){return l.sqrt(g.abs2(a))};g.normalizeMaxXX=function(a){for(var h=-1E4,
-c=l.real(1),r=0;r<a.value.length;r++){var b=l.abs(a.value[r]);b.value.real>h&&(c=a.value[r],h=b.value.real)}return g.scaldiv(c,a)};g.recursive=function(a,h){for(var c=[],r=0;r<a.value.length;r++){var b=B(a.value[r]);c[r]="number"===b.ctype?l[h](b):"list"===b.ctype?g[h](b):k}return{ctype:"list",value:c}};g.re=function(a){return g.recursive(a,"re")};g.neg=function(a){return g.recursive(a,"neg")};g.im=function(a){return g.recursive(a,"im")};g.conjugate=function(a){return g.recursive(a,"conjugate")};
-g.transjugate=function(a){return g.transpose(g.conjugate(a))};g.round=function(a){return g.recursive(a,"round")};g.ceil=function(a){return g.recursive(a,"ceil")};g.floor=function(a){return g.recursive(a,"floor")};g._helper.colNumb=function(a){if("list"!==a.ctype)return-1;for(var h=-1,c=0;c<a.value.length;c++){if("list"!==a.value[c].ctype)return-1;if(0===c)h=a.value[c].value.length;else if(h!==a.value[c].value.length)return-1}return h};g._helper.isNumberVecN=function(a,h){if("list"!==a.ctype||a.value.length!==
-h)return!1;for(var c=0;c<a.value.length;c++)if("number"!==a.value[c].ctype)return!1;return!0};g.isNumberVector=function(a){if("list"!==a.ctype)return{ctype:"boolean",value:!1};for(var h=0;h<a.value.length;h++)if("number"!==a.value[h].ctype)return{ctype:"boolean",value:!1};return{ctype:"boolean",value:!0}};g.isNumberVectorN=function(a,h){if("list"!==a.ctype)return{ctype:"boolean",value:!1};if(a.value)for(var c=0;c<a.value.length;c++)if("number"!==a.value[c].ctype)return{ctype:"boolean",value:!1};return{ctype:"boolean",
-value:!0}};g.isNumberMatrix=function(a){if(-1===g._helper.colNumb(a))return{ctype:"boolean",value:!1};for(var h=0;h<a.value.length;h++)if(!g.isNumberVector(a.value[h]).value)return{ctype:"boolean",value:!1};return{ctype:"boolean",value:!0}};g._helper.isNumberMatrixMN=function(a,h,c){return g.isNumberMatrix(a).value&&a.value.length===h&&a.value[0].value.length===c};g.scalproduct=function(a,h){if(a.value.length!==h.value.length)return k;for(var c={ctype:"number",value:{real:0,imag:0}},r=0;r<h.value.length;r++){var b=
-a.value[r],d=h.value[r];if("number"===b.ctype&&"number"===d.ctype)c=l.add(l.mult(b,d),c);else return k}return c};g.sesquilinearproduct=function(a,h){if(a.value.length!==h.value.length)return k;for(var c=0,r=0,b=0;b<h.value.length;b++)var d=a.value[b].value,g=h.value[b].value,c=c+(d.real*g.real+d.imag*g.imag),r=r+(d.real*g.imag-d.imag*g.real);return l.complex(c,r)};g.normSquared=function(a){for(var h=0,c=0;c<a.value.length;c++)var r=a.value[c].value,h=h+(r.real*r.real+r.imag*r.imag);return l.real(h)};
-g.productMV=function(a,h){if(a.value[0].value.length!==h.value.length)return k;for(var c=[],r=0;r<a.value.length;r++){for(var b={ctype:"number",value:{real:0,imag:0}},d=a.value[r],e=0;e<h.value.length;e++){var f=d.value[e],m=h.value[e];if("number"===f.ctype&&"number"===m.ctype)b=l.add(l.mult(f,m),b);else return k}c[r]=b}return g.turnIntoCSList(c)};g.productVM=function(a,h){if(a.value.length!==h.value.length)return k;for(var c=[],b=0;b<h.value[0].value.length;b++){for(var d={ctype:"number",value:{real:0,
-imag:0}},e=0;e<a.value.length;e++){var f=a.value[e],m=h.value[e].value[b];if("number"===f.ctype&&"number"===m.ctype)d=l.add(l.mult(f,m),d);else return k}c[b]=d}return g.turnIntoCSList(c)};g.productMM=function(a,h){if(a.value[0].value.length!==h.value.length)return k;for(var c=[],b=0;b<a.value.length;b++){var d=g.productVM(a.value[b],h);c[b]=d}return g.turnIntoCSList(c)};g.mult=function(a,h){return a.value.length===h.value.length&&g.isNumberVector(a).value&&g.isNumberVector(h).value?g.scalproduct(a,
-h):g.isNumberMatrix(a).value&&h.value.length===a.value[0].value.length&&g.isNumberVector(h).value?g.productMV(a,h):g.isNumberMatrix(h).value&&a.value.length===h.value.length&&g.isNumberVector(a).value?g.productVM(a,h):g.isNumberMatrix(a).value&&g.isNumberMatrix(h).value&&h.value.length===a.value[0].value.length?g.productMM(a,h):k};g.projectiveDistMinScal=function(a,h){var c=g.abs(a),b=g.abs(h);if(0===c.value.real||0===b.value.real)return 0;var d=g.conjugate(h),d=g.scalproduct(a,d),d=l._helper.isAlmostZero(d)?
-l.real(1):l.div(d,l.abs(d)),c=g.scaldiv(c,a),b=g.scaldiv(b,h),b=g.scalmult(d,b),d=g.abs(g.add(c,b)),b=g.abs(g.sub(c,b));return Math.min(d.value.real,b.value.real)};g.conicDist=function(a,h){var c=v(a),b=v(h);console.log(ba(c),ba(b));return g.projectiveDistMinScal(c,b)};g.crossOperator=function(a){var h=a.value[0],c=a.value[1];a=a.value[2];return g.turnIntoCSList([g.turnIntoCSList([l.zero,l.neg(a),c]),g.turnIntoCSList([a,l.zero,l.neg(h)]),g.turnIntoCSList([l.neg(c),h,l.zero])])};g.cross=function(a,
-h){var c=l.sub(l.mult(a.value[1],h.value[2]),l.mult(a.value[2],h.value[1])),b=l.sub(l.mult(a.value[2],h.value[0]),l.mult(a.value[0],h.value[2])),d=l.sub(l.mult(a.value[0],h.value[1]),l.mult(a.value[1],h.value[0]));return g.turnIntoCSList([c,b,d])};g.crossratio3harm=function(a,h,c,b,d){var e=g.det3(a,c,d),f=g.det3(h,b,d);a=g.det3(a,b,d);h=g.det3(h,c,d);e=l.mult(e,f);f=l.mult(a,h);return g.turnIntoCSList([e,f])};g.crossratio3=function(a,h,c,b,d){a=g.crossratio3harm(a,h,c,b,d);return l.div(a.value[0],
-a.value[1])};g.veronese=function(a){var h=l.mult(a.value[0],a.value[0]),c=l.mult(a.value[1],a.value[1]),b=l.mult(a.value[2],a.value[2]),d=l.mult(a.value[0],a.value[1]),e=l.mult(a.value[0],a.value[2]);a=l.mult(a.value[1],a.value[2]);return g.turnIntoSCList([h,c,b,d,e,a])};g.matrixFromVeronese=function(a){var h=a.value[0],c=a.value[1],b=a.value[2],d=l.realmult(.5,a.value[3]),e=l.realmult(.5,a.value[4]);a=l.realmult(.5,a.value[5]);return g.turnIntoCSList([g.turnIntoCSList([h,d,e]),g.turnIntoCSList([d,
-c,a]),g.turnIntoCSList([e,a,b])])};g.det2=function(a,h){var c=l.mult(a.value[0],h.value[1]);return c=l.sub(c,l.mult(a.value[1],h.value[0]))};g.det3=function(a,h,c){return l.complex(a.value[0].value.real*h.value[1].value.real*c.value[2].value.real-a.value[0].value.imag*h.value[1].value.imag*c.value[2].value.real-a.value[0].value.imag*h.value[1].value.real*c.value[2].value.imag-a.value[0].value.real*h.value[1].value.imag*c.value[2].value.imag+a.value[2].value.real*h.value[0].value.real*c.value[1].value.real-
-a.value[2].value.imag*h.value[0].value.imag*c.value[1].value.real-a.value[2].value.imag*h.value[0].value.real*c.value[1].value.imag-a.value[2].value.real*h.value[0].value.imag*c.value[1].value.imag+a.value[1].value.real*h.value[2].value.real*c.value[0].value.real-a.value[1].value.imag*h.value[2].value.imag*c.value[0].value.real-a.value[1].value.imag*h.value[2].value.real*c.value[0].value.imag-a.value[1].value.real*h.value[2].value.imag*c.value[0].value.imag-a.value[0].value.real*h.value[2].value.real*
-c.value[1].value.real+a.value[0].value.imag*h.value[2].value.imag*c.value[1].value.real+a.value[0].value.imag*h.value[2].value.real*c.value[1].value.imag+a.value[0].value.real*h.value[2].value.imag*c.value[1].value.imag-a.value[2].value.real*h.value[1].value.real*c.value[0].value.real+a.value[2].value.imag*h.value[1].value.imag*c.value[0].value.real+a.value[2].value.imag*h.value[1].value.real*c.value[0].value.imag+a.value[2].value.real*h.value[1].value.imag*c.value[0].value.imag-a.value[1].value.real*
-h.value[0].value.real*c.value[2].value.real+a.value[1].value.imag*h.value[0].value.imag*c.value[2].value.real+a.value[1].value.imag*h.value[0].value.real*c.value[2].value.imag+a.value[1].value.real*h.value[0].value.imag*c.value[2].value.imag,-a.value[0].value.imag*h.value[1].value.imag*c.value[2].value.imag+a.value[0].value.imag*h.value[1].value.real*c.value[2].value.real+a.value[0].value.real*h.value[1].value.real*c.value[2].value.imag+a.value[0].value.real*h.value[1].value.imag*c.value[2].value.real-
-a.value[2].value.imag*h.value[0].value.imag*c.value[1].value.imag+a.value[2].value.imag*h.value[0].value.real*c.value[1].value.real+a.value[2].value.real*h.value[0].value.real*c.value[1].value.imag+a.value[2].value.real*h.value[0].value.imag*c.value[1].value.real-a.value[1].value.imag*h.value[2].value.imag*c.value[0].value.imag+a.value[1].value.imag*h.value[2].value.real*c.value[0].value.real+a.value[1].value.real*h.value[2].value.real*c.value[0].value.imag+a.value[1].value.real*h.value[2].value.imag*
-c.value[0].value.real+a.value[0].value.imag*h.value[2].value.imag*c.value[1].value.imag-a.value[0].value.imag*h.value[2].value.real*c.value[1].value.real-a.value[0].value.real*h.value[2].value.real*c.value[1].value.imag-a.value[0].value.real*h.value[2].value.imag*c.value[1].value.real+a.value[2].value.imag*h.value[1].value.imag*c.value[0].value.imag-a.value[2].value.imag*h.value[1].value.real*c.value[0].value.real-a.value[2].value.real*h.value[1].value.real*c.value[0].value.imag-a.value[2].value.real*
-h.value[1].value.imag*c.value[0].value.real+a.value[1].value.imag*h.value[0].value.imag*c.value[2].value.imag-a.value[1].value.imag*h.value[0].value.real*c.value[2].value.real-a.value[1].value.real*h.value[0].value.real*c.value[2].value.imag-a.value[1].value.real*h.value[0].value.imag*c.value[2].value.real)};g.det4m=function(a){var h=a.value,c=h[0].value,b=c[0].value,d=+b.real,g=+b.imag,b=c[1].value,e=+b.real,f=+b.imag,b=c[2].value,k=+b.real,m=+b.imag,b=c[3].value,n=+b.real,p=+b.imag,c=h[1].value,
-b=c[0].value,q=+b.real,t=+b.imag,b=c[1].value,u=+b.real,v=+b.imag,b=c[2].value,w=+b.real,x=+b.imag,b=c[3].value,c=+b.real,b=+b.imag;a=d*u-g*v-e*q+f*t;var y=d*v+g*u-e*t-f*q,z=d*w-g*x-k*q+m*t,A=d*x+g*w-k*t-m*q,B=d*c-g*b-n*q+p*t,C=d*b+g*c-n*t-p*q,D=e*w-f*x-k*u+m*v,E=e*x+f*w-k*v-m*u,F=e*c-f*b-n*u+p*v,G=e*b+f*c-n*v-p*u,H=k*c-m*b-n*w+p*x,L=k*b+m*c-n*x-p*w,c=h[2].value,b=c[0].value,d=+b.real,g=+b.imag,b=c[1].value,e=+b.real,f=+b.imag,b=c[2].value,k=+b.real,m=+b.imag,b=c[3].value,n=+b.real,p=+b.imag,c=h[3].value,
-b=c[0].value,q=+b.real,t=+b.imag,b=c[1].value,u=+b.real,v=+b.imag,b=c[2].value,w=+b.real,x=+b.imag,b=c[3].value,c=+b.real,b=+b.imag,h=d*u-g*v-e*q+f*t,J=d*v+g*u-e*t-f*q,I=d*w-g*x-k*q+m*t,K=d*x+g*w-k*t-m*q,M=d*c-g*b-n*q+p*t,d=d*b+g*c-n*t-p*q,g=e*w-f*x-k*u+m*v,q=e*x+f*w-k*v-m*u,t=e*c-f*b-n*u+p*v,e=e*b+f*c-n*v-p*u,f=k*c-m*b-n*w+p*x,k=k*b+m*c-n*x-p*w;return l.complex(a*f-y*k-z*t+A*e+B*g-C*q+D*M-E*d-F*I+G*K+H*h-L*J,a*k+y*f-z*e-A*t+B*q+C*g+D*d+E*M-F*K-G*I+H*J+L*h)};g.eucangle=function(a,h){var c=g.cross(a,
-g.linfty),b=g.cross(h,g.linfty),d=g.det3(g.ez,c,g.ii),c=g.det3(g.ez,c,g.jj),e=g.det3(g.ez,b,g.ii),b=g.det3(g.ez,b,g.jj),d=l.div(l.mult(d,b),l.mult(e,c)),d=l.log(d);return d=l.mult(d,l.complex(0,.5))};g.zerovector=function(a){a=Math.floor(a.value.real);for(var h=Array(a),c=0;c<a;c++)h[c]=0;return g.realVector(h)};g.zeromatrix=function(a,h){for(var c=Math.floor(a.value.real),b=Array(c),d=0;d<c;d++)b[d]=g.zerovector(h);return g.turnIntoCSList(b)};g.vandermonde=function(a){for(var h=a.value.length,c=
-g.zeromatrix(h,h),b=0;b<h;b++)for(var d=0;d<h;d++)c.value[b].value[d]=l.pow(a.value[b],l.real(d-1));return c};g.transpose=function(a){for(var h=[],c=a.value[0].value.length,b=a.value.length,d=0;d<c;d++){for(var e=[],f=0;f<b;f++)e[f]=a.value[f].value[d];h[d]=g.turnIntoCSList(e)}return g.turnIntoCSList(h)};g.column=function(a,h){for(var c=[],b=a.value.length,d=Math.floor(h.value.real-1),e=0;e<b;e++)c[e]=a.value[e].value[d];return g.turnIntoCSList(c)};g.row=function(a,h){for(var c=[],b=a.value[0].value.length,
-d=Math.floor(h.value.real-1),e=0;e<b;e++)c[e]=a.value[d].value[e];return g.turnIntoCSList(c)};g.adjoint2=function(a){var h=a.value[0].value[0],c=a.value[1].value[0],b=Array(2);b[0]=g.turnIntoCSList([a.value[1].value[1],l.neg(a.value[0].value[1])]);b[1]=g.turnIntoCSList([l.neg(c),h]);return b=g.turnIntoCSList(b)};g.adjoint3=function(a){var h,c,b,d,g,e,f,k,l,m,n,p,q,t,u,v,w;h=a.value[0].value;c=h[0].value;b=c.real;d=c.imag;c=h[1].value;g=c.real;e=c.imag;c=h[2].value;f=c.real;k=c.imag;h=a.value[1].value;
-c=h[0].value;l=c.real;m=c.imag;c=h[1].value;n=c.real;p=c.imag;c=h[2].value;q=c.real;t=c.imag;h=a.value[2].value;c=h[0].value;a=c.real;u=c.imag;c=h[1].value;v=c.real;w=c.imag;c=h[2].value;h=c.real;c=c.imag;return{ctype:"list",value:[{ctype:"list",value:[{ctype:"number",value:{real:n*h-q*v-p*c+t*w,imag:n*c-q*w-v*t+h*p}},{ctype:"number",value:{real:-g*h+f*v+e*c-k*w,imag:-g*c+f*w+v*k-h*e}},{ctype:"number",value:{real:g*q-f*n-e*t+k*p,imag:g*t-f*p-n*k+q*e}}]},{ctype:"list",value:[{ctype:"number",value:{real:-l*
-h+q*a+m*c-t*u,imag:-l*c+q*u+a*t-h*m}},{ctype:"number",value:{real:b*h-f*a-d*c+k*u,imag:b*c-f*u-a*k+h*d}},{ctype:"number",value:{real:-b*q+f*l+d*t-k*m,imag:-b*t+f*m+l*k-q*d}}]},{ctype:"list",value:[{ctype:"number",value:{real:l*v-n*a-m*w+p*u,imag:l*w-n*u-a*p+v*m}},{ctype:"number",value:{real:-b*v+g*a+d*w-e*u,imag:-b*w+g*u+a*e-v*d}},{ctype:"number",value:{real:b*n-g*l-d*p+e*m,imag:b*p-g*m-l*e+n*d}}]}]}};g.inverse=function(a){var h=a.value.length;if(h!==a.value[0].value.length)return console.log("Inverse works only for square matrices"),
-k;if(2===h)return g.scaldiv(g.det(a),g.adjoint2(a));if(3===h)return g.scaldiv(g.det(a),g.adjoint3(a));h=g.LUdecomp(a);a=a.value.length;var c=l.real(0),b=l.real(1),d=g.zerovector(l.real(a));d.value[0]=b;for(var e=Array(a),f=0;f<a;f++)e[f]=g._helper.LUsolve(h,d),d.value[f]=c,d.value[f+1]=b;e=g.turnIntoCSList(e);return e=g.transpose(e)};g.linearsolve=function(a,h){return 2===a.value.length?g.linearsolveCramer2(a,h):3===a.value.length?g.linearsolveCramer3(a,h):g.LUsolve(a,h)};g.getDiag=function(a){if(a.value.length!==
-a.value[0].value.length)return k;for(var h=Array(a.value.length),c=0;c<a.value.length;c++)h[c]=a.value[c].value[c];return g.turnIntoCSList(h)};g.getSubDiag=function(a){if(a.value.length!==a.value[0].value.length)return k;for(var h=Array(a.value.length-1),c=0;c<a.value.length-1;c++)h[c]=a.value[c+1].value[c];return g.turnIntoCSList(h)};g.eig2=function(a){var h=l.add(a.value[0].value[0],a.value[1].value[1]);a=g.det2(a.value[0],a.value[1]);var c=l.mult(h,h),b=h=l.mult(h,l.real(.5));a=l.sqrt(l.sub(l.div(c,
-l.real(4)),a));h=l.add(h,a);b=l.sub(b,a);return g.turnIntoCSList([h,b])};g.eig=function(a,h){var c=h||!0,b=a,d=l.real(b.value.length),e=d.value.real;l.real(0);var b=g._helper.QRIteration(b)[0],b=g.getDiag(b),b=g.sort1(b),d=g.idMatrix(d,d),f=Array(e),f=g.turnIntoCSList(f);if(c){for(var k,m,n,p=0,q=!1,c=0;c<e;c++)q?m=k.value[p]:(k=b.value[c],k=g.sub(a,g.scalmult(k,d)),k=g.nullSpace(k),m=k.value[0],void 0!==m&&(n=m)),void 0===m&&(m=n),1E-8>g.abs(m).value.real&&0===p&&(m=g._helper.inverseIteration(a,
-b.value[c])),f.value[c]=g._helper.isAlmostZeroVec(m)?m:g.scaldiv(g.abs(m),m),c<e-1&&((q=1E-6>l.abs(l.sub(b.value[c],b.value[c+1])).value.real)?p++:p=0);f=g.transpose(f)}return g.turnIntoCSList([b,f])};g._helper.isNormalMatrix=function(a){return 1E-10>g.abs(g.sub(a,g.transjugate(a))).value.real};g._helper.QRIteration=function(a,h){var c,b=a;c=l.real(b.value.length);var d=c.value.real,e=c.value.real;l.real(0);var f;g.idMatrix(c,c);var k=g.zeromatrix(c,c),m=g.idMatrix(c,c),n=h?h:2500,p,q,t,u=0,v=Array(e);
-for(c=0;c<n;c++){f=g._helper.getBlock(b,[e-2,e-1],[e-2,e-1]);p=g.eig2(f);f=p.value[0];p=p.value[1];g.abs(f);g.abs(p);q=b.value[e-1].value[e-1];t=l.abs(l.sub(q,f)).value.real;q=l.abs(l.sub(q,p)).value.real;p=t<q?f:p;f=g.idMatrix(l.real(e),l.real(e));p=g.scalmult(p,f);f=g.QRdecomp(g.sub(b,p));b=w.mult(f.R,f.Q);b=g.add(b,p);f.Q=g._helper.buildBlockMatrix(f.Q,g.idMatrix(l.real(u),l.real(u)));m=w.mult(m,f.Q);if(1E-48>l.abs2(b.value[b.value.length-1].value[b.value[0].value.length-2]).value.real&&1<e){v[d-
-u-1]=b.value[e-1].value[e-1];for(c=0;c<e;c++)k.value[e-1].value[c]=b.value[e-1].value[c],k.value[c].value[e-1]=b.value[c].value[e-1];b=g._helper.getBlock(b,[0,e-2],[0,e-2]);u++;e--}if(1===e){k.value[0].value[0]=b.value[0].value[0];break}if(g._helper.isUpperTriangular(b)){for(c=0;c<e;c++)k.value[c].value[c]=b.value[c].value[c];break}}return[k,m]};g.rank=function(a,h){return g.RRQRdecomp(a,h).rank};g._helper.isAlmostZeroVec=function(a){for(var h=a.value.length,c=0;c<h;c++)if(!l._helper.isAlmostZero(a.value[c]))return!1;
-return!0};g._helper.isLowerTriangular=function(a){for(var h=a.value.length,c=a.value[0].value.length,b=0;b<h;b++)for(var d=b+1;d<c;d++)if(!l._helper.isAlmostZero(a.value[b].value[d]))return!1;return!0};g._helper.isUpperTriangular=function(a){return g._helper.isLowerTriangular(g.transpose(a))};g._helper.isAlmostId=function(a){var h=a.value.length,c=l.real(h);if(h!==a.value[0].value.length)return!1;a=g.sub(a,g.idMatrix(c),c);for(c=0;c<h;c++)for(var b=0;b<h;b++)if(1E-16<l.abs(a.value[c].value[b]).value.real)return!1;
-return!0};g.nullSpace=function(a,h){var c=a.value.length,b=g.RRQRdecomp(g.transjugate(a),h),d=g.transpose(b.Q),b=c-b.rank.value.real,e=Array(b);d.value.reverse();for(var f,k=0;k<b;k++)f=d.value[k],e[k]=g.scaldiv(g.abs(f),f);e=g.turnIntoCSList(e);return 0<e.value.length?e:g.turnIntoCSList([g.zerovector(l.real(c))])};g._helper.isAlmostDiagonal=function(a){var h=a.value.length;l.real(h);l.real(0);if(h!==a.value[0].value.length)return!1;for(var c=0;c<h;c++)for(var b=0;b<h;b++)if(c!==b&&1E-16<l.abs(a.value[c].value[b]).value.real)return!1;
-return!0};g._helper.inverseIteration=function(a,h){console.log("warning: code untested");for(var c=a.value.length,b=Array(c),d=0;d<c;d++)b[d]=2*Math.random()-.5;for(var b=g.realVector(b),c=g.idMatrix(l.real(c),l.real(c)),d=l.add(h,l.real(.1*Math.random()-.5)),e=0;100>e;e++)b=g.scaldiv(g.abs(b),b),b=g.LUsolve(g.sub(a,g.scalmult(d,c)),JSON.parse(JSON.stringify(b)));return g.scaldiv(g.abs(b),b)};g._helper.toHessenberg=function(a){var h=JSON.parse(JSON.stringify(a)),c=h.value.length,b=l.real(c-1),d=l.real(c);
-l.real(1);if(g._helper.isUpperTriangular(h))return[g.idMatrix(b,b),a];var e;a=g.idMatrix(d,d);for(var f,d=1;d<c-1;d++)e=g.column(h,l.real(d)),e.value=e.value.splice(d),f=g.abs2(e).value.real,1E-16<f&&(e=g._helper.getHouseHolder(e),a=w.mult(a,e),h=w.mult(w.mult(e,h),e)),b.value.real--;return[a,h]};g._helper.swapEl=function(a,h,c){var b;"[object Array]"===Object.prototype.toString.call(a)?(b=a[h],a[h]=a[c],a[c]=b):"list"===a.ctype&&(b=a.value[h],a.value[h]=a.value[c],a.value[c]=b)};g.RRQRdecomp=function(a,
-h){var c=Math.sqrt(l.eps);void 0!==h&&(c=.1*h.value.real);var c=c*c,b,d=a.value.length,e=l.real(d),f=l.real(1),k=g._helper.unitvector(l.real(a.value.length),f),m=g.idMatrix(e,e),n=JSON.parse(JSON.stringify(a)),p=g.transpose(a),q=Array(d);for(b=0;b<d;b++)q[b]=g.abs2(p.value[b]);q=g.turnIntoCSList(q);p=Array(d);for(b=0;b<d;b++)p[b]=b;b=g.maxIndex(q,l.abs);for(var t=q.value[b],u=0,v=0;1E-16<l.abs2(t).value.real;v++){u++;g._helper.swapColumn(n,v,b);g._helper.swapEl(q,v,b);g._helper.swapEl(p,v,b);b=g._helper.getBlock(n,
-[v],[v]);b=g.column(b,f);t=g.abs2(b).value.real;1E-8<t&&(b=g._helper.getHouseHolder(b),b=g._helper.buildBlockMatrix(g.idMatrix(l.real(v),l.real(v)),b),m=w.mult(m,g.transjugate(b)),n=w.mult(b,n));for(b=v+1;b<d;b++)q.value[b]=l.sub(q.value[b],l.mult(n.value[v].value[b],l.conjugate(n.value[v].value[b])));b=g.maxIndex(q,l.abs2,v+1);t=q.value[b];if(v+2===d){l.abs(t).value.real>c&&u++;break}e=l.sub(e,f);k.value=k.value.splice(0,k.value.length-1)}return{Q:m,R:n,P:g.turnIntoCSList(p),rank:l.real(u)}};g._helper.getHouseHolder=
-function(a){var h=l.real(a.value.length);if(1E-16>g.abs2(a))return g.idMatrix(h,h);var c,b=l.real(1),d=g._helper.unitvector(l.real(a.value.length),b);c=g._helper.QRgetAlpha(a,0);c=g.sub(a,g.scalmult(c,d));c=g.scaldiv(g.abs(c),c);a=l.div(g.sesquilinearproduct(a,c),g.sesquilinearproduct(c,a));h=g.idMatrix(h,h);return h=g.sub(h,g.scalmult(l.add(b,a),g._helper.transposeMult(c,g.conjugate(c))))};g._helper.reOrderbyPivots=function(a,h){for(var c=a.value.length.length,b=g.transpose(a),c=Array(c),d=0;d<h.length;d++)c[h[d]]=
-b.value[d];c=g.turnIntoCSList(c);return g.transpose(c)};g.QRdecomp=function(a){var h,c=a.value.length,b=l.real(c);if(g._helper.isUpperTriangular(a))return{Q:g.idMatrix(b,b),R:a};var d=l.real(1),e=g._helper.unitvector(l.real(a.value.length),d),f,k=g.idMatrix(b,b);a=JSON.parse(JSON.stringify(a));for(var m=0;;m++){h=g._helper.getBlock(a,[m],[m]);h=g.column(h,d);f=g.abs2(h).value.real;1E-8<f&&(h=g._helper.getHouseHolder(h),h=g._helper.buildBlockMatrix(g.idMatrix(l.real(m),l.real(m)),h),k=w.mult(k,g.transjugate(h)),
-a=w.mult(h,a));if(m+2===c)break;b=l.sub(b,d);e.value=e.value.splice(0,e.value.length-1)}return{Q:k,R:a}};g._helper.swapColumn=function(a,h,c){for(var b,d=0;d<a.value.length;d++)b=a.value[d].value[h],a.value[d].value[h]=a.value[d].value[c],a.value[d].value[c]=b};g._helper.buildBlockMatrix=function(a,h){if(0===a.value.length)return h;if(0===h.value.length)return a;for(var c=a.value.length,b=a.value[0].value.length,d=b+h.value[0].value.length,d=g.zeromatrix(l.real(c+h.value.length),l.real(d)),e=0;e<
-a.value.length;e++)for(var f=0;f<a.value[0].value.length;f++)d.value[e].value[f]=a.value[e].value[f];for(e=0;e<h.value.length;e++)for(f=0;f<h.value[0].value.length;f++)d.value[c+e].value[b+f]=h.value[e].value[f];return d};g._helper.getBlock=function(a,h,c){a=JSON.parse(JSON.stringify(a));var b=h[0],d=c[0];h=void 0===h[1]?a.value.length:h[1];c=void 0===c[1]?a.value[0].value.length:c[1];h++;c++;a.value=a.value.slice(b,h);for(b=0;b<a.value.length;b++)a.value[b].value=a.value[b].value.slice(d,c);return a};
-g._helper.setBlock=function(a,h,c){a=JSON.parse(JSON.stringify(a));var b=c[0];c=c[1];for(var d=h.value.length,g=h.value[0].value.length,e=0;e<d;e++)for(var f=0;f<g;f++)a.value[b+e].value[c+f]=h.value[e].value[f];return a};g._helper.transposeMult=function(a,h){if(a.value.length!==h.value.length)return k;for(var c=a.value.length,b=Array(c),d=0;d<c;d++)b[d]=g.scalmult(a.value[d],h);return g.turnIntoCSList(b)};g._helper.QRgetAlpha=function(a,h){return 0>a.value[h].value.real?g.abs(a):l.neg(g.abs(a))};
-g.LUdecomp=function(a){a=JSON.parse(JSON.stringify(a));var h,c,b,d,g,e=0,f,k=a.value.length,m=k-1,n=Array(k);for(b=0;b<k;++b){g=b;d=a.value[b];f=l.abs(d.value[b]).value.real;for(c=b+1;c<k;++c)h=l.abs(a.value[c].value[b]),f<h.value.real&&(f=h.value.real,g=c);f<l.eps&&console.log("Warning: singular matrix!");n[b]=g;g!==b&&(a.value[b]=a.value[g],a.value[g]=d,d=a.value[b],e++);c=d.value[b];for(h=b+1;h<k;++h)a.value[h].value[b]=l.div(a.value[h].value[b],c);for(h=b+1;h<k;++h){g=a.value[h];for(c=b+1;c<m;++c)g.value[c]=
-l.sub(g.value[c],l.mult(g.value[b],d.value[c])),++c,g.value[c]=l.sub(g.value[c],l.mult(g.value[b],d.value[c]));c===m&&(g.value[c]=l.sub(g.value[c],l.mult(g.value[b],d.value[c])))}}return{LU:a,P:n,TransPos:e}};g.LUsolve=function(a,h){var c=g.LUdecomp(a);return g._helper.LUsolve(c,h)};g._helper.LUsolve=function(a,h){var c=JSON.parse(JSON.stringify(h)),b,d=a.LU,g=d.value.length,e=JSON.parse(JSON.stringify(c)),f=a.P,k;for(b=g-1;-1!==b;--b)e.value[b]=c.value[b];for(b=0;b<g;++b)for(c=f[b],f[b]!==b&&(k=
-e.value[b],e.value[b]=e.value[c],e.value[c]=k),k=d.value[b],c=0;c<b;++c)e.value[b]=l.sub(e.value[b],l.mult(e.value[c],k.value[c]));for(b=g-1;0<=b;--b){k=d.value[b];for(c=b+1;c<g;++c)e.value[b]=l.sub(e.value[b],l.mult(e.value[c],k.value[c]));e.value[b]=l.div(e.value[b],k.value[b])}return e};g.linearsolveCramer2=function(a,h){var c=g.column(a,l.real(1)),b=g.column(a,l.real(2)),d=g.det2(c,b);l._helper.isZero(d)&&console.log("A is not regular!");b=g.det2(h,b);b=l.div(b,d);c=g.det2(c,h);c=l.div(c,d);return g.turnIntoCSList([b,
-c])};g.linearsolveCramer3=function(a,h){var c=g.column(a,l.real(1)),b=g.column(a,l.real(2)),d=g.column(a,l.real(3)),e=g.det3(c,b,d);l._helper.isZero(e)&&console.log("A is not regular!");var f=g.det3(h,b,d),d=g.det3(c,h,d),c=g.det3(c,b,h),f=g.turnIntoCSList([f,d,c]);return f=g.scaldiv(e,f)};g.linearsolveCGNR=function(a,h){var c=g.transpose(a),b=w.mult(c,a),c=w.mult(c,h);return g.linearsolveCG(b,c)};g.linearsolveCG=function(a,h){var c,b,d,e,f,k;e=h;b=c=g.sub(h,w.mult(a,h));for(var m=Math.ceil(1.2*a.value.length),
-n=0;n<m;){n++;f=w.mult(a,b);k=d=g.scalproduct(c,c);d=l.div(d,g.scalproduct(b,f));e=g.add(e,w.mult(d,b));c=g.sub(c,w.mult(d,f));if(g.abs(c).value.real<l.eps)break;d=g.scalproduct(c,c);d=l.div(d,k);b=g.add(c,w.mult(d,b))}n>=m&&console.log("CG did not converge");return e};g.det=function(a){if(1===a.value.length)return a.value[0].value[0];if(2===a.value.length)return g.det2(a.value[0],a.value[1]);if(3===a.value.length)return g.det3(a.value[0],a.value[1],a.value[2]);if(4===a.value.length)return g.det4m(a);
-var h=a.value.length,c=l.real(1),b,d,e=JSON.parse(JSON.stringify(a)),f,k,m,n;for(a=0;a<h-1;a++){d=a;for(b=a+1;b<h;b++)l.abs(e.value[b].value[a]).value.real>l.abs(e.value[d].value[a]).value.real&&(d=b);d!==a&&(b=e.value[d],e.value[d]=e.value[a],e.value[a]=b,c=l.neg(c));f=e.value[a];for(b=a+1;b<h;b++){k=e.value[b];m=l.div(k.value[a],f.value[a]);for(d=a+1;d<h-1;d+=2)n=d+1,k.value[d]=l.sub(k.value[d],l.mult(f.value[d],m)),k.value[n]=l.sub(k.value[n],l.mult(f.value[n],m));d!==h&&(k.value[d]=l.sub(k.value[d],
-l.mult(f.value[d],m)))}if(l._helper.isZero(f.value[a]))return l.real(0);c=l.mult(c,f.value[a])}return l.mult(c,e.value[a].value[a])};g.LUdet=function(a){a=g.LUdecomp(a);for(var h=a.LU,c=h.value.length,b=h.value[0].value[0],d=1;d<c;d++)b=l.mult(b,h.value[d].value[d]);1===a.TransPos%2&&(b=l.neg(b));return b};g.getField=function(a,h){var c;if("homog"===h){if(g._helper.isNumberVecN(a,3))return a;if(g._helper.isNumberVecN(a,2))return g.turnIntoCSList([a.value[0],a.value[1],l.real(1)])}if("xy"===h){if(g._helper.isNumberVecN(a,
-2))return a;if(g._helper.isNumberVecN(a,3))return g.turnIntoCSList([l.div(a.value[0],a.value[2]),l.div(a.value[1],a.value[2])])}if("x"===h&&g.isNumberVector(a)){c=a.value.length;if(0<c&&3!==c)return a.value[0];if(3===c)return"Point"===a.usage?l.div(a.value[0],a.value[2]):a.value[0]}if("y"===h&&g.isNumberVector(a)){c=a.value.length;if(1<c&&3!==c)return a.value[1];if(3===c)return"Point"===a.usage?l.div(a.value[1],a.value[2]):a.value[1]}return"z"===h&&g.isNumberVector(a)&&(c=a.value.length,2<c)?a.value[2]:
-k};g.nil=g.turnIntoCSList([]);g.ofGeos=function(a){return g.turnIntoCSList(a.map(function(a){return{ctype:"geo",value:a}}))};var Ka={key:function(a){if("string"===a.ctype)return"s"+a.value.length+":"+a.value+";";if("number"===a.ctype)return"n"+a.value.real+","+a.value.imag+";";if("list"===a.ctype)return"l"+a.value.length+":"+a.value.map(Ka.key).join(",")+";";if("boolean"===a.ctype)return"b"+a.value+";";if("dict"===a.ctype)return a=Object.keys(a.value).sort(),"d"+a.length+":"+a.join(",")+";";"undefined"!==
-a.ctype&&ia.err("Bad dictionary key: "+ba(a));return"undef"},create:function(){return{ctype:"dict",value:{}}},clone:function(a){var h=Ka.create(),c;for(c in a.value)a.value.hasOwnProperty(c)&&(h.value[c]=a.value[c]);return h},put:function(a,h,c){a.value[Ka.key(h)]={key:h,value:c}},get:function(a,h,c){return(a=a.value[Ka.key(h)])?a.value:c},niceprint:function(a){return"{"+Object.keys(a.value).sort().map(function(h){h=a.value[h];return ba(h.key)+":"+ba(h.value)}).join(", ")+"}"}},w={_helper:{},order:{undefined:0,
-"boolean":1,number:2,term:3,atomic:4,variable:5,geo:6,string:7,list:8},string:function(a){return{ctype:"string",value:a}},bool:function(a){return{ctype:"boolean",value:a}},not:function(a){return w.bool(!a.value)},isLessThan:function(a,h){return-1===w.compare(a,h)},isEqual:function(a,h){return 0===w.compare(a,h)},compareResults:function(a,h){return w.compare(a.result,h.result)},compare:function(a,h){if(a.ctype!==h.ctype)return w.order[a.ctype]-w.order[h.ctype];if("number"===a.ctype)return l._helper.compare(a,
-h);if("list"===a.ctype)return g._helper.compare(a,h);if("geo"===a.ctype)return a.value.name===h.value.name?0:a.value.name<h.value.name?-1:1;if("string"===a.ctype)return a.value===h.value?0:a.value<h.value?-1:1;if("boolean"===a.ctype)return a.value===h.value?0:!1===a.value?-1:1},add:function(a,h){return"void"===a.ctype&&"number"===h.ctype||"void"===a.ctype&&"list"===h.ctype?h:"number"===a.ctype&&"number"===h.ctype?l.add(a,h):"string"===a.ctype||"string"===h.ctype?{ctype:"string",value:ba(a)+ba(h)}:
-"list"===a.ctype&&"list"===h.ctype?g.add(a,h):k},sub:function(a,h){return"void"===a.ctype&&"number"===h.ctype?l.neg(h):"void"===a.ctype&&"list"===h.ctype?g.neg(h):"number"===a.ctype&&"number"===h.ctype?l.sub(a,h):"list"===a.ctype&&"list"===h.ctype?g.sub(a,h):k},mult:function(a,h){return"number"===a.ctype&&"number"===h.ctype?l.mult(a,h):"number"===a.ctype&&"list"===h.ctype?g.scalmult(a,h):"list"===a.ctype&&"number"===h.ctype?g.scalmult(h,a):"list"===a.ctype&&"list"===h.ctype?g.mult(a,h):k},div:function(a,
-h){return"number"===a.ctype&&"number"===h.ctype?l.div(a,h):"list"===a.ctype&&"number"===h.ctype?g.scaldiv(h,a):k},max:function(a,h){return"number"===a.ctype&&"number"===h.ctype?l.max(a,h):"list"===a.ctype&&"list"===h.ctype?g.max(a,h):k},min:function(a,h){return"number"===a.ctype&&"number"===h.ctype?l.min(a,h):"list"===a.ctype&&"list"===h.ctype?g.min(a,h):k},wrap:function(a){if("number"===typeof a)return l.real(a);if("object"===typeof a&&void 0!==a.length){for(var h=[],c=0;c<a.length;c++)h[c]=w.wrap(a[c]);
-return g.turnIntoCSList(h)}return"string"===typeof a?{ctype:"string",value:a}:"boolean"===typeof a?{ctype:"boolean",value:a}:k},unwrap:function(a){if("object"!==typeof a||null===a)return a;if(Array.isArray(a))return a.map(w.unwrap);switch(a.ctype){case "string":case "boolean":return a.value;case "number":return 0===a.value.imag?a.value.real:{r:a.value.real,i:a.value.imag};case "list":return a.value.map(w.unwrap);default:return null}},withUsage:function(a,h){return{ctype:a.ctype,value:a.value,usage:h}},
-wrapJSON:function(a){switch(typeof a){case "number":return l.real(a);case "string":return w.string(a);case "boolean":return w.bool(a);case "object":if(null===a)return k;if(Array.isArray(a))return g.turnIntoCSList(a.map(w.wrapJSON));var h=Ka.create(),c;for(c in a)Ka.put(h,w.string(c),w.wrapJSON(a[c]));return h;default:return console.log("Failed to convert "+typeof a+" to CindyJS data type"),k}},identity:function(a){return a}},Za={},R={};R[":"]=C(":");R["\u00b0"]=function(a,h){var c=B(a[0]);return"number"===
-c.ctype&&"void"===a[1].ctype?w.withUsage(l.realmult(Math.PI/180,c),"Angle"):k};R._=oc;R["^"]=Mc;R["\u221a"]=function(a,h){return"void"===a[0].ctype?t.sqrt$1([a[1]],h):k};R["*"]=Kc;R["\u00d7"]=Sc;R["/"]=Lc;R["+"]=Jc;R["-"]=$b;R["!"]=function(a,h){var c=B(a[1]);return"void"===a[0].ctype&&"boolean"===c.ctype?{ctype:"boolean",value:!c.value}:k};R["=="]=pb;R["~="]=Yb;R["~<"]=function(a,h){var c=B(a[0]),b=B(a[1]);return"number"===c.ctype&&"number"===b.ctype&&l._helper.isAlmostReal(c)&&l._helper.isAlmostReal(b)?
-{ctype:"boolean",value:c.value.real-b.value.real<=-l.eps}:k};R["~>"]=function(a,h){var c=B(a[0]),b=B(a[1]);return"number"===c.ctype&&"number"===b.ctype&&l._helper.isAlmostReal(c)&&l._helper.isAlmostReal(b)?{ctype:"boolean",value:c.value.real-b.value.real>=l.eps}:k};R["=:="]=C("=:=");R[">="]=function(a,h){var c=B(a[0]),b=B(a[1]);return"number"===c.ctype&&"number"===b.ctype&&l._helper.isAlmostReal(c)&&l._helper.isAlmostReal(b)?{ctype:"boolean",value:c.value.real>=b.value.real}:"string"===c.ctype&&"string"===
-b.ctype?{ctype:"boolean",value:c.value>=b.value}:k};R["<="]=function(a,h){var c=B(a[0]),b=B(a[1]);return"number"===c.ctype&&"number"===b.ctype&&l._helper.isAlmostReal(c)&&l._helper.isAlmostReal(b)?{ctype:"boolean",value:c.value.real<=b.value.real}:"string"===c.ctype&&"string"===b.ctype?{ctype:"boolean",value:c.value<=b.value}:k};R["~>="]=function(a,h){var c=B(a[0]),b=B(a[1]);return"number"===c.ctype&&"number"===b.ctype&&l._helper.isAlmostReal(c)&&l._helper.isAlmostReal(b)?{ctype:"boolean",value:c.value.real-
-b.value.real>-l.eps}:k};R["~<="]=function(a,h){var c=B(a[0]),b=B(a[1]);return"number"===c.ctype&&"number"===b.ctype&&l._helper.isAlmostReal(c)&&l._helper.isAlmostReal(b)?{ctype:"boolean",value:c.value.real-b.value.real<l.eps}:k};R[">"]=function(a,h){var c=B(a[0]),b=B(a[1]);return"number"===c.ctype&&"number"===b.ctype&&l._helper.isAlmostReal(c)&&l._helper.isAlmostReal(b)?{ctype:"boolean",value:c.value.real>b.value.real}:"string"===c.ctype&&"string"===b.ctype?{ctype:"boolean",value:c.value>b.value}:
-k};R["<"]=function(a,h){var c=B(a[0]),b=B(a[1]);return"number"===c.ctype&&"number"===b.ctype&&l._helper.isAlmostReal(c)&&l._helper.isAlmostReal(b)?{ctype:"boolean",value:c.value.real<b.value.real}:"string"===c.ctype&&"string"===b.ctype?{ctype:"boolean",value:c.value<b.value}:k};R["<>"]=Gc;R["\u2208"]=function(a,h){var c=A(a[0]),b=A(a[1]);return"list"===b.ctype?g.contains(b,c):k};R["\u2209"]=function(a,h){var c=A(a[0]),b=A(a[1]);return"list"===b.ctype?w.not(g.contains(b,c)):k};R["&"]=Hc;R["%"]=Ic;
-R["!="]=Gc;R["~!="]=function(a,h){return w.not(Yb(a,h))};R[".."]=function(a,h){var c=A(a[0]),b=A(a[1]);return"number"===c.ctype&&"number"===b.ctype?g.sequence(c,b):k};R["++"]=Tc;R["--"]=Vc;R["~~"]=Uc;R[":>"]=Wc;R["<:"]=Xc;R["="]=bb;R[":="]=function(a,h,c){h="undefined"===a[1].ctype;if("undefined"===a[0].ctype||h)return k;if("function"===a[0].ctype){h=a[0].oper;var b=a[0].args,d=a[1],g=1;if(Za.hasOwnProperty(h)){g=Za[h];if(g.definer===c)return k;g=g.generation+1}Za[h]={oper:h,body:d,arglist:b,definer:c,
-generation:g}}"variable"===a[0].ctype&&J.setvar(a[0].name,a[1]);return k};R[":=_"]=function(a,h){if("void"!==a[1].ctype)return k;"function"===a[0].ctype&&delete Za[a[0].oper];return k};R["::="]=C("::=");R[";"]=function(a,h){var c="void"===a[0].ctype,b="void"===a[1].ctype;if(c&&b)return k;if(!c&&b)return A(a[0]);c||b||A(a[0]);return b?k:A(a[1])};var t={},D={evaluate:function(a,h,c){if(Za.hasOwnProperty(a)){a=Za[a];if(void 0===a)h=k;else{var b=[];for(c=0;c<a.arglist.length;c++)b[c]=A(h[c]);for(c=0;c<
-a.arglist.length;c++)J.newvar(a.arglist[c].name),J.setvar(a.arglist[c].name,b[c]);J.pushVstack("*");h=A(a.body);J.cleanVstack();for(c=0;c<a.arglist.length;c++)J.removevar(a.arglist[c].name)}return h}if(b=t[a])return b(h,c);var d=a.lastIndexOf("$");if(-1!==d&&(d=a.substr(0,d),b=t[d]))return b(h,c);ia.err("Called undefined function "+d+" (as "+a+")");return k},equals:function(a,h){return"number"===a.ctype&&"number"===h.ctype?{ctype:"boolean",value:a.value.real===h.value.real&&a.value.imag===h.value.imag}:
-"string"===a.ctype&&"string"===h.ctype||"boolean"===a.ctype&&"boolean"===h.ctype?{ctype:"boolean",value:a.value===h.value}:"list"===a.ctype&&"list"===h.ctype?g.equals(a,h):"geo"===a.ctype&&"geo"===h.ctype?{ctype:"boolean",value:a.value===h.value}:{ctype:"boolean",value:!1}}},J={};J.vars=function(){var a={pi:l.real(Math.PI),"\u03c0":l.real(Math.PI),i:l.complex(0,1),"true":w.bool(!0),"false":w.bool(!1),"#":k,nil:g.turnIntoCSList([]),newline:w.string("\n"),tab:w.string("\t")},h=[],c;for(c in a)h[c]=
-[a[c]];return h}();J.isVariable=function(a){return this.vars.hasOwnProperty(a)};J.create=function(a){if(this.vars.hasOwnProperty(a))return this.vars[a];var h=[null];return this.vars[a]=h};J.newvar=function(a){a=this.vars[a];a.push(k);return a};J.removevar=function(a){var h=this.vars[a];0===h.length&&console.error("Removing non-existing "+a);h.pop();0===h.length&&console.warn("Removing last "+a)};J.setvar=function(a,h){var c=this.vars[a];0===c.length&&console.error("Setting non-existing variable "+
-a);void 0===h&&(console.error("Setting variable "+a+" to undefined value"),h=k);if("undefined"===h.ctype)c[c.length-1]=h;else{var b=h;null===b&&(b=k);c[c.length-1]=b}};J.undefinedWarning={};J.getvar=function(a){var h=this.vars[a];0===h.length&&console.error("Getting non-existing variable "+a);h=h[h.length-1];if(null===h){if(u.csnames.hasOwnProperty(a))return{ctype:"geo",value:u.csnames[a]};console&&console.log&&void 0===this.undefinedWarning[a]&&(this.undefinedWarning[a]=!0,console.log("Warning: Accessing undefined variable: "+
-a));return k}return h};J.dump=function(a){var h=this.vars[a];console.log("*** Dump "+a);for(a=0;a<h.length;a++)console.log(a+":> "+ba(h[a]))};J.vstack=[];J.pushVstack=function(a){this.vstack.push(a)};J.popVstack=function(){this.vstack.pop()};J.cleanVstack=function(){for(var a=this.vstack;0<a.length&&"*"!==a[a.length-1];)this.removevar(a[a.length-1]),a.pop();0<a.length&&a.pop()};var ya={generalFields:{color:"color",colorhsb:"",size:"size",alpha:"alpha",fillcolor:"fillcolor",fillalpha:"fillalpha",isshowing:"isshowing",
-visible:"visible",name:"name",caption:"caption",trace:"",tracelength:"",selected:"",labeled:"labeled",labelled:"labeled"},getGeoField:function(a,h){return"undefined"!==typeof u.csnames[a]?ya.getField(u.csnames[a],h):k},setGeoField:function(a,h,c){return"undefined"!==typeof u.csnames[a]?ya.setField(u.csnames[a],h,c):k},getField:function(a,h){var c;if("P"===a.kind){if("xy"===h)return c=g.dehom(a.homog),w.withUsage(c,"Point");if("homog"===h)return w.withUsage(a.homog,"Point");if("x"===h)return l.div(a.homog.value[0],
-a.homog.value[2]);if("y"===h)return l.div(a.homog.value[1],a.homog.value[2])}if("L"===a.kind||"S"===a.kind){if("homog"===h)return w.withUsage(a.homog,"Line");if("angle"===h)return c=g.eucangle(g.ey,a.homog),w.withUsage(c,"Angle");if("slope"===h)return l.neg(l.div(a.homog.value[0],a.homog.value[1]))}if("Tr"===a.kind&&"matrix"===h)return a.matrix;if("C"===a.kind){if("radius"===h){var b=a.matrix;c=b.value[0].value[0];var d=b.value[0].value[2],e=b.value[1].value[2],b=b.value[2].value[2];l.mult(c,c);d=
-l.div(d,c);e=l.div(e,c);c=l.div(b,c);return c=l.sqrt(l.sub(l.add(l.mult(d,d),l.mult(e,e)),c))}if("size"===h)return a.size;if("matrix"===h)return a.matrix;if("center"===h)return c=m._helper.CenterOfConic(a.matrix),c=g.dehom(c),w.withUsage(c,"Point");if("dualMatrix"===h)return g.normalizeMax(g.adjoint3(a.matrix))}if("Text"===a.kind){if("pressed"===h)return a.checkbox?w.bool(a.checkbox.checked):w.bool(!1);if("xy"===h)return c=g.dehom(a.homog),w.withUsage(c,"Point");if("homog"===h)return w.withUsage(a.homog,
-"Point");if("x"===h)return l.div(a.homog.value[0],a.homog.value[2]);if("y"===h)return l.div(a.homog.value[1],a.homog.value[2])}if("trace"===h)return w.bool(!!a.drawtrace);if(ya.generalFields[h])return(c=a[ya.generalFields[h]])&&c.ctype?c:"object"!==typeof c?w.wrap(c):k;if(a.behavior){if("mass"===h&&"Mass"===a.behavior.type)return l.real(a.behavior.mass);if("radius"===h&&"Mass"===a.behavior.type)return l.real(a.behavior.radius);if("charge"===h&&"Mass"===a.behavior.type)return l.real(a.behavior.charge);
-if("friction"===h&&"Mass"===a.behavior.type)return l.real(a.behavior.friction);if("vx"===h&&"Mass"===a.behavior.type)return l.real(a.behavior.vx);if("vy"===h&&"Mass"===a.behavior.type)return l.real(a.behavior.vy);if("v"===h&&"Mass"===a.behavior.type)return g.realVector([a.behavior.vx,a.behavior.vy]);if("fx"===h&&"Mass"===a.behavior.type)return l.real(a.behavior.fx);if("fy"===h&&"Mass"===a.behavior.type)return l.real(a.behavior.fy);if("f"===h&&"Mass"===a.behavior.type)return g.realVector([a.behavior.fx,
-a.behavior.fy])}c=m[a.type]["get_"+h];return"function"===typeof c?c(a):k},setField:function(a,h,c){"color"===h&&g._helper.isNumberVecN(c,3)&&(a.color=c);"size"===h&&"number"===c.ctype&&(a.size=c);"alpha"===h&&"number"===c.ctype&&(a.alpha=c);"fillcolor"===h&&g._helper.isNumberVecN(c,3)&&(a.fillcolor=c);"fillalpha"===h&&"number"===c.ctype&&(a.fillalpha=c);"visible"===h&&"boolean"===c.ctype&&(a.visible=c.value);"pinned"===h&&"boolean"===c.ctype&&(a.pinned=c.value);"labeled"!==h&&"labelled"!==h||"boolean"!==
-c.ctype||(a.labeled=c.value);"printlabel"===h&&(a.printname=ba(c));"trace"===h&&"boolean"===c.ctype&&(c.value&&!a.drawtrace?(a.drawtrace=!0,qd(a)):a.drawtrace=c.value);"P"===a.kind&&a.movable&&("xy"===h&&g._helper.isNumberVecN(c,2)&&Ia(a,g.turnIntoCSList([c.value[0],c.value[1],l.real(1)]),"homog"),"xy"===h&&g._helper.isNumberVecN(c,3)&&Ia(a,c,"homog"),"x"===h&&"number"===c.ctype&&Ia(a,g.turnIntoCSList([l.mult(c,a.homog.value[2]),a.homog.value[1],a.homog.value[2]]),"homog"),"y"===h&&"number"===c.ctype&&
-Ia(a,g.turnIntoCSList([a.homog.value[0],l.mult(c,a.homog.value[2]),a.homog.value[2]]),"homog"),"homog"===h&&g._helper.isNumberVecN(c,3)&&Ia(a,c,"homog"));"homog"===h&&"L"===a.kind&&a.movable&&g._helper.isNumberVecN(c,3)&&Ia(a,c,"homog");"Text"===a.kind&&("pressed"===h&&"boolean"===c.ctype&&a.checkbox&&(a.checkbox.checked=c.value),a.movable&&("xy"===h?g._helper.isNumberVecN(c,2)?a.homog=g.turnIntoCSList([c.value[0],c.value[1],l.real(1)]):g._helper.isNumberVecN(c,3)&&(a.homog=c):"homog"===h&&g._helper.isNumberVecN(c,
-3)?a.homog=c:"x"===h&&"number"===c.ctype?a.homog=g.turnIntoCSList([l.mult(c,a.homog.value[2]),a.homog.value[1],a.homog.value[2]]):"y"===h&&"number"===c.ctype&&(a.homog=g.turnIntoCSList([a.homog.value[0],l.mult(c,a.homog.value[2]),a.homog.value[2]]))));a.behavior&&("mass"===h&&"Mass"===a.behavior.type&&"number"===c.ctype&&(a.behavior.mass=c.value.real),"mass"===h&&"Sun"===a.behavior.type&&"number"===c.ctype&&(a.behavior.mass=c.value.real),"friction"===h&&"Mass"===a.behavior.type&&"number"===c.ctype&&
-(a.behavior.friction=c.value.real),"charge"===h&&"Mass"===a.behavior.type&&"number"===c.ctype&&(a.behavior.charge=c.value.real),"radius"===h&&"Mass"===a.behavior.type&&"number"===c.ctype&&(a.behavior.radius=c.value.real),"vx"===h&&"Mass"===a.behavior.type&&"number"===c.ctype&&(a.behavior.vx=c.value.real),"vy"===h&&"Mass"===a.behavior.type&&"number"===c.ctype&&(a.behavior.vy=c.value.real),"v"===h&&"Mass"===a.behavior.type&&g._helper.isNumberVecN(c,2)&&(a.behavior.vx=c.value[0].value.real,a.behavior.vy=
-c.value[1].value.real));h=m[a.type]["set_"+h];if("function"===typeof h)return h(a,c)}};t.version$0=function(a,h){var c=["CindyJS"].concat(ne);return g.turnIntoCSList(c.map(w.wrap))};t.clearconsole$0=function(a,h){ia.clear()};t.err$1=function(a,h){var c="",b;"variable"===a[0].ctype?(c=a[0].name,b=J.getvar(a[0].name)):b=a[0];b=c+" ===> "+ba(A(b));ia.err(b);return k};t.errc$1=function(a,h){var c;"variable"===a[0].ctype?(c=A(J.getvar(a[0].name)),console.log(a[0].name+" ===> "+ba(c))):(c=A(a[0]),console.log(" ===> "+
-ba(c)));return k};t.print$1=function(a,h){ia.out(ba(A(a[0])),!0);return k};t.println$1=function(a,h){ia.out(ba(A(a[0])));return k};t.assert$2=function(a,h){var c=A(a[0]);if("boolean"===c.ctype){if(!1===c.value)return t.println$1([a[1]],h)}else ia.err("Condition for assert is not boolean");return k};t.dump$1=function(a,h){console.log(JSON.stringify(a[0]));return k};t.repeat$2=function(a,h){return t.repeat$3([a[0],null,a[1]],h)};t.repeat$3=function(a,h){var c=B(a[0]),b="#";null!==a[1]&&"variable"===
-a[1].ctype&&(b=a[1].name);if("number"!==c.ctype)return k;var c=Math.round(c.value.real),d=1,g=1,e=c+1,f=!1,l=!1,m=!1,n;void 0!==h.start&&(n=A(h.start),"number"===n.ctype&&(f=!0,g=n.value.real));void 0!==h.step&&(n=A(h.step),"number"===n.ctype&&(m=!0,d=n.value.real));void 0!==h.stop&&(n=A(h.stop),"number"===n.ctype&&(l=!0,e=n.value.real));!f||l||m||(e=d*c+g);f||!l||m||(g=-d*(c-1)+e,e+=d);f||l||!m||(e=d*c+g);f&&l&&!m&&(d=(e-g)/(c-1),e+=d);f&&!l&&m&&(e=d*c+g);!f&&l&&m&&(g=-d*(c-1)+e,e+=d);f&&l&&m&&(e+=
-d);(g<=e&&0<d||g>=e&&0>d)&&f&&l&&m&&(c=Math.floor((e-g)/d));J.newvar(b);e=k;for(f=0;f<c;f++)J.setvar(b,{ctype:"number",value:{real:f*d+g,imag:0}}),e=A(a[2]);J.removevar(b);return e};t.while$2=function(a,h){for(var c=a[1],b=a[0],d=A(b),e=k;"list"!==d.ctype&&d.value;)e=A(c),d=A(b);return e};t.apply$2=function(a,h){return t.apply$3([a[0],null,a[1]],h)};t.apply$3=function(a,h){var c=B(a[0]);if("list"!==c.ctype)return k;var b="#";null!==a[1]&&"variable"===a[1].ctype&&(b=a[1].name);var c=c.value,d=[];J.newvar(b);
-for(var e=0;e<c.length;e++)J.setvar(b,c[e]),d[e]=A(a[2]);J.removevar(b);return{ctype:"list",value:d}};t.forall$2=function(a,h){return t.forall$3([a[0],null,a[1]],h)};t.forall$3=function(a,h){var c=B(a[0]);if("list"!==c.ctype)return k;var b="#";null!==a[1]&&"variable"===a[1].ctype&&(b=a[1].name);c=c.value;J.newvar(b);for(var d,e=0;e<c.length;e++)J.setvar(b,c[e]),d=A(a[2]);J.removevar(b);return d};t.select$2=function(a,h){return t.select$3([a[0],null,a[1]],h)};t.select$3=function(a,h){var c=B(a[0]);
-if("list"!==c.ctype)return k;var b="#";null!==a[1]&&"variable"===a[1].ctype&&(b=a[1].name);var c=c.value,d=[];J.newvar(b);for(var e=0,g=0;g<c.length;g++){J.setvar(b,c[g]);var f=A(a[2]);"boolean"===f.ctype&&!0===f.value&&(d[e]=c[g],e++)}J.removevar(b);return{ctype:"list",value:d}};t.flatten$1=function(a,h){function c(a,h){return-1===h||"list"!==a.ctype?a:[].concat.apply([],a.value.map(function(a){return c(a,h-1)}))}var b=B(a[0]);if("list"!==b.ctype)return b;var d=h.levels;void 0===d?d=1:(d=A(d),d=
-"number"===d.ctype?d.value.real:"string"===d.ctype&&"all"===d.value?-2:1);return{ctype:"list",value:c(b,d)}};t.createvar$1=function(a,h){"variable"===a[0].ctype&&J.newvar(a[0].name);return k};t.local=function(a,h){for(var c=0;c<a.length;c++)"variable"===a[c].ctype&&J.newvar(a[c].name);return k};t.removevar$1=function(a,h){var c=A(a[0]);"variable"===a[0].ctype&&J.removevar(a[0].name);return c};t.release=function(a,h){if(0===a.length)return k;for(var c=A(a[a.length-1]),b=0;b<a.length;b++)"variable"===
-a[b].ctype&&J.removevar(a[b].name);return c};t.regional=function(a,h){for(var c=0;c<a.length;c++)if("variable"===a[c].ctype){var b=a[c].name;J.newvar(b);J.pushVstack(b)}return k};t.genList=function(a,h){return g.turnIntoCSList(a.map(A))};D.assigntake=function(a,h){var c=a.args[0],b=A(c),d=B(a.args[1]),e=k;if("list"===b.ctype||"string"===b.ctype)d=Math.floor(d.value.real),0>d&&(d=b.value.length+d+1),0<d&&d<=b.value.length&&("list"===b.ctype?(b=b.value.slice(),b[d-1]=A(h),e=g.turnIntoCSList(b)):(b=
-b.value,b=b.substring(0,d-1)+ba(A(h))+b.substring(d,b.length),e=w.string(b)));bb([c,e])};D.assigndot=function(a,h){var c=A(a.obj),b=a.key;"geo"===c.ctype&&b&&ya.setField(c.value,b,B(h));return k};D.assignlist=function(a,h){var c=a.length,b=h.length;b<c&&(c=b);for(b=0;b<c;b++)bb([a[b],h[b]],[])};t.if$2=function(a,h){return t.if$3(a,h)};t.if$3=function(a,h){var c=B(a[0]);if("boolean"===c.ctype){if(!0===c.value)return A(a[1]);if(3===a.length)return A(a[2])}else ia.err("Condition for if is not boolean");
-return k};t.and$2=Hc;t.or$2=Ic;t.xor$2=function(a,h){var c=B(a[0]),b=B(a[1]);return"boolean"===c.ctype&&"boolean"===b.ctype?{ctype:"boolean",value:c.value!==b.value}:k};t.not$1=function(a,h){var c=B(a[0]);return"boolean"===c.ctype?{ctype:"boolean",value:!c.value}:k};D.genericListMathGen=function(a,h,c){t[a+"$1"]=function(a,b){var d=A(a[0]);if("list"!==d.ctype)return k;d=d.value;if(0===d.length)return c;for(var r=d[0],e=1;e<d.length;e++)r=h(r,d[e]);return r};var b=a+"$3";t[a+"$2"]=function(a,c){return t[b]([a[0],
-null,a[1]])};t[b]=function(a,b){var d=B(a[0]);if("list"!==d.ctype)return k;d=d.value;if(0===d.length)return c;var r="#";null!==a[1]&&"variable"===a[1].ctype&&(r=a[1].name);J.newvar(r);J.setvar(r,d[0]);for(var e=A(a[2]),g=1;g<d.length;g++){J.setvar(r,d[g]);var f=A(a[2]),e=h(e,f)}J.removevar(r);return e}};D.genericListMathGen("product",w.mult,l.real(1));D.genericListMathGen("sum",w.add,l.real(0));D.genericListMathGen("max",w.max,k);D.genericListMathGen("min",w.min,k);t.max$2=function(a,h){var c=B(a[0]);
-if("list"===c.ctype)return t.max$3([c,null,a[1]]);var b=B(a[1]);return t.max$1([g.turnIntoCSList([c,b])])};t.min$2=function(a,h){var c=B(a[0]);if("list"===c.ctype)return t.min$3([c,null,a[1]]);var b=B(a[1]);return t.min$1([g.turnIntoCSList([c,b])])};t.add$2=Jc;t.sub$2=$b;t.mult$2=Kc;t.div$2=Lc;t.mod$2=function(a,h){var c=B(a[0]),b=B(a[1]);return"number"===c.ctype&&"number"===b.ctype?l.mod(c,b):k};t.pow$2=Mc;t.exp$1=function(a,h){var c=B(a[0]);return"number"===c.ctype?l.exp(c):k};t.sin$1=function(a,
-h){var c=B(a[0]);return"number"===c.ctype?l.sin(c):k};t.sqrt$1=function(a,h){var c=B(a[0]);return"number"===c.ctype?l.sqrt(c):k};D.laguerre=function(a,h,c){if("list"!==a.ctype)return k;var b=a.value.length-1,d;for(d=0;d<=b;d++)if("number"!==a.value[d].ctype)return k;if("number"!==h.ctype)return k;for(var e=[1,.3141,.5926,.5358,.9793,.2385,.6264,.3383,.2795,.0288],g,f,m,n=1;n<=c;n++){f=m=l.zero;g=a.value[b];for(d=b-1;0<=d;d--)m=l.add(f,l.mult(m,h)),f=l.add(g,l.mult(f,h)),g=l.add(a.value[d],l.mult(g,
-h));if(l._helper.isLessThan(l.abs(g),l.real(1E-14)))break;d=l.div(f,g);f=l.mult(d,d);g=l.sub(f,l.div(l.mult(l.real(2),m),g));m=l.sqrt(l.mult(l.real(b-1),l.sub(l.mult(l.real(b),g),f)));g=l.add(d,m);d=l.sub(d,m);l._helper.isLessThan(l.abs(g),l.abs(d))&&(g=d);d=l._helper.isLessThan(l.real(1E-14),l.abs(g))?l.div(l.real(b),g):l.mult(l.add(l.abs(h),l.one),l.complex(Math.cos(n),Math.sin(n)));if(l._helper.isLessThan(l.abs(d),l.real(1E-14)))break;0===n%20&&n<c-19&&(d=l.mult(d,l.real(e[Math.floor(n/20)])));
-h=l.sub(h,d)}return h};D.quadratic_roots=function(a){if("list"!==a.ctype)return k;var h=a.value[2],c=a.value[1];a=a.value[0];if(l._helper.isZero(a))return[l.zero,l.neg(l.div(c,h))];var b=l.sqrt(l.sub(l.mult(c,c),l.mult(l.real(4),l.mult(h,a))));0<=l.re(c)&&(b=l.neg(b));return[l.div(l.sub(b,c),l.mult(l.real(2),h)),l.div(l.mult(l.real(2),a),l.sub(b,c))]};D.roots=function(a){var h=[],c=a,b=a.value.length-1;if(0>=b)return g.turnIntoCSList([]);if(l._helper.isZero(a.value[b]))return h=D.roots(g.turnIntoCSList(a.value.slice(0,
-b))),g.append(h,l.infinity);if(1===b)h[0]=l.neg(l.div(a.value[0],a.value[1]));else if(2===b)h=D.quadratic_roots(a);else{for(var d=0;d<b-2;d++){h[d]=D.laguerre(a,l.zero,200);h[d]=D.laguerre(c,h[d],1);var e=[];e[b-d]=a.value[b-d];for(var f=b-d;0<f;f--)e[f-1]=l.add(a.value[f-1],l.mult(e[f],h[d]));e.shift();a=g.turnIntoCSList(e)}a=D.quadratic_roots(a);h[b-2]=a[0];h[b-1]=a[1]}return g.turnIntoCSList(h)};t.roots$1=function(a,h){var c=B(a[0]);if("list"===c.ctype){for(var b=0;b<c.value.length;b++)if("number"!==
-c.value[b].ctype)return k;c=D.roots(c);return g.sort1(c)}return k};t.autodiff$3=function(a,h){var c="x",b;if("function"===a[0].ctype)b=Za[a[0].oper].body,c=a[0].args[0].name;else if("function"===typeof a[0].impl)b=a[0];else return console.log("could not parse function"),k;var d=B(a[1]),e=B(a[2]);if(1>e.value.real)return console.log("grade cant be < 1"),k;e=l.add(e,l.real(1));return P.autodiff(b,c,d,e)};t.cos$1=function(a,h){var c=B(a[0]);return"number"===c.ctype?l.cos(c):k};t.tan$1=function(a,h){var c=
-B(a[0]);return"number"===c.ctype?l.tan(c):k};t.arccos$1=function(a,h){var c=B(a[0]);return"number"===c.ctype?l.arccos(c):k};t.arcsin$1=function(a,h){var c=B(a[0]);return"number"===c.ctype?l.arcsin(c):k};t.arctan$1=function(a,h){var c=B(a[0]);return"number"===c.ctype?l.arctan(c):k};t.arctan2$2=function(a,h){var c=B(a[0]),b=B(a[1]);return"number"===c.ctype&&"number"===b.ctype?l.arctan2(c,b):k};t.arctan2$1=function(a,h){var c=B(a[0]);if("list"===c.ctype&&2===c.value.length){if(c=c.value,"number"===c[0].ctype&&
-"number"===c[1].ctype)return t.arctan2$2(c,h)}else if("number"===c.ctype)return l.arctan2(c);return k};t.log$1=function(a,h){var c=B(a[0]);return"number"===c.ctype?l.log(c):k};D.recursiveGen=function(a){var h=l[a],c=g[a];t[a+"$1"]=function(a,b){var d=B(a[0]);return"number"===d.ctype?h(d):"list"===d.ctype?c(d):k}};D.recursiveGen("im");D.recursiveGen("re");D.recursiveGen("conjugate");D.recursiveGen("round");D.recursiveGen("ceil");D.recursiveGen("floor");D.recursiveGen("abs");t.abs_infix=t.abs$1;t.random$0=
-function(a,h){return l.real(l._helper.rand())};t.random$1=function(a,h){var c=B(a[0]);return"number"===c.ctype?l.complex(c.value.real*l._helper.rand(),c.value.imag*l._helper.rand()):k};t.seedrandom$1=function(a,h){var c=B(a[0]);"number"===c.ctype&&l._helper.seedrandom(c.value.real);return k};t.randomnormal$0=function(a,h){return l.real(l._helper.randnormal())};t.randominteger$1=function(a,h){var c=B(a[0]);if("number"===c.ctype){var b=c.value.real|0,c=c.value.imag|0,b=b*l._helper.rand()|0,c=c*l._helper.rand()|
-0;return l.complex(b,c)}return k};t.randomint$1=t.randominteger$1;t.randombool$0=function(a,h){return.5<l._helper.rand()?{ctype:"boolean",value:!0}:{ctype:"boolean",value:!1}};t.isreal$1=function(a,h){var c=A(a[0]);return"number"===c.ctype&&l._helper.isAlmostReal(c)?{ctype:"boolean",value:!0}:{ctype:"boolean",value:!1}};t.isinteger$1=function(a,h){var c=A(a[0]);return"number"===c.ctype&&l._helper.isAlmostReal(c)&&c.value.real===Math.floor(c.value.real)?{ctype:"boolean",value:!0}:{ctype:"boolean",
-value:!1}};t.iseven$1=function(a,h){var c=A(a[0]);return"number"===c.ctype&&l._helper.isAlmostReal(c)&&c.value.real/2===Math.floor(c.value.real/2)?{ctype:"boolean",value:!0}:{ctype:"boolean",value:!1}};t.isodd$1=function(a,h){var c=A(a[0]);return"number"===c.ctype&&l._helper.isAlmostReal(c)&&(c.value.real-1)/2===Math.floor((c.value.real-1)/2)?{ctype:"boolean",value:!0}:{ctype:"boolean",value:!1}};t.iscomplex$1=function(a,h){return"number"===A(a[0]).ctype?{ctype:"boolean",value:!0}:{ctype:"boolean",
-value:!1}};t.isstring$1=function(a,h){return"string"===A(a[0]).ctype?{ctype:"boolean",value:!0}:{ctype:"boolean",value:!1}};t.islist$1=function(a,h){return"list"===A(a[0]).ctype?{ctype:"boolean",value:!0}:{ctype:"boolean",value:!1}};t.ismatrix$1=function(a,h){var c=A(a[0]);return-1!==g._helper.colNumb(c)?{ctype:"boolean",value:!0}:{ctype:"boolean",value:!1}};t.iscircle$1=function(a,h){var c=A(a[0]);return"geo"===c.ctype&&"C"===c.value.kind&&"Circle"===c.value.matrix.usage?{ctype:"boolean",value:!0}:
-{ctype:"boolean",value:!1}};t.isconic$1=function(a,h){var c=A(a[0]);return"geo"===c.ctype&&"C"===c.value.kind?{ctype:"boolean",value:!0}:{ctype:"boolean",value:!1}};t.isline$1=function(a,h){var c=A(a[0]);return"geo"===c.ctype&&"L"===c.value.kind?{ctype:"boolean",value:!0}:{ctype:"boolean",value:!1}};t.ispoint$1=function(a,h){var c=A(a[0]);return"geo"===c.ctype&&"P"===c.value.kind?{ctype:"boolean",value:!0}:{ctype:"boolean",value:!1}};t.isgeometric$1=function(a,h){return"geo"===A(a[0]).ctype?{ctype:"boolean",
-value:!0}:{ctype:"boolean",value:!1}};t.isnumbermatrix$1=function(a,h){var c=A(a[0]);return g.isNumberMatrix(c)};t.isnumbervector$1=function(a,h){var c=A(a[0]);return g.isNumberVector(c)};t.issun$1=function(a,h){var c=A(a[0]);return"geo"===c.ctype&&void 0!==c.value.behavior&&"Sun"===c.value.behavior.type?{ctype:"boolean",value:!0}:{ctype:"boolean",value:!1}};t.ismass$1=function(a,h){var c=A(a[0]);return"geo"===c.ctype&&void 0!==c.value.behavior&&"Mass"===c.value.behavior.type?{ctype:"boolean",value:!0}:
-{ctype:"boolean",value:!1}};t.isspring$1=function(a,h){var c=A(a[0]);return"geo"===c.ctype&&void 0!==c.value.behavior&&"Spring"===c.value.behavior.type?{ctype:"boolean",value:!0}:{ctype:"boolean",value:!1}};t.isbouncer$1=function(a,h){var c=A(a[0]);return"geo"===c.ctype&&void 0!==c.value.behavior&&"Bouncer"===c.value.behavior.type?{ctype:"boolean",value:!0}:{ctype:"boolean",value:!1}};t.isundefined$1=function(a,h){return"undefined"===A(a[0]).ctype?{ctype:"boolean",value:!0}:{ctype:"boolean",value:!1}};
-var Hd={ArcBy3:"Arc",CenterOfConic:"Center",ConicBy1p4l:"Conic1P4L",ConicBy4p1l:"Conic4P1L",ConicBy5lines:"Conic5L",ConicBy2Foci1P:"ConicFoci",ConicFromPrincipalDirections:"ConicPrincipleDirs",Free:"FreePoint",PolarOfLine:"PolarLine",PolarOfPoint:"PolarPoint",PointOnSegment:"PointOnLine",Button:"Text",ToggleButton:"Text",TrReflectionL:"TrReflection",TrReflectionP:"TrReflection",TrReflectionC:"TrReflection",TrTranslation:"TrProjection",TrSimilarity:"TrProjection",TrAffine:"TrProjection",TransformP:"Transform",
-TransformL:"Transform",TransformSegment:"Transform",TransformS:"Transform",TransformPolygon:"Transform",TransformArc:"Transform",TransformConic:"Transform",TransformC:"Transform",TrMoebiusP:"Transform",TrMoebiusL:"Transform",TrMoebiusSegment:"Transform",TrMoebiusS:"Transform",TrMoebiusPolygon:"Transform",TrMoebiusArc:"Transform",TrMoebiusCircle:"Transform",TrMoebiusC:"Transform",TrInverseMoebius:"TrInverse",Perp:"Orthogonal",Para:"Parallel",AngleBisector:"AngularBisector",IntersectLC:"IntersectionConicLine",
-IntersectCirCir:"IntersectionCircleCircle",OtherPointOnCircle:"PointOnCircle"};t.algorithm$1=function(a,h){var c=A(a[0]);if("geo"===c.ctype){var c=c.value,b=c.type,d=B(h.compatibility);"string"===d.ctype&&/^cinderella$/i.test(d.value)&&(/^Select/.test(b)&&(c=u.csnames[c.args[0]],b=c.type),Hd.hasOwnProperty(b)?b=Hd[b]:"CircleMr"===b&&(b=c.pinned?"CircleByFixedRadius":"CircleByRadius"));return w.string(b)}return k};t.inputs$1=function(a,h){var c=A(a[0]);if("geo"===c.ctype){var c=c.value,b=c.type,d=
-[];c.args&&(d=c.args.map(function(a){return{ctype:"geo",value:u.csnames[a]}}));if(/^Select/.test(b)||m[b].isMovable)switch(c.kind){case "P":case "L":d.push(c.homog);break;case "C":d.push(c.matrix)}return g.turnIntoCSList(d)}return k};t.moveto$2=function(a,h){var c=A(a[0]),b=B(a[1]);"geo"===c.ctype&&(c=c.value,g._helper.isNumberVecN(b,2)?ya.setField(c,"xy",b):g._helper.isNumberVecN(b,3)&&ya.setField(c,"homog",b));return k};t.continuefromhere$0=function(a,h){ub();return k};t.matrixrowcolumn$1=function(a,
-h){var c=A(a[0]);return-1!==g._helper.colNumb(c)?g.realVector([c.value.length,c.value[0].value.length]):k};t.rowmatrix$1=function(a,h){var c=A(a[0]);return"list"===c.ctype?g.turnIntoCSList([c]):k};t.columnmatrix$1=function(a,h){var c=A(a[0]);return"list"===c.ctype?g.turnIntoCSList(c.value.map(function(a){return g.turnIntoCSList([a])})):k};t.submatrix$3=function(a,h){var c=A(a[0]),b=A(a[1]),d=A(a[2]);if("list"===c.ctype&&"number"===b.ctype&&"number"===d.ctype){var e=Math.round(b.value.real),b=Math.round(d.value.real),
-c=c.value.slice();0<b&&b<=c.length&&c.splice(b-1,1);var f=!0,c=c.map(function(a){if("list"!==a.ctype)f=!1;else return a=a.value.slice(),0<e&&e<=a.length&&a.splice(e-1,1),g.turnIntoCSList(a)});return f?g.turnIntoCSList(c):k}return k};t.complex$1=function(a,h){var c,b,d;d=B(a[0]);if("list"===d.ctype&&g.isNumberVector(d)){if(2===d.value.length)return c=d.value[0],b=d.value[1],l.complex(c.value.real-b.value.imag,b.value.real+c.value.imag);if(3===d.value.length)return c=d.value[0],b=d.value[1],d=d.value[2],
-c=l.div(c,d),b=l.div(b,d),l.complex(c.value.real-b.value.imag,b.value.real+c.value.imag)}return k};t.gauss$1=function(a,h){var c=B(a[0]);return"number"===c.ctype?g.realVector([c.value.real,c.value.imag]):k};t.cross$2=Sc;t.crossratio$4=function(a,h){var c=A(a[0]),b=A(a[1]),d=A(a[2]),e=A(a[3]),f=M(c),m=M(b),n=M(d),p=M(e);return f!==k&&m!==k&&n!==k&&p!==k?g.crossratio3(f,m,n,p,g.ii):"number"===c.ctype&&"number"===b.ctype&&"number"===d.ctype&&"number"===e.ctype?l.div(l.mult(l.sub(c,d),l.sub(b,e)),l.mult(l.sub(c,
-e),l.sub(b,d))):k};t.para$2=function(a,h){var c=B(a[0]),b=B(a[1]),d=M(c),e=M(b);if(c!==k&&b!==k){var b=b.usage,f=d,l=e;if("Line"===c.usage||"Point"===b)f=e,l=d;c=g.cross(g.cross(g.linfty,l),f);return w.withUsage(c,"Line")}return k};t.perp$2=function(a,h){var c=B(a[0]),b=B(a[1]),d=M(c),e=M(b);if(c!==k&&b!==k){var f=b.usage||e.usage,b=d,m=e;if("Line"===(c.usage||d.usage)||"Point"===f)b=e,m=d;c=g.turnIntoCSList([m.value[0],m.value[1],l.zero]);c=g.cross(c,b);return w.withUsage(c,"Line")}return k};t.perp$1=
-function(a,h){var c=B(a[0]);return g._helper.isNumberVecN(c,2)?g.turnIntoCSList([l.neg(c.value[1]),c.value[0]]):k};t.parallel$2=t.para$2;t.perpendicular$2=t.perp$2;t.perpendicular$1=t.perp$1;t.meet$2=function(a,h){var c=M(a[0]),b=M(a[1]);return c!==k&&b!==k?(c=g.cross(c,b),w.withUsage(c,"Point")):k};t.join$2=function(a,h){var c=M(a[0]),b=M(a[1]);return c!==k&&b!==k?(c=g.cross(c,b),w.withUsage(c,"Line")):k};t.dist$2=function(a,h){var c=B(a[0]),b=B(a[1]),c=$b([c,b],[]);return t.abs$1([c],[])};t.dist_infix=
-t.dist$2;t.point$1=function(a,h){var c=A(a[0]);return g._helper.isNumberVecN(c,3)||g._helper.isNumberVecN(c,2)?w.withUsage(c,"Point"):c};t.line$1=function(a,h){var c=A(a[0]);return g._helper.isNumberVecN(c,3)?w.withUsage(c,"Line"):c};t.det$3=function(a,h){var c=M(a[0]),b=M(a[1]),d=M(a[2]);if(c!==k&&b!==k&&d!==k)return g.det3(c,b,d)};t.det$1=function(a,h){var c=B(a[0]);if("list"===c.ctype){var b=g._helper.colNumb(c);if(-1!==b&&b===c.value.length)return g.det(c)}return k};t.eig$1=function(a,h){var c=
-B(a[0]);if("list"===c.ctype){var b=g._helper.colNumb(c);if(-1!==b&&b===c.value.length)return g.eig(c)}return k};t.eigenvalues$1=function(a,h){var c=B(a[0]);if("list"===c.ctype){var b=g._helper.colNumb(c);if(-1!==b&&b===c.value.length)return g.eig(c,!1).value[0]}return k};t.rank$1=function(a,h){var c=B(a[0]);if("list"===c.ctype){var b=g._helper.colNumb(c);if(-1!==b&&b===c.value.length)return g.rank(c,h.precision)}return k};t.kernel$1=function(a,h){var c=B(a[0]);if("list"===c.ctype){var b=g._helper.colNumb(c);
-if(-1!==b&&b===c.value.length)return c=g.nullSpace(c,h.precision),g.transpose(c)}return k};t.eigenvectors$1=function(a,h){var c=B(a[0]);if("list"===c.ctype){var b=g._helper.colNumb(c);if(-1!==b&&b===c.value.length)return g.eig(c).value[1]}return k};t.area$3=function(a,h){var c=M(a[0]),b=M(a[1]),d=M(a[2]);if(c!==k&&b!==k&&d!==k){var e=c.value[2],f=b.value[2],m=d.value[2];if(!l._helper.isAlmostZero(e)&&!l._helper.isAlmostZero(f)&&!l._helper.isAlmostZero(m))return c=g.scaldiv(e,c),b=g.scaldiv(f,b),d=
-g.scaldiv(m,d),c=g.det3(c,b,d),l.realmult(.5,c)}return k};t.inverse$1=function(a,h){var c=B(a[0]);if("list"===c.ctype){var b=g._helper.colNumb(c);if(-1!==b&&b===c.value.length)return g.inverse(c)}return k};t.linearsolve$2=function(a,h){var c=B(a[0]),b=B(a[1]);if("list"===c.ctype){var d=g._helper.colNumb(c);if(-1!==d&&d===c.value.length&&g._helper.isNumberVecN(b,d))return g.linearsolve(c,b)}return k};var Ud=[[[]],[[0]],[[0,1],[1,0]],[[0,1,2],[0,2,1],[1,0,2],[1,2,0],[2,0,1],[2,1,0]],[[0,1,2,3],[0,1,
-3,2],[0,2,1,3],[0,2,3,1],[0,3,1,2],[0,3,2,1],[1,0,2,3],[1,0,3,2],[1,2,0,3],[1,2,3,0],[1,3,0,2],[1,3,2,0],[2,0,1,3],[2,0,3,1],[2,1,0,3],[2,1,3,0],[2,3,0,1],[2,3,1,0],[3,0,1,2],[3,0,2,1],[3,1,0,2],[3,1,2,0],[3,2,0,1],[3,2,1,0]]];t.mincostmatching$1=function(a,h){var c=A(a[0]);if(g.isNumberMatrix(c).value){var b=c.value.length,d=g._helper.colNumb(c),e=b<d?d:b,f,m,n=Array(e);for(f=0;f<e;++f)for(n[f]=Array(e),m=0;m<e;++m)n[f][m]=f<b&&m<d?c.value[f].value[m].value.real:0;c=nc(n);e=Array(b);for(f=0;f<b;++f)m=
-c[f],e[f]=m<d?l.real(m+1):l.real(0);return g.turnIntoCSList(e)}return k};t.take$2=oc;t.length$1=function(a,h){var c=A(a[0]);return"list"===c.ctype||"string"===c.ctype?l.real(c.value.length):k};t.pairs$1=function(a,h){var c=A(a[0]);return"list"===c.ctype?g.pairs(c):k};t.triples$1=function(a,h){var c=A(a[0]);return"list"===c.ctype?g.triples(c):k};t.cycle$1=function(a,h){var c=A(a[0]);return"list"===c.ctype?g.cycle(c):k};t.consecutive$1=function(a,h){var c=A(a[0]);return"list"===c.ctype?g.consecutive(c):
-k};t.reverse$1=function(a,h){var c=A(a[0]);return"list"===c.ctype?g.reverse(c):k};t.directproduct$2=function(a,h){var c=A(a[0]),b=A(a[1]);return"list"===c.ctype&&"list"===b.ctype?g.directproduct(c,b):k};t.concat$2=Tc;t.common$2=Uc;t.remove$2=Vc;t.append$2=Wc;t.prepend$2=Xc;t.contains$2=function(a,h){var c=A(a[0]),b=A(a[1]);return"list"===c.ctype?g.contains(c,b):k};t.sort$2=function(a,h){return t.sort$3([a[0],null,a[1]],h)};t.sort$3=function(a,h){var c=B(a[0]);if("list"!==c.ctype)return k;var b="#";
-null!==a[1]&&"variable"===a[1].ctype&&(b=a[1].name);var c=c.value,d=[];J.newvar(b);var e;for(e=0;e<c.length;e++)J.setvar(b,c[e]),d[e]={val:c[e],result:A(a[2])};J.removevar(b);d.sort(w.compareResults);b=[];for(e=0;e<c.length;e++)b[e]=d[e].val;return{ctype:"list",value:b}};t.sort$1=function(a,h){var c=A(a[0]);return"list"===c.ctype?g.sort1(c):k};t.set$1=function(a,h){var c=A(a[0]);return"list"===c.ctype?g.set(c):k};t.combinations$2=function(a,h){function c(a,h){a===f?n.push(g.turnIntoCSList(m.slice())):
-h<e&&(m[a]=b.value[h],c(a+1,h+1),c(a,h+1))}var b=A(a[0]),d=A(a[1]),e,f,m,n;if("number"===d.ctype){f=d.value.real|0;if("number"===b.ctype){e=b.value.real|0;e-f<f&&(f=e-f);if(0>f)return l.real(0);if(0===f)return l.real(1);if(1===f)return b;for(var p=d=1,q=1;q<=f;++q)var t=e-f+q|0,v=q|0,u=pc(t,v)|0,t=t/u|0,v=v/u|0,u=pc(d,v)|0,d=d/u|0,v=v/u|0,u=pc(t,p)|0,t=t/u|0,p=p/u|0,d=d*t|0,p=p*v|0;return l.real(d/p)}if("list"===b.ctype){e=b.value.length;if(0>f||f>e)return g.turnIntoCSList([]);if(0===f)return g.turnIntoCSList([g.turnIntoCSList([])]);
-if(f===e)return g.turnIntoCSList([b]);n=[];m=Array(f);c(0,0);return g.turnIntoCSList(n)}}return k};t.zeromatrix$2=function(a,h){var c=B(a[0]),b=B(a[1]);return"number"===c.ctype&&"number"===b.ctype?g.zeromatrix(c,b):k};t.zerovector$1=function(a,h){var c=B(a[0]);return"number"===c.ctype?g.zerovector(c):k};t.transpose$1=function(a,h){var c=B(a[0]);return"list"===c.ctype&&-1!==g._helper.colNumb(c)?g.transpose(c):k};t.row$2=function(a,h){var c=B(a[0]),b=B(a[1]);return"number"===b.ctype&&"list"===c.ctype&&
--1!==g._helper.colNumb(c)?g.row(c,b):k};t.column$2=function(a,h){var c=B(a[0]),b=B(a[1]);return"number"===b.ctype&&"list"===c.ctype&&-1!==g._helper.colNumb(c)?g.column(c,b):k};t.dict$0=function(a,h){var c=Ka.create(),b;for(b in h)h.hasOwnProperty(b)&&Ka.put(c,w.string(b),A(h[b]));return c};t.put$3=function(a,h){var c=A(a[0]),b=A(a[1]),d=A(a[2]);return"dict"===c.ctype?(c=Ka.clone(c),Ka.put(c,b,d),c):k};t.get$2=function(a,h){var c=A(a[0]),b=A(a[1]);return"dict"===c.ctype?Ka.get(c,b,k):k};t.red$1=function(a,
-h){var c=A(a[0]);return"number"===c.ctype?g.realVector([Math.min(1,Math.max(0,c.value.real)),0,0]):k};t.green$1=function(a,h){var c=A(a[0]);return"number"===c.ctype?g.realVector([0,Math.min(1,Math.max(0,c.value.real)),0]):k};t.blue$1=function(a,h){var c=A(a[0]);return"number"===c.ctype?g.realVector([0,0,Math.min(1,Math.max(0,c.value.real))]):k};t.gray$1=function(a,h){var c=A(a[0]);return"number"===c.ctype?(c=Math.min(1,Math.max(0,c.value.real)),g.realVector([c,c,c])):k};t.grey$1=t.gray$1;D.HSVtoRGB=
-function(a,h,c){var b,d,e,f,k,l;a&&void 0===h&&void 0===c&&(h=a.s,c=a.v,a=a.h);f=Math.floor(6*a);k=6*a-f;a=c*(1-h);l=c*(1-k*h);h=c*(1-(1-k)*h);switch(f%6){case 0:b=c;d=h;e=a;break;case 1:b=l;d=c;e=a;break;case 2:b=a;d=c;e=h;break;case 3:b=a;d=l;e=c;break;case 4:b=h;d=a;e=c;break;case 5:b=c,d=a,e=l}return g.realVector([b,d,e])};t.hue$1=function(a,h){var c=A(a[0]);return"number"===c.ctype?(c=c.value.real,c-=Math.floor(c),D.HSVtoRGB(c,1,1)):k};D.shapeconvert=function(a){var h,c;if("circle"===a.type){h=
-a.value.value[0];h=w.div(h,h.value[2]);var b=h.value[0].value.real,d=h.value[1].value.real;a=a.value.value[1].value.real;c=Array(125);var e=2*Math.PI/125;for(h=0;125>h;h++)c[h]={X:b+Math.cos(h*e)*a,Y:d+Math.sin(h*e)*a};return[c]}if("polygon"===a.type){b=[];for(h=0;h<a.value.length;h++){d=a.value[h];c=[];for(e=0;e<d.length;e++)c[e]={X:d[e].X,Y:d[e].Y};b[h]=c}return b}};D.shapeop=function(a,h,c){a=D.shapeconvert(a);var b=D.shapeconvert(h);ClipperLib.JS.ScaleUpPaths(a,1E3);ClipperLib.JS.ScaleUpPaths(b,
-1E3);h=new ClipperLib.Clipper;h.AddPaths(a,ClipperLib.PolyType.ptSubject,!0);h.AddPaths(b,ClipperLib.PolyType.ptClip,!0);var b=a=ClipperLib.PolyFillType.pftNonZero,d=new ClipperLib.Paths;h.Execute(c,d,a,b);ClipperLib.JS.ScaleDownPaths(d,1E3);return{ctype:"shape",type:"polygon",value:d}};D.shapecommon=function(a,h){return D.shapeop(a,h,ClipperLib.ClipType.ctIntersection)};D.shaperemove=function(a,h){return D.shapeop(a,h,ClipperLib.ClipType.ctDifference)};D.shapeconcat=function(a,h){return D.shapeop(a,
-h,ClipperLib.ClipType.ctUnion)};t.key$0=function(a,h){return{ctype:"string",value:Qc}};t.keycode$0=function(a,h){return l.real(Rc)};t.mouse$0=function(a,h){return g.realVector([ta[0],ta[1]])};t.mover$0=function(a,h){if(fa&&fa.mover)return{ctype:"geo",value:fa.mover};console.log("Not moving anything at the moment");return k};t.translate$1=function(a,h){var c=B(a[0]);"list"===c.ctype&&g.isNumberVector(c)&&2===c.value.length&&z.translate(c.value[0].value.real,c.value[1].value.real);return k};t.rotate$1=
-function(a,h){var c=B(a[0]);"number"===c.ctype&&z.rotate(c.value.real);return k};t.scale$1=function(a,h){var c=B(a[0]);"number"===c.ctype&&z.scale(c.value.real);return k};t.greset$0=function(a,h){var c=$a.stack.length;z.greset();for(var b=0;b<c;b++)y.restore();return k};t.gsave$0=function(a,h){z.gsave();y.save();return k};t.grestore$0=function(a,h){z.grestore();y.restore();return k};t.color$1=function(a,h){var c=B(a[0]);"list"===c.ctype&&g.isNumberVector(c).value&&z.setcolor(c);return k};t.linecolor$1=
-function(a,h){var c=B(a[0]);"list"===c.ctype&&g.isNumberVector(c).value&&z.setlinecolor(c);return k};t.pointcolor$1=function(a,h){var c=B(a[0]);"list"===c.ctype&&g.isNumberVector(c).value&&z.setpointcolor(c);return k};t.alpha$1=function(a,h){var c=B(a[0]);"number"===c.ctype&&z.setalpha(c);return k};t.pointsize$1=function(a,h){var c=B(a[0]);"number"===c.ctype&&z.setpointsize(c);return k};t.linesize$1=function(a,h){var c=B(a[0]);"number"===c.ctype&&z.setlinesize(c);return k};t.textsize$1=function(a,
-h){var c=B(a[0]);"number"===c.ctype&&z.settextsize(c);return k};t.playanimation$0=function(a,h){I();return k};t.pauseanimation$0=function(a,h){Ca();return k};t.stopanimation$0=function(a,h){Da();return k};t.text$1=function(a,h){var c=B(a[0]);return w.string(ba(c))};t.replace$3=function(a,h){var c=A(a[0]),b=A(a[1]),d=A(a[2]);if("string"===c.ctype&&"string"===b.ctype&&"string"===d.ctype)return c=c.value,b=b.value.replace(/[^A-Za-z0-9]/g,"\\$&"),d=d.value.replace(/\$/g,"$$$$"),c=c.replace(new RegExp(b,
-"g"),d),{ctype:"string",value:c}};t.replace$2=function(a,h){function c(a,c,h){var e="";d=b=-1;for(var g=0;g<c.length;g++){var f=c[g][0],k=a.indexOf(f,h);-1!==k&&(-1===b?(e=f,b=k,d=g):k<b&&(e=f,b=k,d=g))}return e}var b,d,e,g=A(a[0]);e=A(a[1]);if("string"===g.ctype&&"list"===e.ctype){for(var g=g.value,f=[],l=0;l<e.value.length;l++){var m=e.value[l];"list"===m.ctype&&2===m.value.length&&"string"===m.value[0].ctype&&"string"===m.value[1].ctype&&(f[f.length]=[m.value[0].value,m.value[1].value])}b=-1;for(e=
-c(g,f,0);-1!==b;)g=g.substring(0,b)+f[d][1]+g.substring(b+e.length,g.length),e=b+f[d][1].length,e=c(g,f,e);return{ctype:"string",value:g}}return k};t.substring$3=function(a,h){var c=A(a[0]),b=B(a[1]),d=B(a[2]);return"string"===c.ctype&&"number"===b.ctype&&"number"===d.ctype?{ctype:"string",value:c.value.substring(Math.floor(b.value.real),Math.floor(d.value.real))}:k};t.tokenize$2=function(a,h){var c=A(a[0]),b=A(a[1]);if("string"===c.ctype&&"string"===b.ctype)return t.tokenize$2([c,g.turnIntoCSList([b])],
-h);if("string"===c.ctype&&"list"===b.ctype){c=c.value;if(0===b.value.length){b=!0;if(void 0!==h.autoconvert){var d=A(h.autoconvert);"boolean"===d.ctype&&(b=d.value)}return b&&""!==c&&(b=Number(c),!isNaN(b))?l.real(b):w.string(c)}var d=b.value[0],e=g.turnIntoCSList(b.value.slice(1)),c=c.split(d.value);return g.turnIntoCSList(c.map(function(a){return t.tokenize$2([w.string(a),e],h)}))}return k};t.indexof$2=function(a,h){var c=A(a[0]),b=A(a[1]);return"string"===c.ctype&&"string"===b.ctype?(c=c.value.indexOf(b.value),
-l.real(c+1)):k};t.indexof$3=function(a,h){var c=A(a[0]),b=A(a[1]),d=A(a[2]);return"string"===c.ctype&&"string"===b.ctype&&"number"===d.ctype?(c=c.value.indexOf(b.value,Math.round(d.value.real)-1),l.real(c+1)):k};t.parse$1=function(a,h){var c=A(a[0]);return"string"===c.ctype?(c=Ra(c.value),A(c)):k};t.unicode$1=function(a,h){var c;c=A(a[0]);var b=16;if(h.base){var d=A(h.base);"number"===d.ctype&&(b=d.value.real)}if("string"===c.ctype)c=parseInt(c.value,b);else if("number"===c.ctype)c=c.value.real;else return k;
-"undefined"!==typeof String.fromCodePoint?c=String.fromCodePoint(c):65535>=c?c=String.fromCharCode(c):(c-=65536,c=String.fromCharCode((c>>10)+55296,(c&1023)+56320));return w.string(c)};t.international$1=function(a,h){return t.international$2([a[0],null],h)};t.international$2=function(a,h){var c=A(a[0]);if("string"!==c.ctype)return k;var b=(p.translations||{})[p.language||"en"]||{};if(!b.hasOwnProperty(c.value))return c;var d=b[c.value];if("string"===typeof d)return w.string(d);if(null===a[1])return c;
-var e=A(a[1]),e="number"===e.ctype?e.value.real:0,b=(b._pluralFormFunction||Vd)(e);return b<d.length?w.string(d[b]):c};t.currentlanguage$0=function(a,h){return w.string(p.language||"en")};D.basismap=function(a,h,c,b){var d=g.turnIntoCSList([a,h,c]),d=g.adjoint3(g.transpose(d));b=w.mult(d,b);d=g.turnIntoCSList([w.mult(b.value[0],a),w.mult(b.value[1],h),w.mult(b.value[2],c)]);return g.transpose(d)};t.map$8=function(a,h){var c=M(a[0]),b=M(a[1]),d=M(a[2]),e=M(a[3]),f=M(a[4]),l=M(a[5]),m=M(a[6]),n=M(a[7]);
-return f!==k&&l!==k&&m!==k&&n!==k&&c!==k&&b!==k&&d!==k&&e!==k?(f=D.basismap(f,l,m,n),c=D.basismap(c,b,d,e),c=w.mult(f,g.adjoint3(c)),g.normalizeMax(c)):k};t.map$6=function(a,h){var c=M(a[0]),b=M(a[1]),d=M(a[2]),e=g.realVector([0,0,1]),f=g.cross,l=f(f(d,f(e,f(c,b))),f(b,f(e,f(c,d)))),m=M(a[3]),n=M(a[4]),p=M(a[5]),e=f(f(p,f(e,f(m,n))),f(n,f(e,f(m,p))));return m!==k&&n!==k&&p!==k&&e!==k&&c!==k&&b!==k&&d!==k&&l!==k?(m=D.basismap(m,n,p,e),c=D.basismap(c,b,d,l),c=w.mult(m,g.adjoint3(c)),g.normalizeMax(c)):
-k};t.map$4=function(a,h){var c=g.ii,b=g.jj,d=M(a[0]),e=M(a[1]),f=M(a[2]),l=M(a[3]);return f!==k&&l!==k&&d!==k&&e!==k?(f=D.basismap(f,l,c,b),c=D.basismap(d,e,c,b),c=w.mult(f,g.adjoint3(c)),g.normalizeMax(c)):k};t.map$2=function(a,h){var c=g.ii,b=g.jj,d=M(a[0]),e=w.add(g.realVector([1,0,0]),d),f=M(a[1]),l=w.add(g.realVector([1,0,0]),f);return f!==k&&l!==k&&d!==k&&e!==k?(f=D.basismap(f,l,c,b),c=D.basismap(d,e,c,b),c=w.mult(f,g.adjoint3(c)),g.normalizeMax(c)):k};t.pointreflect$1=function(a,h){var c=g.ii,
-b=g.jj,d=M(a[0]),e=w.add(g.realVector([1,0,0]),d),f=w.add(g.realVector([-1,0,0]),d);return f!==k&&d!==k&&e!==k?(f=D.basismap(d,f,c,b),c=D.basismap(d,e,c,b),c=w.mult(f,g.adjoint3(c)),g.normalizeMax(c)):k};t.linereflect$1=function(a,h){var c=g.ii,b=g.jj,d=M(a[0]),e=g.realVector([Math.random(),Math.random(),Math.random()]),f=g.realVector([Math.random(),Math.random(),Math.random()]),e=g.cross(e,d),f=g.cross(f,d);return d!==k&&e!==k?(d=D.basismap(e,f,c,b),c=D.basismap(e,f,b,c),c=w.mult(d,g.adjoint3(c)),
-g.normalizeMax(c)):k};D.extractPointVec=function(a){var h={ok:!1};if("geo"===a.ctype){var c=a.value;if("P"===c.kind)return h.x=ya.getField(c,"x"),h.y=ya.getField(c,"y"),h.z=l.real(1),h.ok=!0,h}if("list"!==a.ctype)return h;var b=a.value;if(2===b.length&&(a=b[0],c=b[1],"number"===a.ctype&&"number"===c.ctype))return h.x=a,h.y=c,h.z=l.real(1),h.ok=!0,h;3===b.length&&(a=b[0],c=b[1],b=b[2],"number"===a.ctype&&"number"===c.ctype&&"number"===b.ctype&&(h.x=l.div(a,b),h.y=l.div(c,b),h.z=l.real(1),h.ok=!0));
-return h};t.polygon$1=function(a,h){var c=A(a[0]);if("list"===c.ctype){for(var b=[],d=0;d<c.value.length;d++){var e=D.extractPoint(c.value[d]);if(!e.ok)return k;b[d]={X:e.x,Y:e.y}}return{ctype:"shape",type:"polygon",value:[b]}}return k};t.circle$2=function(a,h){var c=B(a[0]),b=B(a[1]),c=D.extractPointVec(c);if(!c.ok||"number"!==b.ctype)return k;c=g.turnIntoCSList([c.x,c.y,c.z]);return{ctype:"shape",type:"circle",value:g.turnIntoCSList([c,b])}};t.screen$0=function(a,h){var c=z.drawingstate.initialmatrix,
-b=function(a,b){var h=a-c.tx,d=b+c.ty;return{X:(h*c.d-d*c.b)/c.det,Y:-(-h*c.c+d*c.a)/c.det}};return{ctype:"shape",type:"polygon",value:[[b(0,0),b(da,0),b(da,ca),b(0,ca)]]}};t.halfplane$2=function(a,b){var c=B(a[0]),d=B(a[1]),e=M(c),f=M(d);if(c!==k&&d!==k){var m=d.usage,d=e,n=f;if("Line"===c.usage||"Point"===m)d=f,n=e;c=g.turnIntoCSList([n.value[0],n.value[1],l.zero]);c=g.cross(c,d);c=g.cross(n,c);c=w.div(c,c.value[2]);d=w.div(d,d.value[2]);d=g.sub(d,c);n=g.abs(d);d=w.div(d,n);n=c.value[0].value.real;
-c=c.value[1].value.real;e=1E3*d.value[0].value.real;d=1E3*d.value[1].value.real;return{ctype:"shape",type:"polygon",value:[[{X:n+d/2,Y:c-e/2},{X:n+d/2+e,Y:c-e/2+d},{X:n-d/2+e,Y:c+e/2+d},{X:n-d/2,Y:c+e/2}]]}}return k};t.element$1=function(a,b){var c=A(a[0]);return"string"===c.ctype&&u.csnames.hasOwnProperty(c.value)?{ctype:"geo",value:u.csnames[c.value]}:k};D.all$1=function(a,b){var c=A(a[0]);return"geo"===c.ctype&&c.value.incidences?g.ofGeos(c.value.incidences.map(function(a){return u.csnames[a]}).filter(b)):
-g.nil};t.allpoints$0=function(a,b){return g.ofGeos(u.points)};t.allpoints$1=function(a,b){return D.all$1(a,function(a){return"P"===a.kind})};t.allmasses$0=function(a,b){return g.ofGeos(ga)};t.allmasses$1=function(a,b){return D.all$1(a,function(a){return"P"===a.kind&&a.behavior&&"Mass"===a.behavior.type})};t.allsprings$0=function(a,b){return g.ofGeos(zc)};t.allsprings$1=function(a,b){return D.all$1(a,function(a){return"S"===a.kind&&a.behavior&&"Spring"===a.behavior.type})};t.alllines$0=function(a,
-b){return g.ofGeos(u.lines)};t.alllines$1=function(a,b){return D.all$1(a,function(a){return"L"===a.kind||"S"===a.kind})};t.allsegments$0=function(a,b){return g.ofGeos(u.lines.filter(function(a){return"S"===a.kind}))};t.allsegments$1=function(a,b){return D.all$1(a,function(a){return"S"===a.kind})};t.allconics$0=function(a,b){return g.ofGeos(u.conics)};t.allconics$1=function(a,b){return D.all$1(a,function(a){return"C"===a.kind})};t.allcircles$0=function(a,b){return g.ofGeos(u.conics.filter(function(a){return"Circle"===
-a.matrix.usage}))};t.allcircles$1=function(a,b){return D.all$1(a,function(a){return"C"===a.kind&&"Circle"===a.matrix.usage})};t.allelements$0=function(a,b){return g.ofGeos(u.gslp)};t.allelements$1=function(a,b){return D.all$1(a,function(a){return!0})};t.incidences$1=t.allelements$1;t.createpoint$2=function(a,b){var c=A(a[0]),d=M(a[1]);return"string"!==c.ctype?(console.log("Name must be a string"),k):"list"!==d.ctype&&g.isNumberVector(d)?(console.log("Position must be a number vector"),k):Ha({name:c.value,
-type:"Free",labeled:!0,pos:d})};t.create$3=function(a,b){var c=A(a[0]),d=A(a[1]),e=A(a[2]),f,n;if("string"===c.ctype)f=c.value;else{if("list"!==c.ctype)return console.log("Names must be a string or a list of strings"),k;if(1!==c.value.length){f=w.string(c.value.map(function(a){return a.value}).join("__"));f=t.create$3([f,d,e],b);if(f!==k)for(d=w.string(f.kind.replace(/^(.*)s$/,"Select$1")),e=g.turnIntoCSList([w.string(f.name)]),n=0;n<c.value.length;++n)t.create$3([c.value[n],d,e],{index:l.real(n+
-1)});return f}if("string"!==c.value[0].ctype)return console.log("Element of names list must be a string"),k;f=c.value[0].value}if("string"!==d.ctype)return console.log("Type must be a string"),k;if("list"!==e.ctype)return console.log("Arguments must be a list"),k;if(!m.hasOwnProperty(d.value)&&!tc.hasOwnProperty(d.value)&&!rd.hasOwnProperty(d.value))return console.log("Invalid geometric operation: '"+d.value+"'"),k;var c=[],p=null;for(n=0;n<e.value.length;n++){var q=e.value[n];if("string"===q.ctype)c.push(q.value);
-else if("geo"===q.ctype)c.push(q.value.name);else if(p=M(q),p===k)return console.log("Unknown argument type"),k}f={name:f,type:d.value,labeled:!0};p&&(f.pos=p);0<c.length&&(f.args=c);d=B(b.index);"number"===d.ctype&&(f.index=d.value.real|0);return Ha(f)};t.javascript$1=function(a,b){var c=A(a[0]);"string"===c.ctype&&(new Function(c.value)).call(oa);return k};t.use$1=function(a,b){function c(a,c,b){t[a.toLowerCase()+"$"+c]=b}var d=A(a[0]);if("string"===d.ctype){var d=d.value,e;p.plugins&&(e=p.plugins[d]);
-e||(e=wa._pluginRegistry[d]);if(e)return e({instance:oa,config:p,nada:k,evaluate:A,extractPoint:D.extractPoint,evaluateAndVal:B,defineFunction:c,addShutdownHook:jb.push.bind(jb),addAutoCleaningEventListener:H,getVariable:J.getvar.bind(J),getInitialMatrix:function(){return z.drawingstate.initialmatrix},setTextRenderer:function(a,c){Bc=a;c&&(td=c)},getImage:function(a,c){"string"===typeof a&&(a=w.string(a));var b=La(a);if(!b)return null;!c&&b.cdyUpdate&&b.cdyUpdate();return b},getMyfunction:function(a){return Za.hasOwnProperty(a)?
-Za[a]:null}}),{ctype:"boolean",value:!0};console.log("Plugin "+d+" not found");return{ctype:"boolean",value:!1}}return k};t.format$2=function(a,b){function c(a){a=a.toFixed(f);var c;do c=a,a=a.substring(0,a.length-1);while(""!==a&&"-"!==a&&+a===+c);return""+c}function d(a){var b;return"number"===a.ctype?(b=c(a.value.real),a=c(a.value.imag),b="0"===a?b:"-"===a.substring(0,1)?b+" - i*"+a.substring(1):b+" + i*"+a,{ctype:"string",value:b}):"list"===a.ctype?{ctype:"list",value:a.value.map(d)}:{ctype:"string",
-value:ba(a).toString()}}var e=B(a[0]),g=B(a[1]),f;return"number"!==e.ctype&&"list"!==e.ctype||"number"!==g.ctype?k:(f=Math.max(0,Math.min(20,Math.round(g.value.real))),d(e))};Date.now||(Date.now=function(){return(new Date).getTime()});var Id=0;t.timestamp$0=function(a,b){return l.real(Date.now())};t.seconds$0=function(a,b){return l.real((Date.now()-Id)/1E3)};t.resetclock$0=function(a,b){Id=Date.now();return k};t.time$0=function(a,b){var c=new Date;return g.realVector([c.getHours(),c.getMinutes(),
-c.getSeconds(),c.getMilliseconds()])};t.date$0=function(a,b){var c=new Date;return g.realVector([c.getFullYear(),c.getMonth()+1,c.getDate()])};t.simulationtime$0=function(a,b){return l.real(Cb*Fd)};t.settimeout$2=function(a,b){function c(){A(g);e()}var d=A(a[0]),g=a[1];"number"===d.ctype&&"undefined"!==typeof window&&window.setTimeout(c,1E3*d.value.real);return k};D.formatForWebGL=function(a){return a.toFixed(10)};t.generateWebGL$2=function(a,b){var c=D.formatForWebGL,d=a[0],e=A(a[1]);console.log(e);
-if("list"!==e.ctype)return k;for(var g=[],f=0;f<e.value.length;f++)"string"===e.value[f].ctype&&g.push(e.value[f].value);console.log("***********");console.log(g);e=D.plotvars(d);console.log(e);-1===e.indexOf("a")&&-1===e.indexOf("b")&&-1===e.indexOf("c")&&-1===e.indexOf("d")&&-1===e.indexOf("e")&&-1===e.indexOf("f")&&(d=B(d));if("number"===d.ctype)return{ctype:"string",value:"vec2("+c(d.value.real)+","+c(d.value.imag)+")"};if("variable"===d.ctype)return{ctype:"string",value:d.name};if("string"===
-d.ctype||"void"===d.ctype)return d;if(2===d.args.length&&("infix"===d.ctype||"function"===d.ctype)){c=t.compileToWebGL$1([d.args[0]],{});e=t.compileToWebGL$1([d.args[1]],{});if("+"===d.oper||"add"===d.oper)return void 0===c.value||"void"===c.ctype?{ctype:"string",value:e.value}:{ctype:"string",value:"addc("+c.value+","+e.value+")"};if("*"===d.oper||"mult"===d.oper)return{ctype:"string",value:"multc("+c.value+","+e.value+")"};if("/"===d.oper||"div"===d.oper)return{ctype:"string",value:"divc("+c.value+
-","+e.value+")"};if("-"===d.oper||"sub"===d.oper)return void 0===c.value||"void"===c.ctype?{ctype:"string",value:"negc("+e.value+")"}:{ctype:"string",value:"subc("+c.value+","+e.value+")"};if("^"===d.oper||"pow"===d.oper)return{ctype:"string",value:"powc("+c.value+","+e.value+")"}}if("function"===d.ctype&&1===d.args.length){c=t.compileToWebGL$1([d.args[0]],{});if("sin$1"===d.oper)return{ctype:"string",value:"sinc("+c.value+")"};if("cos$1"===d.oper)return{ctype:"string",value:"cosc("+c.value+")"};
-if("tan$1"===d.oper)return{ctype:"string",value:"tanc("+c.value+")"};if("exp$1"===d.oper)return{ctype:"string",value:"expc("+c.value+")"};if("log$1"===d.oper)return{ctype:"string",value:"logc("+c.value+")"};if("arctan$1"===d.oper)return{ctype:"string",value:"arctanc("+c.value+")"};if("arcsin$1"===d.oper)return{ctype:"string",value:"arcsinc("+c.value+")"};if("arccos$1"===d.oper)return{ctype:"string",value:"arccosc("+c.value+")"};if("sqrt$1"===d.oper)return{ctype:"string",value:"sqrtc("+c.value+")"}}return k};
-t.compileToWebGL$1=function(a,b){var c,d;c=D.formatForWebGL;var e=a[0];d=D.plotvars(e);-1===d.indexOf("a")&&-1===d.indexOf("b")&&-1===d.indexOf("c")&&-1===d.indexOf("d")&&-1===d.indexOf("e")&&-1===d.indexOf("f")&&(e=B(e));if("number"===e.ctype)return{ctype:"string",value:"vec2("+c(e.value.real)+","+c(e.value.imag)+")"};if("variable"===e.ctype)return{ctype:"string",value:e.name};if("string"===e.ctype||"void"===e.ctype)return e;if(2===e.args.length&&("infix"===e.ctype||"function"===e.ctype)){c=t.compileToWebGL$1([e.args[0]],
-{});d=t.compileToWebGL$1([e.args[1]],{});if("+"===e.oper||"add"===e.oper)return void 0===c.value||"void"===c.ctype?{ctype:"string",value:d.value}:{ctype:"string",value:"addc("+c.value+","+d.value+")"};if("*"===e.oper||"mult"===e.oper)return{ctype:"string",value:"multc("+c.value+","+d.value+")"};if("/"===e.oper||"div"===e.oper)return{ctype:"string",value:"divc("+c.value+","+d.value+")"};if("-"===e.oper||"sub"===e.oper)return void 0===c.value||"void"===c.ctype?{ctype:"string",value:"negc("+d.value+
-")"}:{ctype:"string",value:"subc("+c.value+","+d.value+")"};if("^"===e.oper||"pow"===e.oper)return{ctype:"string",value:"powc("+c.value+","+d.value+")"}}if("function"===e.ctype&&1===e.args.length){c=t.compileToWebGL$1([e.args[0]],{});if("sin$1"===e.oper)return{ctype:"string",value:"sinc("+c.value+")"};if("cos$1"===e.oper)return{ctype:"string",value:"cosc("+c.value+")"};if("tan$1"===e.oper)return{ctype:"string",value:"tanc("+c.value+")"};if("exp$1"===e.oper)return{ctype:"string",value:"expc("+c.value+
-")"};if("log$1"===e.oper)return{ctype:"string",value:"logc("+c.value+")"};if("arctan$1"===e.oper)return{ctype:"string",value:"arctanc("+c.value+")"};if("arcsin$1"===e.oper)return{ctype:"string",value:"arcsinc("+c.value+")"};if("arccos$1"===e.oper)return{ctype:"string$1",value:"arccosc("+c.value+")"};if("sqrt$1"===e.oper)return{ctype:"string",value:"sqrtc("+c.value+")"}}return k};t.setsimulationspeed$1=function(a,b){var c=B(a[0]);"number"===c.ctype&&sa(c.value.real);return k};t.setsimulationaccuracy$1=
-function(a,b){var c=B(a[0]);"number"===c.ctype&&"undefined"!==typeof O&&"undefined"!==typeof O.env&&(O.env.accuracy=Math.max(1,c.value.real|0));return k};t.setsimulationquality$1=function(a,b){var c=B(a[0]);"number"===c.ctype&&"undefined"!==typeof O&&"undefined"!==typeof O.env&&(c=c.value.real,0===c&&(O.env.errorbound=.01,O.env.lowestdeltat=1E-5,O.env.slowdownfactor=2),1===c&&(O.env.errorbound=.001,O.env.lowestdeltat=1E-7,O.env.slowdownfactor=2),2===c&&(O.env.errorbound=1E-5,O.env.lowestdeltat=1E-10,
-O.env.slowdownfactor=4),3===c&&(O.env.errorbound=1E-6,O.env.lowestdeltat=1E-12,O.env.slowdownfactor=4));return k};var Wb=null,dc=null;t.createtool$3=function(a,b){var c,d="left",e="top",g=null;b.space&&(c=A(b.space),"number"===c.ctype&&(g=c.value.real/2));var f=null;b.toolbar&&(c=A(b.toolbar),"string"===c.ctype&&((f=document.getElementById(c.value))||console.warn("Element #"+c.value+" not found")));if(!f){if(b.reference){var l=A(b.reference);if("string"===l.ctype)switch(l.value){case "UR":d="right";
-break;case "LL":e="bottom";break;case "LR":d="right",e="bottom"}}f=document.createElement("div");f.className="CindyJS-toolbar";ka.parentNode.appendChild(f);l=A(a[1]);c=A(a[2]);"number"===l.ctype&&(f.style[d]=l.value.real+"px");"number"===c.ctype&&(f.style[e]=c.value.real+"px");null!==g&&(f.style.margin=-g+"px")}l=A(a[0]);if("string"===l.ctype)l=[[l.value]];else if("list"===l.ctype)l=l.value.map(function(a){return"string"===a.ctype?[a.value]:"list"===a.ctype?a.value.map(function(a){return"string"===
-a.ctype?a.value:null}):[null]});else return console.log("Name must be a string or a list of strings"),k;if(b.flipped&&(c=A(b.flipped),"boolean"===c.ctype&&c.value)){console.log("Flipping");var m=0;c=l.length;l.forEach(function(a){a.length>m&&(m=a.length)});for(var n=[],p=0;p<m;++p){n[p]=[];for(var q=0;q<c;++q)n[p][q]=l[q][p]||null}l=n}"bottom"===e&&l.reverse();l.forEach(function(a){"right"===d&&a.reverse();var c=document.createElement("div");f.appendChild(c);a.forEach(function(a){function b(){Wb&&
-Wb.classList.remove("CindyJS-active");Wb=d;d.classList.add("CindyJS-active");qc=a;var c=G[qc].actions;dc&&(dc.textContent=c[0].tooltip||"");ua=[];sb=Ua=0}G.hasOwnProperty(a)||(console.log("Tool '"+a+"' not implemented yet."),a=null);if(null===a){var h=document.createElement("span");h.className="CindyJS-spacer";c.appendChild(h)}else{var d=document.createElement("button"),h=document.createElement("img");h.src=wa.getBaseDir()+"images/"+a+".png";d.appendChild(h);d.addEventListener("click",b);Wb||b();
-null!==g&&(d.style.margin=g+"px");c.appendChild(d)}})});return k};t.dropped$0=function(){return kc};t.droppoint$0=function(){return lc};t.parsecsv$1=function(a,b){var c=!0,d=B(b.autoconvert);"boolean"===d.ctype&&(c=d.value);var e=null,d=B(b.delimiter);"string"===d.ctype&&/^[^\"\r\n]$/.test(d.value)&&(e=d.value);d=B(a[0]);if("string"!==d.ctype)return console.log("CSV data is not a string"),k;var d=d.value,f='(?:"((?:[^"]+|"")*)"|([^]*?))(\r\n|(,)|[\r\n]|$)';e&&(e=e.replace(/[^A-Za-z0-9]/g,"\\$&").replace(/\$/g,
-"$$$$"),f=f.replace(/,/g,e));for(var f=new RegExp(f,"g"),e=[],m=[],n=null;f.lastIndex<d.length;){var p=f.exec(d),q=p[2];"string"===typeof p[1]&&(q=p[1].replace(/""/g,'"'));q=c?/^[Tt]rue$/.test(q)?w.bool(!0):/^[Ff]alse$/.test(q)?w.bool(!1):/^[\-+]?([0-9]+(\.[0-9]*)?|\.[0-9]+|Infinity)$/.test(q)?l.real(Number(q)):w.string(q):w.string(q);e.push(q);p[4]&&f.lastIndex===d.length&&(e.push(w.string("")),p={});if(!p[4]){null===n&&(n=e.length);if(n<e.length)for(n=e.length,p=0;p<m.length;++p)for(q=m[p].length;q<
-n;++q)m[p][q]=k;else if(n>e.length)for(p=e.length;p<n;++p)e[p]=k;m.push(e);e=[]}}return g.turnIntoCSList(m.map(g.turnIntoCSList))};t.load$2=function(a,b){return t.load$3([a[0],null,a[1]],b)};t.load$3=function(a,b){function c(){if(l.readyState===XMLHttpRequest.DONE){var c;200===l.status?c=w.string(String(l.responseText)):(ia.err("Failed to load "+f+": "+l.statusText),c=k);J.newvar(d);J.setvar(d,c);A(a[2]);J.removevar(d);e()}}var d="#";null!==a[1]&&"variable"===a[1].ctype&&(d=a[1].name);var g=B(a[0]),
-f=null,l=null;"string"===g.ctype&&/^https?:\/\//.test(g.value)&&(f=g.value);return null!==f?(l=new XMLHttpRequest,l.onreadystatechange=c,l.open("GET",f),l.send(),w.bool(!0)):k};D.extractPoint=function(a){var b={ok:!1};if("geo"===a.ctype){var c=a.value;if("P"===c.kind)return b.x=ya.getField(c,"x").value.real,b.y=ya.getField(c,"y").value.real,b.ok=!0,b}if("list"!==a.ctype)return b;var d=a.value;if(2===d.length&&(a=d[0],c=d[1],"number"===a.ctype&&"number"===c.ctype))return b.x=a.value.real,b.y=c.value.real,
-b.ok=!0,b;3===d.length&&(a=d[0],c=d[1],d=d[2],"number"===a.ctype&&"number"===c.ctype&&"number"===d.ctype&&(a=l.div(a,d),c=l.div(c,d),b.x=a.value.real,b.y=c.value.real,b.ok=!0));return b};t.draw$1=function(a,b){var c=B(a[0]);if("shape"===c.ctype)D.drawshape(c,b);else if("Line"===c.usage)x.handleModifs(b,x.lineModifs),x.drawline(c);else{var d=D.extractPoint(c);if(!d.ok){if("undefined"!==typeof c.value&&2===c.value.length)return t.draw$2(c.value,b);return}null!==b&&x.handleModifs(b,x.pointModifs);x.drawpoint(d)}return k};
-t.draw$2=function(a,b){var c=B(a[0]),d=B(a[1]),c=D.extractPoint(c),d=D.extractPoint(d);if(!c.ok||!d.ok)return k;null!==b&&x.handleModifs(b,x.lineModifs);x.drawsegcore(c,d);return k};t.drawcircle$2=function(a,b){return D.drawcircle(a,b,"D")};D.arcHelper=function(a){var b={};b.startPoint=M(a[0]);b.viaPoint=M(a[1]);b.endPoint=M(a[2]);return b};t.fillcircle$2=function(a,b){return D.drawcircle(a,b,"F")};t.drawarc$3=function(a,b){var c=D.arcHelper(a);return D.drawarc(c,b,"D")};t.fillarc$3=function(a,b){var c=
-D.arcHelper(a);return D.drawarc(c,b,"F")};D.drawarc=function(a,b,c){var d=a.startPoint,e=a.viaPoint;a=a.endPoint;if(!g._helper.isAlmostReal(g.turnIntoCSList([d,e,a])))return k;x.handleModifs(b,x.conicModifs);x.preDrawCurve();b=g.det3(d,e,a);if(1E-12<Math.abs(b.value.real)){b=m._helper.ConicBy5(null,d,e,a,g.ii,g.jj);var f=m._helper.CenterOfConic(b),f=g.normalizeMax(f);b=l.real(0);var n=g.turnIntoCSList([g.turnIntoCSList([f.value[2],b,l.neg(f.value[0])]),g.turnIntoCSList([b,f.value[2],l.neg(f.value[1])]),
-g.turnIntoCSList([b,b,f.value[2]])]);b=g.normalizeZ(w.mult(n,d));g.normalizeZ(w.mult(n,e));n=g.normalizeZ(w.mult(n,a));b=-Math.atan2(b.value[1].value.real,b.value[0].value.real);n=-Math.atan2(n.value[1].value.real,n.value[0].value.real);f=g.normalizeZ(f);d=g.normalizeZ(d);e=g.normalizeZ(e);a=g.normalizeZ(a);var p=g.abs(g.sub(d,f)),q=[f.value[0].value.real,f.value[1].value.real],f=z.drawingstate.matrix,t=q[0]*f.a-q[1]*f.b+f.tx,q=q[0]*f.c-q[1]*f.d-f.ty,d=0<g.det3(d,e,a).value.real;y.save();y.beginPath();
-y.translate(t,q);y.arc(0,0,p.value.real*f.sdet,b,n,d);"F"===c&&(y.fillStyle=x.lineColor,y.closePath(),y.fill());"D"===c&&y.stroke();y.restore()}else{if("D"!==c)return k;c=D.extractPoint(d);b=D.extractPoint(e);n=D.extractPoint(a);if(!c.ok||!b.ok||!n.ok)return k;p=(c.x-n.x)*(c.x-n.x)+(c.y-n.y)*(c.y-n.y);f=(n.x-b.x)*(n.x-b.x)+(n.y-b.y)*(n.y-b.y);if(1E-12>(c.x-b.x)*(c.x-b.x)+(c.y-b.y)*(c.y-b.y)||1E-12>p||1E-12>f)return k;0>g.crossratio3(d,a,e,g.cross(g.cross(d,e),g.linfty),g.ii).value.real?x.drawsegcore(c,
-n):x.drawRaySegment(d,a)}return k};D.drawcircle=function(a,b,c){var d=B(a[0]);a=B(a[1]);var e=D.extractPoint(d);if(!e.ok||"number"!==a.ctype||!l._helper.isAlmostReal(a))return k;var d=z.drawingstate.matrix,g=e.x*d.a-e.y*d.b+d.tx,e=e.x*d.c-e.y*d.d-d.ty;x.handleModifs(b,x.conicModifs);x.preDrawCurve();y.lineJoin="miter";y.beginPath();y.arc(g,e,Math.abs(a.value.real)*d.sdet,0,2*Math.PI);y.closePath();"D"===c&&y.stroke();"F"===c&&(y.fillStyle=x.lineColor,y.fill());"C"===c&&y.clip();return k};t.drawconic$1=
-function(a,b){var c;c=B(a[0]);if("list"!==c.ctype||3!==c.value.length&&6!==c.value.length)return console.error("could not parse conic"),k;if(6===c.value.length){for(var d=0;6>d;d++)if("number"!==c.value[d].ctype)return console.error("could not parse conic"),k;var e=l.real(.5),d=c.value[0],f=c.value[2],f=l.mult(f,e),m=c.value[1],n=c.value[3],n=l.mult(n,e),p=c.value[4],p=l.mult(p,e);c=c.value[5];c=g.turnIntoCSList([g.turnIntoCSList([d,f,n]),g.turnIntoCSList([f,m,p]),g.turnIntoCSList([n,p,c])])}else{for(d=
-0;3>d;d++)for(f=0;3>f;f++)if("number"!==c.value[d].value[f].ctype)return console.error("could not parse conic"),k;g.equals(c,g.transpose(c)).value||(d=w.mult(c,l.real(.5)),c=w.mult(g.transpose(c),l.real(.5)),c=g.add(d,c))}c=g.normalizeMax(c);return D.drawconic(c,b)};D.drawconic=function(a,b){x.handleModifs(b,x.conicModifs);if(0!==x.lsize){x.preDrawCurve();for(var c=g.normalizeMax(a),d=c,e=0;2>e;e++)for(var f=0;2>f;f++)if(Math.abs(c.value[e].value[f].value.imag)>l.eps)return;e=g.turnIntoCSList([g.realVector([-1,
--1,1]),g.realVector([1,0,0]),g.realVector([0,1,0])]);f=z.from(0,0,1);f[2]=1;var n=z.from(1,0,1);n[2]=1;var p=z.from(0,1,1);p[2]=1;var f=g.turnIntoCSList([g.realVector(f),g.realVector(n),g.realVector(p)]),f=g.transpose(f),e=w.mult(f,e),e=g.inverse(e),c=w.mult(g.transpose(e),c),c=w.mult(c,e),e=c.value[0].value[0].value.real,f=c.value[1].value[0].value.real,n=c.value[1].value[1].value.real,p=c.value[2].value[0].value.real,q=c.value[2].value[1].value.real,v=c.value[2].value[2].value.real,c=[[e,f,p],[f,
-n,q],[p,q,v]],u=1E-14>Math.abs(e*n*v-e*q*q-f*f*v+2*f*p*q-n*p*p);if(u&&"Circle"===a.usage){var A=w.mult(g.adjoint3(d),g.linfty);l.abs(A.value[2]).value.real>l.eps&&(u=!1)}var A=da>ca?da:ca,B=-1.5*A,C=1.5*A,D=-1.5*A,E=1.5*A,F=1;u&&(F=0);if(F)var p=0,p=1E-14<Math.abs(e-f)?Math.atan(f/e-n)/2:Math.PI/4,G=function(a){var c=Math.cos(a);a=Math.sin(a);return[[c,-a,0],[a,c,0],[0,0,1]]}(p),G=g.realMatrix(G),e=g.transpose(G),c=w.mult(g.realMatrix(c),G),c=w.mult(e,c),e=c.value[0].value[0].value.real,f=c.value[1].value[0].value.real,
-n=c.value[1].value[1].value.real,p=c.value[2].value[0].value.real,q=c.value[2].value[1].value.real,v=c.value[2].value[2].value.real;var c=[e,f,n,p,q,v],e=function(){var a=m._helper.splitDegenConic(d);if(a!==k){var c=a[1],a=[a[0]];t.draw$1(a,b);a[0]=c;t.draw$1(a,b)}},H=function(a){"undefined"!==a&&6===a.length||console.error("this does not define a Conic");if(u)return"degenerate";a=a[0]*a[2]-a[1]*a[1];return 1E-14>Math.abs(a)?"parabola":1E-14<a?"ellipsoid":"hyperbola"};H(c);var L=function(a,c){return 0<
-a&&a<da&&0<c&&c<ca},J=[],I=[],K=[],M=[],N=[],O=[],P=function(){J=[];I=[];K=[];M=[];N=[];O=[]},R=function(a,c){y.beginPath();y.moveTo(a[0],c[0]);for(var b=1;b<a.length;b++)y.lineTo(a[b],c[b]);y.stroke()},S=function(a,c,b){var h,d,e=H(a);if(6!==a.length)console.error("Conic needs 6 Parameters");else{var f=a[0],r=a[1],k=a[2],l=a[3],m=a[4];a=a[5];var n;h=b-c;for(var p=.1*h+c,na=b-.1*h,Q=c;Q<=b;Q+=n){n=Q<p||Q>na||100>Math.abs(b-c)?.5:0>Q||Q>ca?10:3;d=-f*k*Q*Q-2*f*m*Q-f*a+r*r*Q*Q+2*r*l*Q+l*l;d=Math.sqrt(d);
-h=1/f*(-r*Q-l+d);d=-1/f*(r*Q+l+d);var q,Ga;F?(q=[h,Q,1],Ga=[d,Q,1],q=w.mult(G,g.realVector(q)),Ga=w.mult(G,g.realVector(Ga)),h=q.value[0].value.real,d=Ga.value[0].value.real,q=q.value[1].value.real,Ga=Ga.value[1].value.real):Ga=q=Q;isNaN(h)||"ellipsoid"!==e?!isNaN(h)&&h>=B&&h<=C&&(J.push(h),K.push(q)):(J.push(h),K.push(q));isNaN(d)||"ellipsoid"!==e?!isNaN(d)&&d>=B&&d<=C&&(I.push(d),M.push(Ga)):(I.push(d),M.push(Ga))}}},f=function(a){var c,b,h;H(a);if(6!==a.length)console.error("Conic needs 6 Parameters");
-else{h=a[0];var d=a[1],e=a[2],f=a[3],g=a[4],r=a[5];c=-h*g+d*f;b=Math.sqrt(h*(-h*e*r+h*Math.pow(g,2)+Math.pow(d,2)*r-2*d*f*g+e*Math.pow(f,2)));e=h*e-Math.pow(d,2);1E-14<Math.abs(e)?(h=(c-b)/e,b=(c+b)/e):b=h=(-h*r+f*f)/(2*h*g-2*d*f);!isNaN(h)&&h>D&&h<E||(h=D);!isNaN(b)&&b>D&&b<E||(b=D);c=h<b?h:b;b=h>b?h:b;S(a,D,c);N=J.concat(I.reverse());O=K.concat(M.reverse());R(N,O);P();S(a,b,E);R(J,K);if(L(J[0],K[1])||L(I[0],M[0]))y.beginPath(),y.moveTo(J[0],K[0]),y.lineTo(I[0],M[0]),y.stroke();R(I,M);P();S(a,c,
-b);R(J,K);y.beginPath();y.moveTo(J[0],K[0]);y.lineTo(I[0],M[0]);y.stroke();y.beginPath();y.moveTo(J[J.length-1],K[K.length-1]);y.lineTo(I[I.length-1],M[M.length-1]);y.stroke();R(I,M);P()}};u?e():f(c)}};t.drawall$1=function(a,b){var c=A(a[0]);if("list"===c.ctype){x.handleModifs(b,x.pointAndLineModifs);for(var d=0;d<c.value.length;d++)t.draw$1([c.value[d]],null)}return k};t.connect$1=function(a,b){return D.drawpolygon(a,b,"D",!1)};t.drawpoly$1=function(a,b){return D.drawpolygon(a,b,"D",!0)};t.fillpoly$1=
-function(a,b){return D.drawpolygon(a,b,"F",!0)};t.drawpolygon$1=function(a,b){return D.drawpolygon(a,b,"D",!0)};t.fillpolygon$1=function(a,b){return D.drawpolygon(a,b,"F",!0)};D.drawpolygon=function(a,b,c,d){function e(){for(var a=l.value,c=0;c<a.length;c++){var b=a[c],h;for(h=0;h<b.length;h++){var d=b[h],f=d.X*g.a-d.Y*g.b+g.tx,d=d.X*g.c-d.Y*g.d-g.ty;0===h?y.moveTo(f,d):y.lineTo(f,d)}y.closePath()}}function f(){var a;for(a=0;a<l.value.length;a++){var c=D.extractPoint(l.value[a]);if(!c.ok)return;var b=
-c.x*g.a-c.y*g.b+g.tx,c=c.x*g.c-c.y*g.d-g.ty;0===a?y.moveTo(b,c):y.lineTo(b,c)}d&&y.closePath()}x.handleModifs(b,x.conicModifs);x.preDrawCurve();var g=z.drawingstate.matrix,l=A(a[0]);y.beginPath();"list"===l.ctype&&f();"shape"===l.ctype&&e();"D"===c&&(x.fillColor&&(y.fillStyle=x.fillColor,y.fill(x.fillrule)),y.stroke());"F"===c&&(y.fillStyle=x.lineColor,y.fill(x.fillrule));"C"===c&&y.clip();return k};var Bc=Yc,td=function(a,b,c){if(-1!==b.indexOf("\n"))for(b=b.split("\n"),a.textContent=b[0],c=1;c<
-b.length;++c)a.appendChild(document.createElement("br")),a.appendChild(document.createTextNode(b[c]));else a.textContent=b};D.drawtext=function(a,b,c){var d=B(a[0]);a=A(a[1]);var e=D.extractPoint(d);if(!e.ok)return null;x.handleModifs(b,x.textModifs);b=z.drawingstate.textsize;null===b&&(b=la.textsize);null!==x.size&&(b=x.size);y.fillStyle=x.textColor;var f=z.drawingstate.matrix,d=e.x*f.a-e.y*f.b+f.tx+x.xOffset,e=e.x*f.c-e.y*f.d-f.ty-x.yOffset;a=ba(a);f=x.bold+x.italics+Math.round(10*b)/10+"px "+x.family;
-y.font=f;return c?c(a,f,d,e,x.align,b):Bc(y,a,d,e,x.align,b,b*la.lineHeight)};t.drawtext$2=function(a,b){D.drawtext(a,b,null);return k};t.drawtable$2=function(a,b){var c=B(a[0]),d=B(a[1]),e=D.extractPoint(c);if(!e.ok||"list"!==d.ctype)return k;var d=d.value,c=d.length,f=-1,l;for(l=0;l<c;++l)"list"===d[l].ctype&&d[l].value.length>f&&(f=d[l].value.length);-1===f?(d=d.map(function(a){return[a]}),f=1):d=d.map(function(a){return g.asList(a).value});var m=100,n=null,p=!0,q=z.drawingstate.textcolor;x.handleModifs(b,
-{size:!0,color:function(a){g._helper.isNumberVecN(a,3)&&(q=x.makeColor([a.value[0].value.real,a.value[1].value.real,a.value[2].value.real]))},alpha:!0,bold:!0,italics:!0,family:!0,align:!0,x_offset:!0,y_offset:!0,offset:!0,width:function(a){"number"===a.ctype&&(m=a.value.real)},height:function(a){"number"===a.ctype&&(n=a.value.real)},border:function(a){"boolean"===a.ctype&&(p=a.value)}});var t=z.drawingstate.textsize;null===t&&(t=la.textsize);null!==x.size&&(t=x.size);null===n&&(n=1.6*t);y.font=x.bold+
-x.italics+Math.round(10*t)/10+"px "+x.family;l=z.drawingstate.matrix;var v=f*m,u=c*n,t=e.x*l.a-e.y*l.b+l.tx+x.xOffset,w=e.x*l.c-e.y*l.d-l.ty-x.yOffset-u;if(p){x.preDrawCurve();y.strokeStyle=x.lineColor;y.beginPath();for(l=1;l<c;++l)y.moveTo(t,w+l*n),y.lineTo(t+v,w+l*n);for(e=1;e<f;++e)y.moveTo(t+e*m,w),y.lineTo(t+e*m,w+u);y.stroke();y.lineWidth=x.lsize+1;y.beginPath();y.rect(t,w,v,u);y.stroke()}t+=x.align*m+(1-2*x.align)*n*.3;w+=.7*n;y.fillStyle=q;for(l=0;l<c;++l)for(e=0;e<f;++e)v=ba(d[l][e]),Bc(y,
-v,t+e*m,w+l*n,x.align);return k};D.drawshape=function(a,b){return"polygon"===a.type?D.drawpolygon([a],b,"D",1):"circle"===a.type?D.drawcircle([a.value.value[0],a.value.value[1]],b,"D"):k};D.fillshape=function(a,b){return"polygon"===a.type?D.drawpolygon([a],b,"F",1):"circle"===a.type?D.drawcircle([a.value.value[0],a.value.value[1]],b,"F"):k};D.clipshape=function(a,b){return"polygon"===a.type?D.drawpolygon([a],b,"C",1):"circle"===a.type?D.drawcircle([a.value.value[0],a.value.value[1]],b,"C"):k};t.fill$1=
-function(a,b){var c=A(a[0]);return"shape"===c.ctype?D.fillshape(c,b):k};t.clip$1=function(a,b){var c=A(a[0]);return"shape"===c.ctype?D.clipshape(c,b):"list"===c.ctype?(c=t.polygon$1(a,[]),t.clip$1([c],[])):k};t.plot$1=function(a,b){return t.plot$2([a[0],null],b)};t.plot$2=function(a,b){function c(a){return"number"===a.ctype&&l._helper.isAlmostReal(a)}function d(a,c,b,h,e){n++;c=+c.value.real;e=+h.value.real;h=c*E.a-e*E.b+E.tx;c=c*E.c-e*E.d-E.ty;a=+a.value.real;e=+b.value.real;b=a*E.a-e*E.b+E.tx;a=
-a*E.c-e*E.d-E.ty;p?(y.lineTo(b,a),y.lineTo(h,c)):(y.beginPath(),y.moveTo(b,a),y.lineTo(h,c),p=!0)}function e(a,b,h,g,k){var n=c(h),q=c(g);if(.001>k)!f&&p&&(y.stroke(),p=!1);else if(n||q){var t=l.real((a.value.real+b.value.real)/2);J.setvar(B,t);var v=A(w),u=c(v);if(n&&q&&u){var Nb=h.value.real,q=v.value.real,u=g.value.real;if(n=1>Math.abs(Nb+u-2*q)/m){var x=l.real((a.value.real+t.value.real)/2);J.setvar(B,x);var x=A(w),fc=l.real((t.value.real+b.value.real)/2);J.setvar(B,fc);fc=A(w);Nb=Math.abs(Nb+
-q-2*x.value.real)/m;q=Math.abs(q+u-2*fc.value.real)/m;n=n&&1>Nb&&1>q}n?(d(a,t,h,v,k/2),d(t,b,v,g,k/2)):(e(a,t,h,v,k/2),e(t,b,v,g,k/2))}else e(a,t,h,v,k/2),e(t,b,v,g,k/2)}}var f=!1,m=.2/Kb,n=0,p=!1,q=-10,t=10,v=.1,u=1E3,w=a[0],B;if(null!==a[1]&&"variable"===a[1].ctype)B=a[1].name;else{var C=D.plotvars(w);B="#";-1!==C.indexOf("t")&&(B="t");-1!==C.indexOf("z")&&(B="z");-1!==C.indexOf("y")&&(B="y");-1!==C.indexOf("x")&&(B="x")}J.newvar(B);var E=z.drawingstate.matrix;x.handleModifs(b,{color:!0,alpha:!0,
-size:!0,dashpattern:!0,dashtype:!0,dashing:!0,lineCap:!0,lineJoin:!0,miterLimit:!0,connect:function(a){"boolean"===a.ctype&&(f=a.value)},start:function(a){"number"===a.ctype&&(q=a.value.real)},stop:function(a){"number"===a.ctype&&(t=a.value.real)},steps:function(a){"number"===a.ctype&&(u=a.value.real)}});y.strokeStyle=x.lineColor;y.lineWidth=x.lsize;var F,G,H,I,p=!1,C=l.real(14.32);J.setvar(B,C);H=A(w);if("number"!==H.ctype){if(g.isNumberVector(H).value&&2===H.value.length){p=!1;v=(t-q)/u;for(C=q;C<
-t;C+=v)J.setvar(B,l.real(C)),I=A(w),g.isNumberVector(I).value&&2===I.value.length&&(F=+I.value[0].value.real,G=+I.value[1].value.real,I=F*E.a-G*E.b+E.tx,F=F*E.c-G*E.d-E.ty,p?y.lineTo(I,F):(y.beginPath(),y.moveTo(I,F),p=!0));y.stroke();J.removevar(B)}return k}for(I=q;I<t+v;I+=v)C=l.real(I),J.setvar(B,C),H=A(w),C.value.real>q&&e(F,C,G,H,v),F=C,G=H;J.removevar(B);p&&y.stroke();return k};t.plotX$1=function(a,b){var c=a[0],d=D.plotvars(c),e="#";-1!==d.indexOf("t")&&(e="t");-1!==d.indexOf("z")&&(e="z");
--1!==d.indexOf("y")&&(e="y");-1!==d.indexOf("x")&&(e="x");J.newvar(e);d=z.drawingstate.matrix;y.fillStyle=z.drawingstate.linecolor;y.lineWidth=1;y.lineCap=x.lineCap;y.lineJoin=x.lineJoin;y.miterLimit=x.miterLimit;for(var f=!1,g=-10;10>g;g+=.01){J.setvar(e,l.real(g));var m=A(c);if("number"===m.ctype){var n=+m.value.real,m=g*d.a-n*d.b+d.tx,n=g*d.c-n*d.d-d.ty;f?y.lineTo(m,n):(y.beginPath(),y.moveTo(m,n),f=!0)}}y.stroke();J.removevar(e);return k};D.plotvars=function(a){function b(a,c){var h={},d;for(d=
-a.length-1;0<=d;--d)h[a[d]]=a[d];for(d=c.length-1;0<=d;--d)h[c[d]]=c[d];d=[];for(var e in h)h.hasOwnProperty(e)&&d.push(h[e]);return d}function c(a,c){for(var b=0;b<a.length;b++)a[b]===c&&(a.splice(b,1),b--);return a}var d,e,f,g;if("variable"===a.ctype)return[a.name];if("infix"===a.ctype)return d=D.plotvars(a.args[0]),a=D.plotvars(a.args[1]),b(d,a);if("list"===a.ctype){f=a.value;e=[];for(g=0;g<f.length;g++)d=D.plotvars(f[g]),e=b(e,d);return e}if("function"===a.ctype){f=a.args;e=[];for(g=0;g<f.length;g++)d=
-D.plotvars(f[g]),e=b(e,d);"apply"!==a.oper&&"select"!==a.oper&&"forall"!==a.oper&&"sum"!==a.oper&&"product"!==a.oper&&"repeat"!==a.oper&&"min"!==a.oper&&"max"!==a.oper&&"sort"!==a.oper||"variable"!==a.args[1].ctype||(e=c(e,a.args[1].name));return e}return[]};t.clrscr$0=function(a,b){"undefined"!==typeof da&&"undefined"!==typeof ca&&y.clearRect(0,0,da,ca);return k};t.repaint$0=function(a,b){e();return k};t.screenbounds$0=function(a,b){var c=w.withUsage(g.realVector(z.to(0,0)),"Point"),d=w.withUsage(g.realVector(z.to(da,
-0)),"Point"),e=w.withUsage(g.realVector(z.to(da,ca)),"Point"),f=w.withUsage(g.realVector(z.to(0,ca)),"Point");return g.turnIntoCSList([c,d,e,f])};t.createimage$3=function(a,b){var c=A(a[0]),d=B(a[1]),e=B(a[2]);if("number"!==d.ctype||"number"!==e.ctype||"string"!==c.ctype)return k;var f=document.createElement("canvas");f.id=c.value;f.width=d.value.real;f.height=e.value.real;f.style.display="none";document.body.appendChild(f);Xa[c.value]=aa(f,!1);return k};t.clearimage$1=function(a,b){var c=A(a[0]);
-if("string"!==c.ctype&&"image"!==c.ctype)return k;var c=La(c),d=c.img;if("undefined"===typeof d||null===d)return k;var e=c.width,f=c.height;d.getContext("2d").clearRect(0,0,e,f);c.generation++;return k};t.canvas$4=function(a,b){var c=B(a[0]),d=B(a[1]),e=A(a[2]),f=a[3],g=D.extractPoint(c),l=D.extractPoint(d);if(!g.ok||!l.ok||"string"!==e.ctype&&"image"!==e.ctype)return k;e=La(e);if(!e||!e.img.getContext)return k;var d=e.img,m=e.width,c=e.height,n=l.x-g.x,p=l.y-g.y,q=g.x-p*c/m,t=g.y+n*c/m,p=l.x-p*c/
-m,n=l.y+n*c/m,l=z.from(g.x,g.y,1),q=z.from(q,t,1),p=z.from(p,n,1),g=l[0],t=l[1],n=q[0],v=q[1],u=p[0],w=p[1],q=m*(t-v)/((g-n)*(t-w)-(g-u)*(t-v)),m=m*(g-n)/((t-v)*(g-u)-(t-w)*(g-n)),p=-q*g-m*t,l=(c*(t-w)-c*(t-v))/((g-n)*(t-w)-(g-u)*(t-v)),n=(c*(g-u)-c*(g-n))/((t-v)*(g-u)-(t-w)*(g-n)),c=c-l*g-n*t,d=d.getContext("2d"),g=y;y=d;y.save();y.transform(q,l,m,n,p,c);e.generation++;A(f);y.restore();y=g};t.canvas$5=function(a,b){var c=B(a[0]),d=B(a[1]),e=B(a[2]),f=A(a[3]),g=a[4],c=D.extractPoint(c),l=D.extractPoint(d),
-m=D.extractPoint(e);if(!c.ok||!l.ok||!m.ok||"string"!==f.ctype&&"image"!==f.ctype)return k;f=La(f);if(!f||!f.img.getContext)return k;var e=f.img,n=f.width,d=f.height,p=z.from(c.x,c.y,1),q=z.from(l.x,l.y,1),l=z.from(m.x,m.y,1),c=p[0],m=p[1],t=q[0],v=q[1],u=l[0],w=l[1],l=((0-n)*(m-w)-0*(m-v))/((c-t)*(m-w)-(c-u)*(m-v)),n=((0-n)*(c-u)-0*(c-t))/((m-v)*(c-u)-(m-w)*(c-t)),q=0-l*c-n*m,p=((d-d)*(m-w)-(d-0)*(m-v))/((c-t)*(m-w)-(c-u)*(m-v)),t=((d-d)*(c-u)-(d-0)*(c-t))/((m-v)*(c-u)-(m-w)*(c-t)),d=d-p*c-t*m,e=
-e.getContext("2d"),c=y;y=e;y.save();y.transform(l,p,n,t,q,d);f.generation++;A(g);y.restore();y=c};t.screenresolution$0=function(a,b){return l.real(z.drawingstate.matrix.a)};t.layer$1=function(a,b){};t.imagesize$1=function(a,b){var c=La(B(a[0]));return c?g.realVector([+c.width,+c.height]):k};t.imageready$1=function(a,b){var c=La(B(a[0]));return w.bool(!(!c||!c.ready))};t.drawimage$2=function(a,b){function c(){var a=1,c=1,d=1,f=1,r=0,l=1,n=D.extractPoint(e);if(!n.ok)return k;m=La(m);if(!m)return k;
-y.save();var p;void 0!==b.angle&&(p=A(b.angle),"number"===p.ctype&&(r=p.value.real));void 0!==b.rotation&&(p=A(b.rotation),"number"===p.ctype&&(r=p.value.real));void 0!==b.scale&&(p=B(b.scale),"number"===p.ctype&&(c=a=p.value.real),g.isNumberVector(p).value&&2===p.value.length&&(a=p.value[0].value.real,c=p.value[1].value.real));void 0!==b.scalex&&(p=A(b.scalex),"number"===p.ctype&&(a=p.value.real));void 0!==b.scaley&&(p=A(b.scaley),"number"===p.ctype&&(c=p.value.real));void 0!==b.flipx&&(p=A(b.flipx),
-"boolean"===p.ctype&&p.value&&(d=-1));void 0!==b.flipy&&(p=A(b.flipy),"boolean"===p.ctype&&p.value&&(f=-1));void 0!==b.alpha&&(p=A(b.alpha),"number"===p.ctype&&(l=p.value.real));var q=z.drawingstate.matrix,Q=z.drawingstate.initialmatrix,t=m.width,v=m.height;p=n.x*q.a-n.y*q.b+q.tx;var u=n.x*q.c-n.y*q.d-q.ty,w=(n.x+1)*q.a-n.y*q.b+q.tx-p,q=(n.x+1)*q.c-n.y*q.d-q.ty-u,Ga=(n.x+1)*Q.a-n.y*Q.b+Q.tx-(n.x*Q.a-n.y*Q.b+Q.tx),Q=(n.x+1)*Q.c-n.y*Q.d-Q.ty-(n.x*Q.c-n.y*Q.d-Q.ty),n=Math.sqrt(w*w+q*q)/Math.sqrt(Ga*
-Ga+Q*Q),w=-Math.atan2(w,q)+Math.atan2(Ga,Q),q=z.drawingstate.matrix.sdet/72,a=a*q,c=c*q;1!==l&&(y.globalAlpha=l);y.translate(p,u);y.scale(a*d*n,c*f*n);y.rotate(r+w);y.translate(-p,-u);y.translate(-t/2,-v/2);a=m;a.drawTo?a.drawTo(y,p,u):y.drawImage(a.img,p,u);y.globalAlpha=1;y.restore()}function d(){var a=1,c=1,g=1,r=1,n=D.extractPoint(e),p=D.extractPoint(f),q;if(!n.ok||!p.ok)return k;m=La(m);if(!m)return k;var t=m.width,v=m.height;if(0===l)q={},q.x=n.x-(p.y-n.y),q.y=n.y+(p.x-n.x),r=v/t;else if(q=
-D.extractPoint(l),!n.ok)return k;y.save();var u;void 0!==b.alpha&&(u=A(b.alpha),"number"===u.ctype&&(a=u.value.real));void 0!==b.aspect&&(u=A(b.aspect),"number"===u.ctype&&(r=u.value.real));void 0!==b.flipx&&(u=A(b.flipx),"boolean"===u.ctype&&u.value&&(c=-1));void 0!==b.flipy&&(u=A(b.flipy),"boolean"===u.ctype&&u.value&&(g=-1));u=z.drawingstate.matrix;1!==a&&(y.globalAlpha=a);a=n.x*u.a-n.y*u.b+u.tx;n=n.x*u.c-n.y*u.d-u.ty;y.transform(p.x*u.a-p.y*u.b+u.tx-a,p.x*u.c-p.y*u.d-u.ty-n,q.x*u.a-q.y*u.b+u.tx-
-a,q.x*u.c-q.y*u.d-u.ty-n,a,n);y.scale(1/t,-1/v*r);y.translate(t/2,-v/2);y.scale(c,g);y.translate(-t/2,v/2);y.translate(0,-v);c=m;c.drawTo?c.drawTo(y,0,0):y.drawImage(c.img,0,0);y.globalAlpha=1;y.restore()}var e,f,l,m;return 2===a.length?(e=B(a[0]),m=B(a[1]),c()):3===a.length?(e=B(a[0]),f=B(a[1]),l=0,m=B(a[2]),d()):4===a.length?(e=B(a[0]),f=B(a[1]),l=B(a[2]),m=B(a[3]),d()):k};t.drawimage$3=t.drawimage$2;t.drawimage$4=t.drawimage$2;t.allimages$0=function(){var a=[];Object.keys(Xa).forEach(function(b){a.push({ctype:"string",
-value:b})});return g.turnIntoCSList(a)};t.cameravideo$0=function(a,b){function c(a){return{video:{width:a,advanced:[{width:{max:a,min:a}},{width:{ideal:a}}]},audio:!1}}var d=!0,e={};if(void 0!==b.resolution){var f=A(b.resolution);"string"===f.ctype&&"maximal"===f.value?d=!0:"number"===f.ctype?(d=!1,e=c(f.value.real)):g._helper.isNumberVecN(f,2)&&(d=!1,e=c(f.value[0].value.real),f=f.value[1].value.real,10>f||!Number.isInteger(f)?(e.video.aspectRatio=f,e.video.advanced[0].aspectRatio={min:f,max:f},
-e.video.advanced[1].aspectRatio={ideal:f}):(e.video.height=f,e.video.advanced[0].height={min:f,max:f},e.video.advanced[1].height={ideal:f}))}d&&(e=[320,640,1024,1280,1920,2560],e=e.map(function(a){return{width:{min:a}}}),e={video:{width:16E3,height:9E3,advanced:e},audio:!1});var d=null,l=navigator.mediaDevices&&navigator.mediaDevices.getUserMedia;l?d=function(a,c){navigator.mediaDevices.getUserMedia(e).then(a,c)}:(l=navigator.getUserMedia||navigator.webkitGetUserMedia||navigator.mozGetUserMedia||
-navigator.msGetUserMedia)&&(d=function(a,c){l.call(navigator,e,a,c)});if(!d)return console.warn("getUserMedia call not supported"),k;var m=document.createElement("video");m.autoplay=!0;f=aa(m,!0);console.log("Opening stream.");d(function(a){a=window.URL.createObjectURL(a);m.src=a;m.addEventListener("loadeddata",I)},function(a){console.error("Could not get user video:",String(a),a)});return f};t.playvideo$1=function(a,b){var c=La(B(a[0]));c.live&&c.img.play&&c.img.play();return k};t.pausevideo$1=function(a,
-b){var c=La(B(a[0]));c.live&&c.img.pause&&c.img.pause();return k};var Db;t.imagergba$3=function(a,b){var c=La(B(a[0])),d=B(a[1]),e=B(a[2]);if(!c||"number"!==d.ctype||"number"!==e.ctype||!c.ready)return k;d=Math.round(d.value.real);e=Math.round(e.value.real);if(!Fa(d)||!Fa(e))return k;c=rb(c,d,e,1,1);return g.realVector([255*c[0],255*c[1],255*c[2],c[3]])};t.imagergb$3=t.imagergba$3;t.imagergba$4=function(a,b){var c=La(B(a[2]));if(!c||!c.ready)return k;var d=c.width,e=c.height,f=M(a[0]),l=M(a[1]),m=
-M(g.realVector([0,e,1])),d=M(g.realVector([d,e,1]));if(f===k||l===k||n===k)return k;var n=g.ii,e=g.jj,m=D.basismap(m,d,n,e),f=D.basismap(f,l,e,n),n=M(a[3]);var p=D.extractPoint(w.mult(m,w.mult(g.adjoint3(f),n)));if(p.ok){var l=c.width,m=c.height,n=!0,q=!1;void 0!==b.interpolate&&(f=A(b.interpolate),"boolean"===f.ctype&&(n=f.value));void 0!==b.repeat&&(f=A(b.repeat),"boolean"===f.ctype&&(q=f.value));n&&(p.x-=.5,p.y-=.5);q&&(p.x=(p.x%l+l)%l,p.y=(p.y%m+m)%m);d=Math.floor(p.x);e=Math.floor(p.y);if(Fa(d)&&
-Fa(e)){f=[0,0,0,0];if(n){var n=p.x-d,p=p.y-e,t=rb(c,d,e,2,2);if(q){if(d===l-1||e===m-1)var q=rb(c,(d+1)%l,e,1,1),u=rb(c,d,(e+1)%m,1,1),c=rb(c,(d+1)%l,(e+1)%m,1,1),t=t.slice(0,4).concat(q,u,c)}else{if(-1===d||d===l-1)n=Math.round(n);if(-1===e||e===m-1)p=Math.round(p)}for(c=0;4>c;c++)f[c]=(1-p)*((1-n)*t[c]+n*t[c+4])+p*((1-n)*t[c+8]+n*t[c+12])}else f=rb(c,d,e,1,1);c=g.realVector(f)}else c=k}else c=k;return c};t.imagergb$4=function(a,b){var c=t.imagergba$4(a,b);return c===k?k:g.turnIntoCSList(c.value.slice(0,
-3))};"use strict";var re=[{key:[":"],field:["."],deg:["\u00b0"],take:["_"]},{functionCall:!0},{rassoc:!0,pow:["^"],sqrt:["\u221a"]},{mul:["*","\u2062","\u22c5","\u00b7"],cross:["\u00d7"],div:["/","\u00f7","\u2215","\u2236"]},{add:["+"],sub:["-","\u2212"],neg:["!","\u00ac"]},{seq:[".."]},{eq:["==","\u225f"],ne:["!=","<>","\u2260"],lt:["<"],gt:[">"],le:["<=","\u2264","\u2266"],ge:[">=","\u2265","\u2267"],aeq:["~=","\u2248"],ane:["~!=","\u2249"],alt:["~<","\u2a89"],agt:["~>","\u2a8a"],ale:["~<=","\u2a85"],
-age:["~>=","\u2a86"],"in":["\u2208"],nin:["\u2209"]},{and:["&","\u2227"],or:["%","\u2228"]},{rassoc:!0,prepend:["<:"]},{concat:["++","\u222a"],remove:["--","\u2216"],common:["~~","\u2229"],append:[":>"]},{rassoc:!0,assign:["="],define:[":="],undefine:[":=_"],bdefine:["::="]},{seq:[";"]},{modif:["->","\u2192"]},{rassoc:!0,list:[","]}],se=["+","-"],te=["!","\u221a"],ue=["\u00b0",":=_"],ve=[";",","],Cc=[],xa={},cd;(function(){var a=0;re.forEach(function(b){a+=2;var c=!!b.rassoc;b.functionCall&&(cd=a);
-for(var d in b){var e=b[d];if("boolean"!==typeof e)for(var f={name:d,sym:e[0],symbols:e,rassoc:c,precedence:a,prefix:!1,postfix:!1,infix:!0,bare:!1},g=0;g<e.length;++g){var l=e[g];if(xa.hasOwnProperty(l))throw Error("Duplicate operator: "+l);xa[l]=f;Cc.push(l)}}});se.forEach(function(a){xa[a].prefix=!0});te.forEach(function(a){xa[a].prefix=!0;xa[a].infix=!1});ue.forEach(function(a){xa[a].postfix=!0;xa[a].infix=!1});ve.forEach(function(a){xa[a].prefix=!0;xa[a].postfix=!0;xa[a].infix=!0;xa[a].bare=
-!0})})();Cc.sort(function(a,b){return b.length-a.length});var we="(?:[0-9](?: [0-9])*(?: \\.(?! \\.)(?: [0-9])*)?|\\.(?: [0-9])+)(?: [Ee](?: [+-])?(?: [0-9])+)?".replace(/ /g,"[ \t]*"),xe="(?:[\u207a\u207b] )?[\u2070\u00b9\u00b2\u00b3\u2074\u2075\u2076\u2077\u2078\u2079](?: [\u2070\u00b9\u00b2\u00b3\u2074\u2075\u2076\u2077\u2078\u2079])*".replace(/ /g,"[ \t]*"),ye="(?:[\u208a\u208b] )?[\u2080\u2081\u2082\u2083\u2084\u2085\u2086\u2087\u2088\u2089](?: [\u2080\u2081\u2082\u2083\u2084\u2085\u2086\u2087\u2088\u2089])*".replace(/ /g,
-"[ \t]*"),Dc=function(a,b,c){var d,e,f=0,g="(?:[",l=b.length;for(d=0;d<l;++d)e=b.charCodeAt(d),55296<=e?(g+="]|"+b.charAt(d)+"[",f=56320):(g+=String.fromCharCode(e=f=a[e-32]+f),f+=a[b.charCodeAt(++d)-32],f!==e&&(f!==e+1&&(g+="-"),g+=String.fromCharCode(f)));return g+"]|["+c+"][\udc00-\udfff])"}([2,0,106,3,4,1,6,5,7,11,17,8,12,21,9,22,30,10,15,24,25,16,13,42,46,14,18,19,29,37,27,28,35,26,32,36,40,43,47,53,20,48,50,56,33,34,39,51,52,55,63,64,65,68,85,23,31,38,45,49,105,59,66,69,72,88,102,114,117,128,
-157,191,41,44,54,60,67,70,71,73,74,75,76,80,81,82,83,84,86,87,89,93,94,98,99,107,108,116,122,130,132,134,138,160,165,185,195,196,255,268,277,310,332,339,362,365,390,449,457,470,512,513,541,568,582,619,673,726,768,820,921,991,1164,2684,6581,8453,11171,20949],"T4(4I!)!'!&/ 0 \u0096')2$+! !\u0083$ %## !(! ! ; u \u0086.\u0088 =#!+YoA& 87C% } !5%+%) #!*! <0a,!4B1%'!&-'!1!$!33`HsG$!;!+.52'(#%#- & !$#$!*!9% 2%H''%#- & % % %B# !H *+ - & % $$!;!5%3!,(#%#- & % $$!X% 5!:! '$ #$% ! %$%$ $)W!G( / 2$!> &%C( / . $$!L! %5%;( D#!*!* 4'&*$W + !#&]F %6&]% !#% !#!(# & ! !#% # %1!#$ !/#L!S( @?$\u00817-!*''#$!$%+ ',6!:= !&!#7 \u0090 ##& ! ##D ##B ##& ! ##9 K ##^Y2*V#'$\u009d#5 4&p((+, #2*2*2, 5OC!'!Uy.D !&_)0J<#$,E'4Q/1Pv!|8:&K<9%)E>@7 )@\u0080# #$%1gT\u008e#'#=#'#( ! ! ! 0#P & !$ &$##'',& &d!9!*,b!'!#. !$$(! ! ! # 1##&$'!G%\u00a58 8 \u0084(#$%6= !&!#Q+!*/1& & & & & & & &t!\u0097%E$&%'V( z #&D${:Aj2\u0099\u00a6q\u00a9E\u00a4UZ#\u008d$2)%-8*0#_J+#b#M#(S1 # /0O2[R'$! !6>)/A?+8<!*$ .)$ D3 (-/$!$[ !$%#$#! !4 #1+ 6'#'#'1& & 7 .)c0\u00a86/'I\u00a7\u0093#\\N&6$&! . , $ ! % % \u007fM\u0092;R#Gh)d$ \u0085=4(4,a$'#'#'# \ud800!) 4 : % 9#6@\u0082\u0094?$IIX*5 ((=)<#@'(\ud801!f~N.Of\u008f1-)(\ud802!'#! E %$!#/)/10^: %)-)4nQ(%T!5# AZ?$?C( >?G)-):9*\ud803!`KJ9J\ud804#PriL3>@7M$!6F2#/! !C* 3V& ! # 9 .+8N(#%#- & % $$!;!6$\ud805eF-% !\u008987#=F-!k7x4\ud806\u0087RB!\u0095K\ud808!\u00a2\ud809e\u008a\ud80d!8\ud811!\u009c\ud81a!\u009b+0c<;F*#BH&:\ud81b\u00a0U,!l,\ud82c!%\ud82f!\"&,$++.\ud835!w m %#!#%## ) ! & S ##( & > # $ !$& \u0091#3 3 0 3 0 3 0 3 0 3 (\ud83a!\u008b\ud83b\u0098# A % !#! . # ! !(!'! ! ! % !#! ! ! ! ! % !## & # # ! . 5& $ 5\ud869!\u009f7\u008c\ud86d!\u00a1,g\ud86e!<#\u00a3\ud873!\u009e\ud87e!\u009a",
-"\ud80c\ud840-\ud868\ud86a-\ud86c\ud86f-\ud872"),ze=("#(?: [1-9])?|(?:'|"+Dc+")(?: (?:[0-9']|"+Dc+"))*").replace(/ /g,"[ \t]*"),$c=["([ \t\n]+)|(//.*)|(/\\*)","("+we+")","("+Cc.map(Zc).join("|")+")","("+"[](){}||".split("").map(Zc).join("|")+")","("+ye+")","("+xe+")","("+ze+")",'("[^"]*")|($)'].join("|"),Ae=new RegExp("[ \t]*".replace(/\*$/,"+"),"g"),Ec="ANY WS COMMENT START_COMMENT NUM OP BRA SUB SUP ID STR EOF".split(" ");(function(){var a=(new RegExp($c,"g")).exec("");if(a.hasOwnProperty(Ec.length))throw Error("RE has more groups than expected");
-if(!a.hasOwnProperty(Ec.length-1))throw Error("RE has fewer groups than expected");})();kb.prototype.advanceBy=function(a){this.advanceTo(this.pos+a)};kb.prototype.advanceTo=function(a){for(this.pos=a;this.bols[0]<=a;)this.bol=this.bols.shift(),this.line++};kb.prototype.curPos=function(){return{row:this.line,col:this.pos-this.bol,pos:this.pos}};kb.prototype.nextInternal=function(){var a=this.re.exec(this.input);if(a.index!==this.pos)throw ha("Invalid token",this.curPos(),this.input.substring(this.pos,
-a.index));var b=this.curPos();this.advanceBy(a[0].length);var c=this.curPos(),d;for(d=1;null==a[d];++d);return{start:b,end:c,raw:a[0],text:a[0].replace(Ae,""),toktype:Ec[d]}};kb.prototype.next=function(){var a;do if(a=this.nextInternal(),"START_COMMENT"===a.toktype){var b=/\*\/|\/\*/g;b.lastIndex=a.start.pos+2;for(var c=1,d;0<c;)if(d=b.exec(this.input))"/*"===d[0]?++c:--c;else throw ha("Unterminated comment",a.start,a.text);this.re.lastIndex=b.lastIndex;this.advanceTo(b.lastIndex);a.end=this.curPos();
-a.raw=this.input.substring(a.start.pos,a.end.pos);a.text=a.raw;a.toktype="COMMENT"}while("WS"===a.toktype||"COMMENT"===a.toktype);return a};var Be={ctype:"void"};Eb.prototype.postprocess=function(a){if(null===a)return Be;if(a){if("infix"===a.ctype)if(":="===a.oper){var b=a.args[0];if("function"===b.ctype)b.args.forEach(function(c){if(null===c||"variable"!==c.ctype)throw ha("Function argument must be an identifier",c.start||a.start);});else if("variable"!==b.ctype)throw ha(a.oper+" can only be used to define functions or variables",
-a.start);}else if(","===a.oper)throw ha("comma may only be used to delimit list elements",a.start);a.args&&(a.args=a.args.map(this.postprocess,this));if(a.modifs)for(var c in a.modifs)a.modifs[c]=this.postprocess(a.modifs[c]);if("paren"===a.ctype)return a.args[0];if("infix"===a.ctype){if("."===a.oper){if(!a.args[1]||"variable"!==a.args[1].ctype)throw ha("Field name must be identifier",a.start,a.text);a.ctype="field";a.obj=a.args[0];a.key=a.args[1].name;delete a.args}this.infixmap&&(a.impl=this.infixmap[a.oper])}else"variable"===
-a.ctype?this.usedVariables[a.name]=!0:"function"===a.ctype&&(this.usedFunctions[a.oper]=!0)}if("infix"===a.ctype)return{ctype:"infix",oper:String(a.oper),args:[a.args[0],a.args[1]],impl:a.impl};if("variable"===a.ctype)return{ctype:"variable",name:String(a.name)};if("number"===a.ctype)return{ctype:"number",value:{real:+a.value.real,imag:+a.value.imag}};if("string"===a.ctype)return{ctype:"string",value:String(a.value)};if("list"===a.ctype)return{ctype:"list",value:a.value};if("function"===a.ctype)return{ctype:"function",
-oper:String(a.oper),args:a.args,modifs:a.modifs};if("field"===a.ctype)return{ctype:"field",obj:a.obj,key:String(a.key)};throw Error("Unsupported AST node of type "+a.ctype);};Eb.prototype.parse=function(a){try{var b=bd(new kb(a));if("EOF"!==b.closedBy.toktype)throw ha("Closing bracket never opened.",b.closedBy.start,b.closedBy.text);return this.postprocess(b.expr)}catch(c){return c.ctype="error",c}};"undefined"!==typeof process&&"undefined"!==typeof module&&"undefined"!==typeof module.exports&&"undefined"===
-typeof window&&(module.exports.Parser=Eb,module.exports.Tokenizer=kb,module.exports.unicodeLetters=Dc,module.exports.parse=function(a){return(new Eb).parse(a)});var Nc={},Fc;Fc=[0,0,0,0,0,0,0,0,0,0,0,0];t.playsin$1=function(a,b){var c=B(a[0]),d=0;if("number"===c.ctype){var e;void 0!==b.line&&(e=A(b.line),"number"===e.ctype&&(d=Math.floor(e.value.real),0>d&&(d=0),10<d&&(d=10)));c=c.value.real;0!==Fc[d]&&Fc[d].set({freq:c})}return k};var P={printArr:function(a){for(var b=a.value.length,c=[],d=[],e=
-!1,f=0;f<b;f++)c[f]=a.value[f].value.real,d[f]=a.value[f].value.imag,0!==d[f]&&(e=!0);console.log(c);e&&console.log(d)},zero:function(a){for(var b=[],c=l.real(0),d=0;d<a.value.real;d++)b[d]=c;return g.turnIntoCSList(b)},number:function(a,b){var c=P.zero(b);c.value[0]=a;return c},variable:function(a,b){var c=P.zero(b);c.value[0]=a;c.value[1]=l.real(1);return c},add:function(a,b){return g.add(a,b)},sub:function(a,b){return g.sub(a,b)},mult:function(a,b){if(a.value.length!==b.value.length)return console.error("dims don't fit return nada"),
-k;for(var c=a.value.length,d=P.zero(l.real(c)),e=l.real(0),f=0;f<c;f++){for(var g=0;g<=f;g++)e=l.add(e,l.mult(a.value[g],b.value[f-g]));d.value[f]=e;e=l.real(0)}return d},pow:function(a,b){if(0>b.value.real||b.value.real!==Math.floor(b.value.real))return P.root(a,b);for(var c=a,d=1;d<b.value.real;d++)c=P.mult(c,a);return c},root:function(a,b){var c=l.real(0),d=l.real(1),e=l.add(d,b),f=a.value.length,g=P.zero(l.real(f));g.value[0]=l.pow(a.value[0],b);for(var k=c,m,n,p=1;p<f;p++){n=l.real(p);for(var q=
-1;q<=p;q++)m=l.mult(e,l.real(q)),m=l.div(m,n),m=l.sub(m,d),m=l.mult(m,a.value[q]),m=l.mult(m,g.value[p-q]),k=l.add(k,m);k=l.div(k,a.value[0]);g.value[p]=k;k=c}return g},findFirstNoneZero:function(a,b,c){for(var d=Infinity,e=Infinity,f=c;f<a.value.length;f++)if(1E-12<l.abs2(a.value[f]).value.real){d=f;break}for(a=c;a<b.value.length;a++)if(1E-12<l.abs2(b.value[a]).value.real){e=a;break}return[d,e]},div:function(a,b){if(a.value.length!==b.value.length)return console.log("dims don't fit - return nada"),
-k;for(var c=a.value.length,d=l.real(0),e=P.zero(l.real(c)),f=d,g,m=0;m<c;m++){g=P.findFirstNoneZero(a,b,m);m<g[0]&&g[0]===g[1]&&Infinity!==g[0]&&(a.value.splice(m,g[0]),b.value.splice(m,g[0]),e.value.splice(m,g[0]),c-=g[0]);g=a.value[m];for(var n=0;n<m;n++)f=l.add(f,l.mult(e.value[n],b.value[m-n]));g=l.sub(g,f);g=l.div(g,b.value[0]);e.value[m]=g;f=d}return e},exp:function(a){var b=l.real(0),c=a.value.length,d=P.zero(l.real(c)),e=b,f;d.value[0]=l.exp(a.value[0]);for(var g=1;g<c;g++){for(var k=1;k<=
-g;k++)f=l.mult(l.real(k),a.value[k]),f=l.mult(f,d.value[g-k]),e=l.add(e,f);d.value[g]=l.div(e,l.real(g));e=b}return d},log:function(a){var b=l.real(0),c=a.value.length,d=P.zero(l.real(c));d.value[0]=l.log(a.value[0]);for(var e=b,f,g,k=1;k<c;k++){f=a.value[k];for(var m=1;m<k;m++)g=l.mult(l.real(m),d.value[m]),g=l.mult(g,a.value[k-m]),e=l.add(e,g);e=l.div(e,l.real(k));f=l.sub(f,e);f=l.div(f,a.value[0]);d.value[k]=f;e=b}return d},sincos:function(a){var b=l.real(0),c=a.value.length,d=P.zero(l.real(c)),
-e=P.zero(l.real(c));d.value[0]=l.sin(a.value[0]);e.value[0]=l.cos(a.value[0]);for(var f=b,g=b,k,m,n,p=1;p<c;p++){n=l.real(p);for(var q=1;q<=p;q++)m=l.mult(l.real(q),a.value[q]),k=l.mult(m,e.value[p-q]),m=l.mult(m,d.value[p-q]),g=l.add(g,k),f=l.add(f,m);g=l.div(g,n);f=l.div(f,l.neg(n));d.value[p]=g;e.value[p]=f;f=g=b}P.sinsave=d;P.cossave=e;return[d,e]},sin:function(a){return P.sincos(a)[0]},cos:function(a){return P.sincos(a)[1]},faculty:function(a){var b=[];b[0]=l.real(1);for(var c=1,d=1;d<=a.value.real;d++)c*=
-d,b[d]=l.real(c);return b=g.turnIntoCSList(b)},diff:function(a,b,c,d){var e;if("variable"===a.ctype)e=a.name!==b?P.number(A(a),d):P.variable(c,d);else if("number"===a.ctype)e=P.number(a,d);else{if("infix"===a.ctype){if("*"===a.oper)return P.mult(P.diff(a.args[0],b,c,d),P.diff(a.args[1],b,c,d));if("^"===a.oper)return P.pow(P.diff(a.args[0],b,c,d),P.diff(a.args[1],b,c,d).value[0]);if("/"===a.oper)return P.div(P.diff(a.args[0],b,c,d),P.diff(a.args[1],b,c,d));if("+"===a.oper)return P.add(P.diff(a.args[0],
-b,c,d),P.diff(a.args[1],b,c,d));if("-"===a.oper)return P.sub(P.diff(a.args[0],b,c,d),P.diff(a.args[1],b,c,d));console.log("infix not found",a.oper);return k}if("function"===a.ctype){if("exp$1"===a.oper)return P.exp(P.diff(a.args[0],b,c,d));if("log$1"===a.oper)return P.log(P.diff(a.args[0],b,c,d));if("sin$1"===a.oper)return P.sin(P.diff(a.args[0],b,c,d));if("cos$1"===a.oper)return P.cos(P.diff(a.args[0],b,c,d))}else return console.log("ctype not found",a.ctype),k}return e},adevaluate:function(a,b,
-c,d){a=P.diff(a,b,c,d);d=P.faculty(d);for(b=2;b<a.value.length;b++)a.value[b]=l.mult(a.value[b],d.value[b]);return a},autodiff:function(a,b,c,d){for(var e=[],f=c.value.length,l,k=0;k<f;k++)l=P.adevaluate(a,b,c.value[k],d),e[k]=l;return e=g.turnIntoCSList(e)}},x={handleModifs:function(a,b){x.dashing&&x.unSetDash();x.colorraw=null;x.fillcolorraw=null;x.fillrule="nonzero";x.size=null;0>=x.psize&&(x.psize=0);0>=x.lsize&&(x.lsize=0);x.overhang=1;x.dashing=!1;x.isArrow=!1;x.arrowSides="==>";x.arrowposition=
-1;x.headlen=10;x.arrowShape=x.arrowShapes.line;x.alpha=z.drawingstate.alpha;x.fillalpha=0;x.bold="";x.italics="";x.family="sans-serif";x.align=0;x.xOffset=0;x.yOffset=0;x.lineCap="round";x.lineJoin="round";x.miterLimit=10;var c,d;for(c in a){var e=a[c];e&&((d=b[c])?(!0===d&&(d=x.modifHandlers[c]),d(A(e))):console.log("Modifier not supported: "+c))}null!==x.size?x.psize=x.lsize=x.size:(x.psize=z.drawingstate.pointsize,x.lsize=z.drawingstate.linesize);x.dashing&&x.dashing(x.lsize);null!==x.colorraw?
-x.pointColor=x.lineColor=x.textColor=x.makeColor(x.colorraw):1===x.alpha?(x.pointColor=z.drawingstate.pointcolor,x.lineColor=z.drawingstate.linecolor,x.textColor=z.drawingstate.textcolor):(x.pointColor=x.makeColor(z.drawingstate.pointcolorraw),x.lineColor=x.makeColor(z.drawingstate.linecolorraw),x.textColor=x.makeColor(z.drawingstate.textcolorraw));x.black=1===x.alpha?"rgb(0,0,0)":"rgba(0,0,0,"+x.alpha+")";x.fillColor=x.fillcolorraw&&0<x.fillalpha?x.makeColor(x.fillcolorraw,x.fillalpha):null},modifHandlers:{size:function(a){"number"===
-a.ctype&&(x.size=a.value.real,0>x.size&&(x.size=0),1E3<x.size&&(x.size=1E3))},color:function(a){g.isNumberVector(a).value&&3===a.value.length&&(x.colorraw=[a.value[0].value.real,a.value[1].value.real,a.value[2].value.real])},fillcolor:function(a){g.isNumberVector(a).value&&3===a.value.length&&(x.fillcolorraw=[a.value[0].value.real,a.value[1].value.real,a.value[2].value.real])},alpha:function(a){"number"===a.ctype&&(x.alpha=a.value.real)},fillalpha:function(a){"number"===a.ctype&&(x.fillalpha=a.value.real)},
-dashpattern:function(a){if("list"===a.ctype){for(var b=[],c=0,d=0;c<a.value.length;c++)"number"===a.value[c].ctype&&(b[d++]=a.value[c].value.real);x.dashing=x.setDash.bind(null,b)}},dashtype:function(a){if("number"===a.ctype)a=Math.floor(a.value.real);else if("string"===a.ctype)a=a.value;else return;if(a=x.dashTypes[a])x.dashing=x.setDash.bind(null,a)},dashing:function(a){"number"===a.ctype&&(a=Math.floor(a.value.real),x.dashing=x.setDash.bind(null,[2*a,a]))},overhang:function(a){"number"===a.ctype&&
-(x.overhang=x.overhang*a.value.real+(1-x.overhang)*(1-a.value.real))},arrow:function(a){"boolean"===a.ctype?x.isArrow=a.value:console.error("arrow needs to be of type boolean")},arrowshape:function(a){"string"!==a.ctype?console.error("arrowshape needs to be of type string"):x.arrowShapes.hasOwnProperty(a.value)?(x.arrowShape=x.arrowShapes[a.value],x.isArrow=!0,x.arrowShape.deprecated&&(console.log("arrowshape "+a.value+" is deprecated, use "+x.arrowShape.deprecated+" instead."),x.arrowShape.deprecated=
-null)):(a=Object.keys(x.arrowShapes),a.sort(),a=a.join(", "),console.error("arrowshape needs to be one of "+a))},arrowsides:function(a){"string"!==a.ctype?console.error("arrowsides is not of type string"):"==>"!==a.value&&"<==>"!==a.value&&"<=="!==a.value?console.error("arrowsides is unknows"):(x.arrowSides=a.value,x.isArrow=!0)},arrowposition:function(a){"number"!==a.ctype?console.error("arrowposition is not of type number"):0>a.value.real?console.error("arrowposition has to be positive"):1<a.value.real?
-x.overhang=x.overhang*a.value.real+(1-x.overhang)*(1-a.value.real):(x.arrowposition=a.value.real,x.isArrow=!0)},arrowsize:function(a){"number"!==a.ctype?console.error("arrowsize is not of type number"):0>a.value.real?console.error("arrowsize has to be positive"):x.headlen*=a.value.real},bold:function(a){"boolean"===a.ctype&&a.value&&(x.bold="bold ")},italics:function(a){"boolean"===a.ctype&&a.value&&(x.italics="italic ")},family:function(a){"string"===a.ctype&&(x.family=a.value)},align:function(a){"string"===
-a.ctype&&(a=a.value,"left"===a&&(x.align=0),"right"===a&&(x.align=1),"mid"===a&&(x.align=.5))},x_offset:function(a){"number"===a.ctype&&(x.xOffset=a.value.real)},y_offset:function(a){"number"===a.ctype&&(x.yOffset=a.value.real)},offset:function(a){"list"===a.ctype&&2===a.value.length&&"number"===a.value[0].ctype&&"number"===a.value[1].ctype&&(x.xOffset=a.value[0].value.real,x.yOffset=a.value[1].value.real)},lineCap:function(a){"string"!==a.ctype||"round"!==a.value&&"square"!==a.value&&"butt"!==a.value||
-(x.lineCap=a.value)},lineJoin:function(a){"string"!==a.ctype||"round"!==a.value&&"bevel"!==a.value&&"miter"!==a.value||(x.lineJoin=a.value)},fillrule:function(a){"string"!==a.ctype||"nonzero"!==a.value&&"evenodd"!==a.value||(x.fillrule=a.value)},miterLimit:function(a){"number"===a.ctype&&0<a.value.real&&(x.miterLimit=Math.round(a.value.real))}},lineModifs:{size:!0,color:!0,alpha:!0,dashpattern:!0,dashtype:!0,dashing:!0,overhang:!0,arrow:!0,arrowshape:!0,arrowsides:!0,arrowposition:!0,arrowsize:!0,
-lineCap:!0,lineJoin:!0,miterLimit:!0},pointModifs:{size:!0,color:!0,alpha:!0}};x.pointAndLineModifs=x.lineModifs;x.conicModifs={size:!0,color:!0,alpha:!0,fillcolor:!0,fillrule:!0,fillalpha:!0,lineCap:!0,lineJoin:!0,miterLimit:!0};x.textModifs={size:!0,color:!0,alpha:!0,bold:!0,italics:!0,family:!0,align:!0,x_offset:!0,y_offset:!0,offset:!0};x.makeColor=function(a,b){void 0===b&&(b=x.alpha);return"rgba("+Math.floor(255*a[0])+","+Math.floor(255*a[1])+","+Math.floor(255*a[2])+","+b+")"};x.preDrawCurve=
-function(){y.lineWidth=x.lsize;y.lineCap=x.lineCap;y.lineJoin=x.lineJoin;y.mozFillRule=x.fillrule;y.fillrule=x.fillrule;y.miterLimit=x.miterLimit;y.strokeStyle=x.lineColor};x.arrowShapes={"default":{close:!1,fill:!1,ratio:1,deprecated:"line"},line:{close:!1,fill:!1,ratio:1},empty:{close:!0,fill:!1,ratio:1},hollow:{close:!0,fill:!1,ratio:1,deprecated:"empty"},full:{close:!0,fill:!0,ratio:1},jet:{close:!0,fill:!0,ratio:1.5},delta:{close:!0,fill:!0,ratio:1.5,deprecated:"jet"}};x.clipSegment=function(a,
-b){var c=b.x-a.x,d=b.y-a.y,e=x.clipLineCore(-d,c,a.x*b.y-b.x*a.y);if(2!==e.length)return[];var f=e[0],e=e[1],g=1/(c*c+d*d),l=((f.x-a.x)*c+(f.y-a.y)*d)*g,c=((e.x-a.x)*c+(e.y-a.y)*d)*g;0>l&&(f=a);1<l&&(f=b);0>c&&(e=a);1<c&&(e=b);return f===e?[]:[f,e]};x.drawsegcore=function(a,b){function c(a,b,c,h){var d=a-h*q+.5*t,e=b-h*t-.5*q,f=a-h*q-.5*t;h=b-h*t+.5*q;y.beginPath();x.arrowShape.fill&&(y.lineWidth=x.lsize/2);y.moveTo(d,e);y.lineTo(a,b);y.lineTo(f,h);x.arrowShape.close&&(y.fillStyle=x.lineColor,y.lineTo(a-
-c*q,b-c*t),y.closePath(),x.arrowShape.fill&&y.fill());y.stroke()}var d=z.drawingstate.matrix,e=a.x*d.a-a.y*d.b+d.tx,f=a.x*d.c-a.y*d.d-d.ty,g=b.x*d.a-b.y*d.b+d.tx,l=b.x*d.c-b.y*d.d-d.ty,k=x.overhang,m=1-k,d=k*e+m*g,n=k*f+m*l,p=k*g+m*e,k=k*l+m*f;if(0>d||d>da||0>n||n>ca||0>p||p>da||0>k||k>ca){k=x.clipSegment({x:d,y:n},{x:p,y:k});if(2!==k.length||.01>x.lsize)return;d=k[0].x;n=k[0].y;p=k[1].x;k=k[1].y}x.preDrawCurve();if(!x.isArrow||e===f&&g===l).01>x.lsize||(y.beginPath(),y.moveTo(d,n),y.lineTo(p,k),
-y.stroke());else{var e=g-e,f=l-f,g=x.headlen/Math.sqrt(e*e+f*f),q=e*g,t=f*g,l=x.arrowposition,m=1-l,f=l*d+m*p,e=l*n+m*k,g=l*p+m*d,l=l*k+m*n,m=x.arrowSides;y.beginPath();x.arrowShape.close?("<==>"===m||"<=="===m?(1>x.arrowposition&&(y.moveTo(d,n),y.lineTo(f,e)),y.moveTo(f+q,e+t)):y.moveTo(d,n),"==>"===m||"<==>"===m?(y.lineTo(g-q,l-t),1>x.arrowposition&&(y.moveTo(g,l),y.lineTo(p,k))):y.lineTo(p,k)):(y.moveTo(d,n),y.lineTo(p,k));y.stroke();"==>"!==m&&"<==>"!==m||c(g,l,1,x.arrowShape.ratio);"<=="!==m&&
-"<==>"!==m||c(f,e,-1,-x.arrowShape.ratio)}};x.drawpoint=function(a){var b=z.drawingstate.matrix,c=a.x*b.a-a.y*b.b+b.tx;a=a.x*b.c-a.y*b.d-b.ty;y.lineWidth=.3*x.psize;y.beginPath();y.arc(c,a,x.psize,0,2*Math.PI);y.fillStyle=x.pointColor;y.fill();y.beginPath();y.arc(c,a,1.15*x.psize,0,2*Math.PI);y.fillStyle=x.black;y.strokeStyle=x.black;y.stroke()};x.clipLineCore=function(a,b,c){var d=Math.SQRT1_2*x.lsize,e=0-d,f=da+d,g=0-d,d=ca+d,l=0>e*a+g*b+c,k=0>f*a+g*b+c,m=0>e*a+d*b+c,n=0>f*a+d*b+c,p=[];l!==k&&p.push({x:(-c-
-b*g)/a,y:g});k!==n&&p.push({x:f,y:(-c-a*f)/b});m!==n&&p.push({x:(-c-b*d)/a,y:d});l!==m&&p.push({x:e,y:(-c-a*e)/b});return p};x.clipLine=function(a){a=g.normalizeMax(g.productVM(a,z.toMat()));return x.clipLineCore(a.value[0].value.real,a.value[1].value.real,a.value[2].value.real)};x.drawline=function(a){g._helper.isAlmostReal(a)&&(a=x.clipLine(a),2===a.length&&.01<=x.lsize&&(x.preDrawCurve(),y.beginPath(),y.moveTo(a[0].x,a[0].y),y.lineTo(a[1].x,a[1].y),y.stroke()))};x.drawRaySegment=function(a,b){var c=
-D.extractPoint(a),d=D.extractPoint(b);if(c.ok&&d.ok){var e=c.x-d.x,f=c.y-d.y,g=25E3/z.drawingstate.matrix.sdet/Math.sqrt(e*e+f*f),e=e*g,f=f*g;x.drawsegcore(c,{x:c.x+e,y:c.y+f});x.drawsegcore(d,{x:d.x-e,y:d.y-f})}};x.dashTypes={solid:[],dashed:[10,10],tightdash:[10,4],dotted:[1,3],dashdot:[10,5,1,5],"dashvalue.solid":[],"dashvalue.dashed":[10,10],"dashvalue.tightdash":[10,4],"dashvalue.dotted":[1,3],"dashvalue.dashdot":[10,5,1,5],0:[],1:[10,10],2:[10,4],3:[1,3],4:[10,5,1,5]};x.setDash=function(a,b){var c=
-Math.sqrt(b);a=a.slice();for(var d=0;d<a.length;d++)a[d]*=c;y.webkitLineDash=a;y.setLineDash(a);y.mozDash=a};x.unSetDash=function(){y.webkitLineDash=[];y.setLineDash([]);y.mozDash=[]};dd.prototype={set fillStyle(a){var b=this;Rb(a,function(a,d,e,f){b._fill="#"+lb(a.toString(16),2)+lb(d.toString(16),2)+lb(e.toString(16),2);b._fillOpacity=255===f?null:f})},set strokeStyle(a){var b=this;Rb(a,function(a,d,e,f){b._stroke="#"+lb(a.toString(16),2)+lb(d.toString(16),2)+lb(e.toString(16),2);b._strokeOpacity=
-255===f?null:f})},clearRect:function(){},beginPath:function(){this._path=[]},_pathcmd:function(){this._path.push.apply(this._path,arguments)},closePath:function(){this._pathcmd("Z")},moveTo:function(a,b){this._pathcmd("M",a,b)},lineTo:function(a,b){this._pathcmd("L",a,b)},bezierCurveTo:function(a,b,c,d,e,f){this._pathcmd("C",a,b,c,d,e,f)},quadraticCurveTo:function(a,b,c,d){this._pathcmd("Q",a,b,c,d)},arc:function(a,b,c,d,e,f){var g=c*Math.cos(d)+a,l=c*Math.sin(d)+b,k=c*Math.cos(e)+a,m=c*Math.sin(e)+
-b;e=f?d-e:e-d;e>=2*Math.PI?this._pathcmd(this._path.length?"L":"M",g,l,"A",c,c,0,0,f?1:0,a-c*Math.cos(d),b-c*Math.sin(d),"A",c,c,0,0,f?1:0,g,l):this._pathcmd(this._path.length?"L":"M",g,l,"A",c,c,0,e>Math.PI?1:0,f?1:0,k,m)},rect:function(a,b,c,d){this._pathcmd("M",a,b,"h",c,"v",d,"h",-c,"z")},_cmd:function(a){1!==this.globalAlpha?(this._body.push('<g opacity="'+this.globalAlpha+'">'),this._body.push(a),this._body.push("</g>")):this._body.push(a)},_attrs:function(a){var b="",c;for(c in a)null!==a[c]&&
-(b+=" "+c+'="'+a[c]+'"');return b},fill:function(){this._cmd("<path"+this._attrs({d:this._path.join(" "),fill:this._fill,"fill-opacity":this._fillOpacity})+"/>")},stroke:function(){this._cmd("<path"+this._attrs({d:this._path.join(" "),stroke:this._stroke,"stroke-opacity":this._strokeOpacity,"stroke-width":this.lineWidth,"stroke-linecap":this.lineCap,"stroke-linejoin":this.lineJoin,"stroke-miterlimit":"miter"===this.lineJoin?this.miterLimit:null})+"/>")},clip:function(){++this._clipIndex;this._body.push('<clipPath id="clip'+
-this._clipIndex+'"><path d="'+this._path.join(" ")+'"/></clipPath>','<g clip-path="url(#clip'+this._clipIndex+')">');this._saveStack[this._saveStack.length-1]+="</g>"},save:function(){this._saveStack.push("")},restore:function(){this._body.push(this._saveStack.pop());0===this._saveStack.length&&this._saveStack.push("")},_transform:function(a){this._body.push('<g transform="'+a+'">');this._saveStack[this._saveStack.length-1]+="</g>"},translate:function(a,b){this._transform("translate("+a+" "+b+")")},
-rotate:function(a){this._transform("rotate("+Math.PI/180*a+")")},scale:function(a,b){this._transform("scale("+a+" "+b+")")},transform:function(a,b,c,d,e,f){this._transform("matrix("+[a,b,c,d,e,f].join(" ")+")")},drawImage:function(a,b,c){if(3!==arguments.length)throw Error("SvgWriterContext only supports 3-argument version of drawImage");var d=this._imgcache.indexOf(a);if(-1===d){var d=this._imgcache.length,e;e=a.cachedDataURL?a.cachedDataURL:fd(a);this._defs.push('<image id="img'+d+'" x="0" y="0" width="'+
-a.width+'" height="'+a.height+'" xlink:href="'+e+'"/>');this._imgcache.push(a)}this._cmd('<use x="'+b+'" y="'+c+'" xlink:href="#img'+d+'"/>')},toBlob:function(){for(;1<this._saveStack.length||""!==this._saveStack[0];)this.restore();var a='<?xml version="1.0" encoding="UTF-8" standalone="no"?>\n<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" width="'+this.width+'px" height="'+this.height+'px">\n'+this._defs.join("\n")+'\n</defs>\n<g stroke="none" fill="none">\n'+
-this._body.join("\n")+"\n</g>\n</svg>\n";return new Blob([a],{type:"image/svg+xml"})}};ed.prototype={_cmd:function(){this._body.push(Array.prototype.join.call(arguments," "))},_setAlpha:function(a,b,c){var d=Math.round(255*a*this._globalAlpha);b+=d;this._extGState[b]="<< /"+c+" "+d/255+" >>";this._cmd("/"+b,"gs");return a},set globalAlpha(a){this._globalAlpha=a;this._setAlpha(this._strokeAlpha,"As","CA");this._setAlpha(this._fillAlpha,"Af","ca")},set fillStyle(a){var b=this;Rb(a,function(a,d,e,f){b._cmd(a/
-255,d/255,e/255,"rg");b._setAlpha(b._fillAlpha=f,"Af","ca")})},set strokeStyle(a){var b=this;Rb(a,function(a,d,e,f){b._cmd(a/255,d/255,e/255,"RG");b._setAlpha(b._strokeAlpha=f,"As","CA")})},set lineWidth(a){this._cmd(a,"w")},set lineCap(a){this._cmd({butt:0,round:1,square:2}[a],"J")},set lineJoin(a){this._cmd({miter:0,round:1,bevel:2}[a],"j")},set miterLimit(a){this._cmd(a,"M")},clearRect:function(){},beginPath:function(){this._pathUsed=!1},closePath:function(){this._cmd("h")},moveTo:function(a,b){this._cmd(this._xPos=
-a,this._yPos=-b,"m")},lineTo:function(a,b){this._cmd(this._xPos=a,this._yPos=-b,"l")},bezierCurveTo:function(a,b,c,d,e,f){this._cmd(a,-b,c,-d,this._xPos=e,this._yPos=-f,"c")},quadraticCurveTo:function(a,b,c,d){this.bezierCurveTo((2*a+this._xPos)/3,(2*b-this._yPos)/3,(c+2*a)/3,(d+2*b)/3,c,d)},_kappa:.5522847498307935,arc:function(a,b,c,d,e,f){if(0===d&&e===2*Math.PI)d=this._kappa*c,this.moveTo(a+c,b),this.bezierCurveTo(a+c,b+d,a+d,b+c,a,b+c),this.bezierCurveTo(a-d,b+c,a-c,b+d,a-c,b),this.bezierCurveTo(a-
-c,b-d,a-d,b-c,a,b-c),this.bezierCurveTo(a+d,b-c,a+c,b-d,a+c,b);else throw Error("PdfWriterContext.arc only supports full circles");},rect:function(a,b,c,d){this._cmd(a,-b,c,-d,"re")},_usePath:function(a){if(this._pathUsed){var b=this._body[this._pathUsed],c={"S + f":"B","f + S":"B","W n + S":"W S","W n + f":"W f","S + W n":"W S","f + W n":"W f","B + W n":"W B","W S + f":"W B","W f + S":"W B"}[b+" + "+a];if(!c)throw Error("Don't know how to combine '"+b+"' and '"+a+"'");this._body.splice(this._pathUsed,
-1);a=c}this._pathUsed=this._body.length;this._cmd(a)},fill:function(){this._usePath("f")},stroke:function(){this._usePath("S")},clip:function(){this._usePath("W n")},save:function(){this._cmd("q")},restore:function(){this._cmd("Q")},translate:function(a,b){this.transform(1,0,0,1,a,b)},rotate:function(a){var b=Math.cos(a);a=Math.sin(a);this.transform(b,a,-a,b,0,0)},scale:function(a,b){this.transform(a,0,0,b,0,0)},transform:function(a,b,c,d,e,f){this._cmd(a,-b,-c,d,e,-f,"cm")},_png:function(a){if("data:image/png;base64,"!==
-a.substr(0,22))return{error:"Not a base64-encoded PNG file"};a=Wd(a.substr(22));var b=Xd(a);console.log("PNG chunks:",b.map(function(a){return a.type}));if("IHDR"!==b[0].type)throw Error("Image does not start with an IHDR");var c=b[0].data;a=(c[0]<<24|c[1]<<16|c[2]<<8|c[3])>>>0;var d=(c[4]<<24|c[5]<<16|c[6]<<8|c[7])>>>0,e=c[8],f=c[9],g=0===(f&2),l=0!==(f&4),k=c[10],m=c[11],c=c[12];if(0!==k)throw Error("Unsupported PNG compression method: "+k);if(0!==m)throw Error("Unsupported PNG filter method: "+
-m);if(0!==c)return{error:"Interlaced image not supported"};if(0!==(f&1))return{error:"Indexed PNG image not supported"};m=null;f=g?1:3;k=b.filter(function(a){return"IDAT"===a.type}).map(function(a){return a.data});if(l){l=window.pako;m=new l.Inflate;for(b=0;b<k.length;++b)m.push(k[b],b+1===k.length);if(m.err)throw Error(m.err);m=m.result;c=e>>>3;if(m.length!==d*(a*(f+1)*c+1))throw Error("Data length mismatch");for(var n=f*c,k=new Uint8Array(d*(a*n+1)),p=new Uint8Array(d*(a*c+1)),q=0,t=0,u=0,v=0;v<
-d;++v){k[t++]=p[u++]=m[q++];for(var w=0;w<a;++w){for(b=0;b<n;++b)k[t++]=m[q++];for(b=0;b<c;++b)p[u++]=m[q++]}}if(q!==m.length||t!==k.length||u!==p.length)throw Error("Seems we garbled our index computation somehow");p=l.deflate(p);m=this._strm({Type:"/XObject",Subtype:"/Image",Width:a,Height:d,ColorSpace:"/DeviceGray",BitsPerComponent:e,Filter:"/FlateDecode",DecodeParms:this._dict({Predictor:15,Colors:1,BitsPerComponent:e,Columns:a})},p).ref;k=[l.deflate(k)]}var x=0;k.forEach(function(a){x+=a.length});
-return this._obj([this._dict({Type:"/XObject",Subtype:"/Image",Name:"/img"+this._imgcache.length,Width:a,Height:d,ColorSpace:g?"/DeviceGray":"/DeviceRGB",SMask:m,BitsPerComponent:e,Length:x,Filter:"/FlateDecode",DecodeParms:this._dict({Predictor:15,Colors:f,BitsPerComponent:e,Columns:a})}),"\nstream\n"].concat(k,["\nendstream"]))},drawImage:function(a,b,c){if(3!==arguments.length)throw Error("PdfWriterContext only supports 3-argument version of drawImage");var d=this._imgcache.indexOf(a);if(-1===
-d){d=this._imgcache.length;this._imgcache.push(a);var e=this._png(a.cachedDataURL||"");e.hasOwnProperty("error")&&(e=this._png(fd(a)));if(e.hasOwnProperty("error"))throw Error(e.error);this._xobjects["img"+d]=e.ref}this._cmd("q");this._setAlpha(1,"Af","ca");this._cmd(a.width,0,0,a.height,b,-c-a.height,"cm");this._cmd("/img"+d,"Do");this._cmd("Q")},_dict:function(a){var b="<<",c;for(c in a)b+=" /"+c+" "+a[c];return b+" >>"},_obj:function(a,b){b||(b=this._nextIndex++);Array.isArray(a)||(a=[this._dict(a)]);
-a.index=b;a.ref=b+" 0 R";a.offset=this._offset;var c=0;a.unshift(b+" 0 obj\n");a.push("\nendobj\n");for(var d=0;d<a.length;++d)c+=a[d].length;this._offset+=c;this._objects.push(a);return a},_strm:function(a,b,c){a.Length=b.length;return this._obj([this._dict(a),"\nstream\n",b,"\nendstream"],c)},toBlob:function(){var a;a="["+[0,-this.height,this.width,0].join(" ")+"]";this._obj({Type:"/Catalog",Pages:"2 0 R"},1);this._obj({Type:"/Pages",Kids:"[3 0 R]",Count:1},2);this._obj({Type:"/Page",Parent:"2 0 R",
-MediaBox:a,Contents:"4 0 R",Resources:this._dict({ProcSet:"[/PDF /Text /ImageB /ImageC /ImageI]",XObject:this._dict(this._xobjects),ExtGState:this._dict(this._extGState)})},3);var b=this._body.join("\n"),c=new Uint8Array(b.length);for(a=0;a<b.length;++a)c[a]=b.charCodeAt(a)&255;b=window.pako.deflate(c);this._strm({Filter:"/FlateDecode"},b,4);var b=this._objects,d=[];for(a=1;a<b.length;++a)d[b[a].index]=b[a];c="xref\n0 "+d.length+"\n";for(a=0;a<d.length;++a)c=d[a]?c+(lb(String(d[a].offset),10)+" 00000 n \n"):
-c+"0000000000 65535 f \n";a="trailer\n"+this._dict({Size:d.length,Root:"1 0 R"})+"\nstartxref\n"+this._offset+"\n%%EOF\n";b=Array.prototype.concat.apply([],b);b.push(c,a);return new Blob(b,{type:"application/pdf"})}};var Fb=null;jb.push(gd);oa.exportSVG=function(){hd(dd)};oa.exportPDF=function(){wa.loadScript("pako","pako.min.js",function(){hd(ed)})};oa.exportPNG=function(){id(y.canvas.toDataURL())};var id=function(a){var b=document.createElement("a");document.body.appendChild(b);b.style="display: none";
-b.href=a;b.download="CindyJSExport";b.click();setTimeout(function(){document.body.removeChild(b);gd()},100)},qc="Move",Hb,ua=[],Ua=0,Zd=0,sb=0,G={Delete:{}};G.Delete.actions=[];G.Delete.actions[0]={};G.Delete.actions[0].event="mousedown";G.Delete.actions[0].tooltip="...";G.Delete.actions[0]["do"]=function(){fa=Gb(X);null!==fa&&nd(fa.mover.name);return!0};G.Move={};G.Move.actions=[];G.Move.actions[0]={};G.Move.actions[0].event="mousedown";G.Move.actions[0].tooltip="Move free elements by dragging the mouse";
-G.Move.actions[0]["do"]=function(){for(var a=X,b=null,c=1E6,d,e=0;e<u.free.length;e++){var f=u.free[e];if(!f.pinned&&!1!==f.visible&&!0!==f.tmp){var k,m,n,p=z.drawingstate.matrix.sdet;if("P"===f.kind){m=g.normalizeZ(f.homog);if(!g._helper.isAlmostReal(m))continue;k=m.value[0].value.real-a.x;m=m.value[1].value.real-a.y;n=Math.sqrt(k*k+m*m);if(f.narrow&&n>("number"===typeof f.narrow?f.narrow:20)/p)continue}else if("C"===f.kind)m=u.csnames[f.args[0]],n=f.radius,k=l.div(m.homog.value[0],m.homog.value[2]).value.real,
-m=l.div(m.homog.value[1],m.homog.value[2]).value.real,k-=a.x,m-=a.y,n=Math.sqrt(k*k+m*m)-n.value.real,m=k=0,0>n&&(n=-n),n+=30/p;else if("L"===f.kind)k=f.homog,n=l,m=n.add(n.mult(k.value[0],n.conjugate(k.value[0])),n.mult(k.value[1],n.conjugate(k.value[1]))),m=g.scaldiv(n.sqrt(m),k),n=m.value[0].value.real*a.x+m.value[1].value.real*a.y+m.value[2].value.real,k=-m.value[0].value.real*n,m=-m.value[1].value.real*n,0>n&&(n=-n),n+=25/p;else if("Text"===f.kind){if(!f.homog||f.dock||!f._bbox)continue;m=z.from(a.x,
-a.y,1);k=Math.max(0,m[0]-f._bbox.right,f._bbox.left-m[0]);m=Math.max(0,m[1]-f._bbox.bottom,f._bbox.top-m[1]);n=Math.sqrt(k*k+m*m);if(20<n)continue;n/=p;m=g.normalizeZ(f.homog);if(!g._helper.isAlmostReal(m))continue;k=m.value[0].value.real-a.x;m=m.value[1].value.real-a.y}else continue;n<c+.2/p&&(c=n,b=f,d={x:k,y:m})}}console.log("Moving "+(b?b.name:"nothing"));fa=null===b?null:{mover:b,offset:d,prev:{x:a.x,y:a.y}};return!0};G.Point={};G.Point.actions=[];G.Point.actions[0]={};G.Point.actions[0].event=
-"mousedown";G.Point.actions[0].tooltip="Add a single point with the mouse";G.Point.actions[0]["do"]=function(){Ha({type:"Free",name:Ta(),labeled:!0,pos:[ta[0],ta[1],1]});return!0};G.Mid={};G.Mid.actions=[];G.Mid.actions[0]={};G.Mid.actions[0].event="mousedown";G.Mid.actions[0].tooltip="Construct two points and their midpoint by dragging";G.Mid.actions[0]["do"]=function(){mb();return!0};G.Mid.actions[1]={};G.Mid.actions[1].event="mousemove";G.Mid.actions[1]["do"]=function(){Sb("Mid");return!0};G.Mid.actions[2]=
-{};G.Mid.actions[2].event="mouseup";G.Mid.actions[2]["do"]=function(){tb();return!0};G.Circle={};G.Circle.actions=[];G.Circle.actions[0]={};G.Circle.actions[0].event="mousedown";G.Circle.actions[0].tooltip="Construct two points and a circle by dragging the mouse";G.Circle.actions[0]["do"]=function(){mb();return!0};G.Circle.actions[1]={};G.Circle.actions[1].event="mousemove";G.Circle.actions[1]["do"]=function(){Sb("CircleMP");return!0};G.Circle.actions[2]={};G.Circle.actions[2].event="mouseup";G.Circle.actions[2]["do"]=
-function(){tb();return!0};G.Compass={};G.Compass.actions=[];G.Compass.actions[0]={};G.Compass.actions[0].event="mousedown";G.Compass.actions[0].tooltip="...";G.Compass.actions[0]["do"]=function(){mb();return!0};G.Compass.actions[1]={};G.Compass.actions[1].event="mousedown";G.Compass.actions[1].tooltip="...";G.Compass.actions[1]["do"]=function(){mb();return!0};G.Compass.actions[2]={};G.Compass.actions[2].event="mousedown";G.Compass.actions[2].tooltip="...";G.Compass.actions[2]["do"]=function(){mb();
-Ha({type:"Compass",name:Ta(),labeled:!0,args:[ua[0].name,ua[1].name,ua[2].name]});return!0};G.Line={};G.Line.actions=[];G.Line.actions[0]={};G.Line.actions[0].event="mousedown";G.Line.actions[0].tooltip="Construct two points and their connecting line by dragging the mouse";G.Line.actions[0]["do"]=function(){mb();return!0};G.Line.actions[1]={};G.Line.actions[1].event="mousemove";G.Line.actions[1]["do"]=function(){Sb("Join");return!0};G.Line.actions[2]={};G.Line.actions[2].event="mouseup";G.Line.actions[2]["do"]=
-function(){tb();return!0};G.Segment={};G.Segment.actions=[];G.Segment.actions[0]={};G.Segment.actions[0].event="mousedown";G.Segment.actions[0].tooltip="Draw a segment by dragging the mouse";G.Segment.actions[0]["do"]=function(){mb();return!0};G.Segment.actions[1]={};G.Segment.actions[1].event="mousemove";G.Segment.actions[1]["do"]=function(){Sb("Segment");return!0};G.Segment.actions[2]={};G.Segment.actions[2].event="mouseup";G.Segment.actions[2]["do"]=function(){tb();return!0};G.Parallel={};G.Parallel.actions=
-[];G.Parallel.actions[0]={};G.Parallel.actions[0].event="mousedown";G.Parallel.actions[0].tooltip="Construct a parallel line by dragging a line";G.Parallel.actions[0]["do"]=function(){return ld()};G.Parallel.actions[1]={};G.Parallel.actions[1].event="mousemove";G.Parallel.actions[1]["do"]=function(){var a={type:"Free",name:Ta(),labeled:!0,pos:[ta[0],ta[1],1],tmp:!0},a=Ha(a);Hb=Ha({type:"Para",name:Ta(),labeled:!0,args:[ua[0].name,a.name]});sc(a);return!0};G.Parallel.actions[2]={};G.Parallel.actions[2].event=
-"mouseup";G.Parallel.actions[2]["do"]=function(){tb();return!0};G.Orthogonal={};G.Orthogonal.actions=[];G.Orthogonal.actions[0]={};G.Orthogonal.actions[0].event="mousedown";G.Orthogonal.actions[0].tooltip="Construct a orthogonal line by dragging a line";G.Orthogonal.actions[0]["do"]=function(){if(ld()){var a={type:"Free",name:Ta(),labeled:!0,pos:[ta[0],ta[1],1],tmp:!0},a=Ha(a);Hb=Ha({type:"Perp",name:Ta(),labeled:!0,args:[ua[0].name,a.name]});sc(a);return!0}return!1};G.Orthogonal.actions[1]={};G.Orthogonal.actions[1].event=
-"mouseup";G.Orthogonal.actions[1]["do"]=function(){tb();return!0};G.Intersection={};G.Intersection.actions=[];G.Intersection.actions[0]={};G.Intersection.actions[0].event="mousedown";G.Intersection.actions[0].tooltip="Select two elements to define their intersection";G.Intersection.actions[0]["do"]=function(){return md()};G.Intersection.actions[1]={};G.Intersection.actions[1].event="mousedown";G.Intersection.actions[1]["do"]=function(){return md()?(Hb=Ha({type:"Meet",name:Ta(),labeled:!0,args:[ua[0].name,
-ua[1].name]}),!0):!1};var $a={},z={drawingstate:{}};z.drawingstate.linecolor="rgb(0,0,255)";z.drawingstate.linecolorraw=[0,0,1];z.drawingstate.pointcolor="rgb(0,255,0)";z.drawingstate.pointcolorraw=[0,1,0];z.drawingstate.textcolor="rgb(0,0,0)";z.drawingstate.textcolorraw=[0,0,0];z.drawingstate.alpha=1;z.drawingstate.pointsize=4;z.drawingstate.linesize=1;z.drawingstate.textsize=null;z.drawingstate.matrix={};z.drawingstate.matrix.a=25;z.drawingstate.matrix.b=0;z.drawingstate.matrix.c=0;z.drawingstate.matrix.d=
-25;z.drawingstate.matrix.tx=250.5;z.drawingstate.matrix.ty=250.5;z.drawingstate.matrix.det=z.drawingstate.matrix.a*z.drawingstate.matrix.d-z.drawingstate.matrix.b*z.drawingstate.matrix.c;z.drawingstate.matrix.sdet=Math.sqrt(z.drawingstate.matrix.det);z.drawingstate.initialmatrix={};z.drawingstate.initialmatrix.a=z.drawingstate.matrix.a;z.drawingstate.initialmatrix.b=z.drawingstate.matrix.b;z.drawingstate.initialmatrix.c=z.drawingstate.matrix.c;z.drawingstate.initialmatrix.d=z.drawingstate.matrix.d;
-z.drawingstate.initialmatrix.tx=z.drawingstate.matrix.tx;z.drawingstate.initialmatrix.ty=z.drawingstate.matrix.ty;z.drawingstate.initialmatrix.det=z.drawingstate.matrix.det;z.drawingstate.initialmatrix.sdet=z.drawingstate.matrix.sdet;z.clone=function(a){if(null===a||"object"!==typeof a)return a;var b=a.constructor(),c;for(c in a)b[c]=z.clone(a[c]);return b};$a.backup=z.clone(z.drawingstate);$a.stack=[];z.clone(z.drawingstate);z.reset=function(){z.drawingstate.matrix.a=z.drawingstate.initialmatrix.a;
-z.drawingstate.matrix.b=z.drawingstate.initialmatrix.b;z.drawingstate.matrix.c=z.drawingstate.initialmatrix.c;z.drawingstate.matrix.d=z.drawingstate.initialmatrix.d;z.drawingstate.matrix.tx=z.drawingstate.initialmatrix.tx;z.drawingstate.matrix.ty=z.drawingstate.initialmatrix.ty;z.drawingstate.matrix.det=z.drawingstate.initialmatrix.det;z.drawingstate.matrix.sdet=z.drawingstate.initialmatrix.sdet};z.from=function(a,b,c){a/=c;b/=c;c=z.drawingstate.matrix;return[a*c.a-b*c.b+c.tx,a*c.c-b*c.d-c.ty]};z.to=
-function(a,b){var c=z.drawingstate.matrix,d=a-c.tx,e=b+c.ty;return[(d*c.d-e*c.b)/c.det,-(-d*c.c+e*c.a)/c.det,1]};z.toMat=function(){var a=z.drawingstate.matrix;return g.realMatrix([[a.d,-a.b,-a.tx*a.d-a.ty*a.b],[a.c,-a.a,-a.tx*a.c-a.ty*a.a],[0,0,a.det]])};z.dumpTrafo=function(){function a(a){return Math.round(1E3*a)/1E3}var b=z.drawingstate.matrix;console.log("a:"+a(b.a)+" b:"+a(b.b)+" c:"+a(b.c)+" d:"+a(b.d)+" tx:"+a(b.ty)+" ty:"+a(b.tx))};z.setMat=function(a,b,c,d,e,f){var g=z.drawingstate.matrix;
-g.a=a;g.b=b;g.c=c;g.d=d;g.tx=e;g.ty=f;g.det=a*d-b*c;g.sdet=Math.sqrt(g.det)};z.scaleAndOrigin=function(a,b,c){z.setMat(a,0,0,a,b,c)};z.visibleRect=function(a,b,c,d){var e=c-a,f=b-d,e=da*f<ca*e?da/e:ca/f;z.setMat(e,0,0,e,(da-e*(a+c))/2,(ca-e*(b+d))/2)};z.applyMat=function(a,b,c,d,e,f){var g=z.drawingstate.matrix;z.setMat(g.a*a+g.c*b,g.b*a+g.d*b,g.a*c+g.c*d,g.b*c+g.d*d,g.a*e+g.c*f+g.tx,g.b*e+g.d*f+g.ty)};z.translate=function(a,b){z.applyMat(1,0,0,1,a,b)};z.rotate=function(a){var b=Math.cos(a);a=Math.sin(a);
-z.applyMat(b,a,-a,b,0,0)};z.scale=function(a){z.applyMat(a,0,0,a,0,0)};z.gsave=function(){$a.stack.push(z.clone(z.drawingstate))};z.grestore=function(){0!==$a.stack.length&&(z.drawingstate=$a.stack.pop())};z.greset=function(){z.drawingstate=z.clone($a.backup);z.drawingstate.matrix.ty-=ca;z.drawingstate.initialmatrix.ty-=ca;$a.stack=[]};z.createnewbackup=function(){z.drawingstate.initialmatrix.a=z.drawingstate.matrix.a;z.drawingstate.initialmatrix.b=z.drawingstate.matrix.b;z.drawingstate.initialmatrix.c=
-z.drawingstate.matrix.c;z.drawingstate.initialmatrix.d=z.drawingstate.matrix.d;z.drawingstate.initialmatrix.tx=z.drawingstate.matrix.tx;z.drawingstate.initialmatrix.ty=z.drawingstate.matrix.ty;z.drawingstate.initialmatrix.det=z.drawingstate.matrix.det;z.drawingstate.initialmatrix.sdet=z.drawingstate.matrix.sdet;$a.backup=z.clone(z.drawingstate)};z.makecolor=function(a,b,c){a=Math.floor(255*a);b=Math.floor(255*b);c=Math.floor(255*c);return 1===z.drawingstate.alpha?"rgb("+a+","+b+","+c+")":"rgba("+
-a+","+b+","+c+","+z.drawingstate.alpha+")"};z.setcolor=function(a){var b=a.value[0].value.real,c=a.value[1].value.real;a=a.value[2].value.real;z.drawingstate.linecolor=z.drawingstate.pointcolor=z.makecolor(b,c,a);z.drawingstate.linecolorraw=z.drawingstate.pointcolorraw=[b,c,a]};z.setlinecolor=function(a){var b=a.value[0].value.real,c=a.value[1].value.real;a=a.value[2].value.real;z.drawingstate.linecolor=z.makecolor(b,c,a);z.drawingstate.linecolorraw=[b,c,a]};z.settextcolor=function(a){var b=a.value[0].value.real,
-c=a.value[1].value.real;a=a.value[2].value.real;z.drawingstate.textcolor=z.makecolor(b,c,a);z.drawingstate.textcolorraw=[b,c,a]};z.setpointcolor=function(a){var b=a.value[0].value.real,c=a.value[1].value.real;a=a.value[2].value.real;z.drawingstate.pointcolor=z.makecolor(b,c,a);z.drawingstate.pointcolorraw=[b,c,a]};z.setalpha=function(a){z.drawingstate.alpha=a.value.real;z.drawingstate.linecolor=z.makecolor(z.drawingstate.linecolorraw[0],z.drawingstate.linecolorraw[1],z.drawingstate.linecolorraw[2]);
-z.drawingstate.pointcolor=z.makecolor(z.drawingstate.pointcolorraw[0],z.drawingstate.pointcolorraw[1],z.drawingstate.pointcolorraw[2]);z.drawingstate.textcolor=z.makecolor(z.drawingstate.textcolorraw[0],z.drawingstate.textcolorraw[1],z.drawingstate.textcolorraw[2])};z.setpointsize=function(a){z.drawingstate.pointsize=a.value.real};z.setlinesize=function(a){z.drawingstate.linesize=a.value.real};z.settextsize=function(a){z.drawingstate.textsize=a.value.real};var la={clip:"none",pointColor:[1,0,0],lineColor:[0,
-0,1],pointSize:5,lineSize:1,alpha:1,overhangLine:1,overhangSeg:1,dimDependent:.7,fontFamily:"sans-serif",textsize:20,lineHeight:1.45};p.defaultAppearance&&$d(p.defaultAppearance);var Ub={},ud={UL:0,UR:1,LR:2,LL:3},vc=["in","out","good","backup"],hb=new Float64Array(0),db={};vc.forEach(function(a){db[a]=hb});var ma=hb,Ma=hb,za=hb,va,Aa,fb,Ja,vb,wc=!1,wd={toString:function(){return"RefineException"}},zd=null,L=null;p.enableTraceLog&&(L={logLength:Infinity,fullLog:[],currentMouseAndScripts:null,currentMover:null,
-currentStep:null,currentElement:null,currentParam:null,labelTracing2:w.wrap("tracing2"),labelTracing4:w.wrap("tracing4"),labelTracingSesq:w.wrap("tracingSesq"),postMouseHooks:[]},"number"===typeof p.enableTraceLog&&(L.logLength=p.enableTraceLog),oa.getTraceLog=fe,oa.formatTraceLog=ge,oa.addTraceHook=L.postMouseHooks.push.bind(L.postMouseHooks));Na.stateSize=12;xc.stateSize=24;var ib=[];gb.P=function(a){u.lines.forEach(function(b){b=Dd(a,b);b.holds()&&ib.push(b)});u.conics.forEach(function(b){b=Ed(a,
-b);b.holds()&&ib.push(b)})};gb.L=function(a){u.points.forEach(function(b){b=Dd(b,a);b.holds()&&ib.push(b)})};gb.S=gb.L;gb.C=function(a){u.points.forEach(function(b){b=Ed(b,a);b.holds()&&ib.push(b)})};var m={_helper:{},RandomLine:{}};m.RandomLine.kind="L";m.RandomLine.signature=[];m.RandomLine.updatePosition=function(a){a.homog=g.realVector([Math.random()-.5,Math.random()-.5,Math.random()-.5]);a.homog=g.normalizeMax(a.homog);a.homog=w.withUsage(a.homog,"Line")};m.FreeLine={};m.FreeLine.kind="L";m.FreeLine.signature=
-[];m.FreeLine.isMovable=!0;m.FreeLine.initialize=function(a){a=m._helper.initializeLine(a);T(a)};m.FreeLine.getParamForInput=function(a,b,c){"mouse"===c?(a=g.cross(b,g.ez),a=g.cross(a,b)):a="homog"===c?b:g.turnIntoCSList([l.zero,l.zero,l.zero]);return g.normalizeMax(a)};m.FreeLine.getParamFromState=function(a){return Z(3)};m.FreeLine.putParamToState=function(a,b){T(b)};m.FreeLine.updatePosition=function(a){var b=Z(3);T(b);a.homog=w.withUsage(b,"Line")};m.FreeLine.stateSize=6;m.RandomPoint={};m.RandomPoint.kind=
-"P";m.RandomPoint.signature=[];m.RandomPoint.updatePosition=function(a){a.homog=g.realVector([100*Math.random(),100*Math.random(),100*Math.random()]);a.homog=g.normalizeMax(a.homog);a.homog=w.withUsage(a.homog,"Point")};m.Join={};m.Join.kind="L";m.Join.signature=["P","P"];m.Join.updatePosition=function(a){a.homog=g.cross(u.csnames[a.args[0]].homog,u.csnames[a.args[1]].homog);a.homog=g.normalizeMax(a.homog);a.homog=w.withUsage(a.homog,"Line")};m.Segment={};m.Segment.kind="S";m.Segment.signature=["P",
-"P"];m.Segment.updatePosition=function(a){var b=u.csnames[a.args[0]],c=u.csnames[a.args[1]];m.Segment.setSegmentPos(a,g.cross(b.homog,c.homog),g.scalmult(c.homog.value[2],b.homog),g.scalmult(b.homog.value[2],c.homog))};m.Segment.setSegmentPos=function(a,b,c,d){b=g.normalizeMax(b);a.homog=w.withUsage(b,"Line");b=g.turnIntoCSList([c,d]);b=g.normalizeMax(b);a.startpos=b.value[0];a.endpos=b.value[1]};m.Meet={};m.Meet.kind="P";m.Meet.signature=["L","L"];m.Meet.updatePosition=function(a){a.homog=g.cross(u.csnames[a.args[0]].homog,
-u.csnames[a.args[1]].homog);a.homog=g.normalizeMax(a.homog);a.homog=w.withUsage(a.homog,"Point")};m.Meet.visiblecheck=function(a){var b=!0,c=u.csnames[a.args[0]],d=u.csnames[a.args[1]];"S"===c.kind&&(b=sd(a,c));b&&"S"===d.kind&&(b=sd(a,d));a.isshowing=b};m._helper.midpoint=function(a,b){return g.normalizeMax(g.add(g.scalmult(b.value[2],a),g.scalmult(a.value[2],b)))};m.Mid={};m.Mid.kind="P";m.Mid.signature=["P","P"];m.Mid.updatePosition=function(a){var b=m._helper.midpoint(u.csnames[a.args[0]].homog,
-u.csnames[a.args[1]].homog);a.homog=w.withUsage(b,"Point")};m.Perp={};m.Perp.kind="L";m.Perp.signature=["L","P"];m.Perp.updatePosition=function(a){var b=u.csnames[a.args[0]].homog,c=u.csnames[a.args[1]].homog,b=g.turnIntoCSList([b.value[0],b.value[1],l.zero]);a.homog=g.cross(b,c);a.homog=g.normalizeMax(a.homog);a.homog=w.withUsage(a.homog,"Line")};m.Para={};m.Para.kind="L";m.Para.signature=["L","P"];m.Para.updatePosition=function(a){var b=u.csnames[a.args[1]].homog;a.homog=g.cross(g.cross(g.linfty,
-u.csnames[a.args[0]].homog),b);a.homog=g.normalizeMax(a.homog);a.homog=w.withUsage(a.homog,"Line")};m.Horizontal={};m.Horizontal.kind="L";m.Horizontal.signature=["P"];m.Horizontal.updatePosition=function(a){a.homog=g.cross(g.ex,u.csnames[a.args[0]].homog);a.homog=g.normalizeMax(a.homog);a.homog=w.withUsage(a.homog,"Line")};m.HorizontalLine={};m.HorizontalLine.kind="L";m.HorizontalLine.signature=[];m.HorizontalLine.isMovable=!0;m.HorizontalLine.initialize=function(a){a=m._helper.initializeLine(a);
-a=g.turnIntoCSList([l.zero,a.value[1],a.value[2]]);a=g.normalizeMax(a);T(a)};m.HorizontalLine.getParamForInput=function(a,b,c){if("mouse"===c)b=g.cross(b,g.ex);else if("homog"===c){if(0!==b.value[0].real||0!==b.value[0].imag)b=g.turnIntoCSList([l.zero,b.value[1],b.value[2]])}else b=g.turnIntoCSList([l.zero,l.zero,l.zero]);return g.normalizeMax(b)};m.HorizontalLine.getParamFromState=function(a){return Z(3)};m.HorizontalLine.putParamToState=function(a,b){T(b)};m.HorizontalLine.updatePosition=function(a){var b=
-Z(3);T(b);a.homog=w.withUsage(b,"Line")};m.HorizontalLine.stateSize=6;m.Vertical={};m.Vertical.kind="L";m.Vertical.signature=["P"];m.Vertical.updatePosition=function(a){a.homog=g.cross(g.ey,u.csnames[a.args[0]].homog);a.homog=g.normalizeMax(a.homog);a.homog=w.withUsage(a.homog,"Line")};m.VerticalLine={};m.VerticalLine.kind="L";m.VerticalLine.signature=[];m.VerticalLine.isMovable=!0;m.VerticalLine.initialize=function(a){a=m._helper.initializeLine(a);a=g.turnIntoCSList([a.value[0],l.zero,a.value[2]]);
-a=g.normalizeMax(a);T(a)};m.VerticalLine.getParamForInput=function(a,b,c){if("mouse"===c)b=g.cross(b,g.ey);else if("homog"===c){if(0!==b.value[1].real||0!==b.value[1].imag)b=g.turnIntoCSList([b.value[0],l.zero,b.value[2]])}else b=g.turnIntoCSList([l.zero,l.zero,l.zero]);return g.normalizeMax(b)};m.VerticalLine.getParamFromState=function(a){return Z(3)};m.VerticalLine.putParamToState=function(a,b){T(b)};m.VerticalLine.updatePosition=function(a){var b=Z(3);T(b);a.homog=w.withUsage(b,"Line")};m.VerticalLine.stateSize=
-6;m.LineByFixedAngle={};m.LineByFixedAngle.kind="L";m.LineByFixedAngle.signature=["L","P"];m.LineByFixedAngle.initialize=function(a){var b=l._helper.input(a.angle),c=l.cos(b),b=l.sin(b);a.rot=g.turnIntoCSList([g.turnIntoCSList([b,c,l.zero]),g.turnIntoCSList([l.neg(c),b,l.zero]),g.turnIntoCSList([l.zero,l.zero,l.zero])])};m.LineByFixedAngle.updatePosition=function(a){var b=u.csnames[a.args[1]],c=g.productMV(a.rot,u.csnames[a.args[0]].homog);a.homog=g.cross(b.homog,c);a.homog=g.normalizeMax(a.homog);
-a.homog=w.withUsage(a.homog,"Line")};m.Through={};m.Through.kind="L";m.Through.signature=["P"];m.Through.isMovable=!0;m.Through.initialize=function(a){a=a.dir?w.wrap(a.dir):g.realVector([a.pos[1],-a.pos[0],0]);T(a)};m.Through.getParamForInput=function(a,b,c){a="dir"===c||"mouse"===c?g.cross(u.csnames[a.args[0]].homog,b):"homog"===c?b:g.turnIntoCSList([l.zero,l.zero,l.zero]);a=g.cross(g.linfty,a);return g.normalizeMax(a)};m.Through.getParamFromState=function(a){return Z(3)};m.Through.putParamToState=
-function(a,b){T(b)};m.Through.updatePosition=function(a){var b=Z(3);T(b);b=g.cross(u.csnames[a.args[0]].homog,b);b=g.normalizeMax(b);a.homog=w.withUsage(b,"Line")};m.Through.stateSize=6;m.Through.set_angle=function(a,b){if("number"===b.ctype){var c=l.cos(b),d=l.sin(b),c=g.turnIntoCSList([c,d,l.real(0)]);Ia(a,c,"dir")}};m.Through.set_slope=function(a,b){if("number"===b.ctype){var c=g.turnIntoCSList([l.real(1),b,l.real(0)]);Ia(a,c,"dir")}};m.Free={};m.Free.kind="P";m.Free.signature=[];m.Free.isMovable=
-!0;m.Free.initialize=function(a){a=m._helper.initializePoint(a);T(a)};m.Free.getParamForInput=function(a,b,c){if("mouse"===c&&cc&&0!==Wa){b=g.normalizeZ(b);a=b.value[0].value.real;c=b.value[1].value.real;var d=Math.round(a/Wa)*Wa,e=Math.round(c/Wa)*Wa;.2>Math.abs(d-a)&&.2>Math.abs(e-c)&&(b=g.realVector([d,e,1]))}return g.normalizeMax(b)};m.Free.getParamFromState=function(a){return Z(3)};m.Free.putParamToState=function(a,b){T(b)};m.Free.updatePosition=function(a){var b=Z(3);T(b);a.homog=w.withUsage(b,
-"Point")};m.Free.stateSize=6;m._helper.projectPointToLine=function(a,b){var c=g.turnIntoCSList([b.value[0],b.value[1],l.zero]),c=g.cross(c,a);return g.normalizeMax(g.cross(c,b))};m.PointOnLine={};m.PointOnLine.kind="P";m.PointOnLine.signature=["L"];m.PointOnLine.isMovable=!0;m.PointOnLine.initialize=function(a){var b=m._helper.initializePoint(a);a=u.csnames[a.args[0]].homog;var b=m._helper.projectPointToLine(b,a),b=g.normalizeMax(b),c=g.cross(g.linfty,b);g.normalizeMax(c);T(b);T(a);fb=!1};m.PointOnLine.updatePosition=
-function(a,b){var c,d=u.csnames[a.args[0]].homog;c=Z(3);Z(3);if(!b){va=a.stateIdx;var e=ma;ma=za;var f=Z(3),l=Z(3);ma=e;e=g.cross(l,d);g._helper.isAlmostZero(e)&&(e=g.cross(g.linfty,d));f=m._helper.CircleMP(e,f);f=m._helper.IntersectLC(d,f);e=m._helper.pointReflection(e,c);c=Ad(f[0],f[1],c,e)[0]}c=g.normalizeMax(c);T(c);T(d);a.homog=w.withUsage(c,"Point")};m.PointOnLine.getParamForInput=function(a,b,c){return b=m._helper.projectPointToLine(b,u.csnames[a.args[0]].homog)};m.PointOnLine.getParamFromState=
-function(a){return Z(3)};m.PointOnLine.putParamToState=function(a,b){return T(b)};m.PointOnLine.stateSize=12;m.PointOnCircle={};m.PointOnCircle.kind="P";m.PointOnCircle.signature=["C"];m.PointOnCircle.isMovable=!0;m.PointOnCircle.initialize=function(a){var b=u.csnames[a.args[0]];a=g.normalizeZ(m._helper.initializePoint(a));var c=g.normalizeZ(m._helper.CenterOfCircle(b.matrix)),d=g.sub(a,c),d=g.turnIntoCSList([d.value[1],l.neg(d.value[0]),l.zero]),c=g.cross(a,c),b=m._helper.IntersectLC(c,b.matrix),
-c=g.projectiveDistMinScal(a,b[0]);g.projectiveDistMinScal(a,b[1])<c?(a=b[1],b=b[0]):(a=b[0],b=b[1]);T(d);T(a);T(b);fb=!1};m.PointOnCircle.putParamToState=function(a,b){T(b)};m.PointOnCircle.getParamFromState=function(a){return Z(3)};m.PointOnCircle.getParamForInput=function(a,b,c){c=g.normalizeZ(m._helper.CenterOfCircle(u.csnames[a.args[0]].matrix));b=g.sub(b,c);va=a.stateIdx;a=Z(3);var d=g.normalizeZ(Z(3));c=g.sub(d,c);0>l.sub(l.mult(a.value[0],c.value[1]),l.mult(a.value[1],c.value[0])).value.real&&
-(b=g.neg(b));return g.turnIntoCSList([b.value[1],l.neg(b.value[0]),l.zero])};m.PointOnCircle.parameterPath=function(a,b,c,d,e){d=g.normalizeAbs(d);e=g.normalizeAbs(e);var f=g.scalproduct(d,e);if(0<=f.value.real)return xd(a,b,c,d,e);a=g.turnIntoCSList([l.sub(d.value[1],e.value[1]),l.sub(e.value[0],d.value[0]),l.zero]);f=g.scalproduct(d,a);0>f.value.real&&(a=g.neg(a));0>b?(b=2*b+1,c=b*b,f=.25/(1+c),c=l.complex(2*b*f+.25,(1-c)*f)):(b=2*b-1,c=b*b,f=.25/(1+c),c=l.complex(2*b*f+.75,(1-c)*f));var k=l.sub(l.real(1),
-c);b=l.mult(c,c);f=l.mult(k,k);c=l.mult(c,k);d=g.scalmult(f,d);d=g.add(d,g.scalmult(c,a));return d=g.add(d,g.scalmult(b,e))};m.PointOnCircle.updatePosition=function(a){var b=Z(3);T(b);var c=u.csnames[a.args[0]],b=g.productMV(c.matrix,b),c=m._helper.IntersectLC(b,c.matrix),c=Na(c[0],c[1]),b=g.normalizeMax(c.value[0]);a.homog=w.withUsage(b,"Point");a.antipodalPoint=c.value[1]};m.PointOnCircle.stateSize=6+Na.stateSize;m.OtherPointOnCircle={};m.OtherPointOnCircle.kind="P";m.OtherPointOnCircle.signature=
-["P"];m.OtherPointOnCircle.signatureConstraints=function(a){return"PointOnCircle"===u.csnames[a.args[0]].type};m.OtherPointOnCircle.updatePosition=function(a){var b=u.csnames[a.args[0]].antipodalPoint,b=g.normalizeMax(b);a.homog=w.withUsage(b,"Point")};m.PointOnSegment={};m.PointOnSegment.kind="P";m.PointOnSegment.signature=["S"];m.PointOnSegment.isMovable=!0;m.PointOnSegment.initialize=function(a){var b=m._helper.initializePoint(a);a=m.PointOnSegment.getParamForInput(a,b);Va(a)};m.PointOnSegment.getParamForInput=
-function(a,b){var c=u.csnames[a.args[0]],d=c.homog,d=g.turnIntoCSList([d.value[0],d.value[1],l.zero]),e=g.sub(c.startpos,c.endpos),c=g.crossratio3(e,c.startpos,c.endpos,b,d);0>c.value.real&&(c=l.complex(0,c.value.imag));1<c.value.real&&(c=l.complex(1,c.value.imag));return c};m.PointOnSegment.getParamFromState=function(a){return wb()};m.PointOnSegment.putParamToState=function(a,b){Va(b)};m.PointOnSegment.updatePosition=function(a){var b=wb();Va(b);var c=u.csnames[a.args[0]],d=c.startpos,c=g.sub(c.endpos,
-d),b=g.add(d,g.scalmult(b,c)),b=g.normalizeMax(b);a.homog=w.withUsage(b,"Point")};m.PointOnSegment.stateSize=2;m._helper.projectPointToCircle=function(a,b){var c=m._helper.CenterOfCircle(a.matrix),c=g.normalizeMax(c),c=g.normalizeMax(g.cross(b,c)),c=m._helper.IntersectLC(c,a.matrix),d=g.projectiveDistMinScal(b,c[0]),e=g.projectiveDistMinScal(b,c[1]);return d<e?c[0]:c[1]};m.PointOnArc={};m.PointOnArc.kind="P";m.PointOnArc.signature=["C"];m.PointOnArc.signatureConstraints=function(a){return u.csnames[a.args[0]].isArc};
-m.PointOnArc.isMovable=!0;m.PointOnArc.initialize=function(a){var b=m._helper.initializePoint(a);a=m.PointOnArc.getParamForInput(a,b);T(a)};m.PointOnArc.getParamForInput=function(a,b){var c=u.csnames[a.args[0]],d=m._helper.projectPointToCircle(c,b),c=g.normalizeMax(g.crossratio3harm(c.startPoint,c.endPoint,c.viaPoint,d,g.ii)),d=l.div(c.value[0],c.value[1]);0>d.value.real&&(c=-1>d.value.real?g.realVector([1,0]):g.realVector([0,1]));return c};m.PointOnArc.getParamFromState=function(a){return Z(2)};
-m.PointOnArc.putParamToState=function(a,b){T(b)};m.PointOnArc.updatePosition=function(a){var b=u.csnames[a.args[0]],c=b.startPoint,d=b.viaPoint,e=b.endPoint,f=g.ii,k=g.cross(c,f),d=g.cross(d,f),n=g.cross(e,f),n=g.turnIntoCSList([k,n]),k=g.transpose(n),n=g.conjugate(n),k=g.productMM(n,k),d=g.productMV(n,d),k=g.productMV(g.adjoint2(k),d),d=k.value[0],k=k.value[1],n=Z(2);T(n);c=g.normalizeMax(g.add(g.scalmult(l.mult(d,n.value[0]),c),g.scalmult(l.mult(k,n.value[1]),e)));b=m._helper.conicOtherIntersection(b.matrix,
-f,c);a.homog=w.withUsage(b,"Point")};m.PointOnArc.stateSize=4;m._helper.CenterOfCircle=function(a){return g.turnIntoCSList([a.value[2].value[0],a.value[2].value[1],l.neg(a.value[0].value[0])])};m._helper.CenterOfConic=function(a){a=g.adjoint3(a);return{ctype:"list",value:[a.value[2].value[0],a.value[2].value[1],a.value[2].value[2]]}};m.CenterOfConic={};m.CenterOfConic.kind="P";m.CenterOfConic.signature=["C"];m.CenterOfConic.updatePosition=function(a){var b=m._helper.CenterOfConic(u.csnames[a.args[0]].matrix);
-a.homog=b;a.homog=g.normalizeMax(a.homog);a.homog=w.withUsage(a.homog,"Point")};m._helper.CircleMP=function(a,b){var c=a.value[0],d=a.value[1],e=l.neg(a.value[2]),f=l.zero,c=g.turnIntoCSList([g.turnIntoCSList([e,f,c]),g.turnIntoCSList([f,e,d]),g.turnIntoCSList([c,d,f])]),e=w.mult(w.mult(b,c),b),d=w.mult(w.mult(b,g.fund),b),e=w.mult(e,g.fund),c=w.mult(d,c);return g.sub(e,c)};m.CircleMP={};m.CircleMP.kind="C";m.CircleMP.signature=["P","P"];m.CircleMP.updatePosition=function(a){a.matrix=m._helper.CircleMP(u.csnames[a.args[0]].homog,
-u.csnames[a.args[1]].homog);a.matrix=g.normalizeMax(a.matrix);a.matrix=w.withUsage(a.matrix,"Circle")};m.CircleMr={};m.CircleMr.kind="C";m.CircleMr.signature=["P"];m.CircleMr.isMovable=!0;m.CircleMr.initialize=function(a){Va(l.real(a.radius))};m.CircleMr.getParamForInput=function(a,b,c){if("radius"===c)return b;a=u.csnames[a.args[0]].homog;a=g.normalizeZ(a);b=g.normalizeZ(b);b=g.sub(a,b);return b=g.abs(b)};m.CircleMr.getParamFromState=function(a){return wb()};m.CircleMr.putParamToState=function(a,
-b){Va(b)};m.CircleMr.updatePosition=function(a){var b=wb();Va(b);var c=u.csnames[a.args[0]].homog,d=l.mult(c.value[2],b),d=l.mult(d,d);if(!l._helper.isFinite(d)&&!l._helper.isNaN(d))return g.fund;c=m._helper.ScaledCircleMrr(c,d);a.matrix=w.withUsage(c,"Circle");a.radius=b};m.CircleMr.stateSize=2;m.CircleMr.set_radius=function(a,b){"number"===b.ctype&&Ia(a,b,"radius")};m._helper.ScaledCircleMrr=function(a,b){var c=a.value[0],d=a.value[1],e=l.neg(a.value[2]),e=g.scalmult(e,g.turnIntoCSList([c,d,e])).value,
-c=g.turnIntoCSList([c,d]),c=l.sub(g.scalproduct(c,c),b),e=m._helper.buildConicMatrix([e[2],l.zero,e[2],e[0],e[1],c]);return g.normalizeMax(e)};m.Compass={};m.Compass.kind="C";m.Compass.signature=["P","P","P"];m.Compass.updatePosition=function(a){var b=u.csnames[a.args[0]].homog,c=u.csnames[a.args[1]].homog,d=u.csnames[a.args[2]].homog,e=b.value[2],f=c.value[2],k=d.value[2],b=g.scalmult(l.mult(f,k),b),c=g.scalmult(l.mult(e,k),c),d=g.scalmult(l.mult(e,f),d),b=g.sub(c,b),d=m._helper.ScaledCircleMrr(d,
-g.scalproduct(b,b));a.matrix=w.withUsage(d,"Circle")};m._helper.getConicType=function(a){if(1E-16>l.abs(g.det(a)).value.real)return"degenerate";var b=l.mult(a.value[0].value[0],a.value[1].value[1]),b=l.sub(b,l.pow(a.value[0].value[1],l.real(2))),b=b.value.real;return 1E-16>Math.abs(b)?"parabola":1E-16<b?"ellipsoid":"hyperbola"};m._helper.ConicBy5=function(a,b,c,d,e,f){a=g.turnIntoCSList([g.cross(c,d)]);var k=g.turnIntoCSList([g.cross(b,e)]);b=g.turnIntoCSList([g.cross(b,c)]);d=g.turnIntoCSList([g.cross(d,
-e)]);return m._helper.conicFromTwoDegenerates(a,k,b,d,f)};m._helper.conicFromTwoDegenerates=function(a,b,c,d,e){a=w.mult(g.transpose(b),a);c=w.mult(g.transpose(d),c);a=g.add(a,g.transpose(a));c=g.add(c,g.transpose(c));d=w.mult(w.mult(e,a),e);e=w.mult(w.mult(e,c),e);c=w.mult(d,c);e=w.mult(e,a);return g.sub(c,e)};m.ConicBy5={};m.ConicBy5.kind="C";m.ConicBy5.signature=["P","P","P","P","P"];m.ConicBy5.updatePosition=function(a){var b=m._helper.ConicBy5(a,u.csnames[a.args[0]].homog,u.csnames[a.args[1]].homog,
-u.csnames[a.args[2]].homog,u.csnames[a.args[3]].homog,u.csnames[a.args[4]].homog);a.matrix=b;a.matrix=g.normalizeMax(a.matrix);a.matrix=w.withUsage(a.matrix,"Conic")};m.FreeConic={};m.FreeConic.kind="C";m.FreeConic.signature=[];m.FreeConic.initialize=function(a){var b;b=a.pos?m._helper.inputConic(a.pos):g.zeromatrix(l.real(3),l.real(3));m.FreeConic.putParamToState(a,b)};m.FreeConic.getParamForInput=function(a,b,c){return g.normalizeMax(b)};m.FreeConic.getParamFromState=function(a){return m._helper.buildConicMatrix(Z(6).value)};
-m.FreeConic.putParamToState=function(a,b){for(var c=0;3>c;++c)for(var d=0;d<=c;++d)Va(b.value[c].value[d])};m.FreeConic.updatePosition=function(a){var b=Z(6);T(b);a.matrix=m._helper.buildConicMatrix(b.value);a.matrix=g.normalizeMax(a.matrix);a.matrix=w.withUsage(a.matrix,"Conic")};m.FreeConic.set_matrix=function(a,b){g._helper.isNumberMatrixMN(b,3,3)&&Ia(a,g.add(b,g.transpose(b)),"matrix")};m.FreeConic.stateSize=12;m._helper.buildConicMatrix=function(a){var b=a[1],c=a[2],d=a[3],e=a[4],f=a[5];return g.turnIntoCSList([g.turnIntoCSList([a[0],
-b,d]),g.turnIntoCSList([b,c,e]),g.turnIntoCSList([d,e,f])])};m._helper.splitDegenConic=function(a){var b=g.adjoint3(a),c=0,d,e,f=l.abs2(b.value[0].value[0]).value.real;for(d=1;3>d;d++)e=l.abs2(b.value[d].value[d]).value.real,e>f&&(c=d,f=e);d=l.sqrt(l.mult(l.real(-1),b.value[c].value[c]));if(1E-16>l.abs2(d).value.real)return a=g.turnIntoCSList([l.zero,l.zero,l.zero]),[a,a];c=l.real(c+1);e=g.column(b,c);e=g.scaldiv(d,e);d=e.value[0];f=e.value[1];e=e.value[2];d=g.turnIntoCSList([g.turnIntoCSList([l.real(0),
-e,l.mult(l.real(-1),f)]),g.turnIntoCSList([l.mult(l.real(-1),e),l.real(0),d]),g.turnIntoCSList([f,l.mult(l.real(-1),d),l.real(0)])]);a=g.add(a,d);var k=0;for(d=f=b=0;3>d;d++)for(c=0;3>c;c++)e=l.abs2(a.value[d].value[c]).value.real,e>f&&(k=d,b=c,f=e);d=a.value[k];a=g.transpose(a);a=a.value[b];d=g.normalizeMax(d);a=g.normalizeMax(a);d=w.withUsage(d,"Line");a=w.withUsage(a,"Line");return[d,a]};m._helper.inputConic=function(a){var b="xx xy yy xz yz zz".split(" ").map(function(b){var d=l._helper.input(a[b]);
-b[0]!==b[1]&&(d=l.realmult(.5,d));return d});return m._helper.buildConicMatrix(b)};m.SelectConic={};m.SelectConic.kind="C";m.SelectConic.signature=["Cs"];m.SelectConic.initialize=function(a){if(void 0!==a.index)return a.index-1;var b=m._helper.inputConic(a.pos);a=u.csnames[a.args[0]].results;for(var c=g.conicDist(b,a[0]),d=0,e=1;e<a.length;++e){var f=g.conicDist(b,a[e]);f<c&&(c=f,d=e)}return d};m.SelectConic.updatePosition=function(a){a.matrix=u.csnames[a.args[0]].results[a.param];a.matrix=g.normalizeMax(a.matrix);
-a.matrix=w.withUsage(a.matrix,"Conic")};m._helper.ConicBy4p1l=function(a,b,c,d,e,f){var k=g.scalproduct(b,f),n=g.scalproduct(c,f),p=g.scalproduct(d,f),q=g.scalproduct(e,f),t=g.det3(c,d,e),u=g.det3(b,c,e),v=g.det3(b,d,e),w=g.det3(b,c,d),x=l.mult,n=l.sqrt(x(x(n,q),x(t,u))),k=l.sqrt(x(x(k,p),x(v,w))),p=g.cross(g.cross(b,d),f);f=g.cross(g.cross(c,e),f);p=g.scalmult(n,p);k=g.scalmult(k,f);f=g.normalizeMax(g.add(p,k));k=g.normalizeMax(g.sub(p,k));k=Na(f,k);f=m._helper.ConicBy5(a,b,c,d,e,k.value[0]);a=m._helper.ConicBy5(a,
-b,c,d,e,k.value[1]);return[g.normalizeMax(f),g.normalizeMax(a)]};m.ConicBy4p1l={};m.ConicBy4p1l.kind="Cs";m.ConicBy4p1l.signature=["P","P","P","P","L"];m.ConicBy4p1l.updatePosition=function(a){var b=m._helper.ConicBy4p1l(a,u.csnames[a.args[0]].homog,u.csnames[a.args[1]].homog,u.csnames[a.args[2]].homog,u.csnames[a.args[3]].homog,u.csnames[a.args[4]].homog);a.results=b};m.ConicBy4p1l.stateSize=Na.stateSize;m._helper.ConicBy3p2l=function(a,b,c,d,e){function f(a,b,c,d){return l.sub(l.mult(a,d),l.mult(b,
-c))}var k=g.cross(a,b),m=g.cross(d,e);d=g.cross(d,k);e=g.cross(e,k);k=g.turnIntoCSList([d,e,m]);c=g.productVM(c,g.adjoint3(k));m=g.adjoint3(g.turnIntoCSList([g.scalmult(c.value[0],d),g.scalmult(c.value[1],e),g.scalmult(c.value[2],m)]));c=g.transpose(m);d=l.mult;e=g.productMV(c,a);a=e.value[0];e=e.value[1];k=g.productMV(c,b);b=k.value[0];var k=k.value[1],n=l.sqrt(d(a,e)),p=l.sqrt(d(b,k)),q,t=Array(4);for(q=0;4>q;++q){var u=(q&2)-1,v=d(l.real(((q&1)<<1)-1),n),w=d(l.real(u),p),x=f(e,v,k,w),y=f(b,w,a,
-v),u=f(a,e,b,k),z=l.add(l.add(f(b,k,a,e),f(k,w,e,v)),f(w,b,v,a)),v=d(x,x),w=d(y,y),A=d(z,z),B=d(x,y),x=d(x,z),y=d(y,z),B=l.sub(B,d(l.real(.5),d(u,u))),u=g.turnIntoCSList([g.turnIntoCSList([v,B,x]),g.turnIntoCSList([B,w,y]),g.turnIntoCSList([x,y,A])]),u=g.productMM(m,g.productMM(u,c)),u=g.turnIntoCSList([u.value[0].value[0],u.value[0].value[1],u.value[0].value[2],u.value[1].value[1],u.value[1].value[2],u.value[2].value[2]]);t[q]=u}return t};m.ConicBy3p2l={};m.ConicBy3p2l.kind="Cs";m.ConicBy3p2l.signature=
-["P","P","P","L","L"];m.ConicBy3p2l.updatePosition=function(a){for(var b=m._helper.ConicBy3p2l(u.csnames[a.args[0]].homog,u.csnames[a.args[1]].homog,u.csnames[a.args[2]].homog,u.csnames[a.args[3]].homog,u.csnames[a.args[4]].homog),b=Bd(b),c=Array(4),d=0;4>d;++d){var e=b[d].value;c[d]=g.turnIntoCSList([g.turnIntoCSList([e[0],e[1],e[2]]),g.turnIntoCSList([e[1],e[3],e[4]]),g.turnIntoCSList([e[2],e[4],e[5]])])}a.results=c};m.ConicBy3p2l.stateSize=48;m.ConicBy2p3l={};m.ConicBy2p3l.kind="Cs";m.ConicBy2p3l.signature=
-["P","P","L","L","L"];m.ConicBy2p3l.updatePosition=function(a){for(var b=m._helper.ConicBy3p2l(u.csnames[a.args[2]].homog,u.csnames[a.args[3]].homog,u.csnames[a.args[4]].homog,u.csnames[a.args[0]].homog,u.csnames[a.args[1]].homog),b=Bd(b),c=Array(4),d=0;4>d;++d){var e=b[d].value,e=g.turnIntoCSList([g.turnIntoCSList([e[0],e[1],e[2]]),g.turnIntoCSList([e[1],e[3],e[4]]),g.turnIntoCSList([e[2],e[4],e[5]])]);c[d]=g.normalizeMax(g.adjoint3(e))}a.results=c};m.ConicBy2p3l.stateSize=48;m.ConicBy1p4l={};m.ConicBy1p4l.kind=
-"Cs";m.ConicBy1p4l.signature=["P","L","L","L","L"];m.ConicBy1p4l.updatePosition=function(a){var b=m._helper.ConicBy4p1l(a,u.csnames[a.args[1]].homog,u.csnames[a.args[2]].homog,u.csnames[a.args[3]].homog,u.csnames[a.args[4]].homog,u.csnames[a.args[0]].homog),c=b[0],b=b[1],c=g.adjoint3(c),b=g.adjoint3(b),b=[c,b];a.results=b};m.ConicBy1p4l.stateSize=Na.stateSize;m.ConicParabolaPL={};m.ConicParabolaPL.kind="C";m.ConicParabolaPL.signature=["P","L"];m.ConicParabolaPL.updatePosition=function(a){var b=u.csnames[a.args[0]].homog.value,
-c=u.csnames[a.args[1]].homog.value,d=l.mult,e=l.neg,f=l.add,k=l.sub,n=b[0],p=b[1],q=b[2],t=c[0],b=c[1],c=c[2],v=d(q,q),x=d(t,t),y=d(b,b),z=d(q,c),A=e(q),q=f(x,y),y=d(v,y),x=d(v,x),e=d(e(v),d(t,b)),t=d(A,f(d(n,q),d(z,t))),b=d(A,f(d(p,q),d(z,b))),d=k(d(f(d(n,n),d(p,p)),q),d(v,d(c,c))),d=m._helper.buildConicMatrix([y,e,x,t,b,d]),d=g.normalizeMax(d);a.matrix=w.withUsage(d,"Conic")};m.ConicBy2Foci1P={};m.ConicBy2Foci1P.kind="Cs";m.ConicBy2Foci1P.signature=["P","P","P"];m.ConicBy2Foci1P.updatePosition=
-function(a){var b=u.csnames[a.args[0]].homog,c=u.csnames[a.args[1]].homog,d=u.csnames[a.args[2]].homog,e=g.ii,f=g.jj,k=g.normalizeMax(g.cross(b,d)),n=g.normalizeMax(g.cross(c,d)),p=g.normalizeMax(g.cross(d,e)),d=g.normalizeMax(g.cross(d,f)),n=m._helper.coHarmonic(p,d,k,n),k=g.normalizeMax(n[0]),n=g.normalizeMax(n[1]),e=g.turnIntoCSList([e]),p=g.turnIntoCSList([f]),d=g.turnIntoCSList([b]),q=g.turnIntoCSList([c]),f=m._helper.conicFromTwoDegenerates(e,p,d,q,k),f=g.normalizeMax(f),e=m._helper.conicFromTwoDegenerates(e,
-p,d,q,n),e=g.normalizeMax(e),f=g.normalizeMax(g.adjoint3(f)),e=g.normalizeMax(g.adjoint3(e));"ellipsoid"!==m._helper.getConicType(f)&&(k=f,f=e,e=k);g.almostequals(b,c).value&&(b=l.real(3),e=g.zeromatrix(b,b));a.results=[f,e]};m.ConicBy2Pol1P={};m.ConicBy2Pol1P.kind="C";m.ConicBy2Pol1P.signature=["P","L","P","L","P"];m.ConicBy2Pol1P.updatePosition=function(a){var b=u.csnames[a.args[0]].homog,c=u.csnames[a.args[1]].homog,d=u.csnames[a.args[2]].homog,e=u.csnames[a.args[3]].homog,f=u.csnames[a.args[4]].homog,
-k=g.scalproduct,m=g.scalmult,n=g.sub,p=g.productMM,q=l.realmult,t=g.transpose,v=g.turnIntoCSList,x=n(m(k(c,b),f),m(q(2,k(c,f)),b)),y=n(m(k(e,d),f),m(q(2,k(e,f)),d)),z=v([g.cross(b,f)]),f=v([g.cross(d,f)]),y=p(t(z),v([g.cross(b,y)])),v=p(t(f),v([g.cross(d,x)])),p=p(t(z),f),b=k(b,e),c=k(d,c),d=g.add(m(c,y),m(b,v)),d=n(d,m(q(2,l.mult(b,c)),p)),d=g.add(d,t(d)),d=g.normalizeMax(d),d=w.withUsage(d,"Conic");a.matrix=d};m.ConicBy2Pol1L={};m.ConicBy2Pol1L.kind="C";m.ConicBy2Pol1L.signature=["P","L","P","L",
-"L"];m.ConicBy2Pol1L.updatePosition=function(a){var b=u.csnames[a.args[0]].homog,c=u.csnames[a.args[1]].homog,d=u.csnames[a.args[2]].homog,e=u.csnames[a.args[3]].homog,f=u.csnames[a.args[4]].homog,k=g.scalproduct,m=g.scalmult,n=g.productMM,p=l.mult,q=g.transpose,t=g.turnIntoCSList,v=k(c,b),x=k(c,d),y=k(e,b),z=k(e,d),A=k(f,b),k=k(f,d),B=t([g.sub(m(p(y,k),c),m(p(x,A),e))]),b=g.add(n(q(t([m(p(y,x),f)])),t([g.sub(g.add(m(l.sub(p(v,k),p(x,A)),e),m(l.sub(p(z,A),p(y,k)),c)),m(g.det3(c,e,f),g.cross(b,d)))])),
-n(q(B),B)),b=g.add(b,q(b)),b=g.normalizeMax(b),b=w.withUsage(b,"Conic");a.matrix=b};m._helper.conic1Pol3Inc=function(a,b,c,d,e){var f=g.scalproduct,k=g.scalmult,m=g.productMM,n=g.cross,p=l.realmult,q=l.mult,t=g.transpose,u=g.turnIntoCSList,v=g.det3,w=v(a,c,d),x=u([n(c,e)]),y=u([n(a,e)]),z=u([n(c,d)]),A=f(b,a),B=f(b,c);b=f(b,e);n=u([n(d,g.sub(k(A,e),k(p(2,b),a)))]);x=k(w,m(t(x),n));a=p(2,l.add(q(v(a,d,e),B),q(w,b)));a=l.sub(q(v(c,d,e),A),a);x=g.add(x,k(a,m(t(y),z)));x=g.add(x,t(x));return x=g.normalizeMax(x)};
-m.ConicBy1Pol3P={};m.ConicBy1Pol3P.kind="C";m.ConicBy1Pol3P.signature=["P","L","P","P","P"];m.ConicBy1Pol3P.updatePosition=function(a){var b=m._helper.conic1Pol3Inc(u.csnames[a.args[0]].homog,u.csnames[a.args[1]].homog,u.csnames[a.args[2]].homog,u.csnames[a.args[3]].homog,u.csnames[a.args[4]].homog),b=w.withUsage(b,"Conic");a.matrix=b};m.ConicBy1Pol3L={};m.ConicBy1Pol3L.kind="C";m.ConicBy1Pol3L.signature=["P","L","L","L","L"];m.ConicBy1Pol3L.updatePosition=function(a){var b=m._helper.conic1Pol3Inc(u.csnames[a.args[1]].homog,
-u.csnames[a.args[0]].homog,u.csnames[a.args[2]].homog,u.csnames[a.args[3]].homog,u.csnames[a.args[4]].homog),b=g.normalizeMax(g.adjoint3(b)),b=w.withUsage(b,"Conic");a.matrix=b};m._helper.coHarmonic=function(a,b,c,d){var e=g.realVector([100*Math.random(),100*Math.random(),1]),f=g.det3(e,c,a),k=g.det3(e,c,b);c=g.det3(e,d,a);d=g.det3(e,d,b);d=l.sqrt(l.mult(d,k));f=l.sqrt(l.mult(c,f));a=w.mult(a,d);f=w.mult(b,f);b=g.add(a,f);a=g.sub(a,f);return[b,a]};m.ConicInSquare={};m.ConicInSquare.kind="C";m.ConicInSquare.signature=
-["P","P","P","P"];m.ConicInSquare.updatePosition=function(a){var b=D.basismap(u.csnames[a.args[0]].homog,u.csnames[a.args[1]].homog,u.csnames[a.args[2]].homog,u.csnames[a.args[3]].homog),c=l.one,c=m._helper.buildConicMatrix([c,c,c,l.real(-3),c,c]),b=g.adjoint3(b),b=g.productMM(g.productMM(g.transpose(b),c),b),b=g.normalizeMax(b);a.matrix=w.withUsage(b,"Conic")};m.ConicBy5lines={};m.ConicBy5lines.kind="C";m.ConicBy5lines.signature=["L","L","L","L","L"];m.ConicBy5lines.updatePosition=function(a){var b=
-m._helper.ConicBy5(a,u.csnames[a.args[0]].homog,u.csnames[a.args[1]].homog,u.csnames[a.args[2]].homog,u.csnames[a.args[3]].homog,u.csnames[a.args[4]].homog),b=g.adjoint3(b);a.matrix=b;a.matrix=g.normalizeMax(a.matrix);a.matrix=w.withUsage(a.matrix,"Conic")};m.ConicFromPrincipalDirections={};m.ConicFromPrincipalDirections.kind="C";m.ConicFromPrincipalDirections.signature=["P","P","P"];m.ConicFromPrincipalDirections.updatePosition=function(a){var b=u.csnames[a.args[0]].homog,c=u.csnames[a.args[1]].homog,
-d=u.csnames[a.args[2]].homog,e=m._helper.pointReflection(b,c),f=g.cross(c,b),b=g.turnIntoCSList([f.value[0],f.value[1],l.zero]),f=g.turnIntoCSList([f]),c=g.turnIntoCSList([g.cross(c,b)]),e=g.turnIntoCSList([g.cross(e,b)]);a.matrix=m._helper.conicFromTwoDegenerates(f,f,c,e,d);a.matrix=g.normalizeMax(a.matrix);a.matrix=w.withUsage(a.matrix,"Conic")};m.CircleBy3={};m.CircleBy3.kind="C";m.CircleBy3.signature=["P","P","P"];m.CircleBy3.updatePosition=function(a){var b=m._helper.ConicBy5(a,u.csnames[a.args[0]].homog,
-u.csnames[a.args[1]].homog,g.ii,g.jj,u.csnames[a.args[2]].homog);a.matrix=g.normalizeMax(b);a.matrix=w.withUsage(a.matrix,"Circle")};m.ArcBy3={};m.ArcBy3.kind="C";m.ArcBy3.signature=["P","P","P"];m.ArcBy3.updatePosition=function(a){m.CircleBy3.updatePosition(a);a.startPoint=u.csnames[a.args[0]].homog;a.viaPoint=u.csnames[a.args[1]].homog;a.endPoint=u.csnames[a.args[2]].homog};m.ArcBy3.initialize=function(a){a.startPoint=u.csnames[a.args[0]].homog;a.viaPoint=u.csnames[a.args[1]].homog;a.endPoint=u.csnames[a.args[2]].homog;
-a.isArc=!0};m.PolarOfPoint={};m.PolarOfPoint.kind="L";m.PolarOfPoint.signature=["P","C"];m.PolarOfPoint.updatePosition=function(a){var b=w.mult(u.csnames[a.args[1]].matrix,u.csnames[a.args[0]].homog),b=g.normalizeMax(b);a.homog=w.withUsage(b,"Line")};m.PolarOfLine={};m.PolarOfLine.kind="P";m.PolarOfLine.signature=["L","C"];m.PolarOfLine.updatePosition=function(a){var b=u.csnames[a.args[0]],c=g.adjoint3(u.csnames[a.args[1]].matrix),b=w.mult(c,b.homog),b=g.normalizeMax(b);a.homog=w.withUsage(b,"Point")};
-m.AngleBisector={};m.AngleBisector.kind="Ls";m.AngleBisector.signature=["L","L","P"];m.AngleBisector.updatePosition=function(a){var b=u.csnames[a.args[0]].homog,c=u.csnames[a.args[1]].homog,d=u.csnames[a.args[2]].homog,e=g.add,f=g.sub,k=g.abs,l=g.cross,m=g.scalmult,n=g.normalizeMax,p=g._helper.isAlmostZero,q=g.linfty,t=m(k(l(l(q,c),q)),b),b=m(k(l(l(q,b),q)),c),f=f(t,b),e=e(t,b);p(f)&&(f=l(l(l(q,e),q),d));p(e)&&(e=l(l(l(q,f),q),d));a.results=Na(n(f),n(e))};m.AngleBisector.stateSize=Na.stateSize;m._helper.IntersectLC=
-function(a,b){var c=l,d=g.crossOperator(a),e=g.transpose(d),e=w.mult(e,w.mult(b,d)),f=g.maxIndex(a,l.abs2),k,m,n,p;0===f?(f=e.value[1].value[1],k=e.value[1].value[2],m=e.value[2].value[1],n=e.value[2].value[2],p=a.value[0]):1===f?(f=e.value[0].value[0],k=e.value[0].value[2],m=e.value[2].value[0],n=e.value[2].value[2],p=a.value[1]):(f=e.value[0].value[0],k=e.value[0].value[1],m=e.value[1].value[0],n=e.value[1].value[1],p=a.value[2]);c=c.div(c.sqrt(c.sub(c.mult(k,m),c.mult(f,n))),p);c=g.add(e,g.scalmult(c,
-d));f=g.maxIndex(c,g.abs2);d=c.value[f];d=g.normalizeMax(d);d=w.withUsage(d,"Point");c=g.transpose(c);f=g.maxIndex(c,g.abs2);c=c.value[f];c=g.normalizeMax(c);c=w.withUsage(c,"Point");return[d,c]};m.IntersectLC={};m.IntersectLC.kind="Ps";m.IntersectLC.signature=["L","C"];m.IntersectLC.updatePosition=function(a){var b=m._helper.IntersectLC(u.csnames[a.args[0]].homog,u.csnames[a.args[1]].matrix);a.results=Na(b[0],b[1])};m.IntersectLC.stateSize=Na.stateSize;m.OtherIntersectionCL={};m.OtherIntersectionCL.kind=
-"P";m.OtherIntersectionCL.signature=["C","L","P"];m.OtherIntersectionCL.updatePosition=function(a){var b=u.csnames[a.args[2]].homog,c=m._helper.IntersectLC(u.csnames[a.args[1]].homog,u.csnames[a.args[0]].matrix),d=c[0],c=c[1],e=g.projectiveDistMinScal(d,b),b=g.projectiveDistMinScal(c,b);a.homog=e<b?c:d;a.homog=g.normalizeMax(a.homog);a.homog=w.withUsage(a.homog,"Point")};m.IntersectCirCir={};m.IntersectCirCir.kind="Ps";m.IntersectCirCir.signature=["C","C"];m.IntersectCirCir.updatePosition=function(a){var b=
-u.csnames[a.args[0]].matrix,c=u.csnames[a.args[1]].matrix,d=g.scalmult(c.value[0].value[0],b.value[2]),c=g.scalmult(b.value[0].value[0],c.value[2]),d=g.sub(d,c),d=g.turnIntoCSList([d.value[0],d.value[1],l.realmult(.5,d.value[2])]),d=g.normalizeMax(d),b=m._helper.IntersectLC(d,b);a.results=Na(b[0],b[1])};m.IntersectCirCir.stateSize=Na.stateSize;m.OtherIntersectionCC={};m.OtherIntersectionCC.kind="P";m.OtherIntersectionCC.signature=["C","C","P"];m.OtherIntersectionCC.updatePosition=function(a){var b=
-u.csnames[a.args[0]].matrix,c=u.csnames[a.args[1]].matrix,d=u.csnames[a.args[2]].homog,e=g.scalmult(c.value[0].value[0],b.value[2]),c=g.scalmult(b.value[0].value[0],c.value[2]),e=g.sub(e,c),e=g.turnIntoCSList([e.value[0],e.value[1],l.realmult(.5,e.value[2])]),e=g.normalizeMax(e),e=m._helper.IntersectLC(e,b),b=e[0],e=e[1],c=g.projectiveDistMinScal(b,d),d=g.projectiveDistMinScal(e,d);a.homog=c<d?e:b;a.homog=g.normalizeMax(a.homog);a.homog=w.withUsage(a.homog,"Point")};m._helper.IntersectConicConic=
-function(a,b){var c=a.value[0],d=a.value[1],e=a.value[2],f=b.value[0],k=b.value[1],n=b.value[2],p=g.det3(c,d,e),q=l.add(l.add(g.det3(c,d,n),g.det3(c,k,e)),g.det3(f,d,e)),c=l.add(l.add(g.det3(c,k,n),g.det3(f,d,n)),g.det3(f,k,e)),f=g.det3(f,k,n),n=l.abs2(p).value.real,k=l.abs2(f).value.real;n<k&&(n=a,a=b,b=n,n=f,f=p,p=n,n=c,c=q,q=n,n=k);1E-24>n?(p=a,c=b):(q=l.solveCubic(p,q,c,f),c=l.abs2(l.sub(q[0],q[1])).value.real,f=l.abs2(l.sub(q[0],q[2])).value.real,k=l.abs2(l.sub(q[1],q[2])).value.real,c>f?(p=
-q[1],q=c>k?q[0]:q[2]):(p=q[2],q=f>k?q[0]:q[1]),p=g.add(g.scalmult(p,a),b),c=g.add(g.scalmult(q,a),b));q=m._helper.splitDegenConic(p);p=q[0];q=q[1];c=m._helper.splitDegenConic(c);k=c[0];f=c[1];c=g.cross(p,k);k=g.cross(q,k);p=g.cross(p,f);q=g.cross(q,f);c=g.normalizeMax(c);k=g.normalizeMax(k);p=g.normalizeMax(p);q=g.normalizeMax(q);c=w.withUsage(c,"Point");k=w.withUsage(k,"Point");p=w.withUsage(p,"Point");q=w.withUsage(q,"Point");return[c,k,p,q]};m.IntersectConicConic={};m.IntersectConicConic.kind=
-"Ps";m.IntersectConicConic.signature=["C","C"];m.IntersectConicConic.updatePosition=function(a){var b=m._helper.IntersectConicConic(u.csnames[a.args[0]].matrix,u.csnames[a.args[1]].matrix),b=xc(b[0],b[1],b[2],b[3]);a.results=b};m.IntersectConicConic.stateSize=xc.stateSize;m.SelectP={};m.SelectP.kind="P";m.SelectP.signature=["Ps"];m.SelectP.initialize=function(a){if(void 0!==a.index)return a.index-1;var b=u.csnames[a.args[0]].results.value;a=m._helper.initializePoint(a);for(var c=g.projectiveDistMinScal(a,
-b[0]),d=0,e=1;e<b.length;++e){var f=g.projectiveDistMinScal(a,b[e]);f<c&&(c=f,d=e)}return d};m.SelectP.updatePosition=function(a){a.homog=u.csnames[a.args[0]].results.value[a.param]};m.SelectL={};m.SelectL.kind="L";m.SelectL.signature=["Ls"];m.SelectL.initialize=function(a){if(void 0!==a.index)return a.index-1;var b=u.csnames[a.args[0]].results.value;a=m._helper.initializeLine(a);for(var c=g.projectiveDistMinScal(a,b[0]),d=0,e=1;e<b.length;++e){var f=g.projectiveDistMinScal(a,b[e]);f<c&&(c=f,d=e)}return d};
-m.SelectL.updatePosition=function(a){a.homog=u.csnames[a.args[0]].results.value[a.param];a.homog=w.withUsage(a.homog,"Line")};m._helper.moebiusStep=function(a,b,c){var d=l.add,e=l.sub,f=l.mult,g=a.value[0],k=a.value[1];a=a.value[2];var m=b.value[0],n=b.value[1];b=b.value[2];var p=c.value[0],q=c.value[1],t=c.value[2];c=e(f(b,p),f(m,t));var u=e(f(b,q),f(n,t)),p=e(f(g,t),f(a,p)),q=e(f(k,t),f(a,q));return[e(f(g,c),f(k,u)),d(f(k,c),f(g,u)),f(a,c),f(a,u),e(f(m,p),f(n,q)),d(f(n,p),f(m,q)),f(b,p),f(b,q)]};
-m.TrMoebius={};m.TrMoebius.kind="Mt";m.TrMoebius.signature="PPPPPP".split("");m.TrMoebius.updatePosition=function(a){var b=l.neg,c=m._helper.moebiusStep(u.csnames[a.args[0]].homog,u.csnames[a.args[2]].homog,u.csnames[a.args[4]].homog),d=m._helper.moebiusStep(u.csnames[a.args[1]].homog,u.csnames[a.args[3]].homog,u.csnames[a.args[5]].homog),d=g.normalizeMax(g.matrix([[d[0],b(d[1]),d[4],b(d[5])],[d[1],d[0],d[5],d[4]],[d[2],b(d[3]),d[6],b(d[7])],[d[3],d[2],d[7],d[6]]])),b=g.normalizeMax(g.matrix([[c[6],
-b(c[4])],[c[7],b(c[5])],[b(c[2]),c[0]],[b(c[3]),c[1]]])),b=g.normalizeMax(g.productMM(d,b));a.moebius={anti:!1,ar:b.value[0].value[0],ai:b.value[1].value[0],br:b.value[0].value[1],bi:b.value[1].value[1],cr:b.value[2].value[0],ci:b.value[3].value[0],dr:b.value[2].value[1],di:b.value[3].value[1]};m._helper.moebiusPair(a)};m._helper.moebiusPair=function(a){var b=a.moebius,c=l.neg,d=b.anti?c:w.identity;a.mat1=g.normalizeMax(g.matrix([[c(b.cr),d(b.ci),c(b.dr)],[b.ci,d(b.cr),b.di],[b.ar,c(d(b.ai)),b.br]]));
-a.mat2=g.normalizeMax(g.matrix([[c(b.ci),c(d(b.cr)),c(b.di)],[c(b.cr),d(b.ci),c(b.dr)],[b.ai,d(b.ar),b.bi]]))};m.TrInverseMoebius={};m.TrInverseMoebius.kind="Mt";m.TrInverseMoebius.signature=["Mt"];m.TrInverseMoebius.updatePosition=function(a){var b=u.csnames[a.args[0]].moebius,c=l.neg,d=b.anti?c:w.identity;a.moebius={anti:b.anti,ar:b.dr,ai:d(b.di),br:c(b.br),bi:c(d(b.bi)),cr:c(b.cr),ci:c(d(b.ci)),dr:b.ar,di:d(b.ai)};m._helper.moebiusPair(a)};m.TrMoebiusP={};m.TrMoebiusP.kind="P";m.TrMoebiusP.signature=
-["Mt","P"];m.TrMoebiusP.updatePosition=function(a){var b=u.csnames[a.args[0]],c=u.csnames[a.args[1]].homog,d=g.productMV(b.mat1,c),b=g.productMV(b.mat2,c);a.homog=g.normalizeMax(g.cross(d,b));a.homog=w.withUsage(a.homog,"Point")};m._helper.TrMoebiusP=function(a,b){var c=g.productMV(b.mat1,a),d=g.productMV(b.mat2,a);return g.normalizeMax(g.cross(c,d))};m.TrMoebiusL={};m.TrMoebiusL.kind="C";m.TrMoebiusL.signature=["Mt","L"];m.TrMoebiusL.updatePosition=function(a){var b=u.csnames[a.args[0]],c=u.csnames[a.args[1]].homog,
-d=function(){var a=g.realVector([Math.random()-.5,Math.random()-.5,Math.random()-.5]);return g.normalizeMax(a)},e=g.cross(d(),c),f=g.cross(d(),c),c=g.cross(d(),c),e=m._helper.TrMoebiusP(e,b),f=m._helper.TrMoebiusP(f,b),b=m._helper.TrMoebiusP(c,b);a.matrix=g.normalizeMax(m._helper.ConicBy5(null,e,f,b,g.ii,g.jj));a.matrix=w.withUsage(a.matrix,"Circle")};m.TrMoebiusS={};m.TrMoebiusS.kind="C";m.TrMoebiusS.signature=["Mt","S"];m.TrMoebiusS.updatePosition=function(a){var b=u.csnames[a.args[0]],c=u.csnames[a.args[1]],
-d=c.startpos,c=c.endpos,e=g.add(d,c),d=m._helper.TrMoebiusP(d,b),e=m._helper.TrMoebiusP(e,b),b=m._helper.TrMoebiusP(c,b);a.startPoint=d;a.viaPoint=e;a.endPoint=b;a.isArc=!0;a.matrix=g.normalizeMax(m._helper.ConicBy5(null,d,e,b,g.ii,g.jj));a.matrix=w.withUsage(a.matrix,"Circle")};m.TrMoebiusC={};m.TrMoebiusC.kind="C";m.TrMoebiusC.signature=["Mt","C"];m.TrMoebiusC.signatureConstraints=function(a){return"Circle"===u.csnames[a.args[1]].matrix.usage};m.TrMoebiusC.updatePosition=function(a){var b=u.csnames[a.args[0]],
-c=u.csnames[a.args[1]].matrix,d=function(){var a=g.realVector([Math.random()-.5,Math.random()-.5,Math.random()-.5]);return g.normalizeMax(a)},e=m._helper.IntersectLC(d(),c),d=m._helper.IntersectLC(d(),c),c=e[1],d=d[1],e=m._helper.TrMoebiusP(e[0],b),c=m._helper.TrMoebiusP(c,b),b=m._helper.TrMoebiusP(d,b);a.matrix=g.normalizeMax(m._helper.ConicBy5(null,e,c,b,g.ii,g.jj));a.matrix=w.withUsage(a.matrix,"Circle")};m.TrMoebiusArc={};m.TrMoebiusArc.kind="C";m.TrMoebiusArc.signature=["Mt","C"];m.TrMoebiusArc.signatureConstraints=
-function(a){return u.csnames[a.args[1]].isArc};m.TrMoebiusArc.updatePosition=function(a){var b=u.csnames[a.args[0]],c=u.csnames[a.args[1]],d=c.viaPoint,e=c.endPoint,c=m._helper.TrMoebiusP(c.startPoint,b),d=m._helper.TrMoebiusP(d,b),b=m._helper.TrMoebiusP(e,b);a.startPoint=c;a.viaPoint=d;a.endPoint=b;a.isArc=!0;a.matrix=g.normalizeMax(m._helper.ConicBy5(null,c,d,b,g.ii,g.jj));a.matrix=w.withUsage(a.matrix,"Circle")};m._helper.trBuildMatrix=function(a,b){var c=b(0),d=b(1),e=g.productMM(d,g.adjoint3(c));
-a.matrix=g.normalizeMax(e);e=g.transpose(g.productMM(c,g.adjoint3(d)));a.dualMatrix=g.normalizeMax(e)};m.TrProjection={};m.TrProjection.kind="Tr";m.TrProjection.signature="PPPPPPPP".split("");m.TrProjection.updatePosition=function(a){m._helper.trBuildMatrix(a,function(b){return D.basismap(u.csnames[a.args[0+b]].homog,u.csnames[a.args[2+b]].homog,u.csnames[a.args[4+b]].homog,u.csnames[a.args[6+b]].homog)})};m.TrAffine={};m.TrAffine.kind="Tr";m.TrAffine.signature="PPPPPP".split("");m.TrAffine.updatePosition=
-function(a){var b=l.mult,c=g.scalmult,d=g.turnIntoCSList,e=g.transpose,f=g.normalizeMax,k=g.productMM,m=g.adjoint3,n=d([u.csnames[a.args[0]].homog,u.csnames[a.args[2]].homog,u.csnames[a.args[4]].homog]),p=d([u.csnames[a.args[1]].homog,u.csnames[a.args[3]].homog,u.csnames[a.args[5]].homog]),q=e(n),e=e(p),t=q.value[2].value,v=e.value[2].value,w=[b(t[0],v[2]),b(t[1],v[0]),b(t[2],v[1])],q=m(q).value;a.matrix=f(k(e,d([c(b(w[0],v[1]),q[0]),c(b(w[1],v[2]),q[1]),c(b(w[2],v[0]),q[2])])));q=n.value;a.dualMatrix=
-f(k(m(p),d([c(b(t[2],w[1]),q[0]),c(b(t[0],w[2]),q[1]),c(b(t[1],w[0]),q[2])])))};m.TrSimilarity={};m.TrSimilarity.kind="Tr";m.TrSimilarity.signature=["P","P","P","P"];m.TrSimilarity.updatePosition=function(a){m._helper.trBuildMatrix(a,function(b){return D.basismap(u.csnames[a.args[0+b]].homog,u.csnames[a.args[2+b]].homog,g.ii,g.jj)})};m.TrTranslation={};m.TrTranslation.kind="Tr";m.TrTranslation.signature=["P","P"];m.TrTranslation.updatePosition=function(a){var b=u.csnames[a.args[0]].homog,c=u.csnames[a.args[1]].homog,
-d=g.cross(b,c).value,b=l.mult(b.value[2],c.value[2]),c=g.turnIntoCSList,e=l.neg,f=l.zero,d=c([c([b,f,d[1]]),c([f,b,e(d[0])]),c([f,f,b])]),d=g.normalizeMax(d);a.matrix=d;b=e(d.value[0].value[0]);d=c([c([b,f,f]),c([f,b,f]),c([d.value[0].value[2],d.value[1].value[2],b])]);a.dualMatrix=d};m.TrReflectionP={};m.TrReflectionP.kind="Tr";m.TrReflectionP.signature=["P"];m.TrReflectionP.updatePosition=function(a){var b=u.csnames[a.args[0]].homog.value,c=l.realmult(-.5,b[2]),d=l.zero,b=g.turnIntoCSList([g.turnIntoCSList([c,
-d,b[0]]),g.turnIntoCSList([d,c,b[1]]),g.turnIntoCSList([d,d,l.neg(c)])]),b=g.normalizeMax(b);a.matrix=b;a.dualMatrix=g.transpose(b)};m.TrReflectionL={};m.TrReflectionL.kind="Tr";m.TrReflectionL.signature=["L"];m.TrReflectionL.updatePosition=function(a){var b=l.mult,c=l.realmult,d=l.zero,e=u.csnames[a.args[0]].homog.value,f=e[0],k=e[1],e=e[2],m=b(f,f),n=b(k,k),p=c(-.5,l.sub(m,n)),q=b(f,k),b=g.turnIntoCSList([g.turnIntoCSList([l.neg(p),q,b(f,e)]),g.turnIntoCSList([q,p,b(k,e)]),g.turnIntoCSList([d,d,
-c(-.5,l.add(m,n))])]),b=g.normalizeMax(b);a.matrix=b;a.dualMatrix=g.transpose(b)};m.TrReflectionS={};m.TrReflectionS.kind="Tr";m.TrReflectionS.signature=["S"];m.TrReflectionS.updatePosition=m.TrReflectionL.updatePosition;m.TrReflectionC={};m.TrReflectionC.kind="Mt";m.TrReflectionC.signature=["C"];m.TrReflectionC.signatureConstraints=function(a){return"Circle"===u.csnames[a.args[0]].matrix.usage};m.TrReflectionC.updatePosition=function(a){var b=u.csnames[a.args[0]].matrix,c=b.value[0].value[2],d=b.value[1].value[2],
-e=l.neg;a.moebius={anti:!0,ar:c,ai:d,br:b.value[2].value[2],bi:l.zero,cr:e(b.value[0].value[0]),ci:l.zero,dr:e(c),di:d};m._helper.moebiusPair(a)};m.TrInverse={};m.TrInverse.kind="Tr";m.TrInverse.signature=["Tr"];m.TrInverse.updatePosition=function(a){var b=u.csnames[a.args[0]];a.dualMatrix=g.transpose(b.matrix);a.matrix=g.transpose(b.dualMatrix)};m.TransformC={};m.TransformC.kind="C";m.TransformC.signature=["Tr","C"];m.TransformC.updatePosition=function(a){var b=u.csnames[a.args[0]].dualMatrix,b=
-g.productMM(g.productMM(b,u.csnames[a.args[1]].matrix),g.transpose(b)),b=g.normalizeMax(b);a.matrix=w.withUsage(b,"Conic")};m.TransformArc={};m.TransformArc.kind="C";m.TransformArc.signature=["Tr","C"];m.TransformArc.signatureConstraints=function(a){return u.csnames[a.args[0]].isArc};m.TransformArc.updatePosition=function(a){var b=u.csnames[a.args[0]].matrix,c=u.csnames[a.args[1]],d=c.viaPoint,e=c.endPoint,c=g.normalizeMax(g.productMV(b,c.startPoint)),d=g.normalizeMax(g.productMV(b,d)),b=g.normalizeMax(g.productMV(b,
-e));a.startPoint=c;a.viaPoint=d;a.endPoint=b;a.isArc=!0;a.matrix=g.normalizeMax(m._helper.ConicBy5(null,c,d,b,g.ii,g.jj));a.matrix=w.withUsage(a.matrix,"Circle")};m.TransformP={};m.TransformP.kind="P";m.TransformP.signature=["Tr","P"];m.TransformP.updatePosition=function(a){a.homog=g.normalizeMax(g.productMV(u.csnames[a.args[0]].matrix,u.csnames[a.args[1]].homog));a.homog=w.withUsage(a.homog,"Point")};m.TransformL={};m.TransformL.kind="L";m.TransformL.signature=["Tr","L"];m.TransformL.updatePosition=
-function(a){a.homog=g.normalizeMax(g.productMV(u.csnames[a.args[0]].dualMatrix,u.csnames[a.args[1]].homog));a.homog=w.withUsage(a.homog,"Line")};m.TransformS={};m.TransformS.kind="S";m.TransformS.signature=["Tr","S"];m.TransformS.updatePosition=function(a){var b=u.csnames[a.args[0]],c=u.csnames[a.args[1]];m.Segment.setSegmentPos(a,g.productMV(b.dualMatrix,c.homog),g.productMV(b.matrix,c.startpos),g.productMV(b.matrix,c.endpos))};m.TransformPolygon={};m.TransformPolygon.kind="Poly";m.TransformPolygon.signature=
-["Tr","Poly"];m.TransformPolygon.updatePosition=function(a){var b=u.csnames[a.args[0]].matrix;a.vertices=g.turnIntoCSList(u.csnames[a.args[1]].vertices.value.map(function(a){a=g.normalizeMax(g.productMV(b,a));return a=w.withUsage(a,"Point")}))};m._helper.pointReflection=function(a,b){return g.normalizeMax(g.sub(g.scalmult(l.realmult(2,b.value[2]),a),g.scalmult(a.value[2],b)))};m._helper.conicOtherIntersection=function(a,b,c){var d=g.productMV(a,c);a=g.scalproduct(c,d);d=g.scalproduct(b,d);d=l.realmult(-2,
-d);b=g.scalmult(a,b);c=g.scalmult(d,c);c=g.add(b,c);return c=g.normalizeMax(c)};m.Dist={};m.Dist.kind="V";m.Dist.signature=["P","P"];m.Dist.updatePosition=function(a){var b=u.csnames[a.args[1]].homog;a.value=g.abs(g.sub(g.normalizeZ(u.csnames[a.args[0]].homog),g.normalizeZ(b)))};m.Angle={};m.Angle.kind="V";m.Angle.signature=["L","L","P"];m.Angle.initialize=function(a){void 0===a.angle&&(a.angle=.5*Math.PI);Va(l._helper.input(a.angle))};m.Angle.updatePosition=function(a){var b=u.csnames[a.args[1]].homog,
-c=u.csnames[a.args[2]].homog,d=g.cross(u.csnames[a.args[0]].homog,g.linfty),b=g.cross(b,g.linfty),c=g.crossratio3(d,b,g.ii,g.jj,c),c=l.mult(l.complex(0,.5),l.log(c)),d=(wb().value.real-c.value.real)/Math.PI,b=Math.round(d);!fb&&.01<Math.abs(b-d)&&Vb();c=l.complex(b*Math.PI+c.value.real,c.value.imag);Va(c);a.value=w.withUsage(c,"Angle")};m.Angle.stateSize=2;m.Text={};m.Text.kind="Text";m.Text.signature="**";m.Text.isMovable=!0;m.Text.updatePosition=Pa;m.Text.initialize=function(a){a.text=String(a.text);
-a.pos&&(a.homog=m._helper.initializePoint(a));a.dock&&(a.dock.offset=a.dock.offset&&2===a.dock.offset.length?g.realVector([+a.dock.offset[0],+a.dock.offset[1]]):g.realVector([0,0]))};m.Text.getParamForInput=function(a,b,c){return m.Free.getParamForInput(a,b,c)};m.Text.getParamFromState=function(a){return a.homog};m.Text.putParamToState=function(a,b){a.homog=b};m.Calculation={};m.Calculation.kind="Text";m.Calculation.signature="**";m.Calculation.isMovable=!0;m.Calculation.updatePosition=Pa;m.Calculation.initialize=
-function(a){m.Text.initialize(a);a.calculation=Ra(a.text)};m.Calculation.getText=function(a){return ba(A(a.calculation))};m.Calculation.getParamForInput=m.Text.getParamForInput;m.Calculation.getParamFromState=m.Text.getParamFromState;m.Calculation.putParamToState=m.Text.putParamToState;m.Equation={};m.Equation.kind="Text";m.Equation.isMovable=!0;m.Equation.signature="**";m.Equation.updatePosition=Pa;m.Equation.initialize=function(a){m.Text.initialize(a);a.calculation=Ra(a.text)};m.Equation.getText=
-function(a){return a.text+" = "+ba(A(a.calculation))};m.Equation.getParamForInput=m.Text.getParamForInput;m.Equation.getParamFromState=m.Text.getParamFromState;m.Equation.putParamToState=m.Text.putParamToState;m.Evaluate={};m.Evaluate.kind="Text";m.Evaluate.isMovable=!0;m.Evaluate.signature="**";m.Evaluate.updatePosition=Pa;m.Evaluate.initialize=function(a){m.Text.initialize(a);a.calculation=Ra(a.text)};m.Evaluate.getText=function(a){A(a.calculation);return a.text};m.Evaluate.getParamForInput=m.Text.getParamForInput;
-m.Evaluate.getParamFromState=m.Text.getParamFromState;m.Evaluate.putParamToState=m.Text.putParamToState;m.Plot={};m.Plot.kind="Text";m.Plot.isMovable=!0;m.Plot.signature="**";m.Plot.updatePosition=Pa;m.Plot.initialize=function(a){m.Text.initialize(a);a.calculation=Ra("plot(("+a.text+"))")};m.Plot.getText=function(a){A(a.calculation);return a.text};m.Plot.getParamForInput=m.Text.getParamForInput;m.Plot.getParamFromState=m.Text.getParamFromState;m.Plot.putParamToState=m.Text.putParamToState;m.Button=
-{};m.Button.kind="Text";m.Button.signature="**";m.Button.isMovable=!0;m.Button.updatePosition=Pa;m.Button.initialize=function(a){var b=document.createElement("button");yc(a,"click",b)};m.Button.getParamForInput=m.Text.getParamForInput;m.Button.getParamFromState=m.Text.getParamFromState;m.Button.putParamToState=m.Text.putParamToState;m.Button.set_fillcolor=function(a,b){g._helper.isNumberVecN(b,3)&&(a.fillcolor=b.value.map(function(a){return a.value.real}),a.html.style.backgroundColor=x.makeColor(a.fillcolor,
-a.fillalpha))};m.ToggleButton={};m.ToggleButton.kind="Text";m.ToggleButton.signature="**";m.ToggleButton.isMovable=!0;m.ToggleButton.updatePosition=Pa;m.ToggleButton.initialize=function(a){var b;b=void 0;void 0===b&&(b="CindyJSid");b+=++Oa;var c=document.createElement("input"),d=document.createElement("label");c.setAttribute("id",b);d.setAttribute("for",b);c.setAttribute("type","checkbox");a.pressed&&(c.checked=!0);a.checkbox=c;yc(a,"change",c,d)};m.ToggleButton.getParamForInput=m.Text.getParamForInput;
-m.ToggleButton.getParamFromState=m.Text.getParamFromState;m.ToggleButton.putParamToState=m.Text.putParamToState;m.ToggleButton.set_fillcolor=m.Button.set_fillcolor;m.EditableText={};m.EditableText.kind="Text";m.EditableText.isMovable=!0;m.EditableText.signature=[];m.EditableText.updatePosition=Pa;m.EditableText.initialize=function(a){var b=document.createElement("input");b.setAttribute("type","text");b.className="CindyJS-editabletext";Fa(a.minwidth)&&(b.style.width=a.minwidth-3+"px");"string"===typeof a.text&&
-(b.value=a.text);b.addEventListener("keydown",function(a){13===a.keyCode&&b.blur()});yc(a,"change",b)};m.EditableText.getText=function(a){return!1};m.EditableText.getParamForInput=m.Text.getParamForInput;m.EditableText.getParamFromState=m.Text.getParamFromState;m.EditableText.putParamToState=m.Text.putParamToState;m.EditableText.set_fillcolor=m.Button.set_fillcolor;m.EditableText.get_currenttext=function(a){return w.string(String(a.html.value))};m.EditableText.set_currenttext=function(a,b){a.html.value=
-ba(b)};m.EditableText.get_text=m.EditableText.get_currenttext;m.EditableText.set_text=m.EditableText.set_currenttext;m._helper.initializePoint=function(a){var b=0,c=0,d=0;if(a.pos){if("list"===a.pos.ctype&&g.isNumberVector(a.pos))return a.pos;2===a.pos.length&&(b=a.pos[0],c=a.pos[1],d=1);3===a.pos.length&&(b=a.pos[0],c=a.pos[1],d=a.pos[2])}a=g.turnIntoCSList([l._helper.input(b),l._helper.input(c),l._helper.input(d)]);return a=g.normalizeMax(a)};m._helper.initializeLine=function(a){var b=0,c=0,d=0;
-if(a.pos){if("list"===a.pos.ctype&&g.isNumberVector(a.pos))return a.pos;3===a.pos.length&&(b=a.pos[0],c=a.pos[1],d=a.pos[2])}a=g.turnIntoCSList([l._helper.input(b),l._helper.input(c),l._helper.input(d)]);return a=g.normalizeMax(a)};m.Poly={};m.Poly.kind="Poly";m.Poly.signature="P*";m.Poly.updatePosition=function(a){a.vertices=g.turnIntoCSList(a.args.map(function(a){return u.csnames[a].homog}))};var tc={CircleByRadius:"CircleMr",IntersectionCircleCircle:"IntersectCirCir",IntersectionConicConic:"IntersectConicConic",
-FreePoint:"Free",Orthogonal:"Perp",Parallel:"Para",Pole:"PolarOfLine",Polar:"PolarOfPoint",Arc:"ArcBy3",EuclideanMid:"Mid",AngularBisector:"AngleBisector",TransformConic:"TransformC",TransformSegment:"TransformS",TrMoebiusSegment:"TrMoebiusS",ReflectCC:"TrMoebiusC",ReflectCL:"TrMoebiusL",ReflectCP:"TrMoebiusP",ReflectCArc:"TrMoebiusArc",ReflectCS:"TrMoebiusS",TrMoebiusCircle:"TrMoebiusC"},rd={CircleMFixedr:function(a){a.pinned=!0;a.type="CircleMr";return[a]},CircleByFixedRadius:function(a){a.pinned=
-!0;a.type="CircleMr";return[a]},IntersectionConicLine:function(a){a.args=[a.args[1],a.args[0]];a.type="IntersectLC";return[a]},angleBisector:function(a){var b={name:a.name+"_Intersection",type:"Meet",args:a.args,visible:!1};a.type="AngleBisector";a.args=[a.args[0],a.args[1],b.name];return[b,a]},Transform:function(a){var b=u.csnames[a.args[1]],b={Tr:"Transform",Mt:"TrMoebius"}[u.csnames[a.args[0]].kind]+(b.isArc?"Arc":b.kind);if(m.hasOwnProperty(b))return a.type=b,[a];console.log(b+" not implemented yet");
-return[]},TrReflection:function(a){var b="TrReflection"+u.csnames[a.args[0]].kind;if(m.hasOwnProperty(b))return a.type=b,[a];console.log(b+" not implemented yet");return[]}},le="align alpha angle args arrow arrowposition arrowshape arrowsides arrowsize clip color dashtype drawtrace fillalpha fillcolor filled labeled labelpos name overhang pinned printname radius size text text_fontfamily textbold textitalics textsize tracedim tracelength traceskip tracing type visible".split(" ");oa.saveState=function(){return{geometry:me()}};
-var ra={},Jd,Ib,Kd,Ld;Jd=[[],[.2],[.075,.225],[44/45,-56/15,32/9],[19372/6561,-25360/2187,64448/6561,-212/729],[9017/3168,-355/33,46732/5247,49/176,-5103/18656],[35/384,0,500/1113,125/192,-2187/6784,11/84]];Ib=[0,.2,.3,.8,8/9,1,1];Kd=[35/384,0,500/1113,125/192,-2187/6784,11/84,0];Ld=[5179/57600,0,7571/16695,.6140625,-92097/339200,187/2100,.025];var Ba,ga=[],zc=[],ic=!1;ra.tick=function(a){a/=Mb;for(var b=0;b<Mb;b++)ra.tick1(a),Cb+=a,A(S.simulationstep)};ra.tick1=function(a){for(var b=a,c=0;0<a&&c<
-.999*a||0>a&&c>.999*a;)b=ra.oneRKStep(b),c+=b,b=Math.min(2*b,a-c),b=Math.max(b,1E-16),ra.restorePosition(),ra.doCollisions(),ra.calculateForces(),ra.moveToFinalPos();return!0};ra.restorePosition=function(){Ba.forEach(function(a){O[a.type].restorePos(a,9)})};ra.doCollisions=function(){Ba.forEach(function(a){O[a.type].doCollisions(a)})};ra.calculateForces=function(){Ba.forEach(function(a){O[a.type].calculateForces(a)})};ra.moveToFinalPos=function(){Ba.forEach(function(a){O[a.type].move(a)})};ra.oneRKStep=
-function(a){for(var b=function(a){Ba.forEach(function(b){O[b.type].initRK(b,a);O[b.type].storePosition(b)})},c=function(a){Ba.forEach(function(b){O[b.type].setToTimestep(b,Ib[a])})},d=function(a){Ba.forEach(function(b){O[b.type].proceedMotion(b,Ib[a],a,Jd[a])})},e=function(){Ba.forEach(function(a){O[a.type].resetForces(a)})},f=function(a){Ba.forEach(function(b){O[b.type].calculateDelta(b,a)})},g=function(b){var c=0;Ba.forEach(function(a){O[a.type].proceedMotion(a,Ib[6],7,Kd);O[a.type].savePos(a,8);
-O[a.type].proceedMotion(a,Ib[6],7,Ld);O[a.type].savePos(a,9);c+=O[a.type].sqDist(a,8,9)});return c=Math.sqrt(c)/a},k=function(a){Ba.forEach(function(a){O[a.type].recallPosition(a)})},l=!1;!l;){b(a);for(var m=0;7>m;m++)c(m),d(m),e(),ra.calculateForces(),f(m);g(a)>O.env.errorbound&&a>O.env.lowestdeltat?(a/=O.env.slowdownfactor,k()):l=!0}return a};var O={Mass:{reset:function(a,b){a.vel=[0,0,0];a.pos=[0,0,0,0];a.el=b;"undefined"===typeof a.mass&&(a.mass=1);"undefined"===typeof a.charge&&(a.charge=0);
-"undefined"===typeof a.friction&&(a.friction=0);a.lnfrict=0;"undefined"===typeof a.limitspeed&&(a.limitspeed=!1);"undefined"===typeof a.fixed&&(a.fixed=!1);"undefined"===typeof a.radius&&(a.radius=1);a.internalmove=!1;a.fx=0;a.fy=0;a.fz=0;a.vx=a.vx||0;a.vy=a.vy||0;a.vz=a.vz||0;a.mtype=0;a.env=O.env;a.deltat=0;a.mx=0;a.my=0;a.mz=0;a.mvx=0;a.mvy=0;a.mvz=0;a.dx=[0,0,0,0,0,0,0,0,0,0];a.dy=[0,0,0,0,0,0,0,0,0,0];a.dz=[0,0,0,0,0,0,0,0,0,0];a.dvx=[0,0,0,0,0,0,0,0,0,0];a.dvy=[0,0,0,0,0,0,0,0,0,0];a.dvz=[0,
-0,0,0,0,0,0,0,0,0];a.midx=0;a.midy=0;a.midz=0;a.lx=0;a.ly=0;a.lz=0},resetForces:function(a){a.fx=0;a.fy=0;a.fz=0},getBlock:!1,setToTimestep:function(a,b,c){},initRK:function(a,b){var c=D.extractPoint(a.el.homog);a.x=c.x;a.y=c.y;a.z=0;a.xo=a.x;a.yo=a.y;a.zo=a.z;a.vxo=a.vx;a.vyo=a.vy;a.vzo=a.vz;a.deltat=b;a.fx=0;a.fy=0;a.fz=0},setVelocity:function(a,b,c,d){d||(d=0);a.vx=b;a.vy=c;a.vz=d},move:function(a){a.pos=[a.x,a.y,1];a.internalmove=!0;fa&&X.down&&a.el===fa.mover||Ia(a.el,g.realVector(a.pos),"homog");
-a.el.sx=a.x;a.el.sy=a.y;a.internalmove=!1},proceedMotion:function(a,b,c,d){if(!a.fixed)for(a.x=a.mx,a.y=a.my,a.z=a.mz,a.vx=a.mvx,a.vy=a.mvy,a.vz=a.mvz,b=0;b<c;b++)a.x+=d[b]*a.dx[b]*a.deltat,a.y+=d[b]*a.dy[b]*a.deltat,a.z+=d[b]*a.dz[b]*a.deltat,a.vx+=d[b]*a.dvx[b]*a.deltat,a.vy+=d[b]*a.dvy[b]*a.deltat,a.vz+=d[b]*a.dvz[b]*a.deltat},calculateForces:function(a){var b=Math.sqrt(a.vx*a.vx+a.vy*a.vy+a.vz*a.vz);a.lnfrict=-Math.log((1-a.friction)*(1-a.env.friction)*(.1<b&&a.limitSpeed?.1/b:1));a.fx+=-a.vx*
-a.lnfrict*a.mass;a.fy+=-a.vy*a.lnfrict*a.mass;a.fz+=-a.vz*a.lnfrict*a.mass},calculateDelta:function(a,b){a.dx[b]=a.vx;a.dy[b]=a.vy;a.dz[b]=a.vz;a.dvx[b]=a.fx/a.mass;a.dvy[b]=a.fy/a.mass;a.dvz[b]=a.fz/a.mass},savePos:function(a,b){a.dx[b]=a.x;a.dy[b]=a.y;a.dz[b]=a.z;a.dvx[b]=a.vx;a.dvy[b]=a.vy;a.dvz[b]=a.vz},restorePos:function(a,b){a.fixed||(a.x=a.dx[b],a.y=a.dy[b],a.z=a.dz[b],a.vx=a.dvx[b],a.vy=a.dvy[b],a.vz=a.dvz[b])},sqDist:function(a,b,c){var d=(a.dx[b]-a.dx[c])*(a.dx[b]-a.dx[c]),d=d+(a.dy[b]-
-a.dy[c])*(a.dy[b]-a.dy[c]),d=d+(a.dz[b]-a.dz[c])*(a.dz[b]-a.dz[c]),d=d+(a.dvx[b]-a.dvx[c])*(a.dvx[b]-a.dvx[c]),d=d+(a.dvy[b]-a.dvy[c])*(a.dvy[b]-a.dvy[c]);return d+=(a.dvz[b]-a.dvz[c])*(a.dvz[b]-a.dvz[c])},kineticEnergy:function(a){return.5*a.mass*(a.vx*a.vx+a.vy*a.vy+a.vz*a.vz)},storePosition:function(a){a.mx=a.x;a.my=a.y;a.mz=a.z;a.mvx=a.vx;a.mvy=a.vy;a.mvz=a.vz},recallPosition:function(a){a.fixed||(a.x=a.mx,a.y=a.my,a.z=a.mz,a.vx=a.mvx,a.vy=a.mvy,a.vz=a.mvz)},doCollisions:function(a){}},Sun:{reset:function(a,
-b){a.vel=[0,0,0];a.pos=[0,0,0,0];a.el=b;"undefined"===typeof a.mass&&(a.mass=10);"undefined"===typeof a.friction&&(a.friction=0);a.charge=0;a.x=0;a.y=0;a.z=0},resetForces:function(a){},getBlock:!1,setToTimestep:function(a,b,c){},initRK:function(a,b){var c=D.extractPoint(a.el.homog);a.x=c.x;a.y=c.y;a.z=0},setVelocity:function(a,b,c,d){},move:function(a){},proceedMotion:function(a,b,c,d){},calculateDelta:function(a,b){},calculateForces:function(a){for(var b=a.x,c=a.y,d=a.z,e=0;e<ga.length;e++){var f=
-ga[e],g=f.behavior.x,k=f.behavior.y,l=f.behavior.z,m=Math.sqrt((b-g)*(b-g)+(c-k)*(c-k)+(d-l)*(d-l)),k=(c-k)*a.mass*f.behavior.mass/(m*m*m),l=(d-l)*a.mass*f.behavior.mass/(m*m*m);f.behavior.fx+=(b-g)*a.mass*f.behavior.mass/(m*m*m)*f.behavior.mass;f.behavior.fy+=k*f.behavior.mass;f.behavior.fz+=l*f.behavior.mass}},savePos:function(a,b){},restorePos:function(a,b){},sqDist:function(a,b,c){return 0},kineticEnergy:function(a){},storePosition:function(a){},recallPosition:function(a){},doCollisions:function(a){}},
-Velocity:{reset:function(a){var b=u.csnames[a.geo[1]];console.log(b);var c=D.extractPoint(b.homog);a=D.extractPoint(u.csnames[a.geo[2]].homog);b=b.behavior;O[b.type].setVelocity(b,a.x-c.x,a.y-c.y,0)},resetForces:function(a){},getBlock:!1,setToTimestep:function(a,b,c){},initRK:function(a,b){},setVelocity:function(a,b,c,d){},move:function(a){var b=u.csnames[a.geo[2]];if(!fa||!X.down||b!==fa.mover){var c=u.csnames[a.geo[1]];a=D.extractPoint(c.homog);c=c.behavior;a=g.realVector([a.x+c.vx,a.y+c.vy,1]);
-Ia(b,a,"homog")}},proceedMotion:function(a,b,c,d){},calculateForces:function(a){},calculateDelta:function(a,b){},savePos:function(a,b){},restorePos:function(a,b){},sqDist:function(a,b,c){return 0},kineticEnergy:function(a){},storePosition:function(a){},recallPosition:function(a){},doCollisions:function(a){}},Gravity:{reset:function(a,b){a.vel=[0,0,0];a.pos=[0,0,0,0];a.el=b;"undefined"===typeof a.strength&&(a.strength=1);a.namea=b.args[0];a.nameb=b.args[1];a.ma=u.csnames[a.namea];a.mb=u.csnames[a.nameb]},
-resetForces:function(a){},getBlock:!1,setToTimestep:function(a,b,c){},initRK:function(a,b){},setVelocity:function(a,b,c,d){},move:function(a){},proceedMotion:function(a,b,c,d){},calculateDelta:function(a,b){},calculateForces:function(a){var b=D.extractPoint(a.ma.homog),c=D.extractPoint(a.mb.homog),d=(c.x-b.x)*a.strength;a=(c.y-b.y)*a.strength;for(b=0;b<ga.length;b++)c=ga[b],c.behavior.fx+=d*c.behavior.mass,c.behavior.fy+=a*c.behavior.mass,c.behavior.fz+=0*c.behavior.mass},savePos:function(a,b){},
-restorePos:function(a,b){},sqDist:function(a,b,c){return 0},kineticEnergy:function(a){},storePosition:function(a){},recallPosition:function(a){},doCollisions:function(a){}},Spring:{reset:function(a,b){a.el=b;"undefined"===typeof a.strength&&(a.strength=1);"undefined"===typeof a.amplitude&&(a.amplitude=0);"undefined"===typeof a.phase&&(a.phase=0);"undefined"===typeof a.speed&&(a.speed=1);"undefined"===typeof a.l0&&(a.l0=0);"undefined"===typeof a.stype&&(a.stype=1);"undefined"===typeof a.readOnInit&&
-(a.readOnInit=!1);a.namea=b.args[0];a.nameb=b.args[1];a.ma=u.csnames[a.namea];a.mb=u.csnames[a.nameb];var c=D.extractPoint(a.ma.homog),d=D.extractPoint(a.mb.homog);a.l0=Math.sqrt((c.x-d.x)*(c.x-d.x)+(c.y-d.y)*(c.y-d.y));a.env=O.env},resetForces:function(a){},getBlock:!1,setToTimestep:function(a,b,c){},initRK:function(a,b){},setVelocity:function(a,b,c,d){},move:function(a){},proceedMotion:function(a,b,c,d){},calculateForces:function(a){var b,c,d,e;!a.ma.behavior||fa&&X.down&&a.ma===fa.mover?(c=D.extractPoint(a.ma.homog),
-b=c.x,d=c.y):(b=a.ma.behavior.x,d=a.ma.behavior.y);!a.mb.behavior||fa&&X.down&&a.mb===fa.mover?(e=D.extractPoint(a.mb.homog),c=e.x,e=e.y):(c=a.mb.behavior.x,e=a.mb.behavior.y);var f=Math.sqrt((b-c)*(b-c)+(d-e)*(d-e)),g=a.l0,k=a.stype;1===k&&(g=0);var l=0;if(2===k||3===k)l=a.ma.behavior.mass*a.mb.behavior.mass*a.strength;2===k&&(l=-l);var m,n;if(0===f||0!==k&&1!==k)if(a.ma.behavior&&a.mb.behavior&&0!==f){if(f*=f*f,2===k||3===k)m=(b-c)*l/f,n=(d-e)*l/f}else m=n=0;else m=-(b-c)*a.strength*(f-g)/f*a.env.springstrength,
-n=-(d-e)*a.strength*(f-g)/f*a.env.springstrength;a.ma.behavior&&(a.ma.behavior.fx+=m,a.ma.behavior.fy+=n);a.mb.behavior&&(a.mb.behavior.fx-=m,a.mb.behavior.fy-=n)},calculateDelta:function(a,b){},savePos:function(a,b){},restorePos:function(a,b){},sqDist:function(a,b,c){return 0},kineticEnergy:function(a){},storePosition:function(a){},recallPosition:function(a){},doCollisions:function(a){}},det:function(a,b,c,d,e,f){return c*f-e*d+e*b-a*f+a*d-c*b},Bouncer:{reset:function(a,b){a.el=b;"undefined"===typeof a.xdamp&&
-(a.xdamp=0);"undefined"===typeof a.ydamp&&(a.ydamp=0);"undefined"===typeof a.motorchanger&&(a.motorchanger=!0);a.namea=b.args[0];a.nameb=b.args[1];a.ma=u.csnames[a.namea];a.mb=u.csnames[a.nameb];var c=D.extractPoint(a.ma.homog),d=D.extractPoint(a.mb.homog);a.x1o=1.01*c.x-.01*d.x;a.y1o=1.01*c.y-.01*d.y;a.x2o=1.01*d.x-.01*c.x;a.y2o=1.01*d.y-.01*c.y;a.env=O.env},resetForces:function(a){},getBlock:!1,setToTimestep:function(a,b,c){},initRK:function(a,b){a.deltat=b},setVelocity:function(a,b,c,d){},move:function(a){},
-proceedMotion:function(a,b,c,d){},calculateForces:function(a){},calculateDelta:function(a,b){},savePos:function(a,b){},restorePos:function(a,b){},sqDist:function(a,b,c){return 0},kineticEnergy:function(a){},storePosition:function(a){},recallPosition:function(a){},doCollisions:function(a){for(var b=D.extractPoint(a.ma.homog),c=D.extractPoint(a.mb.homog),d=b.x,b=b.y,e=c.x,c=c.y,f=a.x1o,g=a.y1o,k=a.x2o,m=a.y2o,n=Math.sqrt((d-e)*(d-e)+(b-c)*(b-c)),p=(d-e)/n,n=(b-c)/n,q=0;q<ga.length;q++){var t=ga[q],
-u=t.behavior.xo,v=t.behavior.yo,w=t.behavior.x,x=t.behavior.y,y=l.mult(l.complex(f,g),l.complex(e,c)),z=l.mult(l.complex(k,m),l.complex(d,b)),y=l.sub(y,z),z=l.mult(l.complex(u,v),l.complex(d,b)),y=l.add(y,z),z=l.mult(l.complex(u,v),l.complex(e,c)),y=l.sub(y,z),z=l.sub(l.complex(f,g),l.complex(k,m)),y=l.div(y,z);0>O.det(d,b,e,c,w,x)*O.det(d,b,e,c,y.value.real,y.value.imag)&&0>O.det(d,b,w,x,y.value.real,y.value.imag)*O.det(e,c,w,x,y.value.real,y.value.imag)&&(v=t.behavior.mvx+a.deltat*(-y.value.real+
-t.behavior.xo),w=t.behavior.mvy+a.deltat*(-y.value.imag+t.behavior.yo),u=p*v+n*w,v=n*v-p*w,t.behavior.x=y.value.real,t.behavior.y=y.value.imag,t.behavior.vx=p*u*(1-a.xdamp),t.behavior.vy=n*u*(1-a.xdamp),t.behavior.vx+=-n*v*(1-a.ydamp),t.behavior.vy+=p*v*(1-a.ydamp))}a.x1o=d;a.y1o=b;a.x2o=e;a.y2o=c}},Environment:{init:function(a){"undefined"===typeof a.gravity&&(a.gravity=0);"undefined"===typeof a.friction&&(a.friction=0);"undefined"===typeof a.springstrength&&(a.springstrength=1);"undefined"!==typeof a.accuracy&&
-(Mb=a.accuracy);"undefined"!==typeof a.deltat&&sa(a.deltat/.6);"undefined"===typeof a.charges&&(a.charges=!1);"undefined"===typeof a.balls&&(a.balls=!1);"undefined"===typeof a.newton&&(a.newton=!1);"undefined"===typeof a.ballInteractionBoosting&&(a.ballInteractionBoosting=1);O.env=a;a.errorbound=.001;a.lowestdeltat=1E-7;a.slowdownfactor=2},reset:function(a){},resetForces:function(a){},getBlock:!1,setToTimestep:function(a,b,c){},initRK:function(a,b){},setVelocity:function(a,b,c,d){},move:function(a){},
-proceedMotion:function(a,b,c,d){},calculateForces:function(a){var b,c,d,e,f,g,k,l,m,n;if(a.newton)for(b=0;b<ga.length-1;b++)for(c=ga[b],d=c.behavior.x,e=c.behavior.y,f=b+1;f<ga.length;f++)g=ga[f],k=g.behavior.x,l=g.behavior.y,n=Math.sqrt((d-k)*(d-k)+(e-l)*(e-l)),k=(d-k)*c.behavior.mass*g.behavior.mass/(n*n*n),l=(e-l)*c.behavior.mass*g.behavior.mass/(n*n*n),c.behavior.fx-=k,c.behavior.fy-=l,g.behavior.fx+=k,g.behavior.fy+=l;if(a.charges)for(b=0;b<ga.length-1;b++)for(c=ga[b],d=c.behavior.x,e=c.behavior.y,
-f=b+1;f<ga.length;f++)g=ga[f],k=g.behavior.x,l=g.behavior.y,n=Math.sqrt((d-k)*(d-k)+(e-l)*(e-l)),k=(d-k)*c.behavior.charge*g.behavior.charge/(n*n*n),l=(e-l)*c.behavior.charge*g.behavior.charge/(n*n*n),c.behavior.fx+=k,c.behavior.fy+=l,g.behavior.fx-=k,g.behavior.fy-=l;if(a.balls)for(b=0;b<ga.length-1;b++)if(c=ga[b],0!==c.behavior.radius)for(d=c.behavior.x,e=c.behavior.y,f=b+1;f<ga.length;f++)g=ga[f],0!==g.behavior.radius&&(k=g.behavior.x,l=g.behavior.y,m=c.behavior.radius+g.behavior.radius,n=Math.sqrt((d-
-k)*(d-k)+(e-l)*(e-l)),0===a.ballInteractionBoosting?(k=(d-k)/(n*n*n)*(n>m?0:(n-m)*(n-m)),l=(e-l)/(n*n*n)*(n>m?0:(n-m)*(n-m))):1===a.ballInteractionBoosting?(k=(d-k)/(n*n*n*n)*(n>m?0:(n-m)*(n-m)),l=(e-l)/(n*n*n*n)*(n>m?0:(n-m)*(n-m))):(k=(d-k)/(n*n*n*n*n)*(n>m?0:(n-m)*(n-m)),l=(e-l)/(n*n*n*n*n)*(n>m?0:(n-m)*(n-m))),c.behavior.fx+=k,c.behavior.fy+=l,g.behavior.fx-=k,g.behavior.fy-=l);for(b=0;b<ga.length;b++)c=ga[b],c.behavior.fx+=0,c.behavior.fy+=-a.gravity*c.behavior.mass,c.behavior.fz+=0},calculateDelta:function(a,
-b){},savePos:function(a,b){},restorePos:function(a,b){},sqDist:function(a,b,c){return 0},kineticEnergy:function(a){},storePosition:function(a){},recallPosition:function(a){},doCollisions:function(a){}}};return oa};return E}(),createCindy=CindyJS;"undefined"!==typeof process&&"undefined"!==typeof module&&"undefined"!==typeof module.exports&&"undefined"===typeof window&&(module.exports=CindyJS);
-//# sourceMappingURL=Cindy.js.map
diff --git a/texmf-dist/doc/support/ketcindy/ketmanual/CindyJS/CindyJS.css b/texmf-dist/doc/support/ketcindy/ketmanual/CindyJS/CindyJS.css
deleted file mode 100644
index 2fdefb34..00000000
--- a/texmf-dist/doc/support/ketcindy/ketmanual/CindyJS/CindyJS.css
+++ /dev/null
@@ -1,121 +0,0 @@
-.CindyJS-toolbar button, .CindyJS-animbuttons button, .CindyJS-button button, .CindyJS-button label {
- background-color: #bfc4d0;
- border: 1px solid #d0d0d0;
- box-shadow: inset 1px 1px 2px #fff, inset -1px -1px 2px #aaa;
- outline: none; }
-
-.CindyJS-toolbar button:active, .CindyJS-animbuttons button:active, .CindyJS-toolbar button.CindyJS-active, .CindyJS-animbuttons button.CindyJS-active, .CindyJS-button button:active, .CindyJS-button label:active, .CindyJS-button input[type=checkbox]:checked + label {
- background-color: #aaafbb;
- box-shadow: inset 1px 1px 2px #999, inset -1px -1px 2px #ccc; }
-
-.CindyJS-toolbar, .CindyJS-animbuttons {
- line-height: 0px; }
- .CindyJS-toolbar button, .CindyJS-animbuttons button {
- display: inline-block;
- margin: 0px;
- padding: 0px; }
- .CindyJS-toolbar button:focus, .CindyJS-animbuttons button:focus {
- border-color: #06f; }
- .CindyJS-toolbar img, .CindyJS-animbuttons img {
- margin: 0px;
- border: none;
- display: block; }
-
-.CindyJS-widget {
- overflow: hidden;
- z-index: 0; }
- .CindyJS-widget canvas {
- z-index: 1; }
- .CindyJS-widget .CindyJS-baseline {
- margin: 0px;
- padding: 0px;
- border: none;
- position: absolute;
- white-space: nowrap;
- margin-top: -1000px; }
- .CindyJS-widget .CindyJS-baseline > img {
- margin: 0px;
- padding: 0px;
- border: none;
- display: inline;
- position: static;
- vertical-align: baseline;
- visibility: hidden;
- margin-right: -1px; }
- .CindyJS-widget .CindyJS-baseline .CindyJS-button {
- display: inline-block; }
- .CindyJS-widget .CindyJS-button {
- position: relative;
- z-index: 2; }
- .CindyJS-widget .CindyJS-toolbar, .CindyJS-widget .CindyJS-animbuttons {
- position: absolute; }
- .CindyJS-widget .CindyJS-toolbar button, .CindyJS-widget .CindyJS-animbuttons button {
- position: relative;
- z-index: 3; }
- .CindyJS-widget .CindyJS-animspeed {
- position: relative;
- z-index: 3; }
- .CindyJS-widget .CindyJS-animcontrols {
- bottom: 5px;
- left: 5px; }
-
-.CindyJS-button input[type=checkbox] {
- position: absolute;
- left: -10000px; }
-
-.CindyJS-button button, .CindyJS-button label {
- margin: -6px -7px;
- padding: 5px 6px;
- border-radius: 4px; }
-
-.CindyJS-button button:focus, .CindyJS-button input[type=checkbox]:focus + label {
- box-shadow: 0px 0px 3px #06f, inset 1px 1px 2px #fff, inset -1px -1px 2px #aaa; }
-
-.CindyJS-button button:focus:active, .CindyJS-button input[type=checkbox]:focus:checked + label {
- background-color: #aaafbb;
- box-shadow: 0px 0px 3px #06f, inset 1px 1px 2px #999, inset -1px -1px 2px #ccc; }
-
-.CindyJS-editabletext {
- border: 1px solid #000;
- margin: -4px -4px -1px;
- padding: 4px 4px 1px; }
- .CindyJS-editabletext:focus {
- box-shadow: 0px 0px 3px #06f; }
-
-.CindyJS-toolbar div {
- line-height: 0px; }
-
-.CindyJS-toolbar span.CindyJS-spacer {
- display: inline-block;
- margin: 0px;
- padding: 1px;
- width: 32px;
- height: 24px; }
-
-.CindyJS-animcontrols {
- position: absolute;
- background-color: #00f;
- height: 36px;
- width: 102px; }
- .CindyJS-animcontrols .CindyJS-animspeed {
- height: 10px;
- width: 100%;
- border-radius: 4px;
- background-color: #ff7f7f;
- box-shadow: inset 1px 1px 2px #999, inset -1px -1px 2px #ccc; }
- .CindyJS-animcontrols .CindyJS-animspeed div {
- width: 50%;
- height: 100%;
- border-radius: 4px;
- background-color: #cc0000;
- box-shadow: inset 1px 1px 2px #fff, inset -1px -1px 2px #aaa; }
- .CindyJS-animcontrols .CindyJS-animbuttons {
- white-space: nowrap; }
-
-.CindyJS-animbuttons button {
- border-radius: 4px;
- width: 34px;
- height: 26px;
- box-sizing: border-box; }
-
-/*# sourceMappingURL=CindyJS.css.map */ \ No newline at end of file
diff --git a/texmf-dist/doc/support/ketcindy/ketmanual/CindyJS/ketcindylib.txt b/texmf-dist/doc/support/ketcindy/ketmanual/CindyJS/ketcindylib.txt
deleted file mode 100644
index 72469da8..00000000
--- a/texmf-dist/doc/support/ketcindy/ketmanual/CindyJS/ketcindylib.txt
+++ /dev/null
@@ -1,6419 +0,0 @@
-// 17.08.26 Slider
-// 16.11.27
-Ketinit():=Ketinit(1);
-Ketinit(sy):=Ketinit(sy,[-5,5],[-5,5]);
-Ketinit(sy,rangex,rangey):=(
- regional(pt,tmp,tmp1,tmp2);
- PenThickInit=8;
- ULEN="1cm";
- KETPICLAYER=20;
- MilliIn=1/2.54*1000;
- PenThick=round(MilliIn*0.02);
- PenThickInit=PenThick;
- TenSizeInit=0.02;
- TenSize=TenSizeInit;
- YaSize=1; YaAngle=18; YaPosition=1;
- YaThick=1; YaStyle='tf';
- KETPICCOUNT=1;
- KCOLOR=[0,0,0];
- GLIST=[];
- GCLIST=[];
-// GDATALIST=[];
- GOUTLIST=[];
- POUTLIST=[];
- VLIST=[];
- FUNLIST=[];
- LETTERlist=[];
- COM0thlist=[];
- COM1stlist=[];
- COM2ndlist=[];
- SCIWRLIST=[];
- SCIRELIST=[];
- ADDAXES="1";
- LFmark=unicode("000a");
- Dq=unicode("0022");
- WaitUnit=10;
- CONTINUED=0;
- OutComList=[];
- OutFileLIst=[]; // 15.10.22
- FigPdfList=[]; // 16.04.08
- ADDPACK=[]; // 16.05.16
- ErrFlag=0;
- setdirectory(Dirwork);
- if(isstring(Fhead), // 15.04.06
- Fnametex=Fhead+".tex";
- Fnamesci=Fhead+".sce";
- Fnamescibody=Fhead+"body.sce";
- Fnameout=Fhead+".txt";
- );
- if(!isstring(Mackc),// 16.06.07
- Mackc="sh";
- );
- ArrowlineNumber=1; // 15.01.05
- ArrowheadNumber=1;
- BezierNumber=1; //15.01.03
- SCALEX=1;
- SCALEY=sy;
-// Setscaling(sy);
- XMIN=rangex_1/SCALEX;
- XMAX=rangex_2/SCALEX;
- YMIN=rangey_1/SCALEY;
- YMAX=rangey_2/SCALEY;
- Setwindow("Msg=n"); // 16.05.31
-);
-
-DqDq(str):=unicode("0022")+str+unicode("0022");
-
-Tab2list(dtstr):=Tab2list(dtstr,[]);
-Tab2list(dtstr,options):=(
-//help:Tab2list(datastr);
-//help:Tab2list(options=[0]);
- regional(dtall,dt,rep,out,crm,lfm,htm,first,tmp,tmp1,tmp2);
- crm=unicode("000d");
- lfm=unicode("000a");
- htm=unicode("0009");
- rep=0;
- if(length(options)>0,rep=options_1);
- first=lfm; // 16.09.05from
- if(indexof(dtstr,crm)>0,
- first=crm;
- if(indexof(dtstr,crm+lfm)>0,
- first=first+lfm;
- ); // 16.09.05upto
- );
- tmp1=Indexall(dtstr,first);
- tmp1=prepend(0,tmp1);
- tmp1=append(tmp1,length(dtstr));
- dtall=[];
- forall(1..(length(tmp1)-1),
- tmp=substring(dtstr,tmp1_#,tmp1_(#+1)-1);
- if(length(tmp)>0,
- dtall=append(dtall,tmp);
- );
- );
- out=[];
- forall(dtall,dt,
- tmp1=tokenize(dt,unicode("0009"));
- tmp2=[];
- forall(tmp1,
- if(isstring(#),tmp=parse(#),tmp=#);
- if(!isreal(tmp),
- if(length(#)>0,tmp=#,tmp=rep);
- );
- tmp2=append(tmp2,tmp);
- );
- out=append(out,tmp2);
- );
- out;
-);
-
-Columnlist(dt,list):=( // 16.09.04
-//help:Columnlist(dt,1..3);
- apply(dt,#_list);
-);
-
-Dispmat(dt):=( // 16.09.16
-//help:Dispmat(dt);
- regional(htm,crm,lfm,row,tmp,tmp1,tmp2);
- htm=unicode("0009");
- crm=unicode("000d");
- lfm=unicode("000a");
- tmp2="";
- forall(dt,row,
- tmp1="";
- forall(row,
- if(isstring(#),
- tmp1=tmp1+#+htm;
- ,
- tmp1=tmp1+text(#)+htm;
- );
- );
- tmp1=substring(tmp1,0,length(tmp1)-1);
- tmp1=tmp1+lfm;
- tmp2=tmp2+tmp1;
- );
- print(tmp2);
- println();
-);
-
-norm(v1):=( // 16.09.01
-//help:norm([2,1,3]);
- regional(out,tmp,tmp1,tmp2);
- out=0;
- forall(1..length(v1),
- out=out+(v1_#)^2;
- );
- out=sqrt(out);
- out;
-);
-norm(v1,v2):=(
- norm(v2-v1);
-);
-
-// 16.03.28
-Removespace(str):=(
-//help:Removespace(" a b c ");
- regional(tmp,flg,out);
- tmp=length(str)+1;
- flg=0;
- forall(1..length(str),
- if(flg==0,
- if((str_#)!=" ",
- tmp=#;
- flg=1;
- );
- );
- );
- out=substring(str,tmp-1,length(str));
- flg=0;
- tmp=0;
- forall(reverse(1..length(out)),
- if(flg==0,
- if((out_#)!=" ",
- tmp=#;
- flg=1;
- );
- );
- );
- out=substring(out,0,tmp);
-);
-
-Indexall(str,key):=(
- regional(rest,out,flg,tmp,tmp1,);
- out=[];
- rest=str;
- flg=0;
- forall(1..length(str),
- if(flg==0,
- tmp=indexof(rest,key);
- if(tmp>0,
- tmp1=tmp+length(str)-length(rest);
- out=append(out,tmp1);
- rest=substring(rest,tmp,length(rest));
- ,
- flg=1;
- );
- );
- );
- out;
-);
-
-Changestyle(nameL,style):=(
-//help:Changestyle(["sgAB"],["da"]);
- regional(nmL,name,Ltype,Ltypeorg,Noflg,opcindy,tmp);
- tmp=Divoptions(style);
- Ltypeorg=tmp_1;
- Noflg=tmp_2;
- opcindy=tmp_(length(tmp));
- if(islist(nameL),nmL=nameL,nmL=[nameL]);
- forall(nmL,name,
- Ltype=Ltypeorg;
- GCLIST=select(GCLIST,#_1!=name);
- COM2ndlist=select(COM2ndlist,indexof(#,"("+name)==0); // 15.05.23
- if(Noflg<2,
- if(isstring(Ltype),
- Ltype=GetLinestyle(text(Noflg)+Ltype,name);
- ,
- if(Noflg==1,Ltype=0);
- );
- GCLIST=append(GCLIST,[name,Ltype,opcindy]);
- );
- );
-);
-
-Op(n,object):=( // 16.05.25
-//help:Op(4,[1,2,3,4]);
-//help:Op(3,"abcd");
- regional(out);
- if(islist(object),
- out=object_n;
- ,
- if(isstring(object),
- out=substring(object,n-1,n);
- );
- );
- out;
-);
-
-Toupper(str):=(
- regional(alphabet,out,tmp,tmp1);
- alphabet="abcdefghijklmnopqrstuvwxyz";
- out="";
- forall(1..length(str),
- tmp=substring(str,#-1,#);
- tmp1=indexof(alphabet,tmp);
- if(tmp1>0,
- out=out+unicode(text(tmp1+64),base->10);
- ,
- out=out+tmp;
- );
- );
- out;
-);
-
-Textformat(value,dig):=(
-//help:Textformat(2/3,4);
-//help:Textformat([gr1,gr2],5);
- regional(vv,tmp,tmp1);
- if(islist(value),
- tmp1="[";
- forall(value,
- tmp1=tmp1+Textformat(#,dig)+",";
- );
- tmp1=substring(tmp1,0,length(tmp1)-1)+"]";
- ,
- if(ispoint(value) % isstring(value),
-// vv=Lcrd(value);
-// tmp1=Textformat(vv,dig);
-// tmp1=text(value); // 15.04.07
- if(isstring(value),tmp1=Dq+value+Dq,tmp1=text(value)); // 15.10.02
- ,
- tmp1=format(value,dig);
- );
- );
- tmp1;
-);
-
-Sprintf(value,dig):=(
-//help:Sprintf(5.1,4);
- regional(vv,tmp,tmp1);
- if(!islist(value),
- vv=Textformat(value,dig);
- if(indexof(vv,".")==0,vv=vv+".");
- vv=vv+"0000000000000000";
- tmp=indexof(vv,".")+dig;
- vv=substring(vv,0,tmp);
- ,
- vv=apply(value,Sprintf(#,dig));
- );
- vv;
-);
-
-Assign(funstr,vrL):=(
- regional(nn,out,tmp,tmp1);
- nn=length(vrL)/2;
- out=funstr;
- forall(1..nn,
- out=Assign(out,vrL_(2*#-1),vrL_(2*#));
- );
- out;
-);
-
-Assign(funstr,varname,rep):=(
-//help:Assign("x^2+a*x","a",1.3);
-//help:Assign("a*x^2+b*x",["a",1,"b",2]);
- regional(repstr,ii,jj,tmp,tmp1,tmp2,Notvar,Flg);
- if(isstring(rep),repstr=rep,repstr="("+Textformat(rep,5)+")"); // 15.02.09, 07.06
- tmp=[46]; // 12.20
- tmp=concat(tmp,48..57);
- tmp=concat(tmp,65..90);
- tmp=concat(tmp,97..122);
- Notvar=apply(tmp,unicode(text(#),base->10));
- tmp2="";
- forall(1..100,
- ii=indexof(funstr,varname);
- if(ii>0,
- Flg=0;
- if(ii>1,
- tmp=substring(funstr,ii-2,ii-1);
- if(contains(Notvar,tmp),
- tmp2=tmp2+substring(funstr,0,ii);
- funstr=substring(funstr,ii,length(funstr));
- Flg=1;
- );
- );
- if(Flg==0,
- jj=ii-1+length(varname);
- if(jj<length(funstr),
- tmp=substring(funstr,jj,jj+1));
- if(contains(Notvar,tmp),
- tmp2=tmp2+substring(funstr,0,jj);
- funstr=substring(funstr,jj,length(funstr));
- Flg=1;
- );
- );
- if(Flg==0,
- tmp2=tmp2+substring(funstr,0,ii-1)+repstr;
- funstr=substring(funstr,jj,length(funstr));
- );
- );
- );
- funstr=tmp2+funstr;
- funstr;
-);
-
-MeasureDepth(list):=(
- regional(tmp,Depth,Flg);
- Flg=0;
- Depth=0;
- if(ispoint(list), // 15.01.22
- Depth=0;
- Flg=1;
- ,
- tmp=list_1;
- );
- repeat(4,
- if(Flg==0,
- if(islist(tmp),
- tmp=tmp_1;
- Depth=Depth+1;
- ,
- if(ispoint(tmp),Depth=Depth+1);
- Flg=1;
- );
- );
- );
- Depth;
-);
-
-Flattenlist(pltlist):=(
-//help:Flattenlist([[2,3],[[1,2],[5,6]]]);
- regional(Out,nn,Dt,ii,tmp,flg);
- Out=[];
- if(MeasureDepth(pltlist)==1,
- Out=[pltlist];
- ,
- forall(1..length(pltlist),nn,
- Dt=pltlist_nn;
- if(MeasureDepth(Dt)<2,
- Out=append(Out,Dt);
- ,
- forall(1..length(Dt),ii,
- tmp=Flattenlist(Dt_ii);
- Out=concat(Out,tmp);
- );
- );
- );
- );
- Out;
-);
-
-Divoptions(options):=(
-//help:Divoptions(options);
- regional(Ltype,Noflg,Inflg,Outflg,eqL,realL,strL,opstr,opcindy,flg,tmp,tmp1);
- Ltype="dr"; // 2015.01.13
- Noflg=0;
- Inflg=0;
- Outflg=0;
- eqL=[];
- realL=[];
- strL=[];
- opstr="";
- opcindy="";
- forall(options,
- flg=0;
- if(flg==0,
- if(isreal(#) % ispoint(#) % islist(#),
- realL=append(realL,#);
- opstr=opstr+","+text(#);
- flg=1;
- );
- );
- if(flg==0,
- if(indexof(#,"=")>0,
- eqL=append(eqL,#);
- flg=1;
- );
- );
- if(flg==0,
- if(indexof(#,"no")+indexof(#,"No")>0,
- if(indexof(#,"tex")>0,Noflg=1);
- if(indexof(#,"disp")>0,Noflg=2);
- if(indexof(#,"data")>0,Noflg=3);
- flg=1;
- );
- );
- if(flg==0,
- if(indexof(#,"->")>0,
- opcindy=opcindy+","+#;
- flg=1;
- );
- );
- if(flg==0,
- if(indexof(#,"out")+indexof(#,"Out")>0,
- if(indexof(#,"-")==0,
- Outflg=1;
- ,
- Outflg=2;
- );
- flg=1;
- );
- );
- if(flg==0,
- if(indexof(#,"in")+indexof(#,"In")>0,
- if(indexof(#,"-")==0,
- Inflg=1;
- ,
- Inflg=2;
- );
- flg=1;
- );
- );
- if(flg==0,
- tmp=substring(#,0,2);
- tmp1=indexof(tmp,"dr")+indexof(tmp,"Dr");
- tmp1=tmp1+indexof(tmp,"da")+indexof(tmp,"Da");
- tmp1=tmp1+indexof(tmp,"id")+indexof(tmp,"Id");
- tmp1=tmp1+indexof(tmp,"do")+indexof(tmp,"Do");
- tmp1=tmp1+indexof(tmp,"dp")+indexof(tmp,"Dp");
- if(tmp1>0,
- Ltype=#;
- flg=1;
- );
- if(flg==0,
- strL=append(strL,#);
- opstr=opstr+","+Dq+#+Dq;
- );
- );
- );
- if(indexof(opcindy,"color->")==0,// 16.10.07from
- opcindy=opcindy+",color->[0,0,0]";
- );
- [Ltype,Noflg,Inflg,Outflg,eqL,realL,strL,opstr,opcindy];
-);
-
-Dotprod(vec1,vec2):=(
-//help:Dotprod(vec1,vec2);
- regional(v1,v2,tmp);
- if(ispoint(vec1),v1=vec1.xy,v1=vec1);
- if(ispoint(vec2),v2=vec2.xy,v2=vec2);
- v1*v2;
-);
-
-Crossprod(a,b):=(
-//help:Crossprod(vec1,vec2);
- regional(tmp1,tmp2,tmp3,Out);
- if(length(a)==3,
- tmp1=a_2*b_3-a_3*b_2;
- tmp2=a_3*b_1-a_1*b_3;
- tmp3=a_1*b_2-a_2*b_1;
- Out=[tmp1,tmp2,tmp3];
- ,
- Out=a_1*b_2-a_2*b_1;
- );
- Out;
-);
-
-Ptstart(Fig):=(
-//help:Ptstart("gr1");
- regional(tmp);
- if(isstring(Fig),tmp=parse(Fig),tmp=Fig); // 16.01.21
- tmp_1;
-);
-
-Ptend(Fig):=(
-//help:Ptend("gr1");
- regional(tmp);
- if(isstring(Fig),tmp=parse(Fig),tmp=Fig);
- tmp_(length(tmp)); // 15.04.12
-);
-
-Numptcrv(Fig):=(
-//help:Numptcrv("gr1");
- regional(tmp);
- if(isstring(Fig),tmp=parse(Fig),tmp=Fig); // 15.12.23
- length(tmp);
-);
-
-Ptcrv(Num,Fig):=(
-//help:Ptcrv(10,"gr1");
- regional(tmp);
- if(isstring(Fig),tmp=parse(Fig),tmp=Fig);
- tmp_Num;
-);
-
-Invert(Fig):=(
-//help:Invert("gr1");
- regional(tmp);
- if(isstring(Fig),tmp=parse(Fig),tmp=Fig); // 16.01.27
- reverse(tmp);
-);
-Invert(nm,Fig):=Invert(nm,Fig,["nodisp"]); // from 16.01.27
-Invert(nm,Fig,options):=(
-//help:Invert("1","gr1");
- regional(name,tmp);
- name="-inv"+nm;
- tmp=Invert(Fig);
- Listplot(name,tmp,options);
-);// upto 16.01.27
-
-Paramoncrv(pP,Gdata):=(
- regional(Tmp,PtL);
-// Eps=10^(-8);
- if(isstring(Gdata),PtL=parse(Gdata),PtL=Gdata);
- Tmp=Nearestpt(pP,PtL);
- Tmp_2;
-);
-
-ParamonCurve(pP,nN,plist):=(
-//help:ParamonCurve(A,10,"gr1");
- regional(PtL,Out,Pa,Pb,vV,vW,sS);
- if(isstring(plist),PtL=parse(plist),PtL=plist);
- PtL=apply(PtL,LLcrd(#));//16.10.16
- if(nN==length(PtL),
- Out=nN;
- ,
- Pa=PtL_nN;
- Pb=PtL_(nN+1);
- vV=Pb-Pa;
- vW=pP-Pa;
- sS=vV*vW/|vV|^2;
- sS=min([max([sS,0]),1]);
- Out=nN+sS;
- );
- Out;
-);
-
-Pointoncrv(tT,PtL):=PointonCurve(tT,PtL);
-PointonCurve(tT,Gdata):=(
-//help:PointonCurve(20.5,"gr1");
- regional(Out,Eps,nN,sS,Pa,Pb,PtL);
- if(isstring(Gdata),PtL=parse(Gdata),PtL=Gdata);
- if(length(PtL)==1,PtL=PtL_1);
- Eps=10^(-4);
- nN=floor(tT+Eps);
- sS=max([tT-nN,0]);
- if(nN==length(PtL),
- Out=PtL_nN;
- ,
- Pa=PtL_nN;
- Pb=PtL_(nN+1);
- Out=(1-sS)*Pa+sS*Pb;
- );
- Out;
-);
-
-Koutenseg(pA,pB,pC,pD):=Koutenseg(pA,pB,pC,pD,[]);
-Koutenseg(pA,pB,pC,pD,options):=(
- regional(Eps0,Eps,Eps2,pV,Sv2,Out,pP,pQ,Flg,p1,p2,q1,q2,
- em1,eM1,em2,eM2,rT,Tmp1,Tmp2);
- Eps0=10^(-4);
- pV=pB-pA;
- Sv2=|pV|;
- pP=pC-pA; pQ=pD-pA;
- Eps=10^(-3);
- Eps2=0.2;
- Tmp1=0;
- forall(options,
- if(Tmp1==0,
- Eps=#;
- Tmp1=1;
- ,
- Eps2=#;
- );
- );
- Flg=0;
- if(Sv2<10^(-3),
- Out=["inf","inf"];
- Flg=1;
- );
- if(Flg==0,
- Eps=min([Eps2,Eps/Sv2]);
- p1=pP*pV/Sv2^2;
- p2=[pP_2,-pP_1]*pV/Sv2^2;
- q1=pQ*pV/Sv2^2;
- q2=[pQ_2,-pQ_1]*pV/Sv2^2;
- em1=-Eps; eM1=1+Eps;
- em2=-Eps; eM2=Eps;
- if(max([p1,q1])<em1 % min([p1,q1])>eM1,
- Out=["inf","inf"];
- Flg=1;
- );
- if(max([p2,q2])<em2 % min([p2,q2])>eM2,
- Out=["inf","inf"];
- Flg=1;
- );
- );
- if(Flg==0 & p2*q2<0,
- rT=p1-(q1-p1)/(q2-p2)*p2;
- if(rT>em1 & rT<eM1,
- if(rT>-Eps0 & rT<1+Eps0,
- Tmp1=pA+rT*pV;
- Tmp2=min([max([rT,0]),1]);
- Out=[Tmp1,Tmp2,0];
- ,
- Tmp1=pA+rT*pV;
- Tmp2=min([max([rT,0]),1]);
- Out=[Tmp1,Tmp2,1];
- );
- Flg=1;
- );
- if(Flg==0 & (p1<em1 % p1>eM1 % p2<em2 % p2>eM2),
- if(q1<em1 % q1>eM1 % q2<em2 % q2>eM2,
- Out=["inf","inf"];
- Flg=1;
- );
- if(Flg==0,
- rT=min([max([p1,0]),1]);
- Tmp1=pA+rT*pV;
- Out=[Tmp1,rT,1];
- Flg=1;
- );
- );
- );
- if(Flg==0 & (p1 > -Eps0 & p1 < 1 + Eps0 & p2 > -Eps0 & p2 < Eps0),
- rT= p1;
- Tmp1=pA+rT*pV;
- Out= [Tmp1, rT, 0];
- Flg=1;
- );
- if(Flg==0 & (q1 > -Eps0 & q1 < 1 + Eps0 & q2 > -Eps0 & q2 < Eps0),
- rT= q1;
- Tmp1=pA+rT*pV;
- Out=[Tmp1,rT,0];
- Flg=1;
- );
- if(Flg==0 & (p1<em1 % p1>eM1 % p2<em2 % p2>eM2),
- if(q1<em1 % q1>eM1 % q2<em2 % q2>eM2,
- Out=["inf","inf"];
- Flg=1;
- );
- if(Flg==0,
- rT=min([max([q1,0]),1]);
- Tmp1=pA+rT*pV;
- Out=[Tmp1,rT,1];
- Flg=1;
- );
- );
- if(Flg==0 & (q1<em1 % q1>eM1% q2<em2 % q2>eM2),
- rT=min([max([p1,0]),1]);
- Tmp1=pA+rT*pV;
- Out=[Tmp1,rT,1];
- Flg=1;
- );
- if(Flg==0,
- if(abs(p2)<abs(q2),
- rT=min([max([p1,0]),1]);
- ,
- rT=min([max([q1,0]),1]);
- );
- Tmp1=pA+rT*pV;
- Out=[Tmp1,rT,1];
- );
- Out;
-);
-
-IntersectcrvsPp(Gr1,Gr2):=IntersectcrvsPp(Gr1,Gr2,[]);
-IntersectcrvsPp(Gr1,Gr2,options):=(
-//help:IntersectcrvsPp("gr1","pa1");
- regional(Out,Eps,Eps2,Eps0,Flg,Data1,Data2,
- Tmp1,Tmp2,Tmp3,Tmp,KL1,KL2,pA,pB,Ni,Nj,
- pP,pQ,rT,Flg,eqL,realL,opstr,Dif);
- Eps=10^(-4);
- Eps2=0.1;
- Dif=0.05; // 2015.05.31
- Flg=0;
- Tmp1=Divoptions(options); //
- eqL=Tmp1_5;
- realL=Tmp1_6;
- opstr=Tmp1_(length(Tmp1));
- forall(eqL,
- if(substring(#,0,1)=="D",
- Tmp1=indexof(#,"=");
- Dif=parse(substring(#,Tmp1,length(#)));
- );
- );
- Tmp1=length(realL);
- if(Tmp1>0,
- Eps=realL_1;
- if(Tmp1>1,
- Eps2=realL_2;
- );
- );
- Flg=0;
- if(isstring(Gr1),Data1=parse(Gr1),Data1=Gr1);
- if(isstring(Gr2),Data2=parse(Gr2),Data2=Gr2);
- if(MeasureDepth(Data1)==2,Data1=Data1_1);
- if(MeasureDepth(Data2)==2,Data2=Data2_1);
- Data1=apply(Data1,LLcrd(#));
- Data2=apply(Data2,LLcrd(#));
- if(length(Data1)==length(Data2),
- Tmp1=Reverse(Data2);
- Eps0=10^(-6);
- Tmp2=0;
- forall(1..length(Data1),
- Tmp2=Tmp2+abs(Data1_#-Data2_#);
- );
- Tmp3=0;
- forall(1..length(Data1),
- Tmp3=Tmp3+abs(Data1_#-Tmp1_#);
- );
- if(Tmp2<Eps0 % Tmp3<Eps0,
- Out=[];
- Flg=1;
- );
- );
- if(Flg==0,
- KL1=[];
- KL2=[];
- forall(1..(length(Data1)-1),Ni,
- pA=Data1_Ni;
- pB=Data1_(Ni+1);
- forall(1..(length(Data2)-1),
- pP=Data2_#; pQ=Data2_(#+1);
- Tmp=Koutenseg(pA,pB,pP,pQ,[Eps,Eps2]);
- if(Tmp!=["inf","inf"],
- if(Tmp_3==0,
- Tmp1=[Tmp_1,Tmp_2,Ni,#];
- KL1=concat(KL1,[Tmp1]);
- ,
- Tmp2=[Tmp_1,Tmp_2,Ni,#];
- KL2=concat(KL2,[Tmp2]);
- );
- );
- );
- );
- Out=[];
- if(length(KL1)>0,
- Tmp=KL1_1;
- pP=Tmp_1;
- rT=Tmp_2;
- Ni=Tmp_3;
- Nj=Tmp_4;
- Tmp=[pP,Ni+rT,Nj];
- Out=[Tmp];
- );
- forall(2..length(KL1),Ni,
- Tmp=KL1_Ni;
- pP=Tmp_1;
- Tmp2=0;
- Flg=0;
- forall(1..length(Out),Nj,
- if(Flg==0,
- Tmp=Out_Nj;
- if(|pP-Tmp_1|<Eps,
- Tmp2=1;
- Flg=1;
- );
- );
- );
- if(Tmp2==0,
- Tmp=KL1_Ni;
- pP=Tmp_1;
- rT=Tmp_2;
- Tmp1=Tmp_3;
- Tmp2=Tmp_4;
- Tmp=[pP,Tmp1+rT,Tmp2];
- Out=concat(Out,[Tmp]);
- );
- );
- forall(1..length(KL2),Ni,
- Tmp=KL2_Ni; // 15.11.21 Usui
- pP=Tmp_1;
- Tmp2=0;
- Flg=0;
- forall(1..length(Out),Nj,
- if(Flg==0,
- Tmp=Out_Nj;
- if(|pP-Tmp_1|<Eps,
- Tmp2=1;
- Flg=1;
- );
- );
- );
- if(Tmp2==0,
- Tmp=KL2_Ni;
- rT=Tmp_2;
- rT=min([max([rT,0]),1]); // 15.11.21 Usui
- Tmp=[pP,Tmp_3+rT,Tmp_4];
- Out=concat(Out,[Tmp]);
- );
- );
- );
- Tmp1=Out; // 15.04.06 from
- Out=[];
- forall(Tmp1,Tmp2,
- Tmp3=select(1..(length(Out)),|Out_#_1-Tmp2_1|<Dif);//16.11.27
- if(length(Tmp3)==0,
- Out=append(Out,Tmp2);
- ,
- forall(Tmp3,//16.11.27
- Out_#=(Out_#+Tmp2)/2;
- );
- );
- ); // 15.04.06 upto
- Out;
-);
-
-Intersectcrvs(Gr1,Gr2):=Intersectcrvs(Gr1,Gr2,[]);
-//help:Intersectcrvs("gr1","pa1");
-Intersectcrvs(Gr1,Gr2,options):=(
- regional(tmp,tmp1,tmp2);
- tmp1=IntersectcrvsPp(Gr1,Gr2,options);
- apply(tmp1,#_1);
-);
-
-NearestptcrvPhy(point,PL):=(
- regional(tmp,pP,plist);
- pP=Pcrd(point);
- if(isstring(PL),plist=parse(PL),plist=PL);
- if(MeasureDepth(plist)==2,plist=plist_1);
- plist=apply(plist,#); // 14.12.18
- tmp=Nearestpt(pP,plist);
- tmp=tmp_1;
- [tmp_1/SCALEX,tmp_2/SCALEY];
-);
-
-Nearestptcrv(point,plist):=(
-//help:Nearestptcrv(A,"gr1");
- regional(tmp);
- tmp=Nearestpt(point,plist);
- tmp_1;
-);
-
-Nearestpt(point,PL2):=(
- regional(PL1,PL,Ans,Flg,Eps,pA,Pm,Im,Sm,Nn,Ni,
- a1,b1,a2,b2,v1,v2,x1,x2,Tmp,rT,pP,sS,Lm,Pm,Sm,Flg);
-//help:Nearestpt("gr1","gr2");
- if(isstring(point),PL1=parse(point),PL1=point);
- if(MeasureDepth(PL1)==2,PL1=PL1_1);
- if(!islist(PL1_1),
- PL1=[PL1];
- Flg=0;
- ,
- Flg=1;
- );
- if(isstring(PL2),PL=parse(PL2),PL=PL2);
- if(MeasureDepth(PL)==2,PL=PL_1);
- Eps=10^(-6);
- Ans=[PL1_1,1,PL_1,1,|PL1_1-PL_1|];
- forall(1..length(PL1),Nn, // 16.05.04
- pA=PL1_Nn;
- Pm=PL_1;
- Im=1;
- Sm=|Pm-pA|;
- forall(1..(length(PL)-1),Ni,
- a1=PL_Ni_1; a2=PL_Ni_2;
- b1=PL_(Ni+1)_1; b2=PL_(Ni+1)_2;
- v1=b1-a1; v2=b2-a2;
- x1=pA_1; x2=pA_2;
- Tmp=v2^2+v1^2;
- if(abs(Tmp)>Eps,
- rT=(-a2*v2-v1*a1+v1*x1+x2*v2)/Tmp;
- if(rT<-Eps,
- pP=[a1,a2];
- ,
- if(rT>1+Eps,
- pP=[b1,b2];
- ,
- pP=[a1+rT*v1,a2+rT*v2];
- );
- );
- sS=|pP-pA|;
- if(sS<Sm-Eps,
- Tmp=ParamonCurve(pP,Ni,PL);
- Pm=pP; Lm=Tmp; Sm=sS;
- );
- );
- if(Sm<Ans_5, // 16.05.03from
- Ans=[pA,Nn,Pm,Lm,Sm];
- );
- ); // 16.05.03upto
- );
- if(Flg==0,
- Ans=Ans_(3..5);
- );
- Ans;
-);
-
-Derivative(fun,var,value):=(
-//help:Derivative("x^3","x",2);
- regional(str,tmp);
- str="d(";
- str=str+replace(fun,var,"#")+",";
- str=str+value+")";
- tmp=Pcrd([1,parse(str)]); // 14.11.08
- tmp_2;
-);
-
-Integrate(pltdata,range):=Integrate(pltdata,range,[]);
-Intergrate(Arg1,Arg2,Arg3):=(
- regional(pltdata,range,options,fnstr,vartr);
- if(islist(Arg2),
- pltdata=Arg1;
- range=Arg2;
- options=Arg3;
- Integrate(pltdata,range,options);
- ,
- fnstr=Arg1;
- vastr=Arg2;
- range=Arg3;
- Integrate(fnstr,vastr,range,[]);
- );
-);
-
-Integrate(pltdata,range,options):=(
-//help:Integrate("gr1",[1,3]);
-//help:Integrate("gr1",[1,3],["Rule=t"]);
- regional(tmp,tmp1,eqL,Rule,pdata,Sm,ptP,ptQ,list,va1,va2);
- tmp=Divoptions(options);
- eqL=tmp_5;
- Rule="o";
- forall(eqL,
- if(Toupper(substring(#,0,1))=="R",
- tmp=indexof(#,"=");
- Rule=substring(#,tmp,tmp+1);
- );
- );
- if(Rule=="o",
- Sm= IntegrateO(pltdata,range);
- ,
- if(isstring(pltdata),pdata=parse(pltdata),pdata=pltdata);
- if(MeasureDepth(pdata)==2,pdata=pdata_1);
- va1=MeetCurve(pdata,range_1,0);
- va2=MeetCurve(pdata,range_2,0);
- list=select(pdata,(#_1>range_1 & #_1<range_2));
- list=apply(list,LLcrd(#)); // 15.09.14
- list=concat([va1],list);
- list=concat(list,[va2]);
- Sm=0;
- forall(1..(length(list)-1),
- ptP=list_#; // 15.09.14
- ptQ=list_(#+1);
- Sm=Sm+(ptP_2+ptQ_2)*(ptQ_1-ptP_1)/2;
- );
- Sm;
- );
-);
-
-Integrate(fnstr,vastr,range,options):=(
-//help:Integrate("sin(x)","x",[0,pi],["Num=100","Rule=s"]);
- regional(tmp,tmp1,Sm,Lx,Rx,va1,va2,Num,Waysx,ex,dx,xn,yn,x0,x1,x2,y0,y1,y2);
- Num=100;
- Way="t";
- forall(options,
- if(indexof(#,"=")>0,
- if(indexof(#,"N=")>0,
- Num=parse(substring(#,indexof(#,"="),length(#)));
- );
- if(indexof(#,"Num=")>0,
- Num=parse(substring(#,indexof(#,"="),length(#)));
- );
- if(Toupper(substring(#,0,1))=="R",
- tmp=indexof(#,"=");
- Way=substring(#,tmp,tmp+1);
- );
- );
- );
- Sm=0;
- if(Way=="t",
- forall(1..Num,
- Lx=range_1+(range_2-range_1)*(#-1)/Num;
- Rx=range_1+(range_2-range_1)*#/Num;
- va1=parse(replace(fnstr,vastr,textformat(Lx,5)));
- va2=parse(replace(fnstr,vastr,textformat(Rx,5)));
- Sm=Sm+(va1+va2)*(Rx-Lx)/2;
- );
- ,
- sx=range_1;
- ex=range_2;
- dx=(ex-sx)/Num;
- xn=apply(0..Num,sx+#*dx);
- yn=apply(xn,parse(replace(fnstr,vastr,textformat(#,5))));
- dx=dx/2;
- repeat(Num,s,
- x0=xn_s;
- x1=(xn_s+xn_(s+1))/2;
- x2=xn_(s+1);
- y0=yn_s;
- y1=parse(replace(fnstr,vastr,textformat(x1,5)));
- y2=yn_(s+1);
- Sm=Sm+dx*(y0+4*y1+y2)/3;
- );
- );
- Sm;
-);
-
-IntegrateO(p0org,p1org,p2org,p3org):=(
- regional(p0,p1,p2,p3,pQ,pR,cc,p01,p02,
- p11,p12,p21,p22,p31,p32, tmp);
- if(ispoint(p0org),p0=p0org.xy,p0=p0org); // 16.03.10
- if(ispoint(p1org),p1=p1org.xy,p1=p1org); // 16.03.16
- if(ispoint(p2org),p2=p2org.xy,p2=p2org);
- if(ispoint(p3org),p3=p3org.xy,p3=p3org);
- tmp=1+sqrt((1+Dotprod(p2-p0,p3-p1)/|p2-p0|/|p3-p1|)/2);
- cc=4*|p2-p1|/3/(|p2-p0|+|p3-p1|)/tmp;
- pQ=p1+cc*(p2-p0);
- pR=p2+cc*(p1-p3);
- p01=p1_1; p02=p1_2;
- p31=p2_1; p32=p2_2;
- p11=pQ_1; p12=pQ_2;
- p21=pR_1; p22=pR_2;
- tmp=-6*p12*p01+3*p12*p21+3*p12*p31+6*p02*p11-
- 10*p02*p01+3*p02*p21+p02*p31-3*p22*p11-
- 3*p22*p01+6*p22*p31-3*p32*p11-p32*p01-
- 6*p32*p21+10*p32*p31;
- tmp=tmp/20;
-);
-IntegrateO(pltdata,rangeorg):=(
-//help:IntegrateO("gr1",[0,2]);
- regional(tmp,tmp1,tmp2,pdata,va1,va2,list,Bzk,Bzc,range,pmflg,
- Sm,p0,p1,p2,p3,pQ,pR,cc,p01,p02,p11,p12,p21,p22,p31,p32);
- if(isstring(pltdata),pdata=parse(pltdata),pdata=pltdata);
- if(MeasureDepth(pdata)==2,pdata=pdata_1);
- range=rangeorg;
- pmflg=1;
- if(range_2<range_1,
- range=reverse(range);
- pmflg=-1;
- );
- va1=MeetCurve(pdata,range_1,0);
- va2=MeetCurve(pdata,range_2,0);
- list=select(pdata,(#_1>range_1 & #_1<range_2));
- if((length(list)>0) & (list_1_1>list_(length(list))_1),
- list=reverse(list);
-// pmflg=pmflg*(-1);
- );
- list=apply(list,LLcrd(#));
- list=concat([va1],list);
- list=concat(list,[va2]);
- Sm=0;
- forall(1..(length(list)-1),
- p1=list_#;
- p2=list_(#+1);
- if(#==1 % #==length(list)-1,
- tmp1=(p1_2+p2_2)*(p2_1-p1_1)/2;
- Sm=Sm+tmp1;
- ,
- p0=list_(#-1);
- p3=list_(#+2);
- tmp=1+sqrt((1+Dotprod(p2-p0,p3-p1)/|p2-p0|/|p3-p1|)/2);
- cc=4*|p2-p1|/3/(|p2-p0|+|p3-p1|)/tmp;
- pQ=p1+cc*(p2-p0);
- pR=p2+cc*(p1-p3);
- p01=p1_1; p02=p1_2;
- p31=p2_1; p32=p2_2;
- p11=pQ_1; p12=pQ_2;
- p21=pR_1; p22=pR_2;
- tmp1=-6*p12*p01+3*p12*p21+3*p12*p31+6*p02*p11-
- 10*p02*p01+3*p02*p21+p02*p31-3*p22*p11-
- 3*p22*p01+6*p22*p31-3*p32*p11-p32*p01-
- 6*p32*p21+10*p32*p31;
- tmp1=tmp1/20;
- Sm=Sm+tmp1;
- );
- );
- if(pmflg==-1,
- Sm=-Sm;
- );
- Sm;
-);
-
-Findarea(pdstr):=(
-//help:Findarea("sgABCA");
- regional(pd,p1,p2,s,tmp);
- if(isstring(pdstr),pd=parse(pdstr),pd=pdstr);
- s=0;
- forall(1..(length(pd)-1),
- p1=Lcrd(pd_#);
- p2=Lcrd(pd_(#+1));
- tmp=(p1_2+p2_2)*(p2_1-p1_1)/2;
- s=s+tmp;
- );
- if(s<0,s=-s);
- s;
-);
-
-Findarea(pdstr):=( // 15.11.27
-//help:Findarea("cr1");
- regional(pd,p0,p1,p2,p3,s,tmp);
- if(isstring(pdstr),pd=parse(pdstr),pd=pdstr);
- s=0;
- forall(1..(length(pd)-1),
- p1=pd_#;
- p2=pd_(#+1);
- if(#==1,p0=pd_(length(pd)-1),p0=pd_(#-1));
- if(#==length(pd)-1,p3=pd_2,p3=pd_(#+2));
- tmp=IntegrateO(p0,p1,p2,p3);
- s=s+tmp;
- );
- if(s<0,s=-s);
- s;
-);
-
-Findlength(pdstr):=(
-//help:Findlength("gr1");
- regional(pd,p1,p2,s,tmp);
- if(isstring(pdstr),pd=parse(pdstr),pd=pdstr);
- s=0;
- forall(1..(length(pd)-1),
- p1=Lcrd(pd_#);
- p2=Lcrd(pd_(#+1));
- tmp=|p2-p1|;
- s=s+tmp;
- );
- s;
-);
-
-Inversefun(fnstr,rngstr,value):=(
- regional(tmp,varstr,range,x1,x2,x3,va1,va2);
- tmp=indexof(rngstr,"=");
- varstr=substring(rngstr,0,tmp-1);
- range=parse(substring(rngstr,tmp,length(rngstr)));
- x1=range_1; x2=range_2;
- repeat(15,
- x3=(x1+x2)/2;
- va1=parse(replace(fnstr,varstr,textformat(x1,5)));
- va2=parse(replace(fnstr,varstr,textformat(x3,5)));
- if((va1>value & va2>value) % (va1<value & va2<value),
- x1=x3;
- ,
- x2=x3;
- );
- );
- va1=parse(replace(fnstr,varstr,textformat(x1,5)))-value;
- va2=parse(replace(fnstr,varstr,textformat(x2,5)))-value;
- if(x1==range_1 % x2==range_2,
- println("not found in ("+textformat(range_1,5)
- +","+textformat(range_2,5)+")");
- );
- if(abs(va1)<=abs(va2),x1,x2);
-);
-
-Lcrd(pt):=(
- regional(tmp);
- if(ispoint(pt),
- tmp=[pt.x/SCALEX,pt.y/SCALEY];
- ,
- tmp=pt;
- );
- tmp;
-);
-
-Pcrd(pt):=(
- regional(tmp);
- if(ispoint(pt),
- tmp=re(pt.xy); // 15.07.24
- ,
- tmp=[pt_1*SCALEX,pt_2*SCALEY];
- );
- tmp;
-);
-
-LLcrd(pt):=(
- regional(tmp);
- if(ispoint(pt),
- tmp=pt.xy
- ,
- tmp=pt;
- );
- tmp=[tmp_1/SCALEX,tmp_2/SCALEY];
- tmp;
-);
-
-Doscaling(pltdata):=(
- regional(Level,Out,gL,gr,tmp);
- if(ispoint(pltdata) % isreal(pltdata_1),
- gL=[[pltdata]];
- Level=0;
- ,
- if(ispoint(pltdata_1) % isreal(pltdata_1_1),
- gL=[pltdata];
- Level=1;
- ,
- gL=pltdata;
- Level=2;
- );
- );
- Out=[];
- forall(gL,gr,
- tmp=apply(gr,Lcrd(#));
- tmp=apply(tmp,LLcrd(#));
- Out=concat(Out,[tmp]);
- );
- if(Level==0,
- Out=Out_1_1;
- );
- if(Level==1,
- Out=Out_1;
- );
- Out;
-);
-
-Unscaling(pltdata):=(
- regional(Level,Out,gL,gr,tmp);
- if(ispoint(pltdata) % isreal(pltdata_1),
- gL=[[pltdata]];
- Level=0;
- ,
- if(ispoint(pltdata_1) % isreal(pltdata_1_1),
- gL=[pltdata];
- Level=1;
- ,
- gL=pltdata;
- Level=2;
- );
- );
- Out=[];
- forall(gL,gr,
- tmp=apply(gr,Lcrd(#));
- tmp=apply(tmp,LLcrd(#));
- Out=concat(Out,[tmp]);
- );
- if(Level==0,
- Out=Out_1_1;
- );
- if(Level==1,
- Out=Out_1;
- );
- Out;
-);
-
-Definecolor(name,data):=(
-//help:Definecolor("mycolor",[1,1,1,0]);
- regional(type,tmp);
- if(length(data)>3,type="cmyk",type="rgb");
- tmp=text(data);
- tmp=substring(tmp,1,length(tmp)-1);
- tmp="\definecolor{"+name+"}{"+type+"}{"+tmp+"}";
- Texcom(tmp);
-);
-
-Setcolor(Par):=(
-//help:Setcolor([1,0,0,1]);
-//help:Setcolor([1,1,0]);
- if(islist(Par),
- if(length(Par)==3,
- Setcolorrgb(Par); // 2015.04.28
-// KCOLOR=Par;
- );
- if(length(Par)==4,
- Setcolor(Par,[]);
- );
- ,
- Setcolor(Par,[]);
- );
-);
-
-Setcolor(colorname,options):=(
-//help:Setcolor("greenyellow",0.3);
- regional(tmp);
- if(isstring(colorname),
- tmp="Setcolor("+Dq+colorname+Dq;
- if(length(options)>0,
- tmp=tmp+","+text(options_1);
- );
- Com2nd(tmp+")");
- );
- if(islist(colorname),
- tmp=text(colorname);
- tmp=substring(tmp,1,length(tmp)-1);
- tmp="Texcom("+Dq+"\color[cmyk]{"+tmp+"}"+Dq+")";
- Com2nd(tmp);
- );
-);
-
-Setcolorrgb(colorlist):=(
-// help:Setcolorrgb([0.5,0.3,0.4]);
- regional(tmp);
- tmp=text(colorlist);
- tmp=substring(tmp,1,length(tmp)-1);
- tmp="Texcom("+Dq+"\color[rgb]{"+tmp+"}"+Dq+")";
- Com2nd(tmp);
-);
-
-ColorRgb2Cmyk(clr):=(
-// help:ColorRgb([0.2,0.5,0.1]);
- regional(clrnew,tmp,black);
- tmp=apply(clr,1-#);
- black=min(tmp);
- tmp=apply(clr,(1-#-black)/(1-black));
- clrnew=append(tmp,black);
- clrnew;
-);
-
-ColorCmyk2Rgb(clr):=(
-// help:ColorRgb([0.2,0.5,0.1,0.2]);
- regional(clrnew,tmp,black);
- black=clr_4;
- tmp=apply(clr,1-min(1,#*(1-black)+black));
- clrnew=tmp_(1..3);
- clrnew;
-);
-
-Colorrgbhsv(rgb):=(
- regional(varR,varG,varB,varMin,varMax,delMax,hh,ss,vv,delR,delG,delB);
- varR = rgb_1;
- varG = rgb_2;
- varB = rgb_3;
- varMin = min( [varR, varG, varB] );
- varMax = max( [varR, varG, varB] );
- delMax = varMax - varMin ;
- vv = varMax;
- if ( delMax == 0 ,
- hh = 0 ;
- ss = 0 ;
- ,
- ss = delMax / varMax;
- delR = ( ( ( varMax - varR ) / 6 ) + ( delMax / 2 ) ) / delMax;
- delG = ( ( ( varMax - varG ) / 6 ) + ( delMax / 2 ) ) / delMax;
- delB = ( ( ( varMax - varB ) / 6 ) + ( delMax / 2 ) ) / delMax;
- if( varR == varMax ,
- hh = delB - delG;
- ,
- if ( varG == varMax,
- hh = ( 1 / 3 ) + delR - delB;
- ,
- if ( varB == varMax ,
- hh = ( 2 / 3 ) + delG - delR;
- );
- );
- );
- if ( hh < 0 ,hh = hh+1);
- if ( hh > 1 ,hh = hh-1);
- );
- [hh*360,ss,vv];
-);
-
-Colorhsvrgb(sL):=(
- regional(tmp,tmp1,tmp2,tmp3,hi,ff,dL);
- tmp=[sL_1/60,sL_2,sL_3];
- hi=mod(floor(tmp_1),6);
- ff=tmp_1-floor(tmp_1);
- tmp2=tmp_3*[1-tmp_2,1-tmp_2*ff,1-tmp_2*(1-ff)];
- tmp2=append(tmp2,tmp_3);
- if(hi==0,dL=tmp2_[4,3,1]);
- if(hi==1,dL=tmp2_[2,4,1]);
- if(hi==2,dL=tmp2_[1,4,3]);
- if(hi==3,dL=tmp2_[1,2,4]);
- if(hi==4,dL=tmp2_[3,1,4]);
- if(hi==5,dL=tmp2_[4,1,2]);
- dL;
-);
-
-Colorrgbhsl(rgb):=(
- regional(rr,gg,bb,mn,mx,delta,deltaR,deltaG,deltaB,hh,ss,ll);
- rr = rgb_1 ;
- gg = rgb_2 ;
- bb = rgb_3 ;
- mn = min([rr, gg, bb]);
- mx = max([rr, gg, bb]);
- delta = mx - mn;
- ll = (mx + mn) / 2;
- if (delta == 0,
- hh=0;
- ss=0;
- ,
- if (ll < 0.5,
- ss = delta/ (mx + mn);
- ,
- ss = delta / (2 - mx - mn);
- );
- deltaR = (((mx - rr) / 6) + (delta / 2)) / delta;
- deltaG = (((mx - gg) / 6) + (delta / 2)) / delta;
- deltaB = (((mx - bb) / 6) + (delta / 2)) / delta;
- if (rr == mx,
- hh = deltaB - deltaG;
- ,
- if (gg == mx,
- hh = (1 / 3) + deltaR - deltaB;
- ,
- if (bb == mx,
- hh = (2 / 3) + deltaG - deltaR;
- );
- );
- );
- if ( hh < 0, hh = hh+1);
- if ( hh > 1, hh = hh-1);
- );
- [hh*360,ss,ll];
-);
-
-Colorhslrgb(hsl):=(
- regional(hh,ss,ll,rr,gg,bb,var1,var2);
- hh=hsl_1/360;
- ss=hsl_2;
- ll=hsl_3;
- if ( ss == 0.0,
- rr = ll ;
- gg = ll ;
- bb = ll ;
- ,
- if ( ll < 0.5 ,
- var2 = ll * ( 1.0 + ss );
- ,
- var2 = ( ll + ss ) - ( ss * ll );
- );
- var1 = 2.0 * ll - var2;
- rr = hue2rgb( var1, var2, hh + ( 1.0 / 3.0 ) );
- gg = hue2rgb( var1, var2, hh );
- bb = hue2rgb( var1, var2, hh - ( 1.0 / 3.0 ) );
- );
- [rr,gg,bb];
-);
-
-hue2rgb(vv1,vv2,vh):=(
- regional(out);
- if ( vh < 0.0 ,vh =vh+1);
- if ( vh > 1.0 ,vh =vh-1);
- if ( 6.0*vh < 1.0 ,
- out = vv1 + ( vv2 - vv1 ) * 6.0 * vh ;
- ,
- if( 2.0*vh < 1.0 ,
- out = vv2;
- ,
- if ( 3.0*vh < 2.0 ,
- out = vv1 + ( vv2 - vv1 ) * ( ( 2.0 / 3.0 ) - vh ) * 6.0 ;
- ,
- out= vv1 ;
- );
- );
- );
- out;
-);
-
-Colorrgbhwb(sL):=(
- regional(dl1,dl2,dl3);
- dl1 = Colorrgbhsl(sL)_1;//Colorcode("rgb","hsl",sL)_1;
- dl2 = min(sL);
- dl3 = 1 - max(sL);
- dL= [dl1, dl2 , dl3 ];
-);
-
-Colorhwbrgb(sLorg):=(
- regional(sL,tmp,tmp1,tmp2,tmp3,ratio,ff,ii,vv,nn,dL,flg);
- sL=sLorg;
- sL=[sL_1/360,sL_2,sL_3];
- ratio = sL_2 + sL_3;
- // sL_2 + sL_3 cant be > 1
- if (ratio > 1.,
- sL_2 =sL_2 / ratio;
- sL_3 = sL_3 / ratio;
- );
- ii = floor(6 * sL_1);
- vv = 1 - sL_3;
- ff = 6 * sL_1 - ii;
- if(mod(ii,2)==1,ff = 1 - ff);
- nn = sL_2 + ff * (vv - sL_2); // linear interpolation
- tmp=[[vv,nn,sL_2],[nn,vv,sL_2],[sL_2,vv,nn],
- [sL_2,nn,vv],[nn,sL_2,vv],[vv,sL_2,nn],[vv,nn,sL_2]];
- flg=0;
- forall(0..6,
- if(flg==0 & ii == # ,
- dL=tmp_(#+1);
- flg=1;
- );
- );
- dL;
-);
-
-Colorhslhsv(sL):=(
- regional(dl1,dl2,dl3,dL);
- dl1=sL_1;
- if(sL_3 == 0,
- // no need to do calc on black
- // also avoids divide by 0 error
- dL= [0, 0, 0];
- ,
- sL_3 = sL_3 * 2;
- if(sL_3 <= 1,sL_2 = sL_2 * sL_3,sL_2 = sL_2 * (2 - sL_3));
- dl3 = (sL_3 + sL_2) / 2;
- dl2 = (2 * sL_2) / (sL_3 + sL_2);
- dL = [dl1, dl2, dl3];
- );
- dL;
-);
-
-Colorcode(src,dest,sL):=(
-//help:Colorcode("rgb","cmyk",[1,0.5,0]);
- regional(tmp,tmp1,tmp2,tmp3,mn,mx,delta,black,dL,flg);
- regional(dl1,dl2,dl3);
- if(src=="rgb" & dest=="hsv", dL=Colorrgbhsv(sL));
- if(src=="hsv" & dest=="rgb", dL=Colorhsvrgb(sL));
- if(src=="rgb" & dest=="hsl", dL=Colorrgbhsl(sL));
- if(src=="hsl" & dest=="rgb", dL=Colorhslrgb(sL));
- if(src=="rgb" & dest=="hwb", dL=Colorrgbhwb(sL));
- if(src=="hwb" & dest=="rgb", dL=Colorhwbrgb(sL));
- if(src=="hsl" & dest=="hsv", dL=Colorhslhsv(sL));
- if(src=="hsv" & dest=="hsl",
- dl1 = sL_1;
- dl3 = (2 - sL_2) * sL_3;
- dl2 = sL_2 * sL_3;
- if(dl3 <= 1,dl2 = dl2/dl3,dl2=dl2/(2 - dl3));
- dl3 =d l3/ 2;
- dL = [dl1, dl2 , dl3 ];
- );
-
- if(src=="rgb" & dest=="cmyk",
- tmp=apply(sL,1-#);
- black=min(tmp);
- tmp=apply(sL,(1-#-black)/(1-black));
- dL=append(tmp,black);
- );
- if(src=="cmyk" & dest=="rgb",
- black=sL_4;
- tmp=apply(sL,1-min(1,#*(1-black)+black));
- dL=tmp_(1..3);
- );
- if(src=="hsv" & dest=="cmyk",
- tmp=Colorcode("hsv","rgb",sL);
- dL=Colorcode("rgb","cmyk",tmp);
- );
- if(src=="cmyk" & dest=="hsv",
- tmp=Colorcode("cmyk","rgb",sL);
- dL=Colorcode("rgb","hsv",tmp);
- );
-
- if(src=="hsv" & dest=="hwb",
- tmp = Colorcode("hsv","rgb",sL);
- dL = Colorcode("rgb","hwb",tmp);
- );
- if(src=="hwb" & dest=="hsv",
- tmp = Colorcode("hwb","rgb",sL);
- dL = Colorcode("rgb","hsv",tmp);
- );
- if(src=="hsl" & dest=="hwb",
- tmp = Colorcode("hsl","rgb",sL);
- dL = Colorcode("rgb","hwb",tmp);
- );
- if(src=="hwb" & dest=="hsl",
- tmp = Colorcode("hwb","rgb",sL);
- dL = Colorcode("rgb","hsl",tmp);
- );
- if(src=="hsl" & dest=="cmyk",
- tmp = Colorcode("hsl","rgb",sL);
- dL = Colorcode("rgb","cmyk",tmp);
- );
- if(src=="hwb" & dest=="cmyk",
- tmp = Colorcode("hwb","rgb",sL);
- dL = Colorcode("rgb","cmyk",tmp);
- );
- if(src=="cmyk" & dest=="hsl",
- tmp = Colorcode("cmyk","rgb",sL);
- dL = Colorcode("rgb","hsl",tmp);
- );
- if(src=="cmyk" & dest=="hwb",
- tmp = Colorcode("cmyk","rgb",sL);
- dL = Colorcode("rgb","hwb",tmp);
- );
- if(src=="hsb" & dest=="rgb",dL=Colorcode("hsv","rgb",sL));
- if(src=="rgb" & dest=="hsb",dL=Colorcode("rgb","hsv",sL));
-
- if(src=="hsb" & dest=="hsl",dL=Colorcode("hsv","hsl",sL));
- if(src=="hsl" & dest=="hsb",dL=Colorcode("hsl","hsv",sL));
-
- if(src=="hsb" & dest=="hwb",dL=Colorcode("hsv","hwb",sL));
- if(src=="hwb" & dest=="hsb",dL=Colorcode("hwb","hsv",sL));
-
- if(src=="hsb" & dest=="cmyk",dL=Colorcode("hsv","cmyk",sL));
- if(src=="cmyk" & dest=="hsb",dL=Colorcode("cmyk","hsv",sL));
-
- dL;
-);
-
-Addcolor(cmdorg,list):=(
-//help:Addcolor("Plotdata('1','x^2','x',[])",[1,1,0]);
- regional(rgb,cmyk,cmd,tmp,tmp1,tmp2,tmp3,tmp4);
- cmd=replace(cmdorg,"'",Dq);
- if(length(list)==3,
- rgb=list;
- cmyk=Colorcode("rgb","cmyk",list);
- ,
- cmyk=list;
- rgb=Colorcode("cmyk","rgb",list);
- );
- tmp1="color->"+text(rgb);
- tmp2="Setcolor("+text(cmyk)+");";
- tmp3=substring(cmd,0,length(cmd)-2);
- tmp=substring(tmp3,length(tmp3)-1,length(tmp3));
- if(tmp!="[",
- tmp3=tmp3+",";
- );
- tmp3=tmp3+Dq+tmp1+Dq+"])";
- parse(tmp2);
- parse(tmp3);
- Setcolor("black");
-);
-
-Colorinfile(filename,clrf,clrt):=(
- regional(tmp,tmp1,tmp2,head,cstrL,chstrL,head,body);
- if(length(clrf_1)==3,
- head="[rgb]{";
- ,
- head="[cmyk]{";
- );
- tmp=apply(clrf,text(#));
- cstrL=apply(tmp,head+substring(#,1,length(#)-1)+"}");
- if(length(clrt_1)==3,
- head="[rgb]{";
- ,
- head="[cmyk]{";
- );
- tmp=apply(clrt,text(#));
- chstrL=apply(tmp,head+substring(#,1,length(#)-1)+"}");
- tmp1=load(filename);
- tmp=tokenize(tmp1,"{\unitlength");
- head=tokenize(tmp_1,"%%%");
- head=head_(2..length(head));
- head=apply(head,"%%%"+#);
- tmp2=tmp_2;
- forall(1..5,
- tmp2=replace(tmp2,cstrL_#,chstrL_#);
- );
- body=tokenize(tmp2,"%");
- body_1="{\unitlength"+body_1;
- body=apply(body,#+"%");
- body=body_(1..(length(body)-1));
- tmp=replace(filename,".tex","new.tex");
- SCEOUT=openfile(tmp);
- forall(head,
- println(SCEOUT,#);
- );
- forall(1..length(body),
- tmp=body_#;
- if(#<length(body),
- println(SCEOUT,tmp);
- ,
- print(SCEOUT,tmp)
- );
- );
- closefile(SCEOUT);
-);
-
-GetLinestyle(str,name):=(
- regional(noflg,tmp,tmp1,tmp2,Dop,Ltype,subflg);
- Ltype=-1;
- Dop="";
- tmp1=indexof(str,",");
- if(tmp1>0,
- Dop=","+substring(str,tmp1,length(str));
- );
- noflg=parse(substring(str,0,1));
- if(substring(name,0,3)=="sub",subflg=1,subflg=0); // 16.02.29
- tmp1=substring(str,1,3);
- if(tmp1=="dr" % tmp1=="Dr",
- Ltype=0;
- if(noflg==0 & subflg==0, // 16.02.29
- Drwline(name+Dop);
- );
- );
- if(tmp1=="da" % tmp1=="Da",
- Ltype=1;
- if(noflg==0 & subflg==0, // 16.02.29
- Dashline(name+Dop);
- );
- );
- if(tmp1=="id" % tmp1=="Id",
- Ltype=2; // 15.11.09
- if(noflg==0 & subflg==0, // 16.02.29
- Invdashline(name+Dop);
- );
- );
- if(tmp1=="do" % tmp1=="Do",
- Ltype=3;
- if(noflg==0 & subflg==0, // 16.02.29
- Dottedline(name+Dop);
- );
- );
- if(tmp1=="dp" % tmp1=="Dp",
- Ltype=0;
- tmp1=parse(name);
- tmp2="";
- forall(tmp1,
- tmp2=tmp2+textformat(#_1,5)+",";
- );
- tmp2=substring(tmp2,0,length(tmp2)-1);
- if(noflg==0,
- Drwpt(tmp2+Dop);
- );
- );
- if(tmp1=="no" % tmp1=="No",
- Ltype=10;
- );
- Ltype;
-);
-
-Chunderscore(str):=(
- regional(flg,tmp,tmp1,tmp2,tmp3);
- if(indexof(str,"]")>0,
- tmp1=replace(str,"]",",]");
- ,
- tmp1=str+",";
- );
- flg=0;
- tmp2=[];
- tmp3=0;
- forall(1..length(tmp1),
- if(flg==0,
- tmp=substring(tmp1,tmp3,length(tmp1));
- tmp=indexof(tmp,"_");
- if(tmp==0,
- flg=1;
- ,
- tmp3=tmp3+tmp;
- tmp=substring(tmp1,tmp3,length(tmp1));
- tmp=indexof(tmp,",")-1;
- tmp=substring(tmp1,tmp3,tmp3+tmp);
- tmp2=append(tmp2,tmp);
- );
- );
- );
- forall(tmp2,
- tmp1=replace(tmp1,"_"+#,"("+#+")");
- );
- if(indexof(str,"]")>0,
- tmp1=replace(tmp1,",]",")");
- tmp1=replace(tmp1,"[","list(");
- ,
- tmp1=substring(tmp1,0,length(tmp1)-1);
- );
- tmp1;
-);
-
-//AddGraph(pltdata):=AddGraph("-"+pltdata,pltdata,[]);
-AddGraph(nm,pltdata):=AddGraph(nm,pltdata,[]);
-// if(isstring(Arg2),
-// AddGraph(Arg1,Arg2,[]);
-// ,
-// if(MeasureDepth(Arg2)>0,
-// Addgraph(Arg1,Arg2,[]);
-// ,
-// Addgraph("-"+Arg1,Arg1,Arg2);
-// );
-// );
-//);
-AddGraph(nm,pltdata,options):=(
-//help:AddGraph("1","imp1"); // 16.04.04
-//help:Addgraph("1",["[pt1]","gr1"],["nodisp"]);
- regional(name,Ltype,Noflg,opcindy,pdata,fname,flg,
- tmp,tmp1,tmp2,tmp3);
- if(substring(nm,0,1)=="-",
- name=substring(nm,1,length(nm));
- ,
- name="ad"+nm;
- );
- tmp=Divoptions(options);
- Ltype=tmp_1;
- Noflg=tmp_2;
- opcindy=tmp_9;
- if(isstring(pltdata),
- pdata=parse(pltdata)
- ,
- if(!islist(pltdata),pdata=[pltdata],pdata=pltdata);
- pdata=apply(pdata,parse(#));
- ); // 15.01.22
- pdata=Flattenlist(pdata);
- tmp1=[];
- forall(pdata,tmp2,
- tmp=apply(tmp2,Pcrd(#));
- tmp1=append(tmp1,tmp);
- );
- if(length(tmp1)==1,tmp1=tmp1_1);
- pdata=tmp1;
- if(Noflg<3,
- println("generate addgraph "+name);
- tmp=name+"="+textformat(pdata,5);
- parse(tmp);
- if(isstring(pltdata), // 16.04.04 from
- if(indexof(pltdata,"]")>0,
- tmp1="list(Listplot("+substring(pltdata,1,length(pltdata));
- tmp1=replace(tmp1,"]",",]");
- ,
- tmp1="Listplot("+substring(pltdata,0,length(pltdata))+",]";
- );
- flg=0;
- tmp2=[];
- tmp3=0;
- forall(1..length(tmp1),
- if(flg==0,
- tmp=indexof(substring(tmp1,tmp3,length(tmp1)),"_");
- if(tmp==0,
- flg=1;
- ,
- tmp3=tmp3+tmp;
- tmp=indexof(substring(tmp1,tmp3,length(tmp1)),",")-1;
- tmp=substring(tmp1,tmp3,tmp3+tmp);
- tmp2=append(tmp2,tmp);
- );
- );
- );
- forall(tmp2,
- tmp1=replace(tmp1,"_"+#,"("+#+")");
- );
- tmp1=replace(tmp1,",]",")");
- tmp1=replace(tmp1,",","),Listplot(");
- if(indexof(pltdata,"[")>0,
- tmp1=tmp1+")";
- );
- GLIST=append(GLIST,name+"="+tmp1);
- ,
- if(MeasureDepth(pdata)==1,
- tmp1=name+"=Listplot("+textformat(pdata,5)+")";
- ,
- tmp1="list(";
- forall(1..length(pdata),
- tmp=name+"p"+textformat(#,5)+"=";
- if(length(pdata_#)>1, // 15.01.22
- tmp=tmp+"Listplot("+textformat(pdata_#,5)+")";
- ,
- tmp=tmp+"Pointdata("+textformat(pdata_#_1,5)+")";
- );
- GLIST=append(GLIST,tmp);
- tmp1=tmp1+name+"p"+textformat(#,5)+",";
- );
- tmp1=name+"="+substring(tmp1,0,length(tmp1)-1)+")";
- );
- GLIST=append(GLIST,tmp1);
- );
- ); // 16.04.04 upto
- if(Noflg<2,
- if(isstring(Ltype),
- Ltype=GetLinestyle(text(Noflg)+Ltype,name);
- ,
- if(Noflg==1,Ltype=0);
- );
- GCLIST=append(GCLIST,[name,Ltype,opcindy]);
- );
-);
-
-Joincrvs(nm,plotstrL):=Joincrvs(nm,plotstrL,[]);
-Joincrvs(nm,plotstrL,options):=(
-//help:Joincrvs("1",["sgAB","sgDCB"]);
- regional(plotlist,PtL,Eps,QdL,Flg,Ni,Qd,pP,pS,pQ,pR,rMN,
- opcindy,tmp,tmp1,tmp2,str,name,Ltype,Noflg);
- name="join"+nm;
- plotlist=[];
- forall(plotstrL,str,
- if(isstring(str),
- tmp=parse(str);
- tmp=apply(tmp,LLcrd(#));
- ,
- tmp=str;
- );
- plotlist=append(plotlist,tmp);
- );
- Eps=10^(-4);
- tmp=Divoptions(options);
- Ltype=tmp_1;
- Noflg=tmp_2;
- opcindy=tmp_(length(tmp));
- tmp1=tmp_6;
- if(length(tmp1)>0,Eps=tmp1_1);
- QdL=[];
- forall(plotlist,Qd,
- if(ispoint(Qd_1) % !islist(Qd_1_1),
- QdL=concat(QdL,[Qd]);
- ,
- forall(Qd,
- QdL=concat(QdL,[#]);
- );
- );
- );
- Flg=0;
- if(length(QdL)==0,
- PtL=[];
- Flg=1;
- );
- if(Flg==0,
- PtL=QdL_1;
- forall(2..length(QdL),Ni,
- Qd=QdL_Ni;
- if(Numptcrv(Qd)>1,
- pP=Ptend(PtL);
- pS=Ptstart(PtL);
- pQ=Ptstart(Qd);
- pR=Ptend(Qd);
- rMN=min([|pP-pQ|,|pP-pR|,|pS-pQ|,|pS-pR|]);
- if(rMN==|pP-pR|,
- Qd=reverse(Qd);
- ,
- if(rMN==|pS-pQ|,
- PtL=reverse(PtL);
- ,
- if(rMN==|pS-pR|,
- PtL=reverse(PtL);
- Qd=reverse(Qd);
- );
- );
- );
- );
- if(rMN>Eps,
- PtL=concat(PtL,Qd);
- ,
- PtL=concat(PtL,Qd_(2..length(Qd)));
- );
- );
- );
- if(Noflg<3,
- println("generate joincurve "+name);
- tmp1=apply(PtL,Pcrd(#));
- tmp=name+"="+textformat(tmp1,5);
- parse(tmp);
- tmp1="";
- forall(plotstrL,
- tmp1=tmp1+#+",";
- );
- tmp1=substring(tmp1,0,length(tmp1)-1);
- GLIST=append(GLIST,name+"=Joincrvs("+tmp1+")");
- );
- if(Noflg<2,
- if(isstring(Ltype),
- Ltype=GetLinestyle(text(Noflg)+Ltype,name);
- ,
- if(Noflg==1,Ltype=0);
- );
- GCLIST=append(GCLIST,[name,Ltype,opcindy]);
- );
- PtL;
-);
-
-Partcrv(nm,pA,pB,PkLstr):=Partcrv(nm,pA,pB,PkLstr,[]);
-Partcrv(nm,pA,pB,PkLstr,options):=(
-//help:Partcrv("1",A,B,"sgABC");
-//help:Partcrv("1",1.3,2.5,"sgABC");
- regional(PkL,Ans,Eps,Npt,Out1,Out2,tmp,tmp1,Flg,nS,nE,PPL,pP,
- opcindy,Ta,Tb,name,Ltype,Noflg,DepthFlg);
- name="part"+nm;
- if(isstring(PkLstr),PkL=parse(PkLstr),PkL=PkLstr);
- DepthFlg=0;
- if(MeasureDepth(PkL)==2,
- PkL=PkL_1;
- DepthFlg=1;
- );
- PkL=apply(PkL,LLcrd(#));
- tmp=Divoptions(options);
- Ltype=tmp_1;
- Noflg=tmp_2;
- opcindy=tmp_(length(tmp));
- Eps=10^(-3);
- Flg=0;
- if(isreal(pA),
- if(pA>pB+Eps,
- Npt=Numptcrv(PkL);
- Out1=Partcrv("",pA,Npt,PkLstr,["nodata"]);
- Out2=Partcrv("",1,pB,PkLstr,["nodata"]);
- tmp=Ptstart(PkL)-Ptend(PkL);
- if(|tmp|<Eps,
- Ans=Joincrvs("",[Out1,Out2],["nodata"]);
- ,
- Ans=[apply(Out1,Pcrd(#)),apply(Out2,Pcrd(#))];
- );
- Flg=1;
- );
- if(Flg==0,
- nS=ceil(pA);
- nE=floor(pB);
- PPL=[];
- if(pA<nS-Eps,
- pP=(nS-pA)*PkL_(nS-1)+(1-nS+pA)*PkL_nS;
- PPL=[pP];
- );
- PPL=concat(PPL,PkL_(nS..nE));
- if(pB>nE+Eps,
- pP=(1-pB+nE)*PkL_nE+(pB-nE)*PkL_(nE+1);
- PPL=concat(PPL,[pP]);
- );
- Ans=PPL;
- Flg=1;
- );
- );
- if(Flg==0,
- tmp=Nearestpt(LLcrd(Pcrd(pA)),PkL);
- Ta=tmp_2;
- tmp=Nearestpt(LLcrd(Pcrd(pB)),PkL); // 15.09.12
- Tb=tmp_2;
- Ans=Partcrv("",Ta,Tb,PkL,["nodata"] );
- Ans=apply(Ans,Pcrd(#));
- );
- if(Noflg<3,
- println("generate partcrv "+name);
- tmp1=apply(Ans,Pcrd(#));
- tmp=name+"="+textformat(tmp1,5);
- parse(tmp);
-// GLIST=append(GLIST, // 16.04.03
- if(DepthFlg==0,
- tmp=PkLstr;
- ,
- tmp=PkLstr+"(1)";
- );
- tmp1=name+"=Partcrv("+textformat(Lcrd(pA),5)
- +","+textformat(Lcrd(pB),5)+","+tmp+")"; // 16.04.03
- GLIST=append(GLIST,tmp1);
- );
- if(Noflg<2,
- if(isstring(Ltype),
- Ltype=GetLinestyle(text(Noflg)+Ltype,name);
- ,
- if(Noflg==1,Ltype=0);
- );
- GCLIST=append(GCLIST,[name,Ltype,opcindy]);
- );
- Ans;
-);
-
-Opcrvs(num,Fig):=Opcrvs(num,Fig,["nodisp"]);
-Opcrvs(num,Fig,options):=(
- //help:Subgraph(2,"grfs");
- regional(name,tmp,tmp1);
- name="-"+Fig+text(num);
- tmp=Fig+"_"+text(num);
- tmp1=parse(tmp);
- Listplot(name,tmp1,options);
-);
-
-
-Pointdata(nm,list):=Pointdata(nm,list,[]);
-Pointdata(nm,list,options):=(
-//help:Pointdata("1",[2,4],["Size=5"]);
-//help:Pointdata("2",[[2,3],[4,1]]);
- regional(name,nameL,ptlist,opstr,opcindy,
- eqL,size,thick,tmp,tmp1,tmp2,tmp3,Ltype,Noflg);
- name="pt"+nm;
- nameL=name+"L";
- println("generate pointdata "+name);
- tmp=Divoptions(options);
- Ltype=tmp_1;
- Noflg=tmp_2;
- opcindy=tmp_(length(tmp));
- opstr=tmp_(length(tmp)-1);
- size="";
- eqL=tmp_5;
- if(length(eqL)>0,
- forall(eqL,
- tmp=substring(#,0,1);
- if(tmp=="s" % tmp=="S",
- tmp=indexof(#,"=");
- size=substring(#,tmp,length(#));
- );
- );
- );
- tmp=MeasureDepth(list);
- if(tmp>0, // 2015.02.21
- if(tmp==1,ptlist=list,ptlist=list_1);
- tmp=apply(ptlist,[textformat(Pcrd(#),5)]);
- tmp1=text(tmp);
- tmp2=substring(tmp1,1,length(tmp1)-1);
- tmp3=tmp1;
- ,
- ptlist=list;
- tmp1=textformat(Pcrd(ptlist),5);
- tmp2=tmp1;
- tmp3="["+tmp1+"]";
- );
- tmp=name+"="+tmp1;
- parse(tmp);
- tmp=nameL+"="+tmp3;
- parse(tmp);
- if(Noflg<3,
- GLIST=append(GLIST,name+"=Pointdata("+tmp2+")");
- );
- if(Noflg<2,
- tmp=[nameL,0,opcindy];
- GCLIST=append(GCLIST,tmp);
- if(Noflg==0,
- if(length(size)>0,
- Com2nd("Setpt("+size+")");
- );
- thick=PenThick/PenThickInit; // 16.04.09 from
- if(length(size)>0,tmp1=parse(size),tmp1=1);
- tmp1=max(tmp1,1)/8;
- Setpen(tmp1); // 16.04.09 upto
- Com2nd("Drwpt(list("+name+")"+opstr+")");
- Setpen(thick); // 16.04.09
- if(length(size)>0,
- Com2nd("Setpt("+textformat(TenSize/TenSizeInit,1)+")");
- );
- );
- );
- ptlist;
-);
-
-Listplot(nm,list,options):=(
-//help:Listplot([A,B]);
-// help:Listplot(["A","B"]);
-//help:Listplot("1",[[2,1],[3,3]]);
-//help:Listplot(options2=["Msg=yes"]);
- regional(name,tmp,tmp1,ptlist,Ltype,opcindy,Noflg,eqL,Msg);
- if(substring(nm,0,1)=="-", // 16.01.27 from
- name=substring(nm,1,length(nm));
- ,
- name="sg"+nm;
- ); // upto
- tmp=Divoptions(options);
- Ltype=tmp_1;
- Noflg=tmp_2;
- eqL=tmp_5;
- opcindy=tmp_(length(tmp));
- Msg=1; // 15.09.17
- forall(eqL,
- tmp=substring(#,0,1);
- if(Toupper(tmp)=="M",
- tmp=indexof(#,"=");
- tmp1=substring(#,tmp,tmp+1); // 16.06.28
- if(Toupper(tmp1)=="N", // 16.06.28
- Msg=0;
- );
- );
- );
- if(Noflg<3,
- if(Msg==1,
- println("generate Listplot "+name);
- );
- if(isstring(list_1),tmp=apply(list,parse(#)),tmp=list); // 15.03.24
- ptlist=apply(tmp,Pcrd(#));
- tmp=name+"="+textformat(ptlist,5);
- parse(tmp);
- GLIST=append(GLIST,name+"=Listplot("+textformat(list,5)+")"); // 15.12.23
- );
- if(Noflg<2,
- if(isstring(Ltype),
- Ltype=GetLinestyle(text(Noflg)+Ltype,name);
- ,
- if(Noflg==1,Ltype=0);
- );
- GCLIST=append(GCLIST,[name,Ltype,opcindy]);
- );
- tmp1=apply(list,Lcrd(#));
- tmp1;
-);
-Listplot(Arg1,Arg2):=(
- regional(name,list,options,str);
- if(isstring(Arg1),
- name=Arg1;
- list=Arg2;
- Listplot(name,list,[]);
- ,
- list=Arg1;
- options=Arg2;
- name="";
- forall(list, // 16.10.07from
- name=name+#.name;
- );// 16.10.07upto
- Listplot(name,list,options);
- );
-);
-Listplot(list):=Listplot(list,[]);
-
-Lineplot(nm,list,options):=(
-//help:Lineplot([A,B]);
-//help:Lineplot("1",[[2,1],[3,3]]);
- regional(name,Out,tmp,tmp1,opstr,opcindy,Mag,Semi,
- Vec,pA,pB,Ltype,Noflg);
- name="ln"+nm;
- Mag=100;
- Semi="";
- tmp=Divoptions(options);
- Ltype=tmp_1;
- Noflg=tmp_2;
- opcindy=tmp_(length(tmp));
- opstr=tmp_(length(tmp)-1);
- tmp1=tmp_6;
- if(length(tmp1)>0,Mag=tmp1_1);
- tmp1=tmp_7;
- if(length(tmp1)>0,Semi=tmp1_1);
- pA=Lcrd(list_1); pB=Lcrd(list_2);
- Vec= Mag/dist(pA,pB)*(pB-pA);
- if(length(Semi)==0,
- Out=[pA-Vec,pA+Vec];
- ,
- if(Semi=="+",
- Out=[pA,pA+Vec];
- ,
- Out=[pA-Vec,pA];
- );
- );
- if(Noflg<3,
- println("generate Lineplot "+name);
- tmp1=apply(Out,Pcrd(#));
- tmp=name+"="+textformat(tmp1,5);
- parse(tmp);
- GLIST=append(GLIST,name+"=Lineplot("+textformat(list,5)+opstr+")");
- );
- if(Noflg<2,
- if(isstring(Ltype),
- Ltype=GetLinestyle(text(Noflg)+Ltype,name);
- ,
- if(Noflg==1,Ltype=0);
- );
- GCLIST=append(GCLIST,[name,Ltype,opcindy]);
- );
- Out;
-);
-Lineplot(Arg1,Arg2):=(
- regional(name,list,options,str);
- if(isstring(Arg1),
- name=Arg1;
- list=Arg2;
- Lineplot(name,list,[]);
- ,
- list=Arg1;
- options=Arg2;
- name="";
- forall(list, // 16.10.07from
- name=name+#.name;
- );// 16.10.07upto
- Lineplot(name,list,options);
- );
-);
-Lineplot(list):=Lineplot(list,[]);
-
-Plotdata(name1,func,variable):=Plotdata(name1,func,variable,[]);
-Plotdata(name1,func,variable,options):=(
-//help:Plotdata("1","sin(x)","x",["Num=100"]);
-//help:Plotdata("2","x^2","x=[-1,1]");
-//help:Plotdata("3","Fout(x)","x",["out"]);
- regional(Fn,Va,tmp,tmp1,tmp2,eqL,name,Vname,x1,x2,dx,
- PdL,QdL,Num,Ec,Dc,Fun,Exfun,x,Ke,Eps,Pa,
- Ltype,Noflg,Inflg,Outflg,opstr,opcindy);
- name="gr"+name1;
- tmp=Divoptions(options);
- Ltype=tmp_1;
- Noflg=tmp_2;
- Inflg=tmp_3;
- Outflg=tmp_4;
- opstr=tmp_(length(tmp)-1);
- opcindy=tmp_(length(tmp));
- eqL=tmp_5;
- Num=50;
- Ec=[];
- Exfun="";
- Dc=1000;
- forall(eqL,
- tmp=indexof(#,"=");
- tmp1=substring(#,tmp,length(#));
- opstr=opstr+",'"+#+"'";
- if(substring(#,0,1)=="N",
- Num=parse(tmp1);
- );
- if(substring(#,0,1)=="E",
- if(substring(tmp1,0,1)=="[",
- Ec=parse(tmp1);
- ,
- Exfun=tmp1;
- );
- );
- if(substring(#,0,1)=="D",
- Dc=parse(tmp1);
- );
- );
- if(Inflg==0 & Outflg==0,
- Eps=10^(-3);
- tmp=replace(func,LFmark,"");
- tmp=tokenize(variable,"=");
- Vname=tmp_1;
- if(length(tmp)>1,
- tmp=tmp_2;
- tmp=parse(tmp);
- x1=tmp_1;
- x2=tmp_2;
- ,
- x1=XMIN;
- x2=XMAX;
- );
- // dx=(x2-x2)/Num;
- Ec=append(sort(Ec),10000);
- Fun=Assign(func,Vname, "xx");
- Exfun=Assign(Exfun,Vname, "xx");
- PdL=[];
- Ke=1;
- forall(0..Num,
- xx=x1+#*(x2-x1)/Num; // differs from Scilab ( / Num-1)
- if(length(Exfun)>0,
- tmp=parse(Exfun);
- if(abs(tmp)<Eps,
- if(length(Pdt)>0,
- PdL=concat(PdL,["inf"]);
- );
- );
- ,
- Pa=[];
- if(xx-Ec_Ke<-Eps,
- Pa=[xx,parse(Fun)];
- );
- if(abs(xx-Ec_Ke)<=Eps,
- if(length(PdL)>0,
- if(PdL_(length(PdL))_1!="inf",
- Pa=["inf"];
- );
- );
- );
- if(xx-Ec_Ke>Eps,
- Pa=[xx,parse(Fun)];
- Ke=Ke+1;
- );
- if(length(Pa)>0,
- if(Pa_1=="inf",
- PdL=concat(PdL,[Pa]);
- ,
- if(length(PdL)==0,
- PdL=[Pa];
- ,
- tmp=PdL_(length(PdL));
- if(tmp_1=="inf",
- PdL=concat(PdL,[Pa]);
- ,
- if(dist(tmp,Pa)<Dc,
- PdL=concat(PdL,[Pa]);
- ,
- PdL=concat(PdL,[["inf"],Pa]);
- );
- );
- );
- );
- );
- );
- );
- tmp1=[];
- tmp2=select(1..length(PdL),PdL_#==["inf"]);
- tmp=1;
- forall(tmp2,
- if(#>tmp,
- tmp1=concat(tmp1,[PdL_(tmp..(#-1))])
- );
- tmp=#+1;
- );
- if(tmp<length(PdL),
- tmp1=concat(tmp1,[PdL_(tmp..length(PdL))]);
- );
- PdL=tmp1;
- if(length(PdL)==1,
- PdL=PdL_1;
- );
- if(Noflg<3,
- println("generate Plotdata "+name);
- if(MeasureDepth(PdL)==1,
- tmp1=apply(PdL,Pcrd(#));
- ,
- tmp1=[];
- forall(PdL,tmp2,
- tmp1=append(tmp1,apply(tmp2,Pcrd(#)));
- );
- );
- tmp=name+"="+textformat(tmp1,5);
- parse(tmp);
- tmp1=replace(func,LFmark,"");
- tmp2=replace(variable,LFmark,"");
- tmp=name+"=Plotdata('"+tmp1+"','"+tmp2+"'"+opstr+")";
- GLIST=append(GLIST,tmp);
- );
- if(Noflg<2,
- if(isstring(Ltype),
- Ltype=GetLinestyle(text(Noflg)+Ltype,name);
- ,
- if(Noflg==1,Ltype=0);
- );
- GCLIST=append(GCLIST,[name,Ltype,opcindy]);
- );
- PdL;
- ,
- // Inflg or Outflg >0 15.05.15
- if(Noflg<3,
- if(Outflg==1,
- println("Output Plotdata "+name);
- tmp=name+"=Plotdata('"+func+"','"+variable+"'"+opstr+")";
- GLIST=append(GLIST,tmp);
- SCIWRLIST=append(SCIWRLIST,name);
- if(Inflg==0,Inflg=1); // 15.05.17
- );
- if(Inflg==1,
- println("Input Plotdata "+name);
- if(length(SCIRELIST)==0,
- ReadOutData(Fnameout);
- );
- tmp=parse(name);
- if(islist(tmp),
- Extractdata(name,["nodisp"]); // 12.19
- );
- tmp="// "+name+"=Plotdata('"+func+"','"+variable+"'"+opstr+")";
- Com1st(tmp);
- SCIRELIST=append(SCIRELIST,name);
- );
- );
- if(Noflg<2,
- if(isstring(Ltype),
- Ltype=GetLinestyle(text(Noflg)+Ltype,name);
- ,
- if(Noflg==1,Ltype=0);
- );
- if(Inflg==1,
- GCLIST=append(GCLIST,[name,Ltype,opcindy]);
- );
- );
- );
-);
-
-Paramplot(name1,funstr,variable):=Paramplot(name1,funstr,variable,[]);
-Paramplot(name1,funstr,variable,options):=(
-//help:Paramplot("1","[2*cos(t),sin(t)]","t=[0,2*pi]");
- regional(name,Out,tmp,tmp1,tmp2,vname,func,str,Rng,Num,
- Ec,Exfun,Dc,eqL,Fntmp,Vatmp,t1,t2,dt,tt,pa,ke,
- Ltype,Noflg,Inflg,Outflg,opstr,opcindy);
- name="gp"+name1;
- Eps=10^(-4);
- tmp=Divoptions(options);
- Ltype=tmp_1;
- Noflg=tmp_2;
- Inflg=tmp_3;
- Outflg=tmp_4;
- opstr=tmp_(length(tmp)-1);
- opcindy=tmp_(length(tmp));
- eqL=tmp_5;
- Num=50;
- Ec=[];
- Exfun="";
- Dc=1000;
- forall(eqL,
- tmp=indexof(#,"=");
- tmp1=substring(#,tmp,length(#));
- opstr=opstr+",'"+#+"'";
- if(substring(#,0,1)=="N",
- Num=parse(tmp1);
- );
- if(substring(#,0,1)=="E",
- if(substring(tmp1,0,1)=="[",
- Ec=parse(tmp1);
- ,
- Exfun=tmp1;
- );
- );
- if(substring(#,0,1)=="D",
- Dc=parse(tmp1);
- );
- );
- if(Inflg==0 & Outflg==0,
- tmp=indexof(variable,"=");
- vname=substring(variable,0,tmp-1);
- str=substring(variable,tmp,length(variable));
- Rng=parse(str);
- t1=Rng_1; t2=Rng_2;
- dt=(t2-t1)/Num;// differs from Scilab ( / Num-1)
- func=Assign(funstr,vname,"tt");
- Out=[];
- Ec=append(sort(Ec),10000);
- ke=1;
- forall(0..Num,
- pt=[];
- tt=Rng_1+#*dt;
- if(tt-Ec_ke<-Eps,
- pa=parse(func);
- );
- if(abs(tt-Ec_ke)<=Eps,
- if(length(Out)>0,
- if(Out_(length(Out))_1!="inf",
- pa=["inf"];
- );
- );
- );
- if(tt-Ec_ke>Eps,
- pa=parse(func);
- ke=ke+1;
- );
- if(length(pa)>0,
- if(pa_1=="inf",
- Out=append(Out,pa);
- ,
- if(length(Out)==0,
- Out=[pa];
- ,
- tmp=Out_(length(Out));
- if(tmp_1=="inf",
- Out=append(Out,pa);
- ,
- if(|tmp-pa|<Dc,
- Out=append(Out,pa);
- ,
- Out=concat(Out,[["inf"],pa]);
- );
- );
- );
- );
- );
- );
- tmp1=[];
- tmp2=select(1..length(Out),Out_#==["inf"]);
- tmp=1;
- forall(tmp2,
- if(#>tmp,
- tmp1=concat(tmp1,[Out_(tmp..(#-1))])
- );
- tmp=#+1;
- );
- if(tmp<length(Out),
- tmp1=concat(tmp1,[Out_(tmp..length(Out))]);
- );
- Out=tmp1;
- if(length(Out)==1,
- Out=Out_1;
- );
- if(Noflg<3,
- println("generate Paramplot "+name);
- if(MeasureDepth(Out)==1,
- tmp1=apply(Out,Pcrd(#));
- ,
- tmp1=[];
- forall(Out,tmp2,
- tmp1=append(tmp1,apply(tmp2,Pcrd(#)));
- );
- );
- tmp=name+"="+textformat(tmp1,5);
- parse(tmp);
- tmp1=replace(funstr,LFmark,""); // 15.11.13
- tmp2=replace(variable,LFmark,"");
- tmp=name+"=Paramplot('"+tmp1+"','"+tmp2+"'"+opstr+")";
- GLIST=append(GLIST,tmp);
- );
- if(Noflg<2,
- if(isstring(Ltype),
- Ltype=GetLinestyle(text(Noflg)+Ltype,name);
- ,
- if(Noflg==1,Ltype=0);
- );
- GCLIST=append(GCLIST,[name,Ltype,opcindy]);
- );
- Out;
- ,
- // Inflg or Outflg >0 15.05.15
- if(Noflg<3,
- if(Outflg==1,
- println("Output Paramplot "+name);
- tmp=name+"=Paramplot('"+funstr+"','"+variable+"'"+opstr+")";
- GLIST=append(GLIST,tmp);
- SCIWRLIST=append(SCIWRLIST,name);
- if(Inflg==0,Inflg=1); // 15.05.17
- );
- if(Inflg==1,
- println("Input Paramplotdata "+name);
- if(length(SCIRELIST)==0,
- ReadOutData(Fnameout);
- );
- tmp=parse(name);
- if(islist(tmp),
- Extractdata(name,["nodisp"]); // 12.19
- );
- tmp="// "+name+"=Paramplot('"+func+"','"+variable+"'"+opstr+")";
- Com1st(tmp);
- SCIRELIST=append(SCIRELIST,name);
- );
- );
- if(Noflg<2,
- if(isstring(Ltype),
- Ltype=GetLinestyle(text(Noflg)+Ltype,name);
- ,
- if(Noflg==1,Ltype=0);
- );
- if(Inflg==1,
- GCLIST=append(GCLIST,[name,Ltype,opcindy]);
- );
- );
- );
-);
-
-Circledata(cenrad):=Circledata(cenrad,[]);
-Circledata(para1,para2):=(
-//help:Circledata([A,B],["Rng=[0,pi/2]"]);
-//help:Circledata([A,B,C]);
- regional(name,cenrad,options,str,n);
- if(isstring(para1),
- name=para1;
- cenrad=para2;
- options=[];
- ,
- cenrad=para1;
- options=para2;
- name="";// 16.10.07from
- forall(cenrad,
- name=name+#.name;
- );// 16.10.07upto
- );
- Circledata(name,cenrad,options);
-);
-Circledata(nm,cenrad,options):=(
- regional(name,Out,Ctr,Ptcir,ra,Num,Rg,opstr,opcindy,
- tmp,tmp1,tmp1,Th,Ltype,Noflg,eqL,pA,pB,pC,d1,d2,Eps);
- name="cr"+nm;
- tmp=Divoptions(options);
- Ltype=tmp_1;
- Noflg=tmp_2;
- opstr=tmp_(length(tmp)-1);
- opcindy=tmp_(length(tmp));
- eqL=tmp_5;
- Num=50;
- Rg=[0,2*pi];
- forall(eqL,
- tmp=indexof(#,"=");
- tmp1=substring(#,tmp,length(#));
- opstr=opstr+",'"+#+"'";
- if(substring(#,0,1)=="N",
- Num=parse(tmp1);
- );
- if(substring(#,0,1)=="R",
- Rg=parse(tmp1);
- );
- );
- if(length(cenrad)==2,
- Ctr=Lcrd(cenrad_1);
- Ptcir=Lcrd(cenrad_2);
- ra=dist(Ctr,Ptcir);
- ,
- Eps=10^(-1);
- pA=Lcrd(cenrad_1);
- pB=Lcrd(cenrad_2);
- pC=Lcrd(cenrad_3);
- tmp=pB-pA;
- tmp1=(tmp_2,-tmp_1);
- tmp=pC-pB;
- tmp2=(tmp_2,-tmp_1);
- d1=det([tmp1,tmp2]);
- d2=det([pC-pA,tmp2]);
- if(abs(d1)<Eps & abs(d2)>10*Eps,
- println("points are in a line");
- ra=0;
- ,
- Ctr=1/2*(pA+pB)+1/2*d2/d1*tmp1;
- ra=|pA-Ctr|;
- tmp=name+"center="+Ctr;
- parse(tmp);
- Defvar(name+"center",Ctr);
- );
- );
- if(ra>0,
- Out=[];
- forall(0..Num,
- Th=Rg_1+#*(Rg_2-Rg_1)/Num;
- Out=append(Out,Ctr+ra*[cos(Th),sin(Th)]);
- );
- ,
- Out=Lineplot("1",[pA,pB],["nodata"]);
- );
- if(Noflg<3,
- println("generate Circledata "+name);
- tmp1=apply(Out,Pcrd(#));
- tmp=name+"="+textformat(tmp1,5);
- parse(tmp);
- if(length(cenrad)==2,
- tmp=name+"=Circledata("+cenrad+opstr+")";
- ,
- if(ra>0,
- tmp=name+"=Circledata(["+Ctr+","+cenrad_1+"]"+opstr+")";
- ,
- tmp=name+"=Lineplot("+cenrad_1+","+cenrad_2+")";
- );
- );
- GLIST=append(GLIST,tmp);
- );
- if(Noflg<2,
- if(isstring(Ltype),
- Ltype=GetLinestyle(text(Noflg)+Ltype,name);
- ,
- if(Noflg==1,Ltype=0);
- );
- GCLIST=append(GCLIST,[name,Ltype,opcindy]);
- );
- Out;
-);
-
-Framedata():=(
- regional(pA,pB);
- pA=LLcrd((SW+NE)/2); // 15.09.17
- pB=LLcrd(NE);
- Framedata("win",[pA,pB]);
-);
-Framedata(list):=Framedata(list,[]);
-Framedata(Arg1,Arg2):=(
- regional(name,list,options,str);
- if(isstring(Arg1),
- name=Arg1;
- list=Arg2;
- Framedata(name,list,[]);
- ,
- list=Arg1;
- options=Arg2;
- name="";// 16.10.07from
- forall(list,
- name=name+#.name;
- );// 16.10.07upto
- Framedata(name,list,options);
- );
-);
-
-Framedata(nm,list,options):=(
-//help:Framedata();
-//help:Framedata([A,B]);
-//help:Framedata("1",[A,B]);
-//help:Framedata("1",[C,dx,dy]);
- regional(name,Out,tmp,tmp1,pB,x1,x2,y1,y2,dx,dy,
- opcindy,Ltype,Noflg,cent,dx,dy);
- name="fr"+nm;
- tmp=Divoptions(options);
- Ltype=tmp_1;
- Noflg=tmp_2;
- opcindy=tmp_(length(tmp));
- if(length(list)==2, // 15.05.12
- pA=Lcrd(list_1); pB=Lcrd(list_2);
- dx=abs(pB_1-pA_1); dy=abs(pB_2-pA_2);
- ,
- pA=Lcrd(list_1);
- dx=list_2; dy=list_3;
- );
- x1=pA_1-dx; x2=pA_1+dx;
- y1=pA_2-dy; y2=pA_2+dy;
- Out=[[x1,y1],[x2,y1],[x2,y2],[x1,y2],[x1,y1]];
- if(Noflg<3,
- println("generate Framedata "+name);
- tmp1=apply(Out,Pcrd(#));
- tmp=name+"="+textformat(tmp1,5);
- parse(tmp);
- GLIST=append(GLIST,name+"=Framedata("+pA+","+dx+","+dy+")");
- );
- if(Noflg<2,
- if(isstring(Ltype),
- Ltype=GetLinestyle(text(Noflg)+Ltype,name);
- ,
- if(Noflg==1,Ltype=0);
- );
- GCLIST=append(GCLIST,[name,Ltype,opcindy]);
- );
- Out;
-);
-Framedata(nm,cent,dx,dy):=Framedata(nm,cent,dx,dy,[]);
-Framedata(nm,cent,dx,dy,options):=(
- regional(name,Out,tmp,tmp1,x1,y1,x2,y2,Ltype,opcindy,Noflg);
- name="fr"+nm;
- tmp=Divoptions(options);
- Ltype=tmp_1;
- Noflg=tmp_2;
- opcindy=tmp_(length(tmp));
- x1=cent.x-dx; x2=cent.x+dx;
- y1=cent.y-dy; y2=cent.y+dy;
- Out=[[x1,y1],[x2,y1],[x2,y2],[x1,y2],[x1,y1]];
- if(Noflg<3,
- println("generate Framedata "+name);
- tmp1=apply(Out,Pcrd(#));
- tmp=name+"="+textformat(tmp1,5);
- parse(tmp);
- GLIST=append(GLIST,name+"=Framedata("+cent.xy+","+dx+","+dy+")");
- );
- if(Noflg<2,
- if(isstring(Ltype),
- Ltype=GetLinestyle(text(Noflg)+Ltype,name);
- ,
- if(Noflg==1,Ltype=0);
- );
- GCLIST=append(GCLIST,[name,Ltype,opcindy]);
- );
- Out;
-);
-
-Framedata2(nm,list):=Framedata2(nm,list,[]);
-Framedata2(nm,list,options):=(
-//help:Framedata2("1",[A,B]);
- regional(tmp,tmp1,pC,pB);
- pC=(Lcrd(list_1)+Lcrd(list_2))/2;
- pB=Lcrd(list_2);
- Framedata(nm,[pC,pB],options);
-);
-
-Ovaldata(nm,Pdata):=Ovaldata(nm,Pdata,[]);
-Ovaldata(nm,Pdata,options):=(
-//help:Ovaldata("1",[A,B]);
-//help:Ovaldata(optios=[size]);
- regional(name,Graph,Ctr,Dx,Dy,Rc,Out,Point,Graph,
- opstr,opcindy,tmp,tmp1,tmp2,tmp3,Ltype,Noflg);
- name="ov"+nm;
- tmp=Divoptions(options);
- Ltype=tmp_1;
- Noflg=tmp_2;
- opcindy=tmp_(length(tmp));
- opstr=tmp_(length(tmp)-1);
- Rc=0.2;
- tmp1=tmp_6;
- if(length(tmp1)>0,Rc=tmp1_1*Rc);
-// if(length(tmp1)>0,Rc=tmp1_1); //15.11.15
- Ctr=Lcrd(Pdata_1);
- if(ispoint(Pdata_2) % islist(Pdata_2),
- tmp1=Lcrd(Pdata_2);
- Dx=abs(tmp1_1-Ctr_1);
- Dy=abs(tmp1_2-Ctr_2);
- ,
- Dx=Pdata_2;
- Dy=Pdata_3;
- );
- Point=Ctr+[Dx-Rc,Dy-Rc];
- tmp1=Circledata("1",[Point,Point+[Rc,0]],
- ["Rng=[0,pi/2]","Num=10","nodata"]);
- tmp2=Listplot("1",[Ctr+[Dx-Rc,Dy],Ctr+[0,Dy]],
- ["nodata"]);
- tmp3=Listplot("2",[Ctr+[Dx,0],Ctr+[Dx,Dy-Rc]],
- ["nodata"]);
- Graph=Joincrvs("1",[tmp3,tmp1,tmp2],["nodata"]);
- tmp1=Reflectdata("1",[Graph],[Ctr,Ctr+[0,1]],["nodata"]);
- Graph=Joincrvs("1",[Graph,tmp1],["nodata"]);
- tmp2=Reflectdata("2",[Graph],[Ctr,Ctr+[1,0]],
- ["nodata"]);
- Graph=Joincrvs("2",[Graph,tmp2],["nodata"]);
- if(Noflg<3,
- println("generate Ovaldata "+name);
- tmp1=apply(Graph,Pcrd(#));
- tmp=name+"="+textformat(tmp1,5);
- parse(tmp);
- GLIST=append(GLIST,
- name+"=Ovaldata("+Ctr+","+Dx+","+Dy+opstr+")");//16.01.30
- );
- if(Noflg<2,
- if(isstring(Ltype),
- Ltype=GetLinestyle(text(Noflg)+Ltype,name);
- ,
- if(Noflg==1,Ltype=0);
- );
- GCLIST=append(GCLIST,[name,Ltype,opcindy]);
- tmp1=apply(Graph,Pcrd(#));
- tmp=name+"="+textformat(tmp1,5);
- parse(tmp);
- tmp=textformat(Ctr,5)+","+textformat(Dx,5)+","+textformat(Dy,5);
- GLIST=append(GLIST,
- name+"=Ovaldata("+tmp+opstr+")");
- );
- Graph;
-);
-
-Segmark(nm,ptlist):=Segmark(nm,ptlist,[]);
-Segmark(nm,ptlist,options):=Drawsegmark(nm,ptlist,options);
-Drawsegmark(nm,ptlist):=Drawsegmark(nm,ptlist,[]);
-Drawsegmark(nm,ptlist,options):=(
-//help:Segmark("1",[A,B]);
-//help:Segmark(options=["Type=1","Width=1","Size=1"]);
- regional(name,pA,pB,wid,mid,size,tp,dir,nor,eqL,
- tmp,tmp1,tmp2);
- name="mrk"+nm;
- pA=ptlist_1;
- pB=ptlist_2;
- size=0.15;
- wid=0.05;
- tp=1;
- tmp1=Divoptions(options);
- eqL=tmp1_5;
- forall(eqL,
- tmp=indexof(#,"=");
- tmp1=substring(#,tmp,length(#));
- tmp1=parse(tmp1);
- tmp=substring(#,0,1);
- if(tmp=="S" % tmp=="s",
- size=size*tmp1;
- );
- if(tmp=="W" % tmp=="w",
- wid=wid*tmp1;
- );
- if(tmp=="T" % tmp=="t",
- tp=tmp1;
- );
- );
- mid=(pA+pB)/2;
- dir=(pB-pA)/|pB-pA|;
- nor=[-dir_2,dir_1];
-// nor=nor/|nor|;
- if(tp==1,
- tmp1=mid+size*nor;
- tmp2=mid-size*nor;
- Listplot(name,[tmp1,tmp2]);
- );
- if(tp==2,
- tmp1=mid+wid*dir+size*nor;
- tmp2=mid+wid*dir-size*nor;
- Listplot(name+"r",[tmp1,tmp2]);
- tmp1=mid-wid*dir+size*nor;
- tmp2=mid-wid*dir-size*nor;
- Listplot(name+"l",[tmp1,tmp2]);
- );
- if(tp==3,
- tmp1=mid;
- tmp2=mid+size*dir;
- Circledata(name,[tmp1,tmp2]);
- );
- if(tp==4,
- tmp=mid+size*2/sqrt(3)*nor;
- tmp1=mid+size*dir-size/sqrt(3)*nor;
- tmp2=mid-size*dir-size/sqrt(3)*nor;
- Listplot(name,[tmp,tmp1,tmp2,tmp]);
- );
-);
-
-Parabolaplot(nm,ptlist):=Parabolaplot(nm,ptlist,"[-5,5]",[]);
-Parabolaplot(nm,ptlist,Arg):=(
- regional(rng,options);
- if(isstring(Arg),
- rng=Arg;
- options=[];
- ,
- rng="[-5,5]";
- options=Arg;
- );
- Parabolaplot(nm,ptlist,rng,options);
-);
-Parabolaplot(nm,ptlist,rng,options):=(
-//help:Parabolaplot("1",[A,B,C]):
-//help:Parabolaplot("1",[A,B,C],"[-5,5]");
- regional(pA,pB,pC,angle,tmp,tmp1,tmp2);
- tmp1=Lcrd(ptlist_1);
- tmp2=Lcrd(ptlist_3);
- pB=Lcrd(ptlist_2);
- tmp=(tmp2-pB)/|tmp2-pB|;
- if(tmp_2>=0,
- angle=arccos(tmp_1);
- ,
- if(tmp_1>=0,
- angle=arcsin(tmp_2);
- ,
- angle=-arccos(tmp_1);
- );
- );
- pA=Rotatepoint(tmp1,-angle,pB);
- pC=Rotatepoint(tmp2,-angle,pB);
- tmp1=1/(2*(pA_2-pB_2));
- tmp2=1/2*(pA_2+pB_2);
- tmp="("+format(tmp1,5)+")*(x-("+format(pA_1,5)+"))^2";
- tmp=tmp+"+("+format(tmp2,5)+")";
- tmp1=parse(rng);
- tmp1=[pA_1-(tmp1_2-tmp1_1)/2,pA_1+(tmp1_2-tmp1_1)/2];
- tmp2="x="+textformat(tmp1,5);
- Plotdata(nm+"para",tmp,tmp2,append(options,"nodisp"));
- Rotatedata(nm+"para","gr"+nm+"para",angle,append(options,pB));
-);
-
-Ellipseplot(nm,ptlist):=Ellipseplot(nm,ptlist,"[0,2*pi]",[]);
-Ellipseplot(nm,ptlist,Arg):=(
- regional(rng,options);
- if(isstring(Arg),
- rng=Arg;
- options=[];
- ,
- rng="[0,2*pi]";
- options=Arg;
- );
- Ellipseplot(nm,ptlist,rng,options);
-);
-Ellipseplot(nm,ptlist,rng,options):=(
-//help:Ellipseplot("1",[A,B,3]);
-//help:Ellipseplot("1",[A,B,C],"[0,pi]",[options]);
- regional(pA,pB,d,angle,f,a,b,pM,tmp,tmp1,tmp2);
- pA=Lcrd(ptlist_1);
- tmp1=Lcrd(ptlist_2);
- if(ispoint(ptlist_3),
- tmp2=Lcrd(ptlist_3);
- d=|tmp2-pA|+|tmp2-tmp1|;
- ,
- d=ptlist_3;
- );
- tmp=(tmp1-pA)/|tmp1-pA|;
- if(tmp_2>=0,
- angle=arccos(tmp_1);
- ,
- if(tmp_1>=0,
- angle=arcsin(tmp_2);
- ,
- angle=-arccos(tmp_1);
- );
- );
- pB=Rotatepoint(tmp1,-angle,pA);
- f=|pB_1-pA_1|/2;
- a=d/2;
- b=sqrt(d^2/4-f^2);
- pM=(pA+pB)/2;
- tmp="["+format(pM_1,5)+","+format(pM_2,5)+"]";
- tmp=tmp+"+["+format(a,5)+"*cos(t),"+format(b,5)+"*sin(t)]";
- Paramplot(nm+"elp",tmp,"t="+rng,append(options,"nodisp"));
- Rotatedata(nm+"elp","gp"+nm+"elp",angle,append(options,pA));
-);
-
-Hyperbolaplot(nm,ptlist):=Hyperbolaplot(nm,ptlist,"[-5/2,5/2]",[]);
-Hyperbolaplot(nm,ptlist,Arg):=(
- regional(rng,options);
- if(isstring(Arg),
- rng=Arg;
- options=[];
- ,
- rng="[-5/2,5/2]";
- options=Arg;
- );
- Hyperbolaplot(nm,ptlist,rng,options);
-);
-Hyperbolaplot(nm,ptlist,rng,optionsorg):=(
-//help:Hyperbolaplot("1",[A,B,C],["Num=200"]):
-//help:Hyperbolaplot("1",[A,B,C],"[-5,5]",["Asy=do"]);
- regional(pA,pB,d,angle,f,a,b,pM,eqL,options,opasy,tmp,tmp1,tmp2);
- tmp=Divoptions(optionsorg);
- eqL=tmp_5;
- options=optionsorg;
- opasy=[];
- forall(eqL,
- if(Toupper(substring(#,0,1))=="A",
- tmp=indexof(#,"=");
- opasy=[substring(#,tmp,length(#))];
- options=remove(options,[#]);
- );
- );
- pA=Lcrd(ptlist_1);
- tmp1=Lcrd(ptlist_2);
- if(ispoint(ptlist_3),
- tmp2=Lcrd(ptlist_3);
- d=abs(|tmp2-pA|-|tmp2-tmp1|);
- ,
- d=ptlist_3;
- );
- tmp=(tmp1-pA)/|tmp1-pA|;
- if(tmp_2>=0,
- angle=arccos(tmp_1);
- ,
- if(tmp_1>=0,
- angle=arcsin(tmp_2);
- ,
- angle=-arccos(tmp_1);
- );
- );
- pB=Rotatepoint(tmp1,-angle,pA);
- f=|pB_1-pA_1|/2;
- a=d/2;
- b=sqrt(f^2-d^2/4);
- pM=(pA+pB)/2;
- tmp="["+format(pM_1,5)+"+"+format(a,5)+"*(exp(t)+exp(-t))/2,";
- tmp=tmp+format(pM_2,5)+"+"+format(b,5)+"*(exp(t)-exp(-t))/2]";
- Paramplot(nm+"hyp1",tmp,"t="+rng,append(options,"nodisp"));
- tmp="["+format(pM_1,5)+"-"+format(a,5)+"*(exp(t)+exp(-t))/2,";
- tmp=tmp+format(pM_2,5)+"+"+format(b,5)+"*(exp(t)-exp(-t))/2]";
- Paramplot(nm+"hyp2",tmp,"t="+rng,append(options,"nodisp"));
- tmp=["gp"+nm+"hyp1","gp"+nm+"hyp2"];
- Rotatedata(nm+"hyp",tmp,angle,append(options,pA));
- if(length(opasy)>0,
- Lineplot(nm+"asy1",[pM+[a,b],pM+[-a,-b]],["nodisp"]);
- Lineplot(nm+"asy2",[pM+[-a,b],pM+[a,-b]],["nodisp"]);
- tmp=["ln"+nm+"asy1","ln"+nm+"asy2"];
- Rotatedata(nm+"asy",tmp,angle,append(opasy,pA));
- );
-);
-
-Polygonplot(nm,ptlist,number):=Polygonplot(nm,ptlist,number,[]);
-Polygonplot(nm,ptlist,number,options):=(
-//help:Polygonplot("1",[A,B],12);
- regional(rr,pA,pB,ptL,angle,tmp,tmp1,tmp2);
- pA=Lcrd(ptlist_1);
- pB=Lcrd(ptlist_2);
- rr=|pB-pA|;
- tmp=(pB-pA)/rr;
- if(tmp_2>=0,
- angle=arccos(tmp_1);
- ,
- if(tmp_1>=0,
- angle=arcsin(tmp_2);
- ,
- angle=-arccos(tmp_1);
- );
- );
- ptL=[];
- forall(0..number,
- tmp=angle+#*2*pi/number;
- tmp1=pA+rr*[cos(tmp),sin(tmp)];
- if(#>0 & #<number,
- Putpoint((ptlist_2).name+text(#),tmp1);//16.10.07
- //Pointdata(nm,ptL);
- );
- tmp2=tmp1;
- ptL=append(ptL,tmp1);
- );
- Listplot(nm+"ply",ptL,options);
-);
-
-Putintersect(nm,pdata1,pdata2):=(
-//help:Putintersect("Q","gr1","gr2");
- regional(pd1,pd2,tmp);
- if(isstring(pdata1),pd1=parse(pdata1),pd1=pdata1);
- if(isstring(pdata2),pd2=parse(pdata2),pd2=pdata2);
- tmp=Intersectcrvs(pd1,pd2);
- if(length(tmp)==1,
- Putpoint(nm,tmp_1);
- ,
- if(length(tmp)==0,
- err("No intersect point");
- ,
- err("Multiple intersect points");
- println(tmp);
- err("Choose point number");
- );
- );
-);
-Putintersect(nm,pdata1,pdata2,ptno):=(
- regional(pd1,pd2,tmp);
- if(isstring(pdata1),pd1=parse(pdata1),pd1=pdata1);
- if(isstring(pdata2),pd2=parse(pdata2),pd2=pdata2);
- tmp=Intersectcrvs(pd1,pd2);
- if(length(tmp)>0,
- Putpoint(nm,tmp_ptno);
- ,
- err("No intersect point");
- );
-);
-
-Arrowheaddata(point,direction):=Arrowheaddata(point,direction,[]);
-Arrowheaddata(point,direction,options):=(
-//help:Arrowheaddata(A,B);
- regional(list,Ookisa,Hiraki,Futosa,Houkou,Str,Flg,tmp,Ev,Nv,pA,pB,
- pP,rF,gG,Flg,Nj,Eps,tmp1,scx,scy);
- Eps=10^(-3);
- pP=point;
- Ookisa=0.2*YaSize;
- Hiraki=YaAngle;
- Futosa=0;
- Str=YaStyle;
- tmp=Divoptions(options);
- tmp1=tmp_6;
- if(length(tmp1)>0,Ookisa=Ookisa*tmp1_1);
- if(length(tmp1)>1,
- tmp=tmp1_2;
- if(tmp<5,
- Hiraki=Hiraki*tmp;
- ,
- Hiraki=tmp;
- );
- );
- Flg=0;
- Hiraki=Hiraki*pi/180;
- if(isstring(direction),Houkou=parse(direction),Houkou=direction);
- if(MeasureDepth(Houkou)==2,Houkou=Houkou_1);
- if(islist(Houkou_1),
-// pP=Lcrd(pP);
-// pP=Doscaling(pP);
-// Houkou=Dosscaling(Houkou);
- pP=Pcrd(pP);
- scy=SCALEY;
- SCALEY=1;
- tmp=Nearestpt(pP,Houkou);
- pA=tmp_1;
- rF=floor(tmp_2);
- if(rF==1,
- if(|Ptend(Houkou)-Ptstart(Houkou)|<Eps,
- rF=Numptcrv(Houkou);
- );
- );
- gG=apply(0..10,pP+Ookisa*cos(Hiraki)*[cos(2*pi/10*#),sin(2*pi/10*#)]);
- Flg=0;
- forall(1..rF,Nj,
- if(Flg==0,
- pB=Ptcrv(rF+1-Nj,Houkou);
- tmp=IntersectcrvsPp([pA,pB],gG);
- if(length(tmp)>0,
- Houkou=pP-tmp_1_1;
- Flg=1;
- );
- pA=pB;
- );
- );
- SCALEY=scy;
- if(Flg==0,
- println("Arrowhead may be too large (no intersect)");
- Flg=2;
- );
- if(Flg==1,
- Houkou=Unscaling(Houkou);
- pP=Unscaling(pP);
- );
- );
- if(Flg<2,
-// pP=Doscaling(pP);
-// Houkou=Doscaling(Houkou);
- pP=Pcrd(pP);
- if(!ispoint(point),
- Houkou=Pcrd(Houkou);
- );
-// if(MeasureDepth(Houkou)==0,Houkou=Pcrd(Houkou));
- Ev=-1/|Houkou|*Houkou;
- Ev=Lcrd(Ev);
- Nv=[-Ev_2, Ev_1];
- if(indexof(Str,"c")>0,
- pP=pP-0.5*Ookisa*cos(Hiraki)*Ev;
- );
- if(indexof(Str,"b")>0,
- pP=pP-Ookisa*cos(Hiraki)*Ev;
- );
- pA=pP+Ookisa*cos(Hiraki)*Ev+Ookisa*sin(Hiraki)*Nv;
- pB=pP+Ookisa*cos(Hiraki)*Ev-Ookisa*sin(Hiraki)*Nv;
- list=[pA,pP,pB];
- list=apply(list,LLcrd(#));
-// Out=Unscaling(Out);
- list;
- );
-);
-
-Arrowhead(point,Houkou):=Arrowhead(point,Houkou,[]);
-Arrowhead(point,Houkou,options):=(
-//help:Arrowhead(B,B-A,[1.5,30]);
-//help:Arrowhead(A,"gr1");
- // global ArrowheadNumber
- regional(name,Ltype,Noflg,reL,opstr,opcindy,ptstr,hostr,tmp,tmp1,list);
- name="arh"+text(ArrowheadNumber);
- ArrowheadNumber=ArrowheadNumber+1;
- ptstr=textformat(point,5);
- if(isstring(Houkou), // 15.01.11
- tmp=parse(Houkou);
- if(MeasureDepth(tmp)<2,
- hostr=Houkou;
- ,
- hostr=Houkou+"(1)";
- );
- ,
- if(ispoint(point),
- hostr=textformat(LLcrd(Houkou),5);
- ,
- hostr=textformat(Houkou,5);
- );
- );
- tmp=Divoptions(options);
- Ltype=tmp_1;
- Noflg=tmp_2;
- reL=tmp_6;
- opstr=tmp_(length(tmp)-1);
- opcindy=tmp_(length(tmp));
- list=Arrowheaddata(point,Houkou,options);
- if(Noflg<3,
-// println("generate Arrowhead "+name);
- tmp1=apply(list,Pcrd(#));
- tmp=name+"="+textformat(tmp1,5);
- parse(tmp);
-// GLIST=append(GLIST,name+"=Listplot("+list+")");
- );
- if(Noflg<2,
- if(isstring(Ltype),
- Ltype=GetLinestyle(text(1)+Ltype,name);
- ,
-// if(Noflg==1,Ltype=0);
- Ltype=0;
- );
- GCLIST=append(GCLIST,[name,Ltype,opcindy]);
- );
- if(Noflg==0,
- if(length(reL)<3, // 16.04.09 from
- forall(1..(2-length(reL)),
- opstr=opstr+",1";
- );
- tmp=PenThick/PenThickInit;
- opstr=opstr+","+text(tmp);
- ); // 16.04.09 upto
- Com2nd("Arrowhead("+ptstr+","+hostr+opstr+")");
- );
-);
-
-Arrowdata(ptlist):=Arrowdata(ptlist,[]);
-Arrowdata(Arg1,Arg2):=(
- regional(tmp,nm,ptlist,flg,pA,pB,options);
- flg=0;
- if(isstring(Arg1),
- nm=Arg1;
- ptlist=Arg2;
- Arrowdata(nm,ptlist,[]);
- flg=1;
- );
- if(flg==0,
- tmp=MeasureDepth(Arg1);
- if(tmp==0,
- pA=Arg1;
- pB=Arg2;
- Arrowdata(pA,pB,[]);
- ,
- ptlist=Arg1;
- options=Arg2;
- nm=text(ArrowlineNumber);
- ArrowlineNumber=ArrowlineNumber+1;
- Arrowdata(nm,ptlist,options);
- );
- );
-);
-Arrowdata(Arg1,Arg2,options):=(
-//help:Arrowdata([A,B],[2,10]);
- regional(Retflg,nm,ptlist,name,opstr,opcindy,realL,strL,size,
- flg,Ltype,Noflg,lineflg,tmp,tmp1,tmp2,pA,pB,segpos);
- Retflg=0;
- Noflg=0;
- Ltype=0;
- if(!isstring(Arg1),
- pA=Arg1;
- pB=Arg2;
- Arrowdata(pA,pB,options,"old");
- Retflg=1;
- ptlist=[pA,pB];
- );
- if(Retflg==0,
- nm=Arg1;
- ptlist=Arg2;
- name="ar"+nm;
- tmp=Divoptions(options);
- Ltype=tmp_1;
- Noflg=tmp_2;
- realL=tmp_6;
- strL=tmp_7;
- opstr=tmp_(length(tmp)-1);
- opcindy=tmp_(length(tmp));
- size=1; // 15.06.11
- if(length(realL)>0,
- size=realL_1;
- );
- tmp2=select(strL,indexof(#,"l")>0); // 16.04.09
- if(length(tmp2)>0,lineflg=1,lineflg=0); // 16.04.09
- segpos=1;
- tmp1=tmp_5;
- if(length(tmp1)>2,
- segpos=tmp1_3;
- );
- if(Noflg<3,
-// println("generate Arrowdata "+name);
- tmp1=apply(ptlist,Pcrd(#));
- tmp=name+"="+textformat(tmp1,5);
- parse(tmp);
- tmp1=Pcrd(ptlist_1);//16.10.20
- tmp2=Pcrd(ptlist_2);//16.10.20
- if(lineflg==0, // 16.04.09 from
- tmp=tmp2-0.2*size/2*(tmp2-tmp1)/|tmp2-tmp1|; // 15.06.11
- ,
- tmp=tmp2;
- ); // 16.04.09 upto
- tmp=[LLcrd(tmp1),LLcrd(tmp)];//16.10.20
- GLIST=append(GLIST,name+"=Listplot("+textformat(tmp,5)+")");
- );
- if(Noflg<2,
- if(isstring(Ltype),
- Ltype=GetLinestyle(text(Noflg)+Ltype,name);
- ,
- if(Noflg==1,Ltype=0);
- );
- tmp=textformat(ptlist,5);
- tmp=substring(tmp,1,length(tmp)-1);
- tmp1=indexof(tmp,"],[");
- if(tmp1>0,
- pA=substring(tmp,0,tmp1);
- pB=substring(tmp,tmp1+1,length(tmp));
- ,
- tmp1=indexof(tmp,",");
- pA=substring(tmp,0,tmp1-1);
- pB=substring(tmp,tmp1,length(tmp));
- );
- tmp1="Lcrd("+pA+")+"
- +textformat(segpos,5)+"*(Lcrd("+pB+")-"+"Lcrd("+pA+"))";
- tmp1=parse(tmp1);
- tmp2="Lcrd("+pB+")-Lcrd("+pA+")";
- tmp2=parse(tmp2);
- Arrowhead(tmp1,tmp2,options);
- GCLIST=append(GCLIST,[name,Ltype,opcindy]);
- );
- );
- ptlist;
-);
-Arrowdata(pA,pB,options,str):=(
- regional(ptA,ptB,opstr,Astr,Bstr,name,tmp,opcindy);
- Astr=textformat(pA,5);
- Bstr=textformat(pB,5);
- name="ar"+pA.name+pB.name;
- println("generate Arrow "+name);
- opstr="";
- opcindy="";
- forall(options,
- if(isstring(#),
- if(indexof(#,"->")>0,
- opcindy=opcindy+","+#;
- ,
- tmp="'"+#+"'";
- );
- ,
- tmp=text(#);
- );
- opstr=opstr+","+tmp;
- );
- ptA=Lcrd(pA);
- ptB=Lcrd(pB);
- Arrowheaddata(ptB,ptB-ptA,options);
- tmp="connect("+textformat([ptA,ptB],5)
- +",linecolor->"+text(KCOLOR)+opcindy+");";
- parse(tmp); // 14.11.17
- Com2nd("Arrowline("+Astr+","+Bstr+opstr+")"); // 14.10.04
-);
-
-Anglemark(plist):=Anglemark(plist,[]);
-Anglemark(Arg1,Arg2):=( // 2015.04.28 from
- regional(nm,plist,options,tmp);
- if(isstring(Arg1),
- nm=Arg1;
- plist=Arg2;
- Anglemark(nm,plist,[]);
- ,
- plist=Arg1;
- options=Arg2;
- tmp=textformat(plist,5);
- tmp=replace(tmp,",","");
- nm=substring(tmp,1,length(tmp)-1);
- Anglemark(nm,plist,options);
- );
-); // upto
-Anglemark(nm,plist,options):=(
-//help:Anglemark([A,B,C],["E=\theta",2]);
-//help:Anglemark("1",[A,B,C],["E=1.2,\theta",2]);
-//help:Anglemark(options=["E/L=(sep,)letter",size]);
- regional(name,Out,pB,pA,pC,Ctr,ra,sab,sac,ratio,opstr,Bname,Bpos,
- Brat,tmp,tmp1,tmp2,Num,opcindy,Ltype,eqL,realL,Rg,Th,Noflg);
- name="ag"+nm;
- ra=0.5;
- tmp=Divoptions(options);
- Ltype=tmp_1;
- Noflg=tmp_2;
- opstr=tmp_(length(tmp)-1);
- opcindy=tmp_(length(tmp));
- eqL=tmp_5;
- realL=tmp_6;
- Bname="";
- Brat=1.5;
- Num=20;
- if(length(realL)>0,
- ra=realL_1*ra;
- opstr=opstr+","+text(realL_1);
- );
- forall(eqL,
- if(substring(#,0,1)=="L",Bname="Letter(");
- if(substring(#,0,1)=="E",Bname="Expr(");
- Bpos="md"+name;
- Bname=Bname+Bpos+","+Dq+"c"+Dq+","+Dq;//16.10.29
- tmp=substring(#,indexof(#,"="),length(#));
- tmp1=indexof(tmp,",");
- Bname=Bname+substring(tmp,tmp1,length(tmp))+Dq+")";
- if(tmp1>0,
- Brat=parse(substring(tmp,0,tmp1-1));
- );
- );
- pB=Lcrd(plist_1); pA=Lcrd(plist_2); pC=Lcrd(plist_3);
- Ctr=Lcrd(pA);
- sab=pB-pA;
- sac=pC-pA;
- Rg=[arctan2(sab)+0,arctan2(sac)+0];
- if(Rg_2<Rg_1,Rg_2=Rg_2+2*pi);
- Out=[];
- forall(0..Num,
- Th=Rg_1+#*(Rg_2-Rg_1)/Num;
- Out=append(Out,Ctr+ra*[cos(Th),sin(Th)]);
- );
- if(length(Bname)>0,
- Th=(Rg_1+Rg_2)/2;
- tmp1=Ctr+Brat*ra*[cos(Th),sin(Th)];
- tmp="Defvar("+Dq+Bpos+"=";
- tmp=tmp+textformat(tmp1,5)+Dq+");";
- parse(tmp);
- parse(Bname);
- );
- if(Noflg<3,
- println("generate anglemark "+name);
- tmp1=apply(Out,Pcrd(#));
- tmp=name+"="+textformat(tmp1,5);
- parse(tmp);
- tmp=textformat(plist,5);
- tmp1=substring(tmp,1,length(tmp)-1);
- tmp=name+"=Anglemark("+tmp1+opstr+")";
- GLIST=append(GLIST,tmp);
- );
- if(Noflg<2,
- if(isstring(Ltype),
- Ltype=GetLinestyle(text(Noflg)+Ltype,name);
- ,
- if(Noflg==1,Ltype=0);
- );
- GCLIST=append(GCLIST,[name,Ltype,opcindy]);
- );
- Out;
-);
-
-Paramark(plist):=Paramark(plist,[]);
-Paramark(plist,options):=(
-//help:Paramark([A,B,C],["E=\theta"]);
- regional(name,Out,pB,pA,pC,ra,sab,sac,ratio,opstr,Bname,Bpos,
- Brat,tmp,tmp1,tmp2,Ltype,Noflg,eqL,realL,opcindy);
- tmp=textformat(plist,5);
- tmp=replace(tmp,",","");
- tmp=substring(tmp,1,length(tmp)-1);
- name="pm"+tmp;
- tmp=Divoptions(options);
- Ltype=tmp_1;
- Noflg=tmp_2;
- opstr=tmp_(length(tmp)-1);
- opcindy=tmp_(length(tmp));
- eqL=tmp_5;
- realL=tmp_6;
- ra=0.5;
- Bname="";
- Brat=1.2;
- if(length(realL)>0,
- tmp=realL_1;
- ra=tmp*ra;
- opstr=opstr+","+text(tmp);
- );
- forall(eqL,
- if(substring(#,0,1)=="L",Bname="Letter(");
- if(substring(#,0,1)=="E",Bname="Expr(");
- Bpos="md"+name;
- Bname=Bname+Dq+Bpos+Dq+","+Dq+"c"+Dq+","+Dq;
- tmp=substring(#,indexof(#,"="),length(#));
- tmp1=indexof(tmp,",");
- Bname=Bname+substring(tmp,tmp1,length(tmp))+Dq+")";
- if(tmp1>0,
- Brat=parse(substring(tmp,0,tmp1-1));
- );
- );
- pB=Lcrd(plist_1); pA=Lcrd(plist_2); pC=Lcrd(plist_3);
- Ctr=Lcrd(pA);
- Out=[];
- Out=append(Out,pA+ra*(pB-pA)/|pB-pA|);
- Out=append(Out,pA+ra*(pB-pA)/|pB-pA|+ra*(pC-pA)/|pC-pA|);
- Out=append(Out,pA+ra*(pC-pA)/|pC-pA|);
- if(length(Bname)>0,
- tmp1=pA+Brat*ra*(pB-pA)/|pB-pA|+Brat*ra*(pC-pA)/|pC-pA|;
- tmp="Defvar("+Dq+Bpos+"="+textformat(tmp1,5)+Dq+");";
- parse(tmp);
- parse(Bname);
- );
- if(Noflg<3,
- println("generate paramark "+name);
- tmp1=apply(Out,Pcrd(#));
- tmp=name+"="+textformat(tmp1,5);
- parse(tmp);
- tmp1=substring(textformat(plist,5),1,length(textformat(plist,5))-1);
- tmp=name+"=Paramark("+tmp1+opstr+")";
- GLIST=append(GLIST,tmp);
- );
- if(Noflg<2,
- if(isstring(Ltype),
- Ltype=GetLinestyle(text(Noflg)+Ltype,name);
- ,
- if(Noflg==1,Ltype=0);
- );
- GCLIST=append(GCLIST,[name,Ltype,opcindy]);
- );
- Out;
-);
-
-MakeBowdata(pA,pB,Hgt):=(
- regional(angle,pB2,pH2,pC2,pC,tmp,Th1,Th2,ra,dMA);
- angle=arctan2(pB-pA)+0;
- pB2=Rotatepoint(pB,-angle,pA);
- tmp=Lcrd(pA);
- pH2=[(tmp_1+pB2_1)/2,tmp_2-Hgt];
- dMA=|tmp-pB2|/2;
- ra=(dMA^2+Hgt^2)/(2*Hgt);
- pC2=[pH2_1,pB2_2+(ra-Hgt)];
- pC=Rotatepoint(pC2,angle,pA);
- Th1=arctan2(pA-pC2)+angle;
- Th2=arctan2(pB2-pC2)+angle;
- [pC,ra,Th1,Th2];
-);
-
-Bowdata(nm,plist,options):=(
-//help:Bowdata([C,A],[2,1.2,"Expr=10","da"]);
-//help:Bowdata([A,B],["Expr=t0n3,a"]);
-//help:Bowdata([A,B],["Exprrot=t0n2r,a"]);
- regional(name,Out,pB,pA,pC,ra,tmp,tmp1,tmp2,Ltype,eqL,realL,
- Bname,Bpos,Th,Cut,Num,Hgt,opstr,opcindy,Ydata,pC,
- Th1,Th2,Noflg,Bops,Bmov,Tmov,Nmov,rev);
- name="bw"+nm;
- tmp=Divoptions(options);
- Ltype=tmp_1;
- Noflg=tmp_2;
- opstr=tmp_(length(tmp)-1);
- opcindy=tmp_(length(tmp));
- eqL=tmp_5;
- realL=tmp_6;
- pA=Lcrd(plist_1); pB=Lcrd(plist_2);
- Hgt=1/2*|pB-pA|*0.2;
- Cut=0;
- Num=24;
- Bname="";
- Tmov=0;//16.11.01from
- Nmov=0;
- Bmov="";
- rev=0;//16.11.01upto
- if(length(realL)>0,
- Hgt=realL_1*Hgt; // 15.04.12
- if(length(realL)>1,Cut=realL_2);
- );
- forall(eqL,
- tmp=substring(#,0,1);
- if(tmp=="L" % tmp=="l",
- if(indexof(#,"rot")>0,
- Bname="Letterrot(";
- ,
- Bname="Letter(";
- );
- );
- if(tmp=="E" % tmp=="e",
- if(indexof(#,"rot")>0,
- Bname="Exprrot(";
- ,
- Bname="Expr(";
- );
- );
- tmp=indexof(#,"=");
- Bops=substring(#,tmp,length(#)); // 16.11.01
- );
- Ydata=MakeBowdata(pA,pB,Hgt);
- pC=Ydata_1;
- ra=Ydata_2;
- Th=(Ydata_3+Ydata_4)*0.5;
- BOWMIDDLE=[pC_1+ra*cos(Th),pC_2+ra*sin(Th)];
- Bpos="md"+name; // 16.10.31from(moved)
- tmp="Defvar("+Dq+Bpos+"="+textformat(BOWMIDDLE,5)+Dq+");";
- parse(tmp);// 16.10.31upto(moved)
- if(length(Bname)>0, //16.11.01from
- tmp=indexof(Bops,",");
- if(tmp>0,
- tmp1=substring(Bops,0,tmp-1);
- if(length(tmp1)>=4 & substring(tmp1,0,1)=="t" & indexof(tmp1,"n")>0,
- Bmov=tmp1;
- Bops=substring(Bops,tmp,length(Bops));
- );
- );
- if(length(Bmov)>0,
- tmp=indexof(Bmov,"t");
- if(tmp>0,
- tmp1=indexof(Bmov,"n");
- Tmov=parse(substring(Bmov,tmp,tmp1-1));
- tmp=indexof(Bmov,"r");
- if(tmp>0,
- Nmov=parse(substring(Bmov,tmp1,tmp-1));
- rev=1;
- ,
- Nmov=parse(substring(Bmov,tmp1,length(Bmov)));
- );
- );
- );
- Bname=Bname+Bpos;//16.11.01
- if(abs(Tmov)+abs(Nmov)>0,
- tmp=Pcrd(pA)-Pcrd(pB);
- tmp1=1/norm(tmp)*tmp;
- tmp2=[-tmp1_2,tmp1_1];
- tmp=MARKLEN*(Tmov*tmp1+Nmov*tmp2);
- tmp=LLcrd(tmp);
- Bname=Bname+"+"+text(tmp);
- );
- Bname=Bname+",";
- if(indexof(Bname,"rot")>0,
- if(rev==1,tmp=pB-pA,tmp=pA-pB);
- Bname=Bname+textformat(tmp,5)+",";
- ,
- Bname=Bname+Dq+"c"+Dq+",";
- );
- Bname=Bname+Dq+Bops+Dq+")";
- parse(Bname);
- );//16.11.01upto
- if(Cut==0,
- Th1=Ydata_3;
- Th2=Ydata_4;
- Out=[];
- forall(0..Num,
- tmp=Th1+#*(Th2-Th1)/Num;
- Out=append(Out,pC+ra*[cos(tmp),sin(tmp)]);
- );
- ,
- Th1=Ydata_3;
- Th2=Th-Cut/(2*ra);
- tmp1=[];
- forall(0..Num/2,
- tmp=Th1+#*(Th2-Th1)/(Num/2);
- tmp1=append(tmp1,pC+ra*[cos(tmp),sin(tmp)]);
- );
- Th1=Th+Cut/(2*ra);
- Th2=Ydata_4;
- tmp2=[];
- forall(0..Num/2,
- tmp=Th1+#*(Th2-Th1)/(Num/2);
- tmp2=append(tmp2,pC+ra*[cos(tmp),sin(tmp)]);
- );
- Out=[tmp1,tmp2];
- );
- if(Noflg<3,
- println("generate bowdata "+name+" and "+Bpos);//16.10.31
- if(MeasureDepth(Out)==1,Out=[Out]);
- tmp1=[];
- forall(Out,tmp2,
- tmp=apply(tmp2,Pcrd(#));
- tmp1=append(tmp1,tmp);
- );
- tmp=name+"="+textformat(tmp1,5);
- parse(tmp);
- tmp1=substring(textformat(plist,5),1,length(textformat(plist,5))-1);
- tmp=name+"=Bowdata("+tmp1+opstr+")";
- GLIST=append(GLIST,tmp);
- );
- if(Noflg<2,
- if(isstring(Ltype),
- Ltype=GetLinestyle(text(Noflg)+Ltype,name);
- ,
- if(Noflg==1,Ltype=0);
- );
- GCLIST=append(GCLIST,[name,Ltype,opcindy]);
- );
-);
-
-Deqplot(nm,deq,rng,initf):=Deqplot(nm,deq,rng,Lcrd(initf)_1,initf,[]);
-Deqplot(nm,deq,rng,Arg1,Arg2):=(
- regional(initt,initf,options);
- if(isreal(Arg1) & length(Arg1)==1,
- initt=Arg1;
- initf=Arg2;
- options=[];
- ,
- initf=Lcrd(Arg1);
- initt=initf_1;
- options=Arg2;
- );
- Deqplot(nm,deq,rng,initt,initf,options);
-);
-Deqplot(nm,deq,rng,initt,initf,options):=(
- regional(name,Noflg,Ltype,eqL,opstr,opcindy,pdL,var2,deq2,rng2,initt2,initf2,
- tmp,tmp1,tmp2,tmp3,tmp4);
- tmp=tokenize(deq,"=");
- tmp1=tmp_1;
- tmp2=tmp_2;
- tmp3=tokenize(tmp1,"`");
- if(length(tmp3)==2,
- if(indexof(tmp1,"[")>0,
- Deqplot(nm,deq,rng,initt,initf,options,[2,3]);
- ,
- if(indexof(rng,"=")>0,rng2=rng,rng2=rng+"=[XMIN,XMAX]");
- tmp=tokenize(rng2,"=");
- deq2="["+tmp_1+","+replace(tmp1,"`","]")+"`=[1,"+tmp2+"]";
- rng2="t="+tmp_2;
- if(isreal(initf) & length(initf)==1,
- initf2=[initt,initf];
- initt2=initt;
- ,
- initf2=Lcrd(initf));
- initt2=initf2_1;
- Deqplot(nm,deq2,rng2,initt2,initf2,options,[2,3]);
- );
- ,
- name="de"+nm;
- tmp=Divoptions(options);
- Ltype=tmp_1;
- Noflg=tmp_2;
- eqL=tmp_5;
- opcindy=tmp_9;
- opstr="";
- forall(eqL,
- if(Toupper(substring(#,0,1))=="N",
- tmp=indexof(#,"=");
- tmp1="N="+substring(#,tmp,length(#));
- opstr=opstr+",'"+tmp1+"'";
- );
- );
- if(Noflg<1,
- if(indexof(rng,"=")>0,rng2=rng,rng2=rng+"=[XMIN,XMAX]");
- var2="d"+tmp3_1;
- deq2="["+tmp3_1+","+var2+"]`=[";
- tmp=replace(tmp2,tmp3_1+"`",var2);
- deq2=deq2+var2+","+tmp+"]";
- Deqplot(nm,deq2,rng2,initt,initf,append(options,"nodisp"),[1,2]);
- parse(tmp);
- tmp=name+"=Deqplot(Assign("+Dq+deq+Dq+"),'"+rng+"',";
- tmp=tmp+initt+","+initf+opstr+")";
- GLIST=append(GLIST,tmp);
- );
- if(Noflg<2,
- if(isstring(Ltype),
- Ltype=GetLinestyle(text(Noflg)+Ltype,name);
- ,
- if(Noflg==1,Ltype=0);
- );
- GCLIST=append(GCLIST,[name,Ltype,opcindy]);
- parse("de"+nm);
- );
- );
-);
-Deqplot(nm,deq,rng,initt,initf,options,Sel):=(
-//help:Deqplot("2","y`=y*(1-y)","x",0, 0.5,["Num=100"]);
-//help:Deqplot("1","y``=-y","x",0, [1,0]);
-//help:Deqplot("3","[x,y]`=[x*(1-y),0.3*y*(x-1)]","t=[0,20]",[1,0.5]);
- regional(Ltype,Noflg,Inflg,Outflg,strL,opstr,opcindy,Num,
- outstr,name,func,xf,yf,pdL,Eps,Inf,t1,t2,tt,Vname,dt,funP,funN,flg,
- kl1,kl2,kl3,kl4,x0,y0,x1,y1,tmp,tmp1,tmp2);
- name="de"+nm;
- tmp=Divoptions(options);
- Ltype=tmp_1;
- Noflg=tmp_2;
- Inflg=tmp_3;
- Outflg=tmp_4;
- eqL=tmp_5;
- strL=tmp_7;
-// opstr=tmp_(length(tmp)-1);
- opstr="";
- opcindy=tmp_(length(tmp));
- outstr="";
- forall(strL,
- tmp=Toupper(substring(#,0,1));
- if(tmp=="S",
- outstr="Sci";
- );
- );
- Num=50;
- forall(eqL,
- tmp=indexof(#,"=");
- tmp2=substring(#,0,1);
- tmp2=Toupper(tmp2);
- tmp1=substring(#,tmp,length(#));
- opstr=opstr+",'"+tmp2+"="+tmp1+"'";
- if(Toupper(substring(#,0,1))=="N",
- Num=parse(tmp1);
- );
- );
- if(outstr=="Sci",
- if(Inflg==0 & Outflg==0,Outflg=1;Inflg=1);
- );
- if(Noflg<3,
- if(outstr=="Sci",
- if(Outflg==1,
- println("Output Deqplot "+name);
- SCIWRLIST=append(SCIWRLIST,name);
- );
- if(Inflg==1,
- println("Input Deqplot "+name);
- if(length(SCIRELIST)==0,
- ReadOutData(Fnameout);
- );
- tmp=parse(name);
- if(islist(tmp),
- Extractdata(name,["nodisp"]); // 12.19
- );
- SCIRELIST=append(SCIRELIST,name);
- );
- ,
- Eps=10^(-3);
- Inf=10^3;
- tmp=tokenize(deq,"=");
- tmp1=tmp_1;
- func=tmp_2;
- tmp=indexof(tmp1,",");
- xf=substring(tmp1,1,tmp-1);
- yf=substring(tmp1,tmp,length(tmp1));
- tmp=indexof(yf,"]");
- yf=substring(yf,0,tmp-1);
- tmp=tokenize(rng,"=");
- Vname=tmp_1;
- tmp=parse(tmp_2);
- t1=tmp_1;
- t2=tmp_2;
- tmp="funP("+Vname+","+xf+","+yf+"):="+func+";";
- parse(tmp);
- tmp=tokenize(func,",");
- tmp1="-("+substring(tmp_1,1,length(tmp_1))+")";
- tmp2="-("+substring(tmp_2,0,length(tmp_2)-1)+")";
- tmp="funN("+Vname+","+xf+","+yf+"):=["+tmp1+","+tmp2+"];";
- parse(tmp);
- dt=(t2-t1)/Num;
- tt=initt;
- tmp=Lcrd(initf);
- x0=tmp_1;
- y0=tmp_2;
- pdL=[[tt,x0,y0]];
- flg=0;
- forall(1..floor((t2-initt)/dt),
- if(flg==0,
- kl1=dt*funP(tt,x0,y0);
- kl2=dt*funP(tt+dt/2,x0+kl1_1/2,y0+kl1_2/2);
- kl3=dt*funP(tt+dt/2,x0+kl2_1/2,y0+kl2_2/2);
- kl4=dt*funP(tt+dt,x0+kl3_1,y0+kl3_2);//16.10.14
- tmp1=[x0,y0]+(kl1+2*kl2+2*kl3+kl4)/6;
- x0=tmp1_1;
- y0=tmp1_2;
- tt=initt+#*dt;
- pdL=append(pdL,[tt,x0,y0]);
- if(|tmp1|>Inf,flg=1);
- );
- );
- tt=initt;
- tmp=Lcrd(initf);
- x0=tmp_1;
- y0=tmp_2;
- flg=0;
- forall(1..floor((initt-t1)/dt),
- if(flg==0,
- kl1=dt*funN(tt,x0,y0);
- kl2=dt*funN(tt+dt/2,x0+kl1_1/2,y0+kl1_2/2);
- kl3=dt*funN(tt+dt/2,x0+kl2_1/2,y0+kl2_2/2);
- kl4=dt*funN(tt+dt/2,x0+kl3_1/2,y0+kl3_2/2);
- tmp1=[x0,y0]+(kl1+2*kl2+2*kl3+kl4)/6;
- x0=tmp1_1;
- y0=tmp1_2;
- tt=initt-#*dt;
- pdL=prepend([tt,x0,y0],pdL);
- if(|tmp1|>Inf,flg=1);
- );
- );
- println("Generate Deqplot "+name);
- pdL=apply(pdL,#_Sel);
- tmp1=apply(pdL,Pcrd(#));
- tmp=name+"="+textformat(tmp1,5);
- parse(tmp);
- );
- if(Noflg<1,
- tmp=name+"=Deqplot(Assign("+Dq+deq+Dq+"),'"+rng+"',";
- tmp=tmp+initt+","+initf+opstr+")";
- GLIST=append(GLIST,tmp);
- );
- );
- if(Noflg<2,
- if(isstring(Ltype),
- Ltype=GetLinestyle(text(Noflg)+Ltype,name);
- ,
- if(Noflg==1,Ltype=0);
- );
- if(outstr=="Sci",
- if(Inflg==1,
- GCLIST=append(GCLIST,[name,Ltype,opcindy]);
- );
- ,
- GCLIST=append(GCLIST,[name,Ltype,opcindy]);
- pdL;
- );
- );
-);
-
-Enclosing(nm,plist):=EnclosingS(nm,plist);
-Enclosing(nm,plist,options):=EnclosingS(nm,plist,options);
-EnclosingS(nm,plist):=EnclosingS(nm,plist,[]);
-EnclosingS(nm,plist,options):=(
-//help:Enclosing("1",["sc2","crAB","sc2","Invert(sc1)"],[pt,"dr"]);
- regional(name,AnsL,Start,Eps,EEps,S,Flg,Fdata,Gdata,KL,pt,qt,
- t1,t2,t3,ii,nn,tmp,tmp1,tmp2,Ltype,Noflg,realL,eqL,opstr,opcindy);
- name="en"+nm;
- tmp=Divoptions(options);
- Ltype=tmp_1;
- Noflg=tmp_2;
- eqL=tmp_5;
- realL=tmp_6;
- opstr=tmp_(length(tmp)-1);
- opcindy=tmp_(length(tmp));
- Eps=10^(-3);
- EEps=0.1;
- Start=[];
- Flg=0;
- forall(realL,
- if(isList(#) % ispoint(#),
- Start=Lcrd(#); // 15.09.12
- ,
- Flg=Flg+1;
- if(Flg==1,Eps=#);
- if(Flg==2,EEps=#);
- );
- );
-// tmp1=concat([Eps,EEps],eqL); // 15.04.06
- Fdata=plist_1;
- Gdata=plist_(length(plist));
- KL=IntersectcrvsPp(Fdata,Gdata);
- if(length(KL)==1,
- pt=KL_1_1;
- t1=KL_1_2;
- );
- if(length(KL)==0,
- if(Numptcrv(Fdata)>Numptcrv(Gdata),
- tmp=Nearestpt(Fdata,Gdata);
- pt=tmp_1;
- t1=tmp_2;
- ,
- tmp=Nearestpt(Gdata,Fdata);
- pt=tmp_3;
- t1=tmp_4;
- );
- );
- if(length(KL)>1,
- if(Start==[],
- err("No Start Point");
- ,
- pt=KL_1_1;
- t1=KL_1_2;
- tmp=|pt-Start|;
- forall(2..length(KL),ii, // 15.04.20
- tmp1=KL_ii_1;
- tmp2=|tmp1-Start|; // 15.04.20
- if(tmp2<tmp,
- pt=tmp1;
- t1=KL_ii_2;
- tmp=tmp2;
- );
- );
- );
- );
-// pt=Pcrd(pt); // 15.09.12
- Start=pt;
- AnsL=[];
- forall(1..length(plist),nn,
- Fdata=plist_nn;
- if(nn>1, pt=qt);
- if(nn==length(plist),
- qt=Start;
- ,
- Flg=0;
- Gdata=plist_(nn+1);
-// tmp1=concat([Eps,EEps],eqL); // 15.04.06
- KL=IntersectcrvsPp(Gdata,Fdata);
- if(length(KL)==1,
- tmp=KL_1;
- qt=KL_1_1;
- t3=KL_1_2;
- Flg=10;
- );
- if(length(KL)==0,Flg=1);
- if(length(KL)>1,
- tmp1=KL_1_1;
- tmp2=KL_2_1;
- tmp=|tmp1-tmp2|;
- if(tmp<Eps*10, Flg=1);
- );
- if(Flg==1,
- if(Numptcrv(Fdata)>Numptcrv(Gdata),
- tmp=Nearestpt(Fdata,Gdata);
- qt=tmp_1;
- t3=tmp_4;
- Flg=10;
- ,
- tmp=Nearestpt(Gdata,Fdata);
- qt=tmp_3;
- t3=tmp_2;
- Flg=10;
- );
- );
- if(Flg<10,
- t2=10^6; //%inf;
- forall(1..length(KL),ii,
- tmp1=KL_ii_1;
- tmp=KL_ii_3;
- tmp2=ParamonCurve(tmp1,tmp,Fdata);
- tmp3=KL_ii_2;
- if(tmp2>t1+Eps & tmp2<t2+Eps,
- qt=tmp1;
- t2=tmp2;
- t3=tmp3;
- );
- );
- );
- );
- tmp=Partcrv("",pt,qt,Fdata,["nodata"]);
- t1=t3;
- if(nn==1,
- AnsL=tmp;
- ,
- AnsL=concat(AnsL,tmp_(2..length(tmp)));
- );
- );
- AnsL=apply(AnsL,Pcrd(#)); // 15.09.12
- AnsL_(length(AnsL))=AnsL_1;//16.10.20
- if(Noflg<3,
- println("generate Enclosing "+name);
- tmp=name+"="+textformat(AnsL,5);
- parse(tmp);
-// tmp=name+"=Enclosing(";//16.10.20from
-// tmp1="list(";
-// forall(plist,
-// tmp1=tmp1+#+",";
-// );
-// tmp=tmp+substring(tmp1,0,length(tmp1)-1)+")"+opstr+")";
- tmp=apply(AnsL,LLcrd(#));
- tmp=name+"=Listplot("+textformat(tmp,5)+")";//16.10.20upto
- GLIST=append(GLIST,tmp);
- );
- if(Noflg<2,
- if(isstring(Ltype),
- Ltype=GetLinestyle(text(Noflg)+Ltype,name);
- ,
- if(Noflg==1,Ltype=0);
- );
- GCLIST=append(GCLIST,[name,Ltype,opcindy]);
- );
- tmp=apply(AnsL,LLcrd(#));//16.10.20
- tmp;
-);
-
-Shade(plist):=Shade(plist,[]);
-Shade(plist,options):=(
-//help:Shade(["gr2","sg1"],[0.5]);
-//help:Shade([pointlist],[0.5]);
- regional(tmp,tmp1,tmp2,opstr,opcindy,Str,G2,flg);
- if(isstring(plist_1), // 16.01.24
- println("output Shade of "+plist);
- ,
- println("output Shade of lists");
- );
- tmp=Divoptions(options);
- opstr=tmp_(length(tmp)-1);
- opcindy=tmp_(length(tmp));
- flg=0;
- forall(plist,
- if(flg==0,
- if(isstring(#),tmp=parse(#),tmp=#); // from 16.01.24
- if(!islist(tmp),flg=1); upto
- );
- );
- if(flg==1,
-// err("some data not defined yet");
- ,
- G2=Joincrvs("1",plist,["nodata"]);
- G2=apply(G2,Pcrd(#));
- tmp1="fillpoly("+textformat(G2,5)+opcindy+");";
- parse(tmp1);
- );
- Str="Shade(";
- tmp1="list(";
- forall(plist,
- if(isstring(#), // from 16.01.24
- if(length(#)>1,
- tmp1=tmp1+#+",";
- ,
- tmp1=tmp1+Dq+#+Dq+",";
- );
- ,
- tmp1=tmp1+"Listplot("+textformat(#,5)+"),";
- ); // upto 16.01.24
- );
- Str=Str+substring(tmp1,0,length(tmp1)-1)+")"+opstr+")";
- Com2nd(Str);
-);
-
-
-//help:start();
-
-Rotatepoint(point,Theta,ctr):=(
-//help:Rotatepoint(A,2*pi/3,B);
- regional(X1,X2,Y1,Y2,Cx,Cy,tmp);
- tmp=Lcrd(point);
- X1=tmp_1; Y1=tmp_2;
- tmp=Lcrd(ctr);
- Cx=tmp_1; Cy=tmp_2;
- X2=Cx+(X1-Cx)*cos(Theta)-(Y1-Cy)*sin(Theta);
- Y2=Cy+(X1-Cx)*sin(Theta)+(Y1-Cy)*cos(Theta);
- [X2,Y2];
-);
-
-Translatepoint(point,mov):=(
-//help:Translatepoint(A,[2,3]);
- regional(X1,X2,Y1,Y2,Cx,Cy,tmp);
- tmp=Lcrd(point);
- X1=tmp_1; Y1=tmp_2;
- tmp=Lcrd(mov);
- Cx=tmp_1; Cy=tmp_2;
- X2=X1+Cx;
- Y2=Y1+Cy;
- [X2,Y2];
-);
-
-Scalepoint(point,ratio,center):=(
-//help:Scalepoint(A,[3,2],[0,0]);
- regional(X1,X2,Y1,Y2,Cx,Cy,tmp);
- tmp=Lcrd(point);
- X1=tmp_1; Y1=tmp_2;
- tmp=Lcrd(center);
- Cx=tmp_1; Cy=tmp_2;
- X2=Cx+ratio_1*(X1-Cx);
- Y2=Cy+ratio_2*(Y1-Cy);
- [X2,Y2];
-);
-
-Reflectpoint(point,symL):=(
-//help:Reflectpoint(A,B);
-//help:Reflectpoint(A,[[2,3]]);
-//help:Reflectpoint(A,[C,E]);\\
- regional(X1,X2,Y1,Y2,Us,Vs,Pt1,Pt2,Cx,Cy,tmp);
- tmp=Lcrd(point);
- X1=tmp_1; Y1=tmp_2;
- Pt1=Lcrd(symL_1);
- if(length(symL)==1,
- Pt2=Pt1;
- ,
- Pt2=Lcrd(symL_2);
- );
- Us=Pt2_1-Pt1_1;
- Vs=Pt2_2-Pt1_2;
- if(Pt1==Pt2,
- X2=2*Pt1_1-X1;
- Y2=2*Pt1_2-Y1;
- ,
- X2=(Us^2-Vs^2)/(Us^2+Vs^2)*X1+2*Us*Vs/(Us^2+Vs^2)*Y1
- -2*Vs*(Us*Pt1_2-Vs*Pt1_1)/(Us^2+Vs^2);
- Y2=2*Us*Vs/(Us^2+Vs^2)*X1-(Us^2-Vs^2)/(Us^2+Vs^2)*Y1
- +2*Us*(Us*Pt1_2-Vs*Pt1_1)/(Us^2+Vs^2);
- );
- [X2,Y2];
-);
-
-Rotatedata(nm,plist,Theta):=Rotatedata(nm,plist,Theta,[]);
-Rotatedata(nm,plist,angle,options):=(
-//help:Rotatedata("1","crAB",pi/3,[[1,5],"dr,2"]);
- regional(tmp,tmp1,tmp2,pdata,Theta,Pt,Cx,Cy,PdLL,PdL,
- opcindy,Nj,Njj,Kj,Mj,X1,Y1,X2,Y2,Ltype,Noflg,name);
- name="rt"+nm;
- Pt=[0,0];
- tmp=Divoptions(options);
- Ltype=tmp_1;
- Noflg=tmp_2;
- opcindy=tmp_(length(tmp));
- tmp1=tmp_6;
- if(length(tmp1)>0,Pt=Lcrd(tmp1_1));
- pdata=plist;
- if(isstring(pdata),pdata=[pdata]);
- if(!isstring(pdata_1) & MeasureDepth(pdata)==1,
- pdata=[pdata];
- );
- if(isstring(angle),Theta=parse(angle),Theta=angle);
- Cx=Pt_1; Cy=Pt_2;
- PdL=[];
- forall(pdata,Njj,
- if(isstring(Njj),Kj=parse(Njj),Kj=Njj);
- if(MeasureDepth(Kj)==1,Kj=[Kj]);
- tmp2=[];
- forall(Kj,Nj,
- tmp1=[];
- forall(Nj,
- tmp=LLcrd(#);
- X1=tmp_1;
- Y1=tmp_2;
- X2=Cx+(X1-Cx)*cos(Theta)-(Y1-Cy)*sin(Theta);
- Y2=Cy+(X1-Cx)*sin(Theta)+(Y1-Cy)*cos(Theta);
- tmp1=concat(tmp1,[[X2,Y2]]);
- );
- tmp2=concat(tmp2,[tmp1]);
- );
- PdL=concat(PdL,tmp2);
- );
- if(Noflg<3,
- println("generate Rotatedata "+name);
- tmp1=[];
- forall(PdL,tmp2,
- tmp=apply(tmp2,Pcrd(#));
- tmp1=append(tmp1,tmp);
- );
- if(length(tmp1)==1,tmp1=tmp1_1);
- tmp=name+"="+textformat(tmp1,5);
- parse(tmp);
-// tmp1=textformat(plist,5);
- tmp1=text(plist); // 15.10.15
- tmp1=replace(tmp1,"[","list(");
- tmp1=replace(tmp1,"]",")");
- tmp=name+"=Rotatedata("+tmp1+","
- +textformat(angle,5)+","+textformat(Pt,5)+")";
- GLIST=append(GLIST,tmp);
- );
- if(Noflg<2,
- if(isstring(Ltype),
- Ltype=GetLinestyle(text(Noflg)+Ltype,name);
- ,
- if(Noflg==1,Ltype=0);
- );
- GCLIST=append(GCLIST,[name,Ltype,opcindy]);
- );
- PdL;
-);
-
-translatedata(nm,plist,mov):=translatedata(nm,plist,mov,[]);
-translatedata(nm,plist,mov,options):=(
-//help:translatedata("1",["gr1"],[1,2]);
- regional(tmp,tmp1,tmp2,pdata,Cx,Cy,PdL,Nj,Njj,Kj,
- opcindy,X2,Y2,Ltype,Noflg,name);
- name="tr"+nm;
- tmp=Divoptions(options);
- Ltype=tmp_1;
- Noflg=tmp_2;
- opcindy=tmp_(length(tmp));
- pdata=plist;
- if(isstring(pdata),pdata=[pdata]);
- if(!isstring(pdata_1) & MeasureDepth(pdata)==1,
- pdata=[pdata];
- );
- tmp=Lcrd(mov);
- Cx=tmp_1; Cy=tmp_2;
- PdL=[];
- forall(pdata,Njj,
- if(isstring(Njj),Kj=parse(Njj),Kj=Njj);
- if(MeasureDepth(Kj)==1,Kj=[Kj]);
- tmp2=[];
- forall(Kj,Nj,
- tmp1=[];
- forall(Nj,
- tmp=LLcrd(#);
- X2=tmp_1+Cx;
- Y2=tmp_2+Cy;
- tmp1=concat(tmp1,[[X2,Y2]]);
- );
- tmp2=concat(tmp2,[tmp1]);
- );
- PdL=concat(PdL,tmp2);
- );
- if(Noflg<3,
- println("generate translatedata "+name);
- tmp1=[];
- forall(PdL,tmp2,
- tmp=apply(tmp2,Pcrd(#));
- tmp1=append(tmp1,tmp);
- );
- if(length(tmp1)==1,tmp1=tmp1_1);
- tmp=name+"="+textformat(tmp1,5);
- parse(tmp);
-// tmp1=textformat(plist,5);
- tmp1=text(plist); // 15.10.15
- tmp1=replace(tmp1,"[","list(");
- tmp1=replace(tmp1,"]",")");
- tmp=name+"=translatedata("+tmp1+","+textformat(mov,5)+")";
- GLIST=append(GLIST,tmp);
- );
- if(Noflg<2,
- if(isstring(Ltype),
- Ltype=GetLinestyle(text(Noflg)+Ltype,name);
- ,
- if(Noflg==1,Ltype=0);
- );
- GCLIST=append(GCLIST,[name,Ltype,opcindy]);
- );
- PdL;
-);
-
-Scaledata(nm,plist,ratioV):=(
- regional(tmp);
- tmp=Lcrd(ratioV);
- Scaledata(nm,plist,tmp_1,tmp_2,[]);
-);
-Scaledata(nm,plist,Arg1,Arg2):=(
-//help:Scaledata("1","crAB",3,2,[[0,0]]);
- regional(tmp,options);
- if(islist(Arg2),
- tmp=Lcrd(Arg1);
- options=Arg2;
- Scaledata(nm,plist,tmp_1,tmp_2,options);
- ,
- Scaledata(nm,plist,Arg1,Arg2,[]);
- );
-);
-Scaledata(nm,plist,rx,ry,options):=(
- regional(tmp,tmp1,tmp2,pdata,Theta,Pt,Cx,Cy,PdL,
- opcindy,Nj,Njj,Kj,X2,Y2,Ltype,Noflg,name);
- name="sc"+nm;
- Pt=[0,0];
- tmp=Divoptions(options);
- Ltype=tmp_1;
- Noflg=tmp_2;
- opcindy=tmp_(length(tmp));
- tmp1=tmp_6;
- if(length(tmp1)>0,
- Pt=Lcrd(tmp1_1);
- );
- pdata=plist;
- if(isstring(pdata),pdata=[pdata]);
- if(!isstring(pdata_1) & MeasureDepth(pdata)==1,
- pdata=[pdata];
- );
- Cx=Pt_1; Cy=Pt_2;
- PdL=[];
- forall(pdata,Njj,
- if(isstring(Njj),Kj=parse(Njj),Kj=Njj);
- if(MeasureDepth(Kj)==1,Kj=[Kj]);
- tmp2=[];
- forall(Kj,Nj,
- tmp1=[];
- forall(Nj,
- tmp=LLcrd(#);
- X2=Cx+rx*(tmp_1-Cx);
- Y2=Cy+ry*(tmp_2-Cy);
- tmp1=concat(tmp1,[[X2,Y2]]);
- );
- tmp2=concat(tmp2,[tmp1]);
- );
- PdL=concat(PdL,tmp2);
- );
- if(Noflg<3,
- println("generate Scaledata "+name);
- tmp1=[];
- forall(PdL,tmp2,
- tmp=apply(tmp2,Pcrd(#));
- tmp1=append(tmp1,tmp);
- );
- if(length(tmp1)==1,tmp1=tmp1_1);
- tmp=name+"="+textformat(tmp1,5);
- parse(tmp);
- tmp1=text(plist); // 15.10.15
- tmp1=replace(tmp1,"[","list(");
- tmp1=replace(tmp1,"]",")");
- tmp=name+"=Scaledata("+tmp1+","
- +textformat(rx,5)+","+textformat(ry,5)+","+textformat(Pt,5)+")";
- GLIST=append(GLIST,tmp);
- );
- if(Noflg<2,
- if(isstring(Ltype),
- Ltype=GetLinestyle(text(Noflg)+Ltype,name);
- ,
- if(Noflg==1,Ltype=0);
- );
- GCLIST=append(GCLIST,[name,Ltype,opcindy]);
- );
- PdL;
-);
-
-Reflectdata(nm,plist,symL):=Reflectdata(nm,plist,symL,[]);
-Reflectdata(nm,plist,symL,options):=(
-//help:Reflectdata("1","crAB",[C]);
- regional(tmp,tmp1,tmp2,pdata,Us,Vs,Pt1,Pt2,Cx,Cy,PdL,
- opcindy,Nj,Njj,Kj,X1,Y1,X2,Y2,Ltype,Noflg,name);
- name="re"+nm;
- Pt=[0,0];
- tmp=Divoptions(options);
- Ltype=tmp_1;
- Noflg=tmp_2;
- opcindy=tmp_(length(tmp));
- pdata=plist;
- if(isstring(pdata),pdata=[pdata]);
- if(!isstring(pdata_1) & MeasureDepth(pdata)==1,
- pdata=[pdata];
- );
- Pt1=Lcrd(symL_1);
- if(length(symL)==1,
- Pt2=Pt1;
- ,
- Pt2=Lcrd(symL_2);
- );
- Us=Pt2_1-Pt1_1;
- Vs=Pt2_2-Pt1_2;
- PdL=[];
- forall(pdata,Njj,
- if(isstring(Njj),Kj=parse(Njj),Kj=Njj);
- if(MeasureDepth(Kj)==1,Kj=[Kj]);
- tmp2=[];
- forall(Kj,Nj,
- tmp1=[];
- forall(Nj,
- tmp=LLcrd(#);
- X1=tmp_1;
- Y1=tmp_2;
- if(Pt1==Pt2,
- X2=2*Pt1_1-X1;
- Y2=2*Pt1_2-Y1;
- ,
- X2=(Us^2-Vs^2)/(Us^2+Vs^2)*X1+2*Us*Vs/(Us^2+Vs^2)*Y1
- -2*Vs*(Us*Pt1_2-Vs*Pt1_1)/(Us^2+Vs^2);
- Y2=2*Us*Vs/(Us^2+Vs^2)*X1-(Us^2-Vs^2)/(Us^2+Vs^2)*Y1
- +2*Us*(Us*Pt1_2-Vs*Pt1_1)/(Us^2+Vs^2);
- );
- tmp1=concat(tmp1,[[X2,Y2]]);
- );
- tmp2=concat(tmp2,[tmp1]);
- );
- PdL=concat(PdL,tmp2);
- );
- if(Noflg<3,
- println("generate Reflectdata "+name);
- tmp1=[];
- forall(PdL,tmp2,
- tmp=apply(tmp2,Pcrd(#));
- tmp1=append(tmp1,tmp);
- );
- if(length(tmp1)==1,tmp1=tmp1_1);
- tmp=name+"="+textformat(tmp1,5);
- parse(tmp);
-// tmp1=textformat(plist,5);
- tmp1=text(plist); // 15.10.15
- tmp1=replace(tmp1,"[","list(");
- tmp1=replace(tmp1,"]",")");
- tmp=name+"=Reflectdata("+tmp1+","+textformat(symL,5)+")";
- GLIST=append(GLIST,tmp);
- );
- if(Noflg<2,
- if(isstring(Ltype),
- Ltype=GetLinestyle(text(Noflg)+Ltype,name);
- ,
- if(Noflg==1,Ltype=0);
- );
- GCLIST=append(GCLIST,[name,Ltype,opcindy]);
- );
- PdL;
-);
-
-Mksegments():=Mksegments([]);
-Mksegments(options):=(
-//help:Mksegments();
- regional(segstr,p,q,r,tmp1,tmp2,tmp3);
- forall(allsegments(),seg,
- str=text(inspect(seg,"definition"));
- tmp1=indexof(str,"(");
- tmp2=indexof(str,";");
- tmp3=indexof(str,")");
- p=substring(str,tmp1,tmp2-1);
- q=substring(str,tmp2,tmp3-1);
- Listplot([parse(p),parse(q)]);
- );
-);
-
-Mkcircles():=Mkcircles([]);
-Mkcircles(options):=(
-//help:Mkcircles():
- regional(seg,cir,str,p,q,r,tmp1,tmp2,tmp3,tmp4);
- forall(allcircles(),cir,
- str=text(inspect(cir,"definition"));
- tmp1=indexof(str,"(");
- tmp2=indexof(str,";");
- tmp3=indexof(str,")");
- tmp4=indexof(str,";",tmp2+1);
- if(tmp4==0,
- p=substring(str,tmp1,tmp2-1);
- q=substring(str,tmp2,tmp3-1);
- Circledata([parse(p),parse(q)]);
- ,
- p=substring(str,tmp1,tmp2-1);
- q=substring(str,tmp2,tmp4-1);
- r=substring(str,tmp4,tmp3-1);
- Circledata([parse(p),parse(q),parse(r)]);
- );
- );
-);
-
-Makesciarg(arglist):=(
- regional(str,tmpstr);
- str="";
- forall(arglist,
- if(isstring(#),
- tmpstr=Dq+#+Dq;
- ,
- tmpstr=textformat(#,5);
- );
- str=str+tmpstr+",";
- );
- str=substring(str,0,length(str)-1);
- str;
-);
-
-Setax(arglist):=(
-//help:Setax(["l","x","e","y","n","O","sw"]);
-//help:Setax([7,"nw"]);
- regional(tmp);
- tmp=Makesciarg(arglist);
- Com1st("Setax("+tmp+")");
-);
-
-Htickmark(arglist):=(
-//help:Htickmark([1,"1",2,"sw","2"]);
- regional(tmp);
- tmp="";
- tmp=Makesciarg(arglist);
- Com2nd("Htickmark("+tmp+")");
-);
-
-Vtickmark(arglist):=(
-//help:Vtickmark([1,"1",2,"sw","2"]);
- regional(tmp);
- tmp=Makesciarg(arglist);
- Com2nd("Vtickmark("+tmp+")");
-);
-
-Drwxy():=(
-//help:Drwxy();
- Com2nd("Drwxy()");
- Addax(0); // 16.01.21
-);
-
-Drwpt(pstr):=Drawpoint(pstr);
-Drwpt(ptlist,nn):=( // 16.03.05 from
-//help:Drwpt(A);
-//help:Drwpt("[1,1],0");
-//help:Drwpt(A,0);
-//help:Drwpt([1,2],0);
- Drawpoint(ptlist,nn);
-);
-Drawpoint(pstr):=(
- if(isstring(pstr),
- println("Drwpt : "+pstr);
- Com2nd("Drwpt("+pstr+")");
- ,
- Drawpoint(pstr,1);
- );
-);
-Drawpoint(ptlistorg,nn):=(
- regional(ptlist,thick,tmp,tmp1);
- println("Drwpt : "+text(ptlistorg));
- if(islist(ptlistorg),
- if(MeasureDepth(ptlistorg)==1,
- ptlist=ptlistorg
- ,
- ptlist=[ptlistorg]
- );
- ,
- ptlist=[ptlistorg]
- );
- thick=PenThick/PenThickInit;// 16.04.09 from
- tmp1=max(TenSize/TenSizeInit,1)/8;
- Setpen(tmp1); // 16.04.09 upto
- forall(ptlist,
- tmp=textformat(#,5)+","+text(nn);
- Com2nd("Drwpt("+tmp+")"); // 16.04.09
- );
- Setpen(thick); // 16.04.09
-);// 16.03.05 upto
-
-Addax(param):=(
-//help:Addax(0);
- ADDAXES=text(param);
-);
-
-Expr(Pt,Dr,St):=Expr([Pt,Dr,St]);
-Expr(list):=Expr(list,[]);
-Expr(listorg,options):=( //16.10.09
-//help:Expr([A,"e","f(x)=x^2"]);
- regional(list,str,tmp,tmp1,tmp2);
- list=listorg;
- forall(1..round(length(list)/3),
- str=list_(3*#);
- if(!isstring(str),str=format(str,5));
- str="$"+str+"$";
- list_(3*#)=str;
- );
- Letter(list,options);
-);
-
-Letter(Pt,Dr,St):=Letter([Pt,Dr,St]);
-Letter(list):=Letter(list,[]);
-Letter(list,options):=(
-//help:Letter([C,"c","Graph of f(x)"]);
- regional(Nj,Pos,Dir,Str,Off,Dmv,Xmv,Ymv,Noflg,opcindy,
- opL,aln,sz,clr,bld,ita,tmp,tmp1,tmp2);
- tmp=Divoptions(options);
- Noflg=tmp_2;
- opL=select(options,indexof(#,"->")>0); //16.10.09from
- tmp=select(opL,indexof(#,"color"));
- size=12;
- clr=[0,0,0];
- bld=false;
- ita=false;
- aln="left";
- forall(opL,
- tmp=indexof(#,"->");
- tmp1=removespace(substring(#,0,tmp-1));
- tmp2=substring(#,tmp+1,length(#));
- if(tmp1=="size",sz=parse(tmp2));
- if(tmp1=="color",clr=parse(tmp2));
- if(tmp1=="bold",bld=parse(tmp2));
- if(tmp1=="ita",ita=parse(tmp2));
- );//16.10.09upto
- Off=-4;
- Dmv=8;
- Nj=1;
- while(Nj+2<=length(list),
-// Pos=textformat(list_Nj,5);
- Pos=list_Nj;
- Dir=list_(Nj+1);
- tmp=indexof(Dir,"s")+indexof(Dir,"n");//16.10.19from
- if(tmp>0,
- tmp=indexof(Dir,"w")+indexof(Dir,"e");
- if(tmp==0,
- Dir="c"+Dir;//16.10.08
- );
- );//16.10.19upto
- Str=list_(Nj+2);
- if(!isstring(Str),Str=format(Str,5)); // 16.09.30,10.09
- tmp=replace(Str,".xy","");
- tmp=replace(tmp,".x","(1)");
- Str=replace(tmp,".y","(2)");
- if(indexof(Str,"`")>0,
-// tmp=Dq+",Assign('"+Str+"','`',Prime()))";
- tmp=Dq+",Assign('"+Str+"'))"; // 15.02.22
- ,
- tmp=Dq+","+Dq+Str+Dq+")";
- );
- if(Noflg==0,
- Com2nd("Letter("+Lcrd(Pos)+","+Dq+Dir+tmp);//16.10.10
- );
- if(Noflg<2,
- Xmv=0;//16.10.13
- Ymv=-4;
- if(indexof(Dir,"n")>0,
- Ymv=Dmv/2;
- );
- if(indexof(Dir,"s")>0,
- Ymv=-Dmv*3/2;//16.10.13
- );
- if(indexof(Dir,"e")>0,
- Xmv=Dmv/2;
- Off=0;
- aln="left";
- );
- if(indexof(Dir,"w")>0,
- Xmv=-Dmv/2;
- Off=0; // 16.09.30from
- aln="right";
- );
- if(indexof(Dir,"c")>0,
- Xmv=0;//16.10.13
- Off=0;
- if(Ymv==0,Ymv=-4);//16.10.08
- aln="mid"; // 16.09.30upto
- );
- drawtext(Pcrd(Pos),Str,offset->[Off+Xmv,Off+Ymv],
- size->sz,color->clr,align->aln,bold->bld,italics->ita);//16.10.09
- );
- Nj=Nj+3;
- );
-);
-
-Letterrot(pt,dir,str):=Letterrot(pt,dir,0,0,str);
-Letterrot(pt,dir,movstr,str):=(
-//help:Letterrot(C,B-A,"AB"):
-//help:Letterrot(C,B-A,0,5,"AB"):
-//help:Letterrot(C,B-A,"t0n5","AB"):
- regional(tmov,nmov,tmp,tmp1,tmp2);
- tmp1=indexof(movstr,"t");
- tmp2=indexof(movstr,"n");
- if(tmp1>0,
- if(tmp2>0,tmp=tmp2-1,tmp=length(movstr));
- tmov=parse(substring(movstr,tmp1,tmp));
- ,
- tmov=0;
- );
- if(tmp2>0,
- nmov=parse(substring(movstr,tmp2,length(movstr)));
- ,
- nmov=0;
- );
- Letterrot(pt,dir,tmov,nmov,str);
-);
-Letterrot(pt,dir,tmov,nmov,str):=(
- Letter([pt,"c",str],["notex"]);
- Com2nd("Letterrot("+pt+","+dir+","+tmov+","+nmov+",'"+str+"')");
-);
-
-Exprrot(pt,dir,str):=Exprrot(pt,dir,0,0,str);
-Exprrot(pt,dir,movstr,str):=(
-//help:Exprrot(C,B-A,"d"):
-//help:Exprrot(C,B-A,0,5,"d"):
-//help:Exprrot(C,B-A,"t0n5","d"):
- regional(tmov,nmov,tmp,tmp1,tmp2);
- tmp1=indexof(movstr,"t");
- tmp2=indexof(movstr,"n");
- if(tmp1>0,
- if(tmp2>0,tmp=tmp2-1,tmp=length(movstr));
- tmov=parse(substring(movstr,tmp1,tmp));
- ,
- tmov=0;
- );
- if(tmp2>0,
- nmov=parse(substring(movstr,tmp2,length(movstr)));
- ,
- nmov=0;
- );
- Exprrot(pt,dir,tmov,nmov,str);
-);
-Exprrot(pt,dir,tmov,nmov,str):=(
- Expr([pt,"c",str],["notex"]);
- Com2nd("Exprrot("+pt+","+dir+","+tmov+","+nmov+",'"+str+"')");
-);
-
-Slider(ptstr,p1,p2):=( //17.04.11
-//help:Slider("A-C-B",[-3,0],[3,0]);
- regional(pA,pB,pC,seg,sname,Alpha,tmp,tmp1);
- tmp=indexall(ptstr,"-");
- pA=substring(ptstr,0,tmp_1-1);
- pC=substring(ptstr,tmp_1,tmp_2-1);
- pB=substring(ptstr,tmp_2,length(ptstr));
- seg=pA+pB;
- Alpha="ABCDEFGHIJKLMNOPQRSTUVWXYZ";
- sname="";
- forall(1..(length(seg)),
- tmp=substring(seg,#-1,#);
- tmp1=indexof(Alpha,tmp);
- if(tmp1>0,
- sname=sname+unicode(text(tmp1+96),base->10);
- ,
- sname=sname+tmp;
- );
- );
- Putpoint(pA,p1);
- Putpoint(pB,p2);
- Listplot([parse(pA),parse(pB)],["notex","color->[0,0.4,0.4]","size->2"]);
-// create([sname],"Segment",[parse(pA),parse(pB)]);
-// tmp2=Listplot("",[p1,p2],["nodata"]);
- Putonseg(pC,parse("sg"+pA+pB));
-// create([pC],"PointOn",[parse(sname),0.5]);
-);
-
-Putpoint(name,Pt):=Putpoint(name,Pt,Pt);
-Putpoint(name,Ptinit,Pt):=(
-//help:Putpoint("A",[1,2],[1,A.y]);
- regional(ptstr);
- ptstr=apply(allpoints(),#.name);
- if(!contains(ptstr,name),
- createpoint(name,Pcrd([Ptinit_1,Ptinit_2]));
- ,
- ptstr=name+".xy="+textformat(Pcrd(Pt),5);
- parse(ptstr);
- );
-);
-
-Bezierpt(t,ptlist,ctrlist):=(
- regional(flg3,p0,p1,p2,p3,p4,p5,p6,p7,p8,p9);
- p0=ptlist_1;
- p3=ptlist_2;
- p1=ctrlist_1;
- if(length(ctrlist)==1,
- p2=p3;
- flg3=0;
- ,
- p2=ctrlist_2;
- flg3=1;
- );
- if(length(p0)<3, // 15.02.08
- p0=Lcrd(p0);
- p3=Lcrd(p3);
- p1=Lcrd(p1);
- p2=Lcrd(p2);
- );
- p4=(1-t)*p0+t*p1;
- p5=(1-t)*p1+t*p2;
- p6=(1-t)*p2+t*p3;
- p7=(1-t)*p4+t*p5;
- p8=(1-t)*p5+t*p6;
- p9=(1-t)*p7+t*p8;
- if(flg3==0,p7,p9);
-);
-
-Bezier(ptctrlist):=BezierCurve(ptctrlist_3,ptctrlist_1,ptctrlist_2,[]);
-Bezier(ptctrlist,options):=BezierCurve(ptctrlist_3,ptctrlist_1,ptctrlist_2,options);
-Bezier(nm,ptlist,ctrlist):=BezierCurve(nm,ptlist,ctrlist,[]);
-Bezier(nm,ptlist,ctrlist,options):=BezierCurve(nm,ptlist,ctrlist,options);
-BezierCurve(nm,ptlist,ctrlist):=BezierCurve(nm,ptlist,ctrlist,[]);
-BezierCurve(nm,ptlistorg,ctrlistorg,options):=(
-//help:Bezier("1",[A,D],[B,C]);
-//help:Bezier(options=["Num=10"]);
- regional(name,Ltype,Noflg,opstr,opcindy,Num,
- ptlist,ctrlist,tmp,tmp1,tmp2,ii,st,out,list);
- name="bz"+nm;
- tmp=Divoptions(options);
- Ltype=tmp_1;
- Noflg=tmp_2;
- opstr=tmp_(length(tmp)-1);
- opcindy=tmp_(length(tmp));
- Num=10;
- tmp1=tmp_5;
- forall(tmp1, // 14.12.31
- if(substring(#,0,1)=="N",
- tmp2=indexof(#,"=");
- Num=parse(substring(#,tmp2,length(#)));
- opstr=opstr+","+Dq+#+Dq;
- );
- );
- ptlist=apply(ptlistorg,Lcrd(#)); // 16.08.16
- ctrlist=[]; // 14.12.31
- if(length(ctrlistorg)==length(ptlist)-1,
- forall(ctrlistorg,tmp1,
- if(MeasureDepth(tmp1)==0,tmp=[tmp1],tmp=tmp1);
- tmp=apply(tmp,Lcrd(#)); // 16.08.16
- ctrlist=append(ctrlist,tmp);
- );
- ,
- forall(1..(length(ptlist)-1),ii,
- tmp=ctrlistorg_((2*ii-1)..(2*ii));
- tmp=apply(tmp,Lcrd(#)); // 16.08.16
- ctrlist=append(ctrlist,tmp);
- );
- );
- if(!islist(Num),
- Num=apply(ctrlist,Num);
- );
- list=[];
- forall(1..(length(ptlist)-1),ii,
- tmp1=ptlist_(ii..(ii+1));
- tmp2=ctrlist_ii;
- if(ii==1,st=0,st=1);
- forall(st..Num_ii,
- tmp=Bezierpt(#/Num_ii,tmp1,tmp2);
- list=append(list,tmp);
- );
- );
- if(Noflg<3,
- println("generate Bezier "+name);
- out=apply(list,Pcrd(#));
- tmp=name+"="+textformat(out,5);
- parse(tmp);
- tmp1=textformat(ptlist,5);
- tmp1="list("+substring(tmp1,1,length(tmp1)-1)+")";
- tmp2=textformat(ctrlist,5);
- tmp2="list("+substring(tmp2,1,length(tmp2)-1)+")";
- GLIST=append(GLIST,name+"=Bezier("+tmp1+","+tmp2+opstr+")");
- );
- if(Noflg<2,
- if(isstring(Ltype),
- Ltype=GetLinestyle(text(Noflg)+Ltype,name);
- ,
- if(Noflg==1,Ltype=0);
- );
- GCLIST=append(GCLIST,[name,Ltype,opcindy]);
- );
- list;
-);
-
-Readcsvsla(fname):=Readplotdigdata(fname,[]);
-Readcsvsla(fname,options):=Readplotdigdata(fname,options);
-Readplotdigdata(fname):=Readplotdigdata(fname,[]);
-Readplotdigdata(fname,options):=(
- regional(fsc,mv,cmdall,dataL,nd,npt,ptdata,ii,tmp,tmp1,tmp2,tmp3);
- tmp=Divoptions(options);
- tmp1=tmp_6;
- sc=1;//10;
- mv=[0,0];//[5,5];
- forall(tmp1,
- if(!islist(#),sc=#,mv=#);
- );
- if(indexof(fname,".")>0,
- tmp=load(fname);
- ,
- tmp=load(fname+".txt");
- );
- cmdall=tokenize(tmp,"//");
- dataL=[];
- forall(2..length(cmdall),ii,
- tmp1=parse("["+cmdall_ii+"]");
- dataL=append(dataL,tmp1);
- );
- if(length(dataL_(length(dataL)))<2,
- dataL=dataL_(1..(length(dataL)-1));
- );
- nd=length(dataL_1)/2;
- npt=length(dataL);
- ptdata=[];
- forall(1..nd,ii,
- tmp3=[];
- forall(1..npt,
- tmp1=dataL_#_(2*ii-1);
- tmp2=dataL_#_(2*ii);
- if(isreal(tmp1),
- tmp3=append(tmp3,[tmp1,tmp2]);
- );
- );
- ptdata=append(ptdata,tmp3);
- );
- tmp1=[];
- forall(ptdata,
- tmp=#/sc;
- tmp=translatedata("1",[tmp],-mv,["nodata"]);
- tmp1=append(tmp1,tmp);
- );
- ptdata=tmp1;
- ptdata;
-);
-
-Putbezierdata(name,ptL):=Putbezierdata(name,ptL,[]);
-Putbezierdata(name,ptL,options):=(
- regional(psize,Deg,tmp,tmp1,tmp2,p1,p2,pts,ctrs);
- tmp=Divoptions(options);
- psize=3;
- Deg=3;
- tmp1=tmp_5;
- forall(tmp1,
- if(substring(#,0,1)=="D",
- tmp=indexof(#,"=");
- Deg=parse(substring(#,tmp,length(#)));
- );
- if(substring(#,0,1)=="S",
- tmp=indexof(#,"=");
- psize=parse(substring(#,tmp,length(#)));
- );
- );
- pts=[];
- ctrs=[];
- forall(1..length(ptL),
- p2=ptL_#; // 16.08.16
- if(ispoint(p2),
- tmp1=text(p2);
- ,
- tmp1=name+text(#);
- Putpoint(tmp1,p2,Lcrd(parse(tmp1))); // 16.08.16
- );
- inspect(parse(tmp1),"ptsize",psize);
- pts=append(pts,parse(tmp1));
- inspect(parse(tmp1),"color",4);
- if(#>1,
- p1=Lcrd(ptL_(#-1)); // 16.08.16
- p2=Lcrd(ptL_#); // 16.08.16
- if(Deg==3,
- tmp=(2*p1+p2)/3;
- tmp1=name+"p"+text(#-1);
- Putpoint(tmp1,tmp,Lcrd(parse(tmp1))); // 16.08.16
- inspect(parse(tmp1),"labeled",false); //15.01.22
- Letter([parse(tmp1),"ne",tmp1],["notex"]); //15.01.22
- inspect(parse(tmp1),"ptsize",psize);
- inspect(parse(tmp1),"color",3);
- tmp=(p1+2*p2)/3;
- tmp2=name+"q"+text(#-1);
- Putpoint(tmp2,tmp,Lcrd(parse(tmp2))); // 16.08.16
- inspect(parse(tmp2),"labeled",false); //15.01.22
- Letter([parse(tmp2),"ne",tmp2],["notex"]); //15.01.22
- inspect(parse(tmp2),"ptsize",psize);
- inspect(parse(tmp2),"color",3);
- ctrs=append(ctrs,[parse(tmp1),parse(tmp2)]);
- ,
- tmp=(p1+p2)/2;
- tmp1=name+"p"+text(#-1);
- Putpoint(tmp1,tmp,Lcrd(parse(tmp1))); // 16.08.16
- inspect(parse(tmp1),"labeled",false); //15.01.22
- Letter([parse(tmp1),"ne",tmp1],["notex"]); //15.01.22
- inspect(parse(tmp1),"ptsize",psize);
- inspect(parse(tmp1),"color",3);
- ctrs=append(ctrs,[parse(tmp1)]);
- );
- );
- );
- [pts,ctrs,name];
-);
-
-Bezierstart(n):=( // 2016.02.26
- BezierNumber=n;
-);
-
-Mkbezierptcrv(ptdata):=Mkbezierptcrv(ptdata,[]);
-Mkbezierptcrv(ptdata,options):=(
- //help:Mkbezierptcrv([A,B,C,D]);
- //help:Mkbezierptcrv([[A,B],[C,D]]);
- //help:Mkbezierptcrv(options=["Num=10"]);
- // global BezierNumber
- regional(ptlist,Out,tmp,tmp1,tmp2);
- if(isstring(ptdata),
- ptlist=Readcsvsla(ptdata,options);
- ,
- ptlist=ptdata;
- );
- if(MeasureDepth(ptlist)==1,ptlist=[ptlist]);
- Out=[];
- forall(1..length(ptlist),
- tmp=floor((BezierNumber-1)/26);// 15.02.23
- if(tmp==0,tmp="",tmp=text(tmp));
- tmp2=mod(BezierNumber,26);
- if(tmp2==0,tmp2=26);
- tmp1=unicode(text(96+tmp2),base->10)+tmp;// 15.03.11
- tmp2=Putbezierdata(tmp1,ptlist_#,options);
- Bezier(tmp2,options);
- BezierNumber=BezierNumber+1;
- Out=append(Out,tmp2_(1..2));
- );
- Out;
-);
-
-Mkbeziercrv(nm,ptctrL):=Mkbeziercrv(nm,ptctrL,[]);
-Mkbeziercrv(nm,ptctrL,options):=(
- //help:Mkbeziercrv("1",[[A,B,C,D],[[P,Q],[R,S],T]]);
- regional(ptctrLL,name,ptlist,ctrlist,tmp,tmp1,tmp2);
- if(MeasureDepth(ptctrL)==2,ptctrLL=[ptctrL],ptctrLL=ptctrL);
- forall(1..length(ptctrLL),
- name=nm+text(#);
- ptlist=ptctrLL_#_1;
- ctrlist=ptctrLL_#_2;
- Bezier(name,ptlist,ctrlist,options);
- );
-);
-
-Writebezier():=Writebezier(Fhead,"all");
-Writebezier(head):=Writebezier(head,"all");
-Writebezier(head,seL):=(
-//help:Writebezier(file);
-//help:Writebezier(file,"acd");
- regional(bz,dt,name,tmp,tmp1,tmp2);
- bz=select(GLIST,indexof(#,"=Bezier")>0);
- tmp1=[]; // 16.04.22from
- if(seL!="all",
- forall(1..length(seL),
- tmp=substring(seL,#-1,#);
- tmp=select(bz,indexof(#,"bz"+tmp)>0);
- tmp1=concat(tmp1,tmp);
- );
- bz=tmp1;// 16.04.22upto
- );
- dt=[head+"n",[[length(bz),0]]];
- forall(1..length(bz),
- tmp=indexof(bz_#,"=");
- name=substring(bz_#,0,tmp-1);
- tmp=indexof(bz_#,","+Dq);
- if(tmp>0,
- tmp1=substring(bz_#,0,tmp-1)+")";
- ,
- tmp1=bz_#;
- );
- tmp1=replace(tmp1,"Bezier(","[");
- tmp1=replace(tmp1,"list(","[");
- tmp1=replace(tmp1,")","]");
- tmp1=replace(tmp1,",",".xy,");
- tmp1=replace(tmp1,"]",".xy]");
- tmp1=replace(tmp1,".xy,[",",[");
- tmp1=replace(tmp1,"].xy","]");
- tmp1=replace(tmp1,name,head+text(#));
- parse(tmp1);
- tmp=parse(head+text(#)+"_1");
- dt=concat(dt,[head+text(#)+"k",tmp]);
- tmp=parse(head+text(#)+"_2");
- dt=concat(dt,[head+text(#)+"c",tmp]);
- );
- WriteOutData(head+".txt",dt);
- dt;
-);
-
-Readbezier(file):=Readbezier(file,[]);
-Readbezier(file,optionorg):=(
-//help:Readbezier("xsr");
-//help:Readbezier(options=["Num=10","nogeo"]);
- regional(nn,options,stL,geo,nc,alpha,out,tmp,tmp1,tmp2,tmp3);
- options=optionorg;
- tmp=Divoptions(options);
- stL=tmp_7;
- geo=0;
- forall(stL,
- tmp=Toupper(substring(#,0,1));
- if(tmp=="G",geo=1);
- options=remove(options,[#]);
- );
- ReadOutData(file);
- tmp=file+"n_1_1";
- nn=parse(tmp);
- out=[];
- forall(1..nn,nc,
- tmp=file+text(nc);
- tmp1=parse(tmp+"k");
- tmp2=parse(tmp+"c");
- if(MeasureDepth(tmp2)==1,tmp2=[tmp2]); // 16.04.22from
- if(geo==1,
- alpha="abcdefghijklmnopqrstuvwxyz";
- forall(1..length(tmp1),
- tmp="k"+BezierNumber+"n"+text(nc)+substring(alpha,#-1,#);
- Putpoint(tmp,tmp1_#,parse(tmp+".xy"));
- inspect(parse(tmp),"labeled",false);
- inspect(parse(tmp),"ptsize",3);
- tmp1_#=parse(tmp+".xy");
- );
- forall(1..length(tmp2),
- tmp="c"+BezierNumber+"n"+text(nc)+substring(alpha,#-1,#)+"1";
- Putpoint(tmp,tmp2_#_1,parse(tmp+".xy"));
- inspect(parse(tmp),"labeled",false);
- inspect(parse(tmp),"color",4);
- inspect(parse(tmp),"ptsize",3);
- tmp2_#_1=parse(tmp+".xy");
- tmp="c"+BezierNumber+"no"+text(nc)+substring(alpha,#-1,#)+"2";
- Putpoint(tmp,tmp2_#_2,parse(tmp+".xy"));
- inspect(parse(tmp),"labeled",false);
- inspect(parse(tmp),"color",4);
- inspect(parse(tmp),"ptsize",3);
- tmp2_#_2=parse(tmp+".xy");
- );
- BezierNumber=BezierNumber+1;
- );
- Bezier(file+text(nc),tmp1,tmp2,options);// 16.04.22upto
- out=append(out,"bz"+tmp);
- );
- out;
-);
-
-Ospline(nm,ptlist):=Ospline(nm,ptlist,[]);
-Ospline(nm,ptlist,options):=(
-//help:Ospline("1",ptlist,[options]);
- regional(tmp,tmp1,tmp2,list,ptL,ctrL,name,closed,flg,
- p0,p1,p2,p3,pQ,pR,cc,p01,p02,p11,p12,p21,p22,p31,p32);
- name="o"+nm;
- if(isstring(ptlist),list=parse(ptlist),list=ptlist);
- if(|list_1-list_(length(list))|<10^(-6),closed=1,closed=0);
-// list=apply(list,LLcrd(#));
- ctrL=[];
- forall(1..(length(list)-1),
- flg=0;
- p1=Lcrd(list_#); // 16.08.16
- p2=Lcrd(list_(#+1)); // 16.08.16
- if(#==1 % #==length(list)-1,
- flg=1;
- if(closed==0,
- pQ=(p1+2*p2)/3; // 15.09.21 // 16.08.16
- pR=(2*p1+p2)/3; // 16.08.16
- ctrL=append(ctrL,[pQ,pR]);
- flg=2;
- ,
- if(#==1,
- p0=Lcrd(list_(length(list)-1)); // 16.08.16
- p3=Lcrd(list_(#+2)); // 16.08.16
- ,
- p0=Lcrd(list_(#-1)); // 16.08.16
- p3=Lcrd(list_2); // 16.08.16
- );
- );
- );
- if(flg<=1,
- if(flg==0,
- p0=Lcrd(list_(#-1)); // 16.08.16
- p3=Lcrd(list_(#+2)); // 16.08.16
- );
- tmp=1+sqrt((1+Dotprod(p2-p0,p3-p1)/|p2-p0|/|p3-p1|)/2);
- cc=4*|p2-p1|/3/(|p2-p0|+|p3-p1|)/tmp;
- pQ=p1+cc*(p2-p0); // 15.09.21 // 16.08.16
- pR=p2+cc*(p1-p3); // 16.08.16
- ctrL=append(ctrL,[pQ,pR]);
- );
- );
-// list=apply(list,LLcrd(#)); // 16.08.16
-// ctrL=apply(ctrL,LLcrd(#));
- if(closed==0, // 15.09.21
- p1=ctrL_2_1;
- p2=Lcrd(list_2); // 16.08.16
- pQ=p2+(p2-p1);
- ctrL_1=[pQ];
- tmp=length(ctrL);
- tmp1=ctrL_(tmp-1);
- p1=ctrL_(tmp-1)_2;
- p2=Lcrd(list_(tmp)); // 16.08.16
- pQ=p2+(p2-p1);
- ctrL_tmp=[pQ];
- );
- Bezier("o"+nm,list,ctrL,options);
-);
-
-CRspline(nm,ptL):=CRspline(nm,ptL,[]);
-CRspline(nm,ptL,options):=(
- // Catmull-Rom spline
-//help:CRspline("1",[A,B,C,A]);
- regional(name,ptlist,ctrpts,eqL,opcindy,c,v,tmp,tmp1,tmp2,ctrlist,cflg);
- name="crsp"+nm;
- if(MeasureDepth(ptL)==1,tmp=[ptL],tmp=ptL);
- ptlist=tmp_1;
- if(length(tmp)==1,
- cflg=1;
- ,
- cflg=0;
- ctrpts=tmp_2;
- );
- c=1/6;
- tmp=Divoptions(options);
- eqL=tmp_5;
- opcindy=tmp_(length(tmp)); // 15.03.05
- forall(eqL,
- if(substring(#,0,1)=="R",
- tmp2=indexof(#,"=");
- c=parse(substring(#,tmp2,length(#)));
- );
- );
- ptlist=apply(ptlist,Lcrd(#)); // 16.08.16
- ctrlist=[];
- forall(1..(length(ptlist)-1),
- if(#==1,
- if(cflg==0,
- tmp1=ctrpts_1;
- ,
- v=ptlist_2-ptlist_(length(ptlist)-1);
- tmp1=ptlist_#+c*v;
- );
- ,
- v=ptlist_(#+1)-ptlist_(#-1);
- tmp1=ptlist_#+c*v;
- );
- if(#==length(ptlist)-1,
- if(cflg==0,
- tmp2=ctrpts_2;
- ,
- v=ptlist_2-ptlist_#;
- tmp2=ptlist_(#+1)-c*v;
- );
- ,
- v=ptlist_(#+2)-ptlist_#;
- tmp2=ptlist_(#+1)-c*v;
- );
- tmp=select(options,indexof(text(#),"->")>0);
- tmp=append(tmp,"notex"); //15.03.05
- Pointdata(name+text(#),[tmp1,tmp2],tmp);
- ctrlist=append(ctrlist,[tmp1,tmp2]);
- );
- Bezier(nm,ptlist,ctrlist,options);
-);
-
-Beziersmooth(nm,ptL):=Bzspline(nm,ptL,[]);
-//help:Beziersmooth("1",[A,B,C,A]);
-Beziersmooth(nm,ptL,options):=Bzspline(nm,ptL,options);
-Bzspline(nm,ptL):=Bzspline(nm,ptL,[]);
-Bzspline(nm,ptLorg,options):=(
- // smooth bezier
- regional(name,Eps,ptL,pt,pt1,pt2,pt3,npt,lstr,
- tmp,tmp1,tmp2,cflg,ctrlist);
- name="bzsp"+nm;
- Eps=10^(-3);
- ptL=apply(ptLorg,Lcrd(#)); // 16.08.16
- if(|ptL_1-ptL_(length(ptL))|<Eps,cflg=1,cflg=0);
- forall(2..length(ptL),
- pt=ptL_#;
- pt1=ptL_(#-1);
- tmp1="C"+text(#-1)+"q";
- Putpoint(tmp1,(pt1+4*pt)/5,Lcrd(parse(tmp1))); // 16.08.16
- );
- forall(2..(length(ptL)-1),
- if(#<length(ptL) % cflg==1,
- lstr="c"+text(#);
- pt=ptLorg_#; // 16.08.16
- pt1=parse("C"+text(#-1)+"q");
- create([lstr],"Join",[pt1,pt]);
- tmp2="C"+text(#)+"p";
- tmp=Append((2*pt.xy-pt1.xy),1);
- create([tmp2],"PointOnLine",[parse(lstr),tmp]);
- );
- );
- if(cflg==0,
- pt=ptL_1;
- pt1=ptL_2;
- tmp1="C1p";
- Putpoint(tmp1,(4*pt+pt1)/5,Lcrd(parse(tmp1))); // 16.08.16
- );
- if(cflg==1,
- lstr="c1";
- pt=ptLorg_1; // 16.08.16
- pt1=parse("C"+text(length(ptL)-1)+"q");
- create([lstr],"Join",[pt1,pt]);
- tmp1="C1p";
- tmp=Append((2*pt.xy-pt1.xy),1);
- create([tmp1],"PointOnLine",[parse(lstr),tmp]);
- );
- ctrlist=[];
- forall(1..(length(ptL)-1),
- if(#>1 % cflg==1,
- tmp1="c"+text(#);
- inspect(parse(tmp1),"alpha",0.3);
- );
- tmp1="C"+text(#)+"p";
- tmp2="C"+text(#)+"q";
- inspect(parse(tmp1),"ptsize",3);
- inspect(parse(tmp1),"color",3);
- inspect(parse(tmp2),"ptsize",3);
- inspect(parse(tmp2),"color",3);
- tmp=[parse(tmp1),parse(tmp2)];
- ctrlist=append(ctrlist,tmp);
- );
- Bezier(nm,ptL,ctrlist,options);
- [ptL,ctrlist];
-);
-
-Beziersym(nm,ptL):=Bzsspline(nm,ptL,[]);
-Beziersym(nm,ptL,options):=Bzsspline(nm,ptL,options);
-Bzsspline(nm,ptL):=Bzsspline(nm,ptL,[]);
-Bzsspline(nm,ptLorg,options):=(
- // smooth bezier with symmetric control points
- regional(name,Eps,ptL,pt,pt1,pt2,pt3,npt,lstr,
- tmp,tmp1,tmp2,cflg,ctrlist);
- name="bzssp"+nm;
- Eps=10^(-3);
- ptL=apply(ptLorg,Lcrd(#)); // 16.08.16
- if(|ptL_1-ptL_(length(ptL))|<Eps,cflg=1,cflg=0);
- forall(2..length(ptL),
- pt=ptL_#;
- pt1=ptL_(#-1);
- tmp1="C"+text(#-1)+"q";
- Putpoint(tmp1,(pt1+4*pt)/5,Lcrd(parse(tmp1)));
- );
- forall(2..(length(ptL)-1),
- if(#<length(ptL) % cflg==1,
- pt=ptL_#;
- pt1=parse("C"+text(#-1)+"q");
- tmp2="C"+text(#)+"p=2*pt-pt1";
- parse(tmp2);
- );
- );
- if(cflg==0,
- pt=ptL_1;
- pt1=ptL_2;
- Putpoint("C1p",(4*pt+pt1)/5,Lcrd(C1p)); // 16.08.16
- inspect(C1p,"ptsize",3);
- inspect(C1p,"color",3);
- );
- if(cflg==1,
- pt=ptL_1;
- pt1=Lcrd(parse("C"+text(length(ptL)-1)+"q")); // 16.08.16
- tmp1="Putpoint("+Dq+"C1p"+Dq+",2*pt-pt1)"; // 16.08.16
- parse(tmp1);
- );
- ctrlist=[];
- forall(1..(length(ptL)-1),
- tmp1="C"+text(#)+"p";
- tmp2="C"+text(#)+"q";
- inspect(parse(tmp2),"ptsize",3);
- inspect(parse(tmp2),"color",3);
- tmp=[parse(tmp1),parse(tmp2)];
- ctrlist=append(ctrlist,tmp);
- );
- Bezier(nm,ptL,ctrlist,options);
- [ptL,ctrlist];
-);
-
-Listbspline2bz(listorg):=(
- regional(Eps,list,pcl,ptl,ctrl,k);
- Eps=10^(-3);
- list=apply(listorg,Lcrd(#)); // 16.08.16
- k=length(list);
- if(|list_1-list_k|>Eps,
- pcl=list;
- pcl_1=2*list_1-list_2;
- pcl_k=2*list_k-list_(k-1);
- ,
- pcl=concat(list,[list_2]);
- );
- ctrl=apply(2..(length(pcl)-1),[pcl_#]);
- ptl=apply(1..(length(pcl)-1),(pcl_#+pcl_(#+1))/2);
- [ptl,ctrl];
-);
-
-Bspline(nm,ctrL):=Bspline(nm,ctrL,[]);
-Bspline(nm,ctrL,options):=(
-//help:Bspline("",[A,B,C]);
- regional(list,tmp);
- list=Listbspline2bz(ctrL);
- tmp=BezierCurve("b"+nm,list_1,list_2,options);
- tmp;
-);
-
-MeetCurve(Crv,Xorg,Yorg):=(
- regional(Cv,tmp,tmp1,tmp2,X0,Y0,x1,x2,y1,y2,Ylist,Ban,Tate);
- if(isstring(Crv),Cv=parse(Crv),Cv=Crv);
- if(MeasureDepth(Cv)==2,Cv=Cv_1);
- Cv=apply(Cv,LLcrd(#)); // 14.12.18
- while(length(Cv)==1,
- Cv=Cv_1;
- );
- Cv=apply(Cv,Lcrd(#));
- tmp1=min(apply(Cv,#_1));
- tmp2=max(apply(Cv,#_1));
- if(isstring(Xorg),X0=parse(Xorg),X0=Xorg);
- if(isstring(Yorg),Y0=parse(Yorg),Y0=Yorg);
- if(X0<tmp1,
- X0=tmp1;
- ,
- if(X0>tmp2,
- X0=tmp2;
- );
- );
- tmp1=select(
- 1..(length(Cv)-1),Cv_#_1<=X0 & X0<=Cv_(#+1)_1);
- tmp2=select(
- 1..(length(Cv)-1),Cv_#_1>=X0 & X0>=Cv_(#+1)_1);
- tmp2=remove(tmp2,common(tmp2,tmp1));
- Ban=concat(tmp1,tmp2);
- Tate=select(Ban,
- abs(Cv_#_1-Cv_(#+1)_1)<=
- 10^(-2)*abs(Cv_#_2-Cv_(#+1)_2)
- );
- Ban=remove(Ban,Tate);
- Ylist=[];
- forall(Ban,
- tmp=Cv_#;
- x1=tmp_1; y1=tmp_2;
- tmp=Cv_(#+1);
- x2=tmp_1; y2=tmp_2;
- tmp=((x2-X0)*y1+(X0-x1)*y2)/(x2-x1);
- Ylist=append(Ylist,tmp);
- );
- forall(Tate,
- tmp=Cv_#;
- x1=tmp_1; y1=tmp_2;
- tmp=Cv_(#+1);
- x2=tmp_1; y2=tmp_2;
- tmp1=min([y1,y2]);
- tmp2=max([y1,y2]);
- if(Y0<tmp1,
- tmp=tmp1;
- ,
- if(Y0>tmp2,
- tmp=tmp2;
- ,
- tmp=Y0;
- );
- );
- Ylist=append(Ylist,tmp);
- );
- tmp=sort(Ylist,abs(#_1-Y0));
- [X0,tmp_1];
-);
-
-PutonLine(name,p1,p2):=PutonLine(name,p1,p2,[]);
-PutonLine(name,p1org,p2org,options):=(
-//help:PutonLine("C","sgAB");
-//help:PutonLine("C",pA,pB);
- regional(par,p1,p2,dx,dy,tmp,tmp1,tmp2);
- par=0.5;
- tmp=Divoptions(options);
- if(length(tmp_6)>0,
- par=tmp_6_1;
- );
- p1=Lcrd(p1org);//16.10.11from
- p2=Lcrd(p2org);
- dx=p2_1-p1_1;
- dy=p2_2-p1_2;
- tmp1=(1-par)*p1+par*p2;
- if(abs(dx)>abs(dy),
- tmp=name+".x";
- tmp2="["+tmp+",dy/dx*("+tmp+"-p1_1)+p1_2]";//16.10.11upto
- Putpoint(name,tmp1,parse(tmp2));
- ,
- if(abs(dy)>0,
- tmp=name+".y";
- tmp2="[dx/dy*("+tmp+"-p1.y)+p1_1,"+tmp+"]";
- Putpoint(name,tmp1,parse(tmp2));
- ,
- tmp2=p1;//16.10.11
- Putpoint(name,tmp1,tmp2);
- );
- );
-);
-
-PutonSeg(name,sgstr):=(
- regional(seg,p1,p2);
- if(isstring(sgstr),seg=parse(sgstr),seg=sgstr);
- PutonSeg(name,LLcrd(seg_1),LLcrd(seg_2));
-);
-PutonSeg(name,p1,p2):=PutonSeg(name,p1,p2,[]);
-PutonSeg(name,p1org,p2org,options):=(
-//help:PutonSeg("C","sgAB");
-//help:PutonSeg("C",pA,pB);
- regional(par,dx,dy,p,tmp,tmp1,tmp2);
- par=0.5;
- tmp=Divoptions(options);
- if(length(tmp_6)>0,
- par=tmp_6_1;
- );
- p1=Lcrd(p1org);//16.10.11from
- p2=Lcrd(p2org);
- PutonLine(name,p1,p2,[par]);
- dx=p2_1-p1_1;
- dy=p2_2-p1_2;
- p=parse(name+".xy");
- p=LLcrd(p);
- if(abs(dx)>abs(dy) & (p_1-p1_1)*(p_1-p2_1)>0,
- if(|p-p1|<|p-p2|,
- parse(name+".xy=Pcrd(p1)");
- ,
- parse(name+".xy=Pcrd(p2)");
- );
- );
- if(abs(dx)<abs(dy) & (p_2-p1_2)*(p_2-p2_2)>0,
- if(|p-p1|<|p-p2|,
- parse(name+".xy=Pcrd(p1)");
- ,
- parse(name+".xy=Pcrd(p2)");//16.10.11upto
- );
- );
-);
-
-PutonCurve(pn,crv):=PutonCurve(pn,crv,[]);
-PutonCurve(pn,crv,options):=(
-//help:PutonCurve("A","gr1");
- regional(Pmt,pstr,optionL,leftlim,rightlim,tmp,tmp1,Flg,Msg);
- if(!islist(options),optionL=[options],optionL=options);
- leftlim=XMIN;
- rightlim=XMAX;
- Flg=0;
- Msg="y";
- forall(optionL,
- if(isstring(#), // 16.02.10 from
- tmp=indexof(#,"=");
- tmp1=Toupper(substring(#,tmp,tmp+1));
- if(tmp1=="N", Msg="n"); // 16.02.10 upto
- ,
- if(Flg==0,
- leftlim=#;
- Flg=Flg+1;
- ,
- rightlim=#;
- );
- );
- );
- Pmt=MeetCurve(crv,leftlim,0);
- pstr=apply(allpoints(),textformat(#,5)); // 15.04.07
- if(!contains(pstr,pn),
- createpoint(pn,Pcrd(Pmt));
- ,
- tmp1=parse(pn+".x");
- if(tmp1< leftlim % tmp1>rightlim,
- if(tmp1< leftlim,tmp= leftlim, tmp=rightlim);
- Pmt=MeetCurve(crv,textformat(tmp,5),pn+".y");
- ,
- Pmt=MeetCurve(crv,pn+".x",pn+".y");
- );
- ptstr=pn+".xy="+textformat(Pcrd(Pmt),5)+";";
- parse(ptstr);
- );
- if(Msg=="y",
- println("Put "+pn+" on Curve "+text(crv));
- );
-);
-
-CrossPoint(name,Crv1,Crv2,range):=(
- regional(Mx1,Mx2,Mx3,tmp,Crs1,Crs2,Crs3,Crs4,df1,df2);
- Mx1=range_1; Mx2=range_2;
- repeat(15,
- Mx3=(Mx1+Mx2)/2;
- Crs1=MeetCurve(Crv1,Mx1,0);
- Crs2=MeetCurve(Crv2,Mx1,0);
- Crs3=MeetCurve(Crv1,Mx3,0);
- Crs4=MeetCurve(Crv2,Mx3,0);
- df1=Crs1_2-Crs2_2;
- df2=Crs3_2-Crs4_2;
- if((df1>0 & df2>0) % (df1<0 & df2<0),
- Mx1=Mx3;
- ,
- Mx2=Mx3;
- );
- );
- Putpoint(name,Crs1);
-);
-
-Setscaling(sc):=(
-//help:Setscaling(3);
- SCALEX=1;
- SCALEY=sc;
- Com0th("Setscaling("+sc+")");
- Setwindow("Msg=no");
-);
-
-Tabledatalight(nm,xLst,yLst,rmvL):=Tabledatalight(nm,xLst,yLst,rmvL,[]);
-Tabledatalight(nm,xLst,yLst,rmvL,options):=(
-//help:Tabledatalight("",xLst,yLst,rmvL,[2]);
- regional(name,upleft,ul,flg,tick,n,m,xsize,ysize,rlist,clist,Tb,
- tmp,tmp1,tmp2,tmp3,Eps);
-// name="tb"+nm;
- name="tb";
- println("Tabledatalight "+name+" generated");
- tmp=sum(yLst);
- upleft=[0,tmp];
- tick=1;
- tmp=Divoptions(options);
- flg=0;
- forall(tmp_6,
- if(flg==0,
- tick=#;
- flg=flg+1;
- ,
- upleft=tmp_6_1;
- );
- );
- ul=upleft/10;
- m=length(xLst);
- n=length(yLst);
- xsize=sum(xLst);
- ysize=sum(yLst);
- clist=[ul];
- rlist=[ul];
- forall(1..m,
- tmp1=clist_(#)_1+xLst_#/10;
- clist=append(clist,[tmp1,clist_1_2]);
- );
- forall(1..n,
- tmp1=rlist_(#)_2-yLst_#/10;
- rlist=append(rlist,[0,tmp1]);
- );
- Tb=[clist,rlist];
- tmp=name+"="+Tb;
- parse(tmp);
- forall(0..m,
- tmp1="c"+text(#)+"r0";
- tmp2="c"+text(#)+"r"+text(n);
- Tlistplot("c"+text(#)+"r0r"+text(n),[tmp1,tmp2],options);
- if(mod(#,tick)==0 % #==m,
- tmp=clist_(#+1);
- drawtext(clist_(#+1)-[0.04,-0.1],"c"+text(#));
- );
- );
- forall(0..n,
- tmp1="c0r"+text(#);
- tmp2="c"+text(m)+"r"+text(#);
- Tlistplot("r"+text(#)+"c0c"+text(m),[tmp1,tmp2],options);
- if(mod(#,tick)==0 % #==n,
- tmp=rlist_(#+1);
- drawtext(rlist_(#+1)-[0.4,0.1],"r"+text(#));
- );
- );
- Tsegrmv(rmvL,options);
- Addax(0);
- Eps=10^(-3);
- tmp1=clist_(length(clist));
- tmp2=rlist_1;
- tmp3=rlist_(length(rlist));
- Setwindow([0-Eps,tmp1_1+Eps],[tmp3_2-Eps,tmp2_2+Eps]);
- Tb;
-);
-
-Tabledata(nm,n,m,xsize,ysize,rmvL):=
- Tabledata(nm,n,m,xsize,ysize,rmvL,[]);
-Tabledata(nm,n,m,xsize,ysize,rmvL,options):=(
- regional(Tb,name,tmp,xLst,yLst);
- name="tb"+nm;
- xLst=apply(1..n,xsize/n);
- yLst=apply(1..m,ysize/m);
- Tabledata(nm,xLst,yLst,rmvL,options)
-);
-Tabledata(nm,xLst,yLst,rmvL):=Tabledata(nm,xLst,yLst,rmvL,[]);
-Tabledata(nm,xLst,yLst,rmvL,options):=(
-//help:Tabledata("",xLst,yLst,rmvL,[2]);
- regional(name,upleft,ul,flg,tick,n,m,xsize,ysize,rlist,clist,Tb,
- tmp,tmp1,tmp2,tmp3,Eps);
-// name="tb"+nm;
- name="tb";
- println("Tabledata "+name+" generated");
- tmp=sum(yLst);
- upleft=[0,tmp];
- tick=1;
- tmp=Divoptions(options);
- flg=0;
- forall(tmp_6,
- if(flg==0,
- tick=#;
- flg=flg+1;
- ,
- upleft=tmp_6_1;
- );
- );
- ul=upleft/10;
- m=length(xLst);
- n=length(yLst);
- xsize=sum(xLst);
- ysize=sum(yLst);
- clist=[ul];
- rlist=[ul];
- forall(1..m,
- tmp1=clist_(#)_1+xLst_#/10;
- clist=append(clist,[tmp1,clist_1_2]);
- );
- forall(1..n,
- tmp1=rlist_(#)_2-yLst_#/10;
- rlist=append(rlist,[0,tmp1]);
- );
- Tb=[clist,rlist];
- tmp=name+"="+Tb;
- parse(tmp);
- forall(0..m,
- tmp="C"+text(#);
- tmp1="c"+text(#)+"r0";
- if(#==0,
- Putpoint(tmp,Tgrid(tmp1));
- ,
- Putpoint(tmp,Tgrid(tmp1),[parse(tmp+".x"),C0.y]);
- clist_(#+1)=parse(tmp+".xy");
- );
- inspect(parse(tmp),"ptsize",3);
- inspect(parse(tmp),"labeled",false);
- if(mod(#,tick)==0 % #==m,
- tmp=clist_(#+1);
- drawtext(clist_(#+1)-[0.04,-0.1],"c"+text(#));
- );
- );
- forall(0..n,
- tmp="R"+text(#);
- tmp1="c0r"+text(#);
- if(#==0,
- Putpoint(tmp,Tgrid(tmp1));
- ,
- Putpoint(tmp,Tgrid(tmp1),[R0.x,parse(tmp+".y")]);
- rlist_(#+1)=parse(tmp+".xy");
- );
- Putpoint(tmp,Tgrid(tmp1),[R0.x,parse(tmp+".y")]);
- inspect(parse(tmp),"ptsize",3);
- inspect(parse(tmp),"labeled",false);
- if(mod(#,tick)==0 % #==n,
- tmp=rlist_(#+1);
- drawtext(rlist_(#+1)-[0.4,0.1],"r"+text(#));
- );
- );
- Tb=[clist,rlist];
- tmp=name+"="+Tb;
- parse(tmp);
- forall(0..m,
- tmp1="c"+text(#)+"r0";
- tmp2="c"+text(#)+"r"+text(n);
- Tlistplot("c"+text(#)+"r0r"+text(n),[tmp1,tmp2],options);
- if(#<m,
- tmp1=parse("C"+text(#));
- tmp2=parse("C"+text(#+1));
- tmp=(tmp1.xy+tmp2.xy)/2;
- drawtext(tmp+[-0.2,0.5],text((tmp2.x-tmp1.x)*10));
- );
- );
- forall(0..n,
- tmp1="c0r"+text(#);
- tmp2="c"+text(m)+"r"+text(#);
- Tlistplot("r"+text(#)+"c0c"+text(m),[tmp1,tmp2],options);
- if(#<n,
- tmp1=parse("R"+text(#));
- tmp2=parse("R"+text(#+1));
- tmp=(tmp1.xy+tmp2.xy)/2;
- drawtext(tmp-[1.2,0.1],text(abs(tmp1.y-tmp2.y)*10));
- );
- );
- Tsegrmv(rmvL,options);
- Addax(0);
- Eps=10^(-3);
- tmp1=clist_(length(clist));
- tmp2=rlist_1;
- tmp3=rlist_(length(rlist)); // 15.06.11
- Setwindow([0-Eps,tmp1_1+Eps],[tmp3_2-Eps,tmp2_2+Eps]);
- Tb;
-);
-
-Tseginfo(seg):=(
- regional(cr,tp,tpc,n1,n2,n3,tmp,tmp1,tmp2);
- if(substring(seg,0,2)=="sg",
- cr=substring(seg,2,length(seg));
- ,
- cr=seg;
- );
- tp=substring(cr,0,1);
- if(tp=="c",
- tpc="r";
- ,
- tpc="c";
- );
- tmp1=indexof(cr,tpc);
- tmp=substring(cr,tmp1,length(cr));
- tmp2=tmp1+indexof(tmp,tpc);
- n1=substring(cr,1,tmp1-1);
- n2=substring(cr,tmp1,tmp2-1);
- n3=substring(cr,tmp2,length(cr));
- [tp+n1,tpc,parse(n2),parse(n3)];
-);
-
-Tsegrmv(rmvL):=Tsegrmv(rmvL,[]);
-Tsegrmv(rmvL,options):=(
- regional(cr,gcL,flg,gc,hd,tail,tpc,m1,m2,n1,n2,tmp,tmp1,tmp2);
- forall(rmvL,cr,
- tmp1=Tseginfo(cr);
- hd=tmp1_1;
- tpc=tmp1_2;
- m1=tmp1_3;
- m2=tmp1_4;
- gcL=select(GCLIST,Tseginfo(#_1)_1==tmp1_1);
- flg=0;
- forall(gcL,
- if(flg==0,
- tmp=Tseginfo(#_1);
- n1=tmp_3;
- n2=tmp_4;
- if(m1>=n1 & m2<=n2,
- gc=#;
- flg=1;
- );
- );
- );
- if(flg==1,
- Changestyle([gc_1],["nodisp"]);
- tail="";
- if(indexof(hd,"r")>0,
- tail=hd; hd="";
- );
- if(n1<m1,
- tmp1=tpc+text(n1);
- tmp2=tpc+text(m1);
- tmp=hd+tail+tmp1+tmp2;
- Tlistplot(tmp,[hd+tmp1+tail,hd+tmp2+tail],options);
- );
- if(m2<n2,
- tmp1=tpc+text(m2);
- tmp2=tpc+text(n2);
- tmp=hd+tail+tmp1+tmp2;
- Tlistplot(tmp,[hd+tmp1+tail,hd+tmp2+tail],options);
- );
- );
- );
-);
-
-Tgrid(ptstr):=(
-//help:Tgrid("c2r5");
- regional(tmp,tmp1,tmp2);
- tmp=parse(ptstr);
- if(islist(tmp),
- tmp;
- ,
- tmp=indexof(ptstr,"r");
- tmp1=substring(ptstr,1,tmp-1);
- tmp1=parse(tmp1);
- tmp2=substring(ptstr,tmp,length(ptstr));
- tmp2=parse(tmp2);
- [tb_1_(tmp1+1)_1,tb_2_(tmp2+1)_2];
- );
-);
-
-Tlistplot(ptL):=Tlistplot(ptL,[]);
-Tlistplot(Ag1,Ag2):=(
- regional(nm,ptL,options);
- if(isstring(Ag1),
- nm=Ag1;
- ptL=Ag2;
- options=[];
- ,
- ptL=Ag1;
- options=Ag2;
- nm=ptL_1+ptL_2;
- );
- Tlistplot(nm,ptL,options);
-);
-Tlistplot(nm,ptL,options):=(
-//help:Tlistplot(["c0r0","c0r4"]);
-//help:Tlistplot("1",["c0r0","c0r4"]);
- regional(tmp);
- tmp=apply(ptL,Tgrid(#)); // 15.06.03
- Listplot(nm,tmp,append(options,"Msg=no"));
-);
-
-ChangeTablestyle(nameL,style):=(
-////help:ChangeTablestyle(["r0c0c3"],["da"]);
- regional(nmL,tmp,tmp1,tmp2);
- if(islist(nameL),nmL=nameL,nmL=[nameL]);
- nmL=apply(nmL,"sg"+#);
- nmL=select(nmL,islist(parse(#)));
- Changestyle(nmL,style);
-);
-
-Findcell(pos1,pos2):=Findcell("",pos1,pos2);
-Findcell(Tbdata,pos1,pos2):=(
-//help:Findcell("c0r0","c2r1");
- regional(tmp1,tmp2,posnw,posse,ctr,dx,dy);
- if(isstring(pos1),
- posnw=Tgrid(pos1); // 15.05.20
- posse=Tgrid(pos2);
- //posnw=parse(pos1);
- //posse=parse(pos2);
- ,
- if(islist(pos1),
- posnw=pos1;
- posse=pos2;
- ,
- tmp1="c"+text(pos1-1)+"r"+text(pos2-1);
- tmp2="c"+text(pos1)+"r"+text(pos2);
- posnw=Tgrid(tmp1);
- posse=Tgrid(tmp2);
-// posnw=parse(tmp1);
-// posse=parse(tmp2);
- );
- );
- ctr=(posnw+posse)/2;
- dx=abs(posse_1-ctr_1);
- dy=abs(posnw_2-ctr_2);
- [ctr,dx,dy];
-);
-
-Putcell(pos1,pos2,dir,lttr):=Putcell("",pos1,pos2,dir,lttr);
-Putcell(Tbdata,pos1,pos2,dir,lttr):=(
-//help:Putcell("c0r0","c2r1","lt","abc");
-//help:Putcell(2,3,"c","xyz");
- regional(tmp,tmp1,tmp2,posnw,posse,
- posdir,posstr,ctr,dx,dy);
- tmp=Findcell(Tbdata,pos1,pos2);
- ctr=tmp_1; dx=tmp_2; dy=tmp_3;
- posdir=ctr;
- posstr=dir;
- if(indexof(dir,"b")>0,
- posdir_2=posdir_2-dy;
- posstr=replace(posstr,"b","n");
- );
- if(indexof(dir,"t")>0,
- posdir_2=posdir_2+dy;
- posstr=replace(posstr,"t","s");
- );
- if(indexof(dir,"l")>0,
- posdir_1=posdir_1-dx;
- posstr=replace(posstr,"l","e");
- );
- if(indexof(dir,"r")>0,
- posdir_1=posdir_1+dx;
- posstr=replace(posstr,"r","w");
- );
- Letter(posdir,posstr,text(lttr));
-);
-
-Putcellexpr(pos1,pos2,dir,ex):=Putcellexpr("",pos1,pos2,dir,ex);
-Putcellexpr(Tbdata,pos1,pos2,dir,ex):=(
-//help:Putcellexpr("c0r0","c2r1","lt","abc");
-//help:Putcellexpr(2,3,"c","\sin x");
- Putcell(Tbdata,pos1,pos2,dir,"$"+text(ex)+"$");
-);
-
-Putrow(nrow,dir,lttrL):=Putrow("",nrow,dir,lttrL);
-Putrow(Tbdata,nrow,dir,lttrL):=(
-//help:Putrow(1,"c",["x","y","z"]);
- regional(tmp,tmp1,mcol);
- mcol=length(lttrL);
- forall(1..mcol,
- Putcell(Tbdata,#,nrow,dir,lttrL_#);
- );
-);
-
-Putrowexpr(nrow,dir,exL):=Putrowexpr("",nrow,dir,exL);
-Putrowexpr(Tbdata,nrow,dir,exL):=(
-//help:Putrowexpr(2,"r",["x","y","z"]);
- regional(lttrL);
- lttrL=apply(exL,"$"+#+"$");
- Putrow(Tbdata,nrow,dir,lttrL);
-);
-
-PutcoL(mcol,dir,lttrL):=PutcoL("",mcol,dir,lttrL);
-PutcoL(Tbdata,mcol,dir,lttrL):=(
-//help:PutcoL(1,"c",["x","y","z"]);
- regional(tmp,tmp1,nrow);
- nrow=length(lttrL);
- forall(1..nrow,
- Putcell(Tbdata,mcol,#,dir,lttrL_#);
- );
-);
-PutcoLexpr(mcol,dir,exL):=PutcoLexpr("",mcol,dir,exL);
-PutcoLexpr(Tbdata,mcol,dir,exL):=(
-//help:PutcoLexpr(2,"r",["x","y","z"]);
- regional(lttrL);
- lttrL=apply(exL,"$"+#+"$");
- PutcoL(Tbdata,mcol,dir,lttrL);
-);
-
-Setwindow():=Setwindow("Msg=yes");
-Setwindow(str):=(
- regional(tmp,tmp1,tmp2,msg);
- msg="y";
- tmp=indexof(str,"="); // 16.02.10
- tmp1=Toupper(substring(str,tmp,tmp+1));
- if(tmp1=="N",msg="n");
- if((ispoint(SW) & ispoint(NE)),
- tmp1=Lcrd(SW);
- tmp2=Lcrd(NE);
- XMIN=tmp1_1; XMAX=tmp2_1;
- YMIN=tmp1_2; YMAX=tmp2_2;
- ,
-// XMIN=-5; XMAX=5;
-// YMIN=Lcrdy(-5); YMAX=Lcrdy(5);
- createpoint("SW",Pcrd([XMIN,YMIN]));
- createpoint("NE", Pcrd([XMAX,YMAX]));
- );
- if(msg=="y",
- println("Setwindow(["+XMIN+","+XMAX+"],["+YMIN+","+YMAX+"])");
- );
- layer(KETPICLAYER);
- autoclearlayer(KETPICLAYER,true);
- drawpoly([Pcrd([XMIN,YMIN]), Pcrd([XMAX,YMIN]),
- Pcrd([XMAX,YMAX]),Pcrd([XMIN,YMAX])],color->[1,1,1]);
-);
-Setwindow(xrange,yrange):=(
-//help:Setwindow([2,3],[-1,1]);
- XMIN=xrange_1;
- XMAX=xrange_2;
- YMIN=yrange_1;
- YMAX=yrange_2;
-// Setwindow();
-);
-
-Sciform(list):=(
- regional(plotlist,comp,pos,out,out2,nn,strL,flg,
- tmp,tmp1,tmp2,tmp3,Nj);
- plotlist=Flatten([list]);
- out=replace(plotlist_1,".xy","");
- out=replace(out,".x","(1)");
- out=replace(out,".y","(2)");
- if(length(plotlist)==1,
- comp=[];
- forall(1..length(out),
- comp=append(comp,substring(out,#-1,#));
- );
- out="";
- pos=0;
- forall(comp,
- if(#!="'",
- out=out+#;
- ,
- if(pos==0,
- tmp=indexof(out,"Assign(");
- if(substring(out,length(out)-7,length(out))=="Assign(",
- out=out+"'";
- pos=1;
- ,
- out=out+"Assign('";
- pos=2;
- );
- ,
- if(pos==2,
- out=out+"')";
- ,
- out=out+"'";
- );
- pos=0;
- );
- );
- );
- ,
- forall(2..length(plotlist),
- comp=plotlist_#;
- if(isstring(comp),
- pos=indexof(comp,"Assign(");
- if(pos>0,
- comp=substring(comp,6,length(comp));
- );
- out=out+"Assign(";
- comp=replace(comp,".xy","");
- comp=replace(comp,".x","(1)");
- comp=replace(comp,".y","(2)");
- out=out+"'"+comp+"'";
- out=out+"),";
- );
- if(islist(comp),
- forall(comp,
- out=out+"'"+#+"',";
- );
- );
- );
- if(length(plotlist)>1,
- out=substring(out,0,length(out)-1);
- out=out+");";
- );
- );
- pos=[];
- forall(1..length(out),
- tmp=indexof(substring(out,#-1,length(out)),"Assign");
- if(tmp>0,
- tmp1=#-1+tmp;
- if(length(pos)==0,
- pos=[tmp1];
- ,
- if(pos_(length(pos))<tmp1,
- pos=append(pos,tmp1);
- );
- );
- );
- );
- if(length(pos)>0,
- strL=[];
- Nj=0;
- forall(pos,
- tmp=substring(out,Nj,#-1);
- strL=append(strL,tmp);
- Nj=#-1;
- );
- strL=append(strL,substring(out,Nj,length(out)));
- out="";
- forall(strL,
- if(indexof(#,"Assign")==0,
- out=out+#;
- ,
- tmp=indexof(#,"('");
- tmp1=indexof(#,"')");
- tmp2=substring(#,tmp+1,tmp1-2);
- tmp3=substring(#,tmp1-2,length(#));
- if(indexof(tmp2,"=")==0,
- out=out+#;
- ,
- tmp=substring(tmp2,0,indexof(tmp2,"="));
- out=out+"'"+tmp+"'+"+"Assign('";
- tmp=substring(tmp2,indexof(tmp2,"="),length(tmp2));
- out=out+tmp+tmp3;
- );
- );
- );
- );
- out2=""; // patched 16.01.21 from
- nn=length(out);
- flg=0;
- forall(1..nn,
- if(flg==0,
- tmp=indexof(out,"='+Assign('");
- if(tmp==0,
- out2=out2+out;
- flg=1;
- ,
- out2=out2+substring(out,0,tmp);
- out=substring(out,tmp+10,length(out));
- tmp=indexof(out,"'"); // 16.04.19 from
- tmp1=substring(out,0,tmp-1);
- tmp2="1234567890";
- tmp=apply(1..length(tmp1),
- indexof(tmp2,substring(tmp1,#-1,#)));
- tmp=min(tmp);
- if(tmp==0, // 16.04.19 upto
- out2=out2+"'+Assign('";
- ,
- tmp=indexof(out,"'");
- out=substring(out,0,tmp)+substring(out,tmp+1,length(out)); // 16.04.18 upto
- );
- );
- );
- );
- out2=replace(out2,"Dist=","D=");
- out2=replace(out2,"Dis=","D=");
- out2;
-);
-
-
-Rform(list):=(
- regional(plotlist,comp,pos,out,strL,tmp,tmp1,tmp2,tmp3,Nj);
- out=list;
- out=replace(out,"[[[","list([[");
- out=replace(out,"[","c(");
- out=replace(out,"]",")");
- out=replace(out,".xy","");
- out=replace(out,".x","[1]");
- out=replace(out,".y","[2]");
- out;
-);
-
-Defvar(varstr):=(
- regional(name,value,tmp,tmp1);
- parse(varstr);
- tmp=indexof(varstr,"=");
- name=substring(varstr,0,tmp-1);
- value=substring(varstr,tmp,length(varstr));
- value=parse(value);
- tmp1=select(1..length(VLIST),VLIST_#_1==name+"=");
- if(length(tmp1)>0,
- tmp=tmp1_1;
- VLIST_tmp=[name+"=",value];
- ,
- VLIST=prepend([name+"=",value],VLIST);
- );
-);
-
-Defvar(name,value):=(
-//help:Defvar("a",0.3);
- regional(tmp,tmp1);
- if(islist(value),
- tmp1="[";
- forall(value,
- tmp1=tmp1+format(#,5)+",";
- );
- tmp1=substring(tmp1,0,length(tmp1)-1)+"]";
- ,
- tmp1=format(value,5);
- );
- tmp=name+"="+tmp1; // 15.02.06
- parse(tmp);
- VLIST=select(VLIST,#_1!=name+"="); // 15.02.08
- VLIST=prepend([name+"=",value],VLIST);
-);
-
-Iftosci(strorg):=( // 16.06.10
- regional(str,ifL,ppL,cpL,kk,sL,
- tmp,tmp1,tmp2,tmp3,tmp4);
- str=replace(strorg,LFmark,"");
- ifL=Indexall(str,"if(");
- ppL=Bracket(str,"()");
- cpL=Indexall(str,",");
- tmp1=Bracket(str,"[]");
- forall(1..(length(tmp1)/2),kk,
- cpL=select(cpL,#<tmp1_(2*kk-1)_1%#_1>tmp1_(2*kk)_1);
- );
- forall(1..length(ifL),kk,
- tmp=select(ppL,#_1>ifL_kk);
- tmp1=tmp_1;
- tmp2=select(tmp,#_2==-tmp1_2);
- tmp2=tmp2_1;
- tmp3=select(cpL,#>tmp1_1 & #<tmp2_1);
- ifL_kk=[tmp1_1,tmp2_1,tmp1_2,tmp3];
- );
- forall(1..length(cpL),kk,
- tmp=select(1..length(ifL),contains(ifL_#_4,cpL_kk));
- tmp1=tmp_(length(tmp));
- cpL_kk=[cpL_kk,tmp1];
- );
- sL=apply(1..length(str),substring(str,#-1,#));
- forall(1..length(ifL),kk,
- tmp1=ifL_kk_1;
- tmp2=ifL_kk_2;
- tmp=select(cpL,#_2==kk);
- tmp3=apply(tmp,#_1);
- sL_tmp1=" ";
- sL_tmp2=";end;";
- sL_(tmp3_1)=" then,";
- if(length(tmp3)>1,
- sL_(tmp3_2)=";else,";
- );
- );
- tmp=sum(sL);
-);
-
-Fortosci(strorg):=(
- regional(str,jj,var,tmp,tmp1,tmp2,tmp3,tmp4,
- Out,repL,Pflg,Iflg,Cflg);
- str=strorg;
- repL=[];
- tmp1=Indexall(str,"forall");
- tmp2=Indexall(str,",");
- forall(1..length(tmp1),jj,
- tmp=select(tmp2,#>tmp1_jj);
- var=substring(str,tmp_1,tmp_2-1);
- tmp3=substring(str,tmp1_jj-1,tmp_2-1);
- tmp=indexof(tmp3,"(");
- tmp4=substring(tmp3,tmp,length(tmp3));
- tmp=indexof(tmp4,",");
- tmp4=substring(tmp4,0,tmp-1);
- tmp4="for "+var+"="+tmp4;
- tmp4=replace(tmp4,"..",":");
- repL=concat(repL,[tmp3,tmp4]);
- );
- forall(1..length(repL)/2,
- str=replace(str,repL_(2*#-1),repL_(2*#));
- );
- tmp=Bracket(str);
- tmp=select(tmp,#_2==0);
- tmp=tmp_1_1;
- tmp1=substring(str,tmp-1,length(str));
- tmp1=replace(tmp1,")",";end");
- str=substring(str,0,tmp-1)+tmp1;
- str=replace(str,";;",";");
- str;
-);
-
-Deffun(name,bodylist):=(
-//help:Deffun("f(x)",["regional(y)","y=x^2*(x-3)","y"]); // 16.02.18
- regional(funstr,tmp,tmp1,str,Pos);
- funstr=name+":=(";
- forall(bodylist,
- funstr=funstr+#+";";
- );
- funstr=funstr+");";
- parse(funstr);
- tmp=bodylist_(length(bodylist));
- str="function "+tmp+"="+name+",";
- forall(1..(length(bodylist)-1),
- tmp1=bodylist_#;
- tmp1=replace(tmp1,LFmark,"");// 16.05.26
- tmp1=replace(tmp1," ","");// 16.05.26
- Pos=indexof(tmp1,"regional")+indexof(tmp1,"local");
- if(Pos==0,
- tmp=replace(tmp1,".xy","");
- tmp=replace(tmp,".x","(1)");
- tmp=replace(tmp,".y","(2)");
- if(indexof(tmp,"if(")>0,
- tmp=iftosci(tmp);
- );
- if(indexof(tmp,"forall(")>0, // 16.05.26from
- tmp=Fortosci(tmp);
- ); // 16.05.26upto
- str=str+tmp+",";
- );
- );
- str=str+"endfunction;";
- FUNLIST=append(FUNLIST,str);
-);
-
-Windispg():=(
- regional(Nj,Nk,Dt,Vj,tmp,tmp1,tmp2,tmp3,opcindy);
- gsave();
- layer(KETPIClayer);
- forall(GCLIST,Nj,
- if(isstring(Nj_1),Dt=parse(Nj_1),Dt=Nj_1); // 11.17
- if(islist(Dt) & length(Dt)>0, // 12.19,12.22
- tmp=MeasureDepth(Dt);
- if(tmp==1,Dt=[Dt]);
- opcindy=Nj_3;
- if(Nj_2<0,tmp1=0,tmp1=Nj_2);
- if(tmp1<10,
- forall(Dt,Nk,
-// tmp2=apply(Nk,if(ispoint(#),Lcrd(#),#));
-// tmp2=apply(tmp2,Pcrd(#));
- tmp2=Nk; // 14.12.04
- if(length(Nk)>1,
- forall(2..length(Nk),
- tmp3=textformat(Nk_[#-1,#],5);
- tmp3=substring(tmp3,1,length(tmp3)-1);
- if(tmp1==1,opcindy=opcindy+",dashpattern->[2,2]");
- tmp="draw("+tmp3+
- ",dashtype->"+text(tmp1)+",linecolor->"+KCOLOR+opcindy+")";
- parse(tmp);
- );
- ,
- if(length(Nk)==1,
- tmp="draw("+text(tmp2_1)+opcindy+")"; // 14.12.31
- parse(tmp);
- );
- );
- );
- );
- );
- );
-// if(ADDAXES=="1", // 16.10.08from
-// draw([XMIN,0],[XMAX,0],color->[0,0.2,0]);
-// draw([0,YMIIN],[0,YMAX],color->[0,0.2,0]);
-// Letter([[XMAX,0],"e","x",[0,YMAX],"n","y"]);
-// Letter([[0,0],"sw","O"]);
-// ); // 16.10.08upto
- grestore();
- layer(0);
-);
diff --git a/texmf-dist/doc/support/ketcindy/ketmanual/KeTCindyReferenceJ.pdf b/texmf-dist/doc/support/ketcindy/ketmanual/KeTCindyReferenceJ.pdf
deleted file mode 100644
index 0edfbc97..00000000
--- a/texmf-dist/doc/support/ketcindy/ketmanual/KeTCindyReferenceJ.pdf
+++ /dev/null
Binary files differ
diff --git a/texmf-dist/doc/support/ketcindy/ketmanual/helpbuttonJ.pdf b/texmf-dist/doc/support/ketcindy/ketmanual/helpbuttonJ.pdf
deleted file mode 100644
index a05f7ab6..00000000
--- a/texmf-dist/doc/support/ketcindy/ketmanual/helpbuttonJ.pdf
+++ /dev/null
Binary files differ
diff --git a/texmf-dist/doc/support/ketcindy/ketmanual/helpbuttonsE.pdf b/texmf-dist/doc/support/ketcindy/ketmanual/helpbuttonsE.pdf
deleted file mode 100644
index c2f6c833..00000000
--- a/texmf-dist/doc/support/ketcindy/ketmanual/helpbuttonsE.pdf
+++ /dev/null
Binary files differ
diff --git a/texmf-dist/doc/support/ketcindy/ketmanual/helplist3dJ.pdf b/texmf-dist/doc/support/ketcindy/ketmanual/helplist3dJ.pdf
deleted file mode 100644
index 44323de1..00000000
--- a/texmf-dist/doc/support/ketcindy/ketmanual/helplist3dJ.pdf
+++ /dev/null
Binary files differ
diff --git a/texmf-dist/doc/support/ketcindy/ketmanual/helplistJ.pdf b/texmf-dist/doc/support/ketcindy/ketmanual/helplistJ.pdf
deleted file mode 100644
index 1023e956..00000000
--- a/texmf-dist/doc/support/ketcindy/ketmanual/helplistJ.pdf
+++ /dev/null
Binary files differ
diff --git a/texmf-dist/doc/support/ketcindy/ketmanual/referenceR4_3_1_ltd.pdf b/texmf-dist/doc/support/ketcindy/ketmanual/referenceR4_3_1_ltd.pdf
deleted file mode 100644
index d1f93e90..00000000
--- a/texmf-dist/doc/support/ketcindy/ketmanual/referenceR4_3_1_ltd.pdf
+++ /dev/null
Binary files differ
diff --git a/texmf-dist/doc/support/ketcindy/ketmanual/refketlayer20161211J.pdf b/texmf-dist/doc/support/ketcindy/ketmanual/refketlayer20161211J.pdf
deleted file mode 100644
index ca3740c8..00000000
--- a/texmf-dist/doc/support/ketcindy/ketmanual/refketlayer20161211J.pdf
+++ /dev/null
Binary files differ
diff --git a/texmf-dist/doc/support/ketcindy/ketmanual/refketpic161211J.pdf b/texmf-dist/doc/support/ketcindy/ketmanual/refketpic161211J.pdf
deleted file mode 100644
index f108f7e7..00000000
--- a/texmf-dist/doc/support/ketcindy/ketmanual/refketpic161211J.pdf
+++ /dev/null
Binary files differ
diff --git a/texmf-dist/doc/support/ketcindy/ketmanual/refketslide161211J.pdf b/texmf-dist/doc/support/ketcindy/ketmanual/refketslide161211J.pdf
deleted file mode 100644
index 50cc2f36..00000000
--- a/texmf-dist/doc/support/ketcindy/ketmanual/refketslide161211J.pdf
+++ /dev/null
Binary files differ
diff --git a/texmf-dist/doc/support/ketcindy/ketsample/samples/s01figure/s0101figure.cdy b/texmf-dist/doc/support/ketcindy/ketsample/samples/s01figure/s0101figure.cdy
deleted file mode 100644
index 23b2ec4a..00000000
--- a/texmf-dist/doc/support/ketcindy/ketsample/samples/s01figure/s0101figure.cdy
+++ /dev/null
Binary files differ
diff --git a/texmf-dist/doc/support/ketcindy/ketsample/samples/s01figure/s0101figurepdf.cdy b/texmf-dist/doc/support/ketcindy/ketsample/samples/s01figure/s0101figurepdf.cdy
deleted file mode 100644
index 0ce178ec..00000000
--- a/texmf-dist/doc/support/ketcindy/ketsample/samples/s01figure/s0101figurepdf.cdy
+++ /dev/null
Binary files differ
diff --git a/texmf-dist/doc/support/ketcindy/ketsample/samples/s01figure/s0102figure2.cdy b/texmf-dist/doc/support/ketcindy/ketsample/samples/s01figure/s0102figure2.cdy
deleted file mode 100644
index 7c5f4f7c..00000000
--- a/texmf-dist/doc/support/ketcindy/ketsample/samples/s01figure/s0102figure2.cdy
+++ /dev/null
Binary files differ
diff --git a/texmf-dist/doc/support/ketcindy/ketsample/samples/s01figure/s0103polygon.cdy b/texmf-dist/doc/support/ketcindy/ketsample/samples/s01figure/s0103polygon.cdy
deleted file mode 100644
index adb3f452..00000000
--- a/texmf-dist/doc/support/ketcindy/ketsample/samples/s01figure/s0103polygon.cdy
+++ /dev/null
Binary files differ
diff --git a/texmf-dist/doc/support/ketcindy/ketsample/samples/s01figure/s0104shade.cdy b/texmf-dist/doc/support/ketcindy/ketsample/samples/s01figure/s0104shade.cdy
deleted file mode 100644
index 13c7b8a4..00000000
--- a/texmf-dist/doc/support/ketcindy/ketsample/samples/s01figure/s0104shade.cdy
+++ /dev/null
Binary files differ
diff --git a/texmf-dist/doc/support/ketcindy/ketsample/samples/s01figure/s0105vector.cdy b/texmf-dist/doc/support/ketcindy/ketsample/samples/s01figure/s0105vector.cdy
deleted file mode 100644
index d928672b..00000000
--- a/texmf-dist/doc/support/ketcindy/ketsample/samples/s01figure/s0105vector.cdy
+++ /dev/null
Binary files differ
diff --git a/texmf-dist/doc/support/ketcindy/ketsample/samples/s01figure/s0106bowdotfill.cdy b/texmf-dist/doc/support/ketcindy/ketsample/samples/s01figure/s0106bowdotfill.cdy
deleted file mode 100644
index 1723fe89..00000000
--- a/texmf-dist/doc/support/ketcindy/ketsample/samples/s01figure/s0106bowdotfill.cdy
+++ /dev/null
Binary files differ
diff --git a/texmf-dist/doc/support/ketcindy/ketsample/samples/s01figure/s0106bowhatch.cdy b/texmf-dist/doc/support/ketcindy/ketsample/samples/s01figure/s0106bowhatch.cdy
deleted file mode 100644
index 459feeac..00000000
--- a/texmf-dist/doc/support/ketcindy/ketsample/samples/s01figure/s0106bowhatch.cdy
+++ /dev/null
Binary files differ
diff --git a/texmf-dist/doc/support/ketcindy/ketsample/samples/s01figure/s0107hyperbolahatch.cdy b/texmf-dist/doc/support/ketcindy/ketsample/samples/s01figure/s0107hyperbolahatch.cdy
deleted file mode 100644
index cd2cb8e4..00000000
--- a/texmf-dist/doc/support/ketcindy/ketsample/samples/s01figure/s0107hyperbolahatch.cdy
+++ /dev/null
Binary files differ
diff --git a/texmf-dist/doc/support/ketcindy/ketsample/samples/s01figure/s0108cycloid.cdy b/texmf-dist/doc/support/ketcindy/ketsample/samples/s01figure/s0108cycloid.cdy
deleted file mode 100644
index 6c5668e5..00000000
--- a/texmf-dist/doc/support/ketcindy/ketsample/samples/s01figure/s0108cycloid.cdy
+++ /dev/null
Binary files differ
diff --git a/texmf-dist/doc/support/ketcindy/ketsample/samples/s01figure/s0109epitrochoid.cdy b/texmf-dist/doc/support/ketcindy/ketsample/samples/s01figure/s0109epitrochoid.cdy
deleted file mode 100644
index 22995717..00000000
--- a/texmf-dist/doc/support/ketcindy/ketsample/samples/s01figure/s0109epitrochoid.cdy
+++ /dev/null
Binary files differ
diff --git a/texmf-dist/doc/support/ketcindy/ketsample/samples/s01figure/s0110hypotrochoid.cdy b/texmf-dist/doc/support/ketcindy/ketsample/samples/s01figure/s0110hypotrochoid.cdy
deleted file mode 100644
index ce4cc21d..00000000
--- a/texmf-dist/doc/support/ketcindy/ketsample/samples/s01figure/s0110hypotrochoid.cdy
+++ /dev/null
Binary files differ
diff --git a/texmf-dist/doc/support/ketcindy/ketsample/samples/s02graph/s0201basic.cdy b/texmf-dist/doc/support/ketcindy/ketsample/samples/s02graph/s0201basic.cdy
deleted file mode 100644
index 375e477f..00000000
--- a/texmf-dist/doc/support/ketcindy/ketsample/samples/s02graph/s0201basic.cdy
+++ /dev/null
Binary files differ
diff --git a/texmf-dist/doc/support/ketcindy/ketsample/samples/s02graph/s0202graph1.cdy b/texmf-dist/doc/support/ketcindy/ketsample/samples/s02graph/s0202graph1.cdy
deleted file mode 100644
index fb5f231c..00000000
--- a/texmf-dist/doc/support/ketcindy/ketsample/samples/s02graph/s0202graph1.cdy
+++ /dev/null
Binary files differ
diff --git a/texmf-dist/doc/support/ketcindy/ketsample/samples/s02graph/s0203graph2.cdy b/texmf-dist/doc/support/ketcindy/ketsample/samples/s02graph/s0203graph2.cdy
deleted file mode 100644
index 577cd958..00000000
--- a/texmf-dist/doc/support/ketcindy/ketsample/samples/s02graph/s0203graph2.cdy
+++ /dev/null
Binary files differ
diff --git a/texmf-dist/doc/support/ketcindy/ketsample/samples/s02graph/s0204graph3.cdy b/texmf-dist/doc/support/ketcindy/ketsample/samples/s02graph/s0204graph3.cdy
deleted file mode 100644
index 274c9663..00000000
--- a/texmf-dist/doc/support/ketcindy/ketsample/samples/s02graph/s0204graph3.cdy
+++ /dev/null
Binary files differ
diff --git a/texmf-dist/doc/support/ketcindy/ketsample/samples/s02graph/s0205coniccurve.cdy b/texmf-dist/doc/support/ketcindy/ketsample/samples/s02graph/s0205coniccurve.cdy
deleted file mode 100644
index f07f094a..00000000
--- a/texmf-dist/doc/support/ketcindy/ketsample/samples/s02graph/s0205coniccurve.cdy
+++ /dev/null
Binary files differ
diff --git a/texmf-dist/doc/support/ketcindy/ketsample/samples/s02graph/s0206defexp.cdy b/texmf-dist/doc/support/ketcindy/ketsample/samples/s02graph/s0206defexp.cdy
deleted file mode 100644
index 3aabbc48..00000000
--- a/texmf-dist/doc/support/ketcindy/ketsample/samples/s02graph/s0206defexp.cdy
+++ /dev/null
Binary files differ
diff --git a/texmf-dist/doc/support/ketcindy/ketsample/samples/s02graph/s0207envelope.cdy b/texmf-dist/doc/support/ketcindy/ketsample/samples/s02graph/s0207envelope.cdy
deleted file mode 100644
index 4f3f48b0..00000000
--- a/texmf-dist/doc/support/ketcindy/ketsample/samples/s02graph/s0207envelope.cdy
+++ /dev/null
Binary files differ
diff --git a/texmf-dist/doc/support/ketcindy/ketsample/samples/s02graph/s0208intersecthatch.cdy b/texmf-dist/doc/support/ketcindy/ketsample/samples/s02graph/s0208intersecthatch.cdy
deleted file mode 100644
index 866e0cac..00000000
--- a/texmf-dist/doc/support/ketcindy/ketsample/samples/s02graph/s0208intersecthatch.cdy
+++ /dev/null
Binary files differ
diff --git a/texmf-dist/doc/support/ketcindy/ketsample/samples/s02graph/s0209diffeq.cdy b/texmf-dist/doc/support/ketcindy/ketsample/samples/s02graph/s0209diffeq.cdy
deleted file mode 100644
index 5ef84953..00000000
--- a/texmf-dist/doc/support/ketcindy/ketsample/samples/s02graph/s0209diffeq.cdy
+++ /dev/null
Binary files differ
diff --git a/texmf-dist/doc/support/ketcindy/ketsample/samples/s02graph/s0210diffeq2.cdy b/texmf-dist/doc/support/ketcindy/ketsample/samples/s02graph/s0210diffeq2.cdy
deleted file mode 100644
index df228044..00000000
--- a/texmf-dist/doc/support/ketcindy/ketsample/samples/s02graph/s0210diffeq2.cdy
+++ /dev/null
Binary files differ
diff --git a/texmf-dist/doc/support/ketcindy/ketsample/samples/s02graph/s0211plotdataS.cdy b/texmf-dist/doc/support/ketcindy/ketsample/samples/s02graph/s0211plotdataS.cdy
deleted file mode 100644
index dba596a3..00000000
--- a/texmf-dist/doc/support/ketcindy/ketsample/samples/s02graph/s0211plotdataS.cdy
+++ /dev/null
Binary files differ
diff --git a/texmf-dist/doc/support/ketcindy/ketsample/samples/s02graph/s0212implicit.cdy b/texmf-dist/doc/support/ketcindy/ketsample/samples/s02graph/s0212implicit.cdy
deleted file mode 100644
index 3ad386c7..00000000
--- a/texmf-dist/doc/support/ketcindy/ketsample/samples/s02graph/s0212implicit.cdy
+++ /dev/null
Binary files differ
diff --git a/texmf-dist/doc/support/ketcindy/ketsample/samples/s02graph/s0213implicithatch.cdy b/texmf-dist/doc/support/ketcindy/ketsample/samples/s02graph/s0213implicithatch.cdy
deleted file mode 100644
index c118ca94..00000000
--- a/texmf-dist/doc/support/ketcindy/ketsample/samples/s02graph/s0213implicithatch.cdy
+++ /dev/null
Binary files differ
diff --git a/texmf-dist/doc/support/ketcindy/ketsample/samples/s03table/s0301table.cdy b/texmf-dist/doc/support/ketcindy/ketsample/samples/s03table/s0301table.cdy
deleted file mode 100644
index edbd6159..00000000
--- a/texmf-dist/doc/support/ketcindy/ketsample/samples/s03table/s0301table.cdy
+++ /dev/null
Binary files differ
diff --git a/texmf-dist/doc/support/ketcindy/ketsample/samples/s03table/s0302table2.cdy b/texmf-dist/doc/support/ketcindy/ketsample/samples/s03table/s0302table2.cdy
deleted file mode 100644
index fb5f02d6..00000000
--- a/texmf-dist/doc/support/ketcindy/ketsample/samples/s03table/s0302table2.cdy
+++ /dev/null
Binary files differ
diff --git a/texmf-dist/doc/support/ketcindy/ketsample/samples/s03table/s0302table2line.cdy b/texmf-dist/doc/support/ketcindy/ketsample/samples/s03table/s0302table2line.cdy
deleted file mode 100644
index 87cfe10f..00000000
--- a/texmf-dist/doc/support/ketcindy/ketsample/samples/s03table/s0302table2line.cdy
+++ /dev/null
Binary files differ
diff --git a/texmf-dist/doc/support/ketcindy/ketsample/samples/s03table/s0303papersquared.cdy b/texmf-dist/doc/support/ketcindy/ketsample/samples/s03table/s0303papersquared.cdy
deleted file mode 100644
index 1a127585..00000000
--- a/texmf-dist/doc/support/ketcindy/ketsample/samples/s03table/s0303papersquared.cdy
+++ /dev/null
Binary files differ
diff --git a/texmf-dist/doc/support/ketcindy/ketsample/samples/s03table/s0304graphforincanddec.cdy b/texmf-dist/doc/support/ketcindy/ketsample/samples/s03table/s0304graphforincanddec.cdy
deleted file mode 100644
index f46a2a29..00000000
--- a/texmf-dist/doc/support/ketcindy/ketsample/samples/s03table/s0304graphforincanddec.cdy
+++ /dev/null
Binary files differ
diff --git a/texmf-dist/doc/support/ketcindy/ketsample/samples/s03table/s0305incanddec.cdy b/texmf-dist/doc/support/ketcindy/ketsample/samples/s03table/s0305incanddec.cdy
deleted file mode 100644
index bc9c08cb..00000000
--- a/texmf-dist/doc/support/ketcindy/ketsample/samples/s03table/s0305incanddec.cdy
+++ /dev/null
Binary files differ
diff --git a/texmf-dist/doc/support/ketcindy/ketsample/samples/s04bezier/dogwalk.png b/texmf-dist/doc/support/ketcindy/ketsample/samples/s04bezier/dogwalk.png
deleted file mode 100644
index 4cb91fa0..00000000
--- a/texmf-dist/doc/support/ketcindy/ketsample/samples/s04bezier/dogwalk.png
+++ /dev/null
Binary files differ
diff --git a/texmf-dist/doc/support/ketcindy/ketsample/samples/s04bezier/heart.png b/texmf-dist/doc/support/ketcindy/ketsample/samples/s04bezier/heart.png
deleted file mode 100644
index 1aa2d7fd..00000000
--- a/texmf-dist/doc/support/ketcindy/ketsample/samples/s04bezier/heart.png
+++ /dev/null
Binary files differ
diff --git a/texmf-dist/doc/support/ketcindy/ketsample/samples/s04bezier/mtfuji.png b/texmf-dist/doc/support/ketcindy/ketsample/samples/s04bezier/mtfuji.png
deleted file mode 100644
index 4a060da9..00000000
--- a/texmf-dist/doc/support/ketcindy/ketsample/samples/s04bezier/mtfuji.png
+++ /dev/null
Binary files differ
diff --git a/texmf-dist/doc/support/ketcindy/ketsample/samples/s04bezier/s0401bezierbasic.cdy b/texmf-dist/doc/support/ketcindy/ketsample/samples/s04bezier/s0401bezierbasic.cdy
deleted file mode 100644
index 9b74b35e..00000000
--- a/texmf-dist/doc/support/ketcindy/ketsample/samples/s04bezier/s0401bezierbasic.cdy
+++ /dev/null
Binary files differ
diff --git a/texmf-dist/doc/support/ketcindy/ketsample/samples/s04bezier/s0402bezier2.cdy b/texmf-dist/doc/support/ketcindy/ketsample/samples/s04bezier/s0402bezier2.cdy
deleted file mode 100644
index 0a637398..00000000
--- a/texmf-dist/doc/support/ketcindy/ketsample/samples/s04bezier/s0402bezier2.cdy
+++ /dev/null
Binary files differ
diff --git a/texmf-dist/doc/support/ketcindy/ketsample/samples/s04bezier/s0403bezierspline.cdy b/texmf-dist/doc/support/ketcindy/ketsample/samples/s04bezier/s0403bezierspline.cdy
deleted file mode 100644
index 4a295326..00000000
--- a/texmf-dist/doc/support/ketcindy/ketsample/samples/s04bezier/s0403bezierspline.cdy
+++ /dev/null
Binary files differ
diff --git a/texmf-dist/doc/support/ketcindy/ketsample/samples/s04bezier/s0404heart.cdy b/texmf-dist/doc/support/ketcindy/ketsample/samples/s04bezier/s0404heart.cdy
deleted file mode 100644
index cde6c433..00000000
--- a/texmf-dist/doc/support/ketcindy/ketsample/samples/s04bezier/s0404heart.cdy
+++ /dev/null
Binary files differ
diff --git a/texmf-dist/doc/support/ketcindy/ketsample/samples/s04bezier/s0405dogwalk.cdy b/texmf-dist/doc/support/ketcindy/ketsample/samples/s04bezier/s0405dogwalk.cdy
deleted file mode 100644
index 06bb52f8..00000000
--- a/texmf-dist/doc/support/ketcindy/ketsample/samples/s04bezier/s0405dogwalk.cdy
+++ /dev/null
Binary files differ
diff --git a/texmf-dist/doc/support/ketcindy/ketsample/samples/s04bezier/s0406mtfuji.cdy b/texmf-dist/doc/support/ketcindy/ketsample/samples/s04bezier/s0406mtfuji.cdy
deleted file mode 100644
index 2b20596a..00000000
--- a/texmf-dist/doc/support/ketcindy/ketsample/samples/s04bezier/s0406mtfuji.cdy
+++ /dev/null
Binary files differ
diff --git a/texmf-dist/doc/support/ketcindy/ketsample/samples/s05spacefigure/s0501basic.cdy b/texmf-dist/doc/support/ketcindy/ketsample/samples/s05spacefigure/s0501basic.cdy
deleted file mode 100644
index 3850f7e0..00000000
--- a/texmf-dist/doc/support/ketcindy/ketsample/samples/s05spacefigure/s0501basic.cdy
+++ /dev/null
Binary files differ
diff --git a/texmf-dist/doc/support/ketcindy/ketsample/samples/s05spacefigure/s0501plane.cdy b/texmf-dist/doc/support/ketcindy/ketsample/samples/s05spacefigure/s0501plane.cdy
deleted file mode 100644
index d930b0e3..00000000
--- a/texmf-dist/doc/support/ketcindy/ketsample/samples/s05spacefigure/s0501plane.cdy
+++ /dev/null
Binary files differ
diff --git a/texmf-dist/doc/support/ketcindy/ketsample/samples/s05spacefigure/s0502spacecurve.cdy b/texmf-dist/doc/support/ketcindy/ketsample/samples/s05spacefigure/s0502spacecurve.cdy
deleted file mode 100644
index 57cf4313..00000000
--- a/texmf-dist/doc/support/ketcindy/ketsample/samples/s05spacefigure/s0502spacecurve.cdy
+++ /dev/null
Binary files differ
diff --git a/texmf-dist/doc/support/ketcindy/ketsample/samples/s05spacefigure/s0503perp.cdy b/texmf-dist/doc/support/ketcindy/ketsample/samples/s05spacefigure/s0503perp.cdy
deleted file mode 100644
index 7be0735c..00000000
--- a/texmf-dist/doc/support/ketcindy/ketsample/samples/s05spacefigure/s0503perp.cdy
+++ /dev/null
Binary files differ
diff --git a/texmf-dist/doc/support/ketcindy/ketsample/samples/s05spacefigure/s0504embed.cdy b/texmf-dist/doc/support/ketcindy/ketsample/samples/s05spacefigure/s0504embed.cdy
deleted file mode 100644
index 20a97e8e..00000000
--- a/texmf-dist/doc/support/ketcindy/ketsample/samples/s05spacefigure/s0504embed.cdy
+++ /dev/null
Binary files differ
diff --git a/texmf-dist/doc/support/ketcindy/ketsample/samples/s05spacefigure/s0505bezier3d.cdy b/texmf-dist/doc/support/ketcindy/ketsample/samples/s05spacefigure/s0505bezier3d.cdy
deleted file mode 100644
index ae22c810..00000000
--- a/texmf-dist/doc/support/ketcindy/ketsample/samples/s05spacefigure/s0505bezier3d.cdy
+++ /dev/null
Binary files differ
diff --git a/texmf-dist/doc/support/ketcindy/ketsample/samples/s05spacefigure/s0506embedhatch.cdy b/texmf-dist/doc/support/ketcindy/ketsample/samples/s05spacefigure/s0506embedhatch.cdy
deleted file mode 100644
index ef336e0a..00000000
--- a/texmf-dist/doc/support/ketcindy/ketsample/samples/s05spacefigure/s0506embedhatch.cdy
+++ /dev/null
Binary files differ
diff --git a/texmf-dist/doc/support/ketcindy/ketsample/samples/s05spacefigure/s0507polyhedron.cdy b/texmf-dist/doc/support/ketcindy/ketsample/samples/s05spacefigure/s0507polyhedron.cdy
deleted file mode 100644
index beee239a..00000000
--- a/texmf-dist/doc/support/ketcindy/ketsample/samples/s05spacefigure/s0507polyhedron.cdy
+++ /dev/null
Binary files differ
diff --git a/texmf-dist/doc/support/ketcindy/ketsample/samples/s05spacefigure/s0508concatobj.cdy b/texmf-dist/doc/support/ketcindy/ketsample/samples/s05spacefigure/s0508concatobj.cdy
deleted file mode 100644
index 66164a2d..00000000
--- a/texmf-dist/doc/support/ketcindy/ketsample/samples/s05spacefigure/s0508concatobj.cdy
+++ /dev/null
Binary files differ
diff --git a/texmf-dist/doc/support/ketcindy/ketsample/samples/s05spacefigure/s05091tetra.cdy b/texmf-dist/doc/support/ketcindy/ketsample/samples/s05spacefigure/s05091tetra.cdy
deleted file mode 100644
index a9722248..00000000
--- a/texmf-dist/doc/support/ketcindy/ketsample/samples/s05spacefigure/s05091tetra.cdy
+++ /dev/null
Binary files differ
diff --git a/texmf-dist/doc/support/ketcindy/ketsample/samples/s05spacefigure/s05092cubiccut.cdy b/texmf-dist/doc/support/ketcindy/ketsample/samples/s05spacefigure/s05092cubiccut.cdy
deleted file mode 100644
index 0f9663ee..00000000
--- a/texmf-dist/doc/support/ketcindy/ketsample/samples/s05spacefigure/s05092cubiccut.cdy
+++ /dev/null
Binary files differ
diff --git a/texmf-dist/doc/support/ketcindy/ketsample/samples/s05spacefigure/s05093cubiccut2.cdy b/texmf-dist/doc/support/ketcindy/ketsample/samples/s05spacefigure/s05093cubiccut2.cdy
deleted file mode 100644
index d2cb0ed5..00000000
--- a/texmf-dist/doc/support/ketcindy/ketsample/samples/s05spacefigure/s05093cubiccut2.cdy
+++ /dev/null
Binary files differ
diff --git a/texmf-dist/doc/support/ketcindy/ketsample/samples/s06animation/s0601cycloid.cdy b/texmf-dist/doc/support/ketcindy/ketsample/samples/s06animation/s0601cycloid.cdy
deleted file mode 100644
index 13ee3cd0..00000000
--- a/texmf-dist/doc/support/ketcindy/ketsample/samples/s06animation/s0601cycloid.cdy
+++ /dev/null
Binary files differ
diff --git a/texmf-dist/doc/support/ketcindy/ketsample/samples/s06animation/s0602diffeq.cdy b/texmf-dist/doc/support/ketcindy/ketsample/samples/s06animation/s0602diffeq.cdy
deleted file mode 100644
index 0bb3cb64..00000000
--- a/texmf-dist/doc/support/ketcindy/ketsample/samples/s06animation/s0602diffeq.cdy
+++ /dev/null
Binary files differ
diff --git a/texmf-dist/doc/support/ketcindy/ketsample/samples/s06animation/s0603envelope.cdy b/texmf-dist/doc/support/ketcindy/ketsample/samples/s06animation/s0603envelope.cdy
deleted file mode 100644
index e762e8db..00000000
--- a/texmf-dist/doc/support/ketcindy/ketsample/samples/s06animation/s0603envelope.cdy
+++ /dev/null
Binary files differ
diff --git a/texmf-dist/doc/support/ketcindy/ketsample/samples/s06animation/s0604diffeq2.cdy b/texmf-dist/doc/support/ketcindy/ketsample/samples/s06animation/s0604diffeq2.cdy
deleted file mode 100644
index 64374352..00000000
--- a/texmf-dist/doc/support/ketcindy/ketsample/samples/s06animation/s0604diffeq2.cdy
+++ /dev/null
Binary files differ
diff --git a/texmf-dist/doc/support/ketcindy/ketsample/samples/s06animation/s0605cycloid2.cdy b/texmf-dist/doc/support/ketcindy/ketsample/samples/s06animation/s0605cycloid2.cdy
deleted file mode 100644
index 9e1d541c..00000000
--- a/texmf-dist/doc/support/ketcindy/ketsample/samples/s06animation/s0605cycloid2.cdy
+++ /dev/null
Binary files differ
diff --git a/texmf-dist/doc/support/ketcindy/ketsample/samples/s06animation/s0606epitrochoid.cdy b/texmf-dist/doc/support/ketcindy/ketsample/samples/s06animation/s0606epitrochoid.cdy
deleted file mode 100644
index df32beb3..00000000
--- a/texmf-dist/doc/support/ketcindy/ketsample/samples/s06animation/s0606epitrochoid.cdy
+++ /dev/null
Binary files differ
diff --git a/texmf-dist/doc/support/ketcindy/ketsample/samples/s06animation/s0607hypotrochoid.cdy b/texmf-dist/doc/support/ketcindy/ketsample/samples/s06animation/s0607hypotrochoid.cdy
deleted file mode 100644
index b49ee406..00000000
--- a/texmf-dist/doc/support/ketcindy/ketsample/samples/s06animation/s0607hypotrochoid.cdy
+++ /dev/null
Binary files differ
diff --git a/texmf-dist/doc/support/ketcindy/ketsample/samples/s07slides/fig/slide0.tex b/texmf-dist/doc/support/ketcindy/ketsample/samples/s07slides/fig/slide0.tex
deleted file mode 100644
index 3ff43765..00000000
--- a/texmf-dist/doc/support/ketcindy/ketsample/samples/s07slides/fig/slide0.tex
+++ /dev/null
@@ -1,11 +0,0 @@
-{\Large\bf
-\color[cmyk]{1,1,0,0}
-
-\begin{layer}{120}{0}
-{\Huge \putnotes{60}{20}{メインタイトル}}
-\putnotes{60}{50}{åå‰}
-\putnotes{60}{60}{所属}
-\putnotes{60}{70}{情報}
-\end{layer}
-
-}
diff --git a/texmf-dist/doc/support/ketcindy/ketsample/samples/s07slides/fig/wallpaper.tex b/texmf-dist/doc/support/ketcindy/ketsample/samples/s07slides/fig/wallpaper.tex
deleted file mode 100644
index 5c08113b..00000000
--- a/texmf-dist/doc/support/ketcindy/ketsample/samples/s07slides/fig/wallpaper.tex
+++ /dev/null
@@ -1,12 +0,0 @@
-{\color[cmyk]{0.6,0.2,0.8,0}\huge\rm\normalsize
-
-\newpage
-
-\begin{layer}{120}{0}
-\lineseg{0}{2}{125}{0}
-\lineseg{0}{88}{125}{0}
-\putnotese{0}{90}{\ketcindy}
-\putnotesw{115}{90}{Mar. 31 2018}
-\end{layer}
-
-}
diff --git a/texmf-dist/doc/support/ketcindy/ketsample/samples/s07slides/howtouseslideE.txt b/texmf-dist/doc/support/ketcindy/ketsample/samples/s07slides/howtouseslideE.txt
deleted file mode 100644
index b7fc171b..00000000
--- a/texmf-dist/doc/support/ketcindy/ketsample/samples/s07slides/howtouseslideE.txt
+++ /dev/null
@@ -1,79 +0,0 @@
-Presentation with ketslide 2018.03.30
-
-0. Flow of making slides.
-
- 1) Copy ketsample/s07slideã®s0701basic.cdy to your work directory and rename it.
- Ex) s0701basic.cdy , s0701basic.txt
- Rem) Rename both files.
- Here, let files sample.cdy and sample.txt.
- 2) Double-click sample.cdy, edit Settitle.
- 3) Press Gear mark on the top.
- 4) Press button "Title" on the screen.
- 5) Press button "Slide".
-
-1. Editing the .txt file.
-
- 1) Put // at the last of every lines.
- Rm) Use |||| for //.
- http::||||.... //
- 2) Use :: for separators of each command.
- 3) Commands
- title::titleslidename(::wallpaper)//
- Rm) Put the first line.
- main::mainttitlename//
- new::pagetitlename//
- enumerate//
- =\begin{enumerate}
- itemize//
- =\begin{itemize}
- layer::{xsize}{ysize}//
- =\begin{layer}{xsize}{ysize}
- item::sentence//
- =\item sentence
- putnote::dir{xpos}{ypos}::filename(,scale)//
- =putnotedir{xpos}{ypos}{\input{fig/filename}}
- end//
- =\end{itemize,enumerate,layer}
- Rm) Any other TeX command is available.
- 4) Use ...// for inserting a blank line.
- 5) To display a page step by step
- Put just after new,
- %repeat=number of steps//
- Put at the head of each line as
- %[2,-]::sentence
- display at all steps from 2
- %[-,2]::sentence
- display at all steps until 2
- %[1..3,5]::sentence
- display at steps of 1,2,3 and 5
- Use %thin to display with thin letters.
- %thin::[2,-]::sentence
- Rm) the dencity can be changed with Setslidebody.
- 6) To display all figures in the sub folder in folder "fig"
- %repeat=//
- %para=subfig:{0}:s{60}{10}:input(:scale)//
-
-2. Setting commands described in the cdy file.
- Setslidemain([letterc,boxc,boxd,framec,xpos,size]);
- Setslidepage([letterc,boxc,boxd,framec,shadowc,shadowd,xpos,size]);
- Setslidebody(bodycolor,bodystyle,density);
- Setslidehyper("dvipdfmx",["cl=true,lc=blue,fc=blue",90,70,1]);
-
-3. Making flip animation
-
- 1) Define Mf(s) the state at s.
- 2) Add Setpara as
- Setpara(foldername,funcitonstr,range,options);
- options=["m/r", "Div=25"];
- 3) Press button Flip
- 4) Describe in the .txt file as 1. 6).
- 5) Press button Slide.
-
-4. Making animation.
-
- 1) Add in the .cdy file
- Addpackage(["[dvipdfmx]{animate}"]);
- 2) Add in the option of Setpara,
- "Frate=num of frame in the second, "Scale=scale, "OpA=optin of animation"
- 3) Define mf(s), Press button Anime.
- 4) Use \input, not layer.
diff --git a/texmf-dist/doc/support/ketcindy/ketsample/samples/s07slides/howtouseslideJ.txt b/texmf-dist/doc/support/ketcindy/ketsample/samples/s07slides/howtouseslideJ.txt
deleted file mode 100644
index 440fefea..00000000
--- a/texmf-dist/doc/support/ketcindy/ketsample/samples/s07slides/howtouseslideJ.txt
+++ /dev/null
@@ -1,132 +0,0 @@
-ketslideã«ã‚ˆã‚‹ãƒ—レゼンテーション  2018.03.30
-
-ï¼ï¼Žä½œæˆã®æµã‚Œ
-
- 1)ketsample/s07slideã®ä¸­ã®2ã¤ã®ãƒ•ã‚¡ã‚¤ãƒ«ã‚’作業ディレクトリã«ã‚³ãƒ”ーã—ã¦å称変更
-    例)s0701basic.cdy , s0701basic.txt
-    注)å称変更ã™ã‚‹ã¨ãã¯ï¼Œcdyã¨txtã‚’åŒåã«ã™ã‚‹ï¼Ž
-   ã“ã“ã§ã¯ï¼Œãƒ•ã‚¡ã‚¤ãƒ«åã‚’sample.cdyã¨sample.txtã¨ã™ã‚‹ï¼Ž
- 2)sample.cdyをダブルクリックã§ç«‹ã¡ä¸Šã’,1をå‚考ã«Settitleã®ä¸­èº«ã‚’修正ã™ã‚‹ï¼Ž
-    注)Settitleã®ã‚ªãƒ—ション(=ã®å³ã¯ãƒ‡ãƒ•ã‚©ãƒ«ãƒˆå€¤ï¼‰
-         ["Title=slide0","Layery=0","Color=blue"]
- 3)å³ä¸Šã®æ­¯è»Šãƒžãƒ¼ã‚¯ã‚’押ã™ï¼Ž
- 4)画é¢ä¸Šã®Titleボタンを押ã™ï¼Ž
-    タイトルスライドãŒä½œæˆã•ã‚Œï¼Œç”»é¢ãŒè¡¨ç¤ºã•ã‚Œã‚‹ï¼Ž
-    必è¦ãªã‚‰ï¼ŒSettitleを修正ã™ã‚‹ï¼Ž
- 5)Slideボタンを押ã™ã¨ï¼Œsample.pdfãŒä½œæˆã•ã‚Œã‚‹ï¼Ž
-
-1.txtファイルã®ç·¨é›†
-
- 1)ã™ã¹ã¦ã®è¡Œã®æœ€å¾Œã¯å¿…ãš // ã‚’ã¤ã‘る.
-    注)urlã®æŒ‡å®šã§//を用ã„ã‚‹ã¨ã,||||ã¨ã™ã‚‹ã¨//ã«å¤‰æ›ã•ã‚Œã‚‹ï¼Ž
- 2)å„ブロックã®å¼•æ•°ã®åŒºåˆ‡ã‚Šã¯ ::
- 3)コマンド
-    ・タイトル::読込ファイルå(::å£ç´™ãƒ•ã‚¡ã‚¤ãƒ«)//
-       タイトルページを作æˆï¼ˆï¼‘行目ã«ãŠã)
-      注)å£ç´™(例ãˆã°wallpaperã¨ã™ã‚‹ï¼‰ã‚’背景ã«å…¥ã‚Œã‚‹ã¨ã
-        ・例ãˆã°wallpaper.texを作æˆã—ã¦figフォルダã«å…¥ã‚Œã‚‹ï¼Ž
-          (figã«ã‚るサンプルwallpaper.texã‚’å‚照)
-        ・sample.txtã§ã®æŒ‡å®šã¯
-           タイトル::slide0::wallpaper//
-        ・å£ç´™ã‚’一時的ã«å¤–ã™ã¨ãã¯
-           タイトル::slide0::%wallpaper//
-      注)preambleã«è¿½åŠ ã™ã‚‹ã¨ã
-         1行目ã®//を外ã™ï¼Ž
-         次ã®è¡Œã‹ã‚‰ï¼Œ::区切りã§æ›¸ã加ãˆï¼Œæœ€å¾Œã«//ã‚’ãŠã.
-      注)タイトル画é¢ãŒä¸è¦ã®å ´åˆã¯ï¼Œ
-         タイトル(ã¾ãŸã¯title)::notitle//
-    ・main::段è½ã‚¿ã‚¤ãƒˆãƒ«å//
-    ・new(::行下ã’)::タイトル((::ä½ç½®)::読ã¿è¾¼ã¿ãƒ•ã‚¡ã‚¤ãƒ«)//
-      mainslide
-      例)new::[10]::最åˆã«::{50}{20}::figure//
-      注)読ã¿è¾¼ã¿ãƒ•ã‚¡ã‚¤ãƒ«ã®ã‚µã‚¤ã‚ºå¤‰æ›´ã™ã‚‹ã¨ã
-         new::[10]::最åˆã«::{50}{20}::figure,0.8//
-        他もåŒæ§˜
-    ・enumerate/
-      enumerate環境ã®å§‹ã¾ã‚Š
-    ・itemize//
-      itemize環境ã®å§‹ã¾ã‚Š
-    ・layer(::範囲)//
-      layer環境ã®å§‹ã¾ã‚Š
-    ・item::文//
-      itemを追加
-    ・putnote::æ–¹å‘ã¨ä½ç½®::読ã¿è¾¼ã¿ãƒ•ã‚¡ã‚¤ãƒ«//
-      layer環境ã®ä¸­ã«å›³ã‚’入れる
-      例)putonote::se{30}{10}::figure( , å€çŽ‡)//(inputã®ã¨ã)
-          figã®ä¸­ã®figure.texを表示
-      例)putonote::se{30}{10}::include[width=5cm]::figure.pdf//
-          (includegraphicsã®ã¨ã)
-      注)図ã¯ã™ã¹ã¦figã«å…¥ã‚Œã‚‹ï¼Ž
-    ・end//
-      enumerate,itemize,layer環境ã®çµ‚ã‚ã‚Š
-    ・上記以外//
-      ãã®ã¾ã¾TeXã«æ›¸ã出ã™ï¼Ž
-    ・コマンドをコメントアウトã™ã‚‹ã¨ãã¯ï¼Œ%%ã¨ã™ã‚‹ï¼Ž
-
- 4)空白行を入れãŸã„ã¨ãã¯ï¼Œ...// ã¨ã™ã‚‹ï¼Ž
-
- 5)newã®å¾Œï¼Œãƒšãƒ¼ã‚¸ã‚’段階的ã«è¡¨ç¤ºã™ã‚‹ã¨ã,
-   ・newã®æ¬¡ã®è¡Œã«
-     %repeat=(newã‚’å«ã‚€ã‚¹ãƒ©ã‚¤ãƒ‰ã®æžšæ•°ï¼‰,para//
-   ・表示ã—ãŸã„ページã¯
-      %[2,-]::本文//
-    ã®ã‚ˆã†ã«æ›¸ã.
-     注)[2,- ]ã¯2ページ以é™å…¨éƒ¨
-       [-, 2]ã¯2ページã¾ã§è¡¨ç¤º
-       [1..3,5 ]ã¯1ページã‹ã‚‰3ページã¨5ページ
-   ・repeat=...ã®å¾Œã«ã€Œ,paraã€ã‚’追加ã™ã‚‹ã¨ãƒªãƒ³ã‚¯ã‚’作æˆ
-   ・指定以外ã®ãƒšãƒ¼ã‚¸ã§è–„文字ã«ã—ãŸã„ã¨ãã¯ã€€%thin[2]::本文
-     注)薄文字ã®æ¿ƒã•ã®ãƒ‡ãƒ•ã‚©ãƒ«ãƒˆã¯0.1ã ãŒï¼ŒSetslidebodyã§å¤‰æ›´å¯èƒ½
-     注)txtファイルã«ä»¥ä¸‹ã‚’記述ã™ã‚Œã°ï¼Œä»¥é™ã®æ¿ƒã•ãŒå¤‰ã‚る.
-          \setthin{濃ã•}//
-
- 6)figã®ä¸­ã«ã‚るサブフォルダ(例ãˆã°subfig)ã®å›³ãƒ•ã‚¡ã‚¤ãƒ«ã™ã¹ã¦ã‚’é †ã«è¡¨ç¤ºã™ã‚‹ã¨ã
-   ・newã®æ¬¡ã®è¡Œã«
-     %repeat=//
-     %para=subfig:{0}:s{60}{10}:input(:å€çŽ‡)//
-       ï¼ï¼ž layer{120}{0}, \putnotes{60}{10}{\input...}
-    注)%repeat=,para=...ã¨ç¶šã‘ã¦æ›¸ã„ã¦ã‚‚よã„.
-    注)一時的ã«ç„¡åŠ¹ã«ã™ã‚‹ã¨ãã¯ï¼Œ%%ã¨ã™ã‚‹ï¼Ž
-
-2.スライドã®è¨­å®š
-
- 1)cdyã®figureã«è¨˜è¿°ã™ã‚‹ï¼Ž
- 2)コマンド
-   ・Setslidemain([letterc,boxc,boxd,framec,xpos,size]);
-     メイン(段è½åŒºåˆ‡ã‚Šï¼‰ã®è¨­å®š
-     注)一部をデフォルト値ã¨ã™ã‚‹å ´åˆã¯ [,,]ãªã©ã¨ã™ã‚‹ï¼Žä»¥ä¸‹åŒæ§˜
-   ・Setslidepage([letterc,boxc,boxd,framec,shadowc,shadowd,xpos,size]);
-     ページã®è¨­å®š
-   ・Setslidebody(bodycolor,bodystyle,density);
-     全体ã®æ–‡å­—色ã¨è–„文字ã®æ¿ƒã•(0-1)ã®è¨­å®š
-     bodystyleã®ãƒ‡ãƒ•ã‚©ãƒ«ãƒˆã¯ã€€"\Large\bf\boldmath"
-   ・Setslidehyper("dvipdfmx",["cl=true,lc=blue,fc=blue",90,70,1]);
-     hyperrefを利用ã™ã‚‹ï¼Œ
-     注)Setslidehyper();ã¨ã™ã‚‹ã¨ï¼Œhyperref.styを読ã¿è¾¼ã¿ï¼Œ
-      ã‹ã¤ï¼Œä¸Šã®ãƒ‡ãƒ•ã‚©ãƒ«ãƒˆå€¤ãŒä¸Žãˆã‚‰ã‚Œã‚‹ï¼Ž
-     注)数字ã¯ï¼Œãƒšãƒ¼ã‚¸ç§»å‹•ãƒœã‚¿ãƒ³åˆ—ã«ã¤ã„ã¦ï¼Œå³ç«¯ã®æ°´å¹³ä½ç½®ï¼Œåž‚直サイズ,å€çŽ‡
-
-3.パラパラ動画ã®ä½œæˆ
-
-  (1)mf(s)ã«ãƒ‘ラメータ値sã®ã¨ãã®å›³ã‚’記述ã™ã‚‹ï¼Ž
-  (2)パラパラã®è¨­å®š
-    Setpara(foldername,funcitonstr,range,options);
-       options=["m/r", "Div=25"];
-    注)rangeã®è¨˜è¿°
-     i) "s=[0,1]" 区間をDivã§åˆ†å‰²
-     ii) [0.2, 0.6] リストã®å„値をsã«ä»£å…¥
-  (3)ParaFボタンを押ã™ã¨ï¼Œfoldernameã®ä¸­ã«ãƒ‘ラパラã®å›³ãŒç”Ÿæˆã•ã‚Œã‚‹ï¼Ž
-  (4)txtファイルã«ï¼Œï¼‘ã®ï¼–)ã®ã‚ˆã†ã«è¨˜è¿°ã™ã‚‹ï¼Ž
-  (5)Slideボタンを押ã™ï¼Ž
-
-4.animationã®ä½œæˆ
-
-   注)PathAdã«AdobeReaderã®ãƒ‡ãƒ•ã‚©ãƒ«ãƒˆã®ãƒ‘スãŒè¨­å®šã•ã‚Œã¦ã„る.
-      println(PathAd)ã«ã‚ˆã‚Šï¼Œãƒ‘スãŒç¢ºèªã§ãる.
-     変更ã™ã‚‹ã¨ãã¯ï¼Œchangesetting.txtã«ãƒ‘スを記述ã™ã‚‹ï¼Ž
-        PathAd="....";
-  (1)Addpackage(["[dvipdfmx]{animate}"]);を追加ã™ã‚‹ï¼Ž
-  (2)Setparaã®ã‚ªãƒ—ション
-      "Frate="(1秒間ã®ãƒ•ãƒ¬ãƒ¼ãƒ æ•°), "Scale="(スケールå€çŽ‡), "OpA=[loop]"
-  (3)mf(s)を定義ã—ã¦ï¼ŒAnimeボタンを押ã™ï¼Ž
-  (4)読ã¿è¾¼ã¿å ´æ‰€ã«ï¼Œ\inputを使ã£ã¦å…¥ã‚Œã‚‹ï¼Ž(layerã¯ä½¿ãˆãªã„)
diff --git a/texmf-dist/doc/support/ketcindy/ketsample/samples/s07slides/s0701basic.cdy b/texmf-dist/doc/support/ketcindy/ketsample/samples/s07slides/s0701basic.cdy
deleted file mode 100644
index 886b5bc0..00000000
--- a/texmf-dist/doc/support/ketcindy/ketsample/samples/s07slides/s0701basic.cdy
+++ /dev/null
Binary files differ
diff --git a/texmf-dist/doc/support/ketcindy/ketsample/samples/s07slides/s0701basic.txt b/texmf-dist/doc/support/ketcindy/ketsample/samples/s07slides/s0701basic.txt
deleted file mode 100644
index 9650b53c..00000000
--- a/texmf-dist/doc/support/ketcindy/ketsample/samples/s07slides/s0701basic.txt
+++ /dev/null
@@ -1,21 +0,0 @@
-タイトル::slide0::%wallpaper//
-
-%%%%%%%%%%%%%%%%//
-main::メインスライド1//
-
-%%%%%%%%%%%%%%%%//
-new::itemize環境ã®ä½¿ã„æ–¹//
-
-itemize//
-item::内容//
-item::çµè«–//
-end//
-
-%%%%%%%%%%%%%%%%//
-new::enumerate環境ã®ä½¿ã„æ–¹//
-
-enumerate::[(1)]//
-item::番å·ã‚’変ãˆã‚‹ã«ã¯ï¼Œä¾‹ãˆã° [(1)]//
-item::後ã¯åŒã˜//
-end//
-
diff --git a/texmf-dist/doc/support/ketcindy/ketsample/samples/s07slides/s0701basicE.cdy b/texmf-dist/doc/support/ketcindy/ketsample/samples/s07slides/s0701basicE.cdy
deleted file mode 100644
index 0025ed37..00000000
--- a/texmf-dist/doc/support/ketcindy/ketsample/samples/s07slides/s0701basicE.cdy
+++ /dev/null
Binary files differ
diff --git a/texmf-dist/doc/support/ketcindy/ketsample/samples/s07slides/s0701basicE.txt b/texmf-dist/doc/support/ketcindy/ketsample/samples/s07slides/s0701basicE.txt
deleted file mode 100644
index a6c607e7..00000000
--- a/texmf-dist/doc/support/ketcindy/ketsample/samples/s07slides/s0701basicE.txt
+++ /dev/null
@@ -1,21 +0,0 @@
-title::slide0::%wallpaper//
-
-%%%%%%%%%%%%%%%%//
-main::Main Slide//
-
-%%%%%%%%%%%%%%%%//
-new::How to use itemize//
-
-itemize//
-item::Contents//
-item::Conclusion//
-end//
-
-%%%%%%%%%%%%%%%%//
-new::How to use enumerate//
-
-enumerate::[(1)]//
-item::Change the style of number adding, for example, [(1)]//
-item::Same as usual//
-end//
-
diff --git a/texmf-dist/doc/support/ketcindy/ketsample/samples/s07slides/s0702graph.cdy b/texmf-dist/doc/support/ketcindy/ketsample/samples/s07slides/s0702graph.cdy
deleted file mode 100644
index 6ce49ec7..00000000
--- a/texmf-dist/doc/support/ketcindy/ketsample/samples/s07slides/s0702graph.cdy
+++ /dev/null
Binary files differ
diff --git a/texmf-dist/doc/support/ketcindy/ketsample/samples/s07slides/s0702graphE.cdy b/texmf-dist/doc/support/ketcindy/ketsample/samples/s07slides/s0702graphE.cdy
deleted file mode 100644
index 4b59de6c..00000000
--- a/texmf-dist/doc/support/ketcindy/ketsample/samples/s07slides/s0702graphE.cdy
+++ /dev/null
Binary files differ
diff --git a/texmf-dist/doc/support/ketcindy/ketsample/samples/s07slides/s0702graphE.txt b/texmf-dist/doc/support/ketcindy/ketsample/samples/s07slides/s0702graphE.txt
deleted file mode 100644
index 295050c5..00000000
--- a/texmf-dist/doc/support/ketcindy/ketsample/samples/s07slides/s0702graphE.txt
+++ /dev/null
@@ -1,19 +0,0 @@
-title::slideE::%wallpaper//
-
-%%%%%%%%%%%%%%%%//
-main::Main Slide//
-
-%%%%%%%%%%%%%%%%//
-new::input and layer//
-
-layer::{100}{0}//
-putnote::s{65}{10}::figsin,1.2//
-end//
-
-%%%%%%%%%%%%%%%%//
-new::includegrpahics and layer//
-
-layer::{100}{0}//
-putnote::s{60}{5}
-::include[bb=0.00 0.00 803.00 285.00,width=100mm]::cindyscreen.pdf//
-end//
diff --git a/texmf-dist/doc/support/ketcindy/ketsample/samples/s07slides/s0703repeat.cdy b/texmf-dist/doc/support/ketcindy/ketsample/samples/s07slides/s0703repeat.cdy
deleted file mode 100644
index fa509952..00000000
--- a/texmf-dist/doc/support/ketcindy/ketsample/samples/s07slides/s0703repeat.cdy
+++ /dev/null
Binary files differ
diff --git a/texmf-dist/doc/support/ketcindy/ketsample/samples/s07slides/s0703repeat.txt b/texmf-dist/doc/support/ketcindy/ketsample/samples/s07slides/s0703repeat.txt
deleted file mode 100644
index 3f29c04c..00000000
--- a/texmf-dist/doc/support/ketcindy/ketsample/samples/s07slides/s0703repeat.txt
+++ /dev/null
@@ -1,32 +0,0 @@
-タイトル::slide0::%wallpaper//
-
-%%%%%%%%%%%%%%%%//
-main::メインスライド1//
-
-%%%%%%%%%%%%%%%%//
-new::itemize環境ã®ä½¿ã„æ–¹//
-%repeat=2//
-
-itemize//
-item::内容//
-%[2,-]::item::çµè«–//
-end//
-
-%%%%%%%%%%%%%%%%//
-new::enumerate環境ã®ä½¿ã„æ–¹//
-%repeat=3//
-
-enumerate::[(1)]//
-%thin[2,-]::item::番å·ã‚’変ãˆã‚‹ã«ã¯ï¼Œä¾‹ãˆã° [(1)]//
-%thin[3,-]::item::後ã¯åŒã˜//
-end//
-
-%%%%%%%%%%%%%%%%//
-new::グラフã¨repeat//
-%repeat=2//
-
-layer::{100}{0}//
-%[1]::putnote::se{10}{15}::figsin,0.8//
-%[2]::putnote::se{30}{40}::figsin,0.8//
-end//
-
diff --git a/texmf-dist/doc/support/ketcindy/ketsample/samples/s07slides/s0703repeatE.cdy b/texmf-dist/doc/support/ketcindy/ketsample/samples/s07slides/s0703repeatE.cdy
deleted file mode 100644
index 1da10768..00000000
--- a/texmf-dist/doc/support/ketcindy/ketsample/samples/s07slides/s0703repeatE.cdy
+++ /dev/null
Binary files differ
diff --git a/texmf-dist/doc/support/ketcindy/ketsample/samples/s07slides/s0703repeatE.txt b/texmf-dist/doc/support/ketcindy/ketsample/samples/s07slides/s0703repeatE.txt
deleted file mode 100644
index 6ae811a1..00000000
--- a/texmf-dist/doc/support/ketcindy/ketsample/samples/s07slides/s0703repeatE.txt
+++ /dev/null
@@ -1,32 +0,0 @@
-title::slideE::%wallpaper//
-
-%%%%%%%%%%%%%%%%//
-main::Main Slide//
-
-%%%%%%%%%%%%%%%%//
-new::itemize and repeat//
-%repeat=2//
-
-itemize//
-item::Contents//
-%[2,-]::item::Conclusions//
-end//
-
-%%%%%%%%%%%%%%%%//
-new::enumerate and repeat//
-%repeat=3//
-
-enumerate::[(1)]//
-%thin[2,-]::item::Contents//
-%thin[3,-]::item::Conclusions//
-end//
-
-%%%%%%%%%%%%%%%%//
-new::Graph and repeat//
-%repeat=2//
-
-layer::{100}{0}//
-%[1]::putnote::se{10}{15}::figsin,0.8//
-%[2]::putnote::se{30}{40}::figsin,0.8//
-end//
-
diff --git a/texmf-dist/doc/support/ketcindy/ketsample/samples/s07slides/s0704thin.cdy b/texmf-dist/doc/support/ketcindy/ketsample/samples/s07slides/s0704thin.cdy
deleted file mode 100644
index 012e8971..00000000
--- a/texmf-dist/doc/support/ketcindy/ketsample/samples/s07slides/s0704thin.cdy
+++ /dev/null
Binary files differ
diff --git a/texmf-dist/doc/support/ketcindy/ketsample/samples/s07slides/s0704thin.txt b/texmf-dist/doc/support/ketcindy/ketsample/samples/s07slides/s0704thin.txt
deleted file mode 100644
index 7c97865e..00000000
--- a/texmf-dist/doc/support/ketcindy/ketsample/samples/s07slides/s0704thin.txt
+++ /dev/null
@@ -1,53 +0,0 @@
-タイトル::slide0::%wallpaper/
-
-%%%%%%%%%%%%%%%%//
-main::メインスライド1//
-
-%%%%%%%%%%%%%%%%//
-new::ç”»é¢ä¸Šã®ãƒœã‚¿ãƒ³//
-
-itemize//
-item::\Ltab{20mm}{Figure}é™æ­¢ç”»ï¼ˆFhead+".tex")をfigã«ä½œæˆ//
-item::\Ltab{20mm}{Title}タイトル(default : slide0)ã‚’figã«ä½œæˆ//
-item::\Ltab{20mm}{ParaF}パラパラ動画フォルダを作æˆ\\//
-\Ltab{25mm}{}Setparaã§å¼•æ•°ã‚’書ã„ã¦ãŠã//
-item::\Ltab{20mm}{Slide}Texparent+".txt"ã‹ã‚‰ã‚¹ãƒ©ã‚¤ãƒ‰ã‚’作æˆ//
-item::\Ltab{20mm}{Sum}Summaryã®PDFを作æˆ//
-end//
-
-%%%%%%%%%%%%%%%%//
-new::enumerate環境ã®ä½¿ã„æ–¹//
-%repeat=3//
-
-%[2,-]::enumerate::[(1)]//
-%[2,-]::item::番å·ã‚’変ãˆã‚‹ã«ã¯ï¼Œä¾‹ãˆã° [(1)]//
-%[3,-]::item::表示ページã¯ãƒªã‚¹ãƒˆã§ä¸Žãˆã‚‹\\//
-%[3,-]::\hspace*{10mm}[1],\ [1,-],\ [1..3],\ [1..3,6]ãªã©//
-%[2,- ]::end//
-
-%%%%%%%%%%%%%%%%//
-new::薄文字ã®ä½¿ã„æ–¹//
-%repeat=4//
-
-itemize//
-%thin[2,-]::item::Setslidebodyã®3番目ã®å¼•æ•°ã§æ¿ƒã•ã‚’変更\\//
-%thin[2,-]::\hspace*{10mm}\verb|Setslidebody(["","",0.2]);|//
-%thin[3,-]::item::デフォルトã¯$0.1$//
-%thin[4]::item::リストã®ãƒšãƒ¼ã‚¸ä»¥å¤–ãŒè–„文字ã«ãªã‚‹//
-end//
-
-%%%%%%%%%%%%%%%%//
-new::layerã®ä½¿ã„æ–¹//
-%repeat=5//
-
-\setthin{0}//
-
-itemize//
-%thin[1,-]::item::layerã®å§‹ã¾ã‚Šã¯\verb+layer+{:}{:}\verb+{120}{0}+//
-%thin[2,-]::item::layerã®çµ‚ã‚ã‚Šã¯\verb|end|//
-%thin[3,-]::item::図ã¯\verb+putnote+{:}{:}\verb+se{80}{5}+{:}{:}\verb+grf+//
-%thin[4,-]::item::図ã®ã‚µã‚¤ã‚ºã‚’変ãˆã‚‹ã¨ãã¯\\//
-%thin[4,-]::\hspace*{10mm}{:}{:}\verb+grf,0.8+//
-%thin[5]::item::通常ã®\verb|\putnote|文も使ãˆã‚‹//
-end//
-
diff --git a/texmf-dist/doc/support/ketcindy/ketsample/samples/s07slides/s0705para.cdy b/texmf-dist/doc/support/ketcindy/ketsample/samples/s07slides/s0705para.cdy
deleted file mode 100644
index ffc2f5de..00000000
--- a/texmf-dist/doc/support/ketcindy/ketsample/samples/s07slides/s0705para.cdy
+++ /dev/null
Binary files differ
diff --git a/texmf-dist/doc/support/ketcindy/ketsample/samples/s07slides/s0705paraE.cdy b/texmf-dist/doc/support/ketcindy/ketsample/samples/s07slides/s0705paraE.cdy
deleted file mode 100644
index 2b898539..00000000
--- a/texmf-dist/doc/support/ketcindy/ketsample/samples/s07slides/s0705paraE.cdy
+++ /dev/null
Binary files differ
diff --git a/texmf-dist/doc/support/ketcindy/ketsample/samples/s07slides/s0705paraE.txt b/texmf-dist/doc/support/ketcindy/ketsample/samples/s07slides/s0705paraE.txt
deleted file mode 100644
index b3ff212a..00000000
--- a/texmf-dist/doc/support/ketcindy/ketsample/samples/s07slides/s0705paraE.txt
+++ /dev/null
@@ -1,9 +0,0 @@
-title::slideE::%wallpaperi//
-
-%%%%%%%%%%%%%%%%//
-new::parapara//
-%repeat=,para=sinemove:{0}:s{65}{10}:input:1.2//
-
-%%%%%%%%%%%%%%%%//
-%new::parapara2//
-%%repeat=,para=sinemove2:{0}:s{65}{10}:input:1.2//
diff --git a/texmf-dist/doc/support/ketcindy/ketsample/samples/s07slides/s0706animate.cdy b/texmf-dist/doc/support/ketcindy/ketsample/samples/s07slides/s0706animate.cdy
deleted file mode 100644
index d87de868..00000000
--- a/texmf-dist/doc/support/ketcindy/ketsample/samples/s07slides/s0706animate.cdy
+++ /dev/null
Binary files differ
diff --git a/texmf-dist/doc/support/ketcindy/ketsample/samples/s07slides/s0706animate.txt b/texmf-dist/doc/support/ketcindy/ketsample/samples/s07slides/s0706animate.txt
deleted file mode 100644
index 3793cad5..00000000
--- a/texmf-dist/doc/support/ketcindy/ketsample/samples/s07slides/s0706animate.txt
+++ /dev/null
@@ -1,18 +0,0 @@
-タイトル::slide0::%wallpaper//
-
-%%%%%%%%%%%%%%%%//
-main::メインスライド1//
-
-%%%%%%%%%%%%%%%%//
-new::Animation1//
-
-\begin{center}//
-\input{fig/animsinemove}//
-\end{center}//
-
-%%%%%%%%%%%%%%%%//
-%new::Animation2//
-
-%\begin{center}//
-%\input{fig/animsinemove2}//
-%\end{center}//
diff --git a/texmf-dist/doc/support/ketcindy/ketsample/samples/s07slides/s0706animateE.cdy b/texmf-dist/doc/support/ketcindy/ketsample/samples/s07slides/s0706animateE.cdy
deleted file mode 100644
index 5cb1238a..00000000
--- a/texmf-dist/doc/support/ketcindy/ketsample/samples/s07slides/s0706animateE.cdy
+++ /dev/null
Binary files differ
diff --git a/texmf-dist/doc/support/ketcindy/ketsample/samples/s07slides/s0706animateE.txt b/texmf-dist/doc/support/ketcindy/ketsample/samples/s07slides/s0706animateE.txt
deleted file mode 100644
index c0c98564..00000000
--- a/texmf-dist/doc/support/ketcindy/ketsample/samples/s07slides/s0706animateE.txt
+++ /dev/null
@@ -1,18 +0,0 @@
-Title::slideE::%wallpaper//
-
-%%%%%%%%%%%%%%%%//
-main::Main Slide//
-
-%%%%%%%%%%%%%%%%//
-new::Animation1//
-
-\begin{center}//
-\input{fig/animsinemove}//
-\end{center}//
-
-%%%%%%%%%%%%%%%%//
-%new::Animation2//
-
-%\begin{center}//
-%\input{fig/animsinemove2}//
-%\end{center}// \ No newline at end of file
diff --git a/texmf-dist/doc/support/ketcindy/ketsample/samples/s08R/s0801plotR.cdy b/texmf-dist/doc/support/ketcindy/ketsample/samples/s08R/s0801plotR.cdy
deleted file mode 100644
index b0040070..00000000
--- a/texmf-dist/doc/support/ketcindy/ketsample/samples/s08R/s0801plotR.cdy
+++ /dev/null
Binary files differ
diff --git a/texmf-dist/doc/support/ketcindy/ketsample/samples/s08R/s0802plotR2.cdy b/texmf-dist/doc/support/ketcindy/ketsample/samples/s08R/s0802plotR2.cdy
deleted file mode 100644
index 54148975..00000000
--- a/texmf-dist/doc/support/ketcindy/ketsample/samples/s08R/s0802plotR2.cdy
+++ /dev/null
Binary files differ
diff --git a/texmf-dist/doc/support/ketcindy/ketsample/samples/s08R/s0803boxplot.cdy b/texmf-dist/doc/support/ketcindy/ketsample/samples/s08R/s0803boxplot.cdy
deleted file mode 100644
index cc97d6e8..00000000
--- a/texmf-dist/doc/support/ketcindy/ketsample/samples/s08R/s0803boxplot.cdy
+++ /dev/null
Binary files differ
diff --git a/texmf-dist/doc/support/ketcindy/ketsample/samples/s08R/s0804histplot.cdy b/texmf-dist/doc/support/ketcindy/ketsample/samples/s08R/s0804histplot.cdy
deleted file mode 100644
index 06eb56d7..00000000
--- a/texmf-dist/doc/support/ketcindy/ketsample/samples/s08R/s0804histplot.cdy
+++ /dev/null
Binary files differ
diff --git a/texmf-dist/doc/support/ketcindy/ketsample/samples/s08R/s0805random.cdy b/texmf-dist/doc/support/ketcindy/ketsample/samples/s08R/s0805random.cdy
deleted file mode 100644
index b6b70134..00000000
--- a/texmf-dist/doc/support/ketcindy/ketsample/samples/s08R/s0805random.cdy
+++ /dev/null
Binary files differ
diff --git a/texmf-dist/doc/support/ketcindy/ketsample/samples/s08R/s0806dataframe.cdy b/texmf-dist/doc/support/ketcindy/ketsample/samples/s08R/s0806dataframe.cdy
deleted file mode 100644
index 70cc8213..00000000
--- a/texmf-dist/doc/support/ketcindy/ketsample/samples/s08R/s0806dataframe.cdy
+++ /dev/null
Binary files differ
diff --git a/texmf-dist/doc/support/ketcindy/ketsample/samples/s08R/s0807timecount.cdy b/texmf-dist/doc/support/ketcindy/ketsample/samples/s08R/s0807timecount.cdy
deleted file mode 100644
index 88f2cc3b..00000000
--- a/texmf-dist/doc/support/ketcindy/ketsample/samples/s08R/s0807timecount.cdy
+++ /dev/null
Binary files differ
diff --git a/texmf-dist/doc/support/ketcindy/ketsample/samples/s08R/s0808ttest.cdy b/texmf-dist/doc/support/ketcindy/ketsample/samples/s08R/s0808ttest.cdy
deleted file mode 100644
index c6260d13..00000000
--- a/texmf-dist/doc/support/ketcindy/ketsample/samples/s08R/s0808ttest.cdy
+++ /dev/null
Binary files differ
diff --git a/texmf-dist/doc/support/ketcindy/ketsample/samples/s09surface/s0901paraboloid.cdy b/texmf-dist/doc/support/ketcindy/ketsample/samples/s09surface/s0901paraboloid.cdy
deleted file mode 100644
index 88fdaf1c..00000000
--- a/texmf-dist/doc/support/ketcindy/ketsample/samples/s09surface/s0901paraboloid.cdy
+++ /dev/null
Binary files differ
diff --git a/texmf-dist/doc/support/ketcindy/ketsample/samples/s09surface/s0902cone.cdy b/texmf-dist/doc/support/ketcindy/ketsample/samples/s09surface/s0902cone.cdy
deleted file mode 100644
index 17f96400..00000000
--- a/texmf-dist/doc/support/ketcindy/ketsample/samples/s09surface/s0902cone.cdy
+++ /dev/null
Binary files differ
diff --git a/texmf-dist/doc/support/ketcindy/ketsample/samples/s09surface/s0903saddle.cdy b/texmf-dist/doc/support/ketcindy/ketsample/samples/s09surface/s0903saddle.cdy
deleted file mode 100644
index 6279bf88..00000000
--- a/texmf-dist/doc/support/ketcindy/ketsample/samples/s09surface/s0903saddle.cdy
+++ /dev/null
Binary files differ
diff --git a/texmf-dist/doc/support/ketcindy/ketsample/samples/s09surface/s0904mant.cdy b/texmf-dist/doc/support/ketcindy/ketsample/samples/s09surface/s0904mant.cdy
deleted file mode 100644
index e209bfa5..00000000
--- a/texmf-dist/doc/support/ketcindy/ketsample/samples/s09surface/s0904mant.cdy
+++ /dev/null
Binary files differ
diff --git a/texmf-dist/doc/support/ketcindy/ketsample/samples/s09surface/s0905sphere.cdy b/texmf-dist/doc/support/ketcindy/ketsample/samples/s09surface/s0905sphere.cdy
deleted file mode 100644
index 3f4d4ca4..00000000
--- a/texmf-dist/doc/support/ketcindy/ketsample/samples/s09surface/s0905sphere.cdy
+++ /dev/null
Binary files differ
diff --git a/texmf-dist/doc/support/ketcindy/ketsample/samples/s09surface/s0906curveonsurf.cdy b/texmf-dist/doc/support/ketcindy/ketsample/samples/s09surface/s0906curveonsurf.cdy
deleted file mode 100644
index 16a413ca..00000000
--- a/texmf-dist/doc/support/ketcindy/ketsample/samples/s09surface/s0906curveonsurf.cdy
+++ /dev/null
Binary files differ
diff --git a/texmf-dist/doc/support/ketcindy/ketsample/samples/s09surface/s0907intersectcrvsf.cdy b/texmf-dist/doc/support/ketcindy/ketsample/samples/s09surface/s0907intersectcrvsf.cdy
deleted file mode 100644
index 40b54a57..00000000
--- a/texmf-dist/doc/support/ketcindy/ketsample/samples/s09surface/s0907intersectcrvsf.cdy
+++ /dev/null
Binary files differ
diff --git a/texmf-dist/doc/support/ketcindy/ketsample/samples/s09surface/s0908multisurfaces.cdy b/texmf-dist/doc/support/ketcindy/ketsample/samples/s09surface/s0908multisurfaces.cdy
deleted file mode 100644
index d078a6d8..00000000
--- a/texmf-dist/doc/support/ketcindy/ketsample/samples/s09surface/s0908multisurfaces.cdy
+++ /dev/null
Binary files differ
diff --git a/texmf-dist/doc/support/ketcindy/ketsample/samples/s09surface/s0909wiredata.cdy b/texmf-dist/doc/support/ketcindy/ketsample/samples/s09surface/s0909wiredata.cdy
deleted file mode 100644
index f412eadc..00000000
--- a/texmf-dist/doc/support/ketcindy/ketsample/samples/s09surface/s0909wiredata.cdy
+++ /dev/null
Binary files differ
diff --git a/texmf-dist/doc/support/ketcindy/ketsample/samples/s09surface/s0910conecut.cdy b/texmf-dist/doc/support/ketcindy/ketsample/samples/s09surface/s0910conecut.cdy
deleted file mode 100644
index 275819e9..00000000
--- a/texmf-dist/doc/support/ketcindy/ketsample/samples/s09surface/s0910conecut.cdy
+++ /dev/null
Binary files differ
diff --git a/texmf-dist/doc/support/ketcindy/ketsample/samples/s09surface/s0921totaldiffskeleton.cdy b/texmf-dist/doc/support/ketcindy/ketsample/samples/s09surface/s0921totaldiffskeleton.cdy
deleted file mode 100644
index f45a3fbc..00000000
--- a/texmf-dist/doc/support/ketcindy/ketsample/samples/s09surface/s0921totaldiffskeleton.cdy
+++ /dev/null
Binary files differ
diff --git a/texmf-dist/doc/support/ketcindy/ketsample/samples/s09surface/s0922conecutmaxima.cdy b/texmf-dist/doc/support/ketcindy/ketsample/samples/s09surface/s0922conecutmaxima.cdy
deleted file mode 100644
index 43140179..00000000
--- a/texmf-dist/doc/support/ketcindy/ketsample/samples/s09surface/s0922conecutmaxima.cdy
+++ /dev/null
Binary files differ
diff --git a/texmf-dist/doc/support/ketcindy/ketsample/samples/s10maxima/s1000list.cdy b/texmf-dist/doc/support/ketcindy/ketsample/samples/s10maxima/s1000list.cdy
deleted file mode 100644
index be193e2c..00000000
--- a/texmf-dist/doc/support/ketcindy/ketsample/samples/s10maxima/s1000list.cdy
+++ /dev/null
Binary files differ
diff --git a/texmf-dist/doc/support/ketcindy/ketsample/samples/s10maxima/s1001basic.cdy b/texmf-dist/doc/support/ketcindy/ketsample/samples/s10maxima/s1001basic.cdy
deleted file mode 100644
index c0b659d5..00000000
--- a/texmf-dist/doc/support/ketcindy/ketsample/samples/s10maxima/s1001basic.cdy
+++ /dev/null
Binary files differ
diff --git a/texmf-dist/doc/support/ketcindy/ketsample/samples/s10maxima/s1002equation.cdy b/texmf-dist/doc/support/ketcindy/ketsample/samples/s10maxima/s1002equation.cdy
deleted file mode 100644
index a332c2a4..00000000
--- a/texmf-dist/doc/support/ketcindy/ketsample/samples/s10maxima/s1002equation.cdy
+++ /dev/null
Binary files differ
diff --git a/texmf-dist/doc/support/ketcindy/ketsample/samples/s10maxima/s1003trig.cdy b/texmf-dist/doc/support/ketcindy/ketsample/samples/s10maxima/s1003trig.cdy
deleted file mode 100644
index 5c2e8f1d..00000000
--- a/texmf-dist/doc/support/ketcindy/ketsample/samples/s10maxima/s1003trig.cdy
+++ /dev/null
Binary files differ
diff --git a/texmf-dist/doc/support/ketcindy/ketsample/samples/s10maxima/s1004calcby.cdy b/texmf-dist/doc/support/ketcindy/ketsample/samples/s10maxima/s1004calcby.cdy
deleted file mode 100644
index f5bb31c8..00000000
--- a/texmf-dist/doc/support/ketcindy/ketsample/samples/s10maxima/s1004calcby.cdy
+++ /dev/null
Binary files differ
diff --git a/texmf-dist/doc/support/ketcindy/ketsample/samples/s10maxima/s1005diffint.cdy b/texmf-dist/doc/support/ketcindy/ketsample/samples/s10maxima/s1005diffint.cdy
deleted file mode 100644
index 4b581c9a..00000000
--- a/texmf-dist/doc/support/ketcindy/ketsample/samples/s10maxima/s1005diffint.cdy
+++ /dev/null
Binary files differ
diff --git a/texmf-dist/doc/support/ketcindy/ketsample/samples/s10maxima/s1006calculus.cdy b/texmf-dist/doc/support/ketcindy/ketsample/samples/s10maxima/s1006calculus.cdy
deleted file mode 100644
index 956678be..00000000
--- a/texmf-dist/doc/support/ketcindy/ketsample/samples/s10maxima/s1006calculus.cdy
+++ /dev/null
Binary files differ
diff --git a/texmf-dist/doc/support/ketcindy/ketsample/samples/s10maxima/s1007linalg.cdy b/texmf-dist/doc/support/ketcindy/ketsample/samples/s10maxima/s1007linalg.cdy
deleted file mode 100644
index 44bcaa1d..00000000
--- a/texmf-dist/doc/support/ketcindy/ketsample/samples/s10maxima/s1007linalg.cdy
+++ /dev/null
Binary files differ
diff --git a/texmf-dist/doc/support/ketcindy/ketsample/samples/s10maxima/s1008idtable.cdy b/texmf-dist/doc/support/ketcindy/ketsample/samples/s10maxima/s1008idtable.cdy
deleted file mode 100644
index 8aeb4270..00000000
--- a/texmf-dist/doc/support/ketcindy/ketsample/samples/s10maxima/s1008idtable.cdy
+++ /dev/null
Binary files differ
diff --git a/texmf-dist/doc/support/ketcindy/ketsample/samples/s10maxima/s1009diffeq.cdy b/texmf-dist/doc/support/ketcindy/ketsample/samples/s10maxima/s1009diffeq.cdy
deleted file mode 100644
index 691ff457..00000000
--- a/texmf-dist/doc/support/ketcindy/ketsample/samples/s10maxima/s1009diffeq.cdy
+++ /dev/null
Binary files differ
diff --git a/texmf-dist/doc/support/ketcindy/ketsample/samples/s10maxima/s1010fourier.cdy b/texmf-dist/doc/support/ketcindy/ketsample/samples/s10maxima/s1010fourier.cdy
deleted file mode 100644
index e8cabe3e..00000000
--- a/texmf-dist/doc/support/ketcindy/ketsample/samples/s10maxima/s1010fourier.cdy
+++ /dev/null
Binary files differ
diff --git a/texmf-dist/doc/support/ketcindy/ketsample/samples/s10maxima/s1010fourier2.cdy b/texmf-dist/doc/support/ketcindy/ketsample/samples/s10maxima/s1010fourier2.cdy
deleted file mode 100644
index 3967749a..00000000
--- a/texmf-dist/doc/support/ketcindy/ketsample/samples/s10maxima/s1010fourier2.cdy
+++ /dev/null
Binary files differ
diff --git a/texmf-dist/doc/support/ketcindy/ketsample/samples/s10maxima/s1010fourier3.cdy b/texmf-dist/doc/support/ketcindy/ketsample/samples/s10maxima/s1010fourier3.cdy
deleted file mode 100644
index f096d6ed..00000000
--- a/texmf-dist/doc/support/ketcindy/ketsample/samples/s10maxima/s1010fourier3.cdy
+++ /dev/null
Binary files differ
diff --git a/texmf-dist/doc/support/ketcindy/ketsample/samples/s10maxima/s1011matrixop.cdy b/texmf-dist/doc/support/ketcindy/ketsample/samples/s10maxima/s1011matrixop.cdy
deleted file mode 100644
index 622b7e58..00000000
--- a/texmf-dist/doc/support/ketcindy/ketsample/samples/s10maxima/s1011matrixop.cdy
+++ /dev/null
Binary files differ
diff --git a/texmf-dist/doc/support/ketcindy/ketsample/samples/s10maxima/s1011matrixop2.cdy b/texmf-dist/doc/support/ketcindy/ketsample/samples/s10maxima/s1011matrixop2.cdy
deleted file mode 100644
index ceee9ea0..00000000
--- a/texmf-dist/doc/support/ketcindy/ketsample/samples/s10maxima/s1011matrixop2.cdy
+++ /dev/null
Binary files differ
diff --git a/texmf-dist/doc/support/ketcindy/ketsample/samples/s10maxima/s1012fourierpw.cdy b/texmf-dist/doc/support/ketcindy/ketsample/samples/s10maxima/s1012fourierpw.cdy
deleted file mode 100644
index f6e4420a..00000000
--- a/texmf-dist/doc/support/ketcindy/ketsample/samples/s10maxima/s1012fourierpw.cdy
+++ /dev/null
Binary files differ
diff --git a/texmf-dist/doc/support/ketcindy/ketsample/samples/s10maxima/s1013for.cdy b/texmf-dist/doc/support/ketcindy/ketsample/samples/s10maxima/s1013for.cdy
deleted file mode 100644
index 99d01ad9..00000000
--- a/texmf-dist/doc/support/ketcindy/ketsample/samples/s10maxima/s1013for.cdy
+++ /dev/null
Binary files differ
diff --git a/texmf-dist/doc/support/ketcindy/ketsample/samples/s10maxima/s1014incdec2.cdy b/texmf-dist/doc/support/ketcindy/ketsample/samples/s10maxima/s1014incdec2.cdy
deleted file mode 100644
index 1a48ee9b..00000000
--- a/texmf-dist/doc/support/ketcindy/ketsample/samples/s10maxima/s1014incdec2.cdy
+++ /dev/null
Binary files differ
diff --git a/texmf-dist/doc/support/ketcindy/ketsample/samples/s10maxima/s1015primenumber.cdy b/texmf-dist/doc/support/ketcindy/ketsample/samples/s10maxima/s1015primenumber.cdy
deleted file mode 100644
index 564749b1..00000000
--- a/texmf-dist/doc/support/ketcindy/ketsample/samples/s10maxima/s1015primenumber.cdy
+++ /dev/null
Binary files differ
diff --git a/texmf-dist/doc/support/ketcindy/ketsample/samples/s11asir/s1100list.cdy b/texmf-dist/doc/support/ketcindy/ketsample/samples/s11asir/s1100list.cdy
deleted file mode 100644
index 575037fb..00000000
--- a/texmf-dist/doc/support/ketcindy/ketsample/samples/s11asir/s1100list.cdy
+++ /dev/null
Binary files differ
diff --git a/texmf-dist/doc/support/ketcindy/ketsample/samples/s11asir/s1101calculator1.cdy b/texmf-dist/doc/support/ketcindy/ketsample/samples/s11asir/s1101calculator1.cdy
deleted file mode 100644
index 6d5ab14b..00000000
--- a/texmf-dist/doc/support/ketcindy/ketsample/samples/s11asir/s1101calculator1.cdy
+++ /dev/null
Binary files differ
diff --git a/texmf-dist/doc/support/ketcindy/ketsample/samples/s11asir/s1102calculator2.cdy b/texmf-dist/doc/support/ketcindy/ketsample/samples/s11asir/s1102calculator2.cdy
deleted file mode 100644
index 996a2935..00000000
--- a/texmf-dist/doc/support/ketcindy/ketsample/samples/s11asir/s1102calculator2.cdy
+++ /dev/null
Binary files differ
diff --git a/texmf-dist/doc/support/ketcindy/ketsample/samples/s11asir/s1103calcby.cdy b/texmf-dist/doc/support/ketcindy/ketsample/samples/s11asir/s1103calcby.cdy
deleted file mode 100644
index 66e58f97..00000000
--- a/texmf-dist/doc/support/ketcindy/ketsample/samples/s11asir/s1103calcby.cdy
+++ /dev/null
Binary files differ
diff --git a/texmf-dist/doc/support/ketcindy/ketsample/samples/s11asir/s1104diff.cdy b/texmf-dist/doc/support/ketcindy/ketsample/samples/s11asir/s1104diff.cdy
deleted file mode 100644
index 43727b1f..00000000
--- a/texmf-dist/doc/support/ketcindy/ketsample/samples/s11asir/s1104diff.cdy
+++ /dev/null
Binary files differ
diff --git a/texmf-dist/doc/support/ketcindy/ketsample/samples/s11asir/s1105fint101.cdy b/texmf-dist/doc/support/ketcindy/ketsample/samples/s11asir/s1105fint101.cdy
deleted file mode 100644
index ed7d7dfa..00000000
--- a/texmf-dist/doc/support/ketcindy/ketsample/samples/s11asir/s1105fint101.cdy
+++ /dev/null
Binary files differ
diff --git a/texmf-dist/doc/support/ketcindy/ketsample/samples/s11asir/s1105fzero109.cdy b/texmf-dist/doc/support/ketcindy/ketsample/samples/s11asir/s1105fzero109.cdy
deleted file mode 100644
index 475b0018..00000000
--- a/texmf-dist/doc/support/ketcindy/ketsample/samples/s11asir/s1105fzero109.cdy
+++ /dev/null
Binary files differ
diff --git a/texmf-dist/doc/support/ketcindy/ketsample/samples/s11asir/s1106fmmx110.cdy b/texmf-dist/doc/support/ketcindy/ketsample/samples/s11asir/s1106fmmx110.cdy
deleted file mode 100644
index c360a5cc..00000000
--- a/texmf-dist/doc/support/ketcindy/ketsample/samples/s11asir/s1106fmmx110.cdy
+++ /dev/null
Binary files differ
diff --git a/texmf-dist/doc/support/ketcindy/ketsample/samples/s11asir/s1110integrate.cdy b/texmf-dist/doc/support/ketcindy/ketsample/samples/s11asir/s1110integrate.cdy
deleted file mode 100644
index 8151daf2..00000000
--- a/texmf-dist/doc/support/ketcindy/ketsample/samples/s11asir/s1110integrate.cdy
+++ /dev/null
Binary files differ
diff --git a/texmf-dist/doc/support/ketcindy/ketsample/samples/s11asir/s1111grobner1.cdy b/texmf-dist/doc/support/ketcindy/ketsample/samples/s11asir/s1111grobner1.cdy
deleted file mode 100644
index 9ac5a504..00000000
--- a/texmf-dist/doc/support/ketcindy/ketsample/samples/s11asir/s1111grobner1.cdy
+++ /dev/null
Binary files differ
diff --git a/texmf-dist/doc/support/ketcindy/ketsample/samples/s11asir/s1112residue.cdy b/texmf-dist/doc/support/ketcindy/ketsample/samples/s11asir/s1112residue.cdy
deleted file mode 100644
index b8db8601..00000000
--- a/texmf-dist/doc/support/ketcindy/ketsample/samples/s11asir/s1112residue.cdy
+++ /dev/null
Binary files differ
diff --git a/texmf-dist/doc/support/ketcindy/ketsample/samples/s12fricas/s1201integrate.cdy b/texmf-dist/doc/support/ketcindy/ketsample/samples/s12fricas/s1201integrate.cdy
deleted file mode 100644
index 42fb8d3f..00000000
--- a/texmf-dist/doc/support/ketcindy/ketsample/samples/s12fricas/s1201integrate.cdy
+++ /dev/null
Binary files differ
diff --git a/texmf-dist/doc/support/ketcindy/ketsample/samples/s12fricas/s1201integrate2.cdy b/texmf-dist/doc/support/ketcindy/ketsample/samples/s12fricas/s1201integrate2.cdy
deleted file mode 100644
index 13b0cdb3..00000000
--- a/texmf-dist/doc/support/ketcindy/ketsample/samples/s12fricas/s1201integrate2.cdy
+++ /dev/null
Binary files differ
diff --git a/texmf-dist/doc/support/ketcindy/ketsample/samples/s12fricas/s1202calcby.cdy b/texmf-dist/doc/support/ketcindy/ketsample/samples/s12fricas/s1202calcby.cdy
deleted file mode 100644
index d79f82f5..00000000
--- a/texmf-dist/doc/support/ketcindy/ketsample/samples/s12fricas/s1202calcby.cdy
+++ /dev/null
Binary files differ
diff --git a/texmf-dist/doc/support/ketcindy/ketsample/samples/s12fricas/s1202equations.cdy b/texmf-dist/doc/support/ketcindy/ketsample/samples/s12fricas/s1202equations.cdy
deleted file mode 100644
index bbc19ef9..00000000
--- a/texmf-dist/doc/support/ketcindy/ketsample/samples/s12fricas/s1202equations.cdy
+++ /dev/null
Binary files differ
diff --git a/texmf-dist/doc/support/ketcindy/ketsample/samples/s13meshlab/s1301basic.cdy b/texmf-dist/doc/support/ketcindy/ketsample/samples/s13meshlab/s1301basic.cdy
deleted file mode 100644
index 2489208e..00000000
--- a/texmf-dist/doc/support/ketcindy/ketsample/samples/s13meshlab/s1301basic.cdy
+++ /dev/null
Binary files differ
diff --git a/texmf-dist/doc/support/ketcindy/ketsample/samples/s13meshlab/s1303objparts.cdy b/texmf-dist/doc/support/ketcindy/ketsample/samples/s13meshlab/s1303objparts.cdy
deleted file mode 100644
index 2675c4d9..00000000
--- a/texmf-dist/doc/support/ketcindy/ketsample/samples/s13meshlab/s1303objparts.cdy
+++ /dev/null
Binary files differ
diff --git a/texmf-dist/doc/support/ketcindy/ketsample/samples/s13meshlab/s1304symbol.cdy b/texmf-dist/doc/support/ketcindy/ketsample/samples/s13meshlab/s1304symbol.cdy
deleted file mode 100644
index 8f5d0012..00000000
--- a/texmf-dist/doc/support/ketcindy/ketsample/samples/s13meshlab/s1304symbol.cdy
+++ /dev/null
Binary files differ
diff --git a/texmf-dist/doc/support/ketcindy/ketsample/samples/s13meshlab/s1305hyperpara.cdy b/texmf-dist/doc/support/ketcindy/ketsample/samples/s13meshlab/s1305hyperpara.cdy
deleted file mode 100644
index 2768c455..00000000
--- a/texmf-dist/doc/support/ketcindy/ketsample/samples/s13meshlab/s1305hyperpara.cdy
+++ /dev/null
Binary files differ
diff --git a/texmf-dist/doc/support/ketcindy/ketsample/samples/s13meshlab/s1306poly.cdy b/texmf-dist/doc/support/ketcindy/ketsample/samples/s13meshlab/s1306poly.cdy
deleted file mode 100644
index e357ce0b..00000000
--- a/texmf-dist/doc/support/ketcindy/ketsample/samples/s13meshlab/s1306poly.cdy
+++ /dev/null
Binary files differ
diff --git a/texmf-dist/doc/support/ketcindy/ketsample/samples/s13meshlab/s1307poly2.cdy b/texmf-dist/doc/support/ketcindy/ketsample/samples/s13meshlab/s1307poly2.cdy
deleted file mode 100644
index 0f3f54b2..00000000
--- a/texmf-dist/doc/support/ketcindy/ketsample/samples/s13meshlab/s1307poly2.cdy
+++ /dev/null
Binary files differ
diff --git a/texmf-dist/doc/support/ketcindy/ketsample/samples/s13meshlab/s1308discont.cdy b/texmf-dist/doc/support/ketcindy/ketsample/samples/s13meshlab/s1308discont.cdy
deleted file mode 100644
index 01f65394..00000000
--- a/texmf-dist/doc/support/ketcindy/ketsample/samples/s13meshlab/s1308discont.cdy
+++ /dev/null
Binary files differ
diff --git a/texmf-dist/doc/support/ketcindy/ketsample/samples/s13meshlab/s1309discont2.cdy b/texmf-dist/doc/support/ketcindy/ketsample/samples/s13meshlab/s1309discont2.cdy
deleted file mode 100644
index 160b1fba..00000000
--- a/texmf-dist/doc/support/ketcindy/ketsample/samples/s13meshlab/s1309discont2.cdy
+++ /dev/null
Binary files differ
diff --git a/texmf-dist/doc/support/ketcindy/ketsample/samples/s13meshlab/s1310totaldiff.cdy b/texmf-dist/doc/support/ketcindy/ketsample/samples/s13meshlab/s1310totaldiff.cdy
deleted file mode 100644
index 7a526d7e..00000000
--- a/texmf-dist/doc/support/ketcindy/ketsample/samples/s13meshlab/s1310totaldiff.cdy
+++ /dev/null
Binary files differ
diff --git a/texmf-dist/doc/support/ketcindy/ketsample/samples/s13meshlab/s1311plate.cdy b/texmf-dist/doc/support/ketcindy/ketsample/samples/s13meshlab/s1311plate.cdy
deleted file mode 100644
index 6afb901b..00000000
--- a/texmf-dist/doc/support/ketcindy/ketsample/samples/s13meshlab/s1311plate.cdy
+++ /dev/null
Binary files differ
diff --git a/texmf-dist/doc/support/ketcindy/ketsample/samples/s13meshlab/s1312plane.cdy b/texmf-dist/doc/support/ketcindy/ketsample/samples/s13meshlab/s1312plane.cdy
deleted file mode 100644
index 777d2972..00000000
--- a/texmf-dist/doc/support/ketcindy/ketsample/samples/s13meshlab/s1312plane.cdy
+++ /dev/null
Binary files differ
diff --git a/texmf-dist/doc/support/ketcindy/ketsample/samples/s13meshlab/s1313changescale.cdy b/texmf-dist/doc/support/ketcindy/ketsample/samples/s13meshlab/s1313changescale.cdy
deleted file mode 100644
index 91721733..00000000
--- a/texmf-dist/doc/support/ketcindy/ketsample/samples/s13meshlab/s1313changescale.cdy
+++ /dev/null
Binary files differ
diff --git a/texmf-dist/doc/support/ketcindy/ketsample/samples/s14dataprocessing/s1401csvprocessing.cdy b/texmf-dist/doc/support/ketcindy/ketsample/samples/s14dataprocessing/s1401csvprocessing.cdy
deleted file mode 100644
index 8339f560..00000000
--- a/texmf-dist/doc/support/ketcindy/ketsample/samples/s14dataprocessing/s1401csvprocessing.cdy
+++ /dev/null
Binary files differ
diff --git a/texmf-dist/doc/support/ketcindy/ketsample/samples/s14dataprocessing/s1402copypaste.cdy b/texmf-dist/doc/support/ketcindy/ketsample/samples/s14dataprocessing/s1402copypaste.cdy
deleted file mode 100644
index acdc2d25..00000000
--- a/texmf-dist/doc/support/ketcindy/ketsample/samples/s14dataprocessing/s1402copypaste.cdy
+++ /dev/null
Binary files differ
diff --git a/texmf-dist/doc/support/ketcindy/ketsample/samples/s14dataprocessing/s1403maketableJ.cdy b/texmf-dist/doc/support/ketcindy/ketsample/samples/s14dataprocessing/s1403maketableJ.cdy
deleted file mode 100644
index 88c81f69..00000000
--- a/texmf-dist/doc/support/ketcindy/ketsample/samples/s14dataprocessing/s1403maketableJ.cdy
+++ /dev/null
Binary files differ
diff --git a/texmf-dist/doc/support/ketcindy/ketsample/samples/s14dataprocessing/sample1.csv b/texmf-dist/doc/support/ketcindy/ketsample/samples/s14dataprocessing/sample1.csv
deleted file mode 100644
index 38d5fa8c..00000000
--- a/texmf-dist/doc/support/ketcindy/ketsample/samples/s14dataprocessing/sample1.csv
+++ /dev/null
@@ -1,10 +0,0 @@
-63,33,59,64,52
-61,26,47,27,59
-40,52,24,48,26
-63,56,44,40,34
-75,34,64,76,61
-58,63,53,50,68
-65,38,81,59,23
-54,65,41,76,53
-75,61,42,58,40
-44,42,58,41,56
diff --git a/texmf-dist/doc/support/ketcindy/ketsample/samples/s14dataprocessing/sample2.csv b/texmf-dist/doc/support/ketcindy/ketsample/samples/s14dataprocessing/sample2.csv
deleted file mode 100644
index f6273be2..00000000
--- a/texmf-dist/doc/support/ketcindy/ketsample/samples/s14dataprocessing/sample2.csv
+++ /dev/null
@@ -1,10 +0,0 @@
-50,68,57,65,60
-64,48,65,61,72
-41,45,31,51,47
-54,55,39,47,39
-34,52,43,50,47
-54,31,58,38,79
-14,36,56,46,63
-78,54,40,64,42
-40,44,68,59,46
-41,65,40,44,37
diff --git a/texmf-dist/doc/support/ketcindy/ketsample/samples/s15C/s1501mant.cdy b/texmf-dist/doc/support/ketcindy/ketsample/samples/s15C/s1501mant.cdy
deleted file mode 100644
index 59bfc5cf..00000000
--- a/texmf-dist/doc/support/ketcindy/ketsample/samples/s15C/s1501mant.cdy
+++ /dev/null
Binary files differ
diff --git a/texmf-dist/doc/support/ketcindy/ketsample/samples/s15C/s1502torus.cdy b/texmf-dist/doc/support/ketcindy/ketsample/samples/s15C/s1502torus.cdy
deleted file mode 100644
index ec9a5966..00000000
--- a/texmf-dist/doc/support/ketcindy/ketsample/samples/s15C/s1502torus.cdy
+++ /dev/null
Binary files differ
diff --git a/texmf-dist/doc/support/ketcindy/ketsample/samples/s15C/s1503parabola.cdy b/texmf-dist/doc/support/ketcindy/ketsample/samples/s15C/s1503parabola.cdy
deleted file mode 100644
index 5b45f933..00000000
--- a/texmf-dist/doc/support/ketcindy/ketsample/samples/s15C/s1503parabola.cdy
+++ /dev/null
Binary files differ
diff --git a/texmf-dist/doc/support/ketcindy/ketsample/samples/s15C/s1504conecut.cdy b/texmf-dist/doc/support/ketcindy/ketsample/samples/s15C/s1504conecut.cdy
deleted file mode 100644
index 43fe8655..00000000
--- a/texmf-dist/doc/support/ketcindy/ketsample/samples/s15C/s1504conecut.cdy
+++ /dev/null
Binary files differ
diff --git a/texmf-dist/doc/support/ketcindy/ketsample/samples/s15C/s1505skeleton.cdy b/texmf-dist/doc/support/ketcindy/ketsample/samples/s15C/s1505skeleton.cdy
deleted file mode 100644
index 0497a177..00000000
--- a/texmf-dist/doc/support/ketcindy/ketsample/samples/s15C/s1505skeleton.cdy
+++ /dev/null
Binary files differ
diff --git a/texmf-dist/doc/support/ketcindy/ketsample/samplesJS/js01basic.cdy b/texmf-dist/doc/support/ketcindy/ketsample/samplesJS/js01basic.cdy
deleted file mode 100755
index ac2ecd2d..00000000
--- a/texmf-dist/doc/support/ketcindy/ketsample/samplesJS/js01basic.cdy
+++ /dev/null
Binary files differ
diff --git a/texmf-dist/doc/support/ketcindy/ketsample/samplesJS/js02diffeq2.cdy b/texmf-dist/doc/support/ketcindy/ketsample/samplesJS/js02diffeq2.cdy
deleted file mode 100644
index 1bbe45a7..00000000
--- a/texmf-dist/doc/support/ketcindy/ketsample/samplesJS/js02diffeq2.cdy
+++ /dev/null
Binary files differ
diff --git a/texmf-dist/doc/support/ketcindy/ketsample/samplesJS/js03gamow.cdy b/texmf-dist/doc/support/ketcindy/ketsample/samplesJS/js03gamow.cdy
deleted file mode 100755
index 1305329e..00000000
--- a/texmf-dist/doc/support/ketcindy/ketsample/samplesJS/js03gamow.cdy
+++ /dev/null
Binary files differ
diff --git a/texmf-dist/doc/support/ketcindy/source/ketjava/KetCindyPlugin.java b/texmf-dist/doc/support/ketcindy/source/ketjava/KetCindyPlugin.java
deleted file mode 100644
index 4aa74435..00000000
--- a/texmf-dist/doc/support/ketcindy/source/ketjava/KetCindyPlugin.java
+++ /dev/null
@@ -1,430 +0,0 @@
-import de.cinderella.api.cs.CindyScript;
-import de.cinderella.api.cs.CindyScriptPlugin;
-import org.apache.commons.math.linear.MatrixUtils;
-import org.apache.commons.math.linear.RealMatrix;
-
-import java.awt.*;
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.io.*;
-import java.util.Date;
-
-public class KetCindyPlugin extends CindyScriptPlugin {
-
- @CindyScript("ketjavaversion")
- public String ketjavaversion() {
- return "Ketjava 20180408";
- }
-
- public String getName() {
- return "KetCindy Plugin";
- }
-
- public String getAuthor() {
- return "The KetCindy Project Team";
- }
-
- @CindyScript("systemproperty")
- public String getUserID(String s) {
- return System.getProperty(s);
- }
-
- @CindyScript("square")
- public double quadrieren(double x) {
- return x * x;
- }
-
- @CindyScript("grayvalue")
- public double getGray(Color c) {
- return (c.getBlue() + c.getRed() + c.getGreen()) / 3.;
- }
-
- @CindyScript("isincludefull")//180331
- public static boolean isincludefull(String str){
- char[] chars = str.toCharArray();
- for (int i = 0; i < chars.length; i++) {
- if (String.valueOf(chars[i]).getBytes().length==2) {
- return true;
- }
- }
- return false;
- }
-
- @CindyScript("getdir")
- public String getdir() {
- return System.getProperty("user.dir");
- }
-
- @CindyScript("gethome")
- public String gethome() {
- return System.getProperty("user.home");
- }
-
- @CindyScript("getname")
- // 17.10.08
- public String getname() {
- return System.getProperty("user.name");
- }
-
- @CindyScript("iswindows")
- public static boolean iswindows(){
- String os=System.getProperty("os.name").toLowerCase();
- if(os!=null && os.startsWith("windows")){
- return true;
- }
- else{
- return false;
- }
- }
-
- @CindyScript("ismacosx")
- public static boolean ismacosx(){
- String os=System.getProperty("os.name").toLowerCase();
- if(os!=null && os.startsWith("mac")){
- return true;
- }
- else{
- return false;
- }
- }
- @CindyScript("islinux")
- public static boolean islinux(){
- String os=System.getProperty("os.name").toLowerCase();
- if(os!=null && os.startsWith("linux")){
- return true;
- }
- else{
- return false;
- }
- }
-
- @CindyScript("iswin")
- public static boolean iswin() {
- String OS_NAME = System.getProperty("os.name").toLowerCase();
- return OS_NAME.startsWith("windows");
- }
-
- @CindyScript("kc")
- public static String kc(String args){
- return "Improper call";
- }
-
- @CindyScript("nkfwin") //180408
- public static String nkfwin(String path,String dir,String fn1,String fn2)
- throws IOException {
- String src="\""+dir+"\\"+fn1+"\"";
- String out="\""+dir+"\\"+fn2+"\"";
- ProcessBuilder pb = new ProcessBuilder();
- pb.command("cmd","/c","\""+path+"\\nkf32\"","-s","<"+src,">"+out);
- Process process = pb.start();
- return out+" generated";
- }
-
- @CindyScript("kc")
- public static String kc(String args,String args2,String args3) throws IOException {
- ProcessBuilder pb = new ProcessBuilder();
- File f = new File(args);
- int flg=0;
- int pos=0;
- String kst="";
- BufferedReader br = new BufferedReader(new FileReader(f));
- String str;
- while((str = br.readLine()) != null){
- if(str.indexOf("*")>-1|| str.indexOf("?")>-1){
- flg=1;
- }
- else{
- str=str.toUpperCase();
- str=str.replaceAll("\""," "); /* 16.06.08 */
- if(str.indexOf("RM ")>-1 || str.indexOf("DEL ")>-1){
- //16.07.21from
- if(str.indexOf(".DVI")==-1 && str.indexOf(".TXT")==-1){
- flg=2;
- }
- // 16.07.21upto
- }
- if(str.indexOf("MV ")>-1 || str.indexOf("MOVE ")>-1){
- flg=3;
- }
- if(str.indexOf("RD ")>-1 || str.indexOf("RMDIR ")>-1){
- flg=4;
- }
- // 16.04.09from
- if(str.indexOf("SHUTDOWN ")>-1 || str.indexOf("SLEEP ")>-1){
- flg=5;
- }
- if(str.indexOf("CLEAR ")>-1 || str.indexOf("CLS ")>-1){
- flg=6;
- }
- if(str.indexOf("FTP ")>-1|| str.indexOf("TELNET ")>-1){
- flg=7;
- }
- if(str.indexOf("USERMOD ")>-1 || str.indexOf("USERDEL ")>-1){
- flg=8;
- }
- if(str.indexOf("USERADD ")>-1 || str.indexOf("USERMOD ")>-1){
- flg=9;
- }
- if(str.indexOf("CHMOD ")>-1){
- if(str.indexOf("CHMOD +")==-1){
- flg=10;
- }
- }
- if(str.indexOf("CRONTAB ")>-1 || str.indexOf("KILL ")>-1){
- flg=11;
- }
- if(str.indexOf("AT ")>-1){
- pos=str.indexOf("AT ");
- if(pos==0){
- flg=12;
- }
- else{
- kst=str.substring(pos-1,pos);
- if(!kst.equals("B")){
- flg=12;
- }
- }
- // 16.04.09upto
- }
-// if(str.indexOf("PATH ")>-1 || str.indexOf("PAUSE ")>-1 || str.indexOf("ARP ")>-1){
- if(str.indexOf("PAUSE ")>-1 || str.indexOf("ARP ")>-1){
- flg=13;
- }
- if(str.indexOf("RENAME ")>-1 || str.indexOf("START ")>-1){
- flg=14;
- }
- // 16.07.21
- if(str.indexOf(".SH")>-1 || str.indexOf(".BAT")>-1){
- if(str.indexOf("MAXIMA.")==-1 && str.indexOf("KC.")==-1){ /* 2016.07.22 */
- flg=15;
- }
- }
- }
- if(flg>0){
- br.close();
- return "Improper file "+String.valueOf(flg)+" "+str;
- }
- }
- br.close();
- // 16.06.05from
- Long tm=System.currentTimeMillis()-f.lastModified();
- if(tm>10000 || tm<0){ /* 16.06.08 */
- flg=50;
- return "Time expired";
- }
- if((args.indexOf("kc.")==-1|| args2.indexOf("ketlib")==-1) || args3.indexOf(".t")==-1){
- flg=60;
- return "Improper form";
- }
- if(flg==0){
- if(iswindows()){
- if((args.indexOf(" ")==-1)&&(args.indexOf("-")==-1)
- &&(args.indexOf(" ")==-1)){ //180405
- pb.command("cmd.exe","/c","start",args);
- }else{
- pb.command("cmd.exe","/c","","\""+args+"\"");//180331to
- }
- }
- else{
- if(ismacosx()){
- if(args2.indexOf("open")>-1){ /* 2016.06.07from */
- pb.command("open",args);
- }
- else{
- pb.command("sh",args);
- } /* 2016.06.07upto */
- }
- else{
- pb.command("sh",args);
- }
- }
- }
- Process process = pb.start();
- return "Normal end";
- // 16.06.05upto
- }
-
- @CindyScript("ispaulvisiting")
- public static boolean ispaulvisiting() {
- return true;
- }
-
- @CindyScript("texv")
- public static void texv( String s, String d, String sf, String tf) throws Exception{
- ProcessBuilder pb = new ProcessBuilder();
- String[] cmd = {s,d,sf,tf};
- pb.command(cmd);
- Process process = pb.start();
- return ;
- }
-
- @CindyScript("givemeamatrix2")
- public static Object givemeamatrix2() {
- try {
- return "the Matrix: " + theGiveMeAMatrix().toString();
- } catch (Throwable e) {
- e.printStackTrace();
- return "no Matrix: " + e.toString();
- }
- }
-
- public static Object theGiveMeAMatrix() {
- double[][] matrixData = { {1d,2d,3d}, {2d,5d,3d}};
- RealMatrix m = MatrixUtils.createRealMatrix(matrixData);
- return m;
- }
-
- @CindyScript("getdirhead")
- public static String getdirhead(){
- if(iswindows()){
- return System.getProperty("user.home")+"\\ketcindy";
- }
- else if(ismacosx()){
- return System.getProperty("user.home")+"/ketcindy";
- }
- else if(islinux()){
- return System.getProperty("user.home")+"/ketcindy";
- // "/usr/share/ketcindy";
- }
- else{
- return "unknown";
- }
- }
-
- @CindyScript("getdirhead")
- public static String getdirhead(String dir){
- if(iswindows()){
- return dir+"\\ketcindy";
- }
- else if(ismacosx()){
- return dir+"/ketcindy";
- }
- else if(islinux()){
- return dir+"/ketcindy";
- }
- else{
- return "unknown";
- }
- }
-
- @CindyScript("iskcexists")
- public static boolean iskcexists(String dir){
- File file = new File(dir+"/kc.sh");
- if(file.exists()){
- file.setExecutable(true,false);
- //16.10.19
- return true;
- }
- else{
- return false;
- }
- }
-
- @CindyScript("pathsep")
- // 17.09.06
- public static String pathsep(){
- return File.separator;
- }
-
- @CindyScript("isexists")
- // 16.10.02
- public static boolean isexists(String dir,String fname){
- File file = new File(dir+File.separator+fname);
- if(file.exists()){
- return true;
- }
- else{
- return false;
- }
- }
-
- @CindyScript("filepath")
- // 18.03.29
- public static String isexists(String fname){
- File file = new File(fname);
- String path = file.getAbsolutePath();
- return path;
- }
-
- @CindyScript("makedir")
- // 17.09.06
- public static String makedir(String dir,String dirname){
- File newfile = new File(dir+File.separator+dirname);
- if (newfile.mkdir()){
- return dirname+" created";
- }else{
- return dirname+" already exists";
- }
- }
-
- @CindyScript("fileslength")
- // 16.12.09
- public static int fileslength(String dirname){
- File dir=new File(dirname);
- File[] files=dir.listFiles();
- String str;
- String head;
- int ctr=0;
- if(dir.exists()){
- for(int i=0;i<files.length;i++){
- str=files[i].getName();
- head=str.substring(0,1);
- if(head.equals(".")){ctr=ctr+1;}
- }
- return files.length-ctr;
- }
- else{
- return -1;
- }
- }
-
- @CindyScript("fileslist")
- // 16.12.09
- public static String fileslist(String dirname){
- File dir=new File(dirname);
- File[] files=dir.listFiles();
- String str;
- String head;
- String strall="";
- if(dir.exists()){
- for(int i=0;i<files.length;i++){
- str=files[i].getName();
- head=str.substring(0,1);
- if(!head.equals(".")){strall=strall+","+str;}
- }
- return strall.substring(1);
- }
- else{
- return "";
- }
- }
-
- @CindyScript("setexec")
- // 16.10.19
- public static String setexec(String dir,String fname){
- File file = new File(dir+File.separator+fname);
- File path = new File(dir);
- if(path.exists()){
- if(file.exists()){
- file.setExecutable(true,false);
- return fname+" executable";
- }
- else{
-// file.createNewFile();
-// file.setExecutable(true,false);
- return fname+" not exists";
- }
- }
- else{
- return dir+" not exists";
- }
- }
-
- @CindyScript("getdatetime")
- // 16.10.21
- public static String getdatetime(){
- Date date=new Date();
- return date.toString();
- }
-
-}
diff --git a/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/ForRef-Arrowhead-1.tex b/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/ForRef-Arrowhead-1.tex
deleted file mode 100644
index a3b0f91d..00000000
--- a/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/ForRef-Arrowhead-1.tex
+++ /dev/null
@@ -1,64 +0,0 @@
-%%% ForRef-Arrowhead-1.tex 2014-11-10 7:14
-%%% ForRef-Arrowhead5all.sce~ 2014-11-10 6:59
-{\unitlength=1cm%
-\begin{picture}%
-( 2.03000, 2.02000)( -0.56000, -0.53000)%
-\special{pn 8}%
-%
-\special{pn 8}%
-\special{pa 394 4}\special{pa 394 -4}\special{fp}\special{pa 394 -35}\special{pa 394 -43}\special{fp}%
-\special{pa 394 -75}\special{pa 394 -83}\special{fp}\special{pa 394 -114}\special{pa 394 -122}\special{fp}%
-\special{pa 394 -153}\special{pa 394 -161}\special{fp}\special{pa 394 -193}\special{pa 394 -201}\special{fp}%
-\special{pa 394 -232}\special{pa 394 -240}\special{fp}\special{pa 394 -272}\special{pa 394 -280}\special{fp}%
-\special{pa 394 -311}\special{pa 394 -319}\special{fp}\special{pa 394 -350}\special{pa 394 -358}\special{fp}%
-\special{pa 397 -391}\special{pa 391 -397}\special{fp}\special{pa 358 -394}\special{pa 350 -394}\special{fp}%
-\special{pa 319 -394}\special{pa 311 -394}\special{fp}\special{pa 280 -394}\special{pa 272 -394}\special{fp}%
-\special{pa 240 -394}\special{pa 232 -394}\special{fp}\special{pa 201 -394}\special{pa 193 -394}\special{fp}%
-\special{pa 161 -394}\special{pa 153 -394}\special{fp}\special{pa 122 -394}\special{pa 114 -394}\special{fp}%
-\special{pa 83 -394}\special{pa 75 -394}\special{fp}\special{pa 43 -394}\special{pa 35 -394}\special{fp}%
-\special{pa 4 -394}\special{pa -4 -394}\special{fp}\special{pn 8}%
-\special{pa 408 -408}\special{pa 400 -412}\special{pa 390 -413}\special{pa 382 -409}%
-\special{pa 376 -402}\special{pa 374 -393}\special{pa 377 -384}\special{pa 384 -377}%
-\special{pa 393 -374}\special{pa 402 -376}\special{pa 409 -382}\special{pa 413 -390}%
-\special{pa 412 -400}\special{pa 408 -408}\special{sh 1}\special{fp}%
-\settowidth{\Width}{A}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{A}\settodepth{\Depth}{A}\setlength{\Height}{\Depth}%
-\put(1.1000,1.1000){\hspace*{\Width}\raisebox{\Height}{A}}%
-%
-%
-\special{pa 394 -20}\special{pa 394 20}%
-\special{fp}%
-\settowidth{\Width}{$1$}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{$1$}\settodepth{\Depth}{$1$}\setlength{\Height}{-\Height}%
-\put(1.0000,-0.1000){\hspace*{\Width}\raisebox{\Height}{$1$}}%
-%
-%
-%
-\special{pa 20 -394}\special{pa -20 -394}%
-\special{fp}%
-\settowidth{\Width}{$1$}\setlength{\Width}{-1\Width}%
-\settoheight{\Height}{$1$}\settodepth{\Depth}{$1$}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(-0.1000,1.0000){\hspace*{\Width}\raisebox{\Height}{$1$}}%
-%
-%
-%
-\special{pa -220 0}\special{pa 579 0}%
-\special{fp}%
-\special{pa 0 209}\special{pa 0 -587}%
-\special{fp}%
-\settowidth{\Width}{$x$}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{$x$}\settodepth{\Depth}{$x$}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(1.5200,0.0000){\hspace*{\Width}\raisebox{\Height}{$x$}}%
-%
-%
-\settowidth{\Width}{$y$}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{$y$}\settodepth{\Depth}{$y$}\setlength{\Height}{\Depth}%
-\put(0.0000,1.5400){\hspace*{\Width}\raisebox{\Height}{$y$}}%
-%
-%
-\settowidth{\Width}{O}\setlength{\Width}{-1\Width}%
-\settoheight{\Height}{O}\settodepth{\Depth}{O}\setlength{\Height}{-\Height}%
-\put(-0.0500,-0.0500){\hspace*{\Width}\raisebox{\Height}{O}}%
-%
-%
-\end{picture}}% \ No newline at end of file
diff --git a/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/ForRef-Arrowhead-10.tex b/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/ForRef-Arrowhead-10.tex
deleted file mode 100644
index 141dcdd5..00000000
--- a/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/ForRef-Arrowhead-10.tex
+++ /dev/null
@@ -1,24 +0,0 @@
-%%% ForRef-Arrowhead-10.tex 2014-11-10 7:14
-%%% ForRef-Arrowhead5all.sce~ 2014-11-10 6:59
-{\unitlength=1cm%
-\begin{picture}%
-( 2.03000, 2.02000)( -0.56000, -0.53000)%
-\special{pn 8}%
-%
-\special{pa 118 -350}\special{pa 197 -343}\special{pa 138 -394}\special{pa 128 -372}%
-\special{pa 118 -350}\special{sh 1}\special{ip}%
-\special{pn 8}%
-\special{pa 118 -350}\special{pa 197 -343}\special{pa 138 -394}\special{pa 128 -372}%
-\special{pa 118 -350}%
-\special{fp}%
-\special{pn 8}%
-\special{pa 394 0}\special{pa 391 -49}\special{pa 381 -98}\special{pa 366 -145}\special{pa 345 -190}%
-\special{pa 319 -231}\special{pa 287 -270}\special{pa 251 -303}\special{pa 211 -332}%
-\special{pa 168 -356}\special{pa 122 -374}\special{pa 74 -387}\special{pa 25 -393}%
-\special{pa -25 -393}\special{pa -74 -387}\special{pa -122 -374}\special{pa -168 -356}%
-\special{pa -211 -332}\special{pa -220 -325}%
-\special{fp}%
-\special{pa 333 209}\special{pa 345 190}\special{pa 366 145}\special{pa 381 98}\special{pa 391 49}%
-\special{pa 394 0}%
-\special{fp}%
-\end{picture}}% \ No newline at end of file
diff --git a/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/ForRef-Arrowhead-2.tex b/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/ForRef-Arrowhead-2.tex
deleted file mode 100644
index c7283279..00000000
--- a/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/ForRef-Arrowhead-2.tex
+++ /dev/null
@@ -1,46 +0,0 @@
-%%% ForRef-Arrowhead-2.tex 2014-11-10 7:14
-%%% ForRef-Arrowhead5all.sce~ 2014-11-10 6:59
-{\unitlength=1cm%
-\begin{picture}%
-( 2.03000, 2.02000)( -0.56000, -0.53000)%
-\special{pn 8}%
-%
-\special{pn 8}%
-\special{pa 394 4}\special{pa 394 -4}\special{fp}\special{pa 394 -35}\special{pa 394 -43}\special{fp}%
-\special{pa 394 -75}\special{pa 394 -83}\special{fp}\special{pa 394 -114}\special{pa 394 -122}\special{fp}%
-\special{pa 394 -153}\special{pa 394 -161}\special{fp}\special{pa 394 -193}\special{pa 394 -201}\special{fp}%
-\special{pa 394 -232}\special{pa 394 -240}\special{fp}\special{pa 394 -272}\special{pa 394 -280}\special{fp}%
-\special{pa 394 -311}\special{pa 394 -319}\special{fp}\special{pa 394 -350}\special{pa 394 -358}\special{fp}%
-\special{pa 397 -391}\special{pa 391 -397}\special{fp}\special{pa 358 -394}\special{pa 350 -394}\special{fp}%
-\special{pa 319 -394}\special{pa 311 -394}\special{fp}\special{pa 280 -394}\special{pa 272 -394}\special{fp}%
-\special{pa 240 -394}\special{pa 232 -394}\special{fp}\special{pa 201 -394}\special{pa 193 -394}\special{fp}%
-\special{pa 161 -394}\special{pa 153 -394}\special{fp}\special{pa 122 -394}\special{pa 114 -394}\special{fp}%
-\special{pa 83 -394}\special{pa 75 -394}\special{fp}\special{pa 43 -394}\special{pa 35 -394}\special{fp}%
-\special{pa 4 -394}\special{pa -4 -394}\special{fp}\special{pn 8}%
-\special{pa 464 -358}\special{pa 394 -394}\special{pa 429 -324}\special{pa 447 -341}%
-\special{pa 464 -358}\special{sh 1}\special{ip}%
-\special{pn 8}%
-\special{pa 464 -358}\special{pa 394 -394}\special{pa 429 -324}\special{pa 447 -341}%
-\special{pa 464 -358}%
-\special{fp}%
-\special{pn 8}%
-\special{pa -220 0}\special{pa 579 0}%
-\special{fp}%
-\special{pa 0 209}\special{pa 0 -587}%
-\special{fp}%
-\settowidth{\Width}{$x$}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{$x$}\settodepth{\Depth}{$x$}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(1.5200,0.0000){\hspace*{\Width}\raisebox{\Height}{$x$}}%
-%
-%
-\settowidth{\Width}{$y$}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{$y$}\settodepth{\Depth}{$y$}\setlength{\Height}{\Depth}%
-\put(0.0000,1.5400){\hspace*{\Width}\raisebox{\Height}{$y$}}%
-%
-%
-\settowidth{\Width}{O}\setlength{\Width}{-1\Width}%
-\settoheight{\Height}{O}\settodepth{\Depth}{O}\setlength{\Height}{-\Height}%
-\put(-0.0500,-0.0500){\hspace*{\Width}\raisebox{\Height}{O}}%
-%
-%
-\end{picture}}% \ No newline at end of file
diff --git a/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/ForRef-Arrowhead-3.tex b/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/ForRef-Arrowhead-3.tex
deleted file mode 100644
index f56598b0..00000000
--- a/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/ForRef-Arrowhead-3.tex
+++ /dev/null
@@ -1,46 +0,0 @@
-%%% ForRef-Arrowhead-3.tex 2014-11-10 7:14
-%%% ForRef-Arrowhead5all.sce~ 2014-11-10 6:59
-{\unitlength=1cm%
-\begin{picture}%
-( 2.03000, 2.02000)( -0.56000, -0.53000)%
-\special{pn 8}%
-%
-\special{pn 8}%
-\special{pa 394 4}\special{pa 394 -4}\special{fp}\special{pa 394 -35}\special{pa 394 -43}\special{fp}%
-\special{pa 394 -75}\special{pa 394 -83}\special{fp}\special{pa 394 -114}\special{pa 394 -122}\special{fp}%
-\special{pa 394 -153}\special{pa 394 -161}\special{fp}\special{pa 394 -193}\special{pa 394 -201}\special{fp}%
-\special{pa 394 -232}\special{pa 394 -240}\special{fp}\special{pa 394 -272}\special{pa 394 -280}\special{fp}%
-\special{pa 394 -311}\special{pa 394 -319}\special{fp}\special{pa 394 -350}\special{pa 394 -358}\special{fp}%
-\special{pa 397 -391}\special{pa 391 -397}\special{fp}\special{pa 358 -394}\special{pa 350 -394}\special{fp}%
-\special{pa 319 -394}\special{pa 311 -394}\special{fp}\special{pa 280 -394}\special{pa 272 -394}\special{fp}%
-\special{pa 240 -394}\special{pa 232 -394}\special{fp}\special{pa 201 -394}\special{pa 193 -394}\special{fp}%
-\special{pa 161 -394}\special{pa 153 -394}\special{fp}\special{pa 122 -394}\special{pa 114 -394}\special{fp}%
-\special{pa 83 -394}\special{pa 75 -394}\special{fp}\special{pa 43 -394}\special{pa 35 -394}\special{fp}%
-\special{pa 4 -394}\special{pa -4 -394}\special{fp}\special{pn 8}%
-\special{pa 546 -434}\special{pa 394 -394}\special{pa 353 -242}\special{pa 449 -338}%
-\special{pa 546 -434}\special{sh 1}\special{ip}%
-\special{pn 8}%
-\special{pa 546 -434}\special{pa 394 -394}\special{pa 353 -242}\special{pa 449 -338}%
-\special{pa 546 -434}%
-\special{fp}%
-\special{pn 8}%
-\special{pa -220 0}\special{pa 579 0}%
-\special{fp}%
-\special{pa 0 209}\special{pa 0 -587}%
-\special{fp}%
-\settowidth{\Width}{$x$}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{$x$}\settodepth{\Depth}{$x$}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(1.5200,0.0000){\hspace*{\Width}\raisebox{\Height}{$x$}}%
-%
-%
-\settowidth{\Width}{$y$}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{$y$}\settodepth{\Depth}{$y$}\setlength{\Height}{\Depth}%
-\put(0.0000,1.5400){\hspace*{\Width}\raisebox{\Height}{$y$}}%
-%
-%
-\settowidth{\Width}{O}\setlength{\Width}{-1\Width}%
-\settoheight{\Height}{O}\settodepth{\Depth}{O}\setlength{\Height}{-\Height}%
-\put(-0.0500,-0.0500){\hspace*{\Width}\raisebox{\Height}{O}}%
-%
-%
-\end{picture}}% \ No newline at end of file
diff --git a/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/ForRef-Arrowhead-4.tex b/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/ForRef-Arrowhead-4.tex
deleted file mode 100644
index 4b840b38..00000000
--- a/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/ForRef-Arrowhead-4.tex
+++ /dev/null
@@ -1,46 +0,0 @@
-%%% ForRef-Arrowhead-4.tex 2014-11-10 7:14
-%%% ForRef-Arrowhead5all.sce~ 2014-11-10 6:59
-{\unitlength=1cm%
-\begin{picture}%
-( 2.03000, 2.02000)( -0.56000, -0.53000)%
-\special{pn 8}%
-%
-\special{pn 8}%
-\special{pa 394 4}\special{pa 394 -4}\special{fp}\special{pa 394 -35}\special{pa 394 -43}\special{fp}%
-\special{pa 394 -75}\special{pa 394 -83}\special{fp}\special{pa 394 -114}\special{pa 394 -122}\special{fp}%
-\special{pa 394 -153}\special{pa 394 -161}\special{fp}\special{pa 394 -193}\special{pa 394 -201}\special{fp}%
-\special{pa 394 -232}\special{pa 394 -240}\special{fp}\special{pa 394 -272}\special{pa 394 -280}\special{fp}%
-\special{pa 394 -311}\special{pa 394 -319}\special{fp}\special{pa 394 -350}\special{pa 394 -358}\special{fp}%
-\special{pa 397 -391}\special{pa 391 -397}\special{fp}\special{pa 358 -394}\special{pa 350 -394}\special{fp}%
-\special{pa 319 -394}\special{pa 311 -394}\special{fp}\special{pa 280 -394}\special{pa 272 -394}\special{fp}%
-\special{pa 240 -394}\special{pa 232 -394}\special{fp}\special{pa 201 -394}\special{pa 193 -394}\special{fp}%
-\special{pa 161 -394}\special{pa 153 -394}\special{fp}\special{pa 122 -394}\special{pa 114 -394}\special{fp}%
-\special{pa 83 -394}\special{pa 75 -394}\special{fp}\special{pa 43 -394}\special{pa 35 -394}\special{fp}%
-\special{pa 4 -394}\special{pa -4 -394}\special{fp}\special{pn 8}%
-\special{pa 449 -449}\special{pa 297 -490}\special{pa 338 -338}\special{pa 394 -394}%
-\special{pa 449 -449}\special{sh 1}\special{ip}%
-\special{pn 8}%
-\special{pa 449 -449}\special{pa 297 -490}\special{pa 338 -338}\special{pa 394 -394}%
-\special{pa 449 -449}%
-\special{fp}%
-\special{pn 8}%
-\special{pa -220 0}\special{pa 579 0}%
-\special{fp}%
-\special{pa 0 209}\special{pa 0 -587}%
-\special{fp}%
-\settowidth{\Width}{$x$}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{$x$}\settodepth{\Depth}{$x$}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(1.5200,0.0000){\hspace*{\Width}\raisebox{\Height}{$x$}}%
-%
-%
-\settowidth{\Width}{$y$}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{$y$}\settodepth{\Depth}{$y$}\setlength{\Height}{\Depth}%
-\put(0.0000,1.5400){\hspace*{\Width}\raisebox{\Height}{$y$}}%
-%
-%
-\settowidth{\Width}{O}\setlength{\Width}{-1\Width}%
-\settoheight{\Height}{O}\settodepth{\Depth}{O}\setlength{\Height}{-\Height}%
-\put(-0.0500,-0.0500){\hspace*{\Width}\raisebox{\Height}{O}}%
-%
-%
-\end{picture}}% \ No newline at end of file
diff --git a/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/ForRef-Arrowhead-5.tex b/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/ForRef-Arrowhead-5.tex
deleted file mode 100644
index a4f59ee3..00000000
--- a/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/ForRef-Arrowhead-5.tex
+++ /dev/null
@@ -1,43 +0,0 @@
-%%% ForRef-Arrowhead-5.tex 2014-11-10 7:14
-%%% ForRef-Arrowhead5all.sce~ 2014-11-10 6:59
-{\unitlength=1cm%
-\begin{picture}%
-( 2.03000, 2.02000)( -0.56000, -0.53000)%
-\special{pn 8}%
-%
-\special{pn 8}%
-\special{pa 394 4}\special{pa 394 -4}\special{fp}\special{pa 394 -35}\special{pa 394 -43}\special{fp}%
-\special{pa 394 -75}\special{pa 394 -83}\special{fp}\special{pa 394 -114}\special{pa 394 -122}\special{fp}%
-\special{pa 394 -153}\special{pa 394 -161}\special{fp}\special{pa 394 -193}\special{pa 394 -201}\special{fp}%
-\special{pa 394 -232}\special{pa 394 -240}\special{fp}\special{pa 394 -272}\special{pa 394 -280}\special{fp}%
-\special{pa 394 -311}\special{pa 394 -319}\special{fp}\special{pa 394 -350}\special{pa 394 -358}\special{fp}%
-\special{pa 397 -391}\special{pa 391 -397}\special{fp}\special{pa 358 -394}\special{pa 350 -394}\special{fp}%
-\special{pa 319 -394}\special{pa 311 -394}\special{fp}\special{pa 280 -394}\special{pa 272 -394}\special{fp}%
-\special{pa 240 -394}\special{pa 232 -394}\special{fp}\special{pa 201 -394}\special{pa 193 -394}\special{fp}%
-\special{pa 161 -394}\special{pa 153 -394}\special{fp}\special{pa 122 -394}\special{pa 114 -394}\special{fp}%
-\special{pa 83 -394}\special{pa 75 -394}\special{fp}\special{pa 43 -394}\special{pa 35 -394}\special{fp}%
-\special{pa 4 -394}\special{pa -4 -394}\special{fp}\special{pn 8}%
-\special{pn 4}%
-\special{pa 484 -379}\special{pa 341 -446}\special{pa 408 -303}%
-\special{fp}%
-\special{pn 8}%
-\special{pa -220 0}\special{pa 579 0}%
-\special{fp}%
-\special{pa 0 209}\special{pa 0 -587}%
-\special{fp}%
-\settowidth{\Width}{$x$}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{$x$}\settodepth{\Depth}{$x$}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(1.5200,0.0000){\hspace*{\Width}\raisebox{\Height}{$x$}}%
-%
-%
-\settowidth{\Width}{$y$}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{$y$}\settodepth{\Depth}{$y$}\setlength{\Height}{\Depth}%
-\put(0.0000,1.5400){\hspace*{\Width}\raisebox{\Height}{$y$}}%
-%
-%
-\settowidth{\Width}{O}\setlength{\Width}{-1\Width}%
-\settoheight{\Height}{O}\settodepth{\Depth}{O}\setlength{\Height}{-\Height}%
-\put(-0.0500,-0.0500){\hspace*{\Width}\raisebox{\Height}{O}}%
-%
-%
-\end{picture}}% \ No newline at end of file
diff --git a/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/ForRef-Arrowhead-6.tex b/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/ForRef-Arrowhead-6.tex
deleted file mode 100644
index ba8792b3..00000000
--- a/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/ForRef-Arrowhead-6.tex
+++ /dev/null
@@ -1,26 +0,0 @@
-%%% ForRef-Arrowhead-6.tex 2014-11-10 7:14
-%%% ForRef-Arrowhead5all.sce~ 2014-11-10 6:59
-{\unitlength=1cm%
-\begin{picture}%
-( 2.03000, 2.02000)( -0.56000, -0.53000)%
-\special{pn 8}%
-%
-\special{pa 211 -356}\special{pa 203 -361}\special{pa 193 -362}\special{pa 185 -358}%
-\special{pa 179 -351}\special{pa 177 -341}\special{pa 180 -332}\special{pa 187 -326}%
-\special{pa 196 -323}\special{pa 205 -325}\special{pa 212 -330}\special{pa 216 -339}%
-\special{pa 216 -348}\special{pa 211 -356}\special{sh 1}\special{fp}%
-\settowidth{\Width}{D}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{D}\settodepth{\Depth}{D}\setlength{\Height}{\Depth}%
-\put(0.6000,0.9700){\hspace*{\Width}\raisebox{\Height}{D}}%
-%
-%
-\special{pa 394 0}\special{pa 391 -49}\special{pa 381 -98}\special{pa 366 -145}\special{pa 345 -190}%
-\special{pa 319 -231}\special{pa 287 -270}\special{pa 251 -303}\special{pa 211 -332}%
-\special{pa 168 -356}\special{pa 122 -374}\special{pa 74 -387}\special{pa 25 -393}%
-\special{pa -25 -393}\special{pa -74 -387}\special{pa -122 -374}\special{pa -168 -356}%
-\special{pa -211 -332}\special{pa -220 -325}%
-\special{fp}%
-\special{pa 333 209}\special{pa 345 190}\special{pa 366 145}\special{pa 381 98}\special{pa 391 49}%
-\special{pa 394 0}%
-\special{fp}%
-\end{picture}}% \ No newline at end of file
diff --git a/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/ForRef-Arrowhead-7.tex b/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/ForRef-Arrowhead-7.tex
deleted file mode 100644
index 4d60ceaa..00000000
--- a/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/ForRef-Arrowhead-7.tex
+++ /dev/null
@@ -1,24 +0,0 @@
-%%% ForRef-Arrowhead-7.tex 2014-11-10 7:14
-%%% ForRef-Arrowhead5all.sce~ 2014-11-10 6:59
-{\unitlength=1cm%
-\begin{picture}%
-( 2.03000, 2.02000)( -0.56000, -0.53000)%
-\special{pn 8}%
-%
-\special{pa 271 -317}\special{pa 197 -343}\special{pa 242 -278}\special{pa 257 -298}%
-\special{pa 271 -317}\special{sh 1}\special{ip}%
-\special{pn 8}%
-\special{pa 271 -317}\special{pa 197 -343}\special{pa 242 -278}\special{pa 257 -298}%
-\special{pa 271 -317}%
-\special{fp}%
-\special{pn 8}%
-\special{pa 394 0}\special{pa 391 -49}\special{pa 381 -98}\special{pa 366 -145}\special{pa 345 -190}%
-\special{pa 319 -231}\special{pa 287 -270}\special{pa 251 -303}\special{pa 211 -332}%
-\special{pa 168 -356}\special{pa 122 -374}\special{pa 74 -387}\special{pa 25 -393}%
-\special{pa -25 -393}\special{pa -74 -387}\special{pa -122 -374}\special{pa -168 -356}%
-\special{pa -211 -332}\special{pa -220 -325}%
-\special{fp}%
-\special{pa 333 209}\special{pa 345 190}\special{pa 366 145}\special{pa 381 98}\special{pa 391 49}%
-\special{pa 394 0}%
-\special{fp}%
-\end{picture}}% \ No newline at end of file
diff --git a/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/ForRef-Arrowhead-8.tex b/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/ForRef-Arrowhead-8.tex
deleted file mode 100644
index af73e049..00000000
--- a/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/ForRef-Arrowhead-8.tex
+++ /dev/null
@@ -1,24 +0,0 @@
-%%% ForRef-Arrowhead-8.tex 2014-11-10 7:14
-%%% ForRef-Arrowhead5all.sce~ 2014-11-10 6:59
-{\unitlength=1cm%
-\begin{picture}%
-( 2.03000, 2.02000)( -0.56000, -0.53000)%
-\special{pn 8}%
-%
-\special{pa 341 -280}\special{pa 197 -343}\special{pa 277 -207}\special{pa 309 -244}%
-\special{pa 341 -280}\special{sh 1}\special{ip}%
-\special{pn 8}%
-\special{pa 341 -280}\special{pa 197 -343}\special{pa 277 -207}\special{pa 309 -244}%
-\special{pa 341 -280}%
-\special{fp}%
-\special{pn 8}%
-\special{pa 394 0}\special{pa 391 -49}\special{pa 381 -98}\special{pa 366 -145}\special{pa 345 -190}%
-\special{pa 319 -231}\special{pa 287 -270}\special{pa 251 -303}\special{pa 211 -332}%
-\special{pa 168 -356}\special{pa 122 -374}\special{pa 74 -387}\special{pa 25 -393}%
-\special{pa -25 -393}\special{pa -74 -387}\special{pa -122 -374}\special{pa -168 -356}%
-\special{pa -211 -332}\special{pa -220 -325}%
-\special{fp}%
-\special{pa 333 209}\special{pa 345 190}\special{pa 366 145}\special{pa 381 98}\special{pa 391 49}%
-\special{pa 394 0}%
-\special{fp}%
-\end{picture}}% \ No newline at end of file
diff --git a/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/ForRef-Arrowhead-9.tex b/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/ForRef-Arrowhead-9.tex
deleted file mode 100644
index 29d8c661..00000000
--- a/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/ForRef-Arrowhead-9.tex
+++ /dev/null
@@ -1,21 +0,0 @@
-%%% ForRef-Arrowhead-9.tex 2014-11-10 7:14
-%%% ForRef-Arrowhead5all.sce~ 2014-11-10 6:59
-{\unitlength=1cm%
-\begin{picture}%
-( 2.03000, 2.02000)( -0.56000, -0.53000)%
-\special{pn 8}%
-%
-\special{pn 4}%
-\special{pa 352 -314}\special{pa 197 -343}\special{pa 249 -194}%
-\special{fp}%
-\special{pn 8}%
-\special{pa 394 0}\special{pa 391 -49}\special{pa 381 -98}\special{pa 366 -145}\special{pa 345 -190}%
-\special{pa 319 -231}\special{pa 287 -270}\special{pa 251 -303}\special{pa 211 -332}%
-\special{pa 168 -356}\special{pa 122 -374}\special{pa 74 -387}\special{pa 25 -393}%
-\special{pa -25 -393}\special{pa -74 -387}\special{pa -122 -374}\special{pa -168 -356}%
-\special{pa -211 -332}\special{pa -220 -325}%
-\special{fp}%
-\special{pa 333 209}\special{pa 345 190}\special{pa 366 145}\special{pa 381 98}\special{pa 391 49}%
-\special{pa 394 0}%
-\special{fp}%
-\end{picture}}% \ No newline at end of file
diff --git a/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/ForRef-Arrowhead-ya1.tex b/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/ForRef-Arrowhead-ya1.tex
deleted file mode 100644
index 00c27fb1..00000000
--- a/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/ForRef-Arrowhead-ya1.tex
+++ /dev/null
@@ -1,32 +0,0 @@
-%%% spline1.tex 2014-11-9 6:32
-%%% spline1.sce 2014-11-8 22:24
-{\unitlength=1cm%
-\begin{picture}%
-( 15.60000, 12.54000)( -0.03000, -12.57000)%
-\special{pn 8}%
-%
-\special{pn 0}%
-\special{pa 3972 2358}\special{pa 3693 2220}\special{pa 3366 2189}\special{pa 3075 2228}%
-\special{pa 2839 2339}%
-\special{fp}%
-\special{pn 8}%
-\special{pa 3695 2190}\special{pa 3673 2171}\special{pa 3650 2153}\special{pa 3625 2137}%
-\special{pa 3600 2123}\special{pa 3573 2109}\special{pa 3545 2097}\special{pa 3517 2086}%
-\special{pa 3488 2076}\special{pa 3458 2068}\special{pa 3428 2060}\special{pa 3397 2053}%
-\special{pa 3366 2048}\special{pa 3334 2043}\special{pa 3303 2039}\special{pa 3271 2036}%
-\special{pa 3240 2034}\special{pa 3208 2033}\special{pa 3177 2032}\special{pa 3147 2032}%
-\special{pa 3116 2033}\special{pa 3086 2034}\special{pa 3057 2036}\special{pa 3028 2039}%
-\special{pa 3000 2042}\special{pa 2972 2045}\special{pa 2945 2050}\special{pa 2918 2055}%
-\special{pa 2892 2061}\special{pa 2867 2067}\special{pa 2842 2074}\special{pa 2817 2082}%
-\special{pa 2793 2091}\special{pa 2769 2100}\special{pa 2747 2110}\special{pa 2724 2121}%
-\special{pa 2702 2132}\special{pa 2681 2145}\special{pa 2661 2158}\special{pa 2641 2171}%
-\special{fp}%
-\special{pn 8}%
-\special{pa 2691 2111}\special{pa 2641 2171}\special{pa 2717 2152}\special{pa 2704 2132}%
-\special{pa 2691 2111}\special{sh 1}\special{ip}%
-\special{pn 8}%
-\special{pa 2691 2111}\special{pa 2641 2171}\special{pa 2717 2152}\special{pa 2704 2132}%
-\special{pa 2691 2111}%
-\special{fp}%
-\special{pn 8}%
-\end{picture}}% \ No newline at end of file
diff --git a/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/HatchZuKita1.tex b/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/HatchZuKita1.tex
deleted file mode 100644
index 25adeacc..00000000
--- a/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/HatchZuKita1.tex
+++ /dev/null
@@ -1,115 +0,0 @@
-%%% fig.tex 2014-12-31 7:50
-%%% fig.sce 2014-12-31 7:50
-{\unitlength=5mm%
-\begin{picture}%
-( 8.00000, 8.00000)( -4.00000, -4.00000)%
-\special{pn 8}%
-%
-\special{pa 284 517}\special{pa 519 281}%
-\special{fp}%
-\special{pa 218 548}\special{pa 550 216}%
-\special{fp}%
-\special{pa 165 566}\special{pa 566 165}%
-\special{fp}%
-\special{pa 118 578}\special{pa 577 119}%
-\special{fp}%
-\special{pa 77 584}\special{pa 586 76}%
-\special{fp}%
-\special{pa 37 589}\special{pa 588 38}%
-\special{fp}%
-\special{pa 2 589}\special{pa 590 1}%
-\special{fp}%
-\special{pa -33 589}\special{pa 589 -32}%
-\special{fp}%
-\special{pa -64 586}\special{pa 586 -65}%
-\special{fp}%
-\special{pa -95 582}\special{pa 582 -95}%
-\special{fp}%
-\special{pa -124 577}\special{pa 576 -124}%
-\special{fp}%
-\special{pa -152 569}\special{pa 570 -153}%
-\special{fp}%
-\special{pa -180 562}\special{pa 562 -179}%
-\special{fp}%
-\special{pa -205 553}\special{pa 553 -205}%
-\special{fp}%
-\special{pa -230 543}\special{pa 543 -230}%
-\special{fp}%
-\special{pa -254 533}\special{pa 532 -254}%
-\special{fp}%
-\special{pa -277 520}\special{pa 521 -277}%
-\special{fp}%
-\special{pa -299 508}\special{pa 508 -299}%
-\special{fp}%
-\special{pa -321 495}\special{pa 495 -321}%
-\special{fp}%
-\special{pa -341 481}\special{pa 481 -342}%
-\special{fp}%
-\special{pa -361 466}\special{pa 466 -361}%
-\special{fp}%
-\special{pa -381 451}\special{pa 450 -381}%
-\special{fp}%
-\special{pa -399 434}\special{pa 434 -400}%
-\special{fp}%
-\special{pa -417 417}\special{pa 417 -417}%
-\special{fp}%
-\special{pa -434 400}\special{pa 399 -434}%
-\special{fp}%
-\special{pa -450 381}\special{pa 381 -451}%
-\special{fp}%
-\special{pa -466 361}\special{pa 361 -466}%
-\special{fp}%
-\special{pa -481 342}\special{pa 341 -481}%
-\special{fp}%
-\special{pa -495 321}\special{pa 321 -495}%
-\special{fp}%
-\special{pa -508 299}\special{pa 299 -508}%
-\special{fp}%
-\special{pa -521 277}\special{pa 277 -520}%
-\special{fp}%
-\special{pa -532 254}\special{pa 254 -533}%
-\special{fp}%
-\special{pa -543 230}\special{pa 230 -543}%
-\special{fp}%
-\special{pa -553 205}\special{pa 205 -553}%
-\special{fp}%
-\special{pa -562 179}\special{pa 180 -562}%
-\special{fp}%
-\special{pa -570 153}\special{pa 152 -569}%
-\special{fp}%
-\special{pa -576 124}\special{pa 124 -577}%
-\special{fp}%
-\special{pa -582 95}\special{pa 95 -582}%
-\special{fp}%
-\special{pa -586 65}\special{pa 64 -586}%
-\special{fp}%
-\special{pa -589 32}\special{pa 33 -589}%
-\special{fp}%
-\special{pa -590 -1}\special{pa -2 -589}%
-\special{fp}%
-\special{pa -588 -38}\special{pa -37 -589}%
-\special{fp}%
-\special{pa -586 -76}\special{pa -77 -584}%
-\special{fp}%
-\special{pa -577 -119}\special{pa -118 -578}%
-\special{fp}%
-\special{pa -566 -165}\special{pa -165 -566}%
-\special{fp}%
-\special{pa -550 -216}\special{pa -218 -548}%
-\special{fp}%
-\special{pa -519 -281}\special{pa -284 -517}%
-\special{fp}%
-\special{pa 591 0}\special{pa 586 -74}\special{pa 572 -147}\special{pa 549 -217}\special{pa 518 -285}%
-\special{pa 478 -347}\special{pa 430 -404}\special{pa 376 -455}\special{pa 316 -499}%
-\special{pa 251 -534}\special{pa 182 -562}\special{pa 111 -580}\special{pa 37 -589}%
-\special{pa -37 -589}\special{pa -111 -580}\special{pa -182 -562}\special{pa -251 -534}%
-\special{pa -316 -499}\special{pa -376 -455}\special{pa -430 -404}\special{pa -478 -347}%
-\special{pa -518 -285}\special{pa -549 -217}\special{pa -572 -147}\special{pa -586 -74}%
-\special{pa -591 0}\special{pa -586 74}\special{pa -572 147}\special{pa -549 217}%
-\special{pa -518 285}\special{pa -478 347}\special{pa -430 404}\special{pa -376 455}%
-\special{pa -316 499}\special{pa -251 534}\special{pa -182 562}\special{pa -111 580}%
-\special{pa -37 589}\special{pa 37 589}\special{pa 111 580}\special{pa 182 562}\special{pa 251 534}%
-\special{pa 316 499}\special{pa 376 455}\special{pa 430 404}\special{pa 478 347}\special{pa 518 285}%
-\special{pa 549 217}\special{pa 572 147}\special{pa 586 74}\special{pa 591 0}%
-\special{fp}%
-\end{picture}}% \ No newline at end of file
diff --git a/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/HatchZuKita2.tex b/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/HatchZuKita2.tex
deleted file mode 100644
index 832fa619..00000000
--- a/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/HatchZuKita2.tex
+++ /dev/null
@@ -1,67 +0,0 @@
-%%% fig.tex 2014-12-31 7:52
-%%% fig.sce 2014-12-31 7:52
-{\unitlength=5mm%
-\begin{picture}%
-( 8.00000, 8.00000)( -4.00000, -4.00000)%
-\special{pn 8}%
-%
-\special{pa -527 265}\special{pa -169 565}%
-\special{fp}%
-\special{pa -565 168}\special{pa -68 586}%
-\special{fp}%
-\special{pa -583 89}\special{pa 13 589}%
-\special{fp}%
-\special{pa -589 19}\special{pa 83 584}%
-\special{fp}%
-\special{pa -588 -44}\special{pa 145 571}%
-\special{fp}%
-\special{pa -581 -102}\special{pa 201 554}%
-\special{fp}%
-\special{pa -569 -156}\special{pa 253 533}%
-\special{fp}%
-\special{pa -553 -207}\special{pa 299 508}%
-\special{fp}%
-\special{pa -532 -254}\special{pa 342 480}%
-\special{fp}%
-\special{pa -509 -298}\special{pa 382 449}%
-\special{fp}%
-\special{pa -482 -340}\special{pa 419 415}%
-\special{fp}%
-\special{pa -452 -379}\special{pa 452 379}%
-\special{fp}%
-\special{pa -419 -415}\special{pa 482 340}%
-\special{fp}%
-\special{pa -382 -449}\special{pa 509 298}%
-\special{fp}%
-\special{pa -342 -480}\special{pa 532 254}%
-\special{fp}%
-\special{pa -299 -508}\special{pa 553 207}%
-\special{fp}%
-\special{pa -253 -533}\special{pa 569 156}%
-\special{fp}%
-\special{pa -201 -554}\special{pa 581 102}%
-\special{fp}%
-\special{pa -145 -571}\special{pa 588 44}%
-\special{fp}%
-\special{pa -83 -584}\special{pa 589 -19}%
-\special{fp}%
-\special{pa -13 -589}\special{pa 583 -89}%
-\special{fp}%
-\special{pa 68 -586}\special{pa 565 -168}%
-\special{fp}%
-\special{pa 169 -565}\special{pa 527 -265}%
-\special{fp}%
-\special{pa 591 0}\special{pa 586 -74}\special{pa 572 -147}\special{pa 549 -217}\special{pa 518 -285}%
-\special{pa 478 -347}\special{pa 430 -404}\special{pa 376 -455}\special{pa 316 -499}%
-\special{pa 251 -534}\special{pa 182 -562}\special{pa 111 -580}\special{pa 37 -589}%
-\special{pa -37 -589}\special{pa -111 -580}\special{pa -182 -562}\special{pa -251 -534}%
-\special{pa -316 -499}\special{pa -376 -455}\special{pa -430 -404}\special{pa -478 -347}%
-\special{pa -518 -285}\special{pa -549 -217}\special{pa -572 -147}\special{pa -586 -74}%
-\special{pa -591 0}\special{pa -586 74}\special{pa -572 147}\special{pa -549 217}%
-\special{pa -518 285}\special{pa -478 347}\special{pa -430 404}\special{pa -376 455}%
-\special{pa -316 499}\special{pa -251 534}\special{pa -182 562}\special{pa -111 580}%
-\special{pa -37 589}\special{pa 37 589}\special{pa 111 580}\special{pa 182 562}\special{pa 251 534}%
-\special{pa 316 499}\special{pa 376 455}\special{pa 430 404}\special{pa 478 347}\special{pa 518 285}%
-\special{pa 549 217}\special{pa 572 147}\special{pa 586 74}\special{pa 591 0}%
-\special{fp}%
-\end{picture}}% \ No newline at end of file
diff --git a/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/HatchZuKita3.tex b/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/HatchZuKita3.tex
deleted file mode 100644
index 11560e01..00000000
--- a/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/HatchZuKita3.tex
+++ /dev/null
@@ -1,117 +0,0 @@
-%%% fig.tex 2014-12-31 7:53
-%%% fig.sce 2014-12-31 7:53
-{\unitlength=5mm%
-\begin{picture}%
-( 8.00000, 8.00000)( -4.00000, -4.00000)%
-\special{pn 8}%
-%
-\special{pn 4}%
-\special{pa 284 517}\special{pa 519 281}%
-\special{fp}%
-\special{pa 218 548}\special{pa 550 216}%
-\special{fp}%
-\special{pa 165 566}\special{pa 566 165}%
-\special{fp}%
-\special{pa 118 578}\special{pa 577 119}%
-\special{fp}%
-\special{pa 77 584}\special{pa 586 76}%
-\special{fp}%
-\special{pa 37 589}\special{pa 588 38}%
-\special{fp}%
-\special{pa 2 589}\special{pa 590 1}%
-\special{fp}%
-\special{pa -33 589}\special{pa 589 -32}%
-\special{fp}%
-\special{pa -64 586}\special{pa 586 -65}%
-\special{fp}%
-\special{pa -95 582}\special{pa 582 -95}%
-\special{fp}%
-\special{pa -124 577}\special{pa 576 -124}%
-\special{fp}%
-\special{pa -152 569}\special{pa 570 -153}%
-\special{fp}%
-\special{pa -180 562}\special{pa 562 -179}%
-\special{fp}%
-\special{pa -205 553}\special{pa 553 -205}%
-\special{fp}%
-\special{pa -230 543}\special{pa 543 -230}%
-\special{fp}%
-\special{pa -254 533}\special{pa 532 -254}%
-\special{fp}%
-\special{pa -277 520}\special{pa 521 -277}%
-\special{fp}%
-\special{pa -299 508}\special{pa 508 -299}%
-\special{fp}%
-\special{pa -321 495}\special{pa 495 -321}%
-\special{fp}%
-\special{pa -341 481}\special{pa 481 -342}%
-\special{fp}%
-\special{pa -361 466}\special{pa 466 -361}%
-\special{fp}%
-\special{pa -381 451}\special{pa 450 -381}%
-\special{fp}%
-\special{pa -399 434}\special{pa 434 -400}%
-\special{fp}%
-\special{pa -417 417}\special{pa 417 -417}%
-\special{fp}%
-\special{pa -434 400}\special{pa 399 -434}%
-\special{fp}%
-\special{pa -450 381}\special{pa 381 -451}%
-\special{fp}%
-\special{pa -466 361}\special{pa 361 -466}%
-\special{fp}%
-\special{pa -481 342}\special{pa 341 -481}%
-\special{fp}%
-\special{pa -495 321}\special{pa 321 -495}%
-\special{fp}%
-\special{pa -508 299}\special{pa 299 -508}%
-\special{fp}%
-\special{pa -521 277}\special{pa 277 -520}%
-\special{fp}%
-\special{pa -532 254}\special{pa 254 -533}%
-\special{fp}%
-\special{pa -543 230}\special{pa 230 -543}%
-\special{fp}%
-\special{pa -553 205}\special{pa 205 -553}%
-\special{fp}%
-\special{pa -562 179}\special{pa 180 -562}%
-\special{fp}%
-\special{pa -570 153}\special{pa 152 -569}%
-\special{fp}%
-\special{pa -576 124}\special{pa 124 -577}%
-\special{fp}%
-\special{pa -582 95}\special{pa 95 -582}%
-\special{fp}%
-\special{pa -586 65}\special{pa 64 -586}%
-\special{fp}%
-\special{pa -589 32}\special{pa 33 -589}%
-\special{fp}%
-\special{pa -590 -1}\special{pa -2 -589}%
-\special{fp}%
-\special{pa -588 -38}\special{pa -37 -589}%
-\special{fp}%
-\special{pa -586 -76}\special{pa -77 -584}%
-\special{fp}%
-\special{pa -577 -119}\special{pa -118 -578}%
-\special{fp}%
-\special{pa -566 -165}\special{pa -165 -566}%
-\special{fp}%
-\special{pa -550 -216}\special{pa -218 -548}%
-\special{fp}%
-\special{pa -519 -281}\special{pa -284 -517}%
-\special{fp}%
-\special{pn 8}%
-\special{pa 591 0}\special{pa 586 -74}\special{pa 572 -147}\special{pa 549 -217}\special{pa 518 -285}%
-\special{pa 478 -347}\special{pa 430 -404}\special{pa 376 -455}\special{pa 316 -499}%
-\special{pa 251 -534}\special{pa 182 -562}\special{pa 111 -580}\special{pa 37 -589}%
-\special{pa -37 -589}\special{pa -111 -580}\special{pa -182 -562}\special{pa -251 -534}%
-\special{pa -316 -499}\special{pa -376 -455}\special{pa -430 -404}\special{pa -478 -347}%
-\special{pa -518 -285}\special{pa -549 -217}\special{pa -572 -147}\special{pa -586 -74}%
-\special{pa -591 0}\special{pa -586 74}\special{pa -572 147}\special{pa -549 217}%
-\special{pa -518 285}\special{pa -478 347}\special{pa -430 404}\special{pa -376 455}%
-\special{pa -316 499}\special{pa -251 534}\special{pa -182 562}\special{pa -111 580}%
-\special{pa -37 589}\special{pa 37 589}\special{pa 111 580}\special{pa 182 562}\special{pa 251 534}%
-\special{pa 316 499}\special{pa 376 455}\special{pa 430 404}\special{pa 478 347}\special{pa 518 285}%
-\special{pa 549 217}\special{pa 572 147}\special{pa 586 74}\special{pa 591 0}%
-\special{fp}%
-\end{picture}}% \ No newline at end of file
diff --git a/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/HatchZuKita4.tex b/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/HatchZuKita4.tex
deleted file mode 100644
index 92ae39d2..00000000
--- a/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/HatchZuKita4.tex
+++ /dev/null
@@ -1,69 +0,0 @@
-%%% fig.tex 2014-12-31 7:54
-%%% fig.sce 2014-12-31 7:54
-{\unitlength=5mm%
-\begin{picture}%
-( 8.00000, 8.00000)( -4.00000, -4.00000)%
-\special{pn 8}%
-%
-\special{pn 4}%
-\special{pa -550 216}\special{pa -218 548}%
-\special{fp}%
-\special{pa -577 119}\special{pa -118 578}%
-\special{fp}%
-\special{pa -588 38}\special{pa -37 589}%
-\special{fp}%
-\special{pa -589 -32}\special{pa 33 589}%
-\special{fp}%
-\special{pa -582 -95}\special{pa 95 582}%
-\special{fp}%
-\special{pa -570 -153}\special{pa 152 569}%
-\special{fp}%
-\special{pa -553 -205}\special{pa 205 553}%
-\special{fp}%
-\special{pa -532 -254}\special{pa 254 533}%
-\special{fp}%
-\special{pa -508 -299}\special{pa 299 508}%
-\special{fp}%
-\special{pa -481 -342}\special{pa 341 481}%
-\special{fp}%
-\special{pa -450 -381}\special{pa 381 451}%
-\special{fp}%
-\special{pa -417 -417}\special{pa 417 417}%
-\special{fp}%
-\special{pa -381 -451}\special{pa 450 381}%
-\special{fp}%
-\special{pa -341 -481}\special{pa 481 342}%
-\special{fp}%
-\special{pa -299 -508}\special{pa 508 299}%
-\special{fp}%
-\special{pa -254 -533}\special{pa 532 254}%
-\special{fp}%
-\special{pa -205 -553}\special{pa 553 205}%
-\special{fp}%
-\special{pa -152 -569}\special{pa 570 153}%
-\special{fp}%
-\special{pa -95 -582}\special{pa 582 95}%
-\special{fp}%
-\special{pa -33 -589}\special{pa 589 32}%
-\special{fp}%
-\special{pa 37 -589}\special{pa 588 -38}%
-\special{fp}%
-\special{pa 118 -578}\special{pa 577 -119}%
-\special{fp}%
-\special{pa 218 -548}\special{pa 550 -216}%
-\special{fp}%
-\special{pn 8}%
-\special{pa 591 0}\special{pa 586 -74}\special{pa 572 -147}\special{pa 549 -217}\special{pa 518 -285}%
-\special{pa 478 -347}\special{pa 430 -404}\special{pa 376 -455}\special{pa 316 -499}%
-\special{pa 251 -534}\special{pa 182 -562}\special{pa 111 -580}\special{pa 37 -589}%
-\special{pa -37 -589}\special{pa -111 -580}\special{pa -182 -562}\special{pa -251 -534}%
-\special{pa -316 -499}\special{pa -376 -455}\special{pa -430 -404}\special{pa -478 -347}%
-\special{pa -518 -285}\special{pa -549 -217}\special{pa -572 -147}\special{pa -586 -74}%
-\special{pa -591 0}\special{pa -586 74}\special{pa -572 147}\special{pa -549 217}%
-\special{pa -518 285}\special{pa -478 347}\special{pa -430 404}\special{pa -376 455}%
-\special{pa -316 499}\special{pa -251 534}\special{pa -182 562}\special{pa -111 580}%
-\special{pa -37 589}\special{pa 37 589}\special{pa 111 580}\special{pa 182 562}\special{pa 251 534}%
-\special{pa 316 499}\special{pa 376 455}\special{pa 430 404}\special{pa 478 347}\special{pa 518 285}%
-\special{pa 549 217}\special{pa 572 147}\special{pa 586 74}\special{pa 591 0}%
-\special{fp}%
-\end{picture}}% \ No newline at end of file
diff --git a/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/HatchZuKita5.tex b/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/HatchZuKita5.tex
deleted file mode 100644
index ec9b7744..00000000
--- a/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/HatchZuKita5.tex
+++ /dev/null
@@ -1,103 +0,0 @@
-%%% fig.tex 2014-12-31 8:0
-%%% fig.sce 2014-12-31 8:0
-{\unitlength=5mm%
-\begin{picture}%
-( 8.00000, 8.00000)( -4.00000, -4.00000)%
-\special{pn 8}%
-%
-\special{pa 557 0}\special{pa 589 -32}%
-\special{fp}%
-\special{pa 522 0}\special{pa 586 -65}%
-\special{fp}%
-\special{pa 487 0}\special{pa 582 -95}%
-\special{fp}%
-\special{pa 452 0}\special{pa 576 -124}%
-\special{fp}%
-\special{pa 418 0}\special{pa 570 -153}%
-\special{fp}%
-\special{pa 383 0}\special{pa 562 -179}%
-\special{fp}%
-\special{pa 348 0}\special{pa 553 -205}%
-\special{fp}%
-\special{pa 313 0}\special{pa 543 -230}%
-\special{fp}%
-\special{pa 278 0}\special{pa 532 -254}%
-\special{fp}%
-\special{pa 244 0}\special{pa 521 -277}%
-\special{fp}%
-\special{pa 209 0}\special{pa 508 -299}%
-\special{fp}%
-\special{pa 174 0}\special{pa 495 -321}%
-\special{fp}%
-\special{pa 139 0}\special{pa 481 -342}%
-\special{fp}%
-\special{pa 104 0}\special{pa 466 -361}%
-\special{fp}%
-\special{pa 70 0}\special{pa 450 -381}%
-\special{fp}%
-\special{pa 35 0}\special{pa 434 -400}%
-\special{fp}%
-\special{pa 0 0}\special{pa 417 -417}%
-\special{fp}%
-\special{pa -12 -22}\special{pa 399 -434}%
-\special{fp}%
-\special{pa -25 -45}\special{pa 381 -451}%
-\special{fp}%
-\special{pa -37 -67}\special{pa 361 -466}%
-\special{fp}%
-\special{pa -49 -90}\special{pa 341 -481}%
-\special{fp}%
-\special{pa -62 -112}\special{pa 321 -495}%
-\special{fp}%
-\special{pa -74 -135}\special{pa 299 -508}%
-\special{fp}%
-\special{pa -86 -157}\special{pa 277 -520}%
-\special{fp}%
-\special{pa -98 -180}\special{pa 254 -533}%
-\special{fp}%
-\special{pa -111 -202}\special{pa 230 -543}%
-\special{fp}%
-\special{pa -123 -225}\special{pa 205 -553}%
-\special{fp}%
-\special{pa -135 -247}\special{pa 180 -562}%
-\special{fp}%
-\special{pa -148 -270}\special{pa 152 -569}%
-\special{fp}%
-\special{pa -160 -292}\special{pa 124 -577}%
-\special{fp}%
-\special{pa -172 -315}\special{pa 95 -582}%
-\special{fp}%
-\special{pa -185 -337}\special{pa 64 -586}%
-\special{fp}%
-\special{pa -197 -360}\special{pa 33 -589}%
-\special{fp}%
-\special{pa -209 -382}\special{pa -2 -589}%
-\special{fp}%
-\special{pa -222 -405}\special{pa -37 -589}%
-\special{fp}%
-\special{pa -234 -427}\special{pa -77 -584}%
-\special{fp}%
-\special{pa -246 -450}\special{pa -118 -578}%
-\special{fp}%
-\special{pa -259 -472}\special{pa -165 -566}%
-\special{fp}%
-\special{pa -271 -495}\special{pa -218 -548}%
-\special{fp}%
-\special{pa 591 0}\special{pa 586 -74}\special{pa 572 -147}\special{pa 549 -217}\special{pa 518 -285}%
-\special{pa 478 -347}\special{pa 430 -404}\special{pa 376 -455}\special{pa 316 -499}%
-\special{pa 251 -534}\special{pa 182 -562}\special{pa 111 -580}\special{pa 37 -589}%
-\special{pa -37 -589}\special{pa -111 -580}\special{pa -182 -562}\special{pa -251 -534}%
-\special{pa -316 -499}\special{pa -376 -455}\special{pa -430 -404}\special{pa -478 -347}%
-\special{pa -518 -285}\special{pa -549 -217}\special{pa -572 -147}\special{pa -586 -74}%
-\special{pa -591 0}\special{pa -586 74}\special{pa -572 147}\special{pa -549 217}%
-\special{pa -518 285}\special{pa -478 347}\special{pa -430 404}\special{pa -376 455}%
-\special{pa -316 499}\special{pa -251 534}\special{pa -182 562}\special{pa -111 580}%
-\special{pa -37 589}\special{pa 37 589}\special{pa 111 580}\special{pa 182 562}\special{pa 251 534}%
-\special{pa 316 499}\special{pa 376 455}\special{pa 430 404}\special{pa 478 347}\special{pa 518 285}%
-\special{pa 549 217}\special{pa 572 147}\special{pa 586 74}\special{pa 591 0}%
-\special{fp}%
-\special{pa 787 0}\special{pa -787 0}%
-\special{fp}%
-\special{pa 431 787}\special{pa -431 -787}%
-\special{fp}%
-\end{picture}}% \ No newline at end of file
diff --git a/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/HatchZuKita6.tex b/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/HatchZuKita6.tex
deleted file mode 100644
index 7365fdde..00000000
--- a/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/HatchZuKita6.tex
+++ /dev/null
@@ -1,179 +0,0 @@
-%%% fig.tex 2014-12-31 14:35
-%%% fig.sce 2014-12-31 14:35
-{\unitlength=5mm%
-\begin{picture}%
-( 8.00000, 8.00000)( -4.00000, -4.00000)%
-\special{pn 8}%
-%
-\special{pa 218 548}\special{pa 255 510}%
-\special{fp}%
-\special{pa 165 566}\special{pa 244 487}%
-\special{fp}%
-\special{pa 118 578}\special{pa 232 464}%
-\special{fp}%
-\special{pa 77 584}\special{pa 220 441}%
-\special{fp}%
-\special{pa 37 589}\special{pa 209 418}%
-\special{fp}%
-\special{pa 2 589}\special{pa 197 394}%
-\special{fp}%
-\special{pa -33 589}\special{pa 186 371}%
-\special{fp}%
-\special{pa 557 0}\special{pa 589 -32}%
-\special{fp}%
-\special{pa -64 586}\special{pa 174 348}%
-\special{fp}%
-\special{pa 522 0}\special{pa 586 -65}%
-\special{fp}%
-\special{pa -95 582}\special{pa 162 325}%
-\special{fp}%
-\special{pa 487 0}\special{pa 582 -95}%
-\special{fp}%
-\special{pa -124 577}\special{pa 151 302}%
-\special{fp}%
-\special{pa 452 0}\special{pa 576 -124}%
-\special{fp}%
-\special{pa -152 569}\special{pa 139 278}%
-\special{fp}%
-\special{pa 418 0}\special{pa 570 -153}%
-\special{fp}%
-\special{pa -180 562}\special{pa 128 255}%
-\special{fp}%
-\special{pa 383 0}\special{pa 562 -179}%
-\special{fp}%
-\special{pa -205 553}\special{pa 116 232}%
-\special{fp}%
-\special{pa 348 0}\special{pa 553 -205}%
-\special{fp}%
-\special{pa -230 543}\special{pa 104 209}%
-\special{fp}%
-\special{pa 313 0}\special{pa 543 -230}%
-\special{fp}%
-\special{pa -254 533}\special{pa 93 186}%
-\special{fp}%
-\special{pa 278 0}\special{pa 532 -254}%
-\special{fp}%
-\special{pa -277 520}\special{pa 81 162}%
-\special{fp}%
-\special{pa 244 0}\special{pa 521 -277}%
-\special{fp}%
-\special{pa -299 508}\special{pa 70 139}%
-\special{fp}%
-\special{pa 209 0}\special{pa 508 -299}%
-\special{fp}%
-\special{pa -321 495}\special{pa 58 116}%
-\special{fp}%
-\special{pa 174 0}\special{pa 495 -321}%
-\special{fp}%
-\special{pa -341 481}\special{pa 46 93}%
-\special{fp}%
-\special{pa 139 0}\special{pa 481 -342}%
-\special{fp}%
-\special{pa -361 466}\special{pa 35 70}%
-\special{fp}%
-\special{pa 104 0}\special{pa 466 -361}%
-\special{fp}%
-\special{pa -381 451}\special{pa 23 46}%
-\special{fp}%
-\special{pa 70 0}\special{pa 450 -381}%
-\special{fp}%
-\special{pa -399 434}\special{pa 12 23}%
-\special{fp}%
-\special{pa 35 0}\special{pa 434 -400}%
-\special{fp}%
-\special{pa -417 417}\special{pa 0 0}\special{pa 417 -417}%
-\special{fp}%
-\special{pa -434 400}\special{pa -35 0}%
-\special{fp}%
-\special{pa -12 -23}\special{pa 399 -434}%
-\special{fp}%
-\special{pa -450 381}\special{pa -70 0}%
-\special{fp}%
-\special{pa -23 -46}\special{pa 381 -451}%
-\special{fp}%
-\special{pa -466 361}\special{pa -104 0}%
-\special{fp}%
-\special{pa -35 -70}\special{pa 361 -466}%
-\special{fp}%
-\special{pa -481 342}\special{pa -139 0}%
-\special{fp}%
-\special{pa -46 -93}\special{pa 341 -481}%
-\special{fp}%
-\special{pa -495 321}\special{pa -174 0}%
-\special{fp}%
-\special{pa -58 -116}\special{pa 321 -495}%
-\special{fp}%
-\special{pa -508 299}\special{pa -209 0}%
-\special{fp}%
-\special{pa -70 -139}\special{pa 299 -508}%
-\special{fp}%
-\special{pa -521 277}\special{pa -244 0}%
-\special{fp}%
-\special{pa -81 -162}\special{pa 277 -520}%
-\special{fp}%
-\special{pa -532 254}\special{pa -278 0}%
-\special{fp}%
-\special{pa -93 -186}\special{pa 254 -533}%
-\special{fp}%
-\special{pa -543 230}\special{pa -313 0}%
-\special{fp}%
-\special{pa -104 -209}\special{pa 230 -543}%
-\special{fp}%
-\special{pa -553 205}\special{pa -348 0}%
-\special{fp}%
-\special{pa -116 -232}\special{pa 205 -553}%
-\special{fp}%
-\special{pa -562 179}\special{pa -383 0}%
-\special{fp}%
-\special{pa -128 -255}\special{pa 180 -562}%
-\special{fp}%
-\special{pa -570 153}\special{pa -418 0}%
-\special{fp}%
-\special{pa -139 -278}\special{pa 152 -569}%
-\special{fp}%
-\special{pa -576 124}\special{pa -452 0}%
-\special{fp}%
-\special{pa -151 -302}\special{pa 124 -577}%
-\special{fp}%
-\special{pa -582 95}\special{pa -487 0}%
-\special{fp}%
-\special{pa -162 -325}\special{pa 95 -582}%
-\special{fp}%
-\special{pa -586 65}\special{pa -522 0}%
-\special{fp}%
-\special{pa -174 -348}\special{pa 64 -586}%
-\special{fp}%
-\special{pa -589 32}\special{pa -557 0}%
-\special{fp}%
-\special{pa -186 -371}\special{pa 33 -589}%
-\special{fp}%
-\special{pa -197 -394}\special{pa -2 -589}%
-\special{fp}%
-\special{pa -209 -418}\special{pa -37 -589}%
-\special{fp}%
-\special{pa -220 -441}\special{pa -77 -584}%
-\special{fp}%
-\special{pa -232 -464}\special{pa -118 -578}%
-\special{fp}%
-\special{pa -244 -487}\special{pa -165 -566}%
-\special{fp}%
-\special{pa -255 -510}\special{pa -218 -548}%
-\special{fp}%
-\special{pa 591 0}\special{pa 586 -74}\special{pa 572 -147}\special{pa 549 -217}\special{pa 518 -285}%
-\special{pa 478 -347}\special{pa 430 -404}\special{pa 376 -455}\special{pa 316 -499}%
-\special{pa 251 -534}\special{pa 182 -562}\special{pa 111 -580}\special{pa 37 -589}%
-\special{pa -37 -589}\special{pa -111 -580}\special{pa -182 -562}\special{pa -251 -534}%
-\special{pa -316 -499}\special{pa -376 -455}\special{pa -430 -404}\special{pa -478 -347}%
-\special{pa -518 -285}\special{pa -549 -217}\special{pa -572 -147}\special{pa -586 -74}%
-\special{pa -591 0}\special{pa -586 74}\special{pa -572 147}\special{pa -549 217}%
-\special{pa -518 285}\special{pa -478 347}\special{pa -430 404}\special{pa -376 455}%
-\special{pa -316 499}\special{pa -251 534}\special{pa -182 562}\special{pa -111 580}%
-\special{pa -37 589}\special{pa 37 589}\special{pa 111 580}\special{pa 182 562}\special{pa 251 534}%
-\special{pa 316 499}\special{pa 376 455}\special{pa 430 404}\special{pa 478 347}\special{pa 518 285}%
-\special{pa 549 217}\special{pa 572 147}\special{pa 586 74}\special{pa 591 0}%
-\special{fp}%
-\special{pa 787 0}\special{pa -787 0}%
-\special{fp}%
-\special{pa 394 787}\special{pa -394 -787}%
-\special{fp}%
-\end{picture}}% \ No newline at end of file
diff --git a/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/HatchZuKita7.tex b/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/HatchZuKita7.tex
deleted file mode 100644
index 14bce6d6..00000000
--- a/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/HatchZuKita7.tex
+++ /dev/null
@@ -1,102 +0,0 @@
-%%% fig.tex 2014-12-31 14:37
-%%% fig.sce 2014-12-31 14:37
-{\unitlength=5mm%
-\begin{picture}%
-( 8.00000, 8.00000)( -4.00000, -4.00000)%
-\special{pn 8}%
-%
-\special{pa 284 517}\special{pa 519 281}%
-\special{fp}%
-\special{pa 218 548}\special{pa 550 216}%
-\special{fp}%
-\special{pa 165 566}\special{pa 566 165}%
-\special{fp}%
-\special{pa 118 578}\special{pa 577 119}%
-\special{fp}%
-\special{pa 77 584}\special{pa 586 76}%
-\special{fp}%
-\special{pa 37 589}\special{pa 588 38}%
-\special{fp}%
-\special{pa 2 589}\special{pa 590 1}%
-\special{fp}%
-\special{pa -33 589}\special{pa 589 -32}%
-\special{fp}%
-\special{pa -64 586}\special{pa 586 -65}%
-\special{fp}%
-\special{pa -95 582}\special{pa 582 -95}%
-\special{fp}%
-\special{pa -124 577}\special{pa 576 -124}%
-\special{fp}%
-\special{pa -152 569}\special{pa 570 -153}%
-\special{fp}%
-\special{pa -180 562}\special{pa 562 -179}%
-\special{fp}%
-\special{pa -205 553}\special{pa 553 -205}%
-\special{fp}%
-\special{pa -230 543}\special{pa 543 -230}%
-\special{fp}%
-\special{pa -254 533}\special{pa 532 -254}%
-\special{fp}%
-\special{pa -277 520}\special{pa 521 -277}%
-\special{fp}%
-\special{pa -299 508}\special{pa 508 -299}%
-\special{fp}%
-\special{pa -321 495}\special{pa 495 -321}%
-\special{fp}%
-\special{pa -341 481}\special{pa 481 -342}%
-\special{fp}%
-\special{pa -361 466}\special{pa 466 -361}%
-\special{fp}%
-\special{pa -381 451}\special{pa 450 -381}%
-\special{fp}%
-\special{pa -399 434}\special{pa 434 -400}%
-\special{fp}%
-\special{pa -417 417}\special{pa 417 -417}%
-\special{fp}%
-\special{pa -434 400}\special{pa 399 -434}%
-\special{fp}%
-\special{pa -450 381}\special{pa 381 -451}%
-\special{fp}%
-\special{pa -466 361}\special{pa 361 -466}%
-\special{fp}%
-\special{pa -481 342}\special{pa 341 -481}%
-\special{fp}%
-\special{pa -495 321}\special{pa 321 -495}%
-\special{fp}%
-\special{pa -508 299}\special{pa 299 -508}%
-\special{fp}%
-\special{pa -521 277}\special{pa 277 -520}%
-\special{fp}%
-\special{pa -532 254}\special{pa 254 -533}%
-\special{fp}%
-\special{pa -543 230}\special{pa 230 -543}%
-\special{fp}%
-\special{pa -553 205}\special{pa 205 -553}%
-\special{fp}%
-\special{pa -562 179}\special{pa 180 -562}%
-\special{fp}%
-\special{pa -570 153}\special{pa 152 -569}%
-\special{fp}%
-\special{pa -576 124}\special{pa 124 -577}%
-\special{fp}%
-\special{pa -582 95}\special{pa 95 -582}%
-\special{fp}%
-\special{pa -586 65}\special{pa 64 -586}%
-\special{fp}%
-\special{pa -589 32}\special{pa 33 -589}%
-\special{fp}%
-\special{pa -590 -1}\special{pa -2 -589}%
-\special{fp}%
-\special{pa -588 -38}\special{pa -37 -589}%
-\special{fp}%
-\special{pa -586 -76}\special{pa -77 -584}%
-\special{fp}%
-\special{pa -577 -119}\special{pa -118 -578}%
-\special{fp}%
-\special{pa -566 -165}\special{pa -165 -566}%
-\special{fp}%
-\special{pa -550 -216}\special{pa -218 -548}%
-\special{fp}%
-\special{pa -519 -281}\special{pa -284 -517}%
-\special{fp}%
-\end{picture}}% \ No newline at end of file
diff --git a/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/HatchZuKita8.tex b/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/HatchZuKita8.tex
deleted file mode 100644
index 255c40ce..00000000
--- a/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/HatchZuKita8.tex
+++ /dev/null
@@ -1,128 +0,0 @@
-%%% fig.tex 2014-12-31 14:38
-%%% fig.sce 2014-12-31 14:38
-{\unitlength=5mm%
-\begin{picture}%
-( 8.00000, 8.00000)( -4.00000, -4.00000)%
-\special{pn 8}%
-%
-\special{pa 591 0}\special{pa 588 -39}\special{fp}\special{pa 585 -77}\special{pa 578 -115}\special{fp}%
-\special{pa 570 -153}\special{pa 558 -189}\special{fp}\special{pa 545 -226}\special{pa 529 -261}\special{fp}%
-\special{pa 511 -295}\special{pa 490 -328}\special{fp}\special{pa 468 -359}\special{pa 443 -389}\special{fp}%
-\special{pa 417 -417}\special{pa 389 -443}\special{fp}\special{pa 359 -468}\special{pa 328 -490}\special{fp}%
-\special{pa 295 -511}\special{pa 261 -529}\special{fp}\special{pa 226 -545}\special{pa 190 -559}\special{fp}%
-\special{pa 153 -569}\special{pa 115 -579}\special{fp}\special{pa 77 -584}\special{pa 39 -589}\special{fp}%
-\special{pa 0 -589}\special{pa -37 -589}\special{pa -39 -589}\special{fp}\special{pa -77 -584}\special{pa -111 -580}\special{pa -115 -579}\special{fp}%
-\special{pa -153 -569}\special{pa -182 -562}\special{pa -190 -559}\special{fp}\special{pa -226 -545}\special{pa -251 -534}\special{pa -261 -529}\special{fp}%
-\special{pa -295 -511}\special{pa -316 -499}\special{pa -328 -490}\special{fp}\special{pa -359 -468}\special{pa -376 -455}\special{pa -389 -443}\special{fp}%
-\special{pa -417 -417}\special{pa -430 -404}\special{pa -443 -389}\special{fp}\special{pa -468 -359}\special{pa -478 -347}\special{pa -490 -328}\special{fp}%
-\special{pa -511 -295}\special{pa -518 -285}\special{pa -529 -261}\special{fp}\special{pa -545 -226}\special{pa -549 -217}\special{pa -558 -189}\special{fp}%
-\special{pa -570 -153}\special{pa -572 -147}\special{pa -578 -115}\special{fp}\special{pa -585 -77}\special{pa -586 -74}\special{pa -588 -39}\special{fp}%
-\special{pa -591 0}\special{pa -588 39}\special{fp}\special{pa -585 77}\special{pa -578 115}\special{fp}%
-\special{pa -570 153}\special{pa -558 189}\special{fp}\special{pa -545 226}\special{pa -529 261}\special{fp}%
-\special{pa -511 295}\special{pa -490 328}\special{fp}\special{pa -468 359}\special{pa -443 389}\special{fp}%
-\special{pa -417 417}\special{pa -389 443}\special{fp}\special{pa -359 468}\special{pa -328 490}\special{fp}%
-\special{pa -295 511}\special{pa -261 529}\special{fp}\special{pa -226 545}\special{pa -190 559}\special{fp}%
-\special{pa -153 569}\special{pa -115 579}\special{fp}\special{pa -77 584}\special{pa -39 589}\special{fp}%
-\special{pa 0 589}\special{pa 37 589}\special{pa 39 589}\special{fp}\special{pa 77 584}\special{pa 111 580}\special{pa 115 579}\special{fp}%
-\special{pa 153 569}\special{pa 182 562}\special{pa 190 559}\special{fp}\special{pa 226 545}\special{pa 251 534}\special{pa 261 529}\special{fp}%
-\special{pa 295 511}\special{pa 316 499}\special{pa 328 490}\special{fp}\special{pa 359 468}\special{pa 376 455}\special{pa 389 443}\special{fp}%
-\special{pa 417 417}\special{pa 430 404}\special{pa 443 389}\special{fp}\special{pa 468 359}\special{pa 478 347}\special{pa 490 328}\special{fp}%
-\special{pa 511 295}\special{pa 518 285}\special{pa 529 261}\special{fp}\special{pa 545 226}\special{pa 549 217}\special{pa 558 189}\special{fp}%
-\special{pa 570 153}\special{pa 572 147}\special{pa 578 115}\special{fp}\special{pa 585 77}\special{pa 586 74}\special{pa 588 39}\special{fp}%
-%
-%
-\special{pa 284 517}\special{pa 519 281}%
-\special{fp}%
-\special{pa 218 548}\special{pa 550 216}%
-\special{fp}%
-\special{pa 165 566}\special{pa 566 165}%
-\special{fp}%
-\special{pa 118 578}\special{pa 577 119}%
-\special{fp}%
-\special{pa 77 584}\special{pa 586 76}%
-\special{fp}%
-\special{pa 37 589}\special{pa 588 38}%
-\special{fp}%
-\special{pa 2 589}\special{pa 590 1}%
-\special{fp}%
-\special{pa -33 589}\special{pa 589 -32}%
-\special{fp}%
-\special{pa -64 586}\special{pa 586 -65}%
-\special{fp}%
-\special{pa -95 582}\special{pa 582 -95}%
-\special{fp}%
-\special{pa -124 577}\special{pa 576 -124}%
-\special{fp}%
-\special{pa -152 569}\special{pa 570 -153}%
-\special{fp}%
-\special{pa -180 562}\special{pa 562 -179}%
-\special{fp}%
-\special{pa -205 553}\special{pa 553 -205}%
-\special{fp}%
-\special{pa -230 543}\special{pa 543 -230}%
-\special{fp}%
-\special{pa -254 533}\special{pa 532 -254}%
-\special{fp}%
-\special{pa -277 520}\special{pa 521 -277}%
-\special{fp}%
-\special{pa -299 508}\special{pa 508 -299}%
-\special{fp}%
-\special{pa -321 495}\special{pa 495 -321}%
-\special{fp}%
-\special{pa -341 481}\special{pa 481 -342}%
-\special{fp}%
-\special{pa -361 466}\special{pa 466 -361}%
-\special{fp}%
-\special{pa -381 451}\special{pa 450 -381}%
-\special{fp}%
-\special{pa -399 434}\special{pa 434 -400}%
-\special{fp}%
-\special{pa -417 417}\special{pa 417 -417}%
-\special{fp}%
-\special{pa -434 400}\special{pa 399 -434}%
-\special{fp}%
-\special{pa -450 381}\special{pa 381 -451}%
-\special{fp}%
-\special{pa -466 361}\special{pa 361 -466}%
-\special{fp}%
-\special{pa -481 342}\special{pa 341 -481}%
-\special{fp}%
-\special{pa -495 321}\special{pa 321 -495}%
-\special{fp}%
-\special{pa -508 299}\special{pa 299 -508}%
-\special{fp}%
-\special{pa -521 277}\special{pa 277 -520}%
-\special{fp}%
-\special{pa -532 254}\special{pa 254 -533}%
-\special{fp}%
-\special{pa -543 230}\special{pa 230 -543}%
-\special{fp}%
-\special{pa -553 205}\special{pa 205 -553}%
-\special{fp}%
-\special{pa -562 179}\special{pa 180 -562}%
-\special{fp}%
-\special{pa -570 153}\special{pa 152 -569}%
-\special{fp}%
-\special{pa -576 124}\special{pa 124 -577}%
-\special{fp}%
-\special{pa -582 95}\special{pa 95 -582}%
-\special{fp}%
-\special{pa -586 65}\special{pa 64 -586}%
-\special{fp}%
-\special{pa -589 32}\special{pa 33 -589}%
-\special{fp}%
-\special{pa -590 -1}\special{pa -2 -589}%
-\special{fp}%
-\special{pa -588 -38}\special{pa -37 -589}%
-\special{fp}%
-\special{pa -586 -76}\special{pa -77 -584}%
-\special{fp}%
-\special{pa -577 -119}\special{pa -118 -578}%
-\special{fp}%
-\special{pa -566 -165}\special{pa -165 -566}%
-\special{fp}%
-\special{pa -550 -216}\special{pa -218 -548}%
-\special{fp}%
-\special{pa -519 -281}\special{pa -284 -517}%
-\special{fp}%
-\end{picture}}% \ No newline at end of file
diff --git a/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/HatchZuKita9.tex b/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/HatchZuKita9.tex
deleted file mode 100644
index 777c7905..00000000
--- a/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/HatchZuKita9.tex
+++ /dev/null
@@ -1,137 +0,0 @@
-%%% fig.tex 2014-12-31 14:34
-%%% fig.sce 2014-12-31 14:34
-{\unitlength=5mm%
-\begin{picture}%
-( 8.00000, 8.00000)( -4.00000, -4.00000)%
-\special{pn 8}%
-%
-\special{pa 557 0}\special{pa 589 -32}%
-\special{fp}%
-\special{pa 522 0}\special{pa 586 -65}%
-\special{fp}%
-\special{pa 487 0}\special{pa 582 -95}%
-\special{fp}%
-\special{pa 452 0}\special{pa 576 -124}%
-\special{fp}%
-\special{pa 418 0}\special{pa 570 -153}%
-\special{fp}%
-\special{pa 383 0}\special{pa 562 -179}%
-\special{fp}%
-\special{pa 348 0}\special{pa 553 -205}%
-\special{fp}%
-\special{pa 313 0}\special{pa 543 -230}%
-\special{fp}%
-\special{pa 278 0}\special{pa 532 -254}%
-\special{fp}%
-\special{pa 244 0}\special{pa 521 -277}%
-\special{fp}%
-\special{pa 209 0}\special{pa 508 -299}%
-\special{fp}%
-\special{pa 174 0}\special{pa 495 -321}%
-\special{fp}%
-\special{pa 139 0}\special{pa 481 -342}%
-\special{fp}%
-\special{pa 104 0}\special{pa 466 -361}%
-\special{fp}%
-\special{pa 70 0}\special{pa 450 -381}%
-\special{fp}%
-\special{pa 35 0}\special{pa 434 -400}%
-\special{fp}%
-\special{pa 0 0}\special{pa 417 -417}%
-\special{fp}%
-\special{pa -12 -23}\special{pa 399 -434}%
-\special{fp}%
-\special{pa -23 -46}\special{pa 381 -451}%
-\special{fp}%
-\special{pa -35 -70}\special{pa 361 -466}%
-\special{fp}%
-\special{pa -46 -93}\special{pa 341 -481}%
-\special{fp}%
-\special{pa -58 -116}\special{pa 321 -495}%
-\special{fp}%
-\special{pa -70 -139}\special{pa 299 -508}%
-\special{fp}%
-\special{pa -81 -162}\special{pa 277 -520}%
-\special{fp}%
-\special{pa -93 -186}\special{pa 254 -533}%
-\special{fp}%
-\special{pa -104 -209}\special{pa 230 -543}%
-\special{fp}%
-\special{pa -116 -232}\special{pa 205 -553}%
-\special{fp}%
-\special{pa -128 -255}\special{pa 180 -562}%
-\special{fp}%
-\special{pa -139 -278}\special{pa 152 -569}%
-\special{fp}%
-\special{pa -151 -302}\special{pa 124 -577}%
-\special{fp}%
-\special{pa -162 -325}\special{pa 95 -582}%
-\special{fp}%
-\special{pa -174 -348}\special{pa 64 -586}%
-\special{fp}%
-\special{pa -186 -371}\special{pa 33 -589}%
-\special{fp}%
-\special{pa -197 -394}\special{pa -2 -589}%
-\special{fp}%
-\special{pa -209 -418}\special{pa -37 -589}%
-\special{fp}%
-\special{pa -220 -441}\special{pa -77 -584}%
-\special{fp}%
-\special{pa -232 -464}\special{pa -118 -578}%
-\special{fp}%
-\special{pa -244 -487}\special{pa -165 -566}%
-\special{fp}%
-\special{pa -255 -510}\special{pa -218 -548}%
-\special{fp}%
-\special{pa 246 536}\special{pa 246 492}%
-\special{fp}%
-\special{pa 197 556}\special{pa 197 394}%
-\special{fp}%
-\special{pa 148 571}\special{pa 148 295}%
-\special{fp}%
-\special{pa 98 582}\special{pa 98 197}%
-\special{fp}%
-\special{pa 49 588}\special{pa 49 98}%
-\special{fp}%
-\special{pa 0 589}\special{pa 0 0}%
-\special{fp}%
-\special{pa -49 588}\special{pa -49 0}%
-\special{fp}%
-\special{pa -98 582}\special{pa -98 0}%
-\special{fp}%
-\special{pa -148 571}\special{pa -148 0}%
-\special{fp}%
-\special{pa -197 556}\special{pa -197 0}%
-\special{fp}%
-\special{pa -246 536}\special{pa -246 0}%
-\special{fp}%
-\special{pa -295 510}\special{pa -295 0}%
-\special{fp}%
-\special{pa -344 478}\special{pa -344 0}%
-\special{fp}%
-\special{pa -394 439}\special{pa -394 0}%
-\special{fp}%
-\special{pa -443 389}\special{pa -443 0}%
-\special{fp}%
-\special{pa -492 324}\special{pa -492 0}%
-\special{fp}%
-\special{pa -541 234}\special{pa -541 0}%
-\special{fp}%
-\special{pa 591 0}\special{pa 586 -74}\special{pa 572 -147}\special{pa 549 -217}\special{pa 518 -285}%
-\special{pa 478 -347}\special{pa 430 -404}\special{pa 376 -455}\special{pa 316 -499}%
-\special{pa 251 -534}\special{pa 182 -562}\special{pa 111 -580}\special{pa 37 -589}%
-\special{pa -37 -589}\special{pa -111 -580}\special{pa -182 -562}\special{pa -251 -534}%
-\special{pa -316 -499}\special{pa -376 -455}\special{pa -430 -404}\special{pa -478 -347}%
-\special{pa -518 -285}\special{pa -549 -217}\special{pa -572 -147}\special{pa -586 -74}%
-\special{pa -591 0}\special{pa -586 74}\special{pa -572 147}\special{pa -549 217}%
-\special{pa -518 285}\special{pa -478 347}\special{pa -430 404}\special{pa -376 455}%
-\special{pa -316 499}\special{pa -251 534}\special{pa -182 562}\special{pa -111 580}%
-\special{pa -37 589}\special{pa 37 589}\special{pa 111 580}\special{pa 182 562}\special{pa 251 534}%
-\special{pa 316 499}\special{pa 376 455}\special{pa 430 404}\special{pa 478 347}\special{pa 518 285}%
-\special{pa 549 217}\special{pa 572 147}\special{pa 586 74}\special{pa 591 0}%
-\special{fp}%
-\special{pa 787 0}\special{pa -787 0}%
-\special{fp}%
-\special{pa 394 787}\special{pa -394 -787}%
-\special{fp}%
-\end{picture}}% \ No newline at end of file
diff --git a/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/Nearestpt.tex b/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/Nearestpt.tex
deleted file mode 100644
index 7ca5600b..00000000
--- a/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/Nearestpt.tex
+++ /dev/null
@@ -1,104 +0,0 @@
-%%% fig.tex 2016-5-4 18:8
-%%% fig.sce 2016-5-4 18:8
-{\unitlength=10mm%
-\begin{picture}%
-( 6.00000, 5.00000)( -2.00000, -1.00000)%
-\special{pn 8}%
-%
-\special{pa -557 -1575}\special{pa -535 -1516}\special{pa -504 -1432}\special{pa -472 -1354}%
-\special{pa -441 -1281}\special{pa -409 -1213}\special{pa -378 -1150}\special{pa -346 -1092}%
-\special{pa -315 -1039}\special{pa -283 -991}\special{pa -252 -949}\special{pa -220 -911}%
-\special{pa -189 -878}\special{pa -157 -850}\special{pa -126 -828}\special{pa -94 -810}%
-\special{pa -63 -797}\special{pa -31 -790}\special{pa 0 -787}\special{pa 31 -790}%
-\special{pa 63 -797}\special{pa 94 -810}\special{pa 126 -828}\special{pa 157 -850}%
-\special{pa 189 -878}\special{pa 220 -911}\special{pa 252 -949}\special{pa 283 -991}%
-\special{pa 315 -1039}\special{pa 346 -1092}\special{pa 378 -1150}\special{pa 409 -1213}%
-\special{pa 441 -1281}\special{pa 472 -1354}\special{pa 504 -1432}\special{pa 535 -1516}%
-\special{pa 557 -1575}%
-\special{fp}%
-\special{pa 394 394}\special{pa 402 378}\special{pa 425 333}\special{pa 449 291}\special{pa 472 252}%
-\special{pa 496 216}\special{pa 520 182}\special{pa 543 151}\special{pa 567 123}\special{pa 591 98}%
-\special{pa 614 76}\special{pa 638 57}\special{pa 661 40}\special{pa 685 27}\special{pa 709 16}%
-\special{pa 732 8}\special{pa 756 3}\special{pa 780 0}\special{pa 803 1}\special{pa 827 4}%
-\special{pa 850 10}\special{pa 874 19}\special{pa 898 31}\special{pa 921 46}\special{pa 945 63}%
-\special{pa 969 83}\special{pa 992 106}\special{pa 1016 132}\special{pa 1039 161}%
-\special{pa 1063 193}\special{pa 1087 227}\special{pa 1110 265}\special{pa 1134 305}%
-\special{pa 1157 348}\special{pa 1181 394}%
-\special{fp}%
-\special{pn 8}%
-\special{pa 124 -831}\special{pa 128 -824}\special{fp}\special{pa 144 -798}\special{pa 149 -791}\special{fp}%
-\special{pa 165 -764}\special{pa 169 -758}\special{fp}\special{pa 186 -731}\special{pa 190 -724}\special{fp}%
-\special{pa 206 -698}\special{pa 210 -691}\special{fp}\special{pa 227 -664}\special{pa 231 -657}\special{fp}%
-\special{pa 247 -631}\special{pa 252 -624}\special{fp}\special{pa 268 -597}\special{pa 272 -591}\special{fp}%
-\special{pa 289 -564}\special{pa 293 -557}\special{fp}\special{pa 309 -531}\special{pa 313 -524}\special{fp}%
-\special{pa 330 -497}\special{pa 334 -490}\special{fp}\special{pa 350 -464}\special{pa 355 -457}\special{fp}%
-\special{pa 371 -430}\special{pa 375 -424}\special{fp}\special{pa 392 -397}\special{pa 396 -390}\special{fp}%
-\special{pa 412 -364}\special{pa 416 -357}\special{fp}\special{pa 433 -330}\special{pa 437 -324}\special{fp}%
-\special{pa 453 -297}\special{pa 458 -290}\special{fp}\special{pa 474 -264}\special{pa 478 -257}\special{fp}%
-\special{pa 495 -230}\special{pa 499 -223}\special{fp}\special{pa 515 -197}\special{pa 519 -190}\special{fp}%
-\special{pa 536 -163}\special{pa 540 -157}\special{fp}\special{pa 556 -130}\special{pa 561 -123}\special{fp}%
-\special{pa 577 -97}\special{pa 581 -90}\special{fp}\special{pa 598 -63}\special{pa 602 -56}\special{fp}%
-\special{pa 618 -30}\special{pa 622 -23}\special{fp}\special{pa 639 4}\special{pa 643 10}\special{fp}%
-\special{pa 659 37}\special{pa 664 44}\special{fp}\special{pn 8}%
-\special{pn 4}%
-\special{pa 137 -839}\special{pa 130 -843}\special{pa 122 -843}\special{pa 115 -839}%
-\special{pa 111 -832}\special{pa 111 -824}\special{pa 115 -817}\special{pa 122 -813}%
-\special{pa 130 -813}\special{pa 137 -817}\special{pa 141 -824}\special{pa 141 -832}%
-\special{pa 137 -839}\special{sh 1}\special{fp}%
-\special{pa 673 29}\special{pa 665 25}\special{pa 657 25}\special{pa 650 29}\special{pa 646 36}%
-\special{pa 646 44}\special{pa 650 51}\special{pa 657 56}\special{pa 665 56}\special{pa 673 51}%
-\special{pa 677 44}\special{pa 677 36}\special{pa 673 29}\special{sh 1}\special{fp}%
-\special{pn 8}%
-\settowidth{\Width}{A}\setlength{\Width}{-1\Width}%
-\settoheight{\Height}{A}\settodepth{\Depth}{A}\setlength{\Height}{\Depth}%
-\put(0.2700,2.1524){\hspace*{\Width}\raisebox{\Height}{A}}%
-%
-%
-\settowidth{\Width}{B}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{B}\settodepth{\Depth}{B}\setlength{\Height}{\Depth}%
-\put(1.7300,0.0476){\hspace*{\Width}\raisebox{\Height}{B}}%
-%
-%
-\settowidth{\Width}{2.59}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{2.59}\settodepth{\Depth}{2.59}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(1.0500,1.0000){\hspace*{\Width}\raisebox{\Height}{2.59}}%
-%
-%
-\special{pn 8}%
-\special{pa -787 0}\special{pa 1535 0}%
-\special{fp}%
-\special{pn 8}%
-\special{pa 1500 24}\special{pa 1575 0}\special{pa 1500 -24}\special{pa 1500 0}\special{pa 1500 24}%
-\special{sh 1}\special{ip}%
-\special{pn 1}%
-\special{pa 1500 24}\special{pa 1575 0}\special{pa 1500 -24}\special{pa 1500 0}\special{pa 1500 24}%
-\special{pa 1575 0}%
-\special{fp}%
-\special{pn 8}%
-\special{pn 8}%
-\special{pa 0 394}\special{pa 0 -1535}%
-\special{fp}%
-\special{pn 8}%
-\special{pa 24 -1500}\special{pa 0 -1575}\special{pa -24 -1500}\special{pa 0 -1500}%
-\special{pa 24 -1500}\special{sh 1}\special{ip}%
-\special{pn 1}%
-\special{pa 24 -1500}\special{pa 0 -1575}\special{pa -24 -1500}\special{pa 0 -1500}%
-\special{pa 24 -1500}\special{pa 0 -1575}%
-\special{fp}%
-\special{pn 8}%
-\settowidth{\Width}{$x$}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{$x$}\settodepth{\Depth}{$x$}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(4.0500,0.0000){\hspace*{\Width}\raisebox{\Height}{$x$}}%
-%
-%
-\settowidth{\Width}{$y$}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{$y$}\settodepth{\Depth}{$y$}\setlength{\Height}{\Depth}%
-\put(0.0000,4.0500){\hspace*{\Width}\raisebox{\Height}{$y$}}%
-%
-%
-\settowidth{\Width}{O}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{O}\settodepth{\Depth}{O}\setlength{\Height}{-\Height}%
-\put(0.0500,-0.0500){\hspace*{\Width}\raisebox{\Height}{O}}%
-%
-%
-\end{picture}}% \ No newline at end of file
diff --git a/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/Nearestpt1.tex b/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/Nearestpt1.tex
deleted file mode 100644
index 7e3ad7a5..00000000
--- a/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/Nearestpt1.tex
+++ /dev/null
@@ -1,108 +0,0 @@
-%%% Nearestpt1.tex 2014-11-9 23:27
-%%% Nearestpt2.sce 2014-11-9 20:45
-{\unitlength=1cm%
-\begin{picture}%
-( 4.01000, 4.19000)( -2.01000, -0.19000)%
-\special{pn 8}%
-%
-\special{pa 405 -11}\special{pa 398 -15}\special{pa 390 -15}\special{pa 383 -11}\special{pa 378 -4}%
-\special{pa 378 4}\special{pa 383 11}\special{pa 390 15}\special{pa 398 15}\special{pa 405 11}%
-\special{pa 409 4}\special{pa 409 -4}\special{pa 405 -11}\special{sh 1}\special{fp}%
-\special{pa -178 -1015}\special{pa -185 -1019}\special{pa -193 -1019}\special{pa -200 -1015}%
-\special{pa -204 -1008}\special{pa -204 -1000}\special{pa -200 -993}\special{pa -193 -989}%
-\special{pa -185 -989}\special{pa -178 -993}\special{pa -174 -1000}\special{pa -174 -1008}%
-\special{pa -178 -1015}\special{sh 1}\special{fp}%
-\special{pa 247 -295}\special{pa 240 -299}\special{pa 232 -299}\special{pa 225 -295}%
-\special{pa 221 -288}\special{pa 221 -279}\special{pa 225 -272}\special{pa 232 -268}%
-\special{pa 240 -268}\special{pa 247 -272}\special{pa 251 -279}\special{pa 251 -288}%
-\special{pa 247 -295}\special{sh 1}\special{fp}%
-\special{pa 247 -153}\special{pa 240 -157}\special{pa 232 -157}\special{pa 225 -153}%
-\special{pa 221 -146}\special{pa 221 -138}\special{pa 225 -131}\special{pa 232 -127}%
-\special{pa 240 -127}\special{pa 247 -131}\special{pa 251 -138}\special{pa 251 -146}%
-\special{pa 247 -153}\special{sh 1}\special{fp}%
-\special{pa -363 -1212}\special{pa -370 -1216}\special{pa -378 -1216}\special{pa -385 -1212}%
-\special{pa -389 -1205}\special{pa -389 -1197}\special{pa -385 -1190}\special{pa -378 -1186}%
-\special{pa -370 -1186}\special{pa -363 -1190}\special{pa -359 -1197}\special{pa -359 -1205}%
-\special{pa -363 -1212}\special{sh 1}\special{fp}%
-\special{pa -575 -881}\special{pa -583 -885}\special{pa -591 -885}\special{pa -598 -881}%
-\special{pa -602 -874}\special{pa -602 -866}\special{pa -598 -859}\special{pa -591 -855}%
-\special{pa -583 -855}\special{pa -575 -859}\special{pa -571 -866}\special{pa -571 -874}%
-\special{pa -575 -881}\special{sh 1}\special{fp}%
-\settowidth{\Width}{C}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{C}\settodepth{\Depth}{C}\setlength{\Height}{-\Height}%
-\put(1.0000,-0.1000){\hspace*{\Width}\raisebox{\Height}{C}}%
-%
-%
-\settowidth{\Width}{pCr}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{pCr}\settodepth{\Depth}{pCr}\setlength{\Height}{\Depth}%
-\put(0.6000,0.8200){\hspace*{\Width}\raisebox{\Height}{pCr}}%
-%
-%
-\settowidth{\Width}{pC1}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{pC1}\settodepth{\Depth}{pC1}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(0.7000,0.3600){\hspace*{\Width}\raisebox{\Height}{pC1}}%
-%
-%
-\settowidth{\Width}{D}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{D}\settodepth{\Depth}{D}\setlength{\Height}{-\Height}%
-\put(-0.4800,2.4500){\hspace*{\Width}\raisebox{\Height}{D}}%
-%
-%
-\settowidth{\Width}{pDr}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{pDr}\settodepth{\Depth}{pDr}\setlength{\Height}{\Depth}%
-\put(-0.9500,3.1500){\hspace*{\Width}\raisebox{\Height}{pDr}}%
-%
-%
-\settowidth{\Width}{pD1}\setlength{\Width}{-1\Width}%
-\settoheight{\Height}{pD1}\settodepth{\Depth}{pD1}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(-1.5900,2.2100){\hspace*{\Width}\raisebox{\Height}{pD1}}%
-%
-%
-\special{pa 557 -787}\special{pa 552 -857}\special{pa 539 -926}\special{pa 518 -992}%
-\special{pa 488 -1056}\special{pa 450 -1115}\special{pa 406 -1169}\special{pa 355 -1216}%
-\special{pa 298 -1258}\special{pa 237 -1291}\special{pa 172 -1317}\special{pa 104 -1334}%
-\special{pa 35 -1343}\special{pa -35 -1343}\special{pa -104 -1334}\special{pa -172 -1317}%
-\special{pa -237 -1291}\special{pa -298 -1258}\special{pa -355 -1216}\special{pa -406 -1169}%
-\special{pa -450 -1115}\special{pa -488 -1056}\special{pa -518 -992}\special{pa -539 -926}%
-\special{pa -552 -857}\special{pa -557 -787}\special{pa -552 -718}\special{pa -539 -649}%
-\special{pa -518 -582}\special{pa -488 -519}\special{pa -450 -460}\special{pa -406 -406}%
-\special{pa -355 -358}\special{pa -298 -317}\special{pa -237 -284}\special{pa -172 -258}%
-\special{pa -104 -240}\special{pa -35 -232}\special{pa 35 -232}\special{pa 104 -240}%
-\special{pa 172 -258}\special{pa 237 -284}\special{pa 298 -317}\special{pa 355 -358}%
-\special{pa 406 -406}\special{pa 450 -460}\special{pa 488 -519}\special{pa 518 -582}%
-\special{pa 539 -649}\special{pa 552 -718}\special{pa 557 -787}%
-\special{fp}%
-\special{pa -787 -1575}\special{pa -759 -1464}\special{pa -727 -1342}\special{pa -695 -1226}%
-\special{pa -662 -1115}\special{pa -630 -1009}\special{pa -598 -908}\special{pa -566 -813}%
-\special{pa -534 -723}\special{pa -501 -638}\special{pa -469 -559}\special{pa -437 -485}%
-\special{pa -405 -416}\special{pa -372 -352}\special{pa -340 -294}\special{pa -308 -241}%
-\special{pa -276 -193}\special{pa -244 -151}\special{pa -211 -114}\special{pa -179 -82}%
-\special{pa -147 -55}\special{pa -115 -33}\special{pa -83 -17}\special{pa -50 -6}%
-\special{pa -18 -1}\special{pa 14 -1}\special{pa 46 -5}\special{pa 79 -16}\special{pa 111 -31}%
-\special{pa 143 -52}\special{pa 175 -78}\special{pa 207 -109}\special{pa 240 -146}%
-\special{pa 272 -188}\special{pa 304 -235}\special{pa 336 -287}\special{pa 369 -345}%
-\special{pa 401 -408}\special{pa 433 -476}\special{pa 465 -550}\special{pa 497 -628}%
-\special{pa 530 -713}\special{pa 562 -802}\special{pa 594 -896}\special{pa 626 -996}%
-\special{pa 659 -1101}\special{pa 691 -1212}\special{pa 723 -1328}\special{pa 755 -1449}%
-\special{pa 787 -1575}%
-\special{fp}%
-\special{pa -791 0}\special{pa 787 0}%
-\special{fp}%
-\special{pa 0 75}\special{pa 0 -1575}%
-\special{fp}%
-\settowidth{\Width}{$x$}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{$x$}\settodepth{\Depth}{$x$}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(2.0500,0.0000){\hspace*{\Width}\raisebox{\Height}{$x$}}%
-%
-%
-\settowidth{\Width}{$y$}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{$y$}\settodepth{\Depth}{$y$}\setlength{\Height}{\Depth}%
-\put(0.0000,4.0500){\hspace*{\Width}\raisebox{\Height}{$y$}}%
-%
-%
-\settowidth{\Width}{O}\setlength{\Width}{-1\Width}%
-\settoheight{\Height}{O}\settodepth{\Depth}{O}\setlength{\Height}{-\Height}%
-\put(-0.0500,-0.0500){\hspace*{\Width}\raisebox{\Height}{O}}%
-%
-%
-\end{picture}}% \ No newline at end of file
diff --git a/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/addax1.tex b/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/addax1.tex
deleted file mode 100644
index 66325812..00000000
--- a/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/addax1.tex
+++ /dev/null
@@ -1,44 +0,0 @@
-%%% test.tex 2014-10-16 21:49
-%%% test.sce 2014-10-16 21:49
-{\unitlength=1cm%
-\begin{picture}%
-( 4.00000, 3.50000)( -1.00000, -1.00000)%
-\special{pn 8}%
-%
-\settowidth{\Width}{A}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{A}\settodepth{\Depth}{A}\setlength{\Height}{\Depth}%
-\put(1.0300,1.7900){\hspace*{\Width}\raisebox{\Height}{A}}%
-%
-%
-\settowidth{\Width}{B}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{B}\settodepth{\Depth}{B}\setlength{\Height}{-\Height}%
-\put(0.0500,-0.0500){\hspace*{\Width}\raisebox{\Height}{B}}%
-%
-%
-\settowidth{\Width}{C}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{C}\settodepth{\Depth}{C}\setlength{\Height}{-\Height}%
-\put(2.0500,-0.0500){\hspace*{\Width}\raisebox{\Height}{C}}%
-%
-%
-\special{pa 0 0}\special{pa 386 -685}\special{pa 787 0}%
-\special{fp}%
-\special{pa -394 0}\special{pa 1181 0}%
-\special{fp}%
-\special{pa 0 394}\special{pa 0 -984}%
-\special{fp}%
-\settowidth{\Width}{$x$}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{$x$}\settodepth{\Depth}{$x$}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(3.0500,0.0000){\hspace*{\Width}\raisebox{\Height}{$x$}}%
-%
-%
-\settowidth{\Width}{$y$}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{$y$}\settodepth{\Depth}{$y$}\setlength{\Height}{\Depth}%
-\put(0.0000,2.5500){\hspace*{\Width}\raisebox{\Height}{$y$}}%
-%
-%
-\settowidth{\Width}{O}\setlength{\Width}{-1\Width}%
-\settoheight{\Height}{O}\settodepth{\Depth}{O}\setlength{\Height}{-\Height}%
-\put(-0.0500,-0.0500){\hspace*{\Width}\raisebox{\Height}{O}}%
-%
-%
-\end{picture}}% \ No newline at end of file
diff --git a/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/addax2.tex b/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/addax2.tex
deleted file mode 100644
index 68b951d2..00000000
--- a/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/addax2.tex
+++ /dev/null
@@ -1,25 +0,0 @@
-%%% test.tex 2014-10-16 21:51
-%%% test.sce 2014-10-16 21:50
-{\unitlength=1cm%
-\begin{picture}%
-( 4.00000, 3.50000)( -1.00000, -1.00000)%
-\special{pn 8}%
-%
-\settowidth{\Width}{A}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{A}\settodepth{\Depth}{A}\setlength{\Height}{\Depth}%
-\put(1.0300,1.7900){\hspace*{\Width}\raisebox{\Height}{A}}%
-%
-%
-\settowidth{\Width}{B}\setlength{\Width}{-1\Width}%
-\settoheight{\Height}{B}\settodepth{\Depth}{B}\setlength{\Height}{-\Height}%
-\put(-0.0500,-0.0500){\hspace*{\Width}\raisebox{\Height}{B}}%
-%
-%
-\settowidth{\Width}{C}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{C}\settodepth{\Depth}{C}\setlength{\Height}{-\Height}%
-\put(2.0500,-0.0500){\hspace*{\Width}\raisebox{\Height}{C}}%
-%
-%
-\special{pa 0 0}\special{pa 386 -685}\special{pa 787 0}\special{pa 0 0}%
-\special{fp}%
-\end{picture}}% \ No newline at end of file
diff --git a/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/addgraph.tex b/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/addgraph.tex
deleted file mode 100644
index 335f0bf4..00000000
--- a/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/addgraph.tex
+++ /dev/null
@@ -1,651 +0,0 @@
-%%% ex0409addgraph.tex 2016-4-11 15:14
-%%% ex0409addgraph.sce 2016-4-11 15:14
-{\unitlength=1cm%
-\begin{picture}%
-( 9.47000, 3.15000)( -1.51000, -0.56000)%
-\special{pn 8}%
-%
-\special{pa 394 -394}\special{pa 391 -443}\special{pa 381 -492}\special{pa 366 -539}%
-\special{pa 345 -583}\special{pa 319 -625}\special{pa 287 -663}\special{pa 251 -697}%
-\special{pa 211 -726}\special{pa 168 -750}\special{pa 122 -768}\special{pa 74 -780}%
-\special{pa 25 -787}\special{pa -25 -787}\special{pa -74 -780}\special{pa -122 -768}%
-\special{pa -168 -750}\special{pa -211 -726}\special{pa -251 -697}\special{pa -287 -663}%
-\special{pa -319 -625}\special{pa -345 -583}\special{pa -366 -539}\special{pa -381 -492}%
-\special{pa -391 -443}\special{pa -394 -394}\special{pa -391 -344}\special{pa -381 -296}%
-\special{pa -366 -249}\special{pa -345 -204}\special{pa -319 -162}\special{pa -287 -124}%
-\special{pa -251 -90}\special{pa -211 -61}\special{pa -168 -37}\special{pa -122 -19}%
-\special{pa -74 -7}\special{pa -25 -1}\special{pa 25 -1}\special{pa 74 -7}\special{pa 122 -19}%
-\special{pa 168 -37}\special{pa 211 -61}\special{pa 251 -90}\special{pa 287 -124}%
-\special{pa 319 -162}\special{pa 345 -204}\special{pa 366 -249}\special{pa 381 -296}%
-\special{pa 391 -344}\special{pa 394 -394}%
-\special{fp}%
-\special{pn 1}%
-\special{pa 8 -8}\special{pa 2 -12}\special{pa -5 -11}\special{pa -11 -5}\special{pa -12 2}%
-\special{pa -8 8}\special{pa -2 12}\special{pa 5 11}\special{pa 11 5}\special{pa 12 -2}%
-\special{pa 8 -8}\special{sh 1}\special{fp}%
-\special{pn 8}%
-\special{pn 2}%
-\special{pa 9 -16}\special{pa 2 -19}\special{pa -5 -18}\special{pa -10 -13}\special{pa -11 -6}%
-\special{pa -8 1}\special{pa -1 4}\special{pa 6 3}\special{pa 11 -2}\special{pa 12 -9}%
-\special{pa 9 -16}\special{sh 1}\special{fp}%
-\special{pa 463 -317}\special{pa 470 -366}\special{pa 470 -415}\special{pa 465 -464}%
-\special{pa 453 -512}\special{pa 435 -559}\special{pa 411 -602}\special{pa 383 -642}%
-\special{pa 349 -679}\special{pa 311 -710}\special{pa 270 -737}\special{pa 225 -759}%
-\special{pa 178 -774}\special{pa 130 -784}\special{pa 80 -787}\special{pa 31 -785}%
-\special{pa -18 -776}\special{pa -65 -761}\special{pa -110 -740}\special{pa -152 -714}%
-\special{pa -190 -683}\special{pa -224 -647}\special{pa -253 -607}\special{pa -278 -564}%
-\special{pa -296 -518}\special{pa -309 -471}\special{pa -315 -422}\special{pa -316 -372}%
-\special{pa -310 -323}\special{pa -298 -275}\special{pa -280 -229}\special{pa -257 -185}%
-\special{pa -228 -145}\special{pa -194 -109}\special{pa -157 -77}\special{pa -115 -50}%
-\special{pa -70 -29}\special{pa -24 -13}\special{pa 25 -4}\special{pa 74 0}\special{pa 124 -3}%
-\special{pa 172 -12}\special{pa 219 -27}\special{pa 264 -47}\special{pa 306 -73}\special{pa 345 -105}%
-\special{pa 379 -140}\special{pa 408 -180}\special{pa 432 -223}\special{pa 451 -269}%
-\special{pa 463 -317}%
-\special{fp}%
-\special{pn 8}%
-\special{pn 2}%
-\special{pa 12 -38}\special{pa 6 -42}\special{pa -1 -40}\special{pa -7 -35}\special{pa -8 -28}%
-\special{pa -4 -22}\special{pa 2 -18}\special{pa 9 -19}\special{pa 14 -25}\special{pa 16 -32}%
-\special{pa 12 -38}\special{sh 1}\special{fp}%
-\special{pa 518 -243}\special{pa 534 -290}\special{pa 544 -338}\special{pa 548 -388}%
-\special{pa 546 -437}\special{pa 537 -486}\special{pa 523 -533}\special{pa 503 -578}%
-\special{pa 477 -620}\special{pa 446 -659}\special{pa 410 -693}\special{pa 371 -723}%
-\special{pa 328 -747}\special{pa 282 -766}\special{pa 234 -779}\special{pa 185 -786}%
-\special{pa 136 -787}\special{pa 87 -782}\special{pa 39 -770}\special{pa -7 -753}%
-\special{pa -51 -729}\special{pa -92 -701}\special{pa -128 -668}\special{pa -160 -630}%
-\special{pa -187 -589}\special{pa -209 -544}\special{pa -225 -498}\special{pa -235 -449}%
-\special{pa -239 -400}\special{pa -237 -351}\special{pa -228 -302}\special{pa -214 -255}%
-\special{pa -193 -209}\special{pa -168 -167}\special{pa -137 -129}\special{pa -101 -94}%
-\special{pa -62 -65}\special{pa -19 -40}\special{pa 27 -21}\special{pa 75 -8}\special{pa 124 -1}%
-\special{pa 173 0}\special{pa 222 -6}\special{pa 270 -17}\special{pa 317 -35}\special{pa 360 -58}%
-\special{pa 401 -86}\special{pa 437 -120}\special{pa 469 -157}\special{pa 497 -199}%
-\special{pa 518 -243}%
-\special{fp}%
-\special{pn 8}%
-\special{pn 2}%
-\special{pa 22 -75}\special{pa 15 -78}\special{pa 8 -77}\special{pa 3 -72}\special{pa 2 -65}%
-\special{pa 5 -58}\special{pa 11 -55}\special{pa 19 -56}\special{pa 24 -61}\special{pa 25 -68}%
-\special{pa 22 -75}\special{sh 1}\special{fp}%
-\special{pa 559 -175}\special{pa 584 -218}\special{pa 603 -263}\special{pa 617 -311}%
-\special{pa 624 -360}\special{pa 625 -409}\special{pa 620 -458}\special{pa 609 -507}%
-\special{pa 592 -553}\special{pa 569 -597}\special{pa 541 -637}\special{pa 508 -674}%
-\special{pa 471 -707}\special{pa 430 -734}\special{pa 385 -756}\special{pa 339 -773}%
-\special{pa 290 -783}\special{pa 241 -787}\special{pa 192 -785}\special{pa 143 -777}%
-\special{pa 96 -763}\special{pa 50 -743}\special{pa 8 -718}\special{pa -31 -687}\special{pa -65 -652}%
-\special{pa -95 -612}\special{pa -120 -570}\special{pa -140 -524}\special{pa -153 -477}%
-\special{pa -160 -428}\special{pa -161 -378}\special{pa -156 -329}\special{pa -145 -281}%
-\special{pa -128 -235}\special{pa -105 -191}\special{pa -77 -150}\special{pa -44 -113}%
-\special{pa -7 -81}\special{pa 34 -53}\special{pa 78 -31}\special{pa 125 -15}\special{pa 173 -4}%
-\special{pa 223 0}\special{pa 272 -2}\special{pa 321 -10}\special{pa 368 -24}\special{pa 413 -44}%
-\special{pa 456 -70}\special{pa 495 -100}\special{pa 529 -136}\special{pa 559 -175}%
-\special{fp}%
-\special{pn 8}%
-\special{pn 2}%
-\special{pa 39 -124}\special{pa 33 -127}\special{pa 25 -126}\special{pa 20 -121}\special{pa 19 -113}%
-\special{pa 22 -107}\special{pa 29 -104}\special{pa 36 -105}\special{pa 41 -110}\special{pa 42 -117}%
-\special{pa 39 -124}\special{sh 1}\special{fp}%
-\special{pa 588 -115}\special{pa 620 -152}\special{pa 648 -193}\special{pa 671 -237}%
-\special{pa 687 -284}\special{pa 698 -332}\special{pa 703 -381}\special{pa 701 -431}%
-\special{pa 693 -480}\special{pa 680 -527}\special{pa 660 -572}\special{pa 635 -615}%
-\special{pa 605 -654}\special{pa 570 -689}\special{pa 531 -719}\special{pa 488 -744}%
-\special{pa 443 -764}\special{pa 395 -778}\special{pa 346 -786}\special{pa 297 -787}%
-\special{pa 248 -783}\special{pa 199 -772}\special{pa 153 -755}\special{pa 109 -733}%
-\special{pa 68 -705}\special{pa 31 -672}\special{pa -2 -635}\special{pa -30 -594}%
-\special{pa -52 -550}\special{pa -69 -504}\special{pa -80 -455}\special{pa -84 -406}%
-\special{pa -83 -357}\special{pa -75 -308}\special{pa -61 -260}\special{pa -42 -215}%
-\special{pa -16 -172}\special{pa 14 -133}\special{pa 49 -98}\special{pa 88 -68}\special{pa 130 -43}%
-\special{pa 176 -23}\special{pa 223 -9}\special{pa 272 -2}\special{pa 322 0}\special{pa 371 -5}%
-\special{pa 419 -16}\special{pa 466 -32}\special{pa 510 -55}\special{pa 551 -83}\special{pa 588 -115}%
-\special{fp}%
-\special{pn 8}%
-\special{pn 2}%
-\special{pa 68 -183}\special{pa 61 -187}\special{pa 54 -185}\special{pa 49 -180}\special{pa 47 -173}%
-\special{pa 51 -167}\special{pa 57 -163}\special{pa 65 -164}\special{pa 70 -170}\special{pa 71 -177}%
-\special{pa 68 -183}\special{sh 1}\special{fp}%
-\special{pa 605 -66}\special{pa 645 -96}\special{pa 680 -131}\special{pa 710 -170}%
-\special{pa 736 -212}\special{pa 756 -257}\special{pa 770 -305}\special{pa 778 -354}%
-\special{pa 780 -403}\special{pa 776 -452}\special{pa 765 -501}\special{pa 749 -547}%
-\special{pa 727 -591}\special{pa 699 -633}\special{pa 667 -670}\special{pa 630 -703}%
-\special{pa 590 -731}\special{pa 546 -754}\special{pa 499 -771}\special{pa 451 -782}%
-\special{pa 402 -787}\special{pa 353 -786}\special{pa 304 -779}\special{pa 256 -765}%
-\special{pa 211 -746}\special{pa 168 -721}\special{pa 128 -691}\special{pa 93 -656}%
-\special{pa 63 -618}\special{pa 37 -575}\special{pa 17 -530}\special{pa 3 -483}\special{pa -5 -434}%
-\special{pa -7 -384}\special{pa -3 -335}\special{pa 8 -287}\special{pa 24 -240}\special{pa 46 -196}%
-\special{pa 74 -155}\special{pa 106 -118}\special{pa 143 -85}\special{pa 183 -56}%
-\special{pa 227 -34}\special{pa 274 -17}\special{pa 322 -5}\special{pa 371 0}\special{pa 420 -1}%
-\special{pa 469 -9}\special{pa 517 -22}\special{pa 562 -42}\special{pa 605 -66}%
-\special{fp}%
-\special{pn 8}%
-\special{pn 2}%
-\special{pa 108 -251}\special{pa 102 -255}\special{pa 95 -254}\special{pa 90 -248}%
-\special{pa 88 -241}\special{pa 92 -235}\special{pa 98 -231}\special{pa 105 -233}%
-\special{pa 111 -238}\special{pa 112 -245}\special{pa 108 -251}\special{sh 1}\special{fp}%
-\special{pa 614 -30}\special{pa 659 -52}\special{pa 700 -79}\special{pa 738 -111}%
-\special{pa 771 -148}\special{pa 800 -188}\special{pa 823 -232}\special{pa 840 -278}%
-\special{pa 852 -326}\special{pa 857 -375}\special{pa 856 -425}\special{pa 849 -474}%
-\special{pa 836 -521}\special{pa 817 -567}\special{pa 793 -610}\special{pa 763 -649}%
-\special{pa 729 -685}\special{pa 690 -716}\special{pa 648 -742}\special{pa 603 -762}%
-\special{pa 556 -777}\special{pa 507 -785}\special{pa 458 -787}\special{pa 408 -783}%
-\special{pa 360 -773}\special{pa 313 -757}\special{pa 269 -736}\special{pa 227 -709}%
-\special{pa 190 -676}\special{pa 157 -640}\special{pa 128 -599}\special{pa 105 -556}%
-\special{pa 88 -509}\special{pa 76 -461}\special{pa 71 -412}\special{pa 71 -363}\special{pa 78 -314}%
-\special{pa 91 -266}\special{pa 110 -220}\special{pa 135 -178}\special{pa 164 -138}%
-\special{pa 199 -103}\special{pa 237 -72}\special{pa 280 -46}\special{pa 325 -25}%
-\special{pa 372 -11}\special{pa 421 -2}\special{pa 470 0}\special{pa 519 -4}\special{pa 568 -14}%
-\special{pa 614 -30}%
-\special{fp}%
-\special{pn 8}%
-\special{pn 2}%
-\special{pa 163 -325}\special{pa 157 -329}\special{pa 150 -327}\special{pa 144 -322}%
-\special{pa 143 -315}\special{pa 147 -309}\special{pa 153 -305}\special{pa 160 -306}%
-\special{pa 166 -312}\special{pa 167 -319}\special{pa 163 -325}\special{sh 1}\special{fp}%
-\special{pa 618 -8}\special{pa 666 -20}\special{pa 712 -39}\special{pa 755 -63}\special{pa 794 -92}%
-\special{pa 830 -126}\special{pa 861 -165}\special{pa 888 -207}\special{pa 908 -252}%
-\special{pa 923 -299}\special{pa 932 -347}\special{pa 935 -397}\special{pa 931 -446}%
-\special{pa 922 -495}\special{pa 906 -542}\special{pa 885 -586}\special{pa 858 -628}%
-\special{pa 826 -665}\special{pa 790 -699}\special{pa 749 -728}\special{pa 706 -751}%
-\special{pa 660 -769}\special{pa 612 -781}\special{pa 563 -787}\special{pa 513 -786}%
-\special{pa 464 -780}\special{pa 417 -767}\special{pa 371 -749}\special{pa 328 -724}%
-\special{pa 288 -695}\special{pa 252 -661}\special{pa 221 -623}\special{pa 195 -581}%
-\special{pa 174 -536}\special{pa 159 -489}\special{pa 150 -440}\special{pa 147 -391}%
-\special{pa 151 -341}\special{pa 161 -293}\special{pa 176 -246}\special{pa 198 -201}%
-\special{pa 224 -160}\special{pa 256 -122}\special{pa 293 -88}\special{pa 333 -60}%
-\special{pa 376 -36}\special{pa 422 -18}\special{pa 470 -6}\special{pa 519 -1}\special{pa 569 -1}%
-\special{pa 618 -8}%
-\special{fp}%
-\special{pn 8}%
-\special{pn 2}%
-\special{pa 233 -402}\special{pa 227 -405}\special{pa 219 -404}\special{pa 214 -399}%
-\special{pa 213 -392}\special{pa 216 -385}\special{pa 223 -382}\special{pa 230 -383}%
-\special{pa 235 -388}\special{pa 236 -396}\special{pa 233 -402}\special{sh 1}\special{fp}%
-\special{pa 618 0}\special{pa 668 -3}\special{pa 716 -12}\special{pa 763 -28}\special{pa 808 -49}%
-\special{pa 850 -75}\special{pa 888 -107}\special{pa 922 -143}\special{pa 951 -183}%
-\special{pa 975 -226}\special{pa 993 -272}\special{pa 1005 -320}\special{pa 1011 -369}%
-\special{pa 1011 -418}\special{pa 1005 -467}\special{pa 993 -515}\special{pa 975 -561}%
-\special{pa 951 -605}\special{pa 922 -645}\special{pa 888 -681}\special{pa 850 -712}%
-\special{pa 808 -739}\special{pa 763 -760}\special{pa 716 -775}\special{pa 668 -784}%
-\special{pa 618 -787}\special{pa 569 -784}\special{pa 521 -775}\special{pa 473 -760}%
-\special{pa 429 -739}\special{pa 387 -712}\special{pa 349 -681}\special{pa 315 -645}%
-\special{pa 286 -605}\special{pa 262 -561}\special{pa 244 -515}\special{pa 232 -467}%
-\special{pa 226 -418}\special{pa 225 -369}\special{pa 232 -320}\special{pa 244 -272}%
-\special{pa 262 -226}\special{pa 286 -183}\special{pa 315 -143}\special{pa 349 -107}%
-\special{pa 387 -75}\special{pa 429 -49}\special{pa 473 -28}\special{pa 521 -12}\special{pa 569 -3}%
-\special{pa 618 0}%
-\special{fp}%
-\special{pn 8}%
-\special{pn 2}%
-\special{pa 318 -479}\special{pa 311 -482}\special{pa 304 -481}\special{pa 299 -476}%
-\special{pa 298 -469}\special{pa 301 -462}\special{pa 308 -459}\special{pa 315 -460}%
-\special{pa 320 -465}\special{pa 321 -472}\special{pa 318 -479}\special{sh 1}\special{fp}%
-\special{pa 619 -8}\special{pa 668 -1}\special{pa 717 -1}\special{pa 766 -6}\special{pa 814 -18}%
-\special{pa 861 -36}\special{pa 904 -60}\special{pa 944 -88}\special{pa 981 -122}%
-\special{pa 1012 -160}\special{pa 1039 -201}\special{pa 1061 -246}\special{pa 1076 -293}%
-\special{pa 1086 -341}\special{pa 1089 -391}\special{pa 1087 -440}\special{pa 1078 -489}%
-\special{pa 1063 -536}\special{pa 1042 -581}\special{pa 1016 -623}\special{pa 985 -661}%
-\special{pa 949 -695}\special{pa 909 -724}\special{pa 866 -749}\special{pa 820 -767}%
-\special{pa 773 -780}\special{pa 724 -786}\special{pa 674 -787}\special{pa 625 -781}%
-\special{pa 577 -769}\special{pa 531 -751}\special{pa 487 -728}\special{pa 447 -699}%
-\special{pa 411 -665}\special{pa 379 -628}\special{pa 352 -586}\special{pa 331 -542}%
-\special{pa 315 -495}\special{pa 306 -446}\special{pa 302 -397}\special{pa 305 -347}%
-\special{pa 314 -299}\special{pa 329 -252}\special{pa 349 -207}\special{pa 375 -165}%
-\special{pa 407 -126}\special{pa 442 -92}\special{pa 482 -63}\special{pa 525 -39}%
-\special{pa 571 -20}\special{pa 619 -8}%
-\special{fp}%
-\special{pn 8}%
-\special{pn 2}%
-\special{pa 418 -553}\special{pa 411 -556}\special{pa 404 -555}\special{pa 399 -550}%
-\special{pa 398 -543}\special{pa 401 -536}\special{pa 407 -533}\special{pa 415 -534}%
-\special{pa 420 -539}\special{pa 421 -546}\special{pa 418 -553}\special{sh 1}\special{fp}%
-\special{pa 622 -30}\special{pa 669 -14}\special{pa 718 -4}\special{pa 767 0}\special{pa 816 -2}%
-\special{pa 865 -11}\special{pa 912 -25}\special{pa 957 -46}\special{pa 999 -72}\special{pa 1038 -103}%
-\special{pa 1072 -138}\special{pa 1102 -178}\special{pa 1127 -220}\special{pa 1146 -266}%
-\special{pa 1159 -314}\special{pa 1166 -363}\special{pa 1166 -412}\special{pa 1161 -461}%
-\special{pa 1149 -509}\special{pa 1132 -556}\special{pa 1109 -599}\special{pa 1080 -640}%
-\special{pa 1047 -676}\special{pa 1009 -709}\special{pa 968 -736}\special{pa 924 -757}%
-\special{pa 877 -773}\special{pa 829 -783}\special{pa 779 -787}\special{pa 730 -785}%
-\special{pa 681 -777}\special{pa 634 -762}\special{pa 589 -742}\special{pa 547 -716}%
-\special{pa 508 -685}\special{pa 474 -649}\special{pa 444 -610}\special{pa 419 -567}%
-\special{pa 401 -521}\special{pa 388 -474}\special{pa 381 -425}\special{pa 380 -375}%
-\special{pa 385 -326}\special{pa 397 -278}\special{pa 414 -232}\special{pa 437 -188}%
-\special{pa 466 -148}\special{pa 499 -111}\special{pa 537 -79}\special{pa 578 -52}%
-\special{pa 622 -30}%
-\special{fp}%
-\special{pn 8}%
-\special{pn 2}%
-\special{pa 531 -621}\special{pa 525 -624}\special{pa 518 -623}\special{pa 512 -618}%
-\special{pa 511 -611}\special{pa 515 -604}\special{pa 521 -601}\special{pa 528 -602}%
-\special{pa 534 -607}\special{pa 535 -614}\special{pa 531 -621}\special{sh 1}\special{fp}%
-\special{pa 632 -66}\special{pa 674 -42}\special{pa 720 -22}\special{pa 767 -9}\special{pa 816 -1}%
-\special{pa 866 0}\special{pa 915 -5}\special{pa 963 -17}\special{pa 1010 -34}\special{pa 1053 -56}%
-\special{pa 1094 -85}\special{pa 1131 -118}\special{pa 1163 -155}\special{pa 1191 -196}%
-\special{pa 1213 -240}\special{pa 1229 -287}\special{pa 1240 -335}\special{pa 1244 -384}%
-\special{pa 1242 -434}\special{pa 1234 -483}\special{pa 1220 -530}\special{pa 1200 -575}%
-\special{pa 1174 -618}\special{pa 1144 -656}\special{pa 1108 -691}\special{pa 1069 -721}%
-\special{pa 1026 -746}\special{pa 981 -765}\special{pa 933 -779}\special{pa 884 -786}%
-\special{pa 835 -787}\special{pa 786 -782}\special{pa 738 -771}\special{pa 691 -754}%
-\special{pa 647 -731}\special{pa 607 -703}\special{pa 570 -670}\special{pa 537 -633}%
-\special{pa 510 -591}\special{pa 488 -547}\special{pa 471 -501}\special{pa 461 -452}%
-\special{pa 457 -403}\special{pa 459 -354}\special{pa 467 -305}\special{pa 481 -257}%
-\special{pa 501 -212}\special{pa 526 -170}\special{pa 557 -131}\special{pa 592 -96}%
-\special{pa 632 -66}%
-\special{fp}%
-\special{pn 8}%
-\special{pn 2}%
-\special{pa 658 -680}\special{pa 651 -684}\special{pa 644 -683}\special{pa 639 -677}%
-\special{pa 638 -670}\special{pa 641 -664}\special{pa 647 -660}\special{pa 655 -662}%
-\special{pa 660 -667}\special{pa 661 -674}\special{pa 658 -680}\special{sh 1}\special{fp}%
-\special{pa 649 -115}\special{pa 686 -83}\special{pa 727 -55}\special{pa 771 -32}%
-\special{pa 818 -16}\special{pa 866 -5}\special{pa 915 0}\special{pa 965 -2}\special{pa 1014 -9}%
-\special{pa 1061 -23}\special{pa 1106 -43}\special{pa 1149 -68}\special{pa 1188 -98}%
-\special{pa 1223 -133}\special{pa 1253 -172}\special{pa 1278 -215}\special{pa 1298 -260}%
-\special{pa 1312 -308}\special{pa 1320 -357}\special{pa 1321 -406}\special{pa 1316 -455}%
-\special{pa 1306 -504}\special{pa 1289 -550}\special{pa 1267 -594}\special{pa 1239 -635}%
-\special{pa 1206 -672}\special{pa 1169 -705}\special{pa 1128 -733}\special{pa 1084 -755}%
-\special{pa 1037 -772}\special{pa 989 -783}\special{pa 940 -787}\special{pa 891 -786}%
-\special{pa 842 -778}\special{pa 794 -764}\special{pa 749 -744}\special{pa 706 -719}%
-\special{pa 667 -689}\special{pa 632 -654}\special{pa 602 -615}\special{pa 577 -572}%
-\special{pa 557 -527}\special{pa 543 -480}\special{pa 536 -431}\special{pa 534 -381}%
-\special{pa 539 -332}\special{pa 550 -284}\special{pa 566 -237}\special{pa 589 -193}%
-\special{pa 617 -152}\special{pa 649 -115}%
-\special{fp}%
-\special{pn 8}%
-\special{pn 2}%
-\special{pa 795 -729}\special{pa 788 -733}\special{pa 781 -732}\special{pa 776 -726}%
-\special{pa 775 -719}\special{pa 778 -713}\special{pa 784 -709}\special{pa 792 -711}%
-\special{pa 797 -716}\special{pa 798 -723}\special{pa 795 -729}\special{sh 1}\special{fp}%
-\special{pa 678 -175}\special{pa 708 -136}\special{pa 742 -100}\special{pa 781 -70}%
-\special{pa 823 -44}\special{pa 869 -24}\special{pa 916 -10}\special{pa 965 -2}\special{pa 1014 0}%
-\special{pa 1063 -4}\special{pa 1112 -15}\special{pa 1158 -31}\special{pa 1203 -53}%
-\special{pa 1244 -81}\special{pa 1281 -113}\special{pa 1314 -150}\special{pa 1342 -191}%
-\special{pa 1365 -235}\special{pa 1382 -281}\special{pa 1393 -329}\special{pa 1398 -378}%
-\special{pa 1397 -428}\special{pa 1390 -477}\special{pa 1376 -524}\special{pa 1357 -570}%
-\special{pa 1332 -612}\special{pa 1302 -652}\special{pa 1268 -687}\special{pa 1229 -718}%
-\special{pa 1186 -743}\special{pa 1141 -763}\special{pa 1094 -777}\special{pa 1045 -785}%
-\special{pa 996 -787}\special{pa 946 -783}\special{pa 898 -773}\special{pa 851 -756}%
-\special{pa 807 -734}\special{pa 766 -707}\special{pa 729 -674}\special{pa 696 -637}%
-\special{pa 668 -597}\special{pa 645 -553}\special{pa 628 -507}\special{pa 617 -458}%
-\special{pa 612 -409}\special{pa 613 -360}\special{pa 620 -311}\special{pa 633 -263}%
-\special{pa 653 -218}\special{pa 678 -175}%
-\special{fp}%
-\special{pn 8}%
-\special{pn 2}%
-\special{pa 940 -766}\special{pa 933 -769}\special{pa 926 -768}\special{pa 921 -763}%
-\special{pa 920 -756}\special{pa 923 -749}\special{pa 930 -746}\special{pa 937 -747}%
-\special{pa 942 -752}\special{pa 943 -759}\special{pa 940 -766}\special{sh 1}\special{fp}%
-\special{pa 719 -243}\special{pa 740 -199}\special{pa 767 -157}\special{pa 800 -120}%
-\special{pa 836 -86}\special{pa 877 -58}\special{pa 920 -35}\special{pa 966 -17}\special{pa 1015 -6}%
-\special{pa 1064 0}\special{pa 1113 -1}\special{pa 1162 -8}\special{pa 1210 -21}\special{pa 1255 -40}%
-\special{pa 1298 -65}\special{pa 1338 -94}\special{pa 1373 -129}\special{pa 1404 -167}%
-\special{pa 1430 -209}\special{pa 1451 -255}\special{pa 1465 -302}\special{pa 1474 -351}%
-\special{pa 1476 -400}\special{pa 1472 -449}\special{pa 1462 -498}\special{pa 1446 -544}%
-\special{pa 1424 -589}\special{pa 1397 -630}\special{pa 1365 -668}\special{pa 1328 -701}%
-\special{pa 1288 -729}\special{pa 1244 -753}\special{pa 1198 -770}\special{pa 1150 -782}%
-\special{pa 1101 -787}\special{pa 1051 -786}\special{pa 1002 -779}\special{pa 955 -766}%
-\special{pa 909 -747}\special{pa 866 -723}\special{pa 827 -693}\special{pa 791 -659}%
-\special{pa 760 -620}\special{pa 734 -578}\special{pa 714 -533}\special{pa 699 -486}%
-\special{pa 691 -437}\special{pa 689 -388}\special{pa 692 -338}\special{pa 702 -290}%
-\special{pa 719 -243}%
-\special{fp}%
-\special{pn 8}%
-\special{pn 2}%
-\special{pa 1091 -788}\special{pa 1085 -792}\special{pa 1077 -790}\special{pa 1072 -785}%
-\special{pa 1071 -778}\special{pa 1074 -771}\special{pa 1081 -768}\special{pa 1088 -769}%
-\special{pa 1093 -774}\special{pa 1094 -782}\special{pa 1091 -788}\special{sh 1}\special{fp}%
-\special{pa 773 -317}\special{pa 786 -269}\special{pa 805 -223}\special{pa 829 -180}%
-\special{pa 858 -140}\special{pa 892 -105}\special{pa 931 -73}\special{pa 973 -47}%
-\special{pa 1017 -27}\special{pa 1065 -12}\special{pa 1113 -3}\special{pa 1163 0}%
-\special{pa 1212 -4}\special{pa 1260 -13}\special{pa 1307 -29}\special{pa 1352 -50}%
-\special{pa 1393 -77}\special{pa 1431 -109}\special{pa 1465 -145}\special{pa 1494 -185}%
-\special{pa 1517 -229}\special{pa 1535 -275}\special{pa 1547 -323}\special{pa 1553 -372}%
-\special{pa 1552 -422}\special{pa 1546 -471}\special{pa 1533 -518}\special{pa 1514 -564}%
-\special{pa 1490 -607}\special{pa 1461 -647}\special{pa 1427 -683}\special{pa 1388 -714}%
-\special{pa 1346 -740}\special{pa 1302 -761}\special{pa 1254 -776}\special{pa 1206 -785}%
-\special{pa 1156 -787}\special{pa 1107 -784}\special{pa 1059 -774}\special{pa 1012 -759}%
-\special{pa 967 -737}\special{pa 926 -710}\special{pa 888 -679}\special{pa 854 -642}%
-\special{pa 825 -602}\special{pa 802 -559}\special{pa 784 -512}\special{pa 772 -464}%
-\special{pa 766 -415}\special{pa 767 -366}\special{pa 773 -317}%
-\special{fp}%
-\special{pn 8}%
-\special{pn 2}%
-\special{pa 1245 -796}\special{pa 1239 -799}\special{pa 1231 -798}\special{pa 1226 -793}%
-\special{pa 1225 -786}\special{pa 1228 -779}\special{pa 1235 -776}\special{pa 1242 -777}%
-\special{pa 1247 -782}\special{pa 1249 -789}\special{pa 1245 -796}\special{sh 1}\special{fp}%
-\special{pa 843 -394}\special{pa 846 -344}\special{pa 856 -296}\special{pa 871 -249}%
-\special{pa 892 -204}\special{pa 918 -162}\special{pa 950 -124}\special{pa 986 -90}%
-\special{pa 1026 -61}\special{pa 1069 -37}\special{pa 1115 -19}\special{pa 1163 -7}%
-\special{pa 1212 -1}\special{pa 1262 -1}\special{pa 1311 -7}\special{pa 1359 -19}%
-\special{pa 1404 -37}\special{pa 1448 -61}\special{pa 1488 -90}\special{pa 1524 -124}%
-\special{pa 1555 -162}\special{pa 1582 -204}\special{pa 1603 -249}\special{pa 1618 -296}%
-\special{pa 1627 -344}\special{pa 1631 -394}\special{pa 1627 -443}\special{pa 1618 -492}%
-\special{pa 1603 -539}\special{pa 1582 -583}\special{pa 1555 -625}\special{pa 1524 -663}%
-\special{pa 1488 -697}\special{pa 1448 -726}\special{pa 1404 -750}\special{pa 1359 -768}%
-\special{pa 1311 -780}\special{pa 1262 -787}\special{pa 1212 -787}\special{pa 1163 -780}%
-\special{pa 1115 -768}\special{pa 1069 -750}\special{pa 1026 -726}\special{pa 986 -697}%
-\special{pa 950 -663}\special{pa 918 -625}\special{pa 892 -583}\special{pa 871 -539}%
-\special{pa 856 -492}\special{pa 846 -443}\special{pa 843 -394}%
-\special{fp}%
-\special{pn 8}%
-\special{pn 2}%
-\special{pa 1399 -788}\special{pa 1393 -792}\special{pa 1386 -790}\special{pa 1380 -785}%
-\special{pa 1379 -778}\special{pa 1383 -771}\special{pa 1389 -768}\special{pa 1396 -769}%
-\special{pa 1401 -774}\special{pa 1403 -782}\special{pa 1399 -788}\special{sh 1}\special{fp}%
-\special{pa 928 -471}\special{pa 921 -422}\special{pa 921 -372}\special{pa 927 -323}%
-\special{pa 939 -275}\special{pa 957 -229}\special{pa 980 -185}\special{pa 1009 -145}%
-\special{pa 1042 -109}\special{pa 1080 -77}\special{pa 1122 -50}\special{pa 1166 -29}%
-\special{pa 1213 -13}\special{pa 1262 -4}\special{pa 1311 0}\special{pa 1360 -3}\special{pa 1409 -12}%
-\special{pa 1456 -27}\special{pa 1501 -47}\special{pa 1543 -73}\special{pa 1581 -105}%
-\special{pa 1616 -140}\special{pa 1645 -180}\special{pa 1669 -223}\special{pa 1688 -269}%
-\special{pa 1700 -317}\special{pa 1707 -366}\special{pa 1707 -415}\special{pa 1701 -464}%
-\special{pa 1690 -512}\special{pa 1672 -559}\special{pa 1648 -602}\special{pa 1619 -642}%
-\special{pa 1586 -679}\special{pa 1548 -710}\special{pa 1507 -737}\special{pa 1462 -759}%
-\special{pa 1415 -774}\special{pa 1367 -784}\special{pa 1317 -787}\special{pa 1268 -785}%
-\special{pa 1219 -776}\special{pa 1172 -761}\special{pa 1127 -740}\special{pa 1085 -714}%
-\special{pa 1047 -683}\special{pa 1013 -647}\special{pa 983 -607}\special{pa 959 -564}%
-\special{pa 941 -518}\special{pa 928 -471}%
-\special{fp}%
-\special{pn 8}%
-\special{pn 2}%
-\special{pa 1550 -766}\special{pa 1544 -769}\special{pa 1537 -768}\special{pa 1532 -763}%
-\special{pa 1530 -756}\special{pa 1534 -749}\special{pa 1540 -746}\special{pa 1547 -747}%
-\special{pa 1553 -752}\special{pa 1554 -759}\special{pa 1550 -766}\special{sh 1}\special{fp}%
-\special{pa 1028 -544}\special{pa 1012 -498}\special{pa 1002 -449}\special{pa 998 -400}%
-\special{pa 1000 -350}\special{pa 1009 -302}\special{pa 1023 -255}\special{pa 1044 -209}%
-\special{pa 1069 -167}\special{pa 1100 -129}\special{pa 1136 -94}\special{pa 1175 -65}%
-\special{pa 1218 -40}\special{pa 1264 -21}\special{pa 1312 -8}\special{pa 1361 -1}%
-\special{pa 1410 0}\special{pa 1459 -6}\special{pa 1507 -17}\special{pa 1553 -35}%
-\special{pa 1597 -58}\special{pa 1638 -86}\special{pa 1674 -120}\special{pa 1706 -157}%
-\special{pa 1733 -199}\special{pa 1755 -243}\special{pa 1771 -290}\special{pa 1781 -338}%
-\special{pa 1785 -388}\special{pa 1783 -437}\special{pa 1774 -486}\special{pa 1760 -533}%
-\special{pa 1739 -578}\special{pa 1714 -620}\special{pa 1683 -659}\special{pa 1647 -693}%
-\special{pa 1608 -723}\special{pa 1565 -747}\special{pa 1519 -766}\special{pa 1471 -779}%
-\special{pa 1422 -786}\special{pa 1373 -787}\special{pa 1324 -782}\special{pa 1276 -770}%
-\special{pa 1229 -753}\special{pa 1186 -729}\special{pa 1145 -701}\special{pa 1109 -668}%
-\special{pa 1077 -630}\special{pa 1049 -589}\special{pa 1028 -544}%
-\special{fp}%
-\special{pn 8}%
-\special{pn 2}%
-\special{pa 1696 -729}\special{pa 1689 -733}\special{pa 1682 -732}\special{pa 1677 -726}%
-\special{pa 1676 -719}\special{pa 1679 -713}\special{pa 1686 -709}\special{pa 1693 -711}%
-\special{pa 1698 -716}\special{pa 1699 -723}\special{pa 1696 -729}\special{sh 1}\special{fp}%
-\special{pa 1141 -612}\special{pa 1117 -570}\special{pa 1097 -524}\special{pa 1084 -477}%
-\special{pa 1077 -428}\special{pa 1075 -378}\special{pa 1080 -329}\special{pa 1092 -281}%
-\special{pa 1109 -235}\special{pa 1131 -191}\special{pa 1160 -150}\special{pa 1193 -113}%
-\special{pa 1230 -81}\special{pa 1271 -53}\special{pa 1315 -31}\special{pa 1362 -15}%
-\special{pa 1410 -4}\special{pa 1459 0}\special{pa 1509 -2}\special{pa 1558 -10}\special{pa 1605 -24}%
-\special{pa 1650 -44}\special{pa 1693 -70}\special{pa 1731 -100}\special{pa 1766 -136}%
-\special{pa 1796 -175}\special{pa 1821 -218}\special{pa 1840 -263}\special{pa 1854 -311}%
-\special{pa 1861 -360}\special{pa 1862 -409}\special{pa 1857 -458}\special{pa 1846 -507}%
-\special{pa 1829 -553}\special{pa 1806 -597}\special{pa 1778 -637}\special{pa 1745 -674}%
-\special{pa 1708 -707}\special{pa 1666 -734}\special{pa 1622 -756}\special{pa 1576 -773}%
-\special{pa 1527 -783}\special{pa 1478 -787}\special{pa 1429 -785}\special{pa 1380 -777}%
-\special{pa 1332 -763}\special{pa 1287 -743}\special{pa 1245 -718}\special{pa 1206 -687}%
-\special{pa 1171 -652}\special{pa 1141 -612}%
-\special{fp}%
-\special{pn 8}%
-\special{pn 2}%
-\special{pa 1833 -680}\special{pa 1826 -684}\special{pa 1819 -683}\special{pa 1814 -677}%
-\special{pa 1813 -670}\special{pa 1816 -664}\special{pa 1823 -660}\special{pa 1830 -662}%
-\special{pa 1835 -667}\special{pa 1836 -674}\special{pa 1833 -680}\special{sh 1}\special{fp}%
-\special{pa 1268 -672}\special{pa 1235 -635}\special{pa 1207 -594}\special{pa 1185 -550}%
-\special{pa 1168 -504}\special{pa 1157 -455}\special{pa 1153 -406}\special{pa 1154 -357}%
-\special{pa 1162 -308}\special{pa 1176 -260}\special{pa 1195 -215}\special{pa 1220 -172}%
-\special{pa 1251 -133}\special{pa 1286 -98}\special{pa 1325 -68}\special{pa 1367 -43}%
-\special{pa 1413 -23}\special{pa 1460 -9}\special{pa 1509 -2}\special{pa 1558 0}\special{pa 1608 -5}%
-\special{pa 1656 -16}\special{pa 1702 -32}\special{pa 1746 -55}\special{pa 1787 -83}%
-\special{pa 1824 -115}\special{pa 1857 -152}\special{pa 1885 -193}\special{pa 1907 -237}%
-\special{pa 1924 -284}\special{pa 1935 -332}\special{pa 1940 -381}\special{pa 1938 -431}%
-\special{pa 1930 -480}\special{pa 1916 -527}\special{pa 1897 -572}\special{pa 1872 -615}%
-\special{pa 1841 -654}\special{pa 1806 -689}\special{pa 1767 -719}\special{pa 1725 -744}%
-\special{pa 1679 -764}\special{pa 1632 -778}\special{pa 1583 -786}\special{pa 1534 -787}%
-\special{pa 1484 -783}\special{pa 1436 -772}\special{pa 1390 -755}\special{pa 1346 -733}%
-\special{pa 1305 -705}\special{pa 1268 -672}%
-\special{fp}%
-\special{pn 8}%
-\special{pn 2}%
-\special{pa 1959 -621}\special{pa 1953 -624}\special{pa 1945 -623}\special{pa 1940 -618}%
-\special{pa 1939 -611}\special{pa 1942 -604}\special{pa 1949 -601}\special{pa 1956 -602}%
-\special{pa 1961 -607}\special{pa 1962 -614}\special{pa 1959 -621}\special{sh 1}\special{fp}%
-\special{pa 1405 -721}\special{pa 1365 -691}\special{pa 1330 -656}\special{pa 1299 -618}%
-\special{pa 1274 -575}\special{pa 1254 -530}\special{pa 1240 -483}\special{pa 1232 -434}%
-\special{pa 1230 -384}\special{pa 1234 -335}\special{pa 1244 -287}\special{pa 1261 -240}%
-\special{pa 1283 -196}\special{pa 1310 -155}\special{pa 1343 -118}\special{pa 1380 -85}%
-\special{pa 1420 -56}\special{pa 1464 -34}\special{pa 1511 -17}\special{pa 1559 -5}%
-\special{pa 1608 0}\special{pa 1657 -1}\special{pa 1706 -9}\special{pa 1754 -22}\special{pa 1799 -42}%
-\special{pa 1842 -66}\special{pa 1881 -96}\special{pa 1917 -131}\special{pa 1947 -170}%
-\special{pa 1973 -212}\special{pa 1993 -257}\special{pa 2007 -305}\special{pa 2015 -354}%
-\special{pa 2017 -403}\special{pa 2013 -452}\special{pa 2002 -501}\special{pa 1986 -547}%
-\special{pa 1964 -591}\special{pa 1936 -633}\special{pa 1904 -670}\special{pa 1867 -703}%
-\special{pa 1826 -731}\special{pa 1783 -754}\special{pa 1736 -771}\special{pa 1688 -782}%
-\special{pa 1639 -787}\special{pa 1589 -786}\special{pa 1540 -779}\special{pa 1493 -765}%
-\special{pa 1447 -746}\special{pa 1405 -721}%
-\special{fp}%
-\special{pn 8}%
-\special{pn 2}%
-\special{pa 2073 -553}\special{pa 2066 -556}\special{pa 2059 -555}\special{pa 2054 -550}%
-\special{pa 2053 -543}\special{pa 2056 -536}\special{pa 2063 -533}\special{pa 2070 -534}%
-\special{pa 2075 -539}\special{pa 2076 -546}\special{pa 2073 -553}\special{sh 1}\special{fp}%
-\special{pa 1550 -757}\special{pa 1506 -736}\special{pa 1464 -709}\special{pa 1427 -676}%
-\special{pa 1393 -640}\special{pa 1365 -599}\special{pa 1342 -556}\special{pa 1324 -509}%
-\special{pa 1313 -461}\special{pa 1307 -412}\special{pa 1308 -363}\special{pa 1315 -314}%
-\special{pa 1328 -266}\special{pa 1347 -220}\special{pa 1372 -178}\special{pa 1401 -138}%
-\special{pa 1436 -103}\special{pa 1474 -72}\special{pa 1516 -46}\special{pa 1562 -25}%
-\special{pa 1609 -11}\special{pa 1657 -2}\special{pa 1707 0}\special{pa 1756 -4}\special{pa 1805 -14}%
-\special{pa 1851 -30}\special{pa 1896 -52}\special{pa 1937 -79}\special{pa 1975 -111}%
-\special{pa 2008 -148}\special{pa 2036 -188}\special{pa 2059 -232}\special{pa 2077 -278}%
-\special{pa 2089 -326}\special{pa 2094 -375}\special{pa 2093 -425}\special{pa 2086 -474}%
-\special{pa 2073 -521}\special{pa 2054 -567}\special{pa 2030 -610}\special{pa 2000 -649}%
-\special{pa 1966 -685}\special{pa 1927 -716}\special{pa 1885 -742}\special{pa 1840 -762}%
-\special{pa 1793 -777}\special{pa 1744 -785}\special{pa 1694 -787}\special{pa 1645 -783}%
-\special{pa 1597 -773}\special{pa 1550 -757}%
-\special{fp}%
-\special{pn 8}%
-\special{pn 2}%
-\special{pa 2172 -479}\special{pa 2166 -482}\special{pa 2159 -481}\special{pa 2154 -476}%
-\special{pa 2152 -469}\special{pa 2156 -462}\special{pa 2162 -459}\special{pa 2169 -460}%
-\special{pa 2175 -465}\special{pa 2176 -472}\special{pa 2172 -479}\special{sh 1}\special{fp}%
-\special{pa 1701 -780}\special{pa 1653 -767}\special{pa 1608 -749}\special{pa 1564 -724}%
-\special{pa 1525 -695}\special{pa 1489 -661}\special{pa 1458 -623}\special{pa 1431 -581}%
-\special{pa 1411 -536}\special{pa 1396 -489}\special{pa 1387 -440}\special{pa 1384 -391}%
-\special{pa 1388 -341}\special{pa 1397 -293}\special{pa 1413 -246}\special{pa 1434 -201}%
-\special{pa 1461 -160}\special{pa 1493 -122}\special{pa 1529 -88}\special{pa 1570 -60}%
-\special{pa 1613 -36}\special{pa 1659 -18}\special{pa 1707 -6}\special{pa 1756 -1}%
-\special{pa 1806 -1}\special{pa 1855 -8}\special{pa 1903 -20}\special{pa 1948 -39}%
-\special{pa 1992 -63}\special{pa 2031 -92}\special{pa 2067 -126}\special{pa 2098 -165}%
-\special{pa 2124 -207}\special{pa 2145 -252}\special{pa 2160 -299}\special{pa 2169 -347}%
-\special{pa 2172 -397}\special{pa 2168 -446}\special{pa 2159 -495}\special{pa 2143 -542}%
-\special{pa 2121 -586}\special{pa 2095 -628}\special{pa 2063 -665}\special{pa 2027 -699}%
-\special{pa 1986 -728}\special{pa 1943 -751}\special{pa 1897 -769}\special{pa 1849 -781}%
-\special{pa 1800 -787}\special{pa 1750 -786}\special{pa 1701 -780}%
-\special{fp}%
-\special{pn 8}%
-\special{pn 2}%
-\special{pa 2257 -402}\special{pa 2251 -405}\special{pa 2244 -404}\special{pa 2238 -399}%
-\special{pa 2237 -392}\special{pa 2241 -385}\special{pa 2247 -382}\special{pa 2254 -383}%
-\special{pa 2259 -388}\special{pa 2261 -396}\special{pa 2257 -402}\special{sh 1}\special{fp}%
-\special{pa 1855 -787}\special{pa 1806 -784}\special{pa 1757 -775}\special{pa 1710 -760}%
-\special{pa 1666 -739}\special{pa 1624 -712}\special{pa 1586 -681}\special{pa 1552 -645}%
-\special{pa 1523 -605}\special{pa 1499 -561}\special{pa 1481 -515}\special{pa 1469 -467}%
-\special{pa 1462 -418}\special{pa 1462 -369}\special{pa 1469 -320}\special{pa 1481 -272}%
-\special{pa 1499 -226}\special{pa 1523 -183}\special{pa 1552 -143}\special{pa 1586 -107}%
-\special{pa 1624 -75}\special{pa 1666 -49}\special{pa 1710 -28}\special{pa 1757 -12}%
-\special{pa 1806 -3}\special{pa 1855 0}\special{pa 1905 -3}\special{pa 1953 -12}\special{pa 2000 -28}%
-\special{pa 2045 -49}\special{pa 2087 -75}\special{pa 2125 -107}\special{pa 2159 -143}%
-\special{pa 2188 -183}\special{pa 2212 -226}\special{pa 2230 -272}\special{pa 2242 -320}%
-\special{pa 2248 -369}\special{pa 2248 -418}\special{pa 2242 -467}\special{pa 2230 -515}%
-\special{pa 2212 -561}\special{pa 2188 -605}\special{pa 2159 -645}\special{pa 2125 -681}%
-\special{pa 2087 -712}\special{pa 2045 -739}\special{pa 2000 -760}\special{pa 1953 -775}%
-\special{pa 1905 -784}\special{pa 1855 -787}%
-\special{fp}%
-\special{pn 8}%
-\special{pn 2}%
-\special{pa 2327 -325}\special{pa 2321 -329}\special{pa 2313 -327}\special{pa 2308 -322}%
-\special{pa 2307 -315}\special{pa 2310 -309}\special{pa 2317 -305}\special{pa 2324 -306}%
-\special{pa 2329 -312}\special{pa 2330 -319}\special{pa 2327 -325}\special{sh 1}\special{fp}%
-\special{pa 2009 -780}\special{pa 1960 -786}\special{pa 1911 -787}\special{pa 1862 -781}%
-\special{pa 1814 -769}\special{pa 1768 -751}\special{pa 1724 -728}\special{pa 1684 -699}%
-\special{pa 1648 -665}\special{pa 1616 -628}\special{pa 1589 -586}\special{pa 1568 -542}%
-\special{pa 1552 -495}\special{pa 1542 -446}\special{pa 1539 -397}\special{pa 1542 -347}%
-\special{pa 1550 -299}\special{pa 1565 -252}\special{pa 1586 -207}\special{pa 1612 -165}%
-\special{pa 1643 -126}\special{pa 1679 -92}\special{pa 1719 -63}\special{pa 1762 -39}%
-\special{pa 1808 -20}\special{pa 1856 -8}\special{pa 1905 -1}\special{pa 1954 -1}%
-\special{pa 2003 -6}\special{pa 2051 -18}\special{pa 2097 -36}\special{pa 2141 -60}%
-\special{pa 2181 -88}\special{pa 2217 -122}\special{pa 2249 -160}\special{pa 2276 -201}%
-\special{pa 2297 -246}\special{pa 2313 -293}\special{pa 2323 -341}\special{pa 2326 -391}%
-\special{pa 2324 -440}\special{pa 2315 -489}\special{pa 2300 -536}\special{pa 2279 -581}%
-\special{pa 2253 -623}\special{pa 2222 -661}\special{pa 2186 -695}\special{pa 2146 -724}%
-\special{pa 2103 -749}\special{pa 2057 -767}\special{pa 2009 -780}%
-\special{fp}%
-\special{pn 8}%
-\special{pn 2}%
-\special{pa 2382 -251}\special{pa 2375 -255}\special{pa 2368 -254}\special{pa 2363 -248}%
-\special{pa 2362 -241}\special{pa 2365 -235}\special{pa 2372 -231}\special{pa 2379 -233}%
-\special{pa 2384 -238}\special{pa 2385 -245}\special{pa 2382 -251}\special{sh 1}\special{fp}%
-\special{pa 2161 -757}\special{pa 2114 -773}\special{pa 2065 -783}\special{pa 2016 -787}%
-\special{pa 1967 -785}\special{pa 1918 -777}\special{pa 1871 -762}\special{pa 1826 -742}%
-\special{pa 1783 -716}\special{pa 1745 -685}\special{pa 1711 -649}\special{pa 1681 -610}%
-\special{pa 1656 -567}\special{pa 1637 -521}\special{pa 1624 -474}\special{pa 1617 -425}%
-\special{pa 1617 -375}\special{pa 1622 -326}\special{pa 1634 -278}\special{pa 1651 -232}%
-\special{pa 1674 -188}\special{pa 1703 -148}\special{pa 1736 -111}\special{pa 1773 -79}%
-\special{pa 1815 -52}\special{pa 1859 -30}\special{pa 1906 -14}\special{pa 1954 -4}%
-\special{pa 2004 0}\special{pa 2053 -2}\special{pa 2102 -11}\special{pa 2149 -25}%
-\special{pa 2194 -46}\special{pa 2236 -72}\special{pa 2275 -103}\special{pa 2309 -138}%
-\special{pa 2339 -178}\special{pa 2363 -220}\special{pa 2382 -266}\special{pa 2395 -314}%
-\special{pa 2402 -363}\special{pa 2403 -412}\special{pa 2398 -461}\special{pa 2386 -509}%
-\special{pa 2369 -556}\special{pa 2346 -599}\special{pa 2317 -640}\special{pa 2284 -676}%
-\special{pa 2246 -709}\special{pa 2205 -736}\special{pa 2161 -757}%
-\special{fp}%
-\special{pn 8}%
-\special{pn 2}%
-\special{pa 2423 -183}\special{pa 2416 -187}\special{pa 2409 -185}\special{pa 2404 -180}%
-\special{pa 2403 -173}\special{pa 2406 -167}\special{pa 2413 -163}\special{pa 2420 -164}%
-\special{pa 2425 -170}\special{pa 2426 -177}\special{pa 2423 -183}\special{sh 1}\special{fp}%
-\special{pa 2306 -721}\special{pa 2263 -746}\special{pa 2218 -765}\special{pa 2170 -779}%
-\special{pa 2121 -786}\special{pa 2072 -787}\special{pa 2023 -782}\special{pa 1974 -771}%
-\special{pa 1928 -754}\special{pa 1884 -731}\special{pa 1843 -703}\special{pa 1807 -670}%
-\special{pa 1774 -633}\special{pa 1747 -591}\special{pa 1725 -547}\special{pa 1708 -501}%
-\special{pa 1698 -452}\special{pa 1694 -403}\special{pa 1696 -354}\special{pa 1704 -305}%
-\special{pa 1718 -257}\special{pa 1738 -212}\special{pa 1763 -170}\special{pa 1794 -131}%
-\special{pa 1829 -96}\special{pa 1868 -66}\special{pa 1911 -42}\special{pa 1957 -22}%
-\special{pa 2004 -9}\special{pa 2053 -1}\special{pa 2103 0}\special{pa 2152 -5}\special{pa 2200 -17}%
-\special{pa 2246 -34}\special{pa 2290 -56}\special{pa 2331 -85}\special{pa 2368 -118}%
-\special{pa 2400 -155}\special{pa 2428 -196}\special{pa 2450 -240}\special{pa 2466 -287}%
-\special{pa 2477 -335}\special{pa 2481 -384}\special{pa 2479 -434}\special{pa 2471 -483}%
-\special{pa 2457 -530}\special{pa 2437 -575}\special{pa 2411 -618}\special{pa 2380 -656}%
-\special{pa 2345 -691}\special{pa 2306 -721}%
-\special{fp}%
-\special{pn 8}%
-\special{pn 2}%
-\special{pa 2451 -124}\special{pa 2445 -127}\special{pa 2438 -126}\special{pa 2432 -121}%
-\special{pa 2431 -113}\special{pa 2435 -107}\special{pa 2441 -104}\special{pa 2448 -105}%
-\special{pa 2453 -110}\special{pa 2455 -117}\special{pa 2451 -124}\special{sh 1}\special{fp}%
-\special{pa 2443 -672}\special{pa 2406 -705}\special{pa 2365 -733}\special{pa 2321 -755}%
-\special{pa 2274 -772}\special{pa 2226 -783}\special{pa 2177 -787}\special{pa 2127 -786}%
-\special{pa 2079 -778}\special{pa 2031 -764}\special{pa 1986 -744}\special{pa 1943 -719}%
-\special{pa 1904 -689}\special{pa 1869 -654}\special{pa 1839 -615}\special{pa 1814 -572}%
-\special{pa 1794 -527}\special{pa 1780 -480}\special{pa 1773 -431}\special{pa 1771 -381}%
-\special{pa 1776 -332}\special{pa 1786 -284}\special{pa 1803 -237}\special{pa 1826 -193}%
-\special{pa 1853 -152}\special{pa 1886 -115}\special{pa 1923 -83}\special{pa 1964 -55}%
-\special{pa 2008 -32}\special{pa 2055 -16}\special{pa 2103 -5}\special{pa 2152 0}%
-\special{pa 2202 -2}\special{pa 2250 -9}\special{pa 2298 -23}\special{pa 2343 -43}%
-\special{pa 2386 -68}\special{pa 2425 -98}\special{pa 2460 -133}\special{pa 2490 -172}%
-\special{pa 2515 -215}\special{pa 2535 -260}\special{pa 2549 -308}\special{pa 2556 -357}%
-\special{pa 2558 -406}\special{pa 2553 -455}\special{pa 2543 -504}\special{pa 2526 -550}%
-\special{pa 2503 -594}\special{pa 2476 -635}\special{pa 2443 -672}%
-\special{fp}%
-\special{pn 8}%
-\special{pn 2}%
-\special{pa 2469 -75}\special{pa 2462 -78}\special{pa 2455 -77}\special{pa 2450 -72}%
-\special{pa 2449 -65}\special{pa 2452 -58}\special{pa 2459 -55}\special{pa 2466 -56}%
-\special{pa 2471 -61}\special{pa 2472 -68}\special{pa 2469 -75}\special{sh 1}\special{fp}%
-\special{pa 2569 -612}\special{pa 2539 -652}\special{pa 2504 -687}\special{pa 2466 -718}%
-\special{pa 2423 -743}\special{pa 2378 -763}\special{pa 2331 -777}\special{pa 2282 -785}%
-\special{pa 2233 -787}\special{pa 2183 -783}\special{pa 2135 -773}\special{pa 2088 -756}%
-\special{pa 2044 -734}\special{pa 2003 -707}\special{pa 1966 -674}\special{pa 1933 -637}%
-\special{pa 1904 -597}\special{pa 1882 -553}\special{pa 1865 -507}\special{pa 1853 -458}%
-\special{pa 1848 -409}\special{pa 1850 -360}\special{pa 1857 -311}\special{pa 1870 -263}%
-\special{pa 1890 -218}\special{pa 1914 -175}\special{pa 1944 -136}\special{pa 1979 -100}%
-\special{pa 2018 -70}\special{pa 2060 -44}\special{pa 2106 -24}\special{pa 2153 -10}%
-\special{pa 2202 -2}\special{pa 2251 0}\special{pa 2300 -4}\special{pa 2349 -15}\special{pa 2395 -31}%
-\special{pa 2440 -53}\special{pa 2481 -81}\special{pa 2518 -113}\special{pa 2551 -150}%
-\special{pa 2579 -191}\special{pa 2602 -235}\special{pa 2619 -281}\special{pa 2630 -329}%
-\special{pa 2635 -378}\special{pa 2634 -428}\special{pa 2627 -477}\special{pa 2613 -524}%
-\special{pa 2594 -570}\special{pa 2569 -612}%
-\special{fp}%
-\special{pn 8}%
-\special{pn 2}%
-\special{pa 2478 -38}\special{pa 2472 -42}\special{pa 2464 -40}\special{pa 2459 -35}%
-\special{pa 2458 -28}\special{pa 2461 -22}\special{pa 2468 -18}\special{pa 2475 -19}%
-\special{pa 2480 -25}\special{pa 2481 -32}\special{pa 2478 -38}\special{sh 1}\special{fp}%
-\special{pa 2683 -544}\special{pa 2661 -589}\special{pa 2634 -630}\special{pa 2602 -668}%
-\special{pa 2565 -701}\special{pa 2525 -729}\special{pa 2481 -753}\special{pa 2435 -770}%
-\special{pa 2387 -782}\special{pa 2338 -787}\special{pa 2288 -786}\special{pa 2239 -779}%
-\special{pa 2192 -766}\special{pa 2146 -747}\special{pa 2103 -723}\special{pa 2063 -693}%
-\special{pa 2028 -659}\special{pa 1997 -620}\special{pa 1971 -578}\special{pa 1951 -533}%
-\special{pa 1936 -486}\special{pa 1928 -437}\special{pa 1925 -388}\special{pa 1929 -338}%
-\special{pa 1939 -290}\special{pa 1955 -243}\special{pa 1977 -199}\special{pa 2004 -157}%
-\special{pa 2036 -120}\special{pa 2073 -86}\special{pa 2113 -58}\special{pa 2157 -35}%
-\special{pa 2203 -17}\special{pa 2251 -6}\special{pa 2301 0}\special{pa 2350 -1}\special{pa 2399 -8}%
-\special{pa 2447 -21}\special{pa 2492 -40}\special{pa 2535 -65}\special{pa 2575 -94}%
-\special{pa 2610 -129}\special{pa 2641 -167}\special{pa 2667 -209}\special{pa 2687 -255}%
-\special{pa 2702 -302}\special{pa 2710 -350}\special{pa 2713 -400}\special{pa 2709 -449}%
-\special{pa 2699 -498}\special{pa 2683 -544}%
-\special{fp}%
-\special{pn 8}%
-\special{pn 2}%
-\special{pa 2482 -16}\special{pa 2475 -19}\special{pa 2468 -18}\special{pa 2463 -13}%
-\special{pa 2462 -6}\special{pa 2465 1}\special{pa 2471 4}\special{pa 2479 3}\special{pa 2484 -2}%
-\special{pa 2485 -9}\special{pa 2482 -16}\special{sh 1}\special{fp}%
-\special{pa 2783 -471}\special{pa 2770 -518}\special{pa 2751 -564}\special{pa 2727 -607}%
-\special{pa 2698 -647}\special{pa 2664 -683}\special{pa 2625 -714}\special{pa 2583 -740}%
-\special{pa 2538 -761}\special{pa 2491 -776}\special{pa 2443 -785}\special{pa 2393 -787}%
-\special{pa 2344 -784}\special{pa 2295 -774}\special{pa 2249 -759}\special{pa 2204 -737}%
-\special{pa 2162 -710}\special{pa 2125 -679}\special{pa 2091 -642}\special{pa 2062 -602}%
-\special{pa 2039 -559}\special{pa 2021 -512}\special{pa 2009 -464}\special{pa 2003 -415}%
-\special{pa 2004 -366}\special{pa 2010 -317}\special{pa 2023 -269}\special{pa 2041 -223}%
-\special{pa 2066 -180}\special{pa 2095 -140}\special{pa 2129 -105}\special{pa 2167 -73}%
-\special{pa 2209 -47}\special{pa 2254 -27}\special{pa 2301 -12}\special{pa 2350 -3}%
-\special{pa 2399 0}\special{pa 2449 -4}\special{pa 2497 -13}\special{pa 2544 -29}%
-\special{pa 2589 -50}\special{pa 2630 -77}\special{pa 2668 -109}\special{pa 2702 -145}%
-\special{pa 2730 -185}\special{pa 2754 -229}\special{pa 2772 -275}\special{pa 2784 -323}%
-\special{pa 2789 -372}\special{pa 2789 -422}\special{pa 2783 -471}%
-\special{fp}%
-\special{pn 8}%
-\special{pn 2}%
-\special{pa 2482 -8}\special{pa 2476 -12}\special{pa 2468 -11}\special{pa 2463 -5}%
-\special{pa 2462 2}\special{pa 2465 8}\special{pa 2472 12}\special{pa 2479 11}\special{pa 2484 5}%
-\special{pa 2485 -2}\special{pa 2482 -8}\special{sh 1}\special{fp}%
-\special{pa 2867 -394}\special{pa 2864 -443}\special{pa 2855 -492}\special{pa 2840 -539}%
-\special{pa 2819 -583}\special{pa 2792 -625}\special{pa 2761 -663}\special{pa 2725 -697}%
-\special{pa 2685 -726}\special{pa 2641 -750}\special{pa 2595 -768}\special{pa 2547 -780}%
-\special{pa 2498 -787}\special{pa 2449 -787}\special{pa 2400 -780}\special{pa 2352 -768}%
-\special{pa 2306 -750}\special{pa 2263 -726}\special{pa 2223 -697}\special{pa 2187 -663}%
-\special{pa 2155 -625}\special{pa 2129 -583}\special{pa 2108 -539}\special{pa 2092 -492}%
-\special{pa 2083 -443}\special{pa 2080 -394}\special{pa 2083 -344}\special{pa 2092 -296}%
-\special{pa 2108 -249}\special{pa 2129 -204}\special{pa 2155 -162}\special{pa 2187 -124}%
-\special{pa 2223 -90}\special{pa 2263 -61}\special{pa 2306 -37}\special{pa 2352 -19}%
-\special{pa 2400 -7}\special{pa 2449 -1}\special{pa 2498 -1}\special{pa 2547 -7}\special{pa 2595 -19}%
-\special{pa 2641 -37}\special{pa 2685 -61}\special{pa 2725 -90}\special{pa 2761 -124}%
-\special{pa 2792 -162}\special{pa 2819 -204}\special{pa 2840 -249}\special{pa 2855 -296}%
-\special{pa 2864 -344}\special{pa 2867 -394}%
-\special{fp}%
-\special{pn 8}%
-\special{pa -594 0}\special{pa 3134 0}%
-\special{fp}%
-\special{pa 0 220}\special{pa 0 -1020}%
-\special{fp}%
-\settowidth{\Width}{$x$}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{$x$}\settodepth{\Depth}{$x$}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(8.0100,0.0000){\hspace*{\Width}\raisebox{\Height}{$x$}}%
-%
-%
-\settowidth{\Width}{$y$}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{$y$}\settodepth{\Depth}{$y$}\setlength{\Height}{\Depth}%
-\put(0.0000,2.6400){\hspace*{\Width}\raisebox{\Height}{$y$}}%
-%
-%
-\settowidth{\Width}{O}\setlength{\Width}{-1\Width}%
-\settoheight{\Height}{O}\settodepth{\Depth}{O}\setlength{\Height}{-\Height}%
-\put(-0.0500,-0.0500){\hspace*{\Width}\raisebox{\Height}{O}}%
-%
-%
-\end{picture}}% \ No newline at end of file
diff --git a/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/anglemark.tex b/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/anglemark.tex
deleted file mode 100644
index 15cf0ed7..00000000
--- a/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/anglemark.tex
+++ /dev/null
@@ -1,48 +0,0 @@
-%%% anglemark.tex 2014-11-10 8:47
-%%% anglemark.sce 2014-11-10 8:36
-{\unitlength=1cm%
-\begin{picture}%
-( 6.00000, 5.00000)( -3.00000, -2.00000)%
-\special{pn 8}%
-%
-\settowidth{\Width}{A}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{A}\settodepth{\Depth}{A}\setlength{\Height}{\Depth}%
-\put(-0.4600,2.1100){\hspace*{\Width}\raisebox{\Height}{A}}%
-%
-%
-\settowidth{\Width}{B}\setlength{\Width}{-1\Width}%
-\settoheight{\Height}{B}\settodepth{\Depth}{B}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(-2.1000,-1.0000){\hspace*{\Width}\raisebox{\Height}{B}}%
-%
-%
-\settowidth{\Width}{C}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{C}\settodepth{\Depth}{C}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(2.1000,-1.0000){\hspace*{\Width}\raisebox{\Height}{C}}%
-%
-%
-\settowidth{\Width}{$\theta$}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{$\theta$}\settodepth{\Depth}{$\theta$}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(-1.3600,-0.6100){\hspace*{\Width}\raisebox{\Height}{$\theta$}}%
-%
-%
-\settowidth{\Width}{$\alpha$}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{$\alpha$}\settodepth{\Depth}{$\alpha$}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(0.1900,-0.1400){\hspace*{\Width}\raisebox{\Height}{$\alpha$}}%
-%
-%
-\special{pn 24}%
-\special{pa 538 89}\special{pa 536 90}\special{pa 500 124}\special{pa 469 162}\special{pa 442 204}%
-\special{pa 421 249}\special{pa 406 296}\special{pa 397 344}\special{pa 394 394}%
-\special{fp}%
-\special{pn 8}%
-\special{pa -181 -791}\special{pa -787 394}\special{pa 787 394}\special{pa -181 -791}%
-\special{fp}%
-\special{pa -271 -616}\special{pa -265 -613}\special{pa -242 -604}\special{pa -218 -598}%
-\special{pa -193 -595}\special{pa -169 -595}\special{pa -144 -598}\special{pa -120 -604}%
-\special{pa -97 -613}\special{pa -76 -625}\special{pa -57 -639}%
-\special{fp}%
-\special{pa -591 394}\special{pa -592 369}\special{pa -597 345}\special{pa -604 321}%
-\special{pa -615 299}\special{pa -628 278}\special{pa -644 259}\special{pa -662 242}%
-\special{pa -682 227}\special{pa -698 219}%
-\special{fp}%
-\end{picture}}% \ No newline at end of file
diff --git a/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/arrowdata.tex b/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/arrowdata.tex
deleted file mode 100644
index 52ab681b..00000000
--- a/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/arrowdata.tex
+++ /dev/null
@@ -1,72 +0,0 @@
-%%% test.tex 2014-11-30 20:20
-%%% test.sce 2014-11-30 20:20
-{\unitlength=6mm%
-\begin{picture}%
-( 12.56000, 5.04000)( -1.00000, -1.00000)%
-\special{pn 8}%
-%
-\special{pa 451 -633}\special{pa 472 -709}\special{pa 411 -660}\special{pa 431 -646}%
-\special{pa 451 -633}\special{sh 1}\special{ip}%
-\special{pn 8}%
-\special{pa 451 -633}\special{pa 472 -709}\special{pa 411 -660}\special{pa 431 -646}%
-\special{pa 451 -633}%
-\special{fp}%
-\special{pn 8}%
-\special{pa 724 -277}\special{pa 709 -354}\special{pa 631 -339}\special{pa 678 -308}%
-\special{pa 724 -277}\special{sh 1}\special{ip}%
-\special{pn 8}%
-\special{pa 724 -277}\special{pa 709 -354}\special{pa 631 -339}\special{pa 678 -308}%
-\special{pa 724 -277}%
-\special{fp}%
-\special{pn 8}%
-\special{pn 16}%
-\special{pa 945 0}\special{pa 1417 -709}%
-\special{fp}%
-\special{pn 8}%
-\special{pa 1375 -557}\special{pa 1417 -709}\special{pa 1294 -611}\special{pa 1334 -584}%
-\special{pa 1375 -557}\special{sh 1}\special{ip}%
-\special{pn 8}%
-\special{pa 1375 -557}\special{pa 1417 -709}\special{pa 1294 -611}\special{pa 1334 -584}%
-\special{pa 1375 -557}%
-\special{fp}%
-\special{pn 8}%
-\special{pa 1417 0}\special{pa 1428 -16}\special{fp}\special{pa 1438 -31}\special{pa 1449 -47}\special{fp}%
-\special{pa 1459 -63}\special{pa 1470 -79}\special{fp}\special{pa 1480 -94}\special{pa 1491 -110}\special{fp}%
-\special{pa 1501 -126}\special{pa 1512 -142}\special{fp}\special{pa 1522 -157}\special{pa 1533 -173}\special{fp}%
-\special{pa 1543 -189}\special{pa 1554 -205}\special{fp}\special{pa 1564 -220}\special{pa 1575 -236}\special{fp}%
-\special{pa 1585 -252}\special{pa 1596 -268}\special{fp}\special{pa 1606 -283}\special{pa 1617 -299}\special{fp}%
-\special{pa 1627 -315}\special{pa 1638 -331}\special{fp}\special{pa 1648 -346}\special{pa 1659 -362}\special{fp}%
-\special{pa 1669 -378}\special{pa 1680 -394}\special{fp}\special{pa 1690 -409}\special{pa 1701 -425}\special{fp}%
-\special{pa 1711 -441}\special{pa 1722 -457}\special{fp}\special{pa 1732 -472}\special{pa 1743 -488}\special{fp}%
-\special{pa 1753 -504}\special{pa 1764 -520}\special{fp}\special{pa 1774 -535}\special{pa 1785 -551}\special{fp}%
-\special{pa 1795 -567}\special{pa 1806 -583}\special{fp}\special{pa 1816 -598}\special{pa 1827 -614}\special{fp}%
-\special{pa 1837 -630}\special{pa 1848 -646}\special{fp}\special{pa 1858 -661}\special{pa 1869 -677}\special{fp}%
-\special{pa 1879 -693}\special{pa 1890 -709}\special{fp}%
-%
-\special{pa 1868 -633}\special{pa 1890 -709}\special{pa 1828 -660}\special{pa 1848 -646}%
-\special{pa 1868 -633}\special{sh 1}\special{ip}%
-\special{pn 8}%
-\special{pa 1868 -633}\special{pa 1890 -709}\special{pa 1828 -660}\special{pa 1848 -646}%
-\special{pa 1868 -633}%
-\special{fp}%
-\special{pn 8}%
-\special{pn 24}%
-\special{pa 1883 10}\special{pa 1896 -10}\special{fp}\special{pa 1926 -54}\special{pa 1939 -74}\special{fp}%
-\special{pa 1969 -119}\special{pa 1982 -139}\special{fp}\special{pa 2012 -183}\special{pa 2025 -203}\special{fp}%
-\special{pa 2055 -248}\special{pa 2068 -268}\special{fp}\special{pa 2098 -312}\special{pa 2111 -332}\special{fp}%
-\special{pa 2141 -377}\special{pa 2154 -397}\special{fp}\special{pa 2184 -441}\special{pa 2197 -461}\special{fp}%
-\special{pa 2227 -505}\special{pa 2240 -525}\special{fp}\special{pa 2270 -570}\special{pa 2283 -590}\special{fp}%
-\special{pa 2313 -634}\special{pa 2326 -654}\special{fp}\special{pa 2356 -699}\special{pa 2369 -719}\special{fp}%
-\special{pn 8}%
-\special{pa 2320 -557}\special{pa 2362 -709}\special{pa 2239 -611}\special{pa 2279 -584}%
-\special{pa 2320 -557}\special{sh 1}\special{ip}%
-\special{pn 8}%
-\special{pa 2320 -557}\special{pa 2362 -709}\special{pa 2239 -611}\special{pa 2279 -584}%
-\special{pa 2320 -557}%
-\special{fp}%
-\special{pn 8}%
-\special{pa 0 0}\special{pa 472 -709}%
-\special{fp}%
-\special{pa 472 0}\special{pa 945 -709}%
-\special{fp}%
-\end{picture}}% \ No newline at end of file
diff --git a/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/arrowhead.tex b/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/arrowhead.tex
deleted file mode 100644
index d61b5ee6..00000000
--- a/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/arrowhead.tex
+++ /dev/null
@@ -1,38 +0,0 @@
-%%% test.tex 2014-10-16 20:32
-%%% test.sce 2014-10-16 20:32
-{\unitlength=1cm%
-\begin{picture}%
-( 4.00000, 3.00000)( -1.00000, -0.50000)%
-\special{pn 8}%
-%
-\special{pa 271 -315}\special{pa 197 -343}\special{pa 240 -277}\special{pa 255 -296}%
-\special{pa 271 -315}\special{sh 1}\special{ip}%
-\special{pn 8}%
-\special{pa 271 -315}\special{pa 197 -343}\special{pa 240 -277}\special{pa 255 -296}%
-\special{pa 271 -315}%
-\special{fp}%
-\special{pn 8}%
-\settowidth{\Width}{θ}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{θ}\settodepth{\Depth}{θ}\setlength{\Height}{\Depth}%
-\put(1.0500,0.5500){\hspace*{\Width}\raisebox{\Height}{θ}}%
-%
-%
-\special{pa 394 0}\special{pa 394 -8}\special{pa 393 -16}\special{pa 393 -25}\special{pa 392 -33}%
-\special{pa 392 -41}\special{pa 391 -49}\special{pa 389 -58}\special{pa 388 -66}\special{pa 387 -74}%
-\special{pa 385 -82}\special{pa 383 -90}\special{pa 381 -98}\special{pa 379 -106}%
-\special{pa 377 -114}\special{pa 374 -122}\special{pa 372 -129}\special{pa 369 -137}%
-\special{pa 366 -145}\special{pa 363 -153}\special{pa 360 -160}\special{pa 356 -168}%
-\special{pa 353 -175}\special{pa 349 -182}\special{pa 345 -190}\special{pa 341 -197}%
-\special{pa 337 -204}\special{pa 332 -211}\special{pa 328 -218}\special{pa 323 -225}%
-\special{pa 319 -231}\special{pa 314 -238}\special{pa 309 -245}\special{pa 303 -251}%
-\special{pa 298 -257}\special{pa 293 -263}\special{pa 287 -270}\special{pa 281 -275}%
-\special{pa 275 -281}\special{pa 270 -287}\special{pa 263 -293}\special{pa 257 -298}%
-\special{pa 251 -303}\special{pa 245 -309}\special{pa 238 -314}\special{pa 231 -319}%
-\special{pa 225 -323}\special{pa 218 -328}\special{pa 211 -332}\special{pa 204 -337}%
-\special{pa 197 -341}%
-\special{fp}%
-\special{pa 0 0}\special{pa 787 0}%
-\special{fp}%
-\special{pa 0 0}\special{pa 394 -681}%
-\special{fp}%
-\end{picture}}% \ No newline at end of file
diff --git a/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/assign.tex b/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/assign.tex
deleted file mode 100644
index ab6bcf7d..00000000
--- a/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/assign.tex
+++ /dev/null
@@ -1,361 +0,0 @@
-%%% fig.tex 2016-4-28 10:9
-%%% fig.sce 2016-4-28 10:9
-{\unitlength=4mm%
-\begin{picture}%
-( 10.00000, 10.00000)( -5.00000, -2.00000)%
-\special{pn 8}%
-%
-\special{pa -787 -151}\special{pa -756 0}\special{pa -724 151}\special{pa -693 302}%
-\special{pa -690 315}%
-\special{fp}%
-\special{pa -787 -290}\special{pa -756 -145}\special{pa -724 0}\special{pa -693 145}%
-\special{pa -661 290}\special{pa -656 315}%
-\special{fp}%
-\special{pa -787 -416}\special{pa -756 -277}\special{pa -724 -139}\special{pa -693 0}%
-\special{pa -661 139}\special{pa -630 277}\special{pa -621 315}%
-\special{fp}%
-\special{pa -787 -529}\special{pa -756 -397}\special{pa -724 -265}\special{pa -693 -132}%
-\special{pa -661 0}\special{pa -630 132}\special{pa -598 265}\special{pa -586 315}%
-\special{fp}%
-\special{pa -787 -630}\special{pa -756 -504}\special{pa -724 -378}\special{pa -693 -252}%
-\special{pa -661 -126}\special{pa -630 0}\special{pa -598 126}\special{pa -567 252}%
-\special{pa -551 315}%
-\special{fp}%
-\special{pa -787 -718}\special{pa -756 -598}\special{pa -724 -479}\special{pa -693 -359}%
-\special{pa -661 -239}\special{pa -630 -120}\special{pa -598 0}\special{pa -567 120}%
-\special{pa -535 239}\special{pa -516 315}%
-\special{fp}%
-\special{pa -787 -794}\special{pa -756 -680}\special{pa -724 -567}\special{pa -693 -454}%
-\special{pa -661 -340}\special{pa -630 -227}\special{pa -598 -113}\special{pa -567 0}%
-\special{pa -535 113}\special{pa -504 227}\special{pa -479 315}%
-\special{fp}%
-\special{pa -787 -857}\special{pa -756 -750}\special{pa -724 -643}\special{pa -693 -535}%
-\special{pa -661 -428}\special{pa -630 -321}\special{pa -598 -214}\special{pa -567 -107}%
-\special{pa -535 0}\special{pa -504 107}\special{pa -472 214}\special{pa -443 315}%
-\special{fp}%
-\special{pa -787 -907}\special{pa -756 -806}\special{pa -724 -706}\special{pa -693 -605}%
-\special{pa -661 -504}\special{pa -630 -403}\special{pa -598 -302}\special{pa -567 -202}%
-\special{pa -535 -101}\special{pa -504 0}\special{pa -472 101}\special{pa -441 202}%
-\special{pa -409 302}\special{pa -406 315}%
-\special{fp}%
-\special{pa -787 -945}\special{pa -756 -850}\special{pa -724 -756}\special{pa -693 -661}%
-\special{pa -661 -567}\special{pa -630 -472}\special{pa -598 -378}\special{pa -567 -283}%
-\special{pa -535 -189}\special{pa -504 -94}\special{pa -472 0}\special{pa -441 94}%
-\special{pa -409 189}\special{pa -378 283}\special{pa -367 315}%
-\special{fp}%
-\special{pa -787 -970}\special{pa -756 -882}\special{pa -724 -794}\special{pa -693 -706}%
-\special{pa -661 -617}\special{pa -630 -529}\special{pa -598 -441}\special{pa -567 -353}%
-\special{pa -535 -265}\special{pa -504 -176}\special{pa -472 -88}\special{pa -441 0}%
-\special{pa -409 88}\special{pa -378 176}\special{pa -346 265}\special{pa -328 315}%
-\special{fp}%
-\special{pa -787 -983}\special{pa -756 -901}\special{pa -724 -819}\special{pa -693 -737}%
-\special{pa -661 -655}\special{pa -630 -573}\special{pa -598 -491}\special{pa -567 -409}%
-\special{pa -535 -328}\special{pa -504 -246}\special{pa -472 -164}\special{pa -441 -82}%
-\special{pa -409 0}\special{pa -378 82}\special{pa -346 164}\special{pa -315 246}%
-\special{pa -288 315}%
-\special{fp}%
-\special{pa -787 -983}\special{pa -756 -907}\special{pa -724 -831}\special{pa -693 -756}%
-\special{pa -661 -680}\special{pa -630 -605}\special{pa -598 -529}\special{pa -567 -454}%
-\special{pa -535 -378}\special{pa -504 -302}\special{pa -472 -227}\special{pa -441 -151}%
-\special{pa -409 -76}\special{pa -378 0}\special{pa -346 76}\special{pa -315 151}%
-\special{pa -283 227}\special{pa -252 302}\special{pa -247 315}%
-\special{fp}%
-\special{pa -787 -970}\special{pa -756 -901}\special{pa -724 -831}\special{pa -693 -762}%
-\special{pa -661 -693}\special{pa -630 -624}\special{pa -598 -554}\special{pa -567 -485}%
-\special{pa -535 -416}\special{pa -504 -346}\special{pa -472 -277}\special{pa -441 -208}%
-\special{pa -409 -139}\special{pa -378 -69}\special{pa -346 0}\special{pa -315 69}%
-\special{pa -283 139}\special{pa -252 208}\special{pa -220 277}\special{pa -203 315}%
-\special{fp}%
-\special{pa -787 -945}\special{pa -756 -882}\special{pa -724 -819}\special{pa -693 -756}%
-\special{pa -661 -693}\special{pa -630 -630}\special{pa -598 -567}\special{pa -567 -504}%
-\special{pa -535 -441}\special{pa -504 -378}\special{pa -472 -315}\special{pa -441 -252}%
-\special{pa -409 -189}\special{pa -378 -126}\special{pa -346 -63}\special{pa -315 0}%
-\special{pa -283 63}\special{pa -252 126}\special{pa -220 189}\special{pa -189 252}%
-\special{pa -157 315}%
-\special{fp}%
-\special{pa -787 -907}\special{pa -756 -850}\special{pa -724 -794}\special{pa -693 -737}%
-\special{pa -661 -680}\special{pa -630 -624}\special{pa -598 -567}\special{pa -567 -510}%
-\special{pa -535 -454}\special{pa -504 -397}\special{pa -472 -340}\special{pa -441 -283}%
-\special{pa -409 -227}\special{pa -378 -170}\special{pa -346 -113}\special{pa -315 -57}%
-\special{pa -283 0}\special{pa -252 57}\special{pa -220 113}\special{pa -189 170}%
-\special{pa -157 227}\special{pa -126 283}\special{pa -108 315}%
-\special{fp}%
-\special{pa -787 -857}\special{pa -756 -806}\special{pa -724 -756}\special{pa -693 -706}%
-\special{pa -661 -655}\special{pa -630 -605}\special{pa -598 -554}\special{pa -567 -504}%
-\special{pa -535 -454}\special{pa -504 -403}\special{pa -472 -353}\special{pa -441 -302}%
-\special{pa -409 -252}\special{pa -378 -202}\special{pa -346 -151}\special{pa -315 -101}%
-\special{pa -283 -50}\special{pa -252 0}\special{pa -220 50}\special{pa -189 101}%
-\special{pa -157 151}\special{pa -126 202}\special{pa -94 252}\special{pa -63 302}%
-\special{pa -55 315}%
-\special{fp}%
-\special{pa -787 -794}\special{pa -756 -750}\special{pa -724 -706}\special{pa -693 -661}%
-\special{pa -661 -617}\special{pa -630 -573}\special{pa -598 -529}\special{pa -567 -485}%
-\special{pa -535 -441}\special{pa -504 -397}\special{pa -472 -353}\special{pa -441 -309}%
-\special{pa -409 -265}\special{pa -378 -220}\special{pa -346 -176}\special{pa -315 -132}%
-\special{pa -283 -88}\special{pa -252 -44}\special{pa -220 0}\special{pa -189 44}%
-\special{pa -157 88}\special{pa -126 132}\special{pa -94 176}\special{pa -63 220}%
-\special{pa -31 265}\special{pa 0 309}\special{pa 4 315}%
-\special{fp}%
-\special{pa -787 -718}\special{pa -756 -680}\special{pa -724 -643}\special{pa -693 -605}%
-\special{pa -661 -567}\special{pa -630 -529}\special{pa -598 -491}\special{pa -567 -454}%
-\special{pa -535 -416}\special{pa -504 -378}\special{pa -472 -340}\special{pa -441 -302}%
-\special{pa -409 -265}\special{pa -378 -227}\special{pa -346 -189}\special{pa -315 -151}%
-\special{pa -283 -113}\special{pa -252 -76}\special{pa -220 -38}\special{pa -189 0}%
-\special{pa -157 38}\special{pa -126 76}\special{pa -94 113}\special{pa -63 151}\special{pa -31 189}%
-\special{pa 0 227}\special{pa 31 265}\special{pa 63 302}\special{pa 73 315}%
-\special{fp}%
-\special{pa -787 -630}\special{pa -756 -598}\special{pa -724 -567}\special{pa -693 -535}%
-\special{pa -661 -504}\special{pa -630 -472}\special{pa -598 -441}\special{pa -567 -409}%
-\special{pa -535 -378}\special{pa -504 -346}\special{pa -472 -315}\special{pa -441 -283}%
-\special{pa -409 -252}\special{pa -378 -220}\special{pa -346 -189}\special{pa -315 -157}%
-\special{pa -283 -126}\special{pa -252 -94}\special{pa -220 -63}\special{pa -189 -31}%
-\special{pa -157 0}\special{pa -126 31}\special{pa -94 63}\special{pa -63 94}\special{pa -31 126}%
-\special{pa 0 157}\special{pa 31 189}\special{pa 63 220}\special{pa 94 252}\special{pa 126 283}%
-\special{pa 157 315}%
-\special{fp}%
-\special{pa -787 -529}\special{pa -756 -504}\special{pa -724 -479}\special{pa -693 -454}%
-\special{pa -661 -428}\special{pa -630 -403}\special{pa -598 -378}\special{pa -567 -353}%
-\special{pa -535 -328}\special{pa -504 -302}\special{pa -472 -277}\special{pa -441 -252}%
-\special{pa -409 -227}\special{pa -378 -202}\special{pa -346 -176}\special{pa -315 -151}%
-\special{pa -283 -126}\special{pa -252 -101}\special{pa -220 -76}\special{pa -189 -50}%
-\special{pa -157 -25}\special{pa -126 0}\special{pa -94 25}\special{pa -63 50}\special{pa -31 76}%
-\special{pa 0 101}\special{pa 31 126}\special{pa 63 151}\special{pa 94 176}\special{pa 126 202}%
-\special{pa 157 227}\special{pa 189 252}\special{pa 220 277}\special{pa 252 302}\special{pa 268 315}%
-\special{fp}%
-\special{pa -787 -416}\special{pa -756 -397}\special{pa -724 -378}\special{pa -693 -359}%
-\special{pa -661 -340}\special{pa -630 -321}\special{pa -598 -302}\special{pa -567 -283}%
-\special{pa -535 -265}\special{pa -504 -246}\special{pa -472 -227}\special{pa -441 -208}%
-\special{pa -409 -189}\special{pa -378 -170}\special{pa -346 -151}\special{pa -315 -132}%
-\special{pa -283 -113}\special{pa -252 -94}\special{pa -220 -76}\special{pa -189 -57}%
-\special{pa -157 -38}\special{pa -126 -19}\special{pa -94 0}\special{pa -63 19}\special{pa -31 38}%
-\special{pa 0 57}\special{pa 31 76}\special{pa 63 94}\special{pa 94 113}\special{pa 126 132}%
-\special{pa 157 151}\special{pa 189 170}\special{pa 220 189}\special{pa 252 208}\special{pa 283 227}%
-\special{pa 315 246}\special{pa 346 265}\special{pa 378 283}\special{pa 409 302}\special{pa 430 315}%
-\special{fp}%
-\special{pa -787 -290}\special{pa -756 -277}\special{pa -724 -265}\special{pa -693 -252}%
-\special{pa -661 -239}\special{pa -630 -227}\special{pa -598 -214}\special{pa -567 -202}%
-\special{pa -535 -189}\special{pa -504 -176}\special{pa -472 -164}\special{pa -441 -151}%
-\special{pa -409 -139}\special{pa -378 -126}\special{pa -346 -113}\special{pa -315 -101}%
-\special{pa -283 -88}\special{pa -252 -76}\special{pa -220 -63}\special{pa -189 -50}%
-\special{pa -157 -38}\special{pa -126 -25}\special{pa -94 -13}\special{pa -63 0}\special{pa -31 13}%
-\special{pa 0 25}\special{pa 31 38}\special{pa 63 50}\special{pa 94 63}\special{pa 126 76}%
-\special{pa 157 88}\special{pa 189 101}\special{pa 220 113}\special{pa 252 126}\special{pa 283 139}%
-\special{pa 315 151}\special{pa 346 164}\special{pa 378 176}\special{pa 409 189}\special{pa 441 202}%
-\special{pa 472 214}\special{pa 504 227}\special{pa 535 239}\special{pa 567 252}\special{pa 598 265}%
-\special{pa 630 277}\special{pa 661 290}\special{pa 693 302}\special{pa 724 315}%
-\special{fp}%
-\special{pa -787 -151}\special{pa -756 -145}\special{pa -724 -139}\special{pa -693 -132}%
-\special{pa -661 -126}\special{pa -630 -120}\special{pa -598 -113}\special{pa -567 -107}%
-\special{pa -535 -101}\special{pa -504 -94}\special{pa -472 -88}\special{pa -441 -82}%
-\special{pa -409 -76}\special{pa -378 -69}\special{pa -346 -63}\special{pa -315 -57}%
-\special{pa -283 -50}\special{pa -252 -44}\special{pa -220 -38}\special{pa -189 -31}%
-\special{pa -157 -25}\special{pa -126 -19}\special{pa -94 -13}\special{pa -63 -6}%
-\special{pa -31 0}\special{pa 0 6}\special{pa 31 13}\special{pa 63 19}\special{pa 94 25}%
-\special{pa 126 31}\special{pa 157 38}\special{pa 189 44}\special{pa 220 50}\special{pa 252 57}%
-\special{pa 283 63}\special{pa 315 69}\special{pa 346 76}\special{pa 378 82}\special{pa 409 88}%
-\special{pa 441 94}\special{pa 472 101}\special{pa 504 107}\special{pa 535 113}\special{pa 567 120}%
-\special{pa 598 126}\special{pa 630 132}\special{pa 661 139}\special{pa 693 145}\special{pa 724 151}%
-\special{pa 756 157}\special{pa 787 164}%
-\special{fp}%
-\special{pa -787 0}\special{pa -756 0}\special{pa -724 0}\special{pa -693 0}\special{pa -661 0}%
-\special{pa -630 0}\special{pa -598 0}\special{pa -567 0}\special{pa -535 0}\special{pa -504 0}%
-\special{pa -472 0}\special{pa -441 0}\special{pa -409 0}\special{pa -378 0}\special{pa -346 0}%
-\special{pa -315 0}\special{pa -283 0}\special{pa -252 0}\special{pa -220 0}\special{pa -189 0}%
-\special{pa -157 0}\special{pa -126 0}\special{pa -94 0}\special{pa -63 0}\special{pa -31 0}%
-\special{pa 0 0}\special{pa 31 0}\special{pa 63 0}\special{pa 94 0}\special{pa 126 0}%
-\special{pa 157 0}\special{pa 189 0}\special{pa 220 0}\special{pa 252 0}\special{pa 283 0}%
-\special{pa 315 0}\special{pa 346 0}\special{pa 378 0}\special{pa 409 0}\special{pa 441 0}%
-\special{pa 472 0}\special{pa 504 0}\special{pa 535 0}\special{pa 567 0}\special{pa 598 0}%
-\special{pa 630 0}\special{pa 661 0}\special{pa 693 0}\special{pa 724 0}\special{pa 756 0}%
-\special{pa 787 0}%
-\special{fp}%
-\special{pa -787 164}\special{pa -756 157}\special{pa -724 151}\special{pa -693 145}%
-\special{pa -661 139}\special{pa -630 132}\special{pa -598 126}\special{pa -567 120}%
-\special{pa -535 113}\special{pa -504 107}\special{pa -472 101}\special{pa -441 94}%
-\special{pa -409 88}\special{pa -378 82}\special{pa -346 76}\special{pa -315 69}\special{pa -283 63}%
-\special{pa -252 57}\special{pa -220 50}\special{pa -189 44}\special{pa -157 38}\special{pa -126 31}%
-\special{pa -94 25}\special{pa -63 19}\special{pa -31 13}\special{pa 0 6}\special{pa 31 0}%
-\special{pa 63 -6}\special{pa 94 -13}\special{pa 126 -19}\special{pa 157 -25}\special{pa 189 -31}%
-\special{pa 220 -38}\special{pa 252 -44}\special{pa 283 -50}\special{pa 315 -57}\special{pa 346 -63}%
-\special{pa 378 -69}\special{pa 409 -76}\special{pa 441 -82}\special{pa 472 -88}\special{pa 504 -94}%
-\special{pa 535 -101}\special{pa 567 -107}\special{pa 598 -113}\special{pa 630 -120}%
-\special{pa 661 -126}\special{pa 693 -132}\special{pa 724 -139}\special{pa 756 -145}%
-\special{pa 787 -151}%
-\special{fp}%
-\special{pa -724 315}\special{pa -693 302}\special{pa -661 290}\special{pa -630 277}%
-\special{pa -598 265}\special{pa -567 252}\special{pa -535 239}\special{pa -504 227}%
-\special{pa -472 214}\special{pa -441 202}\special{pa -409 189}\special{pa -378 176}%
-\special{pa -346 164}\special{pa -315 151}\special{pa -283 139}\special{pa -252 126}%
-\special{pa -220 113}\special{pa -189 101}\special{pa -157 88}\special{pa -126 76}%
-\special{pa -94 63}\special{pa -63 50}\special{pa -31 38}\special{pa 0 25}\special{pa 31 13}%
-\special{pa 63 0}\special{pa 94 -13}\special{pa 126 -25}\special{pa 157 -38}\special{pa 189 -50}%
-\special{pa 220 -63}\special{pa 252 -76}\special{pa 283 -88}\special{pa 315 -101}%
-\special{pa 346 -113}\special{pa 378 -126}\special{pa 409 -139}\special{pa 441 -151}%
-\special{pa 472 -164}\special{pa 504 -176}\special{pa 535 -189}\special{pa 567 -202}%
-\special{pa 598 -214}\special{pa 630 -227}\special{pa 661 -239}\special{pa 693 -252}%
-\special{pa 724 -265}\special{pa 756 -277}\special{pa 787 -290}%
-\special{fp}%
-\special{pa -430 315}\special{pa -409 302}\special{pa -378 283}\special{pa -346 265}%
-\special{pa -315 246}\special{pa -283 227}\special{pa -252 208}\special{pa -220 189}%
-\special{pa -189 170}\special{pa -157 151}\special{pa -126 132}\special{pa -94 113}%
-\special{pa -63 94}\special{pa -31 76}\special{pa 0 57}\special{pa 31 38}\special{pa 63 19}%
-\special{pa 94 0}\special{pa 126 -19}\special{pa 157 -38}\special{pa 189 -57}\special{pa 220 -76}%
-\special{pa 252 -94}\special{pa 283 -113}\special{pa 315 -132}\special{pa 346 -151}%
-\special{pa 378 -170}\special{pa 409 -189}\special{pa 441 -208}\special{pa 472 -227}%
-\special{pa 504 -246}\special{pa 535 -265}\special{pa 567 -283}\special{pa 598 -302}%
-\special{pa 630 -321}\special{pa 661 -340}\special{pa 693 -359}\special{pa 724 -378}%
-\special{pa 756 -397}\special{pa 787 -416}%
-\special{fp}%
-\special{pa -268 315}\special{pa -252 302}\special{pa -220 277}\special{pa -189 252}%
-\special{pa -157 227}\special{pa -126 202}\special{pa -94 176}\special{pa -63 151}%
-\special{pa -31 126}\special{pa 0 101}\special{pa 31 76}\special{pa 63 50}\special{pa 94 25}%
-\special{pa 126 0}\special{pa 157 -25}\special{pa 189 -50}\special{pa 220 -76}\special{pa 252 -101}%
-\special{pa 283 -126}\special{pa 315 -151}\special{pa 346 -176}\special{pa 378 -202}%
-\special{pa 409 -227}\special{pa 441 -252}\special{pa 472 -277}\special{pa 504 -302}%
-\special{pa 535 -328}\special{pa 567 -353}\special{pa 598 -378}\special{pa 630 -403}%
-\special{pa 661 -428}\special{pa 693 -454}\special{pa 724 -479}\special{pa 756 -504}%
-\special{pa 787 -529}%
-\special{fp}%
-\special{pa -157 315}\special{pa -126 283}\special{pa -94 252}\special{pa -63 220}%
-\special{pa -31 189}\special{pa 0 157}\special{pa 31 126}\special{pa 63 94}\special{pa 94 63}%
-\special{pa 126 31}\special{pa 157 0}\special{pa 189 -31}\special{pa 220 -63}\special{pa 252 -94}%
-\special{pa 283 -126}\special{pa 315 -157}\special{pa 346 -189}\special{pa 378 -220}%
-\special{pa 409 -252}\special{pa 441 -283}\special{pa 472 -315}\special{pa 504 -346}%
-\special{pa 535 -378}\special{pa 567 -409}\special{pa 598 -441}\special{pa 630 -472}%
-\special{pa 661 -504}\special{pa 693 -535}\special{pa 724 -567}\special{pa 756 -598}%
-\special{pa 787 -630}%
-\special{fp}%
-\special{pa -73 315}\special{pa -63 302}\special{pa -31 265}\special{pa 0 227}\special{pa 31 189}%
-\special{pa 63 151}\special{pa 94 113}\special{pa 126 76}\special{pa 157 38}\special{pa 189 0}%
-\special{pa 220 -38}\special{pa 252 -76}\special{pa 283 -113}\special{pa 315 -151}%
-\special{pa 346 -189}\special{pa 378 -227}\special{pa 409 -265}\special{pa 441 -302}%
-\special{pa 472 -340}\special{pa 504 -378}\special{pa 535 -416}\special{pa 567 -454}%
-\special{pa 598 -491}\special{pa 630 -529}\special{pa 661 -567}\special{pa 693 -605}%
-\special{pa 724 -643}\special{pa 756 -680}\special{pa 787 -718}%
-\special{fp}%
-\special{pa -4 315}\special{pa 0 309}\special{pa 31 265}\special{pa 63 220}\special{pa 94 176}%
-\special{pa 126 132}\special{pa 157 88}\special{pa 189 44}\special{pa 220 0}\special{pa 252 -44}%
-\special{pa 283 -88}\special{pa 315 -132}\special{pa 346 -176}\special{pa 378 -220}%
-\special{pa 409 -265}\special{pa 441 -309}\special{pa 472 -353}\special{pa 504 -397}%
-\special{pa 535 -441}\special{pa 567 -485}\special{pa 598 -529}\special{pa 630 -573}%
-\special{pa 661 -617}\special{pa 693 -661}\special{pa 724 -706}\special{pa 756 -750}%
-\special{pa 787 -794}%
-\special{fp}%
-\special{pa 55 315}\special{pa 63 302}\special{pa 94 252}\special{pa 126 202}\special{pa 157 151}%
-\special{pa 189 101}\special{pa 220 50}\special{pa 252 0}\special{pa 283 -50}\special{pa 315 -101}%
-\special{pa 346 -151}\special{pa 378 -202}\special{pa 409 -252}\special{pa 441 -302}%
-\special{pa 472 -353}\special{pa 504 -403}\special{pa 535 -454}\special{pa 567 -504}%
-\special{pa 598 -554}\special{pa 630 -605}\special{pa 661 -655}\special{pa 693 -706}%
-\special{pa 724 -756}\special{pa 756 -806}\special{pa 787 -857}%
-\special{fp}%
-\special{pa 108 315}\special{pa 126 283}\special{pa 157 227}\special{pa 189 170}\special{pa 220 113}%
-\special{pa 252 57}\special{pa 283 0}\special{pa 315 -57}\special{pa 346 -113}\special{pa 378 -170}%
-\special{pa 409 -227}\special{pa 441 -283}\special{pa 472 -340}\special{pa 504 -397}%
-\special{pa 535 -454}\special{pa 567 -510}\special{pa 598 -567}\special{pa 630 -624}%
-\special{pa 661 -680}\special{pa 693 -737}\special{pa 724 -794}\special{pa 756 -850}%
-\special{pa 787 -907}%
-\special{fp}%
-\special{pa 157 315}\special{pa 189 252}\special{pa 220 189}\special{pa 252 126}\special{pa 283 63}%
-\special{pa 315 0}\special{pa 346 -63}\special{pa 378 -126}\special{pa 409 -189}\special{pa 441 -252}%
-\special{pa 472 -315}\special{pa 504 -378}\special{pa 535 -441}\special{pa 567 -504}%
-\special{pa 598 -567}\special{pa 630 -630}\special{pa 661 -693}\special{pa 693 -756}%
-\special{pa 724 -819}\special{pa 756 -882}\special{pa 787 -945}%
-\special{fp}%
-\special{pa 203 315}\special{pa 220 277}\special{pa 252 208}\special{pa 283 139}\special{pa 315 69}%
-\special{pa 346 0}\special{pa 378 -69}\special{pa 409 -139}\special{pa 441 -208}\special{pa 472 -277}%
-\special{pa 504 -346}\special{pa 535 -416}\special{pa 567 -485}\special{pa 598 -554}%
-\special{pa 630 -624}\special{pa 661 -693}\special{pa 693 -762}\special{pa 724 -831}%
-\special{pa 756 -901}\special{pa 787 -970}%
-\special{fp}%
-\special{pa 247 315}\special{pa 252 302}\special{pa 283 227}\special{pa 315 151}\special{pa 346 76}%
-\special{pa 378 0}\special{pa 409 -76}\special{pa 441 -151}\special{pa 472 -227}\special{pa 504 -302}%
-\special{pa 535 -378}\special{pa 567 -454}\special{pa 598 -529}\special{pa 630 -605}%
-\special{pa 661 -680}\special{pa 693 -756}\special{pa 724 -831}\special{pa 756 -907}%
-\special{pa 787 -983}%
-\special{fp}%
-\special{pa 288 315}\special{pa 315 246}\special{pa 346 164}\special{pa 378 82}\special{pa 409 0}%
-\special{pa 441 -82}\special{pa 472 -164}\special{pa 504 -246}\special{pa 535 -328}%
-\special{pa 567 -409}\special{pa 598 -491}\special{pa 630 -573}\special{pa 661 -655}%
-\special{pa 693 -737}\special{pa 724 -819}\special{pa 756 -901}\special{pa 787 -983}%
-\special{fp}%
-\special{pa 328 315}\special{pa 346 265}\special{pa 378 176}\special{pa 409 88}\special{pa 441 0}%
-\special{pa 472 -88}\special{pa 504 -176}\special{pa 535 -265}\special{pa 567 -353}%
-\special{pa 598 -441}\special{pa 630 -529}\special{pa 661 -617}\special{pa 693 -706}%
-\special{pa 724 -794}\special{pa 756 -882}\special{pa 787 -970}%
-\special{fp}%
-\special{pa 367 315}\special{pa 378 283}\special{pa 409 189}\special{pa 441 94}\special{pa 472 0}%
-\special{pa 504 -94}\special{pa 535 -189}\special{pa 567 -283}\special{pa 598 -378}%
-\special{pa 630 -472}\special{pa 661 -567}\special{pa 693 -661}\special{pa 724 -756}%
-\special{pa 756 -850}\special{pa 787 -945}%
-\special{fp}%
-\special{pa 406 315}\special{pa 409 302}\special{pa 441 202}\special{pa 472 101}\special{pa 504 0}%
-\special{pa 535 -101}\special{pa 567 -202}\special{pa 598 -302}\special{pa 630 -403}%
-\special{pa 661 -504}\special{pa 693 -605}\special{pa 724 -706}\special{pa 756 -806}%
-\special{pa 787 -907}%
-\special{fp}%
-\special{pa 443 315}\special{pa 472 214}\special{pa 504 107}\special{pa 535 0}\special{pa 567 -107}%
-\special{pa 598 -214}\special{pa 630 -321}\special{pa 661 -428}\special{pa 693 -535}%
-\special{pa 724 -643}\special{pa 756 -750}\special{pa 787 -857}%
-\special{fp}%
-\special{pa 479 315}\special{pa 504 227}\special{pa 535 113}\special{pa 567 0}\special{pa 598 -113}%
-\special{pa 630 -227}\special{pa 661 -340}\special{pa 693 -454}\special{pa 724 -567}%
-\special{pa 756 -680}\special{pa 787 -794}%
-\special{fp}%
-\special{pa 516 315}\special{pa 535 239}\special{pa 567 120}\special{pa 598 0}\special{pa 630 -120}%
-\special{pa 661 -239}\special{pa 693 -359}\special{pa 724 -479}\special{pa 756 -598}%
-\special{pa 787 -718}%
-\special{fp}%
-\special{pa 551 315}\special{pa 567 252}\special{pa 598 126}\special{pa 630 0}\special{pa 661 -126}%
-\special{pa 693 -252}\special{pa 724 -378}\special{pa 756 -504}\special{pa 787 -630}%
-\special{fp}%
-\special{pa 586 315}\special{pa 598 265}\special{pa 630 132}\special{pa 661 0}\special{pa 693 -132}%
-\special{pa 724 -265}\special{pa 756 -397}\special{pa 787 -529}%
-\special{fp}%
-\special{pa 621 315}\special{pa 630 277}\special{pa 661 139}\special{pa 693 0}\special{pa 724 -139}%
-\special{pa 756 -277}\special{pa 787 -416}%
-\special{fp}%
-\special{pa 656 315}\special{pa 661 290}\special{pa 693 145}\special{pa 724 0}\special{pa 756 -145}%
-\special{pa 787 -290}%
-\special{fp}%
-\special{pa 690 315}\special{pa 693 302}\special{pa 724 151}\special{pa 756 0}\special{pa 787 -151}%
-\special{fp}%
-\special{pa 724 315}\special{pa 756 157}\special{pa 787 0}%
-\special{fp}%
-\special{pn 8}%
-\special{pa -787 0}\special{pa 772 0}%
-\special{fp}%
-\special{pn 8}%
-\special{pa 713 24}\special{pa 787 0}\special{pa 713 -24}\special{pa 713 0}\special{pa 713 24}%
-\special{sh 1}\special{ip}%
-\special{pn 1}%
-\special{pa 713 24}\special{pa 787 0}\special{pa 713 -24}\special{pa 713 0}\special{pa 713 24}%
-\special{pa 787 0}%
-\special{fp}%
-\special{pn 8}%
-\special{pn 8}%
-\special{pa 0 315}\special{pa 0 -1244}%
-\special{fp}%
-\special{pn 8}%
-\special{pa 24 -1185}\special{pa 0 -1260}\special{pa -24 -1185}\special{pa 0 -1185}%
-\special{pa 24 -1185}\special{sh 1}\special{ip}%
-\special{pn 1}%
-\special{pa 24 -1185}\special{pa 0 -1260}\special{pa -24 -1185}\special{pa 0 -1185}%
-\special{pa 24 -1185}\special{pa 0 -1260}%
-\special{fp}%
-\special{pn 8}%
-\settowidth{\Width}{$x$}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{$x$}\settodepth{\Depth}{$x$}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(5.0500,0.0000){\hspace*{\Width}\raisebox{\Height}{$x$}}%
-%
-%
-\settowidth{\Width}{$y$}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{$y$}\settodepth{\Depth}{$y$}\setlength{\Height}{\Depth}%
-\put(0.0000,8.0500){\hspace*{\Width}\raisebox{\Height}{$y$}}%
-%
-%
-\settowidth{\Width}{O}\setlength{\Width}{-1\Width}%
-\settoheight{\Height}{O}\settodepth{\Depth}{O}\setlength{\Height}{-\Height}%
-\put(-0.0500,-0.0500){\hspace*{\Width}\raisebox{\Height}{O}}%
-%
-%
-\end{picture}}% \ No newline at end of file
diff --git a/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/binvsnormal.tex b/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/binvsnormal.tex
deleted file mode 100644
index 3b5a66a1..00000000
--- a/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/binvsnormal.tex
+++ /dev/null
@@ -1,94 +0,0 @@
-%%% fig.tex 2016-4-23 11:39
-%%% fig.sce 2016-4-23 11:39
-{\unitlength=8mm%
-\begin{picture}%
-( 11.02000, 6.60000)( -0.82000, -0.80000)%
-\special{pn 8}%
-%
-\special{pa 0 -38}\special{pa 315 -254}\special{pa 630 -762}\special{pa 945 -1354}%
-\special{pa 1260 -1580}\special{pa 1575 -1264}\special{pa 1890 -702}\special{pa 2205 -268}%
-\special{pa 2520 -67}\special{pa 2835 -10}\special{pa 3150 -1}%
-\special{fp}%
-\special{pn 8}%
-\special{pa -4 -57}\special{pa 4 -59}\special{fp}\special{pa 33 -70}\special{pa 41 -72}\special{fp}%
-\special{pa 70 -84}\special{pa 78 -87}\special{fp}\special{pa 106 -100}\special{pa 114 -103}\special{fp}%
-\special{pa 141 -118}\special{pa 148 -122}\special{fp}\special{pa 175 -138}\special{pa 182 -142}\special{fp}%
-\special{pa 208 -160}\special{pa 215 -165}\special{fp}\special{pa 240 -184}\special{pa 246 -189}\special{fp}%
-\special{pa 270 -209}\special{pa 276 -214}\special{fp}\special{pa 300 -235}\special{pa 305 -241}\special{fp}%
-\special{pa 328 -263}\special{pa 334 -268}\special{fp}\special{pa 355 -292}\special{pa 360 -298}\special{fp}%
-\special{pa 381 -321}\special{pa 387 -327}\special{fp}\special{pa 406 -352}\special{pa 411 -358}\special{fp}%
-\special{pa 430 -383}\special{pa 435 -389}\special{fp}\special{pa 454 -415}\special{pa 458 -421}\special{fp}%
-\special{pa 476 -447}\special{pa 480 -454}\special{fp}\special{pa 498 -480}\special{pa 502 -487}\special{fp}%
-\special{pa 519 -513}\special{pa 524 -520}\special{fp}\special{pa 540 -547}\special{pa 544 -554}\special{fp}%
-\special{pa 560 -581}\special{pa 564 -588}\special{fp}\special{pa 580 -615}\special{pa 584 -622}\special{fp}%
-\special{pa 599 -649}\special{pa 603 -656}\special{fp}\special{pa 618 -684}\special{pa 622 -691}\special{fp}%
-\special{pa 637 -719}\special{pa 641 -726}\special{fp}\special{pa 656 -754}\special{pa 659 -761}\special{fp}%
-\special{pa 674 -789}\special{pa 677 -796}\special{fp}\special{pa 692 -824}\special{pa 695 -831}\special{fp}%
-\special{pa 710 -859}\special{pa 713 -866}\special{fp}\special{pa 727 -894}\special{pa 731 -901}\special{fp}%
-\special{pa 745 -930}\special{pa 749 -937}\special{fp}\special{pa 763 -965}\special{pa 766 -972}\special{fp}%
-\special{pa 780 -1000}\special{pa 784 -1008}\special{fp}\special{pa 798 -1036}\special{pa 801 -1043}\special{fp}%
-\special{pa 815 -1071}\special{pa 819 -1078}\special{fp}\special{pa 833 -1106}\special{pa 837 -1114}\special{fp}%
-\special{pa 851 -1142}\special{pa 855 -1149}\special{fp}\special{pa 869 -1177}\special{pa 873 -1184}\special{fp}%
-\special{pa 887 -1212}\special{pa 891 -1219}\special{fp}\special{pa 906 -1247}\special{pa 910 -1254}\special{fp}%
-\special{pa 925 -1281}\special{pa 929 -1288}\special{fp}\special{pa 945 -1315}\special{pa 949 -1322}\special{fp}%
-\special{pa 964 -1350}\special{pa 968 -1357}\special{fp}\special{pa 985 -1383}\special{pa 990 -1390}\special{fp}%
-\special{pa 1007 -1416}\special{pa 1011 -1423}\special{fp}\special{pa 1028 -1449}\special{pa 1033 -1456}\special{fp}%
-\special{pa 1053 -1480}\special{pa 1058 -1486}\special{fp}\special{pa 1078 -1511}\special{pa 1083 -1517}\special{fp}%
-\special{pa 1105 -1540}\special{pa 1110 -1545}\special{fp}\special{pa 1134 -1566}\special{pa 1140 -1571}\special{fp}%
-\special{pa 1165 -1590}\special{pa 1172 -1594}\special{fp}\special{pa 1200 -1608}\special{pa 1208 -1610}\special{fp}%
-\special{pa 1238 -1617}\special{pa 1246 -1619}\special{fp}\special{pa 1277 -1620}\special{pa 1285 -1619}\special{fp}%
-\special{pa 1314 -1609}\special{pa 1322 -1606}\special{fp}\special{pa 1351 -1594}\special{pa 1358 -1589}\special{fp}%
-\special{pa 1382 -1569}\special{pa 1388 -1564}\special{fp}\special{pa 1413 -1545}\special{pa 1418 -1539}\special{fp}%
-\special{pa 1438 -1515}\special{pa 1443 -1509}\special{fp}\special{pa 1464 -1485}\special{pa 1469 -1478}\special{fp}%
-\special{pa 1488 -1453}\special{pa 1492 -1447}\special{fp}\special{pa 1510 -1420}\special{pa 1514 -1414}\special{fp}%
-\special{pa 1532 -1388}\special{pa 1536 -1381}\special{fp}\special{pa 1553 -1354}\special{pa 1557 -1347}\special{fp}%
-\special{pa 1572 -1320}\special{pa 1576 -1313}\special{fp}\special{pa 1592 -1286}\special{pa 1596 -1279}\special{fp}%
-\special{pa 1611 -1251}\special{pa 1615 -1244}\special{fp}\special{pa 1630 -1216}\special{pa 1633 -1209}\special{fp}%
-\special{pa 1648 -1181}\special{pa 1652 -1174}\special{fp}\special{pa 1666 -1146}\special{pa 1670 -1139}\special{fp}%
-\special{pa 1684 -1111}\special{pa 1688 -1104}\special{fp}\special{pa 1702 -1076}\special{pa 1705 -1069}\special{fp}%
-\special{pa 1720 -1040}\special{pa 1723 -1033}\special{fp}\special{pa 1737 -1005}\special{pa 1741 -998}\special{fp}%
-\special{pa 1755 -970}\special{pa 1758 -963}\special{fp}\special{pa 1772 -934}\special{pa 1776 -927}\special{fp}%
-\special{pa 1790 -899}\special{pa 1794 -892}\special{fp}\special{pa 1808 -864}\special{pa 1811 -857}\special{fp}%
-\special{pa 1826 -829}\special{pa 1829 -821}\special{fp}\special{pa 1844 -793}\special{pa 1847 -786}\special{fp}%
-\special{pa 1862 -758}\special{pa 1865 -751}\special{fp}\special{pa 1880 -723}\special{pa 1884 -716}\special{fp}%
-\special{pa 1899 -689}\special{pa 1903 -682}\special{fp}\special{pa 1918 -654}\special{pa 1922 -647}\special{fp}%
-\special{pa 1937 -619}\special{pa 1941 -613}\special{fp}\special{pa 1957 -585}\special{pa 1961 -579}\special{fp}%
-\special{pa 1977 -551}\special{pa 1981 -545}\special{fp}\special{pa 1998 -518}\special{pa 2002 -511}\special{fp}%
-\special{pa 2019 -485}\special{pa 2024 -478}\special{fp}\special{pa 2041 -452}\special{pa 2045 -445}\special{fp}%
-\special{pa 2063 -419}\special{pa 2068 -412}\special{fp}\special{pa 2087 -387}\special{pa 2092 -381}\special{fp}%
-\special{pa 2110 -356}\special{pa 2115 -349}\special{fp}\special{pa 2135 -325}\special{pa 2141 -319}\special{fp}%
-\special{pa 2162 -296}\special{pa 2167 -290}\special{fp}\special{pa 2188 -266}\special{pa 2194 -260}\special{fp}%
-\special{pa 2216 -239}\special{pa 2222 -233}\special{fp}\special{pa 2245 -212}\special{pa 2251 -206}\special{fp}%
-\special{pa 2276 -187}\special{pa 2282 -182}\special{fp}\special{pa 2307 -163}\special{pa 2314 -158}\special{fp}%
-\special{pa 2340 -141}\special{pa 2347 -137}\special{fp}\special{pa 2373 -120}\special{pa 2380 -116}\special{fp}%
-\special{pa 2409 -102}\special{pa 2416 -99}\special{fp}\special{pa 2444 -85}\special{pa 2452 -82}\special{fp}%
-\special{pa 2481 -71}\special{pa 2489 -69}\special{fp}\special{pa 2519 -59}\special{pa 2526 -56}\special{fp}%
-\special{pa 2557 -48}\special{pa 2564 -46}\special{fp}\special{pa 2595 -39}\special{pa 2603 -37}\special{fp}%
-\special{pa 2634 -31}\special{pa 2642 -29}\special{fp}\special{pa 2673 -25}\special{pa 2681 -24}\special{fp}%
-\special{pa 2712 -20}\special{pa 2720 -19}\special{fp}\special{pa 2751 -15}\special{pa 2759 -14}\special{fp}%
-\special{pa 2790 -12}\special{pa 2798 -11}\special{fp}\special{pa 2830 -9}\special{pa 2838 -9}\special{fp}%
-\special{pa 2869 -7}\special{pa 2877 -7}\special{fp}\special{pa 2909 -6}\special{pa 2917 -5}\special{fp}%
-\special{pa 2948 -4}\special{pa 2956 -4}\special{fp}\special{pa 2988 -3}\special{pa 2996 -3}\special{fp}%
-\special{pa 3027 -2}\special{pa 3035 -2}\special{fp}\special{pa 3067 -2}\special{pa 3075 -1}\special{fp}%
-\special{pa 3106 -1}\special{pa 3114 -1}\special{fp}\special{pa 3146 -1}\special{pa 3154 -1}\special{fp}%
-\special{pn 8}%
-\special{pa -258 0}\special{pa 3213 0}%
-\special{fp}%
-\special{pa 0 252}\special{pa 0 -1827}%
-\special{fp}%
-\settowidth{\Width}{$x$}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{$x$}\settodepth{\Depth}{$x$}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(10.2500,0.0000){\hspace*{\Width}\raisebox{\Height}{$x$}}%
-%
-%
-\settowidth{\Width}{$y$}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{$y$}\settodepth{\Depth}{$y$}\setlength{\Height}{\Depth}%
-\put(0.0000,5.8500){\hspace*{\Width}\raisebox{\Height}{$y$}}%
-%
-%
-\settowidth{\Width}{O}\setlength{\Width}{-1\Width}%
-\settoheight{\Height}{O}\settodepth{\Depth}{O}\setlength{\Height}{-\Height}%
-\put(-0.0500,-0.0500){\hspace*{\Width}\raisebox{\Height}{O}}%
-%
-%
-\end{picture}}% \ No newline at end of file
diff --git a/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/bowdata.tex b/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/bowdata.tex
deleted file mode 100644
index fce1a011..00000000
--- a/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/bowdata.tex
+++ /dev/null
@@ -1,74 +0,0 @@
-%%% fig.tex 2016-5-1 19:10
-%%% fig.sce 2016-5-1 19:10
-{\unitlength=8mm%
-\begin{picture}%
-( 4.50000, 5.00000)( -1.00000, -1.00000)%
-\special{pn 8}%
-%
-\special{pa 414 -922}\special{pa 0 0}\special{pa 787 0}\special{pa 414 -922}%
-\special{fp}%
-\settowidth{\Width}{A}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{A}\settodepth{\Depth}{A}\setlength{\Height}{\Depth}%
-\put(1.3150,3.0277){\hspace*{\Width}\raisebox{\Height}{A}}%
-%
-%
-\settowidth{\Width}{B}\setlength{\Width}{-1\Width}%
-\settoheight{\Height}{B}\settodepth{\Depth}{B}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(-0.1000,0.0000){\hspace*{\Width}\raisebox{\Height}{B}}%
-%
-%
-\settowidth{\Width}{C}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{C}\settodepth{\Depth}{C}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(2.6000,0.0000){\hspace*{\Width}\raisebox{\Height}{C}}%
-%
-%
-\special{pa 414 -922}\special{pa 399 -908}\special{pa 384 -893}\special{pa 370 -878}%
-\special{pa 355 -863}\special{pa 341 -848}\special{pa 328 -833}\special{pa 314 -817}%
-\special{pa 301 -801}\special{pa 288 -785}\special{pa 275 -769}\special{pa 262 -752}%
-\special{pa 250 -736}\special{pa 238 -719}\special{pa 226 -702}\special{pa 214 -684}%
-\special{pa 203 -667}\special{pa 192 -649}\special{pa 182 -631}\special{pa 171 -613}%
-\special{pa 161 -595}\special{pa 151 -577}\special{pa 142 -559}\special{pa 132 -540}%
-\special{pa 124 -521}\special{pa 115 -502}\special{pa 107 -483}\special{pa 98 -464}%
-\special{pa 91 -445}\special{pa 83 -426}\special{pa 76 -406}\special{pa 69 -387}\special{pa 63 -367}%
-\special{pa 57 -347}\special{pa 51 -327}\special{pa 45 -307}\special{pa 40 -287}\special{pa 35 -267}%
-\special{pa 30 -247}\special{pa 26 -227}\special{pa 22 -206}\special{pa 18 -186}\special{pa 15 -165}%
-\special{pa 12 -145}\special{pa 9 -124}\special{pa 7 -104}\special{pa 5 -83}\special{pa 3 -62}%
-\special{pa 2 -41}\special{pa 1 -21}\special{pa 0 0}%
-\special{fp}%
-\settowidth{\Width}{$a$}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{$a$}\settodepth{\Depth}{$a$}\setlength{\Height}{-\Height}%
-\put(1.2500,-0.4500){\hspace*{\Width}\raisebox{\Height}{$a$}}%
-%
-%
-\special{pa 0 0}\special{pa 15 6}\special{pa 30 12}\special{pa 45 18}\special{pa 60 23}%
-\special{pa 76 28}\special{pa 91 33}\special{pa 107 38}\special{pa 122 42}\special{pa 138 46}%
-\special{pa 153 50}\special{pa 169 54}\special{pa 185 57}\special{pa 201 60}\special{pa 217 63}%
-\special{pa 233 66}\special{pa 249 68}\special{pa 265 71}\special{pa 281 72}\special{pa 297 74}%
-\special{pa 313 76}\special{pa 329 77}\special{pa 345 78}\special{pa 361 78}\special{pa 378 79}%
-\special{pa 394 79}\special{pa 410 79}\special{pa 426 78}\special{pa 442 78}\special{pa 458 77}%
-\special{pa 474 76}\special{pa 491 74}\special{pa 507 72}\special{pa 523 71}\special{pa 539 68}%
-\special{pa 555 66}\special{pa 571 63}\special{pa 587 60}\special{pa 602 57}\special{pa 618 54}%
-\special{pa 634 50}\special{pa 650 46}\special{pa 665 42}\special{pa 681 38}\special{pa 696 33}%
-\special{pa 712 28}\special{pa 727 23}\special{pa 742 18}\special{pa 757 12}\special{pa 772 6}%
-\special{pa 787 0}%
-\special{fp}%
-\settowidth{\Width}{$10$}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{$10$}\settodepth{\Depth}{$10$}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(2.4930,1.7009){\hspace*{\Width}\raisebox{\Height}{$10$}}%
-%
-%
-\special{pa 787 0}\special{pa 790 -7}\special{pa 793 -13}\special{pa 795 -20}\special{pa 797 -27}\special{pa 799 -31}\special{fp}%
-\special{pa 809 -62}\special{pa 810 -68}\special{pa 812 -75}\special{pa 814 -82}\special{pa 816 -89}\special{pa 817 -93}\special{fp}%
-\special{pa 824 -125}\special{pa 825 -131}\special{pa 827 -138}\special{pa 828 -145}\special{pa 829 -152}\special{pa 830 -158}\special{fp}%
-\special{pa 834 -190}\special{pa 835 -195}\special{pa 835 -202}\special{pa 836 -210}\special{pa 836 -217}\special{pa 837 -223}\special{fp}%
-\special{pa 838 -255}\special{pa 838 -260}\special{pa 838 -267}\special{pa 838 -274}\special{pa 838 -282}\special{pa 838 -288}\special{fp}%
-\special{pa 836 -321}\special{pa 835 -325}\special{pa 835 -332}\special{pa 834 -339}\special{pa 833 -346}\special{pa 832 -353}\special{fp}%
-\special{pa 692 -700}\special{pa 688 -705}\special{pa 684 -711}\special{pa 679 -717}\special{pa 674 -722}\special{pa 672 -725}\special{fp}%
-\special{pa 651 -750}\special{pa 646 -755}\special{pa 641 -760}\special{pa 636 -765}\special{pa 631 -770}\special{pa 628 -774}\special{fp}%
-\special{pa 604 -796}\special{pa 600 -800}\special{pa 595 -805}\special{pa 589 -810}\special{pa 584 -815}\special{pa 580 -818}\special{fp}%
-\special{pa 554 -838}\special{pa 550 -842}\special{pa 544 -846}\special{pa 539 -850}\special{pa 533 -854}\special{pa 528 -858}\special{fp}%
-\special{pa 501 -876}\special{pa 497 -878}\special{pa 491 -882}\special{pa 484 -886}\special{pa 478 -889}\special{pa 472 -892}\special{fp}%
-\special{pa 444 -908}\special{pa 440 -910}\special{pa 434 -913}\special{pa 427 -916}\special{pa 421 -919}\special{pa 414 -922}\special{fp}%
-%
-%
-\end{picture}}% \ No newline at end of file
diff --git a/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/bowdata2.tex b/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/bowdata2.tex
deleted file mode 100644
index 586ee3ea..00000000
--- a/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/bowdata2.tex
+++ /dev/null
@@ -1,248 +0,0 @@
-%%% test.tex 2014-11-30 22:4
-%%% test.sce 2014-11-30 22:4
-{\unitlength=6mm%
-\begin{picture}%
-( 20.00000, 7.00000)( -3.00000, -1.00000)%
-\special{pn 8}%
-%
-\settowidth{\Width}{\rotatebox[origin=c]{59}{$a$}}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{\rotatebox[origin=c]{59}{$a$}}\settodepth{\Depth}{\rotatebox[origin=c]{59}{$a$}}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(-1.0000,2.8000){\hspace*{\Width}\raisebox{\Height}{\rotatebox[origin=c]{59}{$a$}}}%
-%
-%
-\settowidth{\Width}{\rotatebox[origin=c]{59}{$a$}}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{\rotatebox[origin=c]{59}{$a$}}\settodepth{\Depth}{\rotatebox[origin=c]{59}{$a$}}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(2.0772,2.9286){\hspace*{\Width}\raisebox{\Height}{\rotatebox[origin=c]{59}{$a$}}}%
-%
-%
-\settowidth{\Width}{\rotatebox[origin=c]{59}{$a$}}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{\rotatebox[origin=c]{59}{$a$}}\settodepth{\Depth}{\rotatebox[origin=c]{59}{$a$}}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(4.9228,2.6714){\hspace*{\Width}\raisebox{\Height}{\rotatebox[origin=c]{59}{$a$}}}%
-%
-%
-\settowidth{\Width}{\rotatebox[origin=c]{59}{$a$}}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{\rotatebox[origin=c]{59}{$a$}}\settodepth{\Depth}{\rotatebox[origin=c]{59}{$a$}}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(7.8714,2.8772){\hspace*{\Width}\raisebox{\Height}{\rotatebox[origin=c]{59}{$a$}}}%
-%
-%
-\settowidth{\Width}{\rotatebox[units=-360,origin=c]{121}{$a$}}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{\rotatebox[units=-360,origin=c]{121}{$a$}}\settodepth{\Depth}{\rotatebox[units=-360,origin=c]{121}{$a$}}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(11.0000,2.8000){\hspace*{\Width}\raisebox{\Height}{\rotatebox[units=-360,origin=c]{121}{$a$}}}%
-%
-%
-\settowidth{\Width}{\rotatebox[units=-360,origin=c]{121}{$a$}}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{\rotatebox[units=-360,origin=c]{121}{$a$}}\settodepth{\Depth}{\rotatebox[units=-360,origin=c]{121}{$a$}}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(13.9228,2.6714){\hspace*{\Width}\raisebox{\Height}{\rotatebox[units=-360,origin=c]{121}{$a$}}}%
-%
-%
-\settowidth{\Width}{rot}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{rot}\settodepth{\Depth}{rot}\setlength{\Height}{-\Height}%
-\put(-2.0000,-0.1500){\hspace*{\Width}\raisebox{\Height}{rot}}%
-%
-%
-\settowidth{\Width}{t3}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{t3}\settodepth{\Depth}{t3}\setlength{\Height}{-\Height}%
-\put(1.0000,-0.1500){\hspace*{\Width}\raisebox{\Height}{t3}}%
-%
-%
-\settowidth{\Width}{t-3}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{t-3}\settodepth{\Depth}{t-3}\setlength{\Height}{-\Height}%
-\put(4.0000,-0.1500){\hspace*{\Width}\raisebox{\Height}{t-3}}%
-%
-%
-\settowidth{\Width}{n3}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{n3}\settodepth{\Depth}{n3}\setlength{\Height}{-\Height}%
-\put(7.0000,-0.1500){\hspace*{\Width}\raisebox{\Height}{n3}}%
-%
-%
-\settowidth{\Width}{u}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{u}\settodepth{\Depth}{u}\setlength{\Height}{-\Height}%
-\put(10.0000,-0.1500){\hspace*{\Width}\raisebox{\Height}{u}}%
-%
-%
-\settowidth{\Width}{t3u}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{t3u}\settodepth{\Depth}{t3u}\setlength{\Height}{-\Height}%
-\put(13.0000,-0.1500){\hspace*{\Width}\raisebox{\Height}{t3u}}%
-%
-%
-\special{pa -472 0}\special{pa 236 -1181}%
-\special{fp}%
-\special{pa 236 0}\special{pa 945 -1181}%
-\special{fp}%
-\special{pa 945 0}\special{pa 1654 -1181}%
-\special{fp}%
-\special{pa 1654 0}\special{pa 2362 -1181}%
-\special{fp}%
-\special{pa 2362 0}\special{pa 3071 -1181}%
-\special{fp}%
-\special{pa 3071 0}\special{pa 3780 -1181}%
-\special{fp}%
-\special{pa 236 -1181}\special{pa 227 -1174}\special{pa 217 -1167}\special{pa 208 -1160}%
-\special{pa 199 -1153}\special{pa 189 -1145}\special{pa 180 -1138}\special{pa 171 -1131}%
-\special{pa 162 -1123}\special{pa 153 -1116}\special{pa 144 -1108}\special{pa 135 -1101}%
-\special{pa 126 -1093}\special{pa 117 -1085}\special{pa 108 -1077}\special{pa 99 -1069}%
-\special{pa 91 -1061}\special{pa 82 -1054}\special{pa 73 -1045}\special{pa 65 -1037}%
-\special{pa 56 -1029}\special{pa 48 -1021}\special{pa 40 -1013}\special{pa 31 -1004}%
-\special{pa 23 -996}\special{pa 15 -988}\special{pa 7 -979}\special{pa -2 -971}\special{pa -10 -962}%
-\special{pa -18 -953}\special{pa -26 -945}\special{pa -34 -936}\special{pa -41 -927}%
-\special{pa -49 -918}\special{pa -57 -910}\special{pa -65 -901}\special{pa -72 -892}%
-\special{pa -80 -883}\special{pa -87 -873}\special{pa -95 -864}\special{pa -102 -855}%
-\special{pa -109 -846}\special{pa -116 -837}\special{pa -124 -827}\special{pa -131 -818}%
-\special{pa -138 -808}\special{pa -145 -799}\special{pa -152 -789}\special{pa -159 -780}%
-\special{pa -165 -770}\special{pa -172 -761}%
-\special{fp}%
-\special{pa -294 -558}\special{pa -299 -548}\special{pa -304 -537}\special{pa -309 -527}%
-\special{pa -315 -516}\special{pa -320 -505}\special{pa -325 -495}\special{pa -330 -484}%
-\special{pa -334 -473}\special{pa -339 -463}\special{pa -344 -452}\special{pa -349 -441}%
-\special{pa -353 -430}\special{pa -358 -419}\special{pa -362 -408}\special{pa -366 -397}%
-\special{pa -371 -386}\special{pa -375 -375}\special{pa -379 -364}\special{pa -383 -353}%
-\special{pa -387 -342}\special{pa -391 -331}\special{pa -395 -320}\special{pa -399 -309}%
-\special{pa -402 -298}\special{pa -406 -286}\special{pa -410 -275}\special{pa -413 -264}%
-\special{pa -416 -253}\special{pa -420 -241}\special{pa -423 -230}\special{pa -426 -219}%
-\special{pa -429 -207}\special{pa -432 -196}\special{pa -435 -185}\special{pa -438 -173}%
-\special{pa -441 -162}\special{pa -444 -150}\special{pa -446 -139}\special{pa -449 -127}%
-\special{pa -452 -116}\special{pa -454 -104}\special{pa -456 -93}\special{pa -459 -81}%
-\special{pa -461 -70}\special{pa -463 -58}\special{pa -465 -47}\special{pa -467 -35}%
-\special{pa -469 -23}\special{pa -471 -12}\special{pa -472 0}%
-\special{fp}%
-\special{pa 945 -1181}\special{pa 935 -1174}\special{pa 926 -1167}\special{pa 917 -1160}%
-\special{pa 907 -1153}\special{pa 898 -1145}\special{pa 889 -1138}\special{pa 880 -1131}%
-\special{pa 871 -1123}\special{pa 862 -1116}\special{pa 852 -1108}\special{pa 844 -1101}%
-\special{pa 835 -1093}\special{pa 826 -1085}\special{pa 817 -1077}\special{pa 808 -1069}%
-\special{pa 799 -1061}\special{pa 791 -1054}\special{pa 782 -1045}\special{pa 774 -1037}%
-\special{pa 765 -1029}\special{pa 757 -1021}\special{pa 748 -1013}\special{pa 740 -1004}%
-\special{pa 732 -996}\special{pa 723 -988}\special{pa 715 -979}\special{pa 707 -971}%
-\special{pa 699 -962}\special{pa 691 -953}\special{pa 683 -945}\special{pa 675 -936}%
-\special{pa 667 -927}\special{pa 660 -918}\special{pa 652 -910}\special{pa 644 -901}%
-\special{pa 637 -892}\special{pa 629 -883}\special{pa 622 -873}\special{pa 614 -864}%
-\special{pa 607 -855}\special{pa 599 -846}\special{pa 592 -837}\special{pa 585 -827}%
-\special{pa 578 -818}\special{pa 571 -808}\special{pa 564 -799}\special{pa 557 -789}%
-\special{pa 550 -780}\special{pa 543 -770}\special{pa 537 -761}%
-\special{fp}%
-\special{pa 415 -558}\special{pa 410 -548}\special{pa 404 -537}\special{pa 399 -527}%
-\special{pa 394 -516}\special{pa 389 -505}\special{pa 384 -495}\special{pa 379 -484}%
-\special{pa 374 -473}\special{pa 369 -463}\special{pa 365 -452}\special{pa 360 -441}%
-\special{pa 356 -430}\special{pa 351 -419}\special{pa 347 -408}\special{pa 342 -397}%
-\special{pa 338 -386}\special{pa 334 -375}\special{pa 330 -364}\special{pa 326 -353}%
-\special{pa 322 -342}\special{pa 318 -331}\special{pa 314 -320}\special{pa 310 -309}%
-\special{pa 306 -298}\special{pa 303 -286}\special{pa 299 -275}\special{pa 296 -264}%
-\special{pa 292 -253}\special{pa 289 -241}\special{pa 286 -230}\special{pa 282 -219}%
-\special{pa 279 -207}\special{pa 276 -196}\special{pa 273 -185}\special{pa 270 -173}%
-\special{pa 268 -162}\special{pa 265 -150}\special{pa 262 -139}\special{pa 260 -127}%
-\special{pa 257 -116}\special{pa 255 -104}\special{pa 252 -93}\special{pa 250 -81}%
-\special{pa 248 -70}\special{pa 246 -58}\special{pa 244 -47}\special{pa 242 -35}\special{pa 240 -23}%
-\special{pa 238 -12}\special{pa 236 0}%
-\special{fp}%
-\special{pa 1654 -1181}\special{pa 1644 -1174}\special{pa 1635 -1167}\special{pa 1625 -1160}%
-\special{pa 1616 -1153}\special{pa 1607 -1145}\special{pa 1598 -1138}\special{pa 1588 -1131}%
-\special{pa 1579 -1123}\special{pa 1570 -1116}\special{pa 1561 -1108}\special{pa 1552 -1101}%
-\special{pa 1543 -1093}\special{pa 1534 -1085}\special{pa 1526 -1077}\special{pa 1517 -1069}%
-\special{pa 1508 -1061}\special{pa 1499 -1054}\special{pa 1491 -1045}\special{pa 1482 -1037}%
-\special{pa 1474 -1029}\special{pa 1465 -1021}\special{pa 1457 -1013}\special{pa 1449 -1004}%
-\special{pa 1440 -996}\special{pa 1432 -988}\special{pa 1424 -979}\special{pa 1416 -971}%
-\special{pa 1408 -962}\special{pa 1400 -953}\special{pa 1392 -945}\special{pa 1384 -936}%
-\special{pa 1376 -927}\special{pa 1368 -918}\special{pa 1360 -910}\special{pa 1353 -901}%
-\special{pa 1345 -892}\special{pa 1338 -883}\special{pa 1330 -873}\special{pa 1323 -864}%
-\special{pa 1315 -855}\special{pa 1308 -846}\special{pa 1301 -837}\special{pa 1294 -827}%
-\special{pa 1287 -818}\special{pa 1280 -808}\special{pa 1273 -799}\special{pa 1266 -789}%
-\special{pa 1259 -780}\special{pa 1252 -770}\special{pa 1245 -761}%
-\special{fp}%
-\special{pa 1124 -558}\special{pa 1118 -548}\special{pa 1113 -537}\special{pa 1108 -527}%
-\special{pa 1103 -516}\special{pa 1098 -505}\special{pa 1093 -495}\special{pa 1088 -484}%
-\special{pa 1083 -473}\special{pa 1078 -463}\special{pa 1073 -452}\special{pa 1069 -441}%
-\special{pa 1064 -430}\special{pa 1060 -419}\special{pa 1055 -408}\special{pa 1051 -397}%
-\special{pa 1047 -386}\special{pa 1042 -375}\special{pa 1038 -364}\special{pa 1034 -353}%
-\special{pa 1030 -342}\special{pa 1026 -331}\special{pa 1022 -320}\special{pa 1019 -309}%
-\special{pa 1015 -298}\special{pa 1011 -286}\special{pa 1008 -275}\special{pa 1004 -264}%
-\special{pa 1001 -253}\special{pa 998 -241}\special{pa 994 -230}\special{pa 991 -219}%
-\special{pa 988 -207}\special{pa 985 -196}\special{pa 982 -185}\special{pa 979 -173}%
-\special{pa 976 -162}\special{pa 974 -150}\special{pa 971 -139}\special{pa 968 -127}%
-\special{pa 966 -116}\special{pa 963 -104}\special{pa 961 -93}\special{pa 959 -81}%
-\special{pa 957 -70}\special{pa 954 -58}\special{pa 952 -47}\special{pa 950 -35}\special{pa 948 -23}%
-\special{pa 947 -12}\special{pa 945 0}%
-\special{fp}%
-\special{pa 2362 -1181}\special{pa 2353 -1174}\special{pa 2343 -1167}\special{pa 2334 -1160}%
-\special{pa 2325 -1153}\special{pa 2315 -1145}\special{pa 2306 -1138}\special{pa 2297 -1131}%
-\special{pa 2288 -1123}\special{pa 2279 -1116}\special{pa 2270 -1108}\special{pa 2261 -1101}%
-\special{pa 2252 -1093}\special{pa 2243 -1085}\special{pa 2234 -1077}\special{pa 2225 -1069}%
-\special{pa 2217 -1061}\special{pa 2208 -1054}\special{pa 2199 -1045}\special{pa 2191 -1037}%
-\special{pa 2182 -1029}\special{pa 2174 -1021}\special{pa 2166 -1013}\special{pa 2157 -1004}%
-\special{pa 2149 -996}\special{pa 2141 -988}\special{pa 2133 -979}\special{pa 2124 -971}%
-\special{pa 2116 -962}\special{pa 2108 -953}\special{pa 2100 -945}\special{pa 2092 -936}%
-\special{pa 2085 -927}\special{pa 2077 -918}\special{pa 2069 -910}\special{pa 2061 -901}%
-\special{pa 2054 -892}\special{pa 2046 -883}\special{pa 2039 -873}\special{pa 2031 -864}%
-\special{pa 2024 -855}\special{pa 2017 -846}\special{pa 2010 -837}\special{pa 2002 -827}%
-\special{pa 1995 -818}\special{pa 1988 -808}\special{pa 1981 -799}\special{pa 1974 -789}%
-\special{pa 1967 -780}\special{pa 1961 -770}\special{pa 1954 -761}%
-\special{fp}%
-\special{pa 1832 -558}\special{pa 1827 -548}\special{pa 1822 -537}\special{pa 1817 -527}%
-\special{pa 1811 -516}\special{pa 1806 -505}\special{pa 1801 -495}\special{pa 1796 -484}%
-\special{pa 1792 -473}\special{pa 1787 -463}\special{pa 1782 -452}\special{pa 1777 -441}%
-\special{pa 1773 -430}\special{pa 1768 -419}\special{pa 1764 -408}\special{pa 1760 -397}%
-\special{pa 1755 -386}\special{pa 1751 -375}\special{pa 1747 -364}\special{pa 1743 -353}%
-\special{pa 1739 -342}\special{pa 1735 -331}\special{pa 1731 -320}\special{pa 1727 -309}%
-\special{pa 1724 -298}\special{pa 1720 -286}\special{pa 1716 -275}\special{pa 1713 -264}%
-\special{pa 1710 -253}\special{pa 1706 -241}\special{pa 1703 -230}\special{pa 1700 -219}%
-\special{pa 1697 -207}\special{pa 1694 -196}\special{pa 1691 -185}\special{pa 1688 -173}%
-\special{pa 1685 -162}\special{pa 1682 -150}\special{pa 1680 -139}\special{pa 1677 -127}%
-\special{pa 1674 -116}\special{pa 1672 -104}\special{pa 1670 -93}\special{pa 1667 -81}%
-\special{pa 1665 -70}\special{pa 1663 -58}\special{pa 1661 -47}\special{pa 1659 -35}%
-\special{pa 1657 -23}\special{pa 1655 -12}\special{pa 1654 0}%
-\special{fp}%
-\special{pa 3071 -1181}\special{pa 3061 -1174}\special{pa 3052 -1167}\special{pa 3043 -1160}%
-\special{pa 3033 -1153}\special{pa 3024 -1145}\special{pa 3015 -1138}\special{pa 3006 -1131}%
-\special{pa 2997 -1123}\special{pa 2987 -1116}\special{pa 2978 -1108}\special{pa 2969 -1101}%
-\special{pa 2961 -1093}\special{pa 2952 -1085}\special{pa 2943 -1077}\special{pa 2934 -1069}%
-\special{pa 2925 -1061}\special{pa 2917 -1054}\special{pa 2908 -1045}\special{pa 2900 -1037}%
-\special{pa 2891 -1029}\special{pa 2883 -1021}\special{pa 2874 -1013}\special{pa 2866 -1004}%
-\special{pa 2858 -996}\special{pa 2849 -988}\special{pa 2841 -979}\special{pa 2833 -971}%
-\special{pa 2825 -962}\special{pa 2817 -953}\special{pa 2809 -945}\special{pa 2801 -936}%
-\special{pa 2793 -927}\special{pa 2786 -918}\special{pa 2778 -910}\special{pa 2770 -901}%
-\special{pa 2763 -892}\special{pa 2755 -883}\special{pa 2748 -873}\special{pa 2740 -864}%
-\special{pa 2733 -855}\special{pa 2725 -846}\special{pa 2718 -837}\special{pa 2711 -827}%
-\special{pa 2704 -818}\special{pa 2697 -808}\special{pa 2690 -799}\special{pa 2683 -789}%
-\special{pa 2676 -780}\special{pa 2669 -770}\special{pa 2662 -761}%
-\special{fp}%
-\special{pa 2541 -558}\special{pa 2536 -548}\special{pa 2530 -537}\special{pa 2525 -527}%
-\special{pa 2520 -516}\special{pa 2515 -505}\special{pa 2510 -495}\special{pa 2505 -484}%
-\special{pa 2500 -473}\special{pa 2495 -463}\special{pa 2491 -452}\special{pa 2486 -441}%
-\special{pa 2482 -430}\special{pa 2477 -419}\special{pa 2473 -408}\special{pa 2468 -397}%
-\special{pa 2464 -386}\special{pa 2460 -375}\special{pa 2456 -364}\special{pa 2452 -353}%
-\special{pa 2448 -342}\special{pa 2444 -331}\special{pa 2440 -320}\special{pa 2436 -309}%
-\special{pa 2432 -298}\special{pa 2429 -286}\special{pa 2425 -275}\special{pa 2422 -264}%
-\special{pa 2418 -253}\special{pa 2415 -241}\special{pa 2412 -230}\special{pa 2408 -219}%
-\special{pa 2405 -207}\special{pa 2402 -196}\special{pa 2399 -185}\special{pa 2396 -173}%
-\special{pa 2394 -162}\special{pa 2391 -150}\special{pa 2388 -139}\special{pa 2386 -127}%
-\special{pa 2383 -116}\special{pa 2381 -104}\special{pa 2378 -93}\special{pa 2376 -81}%
-\special{pa 2374 -70}\special{pa 2372 -58}\special{pa 2370 -47}\special{pa 2368 -35}%
-\special{pa 2366 -23}\special{pa 2364 -12}\special{pa 2362 0}%
-\special{fp}%
-\special{pa 3780 -1181}\special{pa 3770 -1174}\special{pa 3761 -1167}\special{pa 3751 -1160}%
-\special{pa 3742 -1153}\special{pa 3733 -1145}\special{pa 3724 -1138}\special{pa 3714 -1131}%
-\special{pa 3705 -1123}\special{pa 3696 -1116}\special{pa 3687 -1108}\special{pa 3678 -1101}%
-\special{pa 3669 -1093}\special{pa 3660 -1085}\special{pa 3652 -1077}\special{pa 3643 -1069}%
-\special{pa 3634 -1061}\special{pa 3625 -1054}\special{pa 3617 -1045}\special{pa 3608 -1037}%
-\special{pa 3600 -1029}\special{pa 3591 -1021}\special{pa 3583 -1013}\special{pa 3575 -1004}%
-\special{pa 3566 -996}\special{pa 3558 -988}\special{pa 3550 -979}\special{pa 3542 -971}%
-\special{pa 3534 -962}\special{pa 3526 -953}\special{pa 3518 -945}\special{pa 3510 -936}%
-\special{pa 3502 -927}\special{pa 3494 -918}\special{pa 3486 -910}\special{pa 3479 -901}%
-\special{pa 3471 -892}\special{pa 3464 -883}\special{pa 3456 -873}\special{pa 3449 -864}%
-\special{pa 3441 -855}\special{pa 3434 -846}\special{pa 3427 -837}\special{pa 3420 -827}%
-\special{pa 3413 -818}\special{pa 3405 -808}\special{pa 3398 -799}\special{pa 3392 -789}%
-\special{pa 3385 -780}\special{pa 3378 -770}\special{pa 3371 -761}%
-\special{fp}%
-\special{pa 3250 -558}\special{pa 3244 -548}\special{pa 3239 -537}\special{pa 3234 -527}%
-\special{pa 3229 -516}\special{pa 3224 -505}\special{pa 3219 -495}\special{pa 3214 -484}%
-\special{pa 3209 -473}\special{pa 3204 -463}\special{pa 3199 -452}\special{pa 3195 -441}%
-\special{pa 3190 -430}\special{pa 3186 -419}\special{pa 3181 -408}\special{pa 3177 -397}%
-\special{pa 3173 -386}\special{pa 3168 -375}\special{pa 3164 -364}\special{pa 3160 -353}%
-\special{pa 3156 -342}\special{pa 3152 -331}\special{pa 3148 -320}\special{pa 3145 -309}%
-\special{pa 3141 -298}\special{pa 3137 -286}\special{pa 3134 -275}\special{pa 3130 -264}%
-\special{pa 3127 -253}\special{pa 3124 -241}\special{pa 3120 -230}\special{pa 3117 -219}%
-\special{pa 3114 -207}\special{pa 3111 -196}\special{pa 3108 -185}\special{pa 3105 -173}%
-\special{pa 3102 -162}\special{pa 3100 -150}\special{pa 3097 -139}\special{pa 3094 -127}%
-\special{pa 3092 -116}\special{pa 3089 -104}\special{pa 3087 -93}\special{pa 3085 -81}%
-\special{pa 3082 -70}\special{pa 3080 -58}\special{pa 3078 -47}\special{pa 3076 -35}%
-\special{pa 3074 -23}\special{pa 3073 -12}\special{pa 3071 0}%
-\special{fp}%
-\end{picture}}% \ No newline at end of file
diff --git a/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/boxplot.tex b/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/boxplot.tex
deleted file mode 100644
index 4960d1a6..00000000
--- a/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/boxplot.tex
+++ /dev/null
@@ -1,115 +0,0 @@
-%%% t4boxplot2.tex 2016-4-23 9:27
-%%% t4boxplot2.sce 2016-4-23 9:27
-{\unitlength=1cm%
-\begin{picture}%
-( 8.00000, 6.00000)( -1.00000, -1.00000)%
-\special{pn 8}%
-%
-\special{pa 394 -295}\special{pa 394 -492}%
-\special{fp}%
-\special{pa 1181 -197}\special{pa 1181 -591}\special{pa 1713 -591}\special{pa 1713 -197}%
-\special{pa 1181 -197}%
-\special{fp}%
-\special{pa 1949 -295}\special{pa 1949 -492}%
-\special{fp}%
-\special{pn 16}%
-\special{pa 1378 -197}\special{pa 1378 -591}%
-\special{fp}%
-\special{pn 8}%
-\special{pa 394 -394}\special{pa 431 -394}\special{fp}\special{pa 469 -394}\special{pa 506 -394}\special{fp}%
-\special{pa 544 -394}\special{pa 581 -394}\special{fp}\special{pa 619 -394}\special{pa 656 -394}\special{fp}%
-\special{pa 694 -394}\special{pa 731 -394}\special{fp}\special{pa 769 -394}\special{pa 806 -394}\special{fp}%
-\special{pa 844 -394}\special{pa 881 -394}\special{fp}\special{pa 919 -394}\special{pa 956 -394}\special{fp}%
-\special{pa 994 -394}\special{pa 1031 -394}\special{fp}\special{pa 1069 -394}\special{pa 1106 -394}\special{fp}%
-\special{pa 1144 -394}\special{pa 1181 -394}\special{fp}%
-%
-\special{pa 1713 -394}\special{pa 1746 -394}\special{fp}\special{pa 1780 -394}\special{pa 1814 -394}\special{fp}%
-\special{pa 1848 -394}\special{pa 1881 -394}\special{fp}\special{pa 1915 -394}\special{pa 1949 -394}\special{fp}%
-%
-%
-\special{pa 787 -1083}\special{pa 787 -1280}%
-\special{fp}%
-\special{pa 1299 -984}\special{pa 1299 -1378}\special{pa 1673 -1378}\special{pa 1673 -984}%
-\special{pa 1299 -984}%
-\special{fp}%
-\special{pa 1969 -1083}\special{pa 1969 -1280}%
-\special{fp}%
-\special{pn 16}%
-\special{pa 1378 -984}\special{pa 1378 -1378}%
-\special{fp}%
-\special{pn 8}%
-\special{pa 787 -1181}\special{pa 827 -1181}\special{fp}\special{pa 866 -1181}\special{pa 906 -1181}\special{fp}%
-\special{pa 945 -1181}\special{pa 984 -1181}\special{fp}\special{pa 1024 -1181}\special{pa 1063 -1181}\special{fp}%
-\special{pa 1102 -1181}\special{pa 1142 -1181}\special{fp}\special{pa 1181 -1181}\special{pa 1220 -1181}\special{fp}%
-\special{pa 1260 -1181}\special{pa 1299 -1181}\special{fp}%
-%
-\special{pa 1673 -1181}\special{pa 1706 -1181}\special{fp}\special{pa 1739 -1181}\special{pa 1772 -1181}\special{fp}%
-\special{pa 1804 -1181}\special{pa 1837 -1181}\special{fp}\special{pa 1870 -1181}\special{pa 1903 -1181}\special{fp}%
-\special{pa 1936 -1181}\special{pa 1969 -1181}\special{fp}%
-%
-\special{pa 0 0}\special{pa 2386 0}\special{pa 2386 -1709}\special{pa 0 -1709}\special{pa 0 0}%
-\special{fp}%
-\settowidth{\Width}{$0$}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{$0$}\settodepth{\Depth}{$0$}\setlength{\Height}{-\Height}%
-\put(0.0000,-0.1500){\hspace*{\Width}\raisebox{\Height}{$0$}}%
-%
-%
-\special{pa 0 0}\special{pa 0 39}%
-\special{fp}%
-\settowidth{\Width}{$1$}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{$1$}\settodepth{\Depth}{$1$}\setlength{\Height}{-\Height}%
-\put(1.0000,-0.1500){\hspace*{\Width}\raisebox{\Height}{$1$}}%
-%
-%
-\special{pa 394 0}\special{pa 394 39}%
-\special{fp}%
-\settowidth{\Width}{$2$}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{$2$}\settodepth{\Depth}{$2$}\setlength{\Height}{-\Height}%
-\put(2.0000,-0.1500){\hspace*{\Width}\raisebox{\Height}{$2$}}%
-%
-%
-\special{pa 787 0}\special{pa 787 39}%
-\special{fp}%
-\settowidth{\Width}{$3$}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{$3$}\settodepth{\Depth}{$3$}\setlength{\Height}{-\Height}%
-\put(3.0000,-0.1500){\hspace*{\Width}\raisebox{\Height}{$3$}}%
-%
-%
-\special{pa 1181 0}\special{pa 1181 39}%
-\special{fp}%
-\settowidth{\Width}{$4$}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{$4$}\settodepth{\Depth}{$4$}\setlength{\Height}{-\Height}%
-\put(4.0000,-0.1500){\hspace*{\Width}\raisebox{\Height}{$4$}}%
-%
-%
-\special{pa 1575 0}\special{pa 1575 39}%
-\special{fp}%
-\settowidth{\Width}{$5$}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{$5$}\settodepth{\Depth}{$5$}\setlength{\Height}{-\Height}%
-\put(5.0000,-0.1500){\hspace*{\Width}\raisebox{\Height}{$5$}}%
-%
-%
-\special{pa 1969 0}\special{pa 1969 39}%
-\special{fp}%
-\settowidth{\Width}{$6$}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{$6$}\settodepth{\Depth}{$6$}\setlength{\Height}{-\Height}%
-\put(6.0000,-0.1500){\hspace*{\Width}\raisebox{\Height}{$6$}}%
-%
-%
-\special{pa 2362 0}\special{pa 2362 39}%
-\special{fp}%
-\settowidth{\Width}{$\mbox{dt1}$}\setlength{\Width}{-1\Width}%
-\settoheight{\Height}{$\mbox{dt1}$}\settodepth{\Depth}{$\mbox{dt1}$}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(-0.1500,1.0000){\hspace*{\Width}\raisebox{\Height}{$\mbox{dt1}$}}%
-%
-%
-\special{pa 0 -394}\special{pa -39 -394}%
-\special{fp}%
-\settowidth{\Width}{$\mbox{dt2}$}\setlength{\Width}{-1\Width}%
-\settoheight{\Height}{$\mbox{dt2}$}\settodepth{\Depth}{$\mbox{dt2}$}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(-0.1500,3.0000){\hspace*{\Width}\raisebox{\Height}{$\mbox{dt2}$}}%
-%
-%
-\special{pa 0 -1181}\special{pa -39 -1181}%
-\special{fp}%
-\end{picture}}% \ No newline at end of file
diff --git a/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/checkCR.tex b/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/checkCR.tex
deleted file mode 100644
index 9a938af7..00000000
--- a/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/checkCR.tex
+++ /dev/null
@@ -1,52 +0,0 @@
-%%% checkb.tex 2015-1-13 16:15
-%%% checkb.sce 2015-1-13 13:55
-{\unitlength=1cm%
-\begin{picture}%
-( 18.13000, 4.08000)( -4.96000, -1.99000)%
-\special{pn 8}%
-%
-\special{pa -1466 81}\special{pa -1474 76}\special{pa -1484 75}\special{pa -1492 79}%
-\special{pa -1498 86}\special{pa -1500 96}\special{pa -1497 105}\special{pa -1490 111}%
-\special{pa -1482 114}\special{pa -1472 112}\special{pa -1465 107}\special{pa -1461 98}%
-\special{pa -1462 89}\special{pa -1466 81}\special{sh 1}\special{fp}%
-\special{pa -994 -486}\special{pa -1002 -491}\special{pa -1011 -492}\special{pa -1020 -488}%
-\special{pa -1026 -481}\special{pa -1028 -471}\special{pa -1025 -462}\special{pa -1018 -456}%
-\special{pa -1009 -453}\special{pa -1000 -454}\special{pa -992 -460}\special{pa -989 -469}%
-\special{pa -989 -478}\special{pa -994 -486}\special{sh 1}\special{fp}%
-\special{pa 415 108}\special{pa 407 103}\special{pa 398 103}\special{pa 389 107}\special{pa 384 114}%
-\special{pa 382 123}\special{pa 385 132}\special{pa 391 139}\special{pa 400 142}\special{pa 410 140}%
-\special{pa 417 134}\special{pa 421 126}\special{pa 420 116}\special{pa 415 108}\special{sh 1}\special{fp}%
-\special{pa 1207 -427}\special{pa 1199 -432}\special{pa 1189 -433}\special{pa 1181 -429}%
-\special{pa 1175 -421}\special{pa 1173 -412}\special{pa 1176 -403}\special{pa 1183 -397}%
-\special{pa 1192 -394}\special{pa 1201 -395}\special{pa 1208 -401}\special{pa 1212 -410}%
-\special{pa 1212 -419}\special{pa 1207 -427}\special{sh 1}\special{fp}%
-\settowidth{\Width}{A}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{A}\settodepth{\Depth}{A}\setlength{\Height}{-\Height}%
-\put(-3.7600,-0.3900){\hspace*{\Width}\raisebox{\Height}{A}}%
-%
-%
-\settowidth{\Width}{B}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{B}\settodepth{\Depth}{B}\setlength{\Height}{\Depth}%
-\put(-2.5600,1.3500){\hspace*{\Width}\raisebox{\Height}{B}}%
-%
-%
-\settowidth{\Width}{C}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{C}\settodepth{\Depth}{C}\setlength{\Height}{-\Height}%
-\put(1.0200,-0.4600){\hspace*{\Width}\raisebox{\Height}{C}}%
-%
-%
-\settowidth{\Width}{D}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{D}\settodepth{\Depth}{D}\setlength{\Height}{\Depth}%
-\put(3.0300,1.2000){\hspace*{\Width}\raisebox{\Height}{D}}%
-%
-%
-\special{pa -1480 94}\special{pa -1533 54}\special{pa -1552 -5}\special{pa -1542 -75}%
-\special{pa -1507 -152}\special{pa -1451 -230}\special{pa -1378 -306}\special{pa -1293 -373}%
-\special{pa -1201 -426}\special{pa -1104 -461}\special{pa -1008 -472}\special{pa -902 -455}%
-\special{pa -775 -410}\special{pa -634 -344}\special{pa -481 -264}\special{pa -322 -177}%
-\special{pa -162 -89}\special{pa -5 -9}\special{pa 145 58}\special{pa 282 104}\special{pa 402 122}%
-\special{pa 519 113}\special{pa 647 81}\special{pa 779 31}\special{pa 906 -32}\special{pa 1023 -103}%
-\special{pa 1122 -177}\special{pa 1195 -250}\special{pa 1236 -317}\special{pa 1238 -373}%
-\special{pa 1193 -413}%
-\special{fp}%
-\end{picture}}% \ No newline at end of file
diff --git a/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/checkb1.tex b/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/checkb1.tex
deleted file mode 100644
index 46e2c8d5..00000000
--- a/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/checkb1.tex
+++ /dev/null
@@ -1,38 +0,0 @@
-%%% checkb.tex 2015-1-6 7:22
-%%% checkb.sce 2015-1-6 6:35
-{\unitlength=1cm%
-\begin{picture}%
-( 5.95000, 4.06000)( -3.00000, -2.00000)%
-\special{pn 8}%
-%
-\special{pa -738 419}\special{pa -746 414}\special{pa -756 414}\special{pa -764 418}%
-\special{pa -770 425}\special{pa -772 434}\special{pa -769 443}\special{pa -762 450}%
-\special{pa -753 453}\special{pa -744 451}\special{pa -736 445}\special{pa -733 437}%
-\special{pa -733 427}\special{pa -738 419}\special{sh 1}\special{fp}%
-\special{pa 888 470}\special{pa 880 465}\special{pa 870 465}\special{pa 862 469}\special{pa 856 476}%
-\special{pa 854 485}\special{pa 857 494}\special{pa 864 501}\special{pa 873 504}\special{pa 882 502}%
-\special{pa 890 496}\special{pa 893 488}\special{pa 893 478}\special{pa 888 470}\special{sh 1}\special{fp}%
-\special{pa -439 -238}\special{pa -447 -243}\special{pa -456 -244}\special{pa -465 -240}%
-\special{pa -471 -232}\special{pa -472 -223}\special{pa -470 -214}\special{pa -463 -208}%
-\special{pa -454 -205}\special{pa -445 -206}\special{pa -437 -212}\special{pa -433 -221}%
-\special{pa -434 -230}\special{pa -439 -238}\special{sh 1}\special{fp}%
-\settowidth{\Width}{A}\setlength{\Width}{-1\Width}%
-\settoheight{\Height}{A}\settodepth{\Depth}{A}\setlength{\Height}{-\Height}%
-\put(-2.0600,-1.2500){\hspace*{\Width}\raisebox{\Height}{A}}%
-%
-%
-\settowidth{\Width}{B}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{B}\settodepth{\Depth}{B}\setlength{\Height}{-\Height}%
-\put(2.3700,-1.3800){\hspace*{\Width}\raisebox{\Height}{B}}%
-%
-%
-\settowidth{\Width}{C}\setlength{\Width}{-1\Width}%
-\settoheight{\Height}{C}\settodepth{\Depth}{C}\setlength{\Height}{\Depth}%
-\put(-1.3000,0.7200){\hspace*{\Width}\raisebox{\Height}{C}}%
-%
-%
-\special{pa -752 433}\special{pa -682 315}\special{pa -591 225}\special{pa -480 162}%
-\special{pa -348 126}\special{pa -196 117}\special{pa -23 136}\special{pa 170 182}%
-\special{pa 384 255}\special{pa 619 356}\special{pa 874 484}%
-\special{fp}%
-\end{picture}}% \ No newline at end of file
diff --git a/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/checkb10.tex b/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/checkb10.tex
deleted file mode 100644
index 197c6ab0..00000000
--- a/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/checkb10.tex
+++ /dev/null
@@ -1,175 +0,0 @@
-%%% checkb.tex 2015-1-6 10:57
-%%% checkb.sce 2015-1-6 6:35
-{\unitlength=1cm%
-\begin{picture}%
-( 18.13000, 4.08000)( -4.96000, -1.99000)%
-\special{pn 8}%
-%
-\special{pa -1356 171}\special{pa -1364 166}\special{pa -1374 166}\special{pa -1382 170}%
-\special{pa -1388 177}\special{pa -1390 186}\special{pa -1387 195}\special{pa -1380 202}%
-\special{pa -1371 205}\special{pa -1362 203}\special{pa -1355 197}\special{pa -1351 189}%
-\special{pa -1351 179}\special{pa -1356 171}\special{sh 1}\special{fp}%
-\special{pa -982 -321}\special{pa -990 -326}\special{pa -1000 -326}\special{pa -1008 -323}%
-\special{pa -1014 -315}\special{pa -1016 -306}\special{pa -1013 -297}\special{pa -1006 -290}%
-\special{pa -997 -287}\special{pa -988 -289}\special{pa -981 -295}\special{pa -977 -304}%
-\special{pa -977 -313}\special{pa -982 -321}\special{sh 1}\special{fp}%
-\special{pa -69 293}\special{pa -77 288}\special{pa -86 288}\special{pa -95 292}\special{pa -101 299}%
-\special{pa -102 308}\special{pa -100 317}\special{pa -93 324}\special{pa -84 327}%
-\special{pa -75 325}\special{pa -67 319}\special{pa -63 311}\special{pa -64 301}\special{pa -69 293}%
-\special{sh 1}\special{fp}%
-\special{pa 754 344}\special{pa 746 339}\special{pa 737 339}\special{pa 728 343}\special{pa 722 350}%
-\special{pa 721 359}\special{pa 723 368}\special{pa 730 375}\special{pa 739 378}\special{pa 748 376}%
-\special{pa 756 370}\special{pa 760 362}\special{pa 759 352}\special{pa 754 344}\special{sh 1}\special{fp}%
-\special{pa 1341 -321}\special{pa 1333 -326}\special{pa 1323 -326}\special{pa 1315 -323}%
-\special{pa 1309 -315}\special{pa 1307 -306}\special{pa 1310 -297}\special{pa 1317 -290}%
-\special{pa 1326 -287}\special{pa 1335 -289}\special{pa 1342 -295}\special{pa 1346 -304}%
-\special{pa 1346 -313}\special{pa 1341 -321}\special{sh 1}\special{fp}%
-\special{pa 2010 376}\special{pa 2002 371}\special{pa 1993 370}\special{pa 1984 374}%
-\special{pa 1978 382}\special{pa 1976 391}\special{pa 1979 400}\special{pa 1986 407}%
-\special{pa 1995 409}\special{pa 2004 408}\special{pa 2012 402}\special{pa 2015 393}%
-\special{pa 2015 384}\special{pa 2010 376}\special{sh 1}\special{fp}%
-\special{pa 2679 -396}\special{pa 2671 -401}\special{pa 2662 -401}\special{pa 2653 -397}%
-\special{pa 2647 -390}\special{pa 2646 -381}\special{pa 2649 -372}\special{pa 2655 -365}%
-\special{pa 2664 -362}\special{pa 2673 -364}\special{pa 2681 -370}\special{pa 2685 -378}%
-\special{pa 2684 -388}\special{pa 2679 -396}\special{sh 1}\special{fp}%
-\special{pa -1230 6}\special{pa -1238 1}\special{pa -1248 0}\special{pa -1256 4}\special{pa -1262 12}%
-\special{pa -1264 21}\special{pa -1261 30}\special{pa -1254 37}\special{pa -1245 39}%
-\special{pa -1236 38}\special{pa -1229 32}\special{pa -1225 23}\special{pa -1225 14}%
-\special{pa -1230 6}\special{sh 1}\special{fp}%
-\special{pa -1108 -160}\special{pa -1116 -164}\special{pa -1126 -165}\special{pa -1134 -161}%
-\special{pa -1140 -154}\special{pa -1142 -144}\special{pa -1139 -135}\special{pa -1132 -129}%
-\special{pa -1123 -126}\special{pa -1114 -128}\special{pa -1107 -134}\special{pa -1103 -142}%
-\special{pa -1103 -152}\special{pa -1108 -160}\special{sh 1}\special{fp}%
-\special{pa -679 -116}\special{pa -687 -121}\special{pa -696 -122}\special{pa -705 -118}%
-\special{pa -711 -110}\special{pa -713 -101}\special{pa -710 -92}\special{pa -703 -86}%
-\special{pa -694 -83}\special{pa -685 -84}\special{pa -677 -90}\special{pa -674 -99}%
-\special{pa -674 -108}\special{pa -679 -116}\special{sh 1}\special{fp}%
-\special{pa -372 88}\special{pa -380 84}\special{pa -389 83}\special{pa -398 87}\special{pa -404 94}%
-\special{pa -405 104}\special{pa -403 113}\special{pa -396 119}\special{pa -387 122}%
-\special{pa -378 120}\special{pa -370 115}\special{pa -366 106}\special{pa -367 97}%
-\special{pa -372 88}\special{sh 1}\special{fp}%
-\special{pa 951 124}\special{pa 943 119}\special{pa 933 118}\special{pa 925 122}\special{pa 919 130}%
-\special{pa 917 139}\special{pa 920 148}\special{pa 927 155}\special{pa 936 157}\special{pa 945 156}%
-\special{pa 953 150}\special{pa 956 141}\special{pa 956 132}\special{pa 951 124}\special{sh 1}\special{fp}%
-\special{pa 1144 -101}\special{pa 1136 -105}\special{pa 1126 -106}\special{pa 1118 -102}%
-\special{pa 1112 -95}\special{pa 1110 -85}\special{pa 1113 -76}\special{pa 1120 -70}%
-\special{pa 1129 -67}\special{pa 1138 -69}\special{pa 1145 -74}\special{pa 1149 -83}%
-\special{pa 1149 -92}\special{pa 1144 -101}\special{sh 1}\special{fp}%
-\special{pa 1565 -89}\special{pa 1557 -94}\special{pa 1548 -94}\special{pa 1539 -90}%
-\special{pa 1533 -83}\special{pa 1532 -74}\special{pa 1534 -65}\special{pa 1541 -58}%
-\special{pa 1550 -55}\special{pa 1559 -57}\special{pa 1567 -63}\special{pa 1571 -71}%
-\special{pa 1570 -81}\special{pa 1565 -89}\special{sh 1}\special{fp}%
-\special{pa 1786 144}\special{pa 1778 139}\special{pa 1768 138}\special{pa 1760 142}%
-\special{pa 1754 149}\special{pa 1752 159}\special{pa 1755 168}\special{pa 1761 174}%
-\special{pa 1770 177}\special{pa 1780 175}\special{pa 1787 170}\special{pa 1791 161}%
-\special{pa 1790 152}\special{pa 1786 144}\special{sh 1}\special{fp}%
-\special{pa 2234 120}\special{pa 2226 115}\special{pa 2217 114}\special{pa 2208 118}%
-\special{pa 2203 126}\special{pa 2201 135}\special{pa 2204 144}\special{pa 2210 151}%
-\special{pa 2219 154}\special{pa 2229 152}\special{pa 2236 146}\special{pa 2240 137}%
-\special{pa 2239 128}\special{pa 2234 120}\special{sh 1}\special{fp}%
-\special{pa 2455 -136}\special{pa 2447 -141}\special{pa 2437 -141}\special{pa 2429 -138}%
-\special{pa 2423 -130}\special{pa 2421 -121}\special{pa 2424 -112}\special{pa 2431 -105}%
-\special{pa 2440 -102}\special{pa 2449 -104}\special{pa 2456 -110}\special{pa 2460 -118}%
-\special{pa 2460 -128}\special{pa 2455 -136}\special{sh 1}\special{fp}%
-\settowidth{\Width}{A}\setlength{\Width}{-1\Width}%
-\settoheight{\Height}{A}\settodepth{\Depth}{A}\setlength{\Height}{-\Height}%
-\put(-3.6300,-0.6200){\hspace*{\Width}\raisebox{\Height}{A}}%
-%
-%
-\settowidth{\Width}{Ap1}\setlength{\Width}{-1\Width}%
-\settoheight{\Height}{Ap1}\settodepth{\Depth}{Ap1}\setlength{\Height}{\Depth}%
-\put(-3.3100,0.1000){\hspace*{\Width}\raisebox{\Height}{Ap1}}%
-%
-%
-\settowidth{\Width}{Aq1}\setlength{\Width}{-1\Width}%
-\settoheight{\Height}{Aq1}\settodepth{\Depth}{Aq1}\setlength{\Height}{\Depth}%
-\put(-3.0000,0.5200){\hspace*{\Width}\raisebox{\Height}{Aq1}}%
-%
-%
-\settowidth{\Width}{Ap2}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{Ap2}\settodepth{\Depth}{Ap2}\setlength{\Height}{\Depth}%
-\put(-1.6100,0.4100){\hspace*{\Width}\raisebox{\Height}{Ap2}}%
-%
-%
-\settowidth{\Width}{Aq2}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{Aq2}\settodepth{\Depth}{Aq2}\setlength{\Height}{\Depth}%
-\put(-0.8300,-0.1100){\hspace*{\Width}\raisebox{\Height}{Aq2}}%
-%
-%
-\settowidth{\Width}{Bp1}\setlength{\Width}{-1\Width}%
-\settoheight{\Height}{Bp1}\settodepth{\Depth}{Bp1}\setlength{\Height}{\Depth}%
-\put(2.2300,-0.2000){\hspace*{\Width}\raisebox{\Height}{Bp1}}%
-%
-%
-\settowidth{\Width}{Bq1}\setlength{\Width}{-1\Width}%
-\settoheight{\Height}{Bq1}\settodepth{\Depth}{Bq1}\setlength{\Height}{\Depth}%
-\put(2.7200,0.3700){\hspace*{\Width}\raisebox{\Height}{Bq1}}%
-%
-%
-\settowidth{\Width}{Bp2}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{Bp2}\settodepth{\Depth}{Bp2}\setlength{\Height}{\Depth}%
-\put(4.0900,0.3400){\hspace*{\Width}\raisebox{\Height}{Bp2}}%
-%
-%
-\settowidth{\Width}{Bq2}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{Bq2}\settodepth{\Depth}{Bq2}\setlength{\Height}{\Depth}%
-\put(4.6500,-0.2500){\hspace*{\Width}\raisebox{\Height}{Bq2}}%
-%
-%
-\settowidth{\Width}{Bp3}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{Bp3}\settodepth{\Depth}{Bp3}\setlength{\Height}{-\Height}%
-\put(5.7900,-0.4900){\hspace*{\Width}\raisebox{\Height}{Bp3}}%
-%
-%
-\settowidth{\Width}{Bq3}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{Bq3}\settodepth{\Depth}{Bq3}\setlength{\Height}{-\Height}%
-\put(6.3500,0.1600){\hspace*{\Width}\raisebox{\Height}{Bq3}}%
-%
-%
-\settowidth{\Width}{B}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{B}\settodepth{\Depth}{B}\setlength{\Height}{\Depth}%
-\put(-2.5300,0.9300){\hspace*{\Width}\raisebox{\Height}{B}}%
-%
-%
-\settowidth{\Width}{C}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{C}\settodepth{\Depth}{C}\setlength{\Height}{-\Height}%
-\put(-0.0600,-0.9300){\hspace*{\Width}\raisebox{\Height}{C}}%
-%
-%
-\settowidth{\Width}{D}\setlength{\Width}{-1\Width}%
-\settoheight{\Height}{D}\settodepth{\Depth}{D}\setlength{\Height}{-\Height}%
-\put(1.7300,-1.0600){\hspace*{\Width}\raisebox{\Height}{D}}%
-%
-%
-\settowidth{\Width}{E}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{E}\settodepth{\Depth}{E}\setlength{\Height}{\Depth}%
-\put(3.3700,0.9300){\hspace*{\Width}\raisebox{\Height}{E}}%
-%
-%
-\settowidth{\Width}{F}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{F}\settodepth{\Depth}{F}\setlength{\Height}{-\Height}%
-\put(5.0700,-1.1400){\hspace*{\Width}\raisebox{\Height}{F}}%
-%
-%
-\settowidth{\Width}{G}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{G}\settodepth{\Depth}{G}\setlength{\Height}{\Depth}%
-\put(6.9200,1.1200){\hspace*{\Width}\raisebox{\Height}{G}}%
-%
-%
-\special{pa -1370 185}\special{pa -1332 135}\special{pa -1295 86}\special{pa -1258 36}%
-\special{pa -1220 -13}\special{pa -1183 -63}\special{pa -1146 -112}\special{pa -1109 -161}%
-\special{pa -1071 -210}\special{pa -1034 -259}\special{pa -996 -307}\special{pa -905 -246}%
-\special{pa -814 -184}\special{pa -722 -123}\special{pa -631 -61}\special{pa -539 0}%
-\special{pa -448 61}\special{pa -356 123}\special{pa -265 184}\special{pa -174 246}%
-\special{pa -83 307}%
-\special{fp}%
-\special{pa 740 358}\special{pa 799 292}\special{pa 858 226}\special{pa 916 159}\special{pa 975 92}%
-\special{pa 1033 26}\special{pa 1092 -41}\special{pa 1150 -108}\special{pa 1209 -174}%
-\special{pa 1268 -241}\special{pa 1327 -307}\special{pa 1394 -237}\special{pa 1461 -168}%
-\special{pa 1528 -98}\special{pa 1595 -28}\special{pa 1661 41}\special{pa 1728 111}%
-\special{pa 1795 181}\special{pa 1862 250}\special{pa 1929 320}\special{pa 1996 390}%
-\special{pa 2063 313}\special{pa 2130 236}\special{pa 2197 159}\special{pa 2264 82}%
-\special{pa 2331 5}\special{pa 2397 -72}\special{pa 2464 -149}\special{pa 2531 -226}%
-\special{pa 2598 -304}\special{pa 2665 -382}%
-\special{fp}%
-\end{picture}}% \ No newline at end of file
diff --git a/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/checkb11.tex b/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/checkb11.tex
deleted file mode 100644
index 02dea07a..00000000
--- a/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/checkb11.tex
+++ /dev/null
@@ -1,78 +0,0 @@
-%%% checkb.tex 2015-1-6 11:11
-%%% checkb.sce 2015-1-6 6:35
-{\unitlength=1cm%
-\begin{picture}%
-( 18.13000, 4.08000)( -4.96000, -1.99000)%
-\special{pn 8}%
-%
-\special{pa -1356 171}\special{pa -1364 166}\special{pa -1374 166}\special{pa -1382 170}%
-\special{pa -1388 177}\special{pa -1390 186}\special{pa -1387 195}\special{pa -1380 202}%
-\special{pa -1371 205}\special{pa -1362 203}\special{pa -1355 197}\special{pa -1351 189}%
-\special{pa -1351 179}\special{pa -1356 171}\special{sh 1}\special{fp}%
-\special{pa -821 191}\special{pa -829 186}\special{pa -838 185}\special{pa -847 189}%
-\special{pa -853 197}\special{pa -854 206}\special{pa -851 215}\special{pa -845 222}%
-\special{pa -836 224}\special{pa -827 223}\special{pa -819 217}\special{pa -815 208}%
-\special{pa -816 199}\special{pa -821 191}\special{sh 1}\special{fp}%
-\special{pa -69 293}\special{pa -77 288}\special{pa -86 288}\special{pa -95 292}\special{pa -101 299}%
-\special{pa -102 308}\special{pa -100 317}\special{pa -93 324}\special{pa -84 327}%
-\special{pa -75 325}\special{pa -67 319}\special{pa -63 311}\special{pa -64 301}\special{pa -69 293}%
-\special{sh 1}\special{fp}%
-\special{pa -1466 -77}\special{pa -1474 -82}\special{pa -1484 -82}\special{pa -1492 -78}%
-\special{pa -1498 -71}\special{pa -1500 -62}\special{pa -1497 -53}\special{pa -1490 -46}%
-\special{pa -1482 -43}\special{pa -1472 -45}\special{pa -1465 -51}\special{pa -1461 -59}%
-\special{pa -1462 -69}\special{pa -1466 -77}\special{sh 1}\special{fp}%
-\special{pa -1179 -313}\special{pa -1187 -318}\special{pa -1196 -319}\special{pa -1205 -315}%
-\special{pa -1211 -307}\special{pa -1213 -298}\special{pa -1210 -289}\special{pa -1203 -282}%
-\special{pa -1194 -280}\special{pa -1185 -281}\special{pa -1177 -287}\special{pa -1174 -296}%
-\special{pa -1174 -305}\special{pa -1179 -313}\special{sh 1}\special{fp}%
-\special{pa -522 573}\special{pa -530 568}\special{pa -539 567}\special{pa -548 571}%
-\special{pa -553 579}\special{pa -555 588}\special{pa -552 597}\special{pa -546 603}%
-\special{pa -537 606}\special{pa -527 605}\special{pa -520 599}\special{pa -516 590}%
-\special{pa -517 581}\special{pa -522 573}\special{sh 1}\special{fp}%
-\special{pa -183 553}\special{pa -191 548}\special{pa -200 548}\special{pa -209 551}%
-\special{pa -215 559}\special{pa -216 568}\special{pa -214 577}\special{pa -207 584}%
-\special{pa -198 587}\special{pa -189 585}\special{pa -181 579}\special{pa -177 570}%
-\special{pa -178 561}\special{pa -183 553}\special{sh 1}\special{fp}%
-\settowidth{\Width}{A}\setlength{\Width}{-1\Width}%
-\settoheight{\Height}{A}\settodepth{\Depth}{A}\setlength{\Height}{-\Height}%
-\put(-3.6300,-0.6200){\hspace*{\Width}\raisebox{\Height}{A}}%
-%
-%
-\settowidth{\Width}{Ap1}\setlength{\Width}{-1\Width}%
-\settoheight{\Height}{Ap1}\settodepth{\Depth}{Ap1}\setlength{\Height}{\Depth}%
-\put(-3.9100,0.3100){\hspace*{\Width}\raisebox{\Height}{Ap1}}%
-%
-%
-\settowidth{\Width}{Aq1}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{Aq1}\settodepth{\Depth}{Aq1}\setlength{\Height}{\Depth}%
-\put(-2.8800,0.9100){\hspace*{\Width}\raisebox{\Height}{Aq1}}%
-%
-%
-\settowidth{\Width}{Ap2}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{Ap2}\settodepth{\Depth}{Ap2}\setlength{\Height}{-\Height}%
-\put(-1.3600,-1.6400){\hspace*{\Width}\raisebox{\Height}{Ap2}}%
-%
-%
-\settowidth{\Width}{Aq2}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{Aq2}\settodepth{\Depth}{Aq2}\setlength{\Height}{-\Height}%
-\put(-0.3500,-1.5900){\hspace*{\Width}\raisebox{\Height}{Aq2}}%
-%
-%
-\settowidth{\Width}{B}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{B}\settodepth{\Depth}{B}\setlength{\Height}{\Depth}%
-\put(-1.9700,-0.3700){\hspace*{\Width}\raisebox{\Height}{B}}%
-%
-%
-\settowidth{\Width}{C}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{C}\settodepth{\Depth}{C}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(-0.0600,-0.7800){\hspace*{\Width}\raisebox{\Height}{C}}%
-%
-%
-\special{pa -1370 185}\special{pa -1392 112}\special{pa -1391 43}\special{pa -1371 -15}%
-\special{pa -1332 -60}\special{pa -1278 -87}\special{pa -1210 -91}\special{pa -1129 -69}%
-\special{pa -1038 -15}\special{pa -940 75}\special{pa -835 205}\special{pa -744 307}%
-\special{pa -653 387}\special{pa -562 444}\special{pa -474 481}\special{pa -389 497}%
-\special{pa -311 493}\special{pa -239 472}\special{pa -176 433}\special{pa -123 378}%
-\special{pa -83 307}%
-\special{fp}%
-\end{picture}}% \ No newline at end of file
diff --git a/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/checkb2.tex b/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/checkb2.tex
deleted file mode 100644
index bfe04b54..00000000
--- a/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/checkb2.tex
+++ /dev/null
@@ -1,47 +0,0 @@
-%%% checkb.tex 2015-1-6 7:20
-%%% checkb.sce 2015-1-6 6:35
-{\unitlength=1cm%
-\begin{picture}%
-( 5.95000, 4.06000)( -3.00000, -2.00000)%
-\special{pn 8}%
-%
-\special{pa -738 419}\special{pa -746 414}\special{pa -756 414}\special{pa -764 418}%
-\special{pa -770 425}\special{pa -772 434}\special{pa -769 443}\special{pa -762 450}%
-\special{pa -753 453}\special{pa -744 451}\special{pa -736 445}\special{pa -733 437}%
-\special{pa -733 427}\special{pa -738 419}\special{sh 1}\special{fp}%
-\special{pa 888 470}\special{pa 880 465}\special{pa 870 465}\special{pa 862 469}\special{pa 856 476}%
-\special{pa 854 485}\special{pa 857 494}\special{pa 864 501}\special{pa 873 504}\special{pa 882 502}%
-\special{pa 890 496}\special{pa 893 488}\special{pa 893 478}\special{pa 888 470}\special{sh 1}\special{fp}%
-\special{pa -439 -238}\special{pa -447 -243}\special{pa -456 -244}\special{pa -465 -240}%
-\special{pa -471 -232}\special{pa -472 -223}\special{pa -470 -214}\special{pa -463 -208}%
-\special{pa -454 -205}\special{pa -445 -206}\special{pa -437 -212}\special{pa -433 -221}%
-\special{pa -434 -230}\special{pa -439 -238}\special{sh 1}\special{fp}%
-\special{pa 427 -282}\special{pa 419 -287}\special{pa 410 -287}\special{pa 401 -283}%
-\special{pa 395 -276}\special{pa 394 -267}\special{pa 397 -258}\special{pa 403 -251}%
-\special{pa 412 -248}\special{pa 421 -250}\special{pa 429 -256}\special{pa 433 -264}%
-\special{pa 432 -274}\special{pa 427 -282}\special{sh 1}\special{fp}%
-\settowidth{\Width}{A}\setlength{\Width}{-1\Width}%
-\settoheight{\Height}{A}\settodepth{\Depth}{A}\setlength{\Height}{-\Height}%
-\put(-2.0600,-1.2500){\hspace*{\Width}\raisebox{\Height}{A}}%
-%
-%
-\settowidth{\Width}{B}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{B}\settodepth{\Depth}{B}\setlength{\Height}{-\Height}%
-\put(2.3700,-1.3800){\hspace*{\Width}\raisebox{\Height}{B}}%
-%
-%
-\settowidth{\Width}{C}\setlength{\Width}{-1\Width}%
-\settoheight{\Height}{C}\settodepth{\Depth}{C}\setlength{\Height}{\Depth}%
-\put(-1.3000,0.7200){\hspace*{\Width}\raisebox{\Height}{C}}%
-%
-%
-\settowidth{\Width}{D}\setlength{\Width}{-1\Width}%
-\settoheight{\Height}{D}\settodepth{\Depth}{D}\setlength{\Height}{\Depth}%
-\put(0.9000,0.8300){\hspace*{\Width}\raisebox{\Height}{D}}%
-%
-%
-\special{pa -752 433}\special{pa -646 254}\special{pa -512 114}\special{pa -356 12}%
-\special{pa -183 -50}\special{pa 0 -70}\special{pa 189 -48}\special{pa 376 17}\special{pa 557 127}%
-\special{pa 725 282}\special{pa 874 484}%
-\special{fp}%
-\end{picture}}% \ No newline at end of file
diff --git a/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/checkb3.tex b/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/checkb3.tex
deleted file mode 100644
index 0d58f3fb..00000000
--- a/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/checkb3.tex
+++ /dev/null
@@ -1,65 +0,0 @@
-%%% checkb.tex 2015-1-6 7:31
-%%% checkb.sce 2015-1-6 6:35
-{\unitlength=1cm%
-\begin{picture}%
-( 5.95000, 4.06000)( -3.00000, -2.00000)%
-\special{pn 8}%
-%
-\special{pa -911 368}\special{pa -919 363}\special{pa -929 363}\special{pa -937 366}%
-\special{pa -943 374}\special{pa -945 383}\special{pa -942 392}\special{pa -935 399}%
-\special{pa -926 402}\special{pa -917 400}\special{pa -910 394}\special{pa -906 385}%
-\special{pa -906 376}\special{pa -911 368}\special{sh 1}\special{fp}%
-\special{pa -254 356}\special{pa -262 351}\special{pa -271 351}\special{pa -280 355}%
-\special{pa -286 362}\special{pa -287 371}\special{pa -285 380}\special{pa -278 387}%
-\special{pa -269 390}\special{pa -260 388}\special{pa -252 382}\special{pa -248 374}%
-\special{pa -249 364}\special{pa -254 356}\special{sh 1}\special{fp}%
-\special{pa 888 478}\special{pa 880 473}\special{pa 870 473}\special{pa 862 477}\special{pa 856 484}%
-\special{pa 854 493}\special{pa 857 502}\special{pa 864 509}\special{pa 873 512}\special{pa 882 510}%
-\special{pa 890 504}\special{pa 893 496}\special{pa 893 486}\special{pa 888 478}\special{sh 1}\special{fp}%
-\special{pa -655 -45}\special{pa -663 -50}\special{pa -673 -51}\special{pa -681 -47}%
-\special{pa -687 -40}\special{pa -689 -30}\special{pa -686 -21}\special{pa -679 -15}%
-\special{pa -670 -12}\special{pa -661 -14}\special{pa -654 -19}\special{pa -650 -28}%
-\special{pa -650 -37}\special{pa -655 -45}\special{sh 1}\special{fp}%
-\special{pa 116 -53}\special{pa 108 -58}\special{pa 99 -59}\special{pa 90 -55}\special{pa 84 -47}%
-\special{pa 83 -38}\special{pa 86 -29}\special{pa 92 -23}\special{pa 101 -20}\special{pa 110 -21}%
-\special{pa 118 -27}\special{pa 122 -36}\special{pa 121 -45}\special{pa 116 -53}\special{sh 1}\special{fp}%
-\special{pa 518 -77}\special{pa 510 -82}\special{pa 500 -82}\special{pa 492 -78}\special{pa 486 -71}%
-\special{pa 484 -62}\special{pa 487 -53}\special{pa 494 -46}\special{pa 503 -43}\special{pa 512 -45}%
-\special{pa 519 -51}\special{pa 523 -59}\special{pa 523 -69}\special{pa 518 -77}\special{sh 1}\special{fp}%
-\settowidth{\Width}{A}\setlength{\Width}{-1\Width}%
-\settoheight{\Height}{A}\settodepth{\Depth}{A}\setlength{\Height}{-\Height}%
-\put(-2.5000,-1.1200){\hspace*{\Width}\raisebox{\Height}{A}}%
-%
-%
-\settowidth{\Width}{B}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{B}\settodepth{\Depth}{B}\setlength{\Height}{-\Height}%
-\put(-0.6800,-1.0900){\hspace*{\Width}\raisebox{\Height}{B}}%
-%
-%
-\settowidth{\Width}{C}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{C}\settodepth{\Depth}{C}\setlength{\Height}{-\Height}%
-\put(2.3700,-1.4000){\hspace*{\Width}\raisebox{\Height}{C}}%
-%
-%
-\settowidth{\Width}{D}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{D}\settodepth{\Depth}{D}\setlength{\Height}{\Depth}%
-\put(-1.7000,0.2300){\hspace*{\Width}\raisebox{\Height}{D}}%
-%
-%
-\settowidth{\Width}{E}\setlength{\Width}{-1\Width}%
-\settoheight{\Height}{E}\settodepth{\Depth}{E}\setlength{\Height}{\Depth}%
-\put(0.1100,0.2500){\hspace*{\Width}\raisebox{\Height}{E}}%
-%
-%
-\settowidth{\Width}{F}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{F}\settodepth{\Depth}{F}\setlength{\Height}{\Depth}%
-\put(1.4300,0.3100){\hspace*{\Width}\raisebox{\Height}{F}}%
-%
-%
-\special{pa -925 382}\special{pa -873 307}\special{pa -817 249}\special{pa -759 207}%
-\special{pa -697 182}\special{pa -633 172}\special{pa -566 179}\special{pa -496 202}%
-\special{pa -423 242}\special{pa -347 298}\special{pa -268 370}\special{pa -156 259}%
-\special{pa -42 172}\special{pa 72 111}\special{pa 187 76}\special{pa 303 69}\special{pa 419 91}%
-\special{pa 534 144}\special{pa 649 227}\special{pa 762 343}\special{pa 874 492}%
-\special{fp}%
-\end{picture}}% \ No newline at end of file
diff --git a/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/checkb4.tex b/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/checkb4.tex
deleted file mode 100644
index fd4ff761..00000000
--- a/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/checkb4.tex
+++ /dev/null
@@ -1,146 +0,0 @@
-%%% checkb.tex 2015-1-6 7:41
-%%% checkb.sce 2015-1-6 6:35
-{\unitlength=1cm%
-\begin{picture}%
-( 14.00000, 3.95000)( -3.03000, -1.91000)%
-\special{pn 8}%
-%
-\special{pa -911 368}\special{pa -919 363}\special{pa -929 363}\special{pa -937 366}%
-\special{pa -943 374}\special{pa -945 383}\special{pa -942 392}\special{pa -935 399}%
-\special{pa -926 402}\special{pa -917 400}\special{pa -910 394}\special{pa -906 385}%
-\special{pa -906 376}\special{pa -911 368}\special{sh 1}\special{fp}%
-\special{pa -254 356}\special{pa -262 351}\special{pa -271 351}\special{pa -280 355}%
-\special{pa -286 362}\special{pa -287 371}\special{pa -285 380}\special{pa -278 387}%
-\special{pa -269 390}\special{pa -260 388}\special{pa -252 382}\special{pa -248 374}%
-\special{pa -249 364}\special{pa -254 356}\special{sh 1}\special{fp}%
-\special{pa 888 478}\special{pa 880 473}\special{pa 870 473}\special{pa 862 477}\special{pa 856 484}%
-\special{pa 854 493}\special{pa 857 502}\special{pa 864 509}\special{pa 873 512}\special{pa 882 510}%
-\special{pa 890 504}\special{pa 893 496}\special{pa 893 486}\special{pa 888 478}\special{sh 1}\special{fp}%
-\special{pa -655 -45}\special{pa -663 -50}\special{pa -673 -51}\special{pa -681 -47}%
-\special{pa -687 -40}\special{pa -689 -30}\special{pa -686 -21}\special{pa -679 -15}%
-\special{pa -670 -12}\special{pa -661 -14}\special{pa -654 -19}\special{pa -650 -28}%
-\special{pa -650 -37}\special{pa -655 -45}\special{sh 1}\special{fp}%
-\special{pa 116 -53}\special{pa 108 -58}\special{pa 99 -59}\special{pa 90 -55}\special{pa 84 -47}%
-\special{pa 83 -38}\special{pa 86 -29}\special{pa 92 -23}\special{pa 101 -20}\special{pa 110 -21}%
-\special{pa 118 -27}\special{pa 122 -36}\special{pa 121 -45}\special{pa 116 -53}\special{sh 1}\special{fp}%
-\special{pa 518 -77}\special{pa 510 -82}\special{pa 500 -82}\special{pa 492 -78}\special{pa 486 -71}%
-\special{pa 484 -62}\special{pa 487 -53}\special{pa 494 -46}\special{pa 503 -43}\special{pa 512 -45}%
-\special{pa 519 -51}\special{pa 523 -59}\special{pa 523 -69}\special{pa 518 -77}\special{sh 1}\special{fp}%
-\special{pa 1475 325}\special{pa 1466 320}\special{pa 1457 319}\special{pa 1448 323}%
-\special{pa 1443 331}\special{pa 1441 340}\special{pa 1444 349}\special{pa 1450 355}%
-\special{pa 1459 358}\special{pa 1469 357}\special{pa 1476 351}\special{pa 1480 342}%
-\special{pa 1479 333}\special{pa 1475 325}\special{sh 1}\special{fp}%
-\special{pa 2156 171}\special{pa 2148 166}\special{pa 2138 166}\special{pa 2130 170}%
-\special{pa 2124 177}\special{pa 2122 186}\special{pa 2125 195}\special{pa 2132 202}%
-\special{pa 2141 205}\special{pa 2150 203}\special{pa 2157 197}\special{pa 2161 189}%
-\special{pa 2161 179}\special{pa 2156 171}\special{sh 1}\special{fp}%
-\special{pa 3112 242}\special{pa 3104 237}\special{pa 3095 237}\special{pa 3086 240}%
-\special{pa 3080 248}\special{pa 3079 257}\special{pa 3082 266}\special{pa 3088 273}%
-\special{pa 3097 276}\special{pa 3107 274}\special{pa 3114 268}\special{pa 3118 259}%
-\special{pa 3117 250}\special{pa 3112 242}\special{sh 1}\special{fp}%
-\special{pa 3853 285}\special{pa 3844 280}\special{pa 3835 280}\special{pa 3826 284}%
-\special{pa 3821 291}\special{pa 3819 300}\special{pa 3822 309}\special{pa 3828 316}%
-\special{pa 3837 319}\special{pa 3847 317}\special{pa 3854 311}\special{pa 3858 303}%
-\special{pa 3857 293}\special{pa 3853 285}\special{sh 1}\special{fp}%
-\special{pa 1805 -148}\special{pa 1797 -153}\special{pa 1788 -153}\special{pa 1779 -149}%
-\special{pa 1773 -142}\special{pa 1772 -133}\special{pa 1774 -124}\special{pa 1781 -117}%
-\special{pa 1790 -114}\special{pa 1799 -116}\special{pa 1807 -122}\special{pa 1811 -130}%
-\special{pa 1810 -140}\special{pa 1805 -148}\special{sh 1}\special{fp}%
-\special{pa 2482 -167}\special{pa 2474 -172}\special{pa 2465 -173}\special{pa 2456 -169}%
-\special{pa 2451 -162}\special{pa 2449 -152}\special{pa 2452 -143}\special{pa 2458 -137}%
-\special{pa 2467 -134}\special{pa 2477 -136}\special{pa 2484 -141}\special{pa 2488 -150}%
-\special{pa 2487 -159}\special{pa 2482 -167}\special{sh 1}\special{fp}%
-\special{pa 2896 -167}\special{pa 2888 -172}\special{pa 2878 -173}\special{pa 2870 -169}%
-\special{pa 2864 -162}\special{pa 2862 -152}\special{pa 2865 -143}\special{pa 2872 -137}%
-\special{pa 2881 -134}\special{pa 2890 -136}\special{pa 2897 -141}\special{pa 2901 -150}%
-\special{pa 2901 -159}\special{pa 2896 -167}\special{sh 1}\special{fp}%
-\special{pa 3624 -160}\special{pa 3616 -164}\special{pa 3607 -165}\special{pa 3598 -161}%
-\special{pa 3592 -154}\special{pa 3591 -144}\special{pa 3593 -135}\special{pa 3600 -129}%
-\special{pa 3609 -126}\special{pa 3618 -128}\special{pa 3626 -134}\special{pa 3630 -142}%
-\special{pa 3629 -152}\special{pa 3624 -160}\special{sh 1}\special{fp}%
-\settowidth{\Width}{A}\setlength{\Width}{-1\Width}%
-\settoheight{\Height}{A}\settodepth{\Depth}{A}\setlength{\Height}{-\Height}%
-\put(-2.5000,-1.1200){\hspace*{\Width}\raisebox{\Height}{A}}%
-%
-%
-\settowidth{\Width}{B}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{B}\settodepth{\Depth}{B}\setlength{\Height}{-\Height}%
-\put(-0.6800,-1.0900){\hspace*{\Width}\raisebox{\Height}{B}}%
-%
-%
-\settowidth{\Width}{C}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{C}\settodepth{\Depth}{C}\setlength{\Height}{-\Height}%
-\put(2.3700,-1.4000){\hspace*{\Width}\raisebox{\Height}{C}}%
-%
-%
-\settowidth{\Width}{D}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{D}\settodepth{\Depth}{D}\setlength{\Height}{\Depth}%
-\put(-1.7000,0.2300){\hspace*{\Width}\raisebox{\Height}{D}}%
-%
-%
-\settowidth{\Width}{E}\setlength{\Width}{-1\Width}%
-\settoheight{\Height}{E}\settodepth{\Depth}{E}\setlength{\Height}{\Depth}%
-\put(0.1100,0.2500){\hspace*{\Width}\raisebox{\Height}{E}}%
-%
-%
-\settowidth{\Width}{F}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{F}\settodepth{\Depth}{F}\setlength{\Height}{\Depth}%
-\put(1.4300,0.3100){\hspace*{\Width}\raisebox{\Height}{F}}%
-%
-%
-\settowidth{\Width}{G}\setlength{\Width}{-1\Width}%
-\settoheight{\Height}{G}\settodepth{\Depth}{G}\setlength{\Height}{-\Height}%
-\put(3.5600,-1.0100){\hspace*{\Width}\raisebox{\Height}{G}}%
-%
-%
-\settowidth{\Width}{H}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{H}\settodepth{\Depth}{H}\setlength{\Height}{-\Height}%
-\put(5.4400,-0.6200){\hspace*{\Width}\raisebox{\Height}{H}}%
-%
-%
-\settowidth{\Width}{K}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{K}\settodepth{\Depth}{K}\setlength{\Height}{-\Height}%
-\put(7.8700,-0.8000){\hspace*{\Width}\raisebox{\Height}{K}}%
-%
-%
-\settowidth{\Width}{L}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{L}\settodepth{\Depth}{L}\setlength{\Height}{-\Height}%
-\put(9.9000,-0.9100){\hspace*{\Width}\raisebox{\Height}{L}}%
-%
-%
-\settowidth{\Width}{M}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{M}\settodepth{\Depth}{M}\setlength{\Height}{\Depth}%
-\put(4.5500,0.4900){\hspace*{\Width}\raisebox{\Height}{M}}%
-%
-%
-\settowidth{\Width}{N}\setlength{\Width}{-1\Width}%
-\settoheight{\Height}{N}\settodepth{\Depth}{N}\setlength{\Height}{\Depth}%
-\put(6.2200,0.5400){\hspace*{\Width}\raisebox{\Height}{N}}%
-%
-%
-\settowidth{\Width}{O}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{O}\settodepth{\Depth}{O}\setlength{\Height}{\Depth}%
-\put(7.3700,0.5400){\hspace*{\Width}\raisebox{\Height}{O}}%
-%
-%
-\settowidth{\Width}{P}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{P}\settodepth{\Depth}{P}\setlength{\Height}{\Depth}%
-\put(9.1700,0.5200){\hspace*{\Width}\raisebox{\Height}{P}}%
-%
-%
-\special{pa -925 382}\special{pa -873 307}\special{pa -817 249}\special{pa -759 207}%
-\special{pa -697 182}\special{pa -633 172}\special{pa -566 179}\special{pa -496 202}%
-\special{pa -423 242}\special{pa -347 298}\special{pa -268 370}\special{pa -156 259}%
-\special{pa -42 172}\special{pa 72 111}\special{pa 187 76}\special{pa 303 69}\special{pa 419 91}%
-\special{pa 534 144}\special{pa 649 227}\special{pa 762 343}\special{pa 874 492}%
-\special{fp}%
-\special{pa 1461 339}\special{pa 1527 252}\special{pa 1594 181}\special{pa 1661 126}%
-\special{pa 1728 87}\special{pa 1796 64}\special{pa 1865 57}\special{pa 1933 65}\special{pa 2002 89}%
-\special{pa 2072 129}\special{pa 2142 185}\special{pa 2242 94}\special{pa 2346 23}%
-\special{pa 2452 -26}\special{pa 2557 -54}\special{pa 2661 -60}\special{pa 2762 -43}%
-\special{pa 2858 -4}\special{pa 2947 59}\special{pa 3028 145}\special{pa 3098 256}%
-\special{pa 3198 184}\special{pa 3292 129}\special{pa 3380 91}\special{pa 3463 70}%
-\special{pa 3539 66}\special{pa 3611 79}\special{pa 3676 108}\special{pa 3736 155}%
-\special{pa 3790 219}\special{pa 3839 299}%
-\special{fp}%
-\end{picture}}% \ No newline at end of file
diff --git a/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/checkb5.tex b/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/checkb5.tex
deleted file mode 100644
index 1ab35d02..00000000
--- a/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/checkb5.tex
+++ /dev/null
@@ -1,66 +0,0 @@
-%%% checkb.tex 2015-1-6 8:23
-%%% checkb.sce 2015-1-6 6:35
-{\unitlength=1cm%
-\begin{picture}%
-( 14.00000, 3.95000)( -3.03000, -1.91000)%
-\special{pn 8}%
-%
-\special{pa -974 -167}\special{pa -982 -172}\special{pa -992 -173}\special{pa -1000 -169}%
-\special{pa -1006 -162}\special{pa -1008 -152}\special{pa -1005 -143}\special{pa -998 -137}%
-\special{pa -989 -134}\special{pa -980 -136}\special{pa -973 -141}\special{pa -969 -150}%
-\special{pa -969 -159}\special{pa -974 -167}\special{sh 1}\special{fp}%
-\special{pa -273 -128}\special{pa -282 -133}\special{pa -291 -134}\special{pa -300 -130}%
-\special{pa -305 -122}\special{pa -307 -113}\special{pa -304 -104}\special{pa -298 -97}%
-\special{pa -289 -95}\special{pa -279 -96}\special{pa -272 -102}\special{pa -268 -111}%
-\special{pa -269 -120}\special{pa -273 -128}\special{sh 1}\special{fp}%
-\special{pa 919 -167}\special{pa 911 -172}\special{pa 902 -173}\special{pa 893 -169}%
-\special{pa 888 -162}\special{pa 886 -152}\special{pa 889 -143}\special{pa 895 -137}%
-\special{pa 904 -134}\special{pa 914 -136}\special{pa 921 -141}\special{pa 925 -150}%
-\special{pa 924 -159}\special{pa 919 -167}\special{sh 1}\special{fp}%
-\special{pa -644 -538}\special{pa -652 -542}\special{pa -661 -543}\special{pa -670 -539}%
-\special{pa -675 -532}\special{pa -677 -522}\special{pa -674 -513}\special{pa -668 -507}%
-\special{pa -659 -504}\special{pa -649 -506}\special{pa -642 -511}\special{pa -638 -520}%
-\special{pa -639 -529}\special{pa -644 -538}\special{sh 1}\special{fp}%
-\special{pa 128 305}\special{pa 120 300}\special{pa 111 300}\special{pa 102 303}\special{pa 96 311}%
-\special{pa 95 320}\special{pa 97 329}\special{pa 104 336}\special{pa 113 339}\special{pa 122 337}%
-\special{pa 130 331}\special{pa 134 322}\special{pa 133 313}\special{pa 128 305}\special{sh 1}\special{fp}%
-\special{pa 734 325}\special{pa 726 320}\special{pa 717 319}\special{pa 708 323}\special{pa 703 331}%
-\special{pa 701 340}\special{pa 704 349}\special{pa 710 355}\special{pa 719 358}\special{pa 729 357}%
-\special{pa 736 351}\special{pa 740 342}\special{pa 739 333}\special{pa 734 325}\special{sh 1}\special{fp}%
-\settowidth{\Width}{A}\setlength{\Width}{-1\Width}%
-\settoheight{\Height}{A}\settodepth{\Depth}{A}\setlength{\Height}{-\Height}%
-\put(-2.6600,0.2400){\hspace*{\Width}\raisebox{\Height}{A}}%
-%
-%
-\settowidth{\Width}{B}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{B}\settodepth{\Depth}{B}\setlength{\Height}{-\Height}%
-\put(-0.7300,0.1400){\hspace*{\Width}\raisebox{\Height}{B}}%
-%
-%
-\settowidth{\Width}{C}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{C}\settodepth{\Depth}{C}\setlength{\Height}{\Depth}%
-\put(2.4500,0.5400){\hspace*{\Width}\raisebox{\Height}{C}}%
-%
-%
-\settowidth{\Width}{D}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{D}\settodepth{\Depth}{D}\setlength{\Height}{\Depth}%
-\put(-1.6700,1.4800){\hspace*{\Width}\raisebox{\Height}{D}}%
-%
-%
-\settowidth{\Width}{E}\setlength{\Width}{-1\Width}%
-\settoheight{\Height}{E}\settodepth{\Depth}{E}\setlength{\Height}{-\Height}%
-\put(0.1400,-0.9600){\hspace*{\Width}\raisebox{\Height}{E}}%
-%
-%
-\settowidth{\Width}{F}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{F}\settodepth{\Depth}{F}\setlength{\Height}{-\Height}%
-\put(1.9800,-1.0100){\hspace*{\Width}\raisebox{\Height}{F}}%
-%
-%
-\special{pa -988 -154}\special{pa -922 -220}\special{pa -854 -270}\special{pa -786 -305}%
-\special{pa -717 -325}\special{pa -648 -329}\special{pa -577 -317}\special{pa -506 -290}%
-\special{pa -434 -247}\special{pa -361 -188}\special{pa -287 -114}\special{pa -161 3}%
-\special{pa -27 95}\special{pa 112 161}\special{pa 253 201}\special{pa 390 213}\special{pa 521 198}%
-\special{pa 642 154}\special{pa 749 81}\special{pa 838 -21}\special{pa 906 -154}%
-\special{fp}%
-\end{picture}}% \ No newline at end of file
diff --git a/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/checkb6.tex b/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/checkb6.tex
deleted file mode 100644
index 33710895..00000000
--- a/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/checkb6.tex
+++ /dev/null
@@ -1,63 +0,0 @@
-%%% checkb.tex 2015-1-6 8:30
-%%% checkb.sce 2015-1-6 6:35
-{\unitlength=1cm%
-\begin{picture}%
-( 14.00000, 3.95000)( -3.03000, -1.91000)%
-\special{pn 8}%
-%
-\special{pa -974 -167}\special{pa -982 -172}\special{pa -992 -173}\special{pa -1000 -169}%
-\special{pa -1006 -162}\special{pa -1008 -152}\special{pa -1005 -143}\special{pa -998 -137}%
-\special{pa -989 -134}\special{pa -980 -136}\special{pa -973 -141}\special{pa -969 -150}%
-\special{pa -969 -159}\special{pa -974 -167}\special{sh 1}\special{fp}%
-\special{pa -273 -128}\special{pa -282 -133}\special{pa -291 -134}\special{pa -300 -130}%
-\special{pa -305 -122}\special{pa -307 -113}\special{pa -304 -104}\special{pa -298 -97}%
-\special{pa -289 -95}\special{pa -279 -96}\special{pa -272 -102}\special{pa -268 -111}%
-\special{pa -269 -120}\special{pa -273 -128}\special{sh 1}\special{fp}%
-\special{pa 919 -167}\special{pa 911 -172}\special{pa 902 -173}\special{pa 893 -169}%
-\special{pa 888 -162}\special{pa 886 -152}\special{pa 889 -143}\special{pa 895 -137}%
-\special{pa 904 -134}\special{pa 914 -136}\special{pa 921 -141}\special{pa 925 -150}%
-\special{pa 924 -159}\special{pa 919 -167}\special{sh 1}\special{fp}%
-\special{pa -644 -538}\special{pa -652 -542}\special{pa -661 -543}\special{pa -670 -539}%
-\special{pa -675 -532}\special{pa -677 -522}\special{pa -674 -513}\special{pa -668 -507}%
-\special{pa -659 -504}\special{pa -649 -506}\special{pa -642 -511}\special{pa -638 -520}%
-\special{pa -639 -529}\special{pa -644 -538}\special{sh 1}\special{fp}%
-\special{pa 128 305}\special{pa 120 300}\special{pa 111 300}\special{pa 102 303}\special{pa 96 311}%
-\special{pa 95 320}\special{pa 97 329}\special{pa 104 336}\special{pa 113 339}\special{pa 122 337}%
-\special{pa 130 331}\special{pa 134 322}\special{pa 133 313}\special{pa 128 305}\special{sh 1}\special{fp}%
-\special{pa 734 325}\special{pa 726 320}\special{pa 717 319}\special{pa 708 323}\special{pa 703 331}%
-\special{pa 701 340}\special{pa 704 349}\special{pa 710 355}\special{pa 719 358}\special{pa 729 357}%
-\special{pa 736 351}\special{pa 740 342}\special{pa 739 333}\special{pa 734 325}\special{sh 1}\special{fp}%
-\settowidth{\Width}{A}\setlength{\Width}{-1\Width}%
-\settoheight{\Height}{A}\settodepth{\Depth}{A}\setlength{\Height}{-\Height}%
-\put(-2.6600,0.2400){\hspace*{\Width}\raisebox{\Height}{A}}%
-%
-%
-\settowidth{\Width}{B}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{B}\settodepth{\Depth}{B}\setlength{\Height}{-\Height}%
-\put(-0.7300,0.1400){\hspace*{\Width}\raisebox{\Height}{B}}%
-%
-%
-\settowidth{\Width}{C}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{C}\settodepth{\Depth}{C}\setlength{\Height}{\Depth}%
-\put(2.4500,0.5400){\hspace*{\Width}\raisebox{\Height}{C}}%
-%
-%
-\settowidth{\Width}{D}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{D}\settodepth{\Depth}{D}\setlength{\Height}{\Depth}%
-\put(-1.6700,1.4800){\hspace*{\Width}\raisebox{\Height}{D}}%
-%
-%
-\settowidth{\Width}{E}\setlength{\Width}{-1\Width}%
-\settoheight{\Height}{E}\settodepth{\Depth}{E}\setlength{\Height}{-\Height}%
-\put(0.1400,-0.9600){\hspace*{\Width}\raisebox{\Height}{E}}%
-%
-%
-\settowidth{\Width}{F}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{F}\settodepth{\Depth}{F}\setlength{\Height}{-\Height}%
-\put(1.9800,-1.0100){\hspace*{\Width}\raisebox{\Height}{F}}%
-%
-%
-\special{pa -988 -154}\special{pa -763 -314}\special{pa -530 -301}\special{pa -287 -114}%
-\special{pa 159 177}\special{pa 603 172}\special{pa 906 -154}%
-\special{fp}%
-\end{picture}}% \ No newline at end of file
diff --git a/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/checkb7.tex b/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/checkb7.tex
deleted file mode 100644
index d5b04a7f..00000000
--- a/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/checkb7.tex
+++ /dev/null
@@ -1,92 +0,0 @@
-%%% checkb.tex 2015-1-6 9:16
-%%% checkb.sce 2015-1-6 6:35
-{\unitlength=1cm%
-\begin{picture}%
-( 14.00000, 3.95000)( -3.03000, -1.91000)%
-\special{pn 8}%
-%
-\special{pa -988 -154}\special{pa -985 -157}\special{pa -982 -161}\special{pa -978 -164}\special{pa -975 -168}\special{pa -972 -172}\special{pa -968 -175}\special{pa -965 -178}\special{pa -962 -182}\special{fp}%
-\special{pa -934 -209}\special{pa -932 -211}\special{pa -928 -214}\special{pa -925 -217}\special{pa -922 -220}\special{pa -918 -223}\special{pa -915 -226}\special{pa -912 -228}\special{pa -908 -231}\special{pa -905 -234}\special{fp}%
-\special{pa -874 -257}\special{pa -871 -259}\special{pa -868 -262}\special{pa -864 -264}\special{pa -861 -266}\special{pa -858 -268}\special{pa -854 -270}\special{pa -851 -273}\special{pa -848 -275}\special{pa -844 -277}\special{pa -842 -278}\special{fp}%
-\special{pa -808 -296}\special{pa -807 -297}\special{pa -803 -298}\special{pa -800 -300}\special{pa -796 -301}\special{pa -793 -303}\special{pa -790 -304}\special{pa -786 -305}\special{pa -783 -307}\special{pa -779 -308}\special{pa -776 -309}\special{pa -773 -311}\special{pa -772 -311}\special{fp}%
-\special{pa -735 -321}\special{pa -735 -321}\special{pa -731 -322}\special{pa -728 -323}\special{pa -724 -324}\special{pa -721 -324}\special{pa -717 -325}\special{pa -714 -325}\special{pa -710 -326}\special{pa -707 -326}\special{pa -703 -327}\special{pa -700 -327}\special{pa -697 -328}\special{fp}%
-\special{pa -658 -329}\special{pa -658 -329}\special{pa -655 -329}\special{pa -651 -329}\special{pa -648 -329}\special{pa -644 -329}\special{pa -641 -328}\special{pa -637 -328}\special{pa -634 -328}\special{pa -630 -327}\special{pa -627 -327}\special{pa -623 -326}\special{pa -620 -326}\special{fp}%
-\special{pa -582 -318}\special{pa -581 -318}\special{pa -577 -317}\special{pa -574 -316}\special{pa -570 -315}\special{pa -567 -314}\special{pa -563 -313}\special{pa -559 -312}\special{pa -556 -310}\special{pa -552 -309}\special{pa -549 -308}\special{pa -545 -307}\special{fp}%
-\special{pa -510 -292}\special{pa -509 -291}\special{pa -506 -290}\special{pa -502 -288}\special{pa -499 -286}\special{pa -495 -284}\special{pa -492 -282}\special{pa -488 -280}\special{pa -484 -278}\special{pa -481 -276}\special{pa -477 -274}\special{pa -476 -274}\special{fp}%
-\special{pa -443 -253}\special{pa -441 -252}\special{pa -437 -249}\special{pa -434 -247}\special{pa -430 -244}\special{pa -427 -242}\special{pa -423 -239}\special{pa -419 -236}\special{pa -416 -234}\special{pa -412 -231}\special{pa -412 -231}\special{fp}%
-\special{pa -382 -206}\special{pa -379 -204}\special{pa -376 -201}\special{pa -372 -198}\special{pa -368 -195}\special{pa -365 -192}\special{pa -361 -188}\special{pa -357 -185}\special{pa -354 -182}\special{pa -353 -181}\special{fp}%
-\special{pa -325 -154}\special{pa -324 -153}\special{pa -321 -149}\special{pa -317 -146}\special{pa -313 -142}\special{pa -310 -138}\special{pa -306 -134}\special{pa -302 -130}\special{pa -298 -126}\special{pa -298 -126}\special{fp}%
-\special{pa -272 -98}\special{pa -269 -95}\special{pa -263 -89}\special{pa -257 -82}\special{pa -251 -76}\special{pa -245 -71}\special{fp}%
-\special{pa -217 -44}\special{pa -213 -41}\special{pa -207 -35}\special{pa -200 -29}\special{pa -194 -24}\special{pa -188 -19}\special{fp}%
-\special{pa -158 6}\special{pa -155 8}\special{pa -148 14}\special{pa -142 19}\special{pa -135 24}\special{pa -128 29}\special{pa -128 29}\special{fp}%
-\special{pa -96 52}\special{pa -95 52}\special{pa -88 57}\special{pa -81 62}\special{pa -75 66}\special{pa -68 70}\special{pa -64 73}\special{fp}%
-\special{pa -31 93}\special{pa -27 95}\special{pa -20 99}\special{pa -13 103}\special{pa -6 107}\special{pa 1 111}\special{pa 3 112}\special{fp}%
-\special{pa 37 129}\special{pa 42 132}\special{pa 49 135}\special{pa 56 138}\special{pa 63 141}\special{pa 70 144}\special{pa 72 145}\special{fp}%
-\special{pa 108 160}\special{pa 112 161}\special{pa 119 164}\special{pa 126 166}\special{pa 133 169}\special{pa 140 171}\special{pa 144 173}\special{fp}%
-\special{pa 181 184}\special{pa 183 184}\special{pa 190 186}\special{pa 197 188}\special{pa 204 190}\special{pa 211 192}\special{pa 218 193}\special{pa 219 194}\special{fp}%
-\special{pa 256 201}\special{pa 260 202}\special{pa 267 203}\special{pa 274 204}\special{pa 281 205}\special{pa 287 206}\special{pa 294 207}\special{pa 294 207}\special{fp}%
-\special{pa 333 211}\special{pa 336 211}\special{pa 343 212}\special{pa 349 212}\special{pa 356 213}\special{pa 363 213}\special{pa 370 213}\special{pa 371 213}\special{fp}%
-\special{pa 410 213}\special{pa 410 213}\special{pa 417 212}\special{pa 424 212}\special{pa 430 211}\special{pa 437 211}\special{pa 444 210}\special{pa 448 210}\special{fp}%
-\special{pa 487 205}\special{pa 489 204}\special{pa 496 203}\special{pa 502 202}\special{pa 509 200}\special{pa 515 199}\special{pa 521 198}\special{pa 524 197}\special{fp}%
-\special{pa 562 187}\special{pa 565 186}\special{pa 571 184}\special{pa 577 181}\special{pa 583 179}\special{pa 589 177}\special{pa 595 175}\special{pa 598 174}\special{fp}%
-\special{pa 633 158}\special{pa 636 157}\special{pa 642 154}\special{pa 648 151}\special{pa 654 148}\special{pa 659 145}\special{pa 665 142}\special{pa 667 140}\special{fp}%
-\special{pa 700 119}\special{pa 703 117}\special{pa 708 114}\special{pa 713 110}\special{pa 719 106}\special{pa 724 102}\special{pa 729 98}\special{pa 731 96}\special{fp}%
-\special{pa 760 71}\special{pa 764 68}\special{pa 768 63}\special{pa 773 58}\special{pa 778 54}\special{pa 782 49}\special{pa 787 44}\special{pa 787 44}\special{fp}%
-\special{pa 812 14}\special{pa 813 13}\special{pa 818 7}\special{pa 822 2}\special{pa 826 -4}\special{pa 830 -10}\special{pa 834 -15}\special{pa 835 -17}\special{fp}%
-\special{pa 856 -49}\special{pa 857 -51}\special{pa 861 -58}\special{pa 864 -64}\special{pa 868 -70}\special{pa 871 -77}\special{pa 874 -83}\special{fp}%
-\special{pa 891 -118}\special{pa 894 -125}\special{pa 897 -132}\special{pa 900 -139}\special{pa 903 -146}\special{pa 906 -154}\special{fp}%
-%
-%
-\special{pa -974 -167}\special{pa -982 -172}\special{pa -992 -173}\special{pa -1000 -169}%
-\special{pa -1006 -162}\special{pa -1008 -152}\special{pa -1005 -143}\special{pa -998 -137}%
-\special{pa -989 -134}\special{pa -980 -136}\special{pa -973 -141}\special{pa -969 -150}%
-\special{pa -969 -159}\special{pa -974 -167}\special{sh 1}\special{fp}%
-\special{pa -273 -128}\special{pa -282 -133}\special{pa -291 -134}\special{pa -300 -130}%
-\special{pa -305 -122}\special{pa -307 -113}\special{pa -304 -104}\special{pa -298 -97}%
-\special{pa -289 -95}\special{pa -279 -96}\special{pa -272 -102}\special{pa -268 -111}%
-\special{pa -269 -120}\special{pa -273 -128}\special{sh 1}\special{fp}%
-\special{pa 919 -167}\special{pa 911 -172}\special{pa 902 -173}\special{pa 893 -169}%
-\special{pa 888 -162}\special{pa 886 -152}\special{pa 889 -143}\special{pa 895 -137}%
-\special{pa 904 -134}\special{pa 914 -136}\special{pa 921 -141}\special{pa 925 -150}%
-\special{pa 924 -159}\special{pa 919 -167}\special{sh 1}\special{fp}%
-\special{pa -644 -538}\special{pa -652 -542}\special{pa -661 -543}\special{pa -670 -539}%
-\special{pa -675 -532}\special{pa -677 -522}\special{pa -674 -513}\special{pa -668 -507}%
-\special{pa -659 -504}\special{pa -649 -506}\special{pa -642 -511}\special{pa -638 -520}%
-\special{pa -639 -529}\special{pa -644 -538}\special{sh 1}\special{fp}%
-\special{pa 128 305}\special{pa 120 300}\special{pa 111 300}\special{pa 102 303}\special{pa 96 311}%
-\special{pa 95 320}\special{pa 97 329}\special{pa 104 336}\special{pa 113 339}\special{pa 122 337}%
-\special{pa 130 331}\special{pa 134 322}\special{pa 133 313}\special{pa 128 305}\special{sh 1}\special{fp}%
-\special{pa 734 325}\special{pa 726 320}\special{pa 717 319}\special{pa 708 323}\special{pa 703 331}%
-\special{pa 701 340}\special{pa 704 349}\special{pa 710 355}\special{pa 719 358}\special{pa 729 357}%
-\special{pa 736 351}\special{pa 740 342}\special{pa 739 333}\special{pa 734 325}\special{sh 1}\special{fp}%
-\settowidth{\Width}{A}\setlength{\Width}{-1\Width}%
-\settoheight{\Height}{A}\settodepth{\Depth}{A}\setlength{\Height}{-\Height}%
-\put(-2.6600,0.2400){\hspace*{\Width}\raisebox{\Height}{A}}%
-%
-%
-\settowidth{\Width}{B}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{B}\settodepth{\Depth}{B}\setlength{\Height}{-\Height}%
-\put(-0.7300,0.1400){\hspace*{\Width}\raisebox{\Height}{B}}%
-%
-%
-\settowidth{\Width}{C}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{C}\settodepth{\Depth}{C}\setlength{\Height}{\Depth}%
-\put(2.4500,0.5400){\hspace*{\Width}\raisebox{\Height}{C}}%
-%
-%
-\settowidth{\Width}{D}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{D}\settodepth{\Depth}{D}\setlength{\Height}{\Depth}%
-\put(-1.6700,1.4800){\hspace*{\Width}\raisebox{\Height}{D}}%
-%
-%
-\settowidth{\Width}{E}\setlength{\Width}{-1\Width}%
-\settoheight{\Height}{E}\settodepth{\Depth}{E}\setlength{\Height}{-\Height}%
-\put(0.1400,-0.9600){\hspace*{\Width}\raisebox{\Height}{E}}%
-%
-%
-\settowidth{\Width}{F}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{F}\settodepth{\Depth}{F}\setlength{\Height}{-\Height}%
-\put(1.9800,-1.0100){\hspace*{\Width}\raisebox{\Height}{F}}%
-%
-%
-\end{picture}}% \ No newline at end of file
diff --git a/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/checkb8.tex b/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/checkb8.tex
deleted file mode 100644
index 11831e8d..00000000
--- a/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/checkb8.tex
+++ /dev/null
@@ -1,75 +0,0 @@
-%%% checkb.tex 2015-1-6 10:38
-%%% checkb.sce 2015-1-6 6:35
-{\unitlength=1cm%
-\begin{picture}%
-( 10.00000, 4.00000)( -4.96000, -1.99000)%
-\special{pn 8}%
-%
-\special{pa -1356 171}\special{pa -1364 166}\special{pa -1374 166}\special{pa -1382 170}%
-\special{pa -1388 177}\special{pa -1390 186}\special{pa -1387 195}\special{pa -1380 202}%
-\special{pa -1371 205}\special{pa -1362 203}\special{pa -1355 197}\special{pa -1351 189}%
-\special{pa -1351 179}\special{pa -1356 171}\special{sh 1}\special{fp}%
-\special{pa -726 -321}\special{pa -734 -326}\special{pa -744 -326}\special{pa -752 -323}%
-\special{pa -758 -315}\special{pa -760 -306}\special{pa -757 -297}\special{pa -750 -290}%
-\special{pa -741 -287}\special{pa -732 -289}\special{pa -725 -295}\special{pa -721 -304}%
-\special{pa -721 -313}\special{pa -726 -321}\special{sh 1}\special{fp}%
-\special{pa 805 159}\special{pa 797 154}\special{pa 788 154}\special{pa 779 158}\special{pa 773 165}%
-\special{pa 772 174}\special{pa 774 183}\special{pa 781 190}\special{pa 790 193}\special{pa 799 191}%
-\special{pa 807 185}\special{pa 811 177}\special{pa 810 167}\special{pa 805 159}\special{sh 1}\special{fp}%
-\special{pa -1144 6}\special{pa -1152 1}\special{pa -1161 0}\special{pa -1170 4}\special{pa -1175 12}%
-\special{pa -1177 21}\special{pa -1174 30}\special{pa -1168 37}\special{pa -1159 39}%
-\special{pa -1149 38}\special{pa -1142 32}\special{pa -1138 23}\special{pa -1139 14}%
-\special{pa -1144 6}\special{sh 1}\special{fp}%
-\special{pa -935 -160}\special{pa -943 -164}\special{pa -952 -165}\special{pa -961 -161}%
-\special{pa -967 -154}\special{pa -968 -144}\special{pa -966 -135}\special{pa -959 -129}%
-\special{pa -950 -126}\special{pa -941 -128}\special{pa -933 -134}\special{pa -929 -142}%
-\special{pa -930 -152}\special{pa -935 -160}\special{sh 1}\special{fp}%
-\special{pa -214 -160}\special{pa -222 -164}\special{pa -232 -165}\special{pa -240 -161}%
-\special{pa -246 -154}\special{pa -248 -144}\special{pa -245 -135}\special{pa -239 -129}%
-\special{pa -230 -126}\special{pa -220 -128}\special{pa -213 -134}\special{pa -209 -142}%
-\special{pa -210 -152}\special{pa -214 -160}\special{sh 1}\special{fp}%
-\special{pa 293 -2}\special{pa 285 -7}\special{pa 276 -8}\special{pa 267 -4}\special{pa 262 4}%
-\special{pa 260 13}\special{pa 263 22}\special{pa 269 29}\special{pa 278 31}\special{pa 288 30}%
-\special{pa 295 24}\special{pa 299 15}\special{pa 298 6}\special{pa 293 -2}\special{sh 1}\special{fp}%
-\settowidth{\Width}{A}\setlength{\Width}{-1\Width}%
-\settoheight{\Height}{A}\settodepth{\Depth}{A}\setlength{\Height}{-\Height}%
-\put(-3.6300,-0.6200){\hspace*{\Width}\raisebox{\Height}{A}}%
-%
-%
-\settowidth{\Width}{Ap1}\setlength{\Width}{-1\Width}%
-\settoheight{\Height}{Ap1}\settodepth{\Depth}{Ap1}\setlength{\Height}{\Depth}%
-\put(-3.0900,0.1000){\hspace*{\Width}\raisebox{\Height}{Ap1}}%
-%
-%
-\settowidth{\Width}{Aq1}\setlength{\Width}{-1\Width}%
-\settoheight{\Height}{Aq1}\settodepth{\Depth}{Aq1}\setlength{\Height}{\Depth}%
-\put(-2.5600,0.5200){\hspace*{\Width}\raisebox{\Height}{Aq1}}%
-%
-%
-\settowidth{\Width}{Ap2}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{Ap2}\settodepth{\Depth}{Ap2}\setlength{\Height}{\Depth}%
-\put(-0.4300,0.5200){\hspace*{\Width}\raisebox{\Height}{Ap2}}%
-%
-%
-\settowidth{\Width}{Aq2}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{Aq2}\settodepth{\Depth}{Aq2}\setlength{\Height}{\Depth}%
-\put(0.8600,0.1200){\hspace*{\Width}\raisebox{\Height}{Aq2}}%
-%
-%
-\settowidth{\Width}{B}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{B}\settodepth{\Depth}{B}\setlength{\Height}{\Depth}%
-\put(-1.8800,0.9300){\hspace*{\Width}\raisebox{\Height}{B}}%
-%
-%
-\settowidth{\Width}{C}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{C}\settodepth{\Depth}{C}\setlength{\Height}{-\Height}%
-\put(2.1600,-0.5900){\hspace*{\Width}\raisebox{\Height}{C}}%
-%
-%
-\special{pa -1370 185}\special{pa -1306 135}\special{pa -1243 86}\special{pa -1180 36}%
-\special{pa -1117 -13}\special{pa -1054 -63}\special{pa -991 -112}\special{pa -928 -161}%
-\special{pa -865 -210}\special{pa -803 -259}\special{pa -740 -307}\special{pa -587 -259}%
-\special{pa -433 -211}\special{pa -280 -163}\special{pa -127 -115}\special{pa 26 -67}%
-\special{pa 179 -19}\special{pa 332 29}\special{pa 485 77}\special{pa 638 125}\special{pa 791 173}%
-\special{fp}%
-\end{picture}}% \ No newline at end of file
diff --git a/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/checkb9.tex b/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/checkb9.tex
deleted file mode 100644
index 3096838f..00000000
--- a/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/checkb9.tex
+++ /dev/null
@@ -1,57 +0,0 @@
-%%% checkb.tex 2015-1-6 10:35
-%%% checkb.sce 2015-1-6 6:35
-{\unitlength=1cm%
-\begin{picture}%
-( 10.00000, 4.00000)( -4.96000, -1.99000)%
-\special{pn 8}%
-%
-\special{pa -1356 171}\special{pa -1364 166}\special{pa -1374 166}\special{pa -1382 170}%
-\special{pa -1388 177}\special{pa -1390 186}\special{pa -1387 195}\special{pa -1380 202}%
-\special{pa -1371 205}\special{pa -1362 203}\special{pa -1355 197}\special{pa -1351 189}%
-\special{pa -1351 179}\special{pa -1356 171}\special{sh 1}\special{fp}%
-\special{pa -726 -321}\special{pa -734 -326}\special{pa -744 -326}\special{pa -752 -323}%
-\special{pa -758 -315}\special{pa -760 -306}\special{pa -757 -297}\special{pa -750 -290}%
-\special{pa -741 -287}\special{pa -732 -289}\special{pa -725 -295}\special{pa -721 -304}%
-\special{pa -721 -313}\special{pa -726 -321}\special{sh 1}\special{fp}%
-\special{pa 805 159}\special{pa 797 154}\special{pa 788 154}\special{pa 779 158}\special{pa 773 165}%
-\special{pa 772 174}\special{pa 774 183}\special{pa 781 190}\special{pa 790 193}\special{pa 799 191}%
-\special{pa 807 185}\special{pa 811 177}\special{pa 810 167}\special{pa 805 159}\special{sh 1}\special{fp}%
-\special{pa -1041 -77}\special{pa -1049 -82}\special{pa -1059 -82}\special{pa -1067 -78}%
-\special{pa -1073 -71}\special{pa -1075 -62}\special{pa -1072 -53}\special{pa -1065 -46}%
-\special{pa -1056 -43}\special{pa -1047 -45}\special{pa -1040 -51}\special{pa -1036 -59}%
-\special{pa -1036 -69}\special{pa -1041 -77}\special{sh 1}\special{fp}%
-\special{pa 41 -81}\special{pa 33 -86}\special{pa 24 -86}\special{pa 15 -82}\special{pa 10 -75}%
-\special{pa 8 -66}\special{pa 11 -57}\special{pa 17 -50}\special{pa 26 -47}\special{pa 36 -49}%
-\special{pa 43 -55}\special{pa 47 -63}\special{pa 46 -73}\special{pa 41 -81}\special{sh 1}\special{fp}%
-\settowidth{\Width}{A}\setlength{\Width}{-1\Width}%
-\settoheight{\Height}{A}\settodepth{\Depth}{A}\setlength{\Height}{-\Height}%
-\put(-3.6300,-0.6200){\hspace*{\Width}\raisebox{\Height}{A}}%
-%
-%
-\settowidth{\Width}{Ap1}\setlength{\Width}{-1\Width}%
-\settoheight{\Height}{Ap1}\settodepth{\Depth}{Ap1}\setlength{\Height}{\Depth}%
-\put(-2.8300,0.3100){\hspace*{\Width}\raisebox{\Height}{Ap1}}%
-%
-%
-\settowidth{\Width}{Ap2}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{Ap2}\settodepth{\Depth}{Ap2}\setlength{\Height}{\Depth}%
-\put(0.2200,0.3200){\hspace*{\Width}\raisebox{\Height}{Ap2}}%
-%
-%
-\settowidth{\Width}{B}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{B}\settodepth{\Depth}{B}\setlength{\Height}{\Depth}%
-\put(-1.8800,0.9300){\hspace*{\Width}\raisebox{\Height}{B}}%
-%
-%
-\settowidth{\Width}{C}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{C}\settodepth{\Depth}{C}\setlength{\Height}{-\Height}%
-\put(2.1600,-0.5900){\hspace*{\Width}\raisebox{\Height}{C}}%
-%
-%
-\special{pa -1370 185}\special{pa -1307 135}\special{pa -1244 86}\special{pa -1181 37}%
-\special{pa -1118 -13}\special{pa -1055 -62}\special{pa -992 -111}\special{pa -929 -160}%
-\special{pa -866 -209}\special{pa -803 -258}\special{pa -740 -307}\special{pa -587 -259}%
-\special{pa -433 -211}\special{pa -280 -163}\special{pa -127 -115}\special{pa 27 -67}%
-\special{pa 180 -19}\special{pa 333 29}\special{pa 486 77}\special{pa 639 125}\special{pa 791 173}%
-\special{fp}%
-\end{picture}}% \ No newline at end of file
diff --git a/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/checkbe1.tex b/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/checkbe1.tex
deleted file mode 100644
index 46e2c8d5..00000000
--- a/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/checkbe1.tex
+++ /dev/null
@@ -1,38 +0,0 @@
-%%% checkb.tex 2015-1-6 7:22
-%%% checkb.sce 2015-1-6 6:35
-{\unitlength=1cm%
-\begin{picture}%
-( 5.95000, 4.06000)( -3.00000, -2.00000)%
-\special{pn 8}%
-%
-\special{pa -738 419}\special{pa -746 414}\special{pa -756 414}\special{pa -764 418}%
-\special{pa -770 425}\special{pa -772 434}\special{pa -769 443}\special{pa -762 450}%
-\special{pa -753 453}\special{pa -744 451}\special{pa -736 445}\special{pa -733 437}%
-\special{pa -733 427}\special{pa -738 419}\special{sh 1}\special{fp}%
-\special{pa 888 470}\special{pa 880 465}\special{pa 870 465}\special{pa 862 469}\special{pa 856 476}%
-\special{pa 854 485}\special{pa 857 494}\special{pa 864 501}\special{pa 873 504}\special{pa 882 502}%
-\special{pa 890 496}\special{pa 893 488}\special{pa 893 478}\special{pa 888 470}\special{sh 1}\special{fp}%
-\special{pa -439 -238}\special{pa -447 -243}\special{pa -456 -244}\special{pa -465 -240}%
-\special{pa -471 -232}\special{pa -472 -223}\special{pa -470 -214}\special{pa -463 -208}%
-\special{pa -454 -205}\special{pa -445 -206}\special{pa -437 -212}\special{pa -433 -221}%
-\special{pa -434 -230}\special{pa -439 -238}\special{sh 1}\special{fp}%
-\settowidth{\Width}{A}\setlength{\Width}{-1\Width}%
-\settoheight{\Height}{A}\settodepth{\Depth}{A}\setlength{\Height}{-\Height}%
-\put(-2.0600,-1.2500){\hspace*{\Width}\raisebox{\Height}{A}}%
-%
-%
-\settowidth{\Width}{B}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{B}\settodepth{\Depth}{B}\setlength{\Height}{-\Height}%
-\put(2.3700,-1.3800){\hspace*{\Width}\raisebox{\Height}{B}}%
-%
-%
-\settowidth{\Width}{C}\setlength{\Width}{-1\Width}%
-\settoheight{\Height}{C}\settodepth{\Depth}{C}\setlength{\Height}{\Depth}%
-\put(-1.3000,0.7200){\hspace*{\Width}\raisebox{\Height}{C}}%
-%
-%
-\special{pa -752 433}\special{pa -682 315}\special{pa -591 225}\special{pa -480 162}%
-\special{pa -348 126}\special{pa -196 117}\special{pa -23 136}\special{pa 170 182}%
-\special{pa 384 255}\special{pa 619 356}\special{pa 874 484}%
-\special{fp}%
-\end{picture}}% \ No newline at end of file
diff --git a/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/checkbe2.tex b/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/checkbe2.tex
deleted file mode 100644
index bfe04b54..00000000
--- a/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/checkbe2.tex
+++ /dev/null
@@ -1,47 +0,0 @@
-%%% checkb.tex 2015-1-6 7:20
-%%% checkb.sce 2015-1-6 6:35
-{\unitlength=1cm%
-\begin{picture}%
-( 5.95000, 4.06000)( -3.00000, -2.00000)%
-\special{pn 8}%
-%
-\special{pa -738 419}\special{pa -746 414}\special{pa -756 414}\special{pa -764 418}%
-\special{pa -770 425}\special{pa -772 434}\special{pa -769 443}\special{pa -762 450}%
-\special{pa -753 453}\special{pa -744 451}\special{pa -736 445}\special{pa -733 437}%
-\special{pa -733 427}\special{pa -738 419}\special{sh 1}\special{fp}%
-\special{pa 888 470}\special{pa 880 465}\special{pa 870 465}\special{pa 862 469}\special{pa 856 476}%
-\special{pa 854 485}\special{pa 857 494}\special{pa 864 501}\special{pa 873 504}\special{pa 882 502}%
-\special{pa 890 496}\special{pa 893 488}\special{pa 893 478}\special{pa 888 470}\special{sh 1}\special{fp}%
-\special{pa -439 -238}\special{pa -447 -243}\special{pa -456 -244}\special{pa -465 -240}%
-\special{pa -471 -232}\special{pa -472 -223}\special{pa -470 -214}\special{pa -463 -208}%
-\special{pa -454 -205}\special{pa -445 -206}\special{pa -437 -212}\special{pa -433 -221}%
-\special{pa -434 -230}\special{pa -439 -238}\special{sh 1}\special{fp}%
-\special{pa 427 -282}\special{pa 419 -287}\special{pa 410 -287}\special{pa 401 -283}%
-\special{pa 395 -276}\special{pa 394 -267}\special{pa 397 -258}\special{pa 403 -251}%
-\special{pa 412 -248}\special{pa 421 -250}\special{pa 429 -256}\special{pa 433 -264}%
-\special{pa 432 -274}\special{pa 427 -282}\special{sh 1}\special{fp}%
-\settowidth{\Width}{A}\setlength{\Width}{-1\Width}%
-\settoheight{\Height}{A}\settodepth{\Depth}{A}\setlength{\Height}{-\Height}%
-\put(-2.0600,-1.2500){\hspace*{\Width}\raisebox{\Height}{A}}%
-%
-%
-\settowidth{\Width}{B}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{B}\settodepth{\Depth}{B}\setlength{\Height}{-\Height}%
-\put(2.3700,-1.3800){\hspace*{\Width}\raisebox{\Height}{B}}%
-%
-%
-\settowidth{\Width}{C}\setlength{\Width}{-1\Width}%
-\settoheight{\Height}{C}\settodepth{\Depth}{C}\setlength{\Height}{\Depth}%
-\put(-1.3000,0.7200){\hspace*{\Width}\raisebox{\Height}{C}}%
-%
-%
-\settowidth{\Width}{D}\setlength{\Width}{-1\Width}%
-\settoheight{\Height}{D}\settodepth{\Depth}{D}\setlength{\Height}{\Depth}%
-\put(0.9000,0.8300){\hspace*{\Width}\raisebox{\Height}{D}}%
-%
-%
-\special{pa -752 433}\special{pa -646 254}\special{pa -512 114}\special{pa -356 12}%
-\special{pa -183 -50}\special{pa 0 -70}\special{pa 189 -48}\special{pa 376 17}\special{pa 557 127}%
-\special{pa 725 282}\special{pa 874 484}%
-\special{fp}%
-\end{picture}}% \ No newline at end of file
diff --git a/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/checkbe3.tex b/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/checkbe3.tex
deleted file mode 100644
index 0d58f3fb..00000000
--- a/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/checkbe3.tex
+++ /dev/null
@@ -1,65 +0,0 @@
-%%% checkb.tex 2015-1-6 7:31
-%%% checkb.sce 2015-1-6 6:35
-{\unitlength=1cm%
-\begin{picture}%
-( 5.95000, 4.06000)( -3.00000, -2.00000)%
-\special{pn 8}%
-%
-\special{pa -911 368}\special{pa -919 363}\special{pa -929 363}\special{pa -937 366}%
-\special{pa -943 374}\special{pa -945 383}\special{pa -942 392}\special{pa -935 399}%
-\special{pa -926 402}\special{pa -917 400}\special{pa -910 394}\special{pa -906 385}%
-\special{pa -906 376}\special{pa -911 368}\special{sh 1}\special{fp}%
-\special{pa -254 356}\special{pa -262 351}\special{pa -271 351}\special{pa -280 355}%
-\special{pa -286 362}\special{pa -287 371}\special{pa -285 380}\special{pa -278 387}%
-\special{pa -269 390}\special{pa -260 388}\special{pa -252 382}\special{pa -248 374}%
-\special{pa -249 364}\special{pa -254 356}\special{sh 1}\special{fp}%
-\special{pa 888 478}\special{pa 880 473}\special{pa 870 473}\special{pa 862 477}\special{pa 856 484}%
-\special{pa 854 493}\special{pa 857 502}\special{pa 864 509}\special{pa 873 512}\special{pa 882 510}%
-\special{pa 890 504}\special{pa 893 496}\special{pa 893 486}\special{pa 888 478}\special{sh 1}\special{fp}%
-\special{pa -655 -45}\special{pa -663 -50}\special{pa -673 -51}\special{pa -681 -47}%
-\special{pa -687 -40}\special{pa -689 -30}\special{pa -686 -21}\special{pa -679 -15}%
-\special{pa -670 -12}\special{pa -661 -14}\special{pa -654 -19}\special{pa -650 -28}%
-\special{pa -650 -37}\special{pa -655 -45}\special{sh 1}\special{fp}%
-\special{pa 116 -53}\special{pa 108 -58}\special{pa 99 -59}\special{pa 90 -55}\special{pa 84 -47}%
-\special{pa 83 -38}\special{pa 86 -29}\special{pa 92 -23}\special{pa 101 -20}\special{pa 110 -21}%
-\special{pa 118 -27}\special{pa 122 -36}\special{pa 121 -45}\special{pa 116 -53}\special{sh 1}\special{fp}%
-\special{pa 518 -77}\special{pa 510 -82}\special{pa 500 -82}\special{pa 492 -78}\special{pa 486 -71}%
-\special{pa 484 -62}\special{pa 487 -53}\special{pa 494 -46}\special{pa 503 -43}\special{pa 512 -45}%
-\special{pa 519 -51}\special{pa 523 -59}\special{pa 523 -69}\special{pa 518 -77}\special{sh 1}\special{fp}%
-\settowidth{\Width}{A}\setlength{\Width}{-1\Width}%
-\settoheight{\Height}{A}\settodepth{\Depth}{A}\setlength{\Height}{-\Height}%
-\put(-2.5000,-1.1200){\hspace*{\Width}\raisebox{\Height}{A}}%
-%
-%
-\settowidth{\Width}{B}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{B}\settodepth{\Depth}{B}\setlength{\Height}{-\Height}%
-\put(-0.6800,-1.0900){\hspace*{\Width}\raisebox{\Height}{B}}%
-%
-%
-\settowidth{\Width}{C}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{C}\settodepth{\Depth}{C}\setlength{\Height}{-\Height}%
-\put(2.3700,-1.4000){\hspace*{\Width}\raisebox{\Height}{C}}%
-%
-%
-\settowidth{\Width}{D}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{D}\settodepth{\Depth}{D}\setlength{\Height}{\Depth}%
-\put(-1.7000,0.2300){\hspace*{\Width}\raisebox{\Height}{D}}%
-%
-%
-\settowidth{\Width}{E}\setlength{\Width}{-1\Width}%
-\settoheight{\Height}{E}\settodepth{\Depth}{E}\setlength{\Height}{\Depth}%
-\put(0.1100,0.2500){\hspace*{\Width}\raisebox{\Height}{E}}%
-%
-%
-\settowidth{\Width}{F}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{F}\settodepth{\Depth}{F}\setlength{\Height}{\Depth}%
-\put(1.4300,0.3100){\hspace*{\Width}\raisebox{\Height}{F}}%
-%
-%
-\special{pa -925 382}\special{pa -873 307}\special{pa -817 249}\special{pa -759 207}%
-\special{pa -697 182}\special{pa -633 172}\special{pa -566 179}\special{pa -496 202}%
-\special{pa -423 242}\special{pa -347 298}\special{pa -268 370}\special{pa -156 259}%
-\special{pa -42 172}\special{pa 72 111}\special{pa 187 76}\special{pa 303 69}\special{pa 419 91}%
-\special{pa 534 144}\special{pa 649 227}\special{pa 762 343}\special{pa 874 492}%
-\special{fp}%
-\end{picture}}% \ No newline at end of file
diff --git a/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/checkbe4.tex b/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/checkbe4.tex
deleted file mode 100644
index 1ab35d02..00000000
--- a/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/checkbe4.tex
+++ /dev/null
@@ -1,66 +0,0 @@
-%%% checkb.tex 2015-1-6 8:23
-%%% checkb.sce 2015-1-6 6:35
-{\unitlength=1cm%
-\begin{picture}%
-( 14.00000, 3.95000)( -3.03000, -1.91000)%
-\special{pn 8}%
-%
-\special{pa -974 -167}\special{pa -982 -172}\special{pa -992 -173}\special{pa -1000 -169}%
-\special{pa -1006 -162}\special{pa -1008 -152}\special{pa -1005 -143}\special{pa -998 -137}%
-\special{pa -989 -134}\special{pa -980 -136}\special{pa -973 -141}\special{pa -969 -150}%
-\special{pa -969 -159}\special{pa -974 -167}\special{sh 1}\special{fp}%
-\special{pa -273 -128}\special{pa -282 -133}\special{pa -291 -134}\special{pa -300 -130}%
-\special{pa -305 -122}\special{pa -307 -113}\special{pa -304 -104}\special{pa -298 -97}%
-\special{pa -289 -95}\special{pa -279 -96}\special{pa -272 -102}\special{pa -268 -111}%
-\special{pa -269 -120}\special{pa -273 -128}\special{sh 1}\special{fp}%
-\special{pa 919 -167}\special{pa 911 -172}\special{pa 902 -173}\special{pa 893 -169}%
-\special{pa 888 -162}\special{pa 886 -152}\special{pa 889 -143}\special{pa 895 -137}%
-\special{pa 904 -134}\special{pa 914 -136}\special{pa 921 -141}\special{pa 925 -150}%
-\special{pa 924 -159}\special{pa 919 -167}\special{sh 1}\special{fp}%
-\special{pa -644 -538}\special{pa -652 -542}\special{pa -661 -543}\special{pa -670 -539}%
-\special{pa -675 -532}\special{pa -677 -522}\special{pa -674 -513}\special{pa -668 -507}%
-\special{pa -659 -504}\special{pa -649 -506}\special{pa -642 -511}\special{pa -638 -520}%
-\special{pa -639 -529}\special{pa -644 -538}\special{sh 1}\special{fp}%
-\special{pa 128 305}\special{pa 120 300}\special{pa 111 300}\special{pa 102 303}\special{pa 96 311}%
-\special{pa 95 320}\special{pa 97 329}\special{pa 104 336}\special{pa 113 339}\special{pa 122 337}%
-\special{pa 130 331}\special{pa 134 322}\special{pa 133 313}\special{pa 128 305}\special{sh 1}\special{fp}%
-\special{pa 734 325}\special{pa 726 320}\special{pa 717 319}\special{pa 708 323}\special{pa 703 331}%
-\special{pa 701 340}\special{pa 704 349}\special{pa 710 355}\special{pa 719 358}\special{pa 729 357}%
-\special{pa 736 351}\special{pa 740 342}\special{pa 739 333}\special{pa 734 325}\special{sh 1}\special{fp}%
-\settowidth{\Width}{A}\setlength{\Width}{-1\Width}%
-\settoheight{\Height}{A}\settodepth{\Depth}{A}\setlength{\Height}{-\Height}%
-\put(-2.6600,0.2400){\hspace*{\Width}\raisebox{\Height}{A}}%
-%
-%
-\settowidth{\Width}{B}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{B}\settodepth{\Depth}{B}\setlength{\Height}{-\Height}%
-\put(-0.7300,0.1400){\hspace*{\Width}\raisebox{\Height}{B}}%
-%
-%
-\settowidth{\Width}{C}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{C}\settodepth{\Depth}{C}\setlength{\Height}{\Depth}%
-\put(2.4500,0.5400){\hspace*{\Width}\raisebox{\Height}{C}}%
-%
-%
-\settowidth{\Width}{D}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{D}\settodepth{\Depth}{D}\setlength{\Height}{\Depth}%
-\put(-1.6700,1.4800){\hspace*{\Width}\raisebox{\Height}{D}}%
-%
-%
-\settowidth{\Width}{E}\setlength{\Width}{-1\Width}%
-\settoheight{\Height}{E}\settodepth{\Depth}{E}\setlength{\Height}{-\Height}%
-\put(0.1400,-0.9600){\hspace*{\Width}\raisebox{\Height}{E}}%
-%
-%
-\settowidth{\Width}{F}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{F}\settodepth{\Depth}{F}\setlength{\Height}{-\Height}%
-\put(1.9800,-1.0100){\hspace*{\Width}\raisebox{\Height}{F}}%
-%
-%
-\special{pa -988 -154}\special{pa -922 -220}\special{pa -854 -270}\special{pa -786 -305}%
-\special{pa -717 -325}\special{pa -648 -329}\special{pa -577 -317}\special{pa -506 -290}%
-\special{pa -434 -247}\special{pa -361 -188}\special{pa -287 -114}\special{pa -161 3}%
-\special{pa -27 95}\special{pa 112 161}\special{pa 253 201}\special{pa 390 213}\special{pa 521 198}%
-\special{pa 642 154}\special{pa 749 81}\special{pa 838 -21}\special{pa 906 -154}%
-\special{fp}%
-\end{picture}}% \ No newline at end of file
diff --git a/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/checkbe5.tex b/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/checkbe5.tex
deleted file mode 100644
index 33710895..00000000
--- a/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/checkbe5.tex
+++ /dev/null
@@ -1,63 +0,0 @@
-%%% checkb.tex 2015-1-6 8:30
-%%% checkb.sce 2015-1-6 6:35
-{\unitlength=1cm%
-\begin{picture}%
-( 14.00000, 3.95000)( -3.03000, -1.91000)%
-\special{pn 8}%
-%
-\special{pa -974 -167}\special{pa -982 -172}\special{pa -992 -173}\special{pa -1000 -169}%
-\special{pa -1006 -162}\special{pa -1008 -152}\special{pa -1005 -143}\special{pa -998 -137}%
-\special{pa -989 -134}\special{pa -980 -136}\special{pa -973 -141}\special{pa -969 -150}%
-\special{pa -969 -159}\special{pa -974 -167}\special{sh 1}\special{fp}%
-\special{pa -273 -128}\special{pa -282 -133}\special{pa -291 -134}\special{pa -300 -130}%
-\special{pa -305 -122}\special{pa -307 -113}\special{pa -304 -104}\special{pa -298 -97}%
-\special{pa -289 -95}\special{pa -279 -96}\special{pa -272 -102}\special{pa -268 -111}%
-\special{pa -269 -120}\special{pa -273 -128}\special{sh 1}\special{fp}%
-\special{pa 919 -167}\special{pa 911 -172}\special{pa 902 -173}\special{pa 893 -169}%
-\special{pa 888 -162}\special{pa 886 -152}\special{pa 889 -143}\special{pa 895 -137}%
-\special{pa 904 -134}\special{pa 914 -136}\special{pa 921 -141}\special{pa 925 -150}%
-\special{pa 924 -159}\special{pa 919 -167}\special{sh 1}\special{fp}%
-\special{pa -644 -538}\special{pa -652 -542}\special{pa -661 -543}\special{pa -670 -539}%
-\special{pa -675 -532}\special{pa -677 -522}\special{pa -674 -513}\special{pa -668 -507}%
-\special{pa -659 -504}\special{pa -649 -506}\special{pa -642 -511}\special{pa -638 -520}%
-\special{pa -639 -529}\special{pa -644 -538}\special{sh 1}\special{fp}%
-\special{pa 128 305}\special{pa 120 300}\special{pa 111 300}\special{pa 102 303}\special{pa 96 311}%
-\special{pa 95 320}\special{pa 97 329}\special{pa 104 336}\special{pa 113 339}\special{pa 122 337}%
-\special{pa 130 331}\special{pa 134 322}\special{pa 133 313}\special{pa 128 305}\special{sh 1}\special{fp}%
-\special{pa 734 325}\special{pa 726 320}\special{pa 717 319}\special{pa 708 323}\special{pa 703 331}%
-\special{pa 701 340}\special{pa 704 349}\special{pa 710 355}\special{pa 719 358}\special{pa 729 357}%
-\special{pa 736 351}\special{pa 740 342}\special{pa 739 333}\special{pa 734 325}\special{sh 1}\special{fp}%
-\settowidth{\Width}{A}\setlength{\Width}{-1\Width}%
-\settoheight{\Height}{A}\settodepth{\Depth}{A}\setlength{\Height}{-\Height}%
-\put(-2.6600,0.2400){\hspace*{\Width}\raisebox{\Height}{A}}%
-%
-%
-\settowidth{\Width}{B}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{B}\settodepth{\Depth}{B}\setlength{\Height}{-\Height}%
-\put(-0.7300,0.1400){\hspace*{\Width}\raisebox{\Height}{B}}%
-%
-%
-\settowidth{\Width}{C}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{C}\settodepth{\Depth}{C}\setlength{\Height}{\Depth}%
-\put(2.4500,0.5400){\hspace*{\Width}\raisebox{\Height}{C}}%
-%
-%
-\settowidth{\Width}{D}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{D}\settodepth{\Depth}{D}\setlength{\Height}{\Depth}%
-\put(-1.6700,1.4800){\hspace*{\Width}\raisebox{\Height}{D}}%
-%
-%
-\settowidth{\Width}{E}\setlength{\Width}{-1\Width}%
-\settoheight{\Height}{E}\settodepth{\Depth}{E}\setlength{\Height}{-\Height}%
-\put(0.1400,-0.9600){\hspace*{\Width}\raisebox{\Height}{E}}%
-%
-%
-\settowidth{\Width}{F}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{F}\settodepth{\Depth}{F}\setlength{\Height}{-\Height}%
-\put(1.9800,-1.0100){\hspace*{\Width}\raisebox{\Height}{F}}%
-%
-%
-\special{pa -988 -154}\special{pa -763 -314}\special{pa -530 -301}\special{pa -287 -114}%
-\special{pa 159 177}\special{pa 603 172}\special{pa 906 -154}%
-\special{fp}%
-\end{picture}}% \ No newline at end of file
diff --git a/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/checkbe6.tex b/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/checkbe6.tex
deleted file mode 100644
index d5b04a7f..00000000
--- a/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/checkbe6.tex
+++ /dev/null
@@ -1,92 +0,0 @@
-%%% checkb.tex 2015-1-6 9:16
-%%% checkb.sce 2015-1-6 6:35
-{\unitlength=1cm%
-\begin{picture}%
-( 14.00000, 3.95000)( -3.03000, -1.91000)%
-\special{pn 8}%
-%
-\special{pa -988 -154}\special{pa -985 -157}\special{pa -982 -161}\special{pa -978 -164}\special{pa -975 -168}\special{pa -972 -172}\special{pa -968 -175}\special{pa -965 -178}\special{pa -962 -182}\special{fp}%
-\special{pa -934 -209}\special{pa -932 -211}\special{pa -928 -214}\special{pa -925 -217}\special{pa -922 -220}\special{pa -918 -223}\special{pa -915 -226}\special{pa -912 -228}\special{pa -908 -231}\special{pa -905 -234}\special{fp}%
-\special{pa -874 -257}\special{pa -871 -259}\special{pa -868 -262}\special{pa -864 -264}\special{pa -861 -266}\special{pa -858 -268}\special{pa -854 -270}\special{pa -851 -273}\special{pa -848 -275}\special{pa -844 -277}\special{pa -842 -278}\special{fp}%
-\special{pa -808 -296}\special{pa -807 -297}\special{pa -803 -298}\special{pa -800 -300}\special{pa -796 -301}\special{pa -793 -303}\special{pa -790 -304}\special{pa -786 -305}\special{pa -783 -307}\special{pa -779 -308}\special{pa -776 -309}\special{pa -773 -311}\special{pa -772 -311}\special{fp}%
-\special{pa -735 -321}\special{pa -735 -321}\special{pa -731 -322}\special{pa -728 -323}\special{pa -724 -324}\special{pa -721 -324}\special{pa -717 -325}\special{pa -714 -325}\special{pa -710 -326}\special{pa -707 -326}\special{pa -703 -327}\special{pa -700 -327}\special{pa -697 -328}\special{fp}%
-\special{pa -658 -329}\special{pa -658 -329}\special{pa -655 -329}\special{pa -651 -329}\special{pa -648 -329}\special{pa -644 -329}\special{pa -641 -328}\special{pa -637 -328}\special{pa -634 -328}\special{pa -630 -327}\special{pa -627 -327}\special{pa -623 -326}\special{pa -620 -326}\special{fp}%
-\special{pa -582 -318}\special{pa -581 -318}\special{pa -577 -317}\special{pa -574 -316}\special{pa -570 -315}\special{pa -567 -314}\special{pa -563 -313}\special{pa -559 -312}\special{pa -556 -310}\special{pa -552 -309}\special{pa -549 -308}\special{pa -545 -307}\special{fp}%
-\special{pa -510 -292}\special{pa -509 -291}\special{pa -506 -290}\special{pa -502 -288}\special{pa -499 -286}\special{pa -495 -284}\special{pa -492 -282}\special{pa -488 -280}\special{pa -484 -278}\special{pa -481 -276}\special{pa -477 -274}\special{pa -476 -274}\special{fp}%
-\special{pa -443 -253}\special{pa -441 -252}\special{pa -437 -249}\special{pa -434 -247}\special{pa -430 -244}\special{pa -427 -242}\special{pa -423 -239}\special{pa -419 -236}\special{pa -416 -234}\special{pa -412 -231}\special{pa -412 -231}\special{fp}%
-\special{pa -382 -206}\special{pa -379 -204}\special{pa -376 -201}\special{pa -372 -198}\special{pa -368 -195}\special{pa -365 -192}\special{pa -361 -188}\special{pa -357 -185}\special{pa -354 -182}\special{pa -353 -181}\special{fp}%
-\special{pa -325 -154}\special{pa -324 -153}\special{pa -321 -149}\special{pa -317 -146}\special{pa -313 -142}\special{pa -310 -138}\special{pa -306 -134}\special{pa -302 -130}\special{pa -298 -126}\special{pa -298 -126}\special{fp}%
-\special{pa -272 -98}\special{pa -269 -95}\special{pa -263 -89}\special{pa -257 -82}\special{pa -251 -76}\special{pa -245 -71}\special{fp}%
-\special{pa -217 -44}\special{pa -213 -41}\special{pa -207 -35}\special{pa -200 -29}\special{pa -194 -24}\special{pa -188 -19}\special{fp}%
-\special{pa -158 6}\special{pa -155 8}\special{pa -148 14}\special{pa -142 19}\special{pa -135 24}\special{pa -128 29}\special{pa -128 29}\special{fp}%
-\special{pa -96 52}\special{pa -95 52}\special{pa -88 57}\special{pa -81 62}\special{pa -75 66}\special{pa -68 70}\special{pa -64 73}\special{fp}%
-\special{pa -31 93}\special{pa -27 95}\special{pa -20 99}\special{pa -13 103}\special{pa -6 107}\special{pa 1 111}\special{pa 3 112}\special{fp}%
-\special{pa 37 129}\special{pa 42 132}\special{pa 49 135}\special{pa 56 138}\special{pa 63 141}\special{pa 70 144}\special{pa 72 145}\special{fp}%
-\special{pa 108 160}\special{pa 112 161}\special{pa 119 164}\special{pa 126 166}\special{pa 133 169}\special{pa 140 171}\special{pa 144 173}\special{fp}%
-\special{pa 181 184}\special{pa 183 184}\special{pa 190 186}\special{pa 197 188}\special{pa 204 190}\special{pa 211 192}\special{pa 218 193}\special{pa 219 194}\special{fp}%
-\special{pa 256 201}\special{pa 260 202}\special{pa 267 203}\special{pa 274 204}\special{pa 281 205}\special{pa 287 206}\special{pa 294 207}\special{pa 294 207}\special{fp}%
-\special{pa 333 211}\special{pa 336 211}\special{pa 343 212}\special{pa 349 212}\special{pa 356 213}\special{pa 363 213}\special{pa 370 213}\special{pa 371 213}\special{fp}%
-\special{pa 410 213}\special{pa 410 213}\special{pa 417 212}\special{pa 424 212}\special{pa 430 211}\special{pa 437 211}\special{pa 444 210}\special{pa 448 210}\special{fp}%
-\special{pa 487 205}\special{pa 489 204}\special{pa 496 203}\special{pa 502 202}\special{pa 509 200}\special{pa 515 199}\special{pa 521 198}\special{pa 524 197}\special{fp}%
-\special{pa 562 187}\special{pa 565 186}\special{pa 571 184}\special{pa 577 181}\special{pa 583 179}\special{pa 589 177}\special{pa 595 175}\special{pa 598 174}\special{fp}%
-\special{pa 633 158}\special{pa 636 157}\special{pa 642 154}\special{pa 648 151}\special{pa 654 148}\special{pa 659 145}\special{pa 665 142}\special{pa 667 140}\special{fp}%
-\special{pa 700 119}\special{pa 703 117}\special{pa 708 114}\special{pa 713 110}\special{pa 719 106}\special{pa 724 102}\special{pa 729 98}\special{pa 731 96}\special{fp}%
-\special{pa 760 71}\special{pa 764 68}\special{pa 768 63}\special{pa 773 58}\special{pa 778 54}\special{pa 782 49}\special{pa 787 44}\special{pa 787 44}\special{fp}%
-\special{pa 812 14}\special{pa 813 13}\special{pa 818 7}\special{pa 822 2}\special{pa 826 -4}\special{pa 830 -10}\special{pa 834 -15}\special{pa 835 -17}\special{fp}%
-\special{pa 856 -49}\special{pa 857 -51}\special{pa 861 -58}\special{pa 864 -64}\special{pa 868 -70}\special{pa 871 -77}\special{pa 874 -83}\special{fp}%
-\special{pa 891 -118}\special{pa 894 -125}\special{pa 897 -132}\special{pa 900 -139}\special{pa 903 -146}\special{pa 906 -154}\special{fp}%
-%
-%
-\special{pa -974 -167}\special{pa -982 -172}\special{pa -992 -173}\special{pa -1000 -169}%
-\special{pa -1006 -162}\special{pa -1008 -152}\special{pa -1005 -143}\special{pa -998 -137}%
-\special{pa -989 -134}\special{pa -980 -136}\special{pa -973 -141}\special{pa -969 -150}%
-\special{pa -969 -159}\special{pa -974 -167}\special{sh 1}\special{fp}%
-\special{pa -273 -128}\special{pa -282 -133}\special{pa -291 -134}\special{pa -300 -130}%
-\special{pa -305 -122}\special{pa -307 -113}\special{pa -304 -104}\special{pa -298 -97}%
-\special{pa -289 -95}\special{pa -279 -96}\special{pa -272 -102}\special{pa -268 -111}%
-\special{pa -269 -120}\special{pa -273 -128}\special{sh 1}\special{fp}%
-\special{pa 919 -167}\special{pa 911 -172}\special{pa 902 -173}\special{pa 893 -169}%
-\special{pa 888 -162}\special{pa 886 -152}\special{pa 889 -143}\special{pa 895 -137}%
-\special{pa 904 -134}\special{pa 914 -136}\special{pa 921 -141}\special{pa 925 -150}%
-\special{pa 924 -159}\special{pa 919 -167}\special{sh 1}\special{fp}%
-\special{pa -644 -538}\special{pa -652 -542}\special{pa -661 -543}\special{pa -670 -539}%
-\special{pa -675 -532}\special{pa -677 -522}\special{pa -674 -513}\special{pa -668 -507}%
-\special{pa -659 -504}\special{pa -649 -506}\special{pa -642 -511}\special{pa -638 -520}%
-\special{pa -639 -529}\special{pa -644 -538}\special{sh 1}\special{fp}%
-\special{pa 128 305}\special{pa 120 300}\special{pa 111 300}\special{pa 102 303}\special{pa 96 311}%
-\special{pa 95 320}\special{pa 97 329}\special{pa 104 336}\special{pa 113 339}\special{pa 122 337}%
-\special{pa 130 331}\special{pa 134 322}\special{pa 133 313}\special{pa 128 305}\special{sh 1}\special{fp}%
-\special{pa 734 325}\special{pa 726 320}\special{pa 717 319}\special{pa 708 323}\special{pa 703 331}%
-\special{pa 701 340}\special{pa 704 349}\special{pa 710 355}\special{pa 719 358}\special{pa 729 357}%
-\special{pa 736 351}\special{pa 740 342}\special{pa 739 333}\special{pa 734 325}\special{sh 1}\special{fp}%
-\settowidth{\Width}{A}\setlength{\Width}{-1\Width}%
-\settoheight{\Height}{A}\settodepth{\Depth}{A}\setlength{\Height}{-\Height}%
-\put(-2.6600,0.2400){\hspace*{\Width}\raisebox{\Height}{A}}%
-%
-%
-\settowidth{\Width}{B}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{B}\settodepth{\Depth}{B}\setlength{\Height}{-\Height}%
-\put(-0.7300,0.1400){\hspace*{\Width}\raisebox{\Height}{B}}%
-%
-%
-\settowidth{\Width}{C}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{C}\settodepth{\Depth}{C}\setlength{\Height}{\Depth}%
-\put(2.4500,0.5400){\hspace*{\Width}\raisebox{\Height}{C}}%
-%
-%
-\settowidth{\Width}{D}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{D}\settodepth{\Depth}{D}\setlength{\Height}{\Depth}%
-\put(-1.6700,1.4800){\hspace*{\Width}\raisebox{\Height}{D}}%
-%
-%
-\settowidth{\Width}{E}\setlength{\Width}{-1\Width}%
-\settoheight{\Height}{E}\settodepth{\Depth}{E}\setlength{\Height}{-\Height}%
-\put(0.1400,-0.9600){\hspace*{\Width}\raisebox{\Height}{E}}%
-%
-%
-\settowidth{\Width}{F}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{F}\settodepth{\Depth}{F}\setlength{\Height}{-\Height}%
-\put(1.9800,-1.0100){\hspace*{\Width}\raisebox{\Height}{F}}%
-%
-%
-\end{picture}}% \ No newline at end of file
diff --git a/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/checkbe7.tex b/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/checkbe7.tex
deleted file mode 100644
index d0670574..00000000
--- a/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/checkbe7.tex
+++ /dev/null
@@ -1,105 +0,0 @@
-%%% checkb.tex 2015-1-13 20:23
-%%% checkb.sce 2015-1-13 13:55
-{\unitlength=1cm%
-\begin{picture}%
-( 11.00000, 2.95000)( -4.99000, -0.99000)%
-\special{pn 8}%
-%
-\special{pa -1472 173}\special{pa -1407 65}\special{pa -1323 -21}\special{pa -1224 -85}%
-\special{pa -1114 -128}\special{pa -997 -149}\special{pa -876 -150}\special{pa -754 -130}%
-\special{pa -635 -89}\special{pa -523 -29}\special{pa -421 51}\special{pa -312 -68}%
-\special{pa -182 -172}\special{pa -38 -255}\special{pa 114 -314}\special{pa 271 -344}%
-\special{pa 426 -343}\special{pa 575 -306}\special{pa 711 -228}\special{pa 829 -107}%
-\special{pa 925 63}\special{pa 1009 -73}\special{pa 1105 -167}\special{pa 1208 -223}%
-\special{pa 1315 -246}\special{pa 1423 -240}\special{pa 1526 -209}\special{pa 1622 -157}%
-\special{pa 1706 -88}\special{pa 1774 -7}\special{pa 1823 83}%
-\special{fp}%
-\special{pa -1459 159}\special{pa -1467 154}\special{pa -1476 154}\special{pa -1485 158}%
-\special{pa -1490 165}\special{pa -1492 174}\special{pa -1489 183}\special{pa -1483 190}%
-\special{pa -1474 193}\special{pa -1464 191}\special{pa -1457 185}\special{pa -1453 177}%
-\special{pa -1454 167}\special{pa -1459 159}\special{sh 1}\special{fp}%
-\special{pa -407 37}\special{pa -415 32}\special{pa -425 32}\special{pa -433 36}\special{pa -439 43}%
-\special{pa -441 52}\special{pa -438 61}\special{pa -431 68}\special{pa -422 71}\special{pa -413 69}%
-\special{pa -406 63}\special{pa -402 55}\special{pa -402 45}\special{pa -407 37}\special{sh 1}\special{fp}%
-\special{pa 939 49}\special{pa 931 44}\special{pa 922 44}\special{pa 913 47}\special{pa 907 55}%
-\special{pa 906 64}\special{pa 908 73}\special{pa 915 80}\special{pa 924 83}\special{pa 933 81}%
-\special{pa 941 75}\special{pa 945 67}\special{pa 944 57}\special{pa 939 49}\special{sh 1}\special{fp}%
-\special{pa 1837 69}\special{pa 1829 64}\special{pa 1819 63}\special{pa 1811 67}\special{pa 1805 75}%
-\special{pa 1803 84}\special{pa 1806 93}\special{pa 1813 100}\special{pa 1822 102}%
-\special{pa 1831 101}\special{pa 1838 95}\special{pa 1842 86}\special{pa 1842 77}%
-\special{pa 1837 69}\special{sh 1}\special{fp}%
-\special{pa -1273 -238}\special{pa -1282 -243}\special{pa -1291 -244}\special{pa -1300 -240}%
-\special{pa -1305 -232}\special{pa -1307 -223}\special{pa -1304 -214}\special{pa -1298 -208}%
-\special{pa -1289 -205}\special{pa -1279 -206}\special{pa -1272 -212}\special{pa -1268 -221}%
-\special{pa -1269 -230}\special{pa -1273 -238}\special{sh 1}\special{fp}%
-\special{pa -726 -262}\special{pa -734 -267}\special{pa -744 -267}\special{pa -752 -264}%
-\special{pa -758 -256}\special{pa -760 -247}\special{pa -757 -238}\special{pa -750 -231}%
-\special{pa -741 -228}\special{pa -732 -230}\special{pa -725 -236}\special{pa -721 -244}%
-\special{pa -721 -254}\special{pa -726 -262}\special{sh 1}\special{fp}%
-\special{pa -81 -384}\special{pa -89 -389}\special{pa -98 -389}\special{pa -107 -386}%
-\special{pa -112 -378}\special{pa -114 -369}\special{pa -111 -360}\special{pa -105 -353}%
-\special{pa -96 -350}\special{pa -86 -352}\special{pa -79 -358}\special{pa -75 -367}%
-\special{pa -76 -376}\special{pa -81 -384}\special{sh 1}\special{fp}%
-\special{pa 664 -601}\special{pa 655 -605}\special{pa 646 -606}\special{pa 637 -602}%
-\special{pa 632 -595}\special{pa 630 -585}\special{pa 633 -576}\special{pa 639 -570}%
-\special{pa 648 -567}\special{pa 658 -569}\special{pa 665 -574}\special{pa 669 -583}%
-\special{pa 668 -592}\special{pa 664 -601}\special{sh 1}\special{fp}%
-\special{pa 1195 -478}\special{pa 1187 -483}\special{pa 1178 -484}\special{pa 1169 -480}%
-\special{pa 1163 -473}\special{pa 1161 -463}\special{pa 1164 -454}\special{pa 1171 -448}%
-\special{pa 1180 -445}\special{pa 1189 -447}\special{pa 1197 -452}\special{pa 1200 -461}%
-\special{pa 1200 -470}\special{pa 1195 -478}\special{sh 1}\special{fp}%
-\special{pa 1711 -238}\special{pa 1703 -243}\special{pa 1693 -244}\special{pa 1685 -240}%
-\special{pa 1679 -232}\special{pa 1677 -223}\special{pa 1680 -214}\special{pa 1687 -208}%
-\special{pa 1696 -205}\special{pa 1705 -206}\special{pa 1712 -212}\special{pa 1716 -221}%
-\special{pa 1716 -230}\special{pa 1711 -238}\special{sh 1}\special{fp}%
-\settowidth{\Width}{A}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{A}\settodepth{\Depth}{A}\setlength{\Height}{-\Height}%
-\put(-3.7400,-0.5900){\hspace*{\Width}\raisebox{\Height}{A}}%
-%
-%
-\settowidth{\Width}{B}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{B}\settodepth{\Depth}{B}\setlength{\Height}{-\Height}%
-\put(-1.0700,-0.2800){\hspace*{\Width}\raisebox{\Height}{B}}%
-%
-%
-\settowidth{\Width}{C}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{C}\settodepth{\Depth}{C}\setlength{\Height}{-\Height}%
-\put(2.3500,-0.3100){\hspace*{\Width}\raisebox{\Height}{C}}%
-%
-%
-\settowidth{\Width}{D}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{D}\settodepth{\Depth}{D}\setlength{\Height}{-\Height}%
-\put(4.6300,-0.3600){\hspace*{\Width}\raisebox{\Height}{D}}%
-%
-%
-\settowidth{\Width}{E}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{E}\settodepth{\Depth}{E}\setlength{\Height}{\Depth}%
-\put(-3.2700,0.7200){\hspace*{\Width}\raisebox{\Height}{E}}%
-%
-%
-\settowidth{\Width}{F}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{F}\settodepth{\Depth}{F}\setlength{\Height}{\Depth}%
-\put(-1.8800,0.7800){\hspace*{\Width}\raisebox{\Height}{F}}%
-%
-%
-\settowidth{\Width}{G}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{G}\settodepth{\Depth}{G}\setlength{\Height}{\Depth}%
-\put(-0.2400,1.0900){\hspace*{\Width}\raisebox{\Height}{G}}%
-%
-%
-\settowidth{\Width}{H}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{H}\settodepth{\Depth}{H}\setlength{\Height}{\Depth}%
-\put(1.6500,1.6400){\hspace*{\Width}\raisebox{\Height}{H}}%
-%
-%
-\settowidth{\Width}{K}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{K}\settodepth{\Depth}{K}\setlength{\Height}{\Depth}%
-\put(3.0000,1.3300){\hspace*{\Width}\raisebox{\Height}{K}}%
-%
-%
-\settowidth{\Width}{L}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{L}\settodepth{\Depth}{L}\setlength{\Height}{\Depth}%
-\put(4.3100,0.7200){\hspace*{\Width}\raisebox{\Height}{L}}%
-%
-%
-\end{picture}}% \ No newline at end of file
diff --git a/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/checkbe8.tex b/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/checkbe8.tex
deleted file mode 100644
index 8ccf1730..00000000
--- a/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/checkbe8.tex
+++ /dev/null
@@ -1,100 +0,0 @@
-%%% checkb.tex 2015-1-13 21:9
-%%% checkb.sce 2015-1-13 13:55
-{\unitlength=1cm%
-\begin{picture}%
-( 11.00000, 2.95000)( -4.99000, -0.99000)%
-\special{pn 8}%
-%
-\special{pa -1472 173}\special{pa -997 -149}\special{pa -421 51}\special{pa 12 -277}%
-\special{pa 526 -322}\special{pa 925 63}\special{pa 1156 -200}\special{pa 1423 -240}%
-\special{pa 1665 -124}\special{pa 1823 83}%
-\special{fp}%
-\special{pa -1459 159}\special{pa -1467 154}\special{pa -1476 154}\special{pa -1485 158}%
-\special{pa -1490 165}\special{pa -1492 174}\special{pa -1489 183}\special{pa -1483 190}%
-\special{pa -1474 193}\special{pa -1464 191}\special{pa -1457 185}\special{pa -1453 177}%
-\special{pa -1454 167}\special{pa -1459 159}\special{sh 1}\special{fp}%
-\special{pa -407 37}\special{pa -415 32}\special{pa -425 32}\special{pa -433 36}\special{pa -439 43}%
-\special{pa -441 52}\special{pa -438 61}\special{pa -431 68}\special{pa -422 71}\special{pa -413 69}%
-\special{pa -406 63}\special{pa -402 55}\special{pa -402 45}\special{pa -407 37}\special{sh 1}\special{fp}%
-\special{pa 939 49}\special{pa 931 44}\special{pa 922 44}\special{pa 913 47}\special{pa 907 55}%
-\special{pa 906 64}\special{pa 908 73}\special{pa 915 80}\special{pa 924 83}\special{pa 933 81}%
-\special{pa 941 75}\special{pa 945 67}\special{pa 944 57}\special{pa 939 49}\special{sh 1}\special{fp}%
-\special{pa 1837 69}\special{pa 1829 64}\special{pa 1819 63}\special{pa 1811 67}\special{pa 1805 75}%
-\special{pa 1803 84}\special{pa 1806 93}\special{pa 1813 100}\special{pa 1822 102}%
-\special{pa 1831 101}\special{pa 1838 95}\special{pa 1842 86}\special{pa 1842 77}%
-\special{pa 1837 69}\special{sh 1}\special{fp}%
-\special{pa -1273 -238}\special{pa -1282 -243}\special{pa -1291 -244}\special{pa -1300 -240}%
-\special{pa -1305 -232}\special{pa -1307 -223}\special{pa -1304 -214}\special{pa -1298 -208}%
-\special{pa -1289 -205}\special{pa -1279 -206}\special{pa -1272 -212}\special{pa -1268 -221}%
-\special{pa -1269 -230}\special{pa -1273 -238}\special{sh 1}\special{fp}%
-\special{pa -726 -262}\special{pa -734 -267}\special{pa -744 -267}\special{pa -752 -264}%
-\special{pa -758 -256}\special{pa -760 -247}\special{pa -757 -238}\special{pa -750 -231}%
-\special{pa -741 -228}\special{pa -732 -230}\special{pa -725 -236}\special{pa -721 -244}%
-\special{pa -721 -254}\special{pa -726 -262}\special{sh 1}\special{fp}%
-\special{pa -81 -384}\special{pa -89 -389}\special{pa -98 -389}\special{pa -107 -386}%
-\special{pa -112 -378}\special{pa -114 -369}\special{pa -111 -360}\special{pa -105 -353}%
-\special{pa -96 -350}\special{pa -86 -352}\special{pa -79 -358}\special{pa -75 -367}%
-\special{pa -76 -376}\special{pa -81 -384}\special{sh 1}\special{fp}%
-\special{pa 664 -601}\special{pa 655 -605}\special{pa 646 -606}\special{pa 637 -602}%
-\special{pa 632 -595}\special{pa 630 -585}\special{pa 633 -576}\special{pa 639 -570}%
-\special{pa 648 -567}\special{pa 658 -569}\special{pa 665 -574}\special{pa 669 -583}%
-\special{pa 668 -592}\special{pa 664 -601}\special{sh 1}\special{fp}%
-\special{pa 1195 -478}\special{pa 1187 -483}\special{pa 1178 -484}\special{pa 1169 -480}%
-\special{pa 1163 -473}\special{pa 1161 -463}\special{pa 1164 -454}\special{pa 1171 -448}%
-\special{pa 1180 -445}\special{pa 1189 -447}\special{pa 1197 -452}\special{pa 1200 -461}%
-\special{pa 1200 -470}\special{pa 1195 -478}\special{sh 1}\special{fp}%
-\special{pa 1711 -238}\special{pa 1703 -243}\special{pa 1693 -244}\special{pa 1685 -240}%
-\special{pa 1679 -232}\special{pa 1677 -223}\special{pa 1680 -214}\special{pa 1687 -208}%
-\special{pa 1696 -205}\special{pa 1705 -206}\special{pa 1712 -212}\special{pa 1716 -221}%
-\special{pa 1716 -230}\special{pa 1711 -238}\special{sh 1}\special{fp}%
-\settowidth{\Width}{A}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{A}\settodepth{\Depth}{A}\setlength{\Height}{-\Height}%
-\put(-3.7400,-0.5900){\hspace*{\Width}\raisebox{\Height}{A}}%
-%
-%
-\settowidth{\Width}{B}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{B}\settodepth{\Depth}{B}\setlength{\Height}{-\Height}%
-\put(-1.0700,-0.2800){\hspace*{\Width}\raisebox{\Height}{B}}%
-%
-%
-\settowidth{\Width}{C}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{C}\settodepth{\Depth}{C}\setlength{\Height}{-\Height}%
-\put(2.3500,-0.3100){\hspace*{\Width}\raisebox{\Height}{C}}%
-%
-%
-\settowidth{\Width}{D}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{D}\settodepth{\Depth}{D}\setlength{\Height}{-\Height}%
-\put(4.6300,-0.3600){\hspace*{\Width}\raisebox{\Height}{D}}%
-%
-%
-\settowidth{\Width}{E}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{E}\settodepth{\Depth}{E}\setlength{\Height}{\Depth}%
-\put(-3.2700,0.7200){\hspace*{\Width}\raisebox{\Height}{E}}%
-%
-%
-\settowidth{\Width}{F}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{F}\settodepth{\Depth}{F}\setlength{\Height}{\Depth}%
-\put(-1.8800,0.7800){\hspace*{\Width}\raisebox{\Height}{F}}%
-%
-%
-\settowidth{\Width}{G}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{G}\settodepth{\Depth}{G}\setlength{\Height}{\Depth}%
-\put(-0.2400,1.0900){\hspace*{\Width}\raisebox{\Height}{G}}%
-%
-%
-\settowidth{\Width}{H}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{H}\settodepth{\Depth}{H}\setlength{\Height}{\Depth}%
-\put(1.6500,1.6400){\hspace*{\Width}\raisebox{\Height}{H}}%
-%
-%
-\settowidth{\Width}{K}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{K}\settodepth{\Depth}{K}\setlength{\Height}{\Depth}%
-\put(3.0000,1.3300){\hspace*{\Width}\raisebox{\Height}{K}}%
-%
-%
-\settowidth{\Width}{L}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{L}\settodepth{\Depth}{L}\setlength{\Height}{\Depth}%
-\put(4.3100,0.7200){\hspace*{\Width}\raisebox{\Height}{L}}%
-%
-%
-\end{picture}}% \ No newline at end of file
diff --git a/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/checkbmain.tex b/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/checkbmain.tex
deleted file mode 100644
index 239605d3..00000000
--- a/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/checkbmain.tex
+++ /dev/null
@@ -1,17 +0,0 @@
-\documentclass{article}
-\usepackage{ketpic,ketlayer}
-\usepackage{amsmath,amssymb}
-\usepackage{graphicx,color}
-
-\def\ketcindy{{K\kern-.20em%
-\lower.5ex\hbox{E}\kern-.125em{TCindy}}}
-
-\setmargin{20}{20}{20}{20}
-
-\begin{document}
-checkb
-\vspace{5mm}
-
-\input{checkb.tex}
-
-\end{document}
diff --git a/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/checkbs1.tex b/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/checkbs1.tex
deleted file mode 100644
index c9c2972d..00000000
--- a/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/checkbs1.tex
+++ /dev/null
@@ -1,61 +0,0 @@
-%%% checkb.tex 2015-1-13 17:48
-%%% checkb.sce 2015-1-13 13:55
-{\unitlength=1cm%
-\begin{picture}%
-( 8.99000, 3.00000)( -4.99000, -0.99000)%
-\special{pn 8}%
-%
-\special{pa -1480 94}\special{pa -1458 -3}\special{pa -1433 -83}\special{pa -1405 -148}%
-\special{pa -1373 -195}\special{pa -1339 -226}\special{pa -1301 -241}\special{pa -1260 -239}%
-\special{pa -1216 -220}\special{pa -1169 -185}\special{pa -1118 -134}\special{pa -1067 -81}%
-\special{pa -1018 -41}\special{pa -973 -15}\special{pa -930 -2}\special{pa -890 -2}%
-\special{pa -853 -16}\special{pa -818 -43}\special{pa -787 -83}\special{pa -758 -137}%
-\special{pa -732 -205}\special{pa -699 -268}\special{pa -651 -308}\special{pa -587 -326}%
-\special{pa -507 -322}\special{pa -411 -295}\special{pa -300 -246}\special{pa -174 -175}%
-\special{pa -32 -81}\special{pa 126 35}\special{pa 299 173}%
-\special{fp}%
-\special{pa -1466 81}\special{pa -1474 76}\special{pa -1484 75}\special{pa -1492 79}%
-\special{pa -1498 86}\special{pa -1500 96}\special{pa -1497 105}\special{pa -1490 111}%
-\special{pa -1482 114}\special{pa -1472 112}\special{pa -1465 107}\special{pa -1461 98}%
-\special{pa -1462 89}\special{pa -1466 81}\special{sh 1}\special{fp}%
-\special{pa -1364 -447}\special{pa -1372 -452}\special{pa -1382 -452}\special{pa -1390 -449}%
-\special{pa -1396 -441}\special{pa -1398 -432}\special{pa -1395 -423}\special{pa -1388 -416}%
-\special{pa -1379 -413}\special{pa -1370 -415}\special{pa -1362 -421}\special{pa -1359 -430}%
-\special{pa -1359 -439}\special{pa -1364 -447}\special{sh 1}\special{fp}%
-\special{pa -840 151}\special{pa -848 147}\special{pa -858 146}\special{pa -866 150}%
-\special{pa -872 157}\special{pa -874 167}\special{pa -871 176}\special{pa -865 182}%
-\special{pa -856 185}\special{pa -846 183}\special{pa -839 177}\special{pa -835 169}%
-\special{pa -836 159}\special{pa -840 151}\special{sh 1}\special{fp}%
-\special{pa -592 -589}\special{pa -600 -594}\special{pa -610 -594}\special{pa -618 -590}%
-\special{pa -624 -583}\special{pa -626 -574}\special{pa -623 -565}\special{pa -616 -558}%
-\special{pa -607 -555}\special{pa -598 -557}\special{pa -591 -563}\special{pa -587 -571}%
-\special{pa -588 -581}\special{pa -592 -589}\special{sh 1}\special{fp}%
-\special{pa 313 159}\special{pa 305 154}\special{pa 296 154}\special{pa 287 158}\special{pa 281 165}%
-\special{pa 280 174}\special{pa 282 183}\special{pa 289 190}\special{pa 298 193}\special{pa 307 191}%
-\special{pa 315 185}\special{pa 319 177}\special{pa 318 167}\special{pa 313 159}\special{sh 1}\special{fp}%
-\settowidth{\Width}{A}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{A}\settodepth{\Depth}{A}\setlength{\Height}{-\Height}%
-\put(-3.7600,-0.3900){\hspace*{\Width}\raisebox{\Height}{A}}%
-%
-%
-\settowidth{\Width}{B}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{B}\settodepth{\Depth}{B}\setlength{\Height}{\Depth}%
-\put(-3.5000,1.2500){\hspace*{\Width}\raisebox{\Height}{B}}%
-%
-%
-\settowidth{\Width}{C}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{C}\settodepth{\Depth}{C}\setlength{\Height}{-\Height}%
-\put(-2.1700,-0.5700){\hspace*{\Width}\raisebox{\Height}{C}}%
-%
-%
-\settowidth{\Width}{D}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{D}\settodepth{\Depth}{D}\setlength{\Height}{\Depth}%
-\put(-1.5400,1.6100){\hspace*{\Width}\raisebox{\Height}{D}}%
-%
-%
-\settowidth{\Width}{E}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{E}\settodepth{\Depth}{E}\setlength{\Height}{-\Height}%
-\put(0.7600,-0.5900){\hspace*{\Width}\raisebox{\Height}{E}}%
-%
-%
-\end{picture}}% \ No newline at end of file
diff --git a/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/checkbs2.tex b/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/checkbs2.tex
deleted file mode 100644
index 61287aa9..00000000
--- a/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/checkbs2.tex
+++ /dev/null
@@ -1,56 +0,0 @@
-%%% checkb.tex 2015-1-13 18:11
-%%% checkb.sce 2015-1-13 13:55
-{\unitlength=1cm%
-\begin{picture}%
-( 8.99000, 3.00000)( -4.99000, -0.99000)%
-\special{pn 8}%
-%
-\special{pa -1465 -173}\special{pa -1458 -240}\special{pa -1441 -300}\special{pa -1414 -353}%
-\special{pa -1375 -399}\special{pa -1326 -439}\special{pa -1266 -472}\special{pa -1195 -498}%
-\special{pa -1113 -517}\special{pa -1021 -530}\special{pa -917 -535}\special{pa -813 -534}%
-\special{pa -720 -528}\special{pa -637 -516}\special{pa -565 -499}\special{pa -503 -476}%
-\special{pa -452 -449}\special{pa -412 -415}\special{pa -382 -377}\special{pa -363 -333}%
-\special{pa -354 -283}\special{pa -357 -232}\special{pa -371 -185}\special{pa -397 -140}%
-\special{pa -435 -99}\special{pa -484 -61}\special{pa -545 -26}\special{pa -618 5}%
-\special{pa -702 33}\special{pa -798 57}\special{pa -906 79}\special{pa -1013 93}%
-\special{pa -1109 99}\special{pa -1194 96}\special{pa -1267 84}\special{pa -1329 63}%
-\special{pa -1379 33}\special{pa -1418 -5}\special{pa -1445 -52}\special{pa -1460 -108}%
-\special{pa -1465 -173}%
-\special{fp}%
-\special{pa -1459 159}\special{pa -1467 154}\special{pa -1476 154}\special{pa -1485 158}%
-\special{pa -1490 165}\special{pa -1492 174}\special{pa -1489 183}\special{pa -1483 190}%
-\special{pa -1474 193}\special{pa -1464 191}\special{pa -1457 185}\special{pa -1453 177}%
-\special{pa -1454 167}\special{pa -1459 159}\special{sh 1}\special{fp}%
-\special{pa -1447 -538}\special{pa -1455 -542}\special{pa -1464 -543}\special{pa -1473 -539}%
-\special{pa -1479 -532}\special{pa -1480 -522}\special{pa -1477 -513}\special{pa -1471 -507}%
-\special{pa -1462 -504}\special{pa -1453 -506}\special{pa -1445 -511}\special{pa -1441 -520}%
-\special{pa -1442 -529}\special{pa -1447 -538}\special{sh 1}\special{fp}%
-\special{pa -356 -557}\special{pa -364 -562}\special{pa -374 -563}\special{pa -382 -559}%
-\special{pa -388 -551}\special{pa -390 -542}\special{pa -387 -533}\special{pa -380 -526}%
-\special{pa -371 -524}\special{pa -362 -525}\special{pa -355 -531}\special{pa -351 -540}%
-\special{pa -351 -549}\special{pa -356 -557}\special{sh 1}\special{fp}%
-\special{pa -325 -34}\special{pa -333 -38}\special{pa -342 -39}\special{pa -351 -35}%
-\special{pa -357 -28}\special{pa -358 -18}\special{pa -355 -10}\special{pa -349 -3}%
-\special{pa -340 0}\special{pa -331 -2}\special{pa -323 -8}\special{pa -319 -16}\special{pa -320 -26}%
-\special{pa -325 -34}\special{sh 1}\special{fp}%
-\settowidth{\Width}{A}\setlength{\Width}{-1\Width}%
-\settoheight{\Height}{A}\settodepth{\Depth}{A}\setlength{\Height}{-\Height}%
-\put(-3.8900,-0.5900){\hspace*{\Width}\raisebox{\Height}{A}}%
-%
-%
-\settowidth{\Width}{B}\setlength{\Width}{-1\Width}%
-\settoheight{\Height}{B}\settodepth{\Depth}{B}\setlength{\Height}{\Depth}%
-\put(-3.8600,1.4800){\hspace*{\Width}\raisebox{\Height}{B}}%
-%
-%
-\settowidth{\Width}{C}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{C}\settodepth{\Depth}{C}\setlength{\Height}{\Depth}%
-\put(-0.7900,1.5300){\hspace*{\Width}\raisebox{\Height}{C}}%
-%
-%
-\settowidth{\Width}{D}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{D}\settodepth{\Depth}{D}\setlength{\Height}{-\Height}%
-\put(-0.7100,-0.1000){\hspace*{\Width}\raisebox{\Height}{D}}%
-%
-%
-\end{picture}}% \ No newline at end of file
diff --git a/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/checkmc1.tex b/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/checkmc1.tex
deleted file mode 100644
index fd4ff761..00000000
--- a/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/checkmc1.tex
+++ /dev/null
@@ -1,146 +0,0 @@
-%%% checkb.tex 2015-1-6 7:41
-%%% checkb.sce 2015-1-6 6:35
-{\unitlength=1cm%
-\begin{picture}%
-( 14.00000, 3.95000)( -3.03000, -1.91000)%
-\special{pn 8}%
-%
-\special{pa -911 368}\special{pa -919 363}\special{pa -929 363}\special{pa -937 366}%
-\special{pa -943 374}\special{pa -945 383}\special{pa -942 392}\special{pa -935 399}%
-\special{pa -926 402}\special{pa -917 400}\special{pa -910 394}\special{pa -906 385}%
-\special{pa -906 376}\special{pa -911 368}\special{sh 1}\special{fp}%
-\special{pa -254 356}\special{pa -262 351}\special{pa -271 351}\special{pa -280 355}%
-\special{pa -286 362}\special{pa -287 371}\special{pa -285 380}\special{pa -278 387}%
-\special{pa -269 390}\special{pa -260 388}\special{pa -252 382}\special{pa -248 374}%
-\special{pa -249 364}\special{pa -254 356}\special{sh 1}\special{fp}%
-\special{pa 888 478}\special{pa 880 473}\special{pa 870 473}\special{pa 862 477}\special{pa 856 484}%
-\special{pa 854 493}\special{pa 857 502}\special{pa 864 509}\special{pa 873 512}\special{pa 882 510}%
-\special{pa 890 504}\special{pa 893 496}\special{pa 893 486}\special{pa 888 478}\special{sh 1}\special{fp}%
-\special{pa -655 -45}\special{pa -663 -50}\special{pa -673 -51}\special{pa -681 -47}%
-\special{pa -687 -40}\special{pa -689 -30}\special{pa -686 -21}\special{pa -679 -15}%
-\special{pa -670 -12}\special{pa -661 -14}\special{pa -654 -19}\special{pa -650 -28}%
-\special{pa -650 -37}\special{pa -655 -45}\special{sh 1}\special{fp}%
-\special{pa 116 -53}\special{pa 108 -58}\special{pa 99 -59}\special{pa 90 -55}\special{pa 84 -47}%
-\special{pa 83 -38}\special{pa 86 -29}\special{pa 92 -23}\special{pa 101 -20}\special{pa 110 -21}%
-\special{pa 118 -27}\special{pa 122 -36}\special{pa 121 -45}\special{pa 116 -53}\special{sh 1}\special{fp}%
-\special{pa 518 -77}\special{pa 510 -82}\special{pa 500 -82}\special{pa 492 -78}\special{pa 486 -71}%
-\special{pa 484 -62}\special{pa 487 -53}\special{pa 494 -46}\special{pa 503 -43}\special{pa 512 -45}%
-\special{pa 519 -51}\special{pa 523 -59}\special{pa 523 -69}\special{pa 518 -77}\special{sh 1}\special{fp}%
-\special{pa 1475 325}\special{pa 1466 320}\special{pa 1457 319}\special{pa 1448 323}%
-\special{pa 1443 331}\special{pa 1441 340}\special{pa 1444 349}\special{pa 1450 355}%
-\special{pa 1459 358}\special{pa 1469 357}\special{pa 1476 351}\special{pa 1480 342}%
-\special{pa 1479 333}\special{pa 1475 325}\special{sh 1}\special{fp}%
-\special{pa 2156 171}\special{pa 2148 166}\special{pa 2138 166}\special{pa 2130 170}%
-\special{pa 2124 177}\special{pa 2122 186}\special{pa 2125 195}\special{pa 2132 202}%
-\special{pa 2141 205}\special{pa 2150 203}\special{pa 2157 197}\special{pa 2161 189}%
-\special{pa 2161 179}\special{pa 2156 171}\special{sh 1}\special{fp}%
-\special{pa 3112 242}\special{pa 3104 237}\special{pa 3095 237}\special{pa 3086 240}%
-\special{pa 3080 248}\special{pa 3079 257}\special{pa 3082 266}\special{pa 3088 273}%
-\special{pa 3097 276}\special{pa 3107 274}\special{pa 3114 268}\special{pa 3118 259}%
-\special{pa 3117 250}\special{pa 3112 242}\special{sh 1}\special{fp}%
-\special{pa 3853 285}\special{pa 3844 280}\special{pa 3835 280}\special{pa 3826 284}%
-\special{pa 3821 291}\special{pa 3819 300}\special{pa 3822 309}\special{pa 3828 316}%
-\special{pa 3837 319}\special{pa 3847 317}\special{pa 3854 311}\special{pa 3858 303}%
-\special{pa 3857 293}\special{pa 3853 285}\special{sh 1}\special{fp}%
-\special{pa 1805 -148}\special{pa 1797 -153}\special{pa 1788 -153}\special{pa 1779 -149}%
-\special{pa 1773 -142}\special{pa 1772 -133}\special{pa 1774 -124}\special{pa 1781 -117}%
-\special{pa 1790 -114}\special{pa 1799 -116}\special{pa 1807 -122}\special{pa 1811 -130}%
-\special{pa 1810 -140}\special{pa 1805 -148}\special{sh 1}\special{fp}%
-\special{pa 2482 -167}\special{pa 2474 -172}\special{pa 2465 -173}\special{pa 2456 -169}%
-\special{pa 2451 -162}\special{pa 2449 -152}\special{pa 2452 -143}\special{pa 2458 -137}%
-\special{pa 2467 -134}\special{pa 2477 -136}\special{pa 2484 -141}\special{pa 2488 -150}%
-\special{pa 2487 -159}\special{pa 2482 -167}\special{sh 1}\special{fp}%
-\special{pa 2896 -167}\special{pa 2888 -172}\special{pa 2878 -173}\special{pa 2870 -169}%
-\special{pa 2864 -162}\special{pa 2862 -152}\special{pa 2865 -143}\special{pa 2872 -137}%
-\special{pa 2881 -134}\special{pa 2890 -136}\special{pa 2897 -141}\special{pa 2901 -150}%
-\special{pa 2901 -159}\special{pa 2896 -167}\special{sh 1}\special{fp}%
-\special{pa 3624 -160}\special{pa 3616 -164}\special{pa 3607 -165}\special{pa 3598 -161}%
-\special{pa 3592 -154}\special{pa 3591 -144}\special{pa 3593 -135}\special{pa 3600 -129}%
-\special{pa 3609 -126}\special{pa 3618 -128}\special{pa 3626 -134}\special{pa 3630 -142}%
-\special{pa 3629 -152}\special{pa 3624 -160}\special{sh 1}\special{fp}%
-\settowidth{\Width}{A}\setlength{\Width}{-1\Width}%
-\settoheight{\Height}{A}\settodepth{\Depth}{A}\setlength{\Height}{-\Height}%
-\put(-2.5000,-1.1200){\hspace*{\Width}\raisebox{\Height}{A}}%
-%
-%
-\settowidth{\Width}{B}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{B}\settodepth{\Depth}{B}\setlength{\Height}{-\Height}%
-\put(-0.6800,-1.0900){\hspace*{\Width}\raisebox{\Height}{B}}%
-%
-%
-\settowidth{\Width}{C}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{C}\settodepth{\Depth}{C}\setlength{\Height}{-\Height}%
-\put(2.3700,-1.4000){\hspace*{\Width}\raisebox{\Height}{C}}%
-%
-%
-\settowidth{\Width}{D}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{D}\settodepth{\Depth}{D}\setlength{\Height}{\Depth}%
-\put(-1.7000,0.2300){\hspace*{\Width}\raisebox{\Height}{D}}%
-%
-%
-\settowidth{\Width}{E}\setlength{\Width}{-1\Width}%
-\settoheight{\Height}{E}\settodepth{\Depth}{E}\setlength{\Height}{\Depth}%
-\put(0.1100,0.2500){\hspace*{\Width}\raisebox{\Height}{E}}%
-%
-%
-\settowidth{\Width}{F}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{F}\settodepth{\Depth}{F}\setlength{\Height}{\Depth}%
-\put(1.4300,0.3100){\hspace*{\Width}\raisebox{\Height}{F}}%
-%
-%
-\settowidth{\Width}{G}\setlength{\Width}{-1\Width}%
-\settoheight{\Height}{G}\settodepth{\Depth}{G}\setlength{\Height}{-\Height}%
-\put(3.5600,-1.0100){\hspace*{\Width}\raisebox{\Height}{G}}%
-%
-%
-\settowidth{\Width}{H}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{H}\settodepth{\Depth}{H}\setlength{\Height}{-\Height}%
-\put(5.4400,-0.6200){\hspace*{\Width}\raisebox{\Height}{H}}%
-%
-%
-\settowidth{\Width}{K}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{K}\settodepth{\Depth}{K}\setlength{\Height}{-\Height}%
-\put(7.8700,-0.8000){\hspace*{\Width}\raisebox{\Height}{K}}%
-%
-%
-\settowidth{\Width}{L}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{L}\settodepth{\Depth}{L}\setlength{\Height}{-\Height}%
-\put(9.9000,-0.9100){\hspace*{\Width}\raisebox{\Height}{L}}%
-%
-%
-\settowidth{\Width}{M}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{M}\settodepth{\Depth}{M}\setlength{\Height}{\Depth}%
-\put(4.5500,0.4900){\hspace*{\Width}\raisebox{\Height}{M}}%
-%
-%
-\settowidth{\Width}{N}\setlength{\Width}{-1\Width}%
-\settoheight{\Height}{N}\settodepth{\Depth}{N}\setlength{\Height}{\Depth}%
-\put(6.2200,0.5400){\hspace*{\Width}\raisebox{\Height}{N}}%
-%
-%
-\settowidth{\Width}{O}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{O}\settodepth{\Depth}{O}\setlength{\Height}{\Depth}%
-\put(7.3700,0.5400){\hspace*{\Width}\raisebox{\Height}{O}}%
-%
-%
-\settowidth{\Width}{P}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{P}\settodepth{\Depth}{P}\setlength{\Height}{\Depth}%
-\put(9.1700,0.5200){\hspace*{\Width}\raisebox{\Height}{P}}%
-%
-%
-\special{pa -925 382}\special{pa -873 307}\special{pa -817 249}\special{pa -759 207}%
-\special{pa -697 182}\special{pa -633 172}\special{pa -566 179}\special{pa -496 202}%
-\special{pa -423 242}\special{pa -347 298}\special{pa -268 370}\special{pa -156 259}%
-\special{pa -42 172}\special{pa 72 111}\special{pa 187 76}\special{pa 303 69}\special{pa 419 91}%
-\special{pa 534 144}\special{pa 649 227}\special{pa 762 343}\special{pa 874 492}%
-\special{fp}%
-\special{pa 1461 339}\special{pa 1527 252}\special{pa 1594 181}\special{pa 1661 126}%
-\special{pa 1728 87}\special{pa 1796 64}\special{pa 1865 57}\special{pa 1933 65}\special{pa 2002 89}%
-\special{pa 2072 129}\special{pa 2142 185}\special{pa 2242 94}\special{pa 2346 23}%
-\special{pa 2452 -26}\special{pa 2557 -54}\special{pa 2661 -60}\special{pa 2762 -43}%
-\special{pa 2858 -4}\special{pa 2947 59}\special{pa 3028 145}\special{pa 3098 256}%
-\special{pa 3198 184}\special{pa 3292 129}\special{pa 3380 91}\special{pa 3463 70}%
-\special{pa 3539 66}\special{pa 3611 79}\special{pa 3676 108}\special{pa 3736 155}%
-\special{pa 3790 219}\special{pa 3839 299}%
-\special{fp}%
-\end{picture}}% \ No newline at end of file
diff --git a/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/checkmp1.tex b/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/checkmp1.tex
deleted file mode 100644
index 11831e8d..00000000
--- a/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/checkmp1.tex
+++ /dev/null
@@ -1,75 +0,0 @@
-%%% checkb.tex 2015-1-6 10:38
-%%% checkb.sce 2015-1-6 6:35
-{\unitlength=1cm%
-\begin{picture}%
-( 10.00000, 4.00000)( -4.96000, -1.99000)%
-\special{pn 8}%
-%
-\special{pa -1356 171}\special{pa -1364 166}\special{pa -1374 166}\special{pa -1382 170}%
-\special{pa -1388 177}\special{pa -1390 186}\special{pa -1387 195}\special{pa -1380 202}%
-\special{pa -1371 205}\special{pa -1362 203}\special{pa -1355 197}\special{pa -1351 189}%
-\special{pa -1351 179}\special{pa -1356 171}\special{sh 1}\special{fp}%
-\special{pa -726 -321}\special{pa -734 -326}\special{pa -744 -326}\special{pa -752 -323}%
-\special{pa -758 -315}\special{pa -760 -306}\special{pa -757 -297}\special{pa -750 -290}%
-\special{pa -741 -287}\special{pa -732 -289}\special{pa -725 -295}\special{pa -721 -304}%
-\special{pa -721 -313}\special{pa -726 -321}\special{sh 1}\special{fp}%
-\special{pa 805 159}\special{pa 797 154}\special{pa 788 154}\special{pa 779 158}\special{pa 773 165}%
-\special{pa 772 174}\special{pa 774 183}\special{pa 781 190}\special{pa 790 193}\special{pa 799 191}%
-\special{pa 807 185}\special{pa 811 177}\special{pa 810 167}\special{pa 805 159}\special{sh 1}\special{fp}%
-\special{pa -1144 6}\special{pa -1152 1}\special{pa -1161 0}\special{pa -1170 4}\special{pa -1175 12}%
-\special{pa -1177 21}\special{pa -1174 30}\special{pa -1168 37}\special{pa -1159 39}%
-\special{pa -1149 38}\special{pa -1142 32}\special{pa -1138 23}\special{pa -1139 14}%
-\special{pa -1144 6}\special{sh 1}\special{fp}%
-\special{pa -935 -160}\special{pa -943 -164}\special{pa -952 -165}\special{pa -961 -161}%
-\special{pa -967 -154}\special{pa -968 -144}\special{pa -966 -135}\special{pa -959 -129}%
-\special{pa -950 -126}\special{pa -941 -128}\special{pa -933 -134}\special{pa -929 -142}%
-\special{pa -930 -152}\special{pa -935 -160}\special{sh 1}\special{fp}%
-\special{pa -214 -160}\special{pa -222 -164}\special{pa -232 -165}\special{pa -240 -161}%
-\special{pa -246 -154}\special{pa -248 -144}\special{pa -245 -135}\special{pa -239 -129}%
-\special{pa -230 -126}\special{pa -220 -128}\special{pa -213 -134}\special{pa -209 -142}%
-\special{pa -210 -152}\special{pa -214 -160}\special{sh 1}\special{fp}%
-\special{pa 293 -2}\special{pa 285 -7}\special{pa 276 -8}\special{pa 267 -4}\special{pa 262 4}%
-\special{pa 260 13}\special{pa 263 22}\special{pa 269 29}\special{pa 278 31}\special{pa 288 30}%
-\special{pa 295 24}\special{pa 299 15}\special{pa 298 6}\special{pa 293 -2}\special{sh 1}\special{fp}%
-\settowidth{\Width}{A}\setlength{\Width}{-1\Width}%
-\settoheight{\Height}{A}\settodepth{\Depth}{A}\setlength{\Height}{-\Height}%
-\put(-3.6300,-0.6200){\hspace*{\Width}\raisebox{\Height}{A}}%
-%
-%
-\settowidth{\Width}{Ap1}\setlength{\Width}{-1\Width}%
-\settoheight{\Height}{Ap1}\settodepth{\Depth}{Ap1}\setlength{\Height}{\Depth}%
-\put(-3.0900,0.1000){\hspace*{\Width}\raisebox{\Height}{Ap1}}%
-%
-%
-\settowidth{\Width}{Aq1}\setlength{\Width}{-1\Width}%
-\settoheight{\Height}{Aq1}\settodepth{\Depth}{Aq1}\setlength{\Height}{\Depth}%
-\put(-2.5600,0.5200){\hspace*{\Width}\raisebox{\Height}{Aq1}}%
-%
-%
-\settowidth{\Width}{Ap2}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{Ap2}\settodepth{\Depth}{Ap2}\setlength{\Height}{\Depth}%
-\put(-0.4300,0.5200){\hspace*{\Width}\raisebox{\Height}{Ap2}}%
-%
-%
-\settowidth{\Width}{Aq2}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{Aq2}\settodepth{\Depth}{Aq2}\setlength{\Height}{\Depth}%
-\put(0.8600,0.1200){\hspace*{\Width}\raisebox{\Height}{Aq2}}%
-%
-%
-\settowidth{\Width}{B}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{B}\settodepth{\Depth}{B}\setlength{\Height}{\Depth}%
-\put(-1.8800,0.9300){\hspace*{\Width}\raisebox{\Height}{B}}%
-%
-%
-\settowidth{\Width}{C}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{C}\settodepth{\Depth}{C}\setlength{\Height}{-\Height}%
-\put(2.1600,-0.5900){\hspace*{\Width}\raisebox{\Height}{C}}%
-%
-%
-\special{pa -1370 185}\special{pa -1306 135}\special{pa -1243 86}\special{pa -1180 36}%
-\special{pa -1117 -13}\special{pa -1054 -63}\special{pa -991 -112}\special{pa -928 -161}%
-\special{pa -865 -210}\special{pa -803 -259}\special{pa -740 -307}\special{pa -587 -259}%
-\special{pa -433 -211}\special{pa -280 -163}\special{pa -127 -115}\special{pa 26 -67}%
-\special{pa 179 -19}\special{pa 332 29}\special{pa 485 77}\special{pa 638 125}\special{pa 791 173}%
-\special{fp}%
-\end{picture}}% \ No newline at end of file
diff --git a/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/checkmp2.tex b/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/checkmp2.tex
deleted file mode 100644
index 02dea07a..00000000
--- a/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/checkmp2.tex
+++ /dev/null
@@ -1,78 +0,0 @@
-%%% checkb.tex 2015-1-6 11:11
-%%% checkb.sce 2015-1-6 6:35
-{\unitlength=1cm%
-\begin{picture}%
-( 18.13000, 4.08000)( -4.96000, -1.99000)%
-\special{pn 8}%
-%
-\special{pa -1356 171}\special{pa -1364 166}\special{pa -1374 166}\special{pa -1382 170}%
-\special{pa -1388 177}\special{pa -1390 186}\special{pa -1387 195}\special{pa -1380 202}%
-\special{pa -1371 205}\special{pa -1362 203}\special{pa -1355 197}\special{pa -1351 189}%
-\special{pa -1351 179}\special{pa -1356 171}\special{sh 1}\special{fp}%
-\special{pa -821 191}\special{pa -829 186}\special{pa -838 185}\special{pa -847 189}%
-\special{pa -853 197}\special{pa -854 206}\special{pa -851 215}\special{pa -845 222}%
-\special{pa -836 224}\special{pa -827 223}\special{pa -819 217}\special{pa -815 208}%
-\special{pa -816 199}\special{pa -821 191}\special{sh 1}\special{fp}%
-\special{pa -69 293}\special{pa -77 288}\special{pa -86 288}\special{pa -95 292}\special{pa -101 299}%
-\special{pa -102 308}\special{pa -100 317}\special{pa -93 324}\special{pa -84 327}%
-\special{pa -75 325}\special{pa -67 319}\special{pa -63 311}\special{pa -64 301}\special{pa -69 293}%
-\special{sh 1}\special{fp}%
-\special{pa -1466 -77}\special{pa -1474 -82}\special{pa -1484 -82}\special{pa -1492 -78}%
-\special{pa -1498 -71}\special{pa -1500 -62}\special{pa -1497 -53}\special{pa -1490 -46}%
-\special{pa -1482 -43}\special{pa -1472 -45}\special{pa -1465 -51}\special{pa -1461 -59}%
-\special{pa -1462 -69}\special{pa -1466 -77}\special{sh 1}\special{fp}%
-\special{pa -1179 -313}\special{pa -1187 -318}\special{pa -1196 -319}\special{pa -1205 -315}%
-\special{pa -1211 -307}\special{pa -1213 -298}\special{pa -1210 -289}\special{pa -1203 -282}%
-\special{pa -1194 -280}\special{pa -1185 -281}\special{pa -1177 -287}\special{pa -1174 -296}%
-\special{pa -1174 -305}\special{pa -1179 -313}\special{sh 1}\special{fp}%
-\special{pa -522 573}\special{pa -530 568}\special{pa -539 567}\special{pa -548 571}%
-\special{pa -553 579}\special{pa -555 588}\special{pa -552 597}\special{pa -546 603}%
-\special{pa -537 606}\special{pa -527 605}\special{pa -520 599}\special{pa -516 590}%
-\special{pa -517 581}\special{pa -522 573}\special{sh 1}\special{fp}%
-\special{pa -183 553}\special{pa -191 548}\special{pa -200 548}\special{pa -209 551}%
-\special{pa -215 559}\special{pa -216 568}\special{pa -214 577}\special{pa -207 584}%
-\special{pa -198 587}\special{pa -189 585}\special{pa -181 579}\special{pa -177 570}%
-\special{pa -178 561}\special{pa -183 553}\special{sh 1}\special{fp}%
-\settowidth{\Width}{A}\setlength{\Width}{-1\Width}%
-\settoheight{\Height}{A}\settodepth{\Depth}{A}\setlength{\Height}{-\Height}%
-\put(-3.6300,-0.6200){\hspace*{\Width}\raisebox{\Height}{A}}%
-%
-%
-\settowidth{\Width}{Ap1}\setlength{\Width}{-1\Width}%
-\settoheight{\Height}{Ap1}\settodepth{\Depth}{Ap1}\setlength{\Height}{\Depth}%
-\put(-3.9100,0.3100){\hspace*{\Width}\raisebox{\Height}{Ap1}}%
-%
-%
-\settowidth{\Width}{Aq1}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{Aq1}\settodepth{\Depth}{Aq1}\setlength{\Height}{\Depth}%
-\put(-2.8800,0.9100){\hspace*{\Width}\raisebox{\Height}{Aq1}}%
-%
-%
-\settowidth{\Width}{Ap2}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{Ap2}\settodepth{\Depth}{Ap2}\setlength{\Height}{-\Height}%
-\put(-1.3600,-1.6400){\hspace*{\Width}\raisebox{\Height}{Ap2}}%
-%
-%
-\settowidth{\Width}{Aq2}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{Aq2}\settodepth{\Depth}{Aq2}\setlength{\Height}{-\Height}%
-\put(-0.3500,-1.5900){\hspace*{\Width}\raisebox{\Height}{Aq2}}%
-%
-%
-\settowidth{\Width}{B}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{B}\settodepth{\Depth}{B}\setlength{\Height}{\Depth}%
-\put(-1.9700,-0.3700){\hspace*{\Width}\raisebox{\Height}{B}}%
-%
-%
-\settowidth{\Width}{C}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{C}\settodepth{\Depth}{C}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(-0.0600,-0.7800){\hspace*{\Width}\raisebox{\Height}{C}}%
-%
-%
-\special{pa -1370 185}\special{pa -1392 112}\special{pa -1391 43}\special{pa -1371 -15}%
-\special{pa -1332 -60}\special{pa -1278 -87}\special{pa -1210 -91}\special{pa -1129 -69}%
-\special{pa -1038 -15}\special{pa -940 75}\special{pa -835 205}\special{pa -744 307}%
-\special{pa -653 387}\special{pa -562 444}\special{pa -474 481}\special{pa -389 497}%
-\special{pa -311 493}\special{pa -239 472}\special{pa -176 433}\special{pa -123 378}%
-\special{pa -83 307}%
-\special{fp}%
-\end{picture}}% \ No newline at end of file
diff --git a/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/checkmp3.tex b/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/checkmp3.tex
deleted file mode 100644
index 3096838f..00000000
--- a/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/checkmp3.tex
+++ /dev/null
@@ -1,57 +0,0 @@
-%%% checkb.tex 2015-1-6 10:35
-%%% checkb.sce 2015-1-6 6:35
-{\unitlength=1cm%
-\begin{picture}%
-( 10.00000, 4.00000)( -4.96000, -1.99000)%
-\special{pn 8}%
-%
-\special{pa -1356 171}\special{pa -1364 166}\special{pa -1374 166}\special{pa -1382 170}%
-\special{pa -1388 177}\special{pa -1390 186}\special{pa -1387 195}\special{pa -1380 202}%
-\special{pa -1371 205}\special{pa -1362 203}\special{pa -1355 197}\special{pa -1351 189}%
-\special{pa -1351 179}\special{pa -1356 171}\special{sh 1}\special{fp}%
-\special{pa -726 -321}\special{pa -734 -326}\special{pa -744 -326}\special{pa -752 -323}%
-\special{pa -758 -315}\special{pa -760 -306}\special{pa -757 -297}\special{pa -750 -290}%
-\special{pa -741 -287}\special{pa -732 -289}\special{pa -725 -295}\special{pa -721 -304}%
-\special{pa -721 -313}\special{pa -726 -321}\special{sh 1}\special{fp}%
-\special{pa 805 159}\special{pa 797 154}\special{pa 788 154}\special{pa 779 158}\special{pa 773 165}%
-\special{pa 772 174}\special{pa 774 183}\special{pa 781 190}\special{pa 790 193}\special{pa 799 191}%
-\special{pa 807 185}\special{pa 811 177}\special{pa 810 167}\special{pa 805 159}\special{sh 1}\special{fp}%
-\special{pa -1041 -77}\special{pa -1049 -82}\special{pa -1059 -82}\special{pa -1067 -78}%
-\special{pa -1073 -71}\special{pa -1075 -62}\special{pa -1072 -53}\special{pa -1065 -46}%
-\special{pa -1056 -43}\special{pa -1047 -45}\special{pa -1040 -51}\special{pa -1036 -59}%
-\special{pa -1036 -69}\special{pa -1041 -77}\special{sh 1}\special{fp}%
-\special{pa 41 -81}\special{pa 33 -86}\special{pa 24 -86}\special{pa 15 -82}\special{pa 10 -75}%
-\special{pa 8 -66}\special{pa 11 -57}\special{pa 17 -50}\special{pa 26 -47}\special{pa 36 -49}%
-\special{pa 43 -55}\special{pa 47 -63}\special{pa 46 -73}\special{pa 41 -81}\special{sh 1}\special{fp}%
-\settowidth{\Width}{A}\setlength{\Width}{-1\Width}%
-\settoheight{\Height}{A}\settodepth{\Depth}{A}\setlength{\Height}{-\Height}%
-\put(-3.6300,-0.6200){\hspace*{\Width}\raisebox{\Height}{A}}%
-%
-%
-\settowidth{\Width}{Ap1}\setlength{\Width}{-1\Width}%
-\settoheight{\Height}{Ap1}\settodepth{\Depth}{Ap1}\setlength{\Height}{\Depth}%
-\put(-2.8300,0.3100){\hspace*{\Width}\raisebox{\Height}{Ap1}}%
-%
-%
-\settowidth{\Width}{Ap2}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{Ap2}\settodepth{\Depth}{Ap2}\setlength{\Height}{\Depth}%
-\put(0.2200,0.3200){\hspace*{\Width}\raisebox{\Height}{Ap2}}%
-%
-%
-\settowidth{\Width}{B}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{B}\settodepth{\Depth}{B}\setlength{\Height}{\Depth}%
-\put(-1.8800,0.9300){\hspace*{\Width}\raisebox{\Height}{B}}%
-%
-%
-\settowidth{\Width}{C}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{C}\settodepth{\Depth}{C}\setlength{\Height}{-\Height}%
-\put(2.1600,-0.5900){\hspace*{\Width}\raisebox{\Height}{C}}%
-%
-%
-\special{pa -1370 185}\special{pa -1307 135}\special{pa -1244 86}\special{pa -1181 37}%
-\special{pa -1118 -13}\special{pa -1055 -62}\special{pa -992 -111}\special{pa -929 -160}%
-\special{pa -866 -209}\special{pa -803 -258}\special{pa -740 -307}\special{pa -587 -259}%
-\special{pa -433 -211}\special{pa -280 -163}\special{pa -127 -115}\special{pa 27 -67}%
-\special{pa 180 -19}\special{pa 333 29}\special{pa 486 77}\special{pa 639 125}\special{pa 791 173}%
-\special{fp}%
-\end{picture}}% \ No newline at end of file
diff --git a/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/checkmp4.tex b/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/checkmp4.tex
deleted file mode 100644
index 197c6ab0..00000000
--- a/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/checkmp4.tex
+++ /dev/null
@@ -1,175 +0,0 @@
-%%% checkb.tex 2015-1-6 10:57
-%%% checkb.sce 2015-1-6 6:35
-{\unitlength=1cm%
-\begin{picture}%
-( 18.13000, 4.08000)( -4.96000, -1.99000)%
-\special{pn 8}%
-%
-\special{pa -1356 171}\special{pa -1364 166}\special{pa -1374 166}\special{pa -1382 170}%
-\special{pa -1388 177}\special{pa -1390 186}\special{pa -1387 195}\special{pa -1380 202}%
-\special{pa -1371 205}\special{pa -1362 203}\special{pa -1355 197}\special{pa -1351 189}%
-\special{pa -1351 179}\special{pa -1356 171}\special{sh 1}\special{fp}%
-\special{pa -982 -321}\special{pa -990 -326}\special{pa -1000 -326}\special{pa -1008 -323}%
-\special{pa -1014 -315}\special{pa -1016 -306}\special{pa -1013 -297}\special{pa -1006 -290}%
-\special{pa -997 -287}\special{pa -988 -289}\special{pa -981 -295}\special{pa -977 -304}%
-\special{pa -977 -313}\special{pa -982 -321}\special{sh 1}\special{fp}%
-\special{pa -69 293}\special{pa -77 288}\special{pa -86 288}\special{pa -95 292}\special{pa -101 299}%
-\special{pa -102 308}\special{pa -100 317}\special{pa -93 324}\special{pa -84 327}%
-\special{pa -75 325}\special{pa -67 319}\special{pa -63 311}\special{pa -64 301}\special{pa -69 293}%
-\special{sh 1}\special{fp}%
-\special{pa 754 344}\special{pa 746 339}\special{pa 737 339}\special{pa 728 343}\special{pa 722 350}%
-\special{pa 721 359}\special{pa 723 368}\special{pa 730 375}\special{pa 739 378}\special{pa 748 376}%
-\special{pa 756 370}\special{pa 760 362}\special{pa 759 352}\special{pa 754 344}\special{sh 1}\special{fp}%
-\special{pa 1341 -321}\special{pa 1333 -326}\special{pa 1323 -326}\special{pa 1315 -323}%
-\special{pa 1309 -315}\special{pa 1307 -306}\special{pa 1310 -297}\special{pa 1317 -290}%
-\special{pa 1326 -287}\special{pa 1335 -289}\special{pa 1342 -295}\special{pa 1346 -304}%
-\special{pa 1346 -313}\special{pa 1341 -321}\special{sh 1}\special{fp}%
-\special{pa 2010 376}\special{pa 2002 371}\special{pa 1993 370}\special{pa 1984 374}%
-\special{pa 1978 382}\special{pa 1976 391}\special{pa 1979 400}\special{pa 1986 407}%
-\special{pa 1995 409}\special{pa 2004 408}\special{pa 2012 402}\special{pa 2015 393}%
-\special{pa 2015 384}\special{pa 2010 376}\special{sh 1}\special{fp}%
-\special{pa 2679 -396}\special{pa 2671 -401}\special{pa 2662 -401}\special{pa 2653 -397}%
-\special{pa 2647 -390}\special{pa 2646 -381}\special{pa 2649 -372}\special{pa 2655 -365}%
-\special{pa 2664 -362}\special{pa 2673 -364}\special{pa 2681 -370}\special{pa 2685 -378}%
-\special{pa 2684 -388}\special{pa 2679 -396}\special{sh 1}\special{fp}%
-\special{pa -1230 6}\special{pa -1238 1}\special{pa -1248 0}\special{pa -1256 4}\special{pa -1262 12}%
-\special{pa -1264 21}\special{pa -1261 30}\special{pa -1254 37}\special{pa -1245 39}%
-\special{pa -1236 38}\special{pa -1229 32}\special{pa -1225 23}\special{pa -1225 14}%
-\special{pa -1230 6}\special{sh 1}\special{fp}%
-\special{pa -1108 -160}\special{pa -1116 -164}\special{pa -1126 -165}\special{pa -1134 -161}%
-\special{pa -1140 -154}\special{pa -1142 -144}\special{pa -1139 -135}\special{pa -1132 -129}%
-\special{pa -1123 -126}\special{pa -1114 -128}\special{pa -1107 -134}\special{pa -1103 -142}%
-\special{pa -1103 -152}\special{pa -1108 -160}\special{sh 1}\special{fp}%
-\special{pa -679 -116}\special{pa -687 -121}\special{pa -696 -122}\special{pa -705 -118}%
-\special{pa -711 -110}\special{pa -713 -101}\special{pa -710 -92}\special{pa -703 -86}%
-\special{pa -694 -83}\special{pa -685 -84}\special{pa -677 -90}\special{pa -674 -99}%
-\special{pa -674 -108}\special{pa -679 -116}\special{sh 1}\special{fp}%
-\special{pa -372 88}\special{pa -380 84}\special{pa -389 83}\special{pa -398 87}\special{pa -404 94}%
-\special{pa -405 104}\special{pa -403 113}\special{pa -396 119}\special{pa -387 122}%
-\special{pa -378 120}\special{pa -370 115}\special{pa -366 106}\special{pa -367 97}%
-\special{pa -372 88}\special{sh 1}\special{fp}%
-\special{pa 951 124}\special{pa 943 119}\special{pa 933 118}\special{pa 925 122}\special{pa 919 130}%
-\special{pa 917 139}\special{pa 920 148}\special{pa 927 155}\special{pa 936 157}\special{pa 945 156}%
-\special{pa 953 150}\special{pa 956 141}\special{pa 956 132}\special{pa 951 124}\special{sh 1}\special{fp}%
-\special{pa 1144 -101}\special{pa 1136 -105}\special{pa 1126 -106}\special{pa 1118 -102}%
-\special{pa 1112 -95}\special{pa 1110 -85}\special{pa 1113 -76}\special{pa 1120 -70}%
-\special{pa 1129 -67}\special{pa 1138 -69}\special{pa 1145 -74}\special{pa 1149 -83}%
-\special{pa 1149 -92}\special{pa 1144 -101}\special{sh 1}\special{fp}%
-\special{pa 1565 -89}\special{pa 1557 -94}\special{pa 1548 -94}\special{pa 1539 -90}%
-\special{pa 1533 -83}\special{pa 1532 -74}\special{pa 1534 -65}\special{pa 1541 -58}%
-\special{pa 1550 -55}\special{pa 1559 -57}\special{pa 1567 -63}\special{pa 1571 -71}%
-\special{pa 1570 -81}\special{pa 1565 -89}\special{sh 1}\special{fp}%
-\special{pa 1786 144}\special{pa 1778 139}\special{pa 1768 138}\special{pa 1760 142}%
-\special{pa 1754 149}\special{pa 1752 159}\special{pa 1755 168}\special{pa 1761 174}%
-\special{pa 1770 177}\special{pa 1780 175}\special{pa 1787 170}\special{pa 1791 161}%
-\special{pa 1790 152}\special{pa 1786 144}\special{sh 1}\special{fp}%
-\special{pa 2234 120}\special{pa 2226 115}\special{pa 2217 114}\special{pa 2208 118}%
-\special{pa 2203 126}\special{pa 2201 135}\special{pa 2204 144}\special{pa 2210 151}%
-\special{pa 2219 154}\special{pa 2229 152}\special{pa 2236 146}\special{pa 2240 137}%
-\special{pa 2239 128}\special{pa 2234 120}\special{sh 1}\special{fp}%
-\special{pa 2455 -136}\special{pa 2447 -141}\special{pa 2437 -141}\special{pa 2429 -138}%
-\special{pa 2423 -130}\special{pa 2421 -121}\special{pa 2424 -112}\special{pa 2431 -105}%
-\special{pa 2440 -102}\special{pa 2449 -104}\special{pa 2456 -110}\special{pa 2460 -118}%
-\special{pa 2460 -128}\special{pa 2455 -136}\special{sh 1}\special{fp}%
-\settowidth{\Width}{A}\setlength{\Width}{-1\Width}%
-\settoheight{\Height}{A}\settodepth{\Depth}{A}\setlength{\Height}{-\Height}%
-\put(-3.6300,-0.6200){\hspace*{\Width}\raisebox{\Height}{A}}%
-%
-%
-\settowidth{\Width}{Ap1}\setlength{\Width}{-1\Width}%
-\settoheight{\Height}{Ap1}\settodepth{\Depth}{Ap1}\setlength{\Height}{\Depth}%
-\put(-3.3100,0.1000){\hspace*{\Width}\raisebox{\Height}{Ap1}}%
-%
-%
-\settowidth{\Width}{Aq1}\setlength{\Width}{-1\Width}%
-\settoheight{\Height}{Aq1}\settodepth{\Depth}{Aq1}\setlength{\Height}{\Depth}%
-\put(-3.0000,0.5200){\hspace*{\Width}\raisebox{\Height}{Aq1}}%
-%
-%
-\settowidth{\Width}{Ap2}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{Ap2}\settodepth{\Depth}{Ap2}\setlength{\Height}{\Depth}%
-\put(-1.6100,0.4100){\hspace*{\Width}\raisebox{\Height}{Ap2}}%
-%
-%
-\settowidth{\Width}{Aq2}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{Aq2}\settodepth{\Depth}{Aq2}\setlength{\Height}{\Depth}%
-\put(-0.8300,-0.1100){\hspace*{\Width}\raisebox{\Height}{Aq2}}%
-%
-%
-\settowidth{\Width}{Bp1}\setlength{\Width}{-1\Width}%
-\settoheight{\Height}{Bp1}\settodepth{\Depth}{Bp1}\setlength{\Height}{\Depth}%
-\put(2.2300,-0.2000){\hspace*{\Width}\raisebox{\Height}{Bp1}}%
-%
-%
-\settowidth{\Width}{Bq1}\setlength{\Width}{-1\Width}%
-\settoheight{\Height}{Bq1}\settodepth{\Depth}{Bq1}\setlength{\Height}{\Depth}%
-\put(2.7200,0.3700){\hspace*{\Width}\raisebox{\Height}{Bq1}}%
-%
-%
-\settowidth{\Width}{Bp2}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{Bp2}\settodepth{\Depth}{Bp2}\setlength{\Height}{\Depth}%
-\put(4.0900,0.3400){\hspace*{\Width}\raisebox{\Height}{Bp2}}%
-%
-%
-\settowidth{\Width}{Bq2}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{Bq2}\settodepth{\Depth}{Bq2}\setlength{\Height}{\Depth}%
-\put(4.6500,-0.2500){\hspace*{\Width}\raisebox{\Height}{Bq2}}%
-%
-%
-\settowidth{\Width}{Bp3}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{Bp3}\settodepth{\Depth}{Bp3}\setlength{\Height}{-\Height}%
-\put(5.7900,-0.4900){\hspace*{\Width}\raisebox{\Height}{Bp3}}%
-%
-%
-\settowidth{\Width}{Bq3}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{Bq3}\settodepth{\Depth}{Bq3}\setlength{\Height}{-\Height}%
-\put(6.3500,0.1600){\hspace*{\Width}\raisebox{\Height}{Bq3}}%
-%
-%
-\settowidth{\Width}{B}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{B}\settodepth{\Depth}{B}\setlength{\Height}{\Depth}%
-\put(-2.5300,0.9300){\hspace*{\Width}\raisebox{\Height}{B}}%
-%
-%
-\settowidth{\Width}{C}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{C}\settodepth{\Depth}{C}\setlength{\Height}{-\Height}%
-\put(-0.0600,-0.9300){\hspace*{\Width}\raisebox{\Height}{C}}%
-%
-%
-\settowidth{\Width}{D}\setlength{\Width}{-1\Width}%
-\settoheight{\Height}{D}\settodepth{\Depth}{D}\setlength{\Height}{-\Height}%
-\put(1.7300,-1.0600){\hspace*{\Width}\raisebox{\Height}{D}}%
-%
-%
-\settowidth{\Width}{E}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{E}\settodepth{\Depth}{E}\setlength{\Height}{\Depth}%
-\put(3.3700,0.9300){\hspace*{\Width}\raisebox{\Height}{E}}%
-%
-%
-\settowidth{\Width}{F}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{F}\settodepth{\Depth}{F}\setlength{\Height}{-\Height}%
-\put(5.0700,-1.1400){\hspace*{\Width}\raisebox{\Height}{F}}%
-%
-%
-\settowidth{\Width}{G}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{G}\settodepth{\Depth}{G}\setlength{\Height}{\Depth}%
-\put(6.9200,1.1200){\hspace*{\Width}\raisebox{\Height}{G}}%
-%
-%
-\special{pa -1370 185}\special{pa -1332 135}\special{pa -1295 86}\special{pa -1258 36}%
-\special{pa -1220 -13}\special{pa -1183 -63}\special{pa -1146 -112}\special{pa -1109 -161}%
-\special{pa -1071 -210}\special{pa -1034 -259}\special{pa -996 -307}\special{pa -905 -246}%
-\special{pa -814 -184}\special{pa -722 -123}\special{pa -631 -61}\special{pa -539 0}%
-\special{pa -448 61}\special{pa -356 123}\special{pa -265 184}\special{pa -174 246}%
-\special{pa -83 307}%
-\special{fp}%
-\special{pa 740 358}\special{pa 799 292}\special{pa 858 226}\special{pa 916 159}\special{pa 975 92}%
-\special{pa 1033 26}\special{pa 1092 -41}\special{pa 1150 -108}\special{pa 1209 -174}%
-\special{pa 1268 -241}\special{pa 1327 -307}\special{pa 1394 -237}\special{pa 1461 -168}%
-\special{pa 1528 -98}\special{pa 1595 -28}\special{pa 1661 41}\special{pa 1728 111}%
-\special{pa 1795 181}\special{pa 1862 250}\special{pa 1929 320}\special{pa 1996 390}%
-\special{pa 2063 313}\special{pa 2130 236}\special{pa 2197 159}\special{pa 2264 82}%
-\special{pa 2331 5}\special{pa 2397 -72}\special{pa 2464 -149}\special{pa 2531 -226}%
-\special{pa 2598 -304}\special{pa 2665 -382}%
-\special{fp}%
-\end{picture}}% \ No newline at end of file
diff --git a/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/checksm1.tex b/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/checksm1.tex
deleted file mode 100644
index 9231cfed..00000000
--- a/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/checksm1.tex
+++ /dev/null
@@ -1,112 +0,0 @@
-%%% checkb.tex 2015-1-13 16:26
-%%% checkb.sce 2015-1-13 13:55
-{\unitlength=1cm%
-\begin{picture}%
-( 8.99000, 3.00000)( -4.99000, -0.99000)%
-\special{pn 8}%
-%
-\special{pn 2}%
-\special{pa -1721 390}\special{pa -744 -791}%
-\special{fp}%
-\special{pn 8}%
-\special{pn 2}%
-\special{pa -1759 -791}\special{pa 1029 390}%
-\special{fp}%
-\special{pn 8}%
-\special{pa -1466 81}\special{pa -1474 76}\special{pa -1484 75}\special{pa -1492 79}%
-\special{pa -1498 86}\special{pa -1500 96}\special{pa -1497 105}\special{pa -1490 111}%
-\special{pa -1482 114}\special{pa -1472 112}\special{pa -1465 107}\special{pa -1461 98}%
-\special{pa -1462 89}\special{pa -1466 81}\special{sh 1}\special{fp}%
-\special{pa -994 -486}\special{pa -1002 -491}\special{pa -1011 -492}\special{pa -1020 -488}%
-\special{pa -1026 -481}\special{pa -1028 -471}\special{pa -1025 -462}\special{pa -1018 -456}%
-\special{pa -1009 -453}\special{pa -1000 -454}\special{pa -992 -460}\special{pa -989 -469}%
-\special{pa -989 -478}\special{pa -994 -486}\special{sh 1}\special{fp}%
-\special{pa 415 108}\special{pa 407 103}\special{pa 398 103}\special{pa 389 107}\special{pa 384 114}%
-\special{pa 382 123}\special{pa 385 132}\special{pa 391 139}\special{pa 400 142}\special{pa 410 140}%
-\special{pa 417 134}\special{pa 421 126}\special{pa 420 116}\special{pa 415 108}\special{sh 1}\special{fp}%
-\special{pa 1207 -427}\special{pa 1199 -432}\special{pa 1189 -433}\special{pa 1181 -429}%
-\special{pa 1175 -421}\special{pa 1173 -412}\special{pa 1176 -403}\special{pa 1183 -397}%
-\special{pa 1192 -394}\special{pa 1201 -395}\special{pa 1208 -401}\special{pa 1212 -410}%
-\special{pa 1212 -419}\special{pa 1207 -427}\special{sh 1}\special{fp}%
-\special{pa -1372 -34}\special{pa -1380 -38}\special{pa -1389 -39}\special{pa -1398 -35}%
-\special{pa -1404 -28}\special{pa -1405 -18}\special{pa -1403 -10}\special{pa -1396 -3}%
-\special{pa -1387 0}\special{pa -1378 -2}\special{pa -1370 -8}\special{pa -1366 -16}%
-\special{pa -1367 -26}\special{pa -1372 -34}\special{sh 1}\special{fp}%
-\special{pa -1088 -372}\special{pa -1097 -377}\special{pa -1106 -378}\special{pa -1115 -374}%
-\special{pa -1120 -366}\special{pa -1122 -357}\special{pa -1119 -348}\special{pa -1113 -341}%
-\special{pa -1104 -339}\special{pa -1094 -340}\special{pa -1087 -346}\special{pa -1083 -355}%
-\special{pa -1084 -364}\special{pa -1088 -372}\special{sh 1}\special{fp}%
-\special{pa -899 -601}\special{pa -908 -605}\special{pa -917 -606}\special{pa -926 -602}%
-\special{pa -931 -595}\special{pa -933 -585}\special{pa -930 -576}\special{pa -924 -570}%
-\special{pa -915 -567}\special{pa -905 -569}\special{pa -898 -574}\special{pa -894 -583}%
-\special{pa -895 -592}\special{pa -899 -601}\special{sh 1}\special{fp}%
-\special{pa 132 -10}\special{pa 124 -15}\special{pa 115 -15}\special{pa 106 -12}\special{pa 100 -4}%
-\special{pa 98 5}\special{pa 101 14}\special{pa 108 21}\special{pa 117 24}\special{pa 126 22}%
-\special{pa 134 16}\special{pa 137 7}\special{pa 137 -2}\special{pa 132 -10}\special{sh 1}\special{fp}%
-\special{pa 699 230}\special{pa 691 225}\special{pa 681 225}\special{pa 673 229}\special{pa 667 236}%
-\special{pa 665 245}\special{pa 668 254}\special{pa 675 261}\special{pa 684 264}\special{pa 693 262}%
-\special{pa 701 256}\special{pa 704 248}\special{pa 704 238}\special{pa 699 230}\special{sh 1}\special{fp}%
-\special{pa 1049 -317}\special{pa 1041 -322}\special{pa 1032 -323}\special{pa 1023 -319}%
-\special{pa 1017 -311}\special{pa 1016 -302}\special{pa 1019 -293}\special{pa 1025 -286}%
-\special{pa 1034 -284}\special{pa 1044 -285}\special{pa 1051 -291}\special{pa 1055 -300}%
-\special{pa 1054 -309}\special{pa 1049 -317}\special{sh 1}\special{fp}%
-\settowidth{\Width}{A}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{A}\settodepth{\Depth}{A}\setlength{\Height}{-\Height}%
-\put(-3.7600,-0.3900){\hspace*{\Width}\raisebox{\Height}{A}}%
-%
-%
-\settowidth{\Width}{B}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{B}\settodepth{\Depth}{B}\setlength{\Height}{\Depth}%
-\put(-2.5600,1.3500){\hspace*{\Width}\raisebox{\Height}{B}}%
-%
-%
-\settowidth{\Width}{C}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{C}\settodepth{\Depth}{C}\setlength{\Height}{-\Height}%
-\put(1.0200,-0.4600){\hspace*{\Width}\raisebox{\Height}{C}}%
-%
-%
-\settowidth{\Width}{D}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{D}\settodepth{\Depth}{D}\setlength{\Height}{\Depth}%
-\put(3.0300,1.2000){\hspace*{\Width}\raisebox{\Height}{D}}%
-%
-%
-\settowidth{\Width}{C1p}\setlength{\Width}{-1\Width}%
-\settoheight{\Height}{C1p}\settodepth{\Depth}{C1p}\setlength{\Height}{\Depth}%
-\put(-3.6700,0.2000){\hspace*{\Width}\raisebox{\Height}{C1p}}%
-%
-%
-\settowidth{\Width}{C1q}\setlength{\Width}{-1\Width}%
-\settoheight{\Height}{C1q}\settodepth{\Depth}{C1q}\setlength{\Height}{\Depth}%
-\put(-2.9500,1.0600){\hspace*{\Width}\raisebox{\Height}{C1q}}%
-%
-%
-\settowidth{\Width}{C2p}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{C2p}\settodepth{\Depth}{C2p}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(-2.1700,1.4900){\hspace*{\Width}\raisebox{\Height}{C2p}}%
-%
-%
-\settowidth{\Width}{C2q}\setlength{\Width}{-1\Width}%
-\settoheight{\Height}{C2q}\settodepth{\Depth}{C2q}\setlength{\Height}{-\Height}%
-\put(0.1500,-0.1600){\hspace*{\Width}\raisebox{\Height}{C2q}}%
-%
-%
-\settowidth{\Width}{C3p}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{C3p}\settodepth{\Depth}{C3p}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(1.8900,-0.6200){\hspace*{\Width}\raisebox{\Height}{C3p}}%
-%
-%
-\settowidth{\Width}{C3q}\setlength{\Width}{-1\Width}%
-\settoheight{\Height}{C3q}\settodepth{\Depth}{C3q}\setlength{\Height}{\Depth}%
-\put(2.4800,0.9200){\hspace*{\Width}\raisebox{\Height}{C3q}}%
-%
-%
-\special{pa -1480 94}\special{pa -1447 54}\special{pa -1404 3}\special{pa -1354 -57}%
-\special{pa -1300 -122}\special{pa -1244 -189}\special{pa -1188 -256}\special{pa -1134 -321}%
-\special{pa -1084 -381}\special{pa -1042 -432}\special{pa -1008 -472}\special{pa -953 -487}%
-\special{pa -852 -466}\special{pa -715 -417}\special{pa -553 -347}\special{pa -374 -262}%
-\special{pa -190 -171}\special{pa -10 -80}\special{pa 155 4}\special{pa 296 74}\special{pa 402 122}%
-\special{pa 488 140}\special{pa 578 124}\special{pa 668 81}\special{pa 757 18}\special{pa 844 -59}%
-\special{pa 928 -142}\special{pa 1006 -226}\special{pa 1077 -304}\special{pa 1140 -368}%
-\special{pa 1193 -413}%
-\special{fp}%
-\end{picture}}% \ No newline at end of file
diff --git a/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/checksm2.tex b/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/checksm2.tex
deleted file mode 100644
index 90116465..00000000
--- a/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/checksm2.tex
+++ /dev/null
@@ -1,112 +0,0 @@
-%%% checkb.tex 2015-1-13 16:40
-%%% checkb.sce 2015-1-13 13:55
-{\unitlength=1cm%
-\begin{picture}%
-( 8.99000, 3.00000)( -4.99000, -0.99000)%
-\special{pn 8}%
-%
-\special{pn 2}%
-\special{pa -1965 -251}\special{pa 360 -791}%
-\special{fp}%
-\special{pn 8}%
-\special{pn 2}%
-\special{pa -1965 -299}\special{pa 1575 333}%
-\special{fp}%
-\special{pn 8}%
-\special{pa -1466 81}\special{pa -1474 76}\special{pa -1484 75}\special{pa -1492 79}%
-\special{pa -1498 86}\special{pa -1500 96}\special{pa -1497 105}\special{pa -1490 111}%
-\special{pa -1482 114}\special{pa -1472 112}\special{pa -1465 107}\special{pa -1461 98}%
-\special{pa -1462 89}\special{pa -1466 81}\special{sh 1}\special{fp}%
-\special{pa -994 -486}\special{pa -1002 -491}\special{pa -1011 -492}\special{pa -1020 -488}%
-\special{pa -1026 -481}\special{pa -1028 -471}\special{pa -1025 -462}\special{pa -1018 -456}%
-\special{pa -1009 -453}\special{pa -1000 -454}\special{pa -992 -460}\special{pa -989 -469}%
-\special{pa -989 -478}\special{pa -994 -486}\special{sh 1}\special{fp}%
-\special{pa 415 108}\special{pa 407 103}\special{pa 398 103}\special{pa 389 107}\special{pa 384 114}%
-\special{pa 382 123}\special{pa 385 132}\special{pa 391 139}\special{pa 400 142}\special{pa 410 140}%
-\special{pa 417 134}\special{pa 421 126}\special{pa 420 116}\special{pa 415 108}\special{sh 1}\special{fp}%
-\special{pa 1207 -427}\special{pa 1199 -432}\special{pa 1189 -433}\special{pa 1181 -429}%
-\special{pa 1175 -421}\special{pa 1173 -412}\special{pa 1176 -403}\special{pa 1183 -397}%
-\special{pa 1192 -394}\special{pa 1201 -395}\special{pa 1208 -401}\special{pa 1212 -410}%
-\special{pa 1212 -419}\special{pa 1207 -427}\special{sh 1}\special{fp}%
-\special{pa -1415 -108}\special{pa -1423 -113}\special{pa -1433 -114}\special{pa -1441 -110}%
-\special{pa -1447 -103}\special{pa -1449 -93}\special{pa -1446 -84}\special{pa -1439 -78}%
-\special{pa -1430 -75}\special{pa -1421 -77}\special{pa -1414 -82}\special{pa -1410 -91}%
-\special{pa -1410 -100}\special{pa -1415 -108}\special{sh 1}\special{fp}%
-\special{pa -1167 -447}\special{pa -1175 -452}\special{pa -1185 -452}\special{pa -1193 -449}%
-\special{pa -1199 -441}\special{pa -1201 -432}\special{pa -1198 -423}\special{pa -1191 -416}%
-\special{pa -1182 -413}\special{pa -1173 -415}\special{pa -1166 -421}\special{pa -1162 -430}%
-\special{pa -1162 -439}\special{pa -1167 -447}\special{sh 1}\special{fp}%
-\special{pa -270 -656}\special{pa -278 -661}\special{pa -287 -661}\special{pa -296 -657}%
-\special{pa -301 -650}\special{pa -303 -641}\special{pa -300 -632}\special{pa -294 -625}%
-\special{pa -285 -622}\special{pa -275 -624}\special{pa -268 -630}\special{pa -264 -638}%
-\special{pa -265 -648}\special{pa -270 -656}\special{sh 1}\special{fp}%
-\special{pa 77 49}\special{pa 69 44}\special{pa 59 44}\special{pa 51 47}\special{pa 45 55}%
-\special{pa 43 64}\special{pa 46 73}\special{pa 53 80}\special{pa 62 83}\special{pa 71 81}%
-\special{pa 78 75}\special{pa 82 67}\special{pa 82 57}\special{pa 77 49}\special{sh 1}\special{fp}%
-\special{pa 805 179}\special{pa 797 174}\special{pa 788 174}\special{pa 779 177}\special{pa 773 185}%
-\special{pa 772 194}\special{pa 774 203}\special{pa 781 210}\special{pa 790 213}\special{pa 799 211}%
-\special{pa 807 205}\special{pa 811 196}\special{pa 810 187}\special{pa 805 179}\special{sh 1}\special{fp}%
-\special{pa 1116 -116}\special{pa 1108 -121}\special{pa 1099 -122}\special{pa 1090 -118}%
-\special{pa 1084 -110}\special{pa 1083 -101}\special{pa 1086 -92}\special{pa 1092 -86}%
-\special{pa 1101 -83}\special{pa 1110 -84}\special{pa 1118 -90}\special{pa 1122 -99}%
-\special{pa 1121 -108}\special{pa 1116 -116}\special{sh 1}\special{fp}%
-\settowidth{\Width}{A}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{A}\settodepth{\Depth}{A}\setlength{\Height}{-\Height}%
-\put(-3.7600,-0.3900){\hspace*{\Width}\raisebox{\Height}{A}}%
-%
-%
-\settowidth{\Width}{B}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{B}\settodepth{\Depth}{B}\setlength{\Height}{\Depth}%
-\put(-2.5600,1.3500){\hspace*{\Width}\raisebox{\Height}{B}}%
-%
-%
-\settowidth{\Width}{C}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{C}\settodepth{\Depth}{C}\setlength{\Height}{-\Height}%
-\put(1.0200,-0.4600){\hspace*{\Width}\raisebox{\Height}{C}}%
-%
-%
-\settowidth{\Width}{D}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{D}\settodepth{\Depth}{D}\setlength{\Height}{\Depth}%
-\put(3.0300,1.2000){\hspace*{\Width}\raisebox{\Height}{D}}%
-%
-%
-\settowidth{\Width}{C1p}\setlength{\Width}{-1\Width}%
-\settoheight{\Height}{C1p}\settodepth{\Depth}{C1p}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(-3.7800,0.2400){\hspace*{\Width}\raisebox{\Height}{C1p}}%
-%
-%
-\settowidth{\Width}{C1q}\setlength{\Width}{-1\Width}%
-\settoheight{\Height}{C1q}\settodepth{\Depth}{C1q}\setlength{\Height}{\Depth}%
-\put(-3.1500,1.2500){\hspace*{\Width}\raisebox{\Height}{C1q}}%
-%
-%
-\settowidth{\Width}{C2p}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{C2p}\settodepth{\Depth}{C2p}\setlength{\Height}{\Depth}%
-\put(-0.7200,1.7800){\hspace*{\Width}\raisebox{\Height}{C2p}}%
-%
-%
-\settowidth{\Width}{C2q}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{C2q}\settodepth{\Depth}{C2q}\setlength{\Height}{-\Height}%
-\put(0.1600,-0.3100){\hspace*{\Width}\raisebox{\Height}{C2q}}%
-%
-%
-\settowidth{\Width}{C3p}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{C3p}\settodepth{\Depth}{C3p}\setlength{\Height}{-\Height}%
-\put(2.0100,-0.6400){\hspace*{\Width}\raisebox{\Height}{C3p}}%
-%
-%
-\settowidth{\Width}{C3q}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{C3q}\settodepth{\Depth}{C3q}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(2.9500,0.2600){\hspace*{\Width}\raisebox{\Height}{C3q}}%
-%
-%
-\special{pa -1480 94}\special{pa -1459 34}\special{pa -1428 -33}\special{pa -1388 -104}%
-\special{pa -1342 -175}\special{pa -1290 -245}\special{pa -1234 -310}\special{pa -1177 -368}%
-\special{pa -1119 -417}\special{pa -1062 -452}\special{pa -1008 -472}\special{pa -802 -499}%
-\special{pa -616 -481}\special{pa -448 -430}\special{pa -296 -353}\special{pa -158 -261}%
-\special{pa -32 -161}\special{pa 85 -64}\special{pa 195 21}\special{pa 299 86}\special{pa 402 122}%
-\special{pa 516 133}\special{pa 625 123}\special{pa 727 96}\special{pa 822 54}\special{pa 909 -2}%
-\special{pa 987 -70}\special{pa 1056 -147}\special{pa 1113 -231}\special{pa 1159 -321}%
-\special{pa 1193 -413}%
-\special{fp}%
-\end{picture}}% \ No newline at end of file
diff --git a/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/checksy1.tex b/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/checksy1.tex
deleted file mode 100644
index 0d164809..00000000
--- a/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/checksy1.tex
+++ /dev/null
@@ -1,104 +0,0 @@
-%%% checkb.tex 2015-1-13 17:12
-%%% checkb.sce 2015-1-13 13:55
-{\unitlength=1cm%
-\begin{picture}%
-( 8.99000, 3.00000)( -4.99000, -0.99000)%
-\special{pn 8}%
-%
-\special{pa -1480 94}\special{pa -1447 54}\special{pa -1404 3}\special{pa -1354 -57}%
-\special{pa -1300 -122}\special{pa -1244 -189}\special{pa -1188 -256}\special{pa -1134 -321}%
-\special{pa -1084 -381}\special{pa -1042 -432}\special{pa -1008 -472}\special{pa -953 -487}%
-\special{pa -852 -466}\special{pa -715 -417}\special{pa -553 -347}\special{pa -374 -262}%
-\special{pa -190 -171}\special{pa -10 -80}\special{pa 155 4}\special{pa 296 74}\special{pa 402 122}%
-\special{pa 488 140}\special{pa 578 124}\special{pa 668 81}\special{pa 757 18}\special{pa 844 -59}%
-\special{pa 928 -142}\special{pa 1006 -226}\special{pa 1077 -304}\special{pa 1140 -368}%
-\special{pa 1193 -413}%
-\special{fp}%
-\special{pa -1466 81}\special{pa -1474 76}\special{pa -1484 75}\special{pa -1492 79}%
-\special{pa -1498 86}\special{pa -1500 96}\special{pa -1497 105}\special{pa -1490 111}%
-\special{pa -1482 114}\special{pa -1472 112}\special{pa -1465 107}\special{pa -1461 98}%
-\special{pa -1462 89}\special{pa -1466 81}\special{sh 1}\special{fp}%
-\special{pa -994 -486}\special{pa -1002 -491}\special{pa -1011 -492}\special{pa -1020 -488}%
-\special{pa -1026 -481}\special{pa -1028 -471}\special{pa -1025 -462}\special{pa -1018 -456}%
-\special{pa -1009 -453}\special{pa -1000 -454}\special{pa -992 -460}\special{pa -989 -469}%
-\special{pa -989 -478}\special{pa -994 -486}\special{sh 1}\special{fp}%
-\special{pa 415 108}\special{pa 407 103}\special{pa 398 103}\special{pa 389 107}\special{pa 384 114}%
-\special{pa 382 123}\special{pa 385 132}\special{pa 391 139}\special{pa 400 142}\special{pa 410 140}%
-\special{pa 417 134}\special{pa 421 126}\special{pa 420 116}\special{pa 415 108}\special{sh 1}\special{fp}%
-\special{pa 1207 -427}\special{pa 1199 -432}\special{pa 1189 -433}\special{pa 1181 -429}%
-\special{pa 1175 -421}\special{pa 1173 -412}\special{pa 1176 -403}\special{pa 1183 -397}%
-\special{pa 1192 -394}\special{pa 1201 -395}\special{pa 1208 -401}\special{pa 1212 -410}%
-\special{pa 1212 -419}\special{pa 1207 -427}\special{sh 1}\special{fp}%
-\special{pa -1372 -34}\special{pa -1380 -38}\special{pa -1389 -39}\special{pa -1398 -35}%
-\special{pa -1404 -28}\special{pa -1405 -18}\special{pa -1403 -10}\special{pa -1396 -3}%
-\special{pa -1387 0}\special{pa -1378 -2}\special{pa -1370 -8}\special{pa -1366 -16}%
-\special{pa -1367 -26}\special{pa -1372 -34}\special{sh 1}\special{fp}%
-\special{pa -1088 -372}\special{pa -1097 -377}\special{pa -1106 -378}\special{pa -1115 -374}%
-\special{pa -1120 -366}\special{pa -1122 -357}\special{pa -1119 -348}\special{pa -1113 -341}%
-\special{pa -1104 -339}\special{pa -1094 -340}\special{pa -1087 -346}\special{pa -1083 -355}%
-\special{pa -1084 -364}\special{pa -1088 -372}\special{sh 1}\special{fp}%
-\special{pa 132 -10}\special{pa 124 -15}\special{pa 115 -15}\special{pa 106 -12}\special{pa 100 -4}%
-\special{pa 98 5}\special{pa 101 14}\special{pa 108 21}\special{pa 117 24}\special{pa 126 22}%
-\special{pa 134 16}\special{pa 137 7}\special{pa 137 -2}\special{pa 132 -10}\special{sh 1}\special{fp}%
-\special{pa 1049 -317}\special{pa 1041 -322}\special{pa 1032 -323}\special{pa 1023 -319}%
-\special{pa 1017 -311}\special{pa 1016 -302}\special{pa 1019 -293}\special{pa 1025 -286}%
-\special{pa 1034 -284}\special{pa 1044 -285}\special{pa 1051 -291}\special{pa 1055 -300}%
-\special{pa 1054 -309}\special{pa 1049 -317}\special{sh 1}\special{fp}%
-\special{pa -899 -601}\special{pa -908 -605}\special{pa -917 -606}\special{pa -926 -602}%
-\special{pa -931 -595}\special{pa -933 -585}\special{pa -930 -576}\special{pa -924 -570}%
-\special{pa -915 -567}\special{pa -905 -569}\special{pa -898 -574}\special{pa -894 -583}%
-\special{pa -895 -592}\special{pa -899 -601}\special{sh 0}\special{fp}%
-\special{pa 699 230}\special{pa 691 225}\special{pa 681 225}\special{pa 673 229}\special{pa 667 236}%
-\special{pa 665 245}\special{pa 668 254}\special{pa 675 261}\special{pa 684 264}\special{pa 693 262}%
-\special{pa 701 256}\special{pa 704 248}\special{pa 704 238}\special{pa 699 230}\special{sh 0}\special{fp}%
-\settowidth{\Width}{A}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{A}\settodepth{\Depth}{A}\setlength{\Height}{-\Height}%
-\put(-3.7600,-0.3900){\hspace*{\Width}\raisebox{\Height}{A}}%
-%
-%
-\settowidth{\Width}{B}\setlength{\Width}{-1\Width}%
-\settoheight{\Height}{B}\settodepth{\Depth}{B}\setlength{\Height}{\Depth}%
-\put(-2.6600,1.3500){\hspace*{\Width}\raisebox{\Height}{B}}%
-%
-%
-\settowidth{\Width}{C}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{C}\settodepth{\Depth}{C}\setlength{\Height}{-\Height}%
-\put(1.0200,-0.4600){\hspace*{\Width}\raisebox{\Height}{C}}%
-%
-%
-\settowidth{\Width}{D}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{D}\settodepth{\Depth}{D}\setlength{\Height}{\Depth}%
-\put(3.0300,1.2000){\hspace*{\Width}\raisebox{\Height}{D}}%
-%
-%
-\settowidth{\Width}{C1p}\setlength{\Width}{-1\Width}%
-\settoheight{\Height}{C1p}\settodepth{\Depth}{C1p}\setlength{\Height}{\Depth}%
-\put(-3.6700,0.2000){\hspace*{\Width}\raisebox{\Height}{C1p}}%
-%
-%
-\settowidth{\Width}{C1q}\setlength{\Width}{-1\Width}%
-\settoheight{\Height}{C1q}\settodepth{\Depth}{C1q}\setlength{\Height}{\Depth}%
-\put(-2.9500,1.0600){\hspace*{\Width}\raisebox{\Height}{C1q}}%
-%
-%
-\settowidth{\Width}{C2p}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{C2p}\settodepth{\Depth}{C2p}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(-2.1700,1.4900){\hspace*{\Width}\raisebox{\Height}{C2p}}%
-%
-%
-\settowidth{\Width}{C2q}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{C2q}\settodepth{\Depth}{C2q}\setlength{\Height}{-\Height}%
-\put(0.3000,-0.1600){\hspace*{\Width}\raisebox{\Height}{C2q}}%
-%
-%
-\settowidth{\Width}{C3p}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{C3p}\settodepth{\Depth}{C3p}\setlength{\Height}{-\Height}%
-\put(1.7400,-0.7700){\hspace*{\Width}\raisebox{\Height}{C3p}}%
-%
-%
-\settowidth{\Width}{C3q}\setlength{\Width}{-1\Width}%
-\settoheight{\Height}{C3q}\settodepth{\Depth}{C3q}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(2.4800,0.7700){\hspace*{\Width}\raisebox{\Height}{C3q}}%
-%
-%
-\end{picture}}% \ No newline at end of file
diff --git a/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/checksy2.tex b/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/checksy2.tex
deleted file mode 100644
index b5db65ec..00000000
--- a/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/checksy2.tex
+++ /dev/null
@@ -1,104 +0,0 @@
-%%% checkb.tex 2015-1-13 19:31
-%%% checkb.sce 2015-1-13 13:55
-{\unitlength=1cm%
-\begin{picture}%
-( 8.99000, 3.00000)( -4.99000, -0.99000)%
-\special{pn 8}%
-%
-\special{pa -1472 173}\special{pa -1458 115}\special{pa -1440 46}\special{pa -1418 -28}%
-\special{pa -1389 -104}\special{pa -1353 -177}\special{pa -1309 -243}\special{pa -1256 -298}%
-\special{pa -1192 -337}\special{pa -1116 -356}\special{pa -1028 -350}\special{pa -924 -320}%
-\special{pa -806 -269}\special{pa -674 -203}\special{pa -533 -128}\special{pa -383 -48}%
-\special{pa -229 31}\special{pa -73 104}\special{pa 83 166}\special{pa 235 212}\special{pa 382 236}%
-\special{pa 515 239}\special{pa 633 225}\special{pa 736 196}\special{pa 826 153}\special{pa 905 97}%
-\special{pa 973 31}\special{pa 1033 -46}\special{pa 1085 -130}\special{pa 1131 -222}%
-\special{pa 1173 -319}%
-\special{fp}%
-\special{pa -1459 159}\special{pa -1467 154}\special{pa -1476 154}\special{pa -1485 158}%
-\special{pa -1490 165}\special{pa -1492 174}\special{pa -1489 183}\special{pa -1483 190}%
-\special{pa -1474 193}\special{pa -1464 191}\special{pa -1457 185}\special{pa -1453 177}%
-\special{pa -1454 167}\special{pa -1459 159}\special{sh 1}\special{fp}%
-\special{pa -1014 -364}\special{pa -1022 -369}\special{pa -1031 -370}\special{pa -1040 -366}%
-\special{pa -1046 -358}\special{pa -1047 -349}\special{pa -1044 -340}\special{pa -1038 -334}%
-\special{pa -1029 -331}\special{pa -1019 -332}\special{pa -1012 -338}\special{pa -1008 -347}%
-\special{pa -1009 -356}\special{pa -1014 -364}\special{sh 1}\special{fp}%
-\special{pa 396 222}\special{pa 388 217}\special{pa 378 217}\special{pa 370 221}\special{pa 364 228}%
-\special{pa 362 237}\special{pa 365 246}\special{pa 372 253}\special{pa 381 256}\special{pa 390 254}%
-\special{pa 397 248}\special{pa 401 240}\special{pa 401 230}\special{pa 396 222}\special{sh 1}\special{fp}%
-\special{pa 1187 -333}\special{pa 1179 -338}\special{pa 1170 -338}\special{pa 1161 -334}%
-\special{pa 1155 -327}\special{pa 1154 -318}\special{pa 1156 -309}\special{pa 1163 -302}%
-\special{pa 1172 -299}\special{pa 1181 -301}\special{pa 1189 -307}\special{pa 1193 -315}%
-\special{pa 1192 -325}\special{pa 1187 -333}\special{sh 1}\special{fp}%
-\special{pa -1415 -14}\special{pa -1423 -19}\special{pa -1433 -19}\special{pa -1441 -15}%
-\special{pa -1447 -8}\special{pa -1449 1}\special{pa -1446 10}\special{pa -1439 17}%
-\special{pa -1430 20}\special{pa -1421 18}\special{pa -1414 12}\special{pa -1410 4}%
-\special{pa -1410 -6}\special{pa -1415 -14}\special{sh 1}\special{fp}%
-\special{pa -1333 -427}\special{pa -1341 -432}\special{pa -1350 -433}\special{pa -1359 -429}%
-\special{pa -1364 -421}\special{pa -1366 -412}\special{pa -1363 -403}\special{pa -1357 -397}%
-\special{pa -1348 -394}\special{pa -1338 -395}\special{pa -1331 -401}\special{pa -1327 -410}%
-\special{pa -1328 -419}\special{pa -1333 -427}\special{sh 1}\special{fp}%
-\special{pa -81 183}\special{pa -89 178}\special{pa -98 177}\special{pa -107 181}%
-\special{pa -112 189}\special{pa -114 198}\special{pa -111 207}\special{pa -105 214}%
-\special{pa -96 216}\special{pa -86 215}\special{pa -79 209}\special{pa -75 200}\special{pa -76 191}%
-\special{pa -81 183}\special{sh 1}\special{fp}%
-\special{pa 1053 -2}\special{pa 1045 -7}\special{pa 1036 -8}\special{pa 1027 -4}\special{pa 1021 4}%
-\special{pa 1020 13}\special{pa 1023 22}\special{pa 1029 29}\special{pa 1038 31}\special{pa 1047 30}%
-\special{pa 1055 24}\special{pa 1059 15}\special{pa 1058 6}\special{pa 1053 -2}\special{sh 1}\special{fp}%
-\special{pa -699 -301}\special{pa -707 -306}\special{pa -716 -307}\special{pa -725 -303}%
-\special{pa -731 -295}\special{pa -732 -286}\special{pa -729 -277}\special{pa -723 -271}%
-\special{pa -714 -268}\special{pa -705 -269}\special{pa -697 -275}\special{pa -693 -284}%
-\special{pa -694 -293}\special{pa -699 -301}\special{sh 0}\special{fp}%
-\special{pa 868 262}\special{pa 860 257}\special{pa 851 256}\special{pa 842 260}\special{pa 836 268}%
-\special{pa 835 277}\special{pa 837 286}\special{pa 844 292}\special{pa 853 295}\special{pa 862 294}%
-\special{pa 870 288}\special{pa 874 279}\special{pa 873 270}\special{pa 868 262}\special{sh 0}\special{fp}%
-\settowidth{\Width}{A}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{A}\settodepth{\Depth}{A}\setlength{\Height}{-\Height}%
-\put(-3.7400,-0.5900){\hspace*{\Width}\raisebox{\Height}{A}}%
-%
-%
-\settowidth{\Width}{B}\setlength{\Width}{-1\Width}%
-\settoheight{\Height}{B}\settodepth{\Depth}{B}\setlength{\Height}{\Depth}%
-\put(-2.7100,1.0400){\hspace*{\Width}\raisebox{\Height}{B}}%
-%
-%
-\settowidth{\Width}{C}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{C}\settodepth{\Depth}{C}\setlength{\Height}{-\Height}%
-\put(0.9700,-0.7500){\hspace*{\Width}\raisebox{\Height}{C}}%
-%
-%
-\settowidth{\Width}{D}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{D}\settodepth{\Depth}{D}\setlength{\Height}{\Depth}%
-\put(2.9800,0.9600){\hspace*{\Width}\raisebox{\Height}{D}}%
-%
-%
-\settowidth{\Width}{C1p}\setlength{\Width}{-1\Width}%
-\settoheight{\Height}{C1p}\settodepth{\Depth}{C1p}\setlength{\Height}{\Depth}%
-\put(-3.7800,0.1500){\hspace*{\Width}\raisebox{\Height}{C1p}}%
-%
-%
-\settowidth{\Width}{C1q}\setlength{\Width}{-1\Width}%
-\settoheight{\Height}{C1q}\settodepth{\Depth}{C1q}\setlength{\Height}{\Depth}%
-\put(-3.5700,1.2000){\hspace*{\Width}\raisebox{\Height}{C1q}}%
-%
-%
-\settowidth{\Width}{C2p}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{C2p}\settodepth{\Depth}{C2p}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(-1.6600,0.7300){\hspace*{\Width}\raisebox{\Height}{C2p}}%
-%
-%
-\settowidth{\Width}{C2q}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{C2q}\settodepth{\Depth}{C2q}\setlength{\Height}{-\Height}%
-\put(-0.2400,-0.6500){\hspace*{\Width}\raisebox{\Height}{C2q}}%
-%
-%
-\settowidth{\Width}{C3p}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{C3p}\settodepth{\Depth}{C3p}\setlength{\Height}{-\Height}%
-\put(2.1700,-0.8500){\hspace*{\Width}\raisebox{\Height}{C3p}}%
-%
-%
-\settowidth{\Width}{C3q}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{C3q}\settodepth{\Depth}{C3q}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(2.7900,-0.0300){\hspace*{\Width}\raisebox{\Height}{C3q}}%
-%
-%
-\end{picture}}% \ No newline at end of file
diff --git a/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/circledata1.tex b/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/circledata1.tex
deleted file mode 100644
index 769c645a..00000000
--- a/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/circledata1.tex
+++ /dev/null
@@ -1,76 +0,0 @@
-%%% test.tex 2014-10-18 10:24
-%%% test.sce 2014-10-18 10:19
-{\unitlength=1cm%
-\begin{picture}%
-( 10.00000, 4.00000)( -3.00000, -1.00000)%
-\special{pn 8}%
-%
-\special{pn 16}%
-\special{pa 0 -394}\special{pa -3 -443}\special{pa -12 -492}\special{pa -28 -539}%
-\special{pa -49 -583}\special{pa -75 -625}\special{pa -107 -663}\special{pa -143 -697}%
-\special{pa -183 -726}\special{pa -226 -750}\special{pa -272 -768}\special{pa -320 -780}%
-\special{pa -369 -787}\special{pa -418 -787}\special{pa -467 -780}\special{pa -515 -768}%
-\special{pa -561 -750}\special{pa -605 -726}\special{pa -645 -697}\special{pa -681 -663}%
-\special{pa -712 -625}\special{pa -739 -583}\special{pa -760 -539}\special{pa -775 -492}%
-\special{pa -784 -443}\special{pa -787 -394}\special{pa -784 -344}\special{pa -775 -296}%
-\special{pa -760 -249}\special{pa -739 -204}\special{pa -712 -162}\special{pa -681 -124}%
-\special{pa -645 -90}\special{pa -605 -61}\special{pa -561 -37}\special{pa -515 -19}%
-\special{pa -467 -7}\special{pa -418 -1}\special{pa -369 -1}\special{pa -320 -7}\special{pa -272 -19}%
-\special{pa -226 -37}\special{pa -183 -61}\special{pa -143 -90}\special{pa -107 -124}%
-\special{pa -75 -162}\special{pa -49 -204}\special{pa -28 -249}\special{pa -12 -296}%
-\special{pa -3 -344}\special{pa 0 -394}%
-\special{fp}%
-\special{pn 8}%
-\special{pa 1181 -394}\special{pa 1179 -432}\special{fp}\special{pa 1173 -470}\special{pa 1169 -492}\special{pa 1163 -508}\special{fp}%
-\special{pa 1151 -544}\special{pa 1134 -579}\special{fp}\special{pa 1114 -612}\special{pa 1106 -625}\special{pa 1091 -643}\special{fp}%
-\special{pa 1065 -672}\special{pa 1038 -697}\special{pa 1037 -698}\special{fp}\special{pa 1006 -721}\special{pa 998 -726}\special{pa 973 -740}\special{fp}%
-\special{pa 938 -757}\special{pa 909 -768}\special{pa 902 -770}\special{fp}\special{pa 864 -780}\special{pa 861 -780}\special{pa 826 -785}\special{fp}%
-\special{pa 787 -787}\special{pa 763 -787}\special{pa 749 -785}\special{fp}\special{pa 711 -780}\special{pa 673 -770}\special{fp}%
-\special{pa 637 -757}\special{pa 620 -750}\special{pa 602 -740}\special{fp}\special{pa 569 -721}\special{pa 538 -698}\special{fp}%
-\special{pa 509 -672}\special{pa 500 -663}\special{pa 484 -643}\special{fp}\special{pa 461 -612}\special{pa 442 -583}\special{pa 440 -579}\special{fp}%
-\special{pa 424 -544}\special{pa 421 -539}\special{pa 411 -508}\special{fp}\special{pa 402 -470}\special{pa 397 -443}\special{pa 396 -432}\special{fp}%
-\special{pa 394 -394}\special{pa 396 -355}\special{fp}\special{pa 402 -317}\special{pa 406 -296}\special{pa 411 -280}\special{fp}%
-\special{pa 424 -243}\special{pa 440 -208}\special{fp}\special{pa 461 -175}\special{pa 469 -162}\special{pa 484 -144}\special{fp}%
-\special{pa 509 -116}\special{pa 536 -90}\special{pa 538 -89}\special{fp}\special{pa 569 -67}\special{pa 576 -61}\special{pa 602 -47}\special{fp}%
-\special{pa 637 -31}\special{pa 666 -19}\special{pa 673 -17}\special{fp}\special{pa 711 -8}\special{pa 714 -7}\special{pa 749 -3}\special{fp}%
-\special{pa 787 -1}\special{pa 812 -1}\special{pa 826 -3}\special{fp}\special{pa 864 -8}\special{pa 902 -17}\special{fp}%
-\special{pa 938 -31}\special{pa 955 -37}\special{pa 973 -47}\special{fp}\special{pa 1006 -67}\special{pa 1037 -89}\special{fp}%
-\special{pa 1065 -116}\special{pa 1074 -124}\special{pa 1091 -144}\special{fp}\special{pa 1114 -175}\special{pa 1132 -204}\special{pa 1134 -208}\special{fp}%
-\special{pa 1151 -243}\special{pa 1153 -249}\special{pa 1163 -280}\special{fp}\special{pa 1173 -317}\special{pa 1178 -344}\special{pa 1179 -355}\special{fp}%
-%
-%
-\special{pn 8}%
-\special{pa 2362 -390}\special{pa 2362 -398}\special{fp}\special{pa 2360 -429}\special{pa 2359 -437}\special{fp}%
-\special{pa 2354 -468}\special{pa 2353 -475}\special{fp}\special{pa 2345 -506}\special{pa 2343 -513}\special{fp}%
-\special{pa 2332 -543}\special{pa 2329 -550}\special{fp}\special{pa 2316 -578}\special{pa 2312 -585}\special{fp}%
-\special{pa 2296 -612}\special{pa 2291 -618}\special{fp}\special{pa 2272 -643}\special{pa 2267 -649}\special{fp}%
-\special{pa 2246 -672}\special{pa 2240 -678}\special{fp}\special{pa 2217 -699}\special{pa 2211 -704}\special{fp}%
-\special{pa 2185 -722}\special{pa 2179 -726}\special{fp}\special{pa 2151 -742}\special{pa 2144 -745}\special{fp}%
-\special{pa 2116 -758}\special{pa 2108 -761}\special{fp}\special{pa 2079 -771}\special{pa 2071 -773}\special{fp}%
-\special{pa 2041 -780}\special{pa 2033 -782}\special{fp}\special{pa 2002 -786}\special{pa 1994 -786}\special{fp}%
-\special{pa 1963 -787}\special{pa 1955 -786}\special{fp}\special{pa 1924 -784}\special{pa 1916 -783}\special{fp}%
-\special{pa 1885 -778}\special{pa 1877 -776}\special{fp}\special{pa 1847 -768}\special{pa 1839 -765}\special{fp}%
-\special{pa 1810 -754}\special{pa 1803 -751}\special{fp}\special{pa 1775 -736}\special{pa 1769 -732}\special{fp}%
-\special{pa 1742 -715}\special{pa 1736 -710}\special{fp}\special{pa 1711 -691}\special{pa 1705 -686}\special{fp}%
-\special{pa 1683 -664}\special{pa 1677 -658}\special{fp}\special{pa 1657 -634}\special{pa 1653 -628}\special{fp}%
-\special{pa 1635 -602}\special{pa 1631 -595}\special{fp}\special{pa 1616 -568}\special{pa 1613 -561}\special{fp}%
-\special{pa 1600 -532}\special{pa 1598 -524}\special{fp}\special{pa 1588 -495}\special{pa 1586 -487}\special{fp}%
-\special{pa 1580 -456}\special{pa 1579 -448}\special{fp}\special{pa 1576 -417}\special{pa 1576 -409}\special{fp}%
-\special{pa 1576 -378}\special{pa 1576 -370}\special{fp}\special{pa 1579 -339}\special{pa 1580 -331}\special{fp}%
-\special{pa 1586 -300}\special{pa 1588 -293}\special{fp}\special{pa 1598 -263}\special{pa 1600 -255}\special{fp}%
-\special{pa 1613 -227}\special{pa 1616 -220}\special{fp}\special{pa 1631 -192}\special{pa 1635 -185}\special{fp}%
-\special{pa 1653 -159}\special{pa 1657 -153}\special{fp}\special{pa 1677 -129}\special{pa 1683 -123}\special{fp}%
-\special{pa 1705 -102}\special{pa 1711 -96}\special{fp}\special{pa 1736 -77}\special{pa 1742 -72}\special{fp}%
-\special{pa 1769 -55}\special{pa 1775 -51}\special{fp}\special{pa 1803 -37}\special{pa 1810 -33}\special{fp}%
-\special{pa 1839 -22}\special{pa 1847 -19}\special{fp}\special{pa 1877 -11}\special{pa 1885 -10}\special{fp}%
-\special{pa 1916 -4}\special{pa 1924 -3}\special{fp}\special{pa 1955 -1}\special{pa 1963 -1}\special{fp}%
-\special{pa 1994 -1}\special{pa 2002 -2}\special{fp}\special{pa 2033 -6}\special{pa 2041 -7}\special{fp}%
-\special{pa 2071 -14}\special{pa 2079 -16}\special{fp}\special{pa 2108 -26}\special{pa 2116 -29}\special{fp}%
-\special{pa 2144 -42}\special{pa 2151 -46}\special{fp}\special{pa 2179 -61}\special{pa 2185 -65}\special{fp}%
-\special{pa 2211 -84}\special{pa 2217 -89}\special{fp}\special{pa 2240 -110}\special{pa 2246 -115}\special{fp}%
-\special{pa 2267 -138}\special{pa 2272 -144}\special{fp}\special{pa 2291 -169}\special{pa 2296 -176}\special{fp}%
-\special{pa 2312 -202}\special{pa 2316 -209}\special{fp}\special{pa 2329 -237}\special{pa 2332 -245}\special{fp}%
-\special{pa 2343 -274}\special{pa 2345 -282}\special{fp}\special{pa 2353 -312}\special{pa 2354 -320}\special{fp}%
-\special{pa 2359 -351}\special{pa 2360 -359}\special{fp}\special{pa 2362 -390}\special{pa 2362 -398}\special{fp}%
-\special{pn 8}%
-\end{picture}}% \ No newline at end of file
diff --git a/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/circledata2.tex b/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/circledata2.tex
deleted file mode 100644
index 082e405e..00000000
--- a/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/circledata2.tex
+++ /dev/null
@@ -1,43 +0,0 @@
-%%% test.tex 2014-10-15 18:35
-%%% test.sce 2014-10-15 18:35
-{\unitlength=1cm%
-\begin{picture}%
-( 4.00000, 4.00000)( -1.00000, -1.00000)%
-\special{pn 8}%
-%
-\special{pa 787 0}\special{pa 787 -16}\special{pa 787 -33}\special{pa 786 -49}\special{pa 785 -66}%
-\special{pa 783 -82}\special{pa 781 -99}\special{pa 779 -115}\special{pa 776 -131}%
-\special{pa 773 -148}\special{pa 770 -164}\special{pa 767 -180}\special{pa 763 -196}%
-\special{pa 758 -212}\special{pa 754 -228}\special{pa 749 -243}\special{pa 744 -259}%
-\special{pa 738 -274}\special{pa 732 -290}\special{pa 726 -305}\special{pa 719 -320}%
-\special{pa 712 -335}\special{pa 705 -350}\special{pa 698 -365}\special{pa 690 -379}%
-\special{pa 682 -394}\special{pa 674 -408}\special{pa 665 -422}\special{pa 656 -436}%
-\special{pa 647 -449}\special{pa 637 -463}\special{pa 627 -476}\special{pa 617 -489}%
-\special{pa 607 -502}\special{pa 596 -515}\special{pa 585 -527}\special{pa 574 -539}%
-\special{pa 563 -551}\special{pa 551 -563}\special{pa 539 -574}\special{pa 527 -585}%
-\special{pa 515 -596}\special{pa 502 -607}\special{pa 489 -617}\special{pa 476 -627}%
-\special{pa 463 -637}\special{pa 449 -647}\special{pa 436 -656}\special{pa 422 -665}%
-\special{pa 408 -674}\special{pa 394 -682}%
-\special{fp}%
-\special{pa 787 0}\special{pa 0 0}\special{pa 394 -681}%
-\special{fp}%
-\special{pa -394 0}\special{pa 1181 0}%
-\special{fp}%
-\special{pa 0 394}\special{pa 0 -1181}%
-\special{fp}%
-\settowidth{\Width}{$x$}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{$x$}\settodepth{\Depth}{$x$}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(3.0500,0.0000){\hspace*{\Width}\raisebox{\Height}{$x$}}%
-%
-%
-\settowidth{\Width}{$y$}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{$y$}\settodepth{\Depth}{$y$}\setlength{\Height}{\Depth}%
-\put(0.0000,3.0500){\hspace*{\Width}\raisebox{\Height}{$y$}}%
-%
-%
-\settowidth{\Width}{O}\setlength{\Width}{-1\Width}%
-\settoheight{\Height}{O}\settodepth{\Depth}{O}\setlength{\Height}{-\Height}%
-\put(-0.0500,-0.0500){\hspace*{\Width}\raisebox{\Height}{O}}%
-%
-%
-\end{picture}}% \ No newline at end of file
diff --git a/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/circledata3.tex b/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/circledata3.tex
deleted file mode 100644
index 187f612f..00000000
--- a/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/circledata3.tex
+++ /dev/null
@@ -1,43 +0,0 @@
-%%% test.tex 2014-10-15 19:25
-%%% test.sce 2014-10-15 19:25
-{\unitlength=1cm%
-\begin{picture}%
-( 4.00000, 4.00000)( -1.00000, -1.00000)%
-\special{pn 8}%
-%
-\special{pa 982 -566}\special{pa 976 -581}\special{pa 970 -595}\special{pa 963 -610}%
-\special{pa 956 -624}\special{pa 949 -638}\special{pa 941 -652}\special{pa 933 -666}%
-\special{pa 925 -680}\special{pa 917 -694}\special{pa 908 -707}\special{pa 899 -720}%
-\special{pa 890 -733}\special{pa 880 -746}\special{pa 870 -758}\special{pa 860 -771}%
-\special{pa 850 -783}\special{pa 839 -795}\special{pa 828 -807}\special{pa 817 -818}%
-\special{pa 806 -829}\special{pa 794 -840}\special{pa 782 -851}\special{pa 770 -862}%
-\special{pa 758 -872}\special{pa 746 -882}\special{pa 733 -892}\special{pa 720 -901}%
-\special{pa 707 -910}\special{pa 694 -919}\special{pa 680 -928}\special{pa 667 -936}%
-\special{pa 653 -944}\special{pa 639 -952}\special{pa 625 -960}\special{pa 611 -967}%
-\special{pa 596 -974}\special{pa 582 -980}\special{pa 567 -987}\special{pa 552 -993}%
-\special{pa 537 -998}\special{pa 522 -1004}\special{pa 507 -1009}\special{pa 492 -1013}%
-\special{pa 476 -1018}\special{pa 461 -1022}\special{pa 445 -1025}\special{pa 430 -1029}%
-\special{pa 414 -1032}\special{pa 398 -1035}\special{pa 382 -1037}%
-\special{fp}%
-\special{pa 980 -571}\special{pa 276 -283}\special{pa 382 -1039}%
-\special{fp}%
-\special{pa -394 0}\special{pa 1181 0}%
-\special{fp}%
-\special{pa 0 394}\special{pa 0 -1181}%
-\special{fp}%
-\settowidth{\Width}{$x$}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{$x$}\settodepth{\Depth}{$x$}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(3.0500,0.0000){\hspace*{\Width}\raisebox{\Height}{$x$}}%
-%
-%
-\settowidth{\Width}{$y$}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{$y$}\settodepth{\Depth}{$y$}\setlength{\Height}{\Depth}%
-\put(0.0000,3.0500){\hspace*{\Width}\raisebox{\Height}{$y$}}%
-%
-%
-\settowidth{\Width}{O}\setlength{\Width}{-1\Width}%
-\settoheight{\Height}{O}\settodepth{\Depth}{O}\setlength{\Height}{-\Height}%
-\put(-0.0500,-0.0500){\hspace*{\Width}\raisebox{\Height}{O}}%
-%
-%
-\end{picture}}% \ No newline at end of file
diff --git a/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/circledata4.tex b/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/circledata4.tex
deleted file mode 100644
index 0b3b2007..00000000
--- a/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/circledata4.tex
+++ /dev/null
@@ -1,41 +0,0 @@
-%%% test.tex 2014-10-18 19:48
-%%% test.sce 2014-10-18 19:48
-{\unitlength=1cm%
-\begin{picture}%
-( 5.00000, 5.00000)( -6.50000, -1.50000)%
-\special{pn 8}%
-%
-\special{pa -1566 -402}\special{pa -1573 -405}\special{pa -1580 -404}\special{pa -1585 -399}%
-\special{pa -1586 -392}\special{pa -1583 -385}\special{pa -1577 -382}\special{pa -1569 -383}%
-\special{pa -1564 -388}\special{pa -1563 -396}\special{pa -1566 -402}\special{sh 1}\special{fp}%
-\special{pa -779 -402}\special{pa -786 -405}\special{pa -793 -404}\special{pa -798 -399}%
-\special{pa -799 -392}\special{pa -796 -385}\special{pa -789 -382}\special{pa -782 -383}%
-\special{pa -777 -388}\special{pa -776 -396}\special{pa -779 -402}\special{sh 1}\special{fp}%
-\settowidth{\Width}{A}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{A}\settodepth{\Depth}{A}\setlength{\Height}{\Depth}%
-\put(-3.9500,1.0500){\hspace*{\Width}\raisebox{\Height}{A}}%
-%
-%
-\settowidth{\Width}{B}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{B}\settodepth{\Depth}{B}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(-1.9500,1.0000){\hspace*{\Width}\raisebox{\Height}{B}}%
-%
-%
-\special{pa -787 -394}\special{pa -794 -492}\special{pa -812 -590}\special{pa -843 -684}%
-\special{pa -885 -773}\special{pa -938 -857}\special{pa -1001 -933}\special{pa -1073 -1000}%
-\special{pa -1153 -1059}\special{pa -1240 -1106}\special{pa -1331 -1143}\special{pa -1427 -1167}%
-\special{pa -1525 -1180}\special{pa -1624 -1180}\special{pa -1722 -1167}\special{pa -1818 -1143}%
-\special{pa -1910 -1106}\special{pa -1997 -1059}\special{pa -2077 -1000}\special{pa -2149 -933}%
-\special{pa -2212 -857}\special{pa -2265 -773}\special{pa -2307 -684}\special{pa -2337 -590}%
-\special{pa -2356 -492}\special{pa -2362 -394}\special{pa -2356 -295}\special{pa -2337 -198}%
-\special{pa -2307 -104}\special{pa -2265 -14}\special{pa -2212 69}\special{pa -2149 145}%
-\special{pa -2077 213}\special{pa -1997 271}\special{pa -1910 319}\special{pa -1818 355}%
-\special{pa -1722 380}\special{pa -1624 392}\special{pa -1525 392}\special{pa -1427 380}%
-\special{pa -1331 355}\special{pa -1240 319}\special{pa -1153 271}\special{pa -1073 213}%
-\special{pa -1001 145}\special{pa -938 69}\special{pa -885 -14}\special{pa -843 -104}%
-\special{pa -812 -198}\special{pa -794 -295}\special{pa -787 -394}%
-\special{fp}%
-\special{pa -787 -394}\special{pa -1181 -1076}\special{pa -1969 -1076}\special{pa -2362 -394}%
-\special{pa -1969 288}\special{pa -1181 288}\special{pa -787 -394}%
-\special{fp}%
-\end{picture}}% \ No newline at end of file
diff --git a/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/circledata5.tex b/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/circledata5.tex
deleted file mode 100644
index 86a45a73..00000000
--- a/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/circledata5.tex
+++ /dev/null
@@ -1,27 +0,0 @@
-%%% test.tex 2014-10-18 19:7
-%%% test.sce 2014-10-18 19:7
-{\unitlength=1cm%
-\begin{picture}%
-( 5.00000, 5.00000)( -6.50000, -1.50000)%
-\special{pn 8}%
-%
-\special{pa -1566 -402}\special{pa -1573 -405}\special{pa -1580 -404}\special{pa -1585 -399}%
-\special{pa -1586 -392}\special{pa -1583 -385}\special{pa -1577 -382}\special{pa -1569 -383}%
-\special{pa -1564 -388}\special{pa -1563 -396}\special{pa -1566 -402}\special{sh 1}\special{fp}%
-\special{pa -779 -402}\special{pa -786 -405}\special{pa -793 -404}\special{pa -798 -399}%
-\special{pa -799 -392}\special{pa -796 -385}\special{pa -789 -382}\special{pa -782 -383}%
-\special{pa -777 -388}\special{pa -776 -396}\special{pa -779 -402}\special{sh 1}\special{fp}%
-\settowidth{\Width}{A}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{A}\settodepth{\Depth}{A}\setlength{\Height}{\Depth}%
-\put(-3.9500,1.0500){\hspace*{\Width}\raisebox{\Height}{A}}%
-%
-%
-\settowidth{\Width}{B}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{B}\settodepth{\Depth}{B}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(-1.9500,1.0000){\hspace*{\Width}\raisebox{\Height}{B}}%
-%
-%
-\special{pa -893 -787}\special{pa -1575 -1181}\special{pa -2257 -787}\special{pa -2257 0}%
-\special{pa -1575 394}\special{pa -893 0}\special{pa -893 -787}%
-\special{fp}%
-\end{picture}}% \ No newline at end of file
diff --git a/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/colortable1-34.tex b/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/colortable1-34.tex
deleted file mode 100644
index 0138da07..00000000
--- a/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/colortable1-34.tex
+++ /dev/null
@@ -1,1936 +0,0 @@
-%%% colortable1-34.tex 2015-2-8 17:25
-%%% colortable1-34.sce 2015-2-8 17:25
-{\unitlength=1cm%
-\begin{picture}%
-( 15.00000, 17.50000)( -0.00000, -0.00000)%
-\special{pn 8}%
-%
-\color[cmyk]{0.15,0,0.69,0}%
-\settowidth{\Width}{ã‚ã„ã†ãˆãŠ}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{ã‚ã„ã†ãˆãŠ}\settodepth{\Depth}{ã‚ã„ã†ãˆãŠ}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(10.7500,16.7500){\hspace*{\Width}\raisebox{\Height}{ã‚ã„ã†ãˆãŠ}}%
-%
-%
-\special{pa 4626 -6693}\special{pa 4626 -6496}\special{pa 5906 -6496}\special{pa 5906 -6693}%
-\special{pa 4626 -6693}\special{sh 1}\special{ip}%
-\color[cmyk]{0,0,1,0}%
-\settowidth{\Width}{ã‚ã„ã†ãˆãŠ}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{ã‚ã„ã†ãˆãŠ}\settodepth{\Depth}{ã‚ã„ã†ãˆãŠ}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(10.7500,16.2500){\hspace*{\Width}\raisebox{\Height}{ã‚ã„ã†ãˆãŠ}}%
-%
-%
-\special{pa 4626 -6496}\special{pa 4626 -6299}\special{pa 5906 -6299}\special{pa 5906 -6496}%
-\special{pa 4626 -6496}\special{sh 1}\special{ip}%
-\color[cmyk]{0,0.1,0.84,0}%
-\settowidth{\Width}{ã‚ã„ã†ãˆãŠ}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{ã‚ã„ã†ãˆãŠ}\settodepth{\Depth}{ã‚ã„ã†ãˆãŠ}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(10.7500,15.7500){\hspace*{\Width}\raisebox{\Height}{ã‚ã„ã†ãˆãŠ}}%
-%
-%
-\special{pa 4626 -6299}\special{pa 4626 -6102}\special{pa 5906 -6102}\special{pa 5906 -6299}%
-\special{pa 4626 -6299}\special{sh 1}\special{ip}%
-\color[cmyk]{0,0.29,0.84,0}%
-\settowidth{\Width}{ã‚ã„ã†ãˆãŠ}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{ã‚ã„ã†ãˆãŠ}\settodepth{\Depth}{ã‚ã„ã†ãˆãŠ}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(10.7500,15.2500){\hspace*{\Width}\raisebox{\Height}{ã‚ã„ã†ãˆãŠ}}%
-%
-%
-\special{pa 4626 -6102}\special{pa 4626 -5906}\special{pa 5906 -5906}\special{pa 5906 -6102}%
-\special{pa 4626 -6102}\special{sh 1}\special{ip}%
-\color[cmyk]{0,0.32,0.52,0}%
-\settowidth{\Width}{ã‚ã„ã†ãˆãŠ}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{ã‚ã„ã†ãˆãŠ}\settodepth{\Depth}{ã‚ã„ã†ãˆãŠ}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(10.7500,14.7500){\hspace*{\Width}\raisebox{\Height}{ã‚ã„ã†ãˆãŠ}}%
-%
-%
-\special{pa 4626 -5906}\special{pa 4626 -5709}\special{pa 5906 -5709}\special{pa 5906 -5906}%
-\special{pa 4626 -5906}\special{sh 1}\special{ip}%
-\color[cmyk]{0,0.5,0.7,0}%
-\settowidth{\Width}{ã‚ã„ã†ãˆãŠ}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{ã‚ã„ã†ãˆãŠ}\settodepth{\Depth}{ã‚ã„ã†ãˆãŠ}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(10.7500,14.2500){\hspace*{\Width}\raisebox{\Height}{ã‚ã„ã†ãˆãŠ}}%
-%
-%
-\special{pa 4626 -5709}\special{pa 4626 -5512}\special{pa 5906 -5512}\special{pa 5906 -5709}%
-\special{pa 4626 -5709}\special{sh 1}\special{ip}%
-\color[cmyk]{0,0.46,0.5,0}%
-\settowidth{\Width}{ã‚ã„ã†ãˆãŠ}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{ã‚ã„ã†ãˆãŠ}\settodepth{\Depth}{ã‚ã„ã†ãˆãŠ}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(10.7500,13.7500){\hspace*{\Width}\raisebox{\Height}{ã‚ã„ã†ãˆãŠ}}%
-%
-%
-\special{pa 4626 -5512}\special{pa 4626 -5315}\special{pa 5906 -5315}\special{pa 5906 -5512}%
-\special{pa 4626 -5512}\special{sh 1}\special{ip}%
-\color[cmyk]{0,0.42,1,0}%
-\settowidth{\Width}{ã‚ã„ã†ãˆãŠ}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{ã‚ã„ã†ãˆãŠ}\settodepth{\Depth}{ã‚ã„ã†ãˆãŠ}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(10.7500,13.2500){\hspace*{\Width}\raisebox{\Height}{ã‚ã„ã†ãˆãŠ}}%
-%
-%
-\special{pa 4626 -5315}\special{pa 4626 -5118}\special{pa 5906 -5118}\special{pa 5906 -5315}%
-\special{pa 4626 -5315}\special{sh 1}\special{ip}%
-\color[cmyk]{0,0.61,0.87,0}%
-\settowidth{\Width}{ã‚ã„ã†ãˆãŠ}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{ã‚ã„ã†ãˆãŠ}\settodepth{\Depth}{ã‚ã„ã†ãˆãŠ}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(10.7500,12.7500){\hspace*{\Width}\raisebox{\Height}{ã‚ã„ã†ãˆãŠ}}%
-%
-%
-\special{pa 4626 -5118}\special{pa 4626 -4921}\special{pa 5906 -4921}\special{pa 5906 -5118}%
-\special{pa 4626 -5118}\special{sh 1}\special{ip}%
-\color[cmyk]{0,0.51,1,0}%
-\settowidth{\Width}{ã‚ã„ã†ãˆãŠ}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{ã‚ã„ã†ãˆãŠ}\settodepth{\Depth}{ã‚ã„ã†ãˆãŠ}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(10.7500,12.2500){\hspace*{\Width}\raisebox{\Height}{ã‚ã„ã†ãˆãŠ}}%
-%
-%
-\special{pa 4626 -4921}\special{pa 4626 -4724}\special{pa 5906 -4724}\special{pa 5906 -4921}%
-\special{pa 4626 -4921}\special{sh 1}\special{ip}%
-\color[cmyk]{0,0.75,1,0.24}%
-\settowidth{\Width}{ã‚ã„ã†ãˆãŠ}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{ã‚ã„ã†ãˆãŠ}\settodepth{\Depth}{ã‚ã„ã†ãˆãŠ}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(10.7500,11.7500){\hspace*{\Width}\raisebox{\Height}{ã‚ã„ã†ãˆãŠ}}%
-%
-%
-\special{pa 4626 -4724}\special{pa 4626 -4528}\special{pa 5906 -4528}\special{pa 5906 -4724}%
-\special{pa 4626 -4724}\special{sh 1}\special{ip}%
-\color[cmyk]{0,0.77,0.87,0}%
-\settowidth{\Width}{ã‚ã„ã†ãˆãŠ}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{ã‚ã„ã†ãˆãŠ}\settodepth{\Depth}{ã‚ã„ã†ãˆãŠ}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(10.7500,11.2500){\hspace*{\Width}\raisebox{\Height}{ã‚ã„ã†ãˆãŠ}}%
-%
-%
-\special{pa 4626 -4528}\special{pa 4626 -4331}\special{pa 5906 -4331}\special{pa 5906 -4528}%
-\special{pa 4626 -4528}\special{sh 1}\special{ip}%
-\color[cmyk]{0,0.85,0.87,0.35}%
-\settowidth{\Width}{ã‚ã„ã†ãˆãŠ}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{ã‚ã„ã†ãˆãŠ}\settodepth{\Depth}{ã‚ã„ã†ãˆãŠ}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(10.7500,10.7500){\hspace*{\Width}\raisebox{\Height}{ã‚ã„ã†ãˆãŠ}}%
-%
-%
-\special{pa 4626 -4331}\special{pa 4626 -4134}\special{pa 5906 -4134}\special{pa 5906 -4331}%
-\special{pa 4626 -4331}\special{sh 1}\special{ip}%
-\color[cmyk]{0,0.87,0.68,0.32}%
-\settowidth{\Width}{ã‚ã„ã†ãˆãŠ}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{ã‚ã„ã†ãˆãŠ}\settodepth{\Depth}{ã‚ã„ã†ãˆãŠ}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(10.7500,10.2500){\hspace*{\Width}\raisebox{\Height}{ã‚ã„ã†ãˆãŠ}}%
-%
-%
-\special{pa 4626 -4134}\special{pa 4626 -3937}\special{pa 5906 -3937}\special{pa 5906 -4134}%
-\special{pa 4626 -4134}\special{sh 1}\special{ip}%
-\color[cmyk]{0,0.89,0.94,0.28}%
-\settowidth{\Width}{ã‚ã„ã†ãˆãŠ}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{ã‚ã„ã†ãˆãŠ}\settodepth{\Depth}{ã‚ã„ã†ãˆãŠ}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(10.7500,9.7500){\hspace*{\Width}\raisebox{\Height}{ã‚ã„ã†ãˆãŠ}}%
-%
-%
-\special{pa 4626 -3937}\special{pa 4626 -3740}\special{pa 5906 -3740}\special{pa 5906 -3937}%
-\special{pa 4626 -3937}\special{sh 1}\special{ip}%
-\color[cmyk]{0,1,1,0}%
-\settowidth{\Width}{ã‚ã„ã†ãˆãŠ}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{ã‚ã„ã†ãˆãŠ}\settodepth{\Depth}{ã‚ã„ã†ãˆãŠ}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(10.7500,9.2500){\hspace*{\Width}\raisebox{\Height}{ã‚ã„ã†ãˆãŠ}}%
-%
-%
-\special{pa 4626 -3740}\special{pa 4626 -3543}\special{pa 5906 -3543}\special{pa 5906 -3740}%
-\special{pa 4626 -3740}\special{sh 1}\special{ip}%
-\color[cmyk]{0,1,0.5,0}%
-\settowidth{\Width}{ã‚ã„ã†ãˆãŠ}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{ã‚ã„ã†ãˆãŠ}\settodepth{\Depth}{ã‚ã„ã†ãˆãŠ}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(10.7500,8.7500){\hspace*{\Width}\raisebox{\Height}{ã‚ã„ã†ãˆãŠ}}%
-%
-%
-\special{pa 4626 -3543}\special{pa 4626 -3346}\special{pa 5906 -3346}\special{pa 5906 -3543}%
-\special{pa 4626 -3543}\special{sh 1}\special{ip}%
-\color[cmyk]{0,1,0.13,0}%
-\settowidth{\Width}{ã‚ã„ã†ãˆãŠ}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{ã‚ã„ã†ãˆãŠ}\settodepth{\Depth}{ã‚ã„ã†ãˆãŠ}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(10.7500,8.2500){\hspace*{\Width}\raisebox{\Height}{ã‚ã„ã†ãˆãŠ}}%
-%
-%
-\special{pa 4626 -3346}\special{pa 4626 -3150}\special{pa 5906 -3150}\special{pa 5906 -3346}%
-\special{pa 4626 -3346}\special{sh 1}\special{ip}%
-\color[cmyk]{0,0.96,0.39,0}%
-\settowidth{\Width}{ã‚ã„ã†ãˆãŠ}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{ã‚ã„ã†ãˆãŠ}\settodepth{\Depth}{ã‚ã„ã†ãˆãŠ}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(10.7500,7.7500){\hspace*{\Width}\raisebox{\Height}{ã‚ã„ã†ãˆãŠ}}%
-%
-%
-\special{pa 4626 -3150}\special{pa 4626 -2953}\special{pa 5906 -2953}\special{pa 5906 -3150}%
-\special{pa 4626 -3150}\special{sh 1}\special{ip}%
-\color[cmyk]{0,0.53,0.38,0}%
-\settowidth{\Width}{ã‚ã„ã†ãˆãŠ}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{ã‚ã„ã†ãˆãŠ}\settodepth{\Depth}{ã‚ã„ã†ãˆãŠ}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(10.7500,7.2500){\hspace*{\Width}\raisebox{\Height}{ã‚ã„ã†ãˆãŠ}}%
-%
-%
-\special{pa 4626 -2953}\special{pa 4626 -2756}\special{pa 5906 -2756}\special{pa 5906 -2953}%
-\special{pa 4626 -2953}\special{sh 1}\special{ip}%
-\color[cmyk]{0,0.63,0,0}%
-\settowidth{\Width}{ã‚ã„ã†ãˆãŠ}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{ã‚ã„ã†ãˆãŠ}\settodepth{\Depth}{ã‚ã„ã†ãˆãŠ}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(10.7500,6.7500){\hspace*{\Width}\raisebox{\Height}{ã‚ã„ã†ãˆãŠ}}%
-%
-%
-\special{pa 4626 -2756}\special{pa 4626 -2559}\special{pa 5906 -2559}\special{pa 5906 -2756}%
-\special{pa 4626 -2756}\special{sh 1}\special{ip}%
-\color[cmyk]{0,1,0,0}%
-\settowidth{\Width}{ã‚ã„ã†ãˆãŠ}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{ã‚ã„ã†ãˆãŠ}\settodepth{\Depth}{ã‚ã„ã†ãˆãŠ}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(10.7500,6.2500){\hspace*{\Width}\raisebox{\Height}{ã‚ã„ã†ãˆãŠ}}%
-%
-%
-\special{pa 4626 -2559}\special{pa 4626 -2362}\special{pa 5906 -2362}\special{pa 5906 -2559}%
-\special{pa 4626 -2559}\special{sh 1}\special{ip}%
-\color[cmyk]{0,0.81,0,0}%
-\settowidth{\Width}{ã‚ã„ã†ãˆãŠ}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{ã‚ã„ã†ãˆãŠ}\settodepth{\Depth}{ã‚ã„ã†ãˆãŠ}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(10.7500,5.7500){\hspace*{\Width}\raisebox{\Height}{ã‚ã„ã†ãˆãŠ}}%
-%
-%
-\special{pa 4626 -2362}\special{pa 4626 -2165}\special{pa 5906 -2165}\special{pa 5906 -2362}%
-\special{pa 4626 -2362}\special{sh 1}\special{ip}%
-\color[cmyk]{0,0.82,0,0}%
-\settowidth{\Width}{ã‚ã„ã†ãˆãŠ}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{ã‚ã„ã†ãˆãŠ}\settodepth{\Depth}{ã‚ã„ã†ãˆãŠ}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(10.7500,5.2500){\hspace*{\Width}\raisebox{\Height}{ã‚ã„ã†ãˆãŠ}}%
-%
-%
-\special{pa 4626 -2165}\special{pa 4626 -1969}\special{pa 5906 -1969}\special{pa 5906 -2165}%
-\special{pa 4626 -2165}\special{sh 1}\special{ip}%
-\color[cmyk]{0.34,0.9,0,0.02}%
-\settowidth{\Width}{ã‚ã„ã†ãˆãŠ}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{ã‚ã„ã†ãˆãŠ}\settodepth{\Depth}{ã‚ã„ã†ãˆãŠ}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(10.7500,4.7500){\hspace*{\Width}\raisebox{\Height}{ã‚ã„ã†ãˆãŠ}}%
-%
-%
-\special{pa 4626 -1969}\special{pa 4626 -1772}\special{pa 5906 -1772}\special{pa 5906 -1969}%
-\special{pa 4626 -1969}\special{sh 1}\special{ip}%
-\color[cmyk]{0.07,0.9,0,0.34}%
-\settowidth{\Width}{ã‚ã„ã†ãˆãŠ}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{ã‚ã„ã†ãˆãŠ}\settodepth{\Depth}{ã‚ã„ã†ãˆãŠ}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(10.7500,4.2500){\hspace*{\Width}\raisebox{\Height}{ã‚ã„ã†ãˆãŠ}}%
-%
-%
-\special{pa 4626 -1772}\special{pa 4626 -1575}\special{pa 5906 -1575}\special{pa 5906 -1772}%
-\special{pa 4626 -1772}\special{sh 1}\special{ip}%
-\color[cmyk]{0.47,0.91,0,0.08}%
-\settowidth{\Width}{ã‚ã„ã†ãˆãŠ}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{ã‚ã„ã†ãˆãŠ}\settodepth{\Depth}{ã‚ã„ã†ãˆãŠ}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(10.7500,3.7500){\hspace*{\Width}\raisebox{\Height}{ã‚ã„ã†ãˆãŠ}}%
-%
-%
-\special{pa 4626 -1575}\special{pa 4626 -1378}\special{pa 5906 -1378}\special{pa 5906 -1575}%
-\special{pa 4626 -1575}\special{sh 1}\special{ip}%
-\color[cmyk]{0,0.48,0,0}%
-\settowidth{\Width}{ã‚ã„ã†ãˆãŠ}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{ã‚ã„ã†ãˆãŠ}\settodepth{\Depth}{ã‚ã„ã†ãˆãŠ}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(10.7500,3.2500){\hspace*{\Width}\raisebox{\Height}{ã‚ã„ã†ãˆãŠ}}%
-%
-%
-\special{pa 4626 -1378}\special{pa 4626 -1181}\special{pa 5906 -1181}\special{pa 5906 -1378}%
-\special{pa 4626 -1378}\special{sh 1}\special{ip}%
-\color[cmyk]{0.12,0.59,0,0}%
-\settowidth{\Width}{ã‚ã„ã†ãˆãŠ}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{ã‚ã„ã†ãˆãŠ}\settodepth{\Depth}{ã‚ã„ã†ãˆãŠ}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(10.7500,2.7500){\hspace*{\Width}\raisebox{\Height}{ã‚ã„ã†ãˆãŠ}}%
-%
-%
-\special{pa 4626 -1181}\special{pa 4626 -984}\special{pa 5906 -984}\special{pa 5906 -1181}%
-\special{pa 4626 -1181}\special{sh 1}\special{ip}%
-\color[cmyk]{0.32,0.64,0,0}%
-\settowidth{\Width}{ã‚ã„ã†ãˆãŠ}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{ã‚ã„ã†ãˆãŠ}\settodepth{\Depth}{ã‚ã„ã†ãˆãŠ}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(10.7500,2.2500){\hspace*{\Width}\raisebox{\Height}{ã‚ã„ã†ãˆãŠ}}%
-%
-%
-\special{pa 4626 -984}\special{pa 4626 -787}\special{pa 5906 -787}\special{pa 5906 -984}%
-\special{pa 4626 -984}\special{sh 1}\special{ip}%
-\color[cmyk]{0.4,0.8,0.2,0}%
-\settowidth{\Width}{ã‚ã„ã†ãˆãŠ}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{ã‚ã„ã†ãˆãŠ}\settodepth{\Depth}{ã‚ã„ã†ãˆãŠ}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(10.7500,1.7500){\hspace*{\Width}\raisebox{\Height}{ã‚ã„ã†ãˆãŠ}}%
-%
-%
-\special{pa 4626 -787}\special{pa 4626 -591}\special{pa 5906 -591}\special{pa 5906 -787}%
-\special{pa 4626 -787}\special{sh 1}\special{ip}%
-\color[cmyk]{0.45,0.86,0,0}%
-\settowidth{\Width}{ã‚ã„ã†ãˆãŠ}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{ã‚ã„ã†ãˆãŠ}\settodepth{\Depth}{ã‚ã„ã†ãˆãŠ}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(10.7500,1.2500){\hspace*{\Width}\raisebox{\Height}{ã‚ã„ã†ãˆãŠ}}%
-%
-%
-\special{pa 4626 -591}\special{pa 4626 -394}\special{pa 5906 -394}\special{pa 5906 -591}%
-\special{pa 4626 -591}\special{sh 1}\special{ip}%
-\color[cmyk]{0.5,1,0,0}%
-\settowidth{\Width}{ã‚ã„ã†ãˆãŠ}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{ã‚ã„ã†ãˆãŠ}\settodepth{\Depth}{ã‚ã„ã†ãˆãŠ}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(10.7500,0.7500){\hspace*{\Width}\raisebox{\Height}{ã‚ã„ã†ãˆãŠ}}%
-%
-%
-\special{pa 4626 -394}\special{pa 4626 -197}\special{pa 5906 -197}\special{pa 5906 -394}%
-\special{pa 4626 -394}\special{sh 1}\special{ip}%
-\color[cmyk]{0.79,0.88,0,0}%
-\settowidth{\Width}{ã‚ã„ã†ãˆãŠ}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{ã‚ã„ã†ãˆãŠ}\settodepth{\Depth}{ã‚ã„ã†ãˆãŠ}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(10.7500,0.2500){\hspace*{\Width}\raisebox{\Height}{ã‚ã„ã†ãˆãŠ}}%
-%
-%
-\special{pa 4626 -197}\special{pa 4626 0}\special{pa 5906 0}\special{pa 5906 -197}%
-\special{pa 4626 -197}\special{sh 1}\special{ip}%
-\color[cmyk]{0,0,0,1}%
-\special{pa 0 -6890}\special{pa 1083 -6890}%
-\special{fp}%
-\special{pa 1083 -6890}\special{pa 2461 -6890}%
-\special{fp}%
-\special{pa 2461 -6890}\special{pa 3839 -6890}%
-\special{fp}%
-\special{pa 3839 -6890}\special{pa 4626 -6890}%
-\special{fp}%
-\special{pa 4626 -6890}\special{pa 5906 -6890}%
-\special{fp}%
-\special{pa 0 -6693}\special{pa 1083 -6693}%
-\special{fp}%
-\special{pa 1083 -6693}\special{pa 2461 -6693}%
-\special{fp}%
-\special{pa 2461 -6693}\special{pa 3839 -6693}%
-\special{fp}%
-\special{pa 3839 -6693}\special{pa 4626 -6693}%
-\special{fp}%
-\special{pa 4626 -6693}\special{pa 5906 -6693}%
-\special{fp}%
-\special{pa 0 -6496}\special{pa 1083 -6496}%
-\special{fp}%
-\special{pa 1083 -6496}\special{pa 2461 -6496}%
-\special{fp}%
-\special{pa 2461 -6496}\special{pa 3839 -6496}%
-\special{fp}%
-\special{pa 3839 -6496}\special{pa 4626 -6496}%
-\special{fp}%
-\special{pa 4626 -6496}\special{pa 5906 -6496}%
-\special{fp}%
-\special{pa 0 -6299}\special{pa 1083 -6299}%
-\special{fp}%
-\special{pa 1083 -6299}\special{pa 2461 -6299}%
-\special{fp}%
-\special{pa 2461 -6299}\special{pa 3839 -6299}%
-\special{fp}%
-\special{pa 3839 -6299}\special{pa 4626 -6299}%
-\special{fp}%
-\special{pa 4626 -6299}\special{pa 5906 -6299}%
-\special{fp}%
-\special{pa 0 -6102}\special{pa 1083 -6102}%
-\special{fp}%
-\special{pa 1083 -6102}\special{pa 2461 -6102}%
-\special{fp}%
-\special{pa 2461 -6102}\special{pa 3839 -6102}%
-\special{fp}%
-\special{pa 3839 -6102}\special{pa 4626 -6102}%
-\special{fp}%
-\special{pa 4626 -6102}\special{pa 5906 -6102}%
-\special{fp}%
-\special{pa 0 -5906}\special{pa 1083 -5906}%
-\special{fp}%
-\special{pa 1083 -5906}\special{pa 2461 -5906}%
-\special{fp}%
-\special{pa 2461 -5906}\special{pa 3839 -5906}%
-\special{fp}%
-\special{pa 3839 -5906}\special{pa 4626 -5906}%
-\special{fp}%
-\special{pa 4626 -5906}\special{pa 5906 -5906}%
-\special{fp}%
-\special{pa 0 -5709}\special{pa 1083 -5709}%
-\special{fp}%
-\special{pa 1083 -5709}\special{pa 2461 -5709}%
-\special{fp}%
-\special{pa 2461 -5709}\special{pa 3839 -5709}%
-\special{fp}%
-\special{pa 3839 -5709}\special{pa 4626 -5709}%
-\special{fp}%
-\special{pa 4626 -5709}\special{pa 5906 -5709}%
-\special{fp}%
-\special{pa 0 -5512}\special{pa 1083 -5512}%
-\special{fp}%
-\special{pa 1083 -5512}\special{pa 2461 -5512}%
-\special{fp}%
-\special{pa 2461 -5512}\special{pa 3839 -5512}%
-\special{fp}%
-\special{pa 3839 -5512}\special{pa 4626 -5512}%
-\special{fp}%
-\special{pa 4626 -5512}\special{pa 5906 -5512}%
-\special{fp}%
-\special{pa 0 -5315}\special{pa 1083 -5315}%
-\special{fp}%
-\special{pa 1083 -5315}\special{pa 2461 -5315}%
-\special{fp}%
-\special{pa 2461 -5315}\special{pa 3839 -5315}%
-\special{fp}%
-\special{pa 3839 -5315}\special{pa 4626 -5315}%
-\special{fp}%
-\special{pa 4626 -5315}\special{pa 5906 -5315}%
-\special{fp}%
-\special{pa 0 -5118}\special{pa 1083 -5118}%
-\special{fp}%
-\special{pa 1083 -5118}\special{pa 2461 -5118}%
-\special{fp}%
-\special{pa 2461 -5118}\special{pa 3839 -5118}%
-\special{fp}%
-\special{pa 3839 -5118}\special{pa 4626 -5118}%
-\special{fp}%
-\special{pa 4626 -5118}\special{pa 5906 -5118}%
-\special{fp}%
-\special{pa 0 -4921}\special{pa 1083 -4921}%
-\special{fp}%
-\special{pa 1083 -4921}\special{pa 2461 -4921}%
-\special{fp}%
-\special{pa 2461 -4921}\special{pa 3839 -4921}%
-\special{fp}%
-\special{pa 3839 -4921}\special{pa 4626 -4921}%
-\special{fp}%
-\special{pa 4626 -4921}\special{pa 5906 -4921}%
-\special{fp}%
-\special{pa 0 -4724}\special{pa 1083 -4724}%
-\special{fp}%
-\special{pa 1083 -4724}\special{pa 2461 -4724}%
-\special{fp}%
-\special{pa 2461 -4724}\special{pa 3839 -4724}%
-\special{fp}%
-\special{pa 3839 -4724}\special{pa 4626 -4724}%
-\special{fp}%
-\special{pa 4626 -4724}\special{pa 5906 -4724}%
-\special{fp}%
-\special{pa 0 -4528}\special{pa 1083 -4528}%
-\special{fp}%
-\special{pa 1083 -4528}\special{pa 2461 -4528}%
-\special{fp}%
-\special{pa 2461 -4528}\special{pa 3839 -4528}%
-\special{fp}%
-\special{pa 3839 -4528}\special{pa 4626 -4528}%
-\special{fp}%
-\special{pa 4626 -4528}\special{pa 5906 -4528}%
-\special{fp}%
-\special{pa 0 -4331}\special{pa 1083 -4331}%
-\special{fp}%
-\special{pa 1083 -4331}\special{pa 2461 -4331}%
-\special{fp}%
-\special{pa 2461 -4331}\special{pa 3839 -4331}%
-\special{fp}%
-\special{pa 3839 -4331}\special{pa 4626 -4331}%
-\special{fp}%
-\special{pa 4626 -4331}\special{pa 5906 -4331}%
-\special{fp}%
-\special{pa 0 -4134}\special{pa 1083 -4134}%
-\special{fp}%
-\special{pa 1083 -4134}\special{pa 2461 -4134}%
-\special{fp}%
-\special{pa 2461 -4134}\special{pa 3839 -4134}%
-\special{fp}%
-\special{pa 3839 -4134}\special{pa 4626 -4134}%
-\special{fp}%
-\special{pa 4626 -4134}\special{pa 5906 -4134}%
-\special{fp}%
-\special{pa 0 -3937}\special{pa 1083 -3937}%
-\special{fp}%
-\special{pa 1083 -3937}\special{pa 2461 -3937}%
-\special{fp}%
-\special{pa 2461 -3937}\special{pa 3839 -3937}%
-\special{fp}%
-\special{pa 3839 -3937}\special{pa 4626 -3937}%
-\special{fp}%
-\special{pa 4626 -3937}\special{pa 5906 -3937}%
-\special{fp}%
-\special{pa 0 -3740}\special{pa 1083 -3740}%
-\special{fp}%
-\special{pa 1083 -3740}\special{pa 2461 -3740}%
-\special{fp}%
-\special{pa 2461 -3740}\special{pa 3839 -3740}%
-\special{fp}%
-\special{pa 3839 -3740}\special{pa 4626 -3740}%
-\special{fp}%
-\special{pa 4626 -3740}\special{pa 5906 -3740}%
-\special{fp}%
-\special{pa 0 -3543}\special{pa 1083 -3543}%
-\special{fp}%
-\special{pa 1083 -3543}\special{pa 2461 -3543}%
-\special{fp}%
-\special{pa 2461 -3543}\special{pa 3839 -3543}%
-\special{fp}%
-\special{pa 3839 -3543}\special{pa 4626 -3543}%
-\special{fp}%
-\special{pa 4626 -3543}\special{pa 5906 -3543}%
-\special{fp}%
-\special{pa 0 -3346}\special{pa 1083 -3346}%
-\special{fp}%
-\special{pa 1083 -3346}\special{pa 2461 -3346}%
-\special{fp}%
-\special{pa 2461 -3346}\special{pa 3839 -3346}%
-\special{fp}%
-\special{pa 3839 -3346}\special{pa 4626 -3346}%
-\special{fp}%
-\special{pa 4626 -3346}\special{pa 5906 -3346}%
-\special{fp}%
-\special{pa 0 -3150}\special{pa 1083 -3150}%
-\special{fp}%
-\special{pa 1083 -3150}\special{pa 2461 -3150}%
-\special{fp}%
-\special{pa 2461 -3150}\special{pa 3839 -3150}%
-\special{fp}%
-\special{pa 3839 -3150}\special{pa 4626 -3150}%
-\special{fp}%
-\special{pa 4626 -3150}\special{pa 5906 -3150}%
-\special{fp}%
-\special{pa 0 -2953}\special{pa 1083 -2953}%
-\special{fp}%
-\special{pa 1083 -2953}\special{pa 2461 -2953}%
-\special{fp}%
-\special{pa 2461 -2953}\special{pa 3839 -2953}%
-\special{fp}%
-\special{pa 3839 -2953}\special{pa 4626 -2953}%
-\special{fp}%
-\special{pa 4626 -2953}\special{pa 5906 -2953}%
-\special{fp}%
-\special{pa 0 -2756}\special{pa 1083 -2756}%
-\special{fp}%
-\special{pa 1083 -2756}\special{pa 2461 -2756}%
-\special{fp}%
-\special{pa 2461 -2756}\special{pa 3839 -2756}%
-\special{fp}%
-\special{pa 3839 -2756}\special{pa 4626 -2756}%
-\special{fp}%
-\special{pa 4626 -2756}\special{pa 5906 -2756}%
-\special{fp}%
-\special{pa 0 -2559}\special{pa 1083 -2559}%
-\special{fp}%
-\special{pa 1083 -2559}\special{pa 2461 -2559}%
-\special{fp}%
-\special{pa 2461 -2559}\special{pa 3839 -2559}%
-\special{fp}%
-\special{pa 3839 -2559}\special{pa 4626 -2559}%
-\special{fp}%
-\special{pa 4626 -2559}\special{pa 5906 -2559}%
-\special{fp}%
-\special{pa 0 -2362}\special{pa 1083 -2362}%
-\special{fp}%
-\special{pa 1083 -2362}\special{pa 2461 -2362}%
-\special{fp}%
-\special{pa 2461 -2362}\special{pa 3839 -2362}%
-\special{fp}%
-\special{pa 3839 -2362}\special{pa 4626 -2362}%
-\special{fp}%
-\special{pa 4626 -2362}\special{pa 5906 -2362}%
-\special{fp}%
-\special{pa 0 -2165}\special{pa 1083 -2165}%
-\special{fp}%
-\special{pa 1083 -2165}\special{pa 2461 -2165}%
-\special{fp}%
-\special{pa 2461 -2165}\special{pa 3839 -2165}%
-\special{fp}%
-\special{pa 3839 -2165}\special{pa 4626 -2165}%
-\special{fp}%
-\special{pa 4626 -2165}\special{pa 5906 -2165}%
-\special{fp}%
-\special{pa 0 -1969}\special{pa 1083 -1969}%
-\special{fp}%
-\special{pa 1083 -1969}\special{pa 2461 -1969}%
-\special{fp}%
-\special{pa 2461 -1969}\special{pa 3839 -1969}%
-\special{fp}%
-\special{pa 3839 -1969}\special{pa 4626 -1969}%
-\special{fp}%
-\special{pa 4626 -1969}\special{pa 5906 -1969}%
-\special{fp}%
-\special{pa 0 -1772}\special{pa 1083 -1772}%
-\special{fp}%
-\special{pa 1083 -1772}\special{pa 2461 -1772}%
-\special{fp}%
-\special{pa 2461 -1772}\special{pa 3839 -1772}%
-\special{fp}%
-\special{pa 3839 -1772}\special{pa 4626 -1772}%
-\special{fp}%
-\special{pa 4626 -1772}\special{pa 5906 -1772}%
-\special{fp}%
-\special{pa 0 -1575}\special{pa 1083 -1575}%
-\special{fp}%
-\special{pa 1083 -1575}\special{pa 2461 -1575}%
-\special{fp}%
-\special{pa 2461 -1575}\special{pa 3839 -1575}%
-\special{fp}%
-\special{pa 3839 -1575}\special{pa 4626 -1575}%
-\special{fp}%
-\special{pa 4626 -1575}\special{pa 5906 -1575}%
-\special{fp}%
-\special{pa 0 -1378}\special{pa 1083 -1378}%
-\special{fp}%
-\special{pa 1083 -1378}\special{pa 2461 -1378}%
-\special{fp}%
-\special{pa 2461 -1378}\special{pa 3839 -1378}%
-\special{fp}%
-\special{pa 3839 -1378}\special{pa 4626 -1378}%
-\special{fp}%
-\special{pa 4626 -1378}\special{pa 5906 -1378}%
-\special{fp}%
-\special{pa 0 -1181}\special{pa 1083 -1181}%
-\special{fp}%
-\special{pa 1083 -1181}\special{pa 2461 -1181}%
-\special{fp}%
-\special{pa 2461 -1181}\special{pa 3839 -1181}%
-\special{fp}%
-\special{pa 3839 -1181}\special{pa 4626 -1181}%
-\special{fp}%
-\special{pa 4626 -1181}\special{pa 5906 -1181}%
-\special{fp}%
-\special{pa 0 -984}\special{pa 1083 -984}%
-\special{fp}%
-\special{pa 1083 -984}\special{pa 2461 -984}%
-\special{fp}%
-\special{pa 2461 -984}\special{pa 3839 -984}%
-\special{fp}%
-\special{pa 3839 -984}\special{pa 4626 -984}%
-\special{fp}%
-\special{pa 4626 -984}\special{pa 5906 -984}%
-\special{fp}%
-\special{pa 0 -787}\special{pa 1083 -787}%
-\special{fp}%
-\special{pa 1083 -787}\special{pa 2461 -787}%
-\special{fp}%
-\special{pa 2461 -787}\special{pa 3839 -787}%
-\special{fp}%
-\special{pa 3839 -787}\special{pa 4626 -787}%
-\special{fp}%
-\special{pa 4626 -787}\special{pa 5906 -787}%
-\special{fp}%
-\special{pa 0 -591}\special{pa 1083 -591}%
-\special{fp}%
-\special{pa 1083 -591}\special{pa 2461 -591}%
-\special{fp}%
-\special{pa 2461 -591}\special{pa 3839 -591}%
-\special{fp}%
-\special{pa 3839 -591}\special{pa 4626 -591}%
-\special{fp}%
-\special{pa 4626 -591}\special{pa 5906 -591}%
-\special{fp}%
-\special{pa 0 -394}\special{pa 1083 -394}%
-\special{fp}%
-\special{pa 1083 -394}\special{pa 2461 -394}%
-\special{fp}%
-\special{pa 2461 -394}\special{pa 3839 -394}%
-\special{fp}%
-\special{pa 3839 -394}\special{pa 4626 -394}%
-\special{fp}%
-\special{pa 4626 -394}\special{pa 5906 -394}%
-\special{fp}%
-\special{pa 0 -197}\special{pa 1083 -197}%
-\special{fp}%
-\special{pa 1083 -197}\special{pa 2461 -197}%
-\special{fp}%
-\special{pa 2461 -197}\special{pa 3839 -197}%
-\special{fp}%
-\special{pa 3839 -197}\special{pa 4626 -197}%
-\special{fp}%
-\special{pa 4626 -197}\special{pa 5906 -197}%
-\special{fp}%
-\special{pa 0 0}\special{pa 1083 0}%
-\special{fp}%
-\special{pa 1083 0}\special{pa 2461 0}%
-\special{fp}%
-\special{pa 2461 0}\special{pa 3839 0}%
-\special{fp}%
-\special{pa 3839 0}\special{pa 4626 0}%
-\special{fp}%
-\special{pa 4626 0}\special{pa 5906 0}%
-\special{fp}%
-\special{pa 0 -6890}\special{pa 0 -6693}%
-\special{fp}%
-\special{pa 0 -6693}\special{pa 0 -6496}%
-\special{fp}%
-\special{pa 0 -6496}\special{pa 0 -6299}%
-\special{fp}%
-\special{pa 0 -6299}\special{pa 0 -6102}%
-\special{fp}%
-\special{pa 0 -6102}\special{pa 0 -5906}%
-\special{fp}%
-\special{pa 0 -5906}\special{pa 0 -5709}%
-\special{fp}%
-\special{pa 0 -5709}\special{pa 0 -5512}%
-\special{fp}%
-\special{pa 0 -5512}\special{pa 0 -5315}%
-\special{fp}%
-\special{pa 0 -5315}\special{pa 0 -5118}%
-\special{fp}%
-\special{pa 0 -5118}\special{pa 0 -4921}%
-\special{fp}%
-\special{pa 0 -4921}\special{pa 0 -4724}%
-\special{fp}%
-\special{pa 0 -4724}\special{pa 0 -4528}%
-\special{fp}%
-\special{pa 0 -4528}\special{pa 0 -4331}%
-\special{fp}%
-\special{pa 0 -4331}\special{pa 0 -4134}%
-\special{fp}%
-\special{pa 0 -4134}\special{pa 0 -3937}%
-\special{fp}%
-\special{pa 0 -3937}\special{pa 0 -3740}%
-\special{fp}%
-\special{pa 0 -3740}\special{pa 0 -3543}%
-\special{fp}%
-\special{pa 0 -3543}\special{pa 0 -3346}%
-\special{fp}%
-\special{pa 0 -3346}\special{pa 0 -3150}%
-\special{fp}%
-\special{pa 0 -3150}\special{pa 0 -2953}%
-\special{fp}%
-\special{pa 0 -2953}\special{pa 0 -2756}%
-\special{fp}%
-\special{pa 0 -2756}\special{pa 0 -2559}%
-\special{fp}%
-\special{pa 0 -2559}\special{pa 0 -2362}%
-\special{fp}%
-\special{pa 0 -2362}\special{pa 0 -2165}%
-\special{fp}%
-\special{pa 0 -2165}\special{pa 0 -1969}%
-\special{fp}%
-\special{pa 0 -1969}\special{pa 0 -1772}%
-\special{fp}%
-\special{pa 0 -1772}\special{pa 0 -1575}%
-\special{fp}%
-\special{pa 0 -1575}\special{pa 0 -1378}%
-\special{fp}%
-\special{pa 0 -1378}\special{pa 0 -1181}%
-\special{fp}%
-\special{pa 0 -1181}\special{pa 0 -984}%
-\special{fp}%
-\special{pa 0 -984}\special{pa 0 -787}%
-\special{fp}%
-\special{pa 0 -787}\special{pa 0 -591}%
-\special{fp}%
-\special{pa 0 -591}\special{pa 0 -394}%
-\special{fp}%
-\special{pa 0 -394}\special{pa 0 -197}%
-\special{fp}%
-\special{pa 0 -197}\special{pa 0 0}%
-\special{fp}%
-\special{pa 1083 -6890}\special{pa 1083 -6693}%
-\special{fp}%
-\special{pa 1083 -6693}\special{pa 1083 -6496}%
-\special{fp}%
-\special{pa 1083 -6496}\special{pa 1083 -6299}%
-\special{fp}%
-\special{pa 1083 -6299}\special{pa 1083 -6102}%
-\special{fp}%
-\special{pa 1083 -6102}\special{pa 1083 -5906}%
-\special{fp}%
-\special{pa 1083 -5906}\special{pa 1083 -5709}%
-\special{fp}%
-\special{pa 1083 -5709}\special{pa 1083 -5512}%
-\special{fp}%
-\special{pa 1083 -5512}\special{pa 1083 -5315}%
-\special{fp}%
-\special{pa 1083 -5315}\special{pa 1083 -5118}%
-\special{fp}%
-\special{pa 1083 -5118}\special{pa 1083 -4921}%
-\special{fp}%
-\special{pa 1083 -4921}\special{pa 1083 -4724}%
-\special{fp}%
-\special{pa 1083 -4724}\special{pa 1083 -4528}%
-\special{fp}%
-\special{pa 1083 -4528}\special{pa 1083 -4331}%
-\special{fp}%
-\special{pa 1083 -4331}\special{pa 1083 -4134}%
-\special{fp}%
-\special{pa 1083 -4134}\special{pa 1083 -3937}%
-\special{fp}%
-\special{pa 1083 -3937}\special{pa 1083 -3740}%
-\special{fp}%
-\special{pa 1083 -3740}\special{pa 1083 -3543}%
-\special{fp}%
-\special{pa 1083 -3543}\special{pa 1083 -3346}%
-\special{fp}%
-\special{pa 1083 -3346}\special{pa 1083 -3150}%
-\special{fp}%
-\special{pa 1083 -3150}\special{pa 1083 -2953}%
-\special{fp}%
-\special{pa 1083 -2953}\special{pa 1083 -2756}%
-\special{fp}%
-\special{pa 1083 -2756}\special{pa 1083 -2559}%
-\special{fp}%
-\special{pa 1083 -2559}\special{pa 1083 -2362}%
-\special{fp}%
-\special{pa 1083 -2362}\special{pa 1083 -2165}%
-\special{fp}%
-\special{pa 1083 -2165}\special{pa 1083 -1969}%
-\special{fp}%
-\special{pa 1083 -1969}\special{pa 1083 -1772}%
-\special{fp}%
-\special{pa 1083 -1772}\special{pa 1083 -1575}%
-\special{fp}%
-\special{pa 1083 -1575}\special{pa 1083 -1378}%
-\special{fp}%
-\special{pa 1083 -1378}\special{pa 1083 -1181}%
-\special{fp}%
-\special{pa 1083 -1181}\special{pa 1083 -984}%
-\special{fp}%
-\special{pa 1083 -984}\special{pa 1083 -787}%
-\special{fp}%
-\special{pa 1083 -787}\special{pa 1083 -591}%
-\special{fp}%
-\special{pa 1083 -591}\special{pa 1083 -394}%
-\special{fp}%
-\special{pa 1083 -394}\special{pa 1083 -197}%
-\special{fp}%
-\special{pa 1083 -197}\special{pa 1083 0}%
-\special{fp}%
-\special{pa 2461 -6890}\special{pa 2461 -6693}%
-\special{fp}%
-\special{pa 2461 -6693}\special{pa 2461 -6496}%
-\special{fp}%
-\special{pa 2461 -6496}\special{pa 2461 -6299}%
-\special{fp}%
-\special{pa 2461 -6299}\special{pa 2461 -6102}%
-\special{fp}%
-\special{pa 2461 -6102}\special{pa 2461 -5906}%
-\special{fp}%
-\special{pa 2461 -5906}\special{pa 2461 -5709}%
-\special{fp}%
-\special{pa 2461 -5709}\special{pa 2461 -5512}%
-\special{fp}%
-\special{pa 2461 -5512}\special{pa 2461 -5315}%
-\special{fp}%
-\special{pa 2461 -5315}\special{pa 2461 -5118}%
-\special{fp}%
-\special{pa 2461 -5118}\special{pa 2461 -4921}%
-\special{fp}%
-\special{pa 2461 -4921}\special{pa 2461 -4724}%
-\special{fp}%
-\special{pa 2461 -4724}\special{pa 2461 -4528}%
-\special{fp}%
-\special{pa 2461 -4528}\special{pa 2461 -4331}%
-\special{fp}%
-\special{pa 2461 -4331}\special{pa 2461 -4134}%
-\special{fp}%
-\special{pa 2461 -4134}\special{pa 2461 -3937}%
-\special{fp}%
-\special{pa 2461 -3937}\special{pa 2461 -3740}%
-\special{fp}%
-\special{pa 2461 -3740}\special{pa 2461 -3543}%
-\special{fp}%
-\special{pa 2461 -3543}\special{pa 2461 -3346}%
-\special{fp}%
-\special{pa 2461 -3346}\special{pa 2461 -3150}%
-\special{fp}%
-\special{pa 2461 -3150}\special{pa 2461 -2953}%
-\special{fp}%
-\special{pa 2461 -2953}\special{pa 2461 -2756}%
-\special{fp}%
-\special{pa 2461 -2756}\special{pa 2461 -2559}%
-\special{fp}%
-\special{pa 2461 -2559}\special{pa 2461 -2362}%
-\special{fp}%
-\special{pa 2461 -2362}\special{pa 2461 -2165}%
-\special{fp}%
-\special{pa 2461 -2165}\special{pa 2461 -1969}%
-\special{fp}%
-\special{pa 2461 -1969}\special{pa 2461 -1772}%
-\special{fp}%
-\special{pa 2461 -1772}\special{pa 2461 -1575}%
-\special{fp}%
-\special{pa 2461 -1575}\special{pa 2461 -1378}%
-\special{fp}%
-\special{pa 2461 -1378}\special{pa 2461 -1181}%
-\special{fp}%
-\special{pa 2461 -1181}\special{pa 2461 -984}%
-\special{fp}%
-\special{pa 2461 -984}\special{pa 2461 -787}%
-\special{fp}%
-\special{pa 2461 -787}\special{pa 2461 -591}%
-\special{fp}%
-\special{pa 2461 -591}\special{pa 2461 -394}%
-\special{fp}%
-\special{pa 2461 -394}\special{pa 2461 -197}%
-\special{fp}%
-\special{pa 2461 -197}\special{pa 2461 0}%
-\special{fp}%
-\special{pa 3839 -6890}\special{pa 3839 -6693}%
-\special{fp}%
-\special{pa 3839 -6693}\special{pa 3839 -6496}%
-\special{fp}%
-\special{pa 3839 -6496}\special{pa 3839 -6299}%
-\special{fp}%
-\special{pa 3839 -6299}\special{pa 3839 -6102}%
-\special{fp}%
-\special{pa 3839 -6102}\special{pa 3839 -5906}%
-\special{fp}%
-\special{pa 3839 -5906}\special{pa 3839 -5709}%
-\special{fp}%
-\special{pa 3839 -5709}\special{pa 3839 -5512}%
-\special{fp}%
-\special{pa 3839 -5512}\special{pa 3839 -5315}%
-\special{fp}%
-\special{pa 3839 -5315}\special{pa 3839 -5118}%
-\special{fp}%
-\special{pa 3839 -5118}\special{pa 3839 -4921}%
-\special{fp}%
-\special{pa 3839 -4921}\special{pa 3839 -4724}%
-\special{fp}%
-\special{pa 3839 -4724}\special{pa 3839 -4528}%
-\special{fp}%
-\special{pa 3839 -4528}\special{pa 3839 -4331}%
-\special{fp}%
-\special{pa 3839 -4331}\special{pa 3839 -4134}%
-\special{fp}%
-\special{pa 3839 -4134}\special{pa 3839 -3937}%
-\special{fp}%
-\special{pa 3839 -3937}\special{pa 3839 -3740}%
-\special{fp}%
-\special{pa 3839 -3740}\special{pa 3839 -3543}%
-\special{fp}%
-\special{pa 3839 -3543}\special{pa 3839 -3346}%
-\special{fp}%
-\special{pa 3839 -3346}\special{pa 3839 -3150}%
-\special{fp}%
-\special{pa 3839 -3150}\special{pa 3839 -2953}%
-\special{fp}%
-\special{pa 3839 -2953}\special{pa 3839 -2756}%
-\special{fp}%
-\special{pa 3839 -2756}\special{pa 3839 -2559}%
-\special{fp}%
-\special{pa 3839 -2559}\special{pa 3839 -2362}%
-\special{fp}%
-\special{pa 3839 -2362}\special{pa 3839 -2165}%
-\special{fp}%
-\special{pa 3839 -2165}\special{pa 3839 -1969}%
-\special{fp}%
-\special{pa 3839 -1969}\special{pa 3839 -1772}%
-\special{fp}%
-\special{pa 3839 -1772}\special{pa 3839 -1575}%
-\special{fp}%
-\special{pa 3839 -1575}\special{pa 3839 -1378}%
-\special{fp}%
-\special{pa 3839 -1378}\special{pa 3839 -1181}%
-\special{fp}%
-\special{pa 3839 -1181}\special{pa 3839 -984}%
-\special{fp}%
-\special{pa 3839 -984}\special{pa 3839 -787}%
-\special{fp}%
-\special{pa 3839 -787}\special{pa 3839 -591}%
-\special{fp}%
-\special{pa 3839 -591}\special{pa 3839 -394}%
-\special{fp}%
-\special{pa 3839 -394}\special{pa 3839 -197}%
-\special{fp}%
-\special{pa 3839 -197}\special{pa 3839 0}%
-\special{fp}%
-\special{pa 4626 -6890}\special{pa 4626 -6693}%
-\special{fp}%
-\special{pa 4626 -6693}\special{pa 4626 -6496}%
-\special{fp}%
-\special{pa 4626 -6496}\special{pa 4626 -6299}%
-\special{fp}%
-\special{pa 4626 -6299}\special{pa 4626 -6102}%
-\special{fp}%
-\special{pa 4626 -6102}\special{pa 4626 -5906}%
-\special{fp}%
-\special{pa 4626 -5906}\special{pa 4626 -5709}%
-\special{fp}%
-\special{pa 4626 -5709}\special{pa 4626 -5512}%
-\special{fp}%
-\special{pa 4626 -5512}\special{pa 4626 -5315}%
-\special{fp}%
-\special{pa 4626 -5315}\special{pa 4626 -5118}%
-\special{fp}%
-\special{pa 4626 -5118}\special{pa 4626 -4921}%
-\special{fp}%
-\special{pa 4626 -4921}\special{pa 4626 -4724}%
-\special{fp}%
-\special{pa 4626 -4724}\special{pa 4626 -4528}%
-\special{fp}%
-\special{pa 4626 -4528}\special{pa 4626 -4331}%
-\special{fp}%
-\special{pa 4626 -4331}\special{pa 4626 -4134}%
-\special{fp}%
-\special{pa 4626 -4134}\special{pa 4626 -3937}%
-\special{fp}%
-\special{pa 4626 -3937}\special{pa 4626 -3740}%
-\special{fp}%
-\special{pa 4626 -3740}\special{pa 4626 -3543}%
-\special{fp}%
-\special{pa 4626 -3543}\special{pa 4626 -3346}%
-\special{fp}%
-\special{pa 4626 -3346}\special{pa 4626 -3150}%
-\special{fp}%
-\special{pa 4626 -3150}\special{pa 4626 -2953}%
-\special{fp}%
-\special{pa 4626 -2953}\special{pa 4626 -2756}%
-\special{fp}%
-\special{pa 4626 -2756}\special{pa 4626 -2559}%
-\special{fp}%
-\special{pa 4626 -2559}\special{pa 4626 -2362}%
-\special{fp}%
-\special{pa 4626 -2362}\special{pa 4626 -2165}%
-\special{fp}%
-\special{pa 4626 -2165}\special{pa 4626 -1969}%
-\special{fp}%
-\special{pa 4626 -1969}\special{pa 4626 -1772}%
-\special{fp}%
-\special{pa 4626 -1772}\special{pa 4626 -1575}%
-\special{fp}%
-\special{pa 4626 -1575}\special{pa 4626 -1378}%
-\special{fp}%
-\special{pa 4626 -1378}\special{pa 4626 -1181}%
-\special{fp}%
-\special{pa 4626 -1181}\special{pa 4626 -984}%
-\special{fp}%
-\special{pa 4626 -984}\special{pa 4626 -787}%
-\special{fp}%
-\special{pa 4626 -787}\special{pa 4626 -591}%
-\special{fp}%
-\special{pa 4626 -591}\special{pa 4626 -394}%
-\special{fp}%
-\special{pa 4626 -394}\special{pa 4626 -197}%
-\special{fp}%
-\special{pa 4626 -197}\special{pa 4626 0}%
-\special{fp}%
-\special{pa 5906 -6890}\special{pa 5906 -6693}%
-\special{fp}%
-\special{pa 5906 -6693}\special{pa 5906 -6496}%
-\special{fp}%
-\special{pa 5906 -6496}\special{pa 5906 -6299}%
-\special{fp}%
-\special{pa 5906 -6299}\special{pa 5906 -6102}%
-\special{fp}%
-\special{pa 5906 -6102}\special{pa 5906 -5906}%
-\special{fp}%
-\special{pa 5906 -5906}\special{pa 5906 -5709}%
-\special{fp}%
-\special{pa 5906 -5709}\special{pa 5906 -5512}%
-\special{fp}%
-\special{pa 5906 -5512}\special{pa 5906 -5315}%
-\special{fp}%
-\special{pa 5906 -5315}\special{pa 5906 -5118}%
-\special{fp}%
-\special{pa 5906 -5118}\special{pa 5906 -4921}%
-\special{fp}%
-\special{pa 5906 -4921}\special{pa 5906 -4724}%
-\special{fp}%
-\special{pa 5906 -4724}\special{pa 5906 -4528}%
-\special{fp}%
-\special{pa 5906 -4528}\special{pa 5906 -4331}%
-\special{fp}%
-\special{pa 5906 -4331}\special{pa 5906 -4134}%
-\special{fp}%
-\special{pa 5906 -4134}\special{pa 5906 -3937}%
-\special{fp}%
-\special{pa 5906 -3937}\special{pa 5906 -3740}%
-\special{fp}%
-\special{pa 5906 -3740}\special{pa 5906 -3543}%
-\special{fp}%
-\special{pa 5906 -3543}\special{pa 5906 -3346}%
-\special{fp}%
-\special{pa 5906 -3346}\special{pa 5906 -3150}%
-\special{fp}%
-\special{pa 5906 -3150}\special{pa 5906 -2953}%
-\special{fp}%
-\special{pa 5906 -2953}\special{pa 5906 -2756}%
-\special{fp}%
-\special{pa 5906 -2756}\special{pa 5906 -2559}%
-\special{fp}%
-\special{pa 5906 -2559}\special{pa 5906 -2362}%
-\special{fp}%
-\special{pa 5906 -2362}\special{pa 5906 -2165}%
-\special{fp}%
-\special{pa 5906 -2165}\special{pa 5906 -1969}%
-\special{fp}%
-\special{pa 5906 -1969}\special{pa 5906 -1772}%
-\special{fp}%
-\special{pa 5906 -1772}\special{pa 5906 -1575}%
-\special{fp}%
-\special{pa 5906 -1575}\special{pa 5906 -1378}%
-\special{fp}%
-\special{pa 5906 -1378}\special{pa 5906 -1181}%
-\special{fp}%
-\special{pa 5906 -1181}\special{pa 5906 -984}%
-\special{fp}%
-\special{pa 5906 -984}\special{pa 5906 -787}%
-\special{fp}%
-\special{pa 5906 -787}\special{pa 5906 -591}%
-\special{fp}%
-\special{pa 5906 -591}\special{pa 5906 -394}%
-\special{fp}%
-\special{pa 5906 -394}\special{pa 5906 -197}%
-\special{fp}%
-\special{pa 5906 -197}\special{pa 5906 0}%
-\special{fp}%
-\settowidth{\Width}{色ã®åå‰(å’Œå)}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{色ã®åå‰(å’Œå)}\settodepth{\Depth}{色ã®åå‰(å’Œå)}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(1.3800,17.2500){\hspace*{\Width}\raisebox{\Height}{色ã®åå‰(å’Œå)}}%
-%
-%
-\settowidth{\Width}{\TeX コマンド(英語)}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{\TeX コマンド(英語)}\settodepth{\Depth}{\TeX コマンド(英語)}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(4.5000,17.2500){\hspace*{\Width}\raisebox{\Height}{\TeX コマンド(英語)}}%
-%
-%
-\settowidth{\Width}{[C,M,Y,K]ã®ãƒ™ã‚¯ãƒˆãƒ«}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{[C,M,Y,K]ã®ãƒ™ã‚¯ãƒˆãƒ«}\settodepth{\Depth}{[C,M,Y,K]ã®ãƒ™ã‚¯ãƒˆãƒ«}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(8.0000,17.2500){\hspace*{\Width}\raisebox{\Height}{[C,M,Y,K]ã®ãƒ™ã‚¯ãƒˆãƒ«}}%
-%
-%
-\settowidth{\Width}{文字(例)}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{文字(例)}\settodepth{\Depth}{文字(例)}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(10.7500,17.2500){\hspace*{\Width}\raisebox{\Height}{文字(例)}}%
-%
-%
-\settowidth{\Width}{å¡—ã‚Šã¤ã¶ã—(濃ã•1)}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{å¡—ã‚Šã¤ã¶ã—(濃ã•1)}\settodepth{\Depth}{å¡—ã‚Šã¤ã¶ã—(濃ã•1)}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(13.3800,17.2500){\hspace*{\Width}\raisebox{\Height}{å¡—ã‚Šã¤ã¶ã—(濃ã•1)}}%
-%
-%
-\settowidth{\Width}{}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{}\settodepth{\Depth}{}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(1.3800,16.7500){\hspace*{\Width}\raisebox{\Height}{}}%
-%
-%
-\settowidth{\Width}{greenyellow}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{greenyellow}\settodepth{\Depth}{greenyellow}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(4.5000,16.7500){\hspace*{\Width}\raisebox{\Height}{greenyellow}}%
-%
-%
-\settowidth{\Width}{[0.15,0,0.69,0]}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{[0.15,0,0.69,0]}\settodepth{\Depth}{[0.15,0,0.69,0]}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(8.0000,16.7500){\hspace*{\Width}\raisebox{\Height}{[0.15,0,0.69,0]}}%
-%
-%
-\settowidth{\Width}{}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{}\settodepth{\Depth}{}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(10.7500,16.7500){\hspace*{\Width}\raisebox{\Height}{}}%
-%
-%
-\settowidth{\Width}{}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{}\settodepth{\Depth}{}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(13.3800,16.7500){\hspace*{\Width}\raisebox{\Height}{}}%
-%
-%
-\settowidth{\Width}{黄色}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{黄色}\settodepth{\Depth}{黄色}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(1.3800,16.2500){\hspace*{\Width}\raisebox{\Height}{黄色}}%
-%
-%
-\settowidth{\Width}{yellow}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{yellow}\settodepth{\Depth}{yellow}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(4.5000,16.2500){\hspace*{\Width}\raisebox{\Height}{yellow}}%
-%
-%
-\settowidth{\Width}{[0,0,1,0]}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{[0,0,1,0]}\settodepth{\Depth}{[0,0,1,0]}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(8.0000,16.2500){\hspace*{\Width}\raisebox{\Height}{[0,0,1,0]}}%
-%
-%
-\settowidth{\Width}{}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{}\settodepth{\Depth}{}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(10.7500,16.2500){\hspace*{\Width}\raisebox{\Height}{}}%
-%
-%
-\settowidth{\Width}{}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{}\settodepth{\Depth}{}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(13.3800,16.2500){\hspace*{\Width}\raisebox{\Height}{}}%
-%
-%
-\settowidth{\Width}{}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{}\settodepth{\Depth}{}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(1.3800,15.7500){\hspace*{\Width}\raisebox{\Height}{}}%
-%
-%
-\settowidth{\Width}{goldenrod}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{goldenrod}\settodepth{\Depth}{goldenrod}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(4.5000,15.7500){\hspace*{\Width}\raisebox{\Height}{goldenrod}}%
-%
-%
-\settowidth{\Width}{[0,0.1,0.84,0]}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{[0,0.1,0.84,0]}\settodepth{\Depth}{[0,0.1,0.84,0]}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(8.0000,15.7500){\hspace*{\Width}\raisebox{\Height}{[0,0.1,0.84,0]}}%
-%
-%
-\settowidth{\Width}{}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{}\settodepth{\Depth}{}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(10.7500,15.7500){\hspace*{\Width}\raisebox{\Height}{}}%
-%
-%
-\settowidth{\Width}{}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{}\settodepth{\Depth}{}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(13.3800,15.7500){\hspace*{\Width}\raisebox{\Height}{}}%
-%
-%
-\settowidth{\Width}{}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{}\settodepth{\Depth}{}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(1.3800,15.2500){\hspace*{\Width}\raisebox{\Height}{}}%
-%
-%
-\settowidth{\Width}{dandelion}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{dandelion}\settodepth{\Depth}{dandelion}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(4.5000,15.2500){\hspace*{\Width}\raisebox{\Height}{dandelion}}%
-%
-%
-\settowidth{\Width}{[0,0.29,0.84,0]}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{[0,0.29,0.84,0]}\settodepth{\Depth}{[0,0.29,0.84,0]}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(8.0000,15.2500){\hspace*{\Width}\raisebox{\Height}{[0,0.29,0.84,0]}}%
-%
-%
-\settowidth{\Width}{}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{}\settodepth{\Depth}{}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(10.7500,15.2500){\hspace*{\Width}\raisebox{\Height}{}}%
-%
-%
-\settowidth{\Width}{}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{}\settodepth{\Depth}{}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(13.3800,15.2500){\hspace*{\Width}\raisebox{\Height}{}}%
-%
-%
-\settowidth{\Width}{}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{}\settodepth{\Depth}{}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(1.3800,14.7500){\hspace*{\Width}\raisebox{\Height}{}}%
-%
-%
-\settowidth{\Width}{apricot}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{apricot}\settodepth{\Depth}{apricot}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(4.5000,14.7500){\hspace*{\Width}\raisebox{\Height}{apricot}}%
-%
-%
-\settowidth{\Width}{[0,0.32,0.52,0]}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{[0,0.32,0.52,0]}\settodepth{\Depth}{[0,0.32,0.52,0]}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(8.0000,14.7500){\hspace*{\Width}\raisebox{\Height}{[0,0.32,0.52,0]}}%
-%
-%
-\settowidth{\Width}{}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{}\settodepth{\Depth}{}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(10.7500,14.7500){\hspace*{\Width}\raisebox{\Height}{}}%
-%
-%
-\settowidth{\Width}{}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{}\settodepth{\Depth}{}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(13.3800,14.7500){\hspace*{\Width}\raisebox{\Height}{}}%
-%
-%
-\settowidth{\Width}{}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{}\settodepth{\Depth}{}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(1.3800,14.2500){\hspace*{\Width}\raisebox{\Height}{}}%
-%
-%
-\settowidth{\Width}{peach}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{peach}\settodepth{\Depth}{peach}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(4.5000,14.2500){\hspace*{\Width}\raisebox{\Height}{peach}}%
-%
-%
-\settowidth{\Width}{[0,0.5,0.7,0]}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{[0,0.5,0.7,0]}\settodepth{\Depth}{[0,0.5,0.7,0]}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(8.0000,14.2500){\hspace*{\Width}\raisebox{\Height}{[0,0.5,0.7,0]}}%
-%
-%
-\settowidth{\Width}{}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{}\settodepth{\Depth}{}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(10.7500,14.2500){\hspace*{\Width}\raisebox{\Height}{}}%
-%
-%
-\settowidth{\Width}{}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{}\settodepth{\Depth}{}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(13.3800,14.2500){\hspace*{\Width}\raisebox{\Height}{}}%
-%
-%
-\settowidth{\Width}{}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{}\settodepth{\Depth}{}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(1.3800,13.7500){\hspace*{\Width}\raisebox{\Height}{}}%
-%
-%
-\settowidth{\Width}{melon}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{melon}\settodepth{\Depth}{melon}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(4.5000,13.7500){\hspace*{\Width}\raisebox{\Height}{melon}}%
-%
-%
-\settowidth{\Width}{[0,0.46,0.5,0]}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{[0,0.46,0.5,0]}\settodepth{\Depth}{[0,0.46,0.5,0]}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(8.0000,13.7500){\hspace*{\Width}\raisebox{\Height}{[0,0.46,0.5,0]}}%
-%
-%
-\settowidth{\Width}{}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{}\settodepth{\Depth}{}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(10.7500,13.7500){\hspace*{\Width}\raisebox{\Height}{}}%
-%
-%
-\settowidth{\Width}{}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{}\settodepth{\Depth}{}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(13.3800,13.7500){\hspace*{\Width}\raisebox{\Height}{}}%
-%
-%
-\settowidth{\Width}{}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{}\settodepth{\Depth}{}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(1.3800,13.2500){\hspace*{\Width}\raisebox{\Height}{}}%
-%
-%
-\settowidth{\Width}{yelloworange}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{yelloworange}\settodepth{\Depth}{yelloworange}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(4.5000,13.2500){\hspace*{\Width}\raisebox{\Height}{yelloworange}}%
-%
-%
-\settowidth{\Width}{[0,0.42,1,0]}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{[0,0.42,1,0]}\settodepth{\Depth}{[0,0.42,1,0]}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(8.0000,13.2500){\hspace*{\Width}\raisebox{\Height}{[0,0.42,1,0]}}%
-%
-%
-\settowidth{\Width}{}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{}\settodepth{\Depth}{}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(10.7500,13.2500){\hspace*{\Width}\raisebox{\Height}{}}%
-%
-%
-\settowidth{\Width}{}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{}\settodepth{\Depth}{}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(13.3800,13.2500){\hspace*{\Width}\raisebox{\Height}{}}%
-%
-%
-\settowidth{\Width}{æ©™}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{æ©™}\settodepth{\Depth}{æ©™}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(1.3800,12.7500){\hspace*{\Width}\raisebox{\Height}{æ©™}}%
-%
-%
-\settowidth{\Width}{orange}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{orange}\settodepth{\Depth}{orange}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(4.5000,12.7500){\hspace*{\Width}\raisebox{\Height}{orange}}%
-%
-%
-\settowidth{\Width}{[0,0.61,0.87,0]}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{[0,0.61,0.87,0]}\settodepth{\Depth}{[0,0.61,0.87,0]}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(8.0000,12.7500){\hspace*{\Width}\raisebox{\Height}{[0,0.61,0.87,0]}}%
-%
-%
-\settowidth{\Width}{}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{}\settodepth{\Depth}{}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(10.7500,12.7500){\hspace*{\Width}\raisebox{\Height}{}}%
-%
-%
-\settowidth{\Width}{}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{}\settodepth{\Depth}{}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(13.3800,12.7500){\hspace*{\Width}\raisebox{\Height}{}}%
-%
-%
-\settowidth{\Width}{}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{}\settodepth{\Depth}{}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(1.3800,12.2500){\hspace*{\Width}\raisebox{\Height}{}}%
-%
-%
-\settowidth{\Width}{burntorange}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{burntorange}\settodepth{\Depth}{burntorange}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(4.5000,12.2500){\hspace*{\Width}\raisebox{\Height}{burntorange}}%
-%
-%
-\settowidth{\Width}{[0,0.51,1,0]}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{[0,0.51,1,0]}\settodepth{\Depth}{[0,0.51,1,0]}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(8.0000,12.2500){\hspace*{\Width}\raisebox{\Height}{[0,0.51,1,0]}}%
-%
-%
-\settowidth{\Width}{}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{}\settodepth{\Depth}{}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(10.7500,12.2500){\hspace*{\Width}\raisebox{\Height}{}}%
-%
-%
-\settowidth{\Width}{}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{}\settodepth{\Depth}{}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(13.3800,12.2500){\hspace*{\Width}\raisebox{\Height}{}}%
-%
-%
-\settowidth{\Width}{}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{}\settodepth{\Depth}{}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(1.3800,11.7500){\hspace*{\Width}\raisebox{\Height}{}}%
-%
-%
-\settowidth{\Width}{bittersweet}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{bittersweet}\settodepth{\Depth}{bittersweet}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(4.5000,11.7500){\hspace*{\Width}\raisebox{\Height}{bittersweet}}%
-%
-%
-\settowidth{\Width}{[0,0.75,1,0.24]}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{[0,0.75,1,0.24]}\settodepth{\Depth}{[0,0.75,1,0.24]}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(8.0000,11.7500){\hspace*{\Width}\raisebox{\Height}{[0,0.75,1,0.24]}}%
-%
-%
-\settowidth{\Width}{}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{}\settodepth{\Depth}{}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(10.7500,11.7500){\hspace*{\Width}\raisebox{\Height}{}}%
-%
-%
-\settowidth{\Width}{}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{}\settodepth{\Depth}{}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(13.3800,11.7500){\hspace*{\Width}\raisebox{\Height}{}}%
-%
-%
-\settowidth{\Width}{}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{}\settodepth{\Depth}{}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(1.3800,11.2500){\hspace*{\Width}\raisebox{\Height}{}}%
-%
-%
-\settowidth{\Width}{redorange}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{redorange}\settodepth{\Depth}{redorange}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(4.5000,11.2500){\hspace*{\Width}\raisebox{\Height}{redorange}}%
-%
-%
-\settowidth{\Width}{[0,0.77,0.87,0]}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{[0,0.77,0.87,0]}\settodepth{\Depth}{[0,0.77,0.87,0]}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(8.0000,11.2500){\hspace*{\Width}\raisebox{\Height}{[0,0.77,0.87,0]}}%
-%
-%
-\settowidth{\Width}{}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{}\settodepth{\Depth}{}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(10.7500,11.2500){\hspace*{\Width}\raisebox{\Height}{}}%
-%
-%
-\settowidth{\Width}{}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{}\settodepth{\Depth}{}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(13.3800,11.2500){\hspace*{\Width}\raisebox{\Height}{}}%
-%
-%
-\settowidth{\Width}{}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{}\settodepth{\Depth}{}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(1.3800,10.7500){\hspace*{\Width}\raisebox{\Height}{}}%
-%
-%
-\settowidth{\Width}{mahogany}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{mahogany}\settodepth{\Depth}{mahogany}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(4.5000,10.7500){\hspace*{\Width}\raisebox{\Height}{mahogany}}%
-%
-%
-\settowidth{\Width}{[0,0.85,0.87,0.35]}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{[0,0.85,0.87,0.35]}\settodepth{\Depth}{[0,0.85,0.87,0.35]}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(8.0000,10.7500){\hspace*{\Width}\raisebox{\Height}{[0,0.85,0.87,0.35]}}%
-%
-%
-\settowidth{\Width}{}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{}\settodepth{\Depth}{}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(10.7500,10.7500){\hspace*{\Width}\raisebox{\Height}{}}%
-%
-%
-\settowidth{\Width}{}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{}\settodepth{\Depth}{}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(13.3800,10.7500){\hspace*{\Width}\raisebox{\Height}{}}%
-%
-%
-\settowidth{\Width}{}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{}\settodepth{\Depth}{}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(1.3800,10.2500){\hspace*{\Width}\raisebox{\Height}{}}%
-%
-%
-\settowidth{\Width}{maroon}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{maroon}\settodepth{\Depth}{maroon}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(4.5000,10.2500){\hspace*{\Width}\raisebox{\Height}{maroon}}%
-%
-%
-\settowidth{\Width}{[0,0.87,0.68,0.32]}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{[0,0.87,0.68,0.32]}\settodepth{\Depth}{[0,0.87,0.68,0.32]}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(8.0000,10.2500){\hspace*{\Width}\raisebox{\Height}{[0,0.87,0.68,0.32]}}%
-%
-%
-\settowidth{\Width}{}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{}\settodepth{\Depth}{}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(10.7500,10.2500){\hspace*{\Width}\raisebox{\Height}{}}%
-%
-%
-\settowidth{\Width}{}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{}\settodepth{\Depth}{}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(13.3800,10.2500){\hspace*{\Width}\raisebox{\Height}{}}%
-%
-%
-\settowidth{\Width}{}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{}\settodepth{\Depth}{}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(1.3800,9.7500){\hspace*{\Width}\raisebox{\Height}{}}%
-%
-%
-\settowidth{\Width}{brickred}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{brickred}\settodepth{\Depth}{brickred}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(4.5000,9.7500){\hspace*{\Width}\raisebox{\Height}{brickred}}%
-%
-%
-\settowidth{\Width}{[0,0.89,0.94,0.28]}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{[0,0.89,0.94,0.28]}\settodepth{\Depth}{[0,0.89,0.94,0.28]}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(8.0000,9.7500){\hspace*{\Width}\raisebox{\Height}{[0,0.89,0.94,0.28]}}%
-%
-%
-\settowidth{\Width}{}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{}\settodepth{\Depth}{}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(10.7500,9.7500){\hspace*{\Width}\raisebox{\Height}{}}%
-%
-%
-\settowidth{\Width}{}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{}\settodepth{\Depth}{}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(13.3800,9.7500){\hspace*{\Width}\raisebox{\Height}{}}%
-%
-%
-\settowidth{\Width}{赤}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{赤}\settodepth{\Depth}{赤}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(1.3800,9.2500){\hspace*{\Width}\raisebox{\Height}{赤}}%
-%
-%
-\settowidth{\Width}{red}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{red}\settodepth{\Depth}{red}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(4.5000,9.2500){\hspace*{\Width}\raisebox{\Height}{red}}%
-%
-%
-\settowidth{\Width}{[0,1,1,0]}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{[0,1,1,0]}\settodepth{\Depth}{[0,1,1,0]}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(8.0000,9.2500){\hspace*{\Width}\raisebox{\Height}{[0,1,1,0]}}%
-%
-%
-\settowidth{\Width}{}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{}\settodepth{\Depth}{}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(10.7500,9.2500){\hspace*{\Width}\raisebox{\Height}{}}%
-%
-%
-\settowidth{\Width}{}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{}\settodepth{\Depth}{}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(13.3800,9.2500){\hspace*{\Width}\raisebox{\Height}{}}%
-%
-%
-\settowidth{\Width}{}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{}\settodepth{\Depth}{}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(1.3800,8.7500){\hspace*{\Width}\raisebox{\Height}{}}%
-%
-%
-\settowidth{\Width}{orangered}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{orangered}\settodepth{\Depth}{orangered}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(4.5000,8.7500){\hspace*{\Width}\raisebox{\Height}{orangered}}%
-%
-%
-\settowidth{\Width}{[0,1,0.5,0]}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{[0,1,0.5,0]}\settodepth{\Depth}{[0,1,0.5,0]}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(8.0000,8.7500){\hspace*{\Width}\raisebox{\Height}{[0,1,0.5,0]}}%
-%
-%
-\settowidth{\Width}{}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{}\settodepth{\Depth}{}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(10.7500,8.7500){\hspace*{\Width}\raisebox{\Height}{}}%
-%
-%
-\settowidth{\Width}{}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{}\settodepth{\Depth}{}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(13.3800,8.7500){\hspace*{\Width}\raisebox{\Height}{}}%
-%
-%
-\settowidth{\Width}{}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{}\settodepth{\Depth}{}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(1.3800,8.2500){\hspace*{\Width}\raisebox{\Height}{}}%
-%
-%
-\settowidth{\Width}{rubinered}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{rubinered}\settodepth{\Depth}{rubinered}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(4.5000,8.2500){\hspace*{\Width}\raisebox{\Height}{rubinered}}%
-%
-%
-\settowidth{\Width}{[0,1,0.13,0]}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{[0,1,0.13,0]}\settodepth{\Depth}{[0,1,0.13,0]}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(8.0000,8.2500){\hspace*{\Width}\raisebox{\Height}{[0,1,0.13,0]}}%
-%
-%
-\settowidth{\Width}{}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{}\settodepth{\Depth}{}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(10.7500,8.2500){\hspace*{\Width}\raisebox{\Height}{}}%
-%
-%
-\settowidth{\Width}{}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{}\settodepth{\Depth}{}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(13.3800,8.2500){\hspace*{\Width}\raisebox{\Height}{}}%
-%
-%
-\settowidth{\Width}{}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{}\settodepth{\Depth}{}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(1.3800,7.7500){\hspace*{\Width}\raisebox{\Height}{}}%
-%
-%
-\settowidth{\Width}{wildstrawberry}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{wildstrawberry}\settodepth{\Depth}{wildstrawberry}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(4.5000,7.7500){\hspace*{\Width}\raisebox{\Height}{wildstrawberry}}%
-%
-%
-\settowidth{\Width}{[0,0.96,0.39,0]}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{[0,0.96,0.39,0]}\settodepth{\Depth}{[0,0.96,0.39,0]}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(8.0000,7.7500){\hspace*{\Width}\raisebox{\Height}{[0,0.96,0.39,0]}}%
-%
-%
-\settowidth{\Width}{}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{}\settodepth{\Depth}{}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(10.7500,7.7500){\hspace*{\Width}\raisebox{\Height}{}}%
-%
-%
-\settowidth{\Width}{}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{}\settodepth{\Depth}{}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(13.3800,7.7500){\hspace*{\Width}\raisebox{\Height}{}}%
-%
-%
-\settowidth{\Width}{}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{}\settodepth{\Depth}{}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(1.3800,7.2500){\hspace*{\Width}\raisebox{\Height}{}}%
-%
-%
-\settowidth{\Width}{salmon}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{salmon}\settodepth{\Depth}{salmon}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(4.5000,7.2500){\hspace*{\Width}\raisebox{\Height}{salmon}}%
-%
-%
-\settowidth{\Width}{[0,0.53,0.38,0]}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{[0,0.53,0.38,0]}\settodepth{\Depth}{[0,0.53,0.38,0]}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(8.0000,7.2500){\hspace*{\Width}\raisebox{\Height}{[0,0.53,0.38,0]}}%
-%
-%
-\settowidth{\Width}{}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{}\settodepth{\Depth}{}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(10.7500,7.2500){\hspace*{\Width}\raisebox{\Height}{}}%
-%
-%
-\settowidth{\Width}{}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{}\settodepth{\Depth}{}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(13.3800,7.2500){\hspace*{\Width}\raisebox{\Height}{}}%
-%
-%
-\settowidth{\Width}{}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{}\settodepth{\Depth}{}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(1.3800,6.7500){\hspace*{\Width}\raisebox{\Height}{}}%
-%
-%
-\settowidth{\Width}{carnationpink}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{carnationpink}\settodepth{\Depth}{carnationpink}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(4.5000,6.7500){\hspace*{\Width}\raisebox{\Height}{carnationpink}}%
-%
-%
-\settowidth{\Width}{[0,0.63,0,0]}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{[0,0.63,0,0]}\settodepth{\Depth}{[0,0.63,0,0]}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(8.0000,6.7500){\hspace*{\Width}\raisebox{\Height}{[0,0.63,0,0]}}%
-%
-%
-\settowidth{\Width}{}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{}\settodepth{\Depth}{}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(10.7500,6.7500){\hspace*{\Width}\raisebox{\Height}{}}%
-%
-%
-\settowidth{\Width}{}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{}\settodepth{\Depth}{}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(13.3800,6.7500){\hspace*{\Width}\raisebox{\Height}{}}%
-%
-%
-\settowidth{\Width}{}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{}\settodepth{\Depth}{}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(1.3800,6.2500){\hspace*{\Width}\raisebox{\Height}{}}%
-%
-%
-\settowidth{\Width}{magenta}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{magenta}\settodepth{\Depth}{magenta}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(4.5000,6.2500){\hspace*{\Width}\raisebox{\Height}{magenta}}%
-%
-%
-\settowidth{\Width}{[0,1,0,0]}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{[0,1,0,0]}\settodepth{\Depth}{[0,1,0,0]}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(8.0000,6.2500){\hspace*{\Width}\raisebox{\Height}{[0,1,0,0]}}%
-%
-%
-\settowidth{\Width}{}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{}\settodepth{\Depth}{}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(10.7500,6.2500){\hspace*{\Width}\raisebox{\Height}{}}%
-%
-%
-\settowidth{\Width}{}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{}\settodepth{\Depth}{}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(13.3800,6.2500){\hspace*{\Width}\raisebox{\Height}{}}%
-%
-%
-\settowidth{\Width}{}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{}\settodepth{\Depth}{}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(1.3800,5.7500){\hspace*{\Width}\raisebox{\Height}{}}%
-%
-%
-\settowidth{\Width}{violetred}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{violetred}\settodepth{\Depth}{violetred}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(4.5000,5.7500){\hspace*{\Width}\raisebox{\Height}{violetred}}%
-%
-%
-\settowidth{\Width}{[0,0.81,0,0]}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{[0,0.81,0,0]}\settodepth{\Depth}{[0,0.81,0,0]}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(8.0000,5.7500){\hspace*{\Width}\raisebox{\Height}{[0,0.81,0,0]}}%
-%
-%
-\settowidth{\Width}{}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{}\settodepth{\Depth}{}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(10.7500,5.7500){\hspace*{\Width}\raisebox{\Height}{}}%
-%
-%
-\settowidth{\Width}{}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{}\settodepth{\Depth}{}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(13.3800,5.7500){\hspace*{\Width}\raisebox{\Height}{}}%
-%
-%
-\settowidth{\Width}{}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{}\settodepth{\Depth}{}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(1.3800,5.2500){\hspace*{\Width}\raisebox{\Height}{}}%
-%
-%
-\settowidth{\Width}{rhodamine}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{rhodamine}\settodepth{\Depth}{rhodamine}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(4.5000,5.2500){\hspace*{\Width}\raisebox{\Height}{rhodamine}}%
-%
-%
-\settowidth{\Width}{[0,0.82,0,0]}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{[0,0.82,0,0]}\settodepth{\Depth}{[0,0.82,0,0]}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(8.0000,5.2500){\hspace*{\Width}\raisebox{\Height}{[0,0.82,0,0]}}%
-%
-%
-\settowidth{\Width}{}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{}\settodepth{\Depth}{}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(10.7500,5.2500){\hspace*{\Width}\raisebox{\Height}{}}%
-%
-%
-\settowidth{\Width}{}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{}\settodepth{\Depth}{}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(13.3800,5.2500){\hspace*{\Width}\raisebox{\Height}{}}%
-%
-%
-\settowidth{\Width}{}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{}\settodepth{\Depth}{}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(1.3800,4.7500){\hspace*{\Width}\raisebox{\Height}{}}%
-%
-%
-\settowidth{\Width}{mulberry}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{mulberry}\settodepth{\Depth}{mulberry}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(4.5000,4.7500){\hspace*{\Width}\raisebox{\Height}{mulberry}}%
-%
-%
-\settowidth{\Width}{[0.34,0.9,0,0.02]}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{[0.34,0.9,0,0.02]}\settodepth{\Depth}{[0.34,0.9,0,0.02]}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(8.0000,4.7500){\hspace*{\Width}\raisebox{\Height}{[0.34,0.9,0,0.02]}}%
-%
-%
-\settowidth{\Width}{}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{}\settodepth{\Depth}{}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(10.7500,4.7500){\hspace*{\Width}\raisebox{\Height}{}}%
-%
-%
-\settowidth{\Width}{}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{}\settodepth{\Depth}{}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(13.3800,4.7500){\hspace*{\Width}\raisebox{\Height}{}}%
-%
-%
-\settowidth{\Width}{}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{}\settodepth{\Depth}{}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(1.3800,4.2500){\hspace*{\Width}\raisebox{\Height}{}}%
-%
-%
-\settowidth{\Width}{redviolet}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{redviolet}\settodepth{\Depth}{redviolet}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(4.5000,4.2500){\hspace*{\Width}\raisebox{\Height}{redviolet}}%
-%
-%
-\settowidth{\Width}{[0.07,0.9,0,0.34]}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{[0.07,0.9,0,0.34]}\settodepth{\Depth}{[0.07,0.9,0,0.34]}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(8.0000,4.2500){\hspace*{\Width}\raisebox{\Height}{[0.07,0.9,0,0.34]}}%
-%
-%
-\settowidth{\Width}{}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{}\settodepth{\Depth}{}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(10.7500,4.2500){\hspace*{\Width}\raisebox{\Height}{}}%
-%
-%
-\settowidth{\Width}{}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{}\settodepth{\Depth}{}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(13.3800,4.2500){\hspace*{\Width}\raisebox{\Height}{}}%
-%
-%
-\settowidth{\Width}{}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{}\settodepth{\Depth}{}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(1.3800,3.7500){\hspace*{\Width}\raisebox{\Height}{}}%
-%
-%
-\settowidth{\Width}{fuchsia}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{fuchsia}\settodepth{\Depth}{fuchsia}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(4.5000,3.7500){\hspace*{\Width}\raisebox{\Height}{fuchsia}}%
-%
-%
-\settowidth{\Width}{[0.47,0.91,0,0.08]}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{[0.47,0.91,0,0.08]}\settodepth{\Depth}{[0.47,0.91,0,0.08]}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(8.0000,3.7500){\hspace*{\Width}\raisebox{\Height}{[0.47,0.91,0,0.08]}}%
-%
-%
-\settowidth{\Width}{}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{}\settodepth{\Depth}{}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(10.7500,3.7500){\hspace*{\Width}\raisebox{\Height}{}}%
-%
-%
-\settowidth{\Width}{}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{}\settodepth{\Depth}{}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(13.3800,3.7500){\hspace*{\Width}\raisebox{\Height}{}}%
-%
-%
-\settowidth{\Width}{}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{}\settodepth{\Depth}{}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(1.3800,3.2500){\hspace*{\Width}\raisebox{\Height}{}}%
-%
-%
-\settowidth{\Width}{lavender}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{lavender}\settodepth{\Depth}{lavender}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(4.5000,3.2500){\hspace*{\Width}\raisebox{\Height}{lavender}}%
-%
-%
-\settowidth{\Width}{[0,0.48,0,0]}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{[0,0.48,0,0]}\settodepth{\Depth}{[0,0.48,0,0]}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(8.0000,3.2500){\hspace*{\Width}\raisebox{\Height}{[0,0.48,0,0]}}%
-%
-%
-\settowidth{\Width}{}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{}\settodepth{\Depth}{}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(10.7500,3.2500){\hspace*{\Width}\raisebox{\Height}{}}%
-%
-%
-\settowidth{\Width}{}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{}\settodepth{\Depth}{}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(13.3800,3.2500){\hspace*{\Width}\raisebox{\Height}{}}%
-%
-%
-\settowidth{\Width}{}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{}\settodepth{\Depth}{}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(1.3800,2.7500){\hspace*{\Width}\raisebox{\Height}{}}%
-%
-%
-\settowidth{\Width}{thistle}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{thistle}\settodepth{\Depth}{thistle}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(4.5000,2.7500){\hspace*{\Width}\raisebox{\Height}{thistle}}%
-%
-%
-\settowidth{\Width}{[0.12,0.59,0,0]}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{[0.12,0.59,0,0]}\settodepth{\Depth}{[0.12,0.59,0,0]}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(8.0000,2.7500){\hspace*{\Width}\raisebox{\Height}{[0.12,0.59,0,0]}}%
-%
-%
-\settowidth{\Width}{}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{}\settodepth{\Depth}{}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(10.7500,2.7500){\hspace*{\Width}\raisebox{\Height}{}}%
-%
-%
-\settowidth{\Width}{}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{}\settodepth{\Depth}{}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(13.3800,2.7500){\hspace*{\Width}\raisebox{\Height}{}}%
-%
-%
-\settowidth{\Width}{}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{}\settodepth{\Depth}{}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(1.3800,2.2500){\hspace*{\Width}\raisebox{\Height}{}}%
-%
-%
-\settowidth{\Width}{orchid}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{orchid}\settodepth{\Depth}{orchid}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(4.5000,2.2500){\hspace*{\Width}\raisebox{\Height}{orchid}}%
-%
-%
-\settowidth{\Width}{[0.32,0.64,0,0]}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{[0.32,0.64,0,0]}\settodepth{\Depth}{[0.32,0.64,0,0]}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(8.0000,2.2500){\hspace*{\Width}\raisebox{\Height}{[0.32,0.64,0,0]}}%
-%
-%
-\settowidth{\Width}{}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{}\settodepth{\Depth}{}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(10.7500,2.2500){\hspace*{\Width}\raisebox{\Height}{}}%
-%
-%
-\settowidth{\Width}{}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{}\settodepth{\Depth}{}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(13.3800,2.2500){\hspace*{\Width}\raisebox{\Height}{}}%
-%
-%
-\settowidth{\Width}{}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{}\settodepth{\Depth}{}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(1.3800,1.7500){\hspace*{\Width}\raisebox{\Height}{}}%
-%
-%
-\settowidth{\Width}{darkorchid}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{darkorchid}\settodepth{\Depth}{darkorchid}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(4.5000,1.7500){\hspace*{\Width}\raisebox{\Height}{darkorchid}}%
-%
-%
-\settowidth{\Width}{[0.4,0.8,0.2,0]}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{[0.4,0.8,0.2,0]}\settodepth{\Depth}{[0.4,0.8,0.2,0]}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(8.0000,1.7500){\hspace*{\Width}\raisebox{\Height}{[0.4,0.8,0.2,0]}}%
-%
-%
-\settowidth{\Width}{}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{}\settodepth{\Depth}{}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(10.7500,1.7500){\hspace*{\Width}\raisebox{\Height}{}}%
-%
-%
-\settowidth{\Width}{}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{}\settodepth{\Depth}{}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(13.3800,1.7500){\hspace*{\Width}\raisebox{\Height}{}}%
-%
-%
-\settowidth{\Width}{ç´«}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{ç´«}\settodepth{\Depth}{ç´«}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(1.3800,1.2500){\hspace*{\Width}\raisebox{\Height}{ç´«}}%
-%
-%
-\settowidth{\Width}{purple}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{purple}\settodepth{\Depth}{purple}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(4.5000,1.2500){\hspace*{\Width}\raisebox{\Height}{purple}}%
-%
-%
-\settowidth{\Width}{[0.45,0.86,0,0]}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{[0.45,0.86,0,0]}\settodepth{\Depth}{[0.45,0.86,0,0]}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(8.0000,1.2500){\hspace*{\Width}\raisebox{\Height}{[0.45,0.86,0,0]}}%
-%
-%
-\settowidth{\Width}{}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{}\settodepth{\Depth}{}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(10.7500,1.2500){\hspace*{\Width}\raisebox{\Height}{}}%
-%
-%
-\settowidth{\Width}{}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{}\settodepth{\Depth}{}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(13.3800,1.2500){\hspace*{\Width}\raisebox{\Height}{}}%
-%
-%
-\settowidth{\Width}{}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{}\settodepth{\Depth}{}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(1.3800,0.7500){\hspace*{\Width}\raisebox{\Height}{}}%
-%
-%
-\settowidth{\Width}{plum}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{plum}\settodepth{\Depth}{plum}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(4.5000,0.7500){\hspace*{\Width}\raisebox{\Height}{plum}}%
-%
-%
-\settowidth{\Width}{[0.5,1,0,0]}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{[0.5,1,0,0]}\settodepth{\Depth}{[0.5,1,0,0]}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(8.0000,0.7500){\hspace*{\Width}\raisebox{\Height}{[0.5,1,0,0]}}%
-%
-%
-\settowidth{\Width}{}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{}\settodepth{\Depth}{}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(10.7500,0.7500){\hspace*{\Width}\raisebox{\Height}{}}%
-%
-%
-\settowidth{\Width}{}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{}\settodepth{\Depth}{}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(13.3800,0.7500){\hspace*{\Width}\raisebox{\Height}{}}%
-%
-%
-\settowidth{\Width}{}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{}\settodepth{\Depth}{}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(1.3800,0.2500){\hspace*{\Width}\raisebox{\Height}{}}%
-%
-%
-\settowidth{\Width}{violet}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{violet}\settodepth{\Depth}{violet}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(4.5000,0.2500){\hspace*{\Width}\raisebox{\Height}{violet}}%
-%
-%
-\settowidth{\Width}{[0.79,0.88,0,0]}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{[0.79,0.88,0,0]}\settodepth{\Depth}{[0.79,0.88,0,0]}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(8.0000,0.2500){\hspace*{\Width}\raisebox{\Height}{[0.79,0.88,0,0]}}%
-%
-%
-\settowidth{\Width}{}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{}\settodepth{\Depth}{}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(10.7500,0.2500){\hspace*{\Width}\raisebox{\Height}{}}%
-%
-%
-\settowidth{\Width}{}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{}\settodepth{\Depth}{}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(13.3800,0.2500){\hspace*{\Width}\raisebox{\Height}{}}%
-%
-%
-\end{picture}}% \ No newline at end of file
diff --git a/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/colortable35-68.tex b/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/colortable35-68.tex
deleted file mode 100644
index c89b555d..00000000
--- a/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/colortable35-68.tex
+++ /dev/null
@@ -1,1934 +0,0 @@
-%%% colortable35-68.tex 2015-2-6 18:34
-%%% colortable35-68.sce 2015-2-6 18:29
-{\unitlength=1cm%
-\begin{picture}%
-( 15.00000, 17.50000)( -0.00000, -0.00000)%
-\special{pn 8}%
-%
-\color[cmyk]{0.75,0.9,0,0}%
-\settowidth{\Width}{ã‚ã„ã†ãˆãŠ}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{ã‚ã„ã†ãˆãŠ}\settodepth{\Depth}{ã‚ã„ã†ãˆãŠ}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(10.7500,16.7500){\hspace*{\Width}\raisebox{\Height}{ã‚ã„ã†ãˆãŠ}}%
-%
-%
-\special{pa 4626 -6693}\special{pa 4626 -6496}\special{pa 5906 -6496}\special{pa 5906 -6693}%
-\special{pa 4626 -6693}\special{sh 1}\special{ip}%
-\color[cmyk]{0.86,0.91,0,0.04}%
-\settowidth{\Width}{ã‚ã„ã†ãˆãŠ}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{ã‚ã„ã†ãˆãŠ}\settodepth{\Depth}{ã‚ã„ã†ãˆãŠ}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(10.7500,16.2500){\hspace*{\Width}\raisebox{\Height}{ã‚ã„ã†ãˆãŠ}}%
-%
-%
-\special{pa 4626 -6496}\special{pa 4626 -6299}\special{pa 5906 -6299}\special{pa 5906 -6496}%
-\special{pa 4626 -6496}\special{sh 1}\special{ip}%
-\color[cmyk]{0.57,0.55,0,0}%
-\settowidth{\Width}{ã‚ã„ã†ãˆãŠ}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{ã‚ã„ã†ãˆãŠ}\settodepth{\Depth}{ã‚ã„ã†ãˆãŠ}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(10.7500,15.7500){\hspace*{\Width}\raisebox{\Height}{ã‚ã„ã†ãˆãŠ}}%
-%
-%
-\special{pa 4626 -6299}\special{pa 4626 -6102}\special{pa 5906 -6102}\special{pa 5906 -6299}%
-\special{pa 4626 -6299}\special{sh 1}\special{ip}%
-\color[cmyk]{0.62,0.57,0.23,0}%
-\settowidth{\Width}{ã‚ã„ã†ãˆãŠ}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{ã‚ã„ã†ãˆãŠ}\settodepth{\Depth}{ã‚ã„ã†ãˆãŠ}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(10.7500,15.2500){\hspace*{\Width}\raisebox{\Height}{ã‚ã„ã†ãˆãŠ}}%
-%
-%
-\special{pa 4626 -6102}\special{pa 4626 -5906}\special{pa 5906 -5906}\special{pa 5906 -6102}%
-\special{pa 4626 -6102}\special{sh 1}\special{ip}%
-\color[cmyk]{0.65,0.13,0,0}%
-\settowidth{\Width}{ã‚ã„ã†ãˆãŠ}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{ã‚ã„ã†ãˆãŠ}\settodepth{\Depth}{ã‚ã„ã†ãˆãŠ}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(10.7500,14.7500){\hspace*{\Width}\raisebox{\Height}{ã‚ã„ã†ãˆãŠ}}%
-%
-%
-\special{pa 4626 -5906}\special{pa 4626 -5709}\special{pa 5906 -5709}\special{pa 5906 -5906}%
-\special{pa 4626 -5906}\special{sh 1}\special{ip}%
-\color[cmyk]{0.98,0.13,0,0.43}%
-\settowidth{\Width}{ã‚ã„ã†ãˆãŠ}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{ã‚ã„ã†ãˆãŠ}\settodepth{\Depth}{ã‚ã„ã†ãˆãŠ}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(10.7500,14.2500){\hspace*{\Width}\raisebox{\Height}{ã‚ã„ã†ãˆãŠ}}%
-%
-%
-\special{pa 4626 -5709}\special{pa 4626 -5512}\special{pa 5906 -5512}\special{pa 5906 -5709}%
-\special{pa 4626 -5709}\special{sh 1}\special{ip}%
-\color[cmyk]{0.94,0.54,0,0}%
-\settowidth{\Width}{ã‚ã„ã†ãˆãŠ}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{ã‚ã„ã†ãˆãŠ}\settodepth{\Depth}{ã‚ã„ã†ãˆãŠ}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(10.7500,13.7500){\hspace*{\Width}\raisebox{\Height}{ã‚ã„ã†ãˆãŠ}}%
-%
-%
-\special{pa 4626 -5512}\special{pa 4626 -5315}\special{pa 5906 -5315}\special{pa 5906 -5512}%
-\special{pa 4626 -5512}\special{sh 1}\special{ip}%
-\color[cmyk]{1,0.5,0,0}%
-\settowidth{\Width}{ã‚ã„ã†ãˆãŠ}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{ã‚ã„ã†ãˆãŠ}\settodepth{\Depth}{ã‚ã„ã†ãˆãŠ}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(10.7500,13.2500){\hspace*{\Width}\raisebox{\Height}{ã‚ã„ã†ãˆãŠ}}%
-%
-%
-\special{pa 4626 -5315}\special{pa 4626 -5118}\special{pa 5906 -5118}\special{pa 5906 -5315}%
-\special{pa 4626 -5315}\special{sh 1}\special{ip}%
-\color[cmyk]{1,1,0,0}%
-\settowidth{\Width}{ã‚ã„ã†ãˆãŠ}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{ã‚ã„ã†ãˆãŠ}\settodepth{\Depth}{ã‚ã„ã†ãˆãŠ}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(10.7500,12.7500){\hspace*{\Width}\raisebox{\Height}{ã‚ã„ã†ãˆãŠ}}%
-%
-%
-\special{pa 4626 -5118}\special{pa 4626 -4921}\special{pa 5906 -4921}\special{pa 5906 -5118}%
-\special{pa 4626 -5118}\special{sh 1}\special{ip}%
-\color[cmyk]{0.94,0.11,0,0}%
-\settowidth{\Width}{ã‚ã„ã†ãˆãŠ}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{ã‚ã„ã†ãˆãŠ}\settodepth{\Depth}{ã‚ã„ã†ãˆãŠ}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(10.7500,12.2500){\hspace*{\Width}\raisebox{\Height}{ã‚ã„ã†ãˆãŠ}}%
-%
-%
-\special{pa 4626 -4921}\special{pa 4626 -4724}\special{pa 5906 -4724}\special{pa 5906 -4921}%
-\special{pa 4626 -4921}\special{sh 1}\special{ip}%
-\color[cmyk]{1,0,0,0}%
-\settowidth{\Width}{ã‚ã„ã†ãˆãŠ}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{ã‚ã„ã†ãˆãŠ}\settodepth{\Depth}{ã‚ã„ã†ãˆãŠ}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(10.7500,11.7500){\hspace*{\Width}\raisebox{\Height}{ã‚ã„ã†ãˆãŠ}}%
-%
-%
-\special{pa 4626 -4724}\special{pa 4626 -4528}\special{pa 5906 -4528}\special{pa 5906 -4724}%
-\special{pa 4626 -4724}\special{sh 1}\special{ip}%
-\color[cmyk]{0.96,0,0,0}%
-\settowidth{\Width}{ã‚ã„ã†ãˆãŠ}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{ã‚ã„ã†ãˆãŠ}\settodepth{\Depth}{ã‚ã„ã†ãˆãŠ}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(10.7500,11.2500){\hspace*{\Width}\raisebox{\Height}{ã‚ã„ã†ãˆãŠ}}%
-%
-%
-\special{pa 4626 -4528}\special{pa 4626 -4331}\special{pa 5906 -4331}\special{pa 5906 -4528}%
-\special{pa 4626 -4528}\special{sh 1}\special{ip}%
-\color[cmyk]{0.62,0,0.12,0}%
-\settowidth{\Width}{ã‚ã„ã†ãˆãŠ}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{ã‚ã„ã†ãˆãŠ}\settodepth{\Depth}{ã‚ã„ã†ãˆãŠ}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(10.7500,10.7500){\hspace*{\Width}\raisebox{\Height}{ã‚ã„ã†ãˆãŠ}}%
-%
-%
-\special{pa 4626 -4331}\special{pa 4626 -4134}\special{pa 5906 -4134}\special{pa 5906 -4331}%
-\special{pa 4626 -4331}\special{sh 1}\special{ip}%
-\color[cmyk]{0.85,0,0.2,0}%
-\settowidth{\Width}{ã‚ã„ã†ãˆãŠ}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{ã‚ã„ã†ãˆãŠ}\settodepth{\Depth}{ã‚ã„ã†ãˆãŠ}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(10.7500,10.2500){\hspace*{\Width}\raisebox{\Height}{ã‚ã„ã†ãˆãŠ}}%
-%
-%
-\special{pa 4626 -4134}\special{pa 4626 -3937}\special{pa 5906 -3937}\special{pa 5906 -4134}%
-\special{pa 4626 -4134}\special{sh 1}\special{ip}%
-\color[cmyk]{0.86,0,0.34,0.02}%
-\settowidth{\Width}{ã‚ã„ã†ãˆãŠ}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{ã‚ã„ã†ãˆãŠ}\settodepth{\Depth}{ã‚ã„ã†ãˆãŠ}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(10.7500,9.7500){\hspace*{\Width}\raisebox{\Height}{ã‚ã„ã†ãˆãŠ}}%
-%
-%
-\special{pa 4626 -3937}\special{pa 4626 -3740}\special{pa 5906 -3740}\special{pa 5906 -3937}%
-\special{pa 4626 -3937}\special{sh 1}\special{ip}%
-\color[cmyk]{0.82,0,0.3,0}%
-\settowidth{\Width}{ã‚ã„ã†ãˆãŠ}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{ã‚ã„ã†ãˆãŠ}\settodepth{\Depth}{ã‚ã„ã†ãˆãŠ}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(10.7500,9.2500){\hspace*{\Width}\raisebox{\Height}{ã‚ã„ã†ãˆãŠ}}%
-%
-%
-\special{pa 4626 -3740}\special{pa 4626 -3543}\special{pa 5906 -3543}\special{pa 5906 -3740}%
-\special{pa 4626 -3740}\special{sh 1}\special{ip}%
-\color[cmyk]{0.85,0,0.33,0}%
-\settowidth{\Width}{ã‚ã„ã†ãˆãŠ}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{ã‚ã„ã†ãˆãŠ}\settodepth{\Depth}{ã‚ã„ã†ãˆãŠ}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(10.7500,8.7500){\hspace*{\Width}\raisebox{\Height}{ã‚ã„ã†ãˆãŠ}}%
-%
-%
-\special{pa 4626 -3543}\special{pa 4626 -3346}\special{pa 5906 -3346}\special{pa 5906 -3543}%
-\special{pa 4626 -3543}\special{sh 1}\special{ip}%
-\color[cmyk]{1,0,0.5,0}%
-\settowidth{\Width}{ã‚ã„ã†ãˆãŠ}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{ã‚ã„ã†ãˆãŠ}\settodepth{\Depth}{ã‚ã„ã†ãˆãŠ}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(10.7500,8.2500){\hspace*{\Width}\raisebox{\Height}{ã‚ã„ã†ãˆãŠ}}%
-%
-%
-\special{pa 4626 -3346}\special{pa 4626 -3150}\special{pa 5906 -3150}\special{pa 5906 -3346}%
-\special{pa 4626 -3346}\special{sh 1}\special{ip}%
-\settowidth{\Width}{ã‚ã„ã†ãˆãŠ}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{ã‚ã„ã†ãˆãŠ}\settodepth{\Depth}{ã‚ã„ã†ãˆãŠ}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(10.7500,7.7500){\hspace*{\Width}\raisebox{\Height}{ã‚ã„ã†ãˆãŠ}}%
-%
-%
-\special{pa 4626 -3150}\special{pa 4626 -2953}\special{pa 5906 -2953}\special{pa 5906 -3150}%
-\special{pa 4626 -3150}\special{sh 1}\special{ip}%
-\color[cmyk]{0.69,0,0.5,0}%
-\settowidth{\Width}{ã‚ã„ã†ãˆãŠ}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{ã‚ã„ã†ãˆãŠ}\settodepth{\Depth}{ã‚ã„ã†ãˆãŠ}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(10.7500,7.2500){\hspace*{\Width}\raisebox{\Height}{ã‚ã„ã†ãˆãŠ}}%
-%
-%
-\special{pa 4626 -2953}\special{pa 4626 -2756}\special{pa 5906 -2756}\special{pa 5906 -2953}%
-\special{pa 4626 -2953}\special{sh 1}\special{ip}%
-\color[cmyk]{1,0,1,0}%
-\settowidth{\Width}{ã‚ã„ã†ãˆãŠ}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{ã‚ã„ã†ãˆãŠ}\settodepth{\Depth}{ã‚ã„ã†ãˆãŠ}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(10.7500,6.7500){\hspace*{\Width}\raisebox{\Height}{ã‚ã„ã†ãˆãŠ}}%
-%
-%
-\special{pa 4626 -2756}\special{pa 4626 -2559}\special{pa 5906 -2559}\special{pa 5906 -2756}%
-\special{pa 4626 -2756}\special{sh 1}\special{ip}%
-\settowidth{\Width}{ã‚ã„ã†ãˆãŠ}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{ã‚ã„ã†ãˆãŠ}\settodepth{\Depth}{ã‚ã„ã†ãˆãŠ}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(10.7500,6.2500){\hspace*{\Width}\raisebox{\Height}{ã‚ã„ã†ãˆãŠ}}%
-%
-%
-\special{pa 4626 -2559}\special{pa 4626 -2362}\special{pa 5906 -2362}\special{pa 5906 -2559}%
-\special{pa 4626 -2559}\special{sh 1}\special{ip}%
-\color[cmyk]{0.92,0,0.59,0.25}%
-\settowidth{\Width}{ã‚ã„ã†ãˆãŠ}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{ã‚ã„ã†ãˆãŠ}\settodepth{\Depth}{ã‚ã„ã†ãˆãŠ}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(10.7500,5.7500){\hspace*{\Width}\raisebox{\Height}{ã‚ã„ã†ãˆãŠ}}%
-%
-%
-\special{pa 4626 -2362}\special{pa 4626 -2165}\special{pa 5906 -2165}\special{pa 5906 -2362}%
-\special{pa 4626 -2362}\special{sh 1}\special{ip}%
-\color[cmyk]{0.5,0,1,0}%
-\settowidth{\Width}{ã‚ã„ã†ãˆãŠ}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{ã‚ã„ã†ãˆãŠ}\settodepth{\Depth}{ã‚ã„ã†ãˆãŠ}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(10.7500,5.2500){\hspace*{\Width}\raisebox{\Height}{ã‚ã„ã†ãˆãŠ}}%
-%
-%
-\special{pa 4626 -2165}\special{pa 4626 -1969}\special{pa 5906 -1969}\special{pa 5906 -2165}%
-\special{pa 4626 -2165}\special{sh 1}\special{ip}%
-\color[cmyk]{0.44,0,0.74,0}%
-\settowidth{\Width}{ã‚ã„ã†ãˆãŠ}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{ã‚ã„ã†ãˆãŠ}\settodepth{\Depth}{ã‚ã„ã†ãˆãŠ}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(10.7500,4.7500){\hspace*{\Width}\raisebox{\Height}{ã‚ã„ã†ãˆãŠ}}%
-%
-%
-\special{pa 4626 -1969}\special{pa 4626 -1772}\special{pa 5906 -1772}\special{pa 5906 -1969}%
-\special{pa 4626 -1969}\special{sh 1}\special{ip}%
-\color[cmyk]{0.26,0,0.76,0}%
-\settowidth{\Width}{ã‚ã„ã†ãˆãŠ}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{ã‚ã„ã†ãˆãŠ}\settodepth{\Depth}{ã‚ã„ã†ãˆãŠ}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(10.7500,4.2500){\hspace*{\Width}\raisebox{\Height}{ã‚ã„ã†ãˆãŠ}}%
-%
-%
-\special{pa 4626 -1772}\special{pa 4626 -1575}\special{pa 5906 -1575}\special{pa 5906 -1772}%
-\special{pa 4626 -1772}\special{sh 1}\special{ip}%
-\color[cmyk]{0.64,0,0.95,0.4}%
-\settowidth{\Width}{ã‚ã„ã†ãˆãŠ}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{ã‚ã„ã†ãˆãŠ}\settodepth{\Depth}{ã‚ã„ã†ãˆãŠ}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(10.7500,3.7500){\hspace*{\Width}\raisebox{\Height}{ã‚ã„ã†ãˆãŠ}}%
-%
-%
-\special{pa 4626 -1575}\special{pa 4626 -1378}\special{pa 5906 -1378}\special{pa 5906 -1575}%
-\special{pa 4626 -1575}\special{sh 1}\special{ip}%
-\color[cmyk]{0,0.72,1,0.45}%
-\settowidth{\Width}{ã‚ã„ã†ãˆãŠ}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{ã‚ã„ã†ãˆãŠ}\settodepth{\Depth}{ã‚ã„ã†ãˆãŠ}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(10.7500,3.2500){\hspace*{\Width}\raisebox{\Height}{ã‚ã„ã†ãˆãŠ}}%
-%
-%
-\special{pa 4626 -1378}\special{pa 4626 -1181}\special{pa 5906 -1181}\special{pa 5906 -1378}%
-\special{pa 4626 -1378}\special{sh 1}\special{ip}%
-\color[cmyk]{0,0.83,1,0.7}%
-\settowidth{\Width}{ã‚ã„ã†ãˆãŠ}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{ã‚ã„ã†ãˆãŠ}\settodepth{\Depth}{ã‚ã„ã†ãˆãŠ}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(10.7500,2.7500){\hspace*{\Width}\raisebox{\Height}{ã‚ã„ã†ãˆãŠ}}%
-%
-%
-\special{pa 4626 -1181}\special{pa 4626 -984}\special{pa 5906 -984}\special{pa 5906 -1181}%
-\special{pa 4626 -1181}\special{sh 1}\special{ip}%
-\color[cmyk]{0,0.81,1,0.6}%
-\settowidth{\Width}{ã‚ã„ã†ãˆãŠ}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{ã‚ã„ã†ãˆãŠ}\settodepth{\Depth}{ã‚ã„ã†ãˆãŠ}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(10.7500,2.2500){\hspace*{\Width}\raisebox{\Height}{ã‚ã„ã†ãˆãŠ}}%
-%
-%
-\special{pa 4626 -984}\special{pa 4626 -787}\special{pa 5906 -787}\special{pa 5906 -984}%
-\special{pa 4626 -984}\special{sh 1}\special{ip}%
-\color[cmyk]{0.14,0.42,0.56,0}%
-\settowidth{\Width}{ã‚ã„ã†ãˆãŠ}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{ã‚ã„ã†ãˆãŠ}\settodepth{\Depth}{ã‚ã„ã†ãˆãŠ}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(10.7500,1.7500){\hspace*{\Width}\raisebox{\Height}{ã‚ã„ã†ãˆãŠ}}%
-%
-%
-\special{pa 4626 -787}\special{pa 4626 -591}\special{pa 5906 -591}\special{pa 5906 -787}%
-\special{pa 4626 -787}\special{sh 1}\special{ip}%
-\color[cmyk]{0,0,0,0.5}%
-\settowidth{\Width}{ã‚ã„ã†ãˆãŠ}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{ã‚ã„ã†ãˆãŠ}\settodepth{\Depth}{ã‚ã„ã†ãˆãŠ}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(10.7500,1.2500){\hspace*{\Width}\raisebox{\Height}{ã‚ã„ã†ãˆãŠ}}%
-%
-%
-\special{pa 4626 -591}\special{pa 4626 -394}\special{pa 5906 -394}\special{pa 5906 -591}%
-\special{pa 4626 -591}\special{sh 1}\special{ip}%
-\color[cmyk]{0,0,0,1}%
-\settowidth{\Width}{ã‚ã„ã†ãˆãŠ}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{ã‚ã„ã†ãˆãŠ}\settodepth{\Depth}{ã‚ã„ã†ãˆãŠ}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(10.7500,0.7500){\hspace*{\Width}\raisebox{\Height}{ã‚ã„ã†ãˆãŠ}}%
-%
-%
-\special{pa 4626 -394}\special{pa 4626 -197}\special{pa 5906 -197}\special{pa 5906 -394}%
-\special{pa 4626 -394}\special{sh 1}\special{ip}%
-\color[cmyk]{0,0,0,0}%
-\settowidth{\Width}{ã‚ã„ã†ãˆãŠ}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{ã‚ã„ã†ãˆãŠ}\settodepth{\Depth}{ã‚ã„ã†ãˆãŠ}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(10.7500,0.2500){\hspace*{\Width}\raisebox{\Height}{ã‚ã„ã†ãˆãŠ}}%
-%
-%
-\special{pa 4626 -197}\special{pa 4626 0}\special{pa 5906 0}\special{pa 5906 -197}%
-\special{pa 4626 -197}\special{sh 1}\special{ip}%
-\color[cmyk]{0,0,0,1}%
-\special{pa 0 -6890}\special{pa 1083 -6890}%
-\special{fp}%
-\special{pa 1083 -6890}\special{pa 2461 -6890}%
-\special{fp}%
-\special{pa 2461 -6890}\special{pa 3839 -6890}%
-\special{fp}%
-\special{pa 3839 -6890}\special{pa 4626 -6890}%
-\special{fp}%
-\special{pa 4626 -6890}\special{pa 5906 -6890}%
-\special{fp}%
-\special{pa 0 -6693}\special{pa 1083 -6693}%
-\special{fp}%
-\special{pa 1083 -6693}\special{pa 2461 -6693}%
-\special{fp}%
-\special{pa 2461 -6693}\special{pa 3839 -6693}%
-\special{fp}%
-\special{pa 3839 -6693}\special{pa 4626 -6693}%
-\special{fp}%
-\special{pa 4626 -6693}\special{pa 5906 -6693}%
-\special{fp}%
-\special{pa 0 -6496}\special{pa 1083 -6496}%
-\special{fp}%
-\special{pa 1083 -6496}\special{pa 2461 -6496}%
-\special{fp}%
-\special{pa 2461 -6496}\special{pa 3839 -6496}%
-\special{fp}%
-\special{pa 3839 -6496}\special{pa 4626 -6496}%
-\special{fp}%
-\special{pa 4626 -6496}\special{pa 5906 -6496}%
-\special{fp}%
-\special{pa 0 -6299}\special{pa 1083 -6299}%
-\special{fp}%
-\special{pa 1083 -6299}\special{pa 2461 -6299}%
-\special{fp}%
-\special{pa 2461 -6299}\special{pa 3839 -6299}%
-\special{fp}%
-\special{pa 3839 -6299}\special{pa 4626 -6299}%
-\special{fp}%
-\special{pa 4626 -6299}\special{pa 5906 -6299}%
-\special{fp}%
-\special{pa 0 -6102}\special{pa 1083 -6102}%
-\special{fp}%
-\special{pa 1083 -6102}\special{pa 2461 -6102}%
-\special{fp}%
-\special{pa 2461 -6102}\special{pa 3839 -6102}%
-\special{fp}%
-\special{pa 3839 -6102}\special{pa 4626 -6102}%
-\special{fp}%
-\special{pa 4626 -6102}\special{pa 5906 -6102}%
-\special{fp}%
-\special{pa 0 -5906}\special{pa 1083 -5906}%
-\special{fp}%
-\special{pa 1083 -5906}\special{pa 2461 -5906}%
-\special{fp}%
-\special{pa 2461 -5906}\special{pa 3839 -5906}%
-\special{fp}%
-\special{pa 3839 -5906}\special{pa 4626 -5906}%
-\special{fp}%
-\special{pa 4626 -5906}\special{pa 5906 -5906}%
-\special{fp}%
-\special{pa 0 -5709}\special{pa 1083 -5709}%
-\special{fp}%
-\special{pa 1083 -5709}\special{pa 2461 -5709}%
-\special{fp}%
-\special{pa 2461 -5709}\special{pa 3839 -5709}%
-\special{fp}%
-\special{pa 3839 -5709}\special{pa 4626 -5709}%
-\special{fp}%
-\special{pa 4626 -5709}\special{pa 5906 -5709}%
-\special{fp}%
-\special{pa 0 -5512}\special{pa 1083 -5512}%
-\special{fp}%
-\special{pa 1083 -5512}\special{pa 2461 -5512}%
-\special{fp}%
-\special{pa 2461 -5512}\special{pa 3839 -5512}%
-\special{fp}%
-\special{pa 3839 -5512}\special{pa 4626 -5512}%
-\special{fp}%
-\special{pa 4626 -5512}\special{pa 5906 -5512}%
-\special{fp}%
-\special{pa 0 -5315}\special{pa 1083 -5315}%
-\special{fp}%
-\special{pa 1083 -5315}\special{pa 2461 -5315}%
-\special{fp}%
-\special{pa 2461 -5315}\special{pa 3839 -5315}%
-\special{fp}%
-\special{pa 3839 -5315}\special{pa 4626 -5315}%
-\special{fp}%
-\special{pa 4626 -5315}\special{pa 5906 -5315}%
-\special{fp}%
-\special{pa 0 -5118}\special{pa 1083 -5118}%
-\special{fp}%
-\special{pa 1083 -5118}\special{pa 2461 -5118}%
-\special{fp}%
-\special{pa 2461 -5118}\special{pa 3839 -5118}%
-\special{fp}%
-\special{pa 3839 -5118}\special{pa 4626 -5118}%
-\special{fp}%
-\special{pa 4626 -5118}\special{pa 5906 -5118}%
-\special{fp}%
-\special{pa 0 -4921}\special{pa 1083 -4921}%
-\special{fp}%
-\special{pa 1083 -4921}\special{pa 2461 -4921}%
-\special{fp}%
-\special{pa 2461 -4921}\special{pa 3839 -4921}%
-\special{fp}%
-\special{pa 3839 -4921}\special{pa 4626 -4921}%
-\special{fp}%
-\special{pa 4626 -4921}\special{pa 5906 -4921}%
-\special{fp}%
-\special{pa 0 -4724}\special{pa 1083 -4724}%
-\special{fp}%
-\special{pa 1083 -4724}\special{pa 2461 -4724}%
-\special{fp}%
-\special{pa 2461 -4724}\special{pa 3839 -4724}%
-\special{fp}%
-\special{pa 3839 -4724}\special{pa 4626 -4724}%
-\special{fp}%
-\special{pa 4626 -4724}\special{pa 5906 -4724}%
-\special{fp}%
-\special{pa 0 -4528}\special{pa 1083 -4528}%
-\special{fp}%
-\special{pa 1083 -4528}\special{pa 2461 -4528}%
-\special{fp}%
-\special{pa 2461 -4528}\special{pa 3839 -4528}%
-\special{fp}%
-\special{pa 3839 -4528}\special{pa 4626 -4528}%
-\special{fp}%
-\special{pa 4626 -4528}\special{pa 5906 -4528}%
-\special{fp}%
-\special{pa 0 -4331}\special{pa 1083 -4331}%
-\special{fp}%
-\special{pa 1083 -4331}\special{pa 2461 -4331}%
-\special{fp}%
-\special{pa 2461 -4331}\special{pa 3839 -4331}%
-\special{fp}%
-\special{pa 3839 -4331}\special{pa 4626 -4331}%
-\special{fp}%
-\special{pa 4626 -4331}\special{pa 5906 -4331}%
-\special{fp}%
-\special{pa 0 -4134}\special{pa 1083 -4134}%
-\special{fp}%
-\special{pa 1083 -4134}\special{pa 2461 -4134}%
-\special{fp}%
-\special{pa 2461 -4134}\special{pa 3839 -4134}%
-\special{fp}%
-\special{pa 3839 -4134}\special{pa 4626 -4134}%
-\special{fp}%
-\special{pa 4626 -4134}\special{pa 5906 -4134}%
-\special{fp}%
-\special{pa 0 -3937}\special{pa 1083 -3937}%
-\special{fp}%
-\special{pa 1083 -3937}\special{pa 2461 -3937}%
-\special{fp}%
-\special{pa 2461 -3937}\special{pa 3839 -3937}%
-\special{fp}%
-\special{pa 3839 -3937}\special{pa 4626 -3937}%
-\special{fp}%
-\special{pa 4626 -3937}\special{pa 5906 -3937}%
-\special{fp}%
-\special{pa 0 -3740}\special{pa 1083 -3740}%
-\special{fp}%
-\special{pa 1083 -3740}\special{pa 2461 -3740}%
-\special{fp}%
-\special{pa 2461 -3740}\special{pa 3839 -3740}%
-\special{fp}%
-\special{pa 3839 -3740}\special{pa 4626 -3740}%
-\special{fp}%
-\special{pa 4626 -3740}\special{pa 5906 -3740}%
-\special{fp}%
-\special{pa 0 -3543}\special{pa 1083 -3543}%
-\special{fp}%
-\special{pa 1083 -3543}\special{pa 2461 -3543}%
-\special{fp}%
-\special{pa 2461 -3543}\special{pa 3839 -3543}%
-\special{fp}%
-\special{pa 3839 -3543}\special{pa 4626 -3543}%
-\special{fp}%
-\special{pa 4626 -3543}\special{pa 5906 -3543}%
-\special{fp}%
-\special{pa 0 -3346}\special{pa 1083 -3346}%
-\special{fp}%
-\special{pa 1083 -3346}\special{pa 2461 -3346}%
-\special{fp}%
-\special{pa 2461 -3346}\special{pa 3839 -3346}%
-\special{fp}%
-\special{pa 3839 -3346}\special{pa 4626 -3346}%
-\special{fp}%
-\special{pa 4626 -3346}\special{pa 5906 -3346}%
-\special{fp}%
-\special{pa 0 -3150}\special{pa 1083 -3150}%
-\special{fp}%
-\special{pa 1083 -3150}\special{pa 2461 -3150}%
-\special{fp}%
-\special{pa 2461 -3150}\special{pa 3839 -3150}%
-\special{fp}%
-\special{pa 3839 -3150}\special{pa 4626 -3150}%
-\special{fp}%
-\special{pa 4626 -3150}\special{pa 5906 -3150}%
-\special{fp}%
-\special{pa 0 -2953}\special{pa 1083 -2953}%
-\special{fp}%
-\special{pa 1083 -2953}\special{pa 2461 -2953}%
-\special{fp}%
-\special{pa 2461 -2953}\special{pa 3839 -2953}%
-\special{fp}%
-\special{pa 3839 -2953}\special{pa 4626 -2953}%
-\special{fp}%
-\special{pa 4626 -2953}\special{pa 5906 -2953}%
-\special{fp}%
-\special{pa 0 -2756}\special{pa 1083 -2756}%
-\special{fp}%
-\special{pa 1083 -2756}\special{pa 2461 -2756}%
-\special{fp}%
-\special{pa 2461 -2756}\special{pa 3839 -2756}%
-\special{fp}%
-\special{pa 3839 -2756}\special{pa 4626 -2756}%
-\special{fp}%
-\special{pa 4626 -2756}\special{pa 5906 -2756}%
-\special{fp}%
-\special{pa 0 -2559}\special{pa 1083 -2559}%
-\special{fp}%
-\special{pa 1083 -2559}\special{pa 2461 -2559}%
-\special{fp}%
-\special{pa 2461 -2559}\special{pa 3839 -2559}%
-\special{fp}%
-\special{pa 3839 -2559}\special{pa 4626 -2559}%
-\special{fp}%
-\special{pa 4626 -2559}\special{pa 5906 -2559}%
-\special{fp}%
-\special{pa 0 -2362}\special{pa 1083 -2362}%
-\special{fp}%
-\special{pa 1083 -2362}\special{pa 2461 -2362}%
-\special{fp}%
-\special{pa 2461 -2362}\special{pa 3839 -2362}%
-\special{fp}%
-\special{pa 3839 -2362}\special{pa 4626 -2362}%
-\special{fp}%
-\special{pa 4626 -2362}\special{pa 5906 -2362}%
-\special{fp}%
-\special{pa 0 -2165}\special{pa 1083 -2165}%
-\special{fp}%
-\special{pa 1083 -2165}\special{pa 2461 -2165}%
-\special{fp}%
-\special{pa 2461 -2165}\special{pa 3839 -2165}%
-\special{fp}%
-\special{pa 3839 -2165}\special{pa 4626 -2165}%
-\special{fp}%
-\special{pa 4626 -2165}\special{pa 5906 -2165}%
-\special{fp}%
-\special{pa 0 -1969}\special{pa 1083 -1969}%
-\special{fp}%
-\special{pa 1083 -1969}\special{pa 2461 -1969}%
-\special{fp}%
-\special{pa 2461 -1969}\special{pa 3839 -1969}%
-\special{fp}%
-\special{pa 3839 -1969}\special{pa 4626 -1969}%
-\special{fp}%
-\special{pa 4626 -1969}\special{pa 5906 -1969}%
-\special{fp}%
-\special{pa 0 -1772}\special{pa 1083 -1772}%
-\special{fp}%
-\special{pa 1083 -1772}\special{pa 2461 -1772}%
-\special{fp}%
-\special{pa 2461 -1772}\special{pa 3839 -1772}%
-\special{fp}%
-\special{pa 3839 -1772}\special{pa 4626 -1772}%
-\special{fp}%
-\special{pa 4626 -1772}\special{pa 5906 -1772}%
-\special{fp}%
-\special{pa 0 -1575}\special{pa 1083 -1575}%
-\special{fp}%
-\special{pa 1083 -1575}\special{pa 2461 -1575}%
-\special{fp}%
-\special{pa 2461 -1575}\special{pa 3839 -1575}%
-\special{fp}%
-\special{pa 3839 -1575}\special{pa 4626 -1575}%
-\special{fp}%
-\special{pa 4626 -1575}\special{pa 5906 -1575}%
-\special{fp}%
-\special{pa 0 -1378}\special{pa 1083 -1378}%
-\special{fp}%
-\special{pa 1083 -1378}\special{pa 2461 -1378}%
-\special{fp}%
-\special{pa 2461 -1378}\special{pa 3839 -1378}%
-\special{fp}%
-\special{pa 3839 -1378}\special{pa 4626 -1378}%
-\special{fp}%
-\special{pa 4626 -1378}\special{pa 5906 -1378}%
-\special{fp}%
-\special{pa 0 -1181}\special{pa 1083 -1181}%
-\special{fp}%
-\special{pa 1083 -1181}\special{pa 2461 -1181}%
-\special{fp}%
-\special{pa 2461 -1181}\special{pa 3839 -1181}%
-\special{fp}%
-\special{pa 3839 -1181}\special{pa 4626 -1181}%
-\special{fp}%
-\special{pa 4626 -1181}\special{pa 5906 -1181}%
-\special{fp}%
-\special{pa 0 -984}\special{pa 1083 -984}%
-\special{fp}%
-\special{pa 1083 -984}\special{pa 2461 -984}%
-\special{fp}%
-\special{pa 2461 -984}\special{pa 3839 -984}%
-\special{fp}%
-\special{pa 3839 -984}\special{pa 4626 -984}%
-\special{fp}%
-\special{pa 4626 -984}\special{pa 5906 -984}%
-\special{fp}%
-\special{pa 0 -787}\special{pa 1083 -787}%
-\special{fp}%
-\special{pa 1083 -787}\special{pa 2461 -787}%
-\special{fp}%
-\special{pa 2461 -787}\special{pa 3839 -787}%
-\special{fp}%
-\special{pa 3839 -787}\special{pa 4626 -787}%
-\special{fp}%
-\special{pa 4626 -787}\special{pa 5906 -787}%
-\special{fp}%
-\special{pa 0 -591}\special{pa 1083 -591}%
-\special{fp}%
-\special{pa 1083 -591}\special{pa 2461 -591}%
-\special{fp}%
-\special{pa 2461 -591}\special{pa 3839 -591}%
-\special{fp}%
-\special{pa 3839 -591}\special{pa 4626 -591}%
-\special{fp}%
-\special{pa 4626 -591}\special{pa 5906 -591}%
-\special{fp}%
-\special{pa 0 -394}\special{pa 1083 -394}%
-\special{fp}%
-\special{pa 1083 -394}\special{pa 2461 -394}%
-\special{fp}%
-\special{pa 2461 -394}\special{pa 3839 -394}%
-\special{fp}%
-\special{pa 3839 -394}\special{pa 4626 -394}%
-\special{fp}%
-\special{pa 4626 -394}\special{pa 5906 -394}%
-\special{fp}%
-\special{pa 0 -197}\special{pa 1083 -197}%
-\special{fp}%
-\special{pa 1083 -197}\special{pa 2461 -197}%
-\special{fp}%
-\special{pa 2461 -197}\special{pa 3839 -197}%
-\special{fp}%
-\special{pa 3839 -197}\special{pa 4626 -197}%
-\special{fp}%
-\special{pa 4626 -197}\special{pa 5906 -197}%
-\special{fp}%
-\special{pa 0 0}\special{pa 1083 0}%
-\special{fp}%
-\special{pa 1083 0}\special{pa 2461 0}%
-\special{fp}%
-\special{pa 2461 0}\special{pa 3839 0}%
-\special{fp}%
-\special{pa 3839 0}\special{pa 4626 0}%
-\special{fp}%
-\special{pa 4626 0}\special{pa 5906 0}%
-\special{fp}%
-\special{pa 0 -6890}\special{pa 0 -6693}%
-\special{fp}%
-\special{pa 0 -6693}\special{pa 0 -6496}%
-\special{fp}%
-\special{pa 0 -6496}\special{pa 0 -6299}%
-\special{fp}%
-\special{pa 0 -6299}\special{pa 0 -6102}%
-\special{fp}%
-\special{pa 0 -6102}\special{pa 0 -5906}%
-\special{fp}%
-\special{pa 0 -5906}\special{pa 0 -5709}%
-\special{fp}%
-\special{pa 0 -5709}\special{pa 0 -5512}%
-\special{fp}%
-\special{pa 0 -5512}\special{pa 0 -5315}%
-\special{fp}%
-\special{pa 0 -5315}\special{pa 0 -5118}%
-\special{fp}%
-\special{pa 0 -5118}\special{pa 0 -4921}%
-\special{fp}%
-\special{pa 0 -4921}\special{pa 0 -4724}%
-\special{fp}%
-\special{pa 0 -4724}\special{pa 0 -4528}%
-\special{fp}%
-\special{pa 0 -4528}\special{pa 0 -4331}%
-\special{fp}%
-\special{pa 0 -4331}\special{pa 0 -4134}%
-\special{fp}%
-\special{pa 0 -4134}\special{pa 0 -3937}%
-\special{fp}%
-\special{pa 0 -3937}\special{pa 0 -3740}%
-\special{fp}%
-\special{pa 0 -3740}\special{pa 0 -3543}%
-\special{fp}%
-\special{pa 0 -3543}\special{pa 0 -3346}%
-\special{fp}%
-\special{pa 0 -3346}\special{pa 0 -3150}%
-\special{fp}%
-\special{pa 0 -3150}\special{pa 0 -2953}%
-\special{fp}%
-\special{pa 0 -2953}\special{pa 0 -2756}%
-\special{fp}%
-\special{pa 0 -2756}\special{pa 0 -2559}%
-\special{fp}%
-\special{pa 0 -2559}\special{pa 0 -2362}%
-\special{fp}%
-\special{pa 0 -2362}\special{pa 0 -2165}%
-\special{fp}%
-\special{pa 0 -2165}\special{pa 0 -1969}%
-\special{fp}%
-\special{pa 0 -1969}\special{pa 0 -1772}%
-\special{fp}%
-\special{pa 0 -1772}\special{pa 0 -1575}%
-\special{fp}%
-\special{pa 0 -1575}\special{pa 0 -1378}%
-\special{fp}%
-\special{pa 0 -1378}\special{pa 0 -1181}%
-\special{fp}%
-\special{pa 0 -1181}\special{pa 0 -984}%
-\special{fp}%
-\special{pa 0 -984}\special{pa 0 -787}%
-\special{fp}%
-\special{pa 0 -787}\special{pa 0 -591}%
-\special{fp}%
-\special{pa 0 -591}\special{pa 0 -394}%
-\special{fp}%
-\special{pa 0 -394}\special{pa 0 -197}%
-\special{fp}%
-\special{pa 0 -197}\special{pa 0 0}%
-\special{fp}%
-\special{pa 1083 -6890}\special{pa 1083 -6693}%
-\special{fp}%
-\special{pa 1083 -6693}\special{pa 1083 -6496}%
-\special{fp}%
-\special{pa 1083 -6496}\special{pa 1083 -6299}%
-\special{fp}%
-\special{pa 1083 -6299}\special{pa 1083 -6102}%
-\special{fp}%
-\special{pa 1083 -6102}\special{pa 1083 -5906}%
-\special{fp}%
-\special{pa 1083 -5906}\special{pa 1083 -5709}%
-\special{fp}%
-\special{pa 1083 -5709}\special{pa 1083 -5512}%
-\special{fp}%
-\special{pa 1083 -5512}\special{pa 1083 -5315}%
-\special{fp}%
-\special{pa 1083 -5315}\special{pa 1083 -5118}%
-\special{fp}%
-\special{pa 1083 -5118}\special{pa 1083 -4921}%
-\special{fp}%
-\special{pa 1083 -4921}\special{pa 1083 -4724}%
-\special{fp}%
-\special{pa 1083 -4724}\special{pa 1083 -4528}%
-\special{fp}%
-\special{pa 1083 -4528}\special{pa 1083 -4331}%
-\special{fp}%
-\special{pa 1083 -4331}\special{pa 1083 -4134}%
-\special{fp}%
-\special{pa 1083 -4134}\special{pa 1083 -3937}%
-\special{fp}%
-\special{pa 1083 -3937}\special{pa 1083 -3740}%
-\special{fp}%
-\special{pa 1083 -3740}\special{pa 1083 -3543}%
-\special{fp}%
-\special{pa 1083 -3543}\special{pa 1083 -3346}%
-\special{fp}%
-\special{pa 1083 -3346}\special{pa 1083 -3150}%
-\special{fp}%
-\special{pa 1083 -3150}\special{pa 1083 -2953}%
-\special{fp}%
-\special{pa 1083 -2953}\special{pa 1083 -2756}%
-\special{fp}%
-\special{pa 1083 -2756}\special{pa 1083 -2559}%
-\special{fp}%
-\special{pa 1083 -2559}\special{pa 1083 -2362}%
-\special{fp}%
-\special{pa 1083 -2362}\special{pa 1083 -2165}%
-\special{fp}%
-\special{pa 1083 -2165}\special{pa 1083 -1969}%
-\special{fp}%
-\special{pa 1083 -1969}\special{pa 1083 -1772}%
-\special{fp}%
-\special{pa 1083 -1772}\special{pa 1083 -1575}%
-\special{fp}%
-\special{pa 1083 -1575}\special{pa 1083 -1378}%
-\special{fp}%
-\special{pa 1083 -1378}\special{pa 1083 -1181}%
-\special{fp}%
-\special{pa 1083 -1181}\special{pa 1083 -984}%
-\special{fp}%
-\special{pa 1083 -984}\special{pa 1083 -787}%
-\special{fp}%
-\special{pa 1083 -787}\special{pa 1083 -591}%
-\special{fp}%
-\special{pa 1083 -591}\special{pa 1083 -394}%
-\special{fp}%
-\special{pa 1083 -394}\special{pa 1083 -197}%
-\special{fp}%
-\special{pa 1083 -197}\special{pa 1083 0}%
-\special{fp}%
-\special{pa 2461 -6890}\special{pa 2461 -6693}%
-\special{fp}%
-\special{pa 2461 -6693}\special{pa 2461 -6496}%
-\special{fp}%
-\special{pa 2461 -6496}\special{pa 2461 -6299}%
-\special{fp}%
-\special{pa 2461 -6299}\special{pa 2461 -6102}%
-\special{fp}%
-\special{pa 2461 -6102}\special{pa 2461 -5906}%
-\special{fp}%
-\special{pa 2461 -5906}\special{pa 2461 -5709}%
-\special{fp}%
-\special{pa 2461 -5709}\special{pa 2461 -5512}%
-\special{fp}%
-\special{pa 2461 -5512}\special{pa 2461 -5315}%
-\special{fp}%
-\special{pa 2461 -5315}\special{pa 2461 -5118}%
-\special{fp}%
-\special{pa 2461 -5118}\special{pa 2461 -4921}%
-\special{fp}%
-\special{pa 2461 -4921}\special{pa 2461 -4724}%
-\special{fp}%
-\special{pa 2461 -4724}\special{pa 2461 -4528}%
-\special{fp}%
-\special{pa 2461 -4528}\special{pa 2461 -4331}%
-\special{fp}%
-\special{pa 2461 -4331}\special{pa 2461 -4134}%
-\special{fp}%
-\special{pa 2461 -4134}\special{pa 2461 -3937}%
-\special{fp}%
-\special{pa 2461 -3937}\special{pa 2461 -3740}%
-\special{fp}%
-\special{pa 2461 -3740}\special{pa 2461 -3543}%
-\special{fp}%
-\special{pa 2461 -3543}\special{pa 2461 -3346}%
-\special{fp}%
-\special{pa 2461 -3346}\special{pa 2461 -3150}%
-\special{fp}%
-\special{pa 2461 -3150}\special{pa 2461 -2953}%
-\special{fp}%
-\special{pa 2461 -2953}\special{pa 2461 -2756}%
-\special{fp}%
-\special{pa 2461 -2756}\special{pa 2461 -2559}%
-\special{fp}%
-\special{pa 2461 -2559}\special{pa 2461 -2362}%
-\special{fp}%
-\special{pa 2461 -2362}\special{pa 2461 -2165}%
-\special{fp}%
-\special{pa 2461 -2165}\special{pa 2461 -1969}%
-\special{fp}%
-\special{pa 2461 -1969}\special{pa 2461 -1772}%
-\special{fp}%
-\special{pa 2461 -1772}\special{pa 2461 -1575}%
-\special{fp}%
-\special{pa 2461 -1575}\special{pa 2461 -1378}%
-\special{fp}%
-\special{pa 2461 -1378}\special{pa 2461 -1181}%
-\special{fp}%
-\special{pa 2461 -1181}\special{pa 2461 -984}%
-\special{fp}%
-\special{pa 2461 -984}\special{pa 2461 -787}%
-\special{fp}%
-\special{pa 2461 -787}\special{pa 2461 -591}%
-\special{fp}%
-\special{pa 2461 -591}\special{pa 2461 -394}%
-\special{fp}%
-\special{pa 2461 -394}\special{pa 2461 -197}%
-\special{fp}%
-\special{pa 2461 -197}\special{pa 2461 0}%
-\special{fp}%
-\special{pa 3839 -6890}\special{pa 3839 -6693}%
-\special{fp}%
-\special{pa 3839 -6693}\special{pa 3839 -6496}%
-\special{fp}%
-\special{pa 3839 -6496}\special{pa 3839 -6299}%
-\special{fp}%
-\special{pa 3839 -6299}\special{pa 3839 -6102}%
-\special{fp}%
-\special{pa 3839 -6102}\special{pa 3839 -5906}%
-\special{fp}%
-\special{pa 3839 -5906}\special{pa 3839 -5709}%
-\special{fp}%
-\special{pa 3839 -5709}\special{pa 3839 -5512}%
-\special{fp}%
-\special{pa 3839 -5512}\special{pa 3839 -5315}%
-\special{fp}%
-\special{pa 3839 -5315}\special{pa 3839 -5118}%
-\special{fp}%
-\special{pa 3839 -5118}\special{pa 3839 -4921}%
-\special{fp}%
-\special{pa 3839 -4921}\special{pa 3839 -4724}%
-\special{fp}%
-\special{pa 3839 -4724}\special{pa 3839 -4528}%
-\special{fp}%
-\special{pa 3839 -4528}\special{pa 3839 -4331}%
-\special{fp}%
-\special{pa 3839 -4331}\special{pa 3839 -4134}%
-\special{fp}%
-\special{pa 3839 -4134}\special{pa 3839 -3937}%
-\special{fp}%
-\special{pa 3839 -3937}\special{pa 3839 -3740}%
-\special{fp}%
-\special{pa 3839 -3740}\special{pa 3839 -3543}%
-\special{fp}%
-\special{pa 3839 -3543}\special{pa 3839 -3346}%
-\special{fp}%
-\special{pa 3839 -3346}\special{pa 3839 -3150}%
-\special{fp}%
-\special{pa 3839 -3150}\special{pa 3839 -2953}%
-\special{fp}%
-\special{pa 3839 -2953}\special{pa 3839 -2756}%
-\special{fp}%
-\special{pa 3839 -2756}\special{pa 3839 -2559}%
-\special{fp}%
-\special{pa 3839 -2559}\special{pa 3839 -2362}%
-\special{fp}%
-\special{pa 3839 -2362}\special{pa 3839 -2165}%
-\special{fp}%
-\special{pa 3839 -2165}\special{pa 3839 -1969}%
-\special{fp}%
-\special{pa 3839 -1969}\special{pa 3839 -1772}%
-\special{fp}%
-\special{pa 3839 -1772}\special{pa 3839 -1575}%
-\special{fp}%
-\special{pa 3839 -1575}\special{pa 3839 -1378}%
-\special{fp}%
-\special{pa 3839 -1378}\special{pa 3839 -1181}%
-\special{fp}%
-\special{pa 3839 -1181}\special{pa 3839 -984}%
-\special{fp}%
-\special{pa 3839 -984}\special{pa 3839 -787}%
-\special{fp}%
-\special{pa 3839 -787}\special{pa 3839 -591}%
-\special{fp}%
-\special{pa 3839 -591}\special{pa 3839 -394}%
-\special{fp}%
-\special{pa 3839 -394}\special{pa 3839 -197}%
-\special{fp}%
-\special{pa 3839 -197}\special{pa 3839 0}%
-\special{fp}%
-\special{pa 4626 -6890}\special{pa 4626 -6693}%
-\special{fp}%
-\special{pa 4626 -6693}\special{pa 4626 -6496}%
-\special{fp}%
-\special{pa 4626 -6496}\special{pa 4626 -6299}%
-\special{fp}%
-\special{pa 4626 -6299}\special{pa 4626 -6102}%
-\special{fp}%
-\special{pa 4626 -6102}\special{pa 4626 -5906}%
-\special{fp}%
-\special{pa 4626 -5906}\special{pa 4626 -5709}%
-\special{fp}%
-\special{pa 4626 -5709}\special{pa 4626 -5512}%
-\special{fp}%
-\special{pa 4626 -5512}\special{pa 4626 -5315}%
-\special{fp}%
-\special{pa 4626 -5315}\special{pa 4626 -5118}%
-\special{fp}%
-\special{pa 4626 -5118}\special{pa 4626 -4921}%
-\special{fp}%
-\special{pa 4626 -4921}\special{pa 4626 -4724}%
-\special{fp}%
-\special{pa 4626 -4724}\special{pa 4626 -4528}%
-\special{fp}%
-\special{pa 4626 -4528}\special{pa 4626 -4331}%
-\special{fp}%
-\special{pa 4626 -4331}\special{pa 4626 -4134}%
-\special{fp}%
-\special{pa 4626 -4134}\special{pa 4626 -3937}%
-\special{fp}%
-\special{pa 4626 -3937}\special{pa 4626 -3740}%
-\special{fp}%
-\special{pa 4626 -3740}\special{pa 4626 -3543}%
-\special{fp}%
-\special{pa 4626 -3543}\special{pa 4626 -3346}%
-\special{fp}%
-\special{pa 4626 -3346}\special{pa 4626 -3150}%
-\special{fp}%
-\special{pa 4626 -3150}\special{pa 4626 -2953}%
-\special{fp}%
-\special{pa 4626 -2953}\special{pa 4626 -2756}%
-\special{fp}%
-\special{pa 4626 -2756}\special{pa 4626 -2559}%
-\special{fp}%
-\special{pa 4626 -2559}\special{pa 4626 -2362}%
-\special{fp}%
-\special{pa 4626 -2362}\special{pa 4626 -2165}%
-\special{fp}%
-\special{pa 4626 -2165}\special{pa 4626 -1969}%
-\special{fp}%
-\special{pa 4626 -1969}\special{pa 4626 -1772}%
-\special{fp}%
-\special{pa 4626 -1772}\special{pa 4626 -1575}%
-\special{fp}%
-\special{pa 4626 -1575}\special{pa 4626 -1378}%
-\special{fp}%
-\special{pa 4626 -1378}\special{pa 4626 -1181}%
-\special{fp}%
-\special{pa 4626 -1181}\special{pa 4626 -984}%
-\special{fp}%
-\special{pa 4626 -984}\special{pa 4626 -787}%
-\special{fp}%
-\special{pa 4626 -787}\special{pa 4626 -591}%
-\special{fp}%
-\special{pa 4626 -591}\special{pa 4626 -394}%
-\special{fp}%
-\special{pa 4626 -394}\special{pa 4626 -197}%
-\special{fp}%
-\special{pa 4626 -197}\special{pa 4626 0}%
-\special{fp}%
-\special{pa 5906 -6890}\special{pa 5906 -6693}%
-\special{fp}%
-\special{pa 5906 -6693}\special{pa 5906 -6496}%
-\special{fp}%
-\special{pa 5906 -6496}\special{pa 5906 -6299}%
-\special{fp}%
-\special{pa 5906 -6299}\special{pa 5906 -6102}%
-\special{fp}%
-\special{pa 5906 -6102}\special{pa 5906 -5906}%
-\special{fp}%
-\special{pa 5906 -5906}\special{pa 5906 -5709}%
-\special{fp}%
-\special{pa 5906 -5709}\special{pa 5906 -5512}%
-\special{fp}%
-\special{pa 5906 -5512}\special{pa 5906 -5315}%
-\special{fp}%
-\special{pa 5906 -5315}\special{pa 5906 -5118}%
-\special{fp}%
-\special{pa 5906 -5118}\special{pa 5906 -4921}%
-\special{fp}%
-\special{pa 5906 -4921}\special{pa 5906 -4724}%
-\special{fp}%
-\special{pa 5906 -4724}\special{pa 5906 -4528}%
-\special{fp}%
-\special{pa 5906 -4528}\special{pa 5906 -4331}%
-\special{fp}%
-\special{pa 5906 -4331}\special{pa 5906 -4134}%
-\special{fp}%
-\special{pa 5906 -4134}\special{pa 5906 -3937}%
-\special{fp}%
-\special{pa 5906 -3937}\special{pa 5906 -3740}%
-\special{fp}%
-\special{pa 5906 -3740}\special{pa 5906 -3543}%
-\special{fp}%
-\special{pa 5906 -3543}\special{pa 5906 -3346}%
-\special{fp}%
-\special{pa 5906 -3346}\special{pa 5906 -3150}%
-\special{fp}%
-\special{pa 5906 -3150}\special{pa 5906 -2953}%
-\special{fp}%
-\special{pa 5906 -2953}\special{pa 5906 -2756}%
-\special{fp}%
-\special{pa 5906 -2756}\special{pa 5906 -2559}%
-\special{fp}%
-\special{pa 5906 -2559}\special{pa 5906 -2362}%
-\special{fp}%
-\special{pa 5906 -2362}\special{pa 5906 -2165}%
-\special{fp}%
-\special{pa 5906 -2165}\special{pa 5906 -1969}%
-\special{fp}%
-\special{pa 5906 -1969}\special{pa 5906 -1772}%
-\special{fp}%
-\special{pa 5906 -1772}\special{pa 5906 -1575}%
-\special{fp}%
-\special{pa 5906 -1575}\special{pa 5906 -1378}%
-\special{fp}%
-\special{pa 5906 -1378}\special{pa 5906 -1181}%
-\special{fp}%
-\special{pa 5906 -1181}\special{pa 5906 -984}%
-\special{fp}%
-\special{pa 5906 -984}\special{pa 5906 -787}%
-\special{fp}%
-\special{pa 5906 -787}\special{pa 5906 -591}%
-\special{fp}%
-\special{pa 5906 -591}\special{pa 5906 -394}%
-\special{fp}%
-\special{pa 5906 -394}\special{pa 5906 -197}%
-\special{fp}%
-\special{pa 5906 -197}\special{pa 5906 0}%
-\special{fp}%
-\settowidth{\Width}{色ã®åå‰(å’Œå)}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{色ã®åå‰(å’Œå)}\settodepth{\Depth}{色ã®åå‰(å’Œå)}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(1.3800,17.2500){\hspace*{\Width}\raisebox{\Height}{色ã®åå‰(å’Œå)}}%
-%
-%
-\settowidth{\Width}{\TeX コマンド(英語)}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{\TeX コマンド(英語)}\settodepth{\Depth}{\TeX コマンド(英語)}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(4.5000,17.2500){\hspace*{\Width}\raisebox{\Height}{\TeX コマンド(英語)}}%
-%
-%
-\settowidth{\Width}{[C,M,Y,K]ã®ãƒ™ã‚¯ãƒˆãƒ«}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{[C,M,Y,K]ã®ãƒ™ã‚¯ãƒˆãƒ«}\settodepth{\Depth}{[C,M,Y,K]ã®ãƒ™ã‚¯ãƒˆãƒ«}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(8.0000,17.2500){\hspace*{\Width}\raisebox{\Height}{[C,M,Y,K]ã®ãƒ™ã‚¯ãƒˆãƒ«}}%
-%
-%
-\settowidth{\Width}{文字(例)}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{文字(例)}\settodepth{\Depth}{文字(例)}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(10.7500,17.2500){\hspace*{\Width}\raisebox{\Height}{文字(例)}}%
-%
-%
-\settowidth{\Width}{å¡—ã‚Šã¤ã¶ã—(濃ã•1)}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{å¡—ã‚Šã¤ã¶ã—(濃ã•1)}\settodepth{\Depth}{å¡—ã‚Šã¤ã¶ã—(濃ã•1)}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(13.3800,17.2500){\hspace*{\Width}\raisebox{\Height}{å¡—ã‚Šã¤ã¶ã—(濃ã•1)}}%
-%
-%
-\settowidth{\Width}{}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{}\settodepth{\Depth}{}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(1.3800,16.7500){\hspace*{\Width}\raisebox{\Height}{}}%
-%
-%
-\settowidth{\Width}{royalpurple}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{royalpurple}\settodepth{\Depth}{royalpurple}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(4.5000,16.7500){\hspace*{\Width}\raisebox{\Height}{royalpurple}}%
-%
-%
-\settowidth{\Width}{[0.75,0.9,0,0]}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{[0.75,0.9,0,0]}\settodepth{\Depth}{[0.75,0.9,0,0]}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(8.0000,16.7500){\hspace*{\Width}\raisebox{\Height}{[0.75,0.9,0,0]}}%
-%
-%
-\settowidth{\Width}{}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{}\settodepth{\Depth}{}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(10.7500,16.7500){\hspace*{\Width}\raisebox{\Height}{}}%
-%
-%
-\settowidth{\Width}{}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{}\settodepth{\Depth}{}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(13.3800,16.7500){\hspace*{\Width}\raisebox{\Height}{}}%
-%
-%
-\settowidth{\Width}{}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{}\settodepth{\Depth}{}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(1.3800,16.2500){\hspace*{\Width}\raisebox{\Height}{}}%
-%
-%
-\settowidth{\Width}{blueviolet}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{blueviolet}\settodepth{\Depth}{blueviolet}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(4.5000,16.2500){\hspace*{\Width}\raisebox{\Height}{blueviolet}}%
-%
-%
-\settowidth{\Width}{[0.86,0.91,0,0.04]}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{[0.86,0.91,0,0.04]}\settodepth{\Depth}{[0.86,0.91,0,0.04]}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(8.0000,16.2500){\hspace*{\Width}\raisebox{\Height}{[0.86,0.91,0,0.04]}}%
-%
-%
-\settowidth{\Width}{}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{}\settodepth{\Depth}{}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(10.7500,16.2500){\hspace*{\Width}\raisebox{\Height}{}}%
-%
-%
-\settowidth{\Width}{}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{}\settodepth{\Depth}{}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(13.3800,16.2500){\hspace*{\Width}\raisebox{\Height}{}}%
-%
-%
-\settowidth{\Width}{}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{}\settodepth{\Depth}{}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(1.3800,15.7500){\hspace*{\Width}\raisebox{\Height}{}}%
-%
-%
-\settowidth{\Width}{periwinkle}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{periwinkle}\settodepth{\Depth}{periwinkle}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(4.5000,15.7500){\hspace*{\Width}\raisebox{\Height}{periwinkle}}%
-%
-%
-\settowidth{\Width}{[0.57,0.55,0,0]}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{[0.57,0.55,0,0]}\settodepth{\Depth}{[0.57,0.55,0,0]}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(8.0000,15.7500){\hspace*{\Width}\raisebox{\Height}{[0.57,0.55,0,0]}}%
-%
-%
-\settowidth{\Width}{}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{}\settodepth{\Depth}{}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(10.7500,15.7500){\hspace*{\Width}\raisebox{\Height}{}}%
-%
-%
-\settowidth{\Width}{}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{}\settodepth{\Depth}{}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(13.3800,15.7500){\hspace*{\Width}\raisebox{\Height}{}}%
-%
-%
-\settowidth{\Width}{}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{}\settodepth{\Depth}{}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(1.3800,15.2500){\hspace*{\Width}\raisebox{\Height}{}}%
-%
-%
-\settowidth{\Width}{cadetblue}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{cadetblue}\settodepth{\Depth}{cadetblue}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(4.5000,15.2500){\hspace*{\Width}\raisebox{\Height}{cadetblue}}%
-%
-%
-\settowidth{\Width}{[0.62,0.57,0.23,0]}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{[0.62,0.57,0.23,0]}\settodepth{\Depth}{[0.62,0.57,0.23,0]}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(8.0000,15.2500){\hspace*{\Width}\raisebox{\Height}{[0.62,0.57,0.23,0]}}%
-%
-%
-\settowidth{\Width}{}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{}\settodepth{\Depth}{}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(10.7500,15.2500){\hspace*{\Width}\raisebox{\Height}{}}%
-%
-%
-\settowidth{\Width}{}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{}\settodepth{\Depth}{}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(13.3800,15.2500){\hspace*{\Width}\raisebox{\Height}{}}%
-%
-%
-\settowidth{\Width}{}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{}\settodepth{\Depth}{}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(1.3800,14.7500){\hspace*{\Width}\raisebox{\Height}{}}%
-%
-%
-\settowidth{\Width}{cornflowerblue}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{cornflowerblue}\settodepth{\Depth}{cornflowerblue}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(4.5000,14.7500){\hspace*{\Width}\raisebox{\Height}{cornflowerblue}}%
-%
-%
-\settowidth{\Width}{[0.65,0.13,0,0]}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{[0.65,0.13,0,0]}\settodepth{\Depth}{[0.65,0.13,0,0]}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(8.0000,14.7500){\hspace*{\Width}\raisebox{\Height}{[0.65,0.13,0,0]}}%
-%
-%
-\settowidth{\Width}{}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{}\settodepth{\Depth}{}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(10.7500,14.7500){\hspace*{\Width}\raisebox{\Height}{}}%
-%
-%
-\settowidth{\Width}{}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{}\settodepth{\Depth}{}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(13.3800,14.7500){\hspace*{\Width}\raisebox{\Height}{}}%
-%
-%
-\settowidth{\Width}{}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{}\settodepth{\Depth}{}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(1.3800,14.2500){\hspace*{\Width}\raisebox{\Height}{}}%
-%
-%
-\settowidth{\Width}{midnightblue}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{midnightblue}\settodepth{\Depth}{midnightblue}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(4.5000,14.2500){\hspace*{\Width}\raisebox{\Height}{midnightblue}}%
-%
-%
-\settowidth{\Width}{[0.98,0.13,0,0.43]}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{[0.98,0.13,0,0.43]}\settodepth{\Depth}{[0.98,0.13,0,0.43]}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(8.0000,14.2500){\hspace*{\Width}\raisebox{\Height}{[0.98,0.13,0,0.43]}}%
-%
-%
-\settowidth{\Width}{}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{}\settodepth{\Depth}{}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(10.7500,14.2500){\hspace*{\Width}\raisebox{\Height}{}}%
-%
-%
-\settowidth{\Width}{}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{}\settodepth{\Depth}{}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(13.3800,14.2500){\hspace*{\Width}\raisebox{\Height}{}}%
-%
-%
-\settowidth{\Width}{}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{}\settodepth{\Depth}{}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(1.3800,13.7500){\hspace*{\Width}\raisebox{\Height}{}}%
-%
-%
-\settowidth{\Width}{navyblue}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{navyblue}\settodepth{\Depth}{navyblue}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(4.5000,13.7500){\hspace*{\Width}\raisebox{\Height}{navyblue}}%
-%
-%
-\settowidth{\Width}{[0.94,0.54,0,0]}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{[0.94,0.54,0,0]}\settodepth{\Depth}{[0.94,0.54,0,0]}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(8.0000,13.7500){\hspace*{\Width}\raisebox{\Height}{[0.94,0.54,0,0]}}%
-%
-%
-\settowidth{\Width}{}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{}\settodepth{\Depth}{}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(10.7500,13.7500){\hspace*{\Width}\raisebox{\Height}{}}%
-%
-%
-\settowidth{\Width}{}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{}\settodepth{\Depth}{}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(13.3800,13.7500){\hspace*{\Width}\raisebox{\Height}{}}%
-%
-%
-\settowidth{\Width}{}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{}\settodepth{\Depth}{}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(1.3800,13.2500){\hspace*{\Width}\raisebox{\Height}{}}%
-%
-%
-\settowidth{\Width}{royalblue}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{royalblue}\settodepth{\Depth}{royalblue}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(4.5000,13.2500){\hspace*{\Width}\raisebox{\Height}{royalblue}}%
-%
-%
-\settowidth{\Width}{[1,0.5,0,0]}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{[1,0.5,0,0]}\settodepth{\Depth}{[1,0.5,0,0]}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(8.0000,13.2500){\hspace*{\Width}\raisebox{\Height}{[1,0.5,0,0]}}%
-%
-%
-\settowidth{\Width}{}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{}\settodepth{\Depth}{}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(10.7500,13.2500){\hspace*{\Width}\raisebox{\Height}{}}%
-%
-%
-\settowidth{\Width}{}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{}\settodepth{\Depth}{}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(13.3800,13.2500){\hspace*{\Width}\raisebox{\Height}{}}%
-%
-%
-\settowidth{\Width}{é’}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{é’}\settodepth{\Depth}{é’}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(1.3800,12.7500){\hspace*{\Width}\raisebox{\Height}{é’}}%
-%
-%
-\settowidth{\Width}{blue}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{blue}\settodepth{\Depth}{blue}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(4.5000,12.7500){\hspace*{\Width}\raisebox{\Height}{blue}}%
-%
-%
-\settowidth{\Width}{[1,1,0,0]}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{[1,1,0,0]}\settodepth{\Depth}{[1,1,0,0]}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(8.0000,12.7500){\hspace*{\Width}\raisebox{\Height}{[1,1,0,0]}}%
-%
-%
-\settowidth{\Width}{}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{}\settodepth{\Depth}{}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(10.7500,12.7500){\hspace*{\Width}\raisebox{\Height}{}}%
-%
-%
-\settowidth{\Width}{}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{}\settodepth{\Depth}{}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(13.3800,12.7500){\hspace*{\Width}\raisebox{\Height}{}}%
-%
-%
-\settowidth{\Width}{}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{}\settodepth{\Depth}{}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(1.3800,12.2500){\hspace*{\Width}\raisebox{\Height}{}}%
-%
-%
-\settowidth{\Width}{cerulean}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{cerulean}\settodepth{\Depth}{cerulean}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(4.5000,12.2500){\hspace*{\Width}\raisebox{\Height}{cerulean}}%
-%
-%
-\settowidth{\Width}{[0.94,0.11,0,0]}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{[0.94,0.11,0,0]}\settodepth{\Depth}{[0.94,0.11,0,0]}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(8.0000,12.2500){\hspace*{\Width}\raisebox{\Height}{[0.94,0.11,0,0]}}%
-%
-%
-\settowidth{\Width}{}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{}\settodepth{\Depth}{}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(10.7500,12.2500){\hspace*{\Width}\raisebox{\Height}{}}%
-%
-%
-\settowidth{\Width}{}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{}\settodepth{\Depth}{}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(13.3800,12.2500){\hspace*{\Width}\raisebox{\Height}{}}%
-%
-%
-\settowidth{\Width}{}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{}\settodepth{\Depth}{}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(1.3800,11.7500){\hspace*{\Width}\raisebox{\Height}{}}%
-%
-%
-\settowidth{\Width}{cyan}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{cyan}\settodepth{\Depth}{cyan}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(4.5000,11.7500){\hspace*{\Width}\raisebox{\Height}{cyan}}%
-%
-%
-\settowidth{\Width}{[1,0,0,0]}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{[1,0,0,0]}\settodepth{\Depth}{[1,0,0,0]}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(8.0000,11.7500){\hspace*{\Width}\raisebox{\Height}{[1,0,0,0]}}%
-%
-%
-\settowidth{\Width}{}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{}\settodepth{\Depth}{}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(10.7500,11.7500){\hspace*{\Width}\raisebox{\Height}{}}%
-%
-%
-\settowidth{\Width}{}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{}\settodepth{\Depth}{}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(13.3800,11.7500){\hspace*{\Width}\raisebox{\Height}{}}%
-%
-%
-\settowidth{\Width}{}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{}\settodepth{\Depth}{}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(1.3800,11.2500){\hspace*{\Width}\raisebox{\Height}{}}%
-%
-%
-\settowidth{\Width}{processblue}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{processblue}\settodepth{\Depth}{processblue}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(4.5000,11.2500){\hspace*{\Width}\raisebox{\Height}{processblue}}%
-%
-%
-\settowidth{\Width}{[0.96,0,0,0]}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{[0.96,0,0,0]}\settodepth{\Depth}{[0.96,0,0,0]}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(8.0000,11.2500){\hspace*{\Width}\raisebox{\Height}{[0.96,0,0,0]}}%
-%
-%
-\settowidth{\Width}{}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{}\settodepth{\Depth}{}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(10.7500,11.2500){\hspace*{\Width}\raisebox{\Height}{}}%
-%
-%
-\settowidth{\Width}{}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{}\settodepth{\Depth}{}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(13.3800,11.2500){\hspace*{\Width}\raisebox{\Height}{}}%
-%
-%
-\settowidth{\Width}{}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{}\settodepth{\Depth}{}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(1.3800,10.7500){\hspace*{\Width}\raisebox{\Height}{}}%
-%
-%
-\settowidth{\Width}{skyblue}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{skyblue}\settodepth{\Depth}{skyblue}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(4.5000,10.7500){\hspace*{\Width}\raisebox{\Height}{skyblue}}%
-%
-%
-\settowidth{\Width}{[0.62,0,0.12,0]}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{[0.62,0,0.12,0]}\settodepth{\Depth}{[0.62,0,0.12,0]}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(8.0000,10.7500){\hspace*{\Width}\raisebox{\Height}{[0.62,0,0.12,0]}}%
-%
-%
-\settowidth{\Width}{}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{}\settodepth{\Depth}{}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(10.7500,10.7500){\hspace*{\Width}\raisebox{\Height}{}}%
-%
-%
-\settowidth{\Width}{}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{}\settodepth{\Depth}{}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(13.3800,10.7500){\hspace*{\Width}\raisebox{\Height}{}}%
-%
-%
-\settowidth{\Width}{}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{}\settodepth{\Depth}{}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(1.3800,10.2500){\hspace*{\Width}\raisebox{\Height}{}}%
-%
-%
-\settowidth{\Width}{turquoise}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{turquoise}\settodepth{\Depth}{turquoise}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(4.5000,10.2500){\hspace*{\Width}\raisebox{\Height}{turquoise}}%
-%
-%
-\settowidth{\Width}{[0.85,0,0.2,0]}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{[0.85,0,0.2,0]}\settodepth{\Depth}{[0.85,0,0.2,0]}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(8.0000,10.2500){\hspace*{\Width}\raisebox{\Height}{[0.85,0,0.2,0]}}%
-%
-%
-\settowidth{\Width}{}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{}\settodepth{\Depth}{}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(10.7500,10.2500){\hspace*{\Width}\raisebox{\Height}{}}%
-%
-%
-\settowidth{\Width}{}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{}\settodepth{\Depth}{}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(13.3800,10.2500){\hspace*{\Width}\raisebox{\Height}{}}%
-%
-%
-\settowidth{\Width}{}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{}\settodepth{\Depth}{}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(1.3800,9.7500){\hspace*{\Width}\raisebox{\Height}{}}%
-%
-%
-\settowidth{\Width}{tealblue}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{tealblue}\settodepth{\Depth}{tealblue}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(4.5000,9.7500){\hspace*{\Width}\raisebox{\Height}{tealblue}}%
-%
-%
-\settowidth{\Width}{[0.86,0,0.34,0.02]}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{[0.86,0,0.34,0.02]}\settodepth{\Depth}{[0.86,0,0.34,0.02]}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(8.0000,9.7500){\hspace*{\Width}\raisebox{\Height}{[0.86,0,0.34,0.02]}}%
-%
-%
-\settowidth{\Width}{}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{}\settodepth{\Depth}{}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(10.7500,9.7500){\hspace*{\Width}\raisebox{\Height}{}}%
-%
-%
-\settowidth{\Width}{}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{}\settodepth{\Depth}{}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(13.3800,9.7500){\hspace*{\Width}\raisebox{\Height}{}}%
-%
-%
-\settowidth{\Width}{}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{}\settodepth{\Depth}{}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(1.3800,9.2500){\hspace*{\Width}\raisebox{\Height}{}}%
-%
-%
-\settowidth{\Width}{aquamarine}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{aquamarine}\settodepth{\Depth}{aquamarine}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(4.5000,9.2500){\hspace*{\Width}\raisebox{\Height}{aquamarine}}%
-%
-%
-\settowidth{\Width}{[0.82,0,0.3,0]}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{[0.82,0,0.3,0]}\settodepth{\Depth}{[0.82,0,0.3,0]}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(8.0000,9.2500){\hspace*{\Width}\raisebox{\Height}{[0.82,0,0.3,0]}}%
-%
-%
-\settowidth{\Width}{}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{}\settodepth{\Depth}{}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(10.7500,9.2500){\hspace*{\Width}\raisebox{\Height}{}}%
-%
-%
-\settowidth{\Width}{}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{}\settodepth{\Depth}{}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(13.3800,9.2500){\hspace*{\Width}\raisebox{\Height}{}}%
-%
-%
-\settowidth{\Width}{}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{}\settodepth{\Depth}{}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(1.3800,8.7500){\hspace*{\Width}\raisebox{\Height}{}}%
-%
-%
-\settowidth{\Width}{bluegreen}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{bluegreen}\settodepth{\Depth}{bluegreen}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(4.5000,8.7500){\hspace*{\Width}\raisebox{\Height}{bluegreen}}%
-%
-%
-\settowidth{\Width}{[0.85,0,0.33,0]}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{[0.85,0,0.33,0]}\settodepth{\Depth}{[0.85,0,0.33,0]}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(8.0000,8.7500){\hspace*{\Width}\raisebox{\Height}{[0.85,0,0.33,0]}}%
-%
-%
-\settowidth{\Width}{}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{}\settodepth{\Depth}{}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(10.7500,8.7500){\hspace*{\Width}\raisebox{\Height}{}}%
-%
-%
-\settowidth{\Width}{}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{}\settodepth{\Depth}{}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(13.3800,8.7500){\hspace*{\Width}\raisebox{\Height}{}}%
-%
-%
-\settowidth{\Width}{}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{}\settodepth{\Depth}{}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(1.3800,8.2500){\hspace*{\Width}\raisebox{\Height}{}}%
-%
-%
-\settowidth{\Width}{emerald}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{emerald}\settodepth{\Depth}{emerald}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(4.5000,8.2500){\hspace*{\Width}\raisebox{\Height}{emerald}}%
-%
-%
-\settowidth{\Width}{[1,0,0.5,0]}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{[1,0,0.5,0]}\settodepth{\Depth}{[1,0,0.5,0]}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(8.0000,8.2500){\hspace*{\Width}\raisebox{\Height}{[1,0,0.5,0]}}%
-%
-%
-\settowidth{\Width}{}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{}\settodepth{\Depth}{}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(10.7500,8.2500){\hspace*{\Width}\raisebox{\Height}{}}%
-%
-%
-\settowidth{\Width}{}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{}\settodepth{\Depth}{}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(13.3800,8.2500){\hspace*{\Width}\raisebox{\Height}{}}%
-%
-%
-\settowidth{\Width}{}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{}\settodepth{\Depth}{}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(1.3800,7.7500){\hspace*{\Width}\raisebox{\Height}{}}%
-%
-%
-\settowidth{\Width}{janglegreen}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{janglegreen}\settodepth{\Depth}{janglegreen}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(4.5000,7.7500){\hspace*{\Width}\raisebox{\Height}{janglegreen}}%
-%
-%
-\settowidth{\Width}{[0.99,0,0.52,0]}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{[0.99,0,0.52,0]}\settodepth{\Depth}{[0.99,0,0.52,0]}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(8.0000,7.7500){\hspace*{\Width}\raisebox{\Height}{[0.99,0,0.52,0]}}%
-%
-%
-\settowidth{\Width}{}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{}\settodepth{\Depth}{}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(10.7500,7.7500){\hspace*{\Width}\raisebox{\Height}{}}%
-%
-%
-\settowidth{\Width}{}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{}\settodepth{\Depth}{}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(13.3800,7.7500){\hspace*{\Width}\raisebox{\Height}{}}%
-%
-%
-\settowidth{\Width}{}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{}\settodepth{\Depth}{}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(1.3800,7.2500){\hspace*{\Width}\raisebox{\Height}{}}%
-%
-%
-\settowidth{\Width}{seagreen}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{seagreen}\settodepth{\Depth}{seagreen}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(4.5000,7.2500){\hspace*{\Width}\raisebox{\Height}{seagreen}}%
-%
-%
-\settowidth{\Width}{[0.69,0,0.5,0]}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{[0.69,0,0.5,0]}\settodepth{\Depth}{[0.69,0,0.5,0]}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(8.0000,7.2500){\hspace*{\Width}\raisebox{\Height}{[0.69,0,0.5,0]}}%
-%
-%
-\settowidth{\Width}{}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{}\settodepth{\Depth}{}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(10.7500,7.2500){\hspace*{\Width}\raisebox{\Height}{}}%
-%
-%
-\settowidth{\Width}{}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{}\settodepth{\Depth}{}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(13.3800,7.2500){\hspace*{\Width}\raisebox{\Height}{}}%
-%
-%
-\settowidth{\Width}{ç·‘}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{ç·‘}\settodepth{\Depth}{ç·‘}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(1.3800,6.7500){\hspace*{\Width}\raisebox{\Height}{ç·‘}}%
-%
-%
-\settowidth{\Width}{green}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{green}\settodepth{\Depth}{green}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(4.5000,6.7500){\hspace*{\Width}\raisebox{\Height}{green}}%
-%
-%
-\settowidth{\Width}{[1,0,1,0]}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{[1,0,1,0]}\settodepth{\Depth}{[1,0,1,0]}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(8.0000,6.7500){\hspace*{\Width}\raisebox{\Height}{[1,0,1,0]}}%
-%
-%
-\settowidth{\Width}{}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{}\settodepth{\Depth}{}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(10.7500,6.7500){\hspace*{\Width}\raisebox{\Height}{}}%
-%
-%
-\settowidth{\Width}{}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{}\settodepth{\Depth}{}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(13.3800,6.7500){\hspace*{\Width}\raisebox{\Height}{}}%
-%
-%
-\settowidth{\Width}{}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{}\settodepth{\Depth}{}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(1.3800,6.2500){\hspace*{\Width}\raisebox{\Height}{}}%
-%
-%
-\settowidth{\Width}{forestgreen}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{forestgreen}\settodepth{\Depth}{forestgreen}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(4.5000,6.2500){\hspace*{\Width}\raisebox{\Height}{forestgreen}}%
-%
-%
-\settowidth{\Width}{[0.91,0,0.88,0.12]}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{[0.91,0,0.88,0.12]}\settodepth{\Depth}{[0.91,0,0.88,0.12]}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(8.0000,6.2500){\hspace*{\Width}\raisebox{\Height}{[0.91,0,0.88,0.12]}}%
-%
-%
-\settowidth{\Width}{}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{}\settodepth{\Depth}{}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(10.7500,6.2500){\hspace*{\Width}\raisebox{\Height}{}}%
-%
-%
-\settowidth{\Width}{}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{}\settodepth{\Depth}{}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(13.3800,6.2500){\hspace*{\Width}\raisebox{\Height}{}}%
-%
-%
-\settowidth{\Width}{}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{}\settodepth{\Depth}{}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(1.3800,5.7500){\hspace*{\Width}\raisebox{\Height}{}}%
-%
-%
-\settowidth{\Width}{pinegreen}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{pinegreen}\settodepth{\Depth}{pinegreen}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(4.5000,5.7500){\hspace*{\Width}\raisebox{\Height}{pinegreen}}%
-%
-%
-\settowidth{\Width}{[0.92,0,0.59,0.25]}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{[0.92,0,0.59,0.25]}\settodepth{\Depth}{[0.92,0,0.59,0.25]}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(8.0000,5.7500){\hspace*{\Width}\raisebox{\Height}{[0.92,0,0.59,0.25]}}%
-%
-%
-\settowidth{\Width}{}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{}\settodepth{\Depth}{}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(10.7500,5.7500){\hspace*{\Width}\raisebox{\Height}{}}%
-%
-%
-\settowidth{\Width}{}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{}\settodepth{\Depth}{}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(13.3800,5.7500){\hspace*{\Width}\raisebox{\Height}{}}%
-%
-%
-\settowidth{\Width}{}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{}\settodepth{\Depth}{}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(1.3800,5.2500){\hspace*{\Width}\raisebox{\Height}{}}%
-%
-%
-\settowidth{\Width}{limegreen}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{limegreen}\settodepth{\Depth}{limegreen}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(4.5000,5.2500){\hspace*{\Width}\raisebox{\Height}{limegreen}}%
-%
-%
-\settowidth{\Width}{[0.5,0,1,0]}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{[0.5,0,1,0]}\settodepth{\Depth}{[0.5,0,1,0]}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(8.0000,5.2500){\hspace*{\Width}\raisebox{\Height}{[0.5,0,1,0]}}%
-%
-%
-\settowidth{\Width}{}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{}\settodepth{\Depth}{}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(10.7500,5.2500){\hspace*{\Width}\raisebox{\Height}{}}%
-%
-%
-\settowidth{\Width}{}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{}\settodepth{\Depth}{}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(13.3800,5.2500){\hspace*{\Width}\raisebox{\Height}{}}%
-%
-%
-\settowidth{\Width}{}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{}\settodepth{\Depth}{}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(1.3800,4.7500){\hspace*{\Width}\raisebox{\Height}{}}%
-%
-%
-\settowidth{\Width}{yellowgreen}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{yellowgreen}\settodepth{\Depth}{yellowgreen}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(4.5000,4.7500){\hspace*{\Width}\raisebox{\Height}{yellowgreen}}%
-%
-%
-\settowidth{\Width}{[0.44,0,0.74,0]}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{[0.44,0,0.74,0]}\settodepth{\Depth}{[0.44,0,0.74,0]}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(8.0000,4.7500){\hspace*{\Width}\raisebox{\Height}{[0.44,0,0.74,0]}}%
-%
-%
-\settowidth{\Width}{}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{}\settodepth{\Depth}{}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(10.7500,4.7500){\hspace*{\Width}\raisebox{\Height}{}}%
-%
-%
-\settowidth{\Width}{}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{}\settodepth{\Depth}{}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(13.3800,4.7500){\hspace*{\Width}\raisebox{\Height}{}}%
-%
-%
-\settowidth{\Width}{}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{}\settodepth{\Depth}{}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(1.3800,4.2500){\hspace*{\Width}\raisebox{\Height}{}}%
-%
-%
-\settowidth{\Width}{springgreen}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{springgreen}\settodepth{\Depth}{springgreen}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(4.5000,4.2500){\hspace*{\Width}\raisebox{\Height}{springgreen}}%
-%
-%
-\settowidth{\Width}{[0.26,0,0.76,0]}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{[0.26,0,0.76,0]}\settodepth{\Depth}{[0.26,0,0.76,0]}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(8.0000,4.2500){\hspace*{\Width}\raisebox{\Height}{[0.26,0,0.76,0]}}%
-%
-%
-\settowidth{\Width}{}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{}\settodepth{\Depth}{}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(10.7500,4.2500){\hspace*{\Width}\raisebox{\Height}{}}%
-%
-%
-\settowidth{\Width}{}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{}\settodepth{\Depth}{}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(13.3800,4.2500){\hspace*{\Width}\raisebox{\Height}{}}%
-%
-%
-\settowidth{\Width}{}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{}\settodepth{\Depth}{}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(1.3800,3.7500){\hspace*{\Width}\raisebox{\Height}{}}%
-%
-%
-\settowidth{\Width}{olivegreen}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{olivegreen}\settodepth{\Depth}{olivegreen}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(4.5000,3.7500){\hspace*{\Width}\raisebox{\Height}{olivegreen}}%
-%
-%
-\settowidth{\Width}{[0.64,0,0.95,0.4]}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{[0.64,0,0.95,0.4]}\settodepth{\Depth}{[0.64,0,0.95,0.4]}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(8.0000,3.7500){\hspace*{\Width}\raisebox{\Height}{[0.64,0,0.95,0.4]}}%
-%
-%
-\settowidth{\Width}{}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{}\settodepth{\Depth}{}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(10.7500,3.7500){\hspace*{\Width}\raisebox{\Height}{}}%
-%
-%
-\settowidth{\Width}{}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{}\settodepth{\Depth}{}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(13.3800,3.7500){\hspace*{\Width}\raisebox{\Height}{}}%
-%
-%
-\settowidth{\Width}{}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{}\settodepth{\Depth}{}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(1.3800,3.2500){\hspace*{\Width}\raisebox{\Height}{}}%
-%
-%
-\settowidth{\Width}{rawsienna}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{rawsienna}\settodepth{\Depth}{rawsienna}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(4.5000,3.2500){\hspace*{\Width}\raisebox{\Height}{rawsienna}}%
-%
-%
-\settowidth{\Width}{[0,0.72,1,0.45]}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{[0,0.72,1,0.45]}\settodepth{\Depth}{[0,0.72,1,0.45]}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(8.0000,3.2500){\hspace*{\Width}\raisebox{\Height}{[0,0.72,1,0.45]}}%
-%
-%
-\settowidth{\Width}{}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{}\settodepth{\Depth}{}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(10.7500,3.2500){\hspace*{\Width}\raisebox{\Height}{}}%
-%
-%
-\settowidth{\Width}{}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{}\settodepth{\Depth}{}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(13.3800,3.2500){\hspace*{\Width}\raisebox{\Height}{}}%
-%
-%
-\settowidth{\Width}{}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{}\settodepth{\Depth}{}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(1.3800,2.7500){\hspace*{\Width}\raisebox{\Height}{}}%
-%
-%
-\settowidth{\Width}{sepia}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{sepia}\settodepth{\Depth}{sepia}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(4.5000,2.7500){\hspace*{\Width}\raisebox{\Height}{sepia}}%
-%
-%
-\settowidth{\Width}{[0,0.83,1,0.7]}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{[0,0.83,1,0.7]}\settodepth{\Depth}{[0,0.83,1,0.7]}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(8.0000,2.7500){\hspace*{\Width}\raisebox{\Height}{[0,0.83,1,0.7]}}%
-%
-%
-\settowidth{\Width}{}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{}\settodepth{\Depth}{}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(10.7500,2.7500){\hspace*{\Width}\raisebox{\Height}{}}%
-%
-%
-\settowidth{\Width}{}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{}\settodepth{\Depth}{}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(13.3800,2.7500){\hspace*{\Width}\raisebox{\Height}{}}%
-%
-%
-\settowidth{\Width}{茶色}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{茶色}\settodepth{\Depth}{茶色}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(1.3800,2.2500){\hspace*{\Width}\raisebox{\Height}{茶色}}%
-%
-%
-\settowidth{\Width}{brown}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{brown}\settodepth{\Depth}{brown}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(4.5000,2.2500){\hspace*{\Width}\raisebox{\Height}{brown}}%
-%
-%
-\settowidth{\Width}{[0,0.81,1,0.6]}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{[0,0.81,1,0.6]}\settodepth{\Depth}{[0,0.81,1,0.6]}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(8.0000,2.2500){\hspace*{\Width}\raisebox{\Height}{[0,0.81,1,0.6]}}%
-%
-%
-\settowidth{\Width}{}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{}\settodepth{\Depth}{}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(10.7500,2.2500){\hspace*{\Width}\raisebox{\Height}{}}%
-%
-%
-\settowidth{\Width}{}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{}\settodepth{\Depth}{}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(13.3800,2.2500){\hspace*{\Width}\raisebox{\Height}{}}%
-%
-%
-\settowidth{\Width}{}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{}\settodepth{\Depth}{}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(1.3800,1.7500){\hspace*{\Width}\raisebox{\Height}{}}%
-%
-%
-\settowidth{\Width}{tan}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{tan}\settodepth{\Depth}{tan}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(4.5000,1.7500){\hspace*{\Width}\raisebox{\Height}{tan}}%
-%
-%
-\settowidth{\Width}{[0.14,0.42,0.56,0]}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{[0.14,0.42,0.56,0]}\settodepth{\Depth}{[0.14,0.42,0.56,0]}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(8.0000,1.7500){\hspace*{\Width}\raisebox{\Height}{[0.14,0.42,0.56,0]}}%
-%
-%
-\settowidth{\Width}{}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{}\settodepth{\Depth}{}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(10.7500,1.7500){\hspace*{\Width}\raisebox{\Height}{}}%
-%
-%
-\settowidth{\Width}{}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{}\settodepth{\Depth}{}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(13.3800,1.7500){\hspace*{\Width}\raisebox{\Height}{}}%
-%
-%
-\settowidth{\Width}{ç°è‰²}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{ç°è‰²}\settodepth{\Depth}{ç°è‰²}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(1.3800,1.2500){\hspace*{\Width}\raisebox{\Height}{ç°è‰²}}%
-%
-%
-\settowidth{\Width}{gray}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{gray}\settodepth{\Depth}{gray}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(4.5000,1.2500){\hspace*{\Width}\raisebox{\Height}{gray}}%
-%
-%
-\settowidth{\Width}{[0,0,0,0.5]}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{[0,0,0,0.5]}\settodepth{\Depth}{[0,0,0,0.5]}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(8.0000,1.2500){\hspace*{\Width}\raisebox{\Height}{[0,0,0,0.5]}}%
-%
-%
-\settowidth{\Width}{}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{}\settodepth{\Depth}{}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(10.7500,1.2500){\hspace*{\Width}\raisebox{\Height}{}}%
-%
-%
-\settowidth{\Width}{}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{}\settodepth{\Depth}{}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(13.3800,1.2500){\hspace*{\Width}\raisebox{\Height}{}}%
-%
-%
-\settowidth{\Width}{é»’}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{é»’}\settodepth{\Depth}{é»’}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(1.3800,0.7500){\hspace*{\Width}\raisebox{\Height}{é»’}}%
-%
-%
-\settowidth{\Width}{black}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{black}\settodepth{\Depth}{black}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(4.5000,0.7500){\hspace*{\Width}\raisebox{\Height}{black}}%
-%
-%
-\settowidth{\Width}{[0,0,0,1]}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{[0,0,0,1]}\settodepth{\Depth}{[0,0,0,1]}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(8.0000,0.7500){\hspace*{\Width}\raisebox{\Height}{[0,0,0,1]}}%
-%
-%
-\settowidth{\Width}{}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{}\settodepth{\Depth}{}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(10.7500,0.7500){\hspace*{\Width}\raisebox{\Height}{}}%
-%
-%
-\settowidth{\Width}{}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{}\settodepth{\Depth}{}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(13.3800,0.7500){\hspace*{\Width}\raisebox{\Height}{}}%
-%
-%
-\settowidth{\Width}{白}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{白}\settodepth{\Depth}{白}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(1.3800,0.2500){\hspace*{\Width}\raisebox{\Height}{白}}%
-%
-%
-\settowidth{\Width}{white}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{white}\settodepth{\Depth}{white}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(4.5000,0.2500){\hspace*{\Width}\raisebox{\Height}{white}}%
-%
-%
-\settowidth{\Width}{[0,0,0,0]}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{[0,0,0,0]}\settodepth{\Depth}{[0,0,0,0]}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(8.0000,0.2500){\hspace*{\Width}\raisebox{\Height}{[0,0,0,0]}}%
-%
-%
-\settowidth{\Width}{}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{}\settodepth{\Depth}{}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(10.7500,0.2500){\hspace*{\Width}\raisebox{\Height}{}}%
-%
-%
-\settowidth{\Width}{}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{}\settodepth{\Depth}{}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(13.3800,0.2500){\hspace*{\Width}\raisebox{\Height}{}}%
-%
-%
-\end{picture}}% \ No newline at end of file
diff --git a/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/colortablee1-34.tex b/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/colortablee1-34.tex
deleted file mode 100644
index 0ee3653a..00000000
--- a/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/colortablee1-34.tex
+++ /dev/null
@@ -1,1936 +0,0 @@
-%%% colortable1-34.tex 2015-2-8 17:25
-%%% colortable1-34.sce 2015-2-8 17:25
-{\unitlength=1cm%
-\begin{picture}%
-( 15.00000, 17.50000)( -0.00000, -0.00000)%
-\special{pn 8}%
-%
-\color[cmyk]{0.15,0,0.69,0}%
-\settowidth{\Width}{ã‚ã„ã†ãˆãŠ}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{ã‚ã„ã†ãˆãŠ}\settodepth{\Depth}{ã‚ã„ã†ãˆãŠ}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(10.7500,16.7500){\hspace*{\Width}\raisebox{\Height}{ã‚ã„ã†ãˆãŠ}}%
-%
-%
-\special{pa 4626 -6693}\special{pa 4626 -6496}\special{pa 5906 -6496}\special{pa 5906 -6693}%
-\special{pa 4626 -6693}\special{sh 1}\special{ip}%
-\color[cmyk]{0,0,1,0}%
-\settowidth{\Width}{ã‚ã„ã†ãˆãŠ}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{ã‚ã„ã†ãˆãŠ}\settodepth{\Depth}{ã‚ã„ã†ãˆãŠ}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(10.7500,16.2500){\hspace*{\Width}\raisebox{\Height}{ã‚ã„ã†ãˆãŠ}}%
-%
-%
-\special{pa 4626 -6496}\special{pa 4626 -6299}\special{pa 5906 -6299}\special{pa 5906 -6496}%
-\special{pa 4626 -6496}\special{sh 1}\special{ip}%
-\color[cmyk]{0,0.1,0.84,0}%
-\settowidth{\Width}{ã‚ã„ã†ãˆãŠ}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{ã‚ã„ã†ãˆãŠ}\settodepth{\Depth}{ã‚ã„ã†ãˆãŠ}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(10.7500,15.7500){\hspace*{\Width}\raisebox{\Height}{ã‚ã„ã†ãˆãŠ}}%
-%
-%
-\special{pa 4626 -6299}\special{pa 4626 -6102}\special{pa 5906 -6102}\special{pa 5906 -6299}%
-\special{pa 4626 -6299}\special{sh 1}\special{ip}%
-\color[cmyk]{0,0.29,0.84,0}%
-\settowidth{\Width}{ã‚ã„ã†ãˆãŠ}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{ã‚ã„ã†ãˆãŠ}\settodepth{\Depth}{ã‚ã„ã†ãˆãŠ}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(10.7500,15.2500){\hspace*{\Width}\raisebox{\Height}{ã‚ã„ã†ãˆãŠ}}%
-%
-%
-\special{pa 4626 -6102}\special{pa 4626 -5906}\special{pa 5906 -5906}\special{pa 5906 -6102}%
-\special{pa 4626 -6102}\special{sh 1}\special{ip}%
-\color[cmyk]{0,0.32,0.52,0}%
-\settowidth{\Width}{ã‚ã„ã†ãˆãŠ}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{ã‚ã„ã†ãˆãŠ}\settodepth{\Depth}{ã‚ã„ã†ãˆãŠ}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(10.7500,14.7500){\hspace*{\Width}\raisebox{\Height}{ã‚ã„ã†ãˆãŠ}}%
-%
-%
-\special{pa 4626 -5906}\special{pa 4626 -5709}\special{pa 5906 -5709}\special{pa 5906 -5906}%
-\special{pa 4626 -5906}\special{sh 1}\special{ip}%
-\color[cmyk]{0,0.5,0.7,0}%
-\settowidth{\Width}{ã‚ã„ã†ãˆãŠ}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{ã‚ã„ã†ãˆãŠ}\settodepth{\Depth}{ã‚ã„ã†ãˆãŠ}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(10.7500,14.2500){\hspace*{\Width}\raisebox{\Height}{ã‚ã„ã†ãˆãŠ}}%
-%
-%
-\special{pa 4626 -5709}\special{pa 4626 -5512}\special{pa 5906 -5512}\special{pa 5906 -5709}%
-\special{pa 4626 -5709}\special{sh 1}\special{ip}%
-\color[cmyk]{0,0.46,0.5,0}%
-\settowidth{\Width}{ã‚ã„ã†ãˆãŠ}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{ã‚ã„ã†ãˆãŠ}\settodepth{\Depth}{ã‚ã„ã†ãˆãŠ}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(10.7500,13.7500){\hspace*{\Width}\raisebox{\Height}{ã‚ã„ã†ãˆãŠ}}%
-%
-%
-\special{pa 4626 -5512}\special{pa 4626 -5315}\special{pa 5906 -5315}\special{pa 5906 -5512}%
-\special{pa 4626 -5512}\special{sh 1}\special{ip}%
-\color[cmyk]{0,0.42,1,0}%
-\settowidth{\Width}{ã‚ã„ã†ãˆãŠ}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{ã‚ã„ã†ãˆãŠ}\settodepth{\Depth}{ã‚ã„ã†ãˆãŠ}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(10.7500,13.2500){\hspace*{\Width}\raisebox{\Height}{ã‚ã„ã†ãˆãŠ}}%
-%
-%
-\special{pa 4626 -5315}\special{pa 4626 -5118}\special{pa 5906 -5118}\special{pa 5906 -5315}%
-\special{pa 4626 -5315}\special{sh 1}\special{ip}%
-\color[cmyk]{0,0.61,0.87,0}%
-\settowidth{\Width}{ã‚ã„ã†ãˆãŠ}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{ã‚ã„ã†ãˆãŠ}\settodepth{\Depth}{ã‚ã„ã†ãˆãŠ}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(10.7500,12.7500){\hspace*{\Width}\raisebox{\Height}{ã‚ã„ã†ãˆãŠ}}%
-%
-%
-\special{pa 4626 -5118}\special{pa 4626 -4921}\special{pa 5906 -4921}\special{pa 5906 -5118}%
-\special{pa 4626 -5118}\special{sh 1}\special{ip}%
-\color[cmyk]{0,0.51,1,0}%
-\settowidth{\Width}{ã‚ã„ã†ãˆãŠ}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{ã‚ã„ã†ãˆãŠ}\settodepth{\Depth}{ã‚ã„ã†ãˆãŠ}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(10.7500,12.2500){\hspace*{\Width}\raisebox{\Height}{ã‚ã„ã†ãˆãŠ}}%
-%
-%
-\special{pa 4626 -4921}\special{pa 4626 -4724}\special{pa 5906 -4724}\special{pa 5906 -4921}%
-\special{pa 4626 -4921}\special{sh 1}\special{ip}%
-\color[cmyk]{0,0.75,1,0.24}%
-\settowidth{\Width}{ã‚ã„ã†ãˆãŠ}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{ã‚ã„ã†ãˆãŠ}\settodepth{\Depth}{ã‚ã„ã†ãˆãŠ}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(10.7500,11.7500){\hspace*{\Width}\raisebox{\Height}{ã‚ã„ã†ãˆãŠ}}%
-%
-%
-\special{pa 4626 -4724}\special{pa 4626 -4528}\special{pa 5906 -4528}\special{pa 5906 -4724}%
-\special{pa 4626 -4724}\special{sh 1}\special{ip}%
-\color[cmyk]{0,0.77,0.87,0}%
-\settowidth{\Width}{ã‚ã„ã†ãˆãŠ}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{ã‚ã„ã†ãˆãŠ}\settodepth{\Depth}{ã‚ã„ã†ãˆãŠ}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(10.7500,11.2500){\hspace*{\Width}\raisebox{\Height}{ã‚ã„ã†ãˆãŠ}}%
-%
-%
-\special{pa 4626 -4528}\special{pa 4626 -4331}\special{pa 5906 -4331}\special{pa 5906 -4528}%
-\special{pa 4626 -4528}\special{sh 1}\special{ip}%
-\color[cmyk]{0,0.85,0.87,0.35}%
-\settowidth{\Width}{ã‚ã„ã†ãˆãŠ}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{ã‚ã„ã†ãˆãŠ}\settodepth{\Depth}{ã‚ã„ã†ãˆãŠ}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(10.7500,10.7500){\hspace*{\Width}\raisebox{\Height}{ã‚ã„ã†ãˆãŠ}}%
-%
-%
-\special{pa 4626 -4331}\special{pa 4626 -4134}\special{pa 5906 -4134}\special{pa 5906 -4331}%
-\special{pa 4626 -4331}\special{sh 1}\special{ip}%
-\color[cmyk]{0,0.87,0.68,0.32}%
-\settowidth{\Width}{ã‚ã„ã†ãˆãŠ}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{ã‚ã„ã†ãˆãŠ}\settodepth{\Depth}{ã‚ã„ã†ãˆãŠ}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(10.7500,10.2500){\hspace*{\Width}\raisebox{\Height}{ã‚ã„ã†ãˆãŠ}}%
-%
-%
-\special{pa 4626 -4134}\special{pa 4626 -3937}\special{pa 5906 -3937}\special{pa 5906 -4134}%
-\special{pa 4626 -4134}\special{sh 1}\special{ip}%
-\color[cmyk]{0,0.89,0.94,0.28}%
-\settowidth{\Width}{ã‚ã„ã†ãˆãŠ}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{ã‚ã„ã†ãˆãŠ}\settodepth{\Depth}{ã‚ã„ã†ãˆãŠ}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(10.7500,9.7500){\hspace*{\Width}\raisebox{\Height}{ã‚ã„ã†ãˆãŠ}}%
-%
-%
-\special{pa 4626 -3937}\special{pa 4626 -3740}\special{pa 5906 -3740}\special{pa 5906 -3937}%
-\special{pa 4626 -3937}\special{sh 1}\special{ip}%
-\color[cmyk]{0,1,1,0}%
-\settowidth{\Width}{ã‚ã„ã†ãˆãŠ}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{ã‚ã„ã†ãˆãŠ}\settodepth{\Depth}{ã‚ã„ã†ãˆãŠ}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(10.7500,9.2500){\hspace*{\Width}\raisebox{\Height}{ã‚ã„ã†ãˆãŠ}}%
-%
-%
-\special{pa 4626 -3740}\special{pa 4626 -3543}\special{pa 5906 -3543}\special{pa 5906 -3740}%
-\special{pa 4626 -3740}\special{sh 1}\special{ip}%
-\color[cmyk]{0,1,0.5,0}%
-\settowidth{\Width}{ã‚ã„ã†ãˆãŠ}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{ã‚ã„ã†ãˆãŠ}\settodepth{\Depth}{ã‚ã„ã†ãˆãŠ}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(10.7500,8.7500){\hspace*{\Width}\raisebox{\Height}{ã‚ã„ã†ãˆãŠ}}%
-%
-%
-\special{pa 4626 -3543}\special{pa 4626 -3346}\special{pa 5906 -3346}\special{pa 5906 -3543}%
-\special{pa 4626 -3543}\special{sh 1}\special{ip}%
-\color[cmyk]{0,1,0.13,0}%
-\settowidth{\Width}{ã‚ã„ã†ãˆãŠ}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{ã‚ã„ã†ãˆãŠ}\settodepth{\Depth}{ã‚ã„ã†ãˆãŠ}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(10.7500,8.2500){\hspace*{\Width}\raisebox{\Height}{ã‚ã„ã†ãˆãŠ}}%
-%
-%
-\special{pa 4626 -3346}\special{pa 4626 -3150}\special{pa 5906 -3150}\special{pa 5906 -3346}%
-\special{pa 4626 -3346}\special{sh 1}\special{ip}%
-\color[cmyk]{0,0.96,0.39,0}%
-\settowidth{\Width}{ã‚ã„ã†ãˆãŠ}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{ã‚ã„ã†ãˆãŠ}\settodepth{\Depth}{ã‚ã„ã†ãˆãŠ}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(10.7500,7.7500){\hspace*{\Width}\raisebox{\Height}{ã‚ã„ã†ãˆãŠ}}%
-%
-%
-\special{pa 4626 -3150}\special{pa 4626 -2953}\special{pa 5906 -2953}\special{pa 5906 -3150}%
-\special{pa 4626 -3150}\special{sh 1}\special{ip}%
-\color[cmyk]{0,0.53,0.38,0}%
-\settowidth{\Width}{ã‚ã„ã†ãˆãŠ}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{ã‚ã„ã†ãˆãŠ}\settodepth{\Depth}{ã‚ã„ã†ãˆãŠ}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(10.7500,7.2500){\hspace*{\Width}\raisebox{\Height}{ã‚ã„ã†ãˆãŠ}}%
-%
-%
-\special{pa 4626 -2953}\special{pa 4626 -2756}\special{pa 5906 -2756}\special{pa 5906 -2953}%
-\special{pa 4626 -2953}\special{sh 1}\special{ip}%
-\color[cmyk]{0,0.63,0,0}%
-\settowidth{\Width}{ã‚ã„ã†ãˆãŠ}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{ã‚ã„ã†ãˆãŠ}\settodepth{\Depth}{ã‚ã„ã†ãˆãŠ}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(10.7500,6.7500){\hspace*{\Width}\raisebox{\Height}{ã‚ã„ã†ãˆãŠ}}%
-%
-%
-\special{pa 4626 -2756}\special{pa 4626 -2559}\special{pa 5906 -2559}\special{pa 5906 -2756}%
-\special{pa 4626 -2756}\special{sh 1}\special{ip}%
-\color[cmyk]{0,1,0,0}%
-\settowidth{\Width}{ã‚ã„ã†ãˆãŠ}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{ã‚ã„ã†ãˆãŠ}\settodepth{\Depth}{ã‚ã„ã†ãˆãŠ}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(10.7500,6.2500){\hspace*{\Width}\raisebox{\Height}{ã‚ã„ã†ãˆãŠ}}%
-%
-%
-\special{pa 4626 -2559}\special{pa 4626 -2362}\special{pa 5906 -2362}\special{pa 5906 -2559}%
-\special{pa 4626 -2559}\special{sh 1}\special{ip}%
-\color[cmyk]{0,0.81,0,0}%
-\settowidth{\Width}{ã‚ã„ã†ãˆãŠ}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{ã‚ã„ã†ãˆãŠ}\settodepth{\Depth}{ã‚ã„ã†ãˆãŠ}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(10.7500,5.7500){\hspace*{\Width}\raisebox{\Height}{ã‚ã„ã†ãˆãŠ}}%
-%
-%
-\special{pa 4626 -2362}\special{pa 4626 -2165}\special{pa 5906 -2165}\special{pa 5906 -2362}%
-\special{pa 4626 -2362}\special{sh 1}\special{ip}%
-\color[cmyk]{0,0.82,0,0}%
-\settowidth{\Width}{ã‚ã„ã†ãˆãŠ}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{ã‚ã„ã†ãˆãŠ}\settodepth{\Depth}{ã‚ã„ã†ãˆãŠ}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(10.7500,5.2500){\hspace*{\Width}\raisebox{\Height}{ã‚ã„ã†ãˆãŠ}}%
-%
-%
-\special{pa 4626 -2165}\special{pa 4626 -1969}\special{pa 5906 -1969}\special{pa 5906 -2165}%
-\special{pa 4626 -2165}\special{sh 1}\special{ip}%
-\color[cmyk]{0.34,0.9,0,0.02}%
-\settowidth{\Width}{ã‚ã„ã†ãˆãŠ}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{ã‚ã„ã†ãˆãŠ}\settodepth{\Depth}{ã‚ã„ã†ãˆãŠ}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(10.7500,4.7500){\hspace*{\Width}\raisebox{\Height}{ã‚ã„ã†ãˆãŠ}}%
-%
-%
-\special{pa 4626 -1969}\special{pa 4626 -1772}\special{pa 5906 -1772}\special{pa 5906 -1969}%
-\special{pa 4626 -1969}\special{sh 1}\special{ip}%
-\color[cmyk]{0.07,0.9,0,0.34}%
-\settowidth{\Width}{ã‚ã„ã†ãˆãŠ}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{ã‚ã„ã†ãˆãŠ}\settodepth{\Depth}{ã‚ã„ã†ãˆãŠ}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(10.7500,4.2500){\hspace*{\Width}\raisebox{\Height}{ã‚ã„ã†ãˆãŠ}}%
-%
-%
-\special{pa 4626 -1772}\special{pa 4626 -1575}\special{pa 5906 -1575}\special{pa 5906 -1772}%
-\special{pa 4626 -1772}\special{sh 1}\special{ip}%
-\color[cmyk]{0.47,0.91,0,0.08}%
-\settowidth{\Width}{ã‚ã„ã†ãˆãŠ}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{ã‚ã„ã†ãˆãŠ}\settodepth{\Depth}{ã‚ã„ã†ãˆãŠ}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(10.7500,3.7500){\hspace*{\Width}\raisebox{\Height}{ã‚ã„ã†ãˆãŠ}}%
-%
-%
-\special{pa 4626 -1575}\special{pa 4626 -1378}\special{pa 5906 -1378}\special{pa 5906 -1575}%
-\special{pa 4626 -1575}\special{sh 1}\special{ip}%
-\color[cmyk]{0,0.48,0,0}%
-\settowidth{\Width}{ã‚ã„ã†ãˆãŠ}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{ã‚ã„ã†ãˆãŠ}\settodepth{\Depth}{ã‚ã„ã†ãˆãŠ}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(10.7500,3.2500){\hspace*{\Width}\raisebox{\Height}{ã‚ã„ã†ãˆãŠ}}%
-%
-%
-\special{pa 4626 -1378}\special{pa 4626 -1181}\special{pa 5906 -1181}\special{pa 5906 -1378}%
-\special{pa 4626 -1378}\special{sh 1}\special{ip}%
-\color[cmyk]{0.12,0.59,0,0}%
-\settowidth{\Width}{ã‚ã„ã†ãˆãŠ}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{ã‚ã„ã†ãˆãŠ}\settodepth{\Depth}{ã‚ã„ã†ãˆãŠ}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(10.7500,2.7500){\hspace*{\Width}\raisebox{\Height}{ã‚ã„ã†ãˆãŠ}}%
-%
-%
-\special{pa 4626 -1181}\special{pa 4626 -984}\special{pa 5906 -984}\special{pa 5906 -1181}%
-\special{pa 4626 -1181}\special{sh 1}\special{ip}%
-\color[cmyk]{0.32,0.64,0,0}%
-\settowidth{\Width}{ã‚ã„ã†ãˆãŠ}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{ã‚ã„ã†ãˆãŠ}\settodepth{\Depth}{ã‚ã„ã†ãˆãŠ}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(10.7500,2.2500){\hspace*{\Width}\raisebox{\Height}{ã‚ã„ã†ãˆãŠ}}%
-%
-%
-\special{pa 4626 -984}\special{pa 4626 -787}\special{pa 5906 -787}\special{pa 5906 -984}%
-\special{pa 4626 -984}\special{sh 1}\special{ip}%
-\color[cmyk]{0.4,0.8,0.2,0}%
-\settowidth{\Width}{ã‚ã„ã†ãˆãŠ}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{ã‚ã„ã†ãˆãŠ}\settodepth{\Depth}{ã‚ã„ã†ãˆãŠ}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(10.7500,1.7500){\hspace*{\Width}\raisebox{\Height}{ã‚ã„ã†ãˆãŠ}}%
-%
-%
-\special{pa 4626 -787}\special{pa 4626 -591}\special{pa 5906 -591}\special{pa 5906 -787}%
-\special{pa 4626 -787}\special{sh 1}\special{ip}%
-\color[cmyk]{0.45,0.86,0,0}%
-\settowidth{\Width}{ã‚ã„ã†ãˆãŠ}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{ã‚ã„ã†ãˆãŠ}\settodepth{\Depth}{ã‚ã„ã†ãˆãŠ}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(10.7500,1.2500){\hspace*{\Width}\raisebox{\Height}{ã‚ã„ã†ãˆãŠ}}%
-%
-%
-\special{pa 4626 -591}\special{pa 4626 -394}\special{pa 5906 -394}\special{pa 5906 -591}%
-\special{pa 4626 -591}\special{sh 1}\special{ip}%
-\color[cmyk]{0.5,1,0,0}%
-\settowidth{\Width}{ã‚ã„ã†ãˆãŠ}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{ã‚ã„ã†ãˆãŠ}\settodepth{\Depth}{ã‚ã„ã†ãˆãŠ}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(10.7500,0.7500){\hspace*{\Width}\raisebox{\Height}{ã‚ã„ã†ãˆãŠ}}%
-%
-%
-\special{pa 4626 -394}\special{pa 4626 -197}\special{pa 5906 -197}\special{pa 5906 -394}%
-\special{pa 4626 -394}\special{sh 1}\special{ip}%
-\color[cmyk]{0.79,0.88,0,0}%
-\settowidth{\Width}{ã‚ã„ã†ãˆãŠ}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{ã‚ã„ã†ãˆãŠ}\settodepth{\Depth}{ã‚ã„ã†ãˆãŠ}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(10.7500,0.2500){\hspace*{\Width}\raisebox{\Height}{ã‚ã„ã†ãˆãŠ}}%
-%
-%
-\special{pa 4626 -197}\special{pa 4626 0}\special{pa 5906 0}\special{pa 5906 -197}%
-\special{pa 4626 -197}\special{sh 1}\special{ip}%
-\color[cmyk]{0,0,0,1}%
-\special{pa 0 -6890}\special{pa 1083 -6890}%
-\special{fp}%
-\special{pa 1083 -6890}\special{pa 2461 -6890}%
-\special{fp}%
-\special{pa 2461 -6890}\special{pa 3839 -6890}%
-\special{fp}%
-\special{pa 3839 -6890}\special{pa 4626 -6890}%
-\special{fp}%
-\special{pa 4626 -6890}\special{pa 5906 -6890}%
-\special{fp}%
-\special{pa 0 -6693}\special{pa 1083 -6693}%
-\special{fp}%
-\special{pa 1083 -6693}\special{pa 2461 -6693}%
-\special{fp}%
-\special{pa 2461 -6693}\special{pa 3839 -6693}%
-\special{fp}%
-\special{pa 3839 -6693}\special{pa 4626 -6693}%
-\special{fp}%
-\special{pa 4626 -6693}\special{pa 5906 -6693}%
-\special{fp}%
-\special{pa 0 -6496}\special{pa 1083 -6496}%
-\special{fp}%
-\special{pa 1083 -6496}\special{pa 2461 -6496}%
-\special{fp}%
-\special{pa 2461 -6496}\special{pa 3839 -6496}%
-\special{fp}%
-\special{pa 3839 -6496}\special{pa 4626 -6496}%
-\special{fp}%
-\special{pa 4626 -6496}\special{pa 5906 -6496}%
-\special{fp}%
-\special{pa 0 -6299}\special{pa 1083 -6299}%
-\special{fp}%
-\special{pa 1083 -6299}\special{pa 2461 -6299}%
-\special{fp}%
-\special{pa 2461 -6299}\special{pa 3839 -6299}%
-\special{fp}%
-\special{pa 3839 -6299}\special{pa 4626 -6299}%
-\special{fp}%
-\special{pa 4626 -6299}\special{pa 5906 -6299}%
-\special{fp}%
-\special{pa 0 -6102}\special{pa 1083 -6102}%
-\special{fp}%
-\special{pa 1083 -6102}\special{pa 2461 -6102}%
-\special{fp}%
-\special{pa 2461 -6102}\special{pa 3839 -6102}%
-\special{fp}%
-\special{pa 3839 -6102}\special{pa 4626 -6102}%
-\special{fp}%
-\special{pa 4626 -6102}\special{pa 5906 -6102}%
-\special{fp}%
-\special{pa 0 -5906}\special{pa 1083 -5906}%
-\special{fp}%
-\special{pa 1083 -5906}\special{pa 2461 -5906}%
-\special{fp}%
-\special{pa 2461 -5906}\special{pa 3839 -5906}%
-\special{fp}%
-\special{pa 3839 -5906}\special{pa 4626 -5906}%
-\special{fp}%
-\special{pa 4626 -5906}\special{pa 5906 -5906}%
-\special{fp}%
-\special{pa 0 -5709}\special{pa 1083 -5709}%
-\special{fp}%
-\special{pa 1083 -5709}\special{pa 2461 -5709}%
-\special{fp}%
-\special{pa 2461 -5709}\special{pa 3839 -5709}%
-\special{fp}%
-\special{pa 3839 -5709}\special{pa 4626 -5709}%
-\special{fp}%
-\special{pa 4626 -5709}\special{pa 5906 -5709}%
-\special{fp}%
-\special{pa 0 -5512}\special{pa 1083 -5512}%
-\special{fp}%
-\special{pa 1083 -5512}\special{pa 2461 -5512}%
-\special{fp}%
-\special{pa 2461 -5512}\special{pa 3839 -5512}%
-\special{fp}%
-\special{pa 3839 -5512}\special{pa 4626 -5512}%
-\special{fp}%
-\special{pa 4626 -5512}\special{pa 5906 -5512}%
-\special{fp}%
-\special{pa 0 -5315}\special{pa 1083 -5315}%
-\special{fp}%
-\special{pa 1083 -5315}\special{pa 2461 -5315}%
-\special{fp}%
-\special{pa 2461 -5315}\special{pa 3839 -5315}%
-\special{fp}%
-\special{pa 3839 -5315}\special{pa 4626 -5315}%
-\special{fp}%
-\special{pa 4626 -5315}\special{pa 5906 -5315}%
-\special{fp}%
-\special{pa 0 -5118}\special{pa 1083 -5118}%
-\special{fp}%
-\special{pa 1083 -5118}\special{pa 2461 -5118}%
-\special{fp}%
-\special{pa 2461 -5118}\special{pa 3839 -5118}%
-\special{fp}%
-\special{pa 3839 -5118}\special{pa 4626 -5118}%
-\special{fp}%
-\special{pa 4626 -5118}\special{pa 5906 -5118}%
-\special{fp}%
-\special{pa 0 -4921}\special{pa 1083 -4921}%
-\special{fp}%
-\special{pa 1083 -4921}\special{pa 2461 -4921}%
-\special{fp}%
-\special{pa 2461 -4921}\special{pa 3839 -4921}%
-\special{fp}%
-\special{pa 3839 -4921}\special{pa 4626 -4921}%
-\special{fp}%
-\special{pa 4626 -4921}\special{pa 5906 -4921}%
-\special{fp}%
-\special{pa 0 -4724}\special{pa 1083 -4724}%
-\special{fp}%
-\special{pa 1083 -4724}\special{pa 2461 -4724}%
-\special{fp}%
-\special{pa 2461 -4724}\special{pa 3839 -4724}%
-\special{fp}%
-\special{pa 3839 -4724}\special{pa 4626 -4724}%
-\special{fp}%
-\special{pa 4626 -4724}\special{pa 5906 -4724}%
-\special{fp}%
-\special{pa 0 -4528}\special{pa 1083 -4528}%
-\special{fp}%
-\special{pa 1083 -4528}\special{pa 2461 -4528}%
-\special{fp}%
-\special{pa 2461 -4528}\special{pa 3839 -4528}%
-\special{fp}%
-\special{pa 3839 -4528}\special{pa 4626 -4528}%
-\special{fp}%
-\special{pa 4626 -4528}\special{pa 5906 -4528}%
-\special{fp}%
-\special{pa 0 -4331}\special{pa 1083 -4331}%
-\special{fp}%
-\special{pa 1083 -4331}\special{pa 2461 -4331}%
-\special{fp}%
-\special{pa 2461 -4331}\special{pa 3839 -4331}%
-\special{fp}%
-\special{pa 3839 -4331}\special{pa 4626 -4331}%
-\special{fp}%
-\special{pa 4626 -4331}\special{pa 5906 -4331}%
-\special{fp}%
-\special{pa 0 -4134}\special{pa 1083 -4134}%
-\special{fp}%
-\special{pa 1083 -4134}\special{pa 2461 -4134}%
-\special{fp}%
-\special{pa 2461 -4134}\special{pa 3839 -4134}%
-\special{fp}%
-\special{pa 3839 -4134}\special{pa 4626 -4134}%
-\special{fp}%
-\special{pa 4626 -4134}\special{pa 5906 -4134}%
-\special{fp}%
-\special{pa 0 -3937}\special{pa 1083 -3937}%
-\special{fp}%
-\special{pa 1083 -3937}\special{pa 2461 -3937}%
-\special{fp}%
-\special{pa 2461 -3937}\special{pa 3839 -3937}%
-\special{fp}%
-\special{pa 3839 -3937}\special{pa 4626 -3937}%
-\special{fp}%
-\special{pa 4626 -3937}\special{pa 5906 -3937}%
-\special{fp}%
-\special{pa 0 -3740}\special{pa 1083 -3740}%
-\special{fp}%
-\special{pa 1083 -3740}\special{pa 2461 -3740}%
-\special{fp}%
-\special{pa 2461 -3740}\special{pa 3839 -3740}%
-\special{fp}%
-\special{pa 3839 -3740}\special{pa 4626 -3740}%
-\special{fp}%
-\special{pa 4626 -3740}\special{pa 5906 -3740}%
-\special{fp}%
-\special{pa 0 -3543}\special{pa 1083 -3543}%
-\special{fp}%
-\special{pa 1083 -3543}\special{pa 2461 -3543}%
-\special{fp}%
-\special{pa 2461 -3543}\special{pa 3839 -3543}%
-\special{fp}%
-\special{pa 3839 -3543}\special{pa 4626 -3543}%
-\special{fp}%
-\special{pa 4626 -3543}\special{pa 5906 -3543}%
-\special{fp}%
-\special{pa 0 -3346}\special{pa 1083 -3346}%
-\special{fp}%
-\special{pa 1083 -3346}\special{pa 2461 -3346}%
-\special{fp}%
-\special{pa 2461 -3346}\special{pa 3839 -3346}%
-\special{fp}%
-\special{pa 3839 -3346}\special{pa 4626 -3346}%
-\special{fp}%
-\special{pa 4626 -3346}\special{pa 5906 -3346}%
-\special{fp}%
-\special{pa 0 -3150}\special{pa 1083 -3150}%
-\special{fp}%
-\special{pa 1083 -3150}\special{pa 2461 -3150}%
-\special{fp}%
-\special{pa 2461 -3150}\special{pa 3839 -3150}%
-\special{fp}%
-\special{pa 3839 -3150}\special{pa 4626 -3150}%
-\special{fp}%
-\special{pa 4626 -3150}\special{pa 5906 -3150}%
-\special{fp}%
-\special{pa 0 -2953}\special{pa 1083 -2953}%
-\special{fp}%
-\special{pa 1083 -2953}\special{pa 2461 -2953}%
-\special{fp}%
-\special{pa 2461 -2953}\special{pa 3839 -2953}%
-\special{fp}%
-\special{pa 3839 -2953}\special{pa 4626 -2953}%
-\special{fp}%
-\special{pa 4626 -2953}\special{pa 5906 -2953}%
-\special{fp}%
-\special{pa 0 -2756}\special{pa 1083 -2756}%
-\special{fp}%
-\special{pa 1083 -2756}\special{pa 2461 -2756}%
-\special{fp}%
-\special{pa 2461 -2756}\special{pa 3839 -2756}%
-\special{fp}%
-\special{pa 3839 -2756}\special{pa 4626 -2756}%
-\special{fp}%
-\special{pa 4626 -2756}\special{pa 5906 -2756}%
-\special{fp}%
-\special{pa 0 -2559}\special{pa 1083 -2559}%
-\special{fp}%
-\special{pa 1083 -2559}\special{pa 2461 -2559}%
-\special{fp}%
-\special{pa 2461 -2559}\special{pa 3839 -2559}%
-\special{fp}%
-\special{pa 3839 -2559}\special{pa 4626 -2559}%
-\special{fp}%
-\special{pa 4626 -2559}\special{pa 5906 -2559}%
-\special{fp}%
-\special{pa 0 -2362}\special{pa 1083 -2362}%
-\special{fp}%
-\special{pa 1083 -2362}\special{pa 2461 -2362}%
-\special{fp}%
-\special{pa 2461 -2362}\special{pa 3839 -2362}%
-\special{fp}%
-\special{pa 3839 -2362}\special{pa 4626 -2362}%
-\special{fp}%
-\special{pa 4626 -2362}\special{pa 5906 -2362}%
-\special{fp}%
-\special{pa 0 -2165}\special{pa 1083 -2165}%
-\special{fp}%
-\special{pa 1083 -2165}\special{pa 2461 -2165}%
-\special{fp}%
-\special{pa 2461 -2165}\special{pa 3839 -2165}%
-\special{fp}%
-\special{pa 3839 -2165}\special{pa 4626 -2165}%
-\special{fp}%
-\special{pa 4626 -2165}\special{pa 5906 -2165}%
-\special{fp}%
-\special{pa 0 -1969}\special{pa 1083 -1969}%
-\special{fp}%
-\special{pa 1083 -1969}\special{pa 2461 -1969}%
-\special{fp}%
-\special{pa 2461 -1969}\special{pa 3839 -1969}%
-\special{fp}%
-\special{pa 3839 -1969}\special{pa 4626 -1969}%
-\special{fp}%
-\special{pa 4626 -1969}\special{pa 5906 -1969}%
-\special{fp}%
-\special{pa 0 -1772}\special{pa 1083 -1772}%
-\special{fp}%
-\special{pa 1083 -1772}\special{pa 2461 -1772}%
-\special{fp}%
-\special{pa 2461 -1772}\special{pa 3839 -1772}%
-\special{fp}%
-\special{pa 3839 -1772}\special{pa 4626 -1772}%
-\special{fp}%
-\special{pa 4626 -1772}\special{pa 5906 -1772}%
-\special{fp}%
-\special{pa 0 -1575}\special{pa 1083 -1575}%
-\special{fp}%
-\special{pa 1083 -1575}\special{pa 2461 -1575}%
-\special{fp}%
-\special{pa 2461 -1575}\special{pa 3839 -1575}%
-\special{fp}%
-\special{pa 3839 -1575}\special{pa 4626 -1575}%
-\special{fp}%
-\special{pa 4626 -1575}\special{pa 5906 -1575}%
-\special{fp}%
-\special{pa 0 -1378}\special{pa 1083 -1378}%
-\special{fp}%
-\special{pa 1083 -1378}\special{pa 2461 -1378}%
-\special{fp}%
-\special{pa 2461 -1378}\special{pa 3839 -1378}%
-\special{fp}%
-\special{pa 3839 -1378}\special{pa 4626 -1378}%
-\special{fp}%
-\special{pa 4626 -1378}\special{pa 5906 -1378}%
-\special{fp}%
-\special{pa 0 -1181}\special{pa 1083 -1181}%
-\special{fp}%
-\special{pa 1083 -1181}\special{pa 2461 -1181}%
-\special{fp}%
-\special{pa 2461 -1181}\special{pa 3839 -1181}%
-\special{fp}%
-\special{pa 3839 -1181}\special{pa 4626 -1181}%
-\special{fp}%
-\special{pa 4626 -1181}\special{pa 5906 -1181}%
-\special{fp}%
-\special{pa 0 -984}\special{pa 1083 -984}%
-\special{fp}%
-\special{pa 1083 -984}\special{pa 2461 -984}%
-\special{fp}%
-\special{pa 2461 -984}\special{pa 3839 -984}%
-\special{fp}%
-\special{pa 3839 -984}\special{pa 4626 -984}%
-\special{fp}%
-\special{pa 4626 -984}\special{pa 5906 -984}%
-\special{fp}%
-\special{pa 0 -787}\special{pa 1083 -787}%
-\special{fp}%
-\special{pa 1083 -787}\special{pa 2461 -787}%
-\special{fp}%
-\special{pa 2461 -787}\special{pa 3839 -787}%
-\special{fp}%
-\special{pa 3839 -787}\special{pa 4626 -787}%
-\special{fp}%
-\special{pa 4626 -787}\special{pa 5906 -787}%
-\special{fp}%
-\special{pa 0 -591}\special{pa 1083 -591}%
-\special{fp}%
-\special{pa 1083 -591}\special{pa 2461 -591}%
-\special{fp}%
-\special{pa 2461 -591}\special{pa 3839 -591}%
-\special{fp}%
-\special{pa 3839 -591}\special{pa 4626 -591}%
-\special{fp}%
-\special{pa 4626 -591}\special{pa 5906 -591}%
-\special{fp}%
-\special{pa 0 -394}\special{pa 1083 -394}%
-\special{fp}%
-\special{pa 1083 -394}\special{pa 2461 -394}%
-\special{fp}%
-\special{pa 2461 -394}\special{pa 3839 -394}%
-\special{fp}%
-\special{pa 3839 -394}\special{pa 4626 -394}%
-\special{fp}%
-\special{pa 4626 -394}\special{pa 5906 -394}%
-\special{fp}%
-\special{pa 0 -197}\special{pa 1083 -197}%
-\special{fp}%
-\special{pa 1083 -197}\special{pa 2461 -197}%
-\special{fp}%
-\special{pa 2461 -197}\special{pa 3839 -197}%
-\special{fp}%
-\special{pa 3839 -197}\special{pa 4626 -197}%
-\special{fp}%
-\special{pa 4626 -197}\special{pa 5906 -197}%
-\special{fp}%
-\special{pa 0 0}\special{pa 1083 0}%
-\special{fp}%
-\special{pa 1083 0}\special{pa 2461 0}%
-\special{fp}%
-\special{pa 2461 0}\special{pa 3839 0}%
-\special{fp}%
-\special{pa 3839 0}\special{pa 4626 0}%
-\special{fp}%
-\special{pa 4626 0}\special{pa 5906 0}%
-\special{fp}%
-\special{pa 0 -6890}\special{pa 0 -6693}%
-\special{fp}%
-\special{pa 0 -6693}\special{pa 0 -6496}%
-\special{fp}%
-\special{pa 0 -6496}\special{pa 0 -6299}%
-\special{fp}%
-\special{pa 0 -6299}\special{pa 0 -6102}%
-\special{fp}%
-\special{pa 0 -6102}\special{pa 0 -5906}%
-\special{fp}%
-\special{pa 0 -5906}\special{pa 0 -5709}%
-\special{fp}%
-\special{pa 0 -5709}\special{pa 0 -5512}%
-\special{fp}%
-\special{pa 0 -5512}\special{pa 0 -5315}%
-\special{fp}%
-\special{pa 0 -5315}\special{pa 0 -5118}%
-\special{fp}%
-\special{pa 0 -5118}\special{pa 0 -4921}%
-\special{fp}%
-\special{pa 0 -4921}\special{pa 0 -4724}%
-\special{fp}%
-\special{pa 0 -4724}\special{pa 0 -4528}%
-\special{fp}%
-\special{pa 0 -4528}\special{pa 0 -4331}%
-\special{fp}%
-\special{pa 0 -4331}\special{pa 0 -4134}%
-\special{fp}%
-\special{pa 0 -4134}\special{pa 0 -3937}%
-\special{fp}%
-\special{pa 0 -3937}\special{pa 0 -3740}%
-\special{fp}%
-\special{pa 0 -3740}\special{pa 0 -3543}%
-\special{fp}%
-\special{pa 0 -3543}\special{pa 0 -3346}%
-\special{fp}%
-\special{pa 0 -3346}\special{pa 0 -3150}%
-\special{fp}%
-\special{pa 0 -3150}\special{pa 0 -2953}%
-\special{fp}%
-\special{pa 0 -2953}\special{pa 0 -2756}%
-\special{fp}%
-\special{pa 0 -2756}\special{pa 0 -2559}%
-\special{fp}%
-\special{pa 0 -2559}\special{pa 0 -2362}%
-\special{fp}%
-\special{pa 0 -2362}\special{pa 0 -2165}%
-\special{fp}%
-\special{pa 0 -2165}\special{pa 0 -1969}%
-\special{fp}%
-\special{pa 0 -1969}\special{pa 0 -1772}%
-\special{fp}%
-\special{pa 0 -1772}\special{pa 0 -1575}%
-\special{fp}%
-\special{pa 0 -1575}\special{pa 0 -1378}%
-\special{fp}%
-\special{pa 0 -1378}\special{pa 0 -1181}%
-\special{fp}%
-\special{pa 0 -1181}\special{pa 0 -984}%
-\special{fp}%
-\special{pa 0 -984}\special{pa 0 -787}%
-\special{fp}%
-\special{pa 0 -787}\special{pa 0 -591}%
-\special{fp}%
-\special{pa 0 -591}\special{pa 0 -394}%
-\special{fp}%
-\special{pa 0 -394}\special{pa 0 -197}%
-\special{fp}%
-\special{pa 0 -197}\special{pa 0 0}%
-\special{fp}%
-\special{pa 1083 -6890}\special{pa 1083 -6693}%
-\special{fp}%
-\special{pa 1083 -6693}\special{pa 1083 -6496}%
-\special{fp}%
-\special{pa 1083 -6496}\special{pa 1083 -6299}%
-\special{fp}%
-\special{pa 1083 -6299}\special{pa 1083 -6102}%
-\special{fp}%
-\special{pa 1083 -6102}\special{pa 1083 -5906}%
-\special{fp}%
-\special{pa 1083 -5906}\special{pa 1083 -5709}%
-\special{fp}%
-\special{pa 1083 -5709}\special{pa 1083 -5512}%
-\special{fp}%
-\special{pa 1083 -5512}\special{pa 1083 -5315}%
-\special{fp}%
-\special{pa 1083 -5315}\special{pa 1083 -5118}%
-\special{fp}%
-\special{pa 1083 -5118}\special{pa 1083 -4921}%
-\special{fp}%
-\special{pa 1083 -4921}\special{pa 1083 -4724}%
-\special{fp}%
-\special{pa 1083 -4724}\special{pa 1083 -4528}%
-\special{fp}%
-\special{pa 1083 -4528}\special{pa 1083 -4331}%
-\special{fp}%
-\special{pa 1083 -4331}\special{pa 1083 -4134}%
-\special{fp}%
-\special{pa 1083 -4134}\special{pa 1083 -3937}%
-\special{fp}%
-\special{pa 1083 -3937}\special{pa 1083 -3740}%
-\special{fp}%
-\special{pa 1083 -3740}\special{pa 1083 -3543}%
-\special{fp}%
-\special{pa 1083 -3543}\special{pa 1083 -3346}%
-\special{fp}%
-\special{pa 1083 -3346}\special{pa 1083 -3150}%
-\special{fp}%
-\special{pa 1083 -3150}\special{pa 1083 -2953}%
-\special{fp}%
-\special{pa 1083 -2953}\special{pa 1083 -2756}%
-\special{fp}%
-\special{pa 1083 -2756}\special{pa 1083 -2559}%
-\special{fp}%
-\special{pa 1083 -2559}\special{pa 1083 -2362}%
-\special{fp}%
-\special{pa 1083 -2362}\special{pa 1083 -2165}%
-\special{fp}%
-\special{pa 1083 -2165}\special{pa 1083 -1969}%
-\special{fp}%
-\special{pa 1083 -1969}\special{pa 1083 -1772}%
-\special{fp}%
-\special{pa 1083 -1772}\special{pa 1083 -1575}%
-\special{fp}%
-\special{pa 1083 -1575}\special{pa 1083 -1378}%
-\special{fp}%
-\special{pa 1083 -1378}\special{pa 1083 -1181}%
-\special{fp}%
-\special{pa 1083 -1181}\special{pa 1083 -984}%
-\special{fp}%
-\special{pa 1083 -984}\special{pa 1083 -787}%
-\special{fp}%
-\special{pa 1083 -787}\special{pa 1083 -591}%
-\special{fp}%
-\special{pa 1083 -591}\special{pa 1083 -394}%
-\special{fp}%
-\special{pa 1083 -394}\special{pa 1083 -197}%
-\special{fp}%
-\special{pa 1083 -197}\special{pa 1083 0}%
-\special{fp}%
-\special{pa 2461 -6890}\special{pa 2461 -6693}%
-\special{fp}%
-\special{pa 2461 -6693}\special{pa 2461 -6496}%
-\special{fp}%
-\special{pa 2461 -6496}\special{pa 2461 -6299}%
-\special{fp}%
-\special{pa 2461 -6299}\special{pa 2461 -6102}%
-\special{fp}%
-\special{pa 2461 -6102}\special{pa 2461 -5906}%
-\special{fp}%
-\special{pa 2461 -5906}\special{pa 2461 -5709}%
-\special{fp}%
-\special{pa 2461 -5709}\special{pa 2461 -5512}%
-\special{fp}%
-\special{pa 2461 -5512}\special{pa 2461 -5315}%
-\special{fp}%
-\special{pa 2461 -5315}\special{pa 2461 -5118}%
-\special{fp}%
-\special{pa 2461 -5118}\special{pa 2461 -4921}%
-\special{fp}%
-\special{pa 2461 -4921}\special{pa 2461 -4724}%
-\special{fp}%
-\special{pa 2461 -4724}\special{pa 2461 -4528}%
-\special{fp}%
-\special{pa 2461 -4528}\special{pa 2461 -4331}%
-\special{fp}%
-\special{pa 2461 -4331}\special{pa 2461 -4134}%
-\special{fp}%
-\special{pa 2461 -4134}\special{pa 2461 -3937}%
-\special{fp}%
-\special{pa 2461 -3937}\special{pa 2461 -3740}%
-\special{fp}%
-\special{pa 2461 -3740}\special{pa 2461 -3543}%
-\special{fp}%
-\special{pa 2461 -3543}\special{pa 2461 -3346}%
-\special{fp}%
-\special{pa 2461 -3346}\special{pa 2461 -3150}%
-\special{fp}%
-\special{pa 2461 -3150}\special{pa 2461 -2953}%
-\special{fp}%
-\special{pa 2461 -2953}\special{pa 2461 -2756}%
-\special{fp}%
-\special{pa 2461 -2756}\special{pa 2461 -2559}%
-\special{fp}%
-\special{pa 2461 -2559}\special{pa 2461 -2362}%
-\special{fp}%
-\special{pa 2461 -2362}\special{pa 2461 -2165}%
-\special{fp}%
-\special{pa 2461 -2165}\special{pa 2461 -1969}%
-\special{fp}%
-\special{pa 2461 -1969}\special{pa 2461 -1772}%
-\special{fp}%
-\special{pa 2461 -1772}\special{pa 2461 -1575}%
-\special{fp}%
-\special{pa 2461 -1575}\special{pa 2461 -1378}%
-\special{fp}%
-\special{pa 2461 -1378}\special{pa 2461 -1181}%
-\special{fp}%
-\special{pa 2461 -1181}\special{pa 2461 -984}%
-\special{fp}%
-\special{pa 2461 -984}\special{pa 2461 -787}%
-\special{fp}%
-\special{pa 2461 -787}\special{pa 2461 -591}%
-\special{fp}%
-\special{pa 2461 -591}\special{pa 2461 -394}%
-\special{fp}%
-\special{pa 2461 -394}\special{pa 2461 -197}%
-\special{fp}%
-\special{pa 2461 -197}\special{pa 2461 0}%
-\special{fp}%
-\special{pa 3839 -6890}\special{pa 3839 -6693}%
-\special{fp}%
-\special{pa 3839 -6693}\special{pa 3839 -6496}%
-\special{fp}%
-\special{pa 3839 -6496}\special{pa 3839 -6299}%
-\special{fp}%
-\special{pa 3839 -6299}\special{pa 3839 -6102}%
-\special{fp}%
-\special{pa 3839 -6102}\special{pa 3839 -5906}%
-\special{fp}%
-\special{pa 3839 -5906}\special{pa 3839 -5709}%
-\special{fp}%
-\special{pa 3839 -5709}\special{pa 3839 -5512}%
-\special{fp}%
-\special{pa 3839 -5512}\special{pa 3839 -5315}%
-\special{fp}%
-\special{pa 3839 -5315}\special{pa 3839 -5118}%
-\special{fp}%
-\special{pa 3839 -5118}\special{pa 3839 -4921}%
-\special{fp}%
-\special{pa 3839 -4921}\special{pa 3839 -4724}%
-\special{fp}%
-\special{pa 3839 -4724}\special{pa 3839 -4528}%
-\special{fp}%
-\special{pa 3839 -4528}\special{pa 3839 -4331}%
-\special{fp}%
-\special{pa 3839 -4331}\special{pa 3839 -4134}%
-\special{fp}%
-\special{pa 3839 -4134}\special{pa 3839 -3937}%
-\special{fp}%
-\special{pa 3839 -3937}\special{pa 3839 -3740}%
-\special{fp}%
-\special{pa 3839 -3740}\special{pa 3839 -3543}%
-\special{fp}%
-\special{pa 3839 -3543}\special{pa 3839 -3346}%
-\special{fp}%
-\special{pa 3839 -3346}\special{pa 3839 -3150}%
-\special{fp}%
-\special{pa 3839 -3150}\special{pa 3839 -2953}%
-\special{fp}%
-\special{pa 3839 -2953}\special{pa 3839 -2756}%
-\special{fp}%
-\special{pa 3839 -2756}\special{pa 3839 -2559}%
-\special{fp}%
-\special{pa 3839 -2559}\special{pa 3839 -2362}%
-\special{fp}%
-\special{pa 3839 -2362}\special{pa 3839 -2165}%
-\special{fp}%
-\special{pa 3839 -2165}\special{pa 3839 -1969}%
-\special{fp}%
-\special{pa 3839 -1969}\special{pa 3839 -1772}%
-\special{fp}%
-\special{pa 3839 -1772}\special{pa 3839 -1575}%
-\special{fp}%
-\special{pa 3839 -1575}\special{pa 3839 -1378}%
-\special{fp}%
-\special{pa 3839 -1378}\special{pa 3839 -1181}%
-\special{fp}%
-\special{pa 3839 -1181}\special{pa 3839 -984}%
-\special{fp}%
-\special{pa 3839 -984}\special{pa 3839 -787}%
-\special{fp}%
-\special{pa 3839 -787}\special{pa 3839 -591}%
-\special{fp}%
-\special{pa 3839 -591}\special{pa 3839 -394}%
-\special{fp}%
-\special{pa 3839 -394}\special{pa 3839 -197}%
-\special{fp}%
-\special{pa 3839 -197}\special{pa 3839 0}%
-\special{fp}%
-\special{pa 4626 -6890}\special{pa 4626 -6693}%
-\special{fp}%
-\special{pa 4626 -6693}\special{pa 4626 -6496}%
-\special{fp}%
-\special{pa 4626 -6496}\special{pa 4626 -6299}%
-\special{fp}%
-\special{pa 4626 -6299}\special{pa 4626 -6102}%
-\special{fp}%
-\special{pa 4626 -6102}\special{pa 4626 -5906}%
-\special{fp}%
-\special{pa 4626 -5906}\special{pa 4626 -5709}%
-\special{fp}%
-\special{pa 4626 -5709}\special{pa 4626 -5512}%
-\special{fp}%
-\special{pa 4626 -5512}\special{pa 4626 -5315}%
-\special{fp}%
-\special{pa 4626 -5315}\special{pa 4626 -5118}%
-\special{fp}%
-\special{pa 4626 -5118}\special{pa 4626 -4921}%
-\special{fp}%
-\special{pa 4626 -4921}\special{pa 4626 -4724}%
-\special{fp}%
-\special{pa 4626 -4724}\special{pa 4626 -4528}%
-\special{fp}%
-\special{pa 4626 -4528}\special{pa 4626 -4331}%
-\special{fp}%
-\special{pa 4626 -4331}\special{pa 4626 -4134}%
-\special{fp}%
-\special{pa 4626 -4134}\special{pa 4626 -3937}%
-\special{fp}%
-\special{pa 4626 -3937}\special{pa 4626 -3740}%
-\special{fp}%
-\special{pa 4626 -3740}\special{pa 4626 -3543}%
-\special{fp}%
-\special{pa 4626 -3543}\special{pa 4626 -3346}%
-\special{fp}%
-\special{pa 4626 -3346}\special{pa 4626 -3150}%
-\special{fp}%
-\special{pa 4626 -3150}\special{pa 4626 -2953}%
-\special{fp}%
-\special{pa 4626 -2953}\special{pa 4626 -2756}%
-\special{fp}%
-\special{pa 4626 -2756}\special{pa 4626 -2559}%
-\special{fp}%
-\special{pa 4626 -2559}\special{pa 4626 -2362}%
-\special{fp}%
-\special{pa 4626 -2362}\special{pa 4626 -2165}%
-\special{fp}%
-\special{pa 4626 -2165}\special{pa 4626 -1969}%
-\special{fp}%
-\special{pa 4626 -1969}\special{pa 4626 -1772}%
-\special{fp}%
-\special{pa 4626 -1772}\special{pa 4626 -1575}%
-\special{fp}%
-\special{pa 4626 -1575}\special{pa 4626 -1378}%
-\special{fp}%
-\special{pa 4626 -1378}\special{pa 4626 -1181}%
-\special{fp}%
-\special{pa 4626 -1181}\special{pa 4626 -984}%
-\special{fp}%
-\special{pa 4626 -984}\special{pa 4626 -787}%
-\special{fp}%
-\special{pa 4626 -787}\special{pa 4626 -591}%
-\special{fp}%
-\special{pa 4626 -591}\special{pa 4626 -394}%
-\special{fp}%
-\special{pa 4626 -394}\special{pa 4626 -197}%
-\special{fp}%
-\special{pa 4626 -197}\special{pa 4626 0}%
-\special{fp}%
-\special{pa 5906 -6890}\special{pa 5906 -6693}%
-\special{fp}%
-\special{pa 5906 -6693}\special{pa 5906 -6496}%
-\special{fp}%
-\special{pa 5906 -6496}\special{pa 5906 -6299}%
-\special{fp}%
-\special{pa 5906 -6299}\special{pa 5906 -6102}%
-\special{fp}%
-\special{pa 5906 -6102}\special{pa 5906 -5906}%
-\special{fp}%
-\special{pa 5906 -5906}\special{pa 5906 -5709}%
-\special{fp}%
-\special{pa 5906 -5709}\special{pa 5906 -5512}%
-\special{fp}%
-\special{pa 5906 -5512}\special{pa 5906 -5315}%
-\special{fp}%
-\special{pa 5906 -5315}\special{pa 5906 -5118}%
-\special{fp}%
-\special{pa 5906 -5118}\special{pa 5906 -4921}%
-\special{fp}%
-\special{pa 5906 -4921}\special{pa 5906 -4724}%
-\special{fp}%
-\special{pa 5906 -4724}\special{pa 5906 -4528}%
-\special{fp}%
-\special{pa 5906 -4528}\special{pa 5906 -4331}%
-\special{fp}%
-\special{pa 5906 -4331}\special{pa 5906 -4134}%
-\special{fp}%
-\special{pa 5906 -4134}\special{pa 5906 -3937}%
-\special{fp}%
-\special{pa 5906 -3937}\special{pa 5906 -3740}%
-\special{fp}%
-\special{pa 5906 -3740}\special{pa 5906 -3543}%
-\special{fp}%
-\special{pa 5906 -3543}\special{pa 5906 -3346}%
-\special{fp}%
-\special{pa 5906 -3346}\special{pa 5906 -3150}%
-\special{fp}%
-\special{pa 5906 -3150}\special{pa 5906 -2953}%
-\special{fp}%
-\special{pa 5906 -2953}\special{pa 5906 -2756}%
-\special{fp}%
-\special{pa 5906 -2756}\special{pa 5906 -2559}%
-\special{fp}%
-\special{pa 5906 -2559}\special{pa 5906 -2362}%
-\special{fp}%
-\special{pa 5906 -2362}\special{pa 5906 -2165}%
-\special{fp}%
-\special{pa 5906 -2165}\special{pa 5906 -1969}%
-\special{fp}%
-\special{pa 5906 -1969}\special{pa 5906 -1772}%
-\special{fp}%
-\special{pa 5906 -1772}\special{pa 5906 -1575}%
-\special{fp}%
-\special{pa 5906 -1575}\special{pa 5906 -1378}%
-\special{fp}%
-\special{pa 5906 -1378}\special{pa 5906 -1181}%
-\special{fp}%
-\special{pa 5906 -1181}\special{pa 5906 -984}%
-\special{fp}%
-\special{pa 5906 -984}\special{pa 5906 -787}%
-\special{fp}%
-\special{pa 5906 -787}\special{pa 5906 -591}%
-\special{fp}%
-\special{pa 5906 -591}\special{pa 5906 -394}%
-\special{fp}%
-\special{pa 5906 -394}\special{pa 5906 -197}%
-\special{fp}%
-\special{pa 5906 -197}\special{pa 5906 0}%
-\special{fp}%
-\settowidth{\Width}{Japanese}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{Japanese}\settodepth{\Depth}{Japanese}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(1.3800,17.2500){\hspace*{\Width}\raisebox{\Height}{Japanese}}%
-%
-%
-\settowidth{\Width}{\TeX command}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{\TeX command}\settodepth{\Depth}{\TeX command}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(4.5000,17.2500){\hspace*{\Width}\raisebox{\Height}{\TeX command}}%
-%
-%
-\settowidth{\Width}{[C,M,Y,K]}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{[C,M,Y,K]}\settodepth{\Depth}{[C,M,Y,K]}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(8.0000,17.2500){\hspace*{\Width}\raisebox{\Height}{[C,M,Y,K]}}%
-%
-%
-\settowidth{\Width}{Example}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{Example}\settodepth{\Depth}{Example}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(10.7500,17.2500){\hspace*{\Width}\raisebox{\Height}{Example}}%
-%
-%
-\settowidth{\Width}{thickness}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{thickness}\settodepth{\Depth}{thickness}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(13.3800,17.2500){\hspace*{\Width}\raisebox{\Height}{thickness}}%
-%
-%
-\settowidth{\Width}{}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{}\settodepth{\Depth}{}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(1.3800,16.7500){\hspace*{\Width}\raisebox{\Height}{}}%
-%
-%
-\settowidth{\Width}{greenyellow}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{greenyellow}\settodepth{\Depth}{greenyellow}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(4.5000,16.7500){\hspace*{\Width}\raisebox{\Height}{greenyellow}}%
-%
-%
-\settowidth{\Width}{[0.15,0,0.69,0]}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{[0.15,0,0.69,0]}\settodepth{\Depth}{[0.15,0,0.69,0]}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(8.0000,16.7500){\hspace*{\Width}\raisebox{\Height}{[0.15,0,0.69,0]}}%
-%
-%
-\settowidth{\Width}{}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{}\settodepth{\Depth}{}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(10.7500,16.7500){\hspace*{\Width}\raisebox{\Height}{}}%
-%
-%
-\settowidth{\Width}{}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{}\settodepth{\Depth}{}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(13.3800,16.7500){\hspace*{\Width}\raisebox{\Height}{}}%
-%
-%
-\settowidth{\Width}{黄色}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{黄色}\settodepth{\Depth}{黄色}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(1.3800,16.2500){\hspace*{\Width}\raisebox{\Height}{黄色}}%
-%
-%
-\settowidth{\Width}{yellow}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{yellow}\settodepth{\Depth}{yellow}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(4.5000,16.2500){\hspace*{\Width}\raisebox{\Height}{yellow}}%
-%
-%
-\settowidth{\Width}{[0,0,1,0]}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{[0,0,1,0]}\settodepth{\Depth}{[0,0,1,0]}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(8.0000,16.2500){\hspace*{\Width}\raisebox{\Height}{[0,0,1,0]}}%
-%
-%
-\settowidth{\Width}{}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{}\settodepth{\Depth}{}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(10.7500,16.2500){\hspace*{\Width}\raisebox{\Height}{}}%
-%
-%
-\settowidth{\Width}{}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{}\settodepth{\Depth}{}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(13.3800,16.2500){\hspace*{\Width}\raisebox{\Height}{}}%
-%
-%
-\settowidth{\Width}{}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{}\settodepth{\Depth}{}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(1.3800,15.7500){\hspace*{\Width}\raisebox{\Height}{}}%
-%
-%
-\settowidth{\Width}{goldenrod}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{goldenrod}\settodepth{\Depth}{goldenrod}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(4.5000,15.7500){\hspace*{\Width}\raisebox{\Height}{goldenrod}}%
-%
-%
-\settowidth{\Width}{[0,0.1,0.84,0]}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{[0,0.1,0.84,0]}\settodepth{\Depth}{[0,0.1,0.84,0]}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(8.0000,15.7500){\hspace*{\Width}\raisebox{\Height}{[0,0.1,0.84,0]}}%
-%
-%
-\settowidth{\Width}{}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{}\settodepth{\Depth}{}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(10.7500,15.7500){\hspace*{\Width}\raisebox{\Height}{}}%
-%
-%
-\settowidth{\Width}{}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{}\settodepth{\Depth}{}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(13.3800,15.7500){\hspace*{\Width}\raisebox{\Height}{}}%
-%
-%
-\settowidth{\Width}{}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{}\settodepth{\Depth}{}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(1.3800,15.2500){\hspace*{\Width}\raisebox{\Height}{}}%
-%
-%
-\settowidth{\Width}{dandelion}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{dandelion}\settodepth{\Depth}{dandelion}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(4.5000,15.2500){\hspace*{\Width}\raisebox{\Height}{dandelion}}%
-%
-%
-\settowidth{\Width}{[0,0.29,0.84,0]}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{[0,0.29,0.84,0]}\settodepth{\Depth}{[0,0.29,0.84,0]}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(8.0000,15.2500){\hspace*{\Width}\raisebox{\Height}{[0,0.29,0.84,0]}}%
-%
-%
-\settowidth{\Width}{}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{}\settodepth{\Depth}{}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(10.7500,15.2500){\hspace*{\Width}\raisebox{\Height}{}}%
-%
-%
-\settowidth{\Width}{}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{}\settodepth{\Depth}{}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(13.3800,15.2500){\hspace*{\Width}\raisebox{\Height}{}}%
-%
-%
-\settowidth{\Width}{}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{}\settodepth{\Depth}{}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(1.3800,14.7500){\hspace*{\Width}\raisebox{\Height}{}}%
-%
-%
-\settowidth{\Width}{apricot}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{apricot}\settodepth{\Depth}{apricot}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(4.5000,14.7500){\hspace*{\Width}\raisebox{\Height}{apricot}}%
-%
-%
-\settowidth{\Width}{[0,0.32,0.52,0]}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{[0,0.32,0.52,0]}\settodepth{\Depth}{[0,0.32,0.52,0]}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(8.0000,14.7500){\hspace*{\Width}\raisebox{\Height}{[0,0.32,0.52,0]}}%
-%
-%
-\settowidth{\Width}{}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{}\settodepth{\Depth}{}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(10.7500,14.7500){\hspace*{\Width}\raisebox{\Height}{}}%
-%
-%
-\settowidth{\Width}{}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{}\settodepth{\Depth}{}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(13.3800,14.7500){\hspace*{\Width}\raisebox{\Height}{}}%
-%
-%
-\settowidth{\Width}{}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{}\settodepth{\Depth}{}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(1.3800,14.2500){\hspace*{\Width}\raisebox{\Height}{}}%
-%
-%
-\settowidth{\Width}{peach}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{peach}\settodepth{\Depth}{peach}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(4.5000,14.2500){\hspace*{\Width}\raisebox{\Height}{peach}}%
-%
-%
-\settowidth{\Width}{[0,0.5,0.7,0]}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{[0,0.5,0.7,0]}\settodepth{\Depth}{[0,0.5,0.7,0]}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(8.0000,14.2500){\hspace*{\Width}\raisebox{\Height}{[0,0.5,0.7,0]}}%
-%
-%
-\settowidth{\Width}{}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{}\settodepth{\Depth}{}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(10.7500,14.2500){\hspace*{\Width}\raisebox{\Height}{}}%
-%
-%
-\settowidth{\Width}{}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{}\settodepth{\Depth}{}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(13.3800,14.2500){\hspace*{\Width}\raisebox{\Height}{}}%
-%
-%
-\settowidth{\Width}{}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{}\settodepth{\Depth}{}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(1.3800,13.7500){\hspace*{\Width}\raisebox{\Height}{}}%
-%
-%
-\settowidth{\Width}{melon}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{melon}\settodepth{\Depth}{melon}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(4.5000,13.7500){\hspace*{\Width}\raisebox{\Height}{melon}}%
-%
-%
-\settowidth{\Width}{[0,0.46,0.5,0]}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{[0,0.46,0.5,0]}\settodepth{\Depth}{[0,0.46,0.5,0]}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(8.0000,13.7500){\hspace*{\Width}\raisebox{\Height}{[0,0.46,0.5,0]}}%
-%
-%
-\settowidth{\Width}{}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{}\settodepth{\Depth}{}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(10.7500,13.7500){\hspace*{\Width}\raisebox{\Height}{}}%
-%
-%
-\settowidth{\Width}{}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{}\settodepth{\Depth}{}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(13.3800,13.7500){\hspace*{\Width}\raisebox{\Height}{}}%
-%
-%
-\settowidth{\Width}{}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{}\settodepth{\Depth}{}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(1.3800,13.2500){\hspace*{\Width}\raisebox{\Height}{}}%
-%
-%
-\settowidth{\Width}{yelloworange}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{yelloworange}\settodepth{\Depth}{yelloworange}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(4.5000,13.2500){\hspace*{\Width}\raisebox{\Height}{yelloworange}}%
-%
-%
-\settowidth{\Width}{[0,0.42,1,0]}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{[0,0.42,1,0]}\settodepth{\Depth}{[0,0.42,1,0]}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(8.0000,13.2500){\hspace*{\Width}\raisebox{\Height}{[0,0.42,1,0]}}%
-%
-%
-\settowidth{\Width}{}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{}\settodepth{\Depth}{}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(10.7500,13.2500){\hspace*{\Width}\raisebox{\Height}{}}%
-%
-%
-\settowidth{\Width}{}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{}\settodepth{\Depth}{}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(13.3800,13.2500){\hspace*{\Width}\raisebox{\Height}{}}%
-%
-%
-\settowidth{\Width}{æ©™}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{æ©™}\settodepth{\Depth}{æ©™}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(1.3800,12.7500){\hspace*{\Width}\raisebox{\Height}{æ©™}}%
-%
-%
-\settowidth{\Width}{orange}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{orange}\settodepth{\Depth}{orange}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(4.5000,12.7500){\hspace*{\Width}\raisebox{\Height}{orange}}%
-%
-%
-\settowidth{\Width}{[0,0.61,0.87,0]}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{[0,0.61,0.87,0]}\settodepth{\Depth}{[0,0.61,0.87,0]}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(8.0000,12.7500){\hspace*{\Width}\raisebox{\Height}{[0,0.61,0.87,0]}}%
-%
-%
-\settowidth{\Width}{}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{}\settodepth{\Depth}{}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(10.7500,12.7500){\hspace*{\Width}\raisebox{\Height}{}}%
-%
-%
-\settowidth{\Width}{}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{}\settodepth{\Depth}{}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(13.3800,12.7500){\hspace*{\Width}\raisebox{\Height}{}}%
-%
-%
-\settowidth{\Width}{}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{}\settodepth{\Depth}{}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(1.3800,12.2500){\hspace*{\Width}\raisebox{\Height}{}}%
-%
-%
-\settowidth{\Width}{burntorange}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{burntorange}\settodepth{\Depth}{burntorange}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(4.5000,12.2500){\hspace*{\Width}\raisebox{\Height}{burntorange}}%
-%
-%
-\settowidth{\Width}{[0,0.51,1,0]}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{[0,0.51,1,0]}\settodepth{\Depth}{[0,0.51,1,0]}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(8.0000,12.2500){\hspace*{\Width}\raisebox{\Height}{[0,0.51,1,0]}}%
-%
-%
-\settowidth{\Width}{}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{}\settodepth{\Depth}{}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(10.7500,12.2500){\hspace*{\Width}\raisebox{\Height}{}}%
-%
-%
-\settowidth{\Width}{}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{}\settodepth{\Depth}{}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(13.3800,12.2500){\hspace*{\Width}\raisebox{\Height}{}}%
-%
-%
-\settowidth{\Width}{}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{}\settodepth{\Depth}{}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(1.3800,11.7500){\hspace*{\Width}\raisebox{\Height}{}}%
-%
-%
-\settowidth{\Width}{bittersweet}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{bittersweet}\settodepth{\Depth}{bittersweet}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(4.5000,11.7500){\hspace*{\Width}\raisebox{\Height}{bittersweet}}%
-%
-%
-\settowidth{\Width}{[0,0.75,1,0.24]}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{[0,0.75,1,0.24]}\settodepth{\Depth}{[0,0.75,1,0.24]}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(8.0000,11.7500){\hspace*{\Width}\raisebox{\Height}{[0,0.75,1,0.24]}}%
-%
-%
-\settowidth{\Width}{}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{}\settodepth{\Depth}{}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(10.7500,11.7500){\hspace*{\Width}\raisebox{\Height}{}}%
-%
-%
-\settowidth{\Width}{}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{}\settodepth{\Depth}{}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(13.3800,11.7500){\hspace*{\Width}\raisebox{\Height}{}}%
-%
-%
-\settowidth{\Width}{}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{}\settodepth{\Depth}{}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(1.3800,11.2500){\hspace*{\Width}\raisebox{\Height}{}}%
-%
-%
-\settowidth{\Width}{redorange}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{redorange}\settodepth{\Depth}{redorange}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(4.5000,11.2500){\hspace*{\Width}\raisebox{\Height}{redorange}}%
-%
-%
-\settowidth{\Width}{[0,0.77,0.87,0]}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{[0,0.77,0.87,0]}\settodepth{\Depth}{[0,0.77,0.87,0]}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(8.0000,11.2500){\hspace*{\Width}\raisebox{\Height}{[0,0.77,0.87,0]}}%
-%
-%
-\settowidth{\Width}{}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{}\settodepth{\Depth}{}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(10.7500,11.2500){\hspace*{\Width}\raisebox{\Height}{}}%
-%
-%
-\settowidth{\Width}{}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{}\settodepth{\Depth}{}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(13.3800,11.2500){\hspace*{\Width}\raisebox{\Height}{}}%
-%
-%
-\settowidth{\Width}{}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{}\settodepth{\Depth}{}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(1.3800,10.7500){\hspace*{\Width}\raisebox{\Height}{}}%
-%
-%
-\settowidth{\Width}{mahogany}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{mahogany}\settodepth{\Depth}{mahogany}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(4.5000,10.7500){\hspace*{\Width}\raisebox{\Height}{mahogany}}%
-%
-%
-\settowidth{\Width}{[0,0.85,0.87,0.35]}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{[0,0.85,0.87,0.35]}\settodepth{\Depth}{[0,0.85,0.87,0.35]}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(8.0000,10.7500){\hspace*{\Width}\raisebox{\Height}{[0,0.85,0.87,0.35]}}%
-%
-%
-\settowidth{\Width}{}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{}\settodepth{\Depth}{}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(10.7500,10.7500){\hspace*{\Width}\raisebox{\Height}{}}%
-%
-%
-\settowidth{\Width}{}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{}\settodepth{\Depth}{}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(13.3800,10.7500){\hspace*{\Width}\raisebox{\Height}{}}%
-%
-%
-\settowidth{\Width}{}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{}\settodepth{\Depth}{}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(1.3800,10.2500){\hspace*{\Width}\raisebox{\Height}{}}%
-%
-%
-\settowidth{\Width}{maroon}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{maroon}\settodepth{\Depth}{maroon}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(4.5000,10.2500){\hspace*{\Width}\raisebox{\Height}{maroon}}%
-%
-%
-\settowidth{\Width}{[0,0.87,0.68,0.32]}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{[0,0.87,0.68,0.32]}\settodepth{\Depth}{[0,0.87,0.68,0.32]}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(8.0000,10.2500){\hspace*{\Width}\raisebox{\Height}{[0,0.87,0.68,0.32]}}%
-%
-%
-\settowidth{\Width}{}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{}\settodepth{\Depth}{}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(10.7500,10.2500){\hspace*{\Width}\raisebox{\Height}{}}%
-%
-%
-\settowidth{\Width}{}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{}\settodepth{\Depth}{}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(13.3800,10.2500){\hspace*{\Width}\raisebox{\Height}{}}%
-%
-%
-\settowidth{\Width}{}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{}\settodepth{\Depth}{}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(1.3800,9.7500){\hspace*{\Width}\raisebox{\Height}{}}%
-%
-%
-\settowidth{\Width}{brickred}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{brickred}\settodepth{\Depth}{brickred}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(4.5000,9.7500){\hspace*{\Width}\raisebox{\Height}{brickred}}%
-%
-%
-\settowidth{\Width}{[0,0.89,0.94,0.28]}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{[0,0.89,0.94,0.28]}\settodepth{\Depth}{[0,0.89,0.94,0.28]}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(8.0000,9.7500){\hspace*{\Width}\raisebox{\Height}{[0,0.89,0.94,0.28]}}%
-%
-%
-\settowidth{\Width}{}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{}\settodepth{\Depth}{}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(10.7500,9.7500){\hspace*{\Width}\raisebox{\Height}{}}%
-%
-%
-\settowidth{\Width}{}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{}\settodepth{\Depth}{}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(13.3800,9.7500){\hspace*{\Width}\raisebox{\Height}{}}%
-%
-%
-\settowidth{\Width}{赤}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{赤}\settodepth{\Depth}{赤}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(1.3800,9.2500){\hspace*{\Width}\raisebox{\Height}{赤}}%
-%
-%
-\settowidth{\Width}{red}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{red}\settodepth{\Depth}{red}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(4.5000,9.2500){\hspace*{\Width}\raisebox{\Height}{red}}%
-%
-%
-\settowidth{\Width}{[0,1,1,0]}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{[0,1,1,0]}\settodepth{\Depth}{[0,1,1,0]}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(8.0000,9.2500){\hspace*{\Width}\raisebox{\Height}{[0,1,1,0]}}%
-%
-%
-\settowidth{\Width}{}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{}\settodepth{\Depth}{}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(10.7500,9.2500){\hspace*{\Width}\raisebox{\Height}{}}%
-%
-%
-\settowidth{\Width}{}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{}\settodepth{\Depth}{}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(13.3800,9.2500){\hspace*{\Width}\raisebox{\Height}{}}%
-%
-%
-\settowidth{\Width}{}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{}\settodepth{\Depth}{}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(1.3800,8.7500){\hspace*{\Width}\raisebox{\Height}{}}%
-%
-%
-\settowidth{\Width}{orangered}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{orangered}\settodepth{\Depth}{orangered}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(4.5000,8.7500){\hspace*{\Width}\raisebox{\Height}{orangered}}%
-%
-%
-\settowidth{\Width}{[0,1,0.5,0]}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{[0,1,0.5,0]}\settodepth{\Depth}{[0,1,0.5,0]}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(8.0000,8.7500){\hspace*{\Width}\raisebox{\Height}{[0,1,0.5,0]}}%
-%
-%
-\settowidth{\Width}{}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{}\settodepth{\Depth}{}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(10.7500,8.7500){\hspace*{\Width}\raisebox{\Height}{}}%
-%
-%
-\settowidth{\Width}{}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{}\settodepth{\Depth}{}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(13.3800,8.7500){\hspace*{\Width}\raisebox{\Height}{}}%
-%
-%
-\settowidth{\Width}{}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{}\settodepth{\Depth}{}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(1.3800,8.2500){\hspace*{\Width}\raisebox{\Height}{}}%
-%
-%
-\settowidth{\Width}{rubinered}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{rubinered}\settodepth{\Depth}{rubinered}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(4.5000,8.2500){\hspace*{\Width}\raisebox{\Height}{rubinered}}%
-%
-%
-\settowidth{\Width}{[0,1,0.13,0]}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{[0,1,0.13,0]}\settodepth{\Depth}{[0,1,0.13,0]}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(8.0000,8.2500){\hspace*{\Width}\raisebox{\Height}{[0,1,0.13,0]}}%
-%
-%
-\settowidth{\Width}{}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{}\settodepth{\Depth}{}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(10.7500,8.2500){\hspace*{\Width}\raisebox{\Height}{}}%
-%
-%
-\settowidth{\Width}{}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{}\settodepth{\Depth}{}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(13.3800,8.2500){\hspace*{\Width}\raisebox{\Height}{}}%
-%
-%
-\settowidth{\Width}{}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{}\settodepth{\Depth}{}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(1.3800,7.7500){\hspace*{\Width}\raisebox{\Height}{}}%
-%
-%
-\settowidth{\Width}{wildstrawberry}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{wildstrawberry}\settodepth{\Depth}{wildstrawberry}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(4.5000,7.7500){\hspace*{\Width}\raisebox{\Height}{wildstrawberry}}%
-%
-%
-\settowidth{\Width}{[0,0.96,0.39,0]}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{[0,0.96,0.39,0]}\settodepth{\Depth}{[0,0.96,0.39,0]}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(8.0000,7.7500){\hspace*{\Width}\raisebox{\Height}{[0,0.96,0.39,0]}}%
-%
-%
-\settowidth{\Width}{}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{}\settodepth{\Depth}{}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(10.7500,7.7500){\hspace*{\Width}\raisebox{\Height}{}}%
-%
-%
-\settowidth{\Width}{}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{}\settodepth{\Depth}{}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(13.3800,7.7500){\hspace*{\Width}\raisebox{\Height}{}}%
-%
-%
-\settowidth{\Width}{}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{}\settodepth{\Depth}{}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(1.3800,7.2500){\hspace*{\Width}\raisebox{\Height}{}}%
-%
-%
-\settowidth{\Width}{salmon}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{salmon}\settodepth{\Depth}{salmon}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(4.5000,7.2500){\hspace*{\Width}\raisebox{\Height}{salmon}}%
-%
-%
-\settowidth{\Width}{[0,0.53,0.38,0]}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{[0,0.53,0.38,0]}\settodepth{\Depth}{[0,0.53,0.38,0]}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(8.0000,7.2500){\hspace*{\Width}\raisebox{\Height}{[0,0.53,0.38,0]}}%
-%
-%
-\settowidth{\Width}{}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{}\settodepth{\Depth}{}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(10.7500,7.2500){\hspace*{\Width}\raisebox{\Height}{}}%
-%
-%
-\settowidth{\Width}{}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{}\settodepth{\Depth}{}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(13.3800,7.2500){\hspace*{\Width}\raisebox{\Height}{}}%
-%
-%
-\settowidth{\Width}{}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{}\settodepth{\Depth}{}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(1.3800,6.7500){\hspace*{\Width}\raisebox{\Height}{}}%
-%
-%
-\settowidth{\Width}{carnationpink}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{carnationpink}\settodepth{\Depth}{carnationpink}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(4.5000,6.7500){\hspace*{\Width}\raisebox{\Height}{carnationpink}}%
-%
-%
-\settowidth{\Width}{[0,0.63,0,0]}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{[0,0.63,0,0]}\settodepth{\Depth}{[0,0.63,0,0]}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(8.0000,6.7500){\hspace*{\Width}\raisebox{\Height}{[0,0.63,0,0]}}%
-%
-%
-\settowidth{\Width}{}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{}\settodepth{\Depth}{}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(10.7500,6.7500){\hspace*{\Width}\raisebox{\Height}{}}%
-%
-%
-\settowidth{\Width}{}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{}\settodepth{\Depth}{}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(13.3800,6.7500){\hspace*{\Width}\raisebox{\Height}{}}%
-%
-%
-\settowidth{\Width}{}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{}\settodepth{\Depth}{}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(1.3800,6.2500){\hspace*{\Width}\raisebox{\Height}{}}%
-%
-%
-\settowidth{\Width}{magenta}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{magenta}\settodepth{\Depth}{magenta}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(4.5000,6.2500){\hspace*{\Width}\raisebox{\Height}{magenta}}%
-%
-%
-\settowidth{\Width}{[0,1,0,0]}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{[0,1,0,0]}\settodepth{\Depth}{[0,1,0,0]}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(8.0000,6.2500){\hspace*{\Width}\raisebox{\Height}{[0,1,0,0]}}%
-%
-%
-\settowidth{\Width}{}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{}\settodepth{\Depth}{}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(10.7500,6.2500){\hspace*{\Width}\raisebox{\Height}{}}%
-%
-%
-\settowidth{\Width}{}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{}\settodepth{\Depth}{}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(13.3800,6.2500){\hspace*{\Width}\raisebox{\Height}{}}%
-%
-%
-\settowidth{\Width}{}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{}\settodepth{\Depth}{}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(1.3800,5.7500){\hspace*{\Width}\raisebox{\Height}{}}%
-%
-%
-\settowidth{\Width}{violetred}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{violetred}\settodepth{\Depth}{violetred}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(4.5000,5.7500){\hspace*{\Width}\raisebox{\Height}{violetred}}%
-%
-%
-\settowidth{\Width}{[0,0.81,0,0]}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{[0,0.81,0,0]}\settodepth{\Depth}{[0,0.81,0,0]}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(8.0000,5.7500){\hspace*{\Width}\raisebox{\Height}{[0,0.81,0,0]}}%
-%
-%
-\settowidth{\Width}{}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{}\settodepth{\Depth}{}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(10.7500,5.7500){\hspace*{\Width}\raisebox{\Height}{}}%
-%
-%
-\settowidth{\Width}{}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{}\settodepth{\Depth}{}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(13.3800,5.7500){\hspace*{\Width}\raisebox{\Height}{}}%
-%
-%
-\settowidth{\Width}{}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{}\settodepth{\Depth}{}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(1.3800,5.2500){\hspace*{\Width}\raisebox{\Height}{}}%
-%
-%
-\settowidth{\Width}{rhodamine}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{rhodamine}\settodepth{\Depth}{rhodamine}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(4.5000,5.2500){\hspace*{\Width}\raisebox{\Height}{rhodamine}}%
-%
-%
-\settowidth{\Width}{[0,0.82,0,0]}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{[0,0.82,0,0]}\settodepth{\Depth}{[0,0.82,0,0]}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(8.0000,5.2500){\hspace*{\Width}\raisebox{\Height}{[0,0.82,0,0]}}%
-%
-%
-\settowidth{\Width}{}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{}\settodepth{\Depth}{}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(10.7500,5.2500){\hspace*{\Width}\raisebox{\Height}{}}%
-%
-%
-\settowidth{\Width}{}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{}\settodepth{\Depth}{}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(13.3800,5.2500){\hspace*{\Width}\raisebox{\Height}{}}%
-%
-%
-\settowidth{\Width}{}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{}\settodepth{\Depth}{}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(1.3800,4.7500){\hspace*{\Width}\raisebox{\Height}{}}%
-%
-%
-\settowidth{\Width}{mulberry}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{mulberry}\settodepth{\Depth}{mulberry}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(4.5000,4.7500){\hspace*{\Width}\raisebox{\Height}{mulberry}}%
-%
-%
-\settowidth{\Width}{[0.34,0.9,0,0.02]}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{[0.34,0.9,0,0.02]}\settodepth{\Depth}{[0.34,0.9,0,0.02]}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(8.0000,4.7500){\hspace*{\Width}\raisebox{\Height}{[0.34,0.9,0,0.02]}}%
-%
-%
-\settowidth{\Width}{}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{}\settodepth{\Depth}{}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(10.7500,4.7500){\hspace*{\Width}\raisebox{\Height}{}}%
-%
-%
-\settowidth{\Width}{}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{}\settodepth{\Depth}{}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(13.3800,4.7500){\hspace*{\Width}\raisebox{\Height}{}}%
-%
-%
-\settowidth{\Width}{}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{}\settodepth{\Depth}{}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(1.3800,4.2500){\hspace*{\Width}\raisebox{\Height}{}}%
-%
-%
-\settowidth{\Width}{redviolet}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{redviolet}\settodepth{\Depth}{redviolet}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(4.5000,4.2500){\hspace*{\Width}\raisebox{\Height}{redviolet}}%
-%
-%
-\settowidth{\Width}{[0.07,0.9,0,0.34]}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{[0.07,0.9,0,0.34]}\settodepth{\Depth}{[0.07,0.9,0,0.34]}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(8.0000,4.2500){\hspace*{\Width}\raisebox{\Height}{[0.07,0.9,0,0.34]}}%
-%
-%
-\settowidth{\Width}{}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{}\settodepth{\Depth}{}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(10.7500,4.2500){\hspace*{\Width}\raisebox{\Height}{}}%
-%
-%
-\settowidth{\Width}{}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{}\settodepth{\Depth}{}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(13.3800,4.2500){\hspace*{\Width}\raisebox{\Height}{}}%
-%
-%
-\settowidth{\Width}{}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{}\settodepth{\Depth}{}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(1.3800,3.7500){\hspace*{\Width}\raisebox{\Height}{}}%
-%
-%
-\settowidth{\Width}{fuchsia}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{fuchsia}\settodepth{\Depth}{fuchsia}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(4.5000,3.7500){\hspace*{\Width}\raisebox{\Height}{fuchsia}}%
-%
-%
-\settowidth{\Width}{[0.47,0.91,0,0.08]}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{[0.47,0.91,0,0.08]}\settodepth{\Depth}{[0.47,0.91,0,0.08]}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(8.0000,3.7500){\hspace*{\Width}\raisebox{\Height}{[0.47,0.91,0,0.08]}}%
-%
-%
-\settowidth{\Width}{}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{}\settodepth{\Depth}{}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(10.7500,3.7500){\hspace*{\Width}\raisebox{\Height}{}}%
-%
-%
-\settowidth{\Width}{}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{}\settodepth{\Depth}{}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(13.3800,3.7500){\hspace*{\Width}\raisebox{\Height}{}}%
-%
-%
-\settowidth{\Width}{}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{}\settodepth{\Depth}{}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(1.3800,3.2500){\hspace*{\Width}\raisebox{\Height}{}}%
-%
-%
-\settowidth{\Width}{lavender}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{lavender}\settodepth{\Depth}{lavender}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(4.5000,3.2500){\hspace*{\Width}\raisebox{\Height}{lavender}}%
-%
-%
-\settowidth{\Width}{[0,0.48,0,0]}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{[0,0.48,0,0]}\settodepth{\Depth}{[0,0.48,0,0]}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(8.0000,3.2500){\hspace*{\Width}\raisebox{\Height}{[0,0.48,0,0]}}%
-%
-%
-\settowidth{\Width}{}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{}\settodepth{\Depth}{}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(10.7500,3.2500){\hspace*{\Width}\raisebox{\Height}{}}%
-%
-%
-\settowidth{\Width}{}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{}\settodepth{\Depth}{}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(13.3800,3.2500){\hspace*{\Width}\raisebox{\Height}{}}%
-%
-%
-\settowidth{\Width}{}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{}\settodepth{\Depth}{}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(1.3800,2.7500){\hspace*{\Width}\raisebox{\Height}{}}%
-%
-%
-\settowidth{\Width}{thistle}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{thistle}\settodepth{\Depth}{thistle}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(4.5000,2.7500){\hspace*{\Width}\raisebox{\Height}{thistle}}%
-%
-%
-\settowidth{\Width}{[0.12,0.59,0,0]}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{[0.12,0.59,0,0]}\settodepth{\Depth}{[0.12,0.59,0,0]}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(8.0000,2.7500){\hspace*{\Width}\raisebox{\Height}{[0.12,0.59,0,0]}}%
-%
-%
-\settowidth{\Width}{}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{}\settodepth{\Depth}{}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(10.7500,2.7500){\hspace*{\Width}\raisebox{\Height}{}}%
-%
-%
-\settowidth{\Width}{}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{}\settodepth{\Depth}{}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(13.3800,2.7500){\hspace*{\Width}\raisebox{\Height}{}}%
-%
-%
-\settowidth{\Width}{}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{}\settodepth{\Depth}{}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(1.3800,2.2500){\hspace*{\Width}\raisebox{\Height}{}}%
-%
-%
-\settowidth{\Width}{orchid}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{orchid}\settodepth{\Depth}{orchid}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(4.5000,2.2500){\hspace*{\Width}\raisebox{\Height}{orchid}}%
-%
-%
-\settowidth{\Width}{[0.32,0.64,0,0]}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{[0.32,0.64,0,0]}\settodepth{\Depth}{[0.32,0.64,0,0]}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(8.0000,2.2500){\hspace*{\Width}\raisebox{\Height}{[0.32,0.64,0,0]}}%
-%
-%
-\settowidth{\Width}{}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{}\settodepth{\Depth}{}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(10.7500,2.2500){\hspace*{\Width}\raisebox{\Height}{}}%
-%
-%
-\settowidth{\Width}{}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{}\settodepth{\Depth}{}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(13.3800,2.2500){\hspace*{\Width}\raisebox{\Height}{}}%
-%
-%
-\settowidth{\Width}{}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{}\settodepth{\Depth}{}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(1.3800,1.7500){\hspace*{\Width}\raisebox{\Height}{}}%
-%
-%
-\settowidth{\Width}{darkorchid}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{darkorchid}\settodepth{\Depth}{darkorchid}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(4.5000,1.7500){\hspace*{\Width}\raisebox{\Height}{darkorchid}}%
-%
-%
-\settowidth{\Width}{[0.4,0.8,0.2,0]}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{[0.4,0.8,0.2,0]}\settodepth{\Depth}{[0.4,0.8,0.2,0]}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(8.0000,1.7500){\hspace*{\Width}\raisebox{\Height}{[0.4,0.8,0.2,0]}}%
-%
-%
-\settowidth{\Width}{}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{}\settodepth{\Depth}{}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(10.7500,1.7500){\hspace*{\Width}\raisebox{\Height}{}}%
-%
-%
-\settowidth{\Width}{}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{}\settodepth{\Depth}{}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(13.3800,1.7500){\hspace*{\Width}\raisebox{\Height}{}}%
-%
-%
-\settowidth{\Width}{ç´«}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{ç´«}\settodepth{\Depth}{ç´«}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(1.3800,1.2500){\hspace*{\Width}\raisebox{\Height}{ç´«}}%
-%
-%
-\settowidth{\Width}{purple}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{purple}\settodepth{\Depth}{purple}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(4.5000,1.2500){\hspace*{\Width}\raisebox{\Height}{purple}}%
-%
-%
-\settowidth{\Width}{[0.45,0.86,0,0]}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{[0.45,0.86,0,0]}\settodepth{\Depth}{[0.45,0.86,0,0]}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(8.0000,1.2500){\hspace*{\Width}\raisebox{\Height}{[0.45,0.86,0,0]}}%
-%
-%
-\settowidth{\Width}{}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{}\settodepth{\Depth}{}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(10.7500,1.2500){\hspace*{\Width}\raisebox{\Height}{}}%
-%
-%
-\settowidth{\Width}{}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{}\settodepth{\Depth}{}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(13.3800,1.2500){\hspace*{\Width}\raisebox{\Height}{}}%
-%
-%
-\settowidth{\Width}{}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{}\settodepth{\Depth}{}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(1.3800,0.7500){\hspace*{\Width}\raisebox{\Height}{}}%
-%
-%
-\settowidth{\Width}{plum}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{plum}\settodepth{\Depth}{plum}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(4.5000,0.7500){\hspace*{\Width}\raisebox{\Height}{plum}}%
-%
-%
-\settowidth{\Width}{[0.5,1,0,0]}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{[0.5,1,0,0]}\settodepth{\Depth}{[0.5,1,0,0]}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(8.0000,0.7500){\hspace*{\Width}\raisebox{\Height}{[0.5,1,0,0]}}%
-%
-%
-\settowidth{\Width}{}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{}\settodepth{\Depth}{}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(10.7500,0.7500){\hspace*{\Width}\raisebox{\Height}{}}%
-%
-%
-\settowidth{\Width}{}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{}\settodepth{\Depth}{}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(13.3800,0.7500){\hspace*{\Width}\raisebox{\Height}{}}%
-%
-%
-\settowidth{\Width}{}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{}\settodepth{\Depth}{}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(1.3800,0.2500){\hspace*{\Width}\raisebox{\Height}{}}%
-%
-%
-\settowidth{\Width}{violet}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{violet}\settodepth{\Depth}{violet}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(4.5000,0.2500){\hspace*{\Width}\raisebox{\Height}{violet}}%
-%
-%
-\settowidth{\Width}{[0.79,0.88,0,0]}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{[0.79,0.88,0,0]}\settodepth{\Depth}{[0.79,0.88,0,0]}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(8.0000,0.2500){\hspace*{\Width}\raisebox{\Height}{[0.79,0.88,0,0]}}%
-%
-%
-\settowidth{\Width}{}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{}\settodepth{\Depth}{}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(10.7500,0.2500){\hspace*{\Width}\raisebox{\Height}{}}%
-%
-%
-\settowidth{\Width}{}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{}\settodepth{\Depth}{}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(13.3800,0.2500){\hspace*{\Width}\raisebox{\Height}{}}%
-%
-%
-\end{picture}}% \ No newline at end of file
diff --git a/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/colortablee35-68.tex b/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/colortablee35-68.tex
deleted file mode 100644
index 017807da..00000000
--- a/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/colortablee35-68.tex
+++ /dev/null
@@ -1,1934 +0,0 @@
-%%% colortable35-68.tex 2015-2-6 18:34
-%%% colortable35-68.sce 2015-2-6 18:29
-{\unitlength=1cm%
-\begin{picture}%
-( 15.00000, 17.50000)( -0.00000, -0.00000)%
-\special{pn 8}%
-%
-\color[cmyk]{0.75,0.9,0,0}%
-\settowidth{\Width}{ã‚ã„ã†ãˆãŠ}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{ã‚ã„ã†ãˆãŠ}\settodepth{\Depth}{ã‚ã„ã†ãˆãŠ}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(10.7500,16.7500){\hspace*{\Width}\raisebox{\Height}{ã‚ã„ã†ãˆãŠ}}%
-%
-%
-\special{pa 4626 -6693}\special{pa 4626 -6496}\special{pa 5906 -6496}\special{pa 5906 -6693}%
-\special{pa 4626 -6693}\special{sh 1}\special{ip}%
-\color[cmyk]{0.86,0.91,0,0.04}%
-\settowidth{\Width}{ã‚ã„ã†ãˆãŠ}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{ã‚ã„ã†ãˆãŠ}\settodepth{\Depth}{ã‚ã„ã†ãˆãŠ}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(10.7500,16.2500){\hspace*{\Width}\raisebox{\Height}{ã‚ã„ã†ãˆãŠ}}%
-%
-%
-\special{pa 4626 -6496}\special{pa 4626 -6299}\special{pa 5906 -6299}\special{pa 5906 -6496}%
-\special{pa 4626 -6496}\special{sh 1}\special{ip}%
-\color[cmyk]{0.57,0.55,0,0}%
-\settowidth{\Width}{ã‚ã„ã†ãˆãŠ}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{ã‚ã„ã†ãˆãŠ}\settodepth{\Depth}{ã‚ã„ã†ãˆãŠ}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(10.7500,15.7500){\hspace*{\Width}\raisebox{\Height}{ã‚ã„ã†ãˆãŠ}}%
-%
-%
-\special{pa 4626 -6299}\special{pa 4626 -6102}\special{pa 5906 -6102}\special{pa 5906 -6299}%
-\special{pa 4626 -6299}\special{sh 1}\special{ip}%
-\color[cmyk]{0.62,0.57,0.23,0}%
-\settowidth{\Width}{ã‚ã„ã†ãˆãŠ}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{ã‚ã„ã†ãˆãŠ}\settodepth{\Depth}{ã‚ã„ã†ãˆãŠ}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(10.7500,15.2500){\hspace*{\Width}\raisebox{\Height}{ã‚ã„ã†ãˆãŠ}}%
-%
-%
-\special{pa 4626 -6102}\special{pa 4626 -5906}\special{pa 5906 -5906}\special{pa 5906 -6102}%
-\special{pa 4626 -6102}\special{sh 1}\special{ip}%
-\color[cmyk]{0.65,0.13,0,0}%
-\settowidth{\Width}{ã‚ã„ã†ãˆãŠ}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{ã‚ã„ã†ãˆãŠ}\settodepth{\Depth}{ã‚ã„ã†ãˆãŠ}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(10.7500,14.7500){\hspace*{\Width}\raisebox{\Height}{ã‚ã„ã†ãˆãŠ}}%
-%
-%
-\special{pa 4626 -5906}\special{pa 4626 -5709}\special{pa 5906 -5709}\special{pa 5906 -5906}%
-\special{pa 4626 -5906}\special{sh 1}\special{ip}%
-\color[cmyk]{0.98,0.13,0,0.43}%
-\settowidth{\Width}{ã‚ã„ã†ãˆãŠ}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{ã‚ã„ã†ãˆãŠ}\settodepth{\Depth}{ã‚ã„ã†ãˆãŠ}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(10.7500,14.2500){\hspace*{\Width}\raisebox{\Height}{ã‚ã„ã†ãˆãŠ}}%
-%
-%
-\special{pa 4626 -5709}\special{pa 4626 -5512}\special{pa 5906 -5512}\special{pa 5906 -5709}%
-\special{pa 4626 -5709}\special{sh 1}\special{ip}%
-\color[cmyk]{0.94,0.54,0,0}%
-\settowidth{\Width}{ã‚ã„ã†ãˆãŠ}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{ã‚ã„ã†ãˆãŠ}\settodepth{\Depth}{ã‚ã„ã†ãˆãŠ}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(10.7500,13.7500){\hspace*{\Width}\raisebox{\Height}{ã‚ã„ã†ãˆãŠ}}%
-%
-%
-\special{pa 4626 -5512}\special{pa 4626 -5315}\special{pa 5906 -5315}\special{pa 5906 -5512}%
-\special{pa 4626 -5512}\special{sh 1}\special{ip}%
-\color[cmyk]{1,0.5,0,0}%
-\settowidth{\Width}{ã‚ã„ã†ãˆãŠ}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{ã‚ã„ã†ãˆãŠ}\settodepth{\Depth}{ã‚ã„ã†ãˆãŠ}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(10.7500,13.2500){\hspace*{\Width}\raisebox{\Height}{ã‚ã„ã†ãˆãŠ}}%
-%
-%
-\special{pa 4626 -5315}\special{pa 4626 -5118}\special{pa 5906 -5118}\special{pa 5906 -5315}%
-\special{pa 4626 -5315}\special{sh 1}\special{ip}%
-\color[cmyk]{1,1,0,0}%
-\settowidth{\Width}{ã‚ã„ã†ãˆãŠ}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{ã‚ã„ã†ãˆãŠ}\settodepth{\Depth}{ã‚ã„ã†ãˆãŠ}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(10.7500,12.7500){\hspace*{\Width}\raisebox{\Height}{ã‚ã„ã†ãˆãŠ}}%
-%
-%
-\special{pa 4626 -5118}\special{pa 4626 -4921}\special{pa 5906 -4921}\special{pa 5906 -5118}%
-\special{pa 4626 -5118}\special{sh 1}\special{ip}%
-\color[cmyk]{0.94,0.11,0,0}%
-\settowidth{\Width}{ã‚ã„ã†ãˆãŠ}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{ã‚ã„ã†ãˆãŠ}\settodepth{\Depth}{ã‚ã„ã†ãˆãŠ}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(10.7500,12.2500){\hspace*{\Width}\raisebox{\Height}{ã‚ã„ã†ãˆãŠ}}%
-%
-%
-\special{pa 4626 -4921}\special{pa 4626 -4724}\special{pa 5906 -4724}\special{pa 5906 -4921}%
-\special{pa 4626 -4921}\special{sh 1}\special{ip}%
-\color[cmyk]{1,0,0,0}%
-\settowidth{\Width}{ã‚ã„ã†ãˆãŠ}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{ã‚ã„ã†ãˆãŠ}\settodepth{\Depth}{ã‚ã„ã†ãˆãŠ}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(10.7500,11.7500){\hspace*{\Width}\raisebox{\Height}{ã‚ã„ã†ãˆãŠ}}%
-%
-%
-\special{pa 4626 -4724}\special{pa 4626 -4528}\special{pa 5906 -4528}\special{pa 5906 -4724}%
-\special{pa 4626 -4724}\special{sh 1}\special{ip}%
-\color[cmyk]{0.96,0,0,0}%
-\settowidth{\Width}{ã‚ã„ã†ãˆãŠ}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{ã‚ã„ã†ãˆãŠ}\settodepth{\Depth}{ã‚ã„ã†ãˆãŠ}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(10.7500,11.2500){\hspace*{\Width}\raisebox{\Height}{ã‚ã„ã†ãˆãŠ}}%
-%
-%
-\special{pa 4626 -4528}\special{pa 4626 -4331}\special{pa 5906 -4331}\special{pa 5906 -4528}%
-\special{pa 4626 -4528}\special{sh 1}\special{ip}%
-\color[cmyk]{0.62,0,0.12,0}%
-\settowidth{\Width}{ã‚ã„ã†ãˆãŠ}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{ã‚ã„ã†ãˆãŠ}\settodepth{\Depth}{ã‚ã„ã†ãˆãŠ}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(10.7500,10.7500){\hspace*{\Width}\raisebox{\Height}{ã‚ã„ã†ãˆãŠ}}%
-%
-%
-\special{pa 4626 -4331}\special{pa 4626 -4134}\special{pa 5906 -4134}\special{pa 5906 -4331}%
-\special{pa 4626 -4331}\special{sh 1}\special{ip}%
-\color[cmyk]{0.85,0,0.2,0}%
-\settowidth{\Width}{ã‚ã„ã†ãˆãŠ}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{ã‚ã„ã†ãˆãŠ}\settodepth{\Depth}{ã‚ã„ã†ãˆãŠ}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(10.7500,10.2500){\hspace*{\Width}\raisebox{\Height}{ã‚ã„ã†ãˆãŠ}}%
-%
-%
-\special{pa 4626 -4134}\special{pa 4626 -3937}\special{pa 5906 -3937}\special{pa 5906 -4134}%
-\special{pa 4626 -4134}\special{sh 1}\special{ip}%
-\color[cmyk]{0.86,0,0.34,0.02}%
-\settowidth{\Width}{ã‚ã„ã†ãˆãŠ}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{ã‚ã„ã†ãˆãŠ}\settodepth{\Depth}{ã‚ã„ã†ãˆãŠ}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(10.7500,9.7500){\hspace*{\Width}\raisebox{\Height}{ã‚ã„ã†ãˆãŠ}}%
-%
-%
-\special{pa 4626 -3937}\special{pa 4626 -3740}\special{pa 5906 -3740}\special{pa 5906 -3937}%
-\special{pa 4626 -3937}\special{sh 1}\special{ip}%
-\color[cmyk]{0.82,0,0.3,0}%
-\settowidth{\Width}{ã‚ã„ã†ãˆãŠ}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{ã‚ã„ã†ãˆãŠ}\settodepth{\Depth}{ã‚ã„ã†ãˆãŠ}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(10.7500,9.2500){\hspace*{\Width}\raisebox{\Height}{ã‚ã„ã†ãˆãŠ}}%
-%
-%
-\special{pa 4626 -3740}\special{pa 4626 -3543}\special{pa 5906 -3543}\special{pa 5906 -3740}%
-\special{pa 4626 -3740}\special{sh 1}\special{ip}%
-\color[cmyk]{0.85,0,0.33,0}%
-\settowidth{\Width}{ã‚ã„ã†ãˆãŠ}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{ã‚ã„ã†ãˆãŠ}\settodepth{\Depth}{ã‚ã„ã†ãˆãŠ}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(10.7500,8.7500){\hspace*{\Width}\raisebox{\Height}{ã‚ã„ã†ãˆãŠ}}%
-%
-%
-\special{pa 4626 -3543}\special{pa 4626 -3346}\special{pa 5906 -3346}\special{pa 5906 -3543}%
-\special{pa 4626 -3543}\special{sh 1}\special{ip}%
-\color[cmyk]{1,0,0.5,0}%
-\settowidth{\Width}{ã‚ã„ã†ãˆãŠ}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{ã‚ã„ã†ãˆãŠ}\settodepth{\Depth}{ã‚ã„ã†ãˆãŠ}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(10.7500,8.2500){\hspace*{\Width}\raisebox{\Height}{ã‚ã„ã†ãˆãŠ}}%
-%
-%
-\special{pa 4626 -3346}\special{pa 4626 -3150}\special{pa 5906 -3150}\special{pa 5906 -3346}%
-\special{pa 4626 -3346}\special{sh 1}\special{ip}%
-\settowidth{\Width}{ã‚ã„ã†ãˆãŠ}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{ã‚ã„ã†ãˆãŠ}\settodepth{\Depth}{ã‚ã„ã†ãˆãŠ}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(10.7500,7.7500){\hspace*{\Width}\raisebox{\Height}{ã‚ã„ã†ãˆãŠ}}%
-%
-%
-\special{pa 4626 -3150}\special{pa 4626 -2953}\special{pa 5906 -2953}\special{pa 5906 -3150}%
-\special{pa 4626 -3150}\special{sh 1}\special{ip}%
-\color[cmyk]{0.69,0,0.5,0}%
-\settowidth{\Width}{ã‚ã„ã†ãˆãŠ}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{ã‚ã„ã†ãˆãŠ}\settodepth{\Depth}{ã‚ã„ã†ãˆãŠ}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(10.7500,7.2500){\hspace*{\Width}\raisebox{\Height}{ã‚ã„ã†ãˆãŠ}}%
-%
-%
-\special{pa 4626 -2953}\special{pa 4626 -2756}\special{pa 5906 -2756}\special{pa 5906 -2953}%
-\special{pa 4626 -2953}\special{sh 1}\special{ip}%
-\color[cmyk]{1,0,1,0}%
-\settowidth{\Width}{ã‚ã„ã†ãˆãŠ}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{ã‚ã„ã†ãˆãŠ}\settodepth{\Depth}{ã‚ã„ã†ãˆãŠ}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(10.7500,6.7500){\hspace*{\Width}\raisebox{\Height}{ã‚ã„ã†ãˆãŠ}}%
-%
-%
-\special{pa 4626 -2756}\special{pa 4626 -2559}\special{pa 5906 -2559}\special{pa 5906 -2756}%
-\special{pa 4626 -2756}\special{sh 1}\special{ip}%
-\settowidth{\Width}{ã‚ã„ã†ãˆãŠ}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{ã‚ã„ã†ãˆãŠ}\settodepth{\Depth}{ã‚ã„ã†ãˆãŠ}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(10.7500,6.2500){\hspace*{\Width}\raisebox{\Height}{ã‚ã„ã†ãˆãŠ}}%
-%
-%
-\special{pa 4626 -2559}\special{pa 4626 -2362}\special{pa 5906 -2362}\special{pa 5906 -2559}%
-\special{pa 4626 -2559}\special{sh 1}\special{ip}%
-\color[cmyk]{0.92,0,0.59,0.25}%
-\settowidth{\Width}{ã‚ã„ã†ãˆãŠ}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{ã‚ã„ã†ãˆãŠ}\settodepth{\Depth}{ã‚ã„ã†ãˆãŠ}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(10.7500,5.7500){\hspace*{\Width}\raisebox{\Height}{ã‚ã„ã†ãˆãŠ}}%
-%
-%
-\special{pa 4626 -2362}\special{pa 4626 -2165}\special{pa 5906 -2165}\special{pa 5906 -2362}%
-\special{pa 4626 -2362}\special{sh 1}\special{ip}%
-\color[cmyk]{0.5,0,1,0}%
-\settowidth{\Width}{ã‚ã„ã†ãˆãŠ}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{ã‚ã„ã†ãˆãŠ}\settodepth{\Depth}{ã‚ã„ã†ãˆãŠ}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(10.7500,5.2500){\hspace*{\Width}\raisebox{\Height}{ã‚ã„ã†ãˆãŠ}}%
-%
-%
-\special{pa 4626 -2165}\special{pa 4626 -1969}\special{pa 5906 -1969}\special{pa 5906 -2165}%
-\special{pa 4626 -2165}\special{sh 1}\special{ip}%
-\color[cmyk]{0.44,0,0.74,0}%
-\settowidth{\Width}{ã‚ã„ã†ãˆãŠ}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{ã‚ã„ã†ãˆãŠ}\settodepth{\Depth}{ã‚ã„ã†ãˆãŠ}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(10.7500,4.7500){\hspace*{\Width}\raisebox{\Height}{ã‚ã„ã†ãˆãŠ}}%
-%
-%
-\special{pa 4626 -1969}\special{pa 4626 -1772}\special{pa 5906 -1772}\special{pa 5906 -1969}%
-\special{pa 4626 -1969}\special{sh 1}\special{ip}%
-\color[cmyk]{0.26,0,0.76,0}%
-\settowidth{\Width}{ã‚ã„ã†ãˆãŠ}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{ã‚ã„ã†ãˆãŠ}\settodepth{\Depth}{ã‚ã„ã†ãˆãŠ}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(10.7500,4.2500){\hspace*{\Width}\raisebox{\Height}{ã‚ã„ã†ãˆãŠ}}%
-%
-%
-\special{pa 4626 -1772}\special{pa 4626 -1575}\special{pa 5906 -1575}\special{pa 5906 -1772}%
-\special{pa 4626 -1772}\special{sh 1}\special{ip}%
-\color[cmyk]{0.64,0,0.95,0.4}%
-\settowidth{\Width}{ã‚ã„ã†ãˆãŠ}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{ã‚ã„ã†ãˆãŠ}\settodepth{\Depth}{ã‚ã„ã†ãˆãŠ}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(10.7500,3.7500){\hspace*{\Width}\raisebox{\Height}{ã‚ã„ã†ãˆãŠ}}%
-%
-%
-\special{pa 4626 -1575}\special{pa 4626 -1378}\special{pa 5906 -1378}\special{pa 5906 -1575}%
-\special{pa 4626 -1575}\special{sh 1}\special{ip}%
-\color[cmyk]{0,0.72,1,0.45}%
-\settowidth{\Width}{ã‚ã„ã†ãˆãŠ}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{ã‚ã„ã†ãˆãŠ}\settodepth{\Depth}{ã‚ã„ã†ãˆãŠ}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(10.7500,3.2500){\hspace*{\Width}\raisebox{\Height}{ã‚ã„ã†ãˆãŠ}}%
-%
-%
-\special{pa 4626 -1378}\special{pa 4626 -1181}\special{pa 5906 -1181}\special{pa 5906 -1378}%
-\special{pa 4626 -1378}\special{sh 1}\special{ip}%
-\color[cmyk]{0,0.83,1,0.7}%
-\settowidth{\Width}{ã‚ã„ã†ãˆãŠ}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{ã‚ã„ã†ãˆãŠ}\settodepth{\Depth}{ã‚ã„ã†ãˆãŠ}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(10.7500,2.7500){\hspace*{\Width}\raisebox{\Height}{ã‚ã„ã†ãˆãŠ}}%
-%
-%
-\special{pa 4626 -1181}\special{pa 4626 -984}\special{pa 5906 -984}\special{pa 5906 -1181}%
-\special{pa 4626 -1181}\special{sh 1}\special{ip}%
-\color[cmyk]{0,0.81,1,0.6}%
-\settowidth{\Width}{ã‚ã„ã†ãˆãŠ}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{ã‚ã„ã†ãˆãŠ}\settodepth{\Depth}{ã‚ã„ã†ãˆãŠ}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(10.7500,2.2500){\hspace*{\Width}\raisebox{\Height}{ã‚ã„ã†ãˆãŠ}}%
-%
-%
-\special{pa 4626 -984}\special{pa 4626 -787}\special{pa 5906 -787}\special{pa 5906 -984}%
-\special{pa 4626 -984}\special{sh 1}\special{ip}%
-\color[cmyk]{0.14,0.42,0.56,0}%
-\settowidth{\Width}{ã‚ã„ã†ãˆãŠ}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{ã‚ã„ã†ãˆãŠ}\settodepth{\Depth}{ã‚ã„ã†ãˆãŠ}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(10.7500,1.7500){\hspace*{\Width}\raisebox{\Height}{ã‚ã„ã†ãˆãŠ}}%
-%
-%
-\special{pa 4626 -787}\special{pa 4626 -591}\special{pa 5906 -591}\special{pa 5906 -787}%
-\special{pa 4626 -787}\special{sh 1}\special{ip}%
-\color[cmyk]{0,0,0,0.5}%
-\settowidth{\Width}{ã‚ã„ã†ãˆãŠ}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{ã‚ã„ã†ãˆãŠ}\settodepth{\Depth}{ã‚ã„ã†ãˆãŠ}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(10.7500,1.2500){\hspace*{\Width}\raisebox{\Height}{ã‚ã„ã†ãˆãŠ}}%
-%
-%
-\special{pa 4626 -591}\special{pa 4626 -394}\special{pa 5906 -394}\special{pa 5906 -591}%
-\special{pa 4626 -591}\special{sh 1}\special{ip}%
-\color[cmyk]{0,0,0,1}%
-\settowidth{\Width}{ã‚ã„ã†ãˆãŠ}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{ã‚ã„ã†ãˆãŠ}\settodepth{\Depth}{ã‚ã„ã†ãˆãŠ}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(10.7500,0.7500){\hspace*{\Width}\raisebox{\Height}{ã‚ã„ã†ãˆãŠ}}%
-%
-%
-\special{pa 4626 -394}\special{pa 4626 -197}\special{pa 5906 -197}\special{pa 5906 -394}%
-\special{pa 4626 -394}\special{sh 1}\special{ip}%
-\color[cmyk]{0,0,0,0}%
-\settowidth{\Width}{ã‚ã„ã†ãˆãŠ}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{ã‚ã„ã†ãˆãŠ}\settodepth{\Depth}{ã‚ã„ã†ãˆãŠ}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(10.7500,0.2500){\hspace*{\Width}\raisebox{\Height}{ã‚ã„ã†ãˆãŠ}}%
-%
-%
-\special{pa 4626 -197}\special{pa 4626 0}\special{pa 5906 0}\special{pa 5906 -197}%
-\special{pa 4626 -197}\special{sh 1}\special{ip}%
-\color[cmyk]{0,0,0,1}%
-\special{pa 0 -6890}\special{pa 1083 -6890}%
-\special{fp}%
-\special{pa 1083 -6890}\special{pa 2461 -6890}%
-\special{fp}%
-\special{pa 2461 -6890}\special{pa 3839 -6890}%
-\special{fp}%
-\special{pa 3839 -6890}\special{pa 4626 -6890}%
-\special{fp}%
-\special{pa 4626 -6890}\special{pa 5906 -6890}%
-\special{fp}%
-\special{pa 0 -6693}\special{pa 1083 -6693}%
-\special{fp}%
-\special{pa 1083 -6693}\special{pa 2461 -6693}%
-\special{fp}%
-\special{pa 2461 -6693}\special{pa 3839 -6693}%
-\special{fp}%
-\special{pa 3839 -6693}\special{pa 4626 -6693}%
-\special{fp}%
-\special{pa 4626 -6693}\special{pa 5906 -6693}%
-\special{fp}%
-\special{pa 0 -6496}\special{pa 1083 -6496}%
-\special{fp}%
-\special{pa 1083 -6496}\special{pa 2461 -6496}%
-\special{fp}%
-\special{pa 2461 -6496}\special{pa 3839 -6496}%
-\special{fp}%
-\special{pa 3839 -6496}\special{pa 4626 -6496}%
-\special{fp}%
-\special{pa 4626 -6496}\special{pa 5906 -6496}%
-\special{fp}%
-\special{pa 0 -6299}\special{pa 1083 -6299}%
-\special{fp}%
-\special{pa 1083 -6299}\special{pa 2461 -6299}%
-\special{fp}%
-\special{pa 2461 -6299}\special{pa 3839 -6299}%
-\special{fp}%
-\special{pa 3839 -6299}\special{pa 4626 -6299}%
-\special{fp}%
-\special{pa 4626 -6299}\special{pa 5906 -6299}%
-\special{fp}%
-\special{pa 0 -6102}\special{pa 1083 -6102}%
-\special{fp}%
-\special{pa 1083 -6102}\special{pa 2461 -6102}%
-\special{fp}%
-\special{pa 2461 -6102}\special{pa 3839 -6102}%
-\special{fp}%
-\special{pa 3839 -6102}\special{pa 4626 -6102}%
-\special{fp}%
-\special{pa 4626 -6102}\special{pa 5906 -6102}%
-\special{fp}%
-\special{pa 0 -5906}\special{pa 1083 -5906}%
-\special{fp}%
-\special{pa 1083 -5906}\special{pa 2461 -5906}%
-\special{fp}%
-\special{pa 2461 -5906}\special{pa 3839 -5906}%
-\special{fp}%
-\special{pa 3839 -5906}\special{pa 4626 -5906}%
-\special{fp}%
-\special{pa 4626 -5906}\special{pa 5906 -5906}%
-\special{fp}%
-\special{pa 0 -5709}\special{pa 1083 -5709}%
-\special{fp}%
-\special{pa 1083 -5709}\special{pa 2461 -5709}%
-\special{fp}%
-\special{pa 2461 -5709}\special{pa 3839 -5709}%
-\special{fp}%
-\special{pa 3839 -5709}\special{pa 4626 -5709}%
-\special{fp}%
-\special{pa 4626 -5709}\special{pa 5906 -5709}%
-\special{fp}%
-\special{pa 0 -5512}\special{pa 1083 -5512}%
-\special{fp}%
-\special{pa 1083 -5512}\special{pa 2461 -5512}%
-\special{fp}%
-\special{pa 2461 -5512}\special{pa 3839 -5512}%
-\special{fp}%
-\special{pa 3839 -5512}\special{pa 4626 -5512}%
-\special{fp}%
-\special{pa 4626 -5512}\special{pa 5906 -5512}%
-\special{fp}%
-\special{pa 0 -5315}\special{pa 1083 -5315}%
-\special{fp}%
-\special{pa 1083 -5315}\special{pa 2461 -5315}%
-\special{fp}%
-\special{pa 2461 -5315}\special{pa 3839 -5315}%
-\special{fp}%
-\special{pa 3839 -5315}\special{pa 4626 -5315}%
-\special{fp}%
-\special{pa 4626 -5315}\special{pa 5906 -5315}%
-\special{fp}%
-\special{pa 0 -5118}\special{pa 1083 -5118}%
-\special{fp}%
-\special{pa 1083 -5118}\special{pa 2461 -5118}%
-\special{fp}%
-\special{pa 2461 -5118}\special{pa 3839 -5118}%
-\special{fp}%
-\special{pa 3839 -5118}\special{pa 4626 -5118}%
-\special{fp}%
-\special{pa 4626 -5118}\special{pa 5906 -5118}%
-\special{fp}%
-\special{pa 0 -4921}\special{pa 1083 -4921}%
-\special{fp}%
-\special{pa 1083 -4921}\special{pa 2461 -4921}%
-\special{fp}%
-\special{pa 2461 -4921}\special{pa 3839 -4921}%
-\special{fp}%
-\special{pa 3839 -4921}\special{pa 4626 -4921}%
-\special{fp}%
-\special{pa 4626 -4921}\special{pa 5906 -4921}%
-\special{fp}%
-\special{pa 0 -4724}\special{pa 1083 -4724}%
-\special{fp}%
-\special{pa 1083 -4724}\special{pa 2461 -4724}%
-\special{fp}%
-\special{pa 2461 -4724}\special{pa 3839 -4724}%
-\special{fp}%
-\special{pa 3839 -4724}\special{pa 4626 -4724}%
-\special{fp}%
-\special{pa 4626 -4724}\special{pa 5906 -4724}%
-\special{fp}%
-\special{pa 0 -4528}\special{pa 1083 -4528}%
-\special{fp}%
-\special{pa 1083 -4528}\special{pa 2461 -4528}%
-\special{fp}%
-\special{pa 2461 -4528}\special{pa 3839 -4528}%
-\special{fp}%
-\special{pa 3839 -4528}\special{pa 4626 -4528}%
-\special{fp}%
-\special{pa 4626 -4528}\special{pa 5906 -4528}%
-\special{fp}%
-\special{pa 0 -4331}\special{pa 1083 -4331}%
-\special{fp}%
-\special{pa 1083 -4331}\special{pa 2461 -4331}%
-\special{fp}%
-\special{pa 2461 -4331}\special{pa 3839 -4331}%
-\special{fp}%
-\special{pa 3839 -4331}\special{pa 4626 -4331}%
-\special{fp}%
-\special{pa 4626 -4331}\special{pa 5906 -4331}%
-\special{fp}%
-\special{pa 0 -4134}\special{pa 1083 -4134}%
-\special{fp}%
-\special{pa 1083 -4134}\special{pa 2461 -4134}%
-\special{fp}%
-\special{pa 2461 -4134}\special{pa 3839 -4134}%
-\special{fp}%
-\special{pa 3839 -4134}\special{pa 4626 -4134}%
-\special{fp}%
-\special{pa 4626 -4134}\special{pa 5906 -4134}%
-\special{fp}%
-\special{pa 0 -3937}\special{pa 1083 -3937}%
-\special{fp}%
-\special{pa 1083 -3937}\special{pa 2461 -3937}%
-\special{fp}%
-\special{pa 2461 -3937}\special{pa 3839 -3937}%
-\special{fp}%
-\special{pa 3839 -3937}\special{pa 4626 -3937}%
-\special{fp}%
-\special{pa 4626 -3937}\special{pa 5906 -3937}%
-\special{fp}%
-\special{pa 0 -3740}\special{pa 1083 -3740}%
-\special{fp}%
-\special{pa 1083 -3740}\special{pa 2461 -3740}%
-\special{fp}%
-\special{pa 2461 -3740}\special{pa 3839 -3740}%
-\special{fp}%
-\special{pa 3839 -3740}\special{pa 4626 -3740}%
-\special{fp}%
-\special{pa 4626 -3740}\special{pa 5906 -3740}%
-\special{fp}%
-\special{pa 0 -3543}\special{pa 1083 -3543}%
-\special{fp}%
-\special{pa 1083 -3543}\special{pa 2461 -3543}%
-\special{fp}%
-\special{pa 2461 -3543}\special{pa 3839 -3543}%
-\special{fp}%
-\special{pa 3839 -3543}\special{pa 4626 -3543}%
-\special{fp}%
-\special{pa 4626 -3543}\special{pa 5906 -3543}%
-\special{fp}%
-\special{pa 0 -3346}\special{pa 1083 -3346}%
-\special{fp}%
-\special{pa 1083 -3346}\special{pa 2461 -3346}%
-\special{fp}%
-\special{pa 2461 -3346}\special{pa 3839 -3346}%
-\special{fp}%
-\special{pa 3839 -3346}\special{pa 4626 -3346}%
-\special{fp}%
-\special{pa 4626 -3346}\special{pa 5906 -3346}%
-\special{fp}%
-\special{pa 0 -3150}\special{pa 1083 -3150}%
-\special{fp}%
-\special{pa 1083 -3150}\special{pa 2461 -3150}%
-\special{fp}%
-\special{pa 2461 -3150}\special{pa 3839 -3150}%
-\special{fp}%
-\special{pa 3839 -3150}\special{pa 4626 -3150}%
-\special{fp}%
-\special{pa 4626 -3150}\special{pa 5906 -3150}%
-\special{fp}%
-\special{pa 0 -2953}\special{pa 1083 -2953}%
-\special{fp}%
-\special{pa 1083 -2953}\special{pa 2461 -2953}%
-\special{fp}%
-\special{pa 2461 -2953}\special{pa 3839 -2953}%
-\special{fp}%
-\special{pa 3839 -2953}\special{pa 4626 -2953}%
-\special{fp}%
-\special{pa 4626 -2953}\special{pa 5906 -2953}%
-\special{fp}%
-\special{pa 0 -2756}\special{pa 1083 -2756}%
-\special{fp}%
-\special{pa 1083 -2756}\special{pa 2461 -2756}%
-\special{fp}%
-\special{pa 2461 -2756}\special{pa 3839 -2756}%
-\special{fp}%
-\special{pa 3839 -2756}\special{pa 4626 -2756}%
-\special{fp}%
-\special{pa 4626 -2756}\special{pa 5906 -2756}%
-\special{fp}%
-\special{pa 0 -2559}\special{pa 1083 -2559}%
-\special{fp}%
-\special{pa 1083 -2559}\special{pa 2461 -2559}%
-\special{fp}%
-\special{pa 2461 -2559}\special{pa 3839 -2559}%
-\special{fp}%
-\special{pa 3839 -2559}\special{pa 4626 -2559}%
-\special{fp}%
-\special{pa 4626 -2559}\special{pa 5906 -2559}%
-\special{fp}%
-\special{pa 0 -2362}\special{pa 1083 -2362}%
-\special{fp}%
-\special{pa 1083 -2362}\special{pa 2461 -2362}%
-\special{fp}%
-\special{pa 2461 -2362}\special{pa 3839 -2362}%
-\special{fp}%
-\special{pa 3839 -2362}\special{pa 4626 -2362}%
-\special{fp}%
-\special{pa 4626 -2362}\special{pa 5906 -2362}%
-\special{fp}%
-\special{pa 0 -2165}\special{pa 1083 -2165}%
-\special{fp}%
-\special{pa 1083 -2165}\special{pa 2461 -2165}%
-\special{fp}%
-\special{pa 2461 -2165}\special{pa 3839 -2165}%
-\special{fp}%
-\special{pa 3839 -2165}\special{pa 4626 -2165}%
-\special{fp}%
-\special{pa 4626 -2165}\special{pa 5906 -2165}%
-\special{fp}%
-\special{pa 0 -1969}\special{pa 1083 -1969}%
-\special{fp}%
-\special{pa 1083 -1969}\special{pa 2461 -1969}%
-\special{fp}%
-\special{pa 2461 -1969}\special{pa 3839 -1969}%
-\special{fp}%
-\special{pa 3839 -1969}\special{pa 4626 -1969}%
-\special{fp}%
-\special{pa 4626 -1969}\special{pa 5906 -1969}%
-\special{fp}%
-\special{pa 0 -1772}\special{pa 1083 -1772}%
-\special{fp}%
-\special{pa 1083 -1772}\special{pa 2461 -1772}%
-\special{fp}%
-\special{pa 2461 -1772}\special{pa 3839 -1772}%
-\special{fp}%
-\special{pa 3839 -1772}\special{pa 4626 -1772}%
-\special{fp}%
-\special{pa 4626 -1772}\special{pa 5906 -1772}%
-\special{fp}%
-\special{pa 0 -1575}\special{pa 1083 -1575}%
-\special{fp}%
-\special{pa 1083 -1575}\special{pa 2461 -1575}%
-\special{fp}%
-\special{pa 2461 -1575}\special{pa 3839 -1575}%
-\special{fp}%
-\special{pa 3839 -1575}\special{pa 4626 -1575}%
-\special{fp}%
-\special{pa 4626 -1575}\special{pa 5906 -1575}%
-\special{fp}%
-\special{pa 0 -1378}\special{pa 1083 -1378}%
-\special{fp}%
-\special{pa 1083 -1378}\special{pa 2461 -1378}%
-\special{fp}%
-\special{pa 2461 -1378}\special{pa 3839 -1378}%
-\special{fp}%
-\special{pa 3839 -1378}\special{pa 4626 -1378}%
-\special{fp}%
-\special{pa 4626 -1378}\special{pa 5906 -1378}%
-\special{fp}%
-\special{pa 0 -1181}\special{pa 1083 -1181}%
-\special{fp}%
-\special{pa 1083 -1181}\special{pa 2461 -1181}%
-\special{fp}%
-\special{pa 2461 -1181}\special{pa 3839 -1181}%
-\special{fp}%
-\special{pa 3839 -1181}\special{pa 4626 -1181}%
-\special{fp}%
-\special{pa 4626 -1181}\special{pa 5906 -1181}%
-\special{fp}%
-\special{pa 0 -984}\special{pa 1083 -984}%
-\special{fp}%
-\special{pa 1083 -984}\special{pa 2461 -984}%
-\special{fp}%
-\special{pa 2461 -984}\special{pa 3839 -984}%
-\special{fp}%
-\special{pa 3839 -984}\special{pa 4626 -984}%
-\special{fp}%
-\special{pa 4626 -984}\special{pa 5906 -984}%
-\special{fp}%
-\special{pa 0 -787}\special{pa 1083 -787}%
-\special{fp}%
-\special{pa 1083 -787}\special{pa 2461 -787}%
-\special{fp}%
-\special{pa 2461 -787}\special{pa 3839 -787}%
-\special{fp}%
-\special{pa 3839 -787}\special{pa 4626 -787}%
-\special{fp}%
-\special{pa 4626 -787}\special{pa 5906 -787}%
-\special{fp}%
-\special{pa 0 -591}\special{pa 1083 -591}%
-\special{fp}%
-\special{pa 1083 -591}\special{pa 2461 -591}%
-\special{fp}%
-\special{pa 2461 -591}\special{pa 3839 -591}%
-\special{fp}%
-\special{pa 3839 -591}\special{pa 4626 -591}%
-\special{fp}%
-\special{pa 4626 -591}\special{pa 5906 -591}%
-\special{fp}%
-\special{pa 0 -394}\special{pa 1083 -394}%
-\special{fp}%
-\special{pa 1083 -394}\special{pa 2461 -394}%
-\special{fp}%
-\special{pa 2461 -394}\special{pa 3839 -394}%
-\special{fp}%
-\special{pa 3839 -394}\special{pa 4626 -394}%
-\special{fp}%
-\special{pa 4626 -394}\special{pa 5906 -394}%
-\special{fp}%
-\special{pa 0 -197}\special{pa 1083 -197}%
-\special{fp}%
-\special{pa 1083 -197}\special{pa 2461 -197}%
-\special{fp}%
-\special{pa 2461 -197}\special{pa 3839 -197}%
-\special{fp}%
-\special{pa 3839 -197}\special{pa 4626 -197}%
-\special{fp}%
-\special{pa 4626 -197}\special{pa 5906 -197}%
-\special{fp}%
-\special{pa 0 0}\special{pa 1083 0}%
-\special{fp}%
-\special{pa 1083 0}\special{pa 2461 0}%
-\special{fp}%
-\special{pa 2461 0}\special{pa 3839 0}%
-\special{fp}%
-\special{pa 3839 0}\special{pa 4626 0}%
-\special{fp}%
-\special{pa 4626 0}\special{pa 5906 0}%
-\special{fp}%
-\special{pa 0 -6890}\special{pa 0 -6693}%
-\special{fp}%
-\special{pa 0 -6693}\special{pa 0 -6496}%
-\special{fp}%
-\special{pa 0 -6496}\special{pa 0 -6299}%
-\special{fp}%
-\special{pa 0 -6299}\special{pa 0 -6102}%
-\special{fp}%
-\special{pa 0 -6102}\special{pa 0 -5906}%
-\special{fp}%
-\special{pa 0 -5906}\special{pa 0 -5709}%
-\special{fp}%
-\special{pa 0 -5709}\special{pa 0 -5512}%
-\special{fp}%
-\special{pa 0 -5512}\special{pa 0 -5315}%
-\special{fp}%
-\special{pa 0 -5315}\special{pa 0 -5118}%
-\special{fp}%
-\special{pa 0 -5118}\special{pa 0 -4921}%
-\special{fp}%
-\special{pa 0 -4921}\special{pa 0 -4724}%
-\special{fp}%
-\special{pa 0 -4724}\special{pa 0 -4528}%
-\special{fp}%
-\special{pa 0 -4528}\special{pa 0 -4331}%
-\special{fp}%
-\special{pa 0 -4331}\special{pa 0 -4134}%
-\special{fp}%
-\special{pa 0 -4134}\special{pa 0 -3937}%
-\special{fp}%
-\special{pa 0 -3937}\special{pa 0 -3740}%
-\special{fp}%
-\special{pa 0 -3740}\special{pa 0 -3543}%
-\special{fp}%
-\special{pa 0 -3543}\special{pa 0 -3346}%
-\special{fp}%
-\special{pa 0 -3346}\special{pa 0 -3150}%
-\special{fp}%
-\special{pa 0 -3150}\special{pa 0 -2953}%
-\special{fp}%
-\special{pa 0 -2953}\special{pa 0 -2756}%
-\special{fp}%
-\special{pa 0 -2756}\special{pa 0 -2559}%
-\special{fp}%
-\special{pa 0 -2559}\special{pa 0 -2362}%
-\special{fp}%
-\special{pa 0 -2362}\special{pa 0 -2165}%
-\special{fp}%
-\special{pa 0 -2165}\special{pa 0 -1969}%
-\special{fp}%
-\special{pa 0 -1969}\special{pa 0 -1772}%
-\special{fp}%
-\special{pa 0 -1772}\special{pa 0 -1575}%
-\special{fp}%
-\special{pa 0 -1575}\special{pa 0 -1378}%
-\special{fp}%
-\special{pa 0 -1378}\special{pa 0 -1181}%
-\special{fp}%
-\special{pa 0 -1181}\special{pa 0 -984}%
-\special{fp}%
-\special{pa 0 -984}\special{pa 0 -787}%
-\special{fp}%
-\special{pa 0 -787}\special{pa 0 -591}%
-\special{fp}%
-\special{pa 0 -591}\special{pa 0 -394}%
-\special{fp}%
-\special{pa 0 -394}\special{pa 0 -197}%
-\special{fp}%
-\special{pa 0 -197}\special{pa 0 0}%
-\special{fp}%
-\special{pa 1083 -6890}\special{pa 1083 -6693}%
-\special{fp}%
-\special{pa 1083 -6693}\special{pa 1083 -6496}%
-\special{fp}%
-\special{pa 1083 -6496}\special{pa 1083 -6299}%
-\special{fp}%
-\special{pa 1083 -6299}\special{pa 1083 -6102}%
-\special{fp}%
-\special{pa 1083 -6102}\special{pa 1083 -5906}%
-\special{fp}%
-\special{pa 1083 -5906}\special{pa 1083 -5709}%
-\special{fp}%
-\special{pa 1083 -5709}\special{pa 1083 -5512}%
-\special{fp}%
-\special{pa 1083 -5512}\special{pa 1083 -5315}%
-\special{fp}%
-\special{pa 1083 -5315}\special{pa 1083 -5118}%
-\special{fp}%
-\special{pa 1083 -5118}\special{pa 1083 -4921}%
-\special{fp}%
-\special{pa 1083 -4921}\special{pa 1083 -4724}%
-\special{fp}%
-\special{pa 1083 -4724}\special{pa 1083 -4528}%
-\special{fp}%
-\special{pa 1083 -4528}\special{pa 1083 -4331}%
-\special{fp}%
-\special{pa 1083 -4331}\special{pa 1083 -4134}%
-\special{fp}%
-\special{pa 1083 -4134}\special{pa 1083 -3937}%
-\special{fp}%
-\special{pa 1083 -3937}\special{pa 1083 -3740}%
-\special{fp}%
-\special{pa 1083 -3740}\special{pa 1083 -3543}%
-\special{fp}%
-\special{pa 1083 -3543}\special{pa 1083 -3346}%
-\special{fp}%
-\special{pa 1083 -3346}\special{pa 1083 -3150}%
-\special{fp}%
-\special{pa 1083 -3150}\special{pa 1083 -2953}%
-\special{fp}%
-\special{pa 1083 -2953}\special{pa 1083 -2756}%
-\special{fp}%
-\special{pa 1083 -2756}\special{pa 1083 -2559}%
-\special{fp}%
-\special{pa 1083 -2559}\special{pa 1083 -2362}%
-\special{fp}%
-\special{pa 1083 -2362}\special{pa 1083 -2165}%
-\special{fp}%
-\special{pa 1083 -2165}\special{pa 1083 -1969}%
-\special{fp}%
-\special{pa 1083 -1969}\special{pa 1083 -1772}%
-\special{fp}%
-\special{pa 1083 -1772}\special{pa 1083 -1575}%
-\special{fp}%
-\special{pa 1083 -1575}\special{pa 1083 -1378}%
-\special{fp}%
-\special{pa 1083 -1378}\special{pa 1083 -1181}%
-\special{fp}%
-\special{pa 1083 -1181}\special{pa 1083 -984}%
-\special{fp}%
-\special{pa 1083 -984}\special{pa 1083 -787}%
-\special{fp}%
-\special{pa 1083 -787}\special{pa 1083 -591}%
-\special{fp}%
-\special{pa 1083 -591}\special{pa 1083 -394}%
-\special{fp}%
-\special{pa 1083 -394}\special{pa 1083 -197}%
-\special{fp}%
-\special{pa 1083 -197}\special{pa 1083 0}%
-\special{fp}%
-\special{pa 2461 -6890}\special{pa 2461 -6693}%
-\special{fp}%
-\special{pa 2461 -6693}\special{pa 2461 -6496}%
-\special{fp}%
-\special{pa 2461 -6496}\special{pa 2461 -6299}%
-\special{fp}%
-\special{pa 2461 -6299}\special{pa 2461 -6102}%
-\special{fp}%
-\special{pa 2461 -6102}\special{pa 2461 -5906}%
-\special{fp}%
-\special{pa 2461 -5906}\special{pa 2461 -5709}%
-\special{fp}%
-\special{pa 2461 -5709}\special{pa 2461 -5512}%
-\special{fp}%
-\special{pa 2461 -5512}\special{pa 2461 -5315}%
-\special{fp}%
-\special{pa 2461 -5315}\special{pa 2461 -5118}%
-\special{fp}%
-\special{pa 2461 -5118}\special{pa 2461 -4921}%
-\special{fp}%
-\special{pa 2461 -4921}\special{pa 2461 -4724}%
-\special{fp}%
-\special{pa 2461 -4724}\special{pa 2461 -4528}%
-\special{fp}%
-\special{pa 2461 -4528}\special{pa 2461 -4331}%
-\special{fp}%
-\special{pa 2461 -4331}\special{pa 2461 -4134}%
-\special{fp}%
-\special{pa 2461 -4134}\special{pa 2461 -3937}%
-\special{fp}%
-\special{pa 2461 -3937}\special{pa 2461 -3740}%
-\special{fp}%
-\special{pa 2461 -3740}\special{pa 2461 -3543}%
-\special{fp}%
-\special{pa 2461 -3543}\special{pa 2461 -3346}%
-\special{fp}%
-\special{pa 2461 -3346}\special{pa 2461 -3150}%
-\special{fp}%
-\special{pa 2461 -3150}\special{pa 2461 -2953}%
-\special{fp}%
-\special{pa 2461 -2953}\special{pa 2461 -2756}%
-\special{fp}%
-\special{pa 2461 -2756}\special{pa 2461 -2559}%
-\special{fp}%
-\special{pa 2461 -2559}\special{pa 2461 -2362}%
-\special{fp}%
-\special{pa 2461 -2362}\special{pa 2461 -2165}%
-\special{fp}%
-\special{pa 2461 -2165}\special{pa 2461 -1969}%
-\special{fp}%
-\special{pa 2461 -1969}\special{pa 2461 -1772}%
-\special{fp}%
-\special{pa 2461 -1772}\special{pa 2461 -1575}%
-\special{fp}%
-\special{pa 2461 -1575}\special{pa 2461 -1378}%
-\special{fp}%
-\special{pa 2461 -1378}\special{pa 2461 -1181}%
-\special{fp}%
-\special{pa 2461 -1181}\special{pa 2461 -984}%
-\special{fp}%
-\special{pa 2461 -984}\special{pa 2461 -787}%
-\special{fp}%
-\special{pa 2461 -787}\special{pa 2461 -591}%
-\special{fp}%
-\special{pa 2461 -591}\special{pa 2461 -394}%
-\special{fp}%
-\special{pa 2461 -394}\special{pa 2461 -197}%
-\special{fp}%
-\special{pa 2461 -197}\special{pa 2461 0}%
-\special{fp}%
-\special{pa 3839 -6890}\special{pa 3839 -6693}%
-\special{fp}%
-\special{pa 3839 -6693}\special{pa 3839 -6496}%
-\special{fp}%
-\special{pa 3839 -6496}\special{pa 3839 -6299}%
-\special{fp}%
-\special{pa 3839 -6299}\special{pa 3839 -6102}%
-\special{fp}%
-\special{pa 3839 -6102}\special{pa 3839 -5906}%
-\special{fp}%
-\special{pa 3839 -5906}\special{pa 3839 -5709}%
-\special{fp}%
-\special{pa 3839 -5709}\special{pa 3839 -5512}%
-\special{fp}%
-\special{pa 3839 -5512}\special{pa 3839 -5315}%
-\special{fp}%
-\special{pa 3839 -5315}\special{pa 3839 -5118}%
-\special{fp}%
-\special{pa 3839 -5118}\special{pa 3839 -4921}%
-\special{fp}%
-\special{pa 3839 -4921}\special{pa 3839 -4724}%
-\special{fp}%
-\special{pa 3839 -4724}\special{pa 3839 -4528}%
-\special{fp}%
-\special{pa 3839 -4528}\special{pa 3839 -4331}%
-\special{fp}%
-\special{pa 3839 -4331}\special{pa 3839 -4134}%
-\special{fp}%
-\special{pa 3839 -4134}\special{pa 3839 -3937}%
-\special{fp}%
-\special{pa 3839 -3937}\special{pa 3839 -3740}%
-\special{fp}%
-\special{pa 3839 -3740}\special{pa 3839 -3543}%
-\special{fp}%
-\special{pa 3839 -3543}\special{pa 3839 -3346}%
-\special{fp}%
-\special{pa 3839 -3346}\special{pa 3839 -3150}%
-\special{fp}%
-\special{pa 3839 -3150}\special{pa 3839 -2953}%
-\special{fp}%
-\special{pa 3839 -2953}\special{pa 3839 -2756}%
-\special{fp}%
-\special{pa 3839 -2756}\special{pa 3839 -2559}%
-\special{fp}%
-\special{pa 3839 -2559}\special{pa 3839 -2362}%
-\special{fp}%
-\special{pa 3839 -2362}\special{pa 3839 -2165}%
-\special{fp}%
-\special{pa 3839 -2165}\special{pa 3839 -1969}%
-\special{fp}%
-\special{pa 3839 -1969}\special{pa 3839 -1772}%
-\special{fp}%
-\special{pa 3839 -1772}\special{pa 3839 -1575}%
-\special{fp}%
-\special{pa 3839 -1575}\special{pa 3839 -1378}%
-\special{fp}%
-\special{pa 3839 -1378}\special{pa 3839 -1181}%
-\special{fp}%
-\special{pa 3839 -1181}\special{pa 3839 -984}%
-\special{fp}%
-\special{pa 3839 -984}\special{pa 3839 -787}%
-\special{fp}%
-\special{pa 3839 -787}\special{pa 3839 -591}%
-\special{fp}%
-\special{pa 3839 -591}\special{pa 3839 -394}%
-\special{fp}%
-\special{pa 3839 -394}\special{pa 3839 -197}%
-\special{fp}%
-\special{pa 3839 -197}\special{pa 3839 0}%
-\special{fp}%
-\special{pa 4626 -6890}\special{pa 4626 -6693}%
-\special{fp}%
-\special{pa 4626 -6693}\special{pa 4626 -6496}%
-\special{fp}%
-\special{pa 4626 -6496}\special{pa 4626 -6299}%
-\special{fp}%
-\special{pa 4626 -6299}\special{pa 4626 -6102}%
-\special{fp}%
-\special{pa 4626 -6102}\special{pa 4626 -5906}%
-\special{fp}%
-\special{pa 4626 -5906}\special{pa 4626 -5709}%
-\special{fp}%
-\special{pa 4626 -5709}\special{pa 4626 -5512}%
-\special{fp}%
-\special{pa 4626 -5512}\special{pa 4626 -5315}%
-\special{fp}%
-\special{pa 4626 -5315}\special{pa 4626 -5118}%
-\special{fp}%
-\special{pa 4626 -5118}\special{pa 4626 -4921}%
-\special{fp}%
-\special{pa 4626 -4921}\special{pa 4626 -4724}%
-\special{fp}%
-\special{pa 4626 -4724}\special{pa 4626 -4528}%
-\special{fp}%
-\special{pa 4626 -4528}\special{pa 4626 -4331}%
-\special{fp}%
-\special{pa 4626 -4331}\special{pa 4626 -4134}%
-\special{fp}%
-\special{pa 4626 -4134}\special{pa 4626 -3937}%
-\special{fp}%
-\special{pa 4626 -3937}\special{pa 4626 -3740}%
-\special{fp}%
-\special{pa 4626 -3740}\special{pa 4626 -3543}%
-\special{fp}%
-\special{pa 4626 -3543}\special{pa 4626 -3346}%
-\special{fp}%
-\special{pa 4626 -3346}\special{pa 4626 -3150}%
-\special{fp}%
-\special{pa 4626 -3150}\special{pa 4626 -2953}%
-\special{fp}%
-\special{pa 4626 -2953}\special{pa 4626 -2756}%
-\special{fp}%
-\special{pa 4626 -2756}\special{pa 4626 -2559}%
-\special{fp}%
-\special{pa 4626 -2559}\special{pa 4626 -2362}%
-\special{fp}%
-\special{pa 4626 -2362}\special{pa 4626 -2165}%
-\special{fp}%
-\special{pa 4626 -2165}\special{pa 4626 -1969}%
-\special{fp}%
-\special{pa 4626 -1969}\special{pa 4626 -1772}%
-\special{fp}%
-\special{pa 4626 -1772}\special{pa 4626 -1575}%
-\special{fp}%
-\special{pa 4626 -1575}\special{pa 4626 -1378}%
-\special{fp}%
-\special{pa 4626 -1378}\special{pa 4626 -1181}%
-\special{fp}%
-\special{pa 4626 -1181}\special{pa 4626 -984}%
-\special{fp}%
-\special{pa 4626 -984}\special{pa 4626 -787}%
-\special{fp}%
-\special{pa 4626 -787}\special{pa 4626 -591}%
-\special{fp}%
-\special{pa 4626 -591}\special{pa 4626 -394}%
-\special{fp}%
-\special{pa 4626 -394}\special{pa 4626 -197}%
-\special{fp}%
-\special{pa 4626 -197}\special{pa 4626 0}%
-\special{fp}%
-\special{pa 5906 -6890}\special{pa 5906 -6693}%
-\special{fp}%
-\special{pa 5906 -6693}\special{pa 5906 -6496}%
-\special{fp}%
-\special{pa 5906 -6496}\special{pa 5906 -6299}%
-\special{fp}%
-\special{pa 5906 -6299}\special{pa 5906 -6102}%
-\special{fp}%
-\special{pa 5906 -6102}\special{pa 5906 -5906}%
-\special{fp}%
-\special{pa 5906 -5906}\special{pa 5906 -5709}%
-\special{fp}%
-\special{pa 5906 -5709}\special{pa 5906 -5512}%
-\special{fp}%
-\special{pa 5906 -5512}\special{pa 5906 -5315}%
-\special{fp}%
-\special{pa 5906 -5315}\special{pa 5906 -5118}%
-\special{fp}%
-\special{pa 5906 -5118}\special{pa 5906 -4921}%
-\special{fp}%
-\special{pa 5906 -4921}\special{pa 5906 -4724}%
-\special{fp}%
-\special{pa 5906 -4724}\special{pa 5906 -4528}%
-\special{fp}%
-\special{pa 5906 -4528}\special{pa 5906 -4331}%
-\special{fp}%
-\special{pa 5906 -4331}\special{pa 5906 -4134}%
-\special{fp}%
-\special{pa 5906 -4134}\special{pa 5906 -3937}%
-\special{fp}%
-\special{pa 5906 -3937}\special{pa 5906 -3740}%
-\special{fp}%
-\special{pa 5906 -3740}\special{pa 5906 -3543}%
-\special{fp}%
-\special{pa 5906 -3543}\special{pa 5906 -3346}%
-\special{fp}%
-\special{pa 5906 -3346}\special{pa 5906 -3150}%
-\special{fp}%
-\special{pa 5906 -3150}\special{pa 5906 -2953}%
-\special{fp}%
-\special{pa 5906 -2953}\special{pa 5906 -2756}%
-\special{fp}%
-\special{pa 5906 -2756}\special{pa 5906 -2559}%
-\special{fp}%
-\special{pa 5906 -2559}\special{pa 5906 -2362}%
-\special{fp}%
-\special{pa 5906 -2362}\special{pa 5906 -2165}%
-\special{fp}%
-\special{pa 5906 -2165}\special{pa 5906 -1969}%
-\special{fp}%
-\special{pa 5906 -1969}\special{pa 5906 -1772}%
-\special{fp}%
-\special{pa 5906 -1772}\special{pa 5906 -1575}%
-\special{fp}%
-\special{pa 5906 -1575}\special{pa 5906 -1378}%
-\special{fp}%
-\special{pa 5906 -1378}\special{pa 5906 -1181}%
-\special{fp}%
-\special{pa 5906 -1181}\special{pa 5906 -984}%
-\special{fp}%
-\special{pa 5906 -984}\special{pa 5906 -787}%
-\special{fp}%
-\special{pa 5906 -787}\special{pa 5906 -591}%
-\special{fp}%
-\special{pa 5906 -591}\special{pa 5906 -394}%
-\special{fp}%
-\special{pa 5906 -394}\special{pa 5906 -197}%
-\special{fp}%
-\special{pa 5906 -197}\special{pa 5906 0}%
-\special{fp}%
-\settowidth{\Width}{Japanese}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{Japanese}\settodepth{\Depth}{Japanese}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(1.3800,17.2500){\hspace*{\Width}\raisebox{\Height}{Japanese}}%
-%
-%
-\settowidth{\Width}{\TeX command}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{\TeX command}\settodepth{\Depth}{\TeX command}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(4.5000,17.2500){\hspace*{\Width}\raisebox{\Height}{\TeX command}}%
-%
-%
-\settowidth{\Width}{[C,M,Y,K]}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{[C,M,Y,K]}\settodepth{\Depth}{[C,M,Y,K]}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(8.0000,17.2500){\hspace*{\Width}\raisebox{\Height}{[C,M,Y,K]}}%
-%
-%
-\settowidth{\Width}{example}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{example}\settodepth{\Depth}{example}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(10.7500,17.2500){\hspace*{\Width}\raisebox{\Height}{example}}%
-%
-%
-\settowidth{\Width}{thickness}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{thickness)}\settodepth{\Depth}{thickness}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(13.3800,17.2500){\hspace*{\Width}\raisebox{\Height}{thickness}}%
-%
-%
-\settowidth{\Width}{}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{}\settodepth{\Depth}{}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(1.3800,16.7500){\hspace*{\Width}\raisebox{\Height}{}}%
-%
-%
-\settowidth{\Width}{royalpurple}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{royalpurple}\settodepth{\Depth}{royalpurple}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(4.5000,16.7500){\hspace*{\Width}\raisebox{\Height}{royalpurple}}%
-%
-%
-\settowidth{\Width}{[0.75,0.9,0,0]}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{[0.75,0.9,0,0]}\settodepth{\Depth}{[0.75,0.9,0,0]}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(8.0000,16.7500){\hspace*{\Width}\raisebox{\Height}{[0.75,0.9,0,0]}}%
-%
-%
-\settowidth{\Width}{}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{}\settodepth{\Depth}{}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(10.7500,16.7500){\hspace*{\Width}\raisebox{\Height}{}}%
-%
-%
-\settowidth{\Width}{}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{}\settodepth{\Depth}{}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(13.3800,16.7500){\hspace*{\Width}\raisebox{\Height}{}}%
-%
-%
-\settowidth{\Width}{}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{}\settodepth{\Depth}{}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(1.3800,16.2500){\hspace*{\Width}\raisebox{\Height}{}}%
-%
-%
-\settowidth{\Width}{blueviolet}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{blueviolet}\settodepth{\Depth}{blueviolet}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(4.5000,16.2500){\hspace*{\Width}\raisebox{\Height}{blueviolet}}%
-%
-%
-\settowidth{\Width}{[0.86,0.91,0,0.04]}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{[0.86,0.91,0,0.04]}\settodepth{\Depth}{[0.86,0.91,0,0.04]}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(8.0000,16.2500){\hspace*{\Width}\raisebox{\Height}{[0.86,0.91,0,0.04]}}%
-%
-%
-\settowidth{\Width}{}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{}\settodepth{\Depth}{}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(10.7500,16.2500){\hspace*{\Width}\raisebox{\Height}{}}%
-%
-%
-\settowidth{\Width}{}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{}\settodepth{\Depth}{}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(13.3800,16.2500){\hspace*{\Width}\raisebox{\Height}{}}%
-%
-%
-\settowidth{\Width}{}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{}\settodepth{\Depth}{}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(1.3800,15.7500){\hspace*{\Width}\raisebox{\Height}{}}%
-%
-%
-\settowidth{\Width}{periwinkle}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{periwinkle}\settodepth{\Depth}{periwinkle}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(4.5000,15.7500){\hspace*{\Width}\raisebox{\Height}{periwinkle}}%
-%
-%
-\settowidth{\Width}{[0.57,0.55,0,0]}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{[0.57,0.55,0,0]}\settodepth{\Depth}{[0.57,0.55,0,0]}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(8.0000,15.7500){\hspace*{\Width}\raisebox{\Height}{[0.57,0.55,0,0]}}%
-%
-%
-\settowidth{\Width}{}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{}\settodepth{\Depth}{}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(10.7500,15.7500){\hspace*{\Width}\raisebox{\Height}{}}%
-%
-%
-\settowidth{\Width}{}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{}\settodepth{\Depth}{}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(13.3800,15.7500){\hspace*{\Width}\raisebox{\Height}{}}%
-%
-%
-\settowidth{\Width}{}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{}\settodepth{\Depth}{}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(1.3800,15.2500){\hspace*{\Width}\raisebox{\Height}{}}%
-%
-%
-\settowidth{\Width}{cadetblue}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{cadetblue}\settodepth{\Depth}{cadetblue}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(4.5000,15.2500){\hspace*{\Width}\raisebox{\Height}{cadetblue}}%
-%
-%
-\settowidth{\Width}{[0.62,0.57,0.23,0]}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{[0.62,0.57,0.23,0]}\settodepth{\Depth}{[0.62,0.57,0.23,0]}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(8.0000,15.2500){\hspace*{\Width}\raisebox{\Height}{[0.62,0.57,0.23,0]}}%
-%
-%
-\settowidth{\Width}{}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{}\settodepth{\Depth}{}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(10.7500,15.2500){\hspace*{\Width}\raisebox{\Height}{}}%
-%
-%
-\settowidth{\Width}{}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{}\settodepth{\Depth}{}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(13.3800,15.2500){\hspace*{\Width}\raisebox{\Height}{}}%
-%
-%
-\settowidth{\Width}{}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{}\settodepth{\Depth}{}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(1.3800,14.7500){\hspace*{\Width}\raisebox{\Height}{}}%
-%
-%
-\settowidth{\Width}{cornflowerblue}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{cornflowerblue}\settodepth{\Depth}{cornflowerblue}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(4.5000,14.7500){\hspace*{\Width}\raisebox{\Height}{cornflowerblue}}%
-%
-%
-\settowidth{\Width}{[0.65,0.13,0,0]}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{[0.65,0.13,0,0]}\settodepth{\Depth}{[0.65,0.13,0,0]}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(8.0000,14.7500){\hspace*{\Width}\raisebox{\Height}{[0.65,0.13,0,0]}}%
-%
-%
-\settowidth{\Width}{}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{}\settodepth{\Depth}{}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(10.7500,14.7500){\hspace*{\Width}\raisebox{\Height}{}}%
-%
-%
-\settowidth{\Width}{}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{}\settodepth{\Depth}{}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(13.3800,14.7500){\hspace*{\Width}\raisebox{\Height}{}}%
-%
-%
-\settowidth{\Width}{}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{}\settodepth{\Depth}{}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(1.3800,14.2500){\hspace*{\Width}\raisebox{\Height}{}}%
-%
-%
-\settowidth{\Width}{midnightblue}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{midnightblue}\settodepth{\Depth}{midnightblue}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(4.5000,14.2500){\hspace*{\Width}\raisebox{\Height}{midnightblue}}%
-%
-%
-\settowidth{\Width}{[0.98,0.13,0,0.43]}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{[0.98,0.13,0,0.43]}\settodepth{\Depth}{[0.98,0.13,0,0.43]}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(8.0000,14.2500){\hspace*{\Width}\raisebox{\Height}{[0.98,0.13,0,0.43]}}%
-%
-%
-\settowidth{\Width}{}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{}\settodepth{\Depth}{}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(10.7500,14.2500){\hspace*{\Width}\raisebox{\Height}{}}%
-%
-%
-\settowidth{\Width}{}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{}\settodepth{\Depth}{}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(13.3800,14.2500){\hspace*{\Width}\raisebox{\Height}{}}%
-%
-%
-\settowidth{\Width}{}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{}\settodepth{\Depth}{}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(1.3800,13.7500){\hspace*{\Width}\raisebox{\Height}{}}%
-%
-%
-\settowidth{\Width}{navyblue}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{navyblue}\settodepth{\Depth}{navyblue}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(4.5000,13.7500){\hspace*{\Width}\raisebox{\Height}{navyblue}}%
-%
-%
-\settowidth{\Width}{[0.94,0.54,0,0]}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{[0.94,0.54,0,0]}\settodepth{\Depth}{[0.94,0.54,0,0]}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(8.0000,13.7500){\hspace*{\Width}\raisebox{\Height}{[0.94,0.54,0,0]}}%
-%
-%
-\settowidth{\Width}{}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{}\settodepth{\Depth}{}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(10.7500,13.7500){\hspace*{\Width}\raisebox{\Height}{}}%
-%
-%
-\settowidth{\Width}{}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{}\settodepth{\Depth}{}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(13.3800,13.7500){\hspace*{\Width}\raisebox{\Height}{}}%
-%
-%
-\settowidth{\Width}{}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{}\settodepth{\Depth}{}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(1.3800,13.2500){\hspace*{\Width}\raisebox{\Height}{}}%
-%
-%
-\settowidth{\Width}{royalblue}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{royalblue}\settodepth{\Depth}{royalblue}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(4.5000,13.2500){\hspace*{\Width}\raisebox{\Height}{royalblue}}%
-%
-%
-\settowidth{\Width}{[1,0.5,0,0]}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{[1,0.5,0,0]}\settodepth{\Depth}{[1,0.5,0,0]}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(8.0000,13.2500){\hspace*{\Width}\raisebox{\Height}{[1,0.5,0,0]}}%
-%
-%
-\settowidth{\Width}{}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{}\settodepth{\Depth}{}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(10.7500,13.2500){\hspace*{\Width}\raisebox{\Height}{}}%
-%
-%
-\settowidth{\Width}{}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{}\settodepth{\Depth}{}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(13.3800,13.2500){\hspace*{\Width}\raisebox{\Height}{}}%
-%
-%
-\settowidth{\Width}{é’}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{é’}\settodepth{\Depth}{é’}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(1.3800,12.7500){\hspace*{\Width}\raisebox{\Height}{é’}}%
-%
-%
-\settowidth{\Width}{blue}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{blue}\settodepth{\Depth}{blue}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(4.5000,12.7500){\hspace*{\Width}\raisebox{\Height}{blue}}%
-%
-%
-\settowidth{\Width}{[1,1,0,0]}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{[1,1,0,0]}\settodepth{\Depth}{[1,1,0,0]}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(8.0000,12.7500){\hspace*{\Width}\raisebox{\Height}{[1,1,0,0]}}%
-%
-%
-\settowidth{\Width}{}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{}\settodepth{\Depth}{}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(10.7500,12.7500){\hspace*{\Width}\raisebox{\Height}{}}%
-%
-%
-\settowidth{\Width}{}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{}\settodepth{\Depth}{}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(13.3800,12.7500){\hspace*{\Width}\raisebox{\Height}{}}%
-%
-%
-\settowidth{\Width}{}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{}\settodepth{\Depth}{}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(1.3800,12.2500){\hspace*{\Width}\raisebox{\Height}{}}%
-%
-%
-\settowidth{\Width}{cerulean}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{cerulean}\settodepth{\Depth}{cerulean}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(4.5000,12.2500){\hspace*{\Width}\raisebox{\Height}{cerulean}}%
-%
-%
-\settowidth{\Width}{[0.94,0.11,0,0]}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{[0.94,0.11,0,0]}\settodepth{\Depth}{[0.94,0.11,0,0]}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(8.0000,12.2500){\hspace*{\Width}\raisebox{\Height}{[0.94,0.11,0,0]}}%
-%
-%
-\settowidth{\Width}{}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{}\settodepth{\Depth}{}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(10.7500,12.2500){\hspace*{\Width}\raisebox{\Height}{}}%
-%
-%
-\settowidth{\Width}{}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{}\settodepth{\Depth}{}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(13.3800,12.2500){\hspace*{\Width}\raisebox{\Height}{}}%
-%
-%
-\settowidth{\Width}{}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{}\settodepth{\Depth}{}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(1.3800,11.7500){\hspace*{\Width}\raisebox{\Height}{}}%
-%
-%
-\settowidth{\Width}{cyan}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{cyan}\settodepth{\Depth}{cyan}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(4.5000,11.7500){\hspace*{\Width}\raisebox{\Height}{cyan}}%
-%
-%
-\settowidth{\Width}{[1,0,0,0]}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{[1,0,0,0]}\settodepth{\Depth}{[1,0,0,0]}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(8.0000,11.7500){\hspace*{\Width}\raisebox{\Height}{[1,0,0,0]}}%
-%
-%
-\settowidth{\Width}{}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{}\settodepth{\Depth}{}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(10.7500,11.7500){\hspace*{\Width}\raisebox{\Height}{}}%
-%
-%
-\settowidth{\Width}{}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{}\settodepth{\Depth}{}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(13.3800,11.7500){\hspace*{\Width}\raisebox{\Height}{}}%
-%
-%
-\settowidth{\Width}{}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{}\settodepth{\Depth}{}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(1.3800,11.2500){\hspace*{\Width}\raisebox{\Height}{}}%
-%
-%
-\settowidth{\Width}{processblue}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{processblue}\settodepth{\Depth}{processblue}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(4.5000,11.2500){\hspace*{\Width}\raisebox{\Height}{processblue}}%
-%
-%
-\settowidth{\Width}{[0.96,0,0,0]}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{[0.96,0,0,0]}\settodepth{\Depth}{[0.96,0,0,0]}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(8.0000,11.2500){\hspace*{\Width}\raisebox{\Height}{[0.96,0,0,0]}}%
-%
-%
-\settowidth{\Width}{}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{}\settodepth{\Depth}{}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(10.7500,11.2500){\hspace*{\Width}\raisebox{\Height}{}}%
-%
-%
-\settowidth{\Width}{}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{}\settodepth{\Depth}{}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(13.3800,11.2500){\hspace*{\Width}\raisebox{\Height}{}}%
-%
-%
-\settowidth{\Width}{}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{}\settodepth{\Depth}{}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(1.3800,10.7500){\hspace*{\Width}\raisebox{\Height}{}}%
-%
-%
-\settowidth{\Width}{skyblue}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{skyblue}\settodepth{\Depth}{skyblue}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(4.5000,10.7500){\hspace*{\Width}\raisebox{\Height}{skyblue}}%
-%
-%
-\settowidth{\Width}{[0.62,0,0.12,0]}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{[0.62,0,0.12,0]}\settodepth{\Depth}{[0.62,0,0.12,0]}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(8.0000,10.7500){\hspace*{\Width}\raisebox{\Height}{[0.62,0,0.12,0]}}%
-%
-%
-\settowidth{\Width}{}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{}\settodepth{\Depth}{}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(10.7500,10.7500){\hspace*{\Width}\raisebox{\Height}{}}%
-%
-%
-\settowidth{\Width}{}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{}\settodepth{\Depth}{}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(13.3800,10.7500){\hspace*{\Width}\raisebox{\Height}{}}%
-%
-%
-\settowidth{\Width}{}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{}\settodepth{\Depth}{}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(1.3800,10.2500){\hspace*{\Width}\raisebox{\Height}{}}%
-%
-%
-\settowidth{\Width}{turquoise}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{turquoise}\settodepth{\Depth}{turquoise}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(4.5000,10.2500){\hspace*{\Width}\raisebox{\Height}{turquoise}}%
-%
-%
-\settowidth{\Width}{[0.85,0,0.2,0]}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{[0.85,0,0.2,0]}\settodepth{\Depth}{[0.85,0,0.2,0]}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(8.0000,10.2500){\hspace*{\Width}\raisebox{\Height}{[0.85,0,0.2,0]}}%
-%
-%
-\settowidth{\Width}{}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{}\settodepth{\Depth}{}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(10.7500,10.2500){\hspace*{\Width}\raisebox{\Height}{}}%
-%
-%
-\settowidth{\Width}{}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{}\settodepth{\Depth}{}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(13.3800,10.2500){\hspace*{\Width}\raisebox{\Height}{}}%
-%
-%
-\settowidth{\Width}{}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{}\settodepth{\Depth}{}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(1.3800,9.7500){\hspace*{\Width}\raisebox{\Height}{}}%
-%
-%
-\settowidth{\Width}{tealblue}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{tealblue}\settodepth{\Depth}{tealblue}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(4.5000,9.7500){\hspace*{\Width}\raisebox{\Height}{tealblue}}%
-%
-%
-\settowidth{\Width}{[0.86,0,0.34,0.02]}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{[0.86,0,0.34,0.02]}\settodepth{\Depth}{[0.86,0,0.34,0.02]}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(8.0000,9.7500){\hspace*{\Width}\raisebox{\Height}{[0.86,0,0.34,0.02]}}%
-%
-%
-\settowidth{\Width}{}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{}\settodepth{\Depth}{}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(10.7500,9.7500){\hspace*{\Width}\raisebox{\Height}{}}%
-%
-%
-\settowidth{\Width}{}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{}\settodepth{\Depth}{}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(13.3800,9.7500){\hspace*{\Width}\raisebox{\Height}{}}%
-%
-%
-\settowidth{\Width}{}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{}\settodepth{\Depth}{}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(1.3800,9.2500){\hspace*{\Width}\raisebox{\Height}{}}%
-%
-%
-\settowidth{\Width}{aquamarine}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{aquamarine}\settodepth{\Depth}{aquamarine}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(4.5000,9.2500){\hspace*{\Width}\raisebox{\Height}{aquamarine}}%
-%
-%
-\settowidth{\Width}{[0.82,0,0.3,0]}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{[0.82,0,0.3,0]}\settodepth{\Depth}{[0.82,0,0.3,0]}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(8.0000,9.2500){\hspace*{\Width}\raisebox{\Height}{[0.82,0,0.3,0]}}%
-%
-%
-\settowidth{\Width}{}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{}\settodepth{\Depth}{}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(10.7500,9.2500){\hspace*{\Width}\raisebox{\Height}{}}%
-%
-%
-\settowidth{\Width}{}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{}\settodepth{\Depth}{}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(13.3800,9.2500){\hspace*{\Width}\raisebox{\Height}{}}%
-%
-%
-\settowidth{\Width}{}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{}\settodepth{\Depth}{}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(1.3800,8.7500){\hspace*{\Width}\raisebox{\Height}{}}%
-%
-%
-\settowidth{\Width}{bluegreen}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{bluegreen}\settodepth{\Depth}{bluegreen}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(4.5000,8.7500){\hspace*{\Width}\raisebox{\Height}{bluegreen}}%
-%
-%
-\settowidth{\Width}{[0.85,0,0.33,0]}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{[0.85,0,0.33,0]}\settodepth{\Depth}{[0.85,0,0.33,0]}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(8.0000,8.7500){\hspace*{\Width}\raisebox{\Height}{[0.85,0,0.33,0]}}%
-%
-%
-\settowidth{\Width}{}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{}\settodepth{\Depth}{}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(10.7500,8.7500){\hspace*{\Width}\raisebox{\Height}{}}%
-%
-%
-\settowidth{\Width}{}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{}\settodepth{\Depth}{}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(13.3800,8.7500){\hspace*{\Width}\raisebox{\Height}{}}%
-%
-%
-\settowidth{\Width}{}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{}\settodepth{\Depth}{}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(1.3800,8.2500){\hspace*{\Width}\raisebox{\Height}{}}%
-%
-%
-\settowidth{\Width}{emerald}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{emerald}\settodepth{\Depth}{emerald}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(4.5000,8.2500){\hspace*{\Width}\raisebox{\Height}{emerald}}%
-%
-%
-\settowidth{\Width}{[1,0,0.5,0]}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{[1,0,0.5,0]}\settodepth{\Depth}{[1,0,0.5,0]}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(8.0000,8.2500){\hspace*{\Width}\raisebox{\Height}{[1,0,0.5,0]}}%
-%
-%
-\settowidth{\Width}{}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{}\settodepth{\Depth}{}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(10.7500,8.2500){\hspace*{\Width}\raisebox{\Height}{}}%
-%
-%
-\settowidth{\Width}{}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{}\settodepth{\Depth}{}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(13.3800,8.2500){\hspace*{\Width}\raisebox{\Height}{}}%
-%
-%
-\settowidth{\Width}{}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{}\settodepth{\Depth}{}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(1.3800,7.7500){\hspace*{\Width}\raisebox{\Height}{}}%
-%
-%
-\settowidth{\Width}{janglegreen}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{janglegreen}\settodepth{\Depth}{janglegreen}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(4.5000,7.7500){\hspace*{\Width}\raisebox{\Height}{janglegreen}}%
-%
-%
-\settowidth{\Width}{[0.99,0,0.52,0]}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{[0.99,0,0.52,0]}\settodepth{\Depth}{[0.99,0,0.52,0]}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(8.0000,7.7500){\hspace*{\Width}\raisebox{\Height}{[0.99,0,0.52,0]}}%
-%
-%
-\settowidth{\Width}{}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{}\settodepth{\Depth}{}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(10.7500,7.7500){\hspace*{\Width}\raisebox{\Height}{}}%
-%
-%
-\settowidth{\Width}{}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{}\settodepth{\Depth}{}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(13.3800,7.7500){\hspace*{\Width}\raisebox{\Height}{}}%
-%
-%
-\settowidth{\Width}{}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{}\settodepth{\Depth}{}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(1.3800,7.2500){\hspace*{\Width}\raisebox{\Height}{}}%
-%
-%
-\settowidth{\Width}{seagreen}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{seagreen}\settodepth{\Depth}{seagreen}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(4.5000,7.2500){\hspace*{\Width}\raisebox{\Height}{seagreen}}%
-%
-%
-\settowidth{\Width}{[0.69,0,0.5,0]}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{[0.69,0,0.5,0]}\settodepth{\Depth}{[0.69,0,0.5,0]}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(8.0000,7.2500){\hspace*{\Width}\raisebox{\Height}{[0.69,0,0.5,0]}}%
-%
-%
-\settowidth{\Width}{}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{}\settodepth{\Depth}{}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(10.7500,7.2500){\hspace*{\Width}\raisebox{\Height}{}}%
-%
-%
-\settowidth{\Width}{}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{}\settodepth{\Depth}{}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(13.3800,7.2500){\hspace*{\Width}\raisebox{\Height}{}}%
-%
-%
-\settowidth{\Width}{ç·‘}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{ç·‘}\settodepth{\Depth}{ç·‘}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(1.3800,6.7500){\hspace*{\Width}\raisebox{\Height}{ç·‘}}%
-%
-%
-\settowidth{\Width}{green}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{green}\settodepth{\Depth}{green}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(4.5000,6.7500){\hspace*{\Width}\raisebox{\Height}{green}}%
-%
-%
-\settowidth{\Width}{[1,0,1,0]}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{[1,0,1,0]}\settodepth{\Depth}{[1,0,1,0]}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(8.0000,6.7500){\hspace*{\Width}\raisebox{\Height}{[1,0,1,0]}}%
-%
-%
-\settowidth{\Width}{}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{}\settodepth{\Depth}{}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(10.7500,6.7500){\hspace*{\Width}\raisebox{\Height}{}}%
-%
-%
-\settowidth{\Width}{}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{}\settodepth{\Depth}{}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(13.3800,6.7500){\hspace*{\Width}\raisebox{\Height}{}}%
-%
-%
-\settowidth{\Width}{}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{}\settodepth{\Depth}{}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(1.3800,6.2500){\hspace*{\Width}\raisebox{\Height}{}}%
-%
-%
-\settowidth{\Width}{forestgreen}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{forestgreen}\settodepth{\Depth}{forestgreen}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(4.5000,6.2500){\hspace*{\Width}\raisebox{\Height}{forestgreen}}%
-%
-%
-\settowidth{\Width}{[0.91,0,0.88,0.12]}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{[0.91,0,0.88,0.12]}\settodepth{\Depth}{[0.91,0,0.88,0.12]}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(8.0000,6.2500){\hspace*{\Width}\raisebox{\Height}{[0.91,0,0.88,0.12]}}%
-%
-%
-\settowidth{\Width}{}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{}\settodepth{\Depth}{}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(10.7500,6.2500){\hspace*{\Width}\raisebox{\Height}{}}%
-%
-%
-\settowidth{\Width}{}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{}\settodepth{\Depth}{}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(13.3800,6.2500){\hspace*{\Width}\raisebox{\Height}{}}%
-%
-%
-\settowidth{\Width}{}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{}\settodepth{\Depth}{}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(1.3800,5.7500){\hspace*{\Width}\raisebox{\Height}{}}%
-%
-%
-\settowidth{\Width}{pinegreen}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{pinegreen}\settodepth{\Depth}{pinegreen}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(4.5000,5.7500){\hspace*{\Width}\raisebox{\Height}{pinegreen}}%
-%
-%
-\settowidth{\Width}{[0.92,0,0.59,0.25]}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{[0.92,0,0.59,0.25]}\settodepth{\Depth}{[0.92,0,0.59,0.25]}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(8.0000,5.7500){\hspace*{\Width}\raisebox{\Height}{[0.92,0,0.59,0.25]}}%
-%
-%
-\settowidth{\Width}{}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{}\settodepth{\Depth}{}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(10.7500,5.7500){\hspace*{\Width}\raisebox{\Height}{}}%
-%
-%
-\settowidth{\Width}{}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{}\settodepth{\Depth}{}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(13.3800,5.7500){\hspace*{\Width}\raisebox{\Height}{}}%
-%
-%
-\settowidth{\Width}{}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{}\settodepth{\Depth}{}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(1.3800,5.2500){\hspace*{\Width}\raisebox{\Height}{}}%
-%
-%
-\settowidth{\Width}{limegreen}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{limegreen}\settodepth{\Depth}{limegreen}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(4.5000,5.2500){\hspace*{\Width}\raisebox{\Height}{limegreen}}%
-%
-%
-\settowidth{\Width}{[0.5,0,1,0]}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{[0.5,0,1,0]}\settodepth{\Depth}{[0.5,0,1,0]}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(8.0000,5.2500){\hspace*{\Width}\raisebox{\Height}{[0.5,0,1,0]}}%
-%
-%
-\settowidth{\Width}{}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{}\settodepth{\Depth}{}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(10.7500,5.2500){\hspace*{\Width}\raisebox{\Height}{}}%
-%
-%
-\settowidth{\Width}{}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{}\settodepth{\Depth}{}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(13.3800,5.2500){\hspace*{\Width}\raisebox{\Height}{}}%
-%
-%
-\settowidth{\Width}{}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{}\settodepth{\Depth}{}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(1.3800,4.7500){\hspace*{\Width}\raisebox{\Height}{}}%
-%
-%
-\settowidth{\Width}{yellowgreen}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{yellowgreen}\settodepth{\Depth}{yellowgreen}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(4.5000,4.7500){\hspace*{\Width}\raisebox{\Height}{yellowgreen}}%
-%
-%
-\settowidth{\Width}{[0.44,0,0.74,0]}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{[0.44,0,0.74,0]}\settodepth{\Depth}{[0.44,0,0.74,0]}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(8.0000,4.7500){\hspace*{\Width}\raisebox{\Height}{[0.44,0,0.74,0]}}%
-%
-%
-\settowidth{\Width}{}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{}\settodepth{\Depth}{}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(10.7500,4.7500){\hspace*{\Width}\raisebox{\Height}{}}%
-%
-%
-\settowidth{\Width}{}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{}\settodepth{\Depth}{}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(13.3800,4.7500){\hspace*{\Width}\raisebox{\Height}{}}%
-%
-%
-\settowidth{\Width}{}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{}\settodepth{\Depth}{}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(1.3800,4.2500){\hspace*{\Width}\raisebox{\Height}{}}%
-%
-%
-\settowidth{\Width}{springgreen}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{springgreen}\settodepth{\Depth}{springgreen}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(4.5000,4.2500){\hspace*{\Width}\raisebox{\Height}{springgreen}}%
-%
-%
-\settowidth{\Width}{[0.26,0,0.76,0]}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{[0.26,0,0.76,0]}\settodepth{\Depth}{[0.26,0,0.76,0]}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(8.0000,4.2500){\hspace*{\Width}\raisebox{\Height}{[0.26,0,0.76,0]}}%
-%
-%
-\settowidth{\Width}{}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{}\settodepth{\Depth}{}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(10.7500,4.2500){\hspace*{\Width}\raisebox{\Height}{}}%
-%
-%
-\settowidth{\Width}{}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{}\settodepth{\Depth}{}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(13.3800,4.2500){\hspace*{\Width}\raisebox{\Height}{}}%
-%
-%
-\settowidth{\Width}{}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{}\settodepth{\Depth}{}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(1.3800,3.7500){\hspace*{\Width}\raisebox{\Height}{}}%
-%
-%
-\settowidth{\Width}{olivegreen}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{olivegreen}\settodepth{\Depth}{olivegreen}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(4.5000,3.7500){\hspace*{\Width}\raisebox{\Height}{olivegreen}}%
-%
-%
-\settowidth{\Width}{[0.64,0,0.95,0.4]}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{[0.64,0,0.95,0.4]}\settodepth{\Depth}{[0.64,0,0.95,0.4]}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(8.0000,3.7500){\hspace*{\Width}\raisebox{\Height}{[0.64,0,0.95,0.4]}}%
-%
-%
-\settowidth{\Width}{}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{}\settodepth{\Depth}{}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(10.7500,3.7500){\hspace*{\Width}\raisebox{\Height}{}}%
-%
-%
-\settowidth{\Width}{}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{}\settodepth{\Depth}{}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(13.3800,3.7500){\hspace*{\Width}\raisebox{\Height}{}}%
-%
-%
-\settowidth{\Width}{}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{}\settodepth{\Depth}{}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(1.3800,3.2500){\hspace*{\Width}\raisebox{\Height}{}}%
-%
-%
-\settowidth{\Width}{rawsienna}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{rawsienna}\settodepth{\Depth}{rawsienna}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(4.5000,3.2500){\hspace*{\Width}\raisebox{\Height}{rawsienna}}%
-%
-%
-\settowidth{\Width}{[0,0.72,1,0.45]}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{[0,0.72,1,0.45]}\settodepth{\Depth}{[0,0.72,1,0.45]}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(8.0000,3.2500){\hspace*{\Width}\raisebox{\Height}{[0,0.72,1,0.45]}}%
-%
-%
-\settowidth{\Width}{}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{}\settodepth{\Depth}{}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(10.7500,3.2500){\hspace*{\Width}\raisebox{\Height}{}}%
-%
-%
-\settowidth{\Width}{}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{}\settodepth{\Depth}{}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(13.3800,3.2500){\hspace*{\Width}\raisebox{\Height}{}}%
-%
-%
-\settowidth{\Width}{}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{}\settodepth{\Depth}{}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(1.3800,2.7500){\hspace*{\Width}\raisebox{\Height}{}}%
-%
-%
-\settowidth{\Width}{sepia}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{sepia}\settodepth{\Depth}{sepia}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(4.5000,2.7500){\hspace*{\Width}\raisebox{\Height}{sepia}}%
-%
-%
-\settowidth{\Width}{[0,0.83,1,0.7]}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{[0,0.83,1,0.7]}\settodepth{\Depth}{[0,0.83,1,0.7]}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(8.0000,2.7500){\hspace*{\Width}\raisebox{\Height}{[0,0.83,1,0.7]}}%
-%
-%
-\settowidth{\Width}{}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{}\settodepth{\Depth}{}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(10.7500,2.7500){\hspace*{\Width}\raisebox{\Height}{}}%
-%
-%
-\settowidth{\Width}{}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{}\settodepth{\Depth}{}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(13.3800,2.7500){\hspace*{\Width}\raisebox{\Height}{}}%
-%
-%
-\settowidth{\Width}{茶色}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{茶色}\settodepth{\Depth}{茶色}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(1.3800,2.2500){\hspace*{\Width}\raisebox{\Height}{茶色}}%
-%
-%
-\settowidth{\Width}{brown}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{brown}\settodepth{\Depth}{brown}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(4.5000,2.2500){\hspace*{\Width}\raisebox{\Height}{brown}}%
-%
-%
-\settowidth{\Width}{[0,0.81,1,0.6]}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{[0,0.81,1,0.6]}\settodepth{\Depth}{[0,0.81,1,0.6]}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(8.0000,2.2500){\hspace*{\Width}\raisebox{\Height}{[0,0.81,1,0.6]}}%
-%
-%
-\settowidth{\Width}{}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{}\settodepth{\Depth}{}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(10.7500,2.2500){\hspace*{\Width}\raisebox{\Height}{}}%
-%
-%
-\settowidth{\Width}{}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{}\settodepth{\Depth}{}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(13.3800,2.2500){\hspace*{\Width}\raisebox{\Height}{}}%
-%
-%
-\settowidth{\Width}{}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{}\settodepth{\Depth}{}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(1.3800,1.7500){\hspace*{\Width}\raisebox{\Height}{}}%
-%
-%
-\settowidth{\Width}{tan}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{tan}\settodepth{\Depth}{tan}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(4.5000,1.7500){\hspace*{\Width}\raisebox{\Height}{tan}}%
-%
-%
-\settowidth{\Width}{[0.14,0.42,0.56,0]}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{[0.14,0.42,0.56,0]}\settodepth{\Depth}{[0.14,0.42,0.56,0]}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(8.0000,1.7500){\hspace*{\Width}\raisebox{\Height}{[0.14,0.42,0.56,0]}}%
-%
-%
-\settowidth{\Width}{}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{}\settodepth{\Depth}{}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(10.7500,1.7500){\hspace*{\Width}\raisebox{\Height}{}}%
-%
-%
-\settowidth{\Width}{}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{}\settodepth{\Depth}{}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(13.3800,1.7500){\hspace*{\Width}\raisebox{\Height}{}}%
-%
-%
-\settowidth{\Width}{ç°è‰²}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{ç°è‰²}\settodepth{\Depth}{ç°è‰²}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(1.3800,1.2500){\hspace*{\Width}\raisebox{\Height}{ç°è‰²}}%
-%
-%
-\settowidth{\Width}{gray}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{gray}\settodepth{\Depth}{gray}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(4.5000,1.2500){\hspace*{\Width}\raisebox{\Height}{gray}}%
-%
-%
-\settowidth{\Width}{[0,0,0,0.5]}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{[0,0,0,0.5]}\settodepth{\Depth}{[0,0,0,0.5]}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(8.0000,1.2500){\hspace*{\Width}\raisebox{\Height}{[0,0,0,0.5]}}%
-%
-%
-\settowidth{\Width}{}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{}\settodepth{\Depth}{}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(10.7500,1.2500){\hspace*{\Width}\raisebox{\Height}{}}%
-%
-%
-\settowidth{\Width}{}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{}\settodepth{\Depth}{}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(13.3800,1.2500){\hspace*{\Width}\raisebox{\Height}{}}%
-%
-%
-\settowidth{\Width}{é»’}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{é»’}\settodepth{\Depth}{é»’}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(1.3800,0.7500){\hspace*{\Width}\raisebox{\Height}{é»’}}%
-%
-%
-\settowidth{\Width}{black}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{black}\settodepth{\Depth}{black}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(4.5000,0.7500){\hspace*{\Width}\raisebox{\Height}{black}}%
-%
-%
-\settowidth{\Width}{[0,0,0,1]}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{[0,0,0,1]}\settodepth{\Depth}{[0,0,0,1]}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(8.0000,0.7500){\hspace*{\Width}\raisebox{\Height}{[0,0,0,1]}}%
-%
-%
-\settowidth{\Width}{}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{}\settodepth{\Depth}{}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(10.7500,0.7500){\hspace*{\Width}\raisebox{\Height}{}}%
-%
-%
-\settowidth{\Width}{}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{}\settodepth{\Depth}{}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(13.3800,0.7500){\hspace*{\Width}\raisebox{\Height}{}}%
-%
-%
-\settowidth{\Width}{白}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{白}\settodepth{\Depth}{白}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(1.3800,0.2500){\hspace*{\Width}\raisebox{\Height}{白}}%
-%
-%
-\settowidth{\Width}{white}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{white}\settodepth{\Depth}{white}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(4.5000,0.2500){\hspace*{\Width}\raisebox{\Height}{white}}%
-%
-%
-\settowidth{\Width}{[0,0,0,0]}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{[0,0,0,0]}\settodepth{\Depth}{[0,0,0,0]}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(8.0000,0.2500){\hspace*{\Width}\raisebox{\Height}{[0,0,0,0]}}%
-%
-%
-\settowidth{\Width}{}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{}\settodepth{\Depth}{}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(10.7500,0.2500){\hspace*{\Width}\raisebox{\Height}{}}%
-%
-%
-\settowidth{\Width}{}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{}\settodepth{\Depth}{}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(13.3800,0.2500){\hspace*{\Width}\raisebox{\Height}{}}%
-%
-%
-\end{picture}}% \ No newline at end of file
diff --git a/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/concept.tex b/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/concept.tex
deleted file mode 100644
index c4c7583a..00000000
--- a/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/concept.tex
+++ /dev/null
@@ -1,403 +0,0 @@
-%%% fig.tex 2016-4-30 21:58
-%%% fig.sce 2016-4-30 21:58
-{\unitlength=3.5mm%
-\begin{picture}%
-( 38.24000, 21.88000)( -24.72000, -11.80000)%
-\special{pn 8}%
-%
-\special{pa 933 -397}\special{pa 929 -446}\special{pa 920 -494}\special{pa 905 -541}%
-\special{pa 884 -586}\special{pa 858 -628}\special{pa 826 -665}\special{pa 790 -699}%
-\special{pa 750 -728}\special{pa 707 -752}\special{pa 661 -770}\special{pa 614 -782}%
-\special{pa 565 -788}\special{pa 516 -788}\special{pa 467 -782}\special{pa 419 -770}%
-\special{pa 373 -752}\special{pa 330 -728}\special{pa 290 -699}\special{pa 254 -665}%
-\special{pa 223 -628}\special{pa 196 -586}\special{pa 175 -541}\special{pa 160 -494}%
-\special{pa 151 -446}\special{pa 148 -397}\special{pa 151 -348}\special{pa 160 -299}%
-\special{pa 175 -252}\special{pa 196 -208}\special{pa 223 -166}\special{pa 254 -128}%
-\special{pa 290 -94}\special{pa 330 -66}\special{pa 373 -42}\special{pa 419 -24}\special{pa 467 -11}%
-\special{pa 516 -5}\special{pa 565 -5}\special{pa 614 -11}\special{pa 661 -24}\special{pa 707 -42}%
-\special{pa 750 -66}\special{pa 790 -94}\special{pa 826 -128}\special{pa 858 -166}%
-\special{pa 884 -208}\special{pa 905 -252}\special{pa 920 -299}\special{pa 929 -348}%
-\special{pa 933 -397}%
-\special{fp}%
-\special{pa 1624 -628}\special{pa 1622 -665}\special{pa 1615 -700}\special{pa 1604 -735}%
-\special{pa 1588 -768}\special{pa 1569 -799}\special{pa 1545 -827}\special{pa 1519 -852}%
-\special{pa 1489 -873}\special{pa 1457 -891}\special{pa 1424 -904}\special{pa 1388 -913}%
-\special{pa 1352 -918}\special{pa 1316 -918}\special{pa 1280 -913}\special{pa 1244 -904}%
-\special{pa 1210 -891}\special{pa 1178 -873}\special{pa 1149 -852}\special{pa 1122 -827}%
-\special{pa 1099 -799}\special{pa 1080 -768}\special{pa 1064 -735}\special{pa 1053 -700}%
-\special{pa 1046 -665}\special{pa 1044 -628}\special{pa 1046 -592}\special{pa 1053 -556}%
-\special{pa 1064 -522}\special{pa 1080 -489}\special{pa 1099 -458}\special{pa 1122 -430}%
-\special{pa 1149 -405}\special{pa 1178 -383}\special{pa 1210 -366}\special{pa 1244 -352}%
-\special{pa 1280 -343}\special{pa 1316 -339}\special{pa 1352 -339}\special{pa 1388 -343}%
-\special{pa 1424 -352}\special{pa 1457 -366}\special{pa 1489 -383}\special{pa 1519 -405}%
-\special{pa 1545 -430}\special{pa 1569 -458}\special{pa 1588 -489}\special{pa 1604 -522}%
-\special{pa 1615 -556}\special{pa 1622 -592}\special{pa 1624 -628}%
-\special{fp}%
-\special{pa 1580 176}\special{pa 1577 128}\special{pa 1568 79}\special{pa 1553 33}%
-\special{pa 1532 -11}\special{pa 1506 -53}\special{pa 1475 -90}\special{pa 1439 -124}%
-\special{pa 1399 -153}\special{pa 1357 -176}\special{pa 1311 -194}\special{pa 1264 -207}%
-\special{pa 1215 -213}\special{pa 1166 -213}\special{pa 1118 -207}\special{pa 1070 -194}%
-\special{pa 1025 -176}\special{pa 982 -153}\special{pa 942 -124}\special{pa 906 -90}%
-\special{pa 875 -53}\special{pa 849 -11}\special{pa 828 33}\special{pa 813 79}\special{pa 804 128}%
-\special{pa 801 176}\special{pa 804 225}\special{pa 813 273}\special{pa 828 320}\special{pa 849 364}%
-\special{pa 875 406}\special{pa 906 443}\special{pa 942 477}\special{pa 982 506}\special{pa 1025 529}%
-\special{pa 1070 547}\special{pa 1118 559}\special{pa 1166 565}\special{pa 1215 565}%
-\special{pa 1264 559}\special{pa 1311 547}\special{pa 1357 529}\special{pa 1399 506}%
-\special{pa 1439 477}\special{pa 1475 443}\special{pa 1506 406}\special{pa 1532 364}%
-\special{pa 1553 320}\special{pa 1568 273}\special{pa 1577 225}\special{pa 1580 176}%
-\special{fp}%
-\special{pn 32}%
-\special{pa 784 -90}\special{pa 865 -39}%
-\special{fp}%
-\special{pn 8}%
-\special{pn 32}%
-\special{pa 931 -435}\special{pa 1058 -540}%
-\special{fp}%
-\special{pn 8}%
-\special{pn 24}%
-\special{pa 1225 -360}\special{pa 1204 -227}%
-\special{fp}%
-\special{pn 8}%
-\special{pa 1189 -291}\special{pa 1202 -213}\special{pa 1237 -284}\special{pa 1213 -287}%
-\special{pa 1189 -291}\special{sh 1}\special{ip}%
-\special{pn 1}%
-\special{pa 1189 -291}\special{pa 1202 -213}\special{pa 1237 -284}\special{pa 1213 -287}%
-\special{pa 1189 -291}\special{pa 1202 -213}%
-\special{fp}%
-\special{pn 8}%
-\special{pn 24}%
-\special{pa 1271 -205}\special{pa 1305 -326}%
-\special{fp}%
-\special{pn 8}%
-\special{pa 1312 -261}\special{pa 1309 -339}\special{pa 1265 -274}\special{pa 1288 -267}%
-\special{pa 1312 -261}\special{sh 1}\special{ip}%
-\special{pn 1}%
-\special{pa 1312 -261}\special{pa 1309 -339}\special{pa 1265 -274}\special{pa 1288 -267}%
-\special{pa 1312 -261}\special{pa 1309 -339}%
-\special{fp}%
-\special{pn 8}%
-\special{pa 89 155}\special{pa 85 93}\special{pa 72 32}\special{pa 50 -27}\special{pa 19 -83}%
-\special{pa -21 -136}\special{pa -68 -184}\special{pa -123 -228}\special{pa -183 -265}%
-\special{pa -250 -297}\special{pa -320 -321}\special{pa -393 -338}\special{pa -469 -347}%
-\special{pa -545 -349}\special{pa -621 -343}\special{pa -695 -330}\special{pa -766 -308}%
-\special{pa -834 -280}\special{pa -896 -246}\special{pa -953 -205}\special{pa -1002 -159}%
-\special{pa -1044 -108}\special{pa -1078 -53}\special{pa -1103 5}\special{pa -1119 65}%
-\special{pa -1125 127}\special{pa -1122 188}\special{pa -1109 249}\special{pa -1086 308}%
-\special{pa -1055 364}\special{pa -1016 417}\special{pa -968 466}\special{pa -914 509}%
-\special{pa -853 547}\special{pa -787 578}\special{pa -716 602}\special{pa -643 619}%
-\special{pa -567 628}\special{pa -491 630}\special{pa -416 624}\special{pa -341 611}%
-\special{pa -270 590}\special{pa -203 562}\special{pa -140 527}\special{pa -84 486}%
-\special{pa -34 440}\special{pa 8 389}\special{pa 42 334}\special{pa 67 276}\special{pa 82 216}%
-\special{pa 89 155}%
-\special{fp}%
-\special{pa -2437 142}\special{pa -2441 96}\special{pa -2453 50}\special{pa -2471 7}%
-\special{pa -2496 -35}\special{pa -2527 -73}\special{pa -2565 -108}\special{pa -2607 -139}%
-\special{pa -2655 -166}\special{pa -2706 -188}\special{pa -2760 -204}\special{pa -2816 -215}%
-\special{pa -2874 -220}\special{pa -2932 -220}\special{pa -2989 -213}\special{pa -3045 -201}%
-\special{pa -3099 -184}\special{pa -3150 -161}\special{pa -3197 -134}\special{pa -3239 -102}%
-\special{pa -3275 -66}\special{pa -3306 -27}\special{pa -3330 15}\special{pa -3348 59}%
-\special{pa -3358 105}\special{pa -3361 151}\special{pa -3357 197}\special{pa -3346 242}%
-\special{pa -3328 285}\special{pa -3302 327}\special{pa -3271 365}\special{pa -3234 400}%
-\special{pa -3191 432}\special{pa -3144 458}\special{pa -3093 480}\special{pa -3039 496}%
-\special{pa -2982 507}\special{pa -2925 512}\special{pa -2867 512}\special{pa -2809 506}%
-\special{pa -2753 494}\special{pa -2699 476}\special{pa -2649 453}\special{pa -2602 426}%
-\special{pa -2560 394}\special{pa -2523 358}\special{pa -2493 319}\special{pa -2468 277}%
-\special{pa -2451 233}\special{pa -2440 188}\special{pa -2437 142}%
-\special{fp}%
-\special{pa -1461 901}\special{pa -1463 870}\special{pa -1472 839}\special{pa -1486 808}%
-\special{pa -1505 779}\special{pa -1530 752}\special{pa -1560 727}\special{pa -1594 705}%
-\special{pa -1633 685}\special{pa -1674 669}\special{pa -1719 656}\special{pa -1765 647}%
-\special{pa -1813 641}\special{pa -1861 640}\special{pa -1908 643}\special{pa -1955 649}%
-\special{pa -2000 659}\special{pa -2043 673}\special{pa -2082 691}\special{pa -2118 711}%
-\special{pa -2149 734}\special{pa -2175 760}\special{pa -2197 788}\special{pa -2212 817}%
-\special{pa -2222 848}\special{pa -2226 879}\special{pa -2224 911}\special{pa -2216 942}%
-\special{pa -2202 972}\special{pa -2182 1001}\special{pa -2157 1028}\special{pa -2127 1053}%
-\special{pa -2093 1076}\special{pa -2055 1095}\special{pa -2013 1112}\special{pa -1969 1124}%
-\special{pa -1922 1134}\special{pa -1875 1139}\special{pa -1827 1140}\special{pa -1779 1138}%
-\special{pa -1732 1131}\special{pa -1687 1121}\special{pa -1645 1107}\special{pa -1605 1090}%
-\special{pa -1570 1069}\special{pa -1539 1046}\special{pa -1512 1020}\special{pa -1491 992}%
-\special{pa -1475 963}\special{pa -1465 932}\special{pa -1461 901}%
-\special{fp}%
-\special{pa 201 1172}\special{pa 200 1142}\special{pa 191 1113}\special{pa 177 1084}%
-\special{pa 156 1056}\special{pa 130 1030}\special{pa 98 1005}\special{pa 61 983}%
-\special{pa 21 963}\special{pa -24 947}\special{pa -71 934}\special{pa -121 924}\special{pa -172 918}%
-\special{pa -224 915}\special{pa -275 916}\special{pa -325 921}\special{pa -374 930}%
-\special{pa -420 942}\special{pa -462 957}\special{pa -501 976}\special{pa -535 997}%
-\special{pa -564 1020}\special{pa -587 1046}\special{pa -605 1074}\special{pa -616 1102}%
-\special{pa -620 1132}\special{pa -619 1162}\special{pa -610 1191}\special{pa -596 1220}%
-\special{pa -575 1248}\special{pa -549 1274}\special{pa -517 1299}\special{pa -480 1321}%
-\special{pa -439 1341}\special{pa -395 1357}\special{pa -347 1370}\special{pa -298 1380}%
-\special{pa -247 1386}\special{pa -195 1389}\special{pa -144 1388}\special{pa -94 1383}%
-\special{pa -45 1374}\special{pa 1 1362}\special{pa 43 1347}\special{pa 82 1328}\special{pa 116 1307}%
-\special{pa 145 1283}\special{pa 168 1258}\special{pa 186 1230}\special{pa 197 1202}%
-\special{pa 201 1172}%
-\special{fp}%
-\special{pa 1001 926}\special{pa 999 888}\special{pa 992 849}\special{pa 978 812}%
-\special{pa 959 776}\special{pa 935 742}\special{pa 905 711}\special{pa 872 684}\special{pa 834 659}%
-\special{pa 792 639}\special{pa 749 623}\special{pa 703 612}\special{pa 655 605}\special{pa 608 604}%
-\special{pa 560 607}\special{pa 513 615}\special{pa 468 627}\special{pa 426 644}\special{pa 386 666}%
-\special{pa 350 691}\special{pa 319 720}\special{pa 292 751}\special{pa 270 786}\special{pa 254 822}%
-\special{pa 244 860}\special{pa 239 898}\special{pa 241 937}\special{pa 249 975}\special{pa 262 1013}%
-\special{pa 281 1048}\special{pa 305 1082}\special{pa 335 1113}\special{pa 369 1141}%
-\special{pa 406 1165}\special{pa 448 1185}\special{pa 492 1201}\special{pa 538 1212}%
-\special{pa 585 1219}\special{pa 633 1221}\special{pa 680 1218}\special{pa 727 1210}%
-\special{pa 772 1197}\special{pa 814 1180}\special{pa 854 1159}\special{pa 890 1134}%
-\special{pa 921 1105}\special{pa 948 1073}\special{pa 970 1039}\special{pa 986 1003}%
-\special{pa 996 965}\special{pa 1001 926}%
-\special{fp}%
-\special{pa -768 1296}\special{pa -770 1262}\special{pa -780 1228}\special{pa -795 1195}%
-\special{pa -816 1163}\special{pa -843 1133}\special{pa -875 1107}\special{pa -912 1082}%
-\special{pa -953 1062}\special{pa -997 1045}\special{pa -1044 1031}\special{pa -1093 1022}%
-\special{pa -1143 1018}\special{pa -1194 1017}\special{pa -1244 1021}\special{pa -1294 1029}%
-\special{pa -1341 1041}\special{pa -1385 1058}\special{pa -1427 1078}\special{pa -1464 1101}%
-\special{pa -1496 1127}\special{pa -1524 1156}\special{pa -1546 1188}\special{pa -1562 1220}%
-\special{pa -1571 1254}\special{pa -1575 1289}\special{pa -1572 1323}\special{pa -1563 1357}%
-\special{pa -1548 1391}\special{pa -1526 1422}\special{pa -1499 1452}\special{pa -1467 1479}%
-\special{pa -1431 1503}\special{pa -1390 1523}\special{pa -1345 1540}\special{pa -1298 1554}%
-\special{pa -1249 1563}\special{pa -1199 1567}\special{pa -1148 1568}\special{pa -1098 1564}%
-\special{pa -1049 1556}\special{pa -1002 1544}\special{pa -957 1527}\special{pa -916 1507}%
-\special{pa -879 1484}\special{pa -846 1458}\special{pa -819 1429}\special{pa -797 1398}%
-\special{pa -781 1365}\special{pa -771 1331}\special{pa -768 1296}%
-\special{fp}%
-\special{pa -925 -621}\special{pa -930 -652}\special{pa -942 -682}\special{pa -960 -711}%
-\special{pa -984 -738}\special{pa -1015 -763}\special{pa -1051 -785}\special{pa -1091 -805}%
-\special{pa -1136 -821}\special{pa -1185 -834}\special{pa -1236 -843}\special{pa -1289 -848}%
-\special{pa -1343 -849}\special{pa -1397 -847}\special{pa -1451 -840}\special{pa -1504 -830}%
-\special{pa -1554 -816}\special{pa -1601 -799}\special{pa -1644 -779}\special{pa -1682 -756}%
-\special{pa -1716 -730}\special{pa -1744 -702}\special{pa -1766 -673}\special{pa -1781 -643}%
-\special{pa -1790 -612}\special{pa -1792 -581}\special{pa -1787 -550}\special{pa -1776 -520}%
-\special{pa -1757 -491}\special{pa -1733 -464}\special{pa -1702 -439}\special{pa -1667 -416}%
-\special{pa -1626 -397}\special{pa -1581 -381}\special{pa -1533 -368}\special{pa -1482 -359}%
-\special{pa -1429 -354}\special{pa -1374 -352}\special{pa -1320 -355}\special{pa -1266 -361}%
-\special{pa -1214 -371}\special{pa -1164 -385}\special{pa -1117 -402}\special{pa -1074 -423}%
-\special{pa -1035 -446}\special{pa -1001 -471}\special{pa -973 -499}\special{pa -952 -528}%
-\special{pa -936 -559}\special{pa -927 -590}\special{pa -925 -621}%
-\special{fp}%
-\special{pa -1457 142}\special{pa -1460 103}\special{pa -1470 65}\special{pa -1486 28}%
-\special{pa -1508 -7}\special{pa -1535 -40}\special{pa -1568 -69}\special{pa -1605 -96}%
-\special{pa -1646 -118}\special{pa -1690 -137}\special{pa -1737 -150}\special{pa -1786 -160}%
-\special{pa -1836 -164}\special{pa -1886 -163}\special{pa -1936 -158}\special{pa -1985 -148}%
-\special{pa -2031 -133}\special{pa -2075 -114}\special{pa -2115 -90}\special{pa -2152 -63}%
-\special{pa -2184 -33}\special{pa -2210 0}\special{pa -2231 36}\special{pa -2246 73}%
-\special{pa -2255 112}\special{pa -2258 150}\special{pa -2255 189}\special{pa -2245 227}%
-\special{pa -2229 264}\special{pa -2207 299}\special{pa -2180 332}\special{pa -2147 362}%
-\special{pa -2110 388}\special{pa -2069 410}\special{pa -2025 429}\special{pa -1978 442}%
-\special{pa -1929 452}\special{pa -1879 456}\special{pa -1829 455}\special{pa -1779 450}%
-\special{pa -1730 440}\special{pa -1684 425}\special{pa -1640 406}\special{pa -1599 382}%
-\special{pa -1563 355}\special{pa -1531 325}\special{pa -1505 292}\special{pa -1484 256}%
-\special{pa -1469 219}\special{pa -1460 181}\special{pa -1457 142}%
-\special{fp}%
-\special{pn 16}%
-\special{pa 11 -94}\special{pa 183 -234}%
-\special{fp}%
-\special{pn 8}%
-\special{pn 16}%
-\special{pa 89 141}\special{pa 804 127}%
-\special{fp}%
-\special{pn 8}%
-\special{pn 16}%
-\special{pa -1291 143}\special{pa -1139 141}%
-\special{fp}%
-\special{pn 8}%
-\special{pa -1199 166}\special{pa -1125 141}\special{pa -1200 117}\special{pa -1200 142}%
-\special{pa -1199 166}\special{sh 1}\special{ip}%
-\special{pn 1}%
-\special{pa -1199 166}\special{pa -1125 141}\special{pa -1200 117}\special{pa -1200 142}%
-\special{pa -1199 166}\special{pa -1125 141}%
-\special{fp}%
-\special{pn 8}%
-\special{pn 16}%
-\special{pa -1291 143}\special{pa -1443 146}%
-\special{fp}%
-\special{pn 8}%
-\special{pa -1382 120}\special{pa -1457 146}\special{pa -1382 169}\special{pa -1382 145}%
-\special{pa -1382 120}\special{sh 1}\special{ip}%
-\special{pn 1}%
-\special{pa -1382 120}\special{pa -1457 146}\special{pa -1382 169}\special{pa -1382 145}%
-\special{pa -1382 120}\special{pa -1457 146}%
-\special{fp}%
-\special{pn 8}%
-\special{pn 16}%
-\special{pa -1282 585}\special{pa -983 469}%
-\special{fp}%
-\special{pn 8}%
-\special{pa -1031 513}\special{pa -970 464}\special{pa -1049 468}\special{pa -1040 491}%
-\special{pa -1031 513}\special{sh 1}\special{ip}%
-\special{pn 1}%
-\special{pa -1031 513}\special{pa -970 464}\special{pa -1049 468}\special{pa -1040 491}%
-\special{pa -1031 513}\special{pa -970 464}%
-\special{fp}%
-\special{pn 8}%
-\special{pn 16}%
-\special{pa -1282 585}\special{pa -1580 701}%
-\special{fp}%
-\special{pn 8}%
-\special{pa -1532 656}\special{pa -1593 706}\special{pa -1514 701}\special{pa -1523 678}%
-\special{pa -1532 656}\special{sh 1}\special{ip}%
-\special{pn 1}%
-\special{pa -1532 656}\special{pa -1593 706}\special{pa -1514 701}\special{pa -1523 678}%
-\special{pa -1532 656}\special{pa -1593 706}%
-\special{fp}%
-\special{pn 8}%
-\special{pn 16}%
-\special{pa -266 757}\special{pa -298 613}%
-\special{fp}%
-\special{pn 8}%
-\special{pa -261 668}\special{pa -301 600}\special{pa -308 678}\special{pa -285 673}%
-\special{pa -261 668}\special{sh 1}\special{ip}%
-\special{pn 1}%
-\special{pa -261 668}\special{pa -301 600}\special{pa -308 678}\special{pa -285 673}%
-\special{pa -261 668}\special{pa -301 600}%
-\special{fp}%
-\special{pn 8}%
-\special{pn 16}%
-\special{pa -266 757}\special{pa -234 902}%
-\special{fp}%
-\special{pn 8}%
-\special{pa -271 847}\special{pa -231 915}\special{pa -224 837}\special{pa -248 842}%
-\special{pa -271 847}\special{sh 1}\special{ip}%
-\special{pn 1}%
-\special{pa -271 847}\special{pa -231 915}\special{pa -224 837}\special{pa -248 842}%
-\special{pa -271 847}\special{pa -231 915}%
-\special{fp}%
-\special{pn 8}%
-\special{pn 16}%
-\special{pa 173 549}\special{pa 342 681}%
-\special{fp}%
-\special{pn 8}%
-\special{pa 279 662}\special{pa 353 689}\special{pa 309 624}\special{pa 294 643}\special{pa 279 662}%
-\special{sh 1}\special{ip}%
-\special{pn 1}%
-\special{pa 279 662}\special{pa 353 689}\special{pa 309 624}\special{pa 294 643}\special{pa 279 662}%
-\special{pa 353 689}%
-\special{fp}%
-\special{pn 8}%
-\special{pn 16}%
-\special{pa 173 549}\special{pa 4 417}%
-\special{fp}%
-\special{pn 8}%
-\special{pa 67 436}\special{pa -7 409}\special{pa 37 474}\special{pa 52 455}\special{pa 67 436}%
-\special{sh 1}\special{ip}%
-\special{pn 1}%
-\special{pa 67 436}\special{pa -7 409}\special{pa 37 474}\special{pa 52 455}\special{pa 67 436}%
-\special{pa -7 409}%
-\special{fp}%
-\special{pn 8}%
-\special{pn 24}%
-\special{pa -2258 143}\special{pa -2423 143}%
-\special{fp}%
-\special{pn 8}%
-\special{pa -2362 119}\special{pa -2437 143}\special{pa -2362 168}\special{pa -2362 143}%
-\special{pa -2362 119}\special{sh 1}\special{ip}%
-\special{pn 1}%
-\special{pa -2362 119}\special{pa -2437 143}\special{pa -2362 168}\special{pa -2362 143}%
-\special{pa -2362 119}\special{pa -2437 143}%
-\special{fp}%
-\special{pn 8}%
-\special{pn 16}%
-\special{pa -909 -237}\special{pa -1052 -419}%
-\special{fp}%
-\special{pn 8}%
-\special{pa -995 -386}\special{pa -1061 -430}\special{pa -1034 -356}\special{pa -1015 -371}%
-\special{pa -995 -386}\special{sh 1}\special{ip}%
-\special{pn 1}%
-\special{pa -995 -386}\special{pa -1061 -430}\special{pa -1034 -356}\special{pa -1015 -371}%
-\special{pa -995 -386}\special{pa -1061 -430}%
-\special{fp}%
-\special{pn 8}%
-\special{pn 16}%
-\special{pa -907 808}\special{pa -775 597}%
-\special{fp}%
-\special{pn 8}%
-\special{pa -787 662}\special{pa -767 585}\special{pa -828 636}\special{pa -807 649}%
-\special{pa -787 662}\special{sh 1}\special{ip}%
-\special{pn 1}%
-\special{pa -787 662}\special{pa -767 585}\special{pa -828 636}\special{pa -807 649}%
-\special{pa -787 662}\special{pa -767 585}%
-\special{fp}%
-\special{pn 8}%
-\special{pn 16}%
-\special{pa -907 808}\special{pa -1040 1019}%
-\special{fp}%
-\special{pn 8}%
-\special{pa -1028 954}\special{pa -1047 1031}\special{pa -987 980}\special{pa -1007 967}%
-\special{pa -1028 954}\special{sh 1}\special{ip}%
-\special{pn 1}%
-\special{pa -1028 954}\special{pa -1047 1031}\special{pa -987 980}\special{pa -1007 967}%
-\special{pa -1028 954}\special{pa -1047 1031}%
-\special{fp}%
-\special{pn 8}%
-\Large%
-\settowidth{\Width}{KeTCindy概念図}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{KeTCindy概念図}\settodepth{\Depth}{KeTCindy概念図}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(-19.0000,6.0000){\hspace*{\Width}\raisebox{\Height}{KeTCindy概念図}}%
-%
-%
-\normalsize%
-\settowidth{\Width}{CindyScript}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{CindyScript}\settodepth{\Depth}{CindyScript}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(3.9200,2.8800){\hspace*{\Width}\raisebox{\Height}{CindyScript}}%
-%
-%
-\settowidth{\Width}{CindyLab}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{CindyLab}\settodepth{\Depth}{CindyLab}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(9.6800,4.5600){\hspace*{\Width}\raisebox{\Height}{CindyLab}}%
-%
-%
-\settowidth{\Width}{作図}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{作図}\settodepth{\Depth}{作図}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(8.6400,-1.2800){\hspace*{\Width}\raisebox{\Height}{作図}}%
-%
-%
-\settowidth{\Width}{KeTpic}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{KeTpic}\settodepth{\Depth}{KeTpic}\setlength{\Height}{-\Height}%
-\put(-18.6300,0.7900){\hspace*{\Width}\raisebox{\Height}{KeTpic}}%
-%
-%
-\settowidth{\Width}{R}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{R}\settodepth{\Depth}{R}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(-13.3800,-6.4600){\hspace*{\Width}\raisebox{\Height}{R}}%
-%
-%
-\settowidth{\Width}{Maxima}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{Maxima}\settodepth{\Depth}{Maxima}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(-1.5200,-8.3600){\hspace*{\Width}\raisebox{\Height}{Maxima}}%
-%
-%
-\settowidth{\Width}{Risa/Asir}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{Risa/Asir}\settodepth{\Depth}{Risa/Asir}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(4.5000,-6.6200){\hspace*{\Width}\raisebox{\Height}{Risa/Asir}}%
-%
-%
-\settowidth{\Width}{FriCAS}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{FriCAS}\settodepth{\Depth}{FriCAS}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(-10.0900,-9.3600){\hspace*{\Width}\raisebox{\Height}{FriCAS}}%
-%
-%
-\settowidth{\Width}{MeshLab}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{MeshLab}\settodepth{\Depth}{MeshLab}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(-11.6900,4.2400){\hspace*{\Width}\raisebox{\Height}{MeshLab}}%
-%
-%
-\Large%
-\settowidth{\Width}{KeTCindy}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{KeTCindy}\settodepth{\Depth}{KeTCindy}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(-3.7600,-1.0200){\hspace*{\Width}\raisebox{\Height}{KeTCindy}}%
-%
-%
-\settowidth{\Width}{TeX}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{TeX}\settodepth{\Depth}{TeX}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(-21.0400,-1.0600){\hspace*{\Width}\raisebox{\Height}{TeX}}%
-%
-%
-\settowidth{\Width}{Cinderella}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{Cinderella}\settodepth{\Depth}{Cinderella}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(2.0500,7.0000){\hspace*{\Width}\raisebox{\Height}{Cinderella}}%
-%
-%
-\settowidth{\Width}{Scilab}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{Scilab}\settodepth{\Depth}{Scilab}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(-15.2700,-1.0800){\hspace*{\Width}\raisebox{\Height}{Scilab}}%
-%
-%
-\end{picture}}% \ No newline at end of file
diff --git a/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/crosspoint.tex b/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/crosspoint.tex
deleted file mode 100644
index 2e720d48..00000000
--- a/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/crosspoint.tex
+++ /dev/null
@@ -1,68 +0,0 @@
-%%% test.tex 2014-10-17 10:46
-%%% test.sce 2014-10-17 10:46
-{\unitlength=5mm%
-\begin{picture}%
-( 8.00000, 8.00000)( -4.00000, -4.00000)%
-\special{pn 8}%
-%
-\settowidth{\Width}{A}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{A}\settodepth{\Depth}{A}\setlength{\Height}{\Depth}%
-\put(-0.6400,2.4800){\hspace*{\Width}\raisebox{\Height}{A}}%
-%
-%
-\settowidth{\Width}{B}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{B}\settodepth{\Depth}{B}\setlength{\Height}{-\Height}%
-\put(1.4300,-2.9400){\hspace*{\Width}\raisebox{\Height}{B}}%
-%
-%
-\special{pa -469 787}\special{pa -463 709}\special{pa -455 611}\special{pa -447 518}%
-\special{pa -439 430}\special{pa -431 345}\special{pa -423 265}\special{pa -415 189}%
-\special{pa -408 117}\special{pa -400 49}\special{pa -392 -16}\special{pa -384 -76}%
-\special{pa -376 -133}\special{pa -368 -186}\special{pa -360 -236}\special{pa -352 -282}%
-\special{pa -344 -324}\special{pa -336 -364}\special{pa -328 -400}\special{pa -321 -432}%
-\special{pa -313 -462}\special{pa -305 -489}\special{pa -297 -513}\special{pa -289 -533}%
-\special{pa -281 -552}\special{pa -273 -567}\special{pa -265 -580}\special{pa -257 -590}%
-\special{pa -249 -597}\special{pa -241 -603}\special{pa -233 -605}\special{pa -226 -606}%
-\special{pa -218 -605}\special{pa -210 -601}\special{pa -202 -595}\special{pa -194 -587}%
-\special{pa -186 -578}\special{pa -178 -567}\special{pa -170 -553}\special{pa -162 -539}%
-\special{pa -154 -522}\special{pa -146 -505}\special{pa -138 -485}\special{pa -131 -465}%
-\special{pa -123 -443}\special{pa -115 -420}\special{pa -107 -396}\special{pa -99 -371}%
-\special{pa -91 -345}\special{pa -83 -318}\special{pa -75 -290}\special{pa -67 -261}%
-\special{pa -59 -232}\special{pa -51 -202}\special{pa -44 -172}\special{pa -36 -141}%
-\special{pa -28 -110}\special{pa -20 -79}\special{pa -12 -47}\special{pa -4 -16}\special{pa 4 16}%
-\special{pa 12 47}\special{pa 20 79}\special{pa 28 110}\special{pa 36 141}\special{pa 44 172}%
-\special{pa 51 202}\special{pa 59 232}\special{pa 67 261}\special{pa 75 290}\special{pa 83 318}%
-\special{pa 91 345}\special{pa 99 371}\special{pa 107 396}\special{pa 115 420}\special{pa 123 443}%
-\special{pa 131 465}\special{pa 138 485}\special{pa 146 505}\special{pa 154 522}\special{pa 162 539}%
-\special{pa 170 553}\special{pa 178 567}\special{pa 186 578}\special{pa 194 587}\special{pa 202 595}%
-\special{pa 210 601}\special{pa 218 605}\special{pa 226 606}\special{pa 233 605}\special{pa 241 603}%
-\special{pa 249 597}\special{pa 257 590}\special{pa 265 580}\special{pa 273 567}\special{pa 281 552}%
-\special{pa 289 533}\special{pa 297 513}\special{pa 305 489}\special{pa 313 462}\special{pa 321 432}%
-\special{pa 328 400}\special{pa 336 364}\special{pa 344 324}\special{pa 352 282}\special{pa 360 236}%
-\special{pa 368 186}\special{pa 376 133}\special{pa 384 76}\special{pa 392 16}\special{pa 400 -49}%
-\special{pa 408 -117}\special{pa 415 -189}\special{pa 423 -265}\special{pa 431 -345}%
-\special{pa 439 -430}\special{pa 447 -518}\special{pa 455 -611}\special{pa 463 -709}%
-\special{pa 469 -787}%
-\special{fp}%
-\special{pa -256 -787}\special{pa 356 787}%
-\special{fp}%
-\special{pa -787 0}\special{pa 787 0}%
-\special{fp}%
-\special{pa 0 787}\special{pa 0 -787}%
-\special{fp}%
-\settowidth{\Width}{$x$}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{$x$}\settodepth{\Depth}{$x$}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(4.0500,0.0000){\hspace*{\Width}\raisebox{\Height}{$x$}}%
-%
-%
-\settowidth{\Width}{$y$}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{$y$}\settodepth{\Depth}{$y$}\setlength{\Height}{\Depth}%
-\put(0.0000,4.0500){\hspace*{\Width}\raisebox{\Height}{$y$}}%
-%
-%
-\settowidth{\Width}{O}\setlength{\Width}{-1\Width}%
-\settoheight{\Height}{O}\settodepth{\Depth}{O}\setlength{\Height}{-\Height}%
-\put(-0.0500,-0.0500){\hspace*{\Width}\raisebox{\Height}{O}}%
-%
-%
-\end{picture}}% \ No newline at end of file
diff --git a/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/deffun.tex b/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/deffun.tex
deleted file mode 100644
index 764d4ec5..00000000
--- a/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/deffun.tex
+++ /dev/null
@@ -1,48 +0,0 @@
-%%% test.tex 2014-10-16 22:5
-%%% test.sce 2014-10-16 22:5
-{\unitlength=1cm%
-\begin{picture}%
-( 6.00000, 3.00000)( -3.00000, -1.00000)%
-\special{pn 8}%
-%
-\settowidth{\Width}{A}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{A}\settodepth{\Depth}{A}\setlength{\Height}{\Depth}%
-\put(1.4400,0.3900){\hspace*{\Width}\raisebox{\Height}{A}}%
-%
-%
-\special{pa -1181 -39}\special{pa -1133 -42}\special{pa -1085 -46}\special{pa -1036 -50}%
-\special{pa -988 -54}\special{pa -940 -59}\special{pa -892 -64}\special{pa -844 -70}%
-\special{pa -795 -77}\special{pa -747 -86}\special{pa -699 -95}\special{pa -651 -105}%
-\special{pa -603 -118}\special{pa -554 -132}\special{pa -506 -148}\special{pa -458 -167}%
-\special{pa -410 -189}\special{pa -362 -214}\special{pa -313 -241}\special{pa -265 -271}%
-\special{pa -217 -302}\special{pa -169 -333}\special{pa -121 -360}\special{pa -72 -381}%
-\special{pa -24 -392}\special{pa 24 -392}\special{pa 72 -381}\special{pa 121 -360}%
-\special{pa 169 -333}\special{pa 217 -302}\special{pa 265 -271}\special{pa 313 -241}%
-\special{pa 362 -214}\special{pa 410 -189}\special{pa 458 -167}\special{pa 506 -148}%
-\special{pa 554 -132}\special{pa 603 -118}\special{pa 651 -105}\special{pa 699 -95}%
-\special{pa 747 -86}\special{pa 795 -77}\special{pa 844 -70}\special{pa 892 -64}\special{pa 940 -59}%
-\special{pa 988 -54}\special{pa 1036 -50}\special{pa 1085 -46}\special{pa 1133 -42}%
-\special{pa 1181 -39}%
-\special{fp}%
-\special{pa -1181 -687}\special{pa 1181 69}%
-\special{fp}%
-\special{pa -1181 0}\special{pa 1181 0}%
-\special{fp}%
-\special{pa 0 394}\special{pa 0 -787}%
-\special{fp}%
-\settowidth{\Width}{$x$}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{$x$}\settodepth{\Depth}{$x$}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(3.0500,0.0000){\hspace*{\Width}\raisebox{\Height}{$x$}}%
-%
-%
-\settowidth{\Width}{$y$}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{$y$}\settodepth{\Depth}{$y$}\setlength{\Height}{\Depth}%
-\put(0.0000,2.0500){\hspace*{\Width}\raisebox{\Height}{$y$}}%
-%
-%
-\settowidth{\Width}{O}\setlength{\Width}{-1\Width}%
-\settoheight{\Height}{O}\settodepth{\Depth}{O}\setlength{\Height}{-\Height}%
-\put(-0.0500,-0.0500){\hspace*{\Width}\raisebox{\Height}{O}}%
-%
-%
-\end{picture}}% \ No newline at end of file
diff --git a/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/deqplot1.tex b/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/deqplot1.tex
deleted file mode 100644
index 6156fda6..00000000
--- a/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/deqplot1.tex
+++ /dev/null
@@ -1,56 +0,0 @@
-%%% fig.tex 2015-8-9 21:16
-%%% fig.sce 2015-8-9 21:16
-{\unitlength=6mm%
-\begin{picture}%
-( 9.00000, 4.00000)( -4.00000, -2.00000)%
-\special{pn 8}%
-%
-\special{pa -911 178}\special{pa -868 204}\special{pa -824 222}\special{pa -781 233}%
-\special{pa -738 236}\special{pa -694 231}\special{pa -651 219}\special{pa -607 199}%
-\special{pa -564 172}\special{pa -521 140}\special{pa -477 103}\special{pa -434 62}%
-\special{pa -390 19}\special{pa -347 -24}\special{pa -304 -66}\special{pa -260 -107}%
-\special{pa -217 -143}\special{pa -174 -175}\special{pa -130 -201}\special{pa -87 -220}%
-\special{pa -43 -232}\special{pa 0 -236}\special{pa 43 -232}\special{pa 87 -220}\special{pa 130 -201}%
-\special{pa 174 -175}\special{pa 217 -143}\special{pa 260 -107}\special{pa 304 -66}%
-\special{pa 347 -24}\special{pa 390 19}\special{pa 434 62}\special{pa 477 103}\special{pa 521 140}%
-\special{pa 564 172}\special{pa 607 199}\special{pa 651 219}\special{pa 694 231}\special{pa 738 236}%
-\special{pa 781 233}\special{pa 824 222}\special{pa 868 204}\special{pa 911 178}\special{pa 955 147}%
-\special{pa 998 111}\special{pa 1041 71}\special{pa 1085 28}\special{pa 1128 -15}%
-\special{pa 1171 -58}%
-\special{fp}%
-\special{pn 8}%
-\special{pa -945 0}\special{pa 1181 0}%
-\special{fp}%
-\special{pn 8}%
-\special{pa 1106 24}\special{pa 1181 0}\special{pa 1106 -24}\special{pa 1106 0}\special{pa 1106 24}%
-\special{sh 1}\special{ip}%
-\special{pn 8}%
-\special{pa 1106 24}\special{pa 1181 0}\special{pa 1106 -24}\special{pa 1106 0}\special{pa 1106 24}%
-\special{fp}%
-\special{pn 8}%
-\special{pn 8}%
-\special{pa 0 472}\special{pa 0 -472}%
-\special{fp}%
-\special{pn 8}%
-\special{pa 24 -398}\special{pa 0 -472}\special{pa -24 -398}\special{pa 0 -398}\special{pa 24 -398}%
-\special{sh 1}\special{ip}%
-\special{pn 8}%
-\special{pa 24 -398}\special{pa 0 -472}\special{pa -24 -398}\special{pa 0 -398}\special{pa 24 -398}%
-\special{fp}%
-\special{pn 8}%
-\settowidth{\Width}{$x$}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{$x$}\settodepth{\Depth}{$x$}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(5.0500,0.0000){\hspace*{\Width}\raisebox{\Height}{$x$}}%
-%
-%
-\settowidth{\Width}{$y$}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{$y$}\settodepth{\Depth}{$y$}\setlength{\Height}{\Depth}%
-\put(0.0000,2.0500){\hspace*{\Width}\raisebox{\Height}{$y$}}%
-%
-%
-\settowidth{\Width}{O}\setlength{\Width}{-1\Width}%
-\settoheight{\Height}{O}\settodepth{\Depth}{O}\setlength{\Height}{-\Height}%
-\put(-0.0500,-0.0500){\hspace*{\Width}\raisebox{\Height}{O}}%
-%
-%
-\end{picture}}% \ No newline at end of file
diff --git a/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/deqplot2.tex b/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/deqplot2.tex
deleted file mode 100644
index 953302ea..00000000
--- a/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/deqplot2.tex
+++ /dev/null
@@ -1,56 +0,0 @@
-%%% fig.tex 2015-8-9 21:18
-%%% fig.sce 2015-8-9 21:18
-{\unitlength=6mm%
-\begin{picture}%
-( 9.00000, 4.00000)( -4.00000, -2.00000)%
-\special{pn 8}%
-%
-\special{pa -911 -5}\special{pa -868 -6}\special{pa -824 -7}\special{pa -781 -8}\special{pa -738 -10}%
-\special{pa -694 -12}\special{pa -651 -14}\special{pa -607 -17}\special{pa -564 -20}%
-\special{pa -521 -23}\special{pa -477 -28}\special{pa -434 -32}\special{pa -390 -38}%
-\special{pa -347 -44}\special{pa -304 -51}\special{pa -260 -59}\special{pa -217 -67}%
-\special{pa -174 -77}\special{pa -130 -86}\special{pa -87 -97}\special{pa -43 -107}%
-\special{pa 0 -118}\special{pa 43 -129}\special{pa 87 -140}\special{pa 130 -150}\special{pa 174 -160}%
-\special{pa 217 -169}\special{pa 260 -177}\special{pa 304 -185}\special{pa 347 -192}%
-\special{pa 390 -198}\special{pa 434 -204}\special{pa 477 -209}\special{pa 521 -213}%
-\special{pa 564 -216}\special{pa 607 -219}\special{pa 651 -222}\special{pa 694 -224}%
-\special{pa 738 -226}\special{pa 781 -228}\special{pa 824 -229}\special{pa 868 -230}%
-\special{pa 911 -231}\special{pa 955 -232}\special{pa 998 -233}\special{pa 1041 -233}%
-\special{pa 1085 -234}\special{pa 1128 -234}\special{pa 1171 -235}%
-\special{fp}%
-\special{pn 8}%
-\special{pa -945 0}\special{pa 1181 0}%
-\special{fp}%
-\special{pn 8}%
-\special{pa 1106 24}\special{pa 1181 0}\special{pa 1106 -24}\special{pa 1106 0}\special{pa 1106 24}%
-\special{sh 1}\special{ip}%
-\special{pn 8}%
-\special{pa 1106 24}\special{pa 1181 0}\special{pa 1106 -24}\special{pa 1106 0}\special{pa 1106 24}%
-\special{fp}%
-\special{pn 8}%
-\special{pn 8}%
-\special{pa 0 472}\special{pa 0 -472}%
-\special{fp}%
-\special{pn 8}%
-\special{pa 24 -398}\special{pa 0 -472}\special{pa -24 -398}\special{pa 0 -398}\special{pa 24 -398}%
-\special{sh 1}\special{ip}%
-\special{pn 8}%
-\special{pa 24 -398}\special{pa 0 -472}\special{pa -24 -398}\special{pa 0 -398}\special{pa 24 -398}%
-\special{fp}%
-\special{pn 8}%
-\settowidth{\Width}{$x$}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{$x$}\settodepth{\Depth}{$x$}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(5.0500,0.0000){\hspace*{\Width}\raisebox{\Height}{$x$}}%
-%
-%
-\settowidth{\Width}{$y$}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{$y$}\settodepth{\Depth}{$y$}\setlength{\Height}{\Depth}%
-\put(0.0000,2.0500){\hspace*{\Width}\raisebox{\Height}{$y$}}%
-%
-%
-\settowidth{\Width}{O}\setlength{\Width}{-1\Width}%
-\settoheight{\Height}{O}\settodepth{\Depth}{O}\setlength{\Height}{-\Height}%
-\put(-0.0500,-0.0500){\hspace*{\Width}\raisebox{\Height}{O}}%
-%
-%
-\end{picture}}% \ No newline at end of file
diff --git a/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/deqplot3.tex b/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/deqplot3.tex
deleted file mode 100644
index 8b6626e4..00000000
--- a/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/deqplot3.tex
+++ /dev/null
@@ -1,69 +0,0 @@
-%%% fig.tex 2015-8-9 21:20
-%%% fig.sce 2015-8-9 21:20
-{\unitlength=8mm%
-\begin{picture}%
-( 5.15000, 2.67000)( -1.09000, -0.35000)%
-\special{pn 8}%
-%
-\special{pa 202 -166}\special{pa 233 -161}\special{pa 271 -159}\special{pa 315 -157}%
-\special{pa 366 -159}\special{pa 425 -162}\special{pa 491 -169}\special{pa 562 -180}%
-\special{pa 636 -195}\special{pa 707 -216}\special{pa 767 -244}\special{pa 807 -280}%
-\special{pa 818 -324}\special{pa 792 -373}\special{pa 730 -425}\special{pa 642 -473}%
-\special{pa 540 -513}\special{pa 440 -539}\special{pa 352 -552}\special{pa 280 -552}%
-\special{pa 224 -542}\special{pa 182 -524}\special{pa 150 -502}\special{pa 127 -477}%
-\special{pa 110 -451}\special{pa 98 -424}\special{pa 89 -398}\special{pa 83 -372}%
-\special{pa 80 -348}\special{pa 78 -325}\special{pa 78 -304}\special{pa 80 -284}\special{pa 83 -265}%
-\special{pa 88 -248}\special{pa 94 -233}\special{pa 103 -218}\special{pa 114 -206}%
-\special{pa 127 -195}\special{pa 143 -185}\special{pa 163 -176}\special{pa 187 -169}%
-\special{pa 216 -164}\special{pa 250 -160}\special{pa 290 -158}\special{pa 338 -158}%
-\special{pa 393 -160}\special{pa 455 -165}\special{pa 523 -174}\special{pa 596 -186}%
-\special{pa 669 -204}\special{pa 736 -228}\special{pa 789 -260}\special{pa 816 -300}%
-\special{pa 811 -346}\special{pa 768 -397}\special{pa 692 -448}\special{pa 595 -493}%
-\special{pa 493 -527}\special{pa 398 -547}\special{pa 317 -553}\special{pa 253 -548}%
-\special{pa 203 -534}\special{pa 166 -515}\special{pa 138 -491}\special{pa 118 -465}%
-\special{pa 104 -438}\special{pa 93 -412}\special{pa 86 -386}\special{pa 81 -361}%
-\special{pa 79 -337}\special{pa 78 -315}\special{pa 79 -294}\special{pa 81 -275}\special{pa 85 -257}%
-\special{pa 91 -241}\special{pa 98 -226}\special{pa 108 -212}\special{pa 119 -200}%
-\special{pa 134 -190}\special{pa 152 -181}\special{pa 173 -173}\special{pa 199 -166}%
-\special{pa 231 -162}\special{pa 268 -159}\special{pa 311 -157}\special{pa 362 -158}%
-\special{pa 420 -162}\special{pa 486 -169}\special{pa 557 -179}\special{pa 630 -194}%
-\special{pa 702 -214}\special{pa 763 -242}\special{pa 805 -277}\special{pa 818 -320}%
-\special{pa 795 -369}\special{pa 736 -421}\special{pa 649 -470}\special{pa 548 -510}%
-\special{pa 448 -538}%
-\special{fp}%
-\special{pn 8}%
-\special{pa -343 0}\special{pa 1279 0}%
-\special{fp}%
-\special{pn 8}%
-\special{pa 1204 24}\special{pa 1279 0}\special{pa 1204 -24}\special{pa 1204 0}\special{pa 1204 24}%
-\special{sh 1}\special{ip}%
-\special{pn 8}%
-\special{pa 1204 24}\special{pa 1279 0}\special{pa 1204 -24}\special{pa 1204 0}\special{pa 1204 24}%
-\special{fp}%
-\special{pn 8}%
-\special{pn 8}%
-\special{pa 0 110}\special{pa 0 -731}%
-\special{fp}%
-\special{pn 8}%
-\special{pa 24 -656}\special{pa 0 -731}\special{pa -24 -656}\special{pa 0 -656}\special{pa 24 -656}%
-\special{sh 1}\special{ip}%
-\special{pn 8}%
-\special{pa 24 -656}\special{pa 0 -731}\special{pa -24 -656}\special{pa 0 -656}\special{pa 24 -656}%
-\special{fp}%
-\special{pn 8}%
-\settowidth{\Width}{$x$}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{$x$}\settodepth{\Depth}{$x$}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(4.1100,0.0000){\hspace*{\Width}\raisebox{\Height}{$x$}}%
-%
-%
-\settowidth{\Width}{$y$}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{$y$}\settodepth{\Depth}{$y$}\setlength{\Height}{\Depth}%
-\put(0.0000,2.3700){\hspace*{\Width}\raisebox{\Height}{$y$}}%
-%
-%
-\settowidth{\Width}{O}\setlength{\Width}{-1\Width}%
-\settoheight{\Height}{O}\settodepth{\Depth}{O}\setlength{\Height}{-\Height}%
-\put(-0.0500,-0.0500){\hspace*{\Width}\raisebox{\Height}{O}}%
-%
-%
-\end{picture}}% \ No newline at end of file
diff --git a/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/derivative.tex b/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/derivative.tex
deleted file mode 100644
index 61b79121..00000000
--- a/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/derivative.tex
+++ /dev/null
@@ -1,63 +0,0 @@
-%%% test.tex 2014-10-22 20:20
-%%% test.sce 2014-10-22 20:20
-{\unitlength=5mm%
-\begin{picture}%
-( 8.00000, 8.00000)( -4.00000, -4.00000)%
-\special{pn 8}%
-%
-\settowidth{\Width}{A}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{A}\settodepth{\Depth}{A}\setlength{\Height}{\Depth}%
-\put(-0.9500,3.0500){\hspace*{\Width}\raisebox{\Height}{A}}%
-%
-%
-\special{pa -469 787}\special{pa -463 709}\special{pa -455 611}\special{pa -447 518}%
-\special{pa -439 430}\special{pa -431 345}\special{pa -423 265}\special{pa -415 189}%
-\special{pa -408 117}\special{pa -400 49}\special{pa -392 -16}\special{pa -384 -76}%
-\special{pa -376 -133}\special{pa -368 -186}\special{pa -360 -236}\special{pa -352 -282}%
-\special{pa -344 -324}\special{pa -336 -364}\special{pa -328 -400}\special{pa -321 -432}%
-\special{pa -313 -462}\special{pa -305 -489}\special{pa -297 -513}\special{pa -289 -533}%
-\special{pa -281 -552}\special{pa -273 -567}\special{pa -265 -580}\special{pa -257 -590}%
-\special{pa -249 -597}\special{pa -241 -603}\special{pa -233 -605}\special{pa -226 -606}%
-\special{pa -218 -605}\special{pa -210 -601}\special{pa -202 -595}\special{pa -194 -587}%
-\special{pa -186 -578}\special{pa -178 -567}\special{pa -170 -553}\special{pa -162 -539}%
-\special{pa -154 -522}\special{pa -146 -505}\special{pa -138 -485}\special{pa -131 -465}%
-\special{pa -123 -443}\special{pa -115 -420}\special{pa -107 -396}\special{pa -99 -371}%
-\special{pa -91 -345}\special{pa -83 -318}\special{pa -75 -290}\special{pa -67 -261}%
-\special{pa -59 -232}\special{pa -51 -202}\special{pa -44 -172}\special{pa -36 -141}%
-\special{pa -28 -110}\special{pa -20 -79}\special{pa -12 -47}\special{pa -4 -16}\special{pa 4 16}%
-\special{pa 12 47}\special{pa 20 79}\special{pa 28 110}\special{pa 36 141}\special{pa 44 172}%
-\special{pa 51 202}\special{pa 59 232}\special{pa 67 261}\special{pa 75 290}\special{pa 83 318}%
-\special{pa 91 345}\special{pa 99 371}\special{pa 107 396}\special{pa 115 420}\special{pa 123 443}%
-\special{pa 131 465}\special{pa 138 485}\special{pa 146 505}\special{pa 154 522}\special{pa 162 539}%
-\special{pa 170 553}\special{pa 178 567}\special{pa 186 578}\special{pa 194 587}\special{pa 202 595}%
-\special{pa 210 601}\special{pa 218 605}\special{pa 226 606}\special{pa 233 605}\special{pa 241 603}%
-\special{pa 249 597}\special{pa 257 590}\special{pa 265 580}\special{pa 273 567}\special{pa 281 552}%
-\special{pa 289 533}\special{pa 297 513}\special{pa 305 489}\special{pa 313 462}\special{pa 321 432}%
-\special{pa 328 400}\special{pa 336 364}\special{pa 344 324}\special{pa 352 282}\special{pa 360 236}%
-\special{pa 368 186}\special{pa 376 133}\special{pa 384 76}\special{pa 392 16}\special{pa 400 -49}%
-\special{pa 408 -117}\special{pa 415 -189}\special{pa 423 -265}\special{pa 431 -345}%
-\special{pa 439 -430}\special{pa 447 -518}\special{pa 455 -611}\special{pa 463 -709}%
-\special{pa 469 -787}%
-\special{fp}%
-\special{pa -394 -787}\special{pa 787 394}%
-\special{fp}%
-\special{pa -787 0}\special{pa 787 0}%
-\special{fp}%
-\special{pa 0 787}\special{pa 0 -787}%
-\special{fp}%
-\settowidth{\Width}{$x$}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{$x$}\settodepth{\Depth}{$x$}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(4.0500,0.0000){\hspace*{\Width}\raisebox{\Height}{$x$}}%
-%
-%
-\settowidth{\Width}{$y$}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{$y$}\settodepth{\Depth}{$y$}\setlength{\Height}{\Depth}%
-\put(0.0000,4.0500){\hspace*{\Width}\raisebox{\Height}{$y$}}%
-%
-%
-\settowidth{\Width}{O}\setlength{\Width}{-1\Width}%
-\settoheight{\Height}{O}\settodepth{\Depth}{O}\setlength{\Height}{-\Height}%
-\put(-0.0500,-0.0500){\hspace*{\Width}\raisebox{\Height}{O}}%
-%
-%
-\end{picture}}% \ No newline at end of file
diff --git a/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/drawpoint.tex b/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/drawpoint.tex
deleted file mode 100644
index 5e36da8d..00000000
--- a/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/drawpoint.tex
+++ /dev/null
@@ -1,14 +0,0 @@
-%%% test.tex 2014-10-21 18:7
-%%% test.sce 2014-10-21 18:7
-{\unitlength=1cm%
-\begin{picture}%
-( 5.00000, 2.00000)( -1.00000, -1.00000)%
-\special{pn 8}%
-%
-\special{pa 1198 -17}\special{pa 1190 -22}\special{pa 1180 -24}\special{pa 1170 -21}%
-\special{pa 1163 -15}\special{pa 1158 -6}\special{pa 1158 4}\special{pa 1161 13}\special{pa 1168 20}%
-\special{pa 1177 23}\special{pa 1187 23}\special{pa 1196 18}\special{pa 1202 11}\special{pa 1205 1}%
-\special{pa 1203 -8}\special{pa 1198 -17}\special{sh 0}\special{fp}%
-\special{pa 0 0}\special{pa 1181 0}%
-\special{fp}%
-\end{picture}}% \ No newline at end of file
diff --git a/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/drwxy.tex b/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/drwxy.tex
deleted file mode 100644
index b9021de3..00000000
--- a/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/drwxy.tex
+++ /dev/null
@@ -1,112 +0,0 @@
-%%% drwxy.tex 2014-11-7 18:44
-%%% drwxy.sce 2014-11-7 17:31
-{\unitlength=1cm%
-\begin{picture}%
-( 12.00000, 4.00000)( -6.00000, -2.00000)%
-\special{pn 8}%
-%
-\special{pa -1215 -22}\special{pa -1224 -29}\special{pa -1235 -31}\special{pa -1247 -30}%
-\special{pa -1257 -24}\special{pa -1264 -15}\special{pa -1268 -4}\special{pa -1268 7}%
-\special{pa -1263 18}\special{pa -1255 26}\special{pa -1244 31}\special{pa -1232 31}%
-\special{pa -1222 28}\special{pa -1213 20}\special{pa -1207 10}\special{pa -1205 -1}%
-\special{pa -1208 -13}\special{pa -1215 -22}\special{sh 0}\special{fp}%
-\special{pa -2362 0}\special{pa 2362 0}%
-\special{fp}%
-\special{pa 0 787}\special{pa 0 -787}%
-\special{fp}%
-\settowidth{\Width}{$x$}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{$x$}\settodepth{\Depth}{$x$}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(6.0500,0.0000){\hspace*{\Width}\raisebox{\Height}{$x$}}%
-%
-%
-\settowidth{\Width}{$y$}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{$y$}\settodepth{\Depth}{$y$}\setlength{\Height}{\Depth}%
-\put(0.0000,2.0500){\hspace*{\Width}\raisebox{\Height}{$y$}}%
-%
-%
-\settowidth{\Width}{O}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{O}\settodepth{\Depth}{O}\setlength{\Height}{-\Height}%
-\put(0.0500,-0.0500){\hspace*{\Width}\raisebox{\Height}{O}}%
-%
-%
-\special{pa -2362 -110}\special{pa -2346 -125}\special{pa -2331 -140}\special{pa -2315 -155}%
-\special{pa -2299 -169}\special{pa -2283 -183}\special{pa -2267 -197}\special{pa -2252 -211}%
-\special{pa -2236 -224}\special{pa -2220 -237}\special{pa -2204 -249}\special{pa -2188 -261}%
-\special{pa -2173 -273}\special{pa -2157 -284}\special{pa -2141 -294}\special{pa -2125 -305}%
-\special{pa -2109 -314}\special{pa -2094 -324}\special{pa -2078 -332}\special{pa -2062 -341}%
-\special{pa -2046 -348}\special{pa -2030 -355}\special{pa -2015 -362}\special{pa -1999 -368}%
-\special{pa -1983 -373}\special{pa -1967 -378}\special{pa -1951 -382}\special{pa -1936 -386}%
-\special{pa -1920 -388}\special{pa -1904 -391}\special{pa -1888 -392}\special{pa -1872 -393}%
-\special{pa -1857 -394}\special{pa -1841 -393}\special{pa -1825 -393}\special{pa -1809 -391}%
-\special{pa -1793 -389}\special{pa -1778 -386}\special{pa -1762 -383}\special{pa -1746 -379}%
-\special{pa -1730 -374}\special{pa -1714 -369}\special{pa -1699 -363}\special{pa -1683 -357}%
-\special{pa -1667 -350}\special{pa -1651 -342}\special{pa -1635 -334}\special{pa -1620 -325}%
-\special{pa -1604 -316}\special{pa -1588 -306}\special{pa -1572 -296}\special{pa -1556 -286}%
-\special{pa -1541 -274}\special{pa -1525 -263}\special{pa -1509 -251}\special{pa -1493 -239}%
-\special{pa -1477 -226}\special{pa -1462 -213}\special{pa -1446 -199}\special{pa -1430 -185}%
-\special{pa -1414 -171}\special{pa -1398 -157}\special{pa -1383 -142}\special{pa -1367 -128}%
-\special{pa -1351 -113}\special{pa -1335 -97}\special{pa -1319 -82}\special{pa -1304 -66}%
-\special{pa -1288 -51}\special{pa -1272 -35}\special{pa -1256 -19}\special{pa -1240 -4}%
-\special{pa -1225 12}\special{pa -1209 28}\special{pa -1193 44}\special{pa -1177 59}%
-\special{pa -1161 75}\special{pa -1146 90}\special{pa -1130 106}\special{pa -1114 121}%
-\special{pa -1098 136}\special{pa -1082 151}\special{pa -1067 165}\special{pa -1051 179}%
-\special{pa -1035 193}\special{pa -1019 207}\special{pa -1003 220}\special{pa -988 233}%
-\special{pa -972 246}\special{pa -956 258}\special{pa -940 269}\special{pa -924 281}%
-\special{pa -909 292}\special{pa -893 302}\special{pa -877 312}\special{pa -861 321}%
-\special{pa -845 330}\special{pa -830 338}\special{pa -814 346}\special{pa -798 353}%
-\special{pa -782 360}\special{pa -766 366}\special{pa -751 372}\special{pa -735 377}%
-\special{pa -719 381}\special{pa -703 385}\special{pa -687 388}\special{pa -672 390}%
-\special{pa -656 392}\special{pa -640 393}\special{pa -624 394}\special{pa -608 394}%
-\special{pa -593 393}\special{pa -577 391}\special{pa -561 390}\special{pa -545 387}%
-\special{pa -529 384}\special{pa -514 380}\special{pa -498 375}\special{pa -482 370}%
-\special{pa -466 365}\special{pa -450 358}\special{pa -435 352}\special{pa -419 344}%
-\special{pa -403 336}\special{pa -387 328}\special{pa -371 319}\special{pa -356 309}%
-\special{pa -340 299}\special{pa -324 289}\special{pa -308 278}\special{pa -292 266}%
-\special{pa -277 254}\special{pa -261 242}\special{pa -245 229}\special{pa -229 216}%
-\special{pa -213 203}\special{pa -198 189}\special{pa -182 175}\special{pa -166 161}%
-\special{pa -150 146}\special{pa -134 132}\special{pa -119 117}\special{pa -103 102}%
-\special{pa -87 86}\special{pa -71 71}\special{pa -55 55}\special{pa -40 39}\special{pa -24 24}%
-\special{pa -8 8}\special{pa 8 -8}\special{pa 24 -24}\special{pa 40 -39}\special{pa 55 -55}%
-\special{pa 71 -71}\special{pa 87 -86}\special{pa 103 -102}\special{pa 119 -117}\special{pa 134 -132}%
-\special{pa 150 -146}\special{pa 166 -161}\special{pa 182 -175}\special{pa 198 -189}%
-\special{pa 213 -203}\special{pa 229 -216}\special{pa 245 -229}\special{pa 261 -242}%
-\special{pa 277 -254}\special{pa 292 -266}\special{pa 308 -278}\special{pa 324 -289}%
-\special{pa 340 -299}\special{pa 356 -309}\special{pa 371 -319}\special{pa 387 -328}%
-\special{pa 403 -336}\special{pa 419 -344}\special{pa 435 -352}\special{pa 450 -358}%
-\special{pa 466 -365}\special{pa 482 -370}\special{pa 498 -375}\special{pa 514 -380}%
-\special{pa 529 -384}\special{pa 545 -387}\special{pa 561 -390}\special{pa 577 -391}%
-\special{pa 593 -393}\special{pa 608 -394}\special{pa 624 -394}\special{pa 640 -393}%
-\special{pa 656 -392}\special{pa 672 -390}\special{pa 687 -388}\special{pa 703 -385}%
-\special{pa 719 -381}\special{pa 735 -377}\special{pa 751 -372}\special{pa 766 -366}%
-\special{pa 782 -360}\special{pa 798 -353}\special{pa 814 -346}\special{pa 830 -338}%
-\special{pa 845 -330}\special{pa 861 -321}\special{pa 877 -312}\special{pa 893 -302}%
-\special{pa 909 -292}\special{pa 924 -281}\special{pa 940 -269}\special{pa 956 -258}%
-\special{pa 972 -246}\special{pa 988 -233}\special{pa 1003 -220}\special{pa 1019 -207}%
-\special{pa 1035 -193}\special{pa 1051 -179}\special{pa 1067 -165}\special{pa 1082 -151}%
-\special{pa 1098 -136}\special{pa 1114 -121}\special{pa 1130 -106}\special{pa 1146 -90}%
-\special{pa 1161 -75}\special{pa 1177 -59}\special{pa 1193 -44}\special{pa 1209 -28}%
-\special{pa 1225 -12}\special{pa 1240 4}\special{pa 1256 19}\special{pa 1272 35}\special{pa 1288 51}%
-\special{pa 1304 66}\special{pa 1319 82}\special{pa 1335 97}\special{pa 1351 113}%
-\special{pa 1367 128}\special{pa 1383 142}\special{pa 1398 157}\special{pa 1414 171}%
-\special{pa 1430 185}\special{pa 1446 199}\special{pa 1462 213}\special{pa 1477 226}%
-\special{pa 1493 239}\special{pa 1509 251}\special{pa 1525 263}\special{pa 1541 274}%
-\special{pa 1556 286}\special{pa 1572 296}\special{pa 1588 306}\special{pa 1604 316}%
-\special{pa 1620 325}\special{pa 1635 334}\special{pa 1651 342}\special{pa 1667 350}%
-\special{pa 1683 357}\special{pa 1699 363}\special{pa 1714 369}\special{pa 1730 374}%
-\special{pa 1746 379}\special{pa 1762 383}\special{pa 1778 386}\special{pa 1793 389}%
-\special{pa 1809 391}\special{pa 1825 393}\special{pa 1841 393}\special{pa 1857 394}%
-\special{pa 1872 393}\special{pa 1888 392}\special{pa 1904 391}\special{pa 1920 388}%
-\special{pa 1936 386}\special{pa 1951 382}\special{pa 1967 378}\special{pa 1983 373}%
-\special{pa 1999 368}\special{pa 2015 362}\special{pa 2030 355}\special{pa 2046 348}%
-\special{pa 2062 341}\special{pa 2078 332}\special{pa 2094 324}\special{pa 2109 314}%
-\special{pa 2125 305}\special{pa 2141 294}\special{pa 2157 284}\special{pa 2173 273}%
-\special{pa 2188 261}\special{pa 2204 249}\special{pa 2220 237}\special{pa 2236 224}%
-\special{pa 2252 211}\special{pa 2267 197}\special{pa 2283 183}\special{pa 2299 169}%
-\special{pa 2315 155}\special{pa 2331 140}\special{pa 2346 125}\special{pa 2362 110}%
-\special{fp}%
-\special{pa 1259 -22}\special{pa 1250 -29}\special{pa 1238 -31}\special{pa 1227 -30}%
-\special{pa 1217 -24}\special{pa 1209 -15}\special{pa 1206 -4}\special{pa 1206 7}%
-\special{pa 1211 18}\special{pa 1219 26}\special{pa 1230 31}\special{pa 1241 31}\special{pa 1252 28}%
-\special{pa 1261 20}\special{pa 1267 10}\special{pa 1268 -1}\special{pa 1266 -13}%
-\special{pa 1259 -22}\special{sh 0}\special{fp}%
-\end{picture}}% \ No newline at end of file
diff --git a/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/ellipseplot1.tex b/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/ellipseplot1.tex
deleted file mode 100644
index ee58c7fb..00000000
--- a/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/ellipseplot1.tex
+++ /dev/null
@@ -1,92 +0,0 @@
-%%% fig.tex 2015-8-10 9:24
-%%% fig.sce 2015-8-10 9:24
-{\unitlength=8mm%
-\begin{picture}%
-( 7.62000, 5.82000)( -3.62000, -2.82000)%
-\special{pn 8}%
-%
-\special{pa 915 0}\special{pa 908 -85}\special{pa 886 -169}\special{pa 849 -249}\special{pa 798 -326}%
-\special{pa 734 -397}\special{pa 658 -462}\special{pa 571 -519}\special{pa 475 -568}%
-\special{pa 371 -607}\special{pa 260 -637}\special{pa 146 -656}\special{pa 29 -664}%
-\special{pa -88 -661}\special{pa -204 -648}\special{pa -316 -623}\special{pa -423 -589}%
-\special{pa -524 -545}\special{pa -615 -492}\special{pa -697 -431}\special{pa -767 -362}%
-\special{pa -825 -288}\special{pa -869 -209}\special{pa -899 -127}\special{pa -914 -43}%
-\special{pa -914 43}\special{pa -899 127}\special{pa -869 209}\special{pa -825 288}%
-\special{pa -767 362}\special{pa -697 431}\special{pa -615 492}\special{pa -524 545}%
-\special{pa -423 589}\special{pa -316 623}\special{pa -204 648}\special{pa -88 661}%
-\special{pa 29 664}\special{pa 146 656}\special{pa 260 637}\special{pa 371 607}\special{pa 475 568}%
-\special{pa 571 519}\special{pa 658 462}\special{pa 734 397}\special{pa 798 326}\special{pa 849 249}%
-\special{pa 886 169}\special{pa 908 85}\special{pa 915 0}%
-\special{fp}%
-\special{pa -59 888}\special{pa 290 -945}%
-\special{fp}%
-\special{pa -1140 -904}\special{pa 1260 -447}%
-\special{fp}%
-\special{pa -630 0}\special{pa 207 -624}%
-\special{fp}%
-\special{pa 187 -578}\special{pa 232 -643}\special{pa 158 -617}\special{pa 172 -598}%
-\special{pa 187 -578}\special{sh 1}\special{ip}%
-\special{pn 8}%
-\special{pa 187 -578}\special{pa 232 -643}\special{pa 158 -617}\special{pa 172 -598}%
-\special{pa 187 -578}%
-\special{fp}%
-\special{pn 8}%
-\special{pa 232 -643}\special{pa 613 -27}%
-\special{fp}%
-\special{pa 570 -51}\special{pa 630 0}\special{pa 611 -76}\special{pa 591 -64}\special{pa 570 -51}%
-\special{sh 1}\special{ip}%
-\special{pn 8}%
-\special{pa 570 -51}\special{pa 630 0}\special{pa 611 -76}\special{pa 591 -64}\special{pa 570 -51}%
-\special{fp}%
-\special{pn 8}%
-\special{pa 106 -549}\special{pa 118 -535}\special{pa 132 -521}\special{pa 148 -510}%
-\special{pa 165 -500}\special{pa 184 -493}\special{pa 203 -488}\special{pa 223 -485}%
-\special{pa 242 -485}\special{pa 262 -488}\special{pa 281 -493}\special{pa 299 -500}%
-\special{pa 315 -509}%
-\special{fp}%
-\settowidth{\Width}{$F_1$}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{$F_1$}\settodepth{\Depth}{$F_1$}\setlength{\Height}{-\Height}%
-\put(-2.0000,-0.1500){\hspace*{\Width}\raisebox{\Height}{$F_1$}}%
-%
-%
-\settowidth{\Width}{$F_2$}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{$F_2$}\settodepth{\Depth}{$F_2$}\setlength{\Height}{-\Height}%
-\put(2.0000,-0.1500){\hspace*{\Width}\raisebox{\Height}{$F_2$}}%
-%
-%
-\special{pn 8}%
-\special{pa -1140 0}\special{pa 1260 0}%
-\special{fp}%
-\special{pn 8}%
-\special{pa 1185 24}\special{pa 1260 0}\special{pa 1185 -24}\special{pa 1185 0}\special{pa 1185 24}%
-\special{sh 1}\special{ip}%
-\special{pn 8}%
-\special{pa 1185 24}\special{pa 1260 0}\special{pa 1185 -24}\special{pa 1185 0}\special{pa 1185 24}%
-\special{fp}%
-\special{pn 8}%
-\special{pn 8}%
-\special{pa 0 888}\special{pa 0 -945}%
-\special{fp}%
-\special{pn 8}%
-\special{pa 24 -870}\special{pa 0 -945}\special{pa -24 -870}\special{pa 0 -870}\special{pa 24 -870}%
-\special{sh 1}\special{ip}%
-\special{pn 8}%
-\special{pa 24 -870}\special{pa 0 -945}\special{pa -24 -870}\special{pa 0 -870}\special{pa 24 -870}%
-\special{fp}%
-\special{pn 8}%
-\settowidth{\Width}{$x$}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{$x$}\settodepth{\Depth}{$x$}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(4.0500,0.0000){\hspace*{\Width}\raisebox{\Height}{$x$}}%
-%
-%
-\settowidth{\Width}{$y$}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{$y$}\settodepth{\Depth}{$y$}\setlength{\Height}{\Depth}%
-\put(0.0000,3.0500){\hspace*{\Width}\raisebox{\Height}{$y$}}%
-%
-%
-\settowidth{\Width}{O}\setlength{\Width}{-1\Width}%
-\settoheight{\Height}{O}\settodepth{\Depth}{O}\setlength{\Height}{-\Height}%
-\put(-0.0500,-0.0500){\hspace*{\Width}\raisebox{\Height}{O}}%
-%
-%
-\end{picture}}% \ No newline at end of file
diff --git a/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/ellipseplot2.tex b/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/ellipseplot2.tex
deleted file mode 100644
index a39aaa94..00000000
--- a/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/ellipseplot2.tex
+++ /dev/null
@@ -1,72 +0,0 @@
-%%% fig.tex 2015-8-10 9:41
-%%% fig.sce 2015-8-10 9:41
-{\unitlength=8mm%
-\begin{picture}%
-( 7.62000, 5.82000)( -3.62000, -2.82000)%
-\special{pn 8}%
-%
-\special{pa 915 0}\special{pa 908 -85}\special{pa 886 -169}\special{pa 849 -249}\special{pa 798 -326}%
-\special{pa 734 -397}\special{pa 658 -462}\special{pa 571 -519}\special{pa 475 -568}%
-\special{pa 371 -607}\special{pa 260 -637}\special{pa 146 -656}\special{pa 29 -664}%
-\special{pa -88 -661}\special{pa -204 -648}\special{pa -316 -623}\special{pa -423 -589}%
-\special{pa -524 -545}\special{pa -615 -492}\special{pa -697 -431}\special{pa -767 -362}%
-\special{pa -825 -288}\special{pa -869 -209}\special{pa -899 -127}\special{pa -914 -43}%
-\special{pa -914 43}\special{pa -899 127}\special{pa -869 209}\special{pa -825 288}%
-\special{pa -767 362}\special{pa -697 431}\special{pa -615 492}\special{pa -524 545}%
-\special{pa -423 589}\special{pa -316 623}\special{pa -204 648}\special{pa -88 661}%
-\special{pa 29 664}\special{pa 146 656}\special{pa 260 637}\special{pa 371 607}\special{pa 475 568}%
-\special{pa 571 519}\special{pa 658 462}\special{pa 734 397}\special{pa 798 326}\special{pa 849 249}%
-\special{pa 886 169}\special{pa 908 85}\special{pa 915 0}%
-\special{fp}%
-\special{pa -630 0}\special{pa 232 -643}\special{pa 630 0}%
-\special{fp}%
-\special{pa -630 0}\special{pa -430 -586}\special{pa 630 0}%
-\special{fp}%
-\special{pa -630 0}\special{pa 694 -433}\special{pa 630 0}%
-\special{fp}%
-\settowidth{\Width}{$F_1$}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{$F_1$}\settodepth{\Depth}{$F_1$}\setlength{\Height}{-\Height}%
-\put(-2.0000,-0.1500){\hspace*{\Width}\raisebox{\Height}{$F_1$}}%
-%
-%
-\settowidth{\Width}{$F_2$}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{$F_2$}\settodepth{\Depth}{$F_2$}\setlength{\Height}{-\Height}%
-\put(2.0000,-0.1500){\hspace*{\Width}\raisebox{\Height}{$F_2$}}%
-%
-%
-\special{pn 8}%
-\special{pa -1140 0}\special{pa 1260 0}%
-\special{fp}%
-\special{pn 8}%
-\special{pa 1185 24}\special{pa 1260 0}\special{pa 1185 -24}\special{pa 1185 0}\special{pa 1185 24}%
-\special{sh 1}\special{ip}%
-\special{pn 8}%
-\special{pa 1185 24}\special{pa 1260 0}\special{pa 1185 -24}\special{pa 1185 0}\special{pa 1185 24}%
-\special{fp}%
-\special{pn 8}%
-\special{pn 8}%
-\special{pa 0 888}\special{pa 0 -945}%
-\special{fp}%
-\special{pn 8}%
-\special{pa 24 -870}\special{pa 0 -945}\special{pa -24 -870}\special{pa 0 -870}\special{pa 24 -870}%
-\special{sh 1}\special{ip}%
-\special{pn 8}%
-\special{pa 24 -870}\special{pa 0 -945}\special{pa -24 -870}\special{pa 0 -870}\special{pa 24 -870}%
-\special{fp}%
-\special{pn 8}%
-\settowidth{\Width}{$x$}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{$x$}\settodepth{\Depth}{$x$}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(4.0500,0.0000){\hspace*{\Width}\raisebox{\Height}{$x$}}%
-%
-%
-\settowidth{\Width}{$y$}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{$y$}\settodepth{\Depth}{$y$}\setlength{\Height}{\Depth}%
-\put(0.0000,3.0500){\hspace*{\Width}\raisebox{\Height}{$y$}}%
-%
-%
-\settowidth{\Width}{O}\setlength{\Width}{-1\Width}%
-\settoheight{\Height}{O}\settodepth{\Depth}{O}\setlength{\Height}{-\Height}%
-\put(-0.0500,-0.0500){\hspace*{\Width}\raisebox{\Height}{O}}%
-%
-%
-\end{picture}}% \ No newline at end of file
diff --git a/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/enclosing.tex b/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/enclosing.tex
deleted file mode 100644
index ed69ef47..00000000
--- a/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/enclosing.tex
+++ /dev/null
@@ -1,302 +0,0 @@
-%%% hatch3.tex 2014-11-9 4:18
-%%% shade.sce 2014-11-8 1:26
-{\unitlength=7mm%
-\begin{picture}%
-( 10.00000, 10.00000)( -5.00000, -5.00000)%
-\special{pn 8}%
-%
-\special{pn 8}%
-\special{pa 827 4}\special{pa 827 -4}\special{fp}\special{pa 825 -35}\special{pa 824 -43}\special{fp}%
-\special{pa 822 -75}\special{pa 821 -82}\special{fp}\special{pa 818 -114}\special{pa 817 -121}\special{fp}%
-\special{pa 811 -152}\special{pa 809 -160}\special{fp}\special{pa 804 -191}\special{pa 802 -199}\special{fp}%
-\special{pa 793 -229}\special{pa 791 -236}\special{fp}\special{pa 781 -266}\special{pa 779 -274}\special{fp}%
-\special{pa 769 -303}\special{pa 766 -311}\special{fp}\special{pa 752 -339}\special{pa 749 -346}\special{fp}%
-\special{pa 736 -375}\special{pa 732 -382}\special{fp}\special{pa 717 -409}\special{pa 713 -416}\special{fp}%
-\special{pa 696 -443}\special{pa 692 -449}\special{fp}\special{pa 675 -476}\special{pa 671 -483}\special{fp}%
-\special{pa 651 -507}\special{pa 646 -513}\special{fp}\special{pa 626 -537}\special{pa 621 -544}\special{fp}%
-\special{pa 601 -567}\special{pa 595 -573}\special{fp}\special{pa 572 -594}\special{pa 567 -600}\special{fp}%
-\special{pa 544 -621}\special{pa 538 -627}\special{fp}\special{pa 514 -647}\special{pa 507 -652}\special{fp}%
-\special{pa 482 -670}\special{pa 475 -675}\special{fp}\special{pa 450 -693}\special{pa 443 -697}\special{fp}%
-\special{pa 416 -713}\special{pa 409 -717}\special{fp}\special{pa 382 -732}\special{pa 375 -736}\special{fp}%
-\special{pa 347 -750}\special{pa 340 -753}\special{fp}\special{pa 310 -765}\special{pa 303 -768}\special{fp}%
-\special{pa 274 -779}\special{pa 266 -782}\special{fp}\special{pa 236 -791}\special{pa 229 -793}\special{fp}%
-\special{pa 198 -801}\special{pa 191 -803}\special{fp}\special{pa 160 -811}\special{pa 153 -812}\special{fp}%
-\special{pa 121 -816}\special{pa 113 -817}\special{fp}\special{pa 82 -821}\special{pa 74 -822}\special{fp}%
-\special{pa 43 -825}\special{pa 35 -825}\special{fp}\special{pa 4 -825}\special{pa -4 -825}\special{fp}%
-\special{pa -35 -825}\special{pa -43 -825}\special{fp}\special{pa -74 -822}\special{pa -82 -821}\special{fp}%
-\special{pa -113 -817}\special{pa -121 -816}\special{fp}\special{pa -153 -812}\special{pa -160 -811}\special{fp}%
-\special{pa -191 -803}\special{pa -198 -801}\special{fp}\special{pa -229 -793}\special{pa -236 -791}\special{fp}%
-\special{pa -266 -782}\special{pa -274 -779}\special{fp}\special{pa -303 -768}\special{pa -310 -765}\special{fp}%
-\special{pa -340 -753}\special{pa -347 -750}\special{fp}\special{pa -375 -736}\special{pa -382 -732}\special{fp}%
-\special{pa -409 -717}\special{pa -416 -713}\special{fp}\special{pa -443 -697}\special{pa -450 -693}\special{fp}%
-\special{pa -475 -675}\special{pa -482 -670}\special{fp}\special{pa -507 -652}\special{pa -514 -647}\special{fp}%
-\special{pa -538 -627}\special{pa -544 -621}\special{fp}\special{pa -567 -600}\special{pa -572 -594}\special{fp}%
-\special{pa -595 -573}\special{pa -601 -567}\special{fp}\special{pa -621 -544}\special{pa -626 -537}\special{fp}%
-\special{pa -646 -513}\special{pa -651 -507}\special{fp}\special{pa -671 -483}\special{pa -675 -476}\special{fp}%
-\special{pa -692 -449}\special{pa -696 -443}\special{fp}\special{pa -713 -416}\special{pa -717 -409}\special{fp}%
-\special{pa -732 -382}\special{pa -736 -375}\special{fp}\special{pa -749 -346}\special{pa -752 -339}\special{fp}%
-\special{pa -766 -311}\special{pa -769 -303}\special{fp}\special{pa -779 -274}\special{pa -781 -266}\special{fp}%
-\special{pa -791 -236}\special{pa -793 -229}\special{fp}\special{pa -802 -199}\special{pa -804 -191}\special{fp}%
-\special{pa -809 -160}\special{pa -811 -152}\special{fp}\special{pa -817 -121}\special{pa -818 -114}\special{fp}%
-\special{pa -821 -82}\special{pa -822 -75}\special{fp}\special{pa -824 -43}\special{pa -825 -35}\special{fp}%
-\special{pa -827 -4}\special{pa -827 4}\special{fp}\special{pa -825 35}\special{pa -824 43}\special{fp}%
-\special{pa -822 75}\special{pa -821 82}\special{fp}\special{pa -818 114}\special{pa -817 121}\special{fp}%
-\special{pa -811 152}\special{pa -809 160}\special{fp}\special{pa -804 191}\special{pa -802 199}\special{fp}%
-\special{pa -793 229}\special{pa -791 236}\special{fp}\special{pa -781 266}\special{pa -779 274}\special{fp}%
-\special{pa -769 303}\special{pa -766 311}\special{fp}\special{pa -752 339}\special{pa -749 346}\special{fp}%
-\special{pa -736 375}\special{pa -732 382}\special{fp}\special{pa -717 409}\special{pa -713 416}\special{fp}%
-\special{pa -696 443}\special{pa -692 449}\special{fp}\special{pa -675 476}\special{pa -671 483}\special{fp}%
-\special{pa -651 507}\special{pa -646 513}\special{fp}\special{pa -626 537}\special{pa -621 544}\special{fp}%
-\special{pa -601 567}\special{pa -595 573}\special{fp}\special{pa -572 594}\special{pa -567 600}\special{fp}%
-\special{pa -544 621}\special{pa -538 627}\special{fp}\special{pa -514 647}\special{pa -507 652}\special{fp}%
-\special{pa -482 670}\special{pa -475 675}\special{fp}\special{pa -450 693}\special{pa -443 697}\special{fp}%
-\special{pa -416 713}\special{pa -409 717}\special{fp}\special{pa -382 732}\special{pa -375 736}\special{fp}%
-\special{pa -347 750}\special{pa -340 753}\special{fp}\special{pa -310 765}\special{pa -303 768}\special{fp}%
-\special{pa -274 779}\special{pa -266 782}\special{fp}\special{pa -236 791}\special{pa -229 793}\special{fp}%
-\special{pa -198 801}\special{pa -191 803}\special{fp}\special{pa -160 811}\special{pa -153 812}\special{fp}%
-\special{pa -121 816}\special{pa -113 817}\special{fp}\special{pa -82 821}\special{pa -74 822}\special{fp}%
-\special{pa -43 825}\special{pa -35 825}\special{fp}\special{pa -4 825}\special{pa 4 825}\special{fp}%
-\special{pa 35 825}\special{pa 43 825}\special{fp}\special{pa 74 822}\special{pa 82 821}\special{fp}%
-\special{pa 113 817}\special{pa 121 816}\special{fp}\special{pa 153 812}\special{pa 160 811}\special{fp}%
-\special{pa 191 803}\special{pa 198 801}\special{fp}\special{pa 229 793}\special{pa 236 791}\special{fp}%
-\special{pa 266 782}\special{pa 274 779}\special{fp}\special{pa 303 768}\special{pa 310 765}\special{fp}%
-\special{pa 340 753}\special{pa 347 750}\special{fp}\special{pa 375 736}\special{pa 382 732}\special{fp}%
-\special{pa 409 717}\special{pa 416 713}\special{fp}\special{pa 443 697}\special{pa 450 693}\special{fp}%
-\special{pa 475 675}\special{pa 482 670}\special{fp}\special{pa 507 652}\special{pa 514 647}\special{fp}%
-\special{pa 538 627}\special{pa 544 621}\special{fp}\special{pa 567 600}\special{pa 572 594}\special{fp}%
-\special{pa 595 573}\special{pa 601 567}\special{fp}\special{pa 621 544}\special{pa 626 537}\special{fp}%
-\special{pa 646 513}\special{pa 651 507}\special{fp}\special{pa 671 483}\special{pa 675 476}\special{fp}%
-\special{pa 692 449}\special{pa 696 443}\special{fp}\special{pa 713 416}\special{pa 717 409}\special{fp}%
-\special{pa 732 382}\special{pa 736 375}\special{fp}\special{pa 749 346}\special{pa 752 339}\special{fp}%
-\special{pa 766 311}\special{pa 769 303}\special{fp}\special{pa 779 274}\special{pa 781 266}\special{fp}%
-\special{pa 791 236}\special{pa 793 229}\special{fp}\special{pa 802 199}\special{pa 804 191}\special{fp}%
-\special{pa 809 160}\special{pa 811 152}\special{fp}\special{pa 817 121}\special{pa 818 114}\special{fp}%
-\special{pa 821 82}\special{pa 822 75}\special{fp}\special{pa 824 43}\special{pa 825 35}\special{fp}%
-\special{pa 827 4}\special{pa 827 -4}\special{fp}\special{pn 8}%
-\special{pn 8}%
-\special{pa 1241 4}\special{pa 1240 -4}\special{fp}\special{pa 1235 -35}\special{pa 1234 -43}\special{fp}%
-\special{pa 1228 -74}\special{pa 1226 -81}\special{fp}\special{pa 1213 -110}\special{pa 1210 -117}\special{fp}%
-\special{pa 1195 -145}\special{pa 1191 -152}\special{fp}\special{pa 1173 -177}\special{pa 1168 -184}\special{fp}%
-\special{pa 1148 -208}\special{pa 1143 -214}\special{fp}\special{pa 1120 -236}\special{pa 1114 -241}\special{fp}%
-\special{pa 1091 -263}\special{pa 1085 -268}\special{fp}\special{pa 1059 -286}\special{pa 1053 -291}\special{fp}%
-\special{pa 1027 -309}\special{pa 1020 -313}\special{fp}\special{pa 994 -330}\special{pa 987 -334}\special{fp}%
-\special{pa 959 -349}\special{pa 952 -353}\special{fp}\special{pa 925 -368}\special{pa 918 -372}\special{fp}%
-\special{pa 889 -385}\special{pa 882 -389}\special{fp}\special{pa 853 -401}\special{pa 846 -404}\special{fp}%
-\special{pa 817 -416}\special{pa 809 -419}\special{fp}\special{pa 780 -430}\special{pa 772 -433}\special{fp}%
-\special{pa 742 -442}\special{pa 735 -445}\special{fp}\special{pa 705 -455}\special{pa 697 -457}\special{fp}%
-\special{pa 667 -467}\special{pa 660 -469}\special{fp}\special{pa 629 -476}\special{pa 621 -478}\special{fp}%
-\special{pa 591 -486}\special{pa 583 -488}\special{fp}\special{pa 552 -495}\special{pa 545 -497}\special{fp}%
-\special{pa 514 -504}\special{pa 506 -505}\special{fp}\special{pa 475 -511}\special{pa 467 -512}\special{fp}%
-\special{pa 436 -517}\special{pa 428 -519}\special{fp}\special{pa 397 -524}\special{pa 389 -526}\special{fp}%
-\special{pa 358 -530}\special{pa 350 -531}\special{fp}\special{pa 319 -534}\special{pa 311 -535}\special{fp}%
-\special{pa 280 -539}\special{pa 272 -540}\special{fp}\special{pa 240 -543}\special{pa 233 -544}\special{fp}%
-\special{pa 201 -546}\special{pa 193 -546}\special{fp}\special{pa 162 -548}\special{pa 154 -549}\special{fp}%
-\special{pa 122 -550}\special{pa 114 -551}\special{fp}\special{pa 83 -553}\special{pa 75 -553}\special{fp}%
-\special{pa 43 -553}\special{pa 35 -553}\special{fp}\special{pa 4 -553}\special{pa -4 -553}\special{fp}%
-\special{pa -35 -553}\special{pa -43 -553}\special{fp}\special{pa -75 -553}\special{pa -83 -553}\special{fp}%
-\special{pa -114 -551}\special{pa -122 -550}\special{fp}\special{pa -154 -549}\special{pa -162 -548}\special{fp}%
-\special{pa -193 -546}\special{pa -201 -546}\special{fp}\special{pa -233 -544}\special{pa -240 -543}\special{fp}%
-\special{pa -272 -540}\special{pa -280 -539}\special{fp}\special{pa -311 -535}\special{pa -319 -534}\special{fp}%
-\special{pa -350 -531}\special{pa -358 -530}\special{fp}\special{pa -389 -526}\special{pa -397 -524}\special{fp}%
-\special{pa -428 -519}\special{pa -436 -517}\special{fp}\special{pa -467 -512}\special{pa -475 -511}\special{fp}%
-\special{pa -506 -505}\special{pa -514 -504}\special{fp}\special{pa -545 -497}\special{pa -552 -495}\special{fp}%
-\special{pa -583 -488}\special{pa -591 -486}\special{fp}\special{pa -621 -478}\special{pa -629 -476}\special{fp}%
-\special{pa -660 -469}\special{pa -667 -467}\special{fp}\special{pa -697 -457}\special{pa -705 -455}\special{fp}%
-\special{pa -735 -445}\special{pa -742 -442}\special{fp}\special{pa -772 -433}\special{pa -780 -430}\special{fp}%
-\special{pa -809 -419}\special{pa -817 -416}\special{fp}\special{pa -846 -404}\special{pa -853 -401}\special{fp}%
-\special{pa -882 -389}\special{pa -889 -385}\special{fp}\special{pa -918 -372}\special{pa -925 -368}\special{fp}%
-\special{pa -952 -353}\special{pa -959 -349}\special{fp}\special{pa -987 -334}\special{pa -994 -330}\special{fp}%
-\special{pa -1020 -313}\special{pa -1027 -309}\special{fp}\special{pa -1053 -291}\special{pa -1059 -286}\special{fp}%
-\special{pa -1085 -268}\special{pa -1091 -263}\special{fp}\special{pa -1114 -241}\special{pa -1120 -236}\special{fp}%
-\special{pa -1143 -214}\special{pa -1148 -208}\special{fp}\special{pa -1168 -184}\special{pa -1173 -177}\special{fp}%
-\special{pa -1191 -152}\special{pa -1195 -145}\special{fp}\special{pa -1210 -117}\special{pa -1213 -110}\special{fp}%
-\special{pa -1226 -81}\special{pa -1228 -74}\special{fp}\special{pa -1234 -43}\special{pa -1235 -35}\special{fp}%
-\special{pa -1240 -4}\special{pa -1240 4}\special{fp}\special{pa -1235 35}\special{pa -1234 43}\special{fp}%
-\special{pa -1228 74}\special{pa -1226 81}\special{fp}\special{pa -1213 110}\special{pa -1210 117}\special{fp}%
-\special{pa -1195 145}\special{pa -1191 152}\special{fp}\special{pa -1173 177}\special{pa -1168 184}\special{fp}%
-\special{pa -1148 208}\special{pa -1143 214}\special{fp}\special{pa -1120 236}\special{pa -1114 241}\special{fp}%
-\special{pa -1091 263}\special{pa -1085 268}\special{fp}\special{pa -1059 286}\special{pa -1053 291}\special{fp}%
-\special{pa -1027 309}\special{pa -1020 313}\special{fp}\special{pa -994 330}\special{pa -987 334}\special{fp}%
-\special{pa -959 349}\special{pa -952 353}\special{fp}\special{pa -925 368}\special{pa -918 372}\special{fp}%
-\special{pa -889 385}\special{pa -882 389}\special{fp}\special{pa -853 401}\special{pa -846 404}\special{fp}%
-\special{pa -817 416}\special{pa -809 419}\special{fp}\special{pa -780 430}\special{pa -772 433}\special{fp}%
-\special{pa -742 442}\special{pa -735 445}\special{fp}\special{pa -705 455}\special{pa -697 457}\special{fp}%
-\special{pa -667 467}\special{pa -660 469}\special{fp}\special{pa -629 476}\special{pa -621 478}\special{fp}%
-\special{pa -591 486}\special{pa -583 488}\special{fp}\special{pa -552 495}\special{pa -545 497}\special{fp}%
-\special{pa -514 504}\special{pa -506 505}\special{fp}\special{pa -475 511}\special{pa -467 512}\special{fp}%
-\special{pa -436 517}\special{pa -428 519}\special{fp}\special{pa -397 524}\special{pa -389 526}\special{fp}%
-\special{pa -358 530}\special{pa -350 531}\special{fp}\special{pa -319 534}\special{pa -311 535}\special{fp}%
-\special{pa -280 539}\special{pa -272 540}\special{fp}\special{pa -240 543}\special{pa -233 544}\special{fp}%
-\special{pa -201 546}\special{pa -193 546}\special{fp}\special{pa -162 548}\special{pa -154 549}\special{fp}%
-\special{pa -122 550}\special{pa -114 551}\special{fp}\special{pa -83 553}\special{pa -75 553}\special{fp}%
-\special{pa -43 553}\special{pa -35 553}\special{fp}\special{pa -4 553}\special{pa 4 553}\special{fp}%
-\special{pa 35 553}\special{pa 43 553}\special{fp}\special{pa 75 553}\special{pa 83 553}\special{fp}%
-\special{pa 114 551}\special{pa 122 550}\special{fp}\special{pa 154 549}\special{pa 162 548}\special{fp}%
-\special{pa 193 546}\special{pa 201 546}\special{fp}\special{pa 233 544}\special{pa 240 543}\special{fp}%
-\special{pa 272 540}\special{pa 280 539}\special{fp}\special{pa 311 535}\special{pa 319 534}\special{fp}%
-\special{pa 350 531}\special{pa 358 530}\special{fp}\special{pa 389 526}\special{pa 397 524}\special{fp}%
-\special{pa 428 519}\special{pa 436 517}\special{fp}\special{pa 467 512}\special{pa 475 511}\special{fp}%
-\special{pa 506 505}\special{pa 514 504}\special{fp}\special{pa 545 497}\special{pa 552 495}\special{fp}%
-\special{pa 583 488}\special{pa 591 486}\special{fp}\special{pa 621 478}\special{pa 629 476}\special{fp}%
-\special{pa 660 469}\special{pa 667 467}\special{fp}\special{pa 697 457}\special{pa 705 455}\special{fp}%
-\special{pa 735 445}\special{pa 742 442}\special{fp}\special{pa 772 433}\special{pa 780 430}\special{fp}%
-\special{pa 809 419}\special{pa 817 416}\special{fp}\special{pa 846 404}\special{pa 853 401}\special{fp}%
-\special{pa 882 389}\special{pa 889 385}\special{fp}\special{pa 918 372}\special{pa 925 368}\special{fp}%
-\special{pa 952 353}\special{pa 959 349}\special{fp}\special{pa 987 334}\special{pa 994 330}\special{fp}%
-\special{pa 1020 313}\special{pa 1027 309}\special{fp}\special{pa 1053 291}\special{pa 1059 286}\special{fp}%
-\special{pa 1085 268}\special{pa 1091 263}\special{fp}\special{pa 1114 241}\special{pa 1120 236}\special{fp}%
-\special{pa 1143 214}\special{pa 1148 208}\special{fp}\special{pa 1168 184}\special{pa 1173 177}\special{fp}%
-\special{pa 1191 152}\special{pa 1195 145}\special{fp}\special{pa 1210 117}\special{pa 1213 110}\special{fp}%
-\special{pa 1226 81}\special{pa 1228 74}\special{fp}\special{pa 1234 43}\special{pa 1235 35}\special{fp}%
-\special{pa 1240 4}\special{pa 1241 -4}\special{fp}\special{pn 8}%
-\special{pn 8}%
-\special{pa 554 4}\special{pa 554 -4}\special{fp}\special{pa 553 -35}\special{pa 553 -43}\special{fp}%
-\special{pa 552 -75}\special{pa 552 -83}\special{fp}\special{pa 551 -114}\special{pa 550 -122}\special{fp}%
-\special{pa 550 -154}\special{pa 549 -162}\special{fp}\special{pa 546 -193}\special{pa 546 -201}\special{fp}%
-\special{pa 543 -232}\special{pa 542 -240}\special{fp}\special{pa 540 -272}\special{pa 539 -280}\special{fp}%
-\special{pa 536 -311}\special{pa 535 -319}\special{fp}\special{pa 530 -350}\special{pa 529 -358}\special{fp}%
-\special{pa 525 -389}\special{pa 524 -397}\special{fp}\special{pa 519 -428}\special{pa 518 -436}\special{fp}%
-\special{pa 513 -467}\special{pa 511 -475}\special{fp}\special{pa 505 -506}\special{pa 503 -514}\special{fp}%
-\special{pa 497 -544}\special{pa 495 -552}\special{fp}\special{pa 489 -583}\special{pa 487 -591}\special{fp}%
-\special{pa 479 -621}\special{pa 477 -629}\special{fp}\special{pa 468 -659}\special{pa 466 -667}\special{fp}%
-\special{pa 457 -697}\special{pa 455 -705}\special{fp}\special{pa 446 -735}\special{pa 443 -743}\special{fp}%
-\special{pa 432 -772}\special{pa 429 -779}\special{fp}\special{pa 419 -809}\special{pa 416 -817}\special{fp}%
-\special{pa 405 -846}\special{pa 402 -853}\special{fp}\special{pa 388 -882}\special{pa 385 -889}\special{fp}%
-\special{pa 371 -917}\special{pa 368 -925}\special{fp}\special{pa 354 -953}\special{pa 351 -960}\special{fp}%
-\special{pa 334 -987}\special{pa 330 -994}\special{fp}\special{pa 313 -1020}\special{pa 309 -1027}\special{fp}%
-\special{pa 292 -1053}\special{pa 287 -1060}\special{fp}\special{pa 267 -1084}\special{pa 262 -1090}\special{fp}%
-\special{pa 242 -1115}\special{pa 237 -1121}\special{fp}\special{pa 213 -1142}\special{pa 208 -1147}\special{fp}%
-\special{pa 184 -1168}\special{pa 178 -1173}\special{fp}\special{pa 152 -1190}\special{pa 145 -1195}\special{fp}%
-\special{pa 118 -1211}\special{pa 110 -1214}\special{fp}\special{pa 81 -1224}\special{pa 73 -1227}\special{fp}%
-\special{pa 43 -1236}\special{pa 35 -1237}\special{fp}\special{pa 4 -1238}\special{pa -4 -1238}\special{fp}%
-\special{pa -35 -1237}\special{pa -43 -1236}\special{fp}\special{pa -73 -1227}\special{pa -81 -1224}\special{fp}%
-\special{pa -110 -1214}\special{pa -118 -1211}\special{fp}\special{pa -145 -1195}\special{pa -152 -1190}\special{fp}%
-\special{pa -178 -1173}\special{pa -184 -1168}\special{fp}\special{pa -208 -1147}\special{pa -213 -1142}\special{fp}%
-\special{pa -237 -1121}\special{pa -242 -1115}\special{fp}\special{pa -262 -1090}\special{pa -267 -1084}\special{fp}%
-\special{pa -287 -1060}\special{pa -292 -1053}\special{fp}\special{pa -309 -1027}\special{pa -313 -1020}\special{fp}%
-\special{pa -330 -994}\special{pa -334 -987}\special{fp}\special{pa -351 -960}\special{pa -354 -953}\special{fp}%
-\special{pa -368 -925}\special{pa -371 -917}\special{fp}\special{pa -385 -889}\special{pa -388 -882}\special{fp}%
-\special{pa -402 -853}\special{pa -405 -846}\special{fp}\special{pa -416 -817}\special{pa -419 -809}\special{fp}%
-\special{pa -429 -779}\special{pa -432 -772}\special{fp}\special{pa -443 -743}\special{pa -446 -735}\special{fp}%
-\special{pa -455 -705}\special{pa -457 -697}\special{fp}\special{pa -466 -667}\special{pa -468 -659}\special{fp}%
-\special{pa -477 -629}\special{pa -479 -621}\special{fp}\special{pa -487 -591}\special{pa -489 -583}\special{fp}%
-\special{pa -495 -552}\special{pa -497 -544}\special{fp}\special{pa -503 -514}\special{pa -505 -506}\special{fp}%
-\special{pa -511 -475}\special{pa -513 -467}\special{fp}\special{pa -518 -436}\special{pa -519 -428}\special{fp}%
-\special{pa -524 -397}\special{pa -525 -389}\special{fp}\special{pa -529 -358}\special{pa -530 -350}\special{fp}%
-\special{pa -535 -319}\special{pa -536 -311}\special{fp}\special{pa -539 -280}\special{pa -540 -272}\special{fp}%
-\special{pa -542 -240}\special{pa -543 -232}\special{fp}\special{pa -546 -201}\special{pa -546 -193}\special{fp}%
-\special{pa -549 -162}\special{pa -550 -154}\special{fp}\special{pa -550 -122}\special{pa -551 -114}\special{fp}%
-\special{pa -552 -83}\special{pa -552 -75}\special{fp}\special{pa -553 -43}\special{pa -553 -35}\special{fp}%
-\special{pa -554 -4}\special{pa -554 4}\special{fp}\special{pa -553 35}\special{pa -553 43}\special{fp}%
-\special{pa -552 75}\special{pa -552 83}\special{fp}\special{pa -551 114}\special{pa -550 122}\special{fp}%
-\special{pa -550 154}\special{pa -549 162}\special{fp}\special{pa -546 193}\special{pa -546 201}\special{fp}%
-\special{pa -543 232}\special{pa -542 240}\special{fp}\special{pa -540 272}\special{pa -539 280}\special{fp}%
-\special{pa -536 311}\special{pa -535 319}\special{fp}\special{pa -530 350}\special{pa -529 358}\special{fp}%
-\special{pa -525 389}\special{pa -524 397}\special{fp}\special{pa -519 428}\special{pa -518 436}\special{fp}%
-\special{pa -513 467}\special{pa -511 475}\special{fp}\special{pa -505 506}\special{pa -503 514}\special{fp}%
-\special{pa -497 544}\special{pa -495 552}\special{fp}\special{pa -489 583}\special{pa -487 591}\special{fp}%
-\special{pa -479 621}\special{pa -477 629}\special{fp}\special{pa -468 659}\special{pa -466 667}\special{fp}%
-\special{pa -457 697}\special{pa -455 705}\special{fp}\special{pa -446 735}\special{pa -443 743}\special{fp}%
-\special{pa -432 772}\special{pa -429 779}\special{fp}\special{pa -419 809}\special{pa -416 817}\special{fp}%
-\special{pa -405 846}\special{pa -402 853}\special{fp}\special{pa -388 882}\special{pa -385 889}\special{fp}%
-\special{pa -371 917}\special{pa -368 925}\special{fp}\special{pa -354 953}\special{pa -351 960}\special{fp}%
-\special{pa -334 987}\special{pa -330 994}\special{fp}\special{pa -313 1020}\special{pa -309 1027}\special{fp}%
-\special{pa -292 1053}\special{pa -287 1060}\special{fp}\special{pa -267 1084}\special{pa -262 1090}\special{fp}%
-\special{pa -242 1115}\special{pa -237 1121}\special{fp}\special{pa -213 1142}\special{pa -208 1147}\special{fp}%
-\special{pa -184 1168}\special{pa -178 1173}\special{fp}\special{pa -152 1190}\special{pa -145 1195}\special{fp}%
-\special{pa -118 1211}\special{pa -110 1214}\special{fp}\special{pa -81 1224}\special{pa -73 1227}\special{fp}%
-\special{pa -43 1236}\special{pa -35 1237}\special{fp}\special{pa -4 1238}\special{pa 4 1238}\special{fp}%
-\special{pa 35 1237}\special{pa 43 1236}\special{fp}\special{pa 73 1227}\special{pa 81 1224}\special{fp}%
-\special{pa 110 1214}\special{pa 118 1211}\special{fp}\special{pa 145 1195}\special{pa 152 1190}\special{fp}%
-\special{pa 178 1173}\special{pa 184 1168}\special{fp}\special{pa 208 1147}\special{pa 213 1142}\special{fp}%
-\special{pa 237 1121}\special{pa 242 1115}\special{fp}\special{pa 262 1090}\special{pa 267 1084}\special{fp}%
-\special{pa 287 1060}\special{pa 292 1053}\special{fp}\special{pa 309 1027}\special{pa 313 1020}\special{fp}%
-\special{pa 330 994}\special{pa 334 987}\special{fp}\special{pa 351 960}\special{pa 354 953}\special{fp}%
-\special{pa 368 925}\special{pa 371 917}\special{fp}\special{pa 385 889}\special{pa 388 882}\special{fp}%
-\special{pa 402 853}\special{pa 405 846}\special{fp}\special{pa 416 817}\special{pa 419 809}\special{fp}%
-\special{pa 429 779}\special{pa 432 772}\special{fp}\special{pa 443 743}\special{pa 446 735}\special{fp}%
-\special{pa 455 705}\special{pa 457 697}\special{fp}\special{pa 466 667}\special{pa 468 659}\special{fp}%
-\special{pa 477 629}\special{pa 479 621}\special{fp}\special{pa 487 591}\special{pa 489 583}\special{fp}%
-\special{pa 495 552}\special{pa 497 544}\special{fp}\special{pa 503 514}\special{pa 505 506}\special{fp}%
-\special{pa 511 475}\special{pa 513 467}\special{fp}\special{pa 518 436}\special{pa 519 428}\special{fp}%
-\special{pa 524 397}\special{pa 525 389}\special{fp}\special{pa 529 358}\special{pa 530 350}\special{fp}%
-\special{pa 535 319}\special{pa 536 311}\special{fp}\special{pa 539 280}\special{pa 540 272}\special{fp}%
-\special{pa 542 240}\special{pa 543 232}\special{fp}\special{pa 546 201}\special{pa 546 193}\special{fp}%
-\special{pa 549 162}\special{pa 550 154}\special{fp}\special{pa 550 122}\special{pa 551 114}\special{fp}%
-\special{pa 552 83}\special{pa 552 75}\special{fp}\special{pa 553 43}\special{pa 553 35}\special{fp}%
-\special{pa 554 4}\special{pa 554 -4}\special{fp}\special{pn 8}%
-\special{pa -505 -505}\special{pa -485 -597}\special{pa -461 -685}\special{pa -443 -698}%
-\special{pa -352 -748}\special{pa -255 -786}\special{pa -155 -812}\special{pa -52 -825}%
-\special{pa 52 -825}\special{pa 155 -812}\special{pa 255 -786}\special{pa 352 -748}%
-\special{pa 443 -698}\special{pa 461 -685}\special{pa 485 -597}\special{pa 505 -505}%
-\special{pa 383 -527}\special{pa 232 -544}\special{pa 78 -553}\special{pa -78 -553}%
-\special{pa -232 -544}\special{pa -383 -527}\special{pa -505 -505}%
-\special{fp}%
-\special{pn 4}%
-\special{pa 464 -513}\special{pa 496 -545}%
-\special{fp}%
-\special{pa 422 -520}\special{pa 488 -585}%
-\special{fp}%
-\special{pa 381 -527}\special{pa 478 -624}%
-\special{fp}%
-\special{pa 337 -532}\special{pa 467 -662}%
-\special{fp}%
-\special{pa 294 -537}\special{pa 450 -693}%
-\special{fp}%
-\special{pa 250 -542}\special{pa 419 -711}%
-\special{fp}%
-\special{pa 205 -546}\special{pa 388 -729}%
-\special{fp}%
-\special{pa 159 -548}\special{pa 356 -746}%
-\special{fp}%
-\special{pa 112 -551}\special{pa 322 -760}%
-\special{fp}%
-\special{pa 66 -553}\special{pa 287 -774}%
-\special{fp}%
-\special{pa 17 -553}\special{pa 251 -787}%
-\special{fp}%
-\special{pa -32 -553}\special{pa 213 -797}%
-\special{fp}%
-\special{pa -81 -553}\special{pa 174 -807}%
-\special{fp}%
-\special{pa -132 -550}\special{pa 133 -815}%
-\special{fp}%
-\special{pa -184 -547}\special{pa 90 -820}%
-\special{fp}%
-\special{pa -236 -544}\special{pa 46 -825}%
-\special{fp}%
-\special{pa -291 -537}\special{pa -3 -825}%
-\special{fp}%
-\special{pa -346 -531}\special{pa -52 -825}%
-\special{fp}%
-\special{pa -402 -523}\special{pa -108 -818}%
-\special{fp}%
-\special{pa -461 -513}\special{pa -165 -810}%
-\special{fp}%
-\special{pa -501 -522}\special{pa -230 -793}%
-\special{fp}%
-\special{pa -488 -583}\special{pa -305 -767}%
-\special{fp}%
-\special{pa -471 -650}\special{pa -397 -723}%
-\special{fp}%
-\special{pn 8}%
-\special{pa -1378 0}\special{pa 1378 0}%
-\special{fp}%
-\special{pa 0 1378}\special{pa 0 -1378}%
-\special{fp}%
-\settowidth{\Width}{$x$}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{$x$}\settodepth{\Depth}{$x$}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(5.0500,0.0000){\hspace*{\Width}\raisebox{\Height}{$x$}}%
-%
-%
-\settowidth{\Width}{$y$}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{$y$}\settodepth{\Depth}{$y$}\setlength{\Height}{\Depth}%
-\put(0.0000,5.0500){\hspace*{\Width}\raisebox{\Height}{$y$}}%
-%
-%
-\settowidth{\Width}{O}\setlength{\Width}{-1\Width}%
-\settoheight{\Height}{O}\settodepth{\Depth}{O}\setlength{\Height}{-\Height}%
-\put(-0.0500,-0.0500){\hspace*{\Width}\raisebox{\Height}{O}}%
-%
-%
-\end{picture}}% \ No newline at end of file
diff --git a/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/expr.tex b/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/expr.tex
deleted file mode 100644
index 0d6fdae8..00000000
--- a/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/expr.tex
+++ /dev/null
@@ -1,70 +0,0 @@
-%%% test.tex 2014-12-3 7:27
-%%% test.sce 2014-12-3 7:27
-{\unitlength=6mm%
-\begin{picture}%
-( 9.36000, 5.96000)( -4.36000, -0.96000)%
-\special{pn 8}%
-%
-\settowidth{\Width}{$f(x)=\frac{1}{4} x^2$}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{$f(x)=\frac{1}{4} x^2$}\settodepth{\Depth}{$f(x)=\frac{1}{4} x^2$}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(-2.9500,3.0000){\hspace*{\Width}\raisebox{\Height}{$f(x)=\frac{1}{4} x^2$}}%
-%
-%
-\settowidth{\Width}{$f'(x)=\frac{1}{2}x$}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{$f'(x)=\frac{1}{2}x$}\settodepth{\Depth}{$f'(x)=\frac{1}{2}x$}\setlength{\Height}{-\Height}%
-\put(3.1500,1.3500){\hspace*{\Width}\raisebox{\Height}{$f'(x)=\frac{1}{2}x$}}%
-%
-%
-\settowidth{\Width}{$2$}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{$2$}\settodepth{\Depth}{$2$}\setlength{\Height}{-\Height}%
-\put(2.0000,-0.0500){\hspace*{\Width}\raisebox{\Height}{$2$}}%
-%
-%
-\settowidth{\Width}{$1$}\setlength{\Width}{-1\Width}%
-\settoheight{\Height}{$1$}\settodepth{\Depth}{$1$}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(-0.0500,1.0000){\hspace*{\Width}\raisebox{\Height}{$1$}}%
-%
-%
-\special{pa -1030 -1123}\special{pa -985 -1026}\special{pa -940 -934}\special{pa -895 -847}%
-\special{pa -849 -764}\special{pa -804 -685}\special{pa -759 -610}\special{pa -714 -540}%
-\special{pa -669 -474}\special{pa -624 -412}\special{pa -579 -354}\special{pa -534 -301}%
-\special{pa -488 -252}\special{pa -443 -208}\special{pa -398 -168}\special{pa -353 -132}%
-\special{pa -308 -100}\special{pa -263 -73}\special{pa -218 -50}\special{pa -173 -32}%
-\special{pa -127 -17}\special{pa -82 -7}\special{pa -37 -1}\special{pa 8 0}\special{pa 53 -3}%
-\special{pa 98 -10}\special{pa 143 -22}\special{pa 188 -38}\special{pa 234 -58}\special{pa 279 -82}%
-\special{pa 324 -111}\special{pa 369 -144}\special{pa 414 -181}\special{pa 459 -223}%
-\special{pa 504 -269}\special{pa 549 -319}\special{pa 595 -374}\special{pa 640 -433}%
-\special{pa 685 -496}\special{pa 730 -564}\special{pa 775 -636}\special{pa 820 -712}%
-\special{pa 865 -792}\special{pa 910 -877}\special{pa 955 -966}\special{pa 1001 -1060}%
-\special{pa 1046 -1157}\special{pa 1056 -1181}%
-\special{fp}%
-\special{pa -454 227}\special{pa -443 222}\special{pa -398 199}\special{pa -353 177}%
-\special{pa -308 154}\special{pa -263 131}\special{pa -218 109}\special{pa -173 86}%
-\special{pa -127 64}\special{pa -82 41}\special{pa -37 19}\special{pa 8 -4}\special{pa 53 -27}%
-\special{pa 98 -49}\special{pa 143 -72}\special{pa 188 -94}\special{pa 234 -117}\special{pa 279 -139}%
-\special{pa 324 -162}\special{pa 369 -184}\special{pa 414 -207}\special{pa 459 -230}%
-\special{pa 504 -252}\special{pa 549 -275}\special{pa 595 -297}\special{pa 640 -320}%
-\special{pa 685 -342}\special{pa 730 -365}\special{pa 775 -387}\special{pa 820 -410}%
-\special{pa 865 -433}\special{pa 910 -455}\special{pa 955 -478}\special{pa 1001 -500}%
-\special{pa 1046 -523}\special{pa 1091 -545}\special{pa 1136 -568}\special{pa 1181 -591}%
-\special{fp}%
-\special{pa -1030 0}\special{pa 1181 0}%
-\special{fp}%
-\special{pa 0 227}\special{pa 0 -1181}%
-\special{fp}%
-\settowidth{\Width}{$x$}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{$x$}\settodepth{\Depth}{$x$}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(5.0500,0.0000){\hspace*{\Width}\raisebox{\Height}{$x$}}%
-%
-%
-\settowidth{\Width}{$y$}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{$y$}\settodepth{\Depth}{$y$}\setlength{\Height}{\Depth}%
-\put(0.0000,5.0500){\hspace*{\Width}\raisebox{\Height}{$y$}}%
-%
-%
-\settowidth{\Width}{O}\setlength{\Width}{-1\Width}%
-\settoheight{\Height}{O}\settodepth{\Depth}{O}\setlength{\Height}{-\Height}%
-\put(-0.0500,-0.0500){\hspace*{\Width}\raisebox{\Height}{O}}%
-%
-%
-\end{picture}}% \ No newline at end of file
diff --git a/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/fontsize.tex b/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/fontsize.tex
deleted file mode 100644
index 6e7257c8..00000000
--- a/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/fontsize.tex
+++ /dev/null
@@ -1,70 +0,0 @@
-%%% test.tex 2014-11-28 20:51
-%%% test.sce 2014-11-28 20:51
-{\unitlength=6mm%
-\begin{picture}%
-( 14.00000, 2.00000)( -1.00000, 2.00000)%
-\special{pn 8}%
-%
-\special{pa 6 -714}\special{pa 0 -717}\special{pa -6 -714}\special{pa -8 -709}\special{pa -6 -703}%
-\special{pa 0 -701}\special{pa 6 -703}\special{pa 8 -709}\special{pa 6 -714}\special{sh 1}\special{fp}%
-\special{pa 478 -714}\special{pa 472 -717}\special{pa 467 -714}\special{pa 465 -709}%
-\special{pa 467 -703}\special{pa 472 -701}\special{pa 478 -703}\special{pa 480 -709}%
-\special{pa 478 -714}\special{sh 1}\special{fp}%
-\special{pa 950 -714}\special{pa 945 -717}\special{pa 939 -714}\special{pa 937 -709}%
-\special{pa 939 -703}\special{pa 945 -701}\special{pa 950 -703}\special{pa 953 -709}%
-\special{pa 950 -714}\special{sh 1}\special{fp}%
-\special{pa 1423 -714}\special{pa 1417 -717}\special{pa 1412 -714}\special{pa 1409 -709}%
-\special{pa 1412 -703}\special{pa 1417 -701}\special{pa 1423 -703}\special{pa 1425 -709}%
-\special{pa 1423 -714}\special{sh 1}\special{fp}%
-\special{pa 1895 -714}\special{pa 1890 -717}\special{pa 1884 -714}\special{pa 1882 -709}%
-\special{pa 1884 -703}\special{pa 1890 -701}\special{pa 1895 -703}\special{pa 1898 -709}%
-\special{pa 1895 -714}\special{sh 1}\special{fp}%
-\special{pa 2368 -714}\special{pa 2362 -717}\special{pa 2357 -714}\special{pa 2354 -709}%
-\special{pa 2357 -703}\special{pa 2362 -701}\special{pa 2368 -703}\special{pa 2370 -709}%
-\special{pa 2368 -714}\special{sh 1}\special{fp}%
-\special{pa 2840 -714}\special{pa 2835 -717}\special{pa 2829 -714}\special{pa 2827 -709}%
-\special{pa 2829 -703}\special{pa 2835 -701}\special{pa 2840 -703}\special{pa 2843 -709}%
-\special{pa 2840 -714}\special{sh 1}\special{fp}%
-\tiny%
-\settowidth{\Width}{A}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{A}\settodepth{\Depth}{A}\setlength{\Height}{-\Height}%
-\put(0.0000,2.8500){\hspace*{\Width}\raisebox{\Height}{A}}%
-%
-%
-\scriptsize%
-\settowidth{\Width}{B}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{B}\settodepth{\Depth}{B}\setlength{\Height}{-\Height}%
-\put(2.0000,2.8500){\hspace*{\Width}\raisebox{\Height}{B}}%
-%
-%
-\small%
-\settowidth{\Width}{C}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{C}\settodepth{\Depth}{C}\setlength{\Height}{-\Height}%
-\put(4.0000,2.8500){\hspace*{\Width}\raisebox{\Height}{C}}%
-%
-%
-\large%
-\settowidth{\Width}{D}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{D}\settodepth{\Depth}{D}\setlength{\Height}{-\Height}%
-\put(6.0000,2.8500){\hspace*{\Width}\raisebox{\Height}{D}}%
-%
-%
-\Large%
-\settowidth{\Width}{E}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{E}\settodepth{\Depth}{E}\setlength{\Height}{-\Height}%
-\put(8.0000,2.8500){\hspace*{\Width}\raisebox{\Height}{E}}%
-%
-%
-\huge%
-\settowidth{\Width}{F}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{F}\settodepth{\Depth}{F}\setlength{\Height}{-\Height}%
-\put(10.0000,2.8500){\hspace*{\Width}\raisebox{\Height}{F}}%
-%
-%
-\Huge%
-\settowidth{\Width}{G}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{G}\settodepth{\Depth}{G}\setlength{\Height}{-\Height}%
-\put(12.0000,2.8500){\hspace*{\Width}\raisebox{\Height}{G}}%
-%
-%
-\end{picture}}% \ No newline at end of file
diff --git a/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/fourier.tex b/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/fourier.tex
deleted file mode 100644
index 3471ac65..00000000
--- a/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/fourier.tex
+++ /dev/null
@@ -1,99 +0,0 @@
-%%% fig.tex 2015-1-27 19:6
-%%% fig.sce 2015-1-27 19:6
-{\unitlength=6mm%
-\begin{picture}%
-( 14.00000, 6.00000)( -7.00000, -1.00000)%
-\special{pn 8}%
-%
-\special{pa -1483 -371}\special{pa -1469 -737}\special{pa -1455 -796}\special{pa -1439 -713}%
-\special{pa -1424 -730}\special{pa -1410 -768}\special{pa -1396 -737}\special{pa -1380 -728}%
-\special{pa -1365 -754}\special{pa -1351 -746}\special{pa -1335 -730}\special{pa -1320 -746}%
-\special{pa -1306 -751}\special{pa -1292 -735}\special{pa -1276 -739}\special{pa -1261 -751}%
-\special{pa -1247 -739}\special{pa -1233 -735}\special{pa -1217 -749}\special{pa -1202 -744}%
-\special{pa -1188 -735}\special{pa -1172 -744}\special{pa -1157 -749}\special{pa -1143 -735}%
-\special{pa -1129 -739}\special{pa -1113 -749}\special{pa -1098 -739}\special{pa -1084 -735}%
-\special{pa -1068 -749}\special{pa -1054 -744}\special{pa -1039 -735}\special{pa -1025 -744}%
-\special{pa -1009 -749}\special{pa -994 -735}\special{pa -980 -739}\special{pa -964 -751}%
-\special{pa -950 -739}\special{pa -935 -735}\special{pa -921 -751}\special{pa -905 -746}%
-\special{pa -891 -730}\special{pa -876 -746}\special{pa -860 -754}\special{pa -846 -728}%
-\special{pa -831 -737}\special{pa -817 -768}\special{pa -801 -730}\special{pa -787 -713}%
-\special{pa -772 -796}\special{pa -756 -737}\special{pa -742 -371}\special{pa -728 -5}%
-\special{pa -713 54}\special{pa -697 -28}\special{pa -683 -14}\special{pa -669 26}%
-\special{pa -652 -5}\special{pa -638 -17}\special{pa -624 12}\special{pa -609 5}\special{pa -593 -14}%
-\special{pa -579 2}\special{pa -565 9}\special{pa -548 -9}\special{pa -534 -2}\special{pa -520 9}%
-\special{pa -506 -2}\special{pa -489 -7}\special{pa -475 7}\special{pa -461 2}\special{pa -444 -9}%
-\special{pa -430 2}\special{pa -416 7}\special{pa -402 -7}\special{pa -385 -2}\special{pa -371 7}%
-\special{pa -357 -2}\special{pa -343 -7}\special{pa -326 7}\special{pa -312 2}\special{pa -298 -9}%
-\special{pa -281 2}\special{pa -267 7}\special{pa -253 -7}\special{pa -239 -2}\special{pa -222 9}%
-\special{pa -208 -2}\special{pa -194 -9}\special{pa -177 9}\special{pa -163 2}\special{pa -149 -14}%
-\special{pa -135 5}\special{pa -118 12}\special{pa -104 -17}\special{pa -90 -5}\special{pa -73 26}%
-\special{pa -59 -14}\special{pa -45 -28}\special{pa -31 54}\special{pa -14 -5}\special{pa 0 -371}%
-\special{pa 14 -737}\special{pa 31 -796}\special{pa 45 -713}\special{pa 59 -730}\special{pa 73 -768}%
-\special{pa 90 -737}\special{pa 104 -728}\special{pa 118 -754}\special{pa 135 -746}%
-\special{pa 149 -730}\special{pa 163 -746}\special{pa 177 -751}\special{pa 194 -735}%
-\special{pa 208 -739}\special{pa 222 -751}\special{pa 239 -739}\special{pa 253 -735}%
-\special{pa 267 -749}\special{pa 281 -744}\special{pa 298 -735}\special{pa 312 -744}%
-\special{pa 326 -749}\special{pa 343 -735}\special{pa 357 -739}\special{pa 371 -749}%
-\special{pa 385 -739}\special{pa 402 -735}\special{pa 416 -749}\special{pa 430 -744}%
-\special{pa 444 -735}\special{pa 461 -744}\special{pa 475 -749}\special{pa 489 -735}%
-\special{pa 506 -739}\special{pa 520 -751}\special{pa 534 -739}\special{pa 548 -735}%
-\special{pa 565 -751}\special{pa 579 -746}\special{pa 593 -730}\special{pa 609 -746}%
-\special{pa 624 -754}\special{pa 638 -728}\special{pa 652 -737}\special{pa 669 -768}%
-\special{pa 683 -730}\special{pa 697 -713}\special{pa 713 -796}\special{pa 728 -737}%
-\special{pa 742 -371}\special{pa 756 -5}\special{pa 772 54}\special{pa 787 -28}\special{pa 801 -14}%
-\special{pa 817 26}\special{pa 831 -5}\special{pa 846 -17}\special{pa 860 12}\special{pa 876 5}%
-\special{pa 891 -14}\special{pa 905 2}\special{pa 921 9}\special{pa 935 -9}\special{pa 950 -2}%
-\special{pa 964 9}\special{pa 980 -2}\special{pa 994 -7}\special{pa 1009 7}\special{pa 1025 2}%
-\special{pa 1039 -9}\special{pa 1054 2}\special{pa 1068 7}\special{pa 1084 -7}\special{pa 1098 -2}%
-\special{pa 1113 7}\special{pa 1129 -2}\special{pa 1143 -7}\special{pa 1157 7}\special{pa 1172 2}%
-\special{pa 1188 -9}\special{pa 1202 2}\special{pa 1217 7}\special{pa 1233 -7}\special{pa 1247 -2}%
-\special{pa 1261 9}\special{pa 1276 -2}\special{pa 1292 -9}\special{pa 1306 9}\special{pa 1320 2}%
-\special{pa 1335 -14}\special{pa 1351 5}\special{pa 1365 12}\special{pa 1380 -17}%
-\special{pa 1396 -5}\special{pa 1410 26}\special{pa 1424 -14}\special{pa 1439 -28}%
-\special{pa 1455 54}\special{pa 1469 -5}\special{pa 1483 -371}%
-\special{fp}%
-\settowidth{\Width}{$-2\pi$}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{$-2\pi$}\settodepth{\Depth}{$-2\pi$}\setlength{\Height}{-\Height}%
-\put(-6.2800,-0.5500){\hspace*{\Width}\raisebox{\Height}{$-2\pi$}}%
-%
-%
-\settowidth{\Width}{$-\pi$}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{$-\pi$}\settodepth{\Depth}{$-\pi$}\setlength{\Height}{-\Height}%
-\put(-3.1400,-0.5500){\hspace*{\Width}\raisebox{\Height}{$-\pi$}}%
-%
-%
-\settowidth{\Width}{$\pi$}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{$\pi$}\settodepth{\Depth}{$\pi$}\setlength{\Height}{-\Height}%
-\put(3.1400,-0.5500){\hspace*{\Width}\raisebox{\Height}{$\pi$}}%
-%
-%
-\settowidth{\Width}{$2\pi$}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{$2\pi$}\settodepth{\Depth}{$2\pi$}\setlength{\Height}{-\Height}%
-\put(6.2800,-0.5500){\hspace*{\Width}\raisebox{\Height}{$2\pi$}}%
-%
-%
-\settowidth{\Width}{$\pi$}\setlength{\Width}{-1\Width}%
-\settoheight{\Height}{$\pi$}\settodepth{\Depth}{$\pi$}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(-0.1500,3.1400){\hspace*{\Width}\raisebox{\Height}{$\pi$}}%
-%
-%
-\special{pa -1654 0}\special{pa 1654 0}%
-\special{fp}%
-\special{pa 0 236}\special{pa 0 -1181}%
-\special{fp}%
-\settowidth{\Width}{$x$}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{$x$}\settodepth{\Depth}{$x$}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(7.0500,0.0000){\hspace*{\Width}\raisebox{\Height}{$x$}}%
-%
-%
-\settowidth{\Width}{$y$}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{$y$}\settodepth{\Depth}{$y$}\setlength{\Height}{\Depth}%
-\put(0.0000,5.0500){\hspace*{\Width}\raisebox{\Height}{$y$}}%
-%
-%
-\settowidth{\Width}{O}\setlength{\Width}{-1\Width}%
-\settoheight{\Height}{O}\settodepth{\Depth}{O}\setlength{\Height}{-\Height}%
-\put(-0.0500,-0.1500){\hspace*{\Width}\raisebox{\Height}{O}}%
-%
-%
-\end{picture}}% \ No newline at end of file
diff --git a/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/hatch1.tex b/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/hatch1.tex
deleted file mode 100644
index 1c430fae..00000000
--- a/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/hatch1.tex
+++ /dev/null
@@ -1,136 +0,0 @@
-%%% hatch1.tex 2014-11-9 5:35
-%%% hatch6.sce 2014-11-9 4:59
-{\unitlength=5mm%
-\begin{picture}%
-( 8.00000, 8.00000)( -4.00000, -4.00000)%
-\special{pn 8}%
-%
-\special{pa 591 0}\special{pa 586 -74}\special{pa 572 -147}\special{pa 549 -217}\special{pa 518 -285}%
-\special{pa 478 -347}\special{pa 430 -404}\special{pa 376 -455}\special{pa 316 -499}%
-\special{pa 251 -534}\special{pa 182 -562}\special{pa 111 -580}\special{pa 37 -589}%
-\special{pa -37 -589}\special{pa -111 -580}\special{pa -182 -562}\special{pa -251 -534}%
-\special{pa -316 -499}\special{pa -376 -455}\special{pa -430 -404}\special{pa -478 -347}%
-\special{pa -518 -285}\special{pa -549 -217}\special{pa -572 -147}\special{pa -586 -74}%
-\special{pa -591 0}\special{pa -586 74}\special{pa -572 147}\special{pa -549 217}%
-\special{pa -518 285}\special{pa -478 347}\special{pa -430 404}\special{pa -376 455}%
-\special{pa -316 499}\special{pa -251 534}\special{pa -182 562}\special{pa -111 580}%
-\special{pa -37 589}\special{pa 37 589}\special{pa 111 580}\special{pa 182 562}\special{pa 251 534}%
-\special{pa 316 499}\special{pa 376 455}\special{pa 430 404}\special{pa 478 347}\special{pa 518 285}%
-\special{pa 549 217}\special{pa 572 147}\special{pa 586 74}\special{pa 591 0}%
-\special{fp}%
-\special{pn 6}%
-\special{pa 284 517}\special{pa 519 281}%
-\special{fp}%
-\special{pa 218 548}\special{pa 550 216}%
-\special{fp}%
-\special{pa 165 566}\special{pa 566 165}%
-\special{fp}%
-\special{pa 118 578}\special{pa 577 119}%
-\special{fp}%
-\special{pa 77 584}\special{pa 586 76}%
-\special{fp}%
-\special{pa 37 589}\special{pa 588 38}%
-\special{fp}%
-\special{pa 2 589}\special{pa 590 1}%
-\special{fp}%
-\special{pa -33 589}\special{pa 589 -32}%
-\special{fp}%
-\special{pa -64 586}\special{pa 586 -65}%
-\special{fp}%
-\special{pa -95 582}\special{pa 582 -95}%
-\special{fp}%
-\special{pa -124 577}\special{pa 576 -124}%
-\special{fp}%
-\special{pa -152 569}\special{pa 570 -153}%
-\special{fp}%
-\special{pa -180 562}\special{pa 562 -179}%
-\special{fp}%
-\special{pa -205 553}\special{pa 553 -205}%
-\special{fp}%
-\special{pa -230 543}\special{pa 543 -230}%
-\special{fp}%
-\special{pa -254 533}\special{pa 532 -254}%
-\special{fp}%
-\special{pa -277 520}\special{pa 521 -277}%
-\special{fp}%
-\special{pa -299 508}\special{pa 508 -299}%
-\special{fp}%
-\special{pa -321 495}\special{pa 495 -321}%
-\special{fp}%
-\special{pa -341 481}\special{pa 481 -342}%
-\special{fp}%
-\special{pa -361 466}\special{pa 466 -361}%
-\special{fp}%
-\special{pa -381 451}\special{pa 450 -381}%
-\special{fp}%
-\special{pa -399 434}\special{pa 434 -400}%
-\special{fp}%
-\special{pa -417 417}\special{pa 417 -417}%
-\special{fp}%
-\special{pa -434 400}\special{pa 399 -434}%
-\special{fp}%
-\special{pa -450 381}\special{pa 381 -451}%
-\special{fp}%
-\special{pa -466 361}\special{pa 361 -466}%
-\special{fp}%
-\special{pa -481 342}\special{pa 341 -481}%
-\special{fp}%
-\special{pa -495 321}\special{pa 321 -495}%
-\special{fp}%
-\special{pa -508 299}\special{pa 299 -508}%
-\special{fp}%
-\special{pa -521 277}\special{pa 277 -520}%
-\special{fp}%
-\special{pa -532 254}\special{pa 254 -533}%
-\special{fp}%
-\special{pa -543 230}\special{pa 230 -543}%
-\special{fp}%
-\special{pa -553 205}\special{pa 205 -553}%
-\special{fp}%
-\special{pa -562 179}\special{pa 180 -562}%
-\special{fp}%
-\special{pa -570 153}\special{pa 152 -569}%
-\special{fp}%
-\special{pa -576 124}\special{pa 124 -577}%
-\special{fp}%
-\special{pa -582 95}\special{pa 95 -582}%
-\special{fp}%
-\special{pa -586 65}\special{pa 64 -586}%
-\special{fp}%
-\special{pa -589 32}\special{pa 33 -589}%
-\special{fp}%
-\special{pa -590 -1}\special{pa -2 -589}%
-\special{fp}%
-\special{pa -588 -38}\special{pa -37 -589}%
-\special{fp}%
-\special{pa -586 -76}\special{pa -77 -584}%
-\special{fp}%
-\special{pa -577 -119}\special{pa -118 -578}%
-\special{fp}%
-\special{pa -566 -165}\special{pa -165 -566}%
-\special{fp}%
-\special{pa -550 -216}\special{pa -218 -548}%
-\special{fp}%
-\special{pa -519 -281}\special{pa -284 -517}%
-\special{fp}%
-\special{pn 8}%
-\special{pa -787 0}\special{pa 787 0}%
-\special{fp}%
-\special{pa 0 787}\special{pa 0 -787}%
-\special{fp}%
-\settowidth{\Width}{$x$}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{$x$}\settodepth{\Depth}{$x$}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(4.0500,0.0000){\hspace*{\Width}\raisebox{\Height}{$x$}}%
-%
-%
-\settowidth{\Width}{$y$}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{$y$}\settodepth{\Depth}{$y$}\setlength{\Height}{\Depth}%
-\put(0.0000,4.0500){\hspace*{\Width}\raisebox{\Height}{$y$}}%
-%
-%
-\settowidth{\Width}{O}\setlength{\Width}{-1\Width}%
-\settoheight{\Height}{O}\settodepth{\Depth}{O}\setlength{\Height}{-\Height}%
-\put(-0.0500,-0.0500){\hspace*{\Width}\raisebox{\Height}{O}}%
-%
-%
-\end{picture}}% \ No newline at end of file
diff --git a/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/hatch2.tex b/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/hatch2.tex
deleted file mode 100644
index 1771dc5b..00000000
--- a/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/hatch2.tex
+++ /dev/null
@@ -1,275 +0,0 @@
-%%% test.tex 2014-11-11 14:2
-%%% test.sce 2014-11-11 14:2
-{\unitlength=6mm%
-\begin{picture}%
-( 10.00000, 10.00000)( -5.00000, -5.00000)%
-\special{pn 8}%
-%
-\special{pa 709 0}\special{pa 703 -89}\special{pa 686 -176}\special{pa 659 -261}\special{pa 621 -341}%
-\special{pa 573 -417}\special{pa 517 -485}\special{pa 452 -546}\special{pa 380 -598}%
-\special{pa 302 -641}\special{pa 219 -674}\special{pa 133 -696}\special{pa 44 -707}%
-\special{pa -44 -707}\special{pa -133 -696}\special{pa -219 -674}\special{pa -302 -641}%
-\special{pa -380 -598}\special{pa -452 -546}\special{pa -517 -485}\special{pa -573 -417}%
-\special{pa -621 -341}\special{pa -659 -261}\special{pa -686 -176}\special{pa -703 -89}%
-\special{pa -709 0}\special{pa -703 89}\special{pa -686 176}\special{pa -659 261}%
-\special{pa -621 341}\special{pa -573 417}\special{pa -517 485}\special{pa -452 546}%
-\special{pa -380 598}\special{pa -302 641}\special{pa -219 674}\special{pa -133 696}%
-\special{pa -44 707}\special{pa 44 707}\special{pa 133 696}\special{pa 219 674}\special{pa 302 641}%
-\special{pa 380 598}\special{pa 452 546}\special{pa 517 485}\special{pa 573 417}\special{pa 621 341}%
-\special{pa 659 261}\special{pa 686 176}\special{pa 703 89}\special{pa 709 0}%
-\special{fp}%
-\special{pn 6}%
-\special{pa 341 620}\special{pa 366 594}%
-\special{fp}%
-\special{pa 262 657}\special{pa 391 528}%
-\special{fp}%
-\special{pa 197 680}\special{pa 411 466}%
-\special{fp}%
-\special{pa 141 694}\special{pa 410 425}%
-\special{fp}%
-\special{pa 92 701}\special{pa 357 437}%
-\special{fp}%
-\special{pa 44 707}\special{pa 305 446}%
-\special{fp}%
-\special{pa 3 707}\special{pa 255 454}%
-\special{fp}%
-\special{pa -39 707}\special{pa 208 460}%
-\special{fp}%
-\special{pa -77 703}\special{pa 161 465}%
-\special{fp}%
-\special{pa -114 698}\special{pa 117 468}%
-\special{fp}%
-\special{pa -149 692}\special{pa 73 470}%
-\special{fp}%
-\special{pa -182 683}\special{pa 29 472}%
-\special{fp}%
-\special{pa -216 675}\special{pa -12 472}%
-\special{fp}%
-\special{pa -246 663}\special{pa -53 471}%
-\special{fp}%
-\special{pa -276 652}\special{pa -94 470}%
-\special{fp}%
-\special{pa -305 639}\special{pa -133 467}%
-\special{fp}%
-\special{pa -332 624}\special{pa -171 464}%
-\special{fp}%
-\special{pa -359 610}\special{pa -210 461}%
-\special{fp}%
-\special{pa -372 580}\special{pa -246 455}%
-\special{fp}%
-\special{pa -383 550}\special{pa -283 450}%
-\special{fp}%
-\special{pa -394 520}\special{pa -319 444}%
-\special{fp}%
-\special{pa -404 487}\special{pa -354 437}%
-\special{fp}%
-\special{pa -413 455}\special{pa -388 430}%
-\special{fp}%
-\special{pa -422 422}\special{pa -422 422}%
-\special{fp}%
-\special{pa 389 -430}\special{pa 414 -455}%
-\special{fp}%
-\special{pa 354 -437}\special{pa 404 -487}%
-\special{fp}%
-\special{pa 319 -444}\special{pa 394 -519}%
-\special{fp}%
-\special{pa 283 -450}\special{pa 383 -550}%
-\special{fp}%
-\special{pa 247 -455}\special{pa 372 -581}%
-\special{fp}%
-\special{pa 209 -460}\special{pa 359 -610}%
-\special{fp}%
-\special{pa 172 -464}\special{pa 332 -624}%
-\special{fp}%
-\special{pa 133 -467}\special{pa 305 -639}%
-\special{fp}%
-\special{pa 93 -469}\special{pa 276 -652}%
-\special{fp}%
-\special{pa 53 -471}\special{pa 246 -663}%
-\special{fp}%
-\special{pa 13 -472}\special{pa 216 -675}%
-\special{fp}%
-\special{pa -30 -471}\special{pa 182 -683}%
-\special{fp}%
-\special{pa -72 -471}\special{pa 149 -692}%
-\special{fp}%
-\special{pa -116 -468}\special{pa 114 -698}%
-\special{fp}%
-\special{pa -162 -465}\special{pa 77 -703}%
-\special{fp}%
-\special{pa -207 -461}\special{pa 39 -707}%
-\special{fp}%
-\special{pa -256 -454}\special{pa -3 -707}%
-\special{fp}%
-\special{pa -305 -447}\special{pa -44 -707}%
-\special{fp}%
-\special{pa -357 -437}\special{pa -92 -701}%
-\special{fp}%
-\special{pa -410 -425}\special{pa -141 -694}%
-\special{fp}%
-\special{pa -409 -467}\special{pa -197 -680}%
-\special{fp}%
-\special{pa -392 -527}\special{pa -262 -657}%
-\special{fp}%
-\special{pa -367 -594}\special{pa -341 -620}%
-\special{fp}%
-\special{pn 8}%
-\special{pn 6}%
-\special{pa 593 368}\special{pa 623 338}%
-\special{fp}%
-\special{pa 528 391}\special{pa 659 259}%
-\special{fp}%
-\special{pa 467 410}\special{pa 680 197}%
-\special{fp}%
-\special{pa 424 411}\special{pa 693 142}%
-\special{fp}%
-\special{pa 438 356}\special{pa 703 91}%
-\special{fp}%
-\special{pa 446 306}\special{pa 706 46}%
-\special{fp}%
-\special{pa 454 256}\special{pa 709 1}%
-\special{fp}%
-\special{pa 460 208}\special{pa 706 -38}%
-\special{fp}%
-\special{pa 465 162}\special{pa 704 -77}%
-\special{fp}%
-\special{pa 469 116}\special{pa 698 -114}%
-\special{fp}%
-\special{pa 470 73}\special{pa 692 -149}%
-\special{fp}%
-\special{pa 471 30}\special{pa 684 -183}%
-\special{fp}%
-\special{pa 472 -13}\special{pa 674 -215}%
-\special{fp}%
-\special{pa 471 -53}\special{pa 664 -246}%
-\special{fp}%
-\special{pa 469 -94}\special{pa 652 -276}%
-\special{fp}%
-\special{pa 467 -133}\special{pa 638 -304}%
-\special{fp}%
-\special{pa 464 -171}\special{pa 625 -333}%
-\special{fp}%
-\special{pa 460 -209}\special{pa 610 -359}%
-\special{fp}%
-\special{pa 456 -247}\special{pa 581 -372}%
-\special{fp}%
-\special{pa 450 -283}\special{pa 550 -383}%
-\special{fp}%
-\special{pa 444 -319}\special{pa 519 -394}%
-\special{fp}%
-\special{pa 438 -354}\special{pa 488 -404}%
-\special{fp}%
-\special{pa 430 -388}\special{pa 455 -413}%
-\special{fp}%
-\special{pa 422 -422}\special{pa 422 -422}%
-\special{fp}%
-\special{pa -455 413}\special{pa -430 388}%
-\special{fp}%
-\special{pa -487 404}\special{pa -437 354}%
-\special{fp}%
-\special{pa -519 394}\special{pa -444 319}%
-\special{fp}%
-\special{pa -551 384}\special{pa -450 283}%
-\special{fp}%
-\special{pa -580 372}\special{pa -455 246}%
-\special{fp}%
-\special{pa -610 359}\special{pa -460 209}%
-\special{fp}%
-\special{pa -625 333}\special{pa -464 172}%
-\special{fp}%
-\special{pa -638 304}\special{pa -467 133}%
-\special{fp}%
-\special{pa -652 276}\special{pa -469 94}%
-\special{fp}%
-\special{pa -664 246}\special{pa -471 54}%
-\special{fp}%
-\special{pa -674 215}\special{pa -471 12}%
-\special{fp}%
-\special{pa -684 183}\special{pa -471 -30}%
-\special{fp}%
-\special{pa -692 149}\special{pa -471 -72}%
-\special{fp}%
-\special{pa -698 114}\special{pa -468 -117}%
-\special{fp}%
-\special{pa -704 77}\special{pa -465 -161}%
-\special{fp}%
-\special{pa -706 38}\special{pa -460 -208}%
-\special{fp}%
-\special{pa -709 -1}\special{pa -454 -256}%
-\special{fp}%
-\special{pa -706 -46}\special{pa -447 -305}%
-\special{fp}%
-\special{pa -703 -91}\special{pa -436 -357}%
-\special{fp}%
-\special{pa -693 -142}\special{pa -426 -409}%
-\special{fp}%
-\special{pa -680 -197}\special{pa -467 -410}%
-\special{fp}%
-\special{pa -659 -259}\special{pa -527 -392}%
-\special{fp}%
-\special{pa -623 -338}\special{pa -594 -366}%
-\special{fp}%
-\special{pn 8}%
-\special{pa 945 0}\special{pa 937 -60}\special{pa 914 -120}\special{pa 876 -177}\special{pa 823 -232}%
-\special{pa 757 -283}\special{pa 679 -329}\special{pa 589 -369}\special{pa 490 -404}%
-\special{pa 382 -432}\special{pa 269 -453}\special{pa 151 -466}\special{pa 30 -472}%
-\special{pa -91 -470}\special{pa -210 -461}\special{pa -326 -443}\special{pa -437 -419}%
-\special{pa -541 -387}\special{pa -635 -350}\special{pa -719 -306}\special{pa -792 -258}%
-\special{pa -851 -205}\special{pa -897 -149}\special{pa -927 -90}\special{pa -943 -30}%
-\special{pa -943 30}\special{pa -927 90}\special{pa -897 149}\special{pa -851 205}%
-\special{pa -792 258}\special{pa -719 306}\special{pa -635 350}\special{pa -541 387}%
-\special{pa -437 419}\special{pa -326 443}\special{pa -210 461}\special{pa -91 470}%
-\special{pa 30 472}\special{pa 151 466}\special{pa 269 453}\special{pa 382 432}\special{pa 490 404}%
-\special{pa 589 369}\special{pa 679 329}\special{pa 757 283}\special{pa 823 232}\special{pa 876 177}%
-\special{pa 914 120}\special{pa 937 60}\special{pa 945 0}%
-\special{fp}%
-\special{pa 472 0}\special{pa 469 -121}\special{pa 457 -240}\special{pa 438 -355}%
-\special{pa 412 -464}\special{pa 379 -565}\special{pa 339 -657}\special{pa 295 -739}%
-\special{pa 245 -808}\special{pa 191 -864}\special{pa 134 -906}\special{pa 75 -933}%
-\special{pa 15 -944}\special{pa -45 -941}\special{pa -105 -921}\special{pa -163 -887}%
-\special{pa -219 -838}\special{pa -270 -775}\special{pa -318 -699}\special{pa -360 -612}%
-\special{pa -396 -515}\special{pa -426 -410}\special{pa -448 -298}\special{pa -464 -181}%
-\special{pa -471 -61}\special{pa -471 61}\special{pa -464 181}\special{pa -448 298}%
-\special{pa -426 410}\special{pa -396 515}\special{pa -360 612}\special{pa -318 699}%
-\special{pa -270 775}\special{pa -219 838}\special{pa -163 887}\special{pa -105 921}%
-\special{pa -45 941}\special{pa 15 944}\special{pa 75 933}\special{pa 134 906}\special{pa 191 864}%
-\special{pa 245 808}\special{pa 295 739}\special{pa 339 657}\special{pa 379 565}\special{pa 412 464}%
-\special{pa 438 355}\special{pa 457 240}\special{pa 469 121}\special{pa 472 0}%
-\special{fp}%
-\special{pn 8}%
-\special{pa -1181 0}\special{pa 1181 0}%
-\special{fp}%
-\special{pn 8}%
-\special{pa 1106 24}\special{pa 1181 0}\special{pa 1106 -24}\special{pa 1106 0}\special{pa 1106 24}%
-\special{sh 1}\special{ip}%
-\special{pn 8}%
-\special{pa 1106 24}\special{pa 1181 0}\special{pa 1106 -24}\special{pa 1106 0}\special{pa 1106 24}%
-\special{fp}%
-\special{pn 8}%
-\special{pn 8}%
-\special{pa 0 1181}\special{pa 0 -1181}%
-\special{fp}%
-\special{pn 8}%
-\special{pa 24 -1106}\special{pa 0 -1181}\special{pa -24 -1106}\special{pa 0 -1106}%
-\special{pa 24 -1106}\special{sh 1}\special{ip}%
-\special{pn 8}%
-\special{pa 24 -1106}\special{pa 0 -1181}\special{pa -24 -1106}\special{pa 0 -1106}%
-\special{pa 24 -1106}%
-\special{fp}%
-\special{pn 8}%
-\settowidth{\Width}{$x$}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{$x$}\settodepth{\Depth}{$x$}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(5.0500,0.0000){\hspace*{\Width}\raisebox{\Height}{$x$}}%
-%
-%
-\settowidth{\Width}{$y$}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{$y$}\settodepth{\Depth}{$y$}\setlength{\Height}{\Depth}%
-\put(0.0000,5.0500){\hspace*{\Width}\raisebox{\Height}{$y$}}%
-%
-%
-\settowidth{\Width}{O}\setlength{\Width}{-1\Width}%
-\settoheight{\Height}{O}\settodepth{\Depth}{O}\setlength{\Height}{-\Height}%
-\put(-0.0500,-0.0500){\hspace*{\Width}\raisebox{\Height}{O}}%
-%
-%
-\end{picture}}% \ No newline at end of file
diff --git a/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/hatch3.tex b/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/hatch3.tex
deleted file mode 100644
index 5cd8c0f7..00000000
--- a/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/hatch3.tex
+++ /dev/null
@@ -1,203 +0,0 @@
-%%% hatch4.tex 2014-11-8 4:0
-%%% shade.sce 2014-11-8 1:26
-{\unitlength=7mm%
-\begin{picture}%
-( 14.00000, 6.00000)( -4.00000, -3.00000)%
-\special{pn 8}%
-%
-\special{pn 6}%
-\special{pa 2311 -461}\special{pa 2318 -468}%
-\special{fp}%
-\special{pa 2255 -454}\special{pa 2293 -492}%
-\special{fp}%
-\special{pa 2200 -447}\special{pa 2266 -513}%
-\special{fp}%
-\special{pa 2144 -440}\special{pa 2236 -532}%
-\special{fp}%
-\special{pa 2088 -433}\special{pa 2200 -545}%
-\special{fp}%
-\special{pa 2033 -426}\special{pa 2156 -550}%
-\special{fp}%
-\special{pa 1977 -419}\special{pa 2085 -527}%
-\special{fp}%
-\special{pa 696 -259}\special{pa 718 -281}%
-\special{fp}%
-\special{pa 641 -252}\special{pa 700 -312}%
-\special{fp}%
-\special{pa 585 -245}\special{pa 681 -342}%
-\special{fp}%
-\special{pa 529 -238}\special{pa 662 -371}%
-\special{fp}%
-\special{pa 474 -231}\special{pa 642 -400}%
-\special{fp}%
-\special{pa 418 -224}\special{pa 621 -427}%
-\special{fp}%
-\special{pa 362 -218}\special{pa 599 -454}%
-\special{fp}%
-\special{pa 307 -211}\special{pa 575 -479}%
-\special{fp}%
-\special{pa 251 -204}\special{pa 549 -502}%
-\special{fp}%
-\special{pa 195 -197}\special{pa 521 -522}%
-\special{fp}%
-\special{pa 140 -190}\special{pa 489 -539}%
-\special{fp}%
-\special{pa 104 -203}\special{pa 450 -549}%
-\special{fp}%
-\special{pa 169 -317}\special{pa 399 -546}%
-\special{fp}%
-\special{pn 8}%
-\special{pn 6}%
-\special{pa 1363 535}\special{pa 1528 371}%
-\special{fp}%
-\special{pa 1299 551}\special{pa 1491 359}%
-\special{fp}%
-\special{pa 1257 544}\special{pa 1448 353}%
-\special{fp}%
-\special{pa 1223 530}\special{pa 1405 348}%
-\special{fp}%
-\special{pa 1193 511}\special{pa 1361 342}%
-\special{fp}%
-\special{pa 1166 489}\special{pa 1318 337}%
-\special{fp}%
-\special{pa 1142 464}\special{pa 1275 332}%
-\special{fp}%
-\special{pa 1119 438}\special{pa 1231 326}%
-\special{fp}%
-\special{pa 1098 411}\special{pa 1188 321}%
-\special{fp}%
-\special{pa 1078 382}\special{pa 1145 315}%
-\special{fp}%
-\special{pa 1058 354}\special{pa 1101 310}%
-\special{fp}%
-\special{pa 1039 324}\special{pa 1058 305}%
-\special{fp}%
-\special{pa -402 547}\special{pa -164 309}%
-\special{fp}%
-\special{pa -453 549}\special{pa -101 197}%
-\special{fp}%
-\special{pa -491 538}\special{pa -111 158}%
-\special{fp}%
-\special{pa -523 521}\special{pa -154 153}%
-\special{fp}%
-\special{pa -551 501}\special{pa -198 148}%
-\special{fp}%
-\special{pa -576 477}\special{pa -241 142}%
-\special{fp}%
-\special{pa -600 452}\special{pa -284 137}%
-\special{fp}%
-\special{pa -622 426}\special{pa -328 131}%
-\special{fp}%
-\special{pa -643 398}\special{pa -371 126}%
-\special{fp}%
-\special{pa -663 369}\special{pa -414 120}%
-\special{fp}%
-\special{pa -682 340}\special{pa -458 115}%
-\special{fp}%
-\special{pa -701 310}\special{pa -501 110}%
-\special{fp}%
-\special{pa -719 279}\special{pa -544 104}%
-\special{fp}%
-\special{pa -737 248}\special{pa -587 99}%
-\special{fp}%
-\special{pa -754 217}\special{pa -631 93}%
-\special{fp}%
-\special{pa -771 185}\special{pa -674 88}%
-\special{fp}%
-\special{pa -788 153}\special{pa -717 83}%
-\special{fp}%
-\special{pa -805 121}\special{pa -761 77}%
-\special{fp}%
-\special{pa -821 89}\special{pa -804 72}%
-\special{fp}%
-\special{pn 8}%
-\special{pa 865 -20}\special{pa 865 20}%
-\special{fp}%
-\settowidth{\Width}{$\pi$}\setlength{\Width}{-1\Width}%
-\settoheight{\Height}{$\pi$}\settodepth{\Depth}{$\pi$}\setlength{\Height}{-\Height}%
-\put(3.0900,-0.1214){\hspace*{\Width}\raisebox{\Height}{$\pi$}}%
-%
-%
-%
-\special{pa 20 -551}\special{pa -20 -551}%
-\special{fp}%
-\settowidth{\Width}{$2$}\setlength{\Width}{-1\Width}%
-\settoheight{\Height}{$2$}\settodepth{\Depth}{$2$}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(-0.1214,2.0000){\hspace*{\Width}\raisebox{\Height}{$2$}}%
-%
-%
-%
-\special{pa 20 551}\special{pa -20 551}%
-\special{fp}%
-\settowidth{\Width}{$-2$}\setlength{\Width}{-1\Width}%
-\settoheight{\Height}{$-2$}\settodepth{\Depth}{$-2$}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(-0.1214,-2.0000){\hspace*{\Width}\raisebox{\Height}{$-2$}}%
-%
-%
-%
-\special{pa -866 0}\special{pa -831 70}\special{pa -796 138}\special{pa -761 205}%
-\special{pa -726 268}\special{pa -691 327}\special{pa -656 380}\special{pa -621 428}%
-\special{pa -586 468}\special{pa -551 501}\special{pa -516 526}\special{pa -481 543}%
-\special{pa -446 551}\special{pa -411 549}\special{pa -376 539}\special{pa -341 521}%
-\special{pa -306 494}\special{pa -271 459}\special{pa -236 417}\special{pa -201 368}%
-\special{pa -166 313}\special{pa -131 253}\special{pa -96 189}\special{pa -61 121}%
-\special{pa -26 52}\special{pa 9 -17}\special{pa 44 -87}\special{pa 79 -155}\special{pa 114 -221}%
-\special{pa 149 -283}\special{pa 184 -341}\special{pa 219 -393}\special{pa 254 -439}%
-\special{pa 289 -477}\special{pa 324 -508}\special{pa 359 -531}\special{pa 394 -546}%
-\special{pa 429 -551}\special{pa 464 -548}\special{pa 498 -536}\special{pa 533 -515}%
-\special{pa 568 -486}\special{pa 603 -449}\special{pa 638 -405}\special{pa 673 -354}%
-\special{pa 708 -298}\special{pa 743 -237}\special{pa 778 -172}\special{pa 813 -104}%
-\special{pa 848 -35}\special{pa 883 35}\special{pa 918 104}\special{pa 953 172}\special{pa 988 237}%
-\special{pa 1023 298}\special{pa 1058 354}\special{pa 1093 405}\special{pa 1128 449}%
-\special{pa 1163 486}\special{pa 1198 515}\special{pa 1233 536}\special{pa 1268 548}%
-\special{pa 1303 551}\special{pa 1338 546}\special{pa 1373 531}\special{pa 1408 508}%
-\special{pa 1443 477}\special{pa 1478 439}\special{pa 1513 393}\special{pa 1548 341}%
-\special{pa 1583 283}\special{pa 1618 221}\special{pa 1653 155}\special{pa 1688 87}%
-\special{pa 1723 17}\special{pa 1758 -52}\special{pa 1793 -121}\special{pa 1828 -189}%
-\special{pa 1863 -253}\special{pa 1898 -313}\special{pa 1933 -368}\special{pa 1968 -417}%
-\special{pa 2003 -459}\special{pa 2038 -494}\special{pa 2073 -521}\special{pa 2108 -539}%
-\special{pa 2143 -549}\special{pa 2178 -551}\special{pa 2213 -543}\special{pa 2248 -526}%
-\special{pa 2283 -501}\special{pa 2318 -468}\special{pa 2353 -428}\special{pa 2387 -380}%
-\special{pa 2422 -327}\special{pa 2457 -268}\special{pa 2492 -205}\special{pa 2527 -138}%
-\special{pa 2562 -70}\special{pa 2597 0}%
-\special{fp}%
-\special{pa -1102 -34}\special{pa 2756 -517}%
-\special{fp}%
-\special{pa -1102 34}\special{pa 2756 517}%
-\special{fp}%
-\special{pn 8}%
-\special{pa -1102 0}\special{pa 2756 0}%
-\special{fp}%
-\special{pn 8}%
-\special{pa 2681 24}\special{pa 2756 0}\special{pa 2681 -24}\special{pa 2681 0}\special{pa 2681 24}%
-\special{sh 1}\special{ip}%
-\special{pn 8}%
-\special{pa 2681 24}\special{pa 2756 0}\special{pa 2681 -24}\special{pa 2681 0}\special{pa 2681 24}%
-\special{fp}%
-\special{pn 8}%
-\special{pn 8}%
-\special{pa 0 827}\special{pa 0 -827}%
-\special{fp}%
-\special{pn 8}%
-\special{pa 24 -752}\special{pa 0 -827}\special{pa -24 -752}\special{pa 0 -752}\special{pa 24 -752}%
-\special{sh 1}\special{ip}%
-\special{pn 8}%
-\special{pa 24 -752}\special{pa 0 -827}\special{pa -24 -752}\special{pa 0 -752}\special{pa 24 -752}%
-\special{fp}%
-\special{pn 8}%
-\settowidth{\Width}{$x$}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{$x$}\settodepth{\Depth}{$x$}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(10.0500,0.0000){\hspace*{\Width}\raisebox{\Height}{$x$}}%
-%
-%
-\settowidth{\Width}{$y$}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{$y$}\settodepth{\Depth}{$y$}\setlength{\Height}{\Depth}%
-\put(0.0000,3.0500){\hspace*{\Width}\raisebox{\Height}{$y$}}%
-%
-%
-\settowidth{\Width}{O}\setlength{\Width}{-1\Width}%
-\settoheight{\Height}{O}\settodepth{\Depth}{O}\setlength{\Height}{\Depth}%
-\put(-0.0500,0.0500){\hspace*{\Width}\raisebox{\Height}{O}}%
-%
-%
-\end{picture}}% \ No newline at end of file
diff --git a/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/hatch4.tex b/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/hatch4.tex
deleted file mode 100644
index 5fb6d004..00000000
--- a/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/hatch4.tex
+++ /dev/null
@@ -1,172 +0,0 @@
-%%% hatch5.tex 2014-11-8 4:2
-%%% shade.sce 2014-11-8 1:26
-{\unitlength=7mm%
-\begin{picture}%
-( 11.00000, 6.00000)( -2.00000, -3.00000)%
-\special{pn 8}%
-%
-\special{pn 6}%
-\special{pa 2480 482}\special{pa 2480 482}%
-\special{fp}%
-\special{pa 2436 477}\special{pa 2480 433}%
-\special{fp}%
-\special{pa 2393 471}\special{pa 2480 384}%
-\special{fp}%
-\special{pa 2350 466}\special{pa 2480 336}%
-\special{fp}%
-\special{pa 2307 461}\special{pa 2480 287}%
-\special{fp}%
-\special{pa 2263 455}\special{pa 2480 238}%
-\special{fp}%
-\special{pa 2220 450}\special{pa 2480 189}%
-\special{fp}%
-\special{pa 2177 444}\special{pa 2480 141}%
-\special{fp}%
-\special{pa 2133 439}\special{pa 2480 92}%
-\special{fp}%
-\special{pa 2090 433}\special{pa 2480 43}%
-\special{fp}%
-\special{pa 2047 428}\special{pa 2480 -5}%
-\special{fp}%
-\special{pa 2003 423}\special{pa 2480 -54}%
-\special{fp}%
-\special{pa 1960 417}\special{pa 2480 -103}%
-\special{fp}%
-\special{pa 1917 412}\special{pa 2480 -152}%
-\special{fp}%
-\special{pa 1874 406}\special{pa 2480 -200}%
-\special{fp}%
-\special{pa 1830 401}\special{pa 2472 -241}%
-\special{fp}%
-\special{pa 1787 396}\special{pa 2455 -272}%
-\special{fp}%
-\special{pa 1744 390}\special{pa 2437 -303}%
-\special{fp}%
-\special{pa 1700 385}\special{pa 2418 -333}%
-\special{fp}%
-\special{pa 1657 379}\special{pa 2399 -363}%
-\special{fp}%
-\special{pa 1614 374}\special{pa 2379 -392}%
-\special{fp}%
-\special{pa 1570 369}\special{pa 2359 -420}%
-\special{fp}%
-\special{pa 1545 345}\special{pa 2337 -446}%
-\special{fp}%
-\special{pa 1615 227}\special{pa 2301 -460}%
-\special{fp}%
-\special{pa 1669 124}\special{pa 2246 -453}%
-\special{fp}%
-\special{pa 1719 25}\special{pa 2190 -446}%
-\special{fp}%
-\special{pa 1768 -73}\special{pa 2134 -439}%
-\special{fp}%
-\special{pa 1820 -173}\special{pa 2079 -432}%
-\special{fp}%
-\special{pa 1880 -282}\special{pa 2023 -425}%
-\special{fp}%
-\special{pa 1007 298}\special{pa 1018 288}%
-\special{fp}%
-\special{pa 964 293}\special{pa 1000 257}%
-\special{fp}%
-\special{pa 921 287}\special{pa 982 226}%
-\special{fp}%
-\special{pa 878 282}\special{pa 965 194}%
-\special{fp}%
-\special{pa 834 277}\special{pa 948 162}%
-\special{fp}%
-\special{pa 791 271}\special{pa 932 130}%
-\special{fp}%
-\special{pa 748 266}\special{pa 915 98}%
-\special{fp}%
-\special{pa 704 260}\special{pa 899 66}%
-\special{fp}%
-\special{pa 661 255}\special{pa 882 33}%
-\special{fp}%
-\special{pa 618 249}\special{pa 866 1}%
-\special{fp}%
-\special{pa 574 244}\special{pa 850 -32}%
-\special{fp}%
-\special{pa 531 239}\special{pa 834 -64}%
-\special{fp}%
-\special{pa 488 233}\special{pa 817 -96}%
-\special{fp}%
-\special{pa 444 228}\special{pa 801 -129}%
-\special{fp}%
-\special{pa 401 222}\special{pa 784 -161}%
-\special{fp}%
-\special{pa 358 217}\special{pa 767 -192}%
-\special{fp}%
-\special{pa 315 212}\special{pa 750 -224}%
-\special{fp}%
-\special{pa 271 206}\special{pa 733 -255}%
-\special{fp}%
-\special{pa 228 201}\special{pa 687 -258}%
-\special{fp}%
-\special{pa 185 195}\special{pa 631 -251}%
-\special{fp}%
-\special{pa 141 190}\special{pa 575 -244}%
-\special{fp}%
-\special{pa 98 184}\special{pa 520 -237}%
-\special{fp}%
-\special{pa 55 179}\special{pa 464 -230}%
-\special{fp}%
-\special{pa 11 174}\special{pa 408 -223}%
-\special{fp}%
-\special{pa -32 168}\special{pa 353 -216}%
-\special{fp}%
-\special{pa -75 163}\special{pa 297 -209}%
-\special{fp}%
-\special{pa -39 78}\special{pa 241 -202}%
-\special{fp}%
-\special{pa 10 -20}\special{pa 186 -195}%
-\special{fp}%
-\special{pa 60 -118}\special{pa 130 -188}%
-\special{fp}%
-\special{pn 8}%
-\special{pa -551 501}\special{pa -551 501}\special{pa -516 526}\special{pa -481 543}%
-\special{pa -446 551}\special{pa -411 549}\special{pa -376 539}\special{pa -341 521}%
-\special{pa -306 494}\special{pa -271 459}\special{pa -236 417}\special{pa -201 368}%
-\special{pa -166 313}\special{pa -131 253}\special{pa -96 189}\special{pa -61 121}%
-\special{pa -26 52}\special{pa 9 -17}\special{pa 44 -87}\special{pa 79 -155}\special{pa 114 -221}%
-\special{pa 149 -283}\special{pa 184 -341}\special{pa 219 -393}\special{pa 254 -439}%
-\special{pa 289 -477}\special{pa 324 -508}\special{pa 359 -531}\special{pa 394 -546}%
-\special{pa 429 -551}\special{pa 464 -548}\special{pa 498 -536}\special{pa 533 -515}%
-\special{pa 568 -486}\special{pa 603 -449}\special{pa 638 -405}\special{pa 673 -354}%
-\special{pa 708 -298}\special{pa 743 -237}\special{pa 778 -172}\special{pa 813 -104}%
-\special{pa 848 -35}\special{pa 883 35}\special{pa 918 104}\special{pa 953 172}\special{pa 988 237}%
-\special{pa 1023 298}\special{pa 1058 354}\special{pa 1093 405}\special{pa 1128 449}%
-\special{pa 1163 486}\special{pa 1198 515}\special{pa 1233 536}\special{pa 1268 548}%
-\special{pa 1303 551}\special{pa 1338 546}\special{pa 1373 531}\special{pa 1408 508}%
-\special{pa 1443 477}\special{pa 1478 439}\special{pa 1513 393}\special{pa 1548 341}%
-\special{pa 1583 283}\special{pa 1618 221}\special{pa 1653 155}\special{pa 1688 87}%
-\special{pa 1723 17}\special{pa 1758 -52}\special{pa 1793 -121}\special{pa 1828 -189}%
-\special{pa 1863 -253}\special{pa 1898 -313}\special{pa 1933 -368}\special{pa 1968 -417}%
-\special{pa 2003 -459}\special{pa 2038 -494}\special{pa 2073 -521}\special{pa 2108 -539}%
-\special{pa 2143 -549}\special{pa 2178 -551}\special{pa 2213 -543}\special{pa 2248 -526}%
-\special{pa 2283 -501}\special{pa 2318 -468}\special{pa 2353 -428}\special{pa 2387 -380}%
-\special{pa 2422 -327}\special{pa 2457 -268}\special{pa 2480 -227}%
-\special{fp}%
-\special{pa -551 -103}\special{pa 2480 -482}%
-\special{fp}%
-\special{pa -551 103}\special{pa 2480 482}%
-\special{fp}%
-\special{pa -551 0}\special{pa 2480 0}%
-\special{fp}%
-\special{pa 0 827}\special{pa 0 -827}%
-\special{fp}%
-\settowidth{\Width}{$x$}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{$x$}\settodepth{\Depth}{$x$}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(9.0500,0.0000){\hspace*{\Width}\raisebox{\Height}{$x$}}%
-%
-%
-\settowidth{\Width}{$y$}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{$y$}\settodepth{\Depth}{$y$}\setlength{\Height}{\Depth}%
-\put(0.0000,3.0500){\hspace*{\Width}\raisebox{\Height}{$y$}}%
-%
-%
-\settowidth{\Width}{O}\setlength{\Width}{-1\Width}%
-\settoheight{\Height}{O}\settodepth{\Depth}{O}\setlength{\Height}{\Depth}%
-\put(-0.0500,0.0500){\hspace*{\Width}\raisebox{\Height}{O}}%
-%
-%
-\end{picture}}% \ No newline at end of file
diff --git a/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/hatch5.tex b/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/hatch5.tex
deleted file mode 100644
index 975d9848..00000000
--- a/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/hatch5.tex
+++ /dev/null
@@ -1,136 +0,0 @@
-%%% hatch6.tex 2014-11-9 5:13
-%%% hatch6.sce 2014-11-9 4:59
-{\unitlength=7mm%
-\begin{picture}%
-( 7.00000, 10.00000)( -2.00000, -5.00000)%
-\special{pn 8}%
-%
-\special{pn 6}%
-\special{pa 535 1096}\special{pa 648 984}%
-\special{fp}%
-\special{pa 505 1078}\special{pa 675 908}%
-\special{fp}%
-\special{pa 482 1052}\special{pa 693 841}%
-\special{fp}%
-\special{pa 462 1023}\special{pa 710 775}%
-\special{fp}%
-\special{pa 444 992}\special{pa 722 715}%
-\special{fp}%
-\special{pa 428 960}\special{pa 734 654}%
-\special{fp}%
-\special{pa 413 926}\special{pa 745 594}%
-\special{fp}%
-\special{pa 398 893}\special{pa 755 535}%
-\special{fp}%
-\special{pa 384 858}\special{pa 764 478}%
-\special{fp}%
-\special{pa 370 823}\special{pa 772 421}%
-\special{fp}%
-\special{pa 357 787}\special{pa 781 363}%
-\special{fp}%
-\special{pa 344 751}\special{pa 789 306}%
-\special{fp}%
-\special{pa 331 715}\special{pa 796 251}%
-\special{fp}%
-\special{pa 319 679}\special{pa 803 195}%
-\special{fp}%
-\special{pa 306 643}\special{pa 810 140}%
-\special{fp}%
-\special{pa 294 606}\special{pa 816 84}%
-\special{fp}%
-\special{pa 282 570}\special{pa 823 29}%
-\special{fp}%
-\special{pa 270 533}\special{pa 829 -26}%
-\special{fp}%
-\special{pa 257 497}\special{pa 835 -81}%
-\special{fp}%
-\special{pa 245 461}\special{pa 840 -135}%
-\special{fp}%
-\special{pa 233 424}\special{pa 846 -189}%
-\special{fp}%
-\special{pa 220 388}\special{pa 851 -243}%
-\special{fp}%
-\special{pa 208 352}\special{pa 857 -297}%
-\special{fp}%
-\special{pa 195 316}\special{pa 862 -352}%
-\special{fp}%
-\special{pa 181 281}\special{pa 868 -405}%
-\special{fp}%
-\special{pa 168 246}\special{pa 872 -459}%
-\special{fp}%
-\special{pa 154 211}\special{pa 877 -512}%
-\special{fp}%
-\special{pa 139 177}\special{pa 881 -565}%
-\special{fp}%
-\special{pa 124 143}\special{pa 886 -619}%
-\special{fp}%
-\special{pa 107 111}\special{pa 890 -672}%
-\special{fp}%
-\special{pa 90 80}\special{pa 895 -725}%
-\special{fp}%
-\special{pa 70 51}\special{pa 899 -778}%
-\special{fp}%
-\special{pa 47 25}\special{pa 904 -832}%
-\special{fp}%
-\special{pa 17 7}\special{pa 908 -884}%
-\special{fp}%
-\special{pa 101 -126}\special{pa 912 -937}%
-\special{fp}%
-\special{pn 8}%
-\special{pa -303 1378}\special{pa -276 1102}\special{pa -236 781}\special{pa -197 522}%
-\special{pa -157 321}\special{pa -118 174}\special{pa -79 74}\special{pa -39 18}\special{pa 0 0}%
-\special{pa 39 16}\special{pa 79 61}\special{pa 118 130}\special{pa 157 219}\special{pa 197 321}%
-\special{pa 236 434}\special{pa 276 551}\special{pa 315 668}\special{pa 354 781}\special{pa 394 884}%
-\special{pa 433 972}\special{pa 472 1041}\special{pa 512 1086}\special{pa 551 1102}%
-\special{pa 591 1085}\special{pa 630 1028}\special{pa 669 929}\special{pa 709 781}%
-\special{pa 748 580}\special{pa 787 321}\special{pa 827 0}\special{pa 866 -389}\special{pa 906 -850}%
-\special{pa 944 -1378}%
-\special{fp}%
-\special{pa -551 552}\special{pa -512 511}\special{pa -472 470}\special{pa -433 429}%
-\special{pa -394 388}\special{pa -354 347}\special{pa -315 307}\special{pa -276 266}%
-\special{pa -236 225}\special{pa -197 184}\special{pa -157 143}\special{pa -118 102}%
-\special{pa -79 61}\special{pa -39 20}\special{pa 0 -21}\special{pa 39 -62}\special{pa 79 -103}%
-\special{pa 118 -144}\special{pa 157 -185}\special{pa 197 -226}\special{pa 236 -267}%
-\special{pa 276 -308}\special{pa 315 -349}\special{pa 354 -390}\special{pa 394 -431}%
-\special{pa 433 -471}\special{pa 472 -512}\special{pa 512 -553}\special{pa 551 -594}%
-\special{pa 591 -635}\special{pa 630 -676}\special{pa 669 -717}\special{pa 709 -758}%
-\special{pa 748 -799}\special{pa 787 -840}\special{pa 827 -881}\special{pa 866 -922}%
-\special{pa 906 -963}\special{pa 945 -1004}\special{pa 984 -1045}\special{pa 1024 -1086}%
-\special{pa 1063 -1127}\special{pa 1102 -1168}\special{pa 1142 -1208}\special{pa 1181 -1249}%
-\special{pa 1220 -1290}\special{pa 1260 -1331}\special{pa 1299 -1372}\special{pa 1305 -1378}%
-\special{fp}%
-\special{pa -44 25}\special{pa -39 18}\special{pa 0 0}\special{pa 39 16}\special{pa 79 61}%
-\special{pa 118 130}\special{pa 157 219}\special{pa 197 321}\special{pa 236 434}\special{pa 276 551}%
-\special{pa 315 668}\special{pa 354 781}\special{pa 394 884}\special{pa 433 972}\special{pa 472 1041}%
-\special{pa 512 1086}\special{pa 551 1102}\special{pa 591 1085}\special{pa 630 1028}%
-\special{pa 669 929}\special{pa 709 781}\special{pa 748 580}\special{pa 787 321}\special{pa 827 0}%
-\special{pa 866 -389}\special{pa 906 -850}\special{pa 914 -970}%
-\special{fp}%
-\special{pa -44 25}\special{pa -39 20}\special{pa 0 -21}\special{pa 39 -62}\special{pa 79 -103}%
-\special{pa 118 -144}\special{pa 157 -185}\special{pa 197 -226}\special{pa 236 -267}%
-\special{pa 276 -308}\special{pa 315 -349}\special{pa 354 -390}\special{pa 394 -431}%
-\special{pa 433 -471}\special{pa 472 -512}\special{pa 512 -553}\special{pa 551 -594}%
-\special{pa 591 -635}\special{pa 630 -676}\special{pa 669 -717}\special{pa 709 -758}%
-\special{pa 748 -799}\special{pa 787 -840}\special{pa 827 -881}\special{pa 866 -922}%
-\special{pa 906 -963}\special{pa 914 -971}%
-\special{fp}%
-\special{pa -551 0}\special{pa 1378 0}%
-\special{fp}%
-\special{pa 0 1378}\special{pa 0 -1378}%
-\special{fp}%
-\settowidth{\Width}{$x$}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{$x$}\settodepth{\Depth}{$x$}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(5.0500,0.0000){\hspace*{\Width}\raisebox{\Height}{$x$}}%
-%
-%
-\settowidth{\Width}{$y$}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{$y$}\settodepth{\Depth}{$y$}\setlength{\Height}{\Depth}%
-\put(0.0000,5.0500){\hspace*{\Width}\raisebox{\Height}{$y$}}%
-%
-%
-\settowidth{\Width}{O}\setlength{\Width}{-1\Width}%
-\settoheight{\Height}{O}\settodepth{\Depth}{O}\setlength{\Height}{\Depth}%
-\put(-0.0500,0.0500){\hspace*{\Width}\raisebox{\Height}{O}}%
-%
-%
-\end{picture}}% \ No newline at end of file
diff --git a/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/histgram.tex b/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/histgram.tex
deleted file mode 100644
index 42c86354..00000000
--- a/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/histgram.tex
+++ /dev/null
@@ -1,137 +0,0 @@
-%%% t5histplot.tex 2016-4-23 11:21
-%%% t5histplot.sce 2016-4-23 11:21
-{\unitlength=0.6mm%
-\begin{picture}%
-( 132.11000, 89.65000)( -18.31000, -8.10000)%
-\special{pn 8}%
-%
-\special{pa 472 0}\special{pa 472 -709}\special{pa 709 -709}\special{pa 709 0}\special{pa 472 0}%
-\special{fp}%
-\special{pa 709 0}\special{pa 709 -236}\special{pa 945 -236}\special{pa 945 0}\special{pa 709 0}%
-\special{fp}%
-\special{pa 945 0}\special{pa 1181 0}\special{pa 945 0}%
-\special{fp}%
-\special{pa 1181 0}\special{pa 1181 -1654}\special{pa 1417 -1654}\special{pa 1417 0}%
-\special{pa 1181 0}%
-\special{fp}%
-\special{pa 1417 0}\special{pa 1417 -945}\special{pa 1654 -945}\special{pa 1654 0}%
-\special{pa 1417 0}%
-\special{fp}%
-\special{pa 1654 0}\special{pa 1654 -827}\special{pa 1890 -827}\special{pa 1890 0}%
-\special{pa 1654 0}%
-\special{fp}%
-\special{pa 1890 0}\special{pa 1890 -1654}\special{pa 2126 -1654}\special{pa 2126 0}%
-\special{pa 1890 0}%
-\special{fp}%
-\special{pa 2126 0}\special{pa 2126 -827}\special{pa 2362 -827}\special{pa 2362 0}%
-\special{pa 2126 0}%
-\special{fp}%
-\special{pa -118 0}\special{pa 2480 0}\special{pa 2480 -1772}\special{pa -118 -1772}%
-\special{pa -118 0}%
-\special{fp}%
-\settowidth{\Width}{$0$}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{$0$}\settodepth{\Depth}{$0$}\setlength{\Height}{-\Height}%
-\put(0.0000,-0.1500){\hspace*{\Width}\raisebox{\Height}{$0$}}%
-%
-%
-\special{pa 0 0}\special{pa 0 2}%
-\special{fp}%
-\settowidth{\Width}{$10$}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{$10$}\settodepth{\Depth}{$10$}\setlength{\Height}{-\Height}%
-\put(10.0000,-0.1500){\hspace*{\Width}\raisebox{\Height}{$10$}}%
-%
-%
-\special{pa 236 0}\special{pa 236 2}%
-\special{fp}%
-\settowidth{\Width}{$20$}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{$20$}\settodepth{\Depth}{$20$}\setlength{\Height}{-\Height}%
-\put(20.0000,-0.1500){\hspace*{\Width}\raisebox{\Height}{$20$}}%
-%
-%
-\special{pa 472 0}\special{pa 472 2}%
-\special{fp}%
-\settowidth{\Width}{$30$}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{$30$}\settodepth{\Depth}{$30$}\setlength{\Height}{-\Height}%
-\put(30.0000,-0.1500){\hspace*{\Width}\raisebox{\Height}{$30$}}%
-%
-%
-\special{pa 709 0}\special{pa 709 2}%
-\special{fp}%
-\settowidth{\Width}{$40$}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{$40$}\settodepth{\Depth}{$40$}\setlength{\Height}{-\Height}%
-\put(40.0000,-0.1500){\hspace*{\Width}\raisebox{\Height}{$40$}}%
-%
-%
-\special{pa 945 0}\special{pa 945 2}%
-\special{fp}%
-\settowidth{\Width}{$50$}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{$50$}\settodepth{\Depth}{$50$}\setlength{\Height}{-\Height}%
-\put(50.0000,-0.1500){\hspace*{\Width}\raisebox{\Height}{$50$}}%
-%
-%
-\special{pa 1181 0}\special{pa 1181 2}%
-\special{fp}%
-\settowidth{\Width}{$60$}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{$60$}\settodepth{\Depth}{$60$}\setlength{\Height}{-\Height}%
-\put(60.0000,-0.1500){\hspace*{\Width}\raisebox{\Height}{$60$}}%
-%
-%
-\special{pa 1417 0}\special{pa 1417 2}%
-\special{fp}%
-\settowidth{\Width}{$70$}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{$70$}\settodepth{\Depth}{$70$}\setlength{\Height}{-\Height}%
-\put(70.0000,-0.1500){\hspace*{\Width}\raisebox{\Height}{$70$}}%
-%
-%
-\special{pa 1654 0}\special{pa 1654 2}%
-\special{fp}%
-\settowidth{\Width}{$80$}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{$80$}\settodepth{\Depth}{$80$}\setlength{\Height}{-\Height}%
-\put(80.0000,-0.1500){\hspace*{\Width}\raisebox{\Height}{$80$}}%
-%
-%
-\special{pa 1890 0}\special{pa 1890 2}%
-\special{fp}%
-\settowidth{\Width}{$90$}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{$90$}\settodepth{\Depth}{$90$}\setlength{\Height}{-\Height}%
-\put(90.0000,-0.1500){\hspace*{\Width}\raisebox{\Height}{$90$}}%
-%
-%
-\special{pa 2126 0}\special{pa 2126 2}%
-\special{fp}%
-\settowidth{\Width}{$100$}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{$100$}\settodepth{\Depth}{$100$}\setlength{\Height}{-\Height}%
-\put(100.0000,-0.1500){\hspace*{\Width}\raisebox{\Height}{$100$}}%
-%
-%
-\special{pa 2362 0}\special{pa 2362 2}%
-\special{fp}%
-\settowidth{\Width}{$0$}\setlength{\Width}{-1\Width}%
-\settoheight{\Height}{$0$}\settodepth{\Depth}{$0$}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(-5.1500,0.0000){\hspace*{\Width}\raisebox{\Height}{$0$}}%
-%
-%
-\special{pa -118 0}\special{pa -120 0}%
-\special{fp}%
-\settowidth{\Width}{$5$}\setlength{\Width}{-1\Width}%
-\settoheight{\Height}{$5$}\settodepth{\Depth}{$5$}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(-5.1500,25.0000){\hspace*{\Width}\raisebox{\Height}{$5$}}%
-%
-%
-\special{pa -118 -591}\special{pa -120 -591}%
-\special{fp}%
-\settowidth{\Width}{$10$}\setlength{\Width}{-1\Width}%
-\settoheight{\Height}{$10$}\settodepth{\Depth}{$10$}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(-5.1500,50.0000){\hspace*{\Width}\raisebox{\Height}{$10$}}%
-%
-%
-\special{pa -118 -1181}\special{pa -120 -1181}%
-\special{fp}%
-\settowidth{\Width}{$15$}\setlength{\Width}{-1\Width}%
-\settoheight{\Height}{$15$}\settodepth{\Depth}{$15$}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(-5.1500,75.0000){\hspace*{\Width}\raisebox{\Height}{$15$}}%
-%
-%
-\special{pa -118 -1772}\special{pa -120 -1772}%
-\special{fp}%
-\end{picture}}% \ No newline at end of file
diff --git a/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/htickmark.tex b/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/htickmark.tex
deleted file mode 100644
index 372cf63c..00000000
--- a/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/htickmark.tex
+++ /dev/null
@@ -1,123 +0,0 @@
-%%% test.tex 2014-11-11 13:14
-%%% test.sce 2014-11-11 13:14
-{\unitlength=6mm%
-\begin{picture}%
-( 12.00000, 6.00000)( -6.00000, -3.00000)%
-\special{pn 8}%
-%
-\special{pa -1181 -20}\special{pa -1181 20}%
-\special{fp}%
-\settowidth{\Width}{$-5$}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{$-5$}\settodepth{\Depth}{$-5$}\setlength{\Height}{-\Height}%
-\put(-5.0000,-0.1333){\hspace*{\Width}\raisebox{\Height}{$-5$}}%
-%
-%
-%
-\special{pa -945 -20}\special{pa -945 20}%
-\special{fp}%
-\settowidth{\Width}{$-4$}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{$-4$}\settodepth{\Depth}{$-4$}\setlength{\Height}{-\Height}%
-\put(-4.0000,-0.1333){\hspace*{\Width}\raisebox{\Height}{$-4$}}%
-%
-%
-%
-\special{pa -709 -20}\special{pa -709 20}%
-\special{fp}%
-\settowidth{\Width}{$-3$}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{$-3$}\settodepth{\Depth}{$-3$}\setlength{\Height}{-\Height}%
-\put(-3.0000,-0.1333){\hspace*{\Width}\raisebox{\Height}{$-3$}}%
-%
-%
-%
-\special{pa -472 -20}\special{pa -472 20}%
-\special{fp}%
-\settowidth{\Width}{$-2$}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{$-2$}\settodepth{\Depth}{$-2$}\setlength{\Height}{-\Height}%
-\put(-2.0000,-0.1333){\hspace*{\Width}\raisebox{\Height}{$-2$}}%
-%
-%
-%
-\special{pa -236 -20}\special{pa -236 20}%
-\special{fp}%
-\settowidth{\Width}{$-1$}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{$-1$}\settodepth{\Depth}{$-1$}\setlength{\Height}{-\Height}%
-\put(-1.0000,-0.1333){\hspace*{\Width}\raisebox{\Height}{$-1$}}%
-%
-%
-%
-\special{pa 236 -20}\special{pa 236 20}%
-\special{fp}%
-\settowidth{\Width}{$1$}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{$1$}\settodepth{\Depth}{$1$}\setlength{\Height}{-\Height}%
-\put(1.0000,-0.1333){\hspace*{\Width}\raisebox{\Height}{$1$}}%
-%
-%
-%
-\special{pa 472 -20}\special{pa 472 20}%
-\special{fp}%
-\settowidth{\Width}{$2$}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{$2$}\settodepth{\Depth}{$2$}\setlength{\Height}{-\Height}%
-\put(2.0000,-0.1333){\hspace*{\Width}\raisebox{\Height}{$2$}}%
-%
-%
-%
-\special{pa 709 -20}\special{pa 709 20}%
-\special{fp}%
-\settowidth{\Width}{$3$}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{$3$}\settodepth{\Depth}{$3$}\setlength{\Height}{-\Height}%
-\put(3.0000,-0.1333){\hspace*{\Width}\raisebox{\Height}{$3$}}%
-%
-%
-%
-\special{pa 945 -20}\special{pa 945 20}%
-\special{fp}%
-\settowidth{\Width}{$4$}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{$4$}\settodepth{\Depth}{$4$}\setlength{\Height}{-\Height}%
-\put(4.0000,-0.1333){\hspace*{\Width}\raisebox{\Height}{$4$}}%
-%
-%
-%
-\special{pa 1181 -20}\special{pa 1181 20}%
-\special{fp}%
-\settowidth{\Width}{$5$}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{$5$}\settodepth{\Depth}{$5$}\setlength{\Height}{-\Height}%
-\put(5.0000,-0.1333){\hspace*{\Width}\raisebox{\Height}{$5$}}%
-%
-%
-%
-\special{pn 8}%
-\special{pa -1417 0}\special{pa 1417 0}%
-\special{fp}%
-\special{pn 8}%
-\special{pa 1342 24}\special{pa 1417 0}\special{pa 1342 -24}\special{pa 1342 0}\special{pa 1342 24}%
-\special{sh 1}\special{ip}%
-\special{pn 8}%
-\special{pa 1342 24}\special{pa 1417 0}\special{pa 1342 -24}\special{pa 1342 0}\special{pa 1342 24}%
-\special{fp}%
-\special{pn 8}%
-\special{pn 8}%
-\special{pa 0 709}\special{pa 0 -709}%
-\special{fp}%
-\special{pn 8}%
-\special{pa 24 -634}\special{pa 0 -709}\special{pa -24 -634}\special{pa 0 -634}\special{pa 24 -634}%
-\special{sh 1}\special{ip}%
-\special{pn 8}%
-\special{pa 24 -634}\special{pa 0 -709}\special{pa -24 -634}\special{pa 0 -634}\special{pa 24 -634}%
-\special{fp}%
-\special{pn 8}%
-\settowidth{\Width}{$x$}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{$x$}\settodepth{\Depth}{$x$}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(6.0500,0.0000){\hspace*{\Width}\raisebox{\Height}{$x$}}%
-%
-%
-\settowidth{\Width}{$y$}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{$y$}\settodepth{\Depth}{$y$}\setlength{\Height}{\Depth}%
-\put(0.0000,3.0500){\hspace*{\Width}\raisebox{\Height}{$y$}}%
-%
-%
-\settowidth{\Width}{O}\setlength{\Width}{-1\Width}%
-\settoheight{\Height}{O}\settodepth{\Depth}{O}\setlength{\Height}{-\Height}%
-\put(-0.0500,-0.0500){\hspace*{\Width}\raisebox{\Height}{O}}%
-%
-%
-\end{picture}}% \ No newline at end of file
diff --git a/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/hyper1.tex b/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/hyper1.tex
deleted file mode 100644
index bce4b6c5..00000000
--- a/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/hyper1.tex
+++ /dev/null
@@ -1,145 +0,0 @@
-%%% fig.tex 2015-8-10 11:14
-%%% fig.sce 2015-8-10 11:14
-{\unitlength=8mm%
-\begin{picture}%
-( 7.00000, 5.00000)( -3.50000, -2.50000)%
-\special{pn 8}%
-%
-\special{pa 908 787}\special{pa 862 734}\special{pa 791 650}\special{pa 728 573}\special{pa 673 502}%
-\special{pa 625 436}\special{pa 584 374}\special{pa 548 317}\special{pa 519 263}\special{pa 494 211}%
-\special{pa 475 162}\special{pa 461 115}\special{pa 452 68}\special{pa 447 23}\special{pa 447 -23}%
-\special{pa 452 -68}\special{pa 461 -115}\special{pa 475 -162}\special{pa 494 -211}%
-\special{pa 519 -263}\special{pa 548 -317}\special{pa 584 -374}\special{pa 625 -436}%
-\special{pa 673 -502}\special{pa 728 -573}\special{pa 791 -650}\special{pa 862 -734}%
-\special{pa 908 -787}%
-\special{fp}%
-\special{pa -908 787}\special{pa -862 734}\special{pa -791 650}\special{pa -728 573}%
-\special{pa -673 502}\special{pa -625 436}\special{pa -584 374}\special{pa -548 317}%
-\special{pa -519 263}\special{pa -494 211}\special{pa -475 162}\special{pa -461 115}%
-\special{pa -452 68}\special{pa -447 23}\special{pa -447 -23}\special{pa -452 -68}%
-\special{pa -461 -115}\special{pa -475 -162}\special{pa -494 -211}\special{pa -519 -263}%
-\special{pa -548 -317}\special{pa -584 -374}\special{pa -625 -436}\special{pa -673 -502}%
-\special{pa -728 -573}\special{pa -791 -650}\special{pa -862 -734}\special{pa -908 -787}%
-\special{fp}%
-\special{pn 8}%
-\special{pa 796 -790}\special{pa 790 -785}\special{fp}\special{pa 768 -763}\special{pa 762 -757}\special{fp}%
-\special{pa 740 -735}\special{pa 734 -729}\special{fp}\special{pa 712 -707}\special{pa 707 -702}\special{fp}%
-\special{pa 685 -680}\special{pa 679 -674}\special{fp}\special{pa 657 -652}\special{pa 651 -646}\special{fp}%
-\special{pa 629 -624}\special{pa 623 -619}\special{fp}\special{pa 601 -597}\special{pa 595 -591}\special{fp}%
-\special{pa 573 -569}\special{pa 568 -564}\special{fp}\special{pa 545 -542}\special{pa 540 -536}\special{fp}%
-\special{pa 518 -514}\special{pa 512 -508}\special{fp}\special{pa 490 -486}\special{pa 484 -481}\special{fp}%
-\special{pa 462 -459}\special{pa 456 -453}\special{fp}\special{pa 434 -431}\special{pa 428 -425}\special{fp}%
-\special{pa 406 -403}\special{pa 401 -398}\special{fp}\special{pa 378 -376}\special{pa 373 -370}\special{fp}%
-\special{pa 351 -348}\special{pa 345 -343}\special{fp}\special{pa 323 -321}\special{pa 317 -315}\special{fp}%
-\special{pa 295 -293}\special{pa 289 -287}\special{fp}\special{pa 267 -265}\special{pa 261 -260}\special{fp}%
-\special{pa 239 -238}\special{pa 234 -232}\special{fp}\special{pa 212 -210}\special{pa 206 -204}\special{fp}%
-\special{pa 184 -182}\special{pa 178 -177}\special{fp}\special{pa 156 -155}\special{pa 150 -149}\special{fp}%
-\special{pa 128 -127}\special{pa 122 -122}\special{fp}\special{pa 100 -100}\special{pa 95 -94}\special{fp}%
-\special{pa 72 -72}\special{pa 67 -66}\special{fp}\special{pa 45 -44}\special{pa 39 -39}\special{fp}%
-\special{pa 17 -17}\special{pa 11 -11}\special{fp}\special{pa -11 11}\special{pa -17 17}\special{fp}%
-\special{pa -39 39}\special{pa -45 44}\special{fp}\special{pa -67 66}\special{pa -72 72}\special{fp}%
-\special{pa -95 94}\special{pa -100 100}\special{fp}\special{pa -122 122}\special{pa -128 127}\special{fp}%
-\special{pa -150 149}\special{pa -156 155}\special{fp}\special{pa -178 177}\special{pa -184 182}\special{fp}%
-\special{pa -206 204}\special{pa -212 210}\special{fp}\special{pa -234 232}\special{pa -239 238}\special{fp}%
-\special{pa -261 260}\special{pa -267 265}\special{fp}\special{pa -289 287}\special{pa -295 293}\special{fp}%
-\special{pa -317 315}\special{pa -323 321}\special{fp}\special{pa -345 343}\special{pa -351 348}\special{fp}%
-\special{pa -373 370}\special{pa -378 376}\special{fp}\special{pa -401 398}\special{pa -406 403}\special{fp}%
-\special{pa -428 425}\special{pa -434 431}\special{fp}\special{pa -456 453}\special{pa -462 459}\special{fp}%
-\special{pa -484 481}\special{pa -490 486}\special{fp}\special{pa -512 508}\special{pa -518 514}\special{fp}%
-\special{pa -540 536}\special{pa -545 542}\special{fp}\special{pa -568 564}\special{pa -573 569}\special{fp}%
-\special{pa -595 591}\special{pa -601 597}\special{fp}\special{pa -623 619}\special{pa -629 624}\special{fp}%
-\special{pa -651 646}\special{pa -657 652}\special{fp}\special{pa -679 674}\special{pa -685 680}\special{fp}%
-\special{pa -707 702}\special{pa -712 707}\special{fp}\special{pa -734 729}\special{pa -740 735}\special{fp}%
-\special{pa -762 757}\special{pa -768 763}\special{fp}\special{pa -790 785}\special{pa -796 790}\special{fp}%
-\special{pn 8}%
-\special{pa -796 -790}\special{pa -790 -785}\special{fp}\special{pa -768 -763}\special{pa -762 -757}\special{fp}%
-\special{pa -740 -735}\special{pa -734 -729}\special{fp}\special{pa -712 -707}\special{pa -707 -702}\special{fp}%
-\special{pa -685 -680}\special{pa -679 -674}\special{fp}\special{pa -657 -652}\special{pa -651 -646}\special{fp}%
-\special{pa -629 -624}\special{pa -623 -619}\special{fp}\special{pa -601 -597}\special{pa -595 -591}\special{fp}%
-\special{pa -573 -569}\special{pa -568 -564}\special{fp}\special{pa -545 -542}\special{pa -540 -536}\special{fp}%
-\special{pa -518 -514}\special{pa -512 -508}\special{fp}\special{pa -490 -486}\special{pa -484 -481}\special{fp}%
-\special{pa -462 -459}\special{pa -456 -453}\special{fp}\special{pa -434 -431}\special{pa -428 -425}\special{fp}%
-\special{pa -406 -403}\special{pa -401 -398}\special{fp}\special{pa -378 -376}\special{pa -373 -370}\special{fp}%
-\special{pa -351 -348}\special{pa -345 -343}\special{fp}\special{pa -323 -321}\special{pa -317 -315}\special{fp}%
-\special{pa -295 -293}\special{pa -289 -287}\special{fp}\special{pa -267 -265}\special{pa -261 -260}\special{fp}%
-\special{pa -239 -238}\special{pa -234 -232}\special{fp}\special{pa -212 -210}\special{pa -206 -204}\special{fp}%
-\special{pa -184 -182}\special{pa -178 -177}\special{fp}\special{pa -156 -155}\special{pa -150 -149}\special{fp}%
-\special{pa -128 -127}\special{pa -122 -122}\special{fp}\special{pa -100 -100}\special{pa -95 -94}\special{fp}%
-\special{pa -72 -72}\special{pa -67 -66}\special{fp}\special{pa -45 -44}\special{pa -39 -39}\special{fp}%
-\special{pa -17 -17}\special{pa -11 -11}\special{fp}\special{pa 11 11}\special{pa 17 17}\special{fp}%
-\special{pa 39 39}\special{pa 45 44}\special{fp}\special{pa 67 66}\special{pa 72 72}\special{fp}%
-\special{pa 95 94}\special{pa 100 100}\special{fp}\special{pa 122 122}\special{pa 128 127}\special{fp}%
-\special{pa 150 149}\special{pa 156 155}\special{fp}\special{pa 178 177}\special{pa 184 182}\special{fp}%
-\special{pa 206 204}\special{pa 212 210}\special{fp}\special{pa 234 232}\special{pa 239 238}\special{fp}%
-\special{pa 261 260}\special{pa 267 265}\special{fp}\special{pa 289 287}\special{pa 295 293}\special{fp}%
-\special{pa 317 315}\special{pa 323 321}\special{fp}\special{pa 345 343}\special{pa 351 348}\special{fp}%
-\special{pa 373 370}\special{pa 378 376}\special{fp}\special{pa 401 398}\special{pa 406 403}\special{fp}%
-\special{pa 428 425}\special{pa 434 431}\special{fp}\special{pa 456 453}\special{pa 462 459}\special{fp}%
-\special{pa 484 481}\special{pa 490 486}\special{fp}\special{pa 512 508}\special{pa 518 514}\special{fp}%
-\special{pa 540 536}\special{pa 545 542}\special{fp}\special{pa 568 564}\special{pa 573 569}\special{fp}%
-\special{pa 595 591}\special{pa 601 597}\special{fp}\special{pa 623 619}\special{pa 629 624}\special{fp}%
-\special{pa 651 646}\special{pa 657 652}\special{fp}\special{pa 679 674}\special{pa 685 680}\special{fp}%
-\special{pa 707 702}\special{pa 712 707}\special{fp}\special{pa 734 729}\special{pa 740 735}\special{fp}%
-\special{pa 762 757}\special{pa 768 763}\special{fp}\special{pa 790 785}\special{pa 796 790}\special{fp}%
-\special{pn 8}%
-\special{pa -619 -11}\special{pa -626 -15}\special{pa -634 -15}\special{pa -641 -11}%
-\special{pa -645 -4}\special{pa -645 4}\special{pa -641 11}\special{pa -634 15}\special{pa -626 15}%
-\special{pa -619 11}\special{pa -615 4}\special{pa -615 -4}\special{pa -619 -11}\special{sh 1}\special{fp}%
-\special{pa 641 -11}\special{pa 634 -15}\special{pa 626 -15}\special{pa 619 -11}\special{pa 615 -4}%
-\special{pa 615 4}\special{pa 619 11}\special{pa 626 15}\special{pa 634 15}\special{pa 641 11}%
-\special{pa 645 4}\special{pa 645 -4}\special{pa 641 -11}\special{sh 1}\special{fp}%
-\special{pa 579 -360}\special{pa 571 -364}\special{pa 563 -364}\special{pa 556 -360}%
-\special{pa 552 -353}\special{pa 552 -345}\special{pa 556 -337}\special{pa 563 -333}%
-\special{pa 571 -333}\special{pa 579 -337}\special{pa 583 -345}\special{pa 583 -353}%
-\special{pa 579 -360}\special{sh 1}\special{fp}%
-\settowidth{\Width}{A}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{A}\settodepth{\Depth}{A}\setlength{\Height}{-\Height}%
-\put(-2.0000,-0.1500){\hspace*{\Width}\raisebox{\Height}{A}}%
-%
-%
-\settowidth{\Width}{B}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{B}\settodepth{\Depth}{B}\setlength{\Height}{-\Height}%
-\put(2.0000,-0.1500){\hspace*{\Width}\raisebox{\Height}{B}}%
-%
-%
-\settowidth{\Width}{C}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{C}\settodepth{\Depth}{C}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(1.9514,1.1069){\hspace*{\Width}\raisebox{\Height}{C}}%
-%
-%
-\special{pn 8}%
-\special{pa -1102 0}\special{pa 1102 0}%
-\special{fp}%
-\special{pn 8}%
-\special{pa 1027 24}\special{pa 1102 0}\special{pa 1027 -24}\special{pa 1027 0}\special{pa 1027 24}%
-\special{sh 1}\special{ip}%
-\special{pn 8}%
-\special{pa 1027 24}\special{pa 1102 0}\special{pa 1027 -24}\special{pa 1027 0}\special{pa 1027 24}%
-\special{fp}%
-\special{pn 8}%
-\special{pn 8}%
-\special{pa 0 787}\special{pa 0 -787}%
-\special{fp}%
-\special{pn 8}%
-\special{pa 24 -713}\special{pa 0 -787}\special{pa -24 -713}\special{pa 0 -713}\special{pa 24 -713}%
-\special{sh 1}\special{ip}%
-\special{pn 8}%
-\special{pa 24 -713}\special{pa 0 -787}\special{pa -24 -713}\special{pa 0 -713}\special{pa 24 -713}%
-\special{fp}%
-\special{pn 8}%
-\settowidth{\Width}{$x$}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{$x$}\settodepth{\Depth}{$x$}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(3.5500,0.0000){\hspace*{\Width}\raisebox{\Height}{$x$}}%
-%
-%
-\settowidth{\Width}{$y$}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{$y$}\settodepth{\Depth}{$y$}\setlength{\Height}{\Depth}%
-\put(0.0000,2.5500){\hspace*{\Width}\raisebox{\Height}{$y$}}%
-%
-%
-\settowidth{\Width}{O}\setlength{\Width}{-1\Width}%
-\settoheight{\Height}{O}\settodepth{\Depth}{O}\setlength{\Height}{-\Height}%
-\put(-0.0500,-0.0500){\hspace*{\Width}\raisebox{\Height}{O}}%
-%
-%
-\end{picture}}% \ No newline at end of file
diff --git a/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/intersectcrvs1.tex b/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/intersectcrvs1.tex
deleted file mode 100644
index f876721c..00000000
--- a/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/intersectcrvs1.tex
+++ /dev/null
@@ -1,83 +0,0 @@
-%%% Intersectcrvs1.tex 2014-11-9 15:5
-%%% Intersectcrvs2.sce 2014-11-9 15:0
-{\unitlength=0.8cm%
-\begin{picture}%
-( 6.00000, 4.00000)( -2.00000, -2.00000)%
-\special{pn 8}%
-%
-\special{pa -105 102}\special{pa -112 98}\special{pa -121 98}\special{pa -128 102}%
-\special{pa -132 109}\special{pa -132 117}\special{pa -128 125}\special{pa -121 129}%
-\special{pa -112 129}\special{pa -105 125}\special{pa -101 117}\special{pa -101 109}%
-\special{pa -105 102}\special{sh 1}\special{fp}%
-\special{pa 682 -279}\special{pa 675 -283}\special{pa 667 -283}\special{pa 660 -279}%
-\special{pa 656 -272}\special{pa 656 -264}\special{pa 660 -257}\special{pa 667 -253}%
-\special{pa 675 -253}\special{pa 682 -257}\special{pa 686 -264}\special{pa 686 -272}%
-\special{pa 682 -279}\special{sh 1}\special{fp}%
-\settowidth{\Width}{P}\setlength{\Width}{-1\Width}%
-\settoheight{\Height}{P}\settodepth{\Depth}{P}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(-0.4700,-0.3600){\hspace*{\Width}\raisebox{\Height}{P}}%
-%
-%
-\settowidth{\Width}{Q}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{Q}\settodepth{\Depth}{Q}\setlength{\Height}{\Depth}%
-\put(2.1800,0.9000){\hspace*{\Width}\raisebox{\Height}{Q}}%
-%
-%
-\special{pa -630 286}\special{pa -611 294}\special{pa -592 300}\special{pa -573 305}%
-\special{pa -554 309}\special{pa -534 312}\special{pa -515 314}\special{pa -496 315}%
-\special{pa -477 314}\special{pa -458 313}\special{pa -439 310}\special{pa -420 306}%
-\special{pa -401 301}\special{pa -382 295}\special{pa -363 288}\special{pa -344 279}%
-\special{pa -325 270}\special{pa -305 260}\special{pa -286 248}\special{pa -267 236}%
-\special{pa -248 223}\special{pa -229 209}\special{pa -210 195}\special{pa -191 179}%
-\special{pa -172 163}\special{pa -153 147}\special{pa -134 130}\special{pa -115 112}%
-\special{pa -95 94}\special{pa -76 76}\special{pa -57 57}\special{pa -38 38}\special{pa -19 19}%
-\special{pa 0 0}\special{pa 19 -19}\special{pa 38 -38}\special{pa 57 -57}\special{pa 76 -76}%
-\special{pa 95 -94}\special{pa 115 -112}\special{pa 134 -130}\special{pa 153 -147}%
-\special{pa 172 -163}\special{pa 191 -179}\special{pa 210 -195}\special{pa 229 -209}%
-\special{pa 248 -223}\special{pa 267 -236}\special{pa 286 -248}\special{pa 305 -260}%
-\special{pa 325 -270}\special{pa 344 -279}\special{pa 363 -288}\special{pa 382 -295}%
-\special{pa 401 -301}\special{pa 420 -306}\special{pa 439 -310}\special{pa 458 -313}%
-\special{pa 477 -314}\special{pa 496 -315}\special{pa 515 -314}\special{pa 534 -312}%
-\special{pa 554 -309}\special{pa 573 -305}\special{pa 592 -300}\special{pa 611 -294}%
-\special{pa 630 -286}\special{pa 649 -278}\special{pa 668 -268}\special{pa 687 -258}%
-\special{pa 706 -247}\special{pa 725 -234}\special{pa 744 -221}\special{pa 764 -207}%
-\special{pa 783 -192}\special{pa 802 -177}\special{pa 821 -161}\special{pa 840 -144}%
-\special{pa 859 -127}\special{pa 878 -109}\special{pa 897 -91}\special{pa 916 -73}%
-\special{pa 935 -54}\special{pa 954 -35}\special{pa 974 -16}\special{pa 993 3}\special{pa 1012 22}%
-\special{pa 1031 41}\special{pa 1050 60}\special{pa 1069 79}\special{pa 1088 97}\special{pa 1107 115}%
-\special{pa 1126 132}\special{pa 1145 150}\special{pa 1164 166}\special{pa 1183 182}%
-\special{pa 1203 197}\special{pa 1222 212}\special{pa 1241 225}\special{pa 1260 238}%
-\special{fp}%
-\special{pa 760 0}\special{pa 757 -56}\special{pa 746 -111}\special{pa 729 -164}\special{pa 705 -215}%
-\special{pa 675 -262}\special{pa 640 -305}\special{pa 599 -343}\special{pa 554 -376}%
-\special{pa 505 -403}\special{pa 453 -424}\special{pa 398 -438}\special{pa 343 -445}%
-\special{pa 287 -445}\special{pa 231 -438}\special{pa 177 -424}\special{pa 125 -403}%
-\special{pa 76 -376}\special{pa 31 -343}\special{pa -10 -305}\special{pa -45 -262}%
-\special{pa -75 -215}\special{pa -99 -164}\special{pa -116 -111}\special{pa -127 -56}%
-\special{pa -130 0}\special{pa -127 56}\special{pa -116 111}\special{pa -99 164}\special{pa -75 215}%
-\special{pa -45 262}\special{pa -10 305}\special{pa 31 343}\special{pa 76 376}\special{pa 125 403}%
-\special{pa 177 424}\special{pa 231 438}\special{pa 287 445}\special{pa 343 445}\special{pa 398 438}%
-\special{pa 453 424}\special{pa 505 403}\special{pa 554 376}\special{pa 599 343}\special{pa 640 305}%
-\special{pa 675 262}\special{pa 705 215}\special{pa 729 164}\special{pa 746 111}\special{pa 757 56}%
-\special{pa 760 0}%
-\special{fp}%
-\special{pa -630 0}\special{pa 1260 0}%
-\special{fp}%
-\special{pa 0 630}\special{pa 0 -630}%
-\special{fp}%
-\settowidth{\Width}{$x$}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{$x$}\settodepth{\Depth}{$x$}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(4.0500,0.0000){\hspace*{\Width}\raisebox{\Height}{$x$}}%
-%
-%
-\settowidth{\Width}{$y$}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{$y$}\settodepth{\Depth}{$y$}\setlength{\Height}{\Depth}%
-\put(0.0000,2.0500){\hspace*{\Width}\raisebox{\Height}{$y$}}%
-%
-%
-\settowidth{\Width}{O}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{O}\settodepth{\Depth}{O}\setlength{\Height}{-\Height}%
-\put(0.0500,-0.0500){\hspace*{\Width}\raisebox{\Height}{O}}%
-%
-%
-\end{picture}}% \ No newline at end of file
diff --git a/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/intersectcrvs2.tex b/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/intersectcrvs2.tex
deleted file mode 100644
index c5c85056..00000000
--- a/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/intersectcrvs2.tex
+++ /dev/null
@@ -1,83 +0,0 @@
-%%% Intersectcrvs2.tex 2014-11-9 15:4
-%%% Intersectcrvs2.sce 2014-11-9 15:0
-{\unitlength=0.8cm%
-\begin{picture}%
-( 6.00000, 4.00000)( -2.00000, -2.00000)%
-\special{pn 8}%
-%
-\special{pa 682 -279}\special{pa 675 -283}\special{pa 667 -283}\special{pa 660 -279}%
-\special{pa 656 -272}\special{pa 656 -264}\special{pa 660 -257}\special{pa 667 -253}%
-\special{pa 675 -253}\special{pa 682 -257}\special{pa 686 -264}\special{pa 686 -272}%
-\special{pa 682 -279}\special{sh 1}\special{fp}%
-\special{pa -105 102}\special{pa -112 98}\special{pa -121 98}\special{pa -128 102}%
-\special{pa -132 109}\special{pa -132 117}\special{pa -128 125}\special{pa -121 129}%
-\special{pa -112 129}\special{pa -105 125}\special{pa -101 117}\special{pa -101 109}%
-\special{pa -105 102}\special{sh 1}\special{fp}%
-\settowidth{\Width}{P}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{P}\settodepth{\Depth}{P}\setlength{\Height}{\Depth}%
-\put(2.1800,0.9000){\hspace*{\Width}\raisebox{\Height}{P}}%
-%
-%
-\settowidth{\Width}{Q}\setlength{\Width}{-1\Width}%
-\settoheight{\Height}{Q}\settodepth{\Depth}{Q}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(-0.4700,-0.3600){\hspace*{\Width}\raisebox{\Height}{Q}}%
-%
-%
-\special{pa -630 286}\special{pa -611 294}\special{pa -592 300}\special{pa -573 305}%
-\special{pa -554 309}\special{pa -534 312}\special{pa -515 314}\special{pa -496 315}%
-\special{pa -477 314}\special{pa -458 313}\special{pa -439 310}\special{pa -420 306}%
-\special{pa -401 301}\special{pa -382 295}\special{pa -363 288}\special{pa -344 279}%
-\special{pa -325 270}\special{pa -305 260}\special{pa -286 248}\special{pa -267 236}%
-\special{pa -248 223}\special{pa -229 209}\special{pa -210 195}\special{pa -191 179}%
-\special{pa -172 163}\special{pa -153 147}\special{pa -134 130}\special{pa -115 112}%
-\special{pa -95 94}\special{pa -76 76}\special{pa -57 57}\special{pa -38 38}\special{pa -19 19}%
-\special{pa 0 0}\special{pa 19 -19}\special{pa 38 -38}\special{pa 57 -57}\special{pa 76 -76}%
-\special{pa 95 -94}\special{pa 115 -112}\special{pa 134 -130}\special{pa 153 -147}%
-\special{pa 172 -163}\special{pa 191 -179}\special{pa 210 -195}\special{pa 229 -209}%
-\special{pa 248 -223}\special{pa 267 -236}\special{pa 286 -248}\special{pa 305 -260}%
-\special{pa 325 -270}\special{pa 344 -279}\special{pa 363 -288}\special{pa 382 -295}%
-\special{pa 401 -301}\special{pa 420 -306}\special{pa 439 -310}\special{pa 458 -313}%
-\special{pa 477 -314}\special{pa 496 -315}\special{pa 515 -314}\special{pa 534 -312}%
-\special{pa 554 -309}\special{pa 573 -305}\special{pa 592 -300}\special{pa 611 -294}%
-\special{pa 630 -286}\special{pa 649 -278}\special{pa 668 -268}\special{pa 687 -258}%
-\special{pa 706 -247}\special{pa 725 -234}\special{pa 744 -221}\special{pa 764 -207}%
-\special{pa 783 -192}\special{pa 802 -177}\special{pa 821 -161}\special{pa 840 -144}%
-\special{pa 859 -127}\special{pa 878 -109}\special{pa 897 -91}\special{pa 916 -73}%
-\special{pa 935 -54}\special{pa 954 -35}\special{pa 974 -16}\special{pa 993 3}\special{pa 1012 22}%
-\special{pa 1031 41}\special{pa 1050 60}\special{pa 1069 79}\special{pa 1088 97}\special{pa 1107 115}%
-\special{pa 1126 132}\special{pa 1145 150}\special{pa 1164 166}\special{pa 1183 182}%
-\special{pa 1203 197}\special{pa 1222 212}\special{pa 1241 225}\special{pa 1260 238}%
-\special{fp}%
-\special{pa 760 0}\special{pa 757 -56}\special{pa 746 -111}\special{pa 729 -164}\special{pa 705 -215}%
-\special{pa 675 -262}\special{pa 640 -305}\special{pa 599 -343}\special{pa 554 -376}%
-\special{pa 505 -403}\special{pa 453 -424}\special{pa 398 -438}\special{pa 343 -445}%
-\special{pa 287 -445}\special{pa 231 -438}\special{pa 177 -424}\special{pa 125 -403}%
-\special{pa 76 -376}\special{pa 31 -343}\special{pa -10 -305}\special{pa -45 -262}%
-\special{pa -75 -215}\special{pa -99 -164}\special{pa -116 -111}\special{pa -127 -56}%
-\special{pa -130 0}\special{pa -127 56}\special{pa -116 111}\special{pa -99 164}\special{pa -75 215}%
-\special{pa -45 262}\special{pa -10 305}\special{pa 31 343}\special{pa 76 376}\special{pa 125 403}%
-\special{pa 177 424}\special{pa 231 438}\special{pa 287 445}\special{pa 343 445}\special{pa 398 438}%
-\special{pa 453 424}\special{pa 505 403}\special{pa 554 376}\special{pa 599 343}\special{pa 640 305}%
-\special{pa 675 262}\special{pa 705 215}\special{pa 729 164}\special{pa 746 111}\special{pa 757 56}%
-\special{pa 760 0}%
-\special{fp}%
-\special{pa -630 0}\special{pa 1260 0}%
-\special{fp}%
-\special{pa 0 630}\special{pa 0 -630}%
-\special{fp}%
-\settowidth{\Width}{$x$}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{$x$}\settodepth{\Depth}{$x$}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(4.0500,0.0000){\hspace*{\Width}\raisebox{\Height}{$x$}}%
-%
-%
-\settowidth{\Width}{$y$}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{$y$}\settodepth{\Depth}{$y$}\setlength{\Height}{\Depth}%
-\put(0.0000,2.0500){\hspace*{\Width}\raisebox{\Height}{$y$}}%
-%
-%
-\settowidth{\Width}{O}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{O}\settodepth{\Depth}{O}\setlength{\Height}{-\Height}%
-\put(0.0500,-0.0500){\hspace*{\Width}\raisebox{\Height}{O}}%
-%
-%
-\end{picture}}% \ No newline at end of file
diff --git a/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/intlog.tex b/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/intlog.tex
deleted file mode 100644
index 6244c0a5..00000000
--- a/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/intlog.tex
+++ /dev/null
@@ -1,247 +0,0 @@
-%%% test.tex 2014-11-26 19:58
-%%% test.sce 2014-11-26 19:58
-{\unitlength=5mm%
-\begin{picture}%
-( 12.71000, 6.84000)( -3.35000, -3.03000)%
-\special{pn 8}%
-%
-\special{pn 16}%
-\special{pa 90 153}\special{pa 91 152}\special{pa 101 132}\special{pa 111 113}\special{pa 121 97}%
-\special{pa 130 81}\special{pa 140 67}\special{pa 150 53}\special{pa 160 41}\special{pa 170 29}%
-\special{pa 180 18}\special{pa 190 7}\special{pa 200 -3}\special{pa 209 -12}\special{pa 219 -21}%
-\special{pa 229 -30}\special{pa 239 -38}\special{pa 249 -46}\special{pa 259 -54}\special{pa 269 -61}%
-\special{pa 279 -68}\special{pa 289 -75}\special{pa 298 -82}\special{pa 308 -88}\special{pa 318 -95}%
-\special{pa 328 -101}\special{pa 338 -106}\special{pa 348 -112}\special{pa 358 -118}%
-\special{pa 368 -123}\special{pa 377 -128}\special{pa 387 -133}\special{pa 397 -138}%
-\special{pa 407 -143}\special{pa 417 -148}\special{pa 427 -152}\special{pa 437 -157}%
-\special{pa 447 -161}\special{pa 457 -166}\special{pa 466 -170}\special{pa 476 -174}%
-\special{pa 486 -178}\special{pa 496 -182}\special{pa 506 -186}\special{pa 516 -190}%
-\special{pa 526 -193}\special{pa 536 -197}\special{pa 545 -201}\special{pa 555 -204}%
-\special{pa 565 -208}\special{pa 575 -211}\special{pa 585 -214}\special{pa 595 -218}%
-\special{pa 605 -221}\special{pa 615 -224}\special{pa 625 -227}\special{pa 634 -230}%
-\special{pa 644 -233}\special{pa 654 -236}\special{pa 664 -239}\special{pa 674 -242}%
-\special{pa 684 -245}\special{pa 694 -248}\special{pa 704 -251}\special{pa 713 -253}%
-\special{pa 723 -256}\special{pa 733 -259}\special{pa 743 -262}\special{pa 753 -264}%
-\special{pa 763 -267}\special{pa 773 -269}\special{pa 783 -272}\special{pa 793 -274}%
-\special{pa 802 -277}\special{pa 812 -279}\special{pa 822 -281}\special{pa 832 -284}%
-\special{pa 842 -286}\special{pa 852 -288}\special{pa 862 -291}\special{pa 872 -293}%
-\special{pa 881 -295}\special{pa 891 -297}\special{pa 901 -299}\special{pa 911 -302}%
-\special{pa 921 -304}\special{pa 931 -306}\special{pa 941 -308}\special{pa 945 -309}%
-\special{fp}%
-\special{pn 8}%
-\special{pn 16}%
-\special{pa 90 153}\special{pa 91 152}\special{pa 101 132}\special{pa 111 113}\special{pa 121 97}%
-\special{pa 130 81}\special{pa 140 67}\special{pa 150 53}\special{pa 160 41}\special{pa 170 29}%
-\special{pa 180 18}\special{pa 190 7}\special{pa 197 0}%
-\special{fp}%
-\special{pn 8}%
-\special{pa 91 154}\special{pa 91 0}\special{pa 945 0}\special{pa 945 -309}\special{pa 936 -307}%
-\special{pa 928 -305}\special{pa 919 -303}\special{pa 910 -301}\special{pa 902 -300}%
-\special{pa 893 -298}\special{pa 884 -296}\special{pa 876 -294}\special{pa 867 -292}%
-\special{pa 859 -290}\special{pa 850 -288}\special{pa 841 -286}\special{pa 833 -284}%
-\special{pa 824 -282}\special{pa 815 -280}\special{pa 807 -278}\special{pa 798 -276}%
-\special{pa 790 -273}\special{pa 781 -271}\special{pa 772 -269}\special{pa 764 -267}%
-\special{pa 755 -265}\special{pa 746 -262}\special{pa 738 -260}\special{pa 729 -258}%
-\special{pa 721 -255}\special{pa 712 -253}\special{pa 703 -251}\special{pa 695 -248}%
-\special{pa 686 -246}\special{pa 677 -243}\special{pa 669 -241}\special{pa 660 -238}%
-\special{pa 651 -236}\special{pa 643 -233}\special{pa 634 -230}\special{pa 626 -228}%
-\special{pa 617 -225}\special{pa 608 -222}\special{pa 600 -219}\special{pa 591 -216}%
-\special{pa 582 -214}\special{pa 574 -211}\special{pa 565 -208}\special{pa 557 -205}%
-\special{pa 548 -202}\special{pa 539 -198}\special{pa 531 -195}\special{pa 522 -192}%
-\special{pa 513 -189}\special{pa 505 -185}\special{pa 496 -182}\special{pa 488 -179}%
-\special{pa 479 -175}\special{pa 470 -171}\special{pa 462 -168}\special{pa 453 -164}%
-\special{pa 444 -160}\special{pa 436 -156}\special{pa 427 -152}\special{pa 418 -148}%
-\special{pa 410 -144}\special{pa 401 -140}\special{pa 393 -136}\special{pa 384 -132}%
-\special{pa 375 -127}\special{pa 367 -122}\special{pa 358 -118}\special{pa 349 -113}%
-\special{pa 341 -108}\special{pa 332 -103}\special{pa 324 -98}\special{pa 315 -92}%
-\special{pa 306 -87}\special{pa 298 -81}\special{pa 289 -76}\special{pa 280 -70}\special{pa 272 -63}%
-\special{pa 263 -57}\special{pa 255 -51}\special{pa 246 -44}\special{pa 237 -37}\special{pa 229 -29}%
-\special{pa 220 -22}\special{pa 211 -14}\special{pa 203 -6}\special{pa 194 3}\special{pa 185 12}%
-\special{pa 177 21}\special{pa 168 31}\special{pa 160 41}\special{pa 151 52}\special{pa 142 64}%
-\special{pa 134 76}\special{pa 125 89}\special{pa 116 103}\special{pa 108 119}\special{pa 99 135}%
-\special{pa 91 153}\special{pa 91 154}\special{sh 0.2}\special{ip}%
-\special{pn 8}%
-\special{pa 787 -591}\special{pa 518 -154}%
-\special{fp}%
-\special{pn 8}%
-\special{pa 536 -230}\special{pa 518 -154}\special{pa 578 -204}\special{pa 557 -217}%
-\special{pa 536 -230}\special{sh 1}\special{ip}%
-\special{pn 8}%
-\special{pa 536 -230}\special{pa 518 -154}\special{pa 578 -204}\special{pa 557 -217}%
-\special{pa 536 -230}%
-\special{fp}%
-\special{pn 8}%
-\settowidth{\Width}{$\displaystyle \int_a^b \log x\,dx=3.55$}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{$\displaystyle \int_a^b \log x\,dx=3.55$}\settodepth{\Depth}{$\displaystyle \int_a^b \log x\,dx=3.55$}\setlength{\Height}{\Depth}%
-\put(4.2500,3.0500){\hspace*{\Width}\raisebox{\Height}{$\displaystyle \int_a^b \log x\,dx=3.55$}}%
-%
-%
-\settowidth{\Width}{$(a=0.46,\; b=4.8)$}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{$(a=0.46,\; b=4.8)$}\settodepth{\Depth}{$(a=0.46,\; b=4.8)$}\setlength{\Height}{-\Height}%
-\put(4.1500,2.9500){\hspace*{\Width}\raisebox{\Height}{$(a=0.46,\; b=4.8)$}}%
-%
-%
-\settowidth{\Width}{$a$}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{$a$}\settodepth{\Depth}{$a$}\setlength{\Height}{\Depth}%
-\put(0.4600,0.1500){\hspace*{\Width}\raisebox{\Height}{$a$}}%
-%
-%
-\settowidth{\Width}{$b$}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{$b$}\settodepth{\Depth}{$b$}\setlength{\Height}{-\Height}%
-\put(4.8000,-0.1500){\hspace*{\Width}\raisebox{\Height}{$b$}}%
-%
-%
-\special{pa 0 -217}\special{pa 0 -177}%
-\special{fp}%
-\settowidth{\Width}{$1$}\setlength{\Width}{-1\Width}%
-\settoheight{\Height}{$1$}\settodepth{\Depth}{$1$}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(-0.1500,1.1000){\hspace*{\Width}\raisebox{\Height}{$1$}}%
-%
-%
-%
-\special{pa 217 0}\special{pa 177 0}%
-\special{fp}%
-\settowidth{\Width}{$1$}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{$1$}\settodepth{\Depth}{$1$}\setlength{\Height}{-\Height}%
-\put(1.1000,-0.1500){\hspace*{\Width}\raisebox{\Height}{$1$}}%
-%
-%
-%
-\special{pa 555 0}\special{pa 516 0}%
-\special{fp}%
-\settowidth{\Width}{$e$}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{$e$}\settodepth{\Depth}{$e$}\setlength{\Height}{-\Height}%
-\put(2.8200,-0.1500){\hspace*{\Width}\raisebox{\Height}{$e$}}%
-%
-%
-%
-\special{pa -659 0}\special{pa 1843 0}%
-\special{fp}%
-\special{pa 11 596}\special{pa 12 553}\special{pa 22 434}\special{pa 32 360}\special{pa 41 306}%
-\special{pa 51 264}\special{pa 61 230}\special{pa 71 200}\special{pa 81 175}\special{pa 91 152}%
-\special{pa 101 132}\special{pa 111 113}\special{pa 121 97}\special{pa 130 81}\special{pa 140 67}%
-\special{pa 150 53}\special{pa 160 41}\special{pa 170 29}\special{pa 180 18}\special{pa 190 7}%
-\special{pa 200 -3}\special{pa 209 -12}\special{pa 219 -21}\special{pa 229 -30}\special{pa 239 -38}%
-\special{pa 249 -46}\special{pa 259 -54}\special{pa 269 -61}\special{pa 279 -68}\special{pa 289 -75}%
-\special{pa 298 -82}\special{pa 308 -88}\special{pa 318 -95}\special{pa 328 -101}%
-\special{pa 338 -106}\special{pa 348 -112}\special{pa 358 -118}\special{pa 368 -123}%
-\special{pa 377 -128}\special{pa 387 -133}\special{pa 397 -138}\special{pa 407 -143}%
-\special{pa 417 -148}\special{pa 427 -152}\special{pa 437 -157}\special{pa 447 -161}%
-\special{pa 457 -166}\special{pa 466 -170}\special{pa 476 -174}\special{pa 486 -178}%
-\special{pa 496 -182}\special{pa 506 -186}\special{pa 516 -190}\special{pa 526 -193}%
-\special{pa 536 -197}\special{pa 545 -201}\special{pa 555 -204}\special{pa 565 -208}%
-\special{pa 575 -211}\special{pa 585 -214}\special{pa 595 -218}\special{pa 605 -221}%
-\special{pa 615 -224}\special{pa 625 -227}\special{pa 634 -230}\special{pa 644 -233}%
-\special{pa 654 -236}\special{pa 664 -239}\special{pa 674 -242}\special{pa 684 -245}%
-\special{pa 694 -248}\special{pa 704 -251}\special{pa 713 -253}\special{pa 723 -256}%
-\special{pa 733 -259}\special{pa 743 -262}\special{pa 753 -264}\special{pa 763 -267}%
-\special{pa 773 -269}\special{pa 783 -272}\special{pa 793 -274}\special{pa 802 -277}%
-\special{pa 812 -279}\special{pa 822 -281}\special{pa 832 -284}\special{pa 842 -286}%
-\special{pa 852 -288}\special{pa 862 -291}\special{pa 872 -293}\special{pa 881 -295}%
-\special{pa 891 -297}\special{pa 901 -299}\special{pa 911 -302}\special{pa 921 -304}%
-\special{pa 931 -306}\special{pa 941 -308}\special{pa 951 -310}\special{pa 961 -312}%
-\special{pa 970 -314}\special{pa 980 -316}\special{pa 990 -318}\special{pa 1000 -320}%
-\special{pa 1010 -322}\special{pa 1020 -324}\special{pa 1030 -326}\special{pa 1040 -328}%
-\special{pa 1049 -329}\special{pa 1059 -331}\special{pa 1069 -333}\special{pa 1079 -335}%
-\special{pa 1089 -337}\special{pa 1099 -339}\special{pa 1109 -340}\special{pa 1119 -342}%
-\special{pa 1129 -344}\special{pa 1138 -345}\special{pa 1148 -347}\special{pa 1158 -349}%
-\special{pa 1168 -351}\special{pa 1178 -352}\special{pa 1188 -354}\special{pa 1198 -355}%
-\special{pa 1208 -357}\special{pa 1217 -359}\special{pa 1227 -360}\special{pa 1237 -362}%
-\special{pa 1247 -363}\special{pa 1257 -365}\special{pa 1267 -367}\special{pa 1277 -368}%
-\special{pa 1287 -370}\special{pa 1297 -371}\special{pa 1306 -373}\special{pa 1316 -374}%
-\special{pa 1326 -376}\special{pa 1336 -377}\special{pa 1346 -378}\special{pa 1356 -380}%
-\special{pa 1366 -381}\special{pa 1376 -383}\special{pa 1385 -384}\special{pa 1395 -386}%
-\special{pa 1405 -387}\special{pa 1415 -388}\special{pa 1425 -390}\special{pa 1435 -391}%
-\special{pa 1445 -392}\special{pa 1455 -394}\special{pa 1465 -395}\special{pa 1474 -396}%
-\special{pa 1484 -398}\special{pa 1494 -399}\special{pa 1504 -400}\special{pa 1514 -402}%
-\special{pa 1524 -403}\special{pa 1534 -404}\special{pa 1544 -405}\special{pa 1553 -407}%
-\special{pa 1563 -408}\special{pa 1573 -409}\special{pa 1583 -410}\special{pa 1593 -412}%
-\special{pa 1603 -413}\special{pa 1613 -414}\special{pa 1623 -415}\special{pa 1633 -416}%
-\special{pa 1642 -418}\special{pa 1652 -419}\special{pa 1662 -420}\special{pa 1672 -421}%
-\special{pa 1682 -422}\special{pa 1692 -423}\special{pa 1702 -425}\special{pa 1712 -426}%
-\special{pa 1721 -427}\special{pa 1731 -428}\special{pa 1741 -429}\special{pa 1751 -430}%
-\special{pa 1761 -431}\special{pa 1771 -432}\special{pa 1781 -434}\special{pa 1791 -435}%
-\special{pa 1801 -436}\special{pa 1810 -437}\special{pa 1820 -438}\special{pa 1830 -439}%
-\special{pa 1840 -440}\special{pa 1843 -440}%
-\special{fp}%
-\special{pa 91 153}\special{pa 99 135}\special{pa 108 119}\special{pa 116 103}\special{pa 125 89}%
-\special{pa 134 76}\special{pa 142 64}\special{pa 151 52}\special{pa 160 41}\special{pa 168 31}%
-\special{pa 177 21}\special{pa 185 12}\special{pa 194 3}\special{pa 203 -6}\special{pa 211 -14}%
-\special{pa 220 -22}\special{pa 229 -29}\special{pa 237 -37}\special{pa 246 -44}\special{pa 255 -51}%
-\special{pa 263 -57}\special{pa 272 -63}\special{pa 280 -70}\special{pa 289 -76}\special{pa 298 -81}%
-\special{pa 306 -87}\special{pa 315 -92}\special{pa 324 -98}\special{pa 332 -103}%
-\special{pa 341 -108}\special{pa 349 -113}\special{pa 358 -118}\special{pa 367 -122}%
-\special{pa 375 -127}\special{pa 384 -132}\special{pa 393 -136}\special{pa 401 -140}%
-\special{pa 410 -144}\special{pa 418 -148}\special{pa 427 -152}\special{pa 436 -156}%
-\special{pa 444 -160}\special{pa 453 -164}\special{pa 462 -168}\special{pa 470 -171}%
-\special{pa 479 -175}\special{pa 488 -179}\special{pa 496 -182}\special{pa 505 -185}%
-\special{pa 513 -189}\special{pa 522 -192}\special{pa 531 -195}\special{pa 539 -198}%
-\special{pa 548 -202}\special{pa 557 -205}\special{pa 565 -208}\special{pa 574 -211}%
-\special{pa 582 -214}\special{pa 591 -216}\special{pa 600 -219}\special{pa 608 -222}%
-\special{pa 617 -225}\special{pa 626 -228}\special{pa 634 -230}\special{pa 643 -233}%
-\special{pa 651 -236}\special{pa 660 -238}\special{pa 669 -241}\special{pa 677 -243}%
-\special{pa 686 -246}\special{pa 695 -248}\special{pa 703 -251}\special{pa 712 -253}%
-\special{pa 721 -255}\special{pa 729 -258}\special{pa 738 -260}\special{pa 746 -262}%
-\special{pa 755 -265}\special{pa 764 -267}\special{pa 772 -269}\special{pa 781 -271}%
-\special{pa 790 -273}\special{pa 798 -276}\special{pa 807 -278}\special{pa 815 -280}%
-\special{pa 824 -282}\special{pa 833 -284}\special{pa 841 -286}\special{pa 850 -288}%
-\special{pa 859 -290}\special{pa 867 -292}\special{pa 876 -294}\special{pa 884 -296}%
-\special{pa 893 -298}\special{pa 902 -300}\special{pa 910 -301}\special{pa 919 -303}%
-\special{pa 928 -305}\special{pa 936 -307}\special{pa 945 -309}%
-\special{fp}%
-\special{pa 91 154}\special{pa 91 0}%
-\special{fp}%
-\special{pa 945 0}\special{pa 945 -309}%
-\special{fp}%
-\special{pa 91 0}\special{pa 945 0}%
-\special{fp}%
-\special{pa 91 0}\special{pa 197 0}%
-\special{fp}%
-\special{pa 90 153}\special{pa 91 152}\special{pa 101 132}\special{pa 111 113}\special{pa 121 97}%
-\special{pa 130 81}\special{pa 140 67}\special{pa 150 53}\special{pa 160 41}\special{pa 170 29}%
-\special{pa 180 18}\special{pa 190 7}\special{pa 200 -3}\special{pa 209 -12}\special{pa 219 -21}%
-\special{pa 229 -30}\special{pa 239 -38}\special{pa 249 -46}\special{pa 259 -54}\special{pa 269 -61}%
-\special{pa 279 -68}\special{pa 289 -75}\special{pa 298 -82}\special{pa 308 -88}\special{pa 318 -95}%
-\special{pa 328 -101}\special{pa 338 -106}\special{pa 348 -112}\special{pa 358 -118}%
-\special{pa 368 -123}\special{pa 377 -128}\special{pa 387 -133}\special{pa 397 -138}%
-\special{pa 407 -143}\special{pa 417 -148}\special{pa 427 -152}\special{pa 437 -157}%
-\special{pa 447 -161}\special{pa 457 -166}\special{pa 466 -170}\special{pa 476 -174}%
-\special{pa 486 -178}\special{pa 496 -182}\special{pa 506 -186}\special{pa 516 -190}%
-\special{pa 526 -193}\special{pa 536 -197}\special{pa 545 -201}\special{pa 555 -204}%
-\special{pa 565 -208}\special{pa 575 -211}\special{pa 585 -214}\special{pa 595 -218}%
-\special{pa 605 -221}\special{pa 615 -224}\special{pa 625 -227}\special{pa 634 -230}%
-\special{pa 644 -233}\special{pa 654 -236}\special{pa 664 -239}\special{pa 674 -242}%
-\special{pa 684 -245}\special{pa 694 -248}\special{pa 704 -251}\special{pa 713 -253}%
-\special{pa 723 -256}\special{pa 733 -259}\special{pa 743 -262}\special{pa 753 -264}%
-\special{pa 763 -267}\special{pa 773 -269}\special{pa 783 -272}\special{pa 793 -274}%
-\special{pa 802 -277}\special{pa 812 -279}\special{pa 822 -281}\special{pa 832 -284}%
-\special{pa 842 -286}\special{pa 852 -288}\special{pa 862 -291}\special{pa 872 -293}%
-\special{pa 881 -295}\special{pa 891 -297}\special{pa 901 -299}\special{pa 911 -302}%
-\special{pa 921 -304}\special{pa 931 -306}\special{pa 941 -308}\special{pa 945 -309}%
-\special{pa 945 -309}\special{pa 945 0}\special{pa 91 0}\special{pa 91 154}%
-\special{fp}%
-\special{pa 90 153}\special{pa 91 152}\special{pa 101 132}\special{pa 111 113}\special{pa 121 97}%
-\special{pa 130 81}\special{pa 140 67}\special{pa 150 53}\special{pa 160 41}\special{pa 170 29}%
-\special{pa 180 18}\special{pa 190 7}\special{pa 197 0}\special{pa 197 0}\special{pa 91 0}%
-\special{pa 91 154}%
-\special{fp}%
-\special{pa -659 0}\special{pa 1843 0}%
-\special{fp}%
-\special{pa 0 596}\special{pa 0 -750}%
-\special{fp}%
-\settowidth{\Width}{$x$}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{$x$}\settodepth{\Depth}{$x$}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(9.4100,0.0000){\hspace*{\Width}\raisebox{\Height}{$x$}}%
-%
-%
-\settowidth{\Width}{$y$}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{$y$}\settodepth{\Depth}{$y$}\setlength{\Height}{\Depth}%
-\put(0.0000,3.8600){\hspace*{\Width}\raisebox{\Height}{$y$}}%
-%
-%
-\settowidth{\Width}{O}\setlength{\Width}{-1\Width}%
-\settoheight{\Height}{O}\settodepth{\Depth}{O}\setlength{\Height}{-\Height}%
-\put(-0.0500,-0.0500){\hspace*{\Width}\raisebox{\Height}{O}}%
-%
-%
-\end{picture}}% \ No newline at end of file
diff --git a/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/inversefun.tex b/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/inversefun.tex
deleted file mode 100644
index e2d0e918..00000000
--- a/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/inversefun.tex
+++ /dev/null
@@ -1,48 +0,0 @@
-%%% test.tex 2014-10-21 9:48
-%%% test.sce 2014-10-21 9:48
-{\unitlength=5mm%
-\begin{picture}%
-( 6.00000, 6.00000)( -3.00000, -3.00000)%
-\special{pn 8}%
-%
-\special{pa 200 -93}\special{pa 194 -93}\special{pa 194 -88}\special{pa 200 -88}\special{pa 200 -93}%
-\special{sh 1}\special{fp}%
-\settowidth{\Width}{P}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{P}\settodepth{\Depth}{P}\setlength{\Height}{\Depth}%
-\put(1.0500,0.5100){\hspace*{\Width}\raisebox{\Height}{P}}%
-%
-%
-\special{pa 394 0}\special{pa 384 -1}\special{pa 356 -6}\special{pa 314 -21}\special{pa 260 -47}%
-\special{pa 203 -84}\special{pa 146 -133}\special{pa 95 -188}\special{pa 55 -246}%
-\special{pa 26 -301}\special{pa 9 -347}\special{pa 2 -379}\special{pa 0 -393}\special{pa 0 -388}%
-\special{pa -4 -365}\special{pa -16 -325}\special{pa -39 -274}\special{pa -74 -217}%
-\special{pa -120 -160}\special{pa -174 -107}\special{pa -232 -64}\special{pa -288 -32}%
-\special{pa -337 -12}\special{pa -372 -3}\special{pa -391 0}\special{pa -391 0}\special{pa -372 3}%
-\special{pa -337 12}\special{pa -288 32}\special{pa -232 64}\special{pa -174 107}%
-\special{pa -120 160}\special{pa -74 217}\special{pa -39 274}\special{pa -16 325}%
-\special{pa -4 365}\special{pa 0 388}\special{pa 0 393}\special{pa 2 379}\special{pa 9 347}%
-\special{pa 26 301}\special{pa 55 246}\special{pa 95 188}\special{pa 146 133}\special{pa 203 84}%
-\special{pa 260 47}\special{pa 314 21}\special{pa 356 6}\special{pa 384 1}\special{pa 394 0}%
-\special{fp}%
-\special{pa 591 209}\special{pa -460 -591}%
-\special{fp}%
-\special{pa -591 0}\special{pa 591 0}%
-\special{fp}%
-\special{pa 0 591}\special{pa 0 -591}%
-\special{fp}%
-\settowidth{\Width}{$x$}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{$x$}\settodepth{\Depth}{$x$}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(3.0500,0.0000){\hspace*{\Width}\raisebox{\Height}{$x$}}%
-%
-%
-\settowidth{\Width}{$y$}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{$y$}\settodepth{\Depth}{$y$}\setlength{\Height}{\Depth}%
-\put(0.0000,3.0500){\hspace*{\Width}\raisebox{\Height}{$y$}}%
-%
-%
-\settowidth{\Width}{O}\setlength{\Width}{-1\Width}%
-\settoheight{\Height}{O}\settodepth{\Depth}{O}\setlength{\Height}{-\Height}%
-\put(-0.0500,-0.0500){\hspace*{\Width}\raisebox{\Height}{O}}%
-%
-%
-\end{picture}}% \ No newline at end of file
diff --git a/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/joincrvs.tex b/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/joincrvs.tex
deleted file mode 100644
index bae0d937..00000000
--- a/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/joincrvs.tex
+++ /dev/null
@@ -1,92 +0,0 @@
-%%% joincrvs.tex 2014-11-10 17:45
-%%% joincrvs.sce 2014-11-10 16:59
-{\unitlength=1cm%
-\begin{picture}%
-( 6.00000, 5.00000)( -3.00000, -2.00000)%
-\special{pn 8}%
-%
-\special{pa 11 -11}\special{pa 4 -15}\special{pa -4 -15}\special{pa -11 -11}\special{pa -15 -4}%
-\special{pa -15 4}\special{pa -11 11}\special{pa -4 15}\special{pa 4 15}\special{pa 11 11}%
-\special{pa 15 4}\special{pa 15 -4}\special{pa 11 -11}\special{sh 1}\special{fp}%
-\special{pa 566 -566}\special{pa 559 -570}\special{pa 551 -570}\special{pa 544 -566}%
-\special{pa 540 -559}\special{pa 540 -551}\special{pa 544 -544}\special{pa 551 -540}%
-\special{pa 559 -540}\special{pa 566 -544}\special{pa 570 -551}\special{pa 570 -559}%
-\special{pa 566 -566}\special{sh 1}\special{fp}%
-\settowidth{\Width}{B}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{B}\settodepth{\Depth}{B}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(1.5600,1.4100){\hspace*{\Width}\raisebox{\Height}{B}}%
-%
-%
-\special{pa -557 557}\special{pa -534 534}\special{pa -511 511}\special{pa -489 489}%
-\special{pa -466 466}\special{pa -443 443}\special{pa -420 420}\special{pa -398 398}%
-\special{pa -375 375}\special{pa -352 352}\special{pa -330 330}\special{pa -307 307}%
-\special{pa -284 284}\special{pa -261 261}\special{pa -239 239}\special{pa -216 216}%
-\special{pa -193 193}\special{pa -170 170}\special{pa -148 148}\special{pa -125 125}%
-\special{pa -102 102}\special{pa -80 80}\special{pa -57 57}\special{pa -34 34}\special{pa -11 11}%
-\special{pa 11 -11}\special{pa 34 -34}\special{pa 57 -57}\special{pa 80 -80}\special{pa 102 -102}%
-\special{pa 125 -125}\special{pa 148 -148}\special{pa 170 -170}\special{pa 193 -193}%
-\special{pa 216 -216}\special{pa 239 -239}\special{pa 261 -261}\special{pa 284 -284}%
-\special{pa 307 -307}\special{pa 330 -330}\special{pa 352 -352}\special{pa 375 -375}%
-\special{pa 398 -398}\special{pa 420 -420}\special{pa 443 -443}\special{pa 466 -466}%
-\special{pa 489 -489}\special{pa 511 -511}\special{pa 534 -534}\special{pa 557 -557}%
-\special{fp}%
-\special{pa 555 -555}\special{pa 519 -589}\special{pa 481 -620}\special{pa 441 -649}%
-\special{pa 400 -676}\special{pa 356 -699}\special{pa 312 -720}\special{pa 266 -739}%
-\special{pa 219 -754}\special{pa 171 -766}\special{pa 123 -775}\special{pa 74 -782}%
-\special{pa 25 -785}\special{pa -25 -785}\special{pa -74 -782}\special{pa -123 -775}%
-\special{pa -171 -766}\special{pa -219 -754}\special{pa -266 -739}\special{pa -312 -720}%
-\special{pa -356 -699}\special{pa -400 -676}\special{pa -441 -649}\special{pa -481 -620}%
-\special{pa -519 -589}\special{pa -555 -555}\special{pa -589 -519}\special{pa -620 -481}%
-\special{pa -649 -441}\special{pa -676 -400}\special{pa -699 -356}\special{pa -720 -312}%
-\special{pa -739 -266}\special{pa -754 -219}\special{pa -766 -171}\special{pa -775 -123}%
-\special{pa -782 -74}\special{pa -785 -25}\special{pa -785 25}\special{pa -782 74}%
-\special{pa -775 123}\special{pa -766 171}\special{pa -754 219}\special{pa -739 266}%
-\special{pa -720 312}\special{pa -699 356}\special{pa -676 400}\special{pa -649 441}%
-\special{pa -620 481}\special{pa -589 519}\special{pa -555 555}%
-\special{fp}%
-\special{pa -557 557}\special{pa -534 534}\special{pa -511 511}\special{pa -489 489}%
-\special{pa -466 466}\special{pa -443 443}\special{pa -420 420}\special{pa -398 398}%
-\special{pa -375 375}\special{pa -352 352}\special{pa -330 330}\special{pa -307 307}%
-\special{pa -284 284}\special{pa -261 261}\special{pa -239 239}\special{pa -216 216}%
-\special{pa -193 193}\special{pa -170 170}\special{pa -148 148}\special{pa -125 125}%
-\special{pa -102 102}\special{pa -80 80}\special{pa -57 57}\special{pa -34 34}\special{pa -11 11}%
-\special{pa 11 -11}\special{pa 34 -34}\special{pa 57 -57}\special{pa 80 -80}\special{pa 102 -102}%
-\special{pa 125 -125}\special{pa 148 -148}\special{pa 170 -170}\special{pa 193 -193}%
-\special{pa 216 -216}\special{pa 239 -239}\special{pa 261 -261}\special{pa 284 -284}%
-\special{pa 307 -307}\special{pa 330 -330}\special{pa 352 -352}\special{pa 375 -375}%
-\special{pa 398 -398}\special{pa 420 -420}\special{pa 443 -443}\special{pa 466 -466}%
-\special{pa 489 -489}\special{pa 511 -511}\special{pa 534 -534}\special{pa 557 -557}%
-\special{pa 555 -555}\special{pa 519 -589}\special{pa 481 -620}\special{pa 441 -649}%
-\special{pa 400 -676}\special{pa 356 -699}\special{pa 312 -720}\special{pa 266 -739}%
-\special{pa 219 -754}\special{pa 171 -766}\special{pa 123 -775}\special{pa 74 -782}%
-\special{pa 25 -785}\special{pa -25 -785}\special{pa -74 -782}\special{pa -123 -775}%
-\special{pa -171 -766}\special{pa -219 -754}\special{pa -266 -739}\special{pa -312 -720}%
-\special{pa -356 -699}\special{pa -400 -676}\special{pa -441 -649}\special{pa -481 -620}%
-\special{pa -519 -589}\special{pa -555 -555}\special{pa -589 -519}\special{pa -620 -481}%
-\special{pa -649 -441}\special{pa -676 -400}\special{pa -699 -356}\special{pa -720 -312}%
-\special{pa -739 -266}\special{pa -754 -219}\special{pa -766 -171}\special{pa -775 -123}%
-\special{pa -782 -74}\special{pa -785 -25}\special{pa -785 25}\special{pa -782 74}%
-\special{pa -775 123}\special{pa -766 171}\special{pa -754 219}\special{pa -739 266}%
-\special{pa -720 312}\special{pa -699 356}\special{pa -676 400}\special{pa -649 441}%
-\special{pa -620 481}\special{pa -589 519}\special{pa -555 555}%
-\special{fp}%
-\special{pa -1181 0}\special{pa 1181 0}%
-\special{fp}%
-\special{pa 0 787}\special{pa 0 -1181}%
-\special{fp}%
-\settowidth{\Width}{$x$}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{$x$}\settodepth{\Depth}{$x$}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(3.0500,0.0000){\hspace*{\Width}\raisebox{\Height}{$x$}}%
-%
-%
-\settowidth{\Width}{$y$}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{$y$}\settodepth{\Depth}{$y$}\setlength{\Height}{\Depth}%
-\put(0.0000,3.0500){\hspace*{\Width}\raisebox{\Height}{$y$}}%
-%
-%
-\settowidth{\Width}{A}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{A}\settodepth{\Depth}{A}\setlength{\Height}{-\Height}%
-\put(0.0500,-0.0500){\hspace*{\Width}\raisebox{\Height}{A}}%
-%
-%
-\end{picture}}% \ No newline at end of file
diff --git a/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/letter.tex b/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/letter.tex
deleted file mode 100644
index 00be9d14..00000000
--- a/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/letter.tex
+++ /dev/null
@@ -1,57 +0,0 @@
-%%% test.tex 2014-10-14 18:34
-%%% test.sce 2014-10-14 18:34
-{\unitlength=1cm%
-\begin{picture}%
-( 7.00000, 2.00000)( -2.00000, 1.00000)%
-\special{pn 8}%
-%
-\special{pa 14 -801}\special{pa 6 -806}\special{pa -4 -807}\special{pa -12 -803}\special{pa -18 -795}%
-\special{pa -20 -786}\special{pa -17 -777}\special{pa -10 -771}\special{pa -1 -768}%
-\special{pa 8 -769}\special{pa 15 -775}\special{pa 19 -784}\special{pa 19 -793}\special{pa 14 -801}%
-\special{sh 1}\special{fp}%
-\large%
-\settowidth{\Width}{e}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{e}\settodepth{\Depth}{e}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(0.2500,2.0000){\hspace*{\Width}\raisebox{\Height}{e}}%
-%
-%
-\settowidth{\Width}{n}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{n}\settodepth{\Depth}{n}\setlength{\Height}{\Depth}%
-\put(0.0000,2.2500){\hspace*{\Width}\raisebox{\Height}{n}}%
-%
-%
-\settowidth{\Width}{w}\setlength{\Width}{-1\Width}%
-\settoheight{\Height}{w}\settodepth{\Depth}{w}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(-0.2500,2.0000){\hspace*{\Width}\raisebox{\Height}{w}}%
-%
-%
-\settowidth{\Width}{s}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{s}\settodepth{\Depth}{s}\setlength{\Height}{-\Height}%
-\put(0.0000,1.7500){\hspace*{\Width}\raisebox{\Height}{s}}%
-%
-%
-\special{pa 1195 -801}\special{pa 1187 -806}\special{pa 1178 -807}\special{pa 1169 -803}%
-\special{pa 1163 -795}\special{pa 1161 -786}\special{pa 1164 -777}\special{pa 1171 -771}%
-\special{pa 1180 -768}\special{pa 1189 -769}\special{pa 1197 -775}\special{pa 1200 -784}%
-\special{pa 1200 -793}\special{pa 1195 -801}\special{sh 1}\special{fp}%
-\settowidth{\Width}{ne}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{ne}\settodepth{\Depth}{ne}\setlength{\Height}{\Depth}%
-\put(3.2500,2.0500){\hspace*{\Width}\raisebox{\Height}{ne}}%
-%
-%
-\settowidth{\Width}{nw}\setlength{\Width}{-1\Width}%
-\settoheight{\Height}{nw}\settodepth{\Depth}{nw}\setlength{\Height}{\Depth}%
-\put(2.7500,2.0500){\hspace*{\Width}\raisebox{\Height}{nw}}%
-%
-%
-\settowidth{\Width}{sw}\setlength{\Width}{-1\Width}%
-\settoheight{\Height}{sw}\settodepth{\Depth}{sw}\setlength{\Height}{-\Height}%
-\put(2.7500,1.9500){\hspace*{\Width}\raisebox{\Height}{sw}}%
-%
-%
-\settowidth{\Width}{se}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{se}\settodepth{\Depth}{se}\setlength{\Height}{-\Height}%
-\put(3.2500,1.9500){\hspace*{\Width}\raisebox{\Height}{se}}%
-%
-%
-\end{picture}}% \ No newline at end of file
diff --git a/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/letter2.tex b/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/letter2.tex
deleted file mode 100644
index 06e726a2..00000000
--- a/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/letter2.tex
+++ /dev/null
@@ -1,61 +0,0 @@
-%%% test.tex 2014-10-14 19:7
-%%% test.sce 2014-10-14 19:7
-{\unitlength=1cm%
-\begin{picture}%
-( 7.50000, 4.50000)( -3.50000, -0.50000)%
-\special{pn 8}%
-%
-\special{pa -588 -223}\special{pa -593 -223}\special{pa -593 -218}\special{pa -588 -218}%
-\special{pa -588 -223}\special{sh 1}\special{fp}%
-\special{pa 1184 -889}\special{pa 1178 -889}\special{pa 1178 -883}\special{pa 1184 -883}%
-\special{pa 1184 -889}\special{sh 1}\special{fp}%
-\settowidth{\Width}{A}\setlength{\Width}{-1\Width}%
-\settoheight{\Height}{A}\settodepth{\Depth}{A}\setlength{\Height}{-\Height}%
-\put(-1.5500,0.5100){\hspace*{\Width}\raisebox{\Height}{A}}%
-%
-%
-\settowidth{\Width}{B}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{B}\settodepth{\Depth}{B}\setlength{\Height}{-\Height}%
-\put(3.0500,2.2000){\hspace*{\Width}\raisebox{\Height}{B}}%
-%
-%
-\settowidth{\Width}{$f(x)=\frac{1}{4} x^2$}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{$f(x)=\frac{1}{4} x^2$}\settodepth{\Depth}{$f(x)=\frac{1}{4} x^2$}\setlength{\Height}{-\Height}%
-\put(2.3300,0.5400){\hspace*{\Width}\raisebox{\Height}{$f(x)=\frac{1}{4} x^2$}}%
-%
-%
-\special{pa -591 -220}\special{pa 1181 -886}%
-\special{fp}%
-\special{pa -1378 -1206}\special{pa -1318 -1103}\special{pa -1257 -1004}\special{pa -1197 -910}%
-\special{pa -1137 -821}\special{pa -1077 -736}\special{pa -1016 -656}\special{pa -956 -581}%
-\special{pa -896 -510}\special{pa -836 -443}\special{pa -775 -382}\special{pa -715 -325}%
-\special{pa -655 -272}\special{pa -595 -224}\special{pa -534 -181}\special{pa -474 -143}%
-\special{pa -414 -109}\special{pa -354 -79}\special{pa -293 -55}\special{pa -233 -34}%
-\special{pa -173 -19}\special{pa -112 -8}\special{pa -52 -2}\special{pa 8 0}\special{pa 68 -3}%
-\special{pa 129 -10}\special{pa 189 -23}\special{pa 249 -39}\special{pa 309 -61}\special{pa 370 -87}%
-\special{pa 430 -117}\special{pa 490 -153}\special{pa 550 -192}\special{pa 611 -237}%
-\special{pa 671 -286}\special{pa 731 -339}\special{pa 791 -398}\special{pa 852 -461}%
-\special{pa 912 -528}\special{pa 972 -600}\special{pa 1032 -677}\special{pa 1093 -758}%
-\special{pa 1153 -844}\special{pa 1213 -935}\special{pa 1274 -1030}\special{pa 1334 -1130}%
-\special{pa 1394 -1234}\special{pa 1454 -1343}\special{pa 1515 -1457}\special{pa 1575 -1575}%
-\special{fp}%
-\special{pa -1378 0}\special{pa 1575 0}%
-\special{fp}%
-\special{pa 0 197}\special{pa 0 -1575}%
-\special{fp}%
-\settowidth{\Width}{$x$}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{$x$}\settodepth{\Depth}{$x$}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(4.0500,0.0000){\hspace*{\Width}\raisebox{\Height}{$x$}}%
-%
-%
-\settowidth{\Width}{$y$}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{$y$}\settodepth{\Depth}{$y$}\setlength{\Height}{\Depth}%
-\put(0.0000,4.0500){\hspace*{\Width}\raisebox{\Height}{$y$}}%
-%
-%
-\settowidth{\Width}{O}\setlength{\Width}{-1\Width}%
-\settoheight{\Height}{O}\settodepth{\Depth}{O}\setlength{\Height}{-\Height}%
-\put(-0.0500,-0.0500){\hspace*{\Width}\raisebox{\Height}{O}}%
-%
-%
-\end{picture}}% \ No newline at end of file
diff --git a/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/letter3.tex b/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/letter3.tex
deleted file mode 100644
index 982e67c0..00000000
--- a/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/letter3.tex
+++ /dev/null
@@ -1,118 +0,0 @@
-%%% letter3.tex 2014-11-18 9:34
-%%% sampleu3.sce 2014-11-17 19:14
-{\unitlength=1cm%
-\begin{picture}%
-( 10.82000, 4.78000)( -5.00000, -1.00000)%
-\special{pn 8}%
-%
-\Huge%
-\settowidth{\Width}{P}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{P}\settodepth{\Depth}{P}\setlength{\Height}{-\Height}%
-\put(2.0500,0.9500){\hspace*{\Width}\raisebox{\Height}{P}}%
-%
-%
-\footnotesize%
-\settowidth{\Width}{4}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{4}\settodepth{\Depth}{4}\setlength{\Height}{-\Height}%
-\put(4.0000,-0.0500){\hspace*{\Width}\raisebox{\Height}{4}}%
-%
-%
-\settowidth{\Width}{2}\setlength{\Width}{-1\Width}%
-\settoheight{\Height}{2}\settodepth{\Depth}{2}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(-0.0500,2.0000){\hspace*{\Width}\raisebox{\Height}{2}}%
-%
-%
-\settowidth{\Width}{2}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{2}\settodepth{\Depth}{2}\setlength{\Height}{-\Height}%
-\put(2.0000,-0.0500){\hspace*{\Width}\raisebox{\Height}{2}}%
-%
-%
-\settowidth{\Width}{1}\setlength{\Width}{-1\Width}%
-\settoheight{\Height}{1}\settodepth{\Depth}{1}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(-0.0500,1.0000){\hspace*{\Width}\raisebox{\Height}{1}}%
-%
-%
-\normalsize%
-\settowidth{\Width}{B}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{B}\settodepth{\Depth}{B}\setlength{\Height}{-\Height}%
-\put(3.4300,2.8700){\hspace*{\Width}\raisebox{\Height}{B}}%
-%
-%
-\settowidth{\Width}{C}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{C}\settodepth{\Depth}{C}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(-2.6300,1.7300){\hspace*{\Width}\raisebox{\Height}{C}}%
-%
-%
-\settowidth{\Width}{A}\setlength{\Width}{-1\Width}%
-\settoheight{\Height}{A}\settodepth{\Depth}{A}\setlength{\Height}{-\Height}%
-\put(-2.8300,1.6800){\hspace*{\Width}\raisebox{\Height}{A}}%
-%
-%
-\settowidth{\Width}{$f(x)=\dfrac{1}{4}x^2$}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{$f(x)=\dfrac{1}{4}x^2$}\settodepth{\Depth}{$f(x)=\dfrac{1}{4}x^2$}\setlength{\Height}{-\Height}%
-\put(-3.0300,3.1700){\hspace*{\Width}\raisebox{\Height}{$f(x)=\dfrac{1}{4}x^2$}}%
-%
-%
-\settowidth{\Width}{$f'(x)=\dfrac{1}{2} x$}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{$f'(x)=\dfrac{1}{2} x$}\settodepth{\Depth}{$f'(x)=\dfrac{1}{2} x$}\setlength{\Height}{-\Height}%
-\put(4.0500,1.9500){\hspace*{\Width}\raisebox{\Height}{$f'(x)=\dfrac{1}{2} x$}}%
-%
-%
-\special{pa -787 394}\special{pa -764 382}\special{pa -721 360}\special{pa -678 339}%
-\special{pa -635 317}\special{pa -592 296}\special{pa -549 274}\special{pa -506 253}%
-\special{pa -462 231}\special{pa -419 210}\special{pa -376 188}\special{pa -333 167}%
-\special{pa -290 145}\special{pa -247 124}\special{pa -204 102}\special{pa -161 81}%
-\special{pa -118 59}\special{pa -75 38}\special{pa -32 16}\special{pa 11 -5}\special{pa 54 -27}%
-\special{pa 97 -48}\special{pa 140 -70}\special{pa 183 -91}\special{pa 226 -113}\special{pa 269 -134}%
-\special{pa 312 -156}\special{pa 355 -178}\special{pa 398 -199}\special{pa 441 -221}%
-\special{pa 484 -242}\special{pa 527 -264}\special{pa 570 -285}\special{pa 613 -307}%
-\special{pa 656 -328}\special{pa 699 -350}\special{pa 742 -371}\special{pa 785 -393}%
-\special{pa 828 -414}\special{pa 871 -436}\special{pa 914 -457}\special{pa 957 -479}%
-\special{pa 1000 -500}\special{pa 1044 -522}\special{pa 1087 -543}\special{pa 1130 -565}%
-\special{pa 1173 -586}\special{pa 1216 -608}\special{pa 1259 -629}\special{pa 1302 -651}%
-\special{pa 1345 -672}\special{pa 1388 -694}\special{pa 1431 -715}\special{pa 1474 -737}%
-\special{pa 1517 -758}\special{pa 1560 -780}\special{pa 1603 -801}\special{pa 1646 -823}%
-\special{pa 1689 -844}\special{pa 1732 -866}\special{pa 1775 -887}\special{pa 1818 -909}%
-\special{pa 1861 -931}\special{pa 1904 -952}\special{pa 1947 -974}\special{pa 1990 -995}%
-\special{pa 2033 -1017}\special{pa 2076 -1038}\special{pa 2119 -1060}\special{pa 2162 -1081}%
-\special{pa 2205 -1103}\special{pa 2248 -1124}\special{pa 2291 -1146}%
-\special{fp}%
-\special{pa -1531 -1488}\special{pa -1495 -1420}\special{pa -1452 -1339}\special{pa -1409 -1261}%
-\special{pa -1366 -1185}\special{pa -1323 -1112}\special{pa -1280 -1040}\special{pa -1237 -972}%
-\special{pa -1194 -905}\special{pa -1151 -841}\special{pa -1108 -779}\special{pa -1065 -720}%
-\special{pa -1022 -663}\special{pa -979 -608}\special{pa -936 -556}\special{pa -893 -506}%
-\special{pa -850 -459}\special{pa -807 -413}\special{pa -764 -370}\special{pa -721 -330}%
-\special{pa -678 -292}\special{pa -635 -256}\special{pa -592 -222}\special{pa -549 -191}%
-\special{pa -506 -162}\special{pa -462 -136}\special{pa -419 -112}\special{pa -376 -90}%
-\special{pa -333 -71}\special{pa -290 -54}\special{pa -247 -39}\special{pa -204 -27}%
-\special{pa -161 -17}\special{pa -118 -9}\special{pa -75 -4}\special{pa -32 -1}\special{pa 11 0}%
-\special{pa 54 -2}\special{pa 97 -6}\special{pa 140 -12}\special{pa 183 -21}\special{pa 226 -32}%
-\special{pa 269 -46}\special{pa 312 -62}\special{pa 355 -80}\special{pa 398 -101}%
-\special{pa 441 -124}\special{pa 484 -149}\special{pa 527 -176}\special{pa 570 -206}%
-\special{pa 613 -239}\special{pa 656 -273}\special{pa 699 -311}\special{pa 742 -350}%
-\special{pa 785 -392}\special{pa 828 -436}\special{pa 871 -482}\special{pa 914 -531}%
-\special{pa 957 -582}\special{pa 1000 -636}\special{pa 1044 -691}\special{pa 1087 -750}%
-\special{pa 1130 -810}\special{pa 1173 -873}\special{pa 1216 -938}\special{pa 1259 -1006}%
-\special{pa 1302 -1076}\special{pa 1345 -1148}\special{pa 1388 -1223}\special{pa 1431 -1300}%
-\special{pa 1474 -1379}\special{pa 1517 -1461}\special{pa 1531 -1488}%
-\special{fp}%
-\special{pa -1969 0}\special{pa 2291 0}%
-\special{fp}%
-\special{pa 0 394}\special{pa 0 -1488}%
-\special{fp}%
-\settowidth{\Width}{$x$}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{$x$}\settodepth{\Depth}{$x$}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(5.8700,0.0000){\hspace*{\Width}\raisebox{\Height}{$x$}}%
-%
-%
-\settowidth{\Width}{$y$}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{$y$}\settodepth{\Depth}{$y$}\setlength{\Height}{\Depth}%
-\put(0.0000,3.8300){\hspace*{\Width}\raisebox{\Height}{$y$}}%
-%
-%
-\settowidth{\Width}{O}\setlength{\Width}{-1\Width}%
-\settoheight{\Height}{O}\settodepth{\Depth}{O}\setlength{\Height}{-\Height}%
-\put(-0.0500,-0.0500){\hspace*{\Width}\raisebox{\Height}{O}}%
-%
-%
-\end{picture}}% \ No newline at end of file
diff --git a/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/letter4.tex b/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/letter4.tex
deleted file mode 100644
index bf4dec91..00000000
--- a/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/letter4.tex
+++ /dev/null
@@ -1,545 +0,0 @@
-%%% letter4.tex 2014-11-20 9:17
-%%% sampleu3.sce 2014-11-17 19:14
-{\unitlength=1cm%
-\begin{picture}%
-( 9.97000, 4.53000)( -5.83000, -2.11000)%
-\special{pn 8}%
-%
-\normalsize%
-\settowidth{\Width}{w}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{w}\settodepth{\Depth}{w}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(-3.0000,0.0000){\hspace*{\Width}\raisebox{\Height}{w}}%
-%
-%
-\settowidth{\Width}{e}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{e}\settodepth{\Depth}{e}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(-1.0000,0.0000){\hspace*{\Width}\raisebox{\Height}{e}}%
-%
-%
-\settowidth{\Width}{s}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{s}\settodepth{\Depth}{s}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(-2.0000,-1.0000){\hspace*{\Width}\raisebox{\Height}{s}}%
-%
-%
-\settowidth{\Width}{n}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{n}\settodepth{\Depth}{n}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(-2.0000,1.0000){\hspace*{\Width}\raisebox{\Height}{n}}%
-%
-%
-\settowidth{\Width}{w2}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{w2}\settodepth{\Depth}{w2}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(-4.0000,0.0100){\hspace*{\Width}\raisebox{\Height}{w2}}%
-%
-%
-\settowidth{\Width}{e2}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{e2}\settodepth{\Depth}{e2}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(-0.0300,0.0100){\hspace*{\Width}\raisebox{\Height}{e2}}%
-%
-%
-\settowidth{\Width}{c}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{c}\settodepth{\Depth}{c}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(-2.0000,0.0000){\hspace*{\Width}\raisebox{\Height}{c}}%
-%
-%
-\settowidth{\Width}{nw}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{nw}\settodepth{\Depth}{nw}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(-2.7800,0.7300){\hspace*{\Width}\raisebox{\Height}{nw}}%
-%
-%
-\settowidth{\Width}{sw}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{sw}\settodepth{\Depth}{sw}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(-2.8100,-0.8100){\hspace*{\Width}\raisebox{\Height}{sw}}%
-%
-%
-\settowidth{\Width}{ne}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{ne}\settodepth{\Depth}{ne}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(-1.1600,0.8200){\hspace*{\Width}\raisebox{\Height}{ne}}%
-%
-%
-\settowidth{\Width}{n2w2}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{n2w2}\settodepth{\Depth}{n2w2}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(-3.6300,1.3800){\hspace*{\Width}\raisebox{\Height}{n2w2}}%
-%
-%
-\settowidth{\Width}{e4}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{e4}\settodepth{\Depth}{e4}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(1.9100,-0.0100){\hspace*{\Width}\raisebox{\Height}{e4}}%
-%
-%
-\settowidth{\Width}{se}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{se}\settodepth{\Depth}{se}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(-1.1700,-0.7800){\hspace*{\Width}\raisebox{\Height}{se}}%
-%
-%
-\settowidth{\Width}{w3}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{w3}\settodepth{\Depth}{w3}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(-4.6000,0.0100){\hspace*{\Width}\raisebox{\Height}{w3}}%
-%
-%
-\settowidth{\Width}{w4}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{w4}\settodepth{\Depth}{w4}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(-5.4000,0.0200){\hspace*{\Width}\raisebox{\Height}{w4}}%
-%
-%
-\settowidth{\Width}{s2}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{s2}\settodepth{\Depth}{s2}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(-1.9900,-1.2700){\hspace*{\Width}\raisebox{\Height}{s2}}%
-%
-%
-\settowidth{\Width}{s3}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{s3}\settodepth{\Depth}{s3}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(-1.9900,-1.5700){\hspace*{\Width}\raisebox{\Height}{s3}}%
-%
-%
-\settowidth{\Width}{n2}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{n2}\settodepth{\Depth}{n2}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(-2.0000,1.3800){\hspace*{\Width}\raisebox{\Height}{n2}}%
-%
-%
-\settowidth{\Width}{n3}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{n3}\settodepth{\Depth}{n3}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(-2.0000,1.7600){\hspace*{\Width}\raisebox{\Height}{n3}}%
-%
-%
-\settowidth{\Width}{s4}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{s4}\settodepth{\Depth}{s4}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(-1.9800,-1.9200){\hspace*{\Width}\raisebox{\Height}{s4}}%
-%
-%
-\settowidth{\Width}{n4}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{n4}\settodepth{\Depth}{n4}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(-1.9800,2.0900){\hspace*{\Width}\raisebox{\Height}{n4}}%
-%
-%
-\settowidth{\Width}{s2w2}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{s2w2}\settodepth{\Depth}{s2w2}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(-3.6300,-1.4400){\hspace*{\Width}\raisebox{\Height}{s2w2}}%
-%
-%
-\settowidth{\Width}{s2e2}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{s2e2}\settodepth{\Depth}{s2e2}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(-0.2900,-1.4300){\hspace*{\Width}\raisebox{\Height}{s2e2}}%
-%
-%
-\settowidth{\Width}{n2e2}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{n2e2}\settodepth{\Depth}{n2e2}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(-0.2400,1.4500){\hspace*{\Width}\raisebox{\Height}{n2e2}}%
-%
-%
-\settowidth{\Width}{ne2}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{ne2}\settodepth{\Depth}{ne2}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(-0.2700,0.7400){\hspace*{\Width}\raisebox{\Height}{ne2}}%
-%
-%
-\settowidth{\Width}{e3}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{e3}\settodepth{\Depth}{e3}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(1.2300,0.0000){\hspace*{\Width}\raisebox{\Height}{e3}}%
-%
-%
-\special{pn 8}%
-\special{pa -925 4}\special{pa -1067 4}%
-\special{fp}%
-\special{pn 8}%
-\special{pa -992 -20}\special{pa -1067 4}\special{pa -992 28}\special{pa -992 4}\special{pa -992 -20}%
-\special{sh 1}\special{ip}%
-\special{pn 8}%
-\special{pa -992 -20}\special{pa -1067 4}\special{pa -992 28}\special{pa -992 4}\special{pa -992 -20}%
-\special{fp}%
-\special{pn 8}%
-\special{pn 8}%
-\special{pa -787 -130}\special{pa -787 -276}%
-\special{fp}%
-\special{pn 8}%
-\special{pa -763 -201}\special{pa -787 -276}\special{pa -812 -201}\special{pa -787 -201}%
-\special{pa -763 -201}\special{sh 1}\special{ip}%
-\special{pn 8}%
-\special{pa -763 -201}\special{pa -787 -276}\special{pa -812 -201}\special{pa -787 -201}%
-\special{pa -763 -201}%
-\special{fp}%
-\special{pn 8}%
-\special{pn 8}%
-\special{pa -787 134}\special{pa -787 295}%
-\special{fp}%
-\special{pn 8}%
-\special{pa -812 220}\special{pa -787 295}\special{pa -763 220}\special{pa -787 220}%
-\special{pa -812 220}\special{sh 1}\special{ip}%
-\special{pn 8}%
-\special{pa -812 220}\special{pa -787 295}\special{pa -763 220}\special{pa -787 220}%
-\special{pa -812 220}%
-\special{fp}%
-\special{pn 8}%
-\special{pn 8}%
-\special{pa -661 -12}\special{pa -520 -4}%
-\special{fp}%
-\special{pn 8}%
-\special{pa -596 16}\special{pa -520 -4}\special{pa -593 -32}\special{pa -594 -8}%
-\special{pa -596 16}\special{sh 1}\special{ip}%
-\special{pn 8}%
-\special{pa -596 16}\special{pa -520 -4}\special{pa -593 -32}\special{pa -594 -8}%
-\special{pa -596 16}%
-\special{fp}%
-\special{pn 8}%
-\special{pn 8}%
-\special{pa -1311 -4}\special{pa -1437 -4}%
-\special{fp}%
-\special{pn 8}%
-\special{pa -1362 -28}\special{pa -1437 -4}\special{pa -1362 20}\special{pa -1362 -4}%
-\special{pa -1362 -28}\special{sh 1}\special{ip}%
-\special{pn 8}%
-\special{pa -1362 -28}\special{pa -1437 -4}\special{pa -1362 20}\special{pa -1362 -4}%
-\special{pa -1362 -28}%
-\special{fp}%
-\special{pn 8}%
-\special{pn 8}%
-\special{pa -295 8}\special{pa -177 0}%
-\special{fp}%
-\special{pn 8}%
-\special{pa -250 29}\special{pa -177 0}\special{pa -254 -19}\special{pa -252 5}\special{pa -250 29}%
-\special{sh 1}\special{ip}%
-\special{pn 8}%
-\special{pa -250 29}\special{pa -177 0}\special{pa -254 -19}\special{pa -252 5}\special{pa -250 29}%
-\special{fp}%
-\special{pn 8}%
-\special{pn 8}%
-\special{pa 189 4}\special{pa 319 4}%
-\special{fp}%
-\special{pn 8}%
-\special{pa 244 28}\special{pa 319 4}\special{pa 244 -20}\special{pa 244 4}\special{pa 244 28}%
-\special{sh 1}\special{ip}%
-\special{pn 8}%
-\special{pa 244 28}\special{pa 319 4}\special{pa 244 -20}\special{pa 244 4}\special{pa 244 28}%
-\special{fp}%
-\special{pn 8}%
-\special{pn 8}%
-\special{pa -331 -402}\special{pa -213 -484}%
-\special{fp}%
-\special{pn 8}%
-\special{pa -260 -421}\special{pa -213 -484}\special{pa -288 -461}\special{pa -274 -441}%
-\special{pa -260 -421}\special{sh 1}\special{ip}%
-\special{pn 8}%
-\special{pa -260 -421}\special{pa -213 -484}\special{pa -288 -461}\special{pa -274 -441}%
-\special{pa -260 -421}%
-\special{fp}%
-\special{pn 8}%
-\special{pn 8}%
-\special{pa -350 390}\special{pa -220 484}%
-\special{fp}%
-\special{pn 8}%
-\special{pa -295 460}\special{pa -220 484}\special{pa -267 421}\special{pa -281 440}%
-\special{pa -295 460}\special{sh 1}\special{ip}%
-\special{pn 8}%
-\special{pa -295 460}\special{pa -220 484}\special{pa -267 421}\special{pa -281 440}%
-\special{pa -295 460}%
-\special{fp}%
-\special{pn 8}%
-\special{pn 8}%
-\special{pa -1181 390}\special{pa -1276 469}%
-\special{fp}%
-\special{pn 8}%
-\special{pa -1234 402}\special{pa -1276 469}\special{pa -1202 439}\special{pa -1218 421}%
-\special{pa -1234 402}\special{sh 1}\special{ip}%
-\special{pn 8}%
-\special{pa -1234 402}\special{pa -1276 469}\special{pa -1202 439}\special{pa -1218 421}%
-\special{pa -1234 402}%
-\special{fp}%
-\special{pn 8}%
-\special{pn 8}%
-\special{pa -693 106}\special{pa -606 205}%
-\special{fp}%
-\special{pn 8}%
-\special{pa -674 165}\special{pa -606 205}\special{pa -638 132}\special{pa -656 149}%
-\special{pa -674 165}\special{sh 1}\special{ip}%
-\special{pn 8}%
-\special{pa -674 165}\special{pa -606 205}\special{pa -638 132}\special{pa -656 149}%
-\special{pa -674 165}%
-\special{fp}%
-\special{pn 8}%
-\special{pn 8}%
-\special{pa -669 -106}\special{pa -594 -189}%
-\special{fp}%
-\special{pn 8}%
-\special{pa -627 -117}\special{pa -594 -189}\special{pa -663 -150}\special{pa -645 -133}%
-\special{pa -627 -117}\special{sh 1}\special{ip}%
-\special{pn 8}%
-\special{pa -627 -117}\special{pa -594 -189}\special{pa -663 -150}\special{pa -645 -133}%
-\special{pa -627 -117}%
-\special{fp}%
-\special{pn 8}%
-\special{pn 8}%
-\special{pa -886 -87}\special{pa -1008 -205}%
-\special{fp}%
-\special{pn 8}%
-\special{pa -937 -170}\special{pa -1008 -205}\special{pa -971 -135}\special{pa -954 -153}%
-\special{pa -937 -170}\special{sh 1}\special{ip}%
-\special{pn 8}%
-\special{pa -937 -170}\special{pa -1008 -205}\special{pa -971 -135}\special{pa -954 -153}%
-\special{pa -937 -170}%
-\special{fp}%
-\special{pn 8}%
-\special{pn 8}%
-\special{pa -917 122}\special{pa -992 220}%
-\special{fp}%
-\special{pn 8}%
-\special{pa -966 146}\special{pa -992 220}\special{pa -927 176}\special{pa -947 161}%
-\special{pa -966 146}\special{sh 1}\special{ip}%
-\special{pn 8}%
-\special{pa -966 146}\special{pa -992 220}\special{pa -927 176}\special{pa -947 161}%
-\special{pa -966 146}%
-\special{fp}%
-\special{pn 8}%
-\special{pn 8}%
-\special{pa -1189 -370}\special{pa -1311 -457}%
-\special{fp}%
-\special{pn 8}%
-\special{pa -1236 -433}\special{pa -1311 -457}\special{pa -1264 -394}\special{pa -1250 -413}%
-\special{pa -1236 -433}\special{sh 1}\special{ip}%
-\special{pn 8}%
-\special{pa -1236 -433}\special{pa -1311 -457}\special{pa -1264 -394}\special{pa -1250 -413}%
-\special{pa -1236 -433}%
-\special{fp}%
-\special{pn 8}%
-\settowidth{\Width}{$\cdot$}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{$\cdot$}\settodepth{\Depth}{$\cdot$}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(3.4200,-0.0100){\hspace*{\Width}\raisebox{\Height}{$\cdot$}}%
-%
-%
-\settowidth{\Width}{$\cdot$}\setlength{\Width}{-1\Width}%
-\settoheight{\Height}{$\cdot$}\settodepth{\Depth}{$\cdot$}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(3.3700,-0.0100){\hspace*{\Width}\raisebox{\Height}{$\cdot$}}%
-%
-%
-\settowidth{\Width}{$\cdot$}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{$\cdot$}\settodepth{\Depth}{$\cdot$}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(3.4700,-0.0100){\hspace*{\Width}\raisebox{\Height}{$\cdot$}}%
-%
-%
-\settowidth{\Width}{$\cdot$}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{$\cdot$}\settodepth{\Depth}{$\cdot$}\setlength{\Height}{\Depth}%
-\put(3.4200,0.0400){\hspace*{\Width}\raisebox{\Height}{$\cdot$}}%
-%
-%
-\settowidth{\Width}{$\cdot$}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{$\cdot$}\settodepth{\Depth}{$\cdot$}\setlength{\Height}{-\Height}%
-\put(3.4200,-0.0600){\hspace*{\Width}\raisebox{\Height}{$\cdot$}}%
-%
-%
-\settowidth{\Width}{$\cdot$}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{$\cdot$}\settodepth{\Depth}{$\cdot$}\setlength{\Height}{\Depth}%
-\put(3.4700,0.0400){\hspace*{\Width}\raisebox{\Height}{$\cdot$}}%
-%
-%
-\settowidth{\Width}{$\cdot$}\setlength{\Width}{-1\Width}%
-\settoheight{\Height}{$\cdot$}\settodepth{\Depth}{$\cdot$}\setlength{\Height}{\Depth}%
-\put(3.3700,0.0400){\hspace*{\Width}\raisebox{\Height}{$\cdot$}}%
-%
-%
-\settowidth{\Width}{$\cdot$}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{$\cdot$}\settodepth{\Depth}{$\cdot$}\setlength{\Height}{-\Height}%
-\put(3.4700,-0.0600){\hspace*{\Width}\raisebox{\Height}{$\cdot$}}%
-%
-%
-\settowidth{\Width}{$\cdot$}\setlength{\Width}{-1\Width}%
-\settoheight{\Height}{$\cdot$}\settodepth{\Depth}{$\cdot$}\setlength{\Height}{-\Height}%
-\put(3.3700,-0.0600){\hspace*{\Width}\raisebox{\Height}{$\cdot$}}%
-%
-%
-\settowidth{\Width}{$\cdot$}\setlength{\Width}{-1\Width}%
-\settoheight{\Height}{$\cdot$}\settodepth{\Depth}{$\cdot$}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(3.2700,-0.0100){\hspace*{\Width}\raisebox{\Height}{$\cdot$}}%
-%
-%
-\settowidth{\Width}{$\cdot$}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{$\cdot$}\settodepth{\Depth}{$\cdot$}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(3.5700,-0.0100){\hspace*{\Width}\raisebox{\Height}{$\cdot$}}%
-%
-%
-\settowidth{\Width}{$\cdot$}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{$\cdot$}\settodepth{\Depth}{$\cdot$}\setlength{\Height}{\Depth}%
-\put(3.4200,0.1400){\hspace*{\Width}\raisebox{\Height}{$\cdot$}}%
-%
-%
-\settowidth{\Width}{$\cdot$}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{$\cdot$}\settodepth{\Depth}{$\cdot$}\setlength{\Height}{-\Height}%
-\put(3.4200,-0.1600){\hspace*{\Width}\raisebox{\Height}{$\cdot$}}%
-%
-%
-\settowidth{\Width}{$\cdot$}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{$\cdot$}\settodepth{\Depth}{$\cdot$}\setlength{\Height}{\Depth}%
-\put(3.5700,0.0400){\hspace*{\Width}\raisebox{\Height}{$\cdot$}}%
-%
-%
-\settowidth{\Width}{$\cdot$}\setlength{\Width}{-1\Width}%
-\settoheight{\Height}{$\cdot$}\settodepth{\Depth}{$\cdot$}\setlength{\Height}{\Depth}%
-\put(3.2700,0.0400){\hspace*{\Width}\raisebox{\Height}{$\cdot$}}%
-%
-%
-\settowidth{\Width}{$\cdot$}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{$\cdot$}\settodepth{\Depth}{$\cdot$}\setlength{\Height}{\Depth}%
-\put(3.4200,0.1400){\hspace*{\Width}\raisebox{\Height}{$\cdot$}}%
-%
-%
-\settowidth{\Width}{$\cdot$}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{$\cdot$}\settodepth{\Depth}{$\cdot$}\setlength{\Height}{-\Height}%
-\put(3.5700,-0.0600){\hspace*{\Width}\raisebox{\Height}{$\cdot$}}%
-%
-%
-\settowidth{\Width}{$\cdot$}\setlength{\Width}{-1\Width}%
-\settoheight{\Height}{$\cdot$}\settodepth{\Depth}{$\cdot$}\setlength{\Height}{-\Height}%
-\put(3.2700,-0.0600){\hspace*{\Width}\raisebox{\Height}{$\cdot$}}%
-%
-%
-\settowidth{\Width}{$\cdot$}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{$\cdot$}\settodepth{\Depth}{$\cdot$}\setlength{\Height}{\Depth}%
-\put(3.4700,0.1400){\hspace*{\Width}\raisebox{\Height}{$\cdot$}}%
-%
-%
-\settowidth{\Width}{$\cdot$}\setlength{\Width}{-1\Width}%
-\settoheight{\Height}{$\cdot$}\settodepth{\Depth}{$\cdot$}\setlength{\Height}{\Depth}%
-\put(3.3700,0.1400){\hspace*{\Width}\raisebox{\Height}{$\cdot$}}%
-%
-%
-\settowidth{\Width}{$\cdot$}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{$\cdot$}\settodepth{\Depth}{$\cdot$}\setlength{\Height}{\Depth}%
-\put(3.4200,0.2400){\hspace*{\Width}\raisebox{\Height}{$\cdot$}}%
-%
-%
-\settowidth{\Width}{$\cdot$}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{$\cdot$}\settodepth{\Depth}{$\cdot$}\setlength{\Height}{\Depth}%
-\put(3.4200,0.3400){\hspace*{\Width}\raisebox{\Height}{$\cdot$}}%
-%
-%
-\settowidth{\Width}{$\cdot$}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{$\cdot$}\settodepth{\Depth}{$\cdot$}\setlength{\Height}{-\Height}%
-\put(3.4700,-0.1600){\hspace*{\Width}\raisebox{\Height}{$\cdot$}}%
-%
-%
-\settowidth{\Width}{$\cdot$}\setlength{\Width}{-1\Width}%
-\settoheight{\Height}{$\cdot$}\settodepth{\Depth}{$\cdot$}\setlength{\Height}{-\Height}%
-\put(3.3700,-0.1600){\hspace*{\Width}\raisebox{\Height}{$\cdot$}}%
-%
-%
-\settowidth{\Width}{$\cdot$}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{$\cdot$}\settodepth{\Depth}{$\cdot$}\setlength{\Height}{\Depth}%
-\put(3.5700,0.1400){\hspace*{\Width}\raisebox{\Height}{$\cdot$}}%
-%
-%
-\settowidth{\Width}{$\cdot$}\setlength{\Width}{-1\Width}%
-\settoheight{\Height}{$\cdot$}\settodepth{\Depth}{$\cdot$}\setlength{\Height}{\Depth}%
-\put(3.2700,0.1400){\hspace*{\Width}\raisebox{\Height}{$\cdot$}}%
-%
-%
-\settowidth{\Width}{$\cdot$}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{$\cdot$}\settodepth{\Depth}{$\cdot$}\setlength{\Height}{-\Height}%
-\put(3.5700,-0.1600){\hspace*{\Width}\raisebox{\Height}{$\cdot$}}%
-%
-%
-\settowidth{\Width}{$\cdot$}\setlength{\Width}{-1\Width}%
-\settoheight{\Height}{$\cdot$}\settodepth{\Depth}{$\cdot$}\setlength{\Height}{-\Height}%
-\put(3.2700,-0.1600){\hspace*{\Width}\raisebox{\Height}{$\cdot$}}%
-%
-%
-\settowidth{\Width}{$\cdot$}\setlength{\Width}{-1\Width}%
-\settoheight{\Height}{$\cdot$}\settodepth{\Depth}{$\cdot$}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(3.2200,-0.0100){\hspace*{\Width}\raisebox{\Height}{$\cdot$}}%
-%
-%
-\settowidth{\Width}{$\cdot$}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{$\cdot$}\settodepth{\Depth}{$\cdot$}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(3.6200,-0.0100){\hspace*{\Width}\raisebox{\Height}{$\cdot$}}%
-%
-%
-\settowidth{\Width}{$\cdot$}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{$\cdot$}\settodepth{\Depth}{$\cdot$}\setlength{\Height}{\Depth}%
-\put(3.4200,0.1900){\hspace*{\Width}\raisebox{\Height}{$\cdot$}}%
-%
-%
-\settowidth{\Width}{$\cdot$}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{$\cdot$}\settodepth{\Depth}{$\cdot$}\setlength{\Height}{-\Height}%
-\put(3.4200,-0.2100){\hspace*{\Width}\raisebox{\Height}{$\cdot$}}%
-%
-%
-\settowidth{\Width}{$\cdot$}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{$\cdot$}\settodepth{\Depth}{$\cdot$}\setlength{\Height}{\Depth}%
-\put(3.6200,0.0400){\hspace*{\Width}\raisebox{\Height}{$\cdot$}}%
-%
-%
-\settowidth{\Width}{$\cdot$}\setlength{\Width}{-1\Width}%
-\settoheight{\Height}{$\cdot$}\settodepth{\Depth}{$\cdot$}\setlength{\Height}{\Depth}%
-\put(3.2200,0.0400){\hspace*{\Width}\raisebox{\Height}{$\cdot$}}%
-%
-%
-\settowidth{\Width}{$\cdot$}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{$\cdot$}\settodepth{\Depth}{$\cdot$}\setlength{\Height}{\Depth}%
-\put(3.4200,0.1900){\hspace*{\Width}\raisebox{\Height}{$\cdot$}}%
-%
-%
-\settowidth{\Width}{$\cdot$}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{$\cdot$}\settodepth{\Depth}{$\cdot$}\setlength{\Height}{-\Height}%
-\put(3.6200,-0.0600){\hspace*{\Width}\raisebox{\Height}{$\cdot$}}%
-%
-%
-\settowidth{\Width}{$\cdot$}\setlength{\Width}{-1\Width}%
-\settoheight{\Height}{$\cdot$}\settodepth{\Depth}{$\cdot$}\setlength{\Height}{-\Height}%
-\put(3.2200,-0.0600){\hspace*{\Width}\raisebox{\Height}{$\cdot$}}%
-%
-%
-\settowidth{\Width}{$\cdot$}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{$\cdot$}\settodepth{\Depth}{$\cdot$}\setlength{\Height}{\Depth}%
-\put(3.6200,0.1900){\hspace*{\Width}\raisebox{\Height}{$\cdot$}}%
-%
-%
-\settowidth{\Width}{$\cdot$}\setlength{\Width}{-1\Width}%
-\settoheight{\Height}{$\cdot$}\settodepth{\Depth}{$\cdot$}\setlength{\Height}{\Depth}%
-\put(3.2200,0.1900){\hspace*{\Width}\raisebox{\Height}{$\cdot$}}%
-%
-%
-\settowidth{\Width}{$\cdot$}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{$\cdot$}\settodepth{\Depth}{$\cdot$}\setlength{\Height}{-\Height}%
-\put(3.4200,-0.2600){\hspace*{\Width}\raisebox{\Height}{$\cdot$}}%
-%
-%
-\settowidth{\Width}{$\cdot$}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{$\cdot$}\settodepth{\Depth}{$\cdot$}\setlength{\Height}{-\Height}%
-\put(3.4200,-0.3600){\hspace*{\Width}\raisebox{\Height}{$\cdot$}}%
-%
-%
-\settowidth{\Width}{$\cdot$}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{$\cdot$}\settodepth{\Depth}{$\cdot$}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(3.6700,-0.0100){\hspace*{\Width}\raisebox{\Height}{$\cdot$}}%
-%
-%
-\settowidth{\Width}{$\cdot$}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{$\cdot$}\settodepth{\Depth}{$\cdot$}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(3.7700,-0.0100){\hspace*{\Width}\raisebox{\Height}{$\cdot$}}%
-%
-%
-\settowidth{\Width}{$\cdot$}\setlength{\Width}{-1\Width}%
-\settoheight{\Height}{$\cdot$}\settodepth{\Depth}{$\cdot$}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(3.1700,-0.0100){\hspace*{\Width}\raisebox{\Height}{$\cdot$}}%
-%
-%
-\settowidth{\Width}{$\cdot$}\setlength{\Width}{-1\Width}%
-\settoheight{\Height}{$\cdot$}\settodepth{\Depth}{$\cdot$}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(3.0700,-0.0100){\hspace*{\Width}\raisebox{\Height}{$\cdot$}}%
-%
-%
-\settowidth{\Width}{$\cdot$}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{$\cdot$}\settodepth{\Depth}{$\cdot$}\setlength{\Height}{-\Height}%
-\put(3.6200,-0.2100){\hspace*{\Width}\raisebox{\Height}{$\cdot$}}%
-%
-%
-\special{pa -508 0}\special{pa -510 -35}\special{pa -517 -70}\special{pa -527 -103}%
-\special{pa -542 -135}\special{pa -561 -164}\special{pa -584 -191}\special{pa -609 -215}%
-\special{pa -638 -236}\special{pa -668 -253}\special{pa -701 -266}\special{pa -735 -275}%
-\special{pa -770 -279}\special{pa -805 -279}\special{pa -840 -275}\special{pa -874 -266}%
-\special{pa -906 -253}\special{pa -937 -236}\special{pa -966 -215}\special{pa -991 -191}%
-\special{pa -1014 -164}\special{pa -1032 -135}\special{pa -1047 -103}\special{pa -1058 -70}%
-\special{pa -1065 -35}\special{pa -1067 0}\special{pa -1065 35}\special{pa -1058 70}%
-\special{pa -1047 103}\special{pa -1032 135}\special{pa -1014 164}\special{pa -991 191}%
-\special{pa -966 215}\special{pa -937 236}\special{pa -906 253}\special{pa -874 266}%
-\special{pa -840 275}\special{pa -805 279}\special{pa -770 279}\special{pa -735 275}%
-\special{pa -701 266}\special{pa -668 253}\special{pa -638 236}\special{pa -609 215}%
-\special{pa -584 191}\special{pa -561 164}\special{pa -542 135}\special{pa -527 103}%
-\special{pa -517 70}\special{pa -510 35}\special{pa -508 0}%
-\special{fp}%
-\end{picture}}% \ No newline at end of file
diff --git a/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/lineplot.tex b/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/lineplot.tex
deleted file mode 100644
index 306082ba..00000000
--- a/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/lineplot.tex
+++ /dev/null
@@ -1,80 +0,0 @@
-%%% test.tex 2014-10-19 15:24
-%%% test.sce 2014-10-19 15:24
-{\unitlength=5mm%
-\begin{picture}%
-( 11.00000, 5.00000)( -6.00000, -1.00000)%
-\special{pn 8}%
-%
-\special{pn 4}%
-\special{pa -787 -197}\special{pa 394 -787}%
-\special{fp}%
-\special{pn 8}%
-\special{pn 16}%
-\special{pa -1181 197}\special{pa 787 -787}%
-\special{fp}%
-\special{pn 8}%
-\special{pa -787 197}\special{pa -753 179}\special{fp}\special{pa -718 162}\special{pa -683 145}\special{fp}%
-\special{pa -648 127}\special{pa -614 110}\special{fp}\special{pa -579 93}\special{pa -544 75}\special{fp}%
-\special{pa -509 58}\special{pa -475 41}\special{fp}\special{pa -440 23}\special{pa -405 6}\special{fp}%
-\special{pa -371 -12}\special{pa -336 -29}\special{fp}\special{pa -301 -46}\special{pa -266 -64}\special{fp}%
-\special{pa -232 -81}\special{pa -197 -98}\special{fp}\special{pa -162 -116}\special{pa -127 -133}\special{fp}%
-\special{pa -93 -151}\special{pa -58 -168}\special{fp}\special{pa -23 -185}\special{pa 12 -203}\special{fp}%
-\special{pa 46 -220}\special{pa 81 -237}\special{fp}\special{pa 116 -255}\special{pa 151 -272}\special{fp}%
-\special{pa 185 -289}\special{pa 220 -307}\special{fp}\special{pa 255 -324}\special{pa 289 -342}\special{fp}%
-\special{pa 324 -359}\special{pa 359 -376}\special{fp}\special{pa 394 -394}\special{pa 428 -411}\special{fp}%
-\special{pa 463 -428}\special{pa 498 -446}\special{fp}\special{pa 533 -463}\special{pa 567 -481}\special{fp}%
-\special{pa 602 -498}\special{pa 637 -515}\special{fp}\special{pa 672 -533}\special{pa 706 -550}\special{fp}%
-\special{pa 741 -567}\special{pa 776 -585}\special{fp}\special{pa 811 -602}\special{pa 845 -619}\special{fp}%
-\special{pa 880 -637}\special{pa 915 -654}\special{fp}\special{pa 950 -672}\special{pa 984 -689}\special{fp}%
-%
-%
-\special{pn 8}%
-\special{pa -397 199}\special{pa -390 195}\special{fp}\special{pa -362 181}\special{pa -355 177}\special{fp}%
-\special{pa -327 163}\special{pa -319 160}\special{fp}\special{pa -291 146}\special{pa -284 142}\special{fp}%
-\special{pa -256 128}\special{pa -249 124}\special{fp}\special{pa -221 110}\special{pa -213 107}\special{fp}%
-\special{pa -185 93}\special{pa -178 89}\special{fp}\special{pa -150 75}\special{pa -143 71}\special{fp}%
-\special{pa -115 57}\special{pa -107 54}\special{fp}\special{pa -79 40}\special{pa -72 36}\special{fp}%
-\special{pa -44 22}\special{pa -37 18}\special{fp}\special{pa -9 4}\special{pa -1 1}\special{fp}%
-\special{pa 27 -13}\special{pa 34 -17}\special{fp}\special{pa 62 -31}\special{pa 69 -35}\special{fp}%
-\special{pa 97 -49}\special{pa 105 -52}\special{fp}\special{pa 133 -66}\special{pa 140 -70}\special{fp}%
-\special{pa 168 -84}\special{pa 175 -88}\special{fp}\special{pa 203 -102}\special{pa 211 -105}\special{fp}%
-\special{pa 239 -119}\special{pa 246 -123}\special{fp}\special{pa 274 -137}\special{pa 281 -141}\special{fp}%
-\special{pa 309 -155}\special{pa 317 -158}\special{fp}\special{pa 345 -172}\special{pa 352 -176}\special{fp}%
-\special{pa 380 -190}\special{pa 387 -194}\special{fp}\special{pa 415 -208}\special{pa 423 -211}\special{fp}%
-\special{pa 451 -225}\special{pa 458 -229}\special{fp}\special{pa 486 -243}\special{pa 493 -247}\special{fp}%
-\special{pa 521 -261}\special{pa 529 -264}\special{fp}\special{pa 557 -278}\special{pa 564 -282}\special{fp}%
-\special{pa 592 -296}\special{pa 599 -300}\special{fp}\special{pa 627 -314}\special{pa 635 -317}\special{fp}%
-\special{pa 663 -331}\special{pa 670 -335}\special{fp}\special{pa 698 -349}\special{pa 705 -353}\special{fp}%
-\special{pa 733 -367}\special{pa 741 -370}\special{fp}\special{pa 769 -384}\special{pa 776 -388}\special{fp}%
-\special{pa 804 -402}\special{pa 811 -406}\special{fp}\special{pa 839 -420}\special{pa 847 -423}\special{fp}%
-\special{pa 875 -437}\special{pa 882 -441}\special{fp}\special{pa 910 -455}\special{pa 917 -459}\special{fp}%
-\special{pa 945 -473}\special{pa 952 -476}\special{fp}\special{pa 981 -490}\special{pa 988 -494}\special{fp}%
-\special{pn 8}%
-\special{pa -779 -205}\special{pa -786 -209}\special{pa -793 -207}\special{pa -798 -202}%
-\special{pa -799 -195}\special{pa -796 -188}\special{pa -789 -185}\special{pa -782 -186}%
-\special{pa -777 -191}\special{pa -776 -199}\special{pa -779 -205}\special{sh 1}\special{fp}%
-\settowidth{\Width}{A}\setlength{\Width}{-1\Width}%
-\settoheight{\Height}{A}\settodepth{\Depth}{A}\setlength{\Height}{\Depth}%
-\put(-4.0500,1.0500){\hspace*{\Width}\raisebox{\Height}{A}}%
-%
-%
-\special{pa -1181 0}\special{pa 984 0}%
-\special{fp}%
-\special{pa 0 197}\special{pa 0 -787}%
-\special{fp}%
-\settowidth{\Width}{$x$}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{$x$}\settodepth{\Depth}{$x$}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(5.0500,0.0000){\hspace*{\Width}\raisebox{\Height}{$x$}}%
-%
-%
-\settowidth{\Width}{$y$}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{$y$}\settodepth{\Depth}{$y$}\setlength{\Height}{\Depth}%
-\put(0.0000,4.0500){\hspace*{\Width}\raisebox{\Height}{$y$}}%
-%
-%
-\settowidth{\Width}{O}\setlength{\Width}{-1\Width}%
-\settoheight{\Height}{O}\settodepth{\Depth}{O}\setlength{\Height}{-\Height}%
-\put(-0.0500,-0.0500){\hspace*{\Width}\raisebox{\Height}{O}}%
-%
-%
-\end{picture}}% \ No newline at end of file
diff --git a/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/listplot1.tex b/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/listplot1.tex
deleted file mode 100644
index 678392eb..00000000
--- a/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/listplot1.tex
+++ /dev/null
@@ -1,10 +0,0 @@
-%%% test.tex 2014-10-14 16:47
-%%% test.sce 2014-10-14 16:46
-{\unitlength=1cm%
-\begin{picture}%
-( 5.09000, 3.62000)( -2.60000, 0.13000)%
-\special{pn 8}%
-%
-\special{pa -394 -1181}\special{pa 787 -394}\special{pa -787 -394}\special{pa -394 -1181}%
-\special{fp}%
-\end{picture}}% \ No newline at end of file
diff --git a/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/listplot2.tex b/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/listplot2.tex
deleted file mode 100644
index ecfe664a..00000000
--- a/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/listplot2.tex
+++ /dev/null
@@ -1,376 +0,0 @@
-%%% test.tex 2014-10-15 13:37
-%%% test.sce 2014-10-15 13:37
-{\unitlength=1cm%
-\begin{picture}%
-( 6.50000, 6.00000)( -0.50000, -0.50000)%
-\special{pn 8}%
-%
-\special{pa 0 0}\special{pa 16 -28}\special{pa 31 -55}\special{pa 47 -87}\special{pa 67 -114}%
-\special{pa 83 -142}\special{pa 98 -169}\special{pa 114 -201}\special{pa 130 -228}%
-\special{pa 150 -256}\special{pa 165 -283}\special{pa 181 -311}\special{pa 197 -343}%
-\special{pa 213 -370}\special{pa 228 -398}\special{pa 244 -425}\special{pa 264 -453}%
-\special{pa 280 -484}\special{pa 295 -512}\special{pa 311 -539}\special{pa 327 -567}%
-\special{pa 343 -598}\special{pa 362 -626}\special{pa 378 -654}\special{pa 394 -681}%
-\special{pa 409 -709}\special{pa 425 -740}\special{pa 441 -768}\special{pa 461 -795}%
-\special{pa 476 -823}\special{pa 492 -854}\special{pa 508 -882}\special{pa 524 -909}%
-\special{pa 543 -882}\special{pa 559 -854}\special{pa 575 -823}\special{pa 591 -795}%
-\special{pa 606 -768}\special{pa 622 -740}\special{pa 642 -709}\special{pa 657 -681}%
-\special{pa 673 -654}\special{pa 689 -626}\special{pa 705 -598}\special{pa 720 -567}%
-\special{pa 740 -539}\special{pa 756 -512}\special{pa 772 -484}\special{pa 787 -453}%
-\special{pa 756 -453}\special{pa 720 -453}\special{pa 689 -453}\special{pa 657 -453}%
-\special{pa 622 -453}\special{pa 591 -453}\special{pa 559 -453}\special{pa 524 -453}%
-\special{pa 543 -484}\special{pa 559 -512}\special{pa 575 -539}\special{pa 591 -567}%
-\special{pa 606 -539}\special{pa 622 -512}\special{pa 591 -512}\special{pa 559 -512}%
-\special{pa 575 -484}\special{pa 591 -453}\special{pa 606 -484}\special{pa 622 -512}%
-\special{pa 642 -484}\special{pa 657 -453}\special{pa 673 -484}\special{pa 689 -512}%
-\special{pa 705 -484}\special{pa 720 -453}\special{pa 740 -484}\special{pa 756 -512}%
-\special{pa 720 -512}\special{pa 689 -512}\special{pa 705 -539}\special{pa 720 -567}%
-\special{pa 689 -567}\special{pa 657 -567}\special{pa 673 -598}\special{pa 689 -626}%
-\special{pa 657 -626}\special{pa 622 -626}\special{pa 642 -598}\special{pa 657 -567}%
-\special{pa 622 -567}\special{pa 591 -567}\special{pa 606 -598}\special{pa 622 -626}%
-\special{pa 642 -654}\special{pa 657 -681}\special{pa 622 -681}\special{pa 591 -681}%
-\special{pa 559 -681}\special{pa 524 -681}\special{pa 543 -709}\special{pa 559 -740}%
-\special{pa 575 -709}\special{pa 591 -681}\special{pa 606 -709}\special{pa 622 -740}%
-\special{pa 591 -740}\special{pa 559 -740}\special{pa 575 -768}\special{pa 591 -795}%
-\special{pa 559 -795}\special{pa 524 -795}\special{pa 543 -823}\special{pa 559 -854}%
-\special{pa 524 -854}\special{pa 492 -854}\special{pa 508 -823}\special{pa 524 -795}%
-\special{pa 492 -795}\special{pa 461 -795}\special{pa 476 -768}\special{pa 492 -740}%
-\special{pa 461 -740}\special{pa 425 -740}\special{pa 445 -709}\special{pa 461 -681}%
-\special{pa 476 -709}\special{pa 492 -740}\special{pa 508 -709}\special{pa 524 -681}%
-\special{pa 492 -681}\special{pa 461 -681}\special{pa 425 -681}\special{pa 394 -681}%
-\special{pa 409 -654}\special{pa 425 -626}\special{pa 445 -598}\special{pa 461 -567}%
-\special{pa 425 -567}\special{pa 394 -567}\special{pa 409 -598}\special{pa 425 -626}%
-\special{pa 394 -626}\special{pa 362 -626}\special{pa 378 -598}\special{pa 394 -567}%
-\special{pa 362 -567}\special{pa 327 -567}\special{pa 346 -539}\special{pa 362 -512}%
-\special{pa 327 -512}\special{pa 295 -512}\special{pa 311 -484}\special{pa 327 -453}%
-\special{pa 346 -484}\special{pa 362 -512}\special{pa 378 -484}\special{pa 394 -453}%
-\special{pa 409 -484}\special{pa 425 -512}\special{pa 445 -484}\special{pa 461 -453}%
-\special{pa 476 -484}\special{pa 492 -512}\special{pa 461 -512}\special{pa 425 -512}%
-\special{pa 445 -539}\special{pa 461 -567}\special{pa 476 -539}\special{pa 492 -512}%
-\special{pa 508 -484}\special{pa 524 -453}\special{pa 492 -453}\special{pa 461 -453}%
-\special{pa 425 -453}\special{pa 394 -453}\special{pa 362 -453}\special{pa 327 -453}%
-\special{pa 295 -453}\special{pa 264 -453}\special{pa 280 -425}\special{pa 295 -398}%
-\special{pa 311 -370}\special{pa 327 -343}\special{pa 346 -311}\special{pa 362 -283}%
-\special{pa 378 -256}\special{pa 394 -228}\special{pa 362 -228}\special{pa 327 -228}%
-\special{pa 295 -228}\special{pa 264 -228}\special{pa 280 -256}\special{pa 295 -283}%
-\special{pa 311 -256}\special{pa 327 -228}\special{pa 346 -256}\special{pa 362 -283}%
-\special{pa 327 -283}\special{pa 295 -283}\special{pa 311 -311}\special{pa 327 -343}%
-\special{pa 295 -343}\special{pa 264 -343}\special{pa 280 -370}\special{pa 295 -398}%
-\special{pa 264 -398}\special{pa 228 -398}\special{pa 248 -370}\special{pa 264 -343}%
-\special{pa 228 -343}\special{pa 197 -343}\special{pa 213 -311}\special{pa 228 -283}%
-\special{pa 197 -283}\special{pa 165 -283}\special{pa 181 -256}\special{pa 197 -228}%
-\special{pa 213 -256}\special{pa 228 -283}\special{pa 248 -256}\special{pa 264 -228}%
-\special{pa 228 -228}\special{pa 197 -228}\special{pa 165 -228}\special{pa 130 -228}%
-\special{pa 150 -201}\special{pa 165 -169}\special{pa 181 -142}\special{pa 197 -114}%
-\special{pa 165 -114}\special{pa 130 -114}\special{pa 150 -142}\special{pa 165 -169}%
-\special{pa 130 -169}\special{pa 98 -169}\special{pa 114 -142}\special{pa 130 -114}%
-\special{pa 98 -114}\special{pa 67 -114}\special{pa 83 -87}\special{pa 98 -55}\special{pa 67 -55}%
-\special{pa 31 -55}\special{pa 51 -28}\special{pa 67 0}\special{pa 83 -28}\special{pa 98 -55}%
-\special{pa 114 -28}\special{pa 130 0}\special{pa 150 -28}\special{pa 165 -55}\special{pa 181 -28}%
-\special{pa 197 0}\special{pa 213 -28}\special{pa 228 -55}\special{pa 197 -55}\special{pa 165 -55}%
-\special{fp}%
-\special{pa 165 -55}\special{pa 181 -87}\special{pa 197 -114}\special{pa 213 -87}%
-\special{pa 228 -55}\special{pa 248 -28}\special{pa 264 0}\special{pa 280 -28}\special{pa 295 -55}%
-\special{pa 311 -87}\special{pa 327 -114}\special{pa 346 -87}\special{pa 362 -55}%
-\special{pa 327 -55}\special{pa 295 -55}\special{pa 311 -28}\special{pa 327 0}\special{pa 346 -28}%
-\special{pa 362 -55}\special{pa 378 -28}\special{pa 394 0}\special{pa 409 -28}\special{pa 425 -55}%
-\special{pa 445 -28}\special{pa 461 0}\special{pa 476 -28}\special{pa 492 -55}\special{pa 461 -55}%
-\special{pa 425 -55}\special{pa 445 -87}\special{pa 461 -114}\special{pa 425 -114}%
-\special{pa 394 -114}\special{pa 409 -142}\special{pa 425 -169}\special{pa 394 -169}%
-\special{pa 362 -169}\special{pa 378 -142}\special{pa 394 -114}\special{pa 362 -114}%
-\special{pa 327 -114}\special{pa 346 -142}\special{pa 362 -169}\special{pa 378 -201}%
-\special{pa 394 -228}\special{pa 409 -201}\special{pa 425 -169}\special{pa 445 -142}%
-\special{pa 461 -114}\special{pa 476 -87}\special{pa 492 -55}\special{pa 508 -28}%
-\special{pa 524 0}\special{pa 539 -28}\special{pa 559 -55}\special{pa 575 -87}\special{pa 591 -114}%
-\special{pa 606 -142}\special{pa 622 -169}\special{pa 638 -201}\special{pa 657 -228}%
-\special{pa 673 -201}\special{pa 689 -169}\special{pa 705 -142}\special{pa 720 -114}%
-\special{pa 689 -114}\special{pa 657 -114}\special{pa 673 -142}\special{pa 689 -169}%
-\special{pa 657 -169}\special{pa 622 -169}\special{pa 638 -142}\special{pa 657 -114}%
-\special{pa 622 -114}\special{pa 591 -114}\special{pa 606 -87}\special{pa 622 -55}%
-\special{pa 591 -55}\special{pa 559 -55}\special{pa 575 -28}\special{pa 591 0}\special{pa 606 -28}%
-\special{pa 622 -55}\special{pa 638 -28}\special{pa 657 0}\special{pa 673 -28}\special{pa 689 -55}%
-\special{pa 705 -28}\special{pa 720 0}\special{pa 736 -28}\special{pa 756 -55}\special{pa 720 -55}%
-\special{pa 689 -55}\special{pa 705 -87}\special{pa 720 -114}\special{pa 736 -87}%
-\special{pa 756 -55}\special{pa 772 -28}\special{pa 787 0}\special{pa 803 -28}\special{pa 819 -55}%
-\special{pa 835 -87}\special{pa 854 -114}\special{pa 870 -87}\special{pa 886 -55}%
-\special{pa 854 -55}\special{pa 819 -55}\special{pa 835 -28}\special{pa 854 0}\special{pa 870 -28}%
-\special{pa 886 -55}\special{pa 902 -28}\special{pa 917 0}\special{pa 933 -28}\special{pa 953 -55}%
-\special{pa 969 -28}\special{pa 984 0}\special{pa 1000 -28}\special{pa 1016 -55}\special{pa 984 -55}%
-\special{pa 953 -55}\special{pa 969 -87}\special{pa 984 -114}\special{pa 953 -114}%
-\special{pa 917 -114}\special{pa 933 -142}\special{pa 953 -169}\special{pa 917 -169}%
-\special{pa 886 -169}\special{pa 902 -142}\special{pa 917 -114}\special{pa 886 -114}%
-\special{pa 854 -114}\special{pa 870 -142}\special{pa 886 -169}\special{pa 902 -201}%
-\special{pa 917 -228}\special{pa 886 -228}\special{pa 854 -228}\special{pa 819 -228}%
-\special{pa 787 -228}\special{pa 803 -256}\special{pa 819 -283}\special{pa 835 -256}%
-\special{pa 854 -228}\special{pa 870 -256}\special{pa 886 -283}\special{pa 854 -283}%
-\special{pa 819 -283}\special{pa 835 -311}\special{pa 854 -343}\special{pa 819 -343}%
-\special{pa 787 -343}\special{pa 803 -370}\special{pa 819 -398}\special{pa 787 -398}%
-\special{pa 756 -398}\special{pa 772 -370}\special{pa 787 -343}\special{pa 756 -343}%
-\special{pa 720 -343}\special{pa 736 -311}\special{pa 756 -283}\special{pa 720 -283}%
-\special{pa 689 -283}\special{pa 705 -256}\special{pa 720 -228}\special{pa 736 -256}%
-\special{pa 756 -283}\special{pa 772 -256}\special{pa 787 -228}\special{pa 756 -228}%
-\special{pa 720 -228}\special{pa 689 -228}\special{pa 657 -228}\special{pa 673 -256}%
-\special{pa 689 -283}\special{pa 705 -311}\special{pa 720 -343}\special{pa 736 -370}%
-\special{pa 756 -398}\special{pa 772 -425}\special{pa 787 -453}\special{pa 803 -425}%
-\special{pa 819 -398}\special{pa 835 -370}\special{pa 854 -343}\special{pa 870 -311}%
-\special{pa 886 -283}\special{pa 902 -256}\special{pa 917 -228}\special{pa 933 -201}%
-\special{pa 953 -169}\special{pa 969 -142}\special{pa 984 -114}\special{pa 1000 -87}%
-\special{pa 1016 -55}\special{pa 1031 -28}\special{pa 1051 0}\special{pa 1067 -28}%
-\special{pa 1083 -55}\special{pa 1098 -87}\special{pa 1114 -114}\special{pa 1130 -142}%
-\special{pa 1150 -169}\special{pa 1165 -201}\special{pa 1181 -228}\special{pa 1197 -256}%
-\special{pa 1213 -283}\special{pa 1228 -311}\special{pa 1248 -343}\special{pa 1264 -370}%
-\special{pa 1280 -398}\special{pa 1295 -425}\special{pa 1311 -453}\special{pa 1327 -425}%
-\special{pa 1346 -398}\special{pa 1362 -370}\special{pa 1378 -343}\special{pa 1394 -311}%
-\special{pa 1409 -283}\special{pa 1425 -256}\special{pa 1445 -228}\special{pa 1409 -228}%
-\special{pa 1378 -228}\special{pa 1346 -228}\special{pa 1311 -228}\special{pa 1327 -256}%
-\special{pa 1346 -283}\special{pa 1362 -256}\special{pa 1378 -228}\special{pa 1394 -256}%
-\special{pa 1409 -283}\special{pa 1378 -283}\special{pa 1346 -283}\special{pa 1362 -311}%
-\special{pa 1378 -343}\special{pa 1346 -343}\special{pa 1311 -343}\special{pa 1327 -370}%
-\special{pa 1346 -398}\special{pa 1311 -398}\special{pa 1280 -398}\special{pa 1295 -370}%
-\special{pa 1311 -343}\special{pa 1280 -343}\special{pa 1248 -343}\special{pa 1264 -311}%
-\special{pa 1280 -283}\special{pa 1248 -283}\special{pa 1213 -283}\special{pa 1228 -256}%
-\special{pa 1248 -228}\special{pa 1264 -256}\special{pa 1280 -283}\special{pa 1295 -256}%
-\special{pa 1311 -228}%
-\special{fp}%
-\special{pa 1311 -228}\special{pa 1280 -228}\special{pa 1248 -228}\special{pa 1213 -228}%
-\special{pa 1181 -228}\special{pa 1197 -201}\special{pa 1213 -169}\special{pa 1228 -142}%
-\special{pa 1248 -114}\special{pa 1213 -114}\special{pa 1181 -114}\special{pa 1197 -142}%
-\special{pa 1213 -169}\special{pa 1181 -169}\special{pa 1150 -169}\special{pa 1165 -142}%
-\special{pa 1181 -114}\special{pa 1150 -114}\special{pa 1114 -114}\special{pa 1130 -87}%
-\special{pa 1150 -55}\special{pa 1114 -55}\special{pa 1083 -55}\special{pa 1098 -28}%
-\special{pa 1114 0}\special{pa 1130 -28}\special{pa 1150 -55}\special{pa 1165 -28}%
-\special{pa 1181 0}\special{pa 1197 -28}\special{pa 1213 -55}\special{pa 1228 -28}%
-\special{pa 1248 0}\special{pa 1264 -28}\special{pa 1280 -55}\special{pa 1248 -55}%
-\special{pa 1213 -55}\special{pa 1228 -87}\special{pa 1248 -114}\special{pa 1264 -87}%
-\special{pa 1280 -55}\special{pa 1295 -28}\special{pa 1311 0}\special{pa 1327 -28}%
-\special{pa 1346 -55}\special{pa 1362 -87}\special{pa 1378 -114}\special{pa 1394 -87}%
-\special{pa 1409 -55}\special{pa 1378 -55}\special{pa 1346 -55}\special{pa 1362 -28}%
-\special{pa 1378 0}\special{pa 1394 -28}\special{pa 1409 -55}\special{pa 1425 -28}%
-\special{pa 1445 0}\special{pa 1461 -28}\special{pa 1476 -55}\special{pa 1492 -28}%
-\special{pa 1508 0}\special{pa 1524 -28}\special{pa 1543 -55}\special{pa 1508 -55}%
-\special{pa 1476 -55}\special{pa 1492 -87}\special{pa 1508 -114}\special{pa 1476 -114}%
-\special{pa 1445 -114}\special{pa 1461 -142}\special{pa 1476 -169}\special{pa 1445 -169}%
-\special{pa 1409 -169}\special{pa 1425 -142}\special{pa 1445 -114}\special{pa 1409 -114}%
-\special{pa 1378 -114}\special{pa 1394 -142}\special{pa 1409 -169}\special{pa 1425 -201}%
-\special{pa 1445 -228}\special{pa 1461 -201}\special{pa 1476 -169}\special{pa 1492 -142}%
-\special{pa 1508 -114}\special{pa 1524 -87}\special{pa 1543 -55}\special{pa 1559 -28}%
-\special{pa 1575 0}\special{pa 1591 -28}\special{pa 1606 -55}\special{pa 1622 -87}%
-\special{pa 1642 -114}\special{pa 1657 -142}\special{pa 1673 -169}\special{pa 1689 -201}%
-\special{pa 1705 -228}\special{pa 1720 -201}\special{pa 1740 -169}\special{pa 1756 -142}%
-\special{pa 1772 -114}\special{pa 1740 -114}\special{pa 1705 -114}\special{pa 1720 -142}%
-\special{pa 1740 -169}\special{pa 1705 -169}\special{pa 1673 -169}\special{pa 1689 -142}%
-\special{pa 1705 -114}\special{pa 1673 -114}\special{pa 1642 -114}\special{pa 1657 -87}%
-\special{pa 1673 -55}\special{pa 1642 -55}\special{pa 1606 -55}\special{pa 1622 -28}%
-\special{pa 1642 0}\special{pa 1657 -28}\special{pa 1673 -55}\special{pa 1689 -28}%
-\special{pa 1705 0}\special{pa 1720 -28}\special{pa 1740 -55}\special{pa 1756 -28}%
-\special{pa 1772 0}\special{pa 1787 -28}\special{pa 1803 -55}\special{pa 1772 -55}%
-\special{pa 1740 -55}\special{pa 1756 -87}\special{pa 1772 -114}\special{pa 1787 -87}%
-\special{pa 1803 -55}\special{pa 1819 -28}\special{pa 1839 0}\special{pa 1854 -28}%
-\special{pa 1870 -55}\special{pa 1886 -87}\special{pa 1902 -114}\special{pa 1917 -87}%
-\special{pa 1937 -55}\special{pa 1902 -55}\special{pa 1870 -55}\special{pa 1886 -28}%
-\special{pa 1902 0}\special{pa 1917 -28}\special{pa 1937 -55}\special{pa 1953 -28}%
-\special{pa 1969 0}\special{pa 1984 -28}\special{pa 2000 -55}\special{pa 2016 -28}%
-\special{pa 2035 0}\special{pa 2051 -28}\special{pa 2067 -55}\special{pa 2035 -55}%
-\special{pa 2000 -55}\special{pa 2016 -87}\special{pa 2035 -114}\special{pa 2000 -114}%
-\special{pa 1969 -114}\special{pa 1984 -142}\special{pa 2000 -169}\special{pa 1969 -169}%
-\special{pa 1937 -169}\special{pa 1953 -142}\special{pa 1969 -114}\special{pa 1937 -114}%
-\special{pa 1902 -114}\special{pa 1917 -142}\special{pa 1937 -169}\special{pa 1953 -201}%
-\special{pa 1969 -228}\special{pa 1937 -228}\special{pa 1902 -228}\special{pa 1870 -228}%
-\special{pa 1839 -228}\special{pa 1854 -256}\special{pa 1870 -283}\special{pa 1886 -256}%
-\special{pa 1902 -228}\special{pa 1917 -256}\special{pa 1937 -283}\special{pa 1902 -283}%
-\special{pa 1870 -283}\special{pa 1886 -311}\special{pa 1902 -343}\special{pa 1870 -343}%
-\special{pa 1839 -343}\special{pa 1854 -370}\special{pa 1870 -398}\special{pa 1839 -398}%
-\special{pa 1803 -398}\special{pa 1819 -370}\special{pa 1839 -343}\special{pa 1803 -343}%
-\special{pa 1772 -343}\special{pa 1787 -311}\special{pa 1803 -283}\special{pa 1772 -283}%
-\special{pa 1740 -283}\special{pa 1756 -256}\special{pa 1772 -228}\special{pa 1787 -256}%
-\special{pa 1803 -283}\special{pa 1819 -256}\special{pa 1839 -228}\special{pa 1803 -228}%
-\special{pa 1772 -228}\special{pa 1740 -228}\special{pa 1705 -228}\special{pa 1720 -256}%
-\special{pa 1740 -283}\special{pa 1756 -311}\special{pa 1772 -343}\special{pa 1787 -370}%
-\special{pa 1803 -398}\special{pa 1819 -425}\special{pa 1839 -453}\special{pa 1803 -453}%
-\special{pa 1772 -453}\special{pa 1740 -453}\special{pa 1705 -453}\special{pa 1673 -453}%
-\special{pa 1642 -453}\special{pa 1606 -453}\special{pa 1575 -453}\special{pa 1591 -484}%
-\special{pa 1606 -512}\special{pa 1622 -539}\special{pa 1642 -567}\special{pa 1657 -539}%
-\special{pa 1673 -512}\special{pa 1642 -512}\special{pa 1606 -512}\special{pa 1622 -484}%
-\special{pa 1642 -453}\special{pa 1657 -484}\special{pa 1673 -512}\special{pa 1689 -484}%
-\special{pa 1705 -453}\special{pa 1720 -484}\special{pa 1740 -512}\special{pa 1756 -484}%
-\special{pa 1772 -453}\special{pa 1787 -484}\special{pa 1803 -512}\special{pa 1772 -512}%
-\special{pa 1740 -512}\special{pa 1756 -539}\special{pa 1772 -567}\special{pa 1740 -567}%
-\special{pa 1705 -567}\special{pa 1720 -598}\special{pa 1740 -626}\special{pa 1705 -626}%
-\special{pa 1673 -626}%
-\special{fp}%
-\special{pa 1673 -626}\special{pa 1689 -598}\special{pa 1705 -567}\special{pa 1673 -567}%
-\special{pa 1642 -567}\special{pa 1657 -598}\special{pa 1673 -626}\special{pa 1689 -654}%
-\special{pa 1705 -681}\special{pa 1673 -681}\special{pa 1642 -681}\special{pa 1606 -681}%
-\special{pa 1575 -681}\special{pa 1591 -709}\special{pa 1606 -740}\special{pa 1622 -709}%
-\special{pa 1642 -681}\special{pa 1657 -709}\special{pa 1673 -740}\special{pa 1642 -740}%
-\special{pa 1606 -740}\special{pa 1622 -768}\special{pa 1642 -795}\special{pa 1606 -795}%
-\special{pa 1575 -795}\special{pa 1591 -823}\special{pa 1606 -854}\special{pa 1575 -854}%
-\special{pa 1543 -854}\special{pa 1559 -823}\special{pa 1575 -795}\special{pa 1543 -795}%
-\special{pa 1508 -795}\special{pa 1524 -768}\special{pa 1543 -740}\special{pa 1508 -740}%
-\special{pa 1476 -740}\special{pa 1492 -709}\special{pa 1508 -681}\special{pa 1524 -709}%
-\special{pa 1543 -740}\special{pa 1559 -709}\special{pa 1575 -681}\special{pa 1543 -681}%
-\special{pa 1508 -681}\special{pa 1476 -681}\special{pa 1445 -681}\special{pa 1461 -654}%
-\special{pa 1476 -626}\special{pa 1492 -598}\special{pa 1508 -567}\special{pa 1476 -567}%
-\special{pa 1445 -567}\special{pa 1461 -598}\special{pa 1476 -626}\special{pa 1445 -626}%
-\special{pa 1409 -626}\special{pa 1425 -598}\special{pa 1445 -567}\special{pa 1409 -567}%
-\special{pa 1378 -567}\special{pa 1394 -539}\special{pa 1409 -512}\special{pa 1378 -512}%
-\special{pa 1346 -512}\special{pa 1362 -484}\special{pa 1378 -453}\special{pa 1394 -484}%
-\special{pa 1409 -512}\special{pa 1425 -484}\special{pa 1445 -453}\special{pa 1461 -484}%
-\special{pa 1476 -512}\special{pa 1492 -484}\special{pa 1508 -453}\special{pa 1524 -484}%
-\special{pa 1543 -512}\special{pa 1508 -512}\special{pa 1476 -512}\special{pa 1492 -539}%
-\special{pa 1508 -567}\special{pa 1524 -539}\special{pa 1543 -512}\special{pa 1559 -484}%
-\special{pa 1575 -453}\special{pa 1543 -453}\special{pa 1508 -453}\special{pa 1476 -453}%
-\special{pa 1445 -453}\special{pa 1409 -453}\special{pa 1378 -453}\special{pa 1346 -453}%
-\special{pa 1311 -453}\special{pa 1327 -484}\special{pa 1346 -512}\special{pa 1362 -539}%
-\special{pa 1378 -567}\special{pa 1394 -598}\special{pa 1409 -626}\special{pa 1425 -654}%
-\special{pa 1445 -681}\special{pa 1461 -709}\special{pa 1476 -740}\special{pa 1492 -768}%
-\special{pa 1508 -795}\special{pa 1524 -823}\special{pa 1543 -854}\special{pa 1559 -882}%
-\special{pa 1575 -909}\special{pa 1543 -909}\special{pa 1508 -909}\special{pa 1476 -909}%
-\special{pa 1445 -909}\special{pa 1409 -909}\special{pa 1378 -909}\special{pa 1346 -909}%
-\special{pa 1311 -909}\special{pa 1280 -909}\special{pa 1248 -909}\special{pa 1213 -909}%
-\special{pa 1181 -909}\special{pa 1150 -909}\special{pa 1114 -909}\special{pa 1083 -909}%
-\special{pa 1051 -909}\special{pa 1067 -937}\special{pa 1083 -965}\special{pa 1098 -996}%
-\special{pa 1114 -1024}\special{pa 1130 -1051}\special{pa 1150 -1079}\special{pa 1165 -1106}%
-\special{pa 1181 -1138}\special{pa 1197 -1106}\special{pa 1213 -1079}\special{pa 1228 -1051}%
-\special{pa 1248 -1024}\special{pa 1213 -1024}\special{pa 1181 -1024}\special{pa 1197 -1051}%
-\special{pa 1213 -1079}\special{pa 1181 -1079}\special{pa 1150 -1079}\special{pa 1165 -1051}%
-\special{pa 1181 -1024}\special{pa 1150 -1024}\special{pa 1114 -1024}\special{pa 1130 -996}%
-\special{pa 1150 -965}\special{pa 1114 -965}\special{pa 1083 -965}\special{pa 1098 -937}%
-\special{pa 1114 -909}\special{pa 1130 -937}\special{pa 1150 -965}\special{pa 1165 -937}%
-\special{pa 1181 -909}\special{pa 1197 -937}\special{pa 1213 -965}\special{pa 1228 -937}%
-\special{pa 1248 -909}\special{pa 1264 -937}\special{pa 1280 -965}\special{pa 1248 -965}%
-\special{pa 1213 -965}\special{pa 1228 -996}\special{pa 1248 -1024}\special{pa 1264 -996}%
-\special{pa 1280 -965}\special{pa 1295 -937}\special{pa 1311 -909}\special{pa 1327 -937}%
-\special{pa 1346 -965}\special{pa 1362 -996}\special{pa 1378 -1024}\special{pa 1394 -996}%
-\special{pa 1409 -965}\special{pa 1378 -965}\special{pa 1346 -965}\special{pa 1362 -937}%
-\special{pa 1378 -909}\special{pa 1394 -937}\special{pa 1409 -965}\special{pa 1425 -937}%
-\special{pa 1445 -909}\special{pa 1461 -937}\special{pa 1476 -965}\special{pa 1492 -937}%
-\special{pa 1508 -909}\special{pa 1524 -937}\special{pa 1543 -965}\special{pa 1508 -965}%
-\special{pa 1476 -965}\special{pa 1492 -996}\special{pa 1508 -1024}\special{pa 1476 -1024}%
-\special{pa 1445 -1024}\special{pa 1461 -1051}\special{pa 1476 -1079}\special{pa 1445 -1079}%
-\special{pa 1409 -1079}\special{pa 1425 -1051}\special{pa 1445 -1024}\special{pa 1409 -1024}%
-\special{pa 1378 -1024}\special{pa 1394 -1051}\special{pa 1409 -1079}\special{pa 1425 -1106}%
-\special{pa 1445 -1138}\special{pa 1409 -1138}\special{pa 1378 -1138}\special{pa 1346 -1138}%
-\special{pa 1311 -1138}\special{pa 1327 -1165}\special{pa 1346 -1193}\special{pa 1362 -1165}%
-\special{pa 1378 -1138}\special{pa 1394 -1165}\special{pa 1409 -1193}\special{pa 1378 -1193}%
-\special{pa 1346 -1193}\special{pa 1362 -1220}\special{pa 1378 -1252}\special{pa 1346 -1252}%
-\special{pa 1311 -1252}\special{pa 1327 -1280}\special{pa 1346 -1307}\special{pa 1311 -1307}%
-\special{pa 1280 -1307}\special{pa 1295 -1280}\special{pa 1311 -1252}\special{pa 1280 -1252}%
-\special{pa 1248 -1252}\special{pa 1264 -1220}\special{pa 1280 -1193}\special{pa 1248 -1193}%
-\special{pa 1213 -1193}\special{pa 1228 -1165}\special{pa 1248 -1138}\special{pa 1264 -1165}%
-\special{pa 1280 -1193}\special{pa 1295 -1165}\special{pa 1311 -1138}\special{pa 1280 -1138}%
-\special{pa 1248 -1138}\special{pa 1213 -1138}\special{pa 1181 -1138}\special{pa 1197 -1165}%
-\special{pa 1213 -1193}\special{pa 1228 -1220}\special{pa 1248 -1252}\special{pa 1264 -1280}%
-\special{pa 1280 -1307}\special{pa 1295 -1335}\special{pa 1311 -1362}\special{pa 1280 -1362}%
-\special{pa 1248 -1362}%
-\special{fp}%
-\special{pa 1248 -1362}\special{pa 1213 -1362}\special{pa 1181 -1362}\special{pa 1150 -1362}%
-\special{pa 1114 -1362}\special{pa 1083 -1362}\special{pa 1051 -1362}\special{pa 1067 -1394}%
-\special{pa 1083 -1421}\special{pa 1098 -1449}\special{pa 1114 -1476}\special{pa 1130 -1449}%
-\special{pa 1150 -1421}\special{pa 1114 -1421}\special{pa 1083 -1421}\special{pa 1098 -1394}%
-\special{pa 1114 -1362}\special{pa 1130 -1394}\special{pa 1150 -1421}\special{pa 1165 -1394}%
-\special{pa 1181 -1362}\special{pa 1197 -1394}\special{pa 1213 -1421}\special{pa 1228 -1394}%
-\special{pa 1248 -1362}\special{pa 1264 -1394}\special{pa 1280 -1421}\special{pa 1248 -1421}%
-\special{pa 1213 -1421}\special{pa 1228 -1449}\special{pa 1248 -1476}\special{pa 1213 -1476}%
-\special{pa 1181 -1476}\special{pa 1197 -1504}\special{pa 1213 -1535}\special{pa 1181 -1535}%
-\special{pa 1150 -1535}\special{pa 1165 -1504}\special{pa 1181 -1476}\special{pa 1150 -1476}%
-\special{pa 1114 -1476}\special{pa 1130 -1504}\special{pa 1150 -1535}\special{pa 1165 -1563}%
-\special{pa 1181 -1591}\special{pa 1150 -1591}\special{pa 1114 -1591}\special{pa 1083 -1591}%
-\special{pa 1051 -1591}\special{pa 1067 -1618}\special{pa 1083 -1650}\special{pa 1098 -1618}%
-\special{pa 1114 -1591}\special{pa 1130 -1618}\special{pa 1150 -1650}\special{pa 1114 -1650}%
-\special{pa 1083 -1650}\special{pa 1098 -1677}\special{pa 1114 -1705}\special{pa 1083 -1705}%
-\special{pa 1051 -1705}\special{pa 1067 -1732}\special{pa 1083 -1760}\special{pa 1051 -1760}%
-\special{pa 1016 -1760}\special{pa 1031 -1732}\special{pa 1051 -1705}\special{pa 1016 -1705}%
-\special{pa 984 -1705}\special{pa 1000 -1677}\special{pa 1016 -1650}\special{pa 984 -1650}%
-\special{pa 953 -1650}\special{pa 969 -1618}\special{pa 984 -1591}\special{pa 1000 -1618}%
-\special{pa 1016 -1650}\special{pa 1031 -1618}\special{pa 1051 -1591}\special{pa 1016 -1591}%
-\special{pa 984 -1591}\special{pa 953 -1591}\special{pa 917 -1591}\special{pa 933 -1563}%
-\special{pa 953 -1535}\special{pa 969 -1504}\special{pa 984 -1476}\special{pa 953 -1476}%
-\special{pa 917 -1476}\special{pa 933 -1504}\special{pa 953 -1535}\special{pa 917 -1535}%
-\special{pa 886 -1535}\special{pa 902 -1504}\special{pa 917 -1476}\special{pa 886 -1476}%
-\special{pa 854 -1476}\special{pa 870 -1449}\special{pa 886 -1421}\special{pa 854 -1421}%
-\special{pa 819 -1421}\special{pa 839 -1394}\special{pa 854 -1362}\special{pa 870 -1394}%
-\special{pa 886 -1421}\special{pa 902 -1394}\special{pa 917 -1362}\special{pa 933 -1394}%
-\special{pa 953 -1421}\special{pa 969 -1394}\special{pa 984 -1362}\special{pa 1000 -1394}%
-\special{pa 1016 -1421}\special{pa 984 -1421}\special{pa 953 -1421}\special{pa 969 -1449}%
-\special{pa 984 -1476}\special{pa 1000 -1449}\special{pa 1016 -1421}\special{pa 1031 -1394}%
-\special{pa 1051 -1362}\special{pa 1016 -1362}\special{pa 984 -1362}\special{pa 953 -1362}%
-\special{pa 917 -1362}\special{pa 886 -1362}\special{pa 854 -1362}\special{pa 819 -1362}%
-\special{pa 787 -1362}\special{pa 803 -1335}\special{pa 819 -1307}\special{pa 839 -1280}%
-\special{pa 854 -1252}\special{pa 870 -1220}\special{pa 886 -1193}\special{pa 902 -1165}%
-\special{pa 917 -1138}\special{pa 886 -1138}\special{pa 854 -1138}\special{pa 819 -1138}%
-\special{pa 787 -1138}\special{pa 803 -1165}\special{pa 819 -1193}\special{pa 839 -1165}%
-\special{pa 854 -1138}\special{pa 870 -1165}\special{pa 886 -1193}\special{pa 854 -1193}%
-\special{pa 819 -1193}\special{pa 839 -1220}\special{pa 854 -1252}\special{pa 819 -1252}%
-\special{pa 787 -1252}\special{pa 803 -1280}\special{pa 819 -1307}\special{pa 787 -1307}%
-\special{pa 756 -1307}\special{pa 772 -1280}\special{pa 787 -1252}\special{pa 756 -1252}%
-\special{pa 720 -1252}\special{pa 740 -1220}\special{pa 756 -1193}\special{pa 720 -1193}%
-\special{pa 689 -1193}\special{pa 705 -1165}\special{pa 720 -1138}\special{pa 740 -1165}%
-\special{pa 756 -1193}\special{pa 772 -1165}\special{pa 787 -1138}\special{pa 756 -1138}%
-\special{pa 720 -1138}\special{pa 689 -1138}\special{pa 657 -1138}\special{pa 673 -1106}%
-\special{pa 689 -1079}\special{pa 705 -1051}\special{pa 720 -1024}\special{pa 689 -1024}%
-\special{pa 657 -1024}\special{pa 673 -1051}\special{pa 689 -1079}\special{pa 657 -1079}%
-\special{pa 622 -1079}\special{pa 642 -1051}\special{pa 657 -1024}\special{pa 622 -1024}%
-\special{pa 591 -1024}\special{pa 606 -996}\special{pa 622 -965}\special{pa 591 -965}%
-\special{pa 559 -965}\special{pa 575 -937}\special{pa 591 -909}\special{pa 606 -937}%
-\special{pa 622 -965}\special{pa 642 -937}\special{pa 657 -909}\special{pa 673 -937}%
-\special{pa 689 -965}\special{pa 705 -937}\special{pa 720 -909}\special{pa 740 -937}%
-\special{pa 756 -965}\special{pa 720 -965}\special{pa 689 -965}\special{pa 705 -996}%
-\special{pa 720 -1024}\special{pa 740 -996}\special{pa 756 -965}\special{pa 772 -937}%
-\special{pa 787 -909}\special{pa 803 -937}\special{pa 819 -965}\special{pa 839 -996}%
-\special{pa 854 -1024}\special{pa 870 -996}\special{pa 886 -965}\special{pa 854 -965}%
-\special{pa 819 -965}\special{pa 839 -937}\special{pa 854 -909}\special{pa 870 -937}%
-\special{pa 886 -965}\special{pa 902 -937}\special{pa 917 -909}\special{pa 937 -937}%
-\special{pa 953 -965}\special{pa 969 -937}\special{pa 984 -909}\special{pa 1000 -937}%
-\special{pa 1016 -965}\special{pa 984 -965}\special{pa 953 -965}\special{pa 969 -996}%
-\special{pa 984 -1024}\special{pa 953 -1024}\special{pa 917 -1024}\special{pa 937 -1051}%
-\special{pa 953 -1079}\special{pa 917 -1079}\special{pa 886 -1079}\special{pa 902 -1051}%
-\special{pa 917 -1024}\special{pa 886 -1024}\special{pa 854 -1024}\special{pa 870 -1051}%
-\special{pa 886 -1079}\special{pa 902 -1106}\special{pa 917 -1138}\special{pa 937 -1106}%
-\special{pa 953 -1079}\special{pa 969 -1051}\special{pa 984 -1024}\special{pa 1000 -996}%
-\special{pa 1016 -965}%
-\special{fp}%
-\special{pa 1016 -965}\special{pa 1031 -937}\special{pa 1051 -909}\special{pa 1016 -909}%
-\special{pa 984 -909}\special{pa 953 -909}\special{pa 917 -909}\special{pa 886 -909}%
-\special{pa 854 -909}\special{pa 819 -909}\special{pa 787 -909}\special{pa 756 -909}%
-\special{pa 720 -909}\special{pa 689 -909}\special{pa 657 -909}\special{pa 622 -909}%
-\special{pa 591 -909}\special{pa 559 -909}\special{pa 524 -909}\special{pa 543 -937}%
-\special{pa 559 -965}\special{pa 575 -996}\special{pa 591 -1024}\special{pa 606 -1051}%
-\special{pa 622 -1079}\special{pa 642 -1106}\special{pa 657 -1138}\special{pa 673 -1165}%
-\special{pa 689 -1193}\special{pa 705 -1220}\special{pa 720 -1252}\special{pa 740 -1280}%
-\special{pa 756 -1307}\special{pa 772 -1335}\special{pa 787 -1362}\special{pa 803 -1394}%
-\special{pa 819 -1421}\special{pa 839 -1449}\special{pa 854 -1476}\special{pa 870 -1504}%
-\special{pa 886 -1535}\special{pa 902 -1563}\special{pa 917 -1591}\special{pa 937 -1618}%
-\special{pa 953 -1650}\special{pa 969 -1677}\special{pa 984 -1705}\special{pa 1000 -1732}%
-\special{pa 1016 -1760}\special{pa 1031 -1791}\special{pa 1051 -1819}\special{pa 1067 -1791}%
-\special{pa 1083 -1760}\special{pa 1098 -1732}\special{pa 1114 -1705}\special{pa 1130 -1677}%
-\special{pa 1150 -1650}\special{pa 1165 -1618}\special{pa 1181 -1591}\special{pa 1197 -1563}%
-\special{pa 1213 -1535}\special{pa 1228 -1504}\special{pa 1248 -1476}\special{pa 1264 -1449}%
-\special{pa 1280 -1421}\special{pa 1295 -1394}\special{pa 1311 -1362}\special{pa 1327 -1335}%
-\special{pa 1346 -1307}\special{pa 1362 -1280}\special{pa 1378 -1252}\special{pa 1394 -1220}%
-\special{pa 1409 -1193}\special{pa 1425 -1165}\special{pa 1445 -1138}\special{pa 1461 -1106}%
-\special{pa 1476 -1079}\special{pa 1492 -1051}\special{pa 1508 -1024}\special{pa 1524 -996}%
-\special{pa 1543 -965}\special{pa 1559 -937}\special{pa 1575 -909}\special{pa 1591 -882}%
-\special{pa 1606 -854}\special{pa 1622 -823}\special{pa 1642 -795}\special{pa 1657 -768}%
-\special{pa 1673 -740}\special{pa 1689 -709}\special{pa 1705 -681}\special{pa 1720 -654}%
-\special{pa 1740 -626}\special{pa 1756 -598}\special{pa 1772 -567}\special{pa 1787 -539}%
-\special{pa 1803 -512}\special{pa 1819 -484}\special{pa 1839 -453}\special{pa 1854 -425}%
-\special{pa 1870 -398}\special{pa 1886 -370}\special{pa 1902 -343}\special{pa 1917 -311}%
-\special{pa 1937 -283}\special{pa 1953 -256}\special{pa 1969 -228}\special{pa 1984 -201}%
-\special{pa 2000 -169}\special{pa 2016 -142}\special{pa 2035 -114}\special{pa 2051 -87}%
-\special{pa 2067 -55}\special{pa 2083 -28}\special{pa 2098 0}\special{pa 2067 0}\special{pa 2035 0}%
-\special{pa 2000 0}\special{pa 1969 0}\special{pa 1937 0}\special{pa 1902 0}\special{pa 1870 0}%
-\special{pa 1839 0}\special{pa 1803 0}\special{pa 1772 0}\special{pa 1740 0}\special{pa 1705 0}%
-\special{pa 1673 0}\special{pa 1642 0}\special{pa 1606 0}\special{pa 1575 0}\special{pa 1543 0}%
-\special{pa 1508 0}\special{pa 1476 0}\special{pa 1445 0}\special{pa 1409 0}\special{pa 1378 0}%
-\special{pa 1346 0}\special{pa 1311 0}\special{pa 1280 0}\special{pa 1248 0}\special{pa 1213 0}%
-\special{pa 1181 0}\special{pa 1150 0}\special{pa 1114 0}\special{pa 1083 0}\special{pa 1051 0}%
-\special{pa 1016 0}\special{pa 984 0}\special{pa 953 0}\special{pa 917 0}\special{pa 886 0}%
-\special{pa 854 0}\special{pa 819 0}\special{pa 787 0}\special{pa 756 0}\special{pa 720 0}%
-\special{pa 689 0}\special{pa 657 0}\special{pa 622 0}\special{pa 591 0}\special{pa 559 0}%
-\special{pa 524 0}\special{pa 492 0}\special{pa 461 0}\special{pa 425 0}\special{pa 394 0}%
-\special{pa 362 0}\special{pa 327 0}\special{pa 295 0}\special{pa 264 0}\special{pa 228 0}%
-\special{pa 197 0}\special{pa 165 0}\special{pa 130 0}\special{pa 98 0}\special{pa 67 0}%
-\special{pa 31 0}\special{pa 0 0}%
-\special{fp}%
-\end{picture}}% \ No newline at end of file
diff --git a/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/listplot3.tex b/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/listplot3.tex
deleted file mode 100644
index 34b2c246..00000000
--- a/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/listplot3.tex
+++ /dev/null
@@ -1,61 +0,0 @@
-%%% test.tex 2014-10-29 19:53
-%%% test.sce 2014-10-29 19:53
-{\unitlength=1cm%
-\begin{picture}%
-( 8.50000, 3.50000)( -1.50000, 0.50000)%
-\special{pn 8}%
-%
-\special{pn 16}%
-\special{pa 0 -394}\special{pa 197 -1378}%
-\special{fp}%
-\special{pn 8}%
-\special{pa 394 -394}\special{pa 401 -430}\special{fp}\special{pa 408 -467}\special{pa 416 -503}\special{fp}%
-\special{pa 423 -540}\special{pa 430 -576}\special{fp}\special{pa 437 -612}\special{pa 445 -649}\special{fp}%
-\special{pa 452 -685}\special{pa 459 -722}\special{fp}\special{pa 467 -758}\special{pa 474 -795}\special{fp}%
-\special{pa 481 -831}\special{pa 488 -868}\special{fp}\special{pa 496 -904}\special{pa 503 -941}\special{fp}%
-\special{pa 510 -977}\special{pa 518 -1013}\special{fp}\special{pa 525 -1050}\special{pa 532 -1086}\special{fp}%
-\special{pa 540 -1123}\special{pa 547 -1159}\special{fp}\special{pa 554 -1196}\special{pa 561 -1232}\special{fp}%
-\special{pa 569 -1269}\special{pa 576 -1305}\special{fp}\special{pa 583 -1341}\special{pa 591 -1378}\special{fp}%
-%
-%
-\special{pa 787 -394}\special{pa 809 -503}\special{fp}\special{pa 817 -540}\special{pa 838 -649}\special{fp}%
-\special{pa 846 -685}\special{pa 868 -795}\special{fp}\special{pa 875 -831}\special{pa 897 -941}\special{fp}%
-\special{pa 904 -977}\special{pa 926 -1086}\special{fp}\special{pa 933 -1123}\special{pa 955 -1232}\special{fp}%
-\special{pa 962 -1269}\special{pa 984 -1378}\special{fp}%
-%
-\special{pa 1181 -394}\special{pa 1188 -428}\special{fp}\special{pa 1208 -529}\special{pa 1215 -563}\special{fp}%
-\special{pa 1235 -665}\special{pa 1242 -699}\special{fp}\special{pa 1263 -801}\special{pa 1269 -835}\special{fp}%
-\special{pa 1290 -937}\special{pa 1296 -971}\special{fp}\special{pa 1317 -1072}\special{pa 1324 -1106}\special{fp}%
-\special{pa 1344 -1208}\special{pa 1351 -1242}\special{fp}\special{pa 1371 -1344}\special{pa 1378 -1378}\special{fp}%
-%
-%
-\special{pn 8}%
-\special{pa 1574 -390}\special{pa 1576 -398}\special{fp}\special{pa 1582 -429}\special{pa 1583 -437}\special{fp}%
-\special{pa 1590 -469}\special{pa 1591 -476}\special{fp}\special{pa 1598 -508}\special{pa 1599 -516}\special{fp}%
-\special{pa 1606 -547}\special{pa 1607 -555}\special{fp}\special{pa 1613 -587}\special{pa 1615 -594}\special{fp}%
-\special{pa 1621 -626}\special{pa 1623 -634}\special{fp}\special{pa 1629 -665}\special{pa 1631 -673}\special{fp}%
-\special{pa 1637 -705}\special{pa 1639 -713}\special{fp}\special{pa 1645 -744}\special{pa 1646 -752}\special{fp}%
-\special{pa 1653 -783}\special{pa 1654 -791}\special{fp}\special{pa 1661 -823}\special{pa 1662 -831}\special{fp}%
-\special{pa 1669 -862}\special{pa 1670 -870}\special{fp}\special{pa 1676 -902}\special{pa 1678 -909}\special{fp}%
-\special{pa 1684 -941}\special{pa 1686 -949}\special{fp}\special{pa 1692 -980}\special{pa 1694 -988}\special{fp}%
-\special{pa 1700 -1020}\special{pa 1702 -1028}\special{fp}\special{pa 1708 -1059}\special{pa 1709 -1067}\special{fp}%
-\special{pa 1716 -1098}\special{pa 1717 -1106}\special{fp}\special{pa 1724 -1138}\special{pa 1725 -1146}\special{fp}%
-\special{pa 1731 -1177}\special{pa 1733 -1185}\special{fp}\special{pa 1739 -1217}\special{pa 1741 -1224}\special{fp}%
-\special{pa 1747 -1256}\special{pa 1749 -1264}\special{fp}\special{pa 1755 -1295}\special{pa 1757 -1303}\special{fp}%
-\special{pa 1763 -1335}\special{pa 1765 -1343}\special{fp}\special{pa 1771 -1374}\special{pa 1772 -1382}\special{fp}%
-\special{pn 8}%
-\special{pn 8}%
-\special{pa 1968 -390}\special{pa 1969 -398}\special{fp}\special{pa 1992 -513}\special{pa 1994 -521}\special{fp}%
-\special{pa 2017 -636}\special{pa 2019 -644}\special{fp}\special{pa 2042 -759}\special{pa 2043 -767}\special{fp}%
-\special{pa 2066 -882}\special{pa 2068 -890}\special{fp}\special{pa 2091 -1005}\special{pa 2092 -1013}\special{fp}%
-\special{pa 2115 -1128}\special{pa 2117 -1136}\special{fp}\special{pa 2140 -1251}\special{pa 2142 -1259}\special{fp}%
-\special{pa 2165 -1374}\special{pa 2166 -1382}\special{fp}\special{pn 8}%
-\special{pn 24}%
-\special{pa 2561 -1390}\special{pa 2557 -1366}\special{fp}\special{pa 2537 -1267}\special{pa 2532 -1243}\special{fp}%
-\special{pa 2512 -1144}\special{pa 2507 -1120}\special{fp}\special{pa 2488 -1021}\special{pa 2483 -997}\special{fp}%
-\special{pa 2463 -898}\special{pa 2458 -874}\special{fp}\special{pa 2438 -775}\special{pa 2434 -751}\special{fp}%
-\special{pa 2414 -652}\special{pa 2409 -628}\special{fp}\special{pa 2389 -528}\special{pa 2384 -505}\special{fp}%
-\special{pa 2365 -405}\special{pa 2360 -382}\special{fp}\special{pn 8}%
-\special{pa -394 -394}\special{pa -197 -1378}%
-\special{fp}%
-\end{picture}}% \ No newline at end of file
diff --git a/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/maxfun01.tex b/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/maxfun01.tex
deleted file mode 100644
index 535573a0..00000000
--- a/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/maxfun01.tex
+++ /dev/null
@@ -1,43 +0,0 @@
-%%% maxfun01.tex 2016-4-29 15:38
-%%% maxfun01.sce 2016-4-29 15:31
-{\unitlength=1cm%
-\begin{picture}%
-( 4.21000, 4.72000)( -2.13000, -0.47000)%
-\special{pn 8}%
-%
-\special{pa -837 -1673}\special{pa -805 -1548}\special{pa -772 -1427}\special{pa -739 -1317}%
-\special{pa -706 -1216}\special{pa -673 -1123}\special{pa -640 -1038}\special{pa -607 -961}%
-\special{pa -573 -890}\special{pa -540 -826}\special{pa -507 -768}\special{pa -474 -715}%
-\special{pa -441 -667}\special{pa -408 -624}\special{pa -374 -586}\special{pa -341 -551}%
-\special{pa -308 -521}\special{pa -275 -494}\special{pa -242 -470}\special{pa -209 -450}%
-\special{pa -176 -434}\special{pa -142 -420}\special{pa -109 -409}\special{pa -76 -401}%
-\special{pa -43 -396}\special{pa -10 -394}\special{pa 23 -394}\special{pa 56 -398}%
-\special{pa 90 -404}\special{pa 123 -413}\special{pa 156 -425}\special{pa 189 -440}%
-\special{pa 222 -458}\special{pa 255 -479}\special{pa 289 -504}\special{pa 322 -533}%
-\special{pa 355 -565}\special{pa 388 -601}\special{pa 421 -641}\special{pa 454 -686}%
-\special{pa 487 -736}\special{pa 521 -791}\special{pa 554 -852}\special{pa 587 -918}%
-\special{pa 620 -992}\special{pa 653 -1072}\special{pa 686 -1160}\special{pa 719 -1256}%
-\special{pa 753 -1361}\special{pa 786 -1475}\special{pa 819 -1600}%
-\special{fp}%
-\special{pa -428 185}\special{pa -10 -215}\special{pa 819 -1008}%
-\special{fp}%
-\special{pa -839 0}\special{pa 819 0}%
-\special{fp}%
-\special{pa 0 185}\special{pa 0 -1673}%
-\special{fp}%
-\settowidth{\Width}{$x$}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{$x$}\settodepth{\Depth}{$x$}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(2.1300,0.0000){\hspace*{\Width}\raisebox{\Height}{$x$}}%
-%
-%
-\settowidth{\Width}{$y$}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{$y$}\settodepth{\Depth}{$y$}\setlength{\Height}{\Depth}%
-\put(0.0000,4.3000){\hspace*{\Width}\raisebox{\Height}{$y$}}%
-%
-%
-\settowidth{\Width}{O}\setlength{\Width}{-1\Width}%
-\settoheight{\Height}{O}\settodepth{\Depth}{O}\setlength{\Height}{-\Height}%
-\put(-0.0500,-0.0500){\hspace*{\Width}\raisebox{\Height}{O}}%
-%
-%
-\end{picture}}% \ No newline at end of file
diff --git a/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/maxfun02.tex b/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/maxfun02.tex
deleted file mode 100644
index ca3cbcd4..00000000
--- a/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/maxfun02.tex
+++ /dev/null
@@ -1,75 +0,0 @@
-%%% fig.tex 2016-4-24 20:38
-%%% fig.sce 2016-4-24 20:38
-{\unitlength=8mm%
-\begin{picture}%
-( 8.00000, 4.00000)( -4.00000, -2.00000)%
-\special{pn 8}%
-%
-\special{pa 945 0}\special{pa 939 -59}\special{pa 923 -117}\special{pa 896 -171}\special{pa 859 -220}%
-\special{pa 813 -264}\special{pa 759 -301}\special{pa 700 -329}\special{pa 636 -350}%
-\special{pa 569 -361}\special{pa 500 -364}\special{pa 432 -358}\special{pa 366 -344}%
-\special{pa 303 -323}\special{pa 245 -296}\special{pa 192 -264}\special{pa 145 -229}%
-\special{pa 106 -192}\special{pa 73 -155}\special{pa 47 -119}\special{pa 28 -86}\special{pa 15 -57}%
-\special{pa 6 -33}\special{pa 2 -15}\special{pa 0 -4}\special{pa 0 0}\special{pa 0 -4}%
-\special{pa -2 -15}\special{pa -6 -33}\special{pa -15 -57}\special{pa -28 -86}\special{pa -47 -119}%
-\special{pa -73 -155}\special{pa -106 -192}\special{pa -145 -229}\special{pa -192 -264}%
-\special{pa -245 -296}\special{pa -303 -323}\special{pa -366 -344}\special{pa -432 -358}%
-\special{pa -500 -364}\special{pa -569 -361}\special{pa -636 -350}\special{pa -700 -329}%
-\special{pa -759 -301}\special{pa -813 -264}\special{pa -859 -220}\special{pa -896 -171}%
-\special{pa -923 -117}\special{pa -939 -59}\special{pa -945 0}\special{pa -939 59}%
-\special{pa -923 117}\special{pa -896 171}\special{pa -859 220}\special{pa -813 264}%
-\special{pa -759 301}\special{pa -700 329}\special{pa -636 350}\special{pa -569 361}%
-\special{pa -500 364}\special{pa -432 358}\special{pa -366 344}\special{pa -303 323}%
-\special{pa -245 296}\special{pa -192 264}\special{pa -145 229}\special{pa -106 192}%
-\special{pa -73 155}\special{pa -47 119}\special{pa -28 86}\special{pa -15 57}\special{pa -6 33}%
-\special{pa -2 15}\special{pa 0 4}\special{pa 0 0}\special{pa 0 4}\special{pa 2 15}%
-\special{pa 6 33}\special{pa 15 57}\special{pa 28 86}\special{pa 47 119}\special{pa 73 155}%
-\special{pa 106 192}\special{pa 145 229}\special{pa 192 264}\special{pa 245 296}\special{pa 303 323}%
-\special{pa 366 344}\special{pa 432 358}\special{pa 500 364}\special{pa 569 361}\special{pa 636 350}%
-\special{pa 700 329}\special{pa 759 301}\special{pa 813 264}\special{pa 859 220}\special{pa 896 171}%
-\special{pa 923 117}\special{pa 939 59}\special{pa 945 0}%
-\special{fp}%
-\special{pa 1260 -244}\special{pa 1244 -247}\special{pa 1116 -269}\special{pa 988 -291}%
-\special{pa 860 -313}\special{pa 731 -334}\special{pa 603 -356}\special{pa 475 -378}%
-\special{pa 346 -400}\special{pa 218 -422}\special{pa 90 -444}\special{pa -38 -465}%
-\special{pa -167 -487}\special{pa -295 -509}\special{pa -423 -531}\special{pa -551 -553}%
-\special{pa -680 -575}\special{pa -808 -596}\special{pa -936 -618}\special{pa -1004 -630}%
-\special{fp}%
-\special{pn 8}%
-\special{pa -1260 0}\special{pa 1228 0}%
-\special{fp}%
-\special{pn 8}%
-\special{pa 1185 24}\special{pa 1260 0}\special{pa 1185 -24}\special{pa 1185 0}\special{pa 1185 24}%
-\special{sh 1}\special{ip}%
-\special{pn 1}%
-\special{pa 1185 24}\special{pa 1260 0}\special{pa 1185 -24}\special{pa 1185 0}\special{pa 1185 24}%
-\special{pa 1260 0}%
-\special{fp}%
-\special{pn 8}%
-\special{pn 8}%
-\special{pa 0 630}\special{pa 0 -598}%
-\special{fp}%
-\special{pn 8}%
-\special{pa 24 -555}\special{pa 0 -630}\special{pa -24 -555}\special{pa 0 -555}\special{pa 24 -555}%
-\special{sh 1}\special{ip}%
-\special{pn 1}%
-\special{pa 24 -555}\special{pa 0 -630}\special{pa -24 -555}\special{pa 0 -555}\special{pa 24 -555}%
-\special{pa 0 -630}%
-\special{fp}%
-\special{pn 8}%
-\settowidth{\Width}{$x$}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{$x$}\settodepth{\Depth}{$x$}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(4.0500,0.0000){\hspace*{\Width}\raisebox{\Height}{$x$}}%
-%
-%
-\settowidth{\Width}{$y$}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{$y$}\settodepth{\Depth}{$y$}\setlength{\Height}{\Depth}%
-\put(0.0000,2.0500){\hspace*{\Width}\raisebox{\Height}{$y$}}%
-%
-%
-\settowidth{\Width}{O}\setlength{\Width}{-1\Width}%
-\settoheight{\Height}{O}\settodepth{\Depth}{O}\setlength{\Height}{-\Height}%
-\put(-0.0500,-0.0500){\hspace*{\Width}\raisebox{\Height}{O}}%
-%
-%
-\end{picture}}% \ No newline at end of file
diff --git a/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/mxtex01.png b/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/mxtex01.png
deleted file mode 100644
index 93f83d8e..00000000
--- a/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/mxtex01.png
+++ /dev/null
Binary files differ
diff --git a/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/mxtex02.tex b/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/mxtex02.tex
deleted file mode 100644
index ca72d2d3..00000000
--- a/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/mxtex02.tex
+++ /dev/null
@@ -1,18 +0,0 @@
-%%% fig.tex 2016-4-25 8:55
-%%% fig.sce 2016-4-25 8:55
-{\unitlength=8mm%
-\begin{picture}%
-( 10.22000, 3.87000)( -0.61000, 2.03000)%
-\special{pn 8}%
-%
-\settowidth{\Width}{部分分数ã¸ã®åˆ†è§£ã€€$\frac{x^3}{\left(x+1\right)\,\left(x+2\right)}=\frac{8}{x+2}-\frac{1}{x+1}+x-3$}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{部分分数ã¸ã®åˆ†è§£ã€€$\frac{x^3}{\left(x+1\right)\,\left(x+2\right)}=\frac{8}{x+2}-\frac{1}{x+1}+x-3$}\settodepth{\Depth}{部分分数ã¸ã®åˆ†è§£ã€€$\frac{x^3}{\left(x+1\right)\,\left(x+2\right)}=\frac{8}{x+2}-\frac{1}{x+1}+x-3$}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(0.0500,5.0000){\hspace*{\Width}\raisebox{\Height}{部分分数ã¸ã®åˆ†è§£ã€€$\frac{x^3}{\left(x+1\right)\,\left(x+2\right)}=\frac{8}{x+2}-\frac{1}{x+1}+x-3$}}%
-%
-%
-\settowidth{\Width}{部分分数ã¸ã®åˆ†è§£ã€€$\dfrac{x^3}{\left(x+1\right)\,\left(x+2\right)}=\dfrac{8}{x+2}-\dfrac{1}{x+1}+x-3$}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{部分分数ã¸ã®åˆ†è§£ã€€$\dfrac{x^3}{\left(x+1\right)\,\left(x+2\right)}=\dfrac{8}{x+2}-\dfrac{1}{x+1}+x-3$}\settodepth{\Depth}{部分分数ã¸ã®åˆ†è§£ã€€$\dfrac{x^3}{\left(x+1\right)\,\left(x+2\right)}=\dfrac{8}{x+2}-\dfrac{1}{x+1}+x-3$}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(0.0500,3.0000){\hspace*{\Width}\raisebox{\Height}{部分分数ã¸ã®åˆ†è§£ã€€$\dfrac{x^3}{\left(x+1\right)\,\left(x+2\right)}=\dfrac{8}{x+2}-\dfrac{1}{x+1}+x-3$}}%
-%
-%
-\end{picture}}% \ No newline at end of file
diff --git a/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/mxtex03.tex b/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/mxtex03.tex
deleted file mode 100644
index a07b0fb8..00000000
--- a/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/mxtex03.tex
+++ /dev/null
@@ -1,64 +0,0 @@
-%%% fig.tex 2016-4-25 11:28
-%%% fig.sce 2016-4-25 11:28
-{\unitlength=8mm%
-\begin{picture}%
-( 7.07000, 5.60000)( -3.07000, -3.60000)%
-\special{pn 8}%
-%
-\special{pa -564 -630}\special{pa -522 -440}\special{pa -477 -255}\special{pa -433 -82}%
-\special{pa -388 79}\special{pa -343 227}\special{pa -299 362}\special{pa -254 485}%
-\special{pa -210 595}\special{pa -165 693}\special{pa -121 778}\special{pa -76 850}%
-\special{pa -32 910}\special{pa 13 957}\special{pa 57 992}\special{pa 102 1014}\special{pa 146 1023}%
-\special{pa 191 1020}\special{pa 236 1004}\special{pa 280 976}\special{pa 325 935}%
-\special{pa 369 881}\special{pa 414 815}\special{pa 458 736}\special{pa 503 645}\special{pa 547 541}%
-\special{pa 592 425}\special{pa 636 296}\special{pa 681 154}\special{pa 725 0}\special{pa 770 -167}%
-\special{pa 814 -347}\special{pa 859 -539}\special{pa 879 -630}%
-\special{fp}%
-\settowidth{\Width}{$\frac{1-\sqrt{13}}{2}$}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{$\frac{1-\sqrt{13}}{2}$}\settodepth{\Depth}{$\frac{1-\sqrt{13}}{2}$}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(-1.9500,-0.5000){\hspace*{\Width}\raisebox{\Height}{$\frac{1-\sqrt{13}}{2}$}}%
-%
-%
-\settowidth{\Width}{$\frac{\sqrt{13}+1}{2}$}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{$\frac{\sqrt{13}+1}{2}$}\settodepth{\Depth}{$\frac{\sqrt{13}+1}{2}$}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(2.0500,-0.5000){\hspace*{\Width}\raisebox{\Height}{$\frac{\sqrt{13}+1}{2}$}}%
-%
-%
-\special{pn 8}%
-\special{pa -967 0}\special{pa 1228 0}%
-\special{fp}%
-\special{pn 8}%
-\special{pa 1185 24}\special{pa 1260 0}\special{pa 1185 -24}\special{pa 1185 0}\special{pa 1185 24}%
-\special{sh 1}\special{ip}%
-\special{pn 1}%
-\special{pa 1185 24}\special{pa 1260 0}\special{pa 1185 -24}\special{pa 1185 0}\special{pa 1185 24}%
-\special{pa 1260 0}%
-\special{fp}%
-\special{pn 8}%
-\special{pn 8}%
-\special{pa 0 1134}\special{pa 0 -598}%
-\special{fp}%
-\special{pn 8}%
-\special{pa 24 -555}\special{pa 0 -630}\special{pa -24 -555}\special{pa 0 -555}\special{pa 24 -555}%
-\special{sh 1}\special{ip}%
-\special{pn 1}%
-\special{pa 24 -555}\special{pa 0 -630}\special{pa -24 -555}\special{pa 0 -555}\special{pa 24 -555}%
-\special{pa 0 -630}%
-\special{fp}%
-\special{pn 8}%
-\settowidth{\Width}{$x$}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{$x$}\settodepth{\Depth}{$x$}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(4.0500,0.0000){\hspace*{\Width}\raisebox{\Height}{$x$}}%
-%
-%
-\settowidth{\Width}{$y$}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{$y$}\settodepth{\Depth}{$y$}\setlength{\Height}{\Depth}%
-\put(0.0000,2.0500){\hspace*{\Width}\raisebox{\Height}{$y$}}%
-%
-%
-\settowidth{\Width}{O}\setlength{\Width}{-1\Width}%
-\settoheight{\Height}{O}\settodepth{\Depth}{O}\setlength{\Height}{-\Height}%
-\put(-0.0500,-0.0500){\hspace*{\Width}\raisebox{\Height}{O}}%
-%
-%
-\end{picture}}% \ No newline at end of file
diff --git a/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/numptcrv.tex b/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/numptcrv.tex
deleted file mode 100644
index 548a6581..00000000
--- a/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/numptcrv.tex
+++ /dev/null
@@ -1,299 +0,0 @@
-%%% numptcrv.tex 2014-11-18 11:54
-%%% sampleu3.sce 2014-11-17 19:14
-{\unitlength=1cm%
-\begin{picture}%
-( 10.87000, 6.13000)( -5.48000, -1.54000)%
-\special{pn 8}%
-%
-\special{pa -394 -1181}\special{pa -394 -1143}\special{fp}\special{pa -394 -1105}\special{pa -394 -1067}\special{fp}%
-\special{pa -394 -1029}\special{pa -394 -991}\special{fp}\special{pa -394 -953}\special{pa -394 -914}\special{fp}%
-\special{pa -394 -876}\special{pa -394 -838}\special{fp}\special{pa -394 -800}\special{pa -394 -762}\special{fp}%
-\special{pa -394 -724}\special{pa -394 -686}\special{fp}\special{pa -394 -648}\special{pa -394 -610}\special{fp}%
-\special{pa -394 -572}\special{pa -394 -533}\special{fp}\special{pa -394 -495}\special{pa -394 -457}\special{fp}%
-\special{pa -394 -419}\special{pa -394 -381}\special{fp}\special{pa -394 -343}\special{pa -394 -305}\special{fp}%
-\special{pa -394 -267}\special{pa -394 -229}\special{fp}\special{pa -394 -191}\special{pa -394 -152}\special{fp}%
-\special{pa -394 -114}\special{pa -394 -76}\special{fp}\special{pa -394 -38}\special{pa -394 0}\special{fp}%
-%
-%
-\special{pa -102 -1539}\special{pa -102 -1502}\special{fp}\special{pa -102 -1464}\special{pa -102 -1427}\special{fp}%
-\special{pa -102 -1389}\special{pa -102 -1352}\special{fp}\special{pa -102 -1314}\special{pa -102 -1277}\special{fp}%
-\special{pa -102 -1239}\special{pa -102 -1201}\special{fp}\special{pa -102 -1164}\special{pa -102 -1126}\special{fp}%
-\special{pa -102 -1089}\special{pa -102 -1051}\special{fp}\special{pa -102 -1014}\special{pa -102 -976}\special{fp}%
-\special{pa -102 -939}\special{pa -102 -901}\special{fp}\special{pa -102 -864}\special{pa -102 -826}\special{fp}%
-\special{pa -102 -788}\special{pa -102 -751}\special{fp}\special{pa -102 -713}\special{pa -102 -676}\special{fp}%
-\special{pa -102 -638}\special{pa -102 -601}\special{fp}\special{pa -102 -563}\special{pa -102 -526}\special{fp}%
-\special{pa -102 -488}\special{pa -102 -451}\special{fp}\special{pa -102 -413}\special{pa -102 -375}\special{fp}%
-\special{pa -102 -338}\special{pa -102 -300}\special{fp}\special{pa -102 -263}\special{pa -102 -225}\special{fp}%
-\special{pa -102 -188}\special{pa -102 -150}\special{fp}\special{pa -102 -113}\special{pa -102 -75}\special{fp}%
-\special{pa -102 -38}\special{pa -102 0}\special{fp}%
-%
-\special{pa 181 -1500}\special{pa 181 -1462}\special{fp}\special{pa 181 -1423}\special{pa 181 -1385}\special{fp}%
-\special{pa 181 -1346}\special{pa 181 -1308}\special{fp}\special{pa 181 -1269}\special{pa 181 -1231}\special{fp}%
-\special{pa 181 -1192}\special{pa 181 -1154}\special{fp}\special{pa 181 -1115}\special{pa 181 -1077}\special{fp}%
-\special{pa 181 -1038}\special{pa 181 -1000}\special{fp}\special{pa 181 -962}\special{pa 181 -923}\special{fp}%
-\special{pa 181 -885}\special{pa 181 -846}\special{fp}\special{pa 181 -808}\special{pa 181 -769}\special{fp}%
-\special{pa 181 -731}\special{pa 181 -692}\special{fp}\special{pa 181 -654}\special{pa 181 -615}\special{fp}%
-\special{pa 181 -577}\special{pa 181 -538}\special{fp}\special{pa 181 -500}\special{pa 181 -462}\special{fp}%
-\special{pa 181 -423}\special{pa 181 -385}\special{fp}\special{pa 181 -346}\special{pa 181 -308}\special{fp}%
-\special{pa 181 -269}\special{pa 181 -231}\special{fp}\special{pa 181 -192}\special{pa 181 -154}\special{fp}%
-\special{pa 181 -115}\special{pa 181 -77}\special{fp}\special{pa 181 -38}\special{pa 181 0}\special{fp}%
-%
-%
-\special{pa 476 -984}\special{pa 476 -945}\special{fp}\special{pa 476 -906}\special{pa 476 -866}\special{fp}%
-\special{pa 476 -827}\special{pa 476 -787}\special{fp}\special{pa 476 -748}\special{pa 476 -709}\special{fp}%
-\special{pa 476 -669}\special{pa 476 -630}\special{fp}\special{pa 476 -591}\special{pa 476 -551}\special{fp}%
-\special{pa 476 -512}\special{pa 476 -472}\special{fp}\special{pa 476 -433}\special{pa 476 -394}\special{fp}%
-\special{pa 476 -354}\special{pa 476 -315}\special{fp}\special{pa 476 -276}\special{pa 476 -236}\special{fp}%
-\special{pa 476 -197}\special{pa 476 -157}\special{fp}\special{pa 476 -118}\special{pa 476 -79}\special{fp}%
-\special{pa 476 -39}\special{pa 476 0}\special{fp}%
-%
-\special{pn 8}%
-\special{pa -1023 -1810}\special{pa -1017 -1804}\special{fp}\special{pa -995 -1782}\special{pa -989 -1777}\special{fp}%
-\special{pa -967 -1754}\special{pa -961 -1749}\special{fp}\special{pa -939 -1727}\special{pa -934 -1721}\special{fp}%
-\special{pa -912 -1699}\special{pa -906 -1693}\special{fp}\special{pa -884 -1671}\special{pa -878 -1666}\special{fp}%
-\special{pa -856 -1643}\special{pa -850 -1638}\special{fp}\special{pa -828 -1616}\special{pa -823 -1610}\special{fp}%
-\special{pa -801 -1588}\special{pa -795 -1582}\special{fp}\special{pa -773 -1560}\special{pa -767 -1555}\special{fp}%
-\special{pa -745 -1533}\special{pa -739 -1527}\special{fp}\special{pa -717 -1505}\special{pa -712 -1499}\special{fp}%
-\special{pa -690 -1477}\special{pa -684 -1471}\special{fp}\special{pa -662 -1449}\special{pa -656 -1444}\special{fp}%
-\special{pa -634 -1422}\special{pa -628 -1416}\special{fp}\special{pa -606 -1394}\special{pa -601 -1388}\special{fp}%
-\special{pa -579 -1366}\special{pa -573 -1360}\special{fp}\special{pa -551 -1338}\special{pa -545 -1333}\special{fp}%
-\special{pa -523 -1311}\special{pa -518 -1305}\special{fp}\special{pa -495 -1283}\special{pa -490 -1277}\special{fp}%
-\special{pa -468 -1255}\special{pa -462 -1249}\special{fp}\special{pa -440 -1227}\special{pa -434 -1222}\special{fp}%
-\special{pa -412 -1200}\special{pa -407 -1194}\special{fp}\special{pa -384 -1172}\special{pa -379 -1166}\special{fp}%
-\special{pa -357 -1144}\special{pa -351 -1138}\special{fp}\special{pa -329 -1116}\special{pa -323 -1111}\special{fp}%
-\special{pa -301 -1089}\special{pa -296 -1083}\special{fp}\special{pa -274 -1061}\special{pa -268 -1055}\special{fp}%
-\special{pa -246 -1033}\special{pa -240 -1028}\special{fp}\special{pa -218 -1005}\special{pa -212 -1000}\special{fp}%
-\special{pa -190 -978}\special{pa -185 -972}\special{fp}\special{pa -163 -950}\special{pa -157 -944}\special{fp}%
-\special{pa -135 -922}\special{pa -129 -917}\special{fp}\special{pa -107 -894}\special{pa -101 -889}\special{fp}%
-\special{pa -79 -867}\special{pa -74 -861}\special{fp}\special{pa -52 -839}\special{pa -46 -833}\special{fp}%
-\special{pa -24 -811}\special{pa -18 -806}\special{fp}\special{pa 4 -784}\special{pa 10 -778}\special{fp}%
-\special{pa 32 -756}\special{pa 37 -750}\special{fp}\special{pa 59 -728}\special{pa 65 -722}\special{fp}%
-\special{pa 87 -700}\special{pa 93 -695}\special{fp}\special{pa 115 -673}\special{pa 120 -667}\special{fp}%
-\special{pa 143 -645}\special{pa 148 -639}\special{fp}\special{pa 170 -617}\special{pa 176 -611}\special{fp}%
-\special{pa 198 -589}\special{pa 204 -584}\special{fp}\special{pa 226 -562}\special{pa 231 -556}\special{fp}%
-\special{pa 254 -534}\special{pa 259 -528}\special{fp}\special{pa 281 -506}\special{pa 287 -500}\special{fp}%
-\special{pa 309 -478}\special{pa 315 -473}\special{fp}\special{pa 337 -451}\special{pa 342 -445}\special{fp}%
-\special{pa 364 -423}\special{pa 370 -417}\special{fp}\special{pa 392 -395}\special{pa 398 -390}\special{fp}%
-\special{pa 420 -367}\special{pa 426 -362}\special{fp}\special{pa 448 -340}\special{pa 453 -334}\special{fp}%
-\special{pa 475 -312}\special{pa 481 -306}\special{fp}\special{pa 503 -284}\special{pa 509 -279}\special{fp}%
-\special{pa 531 -256}\special{pa 537 -251}\special{fp}\special{pa 559 -229}\special{pa 564 -223}\special{fp}%
-\special{pa 586 -201}\special{pa 592 -195}\special{fp}\special{pa 614 -173}\special{pa 620 -168}\special{fp}%
-\special{pa 642 -146}\special{pa 648 -140}\special{fp}\special{pa 670 -118}\special{pa 675 -112}\special{fp}%
-\special{pa 697 -90}\special{pa 703 -84}\special{fp}\special{pa 725 -62}\special{pa 731 -57}\special{fp}%
-\special{pa 753 -35}\special{pa 759 -29}\special{fp}\special{pa 781 -7}\special{pa 786 -1}\special{fp}%
-\special{pa 808 21}\special{pa 814 27}\special{fp}\special{pa 836 49}\special{pa 842 54}\special{fp}%
-\special{pa 864 76}\special{pa 869 82}\special{fp}\special{pa 892 104}\special{pa 897 110}\special{fp}%
-\special{pa 919 132}\special{pa 925 138}\special{fp}\special{pa 947 160}\special{pa 953 165}\special{fp}%
-\special{pa 975 187}\special{pa 980 193}\special{fp}\special{pa 1003 215}\special{pa 1008 221}\special{fp}%
-\special{pa 1030 243}\special{pa 1036 249}\special{fp}\special{pa 1058 271}\special{pa 1064 276}\special{fp}%
-\special{pa 1086 298}\special{pa 1091 304}\special{fp}\special{pa 1113 326}\special{pa 1119 332}\special{fp}%
-\special{pa 1141 354}\special{pa 1147 359}\special{fp}\special{pa 1169 382}\special{pa 1175 387}\special{fp}%
-\special{pa 1197 409}\special{pa 1202 415}\special{fp}\special{pa 1224 437}\special{pa 1230 443}\special{fp}%
-\special{pa 1252 465}\special{pa 1258 470}\special{fp}\special{pa 1280 493}\special{pa 1286 498}\special{fp}%
-\special{pa 1308 520}\special{pa 1313 526}\special{fp}\special{pa 1335 548}\special{pa 1341 554}\special{fp}%
-\special{pa 1363 576}\special{pa 1369 581}\special{fp}\special{pa 1391 603}\special{pa 1397 609}\special{fp}%
-\special{pn 8}%
-\special{pn 16}%
-\special{pa -1287 606}\special{pa -1284 600}\special{pa -1197 425}\special{pa -1109 250}%
-\special{pa -1022 76}\special{pa -935 -99}\special{pa -847 -274}\special{pa -760 -448}%
-\special{pa -673 -623}\special{pa -585 -798}\special{pa -498 -972}\special{pa -411 -1147}%
-\special{pa -323 -1322}\special{pa -236 -1496}\special{pa -149 -1671}\special{pa -81 -1807}%
-\special{fp}%
-\special{pn 8}%
-\special{pa -1816 606}\special{pa -1792 576}\special{fp}\special{pa -1767 545}\special{pa -1743 515}\special{fp}%
-\special{pa -1719 484}\special{pa -1694 454}\special{fp}\special{pa -1670 423}\special{pa -1646 392}\special{fp}%
-\special{pa -1621 362}\special{pa -1597 331}\special{fp}\special{pa -1573 301}\special{pa -1549 270}\special{fp}%
-\special{pa -1524 240}\special{pa -1500 209}\special{fp}\special{pa -1476 179}\special{pa -1451 148}\special{fp}%
-\special{pa -1427 118}\special{pa -1403 87}\special{fp}\special{pa -1378 56}\special{pa -1354 26}\special{fp}%
-\special{pa -1330 -5}\special{pa -1305 -35}\special{fp}\special{pa -1281 -66}\special{pa -1257 -96}\special{fp}%
-\special{pa -1233 -127}\special{pa -1208 -157}\special{fp}\special{pa -1184 -188}\special{pa -1160 -219}\special{fp}%
-\special{pa -1135 -249}\special{pa -1111 -280}\special{fp}\special{pa -1087 -310}\special{pa -1062 -341}\special{fp}%
-\special{pa -1038 -371}\special{pa -1014 -402}\special{fp}\special{pa -989 -432}\special{pa -965 -463}\special{fp}%
-\special{pa -941 -493}\special{pa -917 -524}\special{fp}\special{pa -892 -555}\special{pa -868 -585}\special{fp}%
-\special{pa -844 -616}\special{pa -819 -646}\special{fp}\special{pa -795 -677}\special{pa -771 -707}\special{fp}%
-\special{pa -746 -738}\special{pa -722 -768}\special{fp}\special{pa -698 -799}\special{pa -673 -830}\special{fp}%
-\special{pa -649 -860}\special{pa -625 -891}\special{fp}\special{pa -601 -921}\special{pa -576 -952}\special{fp}%
-\special{pa -552 -982}\special{pa -528 -1013}\special{fp}\special{pa -503 -1043}\special{pa -479 -1074}\special{fp}%
-\special{pa -455 -1104}\special{pa -430 -1135}\special{fp}\special{pa -406 -1166}\special{pa -382 -1196}\special{fp}%
-\special{pa -357 -1227}\special{pa -333 -1257}\special{fp}\special{pa -309 -1288}\special{pa -285 -1318}\special{fp}%
-\special{pa -260 -1349}\special{pa -236 -1379}\special{fp}\special{pa -212 -1410}\special{pa -187 -1440}\special{fp}%
-\special{pa -163 -1471}\special{pa -139 -1502}\special{fp}\special{pa -114 -1532}\special{pa -90 -1563}\special{fp}%
-\special{pa -66 -1593}\special{pa -41 -1624}\special{fp}\special{pa -17 -1654}\special{pa 7 -1685}\special{fp}%
-\special{pa 31 -1715}\special{pa 56 -1746}\special{fp}\special{pa 80 -1777}\special{pa 104 -1807}\special{fp}%
-%
-%
-\special{pa -2157 -281}\special{pa -2123 -299}\special{fp}\special{pa -2089 -317}\special{pa -2054 -334}\special{fp}%
-\special{pa -2020 -352}\special{pa -1986 -369}\special{fp}\special{pa -1951 -387}\special{pa -1917 -404}\special{fp}%
-\special{pa -1882 -422}\special{pa -1848 -439}\special{fp}\special{pa -1814 -457}\special{pa -1779 -474}\special{fp}%
-\special{pa -1745 -492}\special{pa -1711 -509}\special{fp}\special{pa -1676 -527}\special{pa -1642 -544}\special{fp}%
-\special{pa -1607 -562}\special{pa -1573 -580}\special{fp}\special{pa -1539 -597}\special{pa -1504 -615}\special{fp}%
-\special{pa -1470 -632}\special{pa -1436 -650}\special{fp}\special{pa -1401 -667}\special{pa -1367 -685}\special{fp}%
-\special{pa -1332 -702}\special{pa -1298 -720}\special{fp}\special{pa -1264 -737}\special{pa -1229 -755}\special{fp}%
-\special{pa -1195 -772}\special{pa -1160 -790}\special{fp}\special{pa -1126 -808}\special{pa -1092 -825}\special{fp}%
-\special{pa -1057 -843}\special{pa -1023 -860}\special{fp}\special{pa -989 -878}\special{pa -954 -895}\special{fp}%
-\special{pa -920 -913}\special{pa -885 -930}\special{fp}\special{pa -851 -948}\special{pa -817 -965}\special{fp}%
-\special{pa -782 -983}\special{pa -748 -1000}\special{fp}\special{pa -714 -1018}\special{pa -679 -1036}\special{fp}%
-\special{pa -645 -1053}\special{pa -610 -1071}\special{fp}\special{pa -576 -1088}\special{pa -542 -1106}\special{fp}%
-\special{pa -507 -1123}\special{pa -473 -1141}\special{fp}\special{pa -438 -1158}\special{pa -404 -1176}\special{fp}%
-\special{pa -370 -1193}\special{pa -335 -1211}\special{fp}\special{pa -301 -1228}\special{pa -267 -1246}\special{fp}%
-\special{pa -232 -1263}\special{pa -198 -1281}\special{fp}\special{pa -163 -1299}\special{pa -129 -1316}\special{fp}%
-\special{pa -95 -1334}\special{pa -60 -1351}\special{fp}\special{pa -26 -1369}\special{pa 8 -1386}\special{fp}%
-\special{pa 43 -1404}\special{pa 77 -1421}\special{fp}\special{pa 112 -1439}\special{pa 146 -1456}\special{fp}%
-\special{pa 180 -1474}\special{pa 215 -1491}\special{fp}\special{pa 249 -1509}\special{pa 283 -1527}\special{fp}%
-\special{pa 318 -1544}\special{pa 352 -1562}\special{fp}\special{pa 387 -1579}\special{pa 421 -1597}\special{fp}%
-\special{pa 455 -1614}\special{pa 490 -1632}\special{fp}\special{pa 524 -1649}\special{pa 559 -1667}\special{fp}%
-\special{pa 593 -1684}\special{pa 627 -1702}\special{fp}\special{pa 662 -1719}\special{pa 696 -1737}\special{fp}%
-\special{pa 730 -1754}\special{pa 765 -1772}\special{fp}\special{pa 799 -1790}\special{pa 834 -1807}\special{fp}%
-%
-%
-\special{pa -2157 -1600}\special{pa -2120 -1591}\special{fp}\special{pa -2082 -1582}\special{pa -2044 -1573}\special{fp}%
-\special{pa -2006 -1564}\special{pa -1968 -1555}\special{fp}\special{pa -1930 -1546}\special{pa -1892 -1537}\special{fp}%
-\special{pa -1855 -1528}\special{pa -1817 -1519}\special{fp}\special{pa -1779 -1510}\special{pa -1741 -1501}\special{fp}%
-\special{pa -1703 -1492}\special{pa -1665 -1483}\special{fp}\special{pa -1627 -1474}\special{pa -1589 -1465}\special{fp}%
-\special{pa -1552 -1456}\special{pa -1514 -1447}\special{fp}\special{pa -1476 -1438}\special{pa -1438 -1429}\special{fp}%
-\special{pa -1400 -1420}\special{pa -1362 -1411}\special{fp}\special{pa -1324 -1402}\special{pa -1286 -1393}\special{fp}%
-\special{pa -1249 -1384}\special{pa -1211 -1375}\special{fp}\special{pa -1173 -1366}\special{pa -1135 -1357}\special{fp}%
-\special{pa -1097 -1348}\special{pa -1059 -1339}\special{fp}\special{pa -1021 -1330}\special{pa -983 -1321}\special{fp}%
-\special{pa -946 -1312}\special{pa -908 -1303}\special{fp}\special{pa -870 -1294}\special{pa -832 -1285}\special{fp}%
-\special{pa -794 -1276}\special{pa -756 -1267}\special{fp}\special{pa -718 -1258}\special{pa -680 -1249}\special{fp}%
-\special{pa -643 -1240}\special{pa -605 -1231}\special{fp}\special{pa -567 -1222}\special{pa -529 -1213}\special{fp}%
-\special{pa -491 -1204}\special{pa -453 -1195}\special{fp}\special{pa -415 -1186}\special{pa -377 -1177}\special{fp}%
-\special{pa -340 -1168}\special{pa -302 -1159}\special{fp}\special{pa -264 -1150}\special{pa -226 -1141}\special{fp}%
-\special{pa -188 -1132}\special{pa -150 -1123}\special{fp}\special{pa -112 -1114}\special{pa -75 -1105}\special{fp}%
-\special{pa -37 -1096}\special{pa 1 -1087}\special{fp}\special{pa 39 -1078}\special{pa 77 -1069}\special{fp}%
-\special{pa 115 -1060}\special{pa 153 -1051}\special{fp}\special{pa 191 -1042}\special{pa 228 -1033}\special{fp}%
-\special{pa 266 -1024}\special{pa 304 -1015}\special{fp}\special{pa 342 -1006}\special{pa 380 -997}\special{fp}%
-\special{pa 418 -988}\special{pa 456 -979}\special{fp}\special{pa 494 -970}\special{pa 531 -961}\special{fp}%
-\special{pa 569 -952}\special{pa 607 -943}\special{fp}\special{pa 645 -934}\special{pa 683 -925}\special{fp}%
-\special{pa 721 -916}\special{pa 759 -907}\special{fp}\special{pa 797 -898}\special{pa 834 -889}\special{fp}%
-\special{pa 872 -880}\special{pa 910 -871}\special{fp}\special{pa 948 -862}\special{pa 986 -853}\special{fp}%
-\special{pa 1024 -844}\special{pa 1062 -835}\special{fp}\special{pa 1100 -826}\special{pa 1137 -817}\special{fp}%
-\special{pa 1175 -808}\special{pa 1213 -799}\special{fp}\special{pa 1251 -790}\special{pa 1289 -781}\special{fp}%
-\special{pa 1327 -772}\special{pa 1365 -763}\special{fp}\special{pa 1402 -754}\special{pa 1440 -745}\special{fp}%
-\special{pa 1478 -736}\special{pa 1516 -727}\special{fp}\special{pa 1554 -718}\special{pa 1592 -709}\special{fp}%
-\special{pa 1630 -700}\special{pa 1668 -691}\special{fp}\special{pa 1705 -682}\special{pa 1743 -673}\special{fp}%
-\special{pa 1781 -664}\special{pa 1819 -655}\special{fp}\special{pa 1857 -646}\special{pa 1895 -637}\special{fp}%
-\special{pa 1933 -628}\special{pa 1971 -619}\special{fp}\special{pa 2008 -610}\special{pa 2046 -601}\special{fp}%
-\special{pa 2084 -592}\special{pa 2122 -583}\special{fp}%
-%
-\settowidth{\Width}{C}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{C}\settodepth{\Depth}{C}\setlength{\Height}{\Depth}%
-\put(1.2600,2.5500){\hspace*{\Width}\raisebox{\Height}{C}}%
-%
-%
-\settowidth{\Width}{E}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{E}\settodepth{\Depth}{E}\setlength{\Height}{\Depth}%
-\put(-0.2600,3.9600){\hspace*{\Width}\raisebox{\Height}{E}}%
-%
-%
-\settowidth{\Width}{D}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{D}\settodepth{\Depth}{D}\setlength{\Height}{\Depth}%
-\put(0.5100,3.8600){\hspace*{\Width}\raisebox{\Height}{D}}%
-%
-%
-\settowidth{\Width}{A}\setlength{\Width}{-1\Width}%
-\settoheight{\Height}{A}\settodepth{\Depth}{A}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(-1.2000,3.0000){\hspace*{\Width}\raisebox{\Height}{A}}%
-%
-%
-\settowidth{\Width}{B}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{B}\settodepth{\Depth}{B}\setlength{\Height}{\Depth}%
-\put(2.0500,0.0500){\hspace*{\Width}\raisebox{\Height}{B}}%
-%
-%
-\settowidth{\Width}{$a$}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{$a$}\settodepth{\Depth}{$a$}\setlength{\Height}{-\Height}%
-\put(-1.0000,-0.0500){\hspace*{\Width}\raisebox{\Height}{$a$}}%
-%
-%
-\settowidth{\Width}{$e$}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{$e$}\settodepth{\Depth}{$e$}\setlength{\Height}{-\Height}%
-\put(-0.2600,-0.0500){\hspace*{\Width}\raisebox{\Height}{$e$}}%
-%
-%
-\settowidth{\Width}{$d$}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{$d$}\settodepth{\Depth}{$d$}\setlength{\Height}{-\Height}%
-\put(0.4600,-0.0500){\hspace*{\Width}\raisebox{\Height}{$d$}}%
-%
-%
-\settowidth{\Width}{$c$}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{$c$}\settodepth{\Depth}{$c$}\setlength{\Height}{-\Height}%
-\put(1.2100,-0.0500){\hspace*{\Width}\raisebox{\Height}{$c$}}%
-%
-%
-\settowidth{\Width}{$b$}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{$b$}\settodepth{\Depth}{$b$}\setlength{\Height}{-\Height}%
-\put(2.0000,-0.0500){\hspace*{\Width}\raisebox{\Height}{$b$}}%
-%
-%
-\special{pa -394 -1181}\special{pa -388 -1193}\special{pa -382 -1204}\special{pa -376 -1216}%
-\special{pa -370 -1227}\special{pa -364 -1238}\special{pa -358 -1249}\special{pa -352 -1260}%
-\special{pa -346 -1270}\special{pa -340 -1281}\special{pa -334 -1291}\special{pa -328 -1301}%
-\special{pa -322 -1311}\special{pa -317 -1320}\special{pa -311 -1330}\special{pa -305 -1339}%
-\special{pa -299 -1348}\special{pa -293 -1357}\special{pa -287 -1366}\special{pa -281 -1374}%
-\special{pa -275 -1383}\special{pa -269 -1391}\special{pa -263 -1399}\special{pa -257 -1407}%
-\special{pa -251 -1414}\special{pa -245 -1422}\special{pa -239 -1429}\special{pa -233 -1436}%
-\special{pa -228 -1443}\special{pa -222 -1450}\special{pa -216 -1457}\special{pa -210 -1463}%
-\special{pa -204 -1469}\special{pa -198 -1475}\special{pa -192 -1481}\special{pa -186 -1487}%
-\special{pa -180 -1492}\special{pa -174 -1498}\special{pa -168 -1503}\special{pa -162 -1508}%
-\special{pa -156 -1513}\special{pa -150 -1517}\special{pa -144 -1522}\special{pa -138 -1526}%
-\special{pa -133 -1530}\special{pa -127 -1534}\special{pa -121 -1538}\special{pa -115 -1541}%
-\special{pa -109 -1545}\special{pa -103 -1548}\special{pa -97 -1551}\special{pa -91 -1554}%
-\special{pa -85 -1556}\special{pa -79 -1559}\special{pa -73 -1561}\special{pa -67 -1563}%
-\special{pa -61 -1565}\special{pa -55 -1567}\special{pa -49 -1569}\special{pa -44 -1570}%
-\special{pa -38 -1571}\special{pa -32 -1572}\special{pa -26 -1573}\special{pa -20 -1574}%
-\special{pa -14 -1574}\special{pa -8 -1575}\special{pa -2 -1575}\special{pa 4 -1575}%
-\special{pa 10 -1575}\special{pa 16 -1574}\special{pa 22 -1574}\special{pa 28 -1573}%
-\special{pa 34 -1572}\special{pa 40 -1571}\special{pa 46 -1570}\special{pa 51 -1568}%
-\special{pa 57 -1566}\special{pa 63 -1565}\special{pa 69 -1563}\special{pa 75 -1560}%
-\special{pa 81 -1558}\special{pa 87 -1556}\special{pa 93 -1553}\special{pa 99 -1550}%
-\special{pa 105 -1547}\special{pa 111 -1544}\special{pa 117 -1540}\special{pa 123 -1537}%
-\special{pa 129 -1533}\special{pa 135 -1529}\special{pa 140 -1525}\special{pa 146 -1520}%
-\special{pa 152 -1516}\special{pa 158 -1511}\special{pa 164 -1506}\special{pa 170 -1501}%
-\special{pa 176 -1496}\special{pa 182 -1491}\special{pa 188 -1485}\special{pa 194 -1479}%
-\special{pa 200 -1473}\special{pa 206 -1467}\special{pa 212 -1461}\special{pa 218 -1455}%
-\special{pa 224 -1448}\special{pa 229 -1441}\special{pa 235 -1434}\special{pa 241 -1427}%
-\special{pa 247 -1419}\special{pa 253 -1412}\special{pa 259 -1404}\special{pa 265 -1396}%
-\special{pa 271 -1388}\special{pa 277 -1380}\special{pa 283 -1372}\special{pa 289 -1363}%
-\special{pa 295 -1354}\special{pa 301 -1345}\special{pa 307 -1336}\special{pa 313 -1327}%
-\special{pa 319 -1317}\special{pa 324 -1307}\special{pa 330 -1298}\special{pa 336 -1287}%
-\special{pa 342 -1277}\special{pa 348 -1267}\special{pa 354 -1256}\special{pa 360 -1245}%
-\special{pa 366 -1235}\special{pa 372 -1223}\special{pa 378 -1212}\special{pa 384 -1201}%
-\special{pa 390 -1189}\special{pa 396 -1177}\special{pa 402 -1165}\special{pa 408 -1153}%
-\special{pa 413 -1141}\special{pa 419 -1128}\special{pa 425 -1115}\special{pa 431 -1102}%
-\special{pa 437 -1089}\special{pa 443 -1076}\special{pa 449 -1063}\special{pa 455 -1049}%
-\special{pa 461 -1035}\special{pa 467 -1021}\special{pa 473 -1007}\special{pa 479 -993}%
-\special{pa 485 -978}\special{pa 491 -963}\special{pa 497 -948}\special{pa 503 -933}%
-\special{pa 508 -918}\special{pa 514 -903}\special{pa 520 -887}\special{pa 526 -871}%
-\special{pa 532 -855}\special{pa 538 -839}\special{pa 544 -823}\special{pa 550 -806}%
-\special{pa 556 -790}\special{pa 562 -773}\special{pa 568 -756}\special{pa 574 -739}%
-\special{pa 580 -721}\special{pa 586 -704}\special{pa 592 -686}\special{pa 597 -668}%
-\special{pa 603 -650}\special{pa 609 -632}\special{pa 615 -613}\special{pa 621 -595}%
-\special{pa 627 -576}\special{pa 633 -557}\special{pa 639 -538}\special{pa 645 -518}%
-\special{pa 651 -499}\special{pa 657 -479}\special{pa 663 -459}\special{pa 669 -439}%
-\special{pa 675 -419}\special{pa 681 -398}\special{pa 687 -378}\special{pa 692 -357}%
-\special{pa 698 -336}\special{pa 704 -315}\special{pa 710 -294}\special{pa 716 -272}%
-\special{pa 722 -250}\special{pa 728 -228}\special{pa 734 -206}\special{pa 740 -184}%
-\special{pa 746 -162}\special{pa 752 -139}\special{pa 758 -116}\special{pa 764 -94}%
-\special{pa 770 -70}\special{pa 776 -47}\special{pa 781 -24}\special{pa 787 0}%
-\special{fp}%
-\special{pa -2157 0}\special{pa 2122 0}%
-\special{fp}%
-\special{pa 0 606}\special{pa 0 -1807}%
-\special{fp}%
-\settowidth{\Width}{$x$}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{$x$}\settodepth{\Depth}{$x$}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(5.4400,0.0000){\hspace*{\Width}\raisebox{\Height}{$x$}}%
-%
-%
-\settowidth{\Width}{$y$}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{$y$}\settodepth{\Depth}{$y$}\setlength{\Height}{\Depth}%
-\put(0.0000,4.6400){\hspace*{\Width}\raisebox{\Height}{$y$}}%
-%
-%
-\settowidth{\Width}{O}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{O}\settodepth{\Depth}{O}\setlength{\Height}{\Depth}%
-\put(0.0500,0.0500){\hspace*{\Width}\raisebox{\Height}{O}}%
-%
-%
-\end{picture}}% \ No newline at end of file
diff --git a/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/ovaldata.tex b/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/ovaldata.tex
deleted file mode 100644
index 6d8beff9..00000000
--- a/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/ovaldata.tex
+++ /dev/null
@@ -1,123 +0,0 @@
-%%% test.tex 2014-11-30 22:38
-%%% test.sce 2014-11-30 22:38
-{\unitlength=5mm%
-\begin{picture}%
-( 21.04000, 5.44000)( -3.04000, 0.56000)%
-\special{pn 8}%
-%
-\special{pn 24}%
-\special{pa 2268 -591}\special{pa 2268 -803}\special{pa 2265 -834}\special{pa 2258 -864}%
-\special{pa 2246 -893}\special{pa 2230 -919}\special{pa 2210 -942}\special{pa 2187 -962}%
-\special{pa 2160 -979}\special{pa 2132 -990}\special{pa 2102 -998}\special{pa 2071 -1000}%
-\special{pa 1969 -1000}\special{pa 1866 -1000}\special{pa 1835 -998}\special{pa 1805 -990}%
-\special{pa 1777 -979}\special{pa 1750 -962}\special{pa 1727 -942}\special{pa 1707 -919}%
-\special{pa 1691 -893}\special{pa 1679 -864}\special{pa 1672 -834}\special{pa 1669 -803}%
-\special{pa 1669 -591}\special{pa 1669 -378}\special{pa 1672 -347}\special{pa 1679 -317}%
-\special{pa 1691 -289}\special{pa 1707 -262}\special{pa 1727 -239}\special{pa 1750 -219}%
-\special{pa 1777 -203}\special{pa 1805 -191}\special{pa 1835 -184}\special{pa 1866 -181}%
-\special{pa 1969 -181}\special{pa 2071 -181}\special{pa 2102 -184}\special{pa 2132 -191}%
-\special{pa 2160 -203}\special{pa 2187 -219}\special{pa 2210 -239}\special{pa 2230 -262}%
-\special{pa 2246 -289}\special{pa 2258 -317}\special{pa 2265 -347}\special{pa 2268 -378}%
-\special{pa 2268 -591}%
-\special{fp}%
-\special{pn 8}%
-\special{pa 3354 -591}\special{pa 3354 -602}\special{pa 3352 -629}\special{fp}\special{pa 3346 -667}\special{pa 3340 -694}\special{pa 3335 -705}\special{fp}%
-\special{pa 3320 -740}\special{pa 3300 -773}\special{fp}\special{pa 3275 -803}\special{pa 3268 -811}\special{pa 3247 -829}\special{fp}%
-\special{pa 3215 -852}\special{pa 3193 -865}\special{pa 3181 -870}\special{fp}\special{pa 3145 -884}\special{pa 3108 -893}\special{fp}%
-\special{pa 3069 -897}\special{pa 3059 -898}\special{pa 3030 -898}\special{fp}\special{pa 2992 -898}\special{pa 2953 -898}\special{pa 2953 -898}\special{fp}%
-\special{pa 2914 -898}\special{pa 2875 -898}\special{fp}\special{pa 2836 -897}\special{pa 2800 -894}\special{pa 2798 -893}\special{fp}%
-\special{pa 2760 -884}\special{pa 2755 -883}\special{pa 2724 -870}\special{fp}\special{pa 2690 -852}\special{pa 2673 -841}\special{pa 2659 -829}\special{fp}%
-\special{pa 2631 -803}\special{pa 2608 -776}\special{pa 2606 -773}\special{fp}\special{pa 2586 -740}\special{pa 2583 -736}\special{pa 2570 -705}\special{fp}%
-\special{pa 2559 -667}\special{pa 2555 -649}\special{pa 2553 -629}\special{fp}\special{pa 2551 -591}\special{pa 2551 -579}\special{pa 2553 -552}\special{fp}%
-\special{pa 2559 -514}\special{pa 2566 -487}\special{pa 2570 -477}\special{fp}\special{pa 2586 -441}\special{pa 2606 -408}\special{fp}%
-\special{pa 2631 -378}\special{pa 2638 -370}\special{pa 2659 -352}\special{fp}\special{pa 2690 -329}\special{pa 2712 -316}\special{pa 2724 -311}\special{fp}%
-\special{pa 2760 -297}\special{pa 2798 -288}\special{fp}\special{pa 2836 -284}\special{pa 2846 -283}\special{pa 2875 -283}\special{fp}%
-\special{pa 2914 -283}\special{pa 2953 -283}\special{pa 2953 -283}\special{fp}\special{pa 2992 -283}\special{pa 3030 -283}\special{fp}%
-\special{pa 3069 -284}\special{pa 3105 -287}\special{pa 3108 -288}\special{fp}\special{pa 3145 -297}\special{pa 3150 -298}\special{pa 3181 -311}\special{fp}%
-\special{pa 3215 -329}\special{pa 3233 -340}\special{pa 3247 -352}\special{fp}\special{pa 3275 -378}\special{pa 3298 -405}\special{pa 3300 -408}\special{fp}%
-\special{pa 3320 -441}\special{pa 3322 -445}\special{pa 3335 -477}\special{fp}\special{pa 3346 -514}\special{pa 3351 -533}\special{pa 3352 -552}\special{fp}%
-%
-%
-\special{pa 8 -599}\special{pa 2 -602}\special{pa -5 -601}\special{pa -11 -596}\special{pa -12 -589}%
-\special{pa -8 -582}\special{pa -2 -579}\special{pa 5 -580}\special{pa 11 -585}\special{pa 12 -592}%
-\special{pa 8 -599}\special{sh 1}\special{fp}%
-\special{pa 402 -993}\special{pa 396 -996}\special{pa 388 -995}\special{pa 383 -990}%
-\special{pa 382 -982}\special{pa 385 -976}\special{pa 392 -973}\special{pa 399 -974}%
-\special{pa 404 -979}\special{pa 405 -986}\special{pa 402 -993}\special{sh 1}\special{fp}%
-\special{pa 993 -599}\special{pa 986 -602}\special{pa 979 -601}\special{pa 974 -596}%
-\special{pa 973 -589}\special{pa 976 -582}\special{pa 982 -579}\special{pa 990 -580}%
-\special{pa 995 -585}\special{pa 996 -592}\special{pa 993 -599}\special{sh 1}\special{fp}%
-\special{pa 1386 -402}\special{pa 1380 -405}\special{pa 1373 -404}\special{pa 1367 -399}%
-\special{pa 1366 -392}\special{pa 1370 -385}\special{pa 1376 -382}\special{pa 1383 -383}%
-\special{pa 1388 -388}\special{pa 1390 -396}\special{pa 1386 -402}\special{sh 1}\special{fp}%
-\special{pa 1977 -599}\special{pa 1970 -602}\special{pa 1963 -601}\special{pa 1958 -596}%
-\special{pa 1957 -589}\special{pa 1960 -582}\special{pa 1967 -579}\special{pa 1974 -580}%
-\special{pa 1979 -585}\special{pa 1980 -592}\special{pa 1977 -599}\special{sh 1}\special{fp}%
-\special{pa 1678 -1008}\special{pa 1671 -1012}\special{pa 1664 -1011}\special{pa 1659 -1005}%
-\special{pa 1658 -998}\special{pa 1661 -992}\special{pa 1667 -988}\special{pa 1675 -989}%
-\special{pa 1680 -995}\special{pa 1681 -1002}\special{pa 1678 -1008}\special{sh 1}\special{fp}%
-\special{pa 2961 -599}\special{pa 2955 -602}\special{pa 2947 -601}\special{pa 2942 -596}%
-\special{pa 2941 -589}\special{pa 2944 -582}\special{pa 2951 -579}\special{pa 2958 -580}%
-\special{pa 2963 -585}\special{pa 2964 -592}\special{pa 2961 -599}\special{sh 1}\special{fp}%
-\special{pa 3363 -906}\special{pa 3356 -909}\special{pa 3349 -908}\special{pa 3344 -903}%
-\special{pa 3343 -896}\special{pa 3346 -889}\special{pa 3352 -886}\special{pa 3360 -887}%
-\special{pa 3365 -892}\special{pa 3366 -899}\special{pa 3363 -906}\special{sh 1}\special{fp}%
-\settowidth{\Width}{A}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{A}\settodepth{\Depth}{A}\setlength{\Height}{\Depth}%
-\put(0.0500,3.0500){\hspace*{\Width}\raisebox{\Height}{A}}%
-%
-%
-\settowidth{\Width}{B}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{B}\settodepth{\Depth}{B}\setlength{\Height}{\Depth}%
-\put(2.0500,5.0500){\hspace*{\Width}\raisebox{\Height}{B}}%
-%
-%
-\settowidth{\Width}{C}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{C}\settodepth{\Depth}{C}\setlength{\Height}{\Depth}%
-\put(5.0500,3.0500){\hspace*{\Width}\raisebox{\Height}{C}}%
-%
-%
-\settowidth{\Width}{D}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{D}\settodepth{\Depth}{D}\setlength{\Height}{-\Height}%
-\put(7.0500,1.9500){\hspace*{\Width}\raisebox{\Height}{D}}%
-%
-%
-\settowidth{\Width}{E}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{E}\settodepth{\Depth}{E}\setlength{\Height}{\Depth}%
-\put(10.0500,3.0500){\hspace*{\Width}\raisebox{\Height}{E}}%
-%
-%
-\settowidth{\Width}{F}\setlength{\Width}{-1\Width}%
-\settoheight{\Height}{F}\settodepth{\Depth}{F}\setlength{\Height}{\Depth}%
-\put(8.4300,5.1300){\hspace*{\Width}\raisebox{\Height}{F}}%
-%
-%
-\settowidth{\Width}{G}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{G}\settodepth{\Depth}{G}\setlength{\Height}{\Depth}%
-\put(15.0500,3.0500){\hspace*{\Width}\raisebox{\Height}{G}}%
-%
-%
-\settowidth{\Width}{H}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{H}\settodepth{\Depth}{H}\setlength{\Height}{\Depth}%
-\put(17.0900,4.6100){\hspace*{\Width}\raisebox{\Height}{H}}%
-%
-%
-\special{pa 394 -591}\special{pa 394 -945}\special{pa 393 -951}\special{pa 392 -957}%
-\special{pa 389 -963}\special{pa 386 -968}\special{pa 382 -973}\special{pa 377 -977}%
-\special{pa 372 -980}\special{pa 366 -982}\special{pa 360 -984}\special{pa 354 -984}%
-\special{pa 0 -984}\special{pa -354 -984}\special{pa -360 -984}\special{pa -366 -982}%
-\special{pa -372 -980}\special{pa -377 -977}\special{pa -382 -973}\special{pa -386 -968}%
-\special{pa -389 -963}\special{pa -392 -957}\special{pa -393 -951}\special{pa -394 -945}%
-\special{pa -394 -591}\special{pa -394 -236}\special{pa -393 -230}\special{pa -392 -224}%
-\special{pa -389 -218}\special{pa -386 -213}\special{pa -382 -208}\special{pa -377 -204}%
-\special{pa -372 -201}\special{pa -366 -199}\special{pa -360 -197}\special{pa -354 -197}%
-\special{pa 0 -197}\special{pa 354 -197}\special{pa 360 -197}\special{pa 366 -199}%
-\special{pa 372 -201}\special{pa 377 -204}\special{pa 382 -208}\special{pa 386 -213}%
-\special{pa 389 -218}\special{pa 392 -224}\special{pa 393 -230}\special{pa 394 -236}%
-\special{pa 394 -591}%
-\special{fp}%
-\special{pa 1378 -591}\special{pa 1378 -787}\special{pa 984 -787}\special{pa 591 -787}%
-\special{pa 591 -591}\special{pa 591 -394}\special{pa 984 -394}\special{pa 1378 -394}%
-\special{pa 1378 -591}%
-\special{fp}%
-\end{picture}}% \ No newline at end of file
diff --git a/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/parabolaplot.png b/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/parabolaplot.png
deleted file mode 100644
index 71b63f76..00000000
--- a/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/parabolaplot.png
+++ /dev/null
Binary files differ
diff --git a/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/parabolaplot.tex b/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/parabolaplot.tex
deleted file mode 100644
index ac66f843..00000000
--- a/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/parabolaplot.tex
+++ /dev/null
@@ -1,141 +0,0 @@
-%%% fig.tex 2015-8-3 20:14
-%%% fig.sce 2015-8-3 20:14
-{\unitlength=4mm%
-\begin{picture}%
-( 9.00000, 8.00000)( -4.00000, -3.00000)%
-\special{pn 8}%
-%
-\special{pa -630 -630}\special{pa -627 -624}\special{pa -595 -561}\special{pa -562 -502}%
-\special{pa -530 -446}\special{pa -498 -394}\special{pa -466 -345}\special{pa -434 -299}%
-\special{pa -402 -256}\special{pa -370 -217}\special{pa -337 -181}\special{pa -305 -148}%
-\special{pa -273 -118}\special{pa -241 -92}\special{pa -209 -69}\special{pa -177 -50}%
-\special{pa -145 -33}\special{pa -112 -20}\special{pa -80 -10}\special{pa -48 -4}%
-\special{pa -16 0}\special{pa 16 0}\special{pa 48 -4}\special{pa 80 -10}\special{pa 112 -20}%
-\special{pa 145 -33}\special{pa 177 -50}\special{pa 209 -69}\special{pa 241 -92}\special{pa 273 -118}%
-\special{pa 305 -148}\special{pa 337 -181}\special{pa 370 -217}\special{pa 402 -256}%
-\special{pa 434 -299}\special{pa 466 -345}\special{pa 498 -394}\special{pa 530 -446}%
-\special{pa 562 -502}\special{pa 595 -561}\special{pa 627 -624}\special{pa 659 -689}%
-\special{pa 691 -758}\special{pa 704 -787}%
-\special{fp}%
-\special{pa 725 -787}\special{pa 6 472}%
-\special{fp}%
-\special{pa -630 -530}\special{pa 202 472}%
-\special{fp}%
-\special{pa -379 -229}\special{pa 86 333}\special{pa 552 -484}%
-\special{fp}%
-\special{pa 75 319}\special{pa 119 276}%
-\special{fp}%
-\special{pa 63 304}\special{pa 156 211}%
-\special{fp}%
-\special{pa 50 289}\special{pa 193 146}%
-\special{fp}%
-\special{pa 37 274}\special{pa 229 82}%
-\special{fp}%
-\special{pa 25 258}\special{pa 266 17}%
-\special{fp}%
-\special{pa 12 243}\special{pa 303 -48}%
-\special{fp}%
-\special{pa -1 228}\special{pa 340 -113}%
-\special{fp}%
-\special{pa -13 213}\special{pa 377 -178}%
-\special{fp}%
-\special{pa -26 198}\special{pa 414 -243}%
-\special{fp}%
-\special{pa -38 182}\special{pa 224 -80}%
-\special{fp}%
-\special{pa 407 -263}\special{pa 451 -307}%
-\special{fp}%
-\special{pa -51 167}\special{pa 154 -38}%
-\special{fp}%
-\special{pa 476 -360}\special{pa 488 -372}%
-\special{fp}%
-\special{pa -64 152}\special{pa 107 -18}%
-\special{fp}%
-\special{pa 523 -435}\special{pa 525 -437}%
-\special{fp}%
-\special{pa -76 137}\special{pa 68 -8}%
-\special{fp}%
-\special{pa -89 121}\special{pa 35 -2}%
-\special{fp}%
-\special{pa -102 106}\special{pa 5 0}%
-\special{fp}%
-\special{pa -114 91}\special{pa -22 -1}%
-\special{fp}%
-\special{pa -127 76}\special{pa -47 -4}%
-\special{fp}%
-\special{pa -139 61}\special{pa -71 -8}%
-\special{fp}%
-\special{pa -152 45}\special{pa -93 -14}%
-\special{fp}%
-\special{pa -165 30}\special{pa -114 -21}%
-\special{fp}%
-\special{pa -177 15}\special{pa -134 -29}%
-\special{fp}%
-\special{pa -190 0}\special{pa -153 -37}%
-\special{fp}%
-\special{pa -203 -15}\special{pa -171 -47}%
-\special{fp}%
-\special{pa -215 -31}\special{pa -189 -57}%
-\special{fp}%
-\special{pa -228 -46}\special{pa -206 -68}%
-\special{fp}%
-\special{pa -240 -61}\special{pa -222 -79}%
-\special{fp}%
-\special{pa -253 -76}\special{pa -239 -91}%
-\special{fp}%
-\special{pa -266 -91}\special{pa -254 -103}%
-\special{fp}%
-\special{pa -278 -107}\special{pa -269 -115}%
-\special{fp}%
-\special{pa -291 -122}\special{pa -284 -129}%
-\special{fp}%
-\special{pa -304 -137}\special{pa -299 -142}%
-\special{fp}%
-\special{pa -316 -152}\special{pa -313 -156}%
-\special{fp}%
-\special{pa -329 -168}\special{pa -327 -170}%
-\special{fp}%
-\special{pa -341 -183}\special{pa -340 -184}%
-\special{fp}%
-\special{pa -354 -198}\special{pa -353 -199}%
-\special{fp}%
-\special{pa -367 -213}\special{pa -366 -213}%
-\special{fp}%
-\special{pa -379 -228}\special{pa -379 -229}%
-\special{fp}%
-\special{pn 8}%
-\special{pa -630 0}\special{pa 787 0}%
-\special{fp}%
-\special{pn 8}%
-\special{pa 713 24}\special{pa 787 0}\special{pa 713 -24}\special{pa 713 0}\special{pa 713 24}%
-\special{sh 1}\special{ip}%
-\special{pn 8}%
-\special{pa 713 24}\special{pa 787 0}\special{pa 713 -24}\special{pa 713 0}\special{pa 713 24}%
-\special{fp}%
-\special{pn 8}%
-\special{pn 8}%
-\special{pa 0 472}\special{pa 0 -787}%
-\special{fp}%
-\special{pn 8}%
-\special{pa 24 -713}\special{pa 0 -787}\special{pa -24 -713}\special{pa 0 -713}\special{pa 24 -713}%
-\special{sh 1}\special{ip}%
-\special{pn 8}%
-\special{pa 24 -713}\special{pa 0 -787}\special{pa -24 -713}\special{pa 0 -713}\special{pa 24 -713}%
-\special{fp}%
-\special{pn 8}%
-\settowidth{\Width}{$x$}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{$x$}\settodepth{\Depth}{$x$}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(5.0500,0.0000){\hspace*{\Width}\raisebox{\Height}{$x$}}%
-%
-%
-\settowidth{\Width}{$y$}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{$y$}\settodepth{\Depth}{$y$}\setlength{\Height}{\Depth}%
-\put(0.0000,5.0500){\hspace*{\Width}\raisebox{\Height}{$y$}}%
-%
-%
-\settowidth{\Width}{O}\setlength{\Width}{-1\Width}%
-\settoheight{\Height}{O}\settodepth{\Depth}{O}\setlength{\Height}{-\Height}%
-\put(-0.0500,-0.0500){\hspace*{\Width}\raisebox{\Height}{O}}%
-%
-%
-\end{picture}}% \ No newline at end of file
diff --git a/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/paramark.tex b/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/paramark.tex
deleted file mode 100644
index 87f7acc8..00000000
--- a/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/paramark.tex
+++ /dev/null
@@ -1,43 +0,0 @@
-%%% paramark.tex 2014-11-10 12:14
-%%% bowdata.sce 2014-11-10 12:13
-{\unitlength=1cm%
-\begin{picture}%
-( 6.00000, 6.00000)( -3.00000, -3.00000)%
-\special{pn 8}%
-%
-\settowidth{\Width}{A}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{A}\settodepth{\Depth}{A}\setlength{\Height}{\Depth}%
-\put(-2.0000,2.1000){\hspace*{\Width}\raisebox{\Height}{A}}%
-%
-%
-\settowidth{\Width}{B}\setlength{\Width}{-1\Width}%
-\settoheight{\Height}{B}\settodepth{\Depth}{B}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(-2.1000,-2.0000){\hspace*{\Width}\raisebox{\Height}{B}}%
-%
-%
-\settowidth{\Width}{C}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{C}\settodepth{\Depth}{C}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(2.1000,-2.0000){\hspace*{\Width}\raisebox{\Height}{C}}%
-%
-%
-\settowidth{\Width}{$B$}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{$B$}\settodepth{\Depth}{$B$}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(-0.8000,-0.8000){\hspace*{\Width}\raisebox{\Height}{$B$}}%
-%
-%
-\settowidth{\Width}{$C$}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{$C$}\settodepth{\Depth}{$C$}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(0.2900,-1.2900){\hspace*{\Width}\raisebox{\Height}{$C$}}%
-%
-%
-\special{pn 16}%
-\special{pa 648 648}\special{pa 451 648}\special{pa 591 787}%
-\special{fp}%
-\special{pn 8}%
-\special{pa -787 -787}\special{pa -787 787}\special{pa 787 787}\special{pa -787 -787}%
-\special{fp}%
-\special{pa -787 -591}\special{pa -648 -451}\special{pa -648 -648}%
-\special{fp}%
-\special{pa -394 787}\special{pa -394 394}\special{pa -787 394}%
-\special{fp}%
-\end{picture}}% \ No newline at end of file
diff --git a/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/paramoncrv.tex b/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/paramoncrv.tex
deleted file mode 100644
index 75d6206b..00000000
--- a/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/paramoncrv.tex
+++ /dev/null
@@ -1,118 +0,0 @@
-%%% fig.tex 2016-5-3 12:50
-%%% fig.sce 2016-5-3 12:50
-{\unitlength=10mm%
-\begin{picture}%
-( 4.99000, 3.72000)( -2.51000, -0.69000)%
-\special{pn 8}%
-%
-\special{pn 8}%
-\special{pa 788 4}\special{pa 787 -4}\special{fp}\special{pa 785 -35}\special{pa 785 -43}\special{fp}%
-\special{pa 783 -74}\special{pa 782 -82}\special{fp}\special{pa 778 -113}\special{pa 777 -121}\special{fp}%
-\special{pa 771 -152}\special{pa 770 -160}\special{fp}\special{pa 764 -191}\special{pa 762 -198}\special{fp}%
-\special{pa 752 -228}\special{pa 750 -236}\special{fp}\special{pa 740 -265}\special{pa 737 -273}\special{fp}%
-\special{pa 726 -302}\special{pa 723 -309}\special{fp}\special{pa 710 -338}\special{pa 706 -345}\special{fp}%
-\special{pa 693 -373}\special{pa 689 -380}\special{fp}\special{pa 673 -407}\special{pa 668 -414}\special{fp}%
-\special{pa 652 -440}\special{pa 647 -447}\special{fp}\special{pa 629 -472}\special{pa 624 -478}\special{fp}%
-\special{pa 604 -503}\special{pa 599 -509}\special{fp}\special{pa 579 -533}\special{pa 574 -539}\special{fp}%
-\special{pa 551 -560}\special{pa 545 -566}\special{fp}\special{pa 523 -587}\special{pa 517 -593}\special{fp}%
-\special{pa 493 -613}\special{pa 487 -618}\special{fp}\special{pa 461 -636}\special{pa 455 -641}\special{fp}%
-\special{pa 430 -659}\special{pa 423 -664}\special{fp}\special{pa 396 -679}\special{pa 389 -683}\special{fp}%
-\special{pa 361 -698}\special{pa 354 -702}\special{fp}\special{pa 326 -716}\special{pa 319 -719}\special{fp}%
-\special{pa 290 -730}\special{pa 282 -733}\special{fp}\special{pa 253 -745}\special{pa 246 -748}\special{fp}%
-\special{pa 216 -756}\special{pa 208 -758}\special{fp}\special{pa 178 -766}\special{pa 170 -768}\special{fp}%
-\special{pa 139 -774}\special{pa 132 -776}\special{fp}\special{pa 101 -779}\special{pa 93 -780}\special{fp}%
-\special{pa 62 -785}\special{pa 54 -785}\special{fp}\special{pa 22 -786}\special{pa 14 -786}\special{fp}%
-\special{pa -17 -786}\special{pa -25 -786}\special{fp}\special{pa -56 -785}\special{pa -64 -784}\special{fp}%
-\special{pa -95 -780}\special{pa -103 -779}\special{fp}\special{pa -134 -775}\special{pa -142 -774}\special{fp}%
-\special{pa -172 -767}\special{pa -180 -765}\special{fp}\special{pa -211 -757}\special{pa -218 -755}\special{fp}%
-\special{pa -248 -747}\special{pa -256 -744}\special{fp}\special{pa -285 -732}\special{pa -292 -729}\special{fp}%
-\special{pa -321 -718}\special{pa -329 -715}\special{fp}\special{pa -357 -701}\special{pa -364 -697}\special{fp}%
-\special{pa -391 -682}\special{pa -398 -678}\special{fp}\special{pa -425 -662}\special{pa -432 -658}\special{fp}%
-\special{pa -457 -639}\special{pa -463 -635}\special{fp}\special{pa -489 -616}\special{pa -495 -611}\special{fp}%
-\special{pa -519 -591}\special{pa -525 -586}\special{fp}\special{pa -547 -564}\special{pa -553 -559}\special{fp}%
-\special{pa -576 -537}\special{pa -581 -531}\special{fp}\special{pa -601 -507}\special{pa -606 -501}\special{fp}%
-\special{pa -626 -477}\special{pa -631 -470}\special{fp}\special{pa -649 -445}\special{pa -653 -438}\special{fp}%
-\special{pa -670 -411}\special{pa -674 -405}\special{fp}\special{pa -690 -378}\special{pa -694 -371}\special{fp}%
-\special{pa -707 -343}\special{pa -711 -335}\special{fp}\special{pa -724 -307}\special{pa -727 -300}\special{fp}%
-\special{pa -738 -271}\special{pa -741 -263}\special{fp}\special{pa -751 -233}\special{pa -753 -226}\special{fp}%
-\special{pa -762 -196}\special{pa -764 -188}\special{fp}\special{pa -770 -157}\special{pa -772 -149}\special{fp}%
-\special{pa -778 -119}\special{pa -779 -111}\special{fp}\special{pa -782 -80}\special{pa -783 -72}\special{fp}%
-\special{pa -785 -41}\special{pa -785 -33}\special{fp}\special{pa -787 -1}\special{pa -787 7}\special{fp}%
-\special{pa -785 38}\special{pa -785 46}\special{fp}\special{pa -783 77}\special{pa -782 85}\special{fp}%
-\special{pa -778 116}\special{pa -777 124}\special{fp}\special{pa -771 154}\special{pa -769 162}\special{fp}%
-\special{pa -763 193}\special{pa -761 201}\special{fp}\special{pa -751 230}\special{pa -749 238}\special{fp}%
-\special{pa -739 268}\special{pa -737 275}\special{fp}\special{pn 8}%
-\special{pa 737 275}\special{pa 739 268}\special{fp}\special{pa 749 238}\special{pa 752 230}\special{fp}%
-\special{pa 762 200}\special{pa 764 192}\special{fp}\special{pa 769 161}\special{pa 771 153}\special{fp}%
-\special{pa 777 122}\special{pa 778 114}\special{fp}\special{pa 782 83}\special{pa 783 75}\special{fp}%
-\special{pa 785 44}\special{pa 785 36}\special{fp}\special{pa 787 4}\special{pa 788 -4}\special{fp}%
-\special{pn 8}%
-\special{pa 787 0}\special{pa 637 -463}\special{pa 243 -749}\special{pa -243 -749}%
-\special{pa -637 -463}\special{pa -787 0}%
-\special{fp}%
-\special{pn 5}%
-\special{pa 483 -599}\special{pa 475 -604}\special{pa 465 -604}\special{pa 457 -600}%
-\special{pa 451 -593}\special{pa 449 -584}\special{pa 452 -575}\special{pa 459 -568}%
-\special{pa 468 -565}\special{pa 477 -567}\special{pa 484 -573}\special{pa 488 -581}%
-\special{pa 488 -591}\special{pa 483 -599}\special{sh 1}\special{fp}%
-\special{pa 801 -14}\special{pa 793 -19}\special{pa 784 -19}\special{pa 775 -15}\special{pa 769 -8}%
-\special{pa 768 1}\special{pa 771 10}\special{pa 777 17}\special{pa 786 20}\special{pa 795 18}%
-\special{pa 803 12}\special{pa 807 4}\special{pa 806 -6}\special{pa 801 -14}\special{sh 1}\special{fp}%
-\special{pa -773 -14}\special{pa -782 -19}\special{pa -791 -19}\special{pa -800 -15}%
-\special{pa -805 -8}\special{pa -807 1}\special{pa -804 10}\special{pa -798 17}\special{pa -789 20}%
-\special{pa -779 18}\special{pa -772 12}\special{pa -768 4}\special{pa -769 -6}\special{pa -773 -14}%
-\special{sh 1}\special{fp}%
-\special{pn 8}%
-\settowidth{\Width}{P}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{P}\settodepth{\Depth}{P}\setlength{\Height}{-\Height}%
-\put(2.0500,-0.0500){\hspace*{\Width}\raisebox{\Height}{P}}%
-%
-%
-\settowidth{\Width}{Q}\setlength{\Width}{-1\Width}%
-\settoheight{\Height}{Q}\settodepth{\Depth}{Q}\setlength{\Height}{-\Height}%
-\put(-2.0500,-0.0500){\hspace*{\Width}\raisebox{\Height}{Q}}%
-%
-%
-\settowidth{\Width}{A}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{A}\settodepth{\Depth}{A}\setlength{\Height}{\Depth}%
-\put(1.2409,1.5359){\hspace*{\Width}\raisebox{\Height}{A}}%
-%
-%
-\special{pn 8}%
-\special{pa -988 0}\special{pa 937 0}%
-\special{fp}%
-\special{pn 8}%
-\special{pa 901 24}\special{pa 976 0}\special{pa 901 -24}\special{pa 901 0}\special{pa 901 24}%
-\special{sh 1}\special{ip}%
-\special{pn 1}%
-\special{pa 901 24}\special{pa 976 0}\special{pa 901 -24}\special{pa 901 0}\special{pa 901 24}%
-\special{pa 976 0}%
-\special{fp}%
-\special{pn 8}%
-\special{pn 8}%
-\special{pa 0 272}\special{pa 0 -1154}%
-\special{fp}%
-\special{pn 8}%
-\special{pa 24 -1118}\special{pa 0 -1193}\special{pa -24 -1118}\special{pa 0 -1118}%
-\special{pa 24 -1118}\special{sh 1}\special{ip}%
-\special{pn 1}%
-\special{pa 24 -1118}\special{pa 0 -1193}\special{pa -24 -1118}\special{pa 0 -1118}%
-\special{pa 24 -1118}\special{pa 0 -1193}%
-\special{fp}%
-\special{pn 8}%
-\settowidth{\Width}{$x$}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{$x$}\settodepth{\Depth}{$x$}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(2.5300,0.0000){\hspace*{\Width}\raisebox{\Height}{$x$}}%
-%
-%
-\settowidth{\Width}{$y$}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{$y$}\settodepth{\Depth}{$y$}\setlength{\Height}{\Depth}%
-\put(0.0000,3.0800){\hspace*{\Width}\raisebox{\Height}{$y$}}%
-%
-%
-\settowidth{\Width}{O}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{O}\settodepth{\Depth}{O}\setlength{\Height}{-\Height}%
-\put(0.0500,-0.0500){\hspace*{\Width}\raisebox{\Height}{O}}%
-%
-%
-\end{picture}}% \ No newline at end of file
diff --git a/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/paramplot1.tex b/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/paramplot1.tex
deleted file mode 100644
index 075d6fd7..00000000
--- a/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/paramplot1.tex
+++ /dev/null
@@ -1,40 +0,0 @@
-%%% test.tex 2014-10-18 20:24
-%%% test.sce 2014-10-18 20:24
-{\unitlength=5mm%
-\begin{picture}%
-( 7.50000, 3.50000)( -0.50000, -0.50000)%
-\special{pn 8}%
-%
-\special{pa 0 0}\special{pa 0 -2}\special{pa 1 -6}\special{pa 2 -14}\special{pa 4 -25}%
-\special{pa 8 -39}\special{pa 15 -55}\special{pa 23 -74}\special{pa 34 -95}\special{pa 47 -117}%
-\special{pa 64 -141}\special{pa 83 -165}\special{pa 106 -191}\special{pa 132 -216}%
-\special{pa 161 -241}\special{pa 194 -265}\special{pa 229 -288}\special{pa 268 -309}%
-\special{pa 309 -329}\special{pa 352 -347}\special{pa 397 -362}\special{pa 445 -374}%
-\special{pa 493 -384}\special{pa 543 -390}\special{pa 593 -393}\special{pa 644 -393}%
-\special{pa 694 -390}\special{pa 744 -384}\special{pa 792 -374}\special{pa 839 -362}%
-\special{pa 885 -347}\special{pa 928 -329}\special{pa 969 -309}\special{pa 1008 -288}%
-\special{pa 1043 -265}\special{pa 1075 -241}\special{pa 1105 -216}\special{pa 1131 -191}%
-\special{pa 1154 -165}\special{pa 1173 -141}\special{pa 1190 -117}\special{pa 1203 -95}%
-\special{pa 1214 -74}\special{pa 1222 -55}\special{pa 1228 -39}\special{pa 1232 -25}%
-\special{pa 1235 -14}\special{pa 1236 -6}\special{pa 1237 -2}\special{pa 1237 0}%
-\special{fp}%
-\special{pa -98 0}\special{pa 1378 0}%
-\special{fp}%
-\special{pa 0 98}\special{pa 0 -591}%
-\special{fp}%
-\settowidth{\Width}{$x$}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{$x$}\settodepth{\Depth}{$x$}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(7.0500,0.0000){\hspace*{\Width}\raisebox{\Height}{$x$}}%
-%
-%
-\settowidth{\Width}{$y$}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{$y$}\settodepth{\Depth}{$y$}\setlength{\Height}{\Depth}%
-\put(0.0000,3.0500){\hspace*{\Width}\raisebox{\Height}{$y$}}%
-%
-%
-\settowidth{\Width}{O}\setlength{\Width}{-1\Width}%
-\settoheight{\Height}{O}\settodepth{\Depth}{O}\setlength{\Height}{-\Height}%
-\put(-0.0500,-0.0500){\hspace*{\Width}\raisebox{\Height}{O}}%
-%
-%
-\end{picture}}% \ No newline at end of file
diff --git a/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/paramplot2.tex b/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/paramplot2.tex
deleted file mode 100644
index 0769ae89..00000000
--- a/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/paramplot2.tex
+++ /dev/null
@@ -1,77 +0,0 @@
-%%% test.tex 2014-10-18 18:55
-%%% test.sce 2014-10-18 18:55
-{\unitlength=5mm%
-\begin{picture}%
-( 20.00000, 3.00000)( -7.50000, -1.50000)%
-\special{pn 8}%
-%
-\special{pn 16}%
-\special{pa 394 0}\special{pa 390 -25}\special{pa 381 -50}\special{pa 365 -74}\special{pa 343 -97}%
-\special{pa 316 -118}\special{pa 283 -137}\special{pa 245 -154}\special{pa 204 -168}%
-\special{pa 159 -180}\special{pa 112 -189}\special{pa 63 -194}\special{pa 13 -197}%
-\special{pa -38 -196}\special{pa -88 -192}\special{pa -136 -185}\special{pa -182 -175}%
-\special{pa -225 -161}\special{pa -265 -146}\special{pa -300 -128}\special{pa -330 -107}%
-\special{pa -355 -85}\special{pa -374 -62}\special{pa -386 -38}\special{pa -393 -13}%
-\special{pa -393 13}\special{pa -386 38}\special{pa -374 62}\special{pa -355 85}\special{pa -330 107}%
-\special{pa -300 128}\special{pa -265 146}\special{pa -225 161}\special{pa -182 175}%
-\special{pa -136 185}\special{pa -88 192}\special{pa -38 196}\special{pa 13 197}\special{pa 63 194}%
-\special{pa 112 189}\special{pa 159 180}\special{pa 204 168}\special{pa 245 154}\special{pa 283 137}%
-\special{pa 316 118}\special{pa 343 97}\special{pa 365 74}\special{pa 381 50}\special{pa 390 25}%
-\special{pa 394 0}%
-\special{fp}%
-\special{pn 8}%
-\special{pa 1378 0}\special{pa 1375 -25}\special{pa 1370 -37}\special{fp}\special{pa 1352 -70}\special{pa 1349 -74}\special{pa 1327 -97}\special{pa 1326 -98}\special{fp}%
-\special{pa 1295 -121}\special{pa 1267 -137}\special{pa 1262 -139}\special{fp}\special{pa 1227 -155}\special{pa 1191 -167}\special{fp}%
-\special{pa 1154 -177}\special{pa 1144 -180}\special{pa 1117 -185}\special{fp}\special{pa 1079 -191}\special{pa 1047 -194}\special{pa 1041 -195}\special{fp}%
-\special{pa 1003 -196}\special{pa 997 -197}\special{pa 965 -196}\special{fp}\special{pa 927 -194}\special{pa 897 -192}\special{pa 889 -191}\special{fp}%
-\special{pa 852 -185}\special{pa 848 -185}\special{pa 814 -177}\special{fp}\special{pa 778 -167}\special{pa 759 -161}\special{pa 742 -155}\special{fp}%
-\special{pa 707 -139}\special{pa 684 -128}\special{pa 674 -120}\special{fp}\special{pa 643 -98}\special{pa 630 -85}\special{pa 617 -70}\special{fp}%
-\special{pa 598 -37}\special{pa 591 -13}\special{pa 591 0}\special{fp}\special{pa 598 37}\special{pa 598 38}\special{pa 611 62}\special{pa 617 70}\special{fp}%
-\special{pa 643 98}\special{pa 654 107}\special{pa 674 120}\special{fp}\special{pa 707 139}\special{pa 720 146}\special{pa 742 155}\special{fp}%
-\special{pa 778 167}\special{pa 802 175}\special{pa 814 177}\special{fp}\special{pa 852 185}\special{pa 889 191}\special{fp}%
-\special{pa 927 194}\special{pa 946 196}\special{pa 965 196}\special{fp}\special{pa 1003 196}\special{pa 1041 195}\special{fp}%
-\special{pa 1079 191}\special{pa 1096 189}\special{pa 1117 185}\special{fp}\special{pa 1154 177}\special{pa 1188 168}\special{pa 1191 167}\special{fp}%
-\special{pa 1227 155}\special{pa 1230 154}\special{pa 1262 139}\special{fp}\special{pa 1295 121}\special{pa 1300 118}\special{pa 1326 98}\special{fp}%
-\special{pa 1352 70}\special{pa 1365 50}\special{pa 1370 37}\special{fp}%
-%
-\special{pn 8}%
-\special{pa 2363 4}\special{pa 2361 -4}\special{fp}\special{pa 2355 -35}\special{pa 2352 -42}\special{fp}%
-\special{pa 2337 -70}\special{pa 2332 -76}\special{fp}\special{pa 2309 -98}\special{pa 2303 -103}\special{fp}%
-\special{pa 2277 -122}\special{pa 2270 -126}\special{fp}\special{pa 2242 -141}\special{pa 2235 -144}\special{fp}%
-\special{pa 2206 -157}\special{pa 2199 -159}\special{fp}\special{pa 2168 -169}\special{pa 2161 -172}\special{fp}%
-\special{pa 2130 -179}\special{pa 2122 -181}\special{fp}\special{pa 2091 -187}\special{pa 2083 -188}\special{fp}%
-\special{pa 2052 -192}\special{pa 2044 -193}\special{fp}\special{pa 2012 -195}\special{pa 2004 -196}\special{fp}%
-\special{pa 1973 -197}\special{pa 1965 -197}\special{fp}\special{pa 1933 -196}\special{pa 1925 -196}\special{fp}%
-\special{pa 1893 -193}\special{pa 1885 -192}\special{fp}\special{pa 1854 -188}\special{pa 1846 -187}\special{fp}%
-\special{pa 1815 -181}\special{pa 1807 -179}\special{fp}\special{pa 1776 -171}\special{pa 1769 -169}\special{fp}%
-\special{pa 1738 -159}\special{pa 1731 -157}\special{fp}\special{pa 1702 -144}\special{pa 1694 -141}\special{fp}%
-\special{pa 1667 -126}\special{pa 1660 -122}\special{fp}\special{pa 1634 -103}\special{pa 1628 -98}\special{fp}%
-\special{pa 1606 -76}\special{pa 1601 -69}\special{fp}\special{pa 1584 -42}\special{pa 1581 -35}\special{fp}%
-\special{pa 1576 -4}\special{pa 1576 4}\special{fp}\special{pa 1581 35}\special{pa 1584 42}\special{fp}%
-\special{pa 1601 69}\special{pa 1606 76}\special{fp}\special{pa 1628 98}\special{pa 1634 103}\special{fp}%
-\special{pa 1660 122}\special{pa 1667 126}\special{fp}\special{pa 1694 141}\special{pa 1702 144}\special{fp}%
-\special{pa 1731 157}\special{pa 1738 159}\special{fp}\special{pa 1769 169}\special{pa 1776 171}\special{fp}%
-\special{pa 1807 179}\special{pa 1815 181}\special{fp}\special{pa 1846 187}\special{pa 1854 188}\special{fp}%
-\special{pa 1885 192}\special{pa 1893 193}\special{fp}\special{pa 1925 196}\special{pa 1933 196}\special{fp}%
-\special{pa 1965 197}\special{pa 1973 197}\special{fp}\special{pa 2004 196}\special{pa 2012 195}\special{fp}%
-\special{pa 2044 193}\special{pa 2052 192}\special{fp}\special{pa 2083 188}\special{pa 2091 187}\special{fp}%
-\special{pa 2122 181}\special{pa 2130 179}\special{fp}\special{pa 2161 172}\special{pa 2168 169}\special{fp}%
-\special{pa 2199 159}\special{pa 2206 157}\special{fp}\special{pa 2235 144}\special{pa 2242 141}\special{fp}%
-\special{pa 2270 126}\special{pa 2277 122}\special{fp}\special{pa 2303 103}\special{pa 2309 98}\special{fp}%
-\special{pa 2332 76}\special{pa 2337 70}\special{fp}\special{pa 2352 42}\special{pa 2355 35}\special{fp}%
-\special{pa 2361 4}\special{pa 2363 -4}\special{fp}\special{pn 8}%
-\special{pa -591 0}\special{pa -594 -25}\special{pa -603 -50}\special{pa -619 -74}%
-\special{pa -641 -97}\special{pa -669 -118}\special{pa -701 -137}\special{pa -739 -154}%
-\special{pa -780 -168}\special{pa -825 -180}\special{pa -872 -189}\special{pa -921 -194}%
-\special{pa -972 -197}\special{pa -1022 -196}\special{pa -1072 -192}\special{pa -1120 -185}%
-\special{pa -1166 -175}\special{pa -1209 -161}\special{pa -1249 -146}\special{pa -1284 -128}%
-\special{pa -1314 -107}\special{pa -1339 -85}\special{pa -1358 -62}\special{pa -1371 -38}%
-\special{pa -1377 -13}\special{pa -1377 13}\special{pa -1371 38}\special{pa -1358 62}%
-\special{pa -1339 85}\special{pa -1314 107}\special{pa -1284 128}\special{pa -1249 146}%
-\special{pa -1209 161}\special{pa -1166 175}\special{pa -1120 185}\special{pa -1072 192}%
-\special{pa -1022 196}\special{pa -972 197}\special{pa -921 194}\special{pa -872 189}%
-\special{pa -825 180}\special{pa -780 168}\special{pa -739 154}\special{pa -701 137}%
-\special{pa -669 118}\special{pa -641 97}\special{pa -619 74}\special{pa -603 50}%
-\special{pa -594 25}\special{pa -591 0}%
-\special{fp}%
-\end{picture}}% \ No newline at end of file
diff --git a/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/partcrv.tex b/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/partcrv.tex
deleted file mode 100644
index bb080fe9..00000000
--- a/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/partcrv.tex
+++ /dev/null
@@ -1,111 +0,0 @@
-%%% partcrv.tex 2014-11-10 14:36
-%%% partcrv.sce 2014-11-10 13:44
-{\unitlength=1cm%
-\begin{picture}%
-( 6.00000, 6.00000)( -3.00000, -1.00000)%
-\special{pn 8}%
-%
-\special{pn 8}%
-\special{pa -881 -1972}\special{pa -879 -1965}\special{fp}\special{pa -872 -1934}\special{pa -870 -1926}\special{fp}%
-\special{pa -863 -1895}\special{pa -862 -1888}\special{fp}\special{pa -855 -1857}\special{pa -853 -1849}\special{fp}%
-\special{pa -846 -1818}\special{pa -844 -1810}\special{fp}\special{pa -837 -1780}\special{pa -835 -1772}\special{fp}%
-\special{pa -828 -1741}\special{pa -826 -1734}\special{fp}\special{pa -818 -1703}\special{pa -817 -1695}\special{fp}%
-\special{pa -809 -1664}\special{pa -807 -1657}\special{fp}\special{pa -800 -1626}\special{pa -798 -1618}\special{fp}%
-\special{pa -790 -1588}\special{pa -788 -1580}\special{fp}\special{pa -781 -1549}\special{pa -779 -1542}\special{fp}%
-\special{pa -771 -1511}\special{pa -769 -1503}\special{fp}\special{pa -761 -1473}\special{pa -759 -1465}\special{fp}%
-\special{pa -751 -1434}\special{pa -749 -1427}\special{fp}\special{pa -741 -1396}\special{pa -739 -1388}\special{fp}%
-\special{pa -731 -1358}\special{pa -729 -1350}\special{fp}\special{pa -720 -1320}\special{pa -718 -1312}\special{fp}%
-\special{pa -710 -1282}\special{pa -708 -1274}\special{fp}\special{pa -700 -1244}\special{pa -698 -1236}\special{fp}%
-\special{pa -689 -1206}\special{pa -686 -1198}\special{fp}\special{pa -678 -1168}\special{pa -675 -1160}\special{fp}%
-\special{pa -667 -1130}\special{pa -664 -1122}\special{fp}\special{pa -656 -1092}\special{pa -653 -1084}\special{fp}%
-\special{pa -644 -1054}\special{pa -642 -1046}\special{fp}\special{pa -632 -1016}\special{pa -630 -1009}\special{fp}%
-\special{pa -620 -979}\special{pa -618 -971}\special{fp}\special{pa -608 -941}\special{pa -606 -933}\special{fp}%
-\special{pa -596 -903}\special{pa -594 -896}\special{fp}\special{pa -583 -866}\special{pa -581 -858}\special{fp}%
-\special{pa -571 -828}\special{pa -568 -821}\special{fp}\special{pa -558 -791}\special{pa -555 -783}\special{fp}%
-\special{pa -544 -754}\special{pa -542 -746}\special{fp}\special{pa -531 -717}\special{pa -528 -709}\special{fp}%
-\special{pa -517 -680}\special{pa -514 -672}\special{fp}\special{pa -503 -643}\special{pa -500 -635}\special{fp}%
-\special{pa -488 -606}\special{pa -485 -599}\special{fp}\special{pa -473 -570}\special{pa -470 -562}\special{fp}%
-\special{pa -458 -533}\special{pa -455 -526}\special{fp}\special{pa -442 -497}\special{pa -438 -490}\special{fp}%
-\special{pa -425 -461}\special{pa -422 -454}\special{fp}\special{pa -409 -425}\special{pa -405 -418}\special{fp}%
-\special{pa -391 -390}\special{pa -387 -383}\special{fp}\special{pa -373 -355}\special{pa -369 -348}\special{fp}%
-\special{pa -354 -320}\special{pa -350 -313}\special{fp}\special{pa -335 -286}\special{pa -330 -279}\special{fp}%
-\special{pa -315 -251}\special{pa -310 -245}\special{fp}\special{pa -292 -219}\special{pa -288 -212}\special{fp}%
-\special{pa -270 -186}\special{pa -266 -180}\special{fp}\special{pa -246 -155}\special{pa -241 -149}\special{fp}%
-\special{pa -221 -124}\special{pa -216 -118}\special{fp}\special{pa -193 -96}\special{pa -187 -91}\special{fp}%
-\special{pa -164 -69}\special{pa -158 -64}\special{fp}\special{pa -133 -46}\special{pa -126 -41}\special{fp}%
-\special{pa -98 -26}\special{pa -91 -23}\special{fp}\special{pa -62 -11}\special{pa -54 -9}\special{fp}%
-\special{pa -24 -2}\special{pa -16 -1}\special{fp}\special{pa 16 -1}\special{pa 24 -2}\special{fp}%
-\special{pa 54 -9}\special{pa 62 -11}\special{fp}\special{pa 91 -23}\special{pa 98 -26}\special{fp}%
-\special{pa 126 -41}\special{pa 133 -46}\special{fp}\special{pa 158 -64}\special{pa 164 -69}\special{fp}%
-\special{pa 187 -91}\special{pa 193 -96}\special{fp}\special{pa 216 -118}\special{pa 221 -124}\special{fp}%
-\special{pa 241 -149}\special{pa 246 -155}\special{fp}\special{pa 266 -180}\special{pa 270 -186}\special{fp}%
-\special{pa 288 -212}\special{pa 292 -219}\special{fp}\special{pa 310 -245}\special{pa 315 -251}\special{fp}%
-\special{pa 330 -279}\special{pa 335 -286}\special{fp}\special{pa 350 -313}\special{pa 354 -320}\special{fp}%
-\special{pa 369 -348}\special{pa 373 -355}\special{fp}\special{pa 387 -383}\special{pa 391 -390}\special{fp}%
-\special{pa 405 -418}\special{pa 409 -425}\special{fp}\special{pa 422 -454}\special{pa 425 -461}\special{fp}%
-\special{pa 438 -490}\special{pa 442 -497}\special{fp}\special{pa 455 -526}\special{pa 458 -533}\special{fp}%
-\special{pa 470 -562}\special{pa 473 -570}\special{fp}\special{pa 485 -599}\special{pa 488 -606}\special{fp}%
-\special{pa 500 -635}\special{pa 503 -643}\special{fp}\special{pa 514 -672}\special{pa 517 -680}\special{fp}%
-\special{pa 528 -709}\special{pa 531 -717}\special{fp}\special{pa 542 -746}\special{pa 544 -754}\special{fp}%
-\special{pa 555 -783}\special{pa 558 -791}\special{fp}\special{pa 568 -821}\special{pa 571 -828}\special{fp}%
-\special{pa 581 -858}\special{pa 583 -866}\special{fp}\special{pa 594 -896}\special{pa 596 -903}\special{fp}%
-\special{pa 606 -933}\special{pa 608 -941}\special{fp}\special{pa 618 -971}\special{pa 620 -979}\special{fp}%
-\special{pa 630 -1009}\special{pa 632 -1016}\special{fp}\special{pa 642 -1046}\special{pa 644 -1054}\special{fp}%
-\special{pa 653 -1084}\special{pa 656 -1092}\special{fp}\special{pa 664 -1122}\special{pa 667 -1130}\special{fp}%
-\special{pa 675 -1160}\special{pa 678 -1168}\special{fp}\special{pa 686 -1198}\special{pa 689 -1206}\special{fp}%
-\special{pa 698 -1236}\special{pa 700 -1244}\special{fp}\special{pa 708 -1274}\special{pa 710 -1282}\special{fp}%
-\special{pa 718 -1312}\special{pa 720 -1320}\special{fp}\special{pa 729 -1350}\special{pa 731 -1358}\special{fp}%
-\special{pa 739 -1388}\special{pa 741 -1396}\special{fp}\special{pa 749 -1427}\special{pa 751 -1434}\special{fp}%
-\special{pa 759 -1465}\special{pa 761 -1473}\special{fp}\special{pa 769 -1503}\special{pa 771 -1511}\special{fp}%
-\special{pa 779 -1542}\special{pa 781 -1549}\special{fp}\special{pa 788 -1580}\special{pa 790 -1588}\special{fp}%
-\special{pa 798 -1618}\special{pa 800 -1626}\special{fp}\special{pa 807 -1657}\special{pa 809 -1664}\special{fp}%
-\special{pa 817 -1695}\special{pa 818 -1703}\special{fp}\special{pa 826 -1734}\special{pa 828 -1741}\special{fp}%
-\special{pa 835 -1772}\special{pa 837 -1780}\special{fp}\special{pa 844 -1810}\special{pa 846 -1818}\special{fp}%
-\special{pa 853 -1849}\special{pa 855 -1857}\special{fp}\special{pa 862 -1888}\special{pa 863 -1895}\special{fp}%
-\special{pa 870 -1926}\special{pa 872 -1934}\special{fp}\special{pa 879 -1965}\special{pa 881 -1972}\special{fp}%
-\special{pn 8}%
-\special{pn 16}%
-\special{pa -680 -1177}\special{pa -651 -1076}\special{pa -603 -922}\special{pa -554 -781}%
-\special{pa -506 -651}\special{pa -458 -533}\special{pa -410 -426}\special{pa -362 -332}%
-\special{pa -313 -249}\special{pa -265 -179}\special{pa -217 -120}\special{pa -169 -72}%
-\special{pa -121 -37}\special{pa -72 -13}\special{pa -24 -1}\special{pa 24 -1}\special{pa 72 -13}%
-\special{pa 121 -37}\special{pa 169 -72}\special{pa 217 -120}\special{pa 265 -179}%
-\special{pa 313 -249}\special{pa 362 -332}\special{pa 410 -426}\special{pa 458 -533}%
-\special{pa 506 -651}\special{pa 554 -781}\special{pa 603 -922}\special{pa 651 -1076}%
-\special{pa 680 -1177}%
-\special{fp}%
-\special{pn 8}%
-\special{pa 787 -787}\special{pa 781 -886}\special{pa 763 -983}\special{pa 732 -1077}%
-\special{pa 690 -1167}\special{pa 637 -1250}\special{pa 574 -1326}\special{pa 502 -1394}%
-\special{pa 422 -1452}\special{pa 335 -1500}\special{pa 243 -1536}\special{pa 148 -1561}%
-\special{pa 49 -1573}\special{pa -49 -1573}\special{pa -148 -1561}\special{pa -243 -1536}%
-\special{pa -335 -1500}\special{pa -422 -1452}\special{pa -502 -1394}\special{pa -574 -1326}%
-\special{pa -637 -1250}\special{pa -690 -1167}\special{pa -732 -1077}\special{pa -763 -983}%
-\special{pa -781 -886}\special{pa -787 -787}\special{pa -781 -689}\special{pa -763 -592}%
-\special{pa -732 -498}\special{pa -690 -408}\special{pa -637 -325}\special{pa -574 -248}%
-\special{pa -502 -181}\special{pa -422 -123}\special{pa -335 -75}\special{pa -243 -39}%
-\special{pa -148 -14}\special{pa -49 -2}\special{pa 49 -2}\special{pa 148 -14}\special{pa 243 -39}%
-\special{pa 335 -75}\special{pa 422 -123}\special{pa 502 -181}\special{pa 574 -248}%
-\special{pa 637 -325}\special{pa 690 -408}\special{pa 732 -498}\special{pa 763 -592}%
-\special{pa 781 -689}\special{pa 787 -787}%
-\special{fp}%
-\special{pa -1181 0}\special{pa 1181 0}%
-\special{fp}%
-\special{pa 0 394}\special{pa 0 -1969}%
-\special{fp}%
-\settowidth{\Width}{$x$}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{$x$}\settodepth{\Depth}{$x$}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(3.0500,0.0000){\hspace*{\Width}\raisebox{\Height}{$x$}}%
-%
-%
-\settowidth{\Width}{$y$}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{$y$}\settodepth{\Depth}{$y$}\setlength{\Height}{\Depth}%
-\put(0.0000,5.0500){\hspace*{\Width}\raisebox{\Height}{$y$}}%
-%
-%
-\settowidth{\Width}{O}\setlength{\Width}{-1\Width}%
-\settoheight{\Height}{O}\settodepth{\Depth}{O}\setlength{\Height}{-\Height}%
-\put(-0.0500,-0.0500){\hspace*{\Width}\raisebox{\Height}{O}}%
-%
-%
-\end{picture}}% \ No newline at end of file
diff --git a/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/partcrv1.tex b/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/partcrv1.tex
deleted file mode 100644
index 9467e8d9..00000000
--- a/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/partcrv1.tex
+++ /dev/null
@@ -1,63 +0,0 @@
-%%% partcrv1.tex 2014-11-9 0:37
-%%% partcrv.sce 2014-11-9 0:30
-{\unitlength=0.8cm%
-\begin{picture}%
-( 4.00000, 3.50000)( -2.00000, -0.50000)%
-\special{pn 8}%
-%
-\special{pn 8}%
-\special{pa -547 -949}\special{pa -544 -941}\special{fp}\special{pa -536 -911}\special{pa -533 -903}\special{fp}%
-\special{pa -524 -873}\special{pa -522 -866}\special{fp}\special{pa -513 -836}\special{pa -511 -828}\special{fp}%
-\special{pa -501 -798}\special{pa -499 -791}\special{fp}\special{pa -489 -761}\special{pa -487 -754}\special{fp}%
-\special{pa -477 -724}\special{pa -475 -716}\special{fp}\special{pa -465 -687}\special{pa -462 -679}\special{fp}%
-\special{pa -452 -650}\special{pa -450 -642}\special{fp}\special{pa -439 -613}\special{pa -436 -605}\special{fp}%
-\special{pa -426 -576}\special{pa -423 -568}\special{fp}\special{pa -412 -539}\special{pa -409 -532}\special{fp}%
-\special{pa -398 -502}\special{pa -395 -495}\special{fp}\special{pa -383 -466}\special{pa -380 -459}\special{fp}%
-\special{pa -368 -430}\special{pa -365 -423}\special{fp}\special{pa -352 -394}\special{pa -349 -387}\special{fp}%
-\special{pa -336 -358}\special{pa -332 -351}\special{fp}\special{pa -319 -323}\special{pa -315 -316}\special{fp}%
-\special{pa -301 -288}\special{pa -297 -281}\special{fp}\special{pa -282 -254}\special{pa -278 -247}\special{fp}%
-\special{pa -263 -220}\special{pa -259 -213}\special{fp}\special{pa -242 -186}\special{pa -238 -180}\special{fp}%
-\special{pa -220 -154}\special{pa -215 -147}\special{fp}\special{pa -196 -123}\special{pa -191 -116}\special{fp}%
-\special{pa -171 -93}\special{pa -165 -87}\special{fp}\special{pa -143 -65}\special{pa -137 -60}\special{fp}%
-\special{pa -113 -41}\special{pa -106 -36}\special{fp}\special{pa -79 -20}\special{pa -72 -17}\special{fp}%
-\special{pa -43 -6}\special{pa -35 -4}\special{fp}\special{pa -4 -1}\special{pa 4 -1}\special{fp}%
-\special{pa 35 -4}\special{pa 43 -6}\special{fp}\special{pa 72 -17}\special{pa 79 -20}\special{fp}%
-\special{pa 106 -36}\special{pa 113 -41}\special{fp}\special{pa 137 -60}\special{pa 143 -65}\special{fp}%
-\special{pa 165 -87}\special{pa 171 -93}\special{fp}\special{pa 191 -116}\special{pa 196 -123}\special{fp}%
-\special{pa 215 -147}\special{pa 220 -154}\special{fp}\special{pa 238 -180}\special{pa 242 -186}\special{fp}%
-\special{pa 259 -213}\special{pa 263 -220}\special{fp}\special{pa 278 -247}\special{pa 282 -254}\special{fp}%
-\special{pa 297 -281}\special{pa 301 -288}\special{fp}\special{pa 315 -316}\special{pa 319 -323}\special{fp}%
-\special{pa 332 -351}\special{pa 336 -358}\special{fp}\special{pa 349 -387}\special{pa 352 -394}\special{fp}%
-\special{pa 365 -423}\special{pa 368 -430}\special{fp}\special{pa 380 -459}\special{pa 383 -466}\special{fp}%
-\special{pa 395 -495}\special{pa 398 -502}\special{fp}\special{pa 409 -532}\special{pa 412 -539}\special{fp}%
-\special{pa 423 -568}\special{pa 426 -576}\special{fp}\special{pa 436 -605}\special{pa 439 -613}\special{fp}%
-\special{pa 450 -642}\special{pa 452 -650}\special{fp}\special{pa 462 -679}\special{pa 465 -687}\special{fp}%
-\special{pa 475 -716}\special{pa 477 -724}\special{fp}\special{pa 487 -754}\special{pa 489 -761}\special{fp}%
-\special{pa 499 -791}\special{pa 501 -798}\special{fp}\special{pa 511 -828}\special{pa 513 -836}\special{fp}%
-\special{pa 522 -866}\special{pa 524 -873}\special{fp}\special{pa 533 -903}\special{pa 536 -911}\special{fp}%
-\special{pa 544 -941}\special{pa 547 -949}\special{fp}\special{pn 8}%
-\special{pa 0 -1}\special{pa 13 -1}\special{pa 39 -5}\special{pa 64 -13}\special{pa 90 -26}%
-\special{pa 116 -43}\special{pa 141 -63}\special{pa 167 -89}\special{pa 193 -118}%
-\special{pa 219 -152}\special{pa 244 -189}\special{pa 270 -231}\special{pa 296 -278}%
-\special{pa 315 -315}%
-\special{fp}%
-\special{pa -630 0}\special{pa 630 0}%
-\special{fp}%
-\special{pa 0 157}\special{pa 0 -945}%
-\special{fp}%
-\settowidth{\Width}{$x$}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{$x$}\settodepth{\Depth}{$x$}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(2.0500,0.0000){\hspace*{\Width}\raisebox{\Height}{$x$}}%
-%
-%
-\settowidth{\Width}{$y$}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{$y$}\settodepth{\Depth}{$y$}\setlength{\Height}{\Depth}%
-\put(0.0000,3.0500){\hspace*{\Width}\raisebox{\Height}{$y$}}%
-%
-%
-\settowidth{\Width}{O}\setlength{\Width}{-1\Width}%
-\settoheight{\Height}{O}\settodepth{\Depth}{O}\setlength{\Height}{-\Height}%
-\put(-0.0500,-0.0500){\hspace*{\Width}\raisebox{\Height}{O}}%
-%
-%
-\end{picture}}% \ No newline at end of file
diff --git a/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/partcrv2.tex b/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/partcrv2.tex
deleted file mode 100644
index 8d63f6a5..00000000
--- a/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/partcrv2.tex
+++ /dev/null
@@ -1,69 +0,0 @@
-%%% partcrv2.tex 2014-11-9 0:37
-%%% partcrv.sce 2014-11-9 0:30
-{\unitlength=0.8cm%
-\begin{picture}%
-( 4.00000, 3.50000)( -2.00000, -0.50000)%
-\special{pn 8}%
-%
-\special{pn 8}%
-\special{pa -547 -949}\special{pa -544 -941}\special{fp}\special{pa -536 -911}\special{pa -533 -903}\special{fp}%
-\special{pa -524 -873}\special{pa -522 -866}\special{fp}\special{pa -513 -836}\special{pa -511 -828}\special{fp}%
-\special{pa -501 -798}\special{pa -499 -791}\special{fp}\special{pa -489 -761}\special{pa -487 -754}\special{fp}%
-\special{pa -477 -724}\special{pa -475 -716}\special{fp}\special{pa -465 -687}\special{pa -462 -679}\special{fp}%
-\special{pa -452 -650}\special{pa -450 -642}\special{fp}\special{pa -439 -613}\special{pa -436 -605}\special{fp}%
-\special{pa -426 -576}\special{pa -423 -568}\special{fp}\special{pa -412 -539}\special{pa -409 -532}\special{fp}%
-\special{pa -398 -502}\special{pa -395 -495}\special{fp}\special{pa -383 -466}\special{pa -380 -459}\special{fp}%
-\special{pa -368 -430}\special{pa -365 -423}\special{fp}\special{pa -352 -394}\special{pa -349 -387}\special{fp}%
-\special{pa -336 -358}\special{pa -332 -351}\special{fp}\special{pa -319 -323}\special{pa -315 -316}\special{fp}%
-\special{pa -301 -288}\special{pa -297 -281}\special{fp}\special{pa -282 -254}\special{pa -278 -247}\special{fp}%
-\special{pa -263 -220}\special{pa -259 -213}\special{fp}\special{pa -242 -186}\special{pa -238 -180}\special{fp}%
-\special{pa -220 -154}\special{pa -215 -147}\special{fp}\special{pa -196 -123}\special{pa -191 -116}\special{fp}%
-\special{pa -171 -93}\special{pa -165 -87}\special{fp}\special{pa -143 -65}\special{pa -137 -60}\special{fp}%
-\special{pa -113 -41}\special{pa -106 -36}\special{fp}\special{pa -79 -20}\special{pa -72 -17}\special{fp}%
-\special{pa -43 -6}\special{pa -35 -4}\special{fp}\special{pa -4 -1}\special{pa 4 -1}\special{fp}%
-\special{pa 35 -4}\special{pa 43 -6}\special{fp}\special{pa 72 -17}\special{pa 79 -20}\special{fp}%
-\special{pa 106 -36}\special{pa 113 -41}\special{fp}\special{pa 137 -60}\special{pa 143 -65}\special{fp}%
-\special{pa 165 -87}\special{pa 171 -93}\special{fp}\special{pa 191 -116}\special{pa 196 -123}\special{fp}%
-\special{pa 215 -147}\special{pa 220 -154}\special{fp}\special{pa 238 -180}\special{pa 242 -186}\special{fp}%
-\special{pa 259 -213}\special{pa 263 -220}\special{fp}\special{pa 278 -247}\special{pa 282 -254}\special{fp}%
-\special{pa 297 -281}\special{pa 301 -288}\special{fp}\special{pa 315 -316}\special{pa 319 -323}\special{fp}%
-\special{pa 332 -351}\special{pa 336 -358}\special{fp}\special{pa 349 -387}\special{pa 352 -394}\special{fp}%
-\special{pa 365 -423}\special{pa 368 -430}\special{fp}\special{pa 380 -459}\special{pa 383 -466}\special{fp}%
-\special{pa 395 -495}\special{pa 398 -502}\special{fp}\special{pa 409 -532}\special{pa 412 -539}\special{fp}%
-\special{pa 423 -568}\special{pa 426 -576}\special{fp}\special{pa 436 -605}\special{pa 439 -613}\special{fp}%
-\special{pa 450 -642}\special{pa 452 -650}\special{fp}\special{pa 462 -679}\special{pa 465 -687}\special{fp}%
-\special{pa 475 -716}\special{pa 477 -724}\special{fp}\special{pa 487 -754}\special{pa 489 -761}\special{fp}%
-\special{pa 499 -791}\special{pa 501 -798}\special{fp}\special{pa 511 -828}\special{pa 513 -836}\special{fp}%
-\special{pa 522 -866}\special{pa 524 -873}\special{fp}\special{pa 533 -903}\special{pa 536 -911}\special{fp}%
-\special{pa 544 -941}\special{pa 547 -949}\special{fp}\special{pn 8}%
-\special{pa 315 -315}\special{pa 321 -328}\special{pa 347 -383}\special{pa 373 -441}%
-\special{pa 399 -504}\special{pa 424 -571}\special{pa 450 -643}\special{pa 476 -718}%
-\special{pa 501 -798}\special{pa 527 -882}\special{pa 545 -945}%
-\special{fp}%
-\special{pa -545 -945}\special{pa -527 -882}\special{pa -501 -798}\special{pa -476 -718}%
-\special{pa -450 -643}\special{pa -424 -571}\special{pa -399 -504}\special{pa -373 -441}%
-\special{pa -347 -383}\special{pa -321 -328}\special{pa -296 -278}\special{pa -270 -231}%
-\special{pa -244 -189}\special{pa -219 -152}\special{pa -193 -118}\special{pa -167 -89}%
-\special{pa -141 -63}\special{pa -116 -43}\special{pa -90 -26}\special{pa -64 -13}%
-\special{pa -39 -5}\special{pa -13 -1}\special{pa 0 -1}%
-\special{fp}%
-\special{pa -630 0}\special{pa 630 0}%
-\special{fp}%
-\special{pa 0 157}\special{pa 0 -945}%
-\special{fp}%
-\settowidth{\Width}{$x$}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{$x$}\settodepth{\Depth}{$x$}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(2.0500,0.0000){\hspace*{\Width}\raisebox{\Height}{$x$}}%
-%
-%
-\settowidth{\Width}{$y$}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{$y$}\settodepth{\Depth}{$y$}\setlength{\Height}{\Depth}%
-\put(0.0000,3.0500){\hspace*{\Width}\raisebox{\Height}{$y$}}%
-%
-%
-\settowidth{\Width}{O}\setlength{\Width}{-1\Width}%
-\settoheight{\Height}{O}\settodepth{\Depth}{O}\setlength{\Height}{-\Height}%
-\put(-0.0500,-0.0500){\hspace*{\Width}\raisebox{\Height}{O}}%
-%
-%
-\end{picture}}% \ No newline at end of file
diff --git a/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/partcrv3.tex b/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/partcrv3.tex
deleted file mode 100644
index b8a51a97..00000000
--- a/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/partcrv3.tex
+++ /dev/null
@@ -1,134 +0,0 @@
-%%% partcrv3.tex 2014-11-9 0:37
-%%% partcrv.sce 2014-11-9 0:30
-{\unitlength=0.7cm%
-\begin{picture}%
-( 7.00000, 5.50000)( -3.00000, -0.50000)%
-\special{pn 8}%
-%
-\special{pn 8}%
-\special{pa 1032 -547}\special{pa 1032 -555}\special{fp}\special{pa 1030 -586}\special{pa 1029 -594}\special{fp}%
-\special{pa 1025 -625}\special{pa 1024 -633}\special{fp}\special{pa 1018 -664}\special{pa 1016 -672}\special{fp}%
-\special{pa 1007 -701}\special{pa 1004 -709}\special{fp}\special{pa 993 -738}\special{pa 990 -745}\special{fp}%
-\special{pa 977 -774}\special{pa 973 -781}\special{fp}\special{pa 957 -807}\special{pa 953 -814}\special{fp}%
-\special{pa 935 -840}\special{pa 930 -846}\special{fp}\special{pa 910 -870}\special{pa 905 -876}\special{fp}%
-\special{pa 883 -898}\special{pa 877 -903}\special{fp}\special{pa 854 -924}\special{pa 848 -929}\special{fp}%
-\special{pa 822 -948}\special{pa 816 -952}\special{fp}\special{pa 789 -968}\special{pa 782 -972}\special{fp}%
-\special{pa 754 -987}\special{pa 747 -990}\special{fp}\special{pa 718 -1001}\special{pa 711 -1004}\special{fp}%
-\special{pa 681 -1013}\special{pa 673 -1015}\special{fp}\special{pa 643 -1023}\special{pa 635 -1024}\special{fp}%
-\special{pa 604 -1028}\special{pa 596 -1029}\special{fp}\special{pa 565 -1031}\special{pa 557 -1031}\special{fp}%
-\special{pa 526 -1031}\special{pa 518 -1031}\special{fp}\special{pa 487 -1027}\special{pa 479 -1026}\special{fp}%
-\special{pa 448 -1020}\special{pa 440 -1018}\special{fp}\special{pa 410 -1011}\special{pa 403 -1008}\special{fp}%
-\special{pa 374 -997}\special{pa 366 -994}\special{fp}\special{pa 338 -981}\special{pa 331 -978}\special{fp}%
-\special{pa 303 -963}\special{pa 296 -958}\special{fp}\special{pa 271 -941}\special{pa 264 -936}\special{fp}%
-\special{pa 240 -917}\special{pa 234 -912}\special{fp}\special{pa 211 -890}\special{pa 205 -884}\special{fp}%
-\special{pa 185 -861}\special{pa 180 -855}\special{fp}\special{pa 160 -830}\special{pa 156 -824}\special{fp}%
-\special{pa 139 -798}\special{pa 135 -791}\special{fp}\special{pa 121 -763}\special{pa 117 -756}\special{fp}%
-\special{pa 104 -727}\special{pa 101 -720}\special{fp}\special{pa 92 -690}\special{pa 90 -683}\special{fp}%
-\special{pa 82 -652}\special{pa 80 -644}\special{fp}\special{pa 75 -614}\special{pa 74 -606}\special{fp}%
-\special{pa 72 -575}\special{pa 72 -567}\special{fp}\special{pa 72 -536}\special{pa 72 -528}\special{fp}%
-\special{pa 74 -496}\special{pa 75 -489}\special{fp}\special{pa 80 -458}\special{pa 82 -450}\special{fp}%
-\special{pa 90 -420}\special{pa 92 -412}\special{fp}\special{pa 101 -382}\special{pa 104 -375}\special{fp}%
-\special{pa 117 -347}\special{pa 121 -339}\special{fp}\special{pa 135 -312}\special{pa 139 -305}\special{fp}%
-\special{pa 156 -278}\special{pa 160 -272}\special{fp}\special{pa 180 -247}\special{pa 185 -241}\special{fp}%
-\special{pa 205 -218}\special{pa 211 -212}\special{fp}\special{pa 234 -191}\special{pa 240 -186}\special{fp}%
-\special{pa 264 -167}\special{pa 271 -162}\special{fp}\special{pa 296 -144}\special{pa 303 -140}\special{fp}%
-\special{pa 331 -125}\special{pa 338 -121}\special{fp}\special{pa 366 -108}\special{pa 374 -105}\special{fp}%
-\special{pa 403 -94}\special{pa 410 -92}\special{fp}\special{pa 440 -84}\special{pa 448 -82}\special{fp}%
-\special{pa 479 -77}\special{pa 487 -76}\special{fp}\special{pa 518 -72}\special{pa 526 -71}\special{fp}%
-\special{pa 557 -71}\special{pa 565 -71}\special{fp}\special{pa 596 -73}\special{pa 604 -74}\special{fp}%
-\special{pa 635 -78}\special{pa 643 -79}\special{fp}\special{pa 673 -87}\special{pa 681 -89}\special{fp}%
-\special{pa 711 -98}\special{pa 718 -101}\special{fp}\special{pa 747 -112}\special{pa 754 -116}\special{fp}%
-\special{pa 782 -130}\special{pa 789 -134}\special{fp}\special{pa 816 -150}\special{pa 822 -155}\special{fp}%
-\special{pa 848 -173}\special{pa 854 -178}\special{fp}\special{pa 877 -199}\special{pa 883 -204}\special{fp}%
-\special{pa 905 -226}\special{pa 910 -232}\special{fp}\special{pa 930 -256}\special{pa 935 -263}\special{fp}%
-\special{pa 953 -288}\special{pa 957 -295}\special{fp}\special{pa 973 -322}\special{pa 977 -329}\special{fp}%
-\special{pa 990 -357}\special{pa 993 -364}\special{fp}\special{pa 1004 -394}\special{pa 1007 -401}\special{fp}%
-\special{pa 1016 -431}\special{pa 1018 -439}\special{fp}\special{pa 1024 -469}\special{pa 1025 -477}\special{fp}%
-\special{pa 1029 -508}\special{pa 1030 -516}\special{fp}\special{pa 1032 -547}\special{pa 1032 -555}\special{fp}%
-\special{pn 8}%
-\special{pn 8}%
-\special{pa -617 -1382}\special{pa -615 -1374}\special{fp}\special{pa -608 -1343}\special{pa -606 -1335}\special{fp}%
-\special{pa -599 -1305}\special{pa -598 -1297}\special{fp}\special{pa -591 -1266}\special{pa -589 -1258}\special{fp}%
-\special{pa -581 -1228}\special{pa -580 -1220}\special{fp}\special{pa -572 -1189}\special{pa -570 -1181}\special{fp}%
-\special{pa -563 -1151}\special{pa -561 -1143}\special{fp}\special{pa -554 -1112}\special{pa -552 -1104}\special{fp}%
-\special{pa -544 -1074}\special{pa -542 -1066}\special{fp}\special{pa -534 -1035}\special{pa -532 -1028}\special{fp}%
-\special{pa -524 -997}\special{pa -522 -989}\special{fp}\special{pa -514 -959}\special{pa -512 -951}\special{fp}%
-\special{pa -503 -921}\special{pa -501 -913}\special{fp}\special{pa -493 -883}\special{pa -491 -875}\special{fp}%
-\special{pa -482 -844}\special{pa -480 -837}\special{fp}\special{pa -471 -806}\special{pa -469 -799}\special{fp}%
-\special{pa -460 -769}\special{pa -458 -761}\special{fp}\special{pa -448 -731}\special{pa -446 -723}\special{fp}%
-\special{pa -437 -693}\special{pa -434 -685}\special{fp}\special{pa -425 -655}\special{pa -422 -648}\special{fp}%
-\special{pa -412 -618}\special{pa -410 -610}\special{fp}\special{pa -400 -580}\special{pa -397 -573}\special{fp}%
-\special{pa -386 -543}\special{pa -384 -535}\special{fp}\special{pa -373 -506}\special{pa -370 -498}\special{fp}%
-\special{pa -359 -468}\special{pa -356 -461}\special{fp}\special{pa -344 -432}\special{pa -341 -424}\special{fp}%
-\special{pa -329 -395}\special{pa -326 -388}\special{fp}\special{pa -314 -359}\special{pa -311 -351}\special{fp}%
-\special{pa -298 -323}\special{pa -294 -315}\special{fp}\special{pa -281 -287}\special{pa -277 -280}\special{fp}%
-\special{pa -263 -252}\special{pa -259 -245}\special{fp}\special{pa -244 -217}\special{pa -240 -210}\special{fp}%
-\special{pa -224 -183}\special{pa -219 -176}\special{fp}\special{pa -203 -149}\special{pa -198 -143}\special{fp}%
-\special{pa -179 -118}\special{pa -174 -111}\special{fp}\special{pa -154 -87}\special{pa -149 -81}\special{fp}%
-\special{pa -126 -59}\special{pa -120 -53}\special{fp}\special{pa -95 -34}\special{pa -89 -30}\special{fp}%
-\special{pa -61 -15}\special{pa -54 -12}\special{fp}\special{pa -24 -3}\special{pa -16 -2}\special{fp}%
-\special{pa 16 -2}\special{pa 24 -3}\special{fp}\special{pa 54 -12}\special{pa 61 -15}\special{fp}%
-\special{pa 89 -30}\special{pa 95 -34}\special{fp}\special{pa 120 -53}\special{pa 126 -59}\special{fp}%
-\special{pa 149 -81}\special{pa 154 -87}\special{fp}\special{pa 174 -111}\special{pa 179 -118}\special{fp}%
-\special{pa 198 -143}\special{pa 203 -149}\special{fp}\special{pa 219 -176}\special{pa 224 -183}\special{fp}%
-\special{pa 240 -210}\special{pa 244 -217}\special{fp}\special{pa 259 -245}\special{pa 263 -252}\special{fp}%
-\special{pa 277 -280}\special{pa 281 -287}\special{fp}\special{pa 294 -315}\special{pa 298 -323}\special{fp}%
-\special{pa 311 -351}\special{pa 314 -359}\special{fp}\special{pa 326 -388}\special{pa 329 -395}\special{fp}%
-\special{pa 341 -424}\special{pa 344 -432}\special{fp}\special{pa 356 -461}\special{pa 359 -468}\special{fp}%
-\special{pa 370 -498}\special{pa 373 -506}\special{fp}\special{pa 384 -535}\special{pa 386 -543}\special{fp}%
-\special{pa 397 -573}\special{pa 400 -580}\special{fp}\special{pa 410 -610}\special{pa 412 -618}\special{fp}%
-\special{pa 422 -648}\special{pa 425 -655}\special{fp}\special{pa 434 -685}\special{pa 437 -693}\special{fp}%
-\special{pa 446 -723}\special{pa 448 -731}\special{fp}\special{pa 458 -761}\special{pa 460 -769}\special{fp}%
-\special{pa 469 -799}\special{pa 471 -806}\special{fp}\special{pa 480 -837}\special{pa 482 -844}\special{fp}%
-\special{pa 491 -875}\special{pa 493 -883}\special{fp}\special{pa 501 -913}\special{pa 503 -921}\special{fp}%
-\special{pa 512 -951}\special{pa 514 -959}\special{fp}\special{pa 522 -989}\special{pa 524 -997}\special{fp}%
-\special{pa 532 -1028}\special{pa 534 -1035}\special{fp}\special{pa 542 -1066}\special{pa 544 -1074}\special{fp}%
-\special{pa 552 -1104}\special{pa 554 -1112}\special{fp}\special{pa 561 -1143}\special{pa 563 -1151}\special{fp}%
-\special{pa 570 -1181}\special{pa 572 -1189}\special{fp}\special{pa 580 -1220}\special{pa 581 -1228}\special{fp}%
-\special{pa 589 -1258}\special{pa 591 -1266}\special{fp}\special{pa 598 -1297}\special{pa 599 -1305}\special{fp}%
-\special{pa 606 -1335}\special{pa 608 -1343}\special{fp}\special{pa 615 -1374}\special{pa 617 -1382}\special{fp}%
-\special{pn 8}%
-\special{pa 543 -1042}\special{pa 536 -1046}\special{pa 528 -1046}\special{pa 521 -1042}%
-\special{pa 517 -1035}\special{pa 517 -1027}\special{pa 521 -1020}\special{pa 528 -1015}%
-\special{pa 536 -1015}\special{pa 543 -1020}\special{pa 547 -1027}\special{pa 547 -1035}%
-\special{pa 543 -1042}\special{sh 1}\special{fp}%
-\special{pa 243 -207}\special{pa 236 -211}\special{pa 227 -211}\special{pa 220 -207}%
-\special{pa 216 -200}\special{pa 216 -192}\special{pa 220 -185}\special{pa 227 -180}%
-\special{pa 236 -180}\special{pa 243 -185}\special{pa 247 -192}\special{pa 247 -200}%
-\special{pa 243 -207}\special{sh 1}\special{fp}%
-\settowidth{\Width}{P}\setlength{\Width}{-1\Width}%
-\settoheight{\Height}{P}\settodepth{\Depth}{P}\setlength{\Height}{\Depth}%
-\put(1.8800,3.7900){\hspace*{\Width}\raisebox{\Height}{P}}%
-%
-%
-\settowidth{\Width}{Q}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{Q}\settodepth{\Depth}{Q}\setlength{\Height}{-\Height}%
-\put(0.8400,0.6100){\hspace*{\Width}\raisebox{\Height}{Q}}%
-%
-%
-\special{pa 532 -1031}\special{pa 521 -1031}\special{pa 461 -1023}\special{pa 403 -1008}%
-\special{pa 346 -986}\special{pa 294 -957}\special{pa 245 -922}\special{pa 201 -880}%
-\special{pa 162 -834}\special{pa 130 -783}\special{pa 104 -728}\special{pa 86 -671}%
-\special{pa 74 -611}\special{pa 70 -551}\special{pa 74 -491}\special{pa 86 -432}\special{pa 104 -374}%
-\special{pa 130 -320}\special{pa 162 -269}\special{pa 201 -222}\special{pa 230 -194}%
-\special{fp}%
-\special{pa -827 0}\special{pa 1102 0}%
-\special{fp}%
-\special{pa 0 138}\special{pa 0 -1378}%
-\special{fp}%
-\settowidth{\Width}{$x$}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{$x$}\settodepth{\Depth}{$x$}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(4.0500,0.0000){\hspace*{\Width}\raisebox{\Height}{$x$}}%
-%
-%
-\settowidth{\Width}{$y$}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{$y$}\settodepth{\Depth}{$y$}\setlength{\Height}{\Depth}%
-\put(0.0000,5.0500){\hspace*{\Width}\raisebox{\Height}{$y$}}%
-%
-%
-\settowidth{\Width}{O}\setlength{\Width}{-1\Width}%
-\settoheight{\Height}{O}\settodepth{\Depth}{O}\setlength{\Height}{-\Height}%
-\put(-0.0500,-0.0500){\hspace*{\Width}\raisebox{\Height}{O}}%
-%
-%
-\end{picture}}% \ No newline at end of file
diff --git a/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/partcrv4.tex b/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/partcrv4.tex
deleted file mode 100644
index cc26e478..00000000
--- a/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/partcrv4.tex
+++ /dev/null
@@ -1,137 +0,0 @@
-%%% partcrv4.tex 2014-11-9 0:37
-%%% partcrv.sce 2014-11-9 0:30
-{\unitlength=0.7cm%
-\begin{picture}%
-( 7.00000, 5.50000)( -3.00000, -0.50000)%
-\special{pn 8}%
-%
-\special{pn 8}%
-\special{pa 1032 -547}\special{pa 1032 -555}\special{fp}\special{pa 1030 -586}\special{pa 1029 -594}\special{fp}%
-\special{pa 1025 -625}\special{pa 1024 -633}\special{fp}\special{pa 1018 -664}\special{pa 1016 -672}\special{fp}%
-\special{pa 1007 -701}\special{pa 1004 -709}\special{fp}\special{pa 993 -738}\special{pa 990 -745}\special{fp}%
-\special{pa 977 -774}\special{pa 973 -781}\special{fp}\special{pa 957 -807}\special{pa 953 -814}\special{fp}%
-\special{pa 935 -840}\special{pa 930 -846}\special{fp}\special{pa 910 -870}\special{pa 905 -876}\special{fp}%
-\special{pa 883 -898}\special{pa 877 -903}\special{fp}\special{pa 854 -924}\special{pa 848 -929}\special{fp}%
-\special{pa 822 -948}\special{pa 816 -952}\special{fp}\special{pa 789 -968}\special{pa 782 -972}\special{fp}%
-\special{pa 754 -987}\special{pa 747 -990}\special{fp}\special{pa 718 -1001}\special{pa 711 -1004}\special{fp}%
-\special{pa 681 -1013}\special{pa 673 -1015}\special{fp}\special{pa 643 -1023}\special{pa 635 -1024}\special{fp}%
-\special{pa 604 -1028}\special{pa 596 -1029}\special{fp}\special{pa 565 -1031}\special{pa 557 -1031}\special{fp}%
-\special{pa 526 -1031}\special{pa 518 -1031}\special{fp}\special{pa 487 -1027}\special{pa 479 -1026}\special{fp}%
-\special{pa 448 -1020}\special{pa 440 -1018}\special{fp}\special{pa 410 -1011}\special{pa 403 -1008}\special{fp}%
-\special{pa 374 -997}\special{pa 366 -994}\special{fp}\special{pa 338 -981}\special{pa 331 -978}\special{fp}%
-\special{pa 303 -963}\special{pa 296 -958}\special{fp}\special{pa 271 -941}\special{pa 264 -936}\special{fp}%
-\special{pa 240 -917}\special{pa 234 -912}\special{fp}\special{pa 211 -890}\special{pa 205 -884}\special{fp}%
-\special{pa 185 -861}\special{pa 180 -855}\special{fp}\special{pa 160 -830}\special{pa 156 -824}\special{fp}%
-\special{pa 139 -798}\special{pa 135 -791}\special{fp}\special{pa 121 -763}\special{pa 117 -756}\special{fp}%
-\special{pa 104 -727}\special{pa 101 -720}\special{fp}\special{pa 92 -690}\special{pa 90 -683}\special{fp}%
-\special{pa 82 -652}\special{pa 80 -644}\special{fp}\special{pa 75 -614}\special{pa 74 -606}\special{fp}%
-\special{pa 72 -575}\special{pa 72 -567}\special{fp}\special{pa 72 -536}\special{pa 72 -528}\special{fp}%
-\special{pa 74 -496}\special{pa 75 -489}\special{fp}\special{pa 80 -458}\special{pa 82 -450}\special{fp}%
-\special{pa 90 -420}\special{pa 92 -412}\special{fp}\special{pa 101 -382}\special{pa 104 -375}\special{fp}%
-\special{pa 117 -347}\special{pa 121 -339}\special{fp}\special{pa 135 -312}\special{pa 139 -305}\special{fp}%
-\special{pa 156 -278}\special{pa 160 -272}\special{fp}\special{pa 180 -247}\special{pa 185 -241}\special{fp}%
-\special{pa 205 -218}\special{pa 211 -212}\special{fp}\special{pa 234 -191}\special{pa 240 -186}\special{fp}%
-\special{pa 264 -167}\special{pa 271 -162}\special{fp}\special{pa 296 -144}\special{pa 303 -140}\special{fp}%
-\special{pa 331 -125}\special{pa 338 -121}\special{fp}\special{pa 366 -108}\special{pa 374 -105}\special{fp}%
-\special{pa 403 -94}\special{pa 410 -92}\special{fp}\special{pa 440 -84}\special{pa 448 -82}\special{fp}%
-\special{pa 479 -77}\special{pa 487 -76}\special{fp}\special{pa 518 -72}\special{pa 526 -71}\special{fp}%
-\special{pa 557 -71}\special{pa 565 -71}\special{fp}\special{pa 596 -73}\special{pa 604 -74}\special{fp}%
-\special{pa 635 -78}\special{pa 643 -79}\special{fp}\special{pa 673 -87}\special{pa 681 -89}\special{fp}%
-\special{pa 711 -98}\special{pa 718 -101}\special{fp}\special{pa 747 -112}\special{pa 754 -116}\special{fp}%
-\special{pa 782 -130}\special{pa 789 -134}\special{fp}\special{pa 816 -150}\special{pa 822 -155}\special{fp}%
-\special{pa 848 -173}\special{pa 854 -178}\special{fp}\special{pa 877 -199}\special{pa 883 -204}\special{fp}%
-\special{pa 905 -226}\special{pa 910 -232}\special{fp}\special{pa 930 -256}\special{pa 935 -263}\special{fp}%
-\special{pa 953 -288}\special{pa 957 -295}\special{fp}\special{pa 973 -322}\special{pa 977 -329}\special{fp}%
-\special{pa 990 -357}\special{pa 993 -364}\special{fp}\special{pa 1004 -394}\special{pa 1007 -401}\special{fp}%
-\special{pa 1016 -431}\special{pa 1018 -439}\special{fp}\special{pa 1024 -469}\special{pa 1025 -477}\special{fp}%
-\special{pa 1029 -508}\special{pa 1030 -516}\special{fp}\special{pa 1032 -547}\special{pa 1032 -555}\special{fp}%
-\special{pn 8}%
-\special{pn 8}%
-\special{pa -617 -1382}\special{pa -615 -1374}\special{fp}\special{pa -608 -1343}\special{pa -606 -1335}\special{fp}%
-\special{pa -599 -1305}\special{pa -598 -1297}\special{fp}\special{pa -591 -1266}\special{pa -589 -1258}\special{fp}%
-\special{pa -581 -1228}\special{pa -580 -1220}\special{fp}\special{pa -572 -1189}\special{pa -570 -1181}\special{fp}%
-\special{pa -563 -1151}\special{pa -561 -1143}\special{fp}\special{pa -554 -1112}\special{pa -552 -1104}\special{fp}%
-\special{pa -544 -1074}\special{pa -542 -1066}\special{fp}\special{pa -534 -1035}\special{pa -532 -1028}\special{fp}%
-\special{pa -524 -997}\special{pa -522 -989}\special{fp}\special{pa -514 -959}\special{pa -512 -951}\special{fp}%
-\special{pa -503 -921}\special{pa -501 -913}\special{fp}\special{pa -493 -883}\special{pa -491 -875}\special{fp}%
-\special{pa -482 -844}\special{pa -480 -837}\special{fp}\special{pa -471 -806}\special{pa -469 -799}\special{fp}%
-\special{pa -460 -769}\special{pa -458 -761}\special{fp}\special{pa -448 -731}\special{pa -446 -723}\special{fp}%
-\special{pa -437 -693}\special{pa -434 -685}\special{fp}\special{pa -425 -655}\special{pa -422 -648}\special{fp}%
-\special{pa -412 -618}\special{pa -410 -610}\special{fp}\special{pa -400 -580}\special{pa -397 -573}\special{fp}%
-\special{pa -386 -543}\special{pa -384 -535}\special{fp}\special{pa -373 -506}\special{pa -370 -498}\special{fp}%
-\special{pa -359 -468}\special{pa -356 -461}\special{fp}\special{pa -344 -432}\special{pa -341 -424}\special{fp}%
-\special{pa -329 -395}\special{pa -326 -388}\special{fp}\special{pa -314 -359}\special{pa -311 -351}\special{fp}%
-\special{pa -298 -323}\special{pa -294 -315}\special{fp}\special{pa -281 -287}\special{pa -277 -280}\special{fp}%
-\special{pa -263 -252}\special{pa -259 -245}\special{fp}\special{pa -244 -217}\special{pa -240 -210}\special{fp}%
-\special{pa -224 -183}\special{pa -219 -176}\special{fp}\special{pa -203 -149}\special{pa -198 -143}\special{fp}%
-\special{pa -179 -118}\special{pa -174 -111}\special{fp}\special{pa -154 -87}\special{pa -149 -81}\special{fp}%
-\special{pa -126 -59}\special{pa -120 -53}\special{fp}\special{pa -95 -34}\special{pa -89 -30}\special{fp}%
-\special{pa -61 -15}\special{pa -54 -12}\special{fp}\special{pa -24 -3}\special{pa -16 -2}\special{fp}%
-\special{pa 16 -2}\special{pa 24 -3}\special{fp}\special{pa 54 -12}\special{pa 61 -15}\special{fp}%
-\special{pa 89 -30}\special{pa 95 -34}\special{fp}\special{pa 120 -53}\special{pa 126 -59}\special{fp}%
-\special{pa 149 -81}\special{pa 154 -87}\special{fp}\special{pa 174 -111}\special{pa 179 -118}\special{fp}%
-\special{pa 198 -143}\special{pa 203 -149}\special{fp}\special{pa 219 -176}\special{pa 224 -183}\special{fp}%
-\special{pa 240 -210}\special{pa 244 -217}\special{fp}\special{pa 259 -245}\special{pa 263 -252}\special{fp}%
-\special{pa 277 -280}\special{pa 281 -287}\special{fp}\special{pa 294 -315}\special{pa 298 -323}\special{fp}%
-\special{pa 311 -351}\special{pa 314 -359}\special{fp}\special{pa 326 -388}\special{pa 329 -395}\special{fp}%
-\special{pa 341 -424}\special{pa 344 -432}\special{fp}\special{pa 356 -461}\special{pa 359 -468}\special{fp}%
-\special{pa 370 -498}\special{pa 373 -506}\special{fp}\special{pa 384 -535}\special{pa 386 -543}\special{fp}%
-\special{pa 397 -573}\special{pa 400 -580}\special{fp}\special{pa 410 -610}\special{pa 412 -618}\special{fp}%
-\special{pa 422 -648}\special{pa 425 -655}\special{fp}\special{pa 434 -685}\special{pa 437 -693}\special{fp}%
-\special{pa 446 -723}\special{pa 448 -731}\special{fp}\special{pa 458 -761}\special{pa 460 -769}\special{fp}%
-\special{pa 469 -799}\special{pa 471 -806}\special{fp}\special{pa 480 -837}\special{pa 482 -844}\special{fp}%
-\special{pa 491 -875}\special{pa 493 -883}\special{fp}\special{pa 501 -913}\special{pa 503 -921}\special{fp}%
-\special{pa 512 -951}\special{pa 514 -959}\special{fp}\special{pa 522 -989}\special{pa 524 -997}\special{fp}%
-\special{pa 532 -1028}\special{pa 534 -1035}\special{fp}\special{pa 542 -1066}\special{pa 544 -1074}\special{fp}%
-\special{pa 552 -1104}\special{pa 554 -1112}\special{fp}\special{pa 561 -1143}\special{pa 563 -1151}\special{fp}%
-\special{pa 570 -1181}\special{pa 572 -1189}\special{fp}\special{pa 580 -1220}\special{pa 581 -1228}\special{fp}%
-\special{pa 589 -1258}\special{pa 591 -1266}\special{fp}\special{pa 598 -1297}\special{pa 599 -1305}\special{fp}%
-\special{pa 606 -1335}\special{pa 608 -1343}\special{fp}\special{pa 615 -1374}\special{pa 617 -1382}\special{fp}%
-\special{pn 8}%
-\special{pa 543 -1042}\special{pa 536 -1046}\special{pa 528 -1046}\special{pa 521 -1042}%
-\special{pa 517 -1035}\special{pa 517 -1027}\special{pa 521 -1020}\special{pa 528 -1015}%
-\special{pa 536 -1015}\special{pa 543 -1020}\special{pa 547 -1027}\special{pa 547 -1035}%
-\special{pa 543 -1042}\special{sh 1}\special{fp}%
-\special{pa 243 -207}\special{pa 236 -211}\special{pa 227 -211}\special{pa 220 -207}%
-\special{pa 216 -200}\special{pa 216 -192}\special{pa 220 -185}\special{pa 227 -180}%
-\special{pa 236 -180}\special{pa 243 -185}\special{pa 247 -192}\special{pa 247 -200}%
-\special{pa 243 -207}\special{sh 1}\special{fp}%
-\settowidth{\Width}{P}\setlength{\Width}{-1\Width}%
-\settoheight{\Height}{P}\settodepth{\Depth}{P}\setlength{\Height}{\Depth}%
-\put(1.8800,3.7900){\hspace*{\Width}\raisebox{\Height}{P}}%
-%
-%
-\settowidth{\Width}{Q}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{Q}\settodepth{\Depth}{Q}\setlength{\Height}{-\Height}%
-\put(0.8400,0.6100){\hspace*{\Width}\raisebox{\Height}{Q}}%
-%
-%
-\special{pa 230 -194}\special{pa 245 -181}\special{pa 294 -145}\special{pa 346 -116}%
-\special{pa 403 -94}\special{pa 461 -79}\special{pa 521 -71}\special{pa 581 -71}\special{pa 641 -79}%
-\special{pa 700 -94}\special{pa 756 -116}\special{pa 809 -145}\special{pa 858 -181}%
-\special{pa 902 -222}\special{pa 940 -269}\special{pa 972 -320}\special{pa 998 -374}%
-\special{pa 1017 -432}\special{pa 1028 -491}\special{pa 1032 -551}\special{pa 1028 -611}%
-\special{pa 1017 -671}\special{pa 998 -728}\special{pa 972 -783}\special{pa 940 -834}%
-\special{pa 902 -880}\special{pa 858 -922}\special{pa 809 -957}\special{pa 756 -986}%
-\special{pa 700 -1008}\special{pa 641 -1023}\special{pa 581 -1031}\special{pa 532 -1031}%
-\special{fp}%
-\special{pa -827 0}\special{pa 1102 0}%
-\special{fp}%
-\special{pa 0 138}\special{pa 0 -1378}%
-\special{fp}%
-\settowidth{\Width}{$x$}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{$x$}\settodepth{\Depth}{$x$}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(4.0500,0.0000){\hspace*{\Width}\raisebox{\Height}{$x$}}%
-%
-%
-\settowidth{\Width}{$y$}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{$y$}\settodepth{\Depth}{$y$}\setlength{\Height}{\Depth}%
-\put(0.0000,5.0500){\hspace*{\Width}\raisebox{\Height}{$y$}}%
-%
-%
-\settowidth{\Width}{O}\setlength{\Width}{-1\Width}%
-\settoheight{\Height}{O}\settodepth{\Depth}{O}\setlength{\Height}{-\Height}%
-\put(-0.0500,-0.0500){\hspace*{\Width}\raisebox{\Height}{O}}%
-%
-%
-\end{picture}}% \ No newline at end of file
diff --git a/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/plotdata1.tex b/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/plotdata1.tex
deleted file mode 100644
index 11b65ed1..00000000
--- a/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/plotdata1.tex
+++ /dev/null
@@ -1,37 +0,0 @@
-%%% test.tex 2014-10-15 15:5
-%%% test.sce 2014-10-15 15:5
-{\unitlength=5mm%
-\begin{picture}%
-( 8.00000, 10.00000)( -3.00000, -2.00000)%
-\special{pn 8}%
-%
-\special{pa -394 -1575}\special{pa -366 -1410}\special{pa -333 -1232}\special{pa -301 -1064}%
-\special{pa -269 -906}\special{pa -237 -759}\special{pa -205 -623}\special{pa -173 -497}%
-\special{pa -141 -382}\special{pa -108 -277}\special{pa -76 -182}\special{pa -44 -98}%
-\special{pa -12 -25}\special{pa 20 38}\special{pa 52 91}\special{pa 84 133}\special{pa 117 164}%
-\special{pa 149 185}\special{pa 181 196}\special{pa 213 196}\special{pa 245 185}\special{pa 277 164}%
-\special{pa 309 133}\special{pa 341 91}\special{pa 374 38}\special{pa 406 -25}\special{pa 438 -98}%
-\special{pa 470 -182}\special{pa 502 -277}\special{pa 534 -382}\special{pa 566 -497}%
-\special{pa 599 -623}\special{pa 631 -759}\special{pa 663 -906}\special{pa 695 -1064}%
-\special{pa 727 -1232}\special{pa 759 -1410}\special{pa 787 -1575}%
-\special{fp}%
-\special{pa -591 0}\special{pa 984 0}%
-\special{fp}%
-\special{pa 0 394}\special{pa 0 -1575}%
-\special{fp}%
-\settowidth{\Width}{$x$}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{$x$}\settodepth{\Depth}{$x$}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(5.0500,0.0000){\hspace*{\Width}\raisebox{\Height}{$x$}}%
-%
-%
-\settowidth{\Width}{$y$}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{$y$}\settodepth{\Depth}{$y$}\setlength{\Height}{\Depth}%
-\put(0.0000,8.0500){\hspace*{\Width}\raisebox{\Height}{$y$}}%
-%
-%
-\settowidth{\Width}{O}\setlength{\Width}{-1\Width}%
-\settoheight{\Height}{O}\settodepth{\Depth}{O}\setlength{\Height}{-\Height}%
-\put(-0.0500,-0.0500){\hspace*{\Width}\raisebox{\Height}{O}}%
-%
-%
-\end{picture}}% \ No newline at end of file
diff --git a/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/plotdata2.tex b/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/plotdata2.tex
deleted file mode 100644
index b65c541f..00000000
--- a/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/plotdata2.tex
+++ /dev/null
@@ -1,40 +0,0 @@
-%%% test.tex 2014-10-15 15:36
-%%% test.sce 2014-10-15 15:35
-{\unitlength=5mm%
-\begin{picture}%
-( 8.13000, 6.16000)( -1.00000, -3.00000)%
-\special{pn 8}%
-%
-\special{pa 0 278}\special{pa 25 199}\special{pa 50 106}\special{pa 76 6}\special{pa 101 -94}%
-\special{pa 126 -188}\special{pa 151 -269}\special{pa 177 -333}\special{pa 202 -376}%
-\special{pa 227 -393}\special{pa 252 -385}\special{pa 278 -352}\special{pa 303 -296}%
-\special{pa 328 -220}\special{pa 353 -130}\special{pa 379 -32}\special{pa 404 69}%
-\special{pa 429 165}\special{pa 454 250}\special{pa 480 319}\special{pa 505 367}\special{pa 530 391}%
-\special{pa 555 390}\special{pa 581 363}\special{pa 606 312}\special{pa 631 241}\special{pa 656 154}%
-\special{pa 682 57}\special{pa 707 -44}\special{pa 732 -142}\special{pa 757 -230}%
-\special{pa 782 -304}\special{pa 808 -357}\special{pa 833 -388}\special{pa 858 -392}%
-\special{pa 883 -372}\special{pa 909 -326}\special{pa 934 -260}\special{pa 959 -176}%
-\special{pa 984 -81}\special{pa 1010 19}\special{pa 1035 118}\special{pa 1060 209}%
-\special{pa 1085 287}\special{pa 1111 346}\special{pa 1136 382}\special{pa 1161 394}%
-\special{pa 1186 379}\special{pa 1212 340}\special{pa 1237 278}%
-\special{fp}%
-\special{pa -197 0}\special{pa 1404 0}%
-\special{fp}%
-\special{pa 0 591}\special{pa 0 -622}%
-\special{fp}%
-\settowidth{\Width}{$x$}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{$x$}\settodepth{\Depth}{$x$}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(7.1800,0.0000){\hspace*{\Width}\raisebox{\Height}{$x$}}%
-%
-%
-\settowidth{\Width}{$y$}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{$y$}\settodepth{\Depth}{$y$}\setlength{\Height}{\Depth}%
-\put(0.0000,3.2100){\hspace*{\Width}\raisebox{\Height}{$y$}}%
-%
-%
-\settowidth{\Width}{O}\setlength{\Width}{-1\Width}%
-\settoheight{\Height}{O}\settodepth{\Depth}{O}\setlength{\Height}{-\Height}%
-\put(-0.0500,-0.0500){\hspace*{\Width}\raisebox{\Height}{O}}%
-%
-%
-\end{picture}}% \ No newline at end of file
diff --git a/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/plotdata3.tex b/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/plotdata3.tex
deleted file mode 100644
index c8c75138..00000000
--- a/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/plotdata3.tex
+++ /dev/null
@@ -1,100 +0,0 @@
-%%% test.tex 2014-10-18 20:29
-%%% test.sce 2014-10-18 20:29
-{\unitlength=5mm%
-\begin{picture}%
-( 7.95000, 5.63000)( -0.50000, -1.50000)%
-\special{pn 8}%
-%
-\special{pn 16}%
-\special{pa -98 -299}\special{pa -66 -328}\special{pa -35 -359}\special{pa -3 -391}%
-\special{pa 29 -423}\special{pa 61 -454}\special{pa 93 -483}\special{pa 125 -511}%
-\special{pa 157 -535}\special{pa 189 -555}\special{pa 221 -571}\special{pa 253 -583}%
-\special{pa 285 -589}\special{pa 317 -590}\special{pa 349 -587}\special{pa 381 -578}%
-\special{pa 413 -564}\special{pa 445 -546}\special{pa 476 -524}\special{pa 508 -498}%
-\special{pa 540 -470}\special{pa 572 -439}\special{pa 604 -408}\special{pa 636 -376}%
-\special{pa 668 -345}\special{pa 700 -314}\special{pa 732 -286}\special{pa 764 -261}%
-\special{pa 796 -239}\special{pa 828 -222}\special{pa 860 -208}\special{pa 892 -200}%
-\special{pa 924 -197}\special{pa 956 -199}\special{pa 987 -206}\special{pa 1019 -218}%
-\special{pa 1051 -234}\special{pa 1083 -255}\special{pa 1115 -280}\special{pa 1147 -307}%
-\special{pa 1179 -337}\special{pa 1211 -368}\special{pa 1243 -400}\special{pa 1275 -432}%
-\special{pa 1307 -462}\special{pa 1339 -491}\special{pa 1371 -517}\special{pa 1403 -541}%
-\special{pa 1435 -560}\special{pa 1467 -575}%
-\special{fp}%
-\special{pn 8}%
-\special{pa -98 -102}\special{pa -70 -128}\special{fp}\special{pa -43 -154}\special{pa -35 -162}\special{pa -16 -181}\special{fp}%
-\special{pa 11 -208}\special{pa 29 -226}\special{pa 38 -234}\special{fp}\special{pa 65 -261}\special{pa 93 -286}\special{fp}%
-\special{pa 122 -311}\special{pa 125 -314}\special{pa 152 -334}\special{fp}\special{pa 184 -355}\special{pa 189 -358}\special{pa 217 -372}\special{fp}%
-\special{pa 253 -386}\special{pa 253 -386}\special{pa 285 -392}\special{pa 290 -392}\special{fp}%
-\special{pa 328 -392}\special{pa 349 -390}\special{pa 365 -385}\special{fp}\special{pa 401 -372}\special{pa 413 -367}\special{pa 434 -355}\special{fp}%
-\special{pa 466 -334}\special{pa 476 -327}\special{pa 496 -311}\special{fp}\special{pa 525 -287}\special{pa 540 -273}\special{pa 553 -261}\special{fp}%
-\special{pa 580 -235}\special{pa 604 -211}\special{pa 607 -208}\special{fp}\special{pa 634 -181}\special{pa 636 -179}\special{pa 661 -155}\special{fp}%
-\special{pa 689 -128}\special{pa 700 -118}\special{pa 717 -103}\special{fp}\special{pa 746 -79}\special{pa 764 -64}\special{pa 776 -56}\special{fp}%
-\special{pa 808 -36}\special{pa 828 -25}\special{pa 842 -19}\special{fp}\special{pa 878 -7}\special{pa 892 -3}\special{pa 915 -1}\special{fp}%
-\special{pa 953 -2}\special{pa 956 -2}\special{pa 987 -9}\special{pa 990 -10}\special{fp}%
-\special{pa 1025 -24}\special{pa 1051 -38}\special{pa 1058 -42}\special{fp}\special{pa 1090 -63}\special{pa 1115 -83}\special{pa 1120 -87}\special{fp}%
-\special{pa 1149 -112}\special{pa 1176 -137}\special{fp}\special{pa 1204 -164}\special{pa 1211 -171}\special{pa 1230 -190}\special{fp}%
-\special{pa 1257 -217}\special{pa 1275 -235}\special{pa 1284 -244}\special{fp}\special{pa 1312 -270}\special{pa 1339 -294}\special{pa 1340 -295}\special{fp}%
-\special{pa 1369 -319}\special{pa 1371 -321}\special{pa 1400 -342}\special{fp}\special{pa 1432 -362}\special{pa 1435 -363}\special{pa 1467 -378}\special{fp}%
-%
-%
-\special{pn 8}%
-\special{pa -101 97}\special{pa -95 92}\special{fp}\special{pa -72 71}\special{pa -66 65}\special{fp}%
-\special{pa -44 43}\special{pa -38 38}\special{fp}\special{pa -16 15}\special{pa -10 10}\special{fp}%
-\special{pa 12 -12}\special{pa 18 -18}\special{fp}\special{pa 41 -40}\special{pa 46 -46}\special{fp}%
-\special{pa 69 -67}\special{pa 75 -73}\special{fp}\special{pa 98 -94}\special{pa 104 -99}\special{fp}%
-\special{pa 128 -119}\special{pa 135 -124}\special{fp}\special{pa 160 -143}\special{pa 167 -147}\special{fp}%
-\special{pa 194 -164}\special{pa 201 -167}\special{fp}\special{pa 229 -180}\special{pa 237 -183}\special{fp}%
-\special{pa 267 -192}\special{pa 275 -193}\special{fp}\special{pa 306 -196}\special{pa 314 -196}\special{fp}%
-\special{pa 345 -193}\special{pa 353 -192}\special{fp}\special{pa 383 -183}\special{pa 391 -180}\special{fp}%
-\special{pa 419 -166}\special{pa 426 -163}\special{fp}\special{pa 453 -146}\special{pa 460 -142}\special{fp}%
-\special{pa 485 -123}\special{pa 491 -118}\special{fp}\special{pa 516 -98}\special{pa 522 -93}\special{fp}%
-\special{pa 545 -72}\special{pa 551 -66}\special{fp}\special{pa 574 -44}\special{pa 579 -39}\special{fp}%
-\special{pa 602 -17}\special{pa 607 -11}\special{fp}\special{pa 630 11}\special{pa 635 17}\special{fp}%
-\special{pa 658 39}\special{pa 663 44}\special{fp}\special{pa 686 66}\special{pa 692 72}\special{fp}%
-\special{pa 715 93}\special{pa 721 98}\special{fp}\special{pa 746 118}\special{pa 752 123}\special{fp}%
-\special{pa 777 142}\special{pa 784 146}\special{fp}\special{pa 811 163}\special{pa 818 166}\special{fp}%
-\special{pa 846 180}\special{pa 854 183}\special{fp}\special{pa 884 192}\special{pa 892 193}\special{fp}%
-\special{pa 923 197}\special{pa 931 197}\special{fp}\special{pa 962 193}\special{pa 970 192}\special{fp}%
-\special{pa 1000 183}\special{pa 1008 180}\special{fp}\special{pa 1036 167}\special{pa 1043 163}\special{fp}%
-\special{pa 1070 147}\special{pa 1077 143}\special{fp}\special{pa 1102 124}\special{pa 1108 119}\special{fp}%
-\special{pa 1133 99}\special{pa 1139 94}\special{fp}\special{pa 1162 73}\special{pa 1168 67}\special{fp}%
-\special{pa 1191 46}\special{pa 1196 40}\special{fp}\special{pa 1219 18}\special{pa 1225 12}\special{fp}%
-\special{pa 1247 -10}\special{pa 1252 -16}\special{fp}\special{pa 1275 -38}\special{pa 1281 -43}\special{fp}%
-\special{pa 1303 -65}\special{pa 1309 -71}\special{fp}\special{pa 1332 -92}\special{pa 1338 -97}\special{fp}%
-\special{pa 1363 -117}\special{pa 1369 -122}\special{fp}\special{pa 1394 -141}\special{pa 1401 -145}\special{fp}%
-\special{pa 1427 -162}\special{pa 1434 -166}\special{fp}\special{pa 1463 -179}\special{pa 1470 -183}\special{fp}%
-\special{pn 8}%
-\special{pa -98 -496}\special{pa -66 -525}\special{pa -35 -556}\special{pa -3 -588}%
-\special{pa 29 -620}\special{pa 61 -651}\special{pa 93 -680}\special{pa 125 -707}%
-\special{pa 157 -731}\special{pa 189 -752}\special{pa 221 -768}\special{pa 253 -779}%
-\special{pa 285 -786}\special{pa 317 -787}\special{pa 349 -783}\special{pa 381 -775}%
-\special{pa 413 -761}\special{pa 445 -743}\special{pa 476 -721}\special{pa 508 -695}%
-\special{pa 540 -667}\special{pa 572 -636}\special{pa 604 -605}\special{pa 636 -573}%
-\special{pa 668 -541}\special{pa 700 -511}\special{pa 732 -483}\special{pa 764 -458}%
-\special{pa 796 -436}\special{pa 828 -418}\special{pa 860 -405}\special{pa 892 -397}%
-\special{pa 924 -394}\special{pa 956 -396}\special{pa 987 -403}\special{pa 1019 -415}%
-\special{pa 1051 -431}\special{pa 1083 -452}\special{pa 1115 -477}\special{pa 1147 -504}%
-\special{pa 1179 -534}\special{pa 1211 -565}\special{pa 1243 -597}\special{pa 1275 -628}%
-\special{pa 1307 -659}\special{pa 1339 -688}\special{pa 1371 -714}\special{pa 1403 -737}%
-\special{pa 1435 -757}\special{pa 1467 -772}%
-\special{fp}%
-\special{pa -98 0}\special{pa 1467 0}%
-\special{fp}%
-\special{pa 0 295}\special{pa 0 -813}%
-\special{fp}%
-\settowidth{\Width}{$x$}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{$x$}\settodepth{\Depth}{$x$}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(7.5000,0.0000){\hspace*{\Width}\raisebox{\Height}{$x$}}%
-%
-%
-\settowidth{\Width}{$y$}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{$y$}\settodepth{\Depth}{$y$}\setlength{\Height}{\Depth}%
-\put(0.0000,4.1800){\hspace*{\Width}\raisebox{\Height}{$y$}}%
-%
-%
-\settowidth{\Width}{O}\setlength{\Width}{-1\Width}%
-\settoheight{\Height}{O}\settodepth{\Depth}{O}\setlength{\Height}{-\Height}%
-\put(-0.0500,-0.0500){\hspace*{\Width}\raisebox{\Height}{O}}%
-%
-%
-\end{picture}}% \ No newline at end of file
diff --git a/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/plotdata4.tex b/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/plotdata4.tex
deleted file mode 100644
index f9180a4b..00000000
--- a/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/plotdata4.tex
+++ /dev/null
@@ -1,62 +0,0 @@
-%%% test.tex 2014-10-21 10:21
-%%% test.sce 2014-10-21 10:21
-{\unitlength=1cm%
-\begin{picture}%
-( 8.00000, 4.00000)( -1.00000, -1.00000)%
-\special{pn 8}%
-%
-\special{pa -394 -1181}\special{pa -329 -934}\special{pa -265 -709}\special{pa -201 -504}%
-\special{pa -137 -321}\special{pa -72 -158}\special{pa -8 -16}\special{pa 56 -104}%
-\special{pa 121 -204}\special{pa 185 -283}\special{pa 249 -341}\special{pa 313 -377}%
-\special{pa 378 -393}\special{pa 442 -388}\special{pa 506 -362}\special{pa 570 -314}%
-\special{pa 635 -246}\special{pa 699 -157}\special{pa 763 -47}\special{pa 828 -84}%
-\special{pa 892 -237}\special{pa 956 -410}\special{pa 1020 -604}\special{pa 1085 -819}%
-\special{pa 1149 -1055}\special{pa 1180 -1181}%
-\special{fp}%
-\special{pa 1181 -1181}\special{pa 1189 -1150}\special{pa 1205 -1088}\special{pa 1221 -1027}%
-\special{pa 1236 -967}\special{pa 1252 -909}\special{pa 1268 -852}\special{pa 1284 -796}%
-\special{pa 1300 -742}\special{pa 1316 -689}\special{pa 1331 -637}\special{pa 1347 -587}%
-\special{pa 1363 -537}\special{pa 1379 -489}\special{pa 1395 -442}\special{pa 1411 -397}%
-\special{pa 1426 -353}\special{pa 1442 -310}\special{pa 1458 -268}\special{pa 1474 -228}%
-\special{pa 1490 -189}\special{pa 1506 -151}\special{pa 1521 -114}\special{pa 1537 -79}%
-\special{pa 1553 -45}\special{pa 1569 -12}\special{pa 1585 -20}\special{pa 1601 -50}%
-\special{pa 1616 -79}\special{pa 1632 -106}\special{pa 1648 -133}\special{pa 1664 -158}%
-\special{pa 1680 -182}\special{pa 1695 -204}\special{pa 1711 -226}\special{pa 1727 -246}%
-\special{pa 1743 -264}\special{pa 1759 -282}\special{pa 1775 -298}\special{pa 1790 -313}%
-\special{pa 1806 -327}\special{pa 1822 -339}\special{pa 1838 -350}\special{pa 1854 -360}%
-\special{pa 1870 -369}\special{pa 1885 -376}\special{pa 1901 -382}\special{pa 1917 -387}%
-\special{pa 1933 -390}\special{pa 1949 -393}\special{pa 1965 -394}\special{pa 1980 -393}%
-\special{pa 1996 -392}\special{pa 2012 -389}\special{pa 2028 -385}\special{pa 2044 -379}%
-\special{pa 2060 -373}\special{pa 2075 -365}\special{pa 2091 -355}\special{pa 2107 -345}%
-\special{pa 2123 -333}\special{pa 2139 -320}\special{pa 2154 -306}\special{pa 2170 -290}%
-\special{pa 2186 -273}\special{pa 2202 -255}\special{pa 2218 -236}\special{pa 2234 -215}%
-\special{pa 2249 -193}\special{pa 2265 -170}\special{pa 2281 -146}\special{pa 2297 -120}%
-\special{pa 2313 -93}\special{pa 2329 -64}\special{pa 2344 -35}\special{pa 2360 -4}%
-\special{pa 2376 -28}\special{pa 2392 -62}\special{pa 2408 -96}\special{pa 2424 -132}%
-\special{pa 2439 -169}\special{pa 2455 -208}\special{pa 2471 -248}\special{pa 2487 -289}%
-\special{pa 2503 -331}\special{pa 2518 -375}\special{pa 2534 -419}\special{pa 2550 -466}%
-\special{pa 2566 -513}\special{pa 2582 -562}\special{pa 2598 -612}\special{pa 2613 -663}%
-\special{pa 2629 -715}\special{pa 2645 -769}\special{pa 2661 -824}\special{pa 2677 -880}%
-\special{pa 2693 -938}\special{pa 2708 -997}\special{pa 2724 -1057}\special{pa 2740 -1118}%
-\special{pa 2756 -1181}%
-\special{fp}%
-\special{pa -394 0}\special{pa 2756 0}%
-\special{fp}%
-\special{pa 0 394}\special{pa 0 -1181}%
-\special{fp}%
-\settowidth{\Width}{$x$}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{$x$}\settodepth{\Depth}{$x$}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(7.0500,0.0000){\hspace*{\Width}\raisebox{\Height}{$x$}}%
-%
-%
-\settowidth{\Width}{$y$}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{$y$}\settodepth{\Depth}{$y$}\setlength{\Height}{\Depth}%
-\put(0.0000,3.0500){\hspace*{\Width}\raisebox{\Height}{$y$}}%
-%
-%
-\settowidth{\Width}{O}\setlength{\Width}{-1\Width}%
-\settoheight{\Height}{O}\settodepth{\Depth}{O}\setlength{\Height}{-\Height}%
-\put(-0.0500,-0.0500){\hspace*{\Width}\raisebox{\Height}{O}}%
-%
-%
-\end{picture}}% \ No newline at end of file
diff --git a/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/plotdata5.tex b/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/plotdata5.tex
deleted file mode 100644
index 676d1aad..00000000
--- a/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/plotdata5.tex
+++ /dev/null
@@ -1,57 +0,0 @@
-%%% test.tex 2014-10-24 19:50
-%%% test.sce 2014-10-24 19:50
-{\unitlength=5mm%
-\begin{picture}%
-( 8.00000, 6.50000)( -2.00000, -2.50000)%
-\special{pn 8}%
-%
-\special{pa -394 394}\special{pa -378 394}\special{pa -362 394}\special{pa -346 394}%
-\special{pa -330 394}\special{pa -314 394}\special{pa -298 394}\special{pa -282 394}%
-\special{pa -266 394}\special{pa -251 394}\special{pa -235 394}\special{pa -219 394}%
-\special{pa -203 394}%
-\special{fp}%
-\special{pa -187 197}\special{pa -171 197}\special{pa -155 197}\special{pa -139 197}%
-\special{pa -123 197}\special{pa -107 197}\special{pa -91 197}\special{pa -76 197}%
-\special{pa -60 197}\special{pa -44 197}\special{pa -28 197}\special{pa -12 197}%
-\special{fp}%
-\special{pa 4 0}\special{pa 20 0}\special{pa 36 0}\special{pa 52 0}\special{pa 68 0}%
-\special{pa 84 0}\special{pa 99 0}\special{pa 115 0}\special{pa 131 0}\special{pa 147 0}%
-\special{pa 163 0}\special{pa 179 0}\special{pa 195 0}%
-\special{fp}%
-\special{pa 211 -197}\special{pa 227 -197}\special{pa 243 -197}\special{pa 258 -197}%
-\special{pa 274 -197}\special{pa 290 -197}\special{pa 306 -197}\special{pa 322 -197}%
-\special{pa 338 -197}\special{pa 354 -197}\special{pa 370 -197}\special{pa 386 -197}%
-\special{fp}%
-\special{pa 402 -394}\special{pa 418 -394}\special{pa 433 -394}\special{pa 449 -394}%
-\special{pa 465 -394}\special{pa 481 -394}\special{pa 497 -394}\special{pa 513 -394}%
-\special{pa 529 -394}\special{pa 545 -394}\special{pa 561 -394}\special{pa 577 -394}%
-\special{fp}%
-\special{pa 593 -591}\special{pa 608 -591}\special{pa 624 -591}\special{pa 640 -591}%
-\special{pa 656 -591}\special{pa 672 -591}\special{pa 688 -591}\special{pa 704 -591}%
-\special{pa 720 -591}\special{pa 736 -591}\special{pa 752 -591}\special{pa 768 -591}%
-\special{pa 783 -591}%
-\special{fp}%
-\special{pa 799 -787}\special{pa 815 -787}\special{pa 831 -787}\special{pa 847 -787}%
-\special{pa 863 -787}\special{pa 879 -787}\special{pa 895 -787}\special{pa 911 -787}%
-\special{pa 927 -787}\special{pa 942 -787}\special{pa 958 -787}\special{pa 974 -787}%
-\special{fp}%
-\special{pa -394 0}\special{pa 1181 0}%
-\special{fp}%
-\special{pa 0 492}\special{pa 0 -787}%
-\special{fp}%
-\settowidth{\Width}{$x$}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{$x$}\settodepth{\Depth}{$x$}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(6.0500,0.0000){\hspace*{\Width}\raisebox{\Height}{$x$}}%
-%
-%
-\settowidth{\Width}{$y$}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{$y$}\settodepth{\Depth}{$y$}\setlength{\Height}{\Depth}%
-\put(0.0000,4.0500){\hspace*{\Width}\raisebox{\Height}{$y$}}%
-%
-%
-\settowidth{\Width}{O}\setlength{\Width}{-1\Width}%
-\settoheight{\Height}{O}\settodepth{\Depth}{O}\setlength{\Height}{-\Height}%
-\put(-0.0500,-0.0500){\hspace*{\Width}\raisebox{\Height}{O}}%
-%
-%
-\end{picture}}% \ No newline at end of file
diff --git a/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/poiintable.tex b/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/poiintable.tex
deleted file mode 100644
index 15aff959..00000000
--- a/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/poiintable.tex
+++ /dev/null
@@ -1,153 +0,0 @@
-%%% /Users/Hannya/ketcindy/ketwork/fig.tex 2016-8-16 11:35
-%%% fig.sce 2016-8-16 11:35
-{\unitlength=10mm%
-\begin{picture}%
-( 8.00000, 4.80000)( -0.00000, -0.00000)%
-\special{pn 8}%
-%
-\small%
-\special{pa 0 -1890}\special{pa 0 0}%
-\special{fp}%
-\special{pa 1181 -1890}\special{pa 1181 0}%
-\special{fp}%
-\special{pa 1772 -1890}\special{pa 1772 0}%
-\special{fp}%
-\special{pa 2362 -1890}\special{pa 2362 0}%
-\special{fp}%
-\special{pa 3150 -1890}\special{pa 3150 0}%
-\special{fp}%
-\special{pa 0 -1890}\special{pa 3150 -1890}%
-\special{fp}%
-\special{pa 0 -1575}\special{pa 3150 -1575}%
-\special{fp}%
-\special{pa 0 -1260}\special{pa 3150 -1260}%
-\special{fp}%
-\special{pa 0 -945}\special{pa 3150 -945}%
-\special{fp}%
-\special{pa 0 -630}\special{pa 3150 -630}%
-\special{fp}%
-\special{pa 0 -315}\special{pa 3150 -315}%
-\special{fp}%
-\special{pa 0 0}\special{pa 3150 0}%
-\special{fp}%
-\settowidth{\Width}{関数}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{関数}\settodepth{\Depth}{関数}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(1.5000,4.4000){\hspace*{\Width}\raisebox{\Height}{関数}}%
-%
-%
-\settowidth{\Width}{æç”»}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{æç”»}\settodepth{\Depth}{æç”»}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(3.7500,4.4000){\hspace*{\Width}\raisebox{\Height}{æç”»}}%
-%
-%
-\settowidth{\Width}{幾何点}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{幾何点}\settodepth{\Depth}{幾何点}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(5.2500,4.4000){\hspace*{\Width}\raisebox{\Height}{幾何点}}%
-%
-%
-\settowidth{\Width}{TeX出力}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{TeX出力}\settodepth{\Depth}{TeX出力}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(7.0000,4.4000){\hspace*{\Width}\raisebox{\Height}{TeX出力}}%
-%
-%
-\settowidth{\Width}{Drawpoint}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{Drawpoint}\settodepth{\Depth}{Drawpoint}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(1.5000,3.6000){\hspace*{\Width}\raisebox{\Height}{Drawpoint}}%
-%
-%
-\settowidth{\Width}{-}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{-}\settodepth{\Depth}{-}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(3.7500,3.6000){\hspace*{\Width}\raisebox{\Height}{-}}%
-%
-%
-\settowidth{\Width}{-}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{-}\settodepth{\Depth}{-}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(5.2500,3.6000){\hspace*{\Width}\raisebox{\Height}{-}}%
-%
-%
-\settowidth{\Width}{â—‹}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{â—‹}\settodepth{\Depth}{â—‹}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(7.0000,3.6000){\hspace*{\Width}\raisebox{\Height}{â—‹}}%
-%
-%
-\settowidth{\Width}{Pointdata}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{Pointdata}\settodepth{\Depth}{Pointdata}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(1.5000,2.8000){\hspace*{\Width}\raisebox{\Height}{Pointdata}}%
-%
-%
-\settowidth{\Width}{â—‹}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{â—‹}\settodepth{\Depth}{â—‹}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(3.7500,2.8000){\hspace*{\Width}\raisebox{\Height}{â—‹}}%
-%
-%
-\settowidth{\Width}{-}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{-}\settodepth{\Depth}{-}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(5.2500,2.8000){\hspace*{\Width}\raisebox{\Height}{-}}%
-%
-%
-\settowidth{\Width}{â—‹}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{â—‹}\settodepth{\Depth}{â—‹}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(7.0000,2.8000){\hspace*{\Width}\raisebox{\Height}{â—‹}}%
-%
-%
-\settowidth{\Width}{Putpoint}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{Putpoint}\settodepth{\Depth}{Putpoint}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(1.5000,2.0000){\hspace*{\Width}\raisebox{\Height}{Putpoint}}%
-%
-%
-\settowidth{\Width}{-}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{-}\settodepth{\Depth}{-}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(3.7500,2.0000){\hspace*{\Width}\raisebox{\Height}{-}}%
-%
-%
-\settowidth{\Width}{â—‹}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{â—‹}\settodepth{\Depth}{â—‹}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(5.2500,2.0000){\hspace*{\Width}\raisebox{\Height}{â—‹}}%
-%
-%
-\settowidth{\Width}{-}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{-}\settodepth{\Depth}{-}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(7.0000,2.0000){\hspace*{\Width}\raisebox{\Height}{-}}%
-%
-%
-\settowidth{\Width}{Drawpoint3d}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{Drawpoint3d}\settodepth{\Depth}{Drawpoint3d}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(1.5000,1.2000){\hspace*{\Width}\raisebox{\Height}{Drawpoint3d}}%
-%
-%
-\settowidth{\Width}{â—‹}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{â—‹}\settodepth{\Depth}{â—‹}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(3.7500,1.2000){\hspace*{\Width}\raisebox{\Height}{â—‹}}%
-%
-%
-\settowidth{\Width}{-}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{-}\settodepth{\Depth}{-}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(5.2500,1.2000){\hspace*{\Width}\raisebox{\Height}{-}}%
-%
-%
-\settowidth{\Width}{-}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{-}\settodepth{\Depth}{-}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(7.0000,1.2000){\hspace*{\Width}\raisebox{\Height}{-}}%
-%
-%
-\settowidth{\Width}{Putpoint3d}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{Putpoint3d}\settodepth{\Depth}{Putpoint3d}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(1.5000,0.4000){\hspace*{\Width}\raisebox{\Height}{Putpoint3d}}%
-%
-%
-\settowidth{\Width}{-}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{-}\settodepth{\Depth}{-}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(3.7500,0.4000){\hspace*{\Width}\raisebox{\Height}{-}}%
-%
-%
-\settowidth{\Width}{â—‹}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{â—‹}\settodepth{\Depth}{â—‹}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(5.2500,0.4000){\hspace*{\Width}\raisebox{\Height}{â—‹}}%
-%
-%
-\settowidth{\Width}{-}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{-}\settodepth{\Depth}{-}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(7.0000,0.4000){\hspace*{\Width}\raisebox{\Height}{-}}%
-%
-%
-\end{picture}}% \ No newline at end of file
diff --git a/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/pointdata.tex b/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/pointdata.tex
deleted file mode 100644
index 15f50d2b..00000000
--- a/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/pointdata.tex
+++ /dev/null
@@ -1,21 +0,0 @@
-%%% test.tex 2014-11-28 14:29
-%%% test.sce 2014-11-28 14:29
-{\unitlength=6mm%
-\begin{picture}%
-( 14.00000, 4.00000)( 0.00000, 1.00000)%
-\special{pn 8}%
-%
-\special{pa 245 -481}\special{pa 238 -484}\special{pa 231 -483}\special{pa 226 -478}%
-\special{pa 225 -471}\special{pa 228 -464}\special{pa 234 -461}\special{pa 242 -462}%
-\special{pa 247 -467}\special{pa 248 -474}\special{pa 245 -481}\special{sh 1}\special{fp}%
-\special{pa 717 -953}\special{pa 711 -957}\special{pa 703 -955}\special{pa 698 -950}%
-\special{pa 697 -943}\special{pa 700 -937}\special{pa 707 -933}\special{pa 714 -934}%
-\special{pa 719 -940}\special{pa 720 -947}\special{pa 717 -953}\special{sh 1}\special{fp}%
-\special{pa 1426 -481}\special{pa 1419 -484}\special{pa 1412 -483}\special{pa 1407 -478}%
-\special{pa 1406 -471}\special{pa 1409 -464}\special{pa 1415 -461}\special{pa 1423 -462}%
-\special{pa 1428 -467}\special{pa 1429 -474}\special{pa 1426 -481}\special{sh 1}\special{fp}%
-\special{pa 236 -472}\special{pa 709 -945}\special{pa 1417 -472}%
-\special{fp}%
-\special{pa 1890 -472}\special{pa 2362 -945}\special{pa 3071 -472}%
-\special{fp}%
-\end{picture}}% \ No newline at end of file
diff --git a/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/pointoncrv.tex b/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/pointoncrv.tex
deleted file mode 100644
index 2594029d..00000000
--- a/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/pointoncrv.tex
+++ /dev/null
@@ -1,118 +0,0 @@
-%%% fig.tex 2016-5-3 14:0
-%%% fig.sce 2016-5-3 14:0
-{\unitlength=10mm%
-\begin{picture}%
-( 4.99000, 3.72000)( -2.51000, -0.69000)%
-\special{pn 8}%
-%
-\special{pn 8}%
-\special{pa 788 4}\special{pa 787 -4}\special{fp}\special{pa 785 -35}\special{pa 785 -43}\special{fp}%
-\special{pa 783 -74}\special{pa 782 -82}\special{fp}\special{pa 778 -113}\special{pa 777 -121}\special{fp}%
-\special{pa 771 -152}\special{pa 770 -160}\special{fp}\special{pa 764 -191}\special{pa 762 -198}\special{fp}%
-\special{pa 752 -228}\special{pa 750 -236}\special{fp}\special{pa 740 -265}\special{pa 737 -273}\special{fp}%
-\special{pa 726 -302}\special{pa 723 -309}\special{fp}\special{pa 710 -338}\special{pa 706 -345}\special{fp}%
-\special{pa 693 -373}\special{pa 689 -380}\special{fp}\special{pa 673 -407}\special{pa 668 -414}\special{fp}%
-\special{pa 652 -440}\special{pa 647 -447}\special{fp}\special{pa 629 -472}\special{pa 624 -478}\special{fp}%
-\special{pa 604 -503}\special{pa 599 -509}\special{fp}\special{pa 579 -533}\special{pa 574 -539}\special{fp}%
-\special{pa 551 -560}\special{pa 545 -566}\special{fp}\special{pa 523 -587}\special{pa 517 -593}\special{fp}%
-\special{pa 493 -613}\special{pa 487 -618}\special{fp}\special{pa 461 -636}\special{pa 455 -641}\special{fp}%
-\special{pa 430 -659}\special{pa 423 -664}\special{fp}\special{pa 396 -679}\special{pa 389 -683}\special{fp}%
-\special{pa 361 -698}\special{pa 354 -702}\special{fp}\special{pa 326 -716}\special{pa 319 -719}\special{fp}%
-\special{pa 290 -730}\special{pa 282 -733}\special{fp}\special{pa 253 -745}\special{pa 246 -748}\special{fp}%
-\special{pa 216 -756}\special{pa 208 -758}\special{fp}\special{pa 178 -766}\special{pa 170 -768}\special{fp}%
-\special{pa 139 -774}\special{pa 132 -776}\special{fp}\special{pa 101 -779}\special{pa 93 -780}\special{fp}%
-\special{pa 62 -785}\special{pa 54 -785}\special{fp}\special{pa 22 -786}\special{pa 14 -786}\special{fp}%
-\special{pa -17 -786}\special{pa -25 -786}\special{fp}\special{pa -56 -785}\special{pa -64 -784}\special{fp}%
-\special{pa -95 -780}\special{pa -103 -779}\special{fp}\special{pa -134 -775}\special{pa -142 -774}\special{fp}%
-\special{pa -172 -767}\special{pa -180 -765}\special{fp}\special{pa -211 -757}\special{pa -218 -755}\special{fp}%
-\special{pa -248 -747}\special{pa -256 -744}\special{fp}\special{pa -285 -732}\special{pa -292 -729}\special{fp}%
-\special{pa -321 -718}\special{pa -329 -715}\special{fp}\special{pa -357 -701}\special{pa -364 -697}\special{fp}%
-\special{pa -391 -682}\special{pa -398 -678}\special{fp}\special{pa -425 -662}\special{pa -432 -658}\special{fp}%
-\special{pa -457 -639}\special{pa -463 -635}\special{fp}\special{pa -489 -616}\special{pa -495 -611}\special{fp}%
-\special{pa -519 -591}\special{pa -525 -586}\special{fp}\special{pa -547 -564}\special{pa -553 -559}\special{fp}%
-\special{pa -576 -537}\special{pa -581 -531}\special{fp}\special{pa -601 -507}\special{pa -606 -501}\special{fp}%
-\special{pa -626 -477}\special{pa -631 -470}\special{fp}\special{pa -649 -445}\special{pa -653 -438}\special{fp}%
-\special{pa -670 -411}\special{pa -674 -405}\special{fp}\special{pa -690 -378}\special{pa -694 -371}\special{fp}%
-\special{pa -707 -343}\special{pa -711 -335}\special{fp}\special{pa -724 -307}\special{pa -727 -300}\special{fp}%
-\special{pa -738 -271}\special{pa -741 -263}\special{fp}\special{pa -751 -233}\special{pa -753 -226}\special{fp}%
-\special{pa -762 -196}\special{pa -764 -188}\special{fp}\special{pa -770 -157}\special{pa -772 -149}\special{fp}%
-\special{pa -778 -119}\special{pa -779 -111}\special{fp}\special{pa -782 -80}\special{pa -783 -72}\special{fp}%
-\special{pa -785 -41}\special{pa -785 -33}\special{fp}\special{pa -787 -1}\special{pa -787 7}\special{fp}%
-\special{pa -785 38}\special{pa -785 46}\special{fp}\special{pa -783 77}\special{pa -782 85}\special{fp}%
-\special{pa -778 116}\special{pa -777 124}\special{fp}\special{pa -771 154}\special{pa -769 162}\special{fp}%
-\special{pa -763 193}\special{pa -761 201}\special{fp}\special{pa -751 230}\special{pa -749 238}\special{fp}%
-\special{pa -739 268}\special{pa -737 275}\special{fp}\special{pn 8}%
-\special{pa 737 275}\special{pa 739 268}\special{fp}\special{pa 749 238}\special{pa 752 230}\special{fp}%
-\special{pa 762 200}\special{pa 764 192}\special{fp}\special{pa 769 161}\special{pa 771 153}\special{fp}%
-\special{pa 777 122}\special{pa 778 114}\special{fp}\special{pa 782 83}\special{pa 783 75}\special{fp}%
-\special{pa 785 44}\special{pa 785 36}\special{fp}\special{pa 787 4}\special{pa 788 -4}\special{fp}%
-\special{pn 8}%
-\special{pa 787 0}\special{pa 637 -463}\special{pa 243 -749}\special{pa -243 -749}%
-\special{pa -637 -463}\special{pa -787 0}%
-\special{fp}%
-\special{pn 5}%
-\special{pa -426 -620}\special{pa -434 -625}\special{pa -444 -625}\special{pa -452 -621}%
-\special{pa -458 -614}\special{pa -460 -605}\special{pa -457 -596}\special{pa -450 -589}%
-\special{pa -441 -586}\special{pa -432 -588}\special{pa -425 -594}\special{pa -421 -602}%
-\special{pa -421 -612}\special{pa -426 -620}\special{sh 1}\special{fp}%
-\special{pa 801 -14}\special{pa 793 -19}\special{pa 784 -19}\special{pa 775 -15}\special{pa 769 -8}%
-\special{pa 768 1}\special{pa 771 10}\special{pa 777 17}\special{pa 786 20}\special{pa 795 18}%
-\special{pa 803 12}\special{pa 807 4}\special{pa 806 -6}\special{pa 801 -14}\special{sh 1}\special{fp}%
-\special{pa -773 -14}\special{pa -782 -19}\special{pa -791 -19}\special{pa -800 -15}%
-\special{pa -805 -8}\special{pa -807 1}\special{pa -804 10}\special{pa -798 17}\special{pa -789 20}%
-\special{pa -779 18}\special{pa -772 12}\special{pa -768 4}\special{pa -769 -6}\special{pa -773 -14}%
-\special{sh 1}\special{fp}%
-\special{pn 8}%
-\settowidth{\Width}{P}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{P}\settodepth{\Depth}{P}\setlength{\Height}{-\Height}%
-\put(2.0500,-0.0500){\hspace*{\Width}\raisebox{\Height}{P}}%
-%
-%
-\settowidth{\Width}{Q}\setlength{\Width}{-1\Width}%
-\settoheight{\Height}{Q}\settodepth{\Depth}{Q}\setlength{\Height}{-\Height}%
-\put(-2.0500,-0.0500){\hspace*{\Width}\raisebox{\Height}{Q}}%
-%
-%
-\settowidth{\Width}{A}\setlength{\Width}{-1\Width}%
-\settoheight{\Height}{A}\settodepth{\Depth}{A}\setlength{\Height}{\Depth}%
-\put(-1.1680,1.5888){\hspace*{\Width}\raisebox{\Height}{A}}%
-%
-%
-\special{pn 8}%
-\special{pa -988 0}\special{pa 937 0}%
-\special{fp}%
-\special{pn 8}%
-\special{pa 901 24}\special{pa 976 0}\special{pa 901 -24}\special{pa 901 0}\special{pa 901 24}%
-\special{sh 1}\special{ip}%
-\special{pn 1}%
-\special{pa 901 24}\special{pa 976 0}\special{pa 901 -24}\special{pa 901 0}\special{pa 901 24}%
-\special{pa 976 0}%
-\special{fp}%
-\special{pn 8}%
-\special{pn 8}%
-\special{pa 0 272}\special{pa 0 -1154}%
-\special{fp}%
-\special{pn 8}%
-\special{pa 24 -1118}\special{pa 0 -1193}\special{pa -24 -1118}\special{pa 0 -1118}%
-\special{pa 24 -1118}\special{sh 1}\special{ip}%
-\special{pn 1}%
-\special{pa 24 -1118}\special{pa 0 -1193}\special{pa -24 -1118}\special{pa 0 -1118}%
-\special{pa 24 -1118}\special{pa 0 -1193}%
-\special{fp}%
-\special{pn 8}%
-\settowidth{\Width}{$x$}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{$x$}\settodepth{\Depth}{$x$}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(2.5300,0.0000){\hspace*{\Width}\raisebox{\Height}{$x$}}%
-%
-%
-\settowidth{\Width}{$y$}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{$y$}\settodepth{\Depth}{$y$}\setlength{\Height}{\Depth}%
-\put(0.0000,3.0800){\hspace*{\Width}\raisebox{\Height}{$y$}}%
-%
-%
-\settowidth{\Width}{O}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{O}\settodepth{\Depth}{O}\setlength{\Height}{-\Height}%
-\put(0.0500,-0.0500){\hspace*{\Width}\raisebox{\Height}{O}}%
-%
-%
-\end{picture}}% \ No newline at end of file
diff --git a/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/pointsize.tex b/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/pointsize.tex
deleted file mode 100644
index 76de5672..00000000
--- a/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/pointsize.tex
+++ /dev/null
@@ -1,43 +0,0 @@
-%%% test.tex 2014-10-22 9:7
-%%% test.sce 2014-10-22 9:7
-{\unitlength=1cm%
-\begin{picture}%
-( 7.00000, 2.00000)( -3.00000, -1.00000)%
-\special{pn 8}%
-%
-\special{pa 3 -3}\special{pa -3 -3}\special{pa -3 3}\special{pa 3 3}\special{pa 3 -3}%
-\special{sh 1}\special{fp}%
-\special{pa 399 -6}\special{pa 394 -8}\special{pa 388 -6}\special{pa 386 0}\special{pa 388 6}%
-\special{pa 394 8}\special{pa 399 6}\special{pa 402 0}\special{pa 399 -6}\special{sh 1}\special{fp}%
-\special{pa 796 -8}\special{pa 789 -12}\special{pa 782 -11}\special{pa 777 -5}\special{pa 776 2}%
-\special{pa 779 8}\special{pa 786 12}\special{pa 793 11}\special{pa 798 5}\special{pa 799 -2}%
-\special{pa 796 -8}\special{sh 1}\special{fp}%
-\special{pa 1192 -11}\special{pa 1185 -15}\special{pa 1177 -15}\special{pa 1170 -11}%
-\special{pa 1166 -4}\special{pa 1166 4}\special{pa 1170 11}\special{pa 1177 15}\special{pa 1185 15}%
-\special{pa 1192 11}\special{pa 1196 4}\special{pa 1196 -4}\special{pa 1192 -11}\special{sh 1}\special{fp}%
-\settowidth{\Width}{Pointsize}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{Pointsize}\settodepth{\Depth}{Pointsize}\setlength{\Height}{\Depth}%
-\put(-1.4400,0.1500){\hspace*{\Width}\raisebox{\Height}{Pointsize}}%
-%
-%
-\settowidth{\Width}{1}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{1}\settodepth{\Depth}{1}\setlength{\Height}{\Depth}%
-\put(0.0000,0.1500){\hspace*{\Width}\raisebox{\Height}{1}}%
-%
-%
-\settowidth{\Width}{2}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{2}\settodepth{\Depth}{2}\setlength{\Height}{\Depth}%
-\put(1.0000,0.1500){\hspace*{\Width}\raisebox{\Height}{2}}%
-%
-%
-\settowidth{\Width}{3}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{3}\settodepth{\Depth}{3}\setlength{\Height}{\Depth}%
-\put(2.0000,0.1500){\hspace*{\Width}\raisebox{\Height}{3}}%
-%
-%
-\settowidth{\Width}{4}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{4}\settodepth{\Depth}{4}\setlength{\Height}{\Depth}%
-\put(3.0000,0.1500){\hspace*{\Width}\raisebox{\Height}{4}}%
-%
-%
-\end{picture}}% \ No newline at end of file
diff --git a/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/poison01.tex b/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/poison01.tex
deleted file mode 100644
index 957ec741..00000000
--- a/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/poison01.tex
+++ /dev/null
@@ -1,87 +0,0 @@
-%%% fig.tex 2016-4-23 10:42
-%%% fig.sce 2016-4-23 10:41
-{\unitlength=5mm%
-\begin{picture}%
-( 14.89000, 9.57800)( -0.82000, -0.77000)%
-\special{pn 8}%
-%
-\special{pn 4}%
-\special{pa 0 0}\special{pa 0 -236}\special{pa 197 -236}\special{pa 197 0}\special{pa 0 0}%
-\special{fp}%
-\special{pn 8}%
-\special{pn 4}%
-\special{pa 197 0}\special{pa 197 -748}\special{pa 394 -748}\special{pa 394 0}\special{pa 197 0}%
-\special{fp}%
-\special{pn 8}%
-\special{pn 4}%
-\special{pa 394 0}\special{pa 394 -1181}\special{pa 591 -1181}\special{pa 591 0}\special{pa 394 0}%
-\special{fp}%
-\special{pn 8}%
-\special{pn 4}%
-\special{pa 591 0}\special{pa 591 -1457}\special{pa 787 -1457}\special{pa 787 0}\special{pa 591 0}%
-\special{fp}%
-\special{pn 8}%
-\special{pn 4}%
-\special{pa 787 0}\special{pa 787 -1339}\special{pa 984 -1339}\special{pa 984 0}\special{pa 787 0}%
-\special{fp}%
-\special{pn 8}%
-\special{pn 4}%
-\special{pa 984 0}\special{pa 984 -1063}\special{pa 1181 -1063}\special{pa 1181 0}%
-\special{pa 984 0}%
-\special{fp}%
-\special{pn 8}%
-\special{pn 4}%
-\special{pa 1181 0}\special{pa 1181 -827}\special{pa 1378 -827}\special{pa 1378 0}%
-\special{pa 1181 0}%
-\special{fp}%
-\special{pn 8}%
-\special{pn 4}%
-\special{pa 1378 0}\special{pa 1378 -512}\special{pa 1575 -512}\special{pa 1575 0}%
-\special{pa 1378 0}%
-\special{fp}%
-\special{pn 8}%
-\special{pn 4}%
-\special{pa 1575 0}\special{pa 1575 -394}\special{pa 1772 -394}\special{pa 1772 0}%
-\special{pa 1575 0}%
-\special{fp}%
-\special{pn 8}%
-\special{pn 4}%
-\special{pa 1772 0}\special{pa 1969 0}\special{pa 1772 0}%
-\special{fp}%
-\special{pn 8}%
-\special{pn 4}%
-\special{pa 1969 0}\special{pa 1969 -79}\special{pa 2165 -79}\special{pa 2165 0}\special{pa 1969 0}%
-\special{fp}%
-\special{pn 8}%
-\special{pn 4}%
-\special{pa 2165 0}\special{pa 2165 -39}\special{pa 2362 -39}\special{pa 2362 0}\special{pa 2165 0}%
-\special{fp}%
-\special{pn 8}%
-\special{pn 4}%
-\special{pa 2362 0}\special{pa 2559 0}\special{pa 2362 0}%
-\special{fp}%
-\special{pn 8}%
-\special{pn 4}%
-\special{pa 2559 0}\special{pa 2756 0}\special{pa 2559 0}%
-\special{fp}%
-\special{pn 8}%
-\special{pa -161 0}\special{pa 2770 0}%
-\special{fp}%
-\special{pa 0 152}\special{pa 0 -1734}%
-\special{fp}%
-\settowidth{\Width}{$x$}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{$x$}\settodepth{\Depth}{$x$}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(14.1200,0.0000){\hspace*{\Width}\raisebox{\Height}{$x$}}%
-%
-%
-\settowidth{\Width}{$y$}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{$y$}\settodepth{\Depth}{$y$}\setlength{\Height}{\Depth}%
-\put(0.0000,8.8580){\hspace*{\Width}\raisebox{\Height}{$y$}}%
-%
-%
-\settowidth{\Width}{O}\setlength{\Width}{-1\Width}%
-\settoheight{\Height}{O}\settodepth{\Depth}{O}\setlength{\Height}{-\Height}%
-\put(-0.0500,-0.0500){\hspace*{\Width}\raisebox{\Height}{O}}%
-%
-%
-\end{picture}}% \ No newline at end of file
diff --git a/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/ptcrv.tex b/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/ptcrv.tex
deleted file mode 100644
index efc0680e..00000000
--- a/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/ptcrv.tex
+++ /dev/null
@@ -1,106 +0,0 @@
-%%% test.tex 2014-12-3 14:24
-%%% test.sce 2014-12-3 14:24
-{\unitlength=6mm%
-\begin{picture}%
-( 10.00000, 8.00000)( -5.00000, -4.00000)%
-\special{pn 8}%
-%
-\special{pa 829 -343}\special{pa 792 -334}\special{fp}\special{pa 754 -325}\special{pa 717 -316}\special{fp}%
-\special{pa 679 -307}\special{pa 642 -298}\special{fp}\special{pa 604 -290}\special{pa 567 -281}\special{fp}%
-\special{pa 530 -272}\special{pa 492 -263}\special{fp}\special{pa 455 -254}\special{pa 417 -246}\special{fp}%
-\special{pa 380 -237}\special{pa 342 -228}\special{fp}\special{pa 305 -219}\special{pa 267 -210}\special{fp}%
-\special{pa 230 -201}\special{pa 193 -193}\special{fp}\special{pa 155 -184}\special{pa 118 -175}\special{fp}%
-\special{pa 80 -166}\special{pa 43 -157}\special{fp}\special{pa 5 -149}\special{pa -32 -140}\special{fp}%
-\special{pa -70 -131}\special{pa -107 -122}\special{fp}\special{pa -144 -113}\special{pa -182 -105}\special{fp}%
-\special{pa -219 -96}\special{pa -257 -87}\special{fp}\special{pa -294 -78}\special{pa -332 -69}\special{fp}%
-\special{pa -369 -60}\special{pa -407 -52}\special{fp}\special{pa -444 -43}\special{pa -481 -34}\special{fp}%
-\special{pa -519 -25}\special{pa -556 -16}\special{fp}\special{pa -594 -8}\special{pa -626 0}\special{pa -621 -2}\special{fp}%
-\special{pa -587 -19}\special{pa -552 -36}\special{fp}\special{pa -517 -53}\special{pa -483 -70}\special{fp}%
-\special{pa -448 -86}\special{pa -414 -103}\special{fp}\special{pa -379 -120}\special{pa -344 -137}\special{fp}%
-\special{pa -310 -154}\special{pa -275 -170}\special{fp}\special{pa -241 -187}\special{pa -206 -204}\special{fp}%
-\special{pa -171 -221}\special{pa -137 -238}\special{fp}\special{pa -102 -255}\special{pa -68 -271}\special{fp}%
-\special{pa -33 -288}\special{pa 2 -305}\special{fp}\special{pa 36 -322}\special{pa 71 -339}\special{fp}%
-\special{pa 105 -355}\special{pa 140 -372}\special{fp}\special{pa 175 -389}\special{pa 209 -406}\special{fp}%
-\special{pa 244 -423}\special{pa 278 -440}\special{fp}\special{pa 313 -456}\special{pa 348 -473}\special{fp}%
-\special{pa 382 -490}\special{pa 417 -507}\special{fp}\special{pa 451 -524}\special{pa 486 -540}\special{fp}%
-\special{pa 521 -557}\special{pa 555 -574}\special{fp}%
-%
-\special{pn 24}%
-\special{pa 826 -341}\special{pa 826 -341}\special{pa 796 -380}\special{pa 763 -417}%
-\special{pa 726 -452}\special{pa 687 -485}\special{pa 645 -517}\special{pa 601 -546}%
-\special{pa 555 -573}%
-\special{fp}%
-\special{pn 8}%
-\special{pa 826 -341}\special{pa 796 -380}\special{pa 763 -417}\special{pa 726 -452}%
-\special{pa 687 -485}\special{pa 645 -517}\special{pa 601 -546}\special{pa 555 -573}%
-\special{pa -626 0}\special{pa 829 -343}\special{pa 826 -341}\special{sh 0.1}\special{ip}%
-\special{pa 669 -544}\special{pa 555 -574}\special{pa 630 -483}\special{pa 650 -513}%
-\special{pa 669 -544}\special{sh 1}\special{ip}%
-\special{pn 8}%
-\special{pa 669 -544}\special{pa 555 -574}\special{pa 630 -483}\special{pa 650 -513}%
-\special{pa 669 -544}%
-\special{fp}%
-\special{pn 8}%
-\settowidth{\Width}{A}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{A}\settodepth{\Depth}{A}\setlength{\Height}{\Depth}%
-\put(3.5600,1.5000){\hspace*{\Width}\raisebox{\Height}{A}}%
-%
-%
-\settowidth{\Width}{B}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{B}\settodepth{\Depth}{B}\setlength{\Height}{\Depth}%
-\put(2.4000,2.4800){\hspace*{\Width}\raisebox{\Height}{B}}%
-%
-%
-\settowidth{\Width}{F}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{F}\settodepth{\Depth}{F}\setlength{\Height}{-\Height}%
-\put(-2.6500,-0.1500){\hspace*{\Width}\raisebox{\Height}{F}}%
-%
-%
-\special{pa -615 -11}\special{pa -622 -15}\special{pa -630 -15}\special{pa -637 -11}%
-\special{pa -641 -4}\special{pa -641 4}\special{pa -637 11}\special{pa -630 15}\special{pa -622 15}%
-\special{pa -615 11}\special{pa -611 4}\special{pa -611 -4}\special{pa -615 -11}\special{sh 1}\special{fp}%
-\special{pa 943 0}\special{pa 941 -44}\special{pa 935 -89}\special{pa 926 -133}\special{pa 913 -176}%
-\special{pa 896 -219}\special{pa 876 -261}\special{pa 853 -302}\special{pa 826 -341}%
-\special{pa 796 -380}\special{pa 763 -417}\special{pa 726 -452}\special{pa 687 -485}%
-\special{pa 645 -517}\special{pa 601 -546}\special{pa 554 -573}\special{pa 505 -598}%
-\special{pa 454 -621}\special{pa 401 -641}\special{pa 347 -659}\special{pa 291 -674}%
-\special{pa 234 -686}\special{pa 177 -696}\special{pa 118 -703}\special{pa 59 -707}%
-\special{pa 0 -709}\special{pa -59 -707}\special{pa -118 -703}\special{pa -177 -696}%
-\special{pa -234 -686}\special{pa -291 -674}\special{pa -347 -659}\special{pa -401 -641}%
-\special{pa -454 -621}\special{pa -505 -598}\special{pa -554 -573}\special{pa -601 -546}%
-\special{pa -645 -517}\special{pa -687 -485}\special{pa -726 -452}\special{pa -763 -417}%
-\special{pa -796 -380}\special{pa -826 -341}\special{pa -853 -302}\special{pa -876 -261}%
-\special{pa -896 -219}\special{pa -913 -176}\special{pa -926 -133}\special{pa -935 -89}%
-\special{pa -941 -44}\special{pa -943 0}\special{pa -941 44}\special{pa -935 89}\special{pa -926 133}%
-\special{pa -913 176}\special{pa -896 219}\special{pa -876 261}\special{pa -853 302}%
-\special{pa -826 341}\special{pa -796 380}\special{pa -763 417}\special{pa -726 452}%
-\special{pa -687 485}\special{pa -645 517}\special{pa -601 546}\special{pa -554 573}%
-\special{pa -505 598}\special{pa -454 621}\special{pa -401 641}\special{pa -347 659}%
-\special{pa -291 674}\special{pa -234 686}\special{pa -177 696}\special{pa -118 703}%
-\special{pa -59 707}\special{pa 0 709}\special{pa 59 707}\special{pa 118 703}\special{pa 177 696}%
-\special{pa 234 686}\special{pa 291 674}\special{pa 347 659}\special{pa 401 641}\special{pa 454 621}%
-\special{pa 505 598}\special{pa 554 573}\special{pa 601 546}\special{pa 645 517}\special{pa 687 485}%
-\special{pa 726 452}\special{pa 763 417}\special{pa 796 380}\special{pa 826 341}\special{pa 853 302}%
-\special{pa 876 261}\special{pa 896 219}\special{pa 913 176}\special{pa 926 133}\special{pa 935 89}%
-\special{pa 941 44}\special{pa 943 0}%
-\special{fp}%
-\special{pa -1181 0}\special{pa 1181 0}%
-\special{fp}%
-\special{pa 0 945}\special{pa 0 -945}%
-\special{fp}%
-\settowidth{\Width}{$x$}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{$x$}\settodepth{\Depth}{$x$}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(5.0500,0.0000){\hspace*{\Width}\raisebox{\Height}{$x$}}%
-%
-%
-\settowidth{\Width}{$y$}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{$y$}\settodepth{\Depth}{$y$}\setlength{\Height}{\Depth}%
-\put(0.0000,4.0500){\hspace*{\Width}\raisebox{\Height}{$y$}}%
-%
-%
-\settowidth{\Width}{O}\setlength{\Width}{-1\Width}%
-\settoheight{\Height}{O}\settodepth{\Depth}{O}\setlength{\Height}{-\Height}%
-\put(-0.0500,-0.0500){\hspace*{\Width}\raisebox{\Height}{O}}%
-%
-%
-\end{picture}}% \ No newline at end of file
diff --git a/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/ptstart.tex b/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/ptstart.tex
deleted file mode 100644
index bd07b245..00000000
--- a/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/ptstart.tex
+++ /dev/null
@@ -1,147 +0,0 @@
-%%% ptstart.tex 2014-11-13 9:50
-%%% ptcrv.sce 2014-11-12 22:40
-{\unitlength=1cm%
-\begin{picture}%
-( 5.89000, 5.26000)( -2.57000, -0.54000)%
-\special{pn 8}%
-%
-\special{pa -394 -394}\special{pa -370 -347}\special{pa -345 -303}\special{pa -321 -262}%
-\special{pa -297 -224}\special{pa -273 -190}\special{pa -249 -158}\special{pa -225 -129}%
-\special{pa -201 -102}\special{pa -177 -79}\special{pa -153 -59}\special{pa -129 -42}%
-\special{pa -104 -28}\special{pa -80 -16}\special{pa -56 -8}\special{pa -32 -3}\special{pa -8 0}%
-\special{pa 16 -1}\special{pa 40 -4}\special{pa 64 -10}\special{pa 88 -20}\special{pa 112 -32}%
-\special{pa 137 -47}\special{pa 161 -66}\special{pa 185 -87}\special{pa 209 -111}%
-\special{pa 233 -138}\special{pa 257 -168}\special{pa 281 -201}\special{pa 305 -237}%
-\special{pa 329 -276}\special{pa 354 -317}\special{pa 378 -362}\special{pa 402 -410}%
-\special{pa 426 -461}\special{pa 450 -514}\special{pa 474 -571}\special{pa 498 -630}%
-\special{pa 522 -693}\special{pa 546 -758}\special{pa 570 -827}\special{pa 595 -898}%
-\special{pa 619 -972}\special{pa 643 -1049}\special{pa 667 -1130}\special{pa 691 -1213}%
-\special{pa 715 -1299}\special{pa 739 -1388}\special{pa 763 -1480}\special{pa 787 -1575}%
-\special{fp}%
-\special{pn 8}%
-\special{pa -856 -1862}\special{pa -854 -1854}\special{fp}\special{pa -847 -1824}\special{pa -845 -1816}\special{fp}%
-\special{pa -838 -1786}\special{pa -836 -1778}\special{fp}\special{pa -829 -1747}\special{pa -827 -1740}\special{fp}%
-\special{pa -820 -1709}\special{pa -818 -1701}\special{fp}\special{pa -811 -1671}\special{pa -809 -1663}\special{fp}%
-\special{pa -801 -1633}\special{pa -800 -1625}\special{fp}\special{pa -792 -1595}\special{pa -790 -1587}\special{fp}%
-\special{pa -783 -1557}\special{pa -781 -1549}\special{fp}\special{pa -773 -1519}\special{pa -771 -1511}\special{fp}%
-\special{pa -763 -1481}\special{pa -761 -1473}\special{fp}\special{pa -753 -1443}\special{pa -751 -1435}\special{fp}%
-\special{pa -743 -1405}\special{pa -741 -1397}\special{fp}\special{pa -733 -1367}\special{pa -731 -1359}\special{fp}%
-\special{pa -723 -1329}\special{pa -721 -1321}\special{fp}\special{pa -713 -1291}\special{pa -710 -1283}\special{fp}%
-\special{pa -702 -1253}\special{pa -700 -1245}\special{fp}\special{pa -691 -1215}\special{pa -689 -1208}\special{fp}%
-\special{pa -681 -1177}\special{pa -679 -1170}\special{fp}\special{pa -670 -1140}\special{pa -667 -1132}\special{fp}%
-\special{pa -658 -1102}\special{pa -656 -1095}\special{fp}\special{pa -647 -1065}\special{pa -645 -1057}\special{fp}%
-\special{pa -636 -1027}\special{pa -633 -1019}\special{fp}\special{pa -624 -990}\special{pa -621 -982}\special{fp}%
-\special{pa -612 -952}\special{pa -609 -945}\special{fp}\special{pa -600 -915}\special{pa -597 -907}\special{fp}%
-\special{pa -588 -877}\special{pa -585 -870}\special{fp}\special{pa -575 -840}\special{pa -572 -833}\special{fp}%
-\special{pa -562 -803}\special{pa -559 -796}\special{fp}\special{pa -549 -766}\special{pa -546 -759}\special{fp}%
-\special{pa -536 -729}\special{pa -533 -722}\special{fp}\special{pa -522 -693}\special{pa -519 -685}\special{fp}%
-\special{pa -508 -656}\special{pa -505 -648}\special{fp}\special{pa -494 -619}\special{pa -491 -612}\special{fp}%
-\special{pa -479 -583}\special{pa -476 -576}\special{fp}\special{pa -463 -547}\special{pa -460 -539}\special{fp}%
-\special{pa -448 -511}\special{pa -445 -503}\special{fp}\special{pa -432 -475}\special{pa -429 -468}\special{fp}%
-\special{pa -415 -439}\special{pa -412 -432}\special{fp}\special{pa -399 -404}\special{pa -395 -397}\special{fp}%
-\special{pa -380 -369}\special{pa -377 -362}\special{fp}\special{pa -362 -334}\special{pa -358 -327}\special{fp}%
-\special{pa -343 -300}\special{pa -339 -293}\special{fp}\special{pa -323 -266}\special{pa -319 -259}\special{fp}%
-\special{pa -303 -233}\special{pa -298 -226}\special{fp}\special{pa -280 -200}\special{pa -275 -194}\special{fp}%
-\special{pa -257 -168}\special{pa -253 -162}\special{fp}\special{pa -232 -138}\special{pa -227 -132}\special{fp}%
-\special{pa -206 -109}\special{pa -201 -103}\special{fp}\special{pa -178 -82}\special{pa -172 -76}\special{fp}%
-\special{pa -148 -57}\special{pa -141 -52}\special{fp}\special{pa -116 -34}\special{pa -109 -30}\special{fp}%
-\special{pa -80 -17}\special{pa -73 -14}\special{fp}\special{pa -43 -6}\special{pa -35 -4}\special{fp}%
-\special{pa -4 -1}\special{pa 4 -1}\special{fp}\special{pa 35 -4}\special{pa 43 -5}\special{fp}%
-\special{pa 73 -14}\special{pa 81 -16}\special{fp}\special{pa 108 -31}\special{pa 115 -35}\special{fp}%
-\special{pa 141 -52}\special{pa 148 -57}\special{fp}\special{pa 172 -76}\special{pa 178 -81}\special{fp}%
-\special{pa 200 -103}\special{pa 206 -109}\special{fp}\special{pa 227 -132}\special{pa 232 -138}\special{fp}%
-\special{pa 252 -162}\special{pa 257 -169}\special{fp}\special{pa 275 -194}\special{pa 280 -200}\special{fp}%
-\special{pa 298 -226}\special{pa 302 -233}\special{fp}\special{pa 319 -259}\special{pa 323 -266}\special{fp}%
-\special{pa 339 -293}\special{pa 343 -300}\special{fp}\special{pa 359 -327}\special{pa 363 -334}\special{fp}%
-\special{pa 377 -362}\special{pa 380 -369}\special{fp}\special{pa 395 -397}\special{pa 398 -404}\special{fp}%
-\special{pa 412 -432}\special{pa 416 -439}\special{fp}\special{pa 428 -468}\special{pa 432 -475}\special{fp}%
-\special{pa 445 -503}\special{pa 448 -511}\special{fp}\special{pa 461 -539}\special{pa 464 -547}\special{fp}%
-\special{pa 475 -576}\special{pa 479 -583}\special{fp}\special{pa 490 -612}\special{pa 493 -619}\special{fp}%
-\special{pa 505 -648}\special{pa 508 -656}\special{fp}\special{pa 519 -685}\special{pa 522 -693}\special{fp}%
-\special{pa 533 -722}\special{pa 535 -729}\special{fp}\special{pa 546 -759}\special{pa 549 -766}\special{fp}%
-\special{pa 559 -796}\special{pa 562 -803}\special{fp}\special{pa 572 -833}\special{pa 575 -840}\special{fp}%
-\special{pa 585 -870}\special{pa 587 -878}\special{fp}\special{pa 598 -907}\special{pa 600 -915}\special{fp}%
-\special{pa 609 -945}\special{pa 612 -952}\special{fp}\special{pa 621 -982}\special{pa 624 -990}\special{fp}%
-\special{pa 633 -1019}\special{pa 636 -1027}\special{fp}\special{pa 645 -1057}\special{pa 647 -1065}\special{fp}%
-\special{pa 656 -1095}\special{pa 658 -1102}\special{fp}\special{pa 667 -1132}\special{pa 669 -1140}\special{fp}%
-\special{pa 678 -1170}\special{pa 681 -1178}\special{fp}\special{pa 689 -1208}\special{pa 692 -1215}\special{fp}%
-\special{pa 700 -1245}\special{pa 702 -1253}\special{fp}\special{pa 710 -1283}\special{pa 713 -1291}\special{fp}%
-\special{pa 721 -1321}\special{pa 723 -1329}\special{fp}\special{pa 731 -1359}\special{pa 733 -1367}\special{fp}%
-\special{pa 741 -1397}\special{pa 744 -1405}\special{fp}\special{pa 751 -1435}\special{pa 753 -1443}\special{fp}%
-\special{pa 761 -1473}\special{pa 763 -1481}\special{fp}\special{pa 771 -1511}\special{pa 773 -1519}\special{fp}%
-\special{pa 781 -1549}\special{pa 783 -1557}\special{fp}\special{pa 790 -1587}\special{pa 792 -1595}\special{fp}%
-\special{pa 800 -1625}\special{pa 802 -1633}\special{fp}\special{pa 809 -1663}\special{pa 811 -1671}\special{fp}%
-\special{pa 818 -1701}\special{pa 820 -1709}\special{fp}\special{pa 827 -1740}\special{pa 829 -1747}\special{fp}%
-\special{pa 837 -1778}\special{pa 838 -1786}\special{fp}\special{pa 845 -1816}\special{pa 847 -1824}\special{fp}%
-\special{pa 854 -1854}\special{pa 856 -1862}\special{fp}\special{pn 8}%
-\special{pn 8}%
-\special{pa -1003 215}\special{pa -997 210}\special{fp}\special{pa -975 187}\special{pa -969 182}\special{fp}%
-\special{pa -947 159}\special{pa -941 154}\special{fp}\special{pa -919 131}\special{pa -913 126}\special{fp}%
-\special{pa -891 103}\special{pa -885 98}\special{fp}\special{pa -863 76}\special{pa -857 70}\special{fp}%
-\special{pa -835 48}\special{pa -829 42}\special{fp}\special{pa -807 20}\special{pa -801 14}\special{fp}%
-\special{pa -779 -8}\special{pa -773 -14}\special{fp}\special{pa -751 -36}\special{pa -745 -42}\special{fp}%
-\special{pa -723 -64}\special{pa -717 -70}\special{fp}\special{pa -695 -92}\special{pa -689 -98}\special{fp}%
-\special{pa -667 -120}\special{pa -661 -126}\special{fp}\special{pa -639 -148}\special{pa -633 -154}\special{fp}%
-\special{pa -611 -176}\special{pa -605 -182}\special{fp}\special{pa -583 -204}\special{pa -577 -210}\special{fp}%
-\special{pa -555 -232}\special{pa -549 -238}\special{fp}\special{pa -527 -260}\special{pa -521 -266}\special{fp}%
-\special{pa -499 -288}\special{pa -493 -294}\special{fp}\special{pa -471 -316}\special{pa -465 -322}\special{fp}%
-\special{pa -443 -344}\special{pa -437 -350}\special{fp}\special{pa -415 -372}\special{pa -409 -378}\special{fp}%
-\special{pa -387 -400}\special{pa -382 -406}\special{fp}\special{pa -359 -428}\special{pa -354 -434}\special{fp}%
-\special{pa -331 -456}\special{pa -326 -462}\special{fp}\special{pa -303 -484}\special{pa -298 -490}\special{fp}%
-\special{pa -275 -512}\special{pa -270 -518}\special{fp}\special{pa -247 -540}\special{pa -242 -546}\special{fp}%
-\special{pa -219 -568}\special{pa -214 -574}\special{fp}\special{pa -191 -596}\special{pa -186 -602}\special{fp}%
-\special{pa -163 -624}\special{pa -158 -630}\special{fp}\special{pa -135 -652}\special{pa -130 -658}\special{fp}%
-\special{pa -107 -680}\special{pa -102 -686}\special{fp}\special{pa -79 -708}\special{pa -74 -714}\special{fp}%
-\special{pa -51 -736}\special{pa -46 -742}\special{fp}\special{pa -23 -764}\special{pa -18 -770}\special{fp}%
-\special{pa 5 -792}\special{pa 10 -798}\special{fp}\special{pa 33 -820}\special{pa 38 -826}\special{fp}%
-\special{pa 61 -848}\special{pa 66 -854}\special{fp}\special{pa 89 -876}\special{pa 94 -882}\special{fp}%
-\special{pa 117 -904}\special{pa 122 -910}\special{fp}\special{pa 145 -932}\special{pa 150 -938}\special{fp}%
-\special{pa 173 -960}\special{pa 178 -966}\special{fp}\special{pa 201 -988}\special{pa 206 -994}\special{fp}%
-\special{pa 228 -1016}\special{pa 234 -1022}\special{fp}\special{pa 256 -1044}\special{pa 262 -1050}\special{fp}%
-\special{pa 284 -1072}\special{pa 290 -1078}\special{fp}\special{pa 312 -1100}\special{pa 318 -1106}\special{fp}%
-\special{pa 340 -1128}\special{pa 346 -1133}\special{fp}\special{pa 368 -1156}\special{pa 374 -1161}\special{fp}%
-\special{pa 396 -1184}\special{pa 402 -1189}\special{fp}\special{pa 424 -1212}\special{pa 430 -1217}\special{fp}%
-\special{pa 452 -1240}\special{pa 458 -1245}\special{fp}\special{pa 480 -1268}\special{pa 486 -1273}\special{fp}%
-\special{pa 508 -1296}\special{pa 514 -1301}\special{fp}\special{pa 536 -1324}\special{pa 542 -1329}\special{fp}%
-\special{pa 564 -1352}\special{pa 570 -1357}\special{fp}\special{pa 592 -1380}\special{pa 598 -1385}\special{fp}%
-\special{pa 620 -1408}\special{pa 626 -1413}\special{fp}\special{pa 648 -1436}\special{pa 654 -1441}\special{fp}%
-\special{pa 676 -1464}\special{pa 682 -1469}\special{fp}\special{pa 704 -1492}\special{pa 710 -1497}\special{fp}%
-\special{pa 732 -1520}\special{pa 738 -1525}\special{fp}\special{pa 760 -1548}\special{pa 766 -1553}\special{fp}%
-\special{pa 788 -1576}\special{pa 794 -1581}\special{fp}\special{pa 816 -1604}\special{pa 822 -1609}\special{fp}%
-\special{pa 844 -1632}\special{pa 850 -1637}\special{fp}\special{pa 872 -1660}\special{pa 878 -1665}\special{fp}%
-\special{pa 900 -1688}\special{pa 906 -1693}\special{fp}\special{pa 928 -1716}\special{pa 934 -1721}\special{fp}%
-\special{pa 956 -1744}\special{pa 962 -1749}\special{fp}\special{pa 984 -1771}\special{pa 990 -1777}\special{fp}%
-\special{pa 1012 -1799}\special{pa 1018 -1805}\special{fp}\special{pa 1040 -1827}\special{pa 1046 -1833}\special{fp}%
-\special{pa 1068 -1855}\special{pa 1074 -1861}\special{fp}\special{pn 8}%
-\settowidth{\Width}{A}\setlength{\Width}{-1\Width}%
-\settoheight{\Height}{A}\settodepth{\Depth}{A}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(-1.2000,1.0000){\hspace*{\Width}\raisebox{\Height}{A}}%
-%
-%
-\settowidth{\Width}{B}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{B}\settodepth{\Depth}{B}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(2.1500,4.0000){\hspace*{\Width}\raisebox{\Height}{B}}%
-%
-%
-\special{pa -394 -394}\special{pa 787 -1575}%
-\special{fp}%
-\special{pa -1012 0}\special{pa 1307 0}%
-\special{fp}%
-\special{pa 0 213}\special{pa 0 -1858}%
-\special{fp}%
-\settowidth{\Width}{$x$}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{$x$}\settodepth{\Depth}{$x$}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(3.3700,0.0000){\hspace*{\Width}\raisebox{\Height}{$x$}}%
-%
-%
-\settowidth{\Width}{$y$}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{$y$}\settodepth{\Depth}{$y$}\setlength{\Height}{\Depth}%
-\put(0.0000,4.7700){\hspace*{\Width}\raisebox{\Height}{$y$}}%
-%
-%
-\settowidth{\Width}{O}\setlength{\Width}{-1\Width}%
-\settoheight{\Height}{O}\settodepth{\Depth}{O}\setlength{\Height}{-\Height}%
-\put(-0.0500,-0.0500){\hspace*{\Width}\raisebox{\Height}{O}}%
-%
-%
-\end{picture}}% \ No newline at end of file
diff --git a/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/putcell.tex b/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/putcell.tex
deleted file mode 100644
index c7b13ef0..00000000
--- a/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/putcell.tex
+++ /dev/null
@@ -1,143 +0,0 @@
-%%% test.tex 2014-11-25 22:19
-%%% test.sce 2014-11-25 22:19
-{\unitlength=6mm%
-\begin{picture}%
-( 10.00000, 4.00000)( 0.00000, 0.00000)%
-\special{pn 8}%
-%
-\settowidth{\Width}{A}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{A}\settodepth{\Depth}{A}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(1.0000,3.0000){\hspace*{\Width}\raisebox{\Height}{A}}%
-%
-%
-\settowidth{\Width}{B}\setlength{\Width}{-1\Width}%
-\settoheight{\Height}{B}\settodepth{\Depth}{B}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(3.9500,3.0000){\hspace*{\Width}\raisebox{\Height}{B}}%
-%
-%
-\settowidth{\Width}{C}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{C}\settodepth{\Depth}{C}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(4.0500,3.0000){\hspace*{\Width}\raisebox{\Height}{C}}%
-%
-%
-\settowidth{\Width}{D}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{D}\settodepth{\Depth}{D}\setlength{\Height}{-\Height}%
-\put(7.0000,3.9500){\hspace*{\Width}\raisebox{\Height}{D}}%
-%
-%
-\settowidth{\Width}{E}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{E}\settodepth{\Depth}{E}\setlength{\Height}{\Depth}%
-\put(9.0000,2.0500){\hspace*{\Width}\raisebox{\Height}{E}}%
-%
-%
-\settowidth{\Width}{F}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{F}\settodepth{\Depth}{F}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(2.0000,1.0000){\hspace*{\Width}\raisebox{\Height}{F}}%
-%
-%
-\settowidth{\Width}{G}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{G}\settodepth{\Depth}{G}\setlength{\Height}{\Depth}%
-\put(4.0500,0.0500){\hspace*{\Width}\raisebox{\Height}{G}}%
-%
-%
-\settowidth{\Width}{H}\setlength{\Width}{-1\Width}%
-\settoheight{\Height}{H}\settodepth{\Depth}{H}\setlength{\Height}{-\Height}%
-\put(9.9500,1.9500){\hspace*{\Width}\raisebox{\Height}{H}}%
-%
-%
-\settowidth{\Width}{R0}\setlength{\Width}{-1\Width}%
-\settoheight{\Height}{R0}\settodepth{\Depth}{R0}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(-0.1500,4.0000){\hspace*{\Width}\raisebox{\Height}{R0}}%
-%
-%
-\settowidth{\Width}{R1}\setlength{\Width}{-1\Width}%
-\settoheight{\Height}{R1}\settodepth{\Depth}{R1}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(-0.1500,2.0000){\hspace*{\Width}\raisebox{\Height}{R1}}%
-%
-%
-\settowidth{\Width}{R2}\setlength{\Width}{-1\Width}%
-\settoheight{\Height}{R2}\settodepth{\Depth}{R2}\setlength{\Height}{\Depth}%
-\put(-0.1500,0.0500){\hspace*{\Width}\raisebox{\Height}{R2}}%
-%
-%
-\settowidth{\Width}{C0}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{C0}\settodepth{\Depth}{C0}\setlength{\Height}{-\Height}%
-\put(0.0000,-0.1500){\hspace*{\Width}\raisebox{\Height}{C0}}%
-%
-%
-\settowidth{\Width}{C1}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{C1}\settodepth{\Depth}{C1}\setlength{\Height}{-\Height}%
-\put(2.0000,-0.1500){\hspace*{\Width}\raisebox{\Height}{C1}}%
-%
-%
-\settowidth{\Width}{C2}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{C2}\settodepth{\Depth}{C2}\setlength{\Height}{-\Height}%
-\put(4.0000,-0.1500){\hspace*{\Width}\raisebox{\Height}{C2}}%
-%
-%
-\settowidth{\Width}{C3}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{C3}\settodepth{\Depth}{C3}\setlength{\Height}{-\Height}%
-\put(6.0000,-0.1500){\hspace*{\Width}\raisebox{\Height}{C3}}%
-%
-%
-\settowidth{\Width}{C4}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{C4}\settodepth{\Depth}{C4}\setlength{\Height}{-\Height}%
-\put(8.0000,-0.1500){\hspace*{\Width}\raisebox{\Height}{C4}}%
-%
-%
-\settowidth{\Width}{C5}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{C5}\settodepth{\Depth}{C5}\setlength{\Height}{-\Height}%
-\put(10.0000,-0.1500){\hspace*{\Width}\raisebox{\Height}{C5}}%
-%
-%
-\special{pa 0 -945}\special{pa 472 -945}%
-\special{fp}%
-\special{pa 472 -945}\special{pa 945 -945}%
-\special{fp}%
-\special{pa 945 -945}\special{pa 1417 -945}%
-\special{fp}%
-\special{pa 1417 -945}\special{pa 1890 -945}%
-\special{fp}%
-\special{pa 1890 -945}\special{pa 2362 -945}%
-\special{fp}%
-\special{pa 0 -472}\special{pa 472 -472}%
-\special{fp}%
-\special{pa 472 -472}\special{pa 945 -472}%
-\special{fp}%
-\special{pa 945 -472}\special{pa 1417 -472}%
-\special{fp}%
-\special{pa 1417 -472}\special{pa 1890 -472}%
-\special{fp}%
-\special{pa 1890 -472}\special{pa 2362 -472}%
-\special{fp}%
-\special{pa 0 0}\special{pa 472 0}%
-\special{fp}%
-\special{pa 472 0}\special{pa 945 0}%
-\special{fp}%
-\special{pa 945 0}\special{pa 1417 0}%
-\special{fp}%
-\special{pa 1417 0}\special{pa 1890 0}%
-\special{fp}%
-\special{pa 1890 0}\special{pa 2362 0}%
-\special{fp}%
-\special{pa 0 -945}\special{pa 0 -472}%
-\special{fp}%
-\special{pa 0 -472}\special{pa 0 0}%
-\special{fp}%
-\special{pa 472 -945}\special{pa 472 -472}%
-\special{fp}%
-\special{pa 945 -945}\special{pa 945 -472}%
-\special{fp}%
-\special{pa 945 -472}\special{pa 945 0}%
-\special{fp}%
-\special{pa 1417 -945}\special{pa 1417 -472}%
-\special{fp}%
-\special{pa 1417 -472}\special{pa 1417 0}%
-\special{fp}%
-\special{pa 1890 -945}\special{pa 1890 -472}%
-\special{fp}%
-\special{pa 2362 -945}\special{pa 2362 -472}%
-\special{fp}%
-\special{pa 2362 -472}\special{pa 2362 0}%
-\special{fp}%
-\end{picture}}% \ No newline at end of file
diff --git a/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/putcol.tex b/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/putcol.tex
deleted file mode 100644
index 380edea4..00000000
--- a/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/putcol.tex
+++ /dev/null
@@ -1,188 +0,0 @@
-%%% test.tex 2014-11-26 11:26
-%%% test.sce 2014-11-26 11:26
-{\unitlength=6mm%
-\begin{picture}%
-( 10.00000, 4.50000)( 0.00000, 0.00000)%
-\special{pn 8}%
-%
-\settowidth{\Width}{A}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{A}\settodepth{\Depth}{A}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(5.0000,3.7500){\hspace*{\Width}\raisebox{\Height}{A}}%
-%
-%
-\settowidth{\Width}{B}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{B}\settodepth{\Depth}{B}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(5.0000,2.2500){\hspace*{\Width}\raisebox{\Height}{B}}%
-%
-%
-\settowidth{\Width}{C}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{C}\settodepth{\Depth}{C}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(5.0000,0.7500){\hspace*{\Width}\raisebox{\Height}{C}}%
-%
-%
-\settowidth{\Width}{$x^2$}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{$x^2$}\settodepth{\Depth}{$x^2$}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(6.0500,3.7500){\hspace*{\Width}\raisebox{\Height}{$x^2$}}%
-%
-%
-\settowidth{\Width}{$y=\sqrt{x^3}$}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{$y=\sqrt{x^3}$}\settodepth{\Depth}{$y=\sqrt{x^3}$}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(6.0500,2.2500){\hspace*{\Width}\raisebox{\Height}{$y=\sqrt{x^3}$}}%
-%
-%
-\settowidth{\Width}{1}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{1}\settodepth{\Depth}{1}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(1.0000,3.7500){\hspace*{\Width}\raisebox{\Height}{1}}%
-%
-%
-\settowidth{\Width}{二}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{二}\settodepth{\Depth}{二}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(3.0000,3.7500){\hspace*{\Width}\raisebox{\Height}{二}}%
-%
-%
-\settowidth{\Width}{$$}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{$$}\settodepth{\Depth}{$$}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(1.0000,0.7500){\hspace*{\Width}\raisebox{\Height}{$$}}%
-%
-%
-\settowidth{\Width}{$\frac{\pi}{2}$}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{$\frac{\pi}{2}$}\settodepth{\Depth}{$\frac{\pi}{2}$}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(3.0000,0.7500){\hspace*{\Width}\raisebox{\Height}{$\frac{\pi}{2}$}}%
-%
-%
-\settowidth{\Width}{$$}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{$$}\settodepth{\Depth}{$$}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(5.0000,0.7500){\hspace*{\Width}\raisebox{\Height}{$$}}%
-%
-%
-\settowidth{\Width}{$$}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{$$}\settodepth{\Depth}{$$}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(7.2000,0.7500){\hspace*{\Width}\raisebox{\Height}{$$}}%
-%
-%
-\settowidth{\Width}{$\sum{x^2}$}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{$\sum{x^2}$}\settodepth{\Depth}{$\sum{x^2}$}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(9.2000,0.7500){\hspace*{\Width}\raisebox{\Height}{$\sum{x^2}$}}%
-%
-%
-\settowidth{\Width}{R0}\setlength{\Width}{-1\Width}%
-\settoheight{\Height}{R0}\settodepth{\Depth}{R0}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(-0.1500,4.5000){\hspace*{\Width}\raisebox{\Height}{R0}}%
-%
-%
-\settowidth{\Width}{R1}\setlength{\Width}{-1\Width}%
-\settoheight{\Height}{R1}\settodepth{\Depth}{R1}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(-0.1500,3.0000){\hspace*{\Width}\raisebox{\Height}{R1}}%
-%
-%
-\settowidth{\Width}{R2}\setlength{\Width}{-1\Width}%
-\settoheight{\Height}{R2}\settodepth{\Depth}{R2}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(-0.1500,1.5000){\hspace*{\Width}\raisebox{\Height}{R2}}%
-%
-%
-\settowidth{\Width}{R3}\setlength{\Width}{-1\Width}%
-\settoheight{\Height}{R3}\settodepth{\Depth}{R3}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(-0.1500,0.0000){\hspace*{\Width}\raisebox{\Height}{R3}}%
-%
-%
-\settowidth{\Width}{C0}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{C0}\settodepth{\Depth}{C0}\setlength{\Height}{-\Height}%
-\put(0.0000,-0.1500){\hspace*{\Width}\raisebox{\Height}{C0}}%
-%
-%
-\settowidth{\Width}{C1}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{C1}\settodepth{\Depth}{C1}\setlength{\Height}{-\Height}%
-\put(2.0000,-0.1500){\hspace*{\Width}\raisebox{\Height}{C1}}%
-%
-%
-\settowidth{\Width}{C2}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{C2}\settodepth{\Depth}{C2}\setlength{\Height}{-\Height}%
-\put(4.0000,-0.1500){\hspace*{\Width}\raisebox{\Height}{C2}}%
-%
-%
-\settowidth{\Width}{C3}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{C3}\settodepth{\Depth}{C3}\setlength{\Height}{-\Height}%
-\put(6.0000,-0.1500){\hspace*{\Width}\raisebox{\Height}{C3}}%
-%
-%
-\settowidth{\Width}{C4}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{C4}\settodepth{\Depth}{C4}\setlength{\Height}{-\Height}%
-\put(8.4000,-0.1500){\hspace*{\Width}\raisebox{\Height}{C4}}%
-%
-%
-\settowidth{\Width}{C5}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{C5}\settodepth{\Depth}{C5}\setlength{\Height}{-\Height}%
-\put(10.0000,-0.1500){\hspace*{\Width}\raisebox{\Height}{C5}}%
-%
-%
-\special{pa 0 -1063}\special{pa 472 -1063}%
-\special{fp}%
-\special{pa 472 -1063}\special{pa 945 -1063}%
-\special{fp}%
-\special{pa 945 -1063}\special{pa 1417 -1063}%
-\special{fp}%
-\special{pa 1417 -1063}\special{pa 1984 -1063}%
-\special{fp}%
-\special{pa 1984 -1063}\special{pa 2362 -1063}%
-\special{fp}%
-\special{pa 0 -709}\special{pa 472 -709}%
-\special{fp}%
-\special{pa 472 -709}\special{pa 945 -709}%
-\special{fp}%
-\special{pa 1417 -709}\special{pa 1984 -709}%
-\special{fp}%
-\special{pa 1984 -709}\special{pa 2362 -709}%
-\special{fp}%
-\special{pa 0 -354}\special{pa 472 -354}%
-\special{fp}%
-\special{pa 472 -354}\special{pa 945 -354}%
-\special{fp}%
-\special{pa 1417 -354}\special{pa 1984 -354}%
-\special{fp}%
-\special{pa 1984 -354}\special{pa 2362 -354}%
-\special{fp}%
-\special{pa 0 0}\special{pa 472 0}%
-\special{fp}%
-\special{pa 472 0}\special{pa 945 0}%
-\special{fp}%
-\special{pa 945 0}\special{pa 1417 0}%
-\special{fp}%
-\special{pa 1417 0}\special{pa 1984 0}%
-\special{fp}%
-\special{pa 1984 0}\special{pa 2362 0}%
-\special{fp}%
-\special{pa 0 -1063}\special{pa 0 -709}%
-\special{fp}%
-\special{pa 0 -709}\special{pa 0 -354}%
-\special{fp}%
-\special{pa 0 -354}\special{pa 0 0}%
-\special{fp}%
-\special{pa 472 -1063}\special{pa 472 -709}%
-\special{fp}%
-\special{pa 472 -354}\special{pa 472 0}%
-\special{fp}%
-\special{pa 945 -1063}\special{pa 945 -709}%
-\special{fp}%
-\special{pa 945 -709}\special{pa 945 -354}%
-\special{fp}%
-\special{pa 945 -354}\special{pa 945 0}%
-\special{fp}%
-\special{pa 1417 -1063}\special{pa 1417 -709}%
-\special{fp}%
-\special{pa 1417 -709}\special{pa 1417 -354}%
-\special{fp}%
-\special{pa 1417 -354}\special{pa 1417 0}%
-\special{fp}%
-\special{pa 1984 -1063}\special{pa 1984 -709}%
-\special{fp}%
-\special{pa 1984 -709}\special{pa 1984 -354}%
-\special{fp}%
-\special{pa 1984 -354}\special{pa 1984 0}%
-\special{fp}%
-\special{pa 2362 -1063}\special{pa 2362 -709}%
-\special{fp}%
-\special{pa 2362 -709}\special{pa 2362 -354}%
-\special{fp}%
-\special{pa 2362 -354}\special{pa 2362 0}%
-\special{fp}%
-\end{picture}}% \ No newline at end of file
diff --git a/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/putintersect.tex b/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/putintersect.tex
deleted file mode 100644
index 81f6302d..00000000
--- a/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/putintersect.tex
+++ /dev/null
@@ -1,99 +0,0 @@
-%%% fig.tex 2015-8-3 21:32
-%%% fig.sce 2015-8-3 21:32
-{\unitlength=4mm%
-\begin{picture}%
-( 7.06000, 7.34000)( -3.06000, -3.34000)%
-\special{pn 8}%
-%
-\special{pa -367 526}\special{pa -365 495}\special{pa -359 429}\special{pa -353 366}%
-\special{pa -348 305}\special{pa -342 247}\special{pa -337 192}\special{pa -331 139}%
-\special{pa -325 88}\special{pa -320 40}\special{pa -314 -5}\special{pa -309 -49}%
-\special{pa -303 -90}\special{pa -298 -128}\special{pa -292 -165}\special{pa -286 -199}%
-\special{pa -281 -231}\special{pa -275 -261}\special{pa -270 -288}\special{pa -264 -314}%
-\special{pa -258 -338}\special{pa -253 -360}\special{pa -247 -380}\special{pa -242 -398}%
-\special{pa -236 -414}\special{pa -230 -428}\special{pa -225 -441}\special{pa -219 -452}%
-\special{pa -214 -461}\special{pa -208 -469}\special{pa -203 -475}\special{pa -197 -480}%
-\special{pa -191 -483}\special{pa -186 -485}\special{pa -180 -485}\special{pa -175 -484}%
-\special{pa -169 -481}\special{pa -163 -478}\special{pa -158 -473}\special{pa -152 -467}%
-\special{pa -147 -459}\special{pa -141 -451}\special{pa -135 -442}\special{pa -130 -431}%
-\special{pa -124 -420}\special{pa -119 -407}\special{pa -113 -394}\special{pa -108 -380}%
-\special{pa -102 -365}\special{pa -96 -349}\special{pa -91 -333}\special{pa -85 -316}%
-\special{pa -80 -298}\special{pa -74 -280}\special{pa -68 -261}\special{pa -63 -241}%
-\special{pa -57 -222}\special{pa -52 -201}\special{pa -46 -180}\special{pa -41 -159}%
-\special{pa -35 -138}\special{pa -29 -116}\special{pa -24 -94}\special{pa -18 -72}%
-\special{pa -13 -50}\special{pa -7 -28}\special{pa -1 -6}\special{pa 4 17}\special{pa 10 39}%
-\special{pa 15 61}\special{pa 21 83}\special{pa 27 105}\special{pa 32 127}\special{pa 38 149}%
-\special{pa 43 170}\special{pa 49 191}\special{pa 54 211}\special{pa 60 231}\special{pa 66 251}%
-\special{pa 71 270}\special{pa 77 289}\special{pa 82 307}\special{pa 88 324}\special{pa 94 341}%
-\special{pa 99 357}\special{pa 105 373}\special{pa 110 387}\special{pa 116 401}\special{pa 122 414}%
-\special{pa 127 426}\special{pa 133 437}\special{pa 138 446}\special{pa 144 455}\special{pa 149 463}%
-\special{pa 155 470}\special{pa 161 475}\special{pa 166 480}\special{pa 172 483}\special{pa 177 484}%
-\special{pa 183 485}\special{pa 189 484}\special{pa 194 482}\special{pa 200 478}\special{pa 205 472}%
-\special{pa 211 465}\special{pa 216 457}\special{pa 222 447}\special{pa 228 435}\special{pa 233 421}%
-\special{pa 239 406}\special{pa 244 389}\special{pa 250 370}\special{pa 256 349}\special{pa 261 326}%
-\special{pa 267 302}\special{pa 272 275}\special{pa 278 246}\special{pa 284 215}\special{pa 289 182}%
-\special{pa 295 147}\special{pa 300 109}\special{pa 306 70}\special{pa 311 28}\special{pa 317 -17}%
-\special{pa 323 -64}\special{pa 328 -113}\special{pa 334 -165}\special{pa 339 -219}%
-\special{pa 345 -276}\special{pa 351 -335}\special{pa 356 -397}\special{pa 362 -462}%
-\special{pa 367 -529}\special{pa 373 -600}\special{pa 375 -630}%
-\special{fp}%
-\special{pa -482 83}\special{pa -459 72}\special{pa -437 61}\special{pa -414 49}\special{pa -391 38}%
-\special{pa -368 27}\special{pa -346 15}\special{pa -323 4}\special{pa -300 -7}\special{pa -278 -19}%
-\special{pa -255 -30}\special{pa -232 -41}\special{pa -210 -53}\special{pa -187 -64}%
-\special{pa -164 -75}\special{pa -142 -87}\special{pa -119 -98}\special{pa -96 -109}%
-\special{pa -73 -121}\special{pa -51 -132}\special{pa -28 -143}\special{pa -5 -155}%
-\special{pa 17 -166}\special{pa 40 -177}\special{pa 63 -189}\special{pa 85 -200}\special{pa 108 -212}%
-\special{pa 131 -223}\special{pa 153 -234}\special{pa 176 -246}\special{pa 199 -257}%
-\special{pa 222 -268}\special{pa 244 -280}\special{pa 267 -291}\special{pa 290 -302}%
-\special{pa 312 -314}\special{pa 335 -325}\special{pa 358 -336}\special{pa 380 -348}%
-\special{pa 403 -359}\special{pa 426 -370}\special{pa 448 -382}\special{pa 471 -393}%
-\special{pa 494 -404}\special{pa 516 -416}\special{pa 539 -427}\special{pa 562 -438}%
-\special{pa 585 -450}\special{pa 607 -461}\special{pa 630 -472}%
-\special{fp}%
-\special{pa -304 -11}\special{pa -311 -15}\special{pa -319 -15}\special{pa -326 -11}%
-\special{pa -330 -4}\special{pa -330 4}\special{pa -326 11}\special{pa -319 15}\special{pa -311 15}%
-\special{pa -304 11}\special{pa -300 4}\special{pa -300 -4}\special{pa -304 -11}\special{sh 1}\special{fp}%
-\special{pa -24 -151}\special{pa -31 -155}\special{pa -39 -155}\special{pa -47 -151}%
-\special{pa -51 -144}\special{pa -51 -136}\special{pa -47 -129}\special{pa -39 -125}%
-\special{pa -31 -125}\special{pa -24 -129}\special{pa -20 -136}\special{pa -20 -144}%
-\special{pa -24 -151}\special{sh 1}\special{fp}%
-\special{pa 361 -344}\special{pa 354 -348}\special{pa 346 -348}\special{pa 339 -344}%
-\special{pa 335 -337}\special{pa 335 -329}\special{pa 339 -322}\special{pa 346 -317}%
-\special{pa 354 -317}\special{pa 361 -322}\special{pa 366 -329}\special{pa 366 -337}%
-\special{pa 361 -344}\special{sh 1}\special{fp}%
-\special{pn 8}%
-\special{pa -482 0}\special{pa 630 0}%
-\special{fp}%
-\special{pn 8}%
-\special{pa 555 24}\special{pa 630 0}\special{pa 555 -24}\special{pa 555 0}\special{pa 555 24}%
-\special{sh 1}\special{ip}%
-\special{pn 8}%
-\special{pa 555 24}\special{pa 630 0}\special{pa 555 -24}\special{pa 555 0}\special{pa 555 24}%
-\special{fp}%
-\special{pn 8}%
-\special{pn 8}%
-\special{pa 0 526}\special{pa 0 -630}%
-\special{fp}%
-\special{pn 8}%
-\special{pa 24 -555}\special{pa 0 -630}\special{pa -24 -555}\special{pa 0 -555}\special{pa 24 -555}%
-\special{sh 1}\special{ip}%
-\special{pn 8}%
-\special{pa 24 -555}\special{pa 0 -630}\special{pa -24 -555}\special{pa 0 -555}\special{pa 24 -555}%
-\special{fp}%
-\special{pn 8}%
-\settowidth{\Width}{$x$}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{$x$}\settodepth{\Depth}{$x$}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(4.0500,0.0000){\hspace*{\Width}\raisebox{\Height}{$x$}}%
-%
-%
-\settowidth{\Width}{$y$}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{$y$}\settodepth{\Depth}{$y$}\setlength{\Height}{\Depth}%
-\put(0.0000,4.0500){\hspace*{\Width}\raisebox{\Height}{$y$}}%
-%
-%
-\settowidth{\Width}{O}\setlength{\Width}{-1\Width}%
-\settoheight{\Height}{O}\settodepth{\Depth}{O}\setlength{\Height}{-\Height}%
-\put(-0.0500,-0.0500){\hspace*{\Width}\raisebox{\Height}{O}}%
-%
-%
-\end{picture}}% \ No newline at end of file
diff --git a/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/putoncurve.tex b/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/putoncurve.tex
deleted file mode 100644
index 0cfce6b3..00000000
--- a/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/putoncurve.tex
+++ /dev/null
@@ -1,48 +0,0 @@
-%%% putoncurve.tex 2014-11-10 16:31
-%%% partcrv.sce 2014-11-10 13:44
-{\unitlength=1cm%
-\begin{picture}%
-( 6.00000, 6.00000)( -3.00000, -3.00000)%
-\special{pn 8}%
-%
-\special{pa -383 -188}\special{pa -390 -192}\special{pa -398 -192}\special{pa -405 -188}%
-\special{pa -409 -181}\special{pa -409 -173}\special{pa -405 -166}\special{pa -398 -162}%
-\special{pa -390 -162}\special{pa -383 -166}\special{pa -378 -173}\special{pa -378 -181}%
-\special{pa -383 -188}\special{sh 1}\special{fp}%
-\settowidth{\Width}{P}\setlength{\Width}{-1\Width}%
-\settoheight{\Height}{P}\settodepth{\Depth}{P}\setlength{\Height}{\Depth}%
-\put(-1.0500,0.5000){\hspace*{\Width}\raisebox{\Height}{P}}%
-%
-%
-\special{pa 787 0}\special{pa 768 -2}\special{pa 713 -13}\special{pa 627 -42}\special{pa 521 -93}%
-\special{pa 405 -168}\special{pa 292 -265}\special{pa 191 -376}\special{pa 110 -492}%
-\special{pa 52 -602}\special{pa 18 -694}\special{pa 3 -758}\special{pa 0 -786}\special{pa -1 -777}%
-\special{pa -9 -730}\special{pa -32 -651}\special{pa -78 -549}\special{pa -147 -434}%
-\special{pa -239 -319}\special{pa -348 -214}\special{pa -464 -128}\special{pa -576 -64}%
-\special{pa -673 -25}\special{pa -745 -6}\special{pa -783 0}\special{pa -783 0}\special{pa -745 6}%
-\special{pa -673 25}\special{pa -576 64}\special{pa -464 128}\special{pa -348 214}%
-\special{pa -239 319}\special{pa -147 434}\special{pa -78 549}\special{pa -32 651}%
-\special{pa -9 730}\special{pa -1 777}\special{pa 0 786}\special{pa 3 758}\special{pa 18 694}%
-\special{pa 52 602}\special{pa 110 492}\special{pa 191 376}\special{pa 292 265}\special{pa 405 168}%
-\special{pa 521 93}\special{pa 627 42}\special{pa 713 13}\special{pa 768 2}\special{pa 787 0}%
-\special{fp}%
-\special{pa -1181 0}\special{pa 1181 0}%
-\special{fp}%
-\special{pa 0 1181}\special{pa 0 -1181}%
-\special{fp}%
-\settowidth{\Width}{$x$}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{$x$}\settodepth{\Depth}{$x$}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(3.0500,0.0000){\hspace*{\Width}\raisebox{\Height}{$x$}}%
-%
-%
-\settowidth{\Width}{$y$}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{$y$}\settodepth{\Depth}{$y$}\setlength{\Height}{\Depth}%
-\put(0.0000,3.0500){\hspace*{\Width}\raisebox{\Height}{$y$}}%
-%
-%
-\settowidth{\Width}{O}\setlength{\Width}{-1\Width}%
-\settoheight{\Height}{O}\settodepth{\Depth}{O}\setlength{\Height}{-\Height}%
-\put(-0.0500,-0.0500){\hspace*{\Width}\raisebox{\Height}{O}}%
-%
-%
-\end{picture}}% \ No newline at end of file
diff --git a/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/reflectdata.tex b/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/reflectdata.tex
deleted file mode 100644
index d6739898..00000000
--- a/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/reflectdata.tex
+++ /dev/null
@@ -1,161 +0,0 @@
-%%% test.tex 2014-12-3 8:8
-%%% test.sce 2014-12-3 8:8
-{\unitlength=5mm%
-\begin{picture}%
-( 14.00000, 10.00000)( -6.00000, -3.00000)%
-\special{pn 8}%
-%
-\special{pa -188 -402}\special{pa -195 -405}\special{pa -202 -404}\special{pa -207 -399}%
-\special{pa -209 -392}\special{pa -205 -385}\special{pa -199 -382}\special{pa -191 -383}%
-\special{pa -186 -388}\special{pa -185 -396}\special{pa -188 -402}\special{sh 1}\special{fp}%
-\special{pa 402 -205}\special{pa 396 -209}\special{pa 388 -207}\special{pa 383 -202}%
-\special{pa 382 -195}\special{pa 385 -188}\special{pa 392 -185}\special{pa 399 -186}%
-\special{pa 404 -191}\special{pa 405 -199}\special{pa 402 -205}\special{sh 1}\special{fp}%
-\special{pa 205 -205}\special{pa 199 -209}\special{pa 191 -207}\special{pa 186 -202}%
-\special{pa 185 -195}\special{pa 188 -188}\special{pa 195 -185}\special{pa 202 -186}%
-\special{pa 207 -191}\special{pa 209 -199}\special{pa 205 -205}\special{sh 1}\special{fp}%
-\special{pa 599 -599}\special{pa 592 -602}\special{pa 585 -601}\special{pa 580 -596}%
-\special{pa 579 -589}\special{pa 582 -582}\special{pa 589 -579}\special{pa 596 -580}%
-\special{pa 601 -585}\special{pa 602 -592}\special{pa 599 -599}\special{sh 1}\special{fp}%
-\special{pa 1189 -599}\special{pa 1183 -602}\special{pa 1176 -601}\special{pa 1171 -596}%
-\special{pa 1169 -589}\special{pa 1173 -582}\special{pa 1179 -579}\special{pa 1186 -580}%
-\special{pa 1192 -585}\special{pa 1193 -592}\special{pa 1189 -599}\special{sh 1}\special{fp}%
-\special{pa 599 188}\special{pa 592 185}\special{pa 585 186}\special{pa 580 191}\special{pa 579 199}%
-\special{pa 582 205}\special{pa 589 209}\special{pa 596 207}\special{pa 601 202}\special{pa 602 195}%
-\special{pa 599 188}\special{sh 1}\special{fp}%
-\special{pn 8}%
-\special{pa 1577 -1119}\special{pa 1572 -1112}\special{fp}\special{pa 1554 -1087}\special{pa 1549 -1081}\special{fp}%
-\special{pa 1530 -1055}\special{pa 1525 -1049}\special{fp}\special{pa 1506 -1024}\special{pa 1501 -1018}\special{fp}%
-\special{pa 1482 -992}\special{pa 1478 -986}\special{fp}\special{pa 1459 -961}\special{pa 1454 -954}\special{fp}%
-\special{pa 1435 -929}\special{pa 1430 -923}\special{fp}\special{pa 1411 -898}\special{pa 1407 -891}\special{fp}%
-\special{pa 1388 -866}\special{pa 1383 -860}\special{fp}\special{pa 1364 -834}\special{pa 1359 -828}\special{fp}%
-\special{pa 1340 -803}\special{pa 1335 -796}\special{fp}\special{pa 1317 -771}\special{pa 1312 -765}\special{fp}%
-\special{pa 1293 -740}\special{pa 1288 -733}\special{fp}\special{pa 1269 -708}\special{pa 1264 -702}\special{fp}%
-\special{pa 1245 -676}\special{pa 1241 -670}\special{fp}\special{pa 1222 -645}\special{pa 1217 -638}\special{fp}%
-\special{pa 1198 -613}\special{pa 1193 -607}\special{fp}\special{pa 1174 -582}\special{pa 1170 -575}\special{fp}%
-\special{pa 1151 -550}\special{pa 1146 -544}\special{fp}\special{pa 1127 -518}\special{pa 1122 -512}\special{fp}%
-\special{pa 1103 -487}\special{pa 1099 -480}\special{fp}\special{pa 1080 -455}\special{pa 1075 -449}\special{fp}%
-\special{pa 1056 -424}\special{pa 1051 -417}\special{fp}\special{pa 1032 -392}\special{pa 1027 -386}\special{fp}%
-\special{pa 1009 -360}\special{pa 1004 -354}\special{fp}\special{pa 985 -329}\special{pa 980 -322}\special{fp}%
-\special{pa 961 -297}\special{pa 956 -291}\special{fp}\special{pa 937 -266}\special{pa 933 -259}\special{fp}%
-\special{pa 914 -234}\special{pa 909 -228}\special{fp}\special{pa 890 -202}\special{pa 885 -196}\special{fp}%
-\special{pa 866 -171}\special{pa 862 -164}\special{fp}\special{pa 843 -139}\special{pa 838 -133}\special{fp}%
-\special{pa 819 -108}\special{pa 814 -101}\special{fp}\special{pa 795 -76}\special{pa 790 -70}\special{fp}%
-\special{pa 772 -45}\special{pa 767 -38}\special{fp}\special{pa 748 -13}\special{pa 743 -7}\special{fp}%
-\special{pa 724 19}\special{pa 719 25}\special{fp}\special{pa 700 50}\special{pa 696 57}\special{fp}%
-\special{pa 677 82}\special{pa 672 88}\special{fp}\special{pa 653 113}\special{pa 648 120}\special{fp}%
-\special{pa 629 145}\special{pa 625 151}\special{fp}\special{pa 606 177}\special{pa 601 183}\special{fp}%
-\special{pa 582 208}\special{pa 577 215}\special{fp}\special{pa 558 240}\special{pa 554 246}\special{fp}%
-\special{pa 535 271}\special{pa 530 278}\special{fp}\special{pa 511 303}\special{pa 506 309}\special{fp}%
-\special{pa 487 335}\special{pa 482 341}\special{fp}\special{pa 464 366}\special{pa 459 373}\special{fp}%
-\special{pa 440 398}\special{pa 435 404}\special{fp}\special{pa 416 429}\special{pa 411 436}\special{fp}%
-\special{pa 392 461}\special{pa 388 467}\special{fp}\special{pa 369 493}\special{pa 364 499}\special{fp}%
-\special{pa 345 524}\special{pa 340 531}\special{fp}\special{pa 321 556}\special{pa 317 562}\special{fp}%
-\special{pa 298 587}\special{pa 293 594}\special{fp}\special{pn 8}%
-\settowidth{\Width}{(-1,2)}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{(-1,2)}\settodepth{\Depth}{(-1,2)}\setlength{\Height}{\Depth}%
-\put(-1.0000,2.1500){\hspace*{\Width}\raisebox{\Height}{(-1,2)}}%
-%
-%
-\settowidth{\Width}{A}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{A}\settodepth{\Depth}{A}\setlength{\Height}{-\Height}%
-\put(2.1500,0.9500){\hspace*{\Width}\raisebox{\Height}{A}}%
-%
-%
-\settowidth{\Width}{B}\setlength{\Width}{-1\Width}%
-\settoheight{\Height}{B}\settodepth{\Depth}{B}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(0.8500,1.0000){\hspace*{\Width}\raisebox{\Height}{B}}%
-%
-%
-\settowidth{\Width}{C}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{C}\settodepth{\Depth}{C}\setlength{\Height}{-\Height}%
-\put(3.1500,2.9500){\hspace*{\Width}\raisebox{\Height}{C}}%
-%
-%
-\settowidth{\Width}{D}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{D}\settodepth{\Depth}{D}\setlength{\Height}{-\Height}%
-\put(6.1500,2.9500){\hspace*{\Width}\raisebox{\Height}{D}}%
-%
-%
-\settowidth{\Width}{E}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{E}\settodepth{\Depth}{E}\setlength{\Height}{-\Height}%
-\put(3.1500,-1.0500){\hspace*{\Width}\raisebox{\Height}{E}}%
-%
-%
-\special{pn 16}%
-\special{pa -984 -591}\special{pa -983 -566}\special{pa -978 -542}\special{pa -970 -518}%
-\special{pa -960 -496}\special{pa -947 -475}\special{pa -931 -456}\special{pa -913 -439}%
-\special{pa -893 -424}\special{pa -871 -412}\special{pa -848 -403}\special{pa -824 -397}%
-\special{pa -800 -394}\special{pa -775 -394}\special{pa -751 -397}\special{pa -727 -403}%
-\special{pa -704 -412}\special{pa -682 -424}\special{pa -662 -439}\special{pa -644 -456}%
-\special{pa -628 -475}\special{pa -615 -496}\special{pa -604 -518}\special{pa -597 -542}%
-\special{pa -592 -566}\special{pa -591 -591}\special{pa -592 -615}\special{pa -597 -640}%
-\special{pa -604 -663}\special{pa -615 -685}\special{pa -628 -706}\special{pa -644 -725}%
-\special{pa -662 -742}\special{pa -682 -757}\special{pa -704 -769}\special{pa -727 -778}%
-\special{pa -751 -784}\special{pa -775 -787}\special{pa -800 -787}\special{pa -824 -784}%
-\special{pa -848 -778}\special{pa -871 -769}\special{pa -893 -757}\special{pa -913 -742}%
-\special{pa -931 -725}\special{pa -947 -706}\special{pa -960 -685}\special{pa -970 -663}%
-\special{pa -978 -640}\special{pa -983 -615}\special{pa -984 -591}%
-\special{fp}%
-\special{pn 8}%
-\special{pa 969 87}\special{pa 993 81}\special{pa 1006 80}\special{fp}\special{pa 1045 80}\special{pa 1066 83}\special{pa 1083 88}\special{fp}%
-\special{pa 1118 103}\special{pa 1134 113}\special{pa 1150 125}\special{fp}\special{pa 1177 153}\special{pa 1186 165}\special{pa 1198 185}\special{fp}%
-\special{pa 1212 221}\special{pa 1216 232}\special{pa 1220 257}\special{pa 1220 258}\special{fp}%
-\special{pa 1219 297}\special{pa 1218 306}\special{pa 1213 330}\special{pa 1211 335}\special{fp}%
-\special{pa 1196 370}\special{pa 1193 376}\special{pa 1179 396}\special{pa 1174 402}\special{fp}%
-\special{pa 1147 429}\special{pa 1144 431}\special{pa 1124 445}\special{pa 1114 450}\special{fp}%
-\special{pa 1079 465}\special{pa 1055 470}\special{pa 1041 471}\special{fp}\special{pa 1002 471}\special{pa 981 468}\special{pa 965 463}\special{fp}%
-\special{pa 929 448}\special{pa 913 439}\special{pa 897 426}\special{fp}\special{pa 870 399}\special{pa 861 386}\special{pa 849 366}\special{fp}%
-\special{pa 835 331}\special{pa 832 319}\special{pa 828 294}\special{pa 828 293}\special{fp}%
-\special{pa 828 254}\special{pa 829 245}\special{pa 835 221}\special{pa 836 217}\special{fp}%
-\special{pa 851 181}\special{pa 854 176}\special{pa 868 155}\special{pa 873 149}\special{fp}%
-\special{pa 900 122}\special{pa 903 120}\special{pa 923 106}\special{pa 933 101}\special{fp}%
-%
-%
-\special{pa 591 -197}\special{pa 589 -222}\special{pa 584 -246}\special{pa 577 -269}%
-\special{pa 566 -292}\special{pa 553 -313}\special{pa 537 -332}\special{pa 519 -349}%
-\special{pa 499 -363}\special{pa 478 -375}\special{pa 455 -384}\special{pa 431 -390}%
-\special{pa 406 -393}\special{pa 381 -393}\special{pa 357 -390}\special{pa 333 -384}%
-\special{pa 310 -375}\special{pa 288 -363}\special{pa 268 -349}\special{pa 250 -332}%
-\special{pa 234 -313}\special{pa 221 -292}\special{pa 211 -269}\special{pa 203 -246}%
-\special{pa 198 -222}\special{pa 197 -197}\special{pa 198 -172}\special{pa 203 -148}%
-\special{pa 211 -124}\special{pa 221 -102}\special{pa 234 -81}\special{pa 250 -62}%
-\special{pa 268 -45}\special{pa 288 -31}\special{pa 310 -19}\special{pa 333 -10}\special{pa 357 -3}%
-\special{pa 381 0}\special{pa 406 0}\special{pa 431 -3}\special{pa 455 -10}\special{pa 478 -19}%
-\special{pa 499 -31}\special{pa 519 -45}\special{pa 537 -62}\special{pa 553 -81}\special{pa 566 -102}%
-\special{pa 577 -124}\special{pa 584 -148}\special{pa 589 -172}\special{pa 591 -197}%
-\special{fp}%
-\special{pa 591 -984}\special{pa 592 -960}\special{pa 597 -935}\special{pa 604 -912}%
-\special{pa 615 -889}\special{pa 628 -869}\special{pa 644 -849}\special{pa 662 -833}%
-\special{pa 682 -818}\special{pa 704 -806}\special{pa 727 -797}\special{pa 751 -791}%
-\special{pa 775 -788}\special{pa 800 -788}\special{pa 824 -791}\special{pa 848 -797}%
-\special{pa 871 -806}\special{pa 893 -818}\special{pa 913 -833}\special{pa 931 -849}%
-\special{pa 947 -869}\special{pa 960 -889}\special{pa 970 -912}\special{pa 978 -935}%
-\special{pa 983 -960}\special{pa 984 -984}\special{pa 983 -1009}\special{pa 978 -1033}%
-\special{pa 970 -1057}\special{pa 960 -1079}\special{pa 947 -1100}\special{pa 931 -1119}%
-\special{pa 913 -1136}\special{pa 893 -1150}\special{pa 871 -1162}\special{pa 848 -1171}%
-\special{pa 824 -1178}\special{pa 800 -1181}\special{pa 775 -1181}\special{pa 751 -1178}%
-\special{pa 727 -1171}\special{pa 704 -1162}\special{pa 682 -1150}\special{pa 662 -1136}%
-\special{pa 644 -1119}\special{pa 628 -1100}\special{pa 615 -1079}\special{pa 604 -1057}%
-\special{pa 597 -1033}\special{pa 592 -1009}\special{pa 591 -984}%
-\special{fp}%
-\special{pa -1181 0}\special{pa 1575 0}%
-\special{fp}%
-\special{pa 0 591}\special{pa 0 -1378}%
-\special{fp}%
-\settowidth{\Width}{$x$}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{$x$}\settodepth{\Depth}{$x$}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(8.0500,0.0000){\hspace*{\Width}\raisebox{\Height}{$x$}}%
-%
-%
-\settowidth{\Width}{$y$}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{$y$}\settodepth{\Depth}{$y$}\setlength{\Height}{\Depth}%
-\put(0.0000,7.0500){\hspace*{\Width}\raisebox{\Height}{$y$}}%
-%
-%
-\settowidth{\Width}{O}\setlength{\Width}{-1\Width}%
-\settoheight{\Height}{O}\settodepth{\Depth}{O}\setlength{\Height}{-\Height}%
-\put(-0.0500,-0.0500){\hspace*{\Width}\raisebox{\Height}{O}}%
-%
-%
-\end{picture}}% \ No newline at end of file
diff --git a/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/reflectpoint.tex b/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/reflectpoint.tex
deleted file mode 100644
index baaa1db9..00000000
--- a/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/reflectpoint.tex
+++ /dev/null
@@ -1,128 +0,0 @@
-%%% test.tex 2014-12-3 7:41
-%%% test.sce 2014-12-3 7:41
-{\unitlength=6mm%
-\begin{picture}%
-( 10.00000, 8.00000)( -3.00000, -2.00000)%
-\special{pn 8}%
-%
-\special{pa 245 -8}\special{pa 238 -12}\special{pa 231 -11}\special{pa 226 -5}\special{pa 225 2}%
-\special{pa 228 8}\special{pa 234 12}\special{pa 242 11}\special{pa 247 5}\special{pa 248 -2}%
-\special{pa 245 -8}\special{sh 1}\special{fp}%
-\special{pa -228 -245}\special{pa -234 -248}\special{pa -242 -247}\special{pa -247 -242}%
-\special{pa -248 -234}\special{pa -245 -228}\special{pa -238 -225}\special{pa -231 -226}%
-\special{pa -226 -231}\special{pa -225 -238}\special{pa -228 -245}\special{sh 1}\special{fp}%
-\special{pa 481 -717}\special{pa 474 -720}\special{pa 467 -719}\special{pa 462 -714}%
-\special{pa 461 -707}\special{pa 464 -700}\special{pa 471 -697}\special{pa 478 -698}%
-\special{pa 483 -703}\special{pa 484 -711}\special{pa 481 -717}\special{sh 1}\special{fp}%
-\special{pa 245 -245}\special{pa 238 -248}\special{pa 231 -247}\special{pa 226 -242}%
-\special{pa 225 -234}\special{pa 228 -228}\special{pa 234 -225}\special{pa 242 -226}%
-\special{pa 247 -231}\special{pa 248 -238}\special{pa 245 -245}\special{sh 1}\special{fp}%
-\special{pa 717 -481}\special{pa 711 -484}\special{pa 703 -483}\special{pa 698 -478}%
-\special{pa 697 -471}\special{pa 700 -464}\special{pa 707 -461}\special{pa 714 -462}%
-\special{pa 719 -467}\special{pa 720 -474}\special{pa 717 -481}\special{sh 1}\special{fp}%
-\special{pa 1189 -717}\special{pa 1183 -720}\special{pa 1176 -719}\special{pa 1171 -714}%
-\special{pa 1169 -707}\special{pa 1173 -700}\special{pa 1179 -697}\special{pa 1186 -698}%
-\special{pa 1192 -703}\special{pa 1193 -711}\special{pa 1189 -717}\special{sh 1}\special{fp}%
-\special{pa 717 -1189}\special{pa 711 -1193}\special{pa 703 -1192}\special{pa 698 -1186}%
-\special{pa 697 -1179}\special{pa 700 -1173}\special{pa 707 -1169}\special{pa 714 -1171}%
-\special{pa 719 -1176}\special{pa 720 -1183}\special{pa 717 -1189}\special{sh 1}\special{fp}%
-\special{pa 717 228}\special{pa 711 225}\special{pa 703 226}\special{pa 698 231}\special{pa 697 238}%
-\special{pa 700 245}\special{pa 707 248}\special{pa 714 247}\special{pa 719 242}\special{pa 720 234}%
-\special{pa 717 228}\special{sh 1}\special{fp}%
-\special{pa 1378 322}\special{pa 1372 319}\special{pa 1365 320}\special{pa 1360 325}%
-\special{pa 1358 333}\special{pa 1362 339}\special{pa 1368 342}\special{pa 1375 341}%
-\special{pa 1381 336}\special{pa 1382 329}\special{pa 1378 322}\special{sh 1}\special{fp}%
-\settowidth{\Width}{(-1,1)}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{(-1,1)}\settodepth{\Depth}{(-1,1)}\setlength{\Height}{\Depth}%
-\put(-1.0000,1.1500){\hspace*{\Width}\raisebox{\Height}{(-1,1)}}%
-%
-%
-\settowidth{\Width}{(1,0)}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{(1,0)}\settodepth{\Depth}{(1,0)}\setlength{\Height}{-\Height}%
-\put(1.0000,-0.1500){\hspace*{\Width}\raisebox{\Height}{(1,0)}}%
-%
-%
-\settowidth{\Width}{(2,3)}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{(2,3)}\settodepth{\Depth}{(2,3)}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(2.1500,3.0000){\hspace*{\Width}\raisebox{\Height}{(2,3)}}%
-%
-%
-\settowidth{\Width}{A}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{A}\settodepth{\Depth}{A}\setlength{\Height}{-\Height}%
-\put(1.1500,0.9500){\hspace*{\Width}\raisebox{\Height}{A}}%
-%
-%
-\settowidth{\Width}{B}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{B}\settodepth{\Depth}{B}\setlength{\Height}{-\Height}%
-\put(3.1500,1.9500){\hspace*{\Width}\raisebox{\Height}{B}}%
-%
-%
-\settowidth{\Width}{C}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{C}\settodepth{\Depth}{C}\setlength{\Height}{-\Height}%
-\put(5.1500,2.9500){\hspace*{\Width}\raisebox{\Height}{C}}%
-%
-%
-\settowidth{\Width}{D}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{D}\settodepth{\Depth}{D}\setlength{\Height}{-\Height}%
-\put(3.1500,4.9500){\hspace*{\Width}\raisebox{\Height}{D}}%
-%
-%
-\settowidth{\Width}{E}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{E}\settodepth{\Depth}{E}\setlength{\Height}{-\Height}%
-\put(3.1500,-1.0500){\hspace*{\Width}\raisebox{\Height}{E}}%
-%
-%
-\settowidth{\Width}{F}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{F}\settodepth{\Depth}{F}\setlength{\Height}{-\Height}%
-\put(5.9500,-1.4500){\hspace*{\Width}\raisebox{\Height}{F}}%
-%
-%
-\special{pn 8}%
-\special{pa 1537 -1421}\special{pa 1534 -1414}\special{fp}\special{pa 1520 -1386}\special{pa 1516 -1379}\special{fp}%
-\special{pa 1502 -1351}\special{pa 1499 -1344}\special{fp}\special{pa 1485 -1316}\special{pa 1481 -1309}\special{fp}%
-\special{pa 1467 -1281}\special{pa 1464 -1274}\special{fp}\special{pa 1450 -1246}\special{pa 1446 -1239}\special{fp}%
-\special{pa 1432 -1211}\special{pa 1429 -1204}\special{fp}\special{pa 1415 -1176}\special{pa 1411 -1169}\special{fp}%
-\special{pa 1397 -1141}\special{pa 1394 -1134}\special{fp}\special{pa 1380 -1106}\special{pa 1376 -1099}\special{fp}%
-\special{pa 1362 -1071}\special{pa 1359 -1064}\special{fp}\special{pa 1345 -1036}\special{pa 1341 -1029}\special{fp}%
-\special{pa 1327 -1001}\special{pa 1324 -994}\special{fp}\special{pa 1310 -966}\special{pa 1306 -959}\special{fp}%
-\special{pa 1292 -931}\special{pa 1289 -924}\special{fp}\special{pa 1275 -896}\special{pa 1271 -889}\special{fp}%
-\special{pa 1257 -861}\special{pa 1254 -854}\special{fp}\special{pa 1240 -826}\special{pa 1236 -819}\special{fp}%
-\special{pa 1222 -791}\special{pa 1219 -784}\special{fp}\special{pa 1205 -756}\special{pa 1201 -749}\special{fp}%
-\special{pa 1187 -721}\special{pa 1184 -714}\special{fp}\special{pa 1170 -686}\special{pa 1166 -679}\special{fp}%
-\special{pa 1152 -651}\special{pa 1149 -644}\special{fp}\special{pa 1135 -616}\special{pa 1131 -609}\special{fp}%
-\special{pa 1117 -581}\special{pa 1114 -574}\special{fp}\special{pa 1100 -546}\special{pa 1096 -539}\special{fp}%
-\special{pa 1082 -511}\special{pa 1079 -504}\special{fp}\special{pa 1065 -476}\special{pa 1061 -469}\special{fp}%
-\special{pa 1047 -441}\special{pa 1044 -434}\special{fp}\special{pa 1030 -406}\special{pa 1026 -399}\special{fp}%
-\special{pa 1012 -371}\special{pa 1009 -364}\special{fp}\special{pa 995 -336}\special{pa 991 -329}\special{fp}%
-\special{pa 977 -301}\special{pa 974 -294}\special{fp}\special{pa 960 -266}\special{pa 956 -259}\special{fp}%
-\special{pa 942 -231}\special{pa 939 -224}\special{fp}\special{pa 925 -196}\special{pa 921 -189}\special{fp}%
-\special{pa 907 -161}\special{pa 904 -154}\special{fp}\special{pa 890 -126}\special{pa 886 -119}\special{fp}%
-\special{pa 872 -91}\special{pa 869 -84}\special{fp}\special{pa 855 -56}\special{pa 851 -49}\special{fp}%
-\special{pa 837 -21}\special{pa 834 -14}\special{fp}\special{pa 820 14}\special{pa 816 21}\special{fp}%
-\special{pa 802 49}\special{pa 799 56}\special{fp}\special{pa 785 84}\special{pa 781 91}\special{fp}%
-\special{pa 767 119}\special{pa 764 126}\special{fp}\special{pa 750 154}\special{pa 746 161}\special{fp}%
-\special{pa 732 189}\special{pa 729 196}\special{fp}\special{pa 715 224}\special{pa 711 231}\special{fp}%
-\special{pa 697 259}\special{pa 694 266}\special{fp}\special{pa 680 294}\special{pa 676 301}\special{fp}%
-\special{pa 662 329}\special{pa 659 336}\special{fp}\special{pa 645 364}\special{pa 641 371}\special{fp}%
-\special{pa 627 399}\special{pa 624 406}\special{fp}\special{pa 610 434}\special{pa 606 441}\special{fp}%
-\special{pa 592 469}\special{pa 589 476}\special{fp}\special{pn 8}%
-\special{pa -709 0}\special{pa 1654 0}%
-\special{fp}%
-\special{pa 0 472}\special{pa 0 -1417}%
-\special{fp}%
-\settowidth{\Width}{$x$}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{$x$}\settodepth{\Depth}{$x$}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(7.0500,0.0000){\hspace*{\Width}\raisebox{\Height}{$x$}}%
-%
-%
-\settowidth{\Width}{$y$}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{$y$}\settodepth{\Depth}{$y$}\setlength{\Height}{\Depth}%
-\put(0.0000,6.0500){\hspace*{\Width}\raisebox{\Height}{$y$}}%
-%
-%
-\settowidth{\Width}{O}\setlength{\Width}{-1\Width}%
-\settoheight{\Height}{O}\settodepth{\Depth}{O}\setlength{\Height}{-\Height}%
-\put(-0.0500,-0.0500){\hspace*{\Width}\raisebox{\Height}{O}}%
-%
-%
-\end{picture}}% \ No newline at end of file
diff --git a/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/rotatedata.tex b/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/rotatedata.tex
deleted file mode 100644
index 68bf0eb0..00000000
--- a/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/rotatedata.tex
+++ /dev/null
@@ -1,126 +0,0 @@
-%%% test.tex 2014-11-1 16:34
-%%% test.sce 2014-11-1 16:34
-{\unitlength=6mm%
-\begin{picture}%
-( 14.00000, 9.00000)( -6.00000, -2.00000)%
-\special{pn 8}%
-%
-\special{pn 16}%
-\special{pa 1222 -1001}\special{pa 1184 -1019}\special{pa 1145 -1033}\special{pa 1104 -1042}%
-\special{pa 1062 -1045}\special{pa 1020 -1043}\special{pa 979 -1036}\special{pa 939 -1024}%
-\special{pa 900 -1007}\special{pa 864 -985}\special{pa 832 -959}\special{pa 802 -929}%
-\special{pa 777 -895}\special{pa 756 -859}\special{pa 740 -820}\special{pa 729 -779}%
-\special{pa 723 -738}\special{pa 722 -696}\special{pa 727 -654}\special{pa 736 -614}%
-\special{pa 751 -574}\special{pa 771 -537}\special{pa 795 -503}\special{pa 823 -472}%
-\special{pa 855 -444}\special{pa 890 -421}\special{pa 927 -403}\special{pa 967 -389}%
-\special{pa 1008 -380}\special{pa 1050 -377}\special{pa 1092 -379}\special{pa 1133 -386}%
-\special{pa 1173 -398}\special{pa 1211 -415}\special{pa 1247 -437}\special{pa 1280 -463}%
-\special{pa 1309 -493}\special{pa 1335 -527}\special{pa 1355 -563}\special{pa 1372 -602}%
-\special{pa 1383 -642}\special{pa 1389 -684}\special{pa 1390 -726}\special{pa 1385 -768}%
-\special{pa 1375 -808}\special{pa 1361 -848}\special{pa 1341 -885}\special{pa 1317 -919}%
-\special{pa 1289 -950}\special{pa 1257 -978}\special{pa 1222 -1001}%
-\special{fp}%
-\special{pn 8}%
-\special{pa -773 194}\special{pa -741 172}\special{fp}\special{pa -711 147}\special{pa -706 143}\special{pa -684 119}\special{fp}%
-\special{pa -661 88}\special{pa -654 78}\special{pa -642 54}\special{fp}\special{pa -626 19}\special{pa -620 1}\special{pa -615 -18}\special{fp}%
-\special{pa -608 -57}\special{pa -606 -81}\special{pa -606 -95}\special{fp}\special{pa -608 -134}\special{pa -612 -165}\special{pa -615 -172}\special{fp}%
-\special{pa -625 -210}\special{pa -640 -244}\special{pa -641 -245}\special{fp}\special{pa -660 -279}\special{pa -661 -280}\special{pa -683 -310}\special{fp}%
-\special{pa -710 -338}\special{pa -715 -344}\special{pa -740 -363}\special{fp}\special{pa -772 -385}\special{pa -784 -392}\special{pa -807 -402}\special{fp}%
-\special{pa -843 -415}\special{pa -862 -421}\special{pa -881 -424}\special{fp}\special{pa -919 -429}\special{pa -946 -430}\special{pa -958 -429}\special{fp}%
-\special{pa -996 -425}\special{pa -1028 -418}\special{pa -1034 -416}\special{fp}\special{pa -1071 -403}\special{pa -1106 -386}\special{pa -1106 -386}\special{fp}%
-\special{pa -1138 -365}\special{pa -1141 -363}\special{pa -1168 -340}\special{fp}%
-\special{pa -1194 -311}\special{pa -1201 -304}\special{pa -1218 -280}\special{fp}%
-\special{pa -1237 -247}\special{pa -1244 -233}\special{pa -1252 -211}\special{fp}%
-\special{pa -1264 -174}\special{pa -1269 -153}\special{pa -1271 -136}\special{fp}%
-\special{pa -1273 -97}\special{pa -1272 -69}\special{pa -1271 -58}\special{fp}\special{pa -1264 -20}\special{pa -1255 13}\special{pa -1253 17}\special{fp}%
-\special{pa -1238 53}\special{pa -1219 86}\special{fp}\special{pa -1196 118}\special{pa -1193 121}\special{pa -1169 146}\special{fp}%
-\special{pa -1139 171}\special{pa -1131 178}\special{pa -1107 192}\special{fp}\special{pa -1072 210}\special{pa -1057 217}\special{pa -1036 223}\special{fp}%
-\special{pa -998 232}\special{pa -975 236}\special{pa -960 237}\special{fp}\special{pa -921 237}\special{pa -892 234}\special{pa -882 232}\special{fp}%
-\special{pa -845 224}\special{pa -811 212}\special{pa -808 211}\special{fp}%
-%
-\settowidth{\Width}{A}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{A}\settodepth{\Depth}{A}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(1.0500,1.0000){\hspace*{\Width}\raisebox{\Height}{A}}%
-%
-%
-\settowidth{\Width}{B}\setlength{\Width}{-1\Width}%
-\settoheight{\Height}{B}\settodepth{\Depth}{B}\setlength{\Height}{\Depth}%
-\put(-0.0500,2.0500){\hspace*{\Width}\raisebox{\Height}{B}}%
-%
-%
-\settowidth{\Width}{C}\setlength{\Width}{-1\Width}%
-\settoheight{\Height}{C}\settodepth{\Depth}{C}\setlength{\Height}{\Depth}%
-\put(2.9500,2.0500){\hspace*{\Width}\raisebox{\Height}{C}}%
-%
-%
-\settowidth{\Width}{D}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{D}\settodepth{\Depth}{D}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(-1.9500,5.0000){\hspace*{\Width}\raisebox{\Height}{D}}%
-%
-%
-\settowidth{\Width}{(1,5)}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{(1,5)}\settodepth{\Depth}{(1,5)}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(1.0500,5.0000){\hspace*{\Width}\raisebox{\Height}{(1,5)}}%
-%
-%
-\special{pa 245 -245}\special{pa 238 -248}\special{pa 231 -247}\special{pa 226 -242}%
-\special{pa 225 -234}\special{pa 228 -228}\special{pa 234 -225}\special{pa 242 -226}%
-\special{pa 247 -231}\special{pa 248 -238}\special{pa 245 -245}\special{sh 1}\special{fp}%
-\special{pa 8 -481}\special{pa 2 -484}\special{pa -5 -483}\special{pa -11 -478}\special{pa -12 -471}%
-\special{pa -8 -464}\special{pa -2 -461}\special{pa 5 -462}\special{pa 11 -467}\special{pa 12 -474}%
-\special{pa 8 -481}\special{sh 1}\special{fp}%
-\special{pa 717 -481}\special{pa 711 -484}\special{pa 703 -483}\special{pa 698 -478}%
-\special{pa 697 -471}\special{pa 700 -464}\special{pa 707 -461}\special{pa 714 -462}%
-\special{pa 719 -467}\special{pa 720 -474}\special{pa 717 -481}\special{sh 1}\special{fp}%
-\special{pa -464 -1189}\special{pa -471 -1193}\special{pa -478 -1192}\special{pa -483 -1186}%
-\special{pa -484 -1179}\special{pa -481 -1173}\special{pa -474 -1169}\special{pa -467 -1171}%
-\special{pa -462 -1176}\special{pa -461 -1183}\special{pa -464 -1189}\special{sh 1}\special{fp}%
-\special{pa 245 -1189}\special{pa 238 -1193}\special{pa 231 -1192}\special{pa 226 -1186}%
-\special{pa 225 -1179}\special{pa 228 -1173}\special{pa 234 -1169}\special{pa 242 -1171}%
-\special{pa 247 -1176}\special{pa 248 -1183}\special{pa 245 -1189}\special{sh 1}\special{fp}%
-\special{pa 570 -236}\special{pa 568 -278}\special{pa 560 -319}\special{pa 547 -359}%
-\special{pa 529 -397}\special{pa 506 -433}\special{pa 480 -465}\special{pa 449 -494}%
-\special{pa 415 -518}\special{pa 378 -538}\special{pa 339 -554}\special{pa 299 -564}%
-\special{pa 257 -570}\special{pa 215 -570}\special{pa 174 -564}\special{pa 133 -554}%
-\special{pa 94 -538}\special{pa 57 -518}\special{pa 23 -494}\special{pa -7 -465}\special{pa -34 -433}%
-\special{pa -57 -397}\special{pa -74 -359}\special{pa -87 -319}\special{pa -95 -278}%
-\special{pa -98 -236}\special{pa -95 -194}\special{pa -87 -153}\special{pa -74 -113}%
-\special{pa -57 -75}\special{pa -34 -40}\special{pa -7 -8}\special{pa 23 21}\special{pa 57 46}%
-\special{pa 94 66}\special{pa 133 81}\special{pa 174 92}\special{pa 215 97}\special{pa 257 97}%
-\special{pa 299 92}\special{pa 339 81}\special{pa 378 66}\special{pa 415 46}\special{pa 449 21}%
-\special{pa 480 -8}\special{pa 506 -40}\special{pa 529 -75}\special{pa 547 -113}\special{pa 560 -153}%
-\special{pa 568 -194}\special{pa 570 -236}%
-\special{fp}%
-\special{pa 945 -334}\special{pa 903 -331}\special{pa 862 -323}\special{pa 822 -311}%
-\special{pa 784 -293}\special{pa 748 -270}\special{pa 716 -244}\special{pa 687 -213}%
-\special{pa 663 -179}\special{pa 642 -142}\special{pa 627 -103}\special{pa 616 -63}%
-\special{pa 611 -21}\special{pa 611 21}\special{pa 616 63}\special{pa 627 103}\special{pa 642 142}%
-\special{pa 662 179}\special{pa 687 213}\special{pa 716 244}\special{pa 748 270}\special{pa 783 293}%
-\special{pa 821 311}\special{pa 861 324}\special{pa 902 332}\special{pa 944 334}\special{pa 986 332}%
-\special{pa 1027 324}\special{pa 1067 311}\special{pa 1105 293}\special{pa 1141 271}%
-\special{pa 1173 244}\special{pa 1202 213}\special{pa 1226 179}\special{pa 1247 143}%
-\special{pa 1262 104}\special{pa 1273 63}\special{pa 1278 21}\special{pa 1278 -21}%
-\special{pa 1273 -62}\special{pa 1262 -103}\special{pa 1247 -142}\special{pa 1227 -179}%
-\special{pa 1202 -213}\special{pa 1173 -243}\special{pa 1141 -270}\special{pa 1106 -292}%
-\special{pa 1068 -310}\special{pa 1028 -323}\special{pa 987 -331}\special{pa 945 -334}%
-\special{fp}%
-\special{pa -1417 0}\special{pa 1890 0}%
-\special{fp}%
-\special{pa 0 472}\special{pa 0 -1654}%
-\special{fp}%
-\settowidth{\Width}{$x$}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{$x$}\settodepth{\Depth}{$x$}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(8.0500,0.0000){\hspace*{\Width}\raisebox{\Height}{$x$}}%
-%
-%
-\settowidth{\Width}{$y$}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{$y$}\settodepth{\Depth}{$y$}\setlength{\Height}{\Depth}%
-\put(0.0000,7.0500){\hspace*{\Width}\raisebox{\Height}{$y$}}%
-%
-%
-\settowidth{\Width}{O}\setlength{\Width}{-1\Width}%
-\settoheight{\Height}{O}\settodepth{\Depth}{O}\setlength{\Height}{-\Height}%
-\put(-0.0500,-0.0500){\hspace*{\Width}\raisebox{\Height}{O}}%
-%
-%
-\end{picture}}% \ No newline at end of file
diff --git a/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/rotatepoint.tex b/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/rotatepoint.tex
deleted file mode 100644
index 882a741c..00000000
--- a/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/rotatepoint.tex
+++ /dev/null
@@ -1,140 +0,0 @@
-%%% test.tex 2014-12-3 8:22
-%%% test.sce 2014-12-3 8:22
-{\unitlength=6mm%
-\begin{picture}%
-( 8.04000, 8.12000)( -1.20000, -1.96000)%
-\special{pn 8}%
-%
-\special{pa 1189 -481}\special{pa 1183 -484}\special{pa 1176 -483}\special{pa 1171 -478}%
-\special{pa 1169 -471}\special{pa 1173 -464}\special{pa 1179 -461}\special{pa 1186 -462}%
-\special{pa 1192 -467}\special{pa 1193 -474}\special{pa 1189 -481}\special{sh 1}\special{fp}%
-\special{pa 245 -245}\special{pa 238 -248}\special{pa 231 -247}\special{pa 226 -242}%
-\special{pa 225 -234}\special{pa 228 -228}\special{pa 234 -225}\special{pa 242 -226}%
-\special{pa 247 -231}\special{pa 248 -238}\special{pa 245 -245}\special{sh 1}\special{fp}%
-\special{pa 481 -717}\special{pa 474 -720}\special{pa 467 -719}\special{pa 462 -714}%
-\special{pa 461 -707}\special{pa 464 -700}\special{pa 471 -697}\special{pa 478 -698}%
-\special{pa 483 -703}\special{pa 484 -711}\special{pa 481 -717}\special{sh 1}\special{fp}%
-\special{pa 1008 -748}\special{pa 1001 -751}\special{pa 994 -750}\special{pa 989 -745}%
-\special{pa 988 -738}\special{pa 991 -731}\special{pa 997 -728}\special{pa 1005 -729}%
-\special{pa 1010 -734}\special{pa 1011 -741}\special{pa 1008 -748}\special{sh 1}\special{fp}%
-\special{pa 1041 -1213}\special{pa 1034 -1216}\special{pa 1027 -1215}\special{pa 1022 -1210}%
-\special{pa 1021 -1203}\special{pa 1024 -1196}\special{pa 1030 -1193}\special{pa 1038 -1194}%
-\special{pa 1043 -1199}\special{pa 1044 -1207}\special{pa 1041 -1213}\special{sh 1}\special{fp}%
-\special{pa 412 256}\special{pa 406 253}\special{pa 399 254}\special{pa 393 259}\special{pa 392 266}%
-\special{pa 396 273}\special{pa 402 276}\special{pa 409 275}\special{pa 414 270}\special{pa 416 263}%
-\special{pa 412 256}\special{sh 1}\special{fp}%
-\settowidth{\Width}{(3,0)}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{(3,0)}\settodepth{\Depth}{(3,0)}\setlength{\Height}{-\Height}%
-\put(3.0000,-0.1500){\hspace*{\Width}\raisebox{\Height}{(3,0)}}%
-%
-%
-\settowidth{\Width}{(5,2)}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{(5,2)}\settodepth{\Depth}{(5,2)}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(5.1500,2.0000){\hspace*{\Width}\raisebox{\Height}{(5,2)}}%
-%
-%
-\settowidth{\Width}{A}\setlength{\Width}{-1\Width}%
-\settoheight{\Height}{A}\settodepth{\Depth}{A}\setlength{\Height}{-\Height}%
-\put(0.8500,0.9500){\hspace*{\Width}\raisebox{\Height}{A}}%
-%
-%
-\settowidth{\Width}{B}\setlength{\Width}{-1\Width}%
-\settoheight{\Height}{B}\settodepth{\Depth}{B}\setlength{\Height}{-\Height}%
-\put(1.8500,2.9500){\hspace*{\Width}\raisebox{\Height}{B}}%
-%
-%
-\settowidth{\Width}{C}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{C}\settodepth{\Depth}{C}\setlength{\Height}{-\Height}%
-\put(4.3800,3.0800){\hspace*{\Width}\raisebox{\Height}{C}}%
-%
-%
-\settowidth{\Width}{D}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{D}\settodepth{\Depth}{D}\setlength{\Height}{-\Height}%
-\put(4.5200,5.0500){\hspace*{\Width}\raisebox{\Height}{D}}%
-%
-%
-\settowidth{\Width}{E}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{E}\settodepth{\Depth}{E}\setlength{\Height}{-\Height}%
-\put(1.8600,-1.1700){\hspace*{\Width}\raisebox{\Height}{E}}%
-%
-%
-\special{pn 8}%
-\special{pa 234 -233}\special{pa 238 -240}\special{fp}\special{pa 253 -269}\special{pa 256 -276}\special{fp}%
-\special{pa 271 -305}\special{pa 274 -312}\special{fp}\special{pa 289 -342}\special{pa 293 -349}\special{fp}%
-\special{pa 307 -378}\special{pa 311 -385}\special{fp}\special{pa 325 -414}\special{pa 329 -422}\special{fp}%
-\special{pa 343 -451}\special{pa 347 -458}\special{fp}\special{pa 362 -487}\special{pa 365 -494}\special{fp}%
-\special{pa 380 -523}\special{pa 383 -531}\special{fp}\special{pa 398 -560}\special{pa 402 -567}\special{fp}%
-\special{pa 416 -596}\special{pa 420 -603}\special{fp}\special{pa 434 -632}\special{pa 438 -640}\special{fp}%
-\special{pa 452 -669}\special{pa 456 -676}\special{fp}\special{pa 471 -705}\special{pa 474 -712}\special{fp}%
-\special{pn 8}%
-\special{pn 8}%
-\special{pa 1003 -740}\special{pa 995 -739}\special{fp}\special{pa 963 -737}\special{pa 955 -737}\special{fp}%
-\special{pa 922 -735}\special{pa 914 -734}\special{fp}\special{pa 882 -733}\special{pa 874 -732}\special{fp}%
-\special{pa 841 -730}\special{pa 833 -730}\special{fp}\special{pa 801 -728}\special{pa 793 -727}\special{fp}%
-\special{pa 760 -725}\special{pa 752 -725}\special{fp}\special{pa 720 -723}\special{pa 712 -723}\special{fp}%
-\special{pa 679 -721}\special{pa 671 -720}\special{fp}\special{pa 639 -718}\special{pa 631 -718}\special{fp}%
-\special{pa 598 -716}\special{pa 590 -716}\special{fp}\special{pa 557 -714}\special{pa 549 -713}\special{fp}%
-\special{pa 517 -711}\special{pa 509 -711}\special{fp}\special{pa 476 -709}\special{pa 468 -708}\special{fp}%
-\special{pn 8}%
-\special{pn 8}%
-\special{pa 1035 -1207}\special{pa 1029 -1202}\special{fp}\special{pa 1006 -1181}\special{pa 1000 -1176}\special{fp}%
-\special{pa 976 -1155}\special{pa 970 -1150}\special{fp}\special{pa 947 -1129}\special{pa 941 -1124}\special{fp}%
-\special{pa 917 -1103}\special{pa 911 -1098}\special{fp}\special{pa 888 -1077}\special{pa 882 -1072}\special{fp}%
-\special{pa 858 -1051}\special{pa 852 -1045}\special{fp}\special{pa 829 -1025}\special{pa 823 -1019}\special{fp}%
-\special{pa 800 -999}\special{pa 794 -993}\special{fp}\special{pa 770 -972}\special{pa 764 -967}\special{fp}%
-\special{pa 741 -946}\special{pa 735 -941}\special{fp}\special{pa 711 -920}\special{pa 705 -915}\special{fp}%
-\special{pa 682 -894}\special{pa 676 -889}\special{fp}\special{pa 652 -868}\special{pa 646 -863}\special{fp}%
-\special{pa 623 -842}\special{pa 617 -837}\special{fp}\special{pa 593 -816}\special{pa 587 -810}\special{fp}%
-\special{pa 564 -790}\special{pa 558 -784}\special{fp}\special{pa 534 -764}\special{pa 528 -758}\special{fp}%
-\special{pa 505 -737}\special{pa 499 -732}\special{fp}\special{pa 475 -711}\special{pa 469 -706}\special{fp}%
-\special{pn 8}%
-\special{pn 8}%
-\special{pa 1185 -471}\special{pa 1177 -474}\special{fp}\special{pa 1148 -484}\special{pa 1140 -486}\special{fp}%
-\special{pa 1110 -496}\special{pa 1103 -499}\special{fp}\special{pa 1073 -508}\special{pa 1065 -511}\special{fp}%
-\special{pa 1036 -521}\special{pa 1028 -523}\special{fp}\special{pa 998 -533}\special{pa 991 -536}\special{fp}%
-\special{pa 961 -546}\special{pa 954 -548}\special{fp}\special{pa 924 -558}\special{pa 916 -561}\special{fp}%
-\special{pa 887 -571}\special{pa 879 -573}\special{fp}\special{pa 849 -583}\special{pa 842 -586}\special{fp}%
-\special{pa 812 -596}\special{pa 804 -598}\special{fp}\special{pa 775 -608}\special{pa 767 -610}\special{fp}%
-\special{pa 737 -620}\special{pa 730 -623}\special{fp}\special{pa 700 -633}\special{pa 692 -635}\special{fp}%
-\special{pa 663 -645}\special{pa 655 -648}\special{fp}\special{pa 625 -658}\special{pa 618 -660}\special{fp}%
-\special{pa 588 -670}\special{pa 581 -673}\special{fp}\special{pa 551 -683}\special{pa 543 -685}\special{fp}%
-\special{pa 514 -695}\special{pa 506 -697}\special{fp}\special{pa 476 -707}\special{pa 469 -710}\special{fp}%
-\special{pn 8}%
-\special{pn 8}%
-\special{pa 712 2}\special{pa 705 -2}\special{fp}\special{pa 676 -16}\special{pa 669 -20}\special{fp}%
-\special{pa 640 -35}\special{pa 632 -38}\special{fp}\special{pa 603 -53}\special{pa 596 -56}\special{fp}%
-\special{pa 567 -71}\special{pa 560 -74}\special{fp}\special{pa 531 -89}\special{pa 523 -93}\special{fp}%
-\special{pa 494 -107}\special{pa 487 -111}\special{fp}\special{pa 458 -125}\special{pa 451 -129}\special{fp}%
-\special{pa 422 -144}\special{pa 414 -147}\special{fp}\special{pa 385 -162}\special{pa 378 -165}\special{fp}%
-\special{pa 349 -180}\special{pa 342 -183}\special{fp}\special{pa 312 -198}\special{pa 305 -202}\special{fp}%
-\special{pa 276 -216}\special{pa 269 -220}\special{fp}\special{pa 240 -234}\special{pa 233 -238}\special{fp}%
-\special{pn 8}%
-\special{pn 8}%
-\special{pa 405 268}\special{pa 403 261}\special{fp}\special{pa 392 230}\special{pa 390 222}\special{fp}%
-\special{pa 379 191}\special{pa 377 184}\special{fp}\special{pa 367 153}\special{pa 364 145}\special{fp}%
-\special{pa 354 114}\special{pa 351 107}\special{fp}\special{pa 341 76}\special{pa 338 68}\special{fp}%
-\special{pa 328 37}\special{pa 325 30}\special{fp}\special{pa 315 -1}\special{pa 312 -9}\special{fp}%
-\special{pa 302 -40}\special{pa 299 -47}\special{fp}\special{pa 289 -78}\special{pa 287 -86}\special{fp}%
-\special{pa 276 -117}\special{pa 274 -124}\special{fp}\special{pa 263 -155}\special{pa 261 -163}\special{fp}%
-\special{pa 250 -194}\special{pa 248 -201}\special{fp}\special{pa 237 -232}\special{pa 235 -240}\special{fp}%
-\special{pn 8}%
-\special{pa -283 0}\special{pa 1616 0}%
-\special{fp}%
-\special{pa 0 463}\special{pa 0 -1455}%
-\special{fp}%
-\settowidth{\Width}{$x$}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{$x$}\settodepth{\Depth}{$x$}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(6.8900,0.0000){\hspace*{\Width}\raisebox{\Height}{$x$}}%
-%
-%
-\settowidth{\Width}{$y$}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{$y$}\settodepth{\Depth}{$y$}\setlength{\Height}{\Depth}%
-\put(0.0000,6.2100){\hspace*{\Width}\raisebox{\Height}{$y$}}%
-%
-%
-\settowidth{\Width}{O}\setlength{\Width}{-1\Width}%
-\settoheight{\Height}{O}\settodepth{\Depth}{O}\setlength{\Height}{-\Height}%
-\put(-0.0500,-0.0500){\hspace*{\Width}\raisebox{\Height}{O}}%
-%
-%
-\end{picture}}% \ No newline at end of file
diff --git a/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/rshade.tex b/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/rshade.tex
deleted file mode 100644
index 92d0d906..00000000
--- a/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/rshade.tex
+++ /dev/null
@@ -1,72 +0,0 @@
-%%% fig.tex 2016-4-23 15:15
-%%% fig.sce 2016-4-23 15:15
-{\unitlength=10mm%
-\begin{picture}%
-( 6.00000, 3.00000)( -3.00000, -1.00000)%
-\special{pn 8}%
-%
-\color[cmyk]{0.2,0,0,0}%
-\color[cmyk]{0.2,0,0,0}%
-\special{pa 147 -293}\special{pa 139 -295}\special{pa 99 -304}\special{pa 60 -311}%
-\special{pa 20 -314}\special{pa -20 -314}\special{pa -60 -311}\special{pa -99 -304}%
-\special{pa -139 -295}\special{pa -179 -283}\special{pa -219 -269}\special{pa -259 -253}%
-\special{pa -298 -236}\special{pa -338 -217}\special{pa -378 -198}\special{pa -418 -179}%
-\special{pa -457 -160}\special{pa -497 -142}\special{pa -537 -124}\special{pa -577 -107}%
-\special{pa -616 -92}\special{pa -656 -78}\special{pa -696 -66}\special{pa -736 -55}%
-\special{pa -775 -45}\special{pa -815 -37}\special{pa -855 -30}\special{pa -895 -24}%
-\special{pa -935 -19}\special{pa -974 -15}\special{pa -1014 -11}\special{pa -1054 -9}%
-\special{pa -1094 -7}\special{pa -1133 -5}\special{pa -1173 -4}\special{pa -1213 -3}%
-\special{pa -1253 -2}\special{pa -1292 -1}\special{pa -1332 -1}\special{pa -1372 -1}%
-\special{pa -1412 0}\special{pa -1452 0}\special{pa -1491 0}\special{pa -1531 0}\special{pa 147 0}%
-\special{pa 147 -293}\special{sh 1}\special{ip}%
-\color[cmyk]{0,0,0,1}%
-\special{pa -1181 -4}\special{pa -1173 -4}\special{pa -1133 -5}\special{pa -1094 -7}%
-\special{pa -1054 -9}\special{pa -1014 -11}\special{pa -974 -15}\special{pa -935 -19}%
-\special{pa -895 -24}\special{pa -855 -30}\special{pa -815 -37}\special{pa -775 -45}%
-\special{pa -736 -55}\special{pa -696 -66}\special{pa -656 -78}\special{pa -616 -92}%
-\special{pa -577 -107}\special{pa -537 -124}\special{pa -497 -142}\special{pa -457 -160}%
-\special{pa -418 -179}\special{pa -378 -198}\special{pa -338 -217}\special{pa -298 -236}%
-\special{pa -259 -253}\special{pa -219 -269}\special{pa -179 -283}\special{pa -139 -295}%
-\special{pa -99 -304}\special{pa -60 -311}\special{pa -20 -314}\special{pa 20 -314}%
-\special{pa 60 -311}\special{pa 99 -304}\special{pa 139 -295}\special{pa 179 -283}%
-\special{pa 219 -269}\special{pa 259 -253}\special{pa 298 -236}\special{pa 338 -217}%
-\special{pa 378 -198}\special{pa 418 -179}\special{pa 457 -160}\special{pa 497 -142}%
-\special{pa 537 -124}\special{pa 577 -107}\special{pa 616 -92}\special{pa 656 -78}%
-\special{pa 696 -66}\special{pa 736 -55}\special{pa 775 -45}\special{pa 815 -37}\special{pa 855 -30}%
-\special{pa 895 -24}\special{pa 935 -19}\special{pa 974 -15}\special{pa 1014 -11}%
-\special{pa 1054 -9}\special{pa 1094 -7}\special{pa 1133 -5}\special{pa 1173 -4}\special{pa 1181 -4}%
-\special{fp}%
-\special{pa 147 0}\special{pa 147 -293}%
-\special{fp}%
-\special{pa -1181 0}\special{pa 1181 0}%
-\special{fp}%
-\settowidth{\Width}{$0.37$}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{$0.37$}\settodepth{\Depth}{$0.37$}\setlength{\Height}{-\Height}%
-\put(0.3722,-0.0500){\hspace*{\Width}\raisebox{\Height}{$0.37$}}%
-%
-%
-\settowidth{\Width}{$P=0.65$}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{$P=0.65$}\settodepth{\Depth}{$P=0.65$}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(-1.9500,1.0000){\hspace*{\Width}\raisebox{\Height}{$P=0.65$}}%
-%
-%
-\special{pa -1181 0}\special{pa 1181 0}%
-\special{fp}%
-\special{pa 0 394}\special{pa 0 -787}%
-\special{fp}%
-\settowidth{\Width}{$x$}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{$x$}\settodepth{\Depth}{$x$}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(3.0500,0.0000){\hspace*{\Width}\raisebox{\Height}{$x$}}%
-%
-%
-\settowidth{\Width}{$y$}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{$y$}\settodepth{\Depth}{$y$}\setlength{\Height}{\Depth}%
-\put(0.0000,2.0500){\hspace*{\Width}\raisebox{\Height}{$y$}}%
-%
-%
-\settowidth{\Width}{O}\setlength{\Width}{-1\Width}%
-\settoheight{\Height}{O}\settodepth{\Depth}{O}\setlength{\Height}{-\Height}%
-\put(-0.0500,-0.0500){\hspace*{\Width}\raisebox{\Height}{O}}%
-%
-%
-\end{picture}}% \ No newline at end of file
diff --git a/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/ruler.tex b/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/ruler.tex
deleted file mode 100644
index a976f1b7..00000000
--- a/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/ruler.tex
+++ /dev/null
@@ -1,66 +0,0 @@
-%%% fig.tex 2016-5-2 18:2
-%%% fig.sce 2016-5-2 18:2
-{\unitlength=8mm%
-\begin{picture}%
-( 6.62000, 3.97000)( -0.62000, -0.47000)%
-\special{pn 8}%
-%
-\special{pa 0 0}\special{pa 1726 0}\special{pa 1726 -901}\special{pa 0 -901}\special{pa 0 0}%
-\special{fp}%
-\settowidth{\Width}{$0$}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{$0$}\settodepth{\Depth}{$0$}\setlength{\Height}{-\Height}%
-\put(0.0000,-0.1500){\hspace*{\Width}\raisebox{\Height}{$0$}}%
-%
-%
-\special{pa 0 0}\special{pa 0 31}%
-\special{fp}%
-\settowidth{\Width}{$1$}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{$1$}\settodepth{\Depth}{$1$}\setlength{\Height}{-\Height}%
-\put(1.0000,-0.1500){\hspace*{\Width}\raisebox{\Height}{$1$}}%
-%
-%
-\special{pa 315 0}\special{pa 315 31}%
-\special{fp}%
-\settowidth{\Width}{$2$}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{$2$}\settodepth{\Depth}{$2$}\setlength{\Height}{-\Height}%
-\put(2.0000,-0.1500){\hspace*{\Width}\raisebox{\Height}{$2$}}%
-%
-%
-\special{pa 630 0}\special{pa 630 31}%
-\special{fp}%
-\settowidth{\Width}{$3$}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{$3$}\settodepth{\Depth}{$3$}\setlength{\Height}{-\Height}%
-\put(3.0000,-0.1500){\hspace*{\Width}\raisebox{\Height}{$3$}}%
-%
-%
-\special{pa 945 0}\special{pa 945 31}%
-\special{fp}%
-\settowidth{\Width}{$4$}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{$4$}\settodepth{\Depth}{$4$}\setlength{\Height}{-\Height}%
-\put(4.0000,-0.1500){\hspace*{\Width}\raisebox{\Height}{$4$}}%
-%
-%
-\special{pa 1260 0}\special{pa 1260 31}%
-\special{fp}%
-\settowidth{\Width}{$5$}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{$5$}\settodepth{\Depth}{$5$}\setlength{\Height}{-\Height}%
-\put(5.0000,-0.1500){\hspace*{\Width}\raisebox{\Height}{$5$}}%
-%
-%
-\special{pa 1575 0}\special{pa 1575 31}%
-\special{fp}%
-\settowidth{\Width}{$d1$}\setlength{\Width}{-1\Width}%
-\settoheight{\Height}{$d1$}\settodepth{\Depth}{$d1$}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(-0.1500,1.0000){\hspace*{\Width}\raisebox{\Height}{$d1$}}%
-%
-%
-\special{pa 0 -315}\special{pa -31 -315}%
-\special{fp}%
-\settowidth{\Width}{$d2$}\setlength{\Width}{-1\Width}%
-\settoheight{\Height}{$d2$}\settodepth{\Depth}{$d2$}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(-0.1500,3.0000){\hspace*{\Width}\raisebox{\Height}{$d2$}}%
-%
-%
-\special{pa 0 -945}\special{pa -31 -945}%
-\special{fp}%
-\end{picture}}% \ No newline at end of file
diff --git a/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/scaledata.tex b/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/scaledata.tex
deleted file mode 100644
index d8623596..00000000
--- a/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/scaledata.tex
+++ /dev/null
@@ -1,126 +0,0 @@
-%%% test.tex 2014-11-1 19:5
-%%% test.sce 2014-11-1 19:5
-{\unitlength=6mm%
-\begin{picture}%
-( 15.00000, 8.00000)( -2.00000, -2.00000)%
-\special{pn 8}%
-%
-\special{pn 16}%
-\special{pa 2598 -709}\special{pa 2593 -768}\special{pa 2576 -826}\special{pa 2549 -883}%
-\special{pa 2511 -936}\special{pa 2463 -986}\special{pa 2406 -1032}\special{pa 2341 -1073}%
-\special{pa 2269 -1108}\special{pa 2191 -1136}\special{pa 2109 -1158}\special{pa 2023 -1173}%
-\special{pa 1934 -1180}\special{pa 1845 -1180}\special{pa 1757 -1173}\special{pa 1671 -1158}%
-\special{pa 1588 -1136}\special{pa 1510 -1108}\special{pa 1438 -1073}\special{pa 1373 -1032}%
-\special{pa 1316 -986}\special{pa 1269 -936}\special{pa 1231 -883}\special{pa 1203 -826}%
-\special{pa 1187 -768}\special{pa 1181 -709}\special{pa 1187 -649}\special{pa 1203 -591}%
-\special{pa 1231 -535}\special{pa 1269 -481}\special{pa 1316 -431}\special{pa 1373 -385}%
-\special{pa 1438 -345}\special{pa 1510 -310}\special{pa 1588 -281}\special{pa 1671 -259}%
-\special{pa 1757 -245}\special{pa 1845 -237}\special{pa 1934 -237}\special{pa 2023 -245}%
-\special{pa 2109 -259}\special{pa 2191 -281}\special{pa 2269 -310}\special{pa 2341 -345}%
-\special{pa 2406 -385}\special{pa 2463 -431}\special{pa 2511 -481}\special{pa 2549 -535}%
-\special{pa 2576 -591}\special{pa 2593 -649}\special{pa 2598 -709}%
-\special{fp}%
-\special{pn 8}%
-\special{pa 2126 236}\special{pa 2120 266}\special{pa 2116 273}\special{fp}\special{pa 2094 304}\special{pa 2076 323}\special{pa 2066 330}\special{fp}%
-\special{pa 2034 352}\special{pa 2000 370}\special{fp}\special{pa 1965 385}\special{pa 1934 398}\special{pa 1929 399}\special{fp}%
-\special{pa 1893 411}\special{pa 1869 418}\special{pa 1856 421}\special{fp}\special{pa 1818 431}\special{pa 1797 436}\special{pa 1781 439}\special{fp}%
-\special{pa 1743 446}\special{pa 1719 450}\special{pa 1705 452}\special{fp}\special{pa 1667 457}\special{pa 1636 461}\special{pa 1629 462}\special{fp}%
-\special{pa 1590 465}\special{pa 1552 468}\special{fp}\special{pa 1513 470}\special{pa 1475 471}\special{fp}%
-\special{pa 1437 472}\special{pa 1398 472}\special{fp}\special{pa 1360 471}\special{pa 1321 470}\special{fp}%
-\special{pa 1283 468}\special{pa 1244 465}\special{fp}\special{pa 1206 462}\special{pa 1198 461}\special{pa 1168 457}\special{fp}%
-\special{pa 1130 452}\special{pa 1116 450}\special{pa 1092 446}\special{fp}\special{pa 1054 439}\special{pa 1038 436}\special{pa 1016 431}\special{fp}%
-\special{pa 979 421}\special{pa 966 418}\special{pa 942 411}\special{fp}\special{pa 905 399}\special{pa 901 398}\special{pa 869 385}\special{fp}%
-\special{pa 834 370}\special{pa 800 352}\special{fp}\special{pa 768 330}\special{pa 758 323}\special{pa 740 304}\special{fp}%
-\special{pa 718 273}\special{pa 714 266}\special{pa 709 236}\special{pa 709 236}\special{fp}%
-\special{pa 718 199}\special{pa 731 177}\special{pa 740 168}\special{fp}\special{pa 768 142}\special{pa 796 122}\special{pa 800 120}\special{fp}%
-\special{pa 834 102}\special{pa 844 97}\special{pa 869 87}\special{fp}\special{pa 905 73}\special{pa 942 62}\special{fp}%
-\special{pa 979 51}\special{pa 1016 42}\special{fp}\special{pa 1054 34}\special{pa 1092 27}\special{fp}%
-\special{pa 1130 21}\special{pa 1168 16}\special{fp}\special{pa 1206 11}\special{pa 1244 8}\special{fp}%
-\special{pa 1283 4}\special{pa 1285 4}\special{pa 1321 3}\special{fp}\special{pa 1360 1}\special{pa 1373 0}\special{pa 1398 0}\special{fp}%
-\special{pa 1437 0}\special{pa 1462 0}\special{pa 1475 1}\special{fp}\special{pa 1513 3}\special{pa 1550 4}\special{pa 1552 4}\special{fp}%
-\special{pa 1590 8}\special{pa 1629 11}\special{fp}\special{pa 1667 16}\special{pa 1705 21}\special{fp}%
-\special{pa 1743 27}\special{pa 1781 34}\special{fp}\special{pa 1818 42}\special{pa 1856 51}\special{fp}%
-\special{pa 1893 62}\special{pa 1929 73}\special{fp}\special{pa 1965 87}\special{pa 1991 97}\special{pa 2000 102}\special{fp}%
-\special{pa 2034 120}\special{pa 2038 122}\special{pa 2066 142}\special{fp}\special{pa 2094 168}\special{pa 2104 177}\special{pa 2116 199}\special{fp}%
-%
-%
-\settowidth{\Width}{A}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{A}\settodepth{\Depth}{A}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(2.0500,1.0000){\hspace*{\Width}\raisebox{\Height}{A}}%
-%
-%
-\settowidth{\Width}{B}\setlength{\Width}{-1\Width}%
-\settoheight{\Height}{B}\settodepth{\Depth}{B}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(0.8500,1.0000){\hspace*{\Width}\raisebox{\Height}{B}}%
-%
-%
-\settowidth{\Width}{C}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{C}\settodepth{\Depth}{C}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(-0.9500,-1.0000){\hspace*{\Width}\raisebox{\Height}{C}}%
-%
-%
-\settowidth{\Width}{D}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{D}\settodepth{\Depth}{D}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(3.0500,-1.0000){\hspace*{\Width}\raisebox{\Height}{D}}%
-%
-%
-\special{pn 8}%
-\special{pa 0 0}\special{pa 709 236}%
-\special{fp}%
-\special{pn 8}%
-\special{pa 630 236}\special{pa 709 236}\special{pa 645 189}\special{pa 638 213}\special{pa 630 236}%
-\special{sh 1}\special{ip}%
-\special{pn 8}%
-\special{pa 630 236}\special{pa 709 236}\special{pa 645 189}\special{pa 638 213}\special{pa 630 236}%
-\special{fp}%
-\special{pn 8}%
-\special{pa 481 -245}\special{pa 474 -248}\special{pa 467 -247}\special{pa 462 -242}%
-\special{pa 461 -234}\special{pa 464 -228}\special{pa 471 -225}\special{pa 478 -226}%
-\special{pa 483 -231}\special{pa 484 -238}\special{pa 481 -245}\special{sh 1}\special{fp}%
-\special{pa 709 -236}\special{pa 707 -266}\special{pa 701 -295}\special{pa 692 -323}%
-\special{pa 679 -350}\special{pa 664 -375}\special{pa 645 -398}\special{pa 623 -418}%
-\special{pa 599 -436}\special{pa 573 -450}\special{pa 545 -461}\special{pa 517 -468}%
-\special{pa 487 -472}\special{pa 458 -472}\special{pa 428 -468}\special{pa 399 -461}%
-\special{pa 372 -450}\special{pa 346 -436}\special{pa 322 -418}\special{pa 300 -398}%
-\special{pa 281 -375}\special{pa 265 -350}\special{pa 253 -323}\special{pa 244 -295}%
-\special{pa 238 -266}\special{pa 236 -236}\special{pa 238 -207}\special{pa 244 -177}%
-\special{pa 253 -149}\special{pa 265 -122}\special{pa 281 -97}\special{pa 300 -75}%
-\special{pa 322 -54}\special{pa 346 -37}\special{pa 372 -22}\special{pa 399 -12}\special{pa 428 -4}%
-\special{pa 458 0}\special{pa 487 0}\special{pa 517 -4}\special{pa 545 -12}\special{pa 573 -22}%
-\special{pa 599 -37}\special{pa 623 -54}\special{pa 645 -75}\special{pa 664 -97}\special{pa 679 -122}%
-\special{pa 692 -149}\special{pa 701 -177}\special{pa 707 -207}\special{pa 709 -236}%
-\special{fp}%
-\special{pa 2126 -472}\special{pa 2120 -532}\special{pa 2104 -590}\special{pa 2076 -646}%
-\special{pa 2038 -700}\special{pa 1991 -750}\special{pa 1934 -796}\special{pa 1869 -836}%
-\special{pa 1797 -871}\special{pa 1719 -900}\special{pa 1636 -922}\special{pa 1550 -937}%
-\special{pa 1462 -944}\special{pa 1373 -944}\special{pa 1285 -937}\special{pa 1198 -922}%
-\special{pa 1116 -900}\special{pa 1038 -871}\special{pa 966 -836}\special{pa 901 -796}%
-\special{pa 844 -750}\special{pa 796 -700}\special{pa 758 -646}\special{pa 731 -590}%
-\special{pa 714 -532}\special{pa 709 -472}\special{pa 714 -413}\special{pa 731 -355}%
-\special{pa 758 -299}\special{pa 796 -245}\special{pa 844 -195}\special{pa 901 -149}%
-\special{pa 966 -108}\special{pa 1038 -74}\special{pa 1116 -45}\special{pa 1198 -23}%
-\special{pa 1285 -8}\special{pa 1373 -1}\special{pa 1462 -1}\special{pa 1550 -8}\special{pa 1636 -23}%
-\special{pa 1719 -45}\special{pa 1797 -74}\special{pa 1869 -108}\special{pa 1934 -149}%
-\special{pa 1991 -195}\special{pa 2038 -245}\special{pa 2076 -299}\special{pa 2104 -355}%
-\special{pa 2120 -413}\special{pa 2126 -472}%
-\special{fp}%
-\special{pa -472 0}\special{pa 3071 0}%
-\special{fp}%
-\special{pa 0 472}\special{pa 0 -1417}%
-\special{fp}%
-\settowidth{\Width}{$x$}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{$x$}\settodepth{\Depth}{$x$}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(13.0500,0.0000){\hspace*{\Width}\raisebox{\Height}{$x$}}%
-%
-%
-\settowidth{\Width}{$y$}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{$y$}\settodepth{\Depth}{$y$}\setlength{\Height}{\Depth}%
-\put(0.0000,6.0500){\hspace*{\Width}\raisebox{\Height}{$y$}}%
-%
-%
-\settowidth{\Width}{O}\setlength{\Width}{-1\Width}%
-\settoheight{\Height}{O}\settodepth{\Depth}{O}\setlength{\Height}{-\Height}%
-\put(-0.0500,-0.0500){\hspace*{\Width}\raisebox{\Height}{O}}%
-%
-%
-\end{picture}}% \ No newline at end of file
diff --git a/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/scalepoint.tex b/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/scalepoint.tex
deleted file mode 100644
index d70ef497..00000000
--- a/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/scalepoint.tex
+++ /dev/null
@@ -1,71 +0,0 @@
-%%% test.tex 2014-11-1 18:44
-%%% test.sce 2014-11-1 18:44
-{\unitlength=6mm%
-\begin{picture}%
-( 14.00000, 7.00000)( -1.00000, -1.00000)%
-\special{pn 8}%
-%
-\settowidth{\Width}{A[3,2]}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{A[3,2]}\settodepth{\Depth}{A[3,2]}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(3.0500,2.0000){\hspace*{\Width}\raisebox{\Height}{A[3,2]}}%
-%
-%
-\settowidth{\Width}{B[2,0]}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{B[2,0]}\settodepth{\Depth}{B[2,0]}\setlength{\Height}{-\Height}%
-\put(2.0000,-0.1500){\hspace*{\Width}\raisebox{\Height}{B[2,0]}}%
-%
-%
-\settowidth{\Width}{C[9,4]}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{C[9,4]}\settodepth{\Depth}{C[9,4]}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(9.0500,4.0000){\hspace*{\Width}\raisebox{\Height}{C[9,4]}}%
-%
-%
-\settowidth{\Width}{D[5,4]}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{D[5,4]}\settodepth{\Depth}{D[5,4]}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(5.0500,4.0000){\hspace*{\Width}\raisebox{\Height}{D[5,4]}}%
-%
-%
-\settowidth{\Width}{E[4,1]}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{E[4,1]}\settodepth{\Depth}{E[4,1]}\setlength{\Height}{-\Height}%
-\put(4.0500,0.9500){\hspace*{\Width}\raisebox{\Height}{E[4,1]}}%
-%
-%
-\settowidth{\Width}{F[12,2]}\setlength{\Width}{-1\Width}%
-\settoheight{\Height}{F[12,2]}\settodepth{\Depth}{F[12,2]}\setlength{\Height}{-\Height}%
-\put(11.9500,1.9500){\hspace*{\Width}\raisebox{\Height}{F[12,2]}}%
-%
-%
-\special{pn 8}%
-\special{pa 0 0}\special{pa 945 -236}%
-\special{fp}%
-\special{pn 8}%
-\special{pa 878 -194}\special{pa 945 -236}\special{pa 866 -242}\special{pa 872 -218}%
-\special{pa 878 -194}\special{sh 1}\special{ip}%
-\special{pn 8}%
-\special{pa 878 -194}\special{pa 945 -236}\special{pa 866 -242}\special{pa 872 -218}%
-\special{pa 878 -194}%
-\special{fp}%
-\special{pn 8}%
-\special{pa 481 -8}\special{pa 474 -12}\special{pa 467 -11}\special{pa 462 -5}\special{pa 461 2}%
-\special{pa 464 8}\special{pa 471 12}\special{pa 478 11}\special{pa 483 5}\special{pa 484 -2}%
-\special{pa 481 -8}\special{sh 1}\special{fp}%
-\special{pa -236 0}\special{pa 3071 0}%
-\special{fp}%
-\special{pa 0 236}\special{pa 0 -1417}%
-\special{fp}%
-\settowidth{\Width}{$x$}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{$x$}\settodepth{\Depth}{$x$}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(13.0500,0.0000){\hspace*{\Width}\raisebox{\Height}{$x$}}%
-%
-%
-\settowidth{\Width}{$y$}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{$y$}\settodepth{\Depth}{$y$}\setlength{\Height}{\Depth}%
-\put(0.0000,6.0500){\hspace*{\Width}\raisebox{\Height}{$y$}}%
-%
-%
-\settowidth{\Width}{O}\setlength{\Width}{-1\Width}%
-\settoheight{\Height}{O}\settodepth{\Depth}{O}\setlength{\Height}{-\Height}%
-\put(-0.0500,-0.0500){\hspace*{\Width}\raisebox{\Height}{O}}%
-%
-%
-\end{picture}}% \ No newline at end of file
diff --git a/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/scatter.tex b/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/scatter.tex
deleted file mode 100644
index aff4067e..00000000
--- a/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/scatter.tex
+++ /dev/null
@@ -1,204 +0,0 @@
-%%% t7scatter.tex 2016-4-23 19:53
-%%% t7scatter.sce 2016-4-23 19:53
-{\unitlength=6mm%
-\begin{picture}%
-( 11.00000, 10.00000)( 0.00000, 0.00000)%
-\special{pn 8}%
-%
-\special{pn 4}%
-\special{pa 1237 -1391}\special{pa 1230 -1395}\special{pa 1222 -1395}\special{pa 1215 -1391}%
-\special{pa 1211 -1384}\special{pa 1211 -1375}\special{pa 1215 -1368}\special{pa 1222 -1364}%
-\special{pa 1230 -1364}\special{pa 1237 -1368}\special{pa 1241 -1375}\special{pa 1241 -1384}%
-\special{pa 1237 -1391}\special{sh 1}\special{fp}%
-\special{pa 580 -517}\special{pa 573 -521}\special{pa 565 -521}\special{pa 558 -517}%
-\special{pa 554 -510}\special{pa 554 -501}\special{pa 558 -494}\special{pa 565 -490}%
-\special{pa 573 -490}\special{pa 580 -494}\special{pa 585 -501}\special{pa 585 -510}%
-\special{pa 580 -517}\special{sh 1}\special{fp}%
-\special{pa 408 -637}\special{pa 401 -641}\special{pa 393 -641}\special{pa 386 -637}%
-\special{pa 382 -630}\special{pa 382 -622}\special{pa 386 -615}\special{pa 393 -611}%
-\special{pa 401 -611}\special{pa 408 -615}\special{pa 412 -622}\special{pa 412 -630}%
-\special{pa 408 -637}\special{sh 1}\special{fp}%
-\special{pa 1447 -1518}\special{pa 1440 -1522}\special{pa 1432 -1522}\special{pa 1425 -1518}%
-\special{pa 1421 -1511}\special{pa 1421 -1503}\special{pa 1425 -1496}\special{pa 1432 -1492}%
-\special{pa 1440 -1492}\special{pa 1447 -1496}\special{pa 1451 -1503}\special{pa 1451 -1511}%
-\special{pa 1447 -1518}\special{sh 1}\special{fp}%
-\special{pa 330 -129}\special{pa 323 -133}\special{pa 315 -133}\special{pa 308 -129}%
-\special{pa 304 -122}\special{pa 304 -114}\special{pa 308 -107}\special{pa 315 -103}%
-\special{pa 323 -103}\special{pa 330 -107}\special{pa 334 -114}\special{pa 334 -122}%
-\special{pa 330 -129}\special{sh 1}\special{fp}%
-\special{pa 1778 -1856}\special{pa 1771 -1860}\special{pa 1763 -1860}\special{pa 1756 -1856}%
-\special{pa 1752 -1849}\special{pa 1752 -1841}\special{pa 1756 -1834}\special{pa 1763 -1830}%
-\special{pa 1771 -1830}\special{pa 1778 -1834}\special{pa 1782 -1841}\special{pa 1782 -1849}%
-\special{pa 1778 -1856}\special{sh 1}\special{fp}%
-\special{pa 840 -687}\special{pa 833 -691}\special{pa 825 -691}\special{pa 818 -687}%
-\special{pa 814 -680}\special{pa 814 -672}\special{pa 818 -664}\special{pa 825 -660}%
-\special{pa 833 -660}\special{pa 840 -664}\special{pa 844 -672}\special{pa 844 -680}%
-\special{pa 840 -687}\special{sh 1}\special{fp}%
-\special{pa 2352 -2255}\special{pa 2345 -2259}\special{pa 2337 -2259}\special{pa 2330 -2255}%
-\special{pa 2326 -2248}\special{pa 2326 -2240}\special{pa 2330 -2233}\special{pa 2337 -2229}%
-\special{pa 2345 -2229}\special{pa 2352 -2233}\special{pa 2356 -2240}\special{pa 2356 -2248}%
-\special{pa 2352 -2255}\special{sh 1}\special{fp}%
-\special{pa 1074 -1095}\special{pa 1067 -1099}\special{pa 1059 -1099}\special{pa 1052 -1095}%
-\special{pa 1048 -1088}\special{pa 1048 -1080}\special{pa 1052 -1073}\special{pa 1059 -1069}%
-\special{pa 1067 -1069}\special{pa 1074 -1073}\special{pa 1078 -1080}\special{pa 1078 -1088}%
-\special{pa 1074 -1095}\special{sh 1}\special{fp}%
-\special{pa 2057 -1844}\special{pa 2050 -1848}\special{pa 2042 -1848}\special{pa 2035 -1844}%
-\special{pa 2030 -1837}\special{pa 2030 -1829}\special{pa 2035 -1822}\special{pa 2042 -1818}%
-\special{pa 2050 -1818}\special{pa 2057 -1822}\special{pa 2061 -1829}\special{pa 2061 -1837}%
-\special{pa 2057 -1844}\special{sh 1}\special{fp}%
-\special{pa 580 -1008}\special{pa 573 -1012}\special{pa 565 -1012}\special{pa 558 -1008}%
-\special{pa 554 -1001}\special{pa 554 -993}\special{pa 558 -986}\special{pa 565 -982}%
-\special{pa 573 -982}\special{pa 580 -986}\special{pa 585 -993}\special{pa 585 -1001}%
-\special{pa 580 -1008}\special{sh 1}\special{fp}%
-\special{pa 2251 -2255}\special{pa 2243 -2259}\special{pa 2235 -2259}\special{pa 2228 -2255}%
-\special{pa 2224 -2248}\special{pa 2224 -2240}\special{pa 2228 -2233}\special{pa 2235 -2229}%
-\special{pa 2243 -2229}\special{pa 2251 -2233}\special{pa 2255 -2240}\special{pa 2255 -2248}%
-\special{pa 2251 -2255}\special{sh 1}\special{fp}%
-\special{pa 1164 -916}\special{pa 1157 -920}\special{pa 1149 -920}\special{pa 1142 -916}%
-\special{pa 1138 -909}\special{pa 1138 -901}\special{pa 1142 -894}\special{pa 1149 -890}%
-\special{pa 1157 -890}\special{pa 1164 -894}\special{pa 1168 -901}\special{pa 1168 -909}%
-\special{pa 1164 -916}\special{sh 1}\special{fp}%
-\special{pa 1851 -1858}\special{pa 1844 -1862}\special{pa 1836 -1862}\special{pa 1829 -1858}%
-\special{pa 1825 -1851}\special{pa 1825 -1843}\special{pa 1829 -1836}\special{pa 1836 -1832}%
-\special{pa 1844 -1832}\special{pa 1851 -1836}\special{pa 1855 -1843}\special{pa 1855 -1851}%
-\special{pa 1851 -1858}\special{sh 1}\special{fp}%
-\special{pa 1995 -1917}\special{pa 1988 -1922}\special{pa 1980 -1922}\special{pa 1973 -1917}%
-\special{pa 1969 -1910}\special{pa 1969 -1902}\special{pa 1973 -1895}\special{pa 1980 -1891}%
-\special{pa 1988 -1891}\special{pa 1995 -1895}\special{pa 1999 -1902}\special{pa 1999 -1910}%
-\special{pa 1995 -1917}\special{sh 1}\special{fp}%
-\special{pa 545 -621}\special{pa 538 -625}\special{pa 530 -625}\special{pa 523 -621}%
-\special{pa 519 -614}\special{pa 519 -605}\special{pa 523 -598}\special{pa 530 -594}%
-\special{pa 538 -594}\special{pa 545 -598}\special{pa 549 -605}\special{pa 549 -614}%
-\special{pa 545 -621}\special{sh 1}\special{fp}%
-\special{pa 566 -727}\special{pa 559 -731}\special{pa 551 -731}\special{pa 544 -727}%
-\special{pa 540 -720}\special{pa 540 -712}\special{pa 544 -705}\special{pa 551 -701}%
-\special{pa 559 -701}\special{pa 566 -705}\special{pa 570 -712}\special{pa 570 -720}%
-\special{pa 566 -727}\special{sh 1}\special{fp}%
-\special{pa 1591 -1573}\special{pa 1584 -1577}\special{pa 1576 -1577}\special{pa 1569 -1573}%
-\special{pa 1565 -1565}\special{pa 1565 -1557}\special{pa 1569 -1550}\special{pa 1576 -1546}%
-\special{pa 1584 -1546}\special{pa 1591 -1550}\special{pa 1596 -1557}\special{pa 1596 -1565}%
-\special{pa 1591 -1573}\special{sh 1}\special{fp}%
-\special{pa 1417 -1296}\special{pa 1410 -1300}\special{pa 1401 -1300}\special{pa 1394 -1296}%
-\special{pa 1390 -1289}\special{pa 1390 -1281}\special{pa 1394 -1274}\special{pa 1401 -1270}%
-\special{pa 1410 -1270}\special{pa 1417 -1274}\special{pa 1421 -1281}\special{pa 1421 -1289}%
-\special{pa 1417 -1296}\special{sh 1}\special{fp}%
-\special{pa 342 -129}\special{pa 335 -133}\special{pa 327 -133}\special{pa 320 -129}%
-\special{pa 315 -122}\special{pa 315 -114}\special{pa 320 -107}\special{pa 327 -103}%
-\special{pa 335 -103}\special{pa 342 -107}\special{pa 346 -114}\special{pa 346 -122}%
-\special{pa 342 -129}\special{sh 1}\special{fp}%
-\special{pn 8}%
-\special{pa 0 -53}\special{pa 1299 -1286}\special{pa 2434 -2362}%
-\special{fp}%
-\special{pa 0 0}\special{pa 2598 0}\special{pa 2598 -2362}\special{pa 0 -2362}\special{pa 0 0}%
-\special{fp}%
-\settowidth{\Width}{$r=0.968,\ y=0.948x+0.226$}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{$r=0.968,\ y=0.948x+0.226$}\settodepth{\Depth}{$r=0.968,\ y=0.948x+0.226$}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(0.5990,9.5583){\hspace*{\Width}\raisebox{\Height}{$r=0.968,\ y=0.948x+0.226$}}%
-%
-%
-\settowidth{\Width}{$0$}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{$0$}\settodepth{\Depth}{$0$}\setlength{\Height}{-\Height}%
-\put(0.0000,-0.1500){\hspace*{\Width}\raisebox{\Height}{$0$}}%
-%
-%
-\settowidth{\Width}{$1$}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{$1$}\settodepth{\Depth}{$1$}\setlength{\Height}{-\Height}%
-\put(1.0000,-0.1500){\hspace*{\Width}\raisebox{\Height}{$1$}}%
-%
-%
-\settowidth{\Width}{$2$}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{$2$}\settodepth{\Depth}{$2$}\setlength{\Height}{-\Height}%
-\put(2.0000,-0.1500){\hspace*{\Width}\raisebox{\Height}{$2$}}%
-%
-%
-\settowidth{\Width}{$3$}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{$3$}\settodepth{\Depth}{$3$}\setlength{\Height}{-\Height}%
-\put(3.0000,-0.1500){\hspace*{\Width}\raisebox{\Height}{$3$}}%
-%
-%
-\settowidth{\Width}{$4$}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{$4$}\settodepth{\Depth}{$4$}\setlength{\Height}{-\Height}%
-\put(4.0000,-0.1500){\hspace*{\Width}\raisebox{\Height}{$4$}}%
-%
-%
-\settowidth{\Width}{$5$}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{$5$}\settodepth{\Depth}{$5$}\setlength{\Height}{-\Height}%
-\put(5.0000,-0.1500){\hspace*{\Width}\raisebox{\Height}{$5$}}%
-%
-%
-\settowidth{\Width}{$6$}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{$6$}\settodepth{\Depth}{$6$}\setlength{\Height}{-\Height}%
-\put(6.0000,-0.1500){\hspace*{\Width}\raisebox{\Height}{$6$}}%
-%
-%
-\settowidth{\Width}{$7$}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{$7$}\settodepth{\Depth}{$7$}\setlength{\Height}{-\Height}%
-\put(7.0000,-0.1500){\hspace*{\Width}\raisebox{\Height}{$7$}}%
-%
-%
-\settowidth{\Width}{$8$}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{$8$}\settodepth{\Depth}{$8$}\setlength{\Height}{-\Height}%
-\put(8.0000,-0.1500){\hspace*{\Width}\raisebox{\Height}{$8$}}%
-%
-%
-\settowidth{\Width}{$9$}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{$9$}\settodepth{\Depth}{$9$}\setlength{\Height}{-\Height}%
-\put(9.0000,-0.1500){\hspace*{\Width}\raisebox{\Height}{$9$}}%
-%
-%
-\settowidth{\Width}{$10$}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{$10$}\settodepth{\Depth}{$10$}\setlength{\Height}{-\Height}%
-\put(10.0000,-0.1500){\hspace*{\Width}\raisebox{\Height}{$10$}}%
-%
-%
-\settowidth{\Width}{$1$}\setlength{\Width}{-1\Width}%
-\settoheight{\Height}{$1$}\settodepth{\Depth}{$1$}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(-0.1500,1.0000){\hspace*{\Width}\raisebox{\Height}{$1$}}%
-%
-%
-\settowidth{\Width}{$2$}\setlength{\Width}{-1\Width}%
-\settoheight{\Height}{$2$}\settodepth{\Depth}{$2$}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(-0.1500,2.0000){\hspace*{\Width}\raisebox{\Height}{$2$}}%
-%
-%
-\settowidth{\Width}{$3$}\setlength{\Width}{-1\Width}%
-\settoheight{\Height}{$3$}\settodepth{\Depth}{$3$}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(-0.1500,3.0000){\hspace*{\Width}\raisebox{\Height}{$3$}}%
-%
-%
-\settowidth{\Width}{$4$}\setlength{\Width}{-1\Width}%
-\settoheight{\Height}{$4$}\settodepth{\Depth}{$4$}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(-0.1500,4.0000){\hspace*{\Width}\raisebox{\Height}{$4$}}%
-%
-%
-\settowidth{\Width}{$5$}\setlength{\Width}{-1\Width}%
-\settoheight{\Height}{$5$}\settodepth{\Depth}{$5$}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(-0.1500,5.0000){\hspace*{\Width}\raisebox{\Height}{$5$}}%
-%
-%
-\settowidth{\Width}{$6$}\setlength{\Width}{-1\Width}%
-\settoheight{\Height}{$6$}\settodepth{\Depth}{$6$}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(-0.1500,6.0000){\hspace*{\Width}\raisebox{\Height}{$6$}}%
-%
-%
-\settowidth{\Width}{$7$}\setlength{\Width}{-1\Width}%
-\settoheight{\Height}{$7$}\settodepth{\Depth}{$7$}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(-0.1500,7.0000){\hspace*{\Width}\raisebox{\Height}{$7$}}%
-%
-%
-\settowidth{\Width}{$8$}\setlength{\Width}{-1\Width}%
-\settoheight{\Height}{$8$}\settodepth{\Depth}{$8$}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(-0.1500,8.0000){\hspace*{\Width}\raisebox{\Height}{$8$}}%
-%
-%
-\settowidth{\Width}{$9$}\setlength{\Width}{-1\Width}%
-\settoheight{\Height}{$9$}\settodepth{\Depth}{$9$}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(-0.1500,9.0000){\hspace*{\Width}\raisebox{\Height}{$9$}}%
-%
-%
-\settowidth{\Width}{$10$}\setlength{\Width}{-1\Width}%
-\settoheight{\Height}{$10$}\settodepth{\Depth}{$10$}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(-0.1500,10.0000){\hspace*{\Width}\raisebox{\Height}{$10$}}%
-%
-%
-\end{picture}}% \ No newline at end of file
diff --git a/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/segmark.tex b/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/segmark.tex
deleted file mode 100644
index 0ca81c69..00000000
--- a/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/segmark.tex
+++ /dev/null
@@ -1,52 +0,0 @@
-%%% fig.tex 2015-8-8 7:41
-%%% fig.sce 2015-8-8 7:37
-{\unitlength=6mm%
-\begin{picture}%
-( 4.84000, 3.93000)( -0.24000, -0.41000)%
-\special{pn 8}%
-%
-\special{pa 236 -709}\special{pa 0 0}\special{pa 945 0}\special{pa 800 -564}\special{pa 236 -709}%
-\special{fp}%
-\special{pa 151 -343}\special{pa 85 -366}%
-\special{fp}%
-\special{pa 491 -35}\special{pa 491 35}%
-\special{fp}%
-\special{pa 454 -35}\special{pa 454 35}%
-\special{fp}%
-\special{pa 908 -281}\special{pa 908 -286}\special{pa 907 -290}\special{pa 905 -294}%
-\special{pa 903 -299}\special{pa 901 -302}\special{pa 898 -306}\special{pa 895 -309}%
-\special{pa 891 -312}\special{pa 887 -314}\special{pa 883 -315}\special{pa 878 -317}%
-\special{pa 874 -317}\special{pa 869 -317}\special{pa 865 -317}\special{pa 860 -315}%
-\special{pa 856 -314}\special{pa 852 -312}\special{pa 849 -309}\special{pa 845 -306}%
-\special{pa 842 -302}\special{pa 840 -299}\special{pa 838 -294}\special{pa 837 -290}%
-\special{pa 836 -286}\special{pa 836 -281}\special{pa 836 -277}\special{pa 837 -272}%
-\special{pa 838 -268}\special{pa 840 -264}\special{pa 842 -260}\special{pa 845 -256}%
-\special{pa 849 -253}\special{pa 852 -251}\special{pa 856 -248}\special{pa 860 -247}%
-\special{pa 865 -246}\special{pa 869 -245}\special{pa 874 -245}\special{pa 878 -246}%
-\special{pa 883 -247}\special{pa 887 -248}\special{pa 891 -251}\special{pa 895 -253}%
-\special{pa 898 -256}\special{pa 901 -260}\special{pa 903 -264}\special{pa 905 -268}%
-\special{pa 907 -272}\special{pa 908 -277}\special{pa 908 -281}%
-\special{fp}%
-\special{pa 508 -598}\special{pa 489 -664}\special{pa 557 -647}\special{pa 508 -598}%
-\special{fp}%
-\settowidth{\Width}{A}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{A}\settodepth{\Depth}{A}\setlength{\Height}{\Depth}%
-\put(1.0000,3.0500){\hspace*{\Width}\raisebox{\Height}{A}}%
-%
-%
-\settowidth{\Width}{B}\setlength{\Width}{-1\Width}%
-\settoheight{\Height}{B}\settodepth{\Depth}{B}\setlength{\Height}{-\Height}%
-\put(-0.0500,-0.0500){\hspace*{\Width}\raisebox{\Height}{B}}%
-%
-%
-\settowidth{\Width}{C}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{C}\settodepth{\Depth}{C}\setlength{\Height}{-\Height}%
-\put(4.0500,-0.0500){\hspace*{\Width}\raisebox{\Height}{C}}%
-%
-%
-\settowidth{\Width}{D}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{D}\settodepth{\Depth}{D}\setlength{\Height}{\Depth}%
-\put(3.4358,2.4374){\hspace*{\Width}\raisebox{\Height}{D}}%
-%
-%
-\end{picture}}% \ No newline at end of file
diff --git a/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/setax(theta).tex b/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/setax(theta).tex
deleted file mode 100644
index 299d79ba..00000000
--- a/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/setax(theta).tex
+++ /dev/null
@@ -1,43 +0,0 @@
-%%% test.tex 2014-11-11 15:44
-%%% test.sce 2014-11-11 15:44
-{\unitlength=6mm%
-\begin{picture}%
-( 10.00000, 5.00000)( -5.00000, -2.00000)%
-\special{pn 8}%
-%
-\special{pn 8}%
-\special{pa -1181 0}\special{pa 1181 0}%
-\special{fp}%
-\special{pn 8}%
-\special{pa 1106 24}\special{pa 1181 0}\special{pa 1106 -24}\special{pa 1106 0}\special{pa 1106 24}%
-\special{sh 1}\special{ip}%
-\special{pn 8}%
-\special{pa 1106 24}\special{pa 1181 0}\special{pa 1106 -24}\special{pa 1106 0}\special{pa 1106 24}%
-\special{fp}%
-\special{pn 8}%
-\special{pn 8}%
-\special{pa 0 472}\special{pa 0 -709}%
-\special{fp}%
-\special{pn 8}%
-\special{pa 24 -634}\special{pa 0 -709}\special{pa -24 -634}\special{pa 0 -634}\special{pa 24 -634}%
-\special{sh 1}\special{ip}%
-\special{pn 8}%
-\special{pa 24 -634}\special{pa 0 -709}\special{pa -24 -634}\special{pa 0 -634}\special{pa 24 -634}%
-\special{fp}%
-\special{pn 8}%
-\settowidth{\Width}{$θ$}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{$θ$}\settodepth{\Depth}{$\theta$}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(5.0500,0.0000){\hspace*{\Width}\raisebox{\Height}{$\theta$}}%
-%
-%
-\settowidth{\Width}{$x$}\setlength{\Width}{-1\Width}%
-\settoheight{\Height}{$x$}\settodepth{\Depth}{$x$}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(-0.0500,3.0000){\hspace*{\Width}\raisebox{\Height}{$x$}}%
-%
-%
-\settowidth{\Width}{O}\setlength{\Width}{-1\Width}%
-\settoheight{\Height}{O}\settodepth{\Depth}{O}\setlength{\Height}{-\Height}%
-\put(-0.0500,-0.0500){\hspace*{\Width}\raisebox{\Height}{O}}%
-%
-%
-\end{picture}}% \ No newline at end of file
diff --git a/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/setax.tex b/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/setax.tex
deleted file mode 100644
index 11e886fe..00000000
--- a/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/setax.tex
+++ /dev/null
@@ -1,43 +0,0 @@
-%%% test.tex 2014-11-11 15:44
-%%% test.sce 2014-11-11 15:44
-{\unitlength=6mm%
-\begin{picture}%
-( 10.00000, 5.00000)( -5.00000, -2.00000)%
-\special{pn 8}%
-%
-\special{pn 8}%
-\special{pa -1181 0}\special{pa 1181 0}%
-\special{fp}%
-\special{pn 8}%
-\special{pa 1106 24}\special{pa 1181 0}\special{pa 1106 -24}\special{pa 1106 0}\special{pa 1106 24}%
-\special{sh 1}\special{ip}%
-\special{pn 8}%
-\special{pa 1106 24}\special{pa 1181 0}\special{pa 1106 -24}\special{pa 1106 0}\special{pa 1106 24}%
-\special{fp}%
-\special{pn 8}%
-\special{pn 8}%
-\special{pa 0 472}\special{pa 0 -709}%
-\special{fp}%
-\special{pn 8}%
-\special{pa 24 -634}\special{pa 0 -709}\special{pa -24 -634}\special{pa 0 -634}\special{pa 24 -634}%
-\special{sh 1}\special{ip}%
-\special{pn 8}%
-\special{pa 24 -634}\special{pa 0 -709}\special{pa -24 -634}\special{pa 0 -634}\special{pa 24 -634}%
-\special{fp}%
-\special{pn 8}%
-\settowidth{\Width}{$θ$}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{$θ$}\settodepth{\Depth}{$θ$}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(5.0500,0.0000){\hspace*{\Width}\raisebox{\Height}{$θ$}}%
-%
-%
-\settowidth{\Width}{$x$}\setlength{\Width}{-1\Width}%
-\settoheight{\Height}{$x$}\settodepth{\Depth}{$x$}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(-0.0500,3.0000){\hspace*{\Width}\raisebox{\Height}{$x$}}%
-%
-%
-\settowidth{\Width}{O}\setlength{\Width}{-1\Width}%
-\settoheight{\Height}{O}\settodepth{\Depth}{O}\setlength{\Height}{-\Height}%
-\put(-0.0500,-0.0500){\hspace*{\Width}\raisebox{\Height}{O}}%
-%
-%
-\end{picture}}% \ No newline at end of file
diff --git a/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/setcolor.pdf b/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/setcolor.pdf
deleted file mode 100644
index 7e112dd6..00000000
--- a/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/setcolor.pdf
+++ /dev/null
Binary files differ
diff --git a/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/setorigin.png b/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/setorigin.png
deleted file mode 100644
index 003dd166..00000000
--- a/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/setorigin.png
+++ /dev/null
Binary files differ
diff --git a/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/setorigin.tex b/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/setorigin.tex
deleted file mode 100644
index b71a9ff2..00000000
--- a/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/setorigin.tex
+++ /dev/null
@@ -1,37 +0,0 @@
-%%% test.tex 2014-11-28 22:0
-%%% test.sce 2014-11-28 22:0
-{\unitlength=6mm%
-\begin{picture}%
-( 6.00000, 6.00000)( -1.00000, 0.00000)%
-\special{pn 8}%
-%
-\special{pa 245 -245}\special{pa 238 -248}\special{pa 231 -247}\special{pa 226 -242}%
-\special{pa 225 -234}\special{pa 228 -228}\special{pa 234 -225}\special{pa 242 -226}%
-\special{pa 247 -231}\special{pa 248 -238}\special{pa 245 -245}\special{sh 1}\special{fp}%
-\settowidth{\Width}{P}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{P}\settodepth{\Depth}{P}\setlength{\Height}{-\Height}%
-\put(1.0000,0.8500){\hspace*{\Width}\raisebox{\Height}{P}}%
-%
-%
-\special{pa 0 -709}\special{pa 472 -1181}\special{pa 945 -236}\special{pa 0 -709}%
-\special{fp}%
-\special{pa -236 -472}\special{pa 1181 -472}%
-\special{fp}%
-\special{pa 709 0}\special{pa 709 -1417}%
-\special{fp}%
-\settowidth{\Width}{$x$}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{$x$}\settodepth{\Depth}{$x$}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(5.0500,2.0000){\hspace*{\Width}\raisebox{\Height}{$x$}}%
-%
-%
-\settowidth{\Width}{$y$}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{$y$}\settodepth{\Depth}{$y$}\setlength{\Height}{\Depth}%
-\put(3.0000,6.0500){\hspace*{\Width}\raisebox{\Height}{$y$}}%
-%
-%
-\settowidth{\Width}{O}\setlength{\Width}{-1\Width}%
-\settoheight{\Height}{O}\settodepth{\Depth}{O}\setlength{\Height}{-\Height}%
-\put(2.9500,1.9500){\hspace*{\Width}\raisebox{\Height}{O}}%
-%
-%
-\end{picture}}% \ No newline at end of file
diff --git a/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/setscaling.tex b/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/setscaling.tex
deleted file mode 100644
index a0bcba93..00000000
--- a/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/setscaling.tex
+++ /dev/null
@@ -1,80 +0,0 @@
-%%% test.tex 2014-10-22 10:38
-%%% test.sce 2014-10-22 10:38
-{\unitlength=5mm%
-\begin{picture}%
-( 7.00000, 8.00000)( -1.00000, -1.00000)%
-\special{pn 8}%
-%
-\special{pn 8}%
-\special{pa -4 -1230}\special{pa 4 -1230}\special{fp}\special{pa 34 -1230}\special{pa 42 -1230}\special{fp}%
-\special{pa 72 -1230}\special{pa 80 -1230}\special{fp}\special{pa 110 -1230}\special{pa 118 -1230}\special{fp}%
-\special{pa 147 -1230}\special{pa 155 -1230}\special{fp}\special{pa 185 -1230}\special{pa 193 -1230}\special{fp}%
-\special{pa 223 -1230}\special{pa 231 -1230}\special{fp}\special{pa 261 -1230}\special{pa 269 -1230}\special{fp}%
-\special{pa 299 -1230}\special{pa 307 -1230}\special{fp}\special{pa 337 -1230}\special{pa 345 -1230}\special{fp}%
-\special{pa 375 -1230}\special{pa 383 -1230}\special{fp}\special{pa 412 -1230}\special{pa 420 -1230}\special{fp}%
-\special{pa 450 -1230}\special{pa 458 -1230}\special{fp}\special{pa 488 -1230}\special{pa 496 -1230}\special{fp}%
-\special{pn 8}%
-\special{pn 8}%
-\special{pa 492 4}\special{pa 492 -4}\special{fp}\special{pa 492 -36}\special{pa 492 -44}\special{fp}%
-\special{pa 492 -75}\special{pa 492 -83}\special{fp}\special{pa 492 -115}\special{pa 492 -123}\special{fp}%
-\special{pa 492 -155}\special{pa 492 -163}\special{fp}\special{pa 492 -194}\special{pa 492 -202}\special{fp}%
-\special{pa 492 -234}\special{pa 492 -242}\special{fp}\special{pa 492 -274}\special{pa 492 -282}\special{fp}%
-\special{pa 492 -314}\special{pa 492 -322}\special{fp}\special{pa 492 -353}\special{pa 492 -361}\special{fp}%
-\special{pa 492 -393}\special{pa 492 -401}\special{fp}\special{pa 492 -433}\special{pa 492 -441}\special{fp}%
-\special{pa 492 -472}\special{pa 492 -480}\special{fp}\special{pa 492 -512}\special{pa 492 -520}\special{fp}%
-\special{pa 492 -552}\special{pa 492 -560}\special{fp}\special{pa 492 -591}\special{pa 492 -599}\special{fp}%
-\special{pa 492 -631}\special{pa 492 -639}\special{fp}\special{pa 492 -671}\special{pa 492 -679}\special{fp}%
-\special{pa 492 -710}\special{pa 492 -718}\special{fp}\special{pa 492 -750}\special{pa 492 -758}\special{fp}%
-\special{pa 492 -790}\special{pa 492 -798}\special{fp}\special{pa 492 -829}\special{pa 492 -837}\special{fp}%
-\special{pa 492 -869}\special{pa 492 -877}\special{fp}\special{pa 492 -909}\special{pa 492 -917}\special{fp}%
-\special{pa 492 -949}\special{pa 492 -957}\special{fp}\special{pa 492 -988}\special{pa 492 -996}\special{fp}%
-\special{pa 492 -1028}\special{pa 492 -1036}\special{fp}\special{pa 492 -1068}\special{pa 492 -1076}\special{fp}%
-\special{pa 492 -1107}\special{pa 492 -1115}\special{fp}\special{pa 492 -1147}\special{pa 492 -1155}\special{fp}%
-\special{pa 492 -1187}\special{pa 492 -1195}\special{fp}\special{pa 492 -1226}\special{pa 492 -1234}\special{fp}%
-\special{pn 8}%
-\settowidth{\Width}{5}\setlength{\Width}{-1\Width}%
-\settoheight{\Height}{5}\settodepth{\Depth}{5}\setlength{\Height}{-\Height}%
-\put(4.9500,-0.1500){\hspace*{\Width}\raisebox{\Height}{5}}%
-%
-%
-\settowidth{\Width}{$\frac{25}{2}$}\setlength{\Width}{-1\Width}%
-\settoheight{\Height}{$\frac{25}{2}$}\settodepth{\Depth}{$\frac{25}{2}$}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(-0.1500,6.2500){\hspace*{\Width}\raisebox{\Height}{$\frac{25}{2}$}}%
-%
-%
-\settowidth{\Width}{$\frac{5}{2}$}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{$\frac{5}{2}$}\settodepth{\Depth}{$\frac{5}{2}$}\setlength{\Height}{-\Height}%
-\put(2.5000,-0.2500){\hspace*{\Width}\raisebox{\Height}{$\frac{5}{2}$}}%
-%
-%
-\special{pa -38 197}\special{pa -28 145}\special{pa 0 0}\special{pa 28 -137}\special{pa 56 -265}%
-\special{pa 84 -386}\special{pa 112 -498}\special{pa 141 -603}\special{pa 169 -699}%
-\special{pa 197 -787}\special{pa 225 -868}\special{pa 253 -940}\special{pa 281 -1004}%
-\special{pa 309 -1061}\special{pa 337 -1109}\special{pa 366 -1149}\special{pa 394 -1181}%
-\special{pa 422 -1205}\special{pa 450 -1221}\special{pa 478 -1229}\special{pa 506 -1229}%
-\special{pa 534 -1221}\special{pa 562 -1205}\special{pa 591 -1181}\special{pa 619 -1149}%
-\special{pa 647 -1109}\special{pa 675 -1061}\special{pa 703 -1004}\special{pa 731 -940}%
-\special{pa 759 -868}\special{pa 787 -787}\special{pa 816 -699}\special{pa 844 -603}%
-\special{pa 872 -498}\special{pa 900 -386}\special{pa 928 -265}\special{pa 956 -137}%
-\special{pa 984 0}\special{pa 1012 145}\special{pa 1022 197}%
-\special{fp}%
-\special{pa -197 0}\special{pa 1181 0}%
-\special{fp}%
-\special{pa 0 197}\special{pa 0 -1378}%
-\special{fp}%
-\settowidth{\Width}{$x$}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{$x$}\settodepth{\Depth}{$x$}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(6.0500,0.0000){\hspace*{\Width}\raisebox{\Height}{$x$}}%
-%
-%
-\settowidth{\Width}{$y$}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{$y$}\settodepth{\Depth}{$y$}\setlength{\Height}{\Depth}%
-\put(0.0000,7.0500){\hspace*{\Width}\raisebox{\Height}{$y$}}%
-%
-%
-\settowidth{\Width}{O}\setlength{\Width}{-1\Width}%
-\settoheight{\Height}{O}\settodepth{\Depth}{O}\setlength{\Height}{-\Height}%
-\put(-0.0500,-0.0500){\hspace*{\Width}\raisebox{\Height}{O}}%
-%
-%
-\end{picture}}% \ No newline at end of file
diff --git a/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/settable1.tex b/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/settable1.tex
deleted file mode 100644
index 17b756f2..00000000
--- a/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/settable1.tex
+++ /dev/null
@@ -1,170 +0,0 @@
-%%% test.tex 2014-11-27 19:37
-%%% test.sce 2014-11-27 19:37
-{\unitlength=6mm%
-\begin{picture}%
-( 6.00000, 4.00000)( 0.00000, 1.00000)%
-\special{pn 8}%
-%
-\settowidth{\Width}{1}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{1}\settodepth{\Depth}{1}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(1.0000,4.5000){\hspace*{\Width}\raisebox{\Height}{1}}%
-%
-%
-\settowidth{\Width}{2}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{2}\settodepth{\Depth}{2}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(3.0000,4.5000){\hspace*{\Width}\raisebox{\Height}{2}}%
-%
-%
-\settowidth{\Width}{3}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{3}\settodepth{\Depth}{3}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(5.0000,4.5000){\hspace*{\Width}\raisebox{\Height}{3}}%
-%
-%
-\settowidth{\Width}{4}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{4}\settodepth{\Depth}{4}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(7.0000,4.5000){\hspace*{\Width}\raisebox{\Height}{4}}%
-%
-%
-\settowidth{\Width}{5}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{5}\settodepth{\Depth}{5}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(1.0000,3.5000){\hspace*{\Width}\raisebox{\Height}{5}}%
-%
-%
-\settowidth{\Width}{6}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{6}\settodepth{\Depth}{6}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(3.0000,3.5000){\hspace*{\Width}\raisebox{\Height}{6}}%
-%
-%
-\settowidth{\Width}{7}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{7}\settodepth{\Depth}{7}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(5.0000,3.5000){\hspace*{\Width}\raisebox{\Height}{7}}%
-%
-%
-\settowidth{\Width}{8}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{8}\settodepth{\Depth}{8}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(7.0000,3.5000){\hspace*{\Width}\raisebox{\Height}{8}}%
-%
-%
-\settowidth{\Width}{9}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{9}\settodepth{\Depth}{9}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(1.0000,2.5000){\hspace*{\Width}\raisebox{\Height}{9}}%
-%
-%
-\settowidth{\Width}{10}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{10}\settodepth{\Depth}{10}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(3.0000,2.5000){\hspace*{\Width}\raisebox{\Height}{10}}%
-%
-%
-\settowidth{\Width}{11}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{11}\settodepth{\Depth}{11}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(5.0000,2.5000){\hspace*{\Width}\raisebox{\Height}{11}}%
-%
-%
-\settowidth{\Width}{12}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{12}\settodepth{\Depth}{12}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(7.0000,2.5000){\hspace*{\Width}\raisebox{\Height}{12}}%
-%
-%
-\settowidth{\Width}{13}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{13}\settodepth{\Depth}{13}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(1.0000,1.5000){\hspace*{\Width}\raisebox{\Height}{13}}%
-%
-%
-\settowidth{\Width}{14}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{14}\settodepth{\Depth}{14}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(3.0000,1.5000){\hspace*{\Width}\raisebox{\Height}{14}}%
-%
-%
-\settowidth{\Width}{15}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{15}\settodepth{\Depth}{15}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(5.0000,1.5000){\hspace*{\Width}\raisebox{\Height}{15}}%
-%
-%
-\settowidth{\Width}{16}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{16}\settodepth{\Depth}{16}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(7.0000,1.5000){\hspace*{\Width}\raisebox{\Height}{16}}%
-%
-%
-\settowidth{\Width}{17}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{17}\settodepth{\Depth}{17}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(1.0000,0.5000){\hspace*{\Width}\raisebox{\Height}{17}}%
-%
-%
-\settowidth{\Width}{18}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{18}\settodepth{\Depth}{18}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(3.0000,0.5000){\hspace*{\Width}\raisebox{\Height}{18}}%
-%
-%
-\settowidth{\Width}{19}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{19}\settodepth{\Depth}{19}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(5.0000,0.5000){\hspace*{\Width}\raisebox{\Height}{19}}%
-%
-%
-\settowidth{\Width}{20}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{20}\settodepth{\Depth}{20}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(7.0000,0.5000){\hspace*{\Width}\raisebox{\Height}{20}}%
-%
-%
-\special{pa 0 -1181}\special{pa 472 -1181}%
-\special{fp}%
-\special{pa 472 -1181}\special{pa 945 -1181}%
-\special{fp}%
-\special{pa 945 -1181}\special{pa 1417 -1181}%
-\special{fp}%
-\special{pa 0 -945}\special{pa 472 -945}%
-\special{fp}%
-\special{pa 472 -945}\special{pa 945 -945}%
-\special{fp}%
-\special{pa 945 -945}\special{pa 1417 -945}%
-\special{fp}%
-\special{pa 0 -709}\special{pa 472 -709}%
-\special{fp}%
-\special{pa 472 -709}\special{pa 945 -709}%
-\special{fp}%
-\special{pa 945 -709}\special{pa 1417 -709}%
-\special{fp}%
-\special{pa 0 -472}\special{pa 472 -472}%
-\special{fp}%
-\special{pa 472 -472}\special{pa 945 -472}%
-\special{fp}%
-\special{pa 945 -472}\special{pa 1417 -472}%
-\special{fp}%
-\special{pa 0 -236}\special{pa 472 -236}%
-\special{fp}%
-\special{pa 472 -236}\special{pa 945 -236}%
-\special{fp}%
-\special{pa 945 -236}\special{pa 1417 -236}%
-\special{fp}%
-\special{pa 0 -1181}\special{pa 0 -945}%
-\special{fp}%
-\special{pa 0 -945}\special{pa 0 -709}%
-\special{fp}%
-\special{pa 0 -709}\special{pa 0 -472}%
-\special{fp}%
-\special{pa 0 -472}\special{pa 0 -236}%
-\special{fp}%
-\special{pa 472 -1181}\special{pa 472 -945}%
-\special{fp}%
-\special{pa 472 -945}\special{pa 472 -709}%
-\special{fp}%
-\special{pa 472 -709}\special{pa 472 -472}%
-\special{fp}%
-\special{pa 472 -472}\special{pa 472 -236}%
-\special{fp}%
-\special{pa 945 -1181}\special{pa 945 -945}%
-\special{fp}%
-\special{pa 945 -945}\special{pa 945 -709}%
-\special{fp}%
-\special{pa 945 -709}\special{pa 945 -472}%
-\special{fp}%
-\special{pa 945 -472}\special{pa 945 -236}%
-\special{fp}%
-\special{pa 1417 -1181}\special{pa 1417 -945}%
-\special{fp}%
-\special{pa 1417 -945}\special{pa 1417 -709}%
-\special{fp}%
-\special{pa 1417 -709}\special{pa 1417 -472}%
-\special{fp}%
-\special{pa 1417 -472}\special{pa 1417 -236}%
-\special{fp}%
-\end{picture}}% \ No newline at end of file
diff --git a/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/settable2.tex b/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/settable2.tex
deleted file mode 100644
index f97b08e7..00000000
--- a/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/settable2.tex
+++ /dev/null
@@ -1,142 +0,0 @@
-%%% test.tex 2014-11-27 19:36
-%%% test.sce 2014-11-27 19:36
-{\unitlength=6mm%
-\begin{picture}%
-( 4.00000, 3.00000)( 2.00000, 1.00000)%
-\special{pn 8}%
-%
-\settowidth{\Width}{1}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{1}\settodepth{\Depth}{1}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(1.0000,4.5000){\hspace*{\Width}\raisebox{\Height}{1}}%
-%
-%
-\settowidth{\Width}{2}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{2}\settodepth{\Depth}{2}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(3.0000,4.5000){\hspace*{\Width}\raisebox{\Height}{2}}%
-%
-%
-\settowidth{\Width}{3}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{3}\settodepth{\Depth}{3}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(5.0000,4.5000){\hspace*{\Width}\raisebox{\Height}{3}}%
-%
-%
-\settowidth{\Width}{4}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{4}\settodepth{\Depth}{4}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(7.0000,4.5000){\hspace*{\Width}\raisebox{\Height}{4}}%
-%
-%
-\settowidth{\Width}{5}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{5}\settodepth{\Depth}{5}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(1.0000,3.5000){\hspace*{\Width}\raisebox{\Height}{5}}%
-%
-%
-\settowidth{\Width}{6}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{6}\settodepth{\Depth}{6}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(3.0000,3.5000){\hspace*{\Width}\raisebox{\Height}{6}}%
-%
-%
-\settowidth{\Width}{7}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{7}\settodepth{\Depth}{7}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(5.0000,3.5000){\hspace*{\Width}\raisebox{\Height}{7}}%
-%
-%
-\settowidth{\Width}{8}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{8}\settodepth{\Depth}{8}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(7.0000,3.5000){\hspace*{\Width}\raisebox{\Height}{8}}%
-%
-%
-\settowidth{\Width}{9}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{9}\settodepth{\Depth}{9}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(1.0000,2.5000){\hspace*{\Width}\raisebox{\Height}{9}}%
-%
-%
-\settowidth{\Width}{10}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{10}\settodepth{\Depth}{10}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(3.0000,2.5000){\hspace*{\Width}\raisebox{\Height}{10}}%
-%
-%
-\settowidth{\Width}{11}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{11}\settodepth{\Depth}{11}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(5.0000,2.5000){\hspace*{\Width}\raisebox{\Height}{11}}%
-%
-%
-\settowidth{\Width}{12}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{12}\settodepth{\Depth}{12}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(7.0000,2.5000){\hspace*{\Width}\raisebox{\Height}{12}}%
-%
-%
-\settowidth{\Width}{13}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{13}\settodepth{\Depth}{13}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(1.0000,1.5000){\hspace*{\Width}\raisebox{\Height}{13}}%
-%
-%
-\settowidth{\Width}{14}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{14}\settodepth{\Depth}{14}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(3.0000,1.5000){\hspace*{\Width}\raisebox{\Height}{14}}%
-%
-%
-\settowidth{\Width}{15}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{15}\settodepth{\Depth}{15}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(5.0000,1.5000){\hspace*{\Width}\raisebox{\Height}{15}}%
-%
-%
-\settowidth{\Width}{16}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{16}\settodepth{\Depth}{16}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(7.0000,1.5000){\hspace*{\Width}\raisebox{\Height}{16}}%
-%
-%
-\settowidth{\Width}{17}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{17}\settodepth{\Depth}{17}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(1.0000,0.5000){\hspace*{\Width}\raisebox{\Height}{17}}%
-%
-%
-\settowidth{\Width}{18}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{18}\settodepth{\Depth}{18}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(3.0000,0.5000){\hspace*{\Width}\raisebox{\Height}{18}}%
-%
-%
-\settowidth{\Width}{19}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{19}\settodepth{\Depth}{19}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(5.0000,0.5000){\hspace*{\Width}\raisebox{\Height}{19}}%
-%
-%
-\settowidth{\Width}{20}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{20}\settodepth{\Depth}{20}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(7.0000,0.5000){\hspace*{\Width}\raisebox{\Height}{20}}%
-%
-%
-\special{pa 472 -945}\special{pa 945 -945}%
-\special{fp}%
-\special{pa 945 -945}\special{pa 1417 -945}%
-\special{fp}%
-\special{pa 472 -709}\special{pa 945 -709}%
-\special{fp}%
-\special{pa 945 -709}\special{pa 1417 -709}%
-\special{fp}%
-\special{pa 472 -472}\special{pa 945 -472}%
-\special{fp}%
-\special{pa 945 -472}\special{pa 1417 -472}%
-\special{fp}%
-\special{pa 472 -236}\special{pa 945 -236}%
-\special{fp}%
-\special{pa 945 -236}\special{pa 1417 -236}%
-\special{fp}%
-\special{pa 472 -945}\special{pa 472 -709}%
-\special{fp}%
-\special{pa 472 -709}\special{pa 472 -472}%
-\special{fp}%
-\special{pa 472 -472}\special{pa 472 -236}%
-\special{fp}%
-\special{pa 945 -945}\special{pa 945 -709}%
-\special{fp}%
-\special{pa 945 -709}\special{pa 945 -472}%
-\special{fp}%
-\special{pa 945 -472}\special{pa 945 -236}%
-\special{fp}%
-\special{pa 1417 -945}\special{pa 1417 -709}%
-\special{fp}%
-\special{pa 1417 -709}\special{pa 1417 -472}%
-\special{fp}%
-\special{pa 1417 -472}\special{pa 1417 -236}%
-\special{fp}%
-\end{picture}}% \ No newline at end of file
diff --git a/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/shade.tex b/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/shade.tex
deleted file mode 100644
index 3a7aa867..00000000
--- a/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/shade.tex
+++ /dev/null
@@ -1,103 +0,0 @@
-%%% test.tex 2014-11-29 21:58
-%%% test.sce 2014-11-29 21:58
-{\unitlength=5mm%
-\begin{picture}%
-( 11.00000, 6.00000)( -1.00000, -3.00000)%
-\special{pn 8}%
-%
-\special{pa 515 -197}\special{pa 524 -182}\special{pa 532 -167}\special{pa 540 -152}%
-\special{pa 549 -137}\special{pa 557 -121}\special{pa 565 -105}\special{pa 574 -89}%
-\special{pa 582 -72}\special{pa 590 -56}\special{pa 599 -39}\special{pa 607 -23}\special{pa 615 -6}%
-\special{pa 624 10}\special{pa 632 27}\special{pa 640 44}\special{pa 649 60}\special{pa 657 77}%
-\special{pa 665 93}\special{pa 674 109}\special{pa 682 125}\special{pa 690 141}\special{pa 699 156}%
-\special{pa 707 171}\special{pa 715 186}\special{pa 724 200}\special{pa 732 215}\special{pa 740 228}%
-\special{pa 749 242}\special{pa 757 255}\special{pa 765 267}\special{pa 774 279}\special{pa 782 291}%
-\special{pa 790 302}\special{pa 799 312}\special{pa 807 322}\special{pa 815 331}\special{pa 824 340}%
-\special{pa 832 348}\special{pa 840 355}\special{pa 849 362}\special{pa 857 369}\special{pa 865 374}%
-\special{pa 873 379}\special{pa 882 383}\special{pa 890 387}\special{pa 898 389}\special{pa 907 392}%
-\special{pa 915 393}\special{pa 923 394}\special{pa 932 394}\special{pa 940 393}\special{pa 948 392}%
-\special{pa 957 389}\special{pa 965 387}\special{pa 973 383}\special{pa 982 379}\special{pa 990 374}%
-\special{pa 998 369}\special{pa 1007 362}\special{pa 1015 355}\special{pa 1023 348}%
-\special{pa 1032 340}\special{pa 1040 331}\special{pa 1048 322}\special{pa 1057 312}%
-\special{pa 1065 302}\special{pa 1073 291}\special{pa 1082 279}\special{pa 1090 267}%
-\special{pa 1098 255}\special{pa 1107 242}\special{pa 1115 228}\special{pa 1123 215}%
-\special{pa 1132 200}\special{pa 1140 186}\special{pa 1148 171}\special{pa 1157 156}%
-\special{pa 1165 141}\special{pa 1173 125}\special{pa 1182 109}\special{pa 1190 93}%
-\special{pa 1198 77}\special{pa 1207 60}\special{pa 1215 44}\special{pa 1223 27}\special{pa 1232 10}%
-\special{pa 1240 -6}\special{pa 1248 -23}\special{pa 1257 -39}\special{pa 1265 -56}%
-\special{pa 1273 -72}\special{pa 1282 -89}\special{pa 1290 -105}\special{pa 1298 -121}%
-\special{pa 1307 -137}\special{pa 1315 -152}\special{pa 1323 -167}\special{pa 1332 -182}%
-\special{pa 1340 -197}\special{pa 516 -197}\special{pa 515 -197}\special{sh 0.5}\special{ip}%
-\special{pa -197 331}\special{pa -175 306}\special{pa -153 276}\special{pa -131 243}%
-\special{pa -109 208}\special{pa -87 169}\special{pa -66 129}\special{pa -44 87}\special{pa -22 44}%
-\special{pa 0 0}\special{pa 22 -44}\special{pa 44 -87}\special{pa 66 -129}\special{pa 87 -169}%
-\special{pa 109 -208}\special{pa 131 -243}\special{pa 153 -276}\special{pa 175 -306}%
-\special{pa 197 -331}\special{pa 219 -353}\special{pa 241 -370}\special{pa 262 -383}%
-\special{pa 284 -391}\special{pa 306 -394}\special{pa 328 -392}\special{pa 350 -385}%
-\special{pa 372 -374}\special{pa 394 -358}\special{pa 416 -338}\special{pa 437 -313}%
-\special{pa 459 -285}\special{pa 481 -253}\special{pa 503 -218}\special{pa 525 -180}%
-\special{pa 547 -140}\special{pa 569 -98}\special{pa 591 -56}\special{pa 612 -12}%
-\special{pa 634 32}\special{pa 656 75}\special{pa 678 117}\special{pa 700 158}\special{pa 722 197}%
-\special{pa 744 234}\special{pa 766 268}\special{pa 787 298}\special{pa 809 325}\special{pa 831 347}%
-\special{pa 853 366}\special{pa 875 380}\special{pa 897 389}\special{pa 919 393}\special{pa 941 393}%
-\special{pa 962 388}\special{pa 984 378}\special{pa 1006 363}\special{pa 1028 344}%
-\special{pa 1050 320}\special{pa 1072 293}\special{pa 1094 262}\special{pa 1115 228}%
-\special{pa 1137 191}\special{pa 1159 151}\special{pa 1181 110}\special{pa 1203 67}%
-\special{pa 1225 24}\special{pa 1247 -20}\special{pa 1269 -63}\special{pa 1290 -106}%
-\special{pa 1312 -147}\special{pa 1334 -187}\special{pa 1356 -224}\special{pa 1378 -259}%
-\special{pa 1400 -290}\special{pa 1422 -318}\special{pa 1444 -342}\special{pa 1465 -361}%
-\special{pa 1487 -376}\special{pa 1509 -387}\special{pa 1531 -393}\special{pa 1553 -393}%
-\special{pa 1575 -390}\special{pa 1597 -381}\special{pa 1619 -367}\special{pa 1640 -349}%
-\special{pa 1662 -327}\special{pa 1684 -301}\special{pa 1706 -271}\special{pa 1728 -237}%
-\special{pa 1750 -201}\special{pa 1772 -162}\special{pa 1794 -121}\special{pa 1815 -79}%
-\special{pa 1837 -36}\special{pa 1859 8}\special{pa 1881 51}\special{pa 1903 94}\special{pa 1925 136}%
-\special{pa 1947 176}\special{pa 1969 214}%
-\special{fp}%
-\special{pa 515 -197}\special{pa 524 -182}\special{pa 532 -167}\special{pa 540 -152}%
-\special{pa 549 -137}\special{pa 557 -121}\special{pa 565 -105}\special{pa 574 -89}%
-\special{pa 582 -72}\special{pa 590 -56}\special{pa 599 -39}\special{pa 607 -23}\special{pa 615 -6}%
-\special{pa 624 10}\special{pa 632 27}\special{pa 640 44}\special{pa 649 60}\special{pa 657 77}%
-\special{pa 665 93}\special{pa 674 109}\special{pa 682 125}\special{pa 690 141}\special{pa 699 156}%
-\special{pa 707 171}\special{pa 715 186}\special{pa 724 200}\special{pa 732 215}\special{pa 740 228}%
-\special{pa 749 242}\special{pa 757 255}\special{pa 765 267}\special{pa 774 279}\special{pa 782 291}%
-\special{pa 790 302}\special{pa 799 312}\special{pa 807 322}\special{pa 815 331}\special{pa 824 340}%
-\special{pa 832 348}\special{pa 840 355}\special{pa 849 362}\special{pa 857 369}\special{pa 865 374}%
-\special{pa 873 379}\special{pa 882 383}\special{pa 890 387}\special{pa 898 389}\special{pa 907 392}%
-\special{pa 915 393}\special{pa 923 394}\special{pa 932 394}\special{pa 940 393}\special{pa 948 392}%
-\special{pa 957 389}\special{pa 965 387}\special{pa 973 383}\special{pa 982 379}\special{pa 990 374}%
-\special{pa 998 369}\special{pa 1007 362}\special{pa 1015 355}\special{pa 1023 348}%
-\special{pa 1032 340}\special{pa 1040 331}\special{pa 1048 322}\special{pa 1057 312}%
-\special{pa 1065 302}\special{pa 1073 291}\special{pa 1082 279}\special{pa 1090 267}%
-\special{pa 1098 255}\special{pa 1107 242}\special{pa 1115 228}\special{pa 1123 215}%
-\special{pa 1132 200}\special{pa 1140 186}\special{pa 1148 171}\special{pa 1157 156}%
-\special{pa 1165 141}\special{pa 1173 125}\special{pa 1182 109}\special{pa 1190 93}%
-\special{pa 1198 77}\special{pa 1207 60}\special{pa 1215 44}\special{pa 1223 27}\special{pa 1232 10}%
-\special{pa 1240 -6}\special{pa 1248 -23}\special{pa 1257 -39}\special{pa 1265 -56}%
-\special{pa 1273 -72}\special{pa 1282 -89}\special{pa 1290 -105}\special{pa 1298 -121}%
-\special{pa 1307 -137}\special{pa 1315 -152}\special{pa 1323 -167}\special{pa 1332 -182}%
-\special{pa 1340 -197}%
-\special{fp}%
-\special{pa -197 -197}\special{pa 1969 -197}%
-\special{fp}%
-\special{pa 516 -197}\special{pa 1341 -197}%
-\special{fp}%
-\special{pa -197 0}\special{pa 1969 0}%
-\special{fp}%
-\special{pa 0 591}\special{pa 0 -591}%
-\special{fp}%
-\settowidth{\Width}{$x$}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{$x$}\settodepth{\Depth}{$x$}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(10.0500,0.0000){\hspace*{\Width}\raisebox{\Height}{$x$}}%
-%
-%
-\settowidth{\Width}{$y$}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{$y$}\settodepth{\Depth}{$y$}\setlength{\Height}{\Depth}%
-\put(0.0000,3.0500){\hspace*{\Width}\raisebox{\Height}{$y$}}%
-%
-%
-\settowidth{\Width}{O}\setlength{\Width}{-1\Width}%
-\settoheight{\Height}{O}\settodepth{\Depth}{O}\setlength{\Height}{\Depth}%
-\put(-0.0500,0.0500){\hspace*{\Width}\raisebox{\Height}{O}}%
-%
-%
-\end{picture}}% \ No newline at end of file
diff --git a/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/shade01.tex b/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/shade01.tex
deleted file mode 100644
index 079d9c66..00000000
--- a/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/shade01.tex
+++ /dev/null
@@ -1,122 +0,0 @@
-%%% test.tex 2014-12-3 13:6
-%%% test.sce 2014-12-3 13:5
-{\unitlength=8mm%
-\begin{picture}%
-( 6.00000, 4.00000)( -3.00000, -1.00000)%
-\special{pn 8}%
-%
-\special{pa -445 -315}\special{pa -436 -302}\special{pa -427 -290}\special{pa -418 -278}%
-\special{pa -409 -266}\special{pa -400 -255}\special{pa -391 -243}\special{pa -382 -232}%
-\special{pa -373 -221}\special{pa -364 -211}\special{pa -355 -201}\special{pa -346 -191}%
-\special{pa -337 -181}\special{pa -328 -171}\special{pa -319 -162}\special{pa -310 -153}%
-\special{pa -301 -144}\special{pa -292 -136}\special{pa -283 -128}\special{pa -274 -120}%
-\special{pa -265 -112}\special{pa -256 -104}\special{pa -247 -97}\special{pa -238 -90}%
-\special{pa -229 -84}\special{pa -220 -77}\special{pa -211 -71}\special{pa -202 -65}%
-\special{pa -193 -59}\special{pa -184 -54}\special{pa -175 -49}\special{pa -166 -44}%
-\special{pa -157 -39}\special{pa -148 -35}\special{pa -139 -31}\special{pa -130 -27}%
-\special{pa -121 -23}\special{pa -112 -20}\special{pa -103 -17}\special{pa -94 -14}%
-\special{pa -85 -12}\special{pa -76 -9}\special{pa -67 -7}\special{pa -58 -5}\special{pa -49 -4}%
-\special{pa -40 -3}\special{pa -31 -2}\special{pa -22 -1}\special{pa -13 0}\special{pa -4 0}%
-\special{pa 4 0}\special{pa 13 0}\special{pa 22 -1}\special{pa 31 -2}\special{pa 40 -3}%
-\special{pa 49 -4}\special{pa 58 -5}\special{pa 67 -7}\special{pa 76 -9}\special{pa 85 -12}%
-\special{pa 94 -14}\special{pa 103 -17}\special{pa 112 -20}\special{pa 121 -23}\special{pa 130 -27}%
-\special{pa 139 -31}\special{pa 148 -35}\special{pa 157 -39}\special{pa 166 -44}\special{pa 175 -49}%
-\special{pa 184 -54}\special{pa 193 -59}\special{pa 202 -65}\special{pa 211 -71}\special{pa 220 -77}%
-\special{pa 229 -84}\special{pa 238 -90}\special{pa 247 -97}\special{pa 256 -104}%
-\special{pa 265 -112}\special{pa 274 -120}\special{pa 283 -128}\special{pa 292 -136}%
-\special{pa 301 -144}\special{pa 310 -153}\special{pa 319 -162}\special{pa 328 -171}%
-\special{pa 337 -181}\special{pa 346 -191}\special{pa 355 -201}\special{pa 364 -211}%
-\special{pa 373 -221}\special{pa 382 -232}\special{pa 391 -243}\special{pa 400 -255}%
-\special{pa 409 -266}\special{pa 418 -278}\special{pa 427 -290}\special{pa 436 -302}%
-\special{pa 445 -315}\special{pa 436 -290}\special{pa 427 -265}\special{pa 418 -241}%
-\special{pa 409 -217}\special{pa 400 -194}\special{pa 391 -172}\special{pa 382 -149}%
-\special{pa 373 -128}\special{pa 364 -107}\special{pa 355 -86}\special{pa 346 -66}%
-\special{pa 337 -47}\special{pa 328 -28}\special{pa 319 -9}\special{pa 310 9}\special{pa 301 26}%
-\special{pa 292 43}\special{pa 283 60}\special{pa 274 76}\special{pa 265 91}\special{pa 256 106}%
-\special{pa 247 121}\special{pa 238 134}\special{pa 229 148}\special{pa 220 161}\special{pa 211 173}%
-\special{pa 202 185}\special{pa 193 196}\special{pa 184 207}\special{pa 175 217}\special{pa 166 227}%
-\special{pa 157 236}\special{pa 148 245}\special{pa 139 253}\special{pa 130 261}\special{pa 121 268}%
-\special{pa 112 275}\special{pa 103 281}\special{pa 94 287}\special{pa 85 292}\special{pa 76 296}%
-\special{pa 67 300}\special{pa 58 304}\special{pa 49 307}\special{pa 40 310}\special{pa 31 312}%
-\special{pa 22 313}\special{pa 13 314}\special{pa 4 315}\special{pa -4 315}\special{pa -13 314}%
-\special{pa -22 313}\special{pa -31 312}\special{pa -40 310}\special{pa -49 307}\special{pa -58 304}%
-\special{pa -67 300}\special{pa -76 296}\special{pa -85 292}\special{pa -94 287}\special{pa -103 281}%
-\special{pa -112 275}\special{pa -121 268}\special{pa -130 261}\special{pa -139 253}%
-\special{pa -148 245}\special{pa -157 236}\special{pa -166 227}\special{pa -175 217}%
-\special{pa -184 207}\special{pa -193 196}\special{pa -202 185}\special{pa -211 173}%
-\special{pa -220 161}\special{pa -229 148}\special{pa -238 134}\special{pa -247 121}%
-\special{pa -256 106}\special{pa -265 91}\special{pa -274 76}\special{pa -283 60}%
-\special{pa -292 43}\special{pa -301 26}\special{pa -310 9}\special{pa -319 -9}\special{pa -328 -28}%
-\special{pa -337 -47}\special{pa -346 -66}\special{pa -355 -86}\special{pa -364 -107}%
-\special{pa -373 -128}\special{pa -382 -149}\special{pa -391 -172}\special{pa -400 -194}%
-\special{pa -409 -217}\special{pa -418 -241}\special{pa -427 -265}\special{pa -436 -290}%
-\special{pa -445 -315}\special{sh 0.2}\special{ip}%
-\special{pa -445 -315}\special{pa -436 -290}\special{pa -427 -265}\special{pa -418 -241}%
-\special{pa -409 -217}\special{pa -400 -194}\special{pa -391 -172}\special{pa -382 -149}%
-\special{pa -373 -128}\special{pa -364 -107}\special{pa -355 -86}\special{pa -346 -66}%
-\special{pa -337 -47}\special{pa -328 -28}\special{pa -319 -9}\special{pa -310 9}%
-\special{pa -301 26}\special{pa -292 43}\special{pa -283 60}\special{pa -274 76}\special{pa -265 91}%
-\special{pa -256 106}\special{pa -247 121}\special{pa -238 134}\special{pa -229 148}%
-\special{pa -220 161}\special{pa -211 173}\special{pa -202 185}\special{pa -193 196}%
-\special{pa -184 207}\special{pa -175 217}\special{pa -166 227}\special{pa -157 236}%
-\special{pa -148 245}\special{pa -139 253}\special{pa -130 261}\special{pa -121 268}%
-\special{pa -112 275}\special{pa -103 281}\special{pa -94 287}\special{pa -85 292}%
-\special{pa -76 296}\special{pa -67 300}\special{pa -58 304}\special{pa -49 307}\special{pa -40 310}%
-\special{pa -31 312}\special{pa -22 313}\special{pa -13 314}\special{pa -4 315}\special{pa 4 315}%
-\special{pa 13 314}\special{pa 22 313}\special{pa 31 312}\special{pa 40 310}\special{pa 49 307}%
-\special{pa 58 304}\special{pa 67 300}\special{pa 76 296}\special{pa 85 292}\special{pa 94 287}%
-\special{pa 103 281}\special{pa 112 275}\special{pa 121 268}\special{pa 130 261}\special{pa 139 253}%
-\special{pa 148 245}\special{pa 157 236}\special{pa 166 227}\special{pa 175 217}\special{pa 184 207}%
-\special{pa 193 196}\special{pa 202 185}\special{pa 211 173}\special{pa 220 161}\special{pa 229 148}%
-\special{pa 238 134}\special{pa 247 121}\special{pa 256 106}\special{pa 265 91}\special{pa 274 76}%
-\special{pa 283 60}\special{pa 292 43}\special{pa 301 26}\special{pa 310 9}\special{pa 319 -9}%
-\special{pa 328 -28}\special{pa 337 -47}\special{pa 346 -66}\special{pa 355 -86}\special{pa 364 -107}%
-\special{pa 373 -128}\special{pa 382 -149}\special{pa 391 -172}\special{pa 400 -194}%
-\special{pa 409 -217}\special{pa 418 -241}\special{pa 427 -265}\special{pa 436 -290}%
-\special{pa 445 -315}%
-\special{fp}%
-\special{pa -445 -315}\special{pa -436 -302}\special{pa -427 -290}\special{pa -418 -278}%
-\special{pa -409 -266}\special{pa -400 -255}\special{pa -391 -243}\special{pa -382 -232}%
-\special{pa -373 -221}\special{pa -364 -211}\special{pa -355 -201}\special{pa -346 -191}%
-\special{pa -337 -181}\special{pa -328 -171}\special{pa -319 -162}\special{pa -310 -153}%
-\special{pa -301 -144}\special{pa -292 -136}\special{pa -283 -128}\special{pa -274 -120}%
-\special{pa -265 -112}\special{pa -256 -104}\special{pa -247 -97}\special{pa -238 -90}%
-\special{pa -229 -84}\special{pa -220 -77}\special{pa -211 -71}\special{pa -202 -65}%
-\special{pa -193 -59}\special{pa -184 -54}\special{pa -175 -49}\special{pa -166 -44}%
-\special{pa -157 -39}\special{pa -148 -35}\special{pa -139 -31}\special{pa -130 -27}%
-\special{pa -121 -23}\special{pa -112 -20}\special{pa -103 -17}\special{pa -94 -14}%
-\special{pa -85 -12}\special{pa -76 -9}\special{pa -67 -7}\special{pa -58 -5}\special{pa -49 -4}%
-\special{pa -40 -3}\special{pa -31 -2}\special{pa -22 -1}\special{pa -13 0}\special{pa -4 0}%
-\special{pa 4 0}\special{pa 13 0}\special{pa 22 -1}\special{pa 31 -2}\special{pa 40 -3}%
-\special{pa 49 -4}\special{pa 58 -5}\special{pa 67 -7}\special{pa 76 -9}\special{pa 85 -12}%
-\special{pa 94 -14}\special{pa 103 -17}\special{pa 112 -20}\special{pa 121 -23}\special{pa 130 -27}%
-\special{pa 139 -31}\special{pa 148 -35}\special{pa 157 -39}\special{pa 166 -44}\special{pa 175 -49}%
-\special{pa 184 -54}\special{pa 193 -59}\special{pa 202 -65}\special{pa 211 -71}\special{pa 220 -77}%
-\special{pa 229 -84}\special{pa 238 -90}\special{pa 247 -97}\special{pa 256 -104}%
-\special{pa 265 -112}\special{pa 274 -120}\special{pa 283 -128}\special{pa 292 -136}%
-\special{pa 301 -144}\special{pa 310 -153}\special{pa 319 -162}\special{pa 328 -171}%
-\special{pa 337 -181}\special{pa 346 -191}\special{pa 355 -201}\special{pa 364 -211}%
-\special{pa 373 -221}\special{pa 382 -232}\special{pa 391 -243}\special{pa 400 -255}%
-\special{pa 409 -266}\special{pa 418 -278}\special{pa 427 -290}\special{pa 436 -302}%
-\special{pa 445 -315}%
-\special{fp}%
-\special{pa -945 0}\special{pa 945 0}%
-\special{fp}%
-\special{pa 0 315}\special{pa 0 -945}%
-\special{fp}%
-\settowidth{\Width}{$x$}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{$x$}\settodepth{\Depth}{$x$}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(3.0500,0.0000){\hspace*{\Width}\raisebox{\Height}{$x$}}%
-%
-%
-\settowidth{\Width}{$y$}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{$y$}\settodepth{\Depth}{$y$}\setlength{\Height}{\Depth}%
-\put(0.0000,3.0500){\hspace*{\Width}\raisebox{\Height}{$y$}}%
-%
-%
-\settowidth{\Width}{O}\setlength{\Width}{-1\Width}%
-\settoheight{\Height}{O}\settodepth{\Depth}{O}\setlength{\Height}{-\Height}%
-\put(-0.0500,-0.0500){\hspace*{\Width}\raisebox{\Height}{O}}%
-%
-%
-\end{picture}}% \ No newline at end of file
diff --git a/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/slot.png b/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/slot.png
deleted file mode 100644
index db04cc7e..00000000
--- a/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/slot.png
+++ /dev/null
Binary files differ
diff --git a/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/tab2list00.png b/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/tab2list00.png
deleted file mode 100644
index 0a0c792f..00000000
--- a/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/tab2list00.png
+++ /dev/null
Binary files differ
diff --git a/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/tab2list001.png b/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/tab2list001.png
deleted file mode 100644
index 04dd3290..00000000
--- a/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/tab2list001.png
+++ /dev/null
Binary files differ
diff --git a/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/tab2list01.png b/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/tab2list01.png
deleted file mode 100644
index 9d0ccfa7..00000000
--- a/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/tab2list01.png
+++ /dev/null
Binary files differ
diff --git a/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/tab2list02.png b/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/tab2list02.png
deleted file mode 100644
index c3aa6628..00000000
--- a/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/tab2list02.png
+++ /dev/null
Binary files differ
diff --git a/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/tab2list03.png b/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/tab2list03.png
deleted file mode 100644
index 90a21522..00000000
--- a/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/tab2list03.png
+++ /dev/null
Binary files differ
diff --git a/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/tab2list04.png b/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/tab2list04.png
deleted file mode 100644
index bdcd5661..00000000
--- a/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/tab2list04.png
+++ /dev/null
Binary files differ
diff --git a/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/table01.png b/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/table01.png
deleted file mode 100644
index ad61602b..00000000
--- a/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/table01.png
+++ /dev/null
Binary files differ
diff --git a/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/table02.tex b/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/table02.tex
deleted file mode 100644
index e97074d8..00000000
--- a/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/table02.tex
+++ /dev/null
@@ -1,106 +0,0 @@
-%%% test.tex 2014-11-24 21:36
-%%% test.sce 2014-11-24 21:36
-{\unitlength=6mm%
-\begin{picture}%
-( 8.00000, 5.00000)( 0.00000, 0.00000)%
-\special{pn 8}%
-%
-\special{pa 0 -1181}\special{pa 472 -1181}%
-\special{fp}%
-\special{pa 472 -1181}\special{pa 945 -1181}%
-\special{fp}%
-\special{pa 945 -1181}\special{pa 1417 -1181}%
-\special{fp}%
-\special{pa 1417 -1181}\special{pa 1890 -1181}%
-\special{fp}%
-\special{pa 0 -945}\special{pa 472 -945}%
-\special{fp}%
-\special{pa 472 -945}\special{pa 945 -945}%
-\special{fp}%
-\special{pa 945 -945}\special{pa 1417 -945}%
-\special{fp}%
-\special{pa 1417 -945}\special{pa 1890 -945}%
-\special{fp}%
-\special{pa 0 -709}\special{pa 472 -709}%
-\special{fp}%
-\special{pa 472 -709}\special{pa 945 -709}%
-\special{fp}%
-\special{pa 945 -709}\special{pa 1417 -709}%
-\special{fp}%
-\special{pa 1417 -709}\special{pa 1890 -709}%
-\special{fp}%
-\special{pa 0 -472}\special{pa 472 -472}%
-\special{fp}%
-\special{pa 472 -472}\special{pa 945 -472}%
-\special{fp}%
-\special{pa 945 -472}\special{pa 1417 -472}%
-\special{fp}%
-\special{pa 1417 -472}\special{pa 1890 -472}%
-\special{fp}%
-\special{pa 0 -236}\special{pa 472 -236}%
-\special{fp}%
-\special{pa 472 -236}\special{pa 945 -236}%
-\special{fp}%
-\special{pa 945 -236}\special{pa 1417 -236}%
-\special{fp}%
-\special{pa 1417 -236}\special{pa 1890 -236}%
-\special{fp}%
-\special{pa 0 0}\special{pa 472 0}%
-\special{fp}%
-\special{pa 472 0}\special{pa 945 0}%
-\special{fp}%
-\special{pa 945 0}\special{pa 1417 0}%
-\special{fp}%
-\special{pa 1417 0}\special{pa 1890 0}%
-\special{fp}%
-\special{pa 0 -1181}\special{pa 0 -945}%
-\special{fp}%
-\special{pa 0 -945}\special{pa 0 -709}%
-\special{fp}%
-\special{pa 0 -709}\special{pa 0 -472}%
-\special{fp}%
-\special{pa 0 -472}\special{pa 0 -236}%
-\special{fp}%
-\special{pa 0 -236}\special{pa 0 0}%
-\special{fp}%
-\special{pa 472 -1181}\special{pa 472 -945}%
-\special{fp}%
-\special{pa 472 -945}\special{pa 472 -709}%
-\special{fp}%
-\special{pa 472 -709}\special{pa 472 -472}%
-\special{fp}%
-\special{pa 472 -472}\special{pa 472 -236}%
-\special{fp}%
-\special{pa 472 -236}\special{pa 472 0}%
-\special{fp}%
-\special{pa 945 -1181}\special{pa 945 -945}%
-\special{fp}%
-\special{pa 945 -945}\special{pa 945 -709}%
-\special{fp}%
-\special{pa 945 -709}\special{pa 945 -472}%
-\special{fp}%
-\special{pa 945 -472}\special{pa 945 -236}%
-\special{fp}%
-\special{pa 945 -236}\special{pa 945 0}%
-\special{fp}%
-\special{pa 1417 -1181}\special{pa 1417 -945}%
-\special{fp}%
-\special{pa 1417 -945}\special{pa 1417 -709}%
-\special{fp}%
-\special{pa 1417 -709}\special{pa 1417 -472}%
-\special{fp}%
-\special{pa 1417 -472}\special{pa 1417 -236}%
-\special{fp}%
-\special{pa 1417 -236}\special{pa 1417 0}%
-\special{fp}%
-\special{pa 1890 -1181}\special{pa 1890 -945}%
-\special{fp}%
-\special{pa 1890 -945}\special{pa 1890 -709}%
-\special{fp}%
-\special{pa 1890 -709}\special{pa 1890 -472}%
-\special{fp}%
-\special{pa 1890 -472}\special{pa 1890 -236}%
-\special{fp}%
-\special{pa 1890 -236}\special{pa 1890 0}%
-\special{fp}%
-\end{picture}}% \ No newline at end of file
diff --git a/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/table03.png b/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/table03.png
deleted file mode 100644
index 36737d2e..00000000
--- a/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/table03.png
+++ /dev/null
Binary files differ
diff --git a/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/tablesample1.tex b/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/tablesample1.tex
deleted file mode 100644
index 3cc533bc..00000000
--- a/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/tablesample1.tex
+++ /dev/null
@@ -1,182 +0,0 @@
-%%% fig.tex 2014-12-18 15:16
-%%% fig.sce 2014-12-18 15:16
-{\unitlength=5mm%
-\begin{picture}%
-( 12.00000, 9.00000)( -0.00000, -0.00000)%
-\special{pn 8}%
-%
-\special{pn 16}%
-\special{pa 0 -1772}\special{pa 787 -1772}%
-\special{fp}%
-\special{pn 8}%
-\special{pn 16}%
-\special{pa 787 -1772}\special{pa 1575 -1772}%
-\special{fp}%
-\special{pn 8}%
-\special{pn 16}%
-\special{pa 1575 -1772}\special{pa 2362 -1772}%
-\special{fp}%
-\special{pn 8}%
-\special{pn 16}%
-\special{pa 0 0}\special{pa 787 0}%
-\special{fp}%
-\special{pn 8}%
-\special{pn 16}%
-\special{pa 787 0}\special{pa 1575 0}%
-\special{fp}%
-\special{pn 8}%
-\special{pn 16}%
-\special{pa 1575 0}\special{pa 2362 0}%
-\special{fp}%
-\special{pn 8}%
-\special{pn 16}%
-\special{pa 0 -1772}\special{pa 0 -1378}%
-\special{fp}%
-\special{pn 8}%
-\special{pn 16}%
-\special{pa 0 -1378}\special{pa 0 -1102}%
-\special{fp}%
-\special{pn 8}%
-\special{pn 16}%
-\special{pa 0 -1102}\special{pa 0 0}%
-\special{fp}%
-\special{pn 8}%
-\special{pn 16}%
-\special{pa 787 -1772}\special{pa 787 -1378}%
-\special{fp}%
-\special{pn 8}%
-\special{pn 16}%
-\special{pa 787 -1378}\special{pa 787 -1102}%
-\special{fp}%
-\special{pn 8}%
-\special{pn 16}%
-\special{pa 787 -1102}\special{pa 787 0}%
-\special{fp}%
-\special{pn 8}%
-\special{pn 16}%
-\special{pa 1575 -1772}\special{pa 1575 -1378}%
-\special{fp}%
-\special{pn 8}%
-\special{pn 16}%
-\special{pa 1575 -1378}\special{pa 1575 -1102}%
-\special{fp}%
-\special{pn 8}%
-\special{pn 16}%
-\special{pa 1575 -1102}\special{pa 1575 0}%
-\special{fp}%
-\special{pn 8}%
-\special{pn 16}%
-\special{pa 2362 -1772}\special{pa 2362 -1378}%
-\special{fp}%
-\special{pn 8}%
-\special{pn 16}%
-\special{pa 2362 -1378}\special{pa 2362 -1102}%
-\special{fp}%
-\special{pn 8}%
-\special{pn 16}%
-\special{pa 2362 -1102}\special{pa 2362 0}%
-\special{fp}%
-\special{pn 8}%
-\special{pa 0 -1378}\special{pa 2362 -1378}%
-\special{fp}%
-\special{pa 0 -1102}\special{pa 39 -1102}\special{fp}\special{pa 77 -1102}\special{pa 116 -1102}\special{fp}%
-\special{pa 155 -1102}\special{pa 194 -1102}\special{fp}\special{pa 232 -1102}\special{pa 271 -1102}\special{fp}%
-\special{pa 310 -1102}\special{pa 349 -1102}\special{fp}\special{pa 387 -1102}\special{pa 426 -1102}\special{fp}%
-\special{pa 465 -1102}\special{pa 503 -1102}\special{fp}\special{pa 542 -1102}\special{pa 581 -1102}\special{fp}%
-\special{pa 620 -1102}\special{pa 658 -1102}\special{fp}\special{pa 697 -1102}\special{pa 736 -1102}\special{fp}%
-\special{pa 774 -1102}\special{pa 813 -1102}\special{fp}\special{pa 852 -1102}\special{pa 891 -1102}\special{fp}%
-\special{pa 929 -1102}\special{pa 968 -1102}\special{fp}\special{pa 1007 -1102}\special{pa 1046 -1102}\special{fp}%
-\special{pa 1084 -1102}\special{pa 1123 -1102}\special{fp}\special{pa 1162 -1102}\special{pa 1200 -1102}\special{fp}%
-\special{pa 1239 -1102}\special{pa 1278 -1102}\special{fp}\special{pa 1317 -1102}\special{pa 1355 -1102}\special{fp}%
-\special{pa 1394 -1102}\special{pa 1433 -1102}\special{fp}\special{pa 1472 -1102}\special{pa 1510 -1102}\special{fp}%
-\special{pa 1549 -1102}\special{pa 1588 -1102}\special{fp}\special{pa 1626 -1102}\special{pa 1665 -1102}\special{fp}%
-\special{pa 1704 -1102}\special{pa 1743 -1102}\special{fp}\special{pa 1781 -1102}\special{pa 1820 -1102}\special{fp}%
-\special{pa 1859 -1102}\special{pa 1898 -1102}\special{fp}\special{pa 1936 -1102}\special{pa 1975 -1102}\special{fp}%
-\special{pa 2014 -1102}\special{pa 2052 -1102}\special{fp}\special{pa 2091 -1102}\special{pa 2130 -1102}\special{fp}%
-\special{pa 2169 -1102}\special{pa 2207 -1102}\special{fp}\special{pa 2246 -1102}\special{pa 2285 -1102}\special{fp}%
-\special{pa 2323 -1102}\special{pa 2362 -1102}\special{fp}%
-%
-\settowidth{\Width}{$D>0$}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{$D>0$}\settodepth{\Depth}{$D>0$}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(2.0000,8.0000){\hspace*{\Width}\raisebox{\Height}{$D>0$}}%
-%
-%
-\settowidth{\Width}{$D=0$}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{$D=0$}\settodepth{\Depth}{$D=0$}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(6.0000,8.0000){\hspace*{\Width}\raisebox{\Height}{$D=0$}}%
-%
-%
-\settowidth{\Width}{$D<0$}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{$D<0$}\settodepth{\Depth}{$D<0$}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(10.0000,8.0000){\hspace*{\Width}\raisebox{\Height}{$D<0$}}%
-%
-%
-\settowidth{\Width}{2点ã§äº¤ã‚ã‚‹}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{2点ã§äº¤ã‚ã‚‹}\settodepth{\Depth}{2点ã§äº¤ã‚ã‚‹}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(2.0000,6.3000){\hspace*{\Width}\raisebox{\Height}{2点ã§äº¤ã‚ã‚‹}}%
-%
-%
-\settowidth{\Width}{接ã™ã‚‹}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{接ã™ã‚‹}\settodepth{\Depth}{接ã™ã‚‹}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(6.0000,6.3000){\hspace*{\Width}\raisebox{\Height}{接ã™ã‚‹}}%
-%
-%
-\settowidth{\Width}{共有点ãªã—}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{共有点ãªã—}\settodepth{\Depth}{共有点ãªã—}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(10.0000,6.3000){\hspace*{\Width}\raisebox{\Height}{共有点ãªã—}}%
-%
-%
-\settowidth{\Width}{判別å¼ã¨$x$軸ã®äº¤ç‚¹}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{判別å¼ã¨$x$軸ã®äº¤ç‚¹}\settodepth{\Depth}{判別å¼ã¨$x$軸ã®äº¤ç‚¹}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(4.0000,10.0000){\hspace*{\Width}\raisebox{\Height}{判別å¼ã¨$x$軸ã®äº¤ç‚¹}}%
-%
-%
-\special{pa 98 -738}\special{pa 110 -703}\special{pa 123 -669}\special{pa 135 -636}%
-\special{pa 147 -605}\special{pa 159 -576}\special{pa 171 -548}\special{pa 183 -521}%
-\special{pa 195 -496}\special{pa 207 -473}\special{pa 219 -450}\special{pa 231 -430}%
-\special{pa 243 -411}\special{pa 255 -393}\special{pa 267 -377}\special{pa 279 -362}%
-\special{pa 291 -349}\special{pa 303 -337}\special{pa 315 -326}\special{pa 327 -318}%
-\special{pa 339 -310}\special{pa 352 -304}\special{pa 364 -300}\special{pa 376 -297}%
-\special{pa 388 -295}\special{pa 400 -295}\special{pa 412 -297}\special{pa 424 -300}%
-\special{pa 436 -304}\special{pa 448 -310}\special{pa 460 -318}\special{pa 472 -326}%
-\special{pa 484 -337}\special{pa 496 -349}\special{pa 508 -362}\special{pa 520 -377}%
-\special{pa 532 -393}\special{pa 544 -411}\special{pa 556 -430}\special{pa 568 -450}%
-\special{pa 581 -473}\special{pa 593 -496}\special{pa 605 -521}\special{pa 617 -548}%
-\special{pa 629 -576}\special{pa 641 -605}\special{pa 653 -636}\special{pa 665 -669}%
-\special{pa 677 -703}\special{pa 689 -738}%
-\special{fp}%
-\special{pa 886 -837}\special{pa 898 -801}\special{pa 910 -767}\special{pa 922 -735}%
-\special{pa 934 -704}\special{pa 946 -674}\special{pa 958 -646}\special{pa 970 -620}%
-\special{pa 982 -595}\special{pa 994 -571}\special{pa 1006 -549}\special{pa 1018 -528}%
-\special{pa 1030 -509}\special{pa 1043 -491}\special{pa 1055 -475}\special{pa 1067 -460}%
-\special{pa 1079 -447}\special{pa 1091 -435}\special{pa 1103 -425}\special{pa 1115 -416}%
-\special{pa 1127 -409}\special{pa 1139 -403}\special{pa 1151 -398}\special{pa 1163 -395}%
-\special{pa 1175 -394}\special{pa 1187 -394}\special{pa 1199 -395}\special{pa 1211 -398}%
-\special{pa 1223 -403}\special{pa 1235 -409}\special{pa 1247 -416}\special{pa 1259 -425}%
-\special{pa 1271 -435}\special{pa 1284 -447}\special{pa 1296 -460}\special{pa 1308 -475}%
-\special{pa 1320 -491}\special{pa 1332 -509}\special{pa 1344 -528}\special{pa 1356 -549}%
-\special{pa 1368 -571}\special{pa 1380 -595}\special{pa 1392 -620}\special{pa 1404 -646}%
-\special{pa 1416 -674}\special{pa 1428 -704}\special{pa 1440 -735}\special{pa 1452 -767}%
-\special{pa 1464 -801}\special{pa 1476 -837}%
-\special{fp}%
-\special{pa 1673 -935}\special{pa 1685 -900}\special{pa 1697 -866}\special{pa 1709 -833}%
-\special{pa 1721 -802}\special{pa 1733 -773}\special{pa 1746 -745}\special{pa 1758 -718}%
-\special{pa 1770 -693}\special{pa 1782 -669}\special{pa 1794 -647}\special{pa 1806 -627}%
-\special{pa 1818 -607}\special{pa 1830 -590}\special{pa 1842 -573}\special{pa 1854 -559}%
-\special{pa 1866 -545}\special{pa 1878 -534}\special{pa 1890 -523}\special{pa 1902 -514}%
-\special{pa 1914 -507}\special{pa 1926 -501}\special{pa 1938 -497}\special{pa 1950 -494}%
-\special{pa 1962 -492}\special{pa 1975 -492}\special{pa 1987 -494}\special{pa 1999 -497}%
-\special{pa 2011 -501}\special{pa 2023 -507}\special{pa 2035 -514}\special{pa 2047 -523}%
-\special{pa 2059 -534}\special{pa 2071 -545}\special{pa 2083 -559}\special{pa 2095 -573}%
-\special{pa 2107 -590}\special{pa 2119 -607}\special{pa 2131 -627}\special{pa 2143 -647}%
-\special{pa 2155 -669}\special{pa 2167 -693}\special{pa 2179 -718}\special{pa 2191 -745}%
-\special{pa 2204 -773}\special{pa 2216 -802}\special{pa 2228 -833}\special{pa 2240 -866}%
-\special{pa 2252 -900}\special{pa 2264 -935}%
-\special{fp}%
-\special{pa 197 -394}\special{pa 591 -394}%
-\special{fp}%
-\special{pa 984 -394}\special{pa 1378 -394}%
-\special{fp}%
-\special{pa 1772 -394}\special{pa 2165 -394}%
-\special{fp}%
-\end{picture}}% \ No newline at end of file
diff --git a/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/tablesample2.tex b/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/tablesample2.tex
deleted file mode 100644
index 9dc9f623..00000000
--- a/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/tablesample2.tex
+++ /dev/null
@@ -1,258 +0,0 @@
-%%% test.tex 2014-11-26 12:54
-%%% test.sce 2014-11-26 12:54
-{\unitlength=1cm%
-\begin{picture}%
-( 8.50000, 5.00000)( 0.00000, 0.00000)%
-\special{pn 8}%
-%
-\special{pa 0 -1969}\special{pa 236 -1969}%
-\special{fp}%
-\special{pa 236 -1969}\special{pa 472 -1969}%
-\special{fp}%
-\special{pa 472 -1969}\special{pa 866 -1969}%
-\special{fp}%
-\special{pa 866 -1969}\special{pa 1102 -1969}%
-\special{fp}%
-\special{pa 1102 -1969}\special{pa 1496 -1969}%
-\special{fp}%
-\special{pa 1496 -1969}\special{pa 1732 -1969}%
-\special{fp}%
-\special{pa 1732 -1969}\special{pa 3346 -1969}%
-\special{fp}%
-\special{pa 0 -709}\special{pa 236 -709}%
-\special{fp}%
-\special{pa 236 -709}\special{pa 472 -709}%
-\special{fp}%
-\special{pa 472 -709}\special{pa 866 -709}%
-\special{fp}%
-\special{pa 866 -709}\special{pa 1102 -709}%
-\special{fp}%
-\special{pa 1102 -709}\special{pa 1496 -709}%
-\special{fp}%
-\special{pa 1496 -709}\special{pa 1732 -709}%
-\special{fp}%
-\special{pa 0 -472}\special{pa 236 -472}%
-\special{fp}%
-\special{pa 236 -472}\special{pa 472 -472}%
-\special{fp}%
-\special{pa 472 -472}\special{pa 866 -472}%
-\special{fp}%
-\special{pa 866 -472}\special{pa 1102 -472}%
-\special{fp}%
-\special{pa 1102 -472}\special{pa 1496 -472}%
-\special{fp}%
-\special{pa 1496 -472}\special{pa 1732 -472}%
-\special{fp}%
-\special{pa 0 -236}\special{pa 236 -236}%
-\special{fp}%
-\special{pa 236 -236}\special{pa 472 -236}%
-\special{fp}%
-\special{pa 472 -236}\special{pa 866 -236}%
-\special{fp}%
-\special{pa 866 -236}\special{pa 1102 -236}%
-\special{fp}%
-\special{pa 1102 -236}\special{pa 1496 -236}%
-\special{fp}%
-\special{pa 1496 -236}\special{pa 1732 -236}%
-\special{fp}%
-\special{pa 0 0}\special{pa 236 0}%
-\special{fp}%
-\special{pa 236 0}\special{pa 472 0}%
-\special{fp}%
-\special{pa 472 0}\special{pa 866 0}%
-\special{fp}%
-\special{pa 866 0}\special{pa 1102 0}%
-\special{fp}%
-\special{pa 1102 0}\special{pa 1496 0}%
-\special{fp}%
-\special{pa 1496 0}\special{pa 1732 0}%
-\special{fp}%
-\special{pa 1732 0}\special{pa 3346 0}%
-\special{fp}%
-\special{pa 0 -1969}\special{pa 0 -709}%
-\special{fp}%
-\special{pa 0 -709}\special{pa 0 -472}%
-\special{fp}%
-\special{pa 0 -472}\special{pa 0 -236}%
-\special{fp}%
-\special{pa 0 -236}\special{pa 0 0}%
-\special{fp}%
-\special{pa 236 -709}\special{pa 236 -472}%
-\special{fp}%
-\special{pa 236 -472}\special{pa 236 -236}%
-\special{fp}%
-\special{pa 236 -236}\special{pa 236 0}%
-\special{fp}%
-\special{pa 472 -709}\special{pa 472 -472}%
-\special{fp}%
-\special{pa 472 -472}\special{pa 472 -236}%
-\special{fp}%
-\special{pa 472 -236}\special{pa 472 0}%
-\special{fp}%
-\special{pa 866 -709}\special{pa 866 -472}%
-\special{fp}%
-\special{pa 866 -472}\special{pa 866 -236}%
-\special{fp}%
-\special{pa 866 -236}\special{pa 866 0}%
-\special{fp}%
-\special{pa 1102 -709}\special{pa 1102 -472}%
-\special{fp}%
-\special{pa 1102 -472}\special{pa 1102 -236}%
-\special{fp}%
-\special{pa 1102 -236}\special{pa 1102 0}%
-\special{fp}%
-\special{pa 1496 -709}\special{pa 1496 -472}%
-\special{fp}%
-\special{pa 1496 -472}\special{pa 1496 -236}%
-\special{fp}%
-\special{pa 1496 -236}\special{pa 1496 0}%
-\special{fp}%
-\special{pa 1732 -1969}\special{pa 1732 -709}%
-\special{fp}%
-\special{pa 1732 -709}\special{pa 1732 -472}%
-\special{fp}%
-\special{pa 1732 -472}\special{pa 1732 -236}%
-\special{fp}%
-\special{pa 1732 -236}\special{pa 1732 0}%
-\special{fp}%
-\special{pa 3346 -1969}\special{pa 3346 -709}%
-\special{fp}%
-\special{pa 3346 -709}\special{pa 3346 -472}%
-\special{fp}%
-\special{pa 3346 -472}\special{pa 3346 -236}%
-\special{fp}%
-\special{pa 3346 -236}\special{pa 3346 0}%
-\special{fp}%
-\settowidth{\Width}{$x$}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{$x$}\settodepth{\Depth}{$x$}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(0.3000,1.5000){\hspace*{\Width}\raisebox{\Height}{$x$}}%
-%
-%
-\settowidth{\Width}{$0$}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{$0$}\settodepth{\Depth}{$0$}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(0.9000,1.5000){\hspace*{\Width}\raisebox{\Height}{$0$}}%
-%
-%
-\settowidth{\Width}{$\cdots$}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{$\cdots$}\settodepth{\Depth}{$\cdots$}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(1.7000,1.5000){\hspace*{\Width}\raisebox{\Height}{$\cdots$}}%
-%
-%
-\settowidth{\Width}{$\tfrac{1}{4}$}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{$\tfrac{1}{4}$}\settodepth{\Depth}{$\tfrac{1}{4}$}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(2.5000,1.5000){\hspace*{\Width}\raisebox{\Height}{$\tfrac{1}{4}$}}%
-%
-%
-\settowidth{\Width}{$\cdots$}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{$\cdots$}\settodepth{\Depth}{$\cdots$}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(3.3000,1.5000){\hspace*{\Width}\raisebox{\Height}{$\cdots$}}%
-%
-%
-\settowidth{\Width}{$4$}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{$4$}\settodepth{\Depth}{$4$}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(4.1000,1.5000){\hspace*{\Width}\raisebox{\Height}{$4$}}%
-%
-%
-\settowidth{\Width}{$y'$}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{$y'$}\settodepth{\Depth}{$y'$}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(0.3000,0.9000){\hspace*{\Width}\raisebox{\Height}{$y'$}}%
-%
-%
-\settowidth{\Width}{$$}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{$$}\settodepth{\Depth}{$$}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(0.9000,0.9000){\hspace*{\Width}\raisebox{\Height}{$$}}%
-%
-%
-\settowidth{\Width}{$-$}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{$-$}\settodepth{\Depth}{$-$}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(1.7000,0.9000){\hspace*{\Width}\raisebox{\Height}{$-$}}%
-%
-%
-\settowidth{\Width}{$0$}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{$0$}\settodepth{\Depth}{$0$}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(2.5000,0.9000){\hspace*{\Width}\raisebox{\Height}{$0$}}%
-%
-%
-\settowidth{\Width}{$+$}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{$+$}\settodepth{\Depth}{$+$}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(3.3000,0.9000){\hspace*{\Width}\raisebox{\Height}{$+$}}%
-%
-%
-\settowidth{\Width}{$y$}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{$y$}\settodepth{\Depth}{$y$}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(0.3000,0.3000){\hspace*{\Width}\raisebox{\Height}{$y$}}%
-%
-%
-\settowidth{\Width}{$0$}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{$0$}\settodepth{\Depth}{$0$}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(0.9000,0.3000){\hspace*{\Width}\raisebox{\Height}{$0$}}%
-%
-%
-\settowidth{\Width}{$\searrow$}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{$\searrow$}\settodepth{\Depth}{$\searrow$}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(1.7000,0.3000){\hspace*{\Width}\raisebox{\Height}{$\searrow$}}%
-%
-%
-\settowidth{\Width}{$-\tfrac{1}{4}$}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{$-\tfrac{1}{4}$}\settodepth{\Depth}{$-\tfrac{1}{4}$}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(2.5000,0.3000){\hspace*{\Width}\raisebox{\Height}{$-\tfrac{1}{4}$}}%
-%
-%
-\settowidth{\Width}{$\nearrow$}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{$\nearrow$}\settodepth{\Depth}{$\nearrow$}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(3.3000,0.3000){\hspace*{\Width}\raisebox{\Height}{$\nearrow$}}%
-%
-%
-\settowidth{\Width}{$2$}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{$2$}\settodepth{\Depth}{$2$}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(4.1000,0.3000){\hspace*{\Width}\raisebox{\Height}{$2$}}%
-%
-%
-\settowidth{\Width}{{\small\begin{minipage}{44mm}$y=x-\sqrt{x}$\\$y'=\dfrac{2\sqrt{x}-1}{2\sqrt{x}}=0$より\vspace{1mm}\\\hspace*{2zw}$x=\dfrac{1}{4}$\vspace{1mm}\\増減表ã¯æ¬¡ã®ã‚ˆã†ã«ãªã‚‹ï¼Ž\end{minipage}} }\setlength{\Width}{0\Width}%
-\settoheight{\Height}{{\small\begin{minipage}{44mm}$y=x-\sqrt{x}$\\$y'=\dfrac{2\sqrt{x}-1}{2\sqrt{x}}=0$より\vspace{1mm}\\\hspace*{2zw}$x=\dfrac{1}{4}$\vspace{1mm}\\増減表ã¯æ¬¡ã®ã‚ˆã†ã«ãªã‚‹ï¼Ž\end{minipage}} }\settodepth{\Depth}{{\small\begin{minipage}{44mm}$y=x-\sqrt{x}$\\$y'=\dfrac{2\sqrt{x}-1}{2\sqrt{x}}=0$より\vspace{1mm}\\\hspace*{2zw}$x=\dfrac{1}{4}$\vspace{1mm}\\増減表ã¯æ¬¡ã®ã‚ˆã†ã«ãªã‚‹ï¼Ž\end{minipage}} }\setlength{\Height}{-\Height}%
-\put(0.1500,4.8500){\hspace*{\Width}\raisebox{\Height}{{\small\begin{minipage}{44mm}$y=x-\sqrt{x}$\\$y'=\dfrac{2\sqrt{x}-1}{2\sqrt{x}}=0$より\vspace{1mm}\\\hspace*{2zw}$x=\dfrac{1}{4}$\vspace{1mm}\\増減表ã¯æ¬¡ã®ã‚ˆã†ã«ãªã‚‹ï¼Ž\end{minipage}} }}%
-%
-%
-\special{pa 1929 -394}\special{pa 1953 -320}\special{pa 1977 -304}\special{pa 2001 -297}%
-\special{pa 2026 -295}\special{pa 2050 -296}\special{pa 2074 -300}\special{pa 2098 -305}%
-\special{pa 2122 -311}\special{pa 2146 -318}\special{pa 2170 -327}\special{pa 2194 -336}%
-\special{pa 2218 -345}\special{pa 2242 -356}\special{pa 2267 -367}\special{pa 2291 -378}%
-\special{pa 2315 -390}\special{pa 2339 -402}\special{pa 2363 -414}\special{pa 2387 -427}%
-\special{pa 2411 -440}\special{pa 2435 -453}\special{pa 2459 -467}\special{pa 2484 -481}%
-\special{pa 2508 -495}\special{pa 2532 -509}\special{pa 2556 -524}\special{pa 2580 -538}%
-\special{pa 2604 -553}\special{pa 2628 -568}\special{pa 2652 -583}\special{pa 2676 -599}%
-\special{pa 2700 -614}\special{pa 2725 -630}\special{pa 2749 -645}\special{pa 2773 -661}%
-\special{pa 2797 -677}\special{pa 2821 -693}\special{pa 2845 -709}\special{pa 2869 -725}%
-\special{pa 2893 -742}\special{pa 2917 -758}\special{pa 2942 -775}\special{pa 2966 -791}%
-\special{pa 2990 -808}\special{pa 3014 -825}\special{pa 3038 -842}\special{pa 3062 -859}%
-\special{pa 3086 -876}\special{pa 3110 -893}%
-\special{fp}%
-\special{pa 1929 -394}\special{pa 3110 -394}%
-\special{fp}%
-\special{pa 1929 -197}\special{pa 1929 -1575}%
-\special{fp}%
-\settowidth{\Width}{\small{$x$}}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{\small{$x$}}\settodepth{\Depth}{\small{$x$}}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(8.0000,1.0000){\hspace*{\Width}\raisebox{\Height}{\small{$x$}}}%
-%
-%
-\settowidth{\Width}{\small{$y$}}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{\small{$y$}}\settodepth{\Depth}{\small{$y$}}\setlength{\Height}{\Depth}%
-\put(4.9000,4.1000){\hspace*{\Width}\raisebox{\Height}{\small{$y$}}}%
-%
-%
-\settowidth{\Width}{\small O}\setlength{\Width}{-1\Width}%
-\settoheight{\Height}{\small O}\settodepth{\Depth}{\small O}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(4.8000,1.0000){\hspace*{\Width}\raisebox{\Height}{\small O}}%
-%
-%
-\settowidth{\Width}{$y=x-\sqrt{x}$}\setlength{\Width}{-1\Width}%
-\settoheight{\Height}{$y=x-\sqrt{x}$}\settodepth{\Depth}{$y=x-\sqrt{x}$}\setlength{\Height}{\Depth}%
-\put(7.9500,2.3200){\hspace*{\Width}\raisebox{\Height}{$y=x-\sqrt{x}$}}%
-%
-%
-\special{pa 236 -472}\special{pa 472 -236}%
-\special{fp}%
-\special{pa 236 -236}\special{pa 472 -472}%
-\special{fp}%
-\end{picture}}% \ No newline at end of file
diff --git a/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/tableseg.tex b/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/tableseg.tex
deleted file mode 100644
index 821763a6..00000000
--- a/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/tableseg.tex
+++ /dev/null
@@ -1,162 +0,0 @@
-%%% test.tex 2014-11-26 11:41
-%%% test.sce 2014-11-26 11:41
-{\unitlength=6mm%
-\begin{picture}%
-( 8.00000, 5.00000)( 0.00000, 0.00000)%
-\special{pn 8}%
-%
-\special{pa 0 -945}\special{pa 36 -945}\special{fp}\special{pa 73 -945}\special{pa 109 -945}\special{fp}%
-\special{pa 145 -945}\special{pa 182 -945}\special{fp}\special{pa 218 -945}\special{pa 254 -945}\special{fp}%
-\special{pa 291 -945}\special{pa 327 -945}\special{fp}\special{pa 363 -945}\special{pa 400 -945}\special{fp}%
-\special{pa 436 -945}\special{pa 472 -945}\special{fp}%
-%
-\special{pa 945 -236}\special{pa 983 -236}\special{fp}\special{pa 1020 -236}\special{pa 1058 -236}\special{fp}%
-\special{pa 1096 -236}\special{pa 1134 -236}\special{fp}\special{pa 1172 -236}\special{pa 1209 -236}\special{fp}%
-\special{pa 1247 -236}\special{pa 1285 -236}\special{fp}\special{pa 1323 -236}\special{pa 1361 -236}\special{fp}%
-\special{pa 1398 -236}\special{pa 1436 -236}\special{fp}\special{pa 1474 -236}\special{pa 1512 -236}\special{fp}%
-\special{pa 1550 -236}\special{pa 1587 -236}\special{fp}\special{pa 1625 -236}\special{pa 1663 -236}\special{fp}%
-\special{pa 1701 -236}\special{pa 1739 -236}\special{fp}\special{pa 1776 -236}\special{pa 1814 -236}\special{fp}%
-\special{pa 1852 -236}\special{pa 1890 -236}\special{fp}%
-%
-\settowidth{\Width}{R0}\setlength{\Width}{-1\Width}%
-\settoheight{\Height}{R0}\settodepth{\Depth}{R0}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(-0.1500,5.0000){\hspace*{\Width}\raisebox{\Height}{R0}}%
-%
-%
-\settowidth{\Width}{R1}\setlength{\Width}{-1\Width}%
-\settoheight{\Height}{R1}\settodepth{\Depth}{R1}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(-0.1500,4.0000){\hspace*{\Width}\raisebox{\Height}{R1}}%
-%
-%
-\settowidth{\Width}{R2}\setlength{\Width}{-1\Width}%
-\settoheight{\Height}{R2}\settodepth{\Depth}{R2}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(-0.1500,3.0000){\hspace*{\Width}\raisebox{\Height}{R2}}%
-%
-%
-\settowidth{\Width}{R3}\setlength{\Width}{-1\Width}%
-\settoheight{\Height}{R3}\settodepth{\Depth}{R3}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(-0.1500,2.0000){\hspace*{\Width}\raisebox{\Height}{R3}}%
-%
-%
-\settowidth{\Width}{R4}\setlength{\Width}{-1\Width}%
-\settoheight{\Height}{R4}\settodepth{\Depth}{R4}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(-0.1500,1.0000){\hspace*{\Width}\raisebox{\Height}{R4}}%
-%
-%
-\settowidth{\Width}{R5}\setlength{\Width}{-1\Width}%
-\settoheight{\Height}{R5}\settodepth{\Depth}{R5}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(-0.1500,0.0000){\hspace*{\Width}\raisebox{\Height}{R5}}%
-%
-%
-\settowidth{\Width}{C0}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{C0}\settodepth{\Depth}{C0}\setlength{\Height}{-\Height}%
-\put(0.0000,-0.1500){\hspace*{\Width}\raisebox{\Height}{C0}}%
-%
-%
-\settowidth{\Width}{C1}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{C1}\settodepth{\Depth}{C1}\setlength{\Height}{-\Height}%
-\put(2.0000,-0.1500){\hspace*{\Width}\raisebox{\Height}{C1}}%
-%
-%
-\settowidth{\Width}{C2}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{C2}\settodepth{\Depth}{C2}\setlength{\Height}{-\Height}%
-\put(4.0000,-0.1500){\hspace*{\Width}\raisebox{\Height}{C2}}%
-%
-%
-\settowidth{\Width}{C3}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{C3}\settodepth{\Depth}{C3}\setlength{\Height}{-\Height}%
-\put(6.0000,-0.1500){\hspace*{\Width}\raisebox{\Height}{C3}}%
-%
-%
-\settowidth{\Width}{C4}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{C4}\settodepth{\Depth}{C4}\setlength{\Height}{-\Height}%
-\put(8.0000,-0.1500){\hspace*{\Width}\raisebox{\Height}{C4}}%
-%
-%
-\special{pa 0 -1181}\special{pa 472 -1181}%
-\special{fp}%
-\special{pa 472 -1181}\special{pa 945 -1181}%
-\special{fp}%
-\special{pa 945 -1181}\special{pa 1417 -1181}%
-\special{fp}%
-\special{pa 1417 -1181}\special{pa 1890 -1181}%
-\special{fp}%
-\special{pa 472 -945}\special{pa 945 -945}%
-\special{fp}%
-\special{pa 945 -945}\special{pa 1417 -945}%
-\special{fp}%
-\special{pa 1417 -945}\special{pa 1890 -945}%
-\special{fp}%
-\special{pa 0 -709}\special{pa 472 -709}%
-\special{fp}%
-\special{pa 472 -709}\special{pa 945 -709}%
-\special{fp}%
-\special{pa 945 -709}\special{pa 1417 -709}%
-\special{fp}%
-\special{pa 1417 -709}\special{pa 1890 -709}%
-\special{fp}%
-\special{pa 0 -472}\special{pa 472 -472}%
-\special{fp}%
-\special{pa 472 -472}\special{pa 945 -472}%
-\special{fp}%
-\special{pa 945 -472}\special{pa 1417 -472}%
-\special{fp}%
-\special{pa 1417 -472}\special{pa 1890 -472}%
-\special{fp}%
-\special{pa 0 -236}\special{pa 472 -236}%
-\special{fp}%
-\special{pa 472 -236}\special{pa 945 -236}%
-\special{fp}%
-\special{pa 0 0}\special{pa 472 0}%
-\special{fp}%
-\special{pa 472 0}\special{pa 945 0}%
-\special{fp}%
-\special{pa 945 0}\special{pa 1417 0}%
-\special{fp}%
-\special{pa 1417 0}\special{pa 1890 0}%
-\special{fp}%
-\special{pa 0 -1181}\special{pa 0 -945}%
-\special{fp}%
-\special{pa 0 -945}\special{pa 0 -709}%
-\special{fp}%
-\special{pa 0 -709}\special{pa 0 -472}%
-\special{fp}%
-\special{pa 0 -472}\special{pa 0 -236}%
-\special{fp}%
-\special{pa 0 -236}\special{pa 0 0}%
-\special{fp}%
-\special{pa 472 -1181}\special{pa 472 -945}%
-\special{fp}%
-\special{pa 472 -945}\special{pa 472 -709}%
-\special{fp}%
-\special{pa 472 -709}\special{pa 472 -472}%
-\special{fp}%
-\special{pa 472 -472}\special{pa 472 -236}%
-\special{fp}%
-\special{pa 472 -236}\special{pa 472 0}%
-\special{fp}%
-\special{pa 945 -1181}\special{pa 945 -945}%
-\special{fp}%
-\special{pa 945 -945}\special{pa 945 -709}%
-\special{fp}%
-\special{pa 945 -709}\special{pa 945 -472}%
-\special{fp}%
-\special{pa 945 -472}\special{pa 945 -236}%
-\special{fp}%
-\special{pa 945 -236}\special{pa 945 0}%
-\special{fp}%
-\special{pa 1417 -945}\special{pa 1417 -709}%
-\special{fp}%
-\special{pa 1417 -709}\special{pa 1417 -472}%
-\special{fp}%
-\special{pa 1890 -1181}\special{pa 1890 -945}%
-\special{fp}%
-\special{pa 1890 -945}\special{pa 1890 -709}%
-\special{fp}%
-\special{pa 1890 -709}\special{pa 1890 -472}%
-\special{fp}%
-\special{pa 1890 -472}\special{pa 1890 -236}%
-\special{fp}%
-\special{pa 1890 -236}\special{pa 1890 0}%
-\special{fp}%
-\end{picture}}% \ No newline at end of file
diff --git a/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/taylor.tex b/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/taylor.tex
deleted file mode 100644
index 64e07477..00000000
--- a/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/taylor.tex
+++ /dev/null
@@ -1,60 +0,0 @@
-%%% taylor.tex 2016-4-29 16:11
-%%% taylor.sce 2016-4-29 16:5
-{\unitlength=6mm%
-\begin{picture}%
-( 10.00000, 6.00000)( -5.00000, -3.00000)%
-\special{pn 8}%
-%
-\special{pa -1181 -227}\special{pa -1143 -234}\special{fp}\special{pa -1104 -235}\special{pa -1087 -235}\special{pa -1066 -230}\special{fp}%
-\special{pa -1028 -220}\special{pa -992 -206}\special{pa -992 -206}\special{fp}\special{pa -958 -186}\special{pa -945 -179}\special{pa -926 -165}\special{fp}%
-\special{pa -894 -142}\special{pa -865 -117}\special{fp}\special{pa -836 -91}\special{pa -807 -64}\special{fp}%
-\special{pa -779 -37}\special{pa -756 -14}\special{pa -752 -9}\special{fp}\special{pa -724 18}\special{pa -709 33}\special{pa -696 45}\special{fp}%
-\special{pa -668 72}\special{pa -661 79}\special{pa -640 99}\special{fp}\special{pa -610 125}\special{pa -580 149}\special{fp}%
-\special{pa -549 172}\special{pa -520 191}\special{pa -516 193}\special{fp}\special{pa -481 210}\special{pa -472 215}\special{pa -445 224}\special{fp}%
-\special{pa -407 232}\special{pa -378 236}\special{pa -368 235}\special{fp}\special{pa -329 232}\special{pa -292 222}\special{fp}%
-\special{pa -256 208}\special{pa -236 199}\special{pa -221 189}\special{fp}\special{pa -188 169}\special{pa -157 145}\special{fp}%
-\special{pa -127 121}\special{pa -98 95}\special{fp}\special{pa -70 68}\special{pa -47 47}\special{pa -41 41}\special{fp}%
-\special{pa -14 14}\special{pa 0 0}\special{pa 14 -14}\special{fp}\special{pa 41 -41}\special{pa 47 -47}\special{pa 70 -68}\special{fp}%
-\special{pa 98 -95}\special{pa 127 -121}\special{fp}\special{pa 157 -145}\special{pa 188 -169}\special{fp}%
-\special{pa 221 -189}\special{pa 236 -199}\special{pa 256 -208}\special{fp}\special{pa 292 -222}\special{pa 329 -232}\special{fp}%
-\special{pa 368 -235}\special{pa 378 -236}\special{pa 407 -232}\special{fp}\special{pa 445 -224}\special{pa 472 -215}\special{pa 481 -210}\special{fp}%
-\special{pa 516 -193}\special{pa 520 -191}\special{pa 549 -172}\special{fp}\special{pa 580 -149}\special{pa 610 -125}\special{fp}%
-\special{pa 640 -99}\special{pa 661 -79}\special{pa 668 -72}\special{fp}\special{pa 696 -45}\special{pa 709 -33}\special{pa 724 -18}\special{fp}%
-\special{pa 752 9}\special{pa 756 14}\special{pa 779 37}\special{fp}\special{pa 807 64}\special{pa 836 91}\special{fp}%
-\special{pa 865 117}\special{pa 894 142}\special{fp}\special{pa 926 165}\special{pa 945 179}\special{pa 958 186}\special{fp}%
-\special{pa 992 206}\special{pa 992 206}\special{pa 1028 220}\special{fp}\special{pa 1066 230}\special{pa 1087 235}\special{pa 1104 235}\special{fp}%
-\special{pa 1143 234}\special{pa 1181 227}\special{fp}%
-%
-\special{pa -1080 -709}\special{pa -1039 -564}\special{pa -992 -433}\special{pa -945 -327}%
-\special{pa -898 -239}\special{pa -850 -163}\special{pa -803 -96}\special{pa -756 -35}%
-\special{pa -709 22}\special{pa -661 73}\special{pa -614 118}\special{pa -567 158}%
-\special{pa -520 190}\special{pa -472 214}\special{pa -425 230}\special{pa -378 236}%
-\special{pa -331 233}\special{pa -283 220}\special{pa -236 199}\special{pa -189 169}%
-\special{pa -142 133}\special{pa -94 92}\special{pa -47 47}\special{pa 0 0}\special{pa 47 -47}%
-\special{pa 94 -92}\special{pa 142 -133}\special{pa 189 -169}\special{pa 236 -199}%
-\special{pa 283 -220}\special{pa 331 -233}\special{pa 378 -236}\special{pa 425 -230}%
-\special{pa 472 -214}\special{pa 520 -190}\special{pa 567 -158}\special{pa 614 -118}%
-\special{pa 661 -73}\special{pa 709 -22}\special{pa 756 35}\special{pa 803 96}\special{pa 850 163}%
-\special{pa 898 239}\special{pa 945 327}\special{pa 992 433}\special{pa 1039 564}%
-\special{pa 1080 709}%
-\special{fp}%
-\special{pa -1181 0}\special{pa 1181 0}%
-\special{fp}%
-\special{pa 0 709}\special{pa 0 -709}%
-\special{fp}%
-\settowidth{\Width}{$x$}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{$x$}\settodepth{\Depth}{$x$}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(5.0500,0.0000){\hspace*{\Width}\raisebox{\Height}{$x$}}%
-%
-%
-\settowidth{\Width}{$y$}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{$y$}\settodepth{\Depth}{$y$}\setlength{\Height}{\Depth}%
-\put(0.0000,3.0500){\hspace*{\Width}\raisebox{\Height}{$y$}}%
-%
-%
-\settowidth{\Width}{O}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{O}\settodepth{\Depth}{O}\setlength{\Height}{-\Height}%
-\put(0.0500,-0.0500){\hspace*{\Width}\raisebox{\Height}{O}}%
-%
-%
-\end{picture}}% \ No newline at end of file
diff --git a/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/translatedata.tex b/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/translatedata.tex
deleted file mode 100644
index d5023587..00000000
--- a/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/translatedata.tex
+++ /dev/null
@@ -1,141 +0,0 @@
-%%% test.tex 2014-11-1 11:44
-%%% test.sce 2014-11-1 11:44
-{\unitlength=6mm%
-\begin{picture}%
-( 10.00000, 8.00000)( -2.00000, -2.00000)%
-\special{pn 8}%
-%
-\special{pn 16}%
-\special{pa 1654 0}\special{pa 1652 -30}\special{pa 1646 -59}\special{pa 1637 -87}%
-\special{pa 1624 -114}\special{pa 1608 -139}\special{pa 1590 -162}\special{pa 1568 -182}%
-\special{pa 1544 -199}\special{pa 1518 -214}\special{pa 1490 -225}\special{pa 1462 -232}%
-\special{pa 1432 -236}\special{pa 1402 -236}\special{pa 1373 -232}\special{pa 1344 -225}%
-\special{pa 1317 -214}\special{pa 1291 -199}\special{pa 1267 -182}\special{pa 1245 -162}%
-\special{pa 1226 -139}\special{pa 1210 -114}\special{pa 1198 -87}\special{pa 1189 -59}%
-\special{pa 1183 -30}\special{pa 1181 0}\special{pa 1183 30}\special{pa 1189 59}\special{pa 1198 87}%
-\special{pa 1210 114}\special{pa 1226 139}\special{pa 1245 162}\special{pa 1267 182}%
-\special{pa 1291 199}\special{pa 1317 214}\special{pa 1344 225}\special{pa 1373 232}%
-\special{pa 1402 236}\special{pa 1432 236}\special{pa 1462 232}\special{pa 1490 225}%
-\special{pa 1518 214}\special{pa 1544 199}\special{pa 1568 182}\special{pa 1590 162}%
-\special{pa 1608 139}\special{pa 1624 114}\special{pa 1637 87}\special{pa 1646 59}%
-\special{pa 1652 30}\special{pa 1654 0}%
-\special{fp}%
-\special{pn 8}%
-\special{pa 472 -945}\special{pa 471 -974}\special{pa 469 -984}\special{fp}\special{pa 459 -1021}\special{pa 456 -1032}\special{pa 444 -1057}\special{fp}%
-\special{pa 422 -1090}\special{pa 408 -1107}\special{pa 396 -1118}\special{fp}\special{pa 365 -1142}\special{pa 363 -1144}\special{pa 337 -1159}\special{pa 331 -1161}\special{fp}%
-\special{pa 294 -1173}\special{pa 280 -1177}\special{pa 256 -1180}\special{fp}\special{pa 217 -1180}\special{pa 192 -1177}\special{pa 178 -1173}\special{fp}%
-\special{pa 141 -1161}\special{pa 136 -1159}\special{pa 110 -1144}\special{pa 107 -1142}\special{fp}%
-\special{pa 77 -1118}\special{pa 64 -1107}\special{pa 50 -1090}\special{fp}\special{pa 29 -1057}\special{pa 17 -1032}\special{pa 13 -1021}\special{fp}%
-\special{pa 4 -984}\special{pa 2 -974}\special{pa 0 -945}\special{pa 0 -945}\special{fp}%
-\special{pa 4 -906}\special{pa 7 -886}\special{pa 13 -868}\special{fp}\special{pa 29 -832}\special{pa 29 -831}\special{pa 45 -806}\special{pa 50 -800}\special{fp}%
-\special{pa 77 -771}\special{pa 86 -763}\special{pa 107 -747}\special{fp}\special{pa 141 -729}\special{pa 163 -720}\special{pa 178 -716}\special{fp}%
-\special{pa 217 -710}\special{pa 221 -709}\special{pa 251 -709}\special{pa 256 -710}\special{fp}%
-\special{pa 294 -716}\special{pa 309 -720}\special{pa 331 -729}\special{fp}\special{pa 365 -747}\special{pa 387 -763}\special{pa 396 -771}\special{fp}%
-\special{pa 422 -800}\special{pa 427 -806}\special{pa 443 -831}\special{pa 444 -832}\special{fp}%
-\special{pa 459 -868}\special{pa 465 -886}\special{pa 469 -906}\special{fp}%
-%
-\special{pn 8}%
-\special{pa 0 0}\special{pa 945 236}%
-\special{fp}%
-\special{pn 8}%
-\special{pa 866 242}\special{pa 945 236}\special{pa 878 194}\special{pa 872 218}\special{pa 866 242}%
-\special{sh 1}\special{ip}%
-\special{pn 8}%
-\special{pa 866 242}\special{pa 945 236}\special{pa 878 194}\special{pa 872 218}\special{pa 866 242}%
-\special{fp}%
-\special{pn 8}%
-\special{pn 8}%
-\special{pa 0 0}\special{pa -236 -709}%
-\special{fp}%
-\special{pn 8}%
-\special{pa -189 -645}\special{pa -236 -709}\special{pa -236 -630}\special{pa -213 -638}%
-\special{pa -189 -645}\special{sh 1}\special{ip}%
-\special{pn 8}%
-\special{pa -189 -645}\special{pa -236 -709}\special{pa -236 -630}\special{pa -213 -638}%
-\special{pa -189 -645}%
-\special{fp}%
-\special{pn 8}%
-\settowidth{\Width}{A}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{A}\settodepth{\Depth}{A}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(2.0500,1.0000){\hspace*{\Width}\raisebox{\Height}{A}}%
-%
-%
-\settowidth{\Width}{B}\setlength{\Width}{-1\Width}%
-\settoheight{\Height}{B}\settodepth{\Depth}{B}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(0.9500,1.0000){\hspace*{\Width}\raisebox{\Height}{B}}%
-%
-%
-\settowidth{\Width}{C}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{C}\settodepth{\Depth}{C}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(4.0500,-1.0000){\hspace*{\Width}\raisebox{\Height}{C}}%
-%
-%
-\settowidth{\Width}{D}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{D}\settodepth{\Depth}{D}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(-0.9500,3.0000){\hspace*{\Width}\raisebox{\Height}{D}}%
-%
-%
-\settowidth{\Width}{(2,3)}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{(2,3)}\settodepth{\Depth}{(2,3)}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(2.0500,3.0000){\hspace*{\Width}\raisebox{\Height}{(2,3)}}%
-%
-%
-\special{pa 481 -245}\special{pa 474 -248}\special{pa 467 -247}\special{pa 462 -242}%
-\special{pa 461 -234}\special{pa 464 -228}\special{pa 471 -225}\special{pa 478 -226}%
-\special{pa 483 -231}\special{pa 484 -238}\special{pa 481 -245}\special{sh 1}\special{fp}%
-\special{pa 245 -245}\special{pa 238 -248}\special{pa 231 -247}\special{pa 226 -242}%
-\special{pa 225 -234}\special{pa 228 -228}\special{pa 234 -225}\special{pa 242 -226}%
-\special{pa 247 -231}\special{pa 248 -238}\special{pa 245 -245}\special{sh 1}\special{fp}%
-\special{pa -228 -717}\special{pa -234 -720}\special{pa -242 -719}\special{pa -247 -714}%
-\special{pa -248 -707}\special{pa -245 -700}\special{pa -238 -697}\special{pa -231 -698}%
-\special{pa -226 -703}\special{pa -225 -711}\special{pa -228 -717}\special{sh 1}\special{fp}%
-\special{pa 481 -717}\special{pa 474 -720}\special{pa 467 -719}\special{pa 462 -714}%
-\special{pa 461 -707}\special{pa 464 -700}\special{pa 471 -697}\special{pa 478 -698}%
-\special{pa 483 -703}\special{pa 484 -711}\special{pa 481 -717}\special{sh 1}\special{fp}%
-\special{pa 709 -236}\special{pa 707 -266}\special{pa 701 -295}\special{pa 692 -323}%
-\special{pa 679 -350}\special{pa 664 -375}\special{pa 645 -398}\special{pa 623 -418}%
-\special{pa 599 -436}\special{pa 573 -450}\special{pa 545 -461}\special{pa 517 -468}%
-\special{pa 487 -472}\special{pa 458 -472}\special{pa 428 -468}\special{pa 399 -461}%
-\special{pa 372 -450}\special{pa 346 -436}\special{pa 322 -418}\special{pa 300 -398}%
-\special{pa 281 -375}\special{pa 265 -350}\special{pa 253 -323}\special{pa 244 -295}%
-\special{pa 238 -266}\special{pa 236 -236}\special{pa 238 -207}\special{pa 244 -177}%
-\special{pa 253 -149}\special{pa 265 -122}\special{pa 281 -97}\special{pa 300 -75}%
-\special{pa 322 -54}\special{pa 346 -37}\special{pa 372 -22}\special{pa 399 -12}\special{pa 428 -4}%
-\special{pa 458 0}\special{pa 487 0}\special{pa 517 -4}\special{pa 545 -12}\special{pa 573 -22}%
-\special{pa 599 -37}\special{pa 623 -54}\special{pa 645 -75}\special{pa 664 -97}\special{pa 679 -122}%
-\special{pa 692 -149}\special{pa 701 -177}\special{pa 707 -207}\special{pa 709 -236}%
-\special{fp}%
-\special{pa 1181 -945}\special{pa 1179 -974}\special{pa 1174 -1004}\special{pa 1165 -1032}%
-\special{pa 1152 -1059}\special{pa 1136 -1084}\special{pa 1117 -1107}\special{pa 1095 -1127}%
-\special{pa 1071 -1144}\special{pa 1045 -1159}\special{pa 1018 -1170}\special{pa 989 -1177}%
-\special{pa 960 -1181}\special{pa 930 -1181}\special{pa 901 -1177}\special{pa 872 -1170}%
-\special{pa 844 -1159}\special{pa 818 -1144}\special{pa 794 -1127}\special{pa 773 -1107}%
-\special{pa 754 -1084}\special{pa 738 -1059}\special{pa 725 -1032}\special{pa 716 -1004}%
-\special{pa 711 -974}\special{pa 709 -945}\special{pa 711 -915}\special{pa 716 -886}%
-\special{pa 725 -858}\special{pa 738 -831}\special{pa 754 -806}\special{pa 773 -783}%
-\special{pa 794 -763}\special{pa 818 -745}\special{pa 844 -731}\special{pa 872 -720}%
-\special{pa 901 -713}\special{pa 930 -709}\special{pa 960 -709}\special{pa 989 -713}%
-\special{pa 1018 -720}\special{pa 1045 -731}\special{pa 1071 -745}\special{pa 1095 -763}%
-\special{pa 1117 -783}\special{pa 1136 -806}\special{pa 1152 -831}\special{pa 1165 -858}%
-\special{pa 1174 -886}\special{pa 1179 -915}\special{pa 1181 -945}%
-\special{fp}%
-\special{pa -472 0}\special{pa 1890 0}%
-\special{fp}%
-\special{pa 0 472}\special{pa 0 -1417}%
-\special{fp}%
-\settowidth{\Width}{$x$}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{$x$}\settodepth{\Depth}{$x$}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(8.0500,0.0000){\hspace*{\Width}\raisebox{\Height}{$x$}}%
-%
-%
-\settowidth{\Width}{$y$}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{$y$}\settodepth{\Depth}{$y$}\setlength{\Height}{\Depth}%
-\put(0.0000,6.0500){\hspace*{\Width}\raisebox{\Height}{$y$}}%
-%
-%
-\settowidth{\Width}{O}\setlength{\Width}{-1\Width}%
-\settoheight{\Height}{O}\settodepth{\Depth}{O}\setlength{\Height}{-\Height}%
-\put(-0.0500,-0.0500){\hspace*{\Width}\raisebox{\Height}{O}}%
-%
-%
-\end{picture}}% \ No newline at end of file
diff --git a/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/translatepoint.tex b/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/translatepoint.tex
deleted file mode 100644
index 3ab1e0e6..00000000
--- a/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/translatepoint.tex
+++ /dev/null
@@ -1,63 +0,0 @@
-%%% test.tex 2014-11-1 8:53
-%%% test.sce 2014-11-1 8:53
-{\unitlength=8mm%
-\begin{picture}%
-( 8.00000, 7.00000)( -1.00000, -1.00000)%
-\special{pn 8}%
-%
-\special{pn 8}%
-\special{pa 0 0}\special{pa 1260 -315}%
-\special{fp}%
-\special{pn 8}%
-\special{pa 1193 -273}\special{pa 1260 -315}\special{pa 1181 -320}\special{pa 1187 -297}%
-\special{pa 1193 -273}\special{sh 1}\special{ip}%
-\special{pn 8}%
-\special{pa 1193 -273}\special{pa 1260 -315}\special{pa 1181 -320}\special{pa 1187 -297}%
-\special{pa 1193 -273}%
-\special{fp}%
-\special{pn 8}%
-\settowidth{\Width}{EA}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{EA}\settodepth{\Depth}{EA}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(1.0000,2.0000){\hspace*{\Width}\raisebox{\Height}{EA}}%
-%
-%
-\settowidth{\Width}{B}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{B}\settodepth{\Depth}{B}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(4.0500,1.0000){\hspace*{\Width}\raisebox{\Height}{B}}%
-%
-%
-\settowidth{\Width}{EC}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{EC}\settodepth{\Depth}{EC}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(3.0000,5.0000){\hspace*{\Width}\raisebox{\Height}{EC}}%
-%
-%
-\settowidth{\Width}{ED}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{ED}\settodepth{\Depth}{ED}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(5.0000,3.0000){\hspace*{\Width}\raisebox{\Height}{ED}}%
-%
-%
-\settowidth{\Width}{E(2,3)}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{E(2,3)}\settodepth{\Depth}{E(2,3)}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(2.0000,3.0000){\hspace*{\Width}\raisebox{\Height}{E(2,3)}}%
-%
-%
-\special{pa -315 0}\special{pa 2205 0}%
-\special{fp}%
-\special{pa 0 315}\special{pa 0 -1890}%
-\special{fp}%
-\settowidth{\Width}{$x$}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{$x$}\settodepth{\Depth}{$x$}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(7.0500,0.0000){\hspace*{\Width}\raisebox{\Height}{$x$}}%
-%
-%
-\settowidth{\Width}{$y$}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{$y$}\settodepth{\Depth}{$y$}\setlength{\Height}{\Depth}%
-\put(0.0000,6.0500){\hspace*{\Width}\raisebox{\Height}{$y$}}%
-%
-%
-\settowidth{\Width}{O}\setlength{\Width}{-1\Width}%
-\settoheight{\Height}{O}\settodepth{\Depth}{O}\setlength{\Height}{-\Height}%
-\put(-0.0500,-0.0500){\hspace*{\Width}\raisebox{\Height}{O}}%
-%
-%
-\end{picture}}% \ No newline at end of file
diff --git a/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig3d/3dscreen.png b/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig3d/3dscreen.png
deleted file mode 100644
index 7bb7441d..00000000
--- a/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig3d/3dscreen.png
+++ /dev/null
Binary files differ
diff --git a/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig3d/3dstart.png b/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig3d/3dstart.png
deleted file mode 100644
index f4dc5106..00000000
--- a/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig3d/3dstart.png
+++ /dev/null
Binary files differ
diff --git a/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig3d/IntersectsgpL0.png b/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig3d/IntersectsgpL0.png
deleted file mode 100644
index 31fbe0bd..00000000
--- a/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig3d/IntersectsgpL0.png
+++ /dev/null
Binary files differ
diff --git a/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig3d/IntersectsgpL1.tex b/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig3d/IntersectsgpL1.tex
deleted file mode 100644
index dc1340de..00000000
--- a/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig3d/IntersectsgpL1.tex
+++ /dev/null
@@ -1,68 +0,0 @@
-%%% /Users/Hannya/ketcindy/ketwork/template.tex 2016-8-9 13:39
-%%% template.sce 2016-8-9 13:39
-{\unitlength=8mm%
-\begin{picture}%
-( 7.00000, 6.00000)( -3.00000, -2.00000)%
-\special{pn 8}%
-%
-\special{pn 8}%
-\special{pa 4 -2}\special{pa -4 2}\special{fp}\special{pa -32 14}\special{pa -39 17}\special{fp}%
-\special{pa -68 29}\special{pa -75 32}\special{fp}\special{pa -103 44}\special{pa -111 47}\special{fp}%
-\special{pa -139 59}\special{pa -147 62}\special{fp}\special{pa -175 74}\special{pa -182 77}\special{fp}%
-\special{pa -211 89}\special{pa -218 92}\special{fp}\special{pa -246 104}\special{pa -254 107}\special{fp}%
-\special{pa -282 119}\special{pa -290 122}\special{fp}\special{pa -318 134}\special{pa -325 137}\special{fp}%
-\special{pa -354 149}\special{pa -361 153}\special{fp}\special{pa -389 164}\special{pa -397 168}\special{fp}%
-\special{pa -425 180}\special{pa -432 183}\special{fp}\special{pa -461 195}\special{pa -468 198}\special{fp}%
-\special{pa -496 210}\special{pa -504 213}\special{fp}\special{pa -532 225}\special{pa -540 228}\special{fp}%
-\special{pa -568 240}\special{pa -575 243}\special{fp}\special{pa -604 255}\special{pa -611 258}\special{fp}%
-\special{pn 8}%
-\special{pa -607 257}\special{pa 116 472}%
-\special{fp}%
-\special{pa 116 472}\special{pa 724 215}%
-\special{fp}%
-\special{pn 8}%
-\special{pa -4 -1}\special{pa 4 1}\special{fp}\special{pa 34 10}\special{pa 42 12}\special{fp}%
-\special{pa 72 22}\special{pa 80 24}\special{fp}\special{pa 110 33}\special{pa 118 35}\special{fp}%
-\special{pa 149 44}\special{pa 156 46}\special{fp}\special{pa 187 56}\special{pa 194 58}\special{fp}%
-\special{pa 225 67}\special{pa 232 69}\special{fp}\special{pa 263 78}\special{pa 271 80}\special{fp}%
-\special{pa 301 90}\special{pa 309 92}\special{fp}\special{pa 339 101}\special{pa 347 103}\special{fp}%
-\special{pa 377 112}\special{pa 385 114}\special{fp}\special{pa 415 124}\special{pa 423 126}\special{fp}%
-\special{pa 453 135}\special{pa 461 137}\special{fp}\special{pa 491 146}\special{pa 499 148}\special{fp}%
-\special{pa 530 158}\special{pa 537 160}\special{fp}\special{pa 568 169}\special{pa 575 171}\special{fp}%
-\special{pa 606 180}\special{pa 613 182}\special{fp}\special{pa 644 192}\special{pa 651 194}\special{fp}%
-\special{pa 682 203}\special{pa 690 205}\special{fp}\special{pa 720 214}\special{pa 728 216}\special{fp}%
-\special{pn 8}%
-\special{pa 116 472}\special{pa 116 160}%
-\special{fp}%
-\special{pa 116 160}\special{pa -607 -315}%
-\special{fp}%
-\special{pa -607 257}\special{pa -607 -315}%
-\special{fp}%
-\special{pa 724 215}\special{pa 724 -539}%
-\special{fp}%
-\special{pa 116 160}\special{pa 724 -539}%
-\special{fp}%
-\special{pa 724 -539}\special{pa 367 -774}%
-\special{fp}%
-\special{pa 367 -774}\special{pa 0 -883}%
-\special{fp}%
-\special{pn 8}%
-\special{pa 0 4}\special{pa 0 -4}\special{fp}\special{pa 0 -36}\special{pa 0 -44}\special{fp}%
-\special{pa 0 -76}\special{pa 0 -84}\special{fp}\special{pa 0 -116}\special{pa 0 -124}\special{fp}%
-\special{pa 0 -157}\special{pa 0 -165}\special{fp}\special{pa 0 -197}\special{pa 0 -205}\special{fp}%
-\special{pa 0 -237}\special{pa 0 -245}\special{fp}\special{pa 0 -277}\special{pa 0 -285}\special{fp}%
-\special{pa 0 -317}\special{pa 0 -325}\special{fp}\special{pa 0 -357}\special{pa 0 -365}\special{fp}%
-\special{pa 0 -398}\special{pa 0 -406}\special{fp}\special{pa 0 -438}\special{pa 0 -446}\special{fp}%
-\special{pa 0 -478}\special{pa 0 -486}\special{fp}\special{pa 0 -518}\special{pa 0 -526}\special{fp}%
-\special{pa 0 -558}\special{pa 0 -566}\special{fp}\special{pa 0 -598}\special{pa 0 -606}\special{fp}%
-\special{pa 0 -639}\special{pa 0 -647}\special{fp}\special{pa 0 -679}\special{pa 0 -687}\special{fp}%
-\special{pa 0 -719}\special{pa 0 -727}\special{fp}\special{pa 0 -759}\special{pa 0 -767}\special{fp}%
-\special{pa 0 -799}\special{pa 0 -807}\special{fp}\special{pa 0 -839}\special{pa 0 -847}\special{fp}%
-\special{pa 0 -879}\special{pa 0 -887}\special{fp}\special{pn 8}%
-\special{pa 0 -883}\special{pa -180 -807}%
-\special{fp}%
-\special{pa -607 -315}\special{pa -180 -807}%
-\special{fp}%
-\special{pa 367 -774}\special{pa -180 -807}%
-\special{fp}%
-\end{picture}}% \ No newline at end of file
diff --git a/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig3d/IntersectsgpL2.tex b/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig3d/IntersectsgpL2.tex
deleted file mode 100644
index 51a3442a..00000000
--- a/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig3d/IntersectsgpL2.tex
+++ /dev/null
@@ -1,118 +0,0 @@
-%%% /Users/Hannya/ketcindy/ketwork/template.tex 2016-8-9 13:37
-%%% template.sce 2016-8-9 13:37
-{\unitlength=8mm%
-\begin{picture}%
-( 7.00000, 6.00000)( -3.00000, -2.00000)%
-\special{pn 8}%
-%
-\special{pn 8}%
-\special{pa 4 -2}\special{pa -4 2}\special{fp}\special{pa -32 14}\special{pa -39 17}\special{fp}%
-\special{pa -68 29}\special{pa -75 32}\special{fp}\special{pa -103 44}\special{pa -111 47}\special{fp}%
-\special{pa -139 59}\special{pa -147 62}\special{fp}\special{pa -175 74}\special{pa -182 77}\special{fp}%
-\special{pa -211 89}\special{pa -218 92}\special{fp}\special{pa -246 104}\special{pa -254 107}\special{fp}%
-\special{pa -282 119}\special{pa -290 122}\special{fp}\special{pa -318 134}\special{pa -325 137}\special{fp}%
-\special{pa -354 149}\special{pa -361 153}\special{fp}\special{pa -389 164}\special{pa -397 168}\special{fp}%
-\special{pa -425 180}\special{pa -432 183}\special{fp}\special{pa -461 195}\special{pa -468 198}\special{fp}%
-\special{pa -496 210}\special{pa -504 213}\special{fp}\special{pa -532 225}\special{pa -540 228}\special{fp}%
-\special{pa -568 240}\special{pa -575 243}\special{fp}\special{pa -604 255}\special{pa -611 258}\special{fp}%
-\special{pn 8}%
-\special{pa -607 257}\special{pa 116 472}%
-\special{fp}%
-\special{pa 116 472}\special{pa 724 215}%
-\special{fp}%
-\special{pn 8}%
-\special{pa -4 -1}\special{pa 4 1}\special{fp}\special{pa 34 10}\special{pa 42 12}\special{fp}%
-\special{pa 72 22}\special{pa 80 24}\special{fp}\special{pa 110 33}\special{pa 118 35}\special{fp}%
-\special{pa 149 44}\special{pa 156 46}\special{fp}\special{pa 187 56}\special{pa 194 58}\special{fp}%
-\special{pa 225 67}\special{pa 232 69}\special{fp}\special{pa 263 78}\special{pa 271 80}\special{fp}%
-\special{pa 301 90}\special{pa 309 92}\special{fp}\special{pa 339 101}\special{pa 347 103}\special{fp}%
-\special{pa 377 112}\special{pa 385 114}\special{fp}\special{pa 415 124}\special{pa 423 126}\special{fp}%
-\special{pa 453 135}\special{pa 461 137}\special{fp}\special{pa 491 146}\special{pa 499 148}\special{fp}%
-\special{pa 530 158}\special{pa 537 160}\special{fp}\special{pa 568 169}\special{pa 575 171}\special{fp}%
-\special{pa 606 180}\special{pa 613 182}\special{fp}\special{pa 644 192}\special{pa 651 194}\special{fp}%
-\special{pa 682 203}\special{pa 690 205}\special{fp}\special{pa 720 214}\special{pa 728 216}\special{fp}%
-\special{pn 8}%
-\special{pa 116 472}\special{pa 116 160}%
-\special{fp}%
-\special{pa 116 160}\special{pa -607 -315}%
-\special{fp}%
-\special{pa -607 257}\special{pa -607 -315}%
-\special{fp}%
-\special{pa 724 215}\special{pa 724 -539}%
-\special{fp}%
-\special{pa 116 160}\special{pa 724 -539}%
-\special{fp}%
-\special{pa 724 -539}\special{pa 367 -774}%
-\special{fp}%
-\special{pa 367 -774}\special{pa 0 -883}%
-\special{fp}%
-\special{pn 8}%
-\special{pa 0 4}\special{pa 0 -4}\special{fp}\special{pa 0 -36}\special{pa 0 -44}\special{fp}%
-\special{pa 0 -76}\special{pa 0 -84}\special{fp}\special{pa 0 -116}\special{pa 0 -124}\special{fp}%
-\special{pa 0 -157}\special{pa 0 -165}\special{fp}\special{pa 0 -197}\special{pa 0 -205}\special{fp}%
-\special{pa 0 -237}\special{pa 0 -245}\special{fp}\special{pa 0 -277}\special{pa 0 -285}\special{fp}%
-\special{pa 0 -317}\special{pa 0 -325}\special{fp}\special{pa 0 -357}\special{pa 0 -365}\special{fp}%
-\special{pa 0 -398}\special{pa 0 -406}\special{fp}\special{pa 0 -438}\special{pa 0 -446}\special{fp}%
-\special{pa 0 -478}\special{pa 0 -486}\special{fp}\special{pa 0 -518}\special{pa 0 -526}\special{fp}%
-\special{pa 0 -558}\special{pa 0 -566}\special{fp}\special{pa 0 -598}\special{pa 0 -606}\special{fp}%
-\special{pa 0 -639}\special{pa 0 -647}\special{fp}\special{pa 0 -679}\special{pa 0 -687}\special{fp}%
-\special{pa 0 -719}\special{pa 0 -727}\special{fp}\special{pa 0 -759}\special{pa 0 -767}\special{fp}%
-\special{pa 0 -799}\special{pa 0 -807}\special{fp}\special{pa 0 -839}\special{pa 0 -847}\special{fp}%
-\special{pa 0 -879}\special{pa 0 -887}\special{fp}\special{pn 8}%
-\special{pa 0 -883}\special{pa -180 -807}%
-\special{fp}%
-\special{pa -607 -315}\special{pa -180 -807}%
-\special{fp}%
-\special{pa 367 -774}\special{pa -180 -807}%
-\special{fp}%
-\special{pn 8}%
-\special{pa -607 -311}\special{pa -607 -319}\special{fp}\special{pa -607 -349}\special{pa -607 -357}\special{fp}%
-\special{pa -607 -388}\special{pa -607 -396}\special{fp}\special{pa -607 -427}\special{pa -607 -435}\special{fp}%
-\special{pa -607 -466}\special{pa -607 -474}\special{fp}\special{pa -607 -505}\special{pa -607 -513}\special{fp}%
-\special{pa -607 -543}\special{pa -607 -551}\special{fp}\special{pa -607 -582}\special{pa -607 -590}\special{fp}%
-\special{pa -609 -622}\special{pa -605 -628}\special{fp}\special{pa -577 -640}\special{pa -570 -643}\special{fp}%
-\special{pa -541 -655}\special{pa -534 -658}\special{fp}\special{pa -505 -670}\special{pa -498 -673}\special{fp}%
-\special{pa -470 -685}\special{pa -462 -688}\special{fp}\special{pa -434 -700}\special{pa -427 -703}\special{fp}%
-\special{pa -398 -715}\special{pa -391 -718}\special{fp}\special{pa -363 -730}\special{pa -355 -733}\special{fp}%
-\special{pa -327 -745}\special{pa -319 -749}\special{fp}\special{pa -291 -761}\special{pa -284 -764}\special{fp}%
-\special{pa -255 -776}\special{pa -248 -779}\special{fp}\special{pa -220 -791}\special{pa -212 -794}\special{fp}%
-\special{pa -184 -806}\special{pa -176 -809}\special{fp}\special{pn 8}%
-\special{pn 8}%
-\special{pa -611 -628}\special{pa -604 -626}\special{fp}\special{pa -574 -617}\special{pa -566 -615}\special{fp}%
-\special{pa -536 -606}\special{pa -529 -603}\special{fp}\special{pa -499 -595}\special{pa -491 -592}\special{fp}%
-\special{pa -462 -584}\special{pa -454 -581}\special{fp}\special{pa -424 -572}\special{pa -417 -570}\special{fp}%
-\special{pa -387 -561}\special{pa -379 -559}\special{fp}\special{pa -349 -550}\special{pa -342 -548}\special{fp}%
-\special{pa -312 -539}\special{pa -304 -537}\special{fp}\special{pa -275 -528}\special{pa -267 -526}\special{fp}%
-\special{pa -237 -517}\special{pa -230 -514}\special{fp}\special{pa -200 -506}\special{pa -192 -503}\special{fp}%
-\special{pa -162 -495}\special{pa -155 -492}\special{fp}\special{pa -125 -483}\special{pa -117 -481}\special{fp}%
-\special{pa -88 -472}\special{pa -80 -470}\special{fp}\special{pa -50 -461}\special{pa -43 -459}\special{fp}%
-\special{pa -13 -450}\special{pa -5 -448}\special{fp}\special{pa 25 -439}\special{pa 32 -437}\special{fp}%
-\special{pa 62 -428}\special{pa 70 -425}\special{fp}\special{pa 100 -418}\special{pa 106 -413}\special{fp}%
-\special{pa 116 -390}\special{pa 117 -382}\special{fp}\special{pa 116 -351}\special{pa 116 -343}\special{fp}%
-\special{pa 116 -312}\special{pa 116 -304}\special{fp}\special{pa 116 -273}\special{pa 116 -265}\special{fp}%
-\special{pa 116 -234}\special{pa 116 -226}\special{fp}\special{pa 116 -195}\special{pa 116 -187}\special{fp}%
-\special{pa 116 -156}\special{pa 116 -148}\special{fp}\special{pa 116 -117}\special{pa 116 -109}\special{fp}%
-\special{pa 116 -78}\special{pa 116 -70}\special{fp}\special{pa 116 -39}\special{pa 116 -31}\special{fp}%
-\special{pa 116 0}\special{pa 116 8}\special{fp}\special{pa 116 39}\special{pa 116 47}\special{fp}%
-\special{pa 116 78}\special{pa 116 86}\special{fp}\special{pa 116 117}\special{pa 116 125}\special{fp}%
-\special{pa 116 156}\special{pa 116 164}\special{fp}\special{pn 8}%
-\special{pn 8}%
-\special{pa 113 -410}\special{pa 120 -413}\special{fp}\special{pa 149 -425}\special{pa 156 -428}\special{fp}%
-\special{pa 185 -441}\special{pa 193 -444}\special{fp}\special{pa 222 -456}\special{pa 229 -459}\special{fp}%
-\special{pa 258 -471}\special{pa 265 -474}\special{fp}\special{pa 294 -487}\special{pa 302 -490}\special{fp}%
-\special{pa 331 -502}\special{pa 338 -505}\special{fp}\special{pa 367 -517}\special{pa 374 -521}\special{fp}%
-\special{pa 403 -533}\special{pa 411 -536}\special{fp}\special{pa 440 -548}\special{pa 447 -551}\special{fp}%
-\special{pa 476 -564}\special{pa 484 -567}\special{fp}\special{pa 512 -579}\special{pa 520 -582}\special{fp}%
-\special{pa 549 -594}\special{pa 556 -597}\special{fp}\special{pa 585 -610}\special{pa 593 -613}\special{fp}%
-\special{pa 621 -625}\special{pa 629 -628}\special{fp}\special{pa 658 -640}\special{pa 665 -643}\special{fp}%
-\special{pa 694 -656}\special{pa 702 -658}\special{fp}\special{pa 721 -660}\special{pa 727 -654}\special{fp}%
-\special{pa 724 -621}\special{pa 724 -613}\special{fp}\special{pa 724 -582}\special{pa 724 -574}\special{fp}%
-\special{pa 724 -543}\special{pa 724 -535}\special{fp}\special{pn 8}%
-\special{pn 8}%
-\special{pa 728 -667}\special{pa 720 -669}\special{fp}\special{pa 688 -679}\special{pa 680 -681}\special{fp}%
-\special{pa 648 -691}\special{pa 641 -693}\special{fp}\special{pa 609 -702}\special{pa 601 -705}\special{fp}%
-\special{pa 569 -714}\special{pa 561 -717}\special{fp}\special{pa 529 -726}\special{pa 522 -728}\special{fp}%
-\special{pa 490 -738}\special{pa 482 -740}\special{fp}\special{pa 450 -750}\special{pa 442 -752}\special{fp}%
-\special{pa 410 -761}\special{pa 403 -764}\special{fp}\special{pa 371 -773}\special{pa 363 -776}\special{fp}%
-\special{pn 8}%
-\end{picture}}% \ No newline at end of file
diff --git a/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig3d/bezier3d1.tex b/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig3d/bezier3d1.tex
deleted file mode 100644
index 477861e1..00000000
--- a/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig3d/bezier3d1.tex
+++ /dev/null
@@ -1,123 +0,0 @@
-%%% /Users/Hannya/ketcindy/ketwork/template.tex 2016-8-14 11:12
-%%% template.sce 2016-8-14 11:12
-{\unitlength=8mm%
-\begin{picture}%
-( 9.74000, 5.94000)( -4.74000, -1.94000)%
-\special{pn 8}%
-%
-\settowidth{\Width}{$x$}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{$x$}\settodepth{\Depth}{$x$}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(-3.2520,-1.0065){\hspace*{\Width}\raisebox{\Height}{$x$}}%
-%
-%
-\settowidth{\Width}{$y$}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{$y$}\settodepth{\Depth}{$y$}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(3.3782,-1.4998){\hspace*{\Width}\raisebox{\Height}{$y$}}%
-%
-%
-\settowidth{\Width}{$z$}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{$z$}\settodepth{\Depth}{$z$}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(0.0000,3.9050){\hspace*{\Width}\raisebox{\Height}{$z$}}%
-%
-%
-\special{pa 1209 -374}\special{pa -967 299}%
-\special{fp}%
-\special{pa -1009 -448}\special{pa 1009 448}%
-\special{fp}%
-\special{pa 0 611}\special{pa 0 -1170}%
-\special{fp}%
-\special{pa -903 254}\special{pa -967 299}\special{pa -888 300}\special{pa -896 277}%
-\special{pa -903 254}\special{sh 1}\special{ip}%
-\special{pn 1}%
-\special{pa -903 254}\special{pa -967 299}\special{pa -888 300}\special{pa -896 277}%
-\special{pa -903 254}\special{pa -967 299}%
-\special{fp}%
-\special{pn 8}%
-\special{pa 931 440}\special{pa 1009 448}\special{pa 951 395}\special{pa 941 418}%
-\special{pa 931 440}\special{sh 1}\special{ip}%
-\special{pn 1}%
-\special{pa 931 440}\special{pa 1009 448}\special{pa 951 395}\special{pa 941 418}%
-\special{pa 931 440}\special{pa 1009 448}%
-\special{fp}%
-\special{pn 8}%
-\special{pa 24 -1095}\special{pa 0 -1170}\special{pa -24 -1095}\special{pa 0 -1095}%
-\special{pa 24 -1095}\special{sh 1}\special{ip}%
-\special{pn 1}%
-\special{pa 24 -1095}\special{pa 0 -1170}\special{pa -24 -1095}\special{pa 0 -1095}%
-\special{pa 24 -1095}\special{pa 0 -1170}%
-\special{fp}%
-\special{pn 8}%
-\settowidth{\Width}{O}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{O}\settodepth{\Depth}{O}\setlength{\Height}{\Depth}%
-\put(0.1500,0.1500){\hspace*{\Width}\raisebox{\Height}{O}}%
-%
-%
-\special{pa -484 150}\special{pa -437 81}\special{pa -387 31}\special{pa -335 -1}%
-\special{pa -282 -19}\special{pa -227 -23}\special{pa -171 -16}\special{pa -115 0}%
-\special{pa -60 23}\special{pa -5 52}\special{pa 49 84}\special{pa 101 116}\special{pa 151 148}%
-\special{pa 199 177}\special{pa 243 201}\special{pa 284 219}\special{pa 321 227}\special{pa 354 225}%
-\special{pa 382 209}\special{pa 404 179}\special{pa 423 90}\special{pa 433 13}\special{pa 435 -52}%
-\special{pa 429 -108}\special{pa 417 -154}\special{pa 399 -193}\special{pa 376 -226}%
-\special{pa 349 -253}\special{pa 319 -277}\special{pa 286 -298}\special{pa 251 -319}%
-\special{pa 215 -339}\special{pa 178 -360}\special{pa 143 -384}\special{pa 108 -411}%
-\special{pa 76 -444}\special{pa 47 -483}\special{pa 21 -530}\special{pa 0 -585}%
-\special{fp}%
-\special{pn 1}%
-\special{pa -475 141}\special{pa -482 138}\special{pa -489 139}\special{pa -494 144}%
-\special{pa -495 152}\special{pa -492 158}\special{pa -485 161}\special{pa -478 160}%
-\special{pa -473 155}\special{pa -472 148}\special{pa -475 141}\special{sh 1}\special{fp}%
-\special{pa 412 171}\special{pa 406 168}\special{pa 398 169}\special{pa 393 174}\special{pa 392 181}%
-\special{pa 395 188}\special{pa 402 191}\special{pa 409 190}\special{pa 414 185}\special{pa 415 177}%
-\special{pa 412 171}\special{sh 1}\special{fp}%
-\special{pa 8 -593}\special{pa 2 -597}\special{pa -5 -596}\special{pa -11 -590}\special{pa -12 -583}%
-\special{pa -8 -577}\special{pa -2 -573}\special{pa 5 -575}\special{pa 11 -580}\special{pa 12 -587}%
-\special{pa 8 -593}\special{sh 1}\special{fp}%
-\special{pa -187 -360}\special{pa -194 -363}\special{pa -201 -362}\special{pa -206 -357}%
-\special{pa -207 -350}\special{pa -204 -343}\special{pa -197 -340}\special{pa -190 -341}%
-\special{pa -185 -346}\special{pa -184 -354}\special{pa -187 -360}\special{sh 1}\special{fp}%
-\special{pa 290 414}\special{pa 283 410}\special{pa 276 411}\special{pa 271 417}\special{pa 270 424}%
-\special{pa 273 430}\special{pa 279 434}\special{pa 287 433}\special{pa 292 427}\special{pa 293 420}%
-\special{pa 290 414}\special{sh 1}\special{fp}%
-\special{pa 563 -438}\special{pa 557 -441}\special{pa 549 -440}\special{pa 544 -435}%
-\special{pa 543 -428}\special{pa 546 -421}\special{pa 553 -418}\special{pa 560 -419}%
-\special{pa 565 -424}\special{pa 567 -432}\special{pa 563 -438}\special{sh 1}\special{fp}%
-\special{pa 126 -212}\special{pa 119 -215}\special{pa 112 -214}\special{pa 107 -209}%
-\special{pa 106 -201}\special{pa 109 -195}\special{pa 115 -192}\special{pa 123 -193}%
-\special{pa 128 -198}\special{pa 129 -205}\special{pa 126 -212}\special{sh 1}\special{fp}%
-\special{pn 8}%
-\settowidth{\Width}{A}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{A}\settodepth{\Depth}{A}\setlength{\Height}{-\Height}%
-\put(-1.5352,-0.5252){\hspace*{\Width}\raisebox{\Height}{A}}%
-%
-%
-\settowidth{\Width}{B}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{B}\settodepth{\Depth}{B}\setlength{\Height}{\Depth}%
-\put(1.3318,-0.5191){\hspace*{\Width}\raisebox{\Height}{B}}%
-%
-%
-\settowidth{\Width}{C}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{C}\settodepth{\Depth}{C}\setlength{\Height}{\Depth}%
-\put(0.0500,1.9075){\hspace*{\Width}\raisebox{\Height}{C}}%
-%
-%
-\settowidth{\Width}{D}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{D}\settodepth{\Depth}{D}\setlength{\Height}{\Depth}%
-\put(-0.5703,1.1665){\hspace*{\Width}\raisebox{\Height}{D}}%
-%
-%
-\settowidth{\Width}{E}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{E}\settodepth{\Depth}{E}\setlength{\Height}{-\Height}%
-\put(0.9432,-1.3898){\hspace*{\Width}\raisebox{\Height}{E}}%
-%
-%
-\settowidth{\Width}{F}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{F}\settodepth{\Depth}{F}\setlength{\Height}{\Depth}%
-\put(1.8116,1.4146){\hspace*{\Width}\raisebox{\Height}{F}}%
-%
-%
-\settowidth{\Width}{G}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{G}\settodepth{\Depth}{G}\setlength{\Height}{\Depth}%
-\put(0.4222,0.6951){\hspace*{\Width}\raisebox{\Height}{G}}%
-%
-%
-\end{picture}}% \ No newline at end of file
diff --git a/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig3d/concatobj.tex b/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig3d/concatobj.tex
deleted file mode 100644
index ce715411..00000000
--- a/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig3d/concatobj.tex
+++ /dev/null
@@ -1,42 +0,0 @@
-%%% /Users/Hannya/ketcindy/ketwork/template.tex 2016-8-24 20:24
-%%% template.sce 2016-8-24 20:24
-{\unitlength=8mm%
-\begin{picture}%
-( 5.00000, 5.00000)( -3.00000, -1.00000)%
-\special{pn 8}%
-%
-\special{pa 483 -179}\special{pa 185 -147}%
-\special{fp}%
-\special{pa 137 -141}\special{pa -712 -48}%
-\special{fp}%
-\special{pa -712 -48}\special{pa 229 228}%
-\special{fp}%
-\special{pa 483 -179}\special{pa 229 228}%
-\special{fp}%
-\special{pa -712 -48}\special{pa 0 -1030}%
-\special{fp}%
-\special{pa 483 -179}\special{pa 0 -1030}%
-\special{fp}%
-\special{pa 229 228}\special{pa 0 -1030}%
-\special{fp}%
-\settowidth{\Width}{A}\setlength{\Width}{-1\Width}%
-\settoheight{\Height}{A}\settodepth{\Depth}{A}\setlength{\Height}{\Depth}%
-\put(-0.0500,3.3201){\hspace*{\Width}\raisebox{\Height}{A}}%
-%
-%
-\settowidth{\Width}{B}\setlength{\Width}{-1\Width}%
-\settoheight{\Height}{B}\settodepth{\Depth}{B}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(-2.4118,0.1538){\hspace*{\Width}\raisebox{\Height}{B}}%
-%
-%
-\settowidth{\Width}{C}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{C}\settodepth{\Depth}{C}\setlength{\Height}{-\Height}%
-\put(0.7771,-0.7732){\hspace*{\Width}\raisebox{\Height}{C}}%
-%
-%
-\settowidth{\Width}{D}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{D}\settodepth{\Depth}{D}\setlength{\Height}{\Depth}%
-\put(1.5848,0.6193){\hspace*{\Width}\raisebox{\Height}{D}}%
-%
-%
-\end{picture}}% \ No newline at end of file
diff --git a/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig3d/crvsfparadata1.tex b/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig3d/crvsfparadata1.tex
deleted file mode 100644
index 26edbc69..00000000
--- a/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig3d/crvsfparadata1.tex
+++ /dev/null
@@ -1,74 +0,0 @@
-%%% /Users/Hannya/ketcindy/ketwork/template.tex 2016-8-24 21:8
-%%% template.sce 2016-8-24 21:8
-{\unitlength=6mm%
-\begin{picture}%
-( 6.81000, 6.95000)( -3.50000, -2.00000)%
-\special{pn 8}%
-%
-\settowidth{\Width}{$x$}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{$x$}\settodepth{\Depth}{$x$}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(-2.7936,-1.0660){\hspace*{\Width}\raisebox{\Height}{$x$}}%
-%
-%
-\settowidth{\Width}{$y$}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{$y$}\settodepth{\Depth}{$y$}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(3.9651,-1.1310){\hspace*{\Width}\raisebox{\Height}{$y$}}%
-%
-%
-\settowidth{\Width}{$z$}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{$z$}\settodepth{\Depth}{$z$}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(0.0000,4.4380){\hspace*{\Width}\raisebox{\Height}{$z$}}%
-%
-%
-\special{pa 471 -14}\special{pa 461 -50}\special{pa 451 -85}\special{pa 442 -120}%
-\special{pa 432 -153}\special{pa 422 -186}\special{pa 413 -219}\special{pa 403 -250}%
-\special{pa 393 -281}\special{pa 383 -311}\special{pa 374 -341}\special{pa 364 -369}%
-\special{pa 354 -397}\special{pa 345 -424}\special{pa 335 -451}\special{pa 325 -476}%
-\special{pa 315 -501}\special{pa 306 -525}\special{pa 296 -549}\special{pa 286 -571}%
-\special{pa 277 -593}\special{pa 268 -611}\special{pa 257 -635}\special{pa 247 -654}%
-\special{pa 237 -673}\special{pa 228 -692}\special{pa 218 -709}\special{pa 208 -726}%
-\special{pa 198 -742}\special{pa 188 -757}\special{pa 178 -772}\special{pa 169 -785}%
-\special{pa 159 -798}\special{pa 149 -810}\special{pa 143 -817}\special{pa 139 -822}%
-\special{pa 129 -833}\special{pa 118 -843}\special{pa 108 -852}\special{pa 98 -861}%
-\special{pa 87 -868}\special{pa 76 -876}\special{pa 69 -880}\special{pa 53 -887}\special{pa 41 -892}%
-\special{pa 31 -895}\special{pa 25 -896}\special{pa 17 -898}\special{pa 6 -899}\special{pa -5 -899}%
-\special{pa -16 -898}\special{pa -23 -897}\special{pa -30 -895}\special{pa -39 -893}%
-\special{pa -51 -888}\special{pa -65 -882}\special{pa -76 -876}\special{pa -87 -868}%
-\special{pa -98 -861}\special{pa -108 -852}\special{pa -118 -843}\special{pa -129 -833}%
-\special{pa -135 -826}\special{pa -149 -810}\special{pa -159 -798}\special{pa -169 -785}%
-\special{pa -178 -772}\special{pa -188 -757}\special{pa -198 -742}\special{pa -208 -726}%
-\special{pa -218 -709}\special{pa -228 -692}\special{pa -237 -673}\special{pa -243 -662}%
-\special{pa -247 -654}\special{pa -257 -635}\special{pa -267 -614}\special{pa -277 -593}%
-\special{pa -286 -571}\special{pa -296 -549}\special{pa -306 -525}\special{pa -315 -501}%
-\special{pa -325 -476}\special{pa -335 -451}\special{pa -345 -424}\special{pa -354 -397}%
-\special{pa -364 -369}\special{pa -374 -341}\special{pa -383 -311}\special{pa -393 -281}%
-\special{pa -403 -250}\special{pa -413 -219}\special{pa -422 -186}\special{pa -432 -153}%
-\special{pa -442 -120}\special{pa -451 -85}\special{pa -461 -50}\special{pa -471 -14}%
-\special{fp}%
-\special{pa -309 118}\special{pa -262 130}\special{pa -210 140}\special{pa -156 147}%
-\special{pa -99 152}\special{pa -40 155}\special{pa 19 156}\special{pa 78 154}\special{pa 136 149}%
-\special{pa 192 142}\special{pa 244 133}\special{pa 293 122}\special{pa 337 109}\special{pa 376 94}%
-\special{pa 409 78}\special{pa 435 61}\special{pa 455 42}\special{pa 467 23}\special{pa 472 3}%
-\special{pa 470 -16}\special{pa 460 -35}%
-\special{fp}%
-\special{pa -467 -23}\special{pa -472 -3}\special{pa -470 16}\special{pa -460 35}%
-\special{pa -443 54}\special{pa -419 72}\special{pa -388 89}\special{pa -351 104}%
-\special{pa -309 118}%
-\special{fp}%
-\special{pa -536 -153}\special{pa -424 -191}%
-\special{fp}%
-\special{pa 241 -416}\special{pa 536 -516}%
-\special{fp}%
-\special{pa 772 -295}\special{pa 429 -164}%
-\special{fp}%
-\special{pa -309 118}\special{pa -618 236}%
-\special{fp}%
-\special{pa -827 -236}\special{pa -440 -125}%
-\special{fp}%
-\special{pa 357 102}\special{pa 782 223}%
-\special{fp}%
-\special{pa 0 472}\special{pa 0 156}%
-\special{fp}%
-\special{pa 0 -899}\special{pa 0 -1003}%
-\special{fp}%
-\end{picture}}% \ No newline at end of file
diff --git a/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig3d/crvsfparadata2.tex b/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig3d/crvsfparadata2.tex
deleted file mode 100644
index 130e59cb..00000000
--- a/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig3d/crvsfparadata2.tex
+++ /dev/null
@@ -1,139 +0,0 @@
-%%% /Users/Hannya/ketcindy/ketwork/template.tex 2016-8-24 21:3
-%%% template.sce 2016-8-24 21:3
-{\unitlength=6mm%
-\begin{picture}%
-( 6.81000, 6.95000)( -3.50000, -2.00000)%
-\special{pn 8}%
-%
-\settowidth{\Width}{$x$}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{$x$}\settodepth{\Depth}{$x$}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(-2.7936,-1.0660){\hspace*{\Width}\raisebox{\Height}{$x$}}%
-%
-%
-\settowidth{\Width}{$y$}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{$y$}\settodepth{\Depth}{$y$}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(3.9651,-1.1310){\hspace*{\Width}\raisebox{\Height}{$y$}}%
-%
-%
-\settowidth{\Width}{$z$}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{$z$}\settodepth{\Depth}{$z$}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(0.0000,4.4380){\hspace*{\Width}\raisebox{\Height}{$z$}}%
-%
-%
-\special{pa 471 -14}\special{pa 461 -50}\special{pa 451 -85}\special{pa 442 -120}%
-\special{pa 432 -153}\special{pa 422 -186}\special{pa 413 -219}\special{pa 403 -250}%
-\special{pa 393 -281}\special{pa 383 -311}\special{pa 374 -341}\special{pa 364 -369}%
-\special{pa 354 -397}\special{pa 345 -424}\special{pa 335 -451}\special{pa 325 -476}%
-\special{pa 315 -501}\special{pa 306 -525}\special{pa 296 -549}\special{pa 286 -571}%
-\special{pa 277 -593}\special{pa 268 -611}\special{pa 257 -635}\special{pa 247 -654}%
-\special{pa 237 -673}\special{pa 228 -692}\special{pa 218 -709}\special{pa 208 -726}%
-\special{pa 198 -742}\special{pa 188 -757}\special{pa 178 -772}\special{pa 169 -785}%
-\special{pa 159 -798}\special{pa 149 -810}\special{pa 143 -817}\special{pa 139 -822}%
-\special{pa 129 -833}\special{pa 118 -843}\special{pa 108 -852}\special{pa 98 -861}%
-\special{pa 87 -868}\special{pa 76 -876}\special{pa 69 -880}\special{pa 53 -887}\special{pa 41 -892}%
-\special{pa 31 -895}\special{pa 25 -896}\special{pa 17 -898}\special{pa 6 -899}\special{pa -5 -899}%
-\special{pa -16 -898}\special{pa -23 -897}\special{pa -30 -895}\special{pa -39 -893}%
-\special{pa -51 -888}\special{pa -65 -882}\special{pa -76 -876}\special{pa -87 -868}%
-\special{pa -98 -861}\special{pa -108 -852}\special{pa -118 -843}\special{pa -129 -833}%
-\special{pa -135 -826}\special{pa -149 -810}\special{pa -159 -798}\special{pa -169 -785}%
-\special{pa -178 -772}\special{pa -188 -757}\special{pa -198 -742}\special{pa -208 -726}%
-\special{pa -218 -709}\special{pa -228 -692}\special{pa -237 -673}\special{pa -243 -662}%
-\special{pa -247 -654}\special{pa -257 -635}\special{pa -267 -614}\special{pa -277 -593}%
-\special{pa -286 -571}\special{pa -296 -549}\special{pa -306 -525}\special{pa -315 -501}%
-\special{pa -325 -476}\special{pa -335 -451}\special{pa -345 -424}\special{pa -354 -397}%
-\special{pa -364 -369}\special{pa -374 -341}\special{pa -383 -311}\special{pa -393 -281}%
-\special{pa -403 -250}\special{pa -413 -219}\special{pa -422 -186}\special{pa -432 -153}%
-\special{pa -442 -120}\special{pa -451 -85}\special{pa -461 -50}\special{pa -471 -14}%
-\special{fp}%
-\special{pa -309 118}\special{pa -262 130}\special{pa -210 140}\special{pa -156 147}%
-\special{pa -99 152}\special{pa -40 155}\special{pa 19 156}\special{pa 78 154}\special{pa 136 149}%
-\special{pa 192 142}\special{pa 244 133}\special{pa 293 122}\special{pa 337 109}\special{pa 376 94}%
-\special{pa 409 78}\special{pa 435 61}\special{pa 455 42}\special{pa 467 23}\special{pa 472 3}%
-\special{pa 470 -16}\special{pa 460 -35}%
-\special{fp}%
-\special{pa -467 -23}\special{pa -472 -3}\special{pa -470 16}\special{pa -460 35}%
-\special{pa -443 54}\special{pa -419 72}\special{pa -388 89}\special{pa -351 104}%
-\special{pa -309 118}%
-\special{fp}%
-\special{pn 8}%
-\special{pa 463 -33}\special{pa 457 -38}\special{fp}\special{pa 435 -60}\special{pa 428 -65}\special{fp}%
-\special{pa 402 -82}\special{pa 395 -85}\special{fp}\special{pa 366 -98}\special{pa 358 -101}\special{fp}%
-\special{pa 329 -112}\special{pa 321 -114}\special{fp}\special{pa 291 -122}\special{pa 283 -124}\special{fp}%
-\special{pa 252 -132}\special{pa 244 -133}\special{fp}\special{pa 213 -139}\special{pa 205 -140}\special{fp}%
-\special{pa 174 -145}\special{pa 166 -146}\special{fp}\special{pa 135 -149}\special{pa 127 -150}\special{fp}%
-\special{pa 96 -153}\special{pa 88 -153}\special{fp}\special{pa 56 -155}\special{pa 48 -155}\special{fp}%
-\special{pa 17 -155}\special{pa 9 -156}\special{fp}\special{pa -23 -156}\special{pa -31 -155}\special{fp}%
-\special{pa -63 -154}\special{pa -71 -154}\special{fp}\special{pa -102 -152}\special{pa -110 -151}\special{fp}%
-\special{pa -141 -149}\special{pa -149 -148}\special{fp}\special{pa -181 -144}\special{pa -189 -143}\special{fp}%
-\special{pa -220 -138}\special{pa -228 -136}\special{fp}\special{pa -258 -130}\special{pa -266 -128}\special{fp}%
-\special{pa -297 -121}\special{pa -305 -119}\special{fp}\special{pa -335 -110}\special{pa -342 -107}\special{fp}%
-\special{pa -372 -96}\special{pa -379 -93}\special{fp}\special{pa -407 -79}\special{pa -414 -75}\special{fp}%
-\special{pa -440 -56}\special{pa -446 -51}\special{fp}\special{pa -465 -26}\special{pa -470 -20}\special{fp}%
-\special{pn 8}%
-\special{pa -536 -153}\special{pa -424 -191}%
-\special{fp}%
-\special{pa 241 -416}\special{pa 536 -516}%
-\special{fp}%
-\special{pn 8}%
-\special{pa -428 -190}\special{pa -420 -192}\special{fp}\special{pa -391 -202}\special{pa -383 -205}\special{fp}%
-\special{pa -354 -215}\special{pa -346 -217}\special{fp}\special{pa -317 -227}\special{pa -309 -230}\special{fp}%
-\special{pa -280 -240}\special{pa -272 -242}\special{fp}\special{pa -243 -252}\special{pa -235 -255}\special{fp}%
-\special{pa -206 -265}\special{pa -198 -267}\special{fp}\special{pa -169 -277}\special{pa -161 -280}\special{fp}%
-\special{pa -132 -290}\special{pa -124 -292}\special{fp}\special{pa -95 -302}\special{pa -87 -305}\special{fp}%
-\special{pa -58 -315}\special{pa -50 -317}\special{fp}\special{pa -21 -327}\special{pa -14 -330}\special{fp}%
-\special{pa 16 -340}\special{pa 23 -342}\special{fp}\special{pa 53 -352}\special{pa 60 -355}\special{fp}%
-\special{pa 90 -365}\special{pa 97 -367}\special{fp}\special{pa 127 -377}\special{pa 134 -380}\special{fp}%
-\special{pa 164 -390}\special{pa 171 -392}\special{fp}\special{pa 201 -402}\special{pa 208 -405}\special{fp}%
-\special{pa 238 -415}\special{pa 245 -418}\special{fp}\special{pn 8}%
-\special{pa 772 -295}\special{pa 429 -164}%
-\special{fp}%
-\special{pa -309 118}\special{pa -618 236}%
-\special{fp}%
-\special{pa -827 -236}\special{pa -440 -125}%
-\special{fp}%
-\special{pa 357 102}\special{pa 782 223}%
-\special{fp}%
-\special{pa 0 472}\special{pa 0 156}%
-\special{fp}%
-\special{pa 0 -899}\special{pa 0 -1003}%
-\special{fp}%
-\special{pn 8}%
-\special{pa 433 -165}\special{pa 425 -162}\special{fp}\special{pa 396 -151}\special{pa 388 -148}\special{fp}%
-\special{pa 359 -137}\special{pa 351 -134}\special{fp}\special{pa 322 -123}\special{pa 314 -120}\special{fp}%
-\special{pa 285 -109}\special{pa 278 -106}\special{fp}\special{pa 248 -95}\special{pa 241 -92}\special{fp}%
-\special{pa 211 -81}\special{pa 204 -78}\special{fp}\special{pa 174 -67}\special{pa 167 -64}\special{fp}%
-\special{pa 137 -52}\special{pa 130 -50}\special{fp}\special{pa 101 -38}\special{pa 93 -36}\special{fp}%
-\special{pa 64 -24}\special{pa 56 -21}\special{fp}\special{pa 27 -10}\special{pa 19 -7}\special{fp}%
-\special{pa -10 4}\special{pa -18 7}\special{fp}\special{pa -47 18}\special{pa -54 21}\special{fp}%
-\special{pa -84 32}\special{pa -91 35}\special{fp}\special{pa -121 46}\special{pa -128 49}\special{fp}%
-\special{pa -158 60}\special{pa -165 63}\special{fp}\special{pa -195 74}\special{pa -202 77}\special{fp}%
-\special{pa -231 88}\special{pa -239 91}\special{fp}\special{pa -268 102}\special{pa -276 105}\special{fp}%
-\special{pa -305 116}\special{pa -313 119}\special{fp}\special{pn 8}%
-\special{pa -444 -127}\special{pa -436 -124}\special{fp}\special{pa -406 -116}\special{pa -398 -114}\special{fp}%
-\special{pa -368 -105}\special{pa -360 -103}\special{fp}\special{pa -330 -94}\special{pa -322 -92}\special{fp}%
-\special{pa -292 -83}\special{pa -284 -81}\special{fp}\special{pa -254 -72}\special{pa -246 -70}\special{fp}%
-\special{pa -216 -62}\special{pa -208 -59}\special{fp}\special{pa -178 -51}\special{pa -171 -49}\special{fp}%
-\special{pa -140 -40}\special{pa -133 -38}\special{fp}\special{pa -102 -29}\special{pa -95 -27}\special{fp}%
-\special{pa -64 -18}\special{pa -57 -16}\special{fp}\special{pa -26 -8}\special{pa -19 -5}\special{fp}%
-\special{pa 11 3}\special{pa 19 5}\special{fp}\special{pa 49 14}\special{pa 57 16}\special{fp}%
-\special{pa 87 25}\special{pa 95 27}\special{fp}\special{pa 125 36}\special{pa 133 38}\special{fp}%
-\special{pa 163 47}\special{pa 171 49}\special{fp}\special{pa 201 57}\special{pa 209 60}\special{fp}%
-\special{pa 239 68}\special{pa 247 70}\special{fp}\special{pa 277 79}\special{pa 285 81}\special{fp}%
-\special{pa 315 90}\special{pa 323 92}\special{fp}\special{pa 353 101}\special{pa 361 103}\special{fp}%
-\special{pn 8}%
-\special{pa 0 160}\special{pa 0 152}\special{fp}\special{pa 0 121}\special{pa 0 113}\special{fp}%
-\special{pa 0 82}\special{pa 0 74}\special{fp}\special{pa 0 42}\special{pa 0 34}\special{fp}%
-\special{pa 0 3}\special{pa 0 -5}\special{fp}\special{pa 0 -36}\special{pa 0 -44}\special{fp}%
-\special{pa 0 -75}\special{pa 0 -83}\special{fp}\special{pa 0 -114}\special{pa 0 -122}\special{fp}%
-\special{pa 0 -153}\special{pa 0 -161}\special{fp}\special{pa 0 -192}\special{pa 0 -200}\special{fp}%
-\special{pa 0 -231}\special{pa 0 -239}\special{fp}\special{pa 0 -270}\special{pa 0 -278}\special{fp}%
-\special{pa 0 -309}\special{pa 0 -317}\special{fp}\special{pa 0 -348}\special{pa 0 -356}\special{fp}%
-\special{pa 0 -387}\special{pa 0 -395}\special{fp}\special{pa 0 -426}\special{pa 0 -434}\special{fp}%
-\special{pa 0 -465}\special{pa 0 -473}\special{fp}\special{pa 0 -504}\special{pa 0 -512}\special{fp}%
-\special{pa 0 -543}\special{pa 0 -551}\special{fp}\special{pa 0 -582}\special{pa 0 -590}\special{fp}%
-\special{pa 0 -621}\special{pa 0 -629}\special{fp}\special{pa 0 -660}\special{pa 0 -668}\special{fp}%
-\special{pa 0 -699}\special{pa 0 -707}\special{fp}\special{pa 0 -738}\special{pa 0 -746}\special{fp}%
-\special{pa 0 -778}\special{pa 0 -786}\special{fp}\special{pa 0 -817}\special{pa 0 -825}\special{fp}%
-\special{pa 0 -856}\special{pa 0 -864}\special{fp}\special{pa 0 -895}\special{pa 0 -903}\special{fp}%
-\special{pn 8}%
-\end{picture}}% \ No newline at end of file
diff --git a/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig3d/embed01.tex b/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig3d/embed01.tex
deleted file mode 100644
index 78f074ba..00000000
--- a/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig3d/embed01.tex
+++ /dev/null
@@ -1,79 +0,0 @@
-%%% /Users/Hannya/ketcindy/ketwork/template.tex 2016-8-18 19:51
-%%% template.sce 2016-8-18 19:51
-{\unitlength=8mm%
-\begin{picture}%
-( 7.09000, 7.64000)( -4.39000, -1.91000)%
-\special{pn 8}%
-%
-\settowidth{\Width}{$x$}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{$x$}\settodepth{\Depth}{$x$}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(-3.9477,-0.3675){\hspace*{\Width}\raisebox{\Height}{$x$}}%
-%
-%
-\settowidth{\Width}{$y$}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{$y$}\settodepth{\Depth}{$y$}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(1.5243,-1.0700){\hspace*{\Width}\raisebox{\Height}{$y$}}%
-%
-%
-\settowidth{\Width}{$z$}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{$z$}\settodepth{\Depth}{$z$}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(0.0000,5.0239){\hspace*{\Width}\raisebox{\Height}{$z$}}%
-%
-%
-\special{pa 850 -79}\special{pa -1184 110}%
-\special{fp}%
-\special{pa -1078 -757}\special{pa 431 303}%
-\special{fp}%
-\special{pa 0 602}\special{pa 0 -1522}%
-\special{fp}%
-\special{pa -1111 79}\special{pa -1184 110}\special{pa -1107 127}\special{pa -1109 103}%
-\special{pa -1111 79}\special{sh 1}\special{ip}%
-\special{pn 1}%
-\special{pa -1111 79}\special{pa -1184 110}\special{pa -1107 127}\special{pa -1109 103}%
-\special{pa -1111 79}\special{pa -1184 110}%
-\special{fp}%
-\special{pn 8}%
-\special{pa 356 280}\special{pa 431 303}\special{pa 384 240}\special{pa 370 260}\special{pa 356 280}%
-\special{sh 1}\special{ip}%
-\special{pn 1}%
-\special{pa 356 280}\special{pa 431 303}\special{pa 384 240}\special{pa 370 260}\special{pa 356 280}%
-\special{pa 431 303}%
-\special{fp}%
-\special{pn 8}%
-\special{pa 24 -1448}\special{pa 0 -1522}\special{pa -24 -1448}\special{pa 0 -1448}%
-\special{pa 24 -1448}\special{sh 1}\special{ip}%
-\special{pn 1}%
-\special{pa 24 -1448}\special{pa 0 -1522}\special{pa -24 -1448}\special{pa 0 -1448}%
-\special{pa 24 -1448}\special{pa 0 -1522}%
-\special{fp}%
-\special{pn 8}%
-\settowidth{\Width}{O}\setlength{\Width}{-1\Width}%
-\settoheight{\Height}{O}\settodepth{\Depth}{O}\setlength{\Height}{-\Height}%
-\put(-0.0500,-0.0500){\hspace*{\Width}\raisebox{\Height}{O}}%
-%
-%
-\special{pa -888 83}\special{pa -241 537}\special{pa -241 -1290}\special{pa -888 -1744}%
-\special{pa -888 83}%
-\special{fp}%
-\special{pa -349 -453}\special{pa -351 -530}\special{pa -356 -609}\special{pa -364 -687}%
-\special{pa -376 -765}\special{pa -390 -839}\special{pa -407 -910}\special{pa -427 -977}%
-\special{pa -449 -1037}\special{pa -473 -1090}\special{pa -498 -1136}\special{pa -524 -1174}%
-\special{pa -551 -1202}\special{pa -578 -1221}\special{pa -605 -1230}\special{pa -631 -1230}%
-\special{pa -656 -1219}\special{pa -680 -1199}\special{pa -702 -1170}\special{pa -722 -1131}%
-\special{pa -739 -1084}\special{pa -753 -1030}\special{pa -765 -969}\special{pa -773 -902}%
-\special{pa -778 -830}\special{pa -780 -755}\special{pa -778 -678}\special{pa -773 -599}%
-\special{pa -765 -520}\special{pa -753 -443}\special{pa -739 -368}\special{pa -722 -297}%
-\special{pa -702 -231}\special{pa -680 -171}\special{pa -656 -117}\special{pa -631 -71}%
-\special{pa -605 -34}\special{pa -578 -6}\special{pa -551 13}\special{pa -524 23}%
-\special{pa -498 22}\special{pa -473 12}\special{pa -449 -9}\special{pa -427 -38}%
-\special{pa -407 -77}\special{pa -390 -124}\special{pa -376 -178}\special{pa -364 -239}%
-\special{pa -356 -306}\special{pa -351 -377}\special{pa -349 -453}%
-\special{fp}%
-\special{pa -565 -1213}\special{pa -751 -430}\special{pa -378 -168}\special{pa -565 -1213}%
-\special{fp}%
-\special{pn 3}%
-\special{pa -556 -612}\special{pa -563 -616}\special{pa -570 -614}\special{pa -575 -609}%
-\special{pa -576 -602}\special{pa -573 -596}\special{pa -566 -592}\special{pa -559 -593}%
-\special{pa -554 -599}\special{pa -553 -606}\special{pa -556 -612}\special{sh 1}\special{fp}%
-\special{pn 8}%
-\end{picture}}% \ No newline at end of file
diff --git a/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig3d/embed02.tex b/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig3d/embed02.tex
deleted file mode 100644
index 115ca20d..00000000
--- a/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig3d/embed02.tex
+++ /dev/null
@@ -1,82 +0,0 @@
-%%% /Users/Hannya/ketcindy/ketwork/template.tex 2016-8-18 21:20
-%%% template.sce 2016-8-18 21:20
-{\unitlength=8mm%
-\begin{picture}%
-( 9.18000, 7.71000)( -4.79000, -2.03000)%
-\special{pn 8}%
-%
-\settowidth{\Width}{$x$}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{$x$}\settodepth{\Depth}{$x$}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(-4.4289,-1.0449){\hspace*{\Width}\raisebox{\Height}{$x$}}%
-%
-%
-\settowidth{\Width}{$y$}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{$y$}\settodepth{\Depth}{$y$}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(2.8060,-1.7060){\hspace*{\Width}\raisebox{\Height}{$y$}}%
-%
-%
-\settowidth{\Width}{$z$}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{$z$}\settodepth{\Depth}{$z$}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(0.0000,4.8175){\hspace*{\Width}\raisebox{\Height}{$z$}}%
-%
-%
-\special{pn 3}%
-\special{pa -92 -427}\special{pa -99 -430}\special{pa -106 -429}\special{pa -111 -424}%
-\special{pa -112 -417}\special{pa -109 -410}\special{pa -103 -407}\special{pa -95 -408}%
-\special{pa -90 -413}\special{pa -89 -421}\special{pa -92 -427}\special{sh 1}\special{fp}%
-\special{pn 8}%
-\special{pa 1337 -315}\special{pa 811 -191}%
-\special{fp}%
-\special{pa 758 -179}\special{pa 380 -90}%
-\special{fp}%
-\special{pa 305 -72}\special{pa -311 73}%
-\special{fp}%
-\special{pa -385 91}\special{pa -1166 275}%
-\special{fp}%
-\special{pa -1219 288}\special{pa -1337 315}%
-\special{fp}%
-\special{pa -1332 -810}\special{pa -1019 -619}%
-\special{fp}%
-\special{pa -976 -593}\special{pa -742 -451}%
-\special{fp}%
-\special{pa -697 -424}\special{pa -581 -353}%
-\special{fp}%
-\special{pa -538 -327}\special{pa -306 -186}%
-\special{fp}%
-\special{pa -238 -144}\special{pa 78 47}%
-\special{fp}%
-\special{pa 130 79}\special{pa 635 386}%
-\special{fp}%
-\special{pa 677 412}\special{pa 833 506}%
-\special{fp}%
-\special{pa 0 639}\special{pa 0 418}%
-\special{fp}%
-\special{pa 0 369}\special{pa 0 119}%
-\special{fp}%
-\special{pa 0 68}\special{pa 0 -117}%
-\special{fp}%
-\special{pa 0 -166}\special{pa 0 -1458}%
-\special{fp}%
-\special{pa 993 -1126}\special{pa 645 451}\special{pa -1195 289}\special{pa -846 -1288}%
-\special{pa -24 -1216}%
-\special{fp}%
-\special{pa 24 -1212}\special{pa 993 -1126}%
-\special{fp}%
-\special{pa 513 -365}\special{pa 523 -431}\special{pa 522 -497}\special{pa 513 -562}%
-\special{pa 493 -625}\special{pa 464 -684}\special{pa 426 -740}\special{pa 380 -790}%
-\special{pa 326 -834}\special{pa 266 -872}\special{pa 199 -903}\special{pa 129 -926}%
-\special{pa 54 -941}\special{pa 24 -943}%
-\special{fp}%
-\special{pa -24 -947}\special{pa -101 -946}\special{pa -180 -936}\special{pa -257 -918}%
-\special{pa -331 -892}\special{pa -402 -859}\special{pa -468 -818}\special{pa -529 -772}%
-\special{pa -582 -720}\special{pa -628 -663}\special{pa -666 -602}\special{pa -695 -538}%
-\special{pa -714 -473}\special{pa -724 -406}\special{pa -724 -340}\special{pa -714 -275}%
-\special{pa -695 -212}\special{pa -666 -153}\special{pa -628 -98}\special{pa -582 -48}%
-\special{pa -528 -3}\special{pa -467 35}\special{pa -401 65}\special{pa -330 88}\special{pa -255 103}%
-\special{pa -178 110}\special{pa -100 108}\special{pa -22 99}\special{pa 55 81}\special{pa 130 55}%
-\special{pa 201 21}\special{pa 267 -19}\special{pa 327 -66}\special{pa 381 -118}\special{pa 427 -175}%
-\special{pa 465 -235}\special{pa 493 -299}\special{pa 513 -365}%
-\special{fp}%
-\special{pa -22 -905}\special{pa -690 -202}\special{pa 372 -109}\special{pa 16 -945}%
-\special{fp}%
-\end{picture}}% \ No newline at end of file
diff --git a/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig3d/embed03.png b/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig3d/embed03.png
deleted file mode 100644
index 35d19ef1..00000000
--- a/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig3d/embed03.png
+++ /dev/null
Binary files differ
diff --git a/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig3d/invparapt.tex b/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig3d/invparapt.tex
deleted file mode 100644
index 0b5684e2..00000000
--- a/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig3d/invparapt.tex
+++ /dev/null
@@ -1,110 +0,0 @@
-%%% /Users/Hannya/ketcindy/ketwork/template.tex 2016-8-23 9:12
-%%% template.sce 2016-8-23 9:12
-{\unitlength=8mm%
-\begin{picture}%
-( 7.55000, 6.27000)( -3.75000, -1.85000)%
-\special{pn 8}%
-%
-\settowidth{\Width}{$x$}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{$x$}\settodepth{\Depth}{$x$}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(-3.1557,-0.9707){\hspace*{\Width}\raisebox{\Height}{$x$}}%
-%
-%
-\settowidth{\Width}{$y$}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{$y$}\settodepth{\Depth}{$y$}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(3.5211,-1.3391){\hspace*{\Width}\raisebox{\Height}{$y$}}%
-%
-%
-\settowidth{\Width}{$z$}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{$z$}\settodepth{\Depth}{$z$}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(0.0000,3.9488){\hspace*{\Width}\raisebox{\Height}{$z$}}%
-%
-%
-\special{pa 1171 -360}\special{pa -937 288}%
-\special{fp}%
-\special{pa -1053 -400}\special{pa 1053 400}%
-\special{fp}%
-\special{pa 0 583}\special{pa 0 -1184}%
-\special{fp}%
-\special{pa 24 144}\special{pa 187 -656}%
-\special{fp}%
-\special{pn 8}%
-\special{pa -472 143}\special{pa -464 145}\special{fp}\special{pa -434 150}\special{pa -426 151}\special{fp}%
-\special{pa -395 157}\special{pa -387 158}\special{fp}\special{pa -356 163}\special{pa -348 164}\special{fp}%
-\special{pa -317 167}\special{pa -309 167}\special{fp}\special{pa -278 169}\special{pa -270 170}\special{fp}%
-\special{pa -239 172}\special{pa -231 172}\special{fp}\special{pa -199 173}\special{pa -191 173}\special{fp}%
-\special{pa -160 173}\special{pa -152 172}\special{fp}\special{pa -121 172}\special{pa -113 171}\special{fp}%
-\special{pa -82 171}\special{pa -74 170}\special{fp}\special{pa -42 169}\special{pa -34 168}\special{fp}%
-\special{pa -3 165}\special{pa 5 164}\special{fp}\special{pa 36 160}\special{pa 44 160}\special{fp}%
-\special{pa 75 156}\special{pa 83 155}\special{fp}\special{pa 114 151}\special{pa 122 150}\special{fp}%
-\special{pa 152 143}\special{pa 160 142}\special{fp}\special{pa 191 136}\special{pa 199 134}\special{fp}%
-\special{pa 229 128}\special{pa 237 126}\special{fp}\special{pa 267 119}\special{pa 275 117}\special{fp}%
-\special{pa 305 107}\special{pa 312 105}\special{fp}\special{pa 342 95}\special{pa 350 93}\special{fp}%
-\special{pa 380 83}\special{pa 387 81}\special{fp}\special{pa 416 68}\special{pa 423 64}\special{fp}%
-\special{pa 451 51}\special{pa 458 47}\special{fp}\special{pa 487 34}\special{pa 493 30}\special{fp}%
-\special{pa 519 12}\special{pa 526 8}\special{fp}\special{pa 550 -12}\special{pa 556 -17}\special{fp}%
-\special{pa 581 -36}\special{pa 586 -42}\special{fp}\special{pa 602 -69}\special{pa 606 -76}\special{fp}%
-\special{pa 622 -103}\special{pa 624 -110}\special{fp}\special{pa 625 -142}\special{pa 625 -150}\special{fp}%
-\special{pa 621 -179}\special{pa 619 -187}\special{fp}\special{pa 604 -215}\special{pa 599 -221}\special{fp}%
-\special{pa 581 -246}\special{pa 576 -252}\special{fp}\special{pa 552 -272}\special{pa 546 -277}\special{fp}%
-\special{pa 522 -298}\special{pa 516 -302}\special{fp}\special{pa 488 -317}\special{pa 481 -321}\special{fp}%
-\special{pa 453 -335}\special{pa 446 -339}\special{fp}\special{pa 418 -353}\special{pa 411 -357}\special{fp}%
-\special{pa 381 -367}\special{pa 374 -369}\special{fp}\special{pa 344 -379}\special{pa 337 -382}\special{fp}%
-\special{pa 307 -392}\special{pa 300 -395}\special{fp}\special{pa 270 -403}\special{pa 262 -405}\special{fp}%
-\special{pa 231 -412}\special{pa 223 -414}\special{fp}\special{pa 193 -420}\special{pa 185 -422}\special{fp}%
-\special{pa 155 -429}\special{pa 147 -430}\special{fp}\special{pa 116 -436}\special{pa 108 -437}\special{fp}%
-\special{pa 77 -441}\special{pa 69 -442}\special{fp}\special{pa 38 -445}\special{pa 30 -446}\special{fp}%
-\special{pa -1 -450}\special{pa -9 -451}\special{fp}\special{pa -40 -454}\special{pa -48 -454}\special{fp}%
-\special{pa -79 -455}\special{pa -87 -456}\special{fp}\special{pa -119 -457}\special{pa -127 -457}\special{fp}%
-\special{pa -158 -458}\special{pa -166 -459}\special{fp}\special{pa -197 -458}\special{pa -205 -458}\special{fp}%
-\special{pa -236 -457}\special{pa -244 -456}\special{fp}\special{pa -276 -455}\special{pa -284 -454}\special{fp}%
-\special{pa -315 -453}\special{pa -323 -452}\special{fp}\special{pa -354 -448}\special{pa -362 -447}\special{fp}%
-\special{pa -393 -442}\special{pa -401 -441}\special{fp}\special{pa -432 -436}\special{pa -439 -435}\special{fp}%
-\special{pa -470 -428}\special{pa -477 -425}\special{fp}\special{pa -507 -417}\special{pa -515 -414}\special{fp}%
-\special{pa -545 -405}\special{pa -552 -402}\special{fp}\special{pa -579 -386}\special{pa -586 -382}\special{fp}%
-\special{pa -610 -364}\special{pa -615 -357}\special{fp}\special{pa -627 -330}\special{pa -627 -322}\special{fp}%
-\special{pa -613 -294}\special{pa -608 -288}\special{fp}\special{pa -581 -272}\special{pa -574 -268}\special{fp}%
-\special{pa -547 -254}\special{pa -539 -251}\special{fp}\special{pa -509 -241}\special{pa -502 -239}\special{fp}%
-\special{pa -472 -229}\special{pa -464 -227}\special{fp}\special{pa -434 -222}\special{pa -426 -221}\special{fp}%
-\special{pa -395 -215}\special{pa -387 -214}\special{fp}\special{pa -356 -208}\special{pa -348 -208}\special{fp}%
-\special{pa -317 -205}\special{pa -309 -205}\special{fp}\special{pa -278 -203}\special{pa -270 -202}\special{fp}%
-\special{pa -239 -200}\special{pa -231 -200}\special{fp}\special{pa -199 -199}\special{pa -191 -199}\special{fp}%
-\special{pa -160 -199}\special{pa -152 -200}\special{fp}\special{pa -121 -200}\special{pa -113 -200}\special{fp}%
-\special{pa -82 -201}\special{pa -74 -201}\special{fp}\special{pa -42 -203}\special{pa -34 -204}\special{fp}%
-\special{pa -3 -207}\special{pa 5 -208}\special{fp}\special{pa 36 -211}\special{pa 44 -212}\special{fp}%
-\special{pa 75 -216}\special{pa 83 -217}\special{fp}\special{pa 114 -221}\special{pa 122 -222}\special{fp}%
-\special{pa 152 -229}\special{pa 160 -230}\special{fp}\special{pa 191 -236}\special{pa 199 -238}\special{fp}%
-\special{pa 229 -244}\special{pa 237 -246}\special{fp}\special{pa 267 -253}\special{pa 275 -255}\special{fp}%
-\special{pa 305 -265}\special{pa 312 -267}\special{fp}\special{pa 342 -277}\special{pa 350 -279}\special{fp}%
-\special{pa 380 -288}\special{pa 387 -291}\special{fp}\special{pa 416 -304}\special{pa 423 -308}\special{fp}%
-\special{pa 451 -321}\special{pa 458 -325}\special{fp}\special{pa 487 -338}\special{pa 493 -342}\special{fp}%
-\special{pa 519 -360}\special{pa 526 -364}\special{fp}\special{pa 550 -384}\special{pa 556 -389}\special{fp}%
-\special{pa 581 -408}\special{pa 586 -414}\special{fp}\special{pa 602 -441}\special{pa 606 -448}\special{fp}%
-\special{pa 622 -474}\special{pa 624 -482}\special{fp}\special{pa 625 -514}\special{pa 625 -522}\special{fp}%
-\special{pa 621 -551}\special{pa 619 -559}\special{fp}\special{pa 604 -586}\special{pa 599 -593}\special{fp}%
-\special{pa 581 -618}\special{pa 576 -624}\special{fp}\special{pa 552 -644}\special{pa 546 -649}\special{fp}%
-\special{pa 522 -670}\special{pa 516 -674}\special{fp}\special{pa 488 -689}\special{pa 481 -692}\special{fp}%
-\special{pa 453 -707}\special{pa 446 -711}\special{fp}\special{pa 418 -725}\special{pa 411 -728}\special{fp}%
-\special{pa 381 -739}\special{pa 374 -741}\special{fp}\special{pa 344 -751}\special{pa 337 -754}\special{fp}%
-\special{pa 307 -764}\special{pa 300 -767}\special{fp}\special{pa 270 -775}\special{pa 262 -777}\special{fp}%
-\special{pa 231 -784}\special{pa 223 -786}\special{fp}\special{pa 193 -792}\special{pa 185 -794}\special{fp}%
-\special{pa 155 -801}\special{pa 147 -802}\special{fp}\special{pa 116 -808}\special{pa 108 -809}\special{fp}%
-\special{pa 77 -813}\special{pa 69 -813}\special{fp}\special{pa 38 -817}\special{pa 30 -818}\special{fp}%
-\special{pa -1 -822}\special{pa -9 -823}\special{fp}\special{pa -40 -826}\special{pa -48 -826}\special{fp}%
-\special{pa -79 -827}\special{pa -87 -828}\special{fp}\special{pa -119 -829}\special{pa -127 -829}\special{fp}%
-\special{pa -158 -830}\special{pa -166 -830}\special{fp}\special{pa -197 -830}\special{pa -205 -830}\special{fp}%
-\special{pa -236 -828}\special{pa -244 -828}\special{fp}\special{pa -276 -827}\special{pa -284 -826}\special{fp}%
-\special{pa -315 -825}\special{pa -323 -824}\special{fp}\special{pa -354 -820}\special{pa -362 -819}\special{fp}%
-\special{pa -393 -814}\special{pa -401 -813}\special{fp}\special{pa -432 -808}\special{pa -439 -807}\special{fp}%
-\special{pa -470 -799}\special{pa -477 -797}\special{fp}\special{pa -507 -789}\special{pa -515 -786}\special{fp}%
-\special{pa -545 -777}\special{pa -552 -774}\special{fp}\special{pa -579 -758}\special{pa -586 -754}\special{fp}%
-\special{pa -610 -735}\special{pa -615 -729}\special{fp}\special{pa -627 -702}\special{pa -627 -694}\special{fp}%
-\special{pa -613 -666}\special{pa -608 -660}\special{fp}\special{pa -581 -644}\special{pa -574 -640}\special{fp}%
-\special{pa -547 -626}\special{pa -539 -623}\special{fp}\special{pa -509 -613}\special{pa -502 -611}\special{fp}%
-\special{pa -472 -601}\special{pa -465 -599}\special{fp}\special{pn 8}%
-\special{pa 140 -432}\special{pa 131 -433}\special{pa -27 -452}\special{pa -182 -458}%
-\special{pa -326 -450}\special{pa -452 -435}\special{pa -545 -406}\special{pa -607 -372}%
-\special{pa -630 -333}\special{pa -612 -294}\special{pa -560 -258}\special{pa -468 -229}%
-\special{pa -349 -208}\special{pa -208 -200}\special{pa -53 -202}\special{pa 96 -220}%
-\special{fp}%
-\end{picture}}% \ No newline at end of file
diff --git a/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig3d/nohiddenbyfaces1.tex b/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig3d/nohiddenbyfaces1.tex
deleted file mode 100644
index 6e7d1900..00000000
--- a/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig3d/nohiddenbyfaces1.tex
+++ /dev/null
@@ -1,105 +0,0 @@
-%%% /Users/Hannya/ketcindy/ketwork/template.tex 2016-8-9 10:45
-%%% template.sce 2016-8-9 10:45
-{\unitlength=6mm%
-\begin{picture}%
-( 9.37000, 7.04000)( -5.00000, -2.00000)%
-\special{pn 8}%
-%
-\settowidth{\Width}{$x$}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{$x$}\settodepth{\Depth}{$x$}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(-3.3890,-1.4320){\hspace*{\Width}\raisebox{\Height}{$x$}}%
-%
-%
-\settowidth{\Width}{$y$}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{$y$}\settodepth{\Depth}{$y$}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(4.0123,-1.1937){\hspace*{\Width}\raisebox{\Height}{$y$}}%
-%
-%
-\settowidth{\Width}{$z$}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{$z$}\settodepth{\Depth}{$z$}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(0.0000,4.8652){\hspace*{\Width}\raisebox{\Height}{$z$}}%
-%
-%
-\special{pa 759 -321}\special{pa 301 -127}%
-\special{fp}%
-\special{pa -202 85}\special{pa -759 321}%
-\special{fp}%
-\special{pn 8}%
-\special{pa 304 -129}\special{pa 297 -125}\special{fp}\special{pa 268 -113}\special{pa 261 -110}\special{fp}%
-\special{pa 233 -98}\special{pa 225 -95}\special{fp}\special{pa 197 -83}\special{pa 189 -80}\special{fp}%
-\special{pa 161 -68}\special{pa 153 -65}\special{fp}\special{pa 125 -53}\special{pa 117 -50}\special{fp}%
-\special{pa 89 -38}\special{pa 82 -34}\special{fp}\special{pa 53 -22}\special{pa 46 -19}\special{fp}%
-\special{pa 17 -7}\special{pa 10 -4}\special{fp}\special{pa -19 8}\special{pa -26 11}\special{fp}%
-\special{pa -55 23}\special{pa -62 26}\special{fp}\special{pa -91 38}\special{pa -98 41}\special{fp}%
-\special{pa -126 53}\special{pa -134 57}\special{fp}\special{pa -162 69}\special{pa -170 72}\special{fp}%
-\special{pa -198 84}\special{pa -206 87}\special{fp}\special{pn 8}%
-\special{pa -905 -269}\special{pa -398 -118}%
-\special{fp}%
-\special{pa 418 124}\special{pa 905 269}%
-\special{fp}%
-\special{pn 8}%
-\special{pa -402 -120}\special{pa -394 -117}\special{fp}\special{pa -365 -109}\special{pa -357 -106}\special{fp}%
-\special{pa -328 -98}\special{pa -320 -95}\special{fp}\special{pa -291 -86}\special{pa -283 -84}\special{fp}%
-\special{pa -254 -75}\special{pa -246 -73}\special{fp}\special{pa -216 -64}\special{pa -209 -62}\special{fp}%
-\special{pa -179 -53}\special{pa -172 -51}\special{fp}\special{pa -142 -42}\special{pa -135 -40}\special{fp}%
-\special{pa -105 -31}\special{pa -98 -29}\special{fp}\special{pa -68 -20}\special{pa -60 -18}\special{fp}%
-\special{pa -31 -9}\special{pa -23 -7}\special{fp}\special{pa 6 2}\special{pa 14 4}\special{fp}%
-\special{pa 43 13}\special{pa 51 15}\special{fp}\special{pa 80 24}\special{pa 88 26}\special{fp}%
-\special{pa 117 35}\special{pa 125 37}\special{fp}\special{pa 155 46}\special{pa 162 48}\special{fp}%
-\special{pa 192 57}\special{pa 199 59}\special{fp}\special{pa 229 68}\special{pa 236 70}\special{fp}%
-\special{pa 266 79}\special{pa 273 81}\special{fp}\special{pa 303 90}\special{pa 311 92}\special{fp}%
-\special{pa 340 101}\special{pa 348 103}\special{fp}\special{pa 377 112}\special{pa 385 114}\special{fp}%
-\special{pa 414 123}\special{pa 422 125}\special{fp}\special{pn 8}%
-\special{pa 0 472}\special{pa 0 97}%
-\special{fp}%
-\special{pa 0 -764}\special{pa 0 -1104}%
-\special{fp}%
-\special{pn 8}%
-\special{pa 0 101}\special{pa 0 93}\special{fp}\special{pa 0 62}\special{pa 0 54}\special{fp}%
-\special{pa 0 23}\special{pa 0 15}\special{fp}\special{pa 0 -16}\special{pa 0 -24}\special{fp}%
-\special{pa 0 -55}\special{pa 0 -63}\special{fp}\special{pa 0 -95}\special{pa 0 -103}\special{fp}%
-\special{pa 0 -134}\special{pa 0 -142}\special{fp}\special{pa 0 -173}\special{pa 0 -181}\special{fp}%
-\special{pa 0 -212}\special{pa 0 -220}\special{fp}\special{pa 0 -251}\special{pa 0 -259}\special{fp}%
-\special{pa 0 -290}\special{pa 0 -298}\special{fp}\special{pa 0 -330}\special{pa 0 -338}\special{fp}%
-\special{pa 0 -369}\special{pa 0 -377}\special{fp}\special{pa 0 -408}\special{pa 0 -416}\special{fp}%
-\special{pa 0 -447}\special{pa 0 -455}\special{fp}\special{pa 0 -486}\special{pa 0 -494}\special{fp}%
-\special{pa 0 -525}\special{pa 0 -533}\special{fp}\special{pa 0 -564}\special{pa 0 -572}\special{fp}%
-\special{pa 0 -604}\special{pa 0 -612}\special{fp}\special{pa 0 -643}\special{pa 0 -651}\special{fp}%
-\special{pa 0 -682}\special{pa 0 -690}\special{fp}\special{pa 0 -721}\special{pa 0 -729}\special{fp}%
-\special{pa 0 -760}\special{pa 0 -768}\special{fp}\special{pn 8}%
-\special{pn 8}%
-\special{pa 99 -192}\special{pa 92 -189}\special{fp}\special{pa 64 -177}\special{pa 56 -174}\special{fp}%
-\special{pa 28 -162}\special{pa 20 -158}\special{fp}\special{pa -8 -146}\special{pa -15 -143}\special{fp}%
-\special{pa -44 -131}\special{pa -51 -128}\special{fp}\special{pa -79 -116}\special{pa -87 -113}\special{fp}%
-\special{pa -115 -101}\special{pa -122 -98}\special{fp}\special{pa -151 -86}\special{pa -158 -83}\special{fp}%
-\special{pa -187 -71}\special{pa -194 -68}\special{fp}\special{pa -222 -56}\special{pa -230 -53}\special{fp}%
-\special{pa -258 -41}\special{pa -265 -38}\special{fp}\special{pa -294 -26}\special{pa -301 -23}\special{fp}%
-\special{pa -329 -11}\special{pa -337 -8}\special{fp}\special{pa -365 4}\special{pa -373 8}\special{fp}%
-\special{pa -401 20}\special{pa -408 23}\special{fp}\special{pa -437 35}\special{pa -444 38}\special{fp}%
-\special{pa -472 50}\special{pa -480 53}\special{fp}\special{pa -508 65}\special{pa -515 68}\special{fp}%
-\special{pn 8}%
-\special{pa -512 66}\special{pa 418 124}%
-\special{fp}%
-\special{pn 8}%
-\special{pa 93 -193}\special{pa 98 -187}\special{fp}\special{pa 122 -164}\special{pa 128 -159}\special{fp}%
-\special{pa 151 -136}\special{pa 157 -130}\special{fp}\special{pa 181 -107}\special{pa 186 -102}\special{fp}%
-\special{pa 210 -79}\special{pa 216 -73}\special{fp}\special{pa 239 -50}\special{pa 245 -44}\special{fp}%
-\special{pa 269 -21}\special{pa 274 -16}\special{fp}\special{pa 298 7}\special{pa 304 13}\special{fp}%
-\special{pa 327 36}\special{pa 333 41}\special{fp}\special{pa 357 64}\special{pa 362 70}\special{fp}%
-\special{pa 386 93}\special{pa 392 99}\special{fp}\special{pa 415 122}\special{pa 421 127}\special{fp}%
-\special{pn 8}%
-\special{pa -512 66}\special{pa 0 -764}%
-\special{fp}%
-\special{pn 8}%
-\special{pa 96 -186}\special{pa 95 -194}\special{fp}\special{pa 90 -225}\special{pa 89 -232}\special{fp}%
-\special{pa 83 -263}\special{pa 82 -271}\special{fp}\special{pa 77 -301}\special{pa 76 -309}\special{fp}%
-\special{pa 71 -339}\special{pa 69 -347}\special{fp}\special{pa 64 -378}\special{pa 63 -386}\special{fp}%
-\special{pa 58 -416}\special{pa 57 -424}\special{fp}\special{pa 52 -454}\special{pa 50 -462}\special{fp}%
-\special{pa 45 -492}\special{pa 44 -500}\special{fp}\special{pa 39 -531}\special{pa 38 -539}\special{fp}%
-\special{pa 33 -569}\special{pa 31 -577}\special{fp}\special{pa 26 -607}\special{pa 25 -615}\special{fp}%
-\special{pa 20 -645}\special{pa 18 -653}\special{fp}\special{pa 13 -684}\special{pa 12 -692}\special{fp}%
-\special{pa 7 -722}\special{pa 6 -730}\special{fp}\special{pa 1 -760}\special{pa -1 -768}\special{fp}%
-\special{pn 8}%
-\special{pa 418 124}\special{pa 0 -764}%
-\special{fp}%
-\end{picture}}% \ No newline at end of file
diff --git a/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig3d/nohiddenbyfaces2.tex b/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig3d/nohiddenbyfaces2.tex
deleted file mode 100644
index d5477be0..00000000
--- a/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig3d/nohiddenbyfaces2.tex
+++ /dev/null
@@ -1,58 +0,0 @@
-%%% /Users/Hannya/ketcindy/ketwork/template.tex 2016-8-11 15:59
-%%% template.sce 2016-8-11 15:59
-{\unitlength=6mm%
-\begin{picture}%
-( 8.39000, 6.29000)( -4.00000, -2.00000)%
-\special{pn 8}%
-%
-\settowidth{\Width}{$x$}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{$x$}\settodepth{\Depth}{$x$}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(-3.3919,-1.2682){\hspace*{\Width}\raisebox{\Height}{$x$}}%
-%
-%
-\settowidth{\Width}{$y$}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{$y$}\settodepth{\Depth}{$y$}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(4.0140,-1.0567){\hspace*{\Width}\raisebox{\Height}{$y$}}%
-%
-%
-\settowidth{\Width}{$z$}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{$z$}\settodepth{\Depth}{$z$}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(0.0000,3.9880){\hspace*{\Width}\raisebox{\Height}{$z$}}%
-%
-%
-\special{pa 759 -284}\special{pa -759 284}%
-\special{fp}%
-\special{pa -905 -238}\special{pa 905 238}%
-\special{fp}%
-\special{pa 0 472}\special{pa 0 -897}%
-\special{fp}%
-\special{pa 96 -168}\special{pa 60 -155}\special{fp}\special{pa 24 -142}\special{pa -12 -128}\special{fp}%
-\special{pa -47 -115}\special{pa -83 -102}\special{fp}\special{pa -119 -88}\special{pa -155 -75}\special{fp}%
-\special{pa -190 -61}\special{pa -226 -48}\special{fp}\special{pa -262 -35}\special{pa -297 -21}\special{fp}%
-\special{pa -333 -8}\special{pa -369 5}\special{fp}\special{pa -405 19}\special{pa -440 32}\special{fp}%
-\special{pa -476 45}\special{pa -512 59}\special{fp}%
-%
-\special{pn 16}%
-\special{pa -512 59}\special{pa 418 110}%
-\special{fp}%
-\special{pn 8}%
-\special{pa 96 -168}\special{pa 125 -143}\special{fp}\special{pa 154 -118}\special{pa 184 -92}\special{fp}%
-\special{pa 213 -67}\special{pa 242 -42}\special{fp}\special{pa 271 -16}\special{pa 301 9}\special{fp}%
-\special{pa 330 34}\special{pa 359 59}\special{fp}\special{pa 389 85}\special{pa 418 110}\special{fp}%
-%
-%
-\special{pn 16}%
-\special{pa -512 59}\special{pa 0 -776}%
-\special{fp}%
-\special{pn 8}%
-\special{pa 96 -168}\special{pa 90 -204}\special{fp}\special{pa 84 -240}\special{pa 79 -276}\special{fp}%
-\special{pa 73 -311}\special{pa 67 -347}\special{fp}\special{pa 62 -383}\special{pa 56 -419}\special{fp}%
-\special{pa 51 -454}\special{pa 45 -490}\special{fp}\special{pa 39 -526}\special{pa 34 -562}\special{fp}%
-\special{pa 28 -597}\special{pa 22 -633}\special{fp}\special{pa 17 -669}\special{pa 11 -705}\special{fp}%
-\special{pa 6 -740}\special{pa 0 -776}\special{fp}%
-%
-\special{pn 16}%
-\special{pa 418 110}\special{pa 0 -776}%
-\special{fp}%
-\special{pn 8}%
-\end{picture}}% \ No newline at end of file
diff --git a/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig3d/parabola.tex b/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig3d/parabola.tex
deleted file mode 100644
index 437d8d61..00000000
--- a/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig3d/parabola.tex
+++ /dev/null
@@ -1,335 +0,0 @@
-%%% /Users/Hannya/ketcindy/ketwork/template.tex 2016-8-7 19:8
-%%% template.sce 2016-8-7 19:8
-{\unitlength=6mm%
-\begin{picture}%
-( 10.01000, 7.51000)( -5.01000, -2.51000)%
-\special{pn 8}%
-%
-\settowidth{\Width}{$x$}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{$x$}\settodepth{\Depth}{$x$}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(-4.6011,-1.1540){\hspace*{\Width}\raisebox{\Height}{$x$}}%
-%
-%
-\settowidth{\Width}{$y$}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{$y$}\settodepth{\Depth}{$y$}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(2.4854,-2.2142){\hspace*{\Width}\raisebox{\Height}{$y$}}%
-%
-%
-\settowidth{\Width}{$z$}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{$z$}\settodepth{\Depth}{$z$}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(0.0000,4.5961){\hspace*{\Width}\raisebox{\Height}{$z$}}%
-%
-%
-\special{pa 1043 -262}\special{pa -1043 262}%
-\special{fp}%
-\special{pa -554 -493}\special{pa 554 493}%
-\special{fp}%
-\special{pa 0 593}\special{pa 0 -1041}%
-\special{fp}%
-\special{pa 0 -833}\special{pa -17 -827}\special{pa -35 -818}\special{pa -52 -807}%
-\special{pa -70 -792}\special{pa -87 -775}\special{pa -104 -754}\special{pa -122 -731}%
-\special{pa -139 -705}\special{pa -156 -676}\special{pa -174 -644}\special{pa -191 -610}%
-\special{pa -209 -572}\special{pa -226 -532}\special{pa -243 -488}\special{pa -261 -442}%
-\special{pa -278 -393}\special{pa -296 -341}\special{pa -313 -286}\special{pa -330 -228}%
-\special{pa -348 -167}\special{pa -365 -104}\special{pa -383 -37}\special{pa -400 32}%
-\special{pa -417 105}%
-\special{fp}%
-\special{pa 0 -833}\special{pa -14 -825}\special{pa -27 -813}\special{pa -41 -800}%
-\special{pa -55 -783}\special{pa -68 -763}\special{pa -82 -740}\special{pa -96 -715}%
-\special{pa -109 -687}\special{pa -123 -655}\special{pa -137 -621}\special{pa -151 -584}%
-\special{pa -164 -544}\special{pa -178 -501}\special{pa -192 -456}\special{pa -205 -407}%
-\special{pa -219 -356}\special{pa -233 -301}\special{pa -246 -244}\special{pa -260 -184}%
-\special{pa -274 -121}\special{pa -287 -55}\special{pa -301 14}\special{pa -315 86}%
-\special{pa -328 161}%
-\special{fp}%
-\special{pa 0 -833}\special{pa -9 -823}\special{pa -17 -810}\special{pa -26 -795}%
-\special{pa -35 -776}\special{pa -43 -755}\special{pa -52 -730}\special{pa -61 -703}%
-\special{pa -69 -673}\special{pa -78 -640}\special{pa -86 -605}\special{pa -95 -566}%
-\special{pa -104 -524}\special{pa -112 -480}\special{pa -121 -432}\special{pa -130 -382}%
-\special{pa -138 -329}\special{pa -147 -273}\special{pa -156 -214}\special{pa -164 -152}%
-\special{pa -173 -87}\special{pa -182 -20}\special{pa -190 51}\special{pa -199 124}%
-\special{pa -207 201}%
-\special{fp}%
-\special{pa 0 -833}\special{pa -3 -822}\special{pa -6 -808}\special{pa -8 -792}\special{pa -11 -773}%
-\special{pa -14 -750}\special{pa -17 -725}\special{pa -19 -697}\special{pa -22 -666}%
-\special{pa -25 -633}\special{pa -28 -596}\special{pa -30 -556}\special{pa -33 -514}%
-\special{pa -36 -469}\special{pa -39 -420}\special{pa -41 -369}\special{pa -44 -315}%
-\special{pa -47 -258}\special{pa -50 -198}\special{pa -52 -136}\special{pa -55 -70}%
-\special{pa -58 -2}\special{pa -61 70}\special{pa -63 144}\special{pa -66 221}%
-\special{fp}%
-\special{pa 0 -833}\special{pa 3 -822}\special{pa 7 -809}\special{pa 10 -792}\special{pa 14 -773}%
-\special{pa 17 -751}\special{pa 20 -726}\special{pa 24 -698}\special{pa 27 -667}\special{pa 31 -633}%
-\special{pa 34 -596}\special{pa 37 -557}\special{pa 41 -515}\special{pa 44 -469}\special{pa 48 -421}%
-\special{pa 51 -370}\special{pa 54 -316}\special{pa 58 -259}\special{pa 61 -199}\special{pa 65 -137}%
-\special{pa 68 -71}\special{pa 71 -3}\special{pa 75 69}\special{pa 78 143}\special{pa 82 220}%
-\special{fp}%
-\special{pa 0 -833}\special{pa 9 -823}\special{pa 18 -810}\special{pa 28 -795}\special{pa 37 -777}%
-\special{pa 46 -755}\special{pa 55 -731}\special{pa 65 -704}\special{pa 74 -674}\special{pa 83 -642}%
-\special{pa 92 -606}\special{pa 101 -567}\special{pa 111 -526}\special{pa 120 -481}%
-\special{pa 129 -434}\special{pa 138 -384}\special{pa 148 -331}\special{pa 157 -275}%
-\special{pa 166 -216}\special{pa 175 -155}\special{pa 185 -90}\special{pa 194 -23}%
-\special{pa 203 48}\special{pa 212 121}\special{pa 221 197}%
-\special{fp}%
-\special{pa 0 -833}\special{pa 14 -825}\special{pa 28 -814}\special{pa 42 -800}\special{pa 57 -784}%
-\special{pa 71 -764}\special{pa 85 -742}\special{pa 99 -717}\special{pa 113 -688}%
-\special{pa 127 -657}\special{pa 141 -623}\special{pa 156 -587}\special{pa 170 -547}%
-\special{pa 184 -504}\special{pa 198 -459}\special{pa 212 -410}\special{pa 226 -359}%
-\special{pa 241 -305}\special{pa 255 -248}\special{pa 269 -188}\special{pa 283 -125}%
-\special{pa 297 -59}\special{pa 311 9}\special{pa 325 81}\special{pa 340 155}%
-\special{fp}%
-\special{pa 0 -833}\special{pa 18 -827}\special{pa 35 -819}\special{pa 53 -807}\special{pa 71 -793}%
-\special{pa 88 -776}\special{pa 106 -756}\special{pa 124 -733}\special{pa 141 -707}%
-\special{pa 159 -679}\special{pa 177 -647}\special{pa 195 -613}\special{pa 212 -575}%
-\special{pa 230 -535}\special{pa 248 -492}\special{pa 265 -446}\special{pa 283 -397}%
-\special{pa 301 -345}\special{pa 318 -291}\special{pa 336 -233}\special{pa 354 -173}%
-\special{pa 371 -109}\special{pa 389 -43}\special{pa 407 26}\special{pa 424 98}%
-\special{fp}%
-\special{pa 0 -833}\special{pa 19 -830}\special{pa 39 -824}\special{pa 58 -816}\special{pa 78 -804}%
-\special{pa 97 -790}\special{pa 117 -773}\special{pa 136 -753}\special{pa 156 -730}%
-\special{pa 175 -704}\special{pa 195 -675}\special{pa 214 -643}\special{pa 234 -609}%
-\special{pa 253 -571}\special{pa 273 -531}\special{pa 292 -488}\special{pa 312 -442}%
-\special{pa 331 -393}\special{pa 351 -341}\special{pa 370 -286}\special{pa 390 -228}%
-\special{pa 409 -168}\special{pa 429 -104}\special{pa 448 -38}\special{pa 468 31}%
-\special{fp}%
-\special{pa 0 -833}\special{pa 19 -833}\special{pa 39 -830}\special{pa 58 -824}\special{pa 78 -816}%
-\special{pa 97 -805}\special{pa 116 -790}\special{pa 136 -773}\special{pa 155 -753}%
-\special{pa 175 -730}\special{pa 194 -704}\special{pa 213 -675}\special{pa 233 -644}%
-\special{pa 252 -609}\special{pa 271 -572}\special{pa 291 -532}\special{pa 310 -488}%
-\special{pa 330 -442}\special{pa 349 -393}\special{pa 368 -341}\special{pa 388 -287}%
-\special{pa 407 -229}\special{pa 427 -168}\special{pa 446 -105}\special{pa 465 -39}%
-\special{fp}%
-\special{pa 0 -833}\special{pa 17 -836}\special{pa 35 -836}\special{pa 52 -833}\special{pa 70 -827}%
-\special{pa 87 -818}\special{pa 104 -807}\special{pa 122 -792}\special{pa 139 -775}%
-\special{pa 156 -755}\special{pa 174 -732}\special{pa 191 -706}\special{pa 209 -677}%
-\special{pa 226 -645}\special{pa 243 -610}\special{pa 261 -573}\special{pa 278 -532}%
-\special{pa 296 -489}\special{pa 313 -443}\special{pa 330 -394}\special{pa 348 -342}%
-\special{pa 365 -287}\special{pa 383 -229}\special{pa 400 -168}\special{pa 417 -105}%
-\special{fp}%
-\special{pa 0 -833}\special{pa 14 -838}\special{pa 27 -840}\special{pa 41 -840}\special{pa 55 -836}%
-\special{pa 68 -830}\special{pa 82 -821}\special{pa 96 -809}\special{pa 109 -794}%
-\special{pa 123 -776}\special{pa 137 -755}\special{pa 151 -731}\special{pa 164 -705}%
-\special{pa 178 -675}\special{pa 192 -643}\special{pa 205 -608}\special{pa 219 -570}%
-\special{pa 233 -529}\special{pa 246 -485}\special{pa 260 -438}\special{pa 274 -388}%
-\special{pa 287 -336}\special{pa 301 -280}\special{pa 315 -222}\special{pa 328 -161}%
-\special{fp}%
-\special{pa 0 -833}\special{pa 9 -840}\special{pa 17 -844}\special{pa 26 -845}\special{pa 35 -843}%
-\special{pa 43 -838}\special{pa 52 -831}\special{pa 61 -820}\special{pa 69 -807}\special{pa 78 -791}%
-\special{pa 86 -772}\special{pa 95 -750}\special{pa 104 -725}\special{pa 112 -697}%
-\special{pa 121 -666}\special{pa 130 -633}\special{pa 138 -596}\special{pa 147 -557}%
-\special{pa 156 -515}\special{pa 164 -470}\special{pa 173 -422}\special{pa 182 -371}%
-\special{pa 190 -317}\special{pa 199 -260}\special{pa 207 -201}%
-\special{fp}%
-\special{pa 0 -833}\special{pa 3 -840}\special{pa 6 -845}\special{pa 8 -847}\special{pa 11 -846}%
-\special{pa 14 -843}\special{pa 17 -836}\special{pa 19 -826}\special{pa 22 -814}\special{pa 25 -798}%
-\special{pa 28 -780}\special{pa 30 -759}\special{pa 33 -735}\special{pa 36 -708}\special{pa 39 -678}%
-\special{pa 41 -646}\special{pa 44 -610}\special{pa 47 -572}\special{pa 50 -530}\special{pa 52 -486}%
-\special{pa 55 -439}\special{pa 58 -389}\special{pa 61 -336}\special{pa 63 -280}\special{pa 66 -221}%
-\special{fp}%
-\special{pa 0 -833}\special{pa -3 -840}\special{pa -7 -845}\special{pa -10 -847}\special{pa -14 -846}%
-\special{pa -17 -842}\special{pa -20 -836}\special{pa -24 -826}\special{pa -27 -813}%
-\special{pa -31 -798}\special{pa -34 -780}\special{pa -37 -759}\special{pa -41 -734}%
-\special{pa -44 -707}\special{pa -48 -678}\special{pa -51 -645}\special{pa -54 -609}%
-\special{pa -58 -571}\special{pa -61 -529}\special{pa -65 -485}\special{pa -68 -438}%
-\special{pa -71 -388}\special{pa -75 -335}\special{pa -78 -279}\special{pa -82 -220}%
-\special{fp}%
-\special{pa 0 -833}\special{pa -9 -839}\special{pa -18 -843}\special{pa -28 -844}%
-\special{pa -37 -842}\special{pa -46 -838}\special{pa -55 -830}\special{pa -65 -819}%
-\special{pa -74 -806}\special{pa -83 -790}\special{pa -92 -770}\special{pa -101 -748}%
-\special{pa -111 -723}\special{pa -120 -695}\special{pa -129 -664}\special{pa -138 -631}%
-\special{pa -148 -594}\special{pa -157 -555}\special{pa -166 -512}\special{pa -175 -467}%
-\special{pa -185 -419}\special{pa -194 -368}\special{pa -203 -314}\special{pa -212 -257}%
-\special{pa -221 -197}%
-\special{fp}%
-\special{pa 0 -833}\special{pa -14 -838}\special{pa -28 -840}\special{pa -42 -839}%
-\special{pa -57 -835}\special{pa -71 -829}\special{pa -85 -819}\special{pa -99 -807}%
-\special{pa -113 -792}\special{pa -127 -774}\special{pa -141 -753}\special{pa -156 -729}%
-\special{pa -170 -702}\special{pa -184 -672}\special{pa -198 -640}\special{pa -212 -604}%
-\special{pa -226 -566}\special{pa -241 -525}\special{pa -255 -481}\special{pa -269 -434}%
-\special{pa -283 -384}\special{pa -297 -331}\special{pa -311 -275}\special{pa -325 -217}%
-\special{pa -340 -155}%
-\special{fp}%
-\special{pa 0 -833}\special{pa -18 -835}\special{pa -35 -835}\special{pa -53 -832}%
-\special{pa -71 -826}\special{pa -88 -817}\special{pa -106 -805}\special{pa -124 -790}%
-\special{pa -141 -773}\special{pa -159 -752}\special{pa -177 -729}\special{pa -195 -703}%
-\special{pa -212 -674}\special{pa -230 -641}\special{pa -248 -607}\special{pa -265 -569}%
-\special{pa -283 -528}\special{pa -301 -484}\special{pa -318 -438}\special{pa -336 -388}%
-\special{pa -354 -336}\special{pa -371 -281}\special{pa -389 -223}\special{pa -407 -162}%
-\special{pa -424 -98}%
-\special{fp}%
-\special{pa 0 -833}\special{pa -19 -833}\special{pa -39 -829}\special{pa -58 -824}%
-\special{pa -78 -815}\special{pa -97 -803}\special{pa -117 -788}\special{pa -136 -771}%
-\special{pa -156 -751}\special{pa -175 -727}\special{pa -195 -701}\special{pa -214 -672}%
-\special{pa -234 -640}\special{pa -253 -605}\special{pa -273 -568}\special{pa -292 -527}%
-\special{pa -312 -483}\special{pa -331 -437}\special{pa -351 -388}\special{pa -370 -336}%
-\special{pa -390 -280}\special{pa -409 -223}\special{pa -429 -162}\special{pa -448 -98}%
-\special{pa -468 -31}%
-\special{fp}%
-\special{pa 0 -833}\special{pa -19 -830}\special{pa -39 -824}\special{pa -58 -815}%
-\special{pa -78 -803}\special{pa -97 -788}\special{pa -116 -771}\special{pa -136 -751}%
-\special{pa -155 -727}\special{pa -175 -701}\special{pa -194 -672}\special{pa -213 -640}%
-\special{pa -233 -605}\special{pa -252 -567}\special{pa -271 -527}\special{pa -291 -483}%
-\special{pa -310 -437}\special{pa -330 -388}\special{pa -349 -335}\special{pa -368 -280}%
-\special{pa -388 -222}\special{pa -407 -161}\special{pa -427 -98}\special{pa -446 -31}%
-\special{pa -465 39}%
-\special{fp}%
-\special{pa 0 -833}\special{pa -17 -827}\special{pa -35 -818}\special{pa -52 -807}%
-\special{pa -70 -792}\special{pa -87 -775}\special{pa -104 -754}\special{pa -122 -731}%
-\special{pa -139 -705}\special{pa -156 -676}\special{pa -174 -644}\special{pa -191 -610}%
-\special{pa -209 -572}\special{pa -226 -532}\special{pa -243 -488}\special{pa -261 -442}%
-\special{pa -278 -393}\special{pa -296 -341}\special{pa -313 -286}\special{pa -330 -228}%
-\special{pa -348 -167}\special{pa -365 -104}\special{pa -383 -37}\special{pa -400 32}%
-\special{pa -417 105}%
-\special{fp}%
-\special{pa 3 -835}\special{pa -3 -835}\special{pa -3 -830}\special{pa 3 -830}\special{pa 3 -835}%
-\special{sh 1}\special{fp}%
-\special{pa -21 -825}\special{pa -17 -823}\special{pa -13 -821}\special{pa -7 -820}%
-\special{pa -1 -819}\special{pa 5 -820}\special{pa 11 -821}\special{pa 16 -822}\special{pa 20 -825}%
-\special{pa 23 -827}\special{pa 24 -830}\special{pa 23 -833}\special{pa 21 -836}\special{pa 17 -838}%
-\special{pa 13 -840}\special{pa 7 -841}\special{pa 1 -842}\special{pa -5 -841}\special{pa -11 -840}%
-\special{pa -16 -839}\special{pa -20 -836}\special{pa -23 -834}\special{pa -24 -831}%
-\special{pa -23 -828}\special{pa -21 -825}%
-\special{fp}%
-\special{pa -42 -814}\special{pa -35 -809}\special{pa -25 -805}\special{pa -14 -803}%
-\special{pa -2 -802}\special{pa 11 -803}\special{pa 22 -805}\special{pa 32 -808}\special{pa 40 -812}%
-\special{pa 45 -818}\special{pa 47 -824}\special{pa 46 -829}\special{pa 42 -835}\special{pa 35 -840}%
-\special{pa 25 -843}\special{pa 14 -846}\special{pa 2 -847}\special{pa -11 -846}\special{pa -22 -844}%
-\special{pa -32 -841}\special{pa -40 -836}\special{pa -45 -831}\special{pa -47 -825}%
-\special{pa -46 -819}\special{pa -42 -814}%
-\special{fp}%
-\special{pa -63 -798}\special{pa -52 -791}\special{pa -38 -786}\special{pa -21 -782}%
-\special{pa -3 -780}\special{pa 16 -781}\special{pa 33 -784}\special{pa 48 -789}\special{pa 60 -796}%
-\special{pa 68 -804}\special{pa 71 -813}\special{pa 69 -821}\special{pa 63 -830}\special{pa 52 -837}%
-\special{pa 38 -842}\special{pa 21 -846}\special{pa 3 -847}\special{pa -16 -847}\special{pa -33 -844}%
-\special{pa -48 -838}\special{pa -60 -832}\special{pa -68 -824}\special{pa -71 -815}%
-\special{pa -69 -806}\special{pa -63 -798}%
-\special{fp}%
-\special{pa -83 -778}\special{pa -69 -769}\special{pa -50 -761}\special{pa -28 -757}%
-\special{pa -3 -755}\special{pa 21 -756}\special{pa 44 -760}\special{pa 64 -767}\special{pa 80 -776}%
-\special{pa 90 -786}\special{pa 94 -798}\special{pa 92 -809}\special{pa 83 -820}\special{pa 69 -830}%
-\special{pa 50 -837}\special{pa 28 -842}\special{pa 3 -844}\special{pa -21 -843}\special{pa -44 -839}%
-\special{pa -64 -832}\special{pa -80 -823}\special{pa -90 -812}\special{pa -94 -801}%
-\special{pa -92 -789}\special{pa -83 -778}%
-\special{fp}%
-\special{pa -104 -754}\special{pa -86 -743}\special{pa -63 -733}\special{pa -35 -727}%
-\special{pa -4 -725}\special{pa 26 -726}\special{pa 55 -731}\special{pa 80 -740}\special{pa 100 -751}%
-\special{pa 113 -764}\special{pa 118 -779}\special{pa 115 -793}\special{pa 104 -807}%
-\special{pa 86 -819}\special{pa 63 -828}\special{pa 35 -834}\special{pa 4 -836}\special{pa -26 -835}%
-\special{pa -55 -830}\special{pa -80 -821}\special{pa -100 -810}\special{pa -113 -797}%
-\special{pa -118 -783}\special{pa -115 -768}\special{pa -104 -754}%
-\special{fp}%
-\special{pa -125 -726}\special{pa -104 -712}\special{pa -75 -701}\special{pa -42 -694}%
-\special{pa -5 -691}\special{pa 32 -692}\special{pa 66 -699}\special{pa 97 -709}\special{pa 120 -722}%
-\special{pa 136 -738}\special{pa 142 -755}\special{pa 138 -773}\special{pa 125 -789}%
-\special{pa 104 -803}\special{pa 75 -815}\special{pa 42 -822}\special{pa 5 -825}\special{pa -32 -823}%
-\special{pa -66 -817}\special{pa -97 -807}\special{pa -120 -793}\special{pa -136 -777}%
-\special{pa -142 -760}\special{pa -138 -743}\special{pa -125 -726}%
-\special{fp}%
-\special{pa -146 -694}\special{pa -121 -677}\special{pa -88 -664}\special{pa -48 -656}%
-\special{pa -6 -653}\special{pa 37 -654}\special{pa 78 -662}\special{pa 113 -673}%
-\special{pa 140 -689}\special{pa 158 -708}\special{pa 165 -728}\special{pa 161 -748}%
-\special{pa 146 -767}\special{pa 121 -784}\special{pa 88 -797}\special{pa 48 -805}%
-\special{pa 6 -809}\special{pa -37 -807}\special{pa -78 -800}\special{pa -113 -788}%
-\special{pa -140 -772}\special{pa -158 -754}\special{pa -165 -733}\special{pa -161 -713}%
-\special{pa -146 -694}%
-\special{fp}%
-\special{pa -167 -658}\special{pa -138 -639}\special{pa -100 -624}\special{pa -55 -614}%
-\special{pa -7 -610}\special{pa 42 -612}\special{pa 89 -621}\special{pa 129 -634}%
-\special{pa 160 -652}\special{pa 181 -673}\special{pa 189 -696}\special{pa 184 -719}%
-\special{pa 167 -741}\special{pa 138 -760}\special{pa 100 -775}\special{pa 55 -785}%
-\special{pa 7 -789}\special{pa -42 -786}\special{pa -89 -778}\special{pa -129 -765}%
-\special{pa -160 -747}\special{pa -181 -726}\special{pa -189 -703}\special{pa -184 -679}%
-\special{pa -167 -658}%
-\special{fp}%
-\special{pa -188 -617}\special{pa -156 -596}\special{pa -113 -579}\special{pa -62 -568}%
-\special{pa -8 -564}\special{pa 48 -566}\special{pa 100 -575}\special{pa 145 -590}%
-\special{pa 180 -611}\special{pa 203 -635}\special{pa 212 -660}\special{pa 207 -687}%
-\special{pa 188 -711}\special{pa 156 -733}\special{pa 113 -749}\special{pa 62 -760}%
-\special{pa 8 -764}\special{pa -48 -762}\special{pa -100 -753}\special{pa -145 -738}%
-\special{pa -180 -717}\special{pa -203 -694}\special{pa -212 -668}\special{pa -207 -642}%
-\special{pa -188 -617}%
-\special{fp}%
-\special{pa -209 -572}\special{pa -173 -548}\special{pa -125 -530}\special{pa -69 -518}%
-\special{pa -8 -513}\special{pa 53 -516}\special{pa 111 -526}\special{pa 161 -543}%
-\special{pa 200 -565}\special{pa 226 -592}\special{pa 236 -620}\special{pa 230 -650}%
-\special{pa 209 -677}\special{pa 173 -701}\special{pa 125 -719}\special{pa 69 -731}%
-\special{pa 8 -736}\special{pa -53 -733}\special{pa -111 -723}\special{pa -161 -706}%
-\special{pa -200 -684}\special{pa -226 -657}\special{pa -236 -628}\special{pa -230 -599}%
-\special{pa -209 -572}%
-\special{fp}%
-\special{pa -230 -523}\special{pa -190 -497}\special{pa -138 -477}\special{pa -76 -463}%
-\special{pa -9 -458}\special{pa 58 -461}\special{pa 122 -472}\special{pa 177 -491}%
-\special{pa 220 -516}\special{pa 248 -545}\special{pa 260 -576}\special{pa 253 -608}%
-\special{pa 230 -638}\special{pa 190 -664}\special{pa 138 -685}\special{pa 76 -698}%
-\special{pa 9 -704}\special{pa -58 -700}\special{pa -122 -689}\special{pa -177 -671}%
-\special{pa -220 -646}\special{pa -248 -617}\special{pa -260 -585}\special{pa -253 -553}%
-\special{pa -230 -523}%
-\special{fp}%
-\special{pa -250 -470}\special{pa -207 -442}\special{pa -150 -419}\special{pa -83 -405}%
-\special{pa -10 -399}\special{pa 64 -402}\special{pa 133 -415}\special{pa 193 -435}%
-\special{pa 240 -462}\special{pa 271 -494}\special{pa 283 -528}\special{pa 276 -563}%
-\special{pa 250 -596}\special{pa 207 -624}\special{pa 150 -646}\special{pa 83 -661}%
-\special{pa 10 -667}\special{pa -64 -663}\special{pa -133 -651}\special{pa -193 -631}%
-\special{pa -240 -604}\special{pa -271 -572}\special{pa -283 -538}\special{pa -276 -503}%
-\special{pa -250 -470}%
-\special{fp}%
-\special{pa -271 -413}\special{pa -225 -382}\special{pa -163 -358}\special{pa -90 -342}%
-\special{pa -11 -336}\special{pa 69 -339}\special{pa 144 -353}\special{pa 209 -375}%
-\special{pa 260 -404}\special{pa 294 -438}\special{pa 307 -476}\special{pa 299 -513}%
-\special{pa 271 -549}\special{pa 225 -580}\special{pa 163 -604}\special{pa 90 -620}%
-\special{pa 11 -626}\special{pa -69 -622}\special{pa -144 -609}\special{pa -209 -587}%
-\special{pa -260 -558}\special{pa -294 -523}\special{pa -307 -486}\special{pa -299 -448}%
-\special{pa -271 -413}%
-\special{fp}%
-\special{pa -292 -351}\special{pa -242 -318}\special{pa -175 -292}\special{pa -97 -275}%
-\special{pa -12 -268}\special{pa 74 -272}\special{pa 155 -287}\special{pa 225 -310}%
-\special{pa 280 -342}\special{pa 316 -379}\special{pa 330 -419}\special{pa 322 -460}%
-\special{pa 292 -498}\special{pa 242 -531}\special{pa 175 -557}\special{pa 97 -574}%
-\special{pa 12 -581}\special{pa -74 -577}\special{pa -155 -563}\special{pa -225 -539}%
-\special{pa -280 -508}\special{pa -316 -470}\special{pa -330 -430}\special{pa -322 -390}%
-\special{pa -292 -351}%
-\special{fp}%
-\special{pa -313 -286}\special{pa -259 -250}\special{pa -188 -222}\special{pa -104 -204}%
-\special{pa -13 -197}\special{pa 79 -201}\special{pa 166 -216}\special{pa 241 -242}%
-\special{pa 300 -275}\special{pa 339 -315}\special{pa 354 -358}\special{pa 345 -402}%
-\special{pa 313 -443}\special{pa 259 -478}\special{pa 188 -506}\special{pa 104 -524}%
-\special{pa 13 -532}\special{pa -79 -528}\special{pa -166 -512}\special{pa -241 -487}%
-\special{pa -300 -453}\special{pa -339 -413}\special{pa -354 -370}\special{pa -345 -327}%
-\special{pa -313 -286}%
-\special{fp}%
-\special{pa -334 -216}\special{pa -277 -178}\special{pa -201 -148}\special{pa -111 -129}%
-\special{pa -14 -121}\special{pa 85 -126}\special{pa 177 -142}\special{pa 258 -169}%
-\special{pa 320 -205}\special{pa 361 -247}\special{pa 378 -293}\special{pa 368 -340}%
-\special{pa 334 -383}\special{pa 277 -421}\special{pa 201 -451}\special{pa 111 -471}%
-\special{pa 14 -478}\special{pa -85 -474}\special{pa -177 -458}\special{pa -258 -431}%
-\special{pa -320 -395}\special{pa -361 -352}\special{pa -378 -306}\special{pa -368 -260}%
-\special{pa -334 -216}%
-\special{fp}%
-\special{pa -355 -142}\special{pa -294 -102}\special{pa -213 -70}\special{pa -118 -50}%
-\special{pa -14 -41}\special{pa 90 -46}\special{pa 188 -63}\special{pa 274 -92}\special{pa 340 -130}%
-\special{pa 384 -175}\special{pa 401 -224}\special{pa 391 -274}\special{pa 355 -320}%
-\special{pa 294 -360}\special{pa 213 -392}\special{pa 118 -413}\special{pa 14 -421}%
-\special{pa -90 -416}\special{pa -188 -399}\special{pa -274 -370}\special{pa -340 -332}%
-\special{pa -384 -287}\special{pa -401 -238}\special{pa -391 -189}\special{pa -355 -142}%
-\special{fp}%
-\special{pa -376 -64}\special{pa -311 -21}\special{pa -226 12}\special{pa -125 34}%
-\special{pa -15 43}\special{pa 95 38}\special{pa 199 19}\special{pa 290 -11}\special{pa 360 -52}%
-\special{pa 407 -99}\special{pa 425 -151}\special{pa 414 -203}\special{pa 376 -252}%
-\special{pa 311 -295}\special{pa 226 -329}\special{pa 125 -350}\special{pa 15 -359}%
-\special{pa -95 -354}\special{pa -199 -336}\special{pa -290 -305}\special{pa -360 -265}%
-\special{pa -407 -217}\special{pa -425 -165}\special{pa -414 -113}\special{pa -376 -64}%
-\special{fp}%
-\special{pa -396 18}\special{pa -329 63}\special{pa -238 99}\special{pa -132 122}%
-\special{pa -16 131}\special{pa 101 126}\special{pa 210 106}\special{pa 306 74}\special{pa 380 31}%
-\special{pa 429 -19}\special{pa 449 -74}\special{pa 437 -129}\special{pa 396 -181}%
-\special{pa 329 -226}\special{pa 238 -261}\special{pa 132 -284}\special{pa 16 -293}%
-\special{pa -101 -288}\special{pa -210 -269}\special{pa -306 -236}\special{pa -380 -194}%
-\special{pa -429 -143}\special{pa -449 -89}\special{pa -437 -34}\special{pa -396 18}%
-\special{fp}%
-\special{pa -417 105}\special{pa -346 152}\special{pa -251 189}\special{pa -139 214}%
-\special{pa -17 223}\special{pa 106 218}\special{pa 221 197}\special{pa 322 163}\special{pa 400 119}%
-\special{pa 452 65}\special{pa 472 8}\special{pa 460 -50}\special{pa 417 -105}\special{pa 346 -152}%
-\special{pa 251 -189}\special{pa 139 -214}\special{pa 17 -223}\special{pa -106 -218}%
-\special{pa -221 -197}\special{pa -322 -163}\special{pa -400 -119}\special{pa -452 -65}%
-\special{pa -472 -8}\special{pa -460 50}\special{pa -417 105}%
-\special{fp}%
-\end{picture}}% \ No newline at end of file
diff --git a/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig3d/partcrv3d1.tex b/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig3d/partcrv3d1.tex
deleted file mode 100644
index fcff4da5..00000000
--- a/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig3d/partcrv3d1.tex
+++ /dev/null
@@ -1,78 +0,0 @@
-%%% /Users/Hannya/ketcindy/ketwork/template.tex 2016-8-11 15:44
-%%% template.sce 2016-8-11 15:44
-{\unitlength=8mm%
-\begin{picture}%
-( 8.39000, 6.29000)( -4.00000, -2.00000)%
-\special{pn 8}%
-%
-\settowidth{\Width}{$x$}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{$x$}\settodepth{\Depth}{$x$}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(-3.3919,-1.2682){\hspace*{\Width}\raisebox{\Height}{$x$}}%
-%
-%
-\settowidth{\Width}{$y$}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{$y$}\settodepth{\Depth}{$y$}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(4.0140,-1.0567){\hspace*{\Width}\raisebox{\Height}{$y$}}%
-%
-%
-\settowidth{\Width}{$z$}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{$z$}\settodepth{\Depth}{$z$}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(0.0000,3.9880){\hspace*{\Width}\raisebox{\Height}{$z$}}%
-%
-%
-\special{pa 1012 -378}\special{pa -1012 378}%
-\special{fp}%
-\special{pa -1206 -318}\special{pa 1206 318}%
-\special{fp}%
-\special{pa 0 630}\special{pa 0 -1196}%
-\special{fp}%
-\special{pa -405 151}\special{pa -341 159}\special{pa -271 163}\special{pa -197 165}%
-\special{pa -119 164}\special{pa -40 159}\special{pa 40 152}\special{pa 119 141}\special{pa 197 127}%
-\special{pa 271 110}\special{pa 341 90}\special{pa 405 68}\special{pa 463 43}\special{pa 513 16}%
-\special{pa 555 -13}\special{pa 588 -43}\special{pa 612 -75}\special{pa 626 -107}%
-\special{pa 630 -140}\special{pa 624 -172}\special{pa 607 -205}\special{pa 581 -236}%
-\special{pa 546 -266}\special{pa 501 -294}\special{pa 449 -321}\special{pa 389 -345}%
-\special{pa 324 -367}\special{pa 253 -386}\special{pa 177 -402}\special{pa 100 -415}%
-\special{pa 20 -425}\special{pa -60 -432}\special{pa -139 -436}\special{pa -215 -436}%
-\special{pa -289 -434}\special{pa -357 -429}\special{pa -420 -421}\special{pa -476 -410}%
-\special{pa -524 -398}\special{pa -564 -384}\special{pa -595 -368}\special{pa -617 -352}%
-\special{pa -628 -335}\special{pa -629 -317}\special{pa -620 -300}\special{pa -602 -283}%
-\special{pa -573 -267}\special{pa -535 -253}\special{pa -489 -240}\special{pa -435 -229}%
-\special{pa -373 -220}\special{pa -306 -214}\special{pa -234 -211}\special{pa -158 -211}%
-\special{pa -80 -214}\special{pa 0 -220}\special{pa 80 -229}\special{pa 158 -241}%
-\special{pa 234 -257}\special{pa 306 -275}\special{pa 373 -296}\special{pa 435 -320}%
-\special{pa 489 -346}\special{pa 535 -374}\special{pa 573 -404}\special{pa 602 -435}%
-\special{pa 620 -467}\special{pa 629 -499}\special{pa 628 -532}\special{pa 617 -564}%
-\special{pa 595 -596}\special{pa 564 -627}\special{pa 524 -656}\special{pa 476 -684}%
-\special{pa 420 -709}\special{pa 357 -732}\special{pa 289 -753}\special{pa 215 -770}%
-\special{pa 139 -785}\special{pa 60 -797}\special{pa -20 -805}\special{pa -100 -810}%
-\special{pa -177 -812}\special{pa -253 -811}\special{pa -324 -807}\special{pa -389 -801}%
-\special{pa -449 -792}\special{pa -501 -780}\special{pa -546 -767}\special{pa -581 -752}%
-\special{pa -607 -736}\special{pa -624 -719}\special{pa -630 -702}\special{pa -626 -684}%
-\special{pa -612 -667}\special{pa -588 -651}\special{pa -555 -636}\special{pa -513 -622}%
-\special{pa -463 -610}\special{pa -405 -600}%
-\special{fp}%
-\special{pn 24}%
-\special{pa -265 -436}\special{pa -333 -431}\special{pa -398 -422}\special{pa -456 -415}%
-\special{pa -509 -404}\special{pa -548 -390}\special{pa -584 -376}\special{pa -609 -359}%
-\special{pa -624 -343}\special{pa -629 -325}\special{pa -626 -308}\special{pa -613 -290}%
-\special{pa -586 -275}\special{pa -555 -259}\special{pa -513 -247}\special{pa -461 -234}%
-\special{pa -405 -225}\special{pa -341 -217}\special{pa -272 -213}\special{pa -198 -210}%
-\special{pa -123 -213}\special{pa -43 -215}\special{pa 35 -224}\special{pa 114 -234}%
-\special{pa 191 -248}\special{pa 265 -263}\special{pa 333 -284}\special{pa 398 -305}%
-\special{pa 456 -330}\special{pa 509 -355}\special{pa 548 -385}\special{pa 584 -414}%
-\special{pa 609 -446}\special{pa 624 -476}\special{pa 629 -510}\special{pa 626 -541}%
-\special{pa 613 -574}\special{pa 586 -604}\special{pa 572 -621}%
-\special{fp}%
-\special{pn 8}%
-\settowidth{\Width}{C}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{C}\settodepth{\Depth}{C}\setlength{\Height}{\Depth}%
-\put(-0.8436,1.5307){\hspace*{\Width}\raisebox{\Height}{C}}%
-%
-%
-\settowidth{\Width}{D}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{D}\settodepth{\Depth}{D}\setlength{\Height}{\Depth}%
-\put(1.8112,2.1196){\hspace*{\Width}\raisebox{\Height}{D}}%
-%
-%
-\end{picture}}% \ No newline at end of file
diff --git a/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig3d/partcrv3d2.tex b/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig3d/partcrv3d2.tex
deleted file mode 100644
index 43f90bb4..00000000
--- a/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig3d/partcrv3d2.tex
+++ /dev/null
@@ -1,129 +0,0 @@
-%%% /Users/Hannya/ketcindy/ketwork/template.tex 2016-8-20 11:2
-%%% template.sce 2016-8-20 11:2
-{\unitlength=8mm%
-\begin{picture}%
-( 7.89000, 5.95000)( -3.99000, -1.66000)%
-\special{pn 8}%
-%
-\settowidth{\Width}{$x$}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{$x$}\settodepth{\Depth}{$x$}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(-2.7443,-1.2386){\hspace*{\Width}\raisebox{\Height}{$x$}}%
-%
-%
-\settowidth{\Width}{$y$}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{$y$}\settodepth{\Depth}{$y$}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(3.2452,-1.0313){\hspace*{\Width}\raisebox{\Height}{$y$}}%
-%
-%
-\settowidth{\Width}{$z$}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{$z$}\settodepth{\Depth}{$z$}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(0.0000,3.8920){\hspace*{\Width}\raisebox{\Height}{$z$}}%
-%
-%
-\special{pa 1012 -457}\special{pa -810 366}%
-\special{fp}%
-\special{pa -1257 -399}\special{pa 965 307}%
-\special{fp}%
-\special{pa 0 523}\special{pa 0 -1166}%
-\special{fp}%
-\special{pa -752 313}\special{pa -810 366}\special{pa -732 357}\special{pa -742 335}%
-\special{pa -752 313}\special{sh 1}\special{ip}%
-\special{pn 1}%
-\special{pa -752 313}\special{pa -810 366}\special{pa -732 357}\special{pa -742 335}%
-\special{pa -752 313}\special{pa -810 366}%
-\special{fp}%
-\special{pn 8}%
-\special{pa 886 307}\special{pa 965 307}\special{pa 901 261}\special{pa 894 284}\special{pa 886 307}%
-\special{sh 1}\special{ip}%
-\special{pn 1}%
-\special{pa 886 307}\special{pa 965 307}\special{pa 901 261}\special{pa 894 284}\special{pa 886 307}%
-\special{pa 965 307}%
-\special{fp}%
-\special{pn 8}%
-\special{pa 24 -1091}\special{pa 0 -1166}\special{pa -24 -1091}\special{pa 0 -1091}%
-\special{pa 24 -1091}\special{sh 1}\special{ip}%
-\special{pn 1}%
-\special{pa 24 -1091}\special{pa 0 -1166}\special{pa -24 -1091}\special{pa 0 -1091}%
-\special{pa 24 -1091}\special{pa 0 -1166}%
-\special{fp}%
-\special{pn 8}%
-\settowidth{\Width}{O}\setlength{\Width}{-1\Width}%
-\settoheight{\Height}{O}\settodepth{\Depth}{O}\setlength{\Height}{-\Height}%
-\put(-0.0500,-0.0500){\hspace*{\Width}\raisebox{\Height}{O}}%
-%
-%
-\special{pn 8}%
-\special{pa -409 183}\special{pa -401 182}\special{fp}\special{pa -370 180}\special{pa -362 180}\special{fp}%
-\special{pa -330 177}\special{pa -322 177}\special{fp}\special{pa -291 174}\special{pa -283 174}\special{fp}%
-\special{pa -252 172}\special{pa -244 171}\special{fp}\special{pa -213 169}\special{pa -205 168}\special{fp}%
-\special{pa -173 166}\special{pa -165 165}\special{fp}\special{pa -134 163}\special{pa -126 162}\special{fp}%
-\special{pa -95 160}\special{pa -87 160}\special{fp}\special{pa -56 157}\special{pa -48 157}\special{fp}%
-\special{pa -16 155}\special{pa -8 154}\special{fp}\special{pa 23 152}\special{pa 31 151}\special{fp}%
-\special{pa 62 149}\special{pa 70 148}\special{fp}\special{pa 101 146}\special{pa 109 145}\special{fp}%
-\special{pa 141 143}\special{pa 149 143}\special{fp}\special{pa 180 140}\special{pa 188 140}\special{fp}%
-\special{pa 219 137}\special{pa 227 137}\special{fp}\special{pa 258 135}\special{pa 266 134}\special{fp}%
-\special{pa 298 132}\special{pa 306 131}\special{fp}\special{pa 335 126}\special{pa 342 122}\special{fp}%
-\special{pa 361 96}\special{pa 366 90}\special{fp}\special{pa 386 66}\special{pa 391 60}\special{fp}%
-\special{pa 411 36}\special{pa 416 30}\special{fp}\special{pa 436 6}\special{pa 442 0}\special{fp}%
-\special{pa 462 -25}\special{pa 467 -31}\special{fp}\special{pa 487 -55}\special{pa 492 -61}\special{fp}%
-\special{pa 512 -85}\special{pa 517 -91}\special{fp}\special{pa 537 -115}\special{pa 542 -121}\special{fp}%
-\special{pa 562 -146}\special{pa 567 -152}\special{fp}\special{pa 588 -176}\special{pa 592 -182}\special{fp}%
-\special{pa 607 -203}\special{pa 604 -211}\special{fp}\special{pa 573 -221}\special{pa 566 -225}\special{fp}%
-\special{pa 537 -237}\special{pa 530 -241}\special{fp}\special{pa 501 -253}\special{pa 494 -257}\special{fp}%
-\special{pa 465 -269}\special{pa 458 -273}\special{fp}\special{pa 429 -285}\special{pa 422 -289}\special{fp}%
-\special{pa 393 -302}\special{pa 386 -305}\special{fp}\special{pa 358 -318}\special{pa 350 -321}\special{fp}%
-\special{pa 322 -334}\special{pa 314 -337}\special{fp}\special{pa 286 -350}\special{pa 278 -353}\special{fp}%
-\special{pa 250 -366}\special{pa 242 -369}\special{fp}\special{pa 214 -382}\special{pa 207 -385}\special{fp}%
-\special{pa 178 -398}\special{pa 171 -401}\special{fp}\special{pa 142 -414}\special{pa 135 -417}\special{fp}%
-\special{pa 106 -430}\special{pa 99 -433}\special{fp}\special{pa 70 -446}\special{pa 63 -449}\special{fp}%
-\special{pa 33 -456}\special{pa 25 -456}\special{fp}\special{pa -6 -452}\special{pa -14 -451}\special{fp}%
-\special{pa -45 -447}\special{pa -53 -446}\special{fp}\special{pa -84 -442}\special{pa -92 -441}\special{fp}%
-\special{pa -123 -438}\special{pa -131 -437}\special{fp}\special{pa -162 -433}\special{pa -170 -432}\special{fp}%
-\special{pa -201 -428}\special{pa -209 -427}\special{fp}\special{pa -240 -424}\special{pa -248 -423}\special{fp}%
-\special{pa -279 -419}\special{pa -287 -418}\special{fp}\special{pa -318 -414}\special{pa -326 -413}\special{fp}%
-\special{pa -357 -410}\special{pa -365 -409}\special{fp}\special{pa -396 -405}\special{pa -404 -404}\special{fp}%
-\special{pa -436 -400}\special{pa -443 -399}\special{fp}\special{pa -475 -396}\special{pa -483 -395}\special{fp}%
-\special{pa -514 -391}\special{pa -522 -390}\special{fp}\special{pa -553 -387}\special{pa -561 -384}\special{fp}%
-\special{pa -576 -378}\special{pa -577 -370}\special{fp}\special{pa -552 -347}\special{pa -547 -341}\special{fp}%
-\special{pa -526 -318}\special{pa -521 -312}\special{fp}\special{pa -500 -289}\special{pa -494 -283}\special{fp}%
-\special{pa -473 -260}\special{pa -468 -254}\special{fp}\special{pa -447 -230}\special{pa -442 -224}\special{fp}%
-\special{pa -421 -200}\special{pa -415 -196}\special{fp}\special{pa -389 -186}\special{pa -381 -184}\special{fp}%
-\special{pa -350 -188}\special{pa -342 -188}\special{fp}\special{pa -311 -190}\special{pa -303 -191}\special{fp}%
-\special{pa -272 -193}\special{pa -264 -194}\special{fp}\special{pa -232 -196}\special{pa -224 -197}\special{fp}%
-\special{pa -193 -199}\special{pa -185 -200}\special{fp}\special{pa -154 -202}\special{pa -146 -202}\special{fp}%
-\special{pa -115 -205}\special{pa -107 -205}\special{fp}\special{pa -75 -208}\special{pa -67 -208}\special{fp}%
-\special{pa -36 -210}\special{pa -28 -211}\special{fp}\special{pa 3 -213}\special{pa 11 -214}\special{fp}%
-\special{pa 42 -216}\special{pa 50 -217}\special{fp}\special{pa 82 -219}\special{pa 90 -220}\special{fp}%
-\special{pa 121 -222}\special{pa 129 -222}\special{fp}\special{pa 160 -225}\special{pa 168 -225}\special{fp}%
-\special{pa 199 -227}\special{pa 207 -228}\special{fp}\special{pa 239 -230}\special{pa 247 -231}\special{fp}%
-\special{pa 278 -233}\special{pa 286 -234}\special{fp}\special{pa 317 -235}\special{pa 325 -238}\special{fp}%
-\special{pa 348 -255}\special{pa 354 -261}\special{fp}\special{pa 374 -285}\special{pa 379 -291}\special{fp}%
-\special{pa 399 -315}\special{pa 404 -321}\special{fp}\special{pa 424 -345}\special{pa 429 -352}\special{fp}%
-\special{pa 449 -376}\special{pa 454 -382}\special{fp}\special{pa 474 -406}\special{pa 479 -412}\special{fp}%
-\special{pa 499 -436}\special{pa 505 -442}\special{fp}\special{pa 525 -466}\special{pa 530 -473}\special{fp}%
-\special{pa 550 -497}\special{pa 555 -503}\special{fp}\special{pa 575 -527}\special{pa 580 -533}\special{fp}%
-\special{pa 603 -556}\special{pa 603 -564}\special{fp}\special{pa 591 -579}\special{pa 584 -584}\special{fp}%
-\special{pa 555 -596}\special{pa 548 -599}\special{fp}\special{pa 519 -612}\special{pa 512 -615}\special{fp}%
-\special{pa 483 -628}\special{pa 476 -631}\special{fp}\special{pa 447 -644}\special{pa 440 -647}\special{fp}%
-\special{pa 411 -660}\special{pa 404 -663}\special{fp}\special{pa 376 -676}\special{pa 368 -679}\special{fp}%
-\special{pa 340 -692}\special{pa 332 -695}\special{fp}\special{pa 304 -708}\special{pa 296 -711}\special{fp}%
-\special{pa 268 -724}\special{pa 260 -727}\special{fp}\special{pa 232 -740}\special{pa 225 -743}\special{fp}%
-\special{pa 196 -756}\special{pa 189 -759}\special{fp}\special{pa 160 -772}\special{pa 153 -775}\special{fp}%
-\special{pa 124 -788}\special{pa 117 -792}\special{fp}\special{pa 88 -804}\special{pa 81 -808}\special{fp}%
-\special{pa 52 -821}\special{pa 45 -823}\special{fp}\special{pa 14 -820}\special{pa 6 -820}\special{fp}%
-\special{pa -25 -816}\special{pa -33 -815}\special{fp}\special{pa -64 -811}\special{pa -72 -810}\special{fp}%
-\special{pa -103 -806}\special{pa -111 -805}\special{fp}\special{pa -142 -802}\special{pa -150 -801}\special{fp}%
-\special{pa -182 -797}\special{pa -190 -796}\special{fp}\special{pa -221 -792}\special{pa -229 -791}\special{fp}%
-\special{pa -260 -788}\special{pa -268 -787}\special{fp}\special{pa -299 -783}\special{pa -307 -782}\special{fp}%
-\special{pa -338 -778}\special{pa -346 -777}\special{fp}\special{pa -377 -774}\special{pa -385 -773}\special{fp}%
-\special{pa -416 -769}\special{pa -424 -768}\special{fp}\special{pa -455 -764}\special{pa -463 -763}\special{fp}%
-\special{pa -494 -760}\special{pa -502 -759}\special{fp}\special{pa -533 -755}\special{pa -541 -754}\special{fp}%
-\special{pa -574 -753}\special{pa -578 -746}\special{fp}\special{pa -565 -729}\special{pa -561 -722}\special{fp}%
-\special{pa -539 -699}\special{pa -534 -693}\special{fp}\special{pa -513 -670}\special{pa -508 -664}\special{fp}%
-\special{pa -487 -641}\special{pa -481 -635}\special{fp}\special{pa -460 -611}\special{pa -455 -605}\special{fp}%
-\special{pa -434 -582}\special{pa -429 -576}\special{fp}\special{pa -408 -553}\special{pa -402 -547}\special{fp}%
-\special{pn 8}%
-\special{pa 441 -281}\special{pa 43 -457}\special{pa -584 -383}\special{pa -405 -185}%
-\special{pa 333 -238}\special{pa 613 -571}\special{pa 328 -696}%
-\special{fp}%
-\end{picture}}% \ No newline at end of file
diff --git a/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig3d/perpplane.tex b/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig3d/perpplane.tex
deleted file mode 100644
index 9ec431c8..00000000
--- a/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig3d/perpplane.tex
+++ /dev/null
@@ -1,69 +0,0 @@
-%%% /Users/Hannya/ketcindy/ketwork/template.tex 2016-8-8 16:15
-%%% template.sce 2016-8-8 16:15
-{\unitlength=6mm%
-\begin{picture}%
-( 10.06000, 7.68000)( -5.06000, -2.68000)%
-\special{pn 8}%
-%
-\settowidth{\Width}{$x$}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{$x$}\settodepth{\Depth}{$x$}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(-4.9153,-0.6687){\hspace*{\Width}\raisebox{\Height}{$x$}}%
-%
-%
-\settowidth{\Width}{$y$}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{$y$}\settodepth{\Depth}{$y$}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(1.7543,-2.0089){\hspace*{\Width}\raisebox{\Height}{$y$}}%
-%
-%
-\settowidth{\Width}{$z$}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{$z$}\settodepth{\Depth}{$z$}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(0.0000,4.7841){\hspace*{\Width}\raisebox{\Height}{$z$}}%
-%
-%
-\settowidth{\Width}{P}\setlength{\Width}{-1\Width}%
-\settoheight{\Height}{P}\settodepth{\Depth}{P}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(-0.6695,0.4170){\hspace*{\Width}\raisebox{\Height}{P}}%
-%
-%
-\settowidth{\Width}{A}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{A}\settodepth{\Depth}{A}\setlength{\Height}{\Depth}%
-\put(1.7342,2.0313){\hspace*{\Width}\raisebox{\Height}{A}}%
-%
-%
-\settowidth{\Width}{B}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{B}\settodepth{\Depth}{B}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(0.7225,-1.8389){\hspace*{\Width}\raisebox{\Height}{B}}%
-%
-%
-\settowidth{\Width}{C}\setlength{\Width}{-1\Width}%
-\settoheight{\Height}{C}\settodepth{\Depth}{C}\setlength{\Height}{-\Height}%
-\put(-2.9733,-1.1973){\hspace*{\Width}\raisebox{\Height}{C}}%
-%
-%
-\settowidth{\Width}{D}\setlength{\Width}{-1\Width}%
-\settoheight{\Height}{D}\settodepth{\Depth}{D}\setlength{\Height}{\Depth}%
-\put(-1.9616,2.7230){\hspace*{\Width}\raisebox{\Height}{D}}%
-%
-%
-\special{pa 1117 -152}\special{pa 304 -41}%
-\special{fp}%
-\special{pa 265 -36}\special{pa -622 85}%
-\special{fp}%
-\special{pa -661 90}\special{pa -1117 152}%
-\special{fp}%
-\special{pa -385 -441}\special{pa 196 225}%
-\special{fp}%
-\special{pa 224 257}\special{pa 385 441}%
-\special{fp}%
-\special{pa 0 633}\special{pa 0 422}%
-\special{fp}%
-\special{pa 0 384}\special{pa 0 -525}%
-\special{fp}%
-\special{pa 0 -562}\special{pa 0 -1085}%
-\special{fp}%
-\special{pa -146 -99}\special{pa 0 0}%
-\special{fp}%
-\special{pa 398 -467}\special{pa 159 434}\special{pa -691 270}\special{pa -452 -631}%
-\special{pa 398 -467}%
-\special{fp}%
-\end{picture}}% \ No newline at end of file
diff --git a/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig3d/perppt.tex b/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig3d/perppt.tex
deleted file mode 100644
index e03004d7..00000000
--- a/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig3d/perppt.tex
+++ /dev/null
@@ -1,58 +0,0 @@
-%%% /Users/Hannya/ketcindy/ketwork/template.tex 2016-8-11 21:22
-%%% template.sce 2016-8-11 21:22
-{\unitlength=8mm%
-\begin{picture}%
-( 8.04000, 6.29000)( -3.00000, -2.00000)%
-\special{pn 8}%
-%
-\settowidth{\Width}{$x$}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{$x$}\settodepth{\Depth}{$x$}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(-1.9908,-1.0008){\hspace*{\Width}\raisebox{\Height}{$x$}}%
-%
-%
-\settowidth{\Width}{$y$}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{$y$}\settodepth{\Depth}{$y$}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(4.8460,-0.3726){\hspace*{\Width}\raisebox{\Height}{$y$}}%
-%
-%
-\settowidth{\Width}{$z$}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{$z$}\settodepth{\Depth}{$z$}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(0.0000,4.1119){\hspace*{\Width}\raisebox{\Height}{$z$}}%
-%
-%
-\special{pa 574 -288}\special{pa -574 288}%
-\special{fp}%
-\special{pa -945 -73}\special{pa 1467 113}%
-\special{fp}%
-\special{pa 0 630}\special{pa 0 -1235}%
-\special{fp}%
-\special{pa -344 173}\special{pa 880 68}\special{pa 0 -926}\special{pa -344 173}%
-\special{fp}%
-\special{pa 0 0}\special{pa 179 -229}%
-\special{fp}%
-\settowidth{\Width}{A}\setlength{\Width}{-1\Width}%
-\settoheight{\Height}{A}\settodepth{\Depth}{A}\setlength{\Height}{\Depth}%
-\put(-1.1426,-0.4993){\hspace*{\Width}\raisebox{\Height}{A}}%
-%
-%
-\settowidth{\Width}{B}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{B}\settodepth{\Depth}{B}\setlength{\Height}{\Depth}%
-\put(2.8439,-0.1648){\hspace*{\Width}\raisebox{\Height}{B}}%
-%
-%
-\settowidth{\Width}{C}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{C}\settodepth{\Depth}{C}\setlength{\Height}{\Depth}%
-\put(0.0500,2.9915){\hspace*{\Width}\raisebox{\Height}{C}}%
-%
-%
-\settowidth{\Width}{O}\setlength{\Width}{-1\Width}%
-\settoheight{\Height}{O}\settodepth{\Depth}{O}\setlength{\Height}{\Depth}%
-\put(-0.0500,0.0500){\hspace*{\Width}\raisebox{\Height}{O}}%
-%
-%
-\settowidth{\Width}{H}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{H}\settodepth{\Depth}{H}\setlength{\Height}{\Depth}%
-\put(0.6171,0.7758){\hspace*{\Width}\raisebox{\Height}{H}}%
-%
-%
-\end{picture}}% \ No newline at end of file
diff --git a/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig3d/phparadata01.png b/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig3d/phparadata01.png
deleted file mode 100644
index 9e3c0696..00000000
--- a/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig3d/phparadata01.png
+++ /dev/null
Binary files differ
diff --git a/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig3d/phparadata02.tex b/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig3d/phparadata02.tex
deleted file mode 100644
index 050bcbd6..00000000
--- a/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig3d/phparadata02.tex
+++ /dev/null
@@ -1,118 +0,0 @@
-%%% /Users/Hannya/ketcindy/ketwork/template.tex 2016-8-11 22:26
-%%% template.sce 2016-8-11 22:26
-{\unitlength=6mm%
-\begin{picture}%
-( 7.60000, 7.37000)( -3.60000, -3.37000)%
-\special{pn 8}%
-%
-\special{pa -98 -684}\special{pa -242 -660}%
-\special{fp}%
-\special{pa -242 -660}\special{pa -52 -640}%
-\special{fp}%
-\special{pa -52 -640}\special{pa 210 -651}%
-\special{fp}%
-\special{pa 210 -651}\special{pa 182 -678}%
-\special{fp}%
-\special{pa 182 -678}\special{pa -98 -684}%
-\special{fp}%
-\special{pa 182 -678}\special{pa 363 -543}%
-\special{fp}%
-\special{pa -582 -380}\special{pa -484 -508}%
-\special{fp}%
-\special{pa -484 -508}\special{pa -242 -660}%
-\special{fp}%
-\special{pa -662 100}\special{pa -694 -128}%
-\special{fp}%
-\special{pa -694 -128}\special{pa -582 -380}%
-\special{fp}%
-\special{pa -694 -128}\special{pa -666 -101}%
-\special{fp}%
-\special{pa -666 -101}\special{pa -536 -336}%
-\special{fp}%
-\special{pa -536 -336}\special{pa -484 -508}%
-\special{fp}%
-\special{pa -536 -336}\special{pa -346 -316}%
-\special{fp}%
-\special{pa -346 -316}\special{pa -104 -468}%
-\special{fp}%
-\special{pa -104 -468}\special{pa -52 -640}%
-\special{fp}%
-\special{pa 210 -651}\special{pa 420 -490}%
-\special{fp}%
-\special{pa 420 -490}\special{pa 602 -355}%
-\special{fp}%
-\special{pa 602 -355}\special{pa 573 -382}%
-\special{fp}%
-\special{pa 573 -382}\special{pa 363 -543}%
-\special{fp}%
-\special{pa -602 355}\special{pa -662 100}%
-\special{fp}%
-\special{pa -602 355}\special{pa -573 382}%
-\special{fp}%
-\special{pa -573 382}\special{pa -605 154}%
-\special{fp}%
-\special{pa -605 154}\special{pa -666 -101}%
-\special{fp}%
-\special{pa -605 154}\special{pa -415 174}%
-\special{fp}%
-\special{pa -415 174}\special{pa -285 -61}%
-\special{fp}%
-\special{pa -285 -61}\special{pa -346 -316}%
-\special{fp}%
-\special{pa -285 -61}\special{pa -6 -56}%
-\special{fp}%
-\special{pa -6 -56}\special{pa 106 -307}%
-\special{fp}%
-\special{pa 106 -307}\special{pa -104 -468}%
-\special{fp}%
-\special{pa 106 -307}\special{pa 368 -318}%
-\special{fp}%
-\special{pa 368 -318}\special{pa 420 -490}%
-\special{fp}%
-\special{pa 602 -355}\special{pa 662 -100}%
-\special{fp}%
-\special{pa 662 -100}\special{pa 694 128}%
-\special{fp}%
-\special{pa -182 678}\special{pa -363 543}%
-\special{fp}%
-\special{pa -363 543}\special{pa -573 382}%
-\special{fp}%
-\special{pa -363 543}\special{pa -265 415}%
-\special{fp}%
-\special{pa -265 415}\special{pa -415 174}%
-\special{fp}%
-\special{pa -265 415}\special{pa 14 420}%
-\special{fp}%
-\special{pa 14 420}\special{pa 144 185}%
-\special{fp}%
-\special{pa 144 185}\special{pa -6 -56}%
-\special{fp}%
-\special{pa 144 185}\special{pa 406 174}%
-\special{fp}%
-\special{pa 406 174}\special{pa 518 -77}%
-\special{fp}%
-\special{pa 518 -77}\special{pa 368 -318}%
-\special{fp}%
-\special{pa 518 -77}\special{pa 662 -100}%
-\special{fp}%
-\special{pa 694 128}\special{pa 582 380}%
-\special{fp}%
-\special{pa 582 380}\special{pa 484 508}%
-\special{fp}%
-\special{pa 484 508}\special{pa 242 660}%
-\special{fp}%
-\special{pa 242 660}\special{pa 98 684}%
-\special{fp}%
-\special{pa 98 684}\special{pa -182 678}%
-\special{fp}%
-\special{pa 98 684}\special{pa 196 555}%
-\special{fp}%
-\special{pa 196 555}\special{pa 14 420}%
-\special{fp}%
-\special{pa 196 555}\special{pa 438 403}%
-\special{fp}%
-\special{pa 438 403}\special{pa 406 174}%
-\special{fp}%
-\special{pa 438 403}\special{pa 582 380}%
-\special{fp}%
-\end{picture}}% \ No newline at end of file
diff --git a/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig3d/phparadata03.tex b/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig3d/phparadata03.tex
deleted file mode 100644
index 2b5d91ad..00000000
--- a/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig3d/phparadata03.tex
+++ /dev/null
@@ -1,272 +0,0 @@
-%%% /Users/Hannya/ketcindy/ketwork/template.tex 2016-8-11 22:33
-%%% template.sce 2016-8-11 22:33
-{\unitlength=6mm%
-\begin{picture}%
-( 7.60000, 7.37000)( -3.60000, -3.37000)%
-\special{pn 8}%
-%
-\special{pn 16}%
-\special{pa -98 -684}\special{pa -242 -660}%
-\special{fp}%
-\special{pa -242 -660}\special{pa -52 -640}%
-\special{fp}%
-\special{pa -52 -640}\special{pa 210 -651}%
-\special{fp}%
-\special{pa 210 -651}\special{pa 182 -678}%
-\special{fp}%
-\special{pa 182 -678}\special{pa -98 -684}%
-\special{fp}%
-\special{pa 182 -678}\special{pa 363 -543}%
-\special{fp}%
-\special{pa -582 -380}\special{pa -484 -508}%
-\special{fp}%
-\special{pa -484 -508}\special{pa -242 -660}%
-\special{fp}%
-\special{pa -662 100}\special{pa -694 -128}%
-\special{fp}%
-\special{pa -694 -128}\special{pa -582 -380}%
-\special{fp}%
-\special{pa -694 -128}\special{pa -666 -101}%
-\special{fp}%
-\special{pa -666 -101}\special{pa -536 -336}%
-\special{fp}%
-\special{pa -536 -336}\special{pa -484 -508}%
-\special{fp}%
-\special{pa -536 -336}\special{pa -346 -316}%
-\special{fp}%
-\special{pa -346 -316}\special{pa -104 -468}%
-\special{fp}%
-\special{pa -104 -468}\special{pa -52 -640}%
-\special{fp}%
-\special{pa 210 -651}\special{pa 420 -490}%
-\special{fp}%
-\special{pa 420 -490}\special{pa 602 -355}%
-\special{fp}%
-\special{pa 602 -355}\special{pa 573 -382}%
-\special{fp}%
-\special{pa 573 -382}\special{pa 363 -543}%
-\special{fp}%
-\special{pa -602 355}\special{pa -662 100}%
-\special{fp}%
-\special{pa -602 355}\special{pa -573 382}%
-\special{fp}%
-\special{pa -573 382}\special{pa -605 154}%
-\special{fp}%
-\special{pa -605 154}\special{pa -666 -101}%
-\special{fp}%
-\special{pa -605 154}\special{pa -415 174}%
-\special{fp}%
-\special{pa -415 174}\special{pa -285 -61}%
-\special{fp}%
-\special{pa -285 -61}\special{pa -346 -316}%
-\special{fp}%
-\special{pa -285 -61}\special{pa -6 -56}%
-\special{fp}%
-\special{pa -6 -56}\special{pa 106 -307}%
-\special{fp}%
-\special{pa 106 -307}\special{pa -104 -468}%
-\special{fp}%
-\special{pa 106 -307}\special{pa 368 -318}%
-\special{fp}%
-\special{pa 368 -318}\special{pa 420 -490}%
-\special{fp}%
-\special{pa 602 -355}\special{pa 662 -100}%
-\special{fp}%
-\special{pa 662 -100}\special{pa 694 128}%
-\special{fp}%
-\special{pa -182 678}\special{pa -363 543}%
-\special{fp}%
-\special{pa -363 543}\special{pa -573 382}%
-\special{fp}%
-\special{pa -363 543}\special{pa -265 415}%
-\special{fp}%
-\special{pa -265 415}\special{pa -415 174}%
-\special{fp}%
-\special{pa -265 415}\special{pa 14 420}%
-\special{fp}%
-\special{pa 14 420}\special{pa 144 185}%
-\special{fp}%
-\special{pa 144 185}\special{pa -6 -56}%
-\special{fp}%
-\special{pa 144 185}\special{pa 406 174}%
-\special{fp}%
-\special{pa 406 174}\special{pa 518 -77}%
-\special{fp}%
-\special{pa 518 -77}\special{pa 368 -318}%
-\special{fp}%
-\special{pa 518 -77}\special{pa 662 -100}%
-\special{fp}%
-\special{pa 694 128}\special{pa 582 380}%
-\special{fp}%
-\special{pa 582 380}\special{pa 484 508}%
-\special{fp}%
-\special{pa 484 508}\special{pa 242 660}%
-\special{fp}%
-\special{pa 242 660}\special{pa 98 684}%
-\special{fp}%
-\special{pa 98 684}\special{pa -182 678}%
-\special{fp}%
-\special{pa 98 684}\special{pa 196 555}%
-\special{fp}%
-\special{pa 196 555}\special{pa 14 420}%
-\special{fp}%
-\special{pa 196 555}\special{pa 438 403}%
-\special{fp}%
-\special{pa 438 403}\special{pa 406 174}%
-\special{fp}%
-\special{pa 438 403}\special{pa 582 380}%
-\special{fp}%
-\special{pn 8}%
-\special{pn 8}%
-\special{pa -95 -687}\special{pa -100 -680}\special{fp}\special{pa -120 -655}\special{pa -125 -648}\special{fp}%
-\special{pa -144 -622}\special{pa -149 -616}\special{fp}\special{pa -169 -590}\special{pa -174 -584}\special{fp}%
-\special{pa -193 -558}\special{pa -198 -552}\special{fp}\special{pn 8}%
-\special{pa -192 -557}\special{pa -199 -553}\special{fp}\special{pa -227 -535}\special{pa -234 -531}\special{fp}%
-\special{pa -261 -513}\special{pa -268 -509}\special{fp}\special{pa -296 -492}\special{pa -303 -488}\special{fp}%
-\special{pa -331 -470}\special{pa -337 -466}\special{fp}\special{pa -365 -448}\special{pa -372 -444}\special{fp}%
-\special{pa -400 -427}\special{pa -407 -422}\special{fp}\special{pa -434 -405}\special{pa -441 -401}\special{fp}%
-\special{pn 8}%
-\special{pa -586 -379}\special{pa -578 -380}\special{fp}\special{pa -550 -385}\special{pa -542 -386}\special{fp}%
-\special{pa -514 -391}\special{pa -506 -392}\special{fp}\special{pa -478 -396}\special{pa -470 -398}\special{fp}%
-\special{pa -442 -402}\special{pa -434 -403}\special{fp}\special{pn 8}%
-\special{pa -438 -407}\special{pa -437 -399}\special{fp}\special{pa -433 -369}\special{pa -432 -361}\special{fp}%
-\special{pa -428 -331}\special{pa -426 -323}\special{fp}\special{pa -422 -293}\special{pa -421 -285}\special{fp}%
-\special{pa -417 -254}\special{pa -416 -247}\special{fp}\special{pa -412 -216}\special{pa -410 -209}\special{fp}%
-\special{pa -406 -178}\special{pa -405 -170}\special{fp}\special{pn 8}%
-\special{pa -404 -178}\special{pa -407 -171}\special{fp}\special{pa -420 -142}\special{pa -423 -135}\special{fp}%
-\special{pa -436 -106}\special{pa -439 -99}\special{fp}\special{pa -452 -70}\special{pa -455 -63}\special{fp}%
-\special{pa -468 -34}\special{pa -471 -27}\special{fp}\special{pa -484 2}\special{pa -487 9}\special{fp}%
-\special{pa -500 38}\special{pa -504 45}\special{fp}\special{pa -516 74}\special{pa -520 81}\special{fp}%
-\special{pn 8}%
-\special{pa -666 101}\special{pa -658 100}\special{fp}\special{pa -630 95}\special{pa -622 94}\special{fp}%
-\special{pa -594 89}\special{pa -586 88}\special{fp}\special{pa -558 84}\special{pa -550 82}\special{fp}%
-\special{pa -522 78}\special{pa -514 77}\special{fp}\special{pn 8}%
-\special{pa -410 -174}\special{pa -402 -175}\special{fp}\special{pa -372 -176}\special{pa -364 -176}\special{fp}%
-\special{pa -335 -177}\special{pa -327 -178}\special{fp}\special{pa -297 -179}\special{pa -289 -179}\special{fp}%
-\special{pa -260 -180}\special{pa -252 -181}\special{fp}\special{pa -223 -182}\special{pa -215 -182}\special{fp}%
-\special{pa -185 -183}\special{pa -177 -184}\special{fp}\special{pa -148 -185}\special{pa -140 -185}\special{fp}%
-\special{pn 8}%
-\special{pa 366 -547}\special{pa 361 -540}\special{fp}\special{pa 341 -514}\special{pa 336 -508}\special{fp}%
-\special{pa 317 -482}\special{pa 312 -476}\special{fp}\special{pa 292 -450}\special{pa 287 -444}\special{fp}%
-\special{pa 268 -418}\special{pa 263 -411}\special{fp}\special{pn 8}%
-\special{pa 269 -414}\special{pa 261 -415}\special{fp}\special{pa 229 -415}\special{pa 221 -415}\special{fp}%
-\special{pa 190 -416}\special{pa 182 -416}\special{fp}\special{pa 150 -417}\special{pa 142 -417}\special{fp}%
-\special{pa 110 -418}\special{pa 102 -418}\special{fp}\special{pa 70 -419}\special{pa 62 -419}\special{fp}%
-\special{pa 30 -419}\special{pa 22 -420}\special{fp}\special{pa -10 -420}\special{pa -18 -420}\special{fp}%
-\special{pn 8}%
-\special{pa -199 -557}\special{pa -192 -552}\special{fp}\special{pa -169 -535}\special{pa -162 -530}\special{fp}%
-\special{pa -138 -512}\special{pa -132 -508}\special{fp}\special{pa -108 -490}\special{pa -102 -485}\special{fp}%
-\special{pa -78 -467}\special{pa -71 -463}\special{fp}\special{pa -48 -445}\special{pa -41 -440}\special{fp}%
-\special{pa -17 -423}\special{pa -11 -418}\special{fp}\special{pn 8}%
-\special{pa -146 -182}\special{pa -142 -189}\special{fp}\special{pa -127 -215}\special{pa -123 -222}\special{fp}%
-\special{pa -109 -249}\special{pa -105 -256}\special{fp}\special{pa -90 -282}\special{pa -86 -289}\special{fp}%
-\special{pa -72 -316}\special{pa -68 -323}\special{fp}\special{pa -53 -350}\special{pa -49 -357}\special{fp}%
-\special{pa -35 -383}\special{pa -31 -390}\special{fp}\special{pa -16 -417}\special{pa -12 -424}\special{fp}%
-\special{pn 8}%
-\special{pa -520 74}\special{pa -516 81}\special{fp}\special{pa -499 108}\special{pa -494 115}\special{fp}%
-\special{pa -477 143}\special{pa -473 149}\special{fp}\special{pa -456 177}\special{pa -452 184}\special{fp}%
-\special{pa -435 211}\special{pa -430 218}\special{fp}\special{pa -413 246}\special{pa -409 253}\special{fp}%
-\special{pa -392 280}\special{pa -388 287}\special{fp}\special{pa -370 315}\special{pa -366 321}\special{fp}%
-\special{pn 8}%
-\special{pa -367 314}\special{pa -369 322}\special{fp}\special{pa -378 349}\special{pa -380 356}\special{fp}%
-\special{pa -388 383}\special{pa -390 391}\special{fp}\special{pa -398 417}\special{pa -401 425}\special{fp}%
-\special{pa -409 452}\special{pa -411 459}\special{fp}\special{pa -419 486}\special{pa -421 494}\special{fp}%
-\special{pn 8}%
-\special{pa -605 353}\special{pa -599 358}\special{fp}\special{pa -575 375}\special{pa -568 380}\special{fp}%
-\special{pa -544 398}\special{pa -538 403}\special{fp}\special{pa -514 420}\special{pa -508 425}\special{fp}%
-\special{pa -484 443}\special{pa -477 447}\special{fp}\special{pa -454 465}\special{pa -447 470}\special{fp}%
-\special{pa -423 488}\special{pa -417 492}\special{fp}\special{pn 8}%
-\special{pa -146 -189}\special{pa -142 -182}\special{fp}\special{pa -125 -154}\special{pa -120 -147}\special{fp}%
-\special{pa -103 -120}\special{pa -99 -113}\special{fp}\special{pa -82 -85}\special{pa -78 -79}\special{fp}%
-\special{pa -60 -51}\special{pa -56 -44}\special{fp}\special{pa -39 -17}\special{pa -35 -10}\special{fp}%
-\special{pa -18 18}\special{pa -13 25}\special{fp}\special{pa 4 52}\special{pa 8 59}\special{fp}%
-\special{pn 8}%
-\special{pa 7 52}\special{pa 4 59}\special{fp}\special{pa -9 88}\special{pa -12 95}\special{fp}%
-\special{pa -25 124}\special{pa -28 131}\special{fp}\special{pa -41 160}\special{pa -44 167}\special{fp}%
-\special{pa -57 196}\special{pa -60 203}\special{fp}\special{pa -73 232}\special{pa -76 239}\special{fp}%
-\special{pa -89 268}\special{pa -92 275}\special{fp}\special{pa -105 304}\special{pa -108 311}\special{fp}%
-\special{pn 8}%
-\special{pa -372 318}\special{pa -364 318}\special{fp}\special{pa -335 317}\special{pa -327 316}\special{fp}%
-\special{pa -298 315}\special{pa -290 315}\special{fp}\special{pa -260 314}\special{pa -252 313}\special{fp}%
-\special{pa -223 312}\special{pa -215 312}\special{fp}\special{pa -185 310}\special{pa -177 310}\special{fp}%
-\special{pa -148 309}\special{pa -140 309}\special{fp}\special{pa -110 307}\special{pa -102 307}\special{fp}%
-\special{pn 8}%
-\special{pa 263 -418}\special{pa 268 -411}\special{fp}\special{pa 285 -384}\special{pa 289 -377}\special{fp}%
-\special{pa 306 -349}\special{pa 310 -342}\special{fp}\special{pa 327 -315}\special{pa 332 -308}\special{fp}%
-\special{pa 349 -280}\special{pa 353 -274}\special{fp}\special{pa 370 -246}\special{pa 374 -239}\special{fp}%
-\special{pa 392 -212}\special{pa 396 -205}\special{fp}\special{pa 413 -177}\special{pa 417 -170}\special{fp}%
-\special{pn 8}%
-\special{pa 417 -177}\special{pa 413 -170}\special{fp}\special{pa 398 -144}\special{pa 395 -137}\special{fp}%
-\special{pa 380 -110}\special{pa 376 -103}\special{fp}\special{pa 361 -77}\special{pa 357 -70}\special{fp}%
-\special{pa 343 -43}\special{pa 339 -36}\special{fp}\special{pa 324 -9}\special{pa 320 -2}\special{fp}%
-\special{pa 306 24}\special{pa 302 31}\special{fp}\special{pa 287 58}\special{pa 283 65}\special{fp}%
-\special{pn 8}%
-\special{pa 2 56}\special{pa 10 56}\special{fp}\special{pa 42 56}\special{pa 50 57}\special{fp}%
-\special{pa 82 57}\special{pa 90 57}\special{fp}\special{pa 122 58}\special{pa 130 58}\special{fp}%
-\special{pa 161 59}\special{pa 169 59}\special{fp}\special{pa 201 60}\special{pa 209 60}\special{fp}%
-\special{pa 241 60}\special{pa 249 61}\special{fp}\special{pa 281 61}\special{pa 289 61}\special{fp}%
-\special{pn 8}%
-\special{pa 573 -386}\special{pa 574 -378}\special{fp}\special{pa 578 -348}\special{pa 579 -340}\special{fp}%
-\special{pa 583 -310}\special{pa 585 -302}\special{fp}\special{pa 589 -272}\special{pa 590 -264}\special{fp}%
-\special{pa 594 -234}\special{pa 595 -226}\special{fp}\special{pa 599 -196}\special{pa 601 -188}\special{fp}%
-\special{pa 605 -158}\special{pa 606 -150}\special{fp}\special{pn 8}%
-\special{pa 411 -174}\special{pa 419 -173}\special{fp}\special{pa 449 -170}\special{pa 457 -169}\special{fp}%
-\special{pa 487 -166}\special{pa 495 -165}\special{fp}\special{pa 525 -162}\special{pa 533 -161}\special{fp}%
-\special{pa 563 -158}\special{pa 571 -157}\special{fp}\special{pa 601 -154}\special{pa 609 -153}\special{fp}%
-\special{pn 8}%
-\special{pa 56 640}\special{pa 48 641}\special{fp}\special{pa 18 642}\special{pa 10 642}\special{fp}%
-\special{pa -19 643}\special{pa -27 644}\special{fp}\special{pa -56 645}\special{pa -64 645}\special{fp}%
-\special{pa -94 646}\special{pa -102 647}\special{fp}\special{pa -131 648}\special{pa -139 648}\special{fp}%
-\special{pa -169 649}\special{pa -177 650}\special{fp}\special{pa -206 651}\special{pa -214 651}\special{fp}%
-\special{pn 8}%
-\special{pa -423 488}\special{pa -417 492}\special{fp}\special{pa -393 511}\special{pa -387 515}\special{fp}%
-\special{pa -363 534}\special{pa -357 538}\special{fp}\special{pa -333 557}\special{pa -327 561}\special{fp}%
-\special{pa -303 580}\special{pa -297 584}\special{fp}\special{pa -273 603}\special{pa -267 608}\special{fp}%
-\special{pa -243 626}\special{pa -237 631}\special{fp}\special{pa -213 649}\special{pa -207 654}\special{fp}%
-\special{pn 8}%
-\special{pa -213 648}\special{pa -207 654}\special{fp}\special{pa -185 675}\special{pa -179 681}\special{fp}%
-\special{pn 8}%
-\special{pa 284 57}\special{pa 286 65}\special{fp}\special{pa 293 94}\special{pa 295 102}\special{fp}%
-\special{pa 302 130}\special{pa 303 138}\special{fp}\special{pa 310 167}\special{pa 312 175}\special{fp}%
-\special{pa 319 203}\special{pa 321 211}\special{fp}\special{pa 327 240}\special{pa 329 247}\special{fp}%
-\special{pa 336 276}\special{pa 338 284}\special{fp}\special{pa 345 313}\special{pa 347 320}\special{fp}%
-\special{pn 8}%
-\special{pa 349 314}\special{pa 342 319}\special{fp}\special{pa 314 336}\special{pa 308 340}\special{fp}%
-\special{pa 280 358}\special{pa 273 362}\special{fp}\special{pa 245 379}\special{pa 239 384}\special{fp}%
-\special{pa 211 401}\special{pa 204 405}\special{fp}\special{pa 176 423}\special{pa 169 427}\special{fp}%
-\special{pa 142 445}\special{pa 135 449}\special{fp}\special{pa 107 466}\special{pa 100 471}\special{fp}%
-\special{pn 8}%
-\special{pa -110 305}\special{pa -103 310}\special{fp}\special{pa -80 328}\special{pa -73 333}\special{fp}%
-\special{pa -50 351}\special{pa -43 356}\special{fp}\special{pa -20 374}\special{pa -13 379}\special{fp}%
-\special{pa 10 397}\special{pa 17 402}\special{fp}\special{pa 40 420}\special{pa 47 425}\special{fp}%
-\special{pa 70 443}\special{pa 77 448}\special{fp}\special{pa 100 466}\special{pa 107 471}\special{fp}%
-\special{pn 8}%
-\special{pa 51 644}\special{pa 53 637}\special{fp}\special{pa 61 610}\special{pa 63 602}\special{fp}%
-\special{pa 71 575}\special{pa 74 568}\special{fp}\special{pa 82 541}\special{pa 84 533}\special{fp}%
-\special{pa 92 507}\special{pa 94 499}\special{fp}\special{pa 102 472}\special{pa 105 465}\special{fp}%
-\special{pn 8}%
-\special{pa 697 131}\special{pa 691 125}\special{fp}\special{pa 669 104}\special{pa 663 99}\special{fp}%
-\special{pn 8}%
-\special{pa 604 -158}\special{pa 606 -150}\special{fp}\special{pa 613 -121}\special{pa 615 -113}\special{fp}%
-\special{pa 622 -85}\special{pa 623 -77}\special{fp}\special{pa 630 -48}\special{pa 632 -41}\special{fp}%
-\special{pa 639 -12}\special{pa 641 -4}\special{fp}\special{pa 648 25}\special{pa 649 32}\special{fp}%
-\special{pa 656 61}\special{pa 658 69}\special{fp}\special{pa 665 97}\special{pa 667 105}\special{fp}%
-\special{pn 8}%
-\special{pa 668 98}\special{pa 664 105}\special{fp}\special{pa 649 131}\special{pa 645 138}\special{fp}%
-\special{pa 631 165}\special{pa 627 172}\special{fp}\special{pa 612 199}\special{pa 608 206}\special{fp}%
-\special{pa 593 232}\special{pa 590 239}\special{fp}\special{pa 575 266}\special{pa 571 273}\special{fp}%
-\special{pa 556 299}\special{pa 553 306}\special{fp}\special{pa 538 333}\special{pa 534 340}\special{fp}%
-\special{pn 8}%
-\special{pa 342 316}\special{pa 350 317}\special{fp}\special{pa 380 320}\special{pa 388 321}\special{fp}%
-\special{pa 418 324}\special{pa 426 325}\special{fp}\special{pa 456 328}\special{pa 464 329}\special{fp}%
-\special{pa 494 332}\special{pa 502 333}\special{fp}\special{pa 532 336}\special{pa 540 337}\special{fp}%
-\special{pn 8}%
-\special{pa 537 333}\special{pa 535 340}\special{fp}\special{pa 527 367}\special{pa 524 375}\special{fp}%
-\special{pa 516 401}\special{pa 514 409}\special{fp}\special{pa 506 436}\special{pa 504 443}\special{fp}%
-\special{pa 496 470}\special{pa 493 478}\special{fp}\special{pa 485 505}\special{pa 483 512}\special{fp}%
-\special{pn 8}%
-\special{pa 48 640}\special{pa 56 641}\special{fp}\special{pa 86 644}\special{pa 94 645}\special{fp}%
-\special{pa 124 648}\special{pa 132 649}\special{fp}\special{pa 162 652}\special{pa 170 653}\special{fp}%
-\special{pa 200 656}\special{pa 208 657}\special{fp}\special{pa 238 660}\special{pa 246 661}\special{fp}%
-\special{pn 8}%
-\end{picture}}% \ No newline at end of file
diff --git a/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig3d/rasen.tex b/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig3d/rasen.tex
deleted file mode 100644
index 479ba81a..00000000
--- a/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig3d/rasen.tex
+++ /dev/null
@@ -1,55 +0,0 @@
-%%% /Users/Hannya/ketcindy/ketwork/template.tex 2016-8-8 19:50
-%%% template.sce 2016-8-8 19:50
-{\unitlength=6mm%
-\begin{picture}%
-( 10.06000, 7.68000)( -5.06000, -2.68000)%
-\special{pn 8}%
-%
-\settowidth{\Width}{$x$}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{$x$}\settodepth{\Depth}{$x$}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(-4.7562,-0.7329){\hspace*{\Width}\raisebox{\Height}{$x$}}%
-%
-%
-\settowidth{\Width}{$y$}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{$y$}\settodepth{\Depth}{$y$}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(2.1820,-1.6994){\hspace*{\Width}\raisebox{\Height}{$y$}}%
-%
-%
-\settowidth{\Width}{$z$}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{$z$}\settodepth{\Depth}{$z$}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(0.0000,4.8804){\hspace*{\Width}\raisebox{\Height}{$z$}}%
-%
-%
-\special{pa 1079 -166}\special{pa -1079 166}%
-\special{fp}%
-\special{pa -480 -374}\special{pa 480 374}%
-\special{fp}%
-\special{pa 0 633}\special{pa 0 -1108}%
-\special{fp}%
-\special{pa -432 67}\special{pa -404 79}\special{pa -370 91}\special{pa -329 100}%
-\special{pa -284 108}\special{pa -234 114}\special{pa -180 118}\special{pa -123 119}%
-\special{pa -64 117}\special{pa -5 113}\special{pa 55 106}\special{pa 114 97}\special{pa 171 85}%
-\special{pa 226 71}\special{pa 276 54}\special{pa 323 35}\special{pa 364 14}\special{pa 399 -8}%
-\special{pa 428 -32}\special{pa 450 -57}\special{pa 464 -82}\special{pa 472 -109}%
-\special{pa 471 -135}\special{pa 463 -161}\special{pa 448 -187}\special{pa 425 -212}%
-\special{pa 396 -236}\special{pa 360 -258}\special{pa 318 -278}\special{pa 272 -297}%
-\special{pa 221 -313}\special{pa 166 -328}\special{pa 109 -339}\special{pa 50 -348}%
-\special{pa -10 -355}\special{pa -70 -359}\special{pa -129 -360}\special{pa -185 -359}%
-\special{pa -239 -355}\special{pa -288 -349}\special{pa -333 -341}\special{pa -373 -331}%
-\special{pa -407 -319}\special{pa -434 -307}\special{pa -454 -293}\special{pa -467 -278}%
-\special{pa -472 -263}\special{pa -470 -248}\special{pa -460 -233}\special{pa -443 -219}%
-\special{pa -419 -205}\special{pa -388 -193}\special{pa -350 -183}\special{pa -307 -174}%
-\special{pa -259 -167}\special{pa -207 -162}\special{pa -152 -160}\special{pa -94 -160}%
-\special{pa -35 -163}\special{pa 25 -168}\special{pa 85 -177}\special{pa 143 -187}%
-\special{pa 199 -200}\special{pa 251 -216}\special{pa 300 -234}\special{pa 344 -253}%
-\special{pa 382 -275}\special{pa 414 -298}\special{pa 440 -323}\special{pa 458 -348}%
-\special{pa 469 -374}\special{pa 472 -400}\special{pa 468 -427}\special{pa 457 -453}%
-\special{pa 438 -478}\special{pa 411 -502}\special{pa 379 -525}\special{pa 340 -547}%
-\special{pa 296 -566}\special{pa 247 -584}\special{pa 194 -599}\special{pa 138 -612}%
-\special{pa 79 -623}\special{pa 20 -630}\special{pa -40 -636}\special{pa -100 -638}%
-\special{pa -157 -638}\special{pa -212 -636}\special{pa -264 -631}\special{pa -312 -624}%
-\special{pa -354 -615}\special{pa -391 -604}\special{pa -421 -592}\special{pa -445 -578}%
-\special{pa -461 -564}\special{pa -471 -549}\special{pa -472 -534}\special{pa -466 -519}%
-\special{pa -452 -504}\special{pa -432 -490}%
-\special{fp}%
-\end{picture}}% \ No newline at end of file
diff --git a/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig3d/readobj.tex b/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig3d/readobj.tex
deleted file mode 100644
index 5b9d71e6..00000000
--- a/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig3d/readobj.tex
+++ /dev/null
@@ -1,64 +0,0 @@
-%%% /Users/Hannya/ketcindy/ketwork/template.tex 2016-8-9 20:2
-%%% template.sce 2016-8-9 20:2
-{\unitlength=8mm%
-\begin{picture}%
-( 6.00000, 5.00000)( -3.00000, -2.00000)%
-\special{pn 8}%
-%
-\special{pn 8}%
-\special{pa -59 -253}\special{pa -51 -251}\special{fp}\special{pa -21 -240}\special{pa -13 -238}\special{fp}%
-\special{pa 17 -228}\special{pa 25 -225}\special{fp}\special{pa 55 -215}\special{pa 62 -212}\special{fp}%
-\special{pa 93 -202}\special{pa 100 -200}\special{fp}\special{pa 130 -189}\special{pa 138 -187}\special{fp}%
-\special{pa 168 -177}\special{pa 176 -174}\special{fp}\special{pa 206 -164}\special{pa 214 -161}\special{fp}%
-\special{pa 244 -151}\special{pa 251 -148}\special{fp}\special{pa 282 -138}\special{pa 289 -136}\special{fp}%
-\special{pa 319 -125}\special{pa 327 -123}\special{fp}\special{pa 357 -113}\special{pa 365 -110}\special{fp}%
-\special{pa 395 -100}\special{pa 403 -97}\special{fp}\special{pa 433 -87}\special{pa 440 -85}\special{fp}%
-\special{pa 471 -74}\special{pa 478 -72}\special{fp}\special{pa 508 -62}\special{pa 516 -59}\special{fp}%
-\special{pa 546 -49}\special{pa 554 -46}\special{fp}\special{pa 584 -36}\special{pa 592 -34}\special{fp}%
-\special{pa 622 -23}\special{pa 629 -21}\special{fp}\special{pn 8}%
-\special{pa 626 -22}\special{pa 0 577}%
-\special{fp}%
-\special{pn 8}%
-\special{pa -55 -256}\special{pa -54 -248}\special{fp}\special{pa -52 -216}\special{pa -52 -208}\special{fp}%
-\special{pa -50 -177}\special{pa -49 -169}\special{fp}\special{pa -47 -138}\special{pa -47 -130}\special{fp}%
-\special{pa -45 -98}\special{pa -44 -90}\special{fp}\special{pa -42 -59}\special{pa -41 -51}\special{fp}%
-\special{pa -39 -19}\special{pa -39 -11}\special{fp}\special{pa -37 20}\special{pa -36 28}\special{fp}%
-\special{pa -34 60}\special{pa -34 68}\special{fp}\special{pa -32 99}\special{pa -31 107}\special{fp}%
-\special{pa -29 139}\special{pa -28 147}\special{fp}\special{pa -26 178}\special{pa -26 186}\special{fp}%
-\special{pa -24 218}\special{pa -23 226}\special{fp}\special{pa -21 257}\special{pa -21 265}\special{fp}%
-\special{pa -19 296}\special{pa -18 304}\special{fp}\special{pa -16 336}\special{pa -15 344}\special{fp}%
-\special{pa -13 375}\special{pa -13 383}\special{fp}\special{pa -11 415}\special{pa -10 423}\special{fp}%
-\special{pa -8 454}\special{pa -8 462}\special{fp}\special{pa -5 494}\special{pa -5 502}\special{fp}%
-\special{pa -3 533}\special{pa -2 541}\special{fp}\special{pa 0 573}\special{pa 0 581}\special{fp}%
-\special{pn 8}%
-\special{pa -626 22}\special{pa 0 577}%
-\special{fp}%
-\special{pn 8}%
-\special{pa -51 -254}\special{pa -58 -250}\special{fp}\special{pa -87 -237}\special{pa -94 -233}\special{fp}%
-\special{pa -122 -219}\special{pa -130 -216}\special{fp}\special{pa -158 -202}\special{pa -165 -199}\special{fp}%
-\special{pa -194 -185}\special{pa -201 -182}\special{fp}\special{pa -230 -168}\special{pa -237 -165}\special{fp}%
-\special{pa -265 -151}\special{pa -272 -147}\special{fp}\special{pa -301 -134}\special{pa -308 -130}\special{fp}%
-\special{pa -337 -117}\special{pa -344 -113}\special{fp}\special{pa -372 -100}\special{pa -379 -96}\special{fp}%
-\special{pa -408 -82}\special{pa -415 -79}\special{fp}\special{pa -444 -65}\special{pa -451 -62}\special{fp}%
-\special{pa -479 -48}\special{pa -487 -45}\special{fp}\special{pa -515 -31}\special{pa -522 -28}\special{fp}%
-\special{pa -551 -14}\special{pa -558 -10}\special{fp}\special{pa -586 3}\special{pa -594 7}\special{fp}%
-\special{pa -622 20}\special{pa -629 24}\special{fp}\special{pn 8}%
-\special{pa -626 22}\special{pa 0 -577}%
-\special{fp}%
-\special{pn 8}%
-\special{pa -55 -248}\special{pa -54 -256}\special{fp}\special{pa -49 -289}\special{pa -47 -296}\special{fp}%
-\special{pa -42 -329}\special{pa -40 -337}\special{fp}\special{pa -35 -370}\special{pa -34 -378}\special{fp}%
-\special{pa -28 -410}\special{pa -27 -418}\special{fp}\special{pa -21 -451}\special{pa -20 -459}\special{fp}%
-\special{pa -14 -491}\special{pa -13 -499}\special{fp}\special{pa -8 -532}\special{pa -6 -540}\special{fp}%
-\special{pa -1 -573}\special{pa 1 -581}\special{fp}\special{pn 8}%
-\special{pa 626 -22}\special{pa 0 -577}%
-\special{fp}%
-\special{pa 626 -22}\special{pa 55 252}%
-\special{fp}%
-\special{pa 55 252}\special{pa 0 577}%
-\special{fp}%
-\special{pa 55 252}\special{pa 0 -577}%
-\special{fp}%
-\special{pa 55 252}\special{pa -626 22}%
-\special{fp}%
-\end{picture}}% \ No newline at end of file
diff --git a/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig3d/rotatedata3d01.tex b/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig3d/rotatedata3d01.tex
deleted file mode 100644
index 1ab86842..00000000
--- a/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig3d/rotatedata3d01.tex
+++ /dev/null
@@ -1,85 +0,0 @@
-%%% /Users/Hannya/ketcindy/ketwork/template.tex 2016-8-15 20:33
-%%% template.sce 2016-8-15 20:33
-{\unitlength=8mm%
-\begin{picture}%
-( 7.77000, 5.78000)( -4.42000, -1.51000)%
-\special{pn 8}%
-%
-\settowidth{\Width}{$x$}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{$x$}\settodepth{\Depth}{$x$}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(-3.5455,-0.5866){\hspace*{\Width}\raisebox{\Height}{$x$}}%
-%
-%
-\settowidth{\Width}{$y$}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{$y$}\settodepth{\Depth}{$y$}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(2.8935,-1.1428){\hspace*{\Width}\raisebox{\Height}{$y$}}%
-%
-%
-\settowidth{\Width}{$z$}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{$z$}\settodepth{\Depth}{$z$}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(0.0000,4.0571){\hspace*{\Width}\raisebox{\Height}{$z$}}%
-%
-%
-\special{pa 1055 -175}\special{pa -1058 175}%
-\special{fp}%
-\special{pa -856 -338}\special{pa 856 338}%
-\special{fp}%
-\special{pa 0 476}\special{pa 0 -1218}%
-\special{fp}%
-\special{pa -988 139}\special{pa -1058 175}\special{pa -980 187}\special{pa -984 163}%
-\special{pa -988 139}\special{sh 1}\special{ip}%
-\special{pn 1}%
-\special{pa -988 139}\special{pa -1058 175}\special{pa -980 187}\special{pa -984 163}%
-\special{pa -988 139}\special{pa -1058 175}%
-\special{fp}%
-\special{pn 8}%
-\special{pa 777 333}\special{pa 856 338}\special{pa 795 288}\special{pa 786 310}\special{pa 777 333}%
-\special{sh 1}\special{ip}%
-\special{pn 1}%
-\special{pa 777 333}\special{pa 856 338}\special{pa 795 288}\special{pa 786 310}\special{pa 777 333}%
-\special{pa 856 338}%
-\special{fp}%
-\special{pn 8}%
-\special{pa 24 -1143}\special{pa 0 -1218}\special{pa -24 -1143}\special{pa 0 -1143}%
-\special{pa 24 -1143}\special{sh 1}\special{ip}%
-\special{pn 1}%
-\special{pa 24 -1143}\special{pa 0 -1218}\special{pa -24 -1143}\special{pa 0 -1143}%
-\special{pa 24 -1143}\special{pa 0 -1218}%
-\special{fp}%
-\special{pn 8}%
-\settowidth{\Width}{O}\setlength{\Width}{-1\Width}%
-\settoheight{\Height}{O}\settodepth{\Depth}{O}\setlength{\Height}{-\Height}%
-\put(-0.0500,-0.0500){\hspace*{\Width}\raisebox{\Height}{O}}%
-%
-%
-\special{pa -342 -135}\special{pa -871 -48}\special{pa -607 -700}\special{pa -342 -135}%
-\special{fp}%
-\special{pa -607 -700}\special{pa -607 -1005}%
-\special{fp}%
-\special{pn 16}%
-\special{pa -529 87}\special{pa -187 223}\special{pa -358 -454}\special{pa -529 87}%
-\special{fp}%
-\special{pa -358 -454}\special{pa -358 -758}%
-\special{fp}%
-\special{pn 8}%
-\settowidth{\Width}{A}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{A}\settodepth{\Depth}{A}\setlength{\Height}{-\Height}%
-\put(-1.0867,0.3792){\hspace*{\Width}\raisebox{\Height}{A}}%
-%
-%
-\settowidth{\Width}{B}\setlength{\Width}{-1\Width}%
-\settoheight{\Height}{B}\settodepth{\Depth}{B}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(-2.8157,0.1514){\hspace*{\Width}\raisebox{\Height}{B}}%
-%
-%
-\settowidth{\Width}{C}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{C}\settodepth{\Depth}{C}\setlength{\Height}{\Depth}%
-\put(-1.8762,2.2739){\hspace*{\Width}\raisebox{\Height}{C}}%
-%
-%
-\settowidth{\Width}{D}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{D}\settodepth{\Depth}{D}\setlength{\Height}{\Depth}%
-\put(-1.8762,3.2406){\hspace*{\Width}\raisebox{\Height}{D}}%
-%
-%
-\end{picture}}% \ No newline at end of file
diff --git a/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig3d/rotatedata3d02.tex b/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig3d/rotatedata3d02.tex
deleted file mode 100644
index 35cbc525..00000000
--- a/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig3d/rotatedata3d02.tex
+++ /dev/null
@@ -1,85 +0,0 @@
-%%% /Users/Hannya/ketcindy/ketwork/template.tex 2016-8-15 20:32
-%%% template.sce 2016-8-15 20:32
-{\unitlength=8mm%
-\begin{picture}%
-( 7.77000, 5.78000)( -4.42000, -1.51000)%
-\special{pn 8}%
-%
-\settowidth{\Width}{$x$}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{$x$}\settodepth{\Depth}{$x$}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(-3.5455,-0.5866){\hspace*{\Width}\raisebox{\Height}{$x$}}%
-%
-%
-\settowidth{\Width}{$y$}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{$y$}\settodepth{\Depth}{$y$}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(2.8935,-1.1428){\hspace*{\Width}\raisebox{\Height}{$y$}}%
-%
-%
-\settowidth{\Width}{$z$}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{$z$}\settodepth{\Depth}{$z$}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(0.0000,4.0571){\hspace*{\Width}\raisebox{\Height}{$z$}}%
-%
-%
-\special{pa 1055 -175}\special{pa -1058 175}%
-\special{fp}%
-\special{pa -856 -338}\special{pa 856 338}%
-\special{fp}%
-\special{pa 0 476}\special{pa 0 -1218}%
-\special{fp}%
-\special{pa -988 139}\special{pa -1058 175}\special{pa -980 187}\special{pa -984 163}%
-\special{pa -988 139}\special{sh 1}\special{ip}%
-\special{pn 1}%
-\special{pa -988 139}\special{pa -1058 175}\special{pa -980 187}\special{pa -984 163}%
-\special{pa -988 139}\special{pa -1058 175}%
-\special{fp}%
-\special{pn 8}%
-\special{pa 777 333}\special{pa 856 338}\special{pa 795 288}\special{pa 786 310}\special{pa 777 333}%
-\special{sh 1}\special{ip}%
-\special{pn 1}%
-\special{pa 777 333}\special{pa 856 338}\special{pa 795 288}\special{pa 786 310}\special{pa 777 333}%
-\special{pa 856 338}%
-\special{fp}%
-\special{pn 8}%
-\special{pa 24 -1143}\special{pa 0 -1218}\special{pa -24 -1143}\special{pa 0 -1143}%
-\special{pa 24 -1143}\special{sh 1}\special{ip}%
-\special{pn 1}%
-\special{pa 24 -1143}\special{pa 0 -1218}\special{pa -24 -1143}\special{pa 0 -1143}%
-\special{pa 24 -1143}\special{pa 0 -1218}%
-\special{fp}%
-\special{pn 8}%
-\settowidth{\Width}{O}\setlength{\Width}{-1\Width}%
-\settoheight{\Height}{O}\settodepth{\Depth}{O}\setlength{\Height}{-\Height}%
-\put(-0.0500,-0.0500){\hspace*{\Width}\raisebox{\Height}{O}}%
-%
-%
-\special{pa -342 -135}\special{pa -871 -48}\special{pa -607 -700}\special{pa -342 -135}%
-\special{fp}%
-\special{pa -607 -700}\special{pa -607 -1005}%
-\special{fp}%
-\special{pn 16}%
-\special{pa -964 64}\special{pa -622 199}\special{pa -793 -478}\special{pa -964 64}%
-\special{fp}%
-\special{pa -793 -478}\special{pa -793 -782}%
-\special{fp}%
-\special{pn 8}%
-\settowidth{\Width}{A}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{A}\settodepth{\Depth}{A}\setlength{\Height}{-\Height}%
-\put(-1.0867,0.3792){\hspace*{\Width}\raisebox{\Height}{A}}%
-%
-%
-\settowidth{\Width}{B}\setlength{\Width}{-1\Width}%
-\settoheight{\Height}{B}\settodepth{\Depth}{B}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(-2.8157,0.1514){\hspace*{\Width}\raisebox{\Height}{B}}%
-%
-%
-\settowidth{\Width}{C}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{C}\settodepth{\Depth}{C}\setlength{\Height}{\Depth}%
-\put(-1.8762,2.2739){\hspace*{\Width}\raisebox{\Height}{C}}%
-%
-%
-\settowidth{\Width}{D}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{D}\settodepth{\Depth}{D}\setlength{\Height}{\Depth}%
-\put(-1.8762,3.2406){\hspace*{\Width}\raisebox{\Height}{D}}%
-%
-%
-\end{picture}}% \ No newline at end of file
diff --git a/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig3d/saddle1.tex b/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig3d/saddle1.tex
deleted file mode 100644
index 3ff0ce04..00000000
--- a/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig3d/saddle1.tex
+++ /dev/null
@@ -1,326 +0,0 @@
-%%% /Users/Hannya/ketcindy/ketwork/template.tex 2016-8-7 16:45
-%%% template.sce 2016-8-7 16:45
-{\unitlength=4mm%
-\begin{picture}%
-( 10.00000, 10.00000)( -5.00000, -5.00000)%
-\special{pn 8}%
-%
-\settowidth{\Width}{$x$}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{$x$}\settodepth{\Depth}{$x$}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(-4.6011,-1.1540){\hspace*{\Width}\raisebox{\Height}{$x$}}%
-%
-%
-\settowidth{\Width}{$y$}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{$y$}\settodepth{\Depth}{$y$}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(2.4854,-2.2142){\hspace*{\Width}\raisebox{\Height}{$y$}}%
-%
-%
-\settowidth{\Width}{$z$}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{$z$}\settodepth{\Depth}{$z$}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(0.0000,4.5961){\hspace*{\Width}\raisebox{\Height}{$z$}}%
-%
-%
-\special{pa 696 -174}\special{pa -696 174}%
-\special{fp}%
-\special{pa -369 -329}\special{pa 369 329}%
-\special{fp}%
-\special{pa 0 694}\special{pa 0 -694}%
-\special{fp}%
-\special{pa 131 -201}\special{pa 107 -107}\special{pa 84 -20}\special{pa 61 59}\special{pa 38 130}%
-\special{pa 15 194}\special{pa -9 250}\special{pa -32 298}\special{pa -55 339}\special{pa -78 371}%
-\special{pa -101 397}\special{pa -124 414}\special{pa -148 424}\special{pa -171 426}%
-\special{pa -194 420}\special{pa -217 406}\special{pa -240 385}\special{pa -264 356}%
-\special{pa -287 320}\special{pa -310 275}\special{pa -333 223}\special{pa -356 164}%
-\special{pa -379 96}\special{pa -403 21}\special{pa -426 -62}%
-\special{fp}%
-\special{pa 145 -294}\special{pa 122 -199}\special{pa 99 -112}\special{pa 76 -33}%
-\special{pa 53 38}\special{pa 29 102}\special{pa 6 158}\special{pa -17 206}\special{pa -40 246}%
-\special{pa -63 279}\special{pa -86 304}\special{pa -110 322}\special{pa -133 331}%
-\special{pa -156 333}\special{pa -179 327}\special{pa -202 314}\special{pa -226 293}%
-\special{pa -249 264}\special{pa -272 227}\special{pa -295 183}\special{pa -318 131}%
-\special{pa -342 71}\special{pa -365 4}\special{pa -388 -71}\special{pa -411 -154}%
-\special{fp}%
-\special{pa 160 -375}\special{pa 137 -280}\special{pa 114 -194}\special{pa 91 -115}%
-\special{pa 67 -43}\special{pa 44 20}\special{pa 21 76}\special{pa -2 125}\special{pa -25 165}%
-\special{pa -49 198}\special{pa -72 223}\special{pa -95 240}\special{pa -118 250}%
-\special{pa -141 252}\special{pa -164 246}\special{pa -188 233}\special{pa -211 212}%
-\special{pa -234 183}\special{pa -257 146}\special{pa -280 102}\special{pa -304 50}%
-\special{pa -327 -10}\special{pa -350 -77}\special{pa -373 -152}\special{pa -396 -235}%
-\special{fp}%
-\special{pa 175 -445}\special{pa 152 -350}\special{pa 129 -264}\special{pa 105 -185}%
-\special{pa 82 -113}\special{pa 59 -50}\special{pa 36 6}\special{pa 13 54}\special{pa -11 95}%
-\special{pa -34 128}\special{pa -57 153}\special{pa -80 170}\special{pa -103 180}%
-\special{pa -127 182}\special{pa -150 176}\special{pa -173 163}\special{pa -196 142}%
-\special{pa -219 113}\special{pa -242 76}\special{pa -266 32}\special{pa -289 -20}%
-\special{pa -312 -80}\special{pa -335 -147}\special{pa -358 -223}\special{pa -382 -305}%
-\special{fp}%
-\special{pa 190 -504}\special{pa 166 -409}\special{pa 143 -323}\special{pa 120 -244}%
-\special{pa 97 -172}\special{pa 74 -109}\special{pa 51 -53}\special{pa 27 -5}\special{pa 4 36}%
-\special{pa -19 69}\special{pa -42 94}\special{pa -65 111}\special{pa -89 121}\special{pa -112 123}%
-\special{pa -135 117}\special{pa -158 104}\special{pa -181 83}\special{pa -205 54}%
-\special{pa -228 17}\special{pa -251 -27}\special{pa -274 -79}\special{pa -297 -139}%
-\special{pa -320 -206}\special{pa -344 -282}\special{pa -367 -364}%
-\special{fp}%
-\special{pa 204 -552}\special{pa 181 -457}\special{pa 158 -371}\special{pa 135 -292}%
-\special{pa 112 -220}\special{pa 88 -157}\special{pa 65 -101}\special{pa 42 -52}\special{pa 19 -12}%
-\special{pa -4 21}\special{pa -27 46}\special{pa -51 63}\special{pa -74 73}\special{pa -97 75}%
-\special{pa -120 69}\special{pa -143 56}\special{pa -167 35}\special{pa -190 6}\special{pa -213 -31}%
-\special{pa -236 -75}\special{pa -259 -127}\special{pa -282 -187}\special{pa -306 -254}%
-\special{pa -329 -329}\special{pa -352 -412}%
-\special{fp}%
-\special{pa 219 -589}\special{pa 196 -494}\special{pa 173 -407}\special{pa 150 -328}%
-\special{pa 126 -257}\special{pa 103 -193}\special{pa 80 -137}\special{pa 57 -89}%
-\special{pa 34 -49}\special{pa 11 -16}\special{pa -13 9}\special{pa -36 27}\special{pa -59 36}%
-\special{pa -82 38}\special{pa -105 32}\special{pa -129 19}\special{pa -152 -2}\special{pa -175 -31}%
-\special{pa -198 -68}\special{pa -221 -112}\special{pa -245 -164}\special{pa -268 -224}%
-\special{pa -291 -291}\special{pa -314 -366}\special{pa -337 -449}%
-\special{fp}%
-\special{pa 234 -614}\special{pa 211 -520}\special{pa 188 -433}\special{pa 164 -354}%
-\special{pa 141 -283}\special{pa 118 -219}\special{pa 95 -163}\special{pa 72 -115}%
-\special{pa 48 -74}\special{pa 25 -42}\special{pa 2 -17}\special{pa -21 1}\special{pa -44 11}%
-\special{pa -67 12}\special{pa -91 7}\special{pa -114 -7}\special{pa -137 -28}\special{pa -160 -57}%
-\special{pa -183 -93}\special{pa -207 -138}\special{pa -230 -190}\special{pa -253 -249}%
-\special{pa -276 -317}\special{pa -299 -392}\special{pa -323 -475}%
-\special{fp}%
-\special{pa 249 -629}\special{pa 226 -535}\special{pa 202 -448}\special{pa 179 -369}%
-\special{pa 156 -297}\special{pa 133 -234}\special{pa 110 -178}\special{pa 86 -130}%
-\special{pa 63 -89}\special{pa 40 -56}\special{pa 17 -31}\special{pa -6 -14}\special{pa -30 -4}%
-\special{pa -53 -2}\special{pa -76 -8}\special{pa -99 -21}\special{pa -122 -43}\special{pa -145 -71}%
-\special{pa -169 -108}\special{pa -192 -152}\special{pa -215 -204}\special{pa -238 -264}%
-\special{pa -261 -331}\special{pa -285 -407}\special{pa -308 -489}%
-\special{fp}%
-\special{pa 263 -632}\special{pa 240 -538}\special{pa 217 -451}\special{pa 194 -372}%
-\special{pa 171 -301}\special{pa 148 -237}\special{pa 124 -181}\special{pa 101 -133}%
-\special{pa 78 -93}\special{pa 55 -60}\special{pa 32 -35}\special{pa 8 -17}\special{pa -15 -8}%
-\special{pa -38 -6}\special{pa -61 -11}\special{pa -84 -25}\special{pa -108 -46}\special{pa -131 -75}%
-\special{pa -154 -111}\special{pa -177 -156}\special{pa -200 -208}\special{pa -223 -268}%
-\special{pa -247 -335}\special{pa -270 -410}\special{pa -293 -493}%
-\special{fp}%
-\special{pa 278 -625}\special{pa 255 -530}\special{pa 232 -444}\special{pa 209 -365}%
-\special{pa 185 -293}\special{pa 162 -230}\special{pa 139 -174}\special{pa 116 -125}%
-\special{pa 93 -85}\special{pa 70 -52}\special{pa 46 -27}\special{pa 23 -10}\special{pa 0 0}%
-\special{pa -23 2}\special{pa -46 -4}\special{pa -70 -17}\special{pa -93 -38}\special{pa -116 -67}%
-\special{pa -139 -104}\special{pa -162 -148}\special{pa -185 -200}\special{pa -209 -260}%
-\special{pa -232 -327}\special{pa -255 -402}\special{pa -278 -485}%
-\special{fp}%
-\special{pa 293 -606}\special{pa 270 -512}\special{pa 247 -425}\special{pa 223 -346}%
-\special{pa 200 -275}\special{pa 177 -211}\special{pa 154 -155}\special{pa 131 -107}%
-\special{pa 108 -66}\special{pa 84 -33}\special{pa 61 -8}\special{pa 38 9}\special{pa 15 19}%
-\special{pa -8 21}\special{pa -32 15}\special{pa -55 1}\special{pa -78 -20}\special{pa -101 -49}%
-\special{pa -124 -85}\special{pa -148 -129}\special{pa -171 -181}\special{pa -194 -241}%
-\special{pa -217 -309}\special{pa -240 -384}\special{pa -263 -467}%
-\special{fp}%
-\special{pa 308 -576}\special{pa 285 -482}\special{pa 261 -395}\special{pa 238 -316}%
-\special{pa 215 -245}\special{pa 192 -181}\special{pa 169 -125}\special{pa 145 -77}%
-\special{pa 122 -36}\special{pa 99 -4}\special{pa 76 21}\special{pa 53 39}\special{pa 30 49}%
-\special{pa 6 50}\special{pa -17 45}\special{pa -40 31}\special{pa -63 10}\special{pa -86 -19}%
-\special{pa -110 -55}\special{pa -133 -100}\special{pa -156 -152}\special{pa -179 -211}%
-\special{pa -202 -279}\special{pa -226 -354}\special{pa -249 -437}%
-\special{fp}%
-\special{pa 323 -535}\special{pa 299 -441}\special{pa 276 -354}\special{pa 253 -275}%
-\special{pa 230 -204}\special{pa 207 -140}\special{pa 183 -84}\special{pa 160 -36}%
-\special{pa 137 4}\special{pa 114 37}\special{pa 91 62}\special{pa 67 80}\special{pa 44 89}%
-\special{pa 21 91}\special{pa -2 86}\special{pa -25 72}\special{pa -48 51}\special{pa -72 22}%
-\special{pa -95 -14}\special{pa -118 -59}\special{pa -141 -111}\special{pa -164 -170}%
-\special{pa -188 -238}\special{pa -211 -313}\special{pa -234 -396}%
-\special{fp}%
-\special{pa 337 -483}\special{pa 314 -389}\special{pa 291 -302}\special{pa 268 -223}%
-\special{pa 245 -152}\special{pa 221 -88}\special{pa 198 -32}\special{pa 175 16}\special{pa 152 56}%
-\special{pa 129 89}\special{pa 105 114}\special{pa 82 132}\special{pa 59 141}\special{pa 36 143}%
-\special{pa 13 138}\special{pa -11 124}\special{pa -34 103}\special{pa -57 74}\special{pa -80 38}%
-\special{pa -103 -7}\special{pa -126 -59}\special{pa -150 -118}\special{pa -173 -186}%
-\special{pa -196 -261}\special{pa -219 -344}%
-\special{fp}%
-\special{pa 352 -420}\special{pa 329 -326}\special{pa 306 -239}\special{pa 282 -160}%
-\special{pa 259 -89}\special{pa 236 -25}\special{pa 213 31}\special{pa 190 79}\special{pa 167 120}%
-\special{pa 143 152}\special{pa 120 177}\special{pa 97 195}\special{pa 74 205}\special{pa 51 206}%
-\special{pa 27 201}\special{pa 4 187}\special{pa -19 166}\special{pa -42 137}\special{pa -65 101}%
-\special{pa -88 56}\special{pa -112 4}\special{pa -135 -55}\special{pa -158 -123}%
-\special{pa -181 -198}\special{pa -204 -281}%
-\special{fp}%
-\special{pa 367 -346}\special{pa 344 -252}\special{pa 320 -165}\special{pa 297 -86}%
-\special{pa 274 -14}\special{pa 251 49}\special{pa 228 105}\special{pa 205 153}\special{pa 181 194}%
-\special{pa 158 227}\special{pa 135 252}\special{pa 112 269}\special{pa 89 279}\special{pa 65 281}%
-\special{pa 42 275}\special{pa 19 261}\special{pa -4 240}\special{pa -27 211}\special{pa -51 175}%
-\special{pa -74 131}\special{pa -97 79}\special{pa -120 19}\special{pa -143 -49}\special{pa -166 -124}%
-\special{pa -190 -207}%
-\special{fp}%
-\special{pa 382 -261}\special{pa 358 -166}\special{pa 335 -80}\special{pa 312 -1}%
-\special{pa 289 71}\special{pa 266 134}\special{pa 242 190}\special{pa 219 239}\special{pa 196 279}%
-\special{pa 173 312}\special{pa 150 337}\special{pa 127 354}\special{pa 103 364}\special{pa 80 366}%
-\special{pa 57 360}\special{pa 34 347}\special{pa 11 326}\special{pa -13 297}\special{pa -36 260}%
-\special{pa -59 216}\special{pa -82 164}\special{pa -105 104}\special{pa -129 37}%
-\special{pa -152 -38}\special{pa -175 -121}%
-\special{fp}%
-\special{pa 396 -164}\special{pa 373 -70}\special{pa 350 17}\special{pa 327 96}\special{pa 304 167}%
-\special{pa 280 231}\special{pa 257 287}\special{pa 234 335}\special{pa 211 376}\special{pa 188 408}%
-\special{pa 164 433}\special{pa 141 451}\special{pa 118 460}\special{pa 95 462}\special{pa 72 457}%
-\special{pa 49 443}\special{pa 25 422}\special{pa 2 393}\special{pa -21 357}\special{pa -44 312}%
-\special{pa -67 260}\special{pa -91 201}\special{pa -114 133}\special{pa -137 58}%
-\special{pa -160 -25}%
-\special{fp}%
-\special{pa 411 -57}\special{pa 388 38}\special{pa 365 124}\special{pa 342 203}\special{pa 318 275}%
-\special{pa 295 338}\special{pa 272 394}\special{pa 249 443}\special{pa 226 483}\special{pa 202 516}%
-\special{pa 179 541}\special{pa 156 558}\special{pa 133 568}\special{pa 110 570}\special{pa 86 564}%
-\special{pa 63 551}\special{pa 40 530}\special{pa 17 501}\special{pa -6 464}\special{pa -29 420}%
-\special{pa -53 368}\special{pa -76 308}\special{pa -99 241}\special{pa -122 166}%
-\special{pa -145 83}%
-\special{fp}%
-\special{pa 426 62}\special{pa 403 156}\special{pa 379 243}\special{pa 356 322}\special{pa 333 393}%
-\special{pa 310 457}\special{pa 287 513}\special{pa 264 561}\special{pa 240 602}\special{pa 217 634}%
-\special{pa 194 660}\special{pa 171 677}\special{pa 148 687}\special{pa 124 689}\special{pa 101 683}%
-\special{pa 78 669}\special{pa 55 648}\special{pa 32 619}\special{pa 9 583}\special{pa -15 538}%
-\special{pa -38 486}\special{pa -61 427}\special{pa -84 359}\special{pa -107 284}%
-\special{pa -131 201}%
-\special{fp}%
-\special{pa 131 -201}\special{pa 143 -279}\special{pa 155 -349}\special{pa 168 -411}%
-\special{pa 180 -466}\special{pa 192 -513}\special{pa 204 -552}\special{pa 217 -583}%
-\special{pa 229 -607}\special{pa 241 -623}\special{pa 254 -631}\special{pa 266 -632}%
-\special{pa 278 -625}\special{pa 291 -610}\special{pa 303 -588}\special{pa 315 -557}%
-\special{pa 327 -519}\special{pa 340 -474}\special{pa 352 -420}\special{pa 364 -359}%
-\special{pa 377 -290}\special{pa 389 -214}\special{pa 401 -130}\special{pa 414 -38}%
-\special{pa 426 62}%
-\special{fp}%
-\special{pa 103 -89}\special{pa 115 -167}\special{pa 127 -237}\special{pa 140 -299}%
-\special{pa 152 -353}\special{pa 164 -400}\special{pa 177 -439}\special{pa 189 -471}%
-\special{pa 201 -495}\special{pa 213 -511}\special{pa 226 -519}\special{pa 238 -520}%
-\special{pa 250 -512}\special{pa 263 -498}\special{pa 275 -475}\special{pa 287 -445}%
-\special{pa 300 -407}\special{pa 312 -361}\special{pa 324 -308}\special{pa 337 -247}%
-\special{pa 349 -178}\special{pa 361 -102}\special{pa 373 -17}\special{pa 386 75}%
-\special{pa 398 174}%
-\special{fp}%
-\special{pa 75 12}\special{pa 87 -65}\special{pa 100 -135}\special{pa 112 -197}\special{pa 124 -252}%
-\special{pa 136 -299}\special{pa 149 -338}\special{pa 161 -370}\special{pa 173 -393}%
-\special{pa 186 -409}\special{pa 198 -418}\special{pa 210 -418}\special{pa 223 -411}%
-\special{pa 235 -396}\special{pa 247 -374}\special{pa 259 -344}\special{pa 272 -306}%
-\special{pa 284 -260}\special{pa 296 -207}\special{pa 309 -145}\special{pa 321 -77}%
-\special{pa 333 0}\special{pa 346 84}\special{pa 358 176}\special{pa 370 276}%
-\special{fp}%
-\special{pa 47 103}\special{pa 59 25}\special{pa 72 -45}\special{pa 84 -107}\special{pa 96 -162}%
-\special{pa 109 -209}\special{pa 121 -248}\special{pa 133 -279}\special{pa 146 -303}%
-\special{pa 158 -319}\special{pa 170 -327}\special{pa 182 -328}\special{pa 195 -321}%
-\special{pa 207 -306}\special{pa 219 -284}\special{pa 232 -253}\special{pa 244 -215}%
-\special{pa 256 -170}\special{pa 269 -116}\special{pa 281 -55}\special{pa 293 14}%
-\special{pa 305 90}\special{pa 318 174}\special{pa 330 266}\special{pa 342 366}%
-\special{fp}%
-\special{pa 19 182}\special{pa 32 104}\special{pa 44 34}\special{pa 56 -28}\special{pa 69 -83}%
-\special{pa 81 -130}\special{pa 93 -169}\special{pa 105 -200}\special{pa 118 -224}%
-\special{pa 130 -240}\special{pa 142 -248}\special{pa 155 -249}\special{pa 167 -242}%
-\special{pa 179 -227}\special{pa 192 -204}\special{pa 204 -174}\special{pa 216 -136}%
-\special{pa 228 -91}\special{pa 241 -37}\special{pa 253 24}\special{pa 265 93}\special{pa 278 169}%
-\special{pa 290 253}\special{pa 302 345}\special{pa 315 445}%
-\special{fp}%
-\special{pa -9 250}\special{pa 4 172}\special{pa 16 102}\special{pa 28 40}\special{pa 41 -15}%
-\special{pa 53 -61}\special{pa 65 -101}\special{pa 78 -132}\special{pa 90 -156}\special{pa 102 -172}%
-\special{pa 115 -180}\special{pa 127 -181}\special{pa 139 -174}\special{pa 151 -159}%
-\special{pa 164 -136}\special{pa 176 -106}\special{pa 188 -68}\special{pa 201 -22}%
-\special{pa 213 31}\special{pa 225 92}\special{pa 238 161}\special{pa 250 237}\special{pa 262 321}%
-\special{pa 274 413}\special{pa 287 513}%
-\special{fp}%
-\special{pa -36 307}\special{pa -24 229}\special{pa -12 159}\special{pa 1 97}\special{pa 13 42}%
-\special{pa 25 -5}\special{pa 37 -44}\special{pa 50 -75}\special{pa 62 -99}\special{pa 74 -115}%
-\special{pa 87 -123}\special{pa 99 -124}\special{pa 111 -117}\special{pa 124 -102}%
-\special{pa 136 -79}\special{pa 148 -49}\special{pa 160 -11}\special{pa 173 34}\special{pa 185 88}%
-\special{pa 197 149}\special{pa 210 218}\special{pa 222 294}\special{pa 234 378}\special{pa 247 470}%
-\special{pa 259 570}%
-\special{fp}%
-\special{pa -64 353}\special{pa -52 275}\special{pa -40 205}\special{pa -27 143}\special{pa -15 88}%
-\special{pa -3 41}\special{pa 10 2}\special{pa 22 -29}\special{pa 34 -53}\special{pa 47 -69}%
-\special{pa 59 -77}\special{pa 71 -78}\special{pa 83 -71}\special{pa 96 -56}\special{pa 108 -34}%
-\special{pa 120 -3}\special{pa 133 35}\special{pa 145 80}\special{pa 157 134}\special{pa 170 195}%
-\special{pa 182 263}\special{pa 194 340}\special{pa 206 424}\special{pa 219 516}\special{pa 231 616}%
-\special{fp}%
-\special{pa -92 387}\special{pa -80 310}\special{pa -67 240}\special{pa -55 177}\special{pa -43 123}%
-\special{pa -30 76}\special{pa -18 37}\special{pa -6 5}\special{pa 6 -18}\special{pa 19 -34}%
-\special{pa 31 -43}\special{pa 43 -43}\special{pa 56 -36}\special{pa 68 -21}\special{pa 80 1}%
-\special{pa 93 31}\special{pa 105 69}\special{pa 117 115}\special{pa 129 168}\special{pa 142 229}%
-\special{pa 154 298}\special{pa 166 375}\special{pa 179 459}\special{pa 191 551}\special{pa 203 650}%
-\special{fp}%
-\special{pa -120 411}\special{pa -108 333}\special{pa -95 263}\special{pa -83 201}%
-\special{pa -71 147}\special{pa -58 100}\special{pa -46 60}\special{pa -34 29}\special{pa -21 5}%
-\special{pa -9 -11}\special{pa 3 -19}\special{pa 16 -20}\special{pa 28 -13}\special{pa 40 2}%
-\special{pa 52 25}\special{pa 65 55}\special{pa 77 93}\special{pa 89 139}\special{pa 102 192}%
-\special{pa 114 253}\special{pa 126 322}\special{pa 139 398}\special{pa 151 483}\special{pa 163 574}%
-\special{pa 175 674}%
-\special{fp}%
-\special{pa -148 424}\special{pa -135 346}\special{pa -123 276}\special{pa -111 214}%
-\special{pa -98 159}\special{pa -86 112}\special{pa -74 73}\special{pa -62 42}\special{pa -49 18}%
-\special{pa -37 2}\special{pa -25 -6}\special{pa -12 -7}\special{pa 0 0}\special{pa 12 15}%
-\special{pa 25 37}\special{pa 37 68}\special{pa 49 106}\special{pa 62 151}\special{pa 74 205}%
-\special{pa 86 266}\special{pa 98 334}\special{pa 111 411}\special{pa 123 495}\special{pa 135 587}%
-\special{pa 148 687}%
-\special{fp}%
-\special{pa -175 425}\special{pa -163 347}\special{pa -151 277}\special{pa -139 215}%
-\special{pa -126 160}\special{pa -114 114}\special{pa -102 74}\special{pa -89 43}%
-\special{pa -77 19}\special{pa -65 3}\special{pa -52 -5}\special{pa -40 -6}\special{pa -28 1}%
-\special{pa -16 16}\special{pa -3 39}\special{pa 9 69}\special{pa 21 107}\special{pa 34 153}%
-\special{pa 46 206}\special{pa 58 267}\special{pa 71 336}\special{pa 83 412}\special{pa 95 497}%
-\special{pa 108 588}\special{pa 120 688}%
-\special{fp}%
-\special{pa -203 415}\special{pa -191 338}\special{pa -179 268}\special{pa -166 205}%
-\special{pa -154 151}\special{pa -142 104}\special{pa -129 65}\special{pa -117 33}%
-\special{pa -105 10}\special{pa -93 -6}\special{pa -80 -15}\special{pa -68 -15}\special{pa -56 -8}%
-\special{pa -43 7}\special{pa -31 29}\special{pa -19 59}\special{pa -6 97}\special{pa 6 143}%
-\special{pa 18 196}\special{pa 30 257}\special{pa 43 326}\special{pa 55 403}\special{pa 67 487}%
-\special{pa 80 579}\special{pa 92 678}%
-\special{fp}%
-\special{pa -231 395}\special{pa -219 317}\special{pa -206 247}\special{pa -194 185}%
-\special{pa -182 130}\special{pa -170 83}\special{pa -157 44}\special{pa -145 13}%
-\special{pa -133 -11}\special{pa -120 -27}\special{pa -108 -36}\special{pa -96 -36}%
-\special{pa -83 -29}\special{pa -71 -14}\special{pa -59 8}\special{pa -47 39}\special{pa -34 76}%
-\special{pa -22 122}\special{pa -10 176}\special{pa 3 237}\special{pa 15 305}\special{pa 27 382}%
-\special{pa 40 466}\special{pa 52 558}\special{pa 64 658}%
-\special{fp}%
-\special{pa -259 363}\special{pa -247 285}\special{pa -234 215}\special{pa -222 153}%
-\special{pa -210 98}\special{pa -197 51}\special{pa -185 12}\special{pa -173 -19}%
-\special{pa -160 -43}\special{pa -148 -59}\special{pa -136 -67}\special{pa -124 -68}%
-\special{pa -111 -61}\special{pa -99 -46}\special{pa -87 -24}\special{pa -74 7}\special{pa -62 45}%
-\special{pa -50 90}\special{pa -37 144}\special{pa -25 205}\special{pa -13 273}\special{pa -1 350}%
-\special{pa 12 434}\special{pa 24 526}\special{pa 36 626}%
-\special{fp}%
-\special{pa -287 320}\special{pa -274 242}\special{pa -262 172}\special{pa -250 110}%
-\special{pa -238 55}\special{pa -225 8}\special{pa -213 -31}\special{pa -201 -62}%
-\special{pa -188 -86}\special{pa -176 -102}\special{pa -164 -110}\special{pa -151 -111}%
-\special{pa -139 -104}\special{pa -127 -89}\special{pa -115 -67}\special{pa -102 -36}%
-\special{pa -90 2}\special{pa -78 47}\special{pa -65 101}\special{pa -53 162}\special{pa -41 231}%
-\special{pa -28 307}\special{pa -16 391}\special{pa -4 483}\special{pa 9 583}%
-\special{fp}%
-\special{pa -315 266}\special{pa -302 188}\special{pa -290 118}\special{pa -278 56}%
-\special{pa -265 1}\special{pa -253 -46}\special{pa -241 -85}\special{pa -228 -116}%
-\special{pa -216 -140}\special{pa -204 -156}\special{pa -192 -164}\special{pa -179 -165}%
-\special{pa -167 -158}\special{pa -155 -143}\special{pa -142 -121}\special{pa -130 -90}%
-\special{pa -118 -52}\special{pa -105 -7}\special{pa -93 47}\special{pa -81 108}\special{pa -69 176}%
-\special{pa -56 253}\special{pa -44 337}\special{pa -32 429}\special{pa -19 529}%
-\special{fp}%
-\special{pa -342 200}\special{pa -330 123}\special{pa -318 53}\special{pa -305 -10}%
-\special{pa -293 -64}\special{pa -281 -111}\special{pa -269 -150}\special{pa -256 -182}%
-\special{pa -244 -205}\special{pa -232 -221}\special{pa -219 -230}\special{pa -207 -230}%
-\special{pa -195 -223}\special{pa -182 -208}\special{pa -170 -186}\special{pa -158 -156}%
-\special{pa -146 -118}\special{pa -133 -72}\special{pa -121 -19}\special{pa -109 42}%
-\special{pa -96 111}\special{pa -84 188}\special{pa -72 272}\special{pa -59 364}\special{pa -47 463}%
-\special{fp}%
-\special{pa -370 124}\special{pa -358 46}\special{pa -346 -24}\special{pa -333 -86}%
-\special{pa -321 -140}\special{pa -309 -187}\special{pa -296 -226}\special{pa -284 -258}%
-\special{pa -272 -282}\special{pa -259 -298}\special{pa -247 -306}\special{pa -235 -307}%
-\special{pa -223 -299}\special{pa -210 -285}\special{pa -198 -262}\special{pa -186 -232}%
-\special{pa -173 -194}\special{pa -161 -148}\special{pa -149 -95}\special{pa -136 -34}%
-\special{pa -124 35}\special{pa -112 111}\special{pa -100 196}\special{pa -87 288}%
-\special{pa -75 387}%
-\special{fp}%
-\special{pa -398 37}\special{pa -386 -41}\special{pa -373 -111}\special{pa -361 -173}%
-\special{pa -349 -228}\special{pa -337 -275}\special{pa -324 -314}\special{pa -312 -345}%
-\special{pa -300 -369}\special{pa -287 -385}\special{pa -275 -393}\special{pa -263 -394}%
-\special{pa -250 -387}\special{pa -238 -372}\special{pa -226 -349}\special{pa -213 -319}%
-\special{pa -201 -281}\special{pa -189 -236}\special{pa -177 -182}\special{pa -164 -121}%
-\special{pa -152 -52}\special{pa -140 24}\special{pa -127 108}\special{pa -115 200}%
-\special{pa -103 300}%
-\special{fp}%
-\special{pa -426 -62}\special{pa -414 -139}\special{pa -401 -209}\special{pa -389 -272}%
-\special{pa -377 -326}\special{pa -364 -373}\special{pa -352 -412}\special{pa -340 -444}%
-\special{pa -327 -467}\special{pa -315 -484}\special{pa -303 -492}\special{pa -291 -492}%
-\special{pa -278 -485}\special{pa -266 -471}\special{pa -254 -448}\special{pa -241 -418}%
-\special{pa -229 -380}\special{pa -217 -334}\special{pa -204 -281}\special{pa -192 -220}%
-\special{pa -180 -151}\special{pa -168 -74}\special{pa -155 10}\special{pa -143 102}%
-\special{pa -131 201}%
-\special{fp}%
-\end{picture}}% \ No newline at end of file
diff --git a/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig3d/sf3ddata3.tex b/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig3d/sf3ddata3.tex
deleted file mode 100644
index a2585b31..00000000
--- a/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig3d/sf3ddata3.tex
+++ /dev/null
@@ -1,312 +0,0 @@
-%%% /Users/Hannya/ketcindy/ketwork/template.tex 2016-8-7 19:12
-%%% template.sce 2016-8-7 19:12
-{\unitlength=6mm%
-\begin{picture}%
-( 10.01000, 7.51000)( -5.01000, -2.51000)%
-\special{pn 8}%
-%
-\settowidth{\Width}{$x$}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{$x$}\settodepth{\Depth}{$x$}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(-4.6011,-1.1540){\hspace*{\Width}\raisebox{\Height}{$x$}}%
-%
-%
-\settowidth{\Width}{$y$}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{$y$}\settodepth{\Depth}{$y$}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(2.4854,-2.2142){\hspace*{\Width}\raisebox{\Height}{$y$}}%
-%
-%
-\settowidth{\Width}{$z$}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{$z$}\settodepth{\Depth}{$z$}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(0.0000,4.5961){\hspace*{\Width}\raisebox{\Height}{$z$}}%
-%
-%
-\special{pa 1043 -262}\special{pa -1043 262}%
-\special{fp}%
-\special{pa -554 -493}\special{pa 554 493}%
-\special{fp}%
-\special{pa 0 593}\special{pa 0 -1041}%
-\special{fp}%
-\special{pa 0 0}\special{pa -26 -19}\special{pa -52 -38}\special{pa -78 -57}\special{pa -104 -74}%
-\special{pa -130 -89}\special{pa -156 -103}\special{pa -183 -114}\special{pa -209 -123}%
-\special{pa -235 -129}\special{pa -261 -132}\special{pa -287 -132}\special{pa -313 -129}%
-\special{pa -339 -123}\special{pa -365 -113}\special{pa -391 -100}\special{pa -417 -85}%
-\special{pa -443 -66}\special{pa -469 -44}\special{pa -496 -20}\special{pa -522 6}%
-\special{pa -548 35}\special{pa -574 64}\special{pa -600 96}\special{pa -626 128}%
-\special{fp}%
-\special{pa 0 0}\special{pa -21 -16}\special{pa -41 -31}\special{pa -62 -46}\special{pa -82 -60}%
-\special{pa -103 -72}\special{pa -123 -82}\special{pa -144 -90}\special{pa -164 -95}%
-\special{pa -185 -98}\special{pa -205 -97}\special{pa -226 -94}\special{pa -246 -87}%
-\special{pa -267 -77}\special{pa -287 -64}\special{pa -308 -48}\special{pa -328 -29}%
-\special{pa -349 -6}\special{pa -370 19}\special{pa -390 46}\special{pa -411 76}\special{pa -431 108}%
-\special{pa -452 141}\special{pa -472 176}\special{pa -493 211}%
-\special{fp}%
-\special{pa 0 0}\special{pa -13 -13}\special{pa -26 -26}\special{pa -39 -39}\special{pa -52 -50}%
-\special{pa -65 -59}\special{pa -78 -67}\special{pa -91 -72}\special{pa -104 -75}%
-\special{pa -117 -75}\special{pa -130 -72}\special{pa -143 -66}\special{pa -156 -57}%
-\special{pa -169 -45}\special{pa -182 -29}\special{pa -195 -11}\special{pa -207 11}%
-\special{pa -220 36}\special{pa -233 64}\special{pa -246 94}\special{pa -259 126}%
-\special{pa -272 161}\special{pa -285 196}\special{pa -298 234}\special{pa -311 272}%
-\special{fp}%
-\special{pa 0 0}\special{pa -4 -12}\special{pa -8 -24}\special{pa -12 -35}\special{pa -17 -45}%
-\special{pa -21 -53}\special{pa -25 -59}\special{pa -29 -63}\special{pa -33 -65}\special{pa -37 -63}%
-\special{pa -41 -59}\special{pa -45 -52}\special{pa -50 -42}\special{pa -54 -28}\special{pa -58 -11}%
-\special{pa -62 9}\special{pa -66 32}\special{pa -70 58}\special{pa -74 87}\special{pa -79 118}%
-\special{pa -83 152}\special{pa -87 187}\special{pa -91 225}\special{pa -95 263}\special{pa -99 302}%
-\special{fp}%
-\special{pa 0 0}\special{pa 5 -12}\special{pa 10 -24}\special{pa 15 -35}\special{pa 20 -45}%
-\special{pa 26 -53}\special{pa 31 -59}\special{pa 36 -64}\special{pa 41 -65}\special{pa 46 -64}%
-\special{pa 51 -60}\special{pa 56 -53}\special{pa 61 -43}\special{pa 66 -29}\special{pa 71 -12}%
-\special{pa 77 8}\special{pa 82 31}\special{pa 87 57}\special{pa 92 85}\special{pa 97 117}%
-\special{pa 102 150}\special{pa 107 186}\special{pa 112 223}\special{pa 117 261}\special{pa 122 301}%
-\special{fp}%
-\special{pa 0 0}\special{pa 14 -14}\special{pa 28 -27}\special{pa 42 -39}\special{pa 55 -50}%
-\special{pa 69 -60}\special{pa 83 -68}\special{pa 97 -73}\special{pa 111 -77}\special{pa 125 -77}%
-\special{pa 138 -74}\special{pa 152 -69}\special{pa 166 -60}\special{pa 180 -48}\special{pa 194 -32}%
-\special{pa 208 -14}\special{pa 221 8}\special{pa 235 33}\special{pa 249 60}\special{pa 263 90}%
-\special{pa 277 122}\special{pa 291 156}\special{pa 304 192}\special{pa 318 229}\special{pa 332 267}%
-\special{fp}%
-\special{pa 0 0}\special{pa 21 -16}\special{pa 42 -32}\special{pa 64 -47}\special{pa 85 -61}%
-\special{pa 106 -73}\special{pa 127 -84}\special{pa 149 -92}\special{pa 170 -98}\special{pa 191 -100}%
-\special{pa 212 -101}\special{pa 233 -97}\special{pa 255 -91}\special{pa 276 -82}%
-\special{pa 297 -69}\special{pa 318 -53}\special{pa 340 -34}\special{pa 361 -12}\special{pa 382 13}%
-\special{pa 403 40}\special{pa 424 70}\special{pa 446 101}\special{pa 467 134}\special{pa 488 168}%
-\special{pa 509 204}%
-\special{fp}%
-\special{pa 0 0}\special{pa 27 -20}\special{pa 53 -39}\special{pa 80 -58}\special{pa 106 -75}%
-\special{pa 133 -91}\special{pa 159 -105}\special{pa 186 -117}\special{pa 212 -126}%
-\special{pa 239 -133}\special{pa 265 -136}\special{pa 292 -137}\special{pa 318 -134}%
-\special{pa 345 -128}\special{pa 371 -119}\special{pa 398 -107}\special{pa 424 -91}%
-\special{pa 451 -73}\special{pa 478 -52}\special{pa 504 -28}\special{pa 531 -2}\special{pa 557 26}%
-\special{pa 584 55}\special{pa 610 86}\special{pa 637 118}%
-\special{fp}%
-\special{pa 0 0}\special{pa 29 -24}\special{pa 58 -48}\special{pa 88 -70}\special{pa 117 -92}%
-\special{pa 146 -112}\special{pa 175 -130}\special{pa 205 -146}\special{pa 234 -160}%
-\special{pa 263 -170}\special{pa 292 -178}\special{pa 322 -183}\special{pa 351 -184}%
-\special{pa 380 -182}\special{pa 409 -177}\special{pa 439 -169}\special{pa 468 -158}%
-\special{pa 497 -144}\special{pa 526 -127}\special{pa 555 -107}\special{pa 585 -85}%
-\special{pa 614 -62}\special{pa 643 -36}\special{pa 672 -10}\special{pa 702 18}%
-\special{fp}%
-\special{pa 0 0}\special{pa 29 -28}\special{pa 58 -56}\special{pa 87 -83}\special{pa 116 -109}%
-\special{pa 145 -134}\special{pa 175 -156}\special{pa 204 -177}\special{pa 233 -194}%
-\special{pa 262 -210}\special{pa 291 -222}\special{pa 320 -231}\special{pa 349 -237}%
-\special{pa 378 -239}\special{pa 407 -239}\special{pa 436 -235}\special{pa 465 -228}%
-\special{pa 494 -218}\special{pa 524 -205}\special{pa 553 -190}\special{pa 582 -173}%
-\special{pa 611 -153}\special{pa 640 -133}\special{pa 669 -110}\special{pa 698 -87}%
-\special{fp}%
-\special{pa 0 0}\special{pa 26 -32}\special{pa 52 -65}\special{pa 78 -96}\special{pa 104 -126}%
-\special{pa 130 -155}\special{pa 156 -181}\special{pa 183 -206}\special{pa 209 -227}%
-\special{pa 235 -247}\special{pa 261 -263}\special{pa 287 -276}\special{pa 313 -286}%
-\special{pa 339 -293}\special{pa 365 -296}\special{pa 391 -297}\special{pa 417 -294}%
-\special{pa 443 -288}\special{pa 469 -280}\special{pa 496 -269}\special{pa 522 -255}%
-\special{pa 548 -240}\special{pa 574 -223}\special{pa 600 -205}\special{pa 626 -186}%
-\special{fp}%
-\special{pa 0 0}\special{pa 21 -36}\special{pa 41 -72}\special{pa 62 -106}\special{pa 82 -140}%
-\special{pa 103 -172}\special{pa 123 -202}\special{pa 144 -230}\special{pa 164 -255}%
-\special{pa 185 -278}\special{pa 205 -298}\special{pa 226 -315}\special{pa 246 -328}%
-\special{pa 267 -338}\special{pa 287 -345}\special{pa 308 -349}\special{pa 328 -350}%
-\special{pa 349 -348}\special{pa 370 -343}\special{pa 390 -335}\special{pa 411 -325}%
-\special{pa 431 -313}\special{pa 452 -300}\special{pa 472 -286}\special{pa 493 -270}%
-\special{fp}%
-\special{pa 0 0}\special{pa 13 -38}\special{pa 26 -77}\special{pa 39 -114}\special{pa 52 -150}%
-\special{pa 65 -184}\special{pa 78 -217}\special{pa 91 -248}\special{pa 104 -275}%
-\special{pa 117 -301}\special{pa 130 -323}\special{pa 143 -342}\special{pa 156 -358}%
-\special{pa 169 -371}\special{pa 182 -380}\special{pa 195 -387}\special{pa 207 -390}%
-\special{pa 220 -390}\special{pa 233 -388}\special{pa 246 -383}\special{pa 259 -375}%
-\special{pa 272 -366}\special{pa 285 -355}\special{pa 298 -343}\special{pa 311 -330}%
-\special{fp}%
-\special{pa 0 0}\special{pa 4 -40}\special{pa 8 -79}\special{pa 12 -118}\special{pa 17 -155}%
-\special{pa 21 -191}\special{pa 25 -225}\special{pa 29 -257}\special{pa 33 -286}\special{pa 37 -312}%
-\special{pa 41 -336}\special{pa 45 -356}\special{pa 50 -373}\special{pa 54 -388}\special{pa 58 -398}%
-\special{pa 62 -406}\special{pa 66 -410}\special{pa 70 -412}\special{pa 74 -411}\special{pa 79 -407}%
-\special{pa 83 -401}\special{pa 87 -393}\special{pa 91 -383}\special{pa 95 -373}\special{pa 99 -361}%
-\special{fp}%
-\special{pa 0 0}\special{pa -5 -40}\special{pa -10 -79}\special{pa -15 -117}\special{pa -20 -155}%
-\special{pa -26 -191}\special{pa -31 -224}\special{pa -36 -256}\special{pa -41 -285}%
-\special{pa -46 -312}\special{pa -51 -335}\special{pa -56 -355}\special{pa -61 -373}%
-\special{pa -66 -387}\special{pa -71 -397}\special{pa -77 -405}\special{pa -82 -409}%
-\special{pa -87 -411}\special{pa -92 -409}\special{pa -97 -406}\special{pa -102 -400}%
-\special{pa -107 -392}\special{pa -112 -382}\special{pa -117 -371}\special{pa -122 -359}%
-\special{fp}%
-\special{pa 0 0}\special{pa -14 -38}\special{pa -28 -76}\special{pa -42 -113}\special{pa -55 -149}%
-\special{pa -69 -183}\special{pa -83 -216}\special{pa -97 -246}\special{pa -111 -274}%
-\special{pa -125 -299}\special{pa -138 -321}\special{pa -152 -340}\special{pa -166 -356}%
-\special{pa -180 -368}\special{pa -194 -377}\special{pa -208 -384}\special{pa -221 -387}%
-\special{pa -235 -387}\special{pa -249 -384}\special{pa -263 -379}\special{pa -277 -371}%
-\special{pa -291 -362}\special{pa -304 -351}\special{pa -318 -338}\special{pa -332 -325}%
-\special{fp}%
-\special{pa 0 0}\special{pa -21 -36}\special{pa -42 -71}\special{pa -64 -105}\special{pa -85 -139}%
-\special{pa -106 -170}\special{pa -127 -200}\special{pa -149 -228}\special{pa -170 -253}%
-\special{pa -191 -275}\special{pa -212 -295}\special{pa -233 -311}\special{pa -255 -324}%
-\special{pa -276 -334}\special{pa -297 -341}\special{pa -318 -344}\special{pa -340 -345}%
-\special{pa -361 -342}\special{pa -382 -337}\special{pa -403 -329}\special{pa -424 -319}%
-\special{pa -446 -307}\special{pa -467 -293}\special{pa -488 -278}\special{pa -509 -262}%
-\special{fp}%
-\special{pa 0 0}\special{pa -27 -32}\special{pa -53 -64}\special{pa -80 -95}\special{pa -106 -124}%
-\special{pa -133 -152}\special{pa -159 -179}\special{pa -186 -203}\special{pa -212 -224}%
-\special{pa -239 -243}\special{pa -265 -259}\special{pa -292 -272}\special{pa -318 -281}%
-\special{pa -345 -288}\special{pa -371 -291}\special{pa -398 -291}\special{pa -424 -287}%
-\special{pa -451 -281}\special{pa -478 -272}\special{pa -504 -261}\special{pa -531 -247}%
-\special{pa -557 -232}\special{pa -584 -214}\special{pa -610 -196}\special{pa -637 -176}%
-\special{fp}%
-\special{pa 0 0}\special{pa -29 -28}\special{pa -58 -55}\special{pa -88 -82}\special{pa -117 -108}%
-\special{pa -146 -132}\special{pa -175 -154}\special{pa -205 -173}\special{pa -234 -191}%
-\special{pa -263 -205}\special{pa -292 -217}\special{pa -322 -226}\special{pa -351 -231}%
-\special{pa -380 -233}\special{pa -409 -232}\special{pa -439 -228}\special{pa -468 -221}%
-\special{pa -497 -210}\special{pa -526 -197}\special{pa -555 -182}\special{pa -585 -164}%
-\special{pa -614 -144}\special{pa -643 -122}\special{pa -672 -100}\special{pa -702 -76}%
-\special{fp}%
-\special{pa 0 0}\special{pa -29 -24}\special{pa -58 -47}\special{pa -87 -69}\special{pa -116 -90}%
-\special{pa -145 -110}\special{pa -175 -127}\special{pa -204 -143}\special{pa -233 -156}%
-\special{pa -262 -166}\special{pa -291 -173}\special{pa -320 -178}\special{pa -349 -179}%
-\special{pa -378 -177}\special{pa -407 -171}\special{pa -436 -162}\special{pa -465 -151}%
-\special{pa -494 -136}\special{pa -524 -119}\special{pa -553 -99}\special{pa -582 -76}%
-\special{pa -611 -52}\special{pa -640 -26}\special{pa -669 1}\special{pa -698 29}%
-\special{fp}%
-\special{pa 0 0}\special{pa -26 -19}\special{pa -52 -38}\special{pa -78 -57}\special{pa -104 -74}%
-\special{pa -130 -89}\special{pa -156 -103}\special{pa -183 -114}\special{pa -209 -123}%
-\special{pa -235 -129}\special{pa -261 -132}\special{pa -287 -132}\special{pa -313 -129}%
-\special{pa -339 -123}\special{pa -365 -113}\special{pa -391 -100}\special{pa -417 -85}%
-\special{pa -443 -66}\special{pa -469 -44}\special{pa -496 -20}\special{pa -522 6}%
-\special{pa -548 35}\special{pa -574 64}\special{pa -600 96}\special{pa -626 128}%
-\special{fp}%
-\special{pa 3 -3}\special{pa -3 -3}\special{pa -3 3}\special{pa 3 3}\special{pa 3 -3}%
-\special{sh 1}\special{fp}%
-\special{pa -31 -23}\special{pa -26 -20}\special{pa -19 -17}\special{pa -10 -15}\special{pa -1 -14}%
-\special{pa 8 -15}\special{pa 17 -16}\special{pa 24 -19}\special{pa 30 -22}\special{pa 34 -26}%
-\special{pa 35 -31}\special{pa 35 -35}\special{pa 31 -39}\special{pa 26 -43}\special{pa 19 -45}%
-\special{pa 10 -47}\special{pa 1 -48}\special{pa -8 -47}\special{pa -17 -46}\special{pa -24 -43}%
-\special{pa -30 -40}\special{pa -34 -36}\special{pa -35 -32}\special{pa -35 -27}\special{pa -31 -23}%
-\special{fp}%
-\special{pa -63 -46}\special{pa -52 -39}\special{pa -38 -33}\special{pa -21 -29}\special{pa -3 -28}%
-\special{pa 16 -29}\special{pa 33 -32}\special{pa 48 -37}\special{pa 60 -44}\special{pa 68 -52}%
-\special{pa 71 -60}\special{pa 69 -69}\special{pa 63 -77}\special{pa 52 -84}\special{pa 38 -90}%
-\special{pa 21 -94}\special{pa 3 -95}\special{pa -16 -94}\special{pa -33 -91}\special{pa -48 -86}%
-\special{pa -60 -79}\special{pa -68 -71}\special{pa -71 -63}\special{pa -69 -54}\special{pa -63 -46}%
-\special{fp}%
-\special{pa -94 -67}\special{pa -78 -56}\special{pa -56 -48}\special{pa -31 -43}\special{pa -4 -40}%
-\special{pa 24 -42}\special{pa 50 -46}\special{pa 72 -54}\special{pa 90 -64}\special{pa 102 -76}%
-\special{pa 106 -89}\special{pa 104 -102}\special{pa 94 -114}\special{pa 78 -125}%
-\special{pa 56 -133}\special{pa 31 -139}\special{pa 4 -141}\special{pa -24 -140}\special{pa -50 -135}%
-\special{pa -72 -127}\special{pa -90 -117}\special{pa -102 -105}\special{pa -106 -92}%
-\special{pa -104 -79}\special{pa -94 -67}%
-\special{fp}%
-\special{pa -125 -86}\special{pa -104 -72}\special{pa -75 -61}\special{pa -42 -53}%
-\special{pa -5 -51}\special{pa 32 -52}\special{pa 66 -58}\special{pa 97 -69}\special{pa 120 -82}%
-\special{pa 136 -98}\special{pa 142 -115}\special{pa 138 -133}\special{pa 125 -149}%
-\special{pa 104 -163}\special{pa 75 -174}\special{pa 42 -182}\special{pa 5 -184}\special{pa -32 -183}%
-\special{pa -66 -177}\special{pa -97 -167}\special{pa -120 -153}\special{pa -136 -137}%
-\special{pa -142 -120}\special{pa -138 -103}\special{pa -125 -86}%
-\special{fp}%
-\special{pa -156 -103}\special{pa -130 -85}\special{pa -94 -71}\special{pa -52 -62}%
-\special{pa -6 -58}\special{pa 40 -60}\special{pa 83 -68}\special{pa 121 -81}\special{pa 150 -97}%
-\special{pa 169 -117}\special{pa 177 -139}\special{pa 173 -161}\special{pa 156 -181}%
-\special{pa 130 -199}\special{pa 94 -213}\special{pa 52 -222}\special{pa 6 -226}\special{pa -40 -224}%
-\special{pa -83 -216}\special{pa -121 -203}\special{pa -150 -186}\special{pa -169 -166}%
-\special{pa -177 -145}\special{pa -173 -123}\special{pa -156 -103}%
-\special{fp}%
-\special{pa -188 -116}\special{pa -156 -95}\special{pa -113 -78}\special{pa -62 -67}%
-\special{pa -8 -63}\special{pa 48 -65}\special{pa 100 -74}\special{pa 145 -90}\special{pa 180 -110}%
-\special{pa 203 -134}\special{pa 212 -159}\special{pa 207 -186}\special{pa 188 -210}%
-\special{pa 156 -232}\special{pa 113 -248}\special{pa 62 -259}\special{pa 8 -263}%
-\special{pa -48 -261}\special{pa -100 -252}\special{pa -145 -237}\special{pa -180 -216}%
-\special{pa -203 -193}\special{pa -212 -167}\special{pa -207 -141}\special{pa -188 -116}%
-\special{fp}%
-\special{pa -219 -126}\special{pa -182 -101}\special{pa -132 -81}\special{pa -73 -68}%
-\special{pa -9 -63}\special{pa 56 -66}\special{pa 116 -77}\special{pa 169 -95}\special{pa 210 -118}%
-\special{pa 237 -146}\special{pa 248 -176}\special{pa 242 -207}\special{pa 219 -236}%
-\special{pa 182 -260}\special{pa 132 -280}\special{pa 73 -293}\special{pa 9 -298}%
-\special{pa -56 -295}\special{pa -116 -284}\special{pa -169 -266}\special{pa -210 -243}%
-\special{pa -237 -215}\special{pa -248 -185}\special{pa -242 -154}\special{pa -219 -126}%
-\special{fp}%
-\special{pa -250 -131}\special{pa -207 -103}\special{pa -150 -80}\special{pa -83 -66}%
-\special{pa -10 -60}\special{pa 64 -63}\special{pa 133 -76}\special{pa 193 -96}\special{pa 240 -123}%
-\special{pa 271 -155}\special{pa 283 -189}\special{pa 276 -224}\special{pa 250 -257}%
-\special{pa 207 -285}\special{pa 150 -308}\special{pa 83 -322}\special{pa 10 -328}%
-\special{pa -64 -325}\special{pa -133 -312}\special{pa -193 -292}\special{pa -240 -265}%
-\special{pa -271 -233}\special{pa -283 -199}\special{pa -276 -164}\special{pa -250 -131}%
-\special{fp}%
-\special{pa -282 -132}\special{pa -233 -100}\special{pa -169 -75}\special{pa -94 -59}%
-\special{pa -11 -52}\special{pa 71 -56}\special{pa 149 -70}\special{pa 217 -93}\special{pa 270 -123}%
-\special{pa 305 -159}\special{pa 319 -198}\special{pa 311 -237}\special{pa 282 -274}%
-\special{pa 233 -306}\special{pa 169 -331}\special{pa 94 -347}\special{pa 11 -354}%
-\special{pa -71 -350}\special{pa -149 -336}\special{pa -217 -313}\special{pa -270 -283}%
-\special{pa -305 -247}\special{pa -319 -209}\special{pa -311 -169}\special{pa -282 -132}%
-\special{fp}%
-\special{pa -313 -129}\special{pa -259 -94}\special{pa -188 -66}\special{pa -104 -48}%
-\special{pa -13 -40}\special{pa 79 -44}\special{pa 166 -60}\special{pa 241 -85}\special{pa 300 -119}%
-\special{pa 339 -159}\special{pa 354 -202}\special{pa 345 -245}\special{pa 313 -286}%
-\special{pa 259 -322}\special{pa 188 -350}\special{pa 104 -368}\special{pa 13 -375}%
-\special{pa -79 -371}\special{pa -166 -356}\special{pa -241 -330}\special{pa -300 -297}%
-\special{pa -339 -257}\special{pa -354 -214}\special{pa -345 -170}\special{pa -313 -129}%
-\special{fp}%
-\special{pa -344 -121}\special{pa -285 -82}\special{pa -207 -51}\special{pa -114 -31}%
-\special{pa -14 -23}\special{pa 87 -28}\special{pa 183 -45}\special{pa 266 -73}\special{pa 330 -110}%
-\special{pa 373 -153}\special{pa 390 -201}\special{pa 380 -249}\special{pa 344 -294}%
-\special{pa 285 -333}\special{pa 207 -364}\special{pa 114 -384}\special{pa 14 -392}%
-\special{pa -87 -387}\special{pa -183 -370}\special{pa -266 -342}\special{pa -330 -305}%
-\special{pa -373 -262}\special{pa -390 -214}\special{pa -380 -166}\special{pa -344 -121}%
-\special{fp}%
-\special{pa -376 -109}\special{pa -311 -66}\special{pa -226 -32}\special{pa -125 -11}%
-\special{pa -15 -2}\special{pa 95 -7}\special{pa 199 -25}\special{pa 290 -56}\special{pa 360 -96}%
-\special{pa 407 -144}\special{pa 425 -196}\special{pa 414 -248}\special{pa 376 -297}%
-\special{pa 311 -340}\special{pa 226 -373}\special{pa 125 -395}\special{pa 15 -404}%
-\special{pa -95 -399}\special{pa -199 -380}\special{pa -290 -350}\special{pa -360 -309}%
-\special{pa -407 -262}\special{pa -425 -210}\special{pa -414 -158}\special{pa -376 -109}%
-\special{fp}%
-\special{pa -407 -91}\special{pa -337 -45}\special{pa -244 -9}\special{pa -135 15}%
-\special{pa -16 24}\special{pa 103 19}\special{pa 216 -1}\special{pa 314 -34}\special{pa 390 -78}%
-\special{pa 440 -130}\special{pa 460 -186}\special{pa 449 -242}\special{pa 407 -295}%
-\special{pa 337 -342}\special{pa 244 -378}\special{pa 135 -402}\special{pa 16 -411}%
-\special{pa -103 -406}\special{pa -216 -386}\special{pa -314 -353}\special{pa -390 -309}%
-\special{pa -440 -257}\special{pa -460 -201}\special{pa -449 -145}\special{pa -407 -91}%
-\special{fp}%
-\special{pa -438 -70}\special{pa -363 -20}\special{pa -263 19}\special{pa -145 44}%
-\special{pa -18 55}\special{pa 111 49}\special{pa 233 27}\special{pa 338 -8}\special{pa 420 -55}%
-\special{pa 474 -111}\special{pa 496 -171}\special{pa 483 -232}\special{pa 438 -290}%
-\special{pa 363 -339}\special{pa 263 -378}\special{pa 145 -404}\special{pa 18 -414}%
-\special{pa -111 -408}\special{pa -233 -387}\special{pa -338 -351}\special{pa -420 -304}%
-\special{pa -474 -248}\special{pa -496 -188}\special{pa -483 -127}\special{pa -438 -70}%
-\special{fp}%
-\special{pa -469 -44}\special{pa -389 9}\special{pa -282 51}\special{pa -156 78}\special{pa -19 89}%
-\special{pa 119 83}\special{pa 249 60}\special{pa 362 22}\special{pa 450 -29}\special{pa 508 -88}%
-\special{pa 531 -153}\special{pa 518 -218}\special{pa 469 -280}\special{pa 389 -333}%
-\special{pa 282 -375}\special{pa 156 -402}\special{pa 19 -413}\special{pa -119 -407}%
-\special{pa -249 -384}\special{pa -362 -346}\special{pa -450 -295}\special{pa -508 -236}%
-\special{pa -531 -171}\special{pa -518 -106}\special{pa -469 -44}%
-\special{fp}%
-\special{pa -501 -15}\special{pa -415 42}\special{pa -301 87}\special{pa -166 116}%
-\special{pa -20 127}\special{pa 127 121}\special{pa 266 96}\special{pa 386 56}\special{pa 481 2}%
-\special{pa 542 -62}\special{pa 567 -131}\special{pa 553 -201}\special{pa 501 -266}%
-\special{pa 415 -323}\special{pa 301 -368}\special{pa 166 -397}\special{pa 20 -408}%
-\special{pa -127 -402}\special{pa -266 -377}\special{pa -386 -337}\special{pa -481 -283}%
-\special{pa -542 -219}\special{pa -567 -150}\special{pa -553 -81}\special{pa -501 -15}%
-\special{fp}%
-\special{pa -532 17}\special{pa -441 78}\special{pa -320 125}\special{pa -177 156}%
-\special{pa -22 168}\special{pa 135 161}\special{pa 282 135}\special{pa 410 92}\special{pa 511 35}%
-\special{pa 576 -33}\special{pa 602 -106}\special{pa 587 -180}\special{pa 532 -250}%
-\special{pa 441 -310}\special{pa 320 -357}\special{pa 177 -388}\special{pa 22 -401}%
-\special{pa -135 -394}\special{pa -282 -368}\special{pa -410 -324}\special{pa -511 -267}%
-\special{pa -576 -200}\special{pa -602 -126}\special{pa -587 -52}\special{pa -532 17}%
-\special{fp}%
-\special{pa -563 52}\special{pa -467 116}\special{pa -338 167}\special{pa -187 199}%
-\special{pa -23 212}\special{pa 143 205}\special{pa 299 177}\special{pa 435 132}\special{pa 541 71}%
-\special{pa 610 -1}\special{pa 637 -78}\special{pa 622 -157}\special{pa 563 -230}%
-\special{pa 467 -294}\special{pa 338 -344}\special{pa 187 -377}\special{pa 23 -390}%
-\special{pa -143 -383}\special{pa -299 -355}\special{pa -435 -310}\special{pa -541 -249}%
-\special{pa -610 -177}\special{pa -637 -100}\special{pa -622 -21}\special{pa -563 52}%
-\special{fp}%
-\special{pa -595 89}\special{pa -493 157}\special{pa -357 210}\special{pa -197 244}%
-\special{pa -24 258}\special{pa 151 250}\special{pa 316 221}\special{pa 459 173}\special{pa 571 109}%
-\special{pa 644 33}\special{pa 673 -48}\special{pa 656 -131}\special{pa 595 -209}%
-\special{pa 493 -277}\special{pa 357 -330}\special{pa 197 -364}\special{pa 24 -378}%
-\special{pa -151 -370}\special{pa -316 -341}\special{pa -459 -293}\special{pa -571 -229}%
-\special{pa -644 -153}\special{pa -673 -71}\special{pa -656 11}\special{pa -595 89}%
-\special{fp}%
-\special{pa -626 128}\special{pa -519 199}\special{pa -376 255}\special{pa -208 291}%
-\special{pa -25 305}\special{pa 159 297}\special{pa 332 267}\special{pa 483 216}\special{pa 601 148}%
-\special{pa 678 69}\special{pa 708 -17}\special{pa 691 -104}\special{pa 626 -186}%
-\special{pa 519 -258}\special{pa 376 -313}\special{pa 208 -350}\special{pa 25 -364}%
-\special{pa -159 -356}\special{pa -332 -325}\special{pa -483 -275}\special{pa -601 -207}%
-\special{pa -678 -128}\special{pa -708 -41}\special{pa -691 46}\special{pa -626 128}%
-\special{fp}%
-\end{picture}}% \ No newline at end of file
diff --git a/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig3d/sf3ddata4.tex b/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig3d/sf3ddata4.tex
deleted file mode 100644
index 7c4fa9d6..00000000
--- a/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig3d/sf3ddata4.tex
+++ /dev/null
@@ -1,326 +0,0 @@
-%%% /Users/Hannya/ketcindy/ketwork/template.tex 2016-8-13 20:36
-%%% template.sce 2016-8-13 20:36
-{\unitlength=6mm%
-\begin{picture}%
-( 9.80000, 7.34000)( -4.79000, -3.00000)%
-\special{pn 8}%
-%
-\settowidth{\Width}{$x$}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{$x$}\settodepth{\Depth}{$x$}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(-3.8116,-0.8391){\hspace*{\Width}\raisebox{\Height}{$x$}}%
-%
-%
-\settowidth{\Width}{$y$}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{$y$}\settodepth{\Depth}{$y$}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(2.2443,-2.2778){\hspace*{\Width}\raisebox{\Height}{$y$}}%
-%
-%
-\settowidth{\Width}{$z$}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{$z$}\settodepth{\Depth}{$z$}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(0.0000,3.7149){\hspace*{\Width}\raisebox{\Height}{$z$}}%
-%
-%
-\special{pa 1071 -236}\special{pa -857 189}%
-\special{fp}%
-\special{pa -499 -506}\special{pa 499 506}%
-\special{fp}%
-\special{pa 0 709}\special{pa 0 -833}%
-\special{fp}%
-\special{pa 0 -416}\special{pa -56 -400}\special{pa -111 -378}\special{pa -164 -349}%
-\special{pa -214 -313}\special{pa -261 -273}\special{pa -303 -228}\special{pa -340 -179}%
-\special{pa -371 -127}\special{pa -396 -72}\special{pa -414 -17}\special{pa -425 39}%
-\special{pa -428 94}\special{pa -425 148}\special{pa -414 199}\special{pa -396 246}%
-\special{pa -371 290}\special{pa -340 328}\special{pa -303 361}\special{pa -261 388}%
-\special{pa -214 408}\special{pa -164 421}\special{pa -111 427}\special{pa -56 425}%
-\special{pa 0 416}%
-\special{fp}%
-\special{pa 0 -416}\special{pa -45 -393}\special{pa -89 -363}\special{pa -132 -326}%
-\special{pa -173 -284}\special{pa -210 -238}\special{pa -244 -187}\special{pa -274 -133}%
-\special{pa -299 -76}\special{pa -319 -19}\special{pa -334 39}\special{pa -343 97}%
-\special{pa -346 152}\special{pa -343 205}\special{pa -334 255}\special{pa -319 300}%
-\special{pa -299 340}\special{pa -274 374}\special{pa -244 402}\special{pa -210 423}%
-\special{pa -173 437}\special{pa -132 443}\special{pa -89 442}\special{pa -45 433}%
-\special{pa 0 416}%
-\special{fp}%
-\special{pa 0 -416}\special{pa -30 -387}\special{pa -59 -352}\special{pa -88 -310}%
-\special{pa -115 -263}\special{pa -140 -211}\special{pa -162 -156}\special{pa -182 -99}%
-\special{pa -199 -39}\special{pa -212 21}\special{pa -221 81}\special{pa -227 139}%
-\special{pa -229 195}\special{pa -227 248}\special{pa -221 296}\special{pa -212 340}%
-\special{pa -199 377}\special{pa -182 408}\special{pa -162 432}\special{pa -140 449}%
-\special{pa -115 458}\special{pa -88 459}\special{pa -59 453}\special{pa -30 438}%
-\special{pa 0 416}%
-\special{fp}%
-\special{pa 0 -416}\special{pa -12 -384}\special{pa -23 -345}\special{pa -35 -301}%
-\special{pa -45 -251}\special{pa -55 -197}\special{pa -64 -139}\special{pa -72 -80}%
-\special{pa -78 -18}\special{pa -83 43}\special{pa -87 104}\special{pa -90 163}\special{pa -90 219}%
-\special{pa -90 272}\special{pa -87 319}\special{pa -83 362}\special{pa -78 398}\special{pa -72 427}%
-\special{pa -64 449}\special{pa -55 464}\special{pa -45 470}\special{pa -35 469}\special{pa -23 459}%
-\special{pa -12 441}\special{pa 0 416}%
-\special{fp}%
-\special{pa 0 -416}\special{pa 7 -384}\special{pa 15 -345}\special{pa 22 -300}\special{pa 29 -250}%
-\special{pa 35 -195}\special{pa 41 -138}\special{pa 46 -78}\special{pa 50 -16}\special{pa 53 45}%
-\special{pa 55 106}\special{pa 57 165}\special{pa 57 222}\special{pa 57 274}\special{pa 55 322}%
-\special{pa 53 364}\special{pa 50 400}\special{pa 46 429}\special{pa 41 451}\special{pa 35 465}%
-\special{pa 29 471}\special{pa 22 469}\special{pa 15 460}\special{pa 7 442}\special{pa 0 416}%
-\special{fp}%
-\special{pa 0 -416}\special{pa 26 -386}\special{pa 52 -350}\special{pa 76 -307}\special{pa 100 -259}%
-\special{pa 121 -207}\special{pa 141 -151}\special{pa 158 -93}\special{pa 173 -33}%
-\special{pa 184 28}\special{pa 193 88}\special{pa 198 146}\special{pa 199 202}\special{pa 198 255}%
-\special{pa 193 303}\special{pa 184 346}\special{pa 173 383}\special{pa 158 414}\special{pa 141 438}%
-\special{pa 121 454}\special{pa 100 462}\special{pa 76 462}\special{pa 52 455}\special{pa 26 439}%
-\special{pa 0 416}%
-\special{fp}%
-\special{pa 0 -416}\special{pa 42 -391}\special{pa 83 -360}\special{pa 123 -322}\special{pa 161 -279}%
-\special{pa 196 -231}\special{pa 228 -179}\special{pa 255 -124}\special{pa 279 -67}%
-\special{pa 298 -8}\special{pa 311 50}\special{pa 319 108}\special{pa 322 163}\special{pa 319 216}%
-\special{pa 311 266}\special{pa 298 310}\special{pa 279 350}\special{pa 255 383}\special{pa 228 410}%
-\special{pa 196 430}\special{pa 161 442}\special{pa 123 447}\special{pa 83 444}\special{pa 42 434}%
-\special{pa 0 416}%
-\special{fp}%
-\special{pa 0 -416}\special{pa 54 -399}\special{pa 107 -374}\special{pa 158 -343}%
-\special{pa 207 -306}\special{pa 251 -264}\special{pa 292 -218}\special{pa 328 -167}%
-\special{pa 358 -114}\special{pa 382 -59}\special{pa 399 -3}\special{pa 410 53}\special{pa 413 108}%
-\special{pa 410 162}\special{pa 399 212}\special{pa 382 259}\special{pa 358 302}\special{pa 328 339}%
-\special{pa 292 371}\special{pa 251 396}\special{pa 207 415}\special{pa 158 426}\special{pa 107 430}%
-\special{pa 54 427}\special{pa 0 416}%
-\special{fp}%
-\special{pa 0 -416}\special{pa 61 -407}\special{pa 120 -391}\special{pa 177 -368}%
-\special{pa 232 -339}\special{pa 282 -304}\special{pa 328 -264}\special{pa 368 -220}%
-\special{pa 402 -171}\special{pa 428 -120}\special{pa 448 -66}\special{pa 460 -12}%
-\special{pa 464 43}\special{pa 460 97}\special{pa 448 149}\special{pa 428 199}\special{pa 402 245}%
-\special{pa 368 287}\special{pa 328 325}\special{pa 282 356}\special{pa 232 382}\special{pa 177 401}%
-\special{pa 120 413}\special{pa 61 418}\special{pa 0 416}%
-\special{fp}%
-\special{pa 0 -416}\special{pa 61 -416}\special{pa 121 -409}\special{pa 179 -395}%
-\special{pa 234 -374}\special{pa 285 -347}\special{pa 332 -314}\special{pa 372 -275}%
-\special{pa 406 -232}\special{pa 433 -184}\special{pa 453 -134}\special{pa 465 -81}%
-\special{pa 469 -27}\special{pa 465 27}\special{pa 453 82}\special{pa 433 134}\special{pa 406 185}%
-\special{pa 372 232}\special{pa 332 275}\special{pa 285 314}\special{pa 234 347}\special{pa 179 374}%
-\special{pa 121 395}\special{pa 61 409}\special{pa 0 416}%
-\special{fp}%
-\special{pa 0 -416}\special{pa 56 -425}\special{pa 111 -427}\special{pa 164 -421}%
-\special{pa 214 -408}\special{pa 261 -388}\special{pa 303 -361}\special{pa 340 -328}%
-\special{pa 371 -290}\special{pa 396 -246}\special{pa 414 -199}\special{pa 425 -148}%
-\special{pa 428 -94}\special{pa 425 -39}\special{pa 414 17}\special{pa 396 72}\special{pa 371 127}%
-\special{pa 340 179}\special{pa 303 228}\special{pa 261 273}\special{pa 214 313}\special{pa 164 349}%
-\special{pa 111 378}\special{pa 56 400}\special{pa 0 416}%
-\special{fp}%
-\special{pa 0 -416}\special{pa 45 -433}\special{pa 89 -442}\special{pa 132 -443}\special{pa 173 -437}%
-\special{pa 210 -423}\special{pa 244 -402}\special{pa 274 -374}\special{pa 299 -340}%
-\special{pa 319 -300}\special{pa 334 -255}\special{pa 343 -205}\special{pa 346 -152}%
-\special{pa 343 -97}\special{pa 334 -39}\special{pa 319 19}\special{pa 299 76}\special{pa 274 133}%
-\special{pa 244 187}\special{pa 210 238}\special{pa 173 284}\special{pa 132 326}\special{pa 89 363}%
-\special{pa 45 393}\special{pa 0 416}%
-\special{fp}%
-\special{pa 0 -416}\special{pa 30 -438}\special{pa 59 -453}\special{pa 88 -459}\special{pa 115 -458}%
-\special{pa 140 -449}\special{pa 162 -432}\special{pa 182 -408}\special{pa 199 -377}%
-\special{pa 212 -340}\special{pa 221 -296}\special{pa 227 -248}\special{pa 229 -195}%
-\special{pa 227 -139}\special{pa 221 -81}\special{pa 212 -21}\special{pa 199 39}\special{pa 182 99}%
-\special{pa 162 156}\special{pa 140 211}\special{pa 115 263}\special{pa 88 310}\special{pa 59 352}%
-\special{pa 30 387}\special{pa 0 416}%
-\special{fp}%
-\special{pa 0 -416}\special{pa 12 -441}\special{pa 23 -459}\special{pa 35 -469}\special{pa 45 -470}%
-\special{pa 55 -464}\special{pa 64 -449}\special{pa 72 -427}\special{pa 78 -398}\special{pa 83 -362}%
-\special{pa 87 -319}\special{pa 90 -272}\special{pa 90 -219}\special{pa 90 -163}\special{pa 87 -104}%
-\special{pa 83 -43}\special{pa 78 18}\special{pa 72 80}\special{pa 64 139}\special{pa 55 197}%
-\special{pa 45 251}\special{pa 35 301}\special{pa 23 345}\special{pa 12 384}\special{pa 0 416}%
-\special{fp}%
-\special{pa 0 -416}\special{pa -7 -442}\special{pa -15 -460}\special{pa -22 -469}%
-\special{pa -29 -471}\special{pa -35 -465}\special{pa -41 -451}\special{pa -46 -429}%
-\special{pa -50 -400}\special{pa -53 -364}\special{pa -55 -322}\special{pa -57 -274}%
-\special{pa -57 -222}\special{pa -57 -165}\special{pa -55 -106}\special{pa -53 -45}%
-\special{pa -50 16}\special{pa -46 78}\special{pa -41 138}\special{pa -35 195}\special{pa -29 250}%
-\special{pa -22 300}\special{pa -15 345}\special{pa -7 384}\special{pa 0 416}%
-\special{fp}%
-\special{pa 0 -416}\special{pa -26 -439}\special{pa -52 -455}\special{pa -76 -462}%
-\special{pa -100 -462}\special{pa -121 -454}\special{pa -141 -438}\special{pa -158 -414}%
-\special{pa -173 -383}\special{pa -184 -346}\special{pa -193 -303}\special{pa -198 -255}%
-\special{pa -199 -202}\special{pa -198 -146}\special{pa -193 -88}\special{pa -184 -28}%
-\special{pa -173 33}\special{pa -158 93}\special{pa -141 151}\special{pa -121 207}%
-\special{pa -100 259}\special{pa -76 307}\special{pa -52 350}\special{pa -26 386}%
-\special{pa 0 416}%
-\special{fp}%
-\special{pa 0 -416}\special{pa -42 -434}\special{pa -83 -444}\special{pa -123 -447}%
-\special{pa -161 -442}\special{pa -196 -430}\special{pa -228 -410}\special{pa -255 -383}%
-\special{pa -279 -350}\special{pa -298 -310}\special{pa -311 -266}\special{pa -319 -216}%
-\special{pa -322 -163}\special{pa -319 -108}\special{pa -311 -50}\special{pa -298 8}%
-\special{pa -279 67}\special{pa -255 124}\special{pa -228 179}\special{pa -196 231}%
-\special{pa -161 279}\special{pa -123 322}\special{pa -83 360}\special{pa -42 391}%
-\special{pa 0 416}%
-\special{fp}%
-\special{pa 0 -416}\special{pa -54 -427}\special{pa -107 -430}\special{pa -158 -426}%
-\special{pa -207 -415}\special{pa -251 -396}\special{pa -292 -371}\special{pa -328 -339}%
-\special{pa -358 -302}\special{pa -382 -259}\special{pa -399 -212}\special{pa -410 -162}%
-\special{pa -413 -108}\special{pa -410 -53}\special{pa -399 3}\special{pa -382 59}%
-\special{pa -358 114}\special{pa -328 167}\special{pa -292 218}\special{pa -251 264}%
-\special{pa -207 306}\special{pa -158 343}\special{pa -107 374}\special{pa -54 399}%
-\special{pa 0 416}%
-\special{fp}%
-\special{pa 0 -416}\special{pa -61 -418}\special{pa -120 -413}\special{pa -177 -401}%
-\special{pa -232 -382}\special{pa -282 -356}\special{pa -328 -325}\special{pa -368 -287}%
-\special{pa -402 -245}\special{pa -428 -199}\special{pa -448 -149}\special{pa -460 -97}%
-\special{pa -464 -43}\special{pa -460 12}\special{pa -448 66}\special{pa -428 120}%
-\special{pa -402 171}\special{pa -368 220}\special{pa -328 264}\special{pa -282 304}%
-\special{pa -232 339}\special{pa -177 368}\special{pa -120 391}\special{pa -61 407}%
-\special{pa 0 416}%
-\special{fp}%
-\special{pa 0 -416}\special{pa -61 -409}\special{pa -121 -395}\special{pa -179 -374}%
-\special{pa -234 -347}\special{pa -285 -314}\special{pa -332 -275}\special{pa -372 -232}%
-\special{pa -406 -185}\special{pa -433 -134}\special{pa -453 -82}\special{pa -465 -27}%
-\special{pa -469 27}\special{pa -465 81}\special{pa -453 134}\special{pa -433 184}%
-\special{pa -406 232}\special{pa -372 275}\special{pa -332 314}\special{pa -285 347}%
-\special{pa -234 374}\special{pa -179 395}\special{pa -121 409}\special{pa -61 416}%
-\special{pa 0 416}%
-\special{fp}%
-\special{pa 0 -416}\special{pa -56 -400}\special{pa -111 -378}\special{pa -164 -349}%
-\special{pa -214 -313}\special{pa -261 -273}\special{pa -303 -228}\special{pa -340 -179}%
-\special{pa -371 -127}\special{pa -396 -72}\special{pa -414 -17}\special{pa -425 39}%
-\special{pa -428 94}\special{pa -425 148}\special{pa -414 199}\special{pa -396 246}%
-\special{pa -371 290}\special{pa -340 328}\special{pa -303 361}\special{pa -261 388}%
-\special{pa -214 408}\special{pa -164 421}\special{pa -111 427}\special{pa -56 425}%
-\special{pa 0 416}%
-\special{fp}%
-\special{pa 3 -419}\special{pa -3 -419}\special{pa -3 -414}\special{pa 3 -414}\special{pa 3 -419}%
-\special{sh 1}\special{fp}%
-\special{pa -67 -396}\special{pa -57 -389}\special{pa -42 -383}\special{pa -25 -378}%
-\special{pa -6 -376}\special{pa 13 -377}\special{pa 31 -380}\special{pa 47 -384}\special{pa 61 -391}%
-\special{pa 69 -399}\special{pa 74 -408}\special{pa 73 -417}\special{pa 67 -426}\special{pa 57 -434}%
-\special{pa 42 -440}\special{pa 25 -444}\special{pa 6 -446}\special{pa -13 -446}\special{pa -31 -443}%
-\special{pa -47 -438}\special{pa -61 -431}\special{pa -69 -423}\special{pa -74 -414}%
-\special{pa -73 -405}\special{pa -67 -396}%
-\special{fp}%
-\special{pa -132 -367}\special{pa -112 -352}\special{pa -84 -339}\special{pa -50 -331}%
-\special{pa -13 -327}\special{pa 25 -328}\special{pa 62 -333}\special{pa 94 -343}%
-\special{pa 120 -356}\special{pa 137 -372}\special{pa 145 -390}\special{pa 144 -408}%
-\special{pa 132 -425}\special{pa 112 -440}\special{pa 84 -452}\special{pa 50 -461}%
-\special{pa 13 -465}\special{pa -25 -464}\special{pa -62 -459}\special{pa -94 -449}%
-\special{pa -120 -436}\special{pa -137 -420}\special{pa -145 -402}\special{pa -144 -384}%
-\special{pa -132 -367}%
-\special{fp}%
-\special{pa -194 -328}\special{pa -164 -306}\special{pa -123 -288}\special{pa -73 -276}%
-\special{pa -19 -270}\special{pa 37 -271}\special{pa 91 -279}\special{pa 138 -293}%
-\special{pa 176 -313}\special{pa 202 -336}\special{pa 214 -362}\special{pa 211 -389}%
-\special{pa 194 -414}\special{pa 164 -436}\special{pa 123 -454}\special{pa 73 -466}%
-\special{pa 19 -472}\special{pa -37 -471}\special{pa -91 -463}\special{pa -138 -449}%
-\special{pa -176 -429}\special{pa -202 -406}\special{pa -214 -380}\special{pa -211 -353}%
-\special{pa -194 -328}%
-\special{fp}%
-\special{pa -252 -281}\special{pa -213 -252}\special{pa -159 -229}\special{pa -95 -213}%
-\special{pa -24 -206}\special{pa 48 -208}\special{pa 117 -218}\special{pa 178 -236}%
-\special{pa 227 -261}\special{pa 261 -292}\special{pa 277 -325}\special{pa 273 -360}%
-\special{pa 252 -392}\special{pa 213 -421}\special{pa 159 -444}\special{pa 95 -460}%
-\special{pa 24 -468}\special{pa -48 -466}\special{pa -117 -456}\special{pa -178 -437}%
-\special{pa -227 -412}\special{pa -261 -382}\special{pa -277 -348}\special{pa -273 -314}%
-\special{pa -252 -281}%
-\special{fp}%
-\special{pa -303 -228}\special{pa -256 -193}\special{pa -192 -165}\special{pa -114 -146}%
-\special{pa -29 -137}\special{pa 58 -139}\special{pa 141 -151}\special{pa 215 -173}%
-\special{pa 274 -204}\special{pa 314 -240}\special{pa 333 -281}\special{pa 329 -322}%
-\special{pa 303 -361}\special{pa 256 -396}\special{pa 192 -424}\special{pa 114 -443}%
-\special{pa 29 -452}\special{pa -58 -450}\special{pa -141 -438}\special{pa -215 -415}%
-\special{pa -274 -385}\special{pa -314 -348}\special{pa -333 -308}\special{pa -329 -267}%
-\special{pa -303 -228}%
-\special{fp}%
-\special{pa -346 -168}\special{pa -293 -129}\special{pa -219 -97}\special{pa -131 -75}%
-\special{pa -33 -65}\special{pa 66 -67}\special{pa 161 -81}\special{pa 246 -106}\special{pa 313 -141}%
-\special{pa 359 -183}\special{pa 381 -229}\special{pa 376 -276}\special{pa 346 -321}%
-\special{pa 293 -361}\special{pa 219 -393}\special{pa 131 -414}\special{pa 33 -425}%
-\special{pa -66 -423}\special{pa -161 -408}\special{pa -246 -383}\special{pa -313 -348}%
-\special{pa -359 -307}\special{pa -381 -261}\special{pa -376 -213}\special{pa -346 -168}%
-\special{fp}%
-\special{pa -382 -105}\special{pa -323 -61}\special{pa -242 -26}\special{pa -144 -2}%
-\special{pa -37 9}\special{pa 73 7}\special{pa 178 -9}\special{pa 270 -37}\special{pa 345 -75}%
-\special{pa 395 -121}\special{pa 419 -172}\special{pa 415 -223}\special{pa 382 -273}%
-\special{pa 323 -317}\special{pa 242 -352}\special{pa 144 -376}\special{pa 37 -387}%
-\special{pa -73 -385}\special{pa -178 -369}\special{pa -270 -341}\special{pa -345 -303}%
-\special{pa -395 -257}\special{pa -419 -206}\special{pa -415 -155}\special{pa -382 -105}%
-\special{fp}%
-\special{pa -407 -39}\special{pa -344 8}\special{pa -258 45}\special{pa -154 71}\special{pa -39 83}%
-\special{pa 78 81}\special{pa 190 64}\special{pa 289 34}\special{pa 368 -7}\special{pa 422 -56}%
-\special{pa 448 -110}\special{pa 443 -165}\special{pa 407 -218}\special{pa 344 -265}%
-\special{pa 258 -303}\special{pa 154 -328}\special{pa 39 -340}\special{pa -78 -338}%
-\special{pa -190 -321}\special{pa -289 -291}\special{pa -368 -251}\special{pa -422 -201}%
-\special{pa -448 -147}\special{pa -443 -92}\special{pa -407 -39}%
-\special{fp}%
-\special{pa -423 28}\special{pa -358 77}\special{pa -268 115}\special{pa -160 142}%
-\special{pa -41 155}\special{pa 81 152}\special{pa 197 135}\special{pa 300 104}\special{pa 382 61}%
-\special{pa 438 10}\special{pa 465 -46}\special{pa 460 -103}\special{pa 423 -158}%
-\special{pa 358 -207}\special{pa 268 -246}\special{pa 160 -272}\special{pa 41 -285}%
-\special{pa -81 -282}\special{pa -197 -265}\special{pa -300 -234}\special{pa -382 -192}%
-\special{pa -438 -141}\special{pa -465 -84}\special{pa -460 -27}\special{pa -423 28}%
-\special{fp}%
-\special{pa -428 94}\special{pa -362 143}\special{pa -271 183}\special{pa -162 210}%
-\special{pa -41 222}\special{pa 82 220}\special{pa 199 202}\special{pa 304 171}\special{pa 387 128}%
-\special{pa 444 76}\special{pa 471 20}\special{pa 465 -39}\special{pa 428 -94}\special{pa 362 -143}%
-\special{pa 271 -183}\special{pa 162 -210}\special{pa 41 -222}\special{pa -82 -220}%
-\special{pa -199 -202}\special{pa -304 -171}\special{pa -387 -128}\special{pa -444 -76}%
-\special{pa -471 -20}\special{pa -465 39}\special{pa -428 94}%
-\special{fp}%
-\special{pa -423 158}\special{pa -358 207}\special{pa -268 246}\special{pa -160 272}%
-\special{pa -41 285}\special{pa 81 282}\special{pa 197 265}\special{pa 300 234}\special{pa 382 192}%
-\special{pa 438 141}\special{pa 465 84}\special{pa 460 27}\special{pa 423 -28}\special{pa 358 -77}%
-\special{pa 268 -115}\special{pa 160 -142}\special{pa 41 -155}\special{pa -81 -152}%
-\special{pa -197 -135}\special{pa -300 -104}\special{pa -382 -61}\special{pa -438 -10}%
-\special{pa -465 46}\special{pa -460 103}\special{pa -423 158}%
-\special{fp}%
-\special{pa -407 218}\special{pa -344 265}\special{pa -258 303}\special{pa -154 328}%
-\special{pa -39 340}\special{pa 78 338}\special{pa 190 321}\special{pa 289 291}\special{pa 368 251}%
-\special{pa 422 201}\special{pa 448 147}\special{pa 443 92}\special{pa 407 39}\special{pa 344 -8}%
-\special{pa 258 -45}\special{pa 154 -71}\special{pa 39 -83}\special{pa -78 -81}\special{pa -190 -64}%
-\special{pa -289 -34}\special{pa -368 7}\special{pa -422 56}\special{pa -448 110}%
-\special{pa -443 165}\special{pa -407 218}%
-\special{fp}%
-\special{pa -382 273}\special{pa -323 317}\special{pa -242 352}\special{pa -144 376}%
-\special{pa -37 387}\special{pa 73 385}\special{pa 178 369}\special{pa 270 341}\special{pa 345 303}%
-\special{pa 395 257}\special{pa 419 206}\special{pa 415 155}\special{pa 382 105}\special{pa 323 61}%
-\special{pa 242 26}\special{pa 144 2}\special{pa 37 -9}\special{pa -73 -7}\special{pa -178 9}%
-\special{pa -270 37}\special{pa -345 75}\special{pa -395 121}\special{pa -419 172}%
-\special{pa -415 223}\special{pa -382 273}%
-\special{fp}%
-\special{pa -346 321}\special{pa -293 361}\special{pa -219 393}\special{pa -131 414}%
-\special{pa -33 425}\special{pa 66 423}\special{pa 161 408}\special{pa 246 383}\special{pa 313 348}%
-\special{pa 359 307}\special{pa 381 261}\special{pa 376 213}\special{pa 346 168}\special{pa 293 129}%
-\special{pa 219 97}\special{pa 131 75}\special{pa 33 65}\special{pa -66 67}\special{pa -161 81}%
-\special{pa -246 106}\special{pa -313 141}\special{pa -359 183}\special{pa -381 229}%
-\special{pa -376 276}\special{pa -346 321}%
-\special{fp}%
-\special{pa -303 361}\special{pa -256 396}\special{pa -192 424}\special{pa -114 443}%
-\special{pa -29 452}\special{pa 58 450}\special{pa 141 438}\special{pa 215 415}\special{pa 274 385}%
-\special{pa 314 348}\special{pa 333 308}\special{pa 329 267}\special{pa 303 228}\special{pa 256 193}%
-\special{pa 192 165}\special{pa 114 146}\special{pa 29 137}\special{pa -58 139}\special{pa -141 151}%
-\special{pa -215 173}\special{pa -274 204}\special{pa -314 240}\special{pa -333 281}%
-\special{pa -329 322}\special{pa -303 361}%
-\special{fp}%
-\special{pa -252 392}\special{pa -213 421}\special{pa -159 444}\special{pa -95 460}%
-\special{pa -24 468}\special{pa 48 466}\special{pa 117 456}\special{pa 178 437}\special{pa 227 412}%
-\special{pa 261 382}\special{pa 277 348}\special{pa 273 314}\special{pa 252 281}\special{pa 213 252}%
-\special{pa 159 229}\special{pa 95 213}\special{pa 24 206}\special{pa -48 208}\special{pa -117 218}%
-\special{pa -178 236}\special{pa -227 261}\special{pa -261 292}\special{pa -277 325}%
-\special{pa -273 360}\special{pa -252 392}%
-\special{fp}%
-\special{pa -194 414}\special{pa -164 436}\special{pa -123 454}\special{pa -73 466}%
-\special{pa -19 472}\special{pa 37 471}\special{pa 91 463}\special{pa 138 449}\special{pa 176 429}%
-\special{pa 202 406}\special{pa 214 380}\special{pa 211 353}\special{pa 194 328}\special{pa 164 306}%
-\special{pa 123 288}\special{pa 73 276}\special{pa 19 270}\special{pa -37 271}\special{pa -91 279}%
-\special{pa -138 293}\special{pa -176 313}\special{pa -202 336}\special{pa -214 362}%
-\special{pa -211 389}\special{pa -194 414}%
-\special{fp}%
-\special{pa -132 425}\special{pa -112 440}\special{pa -84 452}\special{pa -50 461}%
-\special{pa -13 465}\special{pa 25 464}\special{pa 62 459}\special{pa 94 449}\special{pa 120 436}%
-\special{pa 137 420}\special{pa 145 402}\special{pa 144 384}\special{pa 132 367}\special{pa 112 352}%
-\special{pa 84 339}\special{pa 50 331}\special{pa 13 327}\special{pa -25 328}\special{pa -62 333}%
-\special{pa -94 343}\special{pa -120 356}\special{pa -137 372}\special{pa -145 390}%
-\special{pa -144 408}\special{pa -132 425}%
-\special{fp}%
-\special{pa -67 426}\special{pa -57 434}\special{pa -42 440}\special{pa -25 444}\special{pa -6 446}%
-\special{pa 13 446}\special{pa 31 443}\special{pa 47 438}\special{pa 61 431}\special{pa 69 423}%
-\special{pa 74 414}\special{pa 73 405}\special{pa 67 396}\special{pa 57 389}\special{pa 42 383}%
-\special{pa 25 378}\special{pa 6 376}\special{pa -13 377}\special{pa -31 380}\special{pa -47 384}%
-\special{pa -61 391}\special{pa -69 399}\special{pa -74 408}\special{pa -73 417}\special{pa -67 426}%
-\special{fp}%
-\special{pa 0 416}\special{pa 0 416}\special{pa 0 416}\special{pa 0 416}\special{pa 0 416}%
-\special{pa 0 416}\special{pa 0 416}\special{pa 0 416}\special{pa 0 416}\special{pa 0 416}%
-\special{pa 0 416}\special{pa 0 416}\special{pa 0 416}\special{pa 0 416}\special{pa 0 416}%
-\special{pa 0 416}\special{pa 0 416}\special{pa 0 416}\special{pa 0 416}%
-\special{fp}%
-\end{picture}}% \ No newline at end of file
diff --git a/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig3d/sfbdpara01.tex b/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig3d/sfbdpara01.tex
deleted file mode 100644
index d96415aa..00000000
--- a/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig3d/sfbdpara01.tex
+++ /dev/null
@@ -1,72 +0,0 @@
-%%% /Users/Hannya/ketcindy/ketwork/template.tex 2016-8-22 17:52
-%%% template.sce 2016-8-22 17:52
-{\unitlength=5mm%
-\begin{picture}%
-( 7.04000, 9.33000)( -3.57000, -4.74000)%
-\special{pn 8}%
-%
-\special{pa -260 -469}\special{pa -253 -441}\special{pa -250 -430}\special{pa -240 -393}%
-\special{pa -235 -374}\special{pa -231 -357}\special{pa -221 -323}\special{pa -218 -312}%
-\special{pa -211 -291}\special{pa -201 -261}\special{pa -191 -232}\special{pa -182 -206}%
-\special{pa -172 -179}\special{pa -165 -161}\special{pa -162 -156}\special{pa -152 -134}%
-\special{pa -147 -122}\special{pa -143 -114}\special{pa -133 -95}\special{pa -129 -89}%
-\special{pa -123 -78}\special{pa -113 -63}\special{pa -104 -50}\special{pa -94 -38}%
-\special{pa -84 -28}\special{pa -76 -21}\special{pa -65 -13}\special{pa -59 -10}\special{pa -45 -5}%
-\special{pa -35 -4}\special{pa -26 -4}\special{pa -16 -6}\special{pa -6 -9}\special{pa 4 -15}%
-\special{pa 12 -20}\special{pa 23 -30}\special{pa 30 -37}\special{pa 33 -41}\special{pa 43 -53}%
-\special{pa 47 -59}\special{pa 53 -67}\special{pa 62 -82}\special{pa 65 -87}\special{pa 72 -100}%
-\special{pa 82 -119}\special{pa 92 -139}\special{pa 100 -159}\special{pa 111 -186}%
-\special{pa 118 -203}\special{pa 121 -211}\special{pa 131 -239}\special{pa 136 -253}%
-\special{pa 140 -268}\special{pa 150 -299}\special{pa 153 -309}\special{pa 160 -331}%
-\special{pa 170 -366}\special{pa 179 -402}\special{pa 188 -436}\special{pa 199 -479}%
-\special{pa 206 -509}\special{pa 209 -520}\special{pa 219 -563}%
-\special{fp}%
-\special{pa -535 -55}\special{pa -527 -107}\special{pa -520 -158}\special{pa -512 -206}%
-\special{pa -505 -252}\special{pa -497 -295}\special{pa -489 -336}\special{pa -482 -375}%
-\special{pa -474 -411}\special{pa -466 -445}\special{pa -459 -477}\special{pa -451 -506}%
-\special{pa -444 -533}\special{pa -436 -558}\special{pa -428 -580}\special{pa -421 -600}%
-\special{pa -413 -617}\special{pa -405 -632}\special{pa -398 -645}\special{pa -390 -656}%
-\special{pa -383 -664}\special{pa -375 -669}\special{pa -367 -673}\special{pa -360 -674}%
-\special{pa -352 -672}\special{pa -345 -669}\special{pa -337 -663}\special{pa -329 -654}%
-\special{pa -322 -643}\special{pa -314 -630}\special{pa -306 -615}\special{pa -299 -597}%
-\special{pa -291 -577}\special{pa -284 -554}\special{pa -276 -529}\special{pa -268 -502}%
-\special{pa -261 -472}\special{pa -253 -440}\special{pa -245 -406}\special{pa -238 -369}%
-\special{pa -230 -330}\special{pa -223 -289}\special{pa -215 -245}\special{pa -207 -199}%
-\special{pa -200 -151}\special{pa -192 -100}\special{pa -184 -47}\special{pa -177 9}%
-\special{pa -169 67}\special{pa -162 127}\special{pa -154 190}%
-\special{fp}%
-\special{pa 535 55}\special{pa 521 115}\special{pa 508 173}\special{pa 494 229}\special{pa 480 282}%
-\special{pa 466 333}\special{pa 452 382}\special{pa 439 428}\special{pa 425 472}\special{pa 411 514}%
-\special{pa 397 553}\special{pa 383 590}\special{pa 370 624}\special{pa 356 656}\special{pa 342 686}%
-\special{pa 328 714}\special{pa 315 739}\special{pa 301 761}\special{pa 287 782}\special{pa 273 800}%
-\special{pa 259 815}\special{pa 246 829}\special{pa 232 840}\special{pa 218 848}\special{pa 204 855}%
-\special{pa 191 858}\special{pa 177 860}\special{pa 163 859}\special{pa 149 856}\special{pa 135 850}%
-\special{pa 122 842}\special{pa 108 832}\special{pa 94 820}\special{pa 80 805}\special{pa 66 787}%
-\special{pa 53 768}\special{pa 39 746}\special{pa 25 721}\special{pa 11 694}\special{pa -2 665}%
-\special{pa -16 634}\special{pa -30 600}\special{pa -44 564}\special{pa -58 525}\special{pa -71 484}%
-\special{pa -85 441}\special{pa -99 396}\special{pa -113 348}\special{pa -126 297}%
-\special{pa -140 245}\special{pa -154 190}%
-\special{fp}%
-\special{pa 219 -563}\special{pa 223 -580}\special{pa 230 -612}\special{pa 238 -641}%
-\special{pa 245 -668}\special{pa 253 -693}\special{pa 261 -715}\special{pa 268 -735}%
-\special{pa 276 -752}\special{pa 284 -768}\special{pa 291 -780}\special{pa 299 -791}%
-\special{pa 306 -799}\special{pa 314 -804}\special{pa 322 -808}\special{pa 329 -809}%
-\special{pa 337 -808}\special{pa 345 -804}\special{pa 352 -798}\special{pa 360 -789}%
-\special{pa 367 -779}\special{pa 375 -765}\special{pa 383 -750}\special{pa 390 -732}%
-\special{pa 398 -712}\special{pa 405 -689}\special{pa 413 -664}\special{pa 421 -637}%
-\special{pa 428 -608}\special{pa 436 -576}\special{pa 444 -541}\special{pa 451 -505}%
-\special{pa 459 -465}\special{pa 466 -424}\special{pa 474 -380}\special{pa 482 -334}%
-\special{pa 489 -286}\special{pa 497 -235}\special{pa 505 -182}\special{pa 512 -126}%
-\special{pa 520 -68}\special{pa 527 -8}\special{pa 535 55}%
-\special{fp}%
-\special{pa -66 494}\special{pa -80 517}\special{pa -94 537}\special{pa -108 555}%
-\special{pa -122 571}\special{pa -135 584}\special{pa -149 595}\special{pa -163 604}%
-\special{pa -177 610}\special{pa -191 614}\special{pa -204 616}\special{pa -218 615}%
-\special{pa -232 612}\special{pa -246 606}\special{pa -259 598}\special{pa -273 588}%
-\special{pa -287 575}\special{pa -301 560}\special{pa -315 543}\special{pa -328 523}%
-\special{pa -342 501}\special{pa -356 477}\special{pa -370 450}\special{pa -383 421}%
-\special{pa -397 390}\special{pa -411 356}\special{pa -425 320}\special{pa -439 281}%
-\special{pa -452 240}\special{pa -466 197}\special{pa -480 151}\special{pa -494 103}%
-\special{pa -508 53}\special{pa -521 0}\special{pa -535 -55}%
-\special{fp}%
-\end{picture}}% \ No newline at end of file
diff --git a/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig3d/sfbdpara02.tex b/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig3d/sfbdpara02.tex
deleted file mode 100644
index dcf3cd7f..00000000
--- a/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig3d/sfbdpara02.tex
+++ /dev/null
@@ -1,91 +0,0 @@
-%%% /Users/Hannya/ketcindy/ketwork/template.tex 2016-8-22 17:51
-%%% template.sce 2016-8-22 17:51
-{\unitlength=5mm%
-\begin{picture}%
-( 7.04000, 9.33000)( -3.57000, -4.74000)%
-\special{pn 8}%
-%
-\special{pn 16}%
-\special{pa -260 -469}\special{pa -253 -441}\special{pa -250 -430}\special{pa -240 -393}%
-\special{pa -235 -374}\special{pa -231 -357}\special{pa -221 -323}\special{pa -218 -312}%
-\special{pa -211 -291}\special{pa -201 -261}\special{pa -191 -232}\special{pa -182 -206}%
-\special{pa -172 -179}\special{pa -165 -161}\special{pa -162 -156}\special{pa -152 -134}%
-\special{pa -147 -122}\special{pa -143 -114}\special{pa -133 -95}\special{pa -129 -89}%
-\special{pa -123 -78}\special{pa -113 -63}\special{pa -104 -50}\special{pa -94 -38}%
-\special{pa -84 -28}\special{pa -76 -21}\special{pa -65 -13}\special{pa -59 -10}\special{pa -45 -5}%
-\special{pa -35 -4}\special{pa -26 -4}\special{pa -16 -6}\special{pa -6 -9}\special{pa 4 -15}%
-\special{pa 12 -20}\special{pa 23 -30}\special{pa 30 -37}\special{pa 33 -41}\special{pa 43 -53}%
-\special{pa 47 -59}\special{pa 53 -67}\special{pa 62 -82}\special{pa 65 -87}\special{pa 72 -100}%
-\special{pa 82 -119}\special{pa 92 -139}\special{pa 100 -159}\special{pa 111 -186}%
-\special{pa 118 -203}\special{pa 121 -211}\special{pa 131 -239}\special{pa 136 -253}%
-\special{pa 140 -268}\special{pa 150 -299}\special{pa 153 -309}\special{pa 160 -331}%
-\special{pa 170 -366}\special{pa 179 -402}\special{pa 188 -436}\special{pa 199 -479}%
-\special{pa 206 -509}\special{pa 209 -520}\special{pa 219 -563}%
-\special{fp}%
-\special{pa -535 -55}\special{pa -527 -107}\special{pa -520 -158}\special{pa -512 -206}%
-\special{pa -505 -252}\special{pa -497 -295}\special{pa -489 -336}\special{pa -482 -375}%
-\special{pa -474 -411}\special{pa -466 -445}\special{pa -459 -477}\special{pa -451 -506}%
-\special{pa -444 -533}\special{pa -436 -558}\special{pa -428 -580}\special{pa -421 -600}%
-\special{pa -413 -617}\special{pa -405 -632}\special{pa -398 -645}\special{pa -390 -656}%
-\special{pa -383 -664}\special{pa -375 -669}\special{pa -367 -673}\special{pa -360 -674}%
-\special{pa -352 -672}\special{pa -345 -669}\special{pa -337 -663}\special{pa -329 -654}%
-\special{pa -322 -643}\special{pa -314 -630}\special{pa -306 -615}\special{pa -299 -597}%
-\special{pa -291 -577}\special{pa -284 -554}\special{pa -276 -529}\special{pa -268 -502}%
-\special{pa -261 -472}\special{pa -253 -440}\special{pa -245 -406}\special{pa -238 -369}%
-\special{pa -230 -330}\special{pa -223 -289}\special{pa -215 -245}\special{pa -207 -199}%
-\special{pa -200 -151}\special{pa -192 -100}\special{pa -184 -47}\special{pa -177 9}%
-\special{pa -169 67}\special{pa -162 127}\special{pa -154 190}%
-\special{fp}%
-\special{pa 535 55}\special{pa 521 115}\special{pa 508 173}\special{pa 494 229}\special{pa 480 282}%
-\special{pa 466 333}\special{pa 452 382}\special{pa 439 428}\special{pa 425 472}\special{pa 411 514}%
-\special{pa 397 553}\special{pa 383 590}\special{pa 370 624}\special{pa 356 656}\special{pa 342 686}%
-\special{pa 328 714}\special{pa 315 739}\special{pa 301 761}\special{pa 287 782}\special{pa 273 800}%
-\special{pa 259 815}\special{pa 246 829}\special{pa 232 840}\special{pa 218 848}\special{pa 204 855}%
-\special{pa 191 858}\special{pa 177 860}\special{pa 163 859}\special{pa 149 856}\special{pa 135 850}%
-\special{pa 122 842}\special{pa 108 832}\special{pa 94 820}\special{pa 80 805}\special{pa 66 787}%
-\special{pa 53 768}\special{pa 39 746}\special{pa 25 721}\special{pa 11 694}\special{pa -2 665}%
-\special{pa -16 634}\special{pa -30 600}\special{pa -44 564}\special{pa -58 525}\special{pa -71 484}%
-\special{pa -85 441}\special{pa -99 396}\special{pa -113 348}\special{pa -126 297}%
-\special{pa -140 245}\special{pa -154 190}%
-\special{fp}%
-\special{pa 219 -563}\special{pa 223 -580}\special{pa 230 -612}\special{pa 238 -641}%
-\special{pa 245 -668}\special{pa 253 -693}\special{pa 261 -715}\special{pa 268 -735}%
-\special{pa 276 -752}\special{pa 284 -768}\special{pa 291 -780}\special{pa 299 -791}%
-\special{pa 306 -799}\special{pa 314 -804}\special{pa 322 -808}\special{pa 329 -809}%
-\special{pa 337 -808}\special{pa 345 -804}\special{pa 352 -798}\special{pa 360 -789}%
-\special{pa 367 -779}\special{pa 375 -765}\special{pa 383 -750}\special{pa 390 -732}%
-\special{pa 398 -712}\special{pa 405 -689}\special{pa 413 -664}\special{pa 421 -637}%
-\special{pa 428 -608}\special{pa 436 -576}\special{pa 444 -541}\special{pa 451 -505}%
-\special{pa 459 -465}\special{pa 466 -424}\special{pa 474 -380}\special{pa 482 -334}%
-\special{pa 489 -286}\special{pa 497 -235}\special{pa 505 -182}\special{pa 512 -126}%
-\special{pa 520 -68}\special{pa 527 -8}\special{pa 535 55}%
-\special{fp}%
-\special{pa -66 494}\special{pa -80 517}\special{pa -94 537}\special{pa -108 555}%
-\special{pa -122 571}\special{pa -135 584}\special{pa -149 595}\special{pa -163 604}%
-\special{pa -177 610}\special{pa -191 614}\special{pa -204 616}\special{pa -218 615}%
-\special{pa -232 612}\special{pa -246 606}\special{pa -259 598}\special{pa -273 588}%
-\special{pa -287 575}\special{pa -301 560}\special{pa -315 543}\special{pa -328 523}%
-\special{pa -342 501}\special{pa -356 477}\special{pa -370 450}\special{pa -383 421}%
-\special{pa -397 390}\special{pa -411 356}\special{pa -425 320}\special{pa -439 281}%
-\special{pa -452 240}\special{pa -466 197}\special{pa -480 151}\special{pa -494 103}%
-\special{pa -508 53}\special{pa -521 0}\special{pa -535 -55}%
-\special{fp}%
-\special{pn 8}%
-\special{pn 8}%
-\special{pa 153 -186}\special{pa 155 -194}\special{fp}\special{pa 159 -223}\special{pa 160 -231}\special{fp}%
-\special{pa 164 -261}\special{pa 166 -269}\special{fp}\special{pa 170 -298}\special{pa 171 -306}\special{fp}%
-\special{pa 176 -335}\special{pa 177 -343}\special{fp}\special{pa 182 -373}\special{pa 183 -381}\special{fp}%
-\special{pa 189 -410}\special{pa 190 -418}\special{fp}\special{pa 195 -447}\special{pa 197 -455}\special{fp}%
-\special{pa 202 -485}\special{pa 204 -492}\special{fp}\special{pa 210 -522}\special{pa 211 -529}\special{fp}%
-\special{pa 218 -559}\special{pa 219 -566}\special{fp}\special{pn 8}%
-\special{pa 155 -194}\special{pa 153 -186}\special{fp}\special{pa 146 -155}\special{pa 144 -147}\special{fp}%
-\special{pa 137 -116}\special{pa 135 -108}\special{fp}\special{pa 128 -77}\special{pa 126 -69}\special{fp}%
-\special{pa 118 -38}\special{pa 116 -30}\special{fp}\special{pa 108 1}\special{pa 106 9}\special{fp}%
-\special{pa 98 40}\special{pa 96 48}\special{fp}\special{pa 88 79}\special{pa 86 86}\special{fp}%
-\special{pa 77 117}\special{pa 75 125}\special{fp}\special{pa 66 156}\special{pa 64 163}\special{fp}%
-\special{pa 54 194}\special{pa 52 202}\special{fp}\special{pa 42 232}\special{pa 40 240}\special{fp}%
-\special{pa 30 270}\special{pa 27 278}\special{fp}\special{pa 16 308}\special{pa 14 315}\special{fp}%
-\special{pa 2 345}\special{pa -1 353}\special{fp}\special{pa -13 383}\special{pa -16 390}\special{fp}%
-\special{pa -29 419}\special{pa -32 427}\special{fp}\special{pa -46 455}\special{pa -49 463}\special{fp}%
-\special{pa -65 491}\special{pa -68 498}\special{fp}\special{pn 8}%
-\end{picture}}% \ No newline at end of file
diff --git a/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig3d/sfbdpara03.tex b/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig3d/sfbdpara03.tex
deleted file mode 100644
index 15121319..00000000
--- a/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig3d/sfbdpara03.tex
+++ /dev/null
@@ -1,42 +0,0 @@
-%%% /Users/Hannya/ketcindy/ketwork/template.tex 2016-8-22 17:46
-%%% template.sce 2016-8-22 17:46
-{\unitlength=6mm%
-\begin{picture}%
-( 6.00000, 6.59000)( -3.00000, -2.00000)%
-\special{pn 8}%
-%
-\special{pa 470 -16}\special{pa 461 -52}\special{pa 451 -87}\special{pa 441 -121}%
-\special{pa 432 -154}\special{pa 422 -187}\special{pa 412 -219}\special{pa 402 -250}%
-\special{pa 393 -281}\special{pa 383 -311}\special{pa 373 -340}\special{pa 364 -368}%
-\special{pa 354 -396}\special{pa 344 -423}\special{pa 334 -449}\special{pa 325 -474}%
-\special{pa 315 -499}\special{pa 305 -523}\special{pa 296 -546}\special{pa 286 -568}%
-\special{pa 276 -590}\special{pa 266 -611}\special{pa 256 -631}\special{pa 247 -651}%
-\special{pa 240 -664}\special{pa 237 -669}\special{pa 227 -687}\special{pa 217 -705}%
-\special{pa 207 -721}\special{pa 197 -737}\special{pa 188 -752}\special{pa 178 -767}%
-\special{pa 168 -780}\special{pa 158 -793}\special{pa 148 -805}\special{pa 138 -816}%
-\special{pa 127 -827}\special{pa 117 -837}\special{pa 107 -846}\special{pa 96 -855}%
-\special{pa 85 -863}\special{pa 74 -870}\special{pa 63 -876}\special{pa 53 -880}\special{pa 41 -885}%
-\special{pa 32 -888}\special{pa 24 -889}\special{pa 18 -890}\special{pa 10 -891}\special{pa -1 -891}%
-\special{pa -13 -891}\special{pa -19 -890}\special{pa -26 -889}\special{pa -35 -887}%
-\special{pa -45 -883}\special{pa -59 -878}\special{pa -74 -870}\special{pa -85 -863}%
-\special{pa -96 -855}\special{pa -107 -846}\special{pa -117 -837}\special{pa -127 -827}%
-\special{pa -137 -817}\special{pa -148 -805}\special{pa -158 -793}\special{pa -165 -783}%
-\special{pa -178 -767}\special{pa -188 -752}\special{pa -197 -737}\special{pa -207 -721}%
-\special{pa -217 -705}\special{pa -227 -687}\special{pa -237 -669}\special{pa -247 -651}%
-\special{pa -256 -631}\special{pa -266 -611}\special{pa -276 -590}\special{pa -286 -568}%
-\special{pa -296 -546}\special{pa -305 -523}\special{pa -315 -499}\special{pa -325 -474}%
-\special{pa -327 -468}\special{pa -334 -449}\special{pa -344 -422}\special{pa -354 -396}%
-\special{pa -364 -368}\special{pa -373 -340}\special{pa -383 -311}\special{pa -393 -281}%
-\special{pa -402 -250}\special{pa -412 -219}\special{pa -422 -187}\special{pa -432 -154}%
-\special{pa -441 -121}\special{pa -451 -87}\special{pa -461 -52}\special{pa -470 -16}%
-\special{fp}%
-\special{pa -413 81}\special{pa -382 99}\special{pa -344 115}\special{pa -300 129}%
-\special{pa -252 142}\special{pa -200 152}\special{pa -145 159}\special{pa -87 165}%
-\special{pa -28 167}\special{pa 31 167}\special{pa 90 164}\special{pa 147 159}\special{pa 202 151}%
-\special{pa 254 141}\special{pa 302 129}\special{pa 345 114}\special{pa 383 98}\special{pa 415 80}%
-\special{pa 440 61}\special{pa 458 41}\special{pa 469 21}\special{pa 472 0}\special{pa 470 -16}%
-\special{fp}%
-\special{pa -469 -21}\special{pa -472 0}\special{pa -469 21}\special{pa -457 42}\special{pa -439 62}%
-\special{pa -413 81}%
-\special{fp}%
-\end{picture}}% \ No newline at end of file
diff --git a/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig3d/sfbdpara04.tex b/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig3d/sfbdpara04.tex
deleted file mode 100644
index 4ea7e247..00000000
--- a/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig3d/sfbdpara04.tex
+++ /dev/null
@@ -1,51 +0,0 @@
-%%% /Users/Hannya/ketcindy/ketwork/template.tex 2016-8-22 17:48
-%%% template.sce 2016-8-22 17:48
-{\unitlength=6mm%
-\begin{picture}%
-( 6.00000, 6.59000)( -3.00000, -2.00000)%
-\special{pn 8}%
-%
-\special{pa 470 -16}\special{pa 461 -52}\special{pa 451 -87}\special{pa 441 -121}%
-\special{pa 432 -154}\special{pa 422 -187}\special{pa 412 -219}\special{pa 402 -250}%
-\special{pa 393 -281}\special{pa 383 -311}\special{pa 373 -340}\special{pa 364 -368}%
-\special{pa 354 -396}\special{pa 344 -423}\special{pa 334 -449}\special{pa 325 -474}%
-\special{pa 315 -499}\special{pa 305 -523}\special{pa 296 -546}\special{pa 286 -568}%
-\special{pa 276 -590}\special{pa 266 -611}\special{pa 256 -631}\special{pa 247 -651}%
-\special{pa 240 -664}\special{pa 237 -669}\special{pa 227 -687}\special{pa 217 -705}%
-\special{pa 207 -721}\special{pa 197 -737}\special{pa 188 -752}\special{pa 178 -767}%
-\special{pa 168 -780}\special{pa 158 -793}\special{pa 148 -805}\special{pa 138 -816}%
-\special{pa 127 -827}\special{pa 117 -837}\special{pa 107 -846}\special{pa 96 -855}%
-\special{pa 85 -863}\special{pa 74 -870}\special{pa 63 -876}\special{pa 53 -880}\special{pa 41 -885}%
-\special{pa 32 -888}\special{pa 24 -889}\special{pa 18 -890}\special{pa 10 -891}\special{pa -1 -891}%
-\special{pa -13 -891}\special{pa -19 -890}\special{pa -26 -889}\special{pa -35 -887}%
-\special{pa -45 -883}\special{pa -59 -878}\special{pa -74 -870}\special{pa -85 -863}%
-\special{pa -96 -855}\special{pa -107 -846}\special{pa -117 -837}\special{pa -127 -827}%
-\special{pa -137 -817}\special{pa -148 -805}\special{pa -158 -793}\special{pa -165 -783}%
-\special{pa -178 -767}\special{pa -188 -752}\special{pa -197 -737}\special{pa -207 -721}%
-\special{pa -217 -705}\special{pa -227 -687}\special{pa -237 -669}\special{pa -247 -651}%
-\special{pa -256 -631}\special{pa -266 -611}\special{pa -276 -590}\special{pa -286 -568}%
-\special{pa -296 -546}\special{pa -305 -523}\special{pa -315 -499}\special{pa -325 -474}%
-\special{pa -327 -468}\special{pa -334 -449}\special{pa -344 -422}\special{pa -354 -396}%
-\special{pa -364 -368}\special{pa -373 -340}\special{pa -383 -311}\special{pa -393 -281}%
-\special{pa -402 -250}\special{pa -412 -219}\special{pa -422 -187}\special{pa -432 -154}%
-\special{pa -441 -121}\special{pa -451 -87}\special{pa -461 -52}\special{pa -470 -16}%
-\special{fp}%
-\special{pa -413 81}\special{pa -382 99}\special{pa -344 115}\special{pa -300 129}%
-\special{pa -252 142}\special{pa -200 152}\special{pa -145 159}\special{pa -87 165}%
-\special{pa -28 167}\special{pa 31 167}\special{pa 90 164}\special{pa 147 159}\special{pa 202 151}%
-\special{pa 254 141}\special{pa 302 129}\special{pa 345 114}\special{pa 383 98}\special{pa 415 80}%
-\special{pa 440 61}\special{pa 458 41}\special{pa 469 21}\special{pa 472 0}\special{pa 470 -16}%
-\special{fp}%
-\special{pa -469 -21}\special{pa -472 0}\special{pa -469 21}\special{pa -457 42}\special{pa -439 62}%
-\special{pa -413 81}%
-\special{fp}%
-\special{pa 470 -16}\special{pa 469 -21}\special{pa 457 -42}\special{pa 451 -48}\special{fp}%
-\special{pa 423 -74}\special{pa 413 -81}\special{pa 391 -94}\special{fp}\special{pa 356 -109}\special{pa 344 -115}\special{pa 321 -123}\special{fp}%
-\special{pa 284 -133}\special{pa 252 -142}\special{pa 248 -143}\special{fp}\special{pa 210 -150}\special{pa 200 -152}\special{pa 173 -156}\special{fp}%
-\special{pa 135 -160}\special{pa 97 -164}\special{fp}\special{pa 59 -166}\special{pa 28 -167}\special{pa 21 -167}\special{fp}%
-\special{pa -17 -167}\special{pa -31 -167}\special{pa -55 -166}\special{fp}\special{pa -92 -164}\special{pa -130 -161}\special{fp}%
-\special{pa -168 -156}\special{pa -202 -151}\special{pa -206 -151}\special{fp}\special{pa -243 -143}\special{pa -254 -141}\special{pa -280 -135}\special{fp}%
-\special{pa -316 -124}\special{pa -345 -114}\special{pa -352 -111}\special{fp}\special{pa -387 -96}\special{pa -415 -80}\special{pa -419 -77}\special{fp}%
-\special{pa -448 -52}\special{pa -458 -41}\special{pa -469 -21}\special{fp}%
-%
-\end{picture}}% \ No newline at end of file
diff --git a/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig3d/skeletonparadata01.tex b/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig3d/skeletonparadata01.tex
deleted file mode 100644
index 0d8dfb8d..00000000
--- a/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig3d/skeletonparadata01.tex
+++ /dev/null
@@ -1,81 +0,0 @@
-%%% /Users/Hannya/ketcindy/ketwork/template.tex 2016-8-17 20:38
-%%% template.sce 2016-8-17 20:38
-{\unitlength=6mm%
-\begin{picture}%
-( 5.73000, 5.88000)( -2.98000, -1.69000)%
-\special{pn 8}%
-%
-\settowidth{\Width}{$x$}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{$x$}\settodepth{\Depth}{$x$}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(-2.7060,-0.4477){\hspace*{\Width}\raisebox{\Height}{$x$}}%
-%
-%
-\settowidth{\Width}{$y$}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{$y$}\settodepth{\Depth}{$y$}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(2.3501,-0.9282){\hspace*{\Width}\raisebox{\Height}{$y$}}%
-%
-%
-\settowidth{\Width}{$z$}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{$z$}\settodepth{\Depth}{$z$}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(0.0000,4.0571){\hspace*{\Width}\raisebox{\Height}{$z$}}%
-%
-%
-\special{pa 650 -107}\special{pa 479 -79}%
-\special{fp}%
-\special{pa 434 -72}\special{pa -595 98}%
-\special{fp}%
-\special{pa -642 -253}\special{pa 115 45}%
-\special{fp}%
-\special{pa 167 66}\special{pa 513 203}%
-\special{fp}%
-\special{pa 0 399}\special{pa 0 94}%
-\special{fp}%
-\special{pa 0 57}\special{pa 0 -193}%
-\special{fp}%
-\special{pa 0 -230}\special{pa 0 -913}%
-\special{fp}%
-\special{pa -257 355}\special{pa -111 100}%
-\special{fp}%
-\special{pa -90 64}\special{pa -71 29}%
-\special{fp}%
-\special{pa -35 -33}\special{pa -14 -70}%
-\special{fp}%
-\special{pa 14 -120}\special{pa 61 -201}%
-\special{fp}%
-\special{pa 83 -240}\special{pa 327 -667}%
-\special{fp}%
-\special{pa -397 66}\special{pa -361 72}\special{pa -319 77}\special{pa -273 81}\special{pa -222 83}%
-\special{pa -167 84}\special{pa -110 83}\special{pa -51 79}\special{pa 9 74}\special{pa 69 67}%
-\special{pa 127 58}\special{pa 184 47}\special{pa 238 35}\special{pa 287 21}\special{pa 332 5}%
-\special{pa 372 -13}\special{pa 406 -31}\special{pa 433 -51}\special{pa 454 -71}\special{pa 467 -91}%
-\special{pa 472 -113}\special{pa 470 -134}\special{pa 460 -155}\special{pa 443 -175}%
-\special{pa 419 -195}\special{pa 388 -214}\special{pa 351 -232}\special{pa 308 -248}%
-\special{pa 293 -253}%
-\special{fp}%
-\special{pa 242 -268}\special{pa 208 -277}\special{pa 153 -288}\special{pa 133 -292}%
-\special{fp}%
-\special{pa 96 -298}\special{pa 95 -298}\special{pa 36 -306}\special{pa 18 -308}%
-\special{fp}%
-\special{pa -18 -311}\special{pa -24 -312}\special{pa -84 -316}\special{pa -142 -318}%
-\special{pa -198 -318}\special{pa -250 -317}\special{pa -299 -314}\special{pa -343 -309}%
-\special{pa -381 -303}\special{pa -414 -296}\special{pa -439 -288}\special{pa -458 -279}%
-\special{pa -469 -270}\special{pa -472 -261}\special{pa -468 -251}\special{pa -457 -242}%
-\special{pa -438 -233}\special{pa -412 -225}\special{pa -380 -218}\special{pa -341 -212}%
-\special{pa -297 -207}\special{pa -248 -204}\special{pa -195 -203}\special{pa -139 -203}%
-\special{pa -81 -206}\special{pa -21 -210}\special{pa 39 -216}\special{pa 98 -224}%
-\special{pa 156 -234}\special{pa 211 -246}\special{pa 263 -259}\special{pa 311 -274}%
-\special{pa 353 -291}\special{pa 390 -309}\special{pa 421 -328}\special{pa 444 -348}%
-\special{pa 461 -368}\special{pa 470 -389}\special{pa 472 -410}\special{pa 466 -431}%
-\special{pa 453 -452}\special{pa 432 -472}\special{pa 405 -491}\special{pa 370 -510}%
-\special{pa 330 -527}\special{pa 285 -543}\special{pa 277 -545}%
-\special{fp}%
-\special{pa 242 -555}\special{pa 235 -557}\special{pa 181 -570}\special{pa 124 -580}%
-\special{pa 66 -589}\special{pa 18 -595}%
-\special{fp}%
-\special{pa -18 -598}\special{pa -54 -601}\special{pa -113 -604}\special{pa -170 -605}%
-\special{pa -224 -605}\special{pa -275 -603}\special{pa -322 -599}\special{pa -363 -593}%
-\special{pa -398 -587}\special{pa -427 -579}\special{pa -449 -571}\special{pa -464 -562}%
-\special{pa -472 -552}\special{pa -471 -543}\special{pa -464 -533}\special{pa -448 -524}%
-\special{pa -426 -516}\special{pa -397 -508}%
-\special{fp}%
-\end{picture}}% \ No newline at end of file
diff --git a/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig3d/skeletonparadata02.tex b/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig3d/skeletonparadata02.tex
deleted file mode 100644
index 1f60f627..00000000
--- a/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig3d/skeletonparadata02.tex
+++ /dev/null
@@ -1,76 +0,0 @@
-%%% /Users/Hannya/ketcindy/ketwork/template.tex 2016-8-17 20:38
-%%% template.sce 2016-8-17 20:38
-{\unitlength=6mm%
-\begin{picture}%
-( 5.73000, 5.88000)( -2.98000, -1.69000)%
-\special{pn 8}%
-%
-\settowidth{\Width}{$x$}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{$x$}\settodepth{\Depth}{$x$}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(-2.7060,-0.4477){\hspace*{\Width}\raisebox{\Height}{$x$}}%
-%
-%
-\settowidth{\Width}{$y$}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{$y$}\settodepth{\Depth}{$y$}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(2.3501,-0.9282){\hspace*{\Width}\raisebox{\Height}{$y$}}%
-%
-%
-\settowidth{\Width}{$z$}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{$z$}\settodepth{\Depth}{$z$}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(0.0000,4.0571){\hspace*{\Width}\raisebox{\Height}{$z$}}%
-%
-%
-\special{pa 650 -107}\special{pa 502 -83}%
-\special{fp}%
-\special{pa 412 -68}\special{pa -595 98}%
-\special{fp}%
-\special{pa -642 -253}\special{pa 90 35}%
-\special{fp}%
-\special{pa 192 76}\special{pa 513 203}%
-\special{fp}%
-\special{pa 0 399}\special{pa 0 112}%
-\special{fp}%
-\special{pa 0 39}\special{pa 0 -176}%
-\special{fp}%
-\special{pa 0 -248}\special{pa 0 -913}%
-\special{fp}%
-\special{pa -257 355}\special{pa -122 118}%
-\special{fp}%
-\special{pa 28 -144}\special{pa 50 -182}%
-\special{fp}%
-\special{pa 93 -258}\special{pa 327 -667}%
-\special{fp}%
-\special{pa -397 66}\special{pa -361 72}\special{pa -319 77}\special{pa -273 81}\special{pa -222 83}%
-\special{pa -167 84}\special{pa -110 83}\special{pa -51 79}\special{pa 9 74}\special{pa 69 67}%
-\special{pa 127 58}\special{pa 184 47}\special{pa 238 35}\special{pa 287 21}\special{pa 332 5}%
-\special{pa 372 -13}\special{pa 406 -31}\special{pa 433 -51}\special{pa 454 -71}\special{pa 467 -91}%
-\special{pa 472 -113}\special{pa 470 -134}\special{pa 460 -155}\special{pa 443 -175}%
-\special{pa 419 -195}\special{pa 388 -214}\special{pa 351 -232}\special{pa 319 -244}%
-\special{fp}%
-\special{pa 216 -274}\special{pa 208 -277}\special{pa 153 -288}\special{pa 151 -288}%
-\special{fp}%
-\special{pa 77 -300}\special{pa 36 -306}\special{pa 35 -306}%
-\special{fp}%
-\special{pa -36 -313}\special{pa -84 -316}\special{pa -142 -318}\special{pa -198 -318}%
-\special{pa -250 -317}\special{pa -299 -314}\special{pa -343 -309}\special{pa -381 -303}%
-\special{pa -414 -296}\special{pa -439 -288}\special{pa -458 -279}\special{pa -469 -270}%
-\special{pa -472 -261}\special{pa -468 -251}\special{pa -457 -242}\special{pa -438 -233}%
-\special{pa -412 -225}\special{pa -380 -218}\special{pa -341 -212}\special{pa -297 -207}%
-\special{pa -248 -204}\special{pa -195 -203}\special{pa -139 -203}\special{pa -81 -206}%
-\special{pa -21 -210}\special{pa 39 -216}\special{pa 98 -224}\special{pa 156 -234}%
-\special{pa 211 -246}\special{pa 263 -259}\special{pa 311 -274}\special{pa 353 -291}%
-\special{pa 390 -309}\special{pa 421 -328}\special{pa 444 -348}\special{pa 461 -368}%
-\special{pa 470 -389}\special{pa 472 -410}\special{pa 466 -431}\special{pa 453 -452}%
-\special{pa 432 -472}\special{pa 405 -491}\special{pa 370 -510}\special{pa 330 -527}%
-\special{pa 295 -539}%
-\special{fp}%
-\special{pa 225 -559}\special{pa 181 -570}\special{pa 124 -580}\special{pa 66 -589}%
-\special{pa 35 -593}%
-\special{fp}%
-\special{pa -35 -600}\special{pa -54 -601}\special{pa -113 -604}\special{pa -170 -605}%
-\special{pa -224 -605}\special{pa -275 -603}\special{pa -322 -599}\special{pa -363 -593}%
-\special{pa -398 -587}\special{pa -427 -579}\special{pa -449 -571}\special{pa -464 -562}%
-\special{pa -472 -552}\special{pa -471 -543}\special{pa -464 -533}\special{pa -448 -524}%
-\special{pa -426 -516}\special{pa -397 -508}%
-\special{fp}%
-\end{picture}}% \ No newline at end of file
diff --git a/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig3d/skeletonparadata03.tex b/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig3d/skeletonparadata03.tex
deleted file mode 100644
index 9eaf162b..00000000
--- a/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig3d/skeletonparadata03.tex
+++ /dev/null
@@ -1,68 +0,0 @@
-%%% /Users/Hannya/ketcindy/ketwork/template.tex 2016-8-17 20:36
-%%% template.sce 2016-8-17 20:36
-{\unitlength=6mm%
-\begin{picture}%
-( 5.73000, 5.88000)( -2.98000, -1.69000)%
-\special{pn 8}%
-%
-\settowidth{\Width}{$x$}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{$x$}\settodepth{\Depth}{$x$}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(-2.7060,-0.4477){\hspace*{\Width}\raisebox{\Height}{$x$}}%
-%
-%
-\settowidth{\Width}{$y$}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{$y$}\settodepth{\Depth}{$y$}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(2.3501,-0.9282){\hspace*{\Width}\raisebox{\Height}{$y$}}%
-%
-%
-\settowidth{\Width}{$z$}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{$z$}\settodepth{\Depth}{$z$}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(0.0000,4.0571){\hspace*{\Width}\raisebox{\Height}{$z$}}%
-%
-%
-\special{pa -397 66}\special{pa -361 72}\special{pa -319 77}\special{pa -273 81}\special{pa -222 83}%
-\special{pa -167 84}\special{pa -110 83}\special{pa -51 79}\special{pa 9 74}\special{pa 69 67}%
-\special{pa 127 58}\special{pa 184 47}\special{pa 238 35}\special{pa 287 21}\special{pa 332 5}%
-\special{pa 372 -13}\special{pa 406 -31}\special{pa 433 -50}\special{pa 454 -71}\special{pa 467 -91}%
-\special{pa 472 -113}\special{pa 470 -134}\special{pa 460 -155}\special{pa 443 -175}%
-\special{pa 419 -195}\special{pa 388 -214}\special{pa 351 -232}\special{pa 308 -248}%
-\special{pa 260 -263}\special{pa 208 -277}\special{pa 153 -288}\special{pa 95 -298}%
-\special{pa 36 -306}\special{pa -24 -312}\special{pa -84 -316}\special{pa -142 -318}%
-\special{pa -198 -318}\special{pa -250 -317}\special{pa -299 -314}\special{pa -343 -309}%
-\special{pa -381 -303}\special{pa -414 -296}\special{pa -439 -288}\special{pa -458 -279}%
-\special{pa -469 -270}\special{pa -472 -261}\special{pa -468 -251}\special{pa -457 -242}%
-\special{pa -438 -233}\special{pa -412 -225}\special{pa -380 -218}\special{pa -341 -212}%
-\special{pa -297 -207}\special{pa -248 -204}\special{pa -195 -203}\special{pa -139 -203}%
-\special{pa -81 -206}\special{pa -21 -210}\special{pa 39 -216}\special{pa 98 -224}%
-\special{pa 156 -234}\special{pa 211 -246}\special{pa 263 -259}\special{pa 311 -274}%
-\special{pa 353 -291}\special{pa 390 -309}\special{pa 421 -328}\special{pa 444 -347}%
-\special{pa 461 -368}\special{pa 470 -389}\special{pa 472 -410}\special{pa 466 -431}%
-\special{pa 453 -452}\special{pa 432 -472}\special{pa 405 -491}\special{pa 370 -510}%
-\special{pa 330 -527}\special{pa 285 -543}\special{pa 235 -557}\special{pa 181 -570}%
-\special{pa 124 -580}\special{pa 66 -589}\special{pa 6 -596}\special{pa -54 -601}%
-\special{pa -113 -604}\special{pa -170 -605}\special{pa -224 -605}\special{pa -275 -603}%
-\special{pa -322 -599}\special{pa -363 -593}\special{pa -398 -587}\special{pa -427 -579}%
-\special{pa -449 -571}\special{pa -464 -562}\special{pa -472 -552}\special{pa -471 -543}%
-\special{pa -464 -533}\special{pa -448 -524}\special{pa -426 -516}\special{pa -397 -508}%
-\special{fp}%
-\special{pa -257 355}\special{pa -111 100}%
-\special{fp}%
-\special{pa -90 64}\special{pa 61 -201}%
-\special{fp}%
-\special{pa 83 -240}\special{pa 327 -667}%
-\special{fp}%
-\special{pa 650 -107}\special{pa 479 -79}%
-\special{fp}%
-\special{pa 434 -72}\special{pa -595 98}%
-\special{fp}%
-\special{pa -642 -253}\special{pa 115 45}%
-\special{fp}%
-\special{pa 167 66}\special{pa 513 203}%
-\special{fp}%
-\special{pa 0 399}\special{pa 0 94}%
-\special{fp}%
-\special{pa 0 57}\special{pa 0 -193}%
-\special{fp}%
-\special{pa 0 -230}\special{pa 0 -913}%
-\special{fp}%
-\end{picture}}% \ No newline at end of file
diff --git a/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig3d/translate01.tex b/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig3d/translate01.tex
deleted file mode 100644
index 19281c08..00000000
--- a/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig3d/translate01.tex
+++ /dev/null
@@ -1,53 +0,0 @@
-%%% /Users/Hannya/ketcindy/ketwork/template.tex 2016-8-12 20:47
-%%% template.sce 2016-8-12 20:47
-{\unitlength=8mm%
-\begin{picture}%
-( 7.59000, 6.02000)( -3.60000, -2.65000)%
-\special{pn 8}%
-%
-\settowidth{\Width}{$x$}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{$x$}\settodepth{\Depth}{$x$}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(-2.7342,-0.4211){\hspace*{\Width}\raisebox{\Height}{$x$}}%
-%
-%
-\settowidth{\Width}{$y$}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{$y$}\settodepth{\Depth}{$y$}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(3.3490,-1.3293){\hspace*{\Width}\raisebox{\Height}{$y$}}%
-%
-%
-\settowidth{\Width}{$z$}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{$z$}\settodepth{\Depth}{$z$}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(0.0000,3.0968){\hspace*{\Width}\raisebox{\Height}{$z$}}%
-%
-%
-\special{pa 1257 -194}\special{pa -802 124}%
-\special{fp}%
-\special{pa -833 -330}\special{pa 999 397}%
-\special{fp}%
-\special{pa 0 835}\special{pa 0 -916}%
-\special{fp}%
-\special{pa 476 -20}\special{pa 947 167}%
-\special{fp}%
-\special{pa 947 167}\special{pa 333 743}%
-\special{fp}%
-\special{pa 476 -20}\special{pa 333 743}%
-\special{fp}%
-\special{pa -281 97}\special{pa 333 743}%
-\special{fp}%
-\special{pa 476 -20}\special{pa -281 97}%
-\special{fp}%
-\special{pa -281 97}\special{pa 333 -478}%
-\special{fp}%
-\special{pa 476 -20}\special{pa 333 -478}%
-\special{fp}%
-\special{pa 947 167}\special{pa 333 -478}%
-\special{fp}%
-\special{pa 947 167}\special{pa 191 284}%
-\special{fp}%
-\special{pa 191 284}\special{pa 333 743}%
-\special{fp}%
-\special{pa 191 284}\special{pa 333 -478}%
-\special{fp}%
-\special{pa 191 284}\special{pa -281 97}%
-\special{fp}%
-\end{picture}}% \ No newline at end of file
diff --git a/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig3d/vertex01.tex b/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig3d/vertex01.tex
deleted file mode 100644
index 574b3b29..00000000
--- a/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig3d/vertex01.tex
+++ /dev/null
@@ -1,20 +0,0 @@
-%%% /Users/Hannya/ketcindy/ketwork/template.tex 2016-8-9 9:51
-%%% template.sce 2016-8-9 9:51
-{\unitlength=8mm%
-\begin{picture}%
-( 6.32000, 5.44000)( -3.32000, -1.44000)%
-\special{pn 8}%
-%
-\special{pa 375 -221}\special{pa -727 -5}%
-\special{fp}%
-\special{pa -727 -5}\special{pa 352 226}%
-\special{fp}%
-\special{pa 375 -221}\special{pa 352 226}%
-\special{fp}%
-\special{pa -727 -5}\special{pa 0 -1020}%
-\special{fp}%
-\special{pa 375 -221}\special{pa 0 -1020}%
-\special{fp}%
-\special{pa 352 226}\special{pa 0 -1020}%
-\special{fp}%
-\end{picture}}% \ No newline at end of file
diff --git a/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig3d/wirepara1.tex b/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig3d/wirepara1.tex
deleted file mode 100644
index c8ba75ae..00000000
--- a/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig3d/wirepara1.tex
+++ /dev/null
@@ -1,202 +0,0 @@
-%%% /Users/Hannya/ketcindy/ketwork/template.tex 2016-8-13 19:41
-%%% template.sce 2016-8-13 19:41
-{\unitlength=4mm%
-\begin{picture}%
-( 10.01000, 9.42000)( -5.01000, -4.42000)%
-\special{pn 8}%
-%
-\settowidth{\Width}{$x$}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{$x$}\settodepth{\Depth}{$x$}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(-4.4262,-1.3033){\hspace*{\Width}\raisebox{\Height}{$x$}}%
-%
-%
-\settowidth{\Width}{$y$}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{$y$}\settodepth{\Depth}{$y$}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(2.7950,-2.1209){\hspace*{\Width}\raisebox{\Height}{$y$}}%
-%
-%
-\settowidth{\Width}{$z$}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{$z$}\settodepth{\Depth}{$z$}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(0.0000,4.5961){\hspace*{\Width}\raisebox{\Height}{$z$}}%
-%
-%
-\special{pa 668 -197}\special{pa -668 197}%
-\special{fp}%
-\special{pa -416 -316}\special{pa 416 316}%
-\special{fp}%
-\special{pa 0 694}\special{pa 0 -694}%
-\special{fp}%
-\special{pa -190 -298}\special{pa -183 -272}\special{pa -180 -262}\special{pa -177 -248}%
-\special{pa -170 -225}\special{pa -163 -204}\special{pa -159 -190}\special{pa -157 -183}%
-\special{pa -150 -163}\special{pa -148 -159}\special{pa -143 -145}\special{pa -137 -130}%
-\special{pa -130 -112}\special{pa -127 -105}\special{pa -123 -97}\special{pa -116 -83}%
-\special{pa -110 -70}\special{pa -105 -62}\special{pa -103 -58}\special{pa -96 -48}%
-\special{pa -90 -39}\special{pa -84 -31}\special{pa -76 -23}\special{pa -73 -20}\special{pa -70 -17}%
-\special{pa -63 -12}\special{pa -56 -9}\special{pa -52 -7}\special{pa -43 -5}\special{pa -36 -4}%
-\special{pa -30 -5}\special{pa -23 -7}\special{pa -16 -10}\special{pa -10 -15}\special{pa -3 -20}%
-\special{pa 2 -24}\special{pa 10 -34}\special{pa 17 -43}\special{pa 23 -52}\special{pa 30 -64}%
-\special{pa 34 -70}\special{pa 37 -76}\special{pa 44 -89}\special{pa 50 -104}\special{pa 55 -115}%
-\special{pa 57 -119}\special{pa 64 -136}\special{pa 66 -142}\special{pa 71 -154}\special{pa 77 -172}%
-\special{pa 84 -193}\special{pa 88 -204}\special{pa 91 -214}\special{pa 97 -236}\special{pa 98 -240}%
-\special{pa 104 -260}\special{pa 109 -279}\special{pa 111 -284}\special{pa 117 -310}%
-\special{pa 120 -320}\special{pa 124 -337}\special{pa 131 -364}\special{pa 137 -394}%
-\special{fp}%
-\special{pa -434 -48}\special{pa -427 -87}\special{pa -420 -124}\special{pa -413 -160}%
-\special{pa -407 -193}\special{pa -400 -225}\special{pa -393 -255}\special{pa -386 -283}%
-\special{pa -379 -310}\special{pa -373 -334}\special{pa -366 -357}\special{pa -359 -377}%
-\special{pa -352 -396}\special{pa -345 -413}\special{pa -339 -429}\special{pa -332 -442}%
-\special{pa -325 -453}\special{pa -318 -463}\special{pa -312 -471}\special{pa -305 -477}%
-\special{pa -298 -481}\special{pa -291 -483}\special{pa -284 -483}\special{pa -278 -482}%
-\special{pa -271 -479}\special{pa -264 -474}\special{pa -257 -467}\special{pa -250 -458}%
-\special{pa -244 -447}\special{pa -237 -434}\special{pa -230 -420}\special{pa -223 -404}%
-\special{pa -216 -386}\special{pa -210 -366}\special{pa -203 -344}\special{pa -196 -320}%
-\special{pa -189 -295}\special{pa -182 -267}\special{pa -176 -238}\special{pa -169 -207}%
-\special{pa -162 -174}\special{pa -155 -140}\special{pa -148 -103}\special{pa -142 -64}%
-\special{pa -135 -24}\special{pa -128 18}\special{pa -121 62}\special{pa -114 108}%
-\special{pa -108 156}\special{pa -101 205}%
-\special{fp}%
-\special{pa 434 48}\special{pa 423 95}\special{pa 412 141}\special{pa 401 185}\special{pa 390 227}%
-\special{pa 379 267}\special{pa 368 306}\special{pa 357 342}\special{pa 347 377}\special{pa 336 409}%
-\special{pa 325 440}\special{pa 314 470}\special{pa 303 497}\special{pa 292 522}\special{pa 281 546}%
-\special{pa 270 567}\special{pa 259 587}\special{pa 248 605}\special{pa 237 622}\special{pa 227 636}%
-\special{pa 216 648}\special{pa 205 659}\special{pa 194 668}\special{pa 183 675}\special{pa 172 680}%
-\special{pa 161 683}\special{pa 150 684}\special{pa 139 684}\special{pa 128 681}\special{pa 117 677}%
-\special{pa 107 671}\special{pa 96 663}\special{pa 85 654}\special{pa 74 642}\special{pa 63 629}%
-\special{pa 52 613}\special{pa 41 596}\special{pa 30 577}\special{pa 19 556}\special{pa 8 534}%
-\special{pa -3 509}\special{pa -14 483}\special{pa -24 454}\special{pa -35 424}\special{pa -46 392}%
-\special{pa -57 359}\special{pa -68 323}\special{pa -79 286}\special{pa -90 246}\special{pa -101 205}%
-\special{fp}%
-\special{pa 137 -394}\special{pa 142 -413}\special{pa 148 -441}\special{pa 155 -467}%
-\special{pa 162 -492}\special{pa 169 -514}\special{pa 176 -535}\special{pa 182 -554}%
-\special{pa 189 -571}\special{pa 196 -586}\special{pa 203 -599}\special{pa 210 -611}%
-\special{pa 216 -620}\special{pa 223 -628}\special{pa 230 -634}\special{pa 237 -638}%
-\special{pa 244 -641}\special{pa 250 -641}\special{pa 257 -639}\special{pa 264 -636}%
-\special{pa 271 -631}\special{pa 278 -624}\special{pa 284 -615}\special{pa 291 -604}%
-\special{pa 298 -592}\special{pa 305 -577}\special{pa 312 -561}\special{pa 318 -543}%
-\special{pa 325 -523}\special{pa 332 -501}\special{pa 339 -478}\special{pa 345 -452}%
-\special{pa 352 -425}\special{pa 359 -396}\special{pa 366 -365}\special{pa 373 -332}%
-\special{pa 379 -297}\special{pa 386 -260}\special{pa 393 -222}\special{pa 400 -182}%
-\special{pa 407 -139}\special{pa 413 -95}\special{pa 420 -50}\special{pa 427 -2}\special{pa 434 48}%
-\special{fp}%
-\special{pa -68 324}\special{pa -74 335}\special{pa -85 353}\special{pa -96 369}\special{pa -107 383}%
-\special{pa -117 396}\special{pa -128 406}\special{pa -139 415}\special{pa -150 422}%
-\special{pa -161 427}\special{pa -172 430}\special{pa -183 431}\special{pa -194 431}%
-\special{pa -205 429}\special{pa -216 424}\special{pa -227 418}\special{pa -237 411}%
-\special{pa -248 401}\special{pa -259 389}\special{pa -270 376}\special{pa -281 361}%
-\special{pa -292 343}\special{pa -303 324}\special{pa -314 304}\special{pa -325 281}%
-\special{pa -336 256}\special{pa -347 230}\special{pa -357 202}\special{pa -368 172}%
-\special{pa -379 140}\special{pa -390 106}\special{pa -401 70}\special{pa -412 33}%
-\special{pa -423 -6}\special{pa -434 -48}%
-\special{fp}%
-\special{pa 67 -135}\special{pa 72 -153}\special{pa 78 -175}\special{pa 85 -196}\special{pa 92 -215}%
-\special{pa 98 -232}\special{pa 105 -247}\special{pa 112 -261}\special{pa 118 -273}%
-\special{pa 125 -283}\special{pa 132 -291}\special{pa 138 -298}\special{pa 145 -302}%
-\special{pa 152 -305}\special{pa 158 -306}\special{pa 165 -306}\special{pa 172 -303}%
-\special{pa 178 -299}\special{pa 185 -293}\special{pa 192 -286}\special{pa 198 -276}%
-\special{pa 205 -265}\special{pa 212 -252}\special{pa 218 -237}\special{pa 225 -220}%
-\special{pa 232 -202}\special{pa 238 -182}\special{pa 245 -160}\special{pa 251 -136}%
-\special{pa 258 -111}\special{pa 265 -83}\special{pa 271 -54}\special{pa 278 -24}%
-\special{pa 285 9}\special{pa 291 43}\special{pa 298 80}\special{pa 305 117}\special{pa 311 157}%
-\special{pa 318 199}\special{pa 325 242}\special{pa 331 287}\special{pa 338 334}\special{pa 345 382}%
-\special{fp}%
-\special{pa -77 341}\special{pa -72 310}%
-\special{fp}%
-\special{pa 19 -42}\special{pa 23 -50}\special{pa 29 -61}\special{pa 36 -72}\special{pa 42 -80}%
-\special{pa 49 -86}\special{pa 56 -91}\special{pa 62 -94}\special{pa 69 -95}\special{pa 76 -94}%
-\special{pa 82 -92}\special{pa 89 -88}\special{pa 96 -82}\special{pa 102 -74}\special{pa 109 -65}%
-\special{pa 116 -53}\special{pa 122 -40}\special{pa 129 -26}\special{pa 136 -9}\special{pa 142 9}%
-\special{pa 149 30}\special{pa 156 51}\special{pa 162 75}\special{pa 169 101}\special{pa 176 128}%
-\special{pa 182 157}\special{pa 189 188}\special{pa 196 220}\special{pa 202 255}\special{pa 209 291}%
-\special{pa 216 329}\special{pa 222 368}\special{pa 229 410}\special{pa 236 453}\special{pa 242 498}%
-\special{pa 249 545}\special{pa 256 594}%
-\special{fp}%
-\special{pa -167 429}\special{pa -160 390}\special{pa -153 354}\special{pa -147 319}%
-\special{pa -140 286}\special{pa -133 254}\special{pa -127 225}\special{pa -120 197}%
-\special{pa -113 171}\special{pa -109 155}%
-\special{fp}%
-\special{pa -30 -5}\special{pa -27 -6}\special{pa -20 -7}\special{pa -13 -7}\special{pa -7 -4}%
-\special{pa 0 0}\special{pa 7 6}\special{pa 13 14}\special{pa 20 23}\special{pa 27 34}%
-\special{pa 33 47}\special{pa 40 62}\special{pa 47 79}\special{pa 53 97}\special{pa 60 117}%
-\special{pa 67 139}\special{pa 73 163}\special{pa 80 189}\special{pa 87 216}\special{pa 93 245}%
-\special{pa 100 276}\special{pa 107 308}\special{pa 113 343}\special{pa 120 379}\special{pa 127 417}%
-\special{pa 133 456}\special{pa 140 498}\special{pa 147 541}\special{pa 153 586}\special{pa 160 633}%
-\special{pa 167 681}%
-\special{fp}%
-\special{pa -256 393}\special{pa -249 355}\special{pa -242 318}\special{pa -236 283}%
-\special{pa -229 250}\special{pa -222 219}\special{pa -216 189}\special{pa -209 161}%
-\special{pa -202 135}\special{pa -196 111}\special{pa -189 89}\special{pa -182 68}%
-\special{pa -176 49}\special{pa -169 32}\special{pa -162 16}\special{pa -156 3}\special{pa -149 -9}%
-\special{pa -142 -19}\special{pa -136 -27}%
-\special{fp}%
-\special{pa -84 -31}\special{pa -82 -29}\special{pa -76 -22}\special{pa -69 -12}\special{pa -62 -1}%
-\special{pa -56 12}\special{pa -49 27}\special{pa -42 43}\special{pa -36 62}\special{pa -29 82}%
-\special{pa -23 104}\special{pa -16 128}\special{pa -9 153}\special{pa -3 180}\special{pa 4 209}%
-\special{pa 11 240}\special{pa 17 273}\special{pa 24 307}\special{pa 31 343}\special{pa 37 381}%
-\special{pa 44 421}\special{pa 51 462}\special{pa 57 506}\special{pa 64 551}\special{pa 71 597}%
-\special{pa 77 646}%
-\special{fp}%
-\special{pa -345 235}\special{pa -338 196}\special{pa -331 159}\special{pa -325 124}%
-\special{pa -318 91}\special{pa -311 60}\special{pa -305 30}\special{pa -298 3}\special{pa -291 -23}%
-\special{pa -285 -48}\special{pa -278 -70}\special{pa -271 -91}\special{pa -265 -110}%
-\special{pa -258 -127}\special{pa -251 -142}\special{pa -245 -156}\special{pa -238 -168}%
-\special{pa -232 -178}\special{pa -225 -186}\special{pa -218 -193}\special{pa -212 -197}%
-\special{pa -205 -200}\special{pa -198 -201}\special{pa -192 -201}\special{pa -185 -198}%
-\special{pa -178 -194}\special{pa -172 -188}\special{pa -165 -181}\special{pa -163 -177}%
-\special{fp}%
-\special{pa -152 -160}\special{pa -145 -147}\special{pa -138 -132}\special{pa -132 -115}%
-\special{pa -125 -97}\special{pa -118 -77}\special{pa -112 -55}\special{pa -105 -31}%
-\special{pa -98 -6}\special{pa -92 22}\special{pa -85 51}\special{pa -78 81}\special{pa -72 114}%
-\special{pa -65 148}\special{pa -58 185}\special{pa -52 222}\special{pa -45 262}\special{pa -38 304}%
-\special{pa -32 347}\special{pa -25 392}\special{pa -18 439}\special{pa -12 487}%
-\special{fp}%
-\special{pa 167 -510}\special{pa 157 -463}\special{pa 146 -418}\special{pa 135 -375}%
-\special{pa 125 -334}\special{pa 114 -294}\special{pa 103 -256}\special{pa 93 -220}%
-\special{pa 82 -186}\special{pa 71 -154}\special{pa 60 -123}\special{pa 50 -94}\special{pa 47 -88}%
-\special{fp}%
-\special{pa -111 126}\special{pa -121 127}\special{pa -132 125}\special{pa -143 122}%
-\special{pa -153 118}\special{pa -164 111}\special{pa -175 103}\special{pa -185 92}%
-\special{pa -196 80}\special{pa -207 67}\special{pa -218 51}\special{pa -228 34}\special{pa -239 15}%
-\special{pa -250 -6}\special{pa -260 -29}\special{pa -271 -53}\special{pa -282 -79}%
-\special{pa -292 -107}\special{pa -303 -137}\special{pa -314 -168}\special{pa -324 -202}%
-\special{pa -335 -237}\special{pa -346 -273}\special{pa -357 -312}\special{pa -367 -352}%
-\special{fp}%
-\special{pa 234 -637}\special{pa 223 -590}\special{pa 213 -545}\special{pa 202 -502}%
-\special{pa 191 -461}\special{pa 181 -421}\special{pa 170 -384}\special{pa 159 -348}%
-\special{pa 148 -313}\special{pa 138 -281}\special{pa 127 -250}\special{pa 116 -221}%
-\special{pa 106 -194}\special{pa 95 -169}\special{pa 84 -145}\special{pa 74 -123}%
-\special{pa 63 -103}\special{pa 52 -85}\special{pa 42 -69}\special{pa 31 -54}\special{pa 20 -41}%
-\special{pa 9 -30}\special{pa -1 -21}\special{pa -12 -13}\special{pa -23 -7}\special{pa -30 -4}%
-\special{fp}%
-\special{pa -140 -60}\special{pa -151 -76}\special{pa -162 -93}\special{pa -172 -112}%
-\special{pa -183 -133}\special{pa -194 -156}\special{pa -204 -180}\special{pa -215 -206}%
-\special{pa -226 -234}\special{pa -236 -264}\special{pa -247 -295}\special{pa -258 -329}%
-\special{pa -269 -364}\special{pa -279 -400}\special{pa -290 -439}\special{pa -301 -479}%
-\special{fp}%
-\special{pa 301 -586}\special{pa 290 -540}\special{pa 279 -495}\special{pa 269 -452}%
-\special{pa 258 -410}\special{pa 247 -371}\special{pa 236 -333}\special{pa 226 -297}%
-\special{pa 215 -263}\special{pa 204 -230}\special{pa 194 -200}\special{pa 183 -171}%
-\special{pa 172 -144}\special{pa 162 -118}\special{pa 151 -95}\special{pa 140 -73}%
-\special{pa 130 -53}\special{pa 119 -35}\special{pa 108 -18}\special{pa 97 -3}\special{pa 87 10}%
-\special{pa 76 21}\special{pa 65 30}\special{pa 55 38}\special{pa 44 43}\special{pa 33 47}%
-\special{pa 23 50}\special{pa 12 50}\special{pa 1 49}\special{pa -9 46}\special{pa -20 41}%
-\special{pa -31 34}\special{pa -42 26}\special{pa -52 16}\special{pa -63 4}\special{pa -74 -10}%
-\special{pa -84 -25}\special{pa -95 -43}\special{pa -106 -62}\special{pa -116 -83}%
-\special{pa -127 -105}\special{pa -138 -130}\special{pa -148 -156}\special{pa -159 -184}%
-\special{pa -161 -189}%
-\special{fp}%
-\special{pa -170 -213}\special{pa -181 -245}\special{pa -191 -278}\special{pa -202 -313}%
-\special{pa -213 -350}\special{pa -223 -389}\special{pa -234 -429}%
-\special{fp}%
-\special{pa 367 -358}\special{pa 357 -311}\special{pa 346 -267}\special{pa 335 -223}%
-\special{pa 324 -182}\special{pa 314 -143}\special{pa 303 -105}\special{pa 292 -69}%
-\special{pa 282 -35}\special{pa 271 -2}\special{pa 260 29}\special{pa 250 57}\special{pa 239 85}%
-\special{pa 228 110}\special{pa 218 134}\special{pa 207 155}\special{pa 196 175}\special{pa 185 194}%
-\special{pa 175 210}\special{pa 164 225}\special{pa 153 238}\special{pa 143 249}\special{pa 132 258}%
-\special{pa 121 266}\special{pa 111 272}\special{pa 100 276}\special{pa 89 278}\special{pa 79 278}%
-\special{pa 68 277}\special{pa 57 274}\special{pa 46 269}\special{pa 36 263}\special{pa 25 254}%
-\special{pa 14 244}\special{pa 4 232}\special{pa -7 218}\special{pa -18 203}\special{pa -28 186}%
-\special{pa -39 166}\special{pa -50 146}\special{pa -60 123}\special{pa -71 99}\special{pa -82 73}%
-\special{pa -93 45}\special{pa -103 15}\special{pa -114 -17}\special{pa -125 -50}%
-\special{pa -135 -85}\special{pa -146 -122}\special{pa -157 -160}\special{pa -167 -201}%
-\special{fp}%
-\end{picture}}% \ No newline at end of file
diff --git a/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig3d/wirepara2.tex b/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig3d/wirepara2.tex
deleted file mode 100644
index 7f2d41c4..00000000
--- a/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig3d/wirepara2.tex
+++ /dev/null
@@ -1,179 +0,0 @@
-%%% /Users/Hannya/ketcindy/ketwork/template.tex 2016-8-13 20:26
-%%% template.sce 2016-8-13 20:26
-{\unitlength=4mm%
-\begin{picture}%
-( 10.01000, 9.42000)( -5.01000, -4.42000)%
-\special{pn 8}%
-%
-\settowidth{\Width}{$x$}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{$x$}\settodepth{\Depth}{$x$}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(-4.7181,-1.0387){\hspace*{\Width}\raisebox{\Height}{$x$}}%
-%
-%
-\settowidth{\Width}{$y$}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{$y$}\settodepth{\Depth}{$y$}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(2.2443,-2.2778){\hspace*{\Width}\raisebox{\Height}{$y$}}%
-%
-%
-\settowidth{\Width}{$z$}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{$z$}\settodepth{\Depth}{$z$}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(0.0000,4.5961){\hspace*{\Width}\raisebox{\Height}{$z$}}%
-%
-%
-\special{pa 714 -157}\special{pa -714 157}%
-\special{fp}%
-\special{pa -332 -337}\special{pa 332 337}%
-\special{fp}%
-\special{pa 0 694}\special{pa 0 -694}%
-\special{fp}%
-\special{pa 312 -20}\special{pa 306 -42}\special{pa 299 -64}\special{pa 293 -86}\special{pa 286 -107}%
-\special{pa 280 -128}\special{pa 273 -148}\special{pa 267 -167}\special{pa 260 -186}%
-\special{pa 254 -205}\special{pa 247 -223}\special{pa 241 -241}\special{pa 234 -259}%
-\special{pa 227 -275}\special{pa 221 -292}\special{pa 214 -308}\special{pa 208 -323}%
-\special{pa 201 -338}\special{pa 195 -353}\special{pa 188 -367}\special{pa 182 -381}%
-\special{pa 175 -394}\special{pa 170 -403}\special{pa 162 -419}\special{pa 155 -431}%
-\special{pa 148 -442}\special{pa 142 -453}\special{pa 135 -463}\special{pa 128 -473}%
-\special{pa 121 -483}\special{pa 115 -492}\special{pa 108 -499}\special{pa 101 -508}%
-\special{pa 94 -516}\special{pa 87 -523}\special{pa 79 -530}\special{pa 72 -536}\special{pa 64 -542}%
-\special{pa 58 -546}\special{pa 48 -552}\special{pa 45 -554}\special{pa 39 -556}\special{pa 34 -558}%
-\special{pa 29 -560}\special{pa 19 -563}\special{pa 15 -564}\special{pa 7 -565}\special{pa 2 -565}%
-\special{pa -3 -565}\special{pa -9 -565}\special{pa -15 -564}\special{pa -21 -563}%
-\special{pa -29 -561}\special{pa -37 -557}\special{pa -48 -552}\special{pa -57 -547}%
-\special{pa -63 -543}\special{pa -72 -536}\special{pa -79 -530}\special{pa -85 -525}%
-\special{pa -94 -516}\special{pa -101 -508}\special{pa -108 -500}\special{pa -115 -492}%
-\special{pa -121 -483}\special{pa -128 -473}\special{pa -135 -463}\special{pa -142 -453}%
-\special{pa -148 -442}\special{pa -155 -431}\special{pa -162 -419}\special{pa -168 -407}%
-\special{pa -175 -394}\special{pa -182 -381}\special{pa -188 -367}\special{pa -195 -353}%
-\special{pa -201 -338}\special{pa -208 -323}\special{pa -214 -308}\special{pa -221 -292}%
-\special{pa -228 -275}\special{pa -234 -259}\special{pa -241 -241}\special{pa -247 -223}%
-\special{pa -254 -205}\special{pa -260 -186}\special{pa -267 -167}\special{pa -273 -148}%
-\special{pa -280 -128}\special{pa -286 -107}\special{pa -293 -86}\special{pa -299 -64}%
-\special{pa -306 -42}\special{pa -312 -20}%
-\special{fp}%
-\special{pa -286 63}\special{pa -266 80}\special{pa -242 95}\special{pa -215 109}%
-\special{pa -184 121}\special{pa -149 131}\special{pa -113 139}\special{pa -74 145}%
-\special{pa -34 148}\special{pa 6 149}\special{pa 46 147}\special{pa 86 143}\special{pa 124 137}%
-\special{pa 160 128}\special{pa 193 118}\special{pa 223 105}\special{pa 250 91}\special{pa 272 75}%
-\special{pa 290 58}\special{pa 304 40}\special{pa 312 21}\special{pa 315 2}\special{pa 313 -17}%
-\special{pa 306 -36}%
-\special{fp}%
-\special{pa -308 -30}\special{pa -314 -11}\special{pa -315 8}\special{pa -310 27}%
-\special{pa -300 45}\special{pa -286 63}%
-\special{fp}%
-\special{pa -48 -529}\special{pa -44 -526}\special{pa -41 -524}\special{pa -36 -522}%
-\special{pa -31 -520}\special{pa -25 -518}\special{pa -20 -517}\special{pa -13 -516}%
-\special{pa -7 -515}\special{pa 0 -515}\special{pa 6 -515}\special{pa 13 -516}\special{pa 19 -517}%
-\special{pa 25 -518}\special{pa 31 -520}\special{pa 36 -522}\special{pa 40 -524}\special{pa 44 -526}%
-\special{pa 47 -529}\special{pa 52 -535}\special{pa 52 -541}\special{pa 50 -547}\special{pa 44 -553}%
-\special{pa 41 -555}\special{pa 36 -558}\special{pa 31 -560}\special{pa 25 -561}\special{pa 20 -563}%
-\special{pa 13 -564}\special{pa 7 -564}\special{pa 0 -565}\special{pa -6 -564}\special{pa -13 -564}%
-\special{pa -19 -563}\special{pa -25 -561}\special{pa -31 -560}\special{pa -36 -558}%
-\special{pa -40 -556}\special{pa -44 -553}\special{pa -47 -550}\special{pa -52 -544}%
-\special{pa -52 -538}\special{pa -50 -532}\special{pa -48 -529}%
-\special{fp}%
-\special{pa -95 -472}\special{pa -89 -467}\special{pa -81 -462}\special{pa -72 -457}%
-\special{pa -62 -453}\special{pa -51 -450}\special{pa -39 -447}\special{pa -27 -445}%
-\special{pa -14 -444}\special{pa 0 -444}\special{pa 13 -444}\special{pa 26 -445}\special{pa 38 -447}%
-\special{pa 50 -450}\special{pa 61 -453}\special{pa 72 -457}\special{pa 81 -462}\special{pa 88 -467}%
-\special{pa 95 -472}\special{pa 100 -478}\special{pa 103 -484}\special{pa 105 -490}%
-\special{pa 105 -496}\special{pa 103 -503}\special{pa 100 -509}\special{pa 95 -514}%
-\special{pa 89 -520}\special{pa 86 -522}%
-\special{fp}%
-\special{pa -94 -516}\special{pa -95 -515}\special{pa -100 -509}\special{pa -103 -503}%
-\special{pa -105 -497}\special{pa -105 -491}\special{pa -103 -484}\special{pa -100 -478}%
-\special{pa -95 -472}%
-\special{fp}%
-\special{pa -143 -385}\special{pa -133 -377}\special{pa -122 -369}\special{pa -108 -362}%
-\special{pa -93 -356}\special{pa -76 -351}\special{pa -59 -347}\special{pa -40 -344}%
-\special{pa -20 -343}\special{pa -1 -342}\special{pa 19 -342}\special{pa 39 -344}%
-\special{pa 57 -347}\special{pa 75 -351}\special{pa 92 -356}\special{pa 107 -362}%
-\special{pa 121 -369}\special{pa 133 -376}\special{pa 142 -384}\special{pa 150 -393}%
-\special{pa 155 -402}\special{pa 157 -411}\special{pa 157 -421}\special{pa 155 -430}%
-\special{pa 150 -439}%
-\special{fp}%
-\special{pa -148 -442}\special{pa -150 -440}\special{pa -155 -431}\special{pa -157 -421}%
-\special{pa -157 -412}\special{pa -155 -403}\special{pa -150 -394}\special{pa -143 -385}%
-\special{fp}%
-\special{pa -190 -266}\special{pa -178 -256}\special{pa -162 -245}\special{pa -144 -236}%
-\special{pa -124 -228}\special{pa -102 -222}\special{pa -78 -216}\special{pa -53 -212}%
-\special{pa -27 -210}\special{pa -1 -209}\special{pa 25 -210}\special{pa 51 -212}%
-\special{pa 77 -216}\special{pa 100 -221}\special{pa 123 -228}\special{pa 143 -236}%
-\special{pa 161 -245}\special{pa 177 -255}\special{pa 190 -266}\special{pa 199 -277}%
-\special{pa 206 -289}\special{pa 210 -302}\special{pa 210 -314}\special{pa 206 -327}%
-\special{pa 200 -338}%
-\special{fp}%
-\special{pa -199 -339}\special{pa -206 -327}\special{pa -210 -315}\special{pa -210 -303}%
-\special{pa -206 -290}\special{pa -200 -278}\special{pa -190 -266}%
-\special{fp}%
-\special{pa -238 -117}\special{pa -222 -104}\special{pa -203 -91}\special{pa -180 -80}%
-\special{pa -155 -70}\special{pa -127 -61}\special{pa -98 -54}\special{pa -66 -50}%
-\special{pa -34 -47}\special{pa -1 -46}\special{pa 32 -46}\special{pa 64 -49}\special{pa 96 -54}%
-\special{pa 126 -61}\special{pa 153 -69}\special{pa 179 -79}\special{pa 202 -90}\special{pa 221 -103}%
-\special{pa 237 -116}\special{pa 249 -131}\special{pa 258 -146}\special{pa 262 -161}%
-\special{pa 262 -177}\special{pa 258 -192}\special{pa 252 -204}%
-\special{fp}%
-\special{pa -252 -204}\special{pa -258 -193}\special{pa -262 -178}\special{pa -262 -162}%
-\special{pa -258 -147}\special{pa -250 -132}\special{pa -238 -117}%
-\special{fp}%
-\special{pa 0 -555}\special{pa -4 -549}\special{pa -6 -545}\special{pa -9 -540}\special{pa -11 -536}%
-\special{pa -13 -530}\special{pa -15 -525}\special{pa -17 -519}\special{pa -19 -512}%
-\special{pa -22 -505}\special{pa -24 -497}\special{pa -26 -490}\special{pa -28 -481}%
-\special{pa -30 -472}\special{pa -32 -463}\special{pa -35 -453}\special{pa -37 -443}%
-\special{pa -39 -433}\special{pa -41 -422}\special{pa -43 -410}\special{pa -45 -398}%
-\special{pa -47 -386}\special{pa -50 -373}\special{pa -52 -360}\special{pa -54 -346}%
-\special{pa -56 -332}\special{pa -58 -318}\special{pa -60 -303}\special{pa -63 -287}%
-\special{pa -65 -271}\special{pa -67 -255}\special{pa -69 -238}\special{pa -71 -221}%
-\special{pa -73 -203}\special{pa -76 -185}\special{pa -78 -167}\special{pa -80 -148}%
-\special{pa -82 -128}\special{pa -84 -108}\special{pa -86 -88}\special{pa -88 -67}%
-\special{pa -91 -46}\special{pa -93 -24}\special{pa -95 -2}\special{pa -97 20}\special{pa -99 43}%
-\special{pa -101 67}\special{pa -104 91}\special{pa -106 115}\special{pa -108 140}%
-\special{fp}%
-\special{pa 0 -555}\special{pa 3 -552}\special{pa 5 -549}\special{pa 8 -545}\special{pa 11 -541}%
-\special{pa 13 -536}\special{pa 16 -531}\special{pa 19 -525}\special{pa 21 -519}\special{pa 24 -513}%
-\special{pa 27 -506}\special{pa 29 -499}\special{pa 32 -491}\special{pa 35 -482}\special{pa 37 -474}%
-\special{pa 40 -465}\special{pa 43 -455}\special{pa 45 -445}\special{pa 48 -435}\special{pa 51 -424}%
-\special{pa 53 -412}\special{pa 56 -401}\special{pa 59 -388}\special{pa 61 -376}\special{pa 64 -362}%
-\special{pa 66 -349}\special{pa 69 -335}\special{pa 72 -320}\special{pa 74 -305}\special{pa 77 -290}%
-\special{pa 80 -274}\special{pa 82 -258}\special{pa 85 -241}\special{pa 88 -224}\special{pa 90 -207}%
-\special{pa 93 -189}\special{pa 96 -170}\special{pa 98 -151}\special{pa 101 -132}%
-\special{pa 104 -112}\special{pa 106 -92}\special{pa 109 -71}\special{pa 112 -50}%
-\special{pa 114 -28}\special{pa 117 -6}\special{pa 120 16}\special{pa 122 39}\special{pa 125 62}%
-\special{pa 128 86}\special{pa 130 110}\special{pa 133 135}%
-\special{fp}%
-\special{pa 0 -555}\special{pa 6 -554}\special{pa 12 -552}\special{pa 18 -550}\special{pa 24 -547}%
-\special{pa 30 -544}\special{pa 36 -541}\special{pa 41 -537}\special{pa 47 -533}\special{pa 53 -528}%
-\special{pa 59 -523}\special{pa 65 -517}\special{pa 71 -511}\special{pa 77 -504}\special{pa 83 -497}%
-\special{pa 89 -490}\special{pa 95 -482}\special{pa 101 -474}\special{pa 107 -465}%
-\special{pa 112 -456}\special{pa 118 -446}\special{pa 124 -436}\special{pa 130 -425}%
-\special{pa 136 -414}\special{pa 142 -403}\special{pa 148 -391}\special{pa 154 -378}%
-\special{pa 160 -366}\special{pa 166 -352}\special{pa 172 -339}\special{pa 178 -325}%
-\special{pa 183 -310}\special{pa 189 -295}\special{pa 195 -280}\special{pa 201 -264}%
-\special{pa 207 -247}\special{pa 213 -231}\special{pa 219 -213}\special{pa 225 -196}%
-\special{pa 231 -178}\special{pa 237 -159}\special{pa 243 -140}\special{pa 249 -121}%
-\special{pa 254 -101}\special{pa 260 -80}\special{pa 266 -60}\special{pa 272 -38}%
-\special{pa 278 -17}\special{pa 284 5}\special{pa 290 28}\special{pa 296 51}%
-\special{fp}%
-\special{pa 0 -555}\special{pa 6 -556}\special{pa 11 -557}\special{pa 17 -557}\special{pa 23 -557}%
-\special{pa 29 -556}\special{pa 34 -555}\special{pa 40 -553}\special{pa 46 -551}\special{pa 51 -548}%
-\special{pa 57 -545}\special{pa 63 -542}\special{pa 69 -538}\special{pa 74 -534}\special{pa 80 -529}%
-\special{pa 86 -524}\special{pa 91 -518}\special{pa 97 -512}\special{pa 103 -506}%
-\special{pa 108 -499}\special{pa 114 -491}\special{pa 120 -484}\special{pa 126 -475}%
-\special{pa 131 -467}\special{pa 137 -457}\special{pa 143 -448}\special{pa 148 -438}%
-\special{pa 153 -429}%
-\special{fp}%
-\special{pa 0 -555}\special{pa 4 -560}\special{pa 9 -563}\special{pa 13 -564}%
-\special{fp}%
-\special{pa 0 -555}\special{pa -5 -560}\special{pa -11 -562}\special{pa -15 -563}%
-\special{fp}%
-\special{pa 0 -555}\special{pa -6 -556}\special{pa -12 -556}\special{pa -18 -556}%
-\special{pa -24 -556}\special{pa -30 -555}\special{pa -36 -553}\special{pa -41 -551}%
-\special{pa -47 -549}\special{pa -53 -546}\special{pa -59 -543}\special{pa -65 -539}%
-\special{pa -71 -535}\special{pa -77 -531}\special{pa -83 -526}\special{pa -89 -520}%
-\special{pa -95 -515}\special{pa -101 -508}\special{pa -107 -502}\special{pa -112 -494}%
-\special{pa -118 -487}\special{pa -124 -479}\special{pa -130 -470}\special{pa -136 -461}%
-\special{pa -142 -452}\special{pa -148 -442}\special{pa -154 -432}\special{pa -160 -421}%
-\special{pa -166 -410}\special{pa -172 -398}\special{pa -178 -386}\special{pa -183 -373}%
-\special{pa -189 -360}\special{pa -195 -347}\special{pa -201 -333}\special{pa -207 -319}%
-\special{pa -213 -304}\special{pa -218 -291}%
-\special{fp}%
-\end{picture}}% \ No newline at end of file
diff --git a/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig3d/wirepara3.tex b/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig3d/wirepara3.tex
deleted file mode 100644
index 988e49b7..00000000
--- a/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig3d/wirepara3.tex
+++ /dev/null
@@ -1,265 +0,0 @@
-%%% /Users/Hannya/ketcindy/ketwork/template.tex 2016-8-22 21:51
-%%% template.sce 2016-8-22 21:51
-{\unitlength=6mm%
-\begin{picture}%
-( 7.17000, 6.03000)( -3.65000, -2.44000)%
-\special{pn 8}%
-%
-\settowidth{\Width}{$x$}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{$x$}\settodepth{\Depth}{$x$}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(-3.2384,-1.6002){\hspace*{\Width}\raisebox{\Height}{$x$}}%
-%
-%
-\settowidth{\Width}{$y$}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{$y$}\settodepth{\Depth}{$y$}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(3.3633,-2.3750){\hspace*{\Width}\raisebox{\Height}{$y$}}%
-%
-%
-\settowidth{\Width}{$z$}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{$z$}\settodepth{\Depth}{$z$}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(0.0000,2.6107){\hspace*{\Width}\raisebox{\Height}{$z$}}%
-%
-%
-\special{pa 831 -411}\special{pa -725 358}%
-\special{fp}%
-\special{pa -758 -535}\special{pa 758 535}%
-\special{fp}%
-\special{pa 0 576}\special{pa 0 -572}%
-\special{fp}%
-\special{pa -272 386}\special{pa -261 394}\special{pa -226 415}\special{pa -215 421}%
-\special{pa -183 436}\special{pa -156 446}\special{pa -142 451}\special{pa -103 461}%
-\special{pa -66 468}\special{pa -52 470}\special{pa -29 472}\special{pa 7 472}\special{pa 42 471}%
-\special{pa 53 470}\special{pa 79 466}\special{pa 117 458}\special{pa 156 446}\special{pa 198 429}%
-\special{pa 215 421}\special{pa 243 405}\special{pa 261 394}\special{pa 290 373}\special{pa 300 365}%
-\special{pa 333 335}\special{pa 339 330}\special{pa 362 304}\special{pa 387 272}\special{pa 409 237}%
-\special{pa 427 202}\special{pa 442 167}\special{pa 454 130}\special{pa 460 107}\special{pa 463 93}%
-\special{pa 469 56}\special{pa 472 19}\special{pa 472 7}\special{pa 472 -19}\special{pa 469 -56}%
-\special{pa 463 -93}\special{pa 454 -130}\special{pa 442 -167}\special{pa 434 -186}%
-\special{pa 427 -202}\special{pa 409 -237}\special{pa 393 -263}\special{pa 387 -271}%
-\special{pa 362 -304}\special{pa 345 -323}\special{pa 333 -335}\special{pa 300 -365}%
-\special{pa 261 -394}\special{pa 249 -402}\special{pa 215 -421}\special{pa 204 -426}%
-\special{pa 162 -444}\special{pa 156 -446}\special{pa 122 -456}\special{pa 84 -465}%
-\special{pa 53 -469}\special{pa 47 -470}\special{pa 11 -472}\special{pa -24 -472}%
-\special{pa -53 -469}\special{pa -61 -469}\special{pa -98 -462}\special{pa -136 -452}%
-\special{pa -155 -446}\special{pa -177 -438}\special{pa -215 -421}\special{pa -220 -418}%
-\special{pa -261 -394}\special{pa -266 -390}\special{pa -300 -365}\special{pa -314 -353}%
-\special{pa -333 -335}\special{pa -362 -304}\special{pa -387 -271}\special{pa -409 -237}%
-\special{pa -427 -202}\special{pa -442 -167}\special{pa -447 -154}\special{pa -454 -130}%
-\special{pa -463 -94}\special{pa -469 -58}\special{pa -472 -19}\special{pa -472 19}%
-\special{pa -470 44}\special{pa -469 56}\special{pa -463 94}\special{pa -454 130}%
-\special{pa -451 142}\special{pa -442 167}\special{pa -427 202}\special{pa -415 226}%
-\special{pa -409 237}\special{pa -387 271}\special{pa -369 295}\special{pa -362 304}%
-\special{pa -333 335}\special{pa -321 347}\special{pa -300 365}\special{pa -272 386}%
-\special{fp}%
-\special{pa 0 -381}\special{pa -23 -369}\special{pa -45 -356}\special{pa -68 -341}%
-\special{pa -90 -325}\special{pa -112 -307}\special{pa -133 -289}\special{pa -154 -269}%
-\special{pa -175 -248}\special{pa -194 -226}\special{pa -213 -203}\special{pa -231 -180}%
-\special{pa -248 -155}\special{pa -264 -130}\special{pa -279 -105}\special{pa -293 -79}%
-\special{pa -306 -53}\special{pa -318 -27}\special{pa -328 0}\special{pa -337 26}%
-\special{pa -345 52}\special{pa -351 79}\special{pa -356 104}\special{pa -360 130}%
-\special{pa -362 155}\special{pa -362 179}\special{pa -362 203}\special{pa -360 225}%
-\special{pa -356 247}\special{pa -351 268}\special{pa -345 288}\special{pa -337 307}%
-\special{pa -328 324}\special{pa -318 341}\special{pa -306 355}\special{pa -293 369}%
-\special{pa -279 381}\special{pa -264 391}\special{pa -248 400}\special{pa -231 408}%
-\special{fp}%
-\special{pa -87 -327}\special{pa -77 -321}\special{pa -66 -316}\special{pa -54 -311}%
-\special{pa -41 -308}\special{pa -28 -305}\special{pa -14 -304}\special{pa 1 -303}%
-\special{pa 15 -304}\special{pa 29 -306}\special{pa 42 -308}\special{pa 55 -312}\special{pa 67 -316}%
-\special{pa 78 -322}\special{pa 88 -328}\special{pa 96 -335}\special{pa 103 -342}%
-\special{pa 108 -350}\special{pa 111 -358}\special{pa 113 -366}\special{pa 113 -375}%
-\special{pa 111 -383}\special{pa 107 -391}\special{pa 102 -399}\special{pa 95 -406}%
-\special{pa 87 -413}\special{pa 77 -419}\special{pa 66 -424}\special{pa 54 -429}\special{pa 41 -432}%
-\special{pa 28 -435}\special{pa 14 -436}\special{pa -1 -437}\special{pa -15 -436}%
-\special{pa -29 -435}\special{pa -42 -432}\special{pa -55 -428}\special{pa -67 -424}%
-\special{pa -78 -419}\special{pa -88 -412}\special{pa -96 -406}\special{pa -103 -398}%
-\special{pa -108 -390}\special{pa -111 -382}\special{pa -113 -374}\special{pa -113 -366}%
-\special{pa -111 -357}\special{pa -107 -349}\special{pa -102 -341}\special{pa -95 -334}%
-\special{pa -87 -327}%
-\special{fp}%
-\special{pa -168 -254}\special{pa -149 -243}\special{pa -128 -232}\special{pa -105 -224}%
-\special{pa -80 -217}\special{pa -53 -212}\special{pa -26 -209}\special{pa 1 -208}%
-\special{pa 29 -209}\special{pa 56 -212}\special{pa 82 -217}\special{pa 107 -224}%
-\special{pa 130 -233}\special{pa 151 -243}\special{pa 170 -255}\special{pa 186 -269}%
-\special{pa 199 -283}\special{pa 209 -298}\special{pa 216 -314}\special{pa 219 -330}%
-\special{pa 219 -346}\special{pa 215 -363}\special{pa 208 -378}\special{pa 198 -393}%
-\special{pa 185 -408}\special{pa 168 -421}\special{pa 149 -433}\special{pa 128 -443}%
-\special{pa 105 -452}\special{pa 80 -458}\special{pa 53 -463}\special{pa 26 -466}%
-\special{pa -1 -467}\special{pa -29 -466}\special{pa -56 -463}\special{pa -82 -458}%
-\special{pa -107 -451}\special{pa -130 -442}\special{pa -151 -432}\special{pa -170 -420}%
-\special{pa -186 -406}\special{pa -199 -392}\special{pa -209 -377}\special{pa -216 -361}%
-\special{pa -219 -345}\special{pa -219 -329}\special{pa -215 -313}\special{pa -208 -297}%
-\special{pa -198 -282}\special{pa -185 -267}\special{pa -168 -254}%
-\special{fp}%
-\special{pa -240 -167}\special{pa -213 -150}\special{pa -183 -135}\special{pa -149 -123}%
-\special{pa -114 -113}\special{pa -76 -106}\special{pa -38 -102}\special{pa 2 -100}%
-\special{pa 41 -102}\special{pa 80 -106}\special{pa 117 -114}\special{pa 152 -124}%
-\special{pa 186 -136}\special{pa 216 -151}\special{pa 242 -168}\special{pa 265 -187}%
-\special{pa 284 -207}\special{pa 298 -229}\special{pa 308 -252}\special{pa 313 -275}%
-\special{pa 313 -298}\special{pa 307 -321}\special{pa 297 -343}\special{pa 283 -365}%
-\special{pa 264 -385}\special{pa 240 -404}\special{pa 213 -421}\special{pa 183 -436}%
-\special{pa 149 -448}\special{pa 114 -458}\special{pa 76 -465}\special{pa 38 -469}%
-\special{pa -2 -470}\special{pa -41 -469}\special{pa -80 -464}\special{pa -117 -457}%
-\special{pa -152 -447}\special{pa -186 -434}\special{pa -216 -420}\special{pa -242 -403}%
-\special{pa -265 -384}\special{pa -284 -363}\special{pa -298 -342}\special{pa -308 -319}%
-\special{pa -313 -296}\special{pa -313 -273}\special{pa -307 -250}\special{pa -297 -227}%
-\special{pa -283 -206}\special{pa -264 -185}\special{pa -240 -167}%
-\special{fp}%
-\special{pa -298 -69}\special{pa -265 -48}\special{pa -227 -30}\special{pa -185 -15}%
-\special{pa -141 -3}\special{pa -95 6}\special{pa -47 11}\special{pa 2 13}\special{pa 51 11}%
-\special{pa 99 6}\special{pa 145 -3}\special{pa 189 -16}\special{pa 230 -31}\special{pa 268 -50}%
-\special{pa 301 -71}\special{pa 329 -95}\special{pa 353 -120}\special{pa 370 -147}%
-\special{pa 382 -175}\special{pa 388 -203}\special{pa 388 -232}\special{pa 382 -261}%
-\special{pa 369 -289}\special{pa 351 -315}\special{pa 327 -341}\special{pa 298 -364}%
-\special{pa 265 -385}\special{pa 245 -394}%
-\special{fp}%
-\special{pa -258 -388}\special{pa -268 -383}\special{pa -301 -362}\special{pa -329 -339}%
-\special{pa -353 -313}\special{pa -370 -286}\special{pa -382 -258}\special{pa -388 -230}%
-\special{pa -388 -201}\special{pa -382 -172}\special{pa -369 -144}\special{pa -351 -118}%
-\special{pa -327 -92}\special{pa -298 -69}%
-\special{fp}%
-\special{pa -339 32}\special{pa -301 56}\special{pa -258 77}\special{pa -211 94}\special{pa -160 108}%
-\special{pa -108 118}\special{pa -53 124}\special{pa 2 126}\special{pa 58 124}\special{pa 112 117}%
-\special{pa 165 107}\special{pa 215 93}\special{pa 262 75}\special{pa 304 54}\special{pa 342 30}%
-\special{pa 374 3}\special{pa 401 -25}\special{pa 421 -56}\special{pa 434 -88}\special{pa 441 -120}%
-\special{pa 441 -153}\special{pa 433 -185}\special{pa 419 -217}\special{pa 399 -248}%
-\special{pa 388 -259}%
-\special{fp}%
-\special{pa -381 -266}\special{pa -401 -245}\special{pa -421 -214}\special{pa -434 -183}%
-\special{pa -441 -150}\special{pa -441 -117}\special{pa -433 -85}\special{pa -419 -53}%
-\special{pa -399 -23}\special{pa -372 6}\special{pa -339 32}%
-\special{fp}%
-\special{pa -360 132}\special{pa -319 157}\special{pa -274 179}\special{pa -224 198}%
-\special{pa -170 212}\special{pa -114 223}\special{pa -56 229}\special{pa 3 231}\special{pa 61 229}%
-\special{pa 119 222}\special{pa 175 211}\special{pa 228 196}\special{pa 278 177}\special{pa 323 155}%
-\special{pa 363 129}\special{pa 397 101}\special{pa 425 71}\special{pa 447 38}\special{pa 461 4}%
-\special{pa 468 -30}\special{pa 468 -65}\special{pa 462 -93}%
-\special{fp}%
-\special{pa -461 -96}\special{pa -468 -62}\special{pa -468 -27}\special{pa -460 7}%
-\special{pa -445 41}\special{pa -423 73}\special{pa -395 104}\special{pa -360 132}%
-\special{fp}%
-\special{pa -360 224}\special{pa -319 249}\special{pa -274 271}\special{pa -224 289}%
-\special{pa -170 304}\special{pa -114 315}\special{pa -56 321}\special{pa 3 323}\special{pa 61 321}%
-\special{pa 119 314}\special{pa 175 303}\special{pa 228 288}\special{pa 278 269}\special{pa 323 247}%
-\special{pa 363 221}\special{pa 397 193}\special{pa 425 163}\special{pa 447 130}%
-\special{fp}%
-\special{pa 457 106}\special{pa 461 96}\special{pa 468 63}%
-\special{fp}%
-\special{pa -468 56}\special{pa -468 65}\special{pa -460 99}\special{pa -445 133}%
-\special{pa -423 165}\special{pa -395 196}\special{pa -360 224}%
-\special{fp}%
-\special{pa -339 303}\special{pa -301 326}\special{pa -258 347}\special{pa -211 365}%
-\special{pa -160 378}\special{pa -108 388}\special{pa -53 394}\special{pa 2 396}\special{pa 58 394}%
-\special{pa 112 388}\special{pa 165 377}\special{pa 215 363}\special{pa 262 345}\special{pa 304 324}%
-\special{pa 342 300}\special{pa 374 274}\special{pa 401 245}\special{pa 421 214}\special{pa 434 183}%
-\special{pa 438 166}%
-\special{fp}%
-\special{pa -433 185}\special{pa -419 217}\special{pa -399 248}\special{pa -372 276}%
-\special{pa -339 303}%
-\special{fp}%
-\special{pa -298 364}\special{pa -265 385}\special{pa -227 403}\special{pa -185 418}%
-\special{pa -141 431}\special{pa -95 439}\special{pa -47 445}\special{pa 2 446}\special{pa 51 444}%
-\special{pa 99 439}\special{pa 145 430}\special{pa 189 417}\special{pa 230 402}\special{pa 268 383}%
-\special{pa 301 362}\special{pa 329 339}\special{pa 353 313}\special{pa 360 302}%
-\special{fp}%
-\special{pa -369 289}\special{pa -351 315}\special{pa -327 341}\special{pa -298 364}%
-\special{fp}%
-\special{pa -240 404}\special{pa -213 421}\special{pa -183 436}\special{pa -149 448}%
-\special{pa -114 458}\special{pa -76 465}\special{pa -38 469}\special{pa 2 470}\special{pa 41 469}%
-\special{pa 80 464}\special{pa 117 457}\special{pa 152 447}\special{pa 186 434}\special{pa 216 420}%
-\special{pa 242 403}\special{pa 258 390}%
-\special{fp}%
-\special{pa -264 385}\special{pa -240 404}%
-\special{fp}%
-\special{pa -26 466}\special{pa 1 467}%
-\special{fp}%
-\special{pa 0 -381}\special{pa -11 -364}\special{pa -23 -346}\special{pa -34 -326}%
-\special{pa -45 -305}\special{pa -56 -283}\special{pa -66 -259}\special{pa -77 -235}%
-\special{pa -87 -210}\special{pa -96 -184}\special{pa -106 -157}\special{pa -115 -129}%
-\special{pa -123 -101}\special{pa -131 -73}\special{pa -139 -44}\special{pa -146 -15}%
-\special{pa -152 14}\special{pa -158 42}\special{pa -163 71}\special{pa -167 100}%
-\special{pa -171 128}\special{pa -174 155}\special{pa -177 182}\special{pa -179 208}%
-\special{pa -180 234}\special{pa -180 258}\special{pa -180 281}\special{pa -179 304}%
-\special{pa -177 325}\special{pa -174 345}\special{pa -171 363}\special{pa -167 380}%
-\special{pa -163 396}\special{pa -158 410}\special{pa -152 422}\special{pa -146 433}%
-\special{pa -139 442}\special{pa -131 449}\special{pa -123 455}\special{pa -115 458}%
-\special{pa -106 460}\special{pa -103 460}%
-\special{fp}%
-\special{pa 0 -381}\special{pa 3 -363}\special{pa 5 -343}\special{pa 8 -322}\special{pa 11 -300}%
-\special{pa 13 -277}\special{pa 16 -252}\special{pa 19 -227}\special{pa 21 -200}\special{pa 23 -173}%
-\special{pa 26 -145}\special{pa 28 -117}\special{pa 30 -88}\special{pa 32 -58}\special{pa 34 -29}%
-\special{pa 35 1}\special{pa 37 30}\special{pa 38 60}\special{pa 39 89}\special{pa 41 118}%
-\special{pa 41 146}\special{pa 42 174}\special{pa 43 202}\special{pa 43 228}\special{pa 44 253}%
-\special{pa 44 278}\special{pa 44 301}\special{pa 43 323}\special{pa 43 344}\special{pa 42 364}%
-\special{pa 41 382}\special{pa 41 399}\special{pa 39 414}\special{pa 38 427}\special{pa 37 439}%
-\special{pa 35 449}\special{pa 34 457}\special{pa 32 464}\special{pa 28 471}%
-\special{fp}%
-\special{pa 0 -381}\special{pa 16 -366}\special{pa 32 -349}\special{pa 48 -331}\special{pa 64 -311}%
-\special{pa 79 -290}\special{pa 95 -268}\special{pa 110 -245}\special{pa 124 -221}%
-\special{pa 138 -196}\special{pa 151 -171}\special{pa 164 -145}\special{pa 176 -118}%
-\special{pa 188 -90}\special{pa 198 -63}\special{pa 208 -35}\special{pa 217 -7}\special{pa 225 21}%
-\special{pa 233 49}\special{pa 239 77}\special{pa 245 105}\special{pa 249 132}\special{pa 253 159}%
-\special{pa 255 184}\special{pa 257 210}\special{pa 257 234}\special{pa 257 258}\special{pa 255 280}%
-\special{pa 253 301}\special{pa 249 322}\special{pa 245 340}\special{pa 239 358}\special{pa 233 374}%
-\special{pa 225 389}\special{pa 217 402}\special{pa 208 413}\special{pa 198 423}\special{pa 188 432}%
-\special{pa 176 438}\special{pa 164 443}\special{pa 163 443}%
-\special{fp}%
-\special{pa 0 -381}\special{pa 26 -372}\special{pa 52 -361}\special{pa 77 -349}\special{pa 102 -335}%
-\special{pa 127 -320}\special{pa 152 -304}\special{pa 175 -287}\special{pa 198 -268}%
-\special{pa 221 -249}\special{pa 242 -228}\special{pa 263 -207}\special{pa 282 -184}%
-\special{pa 300 -161}\special{pa 317 -138}\special{pa 333 -114}\special{pa 348 -89}%
-\special{pa 361 -64}\special{pa 373 -39}\special{pa 383 -13}\special{pa 392 12}\special{pa 399 38}%
-\special{pa 405 63}\special{pa 409 88}\special{pa 411 112}\special{pa 412 137}\special{pa 411 160}%
-\special{pa 409 183}\special{pa 405 206}\special{pa 399 227}\special{pa 392 248}\special{pa 383 267}%
-\special{pa 373 286}\special{pa 361 303}\special{pa 348 320}\special{pa 333 335}\special{pa 317 348}%
-\special{pa 300 361}%
-\special{fp}%
-\special{pa 0 -381}\special{pa 30 -380}\special{pa 59 -377}\special{pa 88 -373}\special{pa 117 -367}%
-\special{pa 146 -360}\special{pa 174 -352}\special{pa 201 -342}\special{pa 228 -330}%
-\special{pa 253 -318}\special{pa 278 -304}\special{pa 301 -289}\special{pa 323 -272}%
-\special{pa 344 -255}\special{pa 364 -237}\special{pa 382 -218}\special{pa 399 -198}%
-\special{pa 414 -177}\special{pa 427 -155}\special{pa 439 -133}\special{pa 449 -110}%
-\special{pa 457 -87}\special{pa 464 -64}\special{pa 469 -40}\special{pa 471 -16}\special{pa 472 8}%
-\special{pa 471 32}\special{pa 469 56}%
-\special{fp}%
-\special{pa 0 -381}\special{pa 27 -388}\special{pa 53 -394}\special{pa 80 -397}\special{pa 106 -400}%
-\special{pa 131 -400}\special{pa 156 -400}\special{pa 181 -397}\special{pa 204 -393}%
-\special{pa 227 -388}\special{pa 249 -380}\special{pa 271 -372}\special{pa 291 -362}%
-\special{pa 309 -350}\special{pa 327 -337}\special{pa 343 -323}\special{pa 358 -308}%
-\special{pa 372 -291}\special{pa 384 -273}\special{pa 391 -261}%
-\special{fp}%
-\special{pa 0 -381}\special{pa 18 -395}\special{pa 35 -406}\special{pa 52 -417}\special{pa 69 -425}%
-\special{pa 86 -432}\special{pa 103 -437}\special{pa 119 -441}\special{pa 135 -442}%
-\special{pa 150 -442}\special{pa 164 -441}\special{pa 178 -437}\special{pa 191 -432}%
-\special{pa 195 -430}%
-\special{fp}%
-\special{pa 0 -381}\special{pa 4 -398}\special{pa 9 -413}\special{pa 13 -426}\special{pa 17 -438}%
-\special{pa 22 -448}\special{pa 26 -456}\special{pa 30 -462}\special{pa 34 -467}\special{pa 41 -471}%
-\special{pa 45 -470}%
-\special{fp}%
-\special{pa 0 -381}\special{pa -10 -397}\special{pa -19 -411}\special{pa -29 -424}%
-\special{pa -39 -435}\special{pa -48 -444}\special{pa -57 -451}\special{pa -66 -457}%
-\special{pa -75 -461}\special{pa -83 -463}\special{pa -91 -463}%
-\special{fp}%
-\special{pa 0 -381}\special{pa -22 -392}\special{pa -43 -402}\special{pa -65 -410}%
-\special{pa -86 -417}\special{pa -106 -422}\special{pa -127 -425}\special{pa -147 -426}%
-\special{pa -166 -426}\special{pa -185 -424}\special{pa -203 -421}\special{pa -220 -415}%
-\special{pa -236 -409}\special{pa -251 -400}\special{pa -266 -390}\special{pa -266 -390}%
-\special{fp}%
-\special{pa 0 -381}\special{pa -29 -385}\special{pa -57 -388}\special{pa -85 -388}%
-\special{pa -113 -388}\special{pa -141 -386}\special{pa -168 -382}\special{pa -194 -377}%
-\special{pa -219 -370}\special{pa -244 -362}\special{pa -268 -352}\special{pa -290 -341}%
-\special{pa -312 -329}\special{pa -332 -315}\special{pa -351 -300}\special{pa -368 -284}%
-\special{pa -384 -267}\special{pa -399 -249}\special{pa -412 -230}\special{pa -423 -210}%
-\special{pa -433 -189}\special{pa -441 -167}%
-\special{fp}%
-\special{pa 0 -381}\special{pa -29 -377}\special{pa -58 -371}\special{pa -87 -363}%
-\special{pa -115 -355}\special{pa -143 -344}\special{pa -170 -333}\special{pa -197 -320}%
-\special{pa -222 -306}\special{pa -247 -290}\special{pa -271 -274}\special{pa -294 -256}%
-\special{pa -316 -237}\special{pa -337 -218}\special{pa -356 -197}\special{pa -374 -176}%
-\special{pa -390 -154}\special{pa -405 -132}\special{pa -418 -109}\special{pa -429 -85}%
-\special{pa -439 -62}\special{pa -447 -38}\special{pa -454 -13}\special{pa -458 11}%
-\special{pa -461 35}\special{pa -462 59}\special{pa -461 83}\special{pa -458 106}%
-\special{pa -454 129}\special{pa -447 152}\special{pa -439 174}\special{pa -429 195}%
-\special{pa -418 216}\special{pa -405 235}%
-\special{fp}%
-\end{picture}}% \ No newline at end of file
diff --git a/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig3d/wirepara4.tex b/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig3d/wirepara4.tex
deleted file mode 100644
index 82c5a44e..00000000
--- a/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig3d/wirepara4.tex
+++ /dev/null
@@ -1,320 +0,0 @@
-%%% /Users/Hannya/ketcindy/ketwork/template.tex 2016-8-22 22:0
-%%% template.sce 2016-8-22 22:0
-{\unitlength=8mm%
-\begin{picture}%
-( 7.17000, 6.03000)( -3.65000, -2.44000)%
-\special{pn 8}%
-%
-\settowidth{\Width}{$x$}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{$x$}\settodepth{\Depth}{$x$}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(-3.2384,-1.6002){\hspace*{\Width}\raisebox{\Height}{$x$}}%
-%
-%
-\settowidth{\Width}{$y$}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{$y$}\settodepth{\Depth}{$y$}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(3.3633,-2.3750){\hspace*{\Width}\raisebox{\Height}{$y$}}%
-%
-%
-\settowidth{\Width}{$z$}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{$z$}\settodepth{\Depth}{$z$}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(0.0000,2.6107){\hspace*{\Width}\raisebox{\Height}{$z$}}%
-%
-%
-\special{pa -363 515}\special{pa -348 525}\special{pa -302 553}\special{pa -286 561}%
-\special{pa -243 581}\special{pa -207 595}\special{pa -189 601}\special{pa -137 615}%
-\special{pa -87 624}\special{pa -70 626}\special{pa -39 629}\special{pa 9 630}\special{pa 57 627}%
-\special{pa 70 626}\special{pa 105 621}\special{pa 156 610}\special{pa 208 594}\special{pa 264 572}%
-\special{pa 286 561}\special{pa 324 540}\special{pa 348 525}\special{pa 386 498}\special{pa 400 487}%
-\special{pa 444 447}\special{pa 451 439}\special{pa 482 405}\special{pa 515 362}\special{pa 545 316}%
-\special{pa 569 270}\special{pa 589 222}\special{pa 605 174}\special{pa 613 143}\special{pa 617 125}%
-\special{pa 625 75}\special{pa 629 25}\special{pa 630 9}\special{pa 629 -25}\special{pa 625 -75}%
-\special{pa 617 -125}\special{pa 605 -174}\special{pa 589 -222}\special{pa 579 -248}%
-\special{pa 569 -270}\special{pa 545 -316}\special{pa 524 -350}\special{pa 516 -361}%
-\special{pa 483 -405}\special{pa 460 -430}\special{pa 444 -447}\special{pa 400 -487}%
-\special{pa 348 -525}\special{pa 332 -535}\special{pa 286 -561}\special{pa 272 -568}%
-\special{pa 216 -592}\special{pa 208 -595}\special{pa 163 -609}\special{pa 112 -620}%
-\special{pa 71 -626}\special{pa 63 -627}\special{pa 15 -630}\special{pa -33 -629}%
-\special{pa -71 -626}\special{pa -81 -625}\special{pa -130 -616}\special{pa -182 -603}%
-\special{pa -207 -595}\special{pa -236 -584}\special{pa -287 -561}\special{pa -294 -557}%
-\special{pa -348 -525}\special{pa -355 -521}\special{pa -399 -487}\special{pa -419 -471}%
-\special{pa -444 -447}\special{pa -483 -405}\special{pa -516 -361}\special{pa -545 -316}%
-\special{pa -569 -270}\special{pa -589 -222}\special{pa -595 -206}\special{pa -605 -174}%
-\special{pa -617 -125}\special{pa -625 -77}\special{pa -629 -25}\special{pa -629 25}%
-\special{pa -627 59}\special{pa -625 75}\special{pa -617 125}\special{pa -605 174}%
-\special{pa -601 189}\special{pa -589 222}\special{pa -569 270}\special{pa -553 302}%
-\special{pa -545 316}\special{pa -516 361}\special{pa -492 393}\special{pa -483 405}%
-\special{pa -444 447}\special{pa -427 463}\special{pa -399 487}\special{pa -363 515}%
-\special{fp}%
-\special{pa 0 -508}\special{pa -30 -492}\special{pa -61 -474}\special{pa -91 -455}%
-\special{pa -120 -433}\special{pa -149 -410}\special{pa -178 -385}\special{pa -206 -358}%
-\special{pa -233 -330}\special{pa -259 -301}\special{pa -284 -271}\special{pa -308 -239}%
-\special{pa -331 -207}\special{pa -352 -174}\special{pa -372 -140}\special{pa -391 -106}%
-\special{pa -408 -71}\special{pa -423 -36}\special{pa -437 0}\special{pa -449 35}%
-\special{pa -460 70}\special{pa -468 105}\special{pa -475 139}\special{pa -479 173}%
-\special{pa -482 206}\special{pa -483 239}\special{pa -482 270}\special{pa -479 301}%
-\special{pa -475 330}\special{pa -468 358}\special{pa -460 384}\special{pa -449 409}%
-\special{pa -437 432}\special{pa -423 454}\special{pa -408 474}\special{pa -391 492}%
-\special{pa -372 508}\special{pa -352 522}\special{pa -331 534}\special{pa -308 544}%
-\special{fp}%
-\special{pa -116 -436}\special{pa -103 -428}\special{pa -88 -421}\special{pa -72 -415}%
-\special{pa -55 -411}\special{pa -37 -407}\special{pa -18 -405}\special{pa 1 -404}%
-\special{pa 20 -405}\special{pa 38 -407}\special{pa 56 -411}\special{pa 73 -416}\special{pa 89 -422}%
-\special{pa 104 -429}\special{pa 117 -437}\special{pa 128 -446}\special{pa 137 -456}%
-\special{pa 144 -466}\special{pa 148 -477}\special{pa 150 -488}\special{pa 150 -500}%
-\special{pa 148 -511}\special{pa 143 -521}\special{pa 136 -532}\special{pa 127 -542}%
-\special{pa 116 -551}\special{pa 103 -559}\special{pa 88 -566}\special{pa 72 -572}%
-\special{pa 55 -576}\special{pa 37 -580}\special{pa 18 -582}\special{pa -1 -583}\special{pa -20 -582}%
-\special{pa -38 -580}\special{pa -56 -576}\special{pa -73 -571}\special{pa -89 -565}%
-\special{pa -104 -558}\special{pa -117 -550}\special{pa -128 -541}\special{pa -137 -531}%
-\special{pa -144 -521}\special{pa -148 -510}\special{pa -150 -499}\special{pa -150 -487}%
-\special{pa -148 -476}\special{pa -143 -466}\special{pa -136 -455}\special{pa -127 -445}%
-\special{pa -116 -436}%
-\special{fp}%
-\special{pa -225 -339}\special{pa -199 -323}\special{pa -171 -310}\special{pa -140 -298}%
-\special{pa -106 -289}\special{pa -71 -282}\special{pa -35 -278}\special{pa 2 -277}%
-\special{pa 38 -279}\special{pa 74 -283}\special{pa 109 -290}\special{pa 142 -299}%
-\special{pa 173 -311}\special{pa 202 -325}\special{pa 227 -341}\special{pa 248 -358}%
-\special{pa 266 -377}\special{pa 279 -398}\special{pa 288 -419}\special{pa 292 -440}%
-\special{pa 292 -462}\special{pa 287 -483}\special{pa 278 -504}\special{pa 264 -525}%
-\special{pa 246 -544}\special{pa 225 -561}\special{pa 199 -577}\special{pa 171 -591}%
-\special{pa 140 -602}\special{pa 106 -611}\special{pa 71 -618}\special{pa 35 -622}%
-\special{pa -2 -623}\special{pa -38 -621}\special{pa -74 -617}\special{pa -109 -610}%
-\special{pa -142 -601}\special{pa -173 -589}\special{pa -202 -575}\special{pa -227 -560}%
-\special{pa -248 -542}\special{pa -266 -523}\special{pa -279 -503}\special{pa -288 -482}%
-\special{pa -292 -460}\special{pa -292 -438}\special{pa -287 -417}\special{pa -278 -396}%
-\special{pa -264 -376}\special{pa -246 -357}\special{pa -225 -339}%
-\special{fp}%
-\special{pa -320 -222}\special{pa -284 -200}\special{pa -244 -180}\special{pa -199 -164}%
-\special{pa -152 -151}\special{pa -102 -141}\special{pa -50 -135}\special{pa 2 -134}%
-\special{pa 55 -136}\special{pa 106 -142}\special{pa 156 -152}\special{pa 203 -165}%
-\special{pa 247 -182}\special{pa 288 -202}\special{pa 323 -224}\special{pa 354 -249}%
-\special{pa 379 -277}\special{pa 398 -305}\special{pa 411 -336}\special{pa 417 -366}%
-\special{pa 417 -397}\special{pa 410 -428}\special{pa 397 -458}\special{pa 377 -487}%
-\special{pa 351 -514}\special{pa 320 -539}\special{pa 284 -561}\special{pa 244 -581}%
-\special{pa 199 -597}\special{pa 152 -610}\special{pa 102 -620}\special{pa 50 -625}%
-\special{pa -2 -627}\special{pa -55 -625}\special{pa -106 -619}\special{pa -156 -609}%
-\special{pa -203 -596}\special{pa -247 -579}\special{pa -288 -559}\special{pa -323 -537}%
-\special{pa -354 -512}\special{pa -379 -484}\special{pa -398 -455}\special{pa -411 -425}%
-\special{pa -417 -395}\special{pa -417 -364}\special{pa -410 -333}\special{pa -397 -303}%
-\special{pa -377 -274}\special{pa -351 -247}\special{pa -320 -222}%
-\special{fp}%
-\special{pa -398 -92}\special{pa -353 -64}\special{pa -302 -40}\special{pa -247 -20}%
-\special{pa -188 -3}\special{pa -126 8}\special{pa -62 15}\special{pa 3 17}\special{pa 68 15}%
-\special{pa 132 7}\special{pa 193 -5}\special{pa 252 -21}\special{pa 307 -42}\special{pa 357 -67}%
-\special{pa 401 -95}\special{pa 439 -126}\special{pa 470 -160}\special{pa 494 -196}%
-\special{pa 510 -233}\special{pa 518 -271}\special{pa 517 -310}\special{pa 509 -348}%
-\special{pa 492 -385}\special{pa 468 -421}\special{pa 436 -454}\special{pa 398 -485}%
-\special{pa 353 -513}\special{pa 327 -526}%
-\special{fp}%
-\special{pa -344 -517}\special{pa -357 -511}\special{pa -401 -483}\special{pa -439 -451}%
-\special{pa -470 -418}\special{pa -494 -382}\special{pa -510 -344}\special{pa -518 -306}%
-\special{pa -517 -268}\special{pa -509 -230}\special{pa -492 -193}\special{pa -468 -157}%
-\special{pa -436 -123}\special{pa -398 -92}%
-\special{fp}%
-\special{pa -452 43}\special{pa -401 75}\special{pa -344 102}\special{pa -281 126}%
-\special{pa -214 144}\special{pa -143 157}\special{pa -71 165}\special{pa 3 168}\special{pa 77 165}%
-\special{pa 150 156}\special{pa 220 143}\special{pa 287 124}\special{pa 349 100}\special{pa 406 72}%
-\special{pa 456 40}\special{pa 499 5}\special{pa 534 -34}\special{pa 561 -75}\special{pa 579 -117}%
-\special{pa 588 -160}\special{pa 588 -204}\special{pa 578 -247}\special{pa 559 -290}%
-\special{pa 532 -330}\special{pa 518 -345}%
-\special{fp}%
-\special{pa -509 -355}\special{pa -534 -327}\special{pa -561 -286}\special{pa -579 -244}%
-\special{pa -588 -200}\special{pa -588 -157}\special{pa -578 -113}\special{pa -559 -71}%
-\special{pa -532 -30}\special{pa -496 8}\special{pa -452 43}%
-\special{fp}%
-\special{pa -480 176}\special{pa -426 209}\special{pa -365 239}\special{pa -298 263}%
-\special{pa -227 283}\special{pa -152 297}\special{pa -75 305}\special{pa 3 308}\special{pa 82 305}%
-\special{pa 159 296}\special{pa 233 281}\special{pa 304 261}\special{pa 370 236}\special{pa 431 207}%
-\special{pa 484 173}\special{pa 530 135}\special{pa 567 94}\special{pa 596 51}\special{pa 615 6}%
-\special{pa 624 -40}\special{pa 624 -86}\special{pa 615 -124}%
-\special{fp}%
-\special{pa -615 -129}\special{pa -624 -82}\special{pa -624 -36}\special{pa -614 10}%
-\special{pa -594 55}\special{pa -564 98}\special{pa -526 138}\special{pa -480 176}%
-\special{fp}%
-\special{pa -480 298}\special{pa -426 332}\special{pa -365 361}\special{pa -298 386}%
-\special{pa -227 405}\special{pa -152 420}\special{pa -75 428}\special{pa 3 431}\special{pa 82 427}%
-\special{pa 159 419}\special{pa 233 404}\special{pa 304 384}\special{pa 370 359}\special{pa 431 329}%
-\special{pa 484 295}\special{pa 530 257}\special{pa 567 217}\special{pa 596 173}%
-\special{fp}%
-\special{pa 609 141}\special{pa 615 129}\special{pa 624 84}%
-\special{fp}%
-\special{pa -624 75}\special{pa -624 86}\special{pa -614 132}\special{pa -594 177}%
-\special{pa -564 220}\special{pa -526 261}\special{pa -480 298}%
-\special{fp}%
-\special{pa -452 403}\special{pa -401 435}\special{pa -344 463}\special{pa -281 486}%
-\special{pa -214 504}\special{pa -143 518}\special{pa -71 526}\special{pa 3 528}\special{pa 77 525}%
-\special{pa 150 517}\special{pa 220 503}\special{pa 287 484}\special{pa 349 461}\special{pa 406 433}%
-\special{pa 456 401}\special{pa 499 365}\special{pa 534 327}\special{pa 561 286}\special{pa 579 244}%
-\special{pa 584 221}%
-\special{fp}%
-\special{pa -578 247}\special{pa -559 290}\special{pa -532 330}\special{pa -496 368}%
-\special{pa -452 403}%
-\special{fp}%
-\special{pa -398 485}\special{pa -353 513}\special{pa -302 537}\special{pa -247 558}%
-\special{pa -188 574}\special{pa -126 586}\special{pa -62 593}\special{pa 3 595}\special{pa 68 592}%
-\special{pa 132 585}\special{pa 193 573}\special{pa 252 556}\special{pa 307 535}\special{pa 357 511}%
-\special{pa 401 483}\special{pa 439 451}\special{pa 470 418}\special{pa 480 403}%
-\special{fp}%
-\special{pa -492 385}\special{pa -468 421}\special{pa -436 454}\special{pa -398 485}%
-\special{fp}%
-\special{pa -320 539}\special{pa -284 561}\special{pa -244 581}\special{pa -199 597}%
-\special{pa -152 610}\special{pa -102 620}\special{pa -50 625}\special{pa 2 627}\special{pa 55 625}%
-\special{pa 106 619}\special{pa 156 609}\special{pa 203 596}\special{pa 247 579}\special{pa 288 559}%
-\special{pa 323 537}\special{pa 344 520}%
-\special{fp}%
-\special{pa -351 514}\special{pa -320 539}%
-\special{fp}%
-\special{pa -35 622}\special{pa 2 623}%
-\special{fp}%
-\special{pa 0 -508}\special{pa -15 -486}\special{pa -30 -461}\special{pa -45 -435}%
-\special{pa -60 -407}\special{pa -74 -377}\special{pa -88 -346}\special{pa -102 -313}%
-\special{pa -116 -280}\special{pa -129 -245}\special{pa -141 -209}\special{pa -153 -172}%
-\special{pa -164 -135}\special{pa -175 -97}\special{pa -185 -59}\special{pa -194 -20}%
-\special{pa -203 18}\special{pa -210 57}\special{pa -217 95}\special{pa -223 133}%
-\special{pa -228 170}\special{pa -232 207}\special{pa -236 243}\special{pa -238 278}%
-\special{pa -240 311}\special{pa -240 344}\special{pa -240 375}\special{pa -238 405}%
-\special{pa -236 433}\special{pa -232 460}\special{pa -228 484}\special{pa -223 507}%
-\special{pa -217 528}\special{pa -210 546}\special{pa -203 563}\special{pa -194 577}%
-\special{pa -185 589}\special{pa -175 599}\special{pa -164 606}\special{pa -153 611}%
-\special{pa -141 613}\special{pa -137 613}%
-\special{fp}%
-\special{pa 0 -508}\special{pa 4 -484}\special{pa 7 -458}\special{pa 11 -430}\special{pa 14 -400}%
-\special{pa 18 -369}\special{pa 21 -336}\special{pa 25 -302}\special{pa 28 -267}\special{pa 31 -231}%
-\special{pa 34 -193}\special{pa 37 -155}\special{pa 40 -117}\special{pa 42 -78}\special{pa 45 -39}%
-\special{pa 47 1}\special{pa 49 40}\special{pa 51 80}\special{pa 53 119}\special{pa 54 157}%
-\special{pa 55 195}\special{pa 56 232}\special{pa 57 269}\special{pa 58 304}\special{pa 58 338}%
-\special{pa 58 370}\special{pa 58 402}\special{pa 58 431}\special{pa 57 459}\special{pa 56 485}%
-\special{pa 55 509}\special{pa 54 532}\special{pa 53 552}\special{pa 51 570}\special{pa 49 585}%
-\special{pa 47 598}\special{pa 45 609}\special{pa 42 618}\special{pa 37 628}%
-\special{fp}%
-\special{pa 0 -508}\special{pa 22 -488}\special{pa 43 -465}\special{pa 64 -441}\special{pa 85 -415}%
-\special{pa 106 -387}\special{pa 126 -358}\special{pa 146 -327}\special{pa 165 -295}%
-\special{pa 184 -262}\special{pa 202 -228}\special{pa 219 -193}\special{pa 235 -157}%
-\special{pa 250 -120}\special{pa 264 -84}\special{pa 277 -46}\special{pa 290 -9}\special{pa 301 29}%
-\special{pa 310 66}\special{pa 319 103}\special{pa 326 140}\special{pa 332 176}\special{pa 337 211}%
-\special{pa 340 246}\special{pa 342 280}\special{pa 343 312}\special{pa 342 343}\special{pa 340 373}%
-\special{pa 337 402}\special{pa 332 429}\special{pa 326 454}\special{pa 319 477}\special{pa 310 499}%
-\special{pa 301 518}\special{pa 290 536}\special{pa 277 551}\special{pa 264 564}\special{pa 250 575}%
-\special{pa 235 584}\special{pa 219 591}\special{pa 217 591}%
-\special{fp}%
-\special{pa 0 -508}\special{pa 34 -496}\special{pa 69 -481}\special{pa 103 -465}\special{pa 137 -447}%
-\special{pa 170 -427}\special{pa 202 -406}\special{pa 234 -382}\special{pa 265 -358}%
-\special{pa 294 -332}\special{pa 323 -304}\special{pa 350 -275}\special{pa 376 -246}%
-\special{pa 400 -215}\special{pa 423 -184}\special{pa 444 -151}\special{pa 464 -119}%
-\special{pa 481 -85}\special{pa 497 -52}\special{pa 511 -18}\special{pa 522 16}\special{pa 532 50}%
-\special{pa 540 84}\special{pa 545 117}\special{pa 548 150}\special{pa 549 182}\special{pa 548 214}%
-\special{pa 545 244}\special{pa 540 274}\special{pa 532 303}\special{pa 522 330}\special{pa 511 357}%
-\special{pa 497 381}\special{pa 481 405}\special{pa 464 426}\special{pa 444 446}\special{pa 423 464}%
-\special{pa 400 481}%
-\special{fp}%
-\special{pa 0 -508}\special{pa 40 -507}\special{pa 79 -503}\special{pa 118 -497}\special{pa 157 -490}%
-\special{pa 195 -480}\special{pa 232 -469}\special{pa 268 -455}\special{pa 303 -440}%
-\special{pa 337 -423}\special{pa 370 -405}\special{pa 401 -385}\special{pa 431 -363}%
-\special{pa 459 -340}\special{pa 485 -316}\special{pa 509 -290}\special{pa 532 -263}%
-\special{pa 552 -236}\special{pa 570 -207}\special{pa 585 -177}\special{pa 599 -147}%
-\special{pa 610 -116}\special{pa 619 -85}\special{pa 625 -53}\special{pa 628 -21}%
-\special{pa 630 11}\special{pa 628 42}\special{pa 625 74}%
-\special{fp}%
-\special{pa 0 -508}\special{pa 36 -518}\special{pa 71 -525}\special{pa 106 -530}\special{pa 141 -533}%
-\special{pa 175 -534}\special{pa 208 -533}\special{pa 241 -530}\special{pa 273 -524}%
-\special{pa 303 -517}\special{pa 333 -507}\special{pa 361 -496}\special{pa 387 -482}%
-\special{pa 412 -467}\special{pa 436 -450}\special{pa 458 -431}\special{pa 478 -410}%
-\special{pa 496 -388}\special{pa 512 -364}\special{pa 521 -349}%
-\special{fp}%
-\special{pa 0 -508}\special{pa 23 -526}\special{pa 47 -542}\special{pa 70 -556}\special{pa 93 -567}%
-\special{pa 115 -576}\special{pa 137 -583}\special{pa 159 -588}\special{pa 179 -590}%
-\special{pa 200 -590}\special{pa 219 -588}\special{pa 237 -583}\special{pa 255 -576}%
-\special{pa 259 -573}%
-\special{fp}%
-\special{pa 0 -508}\special{pa 6 -530}\special{pa 12 -550}\special{pa 18 -568}\special{pa 23 -584}%
-\special{pa 29 -597}\special{pa 34 -608}\special{pa 40 -617}\special{pa 45 -623}\special{pa 55 -627}%
-\special{pa 60 -626}%
-\special{fp}%
-\special{pa 0 -508}\special{pa -13 -529}\special{pa -26 -548}\special{pa -39 -565}%
-\special{pa -51 -580}\special{pa -64 -592}\special{pa -76 -602}\special{pa -88 -610}%
-\special{pa -100 -615}\special{pa -111 -618}\special{pa -121 -618}%
-\special{fp}%
-\special{pa 0 -508}\special{pa -29 -523}\special{pa -58 -536}\special{pa -86 -547}%
-\special{pa -114 -556}\special{pa -142 -562}\special{pa -169 -566}\special{pa -196 -568}%
-\special{pa -221 -568}\special{pa -246 -566}\special{pa -270 -561}\special{pa -293 -554}%
-\special{pa -315 -545}\special{pa -335 -533}\special{pa -354 -520}\special{pa -354 -520}%
-\special{fp}%
-\special{pa 0 -508}\special{pa -38 -514}\special{pa -76 -517}\special{pa -114 -518}%
-\special{pa -151 -517}\special{pa -188 -514}\special{pa -223 -509}\special{pa -258 -502}%
-\special{pa -292 -493}\special{pa -325 -482}\special{pa -357 -470}\special{pa -387 -455}%
-\special{pa -416 -438}\special{pa -443 -420}\special{pa -468 -400}\special{pa -491 -379}%
-\special{pa -513 -356}\special{pa -532 -332}\special{pa -549 -306}\special{pa -564 -279}%
-\special{pa -577 -251}\special{pa -588 -223}%
-\special{fp}%
-\special{pa 0 -508}\special{pa -39 -502}\special{pa -77 -494}\special{pa -115 -485}%
-\special{pa -153 -473}\special{pa -190 -459}\special{pa -227 -444}\special{pa -262 -426}%
-\special{pa -297 -407}\special{pa -330 -387}\special{pa -362 -365}\special{pa -392 -341}%
-\special{pa -421 -317}\special{pa -449 -291}\special{pa -474 -263}\special{pa -498 -235}%
-\special{pa -520 -206}\special{pa -539 -176}\special{pa -557 -145}\special{pa -572 -114}%
-\special{pa -586 -82}\special{pa -596 -50}\special{pa -605 -18}\special{pa -611 14}%
-\special{pa -614 47}\special{pa -616 79}\special{pa -614 111}\special{pa -611 142}%
-\special{pa -605 173}\special{pa -596 203}\special{pa -586 232}\special{pa -572 260}%
-\special{pa -557 288}\special{pa -540 313}%
-\special{fp}%
-\special{pa 1109 -548}\special{pa 565 -279}%
-\special{fp}%
-\special{pa -483 239}\special{pa -966 477}%
-\special{fp}%
-\special{pa -1010 -714}\special{pa -515 -363}%
-\special{fp}%
-\special{pa 404 285}\special{pa 1010 714}%
-\special{fp}%
-\special{pa 0 769}\special{pa 0 630}%
-\special{fp}%
-\special{pa 0 -508}\special{pa 0 -762}%
-\special{fp}%
-\special{pn 8}%
-\special{pa 568 -281}\special{pa 561 -277}\special{fp}\special{pa 533 -264}\special{pa 526 -260}\special{fp}%
-\special{pa 498 -246}\special{pa 491 -243}\special{fp}\special{pa 463 -229}\special{pa 456 -225}\special{fp}%
-\special{pa 429 -212}\special{pa 421 -208}\special{fp}\special{pa 394 -195}\special{pa 386 -191}\special{fp}%
-\special{pa 359 -177}\special{pa 352 -174}\special{fp}\special{pa 324 -160}\special{pa 317 -156}\special{fp}%
-\special{pa 289 -143}\special{pa 282 -139}\special{fp}\special{pa 254 -125}\special{pa 247 -122}\special{fp}%
-\special{pa 219 -108}\special{pa 212 -105}\special{fp}\special{pa 184 -91}\special{pa 177 -87}\special{fp}%
-\special{pa 149 -74}\special{pa 142 -70}\special{fp}\special{pa 114 -56}\special{pa 107 -53}\special{fp}%
-\special{pa 79 -39}\special{pa 72 -36}\special{fp}\special{pa 44 -22}\special{pa 37 -18}\special{fp}%
-\special{pa 9 -5}\special{pa 2 -1}\special{fp}\special{pa -26 13}\special{pa -33 16}\special{fp}%
-\special{pa -60 30}\special{pa -68 33}\special{fp}\special{pa -95 47}\special{pa -103 51}\special{fp}%
-\special{pa -130 64}\special{pa -137 68}\special{fp}\special{pa -165 82}\special{pa -172 85}\special{fp}%
-\special{pa -200 99}\special{pa -207 102}\special{fp}\special{pa -235 116}\special{pa -242 120}\special{fp}%
-\special{pa -270 133}\special{pa -277 137}\special{fp}\special{pa -305 151}\special{pa -312 154}\special{fp}%
-\special{pa -340 168}\special{pa -347 171}\special{fp}\special{pa -375 185}\special{pa -382 189}\special{fp}%
-\special{pa -410 202}\special{pa -417 206}\special{fp}\special{pa -445 220}\special{pa -452 223}\special{fp}%
-\special{pa -480 237}\special{pa -487 241}\special{fp}\special{pn 8}%
-\special{pa -518 -366}\special{pa -511 -361}\special{fp}\special{pa -486 -343}\special{pa -480 -339}\special{fp}%
-\special{pa -454 -321}\special{pa -448 -316}\special{fp}\special{pa -423 -299}\special{pa -416 -294}\special{fp}%
-\special{pa -391 -276}\special{pa -385 -272}\special{fp}\special{pa -359 -254}\special{pa -353 -249}\special{fp}%
-\special{pa -328 -231}\special{pa -321 -227}\special{fp}\special{pa -296 -209}\special{pa -290 -204}\special{fp}%
-\special{pa -264 -187}\special{pa -258 -182}\special{fp}\special{pa -233 -164}\special{pa -226 -160}\special{fp}%
-\special{pa -201 -142}\special{pa -195 -137}\special{fp}\special{pa -169 -120}\special{pa -163 -115}\special{fp}%
-\special{pa -138 -97}\special{pa -131 -93}\special{fp}\special{pa -106 -75}\special{pa -100 -70}\special{fp}%
-\special{pa -74 -53}\special{pa -68 -48}\special{fp}\special{pa -43 -30}\special{pa -36 -26}\special{fp}%
-\special{pa -11 -8}\special{pa -5 -3}\special{fp}\special{pa 21 15}\special{pa 27 19}\special{fp}%
-\special{pa 52 37}\special{pa 59 42}\special{fp}\special{pa 84 59}\special{pa 91 64}\special{fp}%
-\special{pa 116 82}\special{pa 122 86}\special{fp}\special{pa 147 104}\special{pa 154 109}\special{fp}%
-\special{pa 179 126}\special{pa 186 131}\special{fp}\special{pa 211 149}\special{pa 217 153}\special{fp}%
-\special{pa 242 171}\special{pa 249 176}\special{fp}\special{pa 274 193}\special{pa 281 198}\special{fp}%
-\special{pa 306 216}\special{pa 312 220}\special{fp}\special{pa 337 238}\special{pa 344 243}\special{fp}%
-\special{pa 369 261}\special{pa 376 265}\special{fp}\special{pa 401 283}\special{pa 407 288}\special{fp}%
-\special{pn 8}%
-\special{pa 0 634}\special{pa 0 626}\special{fp}\special{pa 0 595}\special{pa 0 587}\special{fp}%
-\special{pa 0 555}\special{pa 0 547}\special{fp}\special{pa 0 516}\special{pa 0 508}\special{fp}%
-\special{pa 0 477}\special{pa 0 469}\special{fp}\special{pa 0 438}\special{pa 0 430}\special{fp}%
-\special{pa 0 398}\special{pa 0 390}\special{fp}\special{pa 0 359}\special{pa 0 351}\special{fp}%
-\special{pa 0 320}\special{pa 0 312}\special{fp}\special{pa 0 281}\special{pa 0 273}\special{fp}%
-\special{pa 0 241}\special{pa 0 233}\special{fp}\special{pa 0 202}\special{pa 0 194}\special{fp}%
-\special{pa 0 163}\special{pa 0 155}\special{fp}\special{pa 0 124}\special{pa 0 116}\special{fp}%
-\special{pa 0 84}\special{pa 0 76}\special{fp}\special{pa 0 45}\special{pa 0 37}\special{fp}%
-\special{pa 0 6}\special{pa 0 -2}\special{fp}\special{pa 0 -33}\special{pa 0 -41}\special{fp}%
-\special{pa 0 -73}\special{pa 0 -81}\special{fp}\special{pa 0 -112}\special{pa 0 -120}\special{fp}%
-\special{pa 0 -151}\special{pa 0 -159}\special{fp}\special{pa 0 -190}\special{pa 0 -198}\special{fp}%
-\special{pa 0 -230}\special{pa 0 -238}\special{fp}\special{pa 0 -269}\special{pa 0 -277}\special{fp}%
-\special{pa 0 -308}\special{pa 0 -316}\special{fp}\special{pa 0 -347}\special{pa 0 -355}\special{fp}%
-\special{pa 0 -387}\special{pa 0 -395}\special{fp}\special{pa 0 -426}\special{pa 0 -434}\special{fp}%
-\special{pa 0 -465}\special{pa 0 -473}\special{fp}\special{pa 0 -504}\special{pa 0 -512}\special{fp}%
-\special{pn 8}%
-\end{picture}}% \ No newline at end of file
diff --git a/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig3d/wirepara5.tex b/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig3d/wirepara5.tex
deleted file mode 100644
index 990f901f..00000000
--- a/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig3d/wirepara5.tex
+++ /dev/null
@@ -1,253 +0,0 @@
-%%% /Users/Hannya/ketcindy/ketwork/template.tex 2016-8-23 7:29
-%%% template.sce 2016-8-23 7:29
-{\unitlength=8mm%
-\begin{picture}%
-( 7.17000, 6.03000)( -3.65000, -2.44000)%
-\special{pn 8}%
-%
-\special{pa 270 0}\special{pa 261 -5}\special{pa 247 -11}\special{pa 223 -21}\special{pa 178 -35}%
-\special{pa 128 -46}\special{pa 74 -53}\special{pa 18 -57}\special{pa -39 -56}\special{pa -94 -51}%
-\special{pa -147 -42}\special{pa -195 -30}\special{pa -238 -15}\special{pa -247 -11}%
-\special{pa -270 0}%
-\special{fp}%
-\special{pa -324 -38}\special{pa -317 -31}\special{pa -305 -21}\special{pa -276 -3}%
-\special{pa -247 11}\special{pa -201 28}\special{pa -154 41}\special{pa -102 50}\special{pa -46 56}%
-\special{pa 10 57}\special{pa 67 54}\special{pa 121 47}\special{pa 172 36}\special{pa 217 23}%
-\special{pa 247 11}\special{pa 256 7}\special{pa 286 -9}\special{pa 305 -21}\special{pa 320 -34}%
-\special{pa 324 -38}%
-\special{fp}%
-\special{pa -665 496}\special{pa -603 536}\special{pa -578 550}\special{pa -487 594}%
-\special{pa -391 629}\special{pa -325 648}\special{pa -291 655}\special{pa -189 674}%
-\special{pa -85 684}\special{pa 19 687}\special{pa 123 682}\special{pa 227 668}\special{pa 328 647}%
-\special{pa 426 617}\special{pa 521 579}\special{pa 603 536}\special{pa 611 531}\special{pa 695 474}%
-\special{pa 738 437}\special{pa 772 405}\special{pa 824 345}\special{pa 839 324}\special{pa 880 257}%
-\special{pa 894 229}\special{pa 917 171}\special{pa 931 122}\special{pa 938 85}\special{pa 945 8}%
-\special{pa 945 0}%
-\special{fp}%
-\special{pa -945 0}\special{pa -941 -66}\special{pa -938 -85}\special{pa -917 -170}%
-\special{pa -880 -257}\special{pa -869 -278}\special{pa -824 -345}\special{pa -807 -366}%
-\special{pa -739 -437}\special{pa -653 -504}\special{pa -603 -536}\special{pa -566 -556}%
-\special{pa -474 -599}\special{pa -377 -633}\special{pa -324 -648}\special{pa -278 -658}%
-\special{pa -175 -676}\special{pa -71 -685}\special{pa 33 -687}\special{pa 137 -680}%
-\special{pa 240 -666}\special{pa 326 -647}\special{pa 341 -643}\special{pa 439 -612}%
-\special{pa 533 -573}\special{pa 603 -536}\special{pa 622 -524}\special{pa 706 -465}%
-\special{pa 738 -437}\special{pa 782 -395}\special{pa 824 -345}\special{pa 848 -312}%
-\special{pa 880 -257}\special{pa 900 -215}\special{pa 917 -171}\special{pa 934 -107}%
-\special{pa 938 -85}\special{pa 945 0}%
-\special{fp}%
-\special{pa -945 0}\special{pa -943 50}\special{pa -938 85}\special{pa -920 162}\special{pa -917 171}%
-\special{pa -880 257}\special{pa -876 265}\special{pa -824 345}\special{pa -816 355}%
-\special{pa -745 432}\special{pa -739 437}\special{pa -679 485}%
-\special{fp}%
-\special{pa -725 358}\special{pa -723 325}\special{pa -717 291}\special{pa -708 256}%
-\special{pa -695 221}\special{pa -679 186}\special{pa -659 152}\special{pa -637 119}%
-\special{pa -613 88}\special{pa -586 60}\special{pa -558 34}\special{pa -528 11}\special{pa -498 -7}%
-\special{pa -468 -22}\special{pa -438 -33}\special{pa -409 -40}\special{pa -380 -42}%
-\special{pa -354 -40}\special{pa -329 -33}\special{pa -307 -22}\special{pa -288 -7}%
-\special{fp}%
-\special{pa -613 517}\special{pa -637 511}\special{pa -659 500}\special{pa -679 485}%
-\special{pa -695 466}\special{pa -708 443}\special{pa -717 418}\special{pa -723 389}%
-\special{pa -725 358}%
-\special{fp}%
-\special{pa -697 226}\special{pa -618 275}\special{pa -530 318}\special{pa -433 354}%
-\special{pa -330 382}\special{pa -221 403}\special{pa -109 415}\special{pa 5 419}%
-\special{pa 119 414}\special{pa 231 401}\special{pa 339 380}\special{pa 442 351}\special{pa 538 314}%
-\special{pa 626 271}\special{pa 703 222}\special{pa 770 167}\special{pa 824 108}\special{pa 866 45}%
-\special{pa 894 -20}\special{pa 907 -87}\special{pa 907 -155}\special{pa 892 -222}%
-\special{pa 863 -287}\special{pa 820 -349}\special{pa 765 -408}\special{pa 701 -459}%
-\special{fp}%
-\special{pa -647 -494}\special{pa -703 -458}\special{pa -770 -403}\special{pa -824 -344}%
-\special{pa -866 -281}\special{pa -894 -216}\special{pa -907 -149}\special{pa -907 -81}%
-\special{pa -892 -15}\special{pa -863 51}\special{pa -820 113}\special{pa -765 172}%
-\special{pa -697 226}%
-\special{fp}%
-\special{pa -620 97}\special{pa -550 141}\special{pa -472 179}\special{pa -386 211}%
-\special{pa -294 236}\special{pa -197 254}\special{pa -97 265}\special{pa 4 269}\special{pa 106 265}%
-\special{pa 205 253}\special{pa 302 234}\special{pa 394 208}\special{pa 479 176}\special{pa 557 137}%
-\special{pa 626 93}\special{pa 685 45}\special{pa 734 -8}\special{pa 771 -64}\special{pa 795 -122}%
-\special{pa 807 -182}\special{pa 807 -242}\special{pa 794 -301}\special{pa 768 -359}%
-\special{pa 730 -415}\special{pa 681 -467}\special{pa 620 -516}\special{pa 550 -559}%
-\special{pa 472 -597}\special{pa 386 -629}\special{pa 294 -654}\special{pa 197 -673}%
-\special{pa 97 -683}\special{pa -4 -687}\special{pa -106 -683}\special{pa -205 -671}%
-\special{pa -302 -652}\special{pa -394 -627}\special{pa -479 -594}\special{pa -557 -556}%
-\special{pa -626 -512}\special{pa -685 -463}\special{pa -734 -410}\special{pa -771 -354}%
-\special{pa -795 -296}\special{pa -807 -237}\special{pa -807 -177}\special{pa -794 -117}%
-\special{pa -768 -59}\special{pa -730 -3}\special{pa -681 49}\special{pa -620 97}%
-\special{fp}%
-\special{pa -512 1}\special{pa -455 37}\special{pa -390 68}\special{pa -319 94}\special{pa -242 115}%
-\special{pa -163 130}\special{pa -80 139}\special{pa 4 142}\special{pa 87 139}\special{pa 170 129}%
-\special{pa 249 114}\special{pa 325 92}\special{pa 396 66}\special{pa 460 34}\special{pa 517 -2}%
-\special{pa 566 -43}\special{pa 606 -86}\special{pa 636 -132}\special{pa 657 -180}%
-\special{pa 667 -230}\special{pa 666 -279}\special{pa 655 -328}\special{pa 634 -376}%
-\special{pa 603 -422}\special{pa 562 -466}\special{pa 512 -505}\special{pa 455 -541}%
-\special{pa 390 -573}\special{pa 319 -599}\special{pa 242 -620}\special{pa 163 -635}%
-\special{pa 80 -644}\special{pa -4 -647}\special{pa -87 -643}\special{pa -170 -634}%
-\special{pa -249 -618}\special{pa -325 -597}\special{pa -396 -570}\special{pa -460 -538}%
-\special{pa -517 -502}\special{pa -566 -462}\special{pa -606 -418}\special{pa -636 -372}%
-\special{pa -657 -324}\special{pa -667 -275}\special{pa -666 -225}\special{pa -655 -176}%
-\special{pa -634 -128}\special{pa -603 -82}\special{pa -562 -39}\special{pa -512 1}%
-\special{fp}%
-\special{pa -397 -41}\special{pa -353 -13}\special{pa -302 11}\special{pa -247 31}%
-\special{pa -188 48}\special{pa -126 59}\special{pa -62 66}\special{pa 3 68}\special{pa 68 66}%
-\special{pa 132 58}\special{pa 193 46}\special{pa 252 30}\special{pa 307 9}\special{pa 357 -16}%
-\special{pa 401 -44}\special{pa 439 -75}\special{pa 470 -109}\special{pa 494 -145}%
-\special{pa 510 -182}\special{pa 517 -220}\special{pa 517 -259}\special{pa 509 -297}%
-\special{pa 492 -334}\special{pa 468 -369}\special{pa 436 -403}\special{pa 397 -434}%
-\special{pa 353 -462}\special{pa 302 -486}\special{pa 247 -507}\special{pa 188 -523}%
-\special{pa 126 -535}\special{pa 62 -542}\special{pa -3 -544}\special{pa -68 -541}%
-\special{pa -132 -534}\special{pa -193 -522}\special{pa -252 -505}\special{pa -307 -484}%
-\special{pa -357 -460}\special{pa -401 -431}\special{pa -439 -400}\special{pa -470 -366}%
-\special{pa -494 -331}\special{pa -510 -293}\special{pa -517 -255}\special{pa -517 -217}%
-\special{pa -509 -179}\special{pa -492 -141}\special{pa -468 -106}\special{pa -436 -72}%
-\special{pa -397 -41}%
-\special{fp}%
-\special{pa -302 -19}\special{pa -268 2}\special{pa -230 21}\special{pa -188 36}\special{pa -143 48}%
-\special{pa -96 57}\special{pa -47 63}\special{pa 2 64}\special{pa 52 62}\special{pa 100 57}%
-\special{pa 147 47}\special{pa 192 35}\special{pa 233 19}\special{pa 271 0}\special{pa 305 -21}%
-\special{pa 334 -45}\special{pa 358 -71}\special{pa 376 -98}\special{pa 388 -126}%
-\special{pa 394 -155}\special{pa 393 -184}\special{pa 387 -213}\special{pa 374 -242}%
-\special{pa 356 -269}\special{pa 332 -294}\special{pa 302 -318}\special{pa 268 -339}%
-\special{pa 230 -358}\special{pa 188 -373}\special{pa 143 -385}\special{pa 96 -394}%
-\special{pa 47 -400}\special{pa -2 -401}\special{pa -52 -399}\special{pa -100 -394}%
-\special{pa -147 -385}\special{pa -192 -372}\special{pa -233 -356}\special{pa -271 -337}%
-\special{pa -305 -316}\special{pa -334 -292}\special{pa -358 -267}\special{pa -376 -239}%
-\special{pa -388 -211}\special{pa -394 -182}\special{pa -393 -153}\special{pa -387 -124}%
-\special{pa -374 -95}\special{pa -356 -68}\special{pa -332 -43}\special{pa -302 -19}%
-\special{fp}%
-\special{pa 320 -34}\special{pa 324 -50}\special{pa 323 -74}\special{pa 318 -98}\special{pa 308 -121}%
-\special{pa 293 -143}\special{pa 273 -164}\special{pa 249 -184}\special{pa 221 -201}%
-\special{pa 189 -216}\special{pa 155 -229}\special{pa 118 -239}\special{pa 79 -247}%
-\special{pa 39 -251}\special{pa -2 -252}\special{pa -42 -251}\special{pa -82 -246}%
-\special{pa -121 -238}\special{pa -158 -228}\special{pa -192 -215}\special{pa -223 -200}%
-\special{pa -251 -182}\special{pa -275 -163}\special{pa -294 -141}\special{pa -309 -119}%
-\special{pa -319 -96}\special{pa -324 -72}\special{pa -323 -48}\special{pa -320 -34}%
-\special{fp}%
-\special{pa 297 -16}\special{pa 293 -22}\special{pa 273 -43}\special{pa 249 -62}\special{pa 221 -79}%
-\special{pa 189 -95}\special{pa 155 -107}\special{pa 118 -118}\special{pa 79 -125}%
-\special{pa 39 -129}\special{pa -2 -131}\special{pa -42 -129}\special{pa -82 -124}%
-\special{pa -121 -117}\special{pa -158 -106}\special{pa -192 -93}\special{pa -223 -78}%
-\special{pa -251 -60}\special{pa -275 -41}\special{pa -294 -20}%
-\special{fp}%
-\special{pa 271 -1}\special{pa 268 -2}\special{pa 230 -21}\special{pa 188 -36}\special{pa 143 -48}%
-\special{pa 96 -57}\special{pa 47 -63}\special{pa -2 -64}\special{pa -52 -62}\special{pa -100 -57}%
-\special{pa -147 -47}\special{pa -192 -35}\special{pa -233 -19}\special{pa -271 -1}%
-\special{fp}%
-\special{pa 75 -65}\special{pa 62 -66}\special{pa -3 -68}\special{pa -39 -67}%
-\special{fp}%
-\special{pa -620 516}\special{pa -550 559}\special{pa -472 597}\special{pa -386 629}%
-\special{pa -294 654}\special{pa -197 673}\special{pa -97 683}\special{pa 4 687}\special{pa 106 683}%
-\special{pa 205 671}\special{pa 302 652}\special{pa 394 627}\special{pa 479 594}\special{pa 557 556}%
-\special{pa 599 529}%
-\special{fp}%
-\special{pa -633 506}\special{pa -620 516}%
-\special{fp}%
-\special{pa -697 463}\special{pa -618 511}\special{pa -530 554}\special{pa -433 590}%
-\special{pa -330 618}\special{pa -221 639}\special{pa -109 651}\special{pa 5 655}%
-\special{pa 119 650}\special{pa 231 637}\special{pa 339 616}\special{pa 442 587}\special{pa 538 551}%
-\special{pa 626 507}\special{pa 703 458}\special{pa 770 403}\special{pa 824 344}\special{pa 866 281}%
-\special{pa 889 227}%
-\special{fp}%
-\special{pa -877 255}\special{pa -863 287}\special{pa -820 349}\special{pa -765 408}%
-\special{pa -697 463}%
-\special{fp}%
-\special{pa -360 516}\special{pa -359 483}\special{pa -356 447}\special{pa -352 410}%
-\special{pa -345 372}\special{pa -337 334}\special{pa -327 295}\special{pa -316 258}%
-\special{pa -304 222}\special{pa -291 187}\special{pa -277 155}\special{pa -262 127}%
-\special{pa -248 101}\special{pa -232 80}\special{pa -218 62}\special{pa -203 49}%
-\special{pa -189 41}\special{pa -176 37}\special{pa -163 39}%
-\special{fp}%
-\special{pa -316 650}\special{pa -316 649}\special{pa -327 643}\special{pa -337 633}%
-\special{pa -345 617}\special{pa -352 598}\special{pa -356 574}\special{pa -359 547}%
-\special{pa -360 516}%
-\special{fp}%
-\special{pa 74 684}\special{pa 82 670}\special{pa 84 655}\special{pa 85 636}\special{pa 86 613}%
-\special{pa 87 586}\special{pa 87 556}\special{pa 87 522}\special{pa 86 487}\special{pa 85 449}%
-\special{pa 84 410}\special{pa 82 371}\special{pa 79 332}\special{pa 77 293}\special{pa 74 255}%
-\special{pa 71 219}\special{pa 67 186}\special{pa 64 156}\special{pa 60 129}\special{pa 56 105}%
-\special{pa 53 86}\special{pa 49 72}\special{pa 46 62}\special{pa 43 57}%
-\special{fp}%
-\special{pa 514 468}\special{pa 513 435}\special{pa 509 400}\special{pa 502 364}\special{pa 493 326}%
-\special{pa 482 289}\special{pa 468 252}\special{pa 452 216}\special{pa 435 181}\special{pa 416 149}%
-\special{pa 396 119}\special{pa 375 92}\special{pa 354 68}\special{pa 332 49}\special{pa 311 33}%
-\special{pa 290 22}\special{pa 270 16}\special{pa 251 14}\special{pa 234 17}\special{pa 218 24}%
-\special{fp}%
-\special{pa 448 608}\special{pa 452 607}\special{pa 468 600}\special{pa 482 588}\special{pa 493 571}%
-\special{pa 502 551}\special{pa 509 526}\special{pa 513 499}\special{pa 514 468}%
-\special{fp}%
-\special{pa 824 273}\special{pa 822 241}\special{pa 815 207}\special{pa 805 173}\special{pa 790 140}%
-\special{pa 771 107}\special{pa 749 75}\special{pa 724 44}\special{pa 696 16}\special{pa 666 -9}%
-\special{pa 634 -31}\special{pa 601 -50}\special{pa 566 -66}\special{pa 532 -77}\special{pa 498 -85}%
-\special{pa 464 -88}\special{pa 432 -87}\special{pa 402 -81}\special{pa 374 -72}\special{pa 349 -58}%
-\special{pa 327 -41}\special{pa 309 -20}%
-\special{fp}%
-\special{pa 771 405}\special{pa 790 384}\special{pa 805 360}\special{pa 815 334}\special{pa 822 304}%
-\special{pa 824 273}%
-\special{fp}%
-\special{pa 945 16}\special{pa 942 -16}\special{pa 935 -48}\special{pa 922 -78}\special{pa 906 -107}%
-\special{pa 884 -135}\special{pa 859 -160}\special{pa 830 -182}\special{pa 798 -201}%
-\special{pa 764 -217}\special{pa 727 -230}\special{pa 689 -238}\special{pa 649 -243}%
-\special{pa 610 -243}\special{pa 571 -240}\special{pa 532 -233}\special{pa 496 -222}%
-\special{pa 461 -207}\special{pa 429 -189}\special{pa 400 -167}\special{pa 375 -143}%
-\special{pa 354 -117}\special{pa 337 -88}\special{pa 325 -58}\special{pa 319 -34}%
-\special{fp}%
-\special{pa 941 52}\special{pa 942 48}\special{pa 945 16}%
-\special{fp}%
-\special{pa 822 -344}\special{pa 814 -358}\special{pa 795 -379}\special{pa 772 -397}%
-\special{pa 746 -411}\special{pa 717 -422}\special{pa 686 -428}\special{pa 653 -430}%
-\special{pa 619 -428}\special{pa 584 -422}\special{pa 548 -412}\special{pa 513 -398}%
-\special{pa 478 -380}\special{pa 445 -359}\special{pa 414 -334}\special{pa 386 -307}%
-\special{pa 360 -278}\special{pa 337 -247}\special{pa 318 -214}\special{pa 303 -181}%
-\special{pa 292 -148}\special{pa 285 -114}\special{pa 283 -82}\special{pa 285 -51}%
-\special{pa 292 -21}\special{pa 295 -14}%
-\special{fp}%
-\special{pa 508 -583}\special{pa 508 -583}\special{pa 491 -592}\special{pa 472 -595}%
-\special{pa 452 -594}\special{pa 430 -588}\special{pa 407 -578}\special{pa 384 -563}%
-\special{pa 361 -544}\special{pa 338 -522}\special{pa 315 -495}\special{pa 293 -466}%
-\special{pa 273 -434}\special{pa 254 -400}\special{pa 237 -365}\special{pa 222 -328}%
-\special{pa 209 -291}\special{pa 199 -254}\special{pa 192 -218}\special{pa 188 -183}%
-\special{pa 186 -150}\special{pa 188 -119}\special{pa 192 -92}\special{pa 199 -67}%
-\special{pa 209 -46}\special{pa 222 -29}\special{pa 237 -17}\special{pa 254 -9}\special{pa 273 -5}%
-\special{pa 280 -6}%
-\special{fp}%
-\special{pa 123 -681}\special{pa 114 -676}\special{pa 108 -667}\special{pa 102 -652}%
-\special{pa 97 -633}\special{pa 91 -610}\special{pa 85 -583}\special{pa 79 -553}\special{pa 74 -520}%
-\special{pa 69 -484}\special{pa 64 -446}\special{pa 59 -408}\special{pa 56 -369}\special{pa 53 -329}%
-\special{pa 50 -290}\special{pa 48 -253}\special{pa 47 -217}\special{pa 47 -184}\special{pa 47 -154}%
-\special{pa 48 -127}\special{pa 50 -103}\special{pa 53 -84}\special{pa 56 -70}\special{pa 59 -60}%
-\special{pa 64 -55}%
-\special{fp}%
-\special{pa -277 -657}\special{pa -272 -659}\special{pa -262 -660}\special{pa -251 -656}%
-\special{pa -238 -648}\special{pa -226 -634}\special{pa -213 -616}\special{pa -200 -594}%
-\special{pa -187 -568}\special{pa -175 -539}\special{pa -163 -507}\special{pa -151 -472}%
-\special{pa -141 -435}\special{pa -131 -397}\special{pa -123 -359}\special{pa -116 -320}%
-\special{pa -111 -282}\special{pa -107 -244}\special{pa -104 -209}\special{pa -103 -176}%
-\special{pa -104 -145}\special{pa -107 -118}\special{pa -111 -95}\special{pa -116 -75}%
-\special{pa -123 -60}\special{pa -131 -49}\special{pa -141 -44}%
-\special{fp}%
-\special{pa -650 -501}\special{pa -645 -507}\special{pa -627 -521}\special{pa -606 -531}%
-\special{pa -583 -537}\special{pa -557 -539}\special{pa -530 -536}\special{pa -503 -528}%
-\special{pa -474 -516}\special{pa -445 -500}\special{pa -416 -480}\special{pa -388 -457}%
-\special{pa -362 -430}\special{pa -336 -401}\special{pa -313 -369}\special{pa -292 -336}%
-\special{pa -274 -301}\special{pa -258 -265}\special{pa -246 -230}\special{pa -237 -194}%
-\special{pa -232 -160}\special{pa -230 -127}\special{pa -232 -96}\special{pa -237 -68}%
-\special{pa -246 -43}\special{pa -258 -21}\special{pa -273 -3}%
-\special{fp}%
-\special{pa -902 -205}\special{pa -901 -211}\special{pa -889 -239}\special{pa -873 -265}%
-\special{pa -853 -289}\special{pa -828 -309}\special{pa -801 -327}\special{pa -770 -340}%
-\special{pa -736 -350}\special{pa -701 -356}\special{pa -664 -358}\special{pa -626 -356}%
-\special{pa -588 -350}\special{pa -550 -340}\special{pa -513 -326}\special{pa -478 -308}%
-\special{pa -444 -287}\special{pa -414 -263}\special{pa -386 -237}\special{pa -362 -208}%
-\special{pa -341 -178}\special{pa -325 -147}\special{pa -313 -114}\special{pa -306 -82}%
-\special{pa -304 -50}\special{pa -306 -22}%
-\special{fp}%
-\special{pa -923 118}\special{pa -921 86}\special{pa -914 54}\special{pa -902 22}%
-\special{pa -885 -9}\special{pa -865 -39}\special{pa -840 -66}\special{pa -812 -92}%
-\special{pa -781 -115}\special{pa -747 -134}\special{pa -711 -151}\special{pa -673 -163}%
-\special{pa -635 -172}\special{pa -596 -177}\special{pa -558 -178}\special{pa -521 -175}%
-\special{pa -485 -168}\special{pa -451 -157}\special{pa -419 -142}\special{pa -391 -124}%
-\special{pa -367 -102}\special{pa -346 -78}\special{pa -329 -51}\special{pa -317 -23}%
-\special{fp}%
-\special{pa -898 214}\special{pa -902 209}\special{pa -914 180}\special{pa -921 150}%
-\special{pa -923 118}%
-\special{fp}%
-\end{picture}}% \ No newline at end of file
diff --git a/texmf-dist/doc/support/ketcindy/source/ketmanual/Figmv/moviedata01.png b/texmf-dist/doc/support/ketcindy/source/ketmanual/Figmv/moviedata01.png
deleted file mode 100644
index cee0993d..00000000
--- a/texmf-dist/doc/support/ketcindy/source/ketmanual/Figmv/moviedata01.png
+++ /dev/null
Binary files differ
diff --git a/texmf-dist/doc/support/ketcindy/source/ketmanual/Figmv/mvgaiyou01.png b/texmf-dist/doc/support/ketcindy/source/ketmanual/Figmv/mvgaiyou01.png
deleted file mode 100644
index 6954a844..00000000
--- a/texmf-dist/doc/support/ketcindy/source/ketmanual/Figmv/mvgaiyou01.png
+++ /dev/null
Binary files differ
diff --git a/texmf-dist/doc/support/ketcindy/source/ketmanual/Figmv/templatemvmoviefigs.tex b/texmf-dist/doc/support/ketcindy/source/ketmanual/Figmv/templatemvmoviefigs.tex
deleted file mode 100644
index 09d4cdcc..00000000
--- a/texmf-dist/doc/support/ketcindy/source/ketmanual/Figmv/templatemvmoviefigs.tex
+++ /dev/null
@@ -1,9302 +0,0 @@
-%%% templatemvmoviefigs.tex 2016-8-27 16:23
-%%% templatemvmovie.sce 2016-8-27 16:23
-\begin{animateinline}{30}%
-{\unitlength=1cm%
-\begin{picture}%
-( 14.34000, 7.30000)( -3.72000, -3.28000)%
-\special{pn 8}%
-%
-\special{pa 787 0}\special{pa 781 -99}\special{pa 763 -196}\special{pa 732 -290}\special{pa 690 -379}%
-\special{pa 637 -463}\special{pa 574 -539}\special{pa 502 -607}\special{pa 422 -665}%
-\special{pa 335 -712}\special{pa 243 -749}\special{pa 148 -773}\special{pa 49 -786}%
-\special{pa -49 -786}\special{pa -148 -773}\special{pa -243 -749}\special{pa -335 -712}%
-\special{pa -422 -665}\special{pa -502 -607}\special{pa -574 -539}\special{pa -637 -463}%
-\special{pa -690 -379}\special{pa -732 -290}\special{pa -763 -196}\special{pa -781 -99}%
-\special{pa -787 0}\special{pa -781 99}\special{pa -763 196}\special{pa -732 290}%
-\special{pa -690 379}\special{pa -637 463}\special{pa -574 539}\special{pa -502 607}%
-\special{pa -422 665}\special{pa -335 712}\special{pa -243 749}\special{pa -148 773}%
-\special{pa -49 786}\special{pa 49 786}\special{pa 148 773}\special{pa 243 749}\special{pa 335 712}%
-\special{pa 422 665}\special{pa 502 607}\special{pa 574 539}\special{pa 637 463}\special{pa 690 379}%
-\special{pa 732 290}\special{pa 763 196}\special{pa 781 99}\special{pa 787 0}%
-\special{fp}%
-\special{pa 1575 0}\special{pa 787 0}%
-\special{fp}%
-\special{pn 1}%
-\special{pa 1192 -11}\special{pa 1185 -15}\special{pa 1177 -15}\special{pa 1170 -11}%
-\special{pa 1166 -4}\special{pa 1166 4}\special{pa 1170 11}\special{pa 1177 15}\special{pa 1185 15}%
-\special{pa 1192 11}\special{pa 1196 4}\special{pa 1196 -4}\special{pa 1192 -11}\special{sh 1}\special{fp}%
-\special{pn 8}%
-\settowidth{\Width}{A}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{A}\settodepth{\Depth}{A}\setlength{\Height}{-\Height}%
-\put(4.0000,-0.0500){\hspace*{\Width}\raisebox{\Height}{A}}%
-%
-%
-\settowidth{\Width}{P}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{P}\settodepth{\Depth}{P}\setlength{\Height}{\Depth}%
-\put(2.0500,0.0500){\hspace*{\Width}\raisebox{\Height}{P}}%
-%
-%
-\settowidth{\Width}{Q}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{Q}\settodepth{\Depth}{Q}\setlength{\Height}{\Depth}%
-\put(3.0500,0.0500){\hspace*{\Width}\raisebox{\Height}{Q}}%
-%
-%
-\special{pa -1465 0}\special{pa 3984 0}%
-\special{fp}%
-\special{pa 0 1291}\special{pa 0 -1386}%
-\special{fp}%
-\settowidth{\Width}{$x$}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{$x$}\settodepth{\Depth}{$x$}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(10.1700,0.0000){\hspace*{\Width}\raisebox{\Height}{$x$}}%
-%
-%
-\settowidth{\Width}{$y$}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{$y$}\settodepth{\Depth}{$y$}\setlength{\Height}{\Depth}%
-\put(0.0000,3.5700){\hspace*{\Width}\raisebox{\Height}{$y$}}%
-%
-%
-\settowidth{\Width}{O}\setlength{\Width}{-1\Width}%
-\settoheight{\Height}{O}\settodepth{\Depth}{O}\setlength{\Height}{-\Height}%
-\put(-0.0500,-0.0500){\hspace*{\Width}\raisebox{\Height}{O}}%
-%
-%
-\end{picture}}%%
-\newframe%
-{\unitlength=1cm%
-\begin{picture}%
-( 14.34000, 7.30000)( -3.72000, -3.28000)%
-\special{pn 8}%
-%
-\special{pa 787 0}\special{pa 781 -99}\special{pa 763 -196}\special{pa 732 -290}\special{pa 690 -379}%
-\special{pa 637 -463}\special{pa 574 -539}\special{pa 502 -607}\special{pa 422 -665}%
-\special{pa 335 -712}\special{pa 243 -749}\special{pa 148 -773}\special{pa 49 -786}%
-\special{pa -49 -786}\special{pa -148 -773}\special{pa -243 -749}\special{pa -335 -712}%
-\special{pa -422 -665}\special{pa -502 -607}\special{pa -574 -539}\special{pa -637 -463}%
-\special{pa -690 -379}\special{pa -732 -290}\special{pa -763 -196}\special{pa -781 -99}%
-\special{pa -787 0}\special{pa -781 99}\special{pa -763 196}\special{pa -732 290}%
-\special{pa -690 379}\special{pa -637 463}\special{pa -574 539}\special{pa -502 607}%
-\special{pa -422 665}\special{pa -335 712}\special{pa -243 749}\special{pa -148 773}%
-\special{pa -49 786}\special{pa 49 786}\special{pa 148 773}\special{pa 243 749}\special{pa 335 712}%
-\special{pa 422 665}\special{pa 502 607}\special{pa 574 539}\special{pa 637 463}\special{pa 690 379}%
-\special{pa 732 290}\special{pa 763 196}\special{pa 781 99}\special{pa 787 0}%
-\special{fp}%
-\special{pa 1575 0}\special{pa 787 -33}%
-\special{fp}%
-\special{pn 1}%
-\special{pa 1192 -28}\special{pa 1185 -32}\special{pa 1177 -32}\special{pa 1170 -28}%
-\special{pa 1166 -21}\special{pa 1166 -12}\special{pa 1170 -5}\special{pa 1177 -1}%
-\special{pa 1185 -1}\special{pa 1192 -5}\special{pa 1196 -12}\special{pa 1196 -21}%
-\special{pa 1192 -28}\special{sh 1}\special{fp}%
-\special{pn 8}%
-\settowidth{\Width}{A}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{A}\settodepth{\Depth}{A}\setlength{\Height}{-\Height}%
-\put(4.0000,-0.0500){\hspace*{\Width}\raisebox{\Height}{A}}%
-%
-%
-\settowidth{\Width}{P}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{P}\settodepth{\Depth}{P}\setlength{\Height}{\Depth}%
-\put(2.0482,0.1337){\hspace*{\Width}\raisebox{\Height}{P}}%
-%
-%
-\settowidth{\Width}{Q}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{Q}\settodepth{\Depth}{Q}\setlength{\Height}{\Depth}%
-\put(3.0491,0.0919){\hspace*{\Width}\raisebox{\Height}{Q}}%
-%
-%
-\special{pa -1465 0}\special{pa 3984 0}%
-\special{fp}%
-\special{pa 0 1291}\special{pa 0 -1386}%
-\special{fp}%
-\settowidth{\Width}{$x$}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{$x$}\settodepth{\Depth}{$x$}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(10.1700,0.0000){\hspace*{\Width}\raisebox{\Height}{$x$}}%
-%
-%
-\settowidth{\Width}{$y$}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{$y$}\settodepth{\Depth}{$y$}\setlength{\Height}{\Depth}%
-\put(0.0000,3.5700){\hspace*{\Width}\raisebox{\Height}{$y$}}%
-%
-%
-\settowidth{\Width}{O}\setlength{\Width}{-1\Width}%
-\settoheight{\Height}{O}\settodepth{\Depth}{O}\setlength{\Height}{-\Height}%
-\put(-0.0500,-0.0500){\hspace*{\Width}\raisebox{\Height}{O}}%
-%
-%
-\end{picture}}%%
-\newframe%
-{\unitlength=1cm%
-\begin{picture}%
-( 14.34000, 7.30000)( -3.72000, -3.28000)%
-\special{pn 8}%
-%
-\special{pa 787 0}\special{pa 781 -99}\special{pa 763 -196}\special{pa 732 -290}\special{pa 690 -379}%
-\special{pa 637 -463}\special{pa 574 -539}\special{pa 502 -607}\special{pa 422 -665}%
-\special{pa 335 -712}\special{pa 243 -749}\special{pa 148 -773}\special{pa 49 -786}%
-\special{pa -49 -786}\special{pa -148 -773}\special{pa -243 -749}\special{pa -335 -712}%
-\special{pa -422 -665}\special{pa -502 -607}\special{pa -574 -539}\special{pa -637 -463}%
-\special{pa -690 -379}\special{pa -732 -290}\special{pa -763 -196}\special{pa -781 -99}%
-\special{pa -787 0}\special{pa -781 99}\special{pa -763 196}\special{pa -732 290}%
-\special{pa -690 379}\special{pa -637 463}\special{pa -574 539}\special{pa -502 607}%
-\special{pa -422 665}\special{pa -335 712}\special{pa -243 749}\special{pa -148 773}%
-\special{pa -49 786}\special{pa 49 786}\special{pa 148 773}\special{pa 243 749}\special{pa 335 712}%
-\special{pa 422 665}\special{pa 502 607}\special{pa 574 539}\special{pa 637 463}\special{pa 690 379}%
-\special{pa 732 290}\special{pa 763 196}\special{pa 781 99}\special{pa 787 0}%
-\special{fp}%
-\special{pa 1575 0}\special{pa 785 -66}%
-\special{fp}%
-\special{pn 1}%
-\special{pa 1191 -44}\special{pa 1184 -48}\special{pa 1176 -48}\special{pa 1169 -44}%
-\special{pa 1165 -37}\special{pa 1165 -29}\special{pa 1169 -22}\special{pa 1176 -18}%
-\special{pa 1184 -18}\special{pa 1191 -22}\special{pa 1195 -29}\special{pa 1195 -37}%
-\special{pa 1191 -44}\special{sh 1}\special{fp}%
-\special{pn 8}%
-\settowidth{\Width}{A}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{A}\settodepth{\Depth}{A}\setlength{\Height}{-\Height}%
-\put(4.0000,-0.0500){\hspace*{\Width}\raisebox{\Height}{A}}%
-%
-%
-\settowidth{\Width}{P}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{P}\settodepth{\Depth}{P}\setlength{\Height}{\Depth}%
-\put(2.0430,0.2173){\hspace*{\Width}\raisebox{\Height}{P}}%
-%
-%
-\settowidth{\Width}{Q}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{Q}\settodepth{\Depth}{Q}\setlength{\Height}{\Depth}%
-\put(3.0465,0.1336){\hspace*{\Width}\raisebox{\Height}{Q}}%
-%
-%
-\special{pa -1465 0}\special{pa 3984 0}%
-\special{fp}%
-\special{pa 0 1291}\special{pa 0 -1386}%
-\special{fp}%
-\settowidth{\Width}{$x$}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{$x$}\settodepth{\Depth}{$x$}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(10.1700,0.0000){\hspace*{\Width}\raisebox{\Height}{$x$}}%
-%
-%
-\settowidth{\Width}{$y$}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{$y$}\settodepth{\Depth}{$y$}\setlength{\Height}{\Depth}%
-\put(0.0000,3.5700){\hspace*{\Width}\raisebox{\Height}{$y$}}%
-%
-%
-\settowidth{\Width}{O}\setlength{\Width}{-1\Width}%
-\settoheight{\Height}{O}\settodepth{\Depth}{O}\setlength{\Height}{-\Height}%
-\put(-0.0500,-0.0500){\hspace*{\Width}\raisebox{\Height}{O}}%
-%
-%
-\end{picture}}%%
-\newframe%
-{\unitlength=1cm%
-\begin{picture}%
-( 14.34000, 7.30000)( -3.72000, -3.28000)%
-\special{pn 8}%
-%
-\special{pa 787 0}\special{pa 781 -99}\special{pa 763 -196}\special{pa 732 -290}\special{pa 690 -379}%
-\special{pa 637 -463}\special{pa 574 -539}\special{pa 502 -607}\special{pa 422 -665}%
-\special{pa 335 -712}\special{pa 243 -749}\special{pa 148 -773}\special{pa 49 -786}%
-\special{pa -49 -786}\special{pa -148 -773}\special{pa -243 -749}\special{pa -335 -712}%
-\special{pa -422 -665}\special{pa -502 -607}\special{pa -574 -539}\special{pa -637 -463}%
-\special{pa -690 -379}\special{pa -732 -290}\special{pa -763 -196}\special{pa -781 -99}%
-\special{pa -787 0}\special{pa -781 99}\special{pa -763 196}\special{pa -732 290}%
-\special{pa -690 379}\special{pa -637 463}\special{pa -574 539}\special{pa -502 607}%
-\special{pa -422 665}\special{pa -335 712}\special{pa -243 749}\special{pa -148 773}%
-\special{pa -49 786}\special{pa 49 786}\special{pa 148 773}\special{pa 243 749}\special{pa 335 712}%
-\special{pa 422 665}\special{pa 502 607}\special{pa 574 539}\special{pa 637 463}\special{pa 690 379}%
-\special{pa 732 290}\special{pa 763 196}\special{pa 781 99}\special{pa 787 0}%
-\special{fp}%
-\special{pa 1575 0}\special{pa 781 -99}%
-\special{fp}%
-\special{pn 1}%
-\special{pa 1189 -60}\special{pa 1182 -65}\special{pa 1174 -65}\special{pa 1167 -60}%
-\special{pa 1163 -53}\special{pa 1163 -45}\special{pa 1167 -38}\special{pa 1174 -34}%
-\special{pa 1182 -34}\special{pa 1189 -38}\special{pa 1193 -45}\special{pa 1193 -53}%
-\special{pa 1189 -60}\special{sh 1}\special{fp}%
-\special{pn 8}%
-\settowidth{\Width}{A}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{A}\settodepth{\Depth}{A}\setlength{\Height}{-\Height}%
-\put(4.0000,-0.0500){\hspace*{\Width}\raisebox{\Height}{A}}%
-%
-%
-\settowidth{\Width}{P}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{P}\settodepth{\Depth}{P}\setlength{\Height}{\Depth}%
-\put(2.0343,0.3005){\hspace*{\Width}\raisebox{\Height}{P}}%
-%
-%
-\settowidth{\Width}{Q}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{Q}\settodepth{\Depth}{Q}\setlength{\Height}{\Depth}%
-\put(3.0421,0.1753){\hspace*{\Width}\raisebox{\Height}{Q}}%
-%
-%
-\special{pa -1465 0}\special{pa 3984 0}%
-\special{fp}%
-\special{pa 0 1291}\special{pa 0 -1386}%
-\special{fp}%
-\settowidth{\Width}{$x$}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{$x$}\settodepth{\Depth}{$x$}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(10.1700,0.0000){\hspace*{\Width}\raisebox{\Height}{$x$}}%
-%
-%
-\settowidth{\Width}{$y$}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{$y$}\settodepth{\Depth}{$y$}\setlength{\Height}{\Depth}%
-\put(0.0000,3.5700){\hspace*{\Width}\raisebox{\Height}{$y$}}%
-%
-%
-\settowidth{\Width}{O}\setlength{\Width}{-1\Width}%
-\settoheight{\Height}{O}\settodepth{\Depth}{O}\setlength{\Height}{-\Height}%
-\put(-0.0500,-0.0500){\hspace*{\Width}\raisebox{\Height}{O}}%
-%
-%
-\end{picture}}%%
-\newframe%
-{\unitlength=1cm%
-\begin{picture}%
-( 14.34000, 7.30000)( -3.72000, -3.28000)%
-\special{pn 8}%
-%
-\special{pa 787 0}\special{pa 781 -99}\special{pa 763 -196}\special{pa 732 -290}\special{pa 690 -379}%
-\special{pa 637 -463}\special{pa 574 -539}\special{pa 502 -607}\special{pa 422 -665}%
-\special{pa 335 -712}\special{pa 243 -749}\special{pa 148 -773}\special{pa 49 -786}%
-\special{pa -49 -786}\special{pa -148 -773}\special{pa -243 -749}\special{pa -335 -712}%
-\special{pa -422 -665}\special{pa -502 -607}\special{pa -574 -539}\special{pa -637 -463}%
-\special{pa -690 -379}\special{pa -732 -290}\special{pa -763 -196}\special{pa -781 -99}%
-\special{pa -787 0}\special{pa -781 99}\special{pa -763 196}\special{pa -732 290}%
-\special{pa -690 379}\special{pa -637 463}\special{pa -574 539}\special{pa -502 607}%
-\special{pa -422 665}\special{pa -335 712}\special{pa -243 749}\special{pa -148 773}%
-\special{pa -49 786}\special{pa 49 786}\special{pa 148 773}\special{pa 243 749}\special{pa 335 712}%
-\special{pa 422 665}\special{pa 502 607}\special{pa 574 539}\special{pa 637 463}\special{pa 690 379}%
-\special{pa 732 290}\special{pa 763 196}\special{pa 781 99}\special{pa 787 0}%
-\special{fp}%
-\special{pa 1575 0}\special{pa 776 -131}%
-\special{fp}%
-\special{pn 1}%
-\special{pa 1187 -77}\special{pa 1180 -81}\special{pa 1172 -81}\special{pa 1164 -77}%
-\special{pa 1160 -70}\special{pa 1160 -62}\special{pa 1164 -54}\special{pa 1172 -50}%
-\special{pa 1180 -50}\special{pa 1187 -54}\special{pa 1191 -62}\special{pa 1191 -70}%
-\special{pa 1187 -77}\special{sh 1}\special{fp}%
-\special{pn 8}%
-\settowidth{\Width}{A}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{A}\settodepth{\Depth}{A}\setlength{\Height}{-\Height}%
-\put(4.0000,-0.0500){\hspace*{\Width}\raisebox{\Height}{A}}%
-%
-%
-\settowidth{\Width}{P}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{P}\settodepth{\Depth}{P}\setlength{\Height}{\Depth}%
-\put(2.0220,0.3834){\hspace*{\Width}\raisebox{\Height}{P}}%
-%
-%
-\settowidth{\Width}{Q}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{Q}\settodepth{\Depth}{Q}\setlength{\Height}{\Depth}%
-\put(3.0360,0.2167){\hspace*{\Width}\raisebox{\Height}{Q}}%
-%
-%
-\special{pa -1465 0}\special{pa 3984 0}%
-\special{fp}%
-\special{pa 0 1291}\special{pa 0 -1386}%
-\special{fp}%
-\settowidth{\Width}{$x$}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{$x$}\settodepth{\Depth}{$x$}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(10.1700,0.0000){\hspace*{\Width}\raisebox{\Height}{$x$}}%
-%
-%
-\settowidth{\Width}{$y$}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{$y$}\settodepth{\Depth}{$y$}\setlength{\Height}{\Depth}%
-\put(0.0000,3.5700){\hspace*{\Width}\raisebox{\Height}{$y$}}%
-%
-%
-\settowidth{\Width}{O}\setlength{\Width}{-1\Width}%
-\settoheight{\Height}{O}\settodepth{\Depth}{O}\setlength{\Height}{-\Height}%
-\put(-0.0500,-0.0500){\hspace*{\Width}\raisebox{\Height}{O}}%
-%
-%
-\end{picture}}%%
-\newframe%
-{\unitlength=1cm%
-\begin{picture}%
-( 14.34000, 7.30000)( -3.72000, -3.28000)%
-\special{pn 8}%
-%
-\special{pa 787 0}\special{pa 781 -99}\special{pa 763 -196}\special{pa 732 -290}\special{pa 690 -379}%
-\special{pa 637 -463}\special{pa 574 -539}\special{pa 502 -607}\special{pa 422 -665}%
-\special{pa 335 -712}\special{pa 243 -749}\special{pa 148 -773}\special{pa 49 -786}%
-\special{pa -49 -786}\special{pa -148 -773}\special{pa -243 -749}\special{pa -335 -712}%
-\special{pa -422 -665}\special{pa -502 -607}\special{pa -574 -539}\special{pa -637 -463}%
-\special{pa -690 -379}\special{pa -732 -290}\special{pa -763 -196}\special{pa -781 -99}%
-\special{pa -787 0}\special{pa -781 99}\special{pa -763 196}\special{pa -732 290}%
-\special{pa -690 379}\special{pa -637 463}\special{pa -574 539}\special{pa -502 607}%
-\special{pa -422 665}\special{pa -335 712}\special{pa -243 749}\special{pa -148 773}%
-\special{pa -49 786}\special{pa 49 786}\special{pa 148 773}\special{pa 243 749}\special{pa 335 712}%
-\special{pa 422 665}\special{pa 502 607}\special{pa 574 539}\special{pa 637 463}\special{pa 690 379}%
-\special{pa 732 290}\special{pa 763 196}\special{pa 781 99}\special{pa 787 0}%
-\special{fp}%
-\special{pa 1575 0}\special{pa 770 -164}%
-\special{fp}%
-\special{pn 1}%
-\special{pa 1184 -93}\special{pa 1177 -97}\special{pa 1168 -97}\special{pa 1161 -93}%
-\special{pa 1157 -86}\special{pa 1157 -78}\special{pa 1161 -71}\special{pa 1168 -67}%
-\special{pa 1177 -67}\special{pa 1184 -71}\special{pa 1188 -78}\special{pa 1188 -86}%
-\special{pa 1184 -93}\special{sh 1}\special{fp}%
-\special{pn 8}%
-\settowidth{\Width}{A}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{A}\settodepth{\Depth}{A}\setlength{\Height}{-\Height}%
-\put(4.0000,-0.0500){\hspace*{\Width}\raisebox{\Height}{A}}%
-%
-%
-\settowidth{\Width}{P}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{P}\settodepth{\Depth}{P}\setlength{\Height}{\Depth}%
-\put(2.0063,0.4656){\hspace*{\Width}\raisebox{\Height}{P}}%
-%
-%
-\settowidth{\Width}{Q}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{Q}\settodepth{\Depth}{Q}\setlength{\Height}{\Depth}%
-\put(3.0282,0.2578){\hspace*{\Width}\raisebox{\Height}{Q}}%
-%
-%
-\special{pa -1465 0}\special{pa 3984 0}%
-\special{fp}%
-\special{pa 0 1291}\special{pa 0 -1386}%
-\special{fp}%
-\settowidth{\Width}{$x$}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{$x$}\settodepth{\Depth}{$x$}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(10.1700,0.0000){\hspace*{\Width}\raisebox{\Height}{$x$}}%
-%
-%
-\settowidth{\Width}{$y$}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{$y$}\settodepth{\Depth}{$y$}\setlength{\Height}{\Depth}%
-\put(0.0000,3.5700){\hspace*{\Width}\raisebox{\Height}{$y$}}%
-%
-%
-\settowidth{\Width}{O}\setlength{\Width}{-1\Width}%
-\settoheight{\Height}{O}\settodepth{\Depth}{O}\setlength{\Height}{-\Height}%
-\put(-0.0500,-0.0500){\hspace*{\Width}\raisebox{\Height}{O}}%
-%
-%
-\end{picture}}%%
-\newframe%
-{\unitlength=1cm%
-\begin{picture}%
-( 14.34000, 7.30000)( -3.72000, -3.28000)%
-\special{pn 8}%
-%
-\special{pa 787 0}\special{pa 781 -99}\special{pa 763 -196}\special{pa 732 -290}\special{pa 690 -379}%
-\special{pa 637 -463}\special{pa 574 -539}\special{pa 502 -607}\special{pa 422 -665}%
-\special{pa 335 -712}\special{pa 243 -749}\special{pa 148 -773}\special{pa 49 -786}%
-\special{pa -49 -786}\special{pa -148 -773}\special{pa -243 -749}\special{pa -335 -712}%
-\special{pa -422 -665}\special{pa -502 -607}\special{pa -574 -539}\special{pa -637 -463}%
-\special{pa -690 -379}\special{pa -732 -290}\special{pa -763 -196}\special{pa -781 -99}%
-\special{pa -787 0}\special{pa -781 99}\special{pa -763 196}\special{pa -732 290}%
-\special{pa -690 379}\special{pa -637 463}\special{pa -574 539}\special{pa -502 607}%
-\special{pa -422 665}\special{pa -335 712}\special{pa -243 749}\special{pa -148 773}%
-\special{pa -49 786}\special{pa 49 786}\special{pa 148 773}\special{pa 243 749}\special{pa 335 712}%
-\special{pa 422 665}\special{pa 502 607}\special{pa 574 539}\special{pa 637 463}\special{pa 690 379}%
-\special{pa 732 290}\special{pa 763 196}\special{pa 781 99}\special{pa 787 0}%
-\special{fp}%
-\special{pa 1575 0}\special{pa 763 -196}%
-\special{fp}%
-\special{pn 1}%
-\special{pa 1180 -109}\special{pa 1173 -113}\special{pa 1165 -113}\special{pa 1158 -109}%
-\special{pa 1154 -102}\special{pa 1154 -94}\special{pa 1158 -87}\special{pa 1165 -83}%
-\special{pa 1173 -83}\special{pa 1180 -87}\special{pa 1184 -94}\special{pa 1184 -102}%
-\special{pa 1180 -109}\special{sh 1}\special{fp}%
-\special{pn 8}%
-\settowidth{\Width}{A}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{A}\settodepth{\Depth}{A}\setlength{\Height}{-\Height}%
-\put(4.0000,-0.0500){\hspace*{\Width}\raisebox{\Height}{A}}%
-%
-%
-\settowidth{\Width}{P}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{P}\settodepth{\Depth}{P}\setlength{\Height}{\Depth}%
-\put(1.9872,0.5471){\hspace*{\Width}\raisebox{\Height}{P}}%
-%
-%
-\settowidth{\Width}{Q}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{Q}\settodepth{\Depth}{Q}\setlength{\Height}{\Depth}%
-\put(3.0186,0.2986){\hspace*{\Width}\raisebox{\Height}{Q}}%
-%
-%
-\special{pa -1465 0}\special{pa 3984 0}%
-\special{fp}%
-\special{pa 0 1291}\special{pa 0 -1386}%
-\special{fp}%
-\settowidth{\Width}{$x$}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{$x$}\settodepth{\Depth}{$x$}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(10.1700,0.0000){\hspace*{\Width}\raisebox{\Height}{$x$}}%
-%
-%
-\settowidth{\Width}{$y$}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{$y$}\settodepth{\Depth}{$y$}\setlength{\Height}{\Depth}%
-\put(0.0000,3.5700){\hspace*{\Width}\raisebox{\Height}{$y$}}%
-%
-%
-\settowidth{\Width}{O}\setlength{\Width}{-1\Width}%
-\settoheight{\Height}{O}\settodepth{\Depth}{O}\setlength{\Height}{-\Height}%
-\put(-0.0500,-0.0500){\hspace*{\Width}\raisebox{\Height}{O}}%
-%
-%
-\end{picture}}%%
-\newframe%
-{\unitlength=1cm%
-\begin{picture}%
-( 14.34000, 7.30000)( -3.72000, -3.28000)%
-\special{pn 8}%
-%
-\special{pa 787 0}\special{pa 781 -99}\special{pa 763 -196}\special{pa 732 -290}\special{pa 690 -379}%
-\special{pa 637 -463}\special{pa 574 -539}\special{pa 502 -607}\special{pa 422 -665}%
-\special{pa 335 -712}\special{pa 243 -749}\special{pa 148 -773}\special{pa 49 -786}%
-\special{pa -49 -786}\special{pa -148 -773}\special{pa -243 -749}\special{pa -335 -712}%
-\special{pa -422 -665}\special{pa -502 -607}\special{pa -574 -539}\special{pa -637 -463}%
-\special{pa -690 -379}\special{pa -732 -290}\special{pa -763 -196}\special{pa -781 -99}%
-\special{pa -787 0}\special{pa -781 99}\special{pa -763 196}\special{pa -732 290}%
-\special{pa -690 379}\special{pa -637 463}\special{pa -574 539}\special{pa -502 607}%
-\special{pa -422 665}\special{pa -335 712}\special{pa -243 749}\special{pa -148 773}%
-\special{pa -49 786}\special{pa 49 786}\special{pa 148 773}\special{pa 243 749}\special{pa 335 712}%
-\special{pa 422 665}\special{pa 502 607}\special{pa 574 539}\special{pa 637 463}\special{pa 690 379}%
-\special{pa 732 290}\special{pa 763 196}\special{pa 781 99}\special{pa 787 0}%
-\special{fp}%
-\special{pa 1575 0}\special{pa 754 -227}%
-\special{fp}%
-\special{pn 1}%
-\special{pa 1175 -125}\special{pa 1168 -129}\special{pa 1160 -129}\special{pa 1153 -125}%
-\special{pa 1149 -118}\special{pa 1149 -110}\special{pa 1153 -103}\special{pa 1160 -99}%
-\special{pa 1168 -99}\special{pa 1175 -103}\special{pa 1180 -110}\special{pa 1180 -118}%
-\special{pa 1175 -125}\special{sh 1}\special{fp}%
-\special{pn 8}%
-\settowidth{\Width}{A}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{A}\settodepth{\Depth}{A}\setlength{\Height}{-\Height}%
-\put(4.0000,-0.0500){\hspace*{\Width}\raisebox{\Height}{A}}%
-%
-%
-\settowidth{\Width}{P}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{P}\settodepth{\Depth}{P}\setlength{\Height}{\Depth}%
-\put(1.9647,0.6278){\hspace*{\Width}\raisebox{\Height}{P}}%
-%
-%
-\settowidth{\Width}{Q}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{Q}\settodepth{\Depth}{Q}\setlength{\Height}{\Depth}%
-\put(3.0074,0.3389){\hspace*{\Width}\raisebox{\Height}{Q}}%
-%
-%
-\special{pa -1465 0}\special{pa 3984 0}%
-\special{fp}%
-\special{pa 0 1291}\special{pa 0 -1386}%
-\special{fp}%
-\settowidth{\Width}{$x$}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{$x$}\settodepth{\Depth}{$x$}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(10.1700,0.0000){\hspace*{\Width}\raisebox{\Height}{$x$}}%
-%
-%
-\settowidth{\Width}{$y$}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{$y$}\settodepth{\Depth}{$y$}\setlength{\Height}{\Depth}%
-\put(0.0000,3.5700){\hspace*{\Width}\raisebox{\Height}{$y$}}%
-%
-%
-\settowidth{\Width}{O}\setlength{\Width}{-1\Width}%
-\settoheight{\Height}{O}\settodepth{\Depth}{O}\setlength{\Height}{-\Height}%
-\put(-0.0500,-0.0500){\hspace*{\Width}\raisebox{\Height}{O}}%
-%
-%
-\end{picture}}%%
-\newframe%
-{\unitlength=1cm%
-\begin{picture}%
-( 14.34000, 7.30000)( -3.72000, -3.28000)%
-\special{pn 8}%
-%
-\special{pa 787 0}\special{pa 781 -99}\special{pa 763 -196}\special{pa 732 -290}\special{pa 690 -379}%
-\special{pa 637 -463}\special{pa 574 -539}\special{pa 502 -607}\special{pa 422 -665}%
-\special{pa 335 -712}\special{pa 243 -749}\special{pa 148 -773}\special{pa 49 -786}%
-\special{pa -49 -786}\special{pa -148 -773}\special{pa -243 -749}\special{pa -335 -712}%
-\special{pa -422 -665}\special{pa -502 -607}\special{pa -574 -539}\special{pa -637 -463}%
-\special{pa -690 -379}\special{pa -732 -290}\special{pa -763 -196}\special{pa -781 -99}%
-\special{pa -787 0}\special{pa -781 99}\special{pa -763 196}\special{pa -732 290}%
-\special{pa -690 379}\special{pa -637 463}\special{pa -574 539}\special{pa -502 607}%
-\special{pa -422 665}\special{pa -335 712}\special{pa -243 749}\special{pa -148 773}%
-\special{pa -49 786}\special{pa 49 786}\special{pa 148 773}\special{pa 243 749}\special{pa 335 712}%
-\special{pa 422 665}\special{pa 502 607}\special{pa 574 539}\special{pa 637 463}\special{pa 690 379}%
-\special{pa 732 290}\special{pa 763 196}\special{pa 781 99}\special{pa 787 0}%
-\special{fp}%
-\special{pa 1575 0}\special{pa 744 -259}%
-\special{fp}%
-\special{pn 1}%
-\special{pa 1170 -141}\special{pa 1163 -145}\special{pa 1155 -145}\special{pa 1148 -141}%
-\special{pa 1144 -133}\special{pa 1144 -125}\special{pa 1148 -118}\special{pa 1155 -114}%
-\special{pa 1163 -114}\special{pa 1170 -118}\special{pa 1174 -125}\special{pa 1174 -133}%
-\special{pa 1170 -141}\special{sh 1}\special{fp}%
-\special{pn 8}%
-\settowidth{\Width}{A}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{A}\settodepth{\Depth}{A}\setlength{\Height}{-\Height}%
-\put(4.0000,-0.0500){\hspace*{\Width}\raisebox{\Height}{A}}%
-%
-%
-\settowidth{\Width}{P}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{P}\settodepth{\Depth}{P}\setlength{\Height}{\Depth}%
-\put(1.9389,0.7074){\hspace*{\Width}\raisebox{\Height}{P}}%
-%
-%
-\settowidth{\Width}{Q}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{Q}\settodepth{\Depth}{Q}\setlength{\Height}{\Depth}%
-\put(2.9944,0.3787){\hspace*{\Width}\raisebox{\Height}{Q}}%
-%
-%
-\special{pa -1465 0}\special{pa 3984 0}%
-\special{fp}%
-\special{pa 0 1291}\special{pa 0 -1386}%
-\special{fp}%
-\settowidth{\Width}{$x$}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{$x$}\settodepth{\Depth}{$x$}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(10.1700,0.0000){\hspace*{\Width}\raisebox{\Height}{$x$}}%
-%
-%
-\settowidth{\Width}{$y$}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{$y$}\settodepth{\Depth}{$y$}\setlength{\Height}{\Depth}%
-\put(0.0000,3.5700){\hspace*{\Width}\raisebox{\Height}{$y$}}%
-%
-%
-\settowidth{\Width}{O}\setlength{\Width}{-1\Width}%
-\settoheight{\Height}{O}\settodepth{\Depth}{O}\setlength{\Height}{-\Height}%
-\put(-0.0500,-0.0500){\hspace*{\Width}\raisebox{\Height}{O}}%
-%
-%
-\end{picture}}%%
-\newframe%
-{\unitlength=1cm%
-\begin{picture}%
-( 14.34000, 7.30000)( -3.72000, -3.28000)%
-\special{pn 8}%
-%
-\special{pa 787 0}\special{pa 781 -99}\special{pa 763 -196}\special{pa 732 -290}\special{pa 690 -379}%
-\special{pa 637 -463}\special{pa 574 -539}\special{pa 502 -607}\special{pa 422 -665}%
-\special{pa 335 -712}\special{pa 243 -749}\special{pa 148 -773}\special{pa 49 -786}%
-\special{pa -49 -786}\special{pa -148 -773}\special{pa -243 -749}\special{pa -335 -712}%
-\special{pa -422 -665}\special{pa -502 -607}\special{pa -574 -539}\special{pa -637 -463}%
-\special{pa -690 -379}\special{pa -732 -290}\special{pa -763 -196}\special{pa -781 -99}%
-\special{pa -787 0}\special{pa -781 99}\special{pa -763 196}\special{pa -732 290}%
-\special{pa -690 379}\special{pa -637 463}\special{pa -574 539}\special{pa -502 607}%
-\special{pa -422 665}\special{pa -335 712}\special{pa -243 749}\special{pa -148 773}%
-\special{pa -49 786}\special{pa 49 786}\special{pa 148 773}\special{pa 243 749}\special{pa 335 712}%
-\special{pa 422 665}\special{pa 502 607}\special{pa 574 539}\special{pa 637 463}\special{pa 690 379}%
-\special{pa 732 290}\special{pa 763 196}\special{pa 781 99}\special{pa 787 0}%
-\special{fp}%
-\special{pa 1575 0}\special{pa 732 -290}%
-\special{fp}%
-\special{pn 1}%
-\special{pa 1165 -156}\special{pa 1158 -160}\special{pa 1149 -160}\special{pa 1142 -156}%
-\special{pa 1138 -149}\special{pa 1138 -141}\special{pa 1142 -134}\special{pa 1149 -130}%
-\special{pa 1158 -130}\special{pa 1165 -134}\special{pa 1169 -141}\special{pa 1169 -149}%
-\special{pa 1165 -156}\special{sh 1}\special{fp}%
-\special{pn 8}%
-\settowidth{\Width}{A}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{A}\settodepth{\Depth}{A}\setlength{\Height}{-\Height}%
-\put(4.0000,-0.0500){\hspace*{\Width}\raisebox{\Height}{A}}%
-%
-%
-\settowidth{\Width}{P}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{P}\settodepth{\Depth}{P}\setlength{\Height}{\Depth}%
-\put(1.9097,0.7859){\hspace*{\Width}\raisebox{\Height}{P}}%
-%
-%
-\settowidth{\Width}{Q}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{Q}\settodepth{\Depth}{Q}\setlength{\Height}{\Depth}%
-\put(2.9798,0.4179){\hspace*{\Width}\raisebox{\Height}{Q}}%
-%
-%
-\special{pa -1465 0}\special{pa 3984 0}%
-\special{fp}%
-\special{pa 0 1291}\special{pa 0 -1386}%
-\special{fp}%
-\settowidth{\Width}{$x$}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{$x$}\settodepth{\Depth}{$x$}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(10.1700,0.0000){\hspace*{\Width}\raisebox{\Height}{$x$}}%
-%
-%
-\settowidth{\Width}{$y$}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{$y$}\settodepth{\Depth}{$y$}\setlength{\Height}{\Depth}%
-\put(0.0000,3.5700){\hspace*{\Width}\raisebox{\Height}{$y$}}%
-%
-%
-\settowidth{\Width}{O}\setlength{\Width}{-1\Width}%
-\settoheight{\Height}{O}\settodepth{\Depth}{O}\setlength{\Height}{-\Height}%
-\put(-0.0500,-0.0500){\hspace*{\Width}\raisebox{\Height}{O}}%
-%
-%
-\end{picture}}%%
-\newframe%
-{\unitlength=1cm%
-\begin{picture}%
-( 14.34000, 7.30000)( -3.72000, -3.28000)%
-\special{pn 8}%
-%
-\special{pa 787 0}\special{pa 781 -99}\special{pa 763 -196}\special{pa 732 -290}\special{pa 690 -379}%
-\special{pa 637 -463}\special{pa 574 -539}\special{pa 502 -607}\special{pa 422 -665}%
-\special{pa 335 -712}\special{pa 243 -749}\special{pa 148 -773}\special{pa 49 -786}%
-\special{pa -49 -786}\special{pa -148 -773}\special{pa -243 -749}\special{pa -335 -712}%
-\special{pa -422 -665}\special{pa -502 -607}\special{pa -574 -539}\special{pa -637 -463}%
-\special{pa -690 -379}\special{pa -732 -290}\special{pa -763 -196}\special{pa -781 -99}%
-\special{pa -787 0}\special{pa -781 99}\special{pa -763 196}\special{pa -732 290}%
-\special{pa -690 379}\special{pa -637 463}\special{pa -574 539}\special{pa -502 607}%
-\special{pa -422 665}\special{pa -335 712}\special{pa -243 749}\special{pa -148 773}%
-\special{pa -49 786}\special{pa 49 786}\special{pa 148 773}\special{pa 243 749}\special{pa 335 712}%
-\special{pa 422 665}\special{pa 502 607}\special{pa 574 539}\special{pa 637 463}\special{pa 690 379}%
-\special{pa 732 290}\special{pa 763 196}\special{pa 781 99}\special{pa 787 0}%
-\special{fp}%
-\special{pa 1575 0}\special{pa 719 -320}%
-\special{fp}%
-\special{pn 1}%
-\special{pa 1158 -171}\special{pa 1151 -175}\special{pa 1143 -175}\special{pa 1136 -171}%
-\special{pa 1132 -164}\special{pa 1132 -156}\special{pa 1136 -149}\special{pa 1143 -145}%
-\special{pa 1151 -145}\special{pa 1158 -149}\special{pa 1162 -156}\special{pa 1162 -164}%
-\special{pa 1158 -171}\special{sh 1}\special{fp}%
-\special{pn 8}%
-\settowidth{\Width}{A}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{A}\settodepth{\Depth}{A}\setlength{\Height}{-\Height}%
-\put(4.0000,-0.0500){\hspace*{\Width}\raisebox{\Height}{A}}%
-%
-%
-\settowidth{\Width}{P}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{P}\settodepth{\Depth}{P}\setlength{\Height}{\Depth}%
-\put(1.8773,0.8631){\hspace*{\Width}\raisebox{\Height}{P}}%
-%
-%
-\settowidth{\Width}{Q}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{Q}\settodepth{\Depth}{Q}\setlength{\Height}{\Depth}%
-\put(2.9636,0.4565){\hspace*{\Width}\raisebox{\Height}{Q}}%
-%
-%
-\special{pa -1465 0}\special{pa 3984 0}%
-\special{fp}%
-\special{pa 0 1291}\special{pa 0 -1386}%
-\special{fp}%
-\settowidth{\Width}{$x$}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{$x$}\settodepth{\Depth}{$x$}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(10.1700,0.0000){\hspace*{\Width}\raisebox{\Height}{$x$}}%
-%
-%
-\settowidth{\Width}{$y$}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{$y$}\settodepth{\Depth}{$y$}\setlength{\Height}{\Depth}%
-\put(0.0000,3.5700){\hspace*{\Width}\raisebox{\Height}{$y$}}%
-%
-%
-\settowidth{\Width}{O}\setlength{\Width}{-1\Width}%
-\settoheight{\Height}{O}\settodepth{\Depth}{O}\setlength{\Height}{-\Height}%
-\put(-0.0500,-0.0500){\hspace*{\Width}\raisebox{\Height}{O}}%
-%
-%
-\end{picture}}%%
-\newframe%
-{\unitlength=1cm%
-\begin{picture}%
-( 14.34000, 7.30000)( -3.72000, -3.28000)%
-\special{pn 8}%
-%
-\special{pa 787 0}\special{pa 781 -99}\special{pa 763 -196}\special{pa 732 -290}\special{pa 690 -379}%
-\special{pa 637 -463}\special{pa 574 -539}\special{pa 502 -607}\special{pa 422 -665}%
-\special{pa 335 -712}\special{pa 243 -749}\special{pa 148 -773}\special{pa 49 -786}%
-\special{pa -49 -786}\special{pa -148 -773}\special{pa -243 -749}\special{pa -335 -712}%
-\special{pa -422 -665}\special{pa -502 -607}\special{pa -574 -539}\special{pa -637 -463}%
-\special{pa -690 -379}\special{pa -732 -290}\special{pa -763 -196}\special{pa -781 -99}%
-\special{pa -787 0}\special{pa -781 99}\special{pa -763 196}\special{pa -732 290}%
-\special{pa -690 379}\special{pa -637 463}\special{pa -574 539}\special{pa -502 607}%
-\special{pa -422 665}\special{pa -335 712}\special{pa -243 749}\special{pa -148 773}%
-\special{pa -49 786}\special{pa 49 786}\special{pa 148 773}\special{pa 243 749}\special{pa 335 712}%
-\special{pa 422 665}\special{pa 502 607}\special{pa 574 539}\special{pa 637 463}\special{pa 690 379}%
-\special{pa 732 290}\special{pa 763 196}\special{pa 781 99}\special{pa 787 0}%
-\special{fp}%
-\special{pa 1575 0}\special{pa 705 -350}%
-\special{fp}%
-\special{pn 1}%
-\special{pa 1151 -186}\special{pa 1144 -190}\special{pa 1136 -190}\special{pa 1129 -186}%
-\special{pa 1125 -179}\special{pa 1125 -171}\special{pa 1129 -164}\special{pa 1136 -160}%
-\special{pa 1144 -160}\special{pa 1151 -164}\special{pa 1155 -171}\special{pa 1155 -179}%
-\special{pa 1151 -186}\special{sh 1}\special{fp}%
-\special{pn 8}%
-\settowidth{\Width}{A}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{A}\settodepth{\Depth}{A}\setlength{\Height}{-\Height}%
-\put(4.0000,-0.0500){\hspace*{\Width}\raisebox{\Height}{A}}%
-%
-%
-\settowidth{\Width}{P}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{P}\settodepth{\Depth}{P}\setlength{\Height}{\Depth}%
-\put(1.8416,0.9389){\hspace*{\Width}\raisebox{\Height}{P}}%
-%
-%
-\settowidth{\Width}{Q}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{Q}\settodepth{\Depth}{Q}\setlength{\Height}{\Depth}%
-\put(2.9458,0.4944){\hspace*{\Width}\raisebox{\Height}{Q}}%
-%
-%
-\special{pa -1465 0}\special{pa 3984 0}%
-\special{fp}%
-\special{pa 0 1291}\special{pa 0 -1386}%
-\special{fp}%
-\settowidth{\Width}{$x$}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{$x$}\settodepth{\Depth}{$x$}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(10.1700,0.0000){\hspace*{\Width}\raisebox{\Height}{$x$}}%
-%
-%
-\settowidth{\Width}{$y$}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{$y$}\settodepth{\Depth}{$y$}\setlength{\Height}{\Depth}%
-\put(0.0000,3.5700){\hspace*{\Width}\raisebox{\Height}{$y$}}%
-%
-%
-\settowidth{\Width}{O}\setlength{\Width}{-1\Width}%
-\settoheight{\Height}{O}\settodepth{\Depth}{O}\setlength{\Height}{-\Height}%
-\put(-0.0500,-0.0500){\hspace*{\Width}\raisebox{\Height}{O}}%
-%
-%
-\end{picture}}%%
-\newframe%
-{\unitlength=1cm%
-\begin{picture}%
-( 14.34000, 7.30000)( -3.72000, -3.28000)%
-\special{pn 8}%
-%
-\special{pa 787 0}\special{pa 781 -99}\special{pa 763 -196}\special{pa 732 -290}\special{pa 690 -379}%
-\special{pa 637 -463}\special{pa 574 -539}\special{pa 502 -607}\special{pa 422 -665}%
-\special{pa 335 -712}\special{pa 243 -749}\special{pa 148 -773}\special{pa 49 -786}%
-\special{pa -49 -786}\special{pa -148 -773}\special{pa -243 -749}\special{pa -335 -712}%
-\special{pa -422 -665}\special{pa -502 -607}\special{pa -574 -539}\special{pa -637 -463}%
-\special{pa -690 -379}\special{pa -732 -290}\special{pa -763 -196}\special{pa -781 -99}%
-\special{pa -787 0}\special{pa -781 99}\special{pa -763 196}\special{pa -732 290}%
-\special{pa -690 379}\special{pa -637 463}\special{pa -574 539}\special{pa -502 607}%
-\special{pa -422 665}\special{pa -335 712}\special{pa -243 749}\special{pa -148 773}%
-\special{pa -49 786}\special{pa 49 786}\special{pa 148 773}\special{pa 243 749}\special{pa 335 712}%
-\special{pa 422 665}\special{pa 502 607}\special{pa 574 539}\special{pa 637 463}\special{pa 690 379}%
-\special{pa 732 290}\special{pa 763 196}\special{pa 781 99}\special{pa 787 0}%
-\special{fp}%
-\special{pa 1575 0}\special{pa 690 -379}%
-\special{fp}%
-\special{pn 1}%
-\special{pa 1144 -201}\special{pa 1137 -205}\special{pa 1128 -205}\special{pa 1121 -201}%
-\special{pa 1117 -194}\special{pa 1117 -186}\special{pa 1121 -178}\special{pa 1128 -174}%
-\special{pa 1137 -174}\special{pa 1144 -178}\special{pa 1148 -186}\special{pa 1148 -194}%
-\special{pa 1144 -201}\special{sh 1}\special{fp}%
-\special{pn 8}%
-\settowidth{\Width}{A}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{A}\settodepth{\Depth}{A}\setlength{\Height}{-\Height}%
-\put(4.0000,-0.0500){\hspace*{\Width}\raisebox{\Height}{A}}%
-%
-%
-\settowidth{\Width}{P}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{P}\settodepth{\Depth}{P}\setlength{\Height}{\Depth}%
-\put(1.8029,1.0131){\hspace*{\Width}\raisebox{\Height}{P}}%
-%
-%
-\settowidth{\Width}{Q}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{Q}\settodepth{\Depth}{Q}\setlength{\Height}{\Depth}%
-\put(2.9264,0.5315){\hspace*{\Width}\raisebox{\Height}{Q}}%
-%
-%
-\special{pa -1465 0}\special{pa 3984 0}%
-\special{fp}%
-\special{pa 0 1291}\special{pa 0 -1386}%
-\special{fp}%
-\settowidth{\Width}{$x$}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{$x$}\settodepth{\Depth}{$x$}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(10.1700,0.0000){\hspace*{\Width}\raisebox{\Height}{$x$}}%
-%
-%
-\settowidth{\Width}{$y$}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{$y$}\settodepth{\Depth}{$y$}\setlength{\Height}{\Depth}%
-\put(0.0000,3.5700){\hspace*{\Width}\raisebox{\Height}{$y$}}%
-%
-%
-\settowidth{\Width}{O}\setlength{\Width}{-1\Width}%
-\settoheight{\Height}{O}\settodepth{\Depth}{O}\setlength{\Height}{-\Height}%
-\put(-0.0500,-0.0500){\hspace*{\Width}\raisebox{\Height}{O}}%
-%
-%
-\end{picture}}%%
-\newframe%
-{\unitlength=1cm%
-\begin{picture}%
-( 14.34000, 7.30000)( -3.72000, -3.28000)%
-\special{pn 8}%
-%
-\special{pa 787 0}\special{pa 781 -99}\special{pa 763 -196}\special{pa 732 -290}\special{pa 690 -379}%
-\special{pa 637 -463}\special{pa 574 -539}\special{pa 502 -607}\special{pa 422 -665}%
-\special{pa 335 -712}\special{pa 243 -749}\special{pa 148 -773}\special{pa 49 -786}%
-\special{pa -49 -786}\special{pa -148 -773}\special{pa -243 -749}\special{pa -335 -712}%
-\special{pa -422 -665}\special{pa -502 -607}\special{pa -574 -539}\special{pa -637 -463}%
-\special{pa -690 -379}\special{pa -732 -290}\special{pa -763 -196}\special{pa -781 -99}%
-\special{pa -787 0}\special{pa -781 99}\special{pa -763 196}\special{pa -732 290}%
-\special{pa -690 379}\special{pa -637 463}\special{pa -574 539}\special{pa -502 607}%
-\special{pa -422 665}\special{pa -335 712}\special{pa -243 749}\special{pa -148 773}%
-\special{pa -49 786}\special{pa 49 786}\special{pa 148 773}\special{pa 243 749}\special{pa 335 712}%
-\special{pa 422 665}\special{pa 502 607}\special{pa 574 539}\special{pa 637 463}\special{pa 690 379}%
-\special{pa 732 290}\special{pa 763 196}\special{pa 781 99}\special{pa 787 0}%
-\special{fp}%
-\special{pa 1575 0}\special{pa 674 -408}%
-\special{fp}%
-\special{pn 1}%
-\special{pa 1135 -215}\special{pa 1128 -219}\special{pa 1120 -219}\special{pa 1113 -215}%
-\special{pa 1109 -208}\special{pa 1109 -200}\special{pa 1113 -193}\special{pa 1120 -189}%
-\special{pa 1128 -189}\special{pa 1135 -193}\special{pa 1139 -200}\special{pa 1139 -208}%
-\special{pa 1135 -215}\special{sh 1}\special{fp}%
-\special{pn 8}%
-\settowidth{\Width}{A}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{A}\settodepth{\Depth}{A}\setlength{\Height}{-\Height}%
-\put(4.0000,-0.0500){\hspace*{\Width}\raisebox{\Height}{A}}%
-%
-%
-\settowidth{\Width}{P}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{P}\settodepth{\Depth}{P}\setlength{\Height}{\Depth}%
-\put(1.7610,1.0856){\hspace*{\Width}\raisebox{\Height}{P}}%
-%
-%
-\settowidth{\Width}{Q}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{Q}\settodepth{\Depth}{Q}\setlength{\Height}{\Depth}%
-\put(2.9055,0.5678){\hspace*{\Width}\raisebox{\Height}{Q}}%
-%
-%
-\special{pa -1465 0}\special{pa 3984 0}%
-\special{fp}%
-\special{pa 0 1291}\special{pa 0 -1386}%
-\special{fp}%
-\settowidth{\Width}{$x$}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{$x$}\settodepth{\Depth}{$x$}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(10.1700,0.0000){\hspace*{\Width}\raisebox{\Height}{$x$}}%
-%
-%
-\settowidth{\Width}{$y$}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{$y$}\settodepth{\Depth}{$y$}\setlength{\Height}{\Depth}%
-\put(0.0000,3.5700){\hspace*{\Width}\raisebox{\Height}{$y$}}%
-%
-%
-\settowidth{\Width}{O}\setlength{\Width}{-1\Width}%
-\settoheight{\Height}{O}\settodepth{\Depth}{O}\setlength{\Height}{-\Height}%
-\put(-0.0500,-0.0500){\hspace*{\Width}\raisebox{\Height}{O}}%
-%
-%
-\end{picture}}%%
-\newframe%
-{\unitlength=1cm%
-\begin{picture}%
-( 14.34000, 7.30000)( -3.72000, -3.28000)%
-\special{pn 8}%
-%
-\special{pa 787 0}\special{pa 781 -99}\special{pa 763 -196}\special{pa 732 -290}\special{pa 690 -379}%
-\special{pa 637 -463}\special{pa 574 -539}\special{pa 502 -607}\special{pa 422 -665}%
-\special{pa 335 -712}\special{pa 243 -749}\special{pa 148 -773}\special{pa 49 -786}%
-\special{pa -49 -786}\special{pa -148 -773}\special{pa -243 -749}\special{pa -335 -712}%
-\special{pa -422 -665}\special{pa -502 -607}\special{pa -574 -539}\special{pa -637 -463}%
-\special{pa -690 -379}\special{pa -732 -290}\special{pa -763 -196}\special{pa -781 -99}%
-\special{pa -787 0}\special{pa -781 99}\special{pa -763 196}\special{pa -732 290}%
-\special{pa -690 379}\special{pa -637 463}\special{pa -574 539}\special{pa -502 607}%
-\special{pa -422 665}\special{pa -335 712}\special{pa -243 749}\special{pa -148 773}%
-\special{pa -49 786}\special{pa 49 786}\special{pa 148 773}\special{pa 243 749}\special{pa 335 712}%
-\special{pa 422 665}\special{pa 502 607}\special{pa 574 539}\special{pa 637 463}\special{pa 690 379}%
-\special{pa 732 290}\special{pa 763 196}\special{pa 781 99}\special{pa 787 0}%
-\special{fp}%
-\special{pa 1575 0}\special{pa 656 -436}%
-\special{fp}%
-\special{pn 1}%
-\special{pa 1127 -229}\special{pa 1119 -233}\special{pa 1111 -233}\special{pa 1104 -229}%
-\special{pa 1100 -222}\special{pa 1100 -214}\special{pa 1104 -207}\special{pa 1111 -203}%
-\special{pa 1119 -203}\special{pa 1127 -207}\special{pa 1131 -214}\special{pa 1131 -222}%
-\special{pa 1127 -229}\special{sh 1}\special{fp}%
-\special{pn 8}%
-\settowidth{\Width}{A}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{A}\settodepth{\Depth}{A}\setlength{\Height}{-\Height}%
-\put(4.0000,-0.0500){\hspace*{\Width}\raisebox{\Height}{A}}%
-%
-%
-\settowidth{\Width}{P}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{P}\settodepth{\Depth}{P}\setlength{\Height}{\Depth}%
-\put(1.7162,1.1563){\hspace*{\Width}\raisebox{\Height}{P}}%
-%
-%
-\settowidth{\Width}{Q}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{Q}\settodepth{\Depth}{Q}\setlength{\Height}{\Depth}%
-\put(2.8831,0.6031){\hspace*{\Width}\raisebox{\Height}{Q}}%
-%
-%
-\special{pa -1465 0}\special{pa 3984 0}%
-\special{fp}%
-\special{pa 0 1291}\special{pa 0 -1386}%
-\special{fp}%
-\settowidth{\Width}{$x$}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{$x$}\settodepth{\Depth}{$x$}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(10.1700,0.0000){\hspace*{\Width}\raisebox{\Height}{$x$}}%
-%
-%
-\settowidth{\Width}{$y$}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{$y$}\settodepth{\Depth}{$y$}\setlength{\Height}{\Depth}%
-\put(0.0000,3.5700){\hspace*{\Width}\raisebox{\Height}{$y$}}%
-%
-%
-\settowidth{\Width}{O}\setlength{\Width}{-1\Width}%
-\settoheight{\Height}{O}\settodepth{\Depth}{O}\setlength{\Height}{-\Height}%
-\put(-0.0500,-0.0500){\hspace*{\Width}\raisebox{\Height}{O}}%
-%
-%
-\end{picture}}%%
-\newframe%
-{\unitlength=1cm%
-\begin{picture}%
-( 14.34000, 7.30000)( -3.72000, -3.28000)%
-\special{pn 8}%
-%
-\special{pa 787 0}\special{pa 781 -99}\special{pa 763 -196}\special{pa 732 -290}\special{pa 690 -379}%
-\special{pa 637 -463}\special{pa 574 -539}\special{pa 502 -607}\special{pa 422 -665}%
-\special{pa 335 -712}\special{pa 243 -749}\special{pa 148 -773}\special{pa 49 -786}%
-\special{pa -49 -786}\special{pa -148 -773}\special{pa -243 -749}\special{pa -335 -712}%
-\special{pa -422 -665}\special{pa -502 -607}\special{pa -574 -539}\special{pa -637 -463}%
-\special{pa -690 -379}\special{pa -732 -290}\special{pa -763 -196}\special{pa -781 -99}%
-\special{pa -787 0}\special{pa -781 99}\special{pa -763 196}\special{pa -732 290}%
-\special{pa -690 379}\special{pa -637 463}\special{pa -574 539}\special{pa -502 607}%
-\special{pa -422 665}\special{pa -335 712}\special{pa -243 749}\special{pa -148 773}%
-\special{pa -49 786}\special{pa 49 786}\special{pa 148 773}\special{pa 243 749}\special{pa 335 712}%
-\special{pa 422 665}\special{pa 502 607}\special{pa 574 539}\special{pa 637 463}\special{pa 690 379}%
-\special{pa 732 290}\special{pa 763 196}\special{pa 781 99}\special{pa 787 0}%
-\special{fp}%
-\special{pa 1575 0}\special{pa 637 -463}%
-\special{fp}%
-\special{pn 1}%
-\special{pa 1117 -242}\special{pa 1110 -247}\special{pa 1102 -247}\special{pa 1095 -242}%
-\special{pa 1091 -235}\special{pa 1091 -227}\special{pa 1095 -220}\special{pa 1102 -216}%
-\special{pa 1110 -216}\special{pa 1117 -220}\special{pa 1121 -227}\special{pa 1121 -235}%
-\special{pa 1117 -242}\special{sh 1}\special{fp}%
-\special{pn 8}%
-\settowidth{\Width}{A}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{A}\settodepth{\Depth}{A}\setlength{\Height}{-\Height}%
-\put(4.0000,-0.0500){\hspace*{\Width}\raisebox{\Height}{A}}%
-%
-%
-\settowidth{\Width}{P}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{P}\settodepth{\Depth}{P}\setlength{\Height}{\Depth}%
-\put(1.6684,1.2251){\hspace*{\Width}\raisebox{\Height}{P}}%
-%
-%
-\settowidth{\Width}{Q}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{Q}\settodepth{\Depth}{Q}\setlength{\Height}{\Depth}%
-\put(2.8592,0.6375){\hspace*{\Width}\raisebox{\Height}{Q}}%
-%
-%
-\special{pa -1465 0}\special{pa 3984 0}%
-\special{fp}%
-\special{pa 0 1291}\special{pa 0 -1386}%
-\special{fp}%
-\settowidth{\Width}{$x$}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{$x$}\settodepth{\Depth}{$x$}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(10.1700,0.0000){\hspace*{\Width}\raisebox{\Height}{$x$}}%
-%
-%
-\settowidth{\Width}{$y$}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{$y$}\settodepth{\Depth}{$y$}\setlength{\Height}{\Depth}%
-\put(0.0000,3.5700){\hspace*{\Width}\raisebox{\Height}{$y$}}%
-%
-%
-\settowidth{\Width}{O}\setlength{\Width}{-1\Width}%
-\settoheight{\Height}{O}\settodepth{\Depth}{O}\setlength{\Height}{-\Height}%
-\put(-0.0500,-0.0500){\hspace*{\Width}\raisebox{\Height}{O}}%
-%
-%
-\end{picture}}%%
-\newframe%
-{\unitlength=1cm%
-\begin{picture}%
-( 14.34000, 7.30000)( -3.72000, -3.28000)%
-\special{pn 8}%
-%
-\special{pa 787 0}\special{pa 781 -99}\special{pa 763 -196}\special{pa 732 -290}\special{pa 690 -379}%
-\special{pa 637 -463}\special{pa 574 -539}\special{pa 502 -607}\special{pa 422 -665}%
-\special{pa 335 -712}\special{pa 243 -749}\special{pa 148 -773}\special{pa 49 -786}%
-\special{pa -49 -786}\special{pa -148 -773}\special{pa -243 -749}\special{pa -335 -712}%
-\special{pa -422 -665}\special{pa -502 -607}\special{pa -574 -539}\special{pa -637 -463}%
-\special{pa -690 -379}\special{pa -732 -290}\special{pa -763 -196}\special{pa -781 -99}%
-\special{pa -787 0}\special{pa -781 99}\special{pa -763 196}\special{pa -732 290}%
-\special{pa -690 379}\special{pa -637 463}\special{pa -574 539}\special{pa -502 607}%
-\special{pa -422 665}\special{pa -335 712}\special{pa -243 749}\special{pa -148 773}%
-\special{pa -49 786}\special{pa 49 786}\special{pa 148 773}\special{pa 243 749}\special{pa 335 712}%
-\special{pa 422 665}\special{pa 502 607}\special{pa 574 539}\special{pa 637 463}\special{pa 690 379}%
-\special{pa 732 290}\special{pa 763 196}\special{pa 781 99}\special{pa 787 0}%
-\special{fp}%
-\special{pa 1575 0}\special{pa 617 -489}%
-\special{fp}%
-\special{pn 1}%
-\special{pa 1107 -256}\special{pa 1100 -260}\special{pa 1092 -260}\special{pa 1085 -256}%
-\special{pa 1081 -249}\special{pa 1081 -240}\special{pa 1085 -233}\special{pa 1092 -229}%
-\special{pa 1100 -229}\special{pa 1107 -233}\special{pa 1111 -240}\special{pa 1111 -249}%
-\special{pa 1107 -256}\special{sh 1}\special{fp}%
-\special{pn 8}%
-\settowidth{\Width}{A}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{A}\settodepth{\Depth}{A}\setlength{\Height}{-\Height}%
-\put(4.0000,-0.0500){\hspace*{\Width}\raisebox{\Height}{A}}%
-%
-%
-\settowidth{\Width}{P}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{P}\settodepth{\Depth}{P}\setlength{\Height}{\Depth}%
-\put(1.6178,1.2918){\hspace*{\Width}\raisebox{\Height}{P}}%
-%
-%
-\settowidth{\Width}{Q}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{Q}\settodepth{\Depth}{Q}\setlength{\Height}{\Depth}%
-\put(2.8339,0.6709){\hspace*{\Width}\raisebox{\Height}{Q}}%
-%
-%
-\special{pa -1465 0}\special{pa 3984 0}%
-\special{fp}%
-\special{pa 0 1291}\special{pa 0 -1386}%
-\special{fp}%
-\settowidth{\Width}{$x$}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{$x$}\settodepth{\Depth}{$x$}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(10.1700,0.0000){\hspace*{\Width}\raisebox{\Height}{$x$}}%
-%
-%
-\settowidth{\Width}{$y$}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{$y$}\settodepth{\Depth}{$y$}\setlength{\Height}{\Depth}%
-\put(0.0000,3.5700){\hspace*{\Width}\raisebox{\Height}{$y$}}%
-%
-%
-\settowidth{\Width}{O}\setlength{\Width}{-1\Width}%
-\settoheight{\Height}{O}\settodepth{\Depth}{O}\setlength{\Height}{-\Height}%
-\put(-0.0500,-0.0500){\hspace*{\Width}\raisebox{\Height}{O}}%
-%
-%
-\end{picture}}%%
-\newframe%
-{\unitlength=1cm%
-\begin{picture}%
-( 14.34000, 7.30000)( -3.72000, -3.28000)%
-\special{pn 8}%
-%
-\special{pa 787 0}\special{pa 781 -99}\special{pa 763 -196}\special{pa 732 -290}\special{pa 690 -379}%
-\special{pa 637 -463}\special{pa 574 -539}\special{pa 502 -607}\special{pa 422 -665}%
-\special{pa 335 -712}\special{pa 243 -749}\special{pa 148 -773}\special{pa 49 -786}%
-\special{pa -49 -786}\special{pa -148 -773}\special{pa -243 -749}\special{pa -335 -712}%
-\special{pa -422 -665}\special{pa -502 -607}\special{pa -574 -539}\special{pa -637 -463}%
-\special{pa -690 -379}\special{pa -732 -290}\special{pa -763 -196}\special{pa -781 -99}%
-\special{pa -787 0}\special{pa -781 99}\special{pa -763 196}\special{pa -732 290}%
-\special{pa -690 379}\special{pa -637 463}\special{pa -574 539}\special{pa -502 607}%
-\special{pa -422 665}\special{pa -335 712}\special{pa -243 749}\special{pa -148 773}%
-\special{pa -49 786}\special{pa 49 786}\special{pa 148 773}\special{pa 243 749}\special{pa 335 712}%
-\special{pa 422 665}\special{pa 502 607}\special{pa 574 539}\special{pa 637 463}\special{pa 690 379}%
-\special{pa 732 290}\special{pa 763 196}\special{pa 781 99}\special{pa 787 0}%
-\special{fp}%
-\special{pa 1575 0}\special{pa 596 -514}%
-\special{fp}%
-\special{pn 1}%
-\special{pa 1097 -268}\special{pa 1090 -272}\special{pa 1081 -272}\special{pa 1074 -268}%
-\special{pa 1070 -261}\special{pa 1070 -253}\special{pa 1074 -246}\special{pa 1081 -242}%
-\special{pa 1090 -242}\special{pa 1097 -246}\special{pa 1101 -253}\special{pa 1101 -261}%
-\special{pa 1097 -268}\special{sh 1}\special{fp}%
-\special{pn 8}%
-\settowidth{\Width}{A}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{A}\settodepth{\Depth}{A}\setlength{\Height}{-\Height}%
-\put(4.0000,-0.0500){\hspace*{\Width}\raisebox{\Height}{A}}%
-%
-%
-\settowidth{\Width}{P}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{P}\settodepth{\Depth}{P}\setlength{\Height}{\Depth}%
-\put(1.5645,1.3563){\hspace*{\Width}\raisebox{\Height}{P}}%
-%
-%
-\settowidth{\Width}{Q}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{Q}\settodepth{\Depth}{Q}\setlength{\Height}{\Depth}%
-\put(2.8072,0.7032){\hspace*{\Width}\raisebox{\Height}{Q}}%
-%
-%
-\special{pa -1465 0}\special{pa 3984 0}%
-\special{fp}%
-\special{pa 0 1291}\special{pa 0 -1386}%
-\special{fp}%
-\settowidth{\Width}{$x$}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{$x$}\settodepth{\Depth}{$x$}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(10.1700,0.0000){\hspace*{\Width}\raisebox{\Height}{$x$}}%
-%
-%
-\settowidth{\Width}{$y$}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{$y$}\settodepth{\Depth}{$y$}\setlength{\Height}{\Depth}%
-\put(0.0000,3.5700){\hspace*{\Width}\raisebox{\Height}{$y$}}%
-%
-%
-\settowidth{\Width}{O}\setlength{\Width}{-1\Width}%
-\settoheight{\Height}{O}\settodepth{\Depth}{O}\setlength{\Height}{-\Height}%
-\put(-0.0500,-0.0500){\hspace*{\Width}\raisebox{\Height}{O}}%
-%
-%
-\end{picture}}%%
-\newframe%
-{\unitlength=1cm%
-\begin{picture}%
-( 14.34000, 7.30000)( -3.72000, -3.28000)%
-\special{pn 8}%
-%
-\special{pa 787 0}\special{pa 781 -99}\special{pa 763 -196}\special{pa 732 -290}\special{pa 690 -379}%
-\special{pa 637 -463}\special{pa 574 -539}\special{pa 502 -607}\special{pa 422 -665}%
-\special{pa 335 -712}\special{pa 243 -749}\special{pa 148 -773}\special{pa 49 -786}%
-\special{pa -49 -786}\special{pa -148 -773}\special{pa -243 -749}\special{pa -335 -712}%
-\special{pa -422 -665}\special{pa -502 -607}\special{pa -574 -539}\special{pa -637 -463}%
-\special{pa -690 -379}\special{pa -732 -290}\special{pa -763 -196}\special{pa -781 -99}%
-\special{pa -787 0}\special{pa -781 99}\special{pa -763 196}\special{pa -732 290}%
-\special{pa -690 379}\special{pa -637 463}\special{pa -574 539}\special{pa -502 607}%
-\special{pa -422 665}\special{pa -335 712}\special{pa -243 749}\special{pa -148 773}%
-\special{pa -49 786}\special{pa 49 786}\special{pa 148 773}\special{pa 243 749}\special{pa 335 712}%
-\special{pa 422 665}\special{pa 502 607}\special{pa 574 539}\special{pa 637 463}\special{pa 690 379}%
-\special{pa 732 290}\special{pa 763 196}\special{pa 781 99}\special{pa 787 0}%
-\special{fp}%
-\special{pa 1575 0}\special{pa 574 -539}%
-\special{fp}%
-\special{pn 1}%
-\special{pa 1086 -281}\special{pa 1079 -285}\special{pa 1070 -285}\special{pa 1063 -281}%
-\special{pa 1059 -273}\special{pa 1059 -265}\special{pa 1063 -258}\special{pa 1070 -254}%
-\special{pa 1079 -254}\special{pa 1086 -258}\special{pa 1090 -265}\special{pa 1090 -273}%
-\special{pa 1086 -281}\special{sh 1}\special{fp}%
-\special{pn 8}%
-\settowidth{\Width}{A}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{A}\settodepth{\Depth}{A}\setlength{\Height}{-\Height}%
-\put(4.0000,-0.0500){\hspace*{\Width}\raisebox{\Height}{A}}%
-%
-%
-\settowidth{\Width}{P}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{P}\settodepth{\Depth}{P}\setlength{\Height}{\Depth}%
-\put(1.5085,1.4185){\hspace*{\Width}\raisebox{\Height}{P}}%
-%
-%
-\settowidth{\Width}{Q}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{Q}\settodepth{\Depth}{Q}\setlength{\Height}{\Depth}%
-\put(2.7792,0.7343){\hspace*{\Width}\raisebox{\Height}{Q}}%
-%
-%
-\special{pa -1465 0}\special{pa 3984 0}%
-\special{fp}%
-\special{pa 0 1291}\special{pa 0 -1386}%
-\special{fp}%
-\settowidth{\Width}{$x$}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{$x$}\settodepth{\Depth}{$x$}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(10.1700,0.0000){\hspace*{\Width}\raisebox{\Height}{$x$}}%
-%
-%
-\settowidth{\Width}{$y$}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{$y$}\settodepth{\Depth}{$y$}\setlength{\Height}{\Depth}%
-\put(0.0000,3.5700){\hspace*{\Width}\raisebox{\Height}{$y$}}%
-%
-%
-\settowidth{\Width}{O}\setlength{\Width}{-1\Width}%
-\settoheight{\Height}{O}\settodepth{\Depth}{O}\setlength{\Height}{-\Height}%
-\put(-0.0500,-0.0500){\hspace*{\Width}\raisebox{\Height}{O}}%
-%
-%
-\end{picture}}%%
-\newframe%
-{\unitlength=1cm%
-\begin{picture}%
-( 14.34000, 7.30000)( -3.72000, -3.28000)%
-\special{pn 8}%
-%
-\special{pa 787 0}\special{pa 781 -99}\special{pa 763 -196}\special{pa 732 -290}\special{pa 690 -379}%
-\special{pa 637 -463}\special{pa 574 -539}\special{pa 502 -607}\special{pa 422 -665}%
-\special{pa 335 -712}\special{pa 243 -749}\special{pa 148 -773}\special{pa 49 -786}%
-\special{pa -49 -786}\special{pa -148 -773}\special{pa -243 -749}\special{pa -335 -712}%
-\special{pa -422 -665}\special{pa -502 -607}\special{pa -574 -539}\special{pa -637 -463}%
-\special{pa -690 -379}\special{pa -732 -290}\special{pa -763 -196}\special{pa -781 -99}%
-\special{pa -787 0}\special{pa -781 99}\special{pa -763 196}\special{pa -732 290}%
-\special{pa -690 379}\special{pa -637 463}\special{pa -574 539}\special{pa -502 607}%
-\special{pa -422 665}\special{pa -335 712}\special{pa -243 749}\special{pa -148 773}%
-\special{pa -49 786}\special{pa 49 786}\special{pa 148 773}\special{pa 243 749}\special{pa 335 712}%
-\special{pa 422 665}\special{pa 502 607}\special{pa 574 539}\special{pa 637 463}\special{pa 690 379}%
-\special{pa 732 290}\special{pa 763 196}\special{pa 781 99}\special{pa 787 0}%
-\special{fp}%
-\special{pa 1575 0}\special{pa 551 -562}%
-\special{fp}%
-\special{pn 1}%
-\special{pa 1074 -292}\special{pa 1067 -296}\special{pa 1059 -296}\special{pa 1052 -292}%
-\special{pa 1048 -285}\special{pa 1048 -277}\special{pa 1052 -270}\special{pa 1059 -266}%
-\special{pa 1067 -266}\special{pa 1074 -270}\special{pa 1078 -277}\special{pa 1078 -285}%
-\special{pa 1074 -292}\special{sh 1}\special{fp}%
-\special{pn 8}%
-\settowidth{\Width}{A}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{A}\settodepth{\Depth}{A}\setlength{\Height}{-\Height}%
-\put(4.0000,-0.0500){\hspace*{\Width}\raisebox{\Height}{A}}%
-%
-%
-\settowidth{\Width}{P}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{P}\settodepth{\Depth}{P}\setlength{\Height}{\Depth}%
-\put(1.4499,1.4784){\hspace*{\Width}\raisebox{\Height}{P}}%
-%
-%
-\settowidth{\Width}{Q}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{Q}\settodepth{\Depth}{Q}\setlength{\Height}{\Depth}%
-\put(2.7499,0.7642){\hspace*{\Width}\raisebox{\Height}{Q}}%
-%
-%
-\special{pa -1465 0}\special{pa 3984 0}%
-\special{fp}%
-\special{pa 0 1291}\special{pa 0 -1386}%
-\special{fp}%
-\settowidth{\Width}{$x$}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{$x$}\settodepth{\Depth}{$x$}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(10.1700,0.0000){\hspace*{\Width}\raisebox{\Height}{$x$}}%
-%
-%
-\settowidth{\Width}{$y$}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{$y$}\settodepth{\Depth}{$y$}\setlength{\Height}{\Depth}%
-\put(0.0000,3.5700){\hspace*{\Width}\raisebox{\Height}{$y$}}%
-%
-%
-\settowidth{\Width}{O}\setlength{\Width}{-1\Width}%
-\settoheight{\Height}{O}\settodepth{\Depth}{O}\setlength{\Height}{-\Height}%
-\put(-0.0500,-0.0500){\hspace*{\Width}\raisebox{\Height}{O}}%
-%
-%
-\end{picture}}%%
-\newframe%
-{\unitlength=1cm%
-\begin{picture}%
-( 14.34000, 7.30000)( -3.72000, -3.28000)%
-\special{pn 8}%
-%
-\special{pa 787 0}\special{pa 781 -99}\special{pa 763 -196}\special{pa 732 -290}\special{pa 690 -379}%
-\special{pa 637 -463}\special{pa 574 -539}\special{pa 502 -607}\special{pa 422 -665}%
-\special{pa 335 -712}\special{pa 243 -749}\special{pa 148 -773}\special{pa 49 -786}%
-\special{pa -49 -786}\special{pa -148 -773}\special{pa -243 -749}\special{pa -335 -712}%
-\special{pa -422 -665}\special{pa -502 -607}\special{pa -574 -539}\special{pa -637 -463}%
-\special{pa -690 -379}\special{pa -732 -290}\special{pa -763 -196}\special{pa -781 -99}%
-\special{pa -787 0}\special{pa -781 99}\special{pa -763 196}\special{pa -732 290}%
-\special{pa -690 379}\special{pa -637 463}\special{pa -574 539}\special{pa -502 607}%
-\special{pa -422 665}\special{pa -335 712}\special{pa -243 749}\special{pa -148 773}%
-\special{pa -49 786}\special{pa 49 786}\special{pa 148 773}\special{pa 243 749}\special{pa 335 712}%
-\special{pa 422 665}\special{pa 502 607}\special{pa 574 539}\special{pa 637 463}\special{pa 690 379}%
-\special{pa 732 290}\special{pa 763 196}\special{pa 781 99}\special{pa 787 0}%
-\special{fp}%
-\special{pa 1575 0}\special{pa 527 -585}%
-\special{fp}%
-\special{pn 1}%
-\special{pa 1062 -304}\special{pa 1055 -308}\special{pa 1047 -308}\special{pa 1040 -304}%
-\special{pa 1036 -297}\special{pa 1036 -288}\special{pa 1040 -281}\special{pa 1047 -277}%
-\special{pa 1055 -277}\special{pa 1062 -281}\special{pa 1066 -288}\special{pa 1066 -297}%
-\special{pa 1062 -304}\special{sh 1}\special{fp}%
-\special{pn 8}%
-\settowidth{\Width}{A}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{A}\settodepth{\Depth}{A}\setlength{\Height}{-\Height}%
-\put(4.0000,-0.0500){\hspace*{\Width}\raisebox{\Height}{A}}%
-%
-%
-\settowidth{\Width}{P}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{P}\settodepth{\Depth}{P}\setlength{\Height}{\Depth}%
-\put(1.3889,1.5357){\hspace*{\Width}\raisebox{\Height}{P}}%
-%
-%
-\settowidth{\Width}{Q}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{Q}\settodepth{\Depth}{Q}\setlength{\Height}{\Depth}%
-\put(2.7194,0.7929){\hspace*{\Width}\raisebox{\Height}{Q}}%
-%
-%
-\special{pa -1465 0}\special{pa 3984 0}%
-\special{fp}%
-\special{pa 0 1291}\special{pa 0 -1386}%
-\special{fp}%
-\settowidth{\Width}{$x$}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{$x$}\settodepth{\Depth}{$x$}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(10.1700,0.0000){\hspace*{\Width}\raisebox{\Height}{$x$}}%
-%
-%
-\settowidth{\Width}{$y$}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{$y$}\settodepth{\Depth}{$y$}\setlength{\Height}{\Depth}%
-\put(0.0000,3.5700){\hspace*{\Width}\raisebox{\Height}{$y$}}%
-%
-%
-\settowidth{\Width}{O}\setlength{\Width}{-1\Width}%
-\settoheight{\Height}{O}\settodepth{\Depth}{O}\setlength{\Height}{-\Height}%
-\put(-0.0500,-0.0500){\hspace*{\Width}\raisebox{\Height}{O}}%
-%
-%
-\end{picture}}%%
-\newframe%
-{\unitlength=1cm%
-\begin{picture}%
-( 14.34000, 7.30000)( -3.72000, -3.28000)%
-\special{pn 8}%
-%
-\special{pa 787 0}\special{pa 781 -99}\special{pa 763 -196}\special{pa 732 -290}\special{pa 690 -379}%
-\special{pa 637 -463}\special{pa 574 -539}\special{pa 502 -607}\special{pa 422 -665}%
-\special{pa 335 -712}\special{pa 243 -749}\special{pa 148 -773}\special{pa 49 -786}%
-\special{pa -49 -786}\special{pa -148 -773}\special{pa -243 -749}\special{pa -335 -712}%
-\special{pa -422 -665}\special{pa -502 -607}\special{pa -574 -539}\special{pa -637 -463}%
-\special{pa -690 -379}\special{pa -732 -290}\special{pa -763 -196}\special{pa -781 -99}%
-\special{pa -787 0}\special{pa -781 99}\special{pa -763 196}\special{pa -732 290}%
-\special{pa -690 379}\special{pa -637 463}\special{pa -574 539}\special{pa -502 607}%
-\special{pa -422 665}\special{pa -335 712}\special{pa -243 749}\special{pa -148 773}%
-\special{pa -49 786}\special{pa 49 786}\special{pa 148 773}\special{pa 243 749}\special{pa 335 712}%
-\special{pa 422 665}\special{pa 502 607}\special{pa 574 539}\special{pa 637 463}\special{pa 690 379}%
-\special{pa 732 290}\special{pa 763 196}\special{pa 781 99}\special{pa 787 0}%
-\special{fp}%
-\special{pa 1575 0}\special{pa 502 -606}%
-\special{fp}%
-\special{pn 1}%
-\special{pa 1050 -314}\special{pa 1043 -318}\special{pa 1034 -318}\special{pa 1027 -314}%
-\special{pa 1023 -307}\special{pa 1023 -299}\special{pa 1027 -292}\special{pa 1034 -288}%
-\special{pa 1043 -288}\special{pa 1050 -292}\special{pa 1054 -299}\special{pa 1054 -307}%
-\special{pa 1050 -314}\special{sh 1}\special{fp}%
-\special{pn 8}%
-\settowidth{\Width}{A}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{A}\settodepth{\Depth}{A}\setlength{\Height}{-\Height}%
-\put(4.0000,-0.0500){\hspace*{\Width}\raisebox{\Height}{A}}%
-%
-%
-\settowidth{\Width}{P}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{P}\settodepth{\Depth}{P}\setlength{\Height}{\Depth}%
-\put(1.3255,1.5905){\hspace*{\Width}\raisebox{\Height}{P}}%
-%
-%
-\settowidth{\Width}{Q}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{Q}\settodepth{\Depth}{Q}\setlength{\Height}{\Depth}%
-\put(2.6878,0.8202){\hspace*{\Width}\raisebox{\Height}{Q}}%
-%
-%
-\special{pa -1465 0}\special{pa 3984 0}%
-\special{fp}%
-\special{pa 0 1291}\special{pa 0 -1386}%
-\special{fp}%
-\settowidth{\Width}{$x$}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{$x$}\settodepth{\Depth}{$x$}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(10.1700,0.0000){\hspace*{\Width}\raisebox{\Height}{$x$}}%
-%
-%
-\settowidth{\Width}{$y$}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{$y$}\settodepth{\Depth}{$y$}\setlength{\Height}{\Depth}%
-\put(0.0000,3.5700){\hspace*{\Width}\raisebox{\Height}{$y$}}%
-%
-%
-\settowidth{\Width}{O}\setlength{\Width}{-1\Width}%
-\settoheight{\Height}{O}\settodepth{\Depth}{O}\setlength{\Height}{-\Height}%
-\put(-0.0500,-0.0500){\hspace*{\Width}\raisebox{\Height}{O}}%
-%
-%
-\end{picture}}%%
-\newframe%
-{\unitlength=1cm%
-\begin{picture}%
-( 14.34000, 7.30000)( -3.72000, -3.28000)%
-\special{pn 8}%
-%
-\special{pa 787 0}\special{pa 781 -99}\special{pa 763 -196}\special{pa 732 -290}\special{pa 690 -379}%
-\special{pa 637 -463}\special{pa 574 -539}\special{pa 502 -607}\special{pa 422 -665}%
-\special{pa 335 -712}\special{pa 243 -749}\special{pa 148 -773}\special{pa 49 -786}%
-\special{pa -49 -786}\special{pa -148 -773}\special{pa -243 -749}\special{pa -335 -712}%
-\special{pa -422 -665}\special{pa -502 -607}\special{pa -574 -539}\special{pa -637 -463}%
-\special{pa -690 -379}\special{pa -732 -290}\special{pa -763 -196}\special{pa -781 -99}%
-\special{pa -787 0}\special{pa -781 99}\special{pa -763 196}\special{pa -732 290}%
-\special{pa -690 379}\special{pa -637 463}\special{pa -574 539}\special{pa -502 607}%
-\special{pa -422 665}\special{pa -335 712}\special{pa -243 749}\special{pa -148 773}%
-\special{pa -49 786}\special{pa 49 786}\special{pa 148 773}\special{pa 243 749}\special{pa 335 712}%
-\special{pa 422 665}\special{pa 502 607}\special{pa 574 539}\special{pa 637 463}\special{pa 690 379}%
-\special{pa 732 290}\special{pa 763 196}\special{pa 781 99}\special{pa 787 0}%
-\special{fp}%
-\special{pa 1575 0}\special{pa 476 -627}%
-\special{fp}%
-\special{pn 1}%
-\special{pa 1037 -325}\special{pa 1030 -329}\special{pa 1022 -329}\special{pa 1014 -325}%
-\special{pa 1010 -318}\special{pa 1010 -309}\special{pa 1014 -302}\special{pa 1022 -298}%
-\special{pa 1030 -298}\special{pa 1037 -302}\special{pa 1041 -309}\special{pa 1041 -318}%
-\special{pa 1037 -325}\special{sh 1}\special{fp}%
-\special{pn 8}%
-\settowidth{\Width}{A}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{A}\settodepth{\Depth}{A}\setlength{\Height}{-\Height}%
-\put(4.0000,-0.0500){\hspace*{\Width}\raisebox{\Height}{A}}%
-%
-%
-\settowidth{\Width}{P}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{P}\settodepth{\Depth}{P}\setlength{\Height}{\Depth}%
-\put(1.2599,1.6425){\hspace*{\Width}\raisebox{\Height}{P}}%
-%
-%
-\settowidth{\Width}{Q}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{Q}\settodepth{\Depth}{Q}\setlength{\Height}{\Depth}%
-\put(2.6550,0.8463){\hspace*{\Width}\raisebox{\Height}{Q}}%
-%
-%
-\special{pa -1465 0}\special{pa 3984 0}%
-\special{fp}%
-\special{pa 0 1291}\special{pa 0 -1386}%
-\special{fp}%
-\settowidth{\Width}{$x$}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{$x$}\settodepth{\Depth}{$x$}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(10.1700,0.0000){\hspace*{\Width}\raisebox{\Height}{$x$}}%
-%
-%
-\settowidth{\Width}{$y$}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{$y$}\settodepth{\Depth}{$y$}\setlength{\Height}{\Depth}%
-\put(0.0000,3.5700){\hspace*{\Width}\raisebox{\Height}{$y$}}%
-%
-%
-\settowidth{\Width}{O}\setlength{\Width}{-1\Width}%
-\settoheight{\Height}{O}\settodepth{\Depth}{O}\setlength{\Height}{-\Height}%
-\put(-0.0500,-0.0500){\hspace*{\Width}\raisebox{\Height}{O}}%
-%
-%
-\end{picture}}%%
-\newframe%
-{\unitlength=1cm%
-\begin{picture}%
-( 14.34000, 7.30000)( -3.72000, -3.28000)%
-\special{pn 8}%
-%
-\special{pa 787 0}\special{pa 781 -99}\special{pa 763 -196}\special{pa 732 -290}\special{pa 690 -379}%
-\special{pa 637 -463}\special{pa 574 -539}\special{pa 502 -607}\special{pa 422 -665}%
-\special{pa 335 -712}\special{pa 243 -749}\special{pa 148 -773}\special{pa 49 -786}%
-\special{pa -49 -786}\special{pa -148 -773}\special{pa -243 -749}\special{pa -335 -712}%
-\special{pa -422 -665}\special{pa -502 -607}\special{pa -574 -539}\special{pa -637 -463}%
-\special{pa -690 -379}\special{pa -732 -290}\special{pa -763 -196}\special{pa -781 -99}%
-\special{pa -787 0}\special{pa -781 99}\special{pa -763 196}\special{pa -732 290}%
-\special{pa -690 379}\special{pa -637 463}\special{pa -574 539}\special{pa -502 607}%
-\special{pa -422 665}\special{pa -335 712}\special{pa -243 749}\special{pa -148 773}%
-\special{pa -49 786}\special{pa 49 786}\special{pa 148 773}\special{pa 243 749}\special{pa 335 712}%
-\special{pa 422 665}\special{pa 502 607}\special{pa 574 539}\special{pa 637 463}\special{pa 690 379}%
-\special{pa 732 290}\special{pa 763 196}\special{pa 781 99}\special{pa 787 0}%
-\special{fp}%
-\special{pa 1575 0}\special{pa 450 -646}%
-\special{fp}%
-\special{pn 1}%
-\special{pa 1023 -334}\special{pa 1016 -338}\special{pa 1008 -338}\special{pa 1001 -334}%
-\special{pa 997 -327}\special{pa 997 -319}\special{pa 1001 -312}\special{pa 1008 -308}%
-\special{pa 1016 -308}\special{pa 1023 -312}\special{pa 1027 -319}\special{pa 1027 -327}%
-\special{pa 1023 -334}\special{sh 1}\special{fp}%
-\special{pn 8}%
-\settowidth{\Width}{A}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{A}\settodepth{\Depth}{A}\setlength{\Height}{-\Height}%
-\put(4.0000,-0.0500){\hspace*{\Width}\raisebox{\Height}{A}}%
-%
-%
-\settowidth{\Width}{P}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{P}\settodepth{\Depth}{P}\setlength{\Height}{\Depth}%
-\put(1.1922,1.6917){\hspace*{\Width}\raisebox{\Height}{P}}%
-%
-%
-\settowidth{\Width}{Q}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{Q}\settodepth{\Depth}{Q}\setlength{\Height}{\Depth}%
-\put(2.6211,0.8709){\hspace*{\Width}\raisebox{\Height}{Q}}%
-%
-%
-\special{pa -1465 0}\special{pa 3984 0}%
-\special{fp}%
-\special{pa 0 1291}\special{pa 0 -1386}%
-\special{fp}%
-\settowidth{\Width}{$x$}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{$x$}\settodepth{\Depth}{$x$}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(10.1700,0.0000){\hspace*{\Width}\raisebox{\Height}{$x$}}%
-%
-%
-\settowidth{\Width}{$y$}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{$y$}\settodepth{\Depth}{$y$}\setlength{\Height}{\Depth}%
-\put(0.0000,3.5700){\hspace*{\Width}\raisebox{\Height}{$y$}}%
-%
-%
-\settowidth{\Width}{O}\setlength{\Width}{-1\Width}%
-\settoheight{\Height}{O}\settodepth{\Depth}{O}\setlength{\Height}{-\Height}%
-\put(-0.0500,-0.0500){\hspace*{\Width}\raisebox{\Height}{O}}%
-%
-%
-\end{picture}}%%
-\newframe%
-{\unitlength=1cm%
-\begin{picture}%
-( 14.34000, 7.30000)( -3.72000, -3.28000)%
-\special{pn 8}%
-%
-\special{pa 787 0}\special{pa 781 -99}\special{pa 763 -196}\special{pa 732 -290}\special{pa 690 -379}%
-\special{pa 637 -463}\special{pa 574 -539}\special{pa 502 -607}\special{pa 422 -665}%
-\special{pa 335 -712}\special{pa 243 -749}\special{pa 148 -773}\special{pa 49 -786}%
-\special{pa -49 -786}\special{pa -148 -773}\special{pa -243 -749}\special{pa -335 -712}%
-\special{pa -422 -665}\special{pa -502 -607}\special{pa -574 -539}\special{pa -637 -463}%
-\special{pa -690 -379}\special{pa -732 -290}\special{pa -763 -196}\special{pa -781 -99}%
-\special{pa -787 0}\special{pa -781 99}\special{pa -763 196}\special{pa -732 290}%
-\special{pa -690 379}\special{pa -637 463}\special{pa -574 539}\special{pa -502 607}%
-\special{pa -422 665}\special{pa -335 712}\special{pa -243 749}\special{pa -148 773}%
-\special{pa -49 786}\special{pa 49 786}\special{pa 148 773}\special{pa 243 749}\special{pa 335 712}%
-\special{pa 422 665}\special{pa 502 607}\special{pa 574 539}\special{pa 637 463}\special{pa 690 379}%
-\special{pa 732 290}\special{pa 763 196}\special{pa 781 99}\special{pa 787 0}%
-\special{fp}%
-\special{pa 1575 0}\special{pa 422 -665}%
-\special{fp}%
-\special{pn 1}%
-\special{pa 1010 -343}\special{pa 1003 -348}\special{pa 994 -348}\special{pa 987 -343}%
-\special{pa 983 -336}\special{pa 983 -328}\special{pa 987 -321}\special{pa 994 -317}%
-\special{pa 1003 -317}\special{pa 1010 -321}\special{pa 1014 -328}\special{pa 1014 -336}%
-\special{pa 1010 -343}\special{sh 1}\special{fp}%
-\special{pn 8}%
-\settowidth{\Width}{A}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{A}\settodepth{\Depth}{A}\setlength{\Height}{-\Height}%
-\put(4.0000,-0.0500){\hspace*{\Width}\raisebox{\Height}{A}}%
-%
-%
-\settowidth{\Width}{P}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{P}\settodepth{\Depth}{P}\setlength{\Height}{\Depth}%
-\put(1.1225,1.7381){\hspace*{\Width}\raisebox{\Height}{P}}%
-%
-%
-\settowidth{\Width}{Q}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{Q}\settodepth{\Depth}{Q}\setlength{\Height}{\Depth}%
-\put(2.5863,0.8941){\hspace*{\Width}\raisebox{\Height}{Q}}%
-%
-%
-\special{pa -1465 0}\special{pa 3984 0}%
-\special{fp}%
-\special{pa 0 1291}\special{pa 0 -1386}%
-\special{fp}%
-\settowidth{\Width}{$x$}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{$x$}\settodepth{\Depth}{$x$}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(10.1700,0.0000){\hspace*{\Width}\raisebox{\Height}{$x$}}%
-%
-%
-\settowidth{\Width}{$y$}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{$y$}\settodepth{\Depth}{$y$}\setlength{\Height}{\Depth}%
-\put(0.0000,3.5700){\hspace*{\Width}\raisebox{\Height}{$y$}}%
-%
-%
-\settowidth{\Width}{O}\setlength{\Width}{-1\Width}%
-\settoheight{\Height}{O}\settodepth{\Depth}{O}\setlength{\Height}{-\Height}%
-\put(-0.0500,-0.0500){\hspace*{\Width}\raisebox{\Height}{O}}%
-%
-%
-\end{picture}}%%
-\newframe%
-{\unitlength=1cm%
-\begin{picture}%
-( 14.34000, 7.30000)( -3.72000, -3.28000)%
-\special{pn 8}%
-%
-\special{pa 787 0}\special{pa 781 -99}\special{pa 763 -196}\special{pa 732 -290}\special{pa 690 -379}%
-\special{pa 637 -463}\special{pa 574 -539}\special{pa 502 -607}\special{pa 422 -665}%
-\special{pa 335 -712}\special{pa 243 -749}\special{pa 148 -773}\special{pa 49 -786}%
-\special{pa -49 -786}\special{pa -148 -773}\special{pa -243 -749}\special{pa -335 -712}%
-\special{pa -422 -665}\special{pa -502 -607}\special{pa -574 -539}\special{pa -637 -463}%
-\special{pa -690 -379}\special{pa -732 -290}\special{pa -763 -196}\special{pa -781 -99}%
-\special{pa -787 0}\special{pa -781 99}\special{pa -763 196}\special{pa -732 290}%
-\special{pa -690 379}\special{pa -637 463}\special{pa -574 539}\special{pa -502 607}%
-\special{pa -422 665}\special{pa -335 712}\special{pa -243 749}\special{pa -148 773}%
-\special{pa -49 786}\special{pa 49 786}\special{pa 148 773}\special{pa 243 749}\special{pa 335 712}%
-\special{pa 422 665}\special{pa 502 607}\special{pa 574 539}\special{pa 637 463}\special{pa 690 379}%
-\special{pa 732 290}\special{pa 763 196}\special{pa 781 99}\special{pa 787 0}%
-\special{fp}%
-\special{pa 1575 0}\special{pa 394 -682}%
-\special{fp}%
-\special{pn 1}%
-\special{pa 996 -352}\special{pa 989 -356}\special{pa 980 -356}\special{pa 973 -352}%
-\special{pa 969 -345}\special{pa 969 -337}\special{pa 973 -330}\special{pa 980 -326}%
-\special{pa 989 -326}\special{pa 996 -330}\special{pa 1000 -337}\special{pa 1000 -345}%
-\special{pa 996 -352}\special{sh 1}\special{fp}%
-\special{pn 8}%
-\settowidth{\Width}{A}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{A}\settodepth{\Depth}{A}\setlength{\Height}{-\Height}%
-\put(4.0000,-0.0500){\hspace*{\Width}\raisebox{\Height}{A}}%
-%
-%
-\settowidth{\Width}{P}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{P}\settodepth{\Depth}{P}\setlength{\Height}{\Depth}%
-\put(1.0509,1.7815){\hspace*{\Width}\raisebox{\Height}{P}}%
-%
-%
-\settowidth{\Width}{Q}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{Q}\settodepth{\Depth}{Q}\setlength{\Height}{\Depth}%
-\put(2.5505,0.9158){\hspace*{\Width}\raisebox{\Height}{Q}}%
-%
-%
-\special{pa -1465 0}\special{pa 3984 0}%
-\special{fp}%
-\special{pa 0 1291}\special{pa 0 -1386}%
-\special{fp}%
-\settowidth{\Width}{$x$}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{$x$}\settodepth{\Depth}{$x$}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(10.1700,0.0000){\hspace*{\Width}\raisebox{\Height}{$x$}}%
-%
-%
-\settowidth{\Width}{$y$}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{$y$}\settodepth{\Depth}{$y$}\setlength{\Height}{\Depth}%
-\put(0.0000,3.5700){\hspace*{\Width}\raisebox{\Height}{$y$}}%
-%
-%
-\settowidth{\Width}{O}\setlength{\Width}{-1\Width}%
-\settoheight{\Height}{O}\settodepth{\Depth}{O}\setlength{\Height}{-\Height}%
-\put(-0.0500,-0.0500){\hspace*{\Width}\raisebox{\Height}{O}}%
-%
-%
-\end{picture}}%%
-\newframe%
-{\unitlength=1cm%
-\begin{picture}%
-( 14.34000, 7.30000)( -3.72000, -3.28000)%
-\special{pn 8}%
-%
-\special{pa 787 0}\special{pa 781 -99}\special{pa 763 -196}\special{pa 732 -290}\special{pa 690 -379}%
-\special{pa 637 -463}\special{pa 574 -539}\special{pa 502 -607}\special{pa 422 -665}%
-\special{pa 335 -712}\special{pa 243 -749}\special{pa 148 -773}\special{pa 49 -786}%
-\special{pa -49 -786}\special{pa -148 -773}\special{pa -243 -749}\special{pa -335 -712}%
-\special{pa -422 -665}\special{pa -502 -607}\special{pa -574 -539}\special{pa -637 -463}%
-\special{pa -690 -379}\special{pa -732 -290}\special{pa -763 -196}\special{pa -781 -99}%
-\special{pa -787 0}\special{pa -781 99}\special{pa -763 196}\special{pa -732 290}%
-\special{pa -690 379}\special{pa -637 463}\special{pa -574 539}\special{pa -502 607}%
-\special{pa -422 665}\special{pa -335 712}\special{pa -243 749}\special{pa -148 773}%
-\special{pa -49 786}\special{pa 49 786}\special{pa 148 773}\special{pa 243 749}\special{pa 335 712}%
-\special{pa 422 665}\special{pa 502 607}\special{pa 574 539}\special{pa 637 463}\special{pa 690 379}%
-\special{pa 732 290}\special{pa 763 196}\special{pa 781 99}\special{pa 787 0}%
-\special{fp}%
-\special{pa 1575 0}\special{pa 365 -698}%
-\special{fp}%
-\special{pn 1}%
-\special{pa 981 -360}\special{pa 974 -364}\special{pa 966 -364}\special{pa 959 -360}%
-\special{pa 955 -353}\special{pa 955 -345}\special{pa 959 -338}\special{pa 966 -334}%
-\special{pa 974 -334}\special{pa 981 -338}\special{pa 985 -345}\special{pa 985 -353}%
-\special{pa 981 -360}\special{sh 1}\special{fp}%
-\special{pn 8}%
-\settowidth{\Width}{A}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{A}\settodepth{\Depth}{A}\setlength{\Height}{-\Height}%
-\put(4.0000,-0.0500){\hspace*{\Width}\raisebox{\Height}{A}}%
-%
-%
-\settowidth{\Width}{P}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{P}\settodepth{\Depth}{P}\setlength{\Height}{\Depth}%
-\put(0.9776,1.8219){\hspace*{\Width}\raisebox{\Height}{P}}%
-%
-%
-\settowidth{\Width}{Q}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{Q}\settodepth{\Depth}{Q}\setlength{\Height}{\Depth}%
-\put(2.5138,0.9360){\hspace*{\Width}\raisebox{\Height}{Q}}%
-%
-%
-\special{pa -1465 0}\special{pa 3984 0}%
-\special{fp}%
-\special{pa 0 1291}\special{pa 0 -1386}%
-\special{fp}%
-\settowidth{\Width}{$x$}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{$x$}\settodepth{\Depth}{$x$}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(10.1700,0.0000){\hspace*{\Width}\raisebox{\Height}{$x$}}%
-%
-%
-\settowidth{\Width}{$y$}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{$y$}\settodepth{\Depth}{$y$}\setlength{\Height}{\Depth}%
-\put(0.0000,3.5700){\hspace*{\Width}\raisebox{\Height}{$y$}}%
-%
-%
-\settowidth{\Width}{O}\setlength{\Width}{-1\Width}%
-\settoheight{\Height}{O}\settodepth{\Depth}{O}\setlength{\Height}{-\Height}%
-\put(-0.0500,-0.0500){\hspace*{\Width}\raisebox{\Height}{O}}%
-%
-%
-\end{picture}}%%
-\newframe%
-{\unitlength=1cm%
-\begin{picture}%
-( 14.34000, 7.30000)( -3.72000, -3.28000)%
-\special{pn 8}%
-%
-\special{pa 787 0}\special{pa 781 -99}\special{pa 763 -196}\special{pa 732 -290}\special{pa 690 -379}%
-\special{pa 637 -463}\special{pa 574 -539}\special{pa 502 -607}\special{pa 422 -665}%
-\special{pa 335 -712}\special{pa 243 -749}\special{pa 148 -773}\special{pa 49 -786}%
-\special{pa -49 -786}\special{pa -148 -773}\special{pa -243 -749}\special{pa -335 -712}%
-\special{pa -422 -665}\special{pa -502 -607}\special{pa -574 -539}\special{pa -637 -463}%
-\special{pa -690 -379}\special{pa -732 -290}\special{pa -763 -196}\special{pa -781 -99}%
-\special{pa -787 0}\special{pa -781 99}\special{pa -763 196}\special{pa -732 290}%
-\special{pa -690 379}\special{pa -637 463}\special{pa -574 539}\special{pa -502 607}%
-\special{pa -422 665}\special{pa -335 712}\special{pa -243 749}\special{pa -148 773}%
-\special{pa -49 786}\special{pa 49 786}\special{pa 148 773}\special{pa 243 749}\special{pa 335 712}%
-\special{pa 422 665}\special{pa 502 607}\special{pa 574 539}\special{pa 637 463}\special{pa 690 379}%
-\special{pa 732 290}\special{pa 763 196}\special{pa 781 99}\special{pa 787 0}%
-\special{fp}%
-\special{pa 1575 0}\special{pa 336 -712}%
-\special{fp}%
-\special{pn 1}%
-\special{pa 966 -367}\special{pa 959 -371}\special{pa 951 -371}\special{pa 944 -367}%
-\special{pa 940 -360}\special{pa 940 -352}\special{pa 944 -345}\special{pa 951 -341}%
-\special{pa 959 -341}\special{pa 966 -345}\special{pa 970 -352}\special{pa 970 -360}%
-\special{pa 966 -367}\special{sh 1}\special{fp}%
-\special{pn 8}%
-\settowidth{\Width}{A}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{A}\settodepth{\Depth}{A}\setlength{\Height}{-\Height}%
-\put(4.0000,-0.0500){\hspace*{\Width}\raisebox{\Height}{A}}%
-%
-%
-\settowidth{\Width}{P}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{P}\settodepth{\Depth}{P}\setlength{\Height}{\Depth}%
-\put(0.9026,1.8592){\hspace*{\Width}\raisebox{\Height}{P}}%
-%
-%
-\settowidth{\Width}{Q}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{Q}\settodepth{\Depth}{Q}\setlength{\Height}{\Depth}%
-\put(2.4763,0.9546){\hspace*{\Width}\raisebox{\Height}{Q}}%
-%
-%
-\special{pa -1465 0}\special{pa 3984 0}%
-\special{fp}%
-\special{pa 0 1291}\special{pa 0 -1386}%
-\special{fp}%
-\settowidth{\Width}{$x$}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{$x$}\settodepth{\Depth}{$x$}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(10.1700,0.0000){\hspace*{\Width}\raisebox{\Height}{$x$}}%
-%
-%
-\settowidth{\Width}{$y$}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{$y$}\settodepth{\Depth}{$y$}\setlength{\Height}{\Depth}%
-\put(0.0000,3.5700){\hspace*{\Width}\raisebox{\Height}{$y$}}%
-%
-%
-\settowidth{\Width}{O}\setlength{\Width}{-1\Width}%
-\settoheight{\Height}{O}\settodepth{\Depth}{O}\setlength{\Height}{-\Height}%
-\put(-0.0500,-0.0500){\hspace*{\Width}\raisebox{\Height}{O}}%
-%
-%
-\end{picture}}%%
-\newframe%
-{\unitlength=1cm%
-\begin{picture}%
-( 14.34000, 7.30000)( -3.72000, -3.28000)%
-\special{pn 8}%
-%
-\special{pa 787 0}\special{pa 781 -99}\special{pa 763 -196}\special{pa 732 -290}\special{pa 690 -379}%
-\special{pa 637 -463}\special{pa 574 -539}\special{pa 502 -607}\special{pa 422 -665}%
-\special{pa 335 -712}\special{pa 243 -749}\special{pa 148 -773}\special{pa 49 -786}%
-\special{pa -49 -786}\special{pa -148 -773}\special{pa -243 -749}\special{pa -335 -712}%
-\special{pa -422 -665}\special{pa -502 -607}\special{pa -574 -539}\special{pa -637 -463}%
-\special{pa -690 -379}\special{pa -732 -290}\special{pa -763 -196}\special{pa -781 -99}%
-\special{pa -787 0}\special{pa -781 99}\special{pa -763 196}\special{pa -732 290}%
-\special{pa -690 379}\special{pa -637 463}\special{pa -574 539}\special{pa -502 607}%
-\special{pa -422 665}\special{pa -335 712}\special{pa -243 749}\special{pa -148 773}%
-\special{pa -49 786}\special{pa 49 786}\special{pa 148 773}\special{pa 243 749}\special{pa 335 712}%
-\special{pa 422 665}\special{pa 502 607}\special{pa 574 539}\special{pa 637 463}\special{pa 690 379}%
-\special{pa 732 290}\special{pa 763 196}\special{pa 781 99}\special{pa 787 0}%
-\special{fp}%
-\special{pa 1575 0}\special{pa 306 -726}%
-\special{fp}%
-\special{pn 1}%
-\special{pa 951 -374}\special{pa 944 -378}\special{pa 936 -378}\special{pa 929 -374}%
-\special{pa 925 -367}\special{pa 925 -359}\special{pa 929 -352}\special{pa 936 -348}%
-\special{pa 944 -348}\special{pa 951 -352}\special{pa 955 -359}\special{pa 955 -367}%
-\special{pa 951 -374}\special{sh 1}\special{fp}%
-\special{pn 8}%
-\settowidth{\Width}{A}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{A}\settodepth{\Depth}{A}\setlength{\Height}{-\Height}%
-\put(4.0000,-0.0500){\hspace*{\Width}\raisebox{\Height}{A}}%
-%
-%
-\settowidth{\Width}{P}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{P}\settodepth{\Depth}{P}\setlength{\Height}{\Depth}%
-\put(0.8261,1.8933){\hspace*{\Width}\raisebox{\Height}{P}}%
-%
-%
-\settowidth{\Width}{Q}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{Q}\settodepth{\Depth}{Q}\setlength{\Height}{\Depth}%
-\put(2.4381,0.9716){\hspace*{\Width}\raisebox{\Height}{Q}}%
-%
-%
-\special{pa -1465 0}\special{pa 3984 0}%
-\special{fp}%
-\special{pa 0 1291}\special{pa 0 -1386}%
-\special{fp}%
-\settowidth{\Width}{$x$}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{$x$}\settodepth{\Depth}{$x$}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(10.1700,0.0000){\hspace*{\Width}\raisebox{\Height}{$x$}}%
-%
-%
-\settowidth{\Width}{$y$}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{$y$}\settodepth{\Depth}{$y$}\setlength{\Height}{\Depth}%
-\put(0.0000,3.5700){\hspace*{\Width}\raisebox{\Height}{$y$}}%
-%
-%
-\settowidth{\Width}{O}\setlength{\Width}{-1\Width}%
-\settoheight{\Height}{O}\settodepth{\Depth}{O}\setlength{\Height}{-\Height}%
-\put(-0.0500,-0.0500){\hspace*{\Width}\raisebox{\Height}{O}}%
-%
-%
-\end{picture}}%%
-\newframe%
-{\unitlength=1cm%
-\begin{picture}%
-( 14.34000, 7.30000)( -3.72000, -3.28000)%
-\special{pn 8}%
-%
-\special{pa 787 0}\special{pa 781 -99}\special{pa 763 -196}\special{pa 732 -290}\special{pa 690 -379}%
-\special{pa 637 -463}\special{pa 574 -539}\special{pa 502 -607}\special{pa 422 -665}%
-\special{pa 335 -712}\special{pa 243 -749}\special{pa 148 -773}\special{pa 49 -786}%
-\special{pa -49 -786}\special{pa -148 -773}\special{pa -243 -749}\special{pa -335 -712}%
-\special{pa -422 -665}\special{pa -502 -607}\special{pa -574 -539}\special{pa -637 -463}%
-\special{pa -690 -379}\special{pa -732 -290}\special{pa -763 -196}\special{pa -781 -99}%
-\special{pa -787 0}\special{pa -781 99}\special{pa -763 196}\special{pa -732 290}%
-\special{pa -690 379}\special{pa -637 463}\special{pa -574 539}\special{pa -502 607}%
-\special{pa -422 665}\special{pa -335 712}\special{pa -243 749}\special{pa -148 773}%
-\special{pa -49 786}\special{pa 49 786}\special{pa 148 773}\special{pa 243 749}\special{pa 335 712}%
-\special{pa 422 665}\special{pa 502 607}\special{pa 574 539}\special{pa 637 463}\special{pa 690 379}%
-\special{pa 732 290}\special{pa 763 196}\special{pa 781 99}\special{pa 787 0}%
-\special{fp}%
-\special{pa 1575 0}\special{pa 275 -738}%
-\special{fp}%
-\special{pn 1}%
-\special{pa 936 -380}\special{pa 929 -384}\special{pa 921 -384}\special{pa 914 -380}%
-\special{pa 910 -373}\special{pa 910 -365}\special{pa 914 -358}\special{pa 921 -354}%
-\special{pa 929 -354}\special{pa 936 -358}\special{pa 940 -365}\special{pa 940 -373}%
-\special{pa 936 -380}\special{sh 1}\special{fp}%
-\special{pn 8}%
-\settowidth{\Width}{A}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{A}\settodepth{\Depth}{A}\setlength{\Height}{-\Height}%
-\put(4.0000,-0.0500){\hspace*{\Width}\raisebox{\Height}{A}}%
-%
-%
-\settowidth{\Width}{P}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{P}\settodepth{\Depth}{P}\setlength{\Height}{\Depth}%
-\put(0.7483,1.9241){\hspace*{\Width}\raisebox{\Height}{P}}%
-%
-%
-\settowidth{\Width}{Q}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{Q}\settodepth{\Depth}{Q}\setlength{\Height}{\Depth}%
-\put(2.3991,0.9871){\hspace*{\Width}\raisebox{\Height}{Q}}%
-%
-%
-\special{pa -1465 0}\special{pa 3984 0}%
-\special{fp}%
-\special{pa 0 1291}\special{pa 0 -1386}%
-\special{fp}%
-\settowidth{\Width}{$x$}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{$x$}\settodepth{\Depth}{$x$}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(10.1700,0.0000){\hspace*{\Width}\raisebox{\Height}{$x$}}%
-%
-%
-\settowidth{\Width}{$y$}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{$y$}\settodepth{\Depth}{$y$}\setlength{\Height}{\Depth}%
-\put(0.0000,3.5700){\hspace*{\Width}\raisebox{\Height}{$y$}}%
-%
-%
-\settowidth{\Width}{O}\setlength{\Width}{-1\Width}%
-\settoheight{\Height}{O}\settodepth{\Depth}{O}\setlength{\Height}{-\Height}%
-\put(-0.0500,-0.0500){\hspace*{\Width}\raisebox{\Height}{O}}%
-%
-%
-\end{picture}}%%
-\newframe%
-{\unitlength=1cm%
-\begin{picture}%
-( 14.34000, 7.30000)( -3.72000, -3.28000)%
-\special{pn 8}%
-%
-\special{pa 787 0}\special{pa 781 -99}\special{pa 763 -196}\special{pa 732 -290}\special{pa 690 -379}%
-\special{pa 637 -463}\special{pa 574 -539}\special{pa 502 -607}\special{pa 422 -665}%
-\special{pa 335 -712}\special{pa 243 -749}\special{pa 148 -773}\special{pa 49 -786}%
-\special{pa -49 -786}\special{pa -148 -773}\special{pa -243 -749}\special{pa -335 -712}%
-\special{pa -422 -665}\special{pa -502 -607}\special{pa -574 -539}\special{pa -637 -463}%
-\special{pa -690 -379}\special{pa -732 -290}\special{pa -763 -196}\special{pa -781 -99}%
-\special{pa -787 0}\special{pa -781 99}\special{pa -763 196}\special{pa -732 290}%
-\special{pa -690 379}\special{pa -637 463}\special{pa -574 539}\special{pa -502 607}%
-\special{pa -422 665}\special{pa -335 712}\special{pa -243 749}\special{pa -148 773}%
-\special{pa -49 786}\special{pa 49 786}\special{pa 148 773}\special{pa 243 749}\special{pa 335 712}%
-\special{pa 422 665}\special{pa 502 607}\special{pa 574 539}\special{pa 637 463}\special{pa 690 379}%
-\special{pa 732 290}\special{pa 763 196}\special{pa 781 99}\special{pa 787 0}%
-\special{fp}%
-\special{pa 1575 0}\special{pa 244 -749}%
-\special{fp}%
-\special{pn 1}%
-\special{pa 920 -385}\special{pa 913 -390}\special{pa 905 -390}\special{pa 898 -385}%
-\special{pa 894 -378}\special{pa 894 -370}\special{pa 898 -363}\special{pa 905 -359}%
-\special{pa 913 -359}\special{pa 920 -363}\special{pa 925 -370}\special{pa 925 -378}%
-\special{pa 920 -385}\special{sh 1}\special{fp}%
-\special{pn 8}%
-\settowidth{\Width}{A}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{A}\settodepth{\Depth}{A}\setlength{\Height}{-\Height}%
-\put(4.0000,-0.0500){\hspace*{\Width}\raisebox{\Height}{A}}%
-%
-%
-\settowidth{\Width}{P}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{P}\settodepth{\Depth}{P}\setlength{\Height}{\Depth}%
-\put(0.6693,1.9517){\hspace*{\Width}\raisebox{\Height}{P}}%
-%
-%
-\settowidth{\Width}{Q}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{Q}\settodepth{\Depth}{Q}\setlength{\Height}{\Depth}%
-\put(2.3596,1.0009){\hspace*{\Width}\raisebox{\Height}{Q}}%
-%
-%
-\special{pa -1465 0}\special{pa 3984 0}%
-\special{fp}%
-\special{pa 0 1291}\special{pa 0 -1386}%
-\special{fp}%
-\settowidth{\Width}{$x$}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{$x$}\settodepth{\Depth}{$x$}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(10.1700,0.0000){\hspace*{\Width}\raisebox{\Height}{$x$}}%
-%
-%
-\settowidth{\Width}{$y$}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{$y$}\settodepth{\Depth}{$y$}\setlength{\Height}{\Depth}%
-\put(0.0000,3.5700){\hspace*{\Width}\raisebox{\Height}{$y$}}%
-%
-%
-\settowidth{\Width}{O}\setlength{\Width}{-1\Width}%
-\settoheight{\Height}{O}\settodepth{\Depth}{O}\setlength{\Height}{-\Height}%
-\put(-0.0500,-0.0500){\hspace*{\Width}\raisebox{\Height}{O}}%
-%
-%
-\end{picture}}%%
-\newframe%
-{\unitlength=1cm%
-\begin{picture}%
-( 14.34000, 7.30000)( -3.72000, -3.28000)%
-\special{pn 8}%
-%
-\special{pa 787 0}\special{pa 781 -99}\special{pa 763 -196}\special{pa 732 -290}\special{pa 690 -379}%
-\special{pa 637 -463}\special{pa 574 -539}\special{pa 502 -607}\special{pa 422 -665}%
-\special{pa 335 -712}\special{pa 243 -749}\special{pa 148 -773}\special{pa 49 -786}%
-\special{pa -49 -786}\special{pa -148 -773}\special{pa -243 -749}\special{pa -335 -712}%
-\special{pa -422 -665}\special{pa -502 -607}\special{pa -574 -539}\special{pa -637 -463}%
-\special{pa -690 -379}\special{pa -732 -290}\special{pa -763 -196}\special{pa -781 -99}%
-\special{pa -787 0}\special{pa -781 99}\special{pa -763 196}\special{pa -732 290}%
-\special{pa -690 379}\special{pa -637 463}\special{pa -574 539}\special{pa -502 607}%
-\special{pa -422 665}\special{pa -335 712}\special{pa -243 749}\special{pa -148 773}%
-\special{pa -49 786}\special{pa 49 786}\special{pa 148 773}\special{pa 243 749}\special{pa 335 712}%
-\special{pa 422 665}\special{pa 502 607}\special{pa 574 539}\special{pa 637 463}\special{pa 690 379}%
-\special{pa 732 290}\special{pa 763 196}\special{pa 781 99}\special{pa 787 0}%
-\special{fp}%
-\special{pa 1575 0}\special{pa 212 -758}%
-\special{fp}%
-\special{pn 1}%
-\special{pa 905 -390}\special{pa 898 -394}\special{pa 889 -394}\special{pa 882 -390}%
-\special{pa 878 -383}\special{pa 878 -375}\special{pa 882 -368}\special{pa 889 -364}%
-\special{pa 898 -364}\special{pa 905 -368}\special{pa 909 -375}\special{pa 909 -383}%
-\special{pa 905 -390}\special{sh 1}\special{fp}%
-\special{pn 8}%
-\settowidth{\Width}{A}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{A}\settodepth{\Depth}{A}\setlength{\Height}{-\Height}%
-\put(4.0000,-0.0500){\hspace*{\Width}\raisebox{\Height}{A}}%
-%
-%
-\settowidth{\Width}{P}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{P}\settodepth{\Depth}{P}\setlength{\Height}{\Depth}%
-\put(0.5891,1.9760){\hspace*{\Width}\raisebox{\Height}{P}}%
-%
-%
-\settowidth{\Width}{Q}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{Q}\settodepth{\Depth}{Q}\setlength{\Height}{\Depth}%
-\put(2.3196,1.0130){\hspace*{\Width}\raisebox{\Height}{Q}}%
-%
-%
-\special{pa -1465 0}\special{pa 3984 0}%
-\special{fp}%
-\special{pa 0 1291}\special{pa 0 -1386}%
-\special{fp}%
-\settowidth{\Width}{$x$}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{$x$}\settodepth{\Depth}{$x$}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(10.1700,0.0000){\hspace*{\Width}\raisebox{\Height}{$x$}}%
-%
-%
-\settowidth{\Width}{$y$}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{$y$}\settodepth{\Depth}{$y$}\setlength{\Height}{\Depth}%
-\put(0.0000,3.5700){\hspace*{\Width}\raisebox{\Height}{$y$}}%
-%
-%
-\settowidth{\Width}{O}\setlength{\Width}{-1\Width}%
-\settoheight{\Height}{O}\settodepth{\Depth}{O}\setlength{\Height}{-\Height}%
-\put(-0.0500,-0.0500){\hspace*{\Width}\raisebox{\Height}{O}}%
-%
-%
-\end{picture}}%%
-\newframe%
-{\unitlength=1cm%
-\begin{picture}%
-( 14.34000, 7.30000)( -3.72000, -3.28000)%
-\special{pn 8}%
-%
-\special{pa 787 0}\special{pa 781 -99}\special{pa 763 -196}\special{pa 732 -290}\special{pa 690 -379}%
-\special{pa 637 -463}\special{pa 574 -539}\special{pa 502 -607}\special{pa 422 -665}%
-\special{pa 335 -712}\special{pa 243 -749}\special{pa 148 -773}\special{pa 49 -786}%
-\special{pa -49 -786}\special{pa -148 -773}\special{pa -243 -749}\special{pa -335 -712}%
-\special{pa -422 -665}\special{pa -502 -607}\special{pa -574 -539}\special{pa -637 -463}%
-\special{pa -690 -379}\special{pa -732 -290}\special{pa -763 -196}\special{pa -781 -99}%
-\special{pa -787 0}\special{pa -781 99}\special{pa -763 196}\special{pa -732 290}%
-\special{pa -690 379}\special{pa -637 463}\special{pa -574 539}\special{pa -502 607}%
-\special{pa -422 665}\special{pa -335 712}\special{pa -243 749}\special{pa -148 773}%
-\special{pa -49 786}\special{pa 49 786}\special{pa 148 773}\special{pa 243 749}\special{pa 335 712}%
-\special{pa 422 665}\special{pa 502 607}\special{pa 574 539}\special{pa 637 463}\special{pa 690 379}%
-\special{pa 732 290}\special{pa 763 196}\special{pa 781 99}\special{pa 787 0}%
-\special{fp}%
-\special{pa 1575 0}\special{pa 180 -766}%
-\special{fp}%
-\special{pn 1}%
-\special{pa 889 -394}\special{pa 882 -398}\special{pa 873 -398}\special{pa 866 -394}%
-\special{pa 862 -387}\special{pa 862 -379}\special{pa 866 -372}\special{pa 873 -368}%
-\special{pa 882 -368}\special{pa 889 -372}\special{pa 893 -379}\special{pa 893 -387}%
-\special{pa 889 -394}\special{sh 1}\special{fp}%
-\special{pn 8}%
-\settowidth{\Width}{A}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{A}\settodepth{\Depth}{A}\setlength{\Height}{-\Height}%
-\put(4.0000,-0.0500){\hspace*{\Width}\raisebox{\Height}{A}}%
-%
-%
-\settowidth{\Width}{P}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{P}\settodepth{\Depth}{P}\setlength{\Height}{\Depth}%
-\put(0.5080,1.9969){\hspace*{\Width}\raisebox{\Height}{P}}%
-%
-%
-\settowidth{\Width}{Q}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{Q}\settodepth{\Depth}{Q}\setlength{\Height}{\Depth}%
-\put(2.2790,1.0234){\hspace*{\Width}\raisebox{\Height}{Q}}%
-%
-%
-\special{pa -1465 0}\special{pa 3984 0}%
-\special{fp}%
-\special{pa 0 1291}\special{pa 0 -1386}%
-\special{fp}%
-\settowidth{\Width}{$x$}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{$x$}\settodepth{\Depth}{$x$}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(10.1700,0.0000){\hspace*{\Width}\raisebox{\Height}{$x$}}%
-%
-%
-\settowidth{\Width}{$y$}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{$y$}\settodepth{\Depth}{$y$}\setlength{\Height}{\Depth}%
-\put(0.0000,3.5700){\hspace*{\Width}\raisebox{\Height}{$y$}}%
-%
-%
-\settowidth{\Width}{O}\setlength{\Width}{-1\Width}%
-\settoheight{\Height}{O}\settodepth{\Depth}{O}\setlength{\Height}{-\Height}%
-\put(-0.0500,-0.0500){\hspace*{\Width}\raisebox{\Height}{O}}%
-%
-%
-\end{picture}}%%
-\newframe%
-{\unitlength=1cm%
-\begin{picture}%
-( 14.34000, 7.30000)( -3.72000, -3.28000)%
-\special{pn 8}%
-%
-\special{pa 787 0}\special{pa 781 -99}\special{pa 763 -196}\special{pa 732 -290}\special{pa 690 -379}%
-\special{pa 637 -463}\special{pa 574 -539}\special{pa 502 -607}\special{pa 422 -665}%
-\special{pa 335 -712}\special{pa 243 -749}\special{pa 148 -773}\special{pa 49 -786}%
-\special{pa -49 -786}\special{pa -148 -773}\special{pa -243 -749}\special{pa -335 -712}%
-\special{pa -422 -665}\special{pa -502 -607}\special{pa -574 -539}\special{pa -637 -463}%
-\special{pa -690 -379}\special{pa -732 -290}\special{pa -763 -196}\special{pa -781 -99}%
-\special{pa -787 0}\special{pa -781 99}\special{pa -763 196}\special{pa -732 290}%
-\special{pa -690 379}\special{pa -637 463}\special{pa -574 539}\special{pa -502 607}%
-\special{pa -422 665}\special{pa -335 712}\special{pa -243 749}\special{pa -148 773}%
-\special{pa -49 786}\special{pa 49 786}\special{pa 148 773}\special{pa 243 749}\special{pa 335 712}%
-\special{pa 422 665}\special{pa 502 607}\special{pa 574 539}\special{pa 637 463}\special{pa 690 379}%
-\special{pa 732 290}\special{pa 763 196}\special{pa 781 99}\special{pa 787 0}%
-\special{fp}%
-\special{pa 1575 0}\special{pa 148 -773}%
-\special{fp}%
-\special{pn 1}%
-\special{pa 873 -398}\special{pa 866 -402}\special{pa 857 -402}\special{pa 850 -398}%
-\special{pa 846 -391}\special{pa 846 -383}\special{pa 850 -376}\special{pa 857 -371}%
-\special{pa 866 -371}\special{pa 873 -376}\special{pa 877 -383}\special{pa 877 -391}%
-\special{pa 873 -398}\special{sh 1}\special{fp}%
-\special{pn 8}%
-\settowidth{\Width}{A}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{A}\settodepth{\Depth}{A}\setlength{\Height}{-\Height}%
-\put(4.0000,-0.0500){\hspace*{\Width}\raisebox{\Height}{A}}%
-%
-%
-\settowidth{\Width}{P}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{P}\settodepth{\Depth}{P}\setlength{\Height}{\Depth}%
-\put(0.4261,2.0143){\hspace*{\Width}\raisebox{\Height}{P}}%
-%
-%
-\settowidth{\Width}{Q}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{Q}\settodepth{\Depth}{Q}\setlength{\Height}{\Depth}%
-\put(2.2381,1.0322){\hspace*{\Width}\raisebox{\Height}{Q}}%
-%
-%
-\special{pa -1465 0}\special{pa 3984 0}%
-\special{fp}%
-\special{pa 0 1291}\special{pa 0 -1386}%
-\special{fp}%
-\settowidth{\Width}{$x$}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{$x$}\settodepth{\Depth}{$x$}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(10.1700,0.0000){\hspace*{\Width}\raisebox{\Height}{$x$}}%
-%
-%
-\settowidth{\Width}{$y$}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{$y$}\settodepth{\Depth}{$y$}\setlength{\Height}{\Depth}%
-\put(0.0000,3.5700){\hspace*{\Width}\raisebox{\Height}{$y$}}%
-%
-%
-\settowidth{\Width}{O}\setlength{\Width}{-1\Width}%
-\settoheight{\Height}{O}\settodepth{\Depth}{O}\setlength{\Height}{-\Height}%
-\put(-0.0500,-0.0500){\hspace*{\Width}\raisebox{\Height}{O}}%
-%
-%
-\end{picture}}%%
-\newframe%
-{\unitlength=1cm%
-\begin{picture}%
-( 14.34000, 7.30000)( -3.72000, -3.28000)%
-\special{pn 8}%
-%
-\special{pa 787 0}\special{pa 781 -99}\special{pa 763 -196}\special{pa 732 -290}\special{pa 690 -379}%
-\special{pa 637 -463}\special{pa 574 -539}\special{pa 502 -607}\special{pa 422 -665}%
-\special{pa 335 -712}\special{pa 243 -749}\special{pa 148 -773}\special{pa 49 -786}%
-\special{pa -49 -786}\special{pa -148 -773}\special{pa -243 -749}\special{pa -335 -712}%
-\special{pa -422 -665}\special{pa -502 -607}\special{pa -574 -539}\special{pa -637 -463}%
-\special{pa -690 -379}\special{pa -732 -290}\special{pa -763 -196}\special{pa -781 -99}%
-\special{pa -787 0}\special{pa -781 99}\special{pa -763 196}\special{pa -732 290}%
-\special{pa -690 379}\special{pa -637 463}\special{pa -574 539}\special{pa -502 607}%
-\special{pa -422 665}\special{pa -335 712}\special{pa -243 749}\special{pa -148 773}%
-\special{pa -49 786}\special{pa 49 786}\special{pa 148 773}\special{pa 243 749}\special{pa 335 712}%
-\special{pa 422 665}\special{pa 502 607}\special{pa 574 539}\special{pa 637 463}\special{pa 690 379}%
-\special{pa 732 290}\special{pa 763 196}\special{pa 781 99}\special{pa 787 0}%
-\special{fp}%
-\special{pa 1575 0}\special{pa 116 -779}%
-\special{fp}%
-\special{pn 1}%
-\special{pa 856 -401}\special{pa 849 -405}\special{pa 841 -405}\special{pa 834 -401}%
-\special{pa 830 -394}\special{pa 830 -385}\special{pa 834 -378}\special{pa 841 -374}%
-\special{pa 849 -374}\special{pa 856 -378}\special{pa 860 -385}\special{pa 860 -394}%
-\special{pa 856 -401}\special{sh 1}\special{fp}%
-\special{pn 8}%
-\settowidth{\Width}{A}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{A}\settodepth{\Depth}{A}\setlength{\Height}{-\Height}%
-\put(4.0000,-0.0500){\hspace*{\Width}\raisebox{\Height}{A}}%
-%
-%
-\settowidth{\Width}{P}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{P}\settodepth{\Depth}{P}\setlength{\Height}{\Depth}%
-\put(0.3436,2.0283){\hspace*{\Width}\raisebox{\Height}{P}}%
-%
-%
-\settowidth{\Width}{Q}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{Q}\settodepth{\Depth}{Q}\setlength{\Height}{\Depth}%
-\put(2.1968,1.0392){\hspace*{\Width}\raisebox{\Height}{Q}}%
-%
-%
-\special{pa -1465 0}\special{pa 3984 0}%
-\special{fp}%
-\special{pa 0 1291}\special{pa 0 -1386}%
-\special{fp}%
-\settowidth{\Width}{$x$}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{$x$}\settodepth{\Depth}{$x$}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(10.1700,0.0000){\hspace*{\Width}\raisebox{\Height}{$x$}}%
-%
-%
-\settowidth{\Width}{$y$}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{$y$}\settodepth{\Depth}{$y$}\setlength{\Height}{\Depth}%
-\put(0.0000,3.5700){\hspace*{\Width}\raisebox{\Height}{$y$}}%
-%
-%
-\settowidth{\Width}{O}\setlength{\Width}{-1\Width}%
-\settoheight{\Height}{O}\settodepth{\Depth}{O}\setlength{\Height}{-\Height}%
-\put(-0.0500,-0.0500){\hspace*{\Width}\raisebox{\Height}{O}}%
-%
-%
-\end{picture}}%%
-\newframe%
-{\unitlength=1cm%
-\begin{picture}%
-( 14.34000, 7.30000)( -3.72000, -3.28000)%
-\special{pn 8}%
-%
-\special{pa 787 0}\special{pa 781 -99}\special{pa 763 -196}\special{pa 732 -290}\special{pa 690 -379}%
-\special{pa 637 -463}\special{pa 574 -539}\special{pa 502 -607}\special{pa 422 -665}%
-\special{pa 335 -712}\special{pa 243 -749}\special{pa 148 -773}\special{pa 49 -786}%
-\special{pa -49 -786}\special{pa -148 -773}\special{pa -243 -749}\special{pa -335 -712}%
-\special{pa -422 -665}\special{pa -502 -607}\special{pa -574 -539}\special{pa -637 -463}%
-\special{pa -690 -379}\special{pa -732 -290}\special{pa -763 -196}\special{pa -781 -99}%
-\special{pa -787 0}\special{pa -781 99}\special{pa -763 196}\special{pa -732 290}%
-\special{pa -690 379}\special{pa -637 463}\special{pa -574 539}\special{pa -502 607}%
-\special{pa -422 665}\special{pa -335 712}\special{pa -243 749}\special{pa -148 773}%
-\special{pa -49 786}\special{pa 49 786}\special{pa 148 773}\special{pa 243 749}\special{pa 335 712}%
-\special{pa 422 665}\special{pa 502 607}\special{pa 574 539}\special{pa 637 463}\special{pa 690 379}%
-\special{pa 732 290}\special{pa 763 196}\special{pa 781 99}\special{pa 787 0}%
-\special{fp}%
-\special{pa 1575 0}\special{pa 83 -783}%
-\special{fp}%
-\special{pn 1}%
-\special{pa 840 -403}\special{pa 833 -407}\special{pa 825 -407}\special{pa 818 -403}%
-\special{pa 814 -396}\special{pa 814 -387}\special{pa 818 -380}\special{pa 825 -376}%
-\special{pa 833 -376}\special{pa 840 -380}\special{pa 844 -387}\special{pa 844 -396}%
-\special{pa 840 -403}\special{sh 1}\special{fp}%
-\special{pn 8}%
-\settowidth{\Width}{A}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{A}\settodepth{\Depth}{A}\setlength{\Height}{-\Height}%
-\put(4.0000,-0.0500){\hspace*{\Width}\raisebox{\Height}{A}}%
-%
-%
-\settowidth{\Width}{P}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{P}\settodepth{\Depth}{P}\setlength{\Height}{\Depth}%
-\put(0.2605,2.0389){\hspace*{\Width}\raisebox{\Height}{P}}%
-%
-%
-\settowidth{\Width}{Q}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{Q}\settodepth{\Depth}{Q}\setlength{\Height}{\Depth}%
-\put(2.1553,1.0444){\hspace*{\Width}\raisebox{\Height}{Q}}%
-%
-%
-\special{pa -1465 0}\special{pa 3984 0}%
-\special{fp}%
-\special{pa 0 1291}\special{pa 0 -1386}%
-\special{fp}%
-\settowidth{\Width}{$x$}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{$x$}\settodepth{\Depth}{$x$}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(10.1700,0.0000){\hspace*{\Width}\raisebox{\Height}{$x$}}%
-%
-%
-\settowidth{\Width}{$y$}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{$y$}\settodepth{\Depth}{$y$}\setlength{\Height}{\Depth}%
-\put(0.0000,3.5700){\hspace*{\Width}\raisebox{\Height}{$y$}}%
-%
-%
-\settowidth{\Width}{O}\setlength{\Width}{-1\Width}%
-\settoheight{\Height}{O}\settodepth{\Depth}{O}\setlength{\Height}{-\Height}%
-\put(-0.0500,-0.0500){\hspace*{\Width}\raisebox{\Height}{O}}%
-%
-%
-\end{picture}}%%
-\newframe%
-{\unitlength=1cm%
-\begin{picture}%
-( 14.34000, 7.30000)( -3.72000, -3.28000)%
-\special{pn 8}%
-%
-\special{pa 787 0}\special{pa 781 -99}\special{pa 763 -196}\special{pa 732 -290}\special{pa 690 -379}%
-\special{pa 637 -463}\special{pa 574 -539}\special{pa 502 -607}\special{pa 422 -665}%
-\special{pa 335 -712}\special{pa 243 -749}\special{pa 148 -773}\special{pa 49 -786}%
-\special{pa -49 -786}\special{pa -148 -773}\special{pa -243 -749}\special{pa -335 -712}%
-\special{pa -422 -665}\special{pa -502 -607}\special{pa -574 -539}\special{pa -637 -463}%
-\special{pa -690 -379}\special{pa -732 -290}\special{pa -763 -196}\special{pa -781 -99}%
-\special{pa -787 0}\special{pa -781 99}\special{pa -763 196}\special{pa -732 290}%
-\special{pa -690 379}\special{pa -637 463}\special{pa -574 539}\special{pa -502 607}%
-\special{pa -422 665}\special{pa -335 712}\special{pa -243 749}\special{pa -148 773}%
-\special{pa -49 786}\special{pa 49 786}\special{pa 148 773}\special{pa 243 749}\special{pa 335 712}%
-\special{pa 422 665}\special{pa 502 607}\special{pa 574 539}\special{pa 637 463}\special{pa 690 379}%
-\special{pa 732 290}\special{pa 763 196}\special{pa 781 99}\special{pa 787 0}%
-\special{fp}%
-\special{pa 1575 0}\special{pa 50 -786}%
-\special{fp}%
-\special{pn 1}%
-\special{pa 824 -404}\special{pa 816 -408}\special{pa 808 -408}\special{pa 801 -404}%
-\special{pa 797 -397}\special{pa 797 -389}\special{pa 801 -382}\special{pa 808 -378}%
-\special{pa 816 -378}\special{pa 824 -382}\special{pa 828 -389}\special{pa 828 -397}%
-\special{pa 824 -404}\special{sh 1}\special{fp}%
-\special{pn 8}%
-\settowidth{\Width}{A}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{A}\settodepth{\Depth}{A}\setlength{\Height}{-\Height}%
-\put(4.0000,-0.0500){\hspace*{\Width}\raisebox{\Height}{A}}%
-%
-%
-\settowidth{\Width}{P}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{P}\settodepth{\Depth}{P}\setlength{\Height}{\Depth}%
-\put(0.1771,2.0460){\hspace*{\Width}\raisebox{\Height}{P}}%
-%
-%
-\settowidth{\Width}{Q}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{Q}\settodepth{\Depth}{Q}\setlength{\Height}{\Depth}%
-\put(2.1136,1.0480){\hspace*{\Width}\raisebox{\Height}{Q}}%
-%
-%
-\special{pa -1465 0}\special{pa 3984 0}%
-\special{fp}%
-\special{pa 0 1291}\special{pa 0 -1386}%
-\special{fp}%
-\settowidth{\Width}{$x$}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{$x$}\settodepth{\Depth}{$x$}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(10.1700,0.0000){\hspace*{\Width}\raisebox{\Height}{$x$}}%
-%
-%
-\settowidth{\Width}{$y$}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{$y$}\settodepth{\Depth}{$y$}\setlength{\Height}{\Depth}%
-\put(0.0000,3.5700){\hspace*{\Width}\raisebox{\Height}{$y$}}%
-%
-%
-\settowidth{\Width}{O}\setlength{\Width}{-1\Width}%
-\settoheight{\Height}{O}\settodepth{\Depth}{O}\setlength{\Height}{-\Height}%
-\put(-0.0500,-0.0500){\hspace*{\Width}\raisebox{\Height}{O}}%
-%
-%
-\end{picture}}%%
-\newframe%
-{\unitlength=1cm%
-\begin{picture}%
-( 14.34000, 7.30000)( -3.72000, -3.28000)%
-\special{pn 8}%
-%
-\special{pa 787 0}\special{pa 781 -99}\special{pa 763 -196}\special{pa 732 -290}\special{pa 690 -379}%
-\special{pa 637 -463}\special{pa 574 -539}\special{pa 502 -607}\special{pa 422 -665}%
-\special{pa 335 -712}\special{pa 243 -749}\special{pa 148 -773}\special{pa 49 -786}%
-\special{pa -49 -786}\special{pa -148 -773}\special{pa -243 -749}\special{pa -335 -712}%
-\special{pa -422 -665}\special{pa -502 -607}\special{pa -574 -539}\special{pa -637 -463}%
-\special{pa -690 -379}\special{pa -732 -290}\special{pa -763 -196}\special{pa -781 -99}%
-\special{pa -787 0}\special{pa -781 99}\special{pa -763 196}\special{pa -732 290}%
-\special{pa -690 379}\special{pa -637 463}\special{pa -574 539}\special{pa -502 607}%
-\special{pa -422 665}\special{pa -335 712}\special{pa -243 749}\special{pa -148 773}%
-\special{pa -49 786}\special{pa 49 786}\special{pa 148 773}\special{pa 243 749}\special{pa 335 712}%
-\special{pa 422 665}\special{pa 502 607}\special{pa 574 539}\special{pa 637 463}\special{pa 690 379}%
-\special{pa 732 290}\special{pa 763 196}\special{pa 781 99}\special{pa 787 0}%
-\special{fp}%
-\special{pa 1575 0}\special{pa 17 -787}%
-\special{fp}%
-\special{pn 1}%
-\special{pa 807 -405}\special{pa 800 -409}\special{pa 792 -409}\special{pa 785 -405}%
-\special{pa 781 -398}\special{pa 781 -390}\special{pa 785 -382}\special{pa 792 -378}%
-\special{pa 800 -378}\special{pa 807 -382}\special{pa 811 -390}\special{pa 811 -398}%
-\special{pa 807 -405}\special{sh 1}\special{fp}%
-\special{pn 8}%
-\settowidth{\Width}{A}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{A}\settodepth{\Depth}{A}\setlength{\Height}{-\Height}%
-\put(4.0000,-0.0500){\hspace*{\Width}\raisebox{\Height}{A}}%
-%
-%
-\settowidth{\Width}{P}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{P}\settodepth{\Depth}{P}\setlength{\Height}{\Depth}%
-\put(0.0935,2.0495){\hspace*{\Width}\raisebox{\Height}{P}}%
-%
-%
-\settowidth{\Width}{Q}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{Q}\settodepth{\Depth}{Q}\setlength{\Height}{\Depth}%
-\put(2.0717,1.0498){\hspace*{\Width}\raisebox{\Height}{Q}}%
-%
-%
-\special{pa -1465 0}\special{pa 3984 0}%
-\special{fp}%
-\special{pa 0 1291}\special{pa 0 -1386}%
-\special{fp}%
-\settowidth{\Width}{$x$}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{$x$}\settodepth{\Depth}{$x$}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(10.1700,0.0000){\hspace*{\Width}\raisebox{\Height}{$x$}}%
-%
-%
-\settowidth{\Width}{$y$}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{$y$}\settodepth{\Depth}{$y$}\setlength{\Height}{\Depth}%
-\put(0.0000,3.5700){\hspace*{\Width}\raisebox{\Height}{$y$}}%
-%
-%
-\settowidth{\Width}{O}\setlength{\Width}{-1\Width}%
-\settoheight{\Height}{O}\settodepth{\Depth}{O}\setlength{\Height}{-\Height}%
-\put(-0.0500,-0.0500){\hspace*{\Width}\raisebox{\Height}{O}}%
-%
-%
-\end{picture}}%%
-\newframe%
-{\unitlength=1cm%
-\begin{picture}%
-( 14.34000, 7.30000)( -3.72000, -3.28000)%
-\special{pn 8}%
-%
-\special{pa 787 0}\special{pa 781 -99}\special{pa 763 -196}\special{pa 732 -290}\special{pa 690 -379}%
-\special{pa 637 -463}\special{pa 574 -539}\special{pa 502 -607}\special{pa 422 -665}%
-\special{pa 335 -712}\special{pa 243 -749}\special{pa 148 -773}\special{pa 49 -786}%
-\special{pa -49 -786}\special{pa -148 -773}\special{pa -243 -749}\special{pa -335 -712}%
-\special{pa -422 -665}\special{pa -502 -607}\special{pa -574 -539}\special{pa -637 -463}%
-\special{pa -690 -379}\special{pa -732 -290}\special{pa -763 -196}\special{pa -781 -99}%
-\special{pa -787 0}\special{pa -781 99}\special{pa -763 196}\special{pa -732 290}%
-\special{pa -690 379}\special{pa -637 463}\special{pa -574 539}\special{pa -502 607}%
-\special{pa -422 665}\special{pa -335 712}\special{pa -243 749}\special{pa -148 773}%
-\special{pa -49 786}\special{pa 49 786}\special{pa 148 773}\special{pa 243 749}\special{pa 335 712}%
-\special{pa 422 665}\special{pa 502 607}\special{pa 574 539}\special{pa 637 463}\special{pa 690 379}%
-\special{pa 732 290}\special{pa 763 196}\special{pa 781 99}\special{pa 787 0}%
-\special{fp}%
-\special{pa 1575 0}\special{pa -16 -787}%
-\special{fp}%
-\special{pn 1}%
-\special{pa 791 -405}\special{pa 784 -409}\special{pa 775 -409}\special{pa 768 -405}%
-\special{pa 764 -398}\special{pa 764 -390}\special{pa 768 -382}\special{pa 775 -378}%
-\special{pa 784 -378}\special{pa 791 -382}\special{pa 795 -390}\special{pa 795 -398}%
-\special{pa 791 -405}\special{sh 1}\special{fp}%
-\special{pn 8}%
-\settowidth{\Width}{A}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{A}\settodepth{\Depth}{A}\setlength{\Height}{-\Height}%
-\put(4.0000,-0.0500){\hspace*{\Width}\raisebox{\Height}{A}}%
-%
-%
-\settowidth{\Width}{P}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{P}\settodepth{\Depth}{P}\setlength{\Height}{\Depth}%
-\put(0.0097,2.0496){\hspace*{\Width}\raisebox{\Height}{P}}%
-%
-%
-\settowidth{\Width}{Q}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{Q}\settodepth{\Depth}{Q}\setlength{\Height}{\Depth}%
-\put(2.0299,1.0498){\hspace*{\Width}\raisebox{\Height}{Q}}%
-%
-%
-\special{pa -1465 0}\special{pa 3984 0}%
-\special{fp}%
-\special{pa 0 1291}\special{pa 0 -1386}%
-\special{fp}%
-\settowidth{\Width}{$x$}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{$x$}\settodepth{\Depth}{$x$}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(10.1700,0.0000){\hspace*{\Width}\raisebox{\Height}{$x$}}%
-%
-%
-\settowidth{\Width}{$y$}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{$y$}\settodepth{\Depth}{$y$}\setlength{\Height}{\Depth}%
-\put(0.0000,3.5700){\hspace*{\Width}\raisebox{\Height}{$y$}}%
-%
-%
-\settowidth{\Width}{O}\setlength{\Width}{-1\Width}%
-\settoheight{\Height}{O}\settodepth{\Depth}{O}\setlength{\Height}{-\Height}%
-\put(-0.0500,-0.0500){\hspace*{\Width}\raisebox{\Height}{O}}%
-%
-%
-\end{picture}}%%
-\newframe%
-{\unitlength=1cm%
-\begin{picture}%
-( 14.34000, 7.30000)( -3.72000, -3.28000)%
-\special{pn 8}%
-%
-\special{pa 787 0}\special{pa 781 -99}\special{pa 763 -196}\special{pa 732 -290}\special{pa 690 -379}%
-\special{pa 637 -463}\special{pa 574 -539}\special{pa 502 -607}\special{pa 422 -665}%
-\special{pa 335 -712}\special{pa 243 -749}\special{pa 148 -773}\special{pa 49 -786}%
-\special{pa -49 -786}\special{pa -148 -773}\special{pa -243 -749}\special{pa -335 -712}%
-\special{pa -422 -665}\special{pa -502 -607}\special{pa -574 -539}\special{pa -637 -463}%
-\special{pa -690 -379}\special{pa -732 -290}\special{pa -763 -196}\special{pa -781 -99}%
-\special{pa -787 0}\special{pa -781 99}\special{pa -763 196}\special{pa -732 290}%
-\special{pa -690 379}\special{pa -637 463}\special{pa -574 539}\special{pa -502 607}%
-\special{pa -422 665}\special{pa -335 712}\special{pa -243 749}\special{pa -148 773}%
-\special{pa -49 786}\special{pa 49 786}\special{pa 148 773}\special{pa 243 749}\special{pa 335 712}%
-\special{pa 422 665}\special{pa 502 607}\special{pa 574 539}\special{pa 637 463}\special{pa 690 379}%
-\special{pa 732 290}\special{pa 763 196}\special{pa 781 99}\special{pa 787 0}%
-\special{fp}%
-\special{pa 1575 0}\special{pa -49 -786}%
-\special{fp}%
-\special{pn 1}%
-\special{pa 774 -404}\special{pa 767 -408}\special{pa 759 -408}\special{pa 752 -404}%
-\special{pa 748 -397}\special{pa 748 -389}\special{pa 752 -382}\special{pa 759 -378}%
-\special{pa 767 -378}\special{pa 774 -382}\special{pa 778 -389}\special{pa 778 -397}%
-\special{pa 774 -404}\special{sh 1}\special{fp}%
-\special{pn 8}%
-\settowidth{\Width}{A}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{A}\settodepth{\Depth}{A}\setlength{\Height}{-\Height}%
-\put(4.0000,-0.0500){\hspace*{\Width}\raisebox{\Height}{A}}%
-%
-%
-\settowidth{\Width}{P}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{P}\settodepth{\Depth}{P}\setlength{\Height}{\Depth}%
-\put(-0.0739,2.0462){\hspace*{\Width}\raisebox{\Height}{P}}%
-%
-%
-\settowidth{\Width}{Q}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{Q}\settodepth{\Depth}{Q}\setlength{\Height}{\Depth}%
-\put(1.9880,1.0481){\hspace*{\Width}\raisebox{\Height}{Q}}%
-%
-%
-\special{pa -1465 0}\special{pa 3984 0}%
-\special{fp}%
-\special{pa 0 1291}\special{pa 0 -1386}%
-\special{fp}%
-\settowidth{\Width}{$x$}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{$x$}\settodepth{\Depth}{$x$}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(10.1700,0.0000){\hspace*{\Width}\raisebox{\Height}{$x$}}%
-%
-%
-\settowidth{\Width}{$y$}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{$y$}\settodepth{\Depth}{$y$}\setlength{\Height}{\Depth}%
-\put(0.0000,3.5700){\hspace*{\Width}\raisebox{\Height}{$y$}}%
-%
-%
-\settowidth{\Width}{O}\setlength{\Width}{-1\Width}%
-\settoheight{\Height}{O}\settodepth{\Depth}{O}\setlength{\Height}{-\Height}%
-\put(-0.0500,-0.0500){\hspace*{\Width}\raisebox{\Height}{O}}%
-%
-%
-\end{picture}}%%
-\newframe%
-{\unitlength=1cm%
-\begin{picture}%
-( 14.34000, 7.30000)( -3.72000, -3.28000)%
-\special{pn 8}%
-%
-\special{pa 787 0}\special{pa 781 -99}\special{pa 763 -196}\special{pa 732 -290}\special{pa 690 -379}%
-\special{pa 637 -463}\special{pa 574 -539}\special{pa 502 -607}\special{pa 422 -665}%
-\special{pa 335 -712}\special{pa 243 -749}\special{pa 148 -773}\special{pa 49 -786}%
-\special{pa -49 -786}\special{pa -148 -773}\special{pa -243 -749}\special{pa -335 -712}%
-\special{pa -422 -665}\special{pa -502 -607}\special{pa -574 -539}\special{pa -637 -463}%
-\special{pa -690 -379}\special{pa -732 -290}\special{pa -763 -196}\special{pa -781 -99}%
-\special{pa -787 0}\special{pa -781 99}\special{pa -763 196}\special{pa -732 290}%
-\special{pa -690 379}\special{pa -637 463}\special{pa -574 539}\special{pa -502 607}%
-\special{pa -422 665}\special{pa -335 712}\special{pa -243 749}\special{pa -148 773}%
-\special{pa -49 786}\special{pa 49 786}\special{pa 148 773}\special{pa 243 749}\special{pa 335 712}%
-\special{pa 422 665}\special{pa 502 607}\special{pa 574 539}\special{pa 637 463}\special{pa 690 379}%
-\special{pa 732 290}\special{pa 763 196}\special{pa 781 99}\special{pa 787 0}%
-\special{fp}%
-\special{pa 1575 0}\special{pa -82 -783}%
-\special{fp}%
-\special{pn 1}%
-\special{pa 758 -403}\special{pa 751 -407}\special{pa 743 -407}\special{pa 735 -403}%
-\special{pa 731 -396}\special{pa 731 -388}\special{pa 735 -380}\special{pa 743 -376}%
-\special{pa 751 -376}\special{pa 758 -380}\special{pa 762 -388}\special{pa 762 -396}%
-\special{pa 758 -403}\special{sh 1}\special{fp}%
-\special{pn 8}%
-\settowidth{\Width}{A}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{A}\settodepth{\Depth}{A}\setlength{\Height}{-\Height}%
-\put(4.0000,-0.0500){\hspace*{\Width}\raisebox{\Height}{A}}%
-%
-%
-\settowidth{\Width}{P}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{P}\settodepth{\Depth}{P}\setlength{\Height}{\Depth}%
-\put(-0.1574,2.0392){\hspace*{\Width}\raisebox{\Height}{P}}%
-%
-%
-\settowidth{\Width}{Q}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{Q}\settodepth{\Depth}{Q}\setlength{\Height}{\Depth}%
-\put(1.9463,1.0446){\hspace*{\Width}\raisebox{\Height}{Q}}%
-%
-%
-\special{pa -1465 0}\special{pa 3984 0}%
-\special{fp}%
-\special{pa 0 1291}\special{pa 0 -1386}%
-\special{fp}%
-\settowidth{\Width}{$x$}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{$x$}\settodepth{\Depth}{$x$}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(10.1700,0.0000){\hspace*{\Width}\raisebox{\Height}{$x$}}%
-%
-%
-\settowidth{\Width}{$y$}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{$y$}\settodepth{\Depth}{$y$}\setlength{\Height}{\Depth}%
-\put(0.0000,3.5700){\hspace*{\Width}\raisebox{\Height}{$y$}}%
-%
-%
-\settowidth{\Width}{O}\setlength{\Width}{-1\Width}%
-\settoheight{\Height}{O}\settodepth{\Depth}{O}\setlength{\Height}{-\Height}%
-\put(-0.0500,-0.0500){\hspace*{\Width}\raisebox{\Height}{O}}%
-%
-%
-\end{picture}}%%
-\newframe%
-{\unitlength=1cm%
-\begin{picture}%
-( 14.34000, 7.30000)( -3.72000, -3.28000)%
-\special{pn 8}%
-%
-\special{pa 787 0}\special{pa 781 -99}\special{pa 763 -196}\special{pa 732 -290}\special{pa 690 -379}%
-\special{pa 637 -463}\special{pa 574 -539}\special{pa 502 -607}\special{pa 422 -665}%
-\special{pa 335 -712}\special{pa 243 -749}\special{pa 148 -773}\special{pa 49 -786}%
-\special{pa -49 -786}\special{pa -148 -773}\special{pa -243 -749}\special{pa -335 -712}%
-\special{pa -422 -665}\special{pa -502 -607}\special{pa -574 -539}\special{pa -637 -463}%
-\special{pa -690 -379}\special{pa -732 -290}\special{pa -763 -196}\special{pa -781 -99}%
-\special{pa -787 0}\special{pa -781 99}\special{pa -763 196}\special{pa -732 290}%
-\special{pa -690 379}\special{pa -637 463}\special{pa -574 539}\special{pa -502 607}%
-\special{pa -422 665}\special{pa -335 712}\special{pa -243 749}\special{pa -148 773}%
-\special{pa -49 786}\special{pa 49 786}\special{pa 148 773}\special{pa 243 749}\special{pa 335 712}%
-\special{pa 422 665}\special{pa 502 607}\special{pa 574 539}\special{pa 637 463}\special{pa 690 379}%
-\special{pa 732 290}\special{pa 763 196}\special{pa 781 99}\special{pa 787 0}%
-\special{fp}%
-\special{pa 1575 0}\special{pa -114 -779}%
-\special{fp}%
-\special{pn 1}%
-\special{pa 741 -401}\special{pa 734 -405}\special{pa 726 -405}\special{pa 719 -401}%
-\special{pa 715 -394}\special{pa 715 -385}\special{pa 719 -378}\special{pa 726 -374}%
-\special{pa 734 -374}\special{pa 741 -378}\special{pa 745 -385}\special{pa 745 -394}%
-\special{pa 741 -401}\special{sh 1}\special{fp}%
-\special{pn 8}%
-\settowidth{\Width}{A}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{A}\settodepth{\Depth}{A}\setlength{\Height}{-\Height}%
-\put(4.0000,-0.0500){\hspace*{\Width}\raisebox{\Height}{A}}%
-%
-%
-\settowidth{\Width}{P}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{P}\settodepth{\Depth}{P}\setlength{\Height}{\Depth}%
-\put(-0.2404,2.0288){\hspace*{\Width}\raisebox{\Height}{P}}%
-%
-%
-\settowidth{\Width}{Q}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{Q}\settodepth{\Depth}{Q}\setlength{\Height}{\Depth}%
-\put(1.9048,1.0394){\hspace*{\Width}\raisebox{\Height}{Q}}%
-%
-%
-\special{pa -1465 0}\special{pa 3984 0}%
-\special{fp}%
-\special{pa 0 1291}\special{pa 0 -1386}%
-\special{fp}%
-\settowidth{\Width}{$x$}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{$x$}\settodepth{\Depth}{$x$}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(10.1700,0.0000){\hspace*{\Width}\raisebox{\Height}{$x$}}%
-%
-%
-\settowidth{\Width}{$y$}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{$y$}\settodepth{\Depth}{$y$}\setlength{\Height}{\Depth}%
-\put(0.0000,3.5700){\hspace*{\Width}\raisebox{\Height}{$y$}}%
-%
-%
-\settowidth{\Width}{O}\setlength{\Width}{-1\Width}%
-\settoheight{\Height}{O}\settodepth{\Depth}{O}\setlength{\Height}{-\Height}%
-\put(-0.0500,-0.0500){\hspace*{\Width}\raisebox{\Height}{O}}%
-%
-%
-\end{picture}}%%
-\newframe%
-{\unitlength=1cm%
-\begin{picture}%
-( 14.34000, 7.30000)( -3.72000, -3.28000)%
-\special{pn 8}%
-%
-\special{pa 787 0}\special{pa 781 -99}\special{pa 763 -196}\special{pa 732 -290}\special{pa 690 -379}%
-\special{pa 637 -463}\special{pa 574 -539}\special{pa 502 -607}\special{pa 422 -665}%
-\special{pa 335 -712}\special{pa 243 -749}\special{pa 148 -773}\special{pa 49 -786}%
-\special{pa -49 -786}\special{pa -148 -773}\special{pa -243 -749}\special{pa -335 -712}%
-\special{pa -422 -665}\special{pa -502 -607}\special{pa -574 -539}\special{pa -637 -463}%
-\special{pa -690 -379}\special{pa -732 -290}\special{pa -763 -196}\special{pa -781 -99}%
-\special{pa -787 0}\special{pa -781 99}\special{pa -763 196}\special{pa -732 290}%
-\special{pa -690 379}\special{pa -637 463}\special{pa -574 539}\special{pa -502 607}%
-\special{pa -422 665}\special{pa -335 712}\special{pa -243 749}\special{pa -148 773}%
-\special{pa -49 786}\special{pa 49 786}\special{pa 148 773}\special{pa 243 749}\special{pa 335 712}%
-\special{pa 422 665}\special{pa 502 607}\special{pa 574 539}\special{pa 637 463}\special{pa 690 379}%
-\special{pa 732 290}\special{pa 763 196}\special{pa 781 99}\special{pa 787 0}%
-\special{fp}%
-\special{pa 1575 0}\special{pa -147 -774}%
-\special{fp}%
-\special{pn 1}%
-\special{pa 725 -398}\special{pa 718 -402}\special{pa 710 -402}\special{pa 703 -398}%
-\special{pa 699 -391}\special{pa 699 -383}\special{pa 703 -376}\special{pa 710 -372}%
-\special{pa 718 -372}\special{pa 725 -376}\special{pa 729 -383}\special{pa 729 -391}%
-\special{pa 725 -398}\special{sh 1}\special{fp}%
-\special{pn 8}%
-\settowidth{\Width}{A}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{A}\settodepth{\Depth}{A}\setlength{\Height}{-\Height}%
-\put(4.0000,-0.0500){\hspace*{\Width}\raisebox{\Height}{A}}%
-%
-%
-\settowidth{\Width}{P}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{P}\settodepth{\Depth}{P}\setlength{\Height}{\Depth}%
-\put(-0.3230,2.0149){\hspace*{\Width}\raisebox{\Height}{P}}%
-%
-%
-\settowidth{\Width}{Q}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{Q}\settodepth{\Depth}{Q}\setlength{\Height}{\Depth}%
-\put(1.8635,1.0325){\hspace*{\Width}\raisebox{\Height}{Q}}%
-%
-%
-\special{pa -1465 0}\special{pa 3984 0}%
-\special{fp}%
-\special{pa 0 1291}\special{pa 0 -1386}%
-\special{fp}%
-\settowidth{\Width}{$x$}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{$x$}\settodepth{\Depth}{$x$}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(10.1700,0.0000){\hspace*{\Width}\raisebox{\Height}{$x$}}%
-%
-%
-\settowidth{\Width}{$y$}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{$y$}\settodepth{\Depth}{$y$}\setlength{\Height}{\Depth}%
-\put(0.0000,3.5700){\hspace*{\Width}\raisebox{\Height}{$y$}}%
-%
-%
-\settowidth{\Width}{O}\setlength{\Width}{-1\Width}%
-\settoheight{\Height}{O}\settodepth{\Depth}{O}\setlength{\Height}{-\Height}%
-\put(-0.0500,-0.0500){\hspace*{\Width}\raisebox{\Height}{O}}%
-%
-%
-\end{picture}}%%
-\newframe%
-{\unitlength=1cm%
-\begin{picture}%
-( 14.34000, 7.30000)( -3.72000, -3.28000)%
-\special{pn 8}%
-%
-\special{pa 787 0}\special{pa 781 -99}\special{pa 763 -196}\special{pa 732 -290}\special{pa 690 -379}%
-\special{pa 637 -463}\special{pa 574 -539}\special{pa 502 -607}\special{pa 422 -665}%
-\special{pa 335 -712}\special{pa 243 -749}\special{pa 148 -773}\special{pa 49 -786}%
-\special{pa -49 -786}\special{pa -148 -773}\special{pa -243 -749}\special{pa -335 -712}%
-\special{pa -422 -665}\special{pa -502 -607}\special{pa -574 -539}\special{pa -637 -463}%
-\special{pa -690 -379}\special{pa -732 -290}\special{pa -763 -196}\special{pa -781 -99}%
-\special{pa -787 0}\special{pa -781 99}\special{pa -763 196}\special{pa -732 290}%
-\special{pa -690 379}\special{pa -637 463}\special{pa -574 539}\special{pa -502 607}%
-\special{pa -422 665}\special{pa -335 712}\special{pa -243 749}\special{pa -148 773}%
-\special{pa -49 786}\special{pa 49 786}\special{pa 148 773}\special{pa 243 749}\special{pa 335 712}%
-\special{pa 422 665}\special{pa 502 607}\special{pa 574 539}\special{pa 637 463}\special{pa 690 379}%
-\special{pa 732 290}\special{pa 763 196}\special{pa 781 99}\special{pa 787 0}%
-\special{fp}%
-\special{pa 1575 0}\special{pa -179 -767}%
-\special{fp}%
-\special{pn 1}%
-\special{pa 709 -395}\special{pa 702 -399}\special{pa 694 -399}\special{pa 687 -395}%
-\special{pa 683 -387}\special{pa 683 -379}\special{pa 687 -372}\special{pa 694 -368}%
-\special{pa 702 -368}\special{pa 709 -372}\special{pa 713 -379}\special{pa 713 -387}%
-\special{pa 709 -395}\special{sh 1}\special{fp}%
-\special{pn 8}%
-\settowidth{\Width}{A}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{A}\settodepth{\Depth}{A}\setlength{\Height}{-\Height}%
-\put(4.0000,-0.0500){\hspace*{\Width}\raisebox{\Height}{A}}%
-%
-%
-\settowidth{\Width}{P}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{P}\settodepth{\Depth}{P}\setlength{\Height}{\Depth}%
-\put(-0.4049,1.9976){\hspace*{\Width}\raisebox{\Height}{P}}%
-%
-%
-\settowidth{\Width}{Q}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{Q}\settodepth{\Depth}{Q}\setlength{\Height}{\Depth}%
-\put(1.8225,1.0238){\hspace*{\Width}\raisebox{\Height}{Q}}%
-%
-%
-\special{pa -1465 0}\special{pa 3984 0}%
-\special{fp}%
-\special{pa 0 1291}\special{pa 0 -1386}%
-\special{fp}%
-\settowidth{\Width}{$x$}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{$x$}\settodepth{\Depth}{$x$}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(10.1700,0.0000){\hspace*{\Width}\raisebox{\Height}{$x$}}%
-%
-%
-\settowidth{\Width}{$y$}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{$y$}\settodepth{\Depth}{$y$}\setlength{\Height}{\Depth}%
-\put(0.0000,3.5700){\hspace*{\Width}\raisebox{\Height}{$y$}}%
-%
-%
-\settowidth{\Width}{O}\setlength{\Width}{-1\Width}%
-\settoheight{\Height}{O}\settodepth{\Depth}{O}\setlength{\Height}{-\Height}%
-\put(-0.0500,-0.0500){\hspace*{\Width}\raisebox{\Height}{O}}%
-%
-%
-\end{picture}}%%
-\newframe%
-{\unitlength=1cm%
-\begin{picture}%
-( 14.34000, 7.30000)( -3.72000, -3.28000)%
-\special{pn 8}%
-%
-\special{pa 787 0}\special{pa 781 -99}\special{pa 763 -196}\special{pa 732 -290}\special{pa 690 -379}%
-\special{pa 637 -463}\special{pa 574 -539}\special{pa 502 -607}\special{pa 422 -665}%
-\special{pa 335 -712}\special{pa 243 -749}\special{pa 148 -773}\special{pa 49 -786}%
-\special{pa -49 -786}\special{pa -148 -773}\special{pa -243 -749}\special{pa -335 -712}%
-\special{pa -422 -665}\special{pa -502 -607}\special{pa -574 -539}\special{pa -637 -463}%
-\special{pa -690 -379}\special{pa -732 -290}\special{pa -763 -196}\special{pa -781 -99}%
-\special{pa -787 0}\special{pa -781 99}\special{pa -763 196}\special{pa -732 290}%
-\special{pa -690 379}\special{pa -637 463}\special{pa -574 539}\special{pa -502 607}%
-\special{pa -422 665}\special{pa -335 712}\special{pa -243 749}\special{pa -148 773}%
-\special{pa -49 786}\special{pa 49 786}\special{pa 148 773}\special{pa 243 749}\special{pa 335 712}%
-\special{pa 422 665}\special{pa 502 607}\special{pa 574 539}\special{pa 637 463}\special{pa 690 379}%
-\special{pa 732 290}\special{pa 763 196}\special{pa 781 99}\special{pa 787 0}%
-\special{fp}%
-\special{pa 1575 0}\special{pa -211 -759}%
-\special{fp}%
-\special{pn 1}%
-\special{pa 693 -390}\special{pa 686 -395}\special{pa 678 -395}\special{pa 671 -390}%
-\special{pa 667 -383}\special{pa 667 -375}\special{pa 671 -368}\special{pa 678 -364}%
-\special{pa 686 -364}\special{pa 693 -368}\special{pa 697 -375}\special{pa 697 -383}%
-\special{pa 693 -390}\special{sh 1}\special{fp}%
-\special{pn 8}%
-\settowidth{\Width}{A}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{A}\settodepth{\Depth}{A}\setlength{\Height}{-\Height}%
-\put(4.0000,-0.0500){\hspace*{\Width}\raisebox{\Height}{A}}%
-%
-%
-\settowidth{\Width}{P}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{P}\settodepth{\Depth}{P}\setlength{\Height}{\Depth}%
-\put(-0.4860,1.9768){\hspace*{\Width}\raisebox{\Height}{P}}%
-%
-%
-\settowidth{\Width}{Q}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{Q}\settodepth{\Depth}{Q}\setlength{\Height}{\Depth}%
-\put(1.7820,1.0134){\hspace*{\Width}\raisebox{\Height}{Q}}%
-%
-%
-\special{pa -1465 0}\special{pa 3984 0}%
-\special{fp}%
-\special{pa 0 1291}\special{pa 0 -1386}%
-\special{fp}%
-\settowidth{\Width}{$x$}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{$x$}\settodepth{\Depth}{$x$}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(10.1700,0.0000){\hspace*{\Width}\raisebox{\Height}{$x$}}%
-%
-%
-\settowidth{\Width}{$y$}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{$y$}\settodepth{\Depth}{$y$}\setlength{\Height}{\Depth}%
-\put(0.0000,3.5700){\hspace*{\Width}\raisebox{\Height}{$y$}}%
-%
-%
-\settowidth{\Width}{O}\setlength{\Width}{-1\Width}%
-\settoheight{\Height}{O}\settodepth{\Depth}{O}\setlength{\Height}{-\Height}%
-\put(-0.0500,-0.0500){\hspace*{\Width}\raisebox{\Height}{O}}%
-%
-%
-\end{picture}}%%
-\newframe%
-{\unitlength=1cm%
-\begin{picture}%
-( 14.34000, 7.30000)( -3.72000, -3.28000)%
-\special{pn 8}%
-%
-\special{pa 787 0}\special{pa 781 -99}\special{pa 763 -196}\special{pa 732 -290}\special{pa 690 -379}%
-\special{pa 637 -463}\special{pa 574 -539}\special{pa 502 -607}\special{pa 422 -665}%
-\special{pa 335 -712}\special{pa 243 -749}\special{pa 148 -773}\special{pa 49 -786}%
-\special{pa -49 -786}\special{pa -148 -773}\special{pa -243 -749}\special{pa -335 -712}%
-\special{pa -422 -665}\special{pa -502 -607}\special{pa -574 -539}\special{pa -637 -463}%
-\special{pa -690 -379}\special{pa -732 -290}\special{pa -763 -196}\special{pa -781 -99}%
-\special{pa -787 0}\special{pa -781 99}\special{pa -763 196}\special{pa -732 290}%
-\special{pa -690 379}\special{pa -637 463}\special{pa -574 539}\special{pa -502 607}%
-\special{pa -422 665}\special{pa -335 712}\special{pa -243 749}\special{pa -148 773}%
-\special{pa -49 786}\special{pa 49 786}\special{pa 148 773}\special{pa 243 749}\special{pa 335 712}%
-\special{pa 422 665}\special{pa 502 607}\special{pa 574 539}\special{pa 637 463}\special{pa 690 379}%
-\special{pa 732 290}\special{pa 763 196}\special{pa 781 99}\special{pa 787 0}%
-\special{fp}%
-\special{pa 1575 0}\special{pa -243 -749}%
-\special{fp}%
-\special{pn 1}%
-\special{pa 677 -386}\special{pa 670 -390}\special{pa 662 -390}\special{pa 655 -386}%
-\special{pa 651 -379}\special{pa 651 -370}\special{pa 655 -363}\special{pa 662 -359}%
-\special{pa 670 -359}\special{pa 677 -363}\special{pa 681 -370}\special{pa 681 -379}%
-\special{pa 677 -386}\special{sh 1}\special{fp}%
-\special{pn 8}%
-\settowidth{\Width}{A}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{A}\settodepth{\Depth}{A}\setlength{\Height}{-\Height}%
-\put(4.0000,-0.0500){\hspace*{\Width}\raisebox{\Height}{A}}%
-%
-%
-\settowidth{\Width}{P}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{P}\settodepth{\Depth}{P}\setlength{\Height}{\Depth}%
-\put(-0.5662,1.9527){\hspace*{\Width}\raisebox{\Height}{P}}%
-%
-%
-\settowidth{\Width}{Q}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{Q}\settodepth{\Depth}{Q}\setlength{\Height}{\Depth}%
-\put(1.7419,1.0013){\hspace*{\Width}\raisebox{\Height}{Q}}%
-%
-%
-\special{pa -1465 0}\special{pa 3984 0}%
-\special{fp}%
-\special{pa 0 1291}\special{pa 0 -1386}%
-\special{fp}%
-\settowidth{\Width}{$x$}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{$x$}\settodepth{\Depth}{$x$}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(10.1700,0.0000){\hspace*{\Width}\raisebox{\Height}{$x$}}%
-%
-%
-\settowidth{\Width}{$y$}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{$y$}\settodepth{\Depth}{$y$}\setlength{\Height}{\Depth}%
-\put(0.0000,3.5700){\hspace*{\Width}\raisebox{\Height}{$y$}}%
-%
-%
-\settowidth{\Width}{O}\setlength{\Width}{-1\Width}%
-\settoheight{\Height}{O}\settodepth{\Depth}{O}\setlength{\Height}{-\Height}%
-\put(-0.0500,-0.0500){\hspace*{\Width}\raisebox{\Height}{O}}%
-%
-%
-\end{picture}}%%
-\newframe%
-{\unitlength=1cm%
-\begin{picture}%
-( 14.34000, 7.30000)( -3.72000, -3.28000)%
-\special{pn 8}%
-%
-\special{pa 787 0}\special{pa 781 -99}\special{pa 763 -196}\special{pa 732 -290}\special{pa 690 -379}%
-\special{pa 637 -463}\special{pa 574 -539}\special{pa 502 -607}\special{pa 422 -665}%
-\special{pa 335 -712}\special{pa 243 -749}\special{pa 148 -773}\special{pa 49 -786}%
-\special{pa -49 -786}\special{pa -148 -773}\special{pa -243 -749}\special{pa -335 -712}%
-\special{pa -422 -665}\special{pa -502 -607}\special{pa -574 -539}\special{pa -637 -463}%
-\special{pa -690 -379}\special{pa -732 -290}\special{pa -763 -196}\special{pa -781 -99}%
-\special{pa -787 0}\special{pa -781 99}\special{pa -763 196}\special{pa -732 290}%
-\special{pa -690 379}\special{pa -637 463}\special{pa -574 539}\special{pa -502 607}%
-\special{pa -422 665}\special{pa -335 712}\special{pa -243 749}\special{pa -148 773}%
-\special{pa -49 786}\special{pa 49 786}\special{pa 148 773}\special{pa 243 749}\special{pa 335 712}%
-\special{pa 422 665}\special{pa 502 607}\special{pa 574 539}\special{pa 637 463}\special{pa 690 379}%
-\special{pa 732 290}\special{pa 763 196}\special{pa 781 99}\special{pa 787 0}%
-\special{fp}%
-\special{pa 1575 0}\special{pa -274 -738}%
-\special{fp}%
-\special{pn 1}%
-\special{pa 662 -380}\special{pa 655 -384}\special{pa 646 -384}\special{pa 639 -380}%
-\special{pa 635 -373}\special{pa 635 -365}\special{pa 639 -358}\special{pa 646 -354}%
-\special{pa 655 -354}\special{pa 662 -358}\special{pa 666 -365}\special{pa 666 -373}%
-\special{pa 662 -380}\special{sh 1}\special{fp}%
-\special{pn 8}%
-\settowidth{\Width}{A}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{A}\settodepth{\Depth}{A}\setlength{\Height}{-\Height}%
-\put(4.0000,-0.0500){\hspace*{\Width}\raisebox{\Height}{A}}%
-%
-%
-\settowidth{\Width}{P}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{P}\settodepth{\Depth}{P}\setlength{\Height}{\Depth}%
-\put(-0.6453,1.9252){\hspace*{\Width}\raisebox{\Height}{P}}%
-%
-%
-\settowidth{\Width}{Q}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{Q}\settodepth{\Depth}{Q}\setlength{\Height}{\Depth}%
-\put(1.7023,0.9876){\hspace*{\Width}\raisebox{\Height}{Q}}%
-%
-%
-\special{pa -1465 0}\special{pa 3984 0}%
-\special{fp}%
-\special{pa 0 1291}\special{pa 0 -1386}%
-\special{fp}%
-\settowidth{\Width}{$x$}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{$x$}\settodepth{\Depth}{$x$}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(10.1700,0.0000){\hspace*{\Width}\raisebox{\Height}{$x$}}%
-%
-%
-\settowidth{\Width}{$y$}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{$y$}\settodepth{\Depth}{$y$}\setlength{\Height}{\Depth}%
-\put(0.0000,3.5700){\hspace*{\Width}\raisebox{\Height}{$y$}}%
-%
-%
-\settowidth{\Width}{O}\setlength{\Width}{-1\Width}%
-\settoheight{\Height}{O}\settodepth{\Depth}{O}\setlength{\Height}{-\Height}%
-\put(-0.0500,-0.0500){\hspace*{\Width}\raisebox{\Height}{O}}%
-%
-%
-\end{picture}}%%
-\newframe%
-{\unitlength=1cm%
-\begin{picture}%
-( 14.34000, 7.30000)( -3.72000, -3.28000)%
-\special{pn 8}%
-%
-\special{pa 787 0}\special{pa 781 -99}\special{pa 763 -196}\special{pa 732 -290}\special{pa 690 -379}%
-\special{pa 637 -463}\special{pa 574 -539}\special{pa 502 -607}\special{pa 422 -665}%
-\special{pa 335 -712}\special{pa 243 -749}\special{pa 148 -773}\special{pa 49 -786}%
-\special{pa -49 -786}\special{pa -148 -773}\special{pa -243 -749}\special{pa -335 -712}%
-\special{pa -422 -665}\special{pa -502 -607}\special{pa -574 -539}\special{pa -637 -463}%
-\special{pa -690 -379}\special{pa -732 -290}\special{pa -763 -196}\special{pa -781 -99}%
-\special{pa -787 0}\special{pa -781 99}\special{pa -763 196}\special{pa -732 290}%
-\special{pa -690 379}\special{pa -637 463}\special{pa -574 539}\special{pa -502 607}%
-\special{pa -422 665}\special{pa -335 712}\special{pa -243 749}\special{pa -148 773}%
-\special{pa -49 786}\special{pa 49 786}\special{pa 148 773}\special{pa 243 749}\special{pa 335 712}%
-\special{pa 422 665}\special{pa 502 607}\special{pa 574 539}\special{pa 637 463}\special{pa 690 379}%
-\special{pa 732 290}\special{pa 763 196}\special{pa 781 99}\special{pa 787 0}%
-\special{fp}%
-\special{pa 1575 0}\special{pa -304 -726}%
-\special{fp}%
-\special{pn 1}%
-\special{pa 646 -374}\special{pa 639 -378}\special{pa 631 -378}\special{pa 624 -374}%
-\special{pa 620 -367}\special{pa 620 -359}\special{pa 624 -352}\special{pa 631 -348}%
-\special{pa 639 -348}\special{pa 646 -352}\special{pa 650 -359}\special{pa 650 -367}%
-\special{pa 646 -374}\special{sh 1}\special{fp}%
-\special{pn 8}%
-\settowidth{\Width}{A}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{A}\settodepth{\Depth}{A}\setlength{\Height}{-\Height}%
-\put(4.0000,-0.0500){\hspace*{\Width}\raisebox{\Height}{A}}%
-%
-%
-\settowidth{\Width}{P}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{P}\settodepth{\Depth}{P}\setlength{\Height}{\Depth}%
-\put(-0.7232,1.8945){\hspace*{\Width}\raisebox{\Height}{P}}%
-%
-%
-\settowidth{\Width}{Q}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{Q}\settodepth{\Depth}{Q}\setlength{\Height}{\Depth}%
-\put(1.6634,0.9723){\hspace*{\Width}\raisebox{\Height}{Q}}%
-%
-%
-\special{pa -1465 0}\special{pa 3984 0}%
-\special{fp}%
-\special{pa 0 1291}\special{pa 0 -1386}%
-\special{fp}%
-\settowidth{\Width}{$x$}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{$x$}\settodepth{\Depth}{$x$}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(10.1700,0.0000){\hspace*{\Width}\raisebox{\Height}{$x$}}%
-%
-%
-\settowidth{\Width}{$y$}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{$y$}\settodepth{\Depth}{$y$}\setlength{\Height}{\Depth}%
-\put(0.0000,3.5700){\hspace*{\Width}\raisebox{\Height}{$y$}}%
-%
-%
-\settowidth{\Width}{O}\setlength{\Width}{-1\Width}%
-\settoheight{\Height}{O}\settodepth{\Depth}{O}\setlength{\Height}{-\Height}%
-\put(-0.0500,-0.0500){\hspace*{\Width}\raisebox{\Height}{O}}%
-%
-%
-\end{picture}}%%
-\newframe%
-{\unitlength=1cm%
-\begin{picture}%
-( 14.34000, 7.30000)( -3.72000, -3.28000)%
-\special{pn 8}%
-%
-\special{pa 787 0}\special{pa 781 -99}\special{pa 763 -196}\special{pa 732 -290}\special{pa 690 -379}%
-\special{pa 637 -463}\special{pa 574 -539}\special{pa 502 -607}\special{pa 422 -665}%
-\special{pa 335 -712}\special{pa 243 -749}\special{pa 148 -773}\special{pa 49 -786}%
-\special{pa -49 -786}\special{pa -148 -773}\special{pa -243 -749}\special{pa -335 -712}%
-\special{pa -422 -665}\special{pa -502 -607}\special{pa -574 -539}\special{pa -637 -463}%
-\special{pa -690 -379}\special{pa -732 -290}\special{pa -763 -196}\special{pa -781 -99}%
-\special{pa -787 0}\special{pa -781 99}\special{pa -763 196}\special{pa -732 290}%
-\special{pa -690 379}\special{pa -637 463}\special{pa -574 539}\special{pa -502 607}%
-\special{pa -422 665}\special{pa -335 712}\special{pa -243 749}\special{pa -148 773}%
-\special{pa -49 786}\special{pa 49 786}\special{pa 148 773}\special{pa 243 749}\special{pa 335 712}%
-\special{pa 422 665}\special{pa 502 607}\special{pa 574 539}\special{pa 637 463}\special{pa 690 379}%
-\special{pa 732 290}\special{pa 763 196}\special{pa 781 99}\special{pa 787 0}%
-\special{fp}%
-\special{pa 1575 0}\special{pa -335 -713}%
-\special{fp}%
-\special{pn 1}%
-\special{pa 631 -368}\special{pa 624 -372}\special{pa 616 -372}\special{pa 609 -368}%
-\special{pa 605 -360}\special{pa 605 -352}\special{pa 609 -345}\special{pa 616 -341}%
-\special{pa 624 -341}\special{pa 631 -345}\special{pa 635 -352}\special{pa 635 -360}%
-\special{pa 631 -368}\special{sh 1}\special{fp}%
-\special{pn 8}%
-\settowidth{\Width}{A}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{A}\settodepth{\Depth}{A}\setlength{\Height}{-\Height}%
-\put(4.0000,-0.0500){\hspace*{\Width}\raisebox{\Height}{A}}%
-%
-%
-\settowidth{\Width}{P}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{P}\settodepth{\Depth}{P}\setlength{\Height}{\Depth}%
-\put(-0.7997,1.8605){\hspace*{\Width}\raisebox{\Height}{P}}%
-%
-%
-\settowidth{\Width}{Q}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{Q}\settodepth{\Depth}{Q}\setlength{\Height}{\Depth}%
-\put(1.6251,0.9553){\hspace*{\Width}\raisebox{\Height}{Q}}%
-%
-%
-\special{pa -1465 0}\special{pa 3984 0}%
-\special{fp}%
-\special{pa 0 1291}\special{pa 0 -1386}%
-\special{fp}%
-\settowidth{\Width}{$x$}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{$x$}\settodepth{\Depth}{$x$}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(10.1700,0.0000){\hspace*{\Width}\raisebox{\Height}{$x$}}%
-%
-%
-\settowidth{\Width}{$y$}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{$y$}\settodepth{\Depth}{$y$}\setlength{\Height}{\Depth}%
-\put(0.0000,3.5700){\hspace*{\Width}\raisebox{\Height}{$y$}}%
-%
-%
-\settowidth{\Width}{O}\setlength{\Width}{-1\Width}%
-\settoheight{\Height}{O}\settodepth{\Depth}{O}\setlength{\Height}{-\Height}%
-\put(-0.0500,-0.0500){\hspace*{\Width}\raisebox{\Height}{O}}%
-%
-%
-\end{picture}}%%
-\newframe%
-{\unitlength=1cm%
-\begin{picture}%
-( 14.34000, 7.30000)( -3.72000, -3.28000)%
-\special{pn 8}%
-%
-\special{pa 787 0}\special{pa 781 -99}\special{pa 763 -196}\special{pa 732 -290}\special{pa 690 -379}%
-\special{pa 637 -463}\special{pa 574 -539}\special{pa 502 -607}\special{pa 422 -665}%
-\special{pa 335 -712}\special{pa 243 -749}\special{pa 148 -773}\special{pa 49 -786}%
-\special{pa -49 -786}\special{pa -148 -773}\special{pa -243 -749}\special{pa -335 -712}%
-\special{pa -422 -665}\special{pa -502 -607}\special{pa -574 -539}\special{pa -637 -463}%
-\special{pa -690 -379}\special{pa -732 -290}\special{pa -763 -196}\special{pa -781 -99}%
-\special{pa -787 0}\special{pa -781 99}\special{pa -763 196}\special{pa -732 290}%
-\special{pa -690 379}\special{pa -637 463}\special{pa -574 539}\special{pa -502 607}%
-\special{pa -422 665}\special{pa -335 712}\special{pa -243 749}\special{pa -148 773}%
-\special{pa -49 786}\special{pa 49 786}\special{pa 148 773}\special{pa 243 749}\special{pa 335 712}%
-\special{pa 422 665}\special{pa 502 607}\special{pa 574 539}\special{pa 637 463}\special{pa 690 379}%
-\special{pa 732 290}\special{pa 763 196}\special{pa 781 99}\special{pa 787 0}%
-\special{fp}%
-\special{pa 1575 0}\special{pa -364 -698}%
-\special{fp}%
-\special{pn 1}%
-\special{pa 617 -360}\special{pa 609 -364}\special{pa 601 -364}\special{pa 594 -360}%
-\special{pa 590 -353}\special{pa 590 -345}\special{pa 594 -338}\special{pa 601 -334}%
-\special{pa 609 -334}\special{pa 617 -338}\special{pa 621 -345}\special{pa 621 -353}%
-\special{pa 617 -360}\special{sh 1}\special{fp}%
-\special{pn 8}%
-\settowidth{\Width}{A}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{A}\settodepth{\Depth}{A}\setlength{\Height}{-\Height}%
-\put(4.0000,-0.0500){\hspace*{\Width}\raisebox{\Height}{A}}%
-%
-%
-\settowidth{\Width}{P}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{P}\settodepth{\Depth}{P}\setlength{\Height}{\Depth}%
-\put(-0.8747,1.8234){\hspace*{\Width}\raisebox{\Height}{P}}%
-%
-%
-\settowidth{\Width}{Q}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{Q}\settodepth{\Depth}{Q}\setlength{\Height}{\Depth}%
-\put(1.5876,0.9367){\hspace*{\Width}\raisebox{\Height}{Q}}%
-%
-%
-\special{pa -1465 0}\special{pa 3984 0}%
-\special{fp}%
-\special{pa 0 1291}\special{pa 0 -1386}%
-\special{fp}%
-\settowidth{\Width}{$x$}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{$x$}\settodepth{\Depth}{$x$}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(10.1700,0.0000){\hspace*{\Width}\raisebox{\Height}{$x$}}%
-%
-%
-\settowidth{\Width}{$y$}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{$y$}\settodepth{\Depth}{$y$}\setlength{\Height}{\Depth}%
-\put(0.0000,3.5700){\hspace*{\Width}\raisebox{\Height}{$y$}}%
-%
-%
-\settowidth{\Width}{O}\setlength{\Width}{-1\Width}%
-\settoheight{\Height}{O}\settodepth{\Depth}{O}\setlength{\Height}{-\Height}%
-\put(-0.0500,-0.0500){\hspace*{\Width}\raisebox{\Height}{O}}%
-%
-%
-\end{picture}}%%
-\newframe%
-{\unitlength=1cm%
-\begin{picture}%
-( 14.34000, 7.30000)( -3.72000, -3.28000)%
-\special{pn 8}%
-%
-\special{pa 787 0}\special{pa 781 -99}\special{pa 763 -196}\special{pa 732 -290}\special{pa 690 -379}%
-\special{pa 637 -463}\special{pa 574 -539}\special{pa 502 -607}\special{pa 422 -665}%
-\special{pa 335 -712}\special{pa 243 -749}\special{pa 148 -773}\special{pa 49 -786}%
-\special{pa -49 -786}\special{pa -148 -773}\special{pa -243 -749}\special{pa -335 -712}%
-\special{pa -422 -665}\special{pa -502 -607}\special{pa -574 -539}\special{pa -637 -463}%
-\special{pa -690 -379}\special{pa -732 -290}\special{pa -763 -196}\special{pa -781 -99}%
-\special{pa -787 0}\special{pa -781 99}\special{pa -763 196}\special{pa -732 290}%
-\special{pa -690 379}\special{pa -637 463}\special{pa -574 539}\special{pa -502 607}%
-\special{pa -422 665}\special{pa -335 712}\special{pa -243 749}\special{pa -148 773}%
-\special{pa -49 786}\special{pa 49 786}\special{pa 148 773}\special{pa 243 749}\special{pa 335 712}%
-\special{pa 422 665}\special{pa 502 607}\special{pa 574 539}\special{pa 637 463}\special{pa 690 379}%
-\special{pa 732 290}\special{pa 763 196}\special{pa 781 99}\special{pa 787 0}%
-\special{fp}%
-\special{pa 1575 0}\special{pa -393 -682}%
-\special{fp}%
-\special{pn 1}%
-\special{pa 602 -352}\special{pa 595 -356}\special{pa 587 -356}\special{pa 580 -352}%
-\special{pa 576 -345}\special{pa 576 -337}\special{pa 580 -330}\special{pa 587 -326}%
-\special{pa 595 -326}\special{pa 602 -330}\special{pa 606 -337}\special{pa 606 -345}%
-\special{pa 602 -352}\special{sh 1}\special{fp}%
-\special{pn 8}%
-\settowidth{\Width}{A}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{A}\settodepth{\Depth}{A}\setlength{\Height}{-\Height}%
-\put(4.0000,-0.0500){\hspace*{\Width}\raisebox{\Height}{A}}%
-%
-%
-\settowidth{\Width}{P}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{P}\settodepth{\Depth}{P}\setlength{\Height}{\Depth}%
-\put(-0.9482,1.7831){\hspace*{\Width}\raisebox{\Height}{P}}%
-%
-%
-\settowidth{\Width}{Q}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{Q}\settodepth{\Depth}{Q}\setlength{\Height}{\Depth}%
-\put(1.5509,0.9166){\hspace*{\Width}\raisebox{\Height}{Q}}%
-%
-%
-\special{pa -1465 0}\special{pa 3984 0}%
-\special{fp}%
-\special{pa 0 1291}\special{pa 0 -1386}%
-\special{fp}%
-\settowidth{\Width}{$x$}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{$x$}\settodepth{\Depth}{$x$}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(10.1700,0.0000){\hspace*{\Width}\raisebox{\Height}{$x$}}%
-%
-%
-\settowidth{\Width}{$y$}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{$y$}\settodepth{\Depth}{$y$}\setlength{\Height}{\Depth}%
-\put(0.0000,3.5700){\hspace*{\Width}\raisebox{\Height}{$y$}}%
-%
-%
-\settowidth{\Width}{O}\setlength{\Width}{-1\Width}%
-\settoheight{\Height}{O}\settodepth{\Depth}{O}\setlength{\Height}{-\Height}%
-\put(-0.0500,-0.0500){\hspace*{\Width}\raisebox{\Height}{O}}%
-%
-%
-\end{picture}}%%
-\newframe%
-{\unitlength=1cm%
-\begin{picture}%
-( 14.34000, 7.30000)( -3.72000, -3.28000)%
-\special{pn 8}%
-%
-\special{pa 787 0}\special{pa 781 -99}\special{pa 763 -196}\special{pa 732 -290}\special{pa 690 -379}%
-\special{pa 637 -463}\special{pa 574 -539}\special{pa 502 -607}\special{pa 422 -665}%
-\special{pa 335 -712}\special{pa 243 -749}\special{pa 148 -773}\special{pa 49 -786}%
-\special{pa -49 -786}\special{pa -148 -773}\special{pa -243 -749}\special{pa -335 -712}%
-\special{pa -422 -665}\special{pa -502 -607}\special{pa -574 -539}\special{pa -637 -463}%
-\special{pa -690 -379}\special{pa -732 -290}\special{pa -763 -196}\special{pa -781 -99}%
-\special{pa -787 0}\special{pa -781 99}\special{pa -763 196}\special{pa -732 290}%
-\special{pa -690 379}\special{pa -637 463}\special{pa -574 539}\special{pa -502 607}%
-\special{pa -422 665}\special{pa -335 712}\special{pa -243 749}\special{pa -148 773}%
-\special{pa -49 786}\special{pa 49 786}\special{pa 148 773}\special{pa 243 749}\special{pa 335 712}%
-\special{pa 422 665}\special{pa 502 607}\special{pa 574 539}\special{pa 637 463}\special{pa 690 379}%
-\special{pa 732 290}\special{pa 763 196}\special{pa 781 99}\special{pa 787 0}%
-\special{fp}%
-\special{pa 1575 0}\special{pa -421 -665}%
-\special{fp}%
-\special{pn 1}%
-\special{pa 588 -344}\special{pa 581 -348}\special{pa 573 -348}\special{pa 566 -344}%
-\special{pa 562 -337}\special{pa 562 -329}\special{pa 566 -322}\special{pa 573 -317}%
-\special{pa 581 -317}\special{pa 588 -322}\special{pa 592 -329}\special{pa 592 -337}%
-\special{pa 588 -344}\special{sh 1}\special{fp}%
-\special{pn 8}%
-\settowidth{\Width}{A}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{A}\settodepth{\Depth}{A}\setlength{\Height}{-\Height}%
-\put(4.0000,-0.0500){\hspace*{\Width}\raisebox{\Height}{A}}%
-%
-%
-\settowidth{\Width}{P}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{P}\settodepth{\Depth}{P}\setlength{\Height}{\Depth}%
-\put(-1.0198,1.7398){\hspace*{\Width}\raisebox{\Height}{P}}%
-%
-%
-\settowidth{\Width}{Q}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{Q}\settodepth{\Depth}{Q}\setlength{\Height}{\Depth}%
-\put(1.5151,0.8949){\hspace*{\Width}\raisebox{\Height}{Q}}%
-%
-%
-\special{pa -1465 0}\special{pa 3984 0}%
-\special{fp}%
-\special{pa 0 1291}\special{pa 0 -1386}%
-\special{fp}%
-\settowidth{\Width}{$x$}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{$x$}\settodepth{\Depth}{$x$}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(10.1700,0.0000){\hspace*{\Width}\raisebox{\Height}{$x$}}%
-%
-%
-\settowidth{\Width}{$y$}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{$y$}\settodepth{\Depth}{$y$}\setlength{\Height}{\Depth}%
-\put(0.0000,3.5700){\hspace*{\Width}\raisebox{\Height}{$y$}}%
-%
-%
-\settowidth{\Width}{O}\setlength{\Width}{-1\Width}%
-\settoheight{\Height}{O}\settodepth{\Depth}{O}\setlength{\Height}{-\Height}%
-\put(-0.0500,-0.0500){\hspace*{\Width}\raisebox{\Height}{O}}%
-%
-%
-\end{picture}}%%
-\newframe%
-{\unitlength=1cm%
-\begin{picture}%
-( 14.34000, 7.30000)( -3.72000, -3.28000)%
-\special{pn 8}%
-%
-\special{pa 787 0}\special{pa 781 -99}\special{pa 763 -196}\special{pa 732 -290}\special{pa 690 -379}%
-\special{pa 637 -463}\special{pa 574 -539}\special{pa 502 -607}\special{pa 422 -665}%
-\special{pa 335 -712}\special{pa 243 -749}\special{pa 148 -773}\special{pa 49 -786}%
-\special{pa -49 -786}\special{pa -148 -773}\special{pa -243 -749}\special{pa -335 -712}%
-\special{pa -422 -665}\special{pa -502 -607}\special{pa -574 -539}\special{pa -637 -463}%
-\special{pa -690 -379}\special{pa -732 -290}\special{pa -763 -196}\special{pa -781 -99}%
-\special{pa -787 0}\special{pa -781 99}\special{pa -763 196}\special{pa -732 290}%
-\special{pa -690 379}\special{pa -637 463}\special{pa -574 539}\special{pa -502 607}%
-\special{pa -422 665}\special{pa -335 712}\special{pa -243 749}\special{pa -148 773}%
-\special{pa -49 786}\special{pa 49 786}\special{pa 148 773}\special{pa 243 749}\special{pa 335 712}%
-\special{pa 422 665}\special{pa 502 607}\special{pa 574 539}\special{pa 637 463}\special{pa 690 379}%
-\special{pa 732 290}\special{pa 763 196}\special{pa 781 99}\special{pa 787 0}%
-\special{fp}%
-\special{pa 1575 0}\special{pa -449 -647}%
-\special{fp}%
-\special{pn 1}%
-\special{pa 574 -335}\special{pa 567 -339}\special{pa 559 -339}\special{pa 552 -335}%
-\special{pa 548 -328}\special{pa 548 -319}\special{pa 552 -312}\special{pa 559 -308}%
-\special{pa 567 -308}\special{pa 574 -312}\special{pa 578 -319}\special{pa 578 -328}%
-\special{pa 574 -335}\special{sh 1}\special{fp}%
-\special{pn 8}%
-\settowidth{\Width}{A}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{A}\settodepth{\Depth}{A}\setlength{\Height}{-\Height}%
-\put(4.0000,-0.0500){\hspace*{\Width}\raisebox{\Height}{A}}%
-%
-%
-\settowidth{\Width}{P}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{P}\settodepth{\Depth}{P}\setlength{\Height}{\Depth}%
-\put(-1.0896,1.6936){\hspace*{\Width}\raisebox{\Height}{P}}%
-%
-%
-\settowidth{\Width}{Q}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{Q}\settodepth{\Depth}{Q}\setlength{\Height}{\Depth}%
-\put(1.4802,0.8718){\hspace*{\Width}\raisebox{\Height}{Q}}%
-%
-%
-\special{pa -1465 0}\special{pa 3984 0}%
-\special{fp}%
-\special{pa 0 1291}\special{pa 0 -1386}%
-\special{fp}%
-\settowidth{\Width}{$x$}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{$x$}\settodepth{\Depth}{$x$}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(10.1700,0.0000){\hspace*{\Width}\raisebox{\Height}{$x$}}%
-%
-%
-\settowidth{\Width}{$y$}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{$y$}\settodepth{\Depth}{$y$}\setlength{\Height}{\Depth}%
-\put(0.0000,3.5700){\hspace*{\Width}\raisebox{\Height}{$y$}}%
-%
-%
-\settowidth{\Width}{O}\setlength{\Width}{-1\Width}%
-\settoheight{\Height}{O}\settodepth{\Depth}{O}\setlength{\Height}{-\Height}%
-\put(-0.0500,-0.0500){\hspace*{\Width}\raisebox{\Height}{O}}%
-%
-%
-\end{picture}}%%
-\newframe%
-{\unitlength=1cm%
-\begin{picture}%
-( 14.34000, 7.30000)( -3.72000, -3.28000)%
-\special{pn 8}%
-%
-\special{pa 787 0}\special{pa 781 -99}\special{pa 763 -196}\special{pa 732 -290}\special{pa 690 -379}%
-\special{pa 637 -463}\special{pa 574 -539}\special{pa 502 -607}\special{pa 422 -665}%
-\special{pa 335 -712}\special{pa 243 -749}\special{pa 148 -773}\special{pa 49 -786}%
-\special{pa -49 -786}\special{pa -148 -773}\special{pa -243 -749}\special{pa -335 -712}%
-\special{pa -422 -665}\special{pa -502 -607}\special{pa -574 -539}\special{pa -637 -463}%
-\special{pa -690 -379}\special{pa -732 -290}\special{pa -763 -196}\special{pa -781 -99}%
-\special{pa -787 0}\special{pa -781 99}\special{pa -763 196}\special{pa -732 290}%
-\special{pa -690 379}\special{pa -637 463}\special{pa -574 539}\special{pa -502 607}%
-\special{pa -422 665}\special{pa -335 712}\special{pa -243 749}\special{pa -148 773}%
-\special{pa -49 786}\special{pa 49 786}\special{pa 148 773}\special{pa 243 749}\special{pa 335 712}%
-\special{pa 422 665}\special{pa 502 607}\special{pa 574 539}\special{pa 637 463}\special{pa 690 379}%
-\special{pa 732 290}\special{pa 763 196}\special{pa 781 99}\special{pa 787 0}%
-\special{fp}%
-\special{pa 1575 0}\special{pa -475 -628}%
-\special{fp}%
-\special{pn 1}%
-\special{pa 561 -325}\special{pa 554 -329}\special{pa 546 -329}\special{pa 539 -325}%
-\special{pa 535 -318}\special{pa 535 -310}\special{pa 539 -303}\special{pa 546 -299}%
-\special{pa 554 -299}\special{pa 561 -303}\special{pa 565 -310}\special{pa 565 -318}%
-\special{pa 561 -325}\special{sh 1}\special{fp}%
-\special{pn 8}%
-\settowidth{\Width}{A}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{A}\settodepth{\Depth}{A}\setlength{\Height}{-\Height}%
-\put(4.0000,-0.0500){\hspace*{\Width}\raisebox{\Height}{A}}%
-%
-%
-\settowidth{\Width}{P}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{P}\settodepth{\Depth}{P}\setlength{\Height}{\Depth}%
-\put(-1.1574,1.6444){\hspace*{\Width}\raisebox{\Height}{P}}%
-%
-%
-\settowidth{\Width}{Q}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{Q}\settodepth{\Depth}{Q}\setlength{\Height}{\Depth}%
-\put(1.4463,0.8472){\hspace*{\Width}\raisebox{\Height}{Q}}%
-%
-%
-\special{pa -1465 0}\special{pa 3984 0}%
-\special{fp}%
-\special{pa 0 1291}\special{pa 0 -1386}%
-\special{fp}%
-\settowidth{\Width}{$x$}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{$x$}\settodepth{\Depth}{$x$}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(10.1700,0.0000){\hspace*{\Width}\raisebox{\Height}{$x$}}%
-%
-%
-\settowidth{\Width}{$y$}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{$y$}\settodepth{\Depth}{$y$}\setlength{\Height}{\Depth}%
-\put(0.0000,3.5700){\hspace*{\Width}\raisebox{\Height}{$y$}}%
-%
-%
-\settowidth{\Width}{O}\setlength{\Width}{-1\Width}%
-\settoheight{\Height}{O}\settodepth{\Depth}{O}\setlength{\Height}{-\Height}%
-\put(-0.0500,-0.0500){\hspace*{\Width}\raisebox{\Height}{O}}%
-%
-%
-\end{picture}}%%
-\newframe%
-{\unitlength=1cm%
-\begin{picture}%
-( 14.34000, 7.30000)( -3.72000, -3.28000)%
-\special{pn 8}%
-%
-\special{pa 787 0}\special{pa 781 -99}\special{pa 763 -196}\special{pa 732 -290}\special{pa 690 -379}%
-\special{pa 637 -463}\special{pa 574 -539}\special{pa 502 -607}\special{pa 422 -665}%
-\special{pa 335 -712}\special{pa 243 -749}\special{pa 148 -773}\special{pa 49 -786}%
-\special{pa -49 -786}\special{pa -148 -773}\special{pa -243 -749}\special{pa -335 -712}%
-\special{pa -422 -665}\special{pa -502 -607}\special{pa -574 -539}\special{pa -637 -463}%
-\special{pa -690 -379}\special{pa -732 -290}\special{pa -763 -196}\special{pa -781 -99}%
-\special{pa -787 0}\special{pa -781 99}\special{pa -763 196}\special{pa -732 290}%
-\special{pa -690 379}\special{pa -637 463}\special{pa -574 539}\special{pa -502 607}%
-\special{pa -422 665}\special{pa -335 712}\special{pa -243 749}\special{pa -148 773}%
-\special{pa -49 786}\special{pa 49 786}\special{pa 148 773}\special{pa 243 749}\special{pa 335 712}%
-\special{pa 422 665}\special{pa 502 607}\special{pa 574 539}\special{pa 637 463}\special{pa 690 379}%
-\special{pa 732 290}\special{pa 763 196}\special{pa 781 99}\special{pa 787 0}%
-\special{fp}%
-\special{pa 1575 0}\special{pa -501 -607}%
-\special{fp}%
-\special{pn 1}%
-\special{pa 548 -315}\special{pa 541 -319}\special{pa 533 -319}\special{pa 526 -315}%
-\special{pa 522 -308}\special{pa 522 -300}\special{pa 526 -293}\special{pa 533 -288}%
-\special{pa 541 -288}\special{pa 548 -293}\special{pa 552 -300}\special{pa 552 -308}%
-\special{pa 548 -315}\special{sh 1}\special{fp}%
-\special{pn 8}%
-\settowidth{\Width}{A}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{A}\settodepth{\Depth}{A}\setlength{\Height}{-\Height}%
-\put(4.0000,-0.0500){\hspace*{\Width}\raisebox{\Height}{A}}%
-%
-%
-\settowidth{\Width}{P}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{P}\settodepth{\Depth}{P}\setlength{\Height}{\Depth}%
-\put(-1.2231,1.5925){\hspace*{\Width}\raisebox{\Height}{P}}%
-%
-%
-\settowidth{\Width}{Q}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{Q}\settodepth{\Depth}{Q}\setlength{\Height}{\Depth}%
-\put(1.4135,0.8212){\hspace*{\Width}\raisebox{\Height}{Q}}%
-%
-%
-\special{pa -1465 0}\special{pa 3984 0}%
-\special{fp}%
-\special{pa 0 1291}\special{pa 0 -1386}%
-\special{fp}%
-\settowidth{\Width}{$x$}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{$x$}\settodepth{\Depth}{$x$}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(10.1700,0.0000){\hspace*{\Width}\raisebox{\Height}{$x$}}%
-%
-%
-\settowidth{\Width}{$y$}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{$y$}\settodepth{\Depth}{$y$}\setlength{\Height}{\Depth}%
-\put(0.0000,3.5700){\hspace*{\Width}\raisebox{\Height}{$y$}}%
-%
-%
-\settowidth{\Width}{O}\setlength{\Width}{-1\Width}%
-\settoheight{\Height}{O}\settodepth{\Depth}{O}\setlength{\Height}{-\Height}%
-\put(-0.0500,-0.0500){\hspace*{\Width}\raisebox{\Height}{O}}%
-%
-%
-\end{picture}}%%
-\newframe%
-{\unitlength=1cm%
-\begin{picture}%
-( 14.34000, 7.30000)( -3.72000, -3.28000)%
-\special{pn 8}%
-%
-\special{pa 787 0}\special{pa 781 -99}\special{pa 763 -196}\special{pa 732 -290}\special{pa 690 -379}%
-\special{pa 637 -463}\special{pa 574 -539}\special{pa 502 -607}\special{pa 422 -665}%
-\special{pa 335 -712}\special{pa 243 -749}\special{pa 148 -773}\special{pa 49 -786}%
-\special{pa -49 -786}\special{pa -148 -773}\special{pa -243 -749}\special{pa -335 -712}%
-\special{pa -422 -665}\special{pa -502 -607}\special{pa -574 -539}\special{pa -637 -463}%
-\special{pa -690 -379}\special{pa -732 -290}\special{pa -763 -196}\special{pa -781 -99}%
-\special{pa -787 0}\special{pa -781 99}\special{pa -763 196}\special{pa -732 290}%
-\special{pa -690 379}\special{pa -637 463}\special{pa -574 539}\special{pa -502 607}%
-\special{pa -422 665}\special{pa -335 712}\special{pa -243 749}\special{pa -148 773}%
-\special{pa -49 786}\special{pa 49 786}\special{pa 148 773}\special{pa 243 749}\special{pa 335 712}%
-\special{pa 422 665}\special{pa 502 607}\special{pa 574 539}\special{pa 637 463}\special{pa 690 379}%
-\special{pa 732 290}\special{pa 763 196}\special{pa 781 99}\special{pa 787 0}%
-\special{fp}%
-\special{pa 1575 0}\special{pa -526 -586}%
-\special{fp}%
-\special{pn 1}%
-\special{pa 535 -304}\special{pa 528 -308}\special{pa 520 -308}\special{pa 513 -304}%
-\special{pa 509 -297}\special{pa 509 -289}\special{pa 513 -282}\special{pa 520 -278}%
-\special{pa 528 -278}\special{pa 535 -282}\special{pa 540 -289}\special{pa 540 -297}%
-\special{pa 535 -304}\special{sh 1}\special{fp}%
-\special{pn 8}%
-\settowidth{\Width}{A}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{A}\settodepth{\Depth}{A}\setlength{\Height}{-\Height}%
-\put(4.0000,-0.0500){\hspace*{\Width}\raisebox{\Height}{A}}%
-%
-%
-\settowidth{\Width}{P}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{P}\settodepth{\Depth}{P}\setlength{\Height}{\Depth}%
-\put(-1.2865,1.5378){\hspace*{\Width}\raisebox{\Height}{P}}%
-%
-%
-\settowidth{\Width}{Q}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{Q}\settodepth{\Depth}{Q}\setlength{\Height}{\Depth}%
-\put(1.3817,0.7939){\hspace*{\Width}\raisebox{\Height}{Q}}%
-%
-%
-\special{pa -1465 0}\special{pa 3984 0}%
-\special{fp}%
-\special{pa 0 1291}\special{pa 0 -1386}%
-\special{fp}%
-\settowidth{\Width}{$x$}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{$x$}\settodepth{\Depth}{$x$}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(10.1700,0.0000){\hspace*{\Width}\raisebox{\Height}{$x$}}%
-%
-%
-\settowidth{\Width}{$y$}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{$y$}\settodepth{\Depth}{$y$}\setlength{\Height}{\Depth}%
-\put(0.0000,3.5700){\hspace*{\Width}\raisebox{\Height}{$y$}}%
-%
-%
-\settowidth{\Width}{O}\setlength{\Width}{-1\Width}%
-\settoheight{\Height}{O}\settodepth{\Depth}{O}\setlength{\Height}{-\Height}%
-\put(-0.0500,-0.0500){\hspace*{\Width}\raisebox{\Height}{O}}%
-%
-%
-\end{picture}}%%
-\newframe%
-{\unitlength=1cm%
-\begin{picture}%
-( 14.34000, 7.30000)( -3.72000, -3.28000)%
-\special{pn 8}%
-%
-\special{pa 787 0}\special{pa 781 -99}\special{pa 763 -196}\special{pa 732 -290}\special{pa 690 -379}%
-\special{pa 637 -463}\special{pa 574 -539}\special{pa 502 -607}\special{pa 422 -665}%
-\special{pa 335 -712}\special{pa 243 -749}\special{pa 148 -773}\special{pa 49 -786}%
-\special{pa -49 -786}\special{pa -148 -773}\special{pa -243 -749}\special{pa -335 -712}%
-\special{pa -422 -665}\special{pa -502 -607}\special{pa -574 -539}\special{pa -637 -463}%
-\special{pa -690 -379}\special{pa -732 -290}\special{pa -763 -196}\special{pa -781 -99}%
-\special{pa -787 0}\special{pa -781 99}\special{pa -763 196}\special{pa -732 290}%
-\special{pa -690 379}\special{pa -637 463}\special{pa -574 539}\special{pa -502 607}%
-\special{pa -422 665}\special{pa -335 712}\special{pa -243 749}\special{pa -148 773}%
-\special{pa -49 786}\special{pa 49 786}\special{pa 148 773}\special{pa 243 749}\special{pa 335 712}%
-\special{pa 422 665}\special{pa 502 607}\special{pa 574 539}\special{pa 637 463}\special{pa 690 379}%
-\special{pa 732 290}\special{pa 763 196}\special{pa 781 99}\special{pa 787 0}%
-\special{fp}%
-\special{pa 1575 0}\special{pa -550 -563}%
-\special{fp}%
-\special{pn 1}%
-\special{pa 523 -293}\special{pa 516 -297}\special{pa 508 -297}\special{pa 501 -293}%
-\special{pa 497 -286}\special{pa 497 -278}\special{pa 501 -270}\special{pa 508 -266}%
-\special{pa 516 -266}\special{pa 523 -270}\special{pa 527 -278}\special{pa 527 -286}%
-\special{pa 523 -293}\special{sh 1}\special{fp}%
-\special{pn 8}%
-\settowidth{\Width}{A}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{A}\settodepth{\Depth}{A}\setlength{\Height}{-\Height}%
-\put(4.0000,-0.0500){\hspace*{\Width}\raisebox{\Height}{A}}%
-%
-%
-\settowidth{\Width}{P}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{P}\settodepth{\Depth}{P}\setlength{\Height}{\Depth}%
-\put(-1.3476,1.4806){\hspace*{\Width}\raisebox{\Height}{P}}%
-%
-%
-\settowidth{\Width}{Q}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{Q}\settodepth{\Depth}{Q}\setlength{\Height}{\Depth}%
-\put(1.3512,0.7653){\hspace*{\Width}\raisebox{\Height}{Q}}%
-%
-%
-\special{pa -1465 0}\special{pa 3984 0}%
-\special{fp}%
-\special{pa 0 1291}\special{pa 0 -1386}%
-\special{fp}%
-\settowidth{\Width}{$x$}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{$x$}\settodepth{\Depth}{$x$}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(10.1700,0.0000){\hspace*{\Width}\raisebox{\Height}{$x$}}%
-%
-%
-\settowidth{\Width}{$y$}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{$y$}\settodepth{\Depth}{$y$}\setlength{\Height}{\Depth}%
-\put(0.0000,3.5700){\hspace*{\Width}\raisebox{\Height}{$y$}}%
-%
-%
-\settowidth{\Width}{O}\setlength{\Width}{-1\Width}%
-\settoheight{\Height}{O}\settodepth{\Depth}{O}\setlength{\Height}{-\Height}%
-\put(-0.0500,-0.0500){\hspace*{\Width}\raisebox{\Height}{O}}%
-%
-%
-\end{picture}}%%
-\newframe%
-{\unitlength=1cm%
-\begin{picture}%
-( 14.34000, 7.30000)( -3.72000, -3.28000)%
-\special{pn 8}%
-%
-\special{pa 787 0}\special{pa 781 -99}\special{pa 763 -196}\special{pa 732 -290}\special{pa 690 -379}%
-\special{pa 637 -463}\special{pa 574 -539}\special{pa 502 -607}\special{pa 422 -665}%
-\special{pa 335 -712}\special{pa 243 -749}\special{pa 148 -773}\special{pa 49 -786}%
-\special{pa -49 -786}\special{pa -148 -773}\special{pa -243 -749}\special{pa -335 -712}%
-\special{pa -422 -665}\special{pa -502 -607}\special{pa -574 -539}\special{pa -637 -463}%
-\special{pa -690 -379}\special{pa -732 -290}\special{pa -763 -196}\special{pa -781 -99}%
-\special{pa -787 0}\special{pa -781 99}\special{pa -763 196}\special{pa -732 290}%
-\special{pa -690 379}\special{pa -637 463}\special{pa -574 539}\special{pa -502 607}%
-\special{pa -422 665}\special{pa -335 712}\special{pa -243 749}\special{pa -148 773}%
-\special{pa -49 786}\special{pa 49 786}\special{pa 148 773}\special{pa 243 749}\special{pa 335 712}%
-\special{pa 422 665}\special{pa 502 607}\special{pa 574 539}\special{pa 637 463}\special{pa 690 379}%
-\special{pa 732 290}\special{pa 763 196}\special{pa 781 99}\special{pa 787 0}%
-\special{fp}%
-\special{pa 1575 0}\special{pa -573 -540}%
-\special{fp}%
-\special{pn 1}%
-\special{pa 512 -281}\special{pa 505 -285}\special{pa 497 -285}\special{pa 490 -281}%
-\special{pa 486 -274}\special{pa 486 -266}\special{pa 490 -259}\special{pa 497 -255}%
-\special{pa 505 -255}\special{pa 512 -259}\special{pa 516 -266}\special{pa 516 -274}%
-\special{pa 512 -281}\special{sh 1}\special{fp}%
-\special{pn 8}%
-\settowidth{\Width}{A}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{A}\settodepth{\Depth}{A}\setlength{\Height}{-\Height}%
-\put(4.0000,-0.0500){\hspace*{\Width}\raisebox{\Height}{A}}%
-%
-%
-\settowidth{\Width}{P}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{P}\settodepth{\Depth}{P}\setlength{\Height}{\Depth}%
-\put(-1.4063,1.4209){\hspace*{\Width}\raisebox{\Height}{P}}%
-%
-%
-\settowidth{\Width}{Q}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{Q}\settodepth{\Depth}{Q}\setlength{\Height}{\Depth}%
-\put(1.3219,0.7354){\hspace*{\Width}\raisebox{\Height}{Q}}%
-%
-%
-\special{pa -1465 0}\special{pa 3984 0}%
-\special{fp}%
-\special{pa 0 1291}\special{pa 0 -1386}%
-\special{fp}%
-\settowidth{\Width}{$x$}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{$x$}\settodepth{\Depth}{$x$}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(10.1700,0.0000){\hspace*{\Width}\raisebox{\Height}{$x$}}%
-%
-%
-\settowidth{\Width}{$y$}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{$y$}\settodepth{\Depth}{$y$}\setlength{\Height}{\Depth}%
-\put(0.0000,3.5700){\hspace*{\Width}\raisebox{\Height}{$y$}}%
-%
-%
-\settowidth{\Width}{O}\setlength{\Width}{-1\Width}%
-\settoheight{\Height}{O}\settodepth{\Depth}{O}\setlength{\Height}{-\Height}%
-\put(-0.0500,-0.0500){\hspace*{\Width}\raisebox{\Height}{O}}%
-%
-%
-\end{picture}}%%
-\newframe%
-{\unitlength=1cm%
-\begin{picture}%
-( 14.34000, 7.30000)( -3.72000, -3.28000)%
-\special{pn 8}%
-%
-\special{pa 787 0}\special{pa 781 -99}\special{pa 763 -196}\special{pa 732 -290}\special{pa 690 -379}%
-\special{pa 637 -463}\special{pa 574 -539}\special{pa 502 -607}\special{pa 422 -665}%
-\special{pa 335 -712}\special{pa 243 -749}\special{pa 148 -773}\special{pa 49 -786}%
-\special{pa -49 -786}\special{pa -148 -773}\special{pa -243 -749}\special{pa -335 -712}%
-\special{pa -422 -665}\special{pa -502 -607}\special{pa -574 -539}\special{pa -637 -463}%
-\special{pa -690 -379}\special{pa -732 -290}\special{pa -763 -196}\special{pa -781 -99}%
-\special{pa -787 0}\special{pa -781 99}\special{pa -763 196}\special{pa -732 290}%
-\special{pa -690 379}\special{pa -637 463}\special{pa -574 539}\special{pa -502 607}%
-\special{pa -422 665}\special{pa -335 712}\special{pa -243 749}\special{pa -148 773}%
-\special{pa -49 786}\special{pa 49 786}\special{pa 148 773}\special{pa 243 749}\special{pa 335 712}%
-\special{pa 422 665}\special{pa 502 607}\special{pa 574 539}\special{pa 637 463}\special{pa 690 379}%
-\special{pa 732 290}\special{pa 763 196}\special{pa 781 99}\special{pa 787 0}%
-\special{fp}%
-\special{pa 1575 0}\special{pa -595 -515}%
-\special{fp}%
-\special{pn 1}%
-\special{pa 501 -269}\special{pa 494 -273}\special{pa 486 -273}\special{pa 479 -269}%
-\special{pa 474 -262}\special{pa 474 -254}\special{pa 479 -246}\special{pa 486 -242}%
-\special{pa 494 -242}\special{pa 501 -246}\special{pa 505 -254}\special{pa 505 -262}%
-\special{pa 501 -269}\special{sh 1}\special{fp}%
-\special{pn 8}%
-\settowidth{\Width}{A}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{A}\settodepth{\Depth}{A}\setlength{\Height}{-\Height}%
-\put(4.0000,-0.0500){\hspace*{\Width}\raisebox{\Height}{A}}%
-%
-%
-\settowidth{\Width}{P}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{P}\settodepth{\Depth}{P}\setlength{\Height}{\Depth}%
-\put(-1.4624,1.3587){\hspace*{\Width}\raisebox{\Height}{P}}%
-%
-%
-\settowidth{\Width}{Q}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{Q}\settodepth{\Depth}{Q}\setlength{\Height}{\Depth}%
-\put(1.2938,0.7044){\hspace*{\Width}\raisebox{\Height}{Q}}%
-%
-%
-\special{pa -1465 0}\special{pa 3984 0}%
-\special{fp}%
-\special{pa 0 1291}\special{pa 0 -1386}%
-\special{fp}%
-\settowidth{\Width}{$x$}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{$x$}\settodepth{\Depth}{$x$}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(10.1700,0.0000){\hspace*{\Width}\raisebox{\Height}{$x$}}%
-%
-%
-\settowidth{\Width}{$y$}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{$y$}\settodepth{\Depth}{$y$}\setlength{\Height}{\Depth}%
-\put(0.0000,3.5700){\hspace*{\Width}\raisebox{\Height}{$y$}}%
-%
-%
-\settowidth{\Width}{O}\setlength{\Width}{-1\Width}%
-\settoheight{\Height}{O}\settodepth{\Depth}{O}\setlength{\Height}{-\Height}%
-\put(-0.0500,-0.0500){\hspace*{\Width}\raisebox{\Height}{O}}%
-%
-%
-\end{picture}}%%
-\newframe%
-{\unitlength=1cm%
-\begin{picture}%
-( 14.34000, 7.30000)( -3.72000, -3.28000)%
-\special{pn 8}%
-%
-\special{pa 787 0}\special{pa 781 -99}\special{pa 763 -196}\special{pa 732 -290}\special{pa 690 -379}%
-\special{pa 637 -463}\special{pa 574 -539}\special{pa 502 -607}\special{pa 422 -665}%
-\special{pa 335 -712}\special{pa 243 -749}\special{pa 148 -773}\special{pa 49 -786}%
-\special{pa -49 -786}\special{pa -148 -773}\special{pa -243 -749}\special{pa -335 -712}%
-\special{pa -422 -665}\special{pa -502 -607}\special{pa -574 -539}\special{pa -637 -463}%
-\special{pa -690 -379}\special{pa -732 -290}\special{pa -763 -196}\special{pa -781 -99}%
-\special{pa -787 0}\special{pa -781 99}\special{pa -763 196}\special{pa -732 290}%
-\special{pa -690 379}\special{pa -637 463}\special{pa -574 539}\special{pa -502 607}%
-\special{pa -422 665}\special{pa -335 712}\special{pa -243 749}\special{pa -148 773}%
-\special{pa -49 786}\special{pa 49 786}\special{pa 148 773}\special{pa 243 749}\special{pa 335 712}%
-\special{pa 422 665}\special{pa 502 607}\special{pa 574 539}\special{pa 637 463}\special{pa 690 379}%
-\special{pa 732 290}\special{pa 763 196}\special{pa 781 99}\special{pa 787 0}%
-\special{fp}%
-\special{pa 1575 0}\special{pa -616 -490}%
-\special{fp}%
-\special{pn 1}%
-\special{pa 490 -256}\special{pa 483 -260}\special{pa 475 -260}\special{pa 468 -256}%
-\special{pa 464 -249}\special{pa 464 -241}\special{pa 468 -234}\special{pa 475 -230}%
-\special{pa 483 -230}\special{pa 490 -234}\special{pa 494 -241}\special{pa 494 -249}%
-\special{pa 490 -256}\special{sh 1}\special{fp}%
-\special{pn 8}%
-\settowidth{\Width}{A}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{A}\settodepth{\Depth}{A}\setlength{\Height}{-\Height}%
-\put(4.0000,-0.0500){\hspace*{\Width}\raisebox{\Height}{A}}%
-%
-%
-\settowidth{\Width}{P}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{P}\settodepth{\Depth}{P}\setlength{\Height}{\Depth}%
-\put(-1.5158,1.2943){\hspace*{\Width}\raisebox{\Height}{P}}%
-%
-%
-\settowidth{\Width}{Q}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{Q}\settodepth{\Depth}{Q}\setlength{\Height}{\Depth}%
-\put(1.2671,0.6721){\hspace*{\Width}\raisebox{\Height}{Q}}%
-%
-%
-\special{pa -1465 0}\special{pa 3984 0}%
-\special{fp}%
-\special{pa 0 1291}\special{pa 0 -1386}%
-\special{fp}%
-\settowidth{\Width}{$x$}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{$x$}\settodepth{\Depth}{$x$}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(10.1700,0.0000){\hspace*{\Width}\raisebox{\Height}{$x$}}%
-%
-%
-\settowidth{\Width}{$y$}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{$y$}\settodepth{\Depth}{$y$}\setlength{\Height}{\Depth}%
-\put(0.0000,3.5700){\hspace*{\Width}\raisebox{\Height}{$y$}}%
-%
-%
-\settowidth{\Width}{O}\setlength{\Width}{-1\Width}%
-\settoheight{\Height}{O}\settodepth{\Depth}{O}\setlength{\Height}{-\Height}%
-\put(-0.0500,-0.0500){\hspace*{\Width}\raisebox{\Height}{O}}%
-%
-%
-\end{picture}}%%
-\newframe%
-{\unitlength=1cm%
-\begin{picture}%
-( 14.34000, 7.30000)( -3.72000, -3.28000)%
-\special{pn 8}%
-%
-\special{pa 787 0}\special{pa 781 -99}\special{pa 763 -196}\special{pa 732 -290}\special{pa 690 -379}%
-\special{pa 637 -463}\special{pa 574 -539}\special{pa 502 -607}\special{pa 422 -665}%
-\special{pa 335 -712}\special{pa 243 -749}\special{pa 148 -773}\special{pa 49 -786}%
-\special{pa -49 -786}\special{pa -148 -773}\special{pa -243 -749}\special{pa -335 -712}%
-\special{pa -422 -665}\special{pa -502 -607}\special{pa -574 -539}\special{pa -637 -463}%
-\special{pa -690 -379}\special{pa -732 -290}\special{pa -763 -196}\special{pa -781 -99}%
-\special{pa -787 0}\special{pa -781 99}\special{pa -763 196}\special{pa -732 290}%
-\special{pa -690 379}\special{pa -637 463}\special{pa -574 539}\special{pa -502 607}%
-\special{pa -422 665}\special{pa -335 712}\special{pa -243 749}\special{pa -148 773}%
-\special{pa -49 786}\special{pa 49 786}\special{pa 148 773}\special{pa 243 749}\special{pa 335 712}%
-\special{pa 422 665}\special{pa 502 607}\special{pa 574 539}\special{pa 637 463}\special{pa 690 379}%
-\special{pa 732 290}\special{pa 763 196}\special{pa 781 99}\special{pa 787 0}%
-\special{fp}%
-\special{pa 1575 0}\special{pa -636 -464}%
-\special{fp}%
-\special{pn 1}%
-\special{pa 480 -243}\special{pa 473 -247}\special{pa 465 -247}\special{pa 458 -243}%
-\special{pa 454 -236}\special{pa 454 -228}\special{pa 458 -221}\special{pa 465 -217}%
-\special{pa 473 -217}\special{pa 480 -221}\special{pa 484 -228}\special{pa 484 -236}%
-\special{pa 480 -243}\special{sh 1}\special{fp}%
-\special{pn 8}%
-\settowidth{\Width}{A}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{A}\settodepth{\Depth}{A}\setlength{\Height}{-\Height}%
-\put(4.0000,-0.0500){\hspace*{\Width}\raisebox{\Height}{A}}%
-%
-%
-\settowidth{\Width}{P}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{P}\settodepth{\Depth}{P}\setlength{\Height}{\Depth}%
-\put(-1.5665,1.2276){\hspace*{\Width}\raisebox{\Height}{P}}%
-%
-%
-\settowidth{\Width}{Q}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{Q}\settodepth{\Depth}{Q}\setlength{\Height}{\Depth}%
-\put(1.2417,0.6388){\hspace*{\Width}\raisebox{\Height}{Q}}%
-%
-%
-\special{pa -1465 0}\special{pa 3984 0}%
-\special{fp}%
-\special{pa 0 1291}\special{pa 0 -1386}%
-\special{fp}%
-\settowidth{\Width}{$x$}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{$x$}\settodepth{\Depth}{$x$}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(10.1700,0.0000){\hspace*{\Width}\raisebox{\Height}{$x$}}%
-%
-%
-\settowidth{\Width}{$y$}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{$y$}\settodepth{\Depth}{$y$}\setlength{\Height}{\Depth}%
-\put(0.0000,3.5700){\hspace*{\Width}\raisebox{\Height}{$y$}}%
-%
-%
-\settowidth{\Width}{O}\setlength{\Width}{-1\Width}%
-\settoheight{\Height}{O}\settodepth{\Depth}{O}\setlength{\Height}{-\Height}%
-\put(-0.0500,-0.0500){\hspace*{\Width}\raisebox{\Height}{O}}%
-%
-%
-\end{picture}}%%
-\newframe%
-{\unitlength=1cm%
-\begin{picture}%
-( 14.34000, 7.30000)( -3.72000, -3.28000)%
-\special{pn 8}%
-%
-\special{pa 787 0}\special{pa 781 -99}\special{pa 763 -196}\special{pa 732 -290}\special{pa 690 -379}%
-\special{pa 637 -463}\special{pa 574 -539}\special{pa 502 -607}\special{pa 422 -665}%
-\special{pa 335 -712}\special{pa 243 -749}\special{pa 148 -773}\special{pa 49 -786}%
-\special{pa -49 -786}\special{pa -148 -773}\special{pa -243 -749}\special{pa -335 -712}%
-\special{pa -422 -665}\special{pa -502 -607}\special{pa -574 -539}\special{pa -637 -463}%
-\special{pa -690 -379}\special{pa -732 -290}\special{pa -763 -196}\special{pa -781 -99}%
-\special{pa -787 0}\special{pa -781 99}\special{pa -763 196}\special{pa -732 290}%
-\special{pa -690 379}\special{pa -637 463}\special{pa -574 539}\special{pa -502 607}%
-\special{pa -422 665}\special{pa -335 712}\special{pa -243 749}\special{pa -148 773}%
-\special{pa -49 786}\special{pa 49 786}\special{pa 148 773}\special{pa 243 749}\special{pa 335 712}%
-\special{pa 422 665}\special{pa 502 607}\special{pa 574 539}\special{pa 637 463}\special{pa 690 379}%
-\special{pa 732 290}\special{pa 763 196}\special{pa 781 99}\special{pa 787 0}%
-\special{fp}%
-\special{pa 1575 0}\special{pa -655 -437}%
-\special{fp}%
-\special{pn 1}%
-\special{pa 471 -229}\special{pa 464 -234}\special{pa 456 -234}\special{pa 449 -229}%
-\special{pa 445 -222}\special{pa 445 -214}\special{pa 449 -207}\special{pa 456 -203}%
-\special{pa 464 -203}\special{pa 471 -207}\special{pa 475 -214}\special{pa 475 -222}%
-\special{pa 471 -229}\special{sh 1}\special{fp}%
-\special{pn 8}%
-\settowidth{\Width}{A}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{A}\settodepth{\Depth}{A}\setlength{\Height}{-\Height}%
-\put(4.0000,-0.0500){\hspace*{\Width}\raisebox{\Height}{A}}%
-%
-%
-\settowidth{\Width}{P}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{P}\settodepth{\Depth}{P}\setlength{\Height}{\Depth}%
-\put(-1.6144,1.1589){\hspace*{\Width}\raisebox{\Height}{P}}%
-%
-%
-\settowidth{\Width}{Q}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{Q}\settodepth{\Depth}{Q}\setlength{\Height}{\Depth}%
-\put(1.2178,0.6045){\hspace*{\Width}\raisebox{\Height}{Q}}%
-%
-%
-\special{pa -1465 0}\special{pa 3984 0}%
-\special{fp}%
-\special{pa 0 1291}\special{pa 0 -1386}%
-\special{fp}%
-\settowidth{\Width}{$x$}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{$x$}\settodepth{\Depth}{$x$}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(10.1700,0.0000){\hspace*{\Width}\raisebox{\Height}{$x$}}%
-%
-%
-\settowidth{\Width}{$y$}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{$y$}\settodepth{\Depth}{$y$}\setlength{\Height}{\Depth}%
-\put(0.0000,3.5700){\hspace*{\Width}\raisebox{\Height}{$y$}}%
-%
-%
-\settowidth{\Width}{O}\setlength{\Width}{-1\Width}%
-\settoheight{\Height}{O}\settodepth{\Depth}{O}\setlength{\Height}{-\Height}%
-\put(-0.0500,-0.0500){\hspace*{\Width}\raisebox{\Height}{O}}%
-%
-%
-\end{picture}}%%
-\newframe%
-{\unitlength=1cm%
-\begin{picture}%
-( 14.34000, 7.30000)( -3.72000, -3.28000)%
-\special{pn 8}%
-%
-\special{pa 787 0}\special{pa 781 -99}\special{pa 763 -196}\special{pa 732 -290}\special{pa 690 -379}%
-\special{pa 637 -463}\special{pa 574 -539}\special{pa 502 -607}\special{pa 422 -665}%
-\special{pa 335 -712}\special{pa 243 -749}\special{pa 148 -773}\special{pa 49 -786}%
-\special{pa -49 -786}\special{pa -148 -773}\special{pa -243 -749}\special{pa -335 -712}%
-\special{pa -422 -665}\special{pa -502 -607}\special{pa -574 -539}\special{pa -637 -463}%
-\special{pa -690 -379}\special{pa -732 -290}\special{pa -763 -196}\special{pa -781 -99}%
-\special{pa -787 0}\special{pa -781 99}\special{pa -763 196}\special{pa -732 290}%
-\special{pa -690 379}\special{pa -637 463}\special{pa -574 539}\special{pa -502 607}%
-\special{pa -422 665}\special{pa -335 712}\special{pa -243 749}\special{pa -148 773}%
-\special{pa -49 786}\special{pa 49 786}\special{pa 148 773}\special{pa 243 749}\special{pa 335 712}%
-\special{pa 422 665}\special{pa 502 607}\special{pa 574 539}\special{pa 637 463}\special{pa 690 379}%
-\special{pa 732 290}\special{pa 763 196}\special{pa 781 99}\special{pa 787 0}%
-\special{fp}%
-\special{pa 1575 0}\special{pa -673 -409}%
-\special{fp}%
-\special{pn 1}%
-\special{pa 462 -216}\special{pa 455 -220}\special{pa 447 -220}\special{pa 440 -216}%
-\special{pa 436 -208}\special{pa 436 -200}\special{pa 440 -193}\special{pa 447 -189}%
-\special{pa 455 -189}\special{pa 462 -193}\special{pa 466 -200}\special{pa 466 -208}%
-\special{pa 462 -216}\special{sh 1}\special{fp}%
-\special{pn 8}%
-\settowidth{\Width}{A}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{A}\settodepth{\Depth}{A}\setlength{\Height}{-\Height}%
-\put(4.0000,-0.0500){\hspace*{\Width}\raisebox{\Height}{A}}%
-%
-%
-\settowidth{\Width}{P}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{P}\settodepth{\Depth}{P}\setlength{\Height}{\Depth}%
-\put(-1.6594,1.0883){\hspace*{\Width}\raisebox{\Height}{P}}%
-%
-%
-\settowidth{\Width}{Q}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{Q}\settodepth{\Depth}{Q}\setlength{\Height}{\Depth}%
-\put(1.1953,0.5692){\hspace*{\Width}\raisebox{\Height}{Q}}%
-%
-%
-\special{pa -1465 0}\special{pa 3984 0}%
-\special{fp}%
-\special{pa 0 1291}\special{pa 0 -1386}%
-\special{fp}%
-\settowidth{\Width}{$x$}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{$x$}\settodepth{\Depth}{$x$}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(10.1700,0.0000){\hspace*{\Width}\raisebox{\Height}{$x$}}%
-%
-%
-\settowidth{\Width}{$y$}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{$y$}\settodepth{\Depth}{$y$}\setlength{\Height}{\Depth}%
-\put(0.0000,3.5700){\hspace*{\Width}\raisebox{\Height}{$y$}}%
-%
-%
-\settowidth{\Width}{O}\setlength{\Width}{-1\Width}%
-\settoheight{\Height}{O}\settodepth{\Depth}{O}\setlength{\Height}{-\Height}%
-\put(-0.0500,-0.0500){\hspace*{\Width}\raisebox{\Height}{O}}%
-%
-%
-\end{picture}}%%
-\newframe%
-{\unitlength=1cm%
-\begin{picture}%
-( 14.34000, 7.30000)( -3.72000, -3.28000)%
-\special{pn 8}%
-%
-\special{pa 787 0}\special{pa 781 -99}\special{pa 763 -196}\special{pa 732 -290}\special{pa 690 -379}%
-\special{pa 637 -463}\special{pa 574 -539}\special{pa 502 -607}\special{pa 422 -665}%
-\special{pa 335 -712}\special{pa 243 -749}\special{pa 148 -773}\special{pa 49 -786}%
-\special{pa -49 -786}\special{pa -148 -773}\special{pa -243 -749}\special{pa -335 -712}%
-\special{pa -422 -665}\special{pa -502 -607}\special{pa -574 -539}\special{pa -637 -463}%
-\special{pa -690 -379}\special{pa -732 -290}\special{pa -763 -196}\special{pa -781 -99}%
-\special{pa -787 0}\special{pa -781 99}\special{pa -763 196}\special{pa -732 290}%
-\special{pa -690 379}\special{pa -637 463}\special{pa -574 539}\special{pa -502 607}%
-\special{pa -422 665}\special{pa -335 712}\special{pa -243 749}\special{pa -148 773}%
-\special{pa -49 786}\special{pa 49 786}\special{pa 148 773}\special{pa 243 749}\special{pa 335 712}%
-\special{pa 422 665}\special{pa 502 607}\special{pa 574 539}\special{pa 637 463}\special{pa 690 379}%
-\special{pa 732 290}\special{pa 763 196}\special{pa 781 99}\special{pa 787 0}%
-\special{fp}%
-\special{pa 1575 0}\special{pa -689 -380}%
-\special{fp}%
-\special{pn 1}%
-\special{pa 454 -201}\special{pa 447 -205}\special{pa 439 -205}\special{pa 432 -201}%
-\special{pa 427 -194}\special{pa 427 -186}\special{pa 432 -179}\special{pa 439 -175}%
-\special{pa 447 -175}\special{pa 454 -179}\special{pa 458 -186}\special{pa 458 -194}%
-\special{pa 454 -201}\special{sh 1}\special{fp}%
-\special{pn 8}%
-\settowidth{\Width}{A}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{A}\settodepth{\Depth}{A}\setlength{\Height}{-\Height}%
-\put(4.0000,-0.0500){\hspace*{\Width}\raisebox{\Height}{A}}%
-%
-%
-\settowidth{\Width}{P}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{P}\settodepth{\Depth}{P}\setlength{\Height}{\Depth}%
-\put(-1.7013,1.0158){\hspace*{\Width}\raisebox{\Height}{P}}%
-%
-%
-\settowidth{\Width}{Q}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{Q}\settodepth{\Depth}{Q}\setlength{\Height}{\Depth}%
-\put(1.1743,0.5329){\hspace*{\Width}\raisebox{\Height}{Q}}%
-%
-%
-\special{pa -1465 0}\special{pa 3984 0}%
-\special{fp}%
-\special{pa 0 1291}\special{pa 0 -1386}%
-\special{fp}%
-\settowidth{\Width}{$x$}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{$x$}\settodepth{\Depth}{$x$}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(10.1700,0.0000){\hspace*{\Width}\raisebox{\Height}{$x$}}%
-%
-%
-\settowidth{\Width}{$y$}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{$y$}\settodepth{\Depth}{$y$}\setlength{\Height}{\Depth}%
-\put(0.0000,3.5700){\hspace*{\Width}\raisebox{\Height}{$y$}}%
-%
-%
-\settowidth{\Width}{O}\setlength{\Width}{-1\Width}%
-\settoheight{\Height}{O}\settodepth{\Depth}{O}\setlength{\Height}{-\Height}%
-\put(-0.0500,-0.0500){\hspace*{\Width}\raisebox{\Height}{O}}%
-%
-%
-\end{picture}}%%
-\newframe%
-{\unitlength=1cm%
-\begin{picture}%
-( 14.34000, 7.30000)( -3.72000, -3.28000)%
-\special{pn 8}%
-%
-\special{pa 787 0}\special{pa 781 -99}\special{pa 763 -196}\special{pa 732 -290}\special{pa 690 -379}%
-\special{pa 637 -463}\special{pa 574 -539}\special{pa 502 -607}\special{pa 422 -665}%
-\special{pa 335 -712}\special{pa 243 -749}\special{pa 148 -773}\special{pa 49 -786}%
-\special{pa -49 -786}\special{pa -148 -773}\special{pa -243 -749}\special{pa -335 -712}%
-\special{pa -422 -665}\special{pa -502 -607}\special{pa -574 -539}\special{pa -637 -463}%
-\special{pa -690 -379}\special{pa -732 -290}\special{pa -763 -196}\special{pa -781 -99}%
-\special{pa -787 0}\special{pa -781 99}\special{pa -763 196}\special{pa -732 290}%
-\special{pa -690 379}\special{pa -637 463}\special{pa -574 539}\special{pa -502 607}%
-\special{pa -422 665}\special{pa -335 712}\special{pa -243 749}\special{pa -148 773}%
-\special{pa -49 786}\special{pa 49 786}\special{pa 148 773}\special{pa 243 749}\special{pa 335 712}%
-\special{pa 422 665}\special{pa 502 607}\special{pa 574 539}\special{pa 637 463}\special{pa 690 379}%
-\special{pa 732 290}\special{pa 763 196}\special{pa 781 99}\special{pa 787 0}%
-\special{fp}%
-\special{pa 1575 0}\special{pa -705 -351}%
-\special{fp}%
-\special{pn 1}%
-\special{pa 446 -187}\special{pa 439 -191}\special{pa 431 -191}\special{pa 424 -187}%
-\special{pa 420 -180}\special{pa 420 -171}\special{pa 424 -164}\special{pa 431 -160}%
-\special{pa 439 -160}\special{pa 446 -164}\special{pa 450 -171}\special{pa 450 -180}%
-\special{pa 446 -187}\special{sh 1}\special{fp}%
-\special{pn 8}%
-\settowidth{\Width}{A}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{A}\settodepth{\Depth}{A}\setlength{\Height}{-\Height}%
-\put(4.0000,-0.0500){\hspace*{\Width}\raisebox{\Height}{A}}%
-%
-%
-\settowidth{\Width}{P}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{P}\settodepth{\Depth}{P}\setlength{\Height}{\Depth}%
-\put(-1.7402,0.9417){\hspace*{\Width}\raisebox{\Height}{P}}%
-%
-%
-\settowidth{\Width}{Q}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{Q}\settodepth{\Depth}{Q}\setlength{\Height}{\Depth}%
-\put(1.1549,0.4959){\hspace*{\Width}\raisebox{\Height}{Q}}%
-%
-%
-\special{pa -1465 0}\special{pa 3984 0}%
-\special{fp}%
-\special{pa 0 1291}\special{pa 0 -1386}%
-\special{fp}%
-\settowidth{\Width}{$x$}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{$x$}\settodepth{\Depth}{$x$}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(10.1700,0.0000){\hspace*{\Width}\raisebox{\Height}{$x$}}%
-%
-%
-\settowidth{\Width}{$y$}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{$y$}\settodepth{\Depth}{$y$}\setlength{\Height}{\Depth}%
-\put(0.0000,3.5700){\hspace*{\Width}\raisebox{\Height}{$y$}}%
-%
-%
-\settowidth{\Width}{O}\setlength{\Width}{-1\Width}%
-\settoheight{\Height}{O}\settodepth{\Depth}{O}\setlength{\Height}{-\Height}%
-\put(-0.0500,-0.0500){\hspace*{\Width}\raisebox{\Height}{O}}%
-%
-%
-\end{picture}}%%
-\newframe%
-{\unitlength=1cm%
-\begin{picture}%
-( 14.34000, 7.30000)( -3.72000, -3.28000)%
-\special{pn 8}%
-%
-\special{pa 787 0}\special{pa 781 -99}\special{pa 763 -196}\special{pa 732 -290}\special{pa 690 -379}%
-\special{pa 637 -463}\special{pa 574 -539}\special{pa 502 -607}\special{pa 422 -665}%
-\special{pa 335 -712}\special{pa 243 -749}\special{pa 148 -773}\special{pa 49 -786}%
-\special{pa -49 -786}\special{pa -148 -773}\special{pa -243 -749}\special{pa -335 -712}%
-\special{pa -422 -665}\special{pa -502 -607}\special{pa -574 -539}\special{pa -637 -463}%
-\special{pa -690 -379}\special{pa -732 -290}\special{pa -763 -196}\special{pa -781 -99}%
-\special{pa -787 0}\special{pa -781 99}\special{pa -763 196}\special{pa -732 290}%
-\special{pa -690 379}\special{pa -637 463}\special{pa -574 539}\special{pa -502 607}%
-\special{pa -422 665}\special{pa -335 712}\special{pa -243 749}\special{pa -148 773}%
-\special{pa -49 786}\special{pa 49 786}\special{pa 148 773}\special{pa 243 749}\special{pa 335 712}%
-\special{pa 422 665}\special{pa 502 607}\special{pa 574 539}\special{pa 637 463}\special{pa 690 379}%
-\special{pa 732 290}\special{pa 763 196}\special{pa 781 99}\special{pa 787 0}%
-\special{fp}%
-\special{pa 1575 0}\special{pa -719 -321}%
-\special{fp}%
-\special{pn 1}%
-\special{pa 439 -172}\special{pa 432 -176}\special{pa 424 -176}\special{pa 417 -172}%
-\special{pa 413 -165}\special{pa 413 -157}\special{pa 417 -149}\special{pa 424 -145}%
-\special{pa 432 -145}\special{pa 439 -149}\special{pa 443 -157}\special{pa 443 -165}%
-\special{pa 439 -172}\special{sh 1}\special{fp}%
-\special{pn 8}%
-\settowidth{\Width}{A}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{A}\settodepth{\Depth}{A}\setlength{\Height}{-\Height}%
-\put(4.0000,-0.0500){\hspace*{\Width}\raisebox{\Height}{A}}%
-%
-%
-\settowidth{\Width}{P}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{P}\settodepth{\Depth}{P}\setlength{\Height}{\Depth}%
-\put(-1.7760,0.8660){\hspace*{\Width}\raisebox{\Height}{P}}%
-%
-%
-\settowidth{\Width}{Q}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{Q}\settodepth{\Depth}{Q}\setlength{\Height}{\Depth}%
-\put(1.1370,0.4580){\hspace*{\Width}\raisebox{\Height}{Q}}%
-%
-%
-\special{pa -1465 0}\special{pa 3984 0}%
-\special{fp}%
-\special{pa 0 1291}\special{pa 0 -1386}%
-\special{fp}%
-\settowidth{\Width}{$x$}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{$x$}\settodepth{\Depth}{$x$}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(10.1700,0.0000){\hspace*{\Width}\raisebox{\Height}{$x$}}%
-%
-%
-\settowidth{\Width}{$y$}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{$y$}\settodepth{\Depth}{$y$}\setlength{\Height}{\Depth}%
-\put(0.0000,3.5700){\hspace*{\Width}\raisebox{\Height}{$y$}}%
-%
-%
-\settowidth{\Width}{O}\setlength{\Width}{-1\Width}%
-\settoheight{\Height}{O}\settodepth{\Depth}{O}\setlength{\Height}{-\Height}%
-\put(-0.0500,-0.0500){\hspace*{\Width}\raisebox{\Height}{O}}%
-%
-%
-\end{picture}}%%
-\newframe%
-{\unitlength=1cm%
-\begin{picture}%
-( 14.34000, 7.30000)( -3.72000, -3.28000)%
-\special{pn 8}%
-%
-\special{pa 787 0}\special{pa 781 -99}\special{pa 763 -196}\special{pa 732 -290}\special{pa 690 -379}%
-\special{pa 637 -463}\special{pa 574 -539}\special{pa 502 -607}\special{pa 422 -665}%
-\special{pa 335 -712}\special{pa 243 -749}\special{pa 148 -773}\special{pa 49 -786}%
-\special{pa -49 -786}\special{pa -148 -773}\special{pa -243 -749}\special{pa -335 -712}%
-\special{pa -422 -665}\special{pa -502 -607}\special{pa -574 -539}\special{pa -637 -463}%
-\special{pa -690 -379}\special{pa -732 -290}\special{pa -763 -196}\special{pa -781 -99}%
-\special{pa -787 0}\special{pa -781 99}\special{pa -763 196}\special{pa -732 290}%
-\special{pa -690 379}\special{pa -637 463}\special{pa -574 539}\special{pa -502 607}%
-\special{pa -422 665}\special{pa -335 712}\special{pa -243 749}\special{pa -148 773}%
-\special{pa -49 786}\special{pa 49 786}\special{pa 148 773}\special{pa 243 749}\special{pa 335 712}%
-\special{pa 422 665}\special{pa 502 607}\special{pa 574 539}\special{pa 637 463}\special{pa 690 379}%
-\special{pa 732 290}\special{pa 763 196}\special{pa 781 99}\special{pa 787 0}%
-\special{fp}%
-\special{pa 1575 0}\special{pa -732 -291}%
-\special{fp}%
-\special{pn 1}%
-\special{pa 433 -157}\special{pa 426 -161}\special{pa 417 -161}\special{pa 410 -157}%
-\special{pa 406 -150}\special{pa 406 -141}\special{pa 410 -134}\special{pa 417 -130}%
-\special{pa 426 -130}\special{pa 433 -134}\special{pa 437 -141}\special{pa 437 -150}%
-\special{pa 433 -157}\special{sh 1}\special{fp}%
-\special{pn 8}%
-\settowidth{\Width}{A}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{A}\settodepth{\Depth}{A}\setlength{\Height}{-\Height}%
-\put(4.0000,-0.0500){\hspace*{\Width}\raisebox{\Height}{A}}%
-%
-%
-\settowidth{\Width}{P}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{P}\settodepth{\Depth}{P}\setlength{\Height}{\Depth}%
-\put(-1.8085,0.7889){\hspace*{\Width}\raisebox{\Height}{P}}%
-%
-%
-\settowidth{\Width}{Q}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{Q}\settodepth{\Depth}{Q}\setlength{\Height}{\Depth}%
-\put(1.1207,0.4194){\hspace*{\Width}\raisebox{\Height}{Q}}%
-%
-%
-\special{pa -1465 0}\special{pa 3984 0}%
-\special{fp}%
-\special{pa 0 1291}\special{pa 0 -1386}%
-\special{fp}%
-\settowidth{\Width}{$x$}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{$x$}\settodepth{\Depth}{$x$}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(10.1700,0.0000){\hspace*{\Width}\raisebox{\Height}{$x$}}%
-%
-%
-\settowidth{\Width}{$y$}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{$y$}\settodepth{\Depth}{$y$}\setlength{\Height}{\Depth}%
-\put(0.0000,3.5700){\hspace*{\Width}\raisebox{\Height}{$y$}}%
-%
-%
-\settowidth{\Width}{O}\setlength{\Width}{-1\Width}%
-\settoheight{\Height}{O}\settodepth{\Depth}{O}\setlength{\Height}{-\Height}%
-\put(-0.0500,-0.0500){\hspace*{\Width}\raisebox{\Height}{O}}%
-%
-%
-\end{picture}}%%
-\newframe%
-{\unitlength=1cm%
-\begin{picture}%
-( 14.34000, 7.30000)( -3.72000, -3.28000)%
-\special{pn 8}%
-%
-\special{pa 787 0}\special{pa 781 -99}\special{pa 763 -196}\special{pa 732 -290}\special{pa 690 -379}%
-\special{pa 637 -463}\special{pa 574 -539}\special{pa 502 -607}\special{pa 422 -665}%
-\special{pa 335 -712}\special{pa 243 -749}\special{pa 148 -773}\special{pa 49 -786}%
-\special{pa -49 -786}\special{pa -148 -773}\special{pa -243 -749}\special{pa -335 -712}%
-\special{pa -422 -665}\special{pa -502 -607}\special{pa -574 -539}\special{pa -637 -463}%
-\special{pa -690 -379}\special{pa -732 -290}\special{pa -763 -196}\special{pa -781 -99}%
-\special{pa -787 0}\special{pa -781 99}\special{pa -763 196}\special{pa -732 290}%
-\special{pa -690 379}\special{pa -637 463}\special{pa -574 539}\special{pa -502 607}%
-\special{pa -422 665}\special{pa -335 712}\special{pa -243 749}\special{pa -148 773}%
-\special{pa -49 786}\special{pa 49 786}\special{pa 148 773}\special{pa 243 749}\special{pa 335 712}%
-\special{pa 422 665}\special{pa 502 607}\special{pa 574 539}\special{pa 637 463}\special{pa 690 379}%
-\special{pa 732 290}\special{pa 763 196}\special{pa 781 99}\special{pa 787 0}%
-\special{fp}%
-\special{pa 1575 0}\special{pa -743 -260}%
-\special{fp}%
-\special{pn 1}%
-\special{pa 427 -141}\special{pa 420 -145}\special{pa 412 -145}\special{pa 405 -141}%
-\special{pa 401 -134}\special{pa 401 -126}\special{pa 405 -119}\special{pa 412 -115}%
-\special{pa 420 -115}\special{pa 427 -119}\special{pa 431 -126}\special{pa 431 -134}%
-\special{pa 427 -141}\special{sh 1}\special{fp}%
-\special{pn 8}%
-\settowidth{\Width}{A}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{A}\settodepth{\Depth}{A}\setlength{\Height}{-\Height}%
-\put(4.0000,-0.0500){\hspace*{\Width}\raisebox{\Height}{A}}%
-%
-%
-\settowidth{\Width}{P}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{P}\settodepth{\Depth}{P}\setlength{\Height}{\Depth}%
-\put(-1.8378,0.7104){\hspace*{\Width}\raisebox{\Height}{P}}%
-%
-%
-\settowidth{\Width}{Q}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{Q}\settodepth{\Depth}{Q}\setlength{\Height}{\Depth}%
-\put(1.1061,0.3802){\hspace*{\Width}\raisebox{\Height}{Q}}%
-%
-%
-\special{pa -1465 0}\special{pa 3984 0}%
-\special{fp}%
-\special{pa 0 1291}\special{pa 0 -1386}%
-\special{fp}%
-\settowidth{\Width}{$x$}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{$x$}\settodepth{\Depth}{$x$}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(10.1700,0.0000){\hspace*{\Width}\raisebox{\Height}{$x$}}%
-%
-%
-\settowidth{\Width}{$y$}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{$y$}\settodepth{\Depth}{$y$}\setlength{\Height}{\Depth}%
-\put(0.0000,3.5700){\hspace*{\Width}\raisebox{\Height}{$y$}}%
-%
-%
-\settowidth{\Width}{O}\setlength{\Width}{-1\Width}%
-\settoheight{\Height}{O}\settodepth{\Depth}{O}\setlength{\Height}{-\Height}%
-\put(-0.0500,-0.0500){\hspace*{\Width}\raisebox{\Height}{O}}%
-%
-%
-\end{picture}}%%
-\newframe%
-{\unitlength=1cm%
-\begin{picture}%
-( 14.34000, 7.30000)( -3.72000, -3.28000)%
-\special{pn 8}%
-%
-\special{pa 787 0}\special{pa 781 -99}\special{pa 763 -196}\special{pa 732 -290}\special{pa 690 -379}%
-\special{pa 637 -463}\special{pa 574 -539}\special{pa 502 -607}\special{pa 422 -665}%
-\special{pa 335 -712}\special{pa 243 -749}\special{pa 148 -773}\special{pa 49 -786}%
-\special{pa -49 -786}\special{pa -148 -773}\special{pa -243 -749}\special{pa -335 -712}%
-\special{pa -422 -665}\special{pa -502 -607}\special{pa -574 -539}\special{pa -637 -463}%
-\special{pa -690 -379}\special{pa -732 -290}\special{pa -763 -196}\special{pa -781 -99}%
-\special{pa -787 0}\special{pa -781 99}\special{pa -763 196}\special{pa -732 290}%
-\special{pa -690 379}\special{pa -637 463}\special{pa -574 539}\special{pa -502 607}%
-\special{pa -422 665}\special{pa -335 712}\special{pa -243 749}\special{pa -148 773}%
-\special{pa -49 786}\special{pa 49 786}\special{pa 148 773}\special{pa 243 749}\special{pa 335 712}%
-\special{pa 422 665}\special{pa 502 607}\special{pa 574 539}\special{pa 637 463}\special{pa 690 379}%
-\special{pa 732 290}\special{pa 763 196}\special{pa 781 99}\special{pa 787 0}%
-\special{fp}%
-\special{pa 1575 0}\special{pa -753 -229}%
-\special{fp}%
-\special{pn 1}%
-\special{pa 422 -125}\special{pa 415 -130}\special{pa 407 -130}\special{pa 400 -125}%
-\special{pa 395 -118}\special{pa 395 -110}\special{pa 400 -103}\special{pa 407 -99}%
-\special{pa 415 -99}\special{pa 422 -103}\special{pa 426 -110}\special{pa 426 -118}%
-\special{pa 422 -125}\special{sh 1}\special{fp}%
-\special{pn 8}%
-\settowidth{\Width}{A}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{A}\settodepth{\Depth}{A}\setlength{\Height}{-\Height}%
-\put(4.0000,-0.0500){\hspace*{\Width}\raisebox{\Height}{A}}%
-%
-%
-\settowidth{\Width}{P}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{P}\settodepth{\Depth}{P}\setlength{\Height}{\Depth}%
-\put(-1.8638,0.6308){\hspace*{\Width}\raisebox{\Height}{P}}%
-%
-%
-\settowidth{\Width}{Q}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{Q}\settodepth{\Depth}{Q}\setlength{\Height}{\Depth}%
-\put(1.0931,0.3404){\hspace*{\Width}\raisebox{\Height}{Q}}%
-%
-%
-\special{pa -1465 0}\special{pa 3984 0}%
-\special{fp}%
-\special{pa 0 1291}\special{pa 0 -1386}%
-\special{fp}%
-\settowidth{\Width}{$x$}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{$x$}\settodepth{\Depth}{$x$}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(10.1700,0.0000){\hspace*{\Width}\raisebox{\Height}{$x$}}%
-%
-%
-\settowidth{\Width}{$y$}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{$y$}\settodepth{\Depth}{$y$}\setlength{\Height}{\Depth}%
-\put(0.0000,3.5700){\hspace*{\Width}\raisebox{\Height}{$y$}}%
-%
-%
-\settowidth{\Width}{O}\setlength{\Width}{-1\Width}%
-\settoheight{\Height}{O}\settodepth{\Depth}{O}\setlength{\Height}{-\Height}%
-\put(-0.0500,-0.0500){\hspace*{\Width}\raisebox{\Height}{O}}%
-%
-%
-\end{picture}}%%
-\newframe%
-{\unitlength=1cm%
-\begin{picture}%
-( 14.34000, 7.30000)( -3.72000, -3.28000)%
-\special{pn 8}%
-%
-\special{pa 787 0}\special{pa 781 -99}\special{pa 763 -196}\special{pa 732 -290}\special{pa 690 -379}%
-\special{pa 637 -463}\special{pa 574 -539}\special{pa 502 -607}\special{pa 422 -665}%
-\special{pa 335 -712}\special{pa 243 -749}\special{pa 148 -773}\special{pa 49 -786}%
-\special{pa -49 -786}\special{pa -148 -773}\special{pa -243 -749}\special{pa -335 -712}%
-\special{pa -422 -665}\special{pa -502 -607}\special{pa -574 -539}\special{pa -637 -463}%
-\special{pa -690 -379}\special{pa -732 -290}\special{pa -763 -196}\special{pa -781 -99}%
-\special{pa -787 0}\special{pa -781 99}\special{pa -763 196}\special{pa -732 290}%
-\special{pa -690 379}\special{pa -637 463}\special{pa -574 539}\special{pa -502 607}%
-\special{pa -422 665}\special{pa -335 712}\special{pa -243 749}\special{pa -148 773}%
-\special{pa -49 786}\special{pa 49 786}\special{pa 148 773}\special{pa 243 749}\special{pa 335 712}%
-\special{pa 422 665}\special{pa 502 607}\special{pa 574 539}\special{pa 637 463}\special{pa 690 379}%
-\special{pa 732 290}\special{pa 763 196}\special{pa 781 99}\special{pa 787 0}%
-\special{fp}%
-\special{pa 1575 0}\special{pa -762 -197}%
-\special{fp}%
-\special{pn 1}%
-\special{pa 417 -110}\special{pa 410 -114}\special{pa 402 -114}\special{pa 395 -110}%
-\special{pa 391 -103}\special{pa 391 -94}\special{pa 395 -87}\special{pa 402 -83}%
-\special{pa 410 -83}\special{pa 417 -87}\special{pa 421 -94}\special{pa 421 -103}%
-\special{pa 417 -110}\special{sh 1}\special{fp}%
-\special{pn 8}%
-\settowidth{\Width}{A}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{A}\settodepth{\Depth}{A}\setlength{\Height}{-\Height}%
-\put(4.0000,-0.0500){\hspace*{\Width}\raisebox{\Height}{A}}%
-%
-%
-\settowidth{\Width}{P}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{P}\settodepth{\Depth}{P}\setlength{\Height}{\Depth}%
-\put(-1.8864,0.5502){\hspace*{\Width}\raisebox{\Height}{P}}%
-%
-%
-\settowidth{\Width}{Q}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{Q}\settodepth{\Depth}{Q}\setlength{\Height}{\Depth}%
-\put(1.0818,0.3001){\hspace*{\Width}\raisebox{\Height}{Q}}%
-%
-%
-\special{pa -1465 0}\special{pa 3984 0}%
-\special{fp}%
-\special{pa 0 1291}\special{pa 0 -1386}%
-\special{fp}%
-\settowidth{\Width}{$x$}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{$x$}\settodepth{\Depth}{$x$}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(10.1700,0.0000){\hspace*{\Width}\raisebox{\Height}{$x$}}%
-%
-%
-\settowidth{\Width}{$y$}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{$y$}\settodepth{\Depth}{$y$}\setlength{\Height}{\Depth}%
-\put(0.0000,3.5700){\hspace*{\Width}\raisebox{\Height}{$y$}}%
-%
-%
-\settowidth{\Width}{O}\setlength{\Width}{-1\Width}%
-\settoheight{\Height}{O}\settodepth{\Depth}{O}\setlength{\Height}{-\Height}%
-\put(-0.0500,-0.0500){\hspace*{\Width}\raisebox{\Height}{O}}%
-%
-%
-\end{picture}}%%
-\newframe%
-{\unitlength=1cm%
-\begin{picture}%
-( 14.34000, 7.30000)( -3.72000, -3.28000)%
-\special{pn 8}%
-%
-\special{pa 787 0}\special{pa 781 -99}\special{pa 763 -196}\special{pa 732 -290}\special{pa 690 -379}%
-\special{pa 637 -463}\special{pa 574 -539}\special{pa 502 -607}\special{pa 422 -665}%
-\special{pa 335 -712}\special{pa 243 -749}\special{pa 148 -773}\special{pa 49 -786}%
-\special{pa -49 -786}\special{pa -148 -773}\special{pa -243 -749}\special{pa -335 -712}%
-\special{pa -422 -665}\special{pa -502 -607}\special{pa -574 -539}\special{pa -637 -463}%
-\special{pa -690 -379}\special{pa -732 -290}\special{pa -763 -196}\special{pa -781 -99}%
-\special{pa -787 0}\special{pa -781 99}\special{pa -763 196}\special{pa -732 290}%
-\special{pa -690 379}\special{pa -637 463}\special{pa -574 539}\special{pa -502 607}%
-\special{pa -422 665}\special{pa -335 712}\special{pa -243 749}\special{pa -148 773}%
-\special{pa -49 786}\special{pa 49 786}\special{pa 148 773}\special{pa 243 749}\special{pa 335 712}%
-\special{pa 422 665}\special{pa 502 607}\special{pa 574 539}\special{pa 637 463}\special{pa 690 379}%
-\special{pa 732 290}\special{pa 763 196}\special{pa 781 99}\special{pa 787 0}%
-\special{fp}%
-\special{pa 1575 0}\special{pa -770 -165}%
-\special{fp}%
-\special{pn 1}%
-\special{pa 414 -94}\special{pa 407 -98}\special{pa 398 -98}\special{pa 391 -94}\special{pa 387 -87}%
-\special{pa 387 -78}\special{pa 391 -71}\special{pa 398 -67}\special{pa 407 -67}\special{pa 414 -71}%
-\special{pa 418 -78}\special{pa 418 -87}\special{pa 414 -94}\special{sh 1}\special{fp}%
-\special{pn 8}%
-\settowidth{\Width}{A}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{A}\settodepth{\Depth}{A}\setlength{\Height}{-\Height}%
-\put(4.0000,-0.0500){\hspace*{\Width}\raisebox{\Height}{A}}%
-%
-%
-\settowidth{\Width}{P}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{P}\settodepth{\Depth}{P}\setlength{\Height}{\Depth}%
-\put(-1.9057,0.4687){\hspace*{\Width}\raisebox{\Height}{P}}%
-%
-%
-\settowidth{\Width}{Q}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{Q}\settodepth{\Depth}{Q}\setlength{\Height}{\Depth}%
-\put(1.0722,0.2594){\hspace*{\Width}\raisebox{\Height}{Q}}%
-%
-%
-\special{pa -1465 0}\special{pa 3984 0}%
-\special{fp}%
-\special{pa 0 1291}\special{pa 0 -1386}%
-\special{fp}%
-\settowidth{\Width}{$x$}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{$x$}\settodepth{\Depth}{$x$}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(10.1700,0.0000){\hspace*{\Width}\raisebox{\Height}{$x$}}%
-%
-%
-\settowidth{\Width}{$y$}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{$y$}\settodepth{\Depth}{$y$}\setlength{\Height}{\Depth}%
-\put(0.0000,3.5700){\hspace*{\Width}\raisebox{\Height}{$y$}}%
-%
-%
-\settowidth{\Width}{O}\setlength{\Width}{-1\Width}%
-\settoheight{\Height}{O}\settodepth{\Depth}{O}\setlength{\Height}{-\Height}%
-\put(-0.0500,-0.0500){\hspace*{\Width}\raisebox{\Height}{O}}%
-%
-%
-\end{picture}}%%
-\newframe%
-{\unitlength=1cm%
-\begin{picture}%
-( 14.34000, 7.30000)( -3.72000, -3.28000)%
-\special{pn 8}%
-%
-\special{pa 787 0}\special{pa 781 -99}\special{pa 763 -196}\special{pa 732 -290}\special{pa 690 -379}%
-\special{pa 637 -463}\special{pa 574 -539}\special{pa 502 -607}\special{pa 422 -665}%
-\special{pa 335 -712}\special{pa 243 -749}\special{pa 148 -773}\special{pa 49 -786}%
-\special{pa -49 -786}\special{pa -148 -773}\special{pa -243 -749}\special{pa -335 -712}%
-\special{pa -422 -665}\special{pa -502 -607}\special{pa -574 -539}\special{pa -637 -463}%
-\special{pa -690 -379}\special{pa -732 -290}\special{pa -763 -196}\special{pa -781 -99}%
-\special{pa -787 0}\special{pa -781 99}\special{pa -763 196}\special{pa -732 290}%
-\special{pa -690 379}\special{pa -637 463}\special{pa -574 539}\special{pa -502 607}%
-\special{pa -422 665}\special{pa -335 712}\special{pa -243 749}\special{pa -148 773}%
-\special{pa -49 786}\special{pa 49 786}\special{pa 148 773}\special{pa 243 749}\special{pa 335 712}%
-\special{pa 422 665}\special{pa 502 607}\special{pa 574 539}\special{pa 637 463}\special{pa 690 379}%
-\special{pa 732 290}\special{pa 763 196}\special{pa 781 99}\special{pa 787 0}%
-\special{fp}%
-\special{pa 1575 0}\special{pa -776 -132}%
-\special{fp}%
-\special{pn 1}%
-\special{pa 410 -77}\special{pa 403 -81}\special{pa 395 -81}\special{pa 388 -77}\special{pa 384 -70}%
-\special{pa 384 -62}\special{pa 388 -55}\special{pa 395 -51}\special{pa 403 -51}\special{pa 410 -55}%
-\special{pa 415 -62}\special{pa 415 -70}\special{pa 410 -77}\special{sh 1}\special{fp}%
-\special{pn 8}%
-\settowidth{\Width}{A}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{A}\settodepth{\Depth}{A}\setlength{\Height}{-\Height}%
-\put(4.0000,-0.0500){\hspace*{\Width}\raisebox{\Height}{A}}%
-%
-%
-\settowidth{\Width}{P}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{P}\settodepth{\Depth}{P}\setlength{\Height}{\Depth}%
-\put(-1.9215,0.3865){\hspace*{\Width}\raisebox{\Height}{P}}%
-%
-%
-\settowidth{\Width}{Q}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{Q}\settodepth{\Depth}{Q}\setlength{\Height}{\Depth}%
-\put(1.0643,0.2183){\hspace*{\Width}\raisebox{\Height}{Q}}%
-%
-%
-\special{pa -1465 0}\special{pa 3984 0}%
-\special{fp}%
-\special{pa 0 1291}\special{pa 0 -1386}%
-\special{fp}%
-\settowidth{\Width}{$x$}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{$x$}\settodepth{\Depth}{$x$}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(10.1700,0.0000){\hspace*{\Width}\raisebox{\Height}{$x$}}%
-%
-%
-\settowidth{\Width}{$y$}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{$y$}\settodepth{\Depth}{$y$}\setlength{\Height}{\Depth}%
-\put(0.0000,3.5700){\hspace*{\Width}\raisebox{\Height}{$y$}}%
-%
-%
-\settowidth{\Width}{O}\setlength{\Width}{-1\Width}%
-\settoheight{\Height}{O}\settodepth{\Depth}{O}\setlength{\Height}{-\Height}%
-\put(-0.0500,-0.0500){\hspace*{\Width}\raisebox{\Height}{O}}%
-%
-%
-\end{picture}}%%
-\newframe%
-{\unitlength=1cm%
-\begin{picture}%
-( 14.34000, 7.30000)( -3.72000, -3.28000)%
-\special{pn 8}%
-%
-\special{pa 787 0}\special{pa 781 -99}\special{pa 763 -196}\special{pa 732 -290}\special{pa 690 -379}%
-\special{pa 637 -463}\special{pa 574 -539}\special{pa 502 -607}\special{pa 422 -665}%
-\special{pa 335 -712}\special{pa 243 -749}\special{pa 148 -773}\special{pa 49 -786}%
-\special{pa -49 -786}\special{pa -148 -773}\special{pa -243 -749}\special{pa -335 -712}%
-\special{pa -422 -665}\special{pa -502 -607}\special{pa -574 -539}\special{pa -637 -463}%
-\special{pa -690 -379}\special{pa -732 -290}\special{pa -763 -196}\special{pa -781 -99}%
-\special{pa -787 0}\special{pa -781 99}\special{pa -763 196}\special{pa -732 290}%
-\special{pa -690 379}\special{pa -637 463}\special{pa -574 539}\special{pa -502 607}%
-\special{pa -422 665}\special{pa -335 712}\special{pa -243 749}\special{pa -148 773}%
-\special{pa -49 786}\special{pa 49 786}\special{pa 148 773}\special{pa 243 749}\special{pa 335 712}%
-\special{pa 422 665}\special{pa 502 607}\special{pa 574 539}\special{pa 637 463}\special{pa 690 379}%
-\special{pa 732 290}\special{pa 763 196}\special{pa 781 99}\special{pa 787 0}%
-\special{fp}%
-\special{pa 1575 0}\special{pa -781 -100}%
-\special{fp}%
-\special{pn 1}%
-\special{pa 408 -61}\special{pa 401 -65}\special{pa 393 -65}\special{pa 386 -61}\special{pa 382 -54}%
-\special{pa 382 -46}\special{pa 386 -39}\special{pa 393 -35}\special{pa 401 -35}\special{pa 408 -39}%
-\special{pa 412 -46}\special{pa 412 -54}\special{pa 408 -61}\special{sh 1}\special{fp}%
-\special{pn 8}%
-\settowidth{\Width}{A}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{A}\settodepth{\Depth}{A}\setlength{\Height}{-\Height}%
-\put(4.0000,-0.0500){\hspace*{\Width}\raisebox{\Height}{A}}%
-%
-%
-\settowidth{\Width}{P}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{P}\settodepth{\Depth}{P}\setlength{\Height}{\Depth}%
-\put(-1.9338,0.3037){\hspace*{\Width}\raisebox{\Height}{P}}%
-%
-%
-\settowidth{\Width}{Q}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{Q}\settodepth{\Depth}{Q}\setlength{\Height}{\Depth}%
-\put(1.0581,0.1769){\hspace*{\Width}\raisebox{\Height}{Q}}%
-%
-%
-\special{pa -1465 0}\special{pa 3984 0}%
-\special{fp}%
-\special{pa 0 1291}\special{pa 0 -1386}%
-\special{fp}%
-\settowidth{\Width}{$x$}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{$x$}\settodepth{\Depth}{$x$}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(10.1700,0.0000){\hspace*{\Width}\raisebox{\Height}{$x$}}%
-%
-%
-\settowidth{\Width}{$y$}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{$y$}\settodepth{\Depth}{$y$}\setlength{\Height}{\Depth}%
-\put(0.0000,3.5700){\hspace*{\Width}\raisebox{\Height}{$y$}}%
-%
-%
-\settowidth{\Width}{O}\setlength{\Width}{-1\Width}%
-\settoheight{\Height}{O}\settodepth{\Depth}{O}\setlength{\Height}{-\Height}%
-\put(-0.0500,-0.0500){\hspace*{\Width}\raisebox{\Height}{O}}%
-%
-%
-\end{picture}}%%
-\newframe%
-{\unitlength=1cm%
-\begin{picture}%
-( 14.34000, 7.30000)( -3.72000, -3.28000)%
-\special{pn 8}%
-%
-\special{pa 787 0}\special{pa 781 -99}\special{pa 763 -196}\special{pa 732 -290}\special{pa 690 -379}%
-\special{pa 637 -463}\special{pa 574 -539}\special{pa 502 -607}\special{pa 422 -665}%
-\special{pa 335 -712}\special{pa 243 -749}\special{pa 148 -773}\special{pa 49 -786}%
-\special{pa -49 -786}\special{pa -148 -773}\special{pa -243 -749}\special{pa -335 -712}%
-\special{pa -422 -665}\special{pa -502 -607}\special{pa -574 -539}\special{pa -637 -463}%
-\special{pa -690 -379}\special{pa -732 -290}\special{pa -763 -196}\special{pa -781 -99}%
-\special{pa -787 0}\special{pa -781 99}\special{pa -763 196}\special{pa -732 290}%
-\special{pa -690 379}\special{pa -637 463}\special{pa -574 539}\special{pa -502 607}%
-\special{pa -422 665}\special{pa -335 712}\special{pa -243 749}\special{pa -148 773}%
-\special{pa -49 786}\special{pa 49 786}\special{pa 148 773}\special{pa 243 749}\special{pa 335 712}%
-\special{pa 422 665}\special{pa 502 607}\special{pa 574 539}\special{pa 637 463}\special{pa 690 379}%
-\special{pa 732 290}\special{pa 763 196}\special{pa 781 99}\special{pa 787 0}%
-\special{fp}%
-\special{pa 1575 0}\special{pa -785 -67}%
-\special{fp}%
-\special{pn 1}%
-\special{pa 406 -45}\special{pa 399 -49}\special{pa 391 -49}\special{pa 384 -45}\special{pa 380 -38}%
-\special{pa 380 -29}\special{pa 384 -22}\special{pa 391 -18}\special{pa 399 -18}\special{pa 406 -22}%
-\special{pa 410 -29}\special{pa 410 -38}\special{pa 406 -45}\special{sh 1}\special{fp}%
-\special{pn 8}%
-\settowidth{\Width}{A}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{A}\settodepth{\Depth}{A}\setlength{\Height}{-\Height}%
-\put(4.0000,-0.0500){\hspace*{\Width}\raisebox{\Height}{A}}%
-%
-%
-\settowidth{\Width}{P}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{P}\settodepth{\Depth}{P}\setlength{\Height}{\Depth}%
-\put(-1.9427,0.2204){\hspace*{\Width}\raisebox{\Height}{P}}%
-%
-%
-\settowidth{\Width}{Q}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{Q}\settodepth{\Depth}{Q}\setlength{\Height}{\Depth}%
-\put(1.0536,0.1352){\hspace*{\Width}\raisebox{\Height}{Q}}%
-%
-%
-\special{pa -1465 0}\special{pa 3984 0}%
-\special{fp}%
-\special{pa 0 1291}\special{pa 0 -1386}%
-\special{fp}%
-\settowidth{\Width}{$x$}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{$x$}\settodepth{\Depth}{$x$}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(10.1700,0.0000){\hspace*{\Width}\raisebox{\Height}{$x$}}%
-%
-%
-\settowidth{\Width}{$y$}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{$y$}\settodepth{\Depth}{$y$}\setlength{\Height}{\Depth}%
-\put(0.0000,3.5700){\hspace*{\Width}\raisebox{\Height}{$y$}}%
-%
-%
-\settowidth{\Width}{O}\setlength{\Width}{-1\Width}%
-\settoheight{\Height}{O}\settodepth{\Depth}{O}\setlength{\Height}{-\Height}%
-\put(-0.0500,-0.0500){\hspace*{\Width}\raisebox{\Height}{O}}%
-%
-%
-\end{picture}}%%
-\newframe%
-{\unitlength=1cm%
-\begin{picture}%
-( 14.34000, 7.30000)( -3.72000, -3.28000)%
-\special{pn 8}%
-%
-\special{pa 787 0}\special{pa 781 -99}\special{pa 763 -196}\special{pa 732 -290}\special{pa 690 -379}%
-\special{pa 637 -463}\special{pa 574 -539}\special{pa 502 -607}\special{pa 422 -665}%
-\special{pa 335 -712}\special{pa 243 -749}\special{pa 148 -773}\special{pa 49 -786}%
-\special{pa -49 -786}\special{pa -148 -773}\special{pa -243 -749}\special{pa -335 -712}%
-\special{pa -422 -665}\special{pa -502 -607}\special{pa -574 -539}\special{pa -637 -463}%
-\special{pa -690 -379}\special{pa -732 -290}\special{pa -763 -196}\special{pa -781 -99}%
-\special{pa -787 0}\special{pa -781 99}\special{pa -763 196}\special{pa -732 290}%
-\special{pa -690 379}\special{pa -637 463}\special{pa -574 539}\special{pa -502 607}%
-\special{pa -422 665}\special{pa -335 712}\special{pa -243 749}\special{pa -148 773}%
-\special{pa -49 786}\special{pa 49 786}\special{pa 148 773}\special{pa 243 749}\special{pa 335 712}%
-\special{pa 422 665}\special{pa 502 607}\special{pa 574 539}\special{pa 637 463}\special{pa 690 379}%
-\special{pa 732 290}\special{pa 763 196}\special{pa 781 99}\special{pa 787 0}%
-\special{fp}%
-\special{pa 1575 0}\special{pa -787 -34}%
-\special{fp}%
-\special{pn 1}%
-\special{pa 405 -28}\special{pa 398 -32}\special{pa 390 -32}\special{pa 383 -28}\special{pa 379 -21}%
-\special{pa 379 -13}\special{pa 383 -6}\special{pa 390 -2}\special{pa 398 -2}\special{pa 405 -6}%
-\special{pa 409 -13}\special{pa 409 -21}\special{pa 405 -28}\special{sh 1}\special{fp}%
-\special{pn 8}%
-\settowidth{\Width}{A}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{A}\settodepth{\Depth}{A}\setlength{\Height}{-\Height}%
-\put(4.0000,-0.0500){\hspace*{\Width}\raisebox{\Height}{A}}%
-%
-%
-\settowidth{\Width}{P}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{P}\settodepth{\Depth}{P}\setlength{\Height}{\Depth}%
-\put(-1.9481,0.1369){\hspace*{\Width}\raisebox{\Height}{P}}%
-%
-%
-\settowidth{\Width}{Q}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{Q}\settodepth{\Depth}{Q}\setlength{\Height}{\Depth}%
-\put(1.0509,0.0935){\hspace*{\Width}\raisebox{\Height}{Q}}%
-%
-%
-\special{pa -1465 0}\special{pa 3984 0}%
-\special{fp}%
-\special{pa 0 1291}\special{pa 0 -1386}%
-\special{fp}%
-\settowidth{\Width}{$x$}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{$x$}\settodepth{\Depth}{$x$}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(10.1700,0.0000){\hspace*{\Width}\raisebox{\Height}{$x$}}%
-%
-%
-\settowidth{\Width}{$y$}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{$y$}\settodepth{\Depth}{$y$}\setlength{\Height}{\Depth}%
-\put(0.0000,3.5700){\hspace*{\Width}\raisebox{\Height}{$y$}}%
-%
-%
-\settowidth{\Width}{O}\setlength{\Width}{-1\Width}%
-\settoheight{\Height}{O}\settodepth{\Depth}{O}\setlength{\Height}{-\Height}%
-\put(-0.0500,-0.0500){\hspace*{\Width}\raisebox{\Height}{O}}%
-%
-%
-\end{picture}}%%
-\newframe%
-{\unitlength=1cm%
-\begin{picture}%
-( 14.34000, 7.30000)( -3.72000, -3.28000)%
-\special{pn 8}%
-%
-\special{pa 787 0}\special{pa 781 -99}\special{pa 763 -196}\special{pa 732 -290}\special{pa 690 -379}%
-\special{pa 637 -463}\special{pa 574 -539}\special{pa 502 -607}\special{pa 422 -665}%
-\special{pa 335 -712}\special{pa 243 -749}\special{pa 148 -773}\special{pa 49 -786}%
-\special{pa -49 -786}\special{pa -148 -773}\special{pa -243 -749}\special{pa -335 -712}%
-\special{pa -422 -665}\special{pa -502 -607}\special{pa -574 -539}\special{pa -637 -463}%
-\special{pa -690 -379}\special{pa -732 -290}\special{pa -763 -196}\special{pa -781 -99}%
-\special{pa -787 0}\special{pa -781 99}\special{pa -763 196}\special{pa -732 290}%
-\special{pa -690 379}\special{pa -637 463}\special{pa -574 539}\special{pa -502 607}%
-\special{pa -422 665}\special{pa -335 712}\special{pa -243 749}\special{pa -148 773}%
-\special{pa -49 786}\special{pa 49 786}\special{pa 148 773}\special{pa 243 749}\special{pa 335 712}%
-\special{pa 422 665}\special{pa 502 607}\special{pa 574 539}\special{pa 637 463}\special{pa 690 379}%
-\special{pa 732 290}\special{pa 763 196}\special{pa 781 99}\special{pa 787 0}%
-\special{fp}%
-\special{pa 1575 0}\special{pa -787 -1}%
-\special{fp}%
-\special{pn 1}%
-\special{pa 405 -12}\special{pa 398 -16}\special{pa 390 -16}\special{pa 383 -12}\special{pa 378 -5}%
-\special{pa 378 3}\special{pa 383 11}\special{pa 390 15}\special{pa 398 15}\special{pa 405 11}%
-\special{pa 409 3}\special{pa 409 -5}\special{pa 405 -12}\special{sh 1}\special{fp}%
-\special{pn 8}%
-\settowidth{\Width}{A}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{A}\settodepth{\Depth}{A}\setlength{\Height}{-\Height}%
-\put(4.0000,-0.0500){\hspace*{\Width}\raisebox{\Height}{A}}%
-%
-%
-\settowidth{\Width}{P}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{P}\settodepth{\Depth}{P}\setlength{\Height}{\Depth}%
-\put(-1.9500,0.0532){\hspace*{\Width}\raisebox{\Height}{P}}%
-%
-%
-\settowidth{\Width}{Q}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{Q}\settodepth{\Depth}{Q}\setlength{\Height}{\Depth}%
-\put(1.0500,0.0516){\hspace*{\Width}\raisebox{\Height}{Q}}%
-%
-%
-\special{pa -1465 0}\special{pa 3984 0}%
-\special{fp}%
-\special{pa 0 1291}\special{pa 0 -1386}%
-\special{fp}%
-\settowidth{\Width}{$x$}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{$x$}\settodepth{\Depth}{$x$}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(10.1700,0.0000){\hspace*{\Width}\raisebox{\Height}{$x$}}%
-%
-%
-\settowidth{\Width}{$y$}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{$y$}\settodepth{\Depth}{$y$}\setlength{\Height}{\Depth}%
-\put(0.0000,3.5700){\hspace*{\Width}\raisebox{\Height}{$y$}}%
-%
-%
-\settowidth{\Width}{O}\setlength{\Width}{-1\Width}%
-\settoheight{\Height}{O}\settodepth{\Depth}{O}\setlength{\Height}{-\Height}%
-\put(-0.0500,-0.0500){\hspace*{\Width}\raisebox{\Height}{O}}%
-%
-%
-\end{picture}}%%
-\newframe%
-{\unitlength=1cm%
-\begin{picture}%
-( 14.34000, 7.30000)( -3.72000, -3.28000)%
-\special{pn 8}%
-%
-\special{pa 787 0}\special{pa 781 -99}\special{pa 763 -196}\special{pa 732 -290}\special{pa 690 -379}%
-\special{pa 637 -463}\special{pa 574 -539}\special{pa 502 -607}\special{pa 422 -665}%
-\special{pa 335 -712}\special{pa 243 -749}\special{pa 148 -773}\special{pa 49 -786}%
-\special{pa -49 -786}\special{pa -148 -773}\special{pa -243 -749}\special{pa -335 -712}%
-\special{pa -422 -665}\special{pa -502 -607}\special{pa -574 -539}\special{pa -637 -463}%
-\special{pa -690 -379}\special{pa -732 -290}\special{pa -763 -196}\special{pa -781 -99}%
-\special{pa -787 0}\special{pa -781 99}\special{pa -763 196}\special{pa -732 290}%
-\special{pa -690 379}\special{pa -637 463}\special{pa -574 539}\special{pa -502 607}%
-\special{pa -422 665}\special{pa -335 712}\special{pa -243 749}\special{pa -148 773}%
-\special{pa -49 786}\special{pa 49 786}\special{pa 148 773}\special{pa 243 749}\special{pa 335 712}%
-\special{pa 422 665}\special{pa 502 607}\special{pa 574 539}\special{pa 637 463}\special{pa 690 379}%
-\special{pa 732 290}\special{pa 763 196}\special{pa 781 99}\special{pa 787 0}%
-\special{fp}%
-\special{pa 1575 0}\special{pa -787 32}%
-\special{fp}%
-\special{pn 1}%
-\special{pa 405 5}\special{pa 398 1}\special{pa 390 1}\special{pa 383 5}\special{pa 379 12}%
-\special{pa 379 20}\special{pa 383 27}\special{pa 390 31}\special{pa 398 31}\special{pa 405 27}%
-\special{pa 409 20}\special{pa 409 12}\special{pa 405 5}\special{sh 1}\special{fp}%
-\special{pn 8}%
-\settowidth{\Width}{A}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{A}\settodepth{\Depth}{A}\setlength{\Height}{-\Height}%
-\put(4.0000,-0.0500){\hspace*{\Width}\raisebox{\Height}{A}}%
-%
-%
-\settowidth{\Width}{P}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{P}\settodepth{\Depth}{P}\setlength{\Height}{\Depth}%
-\put(-1.9484,-0.0305){\hspace*{\Width}\raisebox{\Height}{P}}%
-%
-%
-\settowidth{\Width}{Q}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{Q}\settodepth{\Depth}{Q}\setlength{\Height}{\Depth}%
-\put(1.0508,0.0097){\hspace*{\Width}\raisebox{\Height}{Q}}%
-%
-%
-\special{pa -1465 0}\special{pa 3984 0}%
-\special{fp}%
-\special{pa 0 1291}\special{pa 0 -1386}%
-\special{fp}%
-\settowidth{\Width}{$x$}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{$x$}\settodepth{\Depth}{$x$}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(10.1700,0.0000){\hspace*{\Width}\raisebox{\Height}{$x$}}%
-%
-%
-\settowidth{\Width}{$y$}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{$y$}\settodepth{\Depth}{$y$}\setlength{\Height}{\Depth}%
-\put(0.0000,3.5700){\hspace*{\Width}\raisebox{\Height}{$y$}}%
-%
-%
-\settowidth{\Width}{O}\setlength{\Width}{-1\Width}%
-\settoheight{\Height}{O}\settodepth{\Depth}{O}\setlength{\Height}{-\Height}%
-\put(-0.0500,-0.0500){\hspace*{\Width}\raisebox{\Height}{O}}%
-%
-%
-\end{picture}}%%
-\newframe%
-{\unitlength=1cm%
-\begin{picture}%
-( 14.34000, 7.30000)( -3.72000, -3.28000)%
-\special{pn 8}%
-%
-\special{pa 787 0}\special{pa 781 -99}\special{pa 763 -196}\special{pa 732 -290}\special{pa 690 -379}%
-\special{pa 637 -463}\special{pa 574 -539}\special{pa 502 -607}\special{pa 422 -665}%
-\special{pa 335 -712}\special{pa 243 -749}\special{pa 148 -773}\special{pa 49 -786}%
-\special{pa -49 -786}\special{pa -148 -773}\special{pa -243 -749}\special{pa -335 -712}%
-\special{pa -422 -665}\special{pa -502 -607}\special{pa -574 -539}\special{pa -637 -463}%
-\special{pa -690 -379}\special{pa -732 -290}\special{pa -763 -196}\special{pa -781 -99}%
-\special{pa -787 0}\special{pa -781 99}\special{pa -763 196}\special{pa -732 290}%
-\special{pa -690 379}\special{pa -637 463}\special{pa -574 539}\special{pa -502 607}%
-\special{pa -422 665}\special{pa -335 712}\special{pa -243 749}\special{pa -148 773}%
-\special{pa -49 786}\special{pa 49 786}\special{pa 148 773}\special{pa 243 749}\special{pa 335 712}%
-\special{pa 422 665}\special{pa 502 607}\special{pa 574 539}\special{pa 637 463}\special{pa 690 379}%
-\special{pa 732 290}\special{pa 763 196}\special{pa 781 99}\special{pa 787 0}%
-\special{fp}%
-\special{pa 1575 0}\special{pa -785 65}%
-\special{fp}%
-\special{pn 1}%
-\special{pa 406 21}\special{pa 399 17}\special{pa 391 17}\special{pa 384 21}\special{pa 380 28}%
-\special{pa 380 36}\special{pa 384 43}\special{pa 391 48}\special{pa 399 48}\special{pa 406 43}%
-\special{pa 410 36}\special{pa 410 28}\special{pa 406 21}\special{sh 1}\special{fp}%
-\special{pn 8}%
-\settowidth{\Width}{A}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{A}\settodepth{\Depth}{A}\setlength{\Height}{-\Height}%
-\put(4.0000,-0.0500){\hspace*{\Width}\raisebox{\Height}{A}}%
-%
-%
-\settowidth{\Width}{P}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{P}\settodepth{\Depth}{P}\setlength{\Height}{\Depth}%
-\put(-1.9433,-0.1141){\hspace*{\Width}\raisebox{\Height}{P}}%
-%
-%
-\settowidth{\Width}{Q}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{Q}\settodepth{\Depth}{Q}\setlength{\Height}{\Depth}%
-\put(1.0534,-0.0320){\hspace*{\Width}\raisebox{\Height}{Q}}%
-%
-%
-\special{pa -1465 0}\special{pa 3984 0}%
-\special{fp}%
-\special{pa 0 1291}\special{pa 0 -1386}%
-\special{fp}%
-\settowidth{\Width}{$x$}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{$x$}\settodepth{\Depth}{$x$}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(10.1700,0.0000){\hspace*{\Width}\raisebox{\Height}{$x$}}%
-%
-%
-\settowidth{\Width}{$y$}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{$y$}\settodepth{\Depth}{$y$}\setlength{\Height}{\Depth}%
-\put(0.0000,3.5700){\hspace*{\Width}\raisebox{\Height}{$y$}}%
-%
-%
-\settowidth{\Width}{O}\setlength{\Width}{-1\Width}%
-\settoheight{\Height}{O}\settodepth{\Depth}{O}\setlength{\Height}{-\Height}%
-\put(-0.0500,-0.0500){\hspace*{\Width}\raisebox{\Height}{O}}%
-%
-%
-\end{picture}}%%
-\newframe%
-{\unitlength=1cm%
-\begin{picture}%
-( 14.34000, 7.30000)( -3.72000, -3.28000)%
-\special{pn 8}%
-%
-\special{pa 787 0}\special{pa 781 -99}\special{pa 763 -196}\special{pa 732 -290}\special{pa 690 -379}%
-\special{pa 637 -463}\special{pa 574 -539}\special{pa 502 -607}\special{pa 422 -665}%
-\special{pa 335 -712}\special{pa 243 -749}\special{pa 148 -773}\special{pa 49 -786}%
-\special{pa -49 -786}\special{pa -148 -773}\special{pa -243 -749}\special{pa -335 -712}%
-\special{pa -422 -665}\special{pa -502 -607}\special{pa -574 -539}\special{pa -637 -463}%
-\special{pa -690 -379}\special{pa -732 -290}\special{pa -763 -196}\special{pa -781 -99}%
-\special{pa -787 0}\special{pa -781 99}\special{pa -763 196}\special{pa -732 290}%
-\special{pa -690 379}\special{pa -637 463}\special{pa -574 539}\special{pa -502 607}%
-\special{pa -422 665}\special{pa -335 712}\special{pa -243 749}\special{pa -148 773}%
-\special{pa -49 786}\special{pa 49 786}\special{pa 148 773}\special{pa 243 749}\special{pa 335 712}%
-\special{pa 422 665}\special{pa 502 607}\special{pa 574 539}\special{pa 637 463}\special{pa 690 379}%
-\special{pa 732 290}\special{pa 763 196}\special{pa 781 99}\special{pa 787 0}%
-\special{fp}%
-\special{pa 1575 0}\special{pa -781 97}%
-\special{fp}%
-\special{pn 1}%
-\special{pa 408 38}\special{pa 401 33}\special{pa 393 33}\special{pa 386 38}\special{pa 382 45}%
-\special{pa 382 53}\special{pa 386 60}\special{pa 393 64}\special{pa 401 64}\special{pa 408 60}%
-\special{pa 412 53}\special{pa 412 45}\special{pa 408 38}\special{sh 1}\special{fp}%
-\special{pn 8}%
-\settowidth{\Width}{A}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{A}\settodepth{\Depth}{A}\setlength{\Height}{-\Height}%
-\put(4.0000,-0.0500){\hspace*{\Width}\raisebox{\Height}{A}}%
-%
-%
-\settowidth{\Width}{P}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{P}\settodepth{\Depth}{P}\setlength{\Height}{\Depth}%
-\put(-1.9346,-0.1974){\hspace*{\Width}\raisebox{\Height}{P}}%
-%
-%
-\settowidth{\Width}{Q}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{Q}\settodepth{\Depth}{Q}\setlength{\Height}{\Depth}%
-\put(1.0577,-0.0737){\hspace*{\Width}\raisebox{\Height}{Q}}%
-%
-%
-\special{pa -1465 0}\special{pa 3984 0}%
-\special{fp}%
-\special{pa 0 1291}\special{pa 0 -1386}%
-\special{fp}%
-\settowidth{\Width}{$x$}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{$x$}\settodepth{\Depth}{$x$}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(10.1700,0.0000){\hspace*{\Width}\raisebox{\Height}{$x$}}%
-%
-%
-\settowidth{\Width}{$y$}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{$y$}\settodepth{\Depth}{$y$}\setlength{\Height}{\Depth}%
-\put(0.0000,3.5700){\hspace*{\Width}\raisebox{\Height}{$y$}}%
-%
-%
-\settowidth{\Width}{O}\setlength{\Width}{-1\Width}%
-\settoheight{\Height}{O}\settodepth{\Depth}{O}\setlength{\Height}{-\Height}%
-\put(-0.0500,-0.0500){\hspace*{\Width}\raisebox{\Height}{O}}%
-%
-%
-\end{picture}}%%
-\newframe%
-{\unitlength=1cm%
-\begin{picture}%
-( 14.34000, 7.30000)( -3.72000, -3.28000)%
-\special{pn 8}%
-%
-\special{pa 787 0}\special{pa 781 -99}\special{pa 763 -196}\special{pa 732 -290}\special{pa 690 -379}%
-\special{pa 637 -463}\special{pa 574 -539}\special{pa 502 -607}\special{pa 422 -665}%
-\special{pa 335 -712}\special{pa 243 -749}\special{pa 148 -773}\special{pa 49 -786}%
-\special{pa -49 -786}\special{pa -148 -773}\special{pa -243 -749}\special{pa -335 -712}%
-\special{pa -422 -665}\special{pa -502 -607}\special{pa -574 -539}\special{pa -637 -463}%
-\special{pa -690 -379}\special{pa -732 -290}\special{pa -763 -196}\special{pa -781 -99}%
-\special{pa -787 0}\special{pa -781 99}\special{pa -763 196}\special{pa -732 290}%
-\special{pa -690 379}\special{pa -637 463}\special{pa -574 539}\special{pa -502 607}%
-\special{pa -422 665}\special{pa -335 712}\special{pa -243 749}\special{pa -148 773}%
-\special{pa -49 786}\special{pa 49 786}\special{pa 148 773}\special{pa 243 749}\special{pa 335 712}%
-\special{pa 422 665}\special{pa 502 607}\special{pa 574 539}\special{pa 637 463}\special{pa 690 379}%
-\special{pa 732 290}\special{pa 763 196}\special{pa 781 99}\special{pa 787 0}%
-\special{fp}%
-\special{pa 1575 0}\special{pa -777 130}%
-\special{fp}%
-\special{pn 1}%
-\special{pa 410 54}\special{pa 403 50}\special{pa 395 50}\special{pa 388 54}\special{pa 384 61}%
-\special{pa 384 69}\special{pa 388 76}\special{pa 395 80}\special{pa 403 80}\special{pa 410 76}%
-\special{pa 414 69}\special{pa 414 61}\special{pa 410 54}\special{sh 1}\special{fp}%
-\special{pn 8}%
-\settowidth{\Width}{A}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{A}\settodepth{\Depth}{A}\setlength{\Height}{-\Height}%
-\put(4.0000,-0.0500){\hspace*{\Width}\raisebox{\Height}{A}}%
-%
-%
-\settowidth{\Width}{P}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{P}\settodepth{\Depth}{P}\setlength{\Height}{\Depth}%
-\put(-1.9225,-0.2802){\hspace*{\Width}\raisebox{\Height}{P}}%
-%
-%
-\settowidth{\Width}{Q}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{Q}\settodepth{\Depth}{Q}\setlength{\Height}{\Depth}%
-\put(1.0637,-0.1151){\hspace*{\Width}\raisebox{\Height}{Q}}%
-%
-%
-\special{pa -1465 0}\special{pa 3984 0}%
-\special{fp}%
-\special{pa 0 1291}\special{pa 0 -1386}%
-\special{fp}%
-\settowidth{\Width}{$x$}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{$x$}\settodepth{\Depth}{$x$}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(10.1700,0.0000){\hspace*{\Width}\raisebox{\Height}{$x$}}%
-%
-%
-\settowidth{\Width}{$y$}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{$y$}\settodepth{\Depth}{$y$}\setlength{\Height}{\Depth}%
-\put(0.0000,3.5700){\hspace*{\Width}\raisebox{\Height}{$y$}}%
-%
-%
-\settowidth{\Width}{O}\setlength{\Width}{-1\Width}%
-\settoheight{\Height}{O}\settodepth{\Depth}{O}\setlength{\Height}{-\Height}%
-\put(-0.0500,-0.0500){\hspace*{\Width}\raisebox{\Height}{O}}%
-%
-%
-\end{picture}}%%
-\newframe%
-{\unitlength=1cm%
-\begin{picture}%
-( 14.34000, 7.30000)( -3.72000, -3.28000)%
-\special{pn 8}%
-%
-\special{pa 787 0}\special{pa 781 -99}\special{pa 763 -196}\special{pa 732 -290}\special{pa 690 -379}%
-\special{pa 637 -463}\special{pa 574 -539}\special{pa 502 -607}\special{pa 422 -665}%
-\special{pa 335 -712}\special{pa 243 -749}\special{pa 148 -773}\special{pa 49 -786}%
-\special{pa -49 -786}\special{pa -148 -773}\special{pa -243 -749}\special{pa -335 -712}%
-\special{pa -422 -665}\special{pa -502 -607}\special{pa -574 -539}\special{pa -637 -463}%
-\special{pa -690 -379}\special{pa -732 -290}\special{pa -763 -196}\special{pa -781 -99}%
-\special{pa -787 0}\special{pa -781 99}\special{pa -763 196}\special{pa -732 290}%
-\special{pa -690 379}\special{pa -637 463}\special{pa -574 539}\special{pa -502 607}%
-\special{pa -422 665}\special{pa -335 712}\special{pa -243 749}\special{pa -148 773}%
-\special{pa -49 786}\special{pa 49 786}\special{pa 148 773}\special{pa 243 749}\special{pa 335 712}%
-\special{pa 422 665}\special{pa 502 607}\special{pa 574 539}\special{pa 637 463}\special{pa 690 379}%
-\special{pa 732 290}\special{pa 763 196}\special{pa 781 99}\special{pa 787 0}%
-\special{fp}%
-\special{pa 1575 0}\special{pa -770 162}%
-\special{fp}%
-\special{pn 1}%
-\special{pa 413 70}\special{pa 406 66}\special{pa 398 66}\special{pa 391 70}\special{pa 387 77}%
-\special{pa 387 85}\special{pa 391 92}\special{pa 398 96}\special{pa 406 96}\special{pa 413 92}%
-\special{pa 417 85}\special{pa 417 77}\special{pa 413 70}\special{sh 1}\special{fp}%
-\special{pn 8}%
-\settowidth{\Width}{A}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{A}\settodepth{\Depth}{A}\setlength{\Height}{-\Height}%
-\put(4.0000,-0.0500){\hspace*{\Width}\raisebox{\Height}{A}}%
-%
-%
-\settowidth{\Width}{P}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{P}\settodepth{\Depth}{P}\setlength{\Height}{\Depth}%
-\put(-1.9070,-0.3625){\hspace*{\Width}\raisebox{\Height}{P}}%
-%
-%
-\settowidth{\Width}{Q}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{Q}\settodepth{\Depth}{Q}\setlength{\Height}{\Depth}%
-\put(1.0715,-0.1562){\hspace*{\Width}\raisebox{\Height}{Q}}%
-%
-%
-\special{pa -1465 0}\special{pa 3984 0}%
-\special{fp}%
-\special{pa 0 1291}\special{pa 0 -1386}%
-\special{fp}%
-\settowidth{\Width}{$x$}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{$x$}\settodepth{\Depth}{$x$}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(10.1700,0.0000){\hspace*{\Width}\raisebox{\Height}{$x$}}%
-%
-%
-\settowidth{\Width}{$y$}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{$y$}\settodepth{\Depth}{$y$}\setlength{\Height}{\Depth}%
-\put(0.0000,3.5700){\hspace*{\Width}\raisebox{\Height}{$y$}}%
-%
-%
-\settowidth{\Width}{O}\setlength{\Width}{-1\Width}%
-\settoheight{\Height}{O}\settodepth{\Depth}{O}\setlength{\Height}{-\Height}%
-\put(-0.0500,-0.0500){\hspace*{\Width}\raisebox{\Height}{O}}%
-%
-%
-\end{picture}}%%
-\newframe%
-{\unitlength=1cm%
-\begin{picture}%
-( 14.34000, 7.30000)( -3.72000, -3.28000)%
-\special{pn 8}%
-%
-\special{pa 787 0}\special{pa 781 -99}\special{pa 763 -196}\special{pa 732 -290}\special{pa 690 -379}%
-\special{pa 637 -463}\special{pa 574 -539}\special{pa 502 -607}\special{pa 422 -665}%
-\special{pa 335 -712}\special{pa 243 -749}\special{pa 148 -773}\special{pa 49 -786}%
-\special{pa -49 -786}\special{pa -148 -773}\special{pa -243 -749}\special{pa -335 -712}%
-\special{pa -422 -665}\special{pa -502 -607}\special{pa -574 -539}\special{pa -637 -463}%
-\special{pa -690 -379}\special{pa -732 -290}\special{pa -763 -196}\special{pa -781 -99}%
-\special{pa -787 0}\special{pa -781 99}\special{pa -763 196}\special{pa -732 290}%
-\special{pa -690 379}\special{pa -637 463}\special{pa -574 539}\special{pa -502 607}%
-\special{pa -422 665}\special{pa -335 712}\special{pa -243 749}\special{pa -148 773}%
-\special{pa -49 786}\special{pa 49 786}\special{pa 148 773}\special{pa 243 749}\special{pa 335 712}%
-\special{pa 422 665}\special{pa 502 607}\special{pa 574 539}\special{pa 637 463}\special{pa 690 379}%
-\special{pa 732 290}\special{pa 763 196}\special{pa 781 99}\special{pa 787 0}%
-\special{fp}%
-\special{pa 1575 0}\special{pa -763 195}%
-\special{fp}%
-\special{pn 1}%
-\special{pa 417 86}\special{pa 410 82}\special{pa 402 82}\special{pa 395 86}\special{pa 391 93}%
-\special{pa 391 101}\special{pa 395 108}\special{pa 402 112}\special{pa 410 112}\special{pa 417 108}%
-\special{pa 421 101}\special{pa 421 93}\special{pa 417 86}\special{sh 1}\special{fp}%
-\special{pn 8}%
-\settowidth{\Width}{A}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{A}\settodepth{\Depth}{A}\setlength{\Height}{-\Height}%
-\put(4.0000,-0.0500){\hspace*{\Width}\raisebox{\Height}{A}}%
-%
-%
-\settowidth{\Width}{P}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{P}\settodepth{\Depth}{P}\setlength{\Height}{\Depth}%
-\put(-1.8880,-0.4441){\hspace*{\Width}\raisebox{\Height}{P}}%
-%
-%
-\settowidth{\Width}{Q}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{Q}\settodepth{\Depth}{Q}\setlength{\Height}{\Depth}%
-\put(1.0810,-0.1970){\hspace*{\Width}\raisebox{\Height}{Q}}%
-%
-%
-\special{pa -1465 0}\special{pa 3984 0}%
-\special{fp}%
-\special{pa 0 1291}\special{pa 0 -1386}%
-\special{fp}%
-\settowidth{\Width}{$x$}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{$x$}\settodepth{\Depth}{$x$}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(10.1700,0.0000){\hspace*{\Width}\raisebox{\Height}{$x$}}%
-%
-%
-\settowidth{\Width}{$y$}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{$y$}\settodepth{\Depth}{$y$}\setlength{\Height}{\Depth}%
-\put(0.0000,3.5700){\hspace*{\Width}\raisebox{\Height}{$y$}}%
-%
-%
-\settowidth{\Width}{O}\setlength{\Width}{-1\Width}%
-\settoheight{\Height}{O}\settodepth{\Depth}{O}\setlength{\Height}{-\Height}%
-\put(-0.0500,-0.0500){\hspace*{\Width}\raisebox{\Height}{O}}%
-%
-%
-\end{picture}}%%
-\newframe%
-{\unitlength=1cm%
-\begin{picture}%
-( 14.34000, 7.30000)( -3.72000, -3.28000)%
-\special{pn 8}%
-%
-\special{pa 787 0}\special{pa 781 -99}\special{pa 763 -196}\special{pa 732 -290}\special{pa 690 -379}%
-\special{pa 637 -463}\special{pa 574 -539}\special{pa 502 -607}\special{pa 422 -665}%
-\special{pa 335 -712}\special{pa 243 -749}\special{pa 148 -773}\special{pa 49 -786}%
-\special{pa -49 -786}\special{pa -148 -773}\special{pa -243 -749}\special{pa -335 -712}%
-\special{pa -422 -665}\special{pa -502 -607}\special{pa -574 -539}\special{pa -637 -463}%
-\special{pa -690 -379}\special{pa -732 -290}\special{pa -763 -196}\special{pa -781 -99}%
-\special{pa -787 0}\special{pa -781 99}\special{pa -763 196}\special{pa -732 290}%
-\special{pa -690 379}\special{pa -637 463}\special{pa -574 539}\special{pa -502 607}%
-\special{pa -422 665}\special{pa -335 712}\special{pa -243 749}\special{pa -148 773}%
-\special{pa -49 786}\special{pa 49 786}\special{pa 148 773}\special{pa 243 749}\special{pa 335 712}%
-\special{pa 422 665}\special{pa 502 607}\special{pa 574 539}\special{pa 637 463}\special{pa 690 379}%
-\special{pa 732 290}\special{pa 763 196}\special{pa 781 99}\special{pa 787 0}%
-\special{fp}%
-\special{pa 1575 0}\special{pa -754 226}%
-\special{fp}%
-\special{pn 1}%
-\special{pa 421 102}\special{pa 414 98}\special{pa 406 98}\special{pa 399 102}\special{pa 395 109}%
-\special{pa 395 117}\special{pa 399 124}\special{pa 406 128}\special{pa 414 128}\special{pa 421 124}%
-\special{pa 426 117}\special{pa 426 109}\special{pa 421 102}\special{sh 1}\special{fp}%
-\special{pn 8}%
-\settowidth{\Width}{A}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{A}\settodepth{\Depth}{A}\setlength{\Height}{-\Height}%
-\put(4.0000,-0.0500){\hspace*{\Width}\raisebox{\Height}{A}}%
-%
-%
-\settowidth{\Width}{P}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{P}\settodepth{\Depth}{P}\setlength{\Height}{\Depth}%
-\put(-1.8656,-0.5247){\hspace*{\Width}\raisebox{\Height}{P}}%
-%
-%
-\settowidth{\Width}{Q}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{Q}\settodepth{\Depth}{Q}\setlength{\Height}{\Depth}%
-\put(1.0922,-0.2374){\hspace*{\Width}\raisebox{\Height}{Q}}%
-%
-%
-\special{pa -1465 0}\special{pa 3984 0}%
-\special{fp}%
-\special{pa 0 1291}\special{pa 0 -1386}%
-\special{fp}%
-\settowidth{\Width}{$x$}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{$x$}\settodepth{\Depth}{$x$}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(10.1700,0.0000){\hspace*{\Width}\raisebox{\Height}{$x$}}%
-%
-%
-\settowidth{\Width}{$y$}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{$y$}\settodepth{\Depth}{$y$}\setlength{\Height}{\Depth}%
-\put(0.0000,3.5700){\hspace*{\Width}\raisebox{\Height}{$y$}}%
-%
-%
-\settowidth{\Width}{O}\setlength{\Width}{-1\Width}%
-\settoheight{\Height}{O}\settodepth{\Depth}{O}\setlength{\Height}{-\Height}%
-\put(-0.0500,-0.0500){\hspace*{\Width}\raisebox{\Height}{O}}%
-%
-%
-\end{picture}}%%
-\newframe%
-{\unitlength=1cm%
-\begin{picture}%
-( 14.34000, 7.30000)( -3.72000, -3.28000)%
-\special{pn 8}%
-%
-\special{pa 787 0}\special{pa 781 -99}\special{pa 763 -196}\special{pa 732 -290}\special{pa 690 -379}%
-\special{pa 637 -463}\special{pa 574 -539}\special{pa 502 -607}\special{pa 422 -665}%
-\special{pa 335 -712}\special{pa 243 -749}\special{pa 148 -773}\special{pa 49 -786}%
-\special{pa -49 -786}\special{pa -148 -773}\special{pa -243 -749}\special{pa -335 -712}%
-\special{pa -422 -665}\special{pa -502 -607}\special{pa -574 -539}\special{pa -637 -463}%
-\special{pa -690 -379}\special{pa -732 -290}\special{pa -763 -196}\special{pa -781 -99}%
-\special{pa -787 0}\special{pa -781 99}\special{pa -763 196}\special{pa -732 290}%
-\special{pa -690 379}\special{pa -637 463}\special{pa -574 539}\special{pa -502 607}%
-\special{pa -422 665}\special{pa -335 712}\special{pa -243 749}\special{pa -148 773}%
-\special{pa -49 786}\special{pa 49 786}\special{pa 148 773}\special{pa 243 749}\special{pa 335 712}%
-\special{pa 422 665}\special{pa 502 607}\special{pa 574 539}\special{pa 637 463}\special{pa 690 379}%
-\special{pa 732 290}\special{pa 763 196}\special{pa 781 99}\special{pa 787 0}%
-\special{fp}%
-\special{pa 1575 0}\special{pa -744 258}%
-\special{fp}%
-\special{pn 1}%
-\special{pa 427 118}\special{pa 419 114}\special{pa 411 114}\special{pa 404 118}\special{pa 400 125}%
-\special{pa 400 133}\special{pa 404 140}\special{pa 411 144}\special{pa 419 144}\special{pa 427 140}%
-\special{pa 431 133}\special{pa 431 125}\special{pa 427 118}\special{sh 1}\special{fp}%
-\special{pn 8}%
-\settowidth{\Width}{A}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{A}\settodepth{\Depth}{A}\setlength{\Height}{-\Height}%
-\put(4.0000,-0.0500){\hspace*{\Width}\raisebox{\Height}{A}}%
-%
-%
-\settowidth{\Width}{P}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{P}\settodepth{\Depth}{P}\setlength{\Height}{\Depth}%
-\put(-1.8399,-0.6044){\hspace*{\Width}\raisebox{\Height}{P}}%
-%
-%
-\settowidth{\Width}{Q}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{Q}\settodepth{\Depth}{Q}\setlength{\Height}{\Depth}%
-\put(1.1051,-0.2772){\hspace*{\Width}\raisebox{\Height}{Q}}%
-%
-%
-\special{pa -1465 0}\special{pa 3984 0}%
-\special{fp}%
-\special{pa 0 1291}\special{pa 0 -1386}%
-\special{fp}%
-\settowidth{\Width}{$x$}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{$x$}\settodepth{\Depth}{$x$}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(10.1700,0.0000){\hspace*{\Width}\raisebox{\Height}{$x$}}%
-%
-%
-\settowidth{\Width}{$y$}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{$y$}\settodepth{\Depth}{$y$}\setlength{\Height}{\Depth}%
-\put(0.0000,3.5700){\hspace*{\Width}\raisebox{\Height}{$y$}}%
-%
-%
-\settowidth{\Width}{O}\setlength{\Width}{-1\Width}%
-\settoheight{\Height}{O}\settodepth{\Depth}{O}\setlength{\Height}{-\Height}%
-\put(-0.0500,-0.0500){\hspace*{\Width}\raisebox{\Height}{O}}%
-%
-%
-\end{picture}}%%
-\newframe%
-{\unitlength=1cm%
-\begin{picture}%
-( 14.34000, 7.30000)( -3.72000, -3.28000)%
-\special{pn 8}%
-%
-\special{pa 787 0}\special{pa 781 -99}\special{pa 763 -196}\special{pa 732 -290}\special{pa 690 -379}%
-\special{pa 637 -463}\special{pa 574 -539}\special{pa 502 -607}\special{pa 422 -665}%
-\special{pa 335 -712}\special{pa 243 -749}\special{pa 148 -773}\special{pa 49 -786}%
-\special{pa -49 -786}\special{pa -148 -773}\special{pa -243 -749}\special{pa -335 -712}%
-\special{pa -422 -665}\special{pa -502 -607}\special{pa -574 -539}\special{pa -637 -463}%
-\special{pa -690 -379}\special{pa -732 -290}\special{pa -763 -196}\special{pa -781 -99}%
-\special{pa -787 0}\special{pa -781 99}\special{pa -763 196}\special{pa -732 290}%
-\special{pa -690 379}\special{pa -637 463}\special{pa -574 539}\special{pa -502 607}%
-\special{pa -422 665}\special{pa -335 712}\special{pa -243 749}\special{pa -148 773}%
-\special{pa -49 786}\special{pa 49 786}\special{pa 148 773}\special{pa 243 749}\special{pa 335 712}%
-\special{pa 422 665}\special{pa 502 607}\special{pa 574 539}\special{pa 637 463}\special{pa 690 379}%
-\special{pa 732 290}\special{pa 763 196}\special{pa 781 99}\special{pa 787 0}%
-\special{fp}%
-\special{pa 1575 0}\special{pa -733 289}%
-\special{fp}%
-\special{pn 1}%
-\special{pa 432 133}\special{pa 425 129}\special{pa 417 129}\special{pa 410 133}\special{pa 406 140}%
-\special{pa 406 148}\special{pa 410 155}\special{pa 417 159}\special{pa 425 159}\special{pa 432 155}%
-\special{pa 436 148}\special{pa 436 140}\special{pa 432 133}\special{sh 1}\special{fp}%
-\special{pn 8}%
-\settowidth{\Width}{A}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{A}\settodepth{\Depth}{A}\setlength{\Height}{-\Height}%
-\put(4.0000,-0.0500){\hspace*{\Width}\raisebox{\Height}{A}}%
-%
-%
-\settowidth{\Width}{P}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{P}\settodepth{\Depth}{P}\setlength{\Height}{\Depth}%
-\put(-1.8109,-0.6829){\hspace*{\Width}\raisebox{\Height}{P}}%
-%
-%
-\settowidth{\Width}{Q}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{Q}\settodepth{\Depth}{Q}\setlength{\Height}{\Depth}%
-\put(1.1196,-0.3165){\hspace*{\Width}\raisebox{\Height}{Q}}%
-%
-%
-\special{pa -1465 0}\special{pa 3984 0}%
-\special{fp}%
-\special{pa 0 1291}\special{pa 0 -1386}%
-\special{fp}%
-\settowidth{\Width}{$x$}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{$x$}\settodepth{\Depth}{$x$}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(10.1700,0.0000){\hspace*{\Width}\raisebox{\Height}{$x$}}%
-%
-%
-\settowidth{\Width}{$y$}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{$y$}\settodepth{\Depth}{$y$}\setlength{\Height}{\Depth}%
-\put(0.0000,3.5700){\hspace*{\Width}\raisebox{\Height}{$y$}}%
-%
-%
-\settowidth{\Width}{O}\setlength{\Width}{-1\Width}%
-\settoheight{\Height}{O}\settodepth{\Depth}{O}\setlength{\Height}{-\Height}%
-\put(-0.0500,-0.0500){\hspace*{\Width}\raisebox{\Height}{O}}%
-%
-%
-\end{picture}}%%
-\newframe%
-{\unitlength=1cm%
-\begin{picture}%
-( 14.34000, 7.30000)( -3.72000, -3.28000)%
-\special{pn 8}%
-%
-\special{pa 787 0}\special{pa 781 -99}\special{pa 763 -196}\special{pa 732 -290}\special{pa 690 -379}%
-\special{pa 637 -463}\special{pa 574 -539}\special{pa 502 -607}\special{pa 422 -665}%
-\special{pa 335 -712}\special{pa 243 -749}\special{pa 148 -773}\special{pa 49 -786}%
-\special{pa -49 -786}\special{pa -148 -773}\special{pa -243 -749}\special{pa -335 -712}%
-\special{pa -422 -665}\special{pa -502 -607}\special{pa -574 -539}\special{pa -637 -463}%
-\special{pa -690 -379}\special{pa -732 -290}\special{pa -763 -196}\special{pa -781 -99}%
-\special{pa -787 0}\special{pa -781 99}\special{pa -763 196}\special{pa -732 290}%
-\special{pa -690 379}\special{pa -637 463}\special{pa -574 539}\special{pa -502 607}%
-\special{pa -422 665}\special{pa -335 712}\special{pa -243 749}\special{pa -148 773}%
-\special{pa -49 786}\special{pa 49 786}\special{pa 148 773}\special{pa 243 749}\special{pa 335 712}%
-\special{pa 422 665}\special{pa 502 607}\special{pa 574 539}\special{pa 637 463}\special{pa 690 379}%
-\special{pa 732 290}\special{pa 763 196}\special{pa 781 99}\special{pa 787 0}%
-\special{fp}%
-\special{pa 1575 0}\special{pa -720 319}%
-\special{fp}%
-\special{pn 1}%
-\special{pa 439 148}\special{pa 432 144}\special{pa 423 144}\special{pa 416 148}\special{pa 412 155}%
-\special{pa 412 164}\special{pa 416 171}\special{pa 423 175}\special{pa 432 175}\special{pa 439 171}%
-\special{pa 443 164}\special{pa 443 155}\special{pa 439 148}\special{sh 1}\special{fp}%
-\special{pn 8}%
-\settowidth{\Width}{A}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{A}\settodepth{\Depth}{A}\setlength{\Height}{-\Height}%
-\put(4.0000,-0.0500){\hspace*{\Width}\raisebox{\Height}{A}}%
-%
-%
-\settowidth{\Width}{P}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{P}\settodepth{\Depth}{P}\setlength{\Height}{\Depth}%
-\put(-1.7786,-0.7602){\hspace*{\Width}\raisebox{\Height}{P}}%
-%
-%
-\settowidth{\Width}{Q}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{Q}\settodepth{\Depth}{Q}\setlength{\Height}{\Depth}%
-\put(1.1357,-0.3551){\hspace*{\Width}\raisebox{\Height}{Q}}%
-%
-%
-\special{pa -1465 0}\special{pa 3984 0}%
-\special{fp}%
-\special{pa 0 1291}\special{pa 0 -1386}%
-\special{fp}%
-\settowidth{\Width}{$x$}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{$x$}\settodepth{\Depth}{$x$}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(10.1700,0.0000){\hspace*{\Width}\raisebox{\Height}{$x$}}%
-%
-%
-\settowidth{\Width}{$y$}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{$y$}\settodepth{\Depth}{$y$}\setlength{\Height}{\Depth}%
-\put(0.0000,3.5700){\hspace*{\Width}\raisebox{\Height}{$y$}}%
-%
-%
-\settowidth{\Width}{O}\setlength{\Width}{-1\Width}%
-\settoheight{\Height}{O}\settodepth{\Depth}{O}\setlength{\Height}{-\Height}%
-\put(-0.0500,-0.0500){\hspace*{\Width}\raisebox{\Height}{O}}%
-%
-%
-\end{picture}}%%
-\newframe%
-{\unitlength=1cm%
-\begin{picture}%
-( 14.34000, 7.30000)( -3.72000, -3.28000)%
-\special{pn 8}%
-%
-\special{pa 787 0}\special{pa 781 -99}\special{pa 763 -196}\special{pa 732 -290}\special{pa 690 -379}%
-\special{pa 637 -463}\special{pa 574 -539}\special{pa 502 -607}\special{pa 422 -665}%
-\special{pa 335 -712}\special{pa 243 -749}\special{pa 148 -773}\special{pa 49 -786}%
-\special{pa -49 -786}\special{pa -148 -773}\special{pa -243 -749}\special{pa -335 -712}%
-\special{pa -422 -665}\special{pa -502 -607}\special{pa -574 -539}\special{pa -637 -463}%
-\special{pa -690 -379}\special{pa -732 -290}\special{pa -763 -196}\special{pa -781 -99}%
-\special{pa -787 0}\special{pa -781 99}\special{pa -763 196}\special{pa -732 290}%
-\special{pa -690 379}\special{pa -637 463}\special{pa -574 539}\special{pa -502 607}%
-\special{pa -422 665}\special{pa -335 712}\special{pa -243 749}\special{pa -148 773}%
-\special{pa -49 786}\special{pa 49 786}\special{pa 148 773}\special{pa 243 749}\special{pa 335 712}%
-\special{pa 422 665}\special{pa 502 607}\special{pa 574 539}\special{pa 637 463}\special{pa 690 379}%
-\special{pa 732 290}\special{pa 763 196}\special{pa 781 99}\special{pa 787 0}%
-\special{fp}%
-\special{pa 1575 0}\special{pa -706 349}%
-\special{fp}%
-\special{pn 1}%
-\special{pa 446 163}\special{pa 439 159}\special{pa 430 159}\special{pa 423 163}\special{pa 419 170}%
-\special{pa 419 178}\special{pa 423 186}\special{pa 430 190}\special{pa 439 190}\special{pa 446 186}%
-\special{pa 450 178}\special{pa 450 170}\special{pa 446 163}\special{sh 1}\special{fp}%
-\special{pn 8}%
-\settowidth{\Width}{A}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{A}\settodepth{\Depth}{A}\setlength{\Height}{-\Height}%
-\put(4.0000,-0.0500){\hspace*{\Width}\raisebox{\Height}{A}}%
-%
-%
-\settowidth{\Width}{P}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{P}\settodepth{\Depth}{P}\setlength{\Height}{\Depth}%
-\put(-1.7430,-0.8360){\hspace*{\Width}\raisebox{\Height}{P}}%
-%
-%
-\settowidth{\Width}{Q}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{Q}\settodepth{\Depth}{Q}\setlength{\Height}{\Depth}%
-\put(1.1535,-0.3930){\hspace*{\Width}\raisebox{\Height}{Q}}%
-%
-%
-\special{pa -1465 0}\special{pa 3984 0}%
-\special{fp}%
-\special{pa 0 1291}\special{pa 0 -1386}%
-\special{fp}%
-\settowidth{\Width}{$x$}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{$x$}\settodepth{\Depth}{$x$}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(10.1700,0.0000){\hspace*{\Width}\raisebox{\Height}{$x$}}%
-%
-%
-\settowidth{\Width}{$y$}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{$y$}\settodepth{\Depth}{$y$}\setlength{\Height}{\Depth}%
-\put(0.0000,3.5700){\hspace*{\Width}\raisebox{\Height}{$y$}}%
-%
-%
-\settowidth{\Width}{O}\setlength{\Width}{-1\Width}%
-\settoheight{\Height}{O}\settodepth{\Depth}{O}\setlength{\Height}{-\Height}%
-\put(-0.0500,-0.0500){\hspace*{\Width}\raisebox{\Height}{O}}%
-%
-%
-\end{picture}}%%
-\newframe%
-{\unitlength=1cm%
-\begin{picture}%
-( 14.34000, 7.30000)( -3.72000, -3.28000)%
-\special{pn 8}%
-%
-\special{pa 787 0}\special{pa 781 -99}\special{pa 763 -196}\special{pa 732 -290}\special{pa 690 -379}%
-\special{pa 637 -463}\special{pa 574 -539}\special{pa 502 -607}\special{pa 422 -665}%
-\special{pa 335 -712}\special{pa 243 -749}\special{pa 148 -773}\special{pa 49 -786}%
-\special{pa -49 -786}\special{pa -148 -773}\special{pa -243 -749}\special{pa -335 -712}%
-\special{pa -422 -665}\special{pa -502 -607}\special{pa -574 -539}\special{pa -637 -463}%
-\special{pa -690 -379}\special{pa -732 -290}\special{pa -763 -196}\special{pa -781 -99}%
-\special{pa -787 0}\special{pa -781 99}\special{pa -763 196}\special{pa -732 290}%
-\special{pa -690 379}\special{pa -637 463}\special{pa -574 539}\special{pa -502 607}%
-\special{pa -422 665}\special{pa -335 712}\special{pa -243 749}\special{pa -148 773}%
-\special{pa -49 786}\special{pa 49 786}\special{pa 148 773}\special{pa 243 749}\special{pa 335 712}%
-\special{pa 422 665}\special{pa 502 607}\special{pa 574 539}\special{pa 637 463}\special{pa 690 379}%
-\special{pa 732 290}\special{pa 763 196}\special{pa 781 99}\special{pa 787 0}%
-\special{fp}%
-\special{pa 1575 0}\special{pa -691 378}%
-\special{fp}%
-\special{pn 1}%
-\special{pa 453 178}\special{pa 446 174}\special{pa 438 174}\special{pa 431 178}\special{pa 427 185}%
-\special{pa 427 193}\special{pa 431 200}\special{pa 438 204}\special{pa 446 204}\special{pa 453 200}%
-\special{pa 457 193}\special{pa 457 185}\special{pa 453 178}\special{sh 1}\special{fp}%
-\special{pn 8}%
-\settowidth{\Width}{A}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{A}\settodepth{\Depth}{A}\setlength{\Height}{-\Height}%
-\put(4.0000,-0.0500){\hspace*{\Width}\raisebox{\Height}{A}}%
-%
-%
-\settowidth{\Width}{P}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{P}\settodepth{\Depth}{P}\setlength{\Height}{\Depth}%
-\put(-1.7044,-0.9103){\hspace*{\Width}\raisebox{\Height}{P}}%
-%
-%
-\settowidth{\Width}{Q}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{Q}\settodepth{\Depth}{Q}\setlength{\Height}{\Depth}%
-\put(1.1728,-0.4301){\hspace*{\Width}\raisebox{\Height}{Q}}%
-%
-%
-\special{pa -1465 0}\special{pa 3984 0}%
-\special{fp}%
-\special{pa 0 1291}\special{pa 0 -1386}%
-\special{fp}%
-\settowidth{\Width}{$x$}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{$x$}\settodepth{\Depth}{$x$}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(10.1700,0.0000){\hspace*{\Width}\raisebox{\Height}{$x$}}%
-%
-%
-\settowidth{\Width}{$y$}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{$y$}\settodepth{\Depth}{$y$}\setlength{\Height}{\Depth}%
-\put(0.0000,3.5700){\hspace*{\Width}\raisebox{\Height}{$y$}}%
-%
-%
-\settowidth{\Width}{O}\setlength{\Width}{-1\Width}%
-\settoheight{\Height}{O}\settodepth{\Depth}{O}\setlength{\Height}{-\Height}%
-\put(-0.0500,-0.0500){\hspace*{\Width}\raisebox{\Height}{O}}%
-%
-%
-\end{picture}}%%
-\newframe%
-{\unitlength=1cm%
-\begin{picture}%
-( 14.34000, 7.30000)( -3.72000, -3.28000)%
-\special{pn 8}%
-%
-\special{pa 787 0}\special{pa 781 -99}\special{pa 763 -196}\special{pa 732 -290}\special{pa 690 -379}%
-\special{pa 637 -463}\special{pa 574 -539}\special{pa 502 -607}\special{pa 422 -665}%
-\special{pa 335 -712}\special{pa 243 -749}\special{pa 148 -773}\special{pa 49 -786}%
-\special{pa -49 -786}\special{pa -148 -773}\special{pa -243 -749}\special{pa -335 -712}%
-\special{pa -422 -665}\special{pa -502 -607}\special{pa -574 -539}\special{pa -637 -463}%
-\special{pa -690 -379}\special{pa -732 -290}\special{pa -763 -196}\special{pa -781 -99}%
-\special{pa -787 0}\special{pa -781 99}\special{pa -763 196}\special{pa -732 290}%
-\special{pa -690 379}\special{pa -637 463}\special{pa -574 539}\special{pa -502 607}%
-\special{pa -422 665}\special{pa -335 712}\special{pa -243 749}\special{pa -148 773}%
-\special{pa -49 786}\special{pa 49 786}\special{pa 148 773}\special{pa 243 749}\special{pa 335 712}%
-\special{pa 422 665}\special{pa 502 607}\special{pa 574 539}\special{pa 637 463}\special{pa 690 379}%
-\special{pa 732 290}\special{pa 763 196}\special{pa 781 99}\special{pa 787 0}%
-\special{fp}%
-\special{pa 1575 0}\special{pa -674 407}%
-\special{fp}%
-\special{pn 1}%
-\special{pa 461 192}\special{pa 454 188}\special{pa 446 188}\special{pa 439 192}\special{pa 435 199}%
-\special{pa 435 207}\special{pa 439 214}\special{pa 446 219}\special{pa 454 219}\special{pa 461 214}%
-\special{pa 465 207}\special{pa 465 199}\special{pa 461 192}\special{sh 1}\special{fp}%
-\special{pn 8}%
-\settowidth{\Width}{A}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{A}\settodepth{\Depth}{A}\setlength{\Height}{-\Height}%
-\put(4.0000,-0.0500){\hspace*{\Width}\raisebox{\Height}{A}}%
-%
-%
-\settowidth{\Width}{P}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{P}\settodepth{\Depth}{P}\setlength{\Height}{\Depth}%
-\put(-1.6627,-0.9829){\hspace*{\Width}\raisebox{\Height}{P}}%
-%
-%
-\settowidth{\Width}{Q}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{Q}\settodepth{\Depth}{Q}\setlength{\Height}{\Depth}%
-\put(1.1937,-0.4664){\hspace*{\Width}\raisebox{\Height}{Q}}%
-%
-%
-\special{pa -1465 0}\special{pa 3984 0}%
-\special{fp}%
-\special{pa 0 1291}\special{pa 0 -1386}%
-\special{fp}%
-\settowidth{\Width}{$x$}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{$x$}\settodepth{\Depth}{$x$}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(10.1700,0.0000){\hspace*{\Width}\raisebox{\Height}{$x$}}%
-%
-%
-\settowidth{\Width}{$y$}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{$y$}\settodepth{\Depth}{$y$}\setlength{\Height}{\Depth}%
-\put(0.0000,3.5700){\hspace*{\Width}\raisebox{\Height}{$y$}}%
-%
-%
-\settowidth{\Width}{O}\setlength{\Width}{-1\Width}%
-\settoheight{\Height}{O}\settodepth{\Depth}{O}\setlength{\Height}{-\Height}%
-\put(-0.0500,-0.0500){\hspace*{\Width}\raisebox{\Height}{O}}%
-%
-%
-\end{picture}}%%
-\newframe%
-{\unitlength=1cm%
-\begin{picture}%
-( 14.34000, 7.30000)( -3.72000, -3.28000)%
-\special{pn 8}%
-%
-\special{pa 787 0}\special{pa 781 -99}\special{pa 763 -196}\special{pa 732 -290}\special{pa 690 -379}%
-\special{pa 637 -463}\special{pa 574 -539}\special{pa 502 -607}\special{pa 422 -665}%
-\special{pa 335 -712}\special{pa 243 -749}\special{pa 148 -773}\special{pa 49 -786}%
-\special{pa -49 -786}\special{pa -148 -773}\special{pa -243 -749}\special{pa -335 -712}%
-\special{pa -422 -665}\special{pa -502 -607}\special{pa -574 -539}\special{pa -637 -463}%
-\special{pa -690 -379}\special{pa -732 -290}\special{pa -763 -196}\special{pa -781 -99}%
-\special{pa -787 0}\special{pa -781 99}\special{pa -763 196}\special{pa -732 290}%
-\special{pa -690 379}\special{pa -637 463}\special{pa -574 539}\special{pa -502 607}%
-\special{pa -422 665}\special{pa -335 712}\special{pa -243 749}\special{pa -148 773}%
-\special{pa -49 786}\special{pa 49 786}\special{pa 148 773}\special{pa 243 749}\special{pa 335 712}%
-\special{pa 422 665}\special{pa 502 607}\special{pa 574 539}\special{pa 637 463}\special{pa 690 379}%
-\special{pa 732 290}\special{pa 763 196}\special{pa 781 99}\special{pa 787 0}%
-\special{fp}%
-\special{pa 1575 0}\special{pa -657 435}%
-\special{fp}%
-\special{pn 1}%
-\special{pa 470 206}\special{pa 463 202}\special{pa 455 202}\special{pa 448 206}\special{pa 444 213}%
-\special{pa 444 221}\special{pa 448 228}\special{pa 455 232}\special{pa 463 232}\special{pa 470 228}%
-\special{pa 474 221}\special{pa 474 213}\special{pa 470 206}\special{sh 1}\special{fp}%
-\special{pn 8}%
-\settowidth{\Width}{A}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{A}\settodepth{\Depth}{A}\setlength{\Height}{-\Height}%
-\put(4.0000,-0.0500){\hspace*{\Width}\raisebox{\Height}{A}}%
-%
-%
-\settowidth{\Width}{P}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{P}\settodepth{\Depth}{P}\setlength{\Height}{\Depth}%
-\put(-1.6179,-1.0536){\hspace*{\Width}\raisebox{\Height}{P}}%
-%
-%
-\settowidth{\Width}{Q}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{Q}\settodepth{\Depth}{Q}\setlength{\Height}{\Depth}%
-\put(1.2160,-0.5018){\hspace*{\Width}\raisebox{\Height}{Q}}%
-%
-%
-\special{pa -1465 0}\special{pa 3984 0}%
-\special{fp}%
-\special{pa 0 1291}\special{pa 0 -1386}%
-\special{fp}%
-\settowidth{\Width}{$x$}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{$x$}\settodepth{\Depth}{$x$}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(10.1700,0.0000){\hspace*{\Width}\raisebox{\Height}{$x$}}%
-%
-%
-\settowidth{\Width}{$y$}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{$y$}\settodepth{\Depth}{$y$}\setlength{\Height}{\Depth}%
-\put(0.0000,3.5700){\hspace*{\Width}\raisebox{\Height}{$y$}}%
-%
-%
-\settowidth{\Width}{O}\setlength{\Width}{-1\Width}%
-\settoheight{\Height}{O}\settodepth{\Depth}{O}\setlength{\Height}{-\Height}%
-\put(-0.0500,-0.0500){\hspace*{\Width}\raisebox{\Height}{O}}%
-%
-%
-\end{picture}}%%
-\newframe%
-{\unitlength=1cm%
-\begin{picture}%
-( 14.34000, 7.30000)( -3.72000, -3.28000)%
-\special{pn 8}%
-%
-\special{pa 787 0}\special{pa 781 -99}\special{pa 763 -196}\special{pa 732 -290}\special{pa 690 -379}%
-\special{pa 637 -463}\special{pa 574 -539}\special{pa 502 -607}\special{pa 422 -665}%
-\special{pa 335 -712}\special{pa 243 -749}\special{pa 148 -773}\special{pa 49 -786}%
-\special{pa -49 -786}\special{pa -148 -773}\special{pa -243 -749}\special{pa -335 -712}%
-\special{pa -422 -665}\special{pa -502 -607}\special{pa -574 -539}\special{pa -637 -463}%
-\special{pa -690 -379}\special{pa -732 -290}\special{pa -763 -196}\special{pa -781 -99}%
-\special{pa -787 0}\special{pa -781 99}\special{pa -763 196}\special{pa -732 290}%
-\special{pa -690 379}\special{pa -637 463}\special{pa -574 539}\special{pa -502 607}%
-\special{pa -422 665}\special{pa -335 712}\special{pa -243 749}\special{pa -148 773}%
-\special{pa -49 786}\special{pa 49 786}\special{pa 148 773}\special{pa 243 749}\special{pa 335 712}%
-\special{pa 422 665}\special{pa 502 607}\special{pa 574 539}\special{pa 637 463}\special{pa 690 379}%
-\special{pa 732 290}\special{pa 763 196}\special{pa 781 99}\special{pa 787 0}%
-\special{fp}%
-\special{pa 1575 0}\special{pa -638 462}%
-\special{fp}%
-\special{pn 1}%
-\special{pa 480 220}\special{pa 473 216}\special{pa 464 216}\special{pa 457 220}\special{pa 453 227}%
-\special{pa 453 235}\special{pa 457 242}\special{pa 464 246}\special{pa 473 246}\special{pa 480 242}%
-\special{pa 484 235}\special{pa 484 227}\special{pa 480 220}\special{sh 1}\special{fp}%
-\special{pn 8}%
-\settowidth{\Width}{A}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{A}\settodepth{\Depth}{A}\setlength{\Height}{-\Height}%
-\put(4.0000,-0.0500){\hspace*{\Width}\raisebox{\Height}{A}}%
-%
-%
-\settowidth{\Width}{P}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{P}\settodepth{\Depth}{P}\setlength{\Height}{\Depth}%
-\put(-1.5703,-1.1225){\hspace*{\Width}\raisebox{\Height}{P}}%
-%
-%
-\settowidth{\Width}{Q}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{Q}\settodepth{\Depth}{Q}\setlength{\Height}{\Depth}%
-\put(1.2399,-0.5362){\hspace*{\Width}\raisebox{\Height}{Q}}%
-%
-%
-\special{pa -1465 0}\special{pa 3984 0}%
-\special{fp}%
-\special{pa 0 1291}\special{pa 0 -1386}%
-\special{fp}%
-\settowidth{\Width}{$x$}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{$x$}\settodepth{\Depth}{$x$}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(10.1700,0.0000){\hspace*{\Width}\raisebox{\Height}{$x$}}%
-%
-%
-\settowidth{\Width}{$y$}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{$y$}\settodepth{\Depth}{$y$}\setlength{\Height}{\Depth}%
-\put(0.0000,3.5700){\hspace*{\Width}\raisebox{\Height}{$y$}}%
-%
-%
-\settowidth{\Width}{O}\setlength{\Width}{-1\Width}%
-\settoheight{\Height}{O}\settodepth{\Depth}{O}\setlength{\Height}{-\Height}%
-\put(-0.0500,-0.0500){\hspace*{\Width}\raisebox{\Height}{O}}%
-%
-%
-\end{picture}}%%
-\newframe%
-{\unitlength=1cm%
-\begin{picture}%
-( 14.34000, 7.30000)( -3.72000, -3.28000)%
-\special{pn 8}%
-%
-\special{pa 787 0}\special{pa 781 -99}\special{pa 763 -196}\special{pa 732 -290}\special{pa 690 -379}%
-\special{pa 637 -463}\special{pa 574 -539}\special{pa 502 -607}\special{pa 422 -665}%
-\special{pa 335 -712}\special{pa 243 -749}\special{pa 148 -773}\special{pa 49 -786}%
-\special{pa -49 -786}\special{pa -148 -773}\special{pa -243 -749}\special{pa -335 -712}%
-\special{pa -422 -665}\special{pa -502 -607}\special{pa -574 -539}\special{pa -637 -463}%
-\special{pa -690 -379}\special{pa -732 -290}\special{pa -763 -196}\special{pa -781 -99}%
-\special{pa -787 0}\special{pa -781 99}\special{pa -763 196}\special{pa -732 290}%
-\special{pa -690 379}\special{pa -637 463}\special{pa -574 539}\special{pa -502 607}%
-\special{pa -422 665}\special{pa -335 712}\special{pa -243 749}\special{pa -148 773}%
-\special{pa -49 786}\special{pa 49 786}\special{pa 148 773}\special{pa 243 749}\special{pa 335 712}%
-\special{pa 422 665}\special{pa 502 607}\special{pa 574 539}\special{pa 637 463}\special{pa 690 379}%
-\special{pa 732 290}\special{pa 763 196}\special{pa 781 99}\special{pa 787 0}%
-\special{fp}%
-\special{pa 1575 0}\special{pa -618 488}%
-\special{fp}%
-\special{pn 1}%
-\special{pa 490 233}\special{pa 482 229}\special{pa 474 229}\special{pa 467 233}\special{pa 463 240}%
-\special{pa 463 248}\special{pa 467 255}\special{pa 474 259}\special{pa 482 259}\special{pa 490 255}%
-\special{pa 494 248}\special{pa 494 240}\special{pa 490 233}\special{sh 1}\special{fp}%
-\special{pn 8}%
-\settowidth{\Width}{A}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{A}\settodepth{\Depth}{A}\setlength{\Height}{-\Height}%
-\put(4.0000,-0.0500){\hspace*{\Width}\raisebox{\Height}{A}}%
-%
-%
-\settowidth{\Width}{P}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{P}\settodepth{\Depth}{P}\setlength{\Height}{\Depth}%
-\put(-1.5198,-1.1893){\hspace*{\Width}\raisebox{\Height}{P}}%
-%
-%
-\settowidth{\Width}{Q}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{Q}\settodepth{\Depth}{Q}\setlength{\Height}{\Depth}%
-\put(1.2651,-0.5696){\hspace*{\Width}\raisebox{\Height}{Q}}%
-%
-%
-\special{pa -1465 0}\special{pa 3984 0}%
-\special{fp}%
-\special{pa 0 1291}\special{pa 0 -1386}%
-\special{fp}%
-\settowidth{\Width}{$x$}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{$x$}\settodepth{\Depth}{$x$}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(10.1700,0.0000){\hspace*{\Width}\raisebox{\Height}{$x$}}%
-%
-%
-\settowidth{\Width}{$y$}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{$y$}\settodepth{\Depth}{$y$}\setlength{\Height}{\Depth}%
-\put(0.0000,3.5700){\hspace*{\Width}\raisebox{\Height}{$y$}}%
-%
-%
-\settowidth{\Width}{O}\setlength{\Width}{-1\Width}%
-\settoheight{\Height}{O}\settodepth{\Depth}{O}\setlength{\Height}{-\Height}%
-\put(-0.0500,-0.0500){\hspace*{\Width}\raisebox{\Height}{O}}%
-%
-%
-\end{picture}}%%
-\newframe%
-{\unitlength=1cm%
-\begin{picture}%
-( 14.34000, 7.30000)( -3.72000, -3.28000)%
-\special{pn 8}%
-%
-\special{pa 787 0}\special{pa 781 -99}\special{pa 763 -196}\special{pa 732 -290}\special{pa 690 -379}%
-\special{pa 637 -463}\special{pa 574 -539}\special{pa 502 -607}\special{pa 422 -665}%
-\special{pa 335 -712}\special{pa 243 -749}\special{pa 148 -773}\special{pa 49 -786}%
-\special{pa -49 -786}\special{pa -148 -773}\special{pa -243 -749}\special{pa -335 -712}%
-\special{pa -422 -665}\special{pa -502 -607}\special{pa -574 -539}\special{pa -637 -463}%
-\special{pa -690 -379}\special{pa -732 -290}\special{pa -763 -196}\special{pa -781 -99}%
-\special{pa -787 0}\special{pa -781 99}\special{pa -763 196}\special{pa -732 290}%
-\special{pa -690 379}\special{pa -637 463}\special{pa -574 539}\special{pa -502 607}%
-\special{pa -422 665}\special{pa -335 712}\special{pa -243 749}\special{pa -148 773}%
-\special{pa -49 786}\special{pa 49 786}\special{pa 148 773}\special{pa 243 749}\special{pa 335 712}%
-\special{pa 422 665}\special{pa 502 607}\special{pa 574 539}\special{pa 637 463}\special{pa 690 379}%
-\special{pa 732 290}\special{pa 763 196}\special{pa 781 99}\special{pa 787 0}%
-\special{fp}%
-\special{pa 1575 0}\special{pa -597 513}%
-\special{fp}%
-\special{pn 1}%
-\special{pa 500 246}\special{pa 493 241}\special{pa 485 241}\special{pa 478 246}\special{pa 474 253}%
-\special{pa 474 261}\special{pa 478 268}\special{pa 485 272}\special{pa 493 272}\special{pa 500 268}%
-\special{pa 504 261}\special{pa 504 253}\special{pa 500 246}\special{sh 1}\special{fp}%
-\special{pn 8}%
-\settowidth{\Width}{A}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{A}\settodepth{\Depth}{A}\setlength{\Height}{-\Height}%
-\put(4.0000,-0.0500){\hspace*{\Width}\raisebox{\Height}{A}}%
-%
-%
-\settowidth{\Width}{P}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{P}\settodepth{\Depth}{P}\setlength{\Height}{\Depth}%
-\put(-1.4665,-1.2539){\hspace*{\Width}\raisebox{\Height}{P}}%
-%
-%
-\settowidth{\Width}{Q}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{Q}\settodepth{\Depth}{Q}\setlength{\Height}{\Depth}%
-\put(1.2917,-0.6019){\hspace*{\Width}\raisebox{\Height}{Q}}%
-%
-%
-\special{pa -1465 0}\special{pa 3984 0}%
-\special{fp}%
-\special{pa 0 1291}\special{pa 0 -1386}%
-\special{fp}%
-\settowidth{\Width}{$x$}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{$x$}\settodepth{\Depth}{$x$}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(10.1700,0.0000){\hspace*{\Width}\raisebox{\Height}{$x$}}%
-%
-%
-\settowidth{\Width}{$y$}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{$y$}\settodepth{\Depth}{$y$}\setlength{\Height}{\Depth}%
-\put(0.0000,3.5700){\hspace*{\Width}\raisebox{\Height}{$y$}}%
-%
-%
-\settowidth{\Width}{O}\setlength{\Width}{-1\Width}%
-\settoheight{\Height}{O}\settodepth{\Depth}{O}\setlength{\Height}{-\Height}%
-\put(-0.0500,-0.0500){\hspace*{\Width}\raisebox{\Height}{O}}%
-%
-%
-\end{picture}}%%
-\newframe%
-{\unitlength=1cm%
-\begin{picture}%
-( 14.34000, 7.30000)( -3.72000, -3.28000)%
-\special{pn 8}%
-%
-\special{pa 787 0}\special{pa 781 -99}\special{pa 763 -196}\special{pa 732 -290}\special{pa 690 -379}%
-\special{pa 637 -463}\special{pa 574 -539}\special{pa 502 -607}\special{pa 422 -665}%
-\special{pa 335 -712}\special{pa 243 -749}\special{pa 148 -773}\special{pa 49 -786}%
-\special{pa -49 -786}\special{pa -148 -773}\special{pa -243 -749}\special{pa -335 -712}%
-\special{pa -422 -665}\special{pa -502 -607}\special{pa -574 -539}\special{pa -637 -463}%
-\special{pa -690 -379}\special{pa -732 -290}\special{pa -763 -196}\special{pa -781 -99}%
-\special{pa -787 0}\special{pa -781 99}\special{pa -763 196}\special{pa -732 290}%
-\special{pa -690 379}\special{pa -637 463}\special{pa -574 539}\special{pa -502 607}%
-\special{pa -422 665}\special{pa -335 712}\special{pa -243 749}\special{pa -148 773}%
-\special{pa -49 786}\special{pa 49 786}\special{pa 148 773}\special{pa 243 749}\special{pa 335 712}%
-\special{pa 422 665}\special{pa 502 607}\special{pa 574 539}\special{pa 637 463}\special{pa 690 379}%
-\special{pa 732 290}\special{pa 763 196}\special{pa 781 99}\special{pa 787 0}%
-\special{fp}%
-\special{pa 1575 0}\special{pa -575 538}%
-\special{fp}%
-\special{pn 1}%
-\special{pa 511 258}\special{pa 504 254}\special{pa 496 254}\special{pa 489 258}\special{pa 485 265}%
-\special{pa 485 273}\special{pa 489 280}\special{pa 496 284}\special{pa 504 284}\special{pa 511 280}%
-\special{pa 515 273}\special{pa 515 265}\special{pa 511 258}\special{sh 1}\special{fp}%
-\special{pn 8}%
-\settowidth{\Width}{A}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{A}\settodepth{\Depth}{A}\setlength{\Height}{-\Height}%
-\put(4.0000,-0.0500){\hspace*{\Width}\raisebox{\Height}{A}}%
-%
-%
-\settowidth{\Width}{P}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{P}\settodepth{\Depth}{P}\setlength{\Height}{\Depth}%
-\put(-1.4106,-1.3162){\hspace*{\Width}\raisebox{\Height}{P}}%
-%
-%
-\settowidth{\Width}{Q}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{Q}\settodepth{\Depth}{Q}\setlength{\Height}{\Depth}%
-\put(1.3197,-0.6331){\hspace*{\Width}\raisebox{\Height}{Q}}%
-%
-%
-\special{pa -1465 0}\special{pa 3984 0}%
-\special{fp}%
-\special{pa 0 1291}\special{pa 0 -1386}%
-\special{fp}%
-\settowidth{\Width}{$x$}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{$x$}\settodepth{\Depth}{$x$}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(10.1700,0.0000){\hspace*{\Width}\raisebox{\Height}{$x$}}%
-%
-%
-\settowidth{\Width}{$y$}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{$y$}\settodepth{\Depth}{$y$}\setlength{\Height}{\Depth}%
-\put(0.0000,3.5700){\hspace*{\Width}\raisebox{\Height}{$y$}}%
-%
-%
-\settowidth{\Width}{O}\setlength{\Width}{-1\Width}%
-\settoheight{\Height}{O}\settodepth{\Depth}{O}\setlength{\Height}{-\Height}%
-\put(-0.0500,-0.0500){\hspace*{\Width}\raisebox{\Height}{O}}%
-%
-%
-\end{picture}}%%
-\newframe%
-{\unitlength=1cm%
-\begin{picture}%
-( 14.34000, 7.30000)( -3.72000, -3.28000)%
-\special{pn 8}%
-%
-\special{pa 787 0}\special{pa 781 -99}\special{pa 763 -196}\special{pa 732 -290}\special{pa 690 -379}%
-\special{pa 637 -463}\special{pa 574 -539}\special{pa 502 -607}\special{pa 422 -665}%
-\special{pa 335 -712}\special{pa 243 -749}\special{pa 148 -773}\special{pa 49 -786}%
-\special{pa -49 -786}\special{pa -148 -773}\special{pa -243 -749}\special{pa -335 -712}%
-\special{pa -422 -665}\special{pa -502 -607}\special{pa -574 -539}\special{pa -637 -463}%
-\special{pa -690 -379}\special{pa -732 -290}\special{pa -763 -196}\special{pa -781 -99}%
-\special{pa -787 0}\special{pa -781 99}\special{pa -763 196}\special{pa -732 290}%
-\special{pa -690 379}\special{pa -637 463}\special{pa -574 539}\special{pa -502 607}%
-\special{pa -422 665}\special{pa -335 712}\special{pa -243 749}\special{pa -148 773}%
-\special{pa -49 786}\special{pa 49 786}\special{pa 148 773}\special{pa 243 749}\special{pa 335 712}%
-\special{pa 422 665}\special{pa 502 607}\special{pa 574 539}\special{pa 637 463}\special{pa 690 379}%
-\special{pa 732 290}\special{pa 763 196}\special{pa 781 99}\special{pa 787 0}%
-\special{fp}%
-\special{pa 1575 0}\special{pa -552 561}%
-\special{fp}%
-\special{pn 1}%
-\special{pa 523 270}\special{pa 515 266}\special{pa 507 266}\special{pa 500 270}\special{pa 496 277}%
-\special{pa 496 285}\special{pa 500 292}\special{pa 507 296}\special{pa 515 296}\special{pa 523 292}%
-\special{pa 527 285}\special{pa 527 277}\special{pa 523 270}\special{sh 1}\special{fp}%
-\special{pn 8}%
-\settowidth{\Width}{A}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{A}\settodepth{\Depth}{A}\setlength{\Height}{-\Height}%
-\put(4.0000,-0.0500){\hspace*{\Width}\raisebox{\Height}{A}}%
-%
-%
-\settowidth{\Width}{P}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{P}\settodepth{\Depth}{P}\setlength{\Height}{\Depth}%
-\put(-1.3522,-1.3761){\hspace*{\Width}\raisebox{\Height}{P}}%
-%
-%
-\settowidth{\Width}{Q}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{Q}\settodepth{\Depth}{Q}\setlength{\Height}{\Depth}%
-\put(1.3489,-0.6631){\hspace*{\Width}\raisebox{\Height}{Q}}%
-%
-%
-\special{pa -1465 0}\special{pa 3984 0}%
-\special{fp}%
-\special{pa 0 1291}\special{pa 0 -1386}%
-\special{fp}%
-\settowidth{\Width}{$x$}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{$x$}\settodepth{\Depth}{$x$}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(10.1700,0.0000){\hspace*{\Width}\raisebox{\Height}{$x$}}%
-%
-%
-\settowidth{\Width}{$y$}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{$y$}\settodepth{\Depth}{$y$}\setlength{\Height}{\Depth}%
-\put(0.0000,3.5700){\hspace*{\Width}\raisebox{\Height}{$y$}}%
-%
-%
-\settowidth{\Width}{O}\setlength{\Width}{-1\Width}%
-\settoheight{\Height}{O}\settodepth{\Depth}{O}\setlength{\Height}{-\Height}%
-\put(-0.0500,-0.0500){\hspace*{\Width}\raisebox{\Height}{O}}%
-%
-%
-\end{picture}}%%
-\newframe%
-{\unitlength=1cm%
-\begin{picture}%
-( 14.34000, 7.30000)( -3.72000, -3.28000)%
-\special{pn 8}%
-%
-\special{pa 787 0}\special{pa 781 -99}\special{pa 763 -196}\special{pa 732 -290}\special{pa 690 -379}%
-\special{pa 637 -463}\special{pa 574 -539}\special{pa 502 -607}\special{pa 422 -665}%
-\special{pa 335 -712}\special{pa 243 -749}\special{pa 148 -773}\special{pa 49 -786}%
-\special{pa -49 -786}\special{pa -148 -773}\special{pa -243 -749}\special{pa -335 -712}%
-\special{pa -422 -665}\special{pa -502 -607}\special{pa -574 -539}\special{pa -637 -463}%
-\special{pa -690 -379}\special{pa -732 -290}\special{pa -763 -196}\special{pa -781 -99}%
-\special{pa -787 0}\special{pa -781 99}\special{pa -763 196}\special{pa -732 290}%
-\special{pa -690 379}\special{pa -637 463}\special{pa -574 539}\special{pa -502 607}%
-\special{pa -422 665}\special{pa -335 712}\special{pa -243 749}\special{pa -148 773}%
-\special{pa -49 786}\special{pa 49 786}\special{pa 148 773}\special{pa 243 749}\special{pa 335 712}%
-\special{pa 422 665}\special{pa 502 607}\special{pa 574 539}\special{pa 637 463}\special{pa 690 379}%
-\special{pa 732 290}\special{pa 763 196}\special{pa 781 99}\special{pa 787 0}%
-\special{fp}%
-\special{pa 1575 0}\special{pa -528 584}%
-\special{fp}%
-\special{pn 1}%
-\special{pa 535 281}\special{pa 527 277}\special{pa 519 277}\special{pa 512 281}\special{pa 508 288}%
-\special{pa 508 296}\special{pa 512 303}\special{pa 519 307}\special{pa 527 307}\special{pa 535 303}%
-\special{pa 539 296}\special{pa 539 288}\special{pa 535 281}\special{sh 1}\special{fp}%
-\special{pn 8}%
-\settowidth{\Width}{A}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{A}\settodepth{\Depth}{A}\setlength{\Height}{-\Height}%
-\put(4.0000,-0.0500){\hspace*{\Width}\raisebox{\Height}{A}}%
-%
-%
-\settowidth{\Width}{P}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{P}\settodepth{\Depth}{P}\setlength{\Height}{\Depth}%
-\put(-1.2913,-1.4336){\hspace*{\Width}\raisebox{\Height}{P}}%
-%
-%
-\settowidth{\Width}{Q}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{Q}\settodepth{\Depth}{Q}\setlength{\Height}{\Depth}%
-\put(1.3794,-0.6918){\hspace*{\Width}\raisebox{\Height}{Q}}%
-%
-%
-\special{pa -1465 0}\special{pa 3984 0}%
-\special{fp}%
-\special{pa 0 1291}\special{pa 0 -1386}%
-\special{fp}%
-\settowidth{\Width}{$x$}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{$x$}\settodepth{\Depth}{$x$}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(10.1700,0.0000){\hspace*{\Width}\raisebox{\Height}{$x$}}%
-%
-%
-\settowidth{\Width}{$y$}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{$y$}\settodepth{\Depth}{$y$}\setlength{\Height}{\Depth}%
-\put(0.0000,3.5700){\hspace*{\Width}\raisebox{\Height}{$y$}}%
-%
-%
-\settowidth{\Width}{O}\setlength{\Width}{-1\Width}%
-\settoheight{\Height}{O}\settodepth{\Depth}{O}\setlength{\Height}{-\Height}%
-\put(-0.0500,-0.0500){\hspace*{\Width}\raisebox{\Height}{O}}%
-%
-%
-\end{picture}}%%
-\newframe%
-{\unitlength=1cm%
-\begin{picture}%
-( 14.34000, 7.30000)( -3.72000, -3.28000)%
-\special{pn 8}%
-%
-\special{pa 787 0}\special{pa 781 -99}\special{pa 763 -196}\special{pa 732 -290}\special{pa 690 -379}%
-\special{pa 637 -463}\special{pa 574 -539}\special{pa 502 -607}\special{pa 422 -665}%
-\special{pa 335 -712}\special{pa 243 -749}\special{pa 148 -773}\special{pa 49 -786}%
-\special{pa -49 -786}\special{pa -148 -773}\special{pa -243 -749}\special{pa -335 -712}%
-\special{pa -422 -665}\special{pa -502 -607}\special{pa -574 -539}\special{pa -637 -463}%
-\special{pa -690 -379}\special{pa -732 -290}\special{pa -763 -196}\special{pa -781 -99}%
-\special{pa -787 0}\special{pa -781 99}\special{pa -763 196}\special{pa -732 290}%
-\special{pa -690 379}\special{pa -637 463}\special{pa -574 539}\special{pa -502 607}%
-\special{pa -422 665}\special{pa -335 712}\special{pa -243 749}\special{pa -148 773}%
-\special{pa -49 786}\special{pa 49 786}\special{pa 148 773}\special{pa 243 749}\special{pa 335 712}%
-\special{pa 422 665}\special{pa 502 607}\special{pa 574 539}\special{pa 637 463}\special{pa 690 379}%
-\special{pa 732 290}\special{pa 763 196}\special{pa 781 99}\special{pa 787 0}%
-\special{fp}%
-\special{pa 1575 0}\special{pa -503 606}%
-\special{fp}%
-\special{pn 1}%
-\special{pa 547 292}\special{pa 540 288}\special{pa 532 288}\special{pa 525 292}\special{pa 521 299}%
-\special{pa 521 307}\special{pa 525 314}\special{pa 532 318}\special{pa 540 318}\special{pa 547 314}%
-\special{pa 551 307}\special{pa 551 299}\special{pa 547 292}\special{sh 1}\special{fp}%
-\special{pn 8}%
-\settowidth{\Width}{A}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{A}\settodepth{\Depth}{A}\setlength{\Height}{-\Height}%
-\put(4.0000,-0.0500){\hspace*{\Width}\raisebox{\Height}{A}}%
-%
-%
-\settowidth{\Width}{P}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{P}\settodepth{\Depth}{P}\setlength{\Height}{\Depth}%
-\put(-1.2280,-1.4884){\hspace*{\Width}\raisebox{\Height}{P}}%
-%
-%
-\settowidth{\Width}{Q}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{Q}\settodepth{\Depth}{Q}\setlength{\Height}{\Depth}%
-\put(1.4110,-0.7192){\hspace*{\Width}\raisebox{\Height}{Q}}%
-%
-%
-\special{pa -1465 0}\special{pa 3984 0}%
-\special{fp}%
-\special{pa 0 1291}\special{pa 0 -1386}%
-\special{fp}%
-\settowidth{\Width}{$x$}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{$x$}\settodepth{\Depth}{$x$}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(10.1700,0.0000){\hspace*{\Width}\raisebox{\Height}{$x$}}%
-%
-%
-\settowidth{\Width}{$y$}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{$y$}\settodepth{\Depth}{$y$}\setlength{\Height}{\Depth}%
-\put(0.0000,3.5700){\hspace*{\Width}\raisebox{\Height}{$y$}}%
-%
-%
-\settowidth{\Width}{O}\setlength{\Width}{-1\Width}%
-\settoheight{\Height}{O}\settodepth{\Depth}{O}\setlength{\Height}{-\Height}%
-\put(-0.0500,-0.0500){\hspace*{\Width}\raisebox{\Height}{O}}%
-%
-%
-\end{picture}}%%
-\newframe%
-{\unitlength=1cm%
-\begin{picture}%
-( 14.34000, 7.30000)( -3.72000, -3.28000)%
-\special{pn 8}%
-%
-\special{pa 787 0}\special{pa 781 -99}\special{pa 763 -196}\special{pa 732 -290}\special{pa 690 -379}%
-\special{pa 637 -463}\special{pa 574 -539}\special{pa 502 -607}\special{pa 422 -665}%
-\special{pa 335 -712}\special{pa 243 -749}\special{pa 148 -773}\special{pa 49 -786}%
-\special{pa -49 -786}\special{pa -148 -773}\special{pa -243 -749}\special{pa -335 -712}%
-\special{pa -422 -665}\special{pa -502 -607}\special{pa -574 -539}\special{pa -637 -463}%
-\special{pa -690 -379}\special{pa -732 -290}\special{pa -763 -196}\special{pa -781 -99}%
-\special{pa -787 0}\special{pa -781 99}\special{pa -763 196}\special{pa -732 290}%
-\special{pa -690 379}\special{pa -637 463}\special{pa -574 539}\special{pa -502 607}%
-\special{pa -422 665}\special{pa -335 712}\special{pa -243 749}\special{pa -148 773}%
-\special{pa -49 786}\special{pa 49 786}\special{pa 148 773}\special{pa 243 749}\special{pa 335 712}%
-\special{pa 422 665}\special{pa 502 607}\special{pa 574 539}\special{pa 637 463}\special{pa 690 379}%
-\special{pa 732 290}\special{pa 763 196}\special{pa 781 99}\special{pa 787 0}%
-\special{fp}%
-\special{pa 1575 0}\special{pa -477 626}%
-\special{fp}%
-\special{pn 1}%
-\special{pa 560 302}\special{pa 553 298}\special{pa 545 298}\special{pa 538 302}\special{pa 534 309}%
-\special{pa 534 317}\special{pa 538 324}\special{pa 545 328}\special{pa 553 328}\special{pa 560 324}%
-\special{pa 564 317}\special{pa 564 309}\special{pa 560 302}\special{sh 1}\special{fp}%
-\special{pn 8}%
-\settowidth{\Width}{A}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{A}\settodepth{\Depth}{A}\setlength{\Height}{-\Height}%
-\put(4.0000,-0.0500){\hspace*{\Width}\raisebox{\Height}{A}}%
-%
-%
-\settowidth{\Width}{P}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{P}\settodepth{\Depth}{P}\setlength{\Height}{\Depth}%
-\put(-1.1625,-1.5406){\hspace*{\Width}\raisebox{\Height}{P}}%
-%
-%
-\settowidth{\Width}{Q}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{Q}\settodepth{\Depth}{Q}\setlength{\Height}{\Depth}%
-\put(1.4438,-0.7453){\hspace*{\Width}\raisebox{\Height}{Q}}%
-%
-%
-\special{pa -1465 0}\special{pa 3984 0}%
-\special{fp}%
-\special{pa 0 1291}\special{pa 0 -1386}%
-\special{fp}%
-\settowidth{\Width}{$x$}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{$x$}\settodepth{\Depth}{$x$}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(10.1700,0.0000){\hspace*{\Width}\raisebox{\Height}{$x$}}%
-%
-%
-\settowidth{\Width}{$y$}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{$y$}\settodepth{\Depth}{$y$}\setlength{\Height}{\Depth}%
-\put(0.0000,3.5700){\hspace*{\Width}\raisebox{\Height}{$y$}}%
-%
-%
-\settowidth{\Width}{O}\setlength{\Width}{-1\Width}%
-\settoheight{\Height}{O}\settodepth{\Depth}{O}\setlength{\Height}{-\Height}%
-\put(-0.0500,-0.0500){\hspace*{\Width}\raisebox{\Height}{O}}%
-%
-%
-\end{picture}}%%
-\newframe%
-{\unitlength=1cm%
-\begin{picture}%
-( 14.34000, 7.30000)( -3.72000, -3.28000)%
-\special{pn 8}%
-%
-\special{pa 787 0}\special{pa 781 -99}\special{pa 763 -196}\special{pa 732 -290}\special{pa 690 -379}%
-\special{pa 637 -463}\special{pa 574 -539}\special{pa 502 -607}\special{pa 422 -665}%
-\special{pa 335 -712}\special{pa 243 -749}\special{pa 148 -773}\special{pa 49 -786}%
-\special{pa -49 -786}\special{pa -148 -773}\special{pa -243 -749}\special{pa -335 -712}%
-\special{pa -422 -665}\special{pa -502 -607}\special{pa -574 -539}\special{pa -637 -463}%
-\special{pa -690 -379}\special{pa -732 -290}\special{pa -763 -196}\special{pa -781 -99}%
-\special{pa -787 0}\special{pa -781 99}\special{pa -763 196}\special{pa -732 290}%
-\special{pa -690 379}\special{pa -637 463}\special{pa -574 539}\special{pa -502 607}%
-\special{pa -422 665}\special{pa -335 712}\special{pa -243 749}\special{pa -148 773}%
-\special{pa -49 786}\special{pa 49 786}\special{pa 148 773}\special{pa 243 749}\special{pa 335 712}%
-\special{pa 422 665}\special{pa 502 607}\special{pa 574 539}\special{pa 637 463}\special{pa 690 379}%
-\special{pa 732 290}\special{pa 763 196}\special{pa 781 99}\special{pa 787 0}%
-\special{fp}%
-\special{pa 1575 0}\special{pa -451 646}%
-\special{fp}%
-\special{pn 1}%
-\special{pa 573 312}\special{pa 566 308}\special{pa 558 308}\special{pa 551 312}\special{pa 547 319}%
-\special{pa 547 327}\special{pa 551 334}\special{pa 558 338}\special{pa 566 338}\special{pa 573 334}%
-\special{pa 577 327}\special{pa 577 319}\special{pa 573 312}\special{sh 1}\special{fp}%
-\special{pn 8}%
-\settowidth{\Width}{A}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{A}\settodepth{\Depth}{A}\setlength{\Height}{-\Height}%
-\put(4.0000,-0.0500){\hspace*{\Width}\raisebox{\Height}{A}}%
-%
-%
-\settowidth{\Width}{P}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{P}\settodepth{\Depth}{P}\setlength{\Height}{\Depth}%
-\put(-1.0948,-1.5899){\hspace*{\Width}\raisebox{\Height}{P}}%
-%
-%
-\settowidth{\Width}{Q}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{Q}\settodepth{\Depth}{Q}\setlength{\Height}{\Depth}%
-\put(1.4776,-0.7700){\hspace*{\Width}\raisebox{\Height}{Q}}%
-%
-%
-\special{pa -1465 0}\special{pa 3984 0}%
-\special{fp}%
-\special{pa 0 1291}\special{pa 0 -1386}%
-\special{fp}%
-\settowidth{\Width}{$x$}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{$x$}\settodepth{\Depth}{$x$}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(10.1700,0.0000){\hspace*{\Width}\raisebox{\Height}{$x$}}%
-%
-%
-\settowidth{\Width}{$y$}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{$y$}\settodepth{\Depth}{$y$}\setlength{\Height}{\Depth}%
-\put(0.0000,3.5700){\hspace*{\Width}\raisebox{\Height}{$y$}}%
-%
-%
-\settowidth{\Width}{O}\setlength{\Width}{-1\Width}%
-\settoheight{\Height}{O}\settodepth{\Depth}{O}\setlength{\Height}{-\Height}%
-\put(-0.0500,-0.0500){\hspace*{\Width}\raisebox{\Height}{O}}%
-%
-%
-\end{picture}}%%
-\newframe%
-{\unitlength=1cm%
-\begin{picture}%
-( 14.34000, 7.30000)( -3.72000, -3.28000)%
-\special{pn 8}%
-%
-\special{pa 787 0}\special{pa 781 -99}\special{pa 763 -196}\special{pa 732 -290}\special{pa 690 -379}%
-\special{pa 637 -463}\special{pa 574 -539}\special{pa 502 -607}\special{pa 422 -665}%
-\special{pa 335 -712}\special{pa 243 -749}\special{pa 148 -773}\special{pa 49 -786}%
-\special{pa -49 -786}\special{pa -148 -773}\special{pa -243 -749}\special{pa -335 -712}%
-\special{pa -422 -665}\special{pa -502 -607}\special{pa -574 -539}\special{pa -637 -463}%
-\special{pa -690 -379}\special{pa -732 -290}\special{pa -763 -196}\special{pa -781 -99}%
-\special{pa -787 0}\special{pa -781 99}\special{pa -763 196}\special{pa -732 290}%
-\special{pa -690 379}\special{pa -637 463}\special{pa -574 539}\special{pa -502 607}%
-\special{pa -422 665}\special{pa -335 712}\special{pa -243 749}\special{pa -148 773}%
-\special{pa -49 786}\special{pa 49 786}\special{pa 148 773}\special{pa 243 749}\special{pa 335 712}%
-\special{pa 422 665}\special{pa 502 607}\special{pa 574 539}\special{pa 637 463}\special{pa 690 379}%
-\special{pa 732 290}\special{pa 763 196}\special{pa 781 99}\special{pa 787 0}%
-\special{fp}%
-\special{pa 1575 0}\special{pa -423 664}%
-\special{fp}%
-\special{pn 1}%
-\special{pa 587 321}\special{pa 580 317}\special{pa 572 317}\special{pa 565 321}\special{pa 561 328}%
-\special{pa 561 336}\special{pa 565 343}\special{pa 572 347}\special{pa 580 347}\special{pa 587 343}%
-\special{pa 591 336}\special{pa 591 328}\special{pa 587 321}\special{sh 1}\special{fp}%
-\special{pn 8}%
-\settowidth{\Width}{A}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{A}\settodepth{\Depth}{A}\setlength{\Height}{-\Height}%
-\put(4.0000,-0.0500){\hspace*{\Width}\raisebox{\Height}{A}}%
-%
-%
-\settowidth{\Width}{P}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{P}\settodepth{\Depth}{P}\setlength{\Height}{\Depth}%
-\put(-1.0252,-1.6364){\hspace*{\Width}\raisebox{\Height}{P}}%
-%
-%
-\settowidth{\Width}{Q}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{Q}\settodepth{\Depth}{Q}\setlength{\Height}{\Depth}%
-\put(1.5124,-0.7932){\hspace*{\Width}\raisebox{\Height}{Q}}%
-%
-%
-\special{pa -1465 0}\special{pa 3984 0}%
-\special{fp}%
-\special{pa 0 1291}\special{pa 0 -1386}%
-\special{fp}%
-\settowidth{\Width}{$x$}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{$x$}\settodepth{\Depth}{$x$}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(10.1700,0.0000){\hspace*{\Width}\raisebox{\Height}{$x$}}%
-%
-%
-\settowidth{\Width}{$y$}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{$y$}\settodepth{\Depth}{$y$}\setlength{\Height}{\Depth}%
-\put(0.0000,3.5700){\hspace*{\Width}\raisebox{\Height}{$y$}}%
-%
-%
-\settowidth{\Width}{O}\setlength{\Width}{-1\Width}%
-\settoheight{\Height}{O}\settodepth{\Depth}{O}\setlength{\Height}{-\Height}%
-\put(-0.0500,-0.0500){\hspace*{\Width}\raisebox{\Height}{O}}%
-%
-%
-\end{picture}}%%
-\newframe%
-{\unitlength=1cm%
-\begin{picture}%
-( 14.34000, 7.30000)( -3.72000, -3.28000)%
-\special{pn 8}%
-%
-\special{pa 787 0}\special{pa 781 -99}\special{pa 763 -196}\special{pa 732 -290}\special{pa 690 -379}%
-\special{pa 637 -463}\special{pa 574 -539}\special{pa 502 -607}\special{pa 422 -665}%
-\special{pa 335 -712}\special{pa 243 -749}\special{pa 148 -773}\special{pa 49 -786}%
-\special{pa -49 -786}\special{pa -148 -773}\special{pa -243 -749}\special{pa -335 -712}%
-\special{pa -422 -665}\special{pa -502 -607}\special{pa -574 -539}\special{pa -637 -463}%
-\special{pa -690 -379}\special{pa -732 -290}\special{pa -763 -196}\special{pa -781 -99}%
-\special{pa -787 0}\special{pa -781 99}\special{pa -763 196}\special{pa -732 290}%
-\special{pa -690 379}\special{pa -637 463}\special{pa -574 539}\special{pa -502 607}%
-\special{pa -422 665}\special{pa -335 712}\special{pa -243 749}\special{pa -148 773}%
-\special{pa -49 786}\special{pa 49 786}\special{pa 148 773}\special{pa 243 749}\special{pa 335 712}%
-\special{pa 422 665}\special{pa 502 607}\special{pa 574 539}\special{pa 637 463}\special{pa 690 379}%
-\special{pa 732 290}\special{pa 763 196}\special{pa 781 99}\special{pa 787 0}%
-\special{fp}%
-\special{pa 1575 0}\special{pa -395 681}%
-\special{fp}%
-\special{pn 1}%
-\special{pa 601 329}\special{pa 594 325}\special{pa 586 325}\special{pa 579 329}\special{pa 575 336}%
-\special{pa 575 345}\special{pa 579 352}\special{pa 586 356}\special{pa 594 356}\special{pa 601 352}%
-\special{pa 605 345}\special{pa 605 336}\special{pa 601 329}\special{sh 1}\special{fp}%
-\special{pn 8}%
-\settowidth{\Width}{A}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{A}\settodepth{\Depth}{A}\setlength{\Height}{-\Height}%
-\put(4.0000,-0.0500){\hspace*{\Width}\raisebox{\Height}{A}}%
-%
-%
-\settowidth{\Width}{P}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{P}\settodepth{\Depth}{P}\setlength{\Height}{\Depth}%
-\put(-0.9537,-1.6799){\hspace*{\Width}\raisebox{\Height}{P}}%
-%
-%
-\settowidth{\Width}{Q}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{Q}\settodepth{\Depth}{Q}\setlength{\Height}{\Depth}%
-\put(1.5482,-0.8150){\hspace*{\Width}\raisebox{\Height}{Q}}%
-%
-%
-\special{pa -1465 0}\special{pa 3984 0}%
-\special{fp}%
-\special{pa 0 1291}\special{pa 0 -1386}%
-\special{fp}%
-\settowidth{\Width}{$x$}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{$x$}\settodepth{\Depth}{$x$}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(10.1700,0.0000){\hspace*{\Width}\raisebox{\Height}{$x$}}%
-%
-%
-\settowidth{\Width}{$y$}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{$y$}\settodepth{\Depth}{$y$}\setlength{\Height}{\Depth}%
-\put(0.0000,3.5700){\hspace*{\Width}\raisebox{\Height}{$y$}}%
-%
-%
-\settowidth{\Width}{O}\setlength{\Width}{-1\Width}%
-\settoheight{\Height}{O}\settodepth{\Depth}{O}\setlength{\Height}{-\Height}%
-\put(-0.0500,-0.0500){\hspace*{\Width}\raisebox{\Height}{O}}%
-%
-%
-\end{picture}}%%
-\newframe%
-{\unitlength=1cm%
-\begin{picture}%
-( 14.34000, 7.30000)( -3.72000, -3.28000)%
-\special{pn 8}%
-%
-\special{pa 787 0}\special{pa 781 -99}\special{pa 763 -196}\special{pa 732 -290}\special{pa 690 -379}%
-\special{pa 637 -463}\special{pa 574 -539}\special{pa 502 -607}\special{pa 422 -665}%
-\special{pa 335 -712}\special{pa 243 -749}\special{pa 148 -773}\special{pa 49 -786}%
-\special{pa -49 -786}\special{pa -148 -773}\special{pa -243 -749}\special{pa -335 -712}%
-\special{pa -422 -665}\special{pa -502 -607}\special{pa -574 -539}\special{pa -637 -463}%
-\special{pa -690 -379}\special{pa -732 -290}\special{pa -763 -196}\special{pa -781 -99}%
-\special{pa -787 0}\special{pa -781 99}\special{pa -763 196}\special{pa -732 290}%
-\special{pa -690 379}\special{pa -637 463}\special{pa -574 539}\special{pa -502 607}%
-\special{pa -422 665}\special{pa -335 712}\special{pa -243 749}\special{pa -148 773}%
-\special{pa -49 786}\special{pa 49 786}\special{pa 148 773}\special{pa 243 749}\special{pa 335 712}%
-\special{pa 422 665}\special{pa 502 607}\special{pa 574 539}\special{pa 637 463}\special{pa 690 379}%
-\special{pa 732 290}\special{pa 763 196}\special{pa 781 99}\special{pa 787 0}%
-\special{fp}%
-\special{pa 1575 0}\special{pa -366 697}%
-\special{fp}%
-\special{pn 1}%
-\special{pa 615 337}\special{pa 608 333}\special{pa 600 333}\special{pa 593 337}\special{pa 589 344}%
-\special{pa 589 353}\special{pa 593 360}\special{pa 600 364}\special{pa 608 364}\special{pa 615 360}%
-\special{pa 619 353}\special{pa 619 344}\special{pa 615 337}\special{sh 1}\special{fp}%
-\special{pn 8}%
-\settowidth{\Width}{A}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{A}\settodepth{\Depth}{A}\setlength{\Height}{-\Height}%
-\put(4.0000,-0.0500){\hspace*{\Width}\raisebox{\Height}{A}}%
-%
-%
-\settowidth{\Width}{P}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{P}\settodepth{\Depth}{P}\setlength{\Height}{\Depth}%
-\put(-0.8804,-1.7204){\hspace*{\Width}\raisebox{\Height}{P}}%
-%
-%
-\settowidth{\Width}{Q}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{Q}\settodepth{\Depth}{Q}\setlength{\Height}{\Depth}%
-\put(1.5848,-0.8352){\hspace*{\Width}\raisebox{\Height}{Q}}%
-%
-%
-\special{pa -1465 0}\special{pa 3984 0}%
-\special{fp}%
-\special{pa 0 1291}\special{pa 0 -1386}%
-\special{fp}%
-\settowidth{\Width}{$x$}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{$x$}\settodepth{\Depth}{$x$}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(10.1700,0.0000){\hspace*{\Width}\raisebox{\Height}{$x$}}%
-%
-%
-\settowidth{\Width}{$y$}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{$y$}\settodepth{\Depth}{$y$}\setlength{\Height}{\Depth}%
-\put(0.0000,3.5700){\hspace*{\Width}\raisebox{\Height}{$y$}}%
-%
-%
-\settowidth{\Width}{O}\setlength{\Width}{-1\Width}%
-\settoheight{\Height}{O}\settodepth{\Depth}{O}\setlength{\Height}{-\Height}%
-\put(-0.0500,-0.0500){\hspace*{\Width}\raisebox{\Height}{O}}%
-%
-%
-\end{picture}}%%
-\newframe%
-{\unitlength=1cm%
-\begin{picture}%
-( 14.34000, 7.30000)( -3.72000, -3.28000)%
-\special{pn 8}%
-%
-\special{pa 787 0}\special{pa 781 -99}\special{pa 763 -196}\special{pa 732 -290}\special{pa 690 -379}%
-\special{pa 637 -463}\special{pa 574 -539}\special{pa 502 -607}\special{pa 422 -665}%
-\special{pa 335 -712}\special{pa 243 -749}\special{pa 148 -773}\special{pa 49 -786}%
-\special{pa -49 -786}\special{pa -148 -773}\special{pa -243 -749}\special{pa -335 -712}%
-\special{pa -422 -665}\special{pa -502 -607}\special{pa -574 -539}\special{pa -637 -463}%
-\special{pa -690 -379}\special{pa -732 -290}\special{pa -763 -196}\special{pa -781 -99}%
-\special{pa -787 0}\special{pa -781 99}\special{pa -763 196}\special{pa -732 290}%
-\special{pa -690 379}\special{pa -637 463}\special{pa -574 539}\special{pa -502 607}%
-\special{pa -422 665}\special{pa -335 712}\special{pa -243 749}\special{pa -148 773}%
-\special{pa -49 786}\special{pa 49 786}\special{pa 148 773}\special{pa 243 749}\special{pa 335 712}%
-\special{pa 422 665}\special{pa 502 607}\special{pa 574 539}\special{pa 637 463}\special{pa 690 379}%
-\special{pa 732 290}\special{pa 763 196}\special{pa 781 99}\special{pa 787 0}%
-\special{fp}%
-\special{pa 1575 0}\special{pa -337 712}%
-\special{fp}%
-\special{pn 1}%
-\special{pa 630 345}\special{pa 623 341}\special{pa 615 341}\special{pa 608 345}\special{pa 604 352}%
-\special{pa 604 360}\special{pa 608 367}\special{pa 615 371}\special{pa 623 371}\special{pa 630 367}%
-\special{pa 634 360}\special{pa 634 352}\special{pa 630 345}\special{sh 1}\special{fp}%
-\special{pn 8}%
-\settowidth{\Width}{A}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{A}\settodepth{\Depth}{A}\setlength{\Height}{-\Height}%
-\put(4.0000,-0.0500){\hspace*{\Width}\raisebox{\Height}{A}}%
-%
-%
-\settowidth{\Width}{P}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{P}\settodepth{\Depth}{P}\setlength{\Height}{\Depth}%
-\put(-0.8055,-1.7578){\hspace*{\Width}\raisebox{\Height}{P}}%
-%
-%
-\settowidth{\Width}{Q}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{Q}\settodepth{\Depth}{Q}\setlength{\Height}{\Depth}%
-\put(1.6223,-0.8539){\hspace*{\Width}\raisebox{\Height}{Q}}%
-%
-%
-\special{pa -1465 0}\special{pa 3984 0}%
-\special{fp}%
-\special{pa 0 1291}\special{pa 0 -1386}%
-\special{fp}%
-\settowidth{\Width}{$x$}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{$x$}\settodepth{\Depth}{$x$}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(10.1700,0.0000){\hspace*{\Width}\raisebox{\Height}{$x$}}%
-%
-%
-\settowidth{\Width}{$y$}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{$y$}\settodepth{\Depth}{$y$}\setlength{\Height}{\Depth}%
-\put(0.0000,3.5700){\hspace*{\Width}\raisebox{\Height}{$y$}}%
-%
-%
-\settowidth{\Width}{O}\setlength{\Width}{-1\Width}%
-\settoheight{\Height}{O}\settodepth{\Depth}{O}\setlength{\Height}{-\Height}%
-\put(-0.0500,-0.0500){\hspace*{\Width}\raisebox{\Height}{O}}%
-%
-%
-\end{picture}}%%
-\newframe%
-{\unitlength=1cm%
-\begin{picture}%
-( 14.34000, 7.30000)( -3.72000, -3.28000)%
-\special{pn 8}%
-%
-\special{pa 787 0}\special{pa 781 -99}\special{pa 763 -196}\special{pa 732 -290}\special{pa 690 -379}%
-\special{pa 637 -463}\special{pa 574 -539}\special{pa 502 -607}\special{pa 422 -665}%
-\special{pa 335 -712}\special{pa 243 -749}\special{pa 148 -773}\special{pa 49 -786}%
-\special{pa -49 -786}\special{pa -148 -773}\special{pa -243 -749}\special{pa -335 -712}%
-\special{pa -422 -665}\special{pa -502 -607}\special{pa -574 -539}\special{pa -637 -463}%
-\special{pa -690 -379}\special{pa -732 -290}\special{pa -763 -196}\special{pa -781 -99}%
-\special{pa -787 0}\special{pa -781 99}\special{pa -763 196}\special{pa -732 290}%
-\special{pa -690 379}\special{pa -637 463}\special{pa -574 539}\special{pa -502 607}%
-\special{pa -422 665}\special{pa -335 712}\special{pa -243 749}\special{pa -148 773}%
-\special{pa -49 786}\special{pa 49 786}\special{pa 148 773}\special{pa 243 749}\special{pa 335 712}%
-\special{pa 422 665}\special{pa 502 607}\special{pa 574 539}\special{pa 637 463}\special{pa 690 379}%
-\special{pa 732 290}\special{pa 763 196}\special{pa 781 99}\special{pa 787 0}%
-\special{fp}%
-\special{pa 1575 0}\special{pa -307 725}%
-\special{fp}%
-\special{pn 1}%
-\special{pa 645 351}\special{pa 638 347}\special{pa 630 347}\special{pa 623 351}\special{pa 619 359}%
-\special{pa 619 367}\special{pa 623 374}\special{pa 630 378}\special{pa 638 378}\special{pa 645 374}%
-\special{pa 649 367}\special{pa 649 359}\special{pa 645 351}\special{sh 1}\special{fp}%
-\special{pn 8}%
-\settowidth{\Width}{A}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{A}\settodepth{\Depth}{A}\setlength{\Height}{-\Height}%
-\put(4.0000,-0.0500){\hspace*{\Width}\raisebox{\Height}{A}}%
-%
-%
-\settowidth{\Width}{P}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{P}\settodepth{\Depth}{P}\setlength{\Height}{\Depth}%
-\put(-0.7291,-1.7920){\hspace*{\Width}\raisebox{\Height}{P}}%
-%
-%
-\settowidth{\Width}{Q}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{Q}\settodepth{\Depth}{Q}\setlength{\Height}{\Depth}%
-\put(1.6605,-0.8710){\hspace*{\Width}\raisebox{\Height}{Q}}%
-%
-%
-\special{pa -1465 0}\special{pa 3984 0}%
-\special{fp}%
-\special{pa 0 1291}\special{pa 0 -1386}%
-\special{fp}%
-\settowidth{\Width}{$x$}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{$x$}\settodepth{\Depth}{$x$}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(10.1700,0.0000){\hspace*{\Width}\raisebox{\Height}{$x$}}%
-%
-%
-\settowidth{\Width}{$y$}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{$y$}\settodepth{\Depth}{$y$}\setlength{\Height}{\Depth}%
-\put(0.0000,3.5700){\hspace*{\Width}\raisebox{\Height}{$y$}}%
-%
-%
-\settowidth{\Width}{O}\setlength{\Width}{-1\Width}%
-\settoheight{\Height}{O}\settodepth{\Depth}{O}\setlength{\Height}{-\Height}%
-\put(-0.0500,-0.0500){\hspace*{\Width}\raisebox{\Height}{O}}%
-%
-%
-\end{picture}}%%
-\newframe%
-{\unitlength=1cm%
-\begin{picture}%
-( 14.34000, 7.30000)( -3.72000, -3.28000)%
-\special{pn 8}%
-%
-\special{pa 787 0}\special{pa 781 -99}\special{pa 763 -196}\special{pa 732 -290}\special{pa 690 -379}%
-\special{pa 637 -463}\special{pa 574 -539}\special{pa 502 -607}\special{pa 422 -665}%
-\special{pa 335 -712}\special{pa 243 -749}\special{pa 148 -773}\special{pa 49 -786}%
-\special{pa -49 -786}\special{pa -148 -773}\special{pa -243 -749}\special{pa -335 -712}%
-\special{pa -422 -665}\special{pa -502 -607}\special{pa -574 -539}\special{pa -637 -463}%
-\special{pa -690 -379}\special{pa -732 -290}\special{pa -763 -196}\special{pa -781 -99}%
-\special{pa -787 0}\special{pa -781 99}\special{pa -763 196}\special{pa -732 290}%
-\special{pa -690 379}\special{pa -637 463}\special{pa -574 539}\special{pa -502 607}%
-\special{pa -422 665}\special{pa -335 712}\special{pa -243 749}\special{pa -148 773}%
-\special{pa -49 786}\special{pa 49 786}\special{pa 148 773}\special{pa 243 749}\special{pa 335 712}%
-\special{pa 422 665}\special{pa 502 607}\special{pa 574 539}\special{pa 637 463}\special{pa 690 379}%
-\special{pa 732 290}\special{pa 763 196}\special{pa 781 99}\special{pa 787 0}%
-\special{fp}%
-\special{pa 1575 0}\special{pa -276 737}%
-\special{fp}%
-\special{pn 1}%
-\special{pa 660 358}\special{pa 653 353}\special{pa 645 353}\special{pa 638 358}\special{pa 634 365}%
-\special{pa 634 373}\special{pa 638 380}\special{pa 645 384}\special{pa 653 384}\special{pa 660 380}%
-\special{pa 665 373}\special{pa 665 365}\special{pa 660 358}\special{sh 1}\special{fp}%
-\special{pn 8}%
-\settowidth{\Width}{A}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{A}\settodepth{\Depth}{A}\setlength{\Height}{-\Height}%
-\put(4.0000,-0.0500){\hspace*{\Width}\raisebox{\Height}{A}}%
-%
-%
-\settowidth{\Width}{P}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{P}\settodepth{\Depth}{P}\setlength{\Height}{\Depth}%
-\put(-0.6513,-1.8230){\hspace*{\Width}\raisebox{\Height}{P}}%
-%
-%
-\settowidth{\Width}{Q}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{Q}\settodepth{\Depth}{Q}\setlength{\Height}{\Depth}%
-\put(1.6994,-0.8865){\hspace*{\Width}\raisebox{\Height}{Q}}%
-%
-%
-\special{pa -1465 0}\special{pa 3984 0}%
-\special{fp}%
-\special{pa 0 1291}\special{pa 0 -1386}%
-\special{fp}%
-\settowidth{\Width}{$x$}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{$x$}\settodepth{\Depth}{$x$}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(10.1700,0.0000){\hspace*{\Width}\raisebox{\Height}{$x$}}%
-%
-%
-\settowidth{\Width}{$y$}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{$y$}\settodepth{\Depth}{$y$}\setlength{\Height}{\Depth}%
-\put(0.0000,3.5700){\hspace*{\Width}\raisebox{\Height}{$y$}}%
-%
-%
-\settowidth{\Width}{O}\setlength{\Width}{-1\Width}%
-\settoheight{\Height}{O}\settodepth{\Depth}{O}\setlength{\Height}{-\Height}%
-\put(-0.0500,-0.0500){\hspace*{\Width}\raisebox{\Height}{O}}%
-%
-%
-\end{picture}}%%
-\newframe%
-{\unitlength=1cm%
-\begin{picture}%
-( 14.34000, 7.30000)( -3.72000, -3.28000)%
-\special{pn 8}%
-%
-\special{pa 787 0}\special{pa 781 -99}\special{pa 763 -196}\special{pa 732 -290}\special{pa 690 -379}%
-\special{pa 637 -463}\special{pa 574 -539}\special{pa 502 -607}\special{pa 422 -665}%
-\special{pa 335 -712}\special{pa 243 -749}\special{pa 148 -773}\special{pa 49 -786}%
-\special{pa -49 -786}\special{pa -148 -773}\special{pa -243 -749}\special{pa -335 -712}%
-\special{pa -422 -665}\special{pa -502 -607}\special{pa -574 -539}\special{pa -637 -463}%
-\special{pa -690 -379}\special{pa -732 -290}\special{pa -763 -196}\special{pa -781 -99}%
-\special{pa -787 0}\special{pa -781 99}\special{pa -763 196}\special{pa -732 290}%
-\special{pa -690 379}\special{pa -637 463}\special{pa -574 539}\special{pa -502 607}%
-\special{pa -422 665}\special{pa -335 712}\special{pa -243 749}\special{pa -148 773}%
-\special{pa -49 786}\special{pa 49 786}\special{pa 148 773}\special{pa 243 749}\special{pa 335 712}%
-\special{pa 422 665}\special{pa 502 607}\special{pa 574 539}\special{pa 637 463}\special{pa 690 379}%
-\special{pa 732 290}\special{pa 763 196}\special{pa 781 99}\special{pa 787 0}%
-\special{fp}%
-\special{pa 1575 0}\special{pa -245 748}%
-\special{fp}%
-\special{pn 1}%
-\special{pa 676 363}\special{pa 669 359}\special{pa 661 359}\special{pa 654 363}\special{pa 650 370}%
-\special{pa 650 378}\special{pa 654 385}\special{pa 661 389}\special{pa 669 389}\special{pa 676 385}%
-\special{pa 680 378}\special{pa 680 370}\special{pa 676 363}\special{sh 1}\special{fp}%
-\special{pn 8}%
-\settowidth{\Width}{A}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{A}\settodepth{\Depth}{A}\setlength{\Height}{-\Height}%
-\put(4.0000,-0.0500){\hspace*{\Width}\raisebox{\Height}{A}}%
-%
-%
-\settowidth{\Width}{P}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{P}\settodepth{\Depth}{P}\setlength{\Height}{\Depth}%
-\put(-0.5723,-1.8507){\hspace*{\Width}\raisebox{\Height}{P}}%
-%
-%
-\settowidth{\Width}{Q}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{Q}\settodepth{\Depth}{Q}\setlength{\Height}{\Depth}%
-\put(1.7389,-0.9004){\hspace*{\Width}\raisebox{\Height}{Q}}%
-%
-%
-\special{pa -1465 0}\special{pa 3984 0}%
-\special{fp}%
-\special{pa 0 1291}\special{pa 0 -1386}%
-\special{fp}%
-\settowidth{\Width}{$x$}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{$x$}\settodepth{\Depth}{$x$}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(10.1700,0.0000){\hspace*{\Width}\raisebox{\Height}{$x$}}%
-%
-%
-\settowidth{\Width}{$y$}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{$y$}\settodepth{\Depth}{$y$}\setlength{\Height}{\Depth}%
-\put(0.0000,3.5700){\hspace*{\Width}\raisebox{\Height}{$y$}}%
-%
-%
-\settowidth{\Width}{O}\setlength{\Width}{-1\Width}%
-\settoheight{\Height}{O}\settodepth{\Depth}{O}\setlength{\Height}{-\Height}%
-\put(-0.0500,-0.0500){\hspace*{\Width}\raisebox{\Height}{O}}%
-%
-%
-\end{picture}}%%
-\newframe%
-{\unitlength=1cm%
-\begin{picture}%
-( 14.34000, 7.30000)( -3.72000, -3.28000)%
-\special{pn 8}%
-%
-\special{pa 787 0}\special{pa 781 -99}\special{pa 763 -196}\special{pa 732 -290}\special{pa 690 -379}%
-\special{pa 637 -463}\special{pa 574 -539}\special{pa 502 -607}\special{pa 422 -665}%
-\special{pa 335 -712}\special{pa 243 -749}\special{pa 148 -773}\special{pa 49 -786}%
-\special{pa -49 -786}\special{pa -148 -773}\special{pa -243 -749}\special{pa -335 -712}%
-\special{pa -422 -665}\special{pa -502 -607}\special{pa -574 -539}\special{pa -637 -463}%
-\special{pa -690 -379}\special{pa -732 -290}\special{pa -763 -196}\special{pa -781 -99}%
-\special{pa -787 0}\special{pa -781 99}\special{pa -763 196}\special{pa -732 290}%
-\special{pa -690 379}\special{pa -637 463}\special{pa -574 539}\special{pa -502 607}%
-\special{pa -422 665}\special{pa -335 712}\special{pa -243 749}\special{pa -148 773}%
-\special{pa -49 786}\special{pa 49 786}\special{pa 148 773}\special{pa 243 749}\special{pa 335 712}%
-\special{pa 422 665}\special{pa 502 607}\special{pa 574 539}\special{pa 637 463}\special{pa 690 379}%
-\special{pa 732 290}\special{pa 763 196}\special{pa 781 99}\special{pa 787 0}%
-\special{fp}%
-\special{pa 1575 0}\special{pa -213 758}%
-\special{fp}%
-\special{pn 1}%
-\special{pa 692 368}\special{pa 685 364}\special{pa 677 364}\special{pa 670 368}\special{pa 665 375}%
-\special{pa 665 383}\special{pa 670 390}\special{pa 677 394}\special{pa 685 394}\special{pa 692 390}%
-\special{pa 696 383}\special{pa 696 375}\special{pa 692 368}\special{sh 1}\special{fp}%
-\special{pn 8}%
-\settowidth{\Width}{A}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{A}\settodepth{\Depth}{A}\setlength{\Height}{-\Height}%
-\put(4.0000,-0.0500){\hspace*{\Width}\raisebox{\Height}{A}}%
-%
-%
-\settowidth{\Width}{P}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{P}\settodepth{\Depth}{P}\setlength{\Height}{\Depth}%
-\put(-0.4922,-1.8751){\hspace*{\Width}\raisebox{\Height}{P}}%
-%
-%
-\settowidth{\Width}{Q}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{Q}\settodepth{\Depth}{Q}\setlength{\Height}{\Depth}%
-\put(1.7789,-0.9125){\hspace*{\Width}\raisebox{\Height}{Q}}%
-%
-%
-\special{pa -1465 0}\special{pa 3984 0}%
-\special{fp}%
-\special{pa 0 1291}\special{pa 0 -1386}%
-\special{fp}%
-\settowidth{\Width}{$x$}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{$x$}\settodepth{\Depth}{$x$}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(10.1700,0.0000){\hspace*{\Width}\raisebox{\Height}{$x$}}%
-%
-%
-\settowidth{\Width}{$y$}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{$y$}\settodepth{\Depth}{$y$}\setlength{\Height}{\Depth}%
-\put(0.0000,3.5700){\hspace*{\Width}\raisebox{\Height}{$y$}}%
-%
-%
-\settowidth{\Width}{O}\setlength{\Width}{-1\Width}%
-\settoheight{\Height}{O}\settodepth{\Depth}{O}\setlength{\Height}{-\Height}%
-\put(-0.0500,-0.0500){\hspace*{\Width}\raisebox{\Height}{O}}%
-%
-%
-\end{picture}}%%
-\newframe%
-{\unitlength=1cm%
-\begin{picture}%
-( 14.34000, 7.30000)( -3.72000, -3.28000)%
-\special{pn 8}%
-%
-\special{pa 787 0}\special{pa 781 -99}\special{pa 763 -196}\special{pa 732 -290}\special{pa 690 -379}%
-\special{pa 637 -463}\special{pa 574 -539}\special{pa 502 -607}\special{pa 422 -665}%
-\special{pa 335 -712}\special{pa 243 -749}\special{pa 148 -773}\special{pa 49 -786}%
-\special{pa -49 -786}\special{pa -148 -773}\special{pa -243 -749}\special{pa -335 -712}%
-\special{pa -422 -665}\special{pa -502 -607}\special{pa -574 -539}\special{pa -637 -463}%
-\special{pa -690 -379}\special{pa -732 -290}\special{pa -763 -196}\special{pa -781 -99}%
-\special{pa -787 0}\special{pa -781 99}\special{pa -763 196}\special{pa -732 290}%
-\special{pa -690 379}\special{pa -637 463}\special{pa -574 539}\special{pa -502 607}%
-\special{pa -422 665}\special{pa -335 712}\special{pa -243 749}\special{pa -148 773}%
-\special{pa -49 786}\special{pa 49 786}\special{pa 148 773}\special{pa 243 749}\special{pa 335 712}%
-\special{pa 422 665}\special{pa 502 607}\special{pa 574 539}\special{pa 637 463}\special{pa 690 379}%
-\special{pa 732 290}\special{pa 763 196}\special{pa 781 99}\special{pa 787 0}%
-\special{fp}%
-\special{pa 1575 0}\special{pa -182 766}%
-\special{fp}%
-\special{pn 1}%
-\special{pa 708 372}\special{pa 701 368}\special{pa 693 368}\special{pa 685 372}\special{pa 681 379}%
-\special{pa 681 387}\special{pa 685 394}\special{pa 693 398}\special{pa 701 398}\special{pa 708 394}%
-\special{pa 712 387}\special{pa 712 379}\special{pa 708 372}\special{sh 1}\special{fp}%
-\special{pn 8}%
-\settowidth{\Width}{A}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{A}\settodepth{\Depth}{A}\setlength{\Height}{-\Height}%
-\put(4.0000,-0.0500){\hspace*{\Width}\raisebox{\Height}{A}}%
-%
-%
-\settowidth{\Width}{P}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{P}\settodepth{\Depth}{P}\setlength{\Height}{\Depth}%
-\put(-0.4111,-1.8961){\hspace*{\Width}\raisebox{\Height}{P}}%
-%
-%
-\settowidth{\Width}{Q}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{Q}\settodepth{\Depth}{Q}\setlength{\Height}{\Depth}%
-\put(1.8194,-0.9231){\hspace*{\Width}\raisebox{\Height}{Q}}%
-%
-%
-\special{pa -1465 0}\special{pa 3984 0}%
-\special{fp}%
-\special{pa 0 1291}\special{pa 0 -1386}%
-\special{fp}%
-\settowidth{\Width}{$x$}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{$x$}\settodepth{\Depth}{$x$}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(10.1700,0.0000){\hspace*{\Width}\raisebox{\Height}{$x$}}%
-%
-%
-\settowidth{\Width}{$y$}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{$y$}\settodepth{\Depth}{$y$}\setlength{\Height}{\Depth}%
-\put(0.0000,3.5700){\hspace*{\Width}\raisebox{\Height}{$y$}}%
-%
-%
-\settowidth{\Width}{O}\setlength{\Width}{-1\Width}%
-\settoheight{\Height}{O}\settodepth{\Depth}{O}\setlength{\Height}{-\Height}%
-\put(-0.0500,-0.0500){\hspace*{\Width}\raisebox{\Height}{O}}%
-%
-%
-\end{picture}}%%
-\newframe%
-{\unitlength=1cm%
-\begin{picture}%
-( 14.34000, 7.30000)( -3.72000, -3.28000)%
-\special{pn 8}%
-%
-\special{pa 787 0}\special{pa 781 -99}\special{pa 763 -196}\special{pa 732 -290}\special{pa 690 -379}%
-\special{pa 637 -463}\special{pa 574 -539}\special{pa 502 -607}\special{pa 422 -665}%
-\special{pa 335 -712}\special{pa 243 -749}\special{pa 148 -773}\special{pa 49 -786}%
-\special{pa -49 -786}\special{pa -148 -773}\special{pa -243 -749}\special{pa -335 -712}%
-\special{pa -422 -665}\special{pa -502 -607}\special{pa -574 -539}\special{pa -637 -463}%
-\special{pa -690 -379}\special{pa -732 -290}\special{pa -763 -196}\special{pa -781 -99}%
-\special{pa -787 0}\special{pa -781 99}\special{pa -763 196}\special{pa -732 290}%
-\special{pa -690 379}\special{pa -637 463}\special{pa -574 539}\special{pa -502 607}%
-\special{pa -422 665}\special{pa -335 712}\special{pa -243 749}\special{pa -148 773}%
-\special{pa -49 786}\special{pa 49 786}\special{pa 148 773}\special{pa 243 749}\special{pa 335 712}%
-\special{pa 422 665}\special{pa 502 607}\special{pa 574 539}\special{pa 637 463}\special{pa 690 379}%
-\special{pa 732 290}\special{pa 763 196}\special{pa 781 99}\special{pa 787 0}%
-\special{fp}%
-\special{pa 1575 0}\special{pa -149 773}%
-\special{fp}%
-\special{pn 1}%
-\special{pa 724 375}\special{pa 717 371}\special{pa 709 371}\special{pa 702 375}\special{pa 698 382}%
-\special{pa 698 391}\special{pa 702 398}\special{pa 709 402}\special{pa 717 402}\special{pa 724 398}%
-\special{pa 728 391}\special{pa 728 382}\special{pa 724 375}\special{sh 1}\special{fp}%
-\special{pn 8}%
-\settowidth{\Width}{A}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{A}\settodepth{\Depth}{A}\setlength{\Height}{-\Height}%
-\put(4.0000,-0.0500){\hspace*{\Width}\raisebox{\Height}{A}}%
-%
-%
-\settowidth{\Width}{P}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{P}\settodepth{\Depth}{P}\setlength{\Height}{\Depth}%
-\put(-0.3293,-1.9137){\hspace*{\Width}\raisebox{\Height}{P}}%
-%
-%
-\settowidth{\Width}{Q}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{Q}\settodepth{\Depth}{Q}\setlength{\Height}{\Depth}%
-\put(1.8604,-0.9318){\hspace*{\Width}\raisebox{\Height}{Q}}%
-%
-%
-\special{pa -1465 0}\special{pa 3984 0}%
-\special{fp}%
-\special{pa 0 1291}\special{pa 0 -1386}%
-\special{fp}%
-\settowidth{\Width}{$x$}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{$x$}\settodepth{\Depth}{$x$}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(10.1700,0.0000){\hspace*{\Width}\raisebox{\Height}{$x$}}%
-%
-%
-\settowidth{\Width}{$y$}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{$y$}\settodepth{\Depth}{$y$}\setlength{\Height}{\Depth}%
-\put(0.0000,3.5700){\hspace*{\Width}\raisebox{\Height}{$y$}}%
-%
-%
-\settowidth{\Width}{O}\setlength{\Width}{-1\Width}%
-\settoheight{\Height}{O}\settodepth{\Depth}{O}\setlength{\Height}{-\Height}%
-\put(-0.0500,-0.0500){\hspace*{\Width}\raisebox{\Height}{O}}%
-%
-%
-\end{picture}}%%
-\newframe%
-{\unitlength=1cm%
-\begin{picture}%
-( 14.34000, 7.30000)( -3.72000, -3.28000)%
-\special{pn 8}%
-%
-\special{pa 787 0}\special{pa 781 -99}\special{pa 763 -196}\special{pa 732 -290}\special{pa 690 -379}%
-\special{pa 637 -463}\special{pa 574 -539}\special{pa 502 -607}\special{pa 422 -665}%
-\special{pa 335 -712}\special{pa 243 -749}\special{pa 148 -773}\special{pa 49 -786}%
-\special{pa -49 -786}\special{pa -148 -773}\special{pa -243 -749}\special{pa -335 -712}%
-\special{pa -422 -665}\special{pa -502 -607}\special{pa -574 -539}\special{pa -637 -463}%
-\special{pa -690 -379}\special{pa -732 -290}\special{pa -763 -196}\special{pa -781 -99}%
-\special{pa -787 0}\special{pa -781 99}\special{pa -763 196}\special{pa -732 290}%
-\special{pa -690 379}\special{pa -637 463}\special{pa -574 539}\special{pa -502 607}%
-\special{pa -422 665}\special{pa -335 712}\special{pa -243 749}\special{pa -148 773}%
-\special{pa -49 786}\special{pa 49 786}\special{pa 148 773}\special{pa 243 749}\special{pa 335 712}%
-\special{pa 422 665}\special{pa 502 607}\special{pa 574 539}\special{pa 637 463}\special{pa 690 379}%
-\special{pa 732 290}\special{pa 763 196}\special{pa 781 99}\special{pa 787 0}%
-\special{fp}%
-\special{pa 1575 0}\special{pa -117 779}%
-\special{fp}%
-\special{pn 1}%
-\special{pa 740 378}\special{pa 733 374}\special{pa 725 374}\special{pa 718 378}\special{pa 714 385}%
-\special{pa 714 393}\special{pa 718 400}\special{pa 725 405}\special{pa 733 405}\special{pa 740 400}%
-\special{pa 744 393}\special{pa 744 385}\special{pa 740 378}\special{sh 1}\special{fp}%
-\special{pn 8}%
-\settowidth{\Width}{A}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{A}\settodepth{\Depth}{A}\setlength{\Height}{-\Height}%
-\put(4.0000,-0.0500){\hspace*{\Width}\raisebox{\Height}{A}}%
-%
-%
-\settowidth{\Width}{P}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{P}\settodepth{\Depth}{P}\setlength{\Height}{\Depth}%
-\put(-0.2467,-1.9279){\hspace*{\Width}\raisebox{\Height}{P}}%
-%
-%
-\settowidth{\Width}{Q}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{Q}\settodepth{\Depth}{Q}\setlength{\Height}{\Depth}%
-\put(1.9016,-0.9389){\hspace*{\Width}\raisebox{\Height}{Q}}%
-%
-%
-\special{pa -1465 0}\special{pa 3984 0}%
-\special{fp}%
-\special{pa 0 1291}\special{pa 0 -1386}%
-\special{fp}%
-\settowidth{\Width}{$x$}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{$x$}\settodepth{\Depth}{$x$}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(10.1700,0.0000){\hspace*{\Width}\raisebox{\Height}{$x$}}%
-%
-%
-\settowidth{\Width}{$y$}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{$y$}\settodepth{\Depth}{$y$}\setlength{\Height}{\Depth}%
-\put(0.0000,3.5700){\hspace*{\Width}\raisebox{\Height}{$y$}}%
-%
-%
-\settowidth{\Width}{O}\setlength{\Width}{-1\Width}%
-\settoheight{\Height}{O}\settodepth{\Depth}{O}\setlength{\Height}{-\Height}%
-\put(-0.0500,-0.0500){\hspace*{\Width}\raisebox{\Height}{O}}%
-%
-%
-\end{picture}}%%
-\newframe%
-{\unitlength=1cm%
-\begin{picture}%
-( 14.34000, 7.30000)( -3.72000, -3.28000)%
-\special{pn 8}%
-%
-\special{pa 787 0}\special{pa 781 -99}\special{pa 763 -196}\special{pa 732 -290}\special{pa 690 -379}%
-\special{pa 637 -463}\special{pa 574 -539}\special{pa 502 -607}\special{pa 422 -665}%
-\special{pa 335 -712}\special{pa 243 -749}\special{pa 148 -773}\special{pa 49 -786}%
-\special{pa -49 -786}\special{pa -148 -773}\special{pa -243 -749}\special{pa -335 -712}%
-\special{pa -422 -665}\special{pa -502 -607}\special{pa -574 -539}\special{pa -637 -463}%
-\special{pa -690 -379}\special{pa -732 -290}\special{pa -763 -196}\special{pa -781 -99}%
-\special{pa -787 0}\special{pa -781 99}\special{pa -763 196}\special{pa -732 290}%
-\special{pa -690 379}\special{pa -637 463}\special{pa -574 539}\special{pa -502 607}%
-\special{pa -422 665}\special{pa -335 712}\special{pa -243 749}\special{pa -148 773}%
-\special{pa -49 786}\special{pa 49 786}\special{pa 148 773}\special{pa 243 749}\special{pa 335 712}%
-\special{pa 422 665}\special{pa 502 607}\special{pa 574 539}\special{pa 637 463}\special{pa 690 379}%
-\special{pa 732 290}\special{pa 763 196}\special{pa 781 99}\special{pa 787 0}%
-\special{fp}%
-\special{pa 1575 0}\special{pa -84 783}%
-\special{fp}%
-\special{pn 1}%
-\special{pa 756 380}\special{pa 749 376}\special{pa 741 376}\special{pa 734 380}\special{pa 730 387}%
-\special{pa 730 396}\special{pa 734 403}\special{pa 741 407}\special{pa 749 407}\special{pa 756 403}%
-\special{pa 761 396}\special{pa 761 387}\special{pa 756 380}\special{sh 1}\special{fp}%
-\special{pn 8}%
-\settowidth{\Width}{A}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{A}\settodepth{\Depth}{A}\setlength{\Height}{-\Height}%
-\put(4.0000,-0.0500){\hspace*{\Width}\raisebox{\Height}{A}}%
-%
-%
-\settowidth{\Width}{P}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{P}\settodepth{\Depth}{P}\setlength{\Height}{\Depth}%
-\put(-0.1637,-1.9385){\hspace*{\Width}\raisebox{\Height}{P}}%
-%
-%
-\settowidth{\Width}{Q}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{Q}\settodepth{\Depth}{Q}\setlength{\Height}{\Depth}%
-\put(1.9432,-0.9443){\hspace*{\Width}\raisebox{\Height}{Q}}%
-%
-%
-\special{pa -1465 0}\special{pa 3984 0}%
-\special{fp}%
-\special{pa 0 1291}\special{pa 0 -1386}%
-\special{fp}%
-\settowidth{\Width}{$x$}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{$x$}\settodepth{\Depth}{$x$}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(10.1700,0.0000){\hspace*{\Width}\raisebox{\Height}{$x$}}%
-%
-%
-\settowidth{\Width}{$y$}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{$y$}\settodepth{\Depth}{$y$}\setlength{\Height}{\Depth}%
-\put(0.0000,3.5700){\hspace*{\Width}\raisebox{\Height}{$y$}}%
-%
-%
-\settowidth{\Width}{O}\setlength{\Width}{-1\Width}%
-\settoheight{\Height}{O}\settodepth{\Depth}{O}\setlength{\Height}{-\Height}%
-\put(-0.0500,-0.0500){\hspace*{\Width}\raisebox{\Height}{O}}%
-%
-%
-\end{picture}}%%
-\newframe%
-{\unitlength=1cm%
-\begin{picture}%
-( 14.34000, 7.30000)( -3.72000, -3.28000)%
-\special{pn 8}%
-%
-\special{pa 787 0}\special{pa 781 -99}\special{pa 763 -196}\special{pa 732 -290}\special{pa 690 -379}%
-\special{pa 637 -463}\special{pa 574 -539}\special{pa 502 -607}\special{pa 422 -665}%
-\special{pa 335 -712}\special{pa 243 -749}\special{pa 148 -773}\special{pa 49 -786}%
-\special{pa -49 -786}\special{pa -148 -773}\special{pa -243 -749}\special{pa -335 -712}%
-\special{pa -422 -665}\special{pa -502 -607}\special{pa -574 -539}\special{pa -637 -463}%
-\special{pa -690 -379}\special{pa -732 -290}\special{pa -763 -196}\special{pa -781 -99}%
-\special{pa -787 0}\special{pa -781 99}\special{pa -763 196}\special{pa -732 290}%
-\special{pa -690 379}\special{pa -637 463}\special{pa -574 539}\special{pa -502 607}%
-\special{pa -422 665}\special{pa -335 712}\special{pa -243 749}\special{pa -148 773}%
-\special{pa -49 786}\special{pa 49 786}\special{pa 148 773}\special{pa 243 749}\special{pa 335 712}%
-\special{pa 422 665}\special{pa 502 607}\special{pa 574 539}\special{pa 637 463}\special{pa 690 379}%
-\special{pa 732 290}\special{pa 763 196}\special{pa 781 99}\special{pa 787 0}%
-\special{fp}%
-\special{pa 1575 0}\special{pa -51 786}%
-\special{fp}%
-\special{pn 1}%
-\special{pa 773 382}\special{pa 766 378}\special{pa 758 378}\special{pa 751 382}\special{pa 747 389}%
-\special{pa 747 397}\special{pa 751 404}\special{pa 758 408}\special{pa 766 408}\special{pa 773 404}%
-\special{pa 777 397}\special{pa 777 389}\special{pa 773 382}\special{sh 1}\special{fp}%
-\special{pn 8}%
-\settowidth{\Width}{A}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{A}\settodepth{\Depth}{A}\setlength{\Height}{-\Height}%
-\put(4.0000,-0.0500){\hspace*{\Width}\raisebox{\Height}{A}}%
-%
-%
-\settowidth{\Width}{P}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{P}\settodepth{\Depth}{P}\setlength{\Height}{\Depth}%
-\put(-0.0803,-1.9457){\hspace*{\Width}\raisebox{\Height}{P}}%
-%
-%
-\settowidth{\Width}{Q}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{Q}\settodepth{\Depth}{Q}\setlength{\Height}{\Depth}%
-\put(1.9849,-0.9479){\hspace*{\Width}\raisebox{\Height}{Q}}%
-%
-%
-\special{pa -1465 0}\special{pa 3984 0}%
-\special{fp}%
-\special{pa 0 1291}\special{pa 0 -1386}%
-\special{fp}%
-\settowidth{\Width}{$x$}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{$x$}\settodepth{\Depth}{$x$}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(10.1700,0.0000){\hspace*{\Width}\raisebox{\Height}{$x$}}%
-%
-%
-\settowidth{\Width}{$y$}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{$y$}\settodepth{\Depth}{$y$}\setlength{\Height}{\Depth}%
-\put(0.0000,3.5700){\hspace*{\Width}\raisebox{\Height}{$y$}}%
-%
-%
-\settowidth{\Width}{O}\setlength{\Width}{-1\Width}%
-\settoheight{\Height}{O}\settodepth{\Depth}{O}\setlength{\Height}{-\Height}%
-\put(-0.0500,-0.0500){\hspace*{\Width}\raisebox{\Height}{O}}%
-%
-%
-\end{picture}}%%
-\newframe%
-{\unitlength=1cm%
-\begin{picture}%
-( 14.34000, 7.30000)( -3.72000, -3.28000)%
-\special{pn 8}%
-%
-\special{pa 787 0}\special{pa 781 -99}\special{pa 763 -196}\special{pa 732 -290}\special{pa 690 -379}%
-\special{pa 637 -463}\special{pa 574 -539}\special{pa 502 -607}\special{pa 422 -665}%
-\special{pa 335 -712}\special{pa 243 -749}\special{pa 148 -773}\special{pa 49 -786}%
-\special{pa -49 -786}\special{pa -148 -773}\special{pa -243 -749}\special{pa -335 -712}%
-\special{pa -422 -665}\special{pa -502 -607}\special{pa -574 -539}\special{pa -637 -463}%
-\special{pa -690 -379}\special{pa -732 -290}\special{pa -763 -196}\special{pa -781 -99}%
-\special{pa -787 0}\special{pa -781 99}\special{pa -763 196}\special{pa -732 290}%
-\special{pa -690 379}\special{pa -637 463}\special{pa -574 539}\special{pa -502 607}%
-\special{pa -422 665}\special{pa -335 712}\special{pa -243 749}\special{pa -148 773}%
-\special{pa -49 786}\special{pa 49 786}\special{pa 148 773}\special{pa 243 749}\special{pa 335 712}%
-\special{pa 422 665}\special{pa 502 607}\special{pa 574 539}\special{pa 637 463}\special{pa 690 379}%
-\special{pa 732 290}\special{pa 763 196}\special{pa 781 99}\special{pa 787 0}%
-\special{fp}%
-\special{pa 1575 0}\special{pa -18 787}%
-\special{fp}%
-\special{pn 1}%
-\special{pa 789 382}\special{pa 782 378}\special{pa 774 378}\special{pa 767 382}\special{pa 763 390}%
-\special{pa 763 398}\special{pa 767 405}\special{pa 774 409}\special{pa 782 409}\special{pa 789 405}%
-\special{pa 793 398}\special{pa 793 390}\special{pa 789 382}\special{sh 1}\special{fp}%
-\special{pn 8}%
-\settowidth{\Width}{A}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{A}\settodepth{\Depth}{A}\setlength{\Height}{-\Height}%
-\put(4.0000,-0.0500){\hspace*{\Width}\raisebox{\Height}{A}}%
-%
-%
-\settowidth{\Width}{P}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{P}\settodepth{\Depth}{P}\setlength{\Height}{\Depth}%
-\put(0.0034,-1.9495){\hspace*{\Width}\raisebox{\Height}{P}}%
-%
-%
-\settowidth{\Width}{Q}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{Q}\settodepth{\Depth}{Q}\setlength{\Height}{\Depth}%
-\put(2.0267,-0.9497){\hspace*{\Width}\raisebox{\Height}{Q}}%
-%
-%
-\special{pa -1465 0}\special{pa 3984 0}%
-\special{fp}%
-\special{pa 0 1291}\special{pa 0 -1386}%
-\special{fp}%
-\settowidth{\Width}{$x$}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{$x$}\settodepth{\Depth}{$x$}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(10.1700,0.0000){\hspace*{\Width}\raisebox{\Height}{$x$}}%
-%
-%
-\settowidth{\Width}{$y$}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{$y$}\settodepth{\Depth}{$y$}\setlength{\Height}{\Depth}%
-\put(0.0000,3.5700){\hspace*{\Width}\raisebox{\Height}{$y$}}%
-%
-%
-\settowidth{\Width}{O}\setlength{\Width}{-1\Width}%
-\settoheight{\Height}{O}\settodepth{\Depth}{O}\setlength{\Height}{-\Height}%
-\put(-0.0500,-0.0500){\hspace*{\Width}\raisebox{\Height}{O}}%
-%
-%
-\end{picture}}%%
-\newframe%
-{\unitlength=1cm%
-\begin{picture}%
-( 14.34000, 7.30000)( -3.72000, -3.28000)%
-\special{pn 8}%
-%
-\special{pa 787 0}\special{pa 781 -99}\special{pa 763 -196}\special{pa 732 -290}\special{pa 690 -379}%
-\special{pa 637 -463}\special{pa 574 -539}\special{pa 502 -607}\special{pa 422 -665}%
-\special{pa 335 -712}\special{pa 243 -749}\special{pa 148 -773}\special{pa 49 -786}%
-\special{pa -49 -786}\special{pa -148 -773}\special{pa -243 -749}\special{pa -335 -712}%
-\special{pa -422 -665}\special{pa -502 -607}\special{pa -574 -539}\special{pa -637 -463}%
-\special{pa -690 -379}\special{pa -732 -290}\special{pa -763 -196}\special{pa -781 -99}%
-\special{pa -787 0}\special{pa -781 99}\special{pa -763 196}\special{pa -732 290}%
-\special{pa -690 379}\special{pa -637 463}\special{pa -574 539}\special{pa -502 607}%
-\special{pa -422 665}\special{pa -335 712}\special{pa -243 749}\special{pa -148 773}%
-\special{pa -49 786}\special{pa 49 786}\special{pa 148 773}\special{pa 243 749}\special{pa 335 712}%
-\special{pa 422 665}\special{pa 502 607}\special{pa 574 539}\special{pa 637 463}\special{pa 690 379}%
-\special{pa 732 290}\special{pa 763 196}\special{pa 781 99}\special{pa 787 0}%
-\special{fp}%
-\special{pa 1575 0}\special{pa 15 787}%
-\special{fp}%
-\special{pn 1}%
-\special{pa 806 382}\special{pa 799 378}\special{pa 791 378}\special{pa 784 382}\special{pa 779 390}%
-\special{pa 779 398}\special{pa 784 405}\special{pa 791 409}\special{pa 799 409}\special{pa 806 405}%
-\special{pa 810 398}\special{pa 810 390}\special{pa 806 382}\special{sh 1}\special{fp}%
-\special{pn 8}%
-\settowidth{\Width}{A}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{A}\settodepth{\Depth}{A}\setlength{\Height}{-\Height}%
-\put(4.0000,-0.0500){\hspace*{\Width}\raisebox{\Height}{A}}%
-%
-%
-\settowidth{\Width}{P}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{P}\settodepth{\Depth}{P}\setlength{\Height}{\Depth}%
-\put(0.0871,-1.9497){\hspace*{\Width}\raisebox{\Height}{P}}%
-%
-%
-\settowidth{\Width}{Q}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{Q}\settodepth{\Depth}{Q}\setlength{\Height}{\Depth}%
-\put(2.0685,-0.9498){\hspace*{\Width}\raisebox{\Height}{Q}}%
-%
-%
-\special{pa -1465 0}\special{pa 3984 0}%
-\special{fp}%
-\special{pa 0 1291}\special{pa 0 -1386}%
-\special{fp}%
-\settowidth{\Width}{$x$}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{$x$}\settodepth{\Depth}{$x$}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(10.1700,0.0000){\hspace*{\Width}\raisebox{\Height}{$x$}}%
-%
-%
-\settowidth{\Width}{$y$}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{$y$}\settodepth{\Depth}{$y$}\setlength{\Height}{\Depth}%
-\put(0.0000,3.5700){\hspace*{\Width}\raisebox{\Height}{$y$}}%
-%
-%
-\settowidth{\Width}{O}\setlength{\Width}{-1\Width}%
-\settoheight{\Height}{O}\settodepth{\Depth}{O}\setlength{\Height}{-\Height}%
-\put(-0.0500,-0.0500){\hspace*{\Width}\raisebox{\Height}{O}}%
-%
-%
-\end{picture}}%%
-\newframe%
-{\unitlength=1cm%
-\begin{picture}%
-( 14.34000, 7.30000)( -3.72000, -3.28000)%
-\special{pn 8}%
-%
-\special{pa 787 0}\special{pa 781 -99}\special{pa 763 -196}\special{pa 732 -290}\special{pa 690 -379}%
-\special{pa 637 -463}\special{pa 574 -539}\special{pa 502 -607}\special{pa 422 -665}%
-\special{pa 335 -712}\special{pa 243 -749}\special{pa 148 -773}\special{pa 49 -786}%
-\special{pa -49 -786}\special{pa -148 -773}\special{pa -243 -749}\special{pa -335 -712}%
-\special{pa -422 -665}\special{pa -502 -607}\special{pa -574 -539}\special{pa -637 -463}%
-\special{pa -690 -379}\special{pa -732 -290}\special{pa -763 -196}\special{pa -781 -99}%
-\special{pa -787 0}\special{pa -781 99}\special{pa -763 196}\special{pa -732 290}%
-\special{pa -690 379}\special{pa -637 463}\special{pa -574 539}\special{pa -502 607}%
-\special{pa -422 665}\special{pa -335 712}\special{pa -243 749}\special{pa -148 773}%
-\special{pa -49 786}\special{pa 49 786}\special{pa 148 773}\special{pa 243 749}\special{pa 335 712}%
-\special{pa 422 665}\special{pa 502 607}\special{pa 574 539}\special{pa 637 463}\special{pa 690 379}%
-\special{pa 732 290}\special{pa 763 196}\special{pa 781 99}\special{pa 787 0}%
-\special{fp}%
-\special{pa 1575 0}\special{pa 48 786}%
-\special{fp}%
-\special{pn 1}%
-\special{pa 822 382}\special{pa 815 378}\special{pa 807 378}\special{pa 800 382}\special{pa 796 389}%
-\special{pa 796 397}\special{pa 800 404}\special{pa 807 408}\special{pa 815 408}\special{pa 822 404}%
-\special{pa 826 397}\special{pa 826 389}\special{pa 822 382}\special{sh 1}\special{fp}%
-\special{pn 8}%
-\settowidth{\Width}{A}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{A}\settodepth{\Depth}{A}\setlength{\Height}{-\Height}%
-\put(4.0000,-0.0500){\hspace*{\Width}\raisebox{\Height}{A}}%
-%
-%
-\settowidth{\Width}{P}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{P}\settodepth{\Depth}{P}\setlength{\Height}{\Depth}%
-\put(0.1708,-1.9464){\hspace*{\Width}\raisebox{\Height}{P}}%
-%
-%
-\settowidth{\Width}{Q}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{Q}\settodepth{\Depth}{Q}\setlength{\Height}{\Depth}%
-\put(2.1104,-0.9482){\hspace*{\Width}\raisebox{\Height}{Q}}%
-%
-%
-\special{pa -1465 0}\special{pa 3984 0}%
-\special{fp}%
-\special{pa 0 1291}\special{pa 0 -1386}%
-\special{fp}%
-\settowidth{\Width}{$x$}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{$x$}\settodepth{\Depth}{$x$}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(10.1700,0.0000){\hspace*{\Width}\raisebox{\Height}{$x$}}%
-%
-%
-\settowidth{\Width}{$y$}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{$y$}\settodepth{\Depth}{$y$}\setlength{\Height}{\Depth}%
-\put(0.0000,3.5700){\hspace*{\Width}\raisebox{\Height}{$y$}}%
-%
-%
-\settowidth{\Width}{O}\setlength{\Width}{-1\Width}%
-\settoheight{\Height}{O}\settodepth{\Depth}{O}\setlength{\Height}{-\Height}%
-\put(-0.0500,-0.0500){\hspace*{\Width}\raisebox{\Height}{O}}%
-%
-%
-\end{picture}}%%
-\newframe%
-{\unitlength=1cm%
-\begin{picture}%
-( 14.34000, 7.30000)( -3.72000, -3.28000)%
-\special{pn 8}%
-%
-\special{pa 787 0}\special{pa 781 -99}\special{pa 763 -196}\special{pa 732 -290}\special{pa 690 -379}%
-\special{pa 637 -463}\special{pa 574 -539}\special{pa 502 -607}\special{pa 422 -665}%
-\special{pa 335 -712}\special{pa 243 -749}\special{pa 148 -773}\special{pa 49 -786}%
-\special{pa -49 -786}\special{pa -148 -773}\special{pa -243 -749}\special{pa -335 -712}%
-\special{pa -422 -665}\special{pa -502 -607}\special{pa -574 -539}\special{pa -637 -463}%
-\special{pa -690 -379}\special{pa -732 -290}\special{pa -763 -196}\special{pa -781 -99}%
-\special{pa -787 0}\special{pa -781 99}\special{pa -763 196}\special{pa -732 290}%
-\special{pa -690 379}\special{pa -637 463}\special{pa -574 539}\special{pa -502 607}%
-\special{pa -422 665}\special{pa -335 712}\special{pa -243 749}\special{pa -148 773}%
-\special{pa -49 786}\special{pa 49 786}\special{pa 148 773}\special{pa 243 749}\special{pa 335 712}%
-\special{pa 422 665}\special{pa 502 607}\special{pa 574 539}\special{pa 637 463}\special{pa 690 379}%
-\special{pa 732 290}\special{pa 763 196}\special{pa 781 99}\special{pa 787 0}%
-\special{fp}%
-\special{pa 1575 0}\special{pa 80 783}%
-\special{fp}%
-\special{pn 1}%
-\special{pa 839 381}\special{pa 832 376}\special{pa 824 376}\special{pa 816 381}\special{pa 812 388}%
-\special{pa 812 396}\special{pa 816 403}\special{pa 824 407}\special{pa 832 407}\special{pa 839 403}%
-\special{pa 843 396}\special{pa 843 388}\special{pa 839 381}\special{sh 1}\special{fp}%
-\special{pn 8}%
-\settowidth{\Width}{A}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{A}\settodepth{\Depth}{A}\setlength{\Height}{-\Height}%
-\put(4.0000,-0.0500){\hspace*{\Width}\raisebox{\Height}{A}}%
-%
-%
-\settowidth{\Width}{P}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{P}\settodepth{\Depth}{P}\setlength{\Height}{\Depth}%
-\put(0.2542,-1.9395){\hspace*{\Width}\raisebox{\Height}{P}}%
-%
-%
-\settowidth{\Width}{Q}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{Q}\settodepth{\Depth}{Q}\setlength{\Height}{\Depth}%
-\put(2.1521,-0.9448){\hspace*{\Width}\raisebox{\Height}{Q}}%
-%
-%
-\special{pa -1465 0}\special{pa 3984 0}%
-\special{fp}%
-\special{pa 0 1291}\special{pa 0 -1386}%
-\special{fp}%
-\settowidth{\Width}{$x$}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{$x$}\settodepth{\Depth}{$x$}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(10.1700,0.0000){\hspace*{\Width}\raisebox{\Height}{$x$}}%
-%
-%
-\settowidth{\Width}{$y$}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{$y$}\settodepth{\Depth}{$y$}\setlength{\Height}{\Depth}%
-\put(0.0000,3.5700){\hspace*{\Width}\raisebox{\Height}{$y$}}%
-%
-%
-\settowidth{\Width}{O}\setlength{\Width}{-1\Width}%
-\settoheight{\Height}{O}\settodepth{\Depth}{O}\setlength{\Height}{-\Height}%
-\put(-0.0500,-0.0500){\hspace*{\Width}\raisebox{\Height}{O}}%
-%
-%
-\end{picture}}%%
-\newframe%
-{\unitlength=1cm%
-\begin{picture}%
-( 14.34000, 7.30000)( -3.72000, -3.28000)%
-\special{pn 8}%
-%
-\special{pa 787 0}\special{pa 781 -99}\special{pa 763 -196}\special{pa 732 -290}\special{pa 690 -379}%
-\special{pa 637 -463}\special{pa 574 -539}\special{pa 502 -607}\special{pa 422 -665}%
-\special{pa 335 -712}\special{pa 243 -749}\special{pa 148 -773}\special{pa 49 -786}%
-\special{pa -49 -786}\special{pa -148 -773}\special{pa -243 -749}\special{pa -335 -712}%
-\special{pa -422 -665}\special{pa -502 -607}\special{pa -574 -539}\special{pa -637 -463}%
-\special{pa -690 -379}\special{pa -732 -290}\special{pa -763 -196}\special{pa -781 -99}%
-\special{pa -787 0}\special{pa -781 99}\special{pa -763 196}\special{pa -732 290}%
-\special{pa -690 379}\special{pa -637 463}\special{pa -574 539}\special{pa -502 607}%
-\special{pa -422 665}\special{pa -335 712}\special{pa -243 749}\special{pa -148 773}%
-\special{pa -49 786}\special{pa 49 786}\special{pa 148 773}\special{pa 243 749}\special{pa 335 712}%
-\special{pa 422 665}\special{pa 502 607}\special{pa 574 539}\special{pa 637 463}\special{pa 690 379}%
-\special{pa 732 290}\special{pa 763 196}\special{pa 781 99}\special{pa 787 0}%
-\special{fp}%
-\special{pa 1575 0}\special{pa 113 779}%
-\special{fp}%
-\special{pn 1}%
-\special{pa 855 378}\special{pa 848 374}\special{pa 840 374}\special{pa 833 378}\special{pa 829 386}%
-\special{pa 829 394}\special{pa 833 401}\special{pa 840 405}\special{pa 848 405}\special{pa 855 401}%
-\special{pa 859 394}\special{pa 859 386}\special{pa 855 378}\special{sh 1}\special{fp}%
-\special{pn 8}%
-\settowidth{\Width}{A}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{A}\settodepth{\Depth}{A}\setlength{\Height}{-\Height}%
-\put(4.0000,-0.0500){\hspace*{\Width}\raisebox{\Height}{A}}%
-%
-%
-\settowidth{\Width}{P}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{P}\settodepth{\Depth}{P}\setlength{\Height}{\Depth}%
-\put(0.3373,-1.9293){\hspace*{\Width}\raisebox{\Height}{P}}%
-%
-%
-\settowidth{\Width}{Q}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{Q}\settodepth{\Depth}{Q}\setlength{\Height}{\Depth}%
-\put(2.1936,-0.9396){\hspace*{\Width}\raisebox{\Height}{Q}}%
-%
-%
-\special{pa -1465 0}\special{pa 3984 0}%
-\special{fp}%
-\special{pa 0 1291}\special{pa 0 -1386}%
-\special{fp}%
-\settowidth{\Width}{$x$}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{$x$}\settodepth{\Depth}{$x$}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(10.1700,0.0000){\hspace*{\Width}\raisebox{\Height}{$x$}}%
-%
-%
-\settowidth{\Width}{$y$}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{$y$}\settodepth{\Depth}{$y$}\setlength{\Height}{\Depth}%
-\put(0.0000,3.5700){\hspace*{\Width}\raisebox{\Height}{$y$}}%
-%
-%
-\settowidth{\Width}{O}\setlength{\Width}{-1\Width}%
-\settoheight{\Height}{O}\settodepth{\Depth}{O}\setlength{\Height}{-\Height}%
-\put(-0.0500,-0.0500){\hspace*{\Width}\raisebox{\Height}{O}}%
-%
-%
-\end{picture}}%%
-\newframe%
-{\unitlength=1cm%
-\begin{picture}%
-( 14.34000, 7.30000)( -3.72000, -3.28000)%
-\special{pn 8}%
-%
-\special{pa 787 0}\special{pa 781 -99}\special{pa 763 -196}\special{pa 732 -290}\special{pa 690 -379}%
-\special{pa 637 -463}\special{pa 574 -539}\special{pa 502 -607}\special{pa 422 -665}%
-\special{pa 335 -712}\special{pa 243 -749}\special{pa 148 -773}\special{pa 49 -786}%
-\special{pa -49 -786}\special{pa -148 -773}\special{pa -243 -749}\special{pa -335 -712}%
-\special{pa -422 -665}\special{pa -502 -607}\special{pa -574 -539}\special{pa -637 -463}%
-\special{pa -690 -379}\special{pa -732 -290}\special{pa -763 -196}\special{pa -781 -99}%
-\special{pa -787 0}\special{pa -781 99}\special{pa -763 196}\special{pa -732 290}%
-\special{pa -690 379}\special{pa -637 463}\special{pa -574 539}\special{pa -502 607}%
-\special{pa -422 665}\special{pa -335 712}\special{pa -243 749}\special{pa -148 773}%
-\special{pa -49 786}\special{pa 49 786}\special{pa 148 773}\special{pa 243 749}\special{pa 335 712}%
-\special{pa 422 665}\special{pa 502 607}\special{pa 574 539}\special{pa 637 463}\special{pa 690 379}%
-\special{pa 732 290}\special{pa 763 196}\special{pa 781 99}\special{pa 787 0}%
-\special{fp}%
-\special{pa 1575 0}\special{pa 146 774}%
-\special{fp}%
-\special{pn 1}%
-\special{pa 871 376}\special{pa 864 372}\special{pa 856 372}\special{pa 849 376}\special{pa 845 383}%
-\special{pa 845 391}\special{pa 849 398}\special{pa 856 402}\special{pa 864 402}\special{pa 871 398}%
-\special{pa 875 391}\special{pa 875 383}\special{pa 871 376}\special{sh 1}\special{fp}%
-\special{pn 8}%
-\settowidth{\Width}{A}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{A}\settodepth{\Depth}{A}\setlength{\Height}{-\Height}%
-\put(4.0000,-0.0500){\hspace*{\Width}\raisebox{\Height}{A}}%
-%
-%
-\settowidth{\Width}{P}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{P}\settodepth{\Depth}{P}\setlength{\Height}{\Depth}%
-\put(0.4199,-1.9155){\hspace*{\Width}\raisebox{\Height}{P}}%
-%
-%
-\settowidth{\Width}{Q}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{Q}\settodepth{\Depth}{Q}\setlength{\Height}{\Depth}%
-\put(2.2349,-0.9327){\hspace*{\Width}\raisebox{\Height}{Q}}%
-%
-%
-\special{pa -1465 0}\special{pa 3984 0}%
-\special{fp}%
-\special{pa 0 1291}\special{pa 0 -1386}%
-\special{fp}%
-\settowidth{\Width}{$x$}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{$x$}\settodepth{\Depth}{$x$}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(10.1700,0.0000){\hspace*{\Width}\raisebox{\Height}{$x$}}%
-%
-%
-\settowidth{\Width}{$y$}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{$y$}\settodepth{\Depth}{$y$}\setlength{\Height}{\Depth}%
-\put(0.0000,3.5700){\hspace*{\Width}\raisebox{\Height}{$y$}}%
-%
-%
-\settowidth{\Width}{O}\setlength{\Width}{-1\Width}%
-\settoheight{\Height}{O}\settodepth{\Depth}{O}\setlength{\Height}{-\Height}%
-\put(-0.0500,-0.0500){\hspace*{\Width}\raisebox{\Height}{O}}%
-%
-%
-\end{picture}}%%
-\newframe%
-{\unitlength=1cm%
-\begin{picture}%
-( 14.34000, 7.30000)( -3.72000, -3.28000)%
-\special{pn 8}%
-%
-\special{pa 787 0}\special{pa 781 -99}\special{pa 763 -196}\special{pa 732 -290}\special{pa 690 -379}%
-\special{pa 637 -463}\special{pa 574 -539}\special{pa 502 -607}\special{pa 422 -665}%
-\special{pa 335 -712}\special{pa 243 -749}\special{pa 148 -773}\special{pa 49 -786}%
-\special{pa -49 -786}\special{pa -148 -773}\special{pa -243 -749}\special{pa -335 -712}%
-\special{pa -422 -665}\special{pa -502 -607}\special{pa -574 -539}\special{pa -637 -463}%
-\special{pa -690 -379}\special{pa -732 -290}\special{pa -763 -196}\special{pa -781 -99}%
-\special{pa -787 0}\special{pa -781 99}\special{pa -763 196}\special{pa -732 290}%
-\special{pa -690 379}\special{pa -637 463}\special{pa -574 539}\special{pa -502 607}%
-\special{pa -422 665}\special{pa -335 712}\special{pa -243 749}\special{pa -148 773}%
-\special{pa -49 786}\special{pa 49 786}\special{pa 148 773}\special{pa 243 749}\special{pa 335 712}%
-\special{pa 422 665}\special{pa 502 607}\special{pa 574 539}\special{pa 637 463}\special{pa 690 379}%
-\special{pa 732 290}\special{pa 763 196}\special{pa 781 99}\special{pa 787 0}%
-\special{fp}%
-\special{pa 1575 0}\special{pa 178 767}%
-\special{fp}%
-\special{pn 1}%
-\special{pa 887 372}\special{pa 880 368}\special{pa 872 368}\special{pa 865 372}\special{pa 861 379}%
-\special{pa 861 388}\special{pa 865 395}\special{pa 872 399}\special{pa 880 399}\special{pa 887 395}%
-\special{pa 892 388}\special{pa 892 379}\special{pa 887 372}\special{sh 1}\special{fp}%
-\special{pn 8}%
-\settowidth{\Width}{A}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{A}\settodepth{\Depth}{A}\setlength{\Height}{-\Height}%
-\put(4.0000,-0.0500){\hspace*{\Width}\raisebox{\Height}{A}}%
-%
-%
-\settowidth{\Width}{P}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{P}\settodepth{\Depth}{P}\setlength{\Height}{\Depth}%
-\put(0.5018,-1.8983){\hspace*{\Width}\raisebox{\Height}{P}}%
-%
-%
-\settowidth{\Width}{Q}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{Q}\settodepth{\Depth}{Q}\setlength{\Height}{\Depth}%
-\put(2.2759,-0.9241){\hspace*{\Width}\raisebox{\Height}{Q}}%
-%
-%
-\special{pa -1465 0}\special{pa 3984 0}%
-\special{fp}%
-\special{pa 0 1291}\special{pa 0 -1386}%
-\special{fp}%
-\settowidth{\Width}{$x$}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{$x$}\settodepth{\Depth}{$x$}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(10.1700,0.0000){\hspace*{\Width}\raisebox{\Height}{$x$}}%
-%
-%
-\settowidth{\Width}{$y$}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{$y$}\settodepth{\Depth}{$y$}\setlength{\Height}{\Depth}%
-\put(0.0000,3.5700){\hspace*{\Width}\raisebox{\Height}{$y$}}%
-%
-%
-\settowidth{\Width}{O}\setlength{\Width}{-1\Width}%
-\settoheight{\Height}{O}\settodepth{\Depth}{O}\setlength{\Height}{-\Height}%
-\put(-0.0500,-0.0500){\hspace*{\Width}\raisebox{\Height}{O}}%
-%
-%
-\end{picture}}%%
-\newframe%
-{\unitlength=1cm%
-\begin{picture}%
-( 14.34000, 7.30000)( -3.72000, -3.28000)%
-\special{pn 8}%
-%
-\special{pa 787 0}\special{pa 781 -99}\special{pa 763 -196}\special{pa 732 -290}\special{pa 690 -379}%
-\special{pa 637 -463}\special{pa 574 -539}\special{pa 502 -607}\special{pa 422 -665}%
-\special{pa 335 -712}\special{pa 243 -749}\special{pa 148 -773}\special{pa 49 -786}%
-\special{pa -49 -786}\special{pa -148 -773}\special{pa -243 -749}\special{pa -335 -712}%
-\special{pa -422 -665}\special{pa -502 -607}\special{pa -574 -539}\special{pa -637 -463}%
-\special{pa -690 -379}\special{pa -732 -290}\special{pa -763 -196}\special{pa -781 -99}%
-\special{pa -787 0}\special{pa -781 99}\special{pa -763 196}\special{pa -732 290}%
-\special{pa -690 379}\special{pa -637 463}\special{pa -574 539}\special{pa -502 607}%
-\special{pa -422 665}\special{pa -335 712}\special{pa -243 749}\special{pa -148 773}%
-\special{pa -49 786}\special{pa 49 786}\special{pa 148 773}\special{pa 243 749}\special{pa 335 712}%
-\special{pa 422 665}\special{pa 502 607}\special{pa 574 539}\special{pa 637 463}\special{pa 690 379}%
-\special{pa 732 290}\special{pa 763 196}\special{pa 781 99}\special{pa 787 0}%
-\special{fp}%
-\special{pa 1575 0}\special{pa 210 759}%
-\special{fp}%
-\special{pn 1}%
-\special{pa 903 368}\special{pa 896 364}\special{pa 888 364}\special{pa 881 368}\special{pa 877 375}%
-\special{pa 877 384}\special{pa 881 391}\special{pa 888 395}\special{pa 896 395}\special{pa 903 391}%
-\special{pa 908 384}\special{pa 908 375}\special{pa 903 368}\special{sh 1}\special{fp}%
-\special{pn 8}%
-\settowidth{\Width}{A}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{A}\settodepth{\Depth}{A}\setlength{\Height}{-\Height}%
-\put(4.0000,-0.0500){\hspace*{\Width}\raisebox{\Height}{A}}%
-%
-%
-\settowidth{\Width}{P}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{P}\settodepth{\Depth}{P}\setlength{\Height}{\Depth}%
-\put(0.5830,-1.8777){\hspace*{\Width}\raisebox{\Height}{P}}%
-%
-%
-\settowidth{\Width}{Q}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{Q}\settodepth{\Depth}{Q}\setlength{\Height}{\Depth}%
-\put(2.3165,-0.9138){\hspace*{\Width}\raisebox{\Height}{Q}}%
-%
-%
-\special{pa -1465 0}\special{pa 3984 0}%
-\special{fp}%
-\special{pa 0 1291}\special{pa 0 -1386}%
-\special{fp}%
-\settowidth{\Width}{$x$}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{$x$}\settodepth{\Depth}{$x$}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(10.1700,0.0000){\hspace*{\Width}\raisebox{\Height}{$x$}}%
-%
-%
-\settowidth{\Width}{$y$}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{$y$}\settodepth{\Depth}{$y$}\setlength{\Height}{\Depth}%
-\put(0.0000,3.5700){\hspace*{\Width}\raisebox{\Height}{$y$}}%
-%
-%
-\settowidth{\Width}{O}\setlength{\Width}{-1\Width}%
-\settoheight{\Height}{O}\settodepth{\Depth}{O}\setlength{\Height}{-\Height}%
-\put(-0.0500,-0.0500){\hspace*{\Width}\raisebox{\Height}{O}}%
-%
-%
-\end{picture}}%%
-\newframe%
-{\unitlength=1cm%
-\begin{picture}%
-( 14.34000, 7.30000)( -3.72000, -3.28000)%
-\special{pn 8}%
-%
-\special{pa 787 0}\special{pa 781 -99}\special{pa 763 -196}\special{pa 732 -290}\special{pa 690 -379}%
-\special{pa 637 -463}\special{pa 574 -539}\special{pa 502 -607}\special{pa 422 -665}%
-\special{pa 335 -712}\special{pa 243 -749}\special{pa 148 -773}\special{pa 49 -786}%
-\special{pa -49 -786}\special{pa -148 -773}\special{pa -243 -749}\special{pa -335 -712}%
-\special{pa -422 -665}\special{pa -502 -607}\special{pa -574 -539}\special{pa -637 -463}%
-\special{pa -690 -379}\special{pa -732 -290}\special{pa -763 -196}\special{pa -781 -99}%
-\special{pa -787 0}\special{pa -781 99}\special{pa -763 196}\special{pa -732 290}%
-\special{pa -690 379}\special{pa -637 463}\special{pa -574 539}\special{pa -502 607}%
-\special{pa -422 665}\special{pa -335 712}\special{pa -243 749}\special{pa -148 773}%
-\special{pa -49 786}\special{pa 49 786}\special{pa 148 773}\special{pa 243 749}\special{pa 335 712}%
-\special{pa 422 665}\special{pa 502 607}\special{pa 574 539}\special{pa 637 463}\special{pa 690 379}%
-\special{pa 732 290}\special{pa 763 196}\special{pa 781 99}\special{pa 787 0}%
-\special{fp}%
-\special{pa 1575 0}\special{pa 241 749}%
-\special{fp}%
-\special{pn 1}%
-\special{pa 919 364}\special{pa 912 360}\special{pa 904 360}\special{pa 897 364}\special{pa 893 371}%
-\special{pa 893 379}\special{pa 897 386}\special{pa 904 390}\special{pa 912 390}\special{pa 919 386}%
-\special{pa 923 379}\special{pa 923 371}\special{pa 919 364}\special{sh 1}\special{fp}%
-\special{pn 8}%
-\settowidth{\Width}{A}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{A}\settodepth{\Depth}{A}\setlength{\Height}{-\Height}%
-\put(4.0000,-0.0500){\hspace*{\Width}\raisebox{\Height}{A}}%
-%
-%
-\settowidth{\Width}{P}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{P}\settodepth{\Depth}{P}\setlength{\Height}{\Depth}%
-\put(0.6632,-1.8537){\hspace*{\Width}\raisebox{\Height}{P}}%
-%
-%
-\settowidth{\Width}{Q}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{Q}\settodepth{\Depth}{Q}\setlength{\Height}{\Depth}%
-\put(2.3566,-0.9018){\hspace*{\Width}\raisebox{\Height}{Q}}%
-%
-%
-\special{pa -1465 0}\special{pa 3984 0}%
-\special{fp}%
-\special{pa 0 1291}\special{pa 0 -1386}%
-\special{fp}%
-\settowidth{\Width}{$x$}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{$x$}\settodepth{\Depth}{$x$}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(10.1700,0.0000){\hspace*{\Width}\raisebox{\Height}{$x$}}%
-%
-%
-\settowidth{\Width}{$y$}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{$y$}\settodepth{\Depth}{$y$}\setlength{\Height}{\Depth}%
-\put(0.0000,3.5700){\hspace*{\Width}\raisebox{\Height}{$y$}}%
-%
-%
-\settowidth{\Width}{O}\setlength{\Width}{-1\Width}%
-\settoheight{\Height}{O}\settodepth{\Depth}{O}\setlength{\Height}{-\Height}%
-\put(-0.0500,-0.0500){\hspace*{\Width}\raisebox{\Height}{O}}%
-%
-%
-\end{picture}}%%
-\newframe%
-{\unitlength=1cm%
-\begin{picture}%
-( 14.34000, 7.30000)( -3.72000, -3.28000)%
-\special{pn 8}%
-%
-\special{pa 787 0}\special{pa 781 -99}\special{pa 763 -196}\special{pa 732 -290}\special{pa 690 -379}%
-\special{pa 637 -463}\special{pa 574 -539}\special{pa 502 -607}\special{pa 422 -665}%
-\special{pa 335 -712}\special{pa 243 -749}\special{pa 148 -773}\special{pa 49 -786}%
-\special{pa -49 -786}\special{pa -148 -773}\special{pa -243 -749}\special{pa -335 -712}%
-\special{pa -422 -665}\special{pa -502 -607}\special{pa -574 -539}\special{pa -637 -463}%
-\special{pa -690 -379}\special{pa -732 -290}\special{pa -763 -196}\special{pa -781 -99}%
-\special{pa -787 0}\special{pa -781 99}\special{pa -763 196}\special{pa -732 290}%
-\special{pa -690 379}\special{pa -637 463}\special{pa -574 539}\special{pa -502 607}%
-\special{pa -422 665}\special{pa -335 712}\special{pa -243 749}\special{pa -148 773}%
-\special{pa -49 786}\special{pa 49 786}\special{pa 148 773}\special{pa 243 749}\special{pa 335 712}%
-\special{pa 422 665}\special{pa 502 607}\special{pa 574 539}\special{pa 637 463}\special{pa 690 379}%
-\special{pa 732 290}\special{pa 763 196}\special{pa 781 99}\special{pa 787 0}%
-\special{fp}%
-\special{pa 1575 0}\special{pa 273 739}%
-\special{fp}%
-\special{pn 1}%
-\special{pa 935 358}\special{pa 928 354}\special{pa 920 354}\special{pa 913 358}\special{pa 908 365}%
-\special{pa 908 373}\special{pa 913 380}\special{pa 920 385}\special{pa 928 385}\special{pa 935 380}%
-\special{pa 939 373}\special{pa 939 365}\special{pa 935 358}\special{sh 1}\special{fp}%
-\special{pn 8}%
-\settowidth{\Width}{A}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{A}\settodepth{\Depth}{A}\setlength{\Height}{-\Height}%
-\put(4.0000,-0.0500){\hspace*{\Width}\raisebox{\Height}{A}}%
-%
-%
-\settowidth{\Width}{P}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{P}\settodepth{\Depth}{P}\setlength{\Height}{\Depth}%
-\put(0.7423,-1.8263){\hspace*{\Width}\raisebox{\Height}{P}}%
-%
-%
-\settowidth{\Width}{Q}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{Q}\settodepth{\Depth}{Q}\setlength{\Height}{\Depth}%
-\put(2.3962,-0.8882){\hspace*{\Width}\raisebox{\Height}{Q}}%
-%
-%
-\special{pa -1465 0}\special{pa 3984 0}%
-\special{fp}%
-\special{pa 0 1291}\special{pa 0 -1386}%
-\special{fp}%
-\settowidth{\Width}{$x$}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{$x$}\settodepth{\Depth}{$x$}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(10.1700,0.0000){\hspace*{\Width}\raisebox{\Height}{$x$}}%
-%
-%
-\settowidth{\Width}{$y$}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{$y$}\settodepth{\Depth}{$y$}\setlength{\Height}{\Depth}%
-\put(0.0000,3.5700){\hspace*{\Width}\raisebox{\Height}{$y$}}%
-%
-%
-\settowidth{\Width}{O}\setlength{\Width}{-1\Width}%
-\settoheight{\Height}{O}\settodepth{\Depth}{O}\setlength{\Height}{-\Height}%
-\put(-0.0500,-0.0500){\hspace*{\Width}\raisebox{\Height}{O}}%
-%
-%
-\end{picture}}%%
-\newframe%
-{\unitlength=1cm%
-\begin{picture}%
-( 14.34000, 7.30000)( -3.72000, -3.28000)%
-\special{pn 8}%
-%
-\special{pa 787 0}\special{pa 781 -99}\special{pa 763 -196}\special{pa 732 -290}\special{pa 690 -379}%
-\special{pa 637 -463}\special{pa 574 -539}\special{pa 502 -607}\special{pa 422 -665}%
-\special{pa 335 -712}\special{pa 243 -749}\special{pa 148 -773}\special{pa 49 -786}%
-\special{pa -49 -786}\special{pa -148 -773}\special{pa -243 -749}\special{pa -335 -712}%
-\special{pa -422 -665}\special{pa -502 -607}\special{pa -574 -539}\special{pa -637 -463}%
-\special{pa -690 -379}\special{pa -732 -290}\special{pa -763 -196}\special{pa -781 -99}%
-\special{pa -787 0}\special{pa -781 99}\special{pa -763 196}\special{pa -732 290}%
-\special{pa -690 379}\special{pa -637 463}\special{pa -574 539}\special{pa -502 607}%
-\special{pa -422 665}\special{pa -335 712}\special{pa -243 749}\special{pa -148 773}%
-\special{pa -49 786}\special{pa 49 786}\special{pa 148 773}\special{pa 243 749}\special{pa 335 712}%
-\special{pa 422 665}\special{pa 502 607}\special{pa 574 539}\special{pa 637 463}\special{pa 690 379}%
-\special{pa 732 290}\special{pa 763 196}\special{pa 781 99}\special{pa 787 0}%
-\special{fp}%
-\special{pa 1575 0}\special{pa 303 727}%
-\special{fp}%
-\special{pn 1}%
-\special{pa 950 352}\special{pa 943 348}\special{pa 935 348}\special{pa 928 352}\special{pa 924 359}%
-\special{pa 924 367}\special{pa 928 374}\special{pa 935 379}\special{pa 943 379}\special{pa 950 374}%
-\special{pa 954 367}\special{pa 954 359}\special{pa 950 352}\special{sh 1}\special{fp}%
-\special{pn 8}%
-\settowidth{\Width}{A}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{A}\settodepth{\Depth}{A}\setlength{\Height}{-\Height}%
-\put(4.0000,-0.0500){\hspace*{\Width}\raisebox{\Height}{A}}%
-%
-%
-\settowidth{\Width}{P}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{P}\settodepth{\Depth}{P}\setlength{\Height}{\Depth}%
-\put(0.8203,-1.7957){\hspace*{\Width}\raisebox{\Height}{P}}%
-%
-%
-\settowidth{\Width}{Q}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{Q}\settodepth{\Depth}{Q}\setlength{\Height}{\Depth}%
-\put(2.4351,-0.8729){\hspace*{\Width}\raisebox{\Height}{Q}}%
-%
-%
-\special{pa -1465 0}\special{pa 3984 0}%
-\special{fp}%
-\special{pa 0 1291}\special{pa 0 -1386}%
-\special{fp}%
-\settowidth{\Width}{$x$}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{$x$}\settodepth{\Depth}{$x$}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(10.1700,0.0000){\hspace*{\Width}\raisebox{\Height}{$x$}}%
-%
-%
-\settowidth{\Width}{$y$}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{$y$}\settodepth{\Depth}{$y$}\setlength{\Height}{\Depth}%
-\put(0.0000,3.5700){\hspace*{\Width}\raisebox{\Height}{$y$}}%
-%
-%
-\settowidth{\Width}{O}\setlength{\Width}{-1\Width}%
-\settoheight{\Height}{O}\settodepth{\Depth}{O}\setlength{\Height}{-\Height}%
-\put(-0.0500,-0.0500){\hspace*{\Width}\raisebox{\Height}{O}}%
-%
-%
-\end{picture}}%%
-\newframe%
-{\unitlength=1cm%
-\begin{picture}%
-( 14.34000, 7.30000)( -3.72000, -3.28000)%
-\special{pn 8}%
-%
-\special{pa 787 0}\special{pa 781 -99}\special{pa 763 -196}\special{pa 732 -290}\special{pa 690 -379}%
-\special{pa 637 -463}\special{pa 574 -539}\special{pa 502 -607}\special{pa 422 -665}%
-\special{pa 335 -712}\special{pa 243 -749}\special{pa 148 -773}\special{pa 49 -786}%
-\special{pa -49 -786}\special{pa -148 -773}\special{pa -243 -749}\special{pa -335 -712}%
-\special{pa -422 -665}\special{pa -502 -607}\special{pa -574 -539}\special{pa -637 -463}%
-\special{pa -690 -379}\special{pa -732 -290}\special{pa -763 -196}\special{pa -781 -99}%
-\special{pa -787 0}\special{pa -781 99}\special{pa -763 196}\special{pa -732 290}%
-\special{pa -690 379}\special{pa -637 463}\special{pa -574 539}\special{pa -502 607}%
-\special{pa -422 665}\special{pa -335 712}\special{pa -243 749}\special{pa -148 773}%
-\special{pa -49 786}\special{pa 49 786}\special{pa 148 773}\special{pa 243 749}\special{pa 335 712}%
-\special{pa 422 665}\special{pa 502 607}\special{pa 574 539}\special{pa 637 463}\special{pa 690 379}%
-\special{pa 732 290}\special{pa 763 196}\special{pa 781 99}\special{pa 787 0}%
-\special{fp}%
-\special{pa 1575 0}\special{pa 333 713}%
-\special{fp}%
-\special{pn 1}%
-\special{pa 965 346}\special{pa 958 341}\special{pa 950 341}\special{pa 943 346}\special{pa 939 353}%
-\special{pa 939 361}\special{pa 943 368}\special{pa 950 372}\special{pa 958 372}\special{pa 965 368}%
-\special{pa 969 361}\special{pa 969 353}\special{pa 965 346}\special{sh 1}\special{fp}%
-\special{pn 8}%
-\settowidth{\Width}{A}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{A}\settodepth{\Depth}{A}\setlength{\Height}{-\Height}%
-\put(4.0000,-0.0500){\hspace*{\Width}\raisebox{\Height}{A}}%
-%
-%
-\settowidth{\Width}{P}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{P}\settodepth{\Depth}{P}\setlength{\Height}{\Depth}%
-\put(0.8968,-1.7619){\hspace*{\Width}\raisebox{\Height}{P}}%
-%
-%
-\settowidth{\Width}{Q}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{Q}\settodepth{\Depth}{Q}\setlength{\Height}{\Depth}%
-\put(2.4734,-0.8559){\hspace*{\Width}\raisebox{\Height}{Q}}%
-%
-%
-\special{pa -1465 0}\special{pa 3984 0}%
-\special{fp}%
-\special{pa 0 1291}\special{pa 0 -1386}%
-\special{fp}%
-\settowidth{\Width}{$x$}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{$x$}\settodepth{\Depth}{$x$}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(10.1700,0.0000){\hspace*{\Width}\raisebox{\Height}{$x$}}%
-%
-%
-\settowidth{\Width}{$y$}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{$y$}\settodepth{\Depth}{$y$}\setlength{\Height}{\Depth}%
-\put(0.0000,3.5700){\hspace*{\Width}\raisebox{\Height}{$y$}}%
-%
-%
-\settowidth{\Width}{O}\setlength{\Width}{-1\Width}%
-\settoheight{\Height}{O}\settodepth{\Depth}{O}\setlength{\Height}{-\Height}%
-\put(-0.0500,-0.0500){\hspace*{\Width}\raisebox{\Height}{O}}%
-%
-%
-\end{picture}}%%
-\newframe%
-{\unitlength=1cm%
-\begin{picture}%
-( 14.34000, 7.30000)( -3.72000, -3.28000)%
-\special{pn 8}%
-%
-\special{pa 787 0}\special{pa 781 -99}\special{pa 763 -196}\special{pa 732 -290}\special{pa 690 -379}%
-\special{pa 637 -463}\special{pa 574 -539}\special{pa 502 -607}\special{pa 422 -665}%
-\special{pa 335 -712}\special{pa 243 -749}\special{pa 148 -773}\special{pa 49 -786}%
-\special{pa -49 -786}\special{pa -148 -773}\special{pa -243 -749}\special{pa -335 -712}%
-\special{pa -422 -665}\special{pa -502 -607}\special{pa -574 -539}\special{pa -637 -463}%
-\special{pa -690 -379}\special{pa -732 -290}\special{pa -763 -196}\special{pa -781 -99}%
-\special{pa -787 0}\special{pa -781 99}\special{pa -763 196}\special{pa -732 290}%
-\special{pa -690 379}\special{pa -637 463}\special{pa -574 539}\special{pa -502 607}%
-\special{pa -422 665}\special{pa -335 712}\special{pa -243 749}\special{pa -148 773}%
-\special{pa -49 786}\special{pa 49 786}\special{pa 148 773}\special{pa 243 749}\special{pa 335 712}%
-\special{pa 422 665}\special{pa 502 607}\special{pa 574 539}\special{pa 637 463}\special{pa 690 379}%
-\special{pa 732 290}\special{pa 763 196}\special{pa 781 99}\special{pa 787 0}%
-\special{fp}%
-\special{pa 1575 0}\special{pa 363 699}%
-\special{fp}%
-\special{pn 1}%
-\special{pa 980 338}\special{pa 973 334}\special{pa 965 334}\special{pa 958 338}\special{pa 954 345}%
-\special{pa 954 353}\special{pa 958 361}\special{pa 965 365}\special{pa 973 365}\special{pa 980 361}%
-\special{pa 984 353}\special{pa 984 345}\special{pa 980 338}\special{sh 1}\special{fp}%
-\special{pn 8}%
-\settowidth{\Width}{A}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{A}\settodepth{\Depth}{A}\setlength{\Height}{-\Height}%
-\put(4.0000,-0.0500){\hspace*{\Width}\raisebox{\Height}{A}}%
-%
-%
-\settowidth{\Width}{P}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{P}\settodepth{\Depth}{P}\setlength{\Height}{\Depth}%
-\put(0.9719,-1.7248){\hspace*{\Width}\raisebox{\Height}{P}}%
-%
-%
-\settowidth{\Width}{Q}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{Q}\settodepth{\Depth}{Q}\setlength{\Height}{\Depth}%
-\put(2.5110,-0.8374){\hspace*{\Width}\raisebox{\Height}{Q}}%
-%
-%
-\special{pa -1465 0}\special{pa 3984 0}%
-\special{fp}%
-\special{pa 0 1291}\special{pa 0 -1386}%
-\special{fp}%
-\settowidth{\Width}{$x$}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{$x$}\settodepth{\Depth}{$x$}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(10.1700,0.0000){\hspace*{\Width}\raisebox{\Height}{$x$}}%
-%
-%
-\settowidth{\Width}{$y$}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{$y$}\settodepth{\Depth}{$y$}\setlength{\Height}{\Depth}%
-\put(0.0000,3.5700){\hspace*{\Width}\raisebox{\Height}{$y$}}%
-%
-%
-\settowidth{\Width}{O}\setlength{\Width}{-1\Width}%
-\settoheight{\Height}{O}\settodepth{\Depth}{O}\setlength{\Height}{-\Height}%
-\put(-0.0500,-0.0500){\hspace*{\Width}\raisebox{\Height}{O}}%
-%
-%
-\end{picture}}%%
-\newframe%
-{\unitlength=1cm%
-\begin{picture}%
-( 14.34000, 7.30000)( -3.72000, -3.28000)%
-\special{pn 8}%
-%
-\special{pa 787 0}\special{pa 781 -99}\special{pa 763 -196}\special{pa 732 -290}\special{pa 690 -379}%
-\special{pa 637 -463}\special{pa 574 -539}\special{pa 502 -607}\special{pa 422 -665}%
-\special{pa 335 -712}\special{pa 243 -749}\special{pa 148 -773}\special{pa 49 -786}%
-\special{pa -49 -786}\special{pa -148 -773}\special{pa -243 -749}\special{pa -335 -712}%
-\special{pa -422 -665}\special{pa -502 -607}\special{pa -574 -539}\special{pa -637 -463}%
-\special{pa -690 -379}\special{pa -732 -290}\special{pa -763 -196}\special{pa -781 -99}%
-\special{pa -787 0}\special{pa -781 99}\special{pa -763 196}\special{pa -732 290}%
-\special{pa -690 379}\special{pa -637 463}\special{pa -574 539}\special{pa -502 607}%
-\special{pa -422 665}\special{pa -335 712}\special{pa -243 749}\special{pa -148 773}%
-\special{pa -49 786}\special{pa 49 786}\special{pa 148 773}\special{pa 243 749}\special{pa 335 712}%
-\special{pa 422 665}\special{pa 502 607}\special{pa 574 539}\special{pa 637 463}\special{pa 690 379}%
-\special{pa 732 290}\special{pa 763 196}\special{pa 781 99}\special{pa 787 0}%
-\special{fp}%
-\special{pa 1575 0}\special{pa 392 683}%
-\special{fp}%
-\special{pn 1}%
-\special{pa 994 330}\special{pa 987 326}\special{pa 979 326}\special{pa 972 330}\special{pa 968 337}%
-\special{pa 968 346}\special{pa 972 353}\special{pa 979 357}\special{pa 987 357}\special{pa 994 353}%
-\special{pa 999 346}\special{pa 999 337}\special{pa 994 330}\special{sh 1}\special{fp}%
-\special{pn 8}%
-\settowidth{\Width}{A}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{A}\settodepth{\Depth}{A}\setlength{\Height}{-\Height}%
-\put(4.0000,-0.0500){\hspace*{\Width}\raisebox{\Height}{A}}%
-%
-%
-\settowidth{\Width}{P}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{P}\settodepth{\Depth}{P}\setlength{\Height}{\Depth}%
-\put(1.0454,-1.6847){\hspace*{\Width}\raisebox{\Height}{P}}%
-%
-%
-\settowidth{\Width}{Q}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{Q}\settodepth{\Depth}{Q}\setlength{\Height}{\Depth}%
-\put(2.5477,-0.8173){\hspace*{\Width}\raisebox{\Height}{Q}}%
-%
-%
-\special{pa -1465 0}\special{pa 3984 0}%
-\special{fp}%
-\special{pa 0 1291}\special{pa 0 -1386}%
-\special{fp}%
-\settowidth{\Width}{$x$}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{$x$}\settodepth{\Depth}{$x$}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(10.1700,0.0000){\hspace*{\Width}\raisebox{\Height}{$x$}}%
-%
-%
-\settowidth{\Width}{$y$}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{$y$}\settodepth{\Depth}{$y$}\setlength{\Height}{\Depth}%
-\put(0.0000,3.5700){\hspace*{\Width}\raisebox{\Height}{$y$}}%
-%
-%
-\settowidth{\Width}{O}\setlength{\Width}{-1\Width}%
-\settoheight{\Height}{O}\settodepth{\Depth}{O}\setlength{\Height}{-\Height}%
-\put(-0.0500,-0.0500){\hspace*{\Width}\raisebox{\Height}{O}}%
-%
-%
-\end{picture}}%%
-\newframe%
-{\unitlength=1cm%
-\begin{picture}%
-( 14.34000, 7.30000)( -3.72000, -3.28000)%
-\special{pn 8}%
-%
-\special{pa 787 0}\special{pa 781 -99}\special{pa 763 -196}\special{pa 732 -290}\special{pa 690 -379}%
-\special{pa 637 -463}\special{pa 574 -539}\special{pa 502 -607}\special{pa 422 -665}%
-\special{pa 335 -712}\special{pa 243 -749}\special{pa 148 -773}\special{pa 49 -786}%
-\special{pa -49 -786}\special{pa -148 -773}\special{pa -243 -749}\special{pa -335 -712}%
-\special{pa -422 -665}\special{pa -502 -607}\special{pa -574 -539}\special{pa -637 -463}%
-\special{pa -690 -379}\special{pa -732 -290}\special{pa -763 -196}\special{pa -781 -99}%
-\special{pa -787 0}\special{pa -781 99}\special{pa -763 196}\special{pa -732 290}%
-\special{pa -690 379}\special{pa -637 463}\special{pa -574 539}\special{pa -502 607}%
-\special{pa -422 665}\special{pa -335 712}\special{pa -243 749}\special{pa -148 773}%
-\special{pa -49 786}\special{pa 49 786}\special{pa 148 773}\special{pa 243 749}\special{pa 335 712}%
-\special{pa 422 665}\special{pa 502 607}\special{pa 574 539}\special{pa 637 463}\special{pa 690 379}%
-\special{pa 732 290}\special{pa 763 196}\special{pa 781 99}\special{pa 787 0}%
-\special{fp}%
-\special{pa 1575 0}\special{pa 420 666}%
-\special{fp}%
-\special{pn 1}%
-\special{pa 1009 322}\special{pa 1002 318}\special{pa 993 318}\special{pa 986 322}%
-\special{pa 982 329}\special{pa 982 337}\special{pa 986 344}\special{pa 993 348}\special{pa 1002 348}%
-\special{pa 1009 344}\special{pa 1013 337}\special{pa 1013 329}\special{pa 1009 322}%
-\special{sh 1}\special{fp}%
-\special{pn 8}%
-\settowidth{\Width}{A}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{A}\settodepth{\Depth}{A}\setlength{\Height}{-\Height}%
-\put(4.0000,-0.0500){\hspace*{\Width}\raisebox{\Height}{A}}%
-%
-%
-\settowidth{\Width}{P}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{P}\settodepth{\Depth}{P}\setlength{\Height}{\Depth}%
-\put(1.1171,-1.6415){\hspace*{\Width}\raisebox{\Height}{P}}%
-%
-%
-\settowidth{\Width}{Q}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{Q}\settodepth{\Depth}{Q}\setlength{\Height}{\Depth}%
-\put(2.5836,-0.7958){\hspace*{\Width}\raisebox{\Height}{Q}}%
-%
-%
-\special{pa -1465 0}\special{pa 3984 0}%
-\special{fp}%
-\special{pa 0 1291}\special{pa 0 -1386}%
-\special{fp}%
-\settowidth{\Width}{$x$}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{$x$}\settodepth{\Depth}{$x$}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(10.1700,0.0000){\hspace*{\Width}\raisebox{\Height}{$x$}}%
-%
-%
-\settowidth{\Width}{$y$}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{$y$}\settodepth{\Depth}{$y$}\setlength{\Height}{\Depth}%
-\put(0.0000,3.5700){\hspace*{\Width}\raisebox{\Height}{$y$}}%
-%
-%
-\settowidth{\Width}{O}\setlength{\Width}{-1\Width}%
-\settoheight{\Height}{O}\settodepth{\Depth}{O}\setlength{\Height}{-\Height}%
-\put(-0.0500,-0.0500){\hspace*{\Width}\raisebox{\Height}{O}}%
-%
-%
-\end{picture}}%%
-\newframe%
-{\unitlength=1cm%
-\begin{picture}%
-( 14.34000, 7.30000)( -3.72000, -3.28000)%
-\special{pn 8}%
-%
-\special{pa 787 0}\special{pa 781 -99}\special{pa 763 -196}\special{pa 732 -290}\special{pa 690 -379}%
-\special{pa 637 -463}\special{pa 574 -539}\special{pa 502 -607}\special{pa 422 -665}%
-\special{pa 335 -712}\special{pa 243 -749}\special{pa 148 -773}\special{pa 49 -786}%
-\special{pa -49 -786}\special{pa -148 -773}\special{pa -243 -749}\special{pa -335 -712}%
-\special{pa -422 -665}\special{pa -502 -607}\special{pa -574 -539}\special{pa -637 -463}%
-\special{pa -690 -379}\special{pa -732 -290}\special{pa -763 -196}\special{pa -781 -99}%
-\special{pa -787 0}\special{pa -781 99}\special{pa -763 196}\special{pa -732 290}%
-\special{pa -690 379}\special{pa -637 463}\special{pa -574 539}\special{pa -502 607}%
-\special{pa -422 665}\special{pa -335 712}\special{pa -243 749}\special{pa -148 773}%
-\special{pa -49 786}\special{pa 49 786}\special{pa 148 773}\special{pa 243 749}\special{pa 335 712}%
-\special{pa 422 665}\special{pa 502 607}\special{pa 574 539}\special{pa 637 463}\special{pa 690 379}%
-\special{pa 732 290}\special{pa 763 196}\special{pa 781 99}\special{pa 787 0}%
-\special{fp}%
-\special{pa 1575 0}\special{pa 448 648}%
-\special{fp}%
-\special{pn 1}%
-\special{pa 1022 313}\special{pa 1015 309}\special{pa 1007 309}\special{pa 1000 313}%
-\special{pa 996 320}\special{pa 996 328}\special{pa 1000 335}\special{pa 1007 339}%
-\special{pa 1015 339}\special{pa 1022 335}\special{pa 1026 328}\special{pa 1026 320}%
-\special{pa 1022 313}\special{sh 1}\special{fp}%
-\special{pn 8}%
-\settowidth{\Width}{A}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{A}\settodepth{\Depth}{A}\setlength{\Height}{-\Height}%
-\put(4.0000,-0.0500){\hspace*{\Width}\raisebox{\Height}{A}}%
-%
-%
-\settowidth{\Width}{P}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{P}\settodepth{\Depth}{P}\setlength{\Height}{\Depth}%
-\put(1.1870,-1.5954){\hspace*{\Width}\raisebox{\Height}{P}}%
-%
-%
-\settowidth{\Width}{Q}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{Q}\settodepth{\Depth}{Q}\setlength{\Height}{\Depth}%
-\put(2.6185,-0.7727){\hspace*{\Width}\raisebox{\Height}{Q}}%
-%
-%
-\special{pa -1465 0}\special{pa 3984 0}%
-\special{fp}%
-\special{pa 0 1291}\special{pa 0 -1386}%
-\special{fp}%
-\settowidth{\Width}{$x$}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{$x$}\settodepth{\Depth}{$x$}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(10.1700,0.0000){\hspace*{\Width}\raisebox{\Height}{$x$}}%
-%
-%
-\settowidth{\Width}{$y$}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{$y$}\settodepth{\Depth}{$y$}\setlength{\Height}{\Depth}%
-\put(0.0000,3.5700){\hspace*{\Width}\raisebox{\Height}{$y$}}%
-%
-%
-\settowidth{\Width}{O}\setlength{\Width}{-1\Width}%
-\settoheight{\Height}{O}\settodepth{\Depth}{O}\setlength{\Height}{-\Height}%
-\put(-0.0500,-0.0500){\hspace*{\Width}\raisebox{\Height}{O}}%
-%
-%
-\end{picture}}%%
-\newframe%
-{\unitlength=1cm%
-\begin{picture}%
-( 14.34000, 7.30000)( -3.72000, -3.28000)%
-\special{pn 8}%
-%
-\special{pa 787 0}\special{pa 781 -99}\special{pa 763 -196}\special{pa 732 -290}\special{pa 690 -379}%
-\special{pa 637 -463}\special{pa 574 -539}\special{pa 502 -607}\special{pa 422 -665}%
-\special{pa 335 -712}\special{pa 243 -749}\special{pa 148 -773}\special{pa 49 -786}%
-\special{pa -49 -786}\special{pa -148 -773}\special{pa -243 -749}\special{pa -335 -712}%
-\special{pa -422 -665}\special{pa -502 -607}\special{pa -574 -539}\special{pa -637 -463}%
-\special{pa -690 -379}\special{pa -732 -290}\special{pa -763 -196}\special{pa -781 -99}%
-\special{pa -787 0}\special{pa -781 99}\special{pa -763 196}\special{pa -732 290}%
-\special{pa -690 379}\special{pa -637 463}\special{pa -574 539}\special{pa -502 607}%
-\special{pa -422 665}\special{pa -335 712}\special{pa -243 749}\special{pa -148 773}%
-\special{pa -49 786}\special{pa 49 786}\special{pa 148 773}\special{pa 243 749}\special{pa 335 712}%
-\special{pa 422 665}\special{pa 502 607}\special{pa 574 539}\special{pa 637 463}\special{pa 690 379}%
-\special{pa 732 290}\special{pa 763 196}\special{pa 781 99}\special{pa 787 0}%
-\special{fp}%
-\special{pa 1575 0}\special{pa 474 628}%
-\special{fp}%
-\special{pn 1}%
-\special{pa 1036 303}\special{pa 1029 299}\special{pa 1021 299}\special{pa 1013 303}%
-\special{pa 1009 310}\special{pa 1009 318}\special{pa 1013 325}\special{pa 1021 329}%
-\special{pa 1029 329}\special{pa 1036 325}\special{pa 1040 318}\special{pa 1040 310}%
-\special{pa 1036 303}\special{sh 1}\special{fp}%
-\special{pn 8}%
-\settowidth{\Width}{A}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{A}\settodepth{\Depth}{A}\setlength{\Height}{-\Height}%
-\put(4.0000,-0.0500){\hspace*{\Width}\raisebox{\Height}{A}}%
-%
-%
-\settowidth{\Width}{P}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{P}\settodepth{\Depth}{P}\setlength{\Height}{\Depth}%
-\put(1.2549,-1.5463){\hspace*{\Width}\raisebox{\Height}{P}}%
-%
-%
-\settowidth{\Width}{Q}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{Q}\settodepth{\Depth}{Q}\setlength{\Height}{\Depth}%
-\put(2.6524,-0.7482){\hspace*{\Width}\raisebox{\Height}{Q}}%
-%
-%
-\special{pa -1465 0}\special{pa 3984 0}%
-\special{fp}%
-\special{pa 0 1291}\special{pa 0 -1386}%
-\special{fp}%
-\settowidth{\Width}{$x$}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{$x$}\settodepth{\Depth}{$x$}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(10.1700,0.0000){\hspace*{\Width}\raisebox{\Height}{$x$}}%
-%
-%
-\settowidth{\Width}{$y$}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{$y$}\settodepth{\Depth}{$y$}\setlength{\Height}{\Depth}%
-\put(0.0000,3.5700){\hspace*{\Width}\raisebox{\Height}{$y$}}%
-%
-%
-\settowidth{\Width}{O}\setlength{\Width}{-1\Width}%
-\settoheight{\Height}{O}\settodepth{\Depth}{O}\setlength{\Height}{-\Height}%
-\put(-0.0500,-0.0500){\hspace*{\Width}\raisebox{\Height}{O}}%
-%
-%
-\end{picture}}%%
-\newframe%
-{\unitlength=1cm%
-\begin{picture}%
-( 14.34000, 7.30000)( -3.72000, -3.28000)%
-\special{pn 8}%
-%
-\special{pa 787 0}\special{pa 781 -99}\special{pa 763 -196}\special{pa 732 -290}\special{pa 690 -379}%
-\special{pa 637 -463}\special{pa 574 -539}\special{pa 502 -607}\special{pa 422 -665}%
-\special{pa 335 -712}\special{pa 243 -749}\special{pa 148 -773}\special{pa 49 -786}%
-\special{pa -49 -786}\special{pa -148 -773}\special{pa -243 -749}\special{pa -335 -712}%
-\special{pa -422 -665}\special{pa -502 -607}\special{pa -574 -539}\special{pa -637 -463}%
-\special{pa -690 -379}\special{pa -732 -290}\special{pa -763 -196}\special{pa -781 -99}%
-\special{pa -787 0}\special{pa -781 99}\special{pa -763 196}\special{pa -732 290}%
-\special{pa -690 379}\special{pa -637 463}\special{pa -574 539}\special{pa -502 607}%
-\special{pa -422 665}\special{pa -335 712}\special{pa -243 749}\special{pa -148 773}%
-\special{pa -49 786}\special{pa 49 786}\special{pa 148 773}\special{pa 243 749}\special{pa 335 712}%
-\special{pa 422 665}\special{pa 502 607}\special{pa 574 539}\special{pa 637 463}\special{pa 690 379}%
-\special{pa 732 290}\special{pa 763 196}\special{pa 781 99}\special{pa 787 0}%
-\special{fp}%
-\special{pa 1575 0}\special{pa 500 608}%
-\special{fp}%
-\special{pn 1}%
-\special{pa 1049 293}\special{pa 1042 289}\special{pa 1033 289}\special{pa 1026 293}%
-\special{pa 1022 300}\special{pa 1022 308}\special{pa 1026 315}\special{pa 1033 319}%
-\special{pa 1042 319}\special{pa 1049 315}\special{pa 1053 308}\special{pa 1053 300}%
-\special{pa 1049 293}\special{sh 1}\special{fp}%
-\special{pn 8}%
-\settowidth{\Width}{A}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{A}\settodepth{\Depth}{A}\setlength{\Height}{-\Height}%
-\put(4.0000,-0.0500){\hspace*{\Width}\raisebox{\Height}{A}}%
-%
-%
-\settowidth{\Width}{P}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{P}\settodepth{\Depth}{P}\setlength{\Height}{\Depth}%
-\put(1.3206,-1.4945){\hspace*{\Width}\raisebox{\Height}{P}}%
-%
-%
-\settowidth{\Width}{Q}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{Q}\settodepth{\Depth}{Q}\setlength{\Height}{\Depth}%
-\put(2.6853,-0.7223){\hspace*{\Width}\raisebox{\Height}{Q}}%
-%
-%
-\special{pa -1465 0}\special{pa 3984 0}%
-\special{fp}%
-\special{pa 0 1291}\special{pa 0 -1386}%
-\special{fp}%
-\settowidth{\Width}{$x$}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{$x$}\settodepth{\Depth}{$x$}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(10.1700,0.0000){\hspace*{\Width}\raisebox{\Height}{$x$}}%
-%
-%
-\settowidth{\Width}{$y$}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{$y$}\settodepth{\Depth}{$y$}\setlength{\Height}{\Depth}%
-\put(0.0000,3.5700){\hspace*{\Width}\raisebox{\Height}{$y$}}%
-%
-%
-\settowidth{\Width}{O}\setlength{\Width}{-1\Width}%
-\settoheight{\Height}{O}\settodepth{\Depth}{O}\setlength{\Height}{-\Height}%
-\put(-0.0500,-0.0500){\hspace*{\Width}\raisebox{\Height}{O}}%
-%
-%
-\end{picture}}%%
-\newframe%
-{\unitlength=1cm%
-\begin{picture}%
-( 14.34000, 7.30000)( -3.72000, -3.28000)%
-\special{pn 8}%
-%
-\special{pa 787 0}\special{pa 781 -99}\special{pa 763 -196}\special{pa 732 -290}\special{pa 690 -379}%
-\special{pa 637 -463}\special{pa 574 -539}\special{pa 502 -607}\special{pa 422 -665}%
-\special{pa 335 -712}\special{pa 243 -749}\special{pa 148 -773}\special{pa 49 -786}%
-\special{pa -49 -786}\special{pa -148 -773}\special{pa -243 -749}\special{pa -335 -712}%
-\special{pa -422 -665}\special{pa -502 -607}\special{pa -574 -539}\special{pa -637 -463}%
-\special{pa -690 -379}\special{pa -732 -290}\special{pa -763 -196}\special{pa -781 -99}%
-\special{pa -787 0}\special{pa -781 99}\special{pa -763 196}\special{pa -732 290}%
-\special{pa -690 379}\special{pa -637 463}\special{pa -574 539}\special{pa -502 607}%
-\special{pa -422 665}\special{pa -335 712}\special{pa -243 749}\special{pa -148 773}%
-\special{pa -49 786}\special{pa 49 786}\special{pa 148 773}\special{pa 243 749}\special{pa 335 712}%
-\special{pa 422 665}\special{pa 502 607}\special{pa 574 539}\special{pa 637 463}\special{pa 690 379}%
-\special{pa 732 290}\special{pa 763 196}\special{pa 781 99}\special{pa 787 0}%
-\special{fp}%
-\special{pa 1575 0}\special{pa 525 587}%
-\special{fp}%
-\special{pn 1}%
-\special{pa 1061 282}\special{pa 1054 278}\special{pa 1046 278}\special{pa 1039 282}%
-\special{pa 1035 289}\special{pa 1035 297}\special{pa 1039 304}\special{pa 1046 309}%
-\special{pa 1054 309}\special{pa 1061 304}\special{pa 1065 297}\special{pa 1065 289}%
-\special{pa 1061 282}\special{sh 1}\special{fp}%
-\special{pn 8}%
-\settowidth{\Width}{A}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{A}\settodepth{\Depth}{A}\setlength{\Height}{-\Height}%
-\put(4.0000,-0.0500){\hspace*{\Width}\raisebox{\Height}{A}}%
-%
-%
-\settowidth{\Width}{P}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{P}\settodepth{\Depth}{P}\setlength{\Height}{\Depth}%
-\put(1.3841,-1.4400){\hspace*{\Width}\raisebox{\Height}{P}}%
-%
-%
-\settowidth{\Width}{Q}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{Q}\settodepth{\Depth}{Q}\setlength{\Height}{\Depth}%
-\put(2.7171,-0.6950){\hspace*{\Width}\raisebox{\Height}{Q}}%
-%
-%
-\special{pa -1465 0}\special{pa 3984 0}%
-\special{fp}%
-\special{pa 0 1291}\special{pa 0 -1386}%
-\special{fp}%
-\settowidth{\Width}{$x$}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{$x$}\settodepth{\Depth}{$x$}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(10.1700,0.0000){\hspace*{\Width}\raisebox{\Height}{$x$}}%
-%
-%
-\settowidth{\Width}{$y$}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{$y$}\settodepth{\Depth}{$y$}\setlength{\Height}{\Depth}%
-\put(0.0000,3.5700){\hspace*{\Width}\raisebox{\Height}{$y$}}%
-%
-%
-\settowidth{\Width}{O}\setlength{\Width}{-1\Width}%
-\settoheight{\Height}{O}\settodepth{\Depth}{O}\setlength{\Height}{-\Height}%
-\put(-0.0500,-0.0500){\hspace*{\Width}\raisebox{\Height}{O}}%
-%
-%
-\end{picture}}%%
-\newframe%
-{\unitlength=1cm%
-\begin{picture}%
-( 14.34000, 7.30000)( -3.72000, -3.28000)%
-\special{pn 8}%
-%
-\special{pa 787 0}\special{pa 781 -99}\special{pa 763 -196}\special{pa 732 -290}\special{pa 690 -379}%
-\special{pa 637 -463}\special{pa 574 -539}\special{pa 502 -607}\special{pa 422 -665}%
-\special{pa 335 -712}\special{pa 243 -749}\special{pa 148 -773}\special{pa 49 -786}%
-\special{pa -49 -786}\special{pa -148 -773}\special{pa -243 -749}\special{pa -335 -712}%
-\special{pa -422 -665}\special{pa -502 -607}\special{pa -574 -539}\special{pa -637 -463}%
-\special{pa -690 -379}\special{pa -732 -290}\special{pa -763 -196}\special{pa -781 -99}%
-\special{pa -787 0}\special{pa -781 99}\special{pa -763 196}\special{pa -732 290}%
-\special{pa -690 379}\special{pa -637 463}\special{pa -574 539}\special{pa -502 607}%
-\special{pa -422 665}\special{pa -335 712}\special{pa -243 749}\special{pa -148 773}%
-\special{pa -49 786}\special{pa 49 786}\special{pa 148 773}\special{pa 243 749}\special{pa 335 712}%
-\special{pa 422 665}\special{pa 502 607}\special{pa 574 539}\special{pa 637 463}\special{pa 690 379}%
-\special{pa 732 290}\special{pa 763 196}\special{pa 781 99}\special{pa 787 0}%
-\special{fp}%
-\special{pa 1575 0}\special{pa 549 564}%
-\special{fp}%
-\special{pn 1}%
-\special{pa 1073 271}\special{pa 1066 267}\special{pa 1058 267}\special{pa 1051 271}%
-\special{pa 1047 278}\special{pa 1047 286}\special{pa 1051 293}\special{pa 1058 297}%
-\special{pa 1066 297}\special{pa 1073 293}\special{pa 1077 286}\special{pa 1077 278}%
-\special{pa 1073 271}\special{sh 1}\special{fp}%
-\special{pn 8}%
-\settowidth{\Width}{A}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{A}\settodepth{\Depth}{A}\setlength{\Height}{-\Height}%
-\put(4.0000,-0.0500){\hspace*{\Width}\raisebox{\Height}{A}}%
-%
-%
-\settowidth{\Width}{P}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{P}\settodepth{\Depth}{P}\setlength{\Height}{\Depth}%
-\put(1.4454,-1.3828){\hspace*{\Width}\raisebox{\Height}{P}}%
-%
-%
-\settowidth{\Width}{Q}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{Q}\settodepth{\Depth}{Q}\setlength{\Height}{\Depth}%
-\put(2.7477,-0.6664){\hspace*{\Width}\raisebox{\Height}{Q}}%
-%
-%
-\special{pa -1465 0}\special{pa 3984 0}%
-\special{fp}%
-\special{pa 0 1291}\special{pa 0 -1386}%
-\special{fp}%
-\settowidth{\Width}{$x$}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{$x$}\settodepth{\Depth}{$x$}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(10.1700,0.0000){\hspace*{\Width}\raisebox{\Height}{$x$}}%
-%
-%
-\settowidth{\Width}{$y$}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{$y$}\settodepth{\Depth}{$y$}\setlength{\Height}{\Depth}%
-\put(0.0000,3.5700){\hspace*{\Width}\raisebox{\Height}{$y$}}%
-%
-%
-\settowidth{\Width}{O}\setlength{\Width}{-1\Width}%
-\settoheight{\Height}{O}\settodepth{\Depth}{O}\setlength{\Height}{-\Height}%
-\put(-0.0500,-0.0500){\hspace*{\Width}\raisebox{\Height}{O}}%
-%
-%
-\end{picture}}%%
-\newframe%
-{\unitlength=1cm%
-\begin{picture}%
-( 14.34000, 7.30000)( -3.72000, -3.28000)%
-\special{pn 8}%
-%
-\special{pa 787 0}\special{pa 781 -99}\special{pa 763 -196}\special{pa 732 -290}\special{pa 690 -379}%
-\special{pa 637 -463}\special{pa 574 -539}\special{pa 502 -607}\special{pa 422 -665}%
-\special{pa 335 -712}\special{pa 243 -749}\special{pa 148 -773}\special{pa 49 -786}%
-\special{pa -49 -786}\special{pa -148 -773}\special{pa -243 -749}\special{pa -335 -712}%
-\special{pa -422 -665}\special{pa -502 -607}\special{pa -574 -539}\special{pa -637 -463}%
-\special{pa -690 -379}\special{pa -732 -290}\special{pa -763 -196}\special{pa -781 -99}%
-\special{pa -787 0}\special{pa -781 99}\special{pa -763 196}\special{pa -732 290}%
-\special{pa -690 379}\special{pa -637 463}\special{pa -574 539}\special{pa -502 607}%
-\special{pa -422 665}\special{pa -335 712}\special{pa -243 749}\special{pa -148 773}%
-\special{pa -49 786}\special{pa 49 786}\special{pa 148 773}\special{pa 243 749}\special{pa 335 712}%
-\special{pa 422 665}\special{pa 502 607}\special{pa 574 539}\special{pa 637 463}\special{pa 690 379}%
-\special{pa 732 290}\special{pa 763 196}\special{pa 781 99}\special{pa 787 0}%
-\special{fp}%
-\special{pa 1575 0}\special{pa 572 541}%
-\special{fp}%
-\special{pn 1}%
-\special{pa 1085 259}\special{pa 1078 255}\special{pa 1070 255}\special{pa 1063 259}%
-\special{pa 1058 266}\special{pa 1058 274}\special{pa 1063 281}\special{pa 1070 286}%
-\special{pa 1078 286}\special{pa 1085 281}\special{pa 1089 274}\special{pa 1089 266}%
-\special{pa 1085 259}\special{sh 1}\special{fp}%
-\special{pn 8}%
-\settowidth{\Width}{A}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{A}\settodepth{\Depth}{A}\setlength{\Height}{-\Height}%
-\put(4.0000,-0.0500){\hspace*{\Width}\raisebox{\Height}{A}}%
-%
-%
-\settowidth{\Width}{P}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{P}\settodepth{\Depth}{P}\setlength{\Height}{\Depth}%
-\put(1.5041,-1.3232){\hspace*{\Width}\raisebox{\Height}{P}}%
-%
-%
-\settowidth{\Width}{Q}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{Q}\settodepth{\Depth}{Q}\setlength{\Height}{\Depth}%
-\put(2.7771,-0.6366){\hspace*{\Width}\raisebox{\Height}{Q}}%
-%
-%
-\special{pa -1465 0}\special{pa 3984 0}%
-\special{fp}%
-\special{pa 0 1291}\special{pa 0 -1386}%
-\special{fp}%
-\settowidth{\Width}{$x$}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{$x$}\settodepth{\Depth}{$x$}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(10.1700,0.0000){\hspace*{\Width}\raisebox{\Height}{$x$}}%
-%
-%
-\settowidth{\Width}{$y$}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{$y$}\settodepth{\Depth}{$y$}\setlength{\Height}{\Depth}%
-\put(0.0000,3.5700){\hspace*{\Width}\raisebox{\Height}{$y$}}%
-%
-%
-\settowidth{\Width}{O}\setlength{\Width}{-1\Width}%
-\settoheight{\Height}{O}\settodepth{\Depth}{O}\setlength{\Height}{-\Height}%
-\put(-0.0500,-0.0500){\hspace*{\Width}\raisebox{\Height}{O}}%
-%
-%
-\end{picture}}%%
-\newframe%
-{\unitlength=1cm%
-\begin{picture}%
-( 14.34000, 7.30000)( -3.72000, -3.28000)%
-\special{pn 8}%
-%
-\special{pa 787 0}\special{pa 781 -99}\special{pa 763 -196}\special{pa 732 -290}\special{pa 690 -379}%
-\special{pa 637 -463}\special{pa 574 -539}\special{pa 502 -607}\special{pa 422 -665}%
-\special{pa 335 -712}\special{pa 243 -749}\special{pa 148 -773}\special{pa 49 -786}%
-\special{pa -49 -786}\special{pa -148 -773}\special{pa -243 -749}\special{pa -335 -712}%
-\special{pa -422 -665}\special{pa -502 -607}\special{pa -574 -539}\special{pa -637 -463}%
-\special{pa -690 -379}\special{pa -732 -290}\special{pa -763 -196}\special{pa -781 -99}%
-\special{pa -787 0}\special{pa -781 99}\special{pa -763 196}\special{pa -732 290}%
-\special{pa -690 379}\special{pa -637 463}\special{pa -574 539}\special{pa -502 607}%
-\special{pa -422 665}\special{pa -335 712}\special{pa -243 749}\special{pa -148 773}%
-\special{pa -49 786}\special{pa 49 786}\special{pa 148 773}\special{pa 243 749}\special{pa 335 712}%
-\special{pa 422 665}\special{pa 502 607}\special{pa 574 539}\special{pa 637 463}\special{pa 690 379}%
-\special{pa 732 290}\special{pa 763 196}\special{pa 781 99}\special{pa 787 0}%
-\special{fp}%
-\special{pa 1575 0}\special{pa 595 516}%
-\special{fp}%
-\special{pn 1}%
-\special{pa 1096 247}\special{pa 1089 243}\special{pa 1081 243}\special{pa 1074 247}%
-\special{pa 1069 254}\special{pa 1069 262}\special{pa 1074 269}\special{pa 1081 273}%
-\special{pa 1089 273}\special{pa 1096 269}\special{pa 1100 262}\special{pa 1100 254}%
-\special{pa 1096 247}\special{sh 1}\special{fp}%
-\special{pn 8}%
-\settowidth{\Width}{A}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{A}\settodepth{\Depth}{A}\setlength{\Height}{-\Height}%
-\put(4.0000,-0.0500){\hspace*{\Width}\raisebox{\Height}{A}}%
-%
-%
-\settowidth{\Width}{P}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{P}\settodepth{\Depth}{P}\setlength{\Height}{\Depth}%
-\put(1.5603,-1.2611){\hspace*{\Width}\raisebox{\Height}{P}}%
-%
-%
-\settowidth{\Width}{Q}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{Q}\settodepth{\Depth}{Q}\setlength{\Height}{\Depth}%
-\put(2.8051,-0.6056){\hspace*{\Width}\raisebox{\Height}{Q}}%
-%
-%
-\special{pa -1465 0}\special{pa 3984 0}%
-\special{fp}%
-\special{pa 0 1291}\special{pa 0 -1386}%
-\special{fp}%
-\settowidth{\Width}{$x$}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{$x$}\settodepth{\Depth}{$x$}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(10.1700,0.0000){\hspace*{\Width}\raisebox{\Height}{$x$}}%
-%
-%
-\settowidth{\Width}{$y$}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{$y$}\settodepth{\Depth}{$y$}\setlength{\Height}{\Depth}%
-\put(0.0000,3.5700){\hspace*{\Width}\raisebox{\Height}{$y$}}%
-%
-%
-\settowidth{\Width}{O}\setlength{\Width}{-1\Width}%
-\settoheight{\Height}{O}\settodepth{\Depth}{O}\setlength{\Height}{-\Height}%
-\put(-0.0500,-0.0500){\hspace*{\Width}\raisebox{\Height}{O}}%
-%
-%
-\end{picture}}%%
-\newframe%
-{\unitlength=1cm%
-\begin{picture}%
-( 14.34000, 7.30000)( -3.72000, -3.28000)%
-\special{pn 8}%
-%
-\special{pa 787 0}\special{pa 781 -99}\special{pa 763 -196}\special{pa 732 -290}\special{pa 690 -379}%
-\special{pa 637 -463}\special{pa 574 -539}\special{pa 502 -607}\special{pa 422 -665}%
-\special{pa 335 -712}\special{pa 243 -749}\special{pa 148 -773}\special{pa 49 -786}%
-\special{pa -49 -786}\special{pa -148 -773}\special{pa -243 -749}\special{pa -335 -712}%
-\special{pa -422 -665}\special{pa -502 -607}\special{pa -574 -539}\special{pa -637 -463}%
-\special{pa -690 -379}\special{pa -732 -290}\special{pa -763 -196}\special{pa -781 -99}%
-\special{pa -787 0}\special{pa -781 99}\special{pa -763 196}\special{pa -732 290}%
-\special{pa -690 379}\special{pa -637 463}\special{pa -574 539}\special{pa -502 607}%
-\special{pa -422 665}\special{pa -335 712}\special{pa -243 749}\special{pa -148 773}%
-\special{pa -49 786}\special{pa 49 786}\special{pa 148 773}\special{pa 243 749}\special{pa 335 712}%
-\special{pa 422 665}\special{pa 502 607}\special{pa 574 539}\special{pa 637 463}\special{pa 690 379}%
-\special{pa 732 290}\special{pa 763 196}\special{pa 781 99}\special{pa 787 0}%
-\special{fp}%
-\special{pa 1575 0}\special{pa 616 491}%
-\special{fp}%
-\special{pn 1}%
-\special{pa 1106 234}\special{pa 1099 230}\special{pa 1091 230}\special{pa 1084 234}%
-\special{pa 1080 241}\special{pa 1080 250}\special{pa 1084 257}\special{pa 1091 261}%
-\special{pa 1099 261}\special{pa 1106 257}\special{pa 1110 250}\special{pa 1110 241}%
-\special{pa 1106 234}\special{sh 1}\special{fp}%
-\special{pn 8}%
-\settowidth{\Width}{A}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{A}\settodepth{\Depth}{A}\setlength{\Height}{-\Height}%
-\put(4.0000,-0.0500){\hspace*{\Width}\raisebox{\Height}{A}}%
-%
-%
-\settowidth{\Width}{P}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{P}\settodepth{\Depth}{P}\setlength{\Height}{\Depth}%
-\put(1.6139,-1.1967){\hspace*{\Width}\raisebox{\Height}{P}}%
-%
-%
-\settowidth{\Width}{Q}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{Q}\settodepth{\Depth}{Q}\setlength{\Height}{\Depth}%
-\put(2.8319,-0.5734){\hspace*{\Width}\raisebox{\Height}{Q}}%
-%
-%
-\special{pa -1465 0}\special{pa 3984 0}%
-\special{fp}%
-\special{pa 0 1291}\special{pa 0 -1386}%
-\special{fp}%
-\settowidth{\Width}{$x$}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{$x$}\settodepth{\Depth}{$x$}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(10.1700,0.0000){\hspace*{\Width}\raisebox{\Height}{$x$}}%
-%
-%
-\settowidth{\Width}{$y$}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{$y$}\settodepth{\Depth}{$y$}\setlength{\Height}{\Depth}%
-\put(0.0000,3.5700){\hspace*{\Width}\raisebox{\Height}{$y$}}%
-%
-%
-\settowidth{\Width}{O}\setlength{\Width}{-1\Width}%
-\settoheight{\Height}{O}\settodepth{\Depth}{O}\setlength{\Height}{-\Height}%
-\put(-0.0500,-0.0500){\hspace*{\Width}\raisebox{\Height}{O}}%
-%
-%
-\end{picture}}%%
-\newframe%
-{\unitlength=1cm%
-\begin{picture}%
-( 14.34000, 7.30000)( -3.72000, -3.28000)%
-\special{pn 8}%
-%
-\special{pa 787 0}\special{pa 781 -99}\special{pa 763 -196}\special{pa 732 -290}\special{pa 690 -379}%
-\special{pa 637 -463}\special{pa 574 -539}\special{pa 502 -607}\special{pa 422 -665}%
-\special{pa 335 -712}\special{pa 243 -749}\special{pa 148 -773}\special{pa 49 -786}%
-\special{pa -49 -786}\special{pa -148 -773}\special{pa -243 -749}\special{pa -335 -712}%
-\special{pa -422 -665}\special{pa -502 -607}\special{pa -574 -539}\special{pa -637 -463}%
-\special{pa -690 -379}\special{pa -732 -290}\special{pa -763 -196}\special{pa -781 -99}%
-\special{pa -787 0}\special{pa -781 99}\special{pa -763 196}\special{pa -732 290}%
-\special{pa -690 379}\special{pa -637 463}\special{pa -574 539}\special{pa -502 607}%
-\special{pa -422 665}\special{pa -335 712}\special{pa -243 749}\special{pa -148 773}%
-\special{pa -49 786}\special{pa 49 786}\special{pa 148 773}\special{pa 243 749}\special{pa 335 712}%
-\special{pa 422 665}\special{pa 502 607}\special{pa 574 539}\special{pa 637 463}\special{pa 690 379}%
-\special{pa 732 290}\special{pa 763 196}\special{pa 781 99}\special{pa 787 0}%
-\special{fp}%
-\special{pa 1575 0}\special{pa 636 465}%
-\special{fp}%
-\special{pn 1}%
-\special{pa 1116 221}\special{pa 1109 217}\special{pa 1101 217}\special{pa 1094 221}%
-\special{pa 1090 228}\special{pa 1090 236}\special{pa 1094 243}\special{pa 1101 248}%
-\special{pa 1109 248}\special{pa 1116 243}\special{pa 1120 236}\special{pa 1120 228}%
-\special{pa 1116 221}\special{sh 1}\special{fp}%
-\special{pn 8}%
-\settowidth{\Width}{A}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{A}\settodepth{\Depth}{A}\setlength{\Height}{-\Height}%
-\put(4.0000,-0.0500){\hspace*{\Width}\raisebox{\Height}{A}}%
-%
-%
-\settowidth{\Width}{P}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{P}\settodepth{\Depth}{P}\setlength{\Height}{\Depth}%
-\put(1.6647,-1.1302){\hspace*{\Width}\raisebox{\Height}{P}}%
-%
-%
-\settowidth{\Width}{Q}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{Q}\settodepth{\Depth}{Q}\setlength{\Height}{\Depth}%
-\put(2.8573,-0.5401){\hspace*{\Width}\raisebox{\Height}{Q}}%
-%
-%
-\special{pa -1465 0}\special{pa 3984 0}%
-\special{fp}%
-\special{pa 0 1291}\special{pa 0 -1386}%
-\special{fp}%
-\settowidth{\Width}{$x$}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{$x$}\settodepth{\Depth}{$x$}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(10.1700,0.0000){\hspace*{\Width}\raisebox{\Height}{$x$}}%
-%
-%
-\settowidth{\Width}{$y$}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{$y$}\settodepth{\Depth}{$y$}\setlength{\Height}{\Depth}%
-\put(0.0000,3.5700){\hspace*{\Width}\raisebox{\Height}{$y$}}%
-%
-%
-\settowidth{\Width}{O}\setlength{\Width}{-1\Width}%
-\settoheight{\Height}{O}\settodepth{\Depth}{O}\setlength{\Height}{-\Height}%
-\put(-0.0500,-0.0500){\hspace*{\Width}\raisebox{\Height}{O}}%
-%
-%
-\end{picture}}%%
-\newframe%
-{\unitlength=1cm%
-\begin{picture}%
-( 14.34000, 7.30000)( -3.72000, -3.28000)%
-\special{pn 8}%
-%
-\special{pa 787 0}\special{pa 781 -99}\special{pa 763 -196}\special{pa 732 -290}\special{pa 690 -379}%
-\special{pa 637 -463}\special{pa 574 -539}\special{pa 502 -607}\special{pa 422 -665}%
-\special{pa 335 -712}\special{pa 243 -749}\special{pa 148 -773}\special{pa 49 -786}%
-\special{pa -49 -786}\special{pa -148 -773}\special{pa -243 -749}\special{pa -335 -712}%
-\special{pa -422 -665}\special{pa -502 -607}\special{pa -574 -539}\special{pa -637 -463}%
-\special{pa -690 -379}\special{pa -732 -290}\special{pa -763 -196}\special{pa -781 -99}%
-\special{pa -787 0}\special{pa -781 99}\special{pa -763 196}\special{pa -732 290}%
-\special{pa -690 379}\special{pa -637 463}\special{pa -574 539}\special{pa -502 607}%
-\special{pa -422 665}\special{pa -335 712}\special{pa -243 749}\special{pa -148 773}%
-\special{pa -49 786}\special{pa 49 786}\special{pa 148 773}\special{pa 243 749}\special{pa 335 712}%
-\special{pa 422 665}\special{pa 502 607}\special{pa 574 539}\special{pa 637 463}\special{pa 690 379}%
-\special{pa 732 290}\special{pa 763 196}\special{pa 781 99}\special{pa 787 0}%
-\special{fp}%
-\special{pa 1575 0}\special{pa 655 438}%
-\special{fp}%
-\special{pn 1}%
-\special{pa 1126 208}\special{pa 1119 204}\special{pa 1111 204}\special{pa 1104 208}%
-\special{pa 1099 215}\special{pa 1099 223}\special{pa 1104 230}\special{pa 1111 234}%
-\special{pa 1119 234}\special{pa 1126 230}\special{pa 1130 223}\special{pa 1130 215}%
-\special{pa 1126 208}\special{sh 1}\special{fp}%
-\special{pn 8}%
-\settowidth{\Width}{A}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{A}\settodepth{\Depth}{A}\setlength{\Height}{-\Height}%
-\put(4.0000,-0.0500){\hspace*{\Width}\raisebox{\Height}{A}}%
-%
-%
-\settowidth{\Width}{P}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{P}\settodepth{\Depth}{P}\setlength{\Height}{\Depth}%
-\put(1.7126,-1.0616){\hspace*{\Width}\raisebox{\Height}{P}}%
-%
-%
-\settowidth{\Width}{Q}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{Q}\settodepth{\Depth}{Q}\setlength{\Height}{\Depth}%
-\put(2.8813,-0.5058){\hspace*{\Width}\raisebox{\Height}{Q}}%
-%
-%
-\special{pa -1465 0}\special{pa 3984 0}%
-\special{fp}%
-\special{pa 0 1291}\special{pa 0 -1386}%
-\special{fp}%
-\settowidth{\Width}{$x$}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{$x$}\settodepth{\Depth}{$x$}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(10.1700,0.0000){\hspace*{\Width}\raisebox{\Height}{$x$}}%
-%
-%
-\settowidth{\Width}{$y$}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{$y$}\settodepth{\Depth}{$y$}\setlength{\Height}{\Depth}%
-\put(0.0000,3.5700){\hspace*{\Width}\raisebox{\Height}{$y$}}%
-%
-%
-\settowidth{\Width}{O}\setlength{\Width}{-1\Width}%
-\settoheight{\Height}{O}\settodepth{\Depth}{O}\setlength{\Height}{-\Height}%
-\put(-0.0500,-0.0500){\hspace*{\Width}\raisebox{\Height}{O}}%
-%
-%
-\end{picture}}%%
-\newframe%
-{\unitlength=1cm%
-\begin{picture}%
-( 14.34000, 7.30000)( -3.72000, -3.28000)%
-\special{pn 8}%
-%
-\special{pa 787 0}\special{pa 781 -99}\special{pa 763 -196}\special{pa 732 -290}\special{pa 690 -379}%
-\special{pa 637 -463}\special{pa 574 -539}\special{pa 502 -607}\special{pa 422 -665}%
-\special{pa 335 -712}\special{pa 243 -749}\special{pa 148 -773}\special{pa 49 -786}%
-\special{pa -49 -786}\special{pa -148 -773}\special{pa -243 -749}\special{pa -335 -712}%
-\special{pa -422 -665}\special{pa -502 -607}\special{pa -574 -539}\special{pa -637 -463}%
-\special{pa -690 -379}\special{pa -732 -290}\special{pa -763 -196}\special{pa -781 -99}%
-\special{pa -787 0}\special{pa -781 99}\special{pa -763 196}\special{pa -732 290}%
-\special{pa -690 379}\special{pa -637 463}\special{pa -574 539}\special{pa -502 607}%
-\special{pa -422 665}\special{pa -335 712}\special{pa -243 749}\special{pa -148 773}%
-\special{pa -49 786}\special{pa 49 786}\special{pa 148 773}\special{pa 243 749}\special{pa 335 712}%
-\special{pa 422 665}\special{pa 502 607}\special{pa 574 539}\special{pa 637 463}\special{pa 690 379}%
-\special{pa 732 290}\special{pa 763 196}\special{pa 781 99}\special{pa 787 0}%
-\special{fp}%
-\special{pa 1575 0}\special{pa 672 410}%
-\special{fp}%
-\special{pn 1}%
-\special{pa 1135 194}\special{pa 1128 190}\special{pa 1119 190}\special{pa 1112 194}%
-\special{pa 1108 201}\special{pa 1108 209}\special{pa 1112 216}\special{pa 1119 220}%
-\special{pa 1128 220}\special{pa 1135 216}\special{pa 1139 209}\special{pa 1139 201}%
-\special{pa 1135 194}\special{sh 1}\special{fp}%
-\special{pn 8}%
-\settowidth{\Width}{A}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{A}\settodepth{\Depth}{A}\setlength{\Height}{-\Height}%
-\put(4.0000,-0.0500){\hspace*{\Width}\raisebox{\Height}{A}}%
-%
-%
-\settowidth{\Width}{P}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{P}\settodepth{\Depth}{P}\setlength{\Height}{\Depth}%
-\put(1.7577,-0.9910){\hspace*{\Width}\raisebox{\Height}{P}}%
-%
-%
-\settowidth{\Width}{Q}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{Q}\settodepth{\Depth}{Q}\setlength{\Height}{\Depth}%
-\put(2.9038,-0.4705){\hspace*{\Width}\raisebox{\Height}{Q}}%
-%
-%
-\special{pa -1465 0}\special{pa 3984 0}%
-\special{fp}%
-\special{pa 0 1291}\special{pa 0 -1386}%
-\special{fp}%
-\settowidth{\Width}{$x$}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{$x$}\settodepth{\Depth}{$x$}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(10.1700,0.0000){\hspace*{\Width}\raisebox{\Height}{$x$}}%
-%
-%
-\settowidth{\Width}{$y$}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{$y$}\settodepth{\Depth}{$y$}\setlength{\Height}{\Depth}%
-\put(0.0000,3.5700){\hspace*{\Width}\raisebox{\Height}{$y$}}%
-%
-%
-\settowidth{\Width}{O}\setlength{\Width}{-1\Width}%
-\settoheight{\Height}{O}\settodepth{\Depth}{O}\setlength{\Height}{-\Height}%
-\put(-0.0500,-0.0500){\hspace*{\Width}\raisebox{\Height}{O}}%
-%
-%
-\end{picture}}%%
-\newframe%
-{\unitlength=1cm%
-\begin{picture}%
-( 14.34000, 7.30000)( -3.72000, -3.28000)%
-\special{pn 8}%
-%
-\special{pa 787 0}\special{pa 781 -99}\special{pa 763 -196}\special{pa 732 -290}\special{pa 690 -379}%
-\special{pa 637 -463}\special{pa 574 -539}\special{pa 502 -607}\special{pa 422 -665}%
-\special{pa 335 -712}\special{pa 243 -749}\special{pa 148 -773}\special{pa 49 -786}%
-\special{pa -49 -786}\special{pa -148 -773}\special{pa -243 -749}\special{pa -335 -712}%
-\special{pa -422 -665}\special{pa -502 -607}\special{pa -574 -539}\special{pa -637 -463}%
-\special{pa -690 -379}\special{pa -732 -290}\special{pa -763 -196}\special{pa -781 -99}%
-\special{pa -787 0}\special{pa -781 99}\special{pa -763 196}\special{pa -732 290}%
-\special{pa -690 379}\special{pa -637 463}\special{pa -574 539}\special{pa -502 607}%
-\special{pa -422 665}\special{pa -335 712}\special{pa -243 749}\special{pa -148 773}%
-\special{pa -49 786}\special{pa 49 786}\special{pa 148 773}\special{pa 243 749}\special{pa 335 712}%
-\special{pa 422 665}\special{pa 502 607}\special{pa 574 539}\special{pa 637 463}\special{pa 690 379}%
-\special{pa 732 290}\special{pa 763 196}\special{pa 781 99}\special{pa 787 0}%
-\special{fp}%
-\special{pa 1575 0}\special{pa 689 381}%
-\special{fp}%
-\special{pn 1}%
-\special{pa 1143 180}\special{pa 1136 175}\special{pa 1128 175}\special{pa 1121 180}%
-\special{pa 1117 187}\special{pa 1117 195}\special{pa 1121 202}\special{pa 1128 206}%
-\special{pa 1136 206}\special{pa 1143 202}\special{pa 1147 195}\special{pa 1147 187}%
-\special{pa 1143 180}\special{sh 1}\special{fp}%
-\special{pn 8}%
-\settowidth{\Width}{A}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{A}\settodepth{\Depth}{A}\setlength{\Height}{-\Height}%
-\put(4.0000,-0.0500){\hspace*{\Width}\raisebox{\Height}{A}}%
-%
-%
-\settowidth{\Width}{P}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{P}\settodepth{\Depth}{P}\setlength{\Height}{\Depth}%
-\put(1.7998,-0.9186){\hspace*{\Width}\raisebox{\Height}{P}}%
-%
-%
-\settowidth{\Width}{Q}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{Q}\settodepth{\Depth}{Q}\setlength{\Height}{\Depth}%
-\put(2.9249,-0.4343){\hspace*{\Width}\raisebox{\Height}{Q}}%
-%
-%
-\special{pa -1465 0}\special{pa 3984 0}%
-\special{fp}%
-\special{pa 0 1291}\special{pa 0 -1386}%
-\special{fp}%
-\settowidth{\Width}{$x$}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{$x$}\settodepth{\Depth}{$x$}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(10.1700,0.0000){\hspace*{\Width}\raisebox{\Height}{$x$}}%
-%
-%
-\settowidth{\Width}{$y$}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{$y$}\settodepth{\Depth}{$y$}\setlength{\Height}{\Depth}%
-\put(0.0000,3.5700){\hspace*{\Width}\raisebox{\Height}{$y$}}%
-%
-%
-\settowidth{\Width}{O}\setlength{\Width}{-1\Width}%
-\settoheight{\Height}{O}\settodepth{\Depth}{O}\setlength{\Height}{-\Height}%
-\put(-0.0500,-0.0500){\hspace*{\Width}\raisebox{\Height}{O}}%
-%
-%
-\end{picture}}%%
-\newframe%
-{\unitlength=1cm%
-\begin{picture}%
-( 14.34000, 7.30000)( -3.72000, -3.28000)%
-\special{pn 8}%
-%
-\special{pa 787 0}\special{pa 781 -99}\special{pa 763 -196}\special{pa 732 -290}\special{pa 690 -379}%
-\special{pa 637 -463}\special{pa 574 -539}\special{pa 502 -607}\special{pa 422 -665}%
-\special{pa 335 -712}\special{pa 243 -749}\special{pa 148 -773}\special{pa 49 -786}%
-\special{pa -49 -786}\special{pa -148 -773}\special{pa -243 -749}\special{pa -335 -712}%
-\special{pa -422 -665}\special{pa -502 -607}\special{pa -574 -539}\special{pa -637 -463}%
-\special{pa -690 -379}\special{pa -732 -290}\special{pa -763 -196}\special{pa -781 -99}%
-\special{pa -787 0}\special{pa -781 99}\special{pa -763 196}\special{pa -732 290}%
-\special{pa -690 379}\special{pa -637 463}\special{pa -574 539}\special{pa -502 607}%
-\special{pa -422 665}\special{pa -335 712}\special{pa -243 749}\special{pa -148 773}%
-\special{pa -49 786}\special{pa 49 786}\special{pa 148 773}\special{pa 243 749}\special{pa 335 712}%
-\special{pa 422 665}\special{pa 502 607}\special{pa 574 539}\special{pa 637 463}\special{pa 690 379}%
-\special{pa 732 290}\special{pa 763 196}\special{pa 781 99}\special{pa 787 0}%
-\special{fp}%
-\special{pa 1575 0}\special{pa 704 352}%
-\special{fp}%
-\special{pn 1}%
-\special{pa 1151 165}\special{pa 1144 161}\special{pa 1135 161}\special{pa 1128 165}%
-\special{pa 1124 172}\special{pa 1124 180}\special{pa 1128 187}\special{pa 1135 191}%
-\special{pa 1144 191}\special{pa 1151 187}\special{pa 1155 180}\special{pa 1155 172}%
-\special{pa 1151 165}\special{sh 1}\special{fp}%
-\special{pn 8}%
-\settowidth{\Width}{A}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{A}\settodepth{\Depth}{A}\setlength{\Height}{-\Height}%
-\put(4.0000,-0.0500){\hspace*{\Width}\raisebox{\Height}{A}}%
-%
-%
-\settowidth{\Width}{P}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{P}\settodepth{\Depth}{P}\setlength{\Height}{\Depth}%
-\put(1.8388,-0.8445){\hspace*{\Width}\raisebox{\Height}{P}}%
-%
-%
-\settowidth{\Width}{Q}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{Q}\settodepth{\Depth}{Q}\setlength{\Height}{\Depth}%
-\put(2.9444,-0.3973){\hspace*{\Width}\raisebox{\Height}{Q}}%
-%
-%
-\special{pa -1465 0}\special{pa 3984 0}%
-\special{fp}%
-\special{pa 0 1291}\special{pa 0 -1386}%
-\special{fp}%
-\settowidth{\Width}{$x$}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{$x$}\settodepth{\Depth}{$x$}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(10.1700,0.0000){\hspace*{\Width}\raisebox{\Height}{$x$}}%
-%
-%
-\settowidth{\Width}{$y$}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{$y$}\settodepth{\Depth}{$y$}\setlength{\Height}{\Depth}%
-\put(0.0000,3.5700){\hspace*{\Width}\raisebox{\Height}{$y$}}%
-%
-%
-\settowidth{\Width}{O}\setlength{\Width}{-1\Width}%
-\settoheight{\Height}{O}\settodepth{\Depth}{O}\setlength{\Height}{-\Height}%
-\put(-0.0500,-0.0500){\hspace*{\Width}\raisebox{\Height}{O}}%
-%
-%
-\end{picture}}%%
-\newframe%
-{\unitlength=1cm%
-\begin{picture}%
-( 14.34000, 7.30000)( -3.72000, -3.28000)%
-\special{pn 8}%
-%
-\special{pa 787 0}\special{pa 781 -99}\special{pa 763 -196}\special{pa 732 -290}\special{pa 690 -379}%
-\special{pa 637 -463}\special{pa 574 -539}\special{pa 502 -607}\special{pa 422 -665}%
-\special{pa 335 -712}\special{pa 243 -749}\special{pa 148 -773}\special{pa 49 -786}%
-\special{pa -49 -786}\special{pa -148 -773}\special{pa -243 -749}\special{pa -335 -712}%
-\special{pa -422 -665}\special{pa -502 -607}\special{pa -574 -539}\special{pa -637 -463}%
-\special{pa -690 -379}\special{pa -732 -290}\special{pa -763 -196}\special{pa -781 -99}%
-\special{pa -787 0}\special{pa -781 99}\special{pa -763 196}\special{pa -732 290}%
-\special{pa -690 379}\special{pa -637 463}\special{pa -574 539}\special{pa -502 607}%
-\special{pa -422 665}\special{pa -335 712}\special{pa -243 749}\special{pa -148 773}%
-\special{pa -49 786}\special{pa 49 786}\special{pa 148 773}\special{pa 243 749}\special{pa 335 712}%
-\special{pa 422 665}\special{pa 502 607}\special{pa 574 539}\special{pa 637 463}\special{pa 690 379}%
-\special{pa 732 290}\special{pa 763 196}\special{pa 781 99}\special{pa 787 0}%
-\special{fp}%
-\special{pa 1575 0}\special{pa 718 322}%
-\special{fp}%
-\special{pn 1}%
-\special{pa 1158 150}\special{pa 1151 146}\special{pa 1143 146}\special{pa 1135 150}%
-\special{pa 1131 157}\special{pa 1131 165}\special{pa 1135 172}\special{pa 1143 176}%
-\special{pa 1151 176}\special{pa 1158 172}\special{pa 1162 165}\special{pa 1162 157}%
-\special{pa 1158 150}\special{sh 1}\special{fp}%
-\special{pn 8}%
-\settowidth{\Width}{A}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{A}\settodepth{\Depth}{A}\setlength{\Height}{-\Height}%
-\put(4.0000,-0.0500){\hspace*{\Width}\raisebox{\Height}{A}}%
-%
-%
-\settowidth{\Width}{P}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{P}\settodepth{\Depth}{P}\setlength{\Height}{\Depth}%
-\put(1.8747,-0.7689){\hspace*{\Width}\raisebox{\Height}{P}}%
-%
-%
-\settowidth{\Width}{Q}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{Q}\settodepth{\Depth}{Q}\setlength{\Height}{\Depth}%
-\put(2.9623,-0.3594){\hspace*{\Width}\raisebox{\Height}{Q}}%
-%
-%
-\special{pa -1465 0}\special{pa 3984 0}%
-\special{fp}%
-\special{pa 0 1291}\special{pa 0 -1386}%
-\special{fp}%
-\settowidth{\Width}{$x$}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{$x$}\settodepth{\Depth}{$x$}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(10.1700,0.0000){\hspace*{\Width}\raisebox{\Height}{$x$}}%
-%
-%
-\settowidth{\Width}{$y$}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{$y$}\settodepth{\Depth}{$y$}\setlength{\Height}{\Depth}%
-\put(0.0000,3.5700){\hspace*{\Width}\raisebox{\Height}{$y$}}%
-%
-%
-\settowidth{\Width}{O}\setlength{\Width}{-1\Width}%
-\settoheight{\Height}{O}\settodepth{\Depth}{O}\setlength{\Height}{-\Height}%
-\put(-0.0500,-0.0500){\hspace*{\Width}\raisebox{\Height}{O}}%
-%
-%
-\end{picture}}%%
-\newframe%
-{\unitlength=1cm%
-\begin{picture}%
-( 14.34000, 7.30000)( -3.72000, -3.28000)%
-\special{pn 8}%
-%
-\special{pa 787 0}\special{pa 781 -99}\special{pa 763 -196}\special{pa 732 -290}\special{pa 690 -379}%
-\special{pa 637 -463}\special{pa 574 -539}\special{pa 502 -607}\special{pa 422 -665}%
-\special{pa 335 -712}\special{pa 243 -749}\special{pa 148 -773}\special{pa 49 -786}%
-\special{pa -49 -786}\special{pa -148 -773}\special{pa -243 -749}\special{pa -335 -712}%
-\special{pa -422 -665}\special{pa -502 -607}\special{pa -574 -539}\special{pa -637 -463}%
-\special{pa -690 -379}\special{pa -732 -290}\special{pa -763 -196}\special{pa -781 -99}%
-\special{pa -787 0}\special{pa -781 99}\special{pa -763 196}\special{pa -732 290}%
-\special{pa -690 379}\special{pa -637 463}\special{pa -574 539}\special{pa -502 607}%
-\special{pa -422 665}\special{pa -335 712}\special{pa -243 749}\special{pa -148 773}%
-\special{pa -49 786}\special{pa 49 786}\special{pa 148 773}\special{pa 243 749}\special{pa 335 712}%
-\special{pa 422 665}\special{pa 502 607}\special{pa 574 539}\special{pa 637 463}\special{pa 690 379}%
-\special{pa 732 290}\special{pa 763 196}\special{pa 781 99}\special{pa 787 0}%
-\special{fp}%
-\special{pa 1575 0}\special{pa 731 292}%
-\special{fp}%
-\special{pn 1}%
-\special{pa 1164 135}\special{pa 1157 131}\special{pa 1149 131}\special{pa 1142 135}%
-\special{pa 1138 142}\special{pa 1138 150}\special{pa 1142 157}\special{pa 1149 161}%
-\special{pa 1157 161}\special{pa 1164 157}\special{pa 1168 150}\special{pa 1168 142}%
-\special{pa 1164 135}\special{sh 1}\special{fp}%
-\special{pn 8}%
-\settowidth{\Width}{A}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{A}\settodepth{\Depth}{A}\setlength{\Height}{-\Height}%
-\put(4.0000,-0.0500){\hspace*{\Width}\raisebox{\Height}{A}}%
-%
-%
-\settowidth{\Width}{P}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{P}\settodepth{\Depth}{P}\setlength{\Height}{\Depth}%
-\put(1.9073,-0.6918){\hspace*{\Width}\raisebox{\Height}{P}}%
-%
-%
-\settowidth{\Width}{Q}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{Q}\settodepth{\Depth}{Q}\setlength{\Height}{\Depth}%
-\put(2.9787,-0.3209){\hspace*{\Width}\raisebox{\Height}{Q}}%
-%
-%
-\special{pa -1465 0}\special{pa 3984 0}%
-\special{fp}%
-\special{pa 0 1291}\special{pa 0 -1386}%
-\special{fp}%
-\settowidth{\Width}{$x$}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{$x$}\settodepth{\Depth}{$x$}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(10.1700,0.0000){\hspace*{\Width}\raisebox{\Height}{$x$}}%
-%
-%
-\settowidth{\Width}{$y$}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{$y$}\settodepth{\Depth}{$y$}\setlength{\Height}{\Depth}%
-\put(0.0000,3.5700){\hspace*{\Width}\raisebox{\Height}{$y$}}%
-%
-%
-\settowidth{\Width}{O}\setlength{\Width}{-1\Width}%
-\settoheight{\Height}{O}\settodepth{\Depth}{O}\setlength{\Height}{-\Height}%
-\put(-0.0500,-0.0500){\hspace*{\Width}\raisebox{\Height}{O}}%
-%
-%
-\end{picture}}%%
-\newframe%
-{\unitlength=1cm%
-\begin{picture}%
-( 14.34000, 7.30000)( -3.72000, -3.28000)%
-\special{pn 8}%
-%
-\special{pa 787 0}\special{pa 781 -99}\special{pa 763 -196}\special{pa 732 -290}\special{pa 690 -379}%
-\special{pa 637 -463}\special{pa 574 -539}\special{pa 502 -607}\special{pa 422 -665}%
-\special{pa 335 -712}\special{pa 243 -749}\special{pa 148 -773}\special{pa 49 -786}%
-\special{pa -49 -786}\special{pa -148 -773}\special{pa -243 -749}\special{pa -335 -712}%
-\special{pa -422 -665}\special{pa -502 -607}\special{pa -574 -539}\special{pa -637 -463}%
-\special{pa -690 -379}\special{pa -732 -290}\special{pa -763 -196}\special{pa -781 -99}%
-\special{pa -787 0}\special{pa -781 99}\special{pa -763 196}\special{pa -732 290}%
-\special{pa -690 379}\special{pa -637 463}\special{pa -574 539}\special{pa -502 607}%
-\special{pa -422 665}\special{pa -335 712}\special{pa -243 749}\special{pa -148 773}%
-\special{pa -49 786}\special{pa 49 786}\special{pa 148 773}\special{pa 243 749}\special{pa 335 712}%
-\special{pa 422 665}\special{pa 502 607}\special{pa 574 539}\special{pa 637 463}\special{pa 690 379}%
-\special{pa 732 290}\special{pa 763 196}\special{pa 781 99}\special{pa 787 0}%
-\special{fp}%
-\special{pa 1575 0}\special{pa 743 261}%
-\special{fp}%
-\special{pn 1}%
-\special{pa 1170 119}\special{pa 1163 115}\special{pa 1155 115}\special{pa 1148 119}%
-\special{pa 1144 127}\special{pa 1144 135}\special{pa 1148 142}\special{pa 1155 146}%
-\special{pa 1163 146}\special{pa 1170 142}\special{pa 1174 135}\special{pa 1174 127}%
-\special{pa 1170 119}\special{sh 1}\special{fp}%
-\special{pn 8}%
-\settowidth{\Width}{A}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{A}\settodepth{\Depth}{A}\setlength{\Height}{-\Height}%
-\put(4.0000,-0.0500){\hspace*{\Width}\raisebox{\Height}{A}}%
-%
-%
-\settowidth{\Width}{P}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{P}\settodepth{\Depth}{P}\setlength{\Height}{\Depth}%
-\put(1.9368,-0.6134){\hspace*{\Width}\raisebox{\Height}{P}}%
-%
-%
-\settowidth{\Width}{Q}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{Q}\settodepth{\Depth}{Q}\setlength{\Height}{\Depth}%
-\put(2.9934,-0.2817){\hspace*{\Width}\raisebox{\Height}{Q}}%
-%
-%
-\special{pa -1465 0}\special{pa 3984 0}%
-\special{fp}%
-\special{pa 0 1291}\special{pa 0 -1386}%
-\special{fp}%
-\settowidth{\Width}{$x$}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{$x$}\settodepth{\Depth}{$x$}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(10.1700,0.0000){\hspace*{\Width}\raisebox{\Height}{$x$}}%
-%
-%
-\settowidth{\Width}{$y$}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{$y$}\settodepth{\Depth}{$y$}\setlength{\Height}{\Depth}%
-\put(0.0000,3.5700){\hspace*{\Width}\raisebox{\Height}{$y$}}%
-%
-%
-\settowidth{\Width}{O}\setlength{\Width}{-1\Width}%
-\settoheight{\Height}{O}\settodepth{\Depth}{O}\setlength{\Height}{-\Height}%
-\put(-0.0500,-0.0500){\hspace*{\Width}\raisebox{\Height}{O}}%
-%
-%
-\end{picture}}%%
-\newframe%
-{\unitlength=1cm%
-\begin{picture}%
-( 14.34000, 7.30000)( -3.72000, -3.28000)%
-\special{pn 8}%
-%
-\special{pa 787 0}\special{pa 781 -99}\special{pa 763 -196}\special{pa 732 -290}\special{pa 690 -379}%
-\special{pa 637 -463}\special{pa 574 -539}\special{pa 502 -607}\special{pa 422 -665}%
-\special{pa 335 -712}\special{pa 243 -749}\special{pa 148 -773}\special{pa 49 -786}%
-\special{pa -49 -786}\special{pa -148 -773}\special{pa -243 -749}\special{pa -335 -712}%
-\special{pa -422 -665}\special{pa -502 -607}\special{pa -574 -539}\special{pa -637 -463}%
-\special{pa -690 -379}\special{pa -732 -290}\special{pa -763 -196}\special{pa -781 -99}%
-\special{pa -787 0}\special{pa -781 99}\special{pa -763 196}\special{pa -732 290}%
-\special{pa -690 379}\special{pa -637 463}\special{pa -574 539}\special{pa -502 607}%
-\special{pa -422 665}\special{pa -335 712}\special{pa -243 749}\special{pa -148 773}%
-\special{pa -49 786}\special{pa 49 786}\special{pa 148 773}\special{pa 243 749}\special{pa 335 712}%
-\special{pa 422 665}\special{pa 502 607}\special{pa 574 539}\special{pa 637 463}\special{pa 690 379}%
-\special{pa 732 290}\special{pa 763 196}\special{pa 781 99}\special{pa 787 0}%
-\special{fp}%
-\special{pa 1575 0}\special{pa 753 230}%
-\special{fp}%
-\special{pn 1}%
-\special{pa 1175 104}\special{pa 1168 100}\special{pa 1160 100}\special{pa 1153 104}%
-\special{pa 1149 111}\special{pa 1149 119}\special{pa 1153 126}\special{pa 1160 130}%
-\special{pa 1168 130}\special{pa 1175 126}\special{pa 1179 119}\special{pa 1179 111}%
-\special{pa 1175 104}\special{sh 1}\special{fp}%
-\special{pn 8}%
-\settowidth{\Width}{A}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{A}\settodepth{\Depth}{A}\setlength{\Height}{-\Height}%
-\put(4.0000,-0.0500){\hspace*{\Width}\raisebox{\Height}{A}}%
-%
-%
-\settowidth{\Width}{P}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{P}\settodepth{\Depth}{P}\setlength{\Height}{\Depth}%
-\put(1.9629,-0.5339){\hspace*{\Width}\raisebox{\Height}{P}}%
-%
-%
-\settowidth{\Width}{Q}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{Q}\settodepth{\Depth}{Q}\setlength{\Height}{\Depth}%
-\put(3.0064,-0.2419){\hspace*{\Width}\raisebox{\Height}{Q}}%
-%
-%
-\special{pa -1465 0}\special{pa 3984 0}%
-\special{fp}%
-\special{pa 0 1291}\special{pa 0 -1386}%
-\special{fp}%
-\settowidth{\Width}{$x$}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{$x$}\settodepth{\Depth}{$x$}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(10.1700,0.0000){\hspace*{\Width}\raisebox{\Height}{$x$}}%
-%
-%
-\settowidth{\Width}{$y$}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{$y$}\settodepth{\Depth}{$y$}\setlength{\Height}{\Depth}%
-\put(0.0000,3.5700){\hspace*{\Width}\raisebox{\Height}{$y$}}%
-%
-%
-\settowidth{\Width}{O}\setlength{\Width}{-1\Width}%
-\settoheight{\Height}{O}\settodepth{\Depth}{O}\setlength{\Height}{-\Height}%
-\put(-0.0500,-0.0500){\hspace*{\Width}\raisebox{\Height}{O}}%
-%
-%
-\end{picture}}%%
-\newframe%
-{\unitlength=1cm%
-\begin{picture}%
-( 14.34000, 7.30000)( -3.72000, -3.28000)%
-\special{pn 8}%
-%
-\special{pa 787 0}\special{pa 781 -99}\special{pa 763 -196}\special{pa 732 -290}\special{pa 690 -379}%
-\special{pa 637 -463}\special{pa 574 -539}\special{pa 502 -607}\special{pa 422 -665}%
-\special{pa 335 -712}\special{pa 243 -749}\special{pa 148 -773}\special{pa 49 -786}%
-\special{pa -49 -786}\special{pa -148 -773}\special{pa -243 -749}\special{pa -335 -712}%
-\special{pa -422 -665}\special{pa -502 -607}\special{pa -574 -539}\special{pa -637 -463}%
-\special{pa -690 -379}\special{pa -732 -290}\special{pa -763 -196}\special{pa -781 -99}%
-\special{pa -787 0}\special{pa -781 99}\special{pa -763 196}\special{pa -732 290}%
-\special{pa -690 379}\special{pa -637 463}\special{pa -574 539}\special{pa -502 607}%
-\special{pa -422 665}\special{pa -335 712}\special{pa -243 749}\special{pa -148 773}%
-\special{pa -49 786}\special{pa 49 786}\special{pa 148 773}\special{pa 243 749}\special{pa 335 712}%
-\special{pa 422 665}\special{pa 502 607}\special{pa 574 539}\special{pa 637 463}\special{pa 690 379}%
-\special{pa 732 290}\special{pa 763 196}\special{pa 781 99}\special{pa 787 0}%
-\special{fp}%
-\special{pa 1575 0}\special{pa 762 198}%
-\special{fp}%
-\special{pn 1}%
-\special{pa 1180 88}\special{pa 1173 84}\special{pa 1164 84}\special{pa 1157 88}\special{pa 1153 95}%
-\special{pa 1153 103}\special{pa 1157 110}\special{pa 1164 114}\special{pa 1173 114}%
-\special{pa 1180 110}\special{pa 1184 103}\special{pa 1184 95}\special{pa 1180 88}%
-\special{sh 1}\special{fp}%
-\special{pn 8}%
-\settowidth{\Width}{A}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{A}\settodepth{\Depth}{A}\setlength{\Height}{-\Height}%
-\put(4.0000,-0.0500){\hspace*{\Width}\raisebox{\Height}{A}}%
-%
-%
-\settowidth{\Width}{P}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{P}\settodepth{\Depth}{P}\setlength{\Height}{\Depth}%
-\put(1.9856,-0.4533){\hspace*{\Width}\raisebox{\Height}{P}}%
-%
-%
-\settowidth{\Width}{Q}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{Q}\settodepth{\Depth}{Q}\setlength{\Height}{\Depth}%
-\put(3.0178,-0.2016){\hspace*{\Width}\raisebox{\Height}{Q}}%
-%
-%
-\special{pa -1465 0}\special{pa 3984 0}%
-\special{fp}%
-\special{pa 0 1291}\special{pa 0 -1386}%
-\special{fp}%
-\settowidth{\Width}{$x$}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{$x$}\settodepth{\Depth}{$x$}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(10.1700,0.0000){\hspace*{\Width}\raisebox{\Height}{$x$}}%
-%
-%
-\settowidth{\Width}{$y$}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{$y$}\settodepth{\Depth}{$y$}\setlength{\Height}{\Depth}%
-\put(0.0000,3.5700){\hspace*{\Width}\raisebox{\Height}{$y$}}%
-%
-%
-\settowidth{\Width}{O}\setlength{\Width}{-1\Width}%
-\settoheight{\Height}{O}\settodepth{\Depth}{O}\setlength{\Height}{-\Height}%
-\put(-0.0500,-0.0500){\hspace*{\Width}\raisebox{\Height}{O}}%
-%
-%
-\end{picture}}%%
-\newframe%
-{\unitlength=1cm%
-\begin{picture}%
-( 14.34000, 7.30000)( -3.72000, -3.28000)%
-\special{pn 8}%
-%
-\special{pa 787 0}\special{pa 781 -99}\special{pa 763 -196}\special{pa 732 -290}\special{pa 690 -379}%
-\special{pa 637 -463}\special{pa 574 -539}\special{pa 502 -607}\special{pa 422 -665}%
-\special{pa 335 -712}\special{pa 243 -749}\special{pa 148 -773}\special{pa 49 -786}%
-\special{pa -49 -786}\special{pa -148 -773}\special{pa -243 -749}\special{pa -335 -712}%
-\special{pa -422 -665}\special{pa -502 -607}\special{pa -574 -539}\special{pa -637 -463}%
-\special{pa -690 -379}\special{pa -732 -290}\special{pa -763 -196}\special{pa -781 -99}%
-\special{pa -787 0}\special{pa -781 99}\special{pa -763 196}\special{pa -732 290}%
-\special{pa -690 379}\special{pa -637 463}\special{pa -574 539}\special{pa -502 607}%
-\special{pa -422 665}\special{pa -335 712}\special{pa -243 749}\special{pa -148 773}%
-\special{pa -49 786}\special{pa 49 786}\special{pa 148 773}\special{pa 243 749}\special{pa 335 712}%
-\special{pa 422 665}\special{pa 502 607}\special{pa 574 539}\special{pa 637 463}\special{pa 690 379}%
-\special{pa 732 290}\special{pa 763 196}\special{pa 781 99}\special{pa 787 0}%
-\special{fp}%
-\special{pa 1575 0}\special{pa 770 166}%
-\special{fp}%
-\special{pn 1}%
-\special{pa 1183 72}\special{pa 1176 68}\special{pa 1168 68}\special{pa 1161 72}\special{pa 1157 79}%
-\special{pa 1157 87}\special{pa 1161 94}\special{pa 1168 98}\special{pa 1176 98}\special{pa 1183 94}%
-\special{pa 1187 87}\special{pa 1187 79}\special{pa 1183 72}\special{sh 1}\special{fp}%
-\special{pn 8}%
-\settowidth{\Width}{A}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{A}\settodepth{\Depth}{A}\setlength{\Height}{-\Height}%
-\put(4.0000,-0.0500){\hspace*{\Width}\raisebox{\Height}{A}}%
-%
-%
-\settowidth{\Width}{P}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{P}\settodepth{\Depth}{P}\setlength{\Height}{\Depth}%
-\put(2.0050,-0.3719){\hspace*{\Width}\raisebox{\Height}{P}}%
-%
-%
-\settowidth{\Width}{Q}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{Q}\settodepth{\Depth}{Q}\setlength{\Height}{\Depth}%
-\put(3.0275,-0.1609){\hspace*{\Width}\raisebox{\Height}{Q}}%
-%
-%
-\special{pa -1465 0}\special{pa 3984 0}%
-\special{fp}%
-\special{pa 0 1291}\special{pa 0 -1386}%
-\special{fp}%
-\settowidth{\Width}{$x$}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{$x$}\settodepth{\Depth}{$x$}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(10.1700,0.0000){\hspace*{\Width}\raisebox{\Height}{$x$}}%
-%
-%
-\settowidth{\Width}{$y$}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{$y$}\settodepth{\Depth}{$y$}\setlength{\Height}{\Depth}%
-\put(0.0000,3.5700){\hspace*{\Width}\raisebox{\Height}{$y$}}%
-%
-%
-\settowidth{\Width}{O}\setlength{\Width}{-1\Width}%
-\settoheight{\Height}{O}\settodepth{\Depth}{O}\setlength{\Height}{-\Height}%
-\put(-0.0500,-0.0500){\hspace*{\Width}\raisebox{\Height}{O}}%
-%
-%
-\end{picture}}%%
-\newframe%
-{\unitlength=1cm%
-\begin{picture}%
-( 14.34000, 7.30000)( -3.72000, -3.28000)%
-\special{pn 8}%
-%
-\special{pa 787 0}\special{pa 781 -99}\special{pa 763 -196}\special{pa 732 -290}\special{pa 690 -379}%
-\special{pa 637 -463}\special{pa 574 -539}\special{pa 502 -607}\special{pa 422 -665}%
-\special{pa 335 -712}\special{pa 243 -749}\special{pa 148 -773}\special{pa 49 -786}%
-\special{pa -49 -786}\special{pa -148 -773}\special{pa -243 -749}\special{pa -335 -712}%
-\special{pa -422 -665}\special{pa -502 -607}\special{pa -574 -539}\special{pa -637 -463}%
-\special{pa -690 -379}\special{pa -732 -290}\special{pa -763 -196}\special{pa -781 -99}%
-\special{pa -787 0}\special{pa -781 99}\special{pa -763 196}\special{pa -732 290}%
-\special{pa -690 379}\special{pa -637 463}\special{pa -574 539}\special{pa -502 607}%
-\special{pa -422 665}\special{pa -335 712}\special{pa -243 749}\special{pa -148 773}%
-\special{pa -49 786}\special{pa 49 786}\special{pa 148 773}\special{pa 243 749}\special{pa 335 712}%
-\special{pa 422 665}\special{pa 502 607}\special{pa 574 539}\special{pa 637 463}\special{pa 690 379}%
-\special{pa 732 290}\special{pa 763 196}\special{pa 781 99}\special{pa 787 0}%
-\special{fp}%
-\special{pa 1575 0}\special{pa 776 134}%
-\special{fp}%
-\special{pn 1}%
-\special{pa 1187 56}\special{pa 1179 52}\special{pa 1171 52}\special{pa 1164 56}\special{pa 1160 63}%
-\special{pa 1160 71}\special{pa 1164 78}\special{pa 1171 82}\special{pa 1179 82}\special{pa 1187 78}%
-\special{pa 1191 71}\special{pa 1191 63}\special{pa 1187 56}\special{sh 1}\special{fp}%
-\special{pn 8}%
-\settowidth{\Width}{A}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{A}\settodepth{\Depth}{A}\setlength{\Height}{-\Height}%
-\put(4.0000,-0.0500){\hspace*{\Width}\raisebox{\Height}{A}}%
-%
-%
-\settowidth{\Width}{P}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{P}\settodepth{\Depth}{P}\setlength{\Height}{\Depth}%
-\put(2.0210,-0.2897){\hspace*{\Width}\raisebox{\Height}{P}}%
-%
-%
-\settowidth{\Width}{Q}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{Q}\settodepth{\Depth}{Q}\setlength{\Height}{\Depth}%
-\put(3.0355,-0.1198){\hspace*{\Width}\raisebox{\Height}{Q}}%
-%
-%
-\special{pa -1465 0}\special{pa 3984 0}%
-\special{fp}%
-\special{pa 0 1291}\special{pa 0 -1386}%
-\special{fp}%
-\settowidth{\Width}{$x$}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{$x$}\settodepth{\Depth}{$x$}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(10.1700,0.0000){\hspace*{\Width}\raisebox{\Height}{$x$}}%
-%
-%
-\settowidth{\Width}{$y$}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{$y$}\settodepth{\Depth}{$y$}\setlength{\Height}{\Depth}%
-\put(0.0000,3.5700){\hspace*{\Width}\raisebox{\Height}{$y$}}%
-%
-%
-\settowidth{\Width}{O}\setlength{\Width}{-1\Width}%
-\settoheight{\Height}{O}\settodepth{\Depth}{O}\setlength{\Height}{-\Height}%
-\put(-0.0500,-0.0500){\hspace*{\Width}\raisebox{\Height}{O}}%
-%
-%
-\end{picture}}%%
-\newframe%
-{\unitlength=1cm%
-\begin{picture}%
-( 14.34000, 7.30000)( -3.72000, -3.28000)%
-\special{pn 8}%
-%
-\special{pa 787 0}\special{pa 781 -99}\special{pa 763 -196}\special{pa 732 -290}\special{pa 690 -379}%
-\special{pa 637 -463}\special{pa 574 -539}\special{pa 502 -607}\special{pa 422 -665}%
-\special{pa 335 -712}\special{pa 243 -749}\special{pa 148 -773}\special{pa 49 -786}%
-\special{pa -49 -786}\special{pa -148 -773}\special{pa -243 -749}\special{pa -335 -712}%
-\special{pa -422 -665}\special{pa -502 -607}\special{pa -574 -539}\special{pa -637 -463}%
-\special{pa -690 -379}\special{pa -732 -290}\special{pa -763 -196}\special{pa -781 -99}%
-\special{pa -787 0}\special{pa -781 99}\special{pa -763 196}\special{pa -732 290}%
-\special{pa -690 379}\special{pa -637 463}\special{pa -574 539}\special{pa -502 607}%
-\special{pa -422 665}\special{pa -335 712}\special{pa -243 749}\special{pa -148 773}%
-\special{pa -49 786}\special{pa 49 786}\special{pa 148 773}\special{pa 243 749}\special{pa 335 712}%
-\special{pa 422 665}\special{pa 502 607}\special{pa 574 539}\special{pa 637 463}\special{pa 690 379}%
-\special{pa 732 290}\special{pa 763 196}\special{pa 781 99}\special{pa 787 0}%
-\special{fp}%
-\special{pa 1575 0}\special{pa 781 101}%
-\special{fp}%
-\special{pn 1}%
-\special{pa 1189 39}\special{pa 1182 35}\special{pa 1174 35}\special{pa 1167 39}\special{pa 1163 46}%
-\special{pa 1163 55}\special{pa 1167 62}\special{pa 1174 66}\special{pa 1182 66}\special{pa 1189 62}%
-\special{pa 1193 55}\special{pa 1193 46}\special{pa 1189 39}\special{sh 1}\special{fp}%
-\special{pn 8}%
-\settowidth{\Width}{A}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{A}\settodepth{\Depth}{A}\setlength{\Height}{-\Height}%
-\put(4.0000,-0.0500){\hspace*{\Width}\raisebox{\Height}{A}}%
-%
-%
-\settowidth{\Width}{P}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{P}\settodepth{\Depth}{P}\setlength{\Height}{\Depth}%
-\put(2.0334,-0.2069){\hspace*{\Width}\raisebox{\Height}{P}}%
-%
-%
-\settowidth{\Width}{Q}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{Q}\settodepth{\Depth}{Q}\setlength{\Height}{\Depth}%
-\put(3.0417,-0.0784){\hspace*{\Width}\raisebox{\Height}{Q}}%
-%
-%
-\special{pa -1465 0}\special{pa 3984 0}%
-\special{fp}%
-\special{pa 0 1291}\special{pa 0 -1386}%
-\special{fp}%
-\settowidth{\Width}{$x$}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{$x$}\settodepth{\Depth}{$x$}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(10.1700,0.0000){\hspace*{\Width}\raisebox{\Height}{$x$}}%
-%
-%
-\settowidth{\Width}{$y$}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{$y$}\settodepth{\Depth}{$y$}\setlength{\Height}{\Depth}%
-\put(0.0000,3.5700){\hspace*{\Width}\raisebox{\Height}{$y$}}%
-%
-%
-\settowidth{\Width}{O}\setlength{\Width}{-1\Width}%
-\settoheight{\Height}{O}\settodepth{\Depth}{O}\setlength{\Height}{-\Height}%
-\put(-0.0500,-0.0500){\hspace*{\Width}\raisebox{\Height}{O}}%
-%
-%
-\end{picture}}%%
-\newframe%
-{\unitlength=1cm%
-\begin{picture}%
-( 14.34000, 7.30000)( -3.72000, -3.28000)%
-\special{pn 8}%
-%
-\special{pa 787 0}\special{pa 781 -99}\special{pa 763 -196}\special{pa 732 -290}\special{pa 690 -379}%
-\special{pa 637 -463}\special{pa 574 -539}\special{pa 502 -607}\special{pa 422 -665}%
-\special{pa 335 -712}\special{pa 243 -749}\special{pa 148 -773}\special{pa 49 -786}%
-\special{pa -49 -786}\special{pa -148 -773}\special{pa -243 -749}\special{pa -335 -712}%
-\special{pa -422 -665}\special{pa -502 -607}\special{pa -574 -539}\special{pa -637 -463}%
-\special{pa -690 -379}\special{pa -732 -290}\special{pa -763 -196}\special{pa -781 -99}%
-\special{pa -787 0}\special{pa -781 99}\special{pa -763 196}\special{pa -732 290}%
-\special{pa -690 379}\special{pa -637 463}\special{pa -574 539}\special{pa -502 607}%
-\special{pa -422 665}\special{pa -335 712}\special{pa -243 749}\special{pa -148 773}%
-\special{pa -49 786}\special{pa 49 786}\special{pa 148 773}\special{pa 243 749}\special{pa 335 712}%
-\special{pa 422 665}\special{pa 502 607}\special{pa 574 539}\special{pa 637 463}\special{pa 690 379}%
-\special{pa 732 290}\special{pa 763 196}\special{pa 781 99}\special{pa 787 0}%
-\special{fp}%
-\special{pa 1575 0}\special{pa 784 68}%
-\special{fp}%
-\special{pn 1}%
-\special{pa 1191 23}\special{pa 1184 19}\special{pa 1176 19}\special{pa 1168 23}\special{pa 1164 30}%
-\special{pa 1164 38}\special{pa 1168 45}\special{pa 1176 49}\special{pa 1184 49}\special{pa 1191 45}%
-\special{pa 1195 38}\special{pa 1195 30}\special{pa 1191 23}\special{sh 1}\special{fp}%
-\special{pn 8}%
-\settowidth{\Width}{A}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{A}\settodepth{\Depth}{A}\setlength{\Height}{-\Height}%
-\put(4.0000,-0.0500){\hspace*{\Width}\raisebox{\Height}{A}}%
-%
-%
-\settowidth{\Width}{P}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{P}\settodepth{\Depth}{P}\setlength{\Height}{\Depth}%
-\put(2.0425,-0.1236){\hspace*{\Width}\raisebox{\Height}{P}}%
-%
-%
-\settowidth{\Width}{Q}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{Q}\settodepth{\Depth}{Q}\setlength{\Height}{\Depth}%
-\put(3.0462,-0.0368){\hspace*{\Width}\raisebox{\Height}{Q}}%
-%
-%
-\special{pa -1465 0}\special{pa 3984 0}%
-\special{fp}%
-\special{pa 0 1291}\special{pa 0 -1386}%
-\special{fp}%
-\settowidth{\Width}{$x$}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{$x$}\settodepth{\Depth}{$x$}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(10.1700,0.0000){\hspace*{\Width}\raisebox{\Height}{$x$}}%
-%
-%
-\settowidth{\Width}{$y$}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{$y$}\settodepth{\Depth}{$y$}\setlength{\Height}{\Depth}%
-\put(0.0000,3.5700){\hspace*{\Width}\raisebox{\Height}{$y$}}%
-%
-%
-\settowidth{\Width}{O}\setlength{\Width}{-1\Width}%
-\settoheight{\Height}{O}\settodepth{\Depth}{O}\setlength{\Height}{-\Height}%
-\put(-0.0500,-0.0500){\hspace*{\Width}\raisebox{\Height}{O}}%
-%
-%
-\end{picture}}%%
-\newframe%
-{\unitlength=1cm%
-\begin{picture}%
-( 14.34000, 7.30000)( -3.72000, -3.28000)%
-\special{pn 8}%
-%
-\special{pa 787 0}\special{pa 781 -99}\special{pa 763 -196}\special{pa 732 -290}\special{pa 690 -379}%
-\special{pa 637 -463}\special{pa 574 -539}\special{pa 502 -607}\special{pa 422 -665}%
-\special{pa 335 -712}\special{pa 243 -749}\special{pa 148 -773}\special{pa 49 -786}%
-\special{pa -49 -786}\special{pa -148 -773}\special{pa -243 -749}\special{pa -335 -712}%
-\special{pa -422 -665}\special{pa -502 -607}\special{pa -574 -539}\special{pa -637 -463}%
-\special{pa -690 -379}\special{pa -732 -290}\special{pa -763 -196}\special{pa -781 -99}%
-\special{pa -787 0}\special{pa -781 99}\special{pa -763 196}\special{pa -732 290}%
-\special{pa -690 379}\special{pa -637 463}\special{pa -574 539}\special{pa -502 607}%
-\special{pa -422 665}\special{pa -335 712}\special{pa -243 749}\special{pa -148 773}%
-\special{pa -49 786}\special{pa 49 786}\special{pa 148 773}\special{pa 243 749}\special{pa 335 712}%
-\special{pa 422 665}\special{pa 502 607}\special{pa 574 539}\special{pa 637 463}\special{pa 690 379}%
-\special{pa 732 290}\special{pa 763 196}\special{pa 781 99}\special{pa 787 0}%
-\special{fp}%
-\special{pa 1575 0}\special{pa 787 35}%
-\special{fp}%
-\special{pn 1}%
-\special{pa 1192 7}\special{pa 1185 3}\special{pa 1177 3}\special{pa 1170 7}\special{pa 1165 14}%
-\special{pa 1165 22}\special{pa 1170 29}\special{pa 1177 33}\special{pa 1185 33}\special{pa 1192 29}%
-\special{pa 1196 22}\special{pa 1196 14}\special{pa 1192 7}\special{sh 1}\special{fp}%
-\special{pn 8}%
-\settowidth{\Width}{A}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{A}\settodepth{\Depth}{A}\setlength{\Height}{-\Height}%
-\put(4.0000,-0.0500){\hspace*{\Width}\raisebox{\Height}{A}}%
-%
-%
-\settowidth{\Width}{P}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{P}\settodepth{\Depth}{P}\setlength{\Height}{\Depth}%
-\put(2.0480,-0.0401){\hspace*{\Width}\raisebox{\Height}{P}}%
-%
-%
-\settowidth{\Width}{Q}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{Q}\settodepth{\Depth}{Q}\setlength{\Height}{\Depth}%
-\put(3.0490,0.0050){\hspace*{\Width}\raisebox{\Height}{Q}}%
-%
-%
-\special{pa -1465 0}\special{pa 3984 0}%
-\special{fp}%
-\special{pa 0 1291}\special{pa 0 -1386}%
-\special{fp}%
-\settowidth{\Width}{$x$}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{$x$}\settodepth{\Depth}{$x$}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(10.1700,0.0000){\hspace*{\Width}\raisebox{\Height}{$x$}}%
-%
-%
-\settowidth{\Width}{$y$}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{$y$}\settodepth{\Depth}{$y$}\setlength{\Height}{\Depth}%
-\put(0.0000,3.5700){\hspace*{\Width}\raisebox{\Height}{$y$}}%
-%
-%
-\settowidth{\Width}{O}\setlength{\Width}{-1\Width}%
-\settoheight{\Height}{O}\settodepth{\Depth}{O}\setlength{\Height}{-\Height}%
-\put(-0.0500,-0.0500){\hspace*{\Width}\raisebox{\Height}{O}}%
-%
-%
-\end{picture}}%%
-\newframe%
-{\unitlength=1cm%
-\begin{picture}%
-( 14.34000, 7.30000)( -3.72000, -3.28000)%
-\special{pn 8}%
-%
-\special{pa 787 0}\special{pa 781 -99}\special{pa 763 -196}\special{pa 732 -290}\special{pa 690 -379}%
-\special{pa 637 -463}\special{pa 574 -539}\special{pa 502 -607}\special{pa 422 -665}%
-\special{pa 335 -712}\special{pa 243 -749}\special{pa 148 -773}\special{pa 49 -786}%
-\special{pa -49 -786}\special{pa -148 -773}\special{pa -243 -749}\special{pa -335 -712}%
-\special{pa -422 -665}\special{pa -502 -607}\special{pa -574 -539}\special{pa -637 -463}%
-\special{pa -690 -379}\special{pa -732 -290}\special{pa -763 -196}\special{pa -781 -99}%
-\special{pa -787 0}\special{pa -781 99}\special{pa -763 196}\special{pa -732 290}%
-\special{pa -690 379}\special{pa -637 463}\special{pa -574 539}\special{pa -502 607}%
-\special{pa -422 665}\special{pa -335 712}\special{pa -243 749}\special{pa -148 773}%
-\special{pa -49 786}\special{pa 49 786}\special{pa 148 773}\special{pa 243 749}\special{pa 335 712}%
-\special{pa 422 665}\special{pa 502 607}\special{pa 574 539}\special{pa 637 463}\special{pa 690 379}%
-\special{pa 732 290}\special{pa 763 196}\special{pa 781 99}\special{pa 787 0}%
-\special{fp}%
-\special{pa 1575 0}\special{pa 787 3}%
-\special{fp}%
-\special{pn 1}%
-\special{pa 1192 -10}\special{pa 1185 -14}\special{pa 1177 -14}\special{pa 1170 -10}%
-\special{pa 1166 -3}\special{pa 1166 5}\special{pa 1170 12}\special{pa 1177 16}\special{pa 1185 16}%
-\special{pa 1192 12}\special{pa 1196 5}\special{pa 1196 -3}\special{pa 1192 -10}\special{sh 1}\special{fp}%
-\special{pn 8}%
-\settowidth{\Width}{A}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{A}\settodepth{\Depth}{A}\setlength{\Height}{-\Height}%
-\put(4.0000,-0.0500){\hspace*{\Width}\raisebox{\Height}{A}}%
-%
-%
-\settowidth{\Width}{P}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{P}\settodepth{\Depth}{P}\setlength{\Height}{\Depth}%
-\put(2.0500,0.0436){\hspace*{\Width}\raisebox{\Height}{P}}%
-%
-%
-\settowidth{\Width}{Q}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{Q}\settodepth{\Depth}{Q}\setlength{\Height}{\Depth}%
-\put(3.0500,0.0468){\hspace*{\Width}\raisebox{\Height}{Q}}%
-%
-%
-\special{pa -1465 0}\special{pa 3984 0}%
-\special{fp}%
-\special{pa 0 1291}\special{pa 0 -1386}%
-\special{fp}%
-\settowidth{\Width}{$x$}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{$x$}\settodepth{\Depth}{$x$}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(10.1700,0.0000){\hspace*{\Width}\raisebox{\Height}{$x$}}%
-%
-%
-\settowidth{\Width}{$y$}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{$y$}\settodepth{\Depth}{$y$}\setlength{\Height}{\Depth}%
-\put(0.0000,3.5700){\hspace*{\Width}\raisebox{\Height}{$y$}}%
-%
-%
-\settowidth{\Width}{O}\setlength{\Width}{-1\Width}%
-\settoheight{\Height}{O}\settodepth{\Depth}{O}\setlength{\Height}{-\Height}%
-\put(-0.0500,-0.0500){\hspace*{\Width}\raisebox{\Height}{O}}%
-%
-%
-\end{picture}}%%
-\end{animateinline}%
diff --git a/texmf-dist/doc/support/ketcindy/source/ketmanual/Gfig/oresenex01.tex b/texmf-dist/doc/support/ketcindy/source/ketmanual/Gfig/oresenex01.tex
deleted file mode 100644
index 6c2c54f0..00000000
--- a/texmf-dist/doc/support/ketcindy/source/ketmanual/Gfig/oresenex01.tex
+++ /dev/null
@@ -1,83 +0,0 @@
-%%% /Users/Hannya/ketcindy/ketwork/template.tex 2016-8-16 19:45
-%%% template.sce 2016-8-16 19:45
-{\unitlength=8mm%
-\begin{picture}%
-( 7.77000, 5.78000)( -4.42000, -1.51000)%
-\special{pn 8}%
-%
-\settowidth{\Width}{$x$}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{$x$}\settodepth{\Depth}{$x$}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(-3.5455,-0.5866){\hspace*{\Width}\raisebox{\Height}{$x$}}%
-%
-%
-\settowidth{\Width}{$y$}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{$y$}\settodepth{\Depth}{$y$}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(2.8935,-1.1428){\hspace*{\Width}\raisebox{\Height}{$y$}}%
-%
-%
-\settowidth{\Width}{$z$}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{$z$}\settodepth{\Depth}{$z$}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(0.0000,4.0571){\hspace*{\Width}\raisebox{\Height}{$z$}}%
-%
-%
-\special{pa 1055 -175}\special{pa -1058 175}%
-\special{fp}%
-\special{pa -856 -338}\special{pa 856 338}%
-\special{fp}%
-\special{pa 0 476}\special{pa 0 -1218}%
-\special{fp}%
-\special{pa -988 139}\special{pa -1058 175}\special{pa -980 187}\special{pa -984 163}%
-\special{pa -988 139}\special{sh 1}\special{ip}%
-\special{pn 1}%
-\special{pa -988 139}\special{pa -1058 175}\special{pa -980 187}\special{pa -984 163}%
-\special{pa -988 139}\special{pa -1058 175}%
-\special{fp}%
-\special{pn 8}%
-\special{pa 777 333}\special{pa 856 338}\special{pa 795 288}\special{pa 786 310}\special{pa 777 333}%
-\special{sh 1}\special{ip}%
-\special{pn 1}%
-\special{pa 777 333}\special{pa 856 338}\special{pa 795 288}\special{pa 786 310}\special{pa 777 333}%
-\special{pa 856 338}%
-\special{fp}%
-\special{pn 8}%
-\special{pa 24 -1143}\special{pa 0 -1218}\special{pa -24 -1143}\special{pa 0 -1143}%
-\special{pa 24 -1143}\special{sh 1}\special{ip}%
-\special{pn 1}%
-\special{pa 24 -1143}\special{pa 0 -1218}\special{pa -24 -1143}\special{pa 0 -1143}%
-\special{pa 24 -1143}\special{pa 0 -1218}%
-\special{fp}%
-\special{pn 8}%
-\settowidth{\Width}{O}\setlength{\Width}{-1\Width}%
-\settoheight{\Height}{O}\settodepth{\Depth}{O}\setlength{\Height}{-\Height}%
-\put(-0.0500,-0.0500){\hspace*{\Width}\raisebox{\Height}{O}}%
-%
-%
-\special{pa -529 87}\special{pa -529 -521}\special{pa -187 -386}\special{pa 342 -474}%
-\special{pa 685 -339}\special{pa 685 -948}%
-\special{fp}%
-\special{pn 4}%
-\special{pa -518 76}\special{pa -525 72}\special{pa -533 72}\special{pa -540 76}\special{pa -544 83}%
-\special{pa -544 92}\special{pa -540 99}\special{pa -533 103}\special{pa -525 103}%
-\special{pa -518 99}\special{pa -514 92}\special{pa -514 83}\special{pa -518 76}\special{sh 1}\special{fp}%
-\special{pa -518 -533}\special{pa -525 -537}\special{pa -533 -537}\special{pa -540 -533}%
-\special{pa -544 -526}\special{pa -544 -517}\special{pa -540 -510}\special{pa -533 -506}%
-\special{pa -525 -506}\special{pa -518 -510}\special{pa -514 -517}\special{pa -514 -526}%
-\special{pa -518 -533}\special{sh 1}\special{fp}%
-\special{pa -175 -397}\special{pa -182 -402}\special{pa -191 -402}\special{pa -198 -397}%
-\special{pa -202 -390}\special{pa -202 -382}\special{pa -198 -375}\special{pa -191 -371}%
-\special{pa -182 -371}\special{pa -175 -375}\special{pa -171 -382}\special{pa -171 -390}%
-\special{pa -175 -397}\special{sh 1}\special{fp}%
-\special{pa 353 -485}\special{pa 346 -489}\special{pa 338 -489}\special{pa 331 -485}%
-\special{pa 327 -478}\special{pa 327 -470}\special{pa 331 -463}\special{pa 338 -459}%
-\special{pa 346 -459}\special{pa 353 -463}\special{pa 357 -470}\special{pa 357 -478}%
-\special{pa 353 -485}\special{sh 1}\special{fp}%
-\special{pa 696 -350}\special{pa 689 -354}\special{pa 680 -354}\special{pa 673 -350}%
-\special{pa 669 -343}\special{pa 669 -335}\special{pa 673 -327}\special{pa 680 -323}%
-\special{pa 689 -323}\special{pa 696 -327}\special{pa 700 -335}\special{pa 700 -343}%
-\special{pa 696 -350}\special{sh 1}\special{fp}%
-\special{pa 696 -959}\special{pa 689 -963}\special{pa 680 -963}\special{pa 673 -959}%
-\special{pa 669 -952}\special{pa 669 -944}\special{pa 673 -936}\special{pa 680 -932}%
-\special{pa 689 -932}\special{pa 696 -936}\special{pa 700 -944}\special{pa 700 -952}%
-\special{pa 696 -959}\special{sh 1}\special{fp}%
-\special{pn 8}%
-\end{picture}}% \ No newline at end of file
diff --git a/texmf-dist/doc/support/ketcindy/source/ketmanual/KeTCindyReferenceJ.pdf b/texmf-dist/doc/support/ketcindy/source/ketmanual/KeTCindyReferenceJ.pdf
deleted file mode 100644
index 9915d80d..00000000
--- a/texmf-dist/doc/support/ketcindy/source/ketmanual/KeTCindyReferenceJ.pdf
+++ /dev/null
Binary files differ
diff --git a/texmf-dist/doc/support/ketcindy/source/ketmanual/KeTCindyReferenceJ.tex b/texmf-dist/doc/support/ketcindy/source/ketmanual/KeTCindyReferenceJ.tex
deleted file mode 100644
index 7c2eb756..00000000
--- a/texmf-dist/doc/support/ketcindy/source/ketmanual/KeTCindyReferenceJ.tex
+++ /dev/null
@@ -1,5842 +0,0 @@
-\documentclass[papersize,a4paper,12pt,uplatex]{jsarticle}
-\usepackage{ketpic,ketlayer}
-\usepackage{amsmath}
-\usepackage{newtxmath}
-\usepackage[dvipdfmx]{graphicx,color}
-\usepackage{wrapfig}
-\usepackage[dvipdfmx,bookmarks=false,colorlinks=true,linkcolor=blue]{hyperref}
-\setmargin{20}{20}{15}{25}
-\usepackage{setspace}
-
-
-\begin{document}
-\title{\ketcindy リファレンスマニュアル}
-\author{\ketcindy\ Project Team}
-\maketitle
-
-
-\tableofcontents
-
-\newpage
-
-
-\section{\ketcindy ã«ã¤ã„ã¦}
-\subsection{システムã®æ§‹æˆ}
-\ketcindy ã¯ï¼ŒCinderella ã§ã®ä½œå›³ãƒ‡ãƒ¼ã‚¿ã‚’Scilab版 \ketpic ã«æ¸¡ã—,\LaTeX ファイルを作æˆã™ã‚‹ãŸã‚ã®ã‚¹ã‚¯ãƒªãƒ—トライブラリã§ã‚る。Cinderella ã«ã‚ˆã‚‹ã‚¤ãƒ³ã‚¿ãƒ©ã‚¯ãƒ†ã‚£ãƒ–ãªä½œå›³æ©Ÿèƒ½ã¨ï¼ŒCindyScript ã«ã‚ˆã‚‹ãƒ—ログラミングã«ã‚ˆã‚Šï¼Œ\LaTeX 文書ã®æŒ¿å…¥å›³ã‚’効率よã作æˆã™ã‚‹ã“ã¨ãŒã§ãる。ã¾ãŸï¼ŒR,Maxima,Risa/Asirãªã©ã®æ•°å¼å‡¦ç†ã‚½ãƒ•ãƒˆã¨é€£æºã—ã¦è¨ˆç®—ã‚’è¡Œã†ã“ã¨ãŒã§ãる。
-
-\input{Fig/concept}
-
- Cinderellaã§ä½œå›³ã—ãŸå›³ã®ãƒ‡ãƒ¼ã‚¿ã¯ï¼ŒScilabã®ãƒ•ã‚¡ã‚¤ãƒ«ï¼ˆæ‹¡å¼µå­ sci)ã«æ›¸ã出ã•ã‚Œã‚‹ã€‚ã“れをScilabã§å‡¦ç†ã—ã¦\TeX ファイルを作æˆã™ã‚‹ï¼ˆ Scilab版 \ketpic)。ã§ããŸ\TeX ファイルを,本文中㫠inputコマンド ã§æŒ¿å…¥ã™ã‚Œã°å›³ãŒè¡¨ç¤ºã•ã‚Œã‚‹ã€‚\\
- Cinderellaã¨Scilabã‚„ãã®ä»–ã®ã‚½ãƒ•ãƒˆã‚¦ã‚§ã‚¢ã¨ã®é€£æºã«ã¯ï¼Œãƒãƒƒãƒãƒ•ã‚¡ã‚¤ãƒ«ï¼ˆMacã§ã¯ã‚·ã‚§ãƒ«ãƒ•ã‚¡ã‚¤ãƒ«ï¼‰ã‚’用ã„ã¦ã„る。(概念図ã®ä¸¡æ–¹å‘矢å°) ãƒãƒƒãƒãƒ•ã‚¡ã‚¤ãƒ«ã¯ kc.bat,シェルファイル㯠kc.sh ã§ï¼ŒKeTCindy ãŒç›®çš„ã«å¿œã˜ã¦ã“れらã®ãƒ•ã‚¡ã‚¤ãƒ«ã‚’書ã出ã—,プラグイン KetCindyPlugin.jar ã§ãれらを実行ã™ã‚‹æ‰‹é †ã«ãªã£ã¦ã„る。\\
- \\
-\subsection{Cindyscriptã®ã‚¹ãƒ­ãƒƒãƒˆã®æ¦‚念}
-Cindyscriptã¯Cinderellaã®ãƒ—ログラミング言語ã§ï¼Œã‚¹ã‚¯ãƒªãƒ—トエディタã§è¨˜è¿°ã™ã‚‹ã€‚スクリプトエディタã¯ï¼Œã€Œã‚¹ã‚¯ãƒªãƒ—トã€ãƒ¡ãƒ‹ãƒ¥ãƒ¼ã®ã€ŒCindyscriptã€ã‚’é¸æŠžã—ã¦é–‹ãã‹ï¼ŒCtrl+9 (Windows) / ⌘+9 (Mac) ã§é–‹ã。\\
- スクリプトエディタã®å·¦æ–¹ã«ä¸¦ã‚“ã§ã„るフォルダアイコンã®ãƒ¡ãƒ‹ãƒ¥ãƒ¼é¢¨ã®ã‚‚ã®ã‚’「スロットã€ã¨ã„ã„,Cindyscriptã®å®Ÿè¡Œã‚¿ã‚¤ãƒŸãƒ³ã‚°ã«ã‚ˆã‚Šã‚¹ã‚¯ãƒªãƒ—トを書ã分ã‘ã‚‹ã“ã¨ãŒã§ãる。通常㯠Initialzation スロット㨠Draw スロットを使ã†ã€‚\\
- Initialzation スロットã¯ï¼Œã‚¹ã‚¯ãƒªãƒ—トを実行ã™ã‚‹ã¨æœ€åˆã«ä¸€åº¦ã ã‘実行ã•ã‚Œã‚‹ã€‚従ã£ã¦ï¼Œé–¢æ•°å®šç¾©ã‚„変数ã®åˆæœŸè¨­å®šãªã©ã‚’書ã。ã²ãªå½¢ã‚„サンプル㮠cdy ファイルã§ã¯ã“ã“ã« KETlib ã¨ã„ã†ãƒšãƒ¼ã‚¸ãŒã‚り,パスåã®è¨­å®šã‚„ライブラリã®èª­ã¿è¾¼ã¿ãªã©ï¼ŒKeTCindyã®åˆæœŸè¨­å®šã«é–¢ã™ã‚‹è¨˜è¿°ãŒã‚る。\\
- Draw スロットã¯ï¼ŒCinderellaã®ç”»é¢ä¸Šã§ãªã«ã‹æ“作ãŒè¡Œã‚れるãŸã³ã«å®Ÿè¡Œã•ã‚Œã‚‹ã€‚通常ã¯ã“ã“ã«ã‚¹ã‚¯ãƒªãƒ—トを書ã。ã²ãªå½¢ã®cdyファイルã§ã¯ï¼ŒKetinit() ãªã©ãŒè¨˜è¿°ã•ã‚ŒãŸ figures ページãŒç”¨æ„ã•ã‚Œã¦ã„る。\\
- \\
-    \includegraphics[bb=0 0 1076 392 , width=10cm]{Fig/slot.png}\\
- \\
- 1ã¤ã®ã‚¹ãƒ­ãƒƒãƒˆã«è¤‡æ•°ã®ãƒšãƒ¼ã‚¸ã‚’作るã“ã¨ãŒã§ãる。KETlib以外ã«åˆæœŸè¨­å®šã®ã‚¹ã‚¯ãƒªãƒ—トを書ãå ´åˆã¯ï¼ŒInitialzation スロットã«æ–°ã—ã„ページを作るã®ãŒã‚ˆã„。\\
-
-
-\subsection{プロットデータ}
-プロットデータ(Plot Data) ã¨ã¯ï¼Œé–¢æ•°ã®ã‚°ãƒ©ãƒ•ã‚„幾何è¦ç´ ã‚’æãデータã®ã“ã¨ã§ã‚り,KeTCindyã®å‡¦ç†ã®ä¸­æ ¸ã‚’ãªã—ã¦ã„る。本マニュアルã§ã¯ PD ã¨ç•¥ã™ã“ã¨ãŒã‚る。ãŸã¨ãˆã°æ›²ç·šã¯ï¼Œæ画範囲を分割ã—ã¦ç·šåˆ†ã®é›†ã¾ã‚Šã¨ã—ã¦æç”»ã—ã¦ãŠã‚Šï¼Œã“ã®ã¨ãã®ãƒ—ロットデータã¯ãれらã®ç·šåˆ†ã®ç«¯ç‚¹ã®ãƒªã‚¹ãƒˆã§ã‚る。\\
- プロットデータã®å称ã¯KeTCindyãŒè‡ªå‹•çš„ã«å‘½åã™ã‚‹ã€‚ãã®å‘½åè¦å‰‡ã¯æ¬¡ã®é€šã‚Šã§ã‚る。\\
-\\
-・å称ã®é ­éƒ¨ã¯ï¼Œãƒ—ロットデータを作æˆã™ã‚‹é–¢æ•°ã”ã¨ã«æ±ºã¾ã£ã¦ã„る。\\
-・第1引数㫠name ãŒä¸Žãˆã‚‰ã‚Œã‚‹å ´åˆï¼Œname を頭部ã«ä»˜åŠ ã™ã‚‹ã€‚\\
-   例:\verb|Listplot("1",[[0,0],[1,2]]);| ã®ã¨ã,sg1\\
-・関数ã«ã‚ˆã£ã¦ã¯ï¼Œç¬¬ï¼‘引数㮠name ã‚’ç•¥ã™ã“ã¨ãŒã§ãる。ã“ã®å ´åˆï¼Œå¼•æ•°ã§ç”¨ã„られãŸç‚¹ã®åå‰ã‚’頭部ã«ä»˜åŠ ã™ã‚‹ã€‚\\
-   例:\verb|Listplot([A,B,C]);|    ã®ã¨ã,sgABC\\
- \\
- プロットデータを生æˆã—ãŸã¨ãã¯ï¼ŒCindyscriptエディタã®ã‚³ãƒ³ã‚½ãƒ¼ãƒ«ã«ãã®å称を表示ã™ã‚‹ã€‚上ã®ä¾‹ã§ã¯ï¼Œ\\
-    \verb|generate Listplot sgABC|\\
-ã¨è¡¨ç¤ºã•ã‚Œã‚‹ã€‚プロットデータをæ“作ã™ã‚‹é–¢æ•°ã§ã¯ï¼Œã“ã®PDã®å称を用ã„る。\\
- プロットデータã®å†…容を知りãŸã„å ´åˆã¯ï¼ŒCindyscriptã®\\
-    println(プロットデータå)\\
-ã§ã‚³ãƒ³ã‚½ãƒ¼ãƒ«ã«è¡¨ç¤ºã™ã‚‹ã“ã¨ãŒã§ãる。\\
- プロットデータã¯ï¼ŒCindyscriptã«ã‚ˆã‚‹ãƒ—ログラムã§ä½œæˆã—ã¦ãれをKeTCindyã§åˆ©ç”¨ã™ã‚‹ã“ã¨ã‚‚ã§ãる。Listplot()ã®ä¾‹ã‚’å‚ç…§ã®ã“ã¨ã€‚ãŸã ã—,è¦ç´ ã®æ•°ãŒå¤§ãã„ã¨Scilabã§ã‚¨ãƒ©ãƒ¼ã¨ãªã‚‹ã®ã§ï¼Œï¼‘ã¤ã®ãƒ—ロットデータã®è¦ç´ ã¯200程度ã¨ã™ã‚‹ã®ãŒã‚ˆã„。ã“れより多ã„å ´åˆã¯åˆ†å‰²ã™ã‚‹ã€‚\\
-
-\subsection{Cinderellaã®ä½œå›³ãƒ„ール}
-  \\
-\includegraphics[bb=0 0 27 21 , width=0.6cm]{Cindytool/move.png}  動ã‹ã™ãƒ¢ãƒ¼ãƒ‰ï¼ˆé¸æŠžãƒ¢ãƒ¼ãƒ‰ï¼‰ã«ã™ã‚‹ï¼šæ¨™æº–状態\\
-\includegraphics[bb=0 0 27 21 , width=0.6cm]{Cindytool/single-add.png}  点を加ãˆã‚‹\\
-\includegraphics[bb=0 0 27 21 , width=0.6cm]{Cindytool/multi-add-line.png}  直線を加ãˆã‚‹\\
-\includegraphics[bb=0 0 27 21 , width=0.6cm]{Cindytool/segment.png}  線分を加ãˆã‚‹\\
-\includegraphics[bb=0 0 27 21 , width=0.6cm]{Cindytool/middle.png}  中点を加ãˆã‚‹\\
-\includegraphics[bb=0 0 27 21 , width=0.6cm]{Cindytool/intersection.png}  交点を加ãˆã‚‹\\
-\includegraphics[bb=0 0 27 21 , width=0.6cm]{Cindytool/multi-add-parallel.png}  平行線を加ãˆã‚‹\\
-\includegraphics[bb=0 0 27 21 , width=0.6cm]{Cindytool/multi-add-perp.png}  垂線を加ãˆã‚‹\\
-\includegraphics[bb=0 0 27 21 , width=0.6cm]{Cindytool/bisector.png}  角ã®äºŒç­‰åˆ†ç·šã‚’加ãˆã‚‹\\
-\includegraphics[bb=0 0 27 21 , width=0.6cm]{Cindytool/multi-add-circle.png}  円を加ãˆã‚‹\\
-\includegraphics[bb=0 0 27 21 , width=0.6cm]{Cindytool/circle-by-radius.png}  åŠå¾„ã¤ã円を加ãˆã‚‹\\
-\includegraphics[bb=0 0 27 21 , width=0.6cm]{Cindytool/ellipse-by-foci.png}  焦点ã¨é€šã‚‹ç‚¹ã§æ±ºã¾ã‚‹æ¥•å††\\
-\includegraphics[bb=0 0 27 21 , width=0.6cm]{Cindytool/hyperbola-by-foci.png}  焦点ã¨é€šã‚‹ç‚¹ã§æ±ºã¾ã‚‹åŒæ›²ç·š\\
-\includegraphics[bb=0 0 27 21 , width=0.6cm]{Cindytool/parabola-by-foci.png}  焦点ã¨æº–ç·šã§æ±ºã¾ã‚‹æ”¾ç‰©ç·š\\
-\includegraphics[bb=0 0 27 21 , width=0.6cm]{Cindytool/polygon.png}  多角形を加ãˆã‚‹\\
-\includegraphics[bb=0 0 27 21 , width=0.6cm]{Cindytool/angle-mark.png}  角ã«å°ã‚’ã¤ã‘ã‚‹\\
-\includegraphics[bb=0 0 27 21 , width=0.6cm]{Cindytool/angle.png}  角度を測る\\
-\includegraphics[bb=0 0 27 21 , width=0.6cm]{Cindytool/delete.png}  é¸æŠžã—ãŸè¦ç´ ã‚’消去ã™ã‚‹\\
-\includegraphics[bb=0 0 27 21 , width=0.6cm]{Cindytool/select-points.png}  点をã¾ã¨ã‚ã¦é¸æŠžã™ã‚‹\\
-\includegraphics[bb=0 0 27 21 , width=0.6cm]{Cindytool/select-lines.png}  線分をã¾ã¨ã‚ã¦é¸æŠžã™ã‚‹\\
- \\
-設定メニューã‹ã‚‰ã€Œä¸Šã®ãƒ„ールãƒãƒ¼ã®ã‚«ã‚¹ã‚¿ãƒžã‚¤ã‚ºã€ã‚’é¸ã³ï¼Œã€Œã™ã¹ã¦è¡¨ç¤ºã€ã«ã™ã‚‹ã¨ç¾ã‚Œã‚‹ãƒ„ール\\
-\includegraphics[bb=0 0 27 21 , width=0.6cm]{Cindytool/mirror.png}  é¡æ˜ \\
-\includegraphics[bb=0 0 27 21 , width=0.6cm]{Cindytool/polar-of-point.png}  点ã®æ¥µç·šã‚’æã\\
- \\
-ç”»é¢ãƒ„ール(下ã®ãƒ„ールãƒãƒ¼ï¼‰\\
-\includegraphics[bb=0 0 27 21 , width=0.6cm]{Cindytool/translate-view.png}  原点を移動ã™ã‚‹\\
-\includegraphics[bb=0 0 27 21 , width=0.6cm]{Cindytool/zoom-in.png}  矩形領域を画é¢ã‚µã‚¤ã‚ºã«æ‹¡å¤§\\
-\includegraphics[bb=0 0 27 21 , width=0.6cm]{Cindytool/zoom-out.png}  画é¢ã‚’矩形領域サイズã«ç¸®å°\\
-\includegraphics[bb=0 0 27 21 , width=0.6cm]{Cindytool/snap.png}  軸ã¨æ–¹çœ¼ã‚’表示ã—æ ¼å­ç‚¹ã«ã‚¹ãƒŠãƒƒãƒ—ã™ã‚‹\\
-
-\subsection{用語解説}
-インシデント\\
- 点ãŒæ›²ç·šä¸Šã«ä¹—ã£ã¦ã„る状態を表ã™ã€‚\\
-インスペクタ\\
- 幾何è¦ç´ ã®å±žæ€§ãªã©ã‚’管ç†ã™ã‚‹ã‚¦ã‚£ãƒ³ãƒ‰ã‚¦ã€‚\\
-幾何è¦ç´ ã€€ã€€\\
- Cinderellaã®ä½œå›³ãƒ„ールã§ä½œå›³ã—ãŸç‚¹ã‚„ç›´ç·šãªã©ã®è¦ç´ \\
-幾何点 \\
- 幾何è¦ç´ ã¨ã—ã¦ã®ç‚¹ã€‚マウスドラッグã§å‹•ã‹ã™ã“ã¨ãŒã§ãる。\\
-固定点\\
- マウスドラッグã§ç§»å‹•ã™ã‚‹ã“ã¨ã®ã§ããªã„点\\
-コンソール\\
- スクリプトエディタã®å³ä¸‹ã®ã‚¨ãƒªã‚¢ã€‚\\
-自由点\\
- マウスドラッグã§ä»»æ„ã«å‹•ã‹ã™ã“ã¨ã®ã§ãる点。\\
-スロット  \\
- Cindyscriptã§ï¼Œã‚¹ã‚¯ãƒªãƒ—トを書ãã¨ã,実行タイミングã«ã‚ˆã‚Šã«åˆ†é¡žã™ã‚‹ã‚‚ã®\\
-スナップ \\
- マウスãƒã‚¤ãƒ³ãƒˆãŒæ ¼å­ç‚¹ã®è¿‘ãã«æ¥ã‚‹ã¨æ ¼å­ç‚¹ä¸Šã«ã´ã£ãŸã‚Šç§»å‹•ã™ã‚‹ã€‚\\
- Cinderellaã®ç”»é¢ã®ä¸‹æ–¹ãƒ„ールã®ã†ã¡ï¼Œç£çŸ³ã‚¢ã‚¤ã‚³ãƒ³ã«ã‚ˆã‚Šã“ã®ãƒ¢ãƒ¼ãƒ‰ã«ãªã‚‹ã€‚\\
-
-\newpage
-%=======================
-\section{定数ã¨å¤‰æ•°}
-KeTCindy 㯠Cindyscript ã§è¨˜è¿°ã•ã‚Œã¦ã„る。CindyScriptã§ã¯ï¼Œå¤‰æ•°åã¯å¤§æ–‡å­—ã¨å°æ–‡å­—を区別ã™ã‚‹ãŒï¼Œé–¢æ•°åã¯å¤§æ–‡å­—å°æ–‡å­—を区別ã—ãªã„。Cindyscriptã®ãƒžãƒ‹ãƒ¥ã‚¢ãƒ«ã§ã¯çµ„ã¿è¾¼ã¿é–¢æ•°åã¯ã™ã¹ã¦å°æ–‡å­—ã§è¡¨è¨˜ã•ã‚Œã¦ã„る。例示ã•ã‚ŒãŸã‚¹ã‚¯ãƒªãƒ—トã§ã¯ï¼Œå¤‰æ•°ã‚‚å°æ–‡å­—ã§ã‚る。ãã“ã§ï¼ŒKeTCindyã§ã¯ï¼Œçµ„ã¿è¾¼ã¿ã®å¤‰æ•°å・関数åã¨åŒºåˆ¥ã—ã‚„ã™ã„よã†ã«ï¼Œæ¬¡ã®è¦å‰‡ã«ã‚ˆã‚Šåå‰ã‚’付ã‘ã¦ã„る。\\
- \\
- ・グローãƒãƒ«ãªå¤‰æ•°ã¯ã™ã¹ã¦å¤§æ–‡å­—ã‹ï¼Œå¤§æ–‡å­—ã§å§‹ã¾ã‚‹ã‚‚ã®ã¨ã™ã‚‹ã€‚\\
- ・局所変数ã¯å°æ–‡å­—ã§ï¼Œé–¢æ•°å®šç¾©ã®å†’頭㧠regional() ã«ã‚ˆã‚Šå±€æ‰€å¤‰æ•°ã¨ã—ã¦å®£è¨€ã™ã‚‹ã€‚\\
- ・関数åã¯å¤§æ–‡å­—ã§å§‹ã¾ã‚‹ã€‚\\
- \\
- ãªãŠï¼ŒCindyScriptã¯é–¢æ•°åž‹ãƒ—ログラミング言語ã§ã‚り,命令ã¯ã™ã¹ã¦é–¢æ•°ã‚’用ã„ã¦è¡Œã‚れるãŒï¼Œæœ¬ãƒžãƒ‹ãƒ¥ã‚¢ãƒ«ã§ã¯ï¼Œæ–‡è„ˆã«ã‚ˆã‚Šã€Œã‚³ãƒžãƒ³ãƒ‰ã€ã¨ã„ã†è¡¨ç¾ã‚‚用ã„る。\\
- \\
-{\bf 定数} \\
- ã¤ãŽã®ã‚‚ã®ãŒCindyScriptã«äºˆç´„ã•ã‚Œã¦ãŠã‚Šï¼Œå°æ–‡å­—ã§è¡¨ã•ã‚Œã¦ã„る。\\
-
-\begin{tabbing}
-12345678\=\kill
-  pi  \>:円周率。Scilabã«ã¯ \% pi ã§æ›¸ã出ã•ã‚Œã‚‹ã€‚\\
-  i  \> :虚数å˜ä½ã€‚Scilabã«ã¯ \% i ã§æ›¸ã出ã•ã‚Œã‚‹ã€‚\\
-\end{tabbing}
- 一般ã®ãƒ—ログラミングã§ã¯å¤‰æ•° i をループ変数ã¨ã—ã¦ã‚ˆã使ã†ãŒï¼ŒCindyScript ã§ã¯ i ã¯äºˆç´„定数ã¨è€ƒãˆï¼Œå¤‰æ•°ã¨ã—ã¦ç”¨ã„ãªã„ã“ã¨ã‚’勧ã‚る。ãŸã ã—,変数ã¨ã—ã¦ã¾ã£ãŸã使ãˆãªã„ã‚ã‘ã§ã¯ãªã,変数ã¨ã—ã¦ç”¨ã„ãŸå¾Œï¼Œå¿…è¦ãŒã‚ã‚Œã°ã€€\verb|i=complex([0,1])|  を実行ã™ã‚‹ã“ã¨ã«ã‚ˆã‚Šè™šæ•°å˜ä½ã¨ã—ã¦å†å®šç¾©ã™ã‚‹ã“ã¨ãŒã§ãる。\\
- \\
-{\bf 予約変数}\\
- KeTCindy ãŒå†…部的ã«ä½¿ç”¨ã™ã‚‹äºˆç´„変数ãŒã‚る。ãã®ã†ã¡æ¬¡ã®ã‚‚ã®ã¯ãƒ¦ãƒ¼ã‚¶ãƒ¼ãŒå€¤ã‚’変更ã¾ãŸã¯è¨­å®šã™ã‚‹ã“ã¨ãŒã§ãる。設定㯠Initalization スロットã®ã€ŒKETlibã€ãƒšãƒ¼ã‚¸ã§ãŠã“ãªã†ãŒï¼ŒFhead ã¨Texparent 㯠Draw スロットã§ã‚‚よã„。\\
-\begin{tabbing}
-1234567890123\=45678989012345678901234567890123\=\kill
- Fhead \>書ã出ã•ã‚Œã‚‹ãƒ•ã‚¡ã‚¤ãƒ«åã®é ­éƒ¨\\
- Texparent \>親プロセスã®ãƒ•ã‚¡ã‚¤ãƒ«å\\
- Dirhead \>パスã®é ­éƒ¨\\
- Dirlib \>ライブラリ ketlib ã®ãƒ‘ス\\
- Dirbin \>ketbin ã®ãƒ‘ス\\
- Dirwork \>作業ディレクトリã®ãƒ‘ス\\
- Shellfile \>シェルファイルå\\
-\end{tabbing}
- 以下ã®äºˆç´„変数ã¯ï¼Œãƒ©ã‚¤ãƒ–ラリãŒä½¿ç”¨ã™ã‚‹ã‚°ãƒ­ãƒ¼ãƒãƒ«å¤‰æ•°ã§ã‚ã‚‹ã®ã§ï¼Œãƒ¦ãƒ¼ã‚¶ãƒ¼ã¯ã“れらã®å¤‰æ•°åを使ã£ã¦ã¯ã„ã‘ãªã„。ãªãŠï¼Œå¤‰æ•°ã¯å¤§æ–‡å­—å°æ–‡å­—を区別ã™ã‚‹ã®ã§ï¼Œå°æ–‡å­—ã§æ›¸ã分ã«ã¯æ”¯éšœã¯ãªã„。ã—ãŸãŒã£ã¦ï¼Œãƒ¦ãƒ¼ã‚¶ãƒ¼ãŒä½œã‚‹ãƒ—ログラムã§ã¯ï¼Œã™ã¹ã¦å°æ–‡å­—ã‹ï¼Œå…ˆé ­ã ã‘ãŒå¤§æ–‡å­—ã®å¤‰æ•°ã‚’使ã†ã“ã¨ã‚’勧ã‚る。\\
- \\
-ADDAXES, ArrowlineNumber, ArrowheadNumber, BezierNumber,\\
-COM0thlist, COM1stlist, COM2ndlist, Dq, FUNLIST,\\
-Fnamesc ,Fnamescibody,Fnameout,Fnametex,GDATALIST,\\
-GLIST, GCLIST, GOUTLIST, KCOLOR, KETPICCOUNT, \\
-KETPICLAYER, LETTERlist, LFmark, MilliIn, PenThick, \\
-PenThickInit, POUTLIST, SCALEX, SCALEY, SCIRELIST, \\
-SCIWRLIST, TenSize, TenSizeInit, ULEN, XMAX, XMIN, YaSize,\\
-YaThick, YMAX, YMIN, VLIST
-
-\newpage
-
-%設定・定義 ==================================
-\section{関数リファレンス}
-\subsection{設定・定義}
-
-\begin{description}
-
-\hypertarget{addax}{}
-\item[関数] Addax(0ã¾ãŸã¯1)
-\item[機能] 座標軸を書ãã‹ã©ã†ã‹ã‚’定ã‚ã‚‹
-\item[説明] Scilabã®Closefile() ã®å¼•æ•°ã«å¯¾å¿œã™ã‚‹ã€‚\\
- 引数ãŒ0ã®ã¨ã座標軸を書ã‹ãªã„(デフォルトã¯1)
-\begin{verbatim}
- Listplot([B,A,C]);
- Letter([A,"ne","A",B,"se","B",C,"se","C"]);
-\end{verbatim}
- \\
- \input{Fig/addax1}
-\begin{verbatim}
- Listplot([B,A,C,B]);
- Letter([A,"ne","A",B,"sw","B",C,"se","C"]);
- Addax(0);
-\end{verbatim}
- \input{Fig/addax2}\\
-\begin{flushright} \hyperlink{functionlist}{$\Rightarrow$関数一覧}\end{flushright}
- \\
-\hypertarget{addcolor}{}
-\item[関数] Addcolor(æ画コマンド , カラーコード)
-\item[機能] æ画コマンドã§æã‹ã‚Œã‚‹ç·šã‚’指定色ã§æã
-\item[説明] æ画コマンドã¯ãƒ€ãƒ–ルクウォートã§ããã£ã¦æ–‡å­—列ã¨ã™ã‚‹ã€‚æ画コマンド内ã«ãƒ€ãƒ–ルクウォートãŒã‚ã‚‹å ´åˆã¯ï¼Œã‚·ãƒ³ã‚°ãƒ«ã‚¯ã‚¦ã‚©ãƒ¼ãƒˆã«ã™ã‚‹ã€‚optionã®ã‚ã‚‹æ画コマンドã§optionを指定ã—ãªã„å ´åˆã¯ï¼Œå¿…ãšç©ºãƒªã‚¹ãƒˆã‚’optionã¨ã—ã¦æ›¸ã。æ画色ã¯ï¼ŒRGBã¾ãŸã¯CMYK。æ画色ã¯ç”»é¢ã¨å›³ç‰ˆã®ä¸¡æ–¹ã«æœ‰åŠ¹ã€‚\\
- \\
- 例:\verb|Addcolor("Plotdata('2','x^2','x',[])",[1,1,0]);|\\
- \\
- \\
-\hypertarget{colorcode}{}
-\item[関数] Colorcode(文字1,文字2, カラーコード)
-\item[機能] 文字1ã‹ã‚‰æ–‡å­—ï¼’ã¸ã‚«ãƒ©ãƒ¼ã‚³ãƒ¼ãƒ‰ã‚’変æ›ã™ã‚‹ã€‚戻り値ã¯å¤‰æ›ã•ã‚ŒãŸã‚³ãƒ¼ãƒ‰ã€‚
-\item[説明] 文字ã¯ï¼Œ"rgb","cmyk","hsv"ã®ã„ãšã‚Œã‹ã€‚\\
- \\
-例:\verb|Colorcode("rgb","cmyk",[1,0,0]); |\\
-     RGBコードã®[1,0,0]ã‚’CMYKã«å¤‰æ›ã—ãŸã‚³ãƒ¼ãƒ‰ã‚’è¿”ã™\\
-  \verb|Colorcode("cmyk","rgb",[0,1,1,0]);|\\
-    CMYKコードã®[0,1,1,0]ã‚’RGBã«å¤‰æ›ã—ãŸã‚³ãƒ¼ãƒ‰ã‚’è¿”ã™\\
-  \verb|Colorcode("rgb","hsv",[1,0,0]);|\\
-    RGBコードã®[1,0,0]ã‚’HSVã«å¤‰æ›ã—ãŸã‚³ãƒ¼ãƒ‰ã‚’è¿”ã™\\
- \\
- \\
-\hypertarget{deffun}{}
-\item[関数] Deffun(関数å , 定義ã®ãƒªã‚¹ãƒˆ)
-\item[機能] 関数を定義ã™ã‚‹
-\item[説明] 関数定義ã¯ï¼ŒCindyScript ã®é–¢æ•°å®šç¾© f(x):=å¼ ã§ã‚‚ã§ãã‚‹ãŒï¼ŒDeffun()を使ã†ã“ã¨ã«ã‚ˆã‚Šï¼ŒScilab å´ã«æ¸¡ã™ãƒ•ã‚¡ã‚¤ãƒ«ã«\\
- function 定義å¼ã€€endfunction;\\
- ãŒè¨˜è¿°ã•ã‚Œã‚‹ã®ã§ï¼ŒScilabå´ã§ã“ã®é–¢æ•°ã‚’利用ã™ã‚‹ã“ã¨ãŒã§ãる。目的ã«å¿œã˜ã¦ä½¿ã„分ã‘ã‚‹ã¨ã‚ˆã„。\\
- å¼ã®ãƒªã‚¹ãƒˆã«ã¯ if文を用ã„ãŸå ´åˆåˆ†ã‘ã®é–¢æ•°å¼ã‚’記述ã™ã‚‹ã“ã¨ã‚‚ã§ãる。\\
- \\
-例:$f(x)=\dfrac{1}{x^2+1}$ を定義ã—,グラフをæã„ã¦x=1 ã«ãŠã‘る微分係数を求ã‚る。
-\begin{verbatim}
-   Deffun("f(x)",["regional(y)","y=1/(x\verb|^|2+1)","y"]);
-   Plotdata("1","f(x)","x");
-   coeff=Derivative("f(x)","x",1);
-\end{verbatim}
-  点Aを作図ã—ã¦ãŠãã¨ï¼Œç‚¹Aをドラッグã—ãŸã¨ã常ã«æ›²ç·šä¸Šã«ä¹—ã›ï¼Œãã®ç‚¹ã§ã®\\
-  接線を引ãã“ã¨ãŒã§ãる。
-\begin{verbatim}
-   A.xy=[A.x,f(A.x)];
-   coeff=Derivative("f(x)","x",A.x);
-   Lineplot("1",[A,[A.x+1,A.y+coeff]]);
-\end{verbatim}
-     \input{Fig/deffun}\\
-
- 例:$f(x)=\left\{\begin{array}{l}1  (x\geqq 0)\\ -1  (x<0)\\ \end{array}\right.$   を定義ã™ã‚‹ã€‚
-\begin{verbatim}
-  Deffun("f(x)",["regional(y)","if(x>=0,y=1,y=-1)","y"]);
-\end{verbatim}
- if æ–‡ã¯ãƒã‚¹ãƒˆã™ã‚‹ã“ã¨ãŒã§ãる。
-\begin{verbatim}
-  Deffun("f(x)",["regional y","if(x>1,y=1,
-        if(x>-1,y=x,y=-1))","y"]);
-\end{verbatim}
- \\
-
-
-\hypertarget{defvar}{}
-\item[関数] Defvar(文字列)
-\item[機能] 変数を定義ã™ã‚‹
-\item[説明] 変数ã®å®šç¾©ã‚’Scilabã¨å…±æœ‰ã™ã‚‹ã€‚ã¾ãŸï¼ŒScilabã®Assignリストã«è¿½åŠ ã™ã‚‹ã€‚\\
- \\
-   例:\verb|Defvar("const=3");|
- \\
-\hypertarget{drwxy}{}
-\item[関数] Drwxy()
-\item[機能] 座標軸をæã
-\item[説明] 座標軸ã¯ãƒ‡ãƒ•ã‚©ãƒ«ãƒˆã§ã¯æœ€å¾Œã«æã‹ã‚Œã‚‹ãŒï¼Œåº§æ¨™è»¸ä¸Šã«ç™½æŠœãã®ç‚¹ã‚’表示ã™ã‚‹ãªã©ï¼Œå…ˆã«æãã“ã¨ãŒå¿…è¦ãªå ´åˆã«ç”¨ã„る。\\
-
-例:点$(-\pi,\ 0)$ã¨$(\pi,\ 0)$を白抜ãã®ç‚¹ã§è¡¨ç¤ºã™ã‚‹ã€‚
-\begin{verbatim}
-  Setax([7,"se"]);
-  Setpt(8);
-  Drwpt([-pi,0],0);
-  Drwxy();
-  Plotdata("1","sin(x)","x",["dr","Num=300"]);
-  Drwpt([[pi,0],0]);
-\end{verbatim}
-
- ã“ã®ã‚¹ã‚¯ãƒªãƒ—トã§ã¯ï¼ŒDrwpt([-pi,0],0); を実行ã—ãŸã®ã¡åº§æ¨™è»¸ã‚’æã,次ã«ï¼Œ$y=\sin x$ ã®ã‚°ãƒ©ãƒ•ã‚’æã„ã¦ã‹ã‚‰ Drwpt([pi,0],0);を実行ã™ã‚‹ã®ã§ï¼Œç‚¹($-\pi$,0) ã®ä¸Šã‚’座標軸ãŒé€šã‚Šï¼Œç‚¹($\pi$,0)ã¯åº§æ¨™è»¸ã¨ã‚°ãƒ©ãƒ•ã®ä¸Šã‚’通るã®ã§ç™½æŠœãã«ãªã‚‹ã€‚\\
-
-\input{Fig/drwxy}
- \\
- \\
-\hypertarget{fontsize}{}
-\item[関数] Fontsize(記å·)
-\item[機能] フォントサイズを設定ã™ã‚‹
-\item[説明] 次㫠Fontsize() を実行ã™ã‚‹ã¾ã§æœ‰åŠ¹\\
- 記å·ã¯ï¼Œ"t" , "ss" , "f", "s" , "n" , "la", "La", "LA", "h" , "H"\\
-
-例:å°ã•ã„æ–¹ã‹ã‚‰ã„ãã¤ã‹è¡¨ç¤ºã™ã‚‹ã€‚
-\begin{verbatim}
-  Ptsize(2);
-  Drawpoint([A,B,C,D,E,F,G]);
-  Fontsize("t"); Letter([A,"s2","A"]);
-  Fontsize("ss"); Letter([B,"s2","B"]);
-  Fontsize("s"); Letter([C,"s2","C"]);
-  Fontsize("la"); Letter([D,"s2","D"]);
-  Fontsize("La"); Letter([E,"s2","E"]);
-  Fontsize("h"); Letter([F,"s2","F"]);
-  Fontsize("H"); Letter([G,"s2","G"]);
-\end{verbatim}
-  \input{Fig/fontsize}
-
-\begin{flushright} \hyperlink{functionlist}{$\Rightarrow$関数一覧}\end{flushright}
-\newpage
-\hypertarget{ketinit}{}
-\item[関数] Ketinit(options)
-\item[機能] \ketcindy ã‚’åˆæœŸåŒ–ã™ã‚‹
-\item[説明] opution 縦方å‘ã®å€çŽ‡ã¨æ画領域を設定\\
-
- 例:\verb|Ketinit()| :å€çŽ‡ï¼‘,æ画領域 $-5 \leqq x \leqq 5 , -5 \leqq y \leqq 5$(デフォルト)\\
-   \verb|Ketinit(2)| : å€çŽ‡ï¼’,æ画領域 $-5 \leqq x \leqq 5 , -5 \leqq y \leqq 5$\\
-   \verb|Ketinit(2,[-2,3],[-2,4])| : å€çŽ‡ï¼’,æ画領域 $-2 \leqq x \leqq 3 , -2 \leqq y \leqq 4$\\
-
- æ画領域(TeXã«å‡ºåŠ›ã™ã‚‹é ˜åŸŸ)ã¯åˆ¶å¾¡ç‚¹SW(左下)ã¨NE(å³ä¸Šï¼‰ã‚’対角ã¨ã™ã‚‹çŸ©å½¢é ˜åŸŸã€‚æ画領域を指定ã™ã‚‹ã¨ï¼Œåˆ¶å¾¡ç‚¹ãŒãªã‘ã‚Œã°ãã®ä½ç½®ã«ä½œã‚Šï¼Œã™ã§ã«å­˜åœ¨ã™ã‚‹å ´åˆã¯ä½•ã‚‚ã—ãªã„。作æˆã•ã‚ŒãŸåˆ¶å¾¡ç‚¹ã¯ãƒ‰ãƒ©ãƒƒã‚°ã—ã¦æ画領域を変更ã™ã‚‹ã“ã¨ãŒã§ãる。\\
- å€çŽ‡ã¯ï¼ŒSetscaling(å€çŽ‡)を実行ã™ã‚‹ã®ã¨åŒã˜ã€‚ãŸã ã—,Cinderellaã§ä½œå›³ã—ãŸå¹¾ä½•è¦ç´ ã«å¯¾ã—ã¦ã¯ç„¡åŠ¹ã€‚(Setscaling()ã®é …å‚ç…§)\\
-
-\begin{flushright} \hyperlink{functionlist}{$\Rightarrow$関数一覧}\end{flushright}
-
-\hypertarget{ptsie}{}
-\item[関数] Ptsize(n) , Setpt(n)
-\item[機能] 表示ã™ã‚‹ç‚¹ã®å¤§ãã•ã‚’設定ã™ã‚‹ã€‚
-\item[説明] Ptsize() 㨠Setpt() ã¯åŒã˜ã§ã‚る。デフォルトã¯ï¼‘\\
- Ptsize()ã¯CindyScript風ã®èªžæ³•ï¼ŒSetpt() 㯠\ketpic 風ã®èªžæ³•\\
- 全体ã®ç‚¹ã®å¤§ãã•ã‚’設定ã™ã‚‹ã€‚点ã®å¤§ãã•ã‚’個々ã«å¤‰ãˆãŸã„å ´åˆã¯ï¼Œsizeオプションを用ã„る。\\
-
-例:1ã‹ã‚‰ï¼”ã¾ã§ã®ç‚¹ã®å¤§ãã•\\
- ã‚らã‹ã˜ã‚,Cinderellaã®ä½œå›³ãƒ„ールã§ç‚¹A,B,C,Dを作図ã—ã¦ãŠã。
-\begin{verbatim}
-  Pointdata("1",A,["size=1"]);
-  Pointdata("2",B,["size=2"]);
-  Pointdata("3",C,["size=3"]);
-  Pointdata("4",D,["size=4"]);
-\end{verbatim}
-
-\input{Fig/pointsize}\\
-
-\begin{flushright} \hyperlink{functionlist}{$\Rightarrow$関数一覧}\end{flushright}
-\newpage
-\hypertarget{setax}{}
-\item[関数] Setax()
-\item[機能] 座標軸ã®æ›¸å¼ã‚’設定ã™ã‚‹ã€‚
-\item[説明] Scilabã®ã¿ã§å®Ÿè¡Œã™ã‚‹ã€‚Cinderellaã®æç”»é¢ã«å映ã•ã‚Œãªã„。\\
-引数ã¯é †ç•ªã«\\
- 1. 軸ã®å½¢çŠ¶ï¼ˆç›´ç·šã¯ "l" ,矢å°ã¯ "a")デフォルトã¯ç›´ç·š\\
- 2. 横軸å デフォルト㯠$x$ \\
- 3. 横軸åã®ä½ç½®\\
- 4. 縦軸å デフォルトã¯$y$\\
- 5. 縦軸åã®ä½ç½®\\
- 6. 原点å デフォルトã¯O\\
- 7. 原点åã®ä½ç½®\\
-ãã‚Œãžã‚Œãƒ€ãƒ–ルクウォートã§ããる。\\
-ï¼—ã¤ã®å¼•æ•°ã®ã†ã¡n番目ã ã‘を指定ã™ã‚‹å ´åˆã¯ï¼Œ[n,"内容"]ã§æŒ‡å®šã§ãる。\\
-ã¾ãŸï¼Œå¾Œæ–¹ã¯ãƒ‡ãƒ•ã‚©ãƒ«ãƒˆãªã‚‰çœç•¥ã§ãる。\\
-
-  例:座標軸ã®å…ˆç«¯ã‚’矢å°ã«ã—,原点ã®åŒ—西ã«Oを書ã。\\
-    \verb|Setax(["a","","","","","","nw"]);|\\
-
-  例:原点ã®åŒ—西ã«Oを書ã。\\
-    \verb|Setax([7,"nw"]);|\\
-
-  例:先端を矢å°ã«ã—,横軸をθ,縦軸を$x$ã«ã—ã¦çŸ¢ã˜ã‚Šã®å·¦å´ã«æ›¸ã。\\
-    \verb|Setax(["a","θ","","x","w"]);|\\
- \\
-     \input{Fig/setax(theta)}
- \\
-
-\begin{flushright} \hyperlink{functionlist}{$\Rightarrow$関数一覧}\end{flushright}
-\newpage
-\hypertarget{definecolor}{}
-\item[関数] Definecolor(色å , 定義ã®ãƒªã‚¹ãƒˆ)
-\item[機能] 色åを定義ã™ã‚‹
-\item[説明] ユーザー命åã®è‰²åを定義ã™ã‚‹ã€‚定義リスト㯠RGBã¾ãŸã¯CMYKã®ãƒªã‚¹ãƒˆ\\
- å„色ï¼ã€œï¼‘ã®ç¯„囲ã§æŒ‡å®šã™ã‚‹ã€‚定義ã—ãŸè‰²åã¯ï¼ŒSetcolor(color,options) ã§ä½¿ã†ã“ã¨ãŒã§ãる。ãªãŠï¼ŒKeTCindyã§ã¯ï¼Œ68色を色åã§ä½¿ã†ã“ã¨ãŒã§ãる。次㮠Setcolor(color,options) å‚照)\\
- \\
- 例:暗ã„紫色を darkmaz ã®å称ã§å®šç¾©ã—ã¦ä½¿ã†ã€‚
-\begin{verbatim}
-   Definecolor("darkmaz",[0.8,0,0.8]);
-   Setcolor("darkmaz");
-\end{verbatim}
-\hypertarget{setcolor}{}
- \\
- \\
-\item[関数] Setcolor(color,options)
-\item[機能] æ画色ã®è¨­å®š
-\item[説明] 引数colorã¯ã‚«ãƒ©ãƒ¼ã‚³ãƒ¼ãƒ‰ã¾ãŸã¯è‰²ã®å称。\\
- カラーコードã¯RGBã¾ãŸã¯CMYKをリストã§ä¸Žãˆã‚‹ã€‚å„色ï¼ã€œï¼‘。\\
- 色ã®å称ã¯æ¬¡é ã®68色ãŒæŒ‡å®šã§ãる。ãŸã ã—,Cinderellaã®ç”»é¢ã«ã¯è‰²ã¯å映ã•ã‚Œãªã„。\\
- colorã«è‰²ã®å称を用ã„ãŸå ´åˆã¯ï¼Œoption ã¨ã—ã¦ï¼Œé€æ˜Žåº¦ã‚’ï¼ã€œï¼‘ã®æ•°ã§æŒ‡å®šã§ãる。1ãŒæœ€ã‚‚濃ã,ï¼ã¯çµæžœã¨ã—ã¦è‰²å¡—ã‚Šã‚’ã—ãªã„。\\
- \\
-例 Cinderellaã®æ画ツールã¨CindyScriptã§ç·šåˆ†AB,ACã‚’60°ã®è§’ã‚’ãªã™ã‚ˆã†ã«æã„ã¦ãŠã,点Dã¨Eを弧ã®ä¸¡ç«¯ã«ãªã‚‹ã‚ˆã†ã«è¨­å®šã—ã¦
-\begin{verbatim}
-   Setcolor([1,0,0]);
-   Circledata([A,D],["Rng=[0,pi/3]"]);
-   Arrowhead(E,[-1,0.8],[2,1]);
-\end{verbatim}
- を実行ã™ã‚‹ã¨ï¼ŒçŸ¢ã˜ã‚Šã¤ãã®å¼§ã‚’赤ã§è¡¨ç¤ºã™ã‚‹ã“ã¨ãŒã§ãる。\\
- 1行目ã¯ï¼Œ\verb|Setcolor("red");| ã§ã‚‚よã„。\\
- ãŸã ã—,Cinderellaã®æç”»é¢ã§ã¯ç€è‰²ã•ã‚Œãªã„。\\
- æç”»é¢ã§ã‚‚ç€è‰²ã—ãŸã„å ´åˆã¯ï¼Œã‚ªãƒ—ション \verb|"color->[R,G,B]"| を用ã„る。\\
- 上ã®ä¾‹ã®å ´åˆï¼Œ
-\begin{verbatim}
-  Circledata([A,D],["Rng=[0,pi/3]","color->[1,0,0]"]);
-  Arrowhead(E,[-1,0.8],[2,1,"color->[1,0,0]"]);
-\end{verbatim}
- ã¨ã™ã‚Œã°ï¼Œæç”»é¢ã§ã‚‚赤ã§è¡¨ç¤ºã•ã‚Œã‚‹ã€‚\\
-
-      \includegraphics[width=3.5cm,bb=0 0 161 134]{Fig/setcolor.pdf}
- \\
- \\
-\scalebox{0.9}{\input{Fig/colortable1-34}}
-
-\newpage
- \\
- \\
- \\
-\scalebox{0.9}{\input{Fig/colortable35-68}}
- \\
- \\
-\begin{flushright} \hyperlink{functionlist}{$\Rightarrow$関数一覧}\end{flushright}
-\newpage
-\hypertarget{setmarklen}{}
-\item[関数] Setmarklen(数) 
-\item[機能] 座標軸ã®ç›®ç››ã®é•·ã•ã‚’設定ã™ã‚‹
-\item[説明] Htickmark() , Vtickmark() ã§åº§æ¨™è»¸ã«ç›®ç››ã‚’入れるã¨ã,ãã®é•·ã•ã‚’設定ã™ã‚‹ã€‚ \\
-    ⇒ \hyperlink{htickmark}{Htickmark([横座標 , æ–¹å‘ , 文字])}\\
-
-\hypertarget{setorigin}{}
-\item[関数] Setorigin(座標)   
-\item[機能] æç”»ã™ã‚‹åº§æ¨™è»¸ã®åŽŸç‚¹ã‚’設定(移動)ã™ã‚‹
-\item[説明] æç”»ã™ã‚‹åº§æ¨™è»¸ã®åŽŸç‚¹ã‚’引数ã®åº§æ¨™ã¨ã™ã‚‹ã€‚座標ã¯ç‚¹ã®è­˜åˆ¥åã§ã‚‚よã„。\\
-
- 例:原点を (3,2) ã¨ã—ã¦åº§æ¨™è»¸ã‚’æã。\\
-    \verb|Setorigin([3,2]);|\\
-   原点を点Aã®ä½ç½®ã«ã—ã¦åº§æ¨™è»¸ã‚’æã。\\
-    \verb|Setorigin(A);| \\
-
- 注æ„:座標軸ã¨ã¨ã‚‚ã«ï¼ŒåŽŸç‚¹ã®O,軸åãªã©ã‚‚移動ã™ã‚‹ãŒï¼Œåº§æ¨™ç³»ãŒå¤‰æ›´ã•ã‚Œã‚‹\\
-    ã‚ã‘ã§ã¯ãªã„。\\
-
- 例:原点ã¯(3,2)ã«ç§»å‹•ã™ã‚‹ãŒï¼Œã‚¹ã‚¯ãƒªãƒ—トã§ã¯ã‚‚ã¨ã®åº§æ¨™ç³»ã‚’使ã†ã€‚
-\begin{verbatim}
-   Setorigin([3,2]);
-   Listplot([A,B,C,A]);
-   Ptsize(3);
-   Drawpoint([1,1]);
-   Letter([[1,1],"s2","P"]);
-\end{verbatim}
- 左ãŒå®Ÿè¡Œæ™‚ã®Cinderellaã®ç”»é¢ï¼Œå³ãŒ\TeX ã®çµæžœã€‚\\
-
-   \includegraphics[bb=0 0 227 205 , width=4cm]{Fig/setorigin.png}  \input{Fig/setorigin}\\
- \\
-\hypertarget{setpen}{}
-\item[関数] Setpen(数)   
-\item[機能] 線ã®å¤ªã•ã‚’設定ã™ã‚‹\\
- \\[-5mm]
-\begin{flushright} \hyperlink{functionlist}{$\Rightarrow$関数一覧}\end{flushright}
- \\
-\hypertarget{setpt}{}
-\item[関数] Setpt(数)    
-\item[機能] 表示ã™ã‚‹ç‚¹ã®å¤§ãã•ã‚’設定ã™ã‚‹\\
-
-\hypertarget{setscaling}{}
-\item[関数] Setscaling(å€çŽ‡)
-\item[機能] 縦方å‘ã®å€çŽ‡ã‚’設定ã™ã‚‹
-\item[説明] 2次関数ã®å¿œç”¨å•é¡Œãªã©ã§ã¯ï¼Œã‚°ãƒ©ãƒ•ãŒç¸¦ã«å¤§ãããªã‚‹å ´åˆãŒã‚り,$y$軸方å‘ã®ã‚¹ã‚±ãƒ¼ãƒªãƒ³ã‚°ã‚’変ãˆã‚‹ã“ã¨ãŒã‚ˆãã‚る。次ã®ã‚¹ã‚¯ãƒªãƒ—トã¯ï¼Œ$f(x)=-x^2+10x$ ã®ã‚°ãƒ©ãƒ•ã‚’縦軸方å‘ã‚’åŠåˆ†ã«ã—ã¦æãã‚‚ã®ã§ã‚る。\\
-\begin{layer}{150}{0}
-\putnotese{80}{0}{\input{Fig/setscaling}}
-\end{layer}
- \\
-\begin{verbatim}
- Setscaling(0.5);
- A.xy=[0,25/4];
- B.xy=[5/2,25/4];
- C.xy=[5/2,0];
- Listplot([A,B],["do"]);
- Listplot([C,B],["do"]);
- Plotdata("1","-2*x^2+10*x","x");
- Letter([[5,0],"s2w","5",[0,25/2],"w2",
-    "$\frac{25}{2}$",C,"s4","$\frac{5}{2}$"]);
-\end{verbatim}
-%          \input{Fig/setscaling}\\
- ã“ã“ã§ï¼Œç‚¹A,Bã®åº§æ¨™ãŒ
-\begin{verbatim}
-  A.xy=[0,25/4];
-  B.xy=[5/2,25/4];
-\end{verbatim}
-ã¨ãªã£ã¦ã„ã‚‹ã“ã¨ã«æ³¨æ„ã•ã‚ŒãŸã„。$y$座標をã‚らã‹ã˜ã‚åŠåˆ†ã«ã—ã¦ã„る。ã™ãªã‚ã¡ï¼ŒCinderellaã§ä½œå›³ã—ãŸå¹¾ä½•è¦ç´ ã«å¯¾ã—ã¦ã¯Setscalingã¯ç„¡åŠ¹ã§ã‚る。ã“ã‚Œã¯ï¼ŒPutpoint関数を用ã„ã¦ç‚¹ã®ä½ç½®ã‚’決ã‚ã¦ã‚‚åŒã˜ã§ã‚る。\\
- ãŸã¨ãˆã°ï¼Œæ¬¡ã®ã‚¹ã‚¯ãƒªãƒ—トã§ã¯ï¼ŒCinderellaã®ç”»é¢ä¸Šã§ã¯ï¼’本ã®ç·šåˆ†ãŒç‚¹Bã§ã¤ãªãŒã‚‹ãŒï¼Œæ›¸ã出ã•ã‚ŒãŸ\TeX ã®å›³ã§ã¯é›¢ã‚Œã¦ã—ã¾ã†ã€‚
-\begin{verbatim}
-  Setscaling(0.5);
-  Putpoint("A",[0,2]);
-  Putpoint("B",[2,2]);
-  Listplot([A,B]);
-  Listplot("1",[[0,0],[2,2]]);
-\end{verbatim}
- \\
- \\
-%\newpage
-\hypertarget{setunitlen}{}
-\item[関数] Setunitlen(文字列)
-\item[機能] å˜ä½é•·ã‚’設定ã™ã‚‹ã€‚デフォルト㯠1cm\\
- \\
- \\
-\hypertarget{setwindow}{}
-\item[関数] Setwindow()
-\item[機能] 出力ã™ã‚‹æ画領域を設定ã™ã‚‹\\
-\item[説明] 出力ã™ã‚‹æ画領域ã¯ï¼Œé€šå¸¸ã¯ï¼’点SWã¨NEを対角ã¨ã™ã‚‹çŸ©å½¢é ˜åŸŸã§ã‚る。
-ã“ã®ï¼’点をドラッグã™ã‚‹ã“ã¨ã«ã‚ˆã‚Šãƒ“ジュアルã«æ画領域を決ã‚られる。\\
-ã—ã‹ã—,ã“ã‚Œã¨ã¯åˆ¥ã«å‡ºåŠ›ç¯„囲を設定ã—ãŸã„å ´åˆã«ã“ã®é–¢æ•°ã‚’用ã„る。\\
-ã¾ãŸï¼Œè¡¨ã‚’作æˆã—ãŸã¨ãã¯ï¼Œè¡¨ã®ç¯„囲ãŒå‡ºåŠ›ç¯„囲ã¨ã—ã¦å„ªå…ˆã•ã‚Œã‚‹ï¼ˆTabledata()を実行ã—ãŸã¨ã)ã®ã§ï¼Œè¡¨å¤–ã«å›³ã‚’æã„ãŸå ´åˆã¯ï¼Œæœ€å¾Œã«ã“ã®é–¢æ•°ã§å‡ºåŠ›ç¯„囲を指定ã—ã¦æ›¸ã出ã™ã€‚\\
- \\
-\end{description}
-
-\begin{flushright} \hyperlink{functionlist}{$\Rightarrow$関数一覧}\end{flushright}
-\newpage
-%第5節ï¼ï¼ï¼ï¼ï¼ï¼ï¼ï¼ï¼ï¼ï¼ï¼ï¼ï¼ï¼ï¼ï¼ï¼ï¼ï¼ï¼ï¼ï¼ï¼ï¼ï¼ï¼ï¼ï¼ï¼ï¼ï¼ï¼
-\subsection{æç”»}
-
-æ画関数ã¯æ›²ç·šãªã©ã‚’作図ã™ã‚‹é–¢æ•°ã§ã‚る。\\
- 基本的ãªæ›¸å¼ã¯\\
-   関数å(name , 点リストãªã© , options);\\
-ã§ã‚ã‚‹ãŒï¼Œnameã®ä¸è¦ãªã‚‚ã®ã‚‚ã‚る。\\
- nameã¯ï¼Œãƒ—ロットデータã®å称を指定ã™ã‚‹ã‚‚ã®ã§ï¼Œé–¢æ•°ã”ã¨ã«æ±ºã‚られãŸé ­éƒ¨ã®ã‚ã¨ã«ä»˜ã‘られる。nameãŒä¸è¦ã®å ´åˆã¯ \ketcindy ãŒè‡ªå‹•çš„ã«å称を作æˆã™ã‚‹ã€‚\\
- 点リストãªã©ã¯ï¼Œç‚¹ã®åº§æ¨™ï¼Œç‚¹ã®è­˜åˆ¥å,複数ã®ç‚¹ã®ãƒªã‚¹ãƒˆï¼Œè¤‡æ•°ã®ç‚¹ã‚’示ã™æ–‡å­—列ãªã©ãŒã‚り,関数ã«ã‚ˆã£ã¦ç•°ãªã‚‹ã€‚点ã¯Cinderellaã§ä½œå›³ã—ãŸå¹¾ä½•è¦ç´ ã®ç‚¹ã‚’利用ã§ãる。\\
- \\
- optionsã¯ï¼Œç·šç¨®ãƒ»è¡¨ç¤ºã™ã‚‹æ–‡å­—列・解åƒåº¦ãƒ»å‡ºåŠ›ã®æœ‰ç„¡ãªã©ã‚’指定ã™ã‚‹ã‚ªãƒ—ション群。
-\begin{tabbing}
-1234567890123\=\kill
- 線種ã¯ã¤ãŽã®ï¼”通り。デフォルトã¯å®Ÿç·šã€‚\\
-  "dr, n"   \>太ã•nã®å®Ÿç·šã§æã。Scilab ã®ãƒ•ã‚¡ã‚¤ãƒ«ã« Drwline() を出力ã™ã‚‹ã€‚\\
-  "da,m,n" \>ç ´ç·šã‚’æã。Scilab ã®ãƒ•ã‚¡ã‚¤ãƒ«ã« Dashline() を出力ã™ã‚‹ã€‚\\
-        \> mã¯ç ´ç·šã®é•·ã•ï¼Œnã¯ç ´ç·šã®é–“隔 (m,nã¯çœç•¥å¯)\\
-        \>m,n オプションã¯Cinderellaã®æç”»é¢ã«ã¯å映ã•ã‚Œãªã„。\\
-  "id,m,n" \>ギャップã‹ã‚‰ã¯ã˜ã¾ã‚‹ç ´ç·šã‚’æã。Scilab ã®ãƒ•ã‚¡ã‚¤ãƒ«ã« Invdashline() を出力ã™ã‚‹ã€‚\\
-  "do,m,n" \>点線ã§æã。Scilab ã®ãƒ•ã‚¡ã‚¤ãƒ«ã« Dottedline() を出力ã™ã‚‹ã€‚\\
-        \>mã¯ç‚¹ã®é–“隔,nã¯å¤ªã•ã€€(m,nã¯çœç•¥å¯)\\
- æ画色指定ã¯ï¼ŒCindyscriptã®è¡¨è¨˜ã¨åŒæ§˜ã§ï¼ŒRGBã®ãƒªã‚¹ãƒˆã§æŒ‡å®šã™ã‚‹ã‹ï¼Œè‰²åを用ã„る。\\
-  例:\verb|"color->[0,0.7,0]"| ã§æš—ã„ç·‘ã«ãªã‚‹ã€‚\\
- 出力ã®æœ‰ç„¡ã¯\\
-  "notex" \>Cinderellaç”»é¢ä¸Šã§è£œåŠ©ç·šã¨ã—ã¦ç”¨ã„ãŸå›³å½¢ã‚’Scilabã«å‡ºåŠ›ã—ãªã„\\
-  "nodisp" \>Cinderellaç”»é¢ä¸Šã«ã‚‚出力ã—ãªã„\\
-
-   "nodisp"ã¯ç”»é¢ä¸Šã«ã‚‚,Scilabã¸ã®ãƒ‡ãƒ¼ã‚¿ã«ã‚‚出力ã•ã‚Œãªã„ãŒï¼Œãƒ—ロットデータã¯ä½œæˆã•ã‚Œï¼Œ\\
-   ãれを戻り値ã¨ã™ã‚‹ã®ã§ï¼Œãƒ—ロットデータã ã‘を利用ã—ãŸã„å ´åˆã«æœ‰åŠ¹ã§ã‚る。\\
-   例 \verb|pdata=Circledata([A,B],["nodisp"]);|\\
-    ã¨ã—ã¦ï¼Œãƒ—ロットデータ pdata を処ç†ã™ã‚‹ã€‚\\
-\end{tabbing}
-
-\newpage
-\begin{description}
-
-\hypertarget{anglemark}{}
-\item[関数] Anglemark(点リスト , options)
-\item[機能] 点リスト[A,B,C]ã§ç¤ºã•ã‚ŒãŸè§’ã«å¼§ã®å½¢çŠ¶ã®è§’ã®å°ã‚’ã¤ã‘る。
-\item[説明] optionsã¯æ¬¡ã®é€šã‚Šã€‚\\
-  数値   角ã®å°ã®å¤§ãã•ã€‚デフォルトã¯ï¼‘\\
-  線種   "dr, n" , "da,m,n" , "do,m,n"\\
-  "Expr=文字" : 文字を入れる\\
-  "Expr=ä½ç½® , 文字" : ä½ç½®ã‚’指定ã—ã¦æ–‡å­—を入れる。ä½ç½®ã¯é ‚点ã‹ã‚‰ã®è·é›¢ã€‚\\
-
-例:三角形ã®å†…角ã«å°ã‚’ã„れ,文字を書ã込む。
-\begin{verbatim}
-   Listplot([A,B,C,A]);
-   Letter([A,"n1","A",B,"w1","B",C,"e1","C"]);
-   Anglemark([B,A,C]);
-   Anglemark([C,B,A],["Expr=\theta"]);
-   Anglemark([A,C,B],[2,"dr,3","Expr=2,\alpha"]);
-\end{verbatim}
- \input{Fig/anglemark}
-
-※角ã®å°ã«ã¯å¹³è¡Œå››è¾ºå½¢ã®å½¢çŠ¶ã®ã‚‚ã®ã‚‚ã‚る。Paramark() ã‚’å‚ç…§ã®ã“ã¨ã€‚\\
-
-\begin{flushright} \hyperlink{functionlist}{$\Rightarrow$関数一覧}\end{flushright}
-
-\hypertarget{arrowdata}{}
-\item[関数] Arrowdata(name,[始点 , 終点] , options)
-\item[機能] 2点間をçµã¶çŸ¢ç·šã‚’æã。プロットデータåã®é ­éƒ¨ã¯ ar
-\item[説明] name ã¯ï¼Œåº§æ¨™ã‚’数値ã§ä¸Žãˆã‚‹ã¨ãã«å¿…è¦ã€‚幾何è¦ç´ ã®è­˜åˆ¥åã§ä¸Žãˆã‚‹ã¨ãã¯ãªãã¦ã‚‚よã„。\\
- optionsã¯çŸ¢ã˜ã‚Šã®å½¢çŠ¶ãªã©ã®æŒ‡å®šã§\\
-  [ 矢ã˜ã‚Šã®å¤§ãã•, é–‹ã角, 矢ã˜ã‚Šä½ç½®, 線種,ç·šã®è¡¨ç¤ºè‰²]
- ã®ãƒªã‚¹ãƒˆã§ä¸Žãˆã‚‹ã€‚\\
- 開ã角ã¯60分法ã§ä¸Žãˆã‚‹ã€‚ãŸã ã—,° ã¯ã¤ã‘ãªã„。5未満ã®æ™‚ã¯18°ã®å€æ•°æŒ‡å®šã¨ã™ã‚‹ã€‚\\
- 矢ã˜ã‚Šä½ç½®ã¯ï¼Œç·šåˆ†ã®é•·ã•ã‚’1ã¨ã—ãŸå§‹ç‚¹ã‹ã‚‰ã®è·é›¢ã€‚\\
- ãŸã ã—,Cinderellaã®ç”»é¢ä¸Šã«ã¯å…¨ã¦ã¯å映ã•ã‚Œãªã„。ãŸã¨ãˆã°ï¼Œå¤ªã•æŒ‡å®šã‚’ã—ã¦ã‚‚太ã•ã¯åŒã˜ã€‚\\
-
- 例:線分ABを矢線ã«ã™ã‚‹ã€‚\\
-    \verb|Arrowdata([A,B]);|\\
-   始点ãŒ(2,0) , 終点ãŒ(4,3) ,開ã角45°,EFã®ä¸­ç‚¹ã«çŸ¢ã˜ã‚Šã®å…ˆç«¯\\
-    \verb|Arrowdata("1",[[2,0],[4,3]],[1,45,0.5]);|\\
-   大ãã•ï¼’,太ã•ï¼’\\
-    \verb|Arrowdata([C,D],[2,1,1,"dr,2"]);|\\
-   破線ã§å¤ªã•0.5\\
-    \verb|Arrowdata([E,F],["da,0.5"]);|\\
-   少ã—é–“ãŒç©ºã„ã¦å¤ªã„点線ã§ï¼ŒCinderellaã®ç”»é¢ä¸Šã§ã¯èµ¤ã§è¡¨ç¤ºã™ã‚‹ã€‚\\
-    \verb|Arrowdata([G,H],[2,1,"do,2,3","color-$>$[1,0,0]"]);| \\
-
-   \input{Fig/arrowdata}\\
-\\
-
-\begin{flushright} \hyperlink{functionlist}{$\Rightarrow$関数一覧}\end{flushright}
-
-\hypertarget{arrowhead}{}
-\item[関数] Arrowhead(点 , æ–¹å‘ , options) , Arrowhead(点 , プロットデータ,options)
-\item[機能] 点ã«çŸ¢ã˜ã‚Šã ã‘ã‚’æã
-\item[説明] 指定ã•ã‚ŒãŸä½ç½®ã«ï¼ŒæŒ‡å®šã•ã‚ŒãŸæ–¹å‘ã‚’å‘ã„ãŸçŸ¢ã˜ã‚Šã ã‘ã‚’æã。\\
- 点ã¯åº§æ¨™ã¾ãŸã¯å¹¾ä½•è¦ç´ å。方å‘ã¯åŽŸç‚¹ã‹ã‚‰è¦‹ã¦åº§æ¨™[a,b]ã®æ–¹å‘。\\
- options㯠[大ãã•ï¼ŒçŸ¢ã˜ã‚Šã®é–‹ã角,形状ã¨ä½ç½®] ã®ãƒªã‚¹ãƒˆã€‚\\
- 矢ã˜ã‚Šã®é–‹ã角ã¯60分法ã§ç‰‡å´åŠåˆ†ã®è§’。\\
- 形状ã¯ï¼Œ "f" :塗りã¤ã¶ã—ã®ä¸‰è§’形(デフォルト)ã¾ãŸã¯ã€€" l " : ラインã®ã¿ã€‚\\
- ä½ç½®ã¯ï¼Œ"t"(デフォルト)ã¾ãŸã¯ "c" , "b"\\
-   "t" ã¯çŸ¢ã˜ã‚Šã®å…ˆç«¯ãŒçµ‚点ã«ä¸€è‡´ï¼Œ"c" ã¯ä¸‰è§’å½¢ã®ä¸­å¿ƒãŒçµ‚点ã¨ä¸€è‡´ï¼Œ"b" ã¯çµ‚点ãŒçŸ¢ã˜ã‚Šã®åº•è¾ºã«ã®ã‚‹ã€‚\\
- プロットデータを指定ã—ãŸã¨ãã¯ï¼Œæ›²ç·šä¸Šã®ç‚¹ã«çŸ¢ã˜ã‚Šã‚’ã¤ã‘る。\\
- 曲線ã«ã¯å‘ããŒã‚り,ãã‚Œã«ã‚ˆã£ã¦çŸ¢ã˜ã‚Šã®å‘ããŒæ±ºã¾ã‚‹ã€‚" Invert(プロットデータ) " ã¨ã™ã‚‹ã¨å対å‘ãã®çŸ¢ã˜ã‚Šã«ãªã‚‹ã€‚\\
- 曲線ã®å‘ãã¨ã¯ï¼Œæ›²ç·šã‚’æãã¨ãã®é †åºã§ï¼Œãƒ—ロットデータã®é †åºã§ã‚‚ã‚る。invert() ã¯ã“ã®ãƒ—ロットデータを逆順ã«ã™ã‚‹ã‚‚ã®ã§ã‚る。\\
-
-例:
-
-\vspace{-8mm}
-\hspace{6mm}
-\begin{layer}{150}{0}
-\putnotese{0}{0}{点 A ãŒä¸‹å›³ã®ä½ç½®ã®ã¨ã}
-\putnotese{0}{8}{\input{Fig/ForRef-Arrowhead-1}}
-\putnotese{40}{0}{(ã‚¢) Arrowhead(A,[-1,1]);}
-\putnotese{40}{7}{(イ) Arrowhead([1,1],[-1,1],[2,60]);}
-\putnotese{40}{14}{(ウ) Arrowhead(A,[-1,1],[2,30,"b"]);}
-\putnotese{40}{21}{(エ) Arrowhead([1,1],[-1,1],[2,20,"lc"]);}
-\end{layer}
-
-\vspace{2mm}
-\hspace{6mm}
-\begin{layer}{150}{0}
-\putnotese{0}{0}{\input{Fig/ForRef-Arrowhead-ya1}}
-\putnotese{95}{55}{D ã®åº§æ¨™ãŒã‚ã‹ã‚Œ}
-\putnotese{95}{60}{ã°ï¼Œãã‚Œã§ã‚‚よã„}
-\putnotese{12}{27}{(ã‚¢)}
-\putnotese{42}{27}{(イ)}
-\putnotese{72}{27}{(ウ)}
-\putnotese{102}{27}{(エ)}
-\putnotese{0}{30}{\input{Fig/ForRef-Arrowhead-2}}
-\putnotese{30}{30}{\input{Fig/ForRef-Arrowhead-3}}
-\putnotese{60}{30}{\input{Fig/ForRef-Arrowhead-4}}
-\putnotese{90}{30}{\input{Fig/ForRef-Arrowhead-5}}
-\end{layer}
-
-\vspace{56mm}
-\hspace{6mm}
-\begin{layer}{150}{0}
-\putnotese{0}{0}{曲線 crBC 上ã®ç‚¹ D ãŒ}
-\putnotese{0}{5}{下図ã®ã‚ˆã†ãªã¨ã}
-\putnotese{0}{7}{\input{Fig/ForRef-Arrowhead-6}}
-\putnotese{16}{22}{crBC}
-\putnotese{40}{0}{(オ) Arrowhead(D,"crBC");}
-\putnotese{40}{7}{(ã‚«) Arrowhead(D,"crBC",[2]);}
-\putnotese{40}{14}{(ã‚­) Arrowhead(D,"crBC",[2,30,"l"]);}
-\putnotese{40}{21}{(ク) Arrowhead(D,"Invert(crBC)");}
-\end{layer}
-
-\vspace{3mm}
-\hspace{6mm}
-\begin{layer}{150}{0}
-\putnotese{12}{27}{(オ)}
-\putnotese{42}{27}{(ã‚«)}
-\putnotese{72}{27}{(ã‚­)}
-\putnotese{102}{27}{(ク)}
-\putnotese{0}{28}{\input{Fig/ForRef-Arrowhead-7}}
-\putnotese{30}{28}{\input{Fig/ForRef-Arrowhead-8}}
-\putnotese{60}{28}{\input{Fig/ForRef-Arrowhead-9}}
-\putnotese{90}{28}{\input{Fig/ForRef-Arrowhead-10}}
-\end{layer}
-
-\vspace{70mm}
-\hypertarget{bezier}{}
-\item[関数] Bezier(åå‰ï¼Œç¯€ç‚¹ãƒªã‚¹ãƒˆï¼Œåˆ¶å¾¡ç‚¹ãƒªã‚¹ãƒˆï¼Œ[オプション] )
-\item[機能] å˜ç‹¬ã®ãƒ™ã‚¸ã‚¨æ›²ç·šã‚’æã
-\item[説明] 制御点ã¯ï¼Œå„区間ã«å¯¾ã—ã¦ï¼Œï¼“次ã®å ´åˆï¼’個,2次ã®å ´åˆï¼‘個ã®ãƒªã‚¹ãƒˆã§ä¸Žãˆã‚‹ã€‚
-
- [ [F,G] , [H], ... ]
-
-オプション
-
-"Num=..." : 節点間ã®åˆ†å‰²æ•°ï¼ˆåˆ†ç‚¹æ•° $-1$)を指定ã§ãる。(デフォルトã¯10)
-
-\vspace{5mm}
-
-例:
-
-\begin{layer}{150}{0}
-\putnotese{50}{15}{bz1}
-\putnotese{60}{-15}{\input{Fig/checkbe1}}
-\end{layer}
-
-2次ベジエ曲線
-
-Bezier("1",[A,B],[C]);
-
-\vspace{20mm}
-
-\begin{layer}{150}{0}
-\putnotese{50}{20}{bzc}
-\putnotese{60}{-10}{\input{Fig/checkbe2}}
-\end{layer}
-
-3次ベジエ曲線
-
-Bezier("c",[A,B],[C,D]);
-
-\vspace{20mm}
-
-\begin{layer}{150}{0}
-\putnotese{50}{20}{bz3}
-\putnotese{60}{-10}{\input{Fig/checkbe3}}
-\end{layer}
-
-ã¤ãªã’ã‚‹
-
-Bezier("3",[A,B,C],[[D],[E,F]]);
-
-\vspace{20mm}
-
-\begin{layer}{150}{0}
-\putnotese{50}{20}{bzS}
-\putnotese{60}{5}{\input{Fig/checkbe4}}
-\end{layer}
-
-D,B,E を1直線上ã«ã¨ã‚‹ã¨ï¼Œæ»‘らã‹ã«ã¤ãªãŒã‚‹
-
-Bezier("S",[A,B,C],[[D],[E,F]]);
-
-\vspace{25mm}
-
-
-\begin{layer}{150}{0}
-\putnotese{16}{27}{bzname}
-\putnotese{15}{10}{\input{Fig/checkbe7}}
-\end{layer}
-
-å…¨ã¦åŒã˜æ¬¡æ•°ã®å ´åˆï¼Œæ¬¡ã®ã‚ˆã†ã«ã—ã¦ã‚‚よã„.
-
-Bezier("name", [A,B,C,D], [E,F,G,H,K,L] );
-
-\vspace{30mm}
-
-\begin{layer}{150}{0}
-\putnotese{50}{20}{bz1a}
-\putnotese{60}{5}{\input{Fig/checkbe5}}
-\end{layer}
-
-オプション
-
-Bezier("1a",[A,B,C],[[D],[E,F]],["Num=3"]);
-
-\vspace{30mm}
-
-\begin{layer}{150}{0}
-\putnotese{50}{20}{bzd5e}
-\putnotese{60}{5}{\input{Fig/checkbe6}}
-\end{layer}
-
-Bezier("d5e",[A,B,C],[[D],[E,F]],["Num=200","da"]);
-
-\vspace{35mm}
-
-
-\begin{layer}{150}{0}
-\putnotese{20}{32}{bz1}
-\putnotese{15}{15}{\input{Fig/checkbe8}}
-\end{layer}
-
-Numを(ベクトルã¨ã—ã¦ï¼‰åŒºé–“ã”ã¨ã«ä¸Žãˆã‚‹ã“ã¨ã‚‚ã§ãる。
-
-Bezier("1", [A,B,C,D], [E,F,G,H,K,L] , [ "Num=[2,3,4]"]);
-
-\vspace{30mm}
-
-\begin{flushright} \hyperlink{functionlist}{$\Rightarrow$関数一覧}\end{flushright}
-
-
-\hypertarget{beziersmooth}{}
-\item[関数] Beziersmooth(åå‰ï¼Œç¯€ç‚¹ãƒªã‚¹ãƒˆï¼Œ[オプション] )
-\item[機能] 節点間を3次ベジエ曲線ã§ã‚¹ãƒ ãƒ¼ã‚ºã«çµã‚“ã æ›²ç·šã‚’æã
-\item[説明] 節点をã¯ã•ã‚€åˆ¶å¾¡ç‚¹ã¯ï¼‘直線上ã«ã¨ã‚‹ï¼ˆã—ãŸãŒã£ã¦ï¼Œï¼‘ã¤ã¯åŠè‡ªç”±ç‚¹ã§ï¼Œç›´ç·šä¸Šã—ã‹å‹•ã‘ãªã„)。
-制御点ã¯è‡ªå‹•çš„ã«é…ç½®ã•ã‚Œã‚‹ã€‚ãã®å¾Œï¼Œç¯€ç‚¹ã‚„制御点を動ã‹ã—ã¦ï¼ŒæããŸã„ã‚‚ã®ã«ã™ã‚‹ã€‚
-
-例:
-
-\begin{layer}{150}{0}
-\putnotese{70}{25}{bz1}
-\putnotese{40}{-5}{\input{Fig/checksm1}}
-\end{layer}
-
-Beziersmooth("1",[A,B,C,D]);
-
-\vspace{20mm}
-
-\begin{layer}{150}{0}
-\putnotese{70}{35}{bz1}
-\putnotese{40}{10}{\input{Fig/checksm2}}
-\end{layer}
-
-ãã®å¾Œï¼Œç¯€ç‚¹ã‚„制御点\\
-ã‚’å‹•ã‹ã—ã¦ï¼ŒæããŸã„\\
-ã‚‚ã®ã«ã™ã‚‹ã€‚ãŸã ã—,\\
-C2p 㯠C1q 㨠B を通\\
-る直線上ã—ã‹å‹•ã‘ãªã„。\\
-C3p 㯠C2q 㨠C を通\\
-る直線上ã—ã‹å‹•ã‘ãªã„。
-
-\vspace{10mm}
-
-
-\hypertarget{beziersym}{}
-\item[関数] Beziersym(åå‰ï¼Œç¯€ç‚¹ãƒªã‚¹ãƒˆï¼Œ[オプション] )
-\item[機能] 節点間を3次ベジエ曲線ã§ã‚¹ãƒ ãƒ¼ã‚ºã«çµã‚“ã æ›²ç·šã‚’æã
-\item[説明] 節点をã¯ã•ã‚€åˆ¶å¾¡ç‚¹ã¯ç¯€ç‚¹ã«é–¢ã—対称(片方ã¯è¡¨ç¤ºã•ã‚Œãšï¼Œå‹•ã‹ã›ãªã„)。
-制御点ã¯è‡ªå‹•çš„ã«é…ç½®ã•ã‚Œã‚‹ã€‚ãã®å¾Œï¼Œç¯€ç‚¹ã‚„制御点を動ã‹ã—ã¦æããŸã„ã‚‚ã®ã«ã™ã‚‹ã€‚
-
-例:
-
-\begin{layer}{150}{0}
-\putnotese{70}{20}{bz1}
-\putnotese{40}{-5}{\input{Fig/checksy1}}
-\end{layer}
-
-Beziersym("1",[A,B,C,D]);\\
-C2p 㨠C3p ã¯è¡¨ç¤ºã•ã‚Œ\\
-ãªã„。
-
-\vspace{10mm}
-
-\begin{layer}{150}{0}
-\putnotese{70}{30}{bz1}
-\putnotese{40}{0}{\input{Fig/checksy2}}
-\end{layer}
-
-ãã®å¾Œï¼Œç¯€ç‚¹ã‚„制御点\\
-ã‚’å‹•ã‹ã—ã¦ï¼ŒæããŸã„\\
-ã‚‚ã®ã«ã™ã‚‹ã€‚\\
-C2p 㨠C3p ã¯è¡¨ç¤ºã•\\ã‚Œãšï¼Œå‹•ã‹ã›ãªã„。
- \\
-\begin{flushright} \hyperlink{functionlist}{$\Rightarrow$関数一覧}\end{flushright}
-
-\hypertarget{bowdata}{}
-\item[関数] Bowdata(点リスト , options)
-\item[機能] 弓形をæã
-\item[説明] 点リストã§ä¸Žãˆã‚‰ã‚ŒãŸï¼’点をçµã¶å¼“形をæã。\\
- 2点をå時計回りã«å›žã‚‹æ–¹å‘ã«å¼“形をæã。\\
- optionsã¯ï¼Œ[曲ãŒã‚Š , 空白サイズ , 文字, 線種]\\
-  曲ãŒã‚Šã€€ã¯å¼§ã®æ›²ãŒã‚Šå…·åˆã®æŒ‡å®šã€‚デフォルトã¯ï¼‘\\
-  空白サイズ ã¯ä¸­å¤®ã«ã‚ã‘る空白ã®å¤§ãã•\\
-  文字ã¯ï¼Œ"Expr=文字" \\
-  ã¾ãŸï¼Œ"Expr=ä½ç½® , 文字" ã§ä½ç½®ã‚’指定ã—ã¦æ–‡å­—を入れる。ä½ç½®ã¯e,w,n,s,c\\
-
-例 三角形ABCã®å„辺ã«å¼“形マークをã¤ã‘記å·ã‚’入れる。
-\begin{verbatim}
-   Listplot([A,B,C,A]);
-   Letter([A,"n1","A",B,"w1","B",C,"e1","C"]);
-   Bowdata([A,B]);
-   Bowdata([B,C],[1,"Expr=s3,a"]);
-   Bowdata([C,A],[2,1.2,"Expr=10","da"]);
-\end{verbatim}
-   \input{Fig/bowdata}\\
-
- 以上ãŒåŸºæœ¬ã€‚ã“ã‚Œã«åŠ ãˆï¼Œæ–‡å­—を回転ã—ã¦è¡¨ç¤ºã™ã‚‹æ–¹æ³•ãŒã‚る。\\
- ãŸã ã—,Cinderellaã®ç”»é¢ã«ã¯å映ã•ã‚Œãªã„。\\
- 文字をを回転ã™ã‚‹ã«ã¯æ¬¡ã®ã‚ˆã†ã«æ›¸ã。\\
- "Exprrot=å¾®å°ç§»å‹• , 文字"\\
-   微å°ç§»å‹•ã¯ t , n ,u \\
-     t ã¯ç·šåˆ†æ–¹å‘ã®å¾®å°ç§»å‹•ã€‚移動é‡ã¯æ•°å­—ã‚’ã¤ã‘る。正負ãŒå¯ã€‚\\
-     n ã¯ç·šåˆ†ã¨åž‚ç›´æ–¹å‘ã®å¾®å°ç§»å‹•\\
-     u ã¯ä¸Šä¸‹å転\\
- t , n , u ã¯çµ„ã¿åˆã‚ã›ã‚‹ã“ã¨ãŒã§ãる。
- 以下ã«ã„ãã¤ã‹ä¾‹ã‚’示ã™ã€‚
-\begin{verbatim}
-  Bowdata([B,A],[1,1,"Exprrot=a"]);
-  Bowdata([D,C],[1,1,"Exprrot=t3,a"]);
-  Bowdata([F,E],[1,1,"Exprrot=t-3,a"]);
-  Bowdata([H,G],[1,1,"Exprrot=n3,a"]);
-  Bowdata([L,K],[1,1,"Exprrot=u,a"]);
-  Bowdata([N,M],[1,1,"Exprrot=t3u,a"]);
-\end{verbatim}
- \input{Fig/bowdata2}\\
-
-\begin{flushright} \hyperlink{functionlist}{$\Rightarrow$関数一覧}\end{flushright}
-
-\hypertarget{bspline}{}
-\item[関数] Bspline(åå‰ï¼Œåˆ¶å¾¡ç‚¹ãƒªã‚¹ãƒˆï¼Œ[オプション] )
-\item[機能] 2次B-spline曲線をæã
-\item[説明] 節点ã¯è‡ªå‹•çš„ã«è¨ˆç®—ã•ã‚Œï¼Œè¡¨ç¤ºã•ã‚Œãªã„\\
-
-
-例:\verb|Bspline("1",[A,B,C,D,E]);|\\
-  \verb|Bezier("1",[A,(B+C)/2,(C+D)/2,E],[B,C,D]);|\\
-  ã¨åŒã˜ã€‚曲線ã®åå‰ãŒ bz1 ã§ã¯ãªãbzb1 ã¨ãªã‚‹ã€‚\\
-  通常ã®B-spline曲線ã®ç«¯ã®åˆ¶å¾¡ç‚¹ã®ä»£ã‚ã‚Šã«ï¼Œç«¯ç‚¹ã‚’å‹•ã‹ã›ã‚‹ã‚ˆã†ã«ã—ã¦ã„る。\\
-    \input{Fig/checkbs1}
-
-
-例:\verb|Bspline("1",[A,B,C,D,A]);|\\
- リストã®æœ€åˆã¨æœ€å¾ŒãŒåŒã˜å ´åˆã¯é–‰æ›²ç·šã«ãªã‚‹ã€‚\\
- \verb|Bezier("1",[(D+A)/2,(A+B)/2,(B+C)/2,(C+D)/2,(D+A)/2],[A,B,C,D]);| ã¨åŒã˜ã€‚\\
- \\
-    \input{Fig/checkbs2}
- \\
-\hypertarget{crspline}{}
-\item[関数] CRspline(åå‰ï¼Œç¯€ç‚¹ãƒªã‚¹ãƒˆï¼Œ[オプション] )
-\item[機能] å˜ç‹¬ã®Catmull-Rom スプライン曲線をæã
-\item[説明]
- 自由点ã¯ï¼Œç¯€ç‚¹ã®ã¿ã§ï¼Œåˆ¶å¾¡ç‚¹ã¯ç¯€ç‚¹ã‹ã‚‰ä½œã‚‰ã‚Œç§»å‹•ã¯ã§ããªã„。\\
- オプションã«ï¼Œé€šå¸¸ã®ã‚ªãƒ—ションã®ã»ã‹ï¼Œæ¬¡ã®ï¼’ã¤ãŒä½¿ãˆã‚‹ã€‚\\
-  "size-$>$n"     画é¢ä¸Šã§ã®ç·šã®å¤ªã•ã‚’指定ã™ã‚‹ã€‚\\
-  "pointsize-$>$n"  制御点ã®å¤§ãã•ã‚’指定ã™ã‚‹ã€‚0ã®ã¨ãéžè¡¨ç¤ºã¨ãªã‚‹ã€‚\\
-
-例:\verb|CRspline("3",[A,B,C,D]);|\\
-   \input{Fig/checkCR}
- \\
-\hypertarget{circledata}{}
-\item[関数] Circledata(name,リスト,options) 
-\item[機能] 円ã¾ãŸã¯å¤šè§’形をæã。
-\item[説明] 中心ã®ç‚¹ã¨ï¼Œå††å‘¨ä¸Šã®1点,ã¾ãŸã¯ï¼“点をリストã§ä¸Žãˆã¦å††ã‚’æã。\\
- プロットデータã®åå‰ã¯ï¼Œ"cr" ã«å¼•æ•°ã® name を付加ã—ãŸã‚‚ã®ã¨ãªã‚‹ã€‚\\
- 中心ã¨å††å‘¨ä¸Šã®ç‚¹ã‚’,座標ã§ã¯ãªã幾何è¦ç´ åã§æŒ‡å®šã™ã‚‹å ´åˆã¯ name ã¯çœç•¥å¯ã€‚\\
- optionsã¯ä»¥ä¸‹ã®ã‚‚ã®ã‚’リストã§ä¸Žãˆã‚‹ã€‚çœç•¥ã—ãŸå ´åˆã¯å®Ÿç·šã§å††ãŒæã‹ã‚Œã‚‹ã€‚
-\begin{tabbing}
-1234567890123456789012\=\kill
-  "Rng=[$θ_1,θ_2$]" \>角$θ_1$ã‹ã‚‰$θ_2$ã®ç¯„囲ã®å¼§ã‚’æã。角ã¯å¼§åº¦æ³•ã§ä¸Žãˆã‚‹ã€‚\\
-  "Num=分割数"  \>円をæãã¨ãã®åˆ†å‰²æ•°ã€‚値ãŒå°ã•ã„å ´åˆã¯å¤šè§’å½¢ã«ãªã‚‹ã€‚\\
-  線種  \>"dr, n" , "da,m,n" , "do,m,n"\\
-
-\end{tabbing}
-例:原点中心,åŠå¾„ï¼’ã®å††ã‚’æã \verb|Circledata("1",[[0,0],[2,0]]);|\\
-  A中心,åŠå¾„ABã®å†† ã‚’æã \verb|Circledata([A,B]);|\\
-  A中心,åŠå¾„ï¼’ã®å†† ã‚’æã \verb|Circledata([A,A+[2,0]]);|\\
-  3点A,B,Cを通る円をæã  \verb|Circledata([A,B,C]);|\\
-   ã“ã®å ´åˆï¼Œã§ããŸå††ã®ä¸­å¿ƒã‚’ \verb|Pointdata("1",[crABCcenter]);| ã§\\
-   作図ã§ãる。\\
-  下図左より,A中心,åŠå¾„ABã®å†† ã‚’\\
-   太ã•ï¼’ã®å®Ÿç·šã§æã \verb|Circledata([A,B],["dr,2"]);|\\
-   破線ã§æã     \verb|Circledata([A,B],["da"]);|\\
-   点線ã§æã     \verb|Circledata([A,B],["do"]);|\\
- \\
-\input{Fig/circledata1}
- \\
-例:A中心,åŠå¾„AB,中心角60°ã®å¼§ã‚’æã。\\
-  \verb|Circledata([A,B],["Rng=[0,pi/3]"]); |\\
- ã“ã®ã¨ã,扇型をæãã®ã§ã‚ã‚Œã°ï¼Œ2本ã®åŠå¾„を引ãå¿…è¦ãŒã‚る。ãã®ãŸã‚ã«ã¯ï¼ŒAãŒåŽŸç‚¹ï¼ŒBãŒx軸上ã«ã‚ã‚Œã°ï¼Œç‚¹A,B以外ã«ã‚‚ã†ã²ã¨ã¤ç‚¹Cã‚’ã¨ã‚Šï¼Œãã®ä½ç½®ã‚’ CindyScript を用ã„ã¦
-\begin{verbatim}
-  C.xy=|A,B|*[cos(pi/3),sin(pi/3)]
-\end{verbatim}
- ã§æŒ‡å®šã—,扇型ãŒã§ããŸã®ã‚’確ã‹ã‚ã¦ã‹ã‚‰ï¼Œ\verb|Listplot([B,A,C])| を付加ã™ã‚Œã°ã‚ˆã„。\\
-\\
-       \input{Fig/circledata2}\\
-\\
- 辺ABãŒ$x$軸ã¨å¹³è¡Œã§ãªã„å ´åˆã¯ï¼Œè§’ã®ç¯„囲ã¯ï¼ã‹ã‚‰ã§ã¯ãªã,ABãŒ$x$軸ã¨ãªã™è§’ã‹ã‚‰å§‹ã‚ã‚‹å¿…è¦ãŒã‚り,ã¡ã‚‡ã£ã¨ã—ãŸå·¥å¤«ãŒå¿…è¦ã§ã‚る。中心AãŒåŽŸç‚¹ã§ãªã„å ´åˆã‚‚å«ã‚,次ã®ã‚ˆã†ãªã‚¹ã‚¯ãƒªãƒ—トã§å®Ÿç¾ã§ãる。\begin{verbatim}
-  th=arctan2(B.xy-A.xy);
-  str="Rng=["+text(th+0)+","+text(th+pi/3)+"]";
-  C.xy=A.xy+|A,B|*[cos(th+pi/3),sin(th+pi/3)];
-  Circledata([A,B],[str]);
-  Listplot([B,A,C]);
-\end{verbatim}
-1行目ã¯ï¼ŒABãŒ$x$軸ã¨ãªã™è§’ã‚’ arctan2 関数 ã«ã‚ˆã£ã¦æ±‚ã‚ã¦ã„る。\\
-2行目ã¯å¼•æ•°ã®æ–‡å­—列を作ã£ã¦ã„る。th+0 , th+pi/3 ã«ã‚ˆã‚Šå¼§åº¦æ³•ã«ã—ã¦ã„る。ã“ã“ã§ï¼Œ+0 ãŒå¿…è¦ã§ã‚る。\\
-\\
-       \input{Fig/circledata3}\\
-\\
-
-複数ã®ã‚ªãƒ—ションをリストã§ä¸Žãˆã‚‹ã“ã¨ã‚‚ã§ãる。\\
-
-例:弧を太ãæã\\
-  \verb|Circledata([C,D],["dr,3","Rng=[0,pi/3]"]);|\\
-
- 円ã¯NãŒå¤§ããªå€¤ã®æ­£N多角形ã¨ã—ã¦æã„ã¦ã„る。optionã® ["Num=数値"] ã«ã‚ˆã£ã¦ãã®ç´°ã‹ã•ã‚’指定ã§ãる。Nã®å€¤ãŒå°ã•ã‘ã‚Œã°æ­£å¤šè§’å½¢ãŒæã‘ã‚‹ã“ã¨ã«ãªã‚‹ã€‚\\
-例:A中心,åŠå¾„ABã®å††ã¨ï¼Œãã®å††ã«å†…接ã™ã‚‹æ­£å…­è§’å½¢
-\begin{verbatim}
-  Circledata("1",[A,B]);
-  Circledata("2",[A,B],["Num=6"]);
-\end{verbatim}
-        \input{Fig/circledata4}\\
-ã“ã“ã§ï¼ŒåŒã˜[A,B]を使ã†ãŸã‚,nameを付与ã—ã¦åŒºåˆ¥ã™ã‚‹å¿…è¦ãŒã‚る。\\
-ã¾ãŸï¼Œé ‚点ã®ä½ç½®ã‚’変ãˆã‚‹ã®ã§ã‚ã‚Œã°ï¼ŒRng= オプションを使ã†ã€‚\\
-  \verb|Circledata("2",[A,B],["Num=6","Rng=[pi/6,13/6*pi]"]);|\\
-        \input{Fig/circledata5}\\
-\begin{flushright} \hyperlink{functionlist}{$\Rightarrow$関数一覧}\end{flushright}
-
-\hypertarget{crosspoint}{}
-\item[関数] Crosspoint(name , PD1 ,PD2 , 範囲)
-\item[機能] 2曲線ã®äº¤ç‚¹ã‚’作る
-\item[説明] 曲線1ã¨æ›²ç·š2ã®ç¯„囲ã«ã‚る交点を作る。曲線1ã¨æ›²ç·šï¼’ã¯ãƒ—ロットデータã®å称。\\
-範囲ã¯ï¼Œäº¤ç‚¹ãŒå­˜åœ¨ã™ã‚‹ç¯„囲を指定ã™ã‚‹ã€‚\\
-
-例:3次曲線ã®æŽ¥ç·šãŒãã®æ›²ç·šã¨äº¤ã‚る点を求ã‚る。\\
-2点A,Bを作図ツールã§é©å½“ãªã¨ã“ã‚ã«ã¨ã‚Šï¼Œæ¬¡ã®ã‚¹ã‚¯ãƒªãƒ—トã§3次曲線をæã。
-\begin{verbatim}
-  f(x):=x^3-4*x;
-  g(x):=d(f(#),A.x)*(x-A.x)+A.y;
-  A.y=f(A.x);
-  B.y=g(B.x);
-  Plotdata("1","f(x)","x");
-  Lineplot([A,B]);
-\end{verbatim}
-1行目ã¨ï¼’行目ã§3次曲線ã¨ãã®æŽ¥ç·šã‚’定義ã—,点A,Bã‚’ãã®ä¸Šã«ä¹—ã›ã¦ã„る。\\
-Plotdata() 㨠Lineplot() ã«ã‚ˆã‚Šï¼Œ3次曲線ã¨æŽ¥ç·šã®ãƒ—ロットデータãŒã§ãる。\\
-ãã‚Œãžã‚Œã®å称ã¯ã‚³ãƒ³ã‚½ãƒ¼ãƒ«ã«å‡ºåŠ›ã•ã‚Œã‚‹ã€‚3次曲線㯠gr1 , 接線㯠lnAB ã§ã‚る。\\
-ã¾ãŸï¼Œå›³ã‚’見ã¦ï¼Œäº¤ç‚¹ã®ã‚る場所を確èªã—ã¦ç¯„囲を決ã‚る。\\
-プロットデータåã¨ç¯„囲を用ã„ã¦æ¬¡ã®ã‚¹ã‚¯ãƒªãƒ—トを追加ã™ã‚‹ã€‚\\
-
-  \verb|Crosspoint("C",gr1,lnAB,[1,2]);|\\
-
-ã“ã‚Œã§ï¼Œäº¤ç‚¹ï¼£ãŒæ–°ãŸã«ä½œã‚‰ã‚Œã‚‹ã€‚\\
-å¿…è¦ã«å¿œã˜ï¼ŒLetter関数ã§ç‚¹ã®åå‰ã‚’表示ã™ã‚‹ã¨æ¬¡ã®ã‚ˆã†ã«ãªã‚‹ã€‚\\
-\\
-        \input{Fig/crosspoint}\\
- \\
-交点ãŒå­˜åœ¨ã—ãªã„å ´åˆï¼ŒPD1ã®ç«¯ç‚¹ã«ç‚¹ãŒä½œã‚‰ã‚Œã‚‹ã€‚\\
-2曲線ã®äº¤ç‚¹ã‚’作るã®ã«ï¼Œ\hyperlink{putintersect}{Putintersect(点å,PD1,PD2)} 関数を用ã„ã‚‹ã“ã¨ã‚‚ã§ãる。\\
-\begin{flushright} \hyperlink{functionlist}{$\Rightarrow$関数一覧}\end{flushright}
-\hypertarget{deqplot}{}
-\item[関数] Deqplot(name,å¼ï¼Œå¤‰æ•°å,åˆæœŸå€¤ï¼Œoptions)
-\item[機能] 微分方程å¼ã®è§£æ›²ç·šã‚’æã
-\item[説明] 微分方程å¼ã¨åˆæœŸå€¤ã‚’与ãˆã¦è§£æ›²ç·šã‚’æã。\\
- \\
-例:$y''=-y$ã§ï¼ŒåˆæœŸå€¤ãŒ$x=0$ã®ã¨ã$y=1,y'=0$ ã®è§£æ›²ç·š\\
-
-  \verb|Deqplot("1","y``=-y","x",0, [1,0]); |\\
-
-       \input{Fig/deqplot1}\\
-
-例:$y'=y*(1-y)$ã§ï¼Œ$x=0$ã®ã¨ã,$y=0.5$ã®è§£æ›²ç·š\\
-
-  \verb|Deqplot("2","y`=y*(1-y)","x",0, 0.5,["Num=100"]);| \\
-
-       \input{Fig/deqplot2}\\
-
-例:$[x,y]'=[x(1-y),0.3y(x-1)]$ã§ï¼Œå¤‰æ•°ã¯$t$,$t=0$(区間ã®å·¦ç«¯ï¼‰ã®ã¨ãã®$x, y$ã®å€¤ãŒ1ã¨0.5 ã§ã‚ã‚‹ã¨ãã®è§£æ›²ç·š
-\begin{verbatim}
-   Deqplot("3","[x,y]`=[x*(1-y),0.3*y*(x-1)]","t=[0,20]",
-                 [1,0.5],["Num=200"]);
-\end{verbatim}
- \\
-       \input{Fig/deqplot3}\\
- \\
- ãªãŠï¼Œã“ã®ä¾‹ã§ã¯ï¼ŒCinderellaã®ç”»é¢ä¸Šã®å›³ã¯èª¤å·®ãŒå¤§ããã¦æ­£ç¢ºãªå›³ã«ã¯ãªã‚‰ãªã„ãŒï¼Œ\TeX ã«å‡ºåŠ›ã™ã‚‹å›³ã¯æ­£ç¢ºãªå›³ã«ãªã‚‹ã€‚解åƒåº¦ã‚’上ã’ã‚‹(Numã®æ•°ã‚’大ããã™ã‚‹)ã“ã¨ã«ã‚ˆã‚Šï¼ŒCinderellaã®ç”»é¢ä¸Šã®å›³ã‚‚正確ãªå›³ã«è¿‘ã¥ã。\\
-
-\begin{flushright} \hyperlink{functionlist}{$\Rightarrow$関数一覧}\end{flushright}
-
-\hypertarget{drwpt}{}
-\item[関数] Drwpt(点,option), Drawpoint(点,options)
-\item[機能] 点を表示ã™ã‚‹
-\item[説明] 座標ã¾ãŸã¯å¹¾ä½•ç‚¹ã®è­˜åˆ¥åを与ãˆã¦ç‚¹ã‚’表示ã™ã‚‹ã€‚ã“ã‚Œã ã‘ã§ã¯Cinderellaã®æç”»é¢ã«ã¯æã‹ã‚Œãªã„ã®ã§ï¼Œæç”»é¢ã«ã‚‚表示ã™ã‚‹ã«ã¯Cinderellaã®ä½œå›³ãƒ„ールã§ä½œå›³ã™ã‚‹ã‹ï¼ŒPointdata() ã¾ãŸã¯ Putpoint() を用ã„る。\\
- 複数ã®ç‚¹ã®å ´åˆã¯åº§æ¨™ã¾ãŸã¯è­˜åˆ¥åã¯ãƒªã‚¹ãƒˆã§ä¸Žãˆã‚‹ã€‚\\
- optionã«æ•°å­— 0 を入れるã¨ï¼Œç™½æŠœãã§è¡¨ç¤ºã™ã‚‹ã€‚ãªãŠç™½æŠœãã®å ´åˆã¯ï¼ŒPtsize()ã§ç‚¹ã®å¤§ãã•ã‚’å°‘ã—大ãã‚ã«ã¨ã‚‹ã¨ã‚ˆã„。\\
- å¯èª­æ€§ã‚’高ã‚ã‚‹ã¨ãã¯Drawpointを推奨ã™ã‚‹ã€‚\\
-
-例:座標(1,1)ã¨(4,3)ã«ç‚¹ã‚’表示ã™ã‚‹ã€‚Cinderellaã®æç”»é¢ã«ã¯æã‹ã‚Œãªã„。\\
-   \verb|Drwpt([[1,1],[4,3]]);|\\
-
-例:Cinderellaã§ç‚¹A,B,Cを作図ã—ã¦ãŠã,\TeX ã§è¡¨ç¤ºã™ã‚‹ã€‚\\
-   \verb|Drwpt([A,B,C]); |\\
-
-例:線分ABã®å³ç«¯ï¼ˆB)を白抜ãã§è¡¨ç¤ºã™ã‚‹
-\begin{verbatim}
-   Ptsize(5);
-   Listplot([A,B]);
-   Drawpoint(B,0);
-\end{verbatim}
- \\
-    \input{Fig/drawpoint}\\
-※ Drawpoint([A,B],0); ã¨ã™ã‚Œã°ï¼Œä¸¡ç«¯ãŒç™½æŠœãã«ãªã‚‹ã€‚\\
-\\
-\begin{flushright} \hyperlink{functionlist}{$\Rightarrow$関数一覧}\end{flushright}
-
-\hypertarget{drawsegmark}{}
-\item[関数] Drawsegmark(name,リスト,options)ã¾ãŸã¯ Segmark(name,リスト,options)
-\item[機能] 線分ã«å°ã‚’ã¤ã‘ã‚‹
-\item[説明] リストã§ä¸Žãˆã‚‰ã‚ŒãŸï¼’点を端点ã¨ã™ã‚‹ç·šåˆ†ã«å°ã‚’ã¤ã‘る。å°ã«ã¯ï¼”種類ãŒã‚る。\\
- optionsã¯ï¼Œ\\
-  Type=n:n=1〜4:å°ã®ç¨®é¡ž\\
-  Width:二本線ã®ã¨ãã®ç·šã®å¹…\\
- 例:Listplot()ã§å››è§’å½¢ABCDã‚’æã線分ã«å°ã‚’ã¤ã‘ãŸã€‚
-\begin{verbatim}
-   Segmark("1",[A,B],["Type=1"]);
-   Segmark("2",[B,C],["Type=2","Width=1.5"]);
-   Segmark("3",[C,D],["Type=3"]);
-   Segmark("4",[D,A],["Type=4"]);
-\end{verbatim}
-    \input{Fig/segmark}
-
-\begin{flushright} \hyperlink{functionlist}{$\Rightarrow$関数一覧}\end{flushright}
-
-\hypertarget{expr}{}
-\item[関数] Expr([座標 , ä½ç½® , 文字列])
-\item[機能] \TeX 記法ã®æ–‡å­—列を与ãˆã¦æ•°å¼ã‚’書ã。
-\item[説明] Letterã§æ–‡å­—列ã®å‰å¾Œã«\$ \$ã‚’ãŠãã®ã¨åŒã˜ã€‚\\
- 導関数ã®è¨˜å·ï¼ˆã‚·ãƒ³ã‚°ãƒ«ã‚¯ã‚¦ã‚©ãƒ¼ãƒˆï¼‰$'$ã¯ï¼ŒScilab ã§ã®ã‚·ãƒ³ã‚°ãƒ«ã‚¯ã‚¦ã‚©ãƒ¼ãƒˆã®ä½¿ç”¨ã¨ã¶ã¤ã‹ã‚‹ã®ã§ï¼Œ$`$(ãƒãƒƒã‚¯ã‚¯ã‚¦ã‚©ãƒ¼ãƒˆï¼‰ã‚’用ã„る。\\
- 複数ã®ç®‡æ‰€ã«æ–‡å­—を書ãå ´åˆã¯ï¼ŒLetter() ã¨åŒæ§˜ï¼Œå¼•æ•°ã‚’リストã«ã—ã¦ä¸Žãˆã‚‹ã€‚\\
-
-例 $f(x)=\dfrac{1}{4} x^2$ ã¨ãã®å°Žé–¢æ•° $f'(x)=\dfrac{1}{2} x$ ã®å¼ï¼Œè»¸ä¸Šã«å¿…è¦ãªæ•°ã‚’入れる。
-\begin{verbatim}
-   Expr([[-3,3],"e","f(x)=\frac{1}{4} x^2",[3,1.5],"s2e2",
-      "f‘(x)=\frac{1}{2}x",[2,0],"s","2",[0,1],"w","1"]);
-\end{verbatim}
- \\
-     \input{Fig/expr}\\
-
-  ※原点OãŒç·šã¨é‡ãªã£ã¦ã„る。ä½ç½®ã‚’ãšã‚‰ã™ã«ã¯ï¼ŒSetax() ã®é …ã‚’å‚ç…§ã®ã“ã¨ã€‚\\
-
-例 対数関数ã®å®šç©åˆ†ã®è¨˜å·ãŠã‚ˆã³ç©åˆ†å€¤ã‚’図ã«æ›¸ã込む。\\
-  下図ã§ï¼Œå®šç©åˆ†ã®è¡¨ç¤ºã®éƒ¨åˆ†ã¯çŸ¢ç·šã‚’PQã¨ã—ã¦ï¼Œ
-\begin{verbatim}
-   Arrowdata(Q,P);
-   Expr([Q+[0.2,0],"ne","\displaystyle \int_a^b \log x\,dx="+
-      text(L.x*(log(L.x)-1)-G.x*(log(G.x)-1)) ]);
-\end{verbatim}
-  ã§è¡¨ç¤ºã—ã¦ã„る。\\
-  \verb|L.x*(log(L.x)-1)-G.x*(log(G.x)-1)| ã¯ï¼Œç‚¹L,G(図ã®$a,b$)をドラッグã—ã¦\\
-  ç©åˆ†ç¯„囲を決ã‚るよã†ã«ã—ã¦ã„ã‚‹ã®ã§ï¼Œãã“ã‹ã‚‰è¨ˆç®—ã—ãŸå€¤ã€‚\\
-\\
-
-     \input{Fig/intlog}
-
-\hypertarget{exprrot}{}
-\item[関数] Exprrot([座標 , å‘ã , 文字列])
-\item[機能] \TeX 記法ã®æ–‡å­—列を与ãˆã¦å‚¾ã„ãŸæ•°å¼ã‚’書ã。
-\item[説明] 「座標ã€ã®ä½ç½®ã«ï¼ŒæŒ‡å®šã•ã‚ŒãŸå‘ãã§æ•°å¼ã‚’書ã。\\
- å‘ãã¯ãƒ™ã‚¯ãƒˆãƒ«ã§ä¸Žãˆã‚‹ã€‚\\
- 座標,å‘ãã¨ã‚‚,Cinderellaã§ä½œå›³ã—ãŸå¹¾ä½•ç‚¹ã‚’用ã„ã‚‹ã“ã¨ãŒã§ãる。\\
- A(1,1),B(3,2),C(0,2) ã®ã¨ã,次ã®ï¼’ã¤ã®ã‚¹ã‚¯ãƒªãƒ—トã¯åŒã˜çµæžœã«ãªã‚‹ã€‚
-\begin{verbatim}
-   Exprrot(C,B-A,"\sqrt{3}");
-   Exprrot([0,2],[2,1],"\sqrt{3}");
-\end{verbatim}
- \\
-
-\begin{flushright} \hyperlink{functionlist}{$\Rightarrow$関数一覧}\end{flushright}
-
-\hypertarget{ellipseplot}{}
-\item[関数] Ellipseplot(name,点リスト ,定義域, options)
-\item[機能] 焦点ã¨é€šã‚‹ç‚¹ã‚’与ãˆã¦æ¥•å††ã‚’æã。
-\item[説明] 点リストã§ï¼’ã¤ã®ç„¦ç‚¹ã¨é€šã‚‹ç‚¹ã‚’与ãˆã‚‹ã€‚点ã¯Cinderellaã®å¹¾ä½•ç‚¹ãŒä½¿ãˆã‚‹ã€‚\\
- ã¾ãŸï¼Œé€šã‚‹ç‚¹ã®ã‹ã‚ã‚Šã«ï¼Œç„¦ç‚¹ã‹ã‚‰ã®è·é›¢ã®å’Œã‚’実数ã§ä¸Žãˆã‚‹ã“ã¨ã‚‚ã§ãる。\\
- 実際ã«ã¯ï¼Œåª’介変数表示$x=a \cos \theta,x=b \sin \theta$ を,回転・平行移動ã—ã¦æã„ã¦ã„る。定義域ã¯ã“ã®ã¨ãã®$t$ã®å®šç¾©åŸŸã§ï¼Œçœç•¥ã‚‚å¯èƒ½ã€‚çœç•¥ã—ãŸã¨ãã®åˆæœŸå€¤ã¯[-5,5]\\
-
-例:点A,Bを焦点ã¨ã™ã‚‹æ¥•å††ã‚’æã。\\
-  \verb|Ellipseplot("1",[A,B,C]);|  点Cを通る楕円をæã。\\
-  \verb|Ellipseplot("1",[A,B,4]);|  焦点ã‹ã‚‰ã®è·é›¢ã®å’ŒãŒï¼”ã§ã‚る楕円をæã。\\
-  \verb|Ellipseplot("1",[A,B,C],"[0,pi]");|  楕円ã®åŠåˆ†ã‚’æã。\\
- \\
-例:Cinderellaã®ä½œå›³ãƒ„ールã«ï¼Œç„¦ç‚¹ã¨é€šã‚‹ç‚¹ã§æ¥•å††ã‚’æãã‚‚ã®ãŒã‚る。ã¾ãŸï¼Œç‚¹ã®æ¥µç·šã‚’æãツールãŒã‚る。ã“れを利用ã™ã‚‹ã¨ï¼Œæ¥•å††ä¸Šã«ã¨ã£ãŸç‚¹ã‚’インシデントã«ã§ãã‚‹ã®ã§ï¼Œã‚¤ãƒ³ã‚¿ãƒ©ã‚¯ãƒ†ã‚£ãƒ–ã«å›³ã‚’変更ã™ã‚‹ã“ã¨ãŒã§ãる。ã“ã®Cinderellaã®ä½œå›³æ©Ÿèƒ½ã¨åˆã‚ã›ã¦ï¼Œä¸€æ–¹ã®ç„¦ç‚¹ã‹ã‚‰å‡ºãŸå…‰ãŒæ¥•å††ä¸Šã§åå°„ã—ã¦ä»–æ–¹ã®ç„¦ç‚¹ã«è‡³ã‚‹ï¼Œã¨ã„ã†å›³ã‚’次ã®ã‚ˆã†ã«ã—ã¦æãã“ã¨ãŒã§ãる。\\
- ã¾ãšï¼Œï¼“ã¤ã®ç‚¹A,B,Cを作図ã™ã‚‹ã€‚次ã«ã€Œç„¦ç‚¹ã¨é€šã‚‹ç‚¹ã§æ±ºã¾ã‚‹æ¥•å††ã€ãƒ„ールをé¸ã³ï¼Œç‚¹A,B,Cã‚’é †ã«æŒ‡å®šã™ã‚‹ã¨ï¼Œæ¥•å††ãŒæã‹ã‚Œã‚‹ã€‚\\
-
- モードメニューã®ã€Œç›´ç·šã€ã‹ã‚‰ã€Œç‚¹ã®æ¥µç·šã€ã‚’é¸ã³ï¼Œç‚¹Cã¨æ¥•å††ã‚’é †ã«æŒ‡å®šã™ã‚‹ã¨æŽ¥ç·šãŒå¼•ã‹ã‚Œã‚‹ã€‚\\
- 「垂線を加ãˆã‚‹ã€ãƒ„ールを用ã„ã¦ï¼Œç‚¹Cã§åž‚線,ã™ãªã‚ã¡æ³•ç·šã‚’引ã。\\
- 「点を加ãˆã‚‹ã€ãƒ„ールを用ã„ã¦ï¼ŒæŽ¥ç·šï¼Œæ³•ç·šä¸Šã«é©å½“ã«ç‚¹ã‚’å–る。(D,Eã¨ãªã£ãŸã¨ã™ã‚‹)\\
- 次ã®ã‚¹ã‚¯ãƒªãƒ—トを書ã„ã¦å®Ÿè¡Œã™ã‚‹ã¨ï¼Œæ¥•å††ã«é–¢ã—ã¦å…¥å°„角ã¨å射角ãŒç­‰ã—ããªã‚‹ã‚ˆã†ã«å…‰ãŒåå°„ã™ã‚‹æ§˜å­ã‚’図ã«ã™ã‚‹ã“ã¨ãŒã§ãる。
-\begin{verbatim}
-  Ellipseplot("1",[A,B,C]);
-  Lineplot([C,D]);
-  Lineplot([C,E]);
-  Arrowdata([A,C]);
-  Arrowdata([C,B]);
-  Anglemark([A,C,B]);
-  Expr([A,"s2","F_1",B,"s2","F_2"]);
-\end{verbatim}
- \\
-  \input{Fig/ellipseplot1}\\
-
- ã¾ãŸï¼ŒæŽ¥ç·šï¼Œæ³•ç·šã‚’æã‹ãšï¼Œã“ã®æ¥•å††ä¸Šã«ç‚¹D,E,・・をã¨ã‚Šï¼ˆå€‹æ•°ã¯ä»»æ„)次ã®ã‚¹ã‚¯ãƒªãƒ—トを書ã‘ã°ï¼Œä½•æœ¬ã‹ã®å…‰ç·šãŒä¸€æ–¹ã®ç„¦ç‚¹ã‚’出ã¦ä»–æ–¹ã®ç„¦ç‚¹ã«é›†ã¾ã‚‹æ§˜å­ã‚’æãã“ã¨ãŒã§ãる。
-\begin{verbatim}
-  Ellipseplot("1",[A,B,C]);
-  Listplot([A,C,B]);
-  Listplot([A,D,B]);
-  Listplot([A,E,B]);
-  Expr([A,"s2","F_1",B,"s2","F_2"]);
-\end{verbatim}
- \\
-  \input{Fig/ellipseplot2}\\
- \\
-
-\hypertarget{framedata}{}
-\item[関数] Framedata(name , リスト)
-\item[関数] Framedata2(name ,[P1,P2])
-\item[機能] 矩形をæã
-\item[説明] 中心ã®åº§æ¨™ï¼Œæ¨ªï¼Œç¸¦ã‚’リスト[中心 ,横 , 縦]ã§ä¸Žãˆï¼ŒçŸ©å½¢ã‚’æã。横,縦ã¯ä¸­å¿ƒã‹ã‚‰ã®è·é›¢ã€‚\\
- 中心ã®åº§æ¨™ã¯ç‚¹ã®åå‰ã§ã‚‚よã„。\\
- 中心を座標ã§ä¸Žãˆã‚‹å ´åˆã¯nameã¯çœç•¥ã§ããªã„。\\
- 横,縦ã¯ï¼ŒçŸ©å½¢ã®é ‚点を示ã™ç‚¹ã«ã™ã‚‹ã“ã¨ã‚‚ã§ãる。\\
- 中心,横,縦をçœç•¥ã—ãŸå ´åˆã¯ï¼Œæ画範囲ã¨åŒä¸€ã®çŸ©å½¢ã‚’æã\\
- Framedata2() ã§ã¯ï¼Œå¯¾è§’点(左下P1ã¨å³ä¸ŠP2)をリストã§ä¸Žãˆã‚‹ã€‚\\
- 以下ã«ã„ãã¤ã‹ä¾‹ã‚’示ã™\\
- \verb|Framedata("1");|      æ画範囲ã¨åŒä¸€ã®çŸ©å½¢ã‚’æã\\
- \verb|Framedata("2",[[0,0],2,2]);|  原点を中心ã¨ã™ã‚‹ç¸¦æ¨ªå¹…ï¼”ã®æ­£æ–¹å½¢ã‚’æã\\
- \verb|Framedata("3",[A,3,2]);|    点Aを中心ã¨ã™ã‚‹æ¨ªï¼–,縦4ã®çŸ©å½¢ã‚’æã\\
- \verb|Framedata([A,3,2]);|  中心ãŒç‚¹ã®å称ã®å ´åˆã¯nameã¯çœç•¥ã§ãる。\\
- \verb|Framedata([A,B]);|   点Aを中心,点Bを頂点ã®ã²ã¨ã¤ã¨ã™ã‚‹çŸ©å½¢ã‚’æã\\
-    矩形ã®è§’を丸ã‚ãŸã„å ´åˆã¯ï¼ŒOvaldata(name, 点リスト,options)を使ã†ã€‚\\
- \verb|Framedata2("1",[A,B]);|  点A,Bを対角点ã¨ã™ã‚‹çŸ©å½¢ã‚’æã\\
- \\
-
-\hypertarget{hyperbolaplot}{}
-\item[関数] Hyperbolaplot(name,点リスト ,定義域, options)
-\item[機能] 焦点ã¨é€šã‚‹ç‚¹ã‚’与ãˆã¦åŒæ›²ç·šã‚’æã。
-\item[説明] 点リストã§ï¼’ã¤ã®ç„¦ç‚¹ã¨é€šã‚‹ç‚¹ã‚’与ãˆã‚‹ã€‚点ã¯Cinderellaã®å¹¾ä½•ç‚¹ãŒä½¿ãˆã‚‹ã€‚ã¾ãŸï¼Œé€šã‚‹ç‚¹ã®ã‹ã‚ã‚Šã«ï¼Œç„¦ç‚¹ã‹ã‚‰ã®è·é›¢ã®å·®ã‚’実数ã§ä¸Žãˆã‚‹ã“ã¨ã‚‚ã§ãる。\\
- 実際ã«ã¯ï¼Œãƒã‚¤ãƒ‘ボリック関数を用ã„ãŸåª’介変数表示 $x=\cosh t,y=\sinh t$を回転・平行移動ã—ã¦ã„る。
- optionã¨ã—ã¦ï¼Œ"Asy=線種" を与ãˆã‚‹ã¨ï¼Œæ¼¸è¿‘線を指定ã—ãŸç·šç¨®ã§è¡¨ç¤ºã™ã‚‹ã€‚デフォルトã§ã¯æ¼¸è¿‘ç·šã¯éžè¡¨ç¤ºã€‚\\
-
-例:点A,Bを焦点ã¨ã™ã‚‹åŒæ›²ç·šã‚’æã。\\
-  \verb|Hyperbolaplot("1",[A,B,C]);|   点Cを通るåŒæ›²ç·šã‚’æã。\\
-  \verb|Hyperbolaplot("1",[A,B,2]);|   焦点ã‹ã‚‰ã®è·é›¢ã®å·®ãŒ2ã®åŒæ›²ç·šã‚’æã。\\
-  \verb|Hyperbolaplot("1",[A,B,C],["Asy=do"]);|  漸近線を点線ã§æã。\\
-
-     \input{Fig/hyper1}\\
-
-\hypertarget{parabolaplot}{}
-\item[関数] Parabolaplot(name,点リスト ,定義域, options)
-\item[機能] 点リスト[A,B,C]ã§ç¤ºã•ã‚ŒãŸç„¦ç‚¹ï¼Œæº–ç·šã§æ±ºã¾ã‚‹æ”¾ç‰©ç·šã‚’æã。
-\item[説明] 焦点Aã¨æº–ç·šBCã§æ±ºå®šã™ã‚‹æ”¾ç‰©ç·šã‚’æã。\\
- 実際ã«ã¯ï¼Œï¼’次関数 $y=x^2$ã®ã‚°ãƒ©ãƒ•ã‚’回転・平行移動ã—ã¦æã„ã¦ãŠã‚Šï¼Œå®šç¾©åŸŸã¯ï¼Œ$y=x^2$ã§ã®å®šç¾©åŸŸã¨è€ƒãˆã¦ã‚ˆã„。定義域ã¯çœç•¥ã™ã‚‹ã“ã¨ã‚‚ã§ãる。çœç•¥ã—ãŸã¨ãã®åˆæœŸå€¤ã¯[-5,5]\\
-
-例:点Aを焦点,直線BCを準線ã¨ã™ã‚‹æ”¾ç‰©ç·šã‚’æã\\
-   \verb|Parabolaplot("1",[A,B,C]); |\\
-   \verb|Parabolaplot("1",[A,B,C],"[-5,5]");|  定義域を $-5 \leqq x \leqq 5$ ã¨ã™ã‚‹ã€‚\\
-  点(0,1)を焦点,直線$y=-1$を準線ã¨ã™ã‚‹æ”¾ç‰©ç·šã‚’æã\\
-   \verb|Parabolaplot("1",[[0,1],[-1,-1],[1,-1]]);|\\
- \\
-例:放物線上ã®ï¼’点ã§å¼•ã‹ã‚ŒãŸæŽ¥ç·šã¨æ”¾ç‰©ç·šã§å›²ã¾ã‚ŒãŸé ˜åŸŸã‚’斜線ã§æã。\\
- Cinderellaã®ä½œå›³ãƒ„ールã«ï¼Œç„¦ç‚¹ã¨æº–ç·šã§æ”¾ç‰©ç·šã‚’æãã‚‚ã®ãŒã‚る。ã¾ãŸï¼Œç‚¹ã®æ¥µç·šã‚’æãツールãŒã‚る。ã“れを利用ã™ã‚‹ã¨ï¼Œæ”¾ç‰©ç·šä¸Šã«ã¨ã£ãŸç‚¹ã‚’インシデントã«ã§ãã‚‹ã®ã§ï¼Œã‚¤ãƒ³ã‚¿ãƒ©ã‚¯ãƒ†ã‚£ãƒ–ã«å›³ã‚’変更ã™ã‚‹ã“ã¨ãŒã§ãる。ã“ã®Cinderellaã®ä½œå›³æ©Ÿèƒ½ã¨åˆã‚ã›ã¦ï¼Œæ¬¡ã®æ‰‹é †ã§å›³ã‚’æã。\\
- ã¾ãšï¼Œç„¦ç‚¹A(0,1)ã¨æº–ç·š$y=1$:BCを作図ã™ã‚‹ã€‚次ã«ã€Œç„¦ç‚¹ã¨æº–ç·šã§æ±ºã¾ã‚‹æ”¾ç‰©ç·šã€ãƒ„ールをé¸ã³ï¼Œç‚¹Aã¨ç›´ç·šBCを指定ã™ã‚‹ã¨ï¼Œæ”¾ç‰©ç·šãŒæã‹ã‚Œã‚‹ã€‚方程å¼ã§ã¯$y=\dfrac{1}{4}x^2$ã®æ”¾ç‰©ç·šã§ã‚る。\\
- 次ã«ï¼Œæ”¾ç‰©ç·šä¸Šã«ç‚¹D,Eã‚’ã¨ã‚‹ã€‚Cinderellaã®ä½œå›³æ©Ÿèƒ½ã‚’用ã„ã¦ã„ã‚‹ã®ã§ï¼Œã“ã®ï¼’点ã¯æ”¾ç‰©ç·šä¸Šã ã‘ã‚’å‹•ã‹ã™ã“ã¨ãŒã§ãる。(インシデント)\\
- モードメニューã®ã€Œç›´ç·šã€ã‹ã‚‰ã€Œç‚¹ã®æ¥µç·šã€ã‚’é¸ã³ï¼Œç‚¹Dã¨æ”¾ç‰©ç·šï¼Œç‚¹Eã¨æ”¾ç‰©ç·šã‚’é †ã«æŒ‡å®šã™ã‚‹ã¨æŽ¥ç·šãŒå¼•ã‹ã‚Œã‚‹ã€‚ãã®äº¤ç‚¹ã«ç‚¹ã‚’å–る。\\
- \\
-      \includegraphics[bb=0 0 964 826 , width=6cm]{Fig/parabolaplot.png}\\
- \\
- 以上ã§ä½œå›³ãŒã§ããŸã®ã§ï¼Œæ¬¡ã®ã‚¹ã‚¯ãƒªãƒ—トを書ã„ã¦å®Ÿè¡Œã™ã‚‹ã€‚
-\begin{verbatim}
-  Parabolaplot("1",[A,B,C]);
-  Lineplot([D,F]);
-  Lineplot([E,F]);
-  Listplot([E,F,D]);
-  Hatchdata("1",["ii"],[["gr1para","s"],["sgEFD","n"]]);
-\end{verbatim}
- \\
- ã“ã‚Œã§ï¼Œæ¬¡å›³ãŒã§ãる。ã“ã®ã‚ã¨ï¼Œæ–‡å­—ãªã©ã¯é©å½“ã«è¿½åŠ ã™ã‚‹ã€‚\\
- \\
-           \input{Fig/parabolaplot}
- \\
-\begin{flushright} \hyperlink{functionlist}{$\Rightarrow$関数一覧}\end{flushright}
- \\
-\hypertarget{ovaldata}{}
-\item[関数] Ovaldata(name, 点リスト,options)
-\item[機能] 角を丸ãã—ãŸçŸ©å½¢ã‚’æã
-\item[説明] 中心ã¨å¯¾è§’ã®ï¼‘点を指定ã—,角を丸ãã—ãŸçŸ©å½¢ã‚’æã\\
- optionsã¯ï¼Œè§’ã®è½ã¨ã—å…·åˆã¨ç·šç¨®ãªã©ã€‚デフォルトã¯0.2 \\
-
-例:ã„ãã¤ã‹ã®ä¾‹ã‚’示ã™ã€‚
-\begin{verbatim}
-  Ovaldata("1", [A,B]);
-  Ovaldata("2", [C,D],[0]);
-  Ovaldata("3", [E,F],[1,"dr,3"]);
-  Ovaldata("4", [G,H],[1.5,"da"]);
-\end{verbatim}
- \input{Fig/ovaldata}\\
- \\
-\begin{flushright} \hyperlink{functionlist}{$\Rightarrow$関数一覧}\end{flushright}
-
-\hypertarget{htickmark}{}
-\item[関数] Htickmark([横座標 , æ–¹å‘ , 文字])
-\item[機能] 横軸ã«ç›®ç››ã‚’書ã。
-\item[説明] Scilabã®ã¿ã§å®Ÿè¡Œã™ã‚‹ã€‚Cinderellaã®æç”»é¢ã«ã¯å映ã•ã‚Œãªã„。引数ã¯ä½ç½®ï¼ˆæ¨ªåº§æ¨™ï¼‰ï¼Œæ–¹å‘,文字。複数点ã®æƒ…報を[ ]内ã«ã¾ã¨ã‚ã¦è¨˜å…¥ã§ãる。\\
-
-例 点$(2,\ 0)$ã®å—西å´ã«$2$を表示ã™ã‚‹ã€‚\\
-  \verb|Htickmark([2,"sw","2"]);|\\
-
-例 -5ã‹ã‚‰5ã¾ã§ã®ç›®ç››ã‚’打ã¤ã€‚\\
- Cindyscriptã®ãƒªã‚¹ãƒˆå‡¦ç†ã‚’使ã£ã¦ï¼Œæ¬¡ã®ã‚ˆã†ã«å¼•æ•°ã®ãƒªã‚¹ãƒˆã‚’作ã£ã¦æ¸¡ã™ã€‚
-\begin{verbatim}
-  memori=apply(-5..5,x,[x,"s",text(x)]);
-  memori=flatten(remove(memori,[[0,"s","0"]]));
-  Htickmark(memori);
-\end{verbatim}
- 1行目,apply ã®ã‚«ãƒƒã‚³å†…ã® -5..5 ã§ãƒªã‚¹ãƒˆ[-5,-4,-3,-2,-1,0,1,2,3,4,5] ãŒã§ãる。\\
- ãれを用ã„ã¦ï¼Œapplyã§[æ•°, "s",æ•°ã®æ–‡å­—] ã‹ã‚‰ãªã‚‹ãƒªã‚¹ãƒˆãŒã§ãる。text(x) ã¯xを文字ã«ã™ã‚‹é–¢æ•°ã€‚\\
- 2行目ã§ï¼Œã“ã®ãƒªã‚¹ãƒˆã‹ã‚‰ï¼Œ[0,"s","0"]を除ã,リストを平滑化ã™ã‚‹ã€‚\\
- çµæžœã¯æ¬¡ã®ã‚ˆã†ã«ãªã‚‹ã€‚\\
-
-\input{Fig/htickmark}\\
-
-\hypertarget{vtickmark}{}
-\item[関数] Vtickmark([横座標 , æ–¹å‘ , 文字])
-\item[機能] 縦軸ã«ç›®ç››ã‚’書ã。
-\item[説明] Htickmarkã¨åŒæ§˜ã€‚縦軸ã«ç›®ç››ã‚’書ã。\\
-
-例:点$(0,\ 1),\ (0,\ 2)$ã®è¥¿å´ã«$1,\ 2$を表示ã™ã‚‹ã€‚\\
-  \verb|Htickmark([1,"w","1",2,"w","2"]);|\\
-\\
-
-\begin{flushright} \hyperlink{functionlist}{$\Rightarrow$関数一覧}\end{flushright}
-
-\hypertarget{implicitplot}{}
-\item[関数] Implicitplot(name,å¼,xã®å®šç¾©åŸŸ,yã®å®šç¾©åŸŸ, options)
-\item[機能] 陰関数ã®ã‚°ãƒ©ãƒ•ã‚’æã。
-\item[説明] 陰関数ã®å¼ã‚’与ãˆã¦ã‚°ãƒ©ãƒ•ã‚’æã。å¼ï¼Œå®šç¾©åŸŸã¨ã‚‚文字列。\\
- options ã¯ï¼Œ"r","m","Wait=n" ãŒæŒ‡å®šã§ãる。Wait ã®åˆæœŸå€¤ã¯10。\\
- "r","m"ã«é–¢ã—ã¦ã¯ï¼Œã‚ªãƒ—ションãªã—ã¾ãŸã¯ï¼Œâ€â€ ã®ã¨ã\\
-  i) データファイルãŒãªã‘ã‚Œã°ï¼Œæ–°ã—ã作る\\
-  ii) データファイルãŒæ—¢ã«ã‚ã‚Œã°ãれを読ã¿è¾¼ã‚€\\
- "m" ã®ã¨ã,強制的ã«ãƒ‡ãƒ¼ã‚¿ãƒ•ã‚¡ã‚¤ãƒ«ã‚’作り直ã™ã€‚\\
- "r" ã®ã¨ã,ã™ã§ã«ã‚るデータファイルを読ã¿è¾¼ã‚€ã€‚\\
-
-例:楕円をæã„ã¦ï¼Œä¸­ã«ãƒãƒƒãƒã‚’ã‹ã‘る。
-\begin{verbatim}
-  Implicitplot("1","x^2+2*y^2=4","x=[-2,2]","y=[-2,2]");
-  Hatchdata("1","i",["imp1"]);
-\end{verbatim}
- 注)ã“ã“ã§ï¼Œyã®å®šç¾©åŸŸã¯å®Ÿéš›ã‚ˆã‚Šåºƒãã¨ã£ã¦ã‚る。"y=[-1,1]" ã¨ã™ã‚‹ã¨ï¼Œä¸Šä¸‹ãŒæ¬ ã‘ãŸæ¥•å††ã«ãªã‚‹ã€‚曲線ã ã‘ãªã‚‰ãã‚Œã§ã‚ˆã„ãŒï¼Œãã®å ´åˆï¼Œé–‰æ›²ç·šã§ã¯ãªã„ã®ã§Hatchdata() ã§ç„¡ç”¨ã«æ™‚é–“ãŒã‹ã‹ã£ã¦ã—ã¾ã†ã®ã§è¦æ³¨æ„。\\
- \\
-
-\hypertarget{letter}{}\item[関数] Letter([ä½ç½®, æ–¹å‘, 文字列])
-\item[機能] 文字列を表示ã™ã‚‹
-\item[説明] 「ä½ç½®ï¼ˆåº§æ¨™ï¼‰ã€ã¨æ–¹å‘ã§æŒ‡å®šã•ã‚ŒãŸå ´æ‰€ã«æ–‡å­—を書ã込む。\\
- ä½ç½®ï¼ˆåº§æ¨™ï¼‰ã¯ç‚¹ã®åå‰ã§æŒ‡å®šã™ã‚‹ã“ã¨ã‚‚ã§ãる。場所ã¯ä¸Šä¸‹å·¦å³ä¸­å¤®ï¼ˆ n/s/w/e/c )ã®æ–¹å‘ã§è¡¨ã™ã€‚(n/s/w/e ã¯æ±è¥¿å—北ã®è¨˜å·ï¼‰\\
- \\
-       \input{Fig/letter4}\\
- 指定ä½ç½®ã‹ã‚‰ã®è·é›¢ã‚’,数値ã§ä¸Žãˆã‚‹ã“ã¨ã‚‚ã§ã,e2, e3 㯠e より少ã—離ã—ã¦ç½®ã。\\
- 複数ã®æ–‡å­—列をリストã®å½¢ã«ã—ã¦æ¸¡ã™ã“ã¨ãŒã§ãる。\\
- 注)導関数ã®è¨˜å·$'$ã¯ï¼Œæ•°å¼ãƒ¢ãƒ¼ãƒ‰ï¼ˆ\$ ã§ã¯ã•ã‚€ï¼‰ã§$`$(ãƒãƒƒã‚¯ã‚¯ã‚¦ã‚©ãƒ¼ãƒˆï¼‰ã‚’用ã„る。\\
-
-例:座標 (2,1) ã®å—æ±ã«ï¼°ã‚’表示\\
-    \verb|Letter([2,1] ,"se","P");|\\
-  点Cを中央ã¨ã—ã¦ï¼£ã‚’表示\\
-    \verb|Letter(C ,"c", "C");|\\
-  点Aã®å—西ã«A,Eã®å—ã«æ•°å¼ã‚’表示\\
-    \verb|Letter([A,"sw","A",E,"s","$ f(x)=\frac{1}{4} x^2 $"]);| \\
- \\
-%\input{Fig/letter3}
-
-\hypertarget{letterrot}{}\item[関数] Letterrot(座標, æ–¹å‘ベクトル,移動é‡, 文字列)
-\item[機能] 文字列を回転ã—ã¦è¡¨ç¤ºã™ã‚‹
-\item[説明] 座標ã§ç¤ºã•ã‚ŒãŸä½ç½®ã«ï¼Œæ–¹å‘ベクトルã§æŒ‡å®šã•ã‚ŒãŸå‘ãã«å›žè»¢ã—ã¦æ–‡å­—を書ã込む。\\
- 第3引数ã¯å¾®å°ç§»å‹•é‡ã§ï¼Œç•¥ã™ã“ã¨ã‚‚ã§ãる。\\
- A(1,1),B(3,2),C(0,2) ã®ã¨ã,次ã®ã‚¹ã‚¯ãƒªãƒ—トã¯åŒã˜çµæžœã«ãªã‚‹ã€‚
-\begin{verbatim}
-   Letterrot([0,2],[2,1],2,5,"AB");
-   Letterrot([0,2],B-A,2,5,"AB");
-   Letterrot(C,B-A,2,5,"AB");
-   Letterrot(C,B-A,"t2n5","AB");
-\end{verbatim}
- 移動é‡ã‚’ç•¥ã—ã¦\\
-   \verb|Letterrot(C,B-A,"AB");|\\
- ã¨ã™ã‚‹ã“ã¨ã‚‚ã§ãる。ã“ã®å ´åˆã¯ï¼Œå¾®å°ãªç§»å‹•ã¯ã•ã‚Œãªã„。\\
-
-
-\begin{flushright} \hyperlink{functionlist}{$\Rightarrow$関数一覧}\end{flushright}
-
-\hypertarget{lineplot}{}
-\item[関数] Lineplot(name , 2点ã®ãƒªã‚¹ãƒˆ , options)
-\item[機能] 2点ã®ãƒªã‚¹ãƒˆã§ç¤ºã•ã‚ŒãŸç‚¹ã‚’çµã¶ç›´ç·šã‚’æã。プロットデータåã®é ­éƒ¨ã¯ ln
-\item[説明] 2点ã®ãƒªã‚¹ãƒˆã¯åº§æ¨™ã¾ãŸã¯å¹¾ä½•è¦ç´ ã®åå‰ã§ä¸Žãˆã‚‹ã€‚\\
-  options ã¯æ¬¡ã®é€šã‚Šã€‚\\
-   線種   "dr, n" , "da,m,n" , "do,m,n"\\
-   "+"   åŠç›´ç·šã‚’æã。\\
-  "dr" , "da" , "do" 㨠"+" ã¯ãƒªã‚¹ãƒˆã«ã—ã¦ä¸¡æ–¹æŒ‡å®šã™ã‚‹ã“ã¨ãŒã§ãる。\\
- 点ã®ãƒªã‚¹ãƒˆãŒï¼Œåº§æ¨™ã§ã¯ãªã幾何è¦ç´ åã®ãƒªã‚¹ãƒˆã®å ´åˆã¯ï¼Œnameã¯çœç•¥ã§ãる。\\
- ã„ãã¤ã‹ä¾‹ã‚’示ã™ã€‚\\
-   å„座標をçµã¶ç›´ç·šã‚’引ã\\
-      \verb|Lineplot("1",[[0,0],[1,2]])| \\
-   Cinderellaã®æ画ツールã§ï¼’点A,Bã‚’ã¨ã£ã¦ãŠã,直線ABを引ã\\
-     \verb|Lineplot([A,B]);| \\
- optionã®åƒãã®ä¾‹\\
-   \verb|Lineplot([A,B],["dr,0.5","+"]);|  Aを端点ã¨ã™ã‚‹åŠç›´ç·šã‚’引ã\\
-   \verb|Lineplot([C,D],["dr,2"]);|    直線CDを太ã•2ã§æã\\
-   \verb|Lineplot([E,F],["da"]);|     直線EFã‚’ç ´ç·šã§æã\\
-   \verb|Lineplot([G,H],["do"]);|     直線GHを点線ã§æã\\
- çµæžœã¯ï¼Œæ¬¡å›³å·¦ä¸Šã‹ã‚‰ã€‚\\
-
-      \input{Fig/lineplot}\\
-
-\begin{flushright} \hyperlink{functionlist}{$\Rightarrow$関数一覧}\end{flushright}
-\newpage
-
-\hypertarget{listplot}{}
-\item[関数] Listplot(name , 点ã®ãƒªã‚¹ãƒˆ , options)
-\item[機能] 点ã®ãƒªã‚¹ãƒˆã§ç¤ºã•ã‚ŒãŸç‚¹ã‚’çµã¶ã€‚プロットデータåã®é ­éƒ¨ã¯ sg
-\item[説明] 点ã®ãƒªã‚¹ãƒˆã¯åº§æ¨™ã¾ãŸã¯å¹¾ä½•è¦ç´ åã®ãƒªã‚¹ãƒˆã§ä¸Žãˆã‚‹ã€‚点ãŒï¼Œåº§æ¨™ã§ã¯ãªã幾何è¦ç´ åã®å ´åˆã¯ï¼Œnameã¯çœç•¥å¯ \\
- プロットデータã®åå‰ã¯ï¼Œ"sg" ã«å¼•æ•°ã® name を付加ã—ãŸã‚‚ã®ã¨ãªã‚‹ã€‚\\
- options ã¯æ¬¡ã®é€šã‚Šã€‚\\
-  線種   "dr, n" , "da,m,n" , "do,m,n"
-\begin{tabbing}
-1234567890123456789012345678901234\=\kill
- optionsã®ä½¿ç”¨ä¾‹\\
-  \verb|Listplot([A,B]);|      \>線分ABã‚’æã。太ã•ã¯ãƒ‡ãƒ•ã‚©ãƒ«ãƒˆã€‚\\
-  \verb|Listplot([C,D],["dr,2"]);|   \>線分ABã‚’æã。太ã•ï¼’\\
-  \verb|Listplot([E,F],["da"]);|    \>線分ABã‚’ç ´ç·šã§æã\\
-  \verb|Listplot([G,H],["da,3,1"]);|  \>線分ABã‚’ç ´ç·šã§æã。線を長ã\\
-  \verb|Listplot([K,L],["da,1,3"]);|   \>線分ABã‚’ç ´ç·šã§æã。間隔を空ã‘ã‚‹\\
-  \verb|Listplot([M,N],["do"]);|   \>線分ABを点線ã§æã。\\
-  \verb|Listplot([O,P],["do,3"]);|   \>線分ABを点線ã§æã。間隔を空ã‘ã‚‹\\
-  \verb|Listplot([Q,R],["do,3,3"]);|  \>線分ABを点線ã§æã。間隔を空ã‘ã¦å¤ªã\\
- çµæžœã¯æ¬¡å›³å·¦ã‹ã‚‰ã€‚
-\end{tabbing}
-  \input{Fig/listplot3}
-
- 例 : Cinderellaã®ä½œå›³ãƒ„ールã§ä¸‰è§’å½¢ABCã‚’æã„ã¦ãŠã。
-\begin{verbatim}
-     Listplot([A,B,C,A]);
-     Addax(0);
-\end{verbatim}
-    \input{Fig/listplot1}\\
-   å„座標を頂点ã¨ã™ã‚‹ä¸‰è§’形をæã\\
-    \verb|Listplot("1",[[0,0],[2,0],[1,2],[0,0]]);|
-\\
- プロットデータã¯ç‚¹ã®åº§æ¨™ã®ãƒªã‚¹ãƒˆã§ã‚る。ã—ãŸãŒã£ã¦ï¼Œãƒ—ロットデータを自作ã—ã¦Listplot()ã§è¡¨ç¤ºã™ã‚‹ã“ã¨ãŒã§ãる。\\
- \\
-例:有é™ãƒ•ãƒ¼ãƒªã‚¨ç´šæ•°å±•é–‹\\
-         \[\cfrac{\pi}{2}+\sum_{n=0}^{30} \cfrac{1-(-1)^n}{n}\sin nx\]
-次ã®ã‚ˆã†ã«Cindyscriptã§é–¢æ•°ã‚’定義ã—,プロットデータpd を作ã£ã¦å¼•æ•°ã«æ¸¡ã™ã€‚
-\begin{verbatim}
- f(x):=(
-  s=pi/2;
-  repeat(30,n,s=s+(1-(-1)|^n)/n*sin(n*x));
- );
- pd=apply(0..200,t,
-  x=-2*pi+t*4*pi/200;
-  [x,f(x)];
- );
- Listplot("1",pd);
- Expr([[-2*pi,-0.5],"s","-2\pi",[-pi,-0.5],"s","-\pi",[pi,-0.5],"s",
-   "\pi",[2*pi,-0.5],"s","2\pi",[0,pi],"w2","\pi"]);
-\end{verbatim}
- \\
-\begin{center}
-\input{Fig/fourier}
-\end{center}
- \\
- リストã®é•·ã•ã«ã¯åˆ¶é™ãŒã‚ã‚‹ãŸã‚,ã‚ã¾ã‚Šé•·ã„リストを用ã„ãŸã‚Šï¼Œä½•åº¦ã‚‚用ã„ãŸã‚Šã™ã‚‹ã“ã¨ãŒã§ããªã„。ãŸã¨ãˆã°ï¼Œã‚¿ãƒ¼ãƒˆãƒ«ã‚°ãƒ©ãƒ•ã‚£ã‚¯ã‚¹ã‚’用ã„ãŸã‚·ã‚§ãƒ«ãƒ”ンスキーã®ã‚®ãƒ£ã‚¹ã‚±ãƒƒãƒˆã§ã¯ï¼Œæ¬¡ã®ã‚µã‚¤ã‚ºãらã„ã¯å¯èƒ½ã ãŒï¼Œæ¤ç‰©ã®æˆé•·ãƒ¢ãƒ‡ãƒ«ã§ã¯åˆ†å²ãŒå¤šã„ãŸã‚ã‚ã¾ã‚Šå¤§ããªå›³ã¯ã§ããªã„。スクリプトを工夫ã—ã¦ï¼Œ200ãらã„ãšã¤ã®ãƒªã‚¹ãƒˆã«åˆ†å‰²ã™ã‚‹ã€‚\\
-      \input{Fig/listplot2}
- \\
- \\
-\hypertarget{mesegmets}{}
-\item[関数] Mksegments()
-\item[機能] 幾何線分ã®ã™ã¹ã¦ã®PD を作æˆ
-\item[説明] Ketinit() ã®ç›´å¾Œã«ç½®ãã“ã¨ã«ã‚ˆã‚Šï¼ŒCinderellaã®ä½œå›³ãƒ„ールã§æã„ãŸã™ã¹ã¦ã®ç·šåˆ†ã‚’ãã®ã¾ã¾ãƒ—ロットデータã¨ã™ã‚‹ã€‚ãŸã¨ãˆã°ï¼Œç·šåˆ†ABを作るã¨ï¼Œãƒ—ロットデータsgABãŒä½œæˆã•ã‚Œã‚‹ã€‚ãã®å¾Œï¼Œã‚¤ãƒ³ã‚¹ãƒšã‚¯ã‚¿ã§ç‚¹Bã®è­˜åˆ¥åを変更(ãŸã¨ãˆã°Qã«ï¼‰ã™ã‚‹ã¨ï¼Œãƒ—ロットデータåも変更ã•ã‚Œã‚‹ã€‚線分ã¯ã™ã§ã«æã‹ã‚Œã¦ã„ã¦ã‚‚よã„。\\
-
-\hypertarget{mkcircle}{}
-\item[関数] Mkcircles()
-\item[機能] 幾何円ã®ã™ã¹ã¦ã®PD を作æˆ
-\item[説明] Ketinit() ã®ç›´å¾Œã«ç½®ãã“ã¨ã«ã‚ˆã‚Šï¼ŒCinderellaã®ä½œå›³ãƒ„ールã®ã€Œå††ã‚’加ãˆã‚‹ã€ã§æã„ãŸã™ã¹ã¦ã®å††ã‚’ãã®ã¾ã¾ãƒ—ロットデータã¨ã™ã‚‹ã€‚ãŸã¨ãˆã°ï¼Œä¸­å¿ƒA,円周上ã®ç‚¹ã‚’Bã¨ã—ãŸå††ã‚’作るã¨ï¼Œãƒ—ロットデータcrABãŒä½œæˆã•ã‚Œã‚‹ã€‚ãã®å¾Œï¼Œã‚¤ãƒ³ã‚¹ãƒšã‚¯ã‚¿ã§ç‚¹Bã®è­˜åˆ¥åを変更(ãŸã¨ãˆã°Qã«ï¼‰ã™ã‚‹ã¨ï¼Œãƒ—ロットデータåも変更ã•ã‚Œã‚‹ã€‚円ã¯ã™ã§ã«æã‹ã‚Œã¦ã„ã¦ã‚‚よã„。\\
-\\
-
-\begin{flushright} \hyperlink{functionlist}{$\Rightarrow$関数一覧}\end{flushright}
-
-\hypertarget{mkbeziercrv}{}
-\item[関数] Mkbeziercrv(åå‰,[[節点リスト,制御点リスト],[節点リスト,制御点リスト],...],\\
-\hfill[オプション] )
-\item[機能] 複数ã®ãƒ™ã‚¸ã‚¨æ›²ç·šã‚’æã
-\item[説明] å˜ç‹¬ã®ãƒ™ã‚¸ã‚¨æ›²ç·šã®å ´åˆã¯ãƒªã‚¹ãƒˆã®å¤–å´ã®[ ]ã¯ãªãã¦ã‚‚よã„。\\
-Mkbeziercrv|(åå‰ï¼Œ[節点リスト,制御点リスト],[オプション] ) ã¯\\
-Bezier(åå‰ï¼Œç¯€ç‚¹ãƒªã‚¹ãƒˆï¼Œåˆ¶å¾¡ç‚¹ãƒªã‚¹ãƒˆï¼Œ[オプション] ) ã¨åŒã˜ã€‚
-
-
-\vspace{2mm}
-
-例:\verb|Mkbeziercrv("n",[[A,B,C],[[D],[E,F]]]);| ã¯\\
-  \verb|Bezier("n",[A,B,C],[[D],[E,F]]);| ã¨åŒã˜ã€‚\\
-  曲線ã®åå‰ãŒ bzn ã§ã¯ãªã bzn1 ã¨ãªã‚‹ã€‚
-
-\vspace{2mm}
-
-\begin{layer}{150}{0}
-\putnotese{30}{45}{bz51}
-\putnotese{90}{45}{bz52}
-\putnotese{0}{5}{\input{Fig/checkmc1}}
-\end{layer}
-
-複数ã®å ´åˆã¯ï¼Œ\verb|[ [ptlist1,ctrlist1], [ptlist2,ctrlist2],... ]|
-
-\verb|Mkbeziercrv("5",[[[A,B,C],[[D],[E,F]]],[[G,H,K,L],[[M],[N,O],[P]]]]);|
-
-\vspace{40mm}
-\begin{verbatim}
-ptlist1=[A,B,C];ctrlist1=[[D],[E,F]];list1=[ptlist1,ctrlist1];
-ptlist2=[G,H,K,L];ctrlist2=[[M],[N,O],[P]];list2=[ptlist2,ctrlist2];
-list=[list1,list2];
-Mkbeziercrv("5",list);
-\end{verbatim}
-ãªã©ã¨ã—ã¦ã‚‚åŒã˜ã€‚
- \\
- \\
-\begin{flushright} \hyperlink{functionlist}{$\Rightarrow$関数一覧}\end{flushright}
-
-\hypertarget{mkbezierptcrv}{}
-\item[関数] Mkbezierptcrv(節点リストptlist,[オプション] )
-\item[機能] ベジエ曲線をæã
-\item[説明] 制御点ã¯ï¼Œè‡ªå‹•çš„ã«é…ç½®ã•ã‚Œã‚‹ã€‚ãã®å¾Œï¼Œç¯€ç‚¹ã‚„制御点を動ã‹ã—ã¦ï¼Œ
-æããŸã„ã‚‚ã®ã«ã™ã‚‹ã€‚
-
-複数ã®å ´åˆã¯ã€€[ ptlist1, ptlist2.... ]
-
-åå‰ã¯ï¼ŒA ã‹ã‚‰é †ã«è‡ªå‹•çš„ã«ã¤ã‘る。
-
-オプション
-
-"Deg=...â€ã€€æ¬¡æ•°æŒ‡å®šãŒã§ãる。(デフォルトã¯ï¼“次)
-
-"Num=..." å„区間ã®åŒºé–“数(分点数ー1)を指定ã§ãる。(デフォルトã¯10)
-
-\vspace{5mm}
-
-例:
-
-\begin{layer}{150}{0}
-\putnotese{50}{15}{bzA}
-\putnotese{50}{-5}{\input{Fig/checkb8}}
-\end{layer}
-
-\verb|Mkbezierptcrv([A,B,C]);|
-
-
-\vspace{25mm}
-
-\begin{layer}{150}{0}
-\putnotese{50}{15}{bzA}
-\putnotese{60}{-10}{\input{Fig/checkb11}}
-\end{layer}
-
-ãã®å¾Œï¼Œç¯€ç‚¹ã‚„制御点を動ã‹ã—ã¦ï¼Œ
-
-æããŸã„ã‚‚ã®ã«ã™ã‚‹ã€‚
-
-\vspace{30mm}
-
-\begin{layer}{150}{0}
-\putnotese{80}{25}{bzA}
-\putnotese{50}{-5}{\input{Fig/checkb9}}
-\end{layer}
-
-\verb|Mkbezierptcrv([A,B,C],["Deg=2"]);|
-
-Deg=2 ã¨ã™ã‚‹ã¨ï¼’次ã«ãªã‚‹ã€‚
-
-制御点ã¯å„区間ã«ï¼‘個ãšã¤ã§ãる。
-
-\vspace{20mm}
-
-\begin{layer}{150}{0}
-\putnotese{20}{45}{bzA}
-\putnotese{80}{45}{bzB}
-\putnotese{0}{10}{\input{Fig/checkb10}}
-\end{layer}
-
-複数ã®å ´åˆã¯ã€€[ ptlist1, ptlist2.... ]
-
-\verb|Mkbezierptcrv([[A,B,C],[D,E,F,G]]);|
-
-\vspace{25mm}
- \\
-
-
-\begin{flushright} \hyperlink{functionlist}{$\Rightarrow$関数一覧}\end{flushright}
-\hypertarget{paramark}{}
-\item[関数] Paramark(点リスト , options)
-\item[機能] 点リスト[A,B,C]ã§ç¤ºã•ã‚ŒãŸè§’ã«å¹³è¡Œå››è¾ºå½¢ã®å½¢çŠ¶ã®è§’ã®å°ã‚’ã¤ã‘る。
-\item[説明] optionsã¯æ¬¡ã®é€šã‚Šã€‚\\
-  数値   角ã®å°ã®å¤§ãã•ã€‚デフォルトã¯ï¼‘\\
-  線種   "dr, n" , "da,m,n" , "do,m,n"\\
-  "Expr=文字" : 文字を入れる\\
-  "Expr=ä½ç½® , 文字" : ä½ç½®ã‚’指定ã—ã¦æ–‡å­—を入れる。ä½ç½®ã¯é ‚点ã‹ã‚‰ã®è·é›¢ã€‚\\
-
-例:三角形ã®å†…角ã«å°ã‚’ã„れ,文字を書ã込む。
-\begin{verbatim}
-   Paramark([B,A,C]);
-   Paramark([C,B,A],[3,"Expr=B"]);
-   Paramark([A,C,B],["dr,2","Expr=2,C"]);
-\end{verbatim}
- \input{Fig/paramark}\\
-
-※角ã®å°ã«ã¯å¼§ã®å½¢çŠ¶ã®ã‚‚ã®ã‚‚ã‚る。Anglemark() ã‚’å‚ç…§ã®ã“ã¨ã€‚\\
-
-\begin{flushright} \hyperlink{functionlist}{$\Rightarrow$関数一覧}\end{flushright}
-
-\hypertarget{paramplot}{}
-\item[関数] Paramplot(name , å¼ , 変数ã¨å®šç¾©åŸŸ,options)
-\item[機能] 媒介変数表示ã®æ›²ç·šã‚’æã。プロットデータã®é ­éƒ¨ã¯ gp
-\item[説明] å¼ã¯""ã§ããã£ãŸåª’介変数表示ã®ãƒªã‚¹ãƒˆã§ä¸Žãˆã‚‹ã€‚\\
- 定義域も " " ã§ããã£ã¦æ–‡å­—列ã¨ã—,t=ã«ç¶šã„ã¦ãƒªã‚¹ãƒˆã§æŒ‡å®šã™ã‚‹ã€‚\\
- options ã¯ç·šç¨®ãŒæœ‰åŠ¹\\
-
-例:サイクロイド曲線をæã。\\
-  \verb|Paramplot("1","[t-sin(t),1-cos(t)]","t=[0,2*pi]");|\\
-
-\input{Fig/paramplot1}\\
-\begin{verbatim}
- Deffun("fx(t)", ["regional(x)","x=t-sin(t)","x"]);
- Deffun("fy(t)", ["regional(y)","y=1-cos(t)","y"]);
- Paramplot("1","[fx(t),fy(t)]","t=[0,2*pi]");
-\end{verbatim}
-ã¨ã™ã‚Œã°ï¼Œé–¢æ•°å®šç¾©ã‚‚ Scilab ã«å¼•ã継ãŒã‚Œã‚‹ã€‚\\
- \\
-optionsã®ä½¿ç”¨ä¾‹ã€‚å·¦ã‹ã‚‰ï¼Œãƒ‡ãƒ•ã‚©ãƒ«ãƒˆï¼Œå¤ªç·šï¼Œç ´ç·šï¼Œç‚¹ç·šã®æ¥•å††
-\begin{verbatim}
- Paramplot("1","[2*cos(t),sin(t)]","t=[0,2*pi]");
- Paramplot("2","[2*cos(t)+5,sin(t)]","t=[0,2*pi]",["dr,2"]);
- Paramplot("3","[2*cos(t),sin(t)+3]","t=[0,2*pi]",["da"]);
- Paramplot("4","[2*cos(t)+5,sin(t)+3]","t=[0,2*pi]",["do"]);
-\end{verbatim}
-\input{Fig/paramplot2}
-\\
-
-\begin{flushright} \hyperlink{functionlist}{$\Rightarrow$関数一覧}\end{flushright}
-
-\hypertarget{plotdata}{}
-\item[関数] Plotdata(name , å¼ , 変数ã¨å®šç¾©åŸŸ , options)
-\item[機能] 関数ã®ã‚°ãƒ©ãƒ•ã‚’æã。プロットデータã®åå‰ã¯ï¼Œgr
-\item[説明] å¼ã§è¡¨ã•ã‚ŒãŸé–¢æ•°ã®ã‚°ãƒ©ãƒ•ã‚’,指定ã•ã‚ŒãŸå®šç¾©åŸŸã§æã。\\
- å¼ï¼Œå®šç¾©åŸŸã¯ " " ã§ããã£ã¦æ–‡å­—列ã¨ã™ã‚‹ã€‚定義域ã¯x=ã«ç¶šã„ã¦ãƒªã‚¹ãƒˆã§æŒ‡å®šã€‚\\
- options ã¯æ¬¡ã®é€šã‚Šã€‚
-\begin{tabbing}
-12345678901234567890123\=\kill
-  線種   \>"dr, n" , "da,m,n" , "do,m,n"\\
-  "Num=数値"    \>æ画時ã®åˆ†å‰²æ•°\\
-  "Dis=数値"    \>値ãŒæŒ‡å®šæ•°å€¤ä»¥ä¸Šã‚¸ãƒ£ãƒ³ãƒ—ã™ã‚‹å ´åˆã¯ä¸é€£ç¶šç‚¹ã¨ã¿ãªã™ã€‚\\
-  "Exc=数値リスト \>リストã§ç¤ºã•ã‚ŒãŸç‚¹ã¯é™¤å¤–ã™ã‚‹ã€‚\\
-  "Exc=関数"   \>関数ã®é›¶ç‚¹ã¯é™¤å¤–ã™ã‚‹ã€‚\\
-\end{tabbing}
- 例:2次関数 $f(x)=x^2-2x$ ã®ã‚°ãƒ©ãƒ•ã‚’定義域指定ãªã—ã§æã。\\
-   \verb|Plotdata("1","x^2-2*x","x");|\\
- \\
-  \input{Fig/plotdata1}
- \\
- \\
- 例:三角関数 $2\sin \left(2x-\dfrac{\pi}{4} \right)$  ã®ã‚°ãƒ©ãƒ•ã‚’,定義域 $0 \leqq x \leqq 2 \pi$ã§æã。\\
-    \verb|Plotdata("3","2*sin(2*x-pi/4)","x=[0,2*pi]");|\\
- \\
-    \input{Fig/plotdata2}
- \\
- CindyScript ã§ã¯ï¼Œplot( å¼ , 定義域 ); ã§æããŒï¼Œ \ketcindy を用ã„ã‚‹ã¨ãã¯ï¼ŒCindyScript ã®plot 関数ã®ã‹ã‚ã‚Šã«ï¼Œã“ã®Plotdata を使ãˆã°ã‚ˆã„。\\
- 軸ã«æ•°å­—を入れるã®ã§ã‚ã‚Œã°ï¼ŒLetter() を用ã„る。\\
-
-optionsã®ä½¿ç”¨ä¾‹\\
- \verb|Plotdata("1","sin(x)","x");| $f(x)=$sin$x$ ã®ã‚°ãƒ©ãƒ•ã‚’æã(デフォルト)\\
- \verb|Plotdata("2","sin(x)+1","x",["dr,2"]);| åŒã˜ã,太ã•ï¼’ã§æã\\
- \verb|Plotdata("3","sin(x)+2","x",["da"]);|  åŒã˜ã,破線ã§æã\\
- \verb|Plotdata("4","sin(x)+3","x",["do"]);|  åŒã˜ã,点線ã§æã\\
-çµæžœã¯æ¬¡å›³ä¸Šã‹ã‚‰ã€‚\\
- \\
-     \input{Fig/plotdata3}\\
-
- Num=分割数ã®æŒ‡å®š\\
- グラフã®æç”»ã¯ï¼ŒåŒºé–“を分割ã—ã¦é–¢æ•°å€¤ã‚’ã¨ã‚Šï¼Œå„点をçµã¶ã¨ã„ã†é€šå¸¸ã®æ–¹æ³•ã«ã‚ˆã£ã¦ã„る。Nã®æŒ‡å®šã¯ã“ã®åˆ†å‰²æ•°ã®æŒ‡å®šã§ã‚る。デフォルトã¯50。æ€ã†ã‚ˆã†ãªçµæžœãŒå¾—られãªã„å ´åˆã¯ã“ã®å€¤ã‚’大ãã指定ã™ã‚‹ã¨ã‚ˆã„。\\
- 下図左ã¯ãƒ‡ãƒ•ã‚©ãƒ«ãƒˆï¼Œå³ã¯ Num=200 ã¨ã—ãŸã€‚\\
-
-    \input{Fig/plotdata4}\\
-
- ä¸é€£ç¶šç‚¹ã®æŒ‡å®š\\
- Dis オプションã«ã‚ˆã‚Šï¼Œå€¤ãŒã‚¸ãƒ£ãƒ³ãƒ—ã™ã‚‹ä¸é€£ç¶šç‚¹ã‚’ç·šã§çµã°ãªã„よã†ã«ã™ã‚‹ã€‚Numオプションã¨åˆã‚ã›ã¦ä½¿ã†ã¨åŠ¹æžœãŒä¸ŠãŒã‚‹ã€‚\\
-
- 例:$f(x)=$tan$x$ ã®ã‚°ãƒ©ãƒ•ã¯ï¼Œãã®ã¾ã¾ã§ã¯ã‚ãŸã‹ã‚‚漸近線ãŒæã‹ã‚ŒãŸã‚ˆã†ã«ãªã‚‹ãŒï¼Œã“ã‚Œã¯ï¼Œä¸é€£ç¶šç‚¹ã‚’ãã®ã¾ã¾çµã‚“ã§ã„ã‚‹ãŸã‚ã§ã‚る。
-\begin{verbatim}
- Deffun("f(x)", ["regional(y)","y=tan(x)","y"]);
- Plotdata("1","f(x)","x",["Num=200","Dis=50"]);
-\end{verbatim}
-ã§æ¼¸è¿‘ç·šãŒæã‹ã‚Œãªããªã‚‹ã€‚\\
-
-ã€€ä¾‹ï¼šã‚¬ã‚¦ã‚¹è¨˜å· [$x$] ã§è¡¨ã•ã‚Œã‚‹é–¢æ•°ã®ã‚°ãƒ©ãƒ•ã¯ï¼Œä¸é€£ç¶šãªéšŽæ®µçŠ¶ã«ãªã‚‹ã€‚ã“ã®é–¢æ•°ã¯å¤©äº•é–¢æ•° floor()ã§ã‚ã‚‹ã®ã§ï¼Œ
-\begin{verbatim}
- Deffun("f(x)", ["regional(y)","y=floor(x)","y"]);
- Plotdata("1","f(x)","x",["Num=100","Dis=0.9"]);
-\end{verbatim}
-ã§ãã‚Œã„ã«æã‘る。\\
-
-       \input{Fig/plotdata5}\\
-
- 関数ã«æ–‡å­—ä¿‚æ•°ãŒã¤ã„ã¦ãŠã‚Šï¼Œæ–‡å­—ä¿‚æ•°ã®å€¤ã‚’変化ã•ã›ãªãŒã‚‰ã‚°ãƒ©ãƒ•ã‚’æãã«ã¯ï¼ŒAssign を使ã†ã€‚\\
- \\
- 例:直線 $y=bx-b^2$ ã®ä¿‚æ•°$b$を変化ã•ã›ã¦æã,包絡線をã†ã‹ã³ã‚ãŒã‚‰ã›ã‚‹ã€‚
-\begin{verbatim}
-    repeat(50,t,
-      cb=t/5-5;
-      Plotdata(text(t),Assign("b*x-b\verb|^|2","b",cb),"x");\\
-    );
-\end{verbatim}
- \\
-      \input{Fig/assign}\\
-
-\begin{flushright} \hyperlink{functionlist}{$\Rightarrow$関数一覧}\end{flushright}
-
-\hypertarget{pointdata}{}
-\item[関数] Pointdata(name , 点リスト , optionss)
-\item[機能] 点を作ã£ã¦Scilabã«ç‚¹ã®ãƒªã‚¹ãƒˆ Pointdata(list)を出力ã™ã‚‹ã€‚
-\item[説明] 点データを作æˆã™ã‚‹ã€‚ã“ã®ç‚¹ã¯ï¼Œå¹¾ä½•è¦ç´ ã§ã¯ãªã„。プロットデータã®é ­éƒ¨ã¯ pt\\
- 例:\verb|Pointdata("1",[[1,2],[-2,3]]);|\\
-    2ã¤ã®ç‚¹ãƒ‡ãƒ¼ã‚¿ã‚’作る。Cinderellaã®æç”»é¢ã§ã¯ç·‘ã®ç‚¹ã§è¡¨ç¤ºã•ã‚Œã‚‹ã€‚\\
-   \verb|Pointdata("1",[A,B]);|\\
-    作図ã—ãŸç‚¹A,Bã«ã¤ã„ã¦ï¼Œç‚¹ãƒ‡ãƒ¼ã‚¿ã‚’作る。\\
-    Cinderellaã®æç”»é¢ä¸Šã§ã¯æ—¢å­˜ã®ç‚¹A,Bã«ç·‘ã®ç‚¹ãŒé‡ãªã£ã¦è¡¨ç¤ºã•ã‚Œã‚‹ã€‚\\
-   \verb|Pointdata("1",A,["size=4"]);|\\
-    Aã®ä½ç½®ã«å¤§ãã•ï¼”ã§ç‚¹ã‚’作る。Ptsize(Setpt) ã®é …ã‚’å‚ç…§ã®ã“ã¨ã€‚\\
-   \verb|Pointdata("1",[A,B],[0]);|\\
-    点データを作り,TeXã«ã‚ªãƒ—ション0(白抜ã)ã§æã\\
-   \verb|Pointdata("1",[[3,4],[5,6]],["notex"]);|\\
-    点データを作るãŒï¼ŒTeXã«ã¯æã‹ãªã„\\
-   \verb|Pointdata("1",[A,B],["nodisp"]);|\\
-    点データを作らãªã„.(戻り値ã¨ã—ã¦è¿”ã™ï¼‰\\
-
-  生æˆã•ã‚Œã‚‹ãƒªã‚¹ãƒˆã¯ï¼Œåº§æ¨™ã®ãƒªã‚¹ãƒˆãŒãƒã‚¹ãƒˆã—ãŸå½¢ã«ãªã£ã¦ã„る。\\
-  ãã®å†…容ã¯ï¼Œprintln()を用ã„ã¦ã‚³ãƒ³ã‚½ãƒ¼ãƒ«ã«è¡¨ç¤ºã™ã‚‹ã“ã¨ãŒã§ãる。ãŸã¨ãˆã°
- \begin{verbatim}
-   Pointdata("1",[[1,2],[3,4],[6,2]]);
-   println(pt1);
-\end{verbatim}
-  ã§ï¼Œã‚³ãƒ³ã‚½ãƒ¼ãƒ«ã«æ¬¡ã®ã‚ˆã†ã«è¡¨ç¤ºã•ã‚Œã‚‹ã€‚
-\begin{verbatim}
-   generate pointdata pt1
-   [[[1,2]],[[3,4]],[[6,2]]]
-\end{verbatim}
- ãƒã‚¹ãƒˆã•ã‚ŒãŸãƒªã‚¹ãƒˆã¯ï¼ŒCindyscriptã® flatten() 関数を利用ã—ã¦å¹³æ»‘化(ãƒã‚¹ãƒˆã‚’解除)ã™ã‚‹ã“ã¨ã«ã‚ˆã‚Šï¼ŒListplot()ã§åˆ©ç”¨ã™ã‚‹ã“ã¨ãŒã§ãる。\\
- \\
- 例:\verb|Ptsize(3);|\\
-   \verb|Pointdata("1",[[1,2],[3,4],[6,2]]);|\\
-   \verb|Listplot("1",flatten(pt1));|\\
-  ã“ã‚Œã§ï¼Œç¯€ç‚¹ã‚’明示ã—ãŸæŠ˜ã‚Œç·šãŒæã‘る。(下図左)\\
-    \verb|Listplot("1",[[1,2],[3,4],[6,2]]);|\\
-   ã§ã¯ç·šåˆ†ã®ã¿ãŒæã‹ã‚Œã‚‹ã€‚(下図å³ï¼‰\\
-    \input{Fig/pointdata}\\
-\begin{flushright} \hyperlink{functionlist}{$\Rightarrow$関数一覧}\end{flushright}
-
-\hypertarget{polygonplot}{}
-\item[関数] Polygonplot(name , 点リスト , 整数,optionss)
-\item[機能] 2点を指定ã—ã¦æ­£å¤šè§’形をæã。
-\item[説明] 円ã«å†…接ã™ã‚‹æ­£å¤šè§’形をæã,頂点ã®å¹¾ä½•ç‚¹ã‚’作る。\\
- 例:\verb|Polygonplot("1",[A,B],12);|\\
- 点Aを中心ã¨ã—,åŠå¾„ABã®å††å‘¨ä¸Šã«ï¼Œç‚¹Bã‹ã‚‰ã‚¹ã‚¿ãƒ¼ãƒˆã—ã¦æ­£å二角形ã®é ‚点B1〜B11ã‚’å時計回りã«ä½œã‚Šï¼Œã“れをçµã‚“ã æ­£å¤šè§’形をæã。頂点ã¯å¹¾ä½•ç‚¹ã€‚\\
- 整数ã§ãªã„数を指定ã—ãŸå ´åˆã¯ï¼Œãã¡ã‚“ã¨é–‰ã˜ãªã„折れ線ãŒæã‹ã‚Œã‚‹ã€‚\\
-
-
-\hypertarget{putintersect}{}
-\item[関数] Putintersect(点å , PD1 ,PD2,[No] )
-\item[機能] 2曲線ã®äº¤ç‚¹ã‚’作る
-\item[説明] 2曲線ã¯ãƒ—ロットデータåã§æŒ‡å®šã™ã‚‹ã€‚指定ã—ãŸç‚¹åã§äº¤ç‚¹ã‚’作る。ã“ã®ç‚¹ã¯å¹¾ä½•ç‚¹ã€‚\\
- 交点ãŒï¼’ã¤ä»¥ä¸Šã‚ã‚‹å ´åˆã§ã‚‚,æ画範囲ã«ãã®ã†ã¡ï¼‘ã¤ã ã‘ãŒå­˜åœ¨ã™ã‚‹ãªã‚‰ï¼Œãã®ç‚¹ã¨ãªã‚‹ã€‚æ画範囲ã«ï¼’ã¤ä»¥ä¸Šã®äº¤ç‚¹ãŒã‚ã‚‹å ´åˆã¯ï¼Œãれらã®ã†ã¡ã„ãšã‚Œã‹ã«ãªã‚‹ã€‚ã“ã®ã¨ã,コンソールã«äº¤ç‚¹ã®åº§æ¨™ã®ãƒªã‚¹ãƒˆã¨ï¼Œã€ŒChoose point number ã€ã¨ã„ã†ã‚¬ã‚¤ãƒ‰ãŒè¡¨ç¤ºã•ã‚Œã‚‹ã€‚引数ã®Noã¨ã—ã¦ï¼Œãã®ç•ªå·ã‚’指定ã™ã‚‹ã¨ï¼Œãã®ç‚¹ãŒæŽ¡ç”¨ã•ã‚Œã‚‹ã€‚\\
- ã“ã®é–¢æ•°ã§ä½œæˆã•ã‚Œã‚‹ã®ã¯å¹¾ä½•ç‚¹ã ã‘ãªã®ã§ï¼Œ\TeX ã®å›³ã«ç‚¹ã¨ã—ã¦æ˜Žç¤ºã™ã‚‹ãŸã‚ã«ã¯Pointdata()ã§æ›¸ã出ã™å¿…è¦ãŒã‚る。\\
- 次ã®ä¾‹ã¯ï¼Œï¼“次曲線ã¨ç›´ç·šã®äº¤ç‚¹ã‚’3ã¤ã¨ã‚‚å–ã£ãŸã‚‚ã®ã§ã‚る。
-\begin{verbatim}
-  Plotdata("1","x^3-4*x","x",["Num=200"]);
-  Plotdata("2","1/2*x+1","x");
-  Putintersect("P","gr1","gr2",1);
-  Putintersect("Q","gr1","gr2",2);
-  Putintersect("R","gr1","gr2",3);
-  Pointdata("1",[P,Q,R],["size=4"]);
-\end{verbatim}
- \\
-           \input{Fig/putintersect}\\
-  \\
-  交点ãŒå­˜åœ¨ã—ãªã„å ´åˆã¯ï¼Œã€ŒNo intersect pointã€ãŒã‚³ãƒ³ã‚½ãƒ¼ãƒ«ã«è¡¨ç¤ºã•ã‚Œã‚‹ã€‚\\
- 2曲線ã®äº¤ç‚¹ã‚’作るã®ã«ï¼Œ\hyperlink{crosspoint}{Crosspoint()} 関数を用ã„ã‚‹ã“ã¨ã‚‚ã§ãる。\\
-\begin{flushright} \hyperlink{functionlist}{$\Rightarrow$関数一覧}\end{flushright}
-
-
-\hypertarget{putpoint}{}
-\item[関数] Putpoint(点å , 座標1 ,座標2 )
-\item[機能] 点を作る
-\item[説明] 識別åãŒç‚¹åã®ç‚¹ã‚’,既存ã§ãªã‘ã‚Œã°åº§æ¨™ï¼‘ã«ä½œã‚‹ã€‚既存ãªã‚‰ã°åº§æ¨™ï¼’ã«ç§»å‹•ã™ã‚‹ã€‚Texã«ã¯å‡ºåŠ›ã•ã‚Œãªã„。\\
-
-例:(1,1) ã«å›ºå®šç‚¹Aを作る。 ã“ã®ç‚¹ã¯å‹•ã‹ã™ã“ã¨ãŒã§ããªã„。\\
-   \verb|Putpoint("A",[1,1]);|\\
-  (1,1)ã«è‡ªç”±ç‚¹ã‚’作る。\\
-   \verb|Putpoint("A",[1,1],[A.x,A.y]);|\\
-  ã“ã®ç‚¹ã¯åº§æ¨™ï¼’ã®åŠ¹æžœã«ã‚ˆã‚Šï¼Œè‡ªç”±ç‚¹ã¨ãªã‚Šï¼Œãƒ‰ãƒ©ãƒƒã‚°ã—ã¦å‹•ã‹ã™ã“ã¨ãŒã§ãる。\\
-
-実際ã«ã¯ï¼ŒCinderellaã®ä½œå›³ãƒ„ールã§ç‚¹ã‚’å–り,インスペクタã§åå‰ã‚’変更ã™ã‚Œã°ã‚ˆã„ã‚ã‘ã ãŒï¼Œã“ã®å½¢ã§ã¨ã‚Œã°ã‚¹ã‚¯ãƒªãƒ—トã®å¯èª­æ€§ãŒå¢—ã™æ„味ãŒã‚る。\\
-注)点åã¯åŠè§’アルファベットã¨ã™ã‚‹ã€‚数字や漢字ã§ã‚‚Cinderellaã§ã¯ç‚¹ãŒã§ãã‚‹ãŒï¼ŒScilabã§ã‚¨ãƒ©ãƒ¼ã¨ãªã‚‹ã€‚\\
-
-\hypertarget{putonline}{}
-\item[関数] PutonLine(点å , 座標1 ,座標2 )
-\item[機能] 直線上ã«ç‚¹ã‚’作る
-\item[説明] 座標1,座標2を通る直線上ã«ç‚¹åã®ç‚¹ã‚’作る。ã§ããŸç‚¹ã¯ç›´ç·šã«å¯¾ã—ã¦ã‚¤ãƒ³ã‚·ãƒ‡ãƒ³ãƒˆã¨ãªã‚‹ã€‚\\
-例 点A,Bを通る直線上ã«ç‚¹Pã‚’ã¨ã‚‹ã€‚\\
-  \verb|PutonSeg("P",A,P);|\\
-
-\hypertarget{putonseg}{}
-\item[関数] PutonSeg(点å , 座標1 ,座標2 )
-\item[機能] 線分上ã«ç‚¹ã‚’作る
-\item[説明] 座標1,座標2を通る線分上ã«ç‚¹åã®ç‚¹ã‚’作る。ã§ããŸç‚¹ã¯ç·šåˆ†ã«å¯¾ã—ã¦ã‚¤ãƒ³ã‚·ãƒ‡ãƒ³ãƒˆã¨ãªã‚‹ã€‚\\
-例 点A,Bを通る線分上ã«ç‚¹Pã‚’ã¨ã‚‹ã€‚\\
-  \verb|PutonSeg("P",A,P);|\\
-
-\begin{flushright} \hyperlink{functionlist}{$\Rightarrow$関数一覧}\end{flushright}
-
-\hypertarget{reflextpoint}{}
-\item[関数] Reflectpoint(点,対称点ã¾ãŸã¯å¯¾ç§°è»¸)
-\item[機能] 点ã®é¡æ˜ ã‚’作æˆ
-\item[説明] 点を指定ã•ã‚ŒãŸç‚¹ã¾ãŸã¯è»¸ã«é–¢ã—ã¦å¯¾ç§°ç§»å‹•ã™ã‚‹ã€‚対称軸ã¯[ 点1, 点2 ]ã§æŒ‡å®š\\
- \\
-例:Cã¯Bã«é–¢ã—ã¦Aã¨å¯¾ç§°ãªç‚¹\\
-  Dã¯ç‚¹(2,3)ã«é–¢ã—ã¦Aã¨å¯¾ç§°ãªç‚¹\\
-  Eã¯ç‚¹(1,0) ã«é–¢ã—㦠(-1,1) ã¨å¯¾ç§°ãªç‚¹\\
-  Fã¯ç›´ç·šCEã«é–¢ã—ã¦Aã¨å¯¾ç§°ãªç‚¹\\
-\begin{verbatim}
-   C.xy=Reflectpoint(A,B);
-   D.xy=Reflectpoint(A,[[2,3]]);
-   E.xy=Reflectpoint([-1,1],[[1,0]]);
-   F.xy=Reflectpoint(A,[C,E]);
-   Lineplot([C,E],["do"]);
-\end{verbatim}
- \\
-     \input{Fig/reflectpoint}\\
-\begin{flushright} \hyperlink{functionlist}{$\Rightarrow$関数一覧}\end{flushright}
-
-\hypertarget{rotatepoint}{}
-\item[関数] Rotatepoint(点 ,角度 , 中心)
-\item[機能] 点ã®ä½ç½®ã‚’回転ã™ã‚‹
-\item[説明] 点を,中心ã§ç¤ºã•ã‚ŒãŸç‚¹ã®å‘¨ã‚Šã«å›žè»¢ã™ã‚‹ã€‚角度ã¯å¼§åº¦æ³•ã§ä¸Žãˆã‚‹\\
-\begin{spacing}{1.5}
-例:点Cã¯Aを,Bã«é–¢ã—ã¦$\dfrac{2}{3}\pi $ã ã‘回転ã—ãŸç‚¹\\
-  点Dã¯ç‚¹(5,2)を,Bã«é–¢ã—ã¦$\dfrac{\pi}{3}$ ã ã‘回転ã—ãŸç‚¹\\
-  点Eã¯ç‚¹(3,0)ã‚’Aã«é–¢ã—㦠$-\dfrac{\pi}{4} $ã ã‘回転ã—ãŸç‚¹
-\end{spacing}
-\begin{verbatim}
-   C.xy=Rotatepoint(A,2*pi/3,B);
-   D.xy=Rotatepoint((5,2),pi/3,B);
-   E.xy=Rotatepoint([3,0],-pi/4,A);
-\end{verbatim}
- \\
-   \input{Fig/rotatepoint}\\
- \\
-%\begin{flushright} \hyperlink{functionlist}{$\Rightarrow$関数一覧}\end{flushright}
-
-\hypertarget{rulerscale}{}
-\item[関数] Rulerscale(始点 ,横軸目盛 , 縦軸目盛)
-\item[機能] 目盛を打ã¤
-\item[説明] 始点ã®ä½ç½®ã‚’縦横ã®èµ·ç‚¹ã¨ã—ã¦ç›®ç››ã‚Šã‚’打ã¤ã€‚\\
- 目盛ã¯ãƒªã‚¹ãƒˆã§ä¸Žãˆã‚‹ã€‚\\
- ["r",a,b,c] ã®å½¢å¼ã§ã¯ï¼Œaã‹ã‚‰bã¾ã§cé–“éš”ã§ç›®ç››ã‚’打ã¤ã€‚\\
- ["f",n1,"str",n2,"str",・・] ã®å½¢å¼ã§ã¯ï¼Œnã¨"str"ãŒã‚»ãƒƒãƒˆã§ï¼Œnã®ä½ç½®ã«"str"を書ã。ãŸã ã—,ä½ç½®ã¯Cinderellaã®æç”»é¢ã®åŽŸç‚¹ã‚’0ã¨ã™ã‚‹ã€‚\\
- Framedata() ã¾ãŸã¯ Framedata2() ã¨ã¨ã‚‚ã«ç”¨ã„ã‚‹ã¨çŸ©å½¢ã«ç›®ç››ã‚’打ã¤ã“ã¨ãŒã§ãる。\\
- \\
-例:Aを原点ã«ç½®ã„ãŸçŸ©å½¢æž ã‚’æã,横ã«0,1,2,3,4,5,縦㫠d1,d2 ã®ç›®ç››ã‚’打ã¤ã€‚
-\begin{verbatim}
-  Framedata2("1",[A,B]);
-  Rulerscale(A,["r",0,5,1],["f",1,"d1",3,"d2"]);
-\end{verbatim} 
-   \input{Fig/ruler}\\
- \\
-
-\hypertarget{scalepoint}{}
-\item[関数] Scalepoint(点,比率ベクトル,中心)
-\item[機能] 点ã®ä½ç½®ã‚’拡大・縮å°ã™ã‚‹
-\item[説明] 点を,指定ã•ã‚ŒãŸä¸­å¿ƒã‚’原点ã¨ã™ã‚‹åº§æ¨™ç³»ã§ï¼Œæ¯”率ベクトルã®åˆ†ã ã‘拡大・縮å°ã—ãŸä½ç½®ã«ç½®ã。\\
-
-例:点Cを,点Aを原点中心ã«æ¨ªã«ï¼“å€ï¼Œç¸¦ã«ï¼’å€ã—ãŸä½ç½®ã«ç½®ã。\\
-  点Dを,点Aを点B中心ã«æ¨ªã«ï¼“å€ï¼Œç¸¦ã«ï¼’å€ã—ãŸä½ç½®ã«ç½®ã。\\
-  点Fを,点Aを原点中心ã«ãƒ™ã‚¯ãƒˆãƒ«$\overrightarrow{OE} $ã§ç¤ºã•ã‚ŒãŸæ¯”率ã®ä½ç½®ã«ç½®ã。
-\begin{verbatim}
-   C.xy=Scalepoint(A,[3,2],[0,0]);
-   D.xy=Scalepoint(A,[3,2],B);
-   F.xy=Scalepoint(A,E.xy,[0,0]);
-\end{verbatim}
-     \input{Fig/scalepoint}\\
- \\
-
-\begin{flushright} \hyperlink{functionlist}{$\Rightarrow$関数一覧}\end{flushright}
-
-\hypertarget{translatepoint}{}
-\item[関数] Translatepoint(点 , 移動ベクトル)
-\item[機能] 点を平行移動ã™ã‚‹
-\item[説明] 点を移動ベクトルã§ç¤ºã•ã‚ŒãŸåˆ†ã ã‘平行移動ã™ã‚‹ã€‚\\
-\\
-例:点Cã¯ç‚¹Aã‚’$x$軸方å‘ã«2 , $y$軸方å‘ã«ï¼“ã ã‘平行移動ã—ãŸç‚¹\\
-  点Dã¯ç‚¹Aをベクトル$\overrightarrow{OB} $ã ã‘平行移動ã—ãŸç‚¹
-\begin{verbatim}
-   C.xy=Translatepoint(A,[2,3]);
-   D.xy=Translatepoint(A,B.xy);
-\end{verbatim}
- \\
-     \input{Fig/translatepoint}
-\end{description}
- \\
-
-\begin{flushright} \hyperlink{functionlist}{$\Rightarrow$関数一覧}\end{flushright}
-\newpage
-% ï¼ï¼ãƒ—ロットデータã®æ“作ï¼ï¼ï¼ï¼ï¼ï¼ï¼ï¼ï¼ï¼ï¼ï¼ï¼ï¼ï¼ï¼ï¼ï¼ï¼
-\subsection{プロットデータã®æ“作}
-
-% æ画関数ã§ä½œæˆã•ã‚ŒãŸãƒ—ロットデータを用ã„ã¦æ画をãŠã“ãªã†ã€‚ãªãŠï¼Œæœ¬ç¯€ã§ã¯ï¼Œè©²å½“ã™ã‚‹å›³å½¢ã®ã“ã¨ã‚’「プロットデータã€ã¨è¡¨è¨˜ã™ã‚‹å ´åˆãŒã‚る。\\
-
-\begin{description}
-
-\hypertarget{changestyple}{}
-\item[関数] Changestyle(PDリスト, optionss)
-\item[機能] æ画オプションを変更ã™ã‚‹
-\item[説明] 複数ã®å›³å½¢ã®æ画オプションを一括ã—ã¦å¤‰æ›´ã™ã‚‹ã€‚\\
-
-例:線分AB,円ABã®ç·šã‚’ç ´ç·šã«ã—ã¦\TeX ã«æ›¸ã出ã•ãªã„よã†ã«ã™ã‚‹ã€‚\\
-  \verb|Changestyle(["sgAB","crAB"],["da","notex"]);|\\
- \\
-
-\hypertarget{enclosing}{}
-\item[関数] Enclosing(name , PDリスト , [ä½ç½®ï¼Œæ–¹å‘,数å¼])
-\item[機能] 複数ã®æ›²ç·šã‹ã‚‰é–‰æ›²ç·šã‚’æã。
-\item[説明] 引数ã®ä½ç½®ï¼Œæ–¹å‘,数å¼ã¯ï¼Œè¤‡æ•°ç‚¹ã®æƒ…報を[ ]内ã«ã¾ã¨ã‚ã¦
-記入ã§ãる。以下ã¯ä¸€ä¾‹ã€‚
-\begin{verbatim}
-  Circledata([A,B],["do"]);
-  Scaledata("1","crAB",1.5,1/1.5,["do"]);
-  Scaledata("2","crAB",1/1.5,1.5,["do"]);
-  Tmp1=Intersectcrvs(sc2,crAB);
-  Putpoint("C",Tmp1\_1);
-  Enclosing("1",["sc2","crAB","sc2","Invert(sc1)"],[C]);
-  Hatchdata("1","i",[["en1"]],["dr,0.5"]);
-\end{verbatim}
-         \input{Fig/enclosing}
-
-\begin{flushright} \hyperlink{functionlist}{$\Rightarrow$関数一覧}\end{flushright}
- \\
-
-\hypertarget{addgraph}{}
-\item[関数] AddGraph(name ,プロットデータã®ãƒªã‚¹ãƒˆ,option)
-\item[機能] 複数ã®ãƒ—ロットデータをã¾ã¨ã‚ã‚‹
-\item[説明] 複数ã®ãƒ—ロットデータをã¾ã¨ã‚ã¦æ‰±ã†ã€‚ãŸã¨ãˆã°ï¼Œå††ã¨ï¼Œå††å‘¨ä¸Šã®ç‚¹ã®ï¼’ã¤ã®ãƒ—ロットデータをã¾ã¨ã‚ã¦æ‰±ãˆã°ï¼Œã‚¹ãƒ©ã‚¤ãƒ€ã‚’用ã„ãŸã‚Šå‹•ç”»ã«ã™ã‚‹ã¨ãã«ï¼Œå€‹ã€…ã«ç§»å‹•ã‚„回転をã—ãªãã¦ã™ã‚€ã€‚Joincrvs()ã§ã¯ï¼Œãƒ—ロットデータをã¤ãªã’ã¦ï¼‘ã¤ã®ãƒ—ロットデータã«ã™ã‚‹ãŒï¼ŒAddGraph()ã§ã¯ï¼Œãƒ—ロットデータをリスト化ã—ã¦æ‰±ã†ã¨ã„ã†é•ã„ãŒã‚る。\\
- プロットデータã®ãƒªã‚¹ãƒˆã¯ï¼Œãƒ—ロットデータåを文字列化ã—ã¦æ¸¡ã™ã€‚ãŸã¨ãˆã°ï¼Œå††ã®ãƒ—ロットデータ㌠cr1 ã®ã¨ã,"cr1" ã¨ã™ã‚‹ã€‚\\
- \\
-例:サイクロイドã®å›³ã‚’æã。
-\begin{verbatim}
-  Setpt(3);
-  Circledata("1",[[0,1],[0,0]]);
-  Pointdata("1",[0,0]);
-  AddGraph("1",["[pt1]","cr1"],["nodisp"]);
-  nn=32;
-  forall(1..nn,
-   t=2*pi/nn*#;
-   Rotatedata(text(#),"ad1",-t,[[0,1],"nodisp"]);
-   Translatedata(text(#),"rt"+text(#),[t,0],["dr,0.3"]);
-  );
-\end{verbatim}
-
-\begin{center}
-\input{Fig/addgraph}
-\end{center}
- ã“ã“ã§ï¼ŒAddGraph()ã®å¼•æ•°ã§ä¸Žãˆã‚‹ãƒ—ロットデータã®ãƒªã‚¹ãƒˆã§ï¼Œç‚¹ã®ãƒ—ロットデータ pt1 ã‚’"[pt1]" ã¨ã—ã¦ã„ã‚‹ã“ã¨ã«æ³¨æ„。円ã®ãƒ—ロットデータãŒï¼Œç‚¹ã®åº§æ¨™ã®ãƒªã‚¹ãƒˆã§ã‚ã‚‹ã®ã«å¯¾ã—,点ã®ãƒ—ロットデータã¯ä¸€ã¤ã®åº§æ¨™ã ã‘ãªã®ã§ï¼Œã“ã®ã‚ˆã†ã«ã—ã¦ãƒªã‚¹ãƒˆåŒ–ã—ã¦æ¸¡ã™ã€‚\\
- \\
-\begin{flushright} \hyperlink{functionlist}{$\Rightarrow$関数一覧}\end{flushright}
- \\
-
-\hypertarget{hatchdata}{}
-\item[関数] Hatchdata(name , æ–¹å‘リスト , プロットデータ , optionss)
-\item[機能] 閉曲線ã®å†…部ã«æ–œç·šã‚’引ã。
-\item[説明] 引数ã¯ï¼Œæ›²ç·šå,内部外部ã®ãƒ‘ターンを与ãˆã‚‹''i'',''o''ã®æ–‡å­—列,閉曲線を与ãˆã‚‹æ›²ç·šåˆ†ã¨é ˜åŸŸã®å†…部を定ã‚ã‚‹æ–¹å‘ã®ãƒªã‚¹ãƒˆã¨ã‚ªãƒ—ション。\\
- Scilabã§ãƒãƒƒãƒãƒ‡ãƒ¼ã‚¿ã‚’作æˆã—ã¦èª­ã¿è¾¼ã‚€ã€‚åŒã˜åå‰ã®ãƒãƒƒãƒãƒ‡ãƒ¼ã‚¿ãŒã™ã§ã«ã‚ã‚‹å ´åˆï¼Œ"m"ã‚’ã¤ã‘ã‚‹ã¨ãƒãƒƒãƒãƒ‡ãƒ¼ã‚¿ã‚’強制的ã«æ›´æ–°ã™ã‚‹ã“ã¨ãŒã§ãる。\\
- \\
-例:円ã®å†…部。(下図左)
-\begin{verbatim}
-  Circledata([A,B],["dr"]);
-  Hatchdata("1",["i"],[["crAB"]],["dr,0.7","out"]);
-\end{verbatim}
-
-例:3ã¤ã®é–‰æ›²ç·šã®å†…å´ãƒ»å¤–å´ã®ãƒ‘ターンãŒåŒä¸€ã§ã‚る領域(下図å³ï¼‰
-\begin{verbatim}
-  Circledata([A,B],["dr"]);
-  Paramplot("1","[4*cos(t),2*sin(t)]","t=[0,2*pi]");
-  Paramplot("2","[2*cos(t),4*sin(t)]","t=[0,2*pi]");
-  Hatchdata("1",["ioi"],[["crAB"],["gp1"],["gp2"]],["dr,0.7","out"]);
-  Hatchdata("2",["iio"],[["crAB"],["gp1"],["gp2"]],["dr,0.7","out"]);
-\end{verbatim}
- \\
-  \input{Fig/hatch1}   \input{Fig/hatch2}
-\newpage
-
-例:複数ã®ãƒ‘ターンã«åˆ†ã‹ã‚ŒãŸé ˜åŸŸã€‚
-\begin{verbatim}
-  Plotdata("1","2*sin(x)","x=[-pi,3*pi]",["Num=100"]);
-  Listplot([A,B]);
-  Listplot([A,C]);
-  io="out";
-  Hatchdata("1",["ii"],[["sAB","n"],["gr1","s"]],["dr,0.7",io]);
-  Hatchdata("2",["ii"],[["sAC","s"],["gr1","n"]],["dr,0.7",io]);
-\end{verbatim}
-\begin{center}
-\input{Fig/hatch3}
-\end{center}
-
-複数領域ã®æ–œç·šå¡—ã®å ´åˆï¼Œãれらã®é ˜åŸŸã‚’ã¾ã¨ã‚ã¦å‡ºåŠ›ã™ã‚‹ã‹ï¼Œ
-ã¾ã¨ã‚ã¦Cinderellaã«èª­ã¿è¾¼ã‚€å ´åˆãŒå¤šã,ãã®ã‚ˆã†ãªå ´åˆã«ã¯
-4行目ã®ã‚ˆã†ãªæŒ‡å®šã®ä»•æ–¹ã‚‚ã‚る。\\
-
-例:æ画範囲ã¨ã‚ã‚ã›ã¦é–‰é ˜åŸŸã¨ãªã‚‹å ´åˆã€‚
-\begin{verbatim}
-  Plotdata("1","2*sin(x)","x=[-pi,3*pi]",["Num=100"])
-  Listplot([A,B]);
-  Listplot([A,C]);
-  Hatchdata("1",["iio"],[["sAB","s"],["sAC","n"],["gr1","[0,2]"]],
-                     ["dr,0.7","out"]);
-\end{verbatim}
-\begin{center}
-\input{Fig/hatch4}
-\end{center}
-
-\newpage
-
-例:接線ã§å›²ã¾ã‚ŒãŸé ˜åŸŸã®å ´åˆã€‚
-\begin{verbatim}
-  Deffun("f(x)",["regional(y)","y=x^2*(x-3)","y"]);
-  Plotdata("1","f(x)","x");
-  PutonCurve("A",gr1,-1);
-  coef=Derivative("f(x)","x","A.x");
-  Defvar("DC=coef");
-  Deffun("g(x)",["regional(y)","y=DC*(x-A.x)+A.y","y"]);
-  Plotdata("2","g(x)","x");
-  Tmp=Intersectcrvs(gr1,gr2);
-  Partcrv("1",A,Tmp_3,"gr1");
-  Partcrv("2",A,Tmp_3,"gr2");
-  Hatchdata("1",["ii"],[["part1","n"],["part2","s"]],["dr,0.7","out"]);
-\end{verbatim}
-\begin{center}
-\input{Fig/hatch5}
-\end{center}
- \\
-斜線ã®å‘ãや間隔を変ãˆã‚‹ã“ã¨ã‚‚ã§ãる。\\
-
-\noindent
-%ï¿¥Ltab{10mm}{æ–‡}
-例:円ã®å†…部ã¾ãŸã¯å††ã¨ç›´ç·šã§åŒºåˆ‡ã‚‰ã‚ŒãŸå›³å½¢\\
-\verb|Circledata([A,B]);| ã§å††ãƒ‡ãƒ¼ã‚¿ã®åå‰ãŒ crABã¨ãªã‚‹ã€‚ã“れを用ã„ã¦\\
-\verb|Hatchdata("1",["i"],[["crAB"]]);|
-円内ã«å‚¾ã$45^{\circ}$ã®æ–œç·šã‚’引ã(下図ha1)\\
-\verb|Hatchdata("2",["i"],[["crAB"]],[-40,2]);| 傾ã$-40^{\circ}$,間隔を2å€ã«ï¼ˆha2)\\
-                     (間隔ã¯å®Ÿæ•°ã§æŒ‡å®šã§ãる)\\
-\verb|Hatchdata("3",["i"],[["crAB"]],["dr,0.5"]);| 線ã®å¤ªã•ã‚’0.5å€ã«ï¼ˆha3)\\
-\verb|Hatchdata("4",["i"],[["crAB"]],[-45,2,"dr,0.5"]);| (ha4)\\
-
-  \input{Fig/HatchZuKita1.tex} \input{Fig/HatchZuKita2.tex}\\
-       図ha1           図ha2\\
-  \input{Fig/HatchZuKita3.tex} \input{Fig/HatchZuKita4.tex}\\
-       図ha3           図ha4\\
- \\
-
-ã“ã®å††ã«ç›´ç·šã‚’加ãˆé ˜åŸŸã‚’分ã‘る。\\
- \verb|Lineplot("1",[A,B]);|  直線データã®åå‰ã¯ ln1\\
- \verb|Lineplot("2",[A,C]);| 直線データã®åå‰ã¯ ln2\\
-円ã®å†…部ã§å³ä¸Šï¼ˆln1ã¨ln2ã®åŒ—å´ï¼‰ï¼ˆä¸‹å›³ha5)\\
- \verb|Hatchdata("5",["iii"],[["crAB"],["ln1","n"],["ln2","n"]]);|\\
-円ã®å†…部ã§å³ä¸Šã¨å·¦ä¸‹ï¼ˆä¸‹å›³ha6)\\
-\verb|Hatchdata("6",["iii","ioo"],[["crAB"],["ln1","n"],["ln2","n"]]);|\\
-
-  \input{Fig/HatchZuKita5.tex} \input{Fig/HatchZuKita6.tex}\\
-       図ha5          図ha6\\
- \\
-円データcrABを作るãŒæã‹ãªã‘ã‚Œã°å¢ƒç•Œç·šãŒå«ã¾ã‚Œãªã„。(下図ha7)\\
- \verb|Circledata([A,B],["notex"]);|\\
- \verb|Hatchdata("7",["i"],[["crAB"]]);|\\
-境界線を破線ã§æãã¨é–‹é›†åˆã®ã‚ˆã†ã«ãªã‚‹ï¼ˆä¸‹å›³ha8)\\
- \verb|Circledata([A,B],["da"]);|\\
- \verb|Hatchdata("8",["i"],[["crAB"]]);|\\
-
-  \input{Fig/HatchZuKita7.tex} \input{Fig/HatchZuKita8.tex}\\
-       図ha7          図ha8\\
-
-å•é¡Œï¼šæ¬¡å›³ã®ã‚ˆã†ã«ä¸Šã¨ä¸‹ã§æ–œç·šã®æã分ã‘ã‚’ã™ã‚‹ã«ã¯ï¼Ÿã€€ã€€ã€€ç­”ã¯å›³ã®å¾Œã«\\
-
-         \input{Fig/HatchZuKita9.tex}\\
- \\
-å•é¡Œã®ç­”:次ã®ã‚ˆã†ã«2ã¤ã®ãƒ‡ãƒ¼ã‚¿ã‚’作り両方æã
-\begin{verbatim}
-  Hatchdata("9a",["iii"],[["crAB"],["ln1","n"],["ln2","n"]]);
-  Hatchdata("9b",["ioo"],[["crAB"],["ln1","n"],["ln2","n"]],[90,2]);
-\end{verbatim}
-    (ã“ã®ç­”ã¯å›³ha7ã¨å›³ha8ã¨ã®é–¢ä¿‚ã¨åŒã˜ï¼‰ã€€
- \\
-\hypertarget{dotfilldata}{}
-\item[関数] Dotfilldata(name , æ–¹å‘リスト , プロットデータ , optionss)
-\item[機能] 領域を点ã§æ•·ãè©°ã‚る。
-\item[説明] Scilabã¨ãƒ‡ãƒ¼ã‚¿ã®æŽˆå—ã‚’ãŠã“ãªã£ã¦æç”»ã™ã‚‹ã€‚書å¼ã¯Hatchdata()ã¨åŒã˜\\
-\begin{flushright} \hyperlink{functionlist}{$\Rightarrow$関数一覧}\end{flushright}
- \\
-
-\hypertarget{joincrvs}{}
-\item[関数] Joincrvs(name, プロットデータã®ãƒªã‚¹ãƒˆ, options)
-\item[機能] 隣接ã™ã‚‹æ›²ç·šãƒ—ロットデータ ã®ãƒªã‚¹ãƒˆã‚’繋ã„ã§1本ã®æ›²ç·šã‚’作る。
-\item[説明] 曲線ã®ãƒªã‚¹ãƒˆã¯éš£æŽ¥ã™ã‚‹é †ç•ªã§æŒ‡å®šã™ã‚‹ã€‚プロットデータåã®é ­éƒ¨ã¯join。\\
-optionsã¯ç·šç¨®ã€€ã€€ã€€"dr, n" , "da,m,n" , "do,m,n"\\
- \\
-例:線分$y=x\ (-\sqrt{2} \leqq x \leqq \sqrt{2})$ã¨åŠå††ã‚’繋ã„ã§å¾—られる閉曲線をæã。\\
-\begin{verbatim}
-  Plotdata("1","x","x=[-sqrt(2),sqrt(2)]");
-  Putpoint("B",[sqrt(2),sqrt(2)]);
-  Circledata("2",[A,B],["Rng=[pi/4,pi/4*5]"]);
-  Joincrvs("3",["gr1","cr2"]);
-\end{verbatim}
- \\
-        \input{Fig/joincrvs.tex}
-
-\begin{flushright} \hyperlink{functionlist}{$\Rightarrow$関数一覧}\end{flushright}
- \\
-\hypertarget{partcrv}{}
-\item[関数] Partcrv(name, A, B, プロットデータ, options)
-\item[機能] 曲線プロットデータ上ã®ç‚¹A, B ã®é–“ã®éƒ¨åˆ†æ›²ç·šã‚’æã。
-\item[説明] プロットデータåã®é ­éƒ¨ã¯part。\\
-optionsã¯ç·šç¨®ã€€ã€€ã€€"dr, n" , "da,m,n" , "do,m,n"\\
-
-例1:2点A, Bã®é †åºã¨æ›²ç·šã®å‘ãã«ã‚ˆã£ã¦éƒ¨åˆ†æ›²ç·šãŒæ±ºã¾ã‚‹ã€‚
-曲線ã®å‘ãã¯ï¼Œ$y=f(x)$ã®ã‚°ãƒ©ãƒ•ã§ã¯x座標ãŒå¢—加ã™ã‚‹å‘ã。ã“ã“ã§ï¼ŒPDname="gr1"ã®ã‚ˆã†ã«""ã§å›²ã‚€ã“ã¨ãŒå¿…è¦ã€‚\\
- \verb|Plotdata("1", "x^2", "x", ["do"]);| (放物線ã®åå‰ã¯gr1)\\
- \verb|Partcrv("1", [0,0], [1,1], "gr1");| (部分曲線ã®åå‰ã¯part1)\\
- \verb|Partcrv("2", [1,1], [0,0], "gr1");| (部分曲線ã®åå‰ã¯part2)\\
-
-\begin{minipage}{35mm}
-\begin{center}
-\input{Fig/partcrv1}\\
-part1 ã®å›³
-\end{center}
-\end{minipage}
-\hspace{10mm}
-\begin{minipage}{35mm}
-\begin{center}
-\input{Fig/partcrv2}\\
-part2 ã®å›³
-\end{center}
-\end{minipage}
-\vspace{5mm}
-
-例2:閉曲線ã®ä¾‹ï¼Žãƒ‘ラメータ表示曲線ã¯ãƒ‘ラメータã®å¢—ãˆã‚‹å‘ãã‚’ã‚‚ã¤ã€‚
-\begin{verbatim}
-  Circledata([A,B], ["do"]);
-   Plotdata("1", "x^2", "x", ["do"]);
-  tmp=Intersectcrvs(crAB, gr1);
-  P.xy=tmp_1;
-  Q.xy=tmp_2;
-  Partcrv("1", P, Q, "crAB");
-  Partcrv("2", Q, P, "crAB");
-\end{verbatim}
-\vspace{5mm}
-
-\begin{minipage}{45mm}
-\begin{center}
-\input{Fig/partcrv3}\\
-part1 ã®å›³
-\end{center}
-\end{minipage}
-\hspace{10mm}
-\begin{minipage}{45mm}
-\begin{center}
-\input{Fig/partcrv4}\\
-part2 ã®å›³
-\end{center}
-\end{minipage}
-\\
-\\
-
-例3:放物線$y=x^2$ãŒå††ã§åˆ‡ã‚Šå–られる部分をæã。
-\begin{verbatim}
-  Circledata([A,B]);
-  Deffun("f(x)",["regional(y)","y=x^2","y"]);
-  Plotdata("1","f(x)","x",["do"]);
-  tmp3=Intersectcrvs("crAB","gr1");
-  Partcrv("2",tmp3_2,tmp3_1,"gr1",["dr,2"]);
-\end{verbatim}
-\input{Fig/partcrv}
-
-\begin{flushright} \hyperlink{functionlist}{$\Rightarrow$関数一覧}\end{flushright}
-
-
-\hypertarget{putoncurve}{}
-\item[関数] PutonCurve(点ã®åå‰, プロットデータ, options)
-\item[機能] 曲線上ã«ç‚¹ã‚’ä¹—ã›ã‚‹ã€‚
-\item[説明] 点ãŒå­˜åœ¨ã—ãªã„å ´åˆã¯æ–°ãŸã«ä½œã‚‹ã€‚ã™ã§ã«ãã®ç‚¹ãŒå­˜åœ¨ã™ã‚‹å ´åˆã¯ï¼Œãã®ç‚¹ã®$x$座標を使ã†ã€‚åˆæœŸå€¤ã®$x$座標ã®ãƒ‡ãƒ•ã‚©ãƒ«ãƒˆã¯ 0。\\
-optionsã¯[$x$座標ã®ç¯„囲]。\\
-
-例:アステロイド上ã®å‹•ç‚¹P ã‚’ã¨ã‚‹ã€‚
-\begin{verbatim}
-  Deffun("fx(t)", ["local(x)","x=2*cos(t)^3","x"]);
-  Deffun("fy(t)", ["local(y)","y=2*sin(t)^3","y"]);
-\end{verbatim}
-ã§é–¢æ•°ã‚’定義ã—,\\
-  \verb|Paramplot("1","[fx(t),fy(t)]","t=[0,2*pi]");|\\
-ã§ã‚¢ã‚¹ãƒ†ãƒ­ã‚¤ãƒ‰ã‚’表示ã™ã‚‹ã€‚プロットデータ㯠gp1 ã¨ãªã‚‹ã€‚\\
-ãã“ã§\\
-  \verb|PutonCurve("P","gp1",[-1,1]); |\\
-ã§$x$座標㌠$-1$ ã§ã‚る点PãŒã‚¢ã‚¹ãƒ†ãƒ­ã‚¤ãƒ‰ä¸Šã«ã§ã,ã“ã®ç‚¹ã¯ãƒ‰ãƒ©ãƒƒã‚°ã™ã‚‹ã¨ã‚¢ã‚¹ãƒ†ãƒ­ã‚¤ãƒ‰ä¸Šã‚’ $-1 \leqq x\leqq 1$ ã®ç¯„囲ã§å‹•ã‹ã™ã“ã¨ãŒã§ãる。\\
-
-        \input{Fig/putoncurve.tex}
-
-ãªãŠ\\
-  \verb|fx(t):=2*cos(t)^3;|\\
-ã§é–¢æ•°ã‚’定義ã™ã‚‹ã¨ Scilab ã«é–¢æ•°å®šç¾©æƒ…å ±ãŒæ¸¡ã•ã‚Œãªã„ã®ã§\\
-  \verb|Deffun("fx(t)", ["local(x)","x=2*cos(t)^3","x"]);|\\
-㧠f(x) を定義ã™ã‚‹å¿…è¦ãŒã‚る。
- \\
- \\
-\begin{flushright} \hyperlink{functionlist}{$\Rightarrow$関数一覧}\end{flushright}
-
-\hypertarget{reflextdata}{}
-\item[関数] Reflectdata(name , プロットデータ , 対称点ã¾ãŸã¯å¯¾ç§°è»¸,options)
-\item[機能] プロットデータã®é¡æ˜ ã‚’作æˆ
-\item[説明] プロットデータを指定ã•ã‚ŒãŸç‚¹ã¾ãŸã¯è»¸ã«é–¢ã—ã¦å¯¾ç§°ç§»å‹•ã™ã‚‹ã€‚\\
- 対称点ã¯åº§æ¨™ã¾ãŸã¯ï¼Œç‚¹ã®è­˜åˆ¥å。ãŸã ã—,対称点を座標ã§ç¤ºã™ã¨ãã¯è¦ç´ ãŒã²ã¨ã¤ã®ãƒªã‚¹ãƒˆã«ã™ã‚‹ã€‚\\
- 対称軸ã¯ãƒªã‚¹ãƒˆ[ 点1, 点2 ] ã§æŒ‡å®š\\
- optionsã¯ç·šç¨®\\
-\\
-例:中心A , åŠå¾„ABã®å††ã‚’æã,ãã®ãƒ—ロットデータを用ã„ã¦ï¼Œ\\
-  点Cã«é–¢ã—ã¦å¯¾ç§°ãªå††ã‚’\\
-   点(-1,2)ã«é–¢ã—ã¦å¯¾ç§°ãªå††ã‚’太ã„実線ã§\\
-   直線DEã«é–¢ã—ã¦å¯¾ç§°ãªå††ã‚’ç ´ç·šã§\\
-  ãã‚Œãžã‚Œæã。\\
-  作æˆã•ã‚Œã‚‹ãƒ—ロットデータã®å称を rf1 ,rf2 ,rf3 ã¨ã™ã‚‹ã€‚
-\begin{verbatim}
-   Circledata([A,B]);\\
-   Reflectdata("1","crAB",[C]);\\
-   Reflectdata("2","crAB",[[-1,2]],["dr,2"]);\\
-   Reflectdata("3","crAB",[D,E],["da"]);\\
-\end{verbatim}
- \\
-   \input{Fig/reflectdata}
-
-\begin{flushright} \hyperlink{functionlist}{$\Rightarrow$関数一覧}\end{flushright}
-
-\hypertarget{rotatedata}{}
-\item[関数] Rotatedata(name , プロットデータ ,角度 , [中心 , options])
-\item[機能] プロットデータã®ä½ç½®ã‚’回転ã™ã‚‹
-\item[説明] 図形を,中心ã§ç¤ºã•ã‚ŒãŸç‚¹ã®å‘¨ã‚Šã«å›žè»¢ã™ã‚‹ã€‚角度ã¯å¼§åº¦æ³•ã§ä¸Žãˆã‚‹\\
- 中心ã¨optionsã¯ã¾ã¨ã‚ã¦ãƒªã‚¹ãƒˆã§ä¸Žãˆã‚‹ã€‚optionsã¯ç·šç¨®\\
-
-\begin{spacing}{1.5}
-例:中心A , åŠå¾„ABã®å††ã®ãƒ—ロットデータをæã,\\
-   点Cを中心ã«$\dfrac{\pi}{2} $ã ã‘回転ã—ãŸå††\\
-   点(1,5)を中心ã«$\dfrac{\pi}{3}$ ã ã‘回転ã—,線を太ãã—ãŸå††\\
-   点Dを中心㫠$-\dfrac{\pi}{3} $ã ã‘回転ã—,破線ã«ã—ãŸå††\\
-  をãã‚Œãžã‚Œæã。\\
-  作æˆã•ã‚Œã‚‹ãƒ—ロットデータã®å称を rt1 ,rt2 ,rt3 ã¨ã™ã‚‹ã€‚
-\end{spacing}
-\begin{verbatim}
-   Circledata([A,B]);\\
-   Rotatedata("1","crAB",pi/2,[C]);\\
-   Rotatedata("2","crAB",pi/3,[[1,5],"dr,2"]);\\
-   Rotatedata("3","crAB",-pi/3,[D,"da"]);\\
-\end{verbatim}
- \\
-      \input{Fig/rotatedata}
-
-\begin{flushright} \hyperlink{functionlist}{$\Rightarrow$関数一覧}\end{flushright}
-
-\hypertarget{scaledata}{}
-\item[関数] Scaledata(name , プロットデータ,xæ–¹å‘比率 , yæ–¹å‘比率 , [中心 , options])
-\item[機能] 図形ã®ä½ç½®ã‚’拡大・縮å°ã™ã‚‹
-\item[説明] 図形ã®ä½ç½®ã‚’プロットデータを用ã„ã¦æŒ‡å®šã•ã‚ŒãŸæ¯”率ã§æ‹¡å¤§ãƒ»ç¸®å°ã™ã‚‹\\
- 中心ã¨optionsã¯ã¾ã¨ã‚ã¦ãƒªã‚¹ãƒˆã§ä¸Žãˆã‚‹ã€‚optionsã¯ç·šç¨®\\
-
-例:中心A,åŠå¾„ABã®å††ã‚’æã„ã¦ãŠã。プロットデータå㯠crABã¨ãªã‚‹ã€‚\\
-  ã“ã®å††ã‚’\\
-   原点中心ã«$x$軸方å‘ã«ï¼“,$y$軸方å‘ã«ï¼’ã ã‘平行移動ã™ã‚‹ã€‚\\
-   Cを中心ã«$x$軸方å‘ã«ï¼“,$y$軸方å‘ã«ï¼’ã ã‘平行移動ã—,実線ã§å¤ªãæã。\\
-   原点中心ã«ãƒ™ã‚¯ãƒˆãƒ«$\overrightarrow{OD} $ã ã‘平行移動ã—,破線ã§æã。
-\begin{verbatim}
-   Circledata([A,B]);
-   Scaledata("1","crAB",3,2,[[0,0]]);
-   Scaledata("2","crAB",3,2,[C,"dr,2"]);
-   Scaledata("3","crAB",D.x,D.y,[[0,0],"da"]);
-\end{verbatim}
-       \input{Fig/scaledata}\\
- \\
-%\begin{flushright} \hyperlink{functionlist}{$\Rightarrow$関数一覧}\end{flushright}
-\hypertarget{shade}{}
-\item[関数] Shade(プロットデータã®ãƒªã‚¹ãƒˆ , optionss)
-\item[機能] 閉曲線ã§å›²ã¾ã‚ŒãŸé ˜åŸŸã‚’å¡—ã‚Šã¤ã¶ã™ã€‚
-\item[説明] 第1引数ã«ã¯ï¼Œé–‰æ›²ç·šã‚’与ãˆã‚‹æ›²ç·šåˆ†ã®ãƒªã‚¹ãƒˆã‚’並ã¹ã‚‹ã€‚\\
- optionssã¯ï¼ŒCinderellaã®ç”»é¢ä¸Šã§ã®æ画色,濃ã•ã‚’リストã§ä¸Žãˆã‚‹ã€‚\\
-
-例:$y=2\sin x$ã®ã‚°ãƒ©ãƒ•ã¨ç›´ç·š$y=1$(直線ABã®ä¸€éƒ¨ï¼‰ã¨ã§å›²ã¾ã‚ŒãŸéƒ¨åˆ†ã«0.5ã®æ¿ƒã•ã§è‰²ã‚’塗る。
-\begin{verbatim}
-  Setax([7,"nw"]);
-  Plotdata("1","2*sin(x)","x",["Num=100"]);
-  Plotdata("2","2*sin(x)","x=[5*pi/6,13*pi/6]",["Num=100"]);
-  Lineplot("1",[[0,1],[1,1]]);
-  Listplot("1",[[5*pi/6,1],[13*pi/6,1]]);
-  Shade(["gr2","sg1"],[0.5]);
-\end{verbatim}
-\begin{center}
-\input{Fig/shade}
-\end{center}
-
-例:2ã¤ã®æ”¾ç‰©ç·šã§å›²ã¾ã‚ŒãŸéƒ¨åˆ†ã«0.2ã®æ¿ƒã•ã§è‰²ã‚’塗る。Cinderellaã®ç”»é¢ã§ã¯èµ¤ã§å°‘ã—è–„ã塗る。
-\begin{verbatim}
-  Plotdata("1","x^2-1","x=[-sqrt(2),sqrt(2)]",["Num=100"]);
-  Plotdata("2","x^2/2","x=[-sqrt(2),sqrt(2)]",["Num=100"]);
-  Shade(["gr2","gr1"],[0.2,"color->[1,0,0]","alpha->0.4"]);
-\end{verbatim}
-\begin{center}
-\input{Fig/shade01}
-\end{center}
-
-
-\begin{flushright} \hyperlink{functionlist}{$\Rightarrow$関数一覧}\end{flushright}
-\newpage
-\hypertarget{translatedata}{}
-\item[関数] Translatedata(name , プロットデータ , 移動ベクトル , options)
-\item[機能] プロットデータを平行移動ã™ã‚‹
-\item[説明] プロットデータを移動ベクトルã§ç¤ºã•ã‚ŒãŸåˆ†ã ã‘平行移動ã™ã‚‹ã€‚\\
- nameã¯ã“ã‚Œã«ã‚ˆã£ã¦ã¤ãるプロットデータã®å称を設定。å˜ãªã‚‹ç•ªå·ã¯ä¸å¯ã€‚\\
- optionsã¯ç·šç¨®\\
-\\
-例:中心A,åŠå¾„ABã®å††ã‚’æã„ã¦ãŠã。プロットデータå㯠crABã¨ãªã‚‹ã€‚\\
-  ã“ã®å††ã‚’\\
-  x軸方å‘ã«ï¼’,y軸方å‘ã«ï¼“ã ã‘平行移動ã™ã‚‹ã€‚\\
-  ベクトル$\overrightarrow{OC} $ã ã‘平行移動ã—,実線ã§å¤ªãæã。\\
-  ベクトル$\overrightarrow{OD} $ã ã‘平行移動ã—,破線ã§æã。\\
-  作æˆã•ã‚Œã‚‹ãƒ—ロットデータã®å称を tr1 , tr2 , tr3 ã¨ã™ã‚‹ã€‚
-\begin{verbatim}
-  Circledata([A,B]);
-  Translatedata("tr1","crAB",[2,3]);
-  Translatedata("tr2","crAB",C,["dr,2"]);
-  Translatedata("tr3","crAB",D,["da"]);
-\end{verbatim}
- \\
-       \input{Fig/translatedata}
-
-\end{description}
-
-\begin{flushright} \hyperlink{functionlist}{$\Rightarrow$関数一覧}\end{flushright}
-\newpage
-% ===============================
-\subsection{å¾®ç©åˆ†ãªã©}
-
-\begin{description}
-
-\hypertarget{derivative}{}
-\item[関数] Derivative(é–¢æ•°å¼ , 変数 , 値)
-\item[機能] 関数ã®å¾®åˆ†ä¿‚数を求ã‚ã‚‹
-\item[説明] 関数å¼ã§ä¸Žãˆã‚‰ã‚ŒãŸé–¢æ•°ã®ï¼Œã€Œå¤‰æ•°ï¼å€¤ã€ã«ãŠã‘る微分係数を求ã‚る。\\
-値ã¯ï¼Œç‚¹ã®åº§æ¨™ã‚’用ã„ã‚‹ã“ã¨ãŒã§ãる。点Aã®x座標ã§ã‚ã‚Œã°ï¼Œ A.x ã¨ã™ã‚‹ã€‚\\
-
-例:3次曲線上ã®ç‚¹Aã§æŽ¥ç·šã‚’引ã。点A,Bã¯ä½œå›³ãƒ„ールã§ã¨ã£ã¦ãŠã。
-\begin{verbatim}
-  Deffun("f(x)",["regional(y)","y=x^3-4*x","y"]);
-  coef=Derivative("f(x)","x",A.x);
-  A.y=f(A.x);
-  B.y=coef*(B.x-A.x)+A.y;
-  Plotdata("1","f(x)","x",["Num=200"]);
-  Lineplot([A,B]);
-  Letter([A,"ne","A"]);
-\end{verbatim}
- \\
-  \input{Fig/derivative}\\
- \\
-\begin{flushright} \hyperlink{functionlist}{$\Rightarrow$関数一覧}\end{flushright}
-
-\hypertarget{integrate}{}
-\item[関数] integrate(é–¢æ•°å¼ , 変数 , 範囲 , options)
-\item[関数] integrate(PD , 範囲 , options)
-\item[機能] 関数å¼ã¾ãŸã¯ãƒ—ロットデータã§ä¸Žãˆã‚‰ã‚ŒãŸæ›²ç·šã®ç©åˆ†å€¤ã‚’求ã‚ã‚‹
-\item[説明] 関数å¼ã¾ãŸã¯ãƒ—ロットデータã§ä¸Žãˆã‚‰ã‚ŒãŸæ›²ç·šã®ï¼ŒæŒ‡å®šã•ã‚ŒãŸç¯„囲ã®å®šç©åˆ†ã®å€¤ã‚’求ã‚る。\\
-関数を与ãˆãŸã¨ãã®optionsã¯æ¬¡ã®é€šã‚Šã€‚\\
- "Rule=s"  : シンプソン法ã«ã‚ˆã‚‹ã€‚デフォルトã¯å°å½¢å…¬å¼ã€‚\\
-         "R=s"ã¨ç•¥è¨˜ã§ãる。\\
- "Num=数値" : 分割数ã®æŒ‡å®šã€‚åˆæœŸå€¤ã¯ 100 \\
- 一般ã«ã¯ã‚·ãƒ³ãƒ—ソン法ã®æ–¹ãŒç²¾åº¦ãŒã‚ˆã„ãŒï¼Œãã†ã§ã¯ãªã„å ´åˆã‚‚ã‚る。\\
- \\
-例:$f(x)=x^3-2x^2+2$ ã«ã¤ã„ã¦ï¼Œ0ã‹ã‚‰3ã¾ã§ã®å®šç©åˆ†ã®å€¤ã‚’求ã‚る。\\
- CindyScriptã§ã¯ï¼Œguess()関数を用ã„ã‚‹ã¨ï¼Œå¯èƒ½ãªå ´åˆã¯å€¤ã‚’分数表記ã«ã™ã‚‹ã€‚
-\begin{verbatim}
-  f(x):=x^3-2*x^2+2;
-  println(guess(Integrate("f(x)","x",[0,3],["Num=200"])));
-  println(guess(Integrate("f(x)","x",[0,3],["Num=5","Rule=s"])));
-\end{verbatim}
-を実行ã™ã‚‹ã¨ï¼Œã‚³ãƒ³ã‚½ãƒ¼ãƒ«ã«çµæžœãŒè¡¨ç¤ºã•ã‚Œã‚‹ã€‚シンプソン法ã§ã¯ 33/4 ã¨è¡¨ç¤ºã•ã‚Œã‚‹ã€‚
-整関数ã®å ´åˆï¼Œã‚·ãƒ³ãƒ—ソン法ã§ã¯åˆ†å‰²æ•°ãŒã‹ãªã‚Šå°‘ãªãã¦ã‚‚高ã„精度ãŒå¾—られる。\\
-整関数ã§ãªã„å ´åˆï¼Œåˆ†å‰²æ•°ã‚’区間幅ã®10ã®æ•´æ•°å€ã«ã™ã‚‹ã¨ã‚ˆã„精度ã«ãªã‚‹ã€‚\\
-ãŸã¨ãˆã°ï¼Œ$f(x)=\sqrt{x} $ã®å ´åˆï¼ŒåŒºé–“㌠[2,9] ã§ã‚ã‚Œã°ï¼ŒNum=100 よりも Num=70 ã®æ–¹ãŒç²¾åº¦ãŒã‚ˆã„。\\
- \\
- プロットデータを与ãˆãŸã¨ãã¯ï¼Œã‚¢ãƒ«ã‚´ãƒªã‚ºãƒ ãŒç•°ãªã‚‹ã®ã§ä¸Šè¨˜ã‚ªãƒ—ションã¯ç„¡åŠ¹ã€‚\\
-例:上ã®ä¾‹ã¨åŒã˜é–¢æ•°ã‚’プロットデータã§æŒ‡å®šã™ã‚‹ã€‚
-\begin{verbatim}
-  plotdata("1","x^3-2*x^2+2","x");
-  println(Integrate("gr1",[0,3]));
-\end{verbatim}
- \\
- プロットデータã§ä¸Žãˆã‚‹æ–¹æ³•ã¯ï¼ŒRを利用ã—ã¦æ­£è¦åˆ†å¸ƒæ›²ç·šã‚’æã„ãŸã¨ããªã©ã«è¨˜è¿°ãŒæ¥½ã«ãªã‚‹ã€‚\hyperlink{plotdatar}{PlotdataR()} ã®é …ã‚’å‚ç…§ã®ã“ã¨ã€‚\\
- \\
-
-\begin{flushright} \hyperlink{functionlist}{$\Rightarrow$関数一覧}\end{flushright}
-\newpage
-\hypertarget{invesefun}{}
-\item[関数] Inversefun(関数 , 範囲 , 値)
-\item[機能] 関数ã®é€†é–¢æ•°å€¤ã‚’求ã‚ã‚‹
-\item[説明] 関数ã¯æ–‡å­—列ã§ï¼Œé–¢æ•°å¼ã‚‚ã—ãã¯å®šç¾©ã•ã‚ŒãŸé–¢æ•°åã¨ã™ã‚‹ã€‚\\
- 指定ã•ã‚ŒãŸç¯„囲ã®ä¸­ã§é€†é–¢æ•°å€¤ã‚’求ã‚る。存在ã—ãªã„å ´åˆã¯ä¸€æ–¹ã®ç«¯ç‚¹ã‚’戻り値ã¨ã—,コンソールã«ã€Œnot foundã€ã¨è¡¨ç¤ºã•ã‚Œã‚‹ã€‚\\
- 数å¼å‡¦ç†ã§ã¯ãªã数値探索ã®ã‚¢ãƒ«ã‚´ãƒªã‚ºãƒ ã‚’使ã£ã¦ã„ã‚‹ã®ã§ï¼Œå˜èª¿é–¢æ•°ã§ãªã„å ´åˆã¯ç¯„囲をã§ãã‚‹ã ã‘ç‹­ãã¨ã‚‹ã¨ã‚ˆã„。値ãŒè¤‡æ•°ã‚ã‚‹å ´åˆã¯ï¼Œå°ã•ã„ã»ã†ãŒè¿”ã•ã‚Œã‚‹ã€‚\\
-
-例:\verb|x=Inversefun("sin(x)","x=[0,pi/2]",0.5);|\\
-  実行ã™ã‚‹ã¨ $x=\dfrac{\pi}{6}$ ã¨ãªã‚‹ã€‚
-\begin{verbatim}
-   Deffun("f(x)", ["regional(y)","y=sin(x)","y"]);
-   x=Inversefun("f(x)","x=[0,pi/2]",0.5);
-\end{verbatim}
-  ã§ã‚‚åŒã˜çµæžœãŒè¿”ã•ã‚Œã‚‹ã€‚\\
-   \verb|x=Inversefun("f(x)","x=[pi/3,pi]",0.97);|\\
-  ã¯åŒºé–“設定ãŒä¸é©åˆ‡ã§æ­£ã—ã„çµæžœãŒå¾—られãªã„。\\
- \\
-例:アステロイド上ã«ç‚¹Pã‚’ã¨ã‚Šï¼ŒPã®$x$座標ã‹ã‚‰ï¼Œé€†é–¢æ•°å€¤$t$を求ã‚ã¦æŽ¥ç·šã‚’引ã。\\
-  ã§ããŸç‚¹Pã¯ãƒ‰ãƒ©ãƒƒã‚°ã—ã¦ã‚¢ã‚¹ãƒ†ãƒ­ã‚¤ãƒ‰ä¸Šã‚’å‹•ã‹ã™ã“ã¨ãŒã§ãる。
-\begin{verbatim}
-   Deffun("fx(t)", ["regional(x)","x=2*cos(t)^3","x"]);
-   Deffun("fy(t)", ["regional(y)","y=2*sin(t)^3","y"]);
-   Paramplot("1","[fx(t),fy(t)]","t=[0,2*pi]");
-   PutonCurve("P",gp1,1);
-   if(P.y>=0,range="t=[0,pi]",range="t=[pi,2*pi]");
-   t0=Inversefun("fx(t)",range,P.x);
-   dx=Derivative("fx(t)","t",t0); dy=Derivative("fy(t)","t",t0);
-   Putpoint("Q",[0,0],P.xy+[dx,dy]);
-   Lineplot([P,Q]);
-   Drawpoint(P);
-   Letter(P,"ne","P");
-\end{verbatim}
-            \input{Fig/inversefun}
-
-\end{description}
-\newpage
-%===================================
-\subsection{作表}
-
-\begin{description}
-
-\hypertarget{tabledata}{}
-\item[関数] Tabledata(name , 縦横データ, 除外線 , options)
-\item[機能] 表ã®æž ã‚’作æˆã—,表ã®ãƒ‡ãƒ¼ã‚¿list ã‚’è¿”ã™
-\item[説明] Cinderellaã®æç”»é¢ä¸Šã«å·¦ä¸‹ã‚’原点ã¨ã™ã‚‹è¡¨ã‚’作æˆã™ã‚‹ã€‚\\
- 他ã®é–¢æ•°ã¨ã®å¼•æ•°ã®æ•´åˆæ€§ï¼Œ\ketpic ã®ã‚³ãƒžãƒ³ãƒ‰ã¨ã®æ•´åˆæ€§ãªã©ã‹ã‚‰ï¼Œå…ˆé ­ã«nameã®å¼•æ•°ã‚’ã¤ã‘ã‚‹ãŒï¼Œå®Ÿéš›ã«ã¯ã‚ã¾ã‚Šåˆ©ç”¨ã—ãªã„ã®ã§ï¼Œç©ºæ–‡å­—""ã§ã‚‚よã„。\\
- optionsã¯ç·šç¨®ã¨"notex"ãªã©ã€‚\\
- 縦横データã«ã¯ï¼Œæ¬¡ã®ï¼’通りã®æ›¸å¼ãŒã‚る。\\
- \\
-(1) 横ã®ã‚»ãƒ«æ•° , 縦ã®ã‚»ãƒ«æ•° , 表ã®æ¨ªå¹… , 表ã®ç¸¦å¹… を指定ã™ã‚‹ã€‚\\
- 例: \verb|Tabledata("",4,5,80,50,[]);|\\
-(2) 横ã¨ç¸¦ã®å¹…を指定ã—ãŸãƒªã‚¹ãƒˆã‚’使ã†\\
- 例: \verb|Yoko=[20,20,20,20];|\\
-    \verb|Tate=[10,10,10,10,10];|\\
-    \verb|Tabledata("",Yoko,Tate,[]);|\\
- 上ã®ï¼’ã¤ã®ã‚¹ã‚¯ãƒªãƒ—トã¯åŒã˜è¡¨ã‚’作æˆã™ã‚‹ã€‚å¹…ã¯Cinderellaã®æç”»é¢ã®0.1ã‚’å˜ä½ã¨ã™ã‚‹ã€‚\\
- 作æˆã•ã‚ŒãŸè¡¨ã«ã¯ï¼Œè¡Œï¼Œåˆ—ã®åˆ¶å¾¡ç‚¹ãŒã¤ã。画é¢ä¸Šã§ã¯ï¼Œæ¨ªç½«ç·šã®ç•ªå· r0,r1,・・・ 縦罫線ã®ç•ªå· c1,c2,・・・ã¨è¦‹ã‚‹ã“ã¨ã‚‚ã§ãる。ã¾ãŸï¼Œç¸¦å¹…,横幅ãŒæ•°å­—ã§ç¤ºã•ã‚Œã‚‹ã€‚ãŸã ã—,ã“れらã¯\TeX ã«ã¯å‡ºåŠ›ã•ã‚Œãªã„。\\
- ã¾ãŸï¼Œä½œè¡¨ã¯Cinderellaã®æç”»é¢ä¸Šã§ã¯åº§æ¨™å¹³é¢ä¸Šã«ç½®ã‹ã‚Œã‚‹ãŒï¼Œ\TeX ã¸ã®å‡ºåŠ›ã¯åº§æ¨™å¹³é¢ä¸Šã«ã¯ç½®ã‹ãªã„ã“ã¨ãŒå¤šã„ã®ã§ï¼Œåº§æ¨™è»¸ã¯éžè¡¨ç¤ºã¨ã—ã¦ã„る。\\
-
-\includegraphics[bb=0 0 807 499 , width=6cm]{Fig/table01.png} → 
-\input{Fig/table02}\\
-
- 表ã®ã‚µã‚¤ã‚ºï¼Œè¡Œå¹…,列幅ã¯ï¼Œä½œæˆå¾Œã«ãã‚Œãžã‚Œã®åˆ¶å¾¡ç‚¹ã‚’ドラッグã™ã‚‹ã“ã¨ã«ã‚ˆã‚Šä»»æ„ã«å¤‰ãˆã‚‹ã“ã¨ãŒã§ãる。\\
-
- 除外線ã¯ï¼Œé™¤å¤–ã™ã‚‹ã‚»ãƒ«ã®ç½«ç·šã‚’,rã¨c ã§ä½ç½®æŒ‡å®šã™ã‚‹ã€‚\\
-  横罫線ã®å ´åˆï¼Œæ¨ªç½«ç·šã®ç•ªå·ï¼Œç¯„囲(ã‹ã‚‰ï¼Œã¾ã§ï¼‰\\
-  縦罫線ã®å ´åˆï¼Œç¸¦ç½«ç·šã®ç•ªå·ï¼Œç¯„囲(ã‹ã‚‰ï¼Œã¾ã§ï¼‰\\
-ã¨ã™ã‚‹ã€‚\\
-
- 例:\verb|Rmv=["r1c0c1","c3r0r1","c3r3r5","r4c2c4"];|\\
-   \verb|Tabledata("",4,5,80,50,Rmv);|\\
- ã§ï¼Œæ¬¡ã®è¡¨ãŒã§ãる。\\
- \\
-     \includegraphics[bb=0 0 784 503 , width=6cm]{Fig/table03.png}\\
- 除外ã™ã‚‹ç½«ç·šãŒãªã„å ´åˆã¯ï¼Œç©ºãƒªã‚¹ãƒˆã¨ã™ã‚‹ã€‚\\
-
- 例:\verb|Tabledata("",Yoko,Tate,[]);|\\
-\\
- Tabledata()関数ã¯ï¼Œåˆ¶å¾¡ç‚¹r0,r1,・・・,c0,c1,・・・ ãŒãªã‘ã‚Œã°æ–°ã—ã作り,ã™ã§ã«å­˜åœ¨ã™ã‚‹å ´åˆã¯ãã®ã¾ã¾ã¨ã™ã‚‹ã€‚ã—ãŸãŒã£ã¦ï¼Œä¸€åº¦è¡¨ã‚’作æˆã—ãŸã®ã¡ï¼Œè¡Œæ•°ãƒ»åˆ—数を修正ã—ã¦ä½œã‚Šç›´ã™å ´åˆã¯ï¼Œä¸€åº¦æ—¢å­˜ã®ç‚¹ã‚’消去ã™ã‚‹å¿…è¦ãŒã‚る。ãã®ãŸã‚ã«ã¯ï¼Œã€Œã™ã¹ã¦ã®ç‚¹ã‚’é¸æŠžã™ã‚‹ã€ãƒ„ールをクリックã—ã¦ç‚¹ã‚’消去ã™ã‚‹ã®ãŒã‚ˆã„。クリックã™ã‚‹ã¨ï¼Œæ¶ˆåŽ»å¾Œã™ãã«æ–°è¦ä½œæˆã•ã‚Œã‚‹ã€‚\\
- ã™ã§ã«ä»–ã®ç‚¹ã‚’æç”»ã—ã¦ã—ã¾ã£ãŸå ´åˆã¯ï¼Œè¡¨ç¤ºãƒ¡ãƒ‹ãƒ¥ãƒ¼ã®ã€Œå¼ã«ã‚ˆã‚‹è¡¨ç¤ºã€ã§ä¸€è¦§è¡¨ã‚’出ã—ã¦ï¼Œåˆ¶å¾¡ç‚¹ã‚’é¸æŠžã—ã¦æ¶ˆåŽ»ã™ã‚‹ã€‚\\
- ãŸã ã—,行数,列数ãŒå¤šã™ãŽãŸå ´åˆã¯ï¼Œå¿…ãšã—も作り直ã™å¿…è¦ã¯ãªã„。Settable() 関数ã«ã‚ˆã‚Šï¼Œå®Ÿéš›ã«æ›¸ã出ã™è¡¨ã®ç¯„囲を指定ã§ãã‚‹ã‹ã‚‰ã§ã‚る。\\
-
- ãªãŠï¼Œè¡¨ã‚’作æˆã—ãŸã¨ãã¯ï¼Œè¡¨ã®ç¯„囲ãŒå‡ºåŠ›ç¯„囲ã¨ã—ã¦å„ªå…ˆã•ã‚Œã‚‹ï¼ˆTabledata()を実行ã—ãŸã¨ã)ã®ã§ï¼Œè¡¨å¤–ã«å›³ã‚’æã„ãŸå ´åˆã¯ï¼Œæœ€å¾Œã«ã“ã®é–¢æ•°ã§å‡ºåŠ›ç¯„囲を指定ã—ã¦æ›¸ã出ã™ã€‚\\
-
-\begin{flushright} \hyperlink{functionlist}{$\Rightarrow$関数一覧}\end{flushright}
-
-\hypertarget{tabledatalight}{}
-\item[関数] Tabledatalight(name , 縦横データ, 除外線 , options)
-\item[機能] 幾何点をæŒãŸãªã„表ã®æž ã‚’作æˆã—,表ã®ãƒ‡ãƒ¼ã‚¿list ã‚’è¿”ã™
-\item[説明] Tabledata()ãŒCinderellaã®å¹¾ä½•ç‚¹ã‚’生æˆã™ã‚‹ã®ã«å¯¾ã—,ã“ã¡ã‚‰ã¯å¹¾ä½•ç‚¹ã‚’生æˆã—ãªã„。\\
- 幾何点を作æˆã—ãªã„メリットã¯ï¼Œã‚¹ã‚¯ãƒªãƒ—トã ã‘ã§ç¸¦æ¨ªå¹…を変更ã§ãã‚‹ã“ã¨ã€‚デメリットã¯ã‚¤ãƒ³ã‚¿ãƒ©ã‚¯ãƒ†ã‚£ãƒ–ãªå¾®èª¿æ•´ãŒã§ããªã„ã“ã¨ã€‚\\
- optionã¨ã—ã¦ï¼Œãƒ©ãƒ™ãƒ«ã®ã‚¹ã‚­ãƒƒãƒ—値(スキップã™ã‚‹ã¨ã“ã‚ã¯è¡¨ç¤ºã•ã‚Œãªã„)を指定ã™ã‚‹ã“ã¨ãŒã§ãる。ãŸã ã—,ラベルã¯Cinderellaã®ç”»é¢ä¸Šã ã‘ã®å•é¡Œã€‚\\
- \\
- 例: \verb|Yoko=[20,20,20,20];|\\
-   \verb|Tate=[10,10,10,10,10];|\\
-   \verb|Tabledatalight("",Yoko,Tate,[],[2]);|\\
- ã¨ã™ã‚‹ã¨ï¼Œr1,r3,c1,c2 ãŒéžè¡¨ç¤ºã¨ãªã‚‹ã€‚\\
-
-
-\begin{flushright} \hyperlink{functionlist}{$\Rightarrow$関数一覧}\end{flushright}
-
-\hypertarget{tableseg}{}
-\item[関数] Tableseg( 罫線リスト, 線種)
-\item[機能] 罫線ã®ç·šç¨®ã‚’指定ã™ã‚‹
-\item[説明] 罫線リストを与ãˆã¦ç·šç¨®ã‚’指定ã™ã‚‹\\
- 罫線リストã¯ï¼Œ["r1c0c1","r4c2c4"] ã®ã‚ˆã†ã«ä¸Žãˆã‚‹ã€‚\\
- 破線・点線ã«ã™ã‚‹å ´åˆã¯ï¼ŒTabledata()ã§ã‚らã‹ã˜ã‚除外ã—ã¦ãŠã。\\
-
- 例: \verb|Rmv=["r1c0c1","c3r0r1","c3r3r5","r4c2c4"];|\\
-   \verb|Tabledata("",4,5,80,50,Rmv);|\\
-   \verb|Tableseg(["r1c0c1","r4c2c4"],["da"]);|\\
-
-     \input{Fig/tableseg}\\
-
- 注)R0,C0,・・ã¯å®Ÿéš›ã«ã¯è¡¨ç¤ºã•ã‚Œãªã„\\
- \\
-\hypertarget{changetablestyle}{}
-\item[関数] ChangeTablestyle(罫線リスト, 変更オプション)
-\item[機能] Table ã®ç½«ç·šã®æ画オプションを変更
-\item[説明] 罫線を部分的ã«æŒ‡å®šã—ã¦æ画オプションを変更ã§ãる。\\
- \\
-例:\verb|ChangeTablestyle(["r0c0c3"],["da"]);|
- \\
- \\
-\hypertarget{findcell}{}
-\item[関数] Findcell(列番å·, 行番å·)
-\item[機能] セルã®æƒ…å ±list(中心,横幅ï¼ï¼’,縦幅ï¼ï¼’)を返ã™
-\item[説明] 列番å·ï¼Œè¡Œç•ªå·ã¯å·¦ä¸Šã®ã‚»ãƒ«ã‚’1列1行ã¨ã—ã¦æ•°ãˆã‚‹ã€‚ \\
-
-例:\verb|Tabledata(4,5,80,50,[]);|\\
-  \verb|println(Findcell(tb,2,1));|\\
-  ã¨ã™ã‚‹ã¨ï¼Œï¼’列1行ã®ã‚»ãƒ«ã®ä¸­å¿ƒã®åº§æ¨™ã¨æ¨ªå¹…ã®åŠåˆ†ï¼Œç¸¦å¹…ã®åŠåˆ†ã®å€¤ãŒãƒªã‚¹ãƒˆã¨ã—ã¦ã‚³ãƒ³ã‚½ãƒ¼ãƒ«ã«è¡¨ç¤ºã•ã‚Œã‚‹ã€‚çµæžœã¯ [[3,4.5],1,0.5]\\
-
-\begin{flushright} \hyperlink{functionlist}{$\Rightarrow$関数一覧}\end{flushright}
-
-\hypertarget{putcell}{}
-\item[関数] Putcell (列番å·, 行番å·, ä½ç½®, 文字データ)
-\item[機能] セルã«æ–‡å­—列を入れる
-\item[説明] 複数ã®ã‚»ãƒ«ã«ã¾ãŸãä½ç½®æŒ‡å®šã®å ´åˆï¼Œåˆ—番å·ï¼Œè¡Œç•ªå·ã¯ï¼Œã‚»ãƒ«å·¦ä¸Šã¨å³ä¸‹ã®åˆ¶å¾¡ç‚¹ã®å称ã§æŒ‡å®šã™ã‚‹ã€‚\\
- ä½ç½®ã¯ã€€c, r, l, t, b (中央center , å³right , å·¦left , 上top , 下bottom )\\
- ä½ç½®ã®ä¾‹ã‚’以下ã«ç¤ºã™ã€‚
-\begin{verbatim}
-  Tabledata("",5,2,100,40,["c1r1r2","c4r1r2"]);
-  Putcell(1,1,"c","A");
-  Putcell(2,1,"r","B");
-  Putcell(3,1,"l","C");
-  Putcell(4,1,"t","D");
-  Putcell(5,1,"b","E");
-  Putcell(c0r1,c2r2,"c","F");
-  Putcell(c2r1,c3r2,"lb","G");
-  Putcell(c3r1,c5r2,"rt","H");
-\end{verbatim}
- \\
-   \input{Fig/putcell}\\
- ※R0,C0,・・ã¯å®Ÿéš›ã«ã¯è¡¨ç¤ºã•ã‚Œãªã„\\
-
-\begin{flushright} \hyperlink{functionlist}{$\Rightarrow$関数一覧}\end{flushright}
-
-\hypertarget{putcol}{}
-\item[関数] PutcoL (列番å·, 文字ä½ç½®ï¼Œæ–‡å­—列リスト)
-\item[機能] 1列ã«é †ã«æ–‡å­—を書ã入れる
-\item[説明] 列番å·ã§æŒ‡å®šã—ãŸåˆ—ã«ï¼Œç¬¬ï¼‘è¡Œã‹ã‚‰é †ã«æ–‡å­—列リストã®æ–‡å­—を書ã入れる\\
- 数ã®å ´åˆã¯ãƒ€ãƒ–ルクウォートã§ããらãªãã¦ã‚‚よã„。\\
- セルを飛ã°ã™å ´åˆã¯ï¼ŒãƒŒãƒ«æ–‡å­—列 "" を書ã。\\
-
-
-\hypertarget{putcolexpr}{}
-\item[関数] PutcoLexpr (列番å·, 文字ä½ç½®ï¼Œæ–‡å­—列リスト)
-\item[機能] 1列ã«é †ã«æ–‡å­—を書ã入れる
-\item[説明] 文字列ã«\TeX 書å¼ã‚’使ã†ã“ã¨ãŒã§ãã‚‹\\
-
-\hypertarget{putrow}{}
-\item[関数] Putrow (行番å·, 文字ä½ç½®ï¼Œæ–‡å­—列リスト)
-\item[機能] 1行ã«é †ã«æ–‡å­—を書ã入れる
-\item[説明] 行番å·ã§æŒ‡å®šã—ãŸè¡Œã«ï¼Œç¬¬ï¼‘列ã‹ã‚‰é †ã«æ–‡å­—列リストã®æ–‡å­—を書ã入れる。\\
-
-
-\hypertarget{putrowexpr}{}
-\item[関数] Putrowexpr (行番å·, 文字ä½ç½®ï¼Œæ–‡å­—列リスト)
-\item[機能] 1行ã«é †ã«æ–‡å­—を書ã入れる
-\item[説明] 文字列ã«\TeX 書å¼ã‚’使ã†ã“ã¨ãŒã§ãã‚‹\\
-
-文字を入れる例を示ã™ã€‚
-\begin{verbatim}
-  Tabledata("",5,3,100,45,["c1r1r2","r1c2c3","r2c2c3"]);
-  PutcoL(3,"c",["A","B","C"]);
-  PutcoLexpr(4,"l",["x^2","y=\sqrt{x^3}"]);
-  Putrow(1,"c",[1,"二"]);
-  Putrowexpr(3,"c",["","\frac{\pi}{2}","","","\sum{x^2}"]);
-\end{verbatim}
-
-     \input{Fig/putcol}\\
-
- ※ R0,C0,・・ã¯å®Ÿéš›ã«ã¯è¡¨ç¤ºã•ã‚Œãªã„\\
-  ã¾ãŸï¼Œã“ã®ä¾‹ã§ã¯ï¼ŒC4列ã®ç½«ç·šã‚’,制御点C4をドラッグã™ã‚‹ã“ã¨ã«ã‚ˆã‚Š\\
-  å³ã«ãšã‚‰ã—ã¦ã„る。\\
-\\
-
-グラフや文を入れãŸè¡¨ã®ä½œæˆä¾‹\\
-
- PutcoLexpr(),Putrowexpr() ã§ã¯ï¼Œæ•°å¼ã ã‘ã§ãªã,一般ã®\TeX ã®æ–‡ã‚’入れるã“ã¨ãŒã§ãる。\\
- ã¾ãŸï¼Œã‚°ãƒ©ãƒ•ã®ä½ç½®ã‚’é©å½“ã«åˆã‚ã›ã¦æç”»ã™ã‚‹ã“ã¨ã«ã‚ˆã‚Šï¼Œè¡¨ã®ã‚»ãƒ«ã®ä¸­ã«ã‚°ãƒ©ãƒ•ã‚’入れるã“ã¨ãŒã§ãる。\\
-
- 例:2次関数ã®ã‚°ãƒ©ãƒ•ã¨ï¼’次方程å¼ã®åˆ¤åˆ¥å¼ã®é–¢ä¿‚\\
-  セルã®ä¸­ã«ã‚°ãƒ©ãƒ•ã‚’æã例。実際ã«ã¯ï¼Œã‚»ãƒ«ã®ä½ç½®ã«ã‚°ãƒ©ãƒ•ã‚’æã„ã¦ã„ã‚‹ã ã‘。
-\begin{verbatim}
-  Tabledata("",3,3,120,90,["r1c0c3","r2c0c3"],["dr,2"]);
-  Tableseg(["r1c0c3"],["dr"]);
-  Tableseg(["r2c0c3"],["da"]);
-  Plotdata("1","(x-2)^2+1.5","x=[0.5,3.5]");
-  Plotdata("2","(x-6)^2+2","x=[4.5,7.5]");
-  Plotdata("3","(x-10)^2+2.5","x=[8.5,11.5]");
-  Listplot([A,B]);
-  Listplot([C,D]);
-  Listplot([E,F]);
-  Putrowexpr(1,"c",["D>0","D=0","D<0"]);
-  Putrow(2,"c",["2点ã§äº¤ã‚ã‚‹","接ã™ã‚‹","共有点ãªã—"]);
-  Letter(G,"c","判別å¼ã¨$x$軸ã®äº¤ç‚¹");
-\end{verbatim}
- \\
-       \input{Fig/tablesample1}\\
-\\
-注æ„:ã“ã®ä¾‹ã‚’実行ã™ã‚‹ã¨ã‚ã‹ã‚‹ãŒï¼Œã‚»ãƒ«ã®ã‚µã‚¤ã‚ºã¨æ–‡å­—サイズã®é–¢ä¿‚ãªã©ã«ã‚ˆã‚Šï¼ŒCinderellaã®ç”»é¢ä¸Šã¨\TeX ã¸ã®æ›¸ã出ã—ã¯å¿…ãšã—ã‚‚åŒä¸€ã«ã¯ãªã‚‰ãªã„。\\
-
-\newpage
- 例:増減表ã¨ã‚°ãƒ©ãƒ•\\
-
- 関数ã®å¢—減表ã¨ã‚°ãƒ©ãƒ•ã‚’1ã¤ã®è¡¨ã®ä¸­ã«å…¥ã‚ŒãŸä¾‹ã€‚
-\begin{verbatim}
-  Tate=[6,6,10,6,10,6,40];
-  Yoko=[30,6,6,6];
-  Rmv=["c1r0r1","c2r0r1","c3r0r1","c4r0r1","c5r0r1", "r1c6c7","r2c6c7","r3c6c7"];
-  Tabledata("",Tate,Yoko,Rmv,["dr"]);
-  Tlistplot("23d",["c1r2","c2r3"]);
-  Tlistplot("23u",["c1r3","c2r2"]);
-  Putrowexpr(2,"c",["x",0,"\cdots","\tfrac{1}{4}","\cdots",4]);
-  Putrowexpr(3,"c",["y`","","-",0,"+"]);
-  Putrowexpr(4,"c",["y",0,"\searrow","-\tfrac{1}{4}","\nearrow",2]);
-  Putcell(1,1,"l2t2","{\small\begin{minipage}{44mm}$y=x-\sqrt{x}$\\$y`=
-  \dfrac{2\sqrt{x}-1}{2\sqrt{x}}=0$|より\vspace{1mm}\\\hspace*{2zw}$x=
-  \dfrac{1}{4}$\vspace{1mm}\\増減表ã¯æ¬¡ã®ã‚ˆã†ã«ãªã‚‹\end{minipage}}" );
-  Plotdata("1","x-sqrt(x)","x=[0,3]",["do","notex"]);
-  Listplot("2",[[0,0],[3,0]],["do","notex"]);
-  Listplot("3",[[0,-0.5],[0,3]],["do","notex"]);
-  Translatedata("1","gr1",[4.9,1],["dr"]);
-  Translatedata("2","sg2",[4.9,1],["dr"]);
-  Translatedata("3","sg3",[4.9,1],["dr"]);
-  Letter(Ptend(tr2),"e1","\small{$x$}");
-  Letter(Ptend(tr3),"n1","\small{$y$}");
-  Letter(Ptstart(tr2),"w1","\small O");
-  Expr(Ptend(tr1),"nw-2","y=x-\sqrt{x}");
-\end{verbatim}
-       \input{Fig/tablesample2}
-\begin{flushright} \hyperlink{functionlist}{$\Rightarrow$関数一覧}\end{flushright}
-
-\hypertarget{settable}{}
-\item[関数] Settable((左上) , å³ä¸‹)
-\item[機能] 表データを書ã出ã™
-\item[説明] 指定ã•ã‚ŒãŸç¯„囲ã§è¡¨ã®æž ç·šã‚’書ã出ã™ã€‚指定ã—ãªã‘ã‚Œã°å…¨ä½“ãŒæ›¸ã出ã•ã‚Œã‚‹ã€‚\\
- 表ã®å‡ºåŠ›ç¯„囲ã¯ï¼ŒNE,SWã«ã‚ˆã‚‹æ画範囲ã«ã‹ã‹ã‚‰ã‚ãšï¼Œå…¨ä½“ã‚‚ã—ãã¯Settable()ã§æŒ‡å®šã—ãŸç¯„囲ã¨ãªã‚‹ã€‚\\
- ä½ç½®ã¯ï¼Œåˆ¶å¾¡ç‚¹ã«ã‚ˆã‚‹ä½ç½®è¡¨ç¤ºã§ï¼Œc2r3 ã®ã‚ˆã†ã«æŒ‡å®šã™ã‚‹ã€‚\\
- c,rã¯å°æ–‡å­—㧠c,r ã®é †ã€‚\\
- 左上をçœç•¥ã™ã‚‹ã¨ï¼Œãƒ‡ãƒ•ã‚©ãƒ«ãƒˆã® c0r0 ã¨è§£é‡ˆã•ã‚Œã‚‹ã€‚\\
-
-例:\verb|Tabledata("",4,5,80,50,[]);|\\
-  \verb|repeat(5,s, Putrow(s,"c",[s*4-3,s*4-2,s*4-1,s*4]));|\\
-  \verb|Settable(c4r5);|\\
-
- 2行目ã§å„セルã«æ•°å­—を入れã¦ã„る。\\
- 左上ã¨å³ä¸‹ï¼ˆç½«ç·šC4ã¨R5ã®äº¤ç‚¹ï¼‰ã‚’対角ã¨ã™ã‚‹ç¯„囲,ã™ãªã‚ã¡å…¨ä½“を書ã出ã™ã€‚\\
-  \verb|Settable(c3r4);|\\
- ã¨ã™ã‚‹ã¨ï¼Œå·¦ä¸Šã¨å³ä¸‹ï¼ˆç½«ç·šC3ã¨R4ã®äº¤ç‚¹ï¼‰ã‚’対角ã¨ã™ã‚‹ç¯„囲。\\
- 出力ã™ã‚‹ã®ã¯ç½«ç·šã ã‘ãªã®ã§ï¼Œã‚»ãƒ«ã®ä¸­èº«ã¯ãã®ã¾ã¾è¡¨ç¤ºã•ã‚Œã‚‹ã€‚(下図左)\\
-  \verb|Settable(c1r1,c3r4);|\\
- ã¨ã™ã‚‹ã¨ï¼Œå·¦ä¸Šï¼ˆç½«ç·šC1ã¨R1ã®äº¤ç‚¹ï¼‰ã¨å³ä¸‹ï¼ˆç½«ç·šC3ã¨R4ã®äº¤ç‚¹ï¼‰ã‚’対角ã¨ã™ã‚‹ç¯„囲。\\
- 罫線ã ã‘ãªã®ã§ï¼Œã‚»ãƒ«ã®ä¸­èº«ã¯ãã®ã¾ã¾è¡¨ç¤ºã•ã‚Œã‚‹ã€‚(下図å³ï¼‰\\
-\\
-  \input{Fig/settable1}        \input{Fig/settable2}\\
- \\
- \\
-\hypertarget{tgrid}{}
-\item[関数] Tgrid(セルラベル)
-\item[機能] 表ã®ã‚»ãƒ«ã®åº§æ¨™ã‚’è¿”ã™
-\item[説明] 指定ã•ã‚ŒãŸã‚»ãƒ«ã®å·¦ä¸Šã®åº§æ¨™ã‚’è¿”ã™ã€‚実際ã«ã¯ï¼Œã‚»ãƒ«ãƒ©ãƒ™ãƒ«ã¯ç½«ç·šã‚’示ã—ã¦ã„ã‚‹ã®ã§ï¼ŒæŒ‡å®šã—ãŸç½«ç·šã®äº¤ç‚¹ï¼ˆæ ¼å­ç‚¹ï¼‰ã¨ã„ã†ã“ã¨ã‚‚ã§ãる。\\
- \\
-\hypertarget{tlistplot}{}
-\item[関数] Tlistplot(セルラベル1,セルラベル2)
-\item[機能] 指定ã•ã‚ŒãŸï¼’ã¤ã®æ ¼å­ç‚¹ã‚’線分ã§çµã¶
-\item[説明] セルã«æ–œç·šã‚’引ãã®ã«ç”¨ã„る。\\
-  例:\verb|Tlistplot(["c0r1","c1r2"]);|
- \\
-\begin{flushright} \hyperlink{functionlist}{$\Rightarrow$関数一覧}\end{flushright}
-
-\end{description}
-
-\newpage
-
-%===================================
-\subsection{値ã®å–å¾—ã¨å…¥å‡ºåŠ›}
-
- 計算値やプロットデータã®å€¤ã‚’å–å¾—ã—ãŸã‚Šï¼ŒScilab用ã¨ã®ãƒ‡ãƒ¼ã‚¿ã®ã‚„ã‚Šã¨ã‚Šã‚’ã™ã‚‹ã€‚\\
-\begin{description}
-
-\hypertarget{crossprod}{}
-\item[関数] Crossprod(リスト,リスト)
-\item[機能] 2ã¤ã®ãƒ™ã‚¯ãƒˆãƒ«ã®å¤–ç©ã‚’求ã‚る。
-\item[説明] Cindyscriptã®çµ„ã¿è¾¼ã¿é–¢æ•° cross(リスト,リスト)ã¨åŒã˜ã€‚\\
- 例:\verb|Crossprod([1,0,0],[1,1,1]);|\\
-   çµæžœã¯ã€€[0,-1,1]\\
-
-\hypertarget{dotprod}{}
-\item[関数] Dotprod(リスト,リスト)
-\item[機能] 2ã¤ã®ãƒ™ã‚¯ãƒˆãƒ«ã®å†…ç©ã‚’求ã‚る。
-\item[説明] Cindyscriptã§ã¯ï¼Œç©ã®æ¼”ç®—ã§å†…ç©ãŒæ±‚ã‚られる。\\
- 例:\verb|Dotprod([1,2,3],[1,-1,1]);|\\
-   çµæžœã¯ã€€ï¼’\\
-   [1,2,3]*[1,-1,1] ã§ã‚‚åŒã˜çµæžœã‚’得る。\\
-
-\hypertarget{findarea}{}
-\item[関数] Findarea(プロットデータ)
-\item[機能] プロットデータã§å›²ã¾ã‚Œã‚‹éƒ¨åˆ†ã®é¢ç©ã‚’求ã‚る。
-\item[説明] 閉曲線をãªã™ãƒ—ロットデータã§å›²ã¾ã‚Œã‚‹éƒ¨åˆ†ã®é¢ç©ã‚’求ã‚る。\\
-例:ベジェ曲線ã§å›²ã¾ã‚ŒãŸéƒ¨åˆ†ã®é¢ç©ã‚’求ã‚ã¦è¡¨ç¤ºã™ã‚‹ã€‚\\
-  \verb|Bezier("1",[A,B,C],[[D],[E,F]]);|\\
-  \verb|drawtext([2,1],Findarea("bz1"));|\\
-
-\hypertarget{findlength}{}
-\item[関数] Findlength(プロットデータ)
-\item[機能] プロットデータã®æ›²ç·šã®é•·ã•ã‚’求ã‚る。
-\item[説明] プロットデータãŒæã曲線ã®é•·ã•ã‚’求ã‚る。\\
-例:ベジェ曲線ã§æã„ãŸæ›²ç·šã®é•·ã•ã‚’求ã‚ã¦è¡¨ç¤ºã™ã‚‹ã€‚\\
-  \verb|Bezier("1",[A,B,C],[[D],[E,F]]);|\\
-  \verb|drawtext([2,1],Findlength("bz1"));|\\
-
-
-\hypertarget{intersectcrvs}{}
-\item[関数] Intersectcrvs(プロットデータ1, プロットデータ2, optionss)
-\item[機能] 2曲線ã®äº¤ç‚¹ãƒªã‚¹ãƒˆã‚’å–å¾—ã™ã‚‹ã€‚
-\item[説明] オプションã¯å…±æœ‰ç‚¹ãŒã‚ã‚‹ã‹ã©ã†ã‹ã‚’判断ã™ã‚‹ãŸã‚ã®é™ç•Œå€¤\\
-ãŸã ã—,オプションã¯é€šå¸¸ã¯ä½¿ã‚ãªã„ã®ã§æ°—ã«ã—ãªãã¦ã‚ˆã„。\\
- \\
-例:円ã¨æ›²ç·šã®äº¤ç‚¹ã‚’P,Qã¨ã™ã‚‹ã€‚
-\begin{verbatim}
-   Plotdata("1", "sin(x)", "x", ["Num=100"]);
-   Circledata([A, B]);
-   tmp=Intersectcrvs(gr1, crAB);
-   P.xy=tmp_1;
-   Q.xy=tmp_2;
- \end{verbatim}
-
- リスト内ã«2交点ã®ãƒ‡ãƒ¼ã‚¿ãŒ tmpï¼[ [ $-0.37$, $-0.36$ ], [ 2.13, 0.85 ] ] ã®ã‚ˆã†ã«å…¥ã£ã¦ã„る。交点ã®é †åºã¯ PD1, PD2 ã®é †åºã¨æ›²ç·šã®å‘ãã«ã‚ˆã£ã¦æ±ºã¾ã‚‹ã€‚曲線ã®å‘ãã¯ï¼Œ$y=f(x)$ã®ã‚°ãƒ©ãƒ•ã§ã¯x座標ãŒå¢—加ã™ã‚‹å‘ãã§ï¼Œãƒ‘ラメーター表示曲線ã§ã¯ãƒ‘ラメータã®å¢—加ã™ã‚‹å‘ã。ã¾ãŸï¼ŒPD1 上ã‹ã‚‰æŽ¢ã—始ã‚㦠PD2 ã¨ã®äº¤ç‚¹ã‚’拾ã£ã¦ã‚†ã。\\
- 交点ãŒã²ã¨ã¤ã®å ´åˆã‚‚ tmpï¼[ [ 2.45, 0.63 ] ] ã¨2é‡ã®ãƒªã‚¹ãƒˆã«å…¥ã£ã¦ã„ã‚‹ã®ã§ï¼Œç‚¹ã¨ã—ã¦å–出ã™ã«ã¯ P=tmp\verb|_|1; ã¨ã™ã‚‹ã€‚\\
-\begin{center}
-\input{Fig/Intersectcrvs1}\\
-\end{center}
-
-\hypertarget{invert}{}
-\item[関数] Invert(PD)
-\item[機能] プロットデータã®ç‚¹ã‚’逆順ã«ã™ã‚‹ï¼ˆreverseã¨åŒã˜ï¼‰
-\\
-
-\hypertarget{meetcurve}{}
-\item[関数] MeetCurve(曲線,x0, y0)
-\item[機能] 曲線上ã®ç‚¹ã‚’è¿”ã™ã€‚
-\item[説明] x座標ãŒx0ã§ï¼Œç‚¹(x0, y0)ã«è¿‘ã„曲線上ã®ç‚¹ã‚’è¿”ã™ã€‚\\
-注)x0, y0 ã¯æ–‡å­—列ã§ã‚‚よã„。\\
-
-\hypertarget{lcrd}{}
-\item[関数] Lcrd()
-\item[機能] 幾何点,リスト点ã®è«–ç†åº§æ¨™ã‚’å–å¾—ã™ã‚‹ã€‚
-\\
-
-\hypertarget{pcrd}{}
-\item[関数] Pcrd()
-\item[機能] 幾何点,リスト点ã®ç‰©ç†ï¼ˆè¡¨ç¤ºï¼‰åº§æ¨™ã‚’å–å¾—ã™ã‚‹ã€‚
-\\
-
-
-\begin{flushright} \hyperlink{functionlist}{$\Rightarrow$関数一覧}\end{flushright}
-
-\hypertarget{nearestpt}{}
-\item[関数] Nearestpt(PD1,PD2)
-\item[機能] 2曲線ã«å¯¾ã—,最も近ã„点ã¨ãã®ãƒ‘ラメータ,è·é›¢ã®ãƒªã‚¹ãƒˆã‚’è¿”ã™
-\item[説明] 戻り値ã¯ï¼Œãã‚Œãžã‚Œã®æ›²ç·šä¸Šã®ç‚¹ã®åº§æ¨™ã¨ãƒ—ロットデータ中ã®ä½ç½®ï¼Œãã®è·é›¢ã‹ã‚‰ãªã‚‹ãƒªã‚¹ãƒˆã€‚\\
-例:2ã¤ã®æ”¾ç‰©ç·šä¸Šã®ç‚¹ã®æœ€çŸ­è·é›¢ã¨ãã®ä½ç½®ã‚’求ã‚る。点A,Bを作図ツールã§ã¨ã£ã¦ãŠã。
-\begin{verbatim}
-  Plotdata("1", "x^2+2", "x=[-2,2]");
-  Plotdata("2", "-(x-2)^2","x=[0,3]");
-  plist=Nearestpt("gr2","gr1");
-  B.xy=plist_1;
-  A.xy=plist_3;
-  Listplot([A,B],["do"]);
-  Ptsize(4);
-  Drwpt([A,B]);
-  Letter([A,"nw","A",B,"n2e","B",(A+B)/2,"e",text(plist_5)]);
-\end{verbatim}
-      \input{Fig/Nearestpt}\\
-\\
-ã“ã“㧠plistã«ä»£å…¥ã•ã‚ŒãŸãƒªã‚¹ãƒˆã¯æ¬¡ã®å½¢ã§ã‚る。5番目ã®è¦ç´ ãŒï¼’点間ã®è·é›¢ï¼Œã™ãªã‚ã¡æœ€çŸ­è·é›¢ã€‚\\
-  [[1.68,-0.1],29,[0.32,2.1],30,2.59] \\
- \\
-\hypertarget{nearestptcrv}{}
-\item[関数] Nearestptcrv(座標, プロットデータ)
-\item[機能] 第1引数ã®åº§æ¨™ã«æœ€ã‚‚è¿‘ã„曲線プロットデータ上ã®ç‚¹åº§æ¨™ã‚’è¿”ã™
-\item[説明] 次ã«ä¾‹ç¤ºã™ã‚‹ã€‚中心A,åŠå¾„ABã®å††ã¨ç‚¹C,Dã¯Cinderellaã§ä½œå›³ã—ã¦ãŠã。
-\begin{verbatim}
-  Circledata([A, B]);
-  Plotdata("1", "x^2", "x");
-  pCr=Nearestptcrv(C.xy, "crAB")
-  pC1=Nearestptcrv(C.xy, "gr1")
-  pDr=Nearestptcrv(D.xy, "crAB");
-  pD1=Nearestptcrv(D.xy, "gr1");
-\end{verbatim}
-ãžã‚Œãžã‚Œï¼Œç‚¹C,点D ã‹ã‚‰æœ€ã‚‚è¿‘ã„曲線上ã®ç‚¹ã‚’表ã™ã€‚\\
- \\
-      \input{Fig/Nearestpt1}\\
-
- \\
-\begin{flushright} \hyperlink{functionlist}{$\Rightarrow$関数一覧}\end{flushright}
-
-\hypertarget{numptcrv}{}
-\item[関数] Numptcrv (プロットデータ)
-\item[機能] 曲線ã®ç¯€ç‚¹ã®å€‹æ•°ã‚’è¿”ã™
-\item[説明] Cindyscript ã® length(PD)ã¨åŒã˜\\
-
-例: 曲線上ã®ã„ãã¤ã‹ã®ç‚¹ã§åˆ†å‰²ã—ç ´ç·šã§å›³ç¤ºã™ã‚‹ã€‚\\
-区間$[-1, 2]$ã«å¯¾ã™ã‚‹2次関数ã®ã‚°ãƒ©ãƒ•ã‚’æã\\
-  \verb|Deffun("f(x)",["regional(y)","y=-x^2+4","y"]);|\\
-  \verb|Plotdata("1","f(x)","x=[-1,2]",["Num=200"]);|\\
-曲線ã®ç«¯ç‚¹ã‚’çµã¶ç›´ç·šã‚’æã\\
-  \verb|Lineplot("3",[Ptstart(gr1),Ptend(gr1)],["do"]);|\\
-節点ã®4分ã®ï¼‘ã§æ›²ç·šã‚’分割ã—ã¦ç ´ç·šã‚’æã\\
-  \verb|Lineplot("4",[Ptstart(gr1),Ptcrv(0.25*Numptcrv(gr1),gr1)],["da"]); |\\
-節点ã®2等分ã§æ›²ç·šã‚’分割ã—ã¦ç ´ç·šã‚’æã\\
-  \verb|Lineplot("5",[Ptstart(gr1),Ptcrv(0.5*Numptcrv(gr1),gr1)],["da"]); |\\
-節点ã®4分ã®3ã§æ›²ç·šã‚’分割ã—ã¦ç ´ç·šã‚’æã\\
-  \verb|Lineplot("6",[Ptstart(gr1),Ptcrv(0.75*Numptcrv(gr1),gr1)],["da"]);| \\
-曲線上ã®ç‚¹Aã®æŽ¥ç·šã‚’引ã。
-\begin{verbatim}
-  coef=Derivative("f(x)","x",G.x);
-  Defvar("DC=coef");
-  Deffun("g(x)",["regional(y)","y=DC*(x-G.x)+G.y","y"]);
-  Plotdata("2","g(x)","x",["dr,2"]);
-\end{verbatim}
-  \\
-\input{Fig/numptcrv}\\
-
-\begin{flushright} \hyperlink{functionlist}{$\Rightarrow$関数一覧}\end{flushright}
-
-\hypertarget{paramoncrv}{}
-\item[関数] Paramoncrv(点ã®åº§æ¨™, 曲線ã®åå‰)
-\item[機能] 曲線上ã®ç‚¹ã®ãƒ‘ラメータ値を返ã™ã€‚
-\item[説明] 曲線ã¯æŠ˜ã‚Œç·šã¨ã—ã¦æã‹ã‚Œã‚‹ãŒï¼Œæ›²ç·šä¸Šã®å„点ã¯ã“ã®æŠ˜ã‚Œç·šã®ç¯€ç‚¹ã‚’基準ã¨ã—ãŸãƒ‘ラメータ値をæŒã¤ã€‚パラメータ値ã¯æ•´æ•°éƒ¨åˆ†ãŒç¯€ç‚¹ã®ç•ªå·ï¼Œå°æ•°éƒ¨åˆ†ãŒç¯€é–“ã®ä½ç½®ã‚’表ã™ã€‚\\
-
-例:図ã®ã‚ˆã†ãªç‚¹Pã‹ã‚‰Qã«è‡³ã‚‹å††å‘¨ä¸Šã®5等分点を節点ã¨ã™ã‚‹æŠ˜ã‚Œç·šsg1ã«ãŠã„ã¦ï¼Œ
-$n$番目ã®ç·šåˆ†ä¸Šã®ç‚¹ã¯$n\leqq t\leqq n+1$ã®ç¯„囲ã®ãƒ‘ラメータ値をæŒã¤ã€‚\\
-図ã®ç‚¹$\mathrm{A}$ã¯2番目ã®ç·šåˆ†ä¸Šã«ã‚り,パラメータ値ã¯2.45ã§ã‚る。ã“ã®å€¤ã¯\\
-  \verb|Paramoncrv(A.xy,"sg1");|\\
-ã«ã‚ˆã£ã¦å¾—られる。\\
- \\
-       \input{Fig/paramoncrv}\\
-
-\hypertarget{pointcrv}{}
-\item[関数] Pointoncrv(点ã®ãƒ‘ラメータ値, PD)
-\item[機能] 曲線上ã®ãƒ‘ラメータ値をæŒã¤ç‚¹ã®åº§æ¨™ã‚’è¿”ã™ã€‚
-\item[説明] 曲線(折れ線)上ã®ç¯€ç‚¹ã‚’基準ã¨ã—ãŸãƒ‘ラメータ値ã«ã‚ˆã‚Šç‚¹ã®ä½ç½®ãŒå®šã¾ã‚‹ã€‚\\
-
-例:図ã®ã‚ˆã†ãªç‚¹$\mathrm{P}$ã‹ã‚‰$\mathrm{Q}$ã«è‡³ã‚‹åŠå††å‘¨ä¸Šã®5等分点を節点ã¨ã™ã‚‹æŠ˜ã‚Œç·šsg1ã«ãŠã„ã¦ï¼Œãƒ‘ラメータ値$4.5$ã‚’æŒã¤ç‚¹$\mathrm{A}$ã¯4番目ã®ç·šåˆ†ã®ä¸­ç‚¹ã§ã‚る。ã—ãŸãŒã£ã¦\\
-  \verb|A.xy=Pointoncrv(4.5,"cr1");|\\
-ã«ã‚ˆã£ã¦ï¼Œç‚¹Aを中点ã«ç½®ãã“ã¨ãŒã§ãる。\\
- \\
-        \input{Fig/pointoncrv}
-
-\begin{flushright} \hyperlink{functionlist}{$\Rightarrow$関数一覧}\end{flushright}
-\newpage
-\hypertarget{ptcrv}{}
-\item[関数] Ptcrv(n,プロットデータ)
-\item[機能] 曲線プロットデータã®n 番目ã®ç¯€ç‚¹ã‚’è¿”ã™
-\item[説明] Cindyscript ã® PD\_n ã¨åŒã˜\\
-
-例:楕円上ã®ç‚¹ã§åˆ†å‰²ã™ã‚‹ã€‚ã‚ã‹ã‚‰ã˜ã‚å¿…è¦ãªç‚¹ã‚’作図ã—ã¦ãŠã。
-\begin{verbatim}
-   Circledata([O,P],["do","Num=100","notex"]);
-   Scaledata("1","crOP",4/3,1);
-   F.xy=[-sqrt(7),0];
-   A=Ptcrv(9,sc1);
-   B=Ptcrv(16,sc1);
-   Listplot("1",[A,F,B],["da"]);
-   Partcrv("1",A,B,"sc1",["dr,3"]);
-   Shade(["part1","sg1"],0.1);
-   Arrowhead(B,"sc1",[1.5]);
-   Letter([A,"ne","A",B,"ne","B",F,"s2","F"]);
-\end{verbatim}
-        \input{Fig/ptcrv}
-
-\begin{flushright} \hyperlink{functionlist}{$\Rightarrow$関数一覧}\end{flushright}
-
-\hypertarget{ptstart}{}
-\item[関数] Ptstart(プロットデータ) , Ptend(プロットデータ)
-\item[機能] プロットデータã®æœ€åˆã®ç‚¹ï¼Œæœ€å¾Œã®ç‚¹ã‚’å–å¾—ã™ã‚‹ã€‚
-\item[説明] プロットデータã®æœ€åˆã®ç‚¹ï¼Œæœ€å¾Œã®ç‚¹ã®åº§æ¨™ã‚’è¿”ã™ã€‚\\
- \\
-例:定義域をé™å®šã—ãŸã‚°ãƒ©ãƒ•ã®ä¸¡ç«¯ã®ç‚¹ã‚’å–å¾—ã—線分ABを引ã。\\
-\begin{verbatim}
-   Deffun("f(x)",["regional(y)","y=x^2","y"]);
-   Plotdata("1","f(x)","x=[-1,2]",["dr"]);
-   Lineplot("2",[Ptstart(gr1),Ptend(gr1)]);
-\end{verbatim}
-     \input{Fig/ptstart}\\
-\begin{flushright} \hyperlink{functionlist}{$\Rightarrow$関数一覧}\end{flushright}
-
- \\
-
-\hypertarget{readoutdata}{}
-\item[関数] ReadOutData(ファイルå)
-\item[機能] 外部データを読ã¿è¾¼ã‚€
-\item[説明] Scilabã®WriteOutDataã§ä½œã£ãŸãƒ—ロットデータ列ã®ãƒ‡ãƒ¼ã‚¿ãƒ•ã‚¡ã‚¤ãƒ«ã‚’読ã¿è¾¼ã‚€ã€‚\\
-引数をçœç•¥ã—ãŸå ´åˆã¯ï¼ŒFheadã§å®šç¾©ã—ãŸãƒ•ã‚¡ã‚¤ãƒ«åã®ãƒ†ã‚­ã‚¹ãƒˆãƒ•ã‚¡ã‚¤ãƒ«ã‹ã‚‰èª­ã¿è¾¼ã‚€ã€‚
-ファイルåã«ã¯ã‚³ãƒ³ãƒžã§åŒºåˆ‡ã£ã¦ãƒ‘スを与ãˆã‚‹ã“ã¨ãŒã§ãる。ãŸã¨ãˆã°ï¼Œ\\
-   \verb|ReadOutData("/datafolder","file.txt"); |\\
- \\
- \\
-\hypertarget{sprintf}{}
-\item[関数] Sprintf(実数,é•·ã•)
-\item[機能] å°æ•°ç‚¹ä»¥ä¸‹ã®é•·ã•ã‚’固定ã—ãŸæ–‡å­—列ã«å¤‰æ›
-\item[説明] 実数を,å°æ•°ç‚¹nä½ã¾ã§ã®æ•°ã¨ã—ãŸæ–‡å­—列ã«å¤‰æ›ã™ã‚‹\\
- \\
-例 Sprintf(pi,2) 㯠3.14 ã‚’è¿”ã™\\
-  Sprintf(pi,7) 㯠3.1415927 ã‚’è¿”ã™\\
-注)pi 㯠Cindyscriptã®äºˆç´„変数ã§ï¼Œå††å‘¨çŽ‡ã‚’表ã™ã€‚ \\
-
-\hypertarget{writetosci}{}
-\item[関数] WritetoSci(引数) ,WritetoScibody(引数)
-\item[機能] Scilab用ã®ã‚½ãƒ¼ã‚¹ãƒ•ã‚¡ã‚¤ãƒ«ã«æ›¸ã出ã™
-\item[説明] ソースファイルã¸ã®æ›¸ã出ã—æ–¹ã«ï¼“ã¤ã®ã‚¿ã‚¤ãƒ—ãŒã‚ã‚‹\\
-
-・引数ãªã—ã®å ´åˆ\\
-  Fheadã§å®šç¾©ã—ãŸãƒ•ã‚¡ã‚¤ãƒ«åã«æ‹¡å¼µå­ .sci を付加ã—ã¦å…¨ä½“を書ã出ã™ã€‚\\
-  末尾ã«ã‚³ãƒ¡ãƒ³ãƒˆã‚¢ã‚¦ãƒˆã—㟠quit() を付加ã™ã‚‹ã€‚\\
-・WritetoSciã®å¼•æ•°ã«æ¬¡ã®æ•°ã‚’渡㙠\\
- \verb|WritetoSci(1)|: WritetoSci() ã¨åŒã˜\\
- \verb|WritetoSci(2)|: 全体を書ã出ã—,末尾㫠quit() を付加ã™ã‚‹ã€‚\\
- \verb|WritetoSci(3)|: WritetoScibody() ã¨åŒã˜ã€‚body部分ã®ã¿ã‚’書ã出ã™ã€‚\\
-・ファイルåを引数ã¨ã™ã‚‹\\
-  引数ã®ãƒ•ã‚¡ã‚¤ãƒ«åã§æ›¸ã出ã™ã€‚ãŸã ã—ï¼Œæ‹¡å¼µå­ .sci ã‚’ã¤ã‘ã‚‹å¿…è¦ãŒã‚る。\\
-・引数を "sh" ã¨ã™ã‚‹\\
-  WritetoSci(2) ã¨åŒã˜ã€‚\\
-・\verb|WritetoSci(filename,"sh")|\\
-  引数ã®ãƒ•ã‚¡ã‚¤ãƒ«åã§shell(bat)コマンド用ã®ãƒ•ã‚¡ã‚¤ãƒ«ã‚’書ã出ã™ã€‚\\
-・\verb|WritetoSci(æ•°å­— ,filename)| ã¯ä¸å¯ï¼ˆã‚¨ãƒ©ãƒ¼ã¨ãªã‚‹ï¼‰\\
-\\
-
-\hypertarget{makeshell}{}
-\item[関数] Makeshell(ファイルå) / Makebat(ファイルå)
-\item[機能] Macã®å ´åˆã¯ã‚·ã‚§ãƒ«ãƒ•ã‚¡ã‚¤ãƒ«ï¼ŒWindowsã®å ´åˆã¯ãƒãƒƒãƒãƒ•ã‚¡ã‚¤ãƒ«ã‚’書ã出ã™ã€‚
-\item[説明] 書ã出ã•ã‚Œã‚‹ãƒ•ã‚¡ã‚¤ãƒ«ã¯æ¬¡ã®é€šã‚Šã€‚\\
-・書ã出ã•ã‚Œã‚‹å ´æ‰€ã¨ãƒ•ã‚¡ã‚¤ãƒ«åã¯ï¼Œ Shellparent / Batparent ã§æŒ‡å®šã—ãŸã‚‚ã®ã€‚\\
-・内容ã¯ï¼ŒShellchild / Batchild ã«ï¼Œå­ãƒ—ロセスã®å¼•æ•°ã¨ã—㦠Fhead ã¨å¼•æ•°ã®ãƒ•ã‚¡ã‚¤ãƒ«åを付加ã—ãŸã‚‚ã®ã€‚ãŸã¨ãˆã°ï¼ŒShellchild="sh ketcindy.sh" ã§ï¼ŒFhead="fig" , 引数㌠"fig2tex" ã§ã‚ã‚Œã°
-\begin{verbatim}
-  #!/bin/sh
-  cd /Users/Hoge/Desktop/KeTCindy
-  sh ketcindy.sh fig fig2tex
-  exit 0
-\end{verbatim}
-ãŒæ›¸ã出ã•ã‚Œã‚‹ã€‚2行目ã®ãƒ‡ã‚£ãƒ¬ã‚¯ãƒˆãƒªï¼ˆãƒ•ã‚©ãƒ«ãƒ€ï¼‰åã¯ï¼ŒDirwork ã§æŒ‡å®šã—ãŸã‚‚ã®ã€‚\\
-ãŸã ã—,上記㮠fig 㯠fig.sci ã®ã“ã¨ã ãŒï¼Œfig.sci ã¯å‡ºåŠ›ã•ã‚Œãªã„ã®ã§ï¼Œåˆ¥é€” WritetoSci(2) ã§æ›¸ã出ã™å¿…è¦ãŒã‚る。\\
- \\
-
-\hypertarget{textformat}{}
-\item[関数] Textformat(数,æ¡æ•°)
-\item[機能] å°æ•°ç‚¹ä»¥ä¸‹ã®æ¡æ•°ã‚’指定ã—ã¦æ•°ã‚’文字列化ã™ã‚‹ã€‚
-\item[説明] Cindyscriptã®çµ„ã¿è¾¼ã¿é–¢æ•°ã«ã‚‚,format()ã¨ã„ã†åŒæ§˜ã®é–¢æ•°ãŒã‚ã‚‹ãŒï¼Œã“ã¡ã‚‰ã¯ï¼Œæ•°ã®ãƒªã‚¹ãƒˆã«ã‚‚対応ã™ã‚‹ã€‚\\
-
-例:円周率をå°æ•°ç‚¹ä»¥ä¸‹ï¼•ä½ã¾ã§ã§æ–‡å­—列化ã™ã‚‹ã€‚\\
- \\
-  \verb|Textformat(pi,5);|\\
- \\
-  戻り値ã¯ï¼Œ3.14159\\
- \\
-例:円周率ã¨ï¼Œãƒãƒ”ア数をリストã«ã—ã¦ï¼Œå…±ã«å°æ•°ç‚¹ä»¥ä¸‹ï¼•ä½ã¾ã§ã§æ–‡å­—列化ã—ãŸãƒªã‚¹ãƒˆã‚’è¿”ã™ã€‚\\
- \\
-  \verb|Textformat([pi,exp(1)],5);|\\
- \\
-  戻り値ã¯ï¼Œ[3.14159,2.71828] \\
-  \\
-
-\hypertarget{viewtex}{}
-\item[関数] Viewtex()
-\item[機能] \TeX ã®ã‚½ãƒ¼ã‚¹ãƒ•ã‚¡ã‚¤ãƒ«ã‚’書ã出ã™ã€‚引数ãªã—。
-\item[説明] グローãƒãƒ«å¤‰æ•°Fheadã§å®šç¾©ã—ãŸãƒ•ã‚¡ã‚¤ãƒ«åã« "main" を付加ã—ãŸ\TeX ã®ã‚½ãƒ¼ã‚¹ãƒ•ã‚¡ã‚¤ãƒ«ã¨ãƒãƒƒãƒãƒ•ã‚¡ã‚¤ãƒ«ï¼ˆMacã®å ´åˆã¯ã‚·ã‚§ãƒ«ãƒ•ã‚¡ã‚¤ãƒ«ï¼‰ã‚’作æˆã™ã‚‹ã€‚\\
-Fhead ã®ã»ã‹ï¼Œãƒ‡ã‚£ãƒ¬ã‚¯ãƒˆãƒªæŒ‡å®šãªã©ã®ãŸã‚,次ã®ã‚°ãƒ­ãƒ¼ãƒãƒ«å¤‰æ•°ã«å¿…è¦äº‹é …ãŒä»£å…¥ã•ã‚Œã¦ã„ã‚‹ã“ã¨ãŒæ¡ä»¶ã§ã‚る。\\
- \\
-  Dirwork=作業フォルダã®ãƒ‘ス\\
-  Shellparent=親プロセス (kc.sh / kc.bat )ã‚’ç½®ãディレクトリã®ãƒ‘ス\\
-  Shellchild=å­ãƒ—ロセスå\\
-  Libname=Scilabã®ãƒ©ã‚¤ãƒ–ラリ ketpicsciL5 ã¸ã®ãƒ‘ス\\
- \\
-ãŸã¨ãˆã°ï¼ŒFhead="fig" ã¨ã™ã‚‹ã¨\\
-・図を表示ã™ã‚‹ fig.sci ã‚’ Dirwork ã§æŒ‡å®šã—ãŸãƒ•ã‚©ãƒ«ãƒ€ã«ã‚’生æˆã™ã‚‹ã€‚(ã™ã§ã«ã‚ã‚‹å ´åˆã¯ä¸Šæ›¸ã)\\
-・Dirwork ã§æŒ‡å®šã—ãŸãƒ•ã‚©ãƒ«ãƒ€ã« figmain.tex を生æˆã™ã‚‹ã€‚(ã™ã§ã«ã‚ã‚‹å ´åˆã¯ä¸Šæ›¸ã)\\
- figmain.tex 㯠\TeX ã®ãƒ—リアンブル㨠\verb|begin{document}| を設定ã—ãŸã‚½ãƒ¼ã‚¹ãƒ•ã‚¡ã‚¤ãƒ«ã§ï¼Œä¸­ã«ã¯ \verb|input{"fig.tex"}| ãŒæ›¸ã‹ã‚Œã¦ãŠã‚Šï¼Œã“れをコンパイルã™ã‚Œã°ä½œæˆã—ãŸå›³ã‚’表示ã™ã‚‹ã“ã¨ãŒã§ãる。\\
-・親プロセスã®ç”Ÿæˆï¼ˆã™ã§ã«ã‚ã‚‹å ´åˆã¯ä¸Šæ›¸ã)\\
- ketcindy.sh (Mac) ketcindy.bat(Windows) ã‚’å­ãƒ—ロセスã¨ã—㦠figmain.tex 㨠fig.tex を引数ã¨ã—ã¦å®Ÿè¡Œã™ã‚‹ãƒ—ロセス kc.sh(Mac) kc.bat (Windows) を作業ディレクトリã«ç”Ÿæˆã™ã‚‹ã€‚ã“れを実行ã™ã‚‹ã¨å›³ã‚’表示ã™ã‚‹PDFファイルãŒä½œã‚‰ã‚Œã‚‹ã€‚\\
- 以上ã®æ‰‹ç¶šãã«ã‚ˆã‚Šï¼ŒViewtex() を実行ã™ã‚Œã°ï¼Œãƒ‡ã‚¹ã‚¯ãƒˆãƒƒãƒ—上ã«ç”Ÿæˆã•ã‚ŒãŸ kc.sh / kc.bat を使ã£ã¦ï¼Œfig.sci ã®ç”Ÿæˆã‹ã‚‰ï¼Œfig.tex ã®ä½œæˆï¼Œ\TeX ã®ã‚³ãƒ³ãƒ‘イルã¾ã§ã®ä¸€é€£ã®æ“作を自動実行ã—ã¦ï¼Œå›³ã‚’表示ã™ã‚‹ã“ã¨ãŒã§ãã‚‹ã“ã¨ã«ãªã‚‹ã€‚kc.sh / kc.bat ã®å®Ÿè¡Œã¯ï¼Œkc() ã§è¡Œã†ã“ã¨ãŒã§ãる。\\
- \\
-
- \hypertarget{workprocess}{}
-\item[関数] Workprocess()
-\item[機能] 作図ã®çµŒéŽã‚’å–å¾—ã™ã‚‹
-\item[説明] 作図ツールを用ã„ãŸä½œå›³ã®çµŒéŽã‚’å–å¾—ã™ã‚‹ã€‚\\
- \verb|println(Workproccess());|\\
- ã¨ã™ã‚‹ã¨ï¼Œã‚³ãƒ³ã‚½ãƒ¼ãƒ«ã«ä½œå›³æ‰‹é †ãŒè¡¨ç¤ºã•ã‚Œã‚‹ã€‚\\
-
-\end{description}
-
-\begin{flushright} \hyperlink{functionlist}{$\Rightarrow$関数一覧}\end{flushright}
-\newpage
-
-%===================================================
-\subsection{ãã®ä»–}
-\begin{description}
-
-\hypertarget{assign}{}
-\item[関数] Assign(文字列,文字,文字)
-\item[機能] 文字列ã®ä¸­ã®ã‚る文字を他ã®æ–‡å­—ã§ç½®ãæ›ãˆã‚‹
-\item[説明] 第1引数ã®æ–‡å­—列中ã®ç¬¬ï¼’引数ã®æ–‡å­—を,第3引数ã®æ–‡å­—ã§ç½®ãæ›ãˆã‚‹ã€‚\\
- 第3引数ãŒæ•°å€¤ã®å ´åˆï¼Œæ–‡å­—列ã«å¤‰æ›ã•ã‚Œã‚‹ã€‚\\
- 第2引数ã¨ï¼Œç¬¬ï¼“引数をリストã«ã—ã¦ï¼Œè¤‡æ•°ã®ç½®ãæ›ãˆã‚’ã™ã‚‹ã“ã¨ãŒã§ãる。\\
- \\
- 例:a*x ã‚’1.3*x ã¨ã—ãŸæ–‡å­—列を返ã™ã€‚次ã®ã„ãšã‚Œã‚‚åŒã˜çµæžœã«ãªã‚‹ã€‚
-\begin{verbatim}
-   Assign("x^2+a*x","a","1.3");
-   Assign("x^2+a*x","a",1.3);
-\end{verbatim}
- \\
- 例:直線 $y=bx-b^2$ ã®ä¿‚æ•°$b$を変化ã•ã›ã¦æã,包絡線をã†ã‹ã³ã‚ãŒã‚‰ã›ã‚‹ã€‚
-\begin{verbatim}
-    repeat(50,t,
-      cb=t/5-5;
-      Plotdata(text(t),Assign("b*x-b^2","b",cb),"x");
-    );
-\end{verbatim}
-  \\
-     \input{Fig/assign}\\
- \\
- 例:文字ã§è¡¨ã•ã‚ŒãŸ $x$ 㨠$y$ ã®ä¿‚æ•°ã‚’ã¾ã¨ã‚ã¦æ•°å€¤ã§ç½®ãæ›ãˆã‚‹ã€‚\\
-   \verb|Assign("a*x^2+b*x",["a",1,"b",2]);|\\
- \\
-\begin{flushright} \hyperlink{functionlist}{$\Rightarrow$関数一覧}\end{flushright}
-
-\hypertarget{bbdata}{}
-\item[関数] BBdata(ファイルå,option)
-\item[機能] 画åƒãƒ•ã‚¡ã‚¤ãƒ«ã®ã‚µã‚¤ã‚ºã‚’求ã‚ã‚‹
-\item[説明] TeX文書ã«ãŠã„ã¦ï¼Œinputgraphics コマンドã§ç”»åƒã‚’貼り込むã¨ãã®BBサイズを求ã‚る。\\
- TeX処ç†ç³»ã® extractbb を用ã„ã¦ç”»åƒãƒ•ã‚¡ã‚¤ãƒ«ã‹ã‚‰BBデータを作り,テキストファイルã¨ã—ã¦ä½œæ¥­ãƒ‡ã‚£ãƒ¬ã‚¯ãƒˆãƒªã«æ›¸ã出ã™ã€‚ã“れを読んã§ï¼Œã‚³ãƒ³ã‚½ãƒ¼ãƒ«ã« ingludegarphics ã®ã‚³ãƒžãƒ³ãƒ‰ã‚’書ã出ã™ã€‚\\
- optionã¯ï¼Œå¹…ã¾ãŸã¯é«˜ã•ã®æŒ‡å®šã€‚\\
- "w=40mm" 㧠width=40mm ãŒï¼Œ"h=40mm" 㧠height=40mm ãŒä»˜åŠ ã•ã‚Œã‚‹ã€‚\\
- \\
-例:pic.pdf ã®ã‚µã‚¤ã‚ºã‚’求ã‚る。\\
-  \verb|BBdata("pic.pdf")|\\
- を実行ã™ã‚‹ã¨ï¼Œã‚³ãƒ³ã‚½ãƒ¼ãƒ«ã« ingludegarphics ã®ã‚³ãƒžãƒ³ãƒ‰æ–‡\\
-   \verb|\includegraphics[bb=・・・・]{pic.pdf} |\\
- ãŒè¡¨ç¤ºã•ã‚Œã‚‹ã€‚ã“れをãã®ã¾ã¾ã‚³ãƒ”ーã™ã‚Œã°ã‚ˆã„。\\
- ãªãŠï¼Œbbã®å€¤ã¯æ•´æ•°å€¤ã§ã¯ãªã,高精細ã®å€¤ã‚’å°æ•°ç‚¹ä»¥ä¸‹2æ¡ã«å››æ¨äº”å…¥ã—ã¦ç¤ºã•ã‚Œã‚‹ã€‚\\
- 画åƒãƒ•ã‚¡ã‚¤ãƒ«ã¯ï¼ŒPDFã«é™ã‚‰ãšï¼ŒPNG,JPGãªã©ã§ã‚‚よã„。\\
- \\
-例:\verb|BBdata("fig.jpg",["h=40mm"]);|\\
-  ã§\\
-  \verb|\includegraphics[bb=0.00 0.00 578.16 592.56,height=40mm]{fig.jpg} |\\
-  ãŒè¡¨ç¤ºã•ã‚Œã‚‹ã€‚\\
- \\
-
-\hypertarget{changework}{}
-\item[関数] Changework(パスå)
-\item[機能] 作業ディレクトリを指定(変更)ã™ã‚‹
-\item[説明] 作業ディレクトリã¯ï¼ŒInitializationスロットã®KETlibページ㫠Dirwork= ã§æŒ‡å®šã•ã‚Œã¦ã„ã‚‹ãŒï¼Œã“れを変更ã™ã‚‹ã€‚Drawスロットã®ï¼ŒKetinit() ã®å‰ã«è¨˜è¿°ã™ã‚‹ã“ã¨ã«ã‚ˆã‚Šï¼ŒKetlibページã®è¨˜è¿°ã‚’変更ã—ãªãã¦ã™ã‚€ã€‚\\
- ã“ã‚Œã«ã‚ˆã‚Šï¼Œä½œæˆã—ãŸãƒ•ã‚¡ã‚¤ãƒ«ã‚’ä»–ã®äººã¨ã‚„ã‚Šå–ã‚Šã—ã‚„ã™ããªã‚‹ã€‚\\
-
-\hypertarget{com0th}{}
-\item[関数] Com0th(文字列)
-\item[機能] Scilabã®Openfileã®å‰ã«ç½®ãコマンド(文字列)を定義ã™ã‚‹ã€‚
-\item[説明] 例:\verb|Com0th("Setax('a')");|\\
- Openfileã®å‰ã®éƒ¨åˆ†ã®å…ˆé ­ã«æ›¸ã出ã™ã€‚ã“ã‚Œã«ã‚ˆã‚Šï¼Œ \ketcindy ã§ã‚µãƒãƒ¼ãƒˆã•ã‚Œã¦ã„ãªã„Scilab版\ketpic ã®ã‚³ãƒžãƒ³ãƒ‰ã‚’利用ã™ã‚‹ã“ã¨ãŒã§ãる。\\
- \\
-\hypertarget{com1st}{}
-\item[関数] Com1st(文字列)
-\item[機能] Scilabã®Openfileã®å‰ã«ç½®ãコマンド(文字列)を定義ã™ã‚‹ã€‚
-\item[説明] 例:\verb|Com1st("Setax('a')");|\\
- ã“ã‚Œã«ã‚ˆã‚Šï¼Œ \ketcindy ã§ã‚µãƒãƒ¼ãƒˆã•ã‚Œã¦ã„ãªã„Scilab版\ketpic ã®ã‚³ãƒžãƒ³ãƒ‰ã‚’利用ã™ã‚‹ã“ã¨ãŒã§ãる。
-\\
-\hypertarget{com2nd}{}
-\item[関数] Com2nd(文字列)
-\item[機能] Scilabã®Openfileã®ã‚ã¨ã«ç½®ãコマンド(文字列)を定義ã™ã‚‹ã€‚
-\\
-
-\hypertarget{com2ndpre}{}
-\item[関数] Com2ndpre(文字列)
-\item[機能] Scilabã®Openfileã®ã‚ã¨ã«ç½®ãコマンド(文字列)を定義ã™ã‚‹ã€‚
- Openfileã®ç›´å¾Œï¼ˆã‚°ãƒ«ãƒ¼ãƒ—ã®å…ˆé ­ã«ï¼‰æ›¸ã出ã™ã€‚\\
-
-\hypertarget{figpdf}{}
-\item[関数] Figpdf(option)
-\item[機能] 出力枠サイズã®PDFを作る。
-\item[説明] KeTCindyã§ã¯ï¼Œé€šå¸¸ï¼Œå‡ºåŠ›ã•ã‚ŒãŸ fig.tex ファイルを閲覧ã™ã‚‹PDFã‚’A4サイズã§ä½œæˆã™ã‚‹ã€‚ã“ã‚Œã«å¯¾ã—,Figpdf()を実行ã™ã‚‹ã¨ï¼Œå‡ºåŠ›ã‚µã‚¤ã‚ºã®PDFを作æˆã™ã‚‹ã€‚閲覧用ã ã‘ã§ã¯ãªãワープロãªã©ã«ã«è²¼ã‚Šè¾¼ã‚€ã¨ãã«ãã®ã¾ã¾ä½¿ç”¨ã§ãã‚‹ã®ã§ä¾¿åˆ©ã§ã‚る。ãŸã ã—,ãã®ãŸã‚ã®è¦ªå­ãƒ—ロセスを生æˆã—ã¦å®Ÿè¡Œã™ã‚‹ãŸã‚,次ã®æ‰‹ç¶šã(1)(2)ãŒå¿…è¦ã¨ãªã‚‹ã€‚\\
-(1) 変数 Texparent を設定ã™ã‚‹ã€‚\\
- ã“ã‚Œã¯ï¼Œå‡ºåŠ›ã™ã‚‹PDFã®ãƒ•ã‚¡ã‚¤ãƒ«åã®æŒ‡å®šã§ã‚る。ãŸã¨ãˆã°ï¼Œ
-\begin{verbatim}
-  Fhead="fig";
-  Texparent="pic";
-\end{verbatim}
- ã¨ã™ã‚‹ã¨ï¼Œfig.tex を表示ã—㟠pic.pdf ãŒä½œæˆã•ã‚Œã‚‹ã€‚pic.pdf ãŒç›®çš„ã®PDF。\\
- Texparent 㯠Fhead ã¨ã¯ç•°ãªã‚‹ã‚‚ã®ã«ã™ã‚‹ã€‚\\
-(2) 出力ã¯ï¼Œã€ŒParentã€ã€ŒExekcã€ã®é †ã«ãƒœã‚¿ãƒ³ã‚’押ã™ã€‚「Texviewã€ã¯æŠ¼ã•ãªã„。\\
- ãªãŠï¼Œã“れらã®ãƒœã‚¿ãƒ³ã‚’使ã‚ãšã«ã‚¹ã‚¯ãƒªãƒ—トã§å®Ÿè¡Œã™ã‚‹ã‹ï¼Œã‚ªãƒªã‚¸ãƒŠãƒ«ã®ãƒœã‚¿ãƒ³ã‚’作る場åˆã¯ï¼Œæ¬¡ã®ã‚³ãƒžãƒ³ãƒ‰ã‚’実行ã™ã‚‹ã€‚
-\begin{verbatim}
-   Writetosci(2);
-   Makeshell();
-   kc();
-\end{verbatim}
- Writetosci(2); 㨠Makeshell(); 㧠fig.sce ã¨pic.tex ãŒä½œæˆã•ã‚Œã‚‹ã€‚\\
- Windowsã®å ´åˆã¯ Makebat(); ã¨ã™ã‚‹ã€‚\\ 
- \verb|kc();| ã«ã‚ˆã‚Š kc.sh ãŒå®Ÿè¡Œã•ã‚Œï¼ŒScilab㧠fig.sceã‹ã‚‰fig.tex を作るã¨ã“ã‚ã‹ã‚‰PDF作æˆã¾ã§ã®ä¸€é€£ã®ä½œæ¥­ãŒè¡Œã‚れる。\\
- \\
-optionã¯ï¼Œãƒžãƒ¼ã‚¸ãƒ³ï¼ˆä½™ç™½ï¼‰ã¨å¹³è¡Œç§»å‹•é‡ã€‚指定ã—ãªã„å ´åˆã¯ãƒ‡ãƒ•ã‚©ãƒ«ãƒˆå€¤ã€‚\\
-引数ãŒï¼‘ã¤ã®å®Ÿæ•°ã®å ´åˆã¯ï¼Œå·¦å³ä¸Šä¸‹åŒä¸€ã®æŒ‡å®šã—ãŸä½™ç™½ã¨ãªã‚‹ã€‚\\
-引数ãŒï¼”ã¤ã®æ•°ã‚’コンマã§åŒºåˆ‡ã£ãŸæ–‡å­—列をè¦ç´ ã¨ã™ã‚‹ãƒªã‚¹ãƒˆã®å ´åˆï¼Œå·¦å³ä¸Šä¸‹ã®ä½™ç™½æŒ‡å®šã¨ãªã‚‹ã€‚\\
-引数ãŒï¼’ã¤ã®æ•°ã‚’コンマã§åŒºåˆ‡ã£ãŸæ–‡å­—列をè¦ç´ ã¨ã™ã‚‹ãƒªã‚¹ãƒˆã®å ´åˆï¼Œå³ï¼Œä¸‹æ–¹å‘ã¸ã®å¹³è¡Œç§»å‹•æŒ‡å®šã¨ãªã‚‹ã€‚\\
-余白指定ã¨å¹³è¡Œç§»å‹•æŒ‡å®šã¯åŒæ™‚ã«è¡Œã†ã“ã¨ãŒã§ãる。\\
-例: \verb|Figpdf(10);|        上下左å³10mmã®ä½™ç™½\\
-  \verb|Figpdf(["5,5,10,10"]);|    左å³ã«5mm,上下10mmã®ä½™ç™½\\
-  \verb|Figpdf(["5,10"]);|      å³ã«5mm,下ã«10mm平行移動ã—ã¦è¡¨ç¤º\\
-  \verb|Figpdf(["5,8,10,10","5,-5"]);| 左5mm,å³8mm,上下10mmã®ä½™ç™½ï¼Œ\\
-                  å³ã«5mm,上ã«5mm平行移動ã—ã¦è¡¨ç¤º\\
-ãªãŠï¼Œåº§æ¨™è»¸ã‚’表示ã™ã‚‹å ´åˆï¼Œå³å´ã¯æœ€ä½Ž3mmã®ä½™ç™½ã‚’設定ã—ãªã„ã¨è»¸ã®æ–‡å­—ãŒå…¥ã‚‰ãªã„。\\
-
-\hypertarget{texcom}{}
-\item[関数] Texcom(\TeX コード)
-\item[機能] \TeX ã®ã‚³ãƒ¼ãƒ‰ã‚’書ã出ã™
-\item[説明] 任æ„ã®\TeX ã®ã‚³ãƒ¼ãƒ‰ã‚’書ã出ã™\\
- Scilabã®TeXcomã«ãã®ã¾ã¾å¼•ã渡ã—ã¦ã„ã‚‹ã ã‘。\\
-
-\hypertarget{windispg}{}
-\item[関数] Windispg() ã¾ãŸã¯ã€€Windisp(データã®ãƒªã‚¹ãƒˆï¼‰
-\item[機能] 定義ã•ã‚Œã¦ã„るプロットデータをCinderellaç”»é¢ã«é»’ç·šã§æã
-\item[説明] Windispg()ã¯ï¼Œã‚¹ã‚¯ãƒªãƒ—トã®æœ€å¾Œã«ç½®ãã“ã¨ã§ï¼Œå‡ºåŠ›ã•ã‚Œã‚‹éƒ¨åˆ†ã ã‘ãŒé»’ã§æã‹ã‚Œã‚‹ã®ã§ï¼Œå‡ºåŠ›å›³ã‚’確èªã™ã‚‹ã“ã¨ãŒã§ãる。ãŸã ã—,Letter()関数ã§è¡¨ç¤ºã—ãŸç‚¹ã®å称ãªã©ãŒCinderellaã§ä½œå›³ã—ãŸãƒ©ãƒ™ãƒ«ã¨é‡ãªã£ã¦è¡¨ç¤ºã•ã‚Œã¦è¦‹ã«ãããªã‚‹ã“ã¨ã‚‚ã‚る。ã“ã®é–¢æ•°ã‚’実行ã—ãªãã¦ã‚‚出力ã«ã¯å½±éŸ¿ã—ãªã„。\\
- Windisp(データã®ãƒªã‚¹ãƒˆï¼‰ã¯ï¼ŒScilabã‹ã‚‰ \ketcindy 用ã«å‡ºåŠ›ã•ã‚ŒãŸãƒ•ã‚¡ã‚¤ãƒ«ã‚’ ReadOutData()関数ã§èª­ã¿è¾¼ã‚“ã ã¨ãã«ï¼Œå¿…è¦ãªãƒ—ロットデータ列ã ã‘を表示ã™ã‚‹ã®ã«ç”¨ã„る。\\
- ReadOutData("filename.txt") ã§ãƒ‡ãƒ¼ã‚¿ã‚’読ã¿è¾¼ã‚€ã¨ï¼Œãã®ãƒ‡ãƒ¼ã‚¿ã«å«ã¾ã‚Œã‚‹ãƒ—ロットデータ列ãŒï¼Œã‚³ãƒ³ã‚½ãƒ¼ãƒ«ã«\\
-Outdata of filename.txt : [Gfn,Gdfn,Gh] \\
-ã®ã‚ˆã†ã«è¡¨ç¤ºã•ã‚Œã‚‹ã€‚\\
-ã“ã®ã†ã¡ï¼ŒGfnã¨Ghã ã‘を表示ã™ã‚‹ã®ã§ã‚ã‚Œã°\\
-Windispg([Gfn,Gh]);\\
- ã¨ã™ã‚‹ã€‚引数ãªã—ã§\\
-Windispg();\\
-ã¨ã™ã‚Œã°ã™ã¹ã¦ã®ãƒ—ロットデータ列ãŒè¡¨ç¤ºã•ã‚Œã‚‹ã€‚\\
-ãªãŠï¼Œã„ãšã‚Œã®å ´åˆã‚‚,作図ã—ãŸãƒ—ロットデータもåŒæ™‚ã«è¡¨ç¤ºã•ã‚Œã‚‹ã€‚\\
- 作図ã—ãŸå›³ã‚’å…¨ã¦ã§ã¯ãªãé¸æŠžã—ã¦è¡¨ç¤ºã™ã‚‹å ´åˆã¯ï¼Œãれらã®ãƒ—ロットデータåをリストã«ã—ã¦å¼•æ•°ã¨ã™ã‚‹ã€‚\\
- ãŸã¨ãˆã°ï¼Œsg1, gr1, crABãŒå®šç¾©ã•ã‚Œã¦ã„ã‚‹ã¨ã,\\
-    \verb|Windispg(["sg1","gr1"]);|
-ã¨ã™ã‚Œã°ï¼Œsg1,gr1ã®ã¿ãŒè¡¨ç¤ºã•ã‚Œã‚‹ã€‚
- 次ã®ï¼“ã¤ã®é–¢æ•°ã¯ï¼Œãƒ—ロットデータã®æ“作ã§ï¼Œå˜ç‹¬ã§ç”¨ã„ã‚‹ã“ã¨ã‚‚ã§ãã‚‹ãŒï¼Œæ画関数,プロットデータã®æ“作関数ã®ã‚ªãƒ—ションã«çµ„ã¿è¾¼ã¾ã‚Œã¦ã„ã‚‹ã®ã§ï¼Œç‰¹æ®Šãªå ´åˆã‚’除ã„ã¦ã¯ã»ã¨ã‚“ã©åˆ©ç”¨ã—ãªã„ã¨æ€ã‚れる。\\
-
-\hypertarget{drwline}{}
-\item[関数] Drwline(プロットデータ)
-\item[機能] プロットデータ(文字列)を実線ã§æã
-\item[説明] Scilabã®Drwlineを書ã出ã™\\
- 例:\verb|Drwline("sABCA,1");|\\
-\\
-
-\hypertarget{dashline}{}
-\item[関数] Dashline(プロットデータ)
-\item[機能] プロットデータ(文字列)を破線ã§æã
-\item[説明] Scilabã®Dashlineを書ã出ã™\\
- 例:\verb|Dashline("sABCA");|\\
-\\
-\hypertarget{dottedline}{}
-\item[関数] Dottedline(プロットデータ)
-\item[機能] プロットデータ(文字列)を点線ã§æã
-\item[説明] Scilabã®Dottedlineを書ã出ã™\\
- 例:\verb|Dottedline("sABCA");|\\
-
-\hypertarget{helplist}{}
-\item[関数] helplist()
-\item[機能] ヘルプデータを作æˆã™ã‚‹
-\item[説明] 関数ã®ç°¡å˜ãªèª¬æ˜Žãƒ‡ãƒ¼ã‚¿ã‚’作æˆã™ã‚‹ã€‚\\
- ã“ã®é–¢æ•°ã¯ï¼ŒInitialization スロットã«æ›¸ã。\\
- \\
-
-\begin{flushright} \hyperlink{functionlist}{$\Rightarrow$関数一覧}\end{flushright}
-\hypertarget{help}{}
-\item[関数] Help(文字列)
-\item[機能] 関数ã®ä½¿ç”¨ä¾‹ã‚’å–å¾—ã™ã‚‹
-\item[説明] 文字列ã§å§‹ã¾ã‚‹é–¢æ•°ã®ä½¿ç”¨ä¾‹ã‚’コンソールã«è¡¨ç¤ºã™ã‚‹ã€‚\\
-  \verb|println(Help("C"));|\\
- ã®ã‚ˆã†ã«ã™ã‚‹ã¨ï¼Œã‚³ãƒ³ã‚½ãƒ¼ãƒ«ã«ï¼Œæ¬¡ã®ã‚ˆã†ã«ã€ŒCã€ã§å§‹ã¾ã‚‹é–¢æ•°ã®ä½¿ç”¨ä¾‹ãŒè¡¨ç¤ºã•ã‚Œã‚‹ã€‚
-\begin{verbatim}
-  CRspline("1",[A,B,C,A]);
-  ChangeTablestyle(["r0c0c3"],["da"]);\
-  Changestyle("sgAB",["da"]);
-  Changstyle("geoseg3","ax3d"],["notex"]);\
-  Circledata([A,B,C]);
-  Circledata([A,B],["Rng=[0,pi/2]"]);\
-  Com2nd("\color[cmyk]{0,0,0,0.5}");\
-  Crossprod(vec1,vec2); \\
-\end{verbatim}
-
- ã•ã‚‰ã«ï¼Œ\\
-  \verb|println(Help("Ci"));| ã¨ã™ã‚‹ã¨
-\begin{verbatim}
-  Circledata([A,B,C]);
-  Circledata([A,B],["Rng=[0,pi/2]"]);
-\end{verbatim}
- ã ã‘ãŒè¡¨ç¤ºã•ã‚Œã‚‹ã€‚\\
-  \verb|println(Help("*"));|
-  ã¨ã™ã‚‹ã¨ï¼Œã™ã¹ã¦ã®é–¢æ•°ã®ä½¿ç”¨ä¾‹ãŒè¡¨ç¤ºã•ã‚Œã‚‹ã€‚\\
- 引数ãŒãªã„å ´åˆã¯ï¼Œ\verb|Helplist(Dirlib,["+","+3d"],"helpJâ€);| ã¨ã¿ãªã•ã‚Œã‚‹ã€‚+ã¯ketcindylibã®æ„味。\\
-\\
-
-\hypertarget{helpkey}{}
-\item[関数] Helpkey(文字列)
-\item[機能] 関数ã®ä½¿ç”¨ä¾‹ã‚’キーワードã§æ¤œç´¢ã™ã‚‹
-\item[説明] 文字列ã«ä¸ŽãˆãŸã‚­ãƒ¼ãƒ¯ãƒ¼ãƒ‰ã§é–¢æ•°ã®ä½¿ç”¨ä¾‹ã‚’検索ã—,コンソールã«è¡¨ç¤ºã™ã‚‹ã€‚\\
- 例:\verb|Helpkey("ç›´ç·š");| ã¨ã™ã‚‹ã¨ï¼Œã‚³ãƒ³ã‚½ãƒ¼ãƒ«ã«æ¬¡ã®ã‚ˆã†ã«è¡¨ç¤ºã•ã‚Œã‚‹ã€‚
-\begin{verbatim}
-   IntersectsgpL("",[p1,p2],[p3,p4,p5],"draw");
-   IntersectsgpL("R","P-Q","A-B-C");
-   IntersectsgpL("R","P-Q","A-B-C","put");
-    空間ã®ç›´ç·šã¨å¹³é¢ã®äº¤ç‚¹
-   Lineplot("1",[[2,1],[3,3]]);
-   Lineplot([A,B]);
-    直線データを作æˆ
-   PtonLine("C",pA,pB);
-    直線上ã«ç‚¹ã‚’ã¨ã‚‹
-\end{verbatim}
- \\
-\hypertarget{indexall}{}
-\item[関数] Indexall(str1,str2);
-\item[機能] 文字列 str1 ã‹ã‚‰ str2 を検索ã—ãã®ä½ç½®ã‚’ã™ã¹ã¦è¿”ã™
-\item[説明] Cindyscriptã® indexof() ã®æ‹¡å¼µç‰ˆã€‚indexof() ãŒæœ€åˆã«è¦‹ã¤ã‹ã£ãŸä½ç½®ã‚’è¿”ã™ã®ã«å¯¾ã—,Indexall()ã¯å­˜åœ¨ã™ã‚‹ä½ç½®ã‚’ã™ã¹ã¦ãƒªã‚¹ãƒˆã«ã—ã¦è¿”ã™ã€‚\\
- \\
-例:str="abcabcabc" ã‹ã‚‰ "b"を検索ã™ã‚‹ã€‚\\
-  \verb|indexof(str,"b")| ã§ã¯ï¼Œ2 ãŒè¿”る。\\
-  \verb|Indexall(str,"b")| ã§ã¯ï¼Œ[2,5,8]ãŒè¿”る。\\
- \\
-
-\hypertarget{ketcindylogo}{}
-\item[関数] Ketcindylogo()
-\item[機能] \ketcindy ã®ãƒ­ã‚´ã‚’書ã出ã™
-\item[説明] \ketcindy ã®ãƒ­ã‚´ã‚’表示ã™ã‚‹\TeX ã®ã‚³ãƒžãƒ³ãƒ‰è¡Œã‚’書ã出ã™ã€‚\\
- 内容ã¯\\
-\verb|\|def\verb|\|ketcindy\{\{K\verb|\|kern-.20em \verb|\|lower.5ex\verb|\|hbox\{E\}\verb|\|kern-.125em\{TCindy\}\}\}"
- \\
-\hypertarget{op}{}
-\item[関数] Op(n,list or str)
-\item[機能] リストã¾ãŸã¯æ–‡å­—列ã‹ã‚‰è¦ç´ ã‚’抜ã出ã™
-\item[説明] 第2引数ã®ãƒªã‚¹ãƒˆã¾ãŸã¯æ–‡å­—列ã®n番目ã®è¦ç´ ï¼ˆæ–‡å­—)を返ã™ã€‚\\
-Cindyscript㮠アンダーãƒãƒ¼ã®æ¼”ç®—å­ (list\_n , str\_n) ã¨åŒæ§˜ã€‚Silabã¨ã®æ•´åˆæ€§ã®ãŸã‚追加\\
- \\
-\begin{flushright} \hyperlink{functionlist}{$\Rightarrow$関数一覧}\end{flushright}
-\newpage
-
-\end{description}
-\newpage
-
-%第11節 ä»–ã®æ•°å¼å‡¦ç†ã‚½ãƒ•ãƒˆã¨ã®é€£æºã€€=============================
-\section{ä»–ã®æ•°å¼å‡¦ç†ã‚½ãƒ•ãƒˆãªã©ã¨ã®é€£æº}
-\subsection{Rã¨ã®é€£æº}
-Rã¯ä¸»ã«çµ±è¨ˆè§£æžã®ãŸã‚ã®ã‚½ãƒ•ãƒˆã‚¦ã‚§ã‚¢ã§ï¼Œã€€binorm(二項分布),pois(ãƒã‚¢ã‚½ãƒ³ï¼‰ï¼Œunif(一様分布),chisq(カイ2乗),f(F分布),t(t分布)ãªã©ï¼Œå¤šãã®ç¢ºçŽ‡åˆ†å¸ƒã‚’サãƒãƒ¼ãƒˆã—ã¦ã„る。\\
-æ­£è¦åˆ†å¸ƒï¼ˆnormal distribution)ã§ã¯\\
- dnorm 確率密度関数\\
- pnorm 分布関数\\
- qnorm 分布関数ã®é€†é–¢æ•°\\
- rnorm 乱数発生\\
-ã¨ã„ã†ã‚ˆã†ã«ï¼Œåˆ†å¸ƒåã®é ­ã«d, p, q, r ã‚’ã¤ã‘ã‚‹ã¨ä¸Šè¨˜ï¼”ã¤ã®é–¢æ•°ãŒå¾—られる。\\
- å„分布ã«ã¯ï¼Œè‡ªç”±åº¦ãªã©ã®å¼•æ•°ãŒã‚り,ãŸã¨ãˆã°ï¼Œå¹³å‡m, 標準åå·®sã®æ­£è¦åˆ†å¸ƒï¼ˆã®å¯†åº¦é–¢æ•°ï¼‰ã¯ã€€ã€€dnorm(x, m ,s ) ã¨ãªã‚‹ã€‚\\
- \\
- KeTCindyã§ã¯ï¼Œkc.bat/shã«ã‚ˆã£ã¦ã‚³ãƒžãƒ³ãƒ‰ã‚’Rã«æ¸¡ã—,çµæžœã‚’テキストファイルã§å—ã‘å–る。ã“ã®ã¨ã,Rã¨ã®ã‚„ã‚Šã¨ã‚Šã§ï¼Œæ¬¡ã®ã‚ˆã†ãªãƒ•ã‚¡ã‚¤ãƒ«ãŒä½œæ¥­ãƒ‡ã‚£ãƒ¬ã‚¯ãƒˆãƒªã«ä½œæˆã•ã‚Œã‚‹ã€‚\\
-æ‹¡å¼µå­ r :r用ã®ãƒ•ã‚¡ã‚¤ãƒ«\\
-æ‹¡å¼µå­ datï¼Œæ‹¡å¼µå­ txt:データファイル\\
-ã“ã®ãƒ‡ãƒ¼ã‚¿ã®ã‚„ã‚Šå–ã‚Šã«é–¢ã™ã‚‹æ¬¡ã®ã‚ªãƒ—ションãŒã‚る。\\
- オプションãªã—ã¾ãŸã¯ï¼Œâ€â€ ã®ã¨ã\\
-  i) データファイルãŒãªã‘ã‚Œã°ï¼Œæ–°ã—ã作る\\
-  ii) データファイルãŒæ—¢ã«ã‚ã‚Œã°ãれを読ã¿è¾¼ã‚€\\
- "m" ã®ã¨ã,強制的ã«ãƒ‡ãƒ¼ã‚¿ãƒ•ã‚¡ã‚¤ãƒ«ã‚’作り直ã™ã€‚\\
- "r" ã®ã¨ã,ã™ã§ã«ã‚るデータファイルを読ã¿è¾¼ã‚€ã€‚\\
- ã“ã®ã¨ã,ファイルã®èª­ã¿æ›¸ãã§ä¸å…·åˆãŒã‚ã‚‹ã¨ï¼Œæ•°ç§’ã®å¾Œã€Œ==$>$ file.txt not generated (5 s ) ã€ã®ã‚ˆã†ãªã‚¨ãƒ©ãƒ¼ãƒ¡ãƒƒã‚»ãƒ¼ã‚¸ãŒã‚³ãƒ³ã‚½ãƒ¼ãƒ«ã«è¡¨ç¤ºã•ã‚Œã‚‹ã€‚ã“ã®ã‚ˆã†ãªå ´åˆã¯ä½œæ¥­ãƒ‡ã‚£ãƒ¬ã‚¯ãƒˆãƒªã®è¨­å®šãªã©ã‚’確èªã—ã¦ã„ãŸã ããŸã„。ã“ã®å¾…ã¡æ™‚é–“ã«ã¤ã„ã¦ã¯ï¼ŒWaitオプションã§è¨­å®šã™ã‚‹ã“ã¨ã‚‚ã§ãる。\\
- \\
-
-\begin{description}
-\hypertarget{boxplot}{}
-\item[関数] Boxplot(åå‰,データ,åž‚ç›´ä½ç½®,高ã•,option)
-\item[機能] 箱ã²ã’図をæã
-\item[説明] データã¯ï¼Œç›´æŽ¥çš„ã«å¤‰æ•°ã§æ¸¡ã™å ´åˆã¨ãƒ•ã‚¡ã‚¤ãƒ«ã‹ã‚‰èª­ã¿è¾¼ã‚€å ´åˆãŒã‚る。\\
-例:乱数ã§ä½œæˆã—ãŸï¼•æœªæº€ã®å®Ÿæ•°ã®ãƒ‡ãƒ¼ã‚¿ã‚’ç®±ã²ã’図ã«ã™ã‚‹ã€‚\\
-\begin{verbatim}
-  dt1=apply(1..100,5*random());
-  Boxplot("1",dt1,1,1/2);
-\end{verbatim}
- \\
-例:外部ファイルã¨ã—ã¦ç”¨æ„ã—ãŸãƒ‡ãƒ¼ã‚¿ã‚’読ã¿è¾¼ã‚“ã§ç®±ã²ã’図ã«ã™ã‚‹ã€‚データファイルã¯csvå½¢å¼ã¨ã™ã‚‹ã€‚\\
-\begin{verbatim}
-  Boxplot("2","datafile.csv",3,1/2);
-  Boxplot("1",dt1,1,1/2);
-\end{verbatim}
- \\
- 複数列ã‹ã‚‰æˆã‚‹csvファイルを読ã¿è¾¼ã‚€ã«ã¯ï¼ŒReadcsvを使ã†ã€‚読ã¿è¾¼ã‚“ã ãƒ•ã‚¡ã‚¤ãƒ«ã¯ï¼ŒReadcsv()ã§æŒ‡å®šã—ãŸåå‰ã®ãƒªã‚¹ãƒˆã«å…¥ã‚‹ã€‚(頭部ã¯rc)\\
- データã®å€¤ã‚’ç”»é¢ã«å…¥ã‚‹ã‚ˆã†ã«èª¿ç¯€ã™ã‚‹ã«ã¯ï¼Œæ¬¡ã®ã‚ˆã†ã«ãƒªã‚¹ãƒˆã®è¨ˆç®—を利用ã™ã‚Œã°ã‚ˆã„。\\
-  ã¾ãŸï¼ŒFramedata2(),Rulerscale() を併用ã™ã‚‹ã“ã¨ã§ç›®ç››ã‚’入れるã“ã¨ãŒã§ãる。Framedata2() ã®ãŸã‚ã«ï¼Œè¡¨ç¤ºé ˜åŸŸã®å¯¾è§’点A,Bã‚’Cinderellaã®ä½œå›³ãƒ„ールã§ä½œå›³ã—ã¦ãŠã。\\
-\begin{verbatim}
-  Readcsv("1","datafile.csv");
-  dt1=apply(rc1,#_1);
-  dt2=apply(rc1,#_2);
-  Boxplot("1",dt1/20,1,1/2);
-  Boxplot("2",dt2/20,3,1/2);
-  Framedata2("1",[A,B]);
-  Rulerscale(A,["r",0,6,1],["f",1,"\mbox{dt1}",3,"\mbox{dt2}"]);
-\end{verbatim}
- \\
-     \input{Fig/boxplot}\\
-
-\begin{flushright} \hyperlink{functionlist}{$\Rightarrow$関数一覧}\end{flushright}
-
-\hypertarget{calcbyr}{}
-\item[関数] CalcbyR(変数å,コマンド列,option)
-\item[機能] Rã®ã‚³ãƒžãƒ³ãƒ‰ã‚’実行ã—ã¦çµæžœã‚’è¿”ã™
-\item[説明] ãƒãƒƒãƒãƒ•ã‚¡ã‚¤ãƒ« kc.bat / シェルファイル kc.sh を利用ã—ã¦Rã¨ãƒ‡ãƒ¼ã‚¿ã‚’ã‚„ã‚Šå–ã‚Šã—,計算çµæžœã‚’å–å¾—ã™ã‚‹ã€‚\\
- \\
-例:Rを用ã„ã¦æ¨™æº–æ­£è¦åˆ†å¸ƒã‹ã‚‰10個ã®ä¹±æ•°ã‚’発生ã—,平å‡å€¤ã¨æ¨™æº–å差を求ã‚ã¦ã‚³ãƒ³ã‚½ãƒ¼ãƒ«ã«è¡¨ç¤ºã™ã‚‹ã€‚
-\begin{verbatim}
-  cmdL=[ "=rnorm",[10] ];
-  CalcbyR("dt",cmdL);
-  nx=length(dt);
-  mx=sum(dt)/nx;
-  sx=sqrt(dt*dt/nx-mx^2);
-  println("データ:"+dt);
-  println("å¹³å‡ï¼š"+format(mx,4)+"  標準å差:"+format(sx,4));
-\end{verbatim}
-1行目ã®ã€€cmdL=[ "=rnorm",[10] ] ã§ï¼Œæ¨™æº–æ­£è¦åˆ†å¸ƒã‹ã‚‰10個ã®ä¹±æ•°ã‚’発生ã™ã‚‹ã‚³ãƒžãƒ³ãƒ‰åˆ—を定義。\\
-2行目ã§ï¼ŒRã§è¨ˆç®—ã—ãŸçµæžœãŒãƒªã‚¹ãƒˆ dt ã«å…¥ã‚‹ã€‚\\
- \\
-例:Rを用ã„ã¦N(50,$5^2$)ã‹ã‚‰10個ã®ä¹±æ•°ã‚’発生ã—,平å‡ã¨ä¸å分散もRã§è¨ˆç®—ã—ã¦ãã®çµæžœã‚’コンソールã«è¡¨ç¤ºã™ã‚‹ã€‚
-\begin{verbatim}
-  cmdL=[
-    "tmp1=rnorm",[10,50,5],
-    "tmp2=mean",["tmp1"],
-    "tmp3=var",["tmp1"],
-    "=c(tmp1,tmp2,tmp3)",[]
-  ];
-  CalcbyR("rd",cmdL);
-  dt=rd_(1..(length(rd)-2));
-  mx=rd_(-2);
-  vx=rd_(-1);
-  println("データ:"+dt);
-  println("å¹³å‡ï¼š"+format(mx,4)+"  ä¸å分散:"+format(vx,4));
-\end{verbatim}
- CalcbyR()ã«ã‚ˆã£ã¦ï¼Œãƒ‡ãƒ¼ã‚¿ã¨å¹³å‡ï¼Œä¸å分散ã‹ã‚‰ãªã‚‹ãƒªã‚¹ãƒˆãŒä½œæˆã•ã‚Œã‚‹ã®ã§ï¼Œmxã«å¹³å‡ï¼Œvxã«ä¸å分散を代入ã—ã¦ã„る。\verb|rd_(-1)| ã¯ï¼Œãƒªã‚¹ãƒˆ rd ã®æœ«å°¾ã®è¦ç´ ã€‚\\
- \\
-例:Rã§ãƒã‚¢ã‚½ãƒ³åˆ†å¸ƒã‹ã‚‰200個ã®ä¹±æ•°ã‚’ã¨ã‚Šï¼Œæ¨™æœ¬å¹³å‡ã®åˆ†å¸ƒã®æ§˜å­ï¼åˆ†æ•£ãŒå°ã•ããªã£ã¦ï¼Œæ­£è¦åˆ†å¸ƒã«è¿‘ã¥ã„ã¦ã„る様å­ï¼ã‚’ヒストグラムã§è¦‹ã‚‹ã€‚
-\begin{verbatim}
-  cmdL=[
-   "tmp1=rpois",[200,5],
-   "tmp2=mean",["tmp1"],
-   "tmp3=var",["tmp1"],
-    "=c(tmp2,tmp3,tmp1)",[]
-  ];
-  CalcbyR("rd",cmdL);
-  dt=rd_(3..length(rd));
-  nn=length(dt);
-  mx=rd_1;
-  vx=rd_2*(nn-1)/nn;
-  sx=sqrt(vx);
-  println(dt);
-  println(["m="+format(mx,4),"v="+format(vx,4)]);
-  Setscaling(1/5);
-  Histplot("1",dt,["Breaks=seq(0,14,1)","dr,0.5"]);
-\end{verbatim}
- \\
-     \input{Fig/poison01}\\
- \\
-例:ãƒã‚¢ã‚½ãƒ³åˆ†å¸ƒã§ä¹±æ•°ã‚’2000個発生ã•ã›ï¼Œ10個ãšã¤ã®å¹³å‡ã‚’ï¼²ã§è¨ˆç®—ã—,
-\begin{verbatim}
-  cmdL=[
-   "tmp1=rpois",[2000,5],
-   "tmp2=c()",[],
-   "for(k in 1:200){",[],
-   " tmp=tmp1[(10*(k-1)+1):(10*k)]",[],
-   " tmp2=c(tmp2,mean(tmp))",[],
-   "}",[],
-   "=tmp2",[]
-  ];
-  CalcbyR("rd2",cmdL);
-  Setscaling(1/10);
-  Histplot("2",rd2);
-\end{verbatim}
-
-\begin{flushright} \hyperlink{functionlist}{$\Rightarrow$関数一覧}\end{flushright}
-\hypertarget{histplot}{}
-\item[関数] Histplot(name,data,option)
-\item[機能] Rを利用ã—ã¦ãƒ’ストグラムをæã
-\item[説明] dataã¯ãƒªã‚¹ãƒˆã«ã—ã¦ä½œæˆã™ã‚‹ã‹ï¼Œå¤–部ファイルã‹ã‚‰Readcsv()ã§èª­ã¿è¾¼ã‚€ã€‚\\
-階級範囲(ブレークãƒã‚¤ãƒ³ãƒˆï¼‰ã¯ï¼Œé€šå¸¸ã‚¹ã‚¿ãƒ¼ã‚¸ã‚§ã‚¹ã®å…¬å¼ã«ã‚ˆã‚‹ãŒï¼Œã‚ªãƒ—ションã§ï¼Œ\\
-   "breaks=[0,10,20,30,40,50,60,70,80,90,100]"\\
-ãªã©ã¨æŒ‡å®šã™ã‚‹ã“ã¨ã‚‚ã§ãる。\\
- ã“ã®ä»–ã®ã‚ªãƒ—ションã¯\\
-  "Den=yes/no":密度ã®æŒ‡å®šï¼ˆåˆæœŸå€¤ã¯ no)\\
-  "Rel=yes/no":相対度数ã«ã™ã‚‹/ã—ãªã„(åˆæœŸå€¤ã¯ no)\\
- \\
-例:csvファイル(datafile.csv)を読ã¿è¾¼ã¿ï¼Œãƒ’ストグラムを作る。Framedata2() 㨠Rulerscale()を併用ã—ã¦ï¼Œç›®ç››ä»˜ãã®æž ã®ä¸­ã«è¡¨ç¤ºã™ã‚‹ã€‚表示枠ã®å¯¾è§’点A,Bã¯Cinderellaã®ä½œå›³ãƒ„ールã§ä½œå›³ã—ã¦ãŠã。
-\begin{verbatim}
-  Addax(0);
-  Setscaling(5);
-  Setunitlen("0.6mm");
-  Readcsv("1","datafile.csv",[""]);
-  Histplot("1",dt1,[""]);
-  Framedata2("1",[A,B]);
-  Rulerscale(A,["r",0,100,10],["r",0,15,5]);
-\end{verbatim}
-  \input{Fig/histgram}\\
-
-2行目ã¨ï¼“行目ã¯ï¼Œãƒ‡ãƒ¼ã‚¿ã«åˆã‚ã›ã¦ç¸¦æ–¹å‘を5å€ã«ã—,TeXã®å˜ä½é•·ã‚’0.6mmã«ã—ã¦ã„る。\\
-Den,Rel オプションをyes ã«ã—ãŸã¨ãã¯ï¼ŒSetscaling(100)ãら ã„ã«ã™ã‚‹ã®ãŒã‚ˆã„。\\
-csvファイルãŒè¤‡æ•°ã®ãƒ‡ãƒ¼ã‚¿ã‹ã‚‰ãªã‚‹å ´åˆã¯ï¼Œ\\
-  \verb|dt1=apply(rc1,#_1);|
-ã¨ã—ã¦ï¼Œãƒªã‚¹ãƒˆã®ç¬¬ï¼‘è¦ç´ ã‚’å–å¾—ã™ã‚‹ã€‚第2è¦ç´ ã®ãƒ’ストグラムã§ã‚れ㰠\verb|#_2| ã¨ã™ã‚‹ã€‚\\
- \\
-\begin{flushright} \hyperlink{functionlist}{$\Rightarrow$関数一覧}\end{flushright}
-
-\hypertarget{plotdatar}{}
-\item[関数] PlotdataR(name,å¼,変数)
-\item[機能] Rã®é–¢æ•°ã®ã‚°ãƒ©ãƒ•ã‚’æã
-\item[説明] Cindyscriptã®çµ„ã¿è¾¼ã¿é–¢æ•°ã«ã¯ãªã„関数ã®ã‚°ãƒ©ãƒ•ã‚’Rを利用ã—ã¦æã。\\
-
-例:平å‡5, 標準åå·®2ã®æ­£è¦åˆ†å¸ƒã®å¯†åº¦é–¢æ•°ã¨åˆ†å¸ƒé–¢æ•°ã®ã‚°ãƒ©ãƒ•ã‚’æã。
-\begin{verbatim}
-  PlotdataR(“1â€, “dnorm(x,5,2)â€, â€x=[0,10]â€);
-  PlotdataR(“2â€, â€pnorm(x,5,2)â€, â€x=[0,10]â€);
-\end{verbatim}
-
-例:標準正è¦åˆ†å¸ƒã®ã‚°ãƒ©ãƒ•ä¸Šã®ç‚¹ã¨x軸をçµã‚“ã ç·šåˆ†ã‚’æã。\\
-点A,Bã¯Cinderellaã®ä½œå›³ãƒ„ールã§ä½œå›³ã—ã¦ãŠã,点Aをグラフ上ã®ãŠã‚ˆãã®ä½ç½®ã«ç½®ã„ã¦ã‹ã‚‰å®Ÿè¡Œã™ã‚‹ã€‚
-\begin{verbatim}
-  PlotdataR("1","dnorm(x)","x=[-5,5]");
-  Putoncurve("A","grR1",[-3,3]);
-  Putpoint("B",[A.x,0]);
-  Listplot("1",[A,B]);
-\end{verbatim}
-2行目ã®æœ€å¾Œã®å¼•æ•°ã®[-3,3]ã¯ï¼Œãã®ç¯„囲を動ã‹ã™ã“ã¨ã‚’æ„味ã™ã‚‹ã€‚\\
-Aã¯ã‚°ãƒ©ãƒ•ä¸Šã‚’å‹•ã‹ã™ã“ã¨ãŒã§ãã¦ï¼ŒBã¯ãã‚Œã«ä¼´ã£ã¦å‹•ã。ãŸã ã—,少ã—å‹•ã‹ã™åº¦ã« ãƒãƒƒãƒ/シェル ファイルを実行ã™ã‚‹ã®ã§ï¼Œç…©é›‘ãªå ´åˆã¯ï¼ŒPlotdata() ã®è¡Œã‚’コメント化ã—ã¦ã‹ã‚‰ç‚¹Aã‚’å‹•ã‹ã—ãŸã‚ã¨å†å®Ÿè¡Œã™ã‚‹ã¨ã‚ˆã„。\\
- \\
-例:上ã¨åŒæ§˜ã§ï¼Œx軸上ã®ç‚¹ã‚’自由点Aã¨ã—,曲線上ã«Bã‚’ç½®ã。
-\begin{verbatim}
-  PlotdataR("1","dnorm(x)","x=[-5,5]");
-  PlotdataR("1","dnorm(x)","x=[-5,5]");
-  A.xy=[A.x,0];
-  Lineplot("1",[A,A+[0,1]],["nodisp"]);
-  Putintersect("B","grR1","ln1");
-  Listplot("1",[A,B]);
-\end{verbatim}
- \\
-例:å‰ã®ä¾‹ã®ã‚°ãƒ©ãƒ•ã§ï¼ŒABã®å·¦å´ã«Shadeã‚’ã‹ã‘,Shadeã®éƒ¨åˆ†ã®é¢ç©ã‚’求ã‚る。Pã®å€¤ã‚’表示ã™ã‚‹ä½ç½®ã«ï¼ŒCinderellaã®ä½œå›³ãƒ„ールã§ç‚¹Cã‚’ã¨ã£ã¦ãŠã。
-\begin{verbatim}
-  tmp1=[0.2,0,0,0];
-  tmp2=Colorcmyk2rgb(tmp1);
-  Setcolor(tmp1);
-  Setcolor([0.2,0,0,0]);
-  Shade(["en1"],["color->"+text(tmp2)]);
-  Setcolor("black");
-  PlotdataR("1","dnorm(x)","x=[-5,5]",["Num=100"]);
-  Putpoint("A",[0,0],[A.x,0]);
-  Lineplot("1",[A,A+[0,1]],["nodisp"]);
-  Putintersect("B","grR1","ln1");
-  Listplot("1",[A,B]);
-  Listplot("2",[[-5,0],[5,0]],"nodisp");
-  Enclosing("1",["Invert(grR1)","sg2","sg1"],[B,"notex"]);
-  tmp=0.5+Integrate("grR1",[0,A.x]);
-  Expr([A,"s",text(A.x),C,"e","P="+text(tmp)]);
-\end{verbatim}
- \\
-  \input{Fig/rshade}\\
- \\
-Shade() ã¯ãƒ—ロットデータを定義ã—ãªã„ã®ã§ï¼Œå…ˆã«æ›¸ã„ã¦ãŠãã¨å¡—ã£ã¦ã‹ã‚‰ç·šã‚’æãã®ã§ï¼Œã«ã˜ã¿ãŒãªããã‚Œã„ã«ä»•ä¸ŠãŒã‚‹ã€‚("en1"ã¯Enclosing("1"・・)ã§ã§ãるプロットデータ)\\
- \\
-\begin{flushright} \hyperlink{functionlist}{$\Rightarrow$関数一覧}\end{flushright}
-
-\hypertarget{plotdiscr}{}
-\item[関数] PlotdiscR(name,å¼,変数)
-\item[機能] Rを利用ã—ã¦é›¢æ•£åž‹ã®ã‚°ãƒ©ãƒ•ã‚’æã
-\item[説明] dbinom (二項分布),dpois(ãƒã‚¢ã‚½ãƒ³åˆ†å¸ƒï¼‰ï¼Œdgeom(幾何分布)ãªã©é›¢æ•£åž‹ç¢ºçŽ‡åˆ†å¸ƒã®ã‚°ãƒ©ãƒ•ã‚’æã。\\
- \\
-例:二項分布ã®ã‚°ãƒ©ãƒ•ã¨æ­£è¦åˆ†å¸ƒã®ã‚°ãƒ©ãƒ•ã‚’比較ã™ã‚‹ã€‚
-\begin{verbatim}
-  Setscaling(20);
-  PlotdiscR("1","dbinom(k,10,0.4)","k=[0,10]");
-  PlotdataR("1","dnorm(x,10*0.4,sqrt(10*0.4*0.6))","x=[0,10]",["do"]);
-\end{verbatim}
- \\
-  \input{Fig/binvsnormal}\\
- \\
-関数部分ãŒé•·ããªã‚‹ã¨ãã¯ï¼ŒAssign()を利用ã—ã¦æ¬¡ã®ã‚ˆã†ã«æ›¸ãã“ã¨ã‚‚ã§ãる。
-\begin{verbatim}
-  tmp="dnorm(x,n*p,sqrt(n*p*(1-p)))";
-  tmp=Assign(tmp,["n",10,"p",0.4]);
-  PlotdataR("2",tmp,"x=[0,10]",["do"]);
-\end{verbatim}
-
-次ã¯ï¼Œãƒã‚¢ã‚½ãƒ³åˆ†å¸ƒãŠã‚ˆã³å¹¾ä½•åˆ†å¸ƒã®ã‚°ãƒ©ãƒ•ã€‚
-\begin{verbatim}
-PlotdiscR("2","dpois(k,4)","k=[0,10]");
-PlotdiscR("3","dgeom(k,0.3)","k=[0,10]");
-\end{verbatim}
- \\
-\begin{flushright} \hyperlink{functionlist}{$\Rightarrow$関数一覧}\end{flushright}
-
-\hypertarget{readcsv}{}
-\item[関数] Readcsv(name,filename,option)
-\item[機能] Rを利用ã—ã¦csvファイルを読む。
-\item[説明] Rを使ã£ã¦csvファイルを読ã¿ï¼ŒKeTCindyã«å¼•ã渡ã™ã€‚\\
-利用例㯠Boxplot() ãªã©ã®ä¾‹ã‚’å‚ç…§ã®ã“ã¨ã€‚\\
- \\
-
-\hypertarget{scatterplot}{}
-\item[関数] Scatterplot(name,filename,option)
-\item[機能] 2次元データを読ã¿è¾¼ã¿ï¼Œæ•£å¸ƒå›³ã‚’æã
-\item[説明] 外部ファイル filename(csvå½¢å¼ï¼‰ã‚’読ã¿ï¼Œæ•£å¸ƒå›³ã‚’æã。\\
-オプションã¯ã€€"Reg=no" : 回帰直線をæãã‹ã©ã†ã‹ï¼ˆyes/no) åˆæœŸå€¤ã¯ yes\\
-        A, B 表示枠ã®å¯¾è§’点(左下ã¨å³ä¸Šã®ç‚¹ï¼‰ï¼ˆCinderellaã§ä½œå›³ï¼‰\\
-        C  相関係数ã¨å›žå¸°ç›´ç·šã®å¼ã‚’表示ã™ã‚‹ç‚¹\\
-       "Size=n" :点ã®å¤§ãã•ã€‚Cinderellaã®æç”»é¢ã«ã¯å映ã•ã‚Œãªã„。\\
-           æç”»é¢ã®ç‚¹ã‚‚大ããã™ã‚‹å ´åˆã¯ï¼Œ"size-$>$n"オプションを追加ã™ã‚‹ã€‚\\
-例:data.csv を読んã§æ•£å¸ƒå›³ã‚’æã,回帰直線を引ã。
-\begin{verbatim}
-  Scatterplot("1","data.csv",["Reg=yes",A,B,C,"Size=5"]);
-  Rulerscale(A,["r",0,10,1],["r",1,10,1]);
-\end{verbatim}
- optionã®ç‚¹A,Bã¯Cinderellaã®ä½œå›³ãƒ„ールã§ã¨ã£ãŸè¡¨ç¤ºé ˜åŸŸã®å¯¾è§’点。( AãŒå·¦ä¸‹ã€‚ãªãŠï¼Œå¯¾è§’点ã®å称ã¯A,Bã«ã¯é™ã‚‰ãªã„。)\\
- 回帰直線をæãå ´åˆ("Reg=yes")ã¯ï¼Œå›žå¸°ç›´ç·šãŒæž ã‹ã‚‰ã¯ã¿å‡ºã™ã®ã§ï¼ŒAã‚’SW,Bã‚’NEã«ä¸€è‡´ã•ã›ã‚‹ã¨ã‚ˆã„。\\
- Cã¯ç›¸é–¢ä¿‚æ•°ã¨å›žå¸°ç›´ç·šã®å¼ã‚’表示ã™ã‚‹ç‚¹ã¨ã—ã¦Cinderellaã®ä½œå›³ãƒ„ールã§å–る。ã“れも,å称ã¯ï¼£ã«ã¯é™ã‚‰ãªã„。\\
-   \verb|Rulerscale(A,["r",0,10,1],["r",1,10,1]);|\\
- ã§è¡¨ç¤ºæž ã«ç›®ç››ã‚’打ã£ã¦ã„る。"r" ã¯ç­‰å¹…,"f"㯠Tickmark ã¨åŒã˜æŒ‡å®šã€‚\\
- \\
-     \input{Fig/scatter}\\
-\end{description}
-\newpage
-
-% Maximaã¨ã®é€£æºã€€==================================
-\subsection{Maximaã¨ã®é€£æº}
-Maximaã¯æ•°å¼å‡¦ç†ã‚½ãƒ•ãƒˆã§ï¼ŒKeTCindyã«ãŠã„ã¦ã¯å¾®ç©åˆ†ã®è¨ˆç®—ãªã©ï¼ŒCindyscriptã§ã¯ä¸å分ãªç‚¹ã‚’補ã†ã“ã¨ãŒã§ãる。\\
- KeTCindyã§ã¯ï¼Œkc.bat/shã«ã‚ˆã£ã¦ã‚³ãƒžãƒ³ãƒ‰ã‚’Maximaã«æ¸¡ã—,çµæžœã‚’テキストファイルã§å—ã‘å–る。ã“ã®ã¨ã,Maximaã¨ã®ã‚„ã‚Šã¨ã‚Šã§ï¼Œæ¬¡ã®ã‚ˆã†ãªãƒ•ã‚¡ã‚¤ãƒ«ãŒä½œæ¥­ãƒ‡ã‚£ãƒ¬ã‚¯ãƒˆãƒªã«ä½œæˆã•ã‚Œã‚‹ã€‚\\
-æ‹¡å¼µå­ max :Maxima用ã®ãƒ•ã‚¡ã‚¤ãƒ«\\
-æ‹¡å¼µå­ txt:データファイル\\
-ã“ã®ãƒ‡ãƒ¼ã‚¿ã®ã‚„ã‚Šå–ã‚Šã«é–¢ã™ã‚‹æ¬¡ã®ã‚ªãƒ—ションãŒã‚る。\\
- オプションãªã—ã¾ãŸã¯ï¼Œâ€â€ ã®ã¨ã\\
-  i) データファイルãŒãªã‘ã‚Œã°ï¼Œæ–°ã—ã作る\\
-  ii) データファイルãŒæ—¢ã«ã‚ã‚Œã°ãれを読ã¿è¾¼ã‚€\\
- "m" ã®ã¨ã,強制的ã«ãƒ‡ãƒ¼ã‚¿ãƒ•ã‚¡ã‚¤ãƒ«ã‚’作り直ã™ã€‚\\
- "r" ã®ã¨ã,ã™ã§ã«ã‚るデータファイルを読ã¿è¾¼ã‚€ã€‚\\
- ã“ã®ã¨ã,ファイルã®èª­ã¿æ›¸ãã§ä¸å…·åˆãŒã‚ã‚‹ã¨ï¼Œæ•°ç§’ã®å¾Œã€Œ==$>$ file.txt not generated (5 s ) ã€ã®ã‚ˆã†ãªã‚¨ãƒ©ãƒ¼ãƒ¡ãƒƒã‚»ãƒ¼ã‚¸ãŒã‚³ãƒ³ã‚½ãƒ¼ãƒ«ã«è¡¨ç¤ºã•ã‚Œã‚‹ã€‚ã“ã®ã‚ˆã†ãªå ´åˆã¯ä½œæ¥­ãƒ‡ã‚£ãƒ¬ã‚¯ãƒˆãƒªã®è¨­å®šãªã©ã‚’確èªã—ã¦ã„ãŸã ããŸã„。ã“ã®å¾…ã¡æ™‚é–“ã«ã¤ã„ã¦ã¯ï¼ŒWaitオプションã§è¨­å®šã™ã‚‹ã“ã¨ã‚‚ã§ãる。\\
-
-\begin{description}
-
-\hypertarget{calcbyM}{}
-\item[関数] CalcbyM(name,コマンド,option)
-\item[機能] Maximaã®ã‚¹ã‚¯ãƒªãƒ—トを実行ã™ã‚‹
-\item[説明] 第2引数ã¯Maximaã§å®Ÿè¡Œã™ã‚‹ã‚³ãƒžãƒ³ãƒ‰ã€‚\\
- コマンドã¨å¼•æ•°ãƒªã‚¹ãƒˆã®ç¹°ã‚Šè¿”ã—ã‹ã‚‰ãªã‚‹ãƒªã‚¹ãƒˆï¼ˆä¾‹ãˆã°cmdL)を作ã£ã¦ï¼Œä¸€åº¦ã«å®Ÿè¡Œã™ã‚‹ã€‚\\
- 戻り値ã¯ãªã„。(未定義値) çµæžœã¯ï¼Œã‚³ãƒžãƒ³ãƒ‰ãƒªã‚¹ãƒˆã®æœ€å¾Œã«è¨˜è¿°ã—ãŸå¤‰æ•°ï¼ˆå¼•æ•°ã¯ç©ºãƒªã‚¹ãƒˆï¼‰ã®å€¤ãŒname ã§æŒ‡å®šã•ã‚ŒãŸå¤‰æ•°ã«ä»£å…¥ã•ã‚Œã‚‹ã€‚複数ã®çµæžœã‚’戻ã™ã¨ãã¯ï¼Œ:: ã§åŒºåˆ‡ã£ã¦è¨˜è¿°ã™ã‚‹ã¨ãƒªã‚¹ãƒˆã«ã—ã¦ä»£å…¥ã•ã‚Œã‚‹ã€‚\\
- \\
-例:$\sin x$ ã¨ãã®å°Žé–¢æ•°ã‚’表示ã™ã‚‹ã€‚çµæžœã¯ 変数 fdf ã« f ã¨df ã®ãƒªã‚¹ãƒˆãŒä»£å…¥ã•ã‚Œã‚‹ã€‚
-\begin{verbatim}
-  cmdL=[
-   "f:sin(x)", [],
-   "df:diff",["sin(x)","x"],
-   "f::df",[]
-  ];
-  CalcbyM("fdf",cmdL);
-  println(fdf);
-\end{verbatim}
- \\
- 実行ã™ã‚‹ã¨ï¼Œã‚³ãƒ³ã‚½ãƒ¼ãƒ«ã«ï¼Œ[sin(x),cos(x)] ã¨è¡¨ç¤ºã•ã‚Œã‚‹ã€‚\\
- \\
-ä¾‹ï¼šï¼’æ¬¡æ–¹ç¨‹å¼ $x^2-x-4=0$ã®è§£ã‚’求ã‚る。
-\begin{verbatim}
-  cmdL=[
-   "ans:solve",["x^2-x-4","x"],
-   "ans",[]
-  ];
-  CalcbyM("ans",cmdL);
-  println("ans="+ans);
-\end{verbatim}
- コンソールã«ã¯\\
-  ans=[x = -(sqrt(17)-1)/2,x = (sqrt(17)+1)/2] \\
- ãŒè¡¨ç¤ºã•ã‚Œã‚‹ã€‚\\
- \\
-{\bf 応用例1:曲線ã®æŽ¥ç·šã‚’引ã}\\
- \\
- $f(x)=\dfrac{e^x+e^{-x}}{2}$ ã®ï¼Œ$x=a$ã«ãŠã‘る接線ã®æ–¹ç¨‹å¼ã‚’作る。\\
-Maximaã§ãã®å‡¦ç†ã‚’è¡Œã†ã‚³ãƒžãƒ³ãƒ‰ã‚’定義ã—,CalbyMã§å®Ÿè¡Œã™ã‚‹ã€‚
-\begin{verbatim}
-  fx="(exp(x)+exp(-x))/2";
-  cmdL=[
-   "df:diff",[fx,"x"],
-   "c:ev",["df","x=a"],
-   "b:ev",[fx,"x=a"],
-   "eq:c*(x-a)+b",[],
-    "eq",[]
-  ];
-  CalcbyM("tn1",cmdL);
-  println(tn1);
-\end{verbatim}
- コンソールã«ã¯
-\begin{verbatim}
-  (%e^a-%e^-a)*(x-a))/2+(%e^a+%e^-a)/2
-\end{verbatim}
-ãŒè¡¨ç¤ºã•ã‚Œã‚‹ã€‚\\
- ã“ã®ï¼ŒCalbyMã®æˆ»ã‚Šå€¤ tn1 を用ã„ã¦ï¼Œæ›²ç·šä¸Šã®ï¼‘点Aã«ãŠã‘る接線ã®ã‚°ãƒ©ãƒ•ã‚’æã。以下ã®ã‚¹ã‚¯ãƒªãƒ—トを追加ã™ã‚‹ã€‚ãªãŠï¼Œç‚¹Aã‚’Cinderellaã®ä½œå›³ãƒ„ールã§é©å½“ãªã¨ã“ã‚ã«ã¨ã£ã¦ãŠã。
-\begin{verbatim}
-  tn1=Assign(tn1,["%e^a","exp(a)","%e^-a","exp(-a)"]);
-  Plotdata("1",fx,"x");
-  Putoncurve("A","gr1");
-  tmp=Assign(tn1,["a",A.x]);
-  plotdata("2",tmp,"x",["Num=2"]);
-\end{verbatim}
-1行目ã§ã¯Maximaã§ä½œæˆã—ãŸå¼ã‚’,Cindyscriptã§ãƒ—ロットã§ãã‚‹å¼ã«ã—ã¦ã„る。\\
- \\
-      \input{Fig/maxfun01}\\
- \\
- ãªãŠï¼ŒæŽ¥ç·šã®æ–¹ç¨‹å¼ã‚’求ã‚ã‚‹ã ã‘ã§ã‚ã‚Œã°ï¼ŒMxfun()を使ã†ã“ã¨ã‚‚ã§ãる。Mxfun()ã®è§£èª¬ã‚’å‚ç…§ã®ã“ã¨ã€‚\\
- \\
-{\bf 応用例2:パラメトリックã®å ´åˆã®æŽ¥ç·š}\\
- \\
- 媒介変数ã®å€¤ã‚’決ã‚ã‚‹ãŸã‚ã«ï¼Œç‚¹Aã‚’Cinderellaã®æç”»é¢ã®x軸上ã«ã¨ã£ã¦ãŠã,ãã®$x$座標を媒介変数$t$ã®å€¤ã¨ã™ã‚‹ã€‚スライダを作ã£ã¦ã‚‚よã„。
-\begin{verbatim}
-  fn="3*cos(t)^2*[cos(t),sin(t)]";
-  cmdL=[
-   "f:",[fn],
-   "df:diff",["f","t"],
-   "df:trigsimp",["df"],
-   "tn:f+s*df",[],
-   "tn",[]
-  ];
-  CalcbyM("tn2",cmdL);
-  Paramplot("1",fn,"t=[0,2*pi]",["Num=100"]);
-  gn=Assign(tn2,["t",A.x]);
-  Paramplot("2",gn,"s=[-3,3]");
-\end{verbatim}
- \\
-      \input{Fig/maxfun02}\\
- \\
- cmdLã§å®šç¾©ã—ã¦ã„ã‚‹Maximaã®ã‚³ãƒžãƒ³ãƒ‰ï¼ˆtrigsimp ãªã©ï¼‰ã«ã¤ã„ã¦ã¯ï¼ŒMaximaã®è§£èª¬æ›¸ãªã©ã‚’å‚ç…§ã•ã‚ŒãŸã„。\\
- \\
-\hypertarget{example}{}
-\item[関数] Example("Mxfun",文字)
-\item[機能] Mxfunã®ä½¿ç”¨ä¾‹ã‚’表示。文字㯠"a","b",ãªã©ã€‚
-\item[説明] ãŸã¨ãˆã°ï¼Œ\verb|Example("Mxfun","a")| ã¨ã™ã‚‹ã¨ï¼ŒMxfunã®ä½¿ç”¨ä¾‹ãŒã‚³ãƒ³ã‚½ãƒ¼ãƒ«ã«è¡¨ç¤ºã•ã‚Œã‚‹ã€‚\\
- \\
-
-\hypertarget{mxbatch}{}
-\item[関数] Mxbatch(ファイルå)
-\item[機能] Maximaã®ãƒ•ã‚¡ã‚¤ãƒ«ã‚’実行ã™ã‚‹ã‚³ãƒžãƒ³ãƒ‰ä½œã‚‹
-\item[説明] Dirlibã§æŒ‡å®šã•ã‚ŒãŸãƒ•ã‚©ãƒ«ãƒ€ã®ä¸­ã® maximaL フォルダã«ã‚るファイルを実行ã™ã‚‹ãŸã‚ã®ï¼ŒCalcbyM用ã®ã‚³ãƒžãƒ³ãƒ‰ã‚’作æˆã™ã‚‹ã€‚\\
-例:\verb|cmd=Mxbatch("fourier_sec")|\\
- を実行ã™ã‚‹ã¨ï¼Œcmdã«\\
-  \verb|[batch,["/Applications/ketcindy/ketlib/maximaL/fourier_sec.max"]] |\\
- ãŒä»£å…¥ã•ã‚Œã‚‹ã€‚ãã“ã§ï¼Œ\\
-  \verb|CalcbyM("ret",cmd,[]);|\\
- を実行ã™ã‚Œã°ï¼Œfourier\_sec.max ãŒå®Ÿè¡Œã•ã‚Œã¦ï¼Œçµæžœã‚’ ret ã«å–å¾—ã§ãる。\\
- fourier\_sec.max ã«ç¶šã‘ã¦ï¼Œã‚³ãƒžãƒ³ãƒ‰åˆ— cmd2 を実行ã™ã‚‹ã“ã¨ã‚‚ã§ã,ãã®å ´åˆã¯
-\begin{verbatim}
-  cmdL=Concat(Mxbatch("fourier_sec"),cmd2);
-  CalcbyM("ret",cmdL,[]);
-\end{verbatim}
-ã¨ã™ã‚‹ã€‚(Concat() ã¯ãƒªã‚¹ãƒˆã‚’çµåˆã™ã‚‹Cindyscriptã®é–¢æ•°ï¼‰\\
- \\
-
-\hypertarget{mxfun}{}
-\item[関数] Mxfun(name,å¼ï¼Œãƒªã‚¹ãƒˆï¼Œoption)
-\item[機能] Maximaã®é–¢æ•°ã‚’実行ã™ã‚‹
-\item[説明] 第2引数ã®ã€Œå¼ã€ã¯Maximaã®é–¢æ•°å。第3引数ã®ãƒªã‚¹ãƒˆã¯é–¢æ•°ã«æ¸¡ã™å¼•æ•°ã®ãƒªã‚¹ãƒˆã€‚\\
- 戻り値ã¯ï¼Œç¬¬ï¼‘引数ã®å¼ã«ï¼‘ã¤ã§ã‚‚文字ãŒã‚ã‚‹ã¨æ–‡å­—列ã¨ãªã‚‹ã€‚ã™ã¹ã¦æ•°å­—(+,-, . ã‚’å«ã‚€ï¼‰ã®å ´åˆã¯
-16æ¡ä»¥ä¸‹ã§ã‚ã‚Œã°æ•°ï¼Œãれ以上ã®å ´åˆã¯æ–‡å­—列ã¨ãªã‚‹ã€‚ã¾ãŸï¼Œæˆ»ã‚Šå€¤ã¯ï¼Œå¤‰æ•° mxname ã«ã‚‚代入ã•ã‚Œã‚‹ã€‚\\
-オプション㫠"Disp=no" ã‚’ã¤ã‘ã‚‹ã¨ï¼Œçµæžœã‚’コンソールã«è¡¨ç¤ºã—ãªã„。\\
- \\
-例:$10!$を求ã‚る。\\
-  \verb|Mxfun("1","10!",[],[""]);|\\
- を実行ã™ã‚‹ã¨ï¼Œã‚³ãƒ³ã‚½ãƒ¼ãƒ«ã«ã€€mx1 is 362880 ã¨è¡¨ç¤ºã•ã‚Œã‚‹ã€‚ã“ã®å€¤ã¯å¤‰æ•° mx1 ã«ä»£å…¥ã•ã‚Œã¦ã„ã‚‹ã®ã§ï¼Œ\\
-  \verb|drawtext([0,1],mx1);|\\
-ã¨ã™ã‚Œã°Cinderellaã®æç”»é¢ä¸Šã«è¡¨ç¤ºã•ã‚Œã‚‹ã€‚\\
- ã¾ãŸï¼Œæˆ»ã‚Šå€¤ã‚’別ã®å¤‰æ•°ã«ä»£å…¥ã—ã¦ä½¿ã†ã“ã¨ã‚‚ã§ãる。
-\begin{verbatim}
-  fact10=Mxfun("1","10!",[],[""]);
-  drawtext([0,1],fact10);
-\end{verbatim}
- \\
-例:$f(x)=\sin x$ を微分ã™ã‚‹\\
-   \verb|Mxfun("1", "diff",["sin(x)","x"])|\\
- ã¨ã™ã‚‹ã¨\\
-  diff(sin(x),x)\\
- ã¨ã„ã†ã‚³ãƒžãƒ³ãƒ‰ã‚’Maximaã«æ¸¡ã—ã¦ï¼Œæˆ»ã‚Šå€¤ã‚’Cindyã®å¤‰æ•°mx1ã«ä»£å…¥ã™ã‚‹ã€‚\\
-   \verb|Mxfun("1", "diff(sin(x),x)",[]])|\\
- ã¨ï¼Œç¬¬ï¼‘引数ã«ã¾ã¨ã‚ã¦ã‚‚åŒã˜çµæžœã«ãªã‚‹ã€‚ãŸã ã—,ã“ã®å ´åˆï¼Œç¬¬ï¼’引数ã¯ç©ºãƒªã‚¹ãƒˆã¨ã™ã‚‹ã€‚\\
- 文字列を引数ã¨ã™ã‚‹å ´åˆï¼Œä¾‹ãˆã°ï¼Œæ–‡å­—列を連çµã™ã‚‹ã‚³ãƒžãƒ³ãƒ‰concatã§ã¯ï¼Œ\\
-   concat("a","b")\\
- ã¨ã™ã‚‹ãŒï¼ŒCindyscriptã®æ–‡å­—列ã®å‡¦ç†ã®é–¢ä¿‚ã§ï¼Œç¬¬ï¼‘引数ã§ã¯ã“ã®å½¢ã§è¨˜è¿°ã§ããªã„。\\
- ã—ãŸãŒã£ã¦ï¼Œã“ã®ã‚ˆã†ãªå ´åˆã¯ï¼Œç¬¬ï¼’引数を使ã£ã¦\\
-   \verb|Mxfun("1","concat",["a","b"])|
- ã¨ã™ã‚Œã°ã‚ˆã„。\\
- \\
-{\bf Cindyscriptã®å¾®åˆ†ã¨ã®é•ã„}\\
- Cindyscriptã§ã‚‚微分ã¯ã§ãる。ãŸã¨ãˆã°ï¼Œ
-\begin{verbatim}
-  f(x):=sin(x);
-  g(x):=d(f(#),x);
-  plot(g(#));
-\end{verbatim}
- ã¨ã™ã‚‹ã¨ï¼Œcos(x)ã®ã‚°ãƒ©ãƒ•ãŒæã‹ã‚Œã‚‹ã€‚\\
- ã—ã‹ã—,Cindyscriptã®å¾®åˆ†ãŒï¼Œå¾®åˆ†ã®å®šç¾©ã«ã‚ˆã‚‹æ•°å€¤è¨ˆç®—ã§ã‚ã‚‹ã®ã«å¯¾ã—,Maximaã§ã¯æ•°å¼å‡¦ç†ã¨ã—ã¦å¾®åˆ†ãŒã§ãる。\\
- ãã®æ„味ã®é•ã„ã¯ï¼Œæ¬¡ã®ã‚¹ã‚¯ãƒªãƒ—トã§ç¢ºã‹ã‚られる。
-\begin{verbatim}
-  f(x):=sin(x);
-  g(x):=d(f(#),x);
-  println(g(x));
-\end{verbatim}
- ã§ã¯ï¼Œã‚³ãƒ³ã‚½ãƒ¼ãƒ«ã«è¡¨ç¤ºã•ã‚Œã‚‹ã®ã¯æœªå®šç¾©å€¤ï¼ˆ\_ \_ \_) ã§ã‚る。\\
-一方,
-\begin{verbatim}
-  Mxfun("1", "diff",["sin(x)","x"]);
-  println(mx1);
-\end{verbatim}
-ã§ã¯ï¼Œã‚³ãƒ³ã‚½ãƒ¼ãƒ«ã« \verb|cos(x)| ã¨è¡¨ç¤ºã•ã‚Œã‚‹ã€‚\\
-mx1ã¯æ–‡å­—列ã§ã‚ã‚‹ã®ã§ï¼Œ
-\begin{verbatim}
-  g(x):=parse(mx1);
-\end{verbatim}
-ã¨ã™ã‚Œã°ï¼Œg(x)を導関数ã¨ã™ã‚‹ã“ã¨ãŒã§ã,\verb|plot(g(#))| ã§ã‚°ãƒ©ãƒ•ã‚’æãã“ã¨ãŒã§ãる。\\
- ã¾ãŸï¼ŒCindyscriptã®å¾®åˆ†ã§ã¯ï¼Œï¼“階ã‹ï¼”階ã¾ã§ã®å°Žé–¢æ•°ãŒè¨ˆç®—上ã®é™åº¦ã§ã‚ã‚‹ã®ã«å¯¾ã—,Maximaãªã‚‰ä½•éšŽã§ã‚‚微分ãŒã§ãã‚‹ã®ã§ï¼Œãƒ†ã‚¤ãƒ©ãƒ¼å±•é–‹ãªã©ã§æœ‰åˆ©ã§ã‚る。\\
- \\
- \\
-例 $\sin x$ 㮠テイラー展開を行ã„,グラフを表示ã™ã‚‹ã€‚
-\begin{verbatim}
-  Mxfun("1","taylor",["sin(x)","x",0,7],[""]);
-  Plotdata("1","sin(x)","x",["da"]);
-  Plotdata("2",mx1,"x");
-\end{verbatim}
- \\
-    \input{Fig/taylor}
- \\
-Mxtex() を用ã„ã¦ï¼ŒMxfun()ã®çµæžœã® mx1ã‚’TeX書å¼ã«ã—ã¦è¡¨ç¤ºã™ã‚‹ã“ã¨ã‚‚ã§ãる。\\
-  \verb|Expr([[1,2],"e",Mxtex("1",mx1)]);|\\
-を追加ã™ã‚Œã°[1,2]ã®ä½ç½®ã«å¼ãŒè¡¨ç¤ºã•ã‚Œã‚‹ã€‚\\
- \\
- \\
-{\bf 応用例:接線ã®æ–¹ç¨‹å¼ã‚’作る}\\
- \\
- $f(x)=\dfrac{e^x+e^{-x}}{2}$ ã®ï¼Œ$x=a$ã«ãŠã‘る接線ã®æ–¹ç¨‹å¼ã‚’作る。\\
- 関数å¼ã‚’文字列ã«ã—ã¦ãŠã,Assign() を用ã„ã¦å¤‰æ•°$x$ã‚’$a$ã«å¤‰ãˆã‚Œã°ï¼Œ$f(a)$ã®å¼ã‚’作るã“ã¨ãŒã§ãる。導関数ã«ã¤ã„ã¦ã‚‚åŒæ§˜ã«ã™ã‚‹ã€‚\\
-\begin{verbatim}
-  fx="(exp(x)+exp(-x))/2";
-  gx=Mxfun("1","diff",[fx,"x"]);
-  fa=Assign(fx,["x","a"]);
-  ga=Assign(gx,["x","a"]);
-  tf=ga+"*(x-a)+("+fa+")";
-  println(tf);
-\end{verbatim}
- コンソールã«ã¯
-\begin{verbatim}
-  (%e^a-%e^-a)/2*(x-a)+((exp(a)+exp(-a))/2)
-\end{verbatim}
-ãŒè¡¨ç¤ºã•ã‚Œã‚‹ã€‚\\
- \\
-
-\hypertarget{mxtex}{}
-\item[関数] Mxtex(name,å¼)
-\item[機能] å¼ã‚’TeX書å¼ã«ã™ã‚‹
-\item[説明] 第2引数ã®å¼ã¯ï¼Œç›´æŽ¥æ›¸ã„ãŸå¼ã‚‚ã—ãã¯Mxfunã®æˆ»ã‚Šå€¤ã€‚ã“れをTeXã®æ›¸å¼ã«ã™ã‚‹ã€‚\\
-戻り値ã¯ï¼Œå¤‰æ•° txname ã«ã‚‚代入ã•ã‚Œã‚‹ã€‚\\
- \\
-例:部分分数ã¸ã®åˆ†è§£
-\begin{spacing}{1.5}
- 部分分数$\dfrac{x^3}{(x+1)(x+2)}$ã®åˆ†è§£ã‚’Maximaã§è¡Œã„,ãã®çµæžœã‚’TeX書å¼ã«ã—ã¦ç”»é¢ã«è¡¨ç¤ºã™ã‚‹ã€‚ç”»é¢ã«è¡¨ç¤ºã•ã‚ŒãŸçµæžœã¯ãã®ã¾ã¾KeTCindyã§å‡ºåŠ›ã§ãる。
-\end{spacing}
-
-\begin{verbatim}
-  Mxfun("1","partfrac",["x^3/((x+1)*(x+2))","x"]);
-  Mxtex("1",mx1);
-  Expr([0,1],"e",tx1);
-\end{verbatim}
- ã“ã“ã§ï¼Œmx1,tx1ã¯ãã‚Œãžã‚ŒMxfun("1",・・) , Mxtex"1",・・) ã®çµæžœï¼ˆæˆ»ã‚Šå€¤ï¼‰ã§ã‚る。mx1,tx1 ã¯ã‚³ãƒ³ã‚½ãƒ¼ãƒ«ã«ã‚‚表示ã•ã‚Œï¼Œtx1ã¯æ¬¡ã®ã‚ˆã†ã«ãªã£ã¦ã„る。
-\begin{verbatim}
-  \frac{8}{x+2}-\frac{1}{x+1}+x-3
-\end{verbatim}
- Cindyscriptã¯TeX書å¼ã‚’サãƒãƒ¼ãƒˆã—ã¦ã„ã‚‹ã®ã§ã“ã‚Œã§æç”»é¢ã«åˆ†æ•°å¼ãŒè¡¨ç¤ºã•ã‚Œã‚‹ãŒï¼ŒTexã®æ–‡æ›¸ã§ã¯ï¼Œ\verb|\frac{}{}| ã§ã¯ãªã,\verb|\dfrac{}{}|を使ã†ã“ã¨ãŒå¤šã„。ãã“ã§ï¼ŒAssign()を用ã„ã¦ï¼Œ"frac" ã‚’ "dfrac" ã«å¤‰ãˆã‚Œã°ï¼Œãã®ã¾ã¾Tex文書ã§ä½¿ãˆã‚‹ã€‚ãŸã ã—,Cindyscript㯠\verb|\dfrac{}{}| をサãƒãƒ¼ãƒˆã—ã¦ã„ãªã„ã®ã§ï¼Œç”»é¢ä¸Šã§ã¯åˆ†æ•°è¡¨è¨˜ã«ãªã‚‰ãªã„。ãã®ã‚ãŸã‚Šã®äº‹æƒ…を次ã®ã‚¹ã‚¯ãƒªãƒ—トã§ç¤ºã™ã€‚
-\begin{verbatim}
-  fx="x^3/((x+1)*(x+2))";
-  pfx=Mxfun("1","partfrac",[fx,"x"]);
-  form=Mxtex("1",fx)+"="+Mxtex("2",pfx);
-  dform=Assign(form,["frac","dfrac"]);
-  Letter([0,5],"e","部分分数ã¸ã®åˆ†è§£ã€€$"+form+"$");
-  Letter([0,3],"e","部分分数ã¸ã®åˆ†è§£ã€€$"+dform+"$");
-\end{verbatim}
-Cinderellaã®æç”»é¢ã§ã¯æ¬¡ã®ã‚ˆã†ã«è¡¨ç¤ºã•ã‚Œã‚‹ã€‚\\
- \\
-    \includegraphics[bb=0 0 694 232 , width=8cm]{Fig/mxtex01.png}\\
- \\
-出力ã—ãŸTeX挿入図ã§ã¯æ¬¡ã®ã‚ˆã†ã«ãªã‚‹ã€‚\\
- \\
-  \input{Fig/mxtex02}\\
- \\
-ãªãŠï¼Œæ–‡å­—列を置æ›ã™ã‚‹ã®ã«ï¼Œ\verb|Assign(form,["frac","dfrac"])| ã§ã¯ãªã,\\
-Cindyscriptã®æ–‡å­—列ã®é–¢æ•° replace を用ã„ã¦ï¼Œ\\
-   \verb|dform=replace(form,"frac","dfrac");| \\
-ã¨ã—ã¦ã‚‚よã„。\\
- \\
-例:2次関数ã®ã‚°ãƒ©ãƒ•ã‚’表示ã—,$x$軸ã¨ã®äº¤ç‚¹ã®$x$座標を表示ã™ã‚‹ã€‚
-\begin{verbatim}
-  fx="x^2-x-3";
-  cmdL=[
-   "ans:solve",[fx,"x"],
-   "ans",[]
-  ];
-  CalcbyM("ans",cmdL);
-  p1=indexof(ans,"[");
-  p2=indexof(ans,",");
-  p3=indexof(ans,"]");
-  s1=substring(ans,p1,p2-1);
-  s2=substring(ans,p2,p3-1);
-  s1=replace(s1,"x =","");
-  s2=replace(s2,"x =","");
-  Mxtex("1",s1);
-  Mxtex("2",s2);
-  Plotdata("1",fx,"x");
-  Expr([-2,-0.5],"e",tx1);
-  Expr([2,-0.5],"e",tx2);
-\end{verbatim}
- \\
-       \input{Fig/mxtex03}\\
- \\
- ã“ã“ã§ï¼Œ\verb|CalcbyM("ans",cmdL);| ã§å¾—られるansã¯ï¼Œæ¬¡ã®ã‚ˆã†ãªæ–‡å­—列ã§ã‚る。\\
-    \verb|"[x = -(sqrt(13)-1)/2,x = (sqrt(13)+1)/2] "|\\
-ãã“ã§ï¼Œã“ã“ã‹ã‚‰ï¼’ã¤ã®å¼ã ã‘を抽出ã™ã‚‹ä½œæ¥­ã‚’è¡Œã£ãŸã®ã¡ï¼ŒMxtex() ã§TeXã®å¼ã‚’å¾—ã¦ã„る。\\
- ã•ã‚‰ã«å¿œç”¨ã¨ã—ã¦ï¼Œç‚¹Aã‚’Cinderellaã®ä½œå›³ãƒ„ールã§ä½œå›³ã—,
-\begin{verbatim}
-  if(A.y<0,
-   fx="(x-"+text(A.x)+")^2"+guess(A.y),
-   fx="(x-"+text(A.x)+")^2+"+guess(A.y);
-  );
-\end{verbatim}
-ã¨ã™ã‚‹ã¨ï¼Œç‚¹Aを頂点ã¨ã™ã‚‹æ”¾ç‰©ç·šã¨è»¸ã¨ã®äº¤ç‚¹ã®åº§æ¨™ãŒæã‹ã‚Œã‚‹ã€‚Maximaã¨ã®ãƒ‡ãƒ¼ã‚¿ã®ã‚„ã‚Šå–ã‚Šã‚’ã™ã‚‹ãŸã‚ã®ã‚¿ã‚¤ãƒ ãƒ©ã‚°ãŒã‚ã‚‹ãŒï¼Œã‚¤ãƒ³ã‚¿ãƒ©ã‚¯ãƒ†ã‚£ãƒ–ã«æ”¾ç‰©ç·šã®ä½ç½®ã‚’変ãˆã‚‹ã“ã¨ãŒã§ãる。\\
- \\
-<å‚考>\\
- 2次関数ã®ã‚ˆã†ãªç°¡å˜ãªé–¢æ•°ã§ã‚ã‚Œã°ï¼ŒCindyscriptã® roots() 関数を用ã„ã¦ï¼’次方程å¼ãŒè§£ã‘ã‚‹ã®ã§ï¼Œæ¬¡ã®ã‚¹ã‚¯ãƒªãƒ—トã§ã»ã¼åŒã˜å‹•ä½œã‚’ã™ã‚‹ã‚‚ã®ã‚’作るã“ã¨ãŒã§ãる。「ã»ã¼ã€ã¨ã„ã†ã®ã¯ç‚¹Aã®ä½ç½®ã«ã‚ˆã£ã¦ã¯ï¼Œguess()ã§è§£é‡ˆã—ãã‚Œãªã„ã“ã¨ãŒã‚ã‚‹ãŸã‚ã§ã‚る。Maximaを使ãˆã°æ•°å¼å‡¦ç†ã§è§£ã‚’求ã‚ã‚‹ã®ã§ï¼ŒAãŒã©ã“ã«ã‚ã£ã¦ã‚‚ãã‚Œã„ã«è¡¨ç¤ºã§ãる。
-\begin{verbatim}
-  fx="x^2-2*A.x*x+A.x^2+A.y";
-  cf=[A.x^2+A.y,-2*A.x,1];
-  sol=roots(cf);
-  s1=guess(sol_2);
-  s2=guess(sol_1);
-  Mxtex("1",s1);
-  Mxtex("2",s2);
-  Plotdata("1",fx,"x");
-  Expr([-2,-0.5],"e",tx1);
-  Expr([2,-0.5],"e",tx2);
-\end{verbatim}
-
-\end{description}
-
-\begin{flushright} \hyperlink{functionlist}{$\Rightarrow$関数一覧}\end{flushright}
-\newpage
-
-
-% Scilabã¨ã®é€£æºã€€==================================
-\subsection{Scilabã¨ã®é€£æº}
- KeTCindyã¯ï¼Œã‚‚ã¨ã‚‚㨠Scilab ã¨é€£æºã—ã¦ï¼ŒCinderellaã‹ã‚‰ã®å‡ºåŠ›ã‚’TeXã®ãƒ†ã‚­ã‚¹ãƒˆã¨ã™ã‚‹ã‚·ã‚¹ãƒ†ãƒ ã§ã‚る。ã—ã‹ã—,ãã‚Œã ã‘ã§ãªã,Maximaãªã©ã¨ã®é€£æºã¨åŒæ§˜ï¼ŒScilab ã®é–¢æ•°ã‚’実行ã—ã¦ï¼Œãƒ‡ãƒ¼ã‚¿ã‚’ã‚„ã‚Šã¨ã‚Šã™ã‚‹ã“ã¨ãŒã§ãる。\\
- KeTCindyã§ã¯ï¼Œkc.bat/shã«ã‚ˆã£ã¦ã‚³ãƒžãƒ³ãƒ‰ã‚’Scilabã«æ¸¡ã—,çµæžœã‚’テキストファイルã§å—ã‘å–る。ã“ã®ã¨ã,Scilabã¨ã®ã‚„ã‚Šã¨ã‚Šã§ï¼Œæ¬¡ã®ã‚ˆã†ãªãƒ•ã‚¡ã‚¤ãƒ«ãŒä½œæ¥­ãƒ‡ã‚£ãƒ¬ã‚¯ãƒˆãƒªã«ä½œæˆã•ã‚Œã‚‹ã€‚\\
-æ‹¡å¼µå­ sci :Scilab用ã®ãƒ•ã‚¡ã‚¤ãƒ«\\
-æ‹¡å¼µå­ txt:データファイル\\
-ã“ã®ãƒ‡ãƒ¼ã‚¿ã®ã‚„ã‚Šå–ã‚Šã«é–¢ã™ã‚‹æ¬¡ã®ã‚ªãƒ—ションãŒã‚る。\\
- オプションãªã—ã¾ãŸã¯ï¼Œâ€â€ ã®ã¨ã\\
-  i) データファイルãŒãªã‘ã‚Œã°ï¼Œæ–°ã—ã作る\\
-  ii) データファイルãŒæ—¢ã«ã‚ã‚Œã°ãれを読ã¿è¾¼ã‚€\\
- "m" ã®ã¨ã,強制的ã«ãƒ‡ãƒ¼ã‚¿ãƒ•ã‚¡ã‚¤ãƒ«ã‚’作り直ã™ã€‚\\
- "r" ã®ã¨ã,ã™ã§ã«ã‚るデータファイルを読ã¿è¾¼ã‚€ã€‚\\
- ã“ã®ã¨ã,ファイルã®èª­ã¿æ›¸ãã§ä¸å…·åˆãŒã‚ã‚‹ã¨ï¼Œæ•°ç§’ã®å¾Œã€Œ==$>$ file.txt not generated (5 s ) ã€ã®ã‚ˆã†ãªã‚¨ãƒ©ãƒ¼ãƒ¡ãƒƒã‚»ãƒ¼ã‚¸ãŒã‚³ãƒ³ã‚½ãƒ¼ãƒ«ã«è¡¨ç¤ºã•ã‚Œã‚‹ã€‚ã“ã®ã‚ˆã†ãªå ´åˆã¯ä½œæ¥­ãƒ‡ã‚£ãƒ¬ã‚¯ãƒˆãƒªã®è¨­å®šãªã©ã‚’確èªã—ã¦ã„ãŸã ããŸã„。ã“ã®å¾…ã¡æ™‚é–“ã«ã¤ã„ã¦ã¯ï¼ŒWaitオプションã§è¨­å®šã™ã‚‹ã“ã¨ã‚‚ã§ãる。\\
-
-\begin{description}
-
-\hypertarget{calcbyS}{}
-\item[関数] CalcbyS(name,コマンド,option)
-\item[機能] Scilabã®ã‚³ãƒžãƒ³ãƒ‰ã‚¹ã‚¯ãƒªãƒ—トを実行ã™ã‚‹
-\item[説明] 第2引数ã¯Scilabã§å®Ÿè¡Œã™ã‚‹ã‚³ãƒžãƒ³ãƒ‰ã®ãƒªã‚¹ãƒˆã€‚\\
- \\
-\hypertarget{plotdataS}{}
-\item[関数] PlotdataS(name,関数,変数)
-\item[機能] Plotdataã¨åŒæ§˜ã®æ›¸å¼ã§ï¼ŒScilabã®é–¢æ•°ã‚’実行ã™ã‚‹
-\item[説明] Cindyscriptã®çµ„込関数ã«ãªã„関数ã®ã‚°ãƒ©ãƒ•ã‚’æãã“ã¨ãŒã§ãる。\\
- \\
-例:ベッセル関数ã®ã‚°ãƒ©ãƒ•ã‚’æã
-\begin{verbatim}
-  PlotdataS("1","besselj(1,x)","x");
-\end{verbatim}
-
-\end{description}
-\begin{flushright} \hyperlink{functionlist}{$\Rightarrow$関数一覧}\end{flushright}
-\newpage
-% Risa/Asirã¨ã®é€£æºã€€==================================
-\subsection{Risa/Asirã¨ã®é€£æº}
-
-\begin{description}
-
-\hypertarget{calcbyA}{}
-\item[関数] CalcbyA(name,コマンド,option)
-\item[機能] Risa/Asirã®ã‚¹ã‚¯ãƒªãƒ—トを実行ã™ã‚‹
-\item[説明] 第2引数ã¯Risa/Asirã§å®Ÿè¡Œã™ã‚‹ã‚³ãƒžãƒ³ãƒ‰ã€‚\\
- コマンドã¨å¼•æ•°ãƒªã‚¹ãƒˆã®ç¹°ã‚Šè¿”ã—ã‹ã‚‰ãªã‚‹ãƒªã‚¹ãƒˆï¼ˆä¾‹ãˆã°cmdL)を作ã£ã¦ï¼Œä¸€åº¦ã«å®Ÿè¡Œã™ã‚‹ã€‚\\
- 戻り値ã¯ãªã„。(未定義値) çµæžœã¯ï¼Œã‚³ãƒžãƒ³ãƒ‰ãƒªã‚¹ãƒˆã®æœ€å¾Œã«è¨˜è¿°ã—ãŸå¤‰æ•°ï¼ˆå¼•æ•°ã¯ç©ºãƒªã‚¹ãƒˆï¼‰ã®å€¤ãŒname ã§æŒ‡å®šã•ã‚ŒãŸå¤‰æ•°ã«ä»£å…¥ã•ã‚Œã‚‹ã€‚複数ã®çµæžœã‚’戻ã™ã¨ãã¯ï¼Œ:: ã§åŒºåˆ‡ã£ã¦è¨˜è¿°ã™ã‚‹ã¨ãƒªã‚¹ãƒˆã«ã—ã¦ä»£å…¥ã•ã‚Œã‚‹ã€‚\\
-
-\hypertarget{asirfun}{}
-\item[関数] Asirfun(name,å¼ï¼Œãƒªã‚¹ãƒˆï¼Œoption)
-\item[機能] Risa/Asirã®é–¢æ•°ã‚’実行ã™ã‚‹
-\item[説明] 第2引数ã®ã€Œå¼ã€ã¯Risa/Asirã®é–¢æ•°å。第3引数ã®ãƒªã‚¹ãƒˆã¯é–¢æ•°ã«æ¸¡ã™å¼•æ•°ã®ãƒªã‚¹ãƒˆã€‚\\
- 戻り値ã¯ï¼Œç¬¬ï¼‘引数ã®å¼ã«ï¼‘ã¤ã§ã‚‚文字ãŒã‚ã‚‹ã¨æ–‡å­—列ã¨ãªã‚‹ã€‚ã™ã¹ã¦æ•°å­—(+,-, . ã‚’å«ã‚€ï¼‰ã®å ´åˆã¯
-16æ¡ä»¥ä¸‹ã§ã‚ã‚Œã°æ•°ï¼Œãれ以上ã®å ´åˆã¯æ–‡å­—列ã¨ãªã‚‹ã€‚ã¾ãŸï¼Œæˆ»ã‚Šå€¤ã¯ï¼Œå¤‰æ•° asname ã«ã‚‚代入ã•ã‚Œã‚‹ã€‚\\
-オプション㫠"Disp=no" ã‚’ã¤ã‘ã‚‹ã¨ï¼Œçµæžœã‚’コンソールã«è¡¨ç¤ºã—ãªã„。\\
-
-\end{description}
-\begin{flushright} \hyperlink{functionlist}{$\Rightarrow$関数一覧}\end{flushright}
-\newpage
-% FriCASã¨ã®é€£æºã€€==================================
-\subsection{FriCAS(Axiom)ã¨ã®é€£æº}
-
-\begin{description}
-
-\hypertarget{calcbyF}{}
-\item[関数] CalcbyF(name,コマンド,option)
-\item[機能] FriCASã®ã‚¹ã‚¯ãƒªãƒ—トを実行ã™ã‚‹
-\item[説明] 第2引数ã¯FriCASã§å®Ÿè¡Œã™ã‚‹ã‚³ãƒžãƒ³ãƒ‰ã€‚\\
- コマンドã¨å¼•æ•°ãƒªã‚¹ãƒˆã®ç¹°ã‚Šè¿”ã—ã‹ã‚‰ãªã‚‹ãƒªã‚¹ãƒˆï¼ˆä¾‹ãˆã°cmdL)を作ã£ã¦ï¼Œä¸€åº¦ã«å®Ÿè¡Œã™ã‚‹ã€‚\\
- 戻り値ã¯ãªã„。(未定義値) çµæžœã¯ï¼Œã‚³ãƒžãƒ³ãƒ‰ãƒªã‚¹ãƒˆã®æœ€å¾Œã«è¨˜è¿°ã—ãŸå¤‰æ•°ï¼ˆå¼•æ•°ã¯ç©ºãƒªã‚¹ãƒˆï¼‰ã®å€¤ãŒname ã§æŒ‡å®šã•ã‚ŒãŸå¤‰æ•°ã«ä»£å…¥ã•ã‚Œã‚‹ã€‚複数ã®çµæžœã‚’戻ã™ã¨ãã¯ï¼Œ:: ã§åŒºåˆ‡ã£ã¦è¨˜è¿°ã™ã‚‹ã¨ãƒªã‚¹ãƒˆã«ã—ã¦ä»£å…¥ã•ã‚Œã‚‹ã€‚\\
-
-\hypertarget{frfun}{}
-\item[関数] Frfun(name,å¼ï¼Œãƒªã‚¹ãƒˆï¼Œoption)
-\item[機能] FriCASã®é–¢æ•°ã‚’実行ã™ã‚‹
-\item[説明] 第2引数ã®ã€Œå¼ã€ã¯FriCASã®é–¢æ•°å。第3引数ã®ãƒªã‚¹ãƒˆã¯é–¢æ•°ã«æ¸¡ã™å¼•æ•°ã®ãƒªã‚¹ãƒˆã€‚\\
- 戻り値ã¯ï¼Œç¬¬ï¼‘引数ã®å¼ã«ï¼‘ã¤ã§ã‚‚文字ãŒã‚ã‚‹ã¨æ–‡å­—列ã¨ãªã‚‹ã€‚ã™ã¹ã¦æ•°å­—(+,-, . ã‚’å«ã‚€ï¼‰ã®å ´åˆã¯
-16æ¡ä»¥ä¸‹ã§ã‚ã‚Œã°æ•°ï¼Œãれ以上ã®å ´åˆã¯æ–‡å­—列ã¨ãªã‚‹ã€‚ã¾ãŸï¼Œæˆ»ã‚Šå€¤ã¯ï¼Œå¤‰æ•° friname ã«ã‚‚代入ã•ã‚Œã‚‹ã€‚\\
-オプション㫠"Disp=no" ã‚’ã¤ã‘ã‚‹ã¨ï¼Œçµæžœã‚’コンソールã«è¡¨ç¤ºã—ãªã„。\\
-
-\end{description}
-\begin{flushright} \hyperlink{functionlist}{$\Rightarrow$関数一覧}\end{flushright}
-
-\newpage
-% 表計算ソフトã¨ã®é€£æºã€€==================================
-\subsection{表計算ソフトã¨ã®é€£æº}
- 表計算ソフトã§ã¯ï¼Œè¤‡æ•°ã®ã‚»ãƒ«ã‚’é¸æŠžã—ã¦ã‚³ãƒ”ー(Windowsã§ã¯ Crtl+ C ,Macã§ã¯ Command+C)ã™ã‚‹ã¨ï¼Œã‚»ãƒ«ã®å†…容ã¯tab区切りã®ãƒ†ã‚­ã‚¹ãƒˆãƒ‡ãƒ¼ã‚¿ã¨ã—ã¦ã‚¯ãƒªãƒƒãƒ—ボードã«ã‚³ãƒ”ーã•ã‚Œã‚‹ã€‚ã“れをCindyscriptエディタã«ãƒšãƒ¼ã‚¹ãƒˆã™ã‚‹ã“ã¨ã§è¡¨è¨ˆç®—ソフトã®ãƒ‡ãƒ¼ã‚¿ã‚’KeTCindyã§åˆ©ç”¨ã§ãる。逆ã«ï¼ŒCindyscriptã®ã‚³ãƒ³ã‚½ãƒ¼ãƒ«ã¸ã®å‡ºåŠ›ã‚’表計算ソフトã®ã‚·ãƒ¼ãƒˆã«ã‚³ãƒ”ーã™ã‚‹ã“ã¨ã‚‚ã§ãる。
-
-\begin{description}
-\hypertarget{tab2list}{}
-\item[関数] Tab2list(str,option)
-\item[機能] str ã®å†…容をリストã«å¤‰æ›ã™ã‚‹
-\item[説明] tab区切りã«ãªã£ã¦ã„る文字列 str をリストã«å¤‰æ›ã™ã‚‹ã€‚\\
- optionã¯ï¼ŒNULLã®ã‚»ãƒ«ã®ç½®ãæ›ãˆã€‚リストã§è¡¨ã™ã€‚デフォルトã¯[0]。\\
-次ã®ã‚ˆã†ãªæ‰‹é †ã§è¡¨è¨ˆç®—ソフトã‹ã‚‰ãƒ‡ãƒ¼ã‚¿ã‚’KeTCindyã«å†™ã™ã“ã¨ãŒã§ãる。\\
- \\
-(1) 表計算ソフトã§ï¼Œé©å½“ãªç¯„囲を指定ã—クリップボードã«ã‚³ãƒ”ーã™ã‚‹ã€‚\\
- Windowsãªã‚‰ Ctrl+C,Macãªã‚‰ Command+C\\
- \\
-\includegraphics[bb=0 0 742 308 , width=8cm]{Fig/tab2list01.png}\\
- \\
-(2) Cindyscriptエディタã§ï¼Œé©å½“ãªæ–‡å­—変数を用æ„ã™ã‚‹ã€‚\\
- ãŸã¨ãˆã°ï¼Œdata="";\\
- \\
-\includegraphics[bb=0 0 858 298 , width=10cm]{Fig/tab2list02.png}\\
- \\
-(3) ã“ã“ã«ãƒšãƒ¼ã‚¹ãƒˆã™ã‚‹ã¨ï¼Œæ–‡å­—列ã«ã‚³ãƒ”ーã•ã‚Œã‚‹ã€‚\\
- もã—,å³ã®ã‚ˆã†ã«ãªã£ãŸã‚‰ï¼ˆè¡¨è¨ˆç®—ソフトã«ã‚ˆã‚Šã¾ã™ï¼‰å·¦ã®ã‚ˆã†ã«ï¼Œæœ€å¾Œã® "" ã®å‰ã§æ”¹è¡Œã—ã¦ãŠã。\\
- \\
-\includegraphics[bb=0 0 748 276 , width=6cm]{Fig/tab2list001.png} \includegraphics[bb=0 0 738 236 , width=6cm]{Fig/tab2list00.png}\\
-
- \\
-(4) ã“ã®æ–‡å­—変数 data ã«å¯¾ã—,Tab2list(data) を実行ã™ã‚‹ã¨ï¼Œè¡Œåˆ—を表ã™ãƒªã‚¹ãƒˆãŒè¿”ã•ã‚Œã‚‹ã€‚\\
- ã“れをé©å½“ãªå¤‰æ•°ã«ä»£å…¥ã—,作表コマンドã§è¡¨ã«ã™ã‚‹ãªã©ï¼Œç›®çš„ã«å¿œã˜ã¦åˆ©ç”¨ã™ã‚‹ã€‚\\
- 数値ã ã‘ãªã‚‰è¡Œåˆ—ã¨ã—ã¦è¨ˆç®—ã‚‚ã§ãる。\\
- \\
-\includegraphics[bb=0 0 1245 457 , width=10cm]{Fig/tab2list03.png}
-
-\hypertarget{dispmat}{}
-\item[関数] Dispmat(list)
-\item[機能] リストを行列ã®å½¢ã§tab区切りã«ã—ã¦ã‚³ãƒ³ã‚½ãƒ¼ãƒ«ã«è¡¨ç¤ºã™ã‚‹ã€‚
-\item[説明] 行列を表ã™ãƒªã‚¹ãƒˆ (ãŸã¨ãˆã° dlist) を引数ã¨ã—ã¦Dispmat(dlist) を実行ã™ã‚‹ã¨ï¼Œã‚³ãƒ³ã‚½ãƒ¼ãƒ«ã«è¡Œåˆ—åž‹ã§å†…容ãŒè¡¨ç¤ºã•ã‚Œã‚‹ã€‚\\
- 実際ã«ã¯TAB区切りã®æ–‡å­—列。(println ã¨ã—ãªãã¦ã‚‚直接コンソールã«è¡¨ç¤ºã•ã‚Œã‚‹ï¼‰\\
- ã“れを表計算ソフトã®ã‚·ãƒ¼ãƒˆã«ã‚³ãƒ”ーã™ã‚‹ã€‚\\
- \\
-\includegraphics[bb=0 0 855 395 , width=8cm]{Fig/tab2list04.png}\
-
-\end{description}
-\newpage
-% MeshLabã¨ã®é€£æºã€€==================================
-%\subsection{MeshLabã¨ã®é€£æº}
-
-% アニメーション ==================================
-\section{アニメーションPDF:KeTCindymv}
-\subsection{概è¦}
-アニメーションã®ã§ãã‚‹PDFを作る。
-
-Cinderellaã®ä½œå›³æ©Ÿèƒ½ã¨Cindyscriptを用ã„ã¦ã‚¢ãƒ‹ãƒ¡ãƒ¼ã‚·ãƒ§ãƒ³ãŒã§ãã‚‹ãŒï¼ŒPDFã«ã™ã‚‹ã“ã¨ã§CinderellaãŒãªãã¦ã‚‚PDFビュアーãŒã‚ã‚Œã°ã‚¢ãƒ‹ãƒ¡ãƒ¼ã‚·ãƒ§ãƒ³ã‚’実行ã§ãã‚‹ã®ã§ï¼Œãƒ—レゼンテーションや教æã®å—ã‘渡ã—ãªã©ã«ä¾¿åˆ©ã§ã‚る。
-
-KeTCindymvã®ç”»é¢ã¯æ¬¡ã®ã‚ˆã†ã«ãªã£ã¦ã„る。(templatemv.cdy)\\
- \\
-  \includegraphics[bb=0 0 1594 710 , width=12cm]{Figmv/mvgaiyou01.png}
-
-ç”»é¢ä¸Šæ–¹ã®ãƒœã‚¿ãƒ³ã«ã¯ï¼Œæ¬¡ã®ã‚ˆã†ãªã‚¹ã‚¯ãƒªãƒ—トãŒå‰²ã‚Šå½“ã¦ã‚‰ã‚Œã¦ã„ã‚‹ã®ã§ï¼Œãƒœã‚¿ãƒ³ã‚’自作ã™ã‚‹ã“ã¨ã‚‚ã§ãる。
-
-\begin{tabbing}
- 12345678978\=1234567897890123\=\kill
- Texview \>: Viewtex(); \>ç¾åœ¨ã®ç”»é¢ã®PDFデータを作る\\
- TexMv  \>: Texmovie(); \>アニメーションPDFデータを作る\\
- Texpara \>: Texpara(); \>フレームã«åˆ†å‰²ã—ãŸPDFデータを作る\\
- Exekc  \>: kc(); \>ãƒãƒƒãƒãƒ•ã‚¡ã‚¤ãƒ«ã‚’実行ã™ã‚‹
-\end{tabbing}
-
-アニメーションã®ä½œæˆã¯ï¼Œãƒ•ãƒ¬ãƒ¼ãƒ ã‚’定義ã™ã‚‹é–¢æ•°ã‚’作æˆã—,Moviedata() 関数を実行ã™ã‚‹ã€‚実行後,TexMv,Exekc ã®ãƒœã‚¿ãƒ³ã‚’é †ã«æŠ¼ã™ã“ã¨ã§ï¼ŒFhead+"moviefigs.tex" 㨠Fhead+"moviemain.tex",Fhead+"moviemain.pdf" ãŒç”Ÿæˆã•ã‚Œã¦è¡¨ç¤ºã•ã‚Œã‚‹ã€‚ãŸã¨ãˆã°ï¼ŒFhead ㌠"abc" ã®å ´åˆï¼ŒTeX ã®æ–‡æ›¸ã«ã¯\\
-     \verb|\input{abcmoviefigs.tex}|\\
-ã§å‹•ç”»ã‚’挿入ã™ã‚‹ã“ã¨ãŒã§ãる。
-
-ãŸã ã—,動画ã®ã§ãã‚‹PDFを作æˆã™ã‚‹ã«ã¯ï¼Œãƒ‰ã‚­ãƒ¥ãƒ¡ãƒ³ãƒˆã‚¯ãƒ©ã‚¹ã¨ä½¿ç”¨ãƒ‘ッケージã«ã¤ã„ã¦æ³¨æ„ãŒå¿…è¦ã§ã‚る。
-
-ドキュメントクラスã¯ï¼Œarticle ã¾ãŸã¯ jarticle ã¨ã™ã‚‹ã€‚jsarticle ã¯ä½¿ãˆãªã„。
-
-パッケージ㯠animate ã« dvipdfmx オプションをã¤ã‘る。\\
-      \verb|\usepackage[dvipdfmx]{animate}|
-
-ã¾ãŸï¼Œã‚¢ãƒ‹ãƒ¡ãƒ¼ã‚·ãƒ§ãƒ³PDFã§ã‚¢ãƒ‹ãƒ¡ãƒ¼ã‚·ãƒ§ãƒ³ã‚’è¡Œã†ã«ã¯Adobe Acrobat Reader ãªã©ï¼Œã‚¢ãƒ‹ãƒ¡ãƒ¼ã‚·ãƒ§ãƒ³ã«å¯¾å¿œã—ãŸPDFリーダーãŒå¿…è¦ã§ã‚る。Windowsã®SumatraPDF,Mac㮠プレビューã§ã¯å‹•ã‹ãªã„。\\
-
-次ã«ï¼ŒTexpara,Exekc ã®ãƒœã‚¿ãƒ³ã‚’é †ã«æŠ¼ã™ã“ã¨ã§ï¼Œãƒ•ãƒ¬ãƒ¼ãƒ ã«åˆ†å‰²ã—㟠Fhead+"parafigs.tex" 㨠Fhead+"paramain.tex" ,Fhead+"paramain.pdf" ãŒç”Ÿæˆã•ã‚Œã¦è¡¨ç¤ºã•ã‚Œã‚‹ã€‚ã“ã®å›³ã‚’利用ã™ã‚‹ã«ã¯ãƒ‘ッケージã®æŒ‡å®šãŒã‚„ã‚„é¢å€’ã§ã‚る。 Fhead+"mvparamain.tex" ã‚’å‚ç…§ã•ã‚ŒãŸã„。 \\
-
-ç”»é¢ä¸‹æ–¹ã®ã‚¹ãƒ©ã‚¤ãƒ€ã«ã‚ˆã‚Šã‚¢ãƒ‹ãƒ¡ãƒ¼ã‚·ãƒ§ãƒ³ã®é€”中図をæãã“ã¨ãŒã§ãる。Texview 㨠Exekc ボタンã«ã‚ˆã‚Šãã®å›³ã®ãƒ•ã‚¡ã‚¤ãƒ«ãŒä½œæˆã•ã‚Œã‚‹ã€‚
-
-
-\subsection{設定}
-KeTCindymvã§ã¯ï¼ŒKeTCindyã¨è‹¥å¹²ç•°ãªã‚‹è¨­å®šãŒå¿…è¦ã§ã‚る。
-
-ã¾ãšï¼ŒInitialization スロットã§ã¯ï¼ŒKeTCindy ã§\\
-  \verb|Shellfile="";|\\
-ã«ãªã£ã¦ã„ã‚‹ã®ã‚’\\
-  \verb| Shellfile="mv";|\\
-ã¨ã™ã‚‹ã€‚
-
-次ã«ï¼ŒDraw スロットã§ã¯ï¼Œæ¬¡ã®ã‚ˆã†ã« \verb|Ketinit();| ã«åŠ ãˆï¼Œ\verb|Ketinitmv();| ãŒå¿…è¦ã§ã‚る。ã¾ãŸï¼Œç”»é¢è¡¨ç¤ºã®ãŸã‚ã«ï¼Œ\verb|Windispg();| ã®ã‹ã‚ã‚Šã« \verb|Mvdispg();| を用ã„る。
-\begin{verbatim}
- Fhead="templatemv";
- Texparent="";
- Ketinit();
- Ketinitmv();
-
-  ã“ã“ã«ã‚¹ã‚¯ãƒªãƒ—トを書ã
-
- Mvdispg();
-\end{verbatim}
-ãªãŠï¼Œã²ãªãŒãŸã® templatemv.cdy ã§ã¯ã“ã®è¨­å®šãŒã™ã§ã«ã—ã¦ã‚る。
-
-\newpage
-\subsection{æç”»}
-\begin{description}
-
-\hypertarget{moviedata}{}
-\item[関数] Moviedata(str1,str2,options)
-\item[機能] アニメーションデータを作る
-\item[説明] str1 ã¯ã‚¢ãƒ‹ãƒ¡ãƒ¼ã‚·ãƒ§ãƒ³ã‚’定義ã™ã‚‹é–¢æ•°åを文字列ã¨ã™ã‚‹ã€‚str2 ã¯å®šç¾©åŸŸã€‚\\
- optionsã¯ï¼ŒCut 㨠Div \\
- Cut : 1秒ã®ãƒ•ãƒ¬ãƒ¼ãƒ æ•°ã€‚åˆæœŸå€¤ã¯20。\\
- Civ : 全体ã®ãƒ•ãƒ¬ãƒ¼ãƒ æ•°ã€‚åˆæœŸå€¤ã¯80。\\
- ã—ãŸãŒã£ã¦ï¼ŒåˆæœŸå€¤ã§ã¯4秒間ã®ã‚¢ãƒ‹ãƒ¡ãƒ¼ã‚·ãƒ§ãƒ³ã¨ãªã‚‹ã€‚\\
- \\
-ã€ä¾‹ã€‘定円上を動ã点Pã¨ï¼Œå®šç‚¹Aã‚’çµã¶ç·šåˆ†ã®ä¸­ç‚¹ã‚’Qã¨ã—ã¦å‹•ãを見る。\\
-ã¾ãšï¼Œå®šå††ã‚’,原点中心ã€åŠå¾„ï¼’ã¨ã—ã¦æã„ã¦ãŠã。\\
-アニメーションを定義ã™ã‚‹é–¢æ•°ã¯ï¼Œæ™‚é–“ã‚’ $t$ ã¨ã™ã‚Œã°ï¼Œæ™‚刻 $t$ ã«ãŠã‘る図(動ãã‚‚ã®ã ã‘)を定義ã™ã‚‹ã€‚時刻ã¯å˜ãªã‚‹åª’介変数ã§ã‚ã‚‹ã®ã§ï¼Œ$t$ ã§ãªã $s$ ãªã©ã§ã‚‚よã„。
-\begin{verbatim}
- Mf(t):=(
-  pt=2*[cos(t),sin(t)];
-  Listplot("2",[[4,0],pt]);
-  Pointdata("2",mid(pt,[4,0]));
-  Letter([[4,0],"s","A",pt,"en","P",mid(pt,[4,0]),"ne","Q"]);
- );
-\end{verbatim}
-ã“ã“ã§ï¼Œ\verb|Mf(t)| ã®ä¸­ã§ä½¿ã£ã¦ã„るユーザー定義関数\verb|mid()| ã¯ï¼Œç«¯ç‚¹ã‚’引数ã¨ã—ã¦ç·šåˆ†ã®ä¸­ç‚¹ã‚’è¿”ã™ã‚‚ã®ã§ï¼Œ\\
-  \verb|mid(p1,p2):=(p1+p2)/2;|\\
-ã¨ã—ã¦å®šç¾©ã—ã¦ãŠã。\\
-ã¾ãŸï¼Œç‚¹ã®å¤§ãã•ã‚’é©å®œè¨­å®šã—ã¦ãŠã。\\
-以上ã®æº–å‚™ã®å¾Œï¼Œ\\
-  \verb|Moviedata("Mf(t)","t=[0,2*pi]");|\\
-を実行ã™ã‚‹ã€‚\\
-ã“ã“ã§ã¯ï¼Œè§’度を媒介変数ã¨ã—ã¦ã„ã‚‹ã®ã§ï¼Œæ™‚é–“ã®$t$ ã§ãªã$s$ ã¨ã—ã¦\\
-  \verb|Moviedata("Mf(s)","s=[0,2*pi]");|\\
-ã¨ã—ã¦ã‚‚よã„。\\
-次ã®ã‚ˆã†ã«ã‚ªãƒ—ションを指定ã™ã‚‹ã¨ï¼Œ5秒間ã®ã‚¢ãƒ‹ãƒ¡ãƒ¼ã‚·ãƒ§ãƒ³ã¨ãªã‚‹ã€‚\\
-  \verb|Moviedata("Mf(s)","s=[0,2*pi]",["Div=50","Cut=10"]);|\\
-\verb|["Div=150","Cut=30"]|ã¨ã™ã‚‹ã¨ï¼Œã‚„ã¯ã‚Š5秒間ã®ã‚¢ãƒ‹ãƒ¡ãƒ¼ã‚·ãƒ§ãƒ³ã¨ãªã‚‹ãŒï¼Œ1秒間ã®ãƒ•ãƒ¬ãƒ¼ãƒ æ•°ãŒå¤šã„ãŸã‚ãªã‚らã‹ãªå‹•ãã¨ãªã‚‹ã€‚ビデオã®ãƒ•ãƒ¬ãƒ¼ãƒ ãƒ¬ãƒ¼ãƒˆã§ã‚る。ãŸã ã—,ファイルサイズã¯ç´„3å€ã¨ãªã‚‹ã€‚\\
-Cinderellaã®ç”»é¢ã¯æ¬¡ã®ã‚ˆã†ã«ãªã‚‹ã€‚\\
- \\
-  \includegraphics[bb=0 0 1054 706 , width=8cm]{Figmv/moviedata01.png}\\
- \\
-TexMvボタン ã¾ãŸã¯ TexParaボタンを押ã™ã¨ç”»é¢ä¸Šã§ã‚‚アニメーションãŒå®Ÿè¡Œã•ã‚Œã‚‹ã€‚ãã®å¾Œ Exekc ボタンを押ã™ã¨ãƒ•ã‚¡ã‚¤ãƒ«ãŒä½œæˆã•ã‚Œã‚‹ã€‚
-
-ã“ã®å›³ã§ã¯ï¼Œç‚¹ãŒæ˜Žç¤ºã•ã‚Œã‚‹ã®ã¯ Q ã ã‘ã§ã‚る。A,Pã¨ã‚‚点を明示ã™ã‚‹å ´åˆã®ã‚¹ã‚¯ãƒªãƒ—トã®å…¨ä½“を示ã—ã¦ãŠã。
-\begin{verbatim}
- Fhead="mid";
- Texparent="";
- Ketinit();
- Ketinitmv();
- mid(p1,p2):=(p1+p2)/2;
- Circledata("1",[[0,0],[2,0]]);
- Ptsize(4);
- Pointdata("1",[4,0]);
- Mf(t):=(
-  pt=2*[cos(t),sin(t)];
-  Listplot("2",[[4,0],pt]);
-  Pointdata("2",pt);
-  Pointdata("3",mid(pt,[4,0]));
-  Letter([[4,0],"s","A",pt,"en","P",mid(pt,[4,0]),"ne","Q"]);
- );
- Moviedata("Mf(s)","s=[0,2*pi]",["Div=30","Cut=10"]);
- Mvdispg();
-\end{verbatim}
-\begin{flushright} \hyperlink{functionlist3d}{$\Rightarrow$関数一覧}\end{flushright}
-
-\end{description}
-
-\newpage
-
-
-%== 3D ===============
-\section{\ketcindy 3D}
-\subsection{概è¦}
-\ketcindy 3Dã®ç”»é¢ã¯æ¬¡ã®ã‚ˆã†ã«æ§‹æˆã•ã‚Œã‚‹ã€‚
-
-Cinderellaã®æç”»é¢ã«ï¼Œç™½ã®çŸ©å½¢ã§å›²ã‚“ã é ˜åŸŸãŒï¼’ã¤ã§ãる。NE,SWを対角ã¨ã™ã‚‹å·¦å´ã®é ˜åŸŸã‚’主画é¢ï¼Œå³å´ã®é ˜åŸŸã‚’副画é¢ã¨ã„ã†ã€‚\\
-
-      \includegraphics[bb=0 0 1776 998 , width=8cm]{Fig3d/3dstart.png}\\
-
-主画é¢ã¯å¹³é¢ã®å ´åˆã¨åŒæ§˜ï¼ŒTeXã«å‡ºåŠ›ã•ã‚Œã‚‹ç¯„囲を示ã—,NE,SWã®ï¼’点をドラッグã™ã‚‹ã“ã¨ã«ã‚ˆã‚Šå¤‰æ›´ã§ãる。
-
-副画é¢ã¯ï¼ŒStart3d() 関数ã«ã‚ˆã‚Šä½œæˆã•ã‚Œã‚‹ã€‚座標軸ã¯ï¼ŒXyzax3data() 関数ã«ã‚ˆã£ã¦æãã“ã¨ãŒã§ãる。主画é¢ã®ä¸‹æ–¹ã®ã‚¹ãƒ©ã‚¤ãƒ€ã§è¦–点ãŒç§»å‹•ã§ã,主画é¢ä¸Šã§ã¯è»¸ãŒå›žè»¢ã™ã‚‹ã€‚副画é¢ã¯ï¼Œxyå¹³é¢ä¸Šã«è¦–点を置ã„ãŸã‚‚ã®ã¨è€ƒãˆã‚Œã°ã‚ˆã„。
-
-主画é¢ä¸Šã«Cinderellaã®ä½œå›³ãƒ„ールã§ç‚¹ã‚„線分を作図ã™ã‚‹ã¨ï¼ŒStart3d() 関数ã«ã‚ˆã‚Šå‰¯ç”»é¢ã«å¯¾å¿œã™ã‚‹ç‚¹ãŒä½œå›³ã•ã‚Œã‚‹ã€‚主画é¢ä¸Šã®ç‚¹ã‚’ドラッグã™ã‚‹ã¨x,y座標を変更ã§ã,副画é¢ä¸Šã®ç‚¹ã‚’ドラッグã™ã‚‹ã¨z座標を変更ã§ãる。空間内ã®ç‚¹ã¯ï¼ŒPutpoint3d()関数ã«ã‚ˆã£ã¦åº§æ¨™ã‚’指定ã—ã¦ä½œæˆã™ã‚‹ã“ã¨ã‚‚ã§ãる。次ã®ã‚ˆã†ãªå›³ã¯Cinderellaã®ä½œå›³ãƒ„ールã ã‘ã§ã‚‚作るã“ã¨ãŒã§ãã‚‹ã—,Putpoint3d()関数を用ã„ã¦ã‚‚作るã“ã¨ãŒã§ãる。\\
-
-  \includegraphics[bb=0 0 1892 840 , width=10cm]{Fig3d/3dscreen.png}\\
-
-主画é¢ã¨å‰¯ç”»é¢ã®å¯¾å¿œã™ã‚‹ç‚¹ã‚’ドラッグã™ã‚‹ã“ã¨ã«ã‚ˆã‚Šï¼Œã‚¤ãƒ³ã‚¿ãƒ©ã‚¯ãƒ†ã‚£ãƒ–ã«å›³å½¢ã‚’æãã“ã¨ãŒã§ãã‚‹ãŒã€å®Ÿéš›ã«ã¯æ画関数を用ã„ã¦å›³å½¢ã‚’æã,スライダã§è¦–点を変ãˆã¦è¦‹ã‚„ã™ã„図をTeXã«å‡ºåŠ›ã™ã‚‹ã“ã¨ã«ãªã‚‹ã ã‚ã†ã€‚
-
-KeTCindy3Dã§ã¯ï¼Œç‚¹ãƒ»ç›´ç·šãƒ»æ›²ç·šãƒ»é¢ã®æ画をæ画関数を用ã„ã¦è¡Œã†ã“ã¨ãŒã§ãる。線やé¢ã«ã¤ã„ã¦ã¯é™°ç·šå‡¦ç†ã‚’è¡Œã„,立体的ãªå›³ã‚’作æˆã™ã‚‹ã“ã¨ãŒã§ãる。ã—ã‹ã—,陰線処ç†ã¯å‡¦ç†ã«ã‹ãªã‚Šã®æ™‚é–“ãŒã‹ã‹ã‚‹ã®ã§ï¼ŒCindyscriptã§ã¯ãªãScilabã§è¡Œã£ã¦ã„ã‚‹ãŒï¼Œãã‚Œã§ã‚‚相当時間ãŒã‹ã‹ã‚‹ã“ã¨ã‚’覚悟ã—ãªã‘ã‚Œã°ãªã‚‰ãªã„。Scilabã§ã®è¨ˆç®—ã¯ï¼Œãƒãƒƒãƒãƒ•ã‚¡ã‚¤ãƒ«/シェルファイルã§è¡Œã£ã¦ã„ã‚‹ãŒï¼ŒCindyscriptã§ã¯ãã®è¨ˆç®—çµæžœãŒå‡ºã‚‹ã®ã‚’å¾…ã¤ãŸã‚一時的ã«åå¿œãŒãªããªã‚‹ã€‚ã—ãŸãŒã£ã¦ï¼Œåå¿œãŒãªããªã£ã¦ã‚‚ãƒãƒ³ã‚°ã‚¢ãƒƒãƒ—ã§ã¯ãªã„ã®ã§ï¼ŒCinderellaを強制終了ã—ãªã„よã†ã«ã€‚
-
-一例を示ã™ã¨ï¼Œçƒé¢ã‚’メッシュ入りã§åº§æ¨™è»¸ã¨ã¨ã‚‚ã«é™°ç·šå‡¦ç†ã—ã¦æã„ãŸå ´åˆï¼Œæ¬¡ã®ã‚ˆã†ãªå›³ãŒç”»é¢ã«è¡¨ç¤ºã•ã‚Œã‚‹ã¾ã§ã®æ™‚é–“ã¯ï¼ŒMacBookPro13' (Late 2013) Core i7 2.8GHz 8GB (OSX 10.11.6) ã®å ´åˆã§ç´„124秒ã§ã‚ã£ãŸã€‚スクリプト㯠\hyperlink{wireparadata}{Wireparadata() } ã®ä¾‹ã‚’å‚ç…§ã•ã‚ŒãŸã„。\\
-            \input{Fig3d/wirepara4} 
-
-\newpage
-\subsection{設定・定義}
-
-\begin{description}
-
-\hypertarget{ketinit3d}{}
-\item[関数] Ketinit3d()
-\item[機能] KeTCindy3Dã®ä½¿ç”¨å®£è¨€
-\item[説明] Cinderellaã®ç”»é¢ã‚’3Dモードã«ã™ã‚‹ã€‚\\
- Cinderellaã®æç”»é¢ã«ï¼Œè¦–点移動ã®ãŸã‚ã®ï¼’ã¤ã®ã‚¹ãƒ©ã‚¤ãƒ€ã‚’作る。スライダã¯åˆæœŸä½ç½®ãŒå·¦ç«¯ã«ãªã‚‹ã€‚\\
- KeTCindyã®ä½¿ç”¨å®£è¨€ Ketinit() ã¨ã¨ã‚‚ã«ç”¨ã„ã‚‹ãŒï¼Œã“ã®é–¢æ•°ã¯ä¸€åº¦ã ã‘実行ã™ã‚Œã°ã‚ˆã„ã®ã§ï¼Œé€šå¸¸ã¯ Initialization スロットã«ç½®ã。Ketinit() も,平é¢ã®å ´åˆã¨ç•°ãªã‚Š Initialization スロットã«ç½®ã‘ã°ã‚ˆã„。ãŸã ã—,平é¢ã®é–¢æ•°ã‚’多用ã™ã‚‹å ´åˆã¯ï¼ŒKetinit() 㯠Drawスロットã«æ›¸ã„ã¦ãŠã。場åˆã«ã‚ˆã£ã¦å¤‰æ•°ã®åˆæœŸåŒ–ãªã©ãŒå¿…è¦ãªãŸã‚ã§ã‚る。KeTCindy3Dã«ãŠã‘る変数ã®åˆæœŸåŒ–ãªã©ã¯ï¼ŒStart3d()ã§è¡Œã‚れる。\\
- \\
-
-\hypertarget{start3d}{}
-\item[関数] Start3d()
-\item[機能] 3Dã®ç”»é¢è¨­å®šã¨ç©ºé–“点ã®èªè­˜
-\item[説明] 副画é¢ã‚’作り,幾何点を3Dã®ç‚¹ã¨ã—ã¦èªè­˜ã™ã‚‹ã€‚ã“ã®é–¢æ•°ã¯å¿…é ˆã§ï¼ŒDrawスロットã®ã¯ã˜ã‚ã®æ–¹ã«ç½®ã。\\
- Cinderellaã®ä½œå›³ãƒ„ールã§ï¼Œç‚¹ãƒ»ç·šåˆ†ã‚’作図ã™ã‚‹ã¨ï¼Œå†…部関数㮠Ptseg3data() ã«ã‚ˆã£ã¦ãれらを空間ã®ç‚¹ã¨ã—ã¦èªè­˜ã—,副画é¢ä¸Šã«å¯¾å¿œã™ã‚‹ç‚¹ã‚’ã¨ã‚‹ã€‚ãŸã ã—,始ã‚ã¯z座標をï¼ã¨ã™ã‚‹ã€‚点ã®åå‰ãŒAã§ã‚ã‚Œã°ï¼Œå‰¯ç”»é¢ä¸Šã®ç‚¹ã¯Azã¨ãªã‚‹ã€‚点をãƒã‚¤ãƒ³ãƒˆã—ã¦é¸æŠžã™ã‚‹ã¨å‰¯ç”»é¢ã®ä¸Šã«åº§æ¨™ãŒè¡¨ç¤ºã•ã‚Œã‚‹ã€‚\\
- 作図ã—ãŸç‚¹ã®å称をインスペクタã§å¤‰æ›´ã—ãŸå ´åˆï¼Œæ–°ã—ã„å称ã«å¯¾å¿œã™ã‚‹ç‚¹ã‚’副画é¢ä¸Šã«ä½œæˆã™ã‚‹ãŒï¼Œä»¥å‰ã®ç‚¹ã¯æ¶ˆãˆãªã„ã®ã§è¦æ³¨æ„。ãŸã¨ãˆã°ï¼Œç‚¹Aを作図ã—ãŸå¾Œï¼Œä¸»ç”»é¢ä¸Šã®ç‚¹Aをインスペクタã§ç‚¹Dã«å¤‰ãˆãŸå ´åˆï¼Œå‰¯ç”»é¢ä¸Šã«æ–°ãŸã«DzãŒã§ãã‚‹ãŒï¼Œä»¥å‰ã®Azも残る。残ã£ãŸAzã¯ï¼Œé¸æŠžã—ã¦ãŠã„ã¦ä½œå›³ãƒ„ールã®æ¶ˆåŽ»ãƒœã‚¿ãƒ³ \includegraphics[bb=0 0 27 21 , width=0.6cm]{Cindytool/delete.png}ã§æ¶ˆã™ã“ã¨ãŒã§ãる。\\
-\begin{flushright} \hyperlink{functionlist3d}{$\Rightarrow$関数一覧}\end{flushright}
-
-\end{description}
-\newpage
-\subsection{æç”»}
-\begin{description}
-
-\hypertarget{bezier3d}{}
-\item[関数] Bezier3d(name,リスト1,リスト2)
-\item[機能] 空間ベジェ曲線をæã
-\item[説明] 引数ã¯ãƒªã‚¹ãƒˆ1ãŒç«¯ç‚¹ãƒªã‚¹ãƒˆï¼Œãƒªã‚¹ãƒˆ2ãŒåˆ¶å¾¡ç‚¹ãƒªã‚¹ãƒˆ\\
- 1組ã®ç«¯ç‚¹ã«ã¤ã,2ã¤ã®åˆ¶å¾¡ç‚¹ã‚’使ã†ã€‚\\
- \\
-ã€ä¾‹ã€‘ã„ãã¤ã‹ã®ç‚¹ã‚’ベジェ曲線ã§çµã¶\\
- 端点A,Bã«å¯¾ã—,制御点をD,Eã¨ã™ã‚‹ã€‚\\
-  \verb|Bezier3d("1",["A","B"],["D","E"]);|  \\
- 端点A,Bã«å¯¾ã—,制御点をD,Eã¨ã—,端点BCã«å¯¾ã—制御点をE,Fã¨ã™ã‚‹ã€‚\\
-  \verb|Bezier3d("1",["A","B","C"],["D","E","E","F"]);|\\
- 端点A,Bã«å¯¾ã—,制御点をD,Eã¨ã—,端点BCã«å¯¾ã—制御点をF,Gã¨ã™ã‚‹ã€‚(図)\\
-  \verb|Bezier3d("1",["A","B","C"],["D","E","F","G"]);|\\
-  \input{Fig3d/bezier3d1}
-
-\begin{flushright} \hyperlink{functionlist3d}{$\Rightarrow$関数一覧}\end{flushright}
-
-\hypertarget{changstyle3d}{}
-\item[関数] Changstyle3d(リスト,リスト)
-\item[機能] 3Dプロットデータã®å±žæ€§ã‚’変更
-\item[説明] 第1引数ã®ãƒ—ロットデータã®å±žæ€§ã‚’,第2引数ã«å¤‰æ›´ã™ã‚‹ã€‚\\
-ãŸã¨ãˆã°ï¼Œè£œåŠ©ç·šãªã©ï¼Œç”»é¢ã«ã¯æã„ã¦ã‚‚TeXã«æ›¸ã出ã•ãªã„ç·šã‚’æç”»ã™ã‚‹ã¨ãã¯ï¼Œoptionã«["notex"] ã‚’ã¤ã‘ã‚‹ãŒï¼Œã“れをã‚ã¨ã‹ã‚‰ä»˜åŠ ã—ãŸã„å ´åˆã«åˆ©ç”¨ã™ã‚‹ã€‚プロットデータã¯ãƒªã‚¹ãƒˆã«ã§ãã‚‹ã®ã§ï¼Œè¤‡æ•°ã®ãƒ—ロットデータã®å±žæ€§ã‚’ã¾ã¨ã‚ã¦å¤‰æ›´ã™ã‚‹ã“ã¨ãŒã§ãã¦ä¾¿åˆ©ã§ã‚る。\\
- \\
-ã€ä¾‹ã€‘ï¼”ã¤ã®ç‚¹ã§å››é¢ä½“ã®è¾ºã‚’æã,ã¾ã¨ã‚㦠notex ã«ã™ã‚‹ã€‚点A,B,C,Dã¯ã¨ã£ã¦ã‚ã‚‹ã‚‚ã®ã¨ã™ã‚‹ã€‚
-\begin{verbatim}
- Spaceline("1",[A,B]);
- Spaceline("2",[A,C]);
- Spaceline("3",[B,C]);
- Spaceline("4",[A,D]);
- Spaceline("5",[B,D]);
- Spaceline("6",[C,D]);
- edges=apply(1..6,"sl3d"+text(#));
- Changestyle3d(edges,["notex"]);
-\end{verbatim}
-
-\hypertarget{concatobj}{}  
-\item[関数] Concatobj(リスト,option)
-\item[機能] ã„ãã¤ã‹ã®objデータをçµåˆã™ã‚‹
-\item[説明] 多é¢ä½“ã®å„é¢ã®é ‚点リストã‹ã‚‰é¢ãƒ‡ãƒ¼ã‚¿ï¼ˆé ‚点リストã¨é¢ãƒªã‚¹ãƒˆï¼‰ã‚’作る。\\
- \\
-ã€ä¾‹ã€‘4点A,B,C,Dを頂点ã¨ã™ã‚‹å››é¢ä½“ã‚’æã。\\
- 四é¢ä½“ã¯ï¼”ã¤ã®é¢ã‹ã‚‰ãªã£ã¦ã„る。頂点をA,B,C,Dã¨ã™ã‚‹ã¨ï¼Œï¼”ã¤ã®é¢ã¯\\
-       △ABC,△ABD,△ACD,△BCD\\
- ã§ã‚る。\\
-    \input{Fig3d/concatobj}\\
- ãã“ã§\\
-  \verb|Concatobj([[A,B,C],[A,B,D],[A,C,D],[B,C,D]]);|\\
- ã¨ã™ã‚‹ã¨ï¼Œé¢ãƒ‡ãƒ¼ã‚¿ã€€[[A,B,C,D],[[1,2,3],[1,2,4],[1,3,4],[2,3,4]]]  ãŒè¿”ã•ã‚Œã‚‹ã€‚\\
- ã“ã®é¢ãƒ‡ãƒ¼ã‚¿ã‚’使ã£ã¦å››é¢ä½“ã‚’æãã“ã¨ãŒã§ãる。コード例ã¯ï¼Œ\hyperlink{vertexedgeface}{VertexEdgeFace()} ã‚’å‚ç…§ã®ã“ã¨ã€‚
-
-\begin{flushright} \hyperlink{functionlist3d}{$\Rightarrow$関数一覧}\end{flushright}
-
-\hypertarget{crvsfparadata}{}
-\item[関数] Crvsfparadata(name,PD1,PD2,å¼,options1,options2)
-\item[機能] 曲線ã®æ›²é¢ã«ã‚ˆã‚‹é™°ç·šå‡¦ç†
-\item[説明] 曲線PD1を表示ã™ã‚‹ã«ã‚ãŸã‚Šï¼Œæ›²é¢PD2ã«ã‚ˆã£ã¦éš ã‚Œã‚‹éƒ¨åˆ†ã‚’éžè¡¨ç¤ºã«ã™ã‚‹ã€‚\\
-通常ã¯æ›²é¢PD2も表示ã™ã‚‹ã®ã§ï¼ŒSfbdparadata() ã‚‚åŒæ™‚ã«ç”¨ã„ã‚‹ã“ã¨ã«ãªã‚‹ã€‚曲é¢ã‚’表示ã—ãªã‘ã‚Œã°ï¼Œæ›²ç·šã ã‘ãŒé™°ç·šå‡¦ç†ã•ã‚ŒãŸçŠ¶æ…‹ã§è¡¨ç¤ºã•ã‚Œã‚‹ã€‚\\
-第4引数ã®å¼ã¯ï¼ŒPD2ã‚’æããŸã‚ã®å¼ã€‚\\
-options1 ã«ã¯"r","m", "Wait=n" ãŒæŒ‡å®šã§ãる。Wait ã®åˆæœŸå€¤ã¯20\\
- "r","m"ã«é–¢ã—ã¦ã¯ï¼Œã‚ªãƒ—ションãªã—ã¾ãŸã¯ï¼Œâ€â€ ã®ã¨ã\\
-  i) データファイルãŒãªã‘ã‚Œã°ï¼Œæ–°ã—ã作る\\
-  ii) データファイルãŒæ—¢ã«ã‚ã‚Œã°ãれを読ã¿è¾¼ã‚€\\
- "m" ã®ã¨ã,強制的ã«ãƒ‡ãƒ¼ã‚¿ãƒ•ã‚¡ã‚¤ãƒ«ã‚’作り直ã™ã€‚\\
- "r" ã®ã¨ã,ã™ã§ã«ã‚るデータファイルを読ã¿è¾¼ã‚€ã€‚\\
-options2 ã«ã¯ 軸ã®é™°ç·šã®è¡¨ç¤ºã«ã¤ã„㦠"nodisp" ã¾ãŸã¯ç·šç¨®ãŒæŒ‡å®šã§ãる。デフォルト㯠"nodisp"。\\
-options2ã ã‘を指定ã—ãŸã„å ´åˆã¯ï¼Œoptions1 を空リスト [ ] ã«ã™ã‚‹ã€‚\\
- \\
-ã€ä¾‹ã€‘回転放物é¢ã¨åº§æ¨™è»¸ï¼Œç·šåˆ†ã‚’æã。\\
-デフォルトã§ã¯é™°ç·šã¯éžè¡¨ç¤ºã§ã‚る。(下図左)
-\begin{verbatim}
- Xyzax3data("","x=[-5,5]","y=[-5,5]","z=[-5,5]");
- Putpoint3d(["A",[0,-3,0],"B",[0,3,3]],"fix");
- Spaceline([A,B]);
- fd=["z=4-(x^2+y^2)","x=R*cos(T)","y=R*sin(T)","R=[0,2]","T=[0,2*pi]","e"];
- Sfbdparadata("1",fd);
- Crvsfparadata("1","AB3d","sfbd3d1",fd);
- Crvsfparadata("2","ax3d","sfbd3d1",fd);
-\end{verbatim}
-options2ã«ç·šç¨®æŒ‡å®š ["do"] ã‚’ã¤ã‘ã‚‹ã¨ï¼Œé™°ç·šã¯ç‚¹ç·šã§è¡¨ç¤ºã•ã‚Œã‚‹ã€‚(下図å³ï¼‰
-\begin{verbatim}
-Sfbdparadata("1",fd,[],["do"]);
-Crvsfparadata("1","AB3d","sfbd3d1",fd,[],["do"]);
-Crvsfparadata("2","ax3d","sfbd3d1",fd,[],["do"]);
-\end{verbatim}
-
-    \input{Fig3d/crvsfparadata1}   \input{Fig3d/crvsfparadata2}
- \\
-\begin{flushright} \hyperlink{functionlist3d}{$\Rightarrow$関数一覧}\end{flushright}
-
-\hypertarget{datalist}{}  
-\item[関数] Datalist2d()
-\item[機能] 画é¢ä¸Šã®ãƒ—ロットデータã®ãƒªã‚¹ãƒˆã‚’å–å¾—ã™ã‚‹
-\item[説明] 画é¢ã«æã‹ã‚Œã¦ã„ã‚‹ã™ã¹ã¦ã®ãƒ—ロットデータã®ãƒªã‚¹ãƒˆã‚’è¿”ã™ã€‚\\
-空間図形ã¯ï¼ŒCinderellaã®ç”»é¢ä¸Šã«å°„å½±ã—表示ã™ã‚‹ã€‚ãã®ãŸã‚,KeTCindy3Dã¯ï¼Œç©ºé–“ã«ãŠã‘るプロットデータã¨ï¼Œç”»é¢ä¸Šã«è¡¨ç¤ºã™ã‚‹ãƒ—ロットデータã®ï¼’ã¤ã‚’作ã£ã¦ã„る。Datalist2d()ã§ã¯ï¼Œç”»é¢ä¸Šã«è¡¨ç¤ºã™ã‚‹ãƒ—ロットデータã®ãƒªã‚¹ãƒˆã‚’è¿”ã™ã€‚\\
- \\
-ã€ä¾‹ã€‘
-\begin{verbatim}
- Xyzax3data("","x=[-5,5]","y=[-5,5]","z=[-5,5]");
- Putpoint3d(["A",[0,-3,0],"B",[0,3,3]],"fix");
- Spaceline([A,B]);
- println("PD="+Datalist2d());
-\end{verbatim}
-ã¨ã™ã‚‹ã¨ï¼Œã‚³ãƒ³ã‚½ãƒ¼ãƒ«ã«ã€€PD=[ax2d,AB2d]  ã¨è¡¨ç¤ºã•ã‚Œã‚‹ã€‚ax2dã¯åº§æ¨™è»¸ã®ãƒ—ロットデータ ax3d ã«ï¼ŒAB2d ã¯ç·šåˆ†ABã®ãƒ—ロットデータ AB3d ã«å¯¾å¿œã—ã¦ã„る。\\
- \\
-
-\hypertarget{datalist}{}
-\item[関数] Datalist3d()
-\item[機能] 空間ã®ãƒ—ロットデータã®ãƒªã‚¹ãƒˆã‚’å–å¾—ã™ã‚‹
-\item[説明] 空間ã«æã‹ã‚Œã¦ã„ã‚‹ã™ã¹ã¦ã®ãƒ—ロットデータã®ãƒªã‚¹ãƒˆã‚’è¿”ã™\\
- \\
-ã€ä¾‹ã€‘
-\begin{verbatim}
- Xyzax3data("","x=[-5,5]","y=[-5,5]","z=[-5,5]");
- Putpoint3d(["A",[0,-3,0],"B",[0,3,3]],"fix");
- Spaceline([A,B]);
- println("PD="+Datalist3d());
-\end{verbatim}
-ã¨ã™ã‚‹ã¨ï¼Œã‚³ãƒ³ã‚½ãƒ¼ãƒ«ã«ã€€PD=[ax3d,AB3d]  ã¨è¡¨ç¤ºã•ã‚Œã‚‹ã€‚\\
-
-\begin{flushright} \hyperlink{functionlist3d}{$\Rightarrow$関数一覧}\end{flushright}
-
-\hypertarget{dist3d}{}
-\item[関数] Dist3d(a1,a2)
-\item[機能] 空間ã®ï¼’点間ã®è·é›¢ã‚’è¿”ã™
-\item[説明] 引数a1,a2 ã¯ä½œå›³ç‚¹ã®å称,空間点ã®å称ã®ã„ãšã‚Œã§ã‚‚よã„。\\
-次ã®ï¼“通りã®è¨˜æ³•ã¯åŒã˜çµæžœã‚’è¿”ã™ã€‚混在もå¯
-\begin{verbatim}
- Dist3d("A","B");
- Dist3d(A,B);
- Dist3d(A3d,B3d);
-\end{verbatim}
- \\
-
-\hypertarget{drawpoint3d}{}
-\item[関数] Drawpoint3d(座標)
-\item[機能] 空間点をæã
-\item[説明] 引数ã§ä¸ŽãˆãŸç©ºé–“座標ã®ç‚¹ã‚’æã。ã“ã®ç‚¹ã¯å¹¾ä½•ç‚¹ã§ã¯ãªã„。ã¾ãŸï¼ŒTeX ã«ã‚‚出力ã•ã‚Œãªã„。幾何点ã«ã™ã‚‹ã«ã¯ \hyperlink{putpoint3d}{Putpoint3d()} ã¨ç”¨ã„る。TeXã«ç‚¹ã‚’出力ã™ã‚‹ã«ã¯ï¼Œ\hyperlink{pointdata}{Pointdata()} ã¾ãŸã¯ \hyperlink{drwpt}{Drawpoint()} を用ã„る。\\
-引数ã¯ï¼Œåº§æ¨™ã®ãƒªã‚¹ãƒˆã«ã™ã‚‹ã“ã¨ã‚‚ã§ãる。\\
- \\
-ã€ä¾‹ã€‘
-\begin{verbatim}
- Drawpoint3d([1,1,1]);
- Drawpoint3d([[1,1,1],[0,1,0]]);
-\end{verbatim}
- \\
-
-\hypertarget{embed}{}
-\item[関数] Embed(name,PDリスト,å¼,変数リスト)
-\item[機能] 2D図形ã®ç©ºé–“内平é¢ã¸åŸ‹ã‚込む
-\item[説明] 第2引数ã¯ï¼’Dã®å›³å½¢ã®ãƒ—ロットデータã®ãƒªã‚¹ãƒˆï¼Œå¼ã¨å¤‰æ•°ã¯å¹³é¢ã‚’記述ã™ã‚‹å¼ã¨å¤‰æ•°ã€‚å¹³é¢ã¯åŽŸç‚¹$vo$ã¨ï¼’ã¤ã®åŸºæœ¬ãƒ™ã‚¯ãƒˆãƒ« $\overrightarrow{vx},\overrightarrow{vy}$を用ã„ã¦ï¼Œ$vo+x \cdot \overrightarrow{vx}+y \cdot \overrightarrow{vy}$ ã®å½¢ã§è¡¨ã™ã“ã¨ãŒã§ãる。変数(基本ベクトルã®ä¿‚数)ã¯$x,y$ ã§ãªã,$s,t$ ã§ã‚‚よã„。å¼ï¼Œå¤‰æ•°ãƒªã‚¹ãƒˆã¨ã‚‚ã«æ–‡å­—列ã«ã™ã‚‹ã€‚ã¾ãŸï¼ŒåŸºæœ¬ãƒ™ã‚¯ãƒˆãƒ«ã¯ç›´äº¤ã—ã¦ã„ãªãã¦ã‚‚よã„ã—,長ã•ãŒç•°ãªã£ã¦ã‚‚よã„ãŒï¼Œç¸¦æ¨ªåŒã˜ã‚¹ã‚±ãƒ¼ãƒ«ã®ç›´äº¤åº§æ¨™ç³»ã«ã™ã‚‹ã®ãŒã‚ã‹ã‚Šã‚„ã™ã„ã ã‚ã†ã€‚\\
- \\
-ã€ä¾‹ã€‘正三角形ã¨å¤–接円を空間内ã®å¹³é¢ã«åŸ‹ã‚込む
-\begin{verbatim}
- Xyzax3data("","x=[-5,4]","y=[-10,4]","z=[-5,5]",["a","O"]);
- Spaceline("1",[[3,0,0],[3,6,0],[3,6,6],[3,0,6],[3,0,0]]);
- Defvar("vo=[3,3,3]");
- Defvar("vx=[0,1,0]");
- Defvar("vy=[0,0,1]");
- Putpoint3d(["A",[3,3,3]],"fix");
- Circledata("1",[[0,0],[2,0]],["nodisp"]);
- Listplot("1",[[0,2],[-sqrt(3),-1],[sqrt(3),-1],[0,2]],["nodisp"]);
- Embed("1",["cr1","sg1"],"vo+x*vx+y*vy","[x,y]");
- Ptsize(3);
- Drawpoint(A);
-\end{verbatim}
-     \input{Fig3d/embed01}
-
- ã“ã“ã§ï¼ŒEmbed()ã§å¼•ã渡㙠vo,vx,vy ã«ã¤ã„ã¦ã¯ï¼ŒScilabã§ã®å¤‰æ•°å®šç¾©ãŒå¿…è¦ãªã®ã§ï¼ˆKeTCindyã§ã¯è¡Œã‚ãªã„)Defvar() ã«ã‚ˆã£ã¦å®šç¾©ã‚’ã—ã¦ã„る。
-原点,基本ベクトルを,点を作図ã—ã¦æ¬¡ã®ã‚ˆã†ã«ã™ã‚‹ã“ã¨ã‚‚ã§ãる。ã“ã®å ´åˆã¯ Defvar() ã¯ä¸è¦ã€‚
-\begin{verbatim}
- Putpoint3d(["A",[3,3,3],"B",[0,1,0],"C",[0,0,1]],"fix");
- Embed("1",["cr1","sg1"],"A3d+x*B3d+y*C3d","[x,y]");
-\end{verbatim}
-        \includegraphics[bb=0 0 954 766 , width=6cm]{Fig3d/embed03.png}\\
-
-ã“ã®å ´åˆï¼Œç‚¹B,Cã®åº§æ¨™ãŒãã®ã¾ã¾åŸºæœ¬ãƒ™ã‚¯ãƒˆãƒ«ã¨ãªã£ã¦ã„ã‚‹ãŒï¼ŒåŽŸç‚¹Aã«å¯¾ã—ã¦æ画平é¢ä¸Šã«ã¯B,CãŒãªã„ã®ã§å›³ãŒã‚ã‹ã‚Šã«ãã„。図をã‚ã‹ã‚Šã‚„ã™ãã™ã‚‹ãªã‚‰ã°æ¬¡ã®ã‚ˆã†ã«ã™ã‚‹ã€‚
-\begin{verbatim}
- Putpoint3d(["A",[3,3,3],"B",[3,4,3],"C",[3,3,4]],"fix");
- Embed("1",["cr1","sg1"],"A3d+x*(B3d-A3d)+y*(C3d-A3d)","[x,y]");
-\end{verbatim}
-
- ã¾ãŸï¼Œå¹³é¢ã‚’記述ã™ã‚‹ã®ã«ï¼Œå¹³é¢ã®åŽŸç‚¹ã¨æ³•ç·šãƒ™ã‚¯ãƒˆãƒ«ã‚’用ã„㦠Perpplane() を用ã„ã‚‹ã¨ï¼ŒåŸºæœ¬ãƒ™ã‚¯ãƒˆãƒ«ãŒç”Ÿæˆã•ã‚Œã‚‹ã®ã§ã€ã“れを利用ã™ã‚‹ã“ã¨ãŒã§ãる。次ã®ã‚¹ã‚¯ãƒªãƒ—トã§ã¯ï¼ŒSkeletonparadata() を用ã„ã¦é™°ç·šå‡¦ç†ã‚‚ã—ã¦ã„る。
-\begin{verbatim}
- Xyzax3data("","x=[-5,5]","y=[-8,5]","z=[-5,5]");
- Putpoint3d(["O",[0,0,0],"P",[1,1,2]],"fix");
- Perpplane("E-F","P",P3d-O3d,"put");
- vec1=3*(E3d-P3d);
- vec2=3*(F3d-P3d);
- Putpoint3d(["A",P3d+vec1+vec2],"fix");
- Putpoint3d(["B",P3d+vec1-vec2],"fix");
- Putpoint3d(["C",P3d-vec1-vec2],"fix");
- Putpoint3d(["D",P3d-vec1+vec2],"fix");
- Spaceline([A,B,C,D,A]);
- Circledata("1",[[0,0],[2,0]],["nodisp"]);
- Listplot("1",[[0,2],[-sqrt(3),-1],[sqrt(3),-1],[0,2]],["nodisp"]);
- Embed("1",["cr1","sg1"],"P3d+x*(E3d-P3d)+y*(F3d-P3d)","[x,y]");
- Ptsize(3);
- Drawpoint(P);
- Skeletonparadata("1");
-\end{verbatim}
-     \input{Fig3d/embed02}
-
-\begin{flushright} \hyperlink{functionlist3d}{$\Rightarrow$関数一覧}\end{flushright}
-
-
-\hypertarget{intersectcrvsf}{}
-\item[関数] Intersectcrvsf(name,PD,å¼)
-\item[機能] 曲線ã¨æ›²é¢ã®äº¤ç‚¹ã®åº§æ¨™ã‚’求ã‚ã‚‹
-\item[説明] PDã¯æ›²ç·šã®ãƒ—ロットデータ。å¼ã¯æ›²é¢ã®å¼ã€‚\\
- \\
-ã€ä¾‹ã€‘回転放物é¢ã¨ç·šåˆ†ã®äº¤ç‚¹ã®åº§æ¨™ã‚’表示ã™ã‚‹ã€‚曲é¢ã¯è¡¨ç¤ºã•ã‚Œã¦ã„ãªãã¦ã‚‚よã„。
-\begin{verbatim}
-Putpoint3d(["A",[0,-3,0],"B",[0,3,2]],"fix");
-Spaceline([A,B]);
-fd=["z=4-(x^2+y^2)","x=R*cos(T)","y=R*sin(T)","R=[0,2]","T=[0,2*pi]","e"];
-println("Intersect="+Intersectcrvsf("1","AB3d",fd));
-\end{verbatim}
-実行ã™ã‚‹ã¨ï¼Œã‚³ãƒ³ã‚½ãƒ¼ãƒ«ã«\\
-  \verb|Intersect=[[0,-1.91,0.36,1.18],[0,1.57,1.52,1.76]] |
-ã¨è¡¨ç¤ºã•ã‚Œã‚‹ã€‚\\
-
-\hypertarget{intersectsgpL}{}
-\item[関数] IntersectsgpL(点å,線分,é¢ï¼Œæ画方法)
-\item[機能] 空間ã®ç·šåˆ†ã¨å¹³é¢ã®äº¤ç‚¹ã‚’作図ã™ã‚‹
-\item[説明] 引数ã®ç·šåˆ†ã¯ç·šåˆ†ã®ç«¯ç‚¹ã‚’ "A-B" ã®å½¢ã‚‚ã—ãã¯åº§æ¨™ã®ãƒªã‚¹ãƒˆå½¢ã§ä¸Žãˆã‚‹ã€‚\\
- 引数ã®é¢ã¯ï¼Œé¢å†…ã®ï¼“点を "C-D-E" ã®å½¢ã‚‚ã—ãã¯åº§æ¨™ã®ãƒªã‚¹ãƒˆã§ä¸Žãˆã‚‹ã€‚\\
- æ画方法ã¯ï¼Œ"put" ã¾ãŸã¯ "draw" ã§ï¼Œæ画方法を指定ã—ãªã„å ´åˆã¯ "draw" ã¨åŒã˜ã€‚"draw"ã§ã¯äº¤ç‚¹ãŒç·‘ã®ç‚¹ã§è¡¨ç¤ºã•ã‚Œã‚‹ã ã‘ã§ï¼Œå¹¾ä½•ç‚¹ã¯ã§ããªã„。"put" ã§ã¯å¹¾ä½•ç‚¹ã‚’作る。\\
- \\
-ã€ä¾‹ã€‘座標ã®ãƒªã‚¹ãƒˆã§ä¸Žãˆã‚‹è¨˜è¿°ä¾‹\\
- \verb|IntersectsgpL("P",[p1,p2],[p3,p4,p5],"draw");| \\
- \\
-ã€ä¾‹ã€‘立方体を平é¢ã§åˆ‡ã£ãŸå›³ã‚’æã。\\
-  ã„ã‚ã„ã‚ãªæ‰‹é †ãŒè€ƒãˆã‚‰ã‚Œã‚‹ãŒï¼Œã“ã“ã§ã¯æ¬¡ã®æ‰‹é †ã§æã。\\
- (1) 立方体ã®é ‚点をã¨ã‚‹ã€‚1辺ã®é•·ã•ã‚’Hnã¨ã™ã‚‹ã€‚\\
-  ã“ã“ã§ã¯è»¸ä¸Šã®ç‚¹ã¯Putaxes3d()ã§ã¨ã‚‹ã€‚\\
-(2) 切断é¢ã‚’決ã‚る点E,F,Gを辺上ã®è‡ªç”±ç‚¹ã¨ã—ã¦Putonseg3d()ã§ã¨ã‚‹ã€‚\\
-(3) E,F,Gを通る平é¢ã¨ï¼Œè¾ºAC,DYã¨ã®äº¤ç‚¹ã‚’ã¨ã‚Šï¼ŒM,Nã¨ã™ã‚‹ã€‚\\
-(4) 全体を多é¢ä½“ã¨ã—ã¦é¢ãƒ‡ãƒ¼ã‚¿ã‚’作ã£ã¦æç”»ã™ã‚‹ã€‚
-\begin{verbatim}
- Hn=3;
- Putaxes3d(Hn);
- Putpoint3d("A",[Hn,Hn,0],"fix");
- Putpoint3d("B",[Hn,0,Hn],"fix");
- Putpoint3d("C",[Hn,Hn,Hn],"fix");
- Putpoint3d("D",[0,Hn,Hn],"fix");
- Putonseg3d("E",X,B);
- Putonseg3d("F",Z,B);
- Putonseg3d("G",Z,D);
- IntersectsgpL("M","A-C","E-F-G","put");
- IntersectsgpL("N","D-Y","E-F-G","put");
- phd=Concatobj([[O,X,A,Y],[X,A,M,E],[A,Y,N,M],[Y,N,G,Z,O],
-   [O,Z,F,E,X],[Z,F,G],[E,M,N,G,F]]);
- VertexEdgeFace("1",phd,["Edg=nogeo"]);
- Nohiddenbyfaces("1","phf3d1");
-\end{verbatim}
-Cinderellaã®æç”»é¢ã¯ã¤ãŽã®ã‚ˆã†ã«ãªã‚‹ã€‚点E,F,Gをドラッグã—ã¦ï¼Œé©å½“ãªä½ç½®ã®æ–­é¢ã«ã§ãる。ãŸã ã—,M,Nã¯è¾ºä¸Šã«ã‚ã‚‹ã“ã¨ãŒæ¡ä»¶ã§ã‚る。
-\\
- \\
-\includegraphics[bb=0 0 1426 654 , width=12cm]{Fig3d/IntersectsgpL0.png}\\
-
-ã§ããŸå›³ã¯ä¸‹å›³å·¦ã€‚ã“ã‚Œã«ï¼Œæ¬¡ã®ã‚¹ã‚¯ãƒªãƒ—トを追加ã™ã‚Œã°ï¼Œæ–­é¢ä¸Šæ–¹ã®ç«‹æ–¹ä½“ã®å„辺も点線ã§æã‹ã‚Œã‚‹ã€‚(下図å³ï¼‰
-\begin{verbatim}
- Spaceline([E,B,F],["do"]);
- Spaceline([B,C,M],["do"]);
- Spaceline([C,D,N],["do"]);
- Spaceline([D,G],["do"]);
-\end{verbatim}
-\input{Fig3d/IntersectsgpL1}   \input{Fig3d/IntersectsgpL2}
-
-\begin{flushright} \hyperlink{functionlist3d}{$\Rightarrow$関数一覧}\end{flushright}
-
-\hypertarget{invparapt}{}
-\item[関数] Invparapt(座標,PD)
-\item[機能] æç”»é¢ä¸Šã®åº§æ¨™ã«å¯¾å¿œã™ã‚‹æ›²ç·šä¸Šã®ç‚¹ã®åº§æ¨™ã‚’è¿”ã™
-\item[説明] Cinderellaã®æç”»é¢ä¸Šã®åº§æ¨™ã‚’与ãˆã¦ï¼Œãã‚Œã«å¯¾å¿œã™ã‚‹æ›²ç·šä¸Šã®ï¼“次元座標を返ã™ã€‚
-\\
-空間内ã®æ›²ç·šã‚’作図ã™ã‚‹ã¨ï¼Œæ›²ç·šã®ç©ºé–“内ã®ãƒ—ロットデータã¨ã¨ã‚‚ã«ï¼Œæç”»é¢ä¸Šã«æããŸã‚ã®ãƒ—ロットデータも作られる。ã“れを利用ã™ã‚‹ã¨ï¼Œæç”»é¢ä¸Šã®ä½ç½®ã‹ã‚‰æ›²ç·šä¸Šã®åº§æ¨™ã‚’求ã‚ã‚‹ã“ã¨ãŒã§ãる。\\
- \\
-ã€ä¾‹ã€‘螺旋ã¨ç·šåˆ†ã‚’æã„ãŸã¨ã,æç”»é¢ä¸Šã§ã®äº¤ç‚¹ï¼ˆç©ºé–“内ã®äº¤ç‚¹ã§ã¯ãªã„)ã«å¯¾å¿œã™ã‚‹èžºæ—‹ä¸Šã®ç‚¹ã®åº§æ¨™ã‚’求ã‚部分曲線をæã。\\
-\begin{verbatim}
- Spaceline("1",[[-1,-1,-1],[1,2,3]]);
- Spacecurve("1","[2*cos(t),2*sin(t),0.2*t]","t=[0,4*pi]",["do"]);
- tmp=Intersectcrvs("sl2d1","sc2d1");
- p1=Invparapt(tmp_1,"sc3d1");
- p2=Invparapt(tmp_2,"sc3d1");
- Partcrv3d("1",p1,p2,"sc3d1");
-\end{verbatim}
-        \input{Fig3d/invparapt}\\
-ã“ã“ã§ï¼Œsl2d1,sc2d1 ã¯ç·šåˆ†ã¨èžºæ—‹ã®æç”»é¢ä¸Šã§ã®ï¼ˆå¹³é¢ã®ï¼‰ãƒ—ロットデータã§ã‚る。Intersectcrvs() ã§å¹³é¢ä¸Šã®äº¤ç‚¹ã®åº§æ¨™ï¼ˆè¤‡æ•°ã‚ã‚‹ã®ã§ãƒªã‚¹ãƒˆãŒè¿”る)を求ã‚,Invparapt() ã§å¯¾å¿œã™ã‚‹èžºæ—‹ä¸Šã®ç‚¹ã®åº§æ¨™ã‚’求ã‚ã¦éƒ¨åˆ†æ›²ç·šã‚’æã„ã¦ã„る。実際ã«äº¤ã‚る点ã§ã®éƒ¨åˆ†æ›²ç·šã§ã¯ãªã„ã“ã¨ã«æ³¨æ„。\\
- \\
-
-\hypertarget{mkbezierptcrv3d}{}
-\item[関数] Mkbezierptcrv3d(点リスト)
-\item[機能] 制御点を自動的ã«ã¨ã‚‹ç©ºé–“ベジェ曲線
-\item[説明] リストã§ä¸ŽãˆãŸç‚¹ã«å¯¾ã—,制御点を自動的ã«ç”Ÿæˆã—ã¦ãƒ™ã‚¸ã‚§æ›²ç·šã‚’æã。\\
- 制御点ã¯ï¼Œï¼’ã¤ã®ç‚¹ã«å¯¾ã—ã¦ï¼Œãã®ç‚¹ã‚’端点ã¨ã™ã‚‹ç·šåˆ†ä¸Šã«ï¼’ã¤ä½œã‚‰ã‚Œã‚‹ã€‚ã“れをé©å®œç§»å‹•ã—ã¦ä»»æ„ã®æ›²ç·šã«ã™ã‚‹ã“ã¨ãŒã§ãる。\hyperlink{bezier3d}{空間ベジェ曲線 Bezier3d()} ã‚’å‚ç…§ã®ã“ã¨ã€‚\\
- \\
-ã€ä¾‹ã€‘\verb|Mkbezierptcrv3d(["A","B","C","D"]);|\\
-  線分AB上ã«ï¼’点a1p,a2p,線分BC上ã«ï¼’点a2p,a2q,線分CD上ã«ï¼’点a3p,a3qãŒã§ãる。\\
-
-\begin{flushright} \hyperlink{functionlist3d}{$\Rightarrow$関数一覧}\end{flushright}
-
-\hypertarget{nohiddenbyfaces}{}
-\item[関数] Nohiddenbyfaces(name,PD1,PD2,option1,option2)
-\item[機能] é¢ã«å¯¾ã—曲線を陰線処ç†ã™ã‚‹
-\item[説明] PD2ã§ä¸Žãˆã‚‰ã‚ŒãŸé¢ã«å¯¾ã—,曲線PD1ã®é¢ã«éš ã‚Œã¦ã„る部分を陰線処ç†ã™ã‚‹ã€‚\\
-引数PD1ã‚’çœç•¥ã™ã‚‹ã¨ã™ã¹ã¦ã®æ›²ç·šãŒå¯¾è±¡ã¨ãªã‚‹ã€‚陰線処ç†ã•ã‚ŒãŸç·šã¯åˆæœŸè¨­å®šã§ã¯ç‚¹ç·šã§è¡¨ã•ã‚Œã‚‹ã€‚ã“ã®ç·šç¨®ã¯option2ã§å¤‰æ›´ã§ãる。ãŸã¨ãˆã°ï¼Œ["da"] ã¨ã™ã‚‹ã¨ç ´ç·šã«ãªã‚‹ã€‚option1ã¯æ›²ç·šå…¨ä½“ã®optionã§ã‚ã‚‹ã®ã§ï¼Œoption2 ã ã‘を指定ã™ã‚‹å ´åˆã¯ï¼Œoption1 ã¨ã—ã¦ç©ºãƒªã‚¹ãƒˆ[ ] ãŒå¿…è¦ã§ã‚る。\\
- \\
-ã€ä¾‹ã€‘座標平é¢ä¸Šã«æ­£å››é¢ä½“ã‚’æã,å„軸ã¨æ­£å››é¢ä½“ã®è¾ºã‚’陰線処ç†ã™ã‚‹ã€‚(下図左)
-\begin{verbatim}
-Xyzax3data("","x=[-5,5]","y=[-5,5]","z=[-5,4]");
-Putpoint3d("A",2*[-1,-1/sqrt(3),0],"fix");
-Putpoint3d("B",2*[1,-1/sqrt(3),0],"fix");
-Putpoint3d("C",2*[0,sqrt(3)-1/sqrt(3),0],"fix");
-Putpoint3d("D",2*[0,0,sqrt(3)],"fix");
-phd=Concatobj([[A,B,C],[A,B,D],[A,C,D],[B,C,D]]);
-VertexEdgeFace("1",phd,["Edg=nogeo"]);
-Nohiddenbyfaces("1","phf3d1");
-\end{verbatim}
-
- \verb|VertexEdgeFace("1",phd,["Edg=nogeo"]);| ã«ã‚ˆã£ã¦ï¼Œè¾ºï¼Œé ‚点,é¢ã®ãƒ—ロットデータãŒä½œã‚‰ã‚Œã‚‹ã€‚\verb|phf3d1| ã¯ï¼Œé¢ã®ãƒ—ロットデータã§ã‚る。\\
- ã“ã“ã§ï¼Œ\verb|Nohiddenbyfaces("1","phe3d1","phf3d1",["dr,2"],["da"]); | ã¨ã™ã‚‹ã¨ï¼Œåº§æ¨™è»¸ã¯é™°ç·šå‡¦ç†ã•ã‚Œãšï¼Œæ­£å››é¢ä½“ã®è¾ºï¼ˆ\verb|phe3d1|)ã ã‘ãŒé™°ç·šå‡¦ç†ã•ã‚Œã¦ç ´ç·šã§æã‹ã‚Œã‚‹ã€‚å››é¢ä½“ã¯å¤ªãæã‹ã‚Œã‚‹ã€‚(下図å³ï¼‰\\
- \\
- \input{Fig3d/nohiddenbyfaces1}   \input{Fig3d/nohiddenbyfaces2}\\
-åŒæ§˜ã«ï¼Œ\\
- \verb|Nohiddenbyfaces("1","ax3d","phf3d1",[],["da"]);|\\
-ã¨ã™ã‚Œã°ï¼Œåº§æ¨™è»¸ã ã‘ãŒé™°ç·šå‡¦ç†ã•ã‚Œã¦ç ´ç·šã§æã‹ã‚Œã‚‹ã€‚\\
-\begin{flushright} \hyperlink{functionlist3d}{$\Rightarrow$関数一覧}\end{flushright}
-
-\hypertarget{parapt}{}
-\item[関数] Parapt(座標)
-\item[機能] 点ã®æŠ•å½±é¢ã§ã®åº§æ¨™
-\item[説明] 引数ã®ç©ºé–“座標ã«å¯¾å¿œã™ã‚‹Cinderellaã®æç”»é¢ã®åº§æ¨™ã‚’è¿”ã™ã€‚\\
- \\
-ã€ä¾‹ã€‘\verb|Parapt([2,1,5]);| ã«ã‚ˆã‚Šï¼Œç‚¹(2,1,5) ãŒè¡¨ç¤ºã•ã‚Œã¦ã„ã‚‹æç”»é¢ã®åº§æ¨™ï¼ŒãŸã¨ãˆã° [-0.52,3.27] ãŒè¿”ã•ã‚Œã‚‹ã€‚\\
-\begin{flushright} \hyperlink{functionlist3d}{$\Rightarrow$関数一覧}\end{flushright}
-
-\hypertarget{perpplane}{}
-\item[関数] Perpplane(点å,点,ベクトル,option)
-\item[機能] 点を通り線分ã«åž‚ç›´ãªå¹³é¢ä¸Šã«åŸºæº–点を2ã¤ã¨ã‚‹
-\item[説明] 引数ã®ç‚¹åã¯ï¼Œä½œæˆã™ã‚‹ï¼’点㧠"A-B" ã®å½¢\\
- 第2引数ã¯é€šã‚‹ç‚¹ã®å称ã¾ãŸã¯åº§æ¨™\\
- 第3引数ã¯æ³•ç·šãƒ™ã‚¯ãƒˆãƒ«\\
- option㯠"put" ã§ï¼Œï¼’ã¤ã®å¹¾ä½•ç‚¹ã‚’作図ã™ã‚‹ã€‚optionãŒãªã„å ´åˆã¯å¹¾ä½•ç‚¹ã¯ä½œã‚‰ãšï¼Œç„¡åã®ç‚¹ã®ã¿ã‚’表示ã™ã‚‹ã€‚put以外ã®æ–‡å­—列を書ã„ãŸã¨ãã¯ç„¡åŠ¹ãªå‘½ä»¤ã¨ã—,何も作æˆã•ã‚Œãªã„。\\
- 記述例を示ã™ã¨\\
-  \verb|Perpplane("A-B","P",[1,1,1],"put");|\\
-    点Pを通り,法線ベクトル(1,1,1)ã«åž‚ç›´ãªå¹³é¢ä¸Šã«ç‚¹A,Bã‚’ã¨ã‚‹ã€‚\\
-  \verb|Perpplane("A-B","P",P3d-O3d);|\\
-    点Pを通り,線分OPã«åž‚ç›´ãªå¹³é¢ä¸Šã«ç‚¹A,Bã‚’ã¨ã‚‹ã€‚\\
- ã“れらã«ãŠã„ã¦ï¼ŒPAã¨PBã¯åž‚ç›´ã§ï¼ŒPA=PB=1 ã¨ãªã‚‹ã€‚\\
- \\
-ã€ä¾‹ã€‘ベクトル $\vec{p}=(1,1,1)$ ã«åž‚ç›´ã§ç‚¹$(1,1,1)$を通る平é¢ã‚’æã。
-\begin{verbatim}
- Putaxes3d(2);
- Putpoint3d(["P",[1,1,1]],"fix");
- Ptseg3data();
- Perpplane("E-F","P",P3d-O3d,"put");
- vec1=2*(E3d-P3d);
- vec2=2*(F3d-P3d);
- Putpoint3d(["A",P3d+vec1+vec2],"fix");
- Putpoint3d(["B",P3d+vec1-vec2],"fix");
- Putpoint3d(["C",P3d-vec1-vec2],"fix");
- Putpoint3d(["D",P3d-vec1+vec2],"fix");
- Spaceline([A,B,C,D,A]);
- Letter([P,"w","P",A,"ne","A",B,"e","B",C,"ws","C",D,"nw","D",]);
- Skeletonparadata("1");
-\end{verbatim}
-         \input{Fig3d/perpplane}
-\begin{flushright} \hyperlink{functionlist3d}{$\Rightarrow$関数一覧}\end{flushright}
- \\
-
-\hypertarget{perppt}{}
-\item[関数] Perppt(点å,点,点リスト,option)
-\item[機能] 平é¢ã«ä¸‹ã‚ã—ãŸåž‚ç·šã®è¶³ã‚’求ã‚ã‚‹
-\item[説明] 第2引数ã®ç‚¹ã‹ã‚‰ï¼Œç¬¬ï¼“引数ã®ç‚¹ãƒªã‚¹ãƒˆã§æ±ºã¾ã‚‹å¹³é¢ã«ä¸‹ã—ãŸåž‚ç·šã®è¶³ã‚’,第1引数ã®åå‰ã®ç‚¹ã¨ã™ã‚‹ã€‚\\
-オプションã¯æ¬¡ã®é€šã‚Šã€‚デフォルト㯠"draw"\\
- draw:点を打ã¤ã€‚幾何点ã¯ä½œã‚‰ãªã„\\
- put :幾何点を作る\\
- none:計算ã ã‘è¡Œã„,点ã¯ä½œå›³ã—ãªã„。\\
- \\
-ã€ä¾‹ã€‘原点ã‹ã‚‰ç‚¹ABCを通る平é¢ã«ä¸‹ã—ãŸåž‚ç·šã®è¶³Hã®åº§æ¨™ã‚’求ã‚る。\\
-  \verb|Perppt("H","O","A-B-C","none");| 表示ã¯ã•ã‚Œãªã„。\\
-  \verb|Perppt("N","O","A-B-C");| Hã®ä½ç½®ã«ç·‘色ã®ç‚¹ãŒè¡¨ç¤ºã•ã‚Œã‚‹ã€‚\\
-  \verb|Perppt("N","O","A-B-C","put");| 幾何点HãŒä½œå›³ã•ã‚Œã‚‹ã€‚\\
- ã„ãšã‚Œã®å ´åˆã‚‚,Hã®åº§æ¨™ã¯å¤‰æ•°H3d ã«ä»£å…¥ã•ã‚Œã‚‹\\
- \\
-作図例
-\begin{verbatim}
- Xyzax3data("","x=[-5,5]","y=[-5,5]","z=[-5,4]");
- Putpoint3d("O",[0,0,0],"fix");
- Putpoint3d("A",[3,0,0],"fix");
- Putpoint3d("B",[0,3,0],"fix");
- Putpoint3d("C",[0,0,3],"fix");
- Perppt("H","O","A-B-C","put");
- Spaceline([A,B,C,A]);
- Spaceline([O,H]);
- Letter([A,"nw","A",B,"ne","B",C,"ne","C",O,"nw","O",H,"ne","H"]);
-\end{verbatim}
- \\
-     \input{Fig3d/perppt}
- \\
-
-\hypertarget{partcrv3d}{}
-\item[関数] Partcrv3d(name,始点,終点,PD)
-\item[機能] 部分曲線ã®ãƒ—ロットデータを作æˆã™ã‚‹
-\item[説明] 曲線PDã«ãŠã„ã¦ï¼Œå§‹ç‚¹ã‹ã‚‰çµ‚点ã¾ã§ã®ãƒ—ロットデータを作æˆã™ã‚‹ã€‚\\
-始点ã¨çµ‚点ã¯ï¼Œãƒ—ロットデータã®ç•ªå·ã‚‚ã—ãã¯æ›²ç·šä¸Šã«ã¨ã£ãŸç‚¹ã®è­˜åˆ¥åã§ç¤ºã™ã€‚\\
-
-ã€ä¾‹ã€‘螺旋をæã,Cã‹ã‚‰Dã¾ã§ã®éƒ¨åˆ†ã‚’太ãã™ã‚‹ã€‚PutonCurve3d() ã§èžºæ—‹ä¸Šã«ç‚¹C,Dã‚’ã¨ã‚Šï¼Œãƒ‰ãƒ©ãƒƒã‚°ã—ã¦é©å½“ãªä½ç½®ã«ç§»å‹•ã™ã‚‹ã€‚
-\begin{verbatim}
- Xyzax3data("","x=[-5,5]","y=[-5,5]","z=[-5,4]");
- Spacecurve("1","[2*cos(t),2*sin(t),0.2*t]","t=[0,4*pi]",["Num=100"]);
- PutonCurve3d("C","sc3d1");
- PutonCurve3d("D","sc3d1");
- Partcrv3d("1",C,D,"sc3d1",["dr,3"]);
- Letter([C,"n2","C",D,"n2","D"]);
-\end{verbatim}
- ã“ã“ã§ï¼Œ\verb|"sc3d1"| ã¯ï¼Œèžºæ—‹ã®ãƒ—ロットデータ,\verb|"part3d1"| ã¯ï¼Œéƒ¨åˆ†æ›²ç·šã®ãƒ—ロットデータã§ã‚る。\\
-       \input{Fig3d/partcrv3d1}\\
- \\
-ã€ä¾‹ã€‘稲妻状ã®èžºæ—‹ã‚’点線ã§æã,ãã®ä¸€éƒ¨ã‚’実線ã«ã™ã‚‹ã€‚ä½ç½®ã¯ãƒ—ロットデータã®ç•ªå·ã§ç¤ºã™ã€‚å°æ•°ã«ã™ã‚‹ã¨æ›²ç·šã‚’分割ã—ã¦ã„る線分ã®é€”中ã®ä½ç½®ã«ãªã‚‹ã€‚
-\begin{verbatim}
-Spacecurve("1","[2*cos(t),2*sin(t),0.2*t]","t=[0,4*pi]",["Num=10","do"]);
-Partcrv3d("1",3.3,8.5,"sc3d1");
-\end{verbatim}
-       \input{Fig3d/partcrv3d2}\\
-
-\hypertarget{phparadata}{}
-\item[関数] Phparadata(name,name2,options)
-\item[機能] 多é¢ä½“を陰線処ç†ã—ã¦æã
-\item[説明] 多é¢ä½“を陰線処ç†ã—ã¦æã。多é¢ä½“ã¯é¢ãƒ‡ãƒ¼ã‚¿ï¼ˆé ‚点リストã¨é¢ãƒªã‚¹ãƒˆï¼‰ã‚’与ãˆã¦ï¼ŒVertexEdgeFace() ã§ãƒ—ロットデータを作る。ã“ã®ãƒ—ロットデータã«å¯¾ã—,隠れã¦ã„ã‚‹é¢ï¼ˆè¾ºï¼‰ã‚’éžè¡¨ç¤ºã«ã—ã¦è¡¨ç¤ºã™ã‚‹ã€‚第1引数ã¯é€šå¸¸ã®name,第2引数ã®name2ã¯ï¼ŒVertexEdgeFace() ã§ä¸ŽãˆãŸnameã¨åŒã˜ã‚‚ã®ã¨ã™ã‚‹ã€‚\\
- optionsã¯ï¼Œå…¨ä½“ã®ç·šç¨®ï¼ˆ"dr,2"ãªã©ï¼‰ã¨ï¼Œé™°ç·šã®ç·šç¨®ã‚’"Hidden=線種" ã§æŒ‡å®šã§ãる。デフォルトã§ã¯é™°ç·šã¯è¡¨ç¤ºã—ãªã„。\\
- \\
-ã€ä¾‹ã€‘å°æž—・鈴木・三谷ã«ã‚ˆã‚‹å¤šé¢ä½“データ polyhedrons obj ã‹ã‚‰ï¼Œs06ã®åˆ‡é ‚二åé¢ä½“(サッカーボール型)をæã。
-\begin{verbatim}
- Setdirectory( Dirhead+"/data/polyhedrons_obj");
- phd=Readobj("s06.obj",["size=3"]);
- Setdirectory(Dirwork);
- VertexEdgeFace("s06",phd,["Edg=nogeo"]);
- Phparadata("1","s06");
-\end{verbatim}
- VertexEdgeFace() ã® name ã¯é€šå¸¸ã® "1" ã§ã‚‚よã„。ãã®å ´åˆã¯ï¼Œ\verb|Phparadata("1","1");| ã¨ã™ã‚‹ãŒï¼Œã‚ã‹ã‚Šã«ãã„ã®ã§ä¸Šã®ã‚ˆã†ã«ã—ãŸã€‚\\
- 実行ã™ã‚‹ã¨ï¼ŒCinderellaã®æç”»é¢ã¯æ¬¡ã®ã‚ˆã†ã«é ‚点ã ã‘ãŒæã‹ã‚Œã‚‹ã€‚\\
- \\
- \includegraphics[bb=0 0 1452 730 , width=12cm]{Fig3d/phparadata01.png}\\
- \\
-「Texviewã€ã€ŒExekcã€ãƒœã‚¿ãƒ³ã‚’押ã™ã¨é™°ç·šå‡¦ç†ã—ãŸãƒ‡ãƒ¼ã‚¿ãŒFhead.txt ã«æ›¸ã出ã•ã‚Œï¼Œã“れを用ã„ã¦Fhead.texãŒä½œæˆã•ã‚Œã‚‹ã€‚ãã®ãŸã‚,Exekcボタンを押ã—ã¦ã‹ã‚‰å‡¦ç†ãŒå®Œäº†ã™ã‚‹ã¾ã§ã«ã‹ãªã‚Šæ™‚é–“ãŒã‹ã‹ã‚‹ã€‚(下図左)\\
- ãªãŠï¼Œã‚‚ã†ä¸€åº¦å®Ÿè¡Œã™ã‚‹ã¨ï¼Œã“ã‚“ã©ã¯ï¼ŒFhead.txt ãŒã§ãã¦ã„ã‚‹ãŸã‚ã«ï¼Œã“れを読ã¿è¾¼ã‚“ã§Cinderellaã®ç”»é¢ã§ã‚‚陰線処ç†ã•ã‚ŒãŸå›³ãŒæã‹ã‚Œã‚‹ã€‚\\
- 全体ã®ç·šç¨®ã¨ï¼Œé™°ç·šã®ç·šç¨®ã‚’\\
-  \verb|Phparadata("1","s05",["dr,2","Hidden=do"]);|\\
-ã§æŒ‡å®šã—ãŸã®ãŒä¸‹å›³å³ã§ã‚る。\\
-
-  \input{Fig3d/phparadata02}    \input{Fig3d/phparadata03}\\
-
-ã€æ³¨æ„】\\
- polyhedrons obj ã®ãƒ‡ãƒ¼ã‚¿ã‚’使ã£ã¦ï¼Œç¶šã‘ã¦ç•°ãªã‚‹å¤šé¢ä½“ã‚’æããŸã„å ´åˆã¯æ³¨æ„ãŒå¿…è¦ã§ã‚る。Readobj()ã ã‘を変更ã—ã¦åˆ¥ã®ãƒ‡ãƒ¼ã‚¿ã‚’読ã‚ã°ã‚ˆã•ãã†ã§ã‚ã‚‹ãŒï¼ŒVertexEdgeFace() ã®name も(ã—ãŸãŒã£ã¦ï¼ŒPhparadata()ã®ç¬¬2引数も)書ãæ›ãˆãªã„ã¨ï¼Œå‰ã®ãƒ‡ãƒ¼ã‚¿ãŒæ®‹ã£ã¦ã„ã¦ã†ã¾ãã„ã‹ãªã„。ãŸã¨ãˆã°ï¼Œä¸Šã®ã‚³ãƒ¼ãƒ‰ã§åˆ‡é ‚å二é¢ä½“ã‚’æã„ãŸå¾Œï¼Œæ­£å…«é¢ä½“(r02)をæã“ã†ã¨ã™ã‚‹ãªã‚‰ã°ï¼Œ
-\begin{verbatim}
- Setdirectory( Dirhead+"/data/polyhedrons_obj");
- phd=Readobj("r02.obj",["size=3"]);
- Setdirectory(Dirwork);
- VertexEdgeFace("2",phd,["Edg=nogeo"]);
- Phparadata("1","2");
-\end{verbatim}
- ã®ã‚ˆã†ã«ã™ã‚‹ã€‚\\
-
-\begin{flushright} \hyperlink{functionlist3d}{$\Rightarrow$関数一覧}\end{flushright}
-
-\hypertarget{projcoordpara}{}
-\item[関数] Projcoordpara(座標)
-\item[機能] 投影座標を求ã‚ã‚‹
-\item[説明] 空間座標を投影ã—ãŸåº§æ¨™ã‚’求ã‚る。\\
- 戻り値ã®ç¬¬ï¼‘,第2è¦ç´ ã¯Cinderellaã®æç”»é¢ã®x,y座標。第3è¦ç´ ã¯xyå¹³é¢ã«åž‚ç›´ãªzã®åº§æ¨™ã§ï¼ŽæŠ•å½±é¢ã‹ã‚‰ã®ï¼ˆç¬¦å·ä»˜ï¼‰è·é›¢ã‚’表ã™ã€‚\\
- \\
-ã€ä¾‹ã€‘\verb|Projcoordpara([3,1,2]);|\\
-  戻り値ã¯ã€€[-0.65,1.7,3.27]  ã¨ãªã‚‹ã€‚\\
-
-
-\hypertarget{putaxes3d}{}
-\item[関数] Putaxes3d([x,y,z])
-\item[機能] 軸上ã«å¹¾ä½•ç‚¹ã‚’作る。
-\item[説明] 引数ã®ãƒªã‚¹ãƒˆ [x,y,z] ã«å¯¾ã—,点X(x,0,0) ,Y(0,y,0) , Z(0,0,z) ãŠã‚ˆã³ 原点Oを主画é¢ä¸Šã«ã¨ã‚Šï¼Œå‰¯ç”»é¢ä¸Šã«å¯¾å¿œã™ã‚‹ç‚¹Xz,Yz,Zz,Oz を作る。ã™ã§ã«åŒã˜å称ã®ç‚¹ãŒã‚ã‚‹å ´åˆã¯ï¼ŒæŒ‡å®šã•ã‚ŒãŸä½ç½®ã«ç§»å‹•ã™ã‚‹ã€‚\\
- 引数ã¯ï¼Œå®Ÿæ•°ã«ã™ã‚‹ã“ã¨ã‚‚ã§ã,Putaxes3d(a) ã¯ï¼ŒPutaxes3d([a,a,a]) ã¨åŒã˜ã«ãªã‚‹ã€‚\\
-ã€ä¾‹ã€‘Putaxes3d(5); 原点ã¨ï¼Œ$x(5,0,0),y(0,5,0),z(0,0,5)$ を作る。\\
-  Putaxes3d([1,2,3]); 原点ã¨ï¼Œ$x(1,0,0),y(0,2,0),z(0,0,3)$ を作る。\\
-
-\begin{flushright} \hyperlink{functionlist3d}{$\Rightarrow$関数一覧}\end{flushright}
-
-\hypertarget{putonCurve3d}{}
-\item[関数] PutonCurve3d(点å,PD)
-\item[機能] 空間曲線上ã«ç‚¹ã‚’ã¨ã‚‹
-\item[説明] プロットデータPDã®æ›²ç·šä¸Šã«ï¼Œç‚¹åã®ç‚¹ã‚’ã¨ã‚‹ã€‚\\
- ã¨ã£ãŸç‚¹ã¯å›ºå®šç‚¹ã§ã¯ãªã,曲線上ã«ã‚¤ãƒ³ã‚·ãƒ‡ãƒ³ãƒˆã¨ãªã‚‹ã€‚ã—ãŸãŒã£ã¦ï¼Œãƒ‰ãƒ©ãƒƒã‚°ã—ã¦æ›²ç·šä¸Šã‚’å‹•ã‹ã™ã“ã¨ãŒã§ãる。例㯠\hyperlink{partcrv3d}{Partcrv3d()} ã‚’å‚ç…§ã®ã“ã¨ã€‚\\
- \\
-
-\hypertarget{putonseg3d}{}
-\item[関数] Putonseg3d(点å,点1,点2)
-\item[機能] 線分上ã«ç‚¹ã‚’å–ã‚‹
-\item[説明] 点1ã¨ç‚¹ï¼’ã®ä¸­ç‚¹ã«ï¼ŒæŒ‡å®šã•ã‚ŒãŸåå‰ã®ç‚¹ã‚’å–る。点1ã¨ç‚¹ï¼’ãŒç·šåˆ†ã¨ã—ã¦çµã°ã‚Œã¦ã„ãªãã¦ã‚‚よã„。ã¨ã£ãŸç‚¹ã¯ç·šåˆ†ã«ã‚¤ãƒ³ã‚·ãƒ‡ãƒ³ãƒˆã¨ãªã‚‹ï¼ˆç·šåˆ†ãŒæã‹ã‚Œã¦ã„ãªãã¦ã‚‚)。点1ã¨ç‚¹ï¼’ã¯ãƒªã‚¹ãƒˆã«ã™ã‚‹ã“ã¨ã‚‚ã§ãる。\\
- \\
-ã€ä¾‹ã€‘Aã¨Bã®ä¸­ç‚¹ã«ç‚¹Cã‚’ã¨ã‚‹ã€‚ã¤ãŽã®ã„ãšã‚Œã§ã‚‚よã„。\\
-  \verb|Putonseg3d("C",A,B);|\\
-  \verb|Putonseg3d("C",[A,B]);|\\
- \\
-
-\hypertarget{putpoint3d}{}
-\item[関数] Putpoint3d(リスト,option)
-\item[機能] 空間ã«å¹¾ä½•ç‚¹ã‚’作図ã™ã‚‹
-\item[説明] 点ã®å称ã¨åº§æ¨™ã‚’与ãˆã¦ç‚¹ã‚’作図ã™ã‚‹ã€‚複数ã®ç‚¹ã‚’一度ã«ä½œå›³ã§ãる。\\
- optionã¯ï¼Œ"fix" ã¾ãŸã¯ "free" (デフォルト)。\\
- "fix" ã‚’ã¤ã‘ã‚‹ã¨ï¼Œå›ºå®šç‚¹ï¼ˆãƒ‰ãƒ©ãƒƒã‚°ã§ç§»å‹•ã§ããªã„点)ã¨ã™ã‚‹ã€‚åŒã˜å称ã®ç‚¹ãŒã™ã§ã«å­˜åœ¨ã™ã‚‹å ´åˆã¯ï¼ŒæŒ‡å®šã—ãŸä½ç½®ã«ç§»å‹•ã—ã¦å›ºå®šç‚¹ã¨ã™ã‚‹ã€‚\\
- "free" ã‚’ã¤ã‘ã‚‹ã¨ï¼Œè‡ªç”±ç‚¹ï¼ˆãƒ‰ãƒ©ãƒƒã‚°ã§ç§»å‹•ã§ãる)ã¨ã™ã‚‹ã€‚åŒã˜å称ã®ç‚¹ãŒã™ã§ã«å­˜åœ¨ã™ã‚‹å ´åˆã¯ãªã«ã‚‚ã—ãªã„。\\
- \\
-ã€ä¾‹ã€‘ã„ãã¤ã‹è¨˜è¿°ä¾‹ã‚’示ã™ã€‚\\
-  \verb|Putpoint3d(["A",[2,1,3]]);|\\
-  \verb|Putpoint3d(["A",[1,1,1],"C",[1,0,1]],"fix");|\\
-  \verb|Putpoint3d(["A",[2,1,3]],"free");|\\
- \\
- ãªãŠï¼Œã“ã®é–¢æ•°ã¯å¹¾ä½•ç‚¹ã‚’作るもã®ã§ã‚り,TeXã«ã¯å‡ºåŠ›ã•ã‚Œãªã„。TeXã«ç‚¹ã‚’出力ã™ã‚‹ã«ã¯ï¼Œ\hyperlink{pointdata}{Pointdata()} ã¾ãŸã¯ \hyperlink{drwpt}{Drawpoint()}を併用ã™ã‚‹ã€‚\\
- 空間ã«ãŠã‘る点ã®åº§æ¨™ã¯ï¼Œç‚¹åã«"3d"を付加ã—ãŸåå‰ã®å¤‰æ•°ã«ä»£å…¥ã•ã‚Œã‚‹ã€‚ãŸã¨ãˆã°ï¼Œç‚¹Aã®åº§æ¨™ã¯A3dã§ã‚る。ã“ã‚Œã«ã‚ˆã‚Šï¼Œç‚¹ã®åº§æ¨™ã‚’å–å¾—ã§ãる。
-
-\begin{flushright} \hyperlink{functionlist3d}{$\Rightarrow$関数一覧}\end{flushright}
-
-\hypertarget{readobj}{}
-\item[関数] Readobj(ファイルå)
-\item[機能] objファイルを読ã¿è¾¼ã‚€ï¼Ž
-\item[説明] å°æž—・鈴木・三谷ã«ã‚ˆã‚‹å¤šé¢ä½“データ polyhedrons\_obj  を読ã¿è¾¼ã‚€ã€‚\\
-オプション㯠["size=n"] ã§ï¼Œnå€ã—ãŸãƒ‡ãƒ¼ã‚¿ã«ã™ã‚‹ã€‚è² ã®æ•°ã«ã™ã‚‹ã¨ä¸Šä¸‹ãŒå転ã•ã‚Œã‚‹ã€‚\\
-データã¯KeTCindyã®dataフォルダã®ä¸­ã«ã‚る。ã—ãŸãŒã£ã¦ï¼Œæ¬¡ã®ã‚ˆã†ãªã‚¹ã‚¯ãƒªãƒ—トを書ã。読ã¿è¾¼ã‚€ã®ã¯ä¸€åº¦ã ã‘ãªã®ã§ï¼Œ Draw スロットã§ã¯ãªãInitialization スロットã«ç½®ã‘ã°ã‚ˆã„ãŒï¼Œã‚³ãƒ¼ãƒ‰ã®å¯èª­æ€§ã‚’高ã‚ã‚‹ã«ã¯ Draw スロットã§ã‚‚よã„。
-\begin{verbatim}
- Setdirectory( Dirhead+"/data/polyhedrons_obj");
- polydt=Readobj("r02.obj");
- Setdirectory(Dirwork);
-\end{verbatim}
-ã“ã‚Œã§ï¼Œr02.obj データãŒï¼Œå¤‰æ•° polydt ã«ä»£å…¥ã•ã‚Œã‚‹ã€‚\\
-ã“ã®å¤šé¢ä½“データã¯ï¼Œé ‚点リストã¨é¢ãƒªã‚¹ãƒˆã‹ã‚‰ãªã£ã¦ã„ã‚‹ãŒï¼Œé ‚点リストã¯åº§æ¨™ã®ãƒªã‚¹ãƒˆãªã®ã§ï¼Œèª­ã¿è¾¼ã‚“ã§è¡¨ç¤ºã™ã‚‹ã¨ãã«ã¯ï¼Œç‚¹ã®å称を v1,v2,・・・ ã¨ã™ã‚‹ã€‚\\
-読ã¿è¾¼ã‚“ã ã‚ã¨ã®ä½¿ã„方をå«ã‚ã¦ä¾‹ã‚’示ã™ã€‚\\
-
-ã€ä¾‹ã€‘正八é¢ä½“ã‚’æã
-\begin{verbatim}
- Setdirectory( Dirhead+"/data/polyhedrons_obj");
- polydt=Readobj("r02.obj",["size=2"]);
- Setdirectory(Dirwork);
- VertexEdgeFace("1",polydt,["Edg=nogeo"]);
- Nohiddenbyfaces("1","phf3d1");
-\end{verbatim}
-   \input{Fig3d/readobj}
-
-\begin{flushright} \hyperlink{functionlist3d}{$\Rightarrow$関数一覧}\end{flushright}
-
-\hypertarget{reflectpoint3d}{}
-\item[関数] Reflectpoint3d(座標,リスト)
-\item[機能] 点ã®é¡æ˜ ç‚¹ã‚’求ã‚ã‚‹
-\item[説明] 第2引数ã®ã‚¿ã‚¤ãƒ—ã«ã‚ˆã‚Šï¼Œç‚¹ã«é–¢ã™ã‚‹é¡æ˜ ï¼Œç›´ç·šã«é–¢ã™ã‚‹é¡æ˜ ï¼Œé¢ã«é–¢ã™ã‚‹é¡æ˜ ã®ãã‚Œãžã‚Œã®ç‚¹ã®åº§æ¨™ã‚’è¿”ã™ã€‚\\
- \\
-ã€ä¾‹ã€‘点A,B,C,Dを空間ã«ã¨ã‚Šï¼Œç‚¹Aã®é¡æ˜ ç‚¹ã®åº§æ¨™ã‚’求ã‚る。\\
-  点Bã«é–¢ã™ã‚‹é¡æ˜ ç‚¹ã€€ã€€ã€€\verb|Reflectpoint3d(A3d,[B3d]);|\\
-  直線BCã«é–¢ã™ã‚‹é¡æ˜ ç‚¹ã€€\verb|Reflectpoint3d(A3d,[B3d,C3d]);|\\
-  平é¢BCDã«é–¢ã™ã‚‹é¡æ˜ ç‚¹ã€€\verb|Reflectpoint3d(A3d,[B3d,C3d,D3d]);|\\
-
-\hypertarget{rotate3pt}{}
-\item[関数] Rotate3pt(座標,vec,角度,中心点)
-\item[機能] 点を回転ã™ã‚‹
-\item[説明] 第1引数ã®åº§æ¨™ã®ç‚¹ã‚’回転ã™ã‚‹ã€‚vecã¯å›žè»¢è»¸ã®æ–¹å‘ベクトル。中心点ã¯æ–¹å‘ベクトルã®å§‹ç‚¹ã€‚第4引数をçœç•¥ã—ãŸå ´åˆã¯åŽŸç‚¹ã¨ã™ã‚‹ã€‚\\
- \\
-ã€ä¾‹ã€‘点Aã‚’(0,-1,0) ã«ç½®ã„ãŸã¨ãã®è¨˜è¿°ä¾‹ã¨çµæžœï¼ˆæˆ»ã‚Šå€¤ï¼‰\\
-  \verb|Rotate3pt(A3d,[0,0,1],pi/2)|;     戻り値㯠[1,0,0]\\
-  \verb|Rotate3pt(A3d,[0,0,1],pi/2,[1,1,1]);| 戻り値ã¯[3,0,0]\\
- \\
-
-\hypertarget{rotatedata3d}{}
-\item[関数] Rotatedata3d(name,PDリスト,vec,角度,options)
-\item[機能] プロットデータを回転
-\item[説明] プロットデータを,原点を始点ã¨ã™ã‚‹ãƒ™ã‚¯ãƒˆãƒ«vec 周りã«å›žè»¢ã™ã‚‹ã€‚複数ã®ãƒ—ロットデータをã¾ã¨ã‚ã¦å›žè»¢ã™ã‚‹ã“ã¨ãŒã§ãる。\\
-options ã¨ã—ã¦ï¼Œä¸­å¿ƒç‚¹ï¼ˆvecã®å§‹ç‚¹ï¼‰ï¼Œç·šç¨®ã‚’指定ã™ã‚‹ã“ã¨ãŒã§ãる。\\
- \\
-ã€ä¾‹ã€‘コード例ã¨çµæžœã‚’示ã™ã€‚
-\begin{verbatim}
- Xyzax3data("","x=[-5,4]","y=[-5,5]","z=[-5,4]",["a","O"]);
- Putpoint3d(["A",[0,-2,0],"B",[2,-2,0],"C",[1,-2,2],"D",[1,-2,3]],"fix");
- Spaceline("1",[A,B,C,A]);
- Spaceline([C,D]);
- Rotatedata3d("1",["sl3d1","CD3d"],[0,0,1],pi/2,["dr,2"]);
- Letter([A,"s","A",B,"w","B",C,"ne","C",D,"ne","D"]);
-\end{verbatim}
-ã“れを\\
- \verb|Rotatedata3d("1",["sl3d1","CD3d"],[0,0,1],pi/2,[[1,0,0],"dr,2"]);|\\
-ã¨ã—ãŸå ´åˆãŒå³å›³ã§ã‚る。\\
-
- \input{Fig3d/rotatedata3d01} \input{Fig3d/rotatedata3d02}\\
-
-\hypertarget{sf3data}{}
-\item[関数] Sf3data(name,リスト,options)
-\item[機能] 陰線処ç†ãªã—ã®æ›²é¢ã‚’ワイヤーフレームモデルã§æã
-\item[説明] リストã¯ï¼Œé–¢æ•°å¼ã¨å®šç¾©åŸŸï¼Œå¢ƒç•ŒæŒ‡å®šã‚’ãã‚Œãžã‚Œæ–‡å­—列ã«ã—ãŸã‚‚ã®ã®ãƒªã‚¹ãƒˆã€‚\\
-optionsã¯ï¼Œè§£åƒåº¦ï¼ˆå„変数ã«å¯¾å¿œã™ã‚‹åˆ†å‰²æ•°ï¼‰ã¨ãƒ¡ãƒƒã‚·ãƒ¥ã®å¯†åº¦ï¼ˆç¸¦æ¨ªï¼‰ã€‚\\
-解åƒåº¦ã¯ï¼Œ"Num=[a,b]" ã§æŒ‡å®šã€‚åˆæœŸå€¤ã¯a,bã¨ã‚‚25\\
-メッシュ密度ã¯ï¼Œ"Wire=[a,b]" ã§æŒ‡å®šã€‚åˆæœŸå€¤ã¯a,bã¨ã‚‚20\\
-境界ã®æŒ‡å®šã¯"ewsn"ã§è¡Œã†ã€‚\\
-関数å¼ã®ãƒ‘ターンã¯ã¤ãŽã®3通り。\\
- \\
-(1) $z=f(x,y)$\\
- ã€ä¾‹ã€‘:$z=x^2-y^2$を定義域$x=[-2,2],y=[-2,2]$ ã§æç”»ã™ã‚‹ã€‚\\
-   \verb|Sf3data("1",["z=x^2-y^2","x=[-2,2]","y=[-2,2]"])|;\\
-       \input{Fig3d/saddle1}\\
- ã€ä¾‹ã€‘:åŒã˜ã,解åƒåº¦ã‚’x,yã¨ã‚‚10,メッシュã®æ•°ã‚’縦横ã¨ã‚‚10ã«ã™ã‚‹ã€‚\\
-   解åƒåº¦ï¼Œãƒ¡ãƒƒã‚·ãƒ¥å¯†åº¦ã¨ã‚‚下ã’ã‚‹ã®ã§ç²—ã„æç”»ã¨ãªã‚‹ã€‚\\
-   \verb|Sf3data("1",["z=x^2-y^2","x=[-2,2]","y=[-2,2]"],|\\
-      \verb|["Num=[10,10]","Wire=[10,10]"]);|\\
- \\
-(2) $z=f(x,y),x=g(R,T),y=h(R,T)$\\
-  x,y ã®åª’介変数 r,t ã¯å¤§æ–‡å­—ã«ã™ã‚‹ã€‚\\
- ã€ä¾‹ã€‘:次図左\\
-   \verb|fd=["z=4-(x^2+y^2)","x=R*cos(T)","y=R*sin(T)","R=[0,2]","T=[0,2*pi]"];|\\
-   \verb|Sf3data("1",fd);|\\
- ã€ä¾‹ã€‘:次図å³\\
-   \verb|fd=["z=sin(sqrt(abs(x^2+y^2)))","x=r*cos(t)","y=r*sin(t)",|\\
-         \verb|"r=[0,3]","t=[0,2*pi]"];|\\
-   \verb|Sf3data("1",fd);|\\
-\\
- \input{Fig3d/parabola}  \input{Fig3d/sf3ddata3}\\
-\\
-(3) $x=f(u,v),y=g(u,v),z=h(u,v),$\\
- ã“ã®å ´åˆï¼Œ(2)ã¨åŒºåˆ¥ã™ã‚‹ãŸã‚ã«ï¼Œ"p" を先頭ã«ã¤ã‘ã¦ãŠã。\\
- ã€ä¾‹ã€‘çƒé¢\\
-  \verb|fd=["p","x=2*sin(u)*cos(v)","y=2*sin(u)*sin(v)","z=2*cos(u)",|\\
-     \verb|"u=[0,pi]","v=[0,2*pi]"];|\\
-  \verb|Sf3data("1",fd);|\\
-
-      \input{Fig3d/sf3ddata4}\\
-
-\begin{flushright} \hyperlink{functionlist3d}{$\Rightarrow$関数一覧}\end{flushright}
-
-\hypertarget{sfbdparadata}{}
-\item[関数] Sfbdparadata(name,å¼,options1,options2)
-\item[機能] 空間曲é¢ã®é™°ç·šå‡¦ç†
-\item[説明] 曲é¢ã«ã¤ã„ã¦é™°ç·šå‡¦ç†ã‚’è¡Œã†ã€‚
- 曲é¢ã®å¼ã¯Sf3data()ã®å ´åˆã¨åŒã˜ã€‚ãŸã ã—,(2) ã¨(3)ã®ãƒ‘ターンã§ã¯å¼ã®æœ€å¾Œã«å¢ƒç•Œã®æŒ‡å®š ewns を明示ã™ã‚‹å¿…è¦ãŒã‚る。(3)ã§ã¯å¢ƒç•Œã®æŒ‡å®šã‚’" "(中ã¯åŠè§’スペース)ã¨ã™ã‚‹ã€‚çœç•¥ã™ã‚‹ã¨ä¸è¦ãªå¢ƒç•Œç·šãŒè¡¨ç¤ºã•ã‚Œã‚‹ã“ã¨ãŒã‚る。\\
-options1ã¯ï¼Œ"Wait=n","r","m",線種。Wait ã®åˆæœŸå€¤ã¯30。\\
- "r","m"ã«é–¢ã—ã¦ã¯ï¼Œã‚ªãƒ—ションãªã—ã¾ãŸã¯ï¼Œâ€â€ ã®ã¨ã\\
-  i) データファイルãŒãªã‘ã‚Œã°ï¼Œæ–°ã—ã作る\\
-  ii) データファイルãŒæ—¢ã«ã‚ã‚Œã°ãれを読ã¿è¾¼ã‚€\\
- "m" ã®ã¨ã,強制的ã«ãƒ‡ãƒ¼ã‚¿ãƒ•ã‚¡ã‚¤ãƒ«ã‚’作り直ã™ã€‚\\
- "r" ã®ã¨ã,ã™ã§ã«ã‚るデータファイルを読ã¿è¾¼ã‚€ã€‚\\
-options2ã¯ï¼Œé™°ç·šã«é–¢ã™ã‚‹optionã§ï¼Œ"nodisp" ã¾ãŸã¯ 線種。"nodisp" ã«ã™ã‚‹ã¨é™°ç·šã¯æ¶ˆåŽ»ã•ã‚Œã‚‹ãŸã‚,輪郭線ã ã‘ãŒæã‹ã‚Œã‚‹ã“ã¨ã«ãªã‚‹ï¼ˆãƒ‡ãƒ•ã‚©ãƒ«ãƒˆï¼‰ã€‚options2 ã ã‘を指定ã™ã‚‹å ´åˆã¯ï¼Œoptions1 を空リストã«ã—ã¦ã¤ã‘ã‚‹å¿…è¦ãŒã‚る。\\
-
- \textcolor{red}{ã€æ³¨æ„】} ã“ã®å‡¦ç†ã¯Scilabã§è¡Œã†ãŒï¼Œéžå¸¸ã«æ™‚é–“ãŒã‹ã‹ã‚‹ãŸã‚,ã“ã®é–¢æ•°ã‚’実行ã—ãŸçŠ¶æ…‹ã§ç”»é¢ä¸Šã®ã‚¹ãƒ©ã‚¤ãƒ€ã‚’å‹•ã‹ã—ãŸã‚Šã—ãªã„ã“ã¨ã€‚何ã‹æ“作を行ã†å ´åˆã¯ï¼Œã„ã£ãŸã‚“行頭ã«//を書ã„ã¦ã‚³ãƒ¡ãƒ³ãƒˆåŒ–ã—ã¦ã‹ã‚‰è¡Œã†ã€‚\\
-
-ã€ä¾‹ã€‘サドルé¢\\
-陰線を消去ã—ã¦è¡¨ç¤ºï¼ˆãƒ‡ãƒ•ã‚©ãƒ«ãƒˆï¼‰ï¼ˆä¸‹å›³å·¦ï¼‰
-\begin{verbatim}
- fd=["x=x^2-y^2","x=[-2,2]","y=[-2,2]"];
- Sfbdparadata("1",fd);
-\end{verbatim}
-全体を実線ã§å¤ªã‚ã«ã—ã¦ï¼Œé™°ç·šã‚’点線ã§è¡¨ç¤ºï¼ˆä¸‹å›³å³ï¼‰
-\begin{verbatim}
- fd=["x=x^2-y^2","x=[-2,2]","y=[-2,2]"];
- Sfbdparadata("1",fd,["dr,2"],["do"]);
-\end{verbatim}
-   \input{Fig3d/sfbdpara01}  \input{Fig3d/sfbdpara02}
-
-ã€ä¾‹ã€‘放物é¢\\
-デフォルト(下図左)
-\begin{verbatim}
- fd=["z=4-(x^2+y^2)","x=R*cos(T)","y=R*sin(T)","R=[0,2]","T=[0,2*pi]","e"];
- Sfbdparadata("1",fd);
-\end{verbatim}
-é™°ç·šã‚’ç ´ç·šã§è¡¨ç¤ºï¼ˆä¸‹å›³å³ï¼‰
-\begin{verbatim}
- fd=["z=4-(x^2+y^2)","x=R*cos(T)","y=R*sin(T)","R=[0,2]","T=[0,2*pi]","e"];
- Sfbdparadata("1",fd,[],["da"]);
-\end{verbatim}
-   \input{Fig3d/sfbdpara03}  \input{Fig3d/sfbdpara04
-}
-
-\begin{flushright} \hyperlink{functionlist3d}{$\Rightarrow$関数一覧}\end{flushright}
-
-\hypertarget{skeletonparadata}{}
-\item[関数] Skeletonparadata(name,PDリスト,PDリスト,option)
-\item[機能] 陰線処ç†ï¼ˆã‚¹ã‚±ãƒ«ãƒˆãƒ³å‡¦ç†ï¼‰ã‚’ãŠã“ãªã†
-\item[説明] æç”»ã•ã‚Œã¦ã„ã‚‹ç·šã¨è»¸ã«ã¤ã„ã¦é™°ç·šå‡¦ç†ã‚’ãŠã“ãªã†ã€‚\\
-第2引数ã®ç·šï¼ˆãƒ—ロットデータ)ãŒï¼Œç¬¬ï¼“引数ã®ç·šï¼ˆãƒ—ロットデータ)ã«ã‚ˆã£ã¦éš ã•ã‚Œã‚‹éƒ¨åˆ†ã‚’消去ã™ã‚‹ã€‚第2,第3引数をçœç•¥ã—ãŸå ´åˆã¯ï¼Œã™ã¹ã¦ã®ç·šã«ã¤ã„ã¦ï¼Œäº’ã„ã®é™°ç·šå‡¦ç†ã‚’ãŠã“ãªã†ã€‚optionã§æ¶ˆåŽ»ã™ã‚‹éƒ¨åˆ†ã®é•·ã•ã‚’指定ã§ãる。\\
- \\
-ã€ä¾‹ã€‘螺旋ã¨ç·šåˆ†ï¼Œåº§æ¨™è»¸ã®é™°ç·šå‡¦ç†\\
-次ã®ã‚ˆã†ã«èžºæ—‹ã¨ç·šåˆ†ï¼Œåº§æ¨™è»¸ã‚’æã„ã¦ãŠã。
-\begin{verbatim}
- Xyzax3data("","x=[-5,5]","y=[-5,4]","z=[-5,3]");
- Putpoint3d(["A",[0,-2,-2]],"fix");
- Putpoint3d(["B",[-1,1,3]],"fix");
- Spaceline([A,B]);
- Spacecurve("1","[2*cos(t),2*sin(t),0.2*t]","t=[0,4*pi]",["Num=100"]);
-\end{verbatim}
-座標軸ã®ãƒ—ロットデータ㯠ax3d,線分㯠AB3d,螺旋㯠sc3d1 ã§ã‚る。ã“ã‚Œã«å¯¾ã—,\\
- \verb|Skeletonparadata("1");|\\
-   æç”»ã•ã‚Œã¦ã„ã‚‹ç·šã¨è»¸ã«ã¤ã„ã¦é™°ç·šå‡¦ç†ã‚’ãŠã“ãªã†ã€‚(図左)\\
- \verb|Skeletonparadata("1",[2]);|\\
-   é‡ãªã£ãŸéƒ¨åˆ†ã®ç©ºãã‚’2ã«ã™ã‚‹ã€‚(図中央)\\
- \verb|Skeletonparadata("1",["AB3d","ax3d"],["sc3d1"]);|\\
-   螺旋ã«ã‚ˆã£ã¦éš ã‚Œã‚‹éƒ¨åˆ†ã ã‘消去ã™ã‚‹ã€‚(図å³ï¼‰\\
-
-\input{Fig3d/skeletonparadata01}  \input{Fig3d/skeletonparadata02}
-  \input{Fig3d/skeletonparadata03}
-
-ã“ã®ã»ã‹ï¼Œ\\
- \verb|Skeletonparadata("1",["AB3d","ax3d"],["sc3d1"],[2]);|\\
- \verb|Skeletonparadata("1",["AB3d"],["ax3d","sc3d1"]);|\\
-ã‚‚å¯èƒ½ã§ã‚る。
-
-\begin{flushright} \hyperlink{functionlist3d}{$\Rightarrow$関数一覧}\end{flushright}
-
-\hypertarget{spacecurve}{}
-\item[関数] Spacecurve(name,å¼,定義域,options)
-\item[機能] 空間曲線をæã
-\item[説明] 媒介変数ã§è¡¨ã•ã‚ŒãŸæ›²ç·šã‚’æã。optionã¯è§£åƒåº¦ Num\\
- \\
-ã€ä¾‹ã€‘螺旋をæã\\
-  \verb|Spacecurve("1","[2*cos(t),2*sin(t),0.2*t]","t=[0,4*pi]",["Num=100"]);|\\
- \\
-     \input{Fig3d/rasen}\\
-
-\hypertarget{spaceline}{}
-\item[関数] Spaceline(リスト)
-\item[機能] 折れ線をæã
-\item[説明] 点ã®å称ã¾ãŸã¯åº§æ¨™ã®ãƒªã‚¹ãƒˆã‚’与ãˆã¦æŠ˜ã‚Œç·šã‚’æã。平é¢ã§ã® Listplot() ã«ã‚ãŸã‚‹ã€‚\\
-ã€ä¾‹ã€‘Spaceline("1",[[2,5,1],[4,2,3]]);  指定ã•ã‚ŒãŸï¼’点をçµã‚“ã ç·šåˆ†ã‚’æã。\\
-  Spaceline([A,B,C,A]); 作図ã•ã‚Œã¦ã„る2点A,B,Cã‚’çµã‚“ã ä¸‰è§’形をæã。\\
-  options ã¯ç·šç¨®ï¼ˆdr,da,do)\\
- \\
-
-\hypertarget{translatedata3d}{}
-\item[関数] Translatedata3d(name,PD,平行移動é‡)
-\item[機能] 空間プロットデータを平行移動
-\item[説明] PDã§è¡¨ã•ã‚Œã‚‹å›³å½¢ã‚’,平行移動ã™ã‚‹ã€‚\\
- \\
-ã€ä¾‹ã€‘曲線 sc3d1 ã‚’y軸方å‘ã«ï¼’ã ã‘平行移動ã™ã‚‹ã€‚\\
-  \verb|Translatedata3d("1",["sc3d1"],[0,2,0]);|\\
-  çµæžœã¨ã—ã¦ï¼Œã‚‚ã¨ã®æ›²ç·šã¨å¹³è¡Œç§»å‹•ã—ãŸæ›²ç·šã®ï¼’ã¤ãŒæã‹ã‚Œã‚‹ã€‚\\
- \\
-ã€ä¾‹ã€‘多é¢ä½“ã®å¹³è¡Œç§»å‹•\\
- VertexEdgeFace() ã§æã„ãŸå¤šè§’å½¢ã¯ã“ã®é–¢æ•°ã§ã¯å¹³è¡Œç§»å‹•ã§ããªã„ã®ã§ï¼Œé¢ãƒ‡ãƒ¼ã‚¿ã‚’直接æ“作ã—ã¦å¹³è¡Œç§»å‹•ã‚’è¡Œã†ã€‚\\
- ãŸã¨ãˆã°ï¼Œå°æž—・鈴木・三谷ã«ã‚ˆã‚‹å¤šé¢ä½“データ polyhedrons obj を用ã„ã¦æ­£å…«é¢ä½“ã‚’æãå ´åˆï¼Œæ¬¡ã®ã‚ˆã†ã«ã™ã‚‹ã€‚$y$軸方å‘ã«ï¼’ã ã‘平行移動ã™ã‚‹å ´åˆã§ã‚る。\\
-\begin{verbatim}
- Setdirectory( Dirhead+"/data/polyhedrons_obj");
- phd=Readobj("r02.obj",["size=2"]);
- Setdirectory(Dirwork);
- dn=length(phd_1);
- repeat(dn,s,phd_1_s=phd_1_s+[0,2,0]);
- VertexEdgeFace("1",phd,["Edg=nogeo"]);
-\end{verbatim}
-   \input{Fig3d/translate01}
-
-\begin{flushright} \hyperlink{functionlist3d}{$\Rightarrow$関数一覧}\end{flushright}
-
-\hypertarget{translatept3d}{}
-\item[関数] Translatept3d(座標,平行移動é‡)
-\item[機能] 空間点を平行移動
-\item[説明] 点を平行移動ã™ã‚‹ã€‚\\
- \\
-ã€ä¾‹ã€‘点A(1,0,0) ã‚’(-1,1,1)ã ã‘平行移動ã—ãŸç‚¹ã‚’Bã¨ã™ã‚‹ã€‚点Aã®ç©ºé–“座標㯠A3d ã§è¡¨ã•ã‚Œã‚‹ã€‚
-\begin{verbatim}
- Putpoint3d(["A",[1,0,0]],"fix");
- pt=Translatept3d(A3d,[-1,1,1]);
- Putpoint3d(["B",pt],"fix");
-\end{verbatim}
- \\
-\begin{flushright} \hyperlink{functionlist3d}{$\Rightarrow$関数一覧}\end{flushright}
-
-\hypertarget{vertexedgeface}{}
-\item[関数] VertexEdgeFace(é¢ãƒ‡ãƒ¼ã‚¿,options)
-\item[機能] 多é¢ä½“ã®é¢ãƒ‡ãƒ¼ã‚¿ã‚’用ã„ã¦å¤šé¢ä½“ã‚’æã
-\item[説明] é¢ãƒ‡ãƒ¼ã‚¿ã¯ï¼Œé ‚点リストã¨ï¼Œé¢ãƒªã‚¹ãƒˆã‹ã‚‰ãªã‚‹ã€‚é¢ãƒªã‚¹ãƒˆã¯ï¼Œå„é¢ã‚’構æˆã™ã‚‹é ‚点を,外å´ã‹ã‚‰è¦‹ã¦å時計回り(左回り)ã«ä¸¦ã¹ãŸãƒªã‚¹ãƒˆã§ã‚る。\\
-ãŸã¨ãˆã°ï¼Œå››é¢ä½“ABCDã®é¢ãƒ‡ãƒ¼ã‚¿ã¯ï¼Œ[[A,B,C,D],[[1,2,3],[1,2,4],[1,3,4],[2,3,4]]] ã¨ãªã‚‹ã€‚\\
-4点A,B,C,Dã‚’ã¨ã£ã¦ãŠã,ã“ã®ãƒªã‚¹ãƒˆã‚’引数ã«ä¸Žãˆã‚‹ã¨ï¼Œå››é¢ä½“ã®è¾ºãŒæã‹ã‚Œã‚‹ã€‚\\
-ã“ã®ã¨ã,option ãŒãªã‘ã‚Œã°ï¼ŒCinderellaã®å¹¾ä½•è¦ç´ ã¨ã—ã¦è¾ºãŒæã‹ã‚Œã‚‹ãŒï¼Œãã‚Œã ã‘ã§ã¯TeXã«ã¯æ›¸ã出ã•ã‚Œãªã„ã®ã§æ³¨æ„ãŒå¿…è¦ã§ã‚る。(変数未定義ã®ã‚¨ãƒ©ãƒ¼ã«ãªã‚‹) TeXã«æ›¸ã出ã™ã«ã¯ï¼Œoptionã¨ã—㦠["Edg=nogeo"] ã‚’ã¤ã‘る。ã“ã®ã¨ãã¯å„辺ã¯å¹¾ä½•è¦ç´ ã«ãªã‚‰ãªã„。\\
-ã¾ãŸï¼Œ"Pt=free" optionã‚’ã¤ã‘ã‚‹ã¨ï¼Œé ‚点ã¯è‡ªç”±ç‚¹ã¨ãªã‚Šï¼Œãƒžã‚¦ã‚¹ãƒ‰ãƒ©ãƒƒã‚°ã§å‹•ã‹ã™ã“ã¨ãŒã§ãる。\\
-生æˆã•ã‚Œã‚‹ãƒ—ロットデータã¯ï¼Œ\\
-phv3d:頂点ã®ãƒªã‚¹ãƒˆ\\
-phe3d:辺ã®ãƒªã‚¹ãƒˆ\\
-phf3d:é¢ãƒªã‚¹ãƒˆ\\
-ãªãŠï¼Œãã‚Œãžã‚Œæœ«å°¾ã«nameãŒä»˜åŠ ã•ã‚Œã‚‹ã€‚\\
- \\
-ã€ä¾‹ã€‘:正四é¢ä½“ã‚’æã
-\begin{verbatim}
- Putpoint3d("A",2*[-1,-1/sqrt(3),0],"fix");
- Putpoint3d("B",2*[1,-1/sqrt(3),0],"fix");
- Putpoint3d("C",2*[0,sqrt(3)-1/sqrt(3),0],"fix");
- Putpoint3d("D",2*[0,0,sqrt(3)],"fix");
- phd=Concatobj([[A,B,C],[A,B,D],[A,C,D],[B,C,D]]);
- VertexEdgeFace("1",phd,["Edg=nogeo"]);
-\end{verbatim}
-    \input{Fig3d/vertex01}
-
-\begin{flushright} \hyperlink{functionlist3d}{$\Rightarrow$関数一覧}\end{flushright}
-
-\hypertarget{wireparadata}{}
-\item[関数] Wireparadata(name,PD,å¼,æ•´æ•°,æ•´æ•°,optons1,options2)
-\item[機能] 曲é¢ã®ãƒ¯ã‚¤ãƒ¤ãƒ•ãƒ¬ãƒ¼ãƒ ã‚’陰線処ç†ã—ã¦æã
-\item[説明] PDã¯ï¼Œç¬¬ï¼“引数ã®å¼ã§æã„ãŸãƒ¯ã‚¤ãƒ¤ãƒ•ãƒ¬ãƒ¼ãƒ ãƒ¢ãƒ‡ãƒ«ã®ãƒ—ロットデータå。第4,第5引数ã¯åˆ†å‰²ç·šã®æ•°ã€‚\\
-options1 ã«ã¯ "r","m","Wait=n" ãŒæŒ‡å®šã§ãる。Wait ã®åˆæœŸå€¤ã¯30。\\
- "r","m"ã«é–¢ã—ã¦ã¯ï¼Œã‚ªãƒ—ションãªã—ã¾ãŸã¯ï¼Œâ€â€ ã®ã¨ã\\
-  i) データファイルãŒãªã‘ã‚Œã°ï¼Œæ–°ã—ã作る\\
-  ii) データファイルãŒæ—¢ã«ã‚ã‚Œã°ãれを読ã¿è¾¼ã‚€\\
- "m" ã®ã¨ã,強制的ã«ãƒ‡ãƒ¼ã‚¿ãƒ•ã‚¡ã‚¤ãƒ«ã‚’作り直ã™ã€‚\\
- "r" ã®ã¨ã,ã™ã§ã«ã‚るデータファイルを読ã¿è¾¼ã‚€ã€‚\\
-optons2 ã«ã¯é™°ç·šã®è¡¨ç¤ºæ–¹æ³•ã«ã¤ã„㦠"nodisp" ã¾ãŸã¯ç·šç¨® ãŒã‚る。デフォルトã¯"nodisp" 。何も指定ã—ãªã„ã¨ãã¯ï¼Œ[""] (空文字)を書ã„ã¦ãŠã。\\
-曲é¢ã®é™°ç·šå‡¦ç†ã‚’è¡Œã†ã®ã§ï¼ŒSfbdparadata() ã¨ãƒšã‚¢ã§ä½¿ã†ã€‚\\
- \\
- \textcolor{red}{ã€æ³¨æ„】} \\
- ã“ã®å‡¦ç†ã¯Scilabã§è¡Œã†ãŒï¼ŒSfbdparadata() ã¨ãƒšã‚¢ã§ä½¿ã†ãŸã‚ã«éžå¸¸ã«æ™‚é–“ãŒã‹ã‹ã‚‹ã€‚コンピュータã®æ€§èƒ½ã«ã‚‚よるãŒï¼’分以上ã‹ã‹ã“ã¨ã‚‚ã‚る。ã—ãŸãŒã£ã¦ï¼Œã“ã®é–¢æ•°ã‚’実行ã—ãŸçŠ¶æ…‹ã§ç”»é¢ä¸Šã®ã‚¹ãƒ©ã‚¤ãƒ€ã‚’å‹•ã‹ã—ãŸã‚Šã—ãªã„ã“ã¨ã€‚何ã‹æ“作を行ã†å ´åˆã¯ï¼Œã„ã£ãŸã‚“行頭ã«//を書ã„ã¦ã‚³ãƒ¡ãƒ³ãƒˆåŒ–ã—ã¦ã‹ã‚‰è¡Œã†ã€‚çƒé¢ã‚„トーラスã®ã‚¿ã‚¤ãƒ—ã§ã¯ï¼ŒTexview ã‚„ Exekc ボタンã®å応もéˆããªã‚‹ã€‚Exekc ãŒå‹•ä½œã—ãªã„(タイムアウト)場åˆã¯ï¼Œkc.sh(Mac) / kc.bat(Windows)を直接起動ã™ã‚Œã° TeX ã®å›³ãŒã§ãる。\\
- \\
-ã€ä¾‹ã€‘å¼ã®ã‚¿ã‚¤ãƒ—別ã«ä¾‹ã‚’示ã™ã€‚\\
- \\
-サドルé¢ï¼šä¸‹å›³å·¦
-\begin{verbatim}
- fd=["z=x^2-y^2","x=[-2,2]","y=[-2,2]"];
- Sfbdparadata("1",fd);
- Wireparadata("1","sfbd3d1",fd,4,5,[""]);
-\end{verbatim}
- \\
-回転放物é¢ï¼šä¸‹å›³ä¸­å¤®
-\begin{verbatim}
- fd=["z=4-(x^2+y^2)","x=r*cos(t)","y=r*sin(t)","r=[0,2]","t=[0,2*pi]","e"];
- Sfbdparadata("1",fd);
- Wireparadata("1","sfbd3d1",fd,5,7,[""]);
-\end{verbatim}
- \\
-çƒé¢ï¼šä¸‹å›³å³\\
- ã“ã®ã‚¿ã‚¤ãƒ—ã§ã¯ï¼Œåª’介変数形å¼ã®è­˜åˆ¥ã®ãŸã‚,先頭㫠"p" ã‚’ã¤ã‘ã¦ãŠãã¨ã‚ˆã„。
-\begin{verbatim}
- fd=["p","x=2*sin(u)*cos(v)","y=2*sin(u)*sin(v)","z=2*cos(u)","u=[0,pi]",
-   "v=[0,2*pi]","s"];
- Sfbdparadata("1",fd);
-  Wireparadata("1","sfbd3d1",fd,12,12,[""]);
-\end{verbatim}
- \\
-\input{Fig3d/wirepara1} \input{Fig3d/wirepara2} \input{Fig3d/wirepara3}\\
- \\
-ã€ä¾‹ã€‘çƒé¢ã§åº§æ¨™è»¸ã‚’陰線処ç†ã—ã¦ç‚¹ç·šã§è¡¨ã™ã€‚(次図左)
-\begin{verbatim}
- fd=["p","x=2*sin(u)*cos(v)","y=2*sin(u)*sin(v)","z=2*cos(u)","u=[0,pi]",
-   "v=[0,2*pi]","s"];
- Sfbdparadata("1",fd);
- Wireparadata("1","sfbd3d1",fd,12,12,[""]);
- Crvsfparadata("1","ax3d","sfbd3d1",fd,[],["do"]);
-\end{verbatim}
-ã€ä¾‹ã€‘トーラスをæã(次図å³ï¼‰
-\begin{verbatim}
- fd=["p","x=(2+cos(u))*cos(v)","y=(2+cos(u))*sin(v)","z=sin(u)",
-   "u=[0,2*pi]","v=[0,2*pi]","s"];
- Sfbdparadata("1",fd);
- Wireparadata("1","sfbd3d1",fd,12,12,[""]);
-\end{verbatim}
- \\
-  \input{Fig3d/wirepara4}  \input{Fig3d/wirepara5}\\
-
-\begin{flushright} \hyperlink{functionlist3d}{$\Rightarrow$関数一覧}\end{flushright}
- \\
-\hypertarget{xyzax3data}{}
-\item[関数] Xyzax3data(name,xã®ç¯„囲,yã®ç¯„囲,zã®ç¯„囲,options)
-\item[機能] 座標軸をæã
-\item[説明] æç”»é¢ã«åº§æ¨™è»¸ã‚’æã。nameã¯ç©ºæ–‡å­—列ã§ã‚ˆã„。プロットデータ ax3d ãŒä½œæˆã•ã‚Œã‚‹ã€‚option ã¯æ¬¡ã®2ã¤ã€‚\\
-矢ã˜ã‚Šï¼š"an":nã¯æ•°å­—ã§çŸ¢ã˜ã‚Šã®å¤§ãã•ã€‚nã¯ãªãã¦ã‚‚よã„。\\
-原点O:"Onesw":neswã¯å¾®å°ä½ç½®ã€‚数字も付ã‘られる。neswã‚’ã¤ã‘ãªã„å ´åˆã®åˆæœŸå€¤ã¯sw。\\
-ã€ä¾‹ã€‘デフォルトã®åº§æ¨™è»¸\\
-    \verb|Xyzax3data("","x=[-5,5]","y=[-5,5]","z=[-5,5]");|\\
-   矢ã˜ã‚Šã‚’ã¤ã‘ã‚‹\\
-    \verb|Xyzax3data("","x=[-5,5]","y=[-5,5]","z=[-5,5]","a");|\\
-   矢ã˜ã‚Šã‚’大ããã™ã‚‹\\
-    \verb|Xyzax3data("","x=[-5,5]","y=[-5,5]","z=[-5,5]",["a2"]);|\\
-   原点ã®Oを表示ã™ã‚‹ã€‚\\
-    \verb|Xyzax3data("","x=[-5,5]","y=[-5,5]","z=[-5,5]",["O"]);|\\
-   原点ã®Oã®ä½ç½®ã‚’調整ã—ã¦å³ä¸Šã«è¡¨ç¤ºã™ã‚‹ã€‚ã‚„ã˜ã‚Šã‚‚ã¤ã‘る。\\
-    \verb|Xyzax3data("","x=[-5,5]","y=[-5,5]","z=[-5,5]",["a","Oe2n2"]);|\\
-
-ã€æ³¨æ„】Putaxes3d() ã§ç‚¹ã‚’å–ã‚‹ã¨åŽŸç‚¹ã«ç‚¹OãŒä½œæˆã•ã‚Œã‚‹ã€‚ã“ã®ç‚¹åOã¨è¡¨ç¤ºãŒé‡è¤‡ã™ã‚‹ã®ãŒç…©ã‚ã—ã„å ´åˆã¯ï¼Œä½œå›³å¾Œã«ã“ã®optionã‚’ã¤ã‘ã¦ã‹ã‚‰å‡ºåŠ›ã™ã‚‹ã¨ã‚ˆã„。\\
-
-
-\hypertarget{xyzcoord}{}
-\item[関数] Xyzcoord(P.x,P.y,Pz.y)
-\item[機能] 主副画é¢ã§æ±ºã¾ã‚‹ç‚¹ã®åº§æ¨™
-\item[説明] Cinderellaã®æç”»é¢ä¸Šã®ç‚¹ãŒè¡¨ã™ç©ºé–“座標を求ã‚ã‚‹\\
- 点Pã«ã¤ã„ã¦ï¼Œä¸»ç”»é¢ã®ç‚¹ï¼°ã«å¯¾å¿œã™ã‚‹ã®ãŒå‰¯ç”»é¢ã®Pzã§ã‚る。点Pã®ï¼’次元座標ã¯P.x,P.yã§ï¼ŒPzã®y座標ã¯Pz.yã§è¡¨ã•ã‚Œã‚‹ã€‚ã“れを引数ã¨ã—ã¦ä¸Žãˆã‚‹ã¨ï¼Œç‚¹ï¼°ã®ç©ºé–“座標ãŒè¿”ã•ã‚Œã‚‹ã€‚\\
- \\
-ã€ä¾‹ã€‘点Aをドラッグã—ã¦å‹•ã‹ã—ãŸã¨ã,Aã®åº§æ¨™ã‚’求ã‚る。\\
- \verb|println(Xyzcoord(A.x,A.y,Az.y));|\\
- ã«ã‚ˆã‚Šï¼Œã‚³ãƒ³ã‚½ãƒ¼ãƒ«ã«åº§æ¨™ãŒè¡¨ç¤ºã•ã‚Œã‚‹ã€‚\\
-
-\end{description}
-\newpage
-% 逆引辞典 ==================================
-\section{逆引辞典}
-
-幾何ã®ä½œå›³ã¯ï¼Œè£œåŠ©ç·šãªã©ã¯Cinderellaã®ä½œå›³ãƒ„ールã‹Cindyscriptを用ã„ã¦æã,TeXã«å‡ºåŠ›ã™ã‚‹ç·šã‚’KeTCindyã§æãã¨ï¼ŒåŠ¹çŽ‡ã®ã‚ˆã„作図ãŒã§ãる。
-
-関数ã®ã‚°ãƒ©ãƒ•ã‚‚,Cindyscriptã§æãã‚‚ã®ã¨ï¼ŒTeXã«å‡ºåŠ›ã™ã‚‹KeTCindyã§æãã‚‚ã®ã‚’使ã„分ã‘ã‚‹ã¨ã‚ˆã„。
-
-以下ã§ï¼Œã€Cinderella】ã¯ï¼ŒCinderellaã®ä½œå›³ãƒ„ールを用ã„ãŸæ画,ã€Cindyscript】ã¯Cindyscriptã®é–¢æ•°ï¼Œã€KeTCindy】ãŠã‚ˆã³ã€KeTCindy3D】ã¯KeTCindyã®é–¢æ•°ã‚’示ã™ã€‚\\
-
-\subsection{点ã®ä½œå›³}
-\subsubsection{点をã¨ã‚‹}
-
-\begin{tabbing}
-12\=34567890123456789\=\kill\\
-
-\>ã€Cinderella】 \>「点を加ãˆã‚‹ã€ãƒ„ール \includegraphics[bb=0 0 27 21 , width=0.6cm]{Cindytool/single-add.png} を用ã„ã‚‹\\
- \>ã€KeTCindy】  \>Drwpt(点),Drawpoint(点),Pointdata(name,リスト),Putpoint(name,座標),\\
- \>ã€KeTCindy3D】\>Drawpoint3d(座標),Putpoint3d(リスト),\\
-\end{tabbing}
-
-点をã¨ã‚‹é–¢æ•°ã¯ã„ãã¤ã‹ã‚る。Cinderellaã®æç”»é¢ä¸Šã«å˜ã«ç‚¹ã‚’表示ã™ã‚‹ã‚‚ã®ï¼Œå¹¾ä½•ç‚¹ã‚’作るもã®ï¼ŒTeXã«å‡ºåŠ›ã™ã‚‹ãŸã‚ã®ã‚‚ã®ï¼Œã¨ç”¨é€”ãŒç•°ãªã‚‹ã€‚
-Putpoint(),Putpoint3d()ã¯åº§æ¨™ã‚’与ãˆã¦å¹¾ä½•ç‚¹ã‚’作るãŒï¼Œä½œå›³ãƒ„ールã®ã€Œç‚¹ã‚’加ãˆã‚‹ã€ã§ä½œå›³ã—ã¦ãŠã„ã¦ã‚¹ã‚¯ãƒªãƒ—トã§åº§æ¨™ã‚’指定ã—ã¦ã‚‚よã„。
-
- \\
-ã€ä¾‹ã€‘座標(1,1) ã«ç‚¹Aã‚’ã¨ã‚‹ã€‚\\
-  (方法1) ç£çŸ³ãƒ„ール \includegraphics[bb=0 0 27 21 , width=0.6cm]{Cindytool/snap.png} ã§ã‚¹ãƒŠãƒƒãƒ—モードã«ã—ã¦ãŠã,作図ツールã§ç‚¹ã‚’ã¨ã‚‹ã€‚\\
-  (方法2)KeTCindyã®é–¢æ•°ã§ \verb|Putpoint("A,[1,1])| ã¨ã™ã‚‹ã€‚
-
-(方法1)ã§ã¯ï¼Œã“ã®ç‚¹ã¯è‡ªç”±ç‚¹ã¨ãªã‚‹ã€‚固定点ã«ã™ã‚‹ã«ã¯ï¼Œã‚¤ãƒ³ã‚¹ãƒšã‚¯ã‚¿ã§ã€Œãƒ”ンã§ç•™ã‚ã‚‹ã€ã«ã™ã‚‹ã€‚ã¾ãŸï¼Œç‚¹åã¯CinderellaãŒè‡ªå‹•çš„ã«ã¤ã‘ã‚‹ã®ã§ï¼Œå¤‰æ›´ã™ã‚‹ã«ã¯ï¼Œç‚¹ã‚’é¸æŠžã—ã¦ãŠã,インスペクタを開ã„ã¦ã€Œè¦ç´ ã®æƒ…å ±ã€ã§å¤‰æ›´ã™ã‚‹ã€‚
-
-[1,1] ã®ã‚ˆã†ãªæ ¼å­ç‚¹ã§ãªã„å ´åˆã¯ï¼Œä½œå›³ãƒ„ールã§é©å½“ãªä½ç½®ã«ç‚¹ã‚’ã¨ã£ãŸã®ã¡ï¼ŒCindyscript㧠\verb|A.xy=[2,sqrt(3)]| ã®ã‚ˆã†ã«ã—ã¦åº§æ¨™ã‚’指定ã™ã‚‹ã€‚
-
-(方法2)ã§ã¯ï¼Œã“ã®ç‚¹ã¯å›ºå®šç‚¹ã¨ãªã‚‹ã€‚自由点ã¨ã™ã‚‹ã«ã¯ \verb|Putpoint("A",[1,1],[A.x,A.y])| ã¨ã™ã‚‹å¿…è¦ãŒã‚る。
-
-ã“れらã®æ–¹æ³•ã§ç‚¹ã‚’å–ã£ãŸã¨ã,画é¢ä¸Šã«ã¯ç‚¹ãŒè¡¨ç¤ºã•ã‚Œã‚‹ãŒTeXã®å›³ã«ã¯å‡ºåŠ›ã•ã‚Œãªã„。TeXã®å›³ã«å‡ºåŠ›ã™ã‚‹ã«ã¯ï¼ŒKeTCindyã®Drwpt()ã¾ãŸã¯ï¼ŒDrawpoint()を用ã„ã‚‹å¿…è¦ãŒã‚る。\\
-
- 以下ã¯ï¼Œãã‚Œãžã‚Œã®é–¢æ•°ã«ã¤ã„ã¦ã®æ¯”較表ã§ã‚る。「æç”»ã€ã¯ç·‘色ã®ç‚¹ã§æç”»ã™ã‚‹ãŒå¹¾ä½•ç‚¹ã¯ä½œã‚‰ãªã„。\\
- \\
-     \input{Fig/poiintable}
-\begin{flushright} \hyperlink{functionlist3d}{$\Rightarrow$関数一覧}\end{flushright}
-
-\subsubsection{点ã®å¤§ãã•ã‚’変ãˆã‚‹}
-
-\begin{tabbing}
-12\=34567890123456\=\kill\\
-
-\>ã€Cinderella】 \>インスペクタã®ã€Œè¡¨ç¤ºæ–¹æ³•ã€ã‚’使ã†\\
-\>ã€Cindyscript】 \>A.size=n\\
- \>ã€KeTCindy】 \>Ptsize(n),Setpt(n)\\
-\end{tabbing}
-
-インスペクタ,Cindyscriptã«ã‚ˆã‚‹ç‚¹ã®å¤§ãã•ã®è¨­å®šã¯ç”»é¢ä¸Šã«ã¯å映ã•ã‚Œã‚‹ãŒï¼ŒTeXã«ã¯æ›¸ã出ã•ã‚Œãªã„。逆ã«ï¼ŒKeTCindyã§è¨­å®šã—ãŸç‚¹ã®å¤§ãã•ã¯ï¼ŒCinderellaã®ç”»é¢ä¸Šã«ã¯å映ã•ã‚Œãªã„。ãã®ã“ã¨ã‚’考慮ã®ä¸Šï¼Œé©å®œä½¿ã„分ã‘ã‚‹å¿…è¦ãŒã‚る。画é¢ä¸Šã®ç‚¹ã®å¤§ãã•ã¨ï¼ŒTeXã®å›³ã®ç‚¹ã®å¤§ãã•ã¯é€£å‹•ã—ãªã„ã®ã§æ³¨æ„ãŒå¿…è¦ã§ã‚る。
-
-KeTCindyã®æ画関数を使ã£ã¦ç‚¹ã‚’ã¨ã‚‹ã¨ãã¯ï¼Œ["size=n"]オプションをã¤ã‘ã¦å¤§ãã•ã‚’設定ã™ã‚‹ã“ã¨ã‚‚ã§ãる。
-
-KeTCindyã§ã¯ï¼ŒDrwpt() ã¾ãŸã¯ Drawpoint() ã«ï¼ã‚ªãƒ—ションをã¤ã‘ã‚‹ã“ã¨ã§ç™½æŠœãã®ç‚¹ã‚’æãã“ã¨ãŒã§ãる。ãŸã ã—,ã“ã®å ´åˆï¼Œã“れよりã‚ã¨ã«æ›¸ã‹ã‚ŒãŸç·šã¯ç™½ã§æŠœã„ãŸã‚ã¨ã«æ›¸ã‹ã‚Œã¦ã—ã¾ã†ã®ã§ï¼Œè¨˜è¿°ã®é †ç•ªã‚’考慮ã™ã‚‹å¿…è¦ãŒã‚る。\\
-\begin{flushright} \hyperlink{functionlist3d}{$\Rightarrow$関数一覧}\end{flushright}
-
-\subsubsection{曲線上ã«ç‚¹ã‚’ã¨ã‚‹}
-
-\begin{tabbing}
-12\=34567890123456789\=\kill\\
-
-\>ã€Cinderella】 \>「点を加ãˆã‚‹ã€ãƒ„ールを用ã„ã‚‹\\
-\>ã€KeTCindy】  \>PutonCurve(name,PD,åˆæœŸå€¤)\\
-\>ã€KeTCindy3d】 \>PutonCurve3d(点å,PD)\\
-\end{tabbing}
-
-Cinderellaã®ä½œå›³ãƒ„ールã§æã„ãŸæ›²ç·šä¸Šã«ã¯ï¼Œã€Œç‚¹ã‚’加ãˆã‚‹ã€ãƒ„ールã§ç‚¹ã‚’ã¨ã‚‹ã“ã¨ã§ï¼Œãã®ç‚¹ã¯æ›²ç·šä¸Šã ã‘ã‚’å‹•ã‹ã™ã“ã¨ãŒã§ãるよã†ã«ãªã‚‹ï¼ˆã‚¤ãƒ³ã‚·ãƒ‡ãƒ³ãƒˆï¼‰ã€‚作図ツールã§æã„ãŸæ›²ç·šã§ãªã‘ã‚Œã°ã“ã®æ–¹æ³•ã§ã¯æ›²ç·šä¸Šã«ç‚¹ã¯å–ã‚Œãªã„。
-
-Cindyscriptã§æã„ãŸæ›²ç·šã®å ´åˆï¼ŒãŸã¨ãˆã°ï¼Œé–¢æ•°$f(x)$ã®ã‚°ãƒ©ãƒ•ä¸Šã«ç‚¹ã‚’ç½®ãã«ã¯ï¼ŒA.y=[A.x,f(A.x)] ã®ã‚ˆã†ã«ã™ã‚Œã°ã‚ˆã„。(ã‚らã‹ã˜ã‚点を作図ã—ã¦ãŠã)
-
-KeTCindyã®PutonCurve()を使ã†ã¨ï¼Œãƒ—ロットデータを用ã„ã¦æ›²ç·šä¸Šã«ç‚¹ã‚’ã¨ã‚‹ã“ã¨ãŒã§ãる。ã¾ãŸï¼Œ
-KeTCindyã§ç›´ç·šï¼Œç·šåˆ†ä¸Šã«å–ã‚ŠãŸã„å ´åˆã¯ï¼ŒPutonLine( ),PutonSeg( )を用ã„ã‚‹ã“ã¨ã‚‚ã§ãる。\\
-\begin{flushright} \hyperlink{functionlist3d}{$\Rightarrow$関数一覧}\end{flushright}
-
-\subsubsection{交点をã¨ã‚‹}
-\begin{tabbing}
-12\=34567890123456789\=\kill\\
-
-\>ã€Cinderella】 \>「2ã¤ã®æ›²ç·šã®äº¤ç‚¹ã‚’求ã‚ã‚‹ã€ãƒ„ール \includegraphics[bb=0 0 27 21 , width=0.6cm]{Cindytool/intersection.png} を用ã„ã‚‹\\
- \>ã€KeTCindy】  \>Intersectcrvs(PD,PD), Crosspoint(name,PD,PD,リスト),\\
- \>        \> Putintersect(点å,PD,PD)\\
- \>ã€KeTCindy3D】  \>Intersectcrvsf(name,PD,å¼), IntersectsgpL(点å,線分,é¢,方法)\\
-\end{tabbing}
-
-Cinderellaã®ä½œå›³æ©Ÿèƒ½ã§ä½œå›³ã—ãŸå¹¾ä½•è¦ç´ ã®äº¤ç‚¹ã¯Cinderellaã®ã€Œï¼’ã¤ã®æ›²ç·šã®äº¤ç‚¹ã‚’求ã‚ã‚‹ã€ãƒ„ールを用ã„ã‚‹ã®ãŒç°¡ä¾¿ã§ã‚ã‚‹ãŒï¼Œé–¢æ•°ã®ã‚°ãƒ©ãƒ•ã‚„方程å¼ã«ã‚ˆã‚‹æ›²ç·šã®å ´åˆã¯ï¼ŒCinderellaã®ä½œå›³æ©Ÿèƒ½ã¯ä½¿ãˆãªã„ã®ã§ï¼ŒKeTCindyã®é–¢æ•°ã‚’使ã†ã“ã¨ã«ãªã‚‹ã€‚
-
-KeTCindyã®é–¢æ•°ã¯ï¼“通りã‚ã‚‹ãŒï¼Œintersectcrvs() ã¯ï¼’曲線ã®äº¤ç‚¹ã®ãƒªã‚¹ãƒˆã‚’å–å¾—ã™ã‚‹é–¢æ•°ãªã®ã§ï¼Œæ—¢å­˜ã®ç‚¹ã‚’交点ã«æŒã£ã¦ããŸã„å ´åˆã¯
-\begin{verbatim}
-   tmp=Intersectcrvs(gr1, crAB);
-   P.xy=tmp_1;
-\end{verbatim}
-ã®ã‚ˆã†ã«ã™ã‚Œã°ã‚ˆã„。
-
-Crosspoint(),Putintersect()ã§ã¯äº¤ç‚¹ã«æ–°ãŸãªå¹¾ä½•ç‚¹ã‚’作るã“ã¨ãŒã§ãる。
-
-Intersectcrvsf() ã¯æ›²ç·šã¨æ›²é¢ã®äº¤ç‚¹ï¼Œ IntersectsgpL() ã¯ç›´ç·šã¨å¹³é¢ã®äº¤ç‚¹ã‚’求ã‚る。
-
-\begin{flushright} \hyperlink{functionlist3d}{$\Rightarrow$関数一覧}\end{flushright}
-
-\subsection{ç·šã®ä½œå›³}
-\subsubsection{線分を引ã}
-
-\begin{tabbing}
-12\=34567890123456789\=\kill\\
-
-\>ã€Cinderella】 \>「線分を加ãˆã‚‹ã€ãƒ„ール \includegraphics[bb=0 0 27 21 , width=0.6cm]{Cindytool/segment.png} を用ã„る \\
-\>ã€Cindyscript】 \>draw([A,B]) \\
- \>ã€KeTCindy】  \>Listplot([A,B]) \\
- \>ã€KeTCindy3D】 \>Spaceline([A,B]) \\
-\end{tabbing}
- Cinderellaã®æ画ツールを使ã†ã¨ï¼Œæã‹ã‚ŒãŸç·šåˆ†ã¯å¹¾ä½•è¦ç´ ã¨ãªã‚Šï¼Œã‚¤ãƒ³ã‚¹ãƒšã‚¯ã‚¿ã§ãã®å±žæ€§ï¼ˆè‰²ãƒ»å¤ªã•ãªã©ï¼‰ã‚’変ãˆã‚‹ã“ã¨ãŒã§ãる。ã¾ãŸï¼Œç‚¹ã‚’線分上ã«ã‚¤ãƒ³ã‚·ãƒ‡ãƒ³ãƒˆã•ã›ã‚‹ã“ã¨ãŒã§ãる。Scilabã«å‡ºåŠ›ã—ãªã„線分をæãã¨ãã¯ã“ã‚Œã§å分ã§ï¼Œã‚¹ã‚¯ãƒªãƒ—トも簡素ã«ãªã‚‹ã€‚\\
- Cindyscript ã®draw関数ã¨KeTCindyã®Listplot関数ã§ã¯ï¼Œç·šã®è‰²ï¼Œå¤ªã•ï¼Œç·šç¨®ã‚’指定ã§ãる。ã¾ãŸï¼Œç‚¹ã®è­˜åˆ¥åã§ã¯ãªã座標を引数ã«ã™ã‚‹ã“ã¨ã‚‚ã§ãる。\\
- 推奨ã™ã‚‹ã®ã¯ï¼Œè£œåŠ©ç·šãªã©ã¯Cinderellaã®æ画ツールã§æã,最終的ã«å¿…è¦ãªç·šã ã‘Listplot()ã§å‡ºåŠ›ã™ã‚‹æ–¹æ³•ã€‚\\
-\begin{flushright} \hyperlink{functionlist3d}{$\Rightarrow$関数一覧}\end{flushright}
-
-
-\subsubsection{折れ線をæã}
-
-\begin{tabbing}
-12\=34567890123456789\=\kill\\
-
-\>ã€Cindyscript】 \>connect(点ã®ãƒªã‚¹ãƒˆ)\\
-\>ã€KeTCindy】  \>Listplot(点ã®ãƒªã‚¹ãƒˆ)\\
-\>ã€KeTCindy3D】 \>Spaceline(点ã®ãƒªã‚¹ãƒˆ)\\
-\end{tabbing}
-
-Cinderellaã®æ画ツールã§æŠ˜ã‚Œç·šã‚’æãã®ã¯ã‚¤ãƒ³ã‚¿ãƒ©ã‚¯ãƒ†ã‚£ãƒ–ã§ã¯ã‚ã‚‹ãŒæœ¬æ•°ãŒå¤šããªã‚‹ã¨ç¾å®Ÿçš„ã§ã¯ãªã„。ãŸã ï¼Œæã‹ã‚ŒãŸç·šåˆ†ã¯å¹¾ä½•è¦ç´ ã¨ãªã‚Šï¼Œã‚¤ãƒ³ã‚¹ãƒšã‚¯ã‚¿ã§ãã®å±žæ€§ï¼ˆè‰²ãƒ»å¤ªã•ãªã©ï¼‰ã‚’変ãˆã‚‹ã“ã¨ãŒã§ãる。折れ線全体ã®å±žæ€§ã‚’変ãˆã‚‹ã«ã¯ï¼Œã™ã¹ã¦ã®æŠ˜ã‚Œç·šã‚’åŒæ™‚ã«é¸æŠžã™ã‚‹ã€‚(Shift+クリック)
-
-Cindyscript ã®connect() 㨠KeTCindyã® Listplot() ,Spaceline()ã§ã¯ï¼Œå¼•æ•°ã«ç‚¹ã®ãƒªã‚¹ãƒˆã‚’与ãˆã‚Œã°æŠ˜ã‚Œç·šãŒæã‘る。
-
-節点を明示ã—ãŸæŠ˜ã‚Œç·šã‚’æãã«ã¯ï¼ŒListplot()ã¨Drawpoint()を組ã¿åˆã‚ã›ã‚‹ã“ã¨ãŒè€ƒãˆã‚‰ã‚Œã‚‹ãŒï¼Œã‚らã‹ã˜ã‚点ã®ãƒªã‚¹ãƒˆã‚’作ã£ã¦ãŠãã®ãŒç°¡ä¾¿ã§ã‚る。
-\begin{verbatim}
- Ptsize(3);
- pd=[[1,2],[3,4],[6,2]];
- Pointdata("1",pd);
- Listplot("1",pd);
-\end{verbatim}
-
-KeTCindy3Dã®å ´åˆã¯ç©ºé–“座標ã§ç‚¹ã‚’TeXã«æ›¸ã出ã™ã“ã¨ãŒã§ããªã„ã®ã§ï¼Œæ¬¡ã®ã‚ˆã†ã«ç‚¹ã‚’作ã£ã¦æ›¸ã出ã™ã€‚
-\begin{verbatim}
- Putpoint3d(["A",[2,0,0],"B",[2,0,2],"C",[2,2,2]],"fix");
- Spaceline([A,B,C]);
- Ptsize(3);
- Drawpoint([A,B,C]);
-\end{verbatim}
-節点ãŒå¤šã„å ´åˆã¯ï¼Œç©ºé–“ã®ç‚¹ã®ãƒªã‚¹ãƒˆã¨ï¼ŒæŠ•å½±ã—ãŸç‚¹ã®ãƒªã‚¹ãƒˆã‚’作ã£ã¦æç”»ã™ã‚‹ã€‚
-\begin{verbatim}
- pt=[[2,0,0],[2,0,2],[2,2,2],[0,2,2],[0,4,2],[0,4,4]];
- pt2d=apply(pt,[Projcoordpara(#)_1,Projcoordpara(#)_2]);
- Spaceline("1",pt);
- Ptsize(4);
- Drawpoint(pt2d);
-\end{verbatim}
-       \input{Gfig/oresenex01}\\
-
-点ã®åå‰ãŒå¿…è¦ã§ã‚ã‚Œã°\\
-  \verb|pname=apply(1..6,"P"+text(#));|\\
-ã®ã‚ˆã†ã«ã—ã¦ï¼Œåå‰ãƒªã‚¹ãƒˆã‚’作る。\\
-\begin{flushright} \hyperlink{functionlist3d}{$\Rightarrow$関数一覧}\end{flushright}
-
-
-\subsubsection{直線を引ã}
-
-\begin{tabbing}
-12\=34567890123456789\=\kill\\
- \\
-\>ã€Cinderella】 \>「直線を加ãˆã‚‹ã€ãƒ„ール \includegraphics[bb=0 0 27 21 , width=0.6cm]{Cindytool/multi-add-line.png} を用ã„る \\
-\>ã€Cindyscript】 \>draw(join([1,2],[2,-1]))\\
- \>ã€KeTCindy】  \>Lineplot([A,B]) \\
-\end{tabbing}
- Cinderellaã®æ画ツールを使ã†ã¨ï¼Œæã‹ã‚ŒãŸç·šåˆ†ã¯å¹¾ä½•è¦ç´ ã¨ãªã‚Šï¼Œã‚¤ãƒ³ã‚¹ãƒšã‚¯ã‚¿ã§ãã®å±žæ€§ï¼ˆè‰²ãƒ»å¤ªã•ãƒ»ç·šç¨®ãªã©ï¼‰ã‚’変ãˆã‚‹ã“ã¨ãŒã§ãる。ã¾ãŸï¼Œç‚¹ã‚’直線上ã«ã‚¤ãƒ³ã‚·ãƒ‡ãƒ³ãƒˆã•ã›ã‚‹ã“ã¨ãŒã§ãる。Scilabã«å‡ºåŠ›ã—ãªã„ç›´ç·šã‚’æãã¨ãã¯ã“ã‚Œã§å分ã§ï¼Œã‚¹ã‚¯ãƒªãƒ—トも簡素ã«ãªã‚‹ã€‚åŠç›´ç·šã«ã—ãŸã„å ´åˆã¯ï¼Œç·šåˆ†ã‚’æã„ã¦ä¸€æ–¹ã®ç«¯ç‚¹ã‚’æ画領域(SW,NE)ã®å¤–ã«å‡ºã—ã¦è¦‹ã‹ã‘上åŠç›´ç·šã«ã™ã‚Œã°ã‚ˆã„。
-
-Cindyscript ã®draw関数ã¨KeTCindyã®Lineplot関数ã§ã¯ï¼Œç·šã®è‰²ï¼Œå¤ªã•ï¼Œç·šç¨®ã‚’指定ã™ã‚‹ã“ã¨ãŒã§ãる。点ã®è­˜åˆ¥åã§ã¯ãªã座標を引数ã«ã™ã‚‹ã“ã¨ã‚‚ã§ãる。
-
-TeXã¸ã®å‡ºåŠ›ã¯ï¼ŒLineplot()ã« "+" オプションをã¤ã‘ã‚‹ã¨åŠç›´ç·šã«ãªã‚‹ã€‚
-
-KeTCindy3Dã«ã¯ç›´ç·šã‚’æã関数ã¯ãªã„ãŒï¼Œç·šåˆ†ã®å¤–分点をé©å½“ã«ã¨ã£ã¦ç·šåˆ†ã¨ã—ã¦æã‘ã°ï¼Œã»ã¨ã‚“ã©ç›´ç·šã¨ã—ã¦æ‰±ã†ã“ã¨ãŒã§ãる。
-\begin{flushright} \hyperlink{functionlist3d}{$\Rightarrow$関数一覧}\end{flushright}
-
-
-
-\subsubsection{点線や破線をæã}
-
-\begin{tabbing}
-12\=34567890123456789\=\kill\\
-
-\>ã€Cinderella】 \>インスペクタã®ã€Œç‰¹åˆ¥ãªè¡¨ç¤ºæ–¹æ³•ã€ã§ç·šç¨®ã‚’変ãˆã‚‹ã€€\\
-\>ã€Cindyscript】 \>ä¿®é£¾å­ dashtype を使ã†ã€€\\
- \>ã€KeTCindy】  \>do ,da オプションをã¤ã‘ã‚‹\\
- \>ã€KeTCindy3D】 \>do ,da オプションをã¤ã‘ã‚‹\\
-\end{tabbing}
- Cinderellaã®æ画ツールã§å¼•ã„ãŸç·šåˆ†ãƒ»ç›´ç·šã®ç·šç¨®ã¯ï¼Œãã®è¦ç´ ã‚’é¸ã‚“ã§ã€ŒCtrl+iã€(Mac㯠⌘+i) ã§è¡¨ç¤ºã•ã‚Œã‚‹ã‚¤ãƒ³ã‚¹ãƒšã‚¯ã‚¿ã‚’用ã„ã¦ï¼Œã€Œç‰¹åˆ¥ãªè¡¨ç¤ºæ–¹æ³•ã€ã§å¤‰ãˆã‚‹ã“ã¨ãŒã§ãる。点線,破線ã ã‘ã§ãªã,一点鎖線もã‚る。\\
- Cindyscriptã® draw() ã§å¼•ã„ãŸç·šåˆ†ãƒ»åŠç›´ç·šã¯ï¼Œä¿®é£¾å­ã‚’用ã„ã¦ï¼Œ draw([A,B],dashtype-$>$2) ã®ã‚ˆã†ã«ã—ã¦æã。\\
- KeTCindyã§ã¯ï¼Œã‚ªãƒ—ションã«ï¼Œ["do"] (点線:dotline) ["da"](破線:dashline)をã¤ã‘る。
-\begin{flushright} \hyperlink{functionlist3d}{$\Rightarrow$関数一覧}\end{flushright}
-
-
-
-\subsubsection{ç·šã®å¤ªã•ã‚’変ãˆã‚‹}
-\begin{tabbing}
-12\=34567890123456\=\kill\\
-
-\>ã€Cinderella】 \>インスペクタã®ã€Œè¡¨ç¤ºæ–¹æ³•ã€ã‚’使ã†\\
-\>ã€Cindyscript】 \>size オプションをã¤ã‘ã‚‹\\
- \>ã€KeTCindy】  \>Setpen(n) \\
-\end{tabbing}
- インスペクタ,Cindyscriptã«ã‚ˆã‚‹ç‚¹ã®å¤§ãã•ã®è¨­å®šã¯ç”»é¢ä¸Šã«ã¯å映ã•ã‚Œã‚‹ãŒï¼ŒTeXã«ã¯æ›¸ã出ã•ã‚Œãªã„。逆ã«ï¼ŒKeTCindyã§è¨­å®šã—ãŸç‚¹ã®å¤§ãã•ã¯ï¼ŒCinderellaã®ç”»é¢ä¸Šã«ã¯å映ã•ã‚Œãªã„。ãã®ã“ã¨ã‚’考慮ã®ä¸Šï¼Œé©å®œä½¿ã„分ã‘ã‚‹å¿…è¦ãŒã‚る。画é¢ä¸Šã®ç‚¹ã®å¤§ãã•ã¨ï¼ŒTeXã®å›³ã®ç‚¹ã®å¤§ãã•ã¯é€£å‹•ã—ãªã„ã®ã§æ³¨æ„ãŒå¿…è¦ã§ã‚る。\\
- KeTCindynã®æ画関数を使ã†ã¨ãã¯ï¼Œ"size=n" オプションをã¤ã‘ã¦å¤§ãã•ã‚’設定ã§ãã‚‹ã‚‚ã®ã‚‚ã‚る。
-\begin{flushright} \hyperlink{functionlist3d}{$\Rightarrow$関数一覧}\end{flushright}
-
-
-\subsubsection{垂線を引ã}
-
-\begin{tabbing}
-12\=34567890123456789\=\kill\\
-
-\>ã€Cinderella】 \>「垂線を加ãˆã‚‹ã€ãƒ„ール \includegraphics[bb=0 0 27 21 , width=0.6cm]{Cindytool/multi-add-perp.png} を用ã„る \\
-\>ã€Cindyscript】 \>perpendicular(A,a)\\
- \>ã€KeTCindy】  \>作図後,Listplot()ã§ç·šåˆ†ã‚’引ã\\
- \>ã€KeTCindy3D】 \>Perppt()ã§åž‚ç·šã®è¶³ã‚’求ã‚ã¦ç·šåˆ†ã‚’引ã\\
-
-\end{tabbing}
- Cinderellaã®ã€Œåž‚ç·šã‚’æãã€ãƒ„ールを用ã„ã¦ä½œå›³ã™ã‚‹ã®ãŒç°¡ä¾¿ã ãŒï¼Œä½•ã‹æ¡ä»¶ã‚’与ãˆã¦åž‚線を引ãよã†ãªå ´åˆã¯Cindyscriptを使ã†ã“ã¨ã«ãªã‚‹ã€‚ãŸã ã—,点ã¨ç›´ç·šï¼ˆç·šåˆ†ï¼‰ãŒå¹¾ä½•è¦ç´ ã«ãªã£ã¦ã„ãªã„ã¨åž‚ç·šã¯å¼•ã‘ãªã„。perpendicular(A,a) ã§ï¼ŒAã¯ç‚¹ã®è­˜åˆ¥å­ï¼Œaã¯ç›´ç·šï¼ˆç·šåˆ†ï¼‰ã®è­˜åˆ¥å­ã€‚TeXã«ã¯ï¼Œé©å½“ãªå›³ãŒæã‘ãŸã¨ã“ã‚ã§Lineplot()ã‚‚ã—ãã¯Listplot()ã§å‡ºåŠ›ã™ã‚Œã°ã‚ˆã„。
-
-対象ãŒå¹¾ä½•è¦ç´ ã§ãªã„å ´åˆã¯ï¼ŒCindyscriptã§æ–¹ç¨‹å¼ã‚’求ã‚ã¦å¼•ãã“ã¨ã«ãªã‚‹ã€‚
-
-KeTCindy3D ã® Perppt() 関数ã¯ï¼Œã‚る点ã‹ã‚‰å¹³é¢ã«ä¸‹ã—ãŸåž‚ç·šã®è¶³ã‚’求ã‚る。Perppt() ã®é …ã«ã‚る例をå‚ç…§ã®ã“ã¨ã€‚
-\begin{flushright} \hyperlink{functionlist3d}{$\Rightarrow$関数一覧}\end{flushright}
-
-
-\subsubsection{平行線を引ã}
-
-\begin{tabbing}
-12\=34567890123456\=\kill\\
-
-\>ã€Cinderella】 \>「平行線を加ãˆã‚‹ã€ãƒ„ール \includegraphics[bb=0 0 27 21 , width=0.6cm]{Cindytool/multi-add-parallel.png} を用ã„る \\
-\>ã€Cindyscript】 \>parallel(B,a)\\
- \>ã€KeTCindy】  \>作図後,Listplot()ã§ç·šåˆ†ã‚’引ã\\
-\end{tabbing}
- Cinderellaã®ã€Œå¹³è¡Œç·šã‚’æãã€ãƒ„ールを用ã„ã¦ä½œå›³ã™ã‚‹ã®ãŒç°¡ä¾¿ã ãŒï¼Œãªã«ã‹æ¡ä»¶ã‚’与ãˆã¦å¹³è¡Œç·šã‚’引ãよã†ãªå ´åˆã¯Cindyscriptを使ã†ã“ã¨ã«ãªã‚‹ã€‚ãŸã ã—,点ã¨ç›´ç·šï¼ˆç·šåˆ†ï¼‰ãŒå¹¾ä½•è¦ç´ ã«ãªã£ã¦ã„ãªã„ã¨å¹³è¡Œç·šã¯å¼•ã‘ãªã„。parallel(B,a) ã§ï¼ŒBã¯ç‚¹ã®è­˜åˆ¥å­ï¼Œaã¯ç›´ç·šï¼ˆç·šåˆ†ï¼‰ã®è­˜åˆ¥å­ã€‚
-
-TeXã«ã¯ï¼Œé©å½“ãªå›³ãŒæã‘ãŸã¨ã“ã‚ã§Lineplot()ã‚‚ã—ãã¯Listplot() ã§å‡ºåŠ›ã™ã‚Œã°ã‚ˆã„。
-
-対象ãŒå¹¾ä½•è¦ç´ ã§ãªã„å ´åˆã¯ï¼ŒCindyscriptã§æ–¹ç¨‹å¼ã‚’求ã‚ã¦å¼•ãã“ã¨ã«ãªã‚‹ã€‚
-\begin{flushright} \hyperlink{functionlist3d}{$\Rightarrow$関数一覧}\end{flushright}
-
-\subsection{多角形をæã}
-
-\subsubsection{頂点を与ãˆã¦å¤šè§’形をæã}
-
-\begin{tabbing}
-12\=34567890123456789\=\kill\\
-
- \>ã€Cinderella】 \>多角形ツール \includegraphics[bb=0 0 27 21 , width=0.6cm]{Cindytool/polygon.png} を用ã„る \\
- \>ã€Cindyscript】 \>drawpoly(点リスト)\\
- \>ã€KeTCindy】  \>Listplot(点リスト)\\
- \>ã€KeTCindy3D】 \>Spaceline(点リスト)\\
-\end{tabbing}
-
- Cinderellaã®æ画ツールã®å¤šè§’形ツールã¯ï¼Œæ—¢å­˜ã®ç‚¹ã‚’çµã‚“ã§å¤šè§’形を作り色塗りをã™ã‚‹ã‚‚ã®ã€‚色塗りをã—ãªã„ã®ã§ã‚ã‚Œã°ï¼Œå˜ã«ç·šåˆ†ã§ã¤ãªã„ã§ã„ã。
-
- Cindyscriptã®drawpoly() ,ãŠã‚ˆã³KeTCindyã®Listplot(),Spaceline() ã§ã®ç‚¹ãƒªã‚¹ãƒˆã¯ï¼Œæ—¢å­˜ã®å¹¾ä½•ç‚¹ã§ãªã座標ã§ã‚‚よã„。Listplot() ,Spaceline() ã®ç‚¹ãƒªã‚¹ãƒˆãŒå¿…ãšé–‰ã˜ãŸãƒªã‚¹ãƒˆï¼ˆ[A,B,C,D,A])ã§ãªã‘ã‚Œã°ãªã‚‰ãªã„ã®ã«å¯¾ã—,Cindyscriptã®drawplory()ã§ã¯é–‰ã˜ã¦ã„ã‚‹å¿…è¦ã¯ãªã„。drawpoly([A,B,C,D])ã§ã‚ˆã„。
-\begin{flushright} \hyperlink{functionlist3d}{$\Rightarrow$関数一覧}\end{flushright}
-
-
-\subsubsection{1辺を与ãˆã¦æ­£å¤šè§’形をæã}
- \\
- 平é¢ä¸Šã§ï¼Œä¸Žãˆã‚‰ã‚ŒãŸç·šåˆ†ABを1辺ã¨ã™ã‚‹æ­£å¤šè§’形をæã。
-
-線分ABã¯ï¼ŒCinderellaã®ä½œå›³ãƒ„ールãªã©ã§æã‹ã‚Œã¦ã„ã‚‹ã‚‚ã®ã¨ã™ã‚‹ã€‚ãŸã ã—,線分ã§ãªã,両端ã®ç‚¹ãŒä¸Žãˆã‚‰ã‚Œã¦ã„ã‚‹ã ã‘ã§ã‚‚よã„。点A,BãŒè¤‡ç´ å¹³é¢ä¸Šã«ã‚ã‚‹ã‚‚ã®ã¨ã—ã¦ï¼Œå¤šè§’å½¢ã®é ‚点ã®ä½ç½®ã‚’計算ã™ã‚Œã°ã‚ˆã„。
-
-Cindyscriptã®Drawスロットã«ï¼Œæ¬¡ã®ã‚¹ã‚¯ãƒªãƒ—トを書ã。(n=5ã§æ­£äº”角形をæã)
-\begin{verbatim}
- n=5;
- pti=[complex(A),complex(B)];
- th=2*pi/n;
- repeat(n-2,s,
-  z1=pti_s;
-  z2=pti_(s+1);
-  z=z2+(z2-z1)*(cos(th)+i*sin(th));
-  pti=append(pti,z);
- );
- pt=apply(pti,gauss(#));
- pt=append(pt,A.xy);
- Listplot("1",pt);
-\end{verbatim}
-ptiã¯ï¼Œå„頂点ã«å¯¾å¿œã™ã‚‹è¤‡ç´ æ•°ã®ãƒªã‚¹ãƒˆï¼ŒptãŒå„頂点ã®åº§æ¨™ã®ãƒªã‚¹ãƒˆã§ã‚る。
-\begin{flushright} \hyperlink{functionlist3d}{$\Rightarrow$関数一覧}\end{flushright}
-
-
-\subsubsection{接線を引ã}
- \\
-曲線上ã®ç‚¹ã«ãŠã‘る接線を引ã
-\begin{tabbing}
-12\=34567890123456789\=\kill\\
-
-\>ã€Cinderella】 \>幾何è¦ç´ ã®ï¼’次曲線ã®å ´åˆï¼Œã€Œç‚¹ã®æ¥µç·šã‚’加ãˆã‚‹ã€ãƒ„ール \includegraphics[bb=0 0 27 21 , width=0.6cm]{Cindytool/polar-of-point.png}   を用ã„ã‚‹\\
-\>ã€Cindyscript】 \>微分ã—ã¦æŽ¥ç·šã®æ–¹ç¨‹å¼ã‚’求ã‚ã¦ç›´ç·šã‚’引ã\\
- \>ã€KeTCindy】  \>åŒä¸Šã€€\\
-\end{tabbing}
- Cinderellaã®ä½œå›³ãƒ„ールã§æã„ãŸï¼’次曲線ã®å ´åˆã¯ï¼Œæ›²ç·šä¸Šã®ç‚¹ã«ãŠã„ã¦ã€Œç‚¹ã®æ¥µç·šã‚’加ãˆã‚‹ã€ãƒ„ールã§æŽ¥ç·šãŒå¼•ã‘る。ã“ã®ãƒ„ールã¯ï¼ŒåˆæœŸçŠ¶æ…‹ã§ã¯ç”»é¢ã«å‡ºã¦ã„ãªã„ã®ã§ï¼Œãƒ¢ãƒ¼ãƒ‰ãƒ¡ãƒ‹ãƒ¥ãƒ¼ã®ã€Œç›´ç·šã€ã‹ã‚‰é¸ã¶ã€‚ã¾ãŸï¼Œã€Œè¨­å®šã€ãƒ¡ãƒ‹ãƒ¥ãƒ¼ã®ã€Œä¸Šã®ãƒ„ールãƒãƒ¼ã‚’カスタマイズã™ã‚‹ã€ã§ï¼Œã™ã¹ã¦ã®ãƒ„ールを表示ã™ã‚Œã°ç”»é¢ä¸Šã«å‡ºã‚‹ã€‚
-
- Cinderellaã®ä½œå›³ãƒ„ールã§æã‘ãªã„曲線ã®å ´åˆã¯æ–¹ç¨‹å¼ã‚’求ã‚ã¦ç›´ç·šã‚’引ãã“ã¨ã«ãªã‚‹ã€‚微分をã™ã‚‹é–¢æ•°ã¯ï¼ŒCindyscriptã§ã¯ d(関数,変数),KeTCindyã§ã¯Derivative(関数, 変数,値) を用ã„る。\\
-
-例:3次関数 $f(x)=x^3-4x$ 上ã®ç‚¹$(1,-3)$ã«ãŠã‘る接線を引ãCindyscriptã¨KeTCindyã®çµ„ã¿åˆã‚ã›\\
-  f(x):=x\verb|^| 3-4*x;\\
-  g(x0,x):=d(f(\#),x0)*(x-x0)+f(x0);\\
-  p1=[1,-3];\\
-  p2=[2,g(1,2)];\\
-  plotdata("1","x\verb|^| 3-4*x","x");\\
-  Lineplot("1",[p1,p2]);\\
- \\
- ã“ã®ã‚¹ã‚¯ãƒªãƒ—トã§ã¯ï¼Œg(x0,x)を点$(x_0,f(x_0))$ã«ãŠã‘る接線ã®æ–¹ç¨‹å¼ã¨ã—ã¦ã„る。\\
- ã¾ãŸï¼ŒæŽ¥ç‚¹ã‚’インタラクティブã«æ±ºã‚ã‚‹ã«ã¯ï¼Œï¼’点A,Bを作図ã—ã¦ãŠã\\
- \\
-  Deffun("f(x)",["regional(y)","y=x\verb|^|3-4*x","y"]);\\
-  coef=Derivative("f(x)","x",A.x);\\
-  A.y=f(A.x);\\
-  B.y=coef*(B.x-A.x)+A.y;\\
-  Plotdata("1","f(x)","x");\\
-  Lineplot([A,B]);\\
-
- ã¨ã—ã¦ï¼ŒæŽ¥ç‚¹Aをドラッグã—ã¦ä½ç½®æ±ºã‚ã‚’ã™ã‚‹ã“ã¨ãŒã§ãる。\\
- \\
- <注>\\
-    Deffun("f(x)",["regional(y)","y=x\verb|^|3-4*x","y"]);\\
-  ã¯\\
-    f(x):=x\verb|^| 3-4*x;\\
-  ã§ã‚‚よã„。\\
-\begin{flushright} \hyperlink{functionlist3d}{$\Rightarrow$関数一覧}\end{flushright}
-\subsection{円ã®ä½œå›³}
-\subsubsection{円をæã}
-
-\begin{tabbing}
-12\=34567890123456789\=\kill\\
-
-\>ã€Cinderella】 \>「円を加ãˆã‚‹ã€ãƒ„ール \includegraphics[bb=0 0 27 21 , width=0.6cm]{Cindytool/multi-add-circle.png} を用ã„ã‚‹\\
-\>ã€Cindyscript】 \>drawcircle([a,b],r)\\
- \>ã€KeTCindy】  \>Circledata([A,B]),Circledata(name,[[a,b],[c,d]])\\
-\end{tabbing}
- Cinderellaã®å††ã‚’æãツールã¯ï¼“種類ã‚ã‚‹ãŒï¼Œã‚ã¨ã§TeXã«æ›¸ã出ã™ãªã‚‰ã°ã€Œå††ã‚’加ãˆã‚‹ã€ãƒ„ールãŒã‚ˆã„。中心ã‹ã‚‰ãƒ‰ãƒ©ãƒƒã‚°ã™ã‚‹ã¨å††å‘¨ä¸Šã«ç‚¹ãŒã§ãる。ã“ã®ï¼’点を使ã£ã¦Circledata([A,B]) ã§æ›¸ã出ã™ã“ã¨ãŒã§ãる。TeXã«æ›¸ã出ã™å¿…è¦ãŒãªã„補助円ãªã©ã§ã‚ã‚Œã°ï¼Œã€ŒåŠå¾„付ã円を加ãˆã‚‹ã€ \includegraphics[bb=0 0 27 21 , width=0.6cm]{Cindytool/circle-by-radius.png} ãŒç°¡ä¾¿ã€‚åŠå¾„を一定ã«ã™ã‚‹ï¼ˆå††å‘¨ãƒ‰ãƒ©ãƒƒã‚°ã§å¤§ãã•ãŒå¤‰ã‚らãªã„よã†ã«ã™ã‚‹ï¼‰ã®ã§ã‚ã‚Œã°ï¼Œã€Œå›ºå®šã—ãŸåŠå¾„ã®å††ã‚’æãã€ãƒ„ールを用ã„る。Cinderellaã®å††ã‚’æãツールã§æã„ãŸå††ã¯ï¼Œã‚¤ãƒ³ã‚¹ãƒšã‚¯ã‚¿ã®ã€Œç‰¹åˆ¥ãªè¡¨ç¤ºæ–¹æ³•ã€ã§ç·šç¨®ã‚’設定ã§ãる。
-
-Cindyscript ã§ã¯ï¼Œä¸­å¿ƒã¨åŠå¾„を指定ã—ã¦å††ã‚’æã。drawcircle([a,b],r) 㯠[a,b] ãŒä¸­å¿ƒã®åº§æ¨™ï¼Œr ãŒåŠå¾„(実数)。中心ã¯ï¼ŒCinderellaã®ä½œå›³ãƒ„ールã§ã¨ã£ãŸç‚¹Aを中心ã¨ã™ã‚‹å ´åˆã¯ï¼Œdrawcircle(A,r)。
-
-KeTCindyã®Circledata([A,B])ã¯ï¼Œä¸­å¿ƒAã§ç‚¹Bを通る円をæã。A,Bを座標ã«ã™ã‚‹å ´åˆã¯ï¼ŒnameãŒå¿…è¦ã€‚中心Aã§åŠå¾„rã®å††ã‚’æãã®ã§ã‚ã‚Œã°ï¼Œåº§æ¨™æŒ‡å®šã«ãªã‚‹ã®ã§ï¼ŒCircledata("1",[A,A+[3,0]]) ã¾ãŸã¯ Circledata("1",[A.xy,A.xy+[3,0]]) ã¨ã™ã‚‹ã€‚
-\begin{flushright} \hyperlink{functionlist3d}{$\Rightarrow$関数一覧}\end{flushright}
-
-\subsection{領域を塗る}
-\subsubsection{円ã®å†…部を塗る}
-\begin{tabbing}
-12\=34567890123456789\=\kill\\
-
-\>ã€Cinderella】 \>「円を加ãˆã‚‹ã€ãƒ„ールを用ã„ãŸã®ã¡ï¼Œã‚¤ãƒ³ã‚¹ãƒšã‚¯ã‚¿ã§è¨­å®š\\
-\>ã€Cindyscript】 \>fillcircle(A,r) \\
- \>ã€KeTCindy】  \>Shade(PD)\\
-\end{tabbing}
- 画é¢ä¸Šã§è‰²ã‚’å¡—ã‚‹ã ã‘ãªã‚‰ã‚¤ãƒ³ã‚¹ãƒšã‚¯ã‚¿ã®ã€Œè¡¨ç¤ºæ–¹æ³•ã€ã§è‰²å¡—ã‚Šã‚’ã™ã‚‹ã®ãŒç°¡ä¾¿ã€‚é€æ˜Žåº¦ã‚‚設定ã§ãる。TeXã®å›³ç‰ˆã§ã‚‚領域を塗るã®ã§ã‚ã‚Œã°ï¼ŒCircledata()ã§å††ã‚’æã„ãŸï¼ˆãƒ—ロットデータを作æˆï¼‰ã®ã¡ï¼ŒShade()ã§è‰²ã‚’塗る。ã“ã“ã§è‰²æŒ‡å®šã‚’ã™ã‚Œã°ç”»é¢ã«ã‚‚å映ã•ã‚Œã‚‹ã€‚\\
-\begin{flushright} \hyperlink{functionlist3d}{$\Rightarrow$関数一覧}\end{flushright}
-
-
-\subsubsection{多角形ã®å†…部を塗る}
-
-\begin{tabbing}
-12\=34567890123456789\=\kill\\
-
-\>ã€Cinderella】 \>「多角形を加ãˆã‚‹ã€ãƒ„ール \includegraphics[bb=0 0 27 21 , width=0.6cm]{Cindytool/polygon.png} を用ã„る \\
-\>ã€Cindyscript】 \>fillpoly(点リスト)\\
- \>ã€KeTCindy】  \>Shade(PD)\\
-\end{tabbing}
- Cinderellaã®æ画ツールã®å¤šè§’形ツールã¯ï¼Œæ—¢å­˜ã®ç‚¹ã‚’çµã‚“ã§å¤šè§’形を作り色塗りをã™ã‚‹ã€‚
-
-Cindyscriptã§ã®ç‚¹ãƒªã‚¹ãƒˆã¯ï¼Œæ—¢å­˜ã®å¹¾ä½•ç‚¹ã§ãªã座標ã§ã‚‚よã„。点リストã¯ï¼Œå§‹ç‚¹ã¨çµ‚点をçµã¶ã®ã§é–‰ã˜ã¦ã„ã‚‹å¿…è¦ã¯ãªã„。([A,B,C,D])
-
- TeXã«æ›¸ã出ã™ã®ã§ã‚れ㰠Shade()を用ã„る。\\
-\begin{flushright} \hyperlink{functionlist3d}{$\Rightarrow$関数一覧}\end{flushright}
-
-
-\subsubsection{曲線ã§å›²ã¾ã‚ŒãŸé ˜åŸŸã‚’å¡—ã‚‹}
-\begin{tabbing}
-12\=34567890123456789\=\kill\\
-
- \>ã€KeTCindy】  \>Shade(PD)\\
-\end{tabbing}
-  Shade()を用ã„ã¦é ˜åŸŸã‚’塗る。Cinderellaã®ç”»é¢ã«ã‚‚å映ã•ã‚Œã‚‹ã€‚\\
-\begin{flushright} \hyperlink{functionlist3d}{$\Rightarrow$関数一覧}\end{flushright}
-
-
-\subsubsection{領域を斜線ã§ç¤ºã™}
-
-\begin{tabbing}
-12\=34567890123456\=\kill\\
- \>ã€KeTCindy】  \>Hatchdata(name,æ–¹å‘,PD)\\
-\end{tabbing}
-  領域を斜線ã§å¡—る。Cinderellaã®ç”»é¢ã«ã‚‚å映ã•ã‚Œã‚‹ã€‚Scilabã¨ãƒ‡ãƒ¼ã‚¿ã‚’ã‚„ã‚Šå–ã‚Šã—ã¦ãƒãƒƒãƒãƒ‡ãƒ¼ã‚¿ã‚’作るã®ã§ï¼Œãƒãƒƒãƒãƒ•ã‚¡ã‚¤ãƒ«ï¼ˆã‚·ã‚§ãƒ«ãƒ•ã‚¡ã‚¤ãƒ«ï¼‰ãŒè£ã§å®Ÿè¡Œã•ã‚Œã‚‹ã€‚\\\begin{flushright} \hyperlink{functionlist3d}{$\Rightarrow$関数一覧}\end{flushright}
-
-
-\subsubsection{領域を細ã‹ã„点ã§åŸ‹ã‚ã‚‹}
-
-\begin{tabbing}
-12\=34567890123456\=\kill\\
-
- \>ã€KeTCindy】  \>Dotfilldata(name,æ–¹å‘,PD)\\
-\end{tabbing}
- 曲線ã§å›²ã¾ã‚ŒãŸé ˜åŸŸã‚’斜線ã§å¡—ã‚‹ã‹ã‚ã‚Šã«ç´°ã‹ã„点ã§åŸ‹ã‚る。 使ã„æ–¹ã¯Hatchdata() ã¨åŒæ§˜ã€‚\\
-\begin{flushright} \hyperlink{functionlist3d}{$\Rightarrow$関数一覧}\end{flushright}
-
-
-\subsection{関数ã®ã‚°ãƒ©ãƒ•ãƒ»æ›²ç·š}
-
-\subsubsection{関数ã®ã‚°ãƒ©ãƒ•ã‚’æã}
-\begin{tabbing}
-12\=34567890123456789\=\kill\\
-
-\>ã€Cindyscript】 \>関数を定義ã—ã¦ï¼Œplot()ã§è¡¨ç¤ºã™ã‚‹ã€€\\
- \>ã€KeTCindy】  \>(関数を定義ã—ã¦ï¼‰Plotdata()ã§è¡¨ç¤ºã™ã‚‹ã€€\\
-\end{tabbing}
-
- Cindyscriptã§ã¯ï¼Œf(x):=å¼ ã®æ›¸å¼ã§é–¢æ•°ã‚’定義ã—,plot(fx)) ã§ã‚°ãƒ©ãƒ•ã‚’æãã“ã¨ãŒã§ãる。関数ã¯ï¼Œif関数ã«ã‚ˆã‚‹å ´åˆåˆ†ã‘ã‚‚å¯èƒ½ã€‚ã¾ãŸï¼Œã“ã®é–¢æ•°æ¦‚念ã¯æ•°å­¦é–¢æ•°ã§ã¯ãªã, プログラミングã«ãŠã‘る関数ãªã®ã§ï¼Œä¸€é€£ã®æ“作を関数ã¨ã—ã¦å®šç¾©ã—ã¦å®Ÿè¡Œã™ã‚‹ã“ã¨ã‚‚ã§ãる。\\
- KeTCindyã§ã¯ï¼ŒDeffun() ã§é–¢æ•°ã‚’定義ã—ã¦ï¼ŒPlotdata()ã§ã‚°ãƒ©ãƒ•ã‚’æã。Deffunã§ã¯ï¼Œifæ–‡ã«ã‚ˆã‚‹æ¡ä»¶åˆ†å²ã‚‚å¯èƒ½ã ãŒï¼Œifã®ãƒã‚¹ãƒˆã¯ã§ããªã„。\\
- 三角関数ãªã©ã®çµ„ã¿è¾¼ã¿é–¢æ•°ã«ã¤ã„ã¦ã¯ï¼Œå®šç¾©ã¯ä¸è¦ã§ï¼Œãã®ã¾ã¾ plot() ã‚‚ã—ã㯠Plotdata()ã§ã‚°ãƒ©ãƒ•ã‚’æãã“ã¨ãŒã§ãる。ãŸã ã—,Cindyscriptã«ã‚ã£ã¦ã‚‚KeTCindyã«ã¯ãªã„逆三角関数(arctanãªã©)ã¯Cindyscriptã§ç”»é¢ã«ã¯è¡¨ç¤ºã§ãã‚‹ãŒTeXã«ã¯ã§ããªã„。\\
-
-\begin{flushright} \hyperlink{functionlist3d}{$\Rightarrow$関数一覧}\end{flushright}
-
-\subsubsection{媒介変数表示ã®æ›²ç·šã‚’æã}
-
-\begin{tabbing}
-12\=34567890123456789\=\kill\\
-
-\>ã€Cindyscript】 \>plot([f(t),g(t)])\\
- \>ã€KeTCindy】  \>Paramplot(name,å¼,定義域) \\
- \>ã€KeTCindy3D】 \>Spacecurve(name,å¼,定義域) \\
-\end{tabbing}
- ã„ãšã‚Œã‚‚optionã§ç·šç¨®ãªã©ã®æŒ‡å®šãŒã§ãる。\\
- 平é¢ã«ãŠã‘る曲線ã§ï¼ŒTimer Tickスロットã«æ›¸ã„ã¦ã‚¢ãƒ‹ãƒ¡ãƒ¼ã‚·ãƒ§ãƒ³ã‚’è¡Œã†å ´åˆã¯ï¼ŒCindyscriptã® plot()ã®æ–¹ã‚’勧ã‚る。シンプルãªåˆ†ï¼Œå®Ÿè¡Œé€Ÿåº¦ã«ãŠã„ã¦æœ‰åˆ©ã§ã‚る。\\
-\begin{flushright} \hyperlink{functionlist3d}{$\Rightarrow$関数一覧}\end{flushright}
-
-
-\subsubsection{2次曲線をæã}
- 放物線,楕円,åŒæ›²ç·šã‚’æã。
-\begin{tabbing}
-12\=34567890123456789\=\kill\\
-
-\>ã€Cinderella】 \>焦点ãªã©ã‚’作図ã—ã¦ãã‚Œãžã‚Œã®ä½œå›³ãƒ„ールを用ã„ã‚‹\\
-\>ã€Cindyscript】 \>関数もã—ãã¯åª’介変数ã§è¡¨ã—ã¦plot()ã§æã\\
- \>ã€KeTCindy】  \>Plotdata() ã‚‚ã—ã㯠Paramplot() ,Parabolaplot() ãªã©ã§æã\\
-\end{tabbing}
- ã“れらã®æ›²ç·šã‚’æã方法ã¯ä½•é€šã‚Šã‹ã‚る。全体ã§ã¯ãªã一部分をæãå ´åˆã¯Cinderellaã®ä½œå›³ãƒ„ールã§ã¯ã§ããªã„ã®ã§plot()ã¾ãŸã¯ Paramplot()ã§æã。
-
- ã“れらã®æ›²ç·šä¸Šã«ç‚¹ã‚’ã¨ã‚Šï¼ŒæŽ¥ç·šã‚’引ã„ã¦ã‚¤ãƒ³ã‚¿ãƒ©ã‚¯ãƒ†ã‚£ãƒ–ã«å‹•ã‹ã™ã‚ˆã†ãªå ´åˆã¯ï¼ŒCinderellaã®ä½œå›³ãƒ„ールã§æãã¨ã‚ˆã„。点をインシデントã«ã™ã‚‹ã®ãŒå®¹æ˜“ã§ã‚り,接線も簡å˜ã«å¼•ã‘,ã•ã‚‰ã«ãã®æŽ¥ç·šã‚‚幾何è¦ç´ ã¨ãªã‚‹ã®ã§éƒ½åˆãŒã‚ˆã„。
-
-KeTCindyã§ã¯ï¼ŒPlotdata() ã§åª’介変数表示ã®å¼ã‚’与ãˆã‚‹ã‹ï¼ŒParabolaplot(),Ellipsplot(),Hyperbolaplot() ã§ç„¦ç‚¹ãªã©ã‚’与ãˆã¦æã。
-
-\begin{flushright} \hyperlink{functionlist3d}{$\Rightarrow$関数一覧}\end{flushright}
-
-
-\subsubsection{陰関数ã®ã‚°ãƒ©ãƒ•ã‚’æã}
-
-\begin{tabbing}
-12\=34567890123456\=\kill\\
-
- \>ã€KeTCindy】  \>Implicitplot()\\
-\end{tabbing}
- 陰関数ã§ä¸Žãˆã‚‰ã‚ŒãŸæ›²ç·šã‚’æã方法ã¯Cinderella,Cindyscriptã«ã¯ãªã„。
-\begin{flushright} \hyperlink{functionlist3d}{$\Rightarrow$関数一覧}\end{flushright}
-
-
-\subsubsection{プロットデータを自作ã—ã¦è¡¨ç¤ºã™ã‚‹}
- \\
- 組ã¿è¾¼ã¿é–¢æ•°ã«ãªã„関数ãªã©ã‚’使ã£ã¦ãƒ—ロットデータを自作ã—ã¦è¡¨ç¤ºã™ã‚‹ã«ã¯ï¼ŒCindyscriptã§ä½œæˆã—ãŸãƒ—ロットデータをListplot() ã¾ãŸã¯ AddGraph()ã«æ¸¡ã—ã¦æç”»ã™ã‚‹ã€‚ãã‚Œãžã‚Œã®é …ã®ä¾‹ã‚’å‚ç…§ã®ã“ã¨ã€‚
-
-\begin{flushright} \hyperlink{functionlist3d}{$\Rightarrow$関数一覧}\end{flushright}
-
-\subsection{ãã®ä»–}
-
-\subsubsection{幾何è¦ç´ ã‚’éžè¡¨ç¤ºã«ã™ã‚‹}
-æã„ãŸç‚¹ã‚„ç·šã‚’éžè¡¨ç¤ºã«ã™ã‚‹ã€‚
-\begin{tabbing}
-12\=34567890123456\=\kill\\
-
-\>ã€Cinderella】 \>インスペクタã®ã€Œè¡¨ç¤ºæ–¹æ³•ã€ã§ã€Œè¡¨ç¤ºã™ã‚‹ã€ã®ãƒã‚§ãƒƒã‚¯ã‚’切る \\
-\>ã€Cindyscript】 \>幾何è¦ç´ ã®visibleプロパティをfalseã«ã™ã‚‹ã€€\\
- \>ã€KeTCindy】  \>"notex" ã¾ãŸã¯ "nodisp" オプションをã¤ã‘ã‚‹  \\
-\end{tabbing}
- インスペクタã®è¡¨ç¤ºæ–¹æ³•ã€ã§ã€Œè¡¨ç¤ºã™ã‚‹ã€ã®ãƒã‚§ãƒƒã‚¯ã‚’切ã£ãŸå ´åˆï¼Œã€Œè¡¨ç¤ºã€ã«æˆ»ã™ã«ã¯ï¼Œã€Œè¡¨ç¤ºã€ãƒ¡ãƒ‹ãƒ¥ãƒ¼ã®ã€Œå¼ã«ã‚ˆã‚‹è¡¨ç¤ºã€ã‚’é–‹ã„ã¦ï¼Œè©²å½“ã®å¹¾ä½•è¦ç´ ã‚’é¸æŠžã—,インスペクタã§ã€Œè¡¨ç¤ºã™ã‚‹ã€ã®ãƒã‚§ãƒƒã‚¯ã‚’ã¤ã‘る。\\
- 幾何è¦ç´ ã‚’Cindyscriptã§éžè¡¨ç¤º/表示ã«ã™ã‚‹ã«ã¯ï¼ŒA.visible=false / true ã¨ã™ã‚‹ã€‚幾何è¦ç´ ã§ã¯ãªã„関数ã®ã‚°ãƒ©ãƒ•ãªã©ã¯ã‚¤ãƒ³ã‚¹ãƒšã‚¯ã‚¿ã§ã¯éžè¡¨ç¤ºã«ã§ããªã„。\\
- KeTCindy ã® "notex" オプションã¯TeXã«å‡ºåŠ›ã—ãªã„。"nodisp"オプションã§ã¯ï¼Œç”»é¢ã«ã‚‚表示ã•ã‚Œãªã„。プロットデータを作æˆã™ã‚‹ãŸã‚ã«ä½¿ã†ã€‚\\
-\begin{flushright} \hyperlink{functionlist3d}{$\Rightarrow$関数一覧}\end{flushright}
-
-
-\subsubsection{角ã«å°ã‚’ã¤ã‘ã‚‹}
-角ã«å¼§ã¾ãŸã¯å¹³è¡Œå››è¾ºå½¢ã®è§’ã®å°ã‚’ã¤ã‘る。
-\begin{tabbing}
-12\=34567890123456\=\kill\\
-
-\>ã€Cinderella】 \>「角ã«å°ã‚’ã¤ã‘ã‚‹ã€ãƒ„ール \includegraphics[bb=0 0 27 21 , width=0.6cm]{Cindytool/angle-mark.png} を用ã„る(弧ã®å½¢çŠ¶ã®ã¿ï¼‰\\
-\>ã€Cindyscript】 \>ãªã—\\
- \>ã€KeTCindy】  \>Anglemark() , Paramark() を用ã„る \\
-\end{tabbing}
- TeXã«å‡ºåŠ›ã—ãªã„ã®ã§ã‚ã‚Œã°ï¼Œã€Œè§’ã«å°ã‚’ã¤ã‘ã‚‹ã€ãƒ„ールを用ã„ã‚‹ã®ãŒç°¡ä¾¿ã€‚ãŸã ã—,平行四辺形ã®å°ã¯ã¤ã‘られãªã„。\\
- 角ã«å‘ãを示ã™çŸ¢å°ã‚’付加ã™ã‚‹å ´åˆã¯ï¼ŒAnglemark()ã§æã„ã¦ãŠã,Arrowhead()ã§çŸ¢ã˜ã‚Šã‚’ã¤ã‘る。\\
-\begin{flushright} \hyperlink{functionlist3d}{$\Rightarrow$関数一覧}\end{flushright}
-
-
-\subsection{値ã®å–得・変æ›}
-\subsubsection{角度を測る}
-
-\begin{tabbing}
-12\=34567890123456789\=\kill\\
-
-\>ã€Cinderella】 \>「角度を測るã€ãƒ„ール \includegraphics[bb=0 0 27 21 , width=0.6cm]{Cindytool/angle.png}を用ã„る。\\
-\>ã€Cindyscript】 \>arctan2(ベクトル)を用ã„ã‚‹\\
-\end{tabbing}
- Cinderellaã®ã€Œè§’度を測るã€ãƒ„ールã§ã¯ï¼Œç”»é¢ä¸Šã«è§’度ãŒè¡¨ç¤ºã•ã‚Œã‚‹ã€‚ã“ã®å€¤ã‚’スクリプトã§åˆ©ç”¨ã™ã‚‹ãŸã‚ã«ã¯ï¼Œãã®è­˜åˆ¥åを用ã„る。識別åã¯ï¼Œè¡¨ç¤ºãƒ¡ãƒ‹ãƒ¥ãƒ¼ã‹ã‚‰ã€Œå¼ã«ã‚ˆã‚‹è¡¨ç¤ºã€ã§å‡ºã‚‹å¹¾ä½•è¦ç´ ã®ä¸€è¦§è¡¨ã§åˆ¤æ–­ã™ã‚‹ã€‚識別åãŒÎ±0ã§ã‚ã‚Œã°ï¼Œå¤‰æ•°Î±0ã«è§’ã®å€¤ãŒå…¥ã£ã¦ã„ã‚‹ã¨è€ƒãˆã¦ã‚ˆã„。αã¯æ—¥æœ¬èªžå…¥åŠ›ãƒ¢ãƒ¼ãƒ‰ã§ã€Œã‚ã‚‹ãµãã€ã§å…¥åŠ›ã™ã‚‹ã€‚ãŸã¨ãˆã°ï¼Œdrawtext([1,1],α0) ã¨ã™ã‚Œã°ï¼Œ(1,1) ã®ä½ç½®ã«è§’度ãŒè¡¨ç¤ºã•ã‚Œã‚‹ã€‚ã“ã®ã¨ãã®è§’ã¯ä¸€èˆ¬è§’ã§ã‚り,点をドラッグã™ã‚‹ã¨360°以上ã®è§’ã‚„è² ã®è§’ã§è¡¨ç¤ºã•ã‚Œã‚‹ã€‚ã¾ãŸï¼Œè¡¨ç¤ºã¯åº¦æ•°æ³•ã§è¡Œã‚れるãŒï¼Œå‡¦ç†ã«ã‚ˆã£ã¦ã¯å¼§åº¦æ³•ã§ã®è¡¨ç¤ºã¨ãªã‚‹ã€‚\\
- Cindyscriptã§è§’度をå–å¾—ã™ã‚‹ã«ã¯ï¼Œarctan2()を用ã„ã‚‹ã®ãŒã‚ˆã„。引数ã¯ãƒ™ã‚¯ãƒˆãƒ«ã§ï¼Œx軸ã®æ­£ã®æ–¹å‘ã¨ã®ãªã™è§’ã‚’ −π 〜 Ï€ ã®ç¯„囲ã§å¼§åº¦æ³•ã§è¿”ã™ã€‚角ABCã®å ´åˆï¼Œth=arctan2(C.xy-B.xy)-arctan2(A.xy-B.xy) ã§å–å¾—ã§ãる。\\
-\begin{flushright} \hyperlink{functionlist3d}{$\Rightarrow$関数一覧}\end{flushright}
-
-\subsubsection{2点間ã®è·é›¢ã‚’測る}
-
-\begin{tabbing}
-12\=34567890123456\=\kill\\
-
-\>ã€Cindyscript】 \>dist(A,B) ã¾ãŸã¯ $|$A,B$|$ \\
- \>ã€KeTCindy3D】 \>dist3d(点,点)\\
-\end{tabbing}
-\begin{flushright} \hyperlink{functionlist3d}{$\Rightarrow$関数一覧}\end{flushright}
-
-\subsubsection{数値を文字ã«å¤‰æ›ã™ã‚‹}
-関数ã®å¼•æ•°ã«æ–‡å­—列ã¨ã—ã¦ä¸Žãˆã‚‹ãŸã‚ã«æ•°å€¤ã‚’文字列ã«å¤‰æ›ã—ãŸã„å ´åˆãŒã‚る。ã“ã®ã‚ˆã†ãªå ´åˆã¯ï¼Œtext() 関数を用ã„る。引数ã¯å®Ÿæ•°ãƒ»è¤‡ç´ æ•°ã„ãšã‚Œã§ã‚‚å¯ã€‚\\
-
-subsubsection{å°æ•°ç‚¹ã®æ¡æ•°ã‚’指定ã—ã¦è¡¨ç¤º}
-\begin{tabbing}
-12\=34567890123456\=\kill\\
-
-\>ã€Cinderella】 \>ãªã— \\
-\>ã€Cindyscript】 \>format()関数を用ã„る \\
- \>ã€KeTCindy】  \>Textformat() 関数を用ã„ã‚‹\\
-\end{tabbing}
- Cinderellaã§ã¯ï¼Œå°æ•°ç‚¹ä»¥ä¸‹ã®æ¡æ•°ã¯ç¬¬ï¼•ä½ã‚’å››æ¨äº”å…¥ã—ã¦è¡¨ç¤ºã™ã‚‹ã®ãŒãƒ‡ãƒ•ã‚©ãƒ«ãƒˆã§ã‚る。å°æ•°ç‚¹ä»¥ä¸‹ã®æ¡æ•°ã‚’指定ã™ã‚‹ã«ã¯ï¼ŒCindyscriptã§ã¯ format()関数,KeTCindydã§ã¯ Textformat()関数を用ã„る。Textformat()関数ã¯ï¼Œãƒªã‚¹ãƒˆã§ä¸ŽãˆãŸæ•°ã§ã‚‚処ç†ã§ãる。\\
-\begin{flushright} \hyperlink{functionlist3d}{$\Rightarrow$関数一覧}\end{flushright}
-
-\subsection{スライダを作る}
-\subsubsection{線分スライダを作る}
-変数ã®å€¤ã‚’インタラクティブã«æ±ºã‚るスライダを作る。
-
-ã¾ãšï¼ŒCinderellaã®ä½œå›³ãƒ„ールã§ï¼Œé©å½“ãªç·šåˆ†ï¼ˆã¾ãŸã¯ç›´ç·šï¼‰ã¨ï¼Œãã®ä¸Šã®ç‚¹ã‚’ã¨ã‚‹ã€‚ã“ã®ã¨ã,点ãŒç·šåˆ†ä¸Šã«ã‚¤ãƒ³ã‚·ãƒ‡ãƒ³ãƒˆã«ãªã‚‹ã‚ˆã†ã«ï¼Œç‚¹ã‚’線分上ã«ãƒ‰ãƒ©ãƒƒã‚°ã—ã¦ç·šåˆ†ãŒãƒã‚¤ãƒ©ã‚¤ãƒˆã—ãŸã¨ãã«ãƒžã‚¦ã‚¹ãƒœã‚¿ãƒ³ã‚’離ã™ã€‚
-
-線分をAB,AB上ã®ç‚¹ã‚’Cã¨ã—ã¦ï¼ŒAã¨Cã®è·é›¢ $|$A,C$|$ を用ã„ã¦å¤‰æ•°ã®å€¤ã‚’決ã‚ã‚Œã°ã‚ˆã„。
-
-  例:x=$|$A,C$|$-5;
-
-æ•´æ•°ã‚’å–å¾—ã—ãŸã„å ´åˆã¯ï¼Œå¤©äº•é–¢æ•°ceil()ã¾ãŸã¯ï¼ŒåºŠé–¢æ•° floor()を用ã„ã¦æ•´æ•°åŒ–ã™ã‚‹ã€‚
-
-  例:n=ceil($|$A,C$|$)
-
-点Cを端点ã¾ã§ãƒ‰ãƒ©ãƒƒã‚°ã—ãŸå¾Œï¼Œã•ã‚‰ã«ç‚¹Cをドラッグã—よã†ã¨ã™ã‚‹ã¨ç«¯ç‚¹ã‚‚åŒæ™‚ã«å‹•ã„ã¦ã—ã¾ã†ã“ã¨ãŒã‚る。ãã“ã§ï¼Œç«¯ç‚¹ã‚’é¸æŠžã—ã¦ã‚¤ãƒ³ã‚¹ãƒšã‚¯ã‚¿ã§ã€Œãƒ”ンã§ç•™ã‚ã‚‹ã€ã«ãƒã‚§ãƒƒã‚¯ã‚’入れã¦ãŠãã¨ã‚ˆã„。
-\begin{flushright} \hyperlink{functionlist3d}{$\Rightarrow$関数一覧}\end{flushright}
-
-\subsubsection{円形スライダを作る}
-角ã®å€¤ã‚’インタラクティブã«æ±ºã‚るスライダを作る。
-
-ã¾ãšï¼ŒCinderellaã®ä½œå›³ãƒ„ールã§ï¼Œé©å½“ãªå††ã‚’æã,ãã®ä¸Šã«ç‚¹ã‚’ã¨ã‚‹ã€‚ã“ã®ã¨ã,点ãŒå††å‘¨ä¸Šã«ã‚¤ãƒ³ã‚·ãƒ‡ãƒ³ãƒˆã«ãªã‚‹ã‚ˆã†ã«ï¼Œç‚¹ã‚’円周上ã«ãƒ‰ãƒ©ãƒƒã‚°ã—ã¦å††å‘¨ãŒãƒã‚¤ãƒ©ã‚¤ãƒˆã—ãŸã¨ãã«ãƒžã‚¦ã‚¹ãƒœã‚¿ãƒ³ã‚’離ã™ã€‚
-
-円ã®ä¸­å¿ƒã‚’A,円周上ã®ç‚¹ã‚’Bã¨ã—ãŸã¨ã,B.angleã§è§’度をå–å¾—ã§ãる。ãŸã ã—,戻り値ã¯$0^\circ 〜 360^\circ$
-
-arctan2(B.xy-A.xy) ã§è§’ã‚’å–å¾—ã™ã‚‹ã“ã¨ã‚‚ã§ãる。ã“ã®å ´åˆã®æˆ»ã‚Šå€¤ã¯ï¼Œ$-180^\circ 〜 180^\circ$\\
-\begin{flushright} \hyperlink{functionlist3d}{$\Rightarrow$関数一覧}\end{flushright}
-
-
-
-% 関数一覧 ==================================
-\hypertarget{functionlist}{}
-\section{関数一覧}
-\begin{tabbing}
-12345678901234567890123456789012345678\=\kill
-ã€è¨­å®šãƒ»å®šç¾©ã€‘\\
-\hyperlink{addax}{Addax(0/1)} \>座標軸をæãã‹ã©ã†ã‹ã‚’定ã‚ã‚‹\\
-\hyperlink{addcolor}{Addcolor(com,color)} \>æ画色を設定ã™ã‚‹\\
-\hyperlink{colorcode}{Colorcode(文字1,文字2,color)} \>カラーコードã®å¤‰æ›\\
-\hyperlink{deffun}{Deffun(関数å , 定義リスト )} \>関数を定義ã™ã‚‹\\
-\hyperlink{definecolor}{Definecolor(色å , 定義リスト )} \>ユーザー定義色ã®è¨­å®š\\
-\hyperlink{defvar}{Defvar(文字列)}  \>変数を定義ã™ã‚‹\\
-\hyperlink{drwxy}{Drwxy()}   \>座標軸を先ã«æã\\
-\hyperlink{fontsize}{Fontsize(記å·)}   \>フォントサイズを設定ã™ã‚‹\\
-\hyperlink{ketint}{Ketinit(options)}   \>\ketcindy ã‚’åˆæœŸåŒ–ã™ã‚‹\\
-\hyperlink{ptsie}{Ptsize(æ•°)}   \>表示ã™ã‚‹ç‚¹ã®å¤§ãã•ã‚’設定ã™ã‚‹\\
-\hyperlink{setax}{Setax(リスト)}  \>座標軸ã®æ›¸å¼ã‚’設定ã™ã‚‹\\
-\hyperlink{setcolor}{Setcolor(color,options)}  \>Windispgã§ã®æ画色を設定ã™ã‚‹\\
-\hyperlink{setmarklen}{Setmarklen(æ•°)} \>軸ã®ç›®ç››ã®é•·ã•ã‚’設定ã™ã‚‹\\
-\hyperlink{setorigin}{Setorigin(座標)} \>表示ã™ã‚‹åº§æ¨™è»¸ã®åŽŸç‚¹ã®ä½ç½®ã‚’設定ã™ã‚‹\\
-\hyperlink{setpen}{Setpen(æ•°)}   \>ç·šã®å¤ªã•ã‚’設定ã™ã‚‹\\
-\hyperlink{setpt}{Setpt(æ•°)}    \>表示ã™ã‚‹ç‚¹ã®å¤§ãã•ã‚’設定ã™ã‚‹\\
-\hyperlink{setscaling}{Setscaling(æ•°)}  \>縦方å‘ã®å€çŽ‡ã‚’設定ã™ã‚‹\\
-\hyperlink{setunitlen}{Setunitlen(æ•°)}  \>å˜ä½é•·ã‚’設定ã™ã‚‹\\
-\hyperlink{setwindow}{Setwindow()} \>æ画領域を設定ã™ã‚‹\\
-\\
-ã€æ画】\\
-\hyperlink{anglemark}{Anglemark(点リスト, options)} \>角ã®å°ã‚’入れる\\
-\hyperlink{addgraph}{AddGraph(name ,プロットデータ)} \>ユーザー定義ã®ãƒ—ロットデータをæç”»ã™ã‚‹\\
-\hyperlink{arrowdata}{Arrowdata(始点,終点,options)} \>2点間をçµã¶çŸ¢ç·šã‚’æã\\
-\hyperlink{arrowhead}{Arrowhead(点,æ–¹å‘,options)} \>点ã«çŸ¢ã˜ã‚Šã ã‘ã‚’æã\\
-\hyperlink{bezier}{Bezier(name, リスト,リスト,options )} \>å˜ç‹¬ã®ãƒ™ã‚¸ã‚§æ›²ç·šã‚’æã\\
-\hyperlink{beziersmooth}{Beziersmooth(name , リスト,options )} \>ãªã‚らã‹ãªãƒ™ã‚¸ã‚§æ›²ç·šã‚’æã。ãã®ï¼‘\\
-\hyperlink{beziersym}{Beziersym(name , リスト,options )} \>ãªã‚らã‹ãªãƒ™ã‚¸ã‚§æ›²ç·šã‚’æã。ãã®ï¼’\\
-\hyperlink{bowdata}{Bowdata(点リスト,options)} \>弓形をæã\\
-\hyperlink{bspline}{Bspline(name,リスト,options )} \>2次 Bスプライン曲線をæã\\
-\hyperlink{changestyle}{Changestyle(PD リスト, options)} \>æ画オプションを変更ã™ã‚‹\\
-\hyperlink{circledata}{Circledata(name,点リスト,options)} \>円ã¾ãŸã¯å¤šè§’形をæã\\
-\hyperlink{crosspoint}{Crosspoint(name,PD,PD,範囲リスト)} \>2曲線ã®äº¤ç‚¹ã‚’作る\\
-\hyperlink{cspline}{CRspline(name,リスト,options )} \>å˜ç‹¬ã®Catmull-Rom スプライン曲線をæã\\
-\hyperlink{deqplot}{Deqplot(name,å¼,変数å,åˆæœŸå€¤,options])} \>微分方程å¼ã®è§£æ›²ç·šã‚’æã\\
-\hyperlink{dotfilldata}{Dotfilldata(name , æ–¹å‘, PD , optionss)}  \>領域ã«ç‚¹ã‚’æ•·ãè©°ã‚ã‚‹\\
-\hyperlink{drawsegmark}{Drawsegmark(name,リスト,options)} \>線分ã«å°ã‚’ã¤ã‘ã‚‹\\
-\hyperlink{drawsegmark}{Segmark(name,リスト,options)} \>線分ã«å°ã‚’ã¤ã‘ã‚‹\\
-\hyperlink{drwpt}{Drawpoint([点,options])} \>点を表示ã™ã‚‹\\
-\hyperlink{drwpt}{Drwpt([点,options])}   \>点を表示ã™ã‚‹\\
-\hyperlink{ellipseplot}{Ellipseplot(name,list,str,options)} \>楕円をæã\\
-\hyperlink{enclosing}{Enclosing(name , [ä½ç½®ï¼Œæ–¹å‘,数å¼])} \>複数ã®æ›²ç·šã‹ã‚‰é–‰æ›²ç·šã‚’æã\\
-\hyperlink{expr}{Expr(文字列)}    \>\TeX æ•°å¼ã‚’書ã\\
-\hyperlink{exprrot}{Exprrot(ä½ç½®ï¼Œå‘ã,文字列)}    \>傾ã„ãŸ\TeX æ•°å¼ã‚’書ã\\
-\hyperlink{framedata}{Framedata(name , リスト)} \>矩形をæã\\
-\hyperlink{framedata}{Framedata2(name , リスト)} \>矩形をæã\\
-\hyperlink{hatchdata}{Hatchdata(name , æ–¹å‘, PD , optionss)}  \>領域ã«æ–œç·šã‚’引ã\\
-\hyperlink{htickmark}{Htickmark([横座標 , æ–¹å‘ , 文字])}  \>横軸ã«ç›®ç››ã‚Šã‚’æã\\
-\hyperlink{hyperbolaplot}{Hyperbolaplot(name,list,str,options)} \>åŒæ›²ç·šã‚’æã\\
-\hyperlink{implicitplot}{Implicitplot(name,str,,str,str,options)} \>陰関数ã®ã‚°ãƒ©ãƒ•ã‚’æã\\
-\hyperlink{joincrvs}{Joincrvs(name, PDリスト, options)} \>2ã¤ã®ãƒ—ロットデータをã¤ãªã’ãŸãƒ‡ãƒ¼ã‚¿ã‚’作る\\
-\hyperlink{letter}{Letter(「座標,ä½ç½®,文字列]ã®ãƒªã‚¹ãƒˆã€)}   \>文字列を表示ã™ã‚‹\\
-\hyperlink{letterrot}{Letterrot(「座標,æ–¹å‘,移動é‡,文字列])}   \>文字列を回転ã—ã¦è¡¨ç¤ºã™ã‚‹\\
-\hyperlink{lineplot}{Lineplot(name,2点ã®ãƒªã‚¹ãƒˆ,options)}  \>2点をçµã¶ç›´ç·šã‚’æã\\
-\hyperlink{listplot}{Listplot(name,点ã®ãƒªã‚¹ãƒˆ,options)}  \>点を線分ã§çµã¶\\
-\hyperlink{mkbeziercrv}{Mkbeziercrv(name,リスト,options)} \>作図ã—ãŸç‚¹ã‚’使ã£ã¦ãƒ™ã‚¸ã‚¨æ›²ç·šã‚’æã\\
-\hyperlink{mkbezierptcrv}{Mkbezierptcrv(リスト,options ) } \>制御点を自動é…ç½®ã—ã¦ãƒ™ã‚¸ã‚¨æ›²ç·šã‚’æã\\
-\hyperlink{mkcircle}{Mkcircle()}  \>幾何円ã®ã™ã¹ã¦ã®PD を作æˆã™ã‚‹\\
-\hyperlink{mksegments}{Mksegments()} \> 幾何線分ã®ã™ã¹ã¦ã®PD を作æˆã™ã‚‹\\
-\hyperlink{ovaldata}{Ovaldata(name, 点リスト,optionss)} \>角を丸ãã—ãŸçŸ©å½¢ã‚’æã\\
-\hyperlink{parabolaplot}{Parabolaplot(name,list,str,options)} \>放物線をæã\\
-\hyperlink{parabolaplot}{Parabolaplot(name,点リスト,options)} \>楕円をæã\\
-\hyperlink{paramark}{Paramark(点リスト,options)} \>角ã®å°ã‚’入れる\\
-\hyperlink{paramplot}{Paramplot(name,å¼,変数ã¨å®šç¾©åŸŸ,options)} \>媒介変数ã§è¡¨ã•ã‚ŒãŸæ›²ç·šã‚’表示ã™ã‚‹\\
-\hyperlink{partcrv}{Partcrv(name,点1,点2,PD)}  \>部分曲線をæã\\
-\hyperlink{plotdata}{Plotdata(name,å¼,変数ã¨å®šç¾©åŸŸ,options)}  \>関数ã®ã‚°ãƒ©ãƒ•ã‚’æã\\
-\hyperlink{pointdata}{Pointdata(name,点リスト,optionss)} \>点データを作る\\
-\hyperlink{polygonplot}{Polygonplot(name,点リスト,æ•´æ•°,options)} \>正多角形をæã\\
-\hyperlink{putintersect}{Putintersect(点å,PD1,PD2)} \>2曲線ã®äº¤ç‚¹ã‚’作る\\
-\hyperlink{putline}{PutonLine(点å,座標1,座標2)}   \>直線上ã«ç‚¹ã‚’作る\\
-\hyperlink{putoncurve}{PutonCurve(name,PD,åˆæœŸå€¤)} \>曲線上ã«ç‚¹ã‚’作る\\
-\hyperlink{putpoint}{Putpoint(点å,座標1,座標2)}   \>点を作る\\
-\hyperlink{putseg}{PutonSeg(点å,座標1,座標2)}   \>線分上ã«ç‚¹ã‚’作る\\
-\hyperlink{reflectdata}{Reflectdata(name,PD,点リスト,options)} \>プロットデータã®é¡æ˜ ã‚’作æˆ\\
-\hyperlink{reflectpoint}{Reflectpoint(点,対称点/対称軸)} \>点ã®é¡æ˜ ã‚’作æˆ\\
-\hyperlink{rotatedata}{Rotatedate(name,PD,角度,中心,options)} \>プロットデータを回転ã™ã‚‹\\
-\hyperlink{rotatepoint}{Rotatepoint(点,角度,中心)} \>点ã®ä½ç½®ã‚’回転ã™ã‚‹\\
-\hyperlink{rulerscale}{Rulerscale(点,リスト,リスト)} \>目盛を打ã¤\\
-\hyperlink{scaldedata}{Scaledata(name,PD,x,y,中心,options)}  \>点を拡大・縮å°ã™ã‚‹\\
-\hyperlink{scalepoint}{Scalepoint(点,比率ベクトル,中心)}  \>点ã®ä½ç½®ã‚’拡大・縮å°ã™ã‚‹\\
-\hyperlink{shade}{Shade(PDリスト , æ•°)}   \>閉曲線ã®å†…部ã«ã‚·ã‚§ãƒ¼ãƒ‰ã‚’ã‹ã‘ã‚‹\\
-\hyperlink{translatedata}{Translatedata(name,PD,ベクトル,options)} \>プロットデータを平行移動ã™ã‚‹\\
-\hyperlink{translatepoint}{Translatepoint(点,ベクトル)} \>点を平行移動ã™ã‚‹\\
-\hyperlink{vtickmark}{Vtickmark([横座標 , æ–¹å‘ , 文字])}  \>縦軸ã«ç›®ç››ã‚Šã‚’æã\\
-
- \\
-ã€å¾®ç©åˆ†ãªã©ã€‘\\
-\hyperlink{derivative}{Derivative(関数å¼,変数,値)} \>関数ã®å¾®åˆ†ä¿‚数を求ã‚ã‚‹\\
-\hyperlink{integrate}{Integrate(関数å¼,変数,範囲,options)}  \>関数ã®å®šç©åˆ†å€¤ã‚’求ã‚ã‚‹\\
-\hyperlink{inversefun}{Inversefun(関数å¼,範囲,値)} \>逆関数値を求ã‚ã‚‹\\
- \\
-ã€ä½œè¡¨ã€‘\\
-\hyperlink{tabledata}{Tabledata("" , 縦横 ,除外 , options)} \>表ã®æž ã‚’作æˆã™ã‚‹\\
-\hyperlink{tabledatalight}{Tabledatalight("" , 縦横 ,除外 , options)} \>幾何点をæŒãŸãªã„表ã®æž ã‚’作æˆã™ã‚‹\\
-\hyperlink{tableseg}{Tableseg( 罫線リスト, 線種) } \>罫線ã®ç·šç¨®ã‚’指定ã™ã‚‹\\
-\hyperlink{changetablestyle}{ChangeTablestyle(罫線リスト, options)} \>Table ã®ç½«ç·šã®æ画オプションを変更ã™ã‚‹ã€‚\\
-\hyperlink{findcell}{Findcell(列番å·, 行番å·)} \>セルã®æƒ…å ±listã‚’è¿”ã™\\
-\hyperlink{putcell}{Putcell (列番å·, 行番å·, ä½ç½®, 文字)} \>セルã«æ–‡å­—列を入れる\\
-\hyperlink{putcol}{PutcoL (列番å·, ä½ç½®ï¼Œæ–‡å­—列リスト)} \>1列ã«é †ã«æ–‡å­—を書ã入れる\\
-\hyperlink{putcolexpr}{PutcoLexpr (列番å·, ä½ç½®ï¼Œæ–‡å­—列リスト)} \>1列ã«é †ã«\TeX 書å¼ã®æ–‡å­—を書ã入れる\\
-\hyperlink{putrow}{Putrow (行番å·, ä½ç½®ï¼Œæ–‡å­—列リスト)} \>1行ã«é †ã«æ–‡å­—を書ã入れる\\
-\hyperlink{putrowexpr}{Putrowexpr (行番å·, ä½ç½®ï¼Œæ–‡å­—列リスト)} \>1行ã«é †ã«\TeX 書å¼ã®æ–‡å­—を書ã入れる\\
-\hyperlink{settable}{Settable((左上) , å³ä¸‹)} \>表データを書ã出ã™\\
-\hyperlink{tgrid}{Tgird(セルラベル} \>セル(格å­ç‚¹ï¼‰ã®åº§æ¨™ã‚’è¿”ã™\\
-\hyperlink{tlistplot}{Tlistplot(セルラベル1,セルラベル2)} \>セルã«æ–œç·šã‚’引ã\\
- \\
-ã€å€¤ã®å–å¾—ã¨å…¥å‡ºåŠ›ã€‘\\
-\hyperlink{crossprod}{Crossprod(リスト,リスト)} \>ベクトルã®å¤–ç©ã‚’計算ã™ã‚‹\\
-\hyperlink{dotprod}{Dotoprod(リスト,リスト)} \>ベクトルã®å†…ç©ã‚’計算ã™ã‚‹\\
-\hyperlink{findarea}{Findarea(PD)} \>プロットデータã§å›²ã¾ã‚Œã‚‹éƒ¨åˆ†ã®é¢ç©ã‚’求ã‚ã‚‹\\
-\hyperlink{findlength}{Findlength(PD)} \>プロットデータã§æã曲線ã®é•·ã•ã‚’求ã‚ã‚‹\\
-\hyperlink{intersectcrvs}{Intersectcrvs(PD1,PD2,options)}  \>プロットデータを交点ã®ãƒªã‚¹ãƒˆã‚’è¿”ã™\\
-\hyperlink{invert}{Invert(PD)}    \>プロットデータã®ç‚¹ã‚’逆順ã«ã™ã‚‹ï¼ˆreverseã¨åŒã˜ï¼‰\\
-\hyperlink{meetcurve}{MeetCurve(PD,x,y)} \>曲線上ã®ç‚¹ã‚’å–å¾—ã™ã‚‹\\
-\hyperlink{lcrd}{Lcrd()}   \>幾何点,リスト点ã®è«–ç†åº§æ¨™ã‚’å–å¾—ã™ã‚‹\\
-\hyperlink{pcrd}{Pcrd()}   \>幾何点,リスト点ã®ç‰©ç†ï¼ˆè¡¨ç¤ºï¼‰åº§æ¨™ã‚’å–å¾—ã™ã‚‹\\
-\hyperlink{nearestpt}{Nearestpt(PD,PD)} \>2曲線間ã®æœ€ã‚‚è¿‘ã„点をå–å¾—ã™ã‚‹\\
-\hyperlink{nearestptcrv}{Nearestptcrv(点,PD)} \>点ã«ä¸€ç•ªè¿‘ã„曲線上ã®ç‚¹ã‚’å–å¾—ã™ã‚‹\\
-\hyperlink{numptcrv}{Numptcrv(PD)}  \>曲線PD ã®ç¯€ç‚¹ãƒ‡ãƒ¼ã‚¿ã®å€‹æ•°ã‚’å–å¾—ã™ã‚‹\\
-\hyperlink{paramoncurve}{ParamonCurve(PD,n,PtL)} \>PD上ã«ã‚る点P ã®ãƒ‡ãƒ¼ã‚¿ã‚’å–å¾—ã™ã‚‹\\
-\hyperlink{pointoncrv}{Pointoncrv(æ•°,PD)} \>パラメータ値をもã¤ãƒ—ロットデータ上ã®ç‚¹\\
-\hyperlink{ptcrv}{Ptcrv(n,PD)} \>曲線PD ã®n 番目ã®ç¯€ç‚¹ã‚’å–å¾—ã™ã‚‹\\
-\hyperlink{ptstart}{Ptstart(PD)}   \>プロットデータã®å§‹ç‚¹ã‚’å–å¾—ã™ã‚‹\\
-\hyperlink{ptstart}{Ptend(PD)}   \>プロットデータã®çµ‚点をå–å¾—ã™ã‚‹\\
-\hyperlink{readoutdata}{ReadOutData(ファイルå)} \>外部データを読ã¿è¾¼ã‚€\\
-\hyperlink{sprintf}{Sprintf(実数,é•·ã•)} \>å°æ•°ç‚¹ä»¥ä¸‹ã®é•·ã•ã‚’固定ã—ãŸæ–‡å­—列ã«å¤‰æ›\\
-\hyperlink{writetosci}{WritetoSci(ファイルå,options)} \>ã™ã¹ã¦ã®ã‚½ãƒ¼ã‚¹ã‚’ Scilab 用ã«æ›¸ã出ã™\\
-\hyperlink{writetosci}{WritetoScibody(ファイルå)} \>ボディã®ã‚½ãƒ¼ã‚¹ã‚’ Scilab 用ã«æ›¸ã出ã™\\
-\hyperlink{makeshell}{Makeshell(ファイルå)} \>Macã®ã‚·ã‚§ãƒ«ã‚¹ã‚¯ãƒªãƒ—トを書ã出ã™\\
-\hyperlink{makeshell}{Makebat(ファイルå)} \>Windowsã®ãƒãƒƒãƒãƒ•ã‚¡ã‚¤ãƒ«ã‚’書ã出ã™\\
-\hyperlink{textformat}{Textformat(æ•°,æ¡æ•°)} \>å°æ•°ç‚¹ä»¥ä¸‹ã®æ¡æ•°ã‚’指定ã—ã¦æ•°å€¤ã‚’文字列化ã™ã‚‹\\
-\hyperlink{viewtex}{Viewtex()} \>\TeX ã®ã‚½ãƒ¼ã‚¹ãƒ•ã‚¡ã‚¤ãƒ«ã‚’書ã出ã™ã€‚引数ãªã—\\
- \hyperlink{workprocess}{Workprocess()} \>作図ã®çµŒéŽã‚’å–å¾—ã™ã‚‹\\
- \\
-ã€ãã®ä»–】\\
-\hyperlink{assign}{Assign(文字列)}  \>文字列中ã®ã‚る文字を値ã§ç½®ãæ›ãˆã‚‹\\
-\hyperlink{bbdata}{BBdata(ファイルå)}  \>ç”»åƒã®ã‚µã‚¤ã‚ºã‚’求ã‚ã‚‹\\
-\hyperlink{changework}{Changework(パス)}  \>作業ディレクトリを変更ã™ã‚‹\\
-\hyperlink{com0th}{Com0th(コマンド)}  \>Scilabã®Openfileã®å‰ã«ç½®ãコマンドを定義ã™ã‚‹\\
-\hyperlink{com1st}{Com1st(コマンド)}  \>Scilabã®Openfileã®å‰ã«ç½®ãコマンドを定義ã™ã‚‹\\
-\hyperlink{com2nd}{Com2nd(コマンド)} \>Scilabã®Openfileã®ã‚ã¨ã«ç½®ãコマンドを定義ã™ã‚‹\\
-\hyperlink{com2ndpre}{Com2ndpre(コマンド)} \>Scilabã®Openfileã®ã‚ã¨ã«ç½®ãコマンドを定義ã™ã‚‹\\
-\hyperlink{dashline}{Dashline(PDå)}  \>プロットデータを破線ã§æã\\
-\hyperlink{dottedline}{Dottedline(PDå)} \>プロットデータを点線ã§æã\\
-\hyperlink{drwline}{Drwline(PDå)}  \>プロットデータを実線ã§æã\\
-\hyperlink{figpdf}{Figpdf(option)} \>出力枠サイズã®PDFを作る\\
-\hyperlink{helplist}{Helplist()}  \>ヘルプデータを作る\\
-\hyperlink{help}{Help(str)}  \>コマンドヘルプを表示ã™ã‚‹\\
-\hyperlink{helpkey}{Helpkey(str)}  \>キーワードã§é–¢æ•°ã‚’検索ã™ã‚‹\\
-\hyperlink{help}{Ketcindylogo()}  \>\ketcindy ã®ãƒ­ã‚´ã‚’書ã出ã™\\
-\hyperlink{indexall}{Indexofall(str1,str2)} \>文字列 str1 ã‹ã‚‰ str2 を検索ã—ãã®ä½ç½®ã‚’ã™ã¹ã¦è¿”ã™\\
-\hyperlink{op}{Op(n,list)}  \> リストã¾ãŸã¯æ–‡å­—列ã‹ã‚‰è¦ç´ ã‚’抜ã出ã™\\
-\hyperlink{texcom}{Texcom(コード)} \>\TeX ã®ã‚³ãƒ¼ãƒ‰ã‚’書ã出ã™\\
-\hyperlink{windispg}{Windispg()} \>定義ã•ã‚ŒãŸãƒ—ロットデータをæç”»é¢ã«æã\\
- \\
-ã€ï¼²ã¨ã®é€£æºã€‘\\
-\hyperlink{boxplot}{Boxplot(åå‰,データ,ä½ç½®,高ã•,option)} \>ç®±ã²ã’図をæã\\
-\hyperlink{calcbyr}{CalcbyR(変数å,コマンド列,option)} \>Rã®ã‚³ãƒžãƒ³ãƒ‰ã‚’実行ã—ã¦çµæžœã‚’è¿”ã™\\
-\hyperlink{histplot}{Histplot(name,data)} \>ヒストグラムをæã\\
-\hyperlink{plotdatar}{PlotdataR(name,å¼,変数)} \>Rã®é–¢æ•°ã®ã‚°ãƒ©ãƒ•ã‚’æã\\
-\hyperlink{plotdiscr}{PlotdiscR(name,å¼,変数)} \>離散型ã®ã‚°ãƒ©ãƒ•ã‚’æã\\
-\hyperlink{readcsv}{Readcsv(name,filename,option)} \>csvファイルを読む\\
-\hyperlink{scatterplot}{Scatterplot(name,filename,option)} \>2次元データを読ã¿è¾¼ã¿ï¼Œæ•£å¸ƒå›³ã‚’æã\\
- \\
-ã€Maximaã¨ã®é€£æºã€‘\\
-\hyperlink{calcbyM}{CalcbyM(name,リスト,option)} \>Maximaã®ã‚¹ã‚¯ãƒªãƒ—トを実行ã™ã‚‹\\
-\hyperlink{example}{Example("Mxfun",文字)} \>Mxfunã®ä½¿ç”¨ä¾‹ã‚’表示\\
-\hyperlink{mxbatch}{Mxbatch(リスト)} \>Maximaã®å¤–部スクリプト用コマンドを作る\\
-\hyperlink{mxfun}{Mxfun(name,å¼,リスト,option)} \>Maximaã®é–¢æ•°ã‚’実行ã™ã‚‹\\
-\hyperlink{mxtex}{Mxtex(num,å¼)} \>å¼ã‚’TeX書å¼ã«ã™ã‚‹\\
- \\
-ã€Risa/Asirã¨ã®é€£æºã€‘\\
-\hyperlink{calcbyA}{CalcbyA(name,リスト,option)} \>Risa/Asirã®ã‚¹ã‚¯ãƒªãƒ—トを実行ã™ã‚‹\\
-\hyperlink{asirfun}{Asirfun(name,å¼,リスト,option)} \>Risa/Asirã®é–¢æ•°ã‚’実行ã™ã‚‹\\
- \\
-ã€FriCASã¨ã®é€£æºã€‘\\
-\hyperlink{calcbyF}{CalcbyF(name,リスト,option)} \>FriCASã®ã‚¹ã‚¯ãƒªãƒ—トを実行ã™ã‚‹\\
-\hyperlink{frfun}{Frfun(name,å¼,リスト,option)} \>FriCASã®é–¢æ•°ã‚’実行ã™ã‚‹\\
- \\
-ã€è¡¨è¨ˆç®—ソフトã¨ã®é€£æºã€‘
-\hyperlink{tab2list}{Tab2list(str,option)} \>str ã®å†…容をリストã«å¤‰æ›ã™ã‚‹\\
-\hyperlink{Dispmat}{Dispmat(lsit)} \>リストã®å†…容を行列型ã«ã‚³ãƒ³ã‚½ãƒ¼ãƒ«ã«è¡¨ç¤ºã™ã‚‹\\
-
-\hypertarget{functionlist3d}{}
-
-ã€KeTCindy3D 設定・定義】\\
-\hyperlink{ketinit3d}{Ketinit3d()} \>KeTCindy3Dã®ä½¿ç”¨å®£è¨€\\
-\hyperlink{start3d}{Start3d()} \>3Dã®é–‹å§‹\\
- \\
-ã€KeTCindy3D æ画】\\
-\hyperlink{bezier3d}{Bezier3d(name, リスト, リスト)} \>空間ベジェ曲線をæã\\
-\hyperlink{changstyle3d}{Changstyle3d(リスト, リスト)} \>3dプロットデータã®å±žæ€§ã‚’変更\\
-\hyperlink{concatobj}{Concatob(リスト,option)} \>ã„ãã¤ã‹ã®objデータをçµåˆ\\
-\hyperlink{crvsfparadata}{Crvsfparadata(name,PD,PD2,å¼,opt,opt)} \>曲線ã®æ›²é¢ã«ã‚ˆã‚‹é™°ç·šå‡¦ç†\\
-\hyperlink{datalist}{Datalist2d()} \>ç”»é¢ã«æã‹ã‚Œã¦ã„ã‚‹ã™ã¹ã¦ã®ãƒ—ロットデータ\\
-\hyperlink{datalist}{Datalist3d()} \>ç”»é¢ã«æã‹ã‚Œã¦ã„ã‚‹ã™ã¹ã¦ã®ãƒ—ロットデータ\\
-\hyperlink{dist3d}{Dist3d(点å,点å)} \>空間ã®ï¼’点ã®è·é›¢\\
-\hyperlink{drawpoint3d}{Drawpoint3d(座標)} \>空間点をæã\\
-\hyperlink{embed}{Embed(name,PD,å¼)} \>埋ã‚è¾¼ã¿ãƒ‡ãƒ¼ã‚¿ä½œæˆ\\
-\hyperlink{intersectcrvsf}{Intersectcrvsf(name,PD,å¼)} \>曲線ã¨æ›²é¢ã®äº¤ç‚¹ã‚’求ã‚ã‚‹\\
-\hyperlink{intersectsgpL}{IntersectsgpL(点å,線分,é¢,æ画方法)} \>空間ã®ç›´ç·šã¨å¹³é¢ã®äº¤ç‚¹\\
-\hyperlink{invparapt}{Invparapt(座標,PD)} \>æç”»é¢åº§æ¨™ã«å¯¾å¿œã™ã‚‹æ›²ç·šä¸Šã®åº§æ¨™\\
-\hyperlink{mkbezierptcrv3d}{Mkbezierptcrv3d(点リスト)} \>制御点を自動的ã«ã¨ã‚‹ç©ºé–“ベジェ曲線\\
-\hyperlink{nohiddenbyfaces}{Nohiddenbyfaces(name,PD,PD,opt1,opt2)} \>多é¢ä½“ã¨ç©ºé–“曲線を陰線処ç†\\
-\hyperlink{parapt}{Parapt(座標)} \>点ã®æŠ•å½±é¢ã§ã®åº§æ¨™\\
-\hyperlink{partcrv3d}{Partcrv3d(name,始点,終点,PD)} \>曲線PDã®éƒ¨åˆ†æ›²ç·šã‚’作る\\
-\hyperlink{perpplane}{Perpplane(点å, 点, ベクトル,option)} \>点を通り垂直ãªå¹³é¢ä¸Šã®åŸºæº–点\\
-\hyperlink{perppt}{Perppt(点å,点,点リスト,option)} \>å¹³é¢ã«ä¸‹ã‚ã—ãŸåž‚ç·šã®è¶³\\
-\hyperlink{phparadata}{Phparadata(name,name2,options)} \>多é¢ä½“を陰線処ç†ã—ã¦æã\\
-\hyperlink{projcoordpara}{Projcoordpara()} \>投影座標を求ã‚ã‚‹\\
-\hyperlink{putaxes3d}{Putaxes3d([x,y,z])} \>軸上ã«å¹¾ä½•ç‚¹ã‚’ã¨ã‚‹\\
-\hyperlink{putonCurve3d}{PutonCurve3d(点å,PD)} \>空間曲線上ã«ç‚¹ã‚’ã¨ã‚‹\\
-\hyperlink{putonseg3d}{Putonseg3d(点å,点1,点2)} \>線分上ã«ç‚¹ã‚’ã¨ã‚‹\\
-\hyperlink{putpoint3d}{Putpoint3d(リスト,option)} \>空間点をã¨ã‚‹\\
-\hyperlink{readobj}{Readobj(ファイルå)} \>objファイルを読ã¿è¾¼ã‚€\\
-\hyperlink{reflectpoint3d}{Reflectpoint3d(点,リスト)} \>点をé¡æ˜ \\
-\hyperlink{rotate3pt}{Rotate3pt( 点,vec,角度,点)} \>空間点を回転\\
-\hyperlink{rotatedata3d}{Rotatedatat3d(name,PD,vec,角度,点)} \>プロットデータを回転\\
-\hyperlink{sf3data}{Sf3data(name, リスト,options)} \>陰線処ç†ãªã—ã®ç©ºé–“曲é¢ã‚’æã\\
-\hyperlink{sfbdparadata}{Sfbdparadata(name, å¼,options)} \>曲é¢ã‚’陰線処ç†ã—ã¦æã\\
-\hyperlink{skeletonparadata}{Skeletonparadata(name,options)} \>スケルトン処ç†ã®ãƒ‡ãƒ¼ã‚¿ä½œæˆ\\
-\hyperlink{spacecurve}{Spacecurve(name, å¼, 定義域,options)} \>空間曲線ã®ãƒ‡ãƒ¼ã‚¿ä½œæˆ\\
-\hyperlink{spaceline}{Spaceline(リスト)} \>空間ã®æŠ˜ç·šãƒ‡ãƒ¼ã‚¿ä½œæˆ\\
-\hyperlink{translatedata3d}{Translatedata3d(name,PD, 平行移動é‡)} \>空間プロットデータを平行移動\\
-\hyperlink{translatept3d}{Translatept3d(座標,平行移動é‡)} \>空間点を平行移動\\
-\hyperlink{vertexedgeface}{VertexEdgeFace(é¢ãƒ‡ãƒ¼ã‚¿,option)} \>頂点ã¨é¢ã‹ã‚‰è¾ºã‚’求ã‚,辺をæã\\
-\hyperlink{wireparadata}{Wireparadata(name,PD,å¼,int,int,opt,opt)} \>曲é¢ã®ãƒ¯ã‚¤ãƒ¤ãƒ•ãƒ¬ãƒ¼ãƒ ã‚’陰線処ç†\\
-\hyperlink{xyzax3data}{Xyzax3data(name,文字,文字,文字,options)} \>座標軸ã®è¡¨ç¤º\\
-\hyperlink{xyzcoord}{Xyzcoord(P.x,P.y,Pz.y)} \>主副画é¢ã§æ±ºã¾ã‚‹ç‚¹ã®åº§æ¨™\\
- \\
-ã€KeTCindymv】\\
-\hyperlink{moviedata}{Moviedata(str1,str2,options)} \>動画データã®ä½œæˆ\\
-\end{tabbing}
-
-
-%3D第3節
-\end{document} \ No newline at end of file
diff --git a/texmf-dist/doc/support/ketcindy/source/ketmanual/referenceR4_2_2_ltd.tex b/texmf-dist/doc/support/ketcindy/source/ketmanual/referenceR4_2_2_ltd.tex
deleted file mode 100644
index f77574b8..00000000
--- a/texmf-dist/doc/support/ketcindy/source/ketmanual/referenceR4_2_2_ltd.tex
+++ /dev/null
@@ -1,1422 +0,0 @@
-\documentclass[a4j]{jarticle}
-
-\usepackage{ketpic,ketlayer}
-\usepackage{amsmath,amssymb}
-\usepackage{enumerate}
-%\usepackage{emathE}
-
-\newcommand{\tab}[2][12zw]{%
-\noindent
-\hspace*{2zw}\Ltab{#1 }{#2}%
-}
-
-\newcommand{\chuu}[1][15zw]{%
-\Ltab{#1}{}※ %
-}
-
-\newcommand{\rei}[1][18zw]{%
-\Rtab{#1}{例)\ }}%
-
-\newcommand{\reicr}[1][18zw]{%
-\Rtab{#1}{  }}%
-
-\newcommand{\prompt}[1][+]{%
-$>$ \verb#1}
-
-\newcommand{\dq}[1]{
-{\unitlength$<$- 0.0012in%
-\begin{picture}%
-(26.30,94.50)(2.40,0.00)%
-\special{pn 8}%
-\special{pa 3 -113}\special{pa 6 -78}\special{pa 12 -78}\special{pa 15 -113}\special{pa 3 -113}%
-\special{sh 1}\special{ip}%
-\special{pa 22 -113}\special{pa 25 -78}\special{pa 31 -78}\special{pa 34 -113}\special{pa 22 -113}%
-\special{sh 1}\special{ip}%
-\end{picture}}%
-\,#1\,%
-{\unitlength$<$- 0.0012in%
-\begin{picture}%
-(26.30,94.50)(2.40,0.00)%
-\special{pn 8}%
-\special{pa 3 -113}\special{pa 6 -78}\special{pa 12 -78}\special{pa 15 -113}\special{pa 3 -113}%
-\special{sh 1}\special{ip}%
-\special{pa 22 -113}\special{pa 25 -78}\special{pa 31 -78}\special{pa 34 -113}\special{pa 22 -113}%
-\special{sh 1}\special{ip}%
-\end{picture}}%
-}
-
-\newcommand{\bq}{
-\hspace*{-2pt}%
-{\unitlength=1pt%
-\begin{picture}%
-(1.80,7.00)(-0.90,0.00)%
-\special{pn 8}%
-%
-\special{pn 12}%
-\special{pa -11 -94}\special{pa 11 -72}%
-\special{fp}%
-\special{pn 8}%
-\end{picture}}%
-}
-
-\newenvironment{mini}[1]%
-{\begin{minipage}[t]{#1}}%
-{\end{minipage}%
-}
-
-
-%\enumSep{\narrowenumsep}
-
-\setmargin{15}{15}{15}{20}
-
-\begin{document}
-
-\begin{flushright}
-2013年10月6日
-\end{flushright}
-
-\begin{center}
-{\bf \huge \ketpic\ v4.2.2 ltd コマンド一覧}\vspace{3mm}\\
-{\bf \huge for R}
-\end{center}
-
-\hfill
-\begin{minipage}{4cm}
-\Ltab{1.5cm}{PD}プロットデータ\\
-\end{minipage}
-
-%\vspace*{-2zw}
-
-\section{R ã«ã¤ã„ã¦ã®æ³¨æ„}
-
-\begin{enumerate}[1.]
-
-\item KETpicã®èª­è¾¼ã¿ã«ã¯æ¬¡ã‚’実行ã™ã‚‹ï¼Ž\\
-\hspace*{2zw}load("C:/work/ketpic.Rdata") (C:/work/ã¯ä½œæ¥­ãƒ•ã‚©ãƒ«ãƒ€å)\\\hspace*{-12zw}\chuu ディレクトリã®å¤‰æ›´ã¯ setwd("c:/work")
-
-\item 文字列ã¯ã€€ "(ダブル)ã§å›²ã‚€\\
-\chuu 文字列ã®ä¸­ã«æ–‡å­—列を入れるã¨ã㯠' 㨠" を入れå­ã«ä½¿ã†ï¼Ž
-
-\item 関数ãªã©ã‚’引数ã¨ã™ã‚‹ã¨ãã¯ï¼Œæ–‡å­—列ã¨ã™ã‚‹ï¼Ž\\
-\hspace*{2zw}例)G$<$- Plotdata( "x\verb|^|2", "x=c(0,1)")
-%\hspace*{2zw}注)プログラミングã§ã¯æ–‡å­—列を実行ã™ã‚‹ã‚³ãƒžãƒ³ãƒ‰ evstr, execstr ãŒé‡è¦ã§ã‚る.
-%\item
-%数リスト,文字列,行列ãŒæ··ã–ã£ãŸãƒ‡ãƒ¼ã‚¿ï¼ˆåŸºæœ¬ãƒ‡ãƒ¼ã‚¿ï¼‰ã®ãƒªã‚¹ãƒˆã¯ã§ããªã„.
-%Mixã¯æ··åˆãƒªã‚¹ãƒˆã‚’扱ã†ï¼Ž
-%\hspace*{3zw}基本データ$\longrightarrow$æ··åˆåˆ—$\longrightarrow$æ··åˆãƒªã‚¹ãƒˆ%
-%$\longrightarrow$æ··åˆãƒªã‚¹ãƒˆ$\longrightarrow\cdots$
-
-\item \verb|\|(ãƒãƒƒã‚¯ã‚¹ãƒ©ãƒƒã‚·ãƒ¥ï¼‰ã‚’出力ã™ã‚‹ã«ã¯ï¼’ã¤ä¸¦ã¹ã¦ã‹ã.
-
-
-\item 注釈㯠\verb|#|
-
-%\item 実行ã®ä¸­æ–­ã¯ã€€abort
-
-
-%\item 数値微分㯠derivative, 数値ç©åˆ†ã¯ integrate(ã¾ãŸã¯intg)
-
-%\chuu Derivative, Integrate å‚ç…§
-
-\item æ•°ã¨æ–‡å­—列ã®å¤‰æ›\\
-\hspace*{2zw}as.character(æ•°)\\
-\hspace*{2zw}as.numeric(文字列)\\
-\hspace*{2zw}eval(parse(text=文字列)))\\
-\hspace*{2zw}sprintf(書å¼,\ æ•°) 書å¼ä»˜ã文字列
-
-\item ç•°ãªã‚‹åž‹ã®ãƒ‡ãƒ¼ã‚¿ã‹ã‚‰ãƒªã‚¹ãƒˆã‚’作るã«ã¯listを用ã„る.\\
-\hspace*{2zw}作æˆã€€ã€€ã€€L\verb|<-| list(... , ... );\\
-\hspace*{2zw}å–り出ã— A\verb|<-| L[[i]]\\
-\hspace*{2zw}部分リスト L[V]\ (V ã¯ãƒ™ã‚¯ãƒˆãƒ«)\\
-\hspace*{2zw}ç½®ãæ›ãˆã€€L[[i]]\verb|<-| ...\\
-%\hspace*{2zw}消去   L[[i]]<- NULL\\
-\hspace*{2zw}é•·ã•ã€€ã€€ã€€length(L)\\
-\hspace*{2zw}追加   L\verb|<-| c(L1, L2)\\
-\hspace*{2zw}çµåˆã€€ã€€ã€€c(L1,L2,...)\\
-\hspace*{2zw}空リスト list()\\
-\hspace*{2zw}タイプを見る is.list(L)(論ç†å€¤ï¼‰ã¾ãŸã¯ mode(L)
-
-\end{enumerate}
-
-\section{Rã®ãŸã‚ã®è¿½åŠ ã‚³ãƒžãƒ³ãƒ‰}
-
-\tab{Member(D, L)}DãŒLã®è¦ç´ ã§ã‚ã‚Œã°true,ãã†ã§ãªã‘ã‚Œã°falseã‚’è¿”ã™ï¼Ž\\
-\chuu Lã¯ãƒ™ã‚¯ãƒˆãƒ«ã¾ãŸã¯ list
-
-\tab{Flattenlist(L)}Lを平準化ã—ã¦å˜å±¤ã®ãƒªã‚¹ãƒˆã‚’作る
-
-%\tab{Mix(D1, D2, $\cdots$)}FD列,MS,MLã‹ã‚‰ï¼ˆï¼‘段上ã®ï¼‰MSã¾ãŸã¯MLを作æˆ
-
-%\tab{Mixadd(L, D)}L(MSã¾ãŸã¯ML)ã«Dã‚’è¦ç´ ã¨ã—ã¦åŠ ãˆã‚‹
-
-\tab{Mixdisp({\it list})}listã®è¦ç´ ã‚’ç”»é¢ã«ç°¡æ˜“表示
-
-%\tab{Mixjoin(L1, L2, ...)}è¦ç´ ã‚’åˆä½µã—ãŸlistを作る\\
-%\rei L1$<$- list(G1,G2,3); L2$<$- list(G3, "a")\\
-%\reicr L$<$- Mixjoin(L1,L2, c(3,6))\\
-%\reicr \hspace{2cm}Lã¯G1, G2, 3, G3, "a", c(3, 6)ã®list\\
-%\chuu \verb|c() , list()| ã¯ç„¡è¦–ã•ã‚Œã‚‹
-
-%\tab{MixL(D1,D2, $\cdots$)}MS, MLã‹ã‚‰ï¼ˆï¼‘段上ã®ï¼‰MLを作æˆ
-
-%\tab{Mixlength(L)}L(MSã¾ãŸã¯ML)ã®è¦ç´ ã®å€‹æ•°
-
-%\tab{Mixop(N, Data)}Dataã®N番目ã®è¦ç´ ï¼ˆDataã¯MS, ML)
-
-%\tab{MixS(D1,D2, $\cdots$)}基本データ列ã‹ã‚‰MSを作æˆ
-
-%\tab{Mixsub(範囲,L)}Lã®ç¯„囲(リスト)ã®è¦ç´ ã‹ã‚‰ãªã‚‹éƒ¨åˆ†MSã¾ãŸã¯ML\\
-%\rei S$<$- Mixsub( 2; 5, L);
-
-%\tab{Mixtype(Data)}DataãŒåŸºæœ¬ãƒ‡ãƒ¼ã‚¿ãªã‚‰ï¼‘,MSãªã‚‰ï¼’,MLãªã‚‰ï¼“ã‚’è¿”ã™
-
-\tab{Op(N,\ Data)}Dataã®N番目ã®è¦ç´ ï¼ˆDataã¯æ–‡å­—列,ベクトル,list)
-
-\tab{Assign(å¼, 変数å, 値, ・・・)}\\
-\tab{}変数å(文字列)ã«å€¤ã‚’割り当ã¦ãŸæ–‡å­—列を返ã™\\
-\chuu 値ã¯ï¼Œæ•°ï¼Œæ–‡å­—列,数行列,Scilablist\\
-\rei A$<$- 0.4; B$<$- c(2,1)\\
-\reicr Fn$<$- Assign("A*x\^{}2+B(1)*y\^{}2","A", A, "B", B)
-
-\tab{Assignset(変数å, 値, ・・・)}%
-割り当ã¦å¤‰æ•°ãƒ†ãƒ¼ãƒ–ルをセットã™ã‚‹\\
-\rei Assignset("A", 0.4, "B", c(2,1), "C", list(...), "D", "string")
-
-%\tab{Assign(å¼)}å¼æ–‡å­—列ã®å¤‰æ•°ã«å‰²ã‚Šå½“ã¦å¤‰æ•°ãƒªã‚¹ãƒˆã‚’割り当ã¦ãŸæ–‡å­—列を返ã™\\
-%\rei Assign("A", 0.4, "B", c(2,1))\\
-%\reicr Fn$<$- Assign("A*x\^{}2+B(1)*y\^{}2")
-
-\tab{Assignset("?"+変数å)}変数åã®å€¤ã‚’è¿”ã™\\
-\rei Assignset("?A")
-
-\tab{Assignset()}割り当ã¦å¤‰æ•°ãƒ†ãƒ¼ãƒ–ルをåˆæœŸåŒ–\\
-%\rei Assign("A", 0.4, "B", c(2,1))\\
-%\reicr Assign()
-
-\tab{Assignadd(変数å, 値, ・・・)}\\
-\tab{}割り当ã¦å¤‰æ•°ãƒ†ãƒ¼ãƒ–ルã«è¿½åŠ ã™ã‚‹\\
-\rei Assignadd("C", 0.4, "D", c(2,1))
-
-\tab{Assignrep(変数å, 値, ・・・)}\\
-\tab{}割り当ã¦å¤‰æ•°ãƒ†ãƒ¼ãƒ–ルを置ãæ›ãˆã‚‹\\
-\rei Assignrep("C", 0.8)
-
-\tab{Prime(文字列)}文字列ã®æœ€å¾Œã« " ã‚’ã¤ã‘ã‚‹\\
-\rei Prime("A")\\
-\rei Prime() (" ã ã‘を出力)\\
-\chuu Assign("A\bq ") ã¨ã—ã¦ã‚‚よã„.
-
-
-%\tab{Strop(N,\ 文字列)}文字列ã®N番目ã®æ–‡å­—
-
-%\tab{Subs(代入å¼,\ 有ç†å¼)}有ç†å¼ã«ä»£å…¥å¼ã§ä¸Žãˆã‚‰ã‚Œã‚‹æ•°å€¤ã‚’代入ã—ãŸå€¤ã‚’è¿”ã™\\
-%\rei X$<$- poly(0,"X")\\
-%\reicr F$<$- X\verb|^|2+3\verb|*|X+3\\
-%\reicr V$<$- Subs("X$<$- 5",\ F)
-
-\tab{XMIN, XMAX, YMIN, YMAX}\\
-\tab{}ウィンドウ範囲
-(デフォルト$-5\leqq x\leqq 5,\ -5\leqq y\leqq 5$)
-
-\tab{Ptne(),Ptnw(),Ptsw(),Ptse()}\\
-\tab{}フレーム枠ã®å„点
-
-\tab{ThisVersion}Ketpicã®ãƒãƒ¼ã‚¸ãƒ§ãƒ³
-
-\tab{Fracform(x\{, 分æ¯ã®æœ€å¤§å€¤\})}\\
-\tab{}xã«è¿‘ã„分数(文字列)を返ã™\\
-\chuu 分æ¯ã®æœ€å¤§å€¤ã®ãƒ‡ãƒ•ã‚©ãƒ«ãƒˆã¯100000\\\
-\rei Fracform(c(2.36))
-
-\tab{Dotprod(v1,v2)}内ç©
-
-\tab{Crossprod(v1,v2)}外ç©
-
-\tab{Derivative(関数文字列,変数å,\{値ベクトル\}}\\
-\tab{}関数ã®å¾®åˆ†ä¿‚数を求ã‚る.\\
-\rei Derivative("x\verb|^|2+y", c("x","y"),c(2, 3))\\
-%\rei Assign("A", 3)\\
-%\reicr Derivative(Assign("x\verb|^|2+A*y"), "c(x,y)", c(2, 3), 2)\\
-%\chuu 変数ã®ç•ªå·ã‚’指定ã—ãªã„ã¨ãã¯ï¼Œåˆ—ベクトルã§è¿”ã™ï¼Ž
-
-\tab{Integrate(関数文字列,変数文字列,ç©åˆ†åŒºé–“(数リスト))}\\
-\tab{}関数ã®å®šç©åˆ†ã‚’求ã‚る.\\
-\rei Integrate("sin(x)","x",c(0,pi))\\
-\chuu 区間(リスト)ã¯ç©åˆ†ã‚’分ã‘ã¦è¨ˆç®—ã™ã‚‹ã¨ãã«æŒ‡å®š\\
-%\reicr Fn(x)","if x>0,Y$<$- 1,else,Y$<$- -1,end")|\\
-\reicr \verb|Integrate("Fn(x)","x",c(-2,0,3))|\\
-
-%\tab{Thetadegree()}平行投影ã§$\theta$(度)
-
-%\tab{Phidegree()}平行投影ã§$\varphi$(度)
-
-%\vspace{-2zw}
-
-\section{設定コマンド}
-
-\subsection{基本}
-
-\tab{Setwindow(c(xmin, xmax), c(ymin, ymax))}\\
-\tab{}ウィンドウ範囲を設定\\
-\rei Setwindow(c(-pi, pi),\ $c(-1.5,1.5)$\,)\\
-\chuu XMIN , XMAX , YMIN , YMAX ã§å€¤ã‚’得られる.
-
-\tab{Setscaling({\it ratio})}\\
-\tab{}縦ã®æ¨ªã«å¯¾ã™ã‚‹æ¯”ã‚’{\it ratio}ã«è¨­å®šï¼ˆãƒ‡ãƒ•ã‚©ãƒ«ãƒˆã¯ 1)\\
-\rei Setscaling(2)\\
-\chuu ウィンドウも連動
-
-\tab{Setax(線種, 横軸å, ä½ç½®, 縦軸å, ä½ç½®, 原点å, ä½ç½®)}\\
-\tab{}座標軸を設定(引数 7 個)\\
-\rei Setax("a", "t", "s", "u", "w", "O", "nw")\\
-\chuu 線種ã¯ã€€d : line , a : arrow\\
-\chuu arrowã®ã¨ã "a0.5" ã®ã‚ˆã†ã«ï¼ŒçŸ¢å°ã®å¤§ãã•ã‚’指定ã§ãる.\\
-\chuu ""ã¨ã™ã‚‹ã¨ï¼Œç¾åœ¨ã®è¨­å®šã‚’変更ã—ãªã„.\\
-\chuu 以é™ãŒ "" ã®ã¨ãçœç•¥ã§ãる.ã¾ãŸé€”中ã‹ã‚‰ã‚‚指定ã§ãã‚‹\\
-\rei Setax("a"\,)\\
-\rei Setax(6, "O", "se"\,) (6番目ã‹ã‚‰æŒ‡å®šï¼‰\\
-\chuu ä½ç½®ã¯"n", "s", "e", "w", "ne", "nw", "se", "sw"\\
-\chuu "s2w3"ã®ã‚ˆã†ã«å¾®å°ç§»å‹•é‡ã‚’付加ã—ã¦ã‚ˆã„.\\
-\chuu 空引数ã®ã¨ã,ç¾åœ¨ã®è¨­å®šå€¤ã‚’表示
-
-\tab{Setorigin(\,点\,)}座標軸ã®åŽŸç‚¹ã‚’指定(デフォルトã¯$(0,\ 0)$)\\
-\chuu 空引数ã®ã¨ã,ç¾åœ¨ã®è¨­å®šå€¤ã‚’表示
-
-\tab{Setpen( å€çŽ‡ )}ç·šã®å¤ªã•ã‚’指定(標準ã‹ã‚‰ã®å€çŽ‡ã§ï¼‰\\
-\rei Setpen(1.5)\\
-\chuu 空引数ã®ã¨ã,ç¾åœ¨ã®è¨­å®šå€¤ã‚’表示
-
-\tab{Setpt( å€çŽ‡ )}Drwptã®ç‚¹ã®å¤§ãã•ã‚’指定(標準ã‹ã‚‰ã®å€çŽ‡ã§ï¼‰\\
-\chuu 空引数ã®ã¨ã,ç¾åœ¨ã®è¨­å®šå€¤ã‚’表示
-
-\tab{Setmarklen( å€çŽ‡ )}目盛りã®å¤§ãã•ã‚’指定(標準ã‹ã‚‰ã®å€çŽ‡ã§ï¼‰\\
-\chuu 目盛りã®å¤§ãã•ã¯å¾®å°ç§»å‹•é‡ã®å˜ä½ã¨ã—ã¦ã‚‚用ã„られる.\\
-\chuu 空引数ã®ã¨ã,ç¾åœ¨ã®è¨­å®šå€¤ã‚’表示
-
-\tab{Setunitlen("å˜ä½é•·")}å˜ä½é•·ã‚’指定ã™ã‚‹\\
-\chuu Beginpicture("")ã¨ã™ã‚‹ã¨æŒ‡å®šã•ã‚ŒãŸå˜ä½é•·ãŒä½¿ã‚れる.\\
-\chuu 空引数ã®ã¨ã,ç¾åœ¨ã®è¨­å®šå€¤ã‚’表示
-%\tab(13zw){resetunitlen()}コード書ã出ã—を終ãˆã‚‹
-
-\tab{Setarrow(éƒã®å¤§ãã• \{, é–‹ã角 \{, éƒä½ç½® \{, 太ã•\}\}\} \{, å½¢ã¨ä½ç½®\})}\\
-\tab{}矢å°ã®å½¢çŠ¶ã‚’指定ã™ã‚‹\\
-\rei Setarrow(0.5, 1, 1, 0.7, "tf"\,)\\
-\chuu デフォルト 大ãã•ï¼‘ ,角度 18°,ä½ç½®ã¯çµ‚点\\
-\chuu 5以下ã®é–‹ã角を指定ã—ãŸã¨ãã¯ï¼Œ18°ã‹ã‚‰ã®å€çŽ‡ã¨ã™ã‚‹\\
-\chuu 形状\ "l" :ライン "f" :塗り(デフォルト)\\
-\chuu ä½ç½®å¾®èª¿æ•´\ "c":中央 "b":下 "t":トップ(〃)\\
-\chuu 空引数ã®ã¨ã,ç¾åœ¨ã®è¨­å®šå€¤ã‚’表示
-
-\tab{Ketinit(\,)}定数をデフォルトã«åˆæœŸåŒ–
-
-\subsection{空間(平行投影)}
-
-\tab{Setangle(\,$\theta, \varphi$\,)}角度(°)を指定\\
-\chuu デフォルト値㯠$\theta$<$- 60,\ \varphi$<$- 30$\\
-\chuu 空引数ã®ã¨ã,ç¾åœ¨ã®è¨­å®šå€¤ã‚’表示
-
-\tab{Initangle(\,)}デフォルト値ã«æˆ»ã™
-
-\subsection{空間(一点投影)}
-
-\tab{Setpers(\,注視点,視点\,)}一点投影ã®FocusPoint,\ EyePoint を指定\\
-\chuu デフォルト値㯠FocusPoint$<$- c(0,0,0),\ EyePoint$<$- c(5,5,5)
-
-\tab{Setpers()}ç¾åœ¨ã®FocusPoint,\ EyePoint を表示\\
-\chuu 空引数ã®ã¨ã,ç¾åœ¨ã®è¨­å®šå€¤ã‚’表示
-
-\tab{SetstereoL(\,$R,\ \theta,\ \varphi,\ \varDelta$\,)}%
-原点を注視点ã¨ã—ã¦ï¼Œç©ºé–“極座標ã«ã‚ˆã‚Šå®šã¾ã‚‹å·¦ç›®ã®ä½ç½®ã‚’\\
-\tab{}視点ã«ã‚»ãƒƒãƒˆï¼ˆ$\varDelta$ã¯ç›®ã®é–“隔)
-
-\tab{SetstereoR(\,$R,\ \theta,\ \varphi,\ \varDelta$\,)}%
-原点を注視点ã¨ã—ã¦ï¼Œç©ºé–“極座標ã«ã‚ˆã‚Šå®šã¾ã‚‹å³ç›®ã®ä½ç½®ã‚’\\
-\tab{}視点ã«ã‚»ãƒƒãƒˆï¼ˆ$\varDelta$ã¯ç›®ã®é–“隔)
-
-\section{プロットデータã®ä½œæˆ}
-
-\subsection{å¹³é¢å›³å½¢}
-
-\tab{Plotdata(関数,範囲,オプション)}\\
-\tab{}関数ã®ã‚°ãƒ©ãƒ•ã®PDを作æˆ\\
-\rei G1$<$- Plotdata(\,"sin(x)",\ "x= c($-2$*pi,\ 2*pi)")\\
-\chuu 範囲を "x" ã¨ã™ã‚‹ã¨ï¼ŒXMINã‹ã‚‰XMAXã«ã¨ã‚‹ï¼Ž\\
-\chuu x 以外ã®å¤‰æ•°ã‚’使ã†ã¨ãã¯é–¢æ•°ã«ä½¿ã‚ã‚Œã¦ã„ãªã„ã‹ã‚’注æ„.\\
-\chuu オプション\\
-\hspace*{16zw}\tab[6zw]{"N=$\cdots$"}点ã®å€‹æ•°\\
-\hspace*{16zw}\tab[6zw]{"E=c($\cdots$)"}除外点ã®ãƒªã‚¹ãƒˆ\\
-\hspace*{16zw}\tab[6zw]{"E=関数"}関数ã®ï¼ç‚¹ã¯é™¤å¤–\\
-\hspace*{16zw}\tab[6zw]{"D=$\cdots$"}連続é™ç•Œå€¤ï¼ˆã“れ以上離れãŸã‚‰çµã°ãªã„)\\
-\chuu デフォルトã¯N=50, D=Inf \\
-%\chuu 関数㯠function ã§ä¸Žãˆã¦ã‚‚よã„.\\
-\rei G1$<$- Plotdata("1/x", "x","N=200", "E=c(0)", "D=1")\\
-\rei G2$<$- Plotdata("1/((x-1)*(x+2))", "x", "E=(x-1)*(x+2)")\\
-
-\tab{Listplot(点ã®ãƒ™ã‚¯ãƒˆãƒ«ã¾ãŸã¯åˆ—ã¾ãŸã¯list)}\\
-\tab{}折れ線ã®PDを作æˆ. ãŸã ã—ã€ç‚¹ã¯ç·šåˆ†ã§çµã¶. \\
-\rei G2$<$- Listplot(c(c(3,2),c(5,4)))\\
-\rei G2$<$- Listplot(c(3,2),c(5,4))
-
-\tab{Lineplot(点A, 点B\{ , é•·ã•ï¼ŒåŠç›´ç·š\})}\\
-\tab{}線分ABを延長ã—ãŸç·šåˆ†ã®PDã‚’ä½œæˆ \\
-\rei G3$<$- Lineplot(c(3,2),c(5,4))\\
-\rei G4$<$- Lineplot(A, B, "+")\\
-\reicr åŠç›´ç·šAB(Bå´ã«å»¶é•·ï¼‰\\
-\chuu é•·ã•ã®ãƒ‡ãƒ•ã‚©ãƒ«ãƒˆã¯ç‰‡å´100
-
-\tab{Paramplot(パラメトリック関数,範囲,オプション)}\\
-\tab{}パラメトリック関数ã®ã‚°ãƒ©ãƒ•ã®PDを作æˆ\\
-\chuu t 以外ã®å¤‰æ•°ã‚’使ã†ã¨ãã¯é–¢æ•°ã«ä½¿ã‚ã‚Œã¦ã„ãªã„ã‹ã‚’注æ„\\
-%\chuu 関数㯠function ã§ä¸Žãˆã¦ã‚‚よã„.\\
-\rei G3$<$- Paramplot(\,"c(cos(t),\ sin(t))",\ "t=c(0, 2*\%pi)")\\
-%\rei G4$<$- Paramplot(Fnx, Fny, "t=c(0, 1)")
-
-\tab{Rotatedata(PDã¾ãŸã¯ç‚¹,角度\{,中心\})}\\
-\tab{}å¹³é¢ã®PDを回転ã—ãŸPDã‚’ä½œæˆ \\
-\rei G4$<$- Rotatedata(G1,pi/4)
-
-\tab{Translatedata(PD,\ xæ–¹å‘ yæ–¹å‘)}\\
-\tab{}PDを平行移動ã—ãŸPDã‚’ä½œæˆ \\
-\rei G5$<$- Translatedata(\,G1,\ 3,\ $-1$\,)
-
-\tab{Scaledata(PD, xæ–¹å‘, yæ–¹å‘\{,中心\})}\\
-\tab{}PDを拡大(縮å°)ã—ãŸPDã‚’ä½œæˆ \\
-\rei G6$<$- Scaledata(\,G1,\ 2,\ 1/3\,)
-
-\tab{Reflectdata(PD,点)}点対称移動ã—ãŸPDを作æˆ\\
-\tab{Reflectdata(PD, c(\,点1,点2\,))}\\
-\tab{}線対称移動ã—ãŸPDを作æˆ\\
-\rei G7$<$- Reflectdata(\,G1,\ c(0,0)\,)\\
-\rei G8$<$- Reflectdata(\,G1,\ c(\,c(0,0),\ c(0,1)\,)\,)
-
-\tab{Pointdata(PD,\ $\cdots$)}PDã®ç¯€ç‚¹ã®listを作æˆ\\
-\rei G9=Pointdata(G1)\\
-\chuu Drwpt(G9)ãªã©ã§ï¼Œç‚¹ã®ãƒ—ロットãŒã§ãる.
-
-\tab[21zw]{Circledata(中心,\ åŠå¾„\ \{,\ オプション\}\})}円ã®PDを作æˆ\\
-\rei G10$<$- Circledata(\,c(3,1),\ 2\,) \\
-\chuu オプション\\
-\hspace*{16zw}\tab[5zw]{"R=..."}$\theta$ã®ç¯„囲\\
-\hspace*{16zw}\tab[5zw]{"N=..."}点ã®å€‹æ•°\\
-\rei G10a$<$- Circledata(\,c(3,1),\ 2,\ "R=c(0,\ pi/2)"\,)\\
-\rei G10b$<$- Circledata(\,c(3,1),\ 2,\ "N=100"\,)
-
-\tab{\,Framedata(P,\ dx\{,\ dy\})\,}%
-点Pを中心ã«$\pm$dx,\ $\pm$dyã®çŸ©å½¢ï¼ˆdyã‚’çœç•¥ã™ã‚‹ã¨dy$<$- dx)\\
-\rei G3$<$- Framedata(c(3,\ 1),\ 0.5\,)
-
-\tab[12zw]{\,Framedata(${\rm c}(x_1,\ x_2),\ {\rm c}(y_1,\ y_2)$)\,\\}%
-\tab{}$x_1 \leqq x \leqq x_2,\ y_1 \leqq y \leqq y_2$ã®çŸ©å½¢ã®PDを作æˆï¼ˆå³ä¸Šã‹ã‚‰å時計)\\
-\chuu 引数ãŒç©ºã®ã¨ã,Setwindowã§æŒ‡å®šã—ãŸæž \\
-\rei G1$<$- Framedata(${\rm c}(-2,\ 3)$,\ ${\rm c}(1,\ 4)$\,) \\
-\rei G2$<$- Framedata()
-
-\tab{Hatchdata( パターン文字(list)\{, 開始点\}, (é–‰)曲線ã®åˆ—\{,kaku\{,haba\}\,\}\,)}\\
-\tab{}パターンã¨ä¸€è‡´ã™ã‚‹é ˜åŸŸã‚’斜線塗りã™ã‚‹PDを作æˆ\\
-\rei G1$<$- Hatchdata(list("io"),\ list(g1,g2),\ list(g3)\,)\\
-\mbox{}\hfill(i : 内部,o: 外部)\\
-\chuu 開始点ãŒæŒ‡å®šã•ã‚ŒãŸã¨ã\\
-\hfill(仮想的ã«ï¼‰ãã®ç‚¹ã‚’通る斜線ã‹ã‚‰æã始ã‚ã‚‹\\
-%\chuu パターンãŒãƒªã‚¹ãƒˆã®ã¨ã,ã©ã‚Œã‹ã¨ä¸€è‡´ã™ã‚‹é ˜åŸŸã‚’斜線塗り\\
-\chuu%
-\begin{mini}{23zw}
-kakuã¯æ–œç·šã®å‚¾ã(def=45),habaã¯é–“隔(def=1)
-\end{mini}\vspace{1mm}\\
-\rei G2$<$- Hatchdata(\,list("ii"),\ O,\ list(G1),\ $-45$,\ 1.5\,)\\
-\chuu 曲線リスト内ã®PDã¯éš£æŽ¥ã®é †ã«æŒ‡å®š\\
-\chuu é–‰ã˜ã¦ã„ãªã„ã¨ã\\
-\hspace*{18zw}(1)æ–¹å‘ "s","n","w","e" を指定ã™ã‚‹\\
-\hspace*{18zw}(2)窓枠ã¨ã¡ã‚‡ã†ã©2点ã§äº¤ã‚ã‚‹å ´åˆã€é ˜åŸŸã®ç‚¹ã‚’指定\\
-\hspace*{18zw}(3)指定ã—ãªã‘ã‚Œã°ç«¯ç‚¹ã‚’ç›´ç·šã§çµã¶.\\
-\rei G3$<$- Hatchdata(list("ii),\ list(g1,"s"),\ list(g2,\ c(3,0))\,)
-
-\tab{Hatchdata( 領域ã®ç‚¹ï¼‰\{, 開始点\}, (é–‰)曲線listã®åˆ—\{,kaku\{,haba\}\,\}\,)}\\
-\tab{}点(ã®ã©ã‚Œã‹ï¼‰ãŒå«ã¾ã‚Œã‚‹é ˜åŸŸã‚’斜線塗り\\
-\rei F4$<$- Hatchdata(list(A,B,C),\ \ list(G1),\ list(G2,G3)\,)\\
-\hspace*{4zw}\chuu %
-\begin{mini}{23zw}
-包å«ãƒ‘ターンãŒç‚¹A, B, Cã®ã©ã‚Œã‹ã¨ä¸€è‡´ã™ã‚‹é ˜åŸŸã‚’斜線塗り(領域ã¯éš£æŽ¥ã™ã‚‹ã‚‚ã®ã¨ã™ã‚‹ï¼‰
-\end{mini}\vspace{2mm}
-
-%\tab{enclosing( P, PDリスト )}PD列ã‹ã‚‰Pを囲む閉曲線ã¨ãªã‚‹éƒ¨åˆ†æ›²ç·šã®PD列を作æˆ\\
-%\rei G1$<$- enclosing(\,c(1,0),\ c(g1,\ g2,\ invert(g3))\,)\\
-%\chuu PD列ã¯éš£æŽ¥é †ã«æŒ‡å®šã™ã‚‹ï¼ˆå‘ããŒä¸€è‡´ã™ã‚‹ã‚ˆã†ã«ã™ã‚‹ï¼‰
-
-%\tab{enclosing( n, PDリスト )}%
-%PD列ã‹ã‚‰ã§ãる閉曲線ã®ã†ã¡n番目ã®PD列を作æˆ\\
-%\rei G2$<$- enclosing(\,1,\ c(g1,\,g2,\,invert(g3))\,)\\
-%\chuu 0を指定ã™ã‚‹ã¨ï¼Œå…¨ã¦ã®é–‰æ›²ç·šã®ãƒªã‚¹ãƒˆã‚’è¿”ã™ï¼Ž
-
-\tab{Enclosing( PDリスト\{, 始点ã®è¿‘ãã®ç‚¹\} )}\\
-\tab{}PD列ã®ç›´è¿‘ã®äº¤ç‚¹ã‚’çµã‚“ã§é–‰æ›²ç·šã‚’作æˆ\\
-\rei G2$<$- Enclosing(list(G1,\,invert(G2),\,G3),\,c(2,1)\,)\\
-\tab[14zw]{}G1㨠(最後ã®)G3ã®äº¤ç‚¹ã®ã†ã¡ï¼Œc(2,1)ã«è¿‘ã„点ã‹ã‚‰å§‹ã‚ã‚‹\\
-\chuu 交点ãŒï¼‘個ã®å ´åˆã¯ï¼Œç‚¹ã‚’çœç•¥ã—ã¦ã‚ˆã„.
-
-\tab{Dotfilldata( パターン文字列(リスト)\{, 開 始点\},
-(é–‰)曲線PDリストã®åˆ—\{,濃ã•\})}\\
-\tab{}パターンã¨ä¸€è‡´ã™ã‚‹é ˜åŸŸã‚’点æã™ã‚‹PDを作æˆ\\
-\rei Fd$<$- Dotfilldata("ii",list(G1),list(G2),0.7)\\
-\chuu 濃ã•$d$ã¯ã€€$0< d \leqq 1$(デフォルトã¯$0.5$)\\
-\chuu 書ã出ã—ã¯ï¼ŒDrwptを用ã„る.
-
-\tab{Arrowdata}矢å°ã®PDを作æˆï¼ˆArrowlineå‚照)\\
-\chuu ã‚„ã˜ã‚Šã¯å¡—ã‚Šã¤ã¶ã•ãšï¼Œç·šãƒ‡ãƒ¼ã‚¿ã®ã¿
-
-\tab{Arrowheaddata}ã‚„ã˜ã‚Šã ã‘ã®PDを作æˆï¼ˆArrowheadå‚照)
-
-\tab[20zw]{Bowdata(\,$\mbox{点A},\ \mbox{点B}$\{,\ 曲ãŒã‚Š\{,\ 切り\}\,\}\,)}\\
-\tab{}弓形ã®PDを作æˆ\\
-\chuu 曲ãŒã‚Šï¼šå¼§ã®æ›²ãŒã‚Šï¼ˆãƒ‡ãƒ•ã‚©ãƒ«ãƒˆã¯1)\\
-\chuu 切り:中央ã«å…¥ã‚Œã‚‹åˆ‡ã‚Šã®é•·ã•ï¼ˆãƒ‡ãƒ•ã‚©ãƒ«ãƒˆã¯0)\\
-\chuu 点Aã‹ã‚‰Bã«å時計ã¾ã‚ã‚Šã«å¼§ã‚’ã‹ã\\
-\rei G$<$- Bowdata(\,c(2,\ 1),\ c(3,\ 4),\ 0.8,\ 0.5\,)
-
-%\tab{Bowmiddle(\,$\mbox{点A},\ \mbox{点B}$\{,\ 曲ãŒã‚Š\})}\\
-%\tab{}弓形ã®ä¸­ç‚¹ã¨è§’ã®listã‚’è¿”ã™
-
-\tab{Bowmiddle(\,弧データ\ )}弓形ã®ä¸­ç‚¹ã‚’è¿”ã™
-
-\tab{Splinedata(点データ\{, オプション\}\})}\\
-\tab{}spline曲線ã®PDを作æˆ\\
-%\chuu ファイルã¯ï¼Œspace, comma, tab 区切りã®textファイル\\
-%\chuu 開始ä½ç½®ï¼šãƒ•ã‚¡ã‚¤ãƒ«ã®èª­è¾¼ã¿é–‹å§‹è¡Œã¨åˆ—.defaultã¯c(2,\ 1)\\
-\chuu 点データã¯ãƒªã‚¹ãƒˆã¾ãŸã¯PD\\
-\chuu オプション:\\
-\hspace*{18zw}"N$<$- 点ã®å€‹æ•°" (デフォルトã¯50)\\
-\hspace*{18zw}"C" (閉曲線ã§ã‚¹ãƒ ãƒ¼ã‚ºã«ã¤ãªã)\\
-%\rei Fs$<$- Splinedata("c:/data.txt",\ c(2,4),\ "N$<$- 100")\\
-\rei Fs$<$- Splinedata(PL, "N$<$- 200", "C")(PLã¯ç‚¹ãƒ‡ãƒ¼ã‚¿ï¼‰
-
-%\tab{Skeleton2data(\,å¹³é¢æ›²ç·šlist1,平é¢æ›²ç·šlist2\{,大ãã•%
-%\{,\ é è¿‘ã®é–¾å€¤\}\}\,)}\\
-%\tab{}list2ã§éš ã•ã‚Œã‚‹list1ã®ã‚¹ã‚±ãƒ«ãƒˆãƒ³ãƒ‡ãƒ¼ã‚¿ã‚’作æˆ
-
-\tab{Anglemark(A, B, C \{, サイズ \})}\\
-\tab{}$\angle \mathrm{ABC}$ã®é–“ã®è§’度記å·ã‚’作æˆ\\
-\chuu BAã‹ã‚‰BCã¸å時計回りã«æã\\
-\chuu サイズã®ãƒ‡ãƒ•ã‚©ãƒ«ãƒˆã¯0.5
-
-\tab{Paramark(A, B, C \{, サイズ\})}\\
-\tab{}$\angle \mathrm{ABC}$ã®é–“ã®è§’度記å·ï¼ˆå¹³è¡Œå››è¾ºå½¢ï¼‰ã‚’作æˆ
-
-%\tab{Sumfun(\{ 定数項, \}一般項, 添字ã®ãƒªã‚¹ãƒˆï¼Œå¤‰æ•°ã®ç¯„囲,\{ 点ã®å€‹æ•° \})}\\
-%\tab{} $\displaystyle c+\sum_{k= a}^{b}f(x,\ k)$ã®PDを作æˆï¼ˆ{\bf Scilabã«è¿½åŠ })\\
-%\chuu 定数項ãŒ0ã®ã¨ãã¯çœç•¥ã§ãる.\\
-%\chuu 点ã®å€‹æ•°ã¯ "N$<$- 個数" ã§æŒ‡å®šï¼ˆãƒ‡ãƒ•ã‚©ãƒ«ãƒˆã¯çµ‚ã‚ã‚Šã¾ã§ï¼‰\\
-%\rei G1$<$- Sumfun(1, "x\verb|^|n/factorial(n)", "n$<$- 1:5", "x$<$- c($-2,\ 2)$")
-
-%\tab{Implicitplot(関数,x範囲,y範囲\{, 分割数\})}\\
-%\tab{Implicitplot(Zvalue, Xvalue, Yvalue) }\\
-%\tab{}陰関数ã®PDを作æˆ\\
-%\chuu 分割数ã®ãƒ‡ãƒ•ã‚©ãƒ«ãƒˆã¯ã€€c(50, 50)\\
-%\rei \verb|G1$<$- Implicitplot("x^2+y^2-1","x$<$- c(-1,1)","y$<$- c(-1,1)")|
-
-%\tab{Deqplot(方程å¼ï¼Œx範囲,x0,y0\{, 分割数\})}\\
-%\tab{}微分方程å¼ã®è§£æ›²ç·šã®PDを作æˆ\\
-%\chuu $y"$㯠y\bq ã¨æ›¸ã.\\
-%\chuu xã®ç¯„囲をçœç•¥ã™ã‚‹ã¨ï¼Œæ画範囲全体\\
-%\rei \verb|G1$<$- Deqplot("y|\bq \verb|$<$- y*(1-y)","x",0,0.2,"N$<$- 100")|\\
-%\rei \verb|G2$<$- Deqplot"("y|\bq\bq \verb|$<$- -0.4*y`-3*y","x$<$- c(0,5)",0,c(0,2))|
-%\rei \verb|G3$<$- Deqplot("c(x,y)|\bq \verb|$<$- c(x*(1-y),0.3*y*(x-1))",...|\\
-%\reicr \verb| "t$<$- c(0,20)",0,c(1,0.5),"N$<$- 200")|
-
-%
-
-\subsection{空間図形}
-
-\tab{Spaceline(\,空間点ã®ãƒ™ã‚¯ãƒˆãƒ«ã¾ãŸã¯list\,)}\\
-\tab{}空間点をçµã¶ç·šåˆ†ã®PD3dを作æˆ\\
-\rei G1$<$- Spaceline(\,c(c(3,\ 2,\ 1),\ c(5,\ 6,\ 6))\,)
-
-\tab{Spacecurve(\,関数,範囲,オプション\,)}\\
-\tab{}空間曲線ã®PD3dを作æˆ\\
-\rei G2$<$- Spacecurve( "c(cos(t),\ sin(t),\ t)",\ "t$<$- c(0, 2*\%pi)" )
-
-\tab{Rotate3data(PD3, v1, v2\ \{, 中心\})}\\
-\tab{}PD3ã‚’v1ãŒv2ã«é‡ãªã‚‹ã‚ˆã†ã«å›žè»¢ã—ãŸPD3dを作æˆ\\
-\rei G2$<$- Rotate3data(\,G1, c(1, 0, 0), c(1, 2, 3)\,)\\
-\chuu PD3ã¯listã§ã‚‚よã„(ã“ã®å ´åˆã¯listã‚’è¿”ã™ï¼‰
-
-\tab{Rotate3datac(PD3, 回転軸, 角度\ \{, 中心\})}\\
-\tab{}PD3を回転軸ã®ã¾ã‚ã‚Šã«å›žè»¢ã—ãŸPD3dを作æˆ\\
-\rei G2$<$- Rotate3datac(\,G1, c(0, 0, 1), \%pi/4\,)\\
-\chuu PD3ã¯listã§ã‚‚よã„(ã“ã®å ´åˆã¯listã‚’è¿”ã™ï¼‰
-
-\tab{Translata3data(PD3, 移動ベクトルv)}\\
-\tab{}PD3ã‚’vã ã‘移動ã—ãŸPD3dを作æˆ\\
-\rei G2$<$- Translate3datac(\,G1, c(3, 2, 1)\,)\\
-\rei G2$<$- Translate3datac(\,G1, 3, 2, 1\,)\\
-\chuu PD3ã¯listã§ã‚‚よã„(ã“ã®å ´åˆã¯listã‚’è¿”ã™ï¼‰
-
-\tab{Xyzax3data(\,$x$範囲, $y$範囲, $z$範囲\,)}\\
-\tab{}座標軸ã®PD3dã®listを作æˆ
-
-\tab{Projpara(\,PD3列ã¾ãŸã¯list\,)}\\
-\tab{}空間曲線ã®å¹³è¡ŒæŠ•å½±ã«ã‚ˆã‚‹å°„å½±PD( 2d )を作æˆ
-
-\tab{Projpers(\,PD3列ã¾ãŸã¯list\,)}\\
-\tab{}空間曲線ã®ä¸€ç‚¹æŠ•å½±ã«ã‚ˆã‚‹å°„å½±PD( 2d )を作æˆ
-
-\tab{Skeletonparadata(\,空間曲線list1,空間曲線list2\{,大ãã•%
-\{,\ é è¿‘ã®é–¾å€¤\}\}\,)}\\
-\tab{}\begin{mini}{30zw}
-平行投影ã§list1ã‹ã‚‰list2ã«ã‚ˆã‚Šéš ã•ã‚Œã‚‹éƒ¨åˆ†ã‚’除ã„ãŸæ®‹ã‚Šã®å¹³é¢PD列
-(スケルトンデータ)を作æˆ\vspace*{2mm}
-\end{mini}
-
-\tab{Skeletonpara3data(\,空間曲線list1,空間曲線list2\{,大ãã•%
-\{,\ é è¿‘ã®é–¾å€¤\}\}\,)}\\
-\tab{}\begin{mini}{30zw}
-平行投影ã§list1ã‹ã‚‰list2ã«ã‚ˆã‚Šéš ã•ã‚Œã‚‹éƒ¨åˆ†ã‚’除ã„ãŸæ®‹ã‚Šã®ç©ºé–“PD列
-(スケルトンデータ)を作æˆ\vspace*{2mm}
-\end{mini}
-
-\tab{Skeletonpersdata(\,空間曲線list1,空間曲線list2\{,大ãã•%
-\{,\ é è¿‘ã®é–¾å€¤\}\}\,)}\\
-\tab{}一点投影ã§list2ã«ã‚ˆã‚‹list1ã®ã‚¹ã‚±ãƒ«ãƒˆãƒ³ãƒ‡ãƒ¼ã‚¿(2D)を作æˆ
-
-\tab{Skeletonpers3data(\,空間曲線list1,空間曲線list2\{,大ãã•%
-\{,\ é è¿‘ã®é–¾å€¤\}\}\,)}\\
-\tab{}一点投影ã§list2ã«ã‚ˆã‚‹list1ã®ã‚¹ã‚±ãƒ«ãƒˆãƒ³ãƒ‡ãƒ¼ã‚¿(3D)を作æˆ
-
-\tab{Embed(\,å¹³é¢æ›²ç·šï¼ˆãƒªã‚¹ãƒˆï¼‰ï¼ŒåŸ‹ã‚è¾¼ã¿é–¢æ•°\,)}\\
-\tab{}埋ã‚è¾¼ã¿é–¢æ•°ã«ã‚ˆã‚Šç©ºé–“曲線を作æˆ\\
-\rei \verb|deff("Out$<$- Fun(x,y)","Out$<$- c(x,y,0)")|\\
-\reicr \verb|G1$<$- Listplot(c(0,0),c(3,2))|\\
-\reicr \verb|G1_3d$<$- Embed(G1,Fun)|
-
-%
-\subsection{多é¢ä½“ã®æç”»}
-
-\tab{Phcutdata(頂点リストVL, é¢æ·»å­—リストFL, å¹³é¢ãƒ‡ãƒ¼ã‚¿PlaneD)}\\
-\tab{}多é¢ä½“ã‚’å¹³é¢ã§åˆ‡ã£ãŸã¨ãã®å¤šé¢ä½“ã¨åˆ‡æ–­é¢ã®3dリストを作æˆ\\
-\chuu PlaneD(平é¢ï¼‰ã®å½¢å¼\\%
-\hspace*{18zw}\begin{mini}{20zw}
-"a*x+b*y+c*z-d",\ "a*x+b*y+c*z$<$- d"\\
-\hspace*{2zw}(x,\ y,\ zをクリアã—ã¦ãŠã)\\
-ã¾ãŸã¯ã€€"c(a, b, c, d)"\\
-\hspace*{4zw} "list(a, b, c, P)"(点Pを通る)
-\end{mini}\vspace{2mm}\\
-\chuu 切断é¢ã¯ãƒªã‚¹ãƒˆã®æœ€å¾Œã®è¦ç´ \\
-\rei VL$<$- list(c(0, 0, 0), c(1, 0, 0), c(0, 1, 0), c(0, 0, 1))\\
-\reicr FL$<$- list(c(1, 2, 3), c(1, 2, 4), c(1, 3, 4), c(2, 3, 4))\\
-\reicr PL$<$- Phcutdata(VL, FL, "c(1, 1, 1, 3)")\\
-\reicr Windisp(PL)
-
-\tab{Phcutoffdata(VL, FL, PlaneD, 符å·)}\\
-\tab{}PlaneDã§åˆ‡æ–­ã•ã‚ŒãŸéƒ¨åˆ†å¤šé¢ä½“ã®3dデータリストを作æˆ\\
-\chuu 符å·ã¯ã€€\verb|"+"| ã¾ãŸã¯ \verb|"-"|\\
-\rei PL$<$- Phpcutoffdata(VL, FL, "x+y+(z-1/2)", "+")\\
-\chuu PhVertexL(), PhFaceL()ã§é ‚点,é¢ãƒªã‚¹ãƒˆã‚’å–り出ã›ã‚‹ï¼Ž
-
-\tab{Phparadata(VL, FL)}陰線処ç†ã‚’ã—ãŸå¤šé¢ä½“ã®PD3d(平行投影)を作æˆ\\
-\tab{Phpersdata(VL, FL)}陰線処ç†ã‚’ã—ãŸå¤šé¢ä½“ã®PD3d(一点投影)を作æˆ\\
-\chuu PhHiddenData()ã§é™°ç·šã®PDã‚’å–り出ã›ã‚‹ï¼Ž
-
-\tab{Phsparadata(é¢datalist)}複数ã®å¤šé¢ä½“ã®PD3d(平行投影)を作æˆï¼ˆé™°ç·šå‡¦ç†ï¼‰\\
-\tab{Phspersdata(é¢datalists)}複数多é¢ä½“ã®PD3d(一点投影)を作æˆï¼ˆé™°ç·šå‡¦ç†ï¼‰\\
-\chuu é¢datalistã¯list(VL, FL),ã¾ãŸã¯ï¼Œãã®list\\
-\chuu é¢ã‚’点ã§ç›´æŽ¥æŒ‡å®šã™ã‚‹ã¨ãã«ã¯ VL$<$- list()ã¨ã™ã‚‹ï¼Ž\\
-\rei Fd$<$- list(list(),list(c(3,2,1),c(0,0,0),c(c(1,2,4)))\\
-\chuu PhHiddenData()ã§é™°ç·šã®PDã‚’å–り出ã›ã‚‹ï¼Ž
-
-\tab{Phsrawparadata(é¢datalist), Phsrawpersdata(é¢datalist)}\\
-\tab{}複数ã®å¤šé¢ä½“ã®PD3dを作æˆï¼ˆé™°ç·šå‡¦ç†ã‚’ã—ãªã„)
-
-\tab{Facesdata(é¢datalist \{ ,追加曲線PDlist \}, å°„å½±ã®ã‚¿ã‚¤ãƒ—)}\\
-\tab{}é¢ã®è¾ºï¼ˆã¨è¿½åŠ æ›²ç·šï¼‰ã‚’é¢ã«ã‚ˆã‚Šé™°ç·šå‡¦ç†\\
-\chuu å°„å½±ã®ã‚¿ã‚¤ãƒ—㯠"para","pers","rawpara’,"rawpers"
-
-\tab{Faceremovaldata(é¢datalist,曲線PDlist, å°„å½±ã®ã‚¿ã‚¤ãƒ—)}\\
-\tab{}曲線をé¢ã«ã‚ˆã‚Šé™°ç·šå‡¦ç†
-
-\section{データã®æ›¸ã出ã—}
-
-\subsection{基本コマンド}
-
-\tab{Windisp( PD列ã¾ãŸã¯list )}\\
-\tab{}ç”»é¢ã‚’é–‹ã,PD列を表示(確èªã®ãŸã‚)\\
-\rei Windisp(\,G1,\ G2\,)\\
-\rei Windisp(list(G1,G2))
-
-\tab{WindispT( PD列ã¾ãŸã¯list \{, オプション\} )}\\
-\tab{}ç”»é¢ã‚’é–‹ã,PD列を表示(確èªã®ãŸã‚)図をé‡ã­ã¦è¡¨ç¤ºã™ã‚‹ï¼Žäº‹å‰ã«WindispT()\\
-\rei WindispT(\,G1,\ G2\,color="red",width=1,new=TRUE\,)\\
-\rei WindispT(list(col="blue",border="white",G1),new=TRUE) \\
-\hspace*{18zw}(閉曲線G1を塗る)\\
-\rei WindispT(list(col="blue",border="white",density=200,G1,G2),new=TRUE)\\
-\hspace*{18zw} (閉曲線G1,G2ã‚’å¡—ã‚‹.densityã¯å†…å´ã‚’線分ã§å¡—ã‚Šã¤ã¶ã™å ´åˆã®ãƒ‘ラメータ)
-
-\tab{Openfile('ファイルå'\,\{ソースファイルå\}) }\\
-\tab{}書ã出ã—用ファイルを開ã(デフォルトã¯ç”»é¢ï¼‰\\
-\rei setwd("C:/TeXF") \\
-\reicr Openfile(\, "fig.tex"\,)\\
-\reicr Openfile(\,'fig.tex',\,'fig.r'\,)\\
-\chuu ソースãŒåŒä¸€ãƒ•ã‚©ãƒ«ãƒ€ã«ã‚ã‚‹ã¨ãã¯ï¼Œç¬¬ï¼’引数ã¯ä¸è¦
-
-\tab{Beginpicture("å˜ä½é•·"\,)}picture 環境を始ã‚る.\\
-\rei Beginpicture("1cm"\,)\\
-\rei Beginpicture("2*10/12cm"\,)
-
-\tab{Endpicture(\,1\,)}picture 環境を終ãˆã‚‹ï¼ˆåº§æ¨™è»¸ã‚’ã‹ã)\\
-\tab{Endpicture(\,0\,)}picture 環境を終ãˆã‚‹ï¼ˆåº§æ¨™è»¸ã‚’ã‹ã‹ãªã„)
-
-\tab{Closefile(\,)\,}書ã出ã—用ファイルを閉ã˜ã‚‹ï¼ˆãƒ‡ãƒ•ã‚©ãƒ«ãƒˆï¼ç”»é¢ã«æˆ»ã™ï¼‰
-
-\subsection{プロットデータ}
-
-\tab{Drwline(\,PD列ã¾ãŸã¯list\{, 太ã•\}\,)}\\
-\tab{}PD列ã¾ãŸã¯ã‚’実線ã§æ›¸ã出ã™\\
-\rei Drwline(\,G1,\ G2\,)\\
-\rei Drwline(\,G3,\ 0.5\.)
-
-\tab{Dashline(\,PD列ã¾ãŸã¯list\{, len \{, gap\}\,\}\,)}\\
-\tab{}PD列ã¾ãŸã¯listã‚’ç ´ç·šã§æ›¸ã出ã™ï¼ˆå®Ÿç·šéƒ¨ã‹ã‚‰å§‹ã¾ã‚‹ï¼‰\\
-\rei Dashline(\,G1,\ G2\,)\\
-\rei Dashline(\,G1,\ 1.5\,)\hfill(実線部,ギャップã¨ã‚‚ 1.5å€ï¼‰\\
-\rei Dashline(\,G1,\ G2,\ 1.5,\ 0.5\,)\\
-\hfill(実線部 1.5å€ï¼Œã‚®ãƒ£ãƒƒãƒ— 0.5å€ï¼‰
-
-\tab{Invdashline(\,PD列ã¾ãŸã¯list\{, len\{, gap\}\,\}\ )}\\
-\tab{}破線を書ã出ã™ï¼ˆã‚®ãƒ£ãƒƒãƒ—ã‹ã‚‰å§‹ã¾ã‚‹ï¼‰
-
-\tab{Dottedline(\,PD列ã¾ãŸã¯list\{, len \{, size\}\,\}\,)}\\
-\tab{}点線を書ã出ã™\\
-\rei Dottedline(\,G1,\ G2\,)\\
-\rei Dottedline(\,G1,\ 1.5\,) (間隔 1.5å€ï¼‰\\
-\rei Dottedline(\,G1,\ G2,\ 1,\ 0.5\,)(点ã®å¤§ãã• 0.5å€ï¼‰
-
-\tab{Arrowline(\,A, B \{, éƒã®å¤§ãã• \{, é–‹ã角 \{, éƒä½ç½® \{, 太ã•\}\,\}\,\} \{, \\
-\hspace*{20zw}å½¢ã¨ä½ç½®
-,\ "Cut=切り込ã¿çŽ‡"\}\,\}\,)}\\
-
-\tab{}点Aã‹ã‚‰Bã«å‘ã‘ã¦çŸ¢å°ã‚’ã‹ãコードを書ã出ã™\\
-\rei Arrowline(\,A,\ B\,)\\
-\rei Arrowline(\,A,\ B,\ 2,\ 10,"l"\,)\\
-\rei Arrowline(\,A,\ B,\ 1,\ 18,\ 0.5,\ 2,"lc"\,)\\
-\hspace*{6zw}\chuu ABã®ä¸­ç‚¹ã®ä½ç½®ã«éƒã‚’ã‹ã
-
-
-\tab{Arrowhead(\,ä½ç½®,\ æ–¹å‘\{,\ 大ãã•\{,\ 角度\},\ 形状ã¨ä½ç½®,\ "Cut=切り込ã¿çŽ‡"\}\,)}
-
-\tab{}éƒã ã‘を書ã出ã™\\
-\rei Arrowhead(\,c(0,\ 0),\ c(2,\ 1),\ "cl"\,)
-
-\tab{Arrowhead(\,P,\ PD\{,\ 大ãã•\{,\ 角度\},\ 形状ã¨ä½ç½®\}\,)}\\
-\tab{}PD上ã®ç‚¹Pã«çŸ¢å°ã‚’æã\\
-\rei Arrowhead(\,c(1,\ 1),\ Plotdata("x\^{}2","x"\,))\\
-\chuu éƒã¯ãƒ©ã‚¤ãƒ³
-
-\tab{Drwpt(点ã®åˆ— \{, å¡—ã‚Š\})}点を書ã出ã™ï¼ˆå¤§ãã•ã¯ Setptã§æŒ‡å®šï¼Œå¡—ã‚Šã®ãƒ‡ãƒ•ã‚©ãƒ«ãƒˆã¯1)\\
-\rei Drwpt(\,c(2,\ 3),\ c(5,\ 7)\,)
-
-\tab{Drwxy(\,)}座標軸を書ã出ã™
-
-\tab{Htickmark( 座標, æ–¹å‘, æ•°å¼ , $\cdots$ )}\\
-\tab{}横軸上ã«ç›®ç››ã‚Šã‚’ã¤ã‘る(方å‘ã®ãƒ‡ãƒ•ã‚©ãƒ«ãƒˆã¯"s"\,)
-
-\tab{Vtickmark( 座標, æ–¹å‘, æ•°å¼ , $\cdots$ )}\\
-\tab{}縦軸上ã«ç›®ç››ã‚Šã‚’ã¤ã‘る(方å‘ã®ãƒ‡ãƒ•ã‚©ãƒ«ãƒˆã¯"w"\,)\\
-\rei Htickmark(\,$-1$,"$-1$",\ 1,"1",\ pi,"$\backslash$pi"\,)\\
-\rei Vtickmark(\ $-1$,"e","$-1$",\ 1,"ne","1"\,)\\
-\rei Htickmark(c(2,1),\ "a"\,)\\
-\chuu æ•°å¼ã‚’çœç•¥ã™ã‚‹ã¨ç›®ç››ã‚Šã ã‘ã‚’ã¤ã‘ã‚‹
-
-\tab{Htickmark("m..n..r..")}横軸全体ã«ç›®ç››ã‚Šã‚’ã¤ã‘ã‚‹
-
-\tab{Vtickmark("m..n..r.."\,)}縦軸全体ã«ç›®ç››ã‚Šã‚’ã¤ã‘ã‚‹\\
-\chuu m(目盛りã®é–“隔),n(文字を何目盛り毎ã«ï¼‰ï¼Œr(数ã®å€çŽ‡ï¼‰\\
-\rei Htickmark("mn")(目盛りã¨æ•°ã‚’1間隔ã§ã¤ã‘る)\\
-\rei Vtickmark("m1n2r1.5")(1.5å€ã—ãŸæ•°ã‚’1ã¤ã¨ã³ã«ï¼‰
-
-\tab[13zw]{Shade(\,PD列ã¾ãŸã¯list\{, 濃ã•\}\,)\mbox{}}\\
-\tab{}閉曲線ã®å†…部を塗りã¤ã¶ã— 濃ã•: 0 〜 1(デフォルトã¯ï¼‘)
-
-\subsection{文字ã®æ›¸ã入れ}
-
-\tab{Letter(\ 点, æ–¹å‘, 文字列 ,・・・)}\\
-\tab{}点ã®ä½ç½®ã®ã€Œæ–¹å‘ã€ã«æ–‡å­—列をã‹ã(複数å¯ï¼‰\\
-\rei Letter(\,c(4,\ 3),"n","文字")\\
-\chuu ä½ç½®ã¯"n", "s", "e", "w", "ne", "nw", "se", "sw", "c"\\
-\chuu "n1" nã®æ–¹å‘ã«ã•ã‚‰ã«1目盛長ã ã‘離ã™ï¼Ž\\
-\chuu "s-1w2" sæ–¹å‘ã«-1目盛長,wæ–¹å‘ã«2目盛長ã ã‘離ã™ï¼Ž
-
-\tab{Expr(\ 点, æ–¹å‘, æ•°å¼ï¼Œãƒ»ãƒ»ãƒ»)}点ã®ä½ç½®ã®ã€Œæ–¹å‘ã€ã«æ•°å¼ã‚’ã‹ã(\$\$ã¯ä¸è¦ï¼‰\\
-\rei Expr(c(4, 3),"s","y=f(x)")
-
-\tab{Letterrot(\ 点, æ–¹å‘\ \{, 接線方å‘\ \{, 法線方å‘\}\}, 文字列)}\\
-\tab{Exprrot(\ 点, æ–¹å‘\ \{, 接線方å‘\ \{, 法線方å‘\}\}, 文字列)}\\
-\tab{}「点ã€ã®ä½ç½®ã«ã€Œæ–¹å‘ã€ã‚’å³æ¨ªæ–¹å‘ã«ã™ã‚‹ã‚ˆã†ã«æ–‡å­—を傾ã‘ã¦æ›¸ã\\
-\chuu 「接線方å‘ã€ï¼Œã€Œæ³•ç·šæ–¹å‘ã€ã¯ãã‚Œãžã‚Œã®å¾®å°‘移動é‡\\
-\chuu graphicxパッケージãŒå¿…è¦
-
-\tab{Texletter(\ 点(listå½¢å¼), æ–¹å‘, 文字列 ,・・・)}\\
-\tab{}点ã®ä½ç½®ã®ã€Œæ–¹å‘ã€ã«æ–‡å­—列をã‹ã(複数å¯ï¼‰\\
-\rei Texletter(\,list(4,,\ "\#1"),"n","文字")\\
-\chuu ä½ç½®ã¯"n", "s", "e", "w", "ne", "nw", "se", "sw", "c"\\
-\chuu 点ã®ä½ç½®ã¯ãƒªã‚¹ãƒˆå½¢å¼ã§ï¼Œ\TeX ã®æ–‡å­—列を渡ã™ã“ã¨ãŒã§ãる.
-
-\tab{Openphr(\,ユーザーコマンドå\,),Closephr(\,)}\\
-\tab{}$\backslash$defã®ã‚³ãƒžãƒ³ãƒ‰å®šç¾©\\
-\rei Openphr("$\backslash$p"\,)\\
-\reicr  Texcom("$\backslash$begin\{array\}\{cc\}"\,)\\
-\reicr  Texcom("5 \& 3$\backslash\backslash$"\,)\\
-\reicr  Texcom("8 \& 7"\,)\\
-\reicr  Texcom("$\backslash$end\{array\}\$"\,)\\
-\reicr Closephr(\,)
-
-\tab{Openpar(\,ユーザーコマンドå,幅 \{ ç¸¦æ–¹å‘ \}\,), Closepar(\,)}\\
-\tab{}minipage環境をå«ã‚€$\backslash$def コマンド定義\\
-\rei Openpar("$\backslash$s","5cm", "t"\,)\\
-\reicr  Texcom("$\backslash$input\{rei\}"\,)\\
-\reicr Closepar(\,)\\
-\reicr Letter(\,c(2,\ 3),"se","$\backslash$s"\,)\\
-\chuu 縦方å‘ã®ãƒ‡ãƒ•ã‚©ãƒ«ãƒˆã¯ c
-
-\tab{Fontsize("記å·"\,)}文字サイズã®å¤‰æ›´ã‚³ãƒžãƒ³ãƒ‰ã‚’書ã出ã™\\
-\tab[13zw]{}"n", "s", "f",%
- "ss", "t", \\
-\tab[13zw]{}"la", "La", %
-"LA", "h", "H"(""\,ã®ã¨ã"n"\,)\\
-\rei Fontsize("s")
-
-\tab{Texcom("コマンド"\,)}\TeX コマンドã®ã‚³ãƒ¼ãƒ‰ã‚’書ã出ã™\\
-\rei Texcom("$\backslash$newcounter\{tmpct\}")\\
-\chuu "newline" ã®ã¨ã,空白行を挿入
-
-\tab{Bowname(å¼“å½¢ï¼Œæ•°å¼ )}弓形PDã®ä¸­å¤®ã«å¼ã‚’書ã入れる\\
-\rei Gb$<$- Bowdata( A, B, 1, 0.5)\\
-\reicr Bowname(Gb, "d")
-
-\tab{Bownamerot( 弓形,数å¼\{,å‘ã\} )}\\
-\tab{}弓形PDã®ä¸­å¤®ã«å¼ã‚’傾ã‘ã¦æ›¸ã入れる\\
-\chuu graphicxパッケージãŒå¿…è¦\\
-\chuu å‘ãã« $-1$を指定ã™ã‚‹ã¨å‘ããŒå対ã«ãªã‚‹
-
-\tab{Xyzaxparaname(\,軸データ \{, å„軸ã®ãƒ©ãƒ™ãƒ«å \}\{,離れ\}\,)}\\
-\tab{}平行投影ã§ï¼Œå„軸ã®ãƒ©ãƒ™ãƒ«ã‚’書ã入れる\\
-\rei Gax$<$- Xyzax3data( "x$<$- c(0,1)", "y$<$- c(0,1)", "z$<$- c(0,2)" )\\% ($x,y,z$を書ã)\\
-\reicr Xyzaxparaname(Gax)\\% ($x,y,z$を書ã)\\
-\chuu "\yen sin x" ãªã©æ–‡å­—列ã§æŒ‡å®šã™ã‚‹ã“ã¨ã‚‚ã§ãã‚‹
-
-\tab{Xyzaxpersname(\,軸データ \{, å„軸ã®ãƒ©ãƒ™ãƒ«å \}\{,離れ\}\,)}\\
-\tab{}一点投影ã§ï¼Œå„軸ã®ãƒ©ãƒ™ãƒ«ã‚’書ã入れる\\
-\rei Xyzaxpersname(Gax, "", "", "w")
-
-%\vspace*{-0.5zw}
-
-%\vspace*{-2zw}
-
-\section{プロットデータã®æ“作}
-
-\subsection{å¹³é¢}
-
-\tab{Joingraphics(PD1,PD2,・・・\{ , "L" \})}\\
-\tab{}複数ã®PDを1ã¤ã®PDã«åˆä½µ \\
-\reicr G11$<$- Joingraphics(\,F9,\ G10\,)\\
-\chuu "L"を指定ã—ãŸã¨ãã¯ï¼Œçµæžœã‚’リストã§è¿”ã™
-
-\tab{Dividegraphics(PD)}PDã‚’è¦ç´ ã«åˆ†ã‘ãŸlistを作æˆ\\
-\rei FL$<$- Dividegraphics(G1)\\
-\rei G1$<$- Op(1, FL)
-
-\tab{Joincrvs(\,PD列\,)}複数ã®æ›²ç·šã‚’ã¤ãªã’ãŸPDを作æˆï¼ˆ2D, 3D共通)\\
-\rei G3$<$- Joincrvs(\,G1,\ Invert(G2)\,)\\
-\chuu 曲線ã¯éš£æŽ¥ã™ã‚‹é †ç•ªã§æŒ‡å®šã™ã‚‹
-
-\tab{Invert( PD )}PDã®ç‚¹åˆ—を逆順ã«ã—ãŸPDを作æˆï¼ˆ2D, 3D共通)
-
-%\tab{connectseg(PD)}細切れã®ç·šåˆ†ã‚’çµã¶PDリストを作æˆ\\
-%\hspace*{-4zw}\rei connectseg(implicitplot(x\textasciicircum 2+y\textasciicircum 2$<$- 1,x$<$- -2..2,y$<$- -2..2))
-
-\tab{Partcrv(\,s1,\ s2, PD\,)}曲線PD上ã®ãƒ‘ラメータ値s1, s2を両端ã¨ã™ã‚‹PDを作æˆ\\
-\chuu s1 $>$ s2 ã®å ´åˆ\\
-\hspace*{180pt}s2ã‹ã‚‰çµ‚点,始点ã‹ã‚‰s1ã¾ã§ã®PDã®ãƒªã‚¹ãƒˆã‚’出力\\
-\hspace*{180pt}PDãŒé–‰æ›²ç·šã®ã¨ãã¯ä¸Šã®ï¼’ã¤ã®PDã‚’ã¤ãªã’る.
-
-\tab{Partcrv(\,A, B, PD\,)}曲線PD上ã®ç‚¹A, Bã®é–“ã®éƒ¨åˆ†æ›²ç·šã®PDを作æˆ\\
-\chuu
-\begin{mini}{23zw}%
-A, Bã®é †åºãŒé€†è»¢ã—ã¦ã„ã‚‹ã¨ã,Bã‹ã‚‰çµ‚点,始点ã‹ã‚‰Aã¾ã§ã®PDã®ãƒªã‚¹ãƒˆï¼ˆé–‰ã®ã¨ã接続)を出力
-\end{mini}\vspace{2mm}\\
-\rei G1$<$- Plotdata(\,"x\textasciicircum 2",\ "x=c(XMIN, XMAX)"\,)\\
-\reicr G2$<$- Partcrv(\,c(0,0),\ c(1,1),\ G1)\\
-\reicr G3$<$- Partcrv(\,c(1,1),\ c(0,0),\ G1)
-
-
-\tab{Intersectcrvs(PD1, PD2)}2曲線PD1, PD2ã®äº¤ç‚¹ãƒªã‚¹ãƒˆã‚’作æˆ\\
-\rei G1$<$- Paramplot("c(cos(t),\ sin(t))",\ "t=c(0, 2*\%pi)")\\
-\reicr G2$<$- Plotdata("x+1/2",\ "x")\\
-\reicr PL$<$- Intersectcrvs(\,G1,G2\,)
-
-\tab{IntersectcrvsPp(PD1, PD2)}\\
-\tab{}2曲線PD1, PD2ã®äº¤ç‚¹ã¨ãƒ‘ラメータã®ãƒªã‚¹ãƒˆã‚’作æˆ
-
-\tab{Intersectlines(L1, L2)}ï¼’ç›´ç·šã®äº¤ç‚¹ã‚’è¿”ã™\\
-\rei L1$<$- Lineplot(A, B)\\
-\reicr L2$<$- Lineplot(C, D)\\
-\reicr P$<$- Intersectcrvs(\,L1,L2\,)
-
-\tab{Nearestpt(\ P, PD\ )}点Pã«æœ€ã‚‚è¿‘ã„曲線PD上ã®ç‚¹ã¨ãƒ‘ラメータ値ã®ãƒªã‚¹ãƒˆã‚’è¿”ã™\\
-\rei Pp$<$- Nearestpt(\,c(0,\ 1),\ G1\,)\\
-\reicr A$<$- Op(1,Pp)
-
-\tab{Nearestpt(\,PD1,\ PD2\,)}%
-PD1ã®ç¯€ç‚¹ã®ã†ã¡ã€PD2ã«æœ€ã‚‚è¿‘ã„点データã®ãƒªã‚¹ãƒˆã‚’è¿”ã™\\
-\rei Pp$<$- Nearestpt(\,G1,\ G2)\\
-\reicr A$<$- Op(1,Pp)
-
-\tab{Ptstart(\,PD\,), Ptend(\,PD)\,}曲線PDã®å§‹ç‚¹ï¼ˆçµ‚点)を返ã™
-
-
-%\tab{Ptlistcrv(\,PD)\,}曲線PDã®ç¯€ç‚¹ãƒ‡ãƒ¼ã‚¿ãƒªã‚¹ãƒˆã‚’è¿”ã™
-
-\tab{Numptcrv(\,PD)\,}曲線PDã®ç¯€ç‚¹ãƒ‡ãƒ¼ã‚¿ã®å€‹æ•°ã‚’è¿”ã™
-
-\tab{Ptcrv(\,n,\,PD)\,}曲線PDã®n番目ã®ç¯€ç‚¹ã‚’è¿”ã™
-
-\tab{Pointoncrv(\,s,\ PD\,)}PD上ã®ç‚¹ã§ãƒ‘ラメータ値sã‚’ã‚‚ã¤ç‚¹ã‚’è¿”ã™\\
-\rei Pointoncrv(5.3,\ G1)\\
-\reicr  (5番目ã®ç·šåˆ†ä¸Šã§0.3ã®ä½ç½®ã«ã‚る点)
-
-\tab[13zw]{Paramoncrv(P \{,\ n \},\ PD)}%
-PD(ã®n番目ã®ç·šåˆ†ï¼‰ä¸Šã«ã‚る点Pã®ãƒ‘ラメータを返ã™\\
-\rei Paramoncrv( c(3,\ 2), G1)\\
-\rei Paramoncrv(c(2,\ 4), 5, G1)
-
-%\tab[13zw]{Droppoint(PD \{, é™ç•Œå€¤\})} é™ç•Œå€¤ä»¥ä¸‹ã®éš£æŽ¥ç‚¹ã‚’è½ã¨ã—ã¦ç‚¹ã‚’å°‘ãªãã™ã‚‹ï¼Ž\\
-%\chuu é™ç•Œå€¤ã®ãƒ‡ãƒ•ã‚©ãƒ«ãƒˆå€¤ã¯0.02
-
-%\tab{Powersum(\,係数リスト(list), 変数値x \{, 中心c\} \,)}\\
-%\tab{}$\displaystyle \sum_{k= 0}^n a_n (x-c)^k$ã®å€¤ã‚’è¿”ã™ï¼Žï¼ˆPlotdataã§ä½¿ç”¨ï¼‰\\
-%\chuu 係数リスト㯠list( 添字リスト,係数リスト)ã®å½¢\\
-%\rei Tmp1$<$- 0:20\\
-%\reicr Tmp2$<$- ones(length(Tmp1))./factorial(Tmp1)\\
-%\reicr CL$<$- list(Tmp1, Tmp2)\\
-%\reicr G1$<$- Plotdata( "Powersum( CL, x)", "x")
-
-%\tab{FouriercoeffL(関数F, 周期T, 項数N )}\\
-%\tab{}Fã®Né …ã¾ã§ã®ãƒ•ãƒ¼ãƒªã‚¨ä¿‚数リスト(list)を求ã‚る.\\
-%\chuu list( 定数項, 余弦係数(行), 正弦係数(行), 周期 ) ã®å½¢\\
-%\chuu Fouriersumã§ç”¨ã„る.
-
-%\tab{Fouriersum( フーリエ係数リスト, 変数値)}\\
-%\tab{}フーリエ級数ã®å€¤ã‚’è¿”ã™ï¼Žï¼ˆPlotdataã§ä½¿ç”¨ï¼‰\\
-%\rei deff( "Out$<$- Fun(x)", "Out$<$- abs(x)")\\
-%\reicr CL$<$- FouriercoeffL(Fun, 2, 30)\\
-%\reicr G2$<$- Plotdata("Fouriersum(CL, x)", "x", "N$<$- 300" )
-
-\subsection{空間}
-
-\tab{Partcrv3(\,S1,\ S2, PD\,)}曲線PD上ã®ãƒ‘ラメータ値S1,S2を両端ã¨ã™ã‚‹PDを作æˆ
-
-\tab{Rotate3pt(点, V1, V2\{, C\})}\\
-\tab{}回転移動ã—ãŸç‚¹ã‚’è¿”ã™ï¼ˆRotate3dataå‚照)
-
-\tab{Rotate3ptc(点, 軸, 角度\{, C\})}\\
-\tab{}回転移動ã—ãŸç‚¹ã‚’è¿”ã™ï¼ˆRotate3dataå‚照)
-
-
-\tab{Parapt(\,点\,)\ ,\ \ Perspt(\,点\,)}\\
-\tab{}空間ã®ç‚¹ã‚’投影ã—ãŸç‚¹ã‚’è¿”ã™
-
-\tab{Zparapt(\,点\,)\ ,\ \ Zperspt(\,点\,)}\\
-\tab{}投影ã—ãŸå¹³é¢ã‚’$X,\ Y$ã¨ã—ãŸã¨ãã®$Z$座標
-
-\tab{Invparapt(\,P,\ PD3d\,)\ ,\ \ Invperspt(\,P,\ PD3d\,)}\\
-\tab{}PD3dを投影ã—ãŸPD上ã®ç‚¹Pã«å¯¾å¿œã™ã‚‹PD3d上ã®ç‚¹\\
-\chuu Pd3dãŒç·šåˆ†ã®ã¨ãã¯ï¼Œå»¶é•·ç·šä¸Šã®ç‚¹ã§ã‚‚よã„.
-
-\tab{Invperspt(\,s,\ PD2d,\ PD3d\,)\ ,\ \ Invperspt(\,s,\ PD2d,\ PD3d\,)}\\
-\tab{}PD2d上ã®ãƒ‘ラメータ値sã®ç‚¹ã«å¯¾å¿œã™ã‚‹PD3d上ã®ç‚¹
-
-\tab{Cancoordpers(\,投影座標\,)}平行投影ã§ã€ŒæŠ•å½±åº§æ¨™ã€ã§è¡¨ã•ã‚Œã‚‹ç‚¹ã®æ¨™æº–座標
-
-\tab{Cancoordpers(\,投影座標\,)}一点投影ã§ã€ŒæŠ•å½±åº§æ¨™ã€ã§è¡¨ã•ã‚Œã‚‹ç‚¹ã®æ¨™æº–座標
-
-\tab{Viewfrom(Vec, 曲線3D \{, éžè¡¨ç¤ºã‚ªãƒ—ション\})}\\
-\tab{}一時的ã«Vecæ–¹å‘ã‹ã‚‰ã¿ãŸå°„影データを返ã™\\
-\rei Out1$<$- Viewfrom(c(0,0,1), G1) (表示ã—ã¦ãƒ‡ãƒ¼ã‚¿ã‚’作æˆï¼‰\\
-\rei Out1$<$- Viewfrom(c(0,0,1), G1, 0) (データã®ã¿ã‚’作æˆï¼‰
-
-
-%\section{曲é¢ã®æç”»}
-
-%%
-%\subsection{関数データリストã®å®šç¾©}
-
-%\begin{enumerate}[\hspace*{1zw}(1)]
-%\item
-%$z$<$- f(x,\ y)\ \ (a \leqq x \leqq b,\ c \leqq y \leqq d)$ã®ã¨ã\vspace{1mm}\\
-%\hspace*{4zw}list(\,関数,\ xã®ç¯„囲,\ yã®ç¯„囲\,)\\
-%\hspace*{-6zw}\reicr \verb|Fd$<$- list("z$<$- x^2+y","x$<$- c(-1,2)","y$<$- c(-2,1)")|\\
-%\hspace*{-4zw}\chuu 変数å x, y ãŒé–¢æ•°åã«ã‚る文字ã¨é‡ãªã‚‰ãªã„よã†ã«ã™ã‚‹ï¼Ž
-
-%\item
-%$z$<$- f(x,\ y)\ ,x$<$- x(u,\ v),\ ,y$<$- y(u,\ v)\ \ (a \leqq u \leqq b,\ c \leqq v \leqq d)$ã®ã¨ã\vspace{1mm}\\
-%\hspace*{4zw}list(\,関数z,\ 関数x,\ 関数y,\ uã®ç¯„囲,\ vã®ç¯„囲\{,\ 境界ã®æŒ‡å®š\}\,)\\
-%\hspace*{-6zw}\rei \verb|Fd$<$- list("z$<$- sin(2*sqrt(abs(x^2+y^2))","x$<$- R*cos(T)",|\\
-%\hspace*{-6zw}\reicr \verb| "y$<$- R*sin(T)","R$<$- c(0,4)","T$<$- c(0,2*%pi)","e")|\\
-%\hspace*{-4zw}\chuu "e"ã¯$r$<$- 1,\ 0\leqq t\leqq 2\pi$ã§å®šã¾ã‚‹é–‰æ›²ç·šã‚’表ã™ï¼Ž\\
-%\hspace*{-4zw}\chuu sqrtã®ä¸­ã¯absã‚’ã¤ã‘る(計算誤差ã®ãŸã‚).
-
-%\item
-%$x$<$- x(u,\ v),\ y$<$- y(u,\ v),\ z$<$- z(u,\ v)\ (a \leqq u \leqq b,\ c \leqq v \leqq d)$ã®ã¨ã\\
-%\hspace*{4zw}list(\,"p",\ 関数x\ 関数y,\ 関数z,\ Uã®ç¯„囲,\ Vã®ç¯„囲\{,\ 境界ã®æŒ‡å®š\}\,)\\
-%\hspace*{-6zw}\rei \verb|Fd$<$- list("p","x$<$- sin(U)*cos(V)","y$<$- sin(U)*sin(V)",|\\
-%\hspace*{-6zw}\reicr \verb| "z$<$- cos(U)","U$<$- c(0,%pi)","V$<$- c(0,2*%pi),"")|
-
-%\end{enumerate}
-
-%\subsection{曲é¢ã®ãƒ¯ã‚¤ãƒ¤ãƒ¼ãƒ•ãƒ¬ãƒ¼ãƒ å›³}
-
-%\tab{Sf3data(FD,\ \{,曲線ã®ç‚¹ã®å€‹æ•°(リスト)\{,横方å‘ã®åˆ†å‰²æ•°,縦方å‘ã®åˆ†å‰²æ•°\}\})}\\
-%\tab{}曲é¢ãƒ‡ãƒ¼ã‚¿ãƒªã‚¹ãƒˆFDã®ï¼“次元ワイヤフレームデータを生æˆ\\
-%\chuu デフォルトã¯ã€€ç‚¹ã®å€‹æ•°ï¼c(50,\ 50),分割数$<$- 25\\
-%\chuu 点ã®å€‹æ•°ã‚’æ•°nã§æŒ‡å®šã—ãŸã¨ãã¯ï¼’æ–¹å‘ã¨ã‚‚nã«ãªã‚‹\\
-%\rei Out$<$- Sf3data(Fd)
-
-%\tab{Sfparadata(〃)}FDã®ãƒ¯ã‚¤ãƒ¤ãƒ•ãƒ¬ãƒ¼ãƒ ãƒ‡ãƒ¼ã‚¿ã‚’平行投影ã—ãŸï¼’次元データ
-
-%\tab{Sfpersdata(〃)}FDã®ãƒ¯ã‚¤ãƒ¤ãƒ•ãƒ¬ãƒ¼ãƒ ãƒ‡ãƒ¼ã‚¿ã‚’平行投影ã—ãŸï¼’次元データ
-
-%\subsection{輪郭線データã®ä½œæˆ}
-
-%\tab{Sfbdparadata(関数データ\{,å„æ–¹å‘ã®åˆ†å‰²æ•°,é™ç•Œå€¤1,é™ç•Œå€¤2\})}\\
-%\tab{Sfbdpersdata(関数データ\{,å„æ–¹å‘ã®åˆ†å‰²æ•°,é™ç•Œå€¤1,é™ç•Œå€¤2\})}
-
-%\noindent
-%\hspace*{3zw}\Ltab{10zw}{å„æ–¹å‘ã®åˆ†å‰²æ•°}曲線,陰関数ã®ã‚°ãƒªãƒƒãƒ‰æ•°\\
-%\hspace*{3zw}\Ltab{14zw}{}デフォルトã¯50\\
-%\hspace*{3zw}\Ltab{10zw}{}リストã‹å˜ç‹¬ã®æ•°ã§ä¸Žãˆã‚‹\\
-%\hspace*{3zw}\Ltab{10zw}{é™ç•Œå€¤1}åŒä¸€ç‚¹ã¨è¦‹ãªã™é™ç•Œï¼ˆãƒ‡ãƒ•ã‚©ãƒ«ãƒˆã¯0.05)\\
-%\hspace*{3zw}\Ltab{10zw}{é™ç•Œå€¤2}交点ã®ä½™è£•å¹…(デフォルトã¯0.2)
-
-%
-%\rei \verb|Out1$<$- Sfbdparadata(Fd,c(50,50))|\\
-%\reicr \verb| Windisp(Projpara(Out1))|
-
-%\noindent
-%\chuu 曲é¢ä¸Šã®ï¼“次元データã¨ã—ã¦å¾—られる.\\
-%\chuu BorderHiddenData()ã§
-%é™°ç·šã®ï¼“次元データãŒå¾—られる.\\
-%\chuu CuspData()ã§è¼ªéƒ­ç·šã®ï¼“次元データãŒ
-%得られる.\\
-%\chuu CuspPt()ã§cusp点ã®ï¼’次元データãŒ
-%得られる.\\
-%\chuu BorderPt()ã§è¼ªéƒ­ç·šã®äº¤ç‚¹ã®ï¼’次元データãŒ
-%得られる.
-
-%\subsection{ワイヤーデータã®ä½œæˆ}
-
-%\tab{Wireparadata(輪郭ã®ãƒªã‚¹ãƒˆ,関数データ,横ã®ç·šæ•°,縦ã®ç·šæ•°\{.分割数, é™ç•Œå€¤1.é™ç•Œå€¤2\})}
-
-%\tab{Wirepersdata(輪郭,関数データ \{ ,横ã®ç·šæ•°,縦ã®ç·šæ•°\{.分割数, é™ç•Œå€¤1.é™ç•Œå€¤2\}\})}
-
-%\noindent
-%\hspace*{3zw}\Ltab{10zw}{輪郭}Sfbdpersdata( Sfbdparadata ) ã§ä½œæˆã—ãŸãƒ‡ãƒ¼ã‚¿\\
-%\hspace*{3zw}\Ltab{10zw}{ç·š}個数ã‹å€¤ã®ãƒªã‚¹ãƒˆã§ä¸Žãˆã‚‹\\
-%\hspace*{3zw}\Ltab{10zw}{é™ç•Œå€¤1}デフォルトã¯0.05\\
-%\hspace*{3zw}\Ltab{10zw}{é™ç•Œå€¤2}デフォルトã¯0.2
-
-%
-%\rei \verb|Out2$<$- Wireparadata(Out1,Fd1,5,5)|\\
-%\reicr \verb| Windisp(Projpara(Out1,Out2))|\\
-%\chuu WireHiddenData()ã§
-%é™°ç·šã®ï¼“次元データãŒå¾—られる.\\
-%\chuu WirePt()ã§è¼ªéƒ­ç·šã¨ã®äº¤ç‚¹ã®ï¼’次元データãŒ
-%得られる.
-
-%\subsection{曲é¢ã¨æ›²ç·š}
-
-%\subsubsection{パラメータ平é¢ä¸Šã®æ›²ç·š}
-
-%\tab{Crvonsfparadata(å¹³é¢ä¸Šã®æ›²ç·š2Dデータ,輪郭,関数データ \{,オプション\})}
-
-%\tab{Crvonsfpersdata(å¹³é¢ä¸Šã®æ›²ç·š2Dデータ,輪郭,関数データ \{,オプション\})}
-
-%\rei \verb|Fg$<$- Parametricplot("c(T, 0)","T$<$- c(0,2*\%pi)")|\\
-%\reicr \verb| Out4$<$- Crvonsfpersdata(Fg,Out1,Fd)|\\
-%\chuu CrvonsfHiddenData()ã§é™°ç·šã®ï¼“次元データãŒå¾—られる.
-
-%
-%\subsubsection{曲é¢ä¸Šã®æ›²ç·š}
-
-%\tab{Crv3onsfparadata(曲é¢ä¸Šã®æ›²ç·š3Dデータ,輪郭,関数データ\{,オプション\})}
-
-%\tab{Crv3onsfpersdata(曲é¢ä¸Šã®æ›²ç·š3Dデータ,輪郭,関数データ \{,オプション\})}
-
-%\rei \verb|Out5$<$- Crv3onsfparadata(Fg,Out1,Fd)|\\
-%\chuu Crv3onsfHiddenData()ã§é™°ç·šã®ï¼“次元データãŒå¾—られる.
-
-%\subsubsection{曲é¢å¤–ã®æ›²ç·š}
-
-%\tab{Crvsfparadata(曲線3D,輪郭,関数データ\{,オプション\})}
-
-%\tab{Crvsfpersdata(曲線3D,輪郭,関数データ \{,オプション\})}
-
-%\rei \verb|G2$<$- Xyzax3data("x$<$- c(-5,5)","y$<$- c(-5,5)",...|\\
-%\reicr \verb| "z$<$- c(-5,5)")|\\
-%\reicr \verb| Out2$<$- Crvsfparadata(G2,Out1,Fd)|\\
-%\chuu CrvsfHiddenData()ã§é™°ç·šã®ï¼“次元データãŒå¾—られる.\\
-%\chuu 曲線ã¨æ›²é¢ãŒäº¤ã‚らãªã„ã¨ãã¯ï¼Œå¼•æ•°ã®æœ€å¾Œã« $-1$ã‚’ã¤ã‘る.
-
-%\subsubsection{ãã®ä»–ã®ã‚³ãƒžãƒ³ãƒ‰}
-
-%\tab{Intersectcrvsf(曲線3D, 関数データ\{,分割数\{,é™ç•Œå€¤\}\})}\\
-%\tab{}曲線ã¨æ›²é¢ã¨ã®äº¤ç‚¹ï¼ˆMD)を求ã‚る.
-
-%\subsection{曲é¢ã®åˆ‡æ–­}
-
-%%\tab{polarcoordx()}極座標$r,\ t$ã®$x$座標を与ãˆã‚‹é–¢æ•°ã‚’è¿”ã™
-
-%%\tab{polarcoordx()}極座標$r,\ t$ã®$x$座標を与ãˆã‚‹é–¢æ•°ã‚’è¿”ã™
-
-%\tab{Sfcutdata(曲é¢ãƒ‡ãƒ¼ã‚¿, 切断é¢ãƒ‡ãƒ¼ã‚¿ \{, 分割数\} )}\\
-%\tab{}曲é¢ã‚’切ã£ãŸã¨ãã®åˆ‡ã‚Šå£ã®3dデータを作æˆ\\
-%\chuu 切断é¢ã¯ï¼Œ$x,\ y,\ z$ãªã©ã®æ–¹ç¨‹å¼ã§ä¸Žãˆã‚‹ï¼Ž\\
-%\hspace*{15zw}(平é¢ã®å ´åˆã¯ï¼ŒPhcutdataã®ã‚ˆã†ã«ä¸Žãˆã¦ã‚‚よã„)\\
-%\rei \verb|Fd$<$- c("p","R*cos(T)","R*sin(T)","2*(1-R)",|\\
-%\reicr \verb| "R$<$- c(0,1)","T$<$- c(0,2*%pi)","se")|\\
-%\reicr \verb|Out$<$- Sfcutdata(Fd,"x^2+(z-1/2)^2$<$- 1/4")|
-
-%\tab{Sfcutoffparadata(関数データ, 切断é¢, ç¬¦å· \{ , 分割数\} )}
-
-%\tab{Sfcutoffrawparadata(関数データ, 切断é¢, ç¬¦å· \{ , 分割数\} )}
-
-%\tab{Sfcutoffpersdata(関数データ, 切断é¢, ç¬¦å· \{ , 分割数\} )}
-
-%\tab{Sfcutoffrawpersdata(関数データ, 切断é¢, ç¬¦å· \{ , 分割数\} )}
-
-%\tab{}切断é¢ã§åˆ‡ã£ãŸæ›²é¢ã‚’リッジライン法ã§è¿”ã™
-
-%
-%\rei \verb|Fd$<$- list("z$<$- 2*(1-sqrt(abs(x^2+y^2)))","x$<$- R*cos(T)",|\\
-%\reicr \verb| "y$<$- R*sin(T)","R$<$- c(0,1)","T$<$- c(0,2*%pi)","e")|\\
-%\reicr \verb| Out$<$- Sfcutoffparadata(Fd,"z$<$- 1+2*x","-")|
-
-
-\section{ãã®ä»–}
-
-%\tab{bksl("コマンド}\,)}コマンドã«$\backslash$ã‚’ã¤ã‘ãŸæ–‡å­—列を作る\\
-%\rei str$<$- bksl("sin x}\,)
-
-\tab{Readtextdata(ファイルå,\{開始ä½ç½®\{,オプション\}\})}\\
-\tab{}%
-\begin{mini}{30zw}
-ファイルã‹ã‚‰ã‚³ãƒ³ãƒžï¼Œã‚¹ãƒšãƒ¼ã‚¹ï¼Œã‚¿ãƒ–区切りã®ãƒ†ã‚­ã‚¹ãƒˆã‚’読込ã¿ï¼Œ
-データ行列を返ã™\vspace{2mm}
-\end{mini}\\
-\chuu オプション:\\
-\hspace*{18zw}"R=読ã¿è¾¼ã¿è¡Œæ•°" (デフォルトã¯ã™ã¹ã¦ï¼‰\\
-\hspace*{18zw}"C=読ã¿è¾¼ã¿åˆ—æ•°"(デフォルトã¯ã™ã¹ã¦ï¼‰ \\
-\hspace*{18zw}"Cna=è«–ç†å€¤" 1行を列åã«ã™ã‚‹ã‹ï¼ˆãƒ‡ãƒ•ã‚©ãƒ«ãƒˆTRUE) \\
-\hspace*{18zw}"Rna=è«–ç†å€¤" 1列を行åã«ã™ã‚‹ã‹ï¼ˆãƒ‡ãƒ•ã‚©ãƒ«ãƒˆFALSE) \\
-\rei DL$<$- Readtextdata("dt.csv",\ c(2,\ 1),\ "R=1000",\ "C=2")
-
-\tab{Writetextdata(データフレーム,ファイルå)}\\
-\tab{}データフレームを .csvファイルã«æ›¸ã出ã™\\
-\chuu 列åã¯ï¼‘行目ã«ãŠã,NAã¯blankã«ã™ã‚‹\\
-\rei Writetextdata(Df, "ex.csv")
-
-\tab{Tonumeric(\,文字列ã‹ã‚‰ãªã‚‹ãƒ‡ãƒ¼ã‚¿è¡Œåˆ— \{, 開始ä½ç½® \{ , 終了ä½ç½®\}\}\.)}\\
-\tab{}行列ã®æˆåˆ†ã‚’数値ã«å¤‰æ›ï¼ˆå¤‰æ›ã§ãã‚‹è¡Œã¨åˆ—ã‹ã‚‰ãªã‚‹éƒ¨åˆ†è¡Œåˆ—)\\
-\rei Dn$<$- Tonumeric(DL)
-
-%\tab{Newlength(\,)}%
-%\begin{mini}{30zw}
-%è·é›¢å¤‰æ•° \verb+ \Width, \Height, \Depth +を定義ã™ã‚‹\TeX コマンドを画é¢ã«è¡¨ç¤º
-%\end{mini}
-%\\
-%\rei \prompt newlength()+\\
-%\hspace*{6zw}\reicr \verb+\newlength{\Width}+\\%
-%\hspace*{6zw}\reicr \verb+\newlength{\Height}+\\%
-%\hspace*{6zw}\reicr \verb+\newlength{\Depth}+%
-
-%\tab{Mawarikomi("å¹…"\,)}%
-%\begin{mini}{28zw}
-%emathã®mawarikomi環境ã®ã‚³ãƒ¼ãƒ‰ã‚’生æˆè¡¨ç¤º
-%\end{mini}\\
-%\rei Mawarikomi("5cm"\,)
-
-\subsection{作表}
-
-\tab{Tabledata(\{大ãã•,\}\ 縦線相対幅,\ 横線相対高ã•\,)}\\%
-\tab{}表ã®ãƒ‡ãƒ¼ã‚¿listã‚’è¿”ã™\\
-\tab{}\hspace{-2zw}戻り値:PD,縦線添字,横線添字,枠縦PD,枠横PD,外枠PD\\
-\hspace*{10zw}大ãã•ã¯æ¬¡ã®ãƒ™ã‚¯ãƒˆãƒ«\\
-\hspace*{12zw}横,縦(,\ å·¦margin,\ å³margin(,\ 上margin,\ 下margin))\\
-\chuu 横(縦)を -1 ã¨ã—ãŸã¨ãã¯ï¼Œç¸¦ï¼ˆæ¨ªï¼‰ç·šã®ãƒ‡ãƒ¼ã‚¿ã‹ã‚‰\\
-\hspace*{16.3zw}自動的ã«è¨ˆç®—ã•ã‚Œã‚‹ï¼ˆãƒ‡ãƒ•ã‚©ãƒ«ãƒˆï¼‰\\
-\hspace*{10zw}縦線相対ä½ç½®ã¯å·¦ã®ç½«ç·šã‹ã‚‰ã®å¹…list(縦方å‘ã®å§‹ç‚¹ï¼Œçµ‚点)\\
-\hspace*{10zw}横線相対ä½ç½®ã¯ä¸Šã®ç½«ç·šã‹ã‚‰ã®å¹…list(横方å‘ã®å§‹ç‚¹ï¼Œçµ‚点)\\
-\chuu æ画領域ã¯è‡ªå‹•çš„ã«è¨­å®šã•ã‚Œã‚‹
-
-\rei Tmp1$<$- list(20, 30,list(30,0,10), list(0,15,20), 40)\\
-\reicr Tmp2$<$- list(15)\\
-\reicr Out$<$- Tabledata(c(150,20),Tmp1,Tmp)\\
-\reicr Tb$<$- Tabledata(Tmp1,Tmp2)
-
-\tab{Dividetable(表データ)}枠,縦罫線,横罫線をæˆåˆ†ã¨ã™ã‚‹ãƒªã‚¹ãƒˆã‚’è¿”ã™\\
-\rei G$<$- Dividetable(Tb)(G[[1]],G[[2]],G[[3]]ãŒæž ï¼Œç¸¦ï¼Œæ¨ªï¼‰
-
-\tab{Partframe(表データ,\ 開始ä½ç½®ï¼Œçµ‚了ä½ç½®)}\\
-\tab{}æž ã®ä¸€éƒ¨ã®PD\\
-\chuu ä½ç½®ã¯ãã‚Œãžã‚Œï¼Œc(列番å·,\ 行番å·)\\
-\chuu 開始ä½ç½®ã‹ã‚‰çµ‚了ä½ç½®ã¾ã§ã®å時計回りã®PD\\
-\rei G$<$- Parframe(Tb,\ c(4,1),c(1,2))
-
-\tab{Findcell(表データ,\ 列番å·,\ 行番å·\,)}\\%
-\tab{}セルã®æƒ…å ±list(中心,横幅ï¼ï¼’,縦幅ï¼ï¼’)を返ã™\\
-\chuu 番å·ã¯å·¦ä¸Šã®ä½ç½®\\
-\rei Out$<$- Findcell(Out,2,1)\\
-\chuu 番å·ãŒãƒ™ã‚¯ãƒˆãƒ«ã®ã¨ãã¯ï¼Œãã®ç¯„囲ã®ã‚»ãƒ«\\
-\rei Out$<$- Findcell(Out,c(2,4),1)\\
-\chuu 番å·ãŒãƒ™ã‚¯ãƒˆãƒ«ã®ã¨ãã¯ï¼Œãã®ç¯„囲ã®ã‚»ãƒ«\\
-\rei Out$<$- Findcell(Out,c(2,4),1)\\
-\tab{Findcell(表データ,\ 左セル,\{ å³ã‚»ãƒ«\} )}\\
-\rei Out$<$- Findcell(Out,"A2")
-
-\tab{Diagcelldata(表データ,列番å·ï¼Œè¡Œç•ªå·)}\\
-\tab{}セルã®å¯¾è§’ç·šPDã®ãƒªã‚¹ãƒˆã‚’è¿”ã™
-
-\tab{Putcell(表データ,\ 列番å·,\ 行番å·,\ ä½ç½®,\ 文字データ)}\\%
-\tab{}セルã«æ–‡å­—列を入れるコードを出力\\
-\chuu ä½ç½®ã¯"c", "r", "l", "u", "d", "b" \\
-\chuu u : up , d : down, b : baseline (微å°ç§»å‹•é‡ã‚’付加ã§ãる)\\
-\rei Putcell(Out,2,1,"c","221")\\
-\rei Putcell(Out,"B3","l","\$ab\$")
-
-\tab{Putrow(表データ,\ 行番å·,\ 文字データã®åˆ—)}\\%
-\tab{}1行ã«é †ã«æ–‡å­—を書ã入れる\\
-\rei Putrow(TbL, 2, "a", "b", "c" )\\
-\chuu デフォルトä½ç½®ã¯ "c" ãれ以外ã®ã¨ãã¯list内ã§æŒ‡å®š\\
-\chuu 複数列ã«ã‚ãŸã‚‹ã¨ãã¯ï¼Œåˆ—æ•°ã‚’ list 内ã§æŒ‡å®š\\
-\rei Putrow(TbL, 2, list("r","a"), list(2, "b"), "c")\\
-\hspace*{20zw}(rã®ä½ç½®ã«a,2列ã¨ã£ã¦bã‚’ãŠã)
-
-\tab{Putrowexpr(表データ,\ 行番å·,\ 文字ä½ç½®,\ 文字データã®åˆ—)}\\%
-\tab{}1行ã«é †ã«æ•°å¼ã‚’書ã入れる
-
-\tab{PutcoL(表データ,\ 列番å·ï¼ˆåå‰ï¼‰ï¼ˆ,\ 文字データã®åˆ—)}\\%
-\tab{}1列ã«é †ã«æ–‡å­—を書ã入れる\\
-\rei PutcoL(TbL, "C", "a", "b", "c" )
-
-\tab{PutcoLexpr(表データ,\ 列番å·(åå‰),\ 文字ä½ç½®ï¼Œæ–‡å­—データã®åˆ—}\\%
-\tab{}1列ã«é †ã«æ•°å¼ã‚’書ã入れる
-
-\tab{Putrowstr(表データ,\ 行番å·ï¼Œæ–‡å­—ä½ç½®ï¼Œæ–‡å­—列}\\%
-\tab{}1行ã«æ–‡å­—列ã®æ–‡å­—を1ã¤ãšã¤æ›¸ã入れる\\
-\rei Putrowstr(TbL, 1, "c", "xyz" )
-
-\tab{PutcoL(表データ,\ 列番å·ï¼ˆåå‰ï¼‰ï¼Œæ–‡å­—ä½ç½®ï¼Œæ–‡å­—列}\\%
-\tab{}1列ã«æ–‡å­—列ã®æ–‡å­—を1ã¤ãšã¤æ›¸ã入れる
-
-\subsection{\TeX ã®ã‚³ãƒžãƒ³ãƒ‰æ›¸ã出ã—(メタコマンド)}
-
-\tab{Texcom("コマンド"\,)}\TeX コマンドã®ã‚³ãƒ¼ãƒ‰ã‚’書ã出ã™\\
-\rei Texcom("$\backslash\backslash$begin\{minipage\}\{3cm\}")\\
-\chuu "newline" ã®ã¨ã,空白行を挿入
-
-
-\tab{Openphr(\,ユーザーコマンドå\,),Closephr(\,)}\\
-\tab{}$\backslash$defã®ã‚³ãƒžãƒ³ãƒ‰å®šç¾©ã‚’始ã‚ã‚‹\\
-\rei Openphr("$\backslash\backslash$p"\,)\\
-\reicr Texcom("$\backslash\backslash$begin\{array\}\{cc\}"\,)\\
-\reicr Texcom("5 \& 3$\backslash\backslash\backslash\backslash$"\,)\\
-\reicr Texcom("8 \& 7"\,)\\
-\reicr Texcom("$\backslash$end\{array\}\$"\,)\\
-\reicr Closephr(\,)
-
-\tab{Openpar(\,ユーザーコマンドå,幅\ \{,\ ä½ç½® \}\,), Closepar(\,)}\\
-\tab{}minipage環境をå«ã‚€$\backslash$def コマンド定義を始ã‚ã‚‹\\
-\chuu ä½ç½®ã®ãƒ‡ãƒ•ã‚©ãƒ«ãƒˆã¯ "c"\\
-\rei Openpar("$\backslash\backslash$s","5cm"\,)\\
-\reicr Texcom("$\backslash\backslash$input\{rei\}"\,)\\
-\reicr Closepar(\,)\\
-\reicr Letter(\,c([2,3),"se","$\backslash\backslash$s"\,)
-
-\tab{Texletter(\ 点(listå½¢å¼), æ–¹å‘, 文字列 ,・・・)}\\
-\tab{}点ã®ä½ç½®ã®ã€Œæ–¹å‘ã€ã«æ–‡å­—列をã‹ã(複数å¯ï¼‰\\
-\rei Texletter(\,list(4,"\#1"),"n","文字")\\
-\chuu ä½ç½®ã¯"n", s", "e", "w", "ne", "nw", "se", "sw", "c"\\
-\chuu 点ã®ä½ç½®ã¯ãƒªã‚¹ãƒˆå½¢å¼ã§ï¼Œ\TeX ã®å½¢å¼ã§æ¸¡ã™ã“ã¨ãŒã§ãる.
-
-\tab{Texnewctr(番å·ã¾ãŸã¯ç•ªå·ã®ãƒ™ã‚¯ãƒˆãƒ«)}\\
-\tab{}\ketpic ã§ä½¿ã†ã‚«ã‚¦ãƒ³ã‚¿(ketpicctra,...)を定義
-
-\tab{Texctr(番å·ã¾ãŸã¯ã‚«ã‚¦ãƒ³ã‚¿å)}\\
-\tab{}番å·ã®ã‚«ã‚¦ãƒ³ã‚¿åã¾ãŸã¯ã‚«ã‚¦ãƒ³ã‚¿åã‚’è¿”ã™
-
-\tab{Texthectr(番å·)} \verb|\|the+カウンタåã®æ–‡å­—列を返ã™
-
-\tab{Texvalctr(番å·)} \verb|\|value\{カウンタå\}ã®æ–‡å­—列を返ã™
-
-\tab{Texsetctr(番å·ï¼Œæ–‡å­—列)}カウンタã«å€¤ã‚’セットã™ã‚‹\TeX コマンド列を出力\\
-\rei Texsetctr(2, "1*2/3");\\
-\rei Texsetctr(2, "(-\verb|#|1)+2");
-
-\tab{Texletter(ä½ç½®ï¼ˆlist),方å‘,文字列)}\\
-\tab{}ä½ç½®listã§è¡¨ã•ã‚Œã‚‹ç‚¹ã«æ–‡å­—列をã‹ã\TeX コマンド列を出力\\
-\rei Texletter(list(10,paste("-",Texvctr(2),sep="")),"ne","\verb|\|content");\\
-\rei Texletter(list(0, "\verb|#|1"), "c", "A");
-
-\tab{Texnewcmd(コマンドå,引数ã®å€‹æ•°ï¼Œã‚ªãƒ—ション値)}\\
-\tab{}\verb|\|newcommand を始ã‚ã‚‹\TeX コマンドを出力
-
-\tab{Texrenewcmd(コマンドå,引数ã®å€‹æ•°ï¼Œã‚ªãƒ—ション値)}\\
-\tab{}\verb|\|renewcommand を始ã‚ã‚‹\TeX コマンドを出力
-
-\tab{Texend()}\TeX ã®ã‚³ãƒžãƒ³ãƒ‰å®šç¾©ã‚’終ã‚ã‚‹\TeX コマンドを出力
-
-\tab{Texfor(カウンタ番å·ï¼ŒåˆæœŸå€¤ï¼Œçµ‚了値)}\\
-\tab{}\TeX ã®ãƒ«ãƒ¼ãƒ—構造を始ã‚る.\\
-\chuu åˆæœŸå€¤ï¼Œçµ‚了値ã¯æ–‡å­—列ã§ä¸Žãˆã‚‹ï¼Ž\\
-\rei Texfor(1,"1","\verb|#|1");
-
-\tab{Texendfor(カウンタ番å·)}\TeX ã®ãƒ«ãƒ¼ãƒ—構造を終ãˆã‚‹ï¼Ž\\
-\rei Texendfor(1);
-
-\tab{Texforinit()}\TeX ã®ãƒ«ãƒ¼ãƒ—構造をåˆæœŸåŒ–
-
-\tab{Texif(数値æ¡ä»¶\ \{ ,1 \})}\TeX ã®if構造を始ã‚る.(ifnumã¾ãŸã¯ ifdim)\\
-\chuu æ¡ä»¶ã¯æ–‡å­—列ã§ä¸Žãˆã‚‹ï¼Ž\\
-\chuu 1を追加ã—ãŸã¨ãã¯ã€€ifdim\\
-\rei Texif("Texctr(1)\verb|<#|2");
-
-\tab{Texelse()}\TeX ã®elseブロック.
-
-\tab{Texendif()}\TeX ã®if構造を終ãˆã‚‹ï¼Ž
-%\tab{Setmark()}マークシート用マークã®ã‚³ãƒ¼ãƒ‰ã‚’出力
-
-%\tab{Putdashmark(表データ,\ 列番å·,\ 行番å·,文字列or番å·)}\\
-%\rei Putdashmark(Out,2,1,0:9);
-
-%\tab{Putcirmark(表データ,\ 列番å·,\ 行番å·)}
-
-%\tab{Putrecmark(表データ,\ 列番å·,\ 行番å·}
-
-\subsection{カラー設定}
-
-\tab{Setcolor(色 \{, 濃ã•\})}色を設定\\
-\chuu colorパッケージ必è¦\\
-\hspace*{2zw} 色ã¯ï¼Œæ¬¡ã®æ–‡å­—列ã¾ãŸã¯ [c,m,y,k]ã®ãƒ™ã‚¯ãƒˆãƒ«\\
-\hspace*{2.5zw}"greenyellow"[0.15,0,0.69,0],
-"yellow"[0,0,1,0],
-"goldenrod"[0,0.1,0.84,0],
-"dandelion"[0,0.29,0.84,0]\\
-\hspace*{2.5zw}"apricot"[0,0.32,0.52,0],
-"peach"[0,0.5,0.7,0],
-"melon"[0,0.46,0.5,0],
-"yelloworange"[0,0.42,1,0]\\
-\hspace*{2.5zw}""orange"[0,0.61,0.87,0],
-"burntorange"[0,0.51,1,0],
-"bittersweet"[0,0.75,1,0.24],\\
-\hspace*{2.5zw}"redorange"[0,0.77,0.87,0]\\
-\hspace*{2.5zw}"mahogany"[0,0.85,0.87,0.35],
-"maroon"[0,0.87,0.68,0.32],
-"brickred"[0,0.89,0.94,0.28],
-"red"[0,1,1,0]\\
-\hspace*{2.5zw}"orangered"[0,1,0.5,0],
-"rubinered"[0,1,0.13,0],
-"wildstrawberry"[0,0.96,0.39,0],\\
-\hspace*{2.5zw}"salmon"[0,0.53,0.38,0]\\
-\hspace*{2.5zw}"carnationpink"[0,0.63,0,0],
-"magenta"[0,1,0,0],
-"violetred"[0,0.81,0,0],
-"rhodamine"[0,0.82,0,0]\\
-\hspace*{2.5zw}"mulberry"[0.34,0.9,0,0.02],
-"redviolet"[0.07,0.9,0,0.34],
-"fuchsia"[0.47,0.91,0,0.08],\\
-\hspace*{2.5zw}"lavender"[0,0.48,0,0]\\
-\hspace*{2.5zw}"thistle"[0.12,0.59,0,0],
-"orchid"[0.32,0.64,0,0],
-"darkorchid"[0.4,0.8,0.2,0],
-"purple"[0.45,0.86,0,0]\\
-\hspace*{2.5zw}"plum"[0.5,1,0,0],
-"violet"[0.79,0.88,0,0],
-"royalpurple"[0.75,0.9,0,0],
-"blueviolet"[0.86,0.91,0,0.04]\\
-\hspace*{2.5zw}"periwinkle"[0.57,0.55,0,0],
-"cadetblue"[0.62,0.57,0.23,0],
-"cornflowerblue"[0.65,0.13,0,0],\\
-\hspace*{2.5zw}"midnightblue"[0.98,0.13,0,0.43]\\
-\hspace*{2.5zw}"navyblue"[0.94,0.54,0,0],
-"royalblue"[1,0.5,0,0],
-"blue"[1,1,0,0],
-"cerulean"[0.94,0.11,0,0]\\
-\hspace*{2.5zw}"cyan"[1,0,0,0],
-"processblue"[0.96,0,0,0],
-"skyblue"[0.62,0,0.12,0],
-"turquoise"[0.85,0,0.2,0]\\
-\hspace*{2.5zw}"tealblue"[0.86,0,0.34,0.02],
-"aquamarine"[0.82,0,0.3,0],
-"bluegreen"[0.85,0,0.33,0],\\
-\hspace*{2.5zw}"emerald"[1,0,0.5,0]\\
-\hspace*{2.5zw}"junglegreen"[0.99,0,0.52,0],
-"seagreen"[0.69,0,0.5,0],
-"green"[1,0,1,0],
-"forestgreen"[0.91,0,0.88,0.12]\\
-\hspace*{2.5zw}"pinegreen"[0.92,0,0.59,0.25],
-"limegreen"[0.5,0,1,0],
-"yellowgreen"[0.44,0,0.74,0],\\
-\hspace*{2.5zw}"springgreen"[0.26,0,0.76,0]\\
-\hspace*{2.5zw}"olivegreen"[0.64,0,0.95,0.4],
-"rawsienna"[0,0.72,1,0.45],
-"sepia"[0,0.83,1,0.7],
-"brown"[0,0.81,1,0.6]\\
-\hspace*{2.5zw}"tan"[0.14,0.42,0.56,0],
-"gray"[0,0,0,0.5],
-"black"[0,0,0,1],
-"white"[0,0,0,0]
-
-\end{document}
-
-\newpage
-
-\section{内部コマンド}
-
-\tab{CalcHeight}
-
-\tab{CalcWidth}
-
-\tab{Dataindex}
-
-\tab{Gaiseki}
-
-\tab{InWindow}
-
-\tab{Kouten}
-
-\tab{KoutenList}
-
-\tab{Koutenseg}
-
-\tab{Kyoukai}
-
-\tab{MakeBowdata}
-
-\tab{MakeCurves}
-
-\tab{Makehasen}
-
-\tab{Makeshasen}
-
-\tab{MeetWindow}
-
-\tab{Mixmake}
-
-\tab{Naigai}
-
-\tab{Naiseki}
-
-\tab{Vecnagasa(A, B)}$<$- norm(B-A)
-
-\tab{Makevaltable}
-
-\tab{Connectseg}
-
-
-
-\end{document}
diff --git a/texmf-dist/doc/support/ketcindy/source/ketmanual/refketlayer20161211J.tex b/texmf-dist/doc/support/ketcindy/source/ketmanual/refketlayer20161211J.tex
deleted file mode 100644
index 630e19f2..00000000
--- a/texmf-dist/doc/support/ketcindy/source/ketmanual/refketlayer20161211J.tex
+++ /dev/null
@@ -1,273 +0,0 @@
-\documentclass[a4j]{jarticle}
-
-\usepackage{ketpic,ketlayer}
-
-\usepack
-
-\input{refstyle}
-
-\setmargin{20}{20}{15}{25}
-
-\begin{document}
-
-\begin{flushright}
-2016.12.11
-\end{flushright}
-
-
-\begin{center}
-{\bf \huge \ketpic\ style ---ketlayer---}\vspace{3mm}\\
-\end{center}
-
-\section{スタイルå}
-\tab{ketlayer.sty,\ ketlayer2e.sty(pict2eå¿…è¦)}
-
-\section{概è¦}
-追記(コメント,メモ,挿絵)用ã®ç’°å¢ƒï¼Œãƒžã‚¯ãƒ­ã‚’定義.\\
-\hspace*{5zw}ketpic.sty も読んã§ãŠã.\\
-\hspace*{5zw}graphicx,\ color ã‚‚å¿…è¦
-
-\section{環境}
-
-\tab{\bs begin\br{layer}[方眼ã®æ°´å¹³ç§»å‹•]\br{W}\br{H}---\bs end\br{layer}}\\
-\tab{}メモを書ããŸã‚ã®picture環境を定義ã—ã¦ï¼Œæ–¹çœ¼ã‚’æã.\\
-\chuu 方眼ã®æ°´å¹³ç§»å‹•ã®ãƒ‡ãƒ•ã‚©ãƒ«ãƒˆã¯ 0\\
-\chuu $\mathrm{H}=0$ã®ã¨ãã¯ï¼Œæ–¹çœ¼ã‚’æã‹ãªã„.\\
-\chuu $\mathrm{H}<0$ã®ã¨ãã¯ï¼Œä¸Šå´ã«æ–¹çœ¼ã‚’æã.\\
-\rei \bs begin\br{layer}\br{170}\br{30}
-
-\vspace{0.5\baselineskip}
-
-\begin{layerv}{0}{30}
-
-\end{layerv}
-
-\vspace{7\baselineskip}
-
-%\tab{\bs begin\br{layerv}[方眼ã®æ°´å¹³ç§»å‹•]\br{縦方å‘ã®ç§»å‹•}\br{H}---\bs end\br{layerv}}\\
-%\tab{}縦方å‘ã®ç§»å‹•ã‚’ã—,水平方å‘ã¯ç´™å¹…ã‹ã‚‰è‡ªå‹•è¨ˆç®—.縦方å‘ã¯ä¸‹ãŒï¼‹\\
-%\chuu 該当部分ã®ä¸‹ã«ãŠã,$-$ã§æŒ‡å®šã™ã‚‹ã®ãŒæ™®é€š
-
-\tab{\bs begin\br{layerg}[1 or 0]\br{C}---\bs end\br{layerg}}
-
-\tab{}C(図ãªã©ï¼‰ã®ä¸‹ã«ãŠã,Cã®ç¸¦å¹…ã ã‘方眼をãŠã\\
-\chuu オプション引数(def=1):1ã®ã¨ã方眼をæã,ï¼ã®ã¨ãæã‹ãªã„
-
-\section{シンボル}
-
-
-\begin{layer}{170}{0}
-
-\putnotec{30}{35}{\cirscoremark{0.8}}
-
-\putnotec{60}{35}{\scirscoremark{0.8}}
-
-\putnotec{90}{35}{\triscoremark{0.8}}
-
-\putnotec{120}{35}{\crosscoremark{0.8}}
-
-\end{layer}
-
-
-%\tab[6cm]{\bs circlemark[thickness]\br{size}}円\\
-%\chuu サイズã¯ç›´å¾„10mmã‹ã‚‰ã®å€çŽ‡ã§ä¸Žãˆã‚‹ï¼Ž\\
-%\chuu thicknessã®ãƒ‡ãƒ•ã‚©ãƒ«ãƒˆã¯ã€€8 ( milli inch)
-
-%\tab[6cm]{\bs remarkmark[thickness]\br{size}}注æ„マーク
-
-\tab[6cm]{\bs cirscoremark[thickness]\br{size}}手ãŒãã®2é‡ä¸¸
-
-\tab[6cm]{\bs scirscoremark[thickness]\br{size}}手ãŒãã®å˜ä¸¸
-
-\tab[6cm]{\bs triscoremark[thickness]\br{size}}手ãŒãã®ä¸‰è§’
-
-\tab[6cm]{\bs crosscoremark[thickness]\br{size}}手ãŒãã®ãƒãƒ„
-
-\vspace{6\baselineskip}
-
-\section{マクロ一覧}
-
-\begin{layer}{160}{0}
-
-\putnotee{120}{20}{\fbox{$\dfrac{1}{2}$}}
-
-\end{layer}
-
-\tab[14zw]{\bs putnotec\br{x}\br{y}\br{Char}}(x,\ y)を中心ã«Charを書ã
-
-\tab[14zw]{\bs putnotee\br{x}\br{y}\br{Char}}(x,\ y)ã®å³ã«Charを書ã
-
-\tab[14zw]{\bs putnotew\br{x}\br{y}\br{Char}}(x,\ y)ã®å·¦ã«Charを書ã
-
-\tab[14zw]{\bs putnotes\br{x}\br{y}\br{Char}}(x,\ y)ã®ä¸‹ã«Charを書ã
-
-\tab[14zw]{\bs putnoten\br{x}\br{y}\br{Char}}(x,\ y)ã®ä¸Šã«Charを書ã
-
-\tab{\bs putnotene\br{x}\br{y}\br{Char}\ ,\
-\bs putnotenw\br{x}\br{y}\br{Char}}
-
-\tab{\bs putnotese\br{x}\br{y}\br{Char}\ ,\
-\bs putnotesw\br{x}\br{y}\br{Char}}
-
-\noindent
-\rei putnotee\br{20}\br{5}\br{\bs fbox\br{\$\bs dfrac\br{1}\br{2}\$}}
-
-\mbox{}
-
-\begin{layer}{160}{0}
-
-\lineseg[16]{135}{25}{30}{25}
-
-\arrowlineseg[16]{130}{50}{10}{45}
-
-\end{layer}
-
-\tab{\bs lineseg[thickness]\br{$x$}\br{$y$}\br{$L$}\br{$\theta$}}\\
-\tab{}点$(x, \ y)$ã‹ã‚‰é•·ã•$L$ã®ç·šåˆ†ã‚’$\theta^{\circ}$
-æ–¹å‘ã«æã(å˜ä½ã¯mm)\\
-\rei \bs lineseg[16]\br{130}\br{20}\br{30}\br{25}\\
-\chuu thicknessã®å˜ä½ã¯ã€€milli inch(デフォルト=12)\\
-\chuu $x,\ y,\ \theta$ ã¯å°æ•°ã§ã‚‚よã„.
-
-\tab{\bs dashlineseg[thickness]\br{$x$}\br{$y$}\br{$L$}\br{$\theta$}}\\
-\tab{}点$(x, \ y)$ã‹ã‚‰é•·ã•$L$ã®ç ´ç·šã‚’$\theta^{\circ}$
-æ–¹å‘ã«æã(å˜ä½ã¯mm)
-
-\tab{\bs arrowlineseg[thickness]\br{$x$}\br{$y$}\br{$L$}\br{$\theta$}}\\
-\tab{}矢å°ã‚’æã(éƒã¯å§‹ç‚¹ã«æã)\\
-\rei \bs arrowlineseg[16]\br{30}\br{20}\br{10}\br{45}
-
-\tab[13zw]{\bs arrowhead[size]\br{$x$}\br{$y$}\br{$\theta$}}éƒã ã‘ã‚’æã
-
-\mbox{}
-
-%\tab{\bs boxline[ç·šå¹…]\br{x}\br{y}\br{W}\br{H}}\\
-%\tab{}(x,\ y)ã®å³ä¸Š(ne)ã«å¹…W,高ã•Hã®çŸ©å½¢ã‚’æã.\\
-%\chuu ç·šå¹…ã®ãƒ‡ãƒ•ã‚©ãƒ«ãƒˆã¯8 (milli inch)\\
-%\chuu n,\ s ãªã©8æ–¹å‘+c を付加ã™ã‚Œã°ï¼Œãã‚Œãžã‚Œã®æ–¹å‘ã«æã\\
-%\rei \bs boxlinen\br{30}\br{20}\br{50}\br{5}
-
-\tab{\bs boxframe+dir[thickness]\br{x}\br{y}\br{W}\br{H}\br{文字}}\\
-\tab{}(x,\ y)ã®diræ–¹å‘ã«å¹…W,高ã•Hã®çŸ©å½¢ã‚’æã,中ã«æ–‡å­—を入れる\\
-\chuu dir=n,\ s,\ e,\ w,\ ne,\ nw,\ se,\ sw,\ c \\
-\rei \bs boxframen\br{30}\br{20}\br{50}\br{5}\br{}
-
-%\tab{\bs dashboxline[ç·šå¹…]\br{x}\br{y}\br{W}\br{H}}\\
-%\tab{}(x,\ y)ã®å³ä¸Š(ne)ã«å¹…W,高ã•Hã®ç‚¹ç·šã®çŸ©å½¢ã‚’æã.\\
-%\chuu ç·šå¹…ã®ãƒ‡ãƒ•ã‚©ãƒ«ãƒˆã¯8 (milli inch)\\
-%\chuu 8æ–¹å‘+c ã«ã¤ã„ã¦ã¯ï¼Œ\bs boxlineã¨åŒã˜
-
-\tab{\bs dashboxframe+dir[thickness]\br{x}\br{y}\br{W}\br{H}\br{文字}}\\
-\tab{}(x,\ y)ã®diræ–¹å‘ã«ã‚®ã‚¶ã®çŸ©å½¢ã‚’æã,中ã«æ–‡å­—を入れる\\
-\chuu dir=n,\ s,\ e,\ w,\ ne,\ nw,\ se,\ sw,\ c
-
-\tab{\bs jaggyboxframe+dir[thickness]\br{x}\br{y}\br{W}\br{H}\br{文字}}\\
-\tab{}(x,\ y)ã®diræ–¹å‘ã«ã‚®ã‚¶å››è§’形をæã,中ã«æ–‡å­—を入れる\\
-\chuu dir=n,\ s,\ e,\ w,\ ne,\ nw,\ se,\ sw,\ c
-
-\tab{\bs dialboxframe+dir[thickness]\br{x}\br{y}\br{W}\br{H}\br{文字}}\\
-\tab{}(x,\ y)ã®diræ–¹å‘ã«ãƒ€ã‚¤ãƒ¤åž‹ã‹ã‚‰ãªã‚‹çŸ©å½¢ã‚’æã,中ã«æ–‡å­—を入れる\\
-\chuu dir=n,\ s,\ e,\ w,\ ne,\ nw,\ se,\ sw,\ c
-
-\tab{\bs eraser+dir[æž ]\br{$x$}\br{$y$}\br{W}\br{H}}\\
-\tab{}$(x,\ y)$ã®diræ–¹å‘ã®é•·æ–¹å½¢ã®å†…部を消ã™\\
-\chuu æž =0 ã¨ã™ã‚‹ã¨æž ç·šã‚’æã‹ãªã„(デフォルト㯠1)\\
-\chuu dir=n,\ s,\ e,\ w,\ ne,\ nw,\ se,\ sw,\ c
-
-\tab{\bs shadebox+dir[æž æç”»]\br{$x$}\br{$y$}\br{W}\br{H}\br{D}\br{色}}\\
-\tab{}$(x,\ y)$ã®diræ–¹å‘ã«å¹…W,高ã•Hã®çŸ©å½¢ã®å†…部を濃ã•Dã§å¡—ã‚‹\\
-\chuu æž æç”»ã®ãƒ‡ãƒ•ã‚©ãƒ«ãƒˆã¯ 0(枠線をæã‹ãªã„)\\
-\chuu dir=n,\ s,\ e,\ w,\ ne,\ nw,\ se,\ sw,\ c
-
-\vspace{\baselineskip}
-
-\begin{layer}{160}{0}
-
-\boxframese[24]{10}{0}{30}{16}{boxframe}
-\dashboxframese{50}{0}{30}{16}{dashboxframe}
-\jaggyboxframese{90}{0}{30}{16}{jaggyboxframe}
-\diaboxframese{130}{0}{30}{16}{diaboxframe}
-\shadeboxse{10}{0}{30}{16}{0.5}{green}
-
-\end{layer}
-
-\newpage
-
-\tab{\bs popframe[thickness]\br{x}\br{y}\br{Ds}\br{色s}\br{Dp}\br{色p}\br{色f}\br{文字}}\\
-\tab{}(x,\ y)ã®å³ä¸‹(se)ã«æ–‡å­—入り矩形をæã,濃ã•Dsã®é™°ã‚’ã¤ã‘ã‚‹\\
-\chuu 色p : 背景色,色f : æž ã®è‰²\\
-\chuu 矩形ã®å¤§ãã•ã¯æ–‡å­—ã‹ã‚‰è‡ªå‹•è¨ˆç®—ã™ã‚‹\\
-\chuu ç·šã®å¤ªã•(thickness)ã®ãƒ‡ãƒ•ã‚©ãƒ«ãƒˆã¯8\\
-\chuu 文字列ã®å¹…$\leqq 200mm$,高ã•$\leqq 100mm$\\
-\rei \bs popframe\br{0}\br{5}\br{0.5}\br{black}\br{1}\br{yellow}\br{yellow}\br{タイトル}
-
-\tab{\bs colorframe[thickness]\br{x}\br{y}\br{Dp}\br{色p}\br{色f}\br{文字}}\\
-\tab{}(x,\ y)ã®å³ä¸‹(se)ã«æ–‡å­—入り矩形をæã,背景を色pã§å¡—ã‚‹\\
-\chuu 矩形ã®å¤§ãã•ã¯æ–‡å­—ã‹ã‚‰è‡ªå‹•è¨ˆç®—ã™ã‚‹\\
-\chuu ç·šã®å¤ªã•(thickness)ã®ãƒ‡ãƒ•ã‚©ãƒ«ãƒˆã¯8\\
-\chuu 文字列ã®å¹…$\leqq 200$mm,高ã•$\leqq 100$mm\\
-\rei \bs colorframe\br{100}\br{5}\br{0.3}\br{green}\br{blue}\br{文字列}
-
-\begin{layer}{160}{0}
-\popframe{60}{5}{0.3}{black}{1}{yellow}{yellow}{\Large タイトル}
-\colorframe{100}{5}{0.3}{green}{blue}{\Large\bf 強調文字}
-\end{layer}
-
-\vspace{15mm}
-
-\begin{layer}{160}{0}
-
-\hjaggyline{130}{10}{25}
-
-\vjaggyline{140}{20}{15}
-
-\end{layer}
-
-%\vspace{6\baselineskip}
-
-\tab{\bs hjaggyline[thickness]\br{x}\br{y}\br{W}}\\
-\tab{}(x,\ y)ã‹ã‚‰å·¦ã«å¹…Wã®ã‚®ã‚¶ç·šã‚’æã.\\
-\chuu bを付加ã™ã‚‹ã¨ï¼Œç·šã®å‡ºæ–¹ãŒé€†ã«ãªã‚‹ï¼Ž
-
-\tab{\bs vjaggyline[thickness]\br{x}\br{y}\br{W}}\\
-\tab{}(x,\ y)ã‹ã‚‰ä¸‹ã«å¹…Wã®ã‚®ã‚¶ç·šã‚’æã.\\
-\chuu bを付加ã™ã‚‹ã¨ï¼Œç·šã®å‡ºæ–¹ãŒé€†ã«ãªã‚‹ï¼Ž
-
-\tab{\bs circleline[thickness]\br{x}\br{y}\br{size}}\\
-\tab{}(x,\ y)を中心ã«
-円をæã
-
-\tab{\bs ballonr[thickness]\br{x}\br{y}\br{size}\br{Char}}\\
-\tab{}(x,\ y)ã‹ã‚‰å³ä¸Šã«å¹ã出ã—ã¨Charã‚’æã
-
-\tab{\bs ballonl[thickness]\br{x}\br{y}\br{size}\br{Char}}\\
-\tab{}(x,\ y)ã‹ã‚‰å·¦ä¸Šã«å¹ã出ã—ã¨Charã‚’æã
-
-
-\tab[14zw]{\bs lefthand[thickness]\br{x}\br{y}}(x,\ y)ã«æŒ‡å…ˆã‚’æã
-
-\tab[14zw]{\bs righthand[thickness]\br{x}\br{y}}(x,\ y)ã«æŒ‡å…ˆã‚’æã
-
-\tab[16zw]{\bs leftdownhand[thickness]\br{x}\br{y}}(x,\ y)ã«æŒ‡å…ˆã‚’æã
-
-\tab[16zw]{\bs rightdownhand[thickness]\br{x}\br{y}}(x,\ y)ã«æŒ‡å…ˆã‚’æã
-
-\begin{layer}{180}{0}
-
-\ballonr{30}{40}{1}{Example1}
-
-\ballonl{90}{40}{1}{Example2}
-
-\lefthand{120}{30}
-
-\righthand{140}{30}
-
-\leftdownhand{120}{25}
-
-\rightdownhand{140}{25}
-
-\end{layer}
-
-
-
-\end{document}
diff --git a/texmf-dist/doc/support/ketcindy/source/ketmanual/refketpic161211J.pdf b/texmf-dist/doc/support/ketcindy/source/ketmanual/refketpic161211J.pdf
deleted file mode 100644
index ba47aa36..00000000
--- a/texmf-dist/doc/support/ketcindy/source/ketmanual/refketpic161211J.pdf
+++ /dev/null
Binary files differ
diff --git a/texmf-dist/doc/support/ketcindy/source/ketmanual/refketpic161211J.tex b/texmf-dist/doc/support/ketcindy/source/ketmanual/refketpic161211J.tex
deleted file mode 100644
index c7755b13..00000000
--- a/texmf-dist/doc/support/ketcindy/source/ketmanual/refketpic161211J.tex
+++ /dev/null
@@ -1,90 +0,0 @@
-\documentclass[a4j]{jarticle}
-%ã‚ã„ã†
-
-\usepackage{ketpic,ketlayer}
-\usepack
-
-\input{/tools/reference/refstyle}
-
-\setmargin{20}{20}{15}{25}
-
-\begin{document}
-
-\begin{flushright}
-2016.12.11
-\end{flushright}
-
-
-\begin{center}
-{\bf \huge \ketpic\ --ketpic--}\vspace{3mm}\\
-\end{center}
-
-\section{スタイルå}
-\tab{ketpic.sty,\ ketpic2e.sty(pict2eå¿…è¦)}
-
-\section{概è¦}
-
-\bs Width,\ \bs Height,\ \bs Depthを定義ã™ã‚‹ï¼Ž
-
-ã¾ãŸï¼Œ10個ã®ä¸€æ™‚カウンタ ketpicctra,\ $\cdots$,\ ketpicctrj を定義ã™ã‚‹ï¼Ž
-
-\section{マクロ一覧}
-
-\subsection{プリアンブル用}
-
-%\tab{\bs usepack}amsmath, amssymb,graphicx,colorを読ã¿è¾¼ã‚€
-
-\tab{\bs setmargin\br{left}\br{right}\br{top}\br{bottom}}\\
-\tab{}マージン設定(å˜ä½ã¯mm)\\
-\rei \bs setmargin\br{20}\br{20}\br{15}\br{25}
-
-\subsection{本文用}
-
-\tab{\bs ketpic}ロゴ \ketpic
-
-\tab{\bs Ltab\br{W}\br{S}}Wã®å¹…を確ä¿ã—ã¦å·¦å¯„ã›ã§Sを書ã\\
-\rei \bs Ltab\br{5cm}\br{abc}xyz
-
-\tab{\bs Rtab\br{W}\br{S}}Wã®å¹…を確ä¿ã—ã¦å³å¯„ã›ã§Sを書ã
-
-\tab{\bs Ctab\br{W}\br{S}}Wã®å¹…を確ä¿ã—ã¦ä¸­å¤®å¯„ã›ã§Sを書ã
-
-%\tab{\bs vbackward\br{C}}文字Cã®é«˜ã•åˆ†ã ã‘上ã«æˆ»ã‚‹\\
-%\rei \bs vbackward\br{\bs includegraphics\br{ex.eps}}
-
-%\tab{\bs vforward\br{C}}文字Cã®é«˜ã•åˆ†ã ã‘下ã«é€²ã‚€
-
-\tab{\bs ketcalcwidth[0]\br{C}}文字Cã®å¹…ã‚’å˜ä½é•·ã§è¨ˆã£ã¦ã‚«ã‚¦ãƒ³ã‚¿ï¼‘ã«è¿”ã™\\
-\chuu オプションãŒï¼‘ã®ã¨ãã¯ï¼Œå€¤ã‚’表示
-
-\tab{\bs ketcalcheight[0]\br{C}}文字Cã®é«˜ã•ã‚’å˜ä½é•·ã§è¨ˆã£ã¦ã‚’カウンタ1ã«è¿”ã™\\
-\chuu オプションãŒï¼‘ã®ã¨ãã¯ï¼Œå€¤ã‚’表示
-
-\tab{\bs ketcalcdepth[0]\br{C}}文字Cã®æ·±ã•ã‚’å˜ä½é•·ã§è¨ˆã£ã¦ã‚«ã‚¦ãƒ³ã‚¿ï¼‘ã«è¿”ã™\\
-\chuu オプションãŒï¼‘ã®ã¨ãã¯ï¼Œå€¤ã‚’表示
-
-\tab{\bs ketcalcwh\br{C}}文字Cã®æ¨ªå¹…ã¨ç¸¦å¹…ã‚’mmå˜ä½ã§è¿”ã™\\
-\chuu \{横幅\}\{縦幅\}ã®å½¢å¼ã§
-
-\subsection{シンボル}
-
-\begin{layer}[120]{120}{0}
-\putnotee{5}{5}{\dangerbendmark}
-\putnotee{10}{10}{\cautionmark}
-\putnotee{15}{15}{\circlemark{1}}
-\putnotee{20}{25}{\circleshade{1}{0.5}}
-\putnotee{5}{30}{\NEarrow,\ \NELarrow,\ \NERarrow}
-\end{layer}
-
-\tab[6cm]{\bs dangerbendmark[size]}ブルãƒã‚­ã®ã€Œå±é™ºãªæ›²ãŒã‚Šè§’ã€
-
-\tab[6cm]{\bs cautionmark[size]}注æ„書ãã®ãƒžãƒ¼ã‚¯
-
-\tab[6cm]{\bs circlemark[thickness]\br{size}} 円\\
-\chuu サイズ1= 4mm(直径)
-
-\tab[6cm]{\bs circleshade[thickness]\br{size}\br{density}}中塗りã®å††
-
-\tab[6cm]{\bs NEarrow[å€çŽ‡],\bs NELarrow[å€çŽ‡]ãªã©} 増減矢å°
-
-\end{document}
diff --git a/texmf-dist/doc/support/ketcindy/source/ketmanual/refketslide161211.tex b/texmf-dist/doc/support/ketcindy/source/ketmanual/refketslide161211.tex
deleted file mode 100644
index 31990d96..00000000
--- a/texmf-dist/doc/support/ketcindy/source/ketmanual/refketslide161211.tex
+++ /dev/null
@@ -1,72 +0,0 @@
-\documentclass[a4j]{jarticle}
-
-\usepackage{/tools/ketpic,/tools/ketlayer}
-\usepack
-
-\input{/tools/reference/refstyle}
-
-\setmargin{20}{20}{15}{25}
-
-\begin{document}
-
-\begin{flushright}
-2016.12.11
-\end{flushright}
-
-
-\begin{center}
-{\bf \huge \ketpic スタイル\ --ketslide--}\vspace{3mm}\\
-\end{center}
-
-\section{スタイルå}
-\tab{ketslide.sty}
-
-\section{概è¦}
-
-プレゼン用スライドを作æˆã™ã‚‹ï¼Ž\\
-\hspace*{2zw}\bs documentclass[landscape,10pt]\{jarticle ã¾ãŸã¯ article\}\\
-\hspace*{2zw}スライドã®å¤§ãã•ã¯ã€€ç´„130 $\times$ 85 (mm)
-
-
-\section{マクロ一覧}
-
-\subsection{プリアンブル用}
-
-\tab{\bs ketmarginJ}jarticleã®ã¨ãã®ãƒžãƒ¼ã‚¸ãƒ³è¨­å®š
-
-\tab{\bs ketmarginE}articleã®ã¨ãã®ãƒžãƒ¼ã‚¸ãƒ³è¨­å®š
-
-\tab{\bs ketslideinit}パラメータ指定マクロã¸ã®default値設定
-
-\noindent
-\hspace*{2zw}\tab{\bs ketcletter}タイトルã®æ–‡å­—色(black\\
-\hspace*{2zw}\tab{\bs ketcbox}ボックス内ã®è‰²ï¼ˆwhite\\
-\hspace*{2zw}\tab{\bs ketdbox}ボックス内ã®è‰²ã®æ¿ƒã•ï¼ˆ1)\\
-\hspace*{2zw}\tab{\bs ketcframe}æž ã®è‰²ï¼ˆblack)\\
-\hspace*{2zw}\tab{\bs ketcshadow}é™°ã®è‰²ï¼ˆblack)\\
-\hspace*{2zw}\tab{\bs ketdshadow}é™°ã®è‰²ã®æ¿ƒã•ï¼ˆ0.5)\\
-\hspace*{2zw}\tab{\bs slidetitlex}タイトルã®æ¨ªä½ç½®ï¼ˆ6)\\
-%\hspace*{2zw}\tab{\bs slidetitley}タイトルã®ç¸¦ä½ç½®ï¼ˆ7)\\
-\hspace*{2zw}\tab{\bs slidetitlesize}タイトルã®æ–‡å­—サイズ(2)\\
-\hspace*{2zw}\tab{\bs mketcletter}メインタイトルã®æ–‡å­—色(black)\\
-\hspace*{2zw}\tab{\bs mketcbox}メインタイトルã®ãƒœãƒƒã‚¯ã‚¹å†…ã®è‰²ï¼ˆwhite)\\
-\hspace*{2zw}\tab{\bs mketdbox}メインタイトルã®ãƒœãƒƒã‚¯ã‚¹å†…ã®è‰²ã®æ¿ƒã•ï¼ˆ1)\\
-\hspace*{2zw}\tab{\bs mketcframe}メインタイトルã®æž ã®è‰²ï¼ˆwhite)\\
-\hspace*{2zw}\tab{\bs mslidetitlex}メインタイトルã®æ¨ªä½ç½®ï¼ˆ62)\\
-%\hspace*{2zw}\tab{\bs mslidetitley}メインタイトルã®ç«‹ã¦ä½ç½®ï¼ˆ35)\\
-\hspace*{2zw}\tab{\bs mslidetitlesize}メインタイトルã®æ–‡å­—サイズ(3)\\
-\hspace{6zw}注) ã“れらã®ãƒ‘ラメータã¯æœ¬æ–‡ä¸­ã§ \bs def を使ã£ã¦å¤‰æ›´ã§ãる.
-
-
-\subsection{本文用}
-
-\tab[15zw]{\bs newslide[縦ä½ç½®]\{タイトル\}}æ–°ã—ã„スライドを始ã‚る.(縦ä½ç½®ã®default=6)
-
-\tab[15zw]{\bs sameslide}[縦ä½ç½®]åŒã˜ãƒšãƒ¼ã‚¸ã¨ã—ã¦ï¼Œè¿½åŠ ã™ã‚‹ï¼Ž
-
-\tab[15zw]{\bs mainslide[縦ä½ç½®]\{タイトル\}}æ–°ã—ã„メインスライドを始ã‚る.(縦ä½ç½®ã®default=35)
-
-\tab[15zw]{\bs mainsameslide[縦ä½ç½®]}åŒã˜ãƒšãƒ¼ã‚¸ã¨ã—ã¦ï¼Œè¿½åŠ ã™ã‚‹ï¼Ž
-
-
-\end{document} \ No newline at end of file
diff --git a/texmf-dist/scripts/ketcindy/LICENSE.txt b/texmf-dist/scripts/ketcindy/LICENSE.txt
deleted file mode 100644
index 505587ff..00000000
--- a/texmf-dist/scripts/ketcindy/LICENSE.txt
+++ /dev/null
@@ -1,14 +0,0 @@
-// Copyright (C) 2014 Setsuo Takato, KETCindy Japan project team
-//
-//This program is free software: you can redistribute it and/or modify
-// it under the terms of the GNU General Public License as published by
-// the Free Software Foundation; either version 3 of the License, or
-// (at your option) any later version.
-//
-// This program is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-// GNU General Public License for more details.
-//
-// You should have received a copy of the GNU General Public License
-// along with this program. If not, see <http://www.gnu.org/licenses/>
diff --git a/texmf-dist/scripts/ketcindy/data/fontF/0Small.png b/texmf-dist/scripts/ketcindy/data/fontF/0Small.png
deleted file mode 100644
index 8d491ce0..00000000
--- a/texmf-dist/scripts/ketcindy/data/fontF/0Small.png
+++ /dev/null
Binary files differ
diff --git a/texmf-dist/scripts/ketcindy/data/fontF/0Smalla-h.png b/texmf-dist/scripts/ketcindy/data/fontF/0Smalla-h.png
deleted file mode 100644
index 4578fb1e..00000000
--- a/texmf-dist/scripts/ketcindy/data/fontF/0Smalla-h.png
+++ /dev/null
Binary files differ
diff --git a/texmf-dist/scripts/ketcindy/data/fontF/0Smalli-o.png b/texmf-dist/scripts/ketcindy/data/fontF/0Smalli-o.png
deleted file mode 100644
index 812d3755..00000000
--- a/texmf-dist/scripts/ketcindy/data/fontF/0Smalli-o.png
+++ /dev/null
Binary files differ
diff --git a/texmf-dist/scripts/ketcindy/data/fontF/0Smallp-w.png b/texmf-dist/scripts/ketcindy/data/fontF/0Smallp-w.png
deleted file mode 100644
index 29c6c446..00000000
--- a/texmf-dist/scripts/ketcindy/data/fontF/0Smallp-w.png
+++ /dev/null
Binary files differ
diff --git a/texmf-dist/scripts/ketcindy/data/fontF/0Smallxyz.png b/texmf-dist/scripts/ketcindy/data/fontF/0Smallxyz.png
deleted file mode 100644
index a4e3a6a6..00000000
--- a/texmf-dist/scripts/ketcindy/data/fontF/0Smallxyz.png
+++ /dev/null
Binary files differ
diff --git a/texmf-dist/scripts/ketcindy/data/fontF/nsi.cdy b/texmf-dist/scripts/ketcindy/data/fontF/nsi.cdy
deleted file mode 100644
index 53393398..00000000
--- a/texmf-dist/scripts/ketcindy/data/fontF/nsi.cdy
+++ /dev/null
Binary files differ
diff --git a/texmf-dist/scripts/ketcindy/data/fontF/nsi.txt b/texmf-dist/scripts/ketcindy/data/fontF/nsi.txt
deleted file mode 100644
index 3492d65d..00000000
--- a/texmf-dist/scripts/ketcindy/data/fontF/nsi.txt
+++ /dev/null
@@ -1,29 +0,0 @@
-nsin//
-start//
-[[2,0]]//
-end//
-nsi1k//
-start//
-[[-1.7646,1.9555],[-0.8458,1.7871],[-1.3206,-0.0046]]//
-end//
-nsi1c//
-start//
-[[-1.4431,3.395],[-0.5243,3.104]]//
-end//
-start//
-[[-0.9837,1.3328],[-1.1521,0.664]]//
-end//
-nsi2k//
-start//
-[[-1.3206,-0.0046],[-0.9224,1.5114],[0.9152,1.4348],[1.7115,0.9601]]//
-end//
-nsi2c//
-start//
-[[-1.1776,0.5007],[-1.0449,1.0367]]//
-end//
-start//
-[[-0.218,3.7166],[1.6962,3.104]]//
-end//
-start//
-[[0.0919,-0.3982],[1.4206,-0.2037]]//
-end////
diff --git a/texmf-dist/scripts/ketcindy/data/fontF/pcr.cdy b/texmf-dist/scripts/ketcindy/data/fontF/pcr.cdy
deleted file mode 100644
index cc8891d0..00000000
--- a/texmf-dist/scripts/ketcindy/data/fontF/pcr.cdy
+++ /dev/null
Binary files differ
diff --git a/texmf-dist/scripts/ketcindy/data/fontF/pcr.txt b/texmf-dist/scripts/ketcindy/data/fontF/pcr.txt
deleted file mode 100644
index 76c429b5..00000000
--- a/texmf-dist/scripts/ketcindy/data/fontF/pcr.txt
+++ /dev/null
@@ -1,26 +0,0 @@
-pcrn//
-start//
-[[2,0]]//
-end//
-pcr1k//
-start//
-[[-1.4642,4.3617],[-1.4816,0.0001]]//
-end//
-pcr1c//
-start//
-[[-1.4642,3.0117],[-1.4642,1.5578]]//
-end//
-pcr2k//
-start//
-[[-1.7654,4.3962],[0.3658,4.3899],[0.3704,2.1982],[-1.4816,2.1982]]//
-end//
-pcr2c//
-start//
-[[-1.1236,4.3899],[0,4.3899]]//
-end//
-start//
-[[1.8552,4.3638],[1.7769,2.2211]]//
-end//
-start//
-[[0.0242,2.1982],[-0.72,2.1982]]//
-end////
diff --git a/texmf-dist/scripts/ketcindy/data/fontF/qcr.cdy b/texmf-dist/scripts/ketcindy/data/fontF/qcr.cdy
deleted file mode 100644
index ad28dd15..00000000
--- a/texmf-dist/scripts/ketcindy/data/fontF/qcr.cdy
+++ /dev/null
Binary files differ
diff --git a/texmf-dist/scripts/ketcindy/data/fontF/qcr.txt b/texmf-dist/scripts/ketcindy/data/fontF/qcr.txt
deleted file mode 100644
index 58a390e9..00000000
--- a/texmf-dist/scripts/ketcindy/data/fontF/qcr.txt
+++ /dev/null
@@ -1,23 +0,0 @@
-qcrn//
-start//
-[[2,0]]//
-end//
-qcr1k//
-start//
-[[0,0.1212],[0,4.5347],[0,0.1212]]//
-end//
-qcr1c//
-start//
-[[2.5616,0.1904],[2.527,4.5347]]//
-end//
-start//
-[[-2.527,4.4828],[-2.527,0.1731]]//
-end//
-qcr2k//
-start//
-[[0,1],[2.1808,-0.1904]]//
-end//
-qcr2c//
-start//
-[[0.9866,0.9692],[1.402,-0.1731]]//
-end////
diff --git a/texmf-dist/scripts/ketcindy/data/fontF/rcr.cdy b/texmf-dist/scripts/ketcindy/data/fontF/rcr.cdy
deleted file mode 100644
index e5a02dd9..00000000
--- a/texmf-dist/scripts/ketcindy/data/fontF/rcr.cdy
+++ /dev/null
Binary files differ
diff --git a/texmf-dist/scripts/ketcindy/data/fontF/rcr.txt b/texmf-dist/scripts/ketcindy/data/fontF/rcr.txt
deleted file mode 100644
index f668aba4..00000000
--- a/texmf-dist/scripts/ketcindy/data/fontF/rcr.txt
+++ /dev/null
@@ -1,34 +0,0 @@
-rcrn//
-start//
-[[3,0]]//
-end//
-rcr1k//
-start//
-[[-1.5231,4.4135],[-1.5231,0]]//
-end//
-rcr1c//
-start//
-[[-1.5231,2.9424],[-1.5231,1.4712]]//
-end//
-rcr2k//
-start//
-[[-1.7827,4.4135],[0.6231,4.4135],[0.5885,2.3366],[-1.5231,2.3366]]//
-end//
-rcr2c//
-start//
-[[-0.9808,4.4135],[-0.1788,4.4135]]//
-end//
-start//
-[[2.0943,4.4135],[2.025,2.3539]]//
-end//
-start//
-[[-0.1038,2.3366],[-0.75,2.3366]]//
-end//
-rcr3k//
-start//
-[[-0.3981,2.3366],[1.8866,-0]]//
-end//
-rcr3c//
-start//
-[[1.2808,2.3193],[1.0731,1.2462]]//
-end////
diff --git a/texmf-dist/scripts/ketcindy/data/fontF/tsi.cdy b/texmf-dist/scripts/ketcindy/data/fontF/tsi.cdy
deleted file mode 100644
index 2fa6231c..00000000
--- a/texmf-dist/scripts/ketcindy/data/fontF/tsi.cdy
+++ /dev/null
Binary files differ
diff --git a/texmf-dist/scripts/ketcindy/data/fontF/tsi.txt b/texmf-dist/scripts/ketcindy/data/fontF/tsi.txt
deleted file mode 100644
index 6a51e190..00000000
--- a/texmf-dist/scripts/ketcindy/data/fontF/tsi.txt
+++ /dev/null
@@ -1,23 +0,0 @@
-tsin//
-start//
-[[2,0]]//
-end//
-tsi1k//
-start//
-[[-0.9341,2.8483],[0.9494,2.879]]//
-end//
-tsi1c//
-start//
-[[-0.3063,2.8585],[0.3216,2.8687]]//
-end//
-tsi2k//
-start//
-[[0.3828,4.2112],[-0.49,0.6125],[0.8422,0.9801]]//
-end//
-tsi2c//
-start//
-[[0.0919,3.0117],[-0.1991,1.8121]]//
-end//
-start//
-[[-0.7044,-0.2144],[0.4594,-0.1072]]//
-end////
diff --git a/texmf-dist/scripts/ketcindy/data/fontF/xsi.cdy b/texmf-dist/scripts/ketcindy/data/fontF/xsi.cdy
deleted file mode 100644
index 428c783d..00000000
--- a/texmf-dist/scripts/ketcindy/data/fontF/xsi.cdy
+++ /dev/null
Binary files differ
diff --git a/texmf-dist/scripts/ketcindy/data/fontF/xsi.txt b/texmf-dist/scripts/ketcindy/data/fontF/xsi.txt
deleted file mode 100644
index f16d04f0..00000000
--- a/texmf-dist/scripts/ketcindy/data/fontF/xsi.txt
+++ /dev/null
@@ -1,26 +0,0 @@
-xsin//
-start//
-[[2,0]]//
-end//
-xsi1k//
-start//
-[[-1.2134,2.2311],[0.027,1.3889],[1.2521,0.6232]]//
-end//
-xsi1c//
-start//
-[[-0.9837,3.0734],[0.6855,3.4869]]//
-end//
-start//
-[[-0.6468,-0.5866],[0.9765,-0.1118]]//
-end//
-xsi2k//
-start//
-[[1.6043,2.5527],[0.027,1.3889],[-1.5503,0.3935]]//
-end//
-xsi2c//
-start//
-[[1.4818,3.1193],[0.4864,3.2265]]//
-end//
-start//
-[[-0.4324,-0.3722],[-1.489,-0.2037]]//
-end////
diff --git a/texmf-dist/scripts/ketcindy/data/fontF/ysi.cdy b/texmf-dist/scripts/ketcindy/data/fontF/ysi.cdy
deleted file mode 100644
index ff075329..00000000
--- a/texmf-dist/scripts/ketcindy/data/fontF/ysi.cdy
+++ /dev/null
Binary files differ
diff --git a/texmf-dist/scripts/ketcindy/data/fontF/ysi.txt b/texmf-dist/scripts/ketcindy/data/fontF/ysi.txt
deleted file mode 100644
index 83f6b329..00000000
--- a/texmf-dist/scripts/ketcindy/data/fontF/ysi.txt
+++ /dev/null
@@ -1,26 +0,0 @@
-ysin//
-start//
-[[2,0]]//
-end//
-ysi1k//
-start//
-[[-1.3052,2.1239],[-0.5549,1.4042],[1.0684,1.3889]]//
-end//
-ysi1c//
-start//
-[[-0.8458,3.2418],[0.2567,3.2572]]//
-end//
-start//
-[[-1.198,-0.1272],[0.4099,-0.8316]]//
-end//
-ysi2k//
-start//
-[[1.4665,2.8284],[0.7008,-0.0506],[-1.244,-0.8316]]//
-end//
-ysi2c//
-start//
-[[1.1756,1.7462],[0.9152,0.7406]]//
-end//
-start//
-[[0.2721,-1.6738],[-1.1981,-1.5666]]//
-end////
diff --git a/texmf-dist/scripts/ketcindy/data/fontF/zsi.cdy b/texmf-dist/scripts/ketcindy/data/fontF/zsi.cdy
deleted file mode 100644
index 3326d6ad..00000000
--- a/texmf-dist/scripts/ketcindy/data/fontF/zsi.cdy
+++ /dev/null
Binary files differ
diff --git a/texmf-dist/scripts/ketcindy/data/fontF/zsi.txt b/texmf-dist/scripts/ketcindy/data/fontF/zsi.txt
deleted file mode 100644
index f62925cd..00000000
--- a/texmf-dist/scripts/ketcindy/data/fontF/zsi.txt
+++ /dev/null
@@ -1,28 +0,0 @@
-zsin//
-start//
-[[3,0]]//
-end//
-zsi1k//
-start//
-[[-0.8152,2.2618],[1.1756,2.6752]]//
-end//
-zsi1c//
-start//
-[[0.1802,3.7319],[0.2874,1.7564]]//
-end//
-zsi2k//
-start//
-[[1.3287,2.8896],[-1.3818,-0.02]]//
-end//
-zsi2c//
-start//
-[[0.5783,1.7564],[-0.7846,1.052]]//
-end//
-zsi3k//
-start//
-[[-1.1215,0.3629],[1.0684,0.8835]]//
-end//
-zsi3c//
-start//
-[[-0.5549,0.9754],[0.2108,-0.9388]]//
-end////
diff --git a/texmf-dist/scripts/ketcindy/data/polyhedrons_obj/READMEj(kobayashi-suzuki).txt b/texmf-dist/scripts/ketcindy/data/polyhedrons_obj/READMEj(kobayashi-suzuki).txt
deleted file mode 100644
index 897ac82f..00000000
--- a/texmf-dist/scripts/ketcindy/data/polyhedrons_obj/READMEj(kobayashi-suzuki).txt
+++ /dev/null
@@ -1,116 +0,0 @@
-®–Ê“Ê‘½–Ê‘Ìi‚y-‘½–Ê‘Ìj‚ÌÀ•Wƒf[ƒ^‚ɂ‚¢‚Ä 1994”N6ŒŽ22“ú
-
-‚PD‚Í‚¶‚ß‚É
-
- ‚RŽŸŒ³ƒ†[ƒNƒŠƒbƒh‹óŠÔ‚Ì‘½–Ê‘Ì‚Ì’†‚ÅCg•Ó‚Ì’·‚³‚Ì“™‚µ‚¢³‘½ŠpŒ`‚ð–Ê
-‚É‚à‚“ʑ½ŠpŒ`h‚ÍC®–Ê“Ê‘½–Ê‘Ì(regular-faced convex polyhedron)‚ÆŒÄ
-‚΂ê‚Ä‚¢‚Ü‚·D®–Ê“Ê‘½–Ê‘Ì‚ÍC³‘½–Ê‘ÌC€³‘½–Ê‘ÌC³‘½Šp’ŒC³‘½Šp”½
-’Œ‚𜂭‚Æ 92 Ží—Þ‚µ‚©‘¶Ý‚µ‚Ü‚¹‚ñD‚±‚Ì‚±‚Æ‚ðØ–¾‚µ‚½Victor A.
-Zalgaller(1) ‚É‚¿‚È‚ñ‚ÅC®–Ê“Ê‘½–Ê‘Ì‚Í‚y-‘½–Ê‘Ì(Z-polyhedron)‚Æ‚àŒÄ‚Î
-‚ê‚Ä‚¢‚Ü‚·D
-
- ®–Ê“Ê‘½–Ê‘Ì‚Ì–ÍŒ^‚ÍCŽ†‚È‚Ç‚ÅŠÈ’P‚Éì‚邱‚Æ‚ª‚Å‚«‚Ü‚·‚ªC’¸“_‚ÌÀ•W
-‚ðŒvŽZ‚·‚邱‚Æ‚ª“‚­C‚±‚ê‚܂ŃRƒ“ƒsƒ…[ƒ^‚É‚æ‚é•\Ž¦‚Í¢“ï‚Å‚µ‚½DŽ„
-‚½‚¿‚ÍC‘½–ʑ̂̃Oƒ‰ƒt•\Œ»‚ð—˜—p‚µ‚½ŒvŽZƒAƒ‹ƒSƒŠƒYƒ€‚ðlˆÄ‚µC’Tõ‚Æ”
-’lŒvŽZ‚É‚æ‚Á‚Ä‚·‚ׂĂ̮–Ê“Ê‘½ŠpŒ`‚Ì’¸“_‚̈ʒuÀ•W‚ð‹‚ß‚Ü‚µ‚½(2)D‚±
-‚ÌÀ•Wƒf[ƒ^‚Í‚³‚Ü‚´‚Ü‚È—p“r‚É—˜—p‚Å‚«‚é‚ÆŽv‚í‚ê‚Ü‚·‚Ì‚ÅC‚±‚±‚ÉŒöŠJ‚¢
-‚½‚µ‚Ü‚·D‚Ç‚¤‚¼‚¨–𗧂ĉº‚³‚¢D
-
- À•Wƒf[ƒ^‚ÍŽ©—R‚É”z•z‚µ‚Ä‚¢‚½‚¾‚¢‚Ä‚©‚Ü‚¢‚Ü‚¹‚ñD‚½‚¾‚µCƒf[ƒ^‚É‚Í
-•K‚¸‚±‚̃hƒLƒ…ƒƒ“ƒg‚ð“Y‚¦‚ĉº‚³‚¢D‚È‚¨CÀ•Wƒf[ƒ^‚Ì—˜—p‚ÉŠÖ‚µ‚Ä”­¶
-‚µ‚½ˆêØ‚ÌáŠQ‚ɂ‚¢‚ÄÓ”C‚𕉂¢‚©‚Ë‚Ü‚·‚Ì‚ÅCŒä—¹³‰º‚³‚¢D
-
- “d‹C’ÊM‘åŠw î•ñHŠw‰È ¬—Ñ Œõ•v
- §182 “Œ‹ž“s’²•zŽs’²•zƒ–‹u1-5-1
- ‘—§—ðŽj–¯‘­”Ž•¨ŠÙ î•ñŽ‘—¿Œ¤‹†•” —é–Ø ‘쎡
- §285 ç—tŒ§²‘qŽsé“à’¬117
- E-mail: suzuki@alp0.cs.uec.ac.jp
- suz-tak@tansei.cc.u-tokyo.ac.jp
-
-’F
-(1) Zalgaller,V.A.: Convex Polyhedra with Regular Faces(‰p–ó”Å),
-Consultants Bureau, 1969. (Œ´’˜‚Í Zalgaller,B.A.: Vypuklye
-Mnogogranniki c Pravil'nymi Granyami, Nauka Press, 1966.)
-(2) ¬—ÑŒõ•v, —é–ؑ쎡: ³‘½ŠpŒ`‚ð–Ê‚É‚à‚‚·‚ׂĂ̓ʑ½–Ê‘Ì‚Ì’¸“_À•W
-‚ÌŒvŽZ, “d‹C’ÊM‘åŠw‹I—v, Vol.5, No.2, pp.147-184(1992).
-
-
-‚QDƒf[ƒ^ƒtƒ@ƒCƒ‹‚ÌŽí—Þ
-
-‘½–ʑ̃f[ƒ^‚̓fƒBƒŒƒNƒgƒŠ data/ ‚É‚ ‚éD
-
-‚P‚‚̑½–ʑ̂ɂ‚«‚P‚‚̃tƒ@ƒCƒ‹‚ª‘Ήž‚·‚éDŠe‘½–ʑ̂̃tƒ@ƒCƒ‹–¼‚ðˆÈ‰º
-‚ÉŽ¦‚·Dƒtƒ@ƒCƒ‹–¼‚Æ‘½–Ê‘Ì‚Ì–¼Ì‚Ƃ̑Ήž‚ÍCƒtƒ@ƒCƒ‹ dnamej.tex ‚Ì•\‚P
-‚©‚ç•\‚R‚ðŽQÆ‚Ì‚±‚ÆD
-
-³‘½–Ê‘Ì(regular polyhedron): r01, r02, r03, r04, r05.
-(r02 = a03, r03 = p04)
-
-€³‘½–Ê‘Ì(semiregular polyhedron): s01, s02, s03, s04, s05, s06, s07,
-s08, s09, s10, s11, s12L, s12R, s13L, s13R.
-(s12 ‚Æ s13 ‚Í‚»‚ꂼ‚ꋾ‘œŠÖŒW‚É‚ ‚鑽–Ê‘Ì‚ª‘¶Ý‚·‚é‚Ì‚ÅC¶ŽèŒn‚ƉEŽè
-Œn‚ð‚»‚ê‚¼‚ê L, R ‚Å‹æ•Ê‚µ‚Ä‚¢‚éD)
-(n37 ‚Í s08 ‚Ì”P‚ꂽ‚à‚ÌDƒ~ƒ‰[‚Ì‘½–ʑ̂ƌĂ΂ê‚éD‚±‚ê‚ð s14 ‚Æ‚Ý‚È
-‚·ê‡‚ª‚ ‚éD)
-
-³‘½Šp’Œ(prism): p03, p04, p05, p06, p07, p08, p09, p10.
-
-³‘½Šp”½’Œ(antiprism): a03, a04, a05, a06, a07, a08, a09, a10.
-
-®–Ê“Ê‘½–Ê‘Ì(regular-faced convex polyhedron):
- iœ‚­³‘½–Ê‘ÌC€³‘½–Ê‘ÌC³‘½Šp’ŒC³‘½Šp”½’Œj
-n01, n02, n03, n04, n05, n06, n07, n08, n09, n10, n11, n12, n13, n14,
-n15, n16, n17, n18, n19, n20, n21, n22, n23, n24, n25, n26, n27, n28,
-n29, n30, n31, n32, n33, n34, n35, n36, n37, n38, n39, n40, n41, n42,
-n43, n44L, n44R, n45L, n45R, n46L, n46R, n47L, n47R, n48L, n48R, n49,
-n50, n51, n52, n53, n54, n55, n56, n57, n58, n59, n60, n61, n62, n63,
-n64, n65, n66, n67, n68, n69, n70, n71, n72, n73, n74, n75, n76, n77,
-n78, n79, n80, n81, n82, n83, n84, n85, n86, n87, n88, n89, n90, n91,
-n92.
-(n44, n45, n46, n47, n48 ‚É‚Í‹¾‘œŠÖŒW‚É‚ ‚鑽–Ê‘Ì‚ª‘¶Ý‚·‚é‚Ì‚ÅC¶Žè
-Œn‚ƉEŽèŒn‚ð‚»‚ê‚¼‚ê L, R ‚Å‹æ•Ê‚µ‚Ä‚¢‚éD)
-
-
-‚RDƒf[ƒ^‚̃tƒH[ƒ}ƒbƒg
-
- ƒf[ƒ^‚͂‚¬‚Ì‚SŽí—ނ̃f[ƒ^‚©‚ç‚È‚éD
- E’¸“_‚É—×Ú‚·‚é’¸“_‚̃f[ƒ^
- E’¸“_‚ðˆÍ‚ޖʂ̃f[ƒ^
- E–Ê‚ð\¬‚·‚é’¸“_‚̃f[ƒ^
- E’¸“_‚ÌÀ•Wƒf[ƒ^
-
- ’¸“_C–ʂ͔Ԇ‚ÅŽ¯•Ê‚·‚éDn ŒÂ‚Ì’¸“_‚ª‚ ‚é‚Æ‚«‚Ì’¸“_”Ô†‚͈̔͂Í
-1 ”Ô‚©‚ç n ”Ô‚Ü‚Å‚Æ‚È‚éDm ŒÂ‚Ì–Ê‚ª‚ ‚é‚Æ‚«‚̖ʔԆ‚͈̔͂Í
-1 ”Ô‚©‚ç m ”Ô‚Ü‚Å‚Æ‚È‚éD
-
- ‹ï‘Ì“I‚É‚ÍC‚‚¬‚̂悤‚Ƀf[ƒ^‚ª‚È‚ç‚ñ‚Å‚¢‚éDƒf[ƒ^‚Í’¸“_À•W
-‚̃f[ƒ^‚¾‚¯ŽÀ”‚ÅC‚ ‚Æ‚Í®”‚Å‚ ‚é
-
- ’¸“_‚Ì”
- ’¸“_”Ô† ’¸“_‚É—×Ú‚·‚é’¸“_‚Ì” —×Ú‚·‚é’¸“_‚̔ԆDDD
- DDD
- i’¸“_‚Ì”‚¾‚¯‘±‚­j
- DDD
- ’¸“_‚Ì”
- ’¸“_”Ô† ’¸“_‚É—×Ú‚·‚é–Ê‚Ì” —×Ú‚·‚é–ʂ̔ԆDDD
- DDD
- i’¸“_‚Ì”‚¾‚¯‘±‚­j
- DDD
- –Ê‚Ì”
- –ʔԆ –Ê‚ð\¬‚·‚é’¸“_‚Ì” –Ê‚ð\¬‚·‚é’¸“_‚̔ԆDDD
- DDD
- i–Ê‚Ì”‚¾‚¯‘±‚­j
- DDD
- ’¸“_‚Ì”
- ’¸“_”Ô† ’¸“_‚Ì‚wÀ•W ’¸“_‚Ì‚xÀ•W ’¸“_‚Ì‚yÀ•W
- DDD
- i’¸“_‚Ì”‚¾‚¯‘±‚­j
- DDD
-
-
-‚SD‘½–ʑ̂̃n[ƒhƒRƒs[‚ɂ‚¢‚Ä
-
-Še‘½–ʑ̂̃n[ƒhƒRƒs[‚ð PBM Œ`Ž®‚Å‹L˜^‚µ‚½‚à‚Ì‚ªCƒfƒBƒŒƒNƒgƒŠ
-hardcopy/ ‚É‚ ‚éDƒtƒ@ƒCƒ‹–¼‚̑Ήž‚ÍÀ•Wƒf[ƒ^‚Æ“¯‚¶‚Å‚ ‚éD
-
-ˆÈãD
diff --git a/texmf-dist/scripts/ketcindy/data/polyhedrons_obj/READMEj(mitani).txt b/texmf-dist/scripts/ketcindy/data/polyhedrons_obj/READMEj(mitani).txt
deleted file mode 100644
index 262fff5b..00000000
--- a/texmf-dist/scripts/ketcindy/data/polyhedrons_obj/READMEj(mitani).txt
+++ /dev/null
@@ -1,7 +0,0 @@
-OBJŒ`Ž®‚ÌÀ•Wƒf[ƒ^‚ɂ‚¢‚Ä
-
-¬—ÑŽA—é–ØŽ‚ª¶¬‚µ‚½®–Ê“Ê‘½–Ê‘Ìi‚y-‘½–Ê‘Ìj‚ÌÀ•Wƒf[ƒ^‚ðOBJŒ`Ž®‚É•ÏX‚µ‚½‚à‚Ì‚Å‚·B
-ƒf[ƒ^‚Ì“à—e‚ɂ‚¢‚Ä‚ÍA‚±‚̃tƒ@ƒCƒ‹‚Æ“¯«‚³‚ê‚Ä‚¢‚éREADMEj(kobayashi-suzuki).txt‚ð‚²——‚­‚¾‚³‚¢B
-
-2007”N8ŒŽ27“ú
-ŽO’Jƒ jmitani@gmail.com
diff --git a/texmf-dist/scripts/ketcindy/data/polyhedrons_obj/a03.obj b/texmf-dist/scripts/ketcindy/data/polyhedrons_obj/a03.obj
deleted file mode 100644
index 2259162a..00000000
--- a/texmf-dist/scripts/ketcindy/data/polyhedrons_obj/a03.obj
+++ /dev/null
@@ -1,14 +0,0 @@
-v -0.70710678 -0.40824829 0.57735027
-v 0.00000000 0.81649658 0.57735027
-v 0.70710678 -0.40824829 0.57735027
-v -0.00000000 -0.81649658 -0.57735027
-v -0.70710678 0.40824829 -0.57735027
-v 0.70710678 0.40824829 -0.57735027
-f 1 2 5
-f 1 5 4
-f 1 4 3
-f 1 3 2
-f 2 3 6
-f 2 6 5
-f 3 4 6
-f 4 5 6
diff --git a/texmf-dist/scripts/ketcindy/data/polyhedrons_obj/a04.obj b/texmf-dist/scripts/ketcindy/data/polyhedrons_obj/a04.obj
deleted file mode 100644
index 552dd092..00000000
--- a/texmf-dist/scripts/ketcindy/data/polyhedrons_obj/a04.obj
+++ /dev/null
@@ -1,18 +0,0 @@
-v -0.60778126 -0.60778126 0.51108108
-v -0.60778126 0.60778126 0.51108108
-v 0.60778126 0.60778126 0.51108108
-v 0.60778126 -0.60778126 0.51108108
-v -0.00000000 -0.85953250 -0.51108108
-v -0.85953250 0.00000000 -0.51108108
-v 0.00000000 0.85953250 -0.51108108
-v 0.85953250 -0.00000000 -0.51108108
-f 1 2 6
-f 1 6 5
-f 1 5 4
-f 1 4 3 2
-f 2 3 7
-f 2 7 6
-f 3 4 8
-f 3 8 7
-f 4 5 8
-f 5 6 7 8
diff --git a/texmf-dist/scripts/ketcindy/data/polyhedrons_obj/a05.obj b/texmf-dist/scripts/ketcindy/data/polyhedrons_obj/a05.obj
deleted file mode 100644
index 0ad84696..00000000
--- a/texmf-dist/scripts/ketcindy/data/polyhedrons_obj/a05.obj
+++ /dev/null
@@ -1,22 +0,0 @@
-v -0.52573111 -0.72360680 0.44721360
-v -0.85065081 0.27639320 0.44721360
-v 0.00000000 0.89442719 0.44721360
-v 0.85065081 0.27639320 0.44721360
-v 0.52573111 -0.72360680 0.44721360
-v -0.00000000 -0.89442719 -0.44721360
-v -0.85065081 -0.27639320 -0.44721360
-v -0.52573111 0.72360680 -0.44721360
-v 0.52573111 0.72360680 -0.44721360
-v 0.85065081 -0.27639320 -0.44721360
-f 1 2 7
-f 1 7 6
-f 1 6 5
-f 1 5 4 3 2
-f 2 3 8
-f 2 8 7
-f 3 4 9
-f 3 9 8
-f 4 5 10
-f 4 10 9
-f 5 6 10
-f 6 7 8 9 10
diff --git a/texmf-dist/scripts/ketcindy/data/polyhedrons_obj/a06.obj b/texmf-dist/scripts/ketcindy/data/polyhedrons_obj/a06.obj
deleted file mode 100644
index fa5467aa..00000000
--- a/texmf-dist/scripts/ketcindy/data/polyhedrons_obj/a06.obj
+++ /dev/null
@@ -1,26 +0,0 @@
-v -0.45970084 -0.79622522 0.39331989
-v -0.91940169 0.00000000 0.39331989
-v -0.45970084 0.79622522 0.39331989
-v 0.45970084 0.79622522 0.39331989
-v 0.91940169 -0.00000000 0.39331989
-v 0.45970084 -0.79622522 0.39331989
-v -0.00000000 -0.91940169 -0.39331989
-v -0.79622522 -0.45970084 -0.39331989
-v -0.79622522 0.45970084 -0.39331989
-v 0.00000000 0.91940169 -0.39331989
-v 0.79622522 0.45970084 -0.39331989
-v 0.79622522 -0.45970084 -0.39331989
-f 1 2 8
-f 1 8 7
-f 1 7 6
-f 1 6 5 4 3 2
-f 2 3 9
-f 2 9 8
-f 3 4 10
-f 3 10 9
-f 4 5 11
-f 4 11 10
-f 5 6 12
-f 5 12 11
-f 6 7 12
-f 7 8 9 10 11 12
diff --git a/texmf-dist/scripts/ketcindy/data/polyhedrons_obj/a07.obj b/texmf-dist/scripts/ketcindy/data/polyhedrons_obj/a07.obj
deleted file mode 100644
index 17d011c5..00000000
--- a/texmf-dist/scripts/ketcindy/data/polyhedrons_obj/a07.obj
+++ /dev/null
@@ -1,30 +0,0 @@
-v -0.40659420 -0.84430155 0.34905022
-v -0.91360887 -0.20852526 0.34905022
-v -0.73265743 0.58427480 0.34905022
-v 0.00000000 0.93710402 0.34905022
-v 0.73265743 0.58427480 0.34905022
-v 0.91360887 -0.20852526 0.34905022
-v 0.40659420 -0.84430155 0.34905022
-v -0.00000000 -0.93710402 -0.34905022
-v -0.73265743 -0.58427480 -0.34905022
-v -0.91360887 0.20852526 -0.34905022
-v -0.40659420 0.84430155 -0.34905022
-v 0.40659420 0.84430155 -0.34905022
-v 0.91360887 0.20852526 -0.34905022
-v 0.73265742 -0.58427480 -0.34905022
-f 1 2 9
-f 1 9 8
-f 1 8 7
-f 1 7 6 5 4 3 2
-f 2 3 10
-f 2 10 9
-f 3 4 11
-f 3 11 10
-f 4 5 12
-f 4 12 11
-f 5 6 13
-f 5 13 12
-f 6 7 14
-f 6 14 13
-f 7 8 14
-f 8 9 10 11 12 13 14
diff --git a/texmf-dist/scripts/ketcindy/data/polyhedrons_obj/a08.obj b/texmf-dist/scripts/ketcindy/data/polyhedrons_obj/a08.obj
deleted file mode 100644
index 2235341d..00000000
--- a/texmf-dist/scripts/ketcindy/data/polyhedrons_obj/a08.obj
+++ /dev/null
@@ -1,34 +0,0 @@
-v -0.36349134 -0.87754573 0.31270999
-v -0.87754573 -0.36349134 0.31270999
-v -0.87754573 0.36349134 0.31270999
-v -0.36349134 0.87754573 0.31270999
-v 0.36349134 0.87754573 0.31270999
-v 0.87754573 0.36349134 0.31270999
-v 0.87754573 -0.36349134 0.31270999
-v 0.36349134 -0.87754573 0.31270999
-v -0.00000000 -0.94984865 -0.31270999
-v -0.67164442 -0.67164442 -0.31270999
-v -0.94984865 0.00000000 -0.31270999
-v -0.67164442 0.67164442 -0.31270999
-v 0.00000000 0.94984865 -0.31270999
-v 0.67164442 0.67164442 -0.31270999
-v 0.94984865 -0.00000000 -0.31270999
-v 0.67164442 -0.67164442 -0.31270999
-f 1 2 10
-f 1 10 9
-f 1 9 8
-f 1 8 7 6 5 4 3 2
-f 2 3 11
-f 2 11 10
-f 3 4 12
-f 3 12 11
-f 4 5 13
-f 4 13 12
-f 5 6 14
-f 5 14 13
-f 6 7 15
-f 6 15 14
-f 7 8 16
-f 7 16 15
-f 8 9 16
-f 9 10 11 12 13 14 15 16
diff --git a/texmf-dist/scripts/ketcindy/data/polyhedrons_obj/a09.obj b/texmf-dist/scripts/ketcindy/data/polyhedrons_obj/a09.obj
deleted file mode 100644
index 79e22eca..00000000
--- a/texmf-dist/scripts/ketcindy/data/polyhedrons_obj/a09.obj
+++ /dev/null
@@ -1,38 +0,0 @@
-v -0.32807418 -0.90137641 0.28264447
-v -0.83071299 -0.47961237 0.28264447
-v -0.94465196 0.16656763 0.28264447
-v -0.61657778 0.73480878 0.28264447
-v 0.00000000 0.95922474 0.28264447
-v 0.61657778 0.73480878 0.28264447
-v 0.94465196 0.16656763 0.28264447
-v 0.83071299 -0.47961237 0.28264447
-v 0.32807418 -0.90137641 0.28264447
-v -0.00000000 -0.95922474 -0.28264447
-v -0.61657778 -0.73480878 -0.28264447
-v -0.94465196 -0.16656763 -0.28264447
-v -0.83071299 0.47961237 -0.28264447
-v -0.32807418 0.90137641 -0.28264447
-v 0.32807418 0.90137641 -0.28264447
-v 0.83071299 0.47961237 -0.28264447
-v 0.94465196 -0.16656763 -0.28264447
-v 0.61657778 -0.73480878 -0.28264447
-f 1 2 11
-f 1 11 10
-f 1 10 9
-f 1 9 8 7 6 5 4 3 2
-f 2 3 12
-f 2 12 11
-f 3 4 13
-f 3 13 12
-f 4 5 14
-f 4 14 13
-f 5 6 15
-f 5 15 14
-f 6 7 16
-f 6 16 15
-f 7 8 17
-f 7 17 16
-f 8 9 18
-f 8 18 17
-f 9 10 18
-f 10 11 12 13 14 15 16 17 18
diff --git a/texmf-dist/scripts/ketcindy/data/polyhedrons_obj/a10.obj b/texmf-dist/scripts/ketcindy/data/polyhedrons_obj/a10.obj
deleted file mode 100644
index cc602ba2..00000000
--- a/texmf-dist/scripts/ketcindy/data/polyhedrons_obj/a10.obj
+++ /dev/null
@@ -1,42 +0,0 @@
-v -0.29859575 -0.91898322 0.25750808
-v -0.78173382 -0.56796287 0.25750808
-v -0.96627614 0.00000000 0.25750808
-v -0.78173382 0.56796287 0.25750808
-v -0.29859575 0.91898322 0.25750808
-v 0.29859575 0.91898322 0.25750808
-v 0.78173382 0.56796287 0.25750808
-v 0.96627614 -0.00000000 0.25750808
-v 0.78173382 -0.56796287 0.25750808
-v 0.29859575 -0.91898322 0.25750808
-v -0.00000000 -0.96627614 -0.25750808
-v -0.56796287 -0.78173382 -0.25750808
-v -0.91898322 -0.29859575 -0.25750808
-v -0.91898322 0.29859575 -0.25750808
-v -0.56796287 0.78173382 -0.25750808
-v 0.00000000 0.96627615 -0.25750808
-v 0.56796287 0.78173382 -0.25750808
-v 0.91898322 0.29859575 -0.25750808
-v 0.91898322 -0.29859575 -0.25750808
-v 0.56796287 -0.78173382 -0.25750808
-f 1 2 12
-f 1 12 11
-f 1 11 10
-f 1 10 9 8 7 6 5 4 3 2
-f 2 3 13
-f 2 13 12
-f 3 4 14
-f 3 14 13
-f 4 5 15
-f 4 15 14
-f 5 6 16
-f 5 16 15
-f 6 7 17
-f 6 17 16
-f 7 8 18
-f 7 18 17
-f 8 9 19
-f 8 19 18
-f 9 10 20
-f 9 20 19
-f 10 11 20
-f 11 12 13 14 15 16 17 18 19 20
diff --git a/texmf-dist/scripts/ketcindy/data/polyhedrons_obj/n01.obj b/texmf-dist/scripts/ketcindy/data/polyhedrons_obj/n01.obj
deleted file mode 100644
index 70574b60..00000000
--- a/texmf-dist/scripts/ketcindy/data/polyhedrons_obj/n01.obj
+++ /dev/null
@@ -1,10 +0,0 @@
-v -0.69337525 -0.69337525 0.19611614
-v -0.69337525 0.69337525 0.19611614
-v 0.69337525 0.69337525 0.19611614
-v 0.69337525 -0.69337525 0.19611614
-v 0.00000000 0.00000000 -0.78446454
-f 1 2 5
-f 1 5 4
-f 1 4 3 2
-f 2 3 5
-f 3 4 5
diff --git a/texmf-dist/scripts/ketcindy/data/polyhedrons_obj/n02.obj b/texmf-dist/scripts/ketcindy/data/polyhedrons_obj/n02.obj
deleted file mode 100644
index e279a395..00000000
--- a/texmf-dist/scripts/ketcindy/data/polyhedrons_obj/n02.obj
+++ /dev/null
@@ -1,12 +0,0 @@
-v -0.58469160 -0.80475895 0.10246352
-v -0.94605088 0.30739056 0.10246352
-v 0.00000000 0.99473676 0.10246352
-v 0.94605088 0.30739056 0.10246352
-v 0.58469160 -0.80475895 0.10246352
-v 0.00000000 0.00000000 -0.51231761
-f 1 2 6
-f 1 6 5
-f 1 5 4 3 2
-f 2 3 6
-f 3 4 6
-f 4 5 6
diff --git a/texmf-dist/scripts/ketcindy/data/polyhedrons_obj/n03.obj b/texmf-dist/scripts/ketcindy/data/polyhedrons_obj/n03.obj
deleted file mode 100644
index 72508077..00000000
--- a/texmf-dist/scripts/ketcindy/data/polyhedrons_obj/n03.obj
+++ /dev/null
@@ -1,17 +0,0 @@
-v -0.48245064 -0.83562902 0.26261287
-v -0.96490128 0.00000000 0.26261287
-v -0.48245064 0.83562902 0.26261287
-v 0.48245064 0.83562902 0.26261287
-v 0.96490128 -0.00000000 0.26261287
-v 0.48245064 -0.83562902 0.26261287
-v -0.48245064 -0.27854301 -0.52522573
-v 0.00000000 0.55708601 -0.52522573
-v 0.48245064 -0.27854301 -0.52522573
-f 1 2 7
-f 1 7 9 6
-f 1 6 5 4 3 2
-f 2 3 8 7
-f 3 4 8
-f 4 5 9 8
-f 5 6 9
-f 7 8 9
diff --git a/texmf-dist/scripts/ketcindy/data/polyhedrons_obj/n04.obj b/texmf-dist/scripts/ketcindy/data/polyhedrons_obj/n04.obj
deleted file mode 100644
index 03abdf63..00000000
--- a/texmf-dist/scripts/ketcindy/data/polyhedrons_obj/n04.obj
+++ /dev/null
@@ -1,22 +0,0 @@
-v -0.37660445 -0.90920356 0.17753304
-v -0.90920356 -0.37660445 0.17753304
-v -0.90920356 0.37660445 0.17753304
-v -0.37660445 0.90920356 0.17753304
-v 0.37660445 0.90920356 0.17753304
-v 0.90920356 0.37660445 0.17753304
-v 0.90920356 -0.37660445 0.17753304
-v 0.37660445 -0.90920356 0.17753304
-v 0.00000000 -0.53259911 -0.35506608
-v -0.53259911 0.00000000 -0.35506608
-v 0.00000000 0.53259911 -0.35506608
-v 0.53259911 -0.00000000 -0.35506608
-f 1 2 10 9
-f 1 9 8
-f 1 8 7 6 5 4 3 2
-f 2 3 10
-f 3 4 11 10
-f 4 5 11
-f 5 6 12 11
-f 6 7 12
-f 7 8 9 12
-f 9 10 11 12
diff --git a/texmf-dist/scripts/ketcindy/data/polyhedrons_obj/n05.obj b/texmf-dist/scripts/ketcindy/data/polyhedrons_obj/n05.obj
deleted file mode 100644
index 7e79daa2..00000000
--- a/texmf-dist/scripts/ketcindy/data/polyhedrons_obj/n05.obj
+++ /dev/null
@@ -1,27 +0,0 @@
-v -0.30722035 -0.94552702 0.10767686
-v -0.80431332 -0.58436784 0.10767686
-v -0.99418594 0.00000000 0.10767686
-v -0.80431332 0.58436784 0.10767686
-v -0.30722035 0.94552702 0.10767686
-v 0.30722035 0.94552702 0.10767686
-v 0.80431332 0.58436784 0.10767686
-v 0.99418594 -0.00000000 0.10767686
-v 0.80431332 -0.58436784 0.10767686
-v 0.30722035 -0.94552702 0.10767686
-v -0.30722035 -0.42285254 -0.21535373
-v -0.49709297 0.16151530 -0.21535373
-v 0.00000000 0.52267448 -0.21535373
-v 0.49709297 0.16151530 -0.21535373
-v 0.30722035 -0.42285254 -0.21535373
-f 1 2 11
-f 1 11 15 10
-f 1 10 9 8 7 6 5 4 3 2
-f 2 3 12 11
-f 3 4 12
-f 4 5 13 12
-f 5 6 13
-f 6 7 14 13
-f 7 8 14
-f 8 9 15 14
-f 9 10 15
-f 11 12 13 14 15
diff --git a/texmf-dist/scripts/ketcindy/data/polyhedrons_obj/n06.obj b/texmf-dist/scripts/ketcindy/data/polyhedrons_obj/n06.obj
deleted file mode 100644
index f93e9b72..00000000
--- a/texmf-dist/scripts/ketcindy/data/polyhedrons_obj/n06.obj
+++ /dev/null
@@ -1,37 +0,0 @@
-v -0.29220218 -0.89930585 0.32537191
-v -0.76499524 -0.55580158 0.32537191
-v -0.94558612 0.00000000 0.32537191
-v -0.76499524 0.55580158 0.32537191
-v -0.29220218 0.89930585 0.32537191
-v 0.29220218 0.89930585 0.32537191
-v 0.76499524 0.55580158 0.32537191
-v 0.94558612 -0.00000000 0.32537191
-v 0.76499524 -0.55580158 0.32537191
-v 0.29220218 -0.89930585 0.32537191
-v 0.00000000 -0.80436360 -0.17175213
-v -0.76499524 -0.24856202 -0.17175213
-v -0.47279306 0.65074382 -0.17175213
-v 0.47279306 0.65074382 -0.17175213
-v 0.76499524 -0.24856202 -0.17175213
-v -0.29220218 -0.40218180 -0.47899169
-v -0.47279306 0.15361978 -0.47899169
-v 0.00000000 0.49712404 -0.47899169
-v 0.47279306 0.15361978 -0.47899169
-v 0.29220218 -0.40218180 -0.47899169
-f 1 2 12 16 11
-f 1 11 10
-f 1 10 9 8 7 6 5 4 3 2
-f 2 3 12
-f 3 4 13 17 12
-f 4 5 13
-f 5 6 14 18 13
-f 6 7 14
-f 7 8 15 19 14
-f 8 9 15
-f 9 10 11 20 15
-f 11 16 20
-f 12 17 16
-f 13 18 17
-f 14 19 18
-f 15 20 19
-f 16 17 18 19 20
diff --git a/texmf-dist/scripts/ketcindy/data/polyhedrons_obj/n07.obj b/texmf-dist/scripts/ketcindy/data/polyhedrons_obj/n07.obj
deleted file mode 100644
index 529d40b7..00000000
--- a/texmf-dist/scripts/ketcindy/data/polyhedrons_obj/n07.obj
+++ /dev/null
@@ -1,14 +0,0 @@
-v -0.44309521 -0.25582114 0.27642855
-v 0.00000000 0.51164228 0.27642855
-v 0.44309521 -0.25582114 0.27642855
-v -0.44309521 -0.25582114 -0.60976188
-v 0.00000000 0.51164228 -0.60976188
-v 0.44309521 -0.25582114 -0.60976188
-v -0.00000000 -0.00000000 1.00000000
-f 1 2 5 4
-f 1 4 6 3
-f 1 3 7
-f 1 7 2
-f 2 3 6 5
-f 2 7 3
-f 4 5 6
diff --git a/texmf-dist/scripts/ketcindy/data/polyhedrons_obj/n08.obj b/texmf-dist/scripts/ketcindy/data/polyhedrons_obj/n08.obj
deleted file mode 100644
index 09205712..00000000
--- a/texmf-dist/scripts/ketcindy/data/polyhedrons_obj/n08.obj
+++ /dev/null
@@ -1,18 +0,0 @@
-v -0.34099026 -0.46599026 0.46599026
-v -0.34099026 0.46599026 0.46599026
-v 0.59099026 0.46599026 0.46599026
-v 0.59099026 -0.46599026 0.46599026
-v -0.34099026 -0.46599026 -0.46599026
-v -0.34099026 0.46599026 -0.46599026
-v 0.59099026 0.46599026 -0.46599026
-v 0.59099026 -0.46599026 -0.46599026
-v -1.00000000 0.00000000 -0.00000000
-f 1 5 8 4
-f 1 4 3 2
-f 1 2 9
-f 1 9 5
-f 2 3 7 6
-f 2 6 9
-f 3 4 8 7
-f 5 6 7 8
-f 5 9 6
diff --git a/texmf-dist/scripts/ketcindy/data/polyhedrons_obj/n09.obj b/texmf-dist/scripts/ketcindy/data/polyhedrons_obj/n09.obj
deleted file mode 100644
index e7b7c9a7..00000000
--- a/texmf-dist/scripts/ketcindy/data/polyhedrons_obj/n09.obj
+++ /dev/null
@@ -1,22 +0,0 @@
-v -0.48211943 -0.66358047 0.39220581
-v -0.78008563 0.25346519 0.39220581
-v -0.00000000 0.82023057 0.39220581
-v 0.78008563 0.25346519 0.39220581
-v 0.48211943 -0.66358047 0.39220581
-v -0.48211943 -0.66358047 -0.57203305
-v -0.78008563 0.25346519 -0.57203305
-v 0.00000000 0.82023057 -0.57203305
-v 0.78008563 0.25346519 -0.57203305
-v 0.48211943 -0.66358047 -0.57203305
-v 0.00000000 0.00000000 0.89913619
-f 1 2 7 6
-f 1 6 10 5
-f 1 5 11
-f 1 11 2
-f 2 3 8 7
-f 2 11 3
-f 3 4 9 8
-f 3 11 4
-f 4 5 10 9
-f 4 11 5
-f 6 7 8 9 10
diff --git a/texmf-dist/scripts/ketcindy/data/polyhedrons_obj/n10.obj b/texmf-dist/scripts/ketcindy/data/polyhedrons_obj/n10.obj
deleted file mode 100644
index 012f40ee..00000000
--- a/texmf-dist/scripts/ketcindy/data/polyhedrons_obj/n10.obj
+++ /dev/null
@@ -1,22 +0,0 @@
-v -0.49886702 -0.49886702 0.29449549
-v -0.49886702 0.49886702 0.29449549
-v 0.49886702 0.49886702 0.29449549
-v 0.49886702 -0.49886702 0.29449549
-v 0.00000000 -0.70550451 -0.54449549
-v -0.70550451 0.00000000 -0.54449549
-v 0.00000000 0.70550451 -0.54449549
-v 0.70550451 -0.00000000 -0.54449549
-v 0.00000000 0.00000000 1.00000000
-f 1 2 6
-f 1 6 5
-f 1 5 4
-f 1 4 9
-f 1 9 2
-f 2 3 7
-f 2 7 6
-f 2 9 3
-f 3 4 8
-f 3 8 7
-f 3 9 4
-f 4 5 8
-f 5 6 7 8
diff --git a/texmf-dist/scripts/ketcindy/data/polyhedrons_obj/n11.obj b/texmf-dist/scripts/ketcindy/data/polyhedrons_obj/n11.obj
deleted file mode 100644
index 291356f8..00000000
--- a/texmf-dist/scripts/ketcindy/data/polyhedrons_obj/n11.obj
+++ /dev/null
@@ -1,27 +0,0 @@
-v -0.50365704 -0.69322445 0.34134421
-v -0.81493421 0.26478818 0.34134421
-v -0.00000000 0.85687254 0.34134421
-v 0.81493421 0.26478818 0.34134421
-v 0.50365704 -0.69322445 0.34134421
-v 0.00000000 -0.85687254 -0.51552833
-v -0.81493421 -0.26478818 -0.51552833
-v -0.50365704 0.69322444 -0.51552833
-v 0.50365704 0.69322444 -0.51552833
-v 0.81493421 -0.26478818 -0.51552833
-v 0.00000000 0.00000000 0.87092056
-f 1 2 7
-f 1 7 6
-f 1 6 5
-f 1 5 11
-f 1 11 2
-f 2 3 8
-f 2 8 7
-f 2 11 3
-f 3 4 9
-f 3 9 8
-f 3 11 4
-f 4 5 10
-f 4 10 9
-f 4 11 5
-f 5 6 10
-f 6 7 8 9 10
diff --git a/texmf-dist/scripts/ketcindy/data/polyhedrons_obj/n12.obj b/texmf-dist/scripts/ketcindy/data/polyhedrons_obj/n12.obj
deleted file mode 100644
index 4513f468..00000000
--- a/texmf-dist/scripts/ketcindy/data/polyhedrons_obj/n12.obj
+++ /dev/null
@@ -1,11 +0,0 @@
-v -0.61237244 -0.35355339 0.00000000
-v 0.61237244 -0.35355339 0.00000000
-v 0.00000000 0.00000000 -1.00000000
-v 0.00000000 0.70710678 0.00000000
-v 0.00000000 0.00000000 1.00000000
-f 1 4 3
-f 1 3 2
-f 1 2 5
-f 1 5 4
-f 2 3 4
-f 2 4 5
diff --git a/texmf-dist/scripts/ketcindy/data/polyhedrons_obj/n13.obj b/texmf-dist/scripts/ketcindy/data/polyhedrons_obj/n13.obj
deleted file mode 100644
index ba77013e..00000000
--- a/texmf-dist/scripts/ketcindy/data/polyhedrons_obj/n13.obj
+++ /dev/null
@@ -1,17 +0,0 @@
-v -0.58778525 -0.80901699 0.00000000
-v -0.95105652 0.30901699 0.00000000
-v -0.00000000 1.00000000 0.00000000
-v 0.95105652 0.30901699 0.00000000
-v 0.58778525 -0.80901699 0.00000000
-v 0.00000000 0.00000000 -0.61803399
-v 0.00000000 0.00000000 0.61803399
-f 1 2 6
-f 1 6 5
-f 1 5 7
-f 1 7 2
-f 2 3 6
-f 2 7 3
-f 3 4 6
-f 3 7 4
-f 4 5 6
-f 4 7 5
diff --git a/texmf-dist/scripts/ketcindy/data/polyhedrons_obj/n14.obj b/texmf-dist/scripts/ketcindy/data/polyhedrons_obj/n14.obj
deleted file mode 100644
index 066ad4d0..00000000
--- a/texmf-dist/scripts/ketcindy/data/polyhedrons_obj/n14.obj
+++ /dev/null
@@ -1,17 +0,0 @@
-v -0.37979590 -0.21927526 0.37979590
-v 0.00000000 0.43855053 0.37979590
-v 0.37979590 -0.21927526 0.37979590
-v -0.37979590 -0.21927526 -0.37979590
-v 0.00000000 0.43855053 -0.37979590
-v 0.37979590 -0.21927526 -0.37979590
-v -0.00000000 -0.00000000 1.00000000
-v -0.00000000 0.00000000 -1.00000000
-f 1 2 5 4
-f 1 4 6 3
-f 1 3 7
-f 1 7 2
-f 2 3 6 5
-f 2 7 3
-f 4 5 8
-f 4 8 6
-f 5 6 8
diff --git a/texmf-dist/scripts/ketcindy/data/polyhedrons_obj/n15.obj b/texmf-dist/scripts/ketcindy/data/polyhedrons_obj/n15.obj
deleted file mode 100644
index cce594a8..00000000
--- a/texmf-dist/scripts/ketcindy/data/polyhedrons_obj/n15.obj
+++ /dev/null
@@ -1,22 +0,0 @@
-v -0.41421356 -0.41421356 0.41421356
-v -0.41421356 0.41421356 0.41421356
-v 0.41421356 0.41421356 0.41421356
-v 0.41421356 -0.41421356 0.41421356
-v -0.41421356 -0.41421356 -0.41421356
-v -0.41421356 0.41421356 -0.41421356
-v 0.41421356 0.41421356 -0.41421356
-v 0.41421356 -0.41421356 -0.41421356
-v -1.00000000 0.00000000 -0.00000000
-v 1.00000000 -0.00000000 -0.00000000
-f 1 5 8 4
-f 1 4 3 2
-f 1 2 9
-f 1 9 5
-f 2 3 7 6
-f 2 6 9
-f 3 4 10
-f 3 10 7
-f 4 8 10
-f 5 6 7 8
-f 5 9 6
-f 7 10 8
diff --git a/texmf-dist/scripts/ketcindy/data/polyhedrons_obj/n16.obj b/texmf-dist/scripts/ketcindy/data/polyhedrons_obj/n16.obj
deleted file mode 100644
index 5222ab17..00000000
--- a/texmf-dist/scripts/ketcindy/data/polyhedrons_obj/n16.obj
+++ /dev/null
@@ -1,27 +0,0 @@
-v -0.48745718 -0.67092726 0.48745718
-v -0.78872229 0.25627141 0.48745718
-v -0.00000000 0.82931170 0.48745718
-v 0.78872229 0.25627141 0.48745718
-v 0.48745718 -0.67092726 0.48745718
-v -0.48745718 -0.67092726 -0.48745718
-v -0.78872229 0.25627141 -0.48745718
-v 0.00000000 0.82931170 -0.48745718
-v 0.78872229 0.25627141 -0.48745718
-v 0.48745718 -0.67092726 -0.48745718
-v 0.00000000 0.00000000 1.00000000
-v 0.00000000 0.00000000 -1.00000000
-f 1 2 7 6
-f 1 6 10 5
-f 1 5 11
-f 1 11 2
-f 2 3 8 7
-f 2 11 3
-f 3 4 9 8
-f 3 11 4
-f 4 5 10 9
-f 4 11 5
-f 6 7 12
-f 6 12 10
-f 7 8 12
-f 8 9 12
-f 9 10 12
diff --git a/texmf-dist/scripts/ketcindy/data/polyhedrons_obj/n17.obj b/texmf-dist/scripts/ketcindy/data/polyhedrons_obj/n17.obj
deleted file mode 100644
index 5bafb396..00000000
--- a/texmf-dist/scripts/ketcindy/data/polyhedrons_obj/n17.obj
+++ /dev/null
@@ -1,26 +0,0 @@
-v -0.44343735 -0.44343735 0.37288488
-v -0.44343735 0.44343735 0.37288488
-v 0.44343735 0.44343735 0.37288488
-v 0.44343735 -0.44343735 0.37288488
-v 0.00000000 -0.62711512 -0.37288488
-v -0.62711512 0.00000000 -0.37288488
-v 0.00000000 0.62711512 -0.37288488
-v 0.62711512 -0.00000000 -0.37288488
-v 0.00000000 0.00000000 1.00000000
-v 0.00000000 0.00000000 -1.00000000
-f 1 2 6
-f 1 6 5
-f 1 5 4
-f 1 4 9
-f 1 9 2
-f 2 3 7
-f 2 7 6
-f 2 9 3
-f 3 4 8
-f 3 8 7
-f 3 9 4
-f 4 5 8
-f 5 6 10
-f 5 10 8
-f 6 7 10
-f 7 8 10
diff --git a/texmf-dist/scripts/ketcindy/data/polyhedrons_obj/n18.obj b/texmf-dist/scripts/ketcindy/data/polyhedrons_obj/n18.obj
deleted file mode 100644
index 11416d75..00000000
--- a/texmf-dist/scripts/ketcindy/data/polyhedrons_obj/n18.obj
+++ /dev/null
@@ -1,29 +0,0 @@
-v -0.39744851 -0.68840102 0.18815267
-v -0.79489703 0.00000000 0.18815267
-v -0.39744851 0.68840102 0.18815267
-v 0.39744851 0.68840102 0.18815267
-v 0.79489703 0.00000000 0.18815267
-v 0.39744851 -0.68840102 0.18815267
-v -0.39744851 -0.68840102 -0.60674436
-v -0.79489703 0.00000000 -0.60674436
-v -0.39744851 0.68840102 -0.60674436
-v 0.39744851 0.68840102 -0.60674436
-v 0.79489703 -0.00000000 -0.60674436
-v 0.39744851 -0.68840102 -0.60674436
-v 0.00000000 -0.45893401 0.83718338
-v 0.39744851 0.22946701 0.83718338
-v -0.39744851 0.22946701 0.83718338
-f 1 2 8 7
-f 1 7 12 6
-f 1 6 13
-f 1 13 15 2
-f 2 3 9 8
-f 2 15 3
-f 3 4 10 9
-f 3 15 14 4
-f 4 5 11 10
-f 4 14 5
-f 5 6 12 11
-f 5 14 13 6
-f 7 8 9 10 11 12
-f 13 14 15
diff --git a/texmf-dist/scripts/ketcindy/data/polyhedrons_obj/n19.obj b/texmf-dist/scripts/ketcindy/data/polyhedrons_obj/n19.obj
deleted file mode 100644
index 6942d041..00000000
--- a/texmf-dist/scripts/ketcindy/data/polyhedrons_obj/n19.obj
+++ /dev/null
@@ -1,38 +0,0 @@
-v -0.33282985 -0.80352235 0.17212538
-v -0.80352235 -0.33282985 0.17212538
-v -0.80352235 0.33282985 0.17212538
-v -0.33282985 0.80352235 0.17212538
-v 0.33282985 0.80352235 0.17212538
-v 0.80352235 0.33282985 0.17212538
-v 0.80352235 -0.33282985 0.17212538
-v 0.33282985 -0.80352235 0.17212538
-v -0.33282985 -0.80352235 -0.49353432
-v -0.80352235 -0.33282985 -0.49353432
-v -0.80352235 0.33282985 -0.49353432
-v -0.33282985 0.80352235 -0.49353432
-v 0.33282985 0.80352235 -0.49353432
-v 0.80352235 0.33282985 -0.49353432
-v 0.80352235 -0.33282985 -0.49353432
-v 0.33282985 -0.80352235 -0.49353432
-v -0.33282985 -0.33282985 0.64281788
-v 0.33282985 -0.33282985 0.64281788
-v 0.33282985 0.33282985 0.64281788
-v -0.33282985 0.33282985 0.64281788
-f 1 2 10 9
-f 1 9 16 8
-f 1 8 18 17
-f 1 17 2
-f 2 3 11 10
-f 2 17 20 3
-f 3 4 12 11
-f 3 20 4
-f 4 5 13 12
-f 4 20 19 5
-f 5 6 14 13
-f 5 19 6
-f 6 7 15 14
-f 6 19 18 7
-f 7 8 16 15
-f 7 18 8
-f 9 10 11 12 13 14 15 16
-f 17 18 19 20
diff --git a/texmf-dist/scripts/ketcindy/data/polyhedrons_obj/n20.obj b/texmf-dist/scripts/ketcindy/data/polyhedrons_obj/n20.obj
deleted file mode 100644
index 48711e26..00000000
--- a/texmf-dist/scripts/ketcindy/data/polyhedrons_obj/n20.obj
+++ /dev/null
@@ -1,47 +0,0 @@
-v -0.28328429 -0.87185940 -0.16705489
-v -0.74164790 -0.53883874 -0.16705489
-v -0.91672723 0.00000000 -0.16705489
-v -0.74164790 0.53883874 -0.16705489
-v -0.28328429 0.87185940 -0.16705489
-v 0.28328429 0.87185940 -0.16705489
-v 0.74164790 0.53883874 -0.16705489
-v 0.91672722 0.00000000 -0.16705489
-v 0.74164790 -0.53883874 -0.16705489
-v 0.28328429 -0.87185940 -0.16705489
-v -0.28328429 -0.38990738 -0.46491762
-v -0.45836361 0.14893137 -0.46491762
-v 0.00000000 0.48195202 -0.46491762
-v 0.45836361 0.14893137 -0.46491762
-v 0.28328429 -0.38990738 -0.46491762
-v -0.28328429 -0.87185940 0.39951370
-v 0.28328429 -0.87185940 0.39951370
-v 0.74164790 -0.53883874 0.39951370
-v 0.91672722 0.00000000 0.39951370
-v 0.74164790 0.53883874 0.39951370
-v 0.28328429 0.87185940 0.39951370
-v -0.28328429 0.87185940 0.39951370
-v -0.74164790 0.53883874 0.39951370
-v -0.91672723 0.00000000 0.39951370
-v -0.74164790 -0.53883874 0.39951370
-f 1 2 11
-f 1 11 15 10
-f 1 10 17 16
-f 1 16 25 2
-f 2 3 12 11
-f 2 25 24 3
-f 3 4 12
-f 3 24 23 4
-f 4 5 13 12
-f 4 23 22 5
-f 5 6 13
-f 5 22 21 6
-f 6 7 14 13
-f 6 21 20 7
-f 7 8 14
-f 7 20 19 8
-f 8 9 15 14
-f 8 19 18 9
-f 9 10 15
-f 9 18 17 10
-f 11 12 13 14 15
-f 16 17 18 19 20 21 22 23 24 25
diff --git a/texmf-dist/scripts/ketcindy/data/polyhedrons_obj/n21.obj b/texmf-dist/scripts/ketcindy/data/polyhedrons_obj/n21.obj
deleted file mode 100644
index be39dcb0..00000000
--- a/texmf-dist/scripts/ketcindy/data/polyhedrons_obj/n21.obj
+++ /dev/null
@@ -1,57 +0,0 @@
-v -0.26010839 -0.80053131 0.01968437
-v -0.68097260 -0.49475556 0.01968437
-v -0.84172843 0.00000000 0.01968437
-v -0.68097260 0.49475556 0.01968437
-v -0.26010839 0.80053131 0.01968437
-v 0.26010839 0.80053131 0.01968437
-v 0.68097260 0.49475556 0.01968437
-v 0.84172843 0.00000000 0.01968437
-v 0.68097260 -0.49475556 0.01968437
-v 0.26010839 -0.80053131 0.01968437
-v 0.00000000 -0.71601697 -0.42283845
-v -0.68097260 -0.22126141 -0.42283845
-v -0.42086421 0.57926990 -0.42283845
-v 0.42086421 0.57926990 -0.42283845
-v 0.68097260 -0.22126141 -0.42283845
-v -0.26010839 -0.35800848 -0.69633260
-v -0.42086421 0.13674707 -0.69633260
-v 0.00000000 0.44252282 -0.69633260
-v 0.42086421 0.13674707 -0.69633260
-v 0.26010839 -0.35800848 -0.69633260
-v -0.26010839 -0.80053131 0.53990115
-v 0.26010839 -0.80053131 0.53990115
-v 0.68097260 -0.49475556 0.53990115
-v 0.84172843 0.00000000 0.53990115
-v 0.68097260 0.49475556 0.53990115
-v 0.26010839 0.80053131 0.53990115
-v -0.26010839 0.80053131 0.53990115
-v -0.68097260 0.49475556 0.53990115
-v -0.84172843 0.00000000 0.53990115
-v -0.68097260 -0.49475556 0.53990115
-f 1 2 12 16 11
-f 1 11 10
-f 1 10 22 21
-f 1 21 30 2
-f 2 3 12
-f 2 30 29 3
-f 3 4 13 17 12
-f 3 29 28 4
-f 4 5 13
-f 4 28 27 5
-f 5 6 14 18 13
-f 5 27 26 6
-f 6 7 14
-f 6 26 25 7
-f 7 8 15 19 14
-f 7 25 24 8
-f 8 9 15
-f 8 24 23 9
-f 9 10 11 20 15
-f 9 23 22 10
-f 11 16 20
-f 12 17 16
-f 13 18 17
-f 14 19 18
-f 15 20 19
-f 16 17 18 19 20
-f 21 22 23 24 25 26 27 28 29 30
diff --git a/texmf-dist/scripts/ketcindy/data/polyhedrons_obj/n22.obj b/texmf-dist/scripts/ketcindy/data/polyhedrons_obj/n22.obj
deleted file mode 100644
index 1dfec909..00000000
--- a/texmf-dist/scripts/ketcindy/data/polyhedrons_obj/n22.obj
+++ /dev/null
@@ -1,35 +0,0 @@
-v -0.41410547 -0.71725171 0.14820052
-v -0.82821094 0.00000000 0.14820052
-v -0.41410547 0.71725171 0.14820052
-v 0.41410547 0.71725171 0.14820052
-v 0.82821094 0.00000000 0.14820052
-v 0.41410547 -0.71725171 0.14820052
-v 0.00000000 -0.82821094 -0.56041649
-v -0.71725171 -0.41410547 -0.56041649
-v -0.71725171 0.41410547 -0.56041649
-v 0.00000000 0.82821094 -0.56041649
-v 0.71725171 0.41410547 -0.56041649
-v 0.71725171 -0.41410547 -0.56041649
-v 0.00000000 -0.47816781 0.82443193
-v 0.41410547 0.23908390 0.82443193
-v -0.41410547 0.23908390 0.82443193
-f 1 2 8
-f 1 8 7
-f 1 7 6
-f 1 6 13
-f 1 13 15 2
-f 2 3 9
-f 2 9 8
-f 2 15 3
-f 3 4 10
-f 3 10 9
-f 3 15 14 4
-f 4 5 11
-f 4 11 10
-f 4 14 5
-f 5 6 12
-f 5 12 11
-f 5 14 13 6
-f 6 7 12
-f 7 8 9 10 11 12
-f 13 14 15
diff --git a/texmf-dist/scripts/ketcindy/data/polyhedrons_obj/n23.obj b/texmf-dist/scripts/ketcindy/data/polyhedrons_obj/n23.obj
deleted file mode 100644
index a7c786ce..00000000
--- a/texmf-dist/scripts/ketcindy/data/polyhedrons_obj/n23.obj
+++ /dev/null
@@ -1,46 +0,0 @@
-v -0.34182948 -0.82524936 0.13857553
-v -0.82524936 -0.34182948 0.13857553
-v -0.82524936 0.34182948 0.13857553
-v -0.34182948 0.82524936 0.13857553
-v 0.34182948 0.82524936 0.13857553
-v 0.82524936 0.34182948 0.13857553
-v 0.82524936 -0.34182948 0.13857553
-v 0.34182948 -0.82524936 0.13857553
-v 0.00000000 -0.89324347 -0.44957324
-v -0.63161852 -0.63161852 -0.44957324
-v -0.89324347 0.00000000 -0.44957324
-v -0.63161852 0.63161852 -0.44957324
-v 0.00000000 0.89324347 -0.44957324
-v 0.63161852 0.63161852 -0.44957324
-v 0.89324347 -0.00000000 -0.44957324
-v 0.63161852 -0.63161852 -0.44957324
-v -0.34182948 -0.34182948 0.62199542
-v 0.34182948 -0.34182948 0.62199542
-v 0.34182948 0.34182948 0.62199542
-v -0.34182948 0.34182948 0.62199542
-f 1 2 10
-f 1 10 9
-f 1 9 8
-f 1 8 18 17
-f 1 17 2
-f 2 3 11
-f 2 11 10
-f 2 17 20 3
-f 3 4 12
-f 3 12 11
-f 3 20 4
-f 4 5 13
-f 4 13 12
-f 4 20 19 5
-f 5 6 14
-f 5 14 13
-f 5 19 6
-f 6 7 15
-f 6 15 14
-f 6 19 18 7
-f 7 8 16
-f 7 16 15
-f 7 18 8
-f 8 9 16
-f 9 10 11 12 13 14 15 16
-f 17 18 19 20
diff --git a/texmf-dist/scripts/ketcindy/data/polyhedrons_obj/n24.obj b/texmf-dist/scripts/ketcindy/data/polyhedrons_obj/n24.obj
deleted file mode 100644
index 95d5834f..00000000
--- a/texmf-dist/scripts/ketcindy/data/polyhedrons_obj/n24.obj
+++ /dev/null
@@ -1,57 +0,0 @@
-v -0.28840390 -0.88761595 -0.13832577
-v -0.75505123 -0.54857683 -0.13832577
-v -0.93329464 0.00000000 -0.13832577
-v -0.75505123 0.54857683 -0.13832577
-v -0.28840391 0.88761595 -0.13832577
-v 0.28840390 0.88761595 -0.13832577
-v 0.75505122 0.54857683 -0.13832577
-v 0.93329464 0.00000000 -0.13832577
-v 0.75505123 -0.54857683 -0.13832577
-v 0.28840391 -0.88761595 -0.13832577
-v -0.28840390 -0.39695392 -0.44157158
-v -0.46664732 0.15162291 -0.44157158
-v 0.00000000 0.49066203 -0.44157158
-v 0.46664732 0.15162291 -0.44157158
-v 0.28840391 -0.39695392 -0.44157158
-v -0.54857683 -0.75505123 0.35911156
-v 0.00000000 -0.93329464 0.35911156
-v 0.54857683 -0.75505123 0.35911156
-v 0.88761595 -0.28840391 0.35911156
-v 0.88761595 0.28840390 0.35911156
-v 0.54857683 0.75505123 0.35911156
-v -0.00000000 0.93329464 0.35911156
-v -0.54857683 0.75505123 0.35911156
-v -0.88761595 0.28840390 0.35911156
-v -0.88761595 -0.28840391 0.35911156
-f 1 2 11
-f 1 11 15 10
-f 1 10 17
-f 1 17 16
-f 1 16 2
-f 2 3 12 11
-f 2 16 25
-f 2 25 3
-f 3 4 12
-f 3 25 24
-f 3 24 4
-f 4 5 13 12
-f 4 24 23
-f 4 23 5
-f 5 6 13
-f 5 23 22
-f 5 22 6
-f 6 7 14 13
-f 6 22 21
-f 6 21 7
-f 7 8 14
-f 7 21 20
-f 7 20 8
-f 8 9 15 14
-f 8 20 19
-f 8 19 9
-f 9 10 15
-f 9 19 18
-f 9 18 10
-f 10 18 17
-f 11 12 13 14 15
-f 16 17 18 19 20 21 22 23 24 25
diff --git a/texmf-dist/scripts/ketcindy/data/polyhedrons_obj/n25.obj b/texmf-dist/scripts/ketcindy/data/polyhedrons_obj/n25.obj
deleted file mode 100644
index e3048519..00000000
--- a/texmf-dist/scripts/ketcindy/data/polyhedrons_obj/n25.obj
+++ /dev/null
@@ -1,67 +0,0 @@
-v -0.26676074 -0.82100515 0.04465919
-v -0.69838870 -0.50740909 0.04465919
-v -0.86325590 0.00000000 0.04465919
-v -0.69838870 0.50740909 0.04465919
-v -0.26676075 0.82100515 0.04465919
-v 0.26676074 0.82100515 0.04465919
-v 0.69838870 0.50740909 0.04465919
-v 0.86325590 0.00000000 0.04465919
-v 0.69838870 -0.50740909 0.04465919
-v 0.26676074 -0.82100515 0.04465919
-v 0.00000000 -0.73432933 -0.40918129
-v -0.69838870 -0.22692024 -0.40918129
-v -0.43162795 0.59408491 -0.40918129
-v 0.43162795 0.59408491 -0.40918129
-v 0.69838870 -0.22692024 -0.40918129
-v -0.26676074 -0.36716467 -0.68967014
-v -0.43162795 0.14024442 -0.68967014
-v 0.00000000 0.45384049 -0.68967014
-v 0.43162795 0.14024442 -0.68967014
-v 0.26676074 -0.36716467 -0.68967014
-v -0.50740909 -0.69838870 0.50476653
-v 0.00000000 -0.86325590 0.50476653
-v 0.50740909 -0.69838870 0.50476653
-v 0.82100515 -0.26676074 0.50476653
-v 0.82100515 0.26676074 0.50476653
-v 0.50740909 0.69838870 0.50476653
-v -0.00000000 0.86325590 0.50476653
-v -0.50740909 0.69838870 0.50476653
-v -0.82100515 0.26676074 0.50476653
-v -0.82100515 -0.26676074 0.50476653
-f 1 2 12 16 11
-f 1 11 10
-f 1 10 22
-f 1 22 21
-f 1 21 2
-f 2 3 12
-f 2 21 30
-f 2 30 3
-f 3 4 13 17 12
-f 3 30 29
-f 3 29 4
-f 4 5 13
-f 4 29 28
-f 4 28 5
-f 5 6 14 18 13
-f 5 28 27
-f 5 27 6
-f 6 7 14
-f 6 27 26
-f 6 26 7
-f 7 8 15 19 14
-f 7 26 25
-f 7 25 8
-f 8 9 15
-f 8 25 24
-f 8 24 9
-f 9 10 11 20 15
-f 9 24 23
-f 9 23 10
-f 10 23 22
-f 11 16 20
-f 12 17 16
-f 13 18 17
-f 14 19 18
-f 15 20 19
-f 16 17 18 19 20
-f 21 22 23 24 25 26 27 28 29 30
diff --git a/texmf-dist/scripts/ketcindy/data/polyhedrons_obj/n26.obj b/texmf-dist/scripts/ketcindy/data/polyhedrons_obj/n26.obj
deleted file mode 100644
index 3eb6d8d7..00000000
--- a/texmf-dist/scripts/ketcindy/data/polyhedrons_obj/n26.obj
+++ /dev/null
@@ -1,16 +0,0 @@
-v -0.25000000 -0.43301270 0.50000000
-v 0.25000000 0.43301270 0.50000000
-v 0.75000000 -0.43301270 0.50000000
-v -0.25000000 -0.43301270 -0.50000000
-v 0.25000000 0.43301270 -0.50000000
-v 0.75000000 -0.43301270 -0.50000000
-v -1.00000000 0.00000000 -0.00000000
-v -0.50000000 0.86602540 0.00000000
-f 1 4 6 3
-f 1 3 2
-f 1 2 8 7
-f 1 7 4
-f 2 3 6 5
-f 2 5 8
-f 4 5 6
-f 4 7 8 5
diff --git a/texmf-dist/scripts/ketcindy/data/polyhedrons_obj/n27.obj b/texmf-dist/scripts/ketcindy/data/polyhedrons_obj/n27.obj
deleted file mode 100644
index 41a03100..00000000
--- a/texmf-dist/scripts/ketcindy/data/polyhedrons_obj/n27.obj
+++ /dev/null
@@ -1,26 +0,0 @@
-v -0.50000000 -0.86602540 0.00000000
-v -1.00000000 0.00000000 0.00000000
-v -0.50000000 0.86602540 0.00000000
-v 0.50000000 0.86602540 0.00000000
-v 1.00000000 -0.00000000 0.00000000
-v 0.50000000 -0.86602540 0.00000000
-v -0.50000000 -0.28867513 -0.81649658
-v 0.00000000 0.57735027 -0.81649658
-v 0.50000000 -0.28867513 -0.81649658
-v -0.50000000 -0.28867513 0.81649658
-v 0.50000000 -0.28867513 0.81649658
-v 0.00000000 0.57735027 0.81649658
-f 1 2 7
-f 1 7 9 6
-f 1 6 11 10
-f 1 10 2
-f 2 3 8 7
-f 2 10 12 3
-f 3 4 8
-f 3 12 4
-f 4 5 9 8
-f 4 12 11 5
-f 5 6 9
-f 5 11 6
-f 7 8 9
-f 10 11 12
diff --git a/texmf-dist/scripts/ketcindy/data/polyhedrons_obj/n28.obj b/texmf-dist/scripts/ketcindy/data/polyhedrons_obj/n28.obj
deleted file mode 100644
index 8d1f142f..00000000
--- a/texmf-dist/scripts/ketcindy/data/polyhedrons_obj/n28.obj
+++ /dev/null
@@ -1,34 +0,0 @@
-v -0.38268343 -0.92387953 -0.00000000
-v -0.92387953 -0.38268343 -0.00000000
-v -0.92387953 0.38268343 -0.00000000
-v -0.38268343 0.92387953 -0.00000000
-v 0.38268343 0.92387953 -0.00000000
-v 0.92387953 0.38268343 -0.00000000
-v 0.92387953 -0.38268343 -0.00000000
-v 0.38268343 -0.92387953 -0.00000000
-v -0.00000000 -0.54119610 -0.54119610
-v -0.54119610 0.00000000 -0.54119610
-v 0.00000000 0.54119610 -0.54119610
-v 0.54119610 -0.00000000 -0.54119610
-v -0.54119610 0.00000000 0.54119610
-v 0.00000000 -0.54119610 0.54119610
-v 0.54119610 -0.00000000 0.54119610
-v -0.00000000 0.54119610 0.54119610
-f 1 2 10 9
-f 1 9 8
-f 1 8 14
-f 1 14 13 2
-f 2 3 10
-f 2 13 3
-f 3 4 11 10
-f 3 13 16 4
-f 4 5 11
-f 4 16 5
-f 5 6 12 11
-f 5 16 15 6
-f 6 7 12
-f 6 15 7
-f 7 8 9 12
-f 7 15 14 8
-f 9 10 11 12
-f 13 14 15 16
diff --git a/texmf-dist/scripts/ketcindy/data/polyhedrons_obj/n29.obj b/texmf-dist/scripts/ketcindy/data/polyhedrons_obj/n29.obj
deleted file mode 100644
index ef7fd148..00000000
--- a/texmf-dist/scripts/ketcindy/data/polyhedrons_obj/n29.obj
+++ /dev/null
@@ -1,34 +0,0 @@
-v -0.38268343 -0.92387953 -0.00000000
-v -0.92387953 -0.38268343 -0.00000000
-v -0.92387953 0.38268343 -0.00000000
-v -0.38268343 0.92387953 -0.00000000
-v 0.38268343 0.92387953 -0.00000000
-v 0.92387953 0.38268343 -0.00000000
-v 0.92387953 -0.38268343 -0.00000000
-v 0.38268343 -0.92387953 -0.00000000
-v 0.00000000 -0.54119610 -0.54119610
-v -0.54119610 0.00000000 -0.54119610
-v 0.00000000 0.54119610 -0.54119610
-v 0.54119610 -0.00000000 -0.54119610
-v -0.38268343 -0.38268343 0.54119610
-v 0.38268343 -0.38268343 0.54119610
-v 0.38268343 0.38268343 0.54119610
-v -0.38268343 0.38268343 0.54119610
-f 1 2 10 9
-f 1 9 8
-f 1 8 14 13
-f 1 13 2
-f 2 3 10
-f 2 13 16 3
-f 3 4 11 10
-f 3 16 4
-f 4 5 11
-f 4 16 15 5
-f 5 6 12 11
-f 5 15 6
-f 6 7 12
-f 6 15 14 7
-f 7 8 9 12
-f 7 14 8
-f 9 10 11 12
-f 13 14 15 16
diff --git a/texmf-dist/scripts/ketcindy/data/polyhedrons_obj/n30.obj b/texmf-dist/scripts/ketcindy/data/polyhedrons_obj/n30.obj
deleted file mode 100644
index 565d361a..00000000
--- a/texmf-dist/scripts/ketcindy/data/polyhedrons_obj/n30.obj
+++ /dev/null
@@ -1,42 +0,0 @@
-v -0.30901699 -0.95105652 0.00000000
-v -0.80901699 -0.58778525 0.00000000
-v -1.00000000 0.00000000 0.00000000
-v -0.80901699 0.58778525 0.00000000
-v -0.30901699 0.95105652 0.00000000
-v 0.30901699 0.95105652 0.00000000
-v 0.80901699 0.58778525 0.00000000
-v 1.00000000 -0.00000000 0.00000000
-v 0.80901699 -0.58778525 0.00000000
-v 0.30901699 -0.95105652 0.00000000
-v -0.30901699 -0.42532540 -0.32491970
-v -0.50000000 0.16245985 -0.32491970
-v 0.00000000 0.52573111 -0.32491970
-v 0.50000000 0.16245985 -0.32491970
-v 0.30901699 -0.42532540 -0.32491970
-v -0.30901699 -0.42532540 0.32491970
-v 0.30901699 -0.42532540 0.32491970
-v 0.50000000 0.16245985 0.32491970
-v -0.00000000 0.52573111 0.32491970
-v -0.50000000 0.16245985 0.32491970
-f 1 2 11
-f 1 11 15 10
-f 1 10 17 16
-f 1 16 2
-f 2 3 12 11
-f 2 16 20 3
-f 3 4 12
-f 3 20 4
-f 4 5 13 12
-f 4 20 19 5
-f 5 6 13
-f 5 19 6
-f 6 7 14 13
-f 6 19 18 7
-f 7 8 14
-f 7 18 8
-f 8 9 15 14
-f 8 18 17 9
-f 9 10 15
-f 9 17 10
-f 11 12 13 14 15
-f 16 17 18 19 20
diff --git a/texmf-dist/scripts/ketcindy/data/polyhedrons_obj/n31.obj b/texmf-dist/scripts/ketcindy/data/polyhedrons_obj/n31.obj
deleted file mode 100644
index 2bc879c4..00000000
--- a/texmf-dist/scripts/ketcindy/data/polyhedrons_obj/n31.obj
+++ /dev/null
@@ -1,42 +0,0 @@
-v -0.30901699 -0.95105652 -0.00000000
-v -0.80901699 -0.58778525 -0.00000000
-v -1.00000000 -0.00000000 -0.00000000
-v -0.80901699 0.58778525 -0.00000000
-v -0.30901700 0.95105652 -0.00000000
-v 0.30901699 0.95105652 -0.00000000
-v 0.80901699 0.58778525 -0.00000000
-v 1.00000000 -0.00000000 -0.00000000
-v 0.80901699 -0.58778525 -0.00000000
-v 0.30901699 -0.95105652 -0.00000000
-v -0.30901699 -0.42532540 -0.32491970
-v -0.50000000 0.16245985 -0.32491970
-v 0.00000000 0.52573111 -0.32491970
-v 0.50000000 0.16245985 -0.32491970
-v 0.30901699 -0.42532540 -0.32491970
-v 0.00000000 -0.52573111 0.32491970
-v 0.50000000 -0.16245985 0.32491970
-v 0.30901699 0.42532540 0.32491970
-v -0.30901699 0.42532540 0.32491970
-v -0.50000000 -0.16245985 0.32491970
-f 1 2 11
-f 1 11 15 10
-f 1 10 16
-f 1 16 20 2
-f 2 3 12 11
-f 2 20 3
-f 3 4 12
-f 3 20 19 4
-f 4 5 13 12
-f 4 19 5
-f 5 6 13
-f 5 19 18 6
-f 6 7 14 13
-f 6 18 7
-f 7 8 14
-f 7 18 17 8
-f 8 9 15 14
-f 8 17 9
-f 9 10 15
-f 9 17 16 10
-f 11 12 13 14 15
-f 16 17 18 19 20
diff --git a/texmf-dist/scripts/ketcindy/data/polyhedrons_obj/n32.obj b/texmf-dist/scripts/ketcindy/data/polyhedrons_obj/n32.obj
deleted file mode 100644
index 39d12437..00000000
--- a/texmf-dist/scripts/ketcindy/data/polyhedrons_obj/n32.obj
+++ /dev/null
@@ -1,52 +0,0 @@
-v -0.30240276 -0.93070001 -0.20579132
-v -0.79170071 -0.57520424 -0.20579132
-v -0.97859590 -0.00000000 -0.20579132
-v -0.79170071 0.57520424 -0.20579132
-v -0.30240276 0.93070001 -0.20579132
-v 0.30240276 0.93070001 -0.20579132
-v 0.79170071 0.57520424 -0.20579132
-v 0.97859590 -0.00000000 -0.20579132
-v 0.79170071 -0.57520424 -0.20579132
-v 0.30240276 -0.93070001 -0.20579132
-v -0.30240276 -0.41622170 -0.52375640
-v -0.48929795 0.15898254 -0.52375641
-v 0.00000000 0.51447831 -0.52375641
-v 0.48929795 0.15898254 -0.52375641
-v 0.30240276 -0.41622170 -0.52375640
-v -0.48929795 -0.67346085 0.30868699
-v 0.48929795 -0.67346085 0.30868699
-v 0.79170071 0.25723915 0.30868699
-v -0.00000000 0.83244339 0.30868699
-v -0.79170071 0.25723915 0.30868699
-v 0.00000000 -0.51447831 0.62665207
-v 0.48929795 -0.15898254 0.62665207
-v 0.30240276 0.41622170 0.62665207
-v -0.30240276 0.41622170 0.62665207
-v -0.48929795 -0.15898254 0.62665207
-f 1 2 11
-f 1 11 15 10
-f 1 10 17 21 16
-f 1 16 2
-f 2 3 12 11
-f 2 16 25 20 3
-f 3 4 12
-f 3 20 4
-f 4 5 13 12
-f 4 20 24 19 5
-f 5 6 13
-f 5 19 6
-f 6 7 14 13
-f 6 19 23 18 7
-f 7 8 14
-f 7 18 8
-f 8 9 15 14
-f 8 18 22 17 9
-f 9 10 15
-f 9 17 10
-f 11 12 13 14 15
-f 16 21 25
-f 17 22 21
-f 18 23 22
-f 19 24 23
-f 20 25 24
-f 21 22 23 24 25
diff --git a/texmf-dist/scripts/ketcindy/data/polyhedrons_obj/n33.obj b/texmf-dist/scripts/ketcindy/data/polyhedrons_obj/n33.obj
deleted file mode 100644
index 4fb6508f..00000000
--- a/texmf-dist/scripts/ketcindy/data/polyhedrons_obj/n33.obj
+++ /dev/null
@@ -1,52 +0,0 @@
-v -0.30240276 -0.93070001 -0.20579132
-v -0.79170071 -0.57520424 -0.20579132
-v -0.97859590 0.00000000 -0.20579132
-v -0.79170071 0.57520424 -0.20579132
-v -0.30240276 0.93070001 -0.20579132
-v 0.30240276 0.93070001 -0.20579132
-v 0.79170071 0.57520424 -0.20579132
-v 0.97859590 -0.00000000 -0.20579132
-v 0.79170071 -0.57520424 -0.20579132
-v 0.30240276 -0.93070001 -0.20579132
-v -0.30240276 -0.41622170 -0.52375641
-v -0.48929795 0.15898254 -0.52375641
-v 0.00000000 0.51447831 -0.52375641
-v 0.48929795 0.15898254 -0.52375641
-v 0.30240276 -0.41622170 -0.52375641
-v -0.79170071 -0.25723915 0.30868699
-v 0.00000000 -0.83244339 0.30868699
-v 0.79170071 -0.25723915 0.30868699
-v 0.48929795 0.67346085 0.30868699
-v -0.48929795 0.67346085 0.30868699
-v -0.30240276 -0.41622170 0.62665207
-v 0.30240276 -0.41622170 0.62665207
-v 0.48929795 0.15898254 0.62665207
-v -0.00000000 0.51447831 0.62665207
-v -0.48929795 0.15898254 0.62665207
-f 1 2 11
-f 1 11 15 10
-f 1 10 17
-f 1 17 21 16 2
-f 2 3 12 11
-f 2 16 3
-f 3 4 12
-f 3 16 25 20 4
-f 4 5 13 12
-f 4 20 5
-f 5 6 13
-f 5 20 24 19 6
-f 6 7 14 13
-f 6 19 7
-f 7 8 14
-f 7 19 23 18 8
-f 8 9 15 14
-f 8 18 9
-f 9 10 15
-f 9 18 22 17 10
-f 11 12 13 14 15
-f 16 21 25
-f 17 22 21
-f 18 23 22
-f 19 24 23
-f 20 25 24
-f 21 22 23 24 25
diff --git a/texmf-dist/scripts/ketcindy/data/polyhedrons_obj/n34.obj b/texmf-dist/scripts/ketcindy/data/polyhedrons_obj/n34.obj
deleted file mode 100644
index eea5439f..00000000
--- a/texmf-dist/scripts/ketcindy/data/polyhedrons_obj/n34.obj
+++ /dev/null
@@ -1,62 +0,0 @@
-v -0.30901699 -0.95105652 0.00000000
-v -0.80901699 -0.58778525 0.00000000
-v -1.00000000 0.00000000 0.00000000
-v -0.80901699 0.58778525 0.00000000
-v -0.30901699 0.95105652 0.00000000
-v 0.30901699 0.95105652 0.00000000
-v 0.80901699 0.58778525 0.00000000
-v 1.00000000 -0.00000000 0.00000000
-v 0.80901699 -0.58778525 0.00000000
-v 0.30901699 -0.95105652 0.00000000
-v -0.00000000 -0.85065081 -0.52573111
-v -0.80901699 -0.26286556 -0.52573111
-v -0.50000000 0.68819096 -0.52573111
-v 0.50000000 0.68819096 -0.52573111
-v 0.80901699 -0.26286556 -0.52573111
-v -0.30901699 -0.42532540 -0.85065081
-v -0.50000000 0.16245985 -0.85065081
-v 0.00000000 0.52573111 -0.85065081
-v 0.50000000 0.16245985 -0.85065081
-v 0.30901699 -0.42532540 -0.85065081
-v -0.80901699 -0.26286556 0.52573111
-v 0.00000000 -0.85065081 0.52573111
-v 0.80901699 -0.26286556 0.52573111
-v 0.50000000 0.68819096 0.52573111
-v -0.50000000 0.68819096 0.52573111
-v -0.30901699 -0.42532540 0.85065081
-v 0.30901699 -0.42532540 0.85065081
-v 0.50000000 0.16245985 0.85065081
-v -0.00000000 0.52573111 0.85065081
-v -0.50000000 0.16245985 0.85065081
-f 1 2 12 16 11
-f 1 11 10
-f 1 10 22
-f 1 22 26 21 2
-f 2 3 12
-f 2 21 3
-f 3 4 13 17 12
-f 3 21 30 25 4
-f 4 5 13
-f 4 25 5
-f 5 6 14 18 13
-f 5 25 29 24 6
-f 6 7 14
-f 6 24 7
-f 7 8 15 19 14
-f 7 24 28 23 8
-f 8 9 15
-f 8 23 9
-f 9 10 11 20 15
-f 9 23 27 22 10
-f 11 16 20
-f 12 17 16
-f 13 18 17
-f 14 19 18
-f 15 20 19
-f 16 17 18 19 20
-f 21 26 30
-f 22 27 26
-f 23 28 27
-f 24 29 28
-f 25 30 29
-f 26 27 28 29 30
diff --git a/texmf-dist/scripts/ketcindy/data/polyhedrons_obj/n35.obj b/texmf-dist/scripts/ketcindy/data/polyhedrons_obj/n35.obj
deleted file mode 100644
index ed3b9efc..00000000
--- a/texmf-dist/scripts/ketcindy/data/polyhedrons_obj/n35.obj
+++ /dev/null
@@ -1,38 +0,0 @@
-v -0.34781848 -0.60243929 0.34781848
-v -0.69563697 0.00000000 0.34781848
-v -0.34781848 0.60243929 0.34781848
-v 0.34781848 0.60243929 0.34781848
-v 0.69563697 0.00000000 0.34781848
-v 0.34781848 -0.60243929 0.34781848
-v -0.34781848 -0.60243929 -0.34781848
-v -0.69563697 0.00000000 -0.34781848
-v -0.34781848 0.60243929 -0.34781848
-v 0.34781848 0.60243929 -0.34781848
-v 0.69563697 -0.00000000 -0.34781848
-v 0.34781848 -0.60243929 -0.34781848
-v 0.00000000 -0.40162619 0.91580369
-v 0.34781848 0.20081310 0.91580369
-v -0.34781848 0.20081310 0.91580369
-v -0.34781848 0.20081310 -0.91580369
-v 0.34781848 0.20081310 -0.91580369
-v 0.00000000 -0.40162619 -0.91580369
-f 1 2 8 7
-f 1 7 12 6
-f 1 6 13
-f 1 13 15 2
-f 2 3 9 8
-f 2 15 3
-f 3 4 10 9
-f 3 15 14 4
-f 4 5 11 10
-f 4 14 5
-f 5 6 12 11
-f 5 14 13 6
-f 7 8 16 18
-f 7 18 12
-f 8 9 16
-f 9 10 17 16
-f 10 11 17
-f 11 12 18 17
-f 13 14 15
-f 16 17 18
diff --git a/texmf-dist/scripts/ketcindy/data/polyhedrons_obj/n36.obj b/texmf-dist/scripts/ketcindy/data/polyhedrons_obj/n36.obj
deleted file mode 100644
index 977ef5c4..00000000
--- a/texmf-dist/scripts/ketcindy/data/polyhedrons_obj/n36.obj
+++ /dev/null
@@ -1,38 +0,0 @@
-v -0.34781848 -0.60243929 0.34781848
-v -0.69563697 0.00000000 0.34781848
-v -0.34781848 0.60243929 0.34781848
-v 0.34781848 0.60243929 0.34781848
-v 0.69563697 0.00000000 0.34781848
-v 0.34781848 -0.60243929 0.34781848
-v -0.34781848 -0.60243929 -0.34781848
-v -0.69563697 0.00000000 -0.34781848
-v -0.34781848 0.60243929 -0.34781848
-v 0.34781848 0.60243929 -0.34781848
-v 0.69563697 -0.00000000 -0.34781848
-v 0.34781848 -0.60243929 -0.34781848
-v 0.00000000 -0.40162619 0.91580369
-v 0.34781848 0.20081310 0.91580369
-v -0.34781848 0.20081310 0.91580369
-v -0.34781848 -0.20081310 -0.91580369
-v -0.00000000 0.40162619 -0.91580369
-v 0.34781848 -0.20081310 -0.91580369
-f 1 2 8 7
-f 1 7 12 6
-f 1 6 13
-f 1 13 15 2
-f 2 3 9 8
-f 2 15 3
-f 3 4 10 9
-f 3 15 14 4
-f 4 5 11 10
-f 4 14 5
-f 5 6 12 11
-f 5 14 13 6
-f 7 8 16
-f 7 16 18 12
-f 8 9 17 16
-f 9 10 17
-f 10 11 18 17
-f 11 12 18
-f 13 14 15
-f 16 17 18
diff --git a/texmf-dist/scripts/ketcindy/data/polyhedrons_obj/n37.obj b/texmf-dist/scripts/ketcindy/data/polyhedrons_obj/n37.obj
deleted file mode 100644
index 69c08490..00000000
--- a/texmf-dist/scripts/ketcindy/data/polyhedrons_obj/n37.obj
+++ /dev/null
@@ -1,50 +0,0 @@
-v -0.35740674 -0.86285621 0.35740674
-v -0.86285621 -0.35740674 0.35740674
-v -0.86285621 0.35740674 0.35740674
-v -0.35740674 0.86285621 0.35740674
-v 0.35740674 0.86285621 0.35740674
-v 0.86285621 0.35740674 0.35740674
-v 0.86285621 -0.35740674 0.35740674
-v 0.35740674 -0.86285621 0.35740674
-v -0.35740674 -0.86285621 -0.35740674
-v -0.86285621 -0.35740674 -0.35740674
-v -0.86285621 0.35740674 -0.35740674
-v -0.35740674 0.86285621 -0.35740674
-v 0.35740674 0.86285621 -0.35740674
-v 0.86285621 0.35740674 -0.35740674
-v 0.86285621 -0.35740674 -0.35740674
-v 0.35740674 -0.86285621 -0.35740674
-v -0.35740674 -0.35740674 0.86285621
-v 0.35740674 -0.35740674 0.86285621
-v 0.35740674 0.35740674 0.86285621
-v -0.35740674 0.35740674 0.86285621
-v 0.00000000 -0.50544946 -0.86285621
-v -0.50544946 -0.00000000 -0.86285621
-v 0.00000000 0.50544946 -0.86285621
-v 0.50544946 -0.00000000 -0.86285621
-f 1 2 10 9
-f 1 9 16 8
-f 1 8 18 17
-f 1 17 2
-f 2 3 11 10
-f 2 17 20 3
-f 3 4 12 11
-f 3 20 4
-f 4 5 13 12
-f 4 20 19 5
-f 5 6 14 13
-f 5 19 6
-f 6 7 15 14
-f 6 19 18 7
-f 7 8 16 15
-f 7 18 8
-f 9 10 22 21
-f 9 21 16
-f 10 11 22
-f 11 12 23 22
-f 12 13 23
-f 13 14 24 23
-f 14 15 24
-f 15 16 21 24
-f 17 18 19 20
-f 21 22 23 24
diff --git a/texmf-dist/scripts/ketcindy/data/polyhedrons_obj/n38.obj b/texmf-dist/scripts/ketcindy/data/polyhedrons_obj/n38.obj
deleted file mode 100644
index fd528ea3..00000000
--- a/texmf-dist/scripts/ketcindy/data/polyhedrons_obj/n38.obj
+++ /dev/null
@@ -1,62 +0,0 @@
-v -0.29524181 -0.90866085 -0.29524181
-v -0.77295309 -0.56158329 -0.29524181
-v -0.95542256 0.00000000 -0.29524181
-v -0.77295309 0.56158329 -0.29524181
-v -0.29524181 0.90866085 -0.29524181
-v 0.29524181 0.90866085 -0.29524181
-v 0.77295309 0.56158329 -0.29524181
-v 0.95542256 0.00000000 -0.29524181
-v 0.77295309 -0.56158329 -0.29524181
-v 0.29524181 -0.90866085 -0.29524181
-v -0.29524181 -0.40636549 -0.60567742
-v -0.47771128 0.15521780 -0.60567742
-v 0.00000000 0.50229537 -0.60567742
-v 0.47771128 0.15521780 -0.60567742
-v 0.29524181 -0.40636549 -0.60567742
-v -0.29524181 -0.90866085 0.29524181
-v 0.29524181 -0.90866085 0.29524181
-v 0.77295309 -0.56158329 0.29524181
-v 0.95542256 -0.00000000 0.29524181
-v 0.77295309 0.56158329 0.29524181
-v 0.29524181 0.90866085 0.29524181
-v -0.29524181 0.90866085 0.29524181
-v -0.77295309 0.56158329 0.29524181
-v -0.95542256 0.00000000 0.29524181
-v -0.77295309 -0.56158329 0.29524181
-v -0.29524181 -0.40636549 0.60567742
-v 0.29524181 -0.40636549 0.60567742
-v 0.47771128 0.15521780 0.60567742
-v 0.00000000 0.50229537 0.60567742
-v -0.47771128 0.15521780 0.60567742
-f 1 2 11
-f 1 11 15 10
-f 1 10 17 16
-f 1 16 25 2
-f 2 3 12 11
-f 2 25 24 3
-f 3 4 12
-f 3 24 23 4
-f 4 5 13 12
-f 4 23 22 5
-f 5 6 13
-f 5 22 21 6
-f 6 7 14 13
-f 6 21 20 7
-f 7 8 14
-f 7 20 19 8
-f 8 9 15 14
-f 8 19 18 9
-f 9 10 15
-f 9 18 17 10
-f 11 12 13 14 15
-f 16 17 27 26
-f 16 26 25
-f 17 18 27
-f 18 19 28 27
-f 19 20 28
-f 20 21 29 28
-f 21 22 29
-f 22 23 30 29
-f 23 24 30
-f 24 25 26 30
-f 26 27 28 29 30
diff --git a/texmf-dist/scripts/ketcindy/data/polyhedrons_obj/n39.obj b/texmf-dist/scripts/ketcindy/data/polyhedrons_obj/n39.obj
deleted file mode 100644
index 5cb96de7..00000000
--- a/texmf-dist/scripts/ketcindy/data/polyhedrons_obj/n39.obj
+++ /dev/null
@@ -1,62 +0,0 @@
-v -0.29524181 -0.90866085 -0.29524181
-v -0.77295309 -0.56158329 -0.29524181
-v -0.95542256 -0.00000000 -0.29524181
-v -0.77295309 0.56158329 -0.29524181
-v -0.29524181 0.90866085 -0.29524181
-v 0.29524181 0.90866085 -0.29524181
-v 0.77295309 0.56158329 -0.29524181
-v 0.95542256 -0.00000000 -0.29524181
-v 0.77295309 -0.56158329 -0.29524181
-v 0.29524181 -0.90866085 -0.29524181
-v -0.29524181 -0.40636549 -0.60567742
-v -0.47771128 0.15521780 -0.60567742
-v 0.00000000 0.50229537 -0.60567742
-v 0.47771128 0.15521780 -0.60567742
-v 0.29524181 -0.40636549 -0.60567742
-v -0.29524181 -0.90866085 0.29524181
-v 0.29524181 -0.90866085 0.29524181
-v 0.77295309 -0.56158329 0.29524181
-v 0.95542256 0.00000000 0.29524181
-v 0.77295309 0.56158329 0.29524181
-v 0.29524181 0.90866085 0.29524181
-v -0.29524181 0.90866085 0.29524181
-v -0.77295309 0.56158329 0.29524181
-v -0.95542256 0.00000000 0.29524181
-v -0.77295309 -0.56158329 0.29524181
-v 0.00000000 -0.50229537 0.60567742
-v 0.47771128 -0.15521780 0.60567742
-v 0.29524181 0.40636549 0.60567742
-v -0.29524181 0.40636549 0.60567742
-v -0.47771128 -0.15521780 0.60567742
-f 1 2 11
-f 1 11 15 10
-f 1 10 17 16
-f 1 16 25 2
-f 2 3 12 11
-f 2 25 24 3
-f 3 4 12
-f 3 24 23 4
-f 4 5 13 12
-f 4 23 22 5
-f 5 6 13
-f 5 22 21 6
-f 6 7 14 13
-f 6 21 20 7
-f 7 8 14
-f 7 20 19 8
-f 8 9 15 14
-f 8 19 18 9
-f 9 10 15
-f 9 18 17 10
-f 11 12 13 14 15
-f 16 17 26
-f 16 26 30 25
-f 17 18 27 26
-f 18 19 27
-f 19 20 28 27
-f 20 21 28
-f 21 22 29 28
-f 22 23 29
-f 23 24 30 29
-f 24 25 30
-f 26 27 28 29 30
diff --git a/texmf-dist/scripts/ketcindy/data/polyhedrons_obj/n40.obj b/texmf-dist/scripts/ketcindy/data/polyhedrons_obj/n40.obj
deleted file mode 100644
index c1b57f02..00000000
--- a/texmf-dist/scripts/ketcindy/data/polyhedrons_obj/n40.obj
+++ /dev/null
@@ -1,72 +0,0 @@
-v -0.27602000 -0.84950220 -0.44962093
-v -0.72262973 -0.52502123 -0.44962093
-v -0.89321947 -0.00000000 -0.44962093
-v -0.72262973 0.52502123 -0.44962093
-v -0.27602000 0.84950220 -0.44962093
-v 0.27601999 0.84950220 -0.44962093
-v 0.72262973 0.52502123 -0.44962093
-v 0.89321947 -0.00000000 -0.44962093
-v 0.72262973 -0.52502123 -0.44962093
-v 0.27602000 -0.84950220 -0.44962093
-v -0.27602000 -0.37990893 -0.73984553
-v -0.44660973 0.14511230 -0.73984553
-v 0.00000000 0.46959326 -0.73984553
-v 0.44660974 0.14511230 -0.73984553
-v 0.27602000 -0.37990893 -0.73984553
-v -0.27602000 -0.84950220 0.10241906
-v 0.27602000 -0.84950220 0.10241906
-v 0.72262973 -0.52502123 0.10241906
-v 0.89321947 -0.00000000 0.10241906
-v 0.72262973 0.52502123 0.10241906
-v 0.27601999 0.84950220 0.10241906
-v -0.27602000 0.84950220 0.10241906
-v -0.72262973 0.52502123 0.10241906
-v -0.89321947 -0.00000000 0.10241906
-v -0.72262973 -0.52502123 0.10241906
-v -0.44660973 -0.61470556 0.57201233
-v 0.44660974 -0.61470556 0.57201233
-v 0.72262973 0.23479663 0.57201233
-v -0.00000000 0.75981786 0.57201233
-v -0.72262973 0.23479663 0.57201233
-v 0.00000000 -0.46959326 0.86223693
-v 0.44660973 -0.14511230 0.86223693
-v 0.27602000 0.37990893 0.86223693
-v -0.27602000 0.37990893 0.86223693
-v -0.44660973 -0.14511230 0.86223693
-f 1 2 11
-f 1 11 15 10
-f 1 10 17 16
-f 1 16 25 2
-f 2 3 12 11
-f 2 25 24 3
-f 3 4 12
-f 3 24 23 4
-f 4 5 13 12
-f 4 23 22 5
-f 5 6 13
-f 5 22 21 6
-f 6 7 14 13
-f 6 21 20 7
-f 7 8 14
-f 7 20 19 8
-f 8 9 15 14
-f 8 19 18 9
-f 9 10 15
-f 9 18 17 10
-f 11 12 13 14 15
-f 16 17 27 31 26
-f 16 26 25
-f 17 18 27
-f 18 19 28 32 27
-f 19 20 28
-f 20 21 29 33 28
-f 21 22 29
-f 22 23 30 34 29
-f 23 24 30
-f 24 25 26 35 30
-f 26 31 35
-f 27 32 31
-f 28 33 32
-f 29 34 33
-f 30 35 34
-f 31 32 33 34 35
diff --git a/texmf-dist/scripts/ketcindy/data/polyhedrons_obj/n41.obj b/texmf-dist/scripts/ketcindy/data/polyhedrons_obj/n41.obj
deleted file mode 100644
index 3adcc5a7..00000000
--- a/texmf-dist/scripts/ketcindy/data/polyhedrons_obj/n41.obj
+++ /dev/null
@@ -1,72 +0,0 @@
-v -0.27602000 -0.84950220 -0.44962093
-v -0.72262973 -0.52502123 -0.44962093
-v -0.89321947 0.00000000 -0.44962093
-v -0.72262973 0.52502123 -0.44962093
-v -0.27602000 0.84950220 -0.44962093
-v 0.27601999 0.84950220 -0.44962093
-v 0.72262973 0.52502123 -0.44962093
-v 0.89321947 0.00000000 -0.44962093
-v 0.72262973 -0.52502123 -0.44962093
-v 0.27602000 -0.84950220 -0.44962093
-v -0.27602000 -0.37990893 -0.73984553
-v -0.44660973 0.14511230 -0.73984553
-v 0.00000000 0.46959326 -0.73984553
-v 0.44660973 0.14511230 -0.73984553
-v 0.27602000 -0.37990893 -0.73984553
-v -0.27602000 -0.84950220 0.10241906
-v 0.27602000 -0.84950220 0.10241906
-v 0.72262973 -0.52502123 0.10241906
-v 0.89321947 -0.00000000 0.10241906
-v 0.72262973 0.52502123 0.10241906
-v 0.27602000 0.84950220 0.10241906
-v -0.27602000 0.84950220 0.10241906
-v -0.72262973 0.52502123 0.10241906
-v -0.89321947 -0.00000000 0.10241906
-v -0.72262973 -0.52502123 0.10241906
-v -0.72262973 -0.23479663 0.57201233
-v 0.00000000 -0.75981786 0.57201233
-v 0.72262973 -0.23479663 0.57201233
-v 0.44660973 0.61470556 0.57201233
-v -0.44660973 0.61470556 0.57201233
-v -0.27602000 -0.37990893 0.86223693
-v 0.27602000 -0.37990893 0.86223693
-v 0.44660973 0.14511230 0.86223693
-v 0.00000000 0.46959326 0.86223693
-v -0.44660973 0.14511230 0.86223693
-f 1 2 11
-f 1 11 15 10
-f 1 10 17 16
-f 1 16 25 2
-f 2 3 12 11
-f 2 25 24 3
-f 3 4 12
-f 3 24 23 4
-f 4 5 13 12
-f 4 23 22 5
-f 5 6 13
-f 5 22 21 6
-f 6 7 14 13
-f 6 21 20 7
-f 7 8 14
-f 7 20 19 8
-f 8 9 15 14
-f 8 19 18 9
-f 9 10 15
-f 9 18 17 10
-f 11 12 13 14 15
-f 16 17 27
-f 16 27 31 26 25
-f 17 18 28 32 27
-f 18 19 28
-f 19 20 29 33 28
-f 20 21 29
-f 21 22 30 34 29
-f 22 23 30
-f 23 24 26 35 30
-f 24 25 26
-f 26 31 35
-f 27 32 31
-f 28 33 32
-f 29 34 33
-f 30 35 34
-f 31 32 33 34 35
diff --git a/texmf-dist/scripts/ketcindy/data/polyhedrons_obj/n42.obj b/texmf-dist/scripts/ketcindy/data/polyhedrons_obj/n42.obj
deleted file mode 100644
index 414d704a..00000000
--- a/texmf-dist/scripts/ketcindy/data/polyhedrons_obj/n42.obj
+++ /dev/null
@@ -1,82 +0,0 @@
-v -0.24269512 -0.74693876 -0.24269512
-v -0.63538406 -0.46163354 -0.24269512
-v -0.78537789 0.00000000 -0.24269512
-v -0.63538406 0.46163354 -0.24269512
-v -0.24269512 0.74693876 -0.24269512
-v 0.24269512 0.74693876 -0.24269512
-v 0.63538406 0.46163354 -0.24269512
-v 0.78537789 0.00000000 -0.24269512
-v 0.63538406 -0.46163354 -0.24269512
-v 0.24269512 -0.74693876 -0.24269512
-v 0.00000000 -0.66808234 -0.65559271
-v -0.63538406 -0.20644880 -0.65559271
-v -0.39268895 0.54048997 -0.65559271
-v 0.39268895 0.54048997 -0.65559271
-v 0.63538406 -0.20644880 -0.65559271
-v -0.24269512 -0.33404117 -0.91077746
-v -0.39268895 0.12759237 -0.91077746
-v 0.00000000 0.41289759 -0.91077746
-v 0.39268895 0.12759237 -0.91077746
-v 0.24269512 -0.33404117 -0.91077746
-v -0.24269512 -0.74693876 0.24269512
-v 0.24269512 -0.74693876 0.24269512
-v 0.63538406 -0.46163354 0.24269512
-v 0.78537789 -0.00000000 0.24269512
-v 0.63538406 0.46163354 0.24269512
-v 0.24269512 0.74693876 0.24269512
-v -0.24269512 0.74693876 0.24269512
-v -0.63538406 0.46163354 0.24269512
-v -0.78537789 0.00000000 0.24269512
-v -0.63538406 -0.46163354 0.24269512
-v -0.63538406 -0.20644880 0.65559271
-v 0.00000000 -0.66808234 0.65559271
-v 0.63538406 -0.20644880 0.65559271
-v 0.39268895 0.54048997 0.65559271
-v -0.39268895 0.54048997 0.65559271
-v -0.24269512 -0.33404117 0.91077746
-v 0.24269512 -0.33404117 0.91077746
-v 0.39268895 0.12759237 0.91077746
-v 0.00000000 0.41289759 0.91077746
-v -0.39268895 0.12759237 0.91077746
-f 1 2 12 16 11
-f 1 11 10
-f 1 10 22 21
-f 1 21 30 2
-f 2 3 12
-f 2 30 29 3
-f 3 4 13 17 12
-f 3 29 28 4
-f 4 5 13
-f 4 28 27 5
-f 5 6 14 18 13
-f 5 27 26 6
-f 6 7 14
-f 6 26 25 7
-f 7 8 15 19 14
-f 7 25 24 8
-f 8 9 15
-f 8 24 23 9
-f 9 10 11 20 15
-f 9 23 22 10
-f 11 16 20
-f 12 17 16
-f 13 18 17
-f 14 19 18
-f 15 20 19
-f 16 17 18 19 20
-f 21 22 32
-f 21 32 36 31 30
-f 22 23 33 37 32
-f 23 24 33
-f 24 25 34 38 33
-f 25 26 34
-f 26 27 35 39 34
-f 27 28 35
-f 28 29 31 40 35
-f 29 30 31
-f 31 36 40
-f 32 37 36
-f 33 38 37
-f 34 39 38
-f 35 40 39
-f 36 37 38 39 40
diff --git a/texmf-dist/scripts/ketcindy/data/polyhedrons_obj/n43.obj b/texmf-dist/scripts/ketcindy/data/polyhedrons_obj/n43.obj
deleted file mode 100644
index 15b86180..00000000
--- a/texmf-dist/scripts/ketcindy/data/polyhedrons_obj/n43.obj
+++ /dev/null
@@ -1,82 +0,0 @@
-v -0.24269512 -0.74693876 -0.24269512
-v -0.63538406 -0.46163354 -0.24269512
-v -0.78537789 -0.00000000 -0.24269512
-v -0.63538406 0.46163354 -0.24269512
-v -0.24269512 0.74693876 -0.24269512
-v 0.24269512 0.74693876 -0.24269512
-v 0.63538406 0.46163354 -0.24269512
-v 0.78537789 -0.00000000 -0.24269512
-v 0.63538406 -0.46163354 -0.24269512
-v 0.24269512 -0.74693876 -0.24269512
-v 0.00000000 -0.66808234 -0.65559271
-v -0.63538406 -0.20644880 -0.65559271
-v -0.39268895 0.54048997 -0.65559271
-v 0.39268895 0.54048997 -0.65559271
-v 0.63538406 -0.20644880 -0.65559271
-v -0.24269512 -0.33404117 -0.91077746
-v -0.39268895 0.12759237 -0.91077746
-v 0.00000000 0.41289759 -0.91077746
-v 0.39268895 0.12759237 -0.91077746
-v 0.24269512 -0.33404117 -0.91077746
-v -0.24269512 -0.74693876 0.24269512
-v 0.24269512 -0.74693876 0.24269512
-v 0.63538406 -0.46163354 0.24269512
-v 0.78537789 0.00000000 0.24269512
-v 0.63538406 0.46163354 0.24269512
-v 0.24269512 0.74693876 0.24269512
-v -0.24269512 0.74693876 0.24269512
-v -0.63538406 0.46163354 0.24269512
-v -0.78537789 0.00000000 0.24269512
-v -0.63538406 -0.46163354 0.24269512
-v -0.39268895 -0.54048997 0.65559271
-v 0.39268895 -0.54048997 0.65559271
-v 0.63538406 0.20644880 0.65559271
-v -0.00000000 0.66808234 0.65559271
-v -0.63538406 0.20644880 0.65559271
-v 0.00000000 -0.41289759 0.91077746
-v 0.39268895 -0.12759237 0.91077746
-v 0.24269512 0.33404117 0.91077746
-v -0.24269512 0.33404117 0.91077746
-v -0.39268895 -0.12759237 0.91077746
-f 1 2 12 16 11
-f 1 11 10
-f 1 10 22 21
-f 1 21 30 2
-f 2 3 12
-f 2 30 29 3
-f 3 4 13 17 12
-f 3 29 28 4
-f 4 5 13
-f 4 28 27 5
-f 5 6 14 18 13
-f 5 27 26 6
-f 6 7 14
-f 6 26 25 7
-f 7 8 15 19 14
-f 7 25 24 8
-f 8 9 15
-f 8 24 23 9
-f 9 10 11 20 15
-f 9 23 22 10
-f 11 16 20
-f 12 17 16
-f 13 18 17
-f 14 19 18
-f 15 20 19
-f 16 17 18 19 20
-f 21 22 32 36 31
-f 21 31 30
-f 22 23 32
-f 23 24 33 37 32
-f 24 25 33
-f 25 26 34 38 33
-f 26 27 34
-f 27 28 35 39 34
-f 28 29 35
-f 29 30 31 40 35
-f 31 36 40
-f 32 37 36
-f 33 38 37
-f 34 39 38
-f 35 40 39
-f 36 37 38 39 40
diff --git a/texmf-dist/scripts/ketcindy/data/polyhedrons_obj/n44L.obj b/texmf-dist/scripts/ketcindy/data/polyhedrons_obj/n44L.obj
deleted file mode 100644
index a118aec6..00000000
--- a/texmf-dist/scripts/ketcindy/data/polyhedrons_obj/n44L.obj
+++ /dev/null
@@ -1,44 +0,0 @@
-v -0.36450673 -0.63134418 0.31187184
-v -0.72901347 0.00000000 0.31187184
-v -0.36450673 0.63134418 0.31187184
-v 0.36450673 0.63134418 0.31187184
-v 0.72901347 0.00000000 0.31187184
-v 0.36450673 -0.63134418 0.31187184
-v 0.00000000 -0.72901347 -0.31187184
-v -0.63134418 -0.36450673 -0.31187184
-v -0.63134418 0.36450673 -0.31187184
-v -0.00000000 0.72901347 -0.31187184
-v 0.63134418 0.36450673 -0.31187184
-v 0.63134418 -0.36450673 -0.31187184
-v 0.00000000 -0.42089612 0.90710884
-v 0.36450673 0.21044806 0.90710884
-v -0.36450673 0.21044806 0.90710884
-v 0.21044806 -0.36450673 -0.90710884
-v -0.42089612 0.00000000 -0.90710884
-v 0.21044806 0.36450673 -0.90710884
-f 1 2 8
-f 1 8 7
-f 1 7 6
-f 1 6 13
-f 1 13 15 2
-f 2 3 9
-f 2 9 8
-f 2 15 3
-f 3 4 10
-f 3 10 9
-f 3 15 14 4
-f 4 5 11
-f 4 11 10
-f 4 14 5
-f 5 6 12
-f 5 12 11
-f 5 14 13 6
-f 6 7 12
-f 7 8 17 16
-f 7 16 12
-f 8 9 17
-f 9 10 18 17
-f 10 11 18
-f 11 12 16 18
-f 13 14 15
-f 16 17 18
diff --git a/texmf-dist/scripts/ketcindy/data/polyhedrons_obj/n44R.obj b/texmf-dist/scripts/ketcindy/data/polyhedrons_obj/n44R.obj
deleted file mode 100644
index d29c2764..00000000
--- a/texmf-dist/scripts/ketcindy/data/polyhedrons_obj/n44R.obj
+++ /dev/null
@@ -1,44 +0,0 @@
-v -0.36450673 -0.63134418 0.31187184
-v -0.72901347 0.00000000 0.31187184
-v -0.36450673 0.63134418 0.31187184
-v 0.36450673 0.63134418 0.31187184
-v 0.72901347 0.00000000 0.31187184
-v 0.36450673 -0.63134418 0.31187184
-v 0.00000000 -0.72901347 -0.31187184
-v -0.63134418 -0.36450673 -0.31187184
-v -0.63134418 0.36450673 -0.31187184
-v 0.00000000 0.72901347 -0.31187184
-v 0.63134418 0.36450673 -0.31187184
-v 0.63134418 -0.36450673 -0.31187184
-v 0.00000000 -0.42089612 0.90710884
-v 0.36450673 0.21044806 0.90710884
-v -0.36450673 0.21044806 0.90710884
-v -0.21044806 -0.36450673 -0.90710884
-v -0.21044806 0.36450673 -0.90710884
-v 0.42089612 -0.00000000 -0.90710884
-f 1 2 8
-f 1 8 7
-f 1 7 6
-f 1 6 13
-f 1 13 15 2
-f 2 3 9
-f 2 9 8
-f 2 15 3
-f 3 4 10
-f 3 10 9
-f 3 15 14 4
-f 4 5 11
-f 4 11 10
-f 4 14 5
-f 5 6 12
-f 5 12 11
-f 5 14 13 6
-f 6 7 12
-f 7 8 16
-f 7 16 18 12
-f 8 9 17 16
-f 9 10 17
-f 10 11 18 17
-f 11 12 18
-f 13 14 15
-f 16 17 18
diff --git a/texmf-dist/scripts/ketcindy/data/polyhedrons_obj/n45L.obj b/texmf-dist/scripts/ketcindy/data/polyhedrons_obj/n45L.obj
deleted file mode 100644
index 79c06df1..00000000
--- a/texmf-dist/scripts/ketcindy/data/polyhedrons_obj/n45L.obj
+++ /dev/null
@@ -1,58 +0,0 @@
-v -0.36349134 -0.87754573 0.31270999
-v -0.87754573 -0.36349134 0.31270999
-v -0.87754573 0.36349134 0.31270999
-v -0.36349134 0.87754573 0.31270999
-v 0.36349134 0.87754573 0.31270999
-v 0.87754573 0.36349134 0.31270999
-v 0.87754573 -0.36349134 0.31270999
-v 0.36349134 -0.87754573 0.31270999
-v 0.00000000 -0.94984865 -0.31270999
-v -0.67164442 -0.67164442 -0.31270999
-v -0.94984865 -0.00000000 -0.31270999
-v -0.67164442 0.67164442 -0.31270999
-v 0.00000000 0.94984865 -0.31270999
-v 0.67164442 0.67164442 -0.31270999
-v 0.94984865 -0.00000000 -0.31270999
-v 0.67164442 -0.67164442 -0.31270999
-v -0.36349134 -0.36349134 0.82676438
-v 0.36349134 -0.36349134 0.82676438
-v 0.36349134 0.36349134 0.82676438
-v -0.36349134 0.36349134 0.82676438
-v 0.47492433 -0.19672010 -0.82676438
-v -0.19672010 -0.47492433 -0.82676438
-v -0.47492433 0.19672010 -0.82676438
-v 0.19672010 0.47492433 -0.82676438
-f 1 2 10
-f 1 10 9
-f 1 9 8
-f 1 8 18 17
-f 1 17 2
-f 2 3 11
-f 2 11 10
-f 2 17 20 3
-f 3 4 12
-f 3 12 11
-f 3 20 4
-f 4 5 13
-f 4 13 12
-f 4 20 19 5
-f 5 6 14
-f 5 14 13
-f 5 19 6
-f 6 7 15
-f 6 15 14
-f 6 19 18 7
-f 7 8 16
-f 7 16 15
-f 7 18 8
-f 8 9 16
-f 9 10 22
-f 9 22 21 16
-f 10 11 23 22
-f 11 12 23
-f 12 13 24 23
-f 13 14 24
-f 14 15 21 24
-f 15 16 21
-f 17 18 19 20
-f 21 22 23 24
diff --git a/texmf-dist/scripts/ketcindy/data/polyhedrons_obj/n45R.obj b/texmf-dist/scripts/ketcindy/data/polyhedrons_obj/n45R.obj
deleted file mode 100644
index 5b7ea3ed..00000000
--- a/texmf-dist/scripts/ketcindy/data/polyhedrons_obj/n45R.obj
+++ /dev/null
@@ -1,58 +0,0 @@
-v -0.36349134 -0.87754573 0.31270999
-v -0.87754573 -0.36349134 0.31270999
-v -0.87754573 0.36349134 0.31270999
-v -0.36349134 0.87754573 0.31270999
-v 0.36349134 0.87754573 0.31270999
-v 0.87754573 0.36349134 0.31270999
-v 0.87754573 -0.36349134 0.31270999
-v 0.36349134 -0.87754573 0.31270999
-v 0.00000000 -0.94984865 -0.31270999
-v -0.67164442 -0.67164442 -0.31270999
-v -0.94984865 -0.00000000 -0.31270999
-v -0.67164442 0.67164442 -0.31270999
-v 0.00000000 0.94984865 -0.31270999
-v 0.67164442 0.67164442 -0.31270999
-v 0.94984865 -0.00000000 -0.31270999
-v 0.67164442 -0.67164442 -0.31270999
-v -0.36349134 -0.36349134 0.82676438
-v 0.36349134 -0.36349134 0.82676438
-v 0.36349134 0.36349134 0.82676438
-v -0.36349134 0.36349134 0.82676438
-v 0.19672010 -0.47492433 -0.82676438
-v -0.47492433 -0.19672010 -0.82676438
-v -0.19672010 0.47492433 -0.82676438
-v 0.47492433 0.19672010 -0.82676438
-f 1 2 10
-f 1 10 9
-f 1 9 8
-f 1 8 18 17
-f 1 17 2
-f 2 3 11
-f 2 11 10
-f 2 17 20 3
-f 3 4 12
-f 3 12 11
-f 3 20 4
-f 4 5 13
-f 4 13 12
-f 4 20 19 5
-f 5 6 14
-f 5 14 13
-f 5 19 6
-f 6 7 15
-f 6 15 14
-f 6 19 18 7
-f 7 8 16
-f 7 16 15
-f 7 18 8
-f 8 9 16
-f 9 10 22 21
-f 9 21 16
-f 10 11 22
-f 11 12 23 22
-f 12 13 23
-f 13 14 24 23
-f 14 15 24
-f 15 16 21 24
-f 17 18 19 20
-f 21 22 23 24
diff --git a/texmf-dist/scripts/ketcindy/data/polyhedrons_obj/n46L.obj b/texmf-dist/scripts/ketcindy/data/polyhedrons_obj/n46L.obj
deleted file mode 100644
index c36513d3..00000000
--- a/texmf-dist/scripts/ketcindy/data/polyhedrons_obj/n46L.obj
+++ /dev/null
@@ -1,72 +0,0 @@
-v -0.29859575 -0.91898322 -0.25750808
-v -0.78173382 -0.56796287 -0.25750808
-v -0.96627614 0.00000000 -0.25750808
-v -0.78173382 0.56796287 -0.25750808
-v -0.29859575 0.91898322 -0.25750808
-v 0.29859575 0.91898322 -0.25750808
-v 0.78173382 0.56796287 -0.25750808
-v 0.96627614 0.00000000 -0.25750808
-v 0.78173382 -0.56796287 -0.25750808
-v 0.29859575 -0.91898322 -0.25750808
-v -0.29859575 -0.41098179 -0.57147023
-v -0.48313807 0.15698108 -0.57147023
-v 0.00000000 0.50800143 -0.57147023
-v 0.48313807 0.15698108 -0.57147023
-v 0.29859575 -0.41098179 -0.57147023
-v -0.56796287 -0.78173382 0.25750808
-v 0.00000000 -0.96627614 0.25750808
-v 0.56796287 -0.78173382 0.25750808
-v 0.91898322 -0.29859575 0.25750808
-v 0.91898322 0.29859575 0.25750808
-v 0.56796287 0.78173382 0.25750808
-v -0.00000000 0.96627614 0.25750808
-v -0.56796287 0.78173382 0.25750808
-v -0.91898322 0.29859575 0.25750808
-v -0.91898322 -0.29859575 0.25750808
-v -0.41098179 -0.29859575 0.57147023
-v 0.15698108 -0.48313807 0.57147023
-v 0.50800143 -0.00000000 0.57147023
-v 0.15698107 0.48313807 0.57147023
-v -0.41098179 0.29859575 0.57147023
-f 1 2 11
-f 1 11 15 10
-f 1 10 17
-f 1 17 16
-f 1 16 2
-f 2 3 12 11
-f 2 16 25
-f 2 25 3
-f 3 4 12
-f 3 25 24
-f 3 24 4
-f 4 5 13 12
-f 4 24 23
-f 4 23 5
-f 5 6 13
-f 5 23 22
-f 5 22 6
-f 6 7 14 13
-f 6 22 21
-f 6 21 7
-f 7 8 14
-f 7 21 20
-f 7 20 8
-f 8 9 15 14
-f 8 20 19
-f 8 19 9
-f 9 10 15
-f 9 19 18
-f 9 18 10
-f 10 18 17
-f 11 12 13 14 15
-f 16 17 27 26
-f 16 26 25
-f 17 18 27
-f 18 19 28 27
-f 19 20 28
-f 20 21 29 28
-f 21 22 29
-f 22 23 30 29
-f 23 24 30
-f 24 25 26 30
-f 26 27 28 29 30
diff --git a/texmf-dist/scripts/ketcindy/data/polyhedrons_obj/n46R.obj b/texmf-dist/scripts/ketcindy/data/polyhedrons_obj/n46R.obj
deleted file mode 100644
index ce2cc058..00000000
--- a/texmf-dist/scripts/ketcindy/data/polyhedrons_obj/n46R.obj
+++ /dev/null
@@ -1,72 +0,0 @@
-v -0.29859575 -0.91898322 -0.25750808
-v -0.78173382 -0.56796287 -0.25750808
-v -0.96627614 0.00000000 -0.25750808
-v -0.78173382 0.56796287 -0.25750808
-v -0.29859575 0.91898322 -0.25750808
-v 0.29859575 0.91898322 -0.25750808
-v 0.78173382 0.56796287 -0.25750808
-v 0.96627614 0.00000000 -0.25750808
-v 0.78173382 -0.56796287 -0.25750808
-v 0.29859575 -0.91898322 -0.25750808
-v -0.29859575 -0.41098179 -0.57147023
-v -0.48313807 0.15698108 -0.57147023
-v 0.00000000 0.50800143 -0.57147023
-v 0.48313807 0.15698108 -0.57147023
-v 0.29859575 -0.41098179 -0.57147023
-v -0.56796287 -0.78173382 0.25750808
-v 0.00000000 -0.96627614 0.25750808
-v 0.56796287 -0.78173382 0.25750808
-v 0.91898322 -0.29859575 0.25750808
-v 0.91898322 0.29859575 0.25750808
-v 0.56796286 0.78173382 0.25750808
-v -0.00000000 0.96627614 0.25750808
-v -0.56796287 0.78173382 0.25750808
-v -0.91898322 0.29859575 0.25750808
-v -0.91898322 -0.29859575 0.25750808
-v -0.15698107 -0.48313807 0.57147023
-v 0.41098179 -0.29859575 0.57147023
-v 0.41098179 0.29859575 0.57147023
-v -0.15698108 0.48313807 0.57147023
-v -0.50800143 0.00000000 0.57147023
-f 1 2 11
-f 1 11 15 10
-f 1 10 17
-f 1 17 16
-f 1 16 2
-f 2 3 12 11
-f 2 16 25
-f 2 25 3
-f 3 4 12
-f 3 25 24
-f 3 24 4
-f 4 5 13 12
-f 4 24 23
-f 4 23 5
-f 5 6 13
-f 5 23 22
-f 5 22 6
-f 6 7 14 13
-f 6 22 21
-f 6 21 7
-f 7 8 14
-f 7 21 20
-f 7 20 8
-f 8 9 15 14
-f 8 20 19
-f 8 19 9
-f 9 10 15
-f 9 19 18
-f 9 18 10
-f 10 18 17
-f 11 12 13 14 15
-f 16 17 26
-f 16 26 30 25
-f 17 18 27 26
-f 18 19 27
-f 19 20 28 27
-f 20 21 28
-f 21 22 29 28
-f 22 23 29
-f 23 24 30 29
-f 24 25 30
-f 26 27 28 29 30
diff --git a/texmf-dist/scripts/ketcindy/data/polyhedrons_obj/n47L.obj b/texmf-dist/scripts/ketcindy/data/polyhedrons_obj/n47L.obj
deleted file mode 100644
index e2fa72f6..00000000
--- a/texmf-dist/scripts/ketcindy/data/polyhedrons_obj/n47L.obj
+++ /dev/null
@@ -1,82 +0,0 @@
-v -0.28129438 -0.86573510 -0.41397609
-v -0.73643826 -0.53505372 -0.41397609
-v -0.91028775 0.00000000 -0.41397609
-v -0.73643826 0.53505372 -0.41397609
-v -0.28129439 0.86573510 -0.41397609
-v 0.28129438 0.86573510 -0.41397609
-v 0.73643826 0.53505372 -0.41397609
-v 0.91028775 0.00000000 -0.41397609
-v 0.73643826 -0.53505372 -0.41397609
-v 0.28129439 -0.86573510 -0.41397609
-v -0.28129438 -0.38716851 -0.70974651
-v -0.45514388 0.14788521 -0.70974651
-v 0.00000000 0.47856659 -0.70974651
-v 0.45514388 0.14788521 -0.70974651
-v 0.28129439 -0.38716851 -0.70974651
-v -0.53505372 -0.73643826 0.07119878
-v 0.00000000 -0.91028775 0.07119878
-v 0.53505372 -0.73643826 0.07119878
-v 0.86573510 -0.28129439 0.07119878
-v 0.86573510 0.28129438 0.07119877
-v 0.53505371 0.73643826 0.07119877
-v -0.00000000 0.91028775 0.07119877
-v -0.53505372 0.73643826 0.07119877
-v -0.86573510 0.28129439 0.07119878
-v -0.86573510 -0.28129439 0.07119878
-v -0.77433701 0.00000000 0.54976537
-v -0.23928330 -0.73643826 0.54976537
-v 0.62645180 -0.45514388 0.54976537
-v 0.62645180 0.45514388 0.54976537
-v -0.23928330 0.73643826 0.54976537
-v -0.38716851 -0.28129439 0.84553579
-v 0.14788521 -0.45514388 0.84553579
-v 0.47856659 -0.00000000 0.84553579
-v 0.14788521 0.45514388 0.84553579
-v -0.38716851 0.28129439 0.84553579
-f 1 2 11
-f 1 11 15 10
-f 1 10 17
-f 1 17 16
-f 1 16 2
-f 2 3 12 11
-f 2 16 25
-f 2 25 3
-f 3 4 12
-f 3 25 24
-f 3 24 4
-f 4 5 13 12
-f 4 24 23
-f 4 23 5
-f 5 6 13
-f 5 23 22
-f 5 22 6
-f 6 7 14 13
-f 6 22 21
-f 6 21 7
-f 7 8 14
-f 7 21 20
-f 7 20 8
-f 8 9 15 14
-f 8 20 19
-f 8 19 9
-f 9 10 15
-f 9 19 18
-f 9 18 10
-f 10 18 17
-f 11 12 13 14 15
-f 16 17 27
-f 16 27 31 26 25
-f 17 18 28 32 27
-f 18 19 28
-f 19 20 29 33 28
-f 20 21 29
-f 21 22 30 34 29
-f 22 23 30
-f 23 24 26 35 30
-f 24 25 26
-f 26 31 35
-f 27 32 31
-f 28 33 32
-f 29 34 33
-f 30 35 34
-f 31 32 33 34 35
diff --git a/texmf-dist/scripts/ketcindy/data/polyhedrons_obj/n47R.obj b/texmf-dist/scripts/ketcindy/data/polyhedrons_obj/n47R.obj
deleted file mode 100644
index 2ab53743..00000000
--- a/texmf-dist/scripts/ketcindy/data/polyhedrons_obj/n47R.obj
+++ /dev/null
@@ -1,82 +0,0 @@
-v -0.28129438 -0.86573510 -0.41397609
-v -0.73643826 -0.53505372 -0.41397609
-v -0.91028775 0.00000000 -0.41397609
-v -0.73643826 0.53505372 -0.41397609
-v -0.28129439 0.86573510 -0.41397609
-v 0.28129438 0.86573510 -0.41397609
-v 0.73643826 0.53505372 -0.41397609
-v 0.91028775 0.00000000 -0.41397609
-v 0.73643826 -0.53505372 -0.41397609
-v 0.28129439 -0.86573510 -0.41397609
-v -0.28129438 -0.38716851 -0.70974651
-v -0.45514387 0.14788521 -0.70974651
-v 0.00000000 0.47856659 -0.70974651
-v 0.45514388 0.14788521 -0.70974651
-v 0.28129439 -0.38716851 -0.70974651
-v -0.53505372 -0.73643826 0.07119878
-v 0.00000000 -0.91028775 0.07119878
-v 0.53505372 -0.73643826 0.07119878
-v 0.86573510 -0.28129439 0.07119878
-v 0.86573510 0.28129439 0.07119877
-v 0.53505371 0.73643826 0.07119877
-v -0.00000000 0.91028775 0.07119877
-v -0.53505372 0.73643826 0.07119877
-v -0.86573510 0.28129439 0.07119878
-v -0.86573510 -0.28129439 0.07119878
-v -0.62645180 -0.45514388 0.54976537
-v 0.23928330 -0.73643826 0.54976537
-v 0.77433701 -0.00000000 0.54976537
-v 0.23928329 0.73643826 0.54976537
-v -0.62645180 0.45514388 0.54976537
-v -0.14788521 -0.45514388 0.84553579
-v 0.38716851 -0.28129439 0.84553579
-v 0.38716850 0.28129439 0.84553579
-v -0.14788521 0.45514388 0.84553579
-v -0.47856659 0.00000000 0.84553579
-f 1 2 11
-f 1 11 15 10
-f 1 10 17
-f 1 17 16
-f 1 16 2
-f 2 3 12 11
-f 2 16 25
-f 2 25 3
-f 3 4 12
-f 3 25 24
-f 3 24 4
-f 4 5 13 12
-f 4 24 23
-f 4 23 5
-f 5 6 13
-f 5 23 22
-f 5 22 6
-f 6 7 14 13
-f 6 22 21
-f 6 21 7
-f 7 8 14
-f 7 21 20
-f 7 20 8
-f 8 9 15 14
-f 8 20 19
-f 8 19 9
-f 9 10 15
-f 9 19 18
-f 9 18 10
-f 10 18 17
-f 11 12 13 14 15
-f 16 17 27 31 26
-f 16 26 25
-f 17 18 27
-f 18 19 28 32 27
-f 19 20 28
-f 20 21 29 33 28
-f 21 22 29
-f 22 23 30 34 29
-f 23 24 30
-f 24 25 26 35 30
-f 26 31 35
-f 27 32 31
-f 28 33 32
-f 29 34 33
-f 30 35 34
-f 31 32 33 34 35
diff --git a/texmf-dist/scripts/ketcindy/data/polyhedrons_obj/n48L.obj b/texmf-dist/scripts/ketcindy/data/polyhedrons_obj/n48L.obj
deleted file mode 100644
index b2c4ece1..00000000
--- a/texmf-dist/scripts/ketcindy/data/polyhedrons_obj/n48L.obj
+++ /dev/null
@@ -1,92 +0,0 @@
-v -0.25028317 -0.77029241 -0.21584346
-v -0.65524986 -0.47606689 -0.21584346
-v -0.80993337 0.00000000 -0.21584346
-v -0.65524986 0.47606689 -0.21584346
-v -0.25028318 0.77029241 -0.21584346
-v 0.25028317 0.77029241 -0.21584346
-v 0.65524986 0.47606689 -0.21584346
-v 0.80993337 0.00000000 -0.21584346
-v 0.65524986 -0.47606689 -0.21584346
-v 0.25028318 -0.77029241 -0.21584346
-v 0.00000000 -0.68897047 -0.64165063
-v -0.65524986 -0.21290358 -0.64165063
-v -0.40496668 0.55738882 -0.64165063
-v 0.40496668 0.55738882 -0.64165063
-v 0.65524986 -0.21290358 -0.64165063
-v -0.25028317 -0.34448524 -0.90481393
-v -0.40496668 0.13158165 -0.90481393
-v 0.00000000 0.42580717 -0.90481393
-v 0.40496668 0.13158165 -0.90481393
-v 0.25028318 -0.34448524 -0.90481393
-v -0.47606689 -0.65524986 0.21584346
-v 0.00000000 -0.80993337 0.21584346
-v 0.47606689 -0.65524986 0.21584346
-v 0.77029241 -0.25028318 0.21584346
-v 0.77029241 0.25028317 0.21584346
-v 0.47606689 0.65524986 0.21584346
-v -0.00000000 0.80993337 0.21584346
-v -0.47606689 0.65524986 0.21584346
-v -0.77029241 0.25028317 0.21584346
-v -0.77029241 -0.25028317 0.21584346
-v -0.68897047 0.00000000 0.64165063
-v -0.21290358 -0.65524986 0.64165063
-v 0.55738882 -0.40496668 0.64165063
-v 0.55738882 0.40496668 0.64165063
-v -0.21290359 0.65524986 0.64165063
-v -0.34448524 -0.25028317 0.90481393
-v 0.13158165 -0.40496668 0.90481393
-v 0.42580717 -0.00000000 0.90481393
-v 0.13158165 0.40496668 0.90481393
-v -0.34448524 0.25028317 0.90481393
-f 1 2 12 16 11
-f 1 11 10
-f 1 10 22
-f 1 22 21
-f 1 21 2
-f 2 3 12
-f 2 21 30
-f 2 30 3
-f 3 4 13 17 12
-f 3 30 29
-f 3 29 4
-f 4 5 13
-f 4 29 28
-f 4 28 5
-f 5 6 14 18 13
-f 5 28 27
-f 5 27 6
-f 6 7 14
-f 6 27 26
-f 6 26 7
-f 7 8 15 19 14
-f 7 26 25
-f 7 25 8
-f 8 9 15
-f 8 25 24
-f 8 24 9
-f 9 10 11 20 15
-f 9 24 23
-f 9 23 10
-f 10 23 22
-f 11 16 20
-f 12 17 16
-f 13 18 17
-f 14 19 18
-f 15 20 19
-f 16 17 18 19 20
-f 21 22 32
-f 21 32 36 31 30
-f 22 23 33 37 32
-f 23 24 33
-f 24 25 34 38 33
-f 25 26 34
-f 26 27 35 39 34
-f 27 28 35
-f 28 29 31 40 35
-f 29 30 31
-f 31 36 40
-f 32 37 36
-f 33 38 37
-f 34 39 38
-f 35 40 39
-f 36 37 38 39 40
diff --git a/texmf-dist/scripts/ketcindy/data/polyhedrons_obj/n48R.obj b/texmf-dist/scripts/ketcindy/data/polyhedrons_obj/n48R.obj
deleted file mode 100644
index 004d8254..00000000
--- a/texmf-dist/scripts/ketcindy/data/polyhedrons_obj/n48R.obj
+++ /dev/null
@@ -1,92 +0,0 @@
-v -0.25028317 -0.77029241 -0.21584346
-v -0.65524986 -0.47606689 -0.21584346
-v -0.80993337 0.00000000 -0.21584346
-v -0.65524986 0.47606689 -0.21584346
-v -0.25028317 0.77029241 -0.21584346
-v 0.25028317 0.77029241 -0.21584346
-v 0.65524986 0.47606689 -0.21584346
-v 0.80993337 0.00000000 -0.21584346
-v 0.65524986 -0.47606689 -0.21584346
-v 0.25028318 -0.77029241 -0.21584346
-v 0.00000000 -0.68897047 -0.64165063
-v -0.65524986 -0.21290358 -0.64165063
-v -0.40496668 0.55738882 -0.64165063
-v 0.40496668 0.55738882 -0.64165063
-v 0.65524986 -0.21290359 -0.64165063
-v -0.25028317 -0.34448524 -0.90481393
-v -0.40496668 0.13158165 -0.90481393
-v 0.00000000 0.42580717 -0.90481393
-v 0.40496668 0.13158165 -0.90481393
-v 0.25028318 -0.34448524 -0.90481393
-v -0.47606689 -0.65524986 0.21584346
-v 0.00000000 -0.80993337 0.21584346
-v 0.47606689 -0.65524986 0.21584346
-v 0.77029241 -0.25028317 0.21584346
-v 0.77029240 0.25028317 0.21584346
-v 0.47606689 0.65524986 0.21584346
-v -0.00000000 0.80993337 0.21584346
-v -0.47606689 0.65524986 0.21584346
-v -0.77029241 0.25028317 0.21584346
-v -0.77029241 -0.25028317 0.21584346
-v -0.55738882 -0.40496668 0.64165063
-v 0.21290359 -0.65524986 0.64165063
-v 0.68897047 -0.00000000 0.64165063
-v 0.21290358 0.65524986 0.64165063
-v -0.55738882 0.40496668 0.64165063
-v -0.13158165 -0.40496668 0.90481393
-v 0.34448524 -0.25028317 0.90481393
-v 0.34448524 0.25028317 0.90481393
-v -0.13158165 0.40496668 0.90481393
-v -0.42580717 0.00000000 0.90481393
-f 1 2 12 16 11
-f 1 11 10
-f 1 10 22
-f 1 22 21
-f 1 21 2
-f 2 3 12
-f 2 21 30
-f 2 30 3
-f 3 4 13 17 12
-f 3 30 29
-f 3 29 4
-f 4 5 13
-f 4 29 28
-f 4 28 5
-f 5 6 14 18 13
-f 5 28 27
-f 5 27 6
-f 6 7 14
-f 6 27 26
-f 6 26 7
-f 7 8 15 19 14
-f 7 26 25
-f 7 25 8
-f 8 9 15
-f 8 25 24
-f 8 24 9
-f 9 10 11 20 15
-f 9 24 23
-f 9 23 10
-f 10 23 22
-f 11 16 20
-f 12 17 16
-f 13 18 17
-f 14 19 18
-f 15 20 19
-f 16 17 18 19 20
-f 21 22 32 36 31
-f 21 31 30
-f 22 23 32
-f 23 24 33 37 32
-f 24 25 33
-f 25 26 34 38 33
-f 26 27 34
-f 27 28 35 39 34
-f 28 29 35
-f 29 30 31 40 35
-f 31 36 40
-f 32 37 36
-f 33 38 37
-f 34 39 38
-f 35 40 39
-f 36 37 38 39 40
diff --git a/texmf-dist/scripts/ketcindy/data/polyhedrons_obj/n49.obj b/texmf-dist/scripts/ketcindy/data/polyhedrons_obj/n49.obj
deleted file mode 100644
index 6cedb9f8..00000000
--- a/texmf-dist/scripts/ketcindy/data/polyhedrons_obj/n49.obj
+++ /dev/null
@@ -1,15 +0,0 @@
-v -0.43001399 -0.41061161 0.57060708
-v 0.14059309 0.57770884 0.57060708
-v 0.71120016 -0.41061161 0.57060708
-v -0.43001399 -0.41061161 -0.57060708
-v 0.14059309 0.57770884 -0.57060708
-v 0.71120016 -0.41061161 -0.57060708
-v -0.84355854 0.48702875 -0.00000000
-f 1 4 6 3
-f 1 3 2
-f 1 2 7
-f 1 7 4
-f 2 3 6 5
-f 2 5 7
-f 4 5 6
-f 4 7 5
diff --git a/texmf-dist/scripts/ketcindy/data/polyhedrons_obj/n50.obj b/texmf-dist/scripts/ketcindy/data/polyhedrons_obj/n50.obj
deleted file mode 100644
index f7c4ccbc..00000000
--- a/texmf-dist/scripts/ketcindy/data/polyhedrons_obj/n50.obj
+++ /dev/null
@@ -1,19 +0,0 @@
-v -0.53205720 -0.43963661 0.53205720
-v 0.00000000 0.48191351 0.53205720
-v 0.53205720 -0.43963661 0.53205720
-v -0.53205720 -0.43963661 -0.53205720
-v 0.00000000 0.48191351 -0.53205720
-v 0.53205720 -0.43963661 -0.53205720
-v -0.91766294 0.39735971 -0.00000000
-v 0.91766294 0.39735971 -0.00000000
-f 1 4 6 3
-f 1 3 2
-f 1 2 7
-f 1 7 4
-f 2 5 7
-f 2 3 8
-f 2 8 5
-f 3 6 8
-f 4 5 6
-f 4 7 5
-f 5 8 6
diff --git a/texmf-dist/scripts/ketcindy/data/polyhedrons_obj/n51.obj b/texmf-dist/scripts/ketcindy/data/polyhedrons_obj/n51.obj
deleted file mode 100644
index 86483d6d..00000000
--- a/texmf-dist/scripts/ketcindy/data/polyhedrons_obj/n51.obj
+++ /dev/null
@@ -1,23 +0,0 @@
-v -0.50211798 -0.28989795 0.50211798
-v 0.00000000 0.57979590 0.50211798
-v 0.50211798 -0.28989795 0.50211798
-v -0.50211798 -0.28989795 -0.50211798
-v 0.00000000 0.57979590 -0.50211798
-v 0.50211798 -0.28989795 -0.50211798
-v -0.86602540 0.50000000 -0.00000000
-v 0.86602540 0.50000000 -0.00000000
-v -0.00000000 -1.00000000 -0.00000000
-f 1 3 2
-f 1 2 7
-f 1 7 4
-f 1 4 9
-f 1 9 3
-f 2 5 7
-f 2 3 8
-f 2 8 5
-f 3 6 8
-f 3 9 6
-f 4 7 5
-f 4 5 6
-f 4 6 9
-f 5 8 6
diff --git a/texmf-dist/scripts/ketcindy/data/polyhedrons_obj/n52.obj b/texmf-dist/scripts/ketcindy/data/polyhedrons_obj/n52.obj
deleted file mode 100644
index 8e67dd58..00000000
--- a/texmf-dist/scripts/ketcindy/data/polyhedrons_obj/n52.obj
+++ /dev/null
@@ -1,21 +0,0 @@
-v -0.29907545 -0.51164204 0.39418110
-v -0.54269277 0.23813497 0.39418110
-v 0.09510565 0.70152264 0.39418110
-v 0.73290407 0.23813497 0.39418110
-v 0.48928675 -0.51164204 0.39418110
-v -0.29907545 -0.51164204 -0.39418110
-v -0.54269277 0.23813497 -0.39418110
-v 0.09510565 0.70152264 -0.39418110
-v 0.73290407 0.23813497 -0.39418110
-v 0.48928675 -0.51164204 -0.39418110
-v -0.95105652 -0.30901699 -0.00000000
-f 1 6 10 5
-f 1 5 4 3 2
-f 1 2 11
-f 1 11 6
-f 2 3 8 7
-f 2 7 11
-f 3 4 9 8
-f 4 5 10 9
-f 6 7 8 9 10
-f 6 11 7
diff --git a/texmf-dist/scripts/ketcindy/data/polyhedrons_obj/n53.obj b/texmf-dist/scripts/ketcindy/data/polyhedrons_obj/n53.obj
deleted file mode 100644
index cd266e99..00000000
--- a/texmf-dist/scripts/ketcindy/data/polyhedrons_obj/n53.obj
+++ /dev/null
@@ -1,25 +0,0 @@
-v -0.33296747 -0.54286675 0.36369162
-v -0.55774125 0.14891583 0.36369162
-v 0.03072416 0.57646097 0.36369162
-v 0.61918957 0.14891583 0.36369162
-v 0.39441578 -0.54286675 0.36369162
-v -0.33296747 -0.54286675 -0.36369162
-v -0.55774125 0.14891583 -0.36369162
-v 0.03072416 0.57646097 -0.36369162
-v 0.61918957 0.14891583 -0.36369162
-v 0.39441578 -0.54286675 -0.36369162
-v -0.93451851 -0.35591453 -0.00000000
-v 0.62727693 0.77879628 -0.00000000
-f 1 6 10 5
-f 1 5 4 3 2
-f 1 2 11
-f 1 11 6
-f 2 3 8 7
-f 2 7 11
-f 3 4 12
-f 3 12 8
-f 4 5 10 9
-f 4 9 12
-f 6 7 8 9 10
-f 6 11 7
-f 8 12 9
diff --git a/texmf-dist/scripts/ketcindy/data/polyhedrons_obj/n54.obj b/texmf-dist/scripts/ketcindy/data/polyhedrons_obj/n54.obj
deleted file mode 100644
index 4377b1ff..00000000
--- a/texmf-dist/scripts/ketcindy/data/polyhedrons_obj/n54.obj
+++ /dev/null
@@ -1,24 +0,0 @@
-v -0.27215490 -0.55471945 0.34432368
-v -0.61647858 0.04166667 0.34432368
-v -0.27215490 0.63805278 0.34432368
-v 0.41649247 0.63805278 0.34432368
-v 0.76081615 0.04166667 0.34432368
-v 0.41649247 -0.55471945 0.34432368
-v -0.27215490 -0.55471945 -0.34432368
-v -0.61647858 0.04166667 -0.34432368
-v -0.27215490 0.63805278 -0.34432368
-v 0.41649247 0.63805278 -0.34432368
-v 0.76081615 0.04166667 -0.34432368
-v 0.41649247 -0.55471945 -0.34432368
-v -0.86602540 -0.50000000 -0.00000000
-f 1 7 12 6
-f 1 6 5 4 3 2
-f 1 2 13
-f 1 13 7
-f 2 3 9 8
-f 2 8 13
-f 3 4 10 9
-f 4 5 11 10
-f 5 6 12 11
-f 7 8 9 10 11 12
-f 7 13 8
diff --git a/texmf-dist/scripts/ketcindy/data/polyhedrons_obj/n55.obj b/texmf-dist/scripts/ketcindy/data/polyhedrons_obj/n55.obj
deleted file mode 100644
index cfde17fe..00000000
--- a/texmf-dist/scripts/ketcindy/data/polyhedrons_obj/n55.obj
+++ /dev/null
@@ -1,28 +0,0 @@
-v -0.31783725 -0.55051026 0.31783725
-v -0.63567449 0.00000000 0.31783725
-v -0.31783725 0.55051026 0.31783725
-v 0.31783725 0.55051026 0.31783725
-v 0.63567449 -0.00000000 0.31783725
-v 0.31783725 -0.55051026 0.31783725
-v -0.31783725 -0.55051026 -0.31783725
-v -0.63567449 0.00000000 -0.31783725
-v -0.31783725 0.55051026 -0.31783725
-v 0.31783725 0.55051026 -0.31783725
-v 0.63567449 -0.00000000 -0.31783725
-v 0.31783725 -0.55051026 -0.31783725
-v -0.86602540 -0.50000000 -0.00000000
-v 0.86602540 0.50000000 0.00000000
-f 1 7 12 6
-f 1 6 5 4 3 2
-f 1 2 13
-f 1 13 7
-f 2 3 9 8
-f 2 8 13
-f 3 4 10 9
-f 4 5 14
-f 4 14 10
-f 5 6 12 11
-f 5 11 14
-f 7 8 9 10 11 12
-f 7 13 8
-f 10 14 11
diff --git a/texmf-dist/scripts/ketcindy/data/polyhedrons_obj/n56.obj b/texmf-dist/scripts/ketcindy/data/polyhedrons_obj/n56.obj
deleted file mode 100644
index 7bae7915..00000000
--- a/texmf-dist/scripts/ketcindy/data/polyhedrons_obj/n56.obj
+++ /dev/null
@@ -1,28 +0,0 @@
-v -0.26491443 -0.60668951 0.32893287
-v -0.59384731 -0.03696106 0.32893287
-v -0.26491443 0.53276739 0.32893287
-v 0.39295131 0.53276739 0.32893287
-v 0.72188419 -0.03696106 0.32893287
-v 0.39295131 -0.60668951 0.32893287
-v -0.26491443 -0.60668951 -0.32893287
-v -0.59384731 -0.03696106 -0.32893287
-v -0.26491443 0.53276739 -0.32893287
-v 0.39295131 0.53276739 -0.32893287
-v 0.72188419 -0.03696106 -0.32893287
-v 0.39295131 -0.60668951 -0.32893287
-v -0.83223972 -0.55441595 -0.00000000
-v 0.06401844 0.99794872 -0.00000000
-f 1 7 12 6
-f 1 6 5 4 3 2
-f 1 2 13
-f 1 13 7
-f 2 3 9 8
-f 2 8 13
-f 3 4 14
-f 3 14 9
-f 4 5 11 10
-f 4 10 14
-f 5 6 12 11
-f 7 8 9 10 11 12
-f 7 13 8
-f 9 14 10
diff --git a/texmf-dist/scripts/ketcindy/data/polyhedrons_obj/n57.obj b/texmf-dist/scripts/ketcindy/data/polyhedrons_obj/n57.obj
deleted file mode 100644
index 036ae2e3..00000000
--- a/texmf-dist/scripts/ketcindy/data/polyhedrons_obj/n57.obj
+++ /dev/null
@@ -1,32 +0,0 @@
-v -0.31783725 -0.55051026 0.31783725
-v -0.63567449 0.00000000 0.31783725
-v -0.31783725 0.55051026 0.31783725
-v 0.31783725 0.55051026 0.31783725
-v 0.63567449 -0.00000000 0.31783725
-v 0.31783725 -0.55051026 0.31783725
-v -0.31783725 -0.55051026 -0.31783725
-v -0.63567449 0.00000000 -0.31783725
-v -0.31783725 0.55051026 -0.31783725
-v 0.31783725 0.55051026 -0.31783725
-v 0.63567449 -0.00000000 -0.31783725
-v 0.31783725 -0.55051026 -0.31783725
-v -0.86602540 -0.50000000 -0.00000000
-v 0.00000000 1.00000000 -0.00000000
-v 0.86602540 -0.50000000 -0.00000000
-f 1 7 12 6
-f 1 6 5 4 3 2
-f 1 2 13
-f 1 13 7
-f 2 3 9 8
-f 2 8 13
-f 3 4 14
-f 3 14 9
-f 4 5 11 10
-f 4 10 14
-f 5 6 15
-f 5 15 11
-f 6 12 15
-f 7 8 9 10 11 12
-f 7 13 8
-f 9 14 10
-f 11 15 12
diff --git a/texmf-dist/scripts/ketcindy/data/polyhedrons_obj/n58.obj b/texmf-dist/scripts/ketcindy/data/polyhedrons_obj/n58.obj
deleted file mode 100644
index a7350853..00000000
--- a/texmf-dist/scripts/ketcindy/data/polyhedrons_obj/n58.obj
+++ /dev/null
@@ -1,37 +0,0 @@
-v -0.32026891 -0.44081234 0.66324934
-v 0.32026891 -0.44081234 0.66324934
-v 0.51820598 -0.71324934 0.11837533
-v 0.00000000 -0.88162467 -0.21837533
-v -0.51820598 -0.71324934 0.11837533
-v -0.51820598 0.16837533 0.66324934
-v 0.51820598 0.16837533 0.66324934
-v 0.83847489 -0.27243701 -0.21837533
-v -0.00000000 -0.54487401 -0.76324934
-v -0.83847489 -0.27243701 -0.21837533
-v -0.83847489 0.27243701 0.11837533
-v -0.00000000 0.54487401 0.66324934
-v 0.83847489 0.27243701 0.11837533
-v 0.51820598 -0.16837533 -0.76324934
-v -0.51820598 -0.16837533 -0.76324934
-v -0.51820598 0.71324934 -0.21837533
-v 0.00000000 0.88162467 0.11837533
-v 0.51820598 0.71324934 -0.21837533
-v 0.32026891 0.44081234 -0.76324934
-v -0.32026891 0.44081234 -0.76324934
-v 0.00000000 0.00000000 1.00000000
-f 1 6 11 10 5
-f 1 5 4 3 2
-f 1 2 21
-f 1 21 6
-f 2 3 8 13 7
-f 2 7 21
-f 3 4 9 14 8
-f 4 5 10 15 9
-f 6 12 17 16 11
-f 6 21 12
-f 7 13 18 17 12
-f 7 12 21
-f 8 14 19 18 13
-f 9 15 20 19 14
-f 10 11 16 20 15
-f 16 17 18 19 20
diff --git a/texmf-dist/scripts/ketcindy/data/polyhedrons_obj/n59.obj b/texmf-dist/scripts/ketcindy/data/polyhedrons_obj/n59.obj
deleted file mode 100644
index 9981d0b4..00000000
--- a/texmf-dist/scripts/ketcindy/data/polyhedrons_obj/n59.obj
+++ /dev/null
@@ -1,42 +0,0 @@
-v -0.30501801 -0.41982127 0.67928509
-v 0.30501801 -0.41982127 0.67928509
-v 0.49352950 -0.67928509 0.16035746
-v 0.00000000 -0.83964254 -0.16035746
-v -0.49352950 -0.67928509 0.16035746
-v -0.49352950 0.16035746 0.67928509
-v 0.49352950 0.16035746 0.67928509
-v 0.79854751 -0.25946382 -0.16035746
-v -0.00000000 -0.51892763 -0.67928509
-v -0.79854751 -0.25946382 -0.16035746
-v -0.79854751 0.25946382 0.16035746
-v -0.00000000 0.51892763 0.67928509
-v 0.79854751 0.25946382 0.16035746
-v 0.49352950 -0.16035746 -0.67928509
-v -0.49352950 -0.16035746 -0.67928509
-v -0.49352950 0.67928509 -0.16035746
-v 0.00000000 0.83964254 0.16035746
-v 0.49352950 0.67928509 -0.16035746
-v 0.30501801 0.41982127 -0.67928509
-v -0.30501801 0.41982127 -0.67928509
-v 0.00000000 0.00000000 1.00000000
-v -0.00000000 0.00000000 -1.00000000
-f 1 6 11 10 5
-f 1 5 4 3 2
-f 1 2 21
-f 1 21 6
-f 2 3 8 13 7
-f 2 7 21
-f 3 4 9 14 8
-f 4 5 10 15 9
-f 6 12 17 16 11
-f 6 21 12
-f 7 13 18 17 12
-f 7 12 21
-f 8 14 19 18 13
-f 9 15 22
-f 9 22 14
-f 10 11 16 20 15
-f 14 22 19
-f 15 20 22
-f 16 17 18 19 20
-f 19 22 20
diff --git a/texmf-dist/scripts/ketcindy/data/polyhedrons_obj/n60.obj b/texmf-dist/scripts/ketcindy/data/polyhedrons_obj/n60.obj
deleted file mode 100644
index 27819bd4..00000000
--- a/texmf-dist/scripts/ketcindy/data/polyhedrons_obj/n60.obj
+++ /dev/null
@@ -1,42 +0,0 @@
-v -0.35223599 -0.44314381 0.67043614
-v 0.27297981 -0.44314381 0.67043614
-v 0.46618212 -0.70906397 0.13859581
-v -0.03962809 -0.87341167 -0.19009959
-v -0.54543830 -0.70906397 0.13859581
-v -0.54543830 0.15147175 0.67043614
-v 0.46618212 0.15147175 0.67043614
-v 0.77879002 -0.27879611 -0.19009959
-v -0.03962809 -0.54471627 -0.72193992
-v -0.85804620 -0.27879611 -0.19009959
-v -0.85804620 0.25304422 0.13859581
-v -0.03962809 0.51896438 0.67043614
-v 0.77879002 0.25304422 0.13859581
-v 0.46618212 -0.17722365 -0.72193992
-v -0.54543830 -0.17722365 -0.72193992
-v -0.54543830 0.68331208 -0.19009959
-v -0.03962809 0.84765978 0.13859581
-v 0.46618212 0.68331208 -0.19009959
-v 0.27297981 0.41739192 -0.72193992
-v -0.35223599 0.41739192 -0.72193992
-v -0.03962809 -0.01287595 0.99913154
-v 0.83218983 0.27039487 -0.48409369
-f 1 6 11 10 5
-f 1 5 4 3 2
-f 1 2 21
-f 1 21 6
-f 2 3 8 13 7
-f 2 7 21
-f 3 4 9 14 8
-f 4 5 10 15 9
-f 6 12 17 16 11
-f 6 21 12
-f 7 13 18 17 12
-f 7 12 21
-f 8 14 22
-f 8 22 13
-f 9 15 20 19 14
-f 10 11 16 20 15
-f 13 22 18
-f 14 19 22
-f 16 17 18 19 20
-f 18 22 19
diff --git a/texmf-dist/scripts/ketcindy/data/polyhedrons_obj/n61.obj b/texmf-dist/scripts/ketcindy/data/polyhedrons_obj/n61.obj
deleted file mode 100644
index 9668c496..00000000
--- a/texmf-dist/scripts/ketcindy/data/polyhedrons_obj/n61.obj
+++ /dev/null
@@ -1,47 +0,0 @@
-v -0.32052320 -0.40210626 0.67760869
-v 0.29214730 -0.40210626 0.67760869
-v 0.48147290 -0.66269059 0.15644003
-v -0.01418795 -0.82374057 -0.16565992
-v -0.50984880 -0.66269059 0.15644003
-v -0.50984880 0.18057801 0.67760869
-v 0.48147290 0.18057801 0.67760869
-v 0.78780815 -0.24105629 -0.16565992
-v -0.01418795 -0.50164062 -0.68682858
-v -0.81618406 -0.24105629 -0.16565992
-v -0.81618406 0.28011237 0.15644003
-v -0.01418795 0.54069670 0.67760869
-v 0.78780815 0.28011237 0.15644003
-v 0.48147290 -0.14152193 -0.68682858
-v -0.50984880 -0.14152193 -0.68682858
-v -0.50984880 0.70174667 -0.16565992
-v -0.01418795 0.86279665 0.15644003
-v 0.48147290 0.70174667 -0.16565992
-v 0.29214730 0.44116234 -0.68682858
-v -0.32052320 0.44116234 -0.68682858
-v -0.01418795 0.01952804 0.99970864
-v 0.84013646 0.29711487 -0.45375487
-v -0.54218948 -0.70720371 -0.45375487
-f 1 6 11 10 5
-f 1 5 4 3 2
-f 1 2 21
-f 1 21 6
-f 2 3 8 13 7
-f 2 7 21
-f 3 4 9 14 8
-f 4 5 23
-f 4 23 9
-f 5 10 23
-f 6 12 17 16 11
-f 6 21 12
-f 7 13 18 17 12
-f 7 12 21
-f 8 14 22
-f 8 22 13
-f 9 15 20 19 14
-f 9 23 15
-f 10 11 16 20 15
-f 10 15 23
-f 13 22 18
-f 14 19 22
-f 16 17 18 19 20
-f 18 22 19
diff --git a/texmf-dist/scripts/ketcindy/data/polyhedrons_obj/n62.obj b/texmf-dist/scripts/ketcindy/data/polyhedrons_obj/n62.obj
deleted file mode 100644
index 270b879b..00000000
--- a/texmf-dist/scripts/ketcindy/data/polyhedrons_obj/n62.obj
+++ /dev/null
@@ -1,22 +0,0 @@
-v -0.48194883 -0.71402076 0.32797613
-v 0.00000000 -0.87061543 -0.49196420
-v 0.00000000 -0.05067510 -0.99871519
-v -0.48194883 0.61267056 -0.49196420
-v -0.77980959 0.20270040 0.32797613
-v 0.48194883 -0.71402076 0.32797613
-v 0.77980959 0.20270040 0.32797613
-v 0.48194883 0.61267056 -0.49196420
-v -0.00000000 0.76926523 0.32797613
-v 0.00000000 -0.05067510 0.83472713
-f 1 5 4 3 2
-f 1 2 6
-f 1 6 10
-f 1 10 5
-f 2 3 8 7 6
-f 3 4 8
-f 4 5 9
-f 4 9 8
-f 5 10 9
-f 6 7 10
-f 7 8 9
-f 7 9 10
diff --git a/texmf-dist/scripts/ketcindy/data/polyhedrons_obj/n63.obj b/texmf-dist/scripts/ketcindy/data/polyhedrons_obj/n63.obj
deleted file mode 100644
index ee44b2b3..00000000
--- a/texmf-dist/scripts/ketcindy/data/polyhedrons_obj/n63.obj
+++ /dev/null
@@ -1,17 +0,0 @@
-v -0.50051680 -0.74737722 0.43693274
-v 0.00000000 -0.91000499 -0.41459730
-v -0.00000000 -0.05847495 -0.94087181
-v -0.50051680 0.63042733 -0.41459730
-v -0.80985320 0.20466231 0.43693274
-v 0.50051680 -0.74737722 0.43693274
-v 0.80985320 0.20466231 0.43693274
-v 0.50051680 0.63042733 -0.41459730
-v 0.00000000 0.79305510 0.43693274
-f 1 2 6
-f 1 6 7 9 5
-f 1 5 4 3 2
-f 2 3 8 7 6
-f 3 4 8
-f 4 5 9
-f 4 9 8
-f 7 8 9
diff --git a/texmf-dist/scripts/ketcindy/data/polyhedrons_obj/n64.obj b/texmf-dist/scripts/ketcindy/data/polyhedrons_obj/n64.obj
deleted file mode 100644
index f1aadc5c..00000000
--- a/texmf-dist/scripts/ketcindy/data/polyhedrons_obj/n64.obj
+++ /dev/null
@@ -1,20 +0,0 @@
-v -0.34047064 -0.39925597 0.27637473
-v 0.00000000 -0.50988159 -0.30286852
-v -0.00000000 0.06936166 -0.66086054
-v -0.34047064 0.53797929 -0.30286852
-v -0.55089306 0.24835767 0.27637473
-v 0.34047064 -0.39925597 0.27637473
-v 0.55089306 0.24835767 0.27637473
-v 0.34047064 0.53797929 -0.30286852
-v 0.00000000 0.64860491 0.27637473
-v 0.00000000 -0.98224695 0.18759247
-f 1 6 7 9 5
-f 1 5 4 3 2
-f 1 2 10
-f 1 10 6
-f 2 3 8 7 6
-f 2 6 10
-f 3 4 8
-f 4 5 9
-f 4 9 8
-f 7 8 9
diff --git a/texmf-dist/scripts/ketcindy/data/polyhedrons_obj/n65.obj b/texmf-dist/scripts/ketcindy/data/polyhedrons_obj/n65.obj
deleted file mode 100644
index e5e0ba78..00000000
--- a/texmf-dist/scripts/ketcindy/data/polyhedrons_obj/n65.obj
+++ /dev/null
@@ -1,29 +0,0 @@
-v -0.35007002 -0.41770024 0.49544036
-v -0.70014004 0.18863882 0.49544036
-v -0.35007002 0.79497788 0.49544036
-v 0.35007002 0.79497788 0.49544036
-v 0.70014004 0.18863882 0.49544036
-v 0.35007002 -0.41770024 0.49544036
-v -0.70014004 -0.21558722 -0.07622159
-v 0.00000000 0.99709090 -0.07622159
-v 0.70014004 -0.21558722 -0.07622159
-v -0.35007002 -0.01347420 -0.64788354
-v 0.00000000 0.59286486 -0.64788354
-v 0.35007002 -0.01347420 -0.64788354
-v -0.00000000 -0.88929729 0.11433239
-v -0.35007002 -0.68718427 -0.45732956
-v 0.35007002 -0.68718427 -0.45732956
-f 1 6 5 4 3 2
-f 1 2 7
-f 1 7 14 13
-f 1 13 6
-f 2 3 8 11 10 7
-f 3 4 8
-f 4 5 9 12 11 8
-f 5 6 9
-f 6 13 15 9
-f 7 10 14
-f 9 15 12
-f 10 11 12
-f 10 12 15 14
-f 13 14 15
diff --git a/texmf-dist/scripts/ketcindy/data/polyhedrons_obj/n66.obj b/texmf-dist/scripts/ketcindy/data/polyhedrons_obj/n66.obj
deleted file mode 100644
index 8bcd109e..00000000
--- a/texmf-dist/scripts/ketcindy/data/polyhedrons_obj/n66.obj
+++ /dev/null
@@ -1,50 +0,0 @@
-v -0.15528707 -0.51338206 0.61130639
-v -0.51338206 -0.15528707 0.61130639
-v -0.51338206 0.35113572 0.61130639
-v -0.15528707 0.70923071 0.61130639
-v 0.35113572 0.70923071 0.61130639
-v 0.70923071 0.35113572 0.61130639
-v 0.70923071 -0.15528707 0.61130639
-v 0.35113572 -0.51338206 0.61130639
-v 0.09792433 -0.76659346 0.25321140
-v -0.76659346 0.09792433 0.25321140
-v 0.09792433 0.96244211 0.25321140
-v 0.96244211 0.09792433 0.25321140
-v 0.09792433 -0.76659346 -0.25321140
-v -0.76659346 0.09792433 -0.25321140
-v 0.09792433 0.96244211 -0.25321140
-v 0.96244211 0.09792433 -0.25321140
-v -0.15528707 -0.51338206 -0.61130639
-v -0.51338206 -0.15528707 -0.61130639
-v -0.51338206 0.35113572 -0.61130639
-v -0.15528707 0.70923071 -0.61130639
-v 0.35113572 0.70923071 -0.61130639
-v 0.70923071 0.35113572 -0.61130639
-v 0.70923071 -0.15528707 -0.61130639
-v 0.35113572 -0.51338206 -0.61130639
-v -0.33433456 -0.84075736 0.00000000
-v -0.58754596 -0.58754596 0.35809499
-v -0.84075736 -0.33433456 0.00000000
-v -0.58754596 -0.58754596 -0.35809499
-f 1 9 8
-f 1 8 7 6 5 4 3 2
-f 1 2 26
-f 1 26 25 9
-f 2 3 10
-f 2 10 27 26
-f 3 4 11 15 20 19 14 10
-f 4 5 11
-f 5 6 12 16 22 21 15 11
-f 6 7 12
-f 7 8 9 13 24 23 16 12
-f 9 25 13
-f 10 14 27
-f 13 17 24
-f 13 25 28 17
-f 14 19 18
-f 14 18 28 27
-f 15 21 20
-f 16 23 22
-f 17 18 19 20 21 22 23 24
-f 17 28 18
-f 25 26 27 28
diff --git a/texmf-dist/scripts/ketcindy/data/polyhedrons_obj/n67.obj b/texmf-dist/scripts/ketcindy/data/polyhedrons_obj/n67.obj
deleted file mode 100644
index 58572003..00000000
--- a/texmf-dist/scripts/ketcindy/data/polyhedrons_obj/n67.obj
+++ /dev/null
@@ -1,62 +0,0 @@
-v -0.24502111 -0.59153329 0.59153329
-v -0.59153329 -0.24502111 0.59153329
-v -0.59153329 0.24502111 0.59153329
-v -0.24502111 0.59153329 0.59153329
-v 0.24502111 0.59153329 0.59153329
-v 0.59153329 0.24502111 0.59153329
-v 0.59153329 -0.24502111 0.59153329
-v 0.24502111 -0.59153329 0.59153329
-v 0.00000000 -0.83655440 0.24502111
-v -0.83655441 0.00000000 0.24502111
-v 0.00000000 0.83655440 0.24502111
-v 0.83655441 -0.00000000 0.24502111
-v -0.00000000 -0.83655440 -0.24502111
-v -0.83655441 0.00000000 -0.24502111
-v 0.00000000 0.83655440 -0.24502111
-v 0.83655441 -0.00000000 -0.24502111
-v -0.24502111 -0.59153329 -0.59153329
-v -0.59153329 -0.24502111 -0.59153329
-v -0.59153329 0.24502111 -0.59153329
-v -0.24502111 0.59153329 -0.59153329
-v 0.24502111 0.59153329 -0.59153329
-v 0.59153329 0.24502111 -0.59153329
-v 0.59153329 -0.24502111 -0.59153329
-v 0.24502111 -0.59153329 -0.59153329
-v -0.41827720 -0.90831943 -0.00000000
-v -0.66329831 -0.66329831 0.34651218
-v -0.90831943 -0.41827720 0.00000000
-v -0.66329832 -0.66329831 -0.34651218
-v 0.41827720 0.90831943 -0.00000000
-v 0.66329831 0.66329831 0.34651218
-v 0.90831943 0.41827720 0.00000000
-v 0.66329831 0.66329831 -0.34651218
-f 1 9 8
-f 1 8 7 6 5 4 3 2
-f 1 2 26
-f 1 26 25 9
-f 2 3 10
-f 2 10 27 26
-f 3 4 11 15 20 19 14 10
-f 4 5 11
-f 5 6 30
-f 5 30 29 11
-f 6 7 12
-f 6 12 31 30
-f 7 8 9 13 24 23 16 12
-f 9 25 13
-f 10 14 27
-f 11 29 15
-f 12 16 31
-f 13 17 24
-f 13 25 28 17
-f 14 19 18
-f 14 18 28 27
-f 15 21 20
-f 15 29 32 21
-f 16 23 22
-f 16 22 32 31
-f 17 18 19 20 21 22 23 24
-f 17 28 18
-f 21 32 22
-f 25 26 27 28
-f 29 30 31 32
diff --git a/texmf-dist/scripts/ketcindy/data/polyhedrons_obj/n68.obj b/texmf-dist/scripts/ketcindy/data/polyhedrons_obj/n68.obj
deleted file mode 100644
index fbf46178..00000000
--- a/texmf-dist/scripts/ketcindy/data/polyhedrons_obj/n68.obj
+++ /dev/null
@@ -1,107 +0,0 @@
-v -0.15790394 -0.48597835 0.71307107
-v -0.41339788 -0.30035114 0.71307107
-v -0.51098788 0.00000000 0.71307107
-v -0.41339788 0.30035114 0.71307107
-v -0.15790394 0.48597835 0.71307107
-v 0.15790394 0.48597835 0.71307107
-v 0.41339788 0.30035114 0.71307107
-v 0.51098788 0.00000000 0.71307107
-v 0.41339788 -0.30035114 0.71307107
-v 0.15790394 -0.48597835 0.71307107
-v -0.00000000 -0.70331448 0.54704104
-v -0.00000000 -0.86934451 0.27839881
-v 0.15790394 -0.92065061 0.00975659
-v 0.41339788 -0.83763559 -0.15627344
-v 0.66889182 -0.65200838 -0.15627344
-v 0.82679576 -0.43467225 0.00975659
-v 0.82679576 -0.26864223 0.27839881
-v 0.66889182 -0.21733613 0.54704104
-v -0.15790394 -0.92065061 0.00975659
-v -0.41339788 -0.83763559 -0.15627344
-v -0.66889182 -0.65200838 -0.15627344
-v -0.82679576 -0.43467225 0.00975659
-v -0.82679576 -0.26864223 0.27839881
-v -0.66889182 -0.21733613 0.54704104
-v -0.92438576 -0.13432111 0.00975659
-v -0.92438576 0.13432111 -0.15627344
-v -0.82679576 0.43467225 -0.15627344
-v -0.66889182 0.65200838 0.00975659
-v -0.51098788 0.70331448 0.27839881
-v -0.41339788 0.56899337 0.54704104
-v -0.41339788 0.83763559 0.00975659
-v -0.15790394 0.92065061 -0.15627344
-v 0.15790394 0.92065060 -0.15627344
-v 0.41339788 0.83763559 0.00975659
-v 0.51098788 0.70331448 0.27839881
-v 0.41339788 0.56899337 0.54704104
-v 0.66889182 0.65200838 0.00975659
-v 0.82679576 0.43467225 -0.15627344
-v 0.92438576 0.13432111 -0.15627344
-v 0.92438576 -0.13432111 0.00975659
-v 0.51098788 -0.70331448 -0.42491566
-v 0.41339788 -0.56899337 -0.69355789
-v 0.15790394 -0.48597835 -0.85958792
-v -0.15790394 -0.48597835 -0.85958792
-v -0.41339788 -0.56899337 -0.69355789
-v -0.51098788 -0.70331448 -0.42491566
-v -0.41339788 -0.30035114 -0.85958792
-v -0.51098788 0.00000000 -0.85958792
-v -0.66889182 0.21733613 -0.69355789
-v -0.82679576 0.26864223 -0.42491566
-v -0.41339788 0.30035114 -0.85958792
-v -0.15790394 0.48597835 -0.85958792
-v 0.00000000 0.70331448 -0.69355789
-v 0.00000000 0.86934451 -0.42491566
-v 0.15790394 0.48597835 -0.85958792
-v 0.41339788 0.30035114 -0.85958792
-v 0.66889182 0.21733613 -0.69355789
-v 0.82679576 0.26864223 -0.42491566
-v 0.51098788 -0.00000000 -0.85958792
-v 0.41339788 -0.30035114 -0.85958792
-v -0.15790394 -0.21733613 0.87910109
-v 0.15790394 -0.21733613 0.87910109
-v 0.25549394 0.08301501 0.87910109
-v 0.00000000 0.26864223 0.87910109
-v -0.25549394 0.08301501 0.87910109
-f 1 2 24 23 22 21 20 19 12 11
-f 1 11 10
-f 1 10 62 61
-f 1 61 2
-f 2 3 24
-f 2 61 65 3
-f 3 4 30 29 28 27 26 25 23 24
-f 3 65 4
-f 4 5 30
-f 4 65 64 5
-f 5 6 36 35 34 33 32 31 29 30
-f 5 64 6
-f 6 7 36
-f 6 64 63 7
-f 7 8 18 17 40 39 38 37 35 36
-f 7 63 8
-f 8 9 18
-f 8 63 62 9
-f 9 10 11 12 13 14 15 16 17 18
-f 9 62 10
-f 12 19 13
-f 13 19 20 46 45 44 43 42 41 14
-f 14 41 15
-f 15 41 42 60 59 57 58 39 40 16
-f 16 40 17
-f 20 21 46
-f 21 22 25 26 50 49 48 47 45 46
-f 22 23 25
-f 26 27 50
-f 27 28 31 32 54 53 52 51 49 50
-f 28 29 31
-f 32 33 54
-f 33 34 37 38 58 57 56 55 53 54
-f 34 35 37
-f 38 39 58
-f 42 43 60
-f 43 44 47 48 51 52 55 56 59 60
-f 44 45 47
-f 48 49 51
-f 52 53 55
-f 56 57 59
-f 61 62 63 64 65
diff --git a/texmf-dist/scripts/ketcindy/data/polyhedrons_obj/n69.obj b/texmf-dist/scripts/ketcindy/data/polyhedrons_obj/n69.obj
deleted file mode 100644
index 2e11a375..00000000
--- a/texmf-dist/scripts/ketcindy/data/polyhedrons_obj/n69.obj
+++ /dev/null
@@ -1,122 +0,0 @@
-v -0.15957569 -0.49112347 0.79465447
-v -0.41777458 -0.30353100 0.79465447
-v -0.51639778 0.00000000 0.79465447
-v -0.41777458 0.30353100 0.79465447
-v -0.15957569 0.49112347 0.79465447
-v 0.15957569 0.49112347 0.79465447
-v 0.41777458 0.30353100 0.79465447
-v 0.51639778 0.00000000 0.79465447
-v 0.41777458 -0.30353100 0.79465447
-v 0.15957569 -0.49112347 0.79465447
-v -0.00000000 -0.71076057 0.62686666
-v -0.00000000 -0.87854838 0.35538028
-v 0.15957569 -0.93039766 0.08389390
-v 0.41777458 -0.84650376 -0.08389390
-v 0.67597347 -0.65891128 -0.08389390
-v 0.83554916 -0.43927419 0.08389390
-v 0.83554916 -0.27148638 0.35538028
-v 0.67597347 -0.21963709 0.62686666
-v -0.15957569 -0.93039766 0.08389390
-v -0.41777458 -0.84650376 -0.08389390
-v -0.67597347 -0.65891128 -0.08389390
-v -0.83554916 -0.43927419 0.08389391
-v -0.83554916 -0.27148638 0.35538028
-v -0.67597347 -0.21963709 0.62686666
-v -0.93417236 -0.13574319 0.08389390
-v -0.93417236 0.13574319 -0.08389390
-v -0.83554916 0.43927419 -0.08389390
-v -0.67597347 0.65891128 0.08389390
-v -0.51639778 0.71076057 0.35538028
-v -0.41777458 0.57501738 0.62686666
-v -0.41777458 0.84650376 0.08389390
-v -0.15957569 0.93039766 -0.08389390
-v 0.15957569 0.93039766 -0.08389390
-v 0.41777458 0.84650376 0.08389390
-v 0.51639778 0.71076057 0.35538028
-v 0.41777458 0.57501738 0.62686666
-v 0.67597347 0.65891128 0.08389390
-v 0.83554916 0.43927419 -0.08389390
-v 0.93417236 0.13574319 -0.08389390
-v 0.93417236 -0.13574319 0.08389390
-v 0.51639778 -0.71076057 -0.35538028
-v 0.41777458 -0.57501738 -0.62686666
-v 0.15957569 -0.49112347 -0.79465447
-v -0.15957569 -0.49112347 -0.79465447
-v -0.41777458 -0.57501738 -0.62686666
-v -0.51639778 -0.71076057 -0.35538028
-v -0.41777458 -0.30353100 -0.79465447
-v -0.51639778 0.00000000 -0.79465447
-v -0.67597347 0.21963709 -0.62686666
-v -0.83554916 0.27148638 -0.35538028
-v -0.41777458 0.30353100 -0.79465447
-v -0.15957569 0.49112347 -0.79465447
-v -0.00000000 0.71076057 -0.62686666
-v -0.00000000 0.87854838 -0.35538028
-v 0.15957569 0.49112347 -0.79465447
-v 0.41777458 0.30353100 -0.79465447
-v 0.67597347 0.21963709 -0.62686666
-v 0.83554916 0.27148638 -0.35538028
-v 0.51639778 -0.00000000 -0.79465447
-v 0.41777458 -0.30353100 -0.79465447
-v -0.15957569 -0.21963709 0.96244228
-v 0.15957569 -0.21963709 0.96244228
-v 0.25819889 0.08389390 0.96244228
-v -0.00000000 0.27148638 0.96244228
-v -0.25819889 0.08389390 0.96244228
-v -0.00000000 -0.27148638 -0.96244228
-v -0.25819889 -0.08389390 -0.96244228
-v -0.15957569 0.21963709 -0.96244228
-v 0.15957569 0.21963709 -0.96244228
-v 0.25819889 -0.08389390 -0.96244228
-f 1 2 24 23 22 21 20 19 12 11
-f 1 11 10
-f 1 10 62 61
-f 1 61 2
-f 2 3 24
-f 2 61 65 3
-f 3 4 30 29 28 27 26 25 23 24
-f 3 65 4
-f 4 5 30
-f 4 65 64 5
-f 5 6 36 35 34 33 32 31 29 30
-f 5 64 6
-f 6 7 36
-f 6 64 63 7
-f 7 8 18 17 40 39 38 37 35 36
-f 7 63 8
-f 8 9 18
-f 8 63 62 9
-f 9 10 11 12 13 14 15 16 17 18
-f 9 62 10
-f 12 19 13
-f 13 19 20 46 45 44 43 42 41 14
-f 14 41 15
-f 15 41 42 60 59 57 58 39 40 16
-f 16 40 17
-f 20 21 46
-f 21 22 25 26 50 49 48 47 45 46
-f 22 23 25
-f 26 27 50
-f 27 28 31 32 54 53 52 51 49 50
-f 28 29 31
-f 32 33 54
-f 33 34 37 38 58 57 56 55 53 54
-f 34 35 37
-f 38 39 58
-f 42 43 60
-f 43 44 66
-f 43 66 70 60
-f 44 45 47
-f 44 47 67 66
-f 47 48 67
-f 48 49 51
-f 48 51 68 67
-f 51 52 68
-f 52 53 55
-f 52 55 69 68
-f 55 56 69
-f 56 57 59
-f 56 59 70 69
-f 59 60 70
-f 61 62 63 64 65
-f 66 67 68 69 70
diff --git a/texmf-dist/scripts/ketcindy/data/polyhedrons_obj/n70.obj b/texmf-dist/scripts/ketcindy/data/polyhedrons_obj/n70.obj
deleted file mode 100644
index 62c1da41..00000000
--- a/texmf-dist/scripts/ketcindy/data/polyhedrons_obj/n70.obj
+++ /dev/null
@@ -1,122 +0,0 @@
-v -0.21398275 -0.46330675 0.74252390
-v -0.46736036 -0.27921715 0.74252390
-v -0.56414199 0.01864609 0.74252390
-v -0.46736036 0.31650933 0.74252390
-v -0.21398275 0.50059894 0.74252390
-v 0.09920920 0.50059894 0.74252390
-v 0.35258680 0.31650933 0.74252390
-v 0.44936843 0.01864609 0.74252390
-v 0.35258680 -0.27921715 0.74252390
-v 0.09920920 -0.46330675 0.74252390
-v -0.05738678 -0.67884262 0.57786915
-v -0.05738678 -0.84349737 0.31145217
-v 0.09920920 -0.89437848 0.04503519
-v 0.35258680 -0.81205111 -0.11961956
-v 0.60596441 -0.62796150 -0.11961956
-v 0.76256038 -0.41242564 0.04503519
-v 0.76256038 -0.24777089 0.31145217
-v 0.60596441 -0.19688977 0.57786915
-v -0.21398275 -0.89437848 0.04503519
-v -0.46736036 -0.81205111 -0.11961956
-v -0.72073796 -0.62796150 -0.11961956
-v -0.87733393 -0.41242564 0.04503519
-v -0.87733393 -0.24777089 0.31145217
-v -0.72073796 -0.19688977 0.57786915
-v -0.97411557 -0.11456240 0.04503519
-v -0.97411557 0.15185459 -0.11961956
-v -0.87733393 0.44971782 -0.11961956
-v -0.72073796 0.66525369 0.04503519
-v -0.56414199 0.71613481 0.31145217
-v -0.46736036 0.58292632 0.57786915
-v -0.46736036 0.84934330 0.04503519
-v -0.21398275 0.93167067 -0.11961956
-v 0.09920920 0.93167067 -0.11961956
-v 0.35258680 0.84934330 0.04503519
-v 0.44936843 0.71613481 0.31145217
-v 0.35258680 0.58292632 0.57786915
-v 0.60596441 0.66525369 0.04503519
-v 0.76256038 0.44971782 -0.11961956
-v 0.85934201 0.15185458 -0.11961956
-v 0.85934201 -0.11456240 0.04503519
-v 0.44936843 -0.67884262 -0.38603654
-v 0.35258680 -0.54563413 -0.65245352
-v 0.09920920 -0.46330675 -0.81710827
-v -0.21398275 -0.46330675 -0.81710827
-v -0.46736036 -0.54563413 -0.65245352
-v -0.56414199 -0.67884262 -0.38603654
-v -0.46736035 -0.27921715 -0.81710827
-v -0.56414199 0.01864609 -0.81710827
-v -0.72073796 0.23418196 -0.65245352
-v -0.87733393 0.28506308 -0.38603654
-v -0.46736035 0.31650933 -0.81710827
-v -0.21398275 0.50059894 -0.81710827
-v -0.05738678 0.71613481 -0.65245352
-v -0.05738678 0.88078955 -0.38603654
-v 0.09920919 0.50059894 -0.81710827
-v 0.35258680 0.31650933 -0.81710827
-v 0.60596441 0.23418196 -0.65245353
-v 0.76256038 0.28506307 -0.38603654
-v 0.44936843 0.01864609 -0.81710827
-v 0.35258680 -0.27921715 -0.81710827
-v -0.21398275 -0.19688977 0.90717865
-v 0.09920920 -0.19688977 0.90717865
-v 0.19599083 0.10097347 0.90717865
-v -0.05738678 0.28506308 0.90717865
-v -0.31076438 0.10097347 0.90717865
-v 0.78931016 -0.42111717 -0.26689125
-v 0.63271419 -0.47199828 -0.53330823
-v 0.63271419 -0.20558130 -0.69796298
-v 0.78931016 0.00995456 -0.53330823
-v 0.88609180 -0.12325393 -0.26689125
-f 1 2 24 23 22 21 20 19 12 11
-f 1 11 10
-f 1 10 62 61
-f 1 61 2
-f 2 3 24
-f 2 61 65 3
-f 3 4 30 29 28 27 26 25 23 24
-f 3 65 4
-f 4 5 30
-f 4 65 64 5
-f 5 6 36 35 34 33 32 31 29 30
-f 5 64 6
-f 6 7 36
-f 6 64 63 7
-f 7 8 18 17 40 39 38 37 35 36
-f 7 63 8
-f 8 9 18
-f 8 63 62 9
-f 9 10 11 12 13 14 15 16 17 18
-f 9 62 10
-f 12 19 13
-f 13 19 20 46 45 44 43 42 41 14
-f 14 41 15
-f 15 41 67 66
-f 15 66 16
-f 16 40 17
-f 16 66 70 40
-f 20 21 46
-f 21 22 25 26 50 49 48 47 45 46
-f 22 23 25
-f 26 27 50
-f 27 28 31 32 54 53 52 51 49 50
-f 28 29 31
-f 32 33 54
-f 33 34 37 38 58 57 56 55 53 54
-f 34 35 37
-f 38 39 58
-f 39 40 70
-f 39 70 69 58
-f 41 42 67
-f 42 43 60
-f 42 60 68 67
-f 43 44 47 48 51 52 55 56 59 60
-f 44 45 47
-f 48 49 51
-f 52 53 55
-f 56 57 59
-f 57 58 69
-f 57 69 68 59
-f 59 68 60
-f 61 62 63 64 65
-f 66 67 68 69 70
diff --git a/texmf-dist/scripts/ketcindy/data/polyhedrons_obj/n71.obj b/texmf-dist/scripts/ketcindy/data/polyhedrons_obj/n71.obj
deleted file mode 100644
index 331009af..00000000
--- a/texmf-dist/scripts/ketcindy/data/polyhedrons_obj/n71.obj
+++ /dev/null
@@ -1,137 +0,0 @@
-v -0.17974856 -0.51787354 0.78493349
-v -0.43698164 -0.33098277 0.78493349
-v -0.53523593 -0.02858715 0.78493349
-v -0.43698164 0.27380847 0.78493349
-v -0.17974856 0.46069924 0.78493349
-v 0.13820900 0.46069924 0.78493349
-v 0.39544208 0.27380847 0.78493349
-v 0.49369637 -0.02858715 0.78493349
-v 0.39544208 -0.33098277 0.78493349
-v 0.13820900 -0.51787354 0.78493349
-v -0.02076978 -0.73668906 0.61777331
-v -0.02076978 -0.90384925 0.34730244
-v 0.13820900 -0.95550458 0.07683158
-v 0.39544208 -0.87192449 -0.09032860
-v 0.65267515 -0.68503372 -0.09032860
-v 0.81165394 -0.46621820 0.07683158
-v 0.81165394 -0.29905801 0.34730244
-v 0.65267515 -0.24740267 0.61777331
-v -0.17974856 -0.95550458 0.07683158
-v -0.43698164 -0.87192449 -0.09032860
-v -0.69421472 -0.68503372 -0.09032860
-v -0.85319350 -0.46621820 0.07683158
-v -0.85319350 -0.29905801 0.34730244
-v -0.69421472 -0.24740267 0.61777331
-v -0.95144779 -0.16382258 0.07683158
-v -0.95144779 0.10664828 -0.09032860
-v -0.85319350 0.40904390 -0.09032860
-v -0.69421472 0.62785942 0.07683158
-v -0.53523593 0.67951476 0.34730244
-v -0.43698164 0.54427933 0.61777331
-v -0.43698164 0.81475019 0.07683158
-v -0.17974856 0.89833028 -0.09032860
-v 0.13820900 0.89833028 -0.09032860
-v 0.39544208 0.81475019 0.07683158
-v 0.49369637 0.67951476 0.34730244
-v 0.39544208 0.54427933 0.61777331
-v 0.65267515 0.62785942 0.07683158
-v 0.81165394 0.40904390 -0.09032860
-v 0.90990823 0.10664828 -0.09032860
-v 0.90990823 -0.16382258 0.07683158
-v 0.49369637 -0.73668906 -0.36079947
-v 0.39544208 -0.60145363 -0.63127033
-v 0.13820900 -0.51787354 -0.79843051
-v -0.17974856 -0.51787354 -0.79843051
-v -0.43698164 -0.60145363 -0.63127033
-v -0.53523593 -0.73668906 -0.36079947
-v -0.43698164 -0.33098277 -0.79843051
-v -0.53523593 -0.02858715 -0.79843051
-v -0.69421472 0.19022837 -0.63127033
-v -0.85319350 0.24188371 -0.36079947
-v -0.43698164 0.27380847 -0.79843051
-v -0.17974856 0.46069924 -0.79843051
-v -0.02076978 0.67951476 -0.63127033
-v -0.02076978 0.84667494 -0.36079947
-v 0.13820900 0.46069923 -0.79843051
-v 0.39544208 0.27380847 -0.79843051
-v 0.65267515 0.19022837 -0.63127033
-v 0.81165394 0.24188371 -0.36079947
-v 0.49369637 -0.02858715 -0.79843051
-v 0.39544208 -0.33098277 -0.79843051
-v -0.17974856 -0.24740267 0.95209368
-v 0.13820900 -0.24740267 0.95209368
-v 0.23646329 0.05499294 0.95209368
-v -0.02076978 0.24188371 0.95209368
-v -0.27800286 0.05499294 0.95209368
-v 0.83881076 -0.47504198 -0.23984122
-v 0.67983197 -0.52669732 -0.51031208
-v 0.67983197 -0.25622646 -0.67747227
-v 0.83881076 -0.03741094 -0.51031208
-v 0.93706505 -0.17264637 -0.23984122
-v -0.71099855 0.65096039 -0.23984122
-v -0.45376548 0.83785116 -0.23984122
-v -0.29478669 0.78619582 -0.51031208
-v -0.45376548 0.56738030 -0.67747227
-v -0.71099855 0.48380020 -0.51031208
-f 1 2 24 23 22 21 20 19 12 11
-f 1 11 10
-f 1 10 62 61
-f 1 61 2
-f 2 3 24
-f 2 61 65 3
-f 3 4 30 29 28 27 26 25 23 24
-f 3 65 4
-f 4 5 30
-f 4 65 64 5
-f 5 6 36 35 34 33 32 31 29 30
-f 5 64 6
-f 6 7 36
-f 6 64 63 7
-f 7 8 18 17 40 39 38 37 35 36
-f 7 63 8
-f 8 9 18
-f 8 63 62 9
-f 9 10 11 12 13 14 15 16 17 18
-f 9 62 10
-f 12 19 13
-f 13 19 20 46 45 44 43 42 41 14
-f 14 41 15
-f 15 41 67 66
-f 15 66 16
-f 16 40 17
-f 16 66 70 40
-f 20 21 46
-f 21 22 25 26 50 49 48 47 45 46
-f 22 23 25
-f 26 27 50
-f 27 28 71
-f 27 71 75 50
-f 28 29 31
-f 28 31 72 71
-f 31 32 72
-f 32 33 54
-f 32 54 73 72
-f 33 34 37 38 58 57 56 55 53 54
-f 34 35 37
-f 38 39 58
-f 39 40 70
-f 39 70 69 58
-f 41 42 67
-f 42 43 60
-f 42 60 68 67
-f 43 44 47 48 51 52 55 56 59 60
-f 44 45 47
-f 48 49 51
-f 49 50 75
-f 49 75 74 51
-f 51 74 52
-f 52 53 55
-f 52 74 73 53
-f 53 73 54
-f 56 57 59
-f 57 58 69
-f 57 69 68 59
-f 59 68 60
-f 61 62 63 64 65
-f 66 67 68 69 70
-f 71 72 73 74 75
diff --git a/texmf-dist/scripts/ketcindy/data/polyhedrons_obj/n72.obj b/texmf-dist/scripts/ketcindy/data/polyhedrons_obj/n72.obj
deleted file mode 100644
index ad80a06d..00000000
--- a/texmf-dist/scripts/ketcindy/data/polyhedrons_obj/n72.obj
+++ /dev/null
@@ -1,122 +0,0 @@
-v -0.22391898 -0.68915176 0.68915176
-v -0.58622750 -0.42591921 0.68915176
-v -0.72461704 0.00000000 0.68915176
-v -0.58622750 0.42591921 0.68915176
-v -0.22391898 0.68915176 0.68915176
-v 0.22391898 0.68915176 0.68915176
-v 0.58622750 0.42591921 0.68915176
-v 0.72461704 0.00000000 0.68915176
-v 0.58622750 -0.42591921 0.68915176
-v 0.22391898 -0.68915176 0.68915176
-v -0.22391898 -0.92459411 0.30819804
-v -0.81014648 -0.49867490 0.30819804
-v -0.94853602 -0.07275569 0.30819804
-v -0.72461704 0.61639607 0.30819804
-v -0.36230852 0.87962862 0.30819804
-v 0.36230852 0.87962862 0.30819804
-v 0.72461704 0.61639607 0.30819804
-v 0.94853602 -0.07275569 0.30819804
-v 0.81014648 -0.49867490 0.30819804
-v 0.22391898 -0.92459411 0.30819804
-v 0.00000000 -0.99734979 -0.07275569
-v -0.58622750 -0.80687293 0.07275569
-v -0.94853602 0.30819804 0.07275569
-v 0.00000000 0.99734979 0.07275569
-v 0.94853602 0.30819804 0.07275569
-v 0.58622750 -0.80687293 0.07275569
-v -0.36230852 -0.87962862 -0.30819804
-v -0.22391898 -0.68915176 -0.68915176
-v -0.22391898 -0.30819804 -0.92459411
-v -0.36230852 0.11772117 -0.92459411
-v -0.58622750 0.42591921 -0.68915176
-v -0.81014648 0.49867490 -0.30819804
-v 0.36230852 -0.87962862 -0.30819804
-v 0.22391898 -0.68915176 -0.68915176
-v 0.22391898 -0.30819804 -0.92459411
-v 0.36230852 0.11772117 -0.92459411
-v 0.58622750 0.42591921 -0.68915176
-v 0.81014648 0.49867490 -0.30819804
-v -0.00000000 0.38095372 -0.92459410
-v -0.22391898 0.68915176 -0.68915176
-v 0.22391898 0.68915176 -0.68915176
-v -0.22391898 0.92459411 -0.30819804
-v 0.22391898 0.92459411 -0.30819804
-v 0.58622750 0.80687293 -0.07275569
-v -0.58622750 0.80687293 -0.07275569
-v 0.00000000 -0.38095372 0.92459411
-v 0.36230852 -0.11772117 0.92459411
-v 0.22391898 0.30819804 0.92459411
-v -0.22391898 0.30819804 0.92459411
-v -0.36230852 -0.11772117 0.92459411
-v -0.94853602 -0.30819803 -0.07275569
-v -0.94853602 0.07275569 -0.30819804
-v -0.72461704 0.00000000 -0.68915176
-v -0.58622750 -0.42591921 -0.68915176
-v -0.72461704 -0.61639607 -0.30819804
-v 0.98678595 -0.08518384 -0.13783035
-v 0.84839641 -0.51110305 -0.13783035
-v 0.62447743 -0.58385874 -0.51878407
-v 0.62447743 -0.20290502 -0.75422642
-v 0.84839641 0.10529302 -0.51878407
-f 1 2 12 22 11
-f 1 11 20 10
-f 1 10 46
-f 1 46 50 2
-f 2 3 13 12
-f 2 50 3
-f 3 4 14 23 13
-f 3 50 49 4
-f 4 5 15 14
-f 4 49 5
-f 5 6 16 24 15
-f 5 49 48 6
-f 6 7 17 16
-f 6 48 7
-f 7 8 18 25 17
-f 7 48 47 8
-f 8 9 19 18
-f 8 47 9
-f 9 10 20 26 19
-f 9 47 46 10
-f 11 22 27 21
-f 11 21 20
-f 12 13 51
-f 12 51 55 22
-f 13 23 52 51
-f 14 15 45
-f 14 45 32 23
-f 15 24 42 45
-f 16 17 44
-f 16 44 43 24
-f 17 25 38 44
-f 18 19 57 56
-f 18 56 25
-f 19 26 57
-f 20 21 33 26
-f 21 27 28 34 33
-f 22 55 27
-f 23 32 52
-f 24 43 42
-f 25 56 60 38
-f 26 33 58 57
-f 27 55 54 28
-f 28 29 35 34
-f 28 54 29
-f 29 30 39 36 35
-f 29 54 53 30
-f 30 31 40 39
-f 30 53 31
-f 31 32 45 42 40
-f 31 53 52 32
-f 33 34 58
-f 34 35 59 58
-f 35 36 59
-f 36 39 41 37
-f 36 37 60 59
-f 37 41 43 44 38
-f 37 38 60
-f 39 40 41
-f 40 42 43 41
-f 46 47 48 49 50
-f 51 52 53 54 55
-f 56 57 58 59 60
diff --git a/texmf-dist/scripts/ketcindy/data/polyhedrons_obj/n73.obj b/texmf-dist/scripts/ketcindy/data/polyhedrons_obj/n73.obj
deleted file mode 100644
index d65e44ca..00000000
--- a/texmf-dist/scripts/ketcindy/data/polyhedrons_obj/n73.obj
+++ /dev/null
@@ -1,122 +0,0 @@
-v -0.22391898 -0.68915175 0.68915175
-v -0.58622750 -0.42591921 0.68915175
-v -0.72461704 -0.00000000 0.68915175
-v -0.58622750 0.42591921 0.68915175
-v -0.22391898 0.68915175 0.68915175
-v 0.22391898 0.68915175 0.68915175
-v 0.58622749 0.42591921 0.68915175
-v 0.72461703 -0.00000000 0.68915175
-v 0.58622749 -0.42591921 0.68915175
-v 0.22391898 -0.68915175 0.68915175
-v -0.22391898 -0.92459410 0.30819803
-v -0.81014648 -0.49867489 0.30819803
-v -0.94853602 -0.07275569 0.30819803
-v -0.72461704 0.61639607 0.30819803
-v -0.36230852 0.87962861 0.30819803
-v 0.36230852 0.87962861 0.30819803
-v 0.72461703 0.61639607 0.30819803
-v 0.94853601 -0.07275569 0.30819803
-v 0.81014647 -0.49867489 0.30819803
-v 0.22391898 -0.92459410 0.30819803
-v -0.00000000 -0.99734979 -0.07275569
-v -0.58622750 -0.80687293 0.07275569
-v -0.94853602 -0.30819803 -0.07275569
-v -0.94853602 0.30819803 0.07275569
-v -0.58622750 0.80687293 -0.07275569
-v -0.00000000 0.99734979 0.07275569
-v 0.58622749 0.80687293 -0.07275569
-v 0.94853601 0.30819803 0.07275569
-v 0.94853601 -0.30819803 -0.07275569
-v 0.58622749 -0.80687293 0.07275569
-v 0.36230852 -0.87962861 -0.30819803
-v -0.36230852 -0.87962861 -0.30819803
-v -0.72461704 -0.61639607 -0.30819803
-v -0.94853601 0.07275569 -0.30819803
-v -0.81014648 0.49867489 -0.30819803
-v -0.22391898 0.92459410 -0.30819803
-v 0.22391898 0.92459410 -0.30819803
-v 0.81014647 0.49867489 -0.30819803
-v 0.94853601 0.07275569 -0.30819803
-v 0.72461703 -0.61639607 -0.30819803
-v -0.22391898 -0.68915175 -0.68915175
-v -0.58622750 -0.42591921 -0.68915175
-v -0.72461703 0.00000000 -0.68915175
-v -0.58622748 0.42591921 -0.68915175
-v -0.22391896 0.68915175 -0.68915175
-v 0.22391899 0.68915175 -0.68915175
-v 0.58622751 0.42591921 -0.68915175
-v 0.72461704 0.00000000 -0.68915175
-v 0.58622750 -0.42591921 -0.68915175
-v 0.22391898 -0.68915175 -0.68915175
-v -0.22391898 -0.30819803 0.92459410
-v 0.22391898 -0.30819803 0.92459410
-v 0.36230852 0.11772117 0.92459410
-v -0.00000000 0.38095372 0.92459410
-v -0.36230852 0.11772117 0.92459410
-v 0.00000000 -0.38095372 -0.92459410
-v -0.36230851 -0.11772117 -0.92459410
-v -0.22391897 0.30819803 -0.92459410
-v 0.22391899 0.30819803 -0.92459410
-v 0.36230852 -0.11772117 -0.92459410
-f 1 2 12 22 11
-f 1 11 20 10
-f 1 10 52 51
-f 1 51 2
-f 2 3 13 12
-f 2 51 55 3
-f 3 4 14 24 13
-f 3 55 4
-f 4 5 15 14
-f 4 55 54 5
-f 5 6 16 26 15
-f 5 54 6
-f 6 7 17 16
-f 6 54 53 7
-f 7 8 18 28 17
-f 7 53 8
-f 8 9 19 18
-f 8 53 52 9
-f 9 10 20 30 19
-f 9 52 10
-f 11 22 32 21
-f 11 21 20
-f 12 13 23
-f 12 23 33 22
-f 13 24 34 23
-f 14 15 25
-f 14 25 35 24
-f 15 26 36 25
-f 16 17 27
-f 16 27 37 26
-f 17 28 38 27
-f 18 19 29
-f 18 29 39 28
-f 19 30 40 29
-f 20 21 31 30
-f 21 32 41 50 31
-f 22 33 32
-f 23 34 43 42 33
-f 24 35 34
-f 25 36 45 44 35
-f 26 37 36
-f 27 38 47 46 37
-f 28 39 38
-f 29 40 49 48 39
-f 30 31 40
-f 31 50 49 40
-f 32 33 42 41
-f 34 35 44 43
-f 36 37 46 45
-f 38 39 48 47
-f 41 42 57 56
-f 41 56 50
-f 42 43 57
-f 43 44 58 57
-f 44 45 58
-f 45 46 59 58
-f 46 47 59
-f 47 48 60 59
-f 48 49 60
-f 49 50 56 60
-f 51 52 53 54 55
-f 56 57 58 59 60
diff --git a/texmf-dist/scripts/ketcindy/data/polyhedrons_obj/n74.obj b/texmf-dist/scripts/ketcindy/data/polyhedrons_obj/n74.obj
deleted file mode 100644
index b0a6ff58..00000000
--- a/texmf-dist/scripts/ketcindy/data/polyhedrons_obj/n74.obj
+++ /dev/null
@@ -1,122 +0,0 @@
-v -0.22391898 -0.68915176 0.68915176
-v -0.58622750 -0.42591921 0.68915176
-v -0.72461704 -0.00000000 0.68915176
-v -0.58622750 0.42591921 0.68915176
-v -0.22391898 0.68915176 0.68915176
-v 0.22391898 0.68915176 0.68915176
-v 0.58622750 0.42591921 0.68915176
-v 0.72461704 -0.00000000 0.68915176
-v 0.58622750 -0.42591921 0.68915176
-v 0.22391898 -0.68915176 0.68915176
-v -0.22391898 -0.92459411 0.30819804
-v -0.81014648 -0.49867490 0.30819804
-v -0.94853602 -0.07275569 0.30819804
-v -0.72461704 0.61639607 0.30819804
-v -0.36230852 0.87962862 0.30819804
-v 0.36230852 0.87962862 0.30819804
-v 0.72461704 0.61639607 0.30819804
-v 0.94853602 -0.07275569 0.30819804
-v 0.81014648 -0.49867490 0.30819804
-v 0.22391898 -0.92459411 0.30819804
-v 0.00000000 -0.99734979 -0.07275569
-v -0.58622750 -0.80687293 0.07275569
-v -0.94853602 0.30819804 0.07275569
-v 0.00000000 0.99734979 0.07275569
-v 0.94853602 0.30819803 0.07275569
-v 0.58622750 -0.80687293 0.07275569
-v -0.36230852 -0.87962862 -0.30819804
-v -0.22391898 -0.68915176 -0.68915176
-v -0.22391898 -0.30819803 -0.92459411
-v -0.36230852 0.11772118 -0.92459411
-v -0.58622750 0.42591921 -0.68915176
-v -0.81014648 0.49867490 -0.30819804
-v 0.36230852 -0.87962862 -0.30819804
-v 0.22391898 -0.68915176 -0.68915176
-v 0.22391898 -0.30819804 -0.92459411
-v 0.36230852 0.11772117 -0.92459411
-v 0.58622750 0.42591921 -0.68915176
-v 0.81014648 0.49867490 -0.30819804
-v -0.00000000 0.38095372 -0.92459410
-v -0.22391898 0.68915176 -0.68915176
-v 0.22391898 0.68915176 -0.68915176
-v -0.22391898 0.92459411 -0.30819804
-v 0.22391898 0.92459411 -0.30819804
-v 0.58622750 0.80687293 -0.07275569
-v -0.58622750 0.80687293 -0.07275569
-v 0.00000000 -0.38095372 0.92459411
-v 0.36230852 -0.11772117 0.92459411
-v 0.22391898 0.30819804 0.92459411
-v -0.22391898 0.30819804 0.92459411
-v -0.36230852 -0.11772117 0.92459411
-v -0.84839641 -0.51110305 -0.13783035
-v -0.98678595 -0.08518384 -0.13783035
-v -0.84839641 0.10529302 -0.51878407
-v -0.62447743 -0.20290502 -0.75422642
-v -0.62447743 -0.58385874 -0.51878407
-v 0.98678595 -0.08518384 -0.13783035
-v 0.84839641 -0.51110305 -0.13783035
-v 0.62447743 -0.58385874 -0.51878407
-v 0.62447743 -0.20290502 -0.75422642
-v 0.84839641 0.10529302 -0.51878407
-f 1 2 12 22 11
-f 1 11 20 10
-f 1 10 46
-f 1 46 50 2
-f 2 3 13 12
-f 2 50 3
-f 3 4 14 23 13
-f 3 50 49 4
-f 4 5 15 14
-f 4 49 5
-f 5 6 16 24 15
-f 5 49 48 6
-f 6 7 17 16
-f 6 48 7
-f 7 8 18 25 17
-f 7 48 47 8
-f 8 9 19 18
-f 8 47 9
-f 9 10 20 26 19
-f 9 47 46 10
-f 11 22 27 21
-f 11 21 20
-f 12 13 52 51
-f 12 51 22
-f 13 23 52
-f 14 15 45
-f 14 45 32 23
-f 15 24 42 45
-f 16 17 44
-f 16 44 43 24
-f 17 25 38 44
-f 18 19 57 56
-f 18 56 25
-f 19 26 57
-f 20 21 33 26
-f 21 27 28 34 33
-f 22 51 55 27
-f 23 32 53 52
-f 24 43 42
-f 25 56 60 38
-f 26 33 58 57
-f 27 55 28
-f 28 29 35 34
-f 28 55 54 29
-f 29 30 39 36 35
-f 29 54 30
-f 30 31 40 39
-f 30 54 53 31
-f 31 32 45 42 40
-f 31 53 32
-f 33 34 58
-f 34 35 59 58
-f 35 36 59
-f 36 39 41 37
-f 36 37 60 59
-f 37 41 43 44 38
-f 37 38 60
-f 39 40 41
-f 40 42 43 41
-f 46 47 48 49 50
-f 51 52 53 54 55
-f 56 57 58 59 60
diff --git a/texmf-dist/scripts/ketcindy/data/polyhedrons_obj/n75.obj b/texmf-dist/scripts/ketcindy/data/polyhedrons_obj/n75.obj
deleted file mode 100644
index a6eca558..00000000
--- a/texmf-dist/scripts/ketcindy/data/polyhedrons_obj/n75.obj
+++ /dev/null
@@ -1,122 +0,0 @@
-v -0.22391898 -0.68915176 0.68915176
-v -0.58622750 -0.42591921 0.68915176
-v -0.72461704 -0.00000000 0.68915176
-v -0.58622750 0.42591921 0.68915176
-v -0.22391898 0.68915176 0.68915176
-v 0.22391898 0.68915176 0.68915176
-v 0.58622750 0.42591921 0.68915176
-v 0.72461704 -0.00000000 0.68915176
-v 0.58622750 -0.42591921 0.68915176
-v 0.22391898 -0.68915176 0.68915176
-v -0.22391898 -0.92459411 0.30819804
-v -0.81014648 -0.49867490 0.30819804
-v -0.94853602 -0.07275569 0.30819804
-v -0.72461704 0.61639607 0.30819804
-v -0.36230852 0.87962862 0.30819804
-v 0.36230852 0.87962862 0.30819804
-v 0.72461704 0.61639607 0.30819804
-v 0.94853602 -0.07275569 0.30819804
-v 0.81014648 -0.49867490 0.30819804
-v 0.22391898 -0.92459411 0.30819804
-v -0.00000000 -0.99734979 -0.07275569
-v -0.58622750 -0.80687293 0.07275569
-v -0.94853602 0.30819804 0.07275569
-v 0.00000000 0.99734979 0.07275569
-v 0.94853602 0.30819804 0.07275569
-v 0.58622750 -0.80687293 0.07275569
-v -0.36230852 -0.87962862 -0.30819804
-v -0.22391898 -0.68915176 -0.68915176
-v -0.22391898 -0.30819803 -0.92459411
-v -0.36230852 0.11772118 -0.92459411
-v -0.58622750 0.42591921 -0.68915176
-v -0.81014648 0.49867490 -0.30819804
-v 0.36230852 -0.87962862 -0.30819804
-v 0.22391898 -0.68915176 -0.68915176
-v 0.22391898 -0.30819804 -0.92459411
-v 0.36230852 0.11772117 -0.92459411
-v 0.58622750 0.42591921 -0.68915176
-v 0.81014648 0.49867490 -0.30819804
-v -0.00000000 0.38095372 -0.92459410
-v -0.22391898 0.68915176 -0.68915176
-v 0.22391898 0.68915176 -0.68915176
-v -0.22391898 0.92459411 -0.30819804
-v 0.22391898 0.92459411 -0.30819804
-v 0.58622750 0.80687293 -0.07275569
-v -0.58622750 0.80687293 -0.07275569
-v -0.22391898 -0.30819804 0.92459411
-v 0.22391898 -0.30819804 0.92459411
-v 0.36230852 0.11772117 0.92459411
-v 0.00000000 0.38095372 0.92459411
-v -0.36230852 0.11772117 0.92459411
-v -0.84839641 -0.51110305 -0.13783035
-v -0.98678595 -0.08518384 -0.13783035
-v -0.84839641 0.10529302 -0.51878407
-v -0.62447743 -0.20290502 -0.75422642
-v -0.62447743 -0.58385874 -0.51878407
-v 0.98678595 -0.08518384 -0.13783035
-v 0.84839641 -0.51110305 -0.13783035
-v 0.62447743 -0.58385874 -0.51878407
-v 0.62447743 -0.20290502 -0.75422642
-v 0.84839641 0.10529302 -0.51878407
-f 1 2 12 22 11
-f 1 11 20 10
-f 1 10 47 46
-f 1 46 2
-f 2 3 13 12
-f 2 46 50 3
-f 3 4 14 23 13
-f 3 50 4
-f 4 5 15 14
-f 4 50 49 5
-f 5 6 16 24 15
-f 5 49 6
-f 6 7 17 16
-f 6 49 48 7
-f 7 8 18 25 17
-f 7 48 8
-f 8 9 19 18
-f 8 48 47 9
-f 9 10 20 26 19
-f 9 47 10
-f 11 22 27 21
-f 11 21 20
-f 12 13 52 51
-f 12 51 22
-f 13 23 52
-f 14 15 45
-f 14 45 32 23
-f 15 24 42 45
-f 16 17 44
-f 16 44 43 24
-f 17 25 38 44
-f 18 19 57 56
-f 18 56 25
-f 19 26 57
-f 20 21 33 26
-f 21 27 28 34 33
-f 22 51 55 27
-f 23 32 53 52
-f 24 43 42
-f 25 56 60 38
-f 26 33 58 57
-f 27 55 28
-f 28 29 35 34
-f 28 55 54 29
-f 29 30 39 36 35
-f 29 54 30
-f 30 31 40 39
-f 30 54 53 31
-f 31 32 45 42 40
-f 31 53 32
-f 33 34 58
-f 34 35 59 58
-f 35 36 59
-f 36 39 41 37
-f 36 37 60 59
-f 37 41 43 44 38
-f 37 38 60
-f 39 40 41
-f 40 42 43 41
-f 46 47 48 49 50
-f 51 52 53 54 55
-f 56 57 58 59 60
diff --git a/texmf-dist/scripts/ketcindy/data/polyhedrons_obj/n76.obj b/texmf-dist/scripts/ketcindy/data/polyhedrons_obj/n76.obj
deleted file mode 100644
index 6ae6abe0..00000000
--- a/texmf-dist/scripts/ketcindy/data/polyhedrons_obj/n76.obj
+++ /dev/null
@@ -1,107 +0,0 @@
-v -0.14383464 -0.67226446 0.61486772
-v -0.48573906 -0.42385636 0.61486772
-v -0.61633492 -0.02192360 0.61486772
-v -0.48573906 0.38000915 0.61486772
-v -0.14383464 0.62841725 0.61486772
-v 0.27878247 0.62841725 0.61486772
-v 0.62068689 0.38000915 0.61486772
-v 0.75128276 -0.02192360 0.61486772
-v 0.62068689 -0.42385636 0.61486772
-v 0.27878247 -0.67226446 0.61486772
-v -0.14383464 -0.89444742 0.25536813
-v -0.69704761 -0.49251467 0.25536813
-v -0.82764348 -0.09058192 0.25536813
-v -0.61633492 0.55975894 0.25536813
-v -0.27443050 0.80816704 0.25536813
-v 0.40937834 0.80816704 0.25536813
-v 0.75128276 0.55975894 0.25536813
-v 0.96259131 -0.09058192 0.25536813
-v 0.83199544 -0.49251467 0.25536813
-v 0.27878247 -0.89444742 0.25536813
-v 0.06747392 -0.96310573 -0.10413145
-v -0.48573906 -0.78335594 0.03318517
-v -0.82764348 0.26891767 0.03318517
-v 0.06747392 0.91925852 0.03318517
-v 0.96259131 0.26891767 0.03318517
-v 0.62068689 -0.78335594 0.03318517
-v -0.27443050 -0.85201425 -0.32631441
-v -0.14383464 -0.67226446 -0.68581399
-v -0.14383464 -0.31276488 -0.90799695
-v -0.27443050 0.08916788 -0.90799695
-v -0.48573906 0.38000915 -0.68581399
-v -0.69704761 0.44866746 -0.32631441
-v 0.40937834 -0.85201425 -0.32631441
-v 0.27878247 -0.67226446 -0.68581399
-v 0.27878247 -0.31276488 -0.90799695
-v 0.40937834 0.08916788 -0.90799695
-v 0.62068689 0.38000915 -0.68581399
-v 0.83199544 0.44866746 -0.32631441
-v 0.06747392 0.33757598 -0.90799695
-v -0.14383464 0.62841725 -0.68581399
-v 0.27878247 0.62841725 -0.68581399
-v -0.14383464 0.85060021 -0.32631441
-v 0.27878247 0.85060021 -0.32631441
-v 0.62068689 0.73950873 -0.10413145
-v -0.48573906 0.73950873 -0.10413145
-v 0.06747392 -0.38142319 0.83705068
-v 0.40937834 -0.13301509 0.83705068
-v 0.27878247 0.26891767 0.83705068
-v -0.14383464 0.26891767 0.83705068
-v -0.27443050 -0.13301508 0.83705068
-v -0.82764348 -0.31276488 -0.10413145
-v -0.82764348 0.04673471 -0.32631441
-v -0.61633492 -0.02192360 -0.68581399
-v -0.48573906 -0.42385636 -0.68581399
-v -0.61633492 -0.60360615 -0.32631441
-f 1 2 12 22 11
-f 1 11 20 10
-f 1 10 46
-f 1 46 50 2
-f 2 3 13 12
-f 2 50 3
-f 3 4 14 23 13
-f 3 50 49 4
-f 4 5 15 14
-f 4 49 5
-f 5 6 16 24 15
-f 5 49 48 6
-f 6 7 17 16
-f 6 48 7
-f 7 8 18 25 17
-f 7 48 47 8
-f 8 9 19 18
-f 8 47 9
-f 9 10 20 26 19
-f 9 47 46 10
-f 11 22 27 21
-f 11 21 20
-f 12 13 51
-f 12 51 55 22
-f 13 23 52 51
-f 14 15 45
-f 14 45 32 23
-f 15 24 42 45
-f 16 17 44
-f 16 44 43 24
-f 17 25 38 44
-f 18 19 26 33 34 35 36 37 38 25
-f 20 21 33 26
-f 21 27 28 34 33
-f 22 55 27
-f 23 32 52
-f 24 43 42
-f 27 55 54 28
-f 28 29 35 34
-f 28 54 29
-f 29 30 39 36 35
-f 29 54 53 30
-f 30 31 40 39
-f 30 53 31
-f 31 32 45 42 40
-f 31 53 52 32
-f 36 39 41 37
-f 37 41 43 44 38
-f 39 40 41
-f 40 42 43 41
-f 46 47 48 49 50
-f 51 52 53 54 55
diff --git a/texmf-dist/scripts/ketcindy/data/polyhedrons_obj/n77.obj b/texmf-dist/scripts/ketcindy/data/polyhedrons_obj/n77.obj
deleted file mode 100644
index 14c23ffd..00000000
--- a/texmf-dist/scripts/ketcindy/data/polyhedrons_obj/n77.obj
+++ /dev/null
@@ -1,107 +0,0 @@
-v -0.21130855 -0.65034085 0.57102051
-v -0.55321297 -0.40193275 0.57102051
-v -0.68380884 -0.00000000 0.57102051
-v -0.55321297 0.40193275 0.57102051
-v -0.21130855 0.65034085 0.57102051
-v 0.21130855 0.65034085 0.57102051
-v 0.55321297 0.40193275 0.57102051
-v 0.68380884 -0.00000000 0.57102051
-v 0.55321297 -0.40193275 0.57102051
-v 0.21130855 -0.65034085 0.57102051
-v -0.21130855 -0.87252381 0.21152092
-v -0.76452153 -0.47059106 0.21152092
-v -0.89511739 -0.06865831 0.21152092
-v -0.68380884 0.58168254 0.21152092
-v -0.34190442 0.83009064 0.21152092
-v 0.34190442 0.83009064 0.21152092
-v 0.68380884 0.58168254 0.21152092
-v 0.89511739 -0.06865831 0.21152092
-v 0.76452152 -0.47059106 0.21152092
-v 0.21130855 -0.87252381 0.21152092
-v -0.00000000 -0.94118212 -0.14797866
-v -0.55321297 -0.76143233 -0.01066204
-v -0.89511739 -0.29084127 -0.14797866
-v -0.89511739 0.29084127 -0.01066204
-v -0.55321297 0.76143233 -0.14797866
-v -0.00000000 0.94118212 -0.01066204
-v 0.55321297 0.76143233 -0.14797866
-v 0.89511739 0.29084127 -0.01066204
-v 0.89511739 -0.29084127 -0.14797866
-v 0.55321297 -0.76143233 -0.01066204
-v 0.34190442 -0.83009064 -0.37016162
-v -0.34190442 -0.83009064 -0.37016162
-v -0.68380884 -0.58168254 -0.37016162
-v -0.89511739 0.06865831 -0.37016162
-v -0.76452153 0.47059106 -0.37016162
-v -0.21130855 0.87252381 -0.37016162
-v 0.21130855 0.87252381 -0.37016162
-v 0.76452153 0.47059106 -0.37016162
-v 0.89511739 0.06865831 -0.37016162
-v 0.68380884 -0.58168254 -0.37016162
-v -0.21130855 -0.65034085 -0.72966120
-v -0.55321297 -0.40193275 -0.72966120
-v -0.68380884 0.00000000 -0.72966120
-v -0.55321297 0.40193275 -0.72966120
-v -0.21130855 0.65034085 -0.72966120
-v 0.21130855 0.65034085 -0.72966120
-v 0.55321297 0.40193275 -0.72966120
-v 0.68380884 -0.00000000 -0.72966120
-v 0.55321297 -0.40193275 -0.72966120
-v 0.21130855 -0.65034085 -0.72966120
-v -0.21130855 -0.29084127 0.79320347
-v 0.21130855 -0.29084127 0.79320347
-v 0.34190442 0.11109148 0.79320347
-v -0.00000000 0.35949958 0.79320347
-v -0.34190442 0.11109148 0.79320347
-f 1 2 12 22 11
-f 1 11 20 10
-f 1 10 52 51
-f 1 51 2
-f 2 3 13 12
-f 2 51 55 3
-f 3 4 14 24 13
-f 3 55 4
-f 4 5 15 14
-f 4 55 54 5
-f 5 6 16 26 15
-f 5 54 6
-f 6 7 17 16
-f 6 54 53 7
-f 7 8 18 28 17
-f 7 53 8
-f 8 9 19 18
-f 8 53 52 9
-f 9 10 20 30 19
-f 9 52 10
-f 11 22 32 21
-f 11 21 20
-f 12 13 23
-f 12 23 33 22
-f 13 24 34 23
-f 14 15 25
-f 14 25 35 24
-f 15 26 36 25
-f 16 17 27
-f 16 27 37 26
-f 17 28 38 27
-f 18 19 29
-f 18 29 39 28
-f 19 30 40 29
-f 20 21 31 30
-f 21 32 41 50 31
-f 22 33 32
-f 23 34 43 42 33
-f 24 35 34
-f 25 36 45 44 35
-f 26 37 36
-f 27 38 47 46 37
-f 28 39 38
-f 29 40 49 48 39
-f 30 31 40
-f 31 50 49 40
-f 32 33 42 41
-f 34 35 44 43
-f 36 37 46 45
-f 38 39 48 47
-f 41 42 43 44 45 46 47 48 49 50
-f 51 52 53 54 55
diff --git a/texmf-dist/scripts/ketcindy/data/polyhedrons_obj/n78.obj b/texmf-dist/scripts/ketcindy/data/polyhedrons_obj/n78.obj
deleted file mode 100644
index 7693437a..00000000
--- a/texmf-dist/scripts/ketcindy/data/polyhedrons_obj/n78.obj
+++ /dev/null
@@ -1,107 +0,0 @@
-v -0.14383464 -0.67226446 0.61486772
-v -0.48573906 -0.42385636 0.61486772
-v -0.61633492 -0.02192360 0.61486772
-v -0.48573906 0.38000915 0.61486772
-v -0.14383464 0.62841725 0.61486772
-v 0.27878247 0.62841725 0.61486772
-v 0.62068689 0.38000915 0.61486772
-v 0.75128276 -0.02192360 0.61486772
-v 0.62068689 -0.42385636 0.61486772
-v 0.27878247 -0.67226446 0.61486772
-v -0.14383464 -0.89444742 0.25536813
-v -0.69704761 -0.49251467 0.25536813
-v -0.82764348 -0.09058192 0.25536813
-v -0.61633492 0.55975894 0.25536813
-v -0.27443050 0.80816704 0.25536813
-v 0.40937834 0.80816704 0.25536813
-v 0.75128276 0.55975894 0.25536813
-v 0.96259131 -0.09058192 0.25536813
-v 0.83199544 -0.49251467 0.25536813
-v 0.27878247 -0.89444742 0.25536813
-v 0.06747392 -0.96310573 -0.10413145
-v -0.48573906 -0.78335594 0.03318517
-v -0.82764348 0.26891767 0.03318517
-v 0.06747392 0.91925852 0.03318517
-v 0.96259131 0.26891767 0.03318517
-v 0.62068689 -0.78335594 0.03318517
-v -0.27443050 -0.85201425 -0.32631441
-v -0.14383464 -0.67226446 -0.68581399
-v -0.14383464 -0.31276488 -0.90799695
-v -0.27443050 0.08916788 -0.90799695
-v -0.48573906 0.38000915 -0.68581399
-v -0.69704761 0.44866746 -0.32631441
-v 0.40937834 -0.85201425 -0.32631441
-v 0.27878247 -0.67226446 -0.68581399
-v 0.27878247 -0.31276488 -0.90799695
-v 0.40937834 0.08916788 -0.90799695
-v 0.62068689 0.38000915 -0.68581399
-v 0.83199544 0.44866746 -0.32631441
-v 0.06747392 0.33757598 -0.90799695
-v -0.14383464 0.62841725 -0.68581399
-v 0.27878247 0.62841725 -0.68581399
-v -0.14383464 0.85060021 -0.32631441
-v 0.27878247 0.85060021 -0.32631441
-v 0.62068689 0.73950873 -0.10413145
-v -0.48573906 0.73950873 -0.10413145
-v 0.06747392 -0.38142319 0.83705068
-v 0.40937834 -0.13301509 0.83705068
-v 0.27878247 0.26891767 0.83705068
-v -0.14383464 0.26891767 0.83705068
-v -0.27443050 -0.13301509 0.83705068
-v -0.73314342 -0.50424291 -0.16554131
-v -0.86373929 -0.10231015 -0.16554131
-v -0.73314342 0.07743964 -0.52504089
-v -0.52183487 -0.21340164 -0.74722385
-v -0.52183487 -0.57290122 -0.52504089
-f 1 2 12 22 11
-f 1 11 20 10
-f 1 10 46
-f 1 46 50 2
-f 2 3 13 12
-f 2 50 3
-f 3 4 14 23 13
-f 3 50 49 4
-f 4 5 15 14
-f 4 49 5
-f 5 6 16 24 15
-f 5 49 48 6
-f 6 7 17 16
-f 6 48 7
-f 7 8 18 25 17
-f 7 48 47 8
-f 8 9 19 18
-f 8 47 9
-f 9 10 20 26 19
-f 9 47 46 10
-f 11 22 27 21
-f 11 21 20
-f 12 13 52 51
-f 12 51 22
-f 13 23 52
-f 14 15 45
-f 14 45 32 23
-f 15 24 42 45
-f 16 17 44
-f 16 44 43 24
-f 17 25 38 44
-f 18 19 26 33 34 35 36 37 38 25
-f 20 21 33 26
-f 21 27 28 34 33
-f 22 51 55 27
-f 23 32 53 52
-f 24 43 42
-f 27 55 28
-f 28 29 35 34
-f 28 55 54 29
-f 29 30 39 36 35
-f 29 54 30
-f 30 31 40 39
-f 30 54 53 31
-f 31 32 45 42 40
-f 31 53 32
-f 36 39 41 37
-f 37 41 43 44 38
-f 39 40 41
-f 40 42 43 41
-f 46 47 48 49 50
-f 51 52 53 54 55
diff --git a/texmf-dist/scripts/ketcindy/data/polyhedrons_obj/n79.obj b/texmf-dist/scripts/ketcindy/data/polyhedrons_obj/n79.obj
deleted file mode 100644
index 5923c300..00000000
--- a/texmf-dist/scripts/ketcindy/data/polyhedrons_obj/n79.obj
+++ /dev/null
@@ -1,107 +0,0 @@
-v -0.14383464 -0.67226446 0.61486772
-v -0.48573906 -0.42385636 0.61486772
-v -0.61633492 -0.02192360 0.61486772
-v -0.48573906 0.38000915 0.61486772
-v -0.14383464 0.62841725 0.61486772
-v 0.27878247 0.62841725 0.61486772
-v 0.62068689 0.38000915 0.61486772
-v 0.75128276 -0.02192360 0.61486772
-v 0.62068689 -0.42385636 0.61486772
-v 0.27878247 -0.67226446 0.61486772
-v -0.14383464 -0.89444742 0.25536813
-v -0.69704761 -0.49251467 0.25536813
-v -0.82764348 -0.09058192 0.25536813
-v -0.61633492 0.55975894 0.25536813
-v -0.27443050 0.80816704 0.25536813
-v 0.40937834 0.80816704 0.25536813
-v 0.75128276 0.55975894 0.25536813
-v 0.96259131 -0.09058192 0.25536813
-v 0.83199544 -0.49251467 0.25536813
-v 0.27878247 -0.89444742 0.25536813
-v 0.06747392 -0.96310573 -0.10413145
-v -0.48573906 -0.78335594 0.03318517
-v -0.82764348 0.26891767 0.03318517
-v 0.06747392 0.91925852 0.03318517
-v 0.96259131 0.26891767 0.03318517
-v 0.62068689 -0.78335594 0.03318517
-v -0.27443050 -0.85201425 -0.32631441
-v -0.14383464 -0.67226446 -0.68581399
-v -0.14383464 -0.31276488 -0.90799695
-v -0.27443050 0.08916788 -0.90799695
-v -0.48573906 0.38000915 -0.68581399
-v -0.69704761 0.44866746 -0.32631441
-v 0.40937834 -0.85201425 -0.32631441
-v 0.27878247 -0.67226446 -0.68581399
-v 0.27878247 -0.31276488 -0.90799695
-v 0.40937834 0.08916788 -0.90799695
-v 0.62068689 0.38000915 -0.68581399
-v 0.83199544 0.44866746 -0.32631441
-v 0.06747392 0.33757598 -0.90799695
-v -0.14383464 0.62841725 -0.68581399
-v 0.27878247 0.62841725 -0.68581399
-v -0.14383464 0.85060021 -0.32631441
-v 0.27878247 0.85060021 -0.32631441
-v 0.62068689 0.73950873 -0.10413145
-v -0.48573906 0.73950873 -0.10413145
-v -0.14383464 -0.31276488 0.83705068
-v 0.27878247 -0.31276488 0.83705068
-v 0.40937834 0.08916788 0.83705068
-v 0.06747392 0.33757598 0.83705068
-v -0.27443050 0.08916788 0.83705068
-v -0.73314342 -0.50424291 -0.16554131
-v -0.86373929 -0.10231015 -0.16554131
-v -0.73314342 0.07743964 -0.52504089
-v -0.52183487 -0.21340164 -0.74722385
-v -0.52183487 -0.57290122 -0.52504089
-f 1 2 12 22 11
-f 1 11 20 10
-f 1 10 47 46
-f 1 46 2
-f 2 3 13 12
-f 2 46 50 3
-f 3 4 14 23 13
-f 3 50 4
-f 4 5 15 14
-f 4 50 49 5
-f 5 6 16 24 15
-f 5 49 6
-f 6 7 17 16
-f 6 49 48 7
-f 7 8 18 25 17
-f 7 48 8
-f 8 9 19 18
-f 8 48 47 9
-f 9 10 20 26 19
-f 9 47 10
-f 11 22 27 21
-f 11 21 20
-f 12 13 52 51
-f 12 51 22
-f 13 23 52
-f 14 15 45
-f 14 45 32 23
-f 15 24 42 45
-f 16 17 44
-f 16 44 43 24
-f 17 25 38 44
-f 18 19 26 33 34 35 36 37 38 25
-f 20 21 33 26
-f 21 27 28 34 33
-f 22 51 55 27
-f 23 32 53 52
-f 24 43 42
-f 27 55 28
-f 28 29 35 34
-f 28 55 54 29
-f 29 30 39 36 35
-f 29 54 30
-f 30 31 40 39
-f 30 54 53 31
-f 31 32 45 42 40
-f 31 53 32
-f 36 39 41 37
-f 37 41 43 44 38
-f 39 40 41
-f 40 42 43 41
-f 46 47 48 49 50
-f 51 52 53 54 55
diff --git a/texmf-dist/scripts/ketcindy/data/polyhedrons_obj/n80.obj b/texmf-dist/scripts/ketcindy/data/polyhedrons_obj/n80.obj
deleted file mode 100644
index c6797f3d..00000000
--- a/texmf-dist/scripts/ketcindy/data/polyhedrons_obj/n80.obj
+++ /dev/null
@@ -1,92 +0,0 @@
-v -0.22391898 -0.68915176 0.68915176
-v -0.58622750 -0.42591921 0.68915176
-v -0.72461704 -0.00000000 0.68915176
-v -0.58622750 0.42591921 0.68915176
-v -0.22391898 0.68915176 0.68915176
-v 0.22391898 0.68915176 0.68915176
-v 0.58622750 0.42591921 0.68915176
-v 0.72461704 -0.00000000 0.68915176
-v 0.58622750 -0.42591921 0.68915176
-v 0.22391898 -0.68915176 0.68915176
-v -0.22391898 -0.92459411 0.30819803
-v -0.81014648 -0.49867490 0.30819803
-v -0.94853602 -0.07275569 0.30819803
-v -0.72461704 0.61639607 0.30819803
-v -0.36230852 0.87962862 0.30819803
-v 0.36230852 0.87962862 0.30819803
-v 0.72461704 0.61639607 0.30819803
-v 0.94853602 -0.07275569 0.30819803
-v 0.81014648 -0.49867490 0.30819803
-v 0.22391898 -0.92459411 0.30819803
-v -0.00000000 -0.99734979 -0.07275569
-v -0.58622750 -0.80687293 0.07275569
-v -0.94853602 -0.30819803 -0.07275569
-v -0.94853602 0.30819803 0.07275569
-v -0.58622750 0.80687293 -0.07275569
-v -0.00000000 0.99734979 0.07275569
-v 0.58622750 0.80687293 -0.07275569
-v 0.94853602 0.30819803 0.07275569
-v 0.94853602 -0.30819804 -0.07275569
-v 0.58622750 -0.80687293 0.07275569
-v 0.36230852 -0.87962862 -0.30819803
-v -0.36230852 -0.87962862 -0.30819803
-v -0.72461704 -0.61639607 -0.30819803
-v -0.94853602 0.07275569 -0.30819803
-v -0.81014648 0.49867490 -0.30819803
-v -0.22391898 0.92459411 -0.30819803
-v 0.22391898 0.92459410 -0.30819803
-v 0.81014648 0.49867490 -0.30819803
-v 0.94853602 0.07275569 -0.30819803
-v 0.72461704 -0.61639607 -0.30819803
-v -0.22391898 -0.68915176 -0.68915176
-v -0.58622750 -0.42591921 -0.68915176
-v -0.72461703 0.00000000 -0.68915176
-v -0.58622750 0.42591921 -0.68915176
-v -0.22391898 0.68915176 -0.68915176
-v 0.22391898 0.68915176 -0.68915176
-v 0.58622750 0.42591921 -0.68915176
-v 0.72461704 -0.00000000 -0.68915176
-v 0.58622750 -0.42591921 -0.68915176
-v 0.22391898 -0.68915176 -0.68915176
-f 1 2 12 22 11
-f 1 11 20 10
-f 1 10 9 8 7 6 5 4 3 2
-f 2 3 13 12
-f 3 4 14 24 13
-f 4 5 15 14
-f 5 6 16 26 15
-f 6 7 17 16
-f 7 8 18 28 17
-f 8 9 19 18
-f 9 10 20 30 19
-f 11 22 32 21
-f 11 21 20
-f 12 13 23
-f 12 23 33 22
-f 13 24 34 23
-f 14 15 25
-f 14 25 35 24
-f 15 26 36 25
-f 16 17 27
-f 16 27 37 26
-f 17 28 38 27
-f 18 19 29
-f 18 29 39 28
-f 19 30 40 29
-f 20 21 31 30
-f 21 32 41 50 31
-f 22 33 32
-f 23 34 43 42 33
-f 24 35 34
-f 25 36 45 44 35
-f 26 37 36
-f 27 38 47 46 37
-f 28 39 38
-f 29 40 49 48 39
-f 30 31 40
-f 31 50 49 40
-f 32 33 42 41
-f 34 35 44 43
-f 36 37 46 45
-f 38 39 48 47
-f 41 42 43 44 45 46 47 48 49 50
diff --git a/texmf-dist/scripts/ketcindy/data/polyhedrons_obj/n81.obj b/texmf-dist/scripts/ketcindy/data/polyhedrons_obj/n81.obj
deleted file mode 100644
index e249e287..00000000
--- a/texmf-dist/scripts/ketcindy/data/polyhedrons_obj/n81.obj
+++ /dev/null
@@ -1,92 +0,0 @@
-v -0.20493237 -0.67749353 0.55503095
-v -0.53651992 -0.43658108 0.55503095
-v -0.66317509 -0.04677654 0.55503095
-v -0.53651992 0.34302799 0.55503095
-v -0.20493237 0.58394044 0.55503095
-v 0.20493237 0.58394044 0.55503095
-v 0.53651992 0.34302799 0.55503095
-v 0.66317509 -0.04677654 0.55503095
-v 0.53651992 -0.43658108 0.55503095
-v 0.20493237 -0.67749353 0.55503095
-v -0.20493237 -0.89297218 0.20637917
-v -0.74145229 -0.50316764 0.20637917
-v -0.86810746 -0.11336311 0.20637917
-v -0.66317509 0.51735388 0.20637917
-v -0.33158754 0.75826633 0.20637917
-v 0.33158754 0.75826633 0.20637917
-v 0.66317509 0.51735388 0.20637917
-v 0.86810746 -0.11336311 0.20637917
-v 0.74145229 -0.50316764 0.20637917
-v 0.20493237 -0.89297218 0.20637917
-v 0.00000000 -0.95955874 -0.14227260
-v -0.53651992 -0.78523286 -0.00909947
-v -0.86810746 0.23528867 -0.00909947
-v 0.00000000 0.86600566 -0.00909947
-v 0.86810746 0.23528867 -0.00909947
-v 0.53651992 -0.78523286 -0.00909947
-v -0.33158754 -0.85181942 -0.35775125
-v -0.20493237 -0.67749353 -0.70640303
-v -0.20493237 -0.32884176 -0.92188167
-v -0.33158754 0.06096278 -0.92188167
-v -0.53651992 0.34302799 -0.70640302
-v -0.74145229 0.40961456 -0.35775125
-v 0.33158754 -0.85181942 -0.35775125
-v 0.20493237 -0.67749353 -0.70640303
-v 0.20493237 -0.32884176 -0.92188167
-v 0.33158754 0.06096278 -0.92188167
-v 0.53651992 0.34302799 -0.70640303
-v 0.74145229 0.40961456 -0.35775125
-v -0.00000000 0.30187523 -0.92188167
-v -0.20493237 0.58394044 -0.70640302
-v 0.20493237 0.58394044 -0.70640303
-v -0.20493237 0.79941909 -0.35775125
-v 0.20493237 0.79941909 -0.35775125
-v 0.53651992 0.69167977 -0.14227260
-v -0.53651992 0.69167977 -0.14227260
-v 0.00000000 -0.39542832 0.77050960
-v 0.33158754 -0.15451587 0.77050960
-v 0.20493237 0.23528867 0.77050960
-v -0.20493237 0.23528867 0.77050960
-v -0.33158754 -0.15451587 0.77050960
-f 1 2 12 22 11
-f 1 11 20 10
-f 1 10 46
-f 1 46 50 2
-f 2 3 13 12
-f 2 50 3
-f 3 4 14 23 13
-f 3 50 49 4
-f 4 5 15 14
-f 4 49 5
-f 5 6 16 24 15
-f 5 49 48 6
-f 6 7 17 16
-f 6 48 7
-f 7 8 18 25 17
-f 7 48 47 8
-f 8 9 19 18
-f 8 47 9
-f 9 10 20 26 19
-f 9 47 46 10
-f 11 22 27 21
-f 11 21 20
-f 12 13 23 32 31 30 29 28 27 22
-f 14 15 45
-f 14 45 32 23
-f 15 24 42 45
-f 16 17 44
-f 16 44 43 24
-f 17 25 38 44
-f 18 19 26 33 34 35 36 37 38 25
-f 20 21 33 26
-f 21 27 28 34 33
-f 24 43 42
-f 28 29 35 34
-f 29 30 39 36 35
-f 30 31 40 39
-f 31 32 45 42 40
-f 36 39 41 37
-f 37 41 43 44 38
-f 39 40 41
-f 40 42 43 41
-f 46 47 48 49 50
diff --git a/texmf-dist/scripts/ketcindy/data/polyhedrons_obj/n82.obj b/texmf-dist/scripts/ketcindy/data/polyhedrons_obj/n82.obj
deleted file mode 100644
index bec40fa7..00000000
--- a/texmf-dist/scripts/ketcindy/data/polyhedrons_obj/n82.obj
+++ /dev/null
@@ -1,92 +0,0 @@
-v -0.20493237 -0.67749353 0.55503095
-v -0.53651992 -0.43658108 0.55503095
-v -0.66317509 -0.04677654 0.55503095
-v -0.53651992 0.34302799 0.55503095
-v -0.20493237 0.58394044 0.55503095
-v 0.20493237 0.58394044 0.55503095
-v 0.53651992 0.34302799 0.55503095
-v 0.66317509 -0.04677654 0.55503095
-v 0.53651992 -0.43658108 0.55503095
-v 0.20493237 -0.67749353 0.55503095
-v -0.20493237 -0.89297218 0.20637917
-v -0.74145229 -0.50316764 0.20637917
-v -0.86810746 -0.11336311 0.20637917
-v -0.66317509 0.51735388 0.20637917
-v -0.33158754 0.75826633 0.20637917
-v 0.33158754 0.75826633 0.20637917
-v 0.66317509 0.51735388 0.20637917
-v 0.86810746 -0.11336311 0.20637917
-v 0.74145229 -0.50316764 0.20637917
-v 0.20493237 -0.89297218 0.20637917
-v 0.00000000 -0.95955874 -0.14227260
-v -0.53651992 -0.78523286 -0.00909947
-v -0.86810746 0.23528867 -0.00909947
-v 0.00000000 0.86600566 -0.00909947
-v 0.86810746 0.23528867 -0.00909947
-v 0.53651992 -0.78523286 -0.00909947
-v -0.33158754 -0.85181942 -0.35775125
-v -0.20493237 -0.67749353 -0.70640303
-v -0.20493237 -0.32884176 -0.92188167
-v -0.33158754 0.06096278 -0.92188167
-v -0.53651992 0.34302799 -0.70640302
-v -0.74145229 0.40961456 -0.35775125
-v 0.33158754 -0.85181942 -0.35775125
-v 0.20493237 -0.67749353 -0.70640303
-v 0.20493237 -0.32884176 -0.92188167
-v 0.33158754 0.06096278 -0.92188167
-v 0.53651992 0.34302799 -0.70640303
-v 0.74145229 0.40961456 -0.35775125
-v -0.00000000 0.30187523 -0.92188167
-v -0.20493237 0.58394044 -0.70640302
-v 0.20493237 0.58394044 -0.70640303
-v -0.20493237 0.79941909 -0.35775125
-v 0.20493237 0.79941909 -0.35775125
-v 0.53651992 0.69167977 -0.14227260
-v -0.53651992 0.69167977 -0.14227260
-v -0.20493237 -0.32884176 0.77050960
-v 0.20493237 -0.32884176 0.77050960
-v 0.33158754 0.06096278 0.77050960
-v 0.00000000 0.30187523 0.77050960
-v -0.33158754 0.06096278 0.77050960
-f 1 2 12 22 11
-f 1 11 20 10
-f 1 10 47 46
-f 1 46 2
-f 2 3 13 12
-f 2 46 50 3
-f 3 4 14 23 13
-f 3 50 4
-f 4 5 15 14
-f 4 50 49 5
-f 5 6 16 24 15
-f 5 49 6
-f 6 7 17 16
-f 6 49 48 7
-f 7 8 18 25 17
-f 7 48 8
-f 8 9 19 18
-f 8 48 47 9
-f 9 10 20 26 19
-f 9 47 10
-f 11 22 27 21
-f 11 21 20
-f 12 13 23 32 31 30 29 28 27 22
-f 14 15 45
-f 14 45 32 23
-f 15 24 42 45
-f 16 17 44
-f 16 44 43 24
-f 17 25 38 44
-f 18 19 26 33 34 35 36 37 38 25
-f 20 21 33 26
-f 21 27 28 34 33
-f 24 43 42
-f 28 29 35 34
-f 29 30 39 36 35
-f 30 31 40 39
-f 31 32 45 42 40
-f 36 39 41 37
-f 37 41 43 44 38
-f 39 40 41
-f 40 42 43 41
-f 46 47 48 49 50
diff --git a/texmf-dist/scripts/ketcindy/data/polyhedrons_obj/n83.obj b/texmf-dist/scripts/ketcindy/data/polyhedrons_obj/n83.obj
deleted file mode 100644
index 40656942..00000000
--- a/texmf-dist/scripts/ketcindy/data/polyhedrons_obj/n83.obj
+++ /dev/null
@@ -1,77 +0,0 @@
-v -0.21205343 -0.70641331 0.66290442
-v -0.55516310 -0.45712955 0.66290442
-v -0.68621933 -0.05377995 0.66290442
-v -0.55516310 0.34956965 0.66290442
-v -0.21205343 0.59885342 0.66290442
-v 0.21205343 0.59885342 0.66290442
-v 0.55516310 0.34956965 0.66290442
-v 0.68621933 -0.05377995 0.66290442
-v 0.55516310 -0.45712955 0.66290442
-v 0.21205343 -0.70641331 0.66290442
-v -0.21205343 -0.92937949 0.30213757
-v -0.76721653 -0.52602989 0.30213757
-v -0.89827276 -0.12268028 0.30213757
-v -0.68621933 0.52995308 0.30213757
-v -0.34310966 0.77923684 0.30213757
-v 0.34310966 0.77923684 0.30213757
-v 0.68621933 0.52995308 0.30213757
-v 0.89827276 -0.12268028 0.30213757
-v 0.76721653 -0.52602989 0.30213757
-v 0.21205343 -0.92937949 0.30213757
-v 0.00000000 -0.99827982 -0.05862928
-v -0.55516310 -0.81789640 0.07917139
-v -0.89827276 0.23808657 0.07917139
-v 0.00000000 0.89071993 0.07917139
-v 0.89827276 0.23808657 0.07917139
-v 0.55516310 -0.81789640 0.07917139
-v -0.34310966 -0.88679674 -0.28159546
-v -0.21205343 -0.70641331 -0.64236231
-v -0.21205343 -0.34564646 -0.86532848
-v -0.34310967 0.05770314 -0.86532848
-v -0.55516310 0.34956965 -0.64236231
-v -0.76721653 0.41846999 -0.28159546
-v 0.34310966 -0.88679674 -0.28159546
-v 0.21205343 -0.70641331 -0.64236231
-v 0.21205343 -0.34564646 -0.86532848
-v 0.34310966 0.05770314 -0.86532848
-v 0.55516310 0.34956965 -0.64236231
-v 0.76721653 0.41846999 -0.28159546
-v -0.00000000 0.30698691 -0.86532848
-v -0.21205344 0.59885342 -0.64236231
-v 0.21205343 0.59885342 -0.64236231
-v -0.21205343 0.82181959 -0.28159546
-v 0.21205343 0.82181959 -0.28159546
-v 0.55516310 0.71033651 -0.05862928
-v -0.55516310 0.71033650 -0.05862928
-f 1 2 12 22 11
-f 1 11 20 10
-f 1 10 9 8 7 6 5 4 3 2
-f 2 3 13 12
-f 3 4 14 23 13
-f 4 5 15 14
-f 5 6 16 24 15
-f 6 7 17 16
-f 7 8 18 25 17
-f 8 9 19 18
-f 9 10 20 26 19
-f 11 22 27 21
-f 11 21 20
-f 12 13 23 32 31 30 29 28 27 22
-f 14 15 45
-f 14 45 32 23
-f 15 24 42 45
-f 16 17 44
-f 16 44 43 24
-f 17 25 38 44
-f 18 19 26 33 34 35 36 37 38 25
-f 20 21 33 26
-f 21 27 28 34 33
-f 24 43 42
-f 28 29 35 34
-f 29 30 39 36 35
-f 30 31 40 39
-f 31 32 45 42 40
-f 36 39 41 37
-f 37 41 43 44 38
-f 39 40 41
-f 40 42 43 41
diff --git a/texmf-dist/scripts/ketcindy/data/polyhedrons_obj/n84.obj b/texmf-dist/scripts/ketcindy/data/polyhedrons_obj/n84.obj
deleted file mode 100644
index 99140d2c..00000000
--- a/texmf-dist/scripts/ketcindy/data/polyhedrons_obj/n84.obj
+++ /dev/null
@@ -1,20 +0,0 @@
-v -0.75649990 -0.43676533 0.48676866
-v -0.21875602 -0.92678633 -0.30530764
-v -0.21875602 0.49463440 0.48676866
-v -0.57471845 0.07921625 -0.43918622
-v 0.47448656 -0.13708534 -0.53435131
-v 0.14100681 0.88189762 -0.44985925
-v 0.31898787 -0.43676533 0.48676866
-v 0.83424915 0.48165406 0.26839843
-f 1 2 7
-f 1 7 3
-f 1 3 4
-f 1 4 2
-f 2 4 5
-f 2 5 7
-f 3 7 8
-f 3 8 6
-f 3 6 4
-f 4 6 5
-f 5 6 8
-f 5 8 7
diff --git a/texmf-dist/scripts/ketcindy/data/polyhedrons_obj/n85.obj b/texmf-dist/scripts/ketcindy/data/polyhedrons_obj/n85.obj
deleted file mode 100644
index 88e6e2d9..00000000
--- a/texmf-dist/scripts/ketcindy/data/polyhedrons_obj/n85.obj
+++ /dev/null
@@ -1,42 +0,0 @@
-v -0.40739095 -0.40739110 0.55150049
-v -0.40739095 0.40739118 0.55150049
-v 0.40739133 0.40739118 0.55150049
-v 0.40739133 -0.40739110 0.55150049
-v -0.69897385 -0.69897400 -0.15122917
-v -0.98849816 0.00000004 0.15122929
-v -0.69897385 0.69897408 -0.15122917
-v 0.00000019 0.98849838 0.15122929
-v 0.69897423 0.69897408 -0.15122917
-v 0.98849853 0.00000004 0.15122929
-v 0.69897423 -0.69897400 -0.15122917
-v 0.00000019 -0.98849831 0.15122929
-v -0.57613626 0.00000004 -0.55149955
-v -0.00000043 0.57614036 -0.55150182
-v 0.57613486 -0.00000057 -0.55149925
-v -0.00000043 -0.57614028 -0.55150182
-f 1 2 6
-f 1 6 5
-f 1 5 12
-f 1 12 4
-f 1 4 3 2
-f 2 3 8
-f 2 8 7
-f 2 7 6
-f 3 4 10
-f 3 10 9
-f 3 9 8
-f 4 12 11
-f 4 11 10
-f 5 6 13
-f 5 13 16
-f 5 16 12
-f 6 7 13
-f 7 8 14
-f 7 14 13
-f 8 9 14
-f 9 10 15
-f 9 15 14
-f 10 11 15
-f 11 12 16
-f 11 16 15
-f 13 14 15 16
diff --git a/texmf-dist/scripts/ketcindy/data/polyhedrons_obj/n86.obj b/texmf-dist/scripts/ketcindy/data/polyhedrons_obj/n86.obj
deleted file mode 100644
index 0c12e8e4..00000000
--- a/texmf-dist/scripts/ketcindy/data/polyhedrons_obj/n86.obj
+++ /dev/null
@@ -1,24 +0,0 @@
-v 0.15389145 -0.79063961 -0.25122195
-v 0.15389145 0.79063935 -0.25122195
-v -0.08683237 0.00000121 -0.81691859
-v 0.76720476 -0.00000013 -0.29376075
-v -0.34687634 -0.50076793 0.56626173
-v -0.34687634 0.50076766 0.56626173
-v 0.65465925 -0.50076793 0.56626173
-v 0.65465925 0.50076766 0.56626173
-v -0.80186056 -0.50076793 -0.32596185
-v -0.80186056 0.50076766 -0.32596185
-f 1 3 4
-f 1 4 7
-f 1 7 5
-f 1 5 9
-f 1 9 3
-f 2 3 10
-f 2 10 6
-f 2 6 8
-f 2 8 4
-f 2 4 3
-f 3 9 10
-f 4 8 7
-f 5 7 8 6
-f 5 6 10 9
diff --git a/texmf-dist/scripts/ketcindy/data/polyhedrons_obj/n87.obj b/texmf-dist/scripts/ketcindy/data/polyhedrons_obj/n87.obj
deleted file mode 100644
index d6f957ec..00000000
--- a/texmf-dist/scripts/ketcindy/data/polyhedrons_obj/n87.obj
+++ /dev/null
@@ -1,28 +0,0 @@
-v 0.11988005 -0.67749119 -0.31454842
-v 0.11988005 0.67749098 -0.31454842
-v -0.08639380 0.00000104 -0.79928823
-v 0.64542211 -0.00000010 -0.35099950
-v -0.30922289 -0.42910304 0.38594519
-v -0.30922289 0.42910283 0.38594519
-v 0.54898298 -0.42910304 0.38594519
-v 0.54898298 0.42910283 0.38594519
-v -0.69909432 -0.42910304 -0.37859230
-v -0.69909432 0.42910283 -0.37859230
-v 0.11988005 -0.00000010 0.99278838
-f 1 3 4
-f 1 4 7
-f 1 7 5
-f 1 5 9
-f 1 9 3
-f 2 3 10
-f 2 10 6
-f 2 6 8
-f 2 8 4
-f 2 4 3
-f 3 9 10
-f 4 8 7
-f 5 6 10 9
-f 5 7 11
-f 5 11 6
-f 6 11 8
-f 7 8 11
diff --git a/texmf-dist/scripts/ketcindy/data/polyhedrons_obj/n88.obj b/texmf-dist/scripts/ketcindy/data/polyhedrons_obj/n88.obj
deleted file mode 100644
index 6b72d3ca..00000000
--- a/texmf-dist/scripts/ketcindy/data/polyhedrons_obj/n88.obj
+++ /dev/null
@@ -1,30 +0,0 @@
-v 0.38077489 -0.65068035 -0.28161977
-v 0.23971953 -0.00000007 -0.65071787
-v 0.69238902 0.00000073 -0.03866788
-v -0.17227827 -0.97677286 0.12741658
-v -0.55290763 -0.38062943 0.40892884
-v -0.55290763 0.38062930 0.40892884
-v -0.17227827 0.97677272 0.12741658
-v 0.38077489 0.65068022 -0.28161977
-v -0.32999437 -0.38062943 -0.31896162
-v -0.32999437 0.38062930 -0.31896162
-v 0.20835110 -0.38062943 0.40892884
-v 0.20835110 0.38062930 0.40892884
-f 1 2 3
-f 1 3 11
-f 1 11 4
-f 1 4 9
-f 1 9 2
-f 2 9 10
-f 2 10 8
-f 2 8 3
-f 3 8 12
-f 3 12 11
-f 4 11 5
-f 4 5 9
-f 5 11 12 6
-f 5 6 10 9
-f 6 12 7
-f 6 7 10
-f 7 12 8
-f 7 8 10
diff --git a/texmf-dist/scripts/ketcindy/data/polyhedrons_obj/n89.obj b/texmf-dist/scripts/ketcindy/data/polyhedrons_obj/n89.obj
deleted file mode 100644
index 0b5c2160..00000000
--- a/texmf-dist/scripts/ketcindy/data/polyhedrons_obj/n89.obj
+++ /dev/null
@@ -1,35 +0,0 @@
-v -0.44436584 -0.44436584 0.75893037
-v -0.44436584 0.44436584 0.75893037
-v 0.44436584 0.44436584 0.75893037
-v 0.44436584 -0.44436584 0.75893037
-v -0.97875646 0.00000000 0.20502633
-v 0.97875646 -0.00000000 0.20502633
-v -0.44436584 -0.63708304 -0.10865484
-v 0.44436584 -0.63708304 -0.10865484
-v -0.44436584 0.63708304 -0.10865484
-v 0.44436584 0.63708304 -0.10865484
-v -0.74267577 0.00000000 -0.65177582
-v 0.74267577 -0.00000000 -0.65177582
-v -0.00000000 -0.44436731 -0.85380157
-v 0.00000000 0.44436731 -0.85380157
-f 1 2 5
-f 1 5 7
-f 1 7 8 4
-f 1 4 3 2
-f 2 3 10 9
-f 2 9 5
-f 3 4 6
-f 3 6 10
-f 4 8 6
-f 5 9 11
-f 5 11 7
-f 6 8 12
-f 6 12 10
-f 7 11 13
-f 7 13 8
-f 8 13 12
-f 9 10 14
-f 9 14 11
-f 10 12 14
-f 11 14 13
-f 12 13 14
diff --git a/texmf-dist/scripts/ketcindy/data/polyhedrons_obj/n90.obj b/texmf-dist/scripts/ketcindy/data/polyhedrons_obj/n90.obj
deleted file mode 100644
index 12cea9c9..00000000
--- a/texmf-dist/scripts/ketcindy/data/polyhedrons_obj/n90.obj
+++ /dev/null
@@ -1,40 +0,0 @@
-v -0.41242387 -0.58439230 0.69885062
-v 0.41242321 -0.58439230 0.69885062
-v -0.41242387 0.24045478 0.69885062
-v 0.41242321 0.24045478 0.69885062
-v -0.41242387 -0.73037469 -0.11297563
-v 0.41242321 -0.73037469 -0.11297563
-v -0.92917625 -0.17196876 0.20565034
-v 0.92917559 -0.17196876 0.20565034
-v -0.63276502 0.56134326 -0.02837223
-v 0.63276436 0.56134326 -0.02837223
-v -0.63276502 -0.07142283 -0.55750338
-v 0.63276436 -0.07142283 -0.55750338
-v -0.00000033 -0.54083237 -0.80170870
-v 0.00000232 0.26800856 -0.96341536
-v 0.00000232 0.90077466 -0.43428421
-v -0.00000033 0.88477025 0.39040759
-f 1 2 4 3
-f 1 3 7
-f 1 7 5
-f 1 5 6 2
-f 2 6 8
-f 2 8 4
-f 3 4 16
-f 3 16 9
-f 3 9 7
-f 4 8 10
-f 4 10 16
-f 5 7 11
-f 5 11 13
-f 5 13 6
-f 6 13 12
-f 6 12 8
-f 7 9 11
-f 8 12 10
-f 9 16 15
-f 9 15 14 11
-f 10 12 14 15
-f 10 15 16
-f 11 14 13
-f 12 13 14
diff --git a/texmf-dist/scripts/ketcindy/data/polyhedrons_obj/n91.obj b/texmf-dist/scripts/ketcindy/data/polyhedrons_obj/n91.obj
deleted file mode 100644
index 8fa9e15a..00000000
--- a/texmf-dist/scripts/ketcindy/data/polyhedrons_obj/n91.obj
+++ /dev/null
@@ -1,28 +0,0 @@
-v -0.35682209 -0.79465447 0.49112347
-v 0.35682209 -0.79465447 0.49112347
-v 0.57735027 -0.49112347 -0.11593853
-v -0.00000000 -0.30353100 -0.49112347
-v -0.57735027 -0.49112347 -0.11593853
-v -0.57735027 -0.11593852 0.49112347
-v 0.57735027 -0.11593853 0.49112347
-v 0.57735027 0.11593853 -0.49112347
-v -0.57735027 0.11593853 -0.49112347
-v 0.00000000 0.30353100 0.49112347
-v 0.57735027 0.49112347 0.11593853
-v 0.35682209 0.79465447 -0.49112347
-v -0.35682209 0.79465447 -0.49112347
-v -0.57735027 0.49112347 0.11593852
-f 1 2 7 10 6
-f 1 6 5
-f 1 5 4 3 2
-f 2 3 7
-f 3 4 8
-f 3 8 11 7
-f 4 5 9
-f 4 9 13 12 8
-f 5 6 14 9
-f 6 10 14
-f 7 11 10
-f 8 12 11
-f 9 14 13
-f 10 11 12 13 14
diff --git a/texmf-dist/scripts/ketcindy/data/polyhedrons_obj/n92.obj b/texmf-dist/scripts/ketcindy/data/polyhedrons_obj/n92.obj
deleted file mode 100644
index 1f85374b..00000000
--- a/texmf-dist/scripts/ketcindy/data/polyhedrons_obj/n92.obj
+++ /dev/null
@@ -1,38 +0,0 @@
-v -0.33030437 -0.57210395 -0.43569542
-v 0.33030437 -0.57210395 -0.43569542
-v 0.66060874 0.00000000 -0.43569542
-v 0.33030437 0.57210395 -0.43569542
-v -0.33030437 0.57210395 -0.43569542
-v -0.66060874 -0.00000000 -0.43569542
-v -0.53444370 -0.68996385 0.18142700
-v 0.00000000 -0.99852506 -0.05429279
-v 0.53444370 -0.68996385 0.18142700
-v 0.86474807 -0.11785990 0.18142700
-v 0.86474807 0.49926253 -0.05429279
-v 0.33030437 0.80782374 0.18142700
-v -0.33030437 0.80782374 0.18142700
-v -0.86474807 0.49926253 -0.05429279
-v -0.86474807 -0.11785990 0.18142700
-v -0.33030437 -0.19070132 0.56282964
-v 0.33030437 -0.19070132 0.56282964
-v 0.00000000 0.38140263 0.56282964
-f 1 2 8
-f 1 8 7
-f 1 7 15 6
-f 1 6 5 4 3 2
-f 2 3 10 9
-f 2 9 8
-f 3 4 11
-f 3 11 10
-f 4 5 13 12
-f 4 12 11
-f 5 6 14
-f 5 14 13
-f 6 15 14
-f 7 8 9 17 16
-f 7 16 15
-f 9 10 17
-f 10 11 12 18 17
-f 12 13 18
-f 13 14 15 16 18
-f 16 17 18
diff --git a/texmf-dist/scripts/ketcindy/data/polyhedrons_obj/p03.obj b/texmf-dist/scripts/ketcindy/data/polyhedrons_obj/p03.obj
deleted file mode 100644
index 2dfa2604..00000000
--- a/texmf-dist/scripts/ketcindy/data/polyhedrons_obj/p03.obj
+++ /dev/null
@@ -1,11 +0,0 @@
-v -0.65465367 -0.37796447 0.65465367
-v 0.00000000 0.75592895 0.65465367
-v 0.65465367 -0.37796447 0.65465367
-v -0.65465367 -0.37796447 -0.65465367
-v 0.00000000 0.75592895 -0.65465367
-v 0.65465367 -0.37796447 -0.65465367
-f 1 2 5 4
-f 1 4 6 3
-f 1 3 2
-f 2 3 6 5
-f 4 5 6
diff --git a/texmf-dist/scripts/ketcindy/data/polyhedrons_obj/p04.obj b/texmf-dist/scripts/ketcindy/data/polyhedrons_obj/p04.obj
deleted file mode 100644
index c42c1d1f..00000000
--- a/texmf-dist/scripts/ketcindy/data/polyhedrons_obj/p04.obj
+++ /dev/null
@@ -1,14 +0,0 @@
-v -0.57735027 -0.57735027 0.57735027
-v -0.57735027 0.57735027 0.57735027
-v 0.57735027 0.57735027 0.57735027
-v 0.57735027 -0.57735027 0.57735027
-v -0.57735027 -0.57735027 -0.57735027
-v -0.57735027 0.57735027 -0.57735027
-v 0.57735027 0.57735027 -0.57735027
-v 0.57735027 -0.57735027 -0.57735027
-f 1 2 6 5
-f 1 5 8 4
-f 1 4 3 2
-f 2 3 7 6
-f 3 4 8 7
-f 5 6 7 8
diff --git a/texmf-dist/scripts/ketcindy/data/polyhedrons_obj/p05.obj b/texmf-dist/scripts/ketcindy/data/polyhedrons_obj/p05.obj
deleted file mode 100644
index e7731809..00000000
--- a/texmf-dist/scripts/ketcindy/data/polyhedrons_obj/p05.obj
+++ /dev/null
@@ -1,17 +0,0 @@
-v -0.50673185 -0.69745656 0.50673185
-v -0.81990936 0.26640470 0.50673185
-v 0.00000000 0.86210372 0.50673185
-v 0.81990936 0.26640470 0.50673185
-v 0.50673185 -0.69745656 0.50673185
-v -0.50673185 -0.69745656 -0.50673185
-v -0.81990936 0.26640470 -0.50673185
-v 0.00000000 0.86210372 -0.50673185
-v 0.81990936 0.26640470 -0.50673185
-v 0.50673185 -0.69745656 -0.50673185
-f 1 2 7 6
-f 1 6 10 5
-f 1 5 4 3 2
-f 2 3 8 7
-f 3 4 9 8
-f 4 5 10 9
-f 6 7 8 9 10
diff --git a/texmf-dist/scripts/ketcindy/data/polyhedrons_obj/p06.obj b/texmf-dist/scripts/ketcindy/data/polyhedrons_obj/p06.obj
deleted file mode 100644
index 6b1fc4e7..00000000
--- a/texmf-dist/scripts/ketcindy/data/polyhedrons_obj/p06.obj
+++ /dev/null
@@ -1,20 +0,0 @@
-v -0.44721360 -0.77459667 0.44721360
-v -0.89442719 0.00000000 0.44721360
-v -0.44721360 0.77459667 0.44721360
-v 0.44721360 0.77459667 0.44721360
-v 0.89442719 -0.00000000 0.44721360
-v 0.44721360 -0.77459667 0.44721360
-v -0.44721360 -0.77459667 -0.44721360
-v -0.89442719 0.00000000 -0.44721360
-v -0.44721360 0.77459667 -0.44721360
-v 0.44721360 0.77459667 -0.44721360
-v 0.89442719 -0.00000000 -0.44721360
-v 0.44721360 -0.77459667 -0.44721360
-f 1 2 8 7
-f 1 7 12 6
-f 1 6 5 4 3 2
-f 2 3 9 8
-f 3 4 10 9
-f 4 5 11 10
-f 5 6 12 11
-f 7 8 9 10 11 12
diff --git a/texmf-dist/scripts/ketcindy/data/polyhedrons_obj/p07.obj b/texmf-dist/scripts/ketcindy/data/polyhedrons_obj/p07.obj
deleted file mode 100644
index b11e3f11..00000000
--- a/texmf-dist/scripts/ketcindy/data/polyhedrons_obj/p07.obj
+++ /dev/null
@@ -1,23 +0,0 @@
-v -0.39803250 -0.82652300 0.39803250
-v -0.89437090 -0.20413432 0.39803250
-v -0.71722978 0.57197166 0.39803250
-v 0.00000000 0.91737132 0.39803250
-v 0.71722978 0.57197166 0.39803250
-v 0.89437090 -0.20413432 0.39803250
-v 0.39803250 -0.82652300 0.39803250
-v -0.39803250 -0.82652300 -0.39803250
-v -0.89437090 -0.20413432 -0.39803250
-v -0.71722978 0.57197166 -0.39803250
-v 0.00000000 0.91737132 -0.39803250
-v 0.71722978 0.57197166 -0.39803250
-v 0.89437090 -0.20413432 -0.39803250
-v 0.39803250 -0.82652300 -0.39803250
-f 1 2 9 8
-f 1 8 14 7
-f 1 7 6 5 4 3 2
-f 2 3 10 9
-f 3 4 11 10
-f 4 5 12 11
-f 5 6 13 12
-f 6 7 14 13
-f 8 9 10 11 12 13 14
diff --git a/texmf-dist/scripts/ketcindy/data/polyhedrons_obj/p08.obj b/texmf-dist/scripts/ketcindy/data/polyhedrons_obj/p08.obj
deleted file mode 100644
index 3b99bc23..00000000
--- a/texmf-dist/scripts/ketcindy/data/polyhedrons_obj/p08.obj
+++ /dev/null
@@ -1,26 +0,0 @@
-v -0.35740674 -0.86285621 0.35740674
-v -0.86285621 -0.35740674 0.35740674
-v -0.86285621 0.35740674 0.35740674
-v -0.35740674 0.86285621 0.35740674
-v 0.35740674 0.86285621 0.35740674
-v 0.86285621 0.35740674 0.35740674
-v 0.86285621 -0.35740674 0.35740674
-v 0.35740674 -0.86285621 0.35740674
-v -0.35740674 -0.86285621 -0.35740674
-v -0.86285621 -0.35740674 -0.35740674
-v -0.86285621 0.35740674 -0.35740674
-v -0.35740674 0.86285621 -0.35740674
-v 0.35740674 0.86285621 -0.35740674
-v 0.86285621 0.35740674 -0.35740674
-v 0.86285621 -0.35740674 -0.35740674
-v 0.35740674 -0.86285621 -0.35740674
-f 1 2 10 9
-f 1 9 16 8
-f 1 8 7 6 5 4 3 2
-f 2 3 11 10
-f 3 4 12 11
-f 4 5 13 12
-f 5 6 14 13
-f 6 7 15 14
-f 7 8 16 15
-f 9 10 11 12 13 14 15 16
diff --git a/texmf-dist/scripts/ketcindy/data/polyhedrons_obj/p09.obj b/texmf-dist/scripts/ketcindy/data/polyhedrons_obj/p09.obj
deleted file mode 100644
index e00153ab..00000000
--- a/texmf-dist/scripts/ketcindy/data/polyhedrons_obj/p09.obj
+++ /dev/null
@@ -1,29 +0,0 @@
-v -0.32361558 -0.88912649 0.32361558
-v -0.81942341 -0.47309432 0.32361558
-v -0.93181392 0.16430393 0.32361558
-v -0.60819834 0.72482256 0.32361558
-v 0.00000000 0.94618865 0.32361558
-v 0.60819834 0.72482256 0.32361558
-v 0.93181392 0.16430393 0.32361558
-v 0.81942341 -0.47309432 0.32361558
-v 0.32361558 -0.88912649 0.32361558
-v -0.32361558 -0.88912649 -0.32361558
-v -0.81942341 -0.47309432 -0.32361558
-v -0.93181392 0.16430393 -0.32361558
-v -0.60819834 0.72482256 -0.32361558
-v 0.00000000 0.94618865 -0.32361558
-v 0.60819834 0.72482256 -0.32361558
-v 0.93181392 0.16430393 -0.32361558
-v 0.81942341 -0.47309432 -0.32361558
-v 0.32361558 -0.88912649 -0.32361558
-f 1 2 11 10
-f 1 10 18 9
-f 1 9 8 7 6 5 4 3 2
-f 2 3 12 11
-f 3 4 13 12
-f 4 5 14 13
-f 5 6 15 14
-f 6 7 16 15
-f 7 8 17 16
-f 8 9 18 17
-f 10 11 12 13 14 15 16 17 18
diff --git a/texmf-dist/scripts/ketcindy/data/polyhedrons_obj/p10.obj b/texmf-dist/scripts/ketcindy/data/polyhedrons_obj/p10.obj
deleted file mode 100644
index 31941eda..00000000
--- a/texmf-dist/scripts/ketcindy/data/polyhedrons_obj/p10.obj
+++ /dev/null
@@ -1,32 +0,0 @@
-v -0.29524181 -0.90866085 0.29524181
-v -0.77295309 -0.56158329 0.29524181
-v -0.95542256 0.00000000 0.29524181
-v -0.77295309 0.56158329 0.29524181
-v -0.29524181 0.90866085 0.29524181
-v 0.29524181 0.90866085 0.29524181
-v 0.77295309 0.56158329 0.29524181
-v 0.95542256 -0.00000000 0.29524181
-v 0.77295309 -0.56158329 0.29524181
-v 0.29524181 -0.90866085 0.29524181
-v -0.29524181 -0.90866085 -0.29524181
-v -0.77295309 -0.56158329 -0.29524181
-v -0.95542256 0.00000000 -0.29524181
-v -0.77295309 0.56158329 -0.29524181
-v -0.29524181 0.90866085 -0.29524181
-v 0.29524181 0.90866085 -0.29524181
-v 0.77295309 0.56158329 -0.29524181
-v 0.95542256 -0.00000000 -0.29524181
-v 0.77295309 -0.56158329 -0.29524181
-v 0.29524181 -0.90866085 -0.29524181
-f 1 2 12 11
-f 1 11 20 10
-f 1 10 9 8 7 6 5 4 3 2
-f 2 3 13 12
-f 3 4 14 13
-f 4 5 15 14
-f 5 6 16 15
-f 6 7 17 16
-f 7 8 18 17
-f 8 9 19 18
-f 9 10 20 19
-f 11 12 13 14 15 16 17 18 19 20
diff --git a/texmf-dist/scripts/ketcindy/data/polyhedrons_obj/r01.obj b/texmf-dist/scripts/ketcindy/data/polyhedrons_obj/r01.obj
deleted file mode 100644
index 2edf33c5..00000000
--- a/texmf-dist/scripts/ketcindy/data/polyhedrons_obj/r01.obj
+++ /dev/null
@@ -1,8 +0,0 @@
-v -0.81649658 -0.47140452 0.33333333
-v 0.81649658 -0.47140452 0.33333333
-v 0.00000000 0.00000000 -1.00000000
-v 0.00000000 0.94280904 0.33333333
-f 1 2 4
-f 1 4 3
-f 1 3 2
-f 2 3 4
diff --git a/texmf-dist/scripts/ketcindy/data/polyhedrons_obj/r02.obj b/texmf-dist/scripts/ketcindy/data/polyhedrons_obj/r02.obj
deleted file mode 100644
index 85bbede8..00000000
--- a/texmf-dist/scripts/ketcindy/data/polyhedrons_obj/r02.obj
+++ /dev/null
@@ -1,14 +0,0 @@
-v -0.70710678 -0.70710678 0.00000000
-v -0.70710678 0.70710678 0.00000000
-v 0.70710678 0.70710678 0.00000000
-v 0.70710678 -0.70710678 0.00000000
-v 0.00000000 0.00000000 -1.00000000
-v 0.00000000 0.00000000 1.00000000
-f 1 2 5
-f 1 5 4
-f 1 4 6
-f 1 6 2
-f 2 3 5
-f 2 6 3
-f 3 4 5
-f 3 6 4
diff --git a/texmf-dist/scripts/ketcindy/data/polyhedrons_obj/r03.obj b/texmf-dist/scripts/ketcindy/data/polyhedrons_obj/r03.obj
deleted file mode 100644
index c42c1d1f..00000000
--- a/texmf-dist/scripts/ketcindy/data/polyhedrons_obj/r03.obj
+++ /dev/null
@@ -1,14 +0,0 @@
-v -0.57735027 -0.57735027 0.57735027
-v -0.57735027 0.57735027 0.57735027
-v 0.57735027 0.57735027 0.57735027
-v 0.57735027 -0.57735027 0.57735027
-v -0.57735027 -0.57735027 -0.57735027
-v -0.57735027 0.57735027 -0.57735027
-v 0.57735027 0.57735027 -0.57735027
-v 0.57735027 -0.57735027 -0.57735027
-f 1 2 6 5
-f 1 5 8 4
-f 1 4 3 2
-f 2 3 7 6
-f 3 4 8 7
-f 5 6 7 8
diff --git a/texmf-dist/scripts/ketcindy/data/polyhedrons_obj/r04.obj b/texmf-dist/scripts/ketcindy/data/polyhedrons_obj/r04.obj
deleted file mode 100644
index 56a0c40c..00000000
--- a/texmf-dist/scripts/ketcindy/data/polyhedrons_obj/r04.obj
+++ /dev/null
@@ -1,32 +0,0 @@
-v -0.35682209 -0.49112347 0.79465447
-v 0.35682209 -0.49112347 0.79465447
-v 0.57735027 -0.79465447 0.18759247
-v 0.00000000 -0.98224695 -0.18759247
-v -0.57735027 -0.79465447 0.18759247
-v -0.57735027 0.18759247 0.79465447
-v 0.57735027 0.18759247 0.79465447
-v 0.93417236 -0.30353100 -0.18759247
-v -0.00000000 -0.60706200 -0.79465447
-v -0.93417236 -0.30353100 -0.18759247
-v -0.93417236 0.30353100 0.18759247
-v 0.00000000 0.60706200 0.79465447
-v 0.93417236 0.30353100 0.18759247
-v 0.57735027 -0.18759247 -0.79465447
-v -0.57735027 -0.18759247 -0.79465447
-v -0.57735027 0.79465447 -0.18759247
-v 0.00000000 0.98224695 0.18759247
-v 0.57735027 0.79465447 -0.18759247
-v 0.35682209 0.49112347 -0.79465447
-v -0.35682209 0.49112347 -0.79465447
-f 1 2 7 12 6
-f 1 6 11 10 5
-f 1 5 4 3 2
-f 2 3 8 13 7
-f 3 4 9 14 8
-f 4 5 10 15 9
-f 6 12 17 16 11
-f 7 13 18 17 12
-f 8 14 19 18 13
-f 9 15 20 19 14
-f 10 11 16 20 15
-f 16 17 18 19 20
diff --git a/texmf-dist/scripts/ketcindy/data/polyhedrons_obj/r05.obj b/texmf-dist/scripts/ketcindy/data/polyhedrons_obj/r05.obj
deleted file mode 100644
index fd013dc2..00000000
--- a/texmf-dist/scripts/ketcindy/data/polyhedrons_obj/r05.obj
+++ /dev/null
@@ -1,32 +0,0 @@
-v -0.52573111 -0.72360680 0.44721360
-v -0.85065081 0.27639320 0.44721360
-v -0.00000000 0.89442719 0.44721360
-v 0.85065081 0.27639320 0.44721360
-v 0.52573111 -0.72360680 0.44721360
-v 0.00000000 -0.89442719 -0.44721360
-v -0.85065081 -0.27639320 -0.44721360
-v -0.52573111 0.72360680 -0.44721360
-v 0.52573111 0.72360680 -0.44721360
-v 0.85065081 -0.27639320 -0.44721360
-v 0.00000000 0.00000000 1.00000000
-v -0.00000000 0.00000000 -1.00000000
-f 1 2 7
-f 1 7 6
-f 1 6 5
-f 1 5 11
-f 1 11 2
-f 2 3 8
-f 2 8 7
-f 2 11 3
-f 3 4 9
-f 3 9 8
-f 3 11 4
-f 4 5 10
-f 4 10 9
-f 4 11 5
-f 5 6 10
-f 6 7 12
-f 6 12 10
-f 7 8 12
-f 8 9 12
-f 9 10 12
diff --git a/texmf-dist/scripts/ketcindy/data/polyhedrons_obj/s01.obj b/texmf-dist/scripts/ketcindy/data/polyhedrons_obj/s01.obj
deleted file mode 100644
index f493d9c7..00000000
--- a/texmf-dist/scripts/ketcindy/data/polyhedrons_obj/s01.obj
+++ /dev/null
@@ -1,26 +0,0 @@
-v -0.50000000 -0.86602540 -0.00000000
-v -1.00000000 0.00000000 -0.00000000
-v -0.50000000 0.86602540 -0.00000000
-v 0.50000000 0.86602540 -0.00000000
-v 1.00000000 0.00000000 -0.00000000
-v 0.50000000 -0.86602540 -0.00000000
-v -0.50000000 -0.28867513 -0.81649658
-v 0.00000000 0.57735027 -0.81649658
-v 0.50000000 -0.28867513 -0.81649658
-v 0.00000000 -0.57735027 0.81649658
-v 0.50000000 0.28867513 0.81649658
-v -0.50000000 0.28867513 0.81649658
-f 1 2 7
-f 1 7 9 6
-f 1 6 10
-f 1 10 12 2
-f 2 3 8 7
-f 2 12 3
-f 3 4 8
-f 3 12 11 4
-f 4 5 9 8
-f 4 11 5
-f 5 6 9
-f 5 11 10 6
-f 7 8 9
-f 10 11 12
diff --git a/texmf-dist/scripts/ketcindy/data/polyhedrons_obj/s02.obj b/texmf-dist/scripts/ketcindy/data/polyhedrons_obj/s02.obj
deleted file mode 100644
index cc2dc6cb..00000000
--- a/texmf-dist/scripts/ketcindy/data/polyhedrons_obj/s02.obj
+++ /dev/null
@@ -1,62 +0,0 @@
-v -0.30901699 -0.95105652 -0.00000000
-v -0.80901699 -0.58778525 -0.00000000
-v -1.00000000 0.00000000 -0.00000000
-v -0.80901699 0.58778525 -0.00000000
-v -0.30901700 0.95105652 -0.00000000
-v 0.30901699 0.95105652 -0.00000000
-v 0.80901699 0.58778525 -0.00000000
-v 1.00000000 0.00000000 -0.00000000
-v 0.80901699 -0.58778525 -0.00000000
-v 0.30901699 -0.95105652 -0.00000000
-v 0.00000000 -0.85065081 -0.52573111
-v -0.80901699 -0.26286556 -0.52573111
-v -0.50000000 0.68819096 -0.52573111
-v 0.50000000 0.68819096 -0.52573111
-v 0.80901699 -0.26286556 -0.52573111
-v -0.30901699 -0.42532540 -0.85065081
-v -0.50000000 0.16245985 -0.85065081
-v 0.00000000 0.52573111 -0.85065081
-v 0.50000000 0.16245985 -0.85065081
-v 0.30901699 -0.42532540 -0.85065081
-v -0.50000000 -0.68819096 0.52573111
-v 0.50000000 -0.68819096 0.52573111
-v 0.80901699 0.26286556 0.52573111
-v -0.00000000 0.85065081 0.52573111
-v -0.80901699 0.26286556 0.52573111
-v 0.00000000 -0.52573111 0.85065081
-v 0.50000000 -0.16245985 0.85065081
-v 0.30901699 0.42532540 0.85065081
-v -0.30901699 0.42532540 0.85065081
-v -0.50000000 -0.16245985 0.85065081
-f 1 2 12 16 11
-f 1 11 10
-f 1 10 22 26 21
-f 1 21 2
-f 2 3 12
-f 2 21 30 25 3
-f 3 4 13 17 12
-f 3 25 4
-f 4 5 13
-f 4 25 29 24 5
-f 5 6 14 18 13
-f 5 24 6
-f 6 7 14
-f 6 24 28 23 7
-f 7 8 15 19 14
-f 7 23 8
-f 8 9 15
-f 8 23 27 22 9
-f 9 10 11 20 15
-f 9 22 10
-f 11 16 20
-f 12 17 16
-f 13 18 17
-f 14 19 18
-f 15 20 19
-f 16 17 18 19 20
-f 21 26 30
-f 22 27 26
-f 23 28 27
-f 24 29 28
-f 25 30 29
-f 26 27 28 29 30
diff --git a/texmf-dist/scripts/ketcindy/data/polyhedrons_obj/s03.obj b/texmf-dist/scripts/ketcindy/data/polyhedrons_obj/s03.obj
deleted file mode 100644
index 0663c724..00000000
--- a/texmf-dist/scripts/ketcindy/data/polyhedrons_obj/s03.obj
+++ /dev/null
@@ -1,20 +0,0 @@
-v -0.42640143 -0.73854895 0.52223297
-v -0.85280287 0.00000000 0.52223297
-v -0.42640143 0.73854895 0.52223297
-v 0.42640143 0.73854895 0.52223297
-v 0.85280287 -0.00000000 0.52223297
-v 0.42640143 -0.73854895 0.52223297
-v -0.85280287 -0.49236596 -0.17407766
-v 0.00000000 0.98473193 -0.17407766
-v 0.85280287 -0.49236596 -0.17407766
-v -0.42640143 -0.24618298 -0.87038828
-v 0.00000000 0.49236596 -0.87038828
-v 0.42640143 -0.24618298 -0.87038828
-f 1 2 7
-f 1 7 10 12 9 6
-f 1 6 5 4 3 2
-f 2 3 8 11 10 7
-f 3 4 8
-f 4 5 9 12 11 8
-f 5 6 9
-f 10 11 12
diff --git a/texmf-dist/scripts/ketcindy/data/polyhedrons_obj/s04.obj b/texmf-dist/scripts/ketcindy/data/polyhedrons_obj/s04.obj
deleted file mode 100644
index 58e0fa0c..00000000
--- a/texmf-dist/scripts/ketcindy/data/polyhedrons_obj/s04.obj
+++ /dev/null
@@ -1,38 +0,0 @@
-v -0.31622777 -0.54772256 0.77459667
-v -0.63245553 0.00000000 0.77459667
-v -0.31622777 0.54772256 0.77459667
-v 0.31622777 0.54772256 0.77459667
-v 0.63245553 -0.00000000 0.77459667
-v 0.31622777 -0.54772256 0.77459667
-v -0.31622777 -0.91287093 0.25819889
-v -0.94868330 0.18257419 0.25819889
-v -0.63245553 0.73029674 0.25819889
-v 0.63245553 0.73029674 0.25819889
-v 0.94868330 0.18257419 0.25819889
-v 0.31622777 -0.91287093 0.25819889
-v -0.63245553 -0.73029674 -0.25819889
-v -0.94868330 -0.18257419 -0.25819889
-v -0.31622777 0.91287093 -0.25819889
-v 0.31622777 0.91287093 -0.25819889
-v 0.94868330 -0.18257419 -0.25819889
-v 0.63245553 -0.73029674 -0.25819889
-v -0.31622777 -0.54772256 -0.77459667
-v -0.63245553 0.00000000 -0.77459667
-v -0.31622777 0.54772256 -0.77459667
-v 0.31622777 0.54772256 -0.77459667
-v 0.63245553 -0.00000000 -0.77459667
-v 0.31622777 -0.54772256 -0.77459667
-f 1 7 12 6
-f 1 6 5 4 3 2
-f 1 2 8 14 13 7
-f 2 3 9 8
-f 3 4 10 16 15 9
-f 4 5 11 10
-f 5 6 12 18 17 11
-f 7 13 19 24 18 12
-f 8 9 15 21 20 14
-f 10 11 17 23 22 16
-f 13 14 20 19
-f 15 16 22 21
-f 17 18 24 23
-f 19 20 21 22 23 24
diff --git a/texmf-dist/scripts/ketcindy/data/polyhedrons_obj/s05.obj b/texmf-dist/scripts/ketcindy/data/polyhedrons_obj/s05.obj
deleted file mode 100644
index a2ec5ff1..00000000
--- a/texmf-dist/scripts/ketcindy/data/polyhedrons_obj/s05.obj
+++ /dev/null
@@ -1,38 +0,0 @@
-v -0.28108464 -0.67859834 0.67859834
-v -0.67859834 -0.28108464 0.67859834
-v -0.67859834 0.28108464 0.67859834
-v -0.28108464 0.67859834 0.67859834
-v 0.28108464 0.67859834 0.67859834
-v 0.67859834 0.28108464 0.67859834
-v 0.67859834 -0.28108464 0.67859834
-v 0.28108464 -0.67859834 0.67859834
-v 0.00000000 -0.95968298 0.28108464
-v -0.95968298 0.00000000 0.28108464
-v 0.00000000 0.95968298 0.28108464
-v 0.95968298 -0.00000000 0.28108464
-v -0.00000000 -0.95968298 -0.28108464
-v -0.95968298 0.00000000 -0.28108464
-v 0.00000000 0.95968298 -0.28108464
-v 0.95968298 -0.00000000 -0.28108464
-v -0.28108464 -0.67859834 -0.67859834
-v -0.67859834 -0.28108464 -0.67859834
-v -0.67859834 0.28108464 -0.67859834
-v -0.28108464 0.67859834 -0.67859834
-v 0.28108464 0.67859834 -0.67859834
-v 0.67859834 0.28108464 -0.67859834
-v 0.67859834 -0.28108464 -0.67859834
-v 0.28108464 -0.67859834 -0.67859834
-f 1 2 10 14 18 17 13 9
-f 1 9 8
-f 1 8 7 6 5 4 3 2
-f 2 3 10
-f 3 4 11 15 20 19 14 10
-f 4 5 11
-f 5 6 12 16 22 21 15 11
-f 6 7 12
-f 7 8 9 13 24 23 16 12
-f 13 17 24
-f 14 19 18
-f 15 21 20
-f 16 23 22
-f 17 18 19 20 21 22 23 24
diff --git a/texmf-dist/scripts/ketcindy/data/polyhedrons_obj/s06.obj b/texmf-dist/scripts/ketcindy/data/polyhedrons_obj/s06.obj
deleted file mode 100644
index 4167cae1..00000000
--- a/texmf-dist/scripts/ketcindy/data/polyhedrons_obj/s06.obj
+++ /dev/null
@@ -1,92 +0,0 @@
-v -0.20177411 -0.27771823 0.93923362
-v -0.40354821 -0.55543646 0.72707577
-v -0.20177411 -0.83315470 0.51491792
-v 0.20177411 -0.83315470 0.51491792
-v 0.40354821 -0.55543646 0.72707577
-v 0.20177411 -0.27771823 0.93923362
-v -0.32647736 0.10607893 0.93923362
-v -0.65295472 0.21215785 0.72707577
-v -0.85472883 -0.06556038 0.51491792
-v -0.73002557 -0.44935754 0.51491792
-v -0.73002557 -0.66151539 0.17163931
-v -0.40354821 -0.89871508 0.17163931
-v -0.20177411 -0.96427546 -0.17163931
-v 0.20177411 -0.96427546 -0.17163931
-v 0.40354821 -0.89871508 0.17163931
-v 0.73002557 -0.66151539 0.17163931
-v 0.73002557 -0.44935754 0.51491792
-v 0.85472883 -0.06556038 0.51491792
-v 0.65295472 0.21215785 0.72707577
-v 0.32647736 0.10607893 0.93923362
-v -0.00000000 0.34327861 0.93923362
-v -0.65295472 0.55543646 0.51491792
-v -0.85472883 0.48987608 0.17163931
-v -0.97943209 0.10607893 0.17163931
-v -0.97943209 -0.10607892 -0.17163931
-v -0.85472883 -0.48987608 -0.17163931
-v -0.65295472 -0.55543646 -0.51491792
-v -0.32647736 -0.79263615 -0.51491792
-v -0.00000000 -0.68655723 -0.72707577
-v 0.32647736 -0.79263615 -0.51491792
-v 0.65295472 -0.55543646 -0.51491792
-v 0.85472883 -0.48987608 -0.17163931
-v 0.97943209 -0.10607893 -0.17163931
-v 0.97943209 0.10607893 0.17163931
-v 0.85472883 0.48987608 0.17163931
-v 0.65295472 0.55543646 0.51491792
-v 0.32647736 0.79263615 0.51491792
-v 0.00000000 0.68655723 0.72707577
-v -0.32647736 0.79263615 0.51491792
-v -0.73002557 0.66151539 -0.17163931
-v -0.73002557 0.44935754 -0.51491792
-v -0.85472883 0.06556038 -0.51491792
-v -0.65295472 -0.21215785 -0.72707577
-v -0.32647736 -0.10607892 -0.93923362
-v 0.00000000 -0.34327861 -0.93923362
-v 0.32647736 -0.10607892 -0.93923362
-v 0.65295472 -0.21215785 -0.72707577
-v 0.85472883 0.06556038 -0.51491792
-v 0.73002557 0.44935754 -0.51491792
-v 0.73002557 0.66151539 -0.17163931
-v 0.40354821 0.89871508 -0.17163931
-v 0.20177411 0.96427546 0.17163931
-v -0.20177411 0.96427546 0.17163931
-v -0.40354821 0.89871508 -0.17163931
-v -0.20177411 0.83315469 -0.51491792
-v -0.40354821 0.55543646 -0.72707577
-v -0.20177411 0.27771823 -0.93923362
-v 0.20177410 0.27771823 -0.93923362
-v 0.40354821 0.55543646 -0.72707577
-v 0.20177411 0.83315469 -0.51491792
-f 1 6 20 21 7
-f 1 7 8 9 10 2
-f 1 2 3 4 5 6
-f 2 10 11 12 3
-f 3 12 13 14 15 4
-f 4 15 16 17 5
-f 5 17 18 19 20 6
-f 7 21 38 39 22 8
-f 8 22 23 24 9
-f 9 24 25 26 11 10
-f 11 26 27 28 13 12
-f 13 28 29 30 14
-f 14 30 31 32 16 15
-f 16 32 33 34 18 17
-f 18 34 35 36 19
-f 19 36 37 38 21 20
-f 22 39 53 54 40 23
-f 23 40 41 42 25 24
-f 25 42 43 27 26
-f 27 43 44 45 29 28
-f 29 45 46 47 31 30
-f 31 47 48 33 32
-f 33 48 49 50 35 34
-f 35 50 51 52 37 36
-f 37 52 53 39 38
-f 40 54 55 56 41
-f 41 56 57 44 43 42
-f 44 57 58 46 45
-f 46 58 59 49 48 47
-f 49 59 60 51 50
-f 51 60 55 54 53 52
-f 55 60 59 58 57 56
diff --git a/texmf-dist/scripts/ketcindy/data/polyhedrons_obj/s07.obj b/texmf-dist/scripts/ketcindy/data/polyhedrons_obj/s07.obj
deleted file mode 100644
index 5820f529..00000000
--- a/texmf-dist/scripts/ketcindy/data/polyhedrons_obj/s07.obj
+++ /dev/null
@@ -1,92 +0,0 @@
-v -0.16838141 -0.51822468 0.83850515
-v -0.44082824 -0.32028047 0.83850515
-v -0.54489368 0.00000000 0.83850515
-v -0.44082824 0.32028047 0.83850515
-v -0.16838141 0.51822468 0.83850515
-v 0.16838141 0.51822468 0.83850515
-v 0.44082824 0.32028047 0.83850515
-v 0.54489368 0.00000000 0.83850515
-v 0.44082824 -0.32028047 0.83850515
-v 0.16838141 -0.51822468 0.83850515
-v 0.00000000 -0.74998180 0.66145846
-v -0.00000000 -0.92702849 0.37499090
-v 0.16838141 -0.98173893 0.08852334
-v 0.44082824 -0.89321558 -0.08852334
-v 0.71327508 -0.69527137 -0.08852334
-v 0.88165649 -0.46351425 0.08852334
-v 0.88165649 -0.28646756 0.37499090
-v 0.71327508 -0.23175712 0.66145846
-v -0.16838141 -0.98173893 0.08852334
-v -0.44082824 -0.89321558 -0.08852334
-v -0.71327508 -0.69527137 -0.08852334
-v -0.88165649 -0.46351425 0.08852334
-v -0.88165649 -0.28646756 0.37499090
-v -0.71327508 -0.23175712 0.66145846
-v -0.98572192 -0.14323378 0.08852334
-v -0.98572192 0.14323378 -0.08852334
-v -0.88165649 0.46351425 -0.08852334
-v -0.71327508 0.69527137 0.08852334
-v -0.54489368 0.74998180 0.37499090
-v -0.44082824 0.60674802 0.66145846
-v -0.44082824 0.89321558 0.08852334
-v -0.16838141 0.98173893 -0.08852334
-v 0.16838141 0.98173893 -0.08852334
-v 0.44082824 0.89321558 0.08852334
-v 0.54489368 0.74998180 0.37499090
-v 0.44082824 0.60674802 0.66145846
-v 0.71327508 0.69527137 0.08852334
-v 0.88165649 0.46351425 -0.08852334
-v 0.98572192 0.14323378 -0.08852334
-v 0.98572192 -0.14323378 0.08852334
-v 0.54489368 -0.74998180 -0.37499090
-v 0.44082824 -0.60674802 -0.66145846
-v 0.16838141 -0.51822468 -0.83850515
-v -0.16838141 -0.51822468 -0.83850515
-v -0.44082824 -0.60674802 -0.66145846
-v -0.54489368 -0.74998180 -0.37499090
-v -0.44082824 -0.32028047 -0.83850515
-v -0.54489367 0.00000000 -0.83850515
-v -0.71327508 0.23175712 -0.66145846
-v -0.88165649 0.28646756 -0.37499090
-v -0.44082824 0.32028047 -0.83850515
-v -0.16838141 0.51822468 -0.83850515
-v 0.00000000 0.74998180 -0.66145846
-v 0.00000000 0.92702849 -0.37499090
-v 0.16838141 0.51822468 -0.83850515
-v 0.44082824 0.32028047 -0.83850515
-v 0.71327508 0.23175712 -0.66145846
-v 0.88165649 0.28646756 -0.37499090
-v 0.54489368 -0.00000000 -0.83850515
-v 0.44082824 -0.32028047 -0.83850515
-f 1 2 24 23 22 21 20 19 12 11
-f 1 11 10
-f 1 10 9 8 7 6 5 4 3 2
-f 2 3 24
-f 3 4 30 29 28 27 26 25 23 24
-f 4 5 30
-f 5 6 36 35 34 33 32 31 29 30
-f 6 7 36
-f 7 8 18 17 40 39 38 37 35 36
-f 8 9 18
-f 9 10 11 12 13 14 15 16 17 18
-f 12 19 13
-f 13 19 20 46 45 44 43 42 41 14
-f 14 41 15
-f 15 41 42 60 59 57 58 39 40 16
-f 16 40 17
-f 20 21 46
-f 21 22 25 26 50 49 48 47 45 46
-f 22 23 25
-f 26 27 50
-f 27 28 31 32 54 53 52 51 49 50
-f 28 29 31
-f 32 33 54
-f 33 34 37 38 58 57 56 55 53 54
-f 34 35 37
-f 38 39 58
-f 42 43 60
-f 43 44 47 48 51 52 55 56 59 60
-f 44 45 47
-f 48 49 51
-f 52 53 55
-f 56 57 59
diff --git a/texmf-dist/scripts/ketcindy/data/polyhedrons_obj/s08.obj b/texmf-dist/scripts/ketcindy/data/polyhedrons_obj/s08.obj
deleted file mode 100644
index 8441f42c..00000000
--- a/texmf-dist/scripts/ketcindy/data/polyhedrons_obj/s08.obj
+++ /dev/null
@@ -1,50 +0,0 @@
-v -0.35740674 -0.86285621 0.35740674
-v -0.86285621 -0.35740674 0.35740674
-v -0.86285621 0.35740674 0.35740674
-v -0.35740674 0.86285621 0.35740674
-v 0.35740674 0.86285621 0.35740674
-v 0.86285621 0.35740674 0.35740674
-v 0.86285621 -0.35740674 0.35740674
-v 0.35740674 -0.86285621 0.35740674
-v -0.35740674 -0.86285621 -0.35740674
-v -0.86285621 -0.35740674 -0.35740674
-v -0.86285621 0.35740674 -0.35740674
-v -0.35740674 0.86285621 -0.35740674
-v 0.35740674 0.86285621 -0.35740674
-v 0.86285621 0.35740674 -0.35740674
-v 0.86285621 -0.35740674 -0.35740674
-v 0.35740674 -0.86285621 -0.35740674
-v -0.35740674 -0.35740674 0.86285621
-v 0.35740674 -0.35740674 0.86285621
-v 0.35740674 0.35740674 0.86285621
-v -0.35740674 0.35740674 0.86285621
-v -0.35740674 -0.35740674 -0.86285621
-v -0.35740674 0.35740674 -0.86285621
-v 0.35740674 0.35740674 -0.86285621
-v 0.35740674 -0.35740674 -0.86285621
-f 1 2 10 9
-f 1 9 16 8
-f 1 8 18 17
-f 1 17 2
-f 2 3 11 10
-f 2 17 20 3
-f 3 4 12 11
-f 3 20 4
-f 4 5 13 12
-f 4 20 19 5
-f 5 6 14 13
-f 5 19 6
-f 6 7 15 14
-f 6 19 18 7
-f 7 8 16 15
-f 7 18 8
-f 9 10 21
-f 9 21 24 16
-f 10 11 22 21
-f 11 12 22
-f 12 13 23 22
-f 13 14 23
-f 14 15 24 23
-f 15 16 24
-f 17 18 19 20
-f 21 22 23 24
diff --git a/texmf-dist/scripts/ketcindy/data/polyhedrons_obj/s09.obj b/texmf-dist/scripts/ketcindy/data/polyhedrons_obj/s09.obj
deleted file mode 100644
index 40f8fdd8..00000000
--- a/texmf-dist/scripts/ketcindy/data/polyhedrons_obj/s09.obj
+++ /dev/null
@@ -1,122 +0,0 @@
-v -0.22391898 -0.68915176 0.68915176
-v -0.58622750 -0.42591921 0.68915176
-v -0.72461704 -0.00000000 0.68915176
-v -0.58622750 0.42591921 0.68915176
-v -0.22391898 0.68915176 0.68915176
-v 0.22391898 0.68915176 0.68915176
-v 0.58622750 0.42591921 0.68915176
-v 0.72461704 -0.00000000 0.68915176
-v 0.58622750 -0.42591921 0.68915176
-v 0.22391898 -0.68915176 0.68915176
-v -0.22391898 -0.92459411 0.30819804
-v -0.81014648 -0.49867490 0.30819804
-v -0.94853602 -0.07275569 0.30819804
-v -0.72461704 0.61639607 0.30819804
-v -0.36230852 0.87962862 0.30819804
-v 0.36230852 0.87962862 0.30819804
-v 0.72461704 0.61639607 0.30819804
-v 0.94853602 -0.07275569 0.30819804
-v 0.81014648 -0.49867490 0.30819804
-v 0.22391898 -0.92459411 0.30819804
-v 0.00000000 -0.99734979 -0.07275569
-v -0.58622750 -0.80687293 0.07275569
-v -0.94853602 0.30819804 0.07275569
-v 0.00000000 0.99734979 0.07275569
-v 0.94853602 0.30819803 0.07275569
-v 0.58622750 -0.80687293 0.07275569
-v -0.36230852 -0.87962862 -0.30819804
-v -0.22391898 -0.68915176 -0.68915176
-v -0.22391898 -0.30819804 -0.92459411
-v -0.36230852 0.11772117 -0.92459411
-v -0.58622750 0.42591921 -0.68915176
-v -0.81014648 0.49867490 -0.30819804
-v 0.36230852 -0.87962862 -0.30819804
-v 0.22391898 -0.68915176 -0.68915176
-v 0.22391898 -0.30819803 -0.92459411
-v 0.36230852 0.11772117 -0.92459411
-v 0.58622750 0.42591921 -0.68915176
-v 0.81014648 0.49867490 -0.30819804
-v -0.00000000 0.38095372 -0.92459410
-v -0.22391898 0.68915176 -0.68915176
-v 0.22391898 0.68915176 -0.68915176
-v -0.22391898 0.92459411 -0.30819804
-v 0.22391898 0.92459411 -0.30819804
-v 0.58622750 0.80687293 -0.07275569
-v -0.58622750 0.80687293 -0.07275569
-v 0.00000000 -0.38095372 0.92459411
-v 0.36230852 -0.11772117 0.92459411
-v 0.22391898 0.30819804 0.92459411
-v -0.22391898 0.30819804 0.92459411
-v -0.36230852 -0.11772117 0.92459411
-v -0.94853602 -0.30819804 -0.07275569
-v -0.94853602 0.07275569 -0.30819804
-v -0.72461704 -0.00000000 -0.68915176
-v -0.58622750 -0.42591921 -0.68915176
-v -0.72461704 -0.61639607 -0.30819804
-v 0.94853602 -0.30819804 -0.07275569
-v 0.72461704 -0.61639607 -0.30819804
-v 0.58622750 -0.42591921 -0.68915176
-v 0.72461704 0.00000000 -0.68915176
-v 0.94853602 0.07275569 -0.30819804
-f 1 2 12 22 11
-f 1 11 20 10
-f 1 10 46
-f 1 46 50 2
-f 2 3 13 12
-f 2 50 3
-f 3 4 14 23 13
-f 3 50 49 4
-f 4 5 15 14
-f 4 49 5
-f 5 6 16 24 15
-f 5 49 48 6
-f 6 7 17 16
-f 6 48 7
-f 7 8 18 25 17
-f 7 48 47 8
-f 8 9 19 18
-f 8 47 9
-f 9 10 20 26 19
-f 9 47 46 10
-f 11 22 27 21
-f 11 21 20
-f 12 13 51
-f 12 51 55 22
-f 13 23 52 51
-f 14 15 45
-f 14 45 32 23
-f 15 24 42 45
-f 16 17 44
-f 16 44 43 24
-f 17 25 38 44
-f 18 19 56
-f 18 56 60 25
-f 19 26 57 56
-f 20 21 33 26
-f 21 27 28 34 33
-f 22 55 27
-f 23 32 52
-f 24 43 42
-f 25 60 38
-f 26 33 57
-f 27 55 54 28
-f 28 29 35 34
-f 28 54 29
-f 29 30 39 36 35
-f 29 54 53 30
-f 30 31 40 39
-f 30 53 31
-f 31 32 45 42 40
-f 31 53 52 32
-f 33 34 58 57
-f 34 35 58
-f 35 36 59 58
-f 36 39 41 37
-f 36 37 59
-f 37 41 43 44 38
-f 37 38 60 59
-f 39 40 41
-f 40 42 43 41
-f 46 47 48 49 50
-f 51 52 53 54 55
-f 56 57 58 59 60
diff --git a/texmf-dist/scripts/ketcindy/data/polyhedrons_obj/s10.obj b/texmf-dist/scripts/ketcindy/data/polyhedrons_obj/s10.obj
deleted file mode 100644
index c9027972..00000000
--- a/texmf-dist/scripts/ketcindy/data/polyhedrons_obj/s10.obj
+++ /dev/null
@@ -1,74 +0,0 @@
-v -0.21573941 -0.52084100 0.82594259
-v -0.52084100 -0.21573941 0.82594259
-v -0.52084100 0.21573941 0.82594259
-v -0.21573941 0.52084100 0.82594259
-v 0.21573941 0.52084100 0.82594259
-v 0.52084100 0.21573941 0.82594259
-v 0.52084100 -0.21573941 0.82594259
-v 0.21573941 -0.52084100 0.82594259
-v -0.21573941 -0.82594259 0.52084100
-v -0.82594259 -0.21573941 0.52084100
-v -0.82594259 0.21573941 0.52084100
-v -0.21573941 0.82594259 0.52084100
-v 0.21573941 0.82594259 0.52084100
-v 0.82594259 0.21573941 0.52084100
-v 0.82594259 -0.21573941 0.52084100
-v 0.21573941 -0.82594259 0.52084100
-v -0.52084100 -0.82594259 0.21573941
-v -0.82594259 -0.52084100 0.21573941
-v -0.82594259 0.52084100 0.21573941
-v -0.52084100 0.82594259 0.21573941
-v 0.52084100 0.82594259 0.21573941
-v 0.82594259 0.52084100 0.21573941
-v 0.82594259 -0.52084100 0.21573941
-v 0.52084100 -0.82594259 0.21573941
-v 0.52084100 -0.82594259 -0.21573941
-v 0.21573940 -0.82594259 -0.52084100
-v -0.21573941 -0.82594259 -0.52084100
-v -0.52084100 -0.82594259 -0.21573941
-v -0.82594259 -0.52084100 -0.21573941
-v -0.82594259 -0.21573941 -0.52084100
-v -0.82594259 0.21573941 -0.52084100
-v -0.82594259 0.52084100 -0.21573941
-v -0.52084100 0.82594259 -0.21573941
-v -0.21573941 0.82594259 -0.52084100
-v 0.21573941 0.82594259 -0.52084100
-v 0.52084100 0.82594259 -0.21573941
-v 0.82594259 0.52084100 -0.21573941
-v 0.82594259 0.21573941 -0.52084100
-v 0.82594259 -0.21573941 -0.52084100
-v 0.82594259 -0.52084100 -0.21573941
-v 0.52084100 -0.21573941 -0.82594259
-v 0.52084100 0.21573941 -0.82594259
-v 0.21573941 0.52084100 -0.82594259
-v -0.21573941 0.52084100 -0.82594259
-v -0.52084100 0.21573941 -0.82594259
-v -0.52084100 -0.21573941 -0.82594259
-v -0.21573941 -0.52084100 -0.82594259
-v 0.21573940 -0.52084100 -0.82594259
-f 1 2 10 18 17 9
-f 1 9 16 8
-f 1 8 7 6 5 4 3 2
-f 2 3 11 10
-f 3 4 12 20 19 11
-f 4 5 13 12
-f 5 6 14 22 21 13
-f 6 7 15 14
-f 7 8 16 24 23 15
-f 9 17 28 27 26 25 24 16
-f 10 11 19 32 31 30 29 18
-f 12 13 21 36 35 34 33 20
-f 14 15 23 40 39 38 37 22
-f 17 18 29 28
-f 19 20 33 32
-f 21 22 37 36
-f 23 24 25 40
-f 25 26 48 41 39 40
-f 26 27 47 48
-f 27 28 29 30 46 47
-f 30 31 45 46
-f 31 32 33 34 44 45
-f 34 35 43 44
-f 35 36 37 38 42 43
-f 38 39 41 42
-f 41 48 47 46 45 44 43 42
diff --git a/texmf-dist/scripts/ketcindy/data/polyhedrons_obj/s11.obj b/texmf-dist/scripts/ketcindy/data/polyhedrons_obj/s11.obj
deleted file mode 100644
index 496cd08e..00000000
--- a/texmf-dist/scripts/ketcindy/data/polyhedrons_obj/s11.obj
+++ /dev/null
@@ -1,182 +0,0 @@
-v -0.13149606 -0.40470333 0.90494412
-v -0.34426119 -0.25012042 0.90494412
-v -0.42553024 -0.00000001 0.90494412
-v -0.34426119 0.25012040 0.90494412
-v -0.13149606 0.40470332 0.90494412
-v 0.13149611 0.40470332 0.90494412
-v 0.34426124 0.25012040 0.90494412
-v 0.42553028 -0.00000001 0.90494412
-v 0.34426124 -0.25012042 0.90494412
-v 0.13149611 -0.40470333 0.90494412
-v -0.13149606 -0.62841783 0.76668096
-v -0.34426119 -0.69754941 0.62841780
-v -0.42553024 -0.80940666 0.40470330
-v -0.34426119 -0.92126391 0.18098881
-v -0.13149606 -0.99039549 0.04272564
-v 0.13149611 -0.99039549 0.04272564
-v 0.34426124 -0.92126391 0.18098881
-v 0.42553028 -0.80940666 0.40470330
-v 0.34426124 -0.69754941 0.62841780
-v 0.13149611 -0.62841783 0.76668096
-v -0.55702632 -0.54296650 0.62841780
-v -0.55702632 -0.31925200 0.76668096
-v -0.63829537 -0.06913159 0.76668096
-v -0.76979145 0.11185724 0.62841780
-v -0.90128753 0.15458291 0.40470330
-v -0.98255658 0.04272566 0.18098880
-v -0.98255658 -0.18098884 0.04272564
-v -0.90128753 -0.43110925 0.04272564
-v -0.76979145 -0.61209808 0.18098881
-v -0.63829537 -0.65482375 0.40470330
-v -0.82001848 0.54296648 0.18098881
-v -0.82001848 0.40470332 0.40470330
-v -0.68852240 0.36197765 0.62841780
-v -0.47575727 0.43110923 0.76668096
-v -0.26299214 0.58569215 0.76668096
-v -0.13149606 0.76668098 0.62841780
-v -0.13149606 0.90494414 0.40470330
-v -0.26299214 0.94766981 0.18098881
-v -0.47575727 0.87853823 0.04272564
-v -0.68852240 0.72395531 0.04272564
-v 0.47575732 0.87853821 0.04272564
-v 0.26299219 0.94766979 0.18098880
-v 0.13149611 0.90494413 0.40470330
-v 0.13149611 0.76668098 0.62841780
-v 0.26299219 0.58569215 0.76668096
-v 0.47575732 0.43110923 0.76668096
-v 0.68852245 0.36197765 0.62841780
-v 0.82001853 0.40470330 0.40470331
-v 0.82001853 0.54296646 0.18098881
-v 0.68852245 0.72395529 0.04272564
-v 0.63829541 -0.65482375 0.40470330
-v 0.76979150 -0.61209808 0.18098881
-v 0.90128758 -0.43110925 0.04272564
-v 0.98255663 -0.18098884 0.04272564
-v 0.98255647 0.04272561 0.18098879
-v 0.90128750 0.15458288 0.40470331
-v 0.76979150 0.11185724 0.62841780
-v 0.63829541 -0.06913159 0.76668096
-v 0.55702637 -0.31925200 0.76668096
-v 0.55702637 -0.54296650 0.62841780
-v -0.47575727 -0.87853824 -0.04272569
-v -0.68852240 -0.72395533 -0.04272569
-v -0.82001848 -0.54296650 -0.18098886
-v -0.82001848 -0.40470333 -0.40470335
-v -0.68852240 -0.36197767 -0.62841785
-v -0.47575727 -0.43110925 -0.76668101
-v -0.26299214 -0.58569216 -0.76668101
-v -0.13149605 -0.76668099 -0.62841784
-v -0.13149606 -0.90494416 -0.40470335
-v -0.26299214 -0.94766982 -0.18098885
-v -0.90128753 -0.15458292 -0.40470335
-v -0.98255658 -0.04272567 -0.18098885
-v -0.98255658 0.18098882 -0.04272569
-v -0.90128753 0.43110923 -0.04272569
-v -0.76979145 0.61209806 -0.18098885
-v -0.63829536 0.65482373 -0.40470335
-v -0.55702632 0.54296648 -0.62841785
-v -0.55702632 0.31925199 -0.76668101
-v -0.63829537 0.06913157 -0.76668101
-v -0.76979145 -0.11185726 -0.62841785
-v -0.13149606 0.62841781 -0.76668101
-v -0.34426119 0.69754940 -0.62841785
-v -0.42553023 0.80940665 -0.40470335
-v -0.34426119 0.92126389 -0.18098885
-v -0.13149606 0.99039547 -0.04272569
-v 0.13149611 0.99039546 -0.04272569
-v 0.34426124 0.92126387 -0.18098886
-v 0.42553028 0.80940661 -0.40470335
-v 0.34426124 0.69754939 -0.62841785
-v 0.13149611 0.62841781 -0.76668101
-v 0.76979153 -0.11185725 -0.62841782
-v 0.63829541 0.06913155 -0.76668097
-v 0.55702634 0.31925197 -0.76668097
-v 0.55702635 0.54296649 -0.62841782
-v 0.63829541 0.65482370 -0.40470335
-v 0.76979149 0.61209803 -0.18098885
-v 0.90128750 0.43110919 -0.04272571
-v 0.98255648 0.18098877 -0.04272572
-v 0.98255640 -0.04272561 -0.18098874
-v 0.90128711 -0.15458281 -0.40470320
-v 0.26299219 -0.94766982 -0.18098885
-v 0.13149611 -0.90494416 -0.40470335
-v 0.13149611 -0.76668098 -0.62841784
-v 0.26299219 -0.58569215 -0.76668099
-v 0.47575682 -0.43110886 -0.76668009
-v 0.68852237 -0.36197738 -0.62841730
-v 0.82001805 -0.40470325 -0.40470322
-v 0.82001853 -0.54296650 -0.18098885
-v 0.68852245 -0.72395533 -0.04272569
-v 0.47575732 -0.87853824 -0.04272569
-v -0.13149606 -0.40470333 -0.90494417
-v -0.34426119 -0.25012042 -0.90494417
-v -0.42553024 -0.00000000 -0.90494417
-v -0.34426119 0.25012040 -0.90494417
-v -0.13149606 0.40470332 -0.90494417
-v 0.13149611 0.40470332 -0.90494417
-v 0.34426120 0.25012038 -0.90494414
-v 0.42553027 -0.00000003 -0.90494414
-v 0.34426060 -0.25012001 -0.90494332
-v 0.13149611 -0.40470332 -0.90494416
-f 1 2 22 21 12 11
-f 1 11 20 10
-f 1 10 9 8 7 6 5 4 3 2
-f 2 3 23 22
-f 3 4 34 33 24 23
-f 4 5 35 34
-f 5 6 45 44 36 35
-f 6 7 46 45
-f 7 8 58 57 47 46
-f 8 9 59 58
-f 9 10 20 19 60 59
-f 11 12 13 14 15 16 17 18 19 20
-f 12 21 30 13
-f 13 30 29 62 61 14
-f 14 61 70 15
-f 15 70 69 102 101 16
-f 16 101 110 17
-f 17 110 109 52 51 18
-f 18 51 60 19
-f 21 22 23 24 25 26 27 28 29 30
-f 24 33 32 25
-f 25 32 31 74 73 26
-f 26 73 72 27
-f 27 72 71 64 63 28
-f 28 63 62 29
-f 31 32 33 34 35 36 37 38 39 40
-f 31 40 75 74
-f 36 44 43 37
-f 37 43 42 86 85 38
-f 38 85 84 39
-f 39 84 83 76 75 40
-f 41 42 43 44 45 46 47 48 49 50
-f 41 50 96 95 88 87
-f 41 87 86 42
-f 47 57 56 48
-f 48 56 55 98 97 49
-f 49 97 96 50
-f 51 52 53 54 55 56 57 58 59 60
-f 52 109 108 53
-f 53 108 107 100 99 54
-f 54 99 98 55
-f 61 62 63 64 65 66 67 68 69 70
-f 64 71 80 65
-f 65 80 79 113 112 66
-f 66 112 111 67
-f 67 111 120 104 103 68
-f 68 103 102 69
-f 71 72 73 74 75 76 77 78 79 80
-f 76 83 82 77
-f 77 82 81 115 114 78
-f 78 114 113 79
-f 81 82 83 84 85 86 87 88 89 90
-f 81 90 116 115
-f 88 95 94 89
-f 89 94 93 117 116 90
-f 91 92 93 94 95 96 97 98 99 100
-f 91 100 107 106
-f 91 106 105 119 118 92
-f 92 118 117 93
-f 101 102 103 104 105 106 107 108 109 110
-f 104 120 119 105
-f 111 112 113 114 115 116 117 118 119 120
diff --git a/texmf-dist/scripts/ketcindy/data/polyhedrons_obj/s12L.obj b/texmf-dist/scripts/ketcindy/data/polyhedrons_obj/s12L.obj
deleted file mode 100644
index aaee84e5..00000000
--- a/texmf-dist/scripts/ketcindy/data/polyhedrons_obj/s12L.obj
+++ /dev/null
@@ -1,62 +0,0 @@
-v -0.37210275 -0.37210283 0.85033943
-v -0.37210275 0.37210284 0.85033943
-v 0.37210291 0.37210284 0.85033943
-v 0.37210291 -0.37210283 0.85033943
-v -0.68440375 -0.68440382 0.25135842
-v -0.88671195 0.00000000 0.46232019
-v -0.68440375 0.68440383 0.25135842
-v 0.00000008 0.88671203 0.46232019
-v 0.68440391 0.68440383 0.25135842
-v 0.88671211 0.00000000 0.46232019
-v 0.68440391 -0.68440382 0.25135842
-v 0.00000008 -0.88671202 0.46232019
-v -0.74420553 -0.48209560 -0.46232023
-v -0.94651373 0.20230822 -0.25135846
-v -0.48209559 0.74420581 -0.46232023
-v 0.20230824 0.94651401 -0.25135846
-v 0.74420550 0.48209553 -0.46232032
-v 0.94651368 -0.20230824 -0.25135852
-v 0.48209586 -0.74420614 -0.46232018
-v -0.20230823 -0.94651406 -0.25135841
-v -0.51460872 0.10999275 -0.85033925
-v 0.10999269 0.51461005 -0.85033999
-v 0.51460748 -0.10999294 -0.85033865
-v -0.10999264 -0.51460945 -0.85033947
-f 1 2 6
-f 1 6 5
-f 1 5 12
-f 1 12 4
-f 1 4 3 2
-f 2 3 8
-f 2 8 7
-f 2 7 6
-f 3 4 10
-f 3 10 9
-f 3 9 8
-f 4 12 11
-f 4 11 10
-f 5 6 14 13
-f 5 13 20
-f 5 20 12
-f 6 7 14
-f 7 8 16 15
-f 7 15 14
-f 8 9 16
-f 9 17 16
-f 9 10 18 17
-f 10 11 18
-f 11 12 20 19
-f 11 19 18
-f 13 14 21
-f 13 21 24
-f 13 24 20
-f 14 15 21
-f 15 16 22
-f 15 22 21
-f 16 17 22
-f 17 23 22
-f 17 18 23
-f 18 19 23
-f 19 20 24
-f 19 24 23
-f 21 22 23 24
diff --git a/texmf-dist/scripts/ketcindy/data/polyhedrons_obj/s12R.obj b/texmf-dist/scripts/ketcindy/data/polyhedrons_obj/s12R.obj
deleted file mode 100644
index 8cdb06b6..00000000
--- a/texmf-dist/scripts/ketcindy/data/polyhedrons_obj/s12R.obj
+++ /dev/null
@@ -1,62 +0,0 @@
-v -0.37210283 -0.37210275 0.85033943
-v 0.37210284 -0.37210275 0.85033943
-v 0.37210284 0.37210291 0.85033943
-v -0.37210283 0.37210291 0.85033943
-v -0.68440382 -0.68440374 0.25135842
-v 0.00000000 -0.88671194 0.46232019
-v 0.68440383 -0.68440374 0.25135842
-v 0.88671203 0.00000008 0.46232019
-v 0.68440383 0.68440391 0.25135842
-v 0.00000001 0.88671211 0.46232019
-v -0.68440382 0.68440391 0.25135842
-v -0.88671202 0.00000008 0.46232019
-v -0.48209560 -0.74420553 -0.46232022
-v 0.20230822 -0.94651373 -0.25135846
-v 0.74420581 -0.48209559 -0.46232022
-v 0.94651401 0.20230824 -0.25135846
-v 0.48209553 0.74420550 -0.46232032
-v -0.20230824 0.94651368 -0.25135852
-v -0.74420614 0.48209586 -0.46232018
-v -0.94651406 -0.20230823 -0.25135841
-v 0.10999275 -0.51460872 -0.85033925
-v 0.51461005 0.10999269 -0.85033999
-v -0.10999294 0.51460747 -0.85033864
-v -0.51460944 -0.10999264 -0.85033947
-f 1 4 12
-f 1 12 5
-f 1 5 6
-f 1 6 2
-f 1 2 3 4
-f 2 6 7
-f 2 7 8
-f 2 8 3
-f 3 8 9
-f 3 9 10
-f 3 10 4
-f 4 10 11
-f 4 11 12
-f 5 12 20
-f 5 20 13
-f 5 13 14 6
-f 6 14 7
-f 7 14 15
-f 7 15 16 8
-f 8 16 9
-f 9 16 17
-f 9 17 18 10
-f 10 18 11
-f 11 18 19
-f 11 19 20 12
-f 13 20 24
-f 13 24 21
-f 13 21 14
-f 14 21 15
-f 15 21 22
-f 15 22 16
-f 16 22 17
-f 17 22 23
-f 17 23 18
-f 18 23 19
-f 19 23 24
-f 19 24 20
-f 21 24 23 22
diff --git a/texmf-dist/scripts/ketcindy/data/polyhedrons_obj/s13L.obj b/texmf-dist/scripts/ketcindy/data/polyhedrons_obj/s13L.obj
deleted file mode 100644
index fe10910d..00000000
--- a/texmf-dist/scripts/ketcindy/data/polyhedrons_obj/s13L.obj
+++ /dev/null
@@ -1,152 +0,0 @@
-v -0.23192831 -0.31922195 0.91886098
-v -0.37526789 0.12193192 0.91886098
-v 0.00000001 0.39458001 0.91886098
-v 0.37526790 0.12193192 0.91886098
-v 0.23192832 -0.31922195 0.91886098
-v -0.64379514 -0.20918173 0.73605007
-v -0.72920227 0.23693218 0.64197045
-v -0.39788728 0.54764486 0.73605007
-v 0.00000001 0.76672864 0.64197045
-v 0.39788729 0.54764486 0.73605007
-v 0.72920229 0.23693218 0.64197045
-v 0.64379516 -0.20918173 0.73605007
-v 0.45067180 -0.62029652 0.64197045
-v 0.00000001 -0.67692629 0.73605007
-v -0.45067179 -0.62029652 0.64197045
-v -0.80031956 -0.46310151 0.38082081
-v -0.68774804 0.61804289 0.38082081
-v 0.37526790 0.84507302 0.38082081
-v 0.91967637 -0.09575906 0.38082081
-v 0.19312336 -0.90425538 0.38082081
-v -0.53607892 -0.81262648 0.22859680
-v -0.80975412 -0.58290795 -0.06719747
-v -0.98246410 -0.17391866 0.06719745
-v -0.93851120 0.25872595 0.22859680
-v -0.80460617 0.58999346 -0.06719747
-v -0.46900456 0.88063506 0.06719744
-v -0.04395289 0.97252791 0.22859680
-v 0.31248017 0.94754396 -0.06719747
-v 0.69260335 0.71818105 0.06719745
-v 0.91134683 0.34232934 0.22859680
-v 0.99772955 -0.00437911 -0.06719747
-v 0.89705698 -0.43677477 0.06719744
-v 0.60719621 -0.76095675 0.22859680
-v 0.30415062 -0.95025041 -0.06719747
-v -0.13819163 -0.98812271 0.06719745
-v -0.46900456 -0.85309854 -0.22859683
-v -0.89001331 -0.25070046 -0.38082083
-v -0.95627530 0.18242790 -0.22859683
-v -0.51345952 0.76898225 -0.38082083
-v -0.12200607 0.96584518 -0.22859683
-v 0.57267787 0.72595761 -0.38082083
-v 0.88087142 0.41449724 -0.22859683
-v 0.86739393 -0.32031578 -0.38082083
-v 0.66641454 -0.70967180 -0.22859683
-v -0.03659893 -0.92392370 -0.38082084
-v -0.33866894 -0.68787802 -0.64197048
-v -0.59886666 -0.31557553 -0.73605009
-v -0.75886533 0.10952730 -0.64197048
-v -0.48519013 0.47203783 -0.73605009
-v -0.13033561 0.75556961 -0.64197047
-v 0.29900267 0.60731094 -0.73605008
-v 0.67831351 0.35744039 -0.64197048
-v 0.66998396 -0.09669904 -0.73605009
-v 0.54955640 -0.53465933 -0.64197049
-v 0.11507018 -0.66707429 -0.73605010
-v -0.17428848 -0.35400123 -0.91886092
-v -0.39053340 0.05636580 -0.91886108
-v -0.06707427 0.38883710 -0.91886080
-v 0.34907940 0.18394910 -0.91886141
-v 0.28281632 -0.27515023 -0.91886006
-f 1 2 6
-f 1 6 15
-f 1 15 14
-f 1 14 5
-f 1 5 4 3 2
-f 2 3 8
-f 2 8 7
-f 2 7 6
-f 3 4 10
-f 3 10 9
-f 3 9 8
-f 4 5 12
-f 4 12 11
-f 4 11 10
-f 5 14 13
-f 5 13 12
-f 6 7 24 23 16
-f 6 16 15
-f 7 8 17
-f 7 17 24
-f 8 9 27 26 17
-f 9 10 18
-f 9 18 27
-f 10 11 30 29 18
-f 11 12 19
-f 11 19 30
-f 12 13 33 32 19
-f 13 14 20
-f 13 20 33
-f 14 15 21 35 20
-f 15 16 21
-f 16 23 22
-f 16 22 21
-f 17 26 25
-f 17 25 24
-f 18 29 28
-f 18 28 27
-f 19 32 31
-f 19 31 30
-f 20 35 34
-f 20 34 33
-f 21 22 36
-f 21 36 35
-f 22 23 37
-f 22 37 47 46 36
-f 23 24 38
-f 23 38 37
-f 24 25 38
-f 25 26 39
-f 25 39 49 48 38
-f 26 27 40
-f 26 40 39
-f 27 28 40
-f 28 29 41
-f 28 41 51 50 40
-f 29 30 42
-f 29 42 41
-f 30 31 42
-f 31 43 53 52 42
-f 31 32 43
-f 32 44 43
-f 32 33 44
-f 33 34 44
-f 34 35 45
-f 34 45 55 54 44
-f 35 36 45
-f 36 46 45
-f 37 38 48
-f 37 48 47
-f 39 40 50
-f 39 50 49
-f 41 42 52
-f 41 52 51
-f 43 44 54
-f 43 54 53
-f 45 46 55
-f 46 47 56
-f 46 56 55
-f 47 48 57
-f 47 57 56
-f 48 49 57
-f 49 50 58
-f 49 58 57
-f 50 51 58
-f 51 59 58
-f 51 52 59
-f 52 53 59
-f 53 54 60
-f 53 60 59
-f 54 55 60
-f 55 56 60
-f 56 57 58 59 60
diff --git a/texmf-dist/scripts/ketcindy/data/polyhedrons_obj/s13R.obj b/texmf-dist/scripts/ketcindy/data/polyhedrons_obj/s13R.obj
deleted file mode 100644
index fa9be1b3..00000000
--- a/texmf-dist/scripts/ketcindy/data/polyhedrons_obj/s13R.obj
+++ /dev/null
@@ -1,152 +0,0 @@
-v -0.23192837 -0.31922203 0.91886124
-v 0.23192838 -0.31922203 0.91886124
-v 0.37526800 0.12193196 0.91886124
-v 0.00000000 0.39458012 0.91886124
-v -0.37526799 0.12193196 0.91886124
-v 0.00000000 -0.67692647 0.73605027
-v 0.45067192 -0.62029668 0.64197064
-v 0.64379533 -0.20918178 0.73605027
-v 0.72920248 0.23693225 0.64197064
-v 0.39788740 0.54764501 0.73605027
-v 0.00000000 0.76672886 0.64197064
-v -0.39788739 0.54764501 0.73605027
-v -0.72920248 0.23693225 0.64197064
-v -0.64379532 -0.20918178 0.73605027
-v -0.45067191 -0.62029668 0.64197064
-v -0.19312341 -0.90425562 0.38082092
-v 0.80031978 -0.46310163 0.38082092
-v 0.68774824 0.61804307 0.38082092
-v -0.37526799 0.84507325 0.38082092
-v -0.91967661 -0.09575908 0.38082092
-v -0.60719637 -0.76095695 0.22859687
-v -0.30415069 -0.95025066 -0.06719748
-v 0.13819168 -0.98812298 0.06719747
-v 0.53607907 -0.81262670 0.22859687
-v 0.80975434 -0.58290810 -0.06719748
-v 0.98246437 -0.17391870 0.06719747
-v 0.93851146 0.25872603 0.22859687
-v 0.80460641 0.58999364 -0.06719748
-v 0.46900470 0.88063531 0.06719747
-v 0.04395291 0.97252818 0.22859687
-v -0.31248024 0.94754422 -0.06719748
-v -0.69260352 0.71818125 0.06719747
-v -0.91134706 0.34232943 0.22859687
-v -0.99772981 -0.00437910 -0.06719748
-v -0.89705721 -0.43677489 0.06719747
-v -0.66641472 -0.70967199 -0.22859688
-v 0.03659896 -0.92392391 -0.38082093
-v 0.46900470 -0.85309878 -0.22859688
-v 0.89001354 -0.25070051 -0.38082093
-v 0.95627558 0.18242795 -0.22859688
-v 0.51345966 0.76898245 -0.38082093
-v 0.12200611 0.96584547 -0.22859688
-v -0.57267800 0.72595780 -0.38082093
-v -0.88087165 0.41449736 -0.22859688
-v -0.86739415 -0.32031586 -0.38082093
-v -0.54955655 -0.53465945 -0.64197064
-v -0.11507021 -0.66707442 -0.73605028
-v 0.33866904 -0.68787822 -0.64197064
-v 0.59886681 -0.31557561 -0.73605027
-v 0.75886555 0.10952733 -0.64197063
-v 0.48519026 0.47203794 -0.73605027
-v 0.13033567 0.75556984 -0.64197064
-v -0.29900272 0.60731111 -0.73605027
-v -0.67831368 0.35744049 -0.64197064
-v -0.66998413 -0.09669906 -0.73605027
-v -0.28281717 -0.27515070 -0.91886123
-v 0.17428857 -0.35400135 -0.91886120
-v 0.39053348 0.05636583 -0.91886122
-v 0.06707433 0.38883729 -0.91886104
-v -0.34907938 0.18394906 -0.91886143
-f 1 5 14
-f 1 14 15
-f 1 15 6
-f 1 6 2
-f 1 2 3 4 5
-f 2 6 7
-f 2 7 8
-f 2 8 3
-f 3 8 9
-f 3 9 10
-f 3 10 4
-f 4 10 11
-f 4 11 12
-f 4 12 5
-f 5 12 13
-f 5 13 14
-f 6 15 16
-f 6 16 23 24 7
-f 7 24 17
-f 7 17 8
-f 8 17 26 27 9
-f 9 27 18
-f 9 18 10
-f 10 18 29 30 11
-f 11 30 19
-f 11 19 12
-f 12 19 32 33 13
-f 13 33 20
-f 13 20 14
-f 14 20 35 21 15
-f 15 21 16
-f 16 21 22
-f 16 22 23
-f 17 24 25
-f 17 25 26
-f 18 27 28
-f 18 28 29
-f 19 30 31
-f 19 31 32
-f 20 33 34
-f 20 34 35
-f 21 35 36
-f 21 36 22
-f 22 36 46 47 37
-f 22 37 23
-f 23 37 38
-f 23 38 24
-f 24 38 25
-f 25 38 48 49 39
-f 25 39 26
-f 26 39 40
-f 26 40 27
-f 27 40 28
-f 28 41 29
-f 28 40 50 51 41
-f 29 42 30
-f 29 41 42
-f 30 42 31
-f 31 42 52 53 43
-f 31 43 32
-f 32 43 44
-f 32 44 33
-f 33 44 34
-f 34 44 54 55 45
-f 34 45 35
-f 35 45 36
-f 36 45 46
-f 37 47 48
-f 37 48 38
-f 39 49 50
-f 39 50 40
-f 41 52 42
-f 41 51 52
-f 43 53 54
-f 43 54 44
-f 45 55 46
-f 46 56 47
-f 46 55 56
-f 47 56 57
-f 47 57 48
-f 48 57 49
-f 49 58 50
-f 49 57 58
-f 50 58 51
-f 51 58 59
-f 51 59 52
-f 52 59 53
-f 53 59 60
-f 53 60 54
-f 54 60 55
-f 55 60 56
-f 56 60 59 58 57
diff --git a/texmf-dist/scripts/ketcindy/dirhead.txt b/texmf-dist/scripts/ketcindy/dirhead.txt
deleted file mode 100644
index e87a8005..00000000
--- a/texmf-dist/scripts/ketcindy/dirhead.txt
+++ /dev/null
@@ -1,7 +0,0 @@
-Dirhead=Dircdy;
-Dirwork=gethome()+pathsep()+"ketcindy";
-Dircdy=Dirwork;
-setdirectory(Dirhead);
-import("setketcindy.txt");
-import("ketoutset.txt");
-setdirectory(Dirwork);
diff --git a/texmf-dist/scripts/ketcindy/ketcindy.sh b/texmf-dist/scripts/ketcindy/ketcindy.sh
deleted file mode 100755
index 23465f4b..00000000
--- a/texmf-dist/scripts/ketcindy/ketcindy.sh
+++ /dev/null
@@ -1,100 +0,0 @@
-#!/bin/sh
-#
-# KETCindy starter script
-#
-# (C) 2017 Norbert Preining
-# Licensed under the same license terms as ketpic itself, that is GPLv3+
-#
-
-BinaryName=Cinderella2
-TemplateFile=template1basic.cdy
-systype=`uname`
-
-if [ "$1" = "-c" ]
-then
- shift
- cinderella="$1"
-else
- cinderella=`which $BinaryName 2>/dev/null`
-fi
-
-if [ -z "$cinderella" ]
-then
- case $systype in
- Darwin)
- if [ -r /Applications/Cinderella2.app/Contents/MacOS/Cinderella2 ]
- then
- cinderella=/Applications/Cinderella2.app/Contents/MacOS/Cinderella2
- else
- echo "Cannot find $BinaryName!" >&2
- exit 1
- fi
- ;;
- *)
- echo "Cannot find $BinaryName!" >&2
- exit 1
- ;;
- esac
-fi
-
-if [ ! -x "$cinderella" ] ; then
- echo "Program $cinderella is not executable!" >&2
- exit 1
-fi
-# find real path
-realcind=`realpath "$cinderella"`
-cinddir=`dirname "$realcind"`
-case $systype in
- Darwin)
- plugindir="$cinddir/../PlugIns";;
- *)
- plugindir="$cinddir/Plugins";;
-esac
-
-plugin="$plugindir/KetCindyPlugin.jar"
-
-# find Jar
-KetCdyJar=`kpsewhich -format=texmfscripts KetCindyPlugin.jar`
-# search for template.cdy
-TempCdy=`kpsewhich -format=texmfscripts $TemplateFile`
-
-if [ -z "$TempCdy" -o -z "$KetCdyJar" ]
-then
- echo "Cannot find $TemplateFile via kpsewhich, is ketpic installed?" >&2
- exit 1
-fi
-
-
-if [ ! -r "$plugin" ] ; then
- echo "Cinderella is *NOT* set up for KETCindy!"
- echo "You need to copy"
- echo " $KetCdyJar"
- echo "into"
- echo " $plugindir"
- echo ""
- exit 1
-fi
-
-# check whether the .jar md5sum is fine, but don't make this an error
-case $systype in
- Darwin)
- __md5sum=md5;;
- *)
- __md5sum=md5sum;;
-esac
-myjarmd=`cat "$KetCdyJar" | $__md5sum`
-sysjarmd=`cat "$plugin" | $__md5sum`
-if [ ! "$myjarmd" = "$sysjarmd" ]
-then
- echo "The installed version of the plugin in"
- echo " $plugin"
- echo "differs from the version shipped in"
- echo " $KetCdyJar"
- echo "You might need to update the former one with the later one!"
-fi
-
-
-mkdir -p ~/ketcindy
-
-exec "$cinderella" "$TempCdy"
-
diff --git a/texmf-dist/scripts/ketcindy/ketjava/KetCindyPlugin.jar b/texmf-dist/scripts/ketcindy/ketjava/KetCindyPlugin.jar
deleted file mode 100644
index 2ae7ceda..00000000
--- a/texmf-dist/scripts/ketcindy/ketjava/KetCindyPlugin.jar
+++ /dev/null
Binary files differ
diff --git a/texmf-dist/scripts/ketcindy/ketlib/ketcindylib3dhelpE.txt b/texmf-dist/scripts/ketcindy/ketlib/ketcindylib3dhelpE.txt
deleted file mode 100644
index 27b40955..00000000
--- a/texmf-dist/scripts/ketcindy/ketlib/ketcindylib3dhelpE.txt
+++ /dev/null
@@ -1,29 +0,0 @@
-//help:start();
-//help:Changstyle3d*(change the attribute of 3d plot data);
-//help:Findangle*(specify the angles theta and phi);
-//help:Cancoordpara*(specify the coordinate with respect to canonical coordinate);
-//help:Projcoordpara*(specify the coordinate of projected image);
-//help:Parapt*(the coordinate of the point in the projected plane);
-//help:Spaceline*(generate the plot data of 3d segments);
-//help:Spacecurve*(generate the plot data of 3d curve);
-//help:Xyzax3data*(generate the plot data of coordinate axes);
-//help:Datalist3d*(list of plot data of the all objects on the screen. Both 2d and 3d values are returned);
-//help:Skeletonparadata*(generate the plot data of the objects with hidden line elimination);
-//help:Embed*(generate the embedded plot data);
-//help:Rotate3pt*(rotate the point);
-//help:Rotate3data*(rotate 3d plot data);
-//help:Translate3pt*(parallelly transport the point);
-//help:Translate3data*(parallelly transport the plot data);
-//help:Reflect3point*(reflect the point);
-//help:Xyzcoord*(coordinate of a point determined with respect to main screen and sub screen);
-//help:PutonCurve3d*(put a point on the 3d curve);
-//help:Ptsegdata*(generate the 3d plot data of point and segment derived from those on 2d screen);
-//help:Putpoint3d*(put a specific point);
-//help:Perppt*(the foot of the perpendicular on the plane);
-//help:Perpplane*(a fiducial point of a plane with specific point on it and with specific normal vector);
-//help:Drawpoint3d*(draw a specific point);
-//help:Putaxes3d*(take a point with specific coordinates as geometric one);
-//help:IntersectsgpL*(intersection between line and plane);
-//help:Bezier3*(draw 3d Bezier curve);
-//help:Mkbezierptcrv3*(draw 3d Bezier curve by automatically taking controll points);
-//help:end();
diff --git a/texmf-dist/scripts/ketcindy/ketlib/ketcindylib3dhelpJ.txt b/texmf-dist/scripts/ketcindy/ketlib/ketcindylib3dhelpJ.txt
deleted file mode 100644
index bd29d25f..00000000
--- a/texmf-dist/scripts/ketcindy/ketlib/ketcindylib3dhelpJ.txt
+++ /dev/null
@@ -1,45 +0,0 @@
-//help:start();
-//help:Changstyle3d*(3dプロットデータã®å±žæ€§ã‚’変更);
-//help:Findangle*(theta,phiを求ã‚ã‚‹);
-//help:Cancoordpara*(標準座標を求ã‚ã‚‹);
-//help:Projcoordpara*(投影座標を求ã‚ã‚‹);
-//help:Parapt*(点ã®æŠ•å½±é¢ã§ã®åº§æ¨™);
-//help:Spaceline*(空間ã®æŠ˜ç·šãƒ‡ãƒ¼ã‚¿ä½œæˆ);
-//help:Spacecurve*(空間曲線ã®ãƒ‡ãƒ¼ã‚¿ä½œæˆ);
-//help:Xyzax3data*(座標軸ã®ãƒ‡ãƒ¼ã‚¿ä½œæˆ);
-//help:Datalist3d*(ç”»é¢ã«æã‹ã‚Œã¦ã„ã‚‹ã™ã¹ã¦ã®ãƒ—ロットデータ.戻り値ã¯3d,2d);
-//help:Skeletonparadata*(スケルトン処ç†ã®ãƒ‡ãƒ¼ã‚¿ä½œæˆ);
-//help:Embed*(埋ã‚è¾¼ã¿ãƒ‡ãƒ¼ã‚¿ä½œæˆ);
-//help:Rotatept3d*(空間点を回転);
-//help:Rotatedata3d*(プロットデータを回転);
-//help:Translatept3d*(空間点を平行移動);
-//help:Translatedata3d*(空間プロットデータを平行移動);
-//help:Reflectpoint3d*(点をé¡æ˜ );
-//help:Xyzcoord*(主副画é¢ã§æ±ºã¾ã‚‹ç‚¹ã®åº§æ¨™);
-//help:PutonCurve3d*(空間曲線上ã«ç‚¹ã‚’ã¨ã‚‹);
-//help:Ptsegdata*(ç”»é¢ã«ã¨ã£ãŸç‚¹ã¨ç·šåˆ†ã‹ã‚‰ç©ºé–“ã®ç‚¹ã¨ç·šåˆ†ã‚’作æˆ);
-//help:Putpoint3d*(空間点をã¨ã‚‹);
-//help:Perppt*(å¹³é¢ã«ä¸‹ã‚ã—ãŸåž‚ç·šã®è¶³);
-//help:Perpplane*(点を通り垂直ãªå¹³é¢ä¸Šã®åŸºæº–点);
-//help:Drawpoint3d*(空間点をæã);
-//help:Putaxes3d*(座標点を幾何点ã¨ã—ã¦ã¨ã‚‹);
-//help:IntersectsgpL*(空間ã®ç›´ç·šã¨å¹³é¢ã®äº¤ç‚¹);
-//help:Bezier3d*(空間ベジェ曲線);
-//help:Mkbezierptcrv3d*(制御点を自動的ã«ã¨ã‚‹ç©ºé–“ベジェ曲線);
-//help:Readobj*(objファイルを読ã¿è¾¼ã‚€ï¼Žã‚ªãƒ—ションã¯ä¸Šä¸‹å転(符å·ï¼‰ã¨å€çŽ‡);
-//help:VertexandEdge*(頂点ã¨é¢ã‹ã‚‰è¾ºã‚’求ã‚,辺をæã);
-//help:Phparadata*(多é¢ä½“を陰線処ç†ã—ã¦æã
-//追加オプション : "Hidden=線種");
-//help:Nohiddenbyfaces*(多é¢ä½“ã¨ç©ºé–“曲線を陰線処ç†);
-//help:Fixpoint3d*(空間ã®å›ºå®šç‚¹ã‚’ã¨ã‚‹);
-//help:Sf3data*(陰線処ç†ãªã—ã®ç©ºé–“曲é¢ã‚’æã);
-//help:Concatobj*(ã„ãã¤ã‹ã®objデータをçµåˆ);
-//help:Crvsfparadata*(曲線ã®æ›²é¢ã«ã‚ˆã‚‹é™°ç·šå‡¦ç†);
-//help:Intersectcrvsf*(曲線ã¨æ›²é¢ã®äº¤ç‚¹ã‚’求ã‚ã‚‹);
-//help:Intersectcrvsf*(曲線ã¨æ›²é¢ã®äº¤ç‚¹ã‚’求ã‚ã‚‹);
-//help:Sfbdparaparadata*(空間曲é¢ã®é™°ç·šå‡¦ç†);
-//help:Wireparadata*(曲é¢ã®ãƒ¯ã‚¤ãƒ¤ãƒ•ãƒ¬ãƒ¼ãƒ ã‚’陰線処ç†);
-//help:Dist3d*(空間ã®ï¼’点ã®è·é›¢);
-
-
-//help:end();
diff --git a/texmf-dist/scripts/ketcindy/ketlib/ketcindylib3dlogr.txt b/texmf-dist/scripts/ketcindy/ketlib/ketcindylib3dlogr.txt
deleted file mode 100644
index 55b2fc71..00000000
--- a/texmf-dist/scripts/ketcindy/ketlib/ketcindylib3dlogr.txt
+++ /dev/null
@@ -1,34 +0,0 @@
-// 2018.03.27
-// Start3d changed (for C)
-// 2018.02.27
-// Sfbdpara,... changed ("Res=" made from fname)
-// 2018.02.26
-// Sfcutparadata (renamed from Sfcutdata) changed
-// 2018.02.24
-// Sfcutdata added
-// 2018.02.23
-// Crvonsfparadata added
-// Wireparadata added
-// Skeletonparadata rechanged to old version
-// 2018.02.22
-// Intersectcrvsf added (changed to R)
-// Sdbdpradata,Crvsfparadata,Intersectcrvsf changed (title printing)
-// 2018.02.20
-// Addpoints added
-// PthiddenQ,Meetpoints debugged
-// 2018.02.18
-// Sfbdparadata debuggded (OTHERPARTITION )
-// 2018.02.11
-// Sfbdparadata added
-// 2018.01.04
-// Skeletonparadata(Skeletondatacindy) majorly changed
-// 2017.10.23
-// Rotatedata3d, Translatedata3d debugged ([])
-// 2017.10.08
-// Bezier3,Putbezier3data,Mkbezierptcrv3d greatly changed
-// 2017.10.07
-// Mkpointlist debugged
-// Start3d,Ptseg3d, Setangle, Mkpointlist, Mkseq3d, Putpoint3d Skeleton..,Putbezier..
-// changed ( "=" removed from VLIST)
-// 2017.09.18
-// SCIWR,SCIRE removed
diff --git a/texmf-dist/scripts/ketcindy/ketlib/ketcindylib3dr.cs b/texmf-dist/scripts/ketcindy/ketlib/ketcindylib3dr.cs
deleted file mode 100644
index ce7a65f1..00000000
--- a/texmf-dist/scripts/ketcindy/ketlib/ketcindylib3dr.cs
+++ /dev/null
@@ -1,4503 +0,0 @@
-// Copyright (C) 2014 Setsuo Takato, KETCindy Japan project team
-//
-//This program is free software: you can redistribute it and/or modify
-// it under the terms of the GNU General Public License as published by
-// the Free Software Foundation; either version 3 of the License, or
-// (at your option) any later version.
-//
-// This program is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-// GNU General Public License for more details.
-//
-// You should have received a copy of the GNU General Public License
-// along with this program. If not, see <http://www.gnu.org/licenses/>
-//
-
-println("ketcindylib3d(20180327) loaded");
-
-//help:start();
-
-Ketinit3d():=Ketinit3d(1);
-Ketinit3d(sf):=(
- regional(tmp);
- tmp=round(4*SW.y)/4;
-// Ketinit3d(sf,[round(SW.x)+1,tmp-0.5,tmp-1]);
- Ketinit3d(sf,[-5,tmp-0.5,tmp-1]);
-);
-Ketinit3d(subflg,position):=(
-//help:Ketinit3d(subflg=1)
- regional(ctr,tmp,tmp1,tmp2,tmp3,tmp4,xPos,yTh,yPh);
-// println("KETCindy3d V.2.3.5(2016.02.03)");
- BezierNumber3=1; //15.02.28
- if(!islist(BZLIST3),
- BZLIST3=[]; //15.02.28
- ,
- tmp=apply(allpoints(),text(#));
- tmp1=select(tmp,substring(#,length(#)-1,length(#))=="p");
- tmp2=[];
- forall(tmp1,ctr,
- tmp=substring(ctr,0,length(ctr)-1);
- tmp=select(BZLIST3,#_1==tmp);
- if(length(tmp)>0,
- tmp2=append(tmp2,tmp_1);
- );
- );
- BZLIST3=tmp2;
- );
- SUBSCR=subflg;
- Setwindow("Msg=no");
- if(length(position)>2,
- xPos=position_1;
- yTh=position_2;
- yPh=position_3;
- ,
- xPos=0;
- yTh=position_1;
- yPh=position_2;
- );
-// THETA=60*pi/180;
-// PHI=30*pi/180;
- FocusPoint=[0,0,0];
- EyePoint=[5,5,5];
- Listplot("th",[[xPos,yTh],[xPos+9,yTh]],["notex","linecolor->[0,1,0]","Msg=no"]);
- Listplot("ph",[[xPos,yPh],[xPos+9,yPh]],["notex","linecolor->[0,1,0]","Msg=no"]);
- //16.02.10
- PutonCurve("TH",sgth,[xPos,xPos+9,"Msg=no"]);
- PutonCurve("FI",sgph,[xPos,xPos+9,"Msg=no"]);
- THETA=(TH.x-xPos)*20*pi/180;
- PHI=(FI.x-xPos)*40*pi/180;
-// Defvar("THETA",THETA); // 16.06.20
-// Defvar("PHI",PHI); // 16.06.20
- drawtext([xPos-0.8,yTh-0.1],Sprintf((TH.x-xPos)*20,2),align->"right"); //17.05.02
- drawtext([xPos-0.8,yPh-0.1],Sprintf((FI.x-xPos)*40,2),align->"right"); //17.05.02
- tmp="Setangle("+text((TH.x-xPos)*20)+","+text((FI.x-xPos)*40)+")";
- GLIST=append(GLIST,tmp);
- Addax(0);
- TSIZE=10;
- TSIZEZ=10;
- ErrFlg=0;
-);
-
-Start3d():=Start3d([]);
-Start3d(ptexception):=(
-//help:Start3d();
-//help:Start3d(execptionptlist);
- regional(xmn,xMx,ymn,yMx,pt,pt3,pt2,
- xPos,yTh,yPh,Eps,tmp,tmp1,tmp2,tmp3,tmp4);
- ConstantListC=[[50,50],[5000,1500,500,200],[0.00001,0.01,0.1]];
- FuncListC=[];
- CommandListC=[];
- GCLIST=[];
- GLIST=[];
- FUNLIST=[];
- COM0thlist=[];
- COM1stlist=[];
- COM2ndlist=[];
- SEG3dlist=[];
- OutFileList=[];
- FigPdfList=[]; // 16.04.08
- ErrFlag=0;
- OBJCMD=[]; // 16.11.29from
- OCNAME=Fhead;
- OCOPTION=["m","v"];// 16.11.29until
- ArrowlineNumber=1; // 16.01.31
- ArrowheadNumber=1;
- BezierNumber=1; //16.01.31
- BezierNumber3=1; //16.08.19
- Fnametex=Fhead+".tex"; // 15.04.06
- FnameR=Fhead+".r";
- FnameRbody=Fhead+"body.r";
- Fnameout=Fhead+".txt";
-// Ketinit3d(SUBSCR); // 16.06.20
- Setwindow("Msg=no"); // 16.06.20from
- tmp=round(4*SW.y)/4;
- xPos=-5;yTh=tmp-0.5;yPh=tmp-1;
- Listplot("th",[[xPos,yTh],[xPos+9,yTh]],
- ["notex","linecolor->[0,1,0]","Msg=no"]);
- Listplot("ph",[[xPos,yPh],[xPos+9,yPh]],
- ["notex","linecolor->[0,1,0]","Msg=no"]);
- //16.02.10
- PutonCurve("TH",sgth,[xPos,xPos+9,"Msg=no"]);
- PutonCurve("FI",sgph,[xPos,xPos+9,"Msg=no"]);
- drawtext([xPos-0.8,yTh-0.1],Sprintf((TH.x-xPos)*20,2),align->"right"); //17.05.02
- drawtext([xPos-0.8,yPh-0.1],Sprintf((FI.x-xPos)*40,2),align->"right"); //17.05.02
- tmp="Setangle("
- +format((TH.x-xPos)*20,5)+","
- +format((FI.x-xPos)*40,5)+")";
- GLIST=append(GLIST,tmp);
- THETA=(TH.x-xPos)*20*pi/180;
- PHI=(FI.x-xPos)*40*pi/180; // 16.06.20until
- if(isselected(TH) % isselected(FI), // 17.05.18from
- if(length(Ch)>0,
- ChNum=Ch_(length(Ch));
- if(ChNum==0, ChNum=1);
- ,
- ChNum=1;
- );
- Ch=[0];
- );// 17.05.18until
- if(length(VLIST)==0, // 16.06.20
- tmp=remove(allpoints(),[NE,SW,TH,FI,O,X,Y,Z]);//17.06.02
- tmp4=remove(tmp,ptexception);
- forall(tmp4,pt,
- tmp1=text(pt);
- tmp=substring(tmp1,length(tmp1)-1,length(tmp1));
- if(tmp!="z",
- tmp=parse(tmp1+"z.y");
- pt3=Xyzcoord(pt.x,pt.y,tmp);
- Defvar(tmp1+"3d",pt3);
- pt2=Parapt(pt3); // 16.05.28from
- Defvar(tmp1+"2d",pt2); // 16.05.28until
- );
- );
- ,
- if(isselected(NE) % isselected(SW),
- tmp=remove(allpoints(),[NE,SW,TH,FI]);
- tmp4=remove(tmp,ptexception);
- forall(tmp4,pt,
- tmp1=text(pt);
- tmp=substring(tmp1,length(tmp1)-1,length(tmp1));
- if(tmp!="z",
- tmp=select(VLIST,#_1==tmp1+"3d"); //17.10.07
- pt3=tmp_1_2;
- tmp=tmp1+".xy=Parapt("+pt3+")_[1,2];";
- parse(tmp);
-// if(SUBSCR==1,
-// tmp=tmp1+"z"+".x=NE.x-SW.x+"+tmp1+".x";
-// parse(tmp);
-// );
- );
- );
- ,
- tmp=remove(allpoints(),[NE,SW,TH,FI]);
- tmp4=remove(tmp,ptexception);
- forall(tmp4,pt,
- tmp1=text(pt);
- tmp=substring(tmp1,length(tmp1)-1,length(tmp1));
- if(tmp!="z",
- tmp2=parse(tmp1+"z");
- if(isselected(pt) % isselected(tmp2),
- Defvar(tmp1+"2d",pt.xy);
- tmp=parse(tmp1+"z.y");
- tmp=Xyzcoord(pt.x,pt.y,tmp);
- Defvar(tmp1+"3d",tmp);
- );
- );
- );
- );
- );
- if(SUBSCR==1,
- xmn=SW.x+NE.x-SW.x;
- xMx=NE.x+NE.x-SW.x;
- ymn=SW.y;
- yMx=NE.y;
- drawpoly([[xMx,yMx],[xmn,yMx],
- [xmn,ymn],[xMx,ymn]],color->[1,1,1]);
- connect([[NE.x-SW.x,yMx],[NE.x-SW.x,ymn]],
- color->[0.5,0.5,0.5]);
- );
- // for Presentation //17.07.01from
- letterc=[0.98,0.13,0,0.43]; boxc=[0,0.32,0.52,0];
- shadowc=[0,0,0,0.5]; mboxc="yellow"; //17.03.02 regional debugged
- SlideColorList=[letterc,boxc,boxc,boxc,shadowc,shadowc,6,1.3,
- letterc,mboxc,mboxc,mboxc,62,2,letterc];
- ThinDense=0.1; //17.07.01until
- Ptseg3data(ptexception); //16.08.23
-);
-
-Setangle(theta,phi):=( //16.12.24
-//help:Setangle(60,30);
- regional(xmn,xMx,ymn,yMx,pt,pt3,pt2,
- xPos,yTh,yPh,Eps,tmp,tmp1,tmp2,tmp3,tmp4);
- tmp=round(4*SW.y)/4;
- xPos=-5;yTh=tmp-0.5;yPh=tmp-1;
- if(theta=="",theta=THETA*180/pi); // 17.01.19
- if(phi=="",phi=PHI*180/pi);
- THETA=theta*pi/180;
- TH.x=theta/20+xPos;
- PHI=phi*pi/180;
- FI.x=phi/40+xPos;
-// drawtext([xPos-0.8,yTh-0.1],text(theta)); //17.05.05
-// drawtext([xPos-0.8,yPh-0.1],text(phi));
- tmp="Setangle("
- +format(theta,5)+","+format(phi,5)+")";
- GLIST=append(GLIST,tmp);
- if(length(VLIST)==0, // 16.06.20
- tmp=remove(allpoints(),[NE,SW,TH,FI]);
- tmp4=remove(tmp,ptexception);
- forall(tmp4,pt,
- tmp1=text(pt);
- tmp=substring(tmp1,length(tmp1)-1,length(tmp1));
- if(tmp!="z",
- tmp=parse(tmp1+"z.y");
- pt3=Xyzcoord(pt.x,pt.y,tmp);
- Defvar(tmp1+"3d",pt3);
- pt2=Parapt(pt3); // 16.05.28from
- Defvar(tmp1+"2d",pt2); // 16.05.28until
- );
- );
- ,
- if(isselected(NE) % isselected(SW),
- tmp=remove(allpoints(),[NE,SW,TH,FI]);
- tmp4=remove(tmp,ptexception);
- forall(tmp4,pt,
- tmp1=text(pt);
- tmp=substring(tmp1,length(tmp1)-1,length(tmp1));
- if(tmp!="z",
- tmp=select(VLIST,#_1==tmp1+"3d");
- pt3=tmp_1_2;
- tmp=tmp1+".xy=Parapt("+pt3+")_[1,2];";
- parse(tmp);
- );
- );
- ,
- tmp=remove(allpoints(),[NE,SW,TH,FI]);
- tmp4=remove(tmp,ptexception);
- forall(tmp4,pt,
- tmp1=text(pt);
- tmp=substring(tmp1,length(tmp1)-1,length(tmp1));
- if(tmp!="z",
- tmp2=parse(tmp1+"z");
- if(isselected(pt) % isselected(tmp2),
- Defvar(tmp1+"2d",pt.xy);
- tmp=parse(tmp1+"z.y");
- tmp=Xyzcoord(pt.x,pt.y,tmp);
- Defvar(tmp1+"3d",tmp);
- );
- );
- );
- );
- );
- forall(Datalist3d(),#,
- tmp1=replace(#,"3d","2d");
- tmp2=Projpara(#,["nodata"]);
- tmp=tmp1+"="+textformat(tmp2,5);
- parse(tmp);
- );
- Ptseg3data(ptexception);
-);
-
-Changestyle3d(nameL,style):=(
-//help:Changestyle3d(["geoseg3d","ax3d"],["notex"]);
- regional(nmL,name,tmp,tmp1,tmp2);
- if(islist(nameL),nmL=nameL,nmL=[nameL]);
- tmp1=[];
- forall(nmL,name,
- tmp=parse(name);
- if(isstring(tmp_1),
- tmp1=concat(tmp1,tmp);
- ,
- tmp1=append(tmp1,name);
- );
- tmp=apply(tmp1,replace(#,"3d","2d"));
- Changestyle(tmp,style);
- tmp=apply(tmp,"sub"+#); // 15.05.24
- Changestyle(tmp,style);
- );
-);
-
-Dist3d(pt1):=Dist3d(pt1,[0,0,0]);
-Dist3d(pt1,pt2):=(
-//help:Dist3d(A3d,B3d);
-//help:Dist3d(A,B);
-//help:Dist3d("A","B");
- regional(p1,p2);
- if(islist(pt1),
- p1=pt1;
- ,
- if(ispoint(pt1),p1=text(pt1),p1=pt1);
- p1=parse(p1+"3d");
- );
- if(islist(pt2),
- p2=pt2;
- ,
- if(ispoint(pt2),p2=text(pt2),p2=pt2);
- p2=parse(p2+"3d");
- );
- sqrt((p2-p1)*(p2-p1));
-);
-
-Findangle(vec):=(
-//help:Findangle([2,1,4]);
-//help:Findangle([0,0,1,0]);
- regional(vec3,vec2,Eps,th,ph,tmp);
- Eps=10^(-4);
- vec3=vec_(1..3);
- vec2=vec_(1..2);
- th=arccos(vec_3/|vec3|);
- if(|vec2|>Eps,
- ph=arccos(vec_1/|vec2|);
- if(vec_2<0,
- ph=2*pi-ph; // 15.03.28
- );
- ,
- if(length(vec)>3,ph=vec_4*pi/180,ph=PHI);
- );
- [th,ph];
-);
-
-Cancoordpara(pc):=(
-//help:Cancoordpara([1,2,0]);
- regional(Xz,Yz,Zz,tmp1,tmp2,tmp3);
- Xz=pc_1; Yz=pc_2; Zz=pc_3;
- tmp1=-Xz*sin(PHI)-Yz*cos(PHI)*cos(THETA)+Zz*cos(PHI)*sin(THETA);
- tmp2=Xz*cos(PHI)-Yz*sin(PHI)*cos(THETA)+Zz*sin(PHI)*sin(THETA);
- tmp3=Yz*sin(THETA)+Zz*cos(THETA);
- [tmp1,tmp2,tmp3];
-);
-
-Zparapt(cc):=(
- regional(x,y,z);
- x=cc_1; y=cc_2; z=cc_3;
- x*cos(PHI)*sin(THETA)+y*sin(PHI)*sin(THETA)+z*cos(THETA);
-);
-
-Projcoordpara(cc):=(
-//help:Projcoordpara([3,1,2]);
- regional(tmp);
- tmp=Parapt(cc);
- [tmp_1,tmp_2,Zparapt(cc)];
-);
-
-Parapt(pt):=(
-//help:Parapt([2,1,5]);
- regional(Xz,Yz);
- Xz=-pt_1*sin(PHI)+pt_2*cos(PHI);
- Yz=-pt_1*cos(PHI)*cos(THETA)-pt_2*sin(PHI)*cos(THETA)+pt_3*sin(THETA);
- [Xz,Yz];
-);
-
-ProjCurve(crv):=(
-//help:Projcurve("sl3d1");
- regional(CurveL,Curve,Eps,AnsL,Out,sp,cp,st,,ct,ii,pt,
- Xz,Yz,tmp,tmp1,tmp2);
- Eps=10^(-6);
- sp=sin(PHI); cp=cos(PHI);
- st=sin(THETA); ct=cos(THETA);
- if(isstring(crv),CurveL=parse(crv),CurveL=crv);
- if(MeasureDepth(CurveL)==1,CurveL=[CurveL]);
- Out=[];
- forall(CurveL,Curve,
- AnsL=[];
- forall(1..length(Curve),ii,
- pt=Curve_ii;
- if(pt_1!="inf",
- Xz=-pt_1*sp+pt_2*cp;
- Yz=-pt_1*cp*ct-pt_2*sp*ct+pt_3*st;
- tmp=[Xz,Yz];
- if(ii==1,
- AnsL=[tmp];
- ,
- tmp1=AnsL_(length(AnsL));
- if(tmp1_1=="inf" % |tmp-tmp1|>Eps,
- AnsL=append(AnsL,tmp);
- );
- );
- ,
- AnsL=append(AnsL,["inf"]);
- );
- );
- tmp1=[];
- tmp2=select(1..length(AnsL),AnsL_#==["inf"]);
- tmp=1;
- forall(tmp2,
- if(#>tmp,
- tmp1=concat(tmp1,[AnsL_(tmp..(#-1))])
- );
- tmp=#+1;
- );
- if(tmp<length(AnsL),
- tmp1=concat(tmp1,[AnsL_(tmp..length(AnsL))]);
- );
- AnsL=tmp1;
- if(length(AnsL)==1,AnsL=AnsL_1);
- Out=append(Out,AnsL);
- );
- if(length(Out)==1,
- Out=Out_1;
- );
- Out;
-);
-
-Projpara(ptdata):=Projpara(ptdata,[]);
-Projpara(ptdata,options):=(
- regional(name2,name3,Ltype,Noflg,opcindy,dtL,ptL,tmp,Out);
- tmp=Divoptions(options);
- Ltype=tmp_1;
- Noflg=tmp_2;
- opcindy=tmp_(length(tmp));
- if(islist(ptdata),dtL=ptdata,dtL=[ptdata]);
- Out=[];
- forall(dtL,name3,
-// name3=#;
- if(indexof(name3,"3d")>0, //17.05.24
- name2=replace(name3,"3d","2d");
- ,
- name2="para"+name3;
- );
- ptL=Projcurve(name3);
- ptL=select(ptL,length(#)>1);//17.06.02
- if(length(ptL)==1,
- ptL=ptL_1;
- );
- Out=append(Out,ptL);
- if(Noflg<3,
- println("generate projparadata "+name2);
- tmp=name2+"="+textformat(ptL,5);
- parse(tmp);
- tmp=name2+"=Projpara("+name3+")";
- GLIST=append(GLIST,tmp);
- );
- if(Noflg<2,
- if(isstring(Ltype),
- Ltype=GetLinestyle(text(Noflg)+Ltype,name2);
- ,
- if(Noflg==1,Ltype=0);
- );
- GCLIST=append(GCLIST,[name2,Ltype,opcindy]);
- );
- );
- if(length(Out)==1,Out=Out_1);
-// Out=Flattenlist(Out);
- if(length(Out)==1,Out=Out_1); // 15.02.24
- tmp=[];
- forall(Out,
- if(length(#)>0,tmp=append(tmp,#));
- );
- Out=tmp;
- Out;
-);
-
-InvparaptPp(pt,pd):=(
- regional(Eps,fk,nfk,ph,fh,ah,bh,ak,bk,v1,v2,
- nn,s0,t2,out,tmp,tmp1,tmp2,flg);
- Eps=10^(-4);
- if(isstring(pd),
- fk=pd;
- ,
- fk=textformat(pd,5);
- );
- nfk=Numptcrv(parse(fk));
- flg=0;
- tmp=pt;
- if(length(tmp)==1,
- ph=tmp;
- fh=pd;
- ,
- fh=Projpara(fk,["nodata"]);
- if(nfk>2,
- tmp1=Nearestpt(tmp,fh);
- ph=tmp1_2;
- ,
- ah=Ptcrv(1,fh); bh=Ptcrv(2,fh);
- v1=tmp-ah; v2=bh-ah;
- tmp1=Crossprod(v1,v2);
- if(abs(tmp1)>Eps,
- println(" Not on the line");
- out=[];
- flg=1;
- ,
- ph=Dotprod(v1,v2)/|v2|^2+1;
- );
- );
- );
- if(flg==0,
- if(nfk>2,
- nn=floor(ph);
- s0=ph-nn;
- if(ph>Numptcrv(fh)-Eps,
- out=[Ptend(fk),Numptcrv(fh)];
- flg=1;
- );
- ,
- nn=1;
- s0=ph-1;
- );
- );
- if(flg==0,
- ak=Ptcrv(nn,fk); bk=Ptcrv(nn+1,fk);
- ah=Ptcrv(nn,fh); bh=Ptcrv(nn+1,fh);
- ph=(1-s0)*ah+a0*bh;
- t2=s0;
- pk=(1-t2)*ak+t2*bk;
- out=[pk,nn+t2];
- );
- out;
-);
-
-Invparapt(pt,pd):=(
- regional(tmp);
- tmp=InvparaptPp(pt,pd);
- tmp_1;
-);
-
-Subgraph(name,opcindy):=(
- regional(tht,tmp,tmp1);
- tht=THETA; THETA=pi/2;
- tmp=Projpara(name3,["nodata"]);
- if(length(tmp)>0, //15.08.17
- tmp=Translatedata("",[tmp],[NE.x-SW.x,0],["nodata"]);
- tmp1=replace("sub"+name,"3d","2d");
- tmp=tmp1+"="+Textformat(tmp,5);
- parse(tmp);
- GCLIST=append(GCLIST,[tmp1,0,opcindy]);
- );
- THETA=tht; // 15.11.03
-);
-
-Spaceline(ptlist):=Spaceline(ptlist,[]); // 16.02.22 from
-Spaceline(Arg1,Arg2):=(
- regional(name,tmp,tmp1,tmp2);
- if(isstring(Arg1),
- Spaceline(Arg1,Arg2,[]);
- ,
- tmp=text(Arg1);
- tmp=substring(tmp,1,length(tmp)-1);
- name="-"+replace(tmp,",","");
- Spaceline(name,Arg1,Arg2);
- );
-); // 16.02.22 until
-Spaceline(nm,ptlistorg,optionorg):=(
-//help:Spaceline("1",[[2,5,1],[4,2,3]]);
-//help:Spaceline([A,B]);
- regional(name2,name3,options,Out,tmp,tmp1,tmp2,
- opstr,opcindy,Ltype,Noflg,eqL,ptlist, Msg);
- ptlist=apply(ptlistorg,if(ispoint(#),parse(text(#)+"3d"),#)); // 16.02.10
- if(substring(nm,0,2)=="bz",
- name2=replace(nm,"bz","bz2d");
- name3=replace(nm,"bz","bz3d");
- ,
- if(substring(nm,0,1)=="-",
- tmp=substring(nm,1,length(nm));
- if(indexof(tmp,"3d")>0,name3=tmp,name3=tmp+"3d");
- name2=replace(name3,"3d","2d");
- ,
- name2="sl2d"+nm;
- name3="sl3d"+nm;
- );
- );
- options=select(optionorg,length(#)>0); // 160415
- tmp=Divoptions(options);
- Ltype=tmp_1;
- Noflg=tmp_2;
- eqL=tmp_5;
- opcindy=tmp_(length(tmp));
- Msg=1;
- forall(eqL,
- tmp=substring(#,0,1);
- if(Toupper(tmp)=="M",
- tmp=indexof(#,"=");
- tmp1=substring(#,tmp,tmp+1);
- if(Toupper(tmp1)=="N",
- Msg=0;
- );
- );
- );
- if(Noflg<3,
- if(Msg==1,
- println("generate Spaceline "+name3);
- );
- tmp=name3+"="+ptlist;
- parse(tmp);
- tmp1=Projpara(name3,["nodata"]);
- tmp=name2+"="+textformat(tmp1,5);
- parse(tmp);
- tmp="[";
- forall(ptlist, //17.07.13from
- if(isstring(#),
- tmp=tmp+#+",";
- ,
- tmp=tmp+textformat(#,5)+",";
- );
- );
- tmp=substring(tmp,0,length(tmp)-1)+"]";
- tmp=name3+"=Spaceline("+tmp+")"; //17.07.13until
-// tmp=name3+"=Spaceline("+textformat(ptlist,5)+")"; //17.05.24
- GLIST=append(GLIST,tmp);
- tmp=name2+"=Projpara("+name3+")";
- GLIST=append(GLIST,tmp);
- );
- if(Noflg<2,
- if(isstring(Ltype),
- Ltype=GetLinestyle(text(Noflg)+Ltype,name2);
- ,
- if(Noflg==1,Ltype=0);
- );
- GCLIST=append(GCLIST,[name2,Ltype,opcindy]);
- if(SUBSCR==1, // 15.02.11
- Subgraph(name3,opcindy);
- );
- );
- ptlist;
-);
-
-Spacecurve(nm,funstr,variable):=Spacecurve(nm,funstr,variable,[]);
-Spacecurve(nm,funstr,variable,optionorg):=(
-//help:Spacecurve("1","[cos(t),sin(t),0.5*t]","t=[0,4*pi]",["Num=200"]);
- regional(name2,name3,options,Out,tmp,tmp1,tmp2,vname,tmpfn,str,Rng,Num,Msg,
- Ec,Exfun,Dc,opstr,opcindy,Fntmp,Vatmp,Ltype,Noflg,eqL,t1,t2,dt,tt,pa,ke);
- if(substring(nm,0,2)=="bz",
- name2=replace(nm,"bz","bz2d");
- name3=replace(nm,"bz","bz3d");
- ,
- name2="sc2d"+nm;
- name3="sc3d"+nm;
- );
- Eps=10^(-4);
- Num=50;
- Ec=[];
- Exfun="";
- Dc=1000;
- options=select(optionorg,length(#)>0); // 160415
- tmp=Divoptions(options);
- Ltype=tmp_1;
- Noflg=tmp_2;
- eqL=tmp_5;
- opstr=tmp_(length(tmp)-1);
- opcindy=tmp_(length(tmp));
- Msg=1;
- forall(eqL,
- tmp=substring(#,0,1);
- if(Toupper(tmp)=="M",
- tmp=indexof(#,"=");
- tmp1=substring(#,tmp,tmp+2);
- if(Toupper(tmp1)=="NO",
- Msg=0;
- );
- );
- tmp=indexof(#,"N=");
- if(tmp>0,
- tmp1=substring(#,tmp+1,length(#));
- Num=parse(tmp1);
- opstr=opstr+",'"+#+"'";
- );
- tmp=indexof(#,"Num=");
- if(tmp>0,
- tmp1=substring(#,tmp+3,length(#));
- Num=parse(tmp1);
- opstr=opstr+",'"+#+"'";
- );
- tmp=indexof(#,"E=");
- if(tmp>0,
- tmp1=substring(#,tmp+1,length(#));
- if(substring(tmp1,0,1)=="[",
- Ec=parse(tmp1);
- ,
- Exfun=tmp1;
- );
- opstr=opstr+",'"+#+"'";
- );
- tmp=indexof(#,"Exc=");
- if(tmp>0,
- tmp1=substring(#,tmp+3,length(#));
- if(substring(tmp1,0,1)=="[",
- Ec=parse(tmp1);
- ,
- Exfun=tmp1;
- );
- );
- );
- tmp=indexof(variable,"=");
- vname=substring(variable,0,tmp-1);
- str=substring(variable,tmp,length(variable));
- Rng=parse(str);
- t1=Rng_1; t2=Rng_2;
- dt=(t2-t1)/Num; // differ from Scilab
- tmp="tmpfn("+vname+"):="+funstr+";";
- parse(tmp);
- Out=[];
- Ec=append(sort(Ec),10000);
- ke=1;
- forall(0..Num,
- pt=[];
- tt=Rng_1+#*dt;
- if(tt-Ec_ke<-Eps,
- pa=tmpfn(tt);
- );
- if(abs(tt-Ec_ke)<=Eps,
- if(length(Out)>0,
- if(Out_(length(Out))_1!="inf",
- pa=["inf"];
- );
- );
- );
- if(tt-Ec_ke>Eps,
- pa=tmpfn(tt);
- ke=ke+1;
- );
- if(length(pa)>0,
- if(pa_1=="inf",
- Out=append(Out,pa);
- ,
- if(length(Out)==0,
- Out=[pa];
- ,
- tmp=Out_(length(Out));
- if(tmp_1=="inf",
- Out=append(Out,pa);
- ,
- if(|tmp-pa|<Dc,
- Out=append(Out,pa);
- ,
- Out=concat(Out,[["inf"],pa]);
- );
- );
- );
- );
- );
- );
- tmp1=[];
- tmp2=select(1..length(Out),Out_#==["inf"]);
- tmp=1;
- forall(tmp2,
- if(#>tmp,
- tmp1=concat(tmp1,[Out_(tmp..(#-1))])
- );
- tmp=#+1;
- );
- if(tmp<length(Out),
- tmp1=concat(tmp1,[Out_(tmp..length(Out))]);
- );
- if(length(Out)==1,
- Out=Out_1;
- );
- if(Noflg<3,
- if(Msg==1,
- println("generate Spacecurve "+name3);
- );
- tmp=name3+"="+textformat(Out,5);
- parse(tmp);
- tmp1=Projpara(name3,["nodata"]);
- tmp=name2+"="+textformat(tmp1,5);
- parse(tmp);
- tmp=name3+"=Spacecurve(Assign('"+funstr+"'),'"+variable+"'"+opstr+")";
- GLIST=append(GLIST,tmp);
- tmp=name2+"=Projpara("+name3+")";
- GLIST=append(GLIST,tmp);
- );
- if(Noflg<2,
- if(isstring(Ltype),
- Ltype=GetLinestyle(text(Noflg)+Ltype,name2);
- ,
- if(Noflg==1,Ltype=0);
- );
- GCLIST=append(GCLIST,[name2,Ltype,opcindy]);
- if(SUBSCR==1, // 15.02.11
- tmp=parse(name2); // 15.08.17
- if(length(tmp)>0,
- Subgraph(name3,opcindy);
- ); // 15.08.17
- );
- );
- Out;
-);
-
-Partcrv3d(nm,pA,pB,PkLstr):=Partcrv3d(nm,pA,pB,PkLstr,[]);
-Partcrv3d(nm,pA,pB,PkLstr,options):=(
-//help:Partcrv3d("1",A,B,"sl3d1");
-//help:Partcrv3d("1",1.3,2.5,"sl3d1");
- regional(p1,p2,q1,q2,dt1,dts,dt3,tmp,tmp1,tmp2);
- if(isreal(pA),
- p1=pA; q1=pA;
- ,
- if(islist(pA),
- tmp=pA;
- ,
- if(ispoint(pA),tmp=text(pA),tmp=pA);
- tmp=parse(tmp+"3d");
- );
- p1=parapt(tmp);
- q1=[p1_1,tmp_3]+[NE.x-SW.x,0];
- );
- if(isreal(pB),
- p2=pB; q2=pB;
- ,
- if(islist(pB),
- tmp=pB;
- ,
- if(ispoint(pB),tmp=text(pB),tmp=pB);
- tmp=parse(tmp+"3d");
- );
- p2=parapt(tmp);
- q2=[p2_1,tmp_3]+[NE.x-SW.x,0];
- );
- tmp=replace(PkLstr,"3d","2d");
- dt1=partcrv("",p1,p2,tmp,["nodata"]);
- dts=partcrv("",q1,q2,"sub"+tmp,["nodata"]);
- dt=apply(1..length(dt1),
- Xyzcoord(dt1_#_1,dt1_#_2,dts_#_2));
- Spaceline("-part3d"+nm,dt,options);
-);
-
-Joincrvs3d(nm,plotstrL):=Joincrvs3d(nm,plotstrL,[]);//16.10.06
-Joincrvs3d(nm,plotstrL,options):=(
-//help:Joincrvs3d("1",["bz3da1","bz3da1"]);
- regional(PtL,Eps,QdL,Flg,Ni,Qd,pP,pS,pQ,pR,rMN,
- opcindy,tmp,tmp1,tmp2,str,name2,name3,Ltype,Noflg);
- name2="join2d"+nm;
- name3="join3d"+nm;
- QdL=[];
- forall(plotstrL,str,
- if(isstring(str),
- tmp=parse(str);
- ,
- tmp=str;
- );
- QdL=append(QdL,tmp);
- );
- Eps=10^(-4);
- tmp=Divoptions(options);
- Ltype=tmp_1;
- Noflg=tmp_2;
- opcindy=tmp_(length(tmp));
- tmp1=tmp_6;
- if(length(tmp1)>0,Eps=tmp1_1);
- Flg=0;
- if(length(QdL)==0,
- PtL=[];
- Flg=1;
- );
- if(Flg==0,
- PtL=QdL_1;
- forall(2..length(QdL),Ni,
- Qd=QdL_Ni;
- if(length(Qd)>1,
- pP=PtL_1;
- pS=PtL_(length(PtL));
- pQ=Qd_1;
- pR=Qd_(length(Qd));
- rMN=min([norm(pP-pQ),norm(pP-pR),
- norm(pS-pQ),norm(pS-pR)]);
- if(rMN==norm(pP-pR),
- Qd=reverse(Qd);
- ,
- if(rMN==norm(pS-pQ),
- PtL=reverse(PtL);
- ,
- if(rMN==norm(pS-pR),
- PtL=reverse(PtL);
- Qd=reverse(Qd);
- );
- );
- );
- );
- if(rMN>Eps,
- PtL=concat(PtL,Qd);
- ,
- PtL=concat(PtL,Qd_(2..length(Qd)));
- );
- );
- );
- if(Noflg<3,
- println("generate Joincurves3d "+name3);
- tmp=name3+"="+textformat(PtL,5);
- parse(tmp);
- tmp1=Projpara(name3,["nodata"]);
- tmp=name2+"="+textformat(tmp1,5);
- parse(tmp);
- tmp=text(plotstrL);
- tmp=substring(tmp,1,length(tmp)-1);
- tmp=name3+"=Joincrvs("+tmp+")";
- GLIST=append(GLIST,tmp);
- tmp=name2+"=Projpara("+name3+")";
- GLIST=append(GLIST,tmp);
- );
- if(Noflg<2,
- if(isstring(Ltype),
- Ltype=GetLinestyle(text(Noflg)+Ltype,name2);
- ,
- if(Noflg==1,Ltype=0);
- );
- GCLIST=append(GCLIST,[name2,Ltype,opcindy]);
- if(SUBSCR==1, // 15.02.11
- tmp=parse(name2); // 15.08.17
- if(length(tmp)>0,
- Subgraph(name3,opcindy);
- ); // 15.08.17
- );
- );
- PtL;
-);
-
-Xyzax3data(nm,Xrange,Yrange,Zrange):=
- Xyzax3data(nm,Xrange,Yrange,Zrange,[]);
-Xyzax3data(nm,Xrange,Yrange,Zrange,options):=(
-//help:Xyzax3data("","x=[-5,5]","y=[-5,5]","z=[-5,5]");
-//help:Xyzax3data(Options2=["a1","Osw"]);
- regional(name2,name3,Out,tmp,tmp1,tmp2,eqL,reL,strL,
- opstr,opcindy,Ltype,Noflg,Axname,Arrow,Origin);
- name2="ax2d"+nm;
- name3="ax3d"+nm;
- tmp=Divoptions(options);
- Ltype=tmp_1;
- Noflg=tmp_2;
- eqL=tmp_5;
- reL=tmp_6;
- strL=tmp_7;
- opcindy=tmp_(length(tmp));
- Axname=1;
- Arrow=0; // 16.08.14
- Origin=""; // 16.08.14
- if(length(reL)>0,
- Axname=reL_1;
- );
- forall(strL, // 16.08.14from
- tmp1=Toupper(substring(#,0,1));
- if(tmp1=="A",
- tmp=substring(#,1,length(#));
- if(length(tmp)>0,
- Arrow=parse(tmp);
- ,
- Arrow=1;
- );
- );
- if(tmp1=="O",
- tmp=indexof(#,",");
- if(tmp>0,
- Origin=substring(#,tmp,length(#));
- ,
- tmp=substring(#,1,length(#));
- if(length(tmp)>0,
- Origin=tmp;
- ,
- Origin="sw";
- );
- );
- );
- ); // 16.08.14until
- tmp1=indexof(Xrange,"=");
- tmp=parse(substring(Xrange,tmp1,length(Xrange)));
- Px=[tmp_1,0,0]; Qx=[tmp_2,0,0];
- tmp1=indexof(Yrange,"=");
- tmp=parse(substring(Yrange,tmp1,length(Yrange)));
- Py=[0,tmp_1,0]; Qy=[0,tmp_2,0];
- tmp1=indexof(Zrange,"=");
- tmp=parse(substring(Zrange,tmp1,length(Zrange)));
- Pz=[0,0,tmp_1]; Qz=[0,0,tmp_2];
- Out=[[Px,Qx],[Py,Qy],[Pz,Qz]];
- if(Axname>0,
- Xyzaxparaname(Xrange,Yrange,Zrange,[Axname]);
- );
- if(Noflg<3,
- println("generate axes "+name3);
- tmp=name3+"="+textformat(Out,5);
- parse(tmp);
- tmp1=Projpara([name3],["nodata"]);
- tmp=name2+"="+textformat(tmp1,5);
- parse(tmp);
- tmp=name3+"=Xyzax3data("+
- Dq+Xrange+Dq+","+Dq+Yrange+Dq+","+Dq+Zrange+Dq+")";
- GLIST=append(GLIST,tmp);
- tmp=name2+"=Projpara("+name3+")";
- GLIST=append(GLIST,tmp);
- );
- if(Noflg<2,
- if(isstring(Ltype),
- Ltype=GetLinestyle(text(Noflg)+Ltype,name2);
- ,
- if(Noflg==1,Ltype=0);
- );
- GCLIST=append(GCLIST,[name2,Ltype,opcindy]);
- if(Noflg<1, // 16.08.14from
- if(Arrow>0,
- tmp1=Parapt(Px); tmp2=Parapt(Qx);
- Arrowhead(tmp2,tmp2-tmp1,[Arrow]);
- tmp1=Parapt(Py); tmp2=Parapt(Qy);
- Arrowhead(tmp2,tmp2-tmp1,[Arrow]);
- tmp1=Parapt(Pz); tmp2=Parapt(Qz);
- Arrowhead(tmp2,tmp2-tmp1,[Arrow]);
- );
- if(length(Origin)>0,
- Letter([Parapt([0,0,0]),Origin,"O"]);
- );
- ); // 16.08.14until
- if(SUBSCR==1, // 15.02.11
- Subgraph(name3,opcindy);
- );
- );
- Out;
-);
-
-Xyzaxparaname(Xrange,Yrange,Zrange):=
- Xyzaxparaname(Xrange,Yrange,Zrange,[]);
-Xyzaxparaname(Xrange,Yrange,Zrange,options):=(
- regional(tmp,tmp1,tmp2,Eps,Dr,Noflg,Xname,Yname,Zname,
- px,qx,py,qy,pz,qz,ph,qh,rr,ch);
- Eps=10.0^(-6);
- Dr=0.19*1000/2.54/MilliIn;
- Noflg=0;
- forall(options,
- if(isreal(#),Dr=Dr*#);
- );
- tmp=indexof(Xrange,"=");
- Xname=substring(Xrange,0,tmp-1);
- tmp=parse(substring(Xrange,tmp,length(Xrange)));
- px=[tmp_1,0,0]; qx=[tmp_2,0,0];
- tmp=indexof(Yrange,"=");
- Yname=substring(Yrange,0,tmp-1);
- tmp=parse(substring(Yrange,tmp,length(Yrange)));
- py=[0,tmp_1,0]; qy=[0,tmp_2,0];
- tmp=indexof(Zrange,"=");
- Zname=substring(Zrange,0,tmp-1);
- tmp=parse(substring(Zrange,tmp,length(Zrange)));
- pz=[0,0,tmp_1]; qz=[0,0,tmp_2];
- ph=Parapt(px); qh=Parapt(qx); rr=|ph-qh|;
- if(rr>Eps,
- ch=qh+Dr/rr*(qh-ph);
- Expr(ch,"c",Xname);
- );
- ph=Parapt(py); qh=Parapt(qy); rr=|ph-qh|;
- if(rr>Eps,
- ch=qh+Dr/rr*(qh-ph);
- Expr(ch,"c",Yname);
- );
- ph=Parapt(pz); qh=Parapt(qz); rr=|ph-qh|;
- if(rr>Eps,
- ch=qh+Dr/rr*(qh-ph);
- Expr(ch,"c",Zname);
- );
-);
-
-Datalist3d():=(
-//help:Datalist3d();
- regional(out,tmp,tmp2,tmp3);
- tmp=apply(GCLIST,#_1);
- tmp=select(tmp,indexof(#,"2d")>0);
- tmp2=select(tmp,indexof(#,"sub")==0);
- tmp3=apply(tmp2,replace(#,"2d","3d"));
- out=tmp3;
-);
-
-Datalist2d():=(
-//help:Datalist2d();
- regional(out,tmp,tmp2,tmp3);
- tmp=apply(GCLIST,#_1);
- tmp=select(tmp,indexof(#,"2d")>0);
- tmp2=select(tmp,indexof(#,"sub")==0);
-// tmp3=apply(tmp2,replace(#,"2d","3d"));
- out=tmp2;
-);
-
-Embed(nm,Pd2str,funstr,varstr):=
- Embed(nm,Pd2str,funstr,varstr,[]);
-Embed(nm,Pd2str,funstr,varstr,options):=(
-//help:Embed("1",["gr1"],"A3d+x*(B3d-A3d)+y*(C3d-A3d)","[x,y]");
- regional(name2,name3,Pd2L,Pd2,tmp,tmp1,xstr,ystr,
- Ltype,Noflg,opstr,opcindy,Out);
- name2="em2d"+nm;
- name3="em3d"+nm;
- if(!islist(Pd2str),Pd2L=[Pd2str],Pd2L=Pd2str); // 15.03.06
- tmp1=[]; // 15.10.31
- forall(Pd2L,
- if(isstring(#),tmp=parse(#),tmp=#);
- if(MeasureDepth(tmp)==2,
- tmp1=concat(tmp1,tmp);
- );
- if(MeasureDepth(tmp)==1,
- tmp1=append(tmp1,tmp);
- );
- );
- Pd2L=tmp1;
- tmp=substring(varstr,0,1);
- if(tmp=="[" % tmp=="(",
- tmp1=substring(varstr,1,length(varstr)-1);
- ,
- tmp1=varstr;
- );
- tmp=indexof(tmp1,",");
- xstr=substring(tmp1,0,tmp-1);
- ystr=substring(tmp1,tmp,length(tmp1));
- tmp=Divoptions(options);
- Ltype=tmp_1;
- Noflg=tmp_2;
- opcindy=tmp_(length(tmp));
- Out=[];
- forall(Pd2L,Pd2,
- tmp1=[];
- forall(Pd2,
- tmp=Assign(funstr,xstr,"("+textformat(#_1,5)+")");
- tmp=Assign(tmp,ystr,"("+textformat(#_2,5)+")");
- tmp=parse(tmp);
- tmp1=append(tmp1,tmp);
- );
- Out=append(Out,tmp1);
- );
- if(length(Out)==1,
- Out=Out_1;
- );
- if(Noflg<3,
- println("generate Embed "+name3);
- if(length(Out)>0,
- tmp=name3+"="+textformat(Out,5);
- parse(tmp);
- tmp1=Projpara(name3,["nodata"]);
- tmp=name2+"="+textformat(tmp1,5);
- parse(tmp);
- );
- if(!islist(Pd2str),
- tmp=Pd2str;
- ,
- tmp=text(Pd2str);
- tmp="list("+substring(tmp,1,length(tmp)-1)+")";
- );
- tmp=name3+"=Embed("+tmp+",'"+funstr+"','"+varstr+"'"+")";
- GLIST=append(GLIST,tmp);
- tmp=name2+"=Projpara("+name3+")";
- GLIST=append(GLIST,tmp);
- );
- if(Noflg<2,
- if(isstring(Ltype),
- Ltype=GetLinestyle(text(Noflg)+Ltype,name2);
- ,
- if(Noflg==1,Ltype=0);
- );
- if(length(Out)>0,
- GCLIST=append(GCLIST,[name2,Ltype,opcindy]);
- if(SUBSCR==1, // 15.02.11
- Subgraph(name3,opcindy);
- );
- );
- );
- Out;
-);
-
-Rotatept3d(point,w1,w2):=Rotate3pt(point,w1,w2);
-Rotatept3d(point,w1,w2,center):=Rotate3pt(point,w1,w2,center);
-//help:Rotatept3d(pt3d,[0,0,1],pi/2);
-//help:Rotatept3d(pt3d,[0,0,1],pi/2,[1,1,1]);
-Rotate3pt(point,w1,w2):=Rotate3pt(point,w1,w2,[0,0,0]);
-Rotate3pt(point,w1,w2,center):=(
-//help:Rotate3pt(pt3d,[0,0,1],pi/2);
-//help:Rotate3pt(pt3d,[0,0,1],pi/2,[1,1,1]);
- regional(Eps,ct,st,v3,v1,v2,Ans,ns,PtL,num,
- pt,tmp,tmp1,tmp2,Retflg,x,y,z,xx,yy,zz,flg);
- Eps=10^(-4);
- Retflg=0;
- if(length(w2)==1,
- ct=cos(w2);
- st=sin(w2);
- v3=1/|w1|*w1;
- if(v3_1==0,
- tmp=[1,0,0];
- ,
- tmp=[0,1,0];
- );
- w1=[tmp_2*v3_3-tmp_3*v3_2,
- tmp_3*v3_1-tmp_1*v3_3,
- tmp_1*v3_2-tmp_2*v3_1];
- v1=1/|w1|*w1;
- v2=[v3_2*v1_3-v3_3*v1_2,
- v3_3*v1_1-v3_1*v1_3,
- v3_1*v1_2-v3_2*v1_1];
- ,
- tmp=[w1_2*w2_3-w1_3*w2_2,
- w1_3*w2_1-w1_1*w2_3,
- w1_1*w2_2-w1_2*w2_1];
- if(|tmp|<Eps,
- Ans=point;
- Retflg=1;
- );
- if(Retflg==0,
- v1=1/|w1|*w1;
- ns=v1_1*w2_1+v1_2*w2_2+v1_3*w2_3;
- tmp=w2-ns*v1;
- v2=1/|tmp|*tmp;
- tmp=[v1_2*v2_3-v1_3*v2_2,
- v1_3*v2_1-v1_1*v2_3,
- v1_1*v2_2-v1_2*v2_1];
- v3=1/|tmp|*tmp;
- ct=ns/|w2|;
- st=sqrt(1-ct^2);
- );
- );
- if(Retflg==0,
- if(|tmp|<Eps,
- Ans=point;
- Retflg=1;
- );
- );
- if(Retflg==0,
- if(MeasureDepth(point)>0,
- PtL=point;
- ,
- PtL=[point];
- );
- Ans=[];
- flg=0;
- forall(1..length(PtL),num,
- pt=PtL_num;
- if(pt_1=="inf",
- Ans=append(Ans,["inf"]);
- flg=1;
- );
- if(flg==0,
- x=pt_1-center_1; y=pt_2-center_2; z=pt_3-center_3;
- xx=((v1_1*ct+v2_1*st)*v1_1+ (-v1_1*st+v2_1*ct)*v2_1+v3_1^2)*x
- +((v1_1*ct+v2_1*st)*v1_2+(-v1_1*st+v2_1*ct)*v2_2+v3_1*v3_2)*y
- +((v1_1*ct+v2_1*st)*v1_3+(-v1_1*st+v2_1*ct)*v2_3+v3_1*v3_3)*z;
- yy=((v1_2*ct+v2_2*st)*v1_1+(-v1_2*st+v2_2*ct)*v2_1+v3_1*v3_2)*x
- +((v1_2*ct+v2_2*st)*v1_2+(-v1_2*st+v2_2*ct)*v2_2+v3_2^2)*y
- +((v1_2*ct+v2_2*st)*v1_3+(-v1_2*st+v2_2*ct)*v2_3+v3_2*v3_3)*z;
- zz=((v1_3*ct+v2_3*st)*v1_1+(-v1_3*st+v2_3*ct)*v2_1+v3_1*v3_3)*x
- +((v1_3*ct+v2_3*st)*v1_2+(-v1_3*st+v2_3*ct)*v2_2+v3_2*v3_3)*y
- +((v1_3*ct+v2_3*st)*v1_3+(-v1_3*st+v2_3*ct)*v2_3+v3_3^2)*z;
- Ans=append(Ans,center+[xx,yy,zz]);
- );
- );
- if(length(Ans)==1,
- Ans=Ans_1;
- );
- );
- Ans;
-);
-
-Rotatedata3d(nm,P3data,w1,w2):=Rotate3data(nm,P3data,w1,w2);
-Rotatedata3d(nm,P3data,w1,w2,options):=
- Rotate3data(nm,P3data,w1,w2,options);
-//help:Rotatedata3d("1",["sl3d1","sc3d2"],[0,0,1],pi/3);
-Rotate3data(nm,P3data,w1,w2):=Rotate3data(nm,P3data,w1,w2,[]);
-Rotate3data(nm,P3data,w1,w2,options):=(
- regional(name3,name2,center,pdata,Pd3,Pd,Out,tmp,tmp1,
- Ltype,Noflg,opcindy,opstr);
- name3="rot3d"+nm;
- name2="rot2d"+nm;
- center=[0,0,0];
- tmp=Divoptions(options);
- Ltype=tmp_1;
- Noflg=tmp_2;
- opstr=tmp_(length(tmp)-1);
- opcindy=tmp_(length(tmp));
- tmp1=tmp_6;
- if(length(tmp1)>0,
- center=tmp1_1;
- );
- if(islist(P3data) & isstring(P3data_1),Pd3=P3data,Pd3=[P3data]);
- Out=[];
- forall(Pd3,Pd,
- if(isstring(Pd),Pd=parse(Pd));
- if(MeasureDepth(Pd)==1,Pd=[Pd]);
- Ans=[];
- forall(Pd,
- tmp=Rotate3pt(#,w1,w2,center);
- Ans=append(Ans,tmp);
- );
- Out=append(Out,Ans);
- );
- Out=Flattenlist(Out);
- if(length(Out)==1,Out=Out_1);
- if(Noflg<3,
- println("generate Rotate3data "+name3);
- tmp=name3+"="+textformat(Out,5);
- parse(tmp);
- tmp1=Projpara(name3,["nodata"]);
- tmp=name2+"="+textformat(tmp1,5);
- parse(tmp);
- tmp=textformat(P3data,5); // 17.12.23
- tmp=RSform(tmp); // 17.12.23
-// tmp=replace(tmp,"[","list(");
-// tmp=replace(tmp,"]",")");
- tmp=name3+"=Rotate3data("+tmp+","
- +textformat(w1,5)+","+textformat(w2,5)+opstr+")";
- GLIST=append(GLIST,tmp);
- tmp=name2+"=Projpara("+name3+")";
- GLIST=append(GLIST,tmp);
- );
- if(Noflg<2,
- if(isstring(Ltype),
- Ltype=GetLinestyle(text(Noflg)+Ltype,name2);
- ,
- if(Noflg==1,Ltype=0);
- );
- GCLIST=append(GCLIST,[name2,Ltype,opcindy]);
- if(SUBSCR==1, // 15.02.11
- Subgraph(name3,opcindy);
- );
- );
- Out;
-);
-
-Translatept3d(point,w1):=Translate3pt(point,w1);
-//help:Translatept3d(pt3d,[1,2,3]);
-Translate3pt(point,w1):=(
- regional(Eps,Ans,PtL,pt,num,xx,yy,zz,flg);
- Eps=10^(-4);
- if(MeasureDepth(point)>0,
- PtL=point;
- ,
- PtL=[point];
- );
- Ans=[];
- flg=0;
- forall(1..length(PtL),num,
- pt=PtL_num;
- if(pt_1=="inf",
- Ans=append(Ans,["inf"]);
- flg=1;
- );
- if(flg==0,
- xx=pt_1+w1_1; yy=pt_2+w1_2; zz=pt_3+w1_3;
- Ans=append(Ans,[xx,yy,zz]);
- );
- );
- if(length(Ans)==1,
- Ans=Ans_1;
- );
- Ans;
-);
-
-Translatedata3d(nm,P3data,w1):=Translate3data(nm,P3data,w1);
-Translatedata3d(nm,P3data,w1,options):=
- Translate3data(nm,P3data,w1,options);
-//help:Translatedata3d("1",["sl3d1"],[1,2,3]);
-Translate3data(nm,P3data,w1):=Translate3data(nm,P3data,w1,[]);
-Translate3data(nm,P3data,w1,options):=(
- regional(name3,name2,pdata,Pd3,Pd,Out,tmp,tmp1,
- Ltype,Noflg,opcindy);
- name3="tra3d"+nm;
- name2="tra2d"+nm;
- tmp=Divoptions(options);
- Ltype=tmp_1;
- Noflg=tmp_2;
- opcindy=tmp_(length(tmp));
- if(islist(P3data) & isstring(P3data_1),Pd3=P3data,Pd3=[P3data]);
- Out=[];
- forall(Pd3,Pd,
- if(isstring(Pd),Pd=parse(Pd));
- if(MeasureDepth(Pd)==1,Pd=[Pd]);
- Ans=[];
- forall(Pd,
- tmp=Translate3pt(#,w1);
- Ans=append(Ans,tmp);
- );
- Out=append(Out,Ans);
- );
- Out=Flattenlist(Out);
- if(length(Out)==1,Out=Out_1);
- if(Noflg<3,
- println("generate Translate3data "+name3);
- tmp=name3+"="+textformat(Out,5);
- parse(tmp);
- tmp1=Projpara(name3,["nodata"]);
- tmp=name2+"="+textformat(tmp1,5);
- parse(tmp);
- tmp=textformat(P3data,5); // 17.12.23
- tmp=RSform(tmp); // 17.12.23
-// tmp=text(P3data);
-// tmp=replace(tmp,"[","list(");
-// tmp=replace(tmp,"]",")");
- tmp=name3+"=Translate3data("+tmp+","+textformat(w1,5)+")";
- GLIST=append(GLIST,tmp);
- tmp=name2+"=Projpara("+name3+")";
- GLIST=append(GLIST,tmp);
- );
- if(Noflg<2,
- if(isstring(Ltype),
- Ltype=GetLinestyle(text(Noflg)+Ltype,name2);
- ,
- if(Noflg==1,Ltype=0);
- );
- GCLIST=append(GCLIST,[name2,Ltype,opcindy]);
- if(SUBSCR==1, // 15.02.11
- Subgraph(name3,opcindy);
- );
- );
- Out;
-);
-
-Reflectpoint3d(point,vecL):=Reflect3point(point,vecL);
-Reflectpt3d(point,vecL):=Reflect3pt(point,vecL);
-//help:Reflectpoint3d(pt3d,[v1,v2,v3]);
-Reflect3point(point,vecL):=Reflect3pt(point,vecL);
-Reflect3pt(point,vecL):=(
- regional(ans,v1,v2,v3,tmp,tmp1);
- if(length(vecL)==1,
- v1=vecL_1;
- ans=2*v1-point;
- );
- if(length(vecL)==2,
- v1=vecL_1;
- v2=vecL_2;
- v3=(v2-v1)/|v2-v1|;
- tmp=v1+Dotprod(point-v1,v3)*v3;
- ans=2*tmp-point;
- );
- if(length(vecL)==3,
- v1=vecL_1;
- v2=vecL_2;
- v3=vecL_3;
- tmp=Crossprod(v2-v1,v3-v1);
- tmp1=point-Dotprod(tmp,point-v1)/|tmp|^2*tmp;
- ans=2*tmp1-point;
- );
- ans;
-);
-
-Xyzcoord(X,Y,z):=(
-//help:Xyzcoord(A.x,A.y,Az.y);
- regional(Eps,x3d,y3d,z3d);
- x3d=(-X*sin(PHI)*cos(THETA)-Y*cos(PHI)+z*cos(PHI)*sin(THETA))/cos(THETA);
- y3d=(X*cos(PHI)*cos(THETA)-Y*sin(PHI)+z*sin(PHI)*sin(THETA))/cos(THETA);
- z3d=z;
- [x3d,y3d,z3d];
-);
-
-PutonCurve3d(name,pdstr):=(
-//help:PutonCurve3d("T","sc3d1");
- regional(pt,pd2str,tmp,tmp1,tmp2);
- pd2str=replace(pdstr,"3d","2d");
- PutonCurve(name,pd2str);
- pt=parse(name+".xy");
- tmp=Nearestpt(pt,pd2str); // 15.03.13
- tmp1=ParamonCurve(tmp_1,tmp_2,pd2str);
- tmp="sub"+pd2str;
- tmp2=PointonCurve(tmp1,tmp);
- pt=append(pt,tmp2_2);
- pt=Xyzcoord(pt_1,pt_2,pt_3); // 15.03.13
- tmp=name+"z.xy="+textformat(tmp2,5);
- parse(tmp);
- VLIST=select(VLIST,#_1!=name+"3d");
- Defvar(name+"3d",pt);
-);
-
-Mkpointlist():=Mkpointlist([]); //16.11.12
-Mkpointlist(options):=( //16.11.12
- regional(Eps,pos,ptL,plist,ilist,plistrest,
- inforest,free,pt,pt3,ptz,par,vlistpre,
- tmp,tmp1,tmp2,tmp3,tmp4,p1,p2,flg);
- Eps=10^(-4);
- tmp=Finddef(NE);
- free=tmp_1;
- pos=[NE.x+1,NE.y];
- tmp=remove(allpoints(),[NE,SW,TH,FI]);
- tmp=remove(tmp,options); //16.11.12
- plist=select(tmp,
- substring(text(#),length(text(#))-1,length(text(#)))!="z"
- );
- if(SUBSCR==0,plist=[]);
- ptL=[];
- plistrest=[];
- inforest=[];
- forall(plist,pt,
- inspect(pt,"ptsize",3);
- inspect(pt,"color",2);
- inspect(pt,"textsize",TSIZE);
- ptz=text(pt)+"z";
- tmp=Finddef(pt);
- if(indexof(tmp_1,free)>0, // free point
- tmp=select(VLIST,#_1==text(pt)+"3d");
- if(length(tmp)==0,
- tmp=pt.x+NE.x-SW.x;
- Putpoint(ptz,[tmp,0],[tmp,parse(ptz+".y")]);
- pt3=Xyzcoord(pt.x,pt.y,parse(text(ptz)+".y"));
- Defvar(text(pt)+"3d",pt3);
- Defvar(text(pt)+"fix",0);
- vlistpre=VLIST; //16.08.20
- );
- flg=0;
- if(isselected(pt),
- if(parse(text(pt)+"fix")!=1, // 15.03.01
- tmp=pt.x+NE.x-SW.x;
- Putpoint(ptz,[tmp,0],[tmp,parse(ptz+".y")]);
- pt3=Xyzcoord(pt.x,pt.y,parse(text(ptz)+".y"));
- VLIST=select(VLIST,#_1!=text(pt)+"3d");
- Defvar(text(pt)+"3d",pt3);
- vlistpre=VLIST; //16.08.20
- flg=1;
- );
- );
- inspect(parse(ptz),"ptsize",3);
- inspect(parse(ptz),"color",3);
- inspect(parse(ptz),"textsize",TSIZEZ);
- if(isselected(parse(ptz)),
- if(parse(ptz+"fix")!=1, // 15.03.01
- tmp=select(vlistpre,#_1==text(pt)+"3d"); //16.08.20
- pt3=tmp_1_2;
- pt3_3=parse(ptz+".y");
- pt.xy=Parapt(pt3);
- tmp=ptz+".x=pt.x+NE.x-SW.x";
- parse(tmp);
- VLIST=select(VLIST,#_1!=text(pt)+"3d");
- Defvar(text(pt)+"3d",pt3);
- flg=2;
- );
- );
- if(flg==0,
- tmp=select(VLIST,#_1==text(pt)+"3d");
- if(length(tmp)>0, //17.10.07
- pt3=tmp_1_2;
- pt.xy=Parapt(pt3);
- tmp=ptz+".x=pt.x+NE.x-SW.x";
- parse(tmp);
- ); //17.10.07
- );
- if(isselected(pt) % isselected(parse(ptz)),
- drawtext(pos,text(pt3));
- );
- if(!contains(["p","q"],text(pt)),
- ptL=append(ptL,pt);
- );
- ,
- tmp=Findgeoinfo(pt);
- tmp1=[parse(tmp_1),parse(tmp_2),parse(tmp_3)];
- plistrest=append(plistrest,pt);
- inforest=append(inforest,tmp);
- );
- );
- if(length(plistrest)>0,
- tmp=Sortpointlist([plistrest,inforest]);
- plist=tmp_1;
- ilist=tmp_2;
- forall(1..length(plist),
- pt=plist_#;
- ptz=text(pt)+"z";
- tmp=ilist_#;
- p1=parse(tmp_3);
- p2=p1+parse(tmp_2)-parse(tmp_1);
- tmp1=p2-p1;
- tmp2=pt-p1;
- if(abs(tmp1_1)>abs(tmp1_2),
- par=tmp2_1/tmp1_1;
- ,
- par=tmp2_2/tmp1_2;
- );
- tmp=ilist_#;
- tmp1=parse(tmp_1+"3d");
- tmp2=parse(tmp_2+"3d");
- tmp3=parse(tmp_3+"3d");
- tmp1=(1-par)*tmp3+par*(tmp3+tmp2-tmp1);
- Putpoint(ptz,[pt.x+NE.x-SW.x,tmp1_3]);
- inspect(parse(ptz),"ptsize",3);
- inspect(parse(ptz),"color",3);
- inspect(parse(ptz),"textsize",TSIZEZ);
- pt3=Xyzcoord(pt.x,pt.y,parse(text(ptz)+".y"));
- VLIST=select(VLIST,#_1!=tmp1+"3d");
- Defvar(text(pt)+"3d",pt3);
- vlistpre=VLIST; //16.08.20
- if(isselected(pt) % isselected(parse(ptz)),
- drawtext(pos,text(pt3));
- );
- if(!contains(["p","q"],text(pt)),
- ptL=append(ptL,pt);
- );
- );
- );
- ptL;
-);
-
-Mkseg3d():=Mkseg3d([]);
-Mkseg3d(options):=(
- regional(seg,nmseg,def,ptA,ptB,segL,opstr,opcindy,
- name,strg,Ltype,Noflg,tht,tmp,tmp1,tmp2,tmp3);
- name="geoseg3d";
- strg=name+"=list(";
- tmp=Divoptions(options);
- Ltype=tmp_1;
- Noflg=tmp_2;
- opcindy=tmp_(length(tmp));
- segL=[];
- forall(allsegments(),seg,
- inspect(seg,"labeled",false);
- tmp=Finddef(seg);
- def=tmp_1;
- ptA=tmp_2;
- ptB=tmp_3;
- if(ispoint(parse(ptA)) & ispoint(parse(ptB)),
- tmp1=select(VLIST,indexof(#_1,ptA+"3d")>0);
- tmp2=select(VLIST,indexof(#_1,ptB+"3d")>0);
- if(length(tmp1)>0 & length(tmp2)>0,
- tmp1="["+ptA+"3d,"+ptB+"3d]";
- nmseg=ptA+ptB;
-// Spaceline(nmseg,parse(tmp1),append(options,"Msg=nodisp")); //15.06.15
- Spaceline("-"+nmseg+"3d",[ptA+"3d",ptB+"3d"], // 16.04.07
- append(options,"Msg=nodisp")); //15.06.15
- segL=append(segL,nmseg+"3d");// 16.04.07
- strg=strg+nmseg+"3d,";// 16.04.07
- );
- );
- );
- println("generate totally "+name);
- if(length(segL)>0, // 15.03.06
- strg=substring(strg,0,length(strg)-1)+")";
- if(Noflg<3,
- GLIST=append(GLIST,strg);
- );
- tmp1=apply(segL,Dq+#+Dq); //15.03.02
- tmp=name+"="+text(tmp1);
- parse(tmp);
- );
- segL;
-);
-
-Ptseg3data():=Ptseg3data([]);
-//help:Ptseg3data();
-//help:Ptseg3data([A,B]);
-Ptseg3data(options):=(
- regional(pt,pt3,plist,tmp,tmp1,tmp2);
- if(isselected(TH) % isselected(FI),
- tmp=remove(allpoints(),[NE,SW,TH,FI]);
- tmp=remove(tmp,options); //16.11.12
- tmp=apply(tmp,text(#));
- plist=select(tmp,substring(#,length(#)-1,length(#))!="z");
- forall(plist,pt,
- tmp1=text(pt);
- tmp=select(VLIST,#_1==tmp1+"3d"); //17.10.07
- if(length(tmp)>0,
- pt3=tmp_1_2;
- tmp=tmp1+".xy=Parapt("+pt3+")_[1,2];";
- parse(tmp);
- if(SUBSCR==1,
- tmp=tmp1+"z"+".x=NE.x-SW.x+"+tmp1+".x";
- parse(tmp);
- );
- );
- );
- ,
- Mkpointlist(options); // 16.12.18
- );
- forall(alllines(),
- #.color=[0.5,0.5,1];
- );
- SEG3dlist=Mkseg3d(options);
- SEG3dlist;
-);
-
-Putonseg3d(name,ptL):=Putonseg3d(name,ptL_1,ptL_2,[]);
-Putonseg3d(name,Arg1,Arg2):=(
- if(islist(Arg1),
- Putonseg3d(name,Arg1_1,Arg1_2,Arg2);
- ,
- Putonseg3d(name,Arg1,Arg2,[]);
- );
-);
-Putonseg3d(name,pt1,pt2,options):=(
-//help:Putonseg3d("C",[A,B]);
-//help:Putonseg3d("C",A,B);
- regional(par,pn1,pn2,tmp,tmp1,tmp2,tmp3);
- par=0.5;
- tmp=divoptions(options);
- if(length(tmp_6)>0,
- par=tmp_6_1;
- );
- Putonseg(name,pt1,pt2,[par]);
- inspect(parse(name),"ptsize",3);
- inspect(parse(name),"color",2);
- inspect(parse(name),"textsize",TSIZEZ);
- Putpoint(name+"z",[parse(name+".x"),0]);
- inspect(parse(name+"z"),"ptsize",3);
- inspect(parse(name+"z"),"color",3);
- inspect(parse(name+"z"),"textsize",TSIZEZ);
- pn1=text(pt1);
- pn2=text(pt2);
- tmp1=replace("PTCz.y=PTAz.y+|PTC-PTA|/|PTB-PTA|*(PTBz.y-PTAz.y)","PTC",name);
- tmp1=replace(tmp1,"PTA",pn1);
- tmp1=replace(tmp1,"PTB",pn2);
- tmp2=replace("PTCz.x=PTAz.x+|PTC-PTA|/|PTB-PTA|*(PTBz.x-PTAz.x)","PTC",name);
- tmp2=replace(tmp2,"PTA",pn1);
- tmp2=replace(tmp2,"PTB",pn2);
- parse(tmp2);
- parse(tmp1);
- tmp1=parse(name+".x");
- tmp2=parse(name+".y");
- tmp3=parse(name+"z.y");
- tmp=Xyzcoord(tmp1,tmp2,tmp3);
- Defvar(name+"3d",tmp);
-);
-
-Putpoint3d(ptslist):=Putpoint3d(ptslist,"",0);
-Putpoint3d(Arg1,Arg2):=( // 16.03.02 from
- if(islist(Arg1),
- Putpoint3d(Arg1,Arg2,0);
- ,
- Putpoint3d(Arg1,Arg2,"fix");
- );
-);
-Putpoint3d(Arg1,Arg2,Arg3):=(
-//help:Putpoint3d(["A",[2,1,3]]);
-//help:Putpoint3d(["A",[2,1,3]],"fix");
-//help:Putpoint3d("A",[2,1,3]);
-//help:Putpoint3d(["A",[2,1,3]],["fix"]);
- regional(nn,kk,pt,pt3,ptslist,fixstr,tmp,tmp1,tmp2,tmp3); //16.08.19
- if(isstring(Arg1),
- ptslist=[Arg1,Arg2];
- fixstr=Arg3;
- ,
- ptslist=Arg1;
- fixstr=Arg2;
- );
- if(islist(fixstr),fixstr=fixstr_1);// 16.03.02 until
- nn=length(ptslist)/2;
- forall(1..nn,kk, // 16.08.19from
- tmp1=ptslist_(2*kk-1);
- pt3=ptslist_(2*kk); // 16.08.19until
- VLIST=select(VLIST,#_1!=tmp1+"3d");
- tmp2=parse(tmp1);
- if(ispoint(tmp2), // 16.05.26from
- if(islist(fixstr),tmp=fixstr_1,tmp=fixstr);
- tmp=Toupper(tmp);
- if(tmp!="FIX",
- tmp=Xyzcoord(tmp2.x,tmp2.y,parse(tmp1+"z").y);
- ,
- tmp=pt3;
- );
- Defvar(tmp1+"3d",tmp);
- ,
- Defvar(tmp1+"3d",pt3);
- ); // 16.05.26until
- Defvar(tmp1+"fix",0);
- pt=Parapt(pt3);
- Putpoint(tmp1,pt,parse(tmp1+".xy"));
- inspect(parse(tmp1),"ptsize",3);
- inspect(parse(tmp1),"color",2);
- inspect(parse(tmp1),"textsize",TSIZE);
- if(SUBSCR==1,
- tmp2=tmp1+"z";
- tmp=[pt.x+NE.x-SW.x,pt3_3];
- tmp1="[NE.x-SW.x+"+tmp1+".x,"+tmp2+"y]";
- Putpoint(tmp2,tmp,parse(tmp1));
- inspect(parse(tmp2),"ptsize",3);
- inspect(parse(tmp2),"color",3);
- inspect(parse(tmp2),"textsize",TSIZEZ);
- );
- );
- if(islist(fixstr),tmp=fixstr_1,tmp=fixstr);
- if(tmp=="fix" % tmp=="Fix",
- Fixpoint3d(ptslist);
- );
-);
-
-Fixpoint3d(ptlist):=(
-// help:Fixpoint3d(["O",[0,0,0],"X",[1,0,0]]);
- regional(name,pt3,pt2,tmp,tmp1,tmp2);
- forall(1..(length(ptlist)/2),
- name=ptlist_(2*#-1);
- Defvar(name+"fix",1);
- pt3=ptlist_(2*#);
- pt2=Parapt(pt3);
- tmp1=textformat(pt2_1,5);
- tmp2=textformat(pt2_2,5);
- tmp=name+".xy=["+tmp1+","+tmp2+"]";
- parse(tmp);
- tmp1=name+".x+NE.x-SW.x";
- tmp2=textformat(pt3_3,5);
- tmp=name+"z.xy=["+tmp1+","+tmp2+"];";
- parse(tmp);
- );
-);
-
-Perppt(name,ptstr,pLstr):=Putperp(name,ptstr,pLstr,"draw");
-Perppt(name,ptstr,pLstr,option):=Putperp(name,ptstr,pLstr,option);
-Putperp(name,ptstr,pLstr):=Putperp(name,ptstr,pLstr,"put");
-Putperp(name,ptstr,pLstr,option):=(
-//help:Perppt("N","O","A-B-C");
-//help:Perppt("N","O","A-B-C","put");
-//help:Perppt("N","O","A-B","none");
- regional(out,Eps,N3d,sgstr,pP,pA,pB,pC,tmp,tmp1,flgpL);
- Eps=10^(-4);
- pP=parse(ptstr+"3d");
- tmp=indexof(pLstr,"-");
- pA=parse(substring(pLstr,0,tmp-1)+"3d");
- tmp1=substring(pLstr,tmp,length(pLstr));
- tmp=indexof(tmp1,"-");
- if(tmp>0,
- pB=parse(substring(tmp1,0,tmp-1)+"3d");
- pC=parse(substring(tmp1,tmp,length(tmp1))+"3d");
- flgpL=1;
- ,
- pB=parse(tmp1+"3d");
- flgpL=0;
- );
- if(flgpL==1,
- tmp=Crossprod(pB-pA,pC-pA);
- if(abs(tmp)<Eps,
- err("not a plane");
- ,
- tmp=tmp/|tmp|;
- N3d=pP+tmp;
- Defvar("tmp3d",N3d); // temporary
- sgstr=ptstr+"-tmp";
- tmp=IntersectsgpL(name,sgstr,pLstr,"none");
- VLIST=select(VLIST,#_1!="tmp3d");
- out=tmp_1;
- Defvar(name+"3d",tmp_1);
- );
- ,
- if(|pB-pA|<Eps,
- err("on the line");
- ,
- tmp1=(pB-pA)/|pB-pA|;
- tmp=Dotprod(pP-pA,tmp1);
- out=pA+tmp*tmp1;
- Defvar(name+"3d",out);
- );
- );
- if(islist(option),tmp=option_1,tmp=option);
- tmp=substring(tmp,0,1);
- if(tmp=="P" % tmp=="p",
- Putpoint3d([name,out]);
- Fixpoint3d([name,out]);
- );
- if(tmp=="D" % tmp=="d",
- Drawpoint3d(out);
- );
- out;
-);
-
-Perpplane(name,ptstr,nvec):=
- Perpplane(name,ptstr,nvec,"draw");
-Perpplane(name,ptstr,nstr,option):=(
-//help:Perpplane("A-B","P",[1,3,2]);
-//help:Perpplane("A-B","P",[0,0,1,0]);
- regional(Eps,nvec,sgstr,pP,v1,v2,v3,
- th,ph,pA,pB,tmp,tmp1,tmp2);
- Eps=10^(-4);
- if(isstring(nstr),nvec=parse(nstr+"3d"),nvec=nstr);
- pP=parse(ptstr+"3d");
- v3=nvec/|nvec|;
- th=THETA; ph=PHI;
- tmp=findangle(v3);
- THETA=tmp_1; PHI=tmp_2;
- v1=Cancoordpara([1,0,0]);
- v2=Cancoordpara([0,1,0]);
- THETA=th; PHI=ph;
- tmp=indexof(pLstr,"-");
- pA=pP+v1;
- pB=pP+v2;
- if(islist(option),tmp=option_1,tmp=option);
- tmp=Toupper(substring(tmp,0,1)); // 16.06.19
- if(tmp=="P",
- tmp=indexof(name,"-");
- tmp1=substring(name,0,tmp-1);
- tmp2=substring(name,tmp,length(name));
- Putpoint3d([tmp1,pA,tmp2,pB],["fix"]);
- );
- if(tmp=="D",
- Drawpoint3d(pA);
- Drawpoint3d(pB);
- );
- [pA,pB];
-);
-
-Drawpoint3d(pt3):=(
-//help:Drawpoint3d(pt3d);
- regional(ptL,tmp,tmp1,tmp2);
- if(MeasureDepth(pt3)==0,ptL=[pt3],ptL=pt3);
- forall(ptL,
- tmp=parapt(#);
- draw(tmp_(1..2));
- if(SUBSCR==1,
- draw([tmp_1+NE.x-SW.x, #_3]);
- );
- );
-);
-
-Putaxes3d(size):=(
-//help:Putaxes3d(5);
-//help:Putaxes3d([1,2,3]);
- regional(sL);
- if(islist(size),sL=size,sL=[size,size,size]);
- Putpoint3d(["O",[0,0,0]],"fix"); //17.06.02from
- Putpoint3d(["X",[sL_1,0,0]],"fix");
- Putpoint3d(["Y",[0,sL_2,0]],"fix");
- Putpoint3d(["Z",[0,0,sL_3]],"fix");
-// Fixpoint3d(["O",[0,0,0]]);
-// Fixpoint3d(["X",[sL_1,0,0],"Y",[0,sL_2,0],"Z",[0,0,sL_3]]);//17.06.02funtil
-);
-
-IntersectsgpL(name,sgstr,pLstr):=
- IntersectsgpL(name,sgstr,pLstr,"draw");
-IntersectsgpL(name,sgstr,pLstr,option):=(
-//help:IntersectsgpL("R","P-Q","A-B-C");
-//help:IntersectsgpL("R","P-Q","A-B-C","put");
-//// help:IntersectsgpL("","P-Q","A-B-C","none");
-//help:IntersectsgpL("",[p1,p2],[p3,p4,p5],"draw");
- regional(opstr,out,pP,pQ,pA,pB,pC,pH,pK,pR,tseg,tt,ss,Eps,flg,
- nvec,tmp,tmp1,tmp2,tmp3,tmp4);
- if(islist(option),opstr=option_1,opstr=option);
- Eps=10^(-4);
- flg=0;
- if(!isstring(sgstr), // 15.05.29
- pP=sgstr_1;
- pQ=sgstr_2;
- ,
- tmp=indexof(sgstr,"-");
- if(tmp>0, // 15.05.28
- pP=parse(substring(sgstr,0,tmp-1)+"3d");
- pQ=parse(substring(sgstr,tmp,length(sgstr))+"3d");
- ,
- tmp1=parse(sgstr);
- pP=tmp1_1;
- pQ=tmp1_2;
- );
- );
- if(!isstring(pLstr), // 16.02.02
- pA=pLstr_1;
- pB=pLstr_2;
- pC=pLstr_3;
- ,
- tmp=indexof(pLstr,"-");
- pA=parse(substring(pLstr,0,tmp-1)+"3d");
- tmp1=substring(pLstr,tmp,length(pLstr));
- tmp=indexof(tmp1,"-");
- pB=parse(substring(tmp1,0,tmp-1)+"3d");
- pC=parse(substring(tmp1,tmp,length(tmp1))+"3d");
- );
- nvec=Crossprod(pB-pA,pC-pA);
- if(abs(Dotprod(nvec,pQ-pP))>Eps,
- pH=(Reflect3point(pP,[pA,pB,pC])+pP)/2;
- pK=(Reflect3point(pQ,[pA,pB,pC])+pQ)/2;
- tmp1=pP-pH;
- tmp2=tmp1+pK-pQ;
- tmp=select(tmp2,abs(#)==max(apply(tmp2,abs(#))));
- tmp=select(1..3,tmp2_#==tmp_1);
- tmp=tmp_1;
- tseg=tmp1_tmp/tmp2_tmp;
- pR=(1-tseg)*pH+tseg*pK;
- tmp=substring(opstr,0,1);
- if(Toupper(tmp)=="P",
- Putpoint3d([name,pR]);
- Fixpoint3d([name,pR]);
- );
- if(Toupper(tmp)=="D",
- Drawpoint3d(pR);
- );
- tmp=Dotprod(pB-pA,pC-pA);
- tmp1=Dotprod(pB-pA,pB-pA);
- tmp2=Dotprod(pC-pA,pC-pA);
- tmp3=Dotprod(pR-pA,pB-pA);
- tmp4=Dotprod(pR-pA,pC-pA);
- ss=-(tmp*tmp4-tmp3*tmp2)/(tmp1*tmp2-tmp^2);
- tt=(tmp1*tmp4-tmp*tmp3)/(tmp1*tmp2-tmp^2);
- out=[pR,tseg,ss,tt];
- ,
- if(Toupper(substring(opstr,0,1))!="N",
- println(" "+sgstr+","+pLstr+" are parallel");
- );
- out=[];
- );
- out;
-);
-
-Bezier3d(nm,ptctrlist):=Bezier3(nm,ptctrlist);
-Bezier3d(nm,Ag1,Ag2):=Bezier3(nm,Ag1,Ag2);
-Bezier3d(nm,ptlistorg,ctrlistorg,options):=
- Bezier3(nm,ptlistorg,ctrlistorg,options);
-//help:Bezier3d("1",["A","B","C"],["D","E","F","G"]);
-Bezier3(nm,ptctrlist):=Bezier3(nm,ptctrlist_1,ptctrlist_2,[]);
-Bezier3(nm,Ag1,Ag2):=(
- if(MeasureDepth(Ag1)==0,
- Bezier3(nm,Ag1,Ag2,[]);
- ,
- if(MeasureDepth(Ag1)>1,
- Bezier3(nm,Ag1_1,Ag1_2,Ag2);
- ,
- if(isstring(Ag_1_1),
- Bezier3(nm,Ag1,Ag2,[]);
- ,
- Bezier3(nm,Ag1_1,Ag1_2,Ag2);
- );
- );
- );
-);
-Bezier3(nm,ptlistorg,ctrlistorg,options):=( //17.10.08 greatly changed
- regional(name,name3,name2,tmp,tmp1,tmp2,
- Ltype,Noflg,opstr,eqL,Num,ii,knt,ctr,out);
- name="bz"+nm;
- name3="bz3d"+nm;
- name2="bz2d"+nm;
- tmp=Divoptions(options);
- Ltype=tmp_1;
- Noflg=tmp_2;
- eqL=tmp_5;
- opcindy=tmp_(length(tmp));
- Num=20;
- forall(eqL,
- tmp=indexof(#,"=");
- tmp1=Toupper(substring(#,0,1));
- tmp2=substring(#,tmp,length(#));
- if(tmp1=="N",
- Num=parse(tmp2);
- );
- );
- ptlist=ptlistorg;
- if(isstring(ptlistorg_1),ptlist=apply(ptlistorg,parse(#+"3d")));
- ctrlist=ctrlistorg;
- if(isstring(ctrlistorg_1),ctrlist=apply(ctrlistorg,parse(#+"3d")));
- out=[];
- forall(1..(length(ptlist)-1),ii,
- knt=[ptlist_ii,ptlist_(ii+1)];
- ctr=[ctrlist_(2*ii-1),ctrlist_(2*ii)];
- tmp="Bezierpt(T,ptlist,ctrlist)";//17.01.04
- tmp=Assign(tmp,"ptlist",knt);
- tmp=Assign(tmp,"ctrlist",ctr);
- Spacecurve(name+text(ii),tmp,"T=[0,1]",append(eqL,"nodisp"));
- GLIST=GLIST_(1..(length(GLIST)-2));
- out=append(out,name3+text(ii));
- );
- tmp1=[];
- forall(1..length(out),
- tmp=parse(out_#);
- if(#==1,tmp1=tmp,tmp1=concat(tmp1,tmp_(2..length(tmp))));
- );
- if(Noflg<3,
- println("generate Beziercurve "+name3);
- tmp=name3+"="+tmp1;
- parse(tmp);
- tmp1=Projpara(name3,["nodata"]);
- tmp=name2+"="+textformat(tmp1,5);
- parse(tmp);
- ptlist=apply(ptlistorg,#+"3d");
- ptlist=RSform(text(ptlist),1);
- ctrlist=[];
- forall(1..(length(ctrlistorg)/2),
- tmp=[ctrlistorg_(2*#-1),ctrlistorg_(2*#)];
- tmp=apply(tmp,#+"3d");
- ctrlist=append(ctrlist,tmp);
- );
- ctrlist=RSform(text(ctrlist),0);
- tmp=name3+"=Bezier("+ptlist+","+ctrlist+","+Dq+"Num="+text(Num)+Dq+")";
- GLIST=append(GLIST,tmp);
- tmp=name2+"=Projpara("+name3+")";
- GLIST=append(GLIST,tmp);
- );
- if(Noflg<2,
- if(isstring(Ltype),
- Ltype=GetLinestyle(text(Noflg)+Ltype,name2);
- ,
- if(Noflg==1,Ltype=0);
- );
- GCLIST=append(GCLIST,[name2,Ltype,opcindy]);
- if(SUBSCR==1, // 15.02.11
- Subgraph(name3,opcindy);
- );
- );
- out;
-);
-
-Putbezier3data(name,pt3Lorg):=Putbezier3data(name,pt3Lorg,[]);
-Putbezier3data(name,pt3Lorg,options):=( // 17.10.08 greatly changed
- regional(pt3L,psize,Deg,nn,numstr,
- tmp,tmp1,tmp2,tmp3,pts,ctrpts);
- tmp=Divoptions(options);
- Deg=3;
- tmp1=tmp_5;
- forall(tmp1,
- if(substring(#,0,1)=="D",
- tmp=indexof(#,"=");
- Deg=parse(substring(#,tmp,length(#)));
- );
- );
- pt3L=pt3Lorg;
- if(isstring(pt3L_1),pt3L=apply(pt3L,parse(#+"3d")));
- ctrpts=[];
- forall(2..length(pt3L),nn, // 16.08.19from
- numstr=text(nn-1); // 16.08.19
- if(Deg==3,
- tmp1=name+numstr+"p";
- tmp2=(2*pt3L_(nn-1)+pt3L_(nn))/3;
- VLIST=select(VLIST,#_1!=tmp1+"3d"); // 16.08.19from
- Putpoint3d([tmp1,tmp2]);
- ctrpts=append(ctrpts,tmp1);
- tmp1=name+numstr+"q";
- tmp3=(pt3L_(nn-1)+2*pt3L_nn)/3;
- VLIST=select(VLIST,#_1!=tmp1+"3d");
- Putpoint3d([tmp1,tmp3]);
- ctrpts=append(ctrpts,tmp1);
- ,
- tmp1=name+numstr+"p";
- tmp2=(pt3L_(nn-1)+pt3L_nn)/2;
- VLIST=select(VLIST,#_1!=tmp1+"3d"); // 16.08.19until
- Putpoint3d([tmp1,tmp2]);
- ctrpts=append(ctrpts,tmp1);
- );
- );
- ctrpts;
-);
-
-Mkbezierptcrv3d(ptdata):=Mkbezierptcrv3(ptdata);
-Mkbezierptcrv3d(ptdata,options):=Mkbezierptcrv3(ptdata,options);
-//help:Mkbezierptcrv3d(["A","B","C","D"]);
-Mkbezierptcrv3(ptdata):=Mkbezierptcrv3(ptdata,[]);
-Mkbezierptcrv3(ptdata,options):=( //17.10.08 greatly changed
- regional(Eps,name,bz,pt,p1,p2,p13d,p23d,pt3,
- Out,tt,pos,tmp,tmp1,tmp2);
- Eps=10^(-4);
- pos=[NE.x+1,NE.y];
- Out=[];
- tmp=floor((BezierNumber3-1)/26);// 15.02.23 from
- if(tmp==0,tmp="",tmp=text(tmp));
- tmp2=mod(BezierNumber3,26);
- if(tmp2==0,tmp2=26);
- name=unicode(text(96+tmp2),base->10)+tmp;
- tmp2=Putbezier3data(name,ptdata,options);
- Bezier3(name,ptdata,tmp2,options);
- Out=append(Out,tmp2);
- BezierNumber3=BezierNumber3+1;
- Out;
-);
-
-///////////////////////////////////////////
-
-Readobj(filename):=Readobj(filename,[]);
-Readobj(filename,options):=(
-//help:Readobj("file.obj",["size=-3"]);
- regional(eqL,size,vL,fnL,tmp,tmp1,tmp2);
- size=1;
- tmp=Divoptions(options);
- eqL=tmp_5;
- forall(eqL,
- if(Toupper(substring(#,0,1))=="S",
- tmp=indexof(#,"=");
- size=parse(substring(#,tmp,length(#)));
- );
- );
- tmp=load(filename);
- tmp=tokenize(tmp,"v");
- tmp1=tmp_(2..(length(tmp)-1));
- tmp2=tmp_(length(tmp));
- tmp2=tokenize(tmp2,"f");
- tmp1=append(tmp1,tmp2_1);
- tmp1=apply(tmp1,Removespace(#));
- tmp1=apply(tmp1,replace(#," "," "));
- tmp1=apply(tmp1,"["+replace(#," ",",")+"]");
- vL=apply(tmp1,size*parse(#));
- tmp2=tmp2_(2..(length(tmp2)));
- tmp2=apply(tmp2,Removespace(#));
- tmp2=apply(tmp2,replace(#," "," "));
- tmp2=apply(tmp2,"["+replace(#," ",",")+"]");
- fnL=apply(tmp2,parse(#));
- [vL,fnL];
-);
-
-/////////////////////////////////////////
-
-Readobj(filename,options):=(
-//help:Readobj("file.obj",["size=-3"]);
- regional(eqL,size,vL,fnL,dtL,numer,flg,flg2,
- tmp,tmp1,tmp2,tmp3,tmp4,tmp5);
- size=1;
- tmp=Divoptions(options);
- eqL=tmp_5;
- forall(eqL,
- if(Toupper(substring(#,0,1))=="S",
- tmp=indexof(#,"=");
- size=parse(substring(#,tmp,length(#)));
- );
- );
- numer="-0123456789";
- tmp=load(filename);
- dtL=tokenize(tmp,"v ");
- vL=[];
- fnL=[];
- flg=0;
- flg2=0;
- forall(dtL,dt,
- tmp1=Removespace(dt);
- if(indexof(numer,substring(tmp1,0,1))>0,
- tmp2="";
- tmp=indexof(tmp1,"f");
- if(tmp>0,
- tmp2=substring(tmp1,tmp-1,length(tmp1));
- tmp1=substring(tmp1,0,tmp-1);
- if(substring(tmp1,length(tmp1)-1,length(tmp1))=="#",
- tmp2="#"+tmp2;
- tmp1=substring(tmp1,0,length(tmp1)-1);
- );
-// tmp=indexof(tmp2,"#");
-// if(tmp>0,
-// tmp2=substring(tmp2,0,tmp-1);
-// );
- );
- if(flg==1,
- tmp1="";
- flg=0;
- );
- if(length(tmp1)>0,
- tmp=indexof(tmp1,"#");
- if(tmp>0,
- tmp1=substring(tmp1,0,tmp-1);
- flg=1;
- );
- tmp=indexof(tmp1,"vt");
- if(tmp>0,
- tmp1=substring(tmp1,0,tmp-1);
- );
- tmp1=replace(tmp1," ",",");
- tmp1=replace(tmp1," ",",");
- tmp1="["+tmp1+"]";
- tmp1=size*parse(tmp1);
- vL=append(vL,tmp1);
- );
- if(length(tmp2)>0,
- tmp2=tokenize(tmp2,"f");
- if(length(tmp2_1)==0,
- tmp2=tmp2_(2..length(tmp2));
- // ,
- // if(tmp2_1=="#",
-// tmp2=tmp2_(2..length(tmp2));
-// tmp2_1="#"+tmp2_1;
-// );
- );
- forall(1..length(tmp2),tmp3,
- tmp=tmp2_tmp3;
- if(substring(tmp,length(tmp)-1,length(tmp))=="#",
- tmp2_(tmp3+1)="#"+Removespace(tmp2_(tmp3+1));
- tmp2_tmp3=substring(tmp,0,length(tmp)-1);
- );
- tmp5="";
- if(length(tmp2_tmp3)>0,
- tmp4=tokenize(tmp2_tmp3," ");
- forall(tmp4,
- if(length(text(#))>0,
- if(indexof(text(#),"/")==0,
- tmp=text(#);
- ,
- tmp=tokenize(text(#),"/");
- tmp=tmp_1;
- );
- if(length(tmp)>0,
- tmp5=tmp5+tmp+",";
- );
- );
- );
- tmp5=substring(tmp5,0,length(tmp5)-1);
- if(length(tmp5)>0,
- if(substring(tmp5,0,1)!="#",
- tmp5="["+tmp5+"]";
- fnL=append(fnL,parse(tmp5));
- );
- );
- );
- );
- );
- );
- );
- [vL,fnL];
-);
-
-Concatobj(objL):=Concatobj(objL,[]);
-Concatobj(objL,options):=(
-//help:Concatobj([polyhed,triangle]);
-//help:Concatobj([polyhed,triangle],["Rmf=no"]);
-//help:Concatobj([[A,B,C],[A,C,D]]);
- regional(obj,vL,fL,vadd,vtx,faces,fnew,face,jj,kk,vctr,eps,
- tmp,tmp1,tmp2,tmp3,eqL,rmf);
- tmp=divoptions(options);
- eqL=tmp_5;
- rmf="y"; // 16.08.19
- forall(eqL,
- tmp=indexof(#,"=");
- tmp1=Toupper(substring(#,0,1));
- tmp2=Toupper(substring(#,tmp,tmp+1));
- if(tmp1=="R",
- if(tmp2=="Y",rmf="y"); // 16.08.14
- );
- );
- eps=10^(-4);
- vL=[];
- fL=[];
- vctr=0;
- forall(objL,obj,
- if(isstring(obj),
- tmp1=parse(obj);
- ,
- tmp1=obj;
- );
- if(length(tmp1)>2, // 16.02.28
- tmp=1..length(tmp1);
- tmp1=[tmp1,[tmp]];
- );
- vtx=tmp1_1; // 16.02.11 from
- faces=tmp1_2;
- fnew=faces;
- vctr=0;
- vadd=[];
- forall(1..length(vtx),jj,
- tmp1=vtx_jj;
- tmp=select(1..length(vL),dist3d(vL_#,tmp1)<eps);
- if(length(tmp)==0,
- vadd=append(vadd,tmp1);
- vctr=vctr+1;
- tmp2=length(vL)+vctr;
- ,
- tmp2=tmp_1;
- );
- forall(1..length(faces),kk,
- face=faces_kk;
- tmp=select(1..length(face),face_#==jj);
- if(length(tmp)>0,
- tmp1=tmp_1;
- fnew_kk_tmp1=tmp2;
- );
- );
- );
- vL=concat(vL,vadd);
- fL=concat(fL,fnew); // 16.02.11 until
- );
- tmp2=apply(1..length(fL),1);
- if(rmf=="y",
- forall(1..length(fL),jj,
- tmp=fL_jj;
- tmp1=select((jj+1)..length(fL),fL_#==tmp);
- forall(tmp1,tmp2_#=0);
- );
- tmp=select(1..length(tmp2),tmp2_#==1);
- fL=fL_tmp;
- );
- [vL,fL];
-);
-
-if(1==0,
-
-Mkobjfile(fname,objL):=Mkobjfile(Dirwork,fname,objL);
-Mkobjfile(path,fnameorg,objL):=(
-//help:Mkobj(filename,objlist);
- regional(fname,obj,vtx,face,tmp,tmp1,tmp2);
- fname=fnameorg;
- if(indexof(fname,".")==0,fname=fname+".obj");
- vtx=objL_1;
- face=objL_2;
- setdirectory(path);
- SCEOUTPUT = openfile(fname);
- forall(vtx,tmp1,
- tmp2=tmp1;
- if(ispoint(tmp1),
- tmp2=parse(text(tmp1)+"3d");
- );
- tmp="v "+format(tmp2_1,5)+" "+format(tmp2_2,5)+" "+format(tmp2_3,5);
- println(SCEOUTPUT,tmp);
- );
- forall(face,tmp1,
- tmp="f";
- forall(tmp1,
- tmp=tmp+" "+text(#);
- );
- println(SCEOUTPUT,tmp);
- );
- closefile(SCEOUTPUT);
- setdirectory(Dirwork);
-);
-
-);
-
-VertexandEdge(nm,vfnL):=VertexEdgeFace(nm,vfnL,[]);
-VertexandEdge(nm,vfnL,options):=VertexEdgeFace(nm,vfnL,options);
-VertexEdgeFace(nm,vfnL):=VertexEdgeFace(nm,vfnL,[]); // 16.02.10
-//help:VertexEdgeFace("1",[vL,fnL]);
-//help:VertexEdgeFace("1",["A","B","C"]);
-//help:VertexEdgeFace(options=["Pt=fix","Edg=geo"]);
-VertexEdgeFace(nm,vfnLorg,optionorg):=(
- regional(name3,namev,namee,namef,vfnL,options,Noflg,eqL,strL,
- vL,eL,enL,face,edge,vtx,vname,fixflg,edgflg,tmp,tmp1,tmp2);
- name3="phvef"+nm;
- namev="phv3d"+nm;
- namee="phe3d"+nm;
- namef="phf3d"+nm;
- options=optionorg;
- vfnL=vfnLorg; // 16.06.19from
- if(length(vfnL)>2,
- vfnL=[vfnL,[1..length(vfnL)]];
- );
- if(length(vfnL)==1,
- vfnL=[vfnL_1,[1..length(vfnL_1)]];
- ); // 16.06.19until
- tmp=Divoptions(options);
- Noflg=tmp_2;
- eqL=tmp_5;
- strL=tmp_7;
- fixflg=1;
- edgflg=1;
- forall(eqL,
- tmp1=Toupper(substring(#,0,1));
- tmp=indexof(#,"=");
- tmp2=Toupper(substring(#,tmp,length(#)));
- if(tmp1=="P",
- if(tmp2=="FREE", fixflg=0);
- options=remove(options,[#]);
- );
- if(tmp1=="E",
- if(substring(tmp2,0,1)=="N", edgflg=0);
- options=remove(options,[#]);
- );
- );
- forall(strL,
- if(Toupper(#)=="FREE",
- fixflg=0;
- options=remove(options,[#]);
- );
- );
- vL=[];
- forall(1..length(vfnL_1),
- vtx=vfnL_1_#; // 16.02.10 from
- if(isstring(vtx),vtx=parse(vtx)); // 16.06.19
- if(ispoint(vtx),
- tmp=parse(text(vtx)+"3d");
- vname=text(vtx);
-// tmp=parse(text(vtx)+"3d");
-// tmp="v"+text(#)+"3d="+textformat(tmp,5);
-// parse(tmp);
- ,
- vname="v"+text(#);
- if(fixflg==1,
- Putpoint3d(["v"+text(#),vtx],"fix");
- );
- );
- vL=append(vL,vname); // 16.02.10 until
- );
- eL=[];
- forall(vfnL_2,face,
- forall(1..length(face),
- tmp1=face_#;
- if(#<length(face),
- tmp2=face_(#+1);
- ,
- tmp2=face_1;
- );
- if(tmp2<tmp1,
- tmp=tmp2; tmp2=tmp1; tmp1=tmp;
- );
-// tmp1="v"+text(tmp1)+"3d";
-// tmp2="v"+text(tmp2)+"3d";
- tmp1=vL_tmp1+"3d";
- tmp2=vL_tmp2+"3d";
- tmp=select(eL,#==[tmp1,tmp2] % #==[tmp2,tmp1]);
- if(length(tmp)==0,
- eL=append(eL,[tmp1,tmp2]);
- );
- );
- );
- if(Noflg<3,
- enL=[];
- forall(eL,edge,
- if(edgflg==0,
- if(Noflg<2,
- tmp1=edge_1;//parse(edge_1);
- tmp2=edge_2;//parse(edge_2);
- tmp="sl3d"+edge_1+edge_2;
- if(islist(parse(tmp)),
- Changestyle3d([tmp],["nodisp"]);
- );
- tmp="sl3d"+edge_2+edge_1;
- if(islist(parse(tmp)),
- Changestyle3d([tmp],["nodisp"]);
- );
- tmp=replace(edge_1+edge_2,"3d","");
- options=append(options,"Msg=no");
- Spaceline("-"+tmp,[tmp1,tmp2],options); //16.02.28
- );
- enL=append(enL,tmp+"3d"); //16.02.29
- ,
- tmp1=replace(edge_1,"3d","");
- tmp2=replace(edge_2,"3d","");
- tmp=tmp1+tmp2;
- create([tmp],"Segment",[parse(tmp1),parse(tmp2)]);
- enL=append(enL,tmp+"3d");//16.02.29
- );
- );
- if(Noflg<2,
- println("generate "+name3);
- println(" generate totally "+namee);
- println(" generate vertexes "+namev);
- println(" generate faces "+namef);
- );
- tmp1="";
- forall(enL,
- tmp1=tmp1+Dq+#+Dq+",";
- );
- tmp1=substring(tmp1,0,length(tmp1)-1);
- tmp=namee+"=["+tmp1+"]";
- parse(tmp);
- tmp=namee+"=list("+tmp1+")";
- tmp=replace(tmp,Dq,"");
- GLIST=append(GLIST,tmp);
- tmp1=apply(vL,Dq+#+"3d"+Dq);
- tmp1=text(tmp1);
- tmp1=substring(tmp1,1,length(tmp1)-1);
- tmp=namev+"=["+tmp1+"]";
- parse(tmp);
- tmp1=replace(tmp1,Dq,"");
- tmp=namev+"=list("+tmp1+")";
- GLIST=append(GLIST,tmp);
- tmp1=text(vfnL_2);
- tmp1=substring(tmp1,1,length(tmp1)-1);
- tmp=namef+"=["+tmp1+"]";
- parse(tmp);
- tmp=namef+"=list("+tmp1+")";
- GLIST=append(GLIST,tmp);
- );
- [namev,namee,namef];
-);
-
-Phparadata(nm,nmvf):=(
- regional(tmp1,tmp2);
- tmp1=parse("phv3d"+nmvf);
- tmp2=parse("phf3d"+nmvf);
- Phparadata(nm,nmvf,[tmp1,tmp2]);
-);
-Phparadata(nm,nmvf,Arg1):=(
- regional(vfL,options,tmp1,tmp2);
- if(islist(Arg1) & !islist(Arg1_1),
- tmp1=parse("phv3d"+nmvf);
- tmp2=parse("phf3d"+nmvf);
- vfL=[tmp1,tmp2];
- options=Arg1;
- ,
- vfL=Arg1;
- options=[];
- );
- Phparadata(nm,nmvf,vfL,options);
-);
-Phparadata(nm,nmvf,vfL,options):=(
-//help:Phparadata("1","1",["do"]);
- regional(name2,name3,nameh2,nameh3,Ltype,Noflg,eqL,Hidden,
- opstr,opcindy,Outflg,Inflg,pdata1,tmp,tmp1,tmp2);
- name2="php2d"+nm;
- name3="php3d"+nm;
- nameh2="phh2d"+nm;
- nameh3="phh3d"+nm;
- tmp=Divoptions(options);
- Ltype=tmp_1;
- Noflg=tmp_2;
- Inflg=tmp_3;
- Outflg=tmp_4;
- if(Inflg==0 & Outflg==0, Inflg=1;Outflg=1); // 15.05.15
- eqL=tmp_5;
- opstr=tmp_(length(tmp)-1);
- opcindy=tmp_(length(tmp));
- Hidden="";
- forall(eqL,
- tmp=indexof(#,"=");
- tmp1=Toupper(substring(#,0,1));
- tmp2=substring(#,tmp,length(#));
- if(tmp1=="H",
- Hidden=tmp2;
- );
- );
- if(Noflg<3,
- if(Outflg>=1,
- println("Output Phparadata "+name3);
- if(isstring(vfL_1), // 2015.05.27 from
- tmp1=vfL_1;
- ,
- tmp1="list(";
- forall(vfL_1,
- tmp1=tmp1+#+",";
- );
- tmp1=substring(tmp1,0,length(tmp1)-1)+")";
- );
- if(isstring(vfL_2),
- tmp2=vfL_2;
- ,
- tmp2="list(";
- forall(vfL_2,
- tmp2=tmp2+text(#)+",";
- );
- tmp2=substring(tmp2,0,length(tmp2)-1)+")";
- ); // 2015.05.27 until
- tmp=name3+"=Phparadata("+tmp1+","+tmp2+opstr+")";
- GLIST=append(GLIST,tmp);
- tmp=name2+"=Projpara("+name3+")";
- GLIST=append(GLIST,tmp);
- tmp=nameh3+"=PhHiddenData()";
- GLIST=append(GLIST,tmp);
- tmp=nameh2+"=Projpara("+nameh3+")";
- GLIST=append(GLIST,tmp);
- );
- );
- if(Noflg<2,
- if(isstring(Ltype),
- Ltype=GetLinestyle(text(Noflg)+Ltype,name2);
- ,
- if(Noflg==1,Ltype=0);
- );
- if(Inflg==1,
-// tmp=apply(pltdata1,replace(#,"3d","2d")); // 15.05.18 from
- Changestyle3d("phe3d"+nmvf,["nodisp"]);
- GCLIST=append(GCLIST,[name2,Ltype,opcindy]);
- );
- );
- if(Hidden!="",
- Drawlinetype(nameh2,Hidden);
- if(Inflg==1,
- tmp1=Toupper(substring(Hidden,0,2));
- if(tmp1=="DR",Ltype=0);
- if(tmp1=="DA",Ltype=1);
- if(tmp1=="DO",Ltype=3);
- if(tmp1=="ID",Ltype=1);
- GCLIST=append(GCLIST,[nameh2,Ltype,opcindy]);
- );
- );
-);
-
-Nohiddenseg(seg,rng,triang):=(
-// help:Nohiddenseg("1",seg1,[0,1],["v1","v2","v3"]);
- regional(Eps,pA3,pB3,pC3,pA,pB,pC,sg1,sg2,ss1,ss2,parL,flgL,flg1,flg2,
- veB,veC,sgnoh,sghid,added,tristr,tmp,tmp1,tmp2,tmp3,tmp4,tmp5);
- Eps=10^(-4);
- sgnoh=[0,1];
- pA3=if(isstring(triang_1),parse(triang_1+"3d"),triang_1); //16.06.19
- pA=Parapt(pA3);
- pB3=if(isstring(triang_2),parse(triang_2+"3d"),triang_2); //16.06.19
- pB=Parapt(pB3);
- pC3=if(isstring(triang_3),parse(triang_3+"3d"),triang_3); //16.06.19
- pC=Parapt(pC3);
- sg1=seg_1+rng_1*(seg_2-seg_1);
- sg2=seg_1+rng_2*(seg_2-seg_1);
- ss1=Parapt(sg1);
- ss2=Parapt(sg2);
- tristr=replace(text(triang),",","-");
- tristr=substring(tristr,1,length(tristr)-1);
- if(|ss2-ss1|>Eps & abs(Crossprod(pB-pA,pC-pA))>Eps,
- tmp=IntersectcrvsPp([ss1,ss2],[pA,pB,pC,pA]);
- parL=apply(tmp,#_2-1);
- parL=sort(parL);
- if(length(parL)==0,
- parL=[0,1];
- ,
- if(parL_1>Eps,parL=prepend(0,parL));
- if(parL_(length(parL))<1-Eps,parL=append(parL,1));
- );
- tmp1=Crossprod(pB3-pA3,pC3-pA3);
- if(abs(Dotprod(tmp1,sg2-sg1))>Eps,
- tmp=IntersectsgpL("",[sg1,sg2],tristr,["nodisp"]);
- if(tmp_2>-Eps & tmp_2<1+Eps,
- if(tmp_3>-Eps & tmp_4>-Eps & tmp_3+tmp_4<1+Eps,
- tmp1=select(parL,abs(tmp_2-#)<Eps);
- if(length(tmp1)==0,
- parL=sort(append(parL,tmp_2));
- );
- );
- );
- );
- flgL=[];
- forall(parL,
- tmp1=sg1+#*(sg2-sg1);
- tmp=Projcoordpara(tmp1);
- tmp_3=tmp_3+1;
- tmp2=Cancoordpara(tmp);
- tmp=IntersectsgpL("",[tmp1,tmp2],tristr,["nodisp"]);
- tmp1=Projcoordpara(tmp1);
- tmp2=Projcoordpara(tmp_1);
- flg1=0;
- if(tmp1_3<tmp2_3-Eps,flg1=-1);
- if(tmp1_3>tmp2_3+Eps,flg1=1);
- flgL=append(flgL,flg1);
- );
- sgnoh=[];
- forall(2..length(flgL),
- added=[];
- flg1=flgL_(#-1);
- flg2=flgL_#;
- if(max([flg1,flg2])==1 % flg1+flg2==0,
- added=[parL_(#-1),parL_#];
- ,
- sghid=[parL_(#-1),parL_#];
- tmp1=ss1+sghid_1*(ss2-ss1);
- tmp2=ss1+sghid_2*(ss2-ss1);
- tmp=IntersectcrvsPp([tmp1,tmp2],[pA,pB,pC,pA]);
- if(length(tmp)<2,
- veB=pB-pA;
- veC=pC-pA;
- tmp3=tmp1-pA;
- tmp4=tmp2-pA;
- tmp5=Crossprod(veB,veC);
- tmp1=(tmp3_1*veC_2-tmp3_2*veC_1)/tmp5;
- tmp2=(-tmp3_1*veB_2+tmp3_2*veB_1)/tmp5;
- if(tmp1>-Eps & tmp2>-Eps & tmp1+tmp2<1+Eps,flg1=1,flg1=0);
- tmp1=(tmp4_1*veC_2-tmp4_2*veC_1)/tmp5;
- tmp2=(-tmp4_1*veB_2+tmp4_2*veB_1)/tmp5;
- if(tmp1>-Eps & tmp2>-Eps & tmp1+tmp2<1+Eps,flg2=1,flg2=0);
- if(flg1==1 & flg2==0,
- if(length(tmp)>0,
- tmp1=tmp_1_2-1;
- tmp1=sghid_1+(sghid_2-sghid_1)*tmp1;
- ,
- tmp1=sghid_1;
- );
- added=[tmp1,sghid_2];
-// added=[tmp1+Eps,sghid_2]; // <--- USUI 2016.02.27
- );
- if(flg1==0 & flg2==1,
- if(length(tmp)>0,
- tmp1=tmp_1_2-1;
- tmp1=sghid_1+(sghid_2-sghid_1)*tmp1;
- ,
- tmp1=sghid_2;
- );
- added=[sghid_1,tmp1];
- );
- if(flg1+flg2==0,
- added=sghid;
- );
- );
- if(length(tmp)==2,
- if(min([flg1,flg2])>=0,added=sghid,added=[]);
- );
- );
- if(length(added)>0,
- if(length(sgnoh)==0,
- sgnoh=added;
- ,
- if(sgnoh_(length(sgnoh))<added_1-Eps,
- sgnoh=concat(sgnoh,added);
- ,
- sgnoh=sgnoh_(1..(length(sgnoh)-1));
- sgnoh=concat(sgnoh,added_(2..length(added)));
- );
- );
- );
- );
- );
- sgnoh=apply(sgnoh,rng_1+#*(rng_2-rng_1));
- sgnoh;
-);
-
-Nohiddensegs(seg,range,faceno,vtxL):=(
- regional(Eps,rng,face,vtx,out,ra,rb,tmp,tmp1,tmp2);
- Eps=10^(-4);
- face=apply(faceno,vtxL_#); // 16.02.10
- rng=range;
- out=rng;
- forall(2..(length(face)-1),vtx,
- tmp1=[face_1,face_vtx,face_(vtx+1)];
- forall(1..(length(rng)/2),
- tmp=[rng_(2*#-1),rng_(2*#)];
- out=remove(out,tmp);
- tmp2=Nohiddenseg(seg,tmp,tmp1);
- if(length(tmp2)>0,
- out=remove(out,tmp);
- out=concat(out,tmp2);
- );
- );
- tmp=sort(out);
- out=[];
- forall(1..(length(tmp)/2),
- ra=tmp_(2*#-1);
- rb=tmp_(2*#);
- if(ra<rb-Eps,
- if(length(out)==0,
- out=[ra,rb];
- ,
- if(out_(length(out))<ra-Eps,
- out=concat(out,[ra,rb]);
- ,
- out_(length(out))=rb;
- );
- );
- );
- );
- rng=out;
- );
- rng;
-);
-
-Nohiddenbyfaces(nm,facestr):=
- Nohiddenbyfaces(nm,Datalist3d(),facestr,[],["do"]);
-Nohiddenbyfaces(nm,Arg1,Arg2):=(
- regional(segstr,facestr,options);
- if(islist(Arg2),
- segstr=Datalist3d();
- facestr=Arg1;
- options=Arg2;
- ,
- segstr=Arg1;
- facestr=Arg2;
- options=[];
- );
- Nohiddenbyfaces(nm,segstr,facestr,options,["do"]);
-);
-Nohiddenbyfaces(nm,Arg1,Arg2,Arg3):=(
- regional(segstr,facestr,options,optionsh);
- if(islist(Arg2),
- segstr=Datalist3d();
- facestr=Arg1;
- options=Arg2;
- optionsh=Arg3;
- ,
- segstr=Arg1;
- facestr=Arg2;
- options=Arg3;
- optionsh=["do"];
- );
- Nohiddenbyfaces(nm,segstr,facestr,options,optionsh); // 16.02.21
-);
-Nohiddenbyfaces(nm,segstr,facestr,optionorg,optionsh):=(
-//help:Nohiddenbyfaces("1","phf3d1");
-//help:Nohiddenbyfaces("1","ax3d","phf3d1");
-//help:Nohiddenbyfaces(options1=["dr"]);
-//help:Nohiddenbyfaces(options2=["do"]);
- regional(Eps,namen,nameh,options,segL,faceL,vtxL,rng,seg,face,
- flg,ctr,tmp,tmp1,tmp2,Ltype,Noflg,eqL,opstr,opcindy,frnL,frhL);
- Eps=10^(-4);
- namen="frn"+nm;
- nameh="frh"+nm;
- if(isstring(segstr),
-// segL=parse(segstr);
- segL=[segstr]; // 16.08.19
- ,
- segL=segstr;
- );
- tmp2=[]; // 16.02.29 from
- forall(segL,seg,
- tmp=replace(seg,"3d","2d");
- tmp1=select(GCLIST,#_1==tmp);
- tmp1=tmp1_1;
- if(tmp1_2==0,
- tmp2=append(tmp2,seg);
- );
- );
- segL=tmp2;
- Changestyle3d(segL,["nodisp"]); // 16.02.29 until
- if(islist(segL),
- if(isstring(segL_1),
- segL=apply(segL,parse(#));
- );
- );
- segL=Flattenlist(segL);
- flg=0;
- if(isstring(facestr),
- if(substring(facestr,0,3)=="phf", // 16.08.19from
- faceL=parse(facestr);
- tmp=replace(facestr,"phf","phv"); // 16.02.10 from
- tmp=parse(tmp);
- vtxL=apply(tmp,replace(#,"3d","")); // 16.02.10 until
- flg=1;
- ,
- faceL=parse(facestr);
- );
- );
- if(flg==0,
- if(length(faceL)==2, // 16.08.19until
- vtxL=facestr_1;
- faceL=facestr_2;
- ,
- vtxL=facestr;
- faceL=[1..length(vtxL)];
- );
- );
-// Hidden="";
- options=optionorg;
- tmp=Divoptions(options);
- Ltype=tmp_1;
- Noflg=tmp_2;
- eqL=tmp_5;
- opstr=tmp_(length(tmp)-1);
- opcindy=tmp_(length(tmp));
-// forall(eqL,
-// tmp=indexof(#,"=");
-// tmp1=Toupper(substring(#,0,1));
-// tmp2=substring(#,tmp,length(#));
-// if(tmp1=="H",
-// Hidden=tmp2;
-// );
-// );
-
- ctr=1;
- frnL=[];
- frhL=[];
- forall(segL,seg,
- rng=[0,1];
- forall(faceL,face,
- rng=Nohiddensegs(seg,rng,face,vtxL);
- );
- forall(1..length(rng)/2,
- tmp=rng_(2*#-1);
- tmp1=seg_1+tmp*(seg_2-seg_1);
- tmp=rng_(2*#);
- tmp2=seg_1+tmp*(seg_2-seg_1);
-// tmp=remove(options,eqL);
- tmp=append(options,"Msg=nodisp"); // 15.06.22
- Spaceline("-"+namen+"n"+text(ctr),[tmp1,tmp2],tmp);
- frnL=append(frnL,namen+"n"+text(ctr)+"3d");
- ctr=ctr+1;
- );
- if(length(rng)==0,
- rng=[0,1];
- ,
- if(rng_1>0+Eps,
- rng=prepend(0,rng);
- ,
- rng=rng_(2..length(rng));
- );
- if(rng_(length(rng))<1-Eps,
- rng=append(rng,1);
- ,
- rng=rng_(1..(length(rng)-1));
- );
- );
- forall(1..length(rng)/2,
- tmp=rng_(2*#-1);
- tmp1=seg_1+tmp*(seg_2-seg_1);
- tmp=rng_(2*#);
- tmp2=seg_1+tmp*(seg_2-seg_1);
- if(length(optionsh)>0,tmp=optionsh,tmp=["do"]);
- tmp=append(tmp,"Msg=nodisp"); // 15.06.22
- Spaceline("-"+nameh+"n"+text(ctr),[tmp1,tmp2],tmp);
- frhL=append(frhL,nameh+"n"+text(ctr)+"3d");
- ctr=ctr+1;
- );
- );
- tmp1=apply(frnL,Dq+#+Dq);
- tmp="frn3d"+nm+"="+text(tmp1);
- parse(tmp);
- println(" generate totally "+"frn3d"+nm);
- tmp1=apply(frhL,Dq+#+Dq);
- tmp="frh3d"+nm+"="+text(tmp1);
- parse(tmp);
- println(" generate totally "+"frh3d"+nm);
-);
-
-Faceremovaldata(nm,vfdata,crvdata):=Faceremovaldata(nm,vfdata,crvdata,[]);
-Faceremovaldata(nm,vfdata,crvdata,options):=(
- regional(name2,name3,nameh2,nameh3,Ltype,Noflg,eqL,Hidden,
- opstr,opcindy,Outflg,Inflg,tmp,tmp1,tmp2);
- name2="frc2d"+nm;
- name3="frc3d"+nm;
- nameh2="frch2d"+nm;
- nameh3="frch3d"+nm;
- tmp=Divoptions(options);
- Ltype=tmp_1;
- Noflg=tmp_2;
- Inflg=tmp_3;
- Outflg=tmp_4;
- if(Inflg==0 & Outflg==0, Inflg=1;Outflg=1); // 15.05.15
- eqL=tmp_5;
- opstr=tmp_(length(tmp)-1);
- opcindy=tmp_(length(tmp));
- Hidden="";
- forall(eqL,
- tmp=indexof(#,"=");
- tmp1=Toupper(substring(#,0,1));
- tmp2=substring(#,tmp,length(#));
- if(tmp1=="H",
- Hidden=tmp2;
- );
- );
- if(Noflg<3,
- if(Outflg>=1,
- println("Output Faceremovaldata "+name3);
- if(MeasureDepth(vfdata)==1,
- tmp1=text(apply(vfdata,#_[1,3]));
- ,
- tmp1=text([vfdata_[1,3]]);
- );
- tmp1=replace(tmp1,"[","list(");
- tmp1=replace(tmp1,"]",")");
- tmp2=text(crvdata);
- tmp2=replace(tmp2,"[","list(");
- tmp2=replace(tmp2,"]",")");
-// tmp2="Flattenlist("+tmp2+")";
- tmp=name3+"=Faceremovaldata("+tmp1+","+tmp2+opstr+","+Dq+"para"+Dq+")";
- GLIST=append(GLIST,tmp);
- tmp=name2+"=Projpara("+name3+")";
- GLIST=append(GLIST,tmp);
- tmp=nameh3+"=PhHiddenData()";
- GLIST=append(GLIST,tmp);
- tmp=nameh2+"=Projpara("+nameh3+")";
- GLIST=append(GLIST,tmp);
- );
- );
- if(Noflg<2,
- if(isstring(Ltype),
- Ltype=GetLinestyle(text(Noflg)+Ltype,name2);
- ,
- if(Noflg==1,Ltype=0);
- );
- if(Inflg==1,
- if(MeasureDepth(vfdata)==1,
- tmp1=apply(vfdata,parse(#_2));
- ,
- tmp1=[parse(vfdata_2)];
- );
- forall(tmp1,
- Changestyle3d(#,["nodisp"]);
- );
- Changestyle3d(crvdata,["nodisp"]);
- GCLIST=append(GCLIST,[name2,Ltype,opcindy]);
- );
- );
- if(Hidden!="",
- Drawlinetype(nameh2,Hidden);
- if(Inflg==1,
- tmp1=Toupper(substring(Hidden,0,2));
- if(tmp1=="DR",Ltype=0);
- if(tmp1=="DA",Ltype=1);
- if(tmp1=="DO",Ltype=3);
- if(tmp1=="ID",Ltype=1);
- GCLIST=append(GCLIST,[nameh2,Ltype,opcindy]);
- );
- );
-);
-
-Fullformfunc(FdL):=(
- regional(Out,nn,ii,Jrg,flg,Urg,Vrg,kk,Uname,
- Zf,Xname,Xf,Yname,Yf,tmp,tmp1,tmp2);
- Out=[FdL_1];
- nn=length(FdL);
- flg=0;
- forall(1..nn,
- if(flg==0,
- tmp=FdL_#;
- if(substring(tmp,length(tmp)-1,length(tmp))=="]",
- Jrg=#;
- Urg=FdL_Jrg;
- flg=1;
- );
- );
- );
- kk=indexof(Urg,"=");
- Uname=Removespace(substring(Urg,0,kk-1));
- tmp=substring(Urg,kk,length(Urg));
- Urg=Uname+"="+tmp;
-// tmp1=parse(tmp);
-// Urg=Uname+"="+textformat(tmp1,5);
- Vrg=FdL_(Jrg+1);
- kk=indexof(Vrg,"=");
- Vname=Removespace(substring(Vrg,0,kk-1));
- tmp=substring(Vrg,kk,length(Vrg));
- Vrg=Vname+"="+tmp;
-// tmp1=parse(tmp);
-// Vrg=Vname+"="+textformat(tmp1,5);
- if(Jrg==2,
- tmp=FdL_1;
- kk=indexof(tmp,"=");
- Zf=substring(tmp,kk,length(tmp));
- tmp=[Uname,Vname,Zf,Urg,Vrg];
- Out=concat(Out,tmp);
- ,
- if(Jrg==4,
- tmp=FdL_1;
- kk=indexof(tmp,"=");
- Zf=substring(tmp,kk,length(tmp));
- tmp=FdL_2;
- kk=indexof(tmp,"=");
- Xname=Removespace(substring(tmp,0,kk-1));
- Xf=substring(tmp,kk,length(tmp));
- tmp=FdL_3;
- kk=indexof(tmp,"=");
- Yname=Removespace(substring(tmp,0,kk-1));
- Yf=substring(tmp,kk,length(tmp));
- tmp=replace(Zf,Xname,"("+Xf+")");
- Zf=replace(tmp,Yname,"("+Yf+")");
- Tmp=[Xf,Yf,Zf,Urg,Vrg];
- Out=concat(Out,Tmp);
- ,
- tmp=FdL_2;
- kk=indexof(tmp,"=");
- Xf=substring(tmp,kk,length(tmp));
- tmp=FdL_3;
- kk=indexof(tmp,"=");
- Yf=substring(tmp,kk,length(tmp));
- tmp=FdL_4;
- kk=indexof(tmp,"=");
- Zf=substring(tmp,kk,length(tmp));
- tmp=[Xf,Yf,Zf,Urg,Vrg];
- Out=concat(Out,tmp);
- );
- );
- DrwS="enws";
- BdyL=[];
- forall((Jrg+2)..length(FdL),ii,
- tmp=FdL_ii;
- if(isstring(tmp),
- if(length(tmp)==0,
- tmp=" ";
- );
- DrwS=tmp;
- );
- if(islist(tmp) & length(tmp_1)>1,
- BdyL=tmp;
- );
- );
- tmp=[DrwS,BdyL];
- Out=concat(Out,tmp);
-);
-
-Surffun(nm,Fd):=(
- regional(name,coord,var1,var2,rng1,rng2,bdy,tmp,tmp1,tmp2);
- tmp=Fullformfunc(Fd);
- rng1=tmp_5;
- rng2=tmp_6;
- bdy=tmp_7;
- coord="["+tmp_2+","+tmp_3+","+tmp_4+"]";
- tmp=indexof(rng1,"=");
- var1=substring(rng1,0,tmp-1);
- rng1=substring(rng1,tmp,length(rng1));
- tmp=indexof(rng2,"=");
- var2=substring(rng2,0,tmp-1);
- rng2=substring(rng2,tmp,length(rng2));
- name="Sfn"+nm+"("+var1+","+var2+")";
- Deffun(name,["regional(tmp)","tmp="+coord,"tmp"]);
- [name,var1,rng1,var2,rng2,bdy];
-);
-
-Sf3data(nm,fdata):=Sf3data(nm,fdata,[]);
-Sf3data(nm,fdata,optionorg):=(
- regional(tmp,tmp1,tmp2);
- tmp=Surffun(nm,fdata);
- tmp1=tmp_2+"="+tmp_3;
- tmp2=tmp_4+"="+tmp_5;
- Sf3data(nm,tmp_1,tmp1,tmp2,optionorg);
-);
-Sf3data(nm,funstr,var1,var2):=Sf3data(nm,funstr,var1,var2,[]);
-Sf3data(nm,funstr,var1org,var2org,optionorg):=(
-//help:Sf3data("1",Fd);
-//help:Sf3data(options=["Num=[25,25]","Wire=[20,20]"]);
- regional(name2,name3,var1,var2,Ltype,Noflg,opstr,opcindy,eqL,Num,
- Wire,varu,varv,rngu,rngv,sfdtuL,sfdtvL,options,
- tmp,tmp1,tmp2,tmp3);
- var1=replace(var1org,"%pi","pi");
- var2=replace(var2org,"%pi","pi");
- tmp=Divoptions(optionorg);
- Ltype=tmp_1;
- Noflg=tmp_2;
- eqL=tmp_5;
- opstr=tmp_(length(tmp)-1);
- opcindy=tmp_(length(tmp));
- options=optionorg;
- Num=[25,25];
- Wire=[20,20];
- forall(eqL,
- tmp=indexof(#,"=");
- tmp1=substring(#,0,tmp-1);
- tmp2=substring(#,tmp,length(#)); // 16.05.25
- tmp=Toupper(substring(tmp1,0,1));
- if(tmp=="N",
- tmp2=parse(tmp2);
- if(!islist(tmp2),tmp2=[tmp2,tmp2]);
- Num=tmp2;
- options=remove(options,[#]);
- );
- if(tmp=="W",
- tmp2=parse(tmp2);
- if(!islist(tmp2),tmp2=[tmp2,tmp2]);
- Wire=tmp2;
- options=remove(options,[#]);
- );
- );
- tmp=indexof(var1,"=");
- varu=substring(var1,0,tmp-1);
- rngu=parse(substring(var1,tmp,length(var1)));
- tmp=indexof(var2,"=");
- varv=substring(var2,0,tmp-1);
- rngv=parse(substring(var2,tmp,length(var2)));
- sfdtuL=[];
- forall(0..Wire_2,
- tmp=rngv_1+#/Wire_2*(rngv_2-rngv_1);
- tmp1=replace(funstr,varv,textformat(tmp,5));
- tmp="Num="+text(Num_2);
- tmp2=concat(options,["Msg=no",tmp]);
- Spacecurve(nm+"u"+#,tmp1,var1,tmp2);
- sfdtuL=append(sfdtuL,"sc3d"+nm+"u"+#);
- );
- sfdtvL=[];
- forall(0..Wire_1,
- tmp=rngu_1+#/Wire_1*(rngu_2-rngu_1);
- tmp1=replace(funstr,varu,textformat(tmp,5));
- tmp="Num="+text(Num_1);
- tmp2=concat(options,["Msg=no",tmp]);
- Spacecurve(nm+"v"+#,tmp1,var2,tmp2);
- sfdtvL=append(sfdtvL,"sc3d"+nm+"v"+#);
- );
- if(Noflg<3,
- println(" generate totally "+"sf3d"+nm);
- tmp1="";
- forall(sfdtuL,
- tmp1=tmp1+Dq+#+Dq+",";
- );
- tmp1=substring(tmp1,0,length(tmp1)-1);
- tmp2="";
- forall(sfdtvL,
- tmp2=tmp2+Dq+#+Dq+",";
- );
- tmp2=substring(tmp2,0,length(tmp2)-1);
- tmp="sf3d"+nm+"=[["+tmp1+"],["+tmp2+"]]";
- parse(tmp);
- );
- [sfdtuL,sfdtvL];
-);
-
-Sfbdparadata(nm,fd):=
- Sfbdparadata(nm,fd,[],["nodisp"]);
-Sfbdparadata(nm,fd,options):=
- Sfbdparadata(nm,fd,options,["nodisp"]);
-Sfbdparadata(nm,fdorg,optionorg,optionsh):=(
-//help:Sfbdparadata("1",Fd);
-//help:Sfbdparadata(options2=["Wait=60",division(c(50,50)),Eps1(c(0.01,1)), Eps2(0.05)]);
- regional(fd,options,name2,name3,name2h,name3h,waiting,
- eqL,reL,strL,fname,tmp,tmp1,tmp2,flg,wflg);
- name2="sfbd2d"+nm;
- name3="sfbd3d"+nm;
- name2h="sfbdh2d"+nm;
- name3h="sfbdh3d"+nm;
- fname=Fhead+"sfbd"+nm+".txt";
- tmp=apply(fdorg,if(isstring(#),"'"+#+"'",#));
- tmp=text(tmp);
- fd=RSform(tmp,2);
- options=optionorg;
- tmp=Divoptions(options);
- eqL=tmp_5;
- reL=tmp_6;
- strL=tmp_7;
- waiting=120;
- forall(eqL,
- tmp=indexof(#,"=");
- tmp1=Toupper(substring(#,0,1));
- tmp2=substring(#,tmp,length(#));
- if(tmp1=="W",
- waiting=parse(tmp2);
- options=remove(options,[#]);
- );
- );
- options=remove(options,reL);
- wflg=0;
- forall(strL,
- tmp=Toupper(substring(#,0,1));
- if(tmp=="M",
- wflg=1;
- options=remove(options,[#]);
- );
- if(tmp=="R",
- wflg=-1;
- options=remove(options,[#]);
- );
- );
- tmp=["fd"+nm];
- if(length(reL)>0,
- reL=textformat(reL,4);
- reL=substring(reL,1,length(reL)-1);
- reL=Rsform(reL);
- tmp=append(tmp,reL);
- );
- tmp1=[Dqq(fname),Dqq(name3),name3,Dqq(name2),name2];
- tmp1=concat(tmp1,[Dqq(name3h),name3h,Dqq(name2h),name2h]);
-// tmp1=concat(tmp1,[Dqq("CUSPPT"),"CUSPPT"]);
-// tmp1=concat(tmp1,[Dqq("OTHERPARTITION"),"OTHERPARTITION"]);
- tmp2=replace(fname,".txt",".dat"); //18.02.18
- cmdL=[
- "print",[Dqq("fd"+nm)], //18.02.22
- "fd"+nm+"="+fd,[],
- name3+"=Sfbdparadata",tmp,
- name2+"=Projpara",[name3],
- name3h+"=HIDDENDATA",[],
- name2h+"=Projpara",[name3h],
- "WriteOutData",tmp1,
- "save",["CUSPPT","OTHERPARTITION","file='"+tmp2+"'"]
- ];
- tmp=replace(fname,".txt","end.txt");
- options=concat(options,["Out=no","Wait="+text(waiting),"Res="+tmp]);
- if(wflg==1,options=append(options,"m"));
- if(wflg==-1,options=append(options,"r"));
- if(ErrFlag==0,
- CalcbyR("sfbd"+nm,cmdL,options);
- );
- if(ErrFlag==1,
- err("Sfbdparadata not completed");
- ,
- ReadOutData(fname);
- if(islist(parse(name2)),
- Extractdata(name2,options);
- if(length(optionsh)>0,tmp=optionsh,tmp=["nodisp"]);
- Extractdata(name2h,tmp);
- ,
- ErrFlag=1;
- );
- );
-);
-
-Addpoints():=(//18.02.20
- if(isstring(ADDPOINT),
- ADDPOINT;
- ,
- "list()";
- );
-);
-Addpoints(ptlist):=(
-//help:Addpoints(list of 3d points);
- if(length(ptlist)==0,
- ADDPOINT="list()";
- ,
- ADDPOINT=Rsform(textformat(ptlist,6),2);
- );
- ADDPOINT;
-);
-
-Wireparadata(nm,sf,wr1,wr2,fd):=
- Wireparadata(nm,sf,fd,wr1,wr2,[],["nodisp"]);
-Wireparadata(nm,sf,fd,wr1,wr2,options):=
- Wireparadata(nm,sf,fd,wr1,wr2,options,["nodisp"]);
-Wireparadata(nm,sfstr,fdorg,wr1,wr2,optionorg,optionsh):=(
-//help:Wireparadata("1","sfbd3d1",fd,5,5);
-//help:Wireparadata(options2=[division(c(50,50)),Eps1(0.01), Eps2(0.05)]);
- regional(fd,options,name2,name3,name2h,name3h,outreg,
- eqL,reL,strL,fname,rfname,waiting,tmp,tmp1,tmp2,flg,wflg);
- name2="wire2d"+nm;
- name3="wiref3d"+nm;
- name2h="wireh2d"+nm;
- name3h="wireh3d"+nm;
- fname=Fhead+"wire"+nm+".txt";
- rfname=Fhead+sfstr+".txt";
- rfname=replace(rfname,"3d","");
- tmp=apply(fdorg,if(isstring(#),"'"+#+"'",#));
- tmp=text(tmp);
- fd=RSform(tmp,2);
- options=optionorg;
- tmp=Divoptions(options);
- eqL=tmp_5;
- reL=tmp_6;
- strL=tmp_7;
- waiting=600;
- forall(eqL,
- tmp=indexof(#,"=");
- tmp1=Toupper(substring(#,0,1));
- tmp2=substring(#,tmp,length(#));
- if(tmp1=="W",
- waiting=parse(tmp2);
- options=remove(options,[#]);
- );
- );
- options=remove(options,reL);
- wflg=0;
- forall(strL,
- tmp=Toupper(substring(#,0,1));
- if(tmp=="M",
- wflg=1;
- options=remove(options,[#]);
- );
- if(tmp=="R",
- wflg=-1;
- options=remove(options,[#]);
- );
- );
- tmp1=textformat(wr1,6);
- tmp1=Rsform(tmp1,1);
- tmp2=textformat(wr2,6);
- tmp2=Rsform(tmp2,1);
- tmp=[sfstr,"fd"+nm,tmp1,tmp2];
- reL=RSform(text(reL),2);
- reL=substring(reL,5,length(reL)-1);
- if(length(reL)>0,
- reL=textformat(reL,4);
- reL=substring(reL,1,length(reL)-1);
- reL=Rsform(reL);
- tmp=append(tmp,reL);
- );
- tmp1=[Dqq(fname),Dqq(name3),name3,Dqq(name2),name2];
- tmp1=concat(tmp1,[Dqq(name3h),name3h,Dqq(name2h),name2h]);
- tmp2=replace(rfname,".txt",".dat");
- cmdL=[
- "print",[Dqq("wire"+nm)], //18.02.22
- "fd"+nm+"="+fd,[],
- "ReadOutData",[Dqq(rfname)],
- "load",[Dqq(tmp2)],
- "Addpoints",[Addpoints()],
- name3+"=Wireparadata",tmp,
- name2+"=Projpara",[name3],
- name3h+"=WIREHIDDENDATA",[],
- name2h+"=Projpara",[name3h],
- "WriteOutData",tmp1
- ];
- tmp=replace(fname,".txt","end.txt");
- options=concat(options,["Out=no","Wait="+text(waiting),"Res="+tmp]);
- if(wflg==1,options=concat(options,["m"]));
- if(wflg==-1,options=concat(options,["r"]));
- if(ErrFlag==0,
- CalcbyR("wire"+nm,cmdL,options);
- );
- if(ErrFlag==1,
- err("Wireparadata not completed");
- ,
- ReadOutData(fname);
- if(islist(parse(name2)),
- Extractdata(name2,options);
- if(length(optionsh)>0,tmp=optionsh,tmp=["nodisp"]);
- Extractdata(name2h,tmp);
- ,
- ErrFlag=1;
- );
- );
-);
-
-Crvsfparadata(nm,crv,sf,fd):=
- Crvsfparadata(nm,crv,sf,fd,[],["nodisp"]);
-Crvsfparadata(nm,crv,sf,fd,options):=
- Crvsfparadata(nm,crv,sf,fd,options,["nodisp"]);
-Crvsfparadata(nm,crvstr,sfstr,fdorg,optionorg,optionsh):=(
-//help:Crvsfparadata("1","ax3d","sfbd3d1",fd);
-//help:Crvsfparadata(options2=[division(c(50,50)),Eps1(0.01), Eps2(0.05)]);
- regional(gd,out,fd,options,name2,name3,name2h,name3h,
- eqL,reL,strL,fname,rfname,waiting,tmp,tmp1,tmp2,tmp3,flg,wflg);
- tmp=replace(crvstr,"3d","2d");
- Changestyle(tmp,["nodisp"]);
- name2="crvsf2d"+nm;
- name3="crvsf3d"+nm;
- name2h="crvsfh2d"+nm;
- name3h="crvsfh3d"+nm;
- fname=Fhead+"crvsf"+nm+".txt";
- rfname=Fhead+sfstr+".txt";
- rfname=replace(rfname,"3d","");
- tmp=apply(fdorg,if(isstring(#),"'"+#+"'",#));
- tmp=text(tmp);
- fd=RSform(tmp,2);
- options=optionorg;
- tmp=Divoptions(options);
- eqL=tmp_5;
- reL=tmp_6;
- strL=tmp_7;
- waiting=120;
- forall(eqL,
- tmp=indexof(#,"=");
- tmp1=Toupper(substring(#,0,1));
- tmp2=substring(#,tmp,length(#));
- if(tmp1=="W",
- waiting=parse(tmp2);
- options=remove(options,[#]);
- );
- );
- options=remove(options,reL);
- wflg=0;
- forall(strL,
- tmp=Toupper(substring(#,0,1));
- if(tmp=="M",
- wflg=1;
- options=remove(options,[#]);
- );
- if(tmp=="R",
- wflg=-1;
- options=remove(options,[#]);
- );
- );
- reL=RSform(text(reL),2);
- reL=substring(reL,5,length(reL)-1);
- tmp=[crvstr,sfstr,"fd"+nm];
- if(length(reL)>0,
- reL=textformat(reL,4);
- reL=substring(reL,1,length(reL)-1);
- reL=Rsform(reL);
- tmp=append(tmp,reL);
- );
- tmp1=[DqDq(fname),DqDq(name3),name3,DqDq(name2),name2];
- tmp1=concat(tmp1,[DqDq(name3h),name3h,DqDq(name2h),name2h]);
- tmp2=replace(rfname,".txt",".dat");
- cmdL=[
- "print",[Dqq("crv"+nm)], //18.02.22
- "fd"+nm+"="+fd,[],
- "ReadOutData",[Dqq(rfname)],
- "load",[Dqq(tmp2)],
- "Addpoints",[Addpoints()]
- ];
- tmp3=select(GLIST,indexof(#,crvstr+"=")>0); //18.02.22from
- if(length(tmp3)==0,
- tmp3=Fhead+crvstr+".txt";
- tmp3=replace(tmp3,"3d","");
- cmdL=concat(cmdL,[
- "ReadOutData",[Dqq(tmp3)]
- ]);
- ); //18.02.22until
- cmdL=concat(cmdL,[
- name3+"=Crvsfparadata",tmp,
- name2+"=Projpara",[name3],
- name3h+"=CRVSFHIDDENDATA",[],
- name2h+"=Projpara",[name3h],
- "WriteOutData",tmp1
- ]);
- tmp=replace(fname,".txt","end.txt");
- options=concat(options,["Out=no","Wait="+text(waiting),"Res="+tmp]);
- if(wflg==1,options=append(options,"m"));
- if(wflg==-1,options=append(options,"r"));
- if(ErrFlag==0,
- CalcbyR("crvsf"+nm,cmdL,options);
- );
- if(ErrFlag==1,
- err("Crvsfparadata not completed");
- ,
- ReadOutData(fname);
- if(islist(parse(name2)),
- Extractdata(name2,options);
- if(length(optionsh)>0,tmp=optionsh,tmp=["nodisp"]);
- Extractdata(name2h,tmp);
- ,
- ErrFlag=1;
- );
- );
-);
-
-Crvonsfparadata(nm,crv2d,sf,fd):=
- Crvsonfparadata(nm,crv2d,sf,fd,[],["nodisp"]);
-Crvonsfparadata(nm,crv2d,sf,fd,options):=
- Crvonsfparadata(nm,crv2d,sf,fd,options,["nodisp"]);
-Crvonsfparadata(nm,crv2dstr,sfstr,fdorg,optionorg,optionsh):=(
-//help:Crvonsfparadata("1",["[1,t]","t=[0,2*pi]","Num=50"],"sfbd3d1",fd);
-//help:Crvonsfparadata(options2=[division(c(50,50)),Eps1(0.01), Eps2(0.05)]);
- regional(gd,out,fd,options,name2,name3,name2h,name3h,
- eqL,reL,strL,fname,rfname,waiting,tmp,tmp1,tmp2,tmp3,flg,wflg);
- name2="crvonsf2d"+nm;
- name3="crvonsf3d"+nm;
- name2h="crvonsfh2d"+nm;
- name3h="crvonsfh3d"+nm;
- fname=Fhead+"crvonsf"+nm+".txt";
- rfname=Fhead+sfstr+".txt";
- rfname=replace(rfname,"3d","");
- tmp=apply(fdorg,if(isstring(#),Dqq(#),#));
- tmp=text(tmp);
- fd=RSform(tmp,2);
- options=optionorg;
- tmp=Divoptions(options);
- eqL=tmp_5;
- reL=tmp_6;
- strL=tmp_7;
- waiting=120;
- forall(eqL,
- tmp=indexof(#,"=");
- tmp1=Toupper(substring(#,0,1));
- tmp2=substring(#,tmp,length(#));
- if(tmp1=="W",
- waiting=parse(tmp2);
- options=remove(options,[#]);
- );
- );
- options=remove(options,reL);
- wflg=0;
- forall(strL,
- tmp=Toupper(substring(#,0,1));
- if(tmp=="M",
- wflg=1;
- options=remove(options,[#]);
- );
- if(tmp=="R",
- wflg=-1;
- options=remove(options,[#]);
- );
- );
- if(isstring(crv2dstr),
- crv=Rsform(crv2dstr);
- ,
- crv=apply(crv2dstr,Dqq(#));
- crv=Rsform(text(crv));
- crv="Paramplot"+substring(crv,1,length(crv));
- );
- reL=RSform(text(reL),2);
- reL=substring(reL,5,length(reL)-1);
- tmp=["crv",sfstr,"fd"+nm];
- if(length(reL)>0,
- reL=textformat(reL,4);
- reL=substring(reL,1,length(reL)-1);
- reL=Rsform(reL);
- tmp=append(tmp,reL);
- );
- tmp1=[Dqq(fname),Dqq(name3),name3,Dqq(name2),name2];
- tmp1=concat(tmp1,[Dqq(name3h),name3h,Dqq(name2h),name2h]);
- tmp2=replace(rfname,".txt",".dat");
- cmdL=[
- "print",[Dqq("crvonsf"+nm)], //18.02.22
- "fd"+nm+"="+fd,[],
- "ReadOutData",[Dqq(rfname)],
- "load",[Dqq(tmp2)],
- "Addpoints",[Addpoints()],
- "crv="+crv,[],
- name3+"=Crvonsfparadata",tmp,
- name2+"=Projpara",[name3],
- name3h+"=HIDDENDATA",[],
- name2h+"=Projpara",[name3h],
- "WriteOutData",tmp1
- ];
- tmp=replace(fname,".txt","end.txt");
- options=concat(options,["Out=no","Wait="+text(waiting),"Res="+tmp]);
- if(wflg==1,options=append(options,"m"));
- if(wflg==-1,options=append(options,"r"));
- if(ErrFlag==0,
- CalcbyR("crvonsf"+nm,cmdL,options);
- );
- if(ErrFlag==1,
- err("Crvonsfparadata not completed");
- ,
- ReadOutData(fname);
- if(islist(parse(name2)),
- Extractdata(name2,options);
- if(length(optionsh)>0,tmp=optionsh,tmp=["nodisp"]);
- Extractdata(name2h,tmp);
- ,
- ErrFlag=1;
- );
- );
-);
-
-Intersectcrvsf(nm,crv,fd):=Intersectcrvsf(nm,crv,fd,"",[]);
-Intersectcrvsf(nm,crv,fd,Arg):=(
- if(isstring(Arg),
- Intersectcrvsf(nm,crv,fd,Arg,[]);
- ,
- Intersectcrvsf(nm,crv,fd,"",Arg);
- );
-);
-Intersectcrvsf(nm,crvstr,fdorg,bdyeq,optionorg):=(
-//help:Intersectcrvsf("1",curve,fd);
-//help:Intersectcrvsf("1",curve,fd,curveequation);
-//help:Intersectcrvsf(options=[Np([50,50]),Eps(0.01)]);
- regional(name,crv,fd,options,reL,fname,crvfname,argR,
- waiting,tmp,tmp1,tmp2,flg,wflg,pts); name="crvsf"+nm;
- name="crvsf"+nm;
- fname=Fhead+name+".txt";
- crvfname=Fhead+"crv"+nm+".txt";
-// crv=parse(crvstr);
-// crv=textformat(crv,6);
-// crv=Rsform(crv,2);
- fd=apply(fdorg,if(isstring(#),Dqq(#),#));
- options=optionorg;
- tmp=Divoptions(options);
- eqL=tmp_5;
- reL=tmp_6;
- strL=tmp_7;
- waiting=120;
- forall(eqL,
- tmp=indexof(#,"=");
- tmp1=Toupper(substring(#,0,1));
- tmp2=substring(#,tmp,length(#));
- if(tmp1=="W",
- waiting=parse(tmp2);
- options=remove(options,[#]);
- );
- );
- options=remove(options,reL);
- wflg=0;
- forall(strL,
- tmp=Toupper(substring(#,0,1));
- if(tmp=="M",
- wflg=1;
- options=remove(options,[#]);
- );
- if(tmp=="R",
- wflg=-1;
- options=remove(options,[#]);
- );
- );
- tmp=apply(fdorg,if(isstring(#),"'"+#+"'",#));
- tmp=text(tmp);
- fd=RSform(tmp,2);
- tmp=textformat(reL,4);
- tmp=substring(tmp,1,length(tmp)-1);
- tmp=Rsform(tmp);
- if(length(bdyeq)>0,
- argR=","+Dqq(bdyeq);
- ,
- argR="";
- );
- if(length(tmp)>0,
- argR=argR+","+tmp;
- );
- tmp1=[Dqq(fname),Dqq(name),"tmp"];
- cmdL=[
- "print",[Dqq("crvsf"+nm)], //18.02.22
- "crv="+crvstr,[],
- "fd="+fd,[],
- "tmp1=Intersectcrvsf(crv,fd"+argR+")",[],
- "tmp=c()",[],
- "for(j in Looprange(1,length(tmp1))){",[],
- " tmp=Appendrow(tmp,tmp1[[j]])",[],
- "}",[],
- "WriteOutData",tmp1,
- "tmp",[]
- ];
- tmp=replace(fname,".txt","end.txt");
- options=concat(options,["Out=no","Wait="+text(waiting),"Res="+tmp]);
- if(wflg==1,options=append(options,"m"));
- if(wflg==-1,options=append(options,"r"));
- if(ErrFlag==1,
- err("Crvsfparadata not completed");
- ,
- CalcbyR("ans",cmdL,options);
- ReadOutData(fname);
- );
- println("generate "+name);
- parse(name);
-);
-
-Sfcutparadata(nm,eqstr,sf,fd):=
- Sfcutparadata(nm,eqstr,sf,fd,[]);
-Sfcutparadata(nm,eqstr,sf,fd,options):=
- Sfcutparadata(nm,eqstr,sf,fd,options,["nodisp"]);
-Sfcutparadata(nm,eqstr,sf,fdorg,optionorg,optionsh):=(
-//help:Sfcutparadata("1","x+y+z=1","sfbd3d1",fd,"x+y+z=1");
-//help:Sfcutparadata(options2=[division(c(50,50)),Eps1(0.01), Eps2(0.05)]);
- regional(gd,out,fd,options,name2,name3,name2h,name3h,
- eqL,reL,strL,fname,rfname,waiting,tmp,tmp1,tmp2,tmp3,flg,wflg);
- tmp=replace(sfcut,"3d","2d");
- Changestyle(tmp,["nodisp"]);
- name2="sfcut2d"+nm;
- name3="sfcut3d"+nm;
- name2h="sfcuth2d"+nm;
- name3h="sfcuth3d"+nm;
- fname=Fhead+"sfcut"+nm+".txt";
- rfname=Fhead+sf+".txt";
- rfname=replace(rfname,"3d","");
- tmp=apply(fdorg,if(isstring(#),"'"+#+"'",#));
- tmp=text(tmp);
- fd=RSform(tmp,2);
- options=optionorg;
- tmp=Divoptions(options);
- eqL=tmp_5;
- reL=tmp_6;
- strL=tmp_7;
- waiting=120;
- forall(eqL,
- tmp=indexof(#,"=");
- tmp1=Toupper(substring(#,0,1));
- tmp2=substring(#,tmp,length(#));
- if(tmp1=="W",
- waiting=parse(tmp2);
- options=remove(options,[#]);
- );
- );
- options=remove(options,reL);
- wflg=0;
- forall(strL,
- tmp=Toupper(substring(#,0,1));
- if(tmp=="M",
- wflg=1;
- options=remove(options,[#]);
- );
- if(tmp=="R",
- wflg=-1;
- options=remove(options,[#]);
- );
- );
- reL=RSform(text(reL),2);
- reL=substring(reL,5,length(reL)-1);
- tmp=[Dqq(eqstr),sf,"fd"+nm];
- if(length(reL)>0,
- reL=textformat(reL,4);
- reL=substring(reL,1,length(reL)-1);
- reL=Rsform(reL);
- tmp=append(tmp,reL);
- );
- tmp1=[DqDq(fname),DqDq(name3),name3,DqDq(name2),name2];
- tmp1=concat(tmp1,[DqDq(name3h),name3h,DqDq(name2h),name2h]);
- tmp2=replace(rfname,".txt",".dat");
- cmdL=[
- "print",[Dqq("sfcut"+nm)], //18.02.22
- "fd"+nm+"="+fd,[],
- "ReadOutData",[Dqq(rfname)],
- "load",[Dqq(tmp2)],
- name3+"=Sfcutparadata",tmp,
- name2+"=Projpara",[name3],
- name3h+"=CRVONSFHIDDENDATA",[],
- name2h+"=Projpara",[name3h],
- "WriteOutData",tmp1
- ];
- tmp=replace(fname,".txt","end.txt");
- options=concat(options,["Out=no","Wait="+text(waiting),"Res="+tmp]);
- if(wflg==1,options=append(options,"m"));
- if(wflg==-1,options=append(options,"r"));
- if(ErrFlag==0,
- CalcbyR("sfcut"+nm,cmdL,options);
- );
- if(ErrFlag==1,
- err("Sfcutparadata not completed");
- ,
- ReadOutData(fname);
- if(islist(parse(name2)),
- Extractdata(name2,options);
- if(length(optionsh)>0,tmp=optionsh,tmp=["nodisp"]);
- Extractdata(name2h,tmp);
- ,
- ErrFlag=1;
- );
- );
-);
-
-Skeletonparadata(nm):=Skeletondatacindy(nm,[]);
-Skeletonparadata(nm,options):=Skeletondatacindy(nm,options);
-Skeletonparadata(nm,pltdata1,pltdata2):=Skeletondatacindy(nm,pltdata1,pltdata2);
-Skeletonparadata(nm,pltdata1org,pltdata2org,options):=
- Skeletondatacindy(nm,pltdata1org,pltdata2org,options);
-
-
-////////////// new skeleton 2018.01.04 not completed and slow////////////////
-
-Skeletondatacindy(nm):=Skeletondatacindy(nm,[]);
-Skeletondatacindy(nm,options):=(
- regional(tmp);
- tmp=Datalist3d();
- Skeletondatacindy(nm,tmp,tmp,options);
-);
-Skeletondatacindy(nm,pltdata1,pltdata2):=
- Skeletondatacindy(nm,pltdata1,pltdata2,[]);
-Skeletondatacindy(nm,pltdata1org,pltdata2org,options):=(
-//help:Skeletonparadata("1");
-//help:Skeletonparadata("1",[pdata1,pdata2],[pdata3]);
-//help:Skeletondata(options2=[1(width)]);
- regional(Eps,Eps2,name2,name3,Ltype,Noflg,reL,opcindy,
- Data,Out,ObjL,Plt3L,Rr,pltdata1,pltdata2,Plt2L,ObjL,ii,Data,
- Obj3,jj,Gd,PtD,size,tmp,tmp1,tmp2);
- name2="sk2d"+nm;
- name3="sk3d"+nm;
- pltdata1=[];// 16.01.31
- forall(pltdata1org,tmp1,
- tmp=parse(tmp1);
- pltdata1=append(pltdata1,tmp);
- );
- pltdata2=[];// 16.01.31
- forall(pltdata2org,tmp1,
- tmp=parse(tmp1);
- pltdata2=append(pltdata2,tmp);
- );
- tmp=Divoptions(options);
- Ltype=tmp_1;
- Noflg=tmp_2;
- reL=tmp_6; //16.02.28
- opcindy=tmp_9;
- Rr=0.15*1000/2.54/MilliIn;
- size=1;
- Eps2=0.05;
- if(length(reL)>0, //16.02.28
- size=reL_1;
- Rr=size*Rr;
- if(length(reL)>1,Eps2=reL_2);
- );
- Eps=10^(-4);
- ObjL=Flattenlist(pltdata1);
- PltL=Flattenlist(pltdata2);
- Data=Makeskeletondata(ObjL,PltL,Rr);
- Out=select(Data,length(Projcurve(#))>0);
- Out=Flattenlist(Out);
- tmp1=apply(Out,textformat(#,5));
- tmp=name3+"="+tmp1;
- parse(tmp);
- tmp=name2+"=Projcurve("+name3+");";
- parse(tmp);
- Changestyle3d(pltdata1org,["nodisp"]);
- if(Noflg<3,
- println("generate skeleton :"+name3);
- tmp1=text(pltdata1org);
- tmp1="list("+substring(tmp1,1,length(tmp1)-1)+")";
- tmp2=text(pltdata2org);
- tmp2="list("+substring(tmp2,1,length(tmp2)-1)+")";
- tmp=name3+"=Skeletonpara3data("+tmp1+","+tmp2+",";
- tmp=tmp+text(size)+")";
- GLIST=append(GLIST,tmp);
- tmp=name2+"=Projpara("+name3+")";
- GLIST=append(GLIST,tmp);
- );
- if(Noflg<2,
- if(isstring(Ltype),
- Ltype=GetLinestyle(text(Noflg)+Ltype,name2);
- ,
- if(Noflg==1,Ltype=0);
- );
- GCLIST=append(GCLIST,[name2,Ltype,opcindy]);
- if(SUBSCR==1,
- Subgraph(name3,opcindy);
- );
- );
- Out;
-);
-
-Makeskeletondata(ObjL,PltL,R0):=(
- regional(Allres,res,Eps1,obj,plt,obj2,remov,flg,koc,z1,z2,Rr,str,
- mm,nn,kk,ptk,pL,pt,ptL,tmp,tmp1,tmp2,tmp3,tmp3d);
- Eps1=10.0^(-2);
- Allres=[];
- forall(1..(length(ObjL)),mm,
- obj=ObjL_mm;
- remov=[];
- obj2=Projcurve(obj);
- forall(1..(length(PltL)),nn,
- plt=PltL_nn;
- tmp=Projcurve(plt);
- koc=IntersectcurvesPp(obj2,tmp);
- forall(1..(length(koc)),kk,
- ptk=koc_kk;
- tmp=PointonCurve(ptk_2,obj);
- z1=Zparapt(tmp);
- tmp=PointonCurve(ptk_3,plt);
- z2=Zparapt(tmp);
- if(z1<z2-Eps1,
- tmp=max([sqrt(1-(ptk_5)^2),0.75]);
- Rr=R0/tmp;
- tmp2=[];
- flg=0;
- tmp=reverse(1..(floor(ptk_2)));
- forall(tmp,
- if(flg==0,
- if(|obj2_#-ptk_1|>Rr,
- tmp2=[#];
- flg=1;
- );
- );
- );
- if(length(tmp2)==0,tmp2=[1]);
- flg=0;
- tmp=(ceil(ptk_2))..(length(obj2));
- forall(tmp,
- if(flg==0,
- if(|obj2_#-ptk_1|>Rr,
- tmp2=append(tmp2,#);
- flg=1;
- );
- );
- );
- if(length(tmp2)==1,tmp2=append(tmp2,length(obj2)));
- tmp=obj2_((tmp2_1)..(tmp2_2));
- tmp1=Circledata("",[ptk_1,ptk_1+[Rr,0]],["Num=8","nodata"]);
- tmp1=Intersectcurves(tmp,tmp1);
- if(length(tmp1)==2,
- tmp=sort([tmp1_1_2,tmp1_2_2]);
- tmp=[[tmp2_1-1+tmp_1,1],[tmp2_1-1+tmp_2,-1]];
- remov=concat(remov,tmp);
- );
- if(length(tmp1)==1,
- if(tmp2_1==1,
- tmp=[[1,1],[tmp2_1-1+tmp1_1_2,-1]];
- ,
- tmp=[[tmp2_1-1+tmp1_1_2,1],[length(obj2),-1]];
- );
- remov=concat(remov,tmp);
- );
- );
- );
- );
- if(length(remov)==0,
- res=obj;
- ,
- res=[];
- remov=sort(remov,[#_1,#_2]);
- tmp=select(remov,#_1<1-Eps1);
- if(length(tmp)==0,
- flg=0;
- res=[1];
- ,
- flg=length(tmp);
- res=[];
- );
- forall(remov,
- tmp=flg;
- if(#_2==-1,
- flg=flg-1;
- if(flg==0,res=append(res,#_1));
- );
- if(#_2==1,
- flg=flg+1;
- if(tmp==0,res=append(res,#_1));
- );
- );
- if((flg==0)&(res_(length(res))<length(obj)),
- res=append(res,length(obj));
- );
- tmp=res;
- res=[];
- forall(1..(length(tmp)/2),nn,
- tmp1=tmp_(2*nn-1);
- tmp2=tmp_(2*nn);
- pL=(ceil(tmp1))..(floor(tmp2));
- if(tmp1<ceil(tmp1)-Eps1,pL=prepend(tmp1,pL));
- if(tmp2>floor(tmp2)+Eps1,pL=append(pL,tmp2));
- ptL=[];
- forall(pL,
- pt=PointonCurve(#,obj);
- ptL=append(ptL,pt);
- );
- res=append(res,ptL);
- );
- );
- Allres=append(Allres,res);
- );
- Allres;
-);
-
-////////////// current skeleton 2018.01.04 ////////////////
-
-Skeletondatacindy(nm):=Skeletondatacindy(nm,[]);
-Skeletondatacindy(nm,options):=(
- regional(tmp);
- tmp=Datalist3d();
- Skeletondatacindy(nm,tmp,tmp,options);
-);
-Skeletondatacindy(nm,pltdata1,pltdata2):=
- Skeletondatacindy(nm,pltdata1,pltdata2,[]);
-Skeletondatacindy(nm,pltdata1org,pltdata2org,options):=(
-//help:Skeletondatacindy("1");
-//help:Skeletondatacindy("1",[pdata1,pdata2],[pdata3]);
-//help:Skeletondatacindy(options2=[1(width)]);
- regional(Eps,Eps2,name2,name3,Ltype,Noflg,reL,opcindy,
- Out,ObjL,Plt3L,Rr,pltdata1,pltdata2,Plt2L,ObjL,ii,Data,
- Obj3,jj,Gd,PtD,size,tmp,tmp1,tmp2);
- name2="sk2d"+nm;
- name3="sk3d"+nm;
- pltdata1=[];// 16.01.31
- forall(pltdata1org,tmp1,
- tmp=parse(tmp1);
- pltdata1=append(pltdata1,tmp);
- );
- pltdata2=[];// 16.01.31
- forall(pltdata2org,tmp1,
- tmp=parse(tmp1);
- pltdata2=append(pltdata2,tmp);
- );
- tmp=Divoptions(options);
- Ltype=tmp_1;
- Noflg=tmp_2;
- reL=tmp_6; //16.02.28
- opcindy=tmp_9;
- Rr=0.075*1000/2.54/MilliIn;
- size=1;
- Eps2=0.05;
- if(length(reL)>0, //16.02.28
- size=reL_1;
- Rr=size*Rr;
- if(length(reL)>1,Eps2=reL_2);
- );
- Eps=10^(-4);
- ObjL=Flattenlist(pltdata1);
- Plt3L=Flattenlist(pltdata2);
- tmp=apply(Plt3L,ProjcoordCurve(#));
- Plt2L=Flattenlist(tmp);
-/////////// tmp=apply(pltdata1,replace(#,"3d","2d"));
- Out=[];
- forall(1..(length(ObjL)),ii,
- Obj3=ObjL_ii;
- tmp=ProjcoordCurve(Obj3);
- Data=Makeskeletondata([tmp],Plt2L,Rr,Eps2);
- forall(1..(length(Data)),jj,
- Gd=Data_jj;
- if((length(Gd)>1)
- & (norm(Ptcrv(1,Gd)-Ptcrv(2,Gd))>Eps),
- PtD=[];
- forall(1..(length(Gd)),
- tmp=Gd_#;
- tmp1=Invparapt(tmp,Obj3);
- PtD=append(PtD,tmp1);
- );
- Out=append(Out,PtD);
- );
- );
- );
- Out=select(Out,length(Projcurve(#))>0); // 16.12.19
- tmp1=apply(Out,textformat(#,5));
- tmp=name3+"="+tmp1;
- parse(tmp);
- tmp=name2+"=Projcurve("+tmp1+");";
- parse(tmp);
- Changestyle3d(pltdata1org,["nodisp"]);
- if(Noflg<3,
- println("generate skeleton :"+name3);
- tmp1=text(pltdata1org);
- tmp1="list("+substring(tmp1,1,length(tmp1)-1)+")";
- tmp2=text(pltdata2org);
- tmp2="list("+substring(tmp2,1,length(tmp2)-1)+")";
- tmp=name3+"=Skeletonpara3data("+tmp1+","+tmp2+",";
- tmp=tmp+text(size)+")";
- GLIST=append(GLIST,tmp);
- tmp=name2+"=Projpara("+name3+")";
- GLIST=append(GLIST,tmp);
- );
- if(Noflg<2,
- if(isstring(Ltype),
- Ltype=GetLinestyle(text(Noflg)+Ltype,name2);
- ,
- if(Noflg==1,Ltype=0);
- );
- GCLIST=append(GCLIST,[name2,Ltype,opcindy]);
- if(SUBSCR==1,
- Subgraph(name3,opcindy);
- );
- );
- Out;
-);
-
-Makeskeletondata(Obj2L,Plt2L,R0,Eps2):=(
- regional(Allres,Eps,Dmat,Dind,ii,Dt,nn1,nn2,Nind,Nobj,
- Plt2,PhL,ClipL,ns,pt1,pt2,pt,pta,ptb,za,zb,z1,z2,t1,t2,te,
- koc,KukanL,nn,tt,Rr,Flg,ii,jj,ptq,hh,Ku,Res,contflg,breakflg);
- Eps=10.0^(-4);
- Dmat=[];
- Dind=[];
- forall(1..(length(Plt2L)),ii,
- Dt=Plt2L_ii;
- nn1=length(Dmat)+1;
- Dmat=concat(Dmat,Dt);
- nn2=length(Dmat);
- Dind=append(Dind,[nn1,nn2]);
- );
- Nind=length(Dind);
- Allres=[];
- forall(1..(length(Obj2L)),Nobj,
- Plt2=Obj2L_Nobj;
- PhL=Columnlist(Plt2,1..2);
- ClipL=[];
- forall(1..(length(PhL)-1),ns,
- pt1=PhL_(ns..(ns+1));
- forall(1..(length(Dind)),ii,
- tmp=Dind_ii;
- tmp=Dmat_(Dind_ii_1..Dind_ii_2);
- pt2=Columnlist(tmp,1..2);
- koc=IntersectcrvsPp(pt1,pt2,[Eps]);
- if(length(koc)>0,
- breakflg=0;
- forall(1..(length(koc)),jj,
- contflg=0;
- if(breakflg==0,
- pt=Op(1,Op(jj,koc));
- tmp=Op(2,Op(jj,koc));
- if((tmp<1+Eps) & (ns==1),
- contflg=1;
- );
- if(contflg==0,
- if((tmp>length(pt1)-Eps)
- & (ns==length(PhL)-1),
- contflg=1;
- );
- );
- if(contflg==0,
- nn1=ns;
- nn2=Op(3,Op(jj,koc));
- tmp=Plt2_nn1;
- pta=tmp_(1..2);
- za=tmp_3;
- tmp=Plt2_(nn1+1);
- ptb=tmp_(1..2);
- zb=tmp_3;
- if(norm(pta-ptb)<Eps,
- contflg=1;
- );
- );
- if(contflg==0,
- t1=norm(pta-pt)/norm(pta-ptb);
- z1=(1-t1)*za+t1*zb;
- tmp=Dmat_(Dind_ii_1..Dind_ii_2);
- tmp1=tmp_nn2;
- pta=tmp1_(1..2);
- za=tmp1_3;
- tmp2=tmp_(nn2+1);
- ptb=tmp2_(1..2);
- zb=tmp2_3;
- if(norm(pta-ptb)<Eps,
- contflg=1;
- );
- );
- if(contflg==0,
- t2=norm(pta-pt)/norm(pta-ptb);
- z2=(1-t2)*za+t2*zb;
- if(z1<z2-Eps2,
- if(length(ClipL)==0,
- tmp=1;
- ,
- tmp1=column(ClipL,1);
- tmp1=apply(tmp1,#-pt_1);
- tmp2=column(ClipL,2);
- tmp2=apply(tmp2,#-pt_2);
- tmp3=apply(tmp1,#^2)+apply(tmp2,#^2);
- tmp=min(tmp3);
- );
- if(tmp>Eps^2,
- tmp1=pt1_2-pt1_1;
- tmp2=ptb-pta;
- tmp3=Dotprod(tmp1,tmp2);
- tmp3=tmp3/norm(tmp1)/norm(tmp2);
- tmp=1-0.5*tmp3^2;
- tmp1=concat(pt,[nn1,t1,R0/tmp]);
- ClipL=append(ClipL,tmp1);
- );
- );
- );
- );
- );
- );
- );
- );
- te=length(Plt2);
- KukanL=[[1.0,te]];
- pt1=PhL;
- if(length(ClipL)>0,
- forall(1..(length(ClipL)),ii,
- tmp=ClipL_ii;
- pt=tmp_(1..2);
- nn=tmp_3;
- tt=nn+tmp_4;
- Rr=tmp_5;
- Flg=0;
- breakflg=0;
- forall(reverse(1..nn),jj,
- contflg=0;
- if(breakflg==0,
- ptq=PointonCurve(jj,pt1);
- if(norm(pt-ptq)<Rr,
- contflg=1;
- );
- if(contflg==0,
- Flg=jj;
- breakflg=1;
- contflg=1;
- );
- );
- );
- if(Flg==0,
- t1=1;
- ,
- t1=Flg; t2=tt;
- hh=t2-t1;
- forall(1..10,
- hh=hh*0.5;
- ptq=PointonCurve(t1+hh,pt1);
- if(norm(pt-ptq)<Rr,
- t2=t2-hh;
- ,
- t1=t1+hh;
- );
- );
- );
- Ku=[t1];
- Flg=0;
- breakflg=0;
- forall((nn+1)..te,jj,
- contflg=0;
- if(breakflg==0,
- ptq=PointonCurve(jj,pt1);
- if(norm(pt-ptq)<Rr,
- contflg=1;
- );
- if(contflg==0,
- Flg=jj;
- breakflg=1;
- contflg=1;
- );
- );
- );
- if(Flg==0,
- t2=te;
- ,
- t1=tt; t2=Flg;
- hh=t2-t1;
- forall(1..10,
- hh=hh*0.5;
- ptq=PointonCurve(t1+hh,pt1);
- if(norm(pt-ptq)<Rr,
- t1=t1+hh;
- ,
- t2=t2-hh;
- );
- );
- );
- Ku=append(Ku,t2);
- KukanL=Kukannozoku(Ku,KukanL);
- );
- );
- Res=[];
- forall(1..(length(KukanL)),ii,
- tmp=KukanL_ii;
- t1=tmp_1; nn1=floor(t1);
- t2=tmp_2; nn2=floor(t2);
- PtL=[];
- if(t1-nn1<1-Eps,
- tmp=PointonCurve(t1,pt1);
- PtL=[tmp];
- );
- forall((nn1+1)..nn2,jj,
- tmp=PointonCurve(jj,pt1);
- PtL=append(PtL,tmp);
- );
- if(t2-nn2>Eps,
- tmp=PointonCurve(t2,pt1);
- PtL=append(PtL,tmp);
- );
- tmp=Listplot("",PtL,["nodata"]);
- Res=append(Res,tmp);
- );
- Allres=concat(Allres,Res);
- );
- Allres;
-);
-
-Kukannozoku(Jokyo,KukanL):=(
- regional(Res,Eps,nn,ii,t1,t2,Ku,Flg,contflg,tmp,tmp1);
- Eps=10^(-6);
- nn=length(KukanL);
- t1=Jokyo_1; t2=Jokyo_2;
- tmp=KukanL_1;
- t1=max(t1,tmp_1);
- tmp=KukanL_nn;
- t2=min(t2,tmp_2);
- Res=[];
- Flg=0;
- contflg=0;
- forall(1..nn,ii,
- if(contflg==0,
- Ku=KukanL_ii;
- if(Flg==0,
- if(Ku_2<t1,
- Res=append(Res,Ku);
- ,
- Flg=1;
- if(Ku_1<t1-Eps,
- tmp=[Ku_1,t1];
- Res=append(Res,tmp);
- );
- if(Ku_2>t2+Eps,
- tmp=[t2,Ku_2];
- Res=append(Res,tmp);
- );
- );
- ,
- if(Flg==1,
- if(Ku_2<t2,
- contflg=1;
- ,
- if(contflg==0,
- Flg=2;
- if(Ku_1<t2-Eps,
- Ku=[t2,Ku_2];
- );
- Res=append(Res,Ku);
- );
- );
- ,
- if(contflg==0,
- Res=append(Res,Ku);
- );
- );
- );
- );
- );
- Res;
-);
-
-////////////////// end of current skeleton//////////////
-
-ProjcoordCurve(Curve):=(
- regional(SP,CP,ST,CT,Out,jj,pt,x,y,z,xz,yz,zz);
- SP=sin(PHI); CP=cos(PHI);
- ST=sin(THETA); CT=cos(THETA);
- Out=[];
- forall(1..(length(Curve)),jj,
- pt=Curve_jj;
- x=pt_1; y=pt_2; z=pt_3;
- xz=-x*SP+y*CP;
- yz=-x*CP*CT-y*SP*CT+z*ST;
- zz=x*CP*ST+y*SP*ST+z*CT;
- Out=append(Out,[xz,yz,zz]);
- );
- Out;
-);
-
-Divnohidhid(nm,dt3dorg,nvec):=Divnohidhid(nm,dt3dorg,nvec,[],["do"]);
-Divnohidhid(nm,dt3dorg,nvec,optionorg,options2):=(
-//help:Divnohidhid("1","sc3d1",nvec,["Num=100"],["Num=100","do"]);
- regional(name,dt3d,options,pvec,disp,nohid,hid,flg,tmp,tmp1,eqL);
- name="nh"+nm;
- options=optionorg;
- tmp=Divoptions(options);
- eqL=tmp_5;
- disp="Y";
- forall(eqL,
- tmp=Toupper(substring(#,0,1));
- if(tmp=="D",
- tmp=indexof(#,"=");
- disp=Toupper(substring(#,tmp,tmp+1));
- options=remove(options,[#]);
- );
- );
- if(isstring(dt3dorg),dt3d=parse(dt3dorg),dt3d=dt3dorg);
- pvec=[sin(THETA)*cos(PHI),sin(THETA)*sin(PHI),cos(THETA)];
- nohid=[];
- hid=[];
- flg=0;
- forall(1..(length(dt3d)-1),
- p1=dt3d_#;
- p2=dt3d_(#+1);
- tmp=assign(nvec,["x",p1_1,"y",p1_2,"z",p1_3]);
- tmp=parse(tmp);
- if(Dotprod(tmp,pvec)>0,
- if(flg==0 % flg==-1,
- nohid=append(nohid,[p1,p2]);
- flg=1;
- );
- if(flg==1,
- nohid_(length(nohid))=append(nohid_(length(nohid)),p2);
- );
- ,
- if(flg==0 % flg==1,
- hid=append(hid,[p1,p2]);
- flg=-1;
- );
- if(flg==-1,
- hid_(length(hid))=append(hid_(length(hid)),p2);
- );
- );
- );
- if(disp=="Y",
- Changestyle3d([dt3dorg],["nodisp"]);
- forall(1..length(nohid),
- Spaceline(name+"nh"+text(#),nohid_#,options);
- );
- forall(1..length(hid),
- Spaceline(name+"h"+text(#),hid_#,options2);
- );
- );
- tmp1="[";
- forall(nohid,tmp1=tmp1+textformat(#,5)+",");
- tmp1=substring(tmp1,0,length(tmp1)-1)+"]";
- parse(name+"nh="+tmp1);
- tmp1="[";
- forall(hid,tmp1=tmp1+textformat(#,5)+",");
- tmp1=substring(tmp1,0,length(tmp1)-1)+"]";
- parse(name+"h="+tmp1);
- [nohid,hid];
-);
-
-Beziersurf(nm,m,n,pL):=(
-//help:Beziersurf("pt",2,2,pL);
- regional(p3dL,ptlistx,ptlilsty,ptlistz);
- factorial(n):=(
- regional(out);
- out=1;
- forall(1..n,
- out=out*#;
- );
- out;
- );
- Deffun("Comb(n,r)",[
- "regional(y)",
- "y=factorial(n)/(factorial(r)*factorial(n-r))",
- "y"
- ]);
- Deffun("Bterm(u,v,m,n,i,j)",[
- "regional(y)",
- "y=Comb(m,i)*u^i*(1-u)^(m-i)",
- "y=y*Comb(n,j)*v^j*(1-v)^(n-j)",
- "y"
- ]);
- Deffun("Ball(u,v,m,n,pL)",[
- "regional(y,ii,jj,tmp,tmp1)",
- "y=0",
- "forall(0..m,ii,
- forall(0..n,jj,
- tmp=(n+1)*ii+jj+1;
- tmp1=Op(tmp,pL);
- tmp1=tmp1*Bterm(u,v,m,n,ii,jj);
- y=y+tmp1;
- )
- )",
- "y"
- ]);
- if(ispoint(pL_1),
- p3dL=apply(pL,parse(text(#)+"3d"));
- ,
- p3dL=apply(pL,parse(#+"3d"));
- );
- ptlistx=apply(p3dL,#_1);
- ptlisty=apply(p3dL,#_2);
- ptlistz=apply(p3dL,#_3);
- Defvar(nm+"x",ptlistx);
- Defvar(nm+"y",ptlisty);
- Defvar(nm+"z",ptlistz);
- tmp=[
- "p",
- "x=Ball(U,V,2,2,"+nm+"x)",
- "y=Ball(U,V,2,2,"+nm+"y)",
- "z=Ball(U,V,2,2,"+nm+"z)",
- "U=[0,1]",
- "V=[0,1]"
- ];
- tmp;
-);
-
-//help:end();
diff --git a/texmf-dist/scripts/ketcindy/ketlib/ketcindylibbasic1logr.txt b/texmf-dist/scripts/ketcindy/ketlib/ketcindylibbasic1logr.txt
deleted file mode 100644
index d815618a..00000000
--- a/texmf-dist/scripts/ketcindy/ketlib/ketcindylibbasic1logr.txt
+++ /dev/null
@@ -1,90 +0,0 @@
-//20180408
-// Divoptions changed ( to remove null string )
-// Changework changed (nkfwin)
-// Hyperbolaplot debugged
-// Derivative debugged
-//20180405
-// Ketinit changed (order of changesettiing, Dircdy)
-//20180402
-// Implicitplot, Connectseg added
-//20180329
-// Ketinit changed (changing of Dircdy)
-// Changesetting added
-// Derivative changed ( Numerical method supportted )
-//20180328
-// Cindyname (=Cdyname ) added
-// Cindyfile,Cindypath deleted
-//20180317
-// IntersectcurvesPp changed
-// Collectsameseg added, Collectnear commented out
-// 2018.02.11
-// Dqq added ( = DqDq)
-// 2018.02.06
-// Intersectpartseg debugged
-// 2018.02.02
-// Enclosing2 changed (for distanted curves, startpt option removed )
-// 2018.02.01
-// Makehatch changed ( in accordance with Intersectseg )
-// 2018.01.30
-// Intersectseg changed ( for the case of no intersect )
-// 2018.01.29
-// Intersectpartseg changed ( for the case curves are strings )
-// Textformat changed ( for null list )
-// 2018.01.26
-// Enclosing2 (new enclosing ), Makehatch, Hatchdatacindy added
-// 2018.01.15
-// Setunitlen changed ( as R )
-// Ketinit changed (Marklennow,... added as R )
-// 2018.01.07
-// Collectnear added
-// Intersectcurves changed (Collectnear used)
-// 2018.01.05
-// Intersectcurves changed (LLcrd)
-// Intersectcurvespt added
-// Intersectpartseg debugged
-// Intersectline changed
-// s:2018.01.04
-// PointonCurve debugged ( t >=1, t<=length(g) )
-// Intersectcurves.... added
-// s:2017.12.27
-// Getcdyname(Cdyname) changed
-// s:2017.12.03
-// Ketinit changed (definition of LibnameS )
-// s:2017.12.01
-// Ketinit changed (to modify Dircdy )
-// s:2017.11.27
-// Setparent added ( for Texparent)
-// Getcdyname added ( name of the current cdy file)
-// s:2017.11.24
-// Changework changed ( for the case of double pathsep() in dir, subdir )
-// s:2017.11.20
-// Changework changed ( for the case of (ex) dir=".../" )
-// s:2017.11.12
-// Ketinit debugged (Fhead)
-// s:2017.10.24
-// Ketinit changed (Slidename added)
-// s:2017.10.23
-// Pointdata changed (for string )
-// s:2017.10.14
-// Ketinit() changed (Fhead)
-// s:2017.10.13
-// Ketinit() changed (definition of Shellparent,Shellchild)
-// s:2017.10.07
-// Pointdata debugged
-// s:2017.10.07
-// Setcolor debugged ( \ => \\ )
-// s:2017.10.06
-// Deqplot changed
-// s:2017.08.29
-// Ketinit changed (LibnameS)
-//2017.09.22
-// Texcom debugged
-// Setcolor changed ( Texcom used )
-//2017.09.18
-// SCIWR,SCIRE removed
-// 2017.09.17
-// Ketinit changed ( PathS=6... removed )
-// 2017.09.13
-// Changed to FnameR
-
-
diff --git a/texmf-dist/scripts/ketcindy/ketlib/ketcindylibbasic1r.cs b/texmf-dist/scripts/ketcindy/ketlib/ketcindylibbasic1r.cs
deleted file mode 100644
index f45ffee8..00000000
--- a/texmf-dist/scripts/ketcindy/ketlib/ketcindylibbasic1r.cs
+++ /dev/null
@@ -1,5932 +0,0 @@
-// Copyright (C) 2014 Setsuo Takato, KETCindy Japan project team
-//
-//This program is free software: you can redistribute it and/or modify
-// it under the terms of the GNU General Public License as published by
-// the Free Software Foundation; either version 3 of the License, or
-// (at your option) any later version.
-//
-// This program is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-// GNU General Public License for more details.
-//
-// You should have received a copy of the GNU General Public License
-// along with this program. If not, see <http://www.gnu.org/licenses/>
-//
-
-println("KETCindy V.3.2.0(20180409)");
-println(ketjavaversion());//17.06.05
-println("ketcindylibbasic1(20180408) loaded");
-
-//help:start();
-
-//help:drawimage([0,0],"picture.png",scale->2,alpha->0.4);
-//help:drawtext((2,1),"Text",size->2);
-//help:system(list=append(list,"a"););
-//help:system(list=concat(list,["a","b"]););
-//help:system(arccos,arcsin,arctan);
-//help:system(abs,round,floor,ceil);
-
-//help:Option1(["dr","dr,2","da","da,2,1","do","do,1,2"]);
-//help:Option2(["notex","nodisp","nodata"]);
-
-//help:getdirhead();
-//help:gedirhead("/Applications");
-//help:gedirhead("C:\Users\(username)");
-//help:setpath();
-
-Ch=[0]; ChNum=1;
-
-Ketinit():=Ketinit(1);
-//help:Ketinit();
-Ketinit(sy):=Ketinit(sy,[-5,5],[-5,5]);
-Ketinit(sy,rangex,rangey):=(
- regional(pt,tmp,tmp1,tmp2,letterc,boxc,shadowc,mboxc);
- PenThickInit=8;
- ULEN="1cm";
- MEMORI=0.05;//18.01.15from
- MEMORIInit=MEMORI;
- MEMORINow=MEMORI;
- MARKLEN=0.05;
- MARKLENInit=MARKLEN:
- MARKLENNow= MARKLEN;
- GENTEN=[0,0];//18.01.15until
- KETPICLAYER=20;
- MilliIn=1/2.54*1000;
- PenThick=round(MilliIn*0.02);
- PenThickInit=PenThick;
- TenSizeInit=0.02;
- TenSize=TenSizeInit;
- YaSize=1; YaAngle=18; YaPosition=1;
- YaThick=1; YaStyle='tf';
- KETPICCOUNT=1;
- KCOLOR=[0,0,0];
- GLIST=[];
- GCLIST=[];
-// GDATALIST=[];
- GOUTLIST=[];
- POUTLIST=[];
- VLIST=[];
- FUNLIST=[];
- LETTERlist=[];
- COM0thlist=[];
- COM1stlist=[];
- COM2ndlist=[];
- ADDAXES="1";
- LFmark=unicode("000a");
- CRmark=unicode("000d");//16.12.13
- Dq=unicode("0022");
- WaitUnit=10;
- CONTINUED=0;
- OutComList=[];
- OutFileLIst=[]; // 15.10.22
- FigPdfList=[]; // 16.04.08
- ADDPACK=[]; // 16.05.16
- ErrFlag=0;
- setdirectory(Dirwork);
- if(!isstring(Fhead), // 17.10.13from, 17.11.12
- Fhead=text(curkernel());
- Fhead=replace(Fhead,".cdy","");
- Slidename=Fhead; //17.10.24
- );//17.11.12
- Dircdy=replace(Dircdy,"%E3%80%80"," ");//180405
- tmp1=Indexall(Dircdy,"%"); //180329from
- if(length(tmp1)>0,
- tmp1=append(tmp1,length(Dircdy));
- tmp2=substring(Dircdy,0,tmp1_1-1);
- forall(1..(length(tmp1)-1),
- tmp=substring(Dircdy,tmp1_#,tmp1_#+2);
- tmp2=tmp2+unicode(tmp);
- tmp2=tmp2+substring(Dircdy,tmp1_#+2,tmp1_(#+1)-1);
- );
- Dircdy=tmp2;
- ); //180329to
- if(iswindows(), //17.12.01
- Dircdy=replace(Dircdy,"/",pathsep());
- if(substring(Dircdy,0,1)==pathsep(),
- Dircdy=substring(Dircdy,1,length(Dircdy));
- );
- Changesetting([gethome(), gethome()+"\Desktop","C:"]); //180405
- ,
- Changesetting([gethome(),gethome()+"/Desktop"]);
- );
- Changework(Dircdy+pathsep()+"fig"); //180329to
- Fnametex=Fhead+".tex";
- FnameR=Fhead+".r";
- FnamebodyR=Fhead+"body.r";
- Fnameout=Fhead+".txt"; // 17.10.13until
- if(!isstring(Mackc),// 16.06.07
- Mackc="sh";
- );
- if(iswindows(),
- Batparent="\kc.bat";
- ,
- Shellparent="/kc.sh";
- if(!isexists(Dirwork,""),
- println(Dirwork+" not exists");
- ,
- if(!iskcexists(Dirwork),
- setdirectory(Dirwork);
- SCEOUTPUT = openfile(Shellparent);
- closefile(SCEOUTPUT);
- println(Shellparent+" generated");
- );
- println(setexec(Dirwork,Shellparent));
- );
- );
- ArrowlineNumber=1; // 15.01.05
- ArrowheadNumber=1;
- BezierNumber=1; //15.01.03
- SCALEX=1;
- SCALEY=sy;
-// Setscaling(sy);
- XMIN=rangex_1/SCALEX;
- XMAX=rangex_2/SCALEX;
- YMIN=rangey_1/SCALEY;
- YMAX=rangey_2/SCALEY;
- Setwindow("Msg=n"); // 16.05.31
- // for Presentation
- letterc=[0.98,0.13,0,0.43]; boxc=[0,0.32,0.52,0];
- shadowc=[0,0,0,0.5]; mboxc="yellow"; //17.03.02 regional debugged
- SlideColorList=[letterc,boxc,boxc,boxc,shadowc,shadowc,6,1.3,
- letterc,mboxc,mboxc,mboxc,62,2,letterc];
- ThinDense=0.1;//17.01.08
- if(indexof(PathS,"-5.")>0,//17.12.03from
- LibnameS=Dirlib+pathsep()+"ketpicsciL5";
- ,
- LibnameS=Dirlib+pathsep()+"ketpicscifiles6";
- );
- if(indexof(PathT,"pdflatex")+indexof(PathT,"lualatex")>0,
- LibnameS=replace(LibnameS,"ketpic","ketpic2e");
- );//17.12.03until
-);
-
-Changesetting(dirL):=( //180329
- regional(fname,tmp1,flg);
- fname="changesetting.txt";
- tmp1=apply(dirL,#+pathsep()+"ketcindy");
- tmp1=prepend(Dircdy,tmp1);
- flg=0;
- forall(tmp1,
- if(flg==0,
- if(isexists(#,fname),
- setdirectory(#);
- import(fname);
- println(fname+" imported from "+#);
- flg=1;
- );
- );
- );
- if(flg==0,
- println(fname+" not exists in "+text(tmp1));
- println(" Put "+fname+" in one of folders above");
- );
-);
-
-Cindyname():=Getcdyname();
-Cdyname():=Getcdyname();
-Getcdyname():=( //17.12.27
-//help:Cdyname();
- regional(out);
- out=text(curkernel());
- out=replace(out,".cdy","");
-);
-
-Setwindow():=Setwindow("Msg=yes");
-Setwindow(str):=(
- regional(tmp,tmp1,tmp2,msg);
- msg="y";
- tmp=indexof(str,"="); // 16.02.10
- tmp1=Toupper(substring(str,tmp,tmp+1));
- if(tmp1=="N",msg="n");
- if((ispoint(SW) & ispoint(NE)),
- tmp1=Lcrd(SW);
- tmp2=Lcrd(NE);
- XMIN=tmp1_1; XMAX=tmp2_1;
- YMIN=tmp1_2; YMAX=tmp2_2;
- ,
-// XMIN=-5; XMAX=5;
-// YMIN=Lcrdy(-5); YMAX=Lcrdy(5);
-// createpoint("SW",Pcrd([XMIN,YMIN]));
-// createpoint("NE", Pcrd([XMAX,YMAX]));
- Putpoint("SW",Pcrd([XMIN,YMIN]));
- Putpoint("NE", Pcrd([XMAX,YMAX]));
- );
- if(msg=="y",
- println("Setwindow(["+XMIN+","+XMAX+"],["+YMIN+","+YMAX+"])");
- );
- layer(KETPICLAYER);
- autoclearlayer(KETPICLAYER,true);
- drawpoly([Pcrd([XMIN,YMIN]), Pcrd([XMAX,YMIN]),
- Pcrd([XMAX,YMAX]),Pcrd([XMIN,YMAX])],color->[1,1,1]);
-);
-Setwindow(xrange,yrange):=(
-//help:Setwindow([2,3],[-1,1]);
- XMIN=xrange_1;
- XMAX=xrange_2;
- YMIN=yrange_1;
- YMAX=yrange_2;
- Putpoint("SW",Pcrd([XMIN,YMIN]));//17.05.30
- Putpoint("NE",Pcrd([XMAX,YMAX]));//17.05.30
-// Ketinit();
-);
-
-Setfiles(file):=( // 17.01.16
-//help:Setfiles(file);
- Fhead=file;
- Fnametex=Fhead+".tex";
- FnameR=Fhead+".r"; //17.10.14
- FnamebodyR=Fhead+"body.sce";
- Fnameout=Fhead+".txt";
-);
-
-Setparent(file):=( // 17.11.27
-//help:Setparent(file);
- Texparent=file;
-);
-
-Dqq(str):=DqDq(str); //18.02.11
-DqDq(str):=(
-//help(Dqq("ab"); => Dq+"ab"+Dq)
- unicode("0022")+str+unicode("0022");
-);
-
-Tab2list(dtstr):=Tab2list(dtstr,[]);
-Tab2list(dtstrorg,options):=(
-//help:Tab2list(datastr);
-//help:Tab2list(options=["Blank=(null)","Sep=tab"]);
- regional(dtstr,dtall,dt,rep,out,crm,lfm,htm,first,eqL,sep,
- tmp,tmp1,tmp2);
- crm=unicode("000d");
- lfm=unicode("000a");
- htm=unicode("0009");
- tmp=Divoptions(options);
- eqL=tmp_5;
- rep="";
- sep=htm;
- forall(eqL,
- tmp=indexof(#,"=");
- tmp1=Toupper(substring(#,0,1));
- tmp2=substring(#,tmp,length(#));
- if(tmp1=="B",
- tmp1="0123456789+-."; // 16.09.28from
- tmp=substring(tmp2,0,1);
- if(indexof(tmp1,tmp)>0,rep=parse(tmp2),rep=tmp2); // 16.09.28until
- );
- if(tmp1=="S", // 16.12.04
- if(tmp2!="tab",sep=tmp2);
- );
- );
- first=lfm; // 16.09.05from
- if(indexof(dtstr,crm)>0,
- first=crm;
- if(indexof(dtstr,crm+lfm)>0,
- first=first+lfm;
- ); // 16.09.05until
- );
- dtstr=dtstrorg;// 16.09.19from
- tmp=substring(dtstr,length( dtstr)-1,length(dtstr));
- if(tmp!=lfm,
- dtstr=dtstr+first;
- );// 16.09.19until
- tmp1=Indexall(dtstr,first);
- tmp1=prepend(0,tmp1);
- tmp1=append(tmp1,length(dtstr));
- dtall=[];
- forall(1..(length(tmp1)-1),
- tmp=substring(dtstr,tmp1_#,tmp1_(#+1)-1);
- if(length(tmp)>0,
- dtall=append(dtall,tmp);
- );
- );
- out=[];
- forall(dtall,dt,
- tmp1=tokenize(dt,sep); //16.12.04
- tmp2=[];
- forall(tmp1,
- if(isstring(#),tmp=parse(#),tmp=#);
- if(!isreal(tmp),
- if(length(#)>0,tmp=#,tmp=rep);
- );
- tmp2=append(tmp2,tmp);
- );
- out=append(out,tmp2);
- );
- out;
-);
-
-Columnlist(dt,list):=( // 16.09.04
-//help:Columnlist(dt,1..3);
- apply(dt,#_list);
-);
-
-Dispmat(dt):=( // 16.09.16
-//help:Dispmat(dt);
- regional(htm,crm,lfm,row,tmp,tmp1,tmp2);
- htm=unicode("0009");
- crm=unicode("000d");
- lfm=unicode("000a");
- tmp2="";
- forall(dt,row,
- tmp1="";
- forall(row,
- if(isstring(#),
- tmp1=tmp1+#+htm;
- ,
- tmp1=tmp1+text(#)+htm;
- );
- );
- tmp1=substring(tmp1,0,length(tmp1)-1);
- tmp1=tmp1+lfm;
- tmp2=tmp2+tmp1;
- );
- print(tmp2);
- println();
-);
-
-Sep1000(va):=( //17.07.18
-//help:Sep1000(1344555);
-//help:Sep1000([12456,55567]);
- regional(str,nall,out);
- if(islist(va),
- out=apply(va,Sep1000(#));
- ,
- str=text(va);
- nall=length(str);
- out="";
- forall(1..nall,
- out=str_(nall+1-#)+out;
- if((#<nall)&(mod(#,3)==0),
- out=","+out;
- );
- );
- );
- out;
-);
-
-factorial(n):=(
-//help:factorial(5);
- regional(out);
- out=1;
- forall(1..n,
- out=out*#;
- );
- out;
-);
-
-norm(v1):=( // 16.09.01
-//help:norm([2,1,3]);
- regional(out,tmp,tmp1,tmp2);
- out=0;
- forall(1..(length(v1)),
- out=out+(v1_#)^2;
- );
- out=sqrt(out);
- out;
-);
-norm(v1,v2):=(
- norm(v2-v1);
-);
-
-// 16.03.28
-Removespace(str):=(
-//help:Removespace(" a b c ");
- regional(tmp,flg,out);
- tmp=length(str)+1;
- flg=0;
- forall(1..(length(str)),
- if(flg==0,
- if((str_#)!=" ",
- tmp=#;
- flg=1;
- );
- );
- );
- out=substring(str,tmp-1,length(str));
- flg=0;
- tmp=0;
- forall(reverse(1..(length(out))),
- if(flg==0,
- if((out_#)!=" ",
- tmp=#;
- flg=1;
- );
- );
- );
- out=substring(out,0,tmp);
-);
-
-Indexall(str,key):=(
- regional(rest,out,flg,tmp,tmp1,);
- out=[];
- rest=str;
- flg=0;
- forall(1..(length(str)),
- if(flg==0,
- tmp=indexof(rest,key);
- if(tmp>0,
- tmp1=tmp+length(str)-length(rest);
- out=append(out,tmp1);
- rest=substring(rest,tmp,length(rest));
- ,
- flg=1;
- );
- );
- );
- out;
-);
-
-Parlevel(str):=Bracket(str); // 16.05.22from
-Bracket(str):=Bracket(str,"()");
-Bracket(str,br):=(
-//help:Bracket(string,"()");
- regional(ph,pt,out,noL,ncL,nall,level,tmp);
- ph=substring(br,0,1);
- pt=substring(br,1,2);
- noL=Indexall(str,ph);
- ncL=Indexall(str,pt); // 16.05.22until
- nall=sort(concat(noL,ncL));
- level=0;
- out=[];
- forall(nall,
- if(contains(noL,#),
- level=level+1;
- tmp=[#,level];
- ,
- tmp=[#,-level];
- level=level-1;
- );
- out=append(out,tmp);
- );
- out;
-);
-
-Pardiagram(str):=Pardiagram(str,[20]);
-Pardiagram(str,options):=(
-//help:Pardiagram(exprstr);
-//help:Pardiagram(options=[20,"Disp=y","Fig=y"]);
- regional(reL,eqL,len,disp,scheme,bra,nn,sta,out,
- opos,cpos,all,dx,dh,mxh,start,nn,p1,p2,p3,p4,tmp,tmp1,tmp2,tmp3);
- len=20;
- disp=1;
- scheme=1;
- tmp=Divoptions(options);
- eqL=tmp_5;
- reL=tmp_6;
- forall(eqL,
- tmp=indexof(#,"=");
- tmp1=Toupper(substring(#,0,1));
- tmp2=Toupper(substring(#,tmp,tmp+1));
- if(tmp1=="D",
- if(tmp2=="N" % tmp2=="F",disp=0);
- );
- if(tmp1=="F",
- if(tmp2=="N" % tmp2=="F",scheme=0);
- );
- );
- forall(reL,
- len=#;
- );
- bra=Bracket(str);
- tmp1=select(bra,#_2>0);
- tmp2=select(bra,#_2<0);
- out=[];
- forall(1..(length(tmp1)),nn,
- sta=tmp1_nn;
- tmp=select(tmp2,#_2==-sta_2 & #_1>sta_1);
- tmp=tmp_1;
- out=append(out, [substring(str,sta_1-1,tmp_1),
- nn,sta_2,sta_1,tmp_1,
- substring(str,sta_1-1,sta_1+len-1),
- substring(str,tmp_1-len,tmp_1)] );
- );
- if(disp==1,
- println("Printing from 2 to 7. (Extract full string using _1)");
- apply(out,println(#_(2..7)));
- );
- if(scheme==1,
- opos=sort(apply(out,#_4));
- cpos=sort(apply(out,#_5));
- tmp=concat(opos,cpos);
- all=sort(tmp);
- mxh=max(apply(out,#_3));
- dx=1;
- dh=1;
- start=[-5,5];
- forall(1..(length(all)),nn,
- tmp=select(out,#_4==all_nn);
- if(length(tmp)>0,
- tmp1=tmp_1_3;
- tmp2=tmp_1_4;
- tmp3=tmp_1_5;
- tmp=select(1..(length(all)),all_#==tmp3);
- tmp4=tmp_1;
- p1=start+[(nn-1)*dx,-0.5];
- p2=p1+[0,(tmp1-mxh-1)*dh];
- p3=p2+[(tmp4-nn)*dx,0];
- p4=p3+[0,(mxh+1-tmp1)*dh];
- Listplot("ch"+text(nn),[p1,p2,p3,p4],["Message=n"]);
- Letter([p2,"s",text(tmp2),p3,"s",text(tmp3)]);
- tmp=select(1..(length(opos)),opos_#==tmp2);
- tmp=tmp_1;
- if(tmp==1,
- tmp=substring(str,tmp2-1,tmp2);
- ,
- if(opos_(tmp-1)==opos_tmp-1,
- tmp=substring(str,tmp2-1,tmp2);
- ,
- tmp=substring(str,tmp2-2,tmp2);
- );
- );
- tmp=replace(tmp,"^","**");
- Expr(p1,"n",tmp);
- tmp=select(1..(length(cpos)),cpos_#==tmp3);
- tmp=tmp_1;
- if(tmp==length(cpos),
- tmp=substring(str,tmp3-1,tmp3);
- ,
- if(cpos_(tmp+1)==cpos_tmp+1,
- tmp=substring(str,tmp3-1,tmp3);
- ,
- tmp=substring(str,tmp3-1,tmp3+1);
- );
- );
- tmp=replace(tmp,"^","**");
- Expr(p4,"n",tmp);
- );
- );
- );
- out;
-);
-
-Changework(dirorg):=( //16.10.21
-//help:Changework(directory);
- regional(dir,subdir,tmp);
- dir=replace(dirorg,"/",pathsep());//17.11.20from
- dir=replace(dir,"\",pathsep());
- dir=replace(dir,pathsep()+pathsep(),pathsep());//17.11.24
- tmp=length(dir);
- if(substring(dir,tmp-1,tmp)==pathsep(),
- dir=substring(dir,0,tmp-1);
- );//17.11.20until
- tmp=Indexall(dir,pathsep()); //17.11.24from
- subdir="";
- if(length(tmp)>0,
- tmp=tmp_(length(tmp));
- subdir=substring(dir,tmp,length(dir));
- dir=substring(dir,0,tmp-1);
- ); //17.11.24until
- if(dir=="" % !isexists(dir,""),
- println("Directory "+dir+" not exist, so set to "+Dirwork);
- ErrFlag=-1;
- ,
- if(length(subdir)>0, //17.11.24from
- println(makedir(dir,subdir));
- Dirwork=dir+pathsep()+subdir;
- ,
- Dirwork=dir;
- ); //17.11.24until
- setdirectory(Dirwork);
- if(!iswindows(), //17.04.11
- if(!iskcexists(Dirwork),
- SCEOUTPUT = openfile("/kc.sh");
- closefile(SCEOUTPUT);
- println(setexec(Dirwork,"/kc.sh"));
- );
- ,
- if(isincludefull(Dirwork),//180408from
- SCEOUTPUT = openfile("utf8.txt");
- println(SCEOUTPUT,"tmp="+Dqq(Dirwork)+";");
- closefile(SCEOUTPUT);
- nkfwin("C:",Dirwork,"utf8.txt","sjis.txt");//180408to
- );
- );
- );
-);
-
-Changestyle(nameL,style):=(
-//help:Changestyle(["sgAB"],["da"]);
- regional(nmL,name,Ltype,Ltypeorg,Noflg,opcindy,tmp);
- tmp=Divoptions(style);
- Ltypeorg=tmp_1;
- Noflg=tmp_2;
- opcindy=tmp_(length(tmp));
- if(islist(nameL),nmL=nameL,nmL=[nameL]);
- forall(nmL,name,
- Ltype=Ltypeorg;
- GCLIST=select(GCLIST,#_1!=name);
- COM2ndlist=select(COM2ndlist,
- (indexof(#,"("+name)==0)%(indexof(#,"Shade")>0)); // 15.05.23,16.12.13
- if(Noflg<2,
- if(isstring(Ltype),
- Ltype=GetLinestyle(text(Noflg)+Ltype,name);
- ,
- if(Noflg==1,Ltype=0);
- );
- GCLIST=append(GCLIST,[name,Ltype,opcindy]);
- );
- );
-);
-
-Op(n,object):=( // 16.05.25
-//help:Op(4,[1,2,3,4]);
-//help:Op(3,"abcd");
- regional(out);
- if(islist(object),
- out=object_n;
- ,
- if(isstring(object),
- out=substring(object,n-1,n);
- );
- );
- out;
-);
-
-Finddef(G):=(
- regional(def,tmp,tmp1,tmp2,tmp3);
- if(isstring(G),tmp=parse(G),tmp=G);
- def=text(inspect(tmp,"definition"));
- tmp1=indexof(def,"(");
- tmp2=indexof(def,";");
- tmp3=indexof(def,")");
- tmp=[substring(def,0,tmp1-1)];
- if(tmp2>0,
- tmp=append(tmp,substring(def,tmp1,tmp2-1));
- if(indexof(def,")",tmp3+1)==0,
- tmp=append(tmp,substring(def,tmp2,tmp3-1));
- ,
- tmp=append(tmp,substring(def,tmp2,tmp3));
- );
- ,
- tmp=append(tmp,substring(def,tmp1-1,tmp3));
- );
- tmp;
-);
-
-Findgeoinfo(geo):=(
- regional(out,tmp,tmp1,tmp2);
- tmp=Finddef(geo);
- if(ispoint(parse(tmp_2)),
- out=[tmp_2,tmp_3];
- ,
- tmp1=Findgeoinfo(parse(tmp_2));
- if(ispoint(parse(tmp1_1)),
- out=[tmp1_1,tmp1_2];
- ,
- tmp2=Findgeoinfo(parse(tmp1_2));
- out=[tmp2_1,tmp2_2];
- );
- );
- if(ispoint(geo),
- if(!ispoint(parse(tmp_2)),
- tmp1=Finddef(parse(tmp_2));
- ,
- tmp1=tmp;
- );
- out=append(out,tmp1_3);
- ,
- out=append(out,tmp_3);
- );
- out;
-);
-
-Dependgeo(geo):=(
- regional(tmp,tmp1,tmp2,out);
- tmp=Finddef(geo);
- if(!iscircle(geo),
- out=[text(geo)];
- ,
- out=[geo];
- );
- if(length(tmp)<3,
- out=concat(out,[tmp_1,[]]);
- ,
- out=concat(out,[tmp_1]);
- tmp1=[tmp_2,tmp_3];
- tmp=parse(tmp1_2);
- if(islist(tmp) % isreal(tmp),
- tmp1=[tmp1_1];
- );
- out=append(out,tmp1);
- );
- out;
-);
-
-Workprocess():=Workprocess(300);
-Workprocess(nn):=Drawprocess(nn);
-Drawprocess():=Drawprocess(300);
-Drawprocess(nn):=(
-//help:Workprocess();
- regional(All,added,remain,out,flg,tmp,tmp1,tmp2);
- tmp=remove(allpoints(),[NE,SW,TH,FI]);
- tmp1=select(tmp,
- substring(text(#),length(text(#))-1,length(text(#)))!="z");
- tmp1=concat(tmp1,alllines());
-// tmp1=concat(tmp1,allcircles());
- All=apply(tmp1,Dependgeo(#));
- added=select(All,length(#_3)==0);
- out=sort(apply(added,#_1));
- remain=remove(All,added);
- flg=0;
- repeat(nn,
- if(flg==0,
- tmp1=select(remain,remove(#_3,out)==[]);
- tmp2=sort(apply(tmp1,#_1));
- out=concat(out,tmp2);
- remain=remove(remain,tmp1);
- if(length(remain)==0,flg=1);
- );
- );
- println("Process of drawing");
- forall(out,
- println(Dependgeo(parse(#)));
- );
- out;
-);
-
-Sortpointlist(list):=(
- regional(plist,ilist,jj,kk,flg,p1,p2,in1,in2,
- tmp,tmp1,tmp2,out);
- out=list;
- plist=list_1;
- ilist=list_2;
- flg=0;
- forall(1..(length(plist)),jj,
- p1=plist_jj;
- in1=ilist_jj;
- forall((jj+1)..(length(plist)),kk,
- if(flg==0,
- p2=plist_kk;
- in2=ilist_kk;
- if(contains(in1,p2),
- tmp1=plist_(1..(jj-1));
- tmp1=append(tmp1,p2);
- tmp1=concat(tmp1,plist_((jj+1)..(kk-1)));
- tmp1=append(tmp1,p1);
- tmp1=concat(tmp1,plist_((kk+1)..(length(plist))));
- tmp2=ilist_(1..(jj-1));
- tmp2=append(tmp2,in2);
- tmp2=concat(tmp2,ilist_((jj+1)..(kk-1)));
- tmp2=append(tmp2,in1);
- tmp2=concat(tmp2,ilist_((kk+1)..(length(plist))));
- out=Sortpointlist([tmp1,tmp2]);
- flg=1;
- );
- );
- );
- );
- out;
-);
-
-Toupper(str):=(
-//help:Toupper("Abc");
- regional(alphabet,out,tmp,tmp1);
- alphabet="abcdefghijklmnopqrstuvwxyz";
- out="";
- forall(1..(length(str)),
- tmp=substring(str,#-1,#);
- tmp1=indexof(alphabet,tmp);
- if(tmp1>0,
- out=out+unicode(text(tmp1+64),base->10);
- ,
- out=out+tmp;
- );
- );
- out;
-);
-
-Textformat(value,dig):=(
-//help:Textformat(2/3,4);
-//help:Textformat([gr1,gr2],5);
- regional(vv,tmp,tmp1);
- if(islist(value),
- tmp1="[";
- forall(value,
- tmp1=tmp1+Textformat(#,dig)+",";
- );
- if(length(tmp1)>1, //18.01.29from
- tmp1=substring(tmp1,0,length(tmp1)-1);
- );
- tmp1=tmp1+"]"; //18.01.29until
- ,
- if(ispoint(value) % isstring(value),
-// vv=Lcrd(value);
-// tmp1=Textformat(vv,dig);
-// tmp1=text(value); // 15.04.07
- if(isstring(value),tmp1=Dq+value+Dq,tmp1=text(value)); // 15.10.02
- ,
- tmp1=format(value,dig);
- );
- );
- tmp1;
-);
-
-Sprintf(value,dig):=(
-//help:Sprintf(5.1,4);
- regional(vv,tmp,tmp1);
- if(!islist(value), // 17.03.12from
- if(isstring(value),
- vv=value;
- ,
- vv=Textformat(value,dig);
- ); // 17.03.12from
- if(indexof(vv,".")==0,vv=vv+".");
- vv=vv+"0000000000000000";
- tmp=indexof(vv,".")+dig;
- vv=substring(vv,0,tmp);
- ,
- vv=apply(value,Sprintf(#,dig));
- );
- vv;
-);
-
-Assign(str):=( // old
- regional(out);
- out=str;
- forall(VLIST,
- tmp=substring(#_1,0,length(#_1)-1);
- out=replace(out,tmp,"("+#_2+")");
- );
- out;
-);
-
-Assign(funstr,vrL):=(
- regional(nn,out,tmp,tmp1);
- nn=length(vrL)/2;
- out=funstr;
- forall(1..nn,
- out=Assign(out,vrL_(2*#-1),vrL_(2*#));
- );
- out;
-);
-
-Assign(funstr,varname,rep):=(
-//help:Assign("x^2+a*x","a",1.3);
-//help:Assign("a*x^2+b*x",["a",1,"b",2]);
- regional(repstr,ii,jj,tmp,tmp1,tmp2,Notvar,Flg);
- if(isstring(rep),repstr=rep,repstr="("+Textformat(rep,6)+")");
- // 15.02.09, 07.06,17.08.24
- tmp=[46]; // 12.20
- tmp=concat(tmp,48..57);
- tmp=concat(tmp,65..90);
- tmp=concat(tmp,97..122);
- Notvar=apply(tmp,unicode(text(#),base->10));
- tmp2="";
- forall(1..100,
- ii=indexof(funstr,varname);
- if(ii>0,
- Flg=0;
- if(ii>1,
- tmp=substring(funstr,ii-2,ii-1);
- if(contains(Notvar,tmp),
- tmp2=tmp2+substring(funstr,0,ii);
- funstr=substring(funstr,ii,length(funstr));
- Flg=1;
- );
- );
- if(Flg==0,
- jj=ii-1+length(varname);
- if(jj<length(funstr),
- tmp=substring(funstr,jj,jj+1));
- if(contains(Notvar,tmp),
- tmp2=tmp2+substring(funstr,0,jj);
- funstr=substring(funstr,jj,length(funstr));
- Flg=1;
- );
- );
- if(Flg==0,
- tmp2=tmp2+substring(funstr,0,ii-1)+repstr;
- funstr=substring(funstr,jj,length(funstr));
- );
- );
- );
- funstr=tmp2+funstr;
- funstr;
-);
-
-MeasureDepth(list):=(
- regional(tmp,tmp1,Depth,Flg);
- Flg=0;
- Depth=0;
- if(ispoint(list), // 15.01.22
- Depth=0;
- Flg=1;
- ,
- tmp1=select(1..(length(list)),length(list_#)>0);//17.05.21from
- tmp=list_(tmp1_1);//17.05.21until
- );
- repeat(4,
- if(Flg==0,
- if(islist(tmp),
- tmp=tmp_1;
- Depth=Depth+1;
- ,
- if(ispoint(tmp),Depth=Depth+1);
- Flg=1;
- );
- );
- );
- Depth;
-);
-
-Flattenlist(pltlist):=(
-//help:Flattenlist([[2,3],[[1,2],[5,6]]]);
- regional(Out,nn,Dt,ii,tmp,flg);
- Out=[];
- if(MeasureDepth(pltlist)==1,
- Out=[pltlist];
- ,
- forall(1..(length(pltlist)),nn,
- Dt=pltlist_nn;
- if(MeasureDepth(Dt)<2,
- Out=append(Out,Dt);
- ,
- forall(1..(length(Dt)),ii,
- tmp=Flattenlist(Dt_ii);
- Out=concat(Out,tmp);
- );
- );
- );
- );
- Out;
-);
-
-Divoptions(options):=(
-//help:Divoptions(options);
- regional(Ltype,Noflg,Inflg,Outflg,eqL,realL,strL,opstr,opcindy,flg,tmp,tmp1);
- Ltype="dr"; // 2015.01.13
- Noflg=0;
- Inflg=0;
- Outflg=0;
- eqL=[];
- realL=[];
- strL=[];
- opstr="";
- opcindy="";
- forall(options,
- flg=0;
- if(flg==0,
- if(isreal(#) % ispoint(#) % islist(#),
- realL=append(realL,#);
- opstr=opstr+","+text(#);
- flg=1;
- );
- );
- if(flg==0,
- if(indexof(#,"=")>0,
- eqL=append(eqL,#);
- flg=1;
- );
- );
- if(flg==0,
- if(indexof(#,"no")+indexof(#,"No")>0,
- if(indexof(#,"tex")>0,Noflg=1);
- if(indexof(#,"disp")>0,Noflg=2);
- if(indexof(#,"data")>0,Noflg=3);
- flg=1;
- );
- );
- if(flg==0,
- if(indexof(#,"->")>0,
- opcindy=opcindy+","+#;
- flg=1;
- );
- );
- if(flg==0,
- if(indexof(#,"out")+indexof(#,"Out")>0,
- if(indexof(#,"-")==0,
- Outflg=1;
- ,
- Outflg=2;
- );
- flg=1;
- );
- );
- if(flg==0,
- if(indexof(#,"in")+indexof(#,"In")>0,
- if(indexof(#,"-")==0,
- Inflg=1;
- ,
- Inflg=2;
- );
- flg=1;
- );
- );
- if(flg==0,
- tmp=substring(#,0,2);
- tmp1=indexof(tmp,"dr")+indexof(tmp,"Dr");
- tmp1=tmp1+indexof(tmp,"da")+indexof(tmp,"Da");
- tmp1=tmp1+indexof(tmp,"id")+indexof(tmp,"Id");
- tmp1=tmp1+indexof(tmp,"do")+indexof(tmp,"Do");
- tmp1=tmp1+indexof(tmp,"dp")+indexof(tmp,"Dp");
- if(tmp1>0,
- Ltype=#;
- flg=1;
- );
- if(flg==0,
- if(length(#)>0, //180408
- strL=append(strL,#);
- opstr=opstr+","+Dq+#+Dq;
- );
- );
- );
- );
- if(indexof(opcindy,"color->")==0,// 16.10.07from
- opcindy=opcindy+",color->[0,0,0]";
- );
- [Ltype,Noflg,Inflg,Outflg,eqL,realL,strL,opstr,opcindy];
-);
-
-Dotprod(vec1,vec2):=(
-//help:Dotprod(vec1,vec2);
- regional(v1,v2,tmp);
- if(ispoint(vec1),v1=vec1.xy,v1=vec1);
- if(ispoint(vec2),v2=vec2.xy,v2=vec2);
- v1*v2;
-);
-
-Crossprod(a,b):=(
-//help:Crossprod(vec1,vec2);
- regional(tmp1,tmp2,tmp3,Out);
- if(length(a)==3,
- tmp1=a_2*b_3-a_3*b_2;
- tmp2=a_3*b_1-a_1*b_3;
- tmp3=a_1*b_2-a_2*b_1;
- Out=[tmp1,tmp2,tmp3];
- ,
- Out=a_1*b_2-a_2*b_1;
- );
- Out;
-);
-
-Ptstart(Fig):=(
-//help:Ptstart("gr1");
- regional(tmp);
- if(isstring(Fig),tmp=parse(Fig),tmp=Fig); // 16.01.21
- tmp_1;
-);
-
-Ptend(Fig):=(
-//help:Ptend("gr1");
- regional(tmp);
- if(isstring(Fig),tmp=parse(Fig),tmp=Fig);
- tmp_(length(tmp)); // 15.04.12
-);
-
-Numptcrv(Fig):=(
-//help:Numptcrv("gr1");
- regional(tmp);
- if(isstring(Fig),tmp=parse(Fig),tmp=Fig); // 15.12.23
- length(tmp);
-);
-
-Ptcrv(Num,Fig):=(
-//help:Ptcrv(10,"gr1");
- regional(tmp);
- if(isstring(Fig),tmp=parse(Fig),tmp=Fig);
- tmp_Num;
-);
-
-Invert(Fig):=(
-//help:Invert("gr1");
- regional(tmp);
- if(isstring(Fig),tmp=parse(Fig),tmp=Fig); // 16.01.27
- reverse(tmp);
-);
-Invert(nm,Fig):=Invert(nm,Fig,["nodisp"]); // from 16.01.27
-Invert(nm,Fig,options):=(
-//help:Invert("1","gr1");
- regional(name,tmp);
- name="-inv"+nm;
- tmp=Invert(Fig);
- Listplot(name,tmp,options);
-);// until 16.01.27
-
-Paramoncrv(pP,Gdata):=(
- regional(Tmp,PtL);
-// Eps=10^(-8);
- if(isstring(Gdata),PtL=parse(Gdata),PtL=Gdata);
- Tmp=Nearestpt(pP,PtL);
- Tmp_2;
-);
-
-ParamonCurve(pP,nN,plist):=(
-//help:ParamonCurve(A,10,"gr1");
- regional(PtL,Out,Pa,Pb,vV,vW,sS);
- if(isstring(plist),PtL=parse(plist),PtL=plist);
- PtL=apply(PtL,LLcrd(#));//16.10.16
- if(nN==length(PtL),
- Out=nN;
- ,
- Pa=PtL_nN;
- Pb=PtL_(nN+1);
- vV=Pb-Pa;
- vW=pP-Pa;
- sS=vV*vW/|vV|^2;
- sS=min([max([sS,0]),1]);
- Out=nN+sS;
- );
- Out;
-);
-
-Pointoncrv(tT,PtL):=PointonCurve(tT,PtL);
-PointonCurve(tTorg,Gdata):=(
-//help:PointonCurve(20.5,"gr1");
- regional(tT,Out,Eps,nN,sS,Pa,Pb,PtL);
- if(isstring(Gdata),PtL=parse(Gdata),PtL=Gdata);
- if(length(PtL)==1,PtL=PtL_1);
- tT=max([tTorg,1]); //18.01.04
- tT=min([tT,length(PtL)]); //18.01.04
- Eps=10^(-5); //18.01.04
- nN=floor(tT+Eps);
- sS=max([tT-nN,0]);
- if(nN==length(PtL),
- Out=PtL_nN;
- ,
- Pa=PtL_nN;
- Pb=PtL_(nN+1);
- Out=(1-sS)*Pa+sS*Pb;
- );
- Out;
-);
-
-Koutenseg(pA,pB,pC,pD):=Koutenseg(pA,pB,pC,pD,[]);
-Koutenseg(pA,pB,pC,pD,options):=(
- regional(Eps0,Eps,Eps2,pV,Sv2,Out,pP,pQ,Flg,p1,p2,q1,q2,
- em1,eM1,em2,eM2,rT,Tmp1,Tmp2);
- Eps0=10^(-4);
- pV=pB-pA;
- Sv2=|pV|;
- pP=pC-pA; pQ=pD-pA;
- Eps=10^(-3);
- Eps2=0.2;
- Tmp1=0;
- forall(options,
- if(Tmp1==0,
- Eps=#;
- Tmp1=1;
- ,
- Eps2=#;
- );
- );
- Flg=0;
- if(Sv2<10^(-3),
- Out=["inf","inf"];
- Flg=1;
- );
- if(Flg==0,
- Eps=min([Eps2,Eps/Sv2]);
- p1=pP*pV/Sv2^2;
- p2=[pP_2,-pP_1]*pV/Sv2^2;
- q1=pQ*pV/Sv2^2;
- q2=[pQ_2,-pQ_1]*pV/Sv2^2;
- em1=-Eps; eM1=1+Eps;
- em2=-Eps; eM2=Eps;
- if(max([p1,q1])<em1 % min([p1,q1])>eM1,
- Out=["inf","inf"];
- Flg=1;
- );
- if(max([p2,q2])<em2 % min([p2,q2])>eM2,
- Out=["inf","inf"];
- Flg=1;
- );
- );
- if(Flg==0 & p2*q2<0,
- rT=p1-(q1-p1)/(q2-p2)*p2;
- if(rT>em1 & rT<eM1,
- if(rT>-Eps0 & rT<1+Eps0,
- Tmp1=pA+rT*pV;
- Tmp2=min([max([rT,0]),1]);
- Out=[Tmp1,Tmp2,0];
- ,
- Tmp1=pA+rT*pV;
- Tmp2=min([max([rT,0]),1]);
- Out=[Tmp1,Tmp2,1];
- );
- Flg=1;
- );
- if(Flg==0 & (p1<em1 % p1>eM1 % p2<em2 % p2>eM2),
- if(q1<em1 % q1>eM1 % q2<em2 % q2>eM2,
- Out=["inf","inf"];
- Flg=1;
- );
- if(Flg==0,
- rT=min([max([p1,0]),1]);
- Tmp1=pA+rT*pV;
- Out=[Tmp1,rT,1];
- Flg=1;
- );
- );
- );
- if(Flg==0 & (p1 > -Eps0 & p1 < 1 + Eps0 & p2 > -Eps0 & p2 < Eps0),
- rT= p1;
- Tmp1=pA+rT*pV;
- Out= [Tmp1, rT, 0];
- Flg=1;
- );
- if(Flg==0 & (q1 > -Eps0 & q1 < 1 + Eps0 & q2 > -Eps0 & q2 < Eps0),
- rT= q1;
- Tmp1=pA+rT*pV;
- Out=[Tmp1,rT,0];
- Flg=1;
- );
- if(Flg==0 & (p1<em1 % p1>eM1 % p2<em2 % p2>eM2),
- if(q1<em1 % q1>eM1 % q2<em2 % q2>eM2,
- Out=["inf","inf"];
- Flg=1;
- );
- if(Flg==0,
- rT=min([max([q1,0]),1]);
- Tmp1=pA+rT*pV;
- Out=[Tmp1,rT,1];
- Flg=1;
- );
- );
- if(Flg==0 & (q1<em1 % q1>eM1% q2<em2 % q2>eM2),
- rT=min([max([p1,0]),1]);
- Tmp1=pA+rT*pV;
- Out=[Tmp1,rT,1];
- Flg=1;
- );
- if(Flg==0,
- if(abs(p2)<abs(q2),
- rT=min([max([p1,0]),1]);
- ,
- rT=min([max([q1,0]),1]);
- );
- Tmp1=pA+rT*pV;
- Out=[Tmp1,rT,1];
- );
- Out;
-);
-
-///////// Start of old Intersect ////////////
-
-IntersectcrvsPp(Gr1,Gr2):=IntersectcrvsPp(Gr1,Gr2,[]);
-IntersectcrvsPp(Gr1,Gr2,options):=(
-//help:IntersectcrvsPp("gr1","pa1");
-//help:IntersectcrvsPp(options=[Eps2(0.1),"Dif=0.05"]);
- regional(Out,Eps,Eps2,Eps0,Flg,Data1,Data2,
- Tmp1,Tmp2,Tmp3,Tmp,KL1,KL2,pA,pB,Ni,Nj,
- pP,pQ,rT,Flg,eqL,realL,opstr,Dif);
- Eps=10^(-4);
- Eps2=0.1;
- Dif=0.05; // 2015.05.31
- Flg=0;
- Tmp1=Divoptions(options); //
- eqL=Tmp1_5;
- realL=Tmp1_6;
- opstr=Tmp1_(length(Tmp1));
- forall(eqL,
- if(substring(#,0,1)=="D",
- Tmp1=indexof(#,"=");
- Dif=parse(substring(#,Tmp1,length(#)));
- );
- );
- Tmp1=length(realL);
- if(Tmp1>0,
- Eps=realL_1;
- if(Tmp1>1,
- Eps2=realL_2;
- );
- );
- Flg=0;
- if(isstring(Gr1),Data1=parse(Gr1),Data1=Gr1);
- if(isstring(Gr2),Data2=parse(Gr2),Data2=Gr2);
- if(MeasureDepth(Data1)==2,Data1=Data1_1);
- if(MeasureDepth(Data2)==2,Data2=Data2_1);
- Data1=apply(Data1,LLcrd(#));
- Data2=apply(Data2,LLcrd(#));
- if(length(Data1)==length(Data2),
- Tmp1=Reverse(Data2);
- Eps0=10^(-6);
- Tmp2=0;
- forall(1..(length(Data1)),
- Tmp2=Tmp2+abs(Data1_#-Data2_#);
- );
- Tmp3=0;
- forall(1..(length(Data1)),
- Tmp3=Tmp3+abs(Data1_#-Tmp1_#);
- );
- if(Tmp2<Eps0 % Tmp3<Eps0,
- Out=[];
- Flg=1;
- );
- );
- if(Flg==0,
- KL1=[];
- KL2=[];
- forall(1..(length(Data1)-1),Ni,
- pA=Data1_Ni;
- pB=Data1_(Ni+1);
- forall(1..(length(Data2)-1),
- pP=Data2_#; pQ=Data2_(#+1);
- Tmp=Koutenseg(pA,pB,pP,pQ,[Eps,Eps2]);
- if(Tmp!=["inf","inf"],
- if(Tmp_3==0,
- Tmp1=[Tmp_1,Tmp_2,Ni,#];
- KL1=concat(KL1,[Tmp1]);
- ,
- Tmp2=[Tmp_1,Tmp_2,Ni,#];
- KL2=concat(KL2,[Tmp2]);
- );
- );
- );
- );
- Out=[];
- if(length(KL1)>0,
- Tmp=KL1_1;
- pP=Tmp_1;
- rT=Tmp_2;
- Ni=Tmp_3;
- Nj=Tmp_4;
- Tmp=[pP,Ni+rT,Nj];
- Out=[Tmp];
- );
- forall(2..(length(KL1)),Ni,
- Tmp=KL1_Ni;
- pP=Tmp_1;
- Tmp2=0;
- Flg=0;
- forall(1..(length(Out)),Nj,
- if(Flg==0,
- Tmp=Out_Nj;
- if(|pP-Tmp_1|<Eps,
- Tmp2=1;
- Flg=1;
- );
- );
- );
- if(Tmp2==0,
- Tmp=KL1_Ni;
- pP=Tmp_1;
- rT=Tmp_2;
- Tmp1=Tmp_3;
- Tmp2=Tmp_4;
- Tmp=[pP,Tmp1+rT,Tmp2];
- Out=concat(Out,[Tmp]);
- );
- );
- forall(1..(length(KL2)),Ni,
- Tmp=KL2_Ni; // 15.11.21 Usui
- pP=Tmp_1;
- Tmp2=0;
- Flg=0;
- forall(1..(length(Out)),Nj,
- if(Flg==0,
- Tmp=Out_Nj;
- if(|pP-Tmp_1|<Eps,
- Tmp2=1;
- Flg=1;
- );
- );
- );
- if(Tmp2==0,
- Tmp=KL2_Ni;
- rT=Tmp_2;
- rT=min([max([rT,0]),1]); // 15.11.21 Usui
- Tmp=[pP,Tmp_3+rT,Tmp_4];
- Out=concat(Out,[Tmp]);
- );
- );
- );
- Tmp1=Out; // 15.04.06 from
- Out=[];
- forall(Tmp1,Tmp2,
- Tmp3=select(1..(length(Out)),//16.11.27,
- |Out_#_1-Tmp2_1|<Dif & |Out_#_2-Tmp2_2|<=1& |Out_#_3-Tmp2_3|<=1);
- //17.04.13
- if(length(Tmp3)==0,
- Out=append(Out,Tmp2);
- ,
- forall(Tmp3, //16.11.27
- Out_#_1=(Out_#_1+Tmp2_1)/2;//17.04.14
- );
- );
- ); // 15.04.06 until
- Out;
-);
-
-Intersectcrvs(Gr1,Gr2):=Intersectcrvs(Gr1,Gr2,[]);
-//help:Intersectcrvs("gr1","pa1");
-Intersectcrvs(Gr1,Gr2,options):=(
- regional(tmp,tmp1,tmp2);
- tmp1=IntersectcrvsPp(Gr1,Gr2,options);
- apply(tmp1,#_1);
-);
-///////// End of old Intersect ////////////
-
-/////////// Start of new Intersect //////////////
-
-Intersectline(p1,v1,p2,v2):=(
- regional(Eps,d,dt,ds,t,s,pt,out,tmp,tmp1,tmp2,tmp3);
- Eps=10^(-5);
- out=[];
- tmp=Dotprod(v1,v2);
- tmp1=[tmp,|v1|^2];
- tmp2=[-|v2|^2,-tmp];
- tmp3=[Dotprod(p2-p1,v2),Dotprod(p2-p1,v1)];
- d=Crossprod(tmp1,tmp2);
- tmp=abs(Crossprod(v1,v2));
- if(tmp>Eps,
- dt=Crossprod(tmp3,tmp2);
- ds=Crossprod(tmp1,tmp3);
- t=dt/d;
- s=ds/d;
- pt=p1+v1*t;
- out=[pt,t,s];
- ,
- tmp1=Crossprod(p2-p1,v1)/|v1|; //18.01.05
- out=[abs(tmp1)]; //18.01.05
- );
- out;
-);
-
-Intersectseg(seg1,seg2):=Intersectseg(seg1,seg2,0.01);
-Intersectseg(seg1org,seg2org,Eps1):=(
- regional(Eps,seg1,seg2,p1,p2,q1,q2,t,s,pt,n,pts,out,dist,
- tmp,tmp1,tmp2,tmp3);
- Eps=10^(-4);
- //Eps1=0.01;
- seg1=seg1org;
- seg2=seg2org;
- if(isstring(seg1),seg1=parse(seg1));
- if(isstring(seg2),seg2=parse(seg2));
- out=[];
- p1=seg1_1; q1=seg1_2;
- p2=seg2_1; q2=seg2_2;
- if((|q1-p1|<Eps)%(|q2-p2|<Eps),
- out=[-1];
- ,
- tmp=Intersectline(p1,q1-p1,p2,q2-p2);
- if(islist(tmp_1),
- pt=tmp_1; t=tmp_2; s=tmp_3;
- if((t*(t-1)<Eps)&(s*(s-1)<Eps),
- out=[0,pt,t,s];
- ,
- t=min([max([t,0]),1]);
- s=min([max([s,0]),1]);
- tmp3=[|p1-p2|,|p1-q2|,|q1-p2|,|q1-q2|]; //18.01.30from
- tmp1=[Op(2,q2-p2),-Op(1,q2-p2)];
- tmp=Intersectline(p1,tmp1,p2,q2-p2);
- if(islist(tmp_1),
- if(tmp_3*(tmp_3-1)<Eps,
- tmp3=append(tmp3,|tmp_1-p1|);
- );
- );
- tmp=Intersectline(q1,tmp1,p2,q2-p2);
- if(islist(tmp_1),
- if(tmp_3*(tmp_3-1)<Eps,
- tmp3=append(tmp3,|tmp_1-q1|);
- );
- );
- tmp1=[Op(2,q1-p1),-Op(1,q1-p1)];
- tmp=Intersectline(p2,tmp1,p1,q1-p1);
- if(islist(tmp_1),
- if(tmp_3*(tmp_3-1)<Eps,
- tmp3=append(tmp3,|tmp_1-p2|);
- );
- );
- tmp=Intersectline(q2,tmp1,p1,q1-p1);
- if(islist(tmp_1),
- if(tmp_3*(tmp_3-1)<Eps,
- tmp3=append(tmp3,|tmp_1-q2|);
- );
- );
- out=[min(tmp3),pt,t,s]; //18.01.30until
- );
- ,
- dist=tmp_1;
- tmp1=q1-p1;
- n=[tmp1_2,-tmp1_1]/|tmp1|;
- pts=[];
- tmp=Intersectline(p1,n,p2,q2-p2);
- if(tmp_3*(tmp_3-1)<Eps,
- tmp1=(1-tmp_3)*p2+tmp_3*q2;
- pts=append(pts,[tmp1,0,tmp_3]);
- );
- tmp=Intersectline(q1,n,p2,q2-p2);
- if(tmp_3*(tmp_3-1)<Eps,
- tmp1=(1-tmp_3)*p2+tmp_3*q2;
- pts=append(pts,[tmp1,1,tmp_3]);
- );
- tmp=Intersectline(p2,n,p1,q1-p1);
- if(tmp_3*(tmp_3-1)<Eps,
- tmp1=(1-tmp_3)*p1+tmp_3*q1;
- pts=append(pts,[tmp1,tmp_3,0]);
- );
- tmp=Intersectline(q2,n,p1,q1-p1);
- if(tmp_3*(tmp_3-1)<Eps,
- tmp1=(1-tmp_3)*p1+tmp_3*q1;
- pts=append(pts,[tmp1,tmp_3,2]);
- );
- if(length(pts)==0,
- tmp1=min([|p2-p1|,|q2-p1|,|p2-q1|,|q2-q1|]);
- out=[tmp1];
- ,
- if(dist>Eps1,
- out=[dist];
- ,
- tmp=apply(pts,#_1_1);
- tmp1=sum(tmp)/(length(pts));
- tmp=apply(pts,#_1_2);
- tmp2=sum(tmp)/(length(pts));
- tmp3=[tmp1,tmp2];
- tmp=Nearestpt(tmp3,seg1);
- tmp1=tmp_2;
- tmp=Nearestpt(tmp3,seg2);
- tmp2=tmp_2;
- out=[dist,tmp3,tmp1,tmp2];
- );
- );
- );
- );
- out;
-);
-
-Osplineseg(list):=Osplineseg(list,[]);
-Osplineseg(ptlist,optionsorg):=(
- regional(tmp,tmp1,tmp2,list,ptL,ctrL,Eps,Eps0,
- p0,p1,p2,p3,pQ,pR,cc,p01,p02,p11,p12,p21,p22,p31,p32,out);
- Eps=10^(-2);
- Eps0=10^(-6);
- if(isstring(ptlist),list=parse(ptlist),list=ptlist);
- p0=list_1; p1=list_2; p2=list_3; p3=list_4;
- tmp=1+sqrt((1+Dotprod(p2-p0,p3-p1)/|p2-p0|/|p3-p1|)/2);
- cc=4*|p2-p1|/3/(|p2-p0|+|p3-p1|)/tmp;
- pQ=p1+cc*(p2-p0); // 15.09.21 // 16.08.16
- pR=p2+cc*(p1-p3); // 16.08.16
- ctrL=[pQ,pR];
- options=optionorg;
- options=concat(options,["Num=20","nodata"]);
- out=Bezier("",[p1,p2],ctrL,options);
- out;
-);
-
-Intersectpartseg(crv1,crv2,ii,jj,Eps1,Eps2):=(
- Intersectpartseg(crv1,crv2,ii,jj,Eps1,Eps2,10*Eps2);
-);
-Intersectpartseg(crv1org,crv2org,ii,jj,Eps1,Eps2,Dist):=(
- regional(crv1,crv2,Eps,dst,kk,ll,seg1,seg2,snang,
- p0,p1,p2,p3,os1,os2,out,tmp,tmp1,tmp2,flg);
- crv1=crv1org; crv2=crv2org;
- if(isstring(crv1),crv1=parse(crv1));
- if(isstring(crv2),crv2=parse(crv2));
- Eps=10^(-4);
-// Eps1=0.01;
-// Eps2=0.1;
-// Dist=10*Eps2;
- out=[];
- seg1=[crv1_ii,crv1_(ii+1)];
- seg2=[crv2_jj,crv2_(jj+1)];
- tmp1=seg1_2-seg1_1;
- tmp2=seg2_2-seg2_1;
- snang=abs(Crossprod(tmp1,tmp2))/(norm(tmp1)*norm(tmp2));
- tmp=Intersectseg(seg1,seg2,Eps1);
- dst=tmp_1;
- if(dst<Eps,
- out=[tmp_2,ii+tmp_3,jj+tmp_4,dst,snang];
- ,
- if(dst<Eps2,
- if((length(crv1)==2)%(|seg1_2-seg1_1|>Dist-Eps),
- os1=seg1;
- ,
- p1=seg1_1; p2=seg1_2;
- if(ii==1,
- p3=crv1_3;
- tmp=p2-p1;
- tmp=(p1+p2)/2+[tmp_2,-tmp_1];
- p0=Reflectpoint(p3,[(p1+p2)/2,tmp]);
- ,
- if(ii==length(crv1)-1,
- p0=crv1_(ii-1);
- tmp=p2-p1;
- tmp=(p1+p2)/2+[tmp_2,-tmp_1];
- p3=Reflectpoint(p0,[(p1+p2)/2,tmp]);
- ,
- p0=crv1_(ii-1); p3=crv1_(ii+2);
- );
- );
- os1=Osplineseg([p0,p1,p2,p3]);
- );
- if((length(crv2)==2)%(|seg2_2-seg2_1|>Dist-Eps), //18.01.05
- os2=seg2;
- ,
- p1=seg2_1; p2=seg2_2;
- if(jj==1,
- p3=crv2_3;
- tmp=p2-p1;
- tmp=(p1+p2)/2+[tmp_2,-tmp_1];
- p0=Reflectpoint(p3,[(p1+p2)/2,tmp]);
- ,
- if(jj==length(crv2)-1,
- p0=crv2_(jj-1);
- tmp=p2-p1;
- tmp=(p1+p2)/2+[tmp_2,-tmp_1];
- p3=Reflectpoint(p0,[(p1+p2)/2,tmp]);
- ,
- p0=crv2_(jj-1); p3=crv2_(jj+2);
- );
- );
- os2=Osplineseg([p0,p1,p2,p3]);
- );
- tmp2=[];
- forall(1..(length(os1)-1),kk,
- forall(1..(length(os2)-1),ll,
- seg1=[os1_kk,os1_(kk+1)];
- seg2=[os2_ll,os2_(ll+1)];
- tmp=Intersectseg(seg1,seg2,Eps1);
- if((tmp_1<Eps1)&(length(tmp)>1), //18.02.06
- if(tmp_1<dst+Eps,
- dst=tmp_1;
- tmp2=select(tmp2,#_1<dst);
- tmp2=append(tmp2,[dst,tmp_2]);
- );
- );
- );
- );
- if(length(tmp2)>0,
- tmp=apply(tmp2,#_2_1);
- tmp1=[sum(tmp)/length(tmp2)];
- tmp=apply(tmp2,#_2_2);
- tmp1=append(tmp1,sum(tmp)/length(tmp2));
- out=[tmp1];
- p1=crv1_ii; p2=crv1_(ii+1);
- tmp=[Op(2,p2-p1),-Op(1,p2-p1)];
- tmp=Intersectline(out_1,tmp,p1,p2-p1);
- tmp=min([max([tmp_3,0]),1]);
- out=[tmp1,ii+tmp];
- p1=crv2_jj; p2=crv2_(jj+1);
- tmp=[Op(2,p2-p1),-Op(1,p2-p1)];
- tmp=Intersectline(out_1,tmp,p1,p2-p1);
- tmp=min([max([tmp_3,0]),1]);
- out=concat(out,[jj+tmp,dst,snang]);
- );
- );
- );
- out;
-);
-
-if(1==0,
-
-Collectnear(ptdL,Eps2):=(
- regional(Eps,gL,rL,numL,ii,jj,flg,tmp,tmp1);
- Eps=10^(-4);
- gL=[ptdL_1];
- rL=ptdL_(2..(length(ptdL)));
- flg=0;
- forall(1..(length(ptdL)-1),ii,
- if(flg==0,
- numL=[];
- forall(1..(length(rL)),jj,
- tmp1=100;
- forall(gL,
- tmp=|#_1-rL_jj_1|;
- if(tmp<tmp1,tmp1=tmp);
- );
- if(tmp1<Eps2,numL=append(numL,jj));
- );
- if(length(numL)==0,
- flg=1;
- ,
- gL=concat(gL,rL_(numL));
- rL=remove(rL,rL_(numL));
- );
- );
- );
- [gL,rL];
-);
-
-);
-
-Collectsameseg(ptdL):=(
- regional(Eps,gL,rL,numL,ii,jj,flg,tmp,tmp1,tmp2,tmp1md,
- dst,kk,s1,e1,s2,e2);
- Eps00=10^(-8);
- if(length(ptdL)==0,
- gL=[];rL=[];
- ,
- tmp1md=[ptdL_1];
- rL=ptdL_(2..(length(ptdL)));
- tmp1=tmp1md_1;
- kk=floor(tmp1_2);
- if(tmp1_2<kk+Eps00,
- s1=kk-1-Eps00; e1=s1+2+2*Eps00;
- ,
- s1=kk-Eps00; e1=s1+1+2*Eps00;
- );
- kk=floor(tmp1_3);
- if(tmp1_3<kk+Eps00,
- s2=kk-1-Eps00; e2=s2+2+2*Eps00;
- ,
- s2=kk-Eps00; e2=s2+1+2*Eps00;
- );
- numL=[];
- forall(1..(length(rL)),ii,
- tmp=rL_ii;
- tmp1=tmp_2;tmp2=tmp_3;
- if((tmp1>s1)&(tmp1<e1)&(tmp2>s2)&(tmp2<e2),
- tmp1md=append(tmp1md,tmp);
- numL=append(numL,ii);
- );
- );
- gL=[];
- tmp=apply(tmp1md,#_4);
- dst=min(tmp);
- forall(tmp1md,
- if(#_4<dst+Eps00,
- gL=append(gL,#);
- );
- );
- rL=remove(rL,rL_(numL));
- );
- [gL,rL];
-);
-
-IntersectcurvesPp(crv1org,crv2org):=IntersectcurvesPp(crv1org,crv2org,[]);
-IntersectcurvesPp(crv1org,crv2org,options):=(
-//help:IntersectcurvesPp(crv1,crv2);
-//help:IntersectcurvesPp(options=[Eps1(0.01),Eps2(0.1),Dist(2)])
- regional(Eps,Eps1,Eps2,Dist,crv1,crv2,ii,jj,seg1,seg2,self,loopL,out,
- flg,tmp,tmp1,tmp2);
- Eps=10^(-4);
- Eps1=0.01;
- Eps2=0.1;
- Dist=10*Eps2;
- if(length(options)>0,
- Eps1=options_1;
- if(length(options)>1,
- Eps2=options_2;
- Dist=10*Eps2;
- if(length(options)>2,
- Dist=options_3;
- );
- );
- );
- if(isstring(crv1org),tmp1=parse(crv1org),tmp1=crv1org);//18.01.05from
- if(isstring(crv2org),tmp2=parse(crv2org),tmp2=crv2org);
- tmp1=apply(tmp1,LLcrd(#));
- tmp2=apply(tmp2,LLcrd(#));
- crv1=[tmp1_1];
- forall(tmp1,
- tmp=crv1_(length(crv1));
- if(|tmp-#|>Eps,
- crv1=append(crv1,#);
- );
- );
- crv2=[tmp2_1];
- forall(tmp2,
- tmp=crv2_(length(crv2));
- if(|tmp-#|>Eps,
- crv2=append(crv2,#);
- );
- );//18.01.05until
- if(crv1==crv2,
- self=1;
- ,
- self=0;
- );
- out=[];
- forall(1..(length(crv1)-1),ii,
- if(self==0,
- loopL=1..(length(crv2)-1);
- ,
- loopL=(ii+2)..(length(crv2)-1);
- );
- forall(loopL,jj,
- tmp=Intersectpartseg(crv1,crv2,ii,jj,Eps1,Eps2,Dist);
- if(length(tmp)>0,
- if(length(out)==0,
- out=[tmp];
- ,
- tmp1=out_(length(out));
- if(|tmp1_1-tmp_1|>Eps1,
- out=append(out,tmp);
- );
- );
- if(self==1,
- tmp=[tmp_1,tmp_3,tmp_2,tmp_4,tmp_5];
- out=append(out,tmp);
- );
- );
- );
- );
- tmp2=out;
- out=[];
- tmp1=tmp2;
- flg=0;
- forall(1..(length(tmp2)),
- if(flg==0,
- tmp=Collectsameseg(tmp1);
- out=append(out,tmp_1);
- if(length(tmp_2)==0,
- flg=1;
- ,
- tmp1=tmp_2;
- );
- );
- );
- forall(1..(length(out)),ii,
- tmp1=out_ii;
- if(length(tmp1)==1,
- out_ii=tmp1_1;
- ,
- tmp=apply(tmp1,#_4);
- dst=min(tmp);
- tmp1=select(tmp1,#_4<dst+Eps);
- tmp=apply(tmp1,#_1);
- tmp=sum(tmp)/length(tmp);
- tmp2=[tmp];
- tmp=Nearestpt(tmp2_1,crv1org);
- tmp2=append(tmp2,tmp_2);
- tmp=Nearestpt(tmp2_1,crv2org);
- tmp2=append(tmp2,tmp_2);
- tmp2=concat(tmp2,[dst,tmp1_1_5]);
- out_ii=tmp2;
- );
- );
- out;
-);
-
-Intersectcurves(crv1org,crv2org):=Intersectcurves(crv1org,crv2org,[]);
-Intersectcurves(crv1org,crv2org,options):=(
-//help:Intersectcurves(crv1,crv2);
-//help:Intersectcurves(options=[Eps1(0.1),Dist(2)])
- regional(tmp);
- tmp=IntersectcurvesPp(crv1org,crv2org,options);
- tmp=apply(tmp,#_1);
-);
-
-///////////End of new Intersect //////////////
-
-NearestptcrvPhy(point,PL):=(
- regional(tmp,pP,plist);
- pP=Pcrd(point);
- if(isstring(PL),plist=parse(PL),plist=PL);
- if(MeasureDepth(plist)==2,plist=plist_1);
- plist=apply(plist,#); // 14.12.18
- tmp=Nearestpt(pP,plist);
- tmp=tmp_1;
- [tmp_1/SCALEX,tmp_2/SCALEY];
-);
-
-Nearestptcrv(point,plist):=(
-//help:Nearestptcrv(A,"gr1");
- regional(tmp);
- tmp=Nearestpt(point,plist);
- tmp_1;
-);
-
-Nearestpt(point,PL2):=(
- regional(PL1,PL,Ans,Flg,Eps,pA,Pm,Im,Sm,Nn,Ni,
- a1,b1,a2,b2,v1,v2,x1,x2,Tmp,rT,pP,sS,Lm,Pm,Sm,Flg);
-//help:Nearestpt("gr1","gr2");
- if(isstring(point),PL1=parse(point),PL1=point);
- if(MeasureDepth(PL1)==2,PL1=PL1_1);
- if(!islist(PL1_1),
- PL1=[PL1];
- Flg=0;
- ,
- Flg=1;
- );
- if(isstring(PL2),PL=parse(PL2),PL=PL2);
- if(MeasureDepth(PL)==2,PL=PL_1);
- Eps=10^(-6);
- Ans=[PL1_1,1,PL_1,1,|PL1_1-PL_1|];
- forall(1..(length(PL1)),Nn, // 16.05.04
- pA=PL1_Nn;
- Pm=PL_1;
- Im=1;
- Sm=|Pm-pA|;
- forall(1..(length(PL)-1),Ni,
- a1=PL_Ni_1; a2=PL_Ni_2;
- b1=PL_(Ni+1)_1; b2=PL_(Ni+1)_2;
- v1=b1-a1; v2=b2-a2;
- x1=pA_1; x2=pA_2;
- Tmp=v2^2+v1^2;
- if(abs(Tmp)>Eps,
- rT=(-a2*v2-v1*a1+v1*x1+x2*v2)/Tmp;
- if(rT<-Eps,
- pP=[a1,a2];
- ,
- if(rT>1+Eps,
- pP=[b1,b2];
- ,
- pP=[a1+rT*v1,a2+rT*v2];
- );
- );
- sS=|pP-pA|;
- if(sS<Sm-Eps,
- Tmp=ParamonCurve(pP,Ni,PL);
- Pm=pP; Lm=Tmp; Sm=sS;
- );
- );
- if(Sm<Ans_5, // 16.05.03from
- Ans=[pA,Nn,Pm,Lm,Sm];
- );
- ); // 16.05.03until
- );
- if(Flg==0,
- Ans=Ans_(3..5);
- );
- Ans;
-);
-
-Derivative(fun,var,value):=Derivative(fun,var,value,[]);
-Derivative(fun,var,value,options):=(
-//help:Derivative("x^3","x",2);
- regional(eqL,method,eps,str,x1,x2,y1,y2,tmp,tmp1,tmp2);
- method="N";
- tmp=Divoptions(options);
- eqL=tmp_5;
- forall(eqL,
- tmp=substring(#,"=");
- tmp1=Toupper(substring(#,0,1));
- tmp2=substring(#,tmp,tmp+1);
- if(tmp1=="M",
- method=Toupper(tmp2);
- );
- );
- if(method=="D",
- str="d(";
- str=str+replace(fun,var,"#")+",";
- str=str+value+")";
- tmp=Pcrd([1,parse(str)]); // 14.11.08
- tmp_2;
- );
- if(method=="N",
- eps=10^(-6);
- x1=max(XMIN,value-eps);
- x2=min(XMAX,value+eps);
- tmp=Assign(fun,[var,"("+format(x1,6)+")"]);//180408
- y1=parse(tmp);
- tmp=Assign(fun,[var,"("+format(x2,6)+")"]);//180408
- y2=parse(tmp);
- (y2-y1)/(x2-x1);
- );
-);
-
-Integrate(pltdata,range):=Integrate(pltdata,range,[]);
-Intergrate(Arg1,Arg2,Arg3):=(
- regional(pltdata,range,options,fnstr,vartr);
- if(islist(Arg2),
- pltdata=Arg1;
- range=Arg2;
- options=Arg3;
- Integrate(pltdata,range,options);
- ,
- fnstr=Arg1;
- vastr=Arg2;
- range=Arg3;
- Integrate(fnstr,vastr,range,[]);
- );
-);
-
-Integrate(pltdata,range,options):=(
-//help:Integrate("gr1",[1,3]);
-//help:Integrate(options=["Rule=o"]);
- regional(tmp,tmp1,eqL,Rule,pdata,Sm,ptP,ptQ,list,va1,va2);
- tmp=Divoptions(options);
- eqL=tmp_5;
- Rule="o";
- forall(eqL,
- if(Toupper(substring(#,0,1))=="R",
- tmp=indexof(#,"=");
- Rule=substring(#,tmp,tmp+1);
- );
- );
- if(Rule=="o",
- Sm= IntegrateO(pltdata,range);
- ,
- if(isstring(pltdata),pdata=parse(pltdata),pdata=pltdata);
- if(MeasureDepth(pdata)==2,pdata=pdata_1);
- va1=MeetCurve(pdata,range_1,0);
- va2=MeetCurve(pdata,range_2,0);
- list=select(pdata,(#_1>range_1 & #_1<range_2));
- list=apply(list,LLcrd(#)); // 15.09.14
- list=concat([va1],list);
- list=concat(list,[va2]);
- Sm=0;
- forall(1..(length(list)-1),
- ptP=list_#; // 15.09.14
- ptQ=list_(#+1);
- Sm=Sm+(ptP_2+ptQ_2)*(ptQ_1-ptP_1)/2;
- );
- Sm;
- );
-);
-
-Integrate(fnstr,vastr,range,options):=(
-//help:Integrate("sin(x)","x",[0,pi],["Num=100","Rule=s"]);
- regional(tmp,tmp1,Sm,Lx,Rx,va1,va2,Num,Waysx,ex,dx,xn,yn,x0,x1,x2,y0,y1,y2);
- Num=100;
- Way="t";
- forall(options,
- if(indexof(#,"=")>0,
- if(indexof(#,"N=")>0,
- Num=parse(substring(#,indexof(#,"="),length(#)));
- );
- if(indexof(#,"Num=")>0,
- Num=parse(substring(#,indexof(#,"="),length(#)));
- );
- if(Toupper(substring(#,0,1))=="R",
- tmp=indexof(#,"=");
- Way=substring(#,tmp,tmp+1);
- );
- );
- );
- Sm=0;
- if(Way=="t",
- forall(1..Num,
- Lx=range_1+(range_2-range_1)*(#-1)/Num;
- Rx=range_1+(range_2-range_1)*#/Num;
- va1=parse(replace(fnstr,vastr,textformat(Lx,5)));
- va2=parse(replace(fnstr,vastr,textformat(Rx,5)));
- Sm=Sm+(va1+va2)*(Rx-Lx)/2;
- );
- ,
- sx=range_1;
- ex=range_2;
- dx=(ex-sx)/Num;
- xn=apply(0..Num,sx+#*dx);
- yn=apply(xn,parse(replace(fnstr,vastr,textformat(#,5))));
- dx=dx/2;
- repeat(Num,s,
- x0=xn_s;
- x1=(xn_s+xn_(s+1))/2;
- x2=xn_(s+1);
- y0=yn_s;
- y1=parse(replace(fnstr,vastr,textformat(x1,5)));
- y2=yn_(s+1);
- Sm=Sm+dx*(y0+4*y1+y2)/3;
- );
- );
- Sm;
-);
-
-IntegrateO(p0org,p1org,p2org,p3org):=(
- regional(p0,p1,p2,p3,pQ,pR,cc,p01,p02,
- p11,p12,p21,p22,p31,p32, tmp);
- if(ispoint(p0org),p0=p0org.xy,p0=p0org); // 16.03.10
- if(ispoint(p1org),p1=p1org.xy,p1=p1org); // 16.03.16
- if(ispoint(p2org),p2=p2org.xy,p2=p2org);
- if(ispoint(p3org),p3=p3org.xy,p3=p3org);
- tmp=1+sqrt((1+Dotprod(p2-p0,p3-p1)/|p2-p0|/|p3-p1|)/2);
- cc=4*|p2-p1|/3/(|p2-p0|+|p3-p1|)/tmp;
- pQ=p1+cc*(p2-p0);
- pR=p2+cc*(p1-p3);
- p01=p1_1; p02=p1_2;
- p31=p2_1; p32=p2_2;
- p11=pQ_1; p12=pQ_2;
- p21=pR_1; p22=pR_2;
- tmp=-6*p12*p01+3*p12*p21+3*p12*p31+6*p02*p11-
- 10*p02*p01+3*p02*p21+p02*p31-3*p22*p11-
- 3*p22*p01+6*p22*p31-3*p32*p11-p32*p01-
- 6*p32*p21+10*p32*p31;
- tmp=tmp/20;
-);
-IntegrateO(pltdata,rangeorg):=(
-//help:IntegrateO("gr1",[0,2]);
- regional(tmp,tmp1,tmp2,pdata,va1,va2,list,Bzk,Bzc,range,pmflg,
- Sm,p0,p1,p2,p3,pQ,pR,cc,p01,p02,p11,p12,p21,p22,p31,p32);
- if(isstring(pltdata),
- pdata=parse(pltdata);
- ,
- pdata=pltdata;
- );
- if(MeasureDepth(pdata)==2,pdata=pdata_1);
- range=rangeorg;
- pmflg=1;
- if(range_2<range_1,
- range=reverse(range);
- pmflg=-1;
- );
- va1=MeetCurve(pdata,range_1,0);
- va2=MeetCurve(pdata,range_2,0);
- list=select(pdata,(#_1>range_1 & #_1<range_2));
- if(length(list)>0, // 16.09.25
- if(list_1_1>list_(length(list))_1, //16.11.03
- list=reverse(list);
-// pmflg=pmflg*(-1);
- );
- );
- list=apply(list,LLcrd(#));
- list=concat([va1],list);
- list=concat(list,[va2]);
- Sm=0;
- forall(1..(length(list)-1),
- p1=list_#;
- p2=list_(#+1);
- if(#==1 % #==length(list)-1,
- tmp1=(p1_2+p2_2)*(p2_1-p1_1)/2;
- Sm=Sm+tmp1;
- ,
- p0=list_(#-1);
- p3=list_(#+2);
- tmp=1+sqrt((1+Dotprod(p2-p0,p3-p1)/|p2-p0|/|p3-p1|)/2);
- cc=4*|p2-p1|/3/(|p2-p0|+|p3-p1|)/tmp;
- pQ=p1+cc*(p2-p0);
- pR=p2+cc*(p1-p3);
- p01=p1_1; p02=p1_2;
- p31=p2_1; p32=p2_2;
- p11=pQ_1; p12=pQ_2;
- p21=pR_1; p22=pR_2;
- tmp1=-6*p12*p01+3*p12*p21+3*p12*p31+6*p02*p11-
- 10*p02*p01+3*p02*p21+p02*p31-3*p22*p11-
- 3*p22*p01+6*p22*p31-3*p32*p11-p32*p01-
- 6*p32*p21+10*p32*p31;
- tmp1=tmp1/20;
- Sm=Sm+tmp1;
- );
- );
- if(pmflg==-1,
- Sm=-Sm;
- );
- Sm;
-);
-
-Findarea(pdstr):=(
-//help:Findarea("sgABCA");
- regional(pd,p1,p2,s,tmp);
- if(isstring(pdstr),pd=parse(pdstr),pd=pdstr);
- s=0;
- forall(1..(length(pd)-1),
- p1=Lcrd(pd_#);
- p2=Lcrd(pd_(#+1));
- tmp=(p1_2+p2_2)*(p2_1-p1_1)/2;
- s=s+tmp;
- );
- if(s<0,s=-s);
- s;
-);
-
-Findarea(pdstr):=( // 15.11.27
-//help:Findarea("cr1");
- regional(pd,p0,p1,p2,p3,s,tmp);
- if(isstring(pdstr),pd=parse(pdstr),pd=pdstr);
- s=0;
- forall(1..(length(pd)-1),
- p1=pd_#;
- p2=pd_(#+1);
- if(#==1,p0=pd_(length(pd)-1),p0=pd_(#-1));
- if(#==length(pd)-1,p3=pd_2,p3=pd_(#+2));
- tmp=IntegrateO(p0,p1,p2,p3);
- s=s+tmp;
- );
- if(s<0,s=-s);
- s;
-);
-
-Findlength(pdstr):=(
-//help:Findlength("gr1");
- regional(pd,p1,p2,s,tmp);
- if(isstring(pdstr),pd=parse(pdstr),pd=pdstr);
- s=0;
- forall(1..(length(pd)-1),
- p1=Lcrd(pd_#);
- p2=Lcrd(pd_(#+1));
- tmp=|p2-p1|;
- s=s+tmp;
- );
- s;
-);
-
-Inversefun(fnstr,rngstr,value):=(
- regional(tmp,varstr,range,x1,x2,x3,va1,va2);
- tmp=indexof(rngstr,"=");
- varstr=substring(rngstr,0,tmp-1);
- range=parse(substring(rngstr,tmp,length(rngstr)));
- x1=range_1; x2=range_2;
- repeat(15,
- x3=(x1+x2)/2;
- va1=parse(replace(fnstr,varstr,textformat(x1,5)));
- va2=parse(replace(fnstr,varstr,textformat(x3,5)));
- if((va1>value & va2>value) % (va1<value & va2<value),
- x1=x3;
- ,
- x2=x3;
- );
- );
- va1=parse(replace(fnstr,varstr,textformat(x1,5)))-value;
- va2=parse(replace(fnstr,varstr,textformat(x2,5)))-value;
- if(x1==range_1 % x2==range_2,
- println("not found in ("+textformat(range_1,5)
- +","+textformat(range_2,5)+")");
- );
- if(abs(va1)<=abs(va2),x1,x2);
-);
-
-Com0th(String):=(
- regional(str);
- str=replace(String,LFmark,"");
- COM0thlist=append(COM0thlist,str);
-);
-
-Com1st(String):=(
- regional(str);
- str=replace(String,LFmark,"");
- GLIST=append(GLIST,str); // 15.05.27
-// COM1stlist=append(COM1stlist,str);
-);
-
-Com2nd(String):=(
-// help:Com2nd("");
- regional(str);
- str=replace(String,LFmark,"");
- COM2ndlist=append(COM2ndlist,str);
-);
-
-Com2ndpre(String):=(
- regional(str);
- str=replace(String,LFmark,"");
- COM2ndlist=prepend(str,COM2ndlist);
-);
-
-Texcom(strorg):=( //17.09.22
-//help:Texcom("\color[cmyk]{0,0,0,0.5}");
- regional(str);
- str=replace(strorg,"\","\\");
- str=replace(str,"\\\\","\\");
- str="Texcom("+Dq+str+Dq+")";
- Com2nd(str);
-);
-
-Ketcindylogo():=(
-//help:Ketcindylogo();
- Com2nd("Texcom("+Dq+"\def\ketcindy{{K\kern-.20em
- \lower.5ex\hbox{E}\kern-.125em{TCindy}}}"+Dq+")");
-);
-
-Drwline():=Drwline(textformat(GrL,5));
-Drwline(gstr):=(
- Com2nd("Drwline("+gstr+")");
-);
-
-Dashline(gstr):=(
- Com2nd("Dashline("+gstr+")");
-);
-
-Invdashline(gstr):=(
- Com2nd("Invdashline("+gstr+")");
-);
-
-Dottedline(gstr):=(
- Com2nd("Dottedline("+gstr+")");
-);
-
-SetEnglish():=(
-//help:SetEnglish();
- Com0th("setlanguage('en')");
-);
-
-Drawlinetype(name,type):=(
-//help:Drawlinetype("gr1","da,1");
- regional(Dop,tmp,tmp1,tmp2);
- Dop="";
- tmp1=indexof(type,",");
- if(tmp1>0,
- Dop=","+substring(type,tmp1,length(type));
- );
- tmp1=Toupper(substring(type,0,3));
- if(tmp1=="DR",
- Drwline(name+Dop);
- );
- if(tmp1=="DA",
- Dashline(name+Dop);
- );
- if(tmp1=="ID",
- Invdashline(name+Dop);
- );
- if(tmp1=="DO",
- Dottedline(name+Dop);
- );
-);
-
-Setunitlen():=(
- println(ULEN);
-);
-Setunitlen(UI):=(
- regional(Dx,Dy,Sym,SL,OL,Is,VL,Ucode,ii,cha,
- str,Unit,Valu,flg,tmp);
- Dx=XMAX-XMIN;
- Dy=YMAX-YMIN;
- Sym=".0123456789 +-*/";
- SL=Sym;
- OL="+-*/";
- if(length(UI)>0,
- ULEN=UI;
- GLIST=append(GLIST,"Setunitlen("+Dq+string+Dq+")");
- );
- Is=1;
- VL="";
- Ucode=ULEN;
- flg=0;
- forall(1..(length(Ucode)),ii,
- if(flg==0,
- cha=substring(Ucode,ii-1,ii);
- if(indexof(SL,cha)>0,
- if(indexof(OL,cha)>0,
- tmp=substring(Ucode,Is-1,ii);
- str=VL+tmp+cha;
- VL=str;
- Is=ii+1;
- );
- ,
- Unit=substring(Ucode,ii-1,ii+1);
- str=substring(Ucode,Is-1,ii-1);
- VL=VL+str;
- flg=1;
- );
- );
- );
- Valu=parse(VL);
- str=format(Valu,6);
- ULEN=str+Unit;
- if(Unit=="cm",MilliIn=1000/2.54*Valu);
- if(Unit=="mm",MilliIn=1000/2.54*Valu/10);
- if(Unit=="in",MilliIn=1000*Valu);
- if(Unit=="pt",MilliIn=1000/72.27*Valu);
- if(Unit=="pc",MilliIn=000/6.022*Valu);
- if(Unit=="bp",MilliIn=1000/72*Valu);
- if(Unit=="dd2",MilliIn=1000/1238/1157/72.27*Valu);
- if(Unit=="cc",MilliIn=1000/1238/1157/72.27*12*Valu);
- if(Unit=="sp",MilliIn=1000/72.27/65536*Valu/10);
- MARKLEN=MARKLENNow*1000/2.54/MilliIn;
- MEMORI=MEMORINow*1000/2.54/MilliIn;
-);
-
-Setmarklen(ratio):=(
-//help:Setmarklen(0.2);
- MARKLEN=ratio*0.2;//16.11.01
- Com2nd("Setmarklen("+textformat(ratio,5)+")");
-);
-
-Setorigin(point):=(
-//help:Setorigin([1,2]);
- Com2nd("Setorigin("+textformat(point,5)+")");
-);
-
-Fontsize(sizestr):=(
-//help:Fontsize("s");
- Com2nd("Fontsize('"+sizestr+"')");
-);
-
-Setpen(width):=(
-//help:Setpen(2);
- PenThick=PenThickInit*width; // 16.04.09
- Com2nd("Setpen("+text(width)+")");
-);
-
-Lcrd(pt):=(
- regional(tmp);
- if(ispoint(pt),
- tmp=[pt.x/SCALEX,pt.y/SCALEY];
- ,
- tmp=pt;
- );
- tmp;
-);
-
-Pcrd(pt):=(
- regional(tmp);
- if(ispoint(pt),
- tmp=re(pt.xy); // 15.07.24
- ,
- tmp=[pt_1*SCALEX,pt_2*SCALEY];
- );
- tmp;
-);
-
-LLcrd(pt):=(
- regional(tmp);
- if(ispoint(pt),
- tmp=pt.xy
- ,
- tmp=pt;
- );
- tmp=[tmp_1/SCALEX,tmp_2/SCALEY];
- tmp;
-);
-
-Doscaling(pltdata):=(
- regional(Level,Out,gL,gr,tmp);
- if(ispoint(pltdata) % isreal(pltdata_1),
- gL=[[pltdata]];
- Level=0;
- ,
- if(ispoint(pltdata_1) % isreal(pltdata_1_1),
- gL=[pltdata];
- Level=1;
- ,
- gL=pltdata;
- Level=2;
- );
- );
- Out=[];
- forall(gL,gr,
- tmp=apply(gr,Lcrd(#));
- tmp=apply(tmp,LLcrd(#));
- Out=concat(Out,[tmp]);
- );
- if(Level==0,
- Out=Out_1_1;
- );
- if(Level==1,
- Out=Out_1;
- );
- Out;
-);
-
-Unscaling(pltdata):=(
- regional(Level,Out,gL,gr,tmp);
- if(ispoint(pltdata) % isreal(pltdata_1),
- gL=[[pltdata]];
- Level=0;
- ,
- if(ispoint(pltdata_1) % isreal(pltdata_1_1),
- gL=[pltdata];
- Level=1;
- ,
- gL=pltdata;
- Level=2;
- );
- );
- Out=[];
- forall(gL,gr,
- tmp=apply(gr,Lcrd(#));
- tmp=apply(tmp,LLcrd(#));
- Out=concat(Out,[tmp]);
- );
- if(Level==0,
- Out=Out_1_1;
- );
- if(Level==1,
- Out=Out_1;
- );
- Out;
-);
-
-Setpt(n):=Ptsize(n);
-//help:Setpt(5);
-Ptsize(n):=(
- println("Setpt("+text(n)+")");
- TenSize=TenSizeInit*n;
- Com2nd("Setpt("+text(n)+")"); // 14.01.19
-);
-
-Definecolor(name,data):=(
-//help:Definecolor("mycolor",[1,1,1,0]);
- regional(type,tmp);
- if(length(data)>3,type="cmyk",type="rgb");
- tmp=text(data);
- tmp=substring(tmp,1,length(tmp)-1);
- tmp="\definecolor{"+name+"}{"+type+"}{"+tmp+"}";
- Texcom(tmp);
-);
-
-Setcolor(Par):=(
-//help:Setcolor([1,0,0,1]);
-//help:Setcolor([1,1,0]);
- if(islist(Par),
- if(length(Par)==3,
- Setcolorrgb(Par); // 2015.04.28
-// KCOLOR=Par;
- );
- if(length(Par)==4,
- Setcolor(Par,[]);
- );
- ,
- Setcolor(Par,[]);
- );
-);
-
-Setcolor(colorname,options):=(
-//help:Setcolor("greenyellow",0.3);
- regional(tmp);
- if(isstring(colorname),
- tmp="Setcolor("+Dq+colorname+Dq;
- if(length(options)>0,
- tmp=tmp+","+text(options_1);
- );
- Com2nd(tmp+")");
- );
- if(islist(colorname),
- tmp=text(colorname);
- tmp=substring(tmp,1,length(tmp)-1);
- Texcom("\color[cmyk]{"+tmp+"}"); //17.09.22
- );
-);
-
-Setcolorrgb(colorlist):=(
-// help:Setcolorrgb([0.5,0.3,0.4]);
- regional(tmp);
- tmp=text(colorlist);
- tmp=substring(tmp,1,length(tmp)-1);
- tmp="Texcom("+Dq+"\\color[rgb]{"+tmp+"}"+Dq+")"; //17.10.07
- Com2nd(tmp);
-);
-
-ColorRgb2Cmyk(clr):=(
-// help:ColorRgb([0.2,0.5,0.1]);
- regional(clrnew,tmp,black);
- tmp=apply(clr,1-#);
- black=min(tmp);
- tmp=apply(clr,(1-#-black)/(1-black));
- clrnew=append(tmp,black);
- clrnew;
-);
-
-ColorCmyk2Rgb(clr):=(
-// help:ColorRgb([0.2,0.5,0.1,0.2]);
- regional(clrnew,tmp,black);
- black=clr_4;
- tmp=apply(clr,1-min(1,#*(1-black)+black));
- clrnew=tmp_(1..3);
- clrnew;
-);
-
-Colorrgbhsv(rgb):=(
- regional(varR,varG,varB,varMin,varMax,delMax,hh,ss,vv,delR,delG,delB);
- varR = rgb_1;
- varG = rgb_2;
- varB = rgb_3;
- varMin = min( [varR, varG, varB] );
- varMax = max( [varR, varG, varB] );
- delMax = varMax - varMin ;
- vv = varMax;
- if ( delMax == 0 ,
- hh = 0 ;
- ss = 0 ;
- ,
- ss = delMax / varMax;
- delR = ( ( ( varMax - varR ) / 6 ) + ( delMax / 2 ) ) / delMax;
- delG = ( ( ( varMax - varG ) / 6 ) + ( delMax / 2 ) ) / delMax;
- delB = ( ( ( varMax - varB ) / 6 ) + ( delMax / 2 ) ) / delMax;
- if( varR == varMax ,
- hh = delB - delG;
- ,
- if ( varG == varMax,
- hh = ( 1 / 3 ) + delR - delB;
- ,
- if ( varB == varMax ,
- hh = ( 2 / 3 ) + delG - delR;
- );
- );
- );
- if ( hh < 0 ,hh = hh+1);
- if ( hh > 1 ,hh = hh-1);
- );
- [hh*360,ss,vv];
-);
-
-Colorhsvrgb(sL):=(
- regional(tmp,tmp1,tmp2,tmp3,hi,ff,dL);
- tmp=[sL_1/60,sL_2,sL_3];
- hi=mod(floor(tmp_1),6);
- ff=tmp_1-floor(tmp_1);
- tmp2=tmp_3*[1-tmp_2,1-tmp_2*ff,1-tmp_2*(1-ff)];
- tmp2=append(tmp2,tmp_3);
- if(hi==0,dL=tmp2_[4,3,1]);
- if(hi==1,dL=tmp2_[2,4,1]);
- if(hi==2,dL=tmp2_[1,4,3]);
- if(hi==3,dL=tmp2_[1,2,4]);
- if(hi==4,dL=tmp2_[3,1,4]);
- if(hi==5,dL=tmp2_[4,1,2]);
- dL;
-);
-
-Colorrgbhsl(rgb):=(
- regional(rr,gg,bb,mn,mx,delta,deltaR,deltaG,deltaB,hh,ss,ll);
- rr = rgb_1 ;
- gg = rgb_2 ;
- bb = rgb_3 ;
- mn = min([rr, gg, bb]);
- mx = max([rr, gg, bb]);
- delta = mx - mn;
- ll = (mx + mn) / 2;
- if (delta == 0,
- hh=0;
- ss=0;
- ,
- if (ll < 0.5,
- ss = delta/ (mx + mn);
- ,
- ss = delta / (2 - mx - mn);
- );
- deltaR = (((mx - rr) / 6) + (delta / 2)) / delta;
- deltaG = (((mx - gg) / 6) + (delta / 2)) / delta;
- deltaB = (((mx - bb) / 6) + (delta / 2)) / delta;
- if (rr == mx,
- hh = deltaB - deltaG;
- ,
- if (gg == mx,
- hh = (1 / 3) + deltaR - deltaB;
- ,
- if (bb == mx,
- hh = (2 / 3) + deltaG - deltaR;
- );
- );
- );
- if ( hh < 0, hh = hh+1);
- if ( hh > 1, hh = hh-1);
- );
- [hh*360,ss,ll];
-);
-
-Colorhslrgb(hsl):=(
- regional(hh,ss,ll,rr,gg,bb,var1,var2);
- hh=hsl_1/360;
- ss=hsl_2;
- ll=hsl_3;
- if ( ss == 0.0,
- rr = ll ;
- gg = ll ;
- bb = ll ;
- ,
- if ( ll < 0.5 ,
- var2 = ll * ( 1.0 + ss );
- ,
- var2 = ( ll + ss ) - ( ss * ll );
- );
- var1 = 2.0 * ll - var2;
- rr = hue2rgb( var1, var2, hh + ( 1.0 / 3.0 ) );
- gg = hue2rgb( var1, var2, hh );
- bb = hue2rgb( var1, var2, hh - ( 1.0 / 3.0 ) );
- );
- [rr,gg,bb];
-);
-
-hue2rgb(vv1,vv2,vh):=(
- regional(out);
- if ( vh < 0.0 ,vh =vh+1);
- if ( vh > 1.0 ,vh =vh-1);
- if ( 6.0*vh < 1.0 ,
- out = vv1 + ( vv2 - vv1 ) * 6.0 * vh ;
- ,
- if( 2.0*vh < 1.0 ,
- out = vv2;
- ,
- if ( 3.0*vh < 2.0 ,
- out = vv1 + ( vv2 - vv1 ) * ( ( 2.0 / 3.0 ) - vh ) * 6.0 ;
- ,
- out= vv1 ;
- );
- );
- );
- out;
-);
-
-Colorrgbhwb(sL):=(
- regional(dl1,dl2,dl3);
- dl1 = Colorrgbhsl(sL)_1;//Colorcode("rgb","hsl",sL)_1;
- dl2 = min(sL);
- dl3 = 1 - max(sL);
- dL= [dl1, dl2 , dl3 ];
-);
-
-Colorhwbrgb(sLorg):=(
- regional(sL,tmp,tmp1,tmp2,tmp3,ratio,ff,ii,vv,nn,dL,flg);
- sL=sLorg;
- sL=[sL_1/360,sL_2,sL_3];
- ratio = sL_2 + sL_3;
- // sL_2 + sL_3 cant be > 1
- if (ratio > 1.,
- sL_2 =sL_2 / ratio;
- sL_3 = sL_3 / ratio;
- );
- ii = floor(6 * sL_1);
- vv = 1 - sL_3;
- ff = 6 * sL_1 - ii;
- if(mod(ii,2)==1,ff = 1 - ff);
- nn = sL_2 + ff * (vv - sL_2); // linear interpolation
- tmp=[[vv,nn,sL_2],[nn,vv,sL_2],[sL_2,vv,nn],
- [sL_2,nn,vv],[nn,sL_2,vv],[vv,sL_2,nn],[vv,nn,sL_2]];
- flg=0;
- forall(0..6,
- if(flg==0 & ii == # ,
- dL=tmp_(#+1);
- flg=1;
- );
- );
- dL;
-);
-
-Colorhslhsv(sL):=(
- regional(dl1,dl2,dl3,dL);
- dl1=sL_1;
- if(sL_3 == 0,
- // no need to do calc on black
- // also avoids divide by 0 error
- dL= [0, 0, 0];
- ,
- sL_3 = sL_3 * 2;
- if(sL_3 <= 1,sL_2 = sL_2 * sL_3,sL_2 = sL_2 * (2 - sL_3));
- dl3 = (sL_3 + sL_2) / 2;
- dl2 = (2 * sL_2) / (sL_3 + sL_2);
- dL = [dl1, dl2, dl3];
- );
- dL;
-);
-
-Colorcode(src,dest,sL):=(
-//help:Colorcode("rgb","cmyk",[1,0.5,0]);
- regional(tmp,tmp1,tmp2,tmp3,mn,mx,delta,black,dL,flg);
- regional(dl1,dl2,dl3);
- if(src=="rgb" & dest=="hsv", dL=Colorrgbhsv(sL));
- if(src=="hsv" & dest=="rgb", dL=Colorhsvrgb(sL));
- if(src=="rgb" & dest=="hsl", dL=Colorrgbhsl(sL));
- if(src=="hsl" & dest=="rgb", dL=Colorhslrgb(sL));
- if(src=="rgb" & dest=="hwb", dL=Colorrgbhwb(sL));
- if(src=="hwb" & dest=="rgb", dL=Colorhwbrgb(sL));
- if(src=="hsl" & dest=="hsv", dL=Colorhslhsv(sL));
- if(src=="hsv" & dest=="hsl",
- dl1 = sL_1;
- dl3 = (2 - sL_2) * sL_3;
- dl2 = sL_2 * sL_3;
- if(dl3 <= 1,dl2 = dl2/dl3,dl2=dl2/(2 - dl3));
- dl3 =d l3/ 2;
- dL = [dl1, dl2 , dl3 ];
- );
-
- if(src=="rgb" & dest=="cmyk",
- tmp=apply(sL,1-#);
- black=min(tmp);
- tmp=apply(sL,(1-#-black)/(1-black));
- dL=append(tmp,black);
- );
- if(src=="cmyk" & dest=="rgb",
- black=sL_4;
- tmp=apply(sL,1-min(1,#*(1-black)+black));
- dL=tmp_(1..3);
- );
- if(src=="hsv" & dest=="cmyk",
- tmp=Colorcode("hsv","rgb",sL);
- dL=Colorcode("rgb","cmyk",tmp);
- );
- if(src=="cmyk" & dest=="hsv",
- tmp=Colorcode("cmyk","rgb",sL);
- dL=Colorcode("rgb","hsv",tmp);
- );
-
- if(src=="hsv" & dest=="hwb",
- tmp = Colorcode("hsv","rgb",sL);
- dL = Colorcode("rgb","hwb",tmp);
- );
- if(src=="hwb" & dest=="hsv",
- tmp = Colorcode("hwb","rgb",sL);
- dL = Colorcode("rgb","hsv",tmp);
- );
- if(src=="hsl" & dest=="hwb",
- tmp = Colorcode("hsl","rgb",sL);
- dL = Colorcode("rgb","hwb",tmp);
- );
- if(src=="hwb" & dest=="hsl",
- tmp = Colorcode("hwb","rgb",sL);
- dL = Colorcode("rgb","hsl",tmp);
- );
- if(src=="hsl" & dest=="cmyk",
- tmp = Colorcode("hsl","rgb",sL);
- dL = Colorcode("rgb","cmyk",tmp);
- );
- if(src=="hwb" & dest=="cmyk",
- tmp = Colorcode("hwb","rgb",sL);
- dL = Colorcode("rgb","cmyk",tmp);
- );
- if(src=="cmyk" & dest=="hsl",
- tmp = Colorcode("cmyk","rgb",sL);
- dL = Colorcode("rgb","hsl",tmp);
- );
- if(src=="cmyk" & dest=="hwb",
- tmp = Colorcode("cmyk","rgb",sL);
- dL = Colorcode("rgb","hwb",tmp);
- );
- if(src=="hsb" & dest=="rgb",dL=Colorcode("hsv","rgb",sL));
- if(src=="rgb" & dest=="hsb",dL=Colorcode("rgb","hsv",sL));
-
- if(src=="hsb" & dest=="hsl",dL=Colorcode("hsv","hsl",sL));
- if(src=="hsl" & dest=="hsb",dL=Colorcode("hsl","hsv",sL));
-
- if(src=="hsb" & dest=="hwb",dL=Colorcode("hsv","hwb",sL));
- if(src=="hwb" & dest=="hsb",dL=Colorcode("hwb","hsv",sL));
-
- if(src=="hsb" & dest=="cmyk",dL=Colorcode("hsv","cmyk",sL));
- if(src=="cmyk" & dest=="hsb",dL=Colorcode("cmyk","hsv",sL));
-
- dL;
-);
-
-Addcolor(cmdorg,list):=(
-//help:Addcolor("Plotdata('1','x^2','x',[])",[1,1,0]);
- regional(rgb,cmyk,cmd,tmp,tmp1,tmp2,tmp3,tmp4);
- cmd=replace(cmdorg,"'",Dq);
- if(length(list)==3,
- rgb=list;
- cmyk=Colorcode("rgb","cmyk",list);
- ,
- cmyk=list;
- rgb=Colorcode("cmyk","rgb",list);
- );
- tmp1="color->"+text(rgb);
- tmp2="Setcolor("+text(cmyk)+");";
- tmp3=substring(cmd,0,length(cmd)-2);
- tmp=substring(tmp3,length(tmp3)-1,length(tmp3));
- if(tmp!="[",
- tmp3=tmp3+",";
- );
- tmp3=tmp3+Dq+tmp1+Dq+"])";
- parse(tmp2);
- parse(tmp3);
- Setcolor("black");
-);
-
-Colorinfile(filename,clrf,clrt):=(
- regional(tmp,tmp1,tmp2,head,cstrL,chstrL,head,body);
- if(length(clrf_1)==3,
- head="[rgb]{";
- ,
- head="[cmyk]{";
- );
- tmp=apply(clrf,text(#));
- cstrL=apply(tmp,head+substring(#,1,length(#)-1)+"}");
- if(length(clrt_1)==3,
- head="[rgb]{";
- ,
- head="[cmyk]{";
- );
- tmp=apply(clrt,text(#));
- chstrL=apply(tmp,head+substring(#,1,length(#)-1)+"}");
- tmp1=load(filename);
- tmp=tokenize(tmp1,"{\unitlength");
- head=tokenize(tmp_1,"%%%");
- head=head_(2..(length(head)));
- head=apply(head,"%%%"+#);
- tmp2=tmp_2;
- forall(1..5,
- tmp2=replace(tmp2,cstrL_#,chstrL_#);
- );
- body=tokenize(tmp2,"%");
- body_1="{\unitlength"+body_1;
- body=apply(body,#+"%");
- body=body_(1..(length(body)-1));
- tmp=replace(filename,".tex","new.tex");
- SCEOUT=openfile(tmp);
- forall(head,
- println(SCEOUT,#);
- );
- forall(1..(length(body)),
- tmp=body_#;
- if(#<length(body),
- println(SCEOUT,tmp);
- ,
- print(SCEOUT,tmp)
- );
- );
- closefile(SCEOUT);
-);
-
-GetLinestyle(str,name):=(
- regional(noflg,tmp,tmp1,tmp2,Dop,Ltype,subflg);
- Ltype=-1;
- Dop="";
- tmp1=indexof(str,",");
- if(tmp1>0,
- Dop=","+substring(str,tmp1,length(str));
- );
- noflg=parse(substring(str,0,1));
- if(substring(name,0,3)=="sub",subflg=1,subflg=0); // 16.02.29
- tmp1=substring(str,1,3);
- if(tmp1=="dr" % tmp1=="Dr",
- Ltype=0;
- if(noflg==0 & subflg==0, // 16.02.29
- Drwline(name+Dop);
- );
- );
- if(tmp1=="da" % tmp1=="Da",
- Ltype=1;
- if(noflg==0 & subflg==0, // 16.02.29
- Dashline(name+Dop);
- );
- );
- if(tmp1=="id" % tmp1=="Id",
- Ltype=2; // 15.11.09
- if(noflg==0 & subflg==0, // 16.02.29
- Invdashline(name+Dop);
- );
- );
- if(tmp1=="do" % tmp1=="Do",
- Ltype=3;
- if(noflg==0 & subflg==0, // 16.02.29
- Dottedline(name+Dop);
- );
- );
- if(tmp1=="dp" % tmp1=="Dp",
- Ltype=0;
- tmp1=parse(name);
- tmp2="";
- forall(tmp1,
- tmp2=tmp2+textformat(#_1,5)+",";
- );
- tmp2=substring(tmp2,0,length(tmp2)-1);
- if(noflg==0,
- Drwpt(tmp2+Dop);
- );
- );
- if(tmp1=="no" % tmp1=="No",
- Ltype=10;
- );
- Ltype;
-);
-
-Chunderscore(str):=(
- regional(flg,tmp,tmp1,tmp2,tmp3);
- if(indexof(str,"]")>0,
- tmp1=replace(str,"]",",]");
- ,
- tmp1=str+",";
- );
- flg=0;
- tmp2=[];
- tmp3=0;
- forall(1..(length(tmp1)),
- if(flg==0,
- tmp=substring(tmp1,tmp3,length(tmp1));
- tmp=indexof(tmp,"_");
- if(tmp==0,
- flg=1;
- ,
- tmp3=tmp3+tmp;
- tmp=substring(tmp1,tmp3,length(tmp1));
- tmp=indexof(tmp,",")-1;
- tmp=substring(tmp1,tmp3,tmp3+tmp);
- tmp2=append(tmp2,tmp);
- );
- );
- );
- forall(tmp2,
- tmp1=replace(tmp1,"_"+#,"("+#+")");
- );
- if(indexof(str,"]")>0,
- tmp1=replace(tmp1,",]",")");
- tmp1=replace(tmp1,"[","list(");
- ,
- tmp1=substring(tmp1,0,length(tmp1)-1);
- );
- tmp1;
-);
-
-//AddGraph(pltdata):=AddGraph("-"+pltdata,pltdata,[]);
-AddGraph(nm,pltdata):=AddGraph(nm,pltdata,[]);
-// if(isstring(Arg2),
-// AddGraph(Arg1,Arg2,[]);
-// ,
-// if(MeasureDepth(Arg2)>0,
-// Addgraph(Arg1,Arg2,[]);
-// ,
-// Addgraph("-"+Arg1,Arg1,Arg2);
-// );
-// );
-//);
-AddGraph(nm,pltdata,options):=(
-//help:AddGraph("1","imp1"); // 16.04.04
-//help:Addgraph("1",["[pt1]","gr1"],["nodisp"]);
- regional(name,Ltype,Noflg,opcindy,pdata,fname,flg,
- tmp,tmp1,tmp2,tmp3);
- if(substring(nm,0,1)=="-",
- name=substring(nm,1,length(nm));
- ,
- name="ad"+nm;
- );
- tmp=Divoptions(options);
- Ltype=tmp_1;
- Noflg=tmp_2;
- opcindy=tmp_9;
- if(isstring(pltdata),
- pdata=parse(pltdata)
- ,
- if(!islist(pltdata),pdata=[pltdata],pdata=pltdata);
- pdata=apply(pdata,parse(#));
- ); // 15.01.22
- pdata=Flattenlist(pdata);
- tmp1=[];
- forall(pdata,tmp2,
- tmp=apply(tmp2,Pcrd(#));
- tmp1=append(tmp1,tmp);
- );
- if(length(tmp1)==1,tmp1=tmp1_1);
- pdata=tmp1;
- if(Noflg<3,
- println("generate addgraph "+name);
- tmp=name+"="+textformat(pdata,5);
- parse(tmp);
- if(isstring(pltdata), // 16.04.04 from
- if(indexof(pltdata,"]")>0,
- tmp1="list(Listplot("+substring(pltdata,1,length(pltdata));
- tmp1=replace(tmp1,"]",",]");
- ,
- tmp1="Listplot("+substring(pltdata,0,length(pltdata))+",]";
- );
- flg=0;
- tmp2=[];
- tmp3=0;
- forall(1..(length(tmp1)),
- if(flg==0,
- tmp=indexof(substring(tmp1,tmp3,length(tmp1)),"_");
- if(tmp==0,
- flg=1;
- ,
- tmp3=tmp3+tmp;
- tmp=indexof(substring(tmp1,tmp3,length(tmp1)),",")-1;
- tmp=substring(tmp1,tmp3,tmp3+tmp);
- tmp2=append(tmp2,tmp);
- );
- );
- );
- forall(tmp2,
- tmp1=replace(tmp1,"_"+#,"("+#+")");
- );
- tmp1=replace(tmp1,",]",")");
- tmp1=replace(tmp1,",","),Listplot(");
- if(indexof(pltdata,"[")>0,
- tmp1=tmp1+")";
- );
- GLIST=append(GLIST,name+"="+tmp1);
- ,
- if(MeasureDepth(pdata)==1,
- tmp1=name+"=Listplot("+textformat(pdata,5)+")";
- ,
- tmp1="list(";
- forall(1..(length(pdata)),
- tmp=name+"p"+textformat(#,5)+"=";
- if(length(pdata_#)>1, // 15.01.22
- tmp=tmp+"Listplot("+textformat(pdata_#,5)+")";
- ,
- tmp=tmp+"Pointdata("+textformat(pdata_#_1,5)+")";
- );
- GLIST=append(GLIST,tmp);
- tmp1=tmp1+name+"p"+textformat(#,5)+",";
- );
- tmp1=name+"="+substring(tmp1,0,length(tmp1)-1)+")";
- );
- GLIST=append(GLIST,tmp1);
- );
- ); // 16.04.04 until
- if(Noflg<2,
- if(isstring(Ltype),
- Ltype=GetLinestyle(text(Noflg)+Ltype,name);
- ,
- if(Noflg==1,Ltype=0);
- );
- GCLIST=append(GCLIST,[name,Ltype,opcindy]);
- );
-);
-
-Joincrvs(nm,plotstrL):=Joincrvs(nm,plotstrL,[]);
-Joincrvs(nm,plotstrL,options):=(
-//help:Joincrvs("1",["sgAB","sgDCB"]);
- regional(plotlist,PtL,Eps,QdL,Flg,Ni,Qd,pP,pS,pQ,pR,rMN,
- opcindy,tmp,tmp1,tmp2,str,name,Ltype,Noflg);
- name="join"+nm;
- plotlist=[];
- forall(plotstrL,str,
- if(isstring(str),
- tmp=parse(str);
- tmp=apply(tmp,LLcrd(#));
- ,
- tmp=str;
- );
- plotlist=append(plotlist,tmp);
- );
- Eps=10^(-4);
- tmp=Divoptions(options);
- Ltype=tmp_1;
- Noflg=tmp_2;
- opcindy=tmp_(length(tmp));
- tmp1=tmp_6;
- if(length(tmp1)>0,Eps=tmp1_1);
- QdL=[];
- forall(plotlist,Qd,
- if(ispoint(Qd_1) % !islist(Qd_1_1),
- QdL=concat(QdL,[Qd]);
- ,
- forall(Qd,
- QdL=concat(QdL,[#]);
- );
- );
- );
- Flg=0;
- if(length(QdL)==0,
- PtL=[];
- Flg=1;
- );
- if(Flg==0,
- PtL=QdL_1;
- forall(2..(length(QdL)),Ni,
- Qd=QdL_Ni;
- if(Numptcrv(Qd)>1,
- pP=Ptend(PtL);
- pS=Ptstart(PtL);
- pQ=Ptstart(Qd);
- pR=Ptend(Qd);
- rMN=min([|pP-pQ|,|pP-pR|,|pS-pQ|,|pS-pR|]);
- if(rMN==|pP-pR|,
- Qd=reverse(Qd);
- ,
- if(rMN==|pS-pQ|,
- PtL=reverse(PtL);
- ,
- if(rMN==|pS-pR|,
- PtL=reverse(PtL);
- Qd=reverse(Qd);
- );
- );
- );
- );
- if(rMN>Eps,
- PtL=concat(PtL,Qd);
- ,
- PtL=concat(PtL,Qd_(2..(length(Qd))));
- );
- );
- );
- if(Noflg<3,
- println("generate joincurve "+name);
- tmp1=apply(PtL,Pcrd(#));
- tmp=name+"="+textformat(tmp1,5);
- parse(tmp);
- tmp1="";
- forall(plotstrL,
- tmp1=tmp1+#+",";
- );
- tmp1=substring(tmp1,0,length(tmp1)-1);
- GLIST=append(GLIST,name+"=Joincrvs("+tmp1+")");
- );
- if(Noflg<2,
- if(isstring(Ltype),
- Ltype=GetLinestyle(text(Noflg)+Ltype,name);
- ,
- if(Noflg==1,Ltype=0);
- );
- GCLIST=append(GCLIST,[name,Ltype,opcindy]);
- );
- PtL;
-);
-
-Partcrv(nm,pA,pB,PkLstr):=Partcrv(nm,pA,pB,PkLstr,[]);
-Partcrv(nm,pA,pB,PkLstr,options):=(
-//help:Partcrv("1",A,B,"sgABC");
-//help:Partcrv("1",1.3,2.5,"sgABC");
- regional(PkL,Ans,Eps,Npt,Out1,Out2,tmp,tmp1,Flg,nS,nE,PPL,pP,
- opcindy,Ta,Tb,name,Ltype,Noflg,DepthFlg);
- name="part"+nm;
- if(isstring(PkLstr),PkL=parse(PkLstr),PkL=PkLstr);
- DepthFlg=0;
- if(MeasureDepth(PkL)==2,
- PkL=PkL_1;
- DepthFlg=1;
- );
- PkL=apply(PkL,LLcrd(#));
- tmp=Divoptions(options);
- Ltype=tmp_1;
- Noflg=tmp_2;
- opcindy=tmp_(length(tmp));
- Eps=10^(-3);
- Flg=0;
- if(isreal(pA),
- if(pA>pB+Eps,
- Npt=Numptcrv(PkL);
- Out1=Partcrv("",pA,Npt,PkLstr,["nodata"]);
- Out2=Partcrv("",1,pB,PkLstr,["nodata"]);
- tmp=Ptstart(PkL)-Ptend(PkL);
- if(|tmp|<Eps,
- Ans=Joincrvs("",[Out1,Out2],["nodata"]);
- ,
- Ans=[apply(Out1,Pcrd(#)),apply(Out2,Pcrd(#))];
- );
- Flg=1;
- );
- if(Flg==0,
- nS=ceil(pA);
- nE=floor(pB);
- PPL=[];
- if(pA<nS-Eps,
- pP=(nS-pA)*PkL_(nS-1)+(1-nS+pA)*PkL_nS;
- PPL=[pP];
- );
- PPL=concat(PPL,PkL_(nS..nE));
- if(pB>nE+Eps,
- pP=(1-pB+nE)*PkL_nE+(pB-nE)*PkL_(nE+1);
- PPL=concat(PPL,[pP]);
- );
- Ans=PPL;
- Flg=1;
- );
- );
- if(Flg==0,
- tmp=Nearestpt(LLcrd(Pcrd(pA)),PkL);
- Ta=tmp_2;
- tmp=Nearestpt(LLcrd(Pcrd(pB)),PkL); // 15.09.12
- Tb=tmp_2;
- Ans=Partcrv("",Ta,Tb,PkL,["nodata"] );
- Ans=apply(Ans,Pcrd(#));
- );
- if(Noflg<3,
- println("generate partcrv "+name);
- tmp1=apply(Ans,Pcrd(#));
- tmp=name+"="+textformat(tmp1,5);
- parse(tmp);
-// GLIST=append(GLIST, // 16.04.03
- if(DepthFlg==0,
- tmp=PkLstr;
- ,
- tmp=PkLstr+"(1)";
- );
- tmp1=name+"=Partcrv("+textformat(Lcrd(pA),5)
- +","+textformat(Lcrd(pB),5)+","+tmp+")"; // 16.04.03
- GLIST=append(GLIST,tmp1);
- );
- if(Noflg<2,
- if(isstring(Ltype),
- Ltype=GetLinestyle(text(Noflg)+Ltype,name);
- ,
- if(Noflg==1,Ltype=0);
- );
- GCLIST=append(GCLIST,[name,Ltype,opcindy]);
- );
- Ans;
-);
-
-Opcrvs(num,Fig):=Opcrvs(num,Fig,["nodisp"]);
-Opcrvs(num,Fig,options):=(
- //help:Subgraph(2,"grfs");
- regional(name,tmp,tmp1);
- name="-"+Fig+text(num);
- tmp=Fig+"_"+text(num);
- tmp1=parse(tmp);
- Listplot(name,tmp1,options);
-);
-
-
-Pointdata(nm,list):=Pointdata(nm,list,[]);
-Pointdata(nm,listorg,options):=(
-//help:Pointdata("1",[2,4],["Size=5"]);
-//help:Pointdata("2",[[2,3],[4,1]]);
- regional(list,name,nameL,ptlist,opstr,opcindy,
- eqL,size,thick,tmp,tmp1,tmp2,tmp3,Ltype,Noflg);
- name="pt"+nm;
- nameL=name+"L";
- println("generate pointdata "+name);
- tmp=Divoptions(options);
- Ltype=tmp_1;
- Noflg=tmp_2;
- opcindy=tmp_(length(tmp));
- opstr=tmp_(length(tmp)-1);
- size="";
- eqL=tmp_5;
- if(length(eqL)>0,
- forall(eqL,
- tmp=substring(#,0,1);
- if(tmp=="s" % tmp=="S",
- tmp=indexof(#,"=");
- size=substring(#,tmp,length(#));
- );
- );
- );
- if(isstring(listorg),list=parse(listorg),list=listorg); //17.10.23
- tmp=MeasureDepth(list);
- if(tmp>0, // 2015.02.21
- if(tmp==1,ptlist=list,ptlist=list_1);
- tmp=apply(ptlist,[textformat(Pcrd(#),5)]);
- tmp1=text(tmp);
- tmp2=substring(tmp1,1,length(tmp1)-1);
- tmp3=tmp1;
- ,
- ptlist=list;
- tmp1=textformat(Pcrd(ptlist),5);
- tmp2=tmp1;
- tmp3="["+tmp1+"]";
- );
- tmp=name+"="+tmp1;
- parse(tmp);
- tmp=nameL+"="+tmp3;
- parse(tmp);
- if(Noflg<3,
- if(isstring(listorg), //17.10.23
- tmp2=listorg;
- ,
- tmp2="list("; //17.10.10from
- forall(list,
- if(isstring(#),
- tmp=#;
- ,
- if(ispoint(#),tmp=text(#),tmp=textformat(#,6));
- );
- tmp2=tmp2+tmp+",";
- );
- tmp2=substring(tmp2,0,length(tmp2)-1)+")"; //17.10.10until
- );
- GLIST=append(GLIST,name+"=Pointdata("+tmp2+")");
- );
- if(Noflg<2,
- tmp=[nameL,0,opcindy];
- GCLIST=append(GCLIST,tmp);
- if(Noflg==0,
- if(length(size)>0,
- Com2nd("Setpt("+size+")");
- );
- thick=PenThick/PenThickInit; // 16.04.09 from
- if(length(size)>0,tmp1=parse(size),tmp1=1);
- tmp1=max(tmp1,1)/8;
- Setpen(tmp1); // 16.04.09 until
- Com2nd("Drwpt(list("+name+")"+opstr+")");
- Setpen(thick); // 16.04.09
- if(length(size)>0,
- Com2nd("Setpt("+textformat(TenSize/TenSizeInit,1)+")");
- );
- );
- );
- ptlist;
-);
-
-Listplot(nm,list,options):=(
-//help:Listplot([A,B]);
-// help:Listplot(["A","B"]);
-//help:Listplot("1",[[2,1],[3,3]]);
-//help:Listplot(options2=["Msg=yes"]);
- regional(name,tmp,tmp1,ptlist,Ltype,opcindy,Noflg,eqL,Msg);
- if(substring(nm,0,1)=="-", // 16.01.27 from
- name=substring(nm,1,length(nm));
- ,
- name="sg"+nm;
- ); // until
- tmp=Divoptions(options);
- Ltype=tmp_1;
- Noflg=tmp_2;
- eqL=tmp_5;
- opcindy=tmp_(length(tmp));
- Msg=1; // 15.09.17
- forall(eqL,
- tmp=substring(#,0,1);
- if(Toupper(tmp)=="M",
- tmp=indexof(#,"=");
- tmp1=substring(#,tmp,tmp+1); // 16.06.28
- if(Toupper(tmp1)=="N", // 16.06.28
- Msg=0;
- );
- );
- );
- if(Noflg<3,
- if(Msg==1,
- println("generate Listplot "+name);
- );
- if(isstring(list_1),tmp=apply(list,parse(#)),tmp=list); // 15.03.24
- ptlist=apply(tmp,Pcrd(#));
- tmp=name+"="+textformat(ptlist,5);
- parse(tmp);
- GLIST=append(GLIST,name+"=Listplot("+textformat(list,5)+")"); // 15.12.23
- );
- if(Noflg<2,
- if(isstring(Ltype),
- Ltype=GetLinestyle(text(Noflg)+Ltype,name);
- ,
- if(Noflg==1,Ltype=0);
- );
- GCLIST=append(GCLIST,[name,Ltype,opcindy]);
- );
- tmp1=apply(list,Lcrd(#));
- tmp1;
-);
-Listplot(Arg1,Arg2):=(
- regional(name,list,options,str);
- if(isstring(Arg1),
- name=Arg1;
- list=Arg2;
- Listplot(name,list,[]);
- ,
- list=Arg1;
- options=Arg2;
- name="";
- forall(list, // 16.10.07from
- name=name+#.name;
- );// 16.10.07until
- Listplot(name,list,options);
- );
-);
-Listplot(list):=Listplot(list,[]);
-
-Lineplot(nm,list,options):=(
-//help:Lineplot([A,B]);
-//help:Lineplot("1",[[2,1],[3,3]]);
- regional(name,Out,tmp,tmp1,opstr,opcindy,Mag,Semi,
- Vec,pA,pB,Ltype,Noflg);
- name="ln"+nm;
- Mag=100;
- Semi="";
- tmp=Divoptions(options);
- Ltype=tmp_1;
- Noflg=tmp_2;
- opcindy=tmp_(length(tmp));
- opstr=tmp_(length(tmp)-1);
- tmp1=tmp_6;
- if(length(tmp1)>0,Mag=tmp1_1);
- tmp1=tmp_7;
- if(length(tmp1)>0,Semi=tmp1_1);
- pA=Lcrd(list_1); pB=Lcrd(list_2);
- Vec= Mag/dist(pA,pB)*(pB-pA);
- if(length(Semi)==0,
- Out=[pA-Vec,pA+Vec];
- ,
- if(Semi=="+",
- Out=[pA,pA+Vec];
- ,
- Out=[pA-Vec,pA];
- );
- );
- if(Noflg<3,
- println("generate Lineplot "+name);
- tmp1=apply(Out,Pcrd(#));
- tmp=name+"="+textformat(tmp1,5);
- parse(tmp);
- GLIST=append(GLIST,name+"=Lineplot("+textformat(list,5)+opstr+")");
- );
- if(Noflg<2,
- if(isstring(Ltype),
- Ltype=GetLinestyle(text(Noflg)+Ltype,name);
- ,
- if(Noflg==1,Ltype=0);
- );
- GCLIST=append(GCLIST,[name,Ltype,opcindy]);
- );
- Out;
-);
-Lineplot(Arg1,Arg2):=(
- regional(name,list,options,str);
- if(isstring(Arg1),
- name=Arg1;
- list=Arg2;
- Lineplot(name,list,[]);
- ,
- list=Arg1;
- options=Arg2;
- name="";
- forall(list, // 16.10.07from
- name=name+#.name;
- );// 16.10.07until
- Lineplot(name,list,options);
- );
-);
-Lineplot(list):=Lineplot(list,[]);
-
-Plotdata(name1,func,variable):=Plotdata(name1,func,variable,[]);
-Plotdata(name1,func,variable,options):=(
-//help:Plotdata("1","sin(x)","x",["Num=100"]);
-//help:Plotdata("2","x^2","x=[-1,1]");
-//help:Plotdata("3","Fout(x)","x",["out"]);
- regional(Fn,Va,tmp,tmp1,tmp2,eqL,name,Vname,x1,x2,dx,
- PdL,QdL,Num,Ec,Dc,Fun,Exfun,x,Ke,Eps,Pa,
- Ltype,Noflg,Inflg,Outflg,opstr,opcindy);
- name="gr"+name1;
- tmp=Divoptions(options);
- Ltype=tmp_1;
- Noflg=tmp_2;
- Inflg=tmp_3;
- Outflg=tmp_4;
- opstr=tmp_(length(tmp)-1);
- opcindy=tmp_(length(tmp));
- eqL=tmp_5;
- Num=50;
- Ec=[];
- Exfun="";
- Dc=1000;
- forall(eqL,
- tmp=indexof(#,"=");
- tmp1=substring(#,tmp,length(#));
- opstr=opstr+",'"+#+"'";
- if(substring(#,0,1)=="N",
- Num=parse(tmp1);
- );
- if(substring(#,0,1)=="E",
- if(substring(tmp1,0,1)=="[",
- Ec=parse(tmp1);
- ,
- Exfun=tmp1;
- );
- );
- if(substring(#,0,1)=="D",
- Dc=parse(tmp1);
- );
- );
- if(Inflg==0 & Outflg==0,
- Eps=10^(-3);
- tmp=replace(func,LFmark,"");
- tmp=tokenize(variable,"=");
- Vname=tmp_1;
- if(length(tmp)>1,
- tmp=tmp_2;
- tmp=parse(tmp);
- x1=tmp_1;
- x2=tmp_2;
- ,
- x1=XMIN;
- x2=XMAX;
- );
- // dx=(x2-x2)/Num;
- Ec=append(sort(Ec),10000);
- Fun=Assign(func,Vname, "xx");
- Exfun=Assign(Exfun,Vname, "xx");
- PdL=[];
- Ke=1;
- forall(0..Num,
- xx=x1+#*(x2-x1)/Num; // differs from Scilab ( / Num-1)
- if(length(Exfun)>0,
- tmp=parse(Exfun);
- if(abs(tmp)<Eps,
- if(length(Pdt)>0,
- PdL=concat(PdL,["inf"]);
- );
- );
- ,
- Pa=[];
- if(xx-Ec_Ke<-Eps,
- Pa=[xx,parse(Fun)];
- );
- if(abs(xx-Ec_Ke)<=Eps,
- if(length(PdL)>0,
- if(PdL_(length(PdL))_1!="inf",
- Pa=["inf"];
- );
- );
- );
- if(xx-Ec_Ke>Eps,
- Pa=[xx,parse(Fun)];
- Ke=Ke+1;
- );
- if(length(Pa)>0,
- if(Pa_1=="inf",
- PdL=concat(PdL,[Pa]);
- ,
- if(length(PdL)==0,
- PdL=[Pa];
- ,
- tmp=PdL_(length(PdL));
- if(tmp_1=="inf",
- PdL=concat(PdL,[Pa]);
- ,
- if(dist(tmp,Pa)<Dc,
- PdL=concat(PdL,[Pa]);
- ,
- PdL=concat(PdL,[["inf"],Pa]);
- );
- );
- );
- );
- );
- );
- );
- tmp1=[];
- tmp2=select(1..(length(PdL)),PdL_#==["inf"]);
- tmp=1;
- forall(tmp2,
- if(#>tmp,
- tmp1=concat(tmp1,[PdL_(tmp..(#-1))])
- );
- tmp=#+1;
- );
- if(tmp<length(PdL),
- tmp1=concat(tmp1,[PdL_(tmp..(length(PdL)))]);
- );
- PdL=tmp1;
- if(length(PdL)==1,
- PdL=PdL_1;
- );
- if(Noflg<3,
- println("generate Plotdata "+name);
- if(MeasureDepth(PdL)==1,
- tmp1=apply(PdL,Pcrd(#));
- ,
- tmp1=[];
- forall(PdL,tmp2,
- tmp1=append(tmp1,apply(tmp2,Pcrd(#)));
- );
- );
- tmp=name+"="+textformat(tmp1,5);
- parse(tmp);
- tmp1=replace(func,LFmark,"");
- tmp2=replace(variable,LFmark,"");
- tmp=name+"=Plotdata('"+tmp1+"','"+tmp2+"'"+opstr+")";
- GLIST=append(GLIST,tmp);
- );
- if(Noflg<2,
- if(isstring(Ltype),
- Ltype=GetLinestyle(text(Noflg)+Ltype,name);
- ,
- if(Noflg==1,Ltype=0);
- );
- GCLIST=append(GCLIST,[name,Ltype,opcindy]);
- );
- PdL;
- ,
- if(Noflg<2,
- if(isstring(Ltype),
- Ltype=GetLinestyle(text(Noflg)+Ltype,name);
- ,
- if(Noflg==1,Ltype=0);
- );
- if(Inflg==1,
- GCLIST=append(GCLIST,[name,Ltype,opcindy]);
- );
- );
- );
-);
-
-Paramplot(name1,funstr,variable):=Paramplot(name1,funstr,variable,[]);
-Paramplot(name1,funstr,variable,options):=(
-//help:Paramplot("1","[2*cos(t),sin(t)]","t=[0,2*pi]");
- regional(name,Out,tmp,tmp1,tmp2,vname,func,str,Rng,Num,
- Ec,Exfun,Dc,eqL,Fntmp,Vatmp,t1,t2,dt,tt,pa,ke,
- Ltype,Noflg,Inflg,Outflg,opstr,opcindy);
- name="gp"+name1;
- Eps=10^(-4);
- tmp=Divoptions(options);
- Ltype=tmp_1;
- Noflg=tmp_2;
- Inflg=tmp_3;
- Outflg=tmp_4;
- opstr=tmp_(length(tmp)-1);
- opcindy=tmp_(length(tmp));
- eqL=tmp_5;
- Num=50;
- Ec=[];
- Exfun="";
- Dc=1000;
- forall(eqL,
- tmp=indexof(#,"=");
- tmp1=substring(#,tmp,length(#));
- opstr=opstr+",'"+#+"'";
- if(substring(#,0,1)=="N",
- Num=parse(tmp1);
- );
- if(substring(#,0,1)=="E",
- if(substring(tmp1,0,1)=="[",
- Ec=parse(tmp1);
- ,
- Exfun=tmp1;
- );
- );
- if(substring(#,0,1)=="D",
- Dc=parse(tmp1);
- );
- );
- if(Inflg==0 & Outflg==0,
- tmp=indexof(variable,"=");
- vname=substring(variable,0,tmp-1);
- str=substring(variable,tmp,length(variable));
- Rng=parse(str);
- t1=Rng_1; t2=Rng_2;
- dt=(t2-t1)/Num;// differs from Scilab ( / Num-1)
- func=Assign(funstr,vname,"tt");
- Out=[];
- Ec=append(sort(Ec),10000);
- ke=1;
- forall(0..Num,
- pt=[];
- tt=Rng_1+#*dt;
- if(tt-Ec_ke<-Eps,
- pa=parse(func);
- );
- if(abs(tt-Ec_ke)<=Eps,
- if(length(Out)>0,
- if(Out_(length(Out))_1!="inf",
- pa=["inf"];
- );
- );
- );
- if(tt-Ec_ke>Eps,
- pa=parse(func);
- ke=ke+1;
- );
- if(length(pa)>0,
- if(pa_1=="inf",
- Out=append(Out,pa);
- ,
- if(length(Out)==0,
- Out=[pa];
- ,
- tmp=Out_(length(Out));
- if(tmp_1=="inf",
- Out=append(Out,pa);
- ,
- if(|tmp-pa|<Dc,
- Out=append(Out,pa);
- ,
- Out=concat(Out,[["inf"],pa]);
- );
- );
- );
- );
- );
- );
- tmp1=[];
- tmp2=select(1..(length(Out)),Out_#==["inf"]);
- tmp=1;
- forall(tmp2,
- if(#>tmp,
- tmp1=concat(tmp1,[Out_(tmp..(#-1))])
- );
- tmp=#+1;
- );
- if(tmp<length(Out),
- tmp1=concat(tmp1,[Out_(tmp..(length(Out)))]);
- );
- Out=tmp1;
- if(length(Out)==1,
- Out=Out_1;
- );
- if(Noflg<3,
- println("generate Paramplot "+name);
- if(MeasureDepth(Out)==1,
- tmp1=apply(Out,Pcrd(#));
- ,
- tmp1=[];
- forall(Out,tmp2,
- tmp1=append(tmp1,apply(tmp2,Pcrd(#)));
- );
- );
- tmp=name+"="+textformat(tmp1,5);
- parse(tmp);
- tmp1=replace(funstr,LFmark,""); // 15.11.13
- tmp2=replace(variable,LFmark,"");
- tmp=name+"=Paramplot('"+tmp1+"','"+tmp2+"'"+opstr+")";
- GLIST=append(GLIST,tmp);
- );
- if(Noflg<2,
- if(isstring(Ltype),
- Ltype=GetLinestyle(text(Noflg)+Ltype,name);
- ,
- if(Noflg==1,Ltype=0);
- );
- GCLIST=append(GCLIST,[name,Ltype,opcindy]);
- );
- Out;
- ,
- if(Noflg<2,
- if(isstring(Ltype),
- Ltype=GetLinestyle(text(Noflg)+Ltype,name);
- ,
- if(Noflg==1,Ltype=0);
- );
- if(Inflg==1,
- GCLIST=append(GCLIST,[name,Ltype,opcindy]);
- );
- );
- );
-);
-
-Connectseg(Pdata):=(
- regional(Eps,PlotL,vL,ctr,qd,ah,ao,flg,jj,
- pp,qq,tmp,tmp1,tmp2);
- Eps=10^(-4);
- PlotL=[Pdata_1];
- vL=2..(length(Pdata));
- ctr=0;
- while((length(vL)>0)&(ctr<1000),
- ctr=ctr+1;
- qd=PlotL_(length(PlotL));
- ah=qd_1; ao=qd_(length(qd));
- flg=0;
- forall(1..(length(vL)),jj,
- if(flg==0,
- tmp1=Pdata_(vL_jj);
- pp=tmp1_1; qq=tmp1_(length(tmp1));
- if(Norm(pp-ao)<Eps,
- tmp=tmp1_(2..(length(tmp1)));
- if(length(tmp)>0,
- qd=concat(qd,tmp);
- );
- PlotL_(length(PlotL))=qd;
- vL=remove(vL,[vL_jj]);
- flg=1;
- );
- );
- if(flg==0,
- if(Norm(qq-ao)<Eps,
- tmp=tmp1_(1..(length(tmp1)-1));
- tmp=reverse(tmp);
- qd=concat(qd,tmp);
- PlotL_(length(PlotL))=qd;
- vL=remove(vL,[vL_jj]);
- flg=1;
- );
- );
- if(flg==0,
- if(Norm(pp-ah)<Eps,
- tmp=tmp1_(2..(length(tmp1)));
- qd=concat(tmp,qd);
- PlotL_(length(PlotL))=qd;
- vL=remove(vL,[vL_jj]);
- flg=1;
- );
- );
- if(flg==0,
- if(Norm(qq-ah)<Eps,
- tmp=tmp1_(1..(length(tmp1)-1));
- tmp=reverse(tmp);
- qd=concat(tmp,qd);
- PlotL_(length(PlotL))=qd;
- vL=remove(vL,[vL_jj]);
- flg=1;
- );
- );
- );
- if(flg==0,
- PlotL=concat(PlotL,Pdata_(vL_1));
- vL=remove(vL,[vL_1]);
- );
- );
- PlotL;
-);
-
-Implicitplot(name1,func,xrng,yrng):=Implicitplot(name1,func,xrng,yrng,[]);
-Implicitplot(name1,func,xrng,yrng,options):=(
-//help:Implicitplot("1","x^2+x*y+y^2=1","x=[-3,3]","y=[-3,3]");
-//help:Implicitplot(options=["Num=[50,50]"]);
- regional(name,Fn,varx,vary,rngx,rngy,Mdv,Ndv,tmp,tmp1,tmp2,
- Eps,Ltype,Noflg,eqL,opsr,opcindy,dx,dy,out,jj,ii,kk,
- yval1,yval2,xval1,xval2,eval11,eva12,eval21,eval22,pL,vL,qL);
- name="imp"+name1;
- Eps=10^(-4);
- tmp=Divoptions(options);
- Ltype=tmp_1;
- Noflg=tmp_2;
- eqL=tmp_5;
- opstr=tmp_(length(tmp)-1);
- opcindy=tmp_(length(tmp));
- Mdv=50;Ndv=50;
- forall(eqL,
- tmp=indexof(#,"=");
- tmp1=Toupper(substring(#,0,tmp-1));
- tmp2=substring(#,tmp,length(#));
- opstr=opstr+",'"+#+"'";
- if(substring(#,0,1)=="N",
- Mdv=parse(tmp2);
- if(!islist(Mdv),
- Ndv=Mdv;
- ,
- Ndv=Mdv_2;
- Mdv=Mdv_1;
- );
- );
- );
- tmp=indexof(func,"=");
- if(tmp==0,
- Fn=func;
- ,
- tmp1=substring(func,0,tmp-1);
- tmp2=substring(func,tmp,length(func));
- Fn=tmp1+"-("+tmp2+")";
- );
- tmp=indexof(xrng,"=");
- varx=substring(xrng,0,tmp-1);
- rngx=parse(substring(xrng,tmp,length(xrng)));
- tmp=indexof(yrng,"=");
- vary=substring(yrng,0,tmp-1);
- rngy=parse(substring(yrng,tmp,length(yrng)));
- tmp="Impfun("+varx+","+vary+"):="+Fn;
- parse(tmp);
- dx=(rngx_2-rngx_1)/Mdv;
- dy=(rngy_2-rngy_1)/Ndv;
- out=[];
- forall(1..Ndv,jj,
- yval1=rngy_1+(jj-1)*dy;
- yval2=rngy_1+jj*dy;
- xval1=rngx_1;
- eval11=Impfun(xval1,yval1);
- eval12=Impfun(xval1,yval2);
- forall(1..Mdv,ii,
- xval2=rngx_1+ii*dx;
- eval21=Impfun(xval2,yval1);
- eval22=Impfun(xval2,yval2);
- pL=[[xval1,yval1]];vL=[eval11];
- pL=append(pL,[xval2,yval1]);vL=append(vL,eval21);
- pL=append(pL,[xval2,yval2]);vL=append(vL,eval22);
- pL=append(pL,[xval1,yval2]);vL=append(vL,eval12);
- pL=append(pL,[xval1,yval1]);vL=append(vL,eval11);
- qL=[];
- forall(1..4,kk,
- if(abs(vL_kk)<=Eps,
- qL=append(qL,pL_kk);
- ,
- if(vL_kk>Eps,
- if(vL_(kk+1)< -Eps,
- tmp=1/(vL_kk-vL_(kk+1))*
- (-vL_(kk+1)*pL_kk+vL_kk*pL_(kk+1));
- qL=append(qL,tmp);
- );
- ,
- if(vL_(kk+1)>Eps,
- tmp=1/(-vL_kk+vL_(kk+1))*
- (vL_(kk+1)*pL_kk-vL_kk*pL_(kk+1));
- qL=append(qL,tmp);
- );
- );
- );
- );
- xval1=xval2;
- eval11=eval21;
- eval12=eval22;
- if(length(qL)==2,
- out=append(out,qL);
- );
- );
- );
- if(length(out)>0,
- out=Connectseg(out);
- );
- if(length(out)==1,
- out=out_1;
- );
- if(Noflg<3,
- println("generate Implicitplotdata "+name);
- if(MeasureDepth(out)==1,
- tmp1=apply(out,Pcrd(#));
- ,
- tmp1=[];
- forall(out,tmp2,
- tmp1=append(tmp1,apply(tmp2,Pcrd(#)));
- );
- );
- tmp=name+"="+textformat(tmp1,5);
- parse(tmp);
- tmp=name+"=Implicitplot('"+func+"','"+xrng+"','"+yrng+"'"+opstr+")";
- GLIST=append(GLIST,tmp);
- );
- if(Noflg<2,
- if(isstring(Ltype),
- Ltype=GetLinestyle(text(Noflg)+Ltype,name);
- ,
- if(Noflg==1,Ltype=0);
- );
- GCLIST=append(GCLIST,[name,Ltype,opcindy]);
- );
- out;
-);
-
-Circledata(cenrad):=Circledata(cenrad,[]);
-Circledata(para1,para2):=(
-//help:Circledata([A,B],["Rng=[0,pi/2]"]);
-//help:Circledata([A,B,C]);
- regional(name,cenrad,options,str,n);
- if(isstring(para1),
- name=para1;
- cenrad=para2;
- options=[];
- ,
- cenrad=para1;
- options=para2;
- name="";// 16.10.07from
- forall(cenrad,
- name=name+#.name;
- );// 16.10.07until
- );
- Circledata(name,cenrad,options);
-);
-Circledata(nm,cenrad,options):=(
- regional(name,Out,Ctr,Ptcir,ra,Num,Rg,opstr,opcindy,
- tmp,tmp1,tmp1,Th,Ltype,Noflg,eqL,pA,pB,pC,d1,d2,Eps);
- name="cr"+nm;
- tmp=Divoptions(options);
- Ltype=tmp_1;
- Noflg=tmp_2;
- opstr=tmp_(length(tmp)-1);
- opcindy=tmp_(length(tmp));
- eqL=tmp_5;
- Num=50;
- Rg=[0,2*pi];
- forall(eqL,
- tmp=indexof(#,"=");
- tmp1=substring(#,tmp,length(#));
- opstr=opstr+",'"+#+"'";
- if(substring(#,0,1)=="N",
- Num=parse(tmp1);
- );
- if(substring(#,0,1)=="R",
- Rg=parse(tmp1);
- );
- );
- if(length(cenrad)==2,
- Ctr=Lcrd(cenrad_1);
- Ptcir=Lcrd(cenrad_2);
- ra=dist(Ctr,Ptcir);
- ,
- Eps=10^(-1);
- pA=Lcrd(cenrad_1);
- pB=Lcrd(cenrad_2);
- pC=Lcrd(cenrad_3);
- tmp=pB-pA;
- tmp1=(tmp_2,-tmp_1);
- tmp=pC-pB;
- tmp2=(tmp_2,-tmp_1);
- d1=det([tmp1,tmp2]);
- d2=det([pC-pA,tmp2]);
- if(abs(d1)<Eps & abs(d2)>10*Eps,
- println("points are in a line");
- ra=0;
- ,
- Ctr=1/2*(pA+pB)+1/2*d2/d1*tmp1;
- ra=|pA-Ctr|;
- tmp=name+"center="+Ctr;
- parse(tmp);
- Defvar(name+"center",Ctr);
- );
- );
- if(ra>0,
- Out=[];
- forall(0..Num,
- Th=Rg_1+#*(Rg_2-Rg_1)/Num;
- Out=append(Out,Ctr+ra*[cos(Th),sin(Th)]);
- );
- ,
- Out=Lineplot("1",[pA,pB],["nodata"]);
- );
- if(Noflg<3,
- println("generate Circledata "+name);
- tmp1=apply(Out,Pcrd(#));
- tmp=name+"="+textformat(tmp1,5);
- parse(tmp);
- if(length(cenrad)==2,
- tmp=name+"=Circledata("+cenrad+opstr+")";
- ,
- if(ra>0,
- tmp=name+"=Circledata(["+Ctr+","+cenrad_1+"]"+opstr+")";
- ,
- tmp=name+"=Lineplot("+cenrad_1+","+cenrad_2+")";
- );
- );
- GLIST=append(GLIST,tmp);
- );
- if(Noflg<2,
- if(isstring(Ltype),
- Ltype=GetLinestyle(text(Noflg)+Ltype,name);
- ,
- if(Noflg==1,Ltype=0);
- );
- GCLIST=append(GCLIST,[name,Ltype,opcindy]);
- );
- Out;
-);
-
-Framedata():=Framedata(["dr"]);//16.10.29from
-Framedata(list):=(
- regional(pA,pB);
- if(MeasureDepth(list)==0,
- pA=LLcrd((SW+NE)/2); // 15.09.17
- pB=LLcrd(NE);
- Framedata("win",[pA,pB],list);
- ,
- Framedata(list,[]);
- );
-);//16.10.29until
-Framedata(Arg1,Arg2):=(
- regional(name,list,options,str);
- if(isstring(Arg1),
- name=Arg1;
- list=Arg2;
- Framedata(name,list,[]);
- ,
- list=Arg1;
- options=Arg2;
- name="";// 16.10.07from
- forall(list,
- name=name+#.name;
- );// 16.10.07until
- Framedata(name,list,options);
- );
-);
-Framedata(nm,list,options):=(
-//help:Framedata();
-//help:Framedata([C,A]);
-//help:Framedata("1",[C,A]);
-//help:Framedata("1",[C,dx,dy]);
- regional(name,Out,tmp,tmp1,pB,x1,x2,y1,y2,dx,dy,
- opcindy,Ltype,Noflg,cent,dx,dy);
- name="fr"+nm;
- tmp=Divoptions(options);
- Ltype=tmp_1;
- Noflg=tmp_2;
- opcindy=tmp_(length(tmp));
- if(length(list)==2, // 15.05.12
- pA=Lcrd(list_1); pB=Lcrd(list_2);
- dx=abs(pB_1-pA_1); dy=abs(pB_2-pA_2);
- ,
- pA=Lcrd(list_1);
- dx=list_2; dy=list_3;
- );
- x1=pA_1-dx; x2=pA_1+dx;
- y1=pA_2-dy; y2=pA_2+dy;
- Out=[[x1,y1],[x2,y1],[x2,y2],[x1,y2],[x1,y1]];
- if(Noflg<3,
- println("generate Framedata "+name);
- tmp1=apply(Out,Pcrd(#));
- tmp=name+"="+textformat(tmp1,5);
- parse(tmp);
- GLIST=append(GLIST,name+"=Framedata("+pA+","+dx+","+dy+")");
- );
- if(Noflg<2,
- if(isstring(Ltype),
- Ltype=GetLinestyle(text(Noflg)+Ltype,name);
- ,
- if(Noflg==1,Ltype=0);
- );
- GCLIST=append(GCLIST,[name,Ltype,opcindy]);
- );
- Out;
-);
-Framedata(nm,cent,dx,dy):=Framedata(nm,cent,dx,dy,[]);
-Framedata(nm,cent,dx,dy,options):=(
- regional(name,Out,tmp,tmp1,x1,y1,x2,y2,Ltype,opcindy,Noflg);
- name="fr"+nm;
- tmp=Divoptions(options);
- Ltype=tmp_1;
- Noflg=tmp_2;
- opcindy=tmp_(length(tmp));
- x1=cent.x-dx; x2=cent.x+dx;
- y1=cent.y-dy; y2=cent.y+dy;
- Out=[[x1,y1],[x2,y1],[x2,y2],[x1,y2],[x1,y1]];
- if(Noflg<3,
- println("generate Framedata "+name);
- tmp1=apply(Out,Pcrd(#));
- tmp=name+"="+textformat(tmp1,5);
- parse(tmp);
- GLIST=append(GLIST,name+"=Framedata("+cent.xy+","+dx+","+dy+")");
- );
- if(Noflg<2,
- if(isstring(Ltype),
- Ltype=GetLinestyle(text(Noflg)+Ltype,name);
- ,
- if(Noflg==1,Ltype=0);
- );
- GCLIST=append(GCLIST,[name,Ltype,opcindy]);
- );
- Out;
-);
-
-Framedata2(nm,list):=Framedata2(nm,list,[]);
-Framedata2(nm,list,options):=(
-//help:Framedata2("1",[A,B]);
- regional(tmp,tmp1,pC,pB);
- pC=(Lcrd(list_1)+Lcrd(list_2))/2;
- pB=Lcrd(list_2);
- Framedata(nm,[pC,pB],options);
-);
-
-Ovaldata(nm,Pdata):=Ovaldata(nm,Pdata,[]);
-Ovaldata(nm,Pdata,options):=(
-//help:Ovaldata("1",[A,B]);
-//help:Ovaldata(optios=[size]);
- regional(name,Graph,Ctr,Dx,Dy,Rc,Out,Point,Graph,
- opstr,opcindy,tmp,tmp1,tmp2,tmp3,Ltype,Noflg);
- name="ov"+nm;
- tmp=Divoptions(options);
- Ltype=tmp_1;
- Noflg=tmp_2;
- opcindy=tmp_(length(tmp));
- opstr=tmp_(length(tmp)-1);
- Rc=0.2;
- tmp1=tmp_6;
- if(length(tmp1)>0,Rc=tmp1_1*Rc);
-// if(length(tmp1)>0,Rc=tmp1_1); //15.11.15
- Ctr=Lcrd(Pdata_1);
- if(ispoint(Pdata_2) % islist(Pdata_2),
- tmp1=Lcrd(Pdata_2);
- Dx=abs(tmp1_1-Ctr_1);
- Dy=abs(tmp1_2-Ctr_2);
- ,
- Dx=Pdata_2;
- Dy=Pdata_3;
- );
- Point=Ctr+[Dx-Rc,Dy-Rc];
- tmp1=Circledata("1",[Point,Point+[Rc,0]],
- ["Rng=[0,pi/2]","Num=10","nodata"]);
- tmp2=Listplot("1",[Ctr+[Dx-Rc,Dy],Ctr+[0,Dy]],
- ["nodata"]);
- tmp3=Listplot("2",[Ctr+[Dx,0],Ctr+[Dx,Dy-Rc]],
- ["nodata"]);
- Graph=Joincrvs("1",[tmp3,tmp1,tmp2],["nodata"]);
- tmp1=Reflectdata("1",[Graph],[Ctr,Ctr+[0,1]],["nodata"]);
- Graph=Joincrvs("1",[Graph,tmp1],["nodata"]);
- tmp2=Reflectdata("2",[Graph],[Ctr,Ctr+[1,0]],
- ["nodata"]);
- Graph=Joincrvs("2",[Graph,tmp2],["nodata"]);
- if(Noflg<3,
- println("generate Ovaldata "+name);
- tmp1=apply(Graph,Pcrd(#));
- tmp=name+"="+textformat(tmp1,5);
- parse(tmp);
- GLIST=append(GLIST,
- name+"=Ovaldata("+Ctr+","+Dx+","+Dy+opstr+")");//16.01.30
- );
- if(Noflg<2,
- if(isstring(Ltype),
- Ltype=GetLinestyle(text(Noflg)+Ltype,name);
- ,
- if(Noflg==1,Ltype=0);
- );
- GCLIST=append(GCLIST,[name,Ltype,opcindy]);
- tmp1=apply(Graph,Pcrd(#));
- tmp=name+"="+textformat(tmp1,5);
- parse(tmp);
- tmp=textformat(Ctr,5)+","+textformat(Dx,5)+","+textformat(Dy,5);
- );
- Graph;
-);
-
-Segmark(nm,ptlist):=Segmark(nm,ptlist,[]);
-Segmark(nm,ptlist,options):=Drawsegmark(nm,ptlist,options);
-Drawsegmark(nm,ptlist):=Drawsegmark(nm,ptlist,[]);
-Drawsegmark(nm,ptlist,options):=(
-//help:Segmark("1",[A,B]);
-//help:Segmark(options=["Type=1","Width=1","Size=1"]);
- regional(name,pA,pB,wid,mid,size,tp,dir,nor,eqL,
- tmp,tmp1,tmp2);
- name="mrk"+nm;
- pA=ptlist_1;
- pB=ptlist_2;
- size=0.15;
- wid=0.05;
- tp=1;
- tmp1=Divoptions(options);
- eqL=tmp1_5;
- forall(eqL,
- tmp=indexof(#,"=");
- tmp1=substring(#,tmp,length(#));
- tmp1=parse(tmp1);
- tmp=substring(#,0,1);
- if(tmp=="S" % tmp=="s",
- size=size*tmp1;
- );
- if(tmp=="W" % tmp=="w",
- wid=wid*tmp1;
- );
- if(tmp=="T" % tmp=="t",
- tp=tmp1;
- );
- );
- mid=(pA+pB)/2;
- dir=(pB-pA)/|pB-pA|;
- nor=[-dir_2,dir_1];
-// nor=nor/|nor|;
- if(tp==1,
- tmp1=mid+size*nor;
- tmp2=mid-size*nor;
- Listplot(name,[tmp1,tmp2]);
- );
- if(tp==2,
- tmp1=mid+wid*dir+size*nor;
- tmp2=mid+wid*dir-size*nor;
- Listplot(name+"r",[tmp1,tmp2]);
- tmp1=mid-wid*dir+size*nor;
- tmp2=mid-wid*dir-size*nor;
- Listplot(name+"l",[tmp1,tmp2]);
- );
- if(tp==3,
- tmp1=mid;
- tmp2=mid+size*dir;
- Circledata(name,[tmp1,tmp2]);
- );
- if(tp==4,
- tmp=mid+size*2/sqrt(3)*nor;
- tmp1=mid+size*dir-size/sqrt(3)*nor;
- tmp2=mid-size*dir-size/sqrt(3)*nor;
- Listplot(name,[tmp,tmp1,tmp2,tmp]);
- );
-);
-
-Parabolaplot(nm,ptlist):=Parabolaplot(nm,ptlist,"[-5,5]",[]);
-Parabolaplot(nm,ptlist,Arg):=(
- regional(rng,options);
- if(isstring(Arg),
- rng=Arg;
- options=[];
- ,
- rng="[-5,5]";
- options=Arg;
- );
- Parabolaplot(nm,ptlist,rng,options);
-);
-Parabolaplot(nm,ptlist,rng,options):=(
-//help:Parabolaplot("1",[A,B,C]):
-//help:Parabolaplot("1",[A,B,C],"[-5,5]");
- regional(pA,pB,pC,angle,tmp,tmp1,tmp2);
- tmp1=Lcrd(ptlist_1);
- tmp2=Lcrd(ptlist_3);
- pB=Lcrd(ptlist_2);
- tmp=(tmp2-pB)/|tmp2-pB|;
- if(tmp_2>=0,
- angle=arccos(tmp_1);
- ,
- if(tmp_1>=0,
- angle=arcsin(tmp_2);
- ,
- angle=-arccos(tmp_1);
- );
- );
- pA=Rotatepoint(tmp1,-angle,pB);
- pC=Rotatepoint(tmp2,-angle,pB);
- tmp1=1/(2*(pA_2-pB_2));
- tmp2=1/2*(pA_2+pB_2);
- tmp="("+format(tmp1,5)+")*(x-("+format(pA_1,5)+"))^2";
- tmp=tmp+"+("+format(tmp2,5)+")";
- tmp1=parse(rng);
- tmp1=[pA_1-(tmp1_2-tmp1_1)/2,pA_1+(tmp1_2-tmp1_1)/2];
- tmp2="x="+textformat(tmp1,5);
- Plotdata(nm+"para",tmp,tmp2,append(options,"nodisp"));
- Rotatedata(nm+"para","gr"+nm+"para",angle,append(options,pB));
-);
-
-Ellipseplot(nm,ptlist):=Ellipseplot(nm,ptlist,"[0,2*pi]",[]);
-Ellipseplot(nm,ptlist,Arg):=(
- regional(rng,options);
- if(isstring(Arg),
- rng=Arg;
- options=[];
- ,
- rng="[0,2*pi]";
- options=Arg;
- );
- Ellipseplot(nm,ptlist,rng,options);
-);
-Ellipseplot(nm,ptlist,rng,options):=(
-//help:Ellipseplot("1",[A,B,3]);
-//help:Ellipseplot("1",[A,B,C],"[0,pi]",[options]);
- regional(pA,pB,d,angle,f,a,b,pM,tmp,tmp1,tmp2);
- pA=Lcrd(ptlist_1);
- tmp1=Lcrd(ptlist_2);
- if(ispoint(ptlist_3),
- tmp2=Lcrd(ptlist_3);
- d=|tmp2-pA|+|tmp2-tmp1|;
- ,
- d=ptlist_3;
- );
- tmp=(tmp1-pA)/|tmp1-pA|;
- if(tmp_2>=0,
- angle=arccos(tmp_1);
- ,
- if(tmp_1>=0,
- angle=arcsin(tmp_2);
- ,
- angle=-arccos(tmp_1);
- );
- );
- pB=Rotatepoint(tmp1,-angle,pA);
- f=|pB_1-pA_1|/2;
- a=d/2;
- b=sqrt(d^2/4-f^2);
- pM=(pA+pB)/2;
- tmp="["+format(pM_1,5)+","+format(pM_2,5)+"]";
- tmp=tmp+"+["+format(a,5)+"*cos(t),"+format(b,5)+"*sin(t)]";
- Paramplot(nm+"elp",tmp,"t="+rng,append(options,"nodisp"));
- Rotatedata(nm+"elp","gp"+nm+"elp",angle,append(options,pA));
-);
-
-Hyperbolaplot(nm,ptlist):=Hyperbolaplot(nm,ptlist,"[-5/2,5/2]",[]);
-Hyperbolaplot(nm,ptlist,Arg):=(
- regional(rng,options);
- if(isstring(Arg),
- rng=Arg;
- options=[];
- ,
- rng="[-5/2,5/2]";
- options=Arg;
- );
- Hyperbolaplot(nm,ptlist,rng,options);
-);
-Hyperbolaplot(nm,ptlist,rng,optionsorg):=(
-//help:Hyperbolaplot("1",[A,B,C],["Num=200"]):
-//help:Hyperbolaplot("1",[A,B,C],"[-5,5]",["Asy=do"]);
- regional(pA,pB,d,angle,f,a,b,pM,eqL,options,opasy,tmp,tmp1,tmp2);
- tmp=Divoptions(optionsorg);
- eqL=tmp_5;
- options=optionsorg;
- opasy=[];
- forall(eqL,
- if(Toupper(substring(#,0,1))=="A",
- tmp=indexof(#,"=");
- opasy=[substring(#,tmp,length(#))];
- options=remove(options,[#]);
- );
- );
- pA=Lcrd(ptlist_1);
- tmp1=Lcrd(ptlist_2);
- if(ispoint(ptlist_3),
- tmp2=Lcrd(ptlist_3);
- d=abs(|tmp2-pA|-|tmp2-tmp1|);
- ,
- d=ptlist_3;
- );
- tmp=(tmp1-pA)/|tmp1-pA|;
- if(tmp_2>=0,
- angle=arccos(tmp_1);
- ,
- if(tmp_1>=0,
- angle=arcsin(tmp_2);
- ,
- angle=-arccos(tmp_1);
- );
- );
- pB=Rotatepoint(tmp1,-angle,pA);
- f=|pB_1-pA_1|/2;
- a=d/2;
- b=sqrt(f^2-d^2/4);
- pM=(pA+pB)/2;
- tmp="["+format(pM_1,5)+"+"+format(a,5)+"*(exp(t)+exp(-t))/2,";
- tmp=tmp+format(pM_2,5)+"+"+format(b,5)+"*(exp(t)-exp(-t))/2]";
- Paramplot(nm+"hyp1",tmp,"t="+rng,append(options,"nodisp"));
- tmp="["+format(pM_1,5)+"-"+format(a,5)+"*(exp(t)+exp(-t))/2,";
- tmp=tmp+format(pM_2,5)+"+"+format(b,5)+"*(exp(t)-exp(-t))/2]";
- Paramplot(nm+"hyp2",tmp,"t="+rng,append(options,"nodisp"));
- Rotatedata(nm+"hyp1","gp"+nm+"hyp1",angle,append(options,pA));//180408
- Rotatedata(nm+"hyp2","gp"+nm+"hyp2",angle,append(options,pA));//180408
- if(length(opasy)>0,
- Lineplot(nm+"asy1",[pM+[a,b],pM+[-a,-b]],["nodisp"]);
- Lineplot(nm+"asy2",[pM+[-a,b],pM+[a,-b]],["nodisp"]);
- Rotatedata(nm+"asy1","ln"+nm+"asy1",angle,append(opasy,pA));//180408
- Rotatedata(nm+"asy2","ln"+nm+"asy2",angle,append(opasy,pA));//180408
- );
-);
-
-Polygonplot(nm,ptlist,number):=Polygonplot(nm,ptlist,number,[]);
-Polygonplot(nm,ptlist,number,options):=(
-//help:Polygonplot("1",[A,B],12);
- regional(rr,pA,pB,ptL,angle,tmp,tmp1,tmp2);
- pA=Lcrd(ptlist_1);
- pB=Lcrd(ptlist_2);
- rr=|pB-pA|;
- tmp=(pB-pA)/rr;
- if(tmp_2>=0,
- angle=arccos(tmp_1);
- ,
- if(tmp_1>=0,
- angle=arcsin(tmp_2);
- ,
- angle=-arccos(tmp_1);
- );
- );
- ptL=[];
- forall(0..number,
- tmp=angle+#*2*pi/number;
- tmp1=pA+rr*[cos(tmp),sin(tmp)];
- if(#>0 & #<number,
- Putpoint((ptlist_2).name+text(#),tmp1);//16.10.07
- //Pointdata(nm,ptL);
- );
- tmp2=tmp1;
- ptL=append(ptL,tmp1);
- );
- Listplot(nm+"ply",ptL,options);
-);
-
-Putintersect(nm,pdata1,pdata2):=(
-//help:Putintersect("Q","gr1","gr2");
- regional(pd1,pd2,tmp);
- if(isstring(pdata1),pd1=parse(pdata1),pd1=pdata1);
- if(isstring(pdata2),pd2=parse(pdata2),pd2=pdata2);
- tmp=Intersectcrvs(pd1,pd2);
- if(length(tmp)==1,
- Putpoint(nm,tmp_1);
- ,
- if(length(tmp)==0,
- err("No intersect point");
- ,
- err("Multiple intersect points");
- println(tmp);
- err("Choose point number");
- );
- );
-);
-Putintersect(nm,pdata1,pdata2,ptno):=(
- regional(pd1,pd2,tmp);
- if(isstring(pdata1),pd1=parse(pdata1),pd1=pdata1);
- if(isstring(pdata2),pd2=parse(pdata2),pd2=pdata2);
- tmp=Intersectcrvs(pd1,pd2);
- if(length(tmp)>0,
- Putpoint(nm,tmp_ptno);
- ,
- err("No intersect point");
- );
-);
-
-Arrowheaddata(point,direction):=Arrowheaddata(point,direction,[]);
-Arrowheaddata(point,direction,options):=(
-//help:Arrowheaddata(A,B);
- regional(list,Ookisa,Hiraki,Futosa,Houkou,Str,Flg,tmp,Ev,Nv,pA,pB,
- pP,rF,gG,Flg,Nj,Eps,tmp1,scx,scy);
- Eps=10^(-3);
- pP=point;
- Ookisa=0.2*YaSize;
- Hiraki=YaAngle;
- Futosa=0;
- Str=YaStyle;
- tmp=Divoptions(options);
- tmp1=tmp_6;
- if(length(tmp1)>0,Ookisa=Ookisa*tmp1_1);
- if(length(tmp1)>1,
- tmp=tmp1_2;
- if(tmp<5,
- Hiraki=Hiraki*tmp;
- ,
- Hiraki=tmp;
- );
- );
- Flg=0;
- Hiraki=Hiraki*pi/180;
- if(isstring(direction),Houkou=parse(direction),Houkou=direction);
- if(MeasureDepth(Houkou)==2,Houkou=Houkou_1);
- if(islist(Houkou_1),
-// pP=Lcrd(pP);
-// pP=Doscaling(pP);
-// Houkou=Dosscaling(Houkou);
- pP=Pcrd(pP);
- scy=SCALEY;
- SCALEY=1;
- tmp=Nearestpt(pP,Houkou);
- pA=tmp_1;
- rF=floor(tmp_2);
- if(rF==1,
- if(|Ptend(Houkou)-Ptstart(Houkou)|<Eps,
- rF=Numptcrv(Houkou);
- );
- );
- gG=apply(0..10,pP+Ookisa*cos(Hiraki)*[cos(2*pi/10*#),sin(2*pi/10*#)]);
- Flg=0;
- forall(1..rF,Nj,
- if(Flg==0,
- pB=Ptcrv(rF+1-Nj,Houkou);
- tmp=IntersectcrvsPp([pA,pB],gG);
- if(length(tmp)>0,
- Houkou=pP-tmp_1_1;
- Flg=1;
- );
- pA=pB;
- );
- );
- SCALEY=scy;
- if(Flg==0,
- println("Arrowhead may be too large (no intersect)");
- Flg=2;
- );
- if(Flg==1,
- Houkou=Unscaling(Houkou);
- pP=Unscaling(pP);
- );
- );
- if(Flg<2,
-// pP=Doscaling(pP);
-// Houkou=Doscaling(Houkou);
- pP=Pcrd(pP);
- if(!ispoint(point),
- Houkou=Pcrd(Houkou);
- );
-// if(MeasureDepth(Houkou)==0,Houkou=Pcrd(Houkou));
- Ev=-1/|Houkou|*Houkou;
- Ev=Lcrd(Ev);
- Nv=[-Ev_2, Ev_1];
- if(indexof(Str,"c")>0,
- pP=pP-0.5*Ookisa*cos(Hiraki)*Ev;
- );
- if(indexof(Str,"b")>0,
- pP=pP-Ookisa*cos(Hiraki)*Ev;
- );
- pA=pP+Ookisa*cos(Hiraki)*Ev+Ookisa*sin(Hiraki)*Nv;
- pB=pP+Ookisa*cos(Hiraki)*Ev-Ookisa*sin(Hiraki)*Nv;
- list=[pA,pP,pB];
- list=apply(list,LLcrd(#));
-// Out=Unscaling(Out);
- list;
- );
-);
-
-Arrowhead(point,Houkou):=Arrowhead(point,Houkou,[]);
-Arrowhead(point,Houkou,options):=(
-//help:Arrowhead(B,B-A,[1.5,30]);
-//help:Arrowhead(A,"gr1");
- // global ArrowheadNumber
- regional(name,Ltype,Noflg,reL,opstr,opcindy,ptstr,hostr,tmp,tmp1,list);
- name="arh"+text(ArrowheadNumber);
- ArrowheadNumber=ArrowheadNumber+1;
- ptstr=textformat(point,5);
- if(isstring(Houkou), // 15.01.11
- tmp=parse(Houkou);
- if(MeasureDepth(tmp)<2,
- hostr=Houkou;
- ,
- hostr=Houkou+"(1)";
- );
- ,
- if(ispoint(point),
- hostr=textformat(LLcrd(Houkou),5);
- ,
- hostr=textformat(Houkou,5);
- );
- );
- tmp=Divoptions(options);
- Ltype=tmp_1;
- Noflg=tmp_2;
- reL=tmp_6;
- opstr=tmp_(length(tmp)-1);
- opcindy=tmp_(length(tmp));
- list=Arrowheaddata(point,Houkou,options);
- if(Noflg<3,
-// println("generate Arrowhead "+name);
- tmp1=apply(list,Pcrd(#));
- tmp=name+"="+textformat(tmp1,5);
- parse(tmp);
-// GLIST=append(GLIST,name+"=Listplot("+list+")");
- );
- if(Noflg<2,
- if(isstring(Ltype),
- Ltype=GetLinestyle(text(1)+Ltype,name);
- ,
-// if(Noflg==1,Ltype=0);
- Ltype=0;
- );
- GCLIST=append(GCLIST,[name,Ltype,opcindy]);
- );
- if(Noflg==0,
- if(length(reL)<3, // 16.04.09 from
- forall(1..(2-length(reL)),
- opstr=opstr+",1";
- );
- tmp=PenThick/PenThickInit;
- opstr=opstr+","+text(tmp);
- ); // 16.04.09 until
- Com2nd("Arrowhead("+ptstr+","+hostr+opstr+")");
- );
-);
-
-Arrowdata(ptlist):=Arrowdata(ptlist,[]);
-Arrowdata(Arg1,Arg2):=(
- regional(tmp,nm,ptlist,flg,pA,pB,options);
- flg=0;
- if(isstring(Arg1),
- nm=Arg1;
- ptlist=Arg2;
- Arrowdata(nm,ptlist,[]);
- flg=1;
- );
- if(flg==0,
- tmp=MeasureDepth(Arg1);
- if(tmp==0,
- pA=Arg1;
- pB=Arg2;
- Arrowdata(pA,pB,[]);
- ,
- ptlist=Arg1;
- options=Arg2;
- nm=text(ArrowlineNumber);
- ArrowlineNumber=ArrowlineNumber+1;
- Arrowdata(nm,ptlist,options);
- );
- );
-);
-Arrowdata(Arg1,Arg2,options):=(
-//help:Arrowdata([A,B],[2,10]);
-//help:Arrowdata("1",[p1,p2]);
- regional(Retflg,nm,ptlist,name,opstr,opcindy,realL,strL,size,
- flg,Ltype,Noflg,lineflg,tmp,tmp1,tmp2,pA,pB,segpos);
- Retflg=0;
- Noflg=0;
- Ltype=0;
- if(!isstring(Arg1),
- pA=Arg1;
- pB=Arg2;
- Arrowdata(pA,pB,options,"old");
- Retflg=1;
- ptlist=[pA,pB];
- );
- if(Retflg==0,
- nm=Arg1;
- ptlist=Arg2;
- name="ar"+nm;
- tmp=Divoptions(options);
- Ltype=tmp_1;
- Noflg=tmp_2;
- realL=tmp_6;
- strL=tmp_7;
- opstr=tmp_(length(tmp)-1);
- opcindy=tmp_(length(tmp));
- size=1; // 15.06.11
- if(length(realL)>0,
- size=realL_1;
- );
- tmp2=select(strL,indexof(#,"l")>0); // 16.04.09
- if(length(tmp2)>0,lineflg=1,lineflg=0); // 16.04.09
- segpos=1;
- tmp1=tmp_5;
- if(length(tmp1)>2,
- segpos=tmp1_3;
- );
- if(Noflg<3,
-// println("generate Arrowdata "+name);
- tmp1=apply(ptlist,Pcrd(#));
- tmp=name+"="+textformat(tmp1,5);
- parse(tmp);
- tmp1=Pcrd(ptlist_1);//16.10.20
- tmp2=Pcrd(ptlist_2);//16.10.20
- if(lineflg==0, // 16.04.09 from
- tmp=tmp2-0.2*size/2*(tmp2-tmp1)/|tmp2-tmp1|; // 15.06.11
- ,
- tmp=tmp2;
- ); // 16.04.09 until
- tmp=[LLcrd(tmp1),LLcrd(tmp)];//16.10.20
- GLIST=append(GLIST,name+"=Listplot("+textformat(tmp,5)+")");
- );
- if(Noflg<2,
- if(isstring(Ltype),
- Ltype=GetLinestyle(text(Noflg)+Ltype,name);
- ,
- if(Noflg==1,Ltype=0);
- );
- tmp=textformat(ptlist,5);
- tmp=substring(tmp,1,length(tmp)-1);
- tmp1=indexof(tmp,"],[");
- if(tmp1>0,
- pA=substring(tmp,0,tmp1);
- pB=substring(tmp,tmp1+1,length(tmp));
- ,
- tmp1=indexof(tmp,",");
- pA=substring(tmp,0,tmp1-1);
- pB=substring(tmp,tmp1,length(tmp));
- );
- tmp1="Lcrd("+pA+")+"
- +textformat(segpos,5)+"*(Lcrd("+pB+")-"+"Lcrd("+pA+"))";
- tmp1=parse(tmp1);
- tmp2="Lcrd("+pB+")-Lcrd("+pA+")";
- tmp2=parse(tmp2);
- Arrowhead(tmp1,tmp2,options);
- GCLIST=append(GCLIST,[name,Ltype,opcindy]);
- );
- );
- ptlist;
-);
-Arrowdata(pA,pB,options,str):=(
- regional(ptA,ptB,opstr,Astr,Bstr,name,tmp,opcindy);
- Astr=textformat(pA,5);
- Bstr=textformat(pB,5);
- name="ar"+pA.name+pB.name;
- println("generate Arrow "+name);
- opstr="";
- opcindy="";
- forall(options,
- if(isstring(#),
- if(indexof(#,"->")>0,
- opcindy=opcindy+","+#;
- ,
- tmp="'"+#+"'";
- );
- ,
- tmp=text(#);
- );
- opstr=opstr+","+tmp;
- );
- ptA=Lcrd(pA);
- ptB=Lcrd(pB);
- Arrowheaddata(ptB,ptB-ptA,options);
- tmp="connect("+textformat([ptA,ptB],5)
- +",linecolor->"+text(KCOLOR)+opcindy+");";
- parse(tmp); // 14.11.17
- Com2nd("Arrowline("+Astr+","+Bstr+opstr+")"); // 14.10.04
-);
-
-Anglemark(plist):=Anglemark(plist,[]);
-Anglemark(Arg1,Arg2):=( // 2015.04.28 from
- regional(nm,plist,options,tmp);
- if(isstring(Arg1),
- nm=Arg1;
- plist=Arg2;
- Anglemark(nm,plist,[]);
- ,
- plist=Arg1;
- options=Arg2;
- tmp=textformat(plist,5);
- tmp=replace(tmp,",","");
- nm=substring(tmp,1,length(tmp)-1);
- Anglemark(nm,plist,options);
- );
-); // until
-Anglemark(nm,plist,options):=(
-//help:Anglemark([A,B,C],["E=\theta",2]);
-//help:Anglemark("1",[A,B,C],["E=1.2,\theta",2]);
-//help:Anglemark(options=["E/L=(sep,)letter",size]);
- regional(name,Out,pB,pA,pC,Ctr,ra,sab,sac,ratio,opstr,Bname,Bpos,
- Brat,tmp,tmp1,tmp2,Num,opcindy,Ltype,eqL,realL,Rg,Th,Noflg);
- name="ag"+nm;
- Bpos="md"+name;
- ra=0.5;
- tmp=Divoptions(options);
- Ltype=tmp_1;
- Noflg=tmp_2;
- opstr=tmp_(length(tmp)-1);
- opcindy=tmp_(length(tmp));
- eqL=tmp_5;
- realL=tmp_6;
- Bname="";
- Brat=1.5;
- Num=20;
- if(length(realL)>0,
- ra=realL_1*ra;
- opstr=opstr+","+text(realL_1);
- );
- forall(eqL,
- if(substring(#,0,1)=="L",Bname="Letter(");
- if(substring(#,0,1)=="E",Bname="Expr(");
- Bname=Bname+Bpos+","+Dq+"c"+Dq+","+Dq;//16.10.29
- tmp=substring(#,indexof(#,"="),length(#));
- tmp1=indexof(tmp,",");
- Bname=Bname+substring(tmp,tmp1,length(tmp))+Dq+")";
- if(tmp1>0,
- Brat=parse(substring(tmp,0,tmp1-1));
- );
- );
- pB=Lcrd(plist_1); pA=Lcrd(plist_2); pC=Lcrd(plist_3);
- Ctr=Lcrd(pA);
- sab=pB-pA;
- sac=pC-pA;
- Rg=[arctan2(sab)+0,arctan2(sac)+0];
- if(Rg_2<Rg_1,Rg_2=Rg_2+2*pi);
- Out=[];
- if(ra>min(|sab|,|sac|), // 16.12.29
- println(" segments too short");
- ,
- forall(0..Num,
- Th=Rg_1+#*(Rg_2-Rg_1)/Num;
- Out=append(Out,Ctr+ra*[cos(Th),sin(Th)]);
- );
- Th=(Rg_1+Rg_2)/2; //16.10.31from(moved)
- tmp1=Ctr+Brat*ra*[cos(Th),sin(Th)];
- tmp="Defvar("+Dq+Bpos+"=";
- tmp=tmp+textformat(tmp1,5)+Dq+");";
- parse(tmp);//16.10.31until(moved)
- if(length(Bname)>0,
- parse(Bname);
- );
- if(Noflg<3,
- println("generate anglemark "+name+" and "+Bpos);
- tmp1=apply(Out,Pcrd(#));
- tmp=name+"="+textformat(tmp1,5);
- parse(tmp);
- tmp=textformat(plist,5);
- tmp1=substring(tmp,1,length(tmp)-1);
- tmp=name+"=Anglemark("+tmp1+opstr+")";
- GLIST=append(GLIST,tmp);
- );
- if(Noflg<2,
- if(isstring(Ltype),
- Ltype=GetLinestyle(text(Noflg)+Ltype,name);
- ,
- if(Noflg==1,Ltype=0);
- );
- GCLIST=append(GCLIST,[name,Ltype,opcindy]);
- );
- );
- Out;
-);
-
-Paramark(plist):=Paramark(plist,[]);
-Paramark(Arg1,Arg2):=( // 17.03.27 from
- regional(nm,plist,options,tmp);
- if(isstring(Arg1),
- nm=Arg1;
- plist=Arg2;
- Paramark(nm,plist,[]);
- ,
- plist=Arg1;
- options=Arg2;
- tmp=textformat(plist,5);
- tmp=replace(tmp,",","");
- nm=substring(tmp,1,length(tmp)-1);
- Paramark(nm,plist,options);
- );
-);// until
-Paramark(nm,plist,options):=(
-//help:Paramark([A,B,C],["E=\theta"]);
-//help:Paramark("1",[p1,p2,p3],["E=\theta"]);
- regional(name,Out,pB,pA,pC,ra,sab,sac,ratio,opstr,Bname,Bpos,
- Brat,tmp,tmp1,tmp2,Ltype,Noflg,eqL,realL,opcindy);
- name="pm"+nm;
- tmp=Divoptions(options);
- Ltype=tmp_1;
- Noflg=tmp_2;
- opstr=tmp_(length(tmp)-1);
- opcindy=tmp_(length(tmp));
- eqL=tmp_5;
- realL=tmp_6;
- ra=0.5;
- Bname="";
- Brat=1.2;
- if(length(realL)>0,
- tmp=realL_1;
- ra=tmp*ra;
- opstr=opstr+","+text(tmp);
- );
- forall(eqL,
- if(substring(#,0,1)=="L",Bname="Letter(");
- if(substring(#,0,1)=="E",Bname="Expr(");
- Bpos="md"+name;
- Bname=Bname+Dq+Bpos+Dq+","+Dq+"c"+Dq+","+Dq;
- tmp=substring(#,indexof(#,"="),length(#));
- tmp1=indexof(tmp,",");
- Bname=Bname+substring(tmp,tmp1,length(tmp))+Dq+")";
- if(tmp1>0,
- Brat=parse(substring(tmp,0,tmp1-1));
- );
- );
- pB=Lcrd(plist_1); pA=Lcrd(plist_2); pC=Lcrd(plist_3);
- Ctr=Lcrd(pA);
- Out=[];
- Out=append(Out,pA+ra*(pB-pA)/|pB-pA|);
- Out=append(Out,pA+ra*(pB-pA)/|pB-pA|+ra*(pC-pA)/|pC-pA|);
- Out=append(Out,pA+ra*(pC-pA)/|pC-pA|);
- if(length(Bname)>0,
- tmp1=pA+Brat*ra*(pB-pA)/|pB-pA|+Brat*ra*(pC-pA)/|pC-pA|;
- tmp="Defvar("+Dq+Bpos+"="+textformat(tmp1,5)+Dq+");";
- parse(tmp);
- parse(Bname);
- );
- if(Noflg<3,
- println("generate paramark "+name);
- tmp1=apply(Out,Pcrd(#));
- tmp=name+"="+textformat(tmp1,5);
- parse(tmp);
- tmp1=substring(textformat(plist,5),1,length(textformat(plist,5))-1);
- tmp=name+"=Paramark("+tmp1+opstr+")";
- GLIST=append(GLIST,tmp);
- );
- if(Noflg<2,
- if(isstring(Ltype),
- Ltype=GetLinestyle(text(Noflg)+Ltype,name);
- ,
- if(Noflg==1,Ltype=0);
- );
- GCLIST=append(GCLIST,[name,Ltype,opcindy]);
- );
- Out;
-);
-
-MakeBowdata(pA,pB,Hgt):=(
- regional(angle,pB2,pH2,pC2,pC,tmp,Th1,Th2,ra,dMA);
- angle=arctan2(pB-pA)+0;
- pB2=Rotatepoint(pB,-angle,pA);
- tmp=Lcrd(pA);
- pH2=[(tmp_1+pB2_1)/2,tmp_2-Hgt];
- dMA=|tmp-pB2|/2;
- ra=(dMA^2+Hgt^2)/(2*Hgt);
- pC2=[pH2_1,pB2_2+(ra-Hgt)];
- pC=Rotatepoint(pC2,angle,pA);
- Th1=arctan2(pA-pC2)+angle;
- Th2=arctan2(pB2-pC2)+angle;
- [pC,ra,Th1,Th2];
-);
-
-Bowdata(plist):=Bowdata(plist,[]);
-Bowdata(plist,options):=(
- regional(nm,tmp);
- if(islist(plist), // 16.12.04from
- tmp=textformat(plist,5);
- tmp=replace(tmp,",","");
- nm=substring(tmp,1,length(tmp)-1);
- Bowdata(nm,plist,options);
- ,
- nm=plist;
- tmp=options;
- Bowdata(nm,tmp,[]);
- ); // 16.12.04until
-);
-Bowdata(nm,plist,options):=(
-//help:Bowdata([C,A],[2,1.2,"Expr=10","da"]);
-//help:Bowdata([A,B],["Expr=t0n3,a"]);
-//help:Bowdata([A,B],["Exprrot=t0n2r,a"]);
- regional(name,Out,pB,pA,pC,ra,tmp,tmp1,tmp2,Ltype,eqL,realL,
- Bname,Bpos,Th,Cut,Num,Hgt,opstr,opcindy,Ydata,pC,
- Th1,Th2,Noflg,Bops,Bmov,Tmov,Nmov,rev);
- name="bw"+nm;
- tmp=Divoptions(options);
- Ltype=tmp_1;
- Noflg=tmp_2;
- opstr=tmp_(length(tmp)-1);
- opcindy=tmp_(length(tmp));
- eqL=tmp_5;
- realL=tmp_6;
- pA=Lcrd(plist_1); pB=Lcrd(plist_2);
- Hgt=1/2*|pB-pA|*0.2;
- Cut=0;
- Num=24;
- Bname="";
- Tmov=0;//16.11.01from
- Nmov=0;
- Bmov="";
- rev=0;//16.11.01until
- if(length(realL)>0,
- Hgt=realL_1*Hgt; // 15.04.12
- if(length(realL)>1,Cut=realL_2);
- );
- forall(eqL,
- tmp=substring(#,0,1);
- if(tmp=="L" % tmp=="l",
- if(indexof(#,"rot")>0,
- Bname="Letterrot(";
- ,
- Bname="Letter(";
- );
- );
- if(tmp=="E" % tmp=="e",
- if(indexof(#,"rot")>0,
- Bname="Exprrot(";
- ,
- Bname="Expr(";
- );
- );
- tmp=indexof(#,"=");
- Bops=substring(#,tmp,length(#)); // 16.11.01
- );
- Ydata=MakeBowdata(pA,pB,Hgt);
- pC=Ydata_1;
- ra=Ydata_2;
- Th=(Ydata_3+Ydata_4)*0.5;
- BOWMIDDLE=[pC_1+ra*cos(Th),pC_2+ra*sin(Th)];
- Bpos="md"+name; // 16.10.31from(moved)
- tmp="Defvar("+Dq+Bpos+"="+textformat(BOWMIDDLE,5)+Dq+");";
- parse(tmp);// 16.10.31until(moved)
- if(length(Bname)>0, //16.11.01from
- tmp=indexof(Bops,",");
- if(tmp>0,
- tmp1=substring(Bops,0,tmp-1);
- if(length(tmp1)>=4 & substring(tmp1,0,1)=="t" & indexof(tmp1,"n")>0,
- Bmov=tmp1;
- Bops=substring(Bops,tmp,length(Bops));
- );
- );
- if(length(Bmov)>0,
- tmp=indexof(Bmov,"t");
- if(tmp>0,
- tmp1=indexof(Bmov,"n");
- Tmov=parse(substring(Bmov,tmp,tmp1-1));
- tmp=indexof(Bmov,"r");
- if(tmp>0,
- Nmov=parse(substring(Bmov,tmp1,tmp-1));
- rev=1;
- ,
- Nmov=parse(substring(Bmov,tmp1,length(Bmov)));
- );
- );
- );
- Bname=Bname+Bpos;//16.11.01
- if(abs(Tmov)+abs(Nmov)>0,
- tmp=Pcrd(pA)-Pcrd(pB);
- tmp1=1/norm(tmp)*tmp;
- tmp2=[-tmp1_2,tmp1_1];
- tmp=MARKLEN*(Tmov*tmp1+Nmov*tmp2);
- tmp=LLcrd(tmp);
- Bname=Bname+"+"+text(tmp);
- );
- Bname=Bname+",";
- if(indexof(Bname,"rot")>0,
- if(rev==1,tmp=pB-pA,tmp=pA-pB);
- Bname=Bname+textformat(tmp,5)+",";
- ,
- Bname=Bname+Dq+"c"+Dq+",";
- );
- Bname=Bname+Dq+Bops+Dq+")";
- parse(Bname);
- );//16.11.01until
- if(Cut==0,
- Th1=Ydata_3;
- Th2=Ydata_4;
- Out=[];
- forall(0..Num,
- tmp=Th1+#*(Th2-Th1)/Num;
- Out=append(Out,pC+ra*[cos(tmp),sin(tmp)]);
- );
- ,
- Th1=Ydata_3;
- Th2=Th-Cut/(2*ra);
- tmp1=[];
- forall(0..Num/2,
- tmp=Th1+#*(Th2-Th1)/(Num/2);
- tmp1=append(tmp1,pC+ra*[cos(tmp),sin(tmp)]);
- );
- Th1=Th+Cut/(2*ra);
- Th2=Ydata_4;
- tmp2=[];
- forall(0..Num/2,
- tmp=Th1+#*(Th2-Th1)/(Num/2);
- tmp2=append(tmp2,pC+ra*[cos(tmp),sin(tmp)]);
- );
- Out=[tmp1,tmp2];
- );
- if(Noflg<3,
- println("generate bowdata "+name+" and "+Bpos);//16.10.31
- if(MeasureDepth(Out)==1,Out=[Out]);
- tmp1=[];
- forall(Out,tmp2,
- tmp=apply(tmp2,Pcrd(#));
- tmp1=append(tmp1,tmp);
- );
- tmp=name+"="+textformat(tmp1,5);
- parse(tmp);
- tmp1=substring(textformat(plist,5),1,length(textformat(plist,5))-1);
- tmp=name+"=Bowdata("+tmp1+opstr+")";
- GLIST=append(GLIST,tmp);
- );
- if(Noflg<2,
- if(isstring(Ltype),
- Ltype=GetLinestyle(text(Noflg)+Ltype,name);
- ,
- if(Noflg==1,Ltype=0);
- );
- GCLIST=append(GCLIST,[name,Ltype,opcindy]);
- );
-);
-
-Bowname(str):=Bowname("c",str);
-Bowname(dir,str):=(
- Expr([BOWMIDDLE,dir,str]);
-);
-
-Bownamerot(bwdata,str):=Bownamerot(bwdata,0,0,str,1);
-Bownamerot(bwdata,str,updown):=Bownamerot(bwdata,0,0,str,updown);
-Bownamerot(bwdata,tmov,nmov,str):=Bownamerot(bwdata,tmov,nmov,str,1);
-Bownamerot(bwdata,tmov,nmov,str,updown):=(
- regional(bdata,tmp);
- tmp=MeasureDepth(bwdata);
- if(tmp==1,bdata=[bwdata],bdata=bwdata);
- if(length(bdata)>1,
- tmp=Ptend(bdata_2)-Ptstart(bdata_1);
- ,
- tmp=Ptend(bdata_1)-Ptstart(bdata_1);
- );
- if(updown<0,tmp=-tmp);
- Exprrot(BOWMIDDLE,tmp,tmov,nmov,str);
-);
-
-Deqdata(deq,rng,initt,initf,Num):=( //17.10.04
-// Deqdata("[x1,...xn]`=[f1,...fn]","t=[0,20]",0,[...],50);
- regional(Eps,Inf,tname,Xname,func,t1,t2,dt,tt,X0,flg,
- kl1,kl2,kl3,kl4,pdL,tmp,tmp1,tmp2);
- Eps=10^(-3);
- Inf=10^3;
- tmp=tokenize(deq,"=");
- tmp1=replace(tmp_1,"`","");
- tmp1=substring(tmp1,1,length(tmp1)-1);
- Xname=tokenize(tmp1,",");
- func=tmp_2;
- forall(1..(length(Xname)),
- func=replace(func,Xname_#,"X_"+text(#));
- );
- tmp=tokenize(rng,"=");
- tname=tmp_1;
- tmp=parse(tmp_2);
- t1=tmp_1;
- t2=tmp_2;
- tmp="funP("+tname+",X):="+func+";";
- parse(tmp);
- tmp="funN("+tname+",X):=-"+func+";";
- parse(tmp);
- dt=(t2-t1)/Num;
- tt=initt;
- X0=Lcrd(initf);
- pdL=[flatten([tt,X0])];
- flg=0;
- forall(1..floor((t2-initt)/dt),
- if(flg==0,
- kl1=dt*funP(tt,X0);
- kl2=dt*funP(tt+dt/2,X0+kl1/2);
- kl3=dt*funP(tt+dt/2,X0+kl2/2);
- kl4=dt*funP(tt+dt,X0+kl3);
- X0=X0+(kl1+2*kl2+2*kl3+kl4)/6;
- tt=initt+#*dt;
- tmp=flatten([tt,X0]);
- pdL=append(pdL,tmp);
- if(|tmp|>Inf,flg=1);
- );
- );
- tt=initt;
- X0=Lcrd(initf);
- flg=0;
- forall(1..floor((initt-t1)/dt),
- if(flg==0,
- kl1=dt*funN(tt,X0);
- kl2=dt*funN(tt+dt/2,X0+kl1/2);
- kl3=dt*funN(tt+dt/2,X0+kl2/2);
- kl4=dt*funN(tt+dt,X0+kl3);
- X0=X0+(kl1+2*kl2+2*kl3+kl4)/6;
- tt=initt-#*dt;
- tmp=flatten([tt,X0]);
- pdL=prepend(tmp,pdL);
- if(|tmp1|>Inf,flg=1);
- );
- );
- pdL;
-);
-
-Deqplot(nm,deq,rng,initf):=Deqplot(nm,deq,rng,Lcrd(initf)_1,initf,[]);
-Deqplot(nm,deq,rng,Arg1,Arg2):=(
- regional(initt,initf,options);
- if(isreal(Arg1) & !islist(Arg1),
- initt=Arg1;
- initf=Arg2;
- options=[];
- ,
- initf=Lcrd(Arg1);
- initt=initf_1;
- options=Arg2;
- );
- Deqplot(nm,deq,rng,initt,initf,options);
-);
-Deqplot(nm,deqorg,rngorg,initt,initf,options):=( //17.10.06
-//help:Deqplot("2","y`=y*(1-y)","x",0, 0.5,["Num=100"]);
-//help:Deqplot("1","y``=-y","x",0, [1,0]);
-//help:Deqplot("3","[x,y]`=[x*(1-y),0.3*y*(x-1)]","t=[0,20]",0,[1,0.5]);
- regional(deq,rng,Ltype,Noflg,eqL,opcindy,Num,name,nn,pdL,phase,
- sel,tmp,tmp1,tmp2);
- name="de"+nm;
- tmp=Divoptions(options);
- Ltype=tmp_1;
- Noflg=tmp_2;
- eqL=tmp_5;
- opcindy=tmp_(length(tmp));
- Num=50;
- forall(eqL,
- tmp=indexof(#,"=");
- tmp2=substring(#,0,1);
- tmp2=Toupper(tmp2);
- tmp1=substring(#,tmp,length(#));
- if(Toupper(substring(#,0,1))=="N",
- Num=parse(tmp1);
- );
- );
- rng=rngorg;
- if(indexof(rng,"=")==0,
- rng=rng+"="+textformat([XMIN,XMAX],6);
- );
- deq=deqorg;
- tmp=indexof(deq,"=");
- tmp1=substring(deq,0,tmp-1);
- if(indexof(tmp1,"[")==0,
- phase=0;
- sel=[1,2];
- ,
- phase=1;
- sel=[2,3];
- );
- tmp2=substring(deq,tmp,length(deq));
- nn=length(Indexall(tmp1,"`"));
- if(nn==1,
- if(indexof(tmp1,"[")==0,
- tmp1="["+replace(tmp1,"`","]`");
- deq=tmp1+"="+tmp2;
- );
- ,
- tmp=indexof(tmp1,"`");
- tmp1=substring(tmp1,0,tmp-1);
- deq="[";
- forall(1..nn,
- deq=deq+tmp1+"N"+text(#)+",";
- );
- deq=substring(deq,0,length(deq)-1)+"]`=[";
- forall(1..(nn-1),
- deq=deq+tmp1+"N"+text(#+1)+",";
- );
- forall(reverse(1..(nn)),jj,
- tmp=tmp1;
- forall(1..jj,
- tmp=tmp+"`";
- tmp2=replace(tmp2,tmp,tmp1+"N"+text(#+1));
- );
- );
- tmp2=tmp2+"]";
- forall(1..(length(tmp2)-1),
- tmp=substring(tmp2,#-1,#);
- if(tmp!=tmp1,
- deq=deq+tmp;
- ,
- tmp=substring(tmp2,#,#+1);
- if(tmp=="N",
- deq=deq+tmp1;
- ,
- deq=deq+tmp1+"N1"
- );
- );
- );
- deq=deq+"]";
- );
- if(Noflg<3,
- pdL=deqdata(deq,rng,initt,initf,Num);
- if(phase==1,
- pdL=apply(pdL,#_(2..3));
- );
- tmp1=apply(pdL,Pcrd(#));
- tmp=name+"="+textformat(tmp1,5);
- parse(tmp);
- );
- if(Noflg<1,
- tmp=Assign(deq);
- tmp=replace(deq,"'","`");
- tmp=name+"=Deqplot('"+tmp+"','"+rng+"',";
- tmp=tmp+format(initt,6)+","+textformat(initf,6);
- tmp=tmp+","+text(sel)+",'Num="+text(Num)+"')";
- tmp=RSform(tmp);
- GLIST=append(GLIST,tmp);
- );
- if(Noflg<2,
- if(isstring(Ltype),
- Ltype=GetLinestyle(text(Noflg)+Ltype,name);
- ,
- if(Noflg==1,Ltype=0);
- );
- GCLIST=append(GCLIST,[name,Ltype,opcindy]);
- );
-);
-
-////////// old enclosing ///////////////
-
-Enclosing(nm,plist):=EnclosingS(nm,plist);
-Enclosing(nm,plist,options):=EnclosingS(nm,plist,options);
-EnclosingS(nm,plist):=EnclosingS(nm,plist,[]);
-EnclosingS(nm,plist,options):=(
-//help:Enclosing("1",["sc2","crAB","sc2","Invert(sc1)"],[pt,"dr"]);
- regional(name,AnsL,Start,Eps,EEps,S,Flg,Fdata,Gdata,KL,pt,qt,
- t1,t2,t3,ii,nn,tmp,tmp1,tmp2,Ltype,Noflg,realL,eqL,opstr,opcindy);
- name="en"+nm;
- tmp=Divoptions(options);
- Ltype=tmp_1;
- Noflg=tmp_2;
- eqL=tmp_5;
- realL=tmp_6;
- opstr=tmp_(length(tmp)-1);
- opcindy=tmp_(length(tmp));
- Eps=10^(-5); // 16.12.05
- EEps=0.05;
- Start=[];
- Flg=0;
- forall(realL,
- if(isList(#) % ispoint(#),
- Start=Lcrd(#); // 15.09.12
- ,
- Flg=Flg+1;
- if(Flg==1,Eps=#);
- if(Flg==2,EEps=#);
- );
- );
-// tmp1=concat([Eps,EEps],eqL); // 15.04.06
- Fdata=plist_1;
- Gdata=plist_(length(plist));
- KL=IntersectcrvsPp(Fdata,Gdata);
- if(length(KL)==1,
- pt=KL_1_1;
- t1=KL_1_2;
- );
- if(length(KL)==0,
- if(Numptcrv(Fdata)>Numptcrv(Gdata),
- tmp=Nearestpt(Fdata,Gdata);
- pt=tmp_1;
- t1=tmp_2;
- ,
- tmp=Nearestpt(Gdata,Fdata);
- pt=tmp_3;
- t1=tmp_4;
- );
- );
- if(length(KL)>1,
- if(Start==[],
- err("No Start Point");
- ,
- pt=KL_1_1;
- t1=KL_1_2;
- tmp=|pt-Start|;
- forall(2..(length(KL)),ii, // 15.04.20
- tmp1=KL_ii_1;
- tmp2=|tmp1-Start|; // 15.04.20
- if(tmp2<tmp,
- pt=tmp1;
- t1=KL_ii_2;
- tmp=tmp2;
- );
- );
- );
- );
-// pt=Pcrd(pt); // 15.09.12
- Start=pt;
- AnsL=[];
- forall(1..(length(plist)),nn,
- Fdata=plist_nn;
- if(nn>1, pt=qt);
- if(nn==length(plist),
- qt=Start;
- ,
- Flg=0;
- Gdata=plist_(nn+1);
-// tmp1=concat([Eps,EEps],eqL); // 15.04.06
- KL=IntersectcrvsPp(Gdata,Fdata);
- if(length(KL)==1,
- tmp=KL_1;
- qt=KL_1_1;
- t3=KL_1_2;
- Flg=10;
- );
- if(length(KL)==0,Flg=1);
- if(length(KL)>1,
- tmp1=KL_1_1;
- tmp2=KL_2_1;
- tmp=|tmp1-tmp2|;
- if(tmp<Eps*10, Flg=1);
- );
- if(Flg==1,
- if(Numptcrv(Fdata)>Numptcrv(Gdata),
- tmp=Nearestpt(Fdata,Gdata);
- qt=tmp_1;
- t3=tmp_4;
- Flg=10;
- ,
- tmp=Nearestpt(Gdata,Fdata);
- qt=tmp_3;
- t3=tmp_2;
- Flg=10;
- );
- );
- if(Flg<10,
- t2=10^6; //%inf;
- forall(1..(length(KL)),ii,
- tmp1=KL_ii_1;
- tmp=KL_ii_3;
- tmp2=ParamonCurve(tmp1,tmp,Fdata);
- tmp3=KL_ii_2;
- if(tmp2>t1+Eps & tmp2<t2+Eps,
- qt=tmp1;
- t2=tmp2;
- t3=tmp3;
- );
- );
- );
- );
- tmp=Partcrv("",pt,qt,Fdata,["nodata"]);
- t1=t3;
- if(nn==1,
- AnsL=tmp;
- ,
- AnsL=concat(AnsL,tmp_(2..(length(tmp))));
- );
- );
- AnsL=apply(AnsL,Pcrd(#)); // 15.09.12
- AnsL_(length(AnsL))=AnsL_1;//16.10.20
- if(Noflg<3,
- println("generate Enclosing "+name);
- tmp=name+"="+textformat(AnsL,5);
- parse(tmp);
- tmp=name+"=Enclosing(";//16.11.07from
- tmp1="list(";
- forall(plist,
- tmp1=tmp1+#+",";
- );
- tmp=tmp+substring(tmp1,0,length(tmp1)-1)+")"+opstr+")";
- GLIST=append(GLIST,tmp);//16.11.07until
- // GLIST=append(GLIST,"Tmp=[]"); // 16.11.05from
-// nn=floor(length(AnsL)/20);
-// forall(1..nn,ii,
-// tmp=AnsL_(((ii-1)*20+1)..(ii*20));
-// tmp=apply(tmp,LLcrd(#));
-// tmp="Tmp=[Tmp,"+textformat(tmp,5)+"]";
-// GLIST=append(GLIST,tmp);
-// );
-// if(length(AnsL)>nn*20,
-// tmp=AnsL_((nn*20+1)..(length(AnsL)));
-// tmp=apply(tmp,LLcrd(#));
-// tmp="Tmp=[Tmp,"+textformat(tmp,5)+"]";
-// GLIST=append(GLIST,tmp);
-// );
-// GLIST=append(GLIST,name+"=Listplot(Tmp)"); // 16.11.05until
- );
- if(Noflg<2,
- if(isstring(Ltype),
- Ltype=GetLinestyle(text(Noflg)+Ltype,name);
- ,
- if(Noflg==1,Ltype=0);
- );
- GCLIST=append(GCLIST,[name,Ltype,opcindy]);
- );
- tmp=apply(AnsL,LLcrd(#));//16.10.20
- tmp;
-);
-
-/////////// new enclosing ///////////
-
-Enclosing2(nm,plist):=Enclosing2(nm,plist,[]);
-Enclosing2(nm,plistorg,options):=(
-//help:Enclosing2("1",["sc2","crAB","sc2","Invert(sc1)"]);
-//help:Enclosing2(options=[Eps1(0.01),Eps2(0.1)]);
- regional(name,plist,AnsL,Start,Eps,Eps1,Eps2,flg,Fdata,Gdata,KL,
- t1,t2,tst,ss,ii,nn,nxtno,Ltype,Noflg,realL,eqL,opstr,opcindy,
- tmp,tmp1,tmp2);
- name="en"+nm;
- plist=plistorg;
- tmp=Divoptions(options);
- Ltype=tmp_1;
- Noflg=tmp_2;
- eqL=tmp_5;
- realL=tmp_6;
- opstr=tmp_(length(tmp)-1);
- opcindy=tmp_(length(tmp));
- Eps=10^(-5); // 16.12.05
- Eps1=0.01;
- Eps2=0.1;
- Start=[];
- flg=0;
- forall(realL,
- if(isList(#) % ispoint(#),
-// Start=Lcrd(#); // 18.02.02
- ,
- if(flg==0,Eps1=#);
- if(flg==1,Eps2=#);
- flg=flg+1;
- );
- );
- flg=0;
- AnsL=[];
- if(length(plist)==1,
- Fdata=parse(plist_1);
- tmp1=Fdata_1;
- tmp2=Fdata_(length(Fdata));
- if(|tmp1-tmp2|<Eps,
- AnsL=Fdata;
- ,
- AnsL=append(Fdata,tmp1);
- );
- flg=1;
- );
- if(flg==0,
- Fdata=plist_1;
- Gdata=plist_(length(plist));
- KL=IntersectcurvesPp(Fdata,Gdata);
- if(length(KL)==0,
- tmp=parse(Gdata);
- tmp1=LLcrd(Op(length(tmp),tmp)); //18.02.02from
- tmp=parse(Fdata);
- tmp2=LLcrd(Op(1,tmp));
- tmp=Listplot(name,[tmp1,tmp2],["nodisp"]);
- plist=append(plist,"sg"+name);
- Start=tmp2;
- tst=1; //18.02.02until
- ,
- if(length(KL)==1,
- tst=KL_1_2;
- Start=Pointoncurve(tst,Fdata);
- );
- if(length(KL)>1,
- KL=sort(KL,[#_2]);
- if(Start==[],
- tst=KL_1_2;
- Start=Pointoncurve(tst,Fdata);
- ,
- tmp=apply(KL,|#_1-Start|);
- tmp=min(tmp);
- tmp1=select(KL,|#_1-Start|==tmp);
- tst=tmp1_1_2;
- Start=Pointoncurve(tst,Fdata);
- );
- );
- );
- );
- if(flg==0,
- t1=tst;
- println("Start point of enclosing is "+text(Start));
- forall(1..(length(plist)),nn,
- Fdata=plist_nn;
- if(nn==length(plist),nxtno=1,nxtno=nn+1);
- Gdata=plist_nxtno;
- KL=IntersectcurvesPp(Fdata,Gdata);
- if(length(KL)==0,
- tmp1=parse(Fdata); //18.02.02from
- tmp2=parse(Gdata);
- tmp2=Prepend(Op(length(tmp1),tmp),tmp2);
- Gdata=replace(Gdata,"(","");
- Gdata=replace(Gdata,")","");
- tmp=Gdata+"="+textformat(tmp2,6);
- parse(tmp);
- plist_nxtno=Gdata;
- t2=Length(tmp1);
- ss=1; //18.02.02until
- ,
- t2=KL_1_2;
- ss=KL_1_3;
- if(abs(t2-t1)<Eps,
- if(length(KL)>1,
- t2=KL_2_2;
- ss=KL_2_3;
- ,
- println(text(nn)+" and "+text(nxtno)+" not intersect");
- flg=1;
- );
- );
- );
- if(flg==0,
- tmp=Partcrv("",t1,t2,Fdata,["nodata"]);
- if(nn==1,
- AnsL=tmp;
- ,
- AnsL=concat(AnsL,tmp_(2..(length(tmp))));
- );
- t1=ss;
- );
- );
- );
- if(flg==0,
- AnsL=apply(AnsL,Pcrd(#));
- );
- if(Noflg<3,
- println("generate Enclosing "+name);
- tmp=name+"="+textformat(AnsL,5);
- parse(tmp);
- tmp=name+"=Enclosing2(";//16.11.07from
- tmp1="list(";
- forall(plistorg, //18.02.02
- tmp1=tmp1+#+",";
- );
- tmp=tmp+substring(tmp1,0,length(tmp1)-1)+"))";//18.02.02
- GLIST=append(GLIST,tmp);//16.11.07until
- );
- if(Noflg<2,
- if(isstring(Ltype),
- Ltype=GetLinestyle(text(Noflg)+Ltype,name);
- ,
- if(Noflg==1,Ltype=0);
- );
- GCLIST=append(GCLIST,[name,Ltype,opcindy]);
- );
- tmp=apply(AnsL,LLcrd(#));//16.10.20
- tmp;
-);
-
-/////////// end of new enclosing ///////////
-
-/////////// new Hatchdata(cindy) ///////////
-
-Makehatch(iolistorg,pt,vec,bdylist):=(
- regional(Eps,iolist,sg,bdy,out,nb,tenL,ns,ne,ioL,
- ii,jj,kk,nvec,nbdy,sgn1,sgn2,flg,rmL,p0,p1,p2,pL,
- Scalebkup,tmp,tmp1,tmp2);
- Eps=10^(-6);
- nvec=[-vec_2,vec_1];
- nvec=nvec/|nvec|;
- if(!islist(iolistorg),iolist=[iolistorg],iolist=iolistorg);
- forall(1..(length(iolist)),
- tmp=replace(iolist_#,"i","1,");
- tmp=replace(tmp,"o","0,");
- tmp="["+substring(tmp,0,length(tmp)-1)+"]";
- iolist_#=parse(tmp);
- );
- Scalebkup=SCALEY;
- SCALEY=1;
- sg=Lineplot("",[pt,pt+vec],["nodata"]);
- nb=length(bdylist);
- if(nb>0,
- tenL=[];
- forall(1..nb,ii,
- rmL=[];
- bdy=bdylist_ii;
- nbdy=length(bdy)-1;
- pL=[];
- forall(1..nbdy,jj,
- p1=bdy_jj;
- p2=bdy_(mod(jj+1-1,nbdy)+1);
- tmp=Intersectseg(sg,[p1,p2],Eps);
- if(abs(tmp_1)<Eps, //18.02.01
- p0=tmp_2; t=tmp_3; s=tmp_4;
- pL=append(pL,[p0,t,s,ii]);
- );
- );
- if(length(pL)>0,
- pL=sort(pL,[#_2]);
- pL=apply(1..(length(pL)),append(pL_#,mod(#,2)));
- tenL=concat(tenL,pL);
- );
- );
- tenL=sort(tenL,[#_2]);
- ioL=apply(1..nb,0);
- ns=1;
- ne=length(tenL);
- if(ne>0,tmp=tenL_1_1,tmp=sg_2);
- if(|sg_1-tmp|>Eps,
- tmp=[sg_1,-1,1,ioL];
- tenL=prepend(tmp,tenL);
- ns=ns+1;
- ne=ne+1;
- );
- if(|sg_2-tenL_(length(tenL))_1|>Eps,
- tmp=[sg_2,-1,2,ioL];
- tenL=append(tenL,tmp);
- );
- forall(ns..ne,ii,
- tmp=tenL_ii;
- tmp1=tmp_4;
- tmp2=tmp_5;
- ioL_tmp1=tmp2;
- tmp=[tmp_1,tmp_2,tmp_4,ioL];
- tenL_ii=tmp;
- );
- out=[];
- forall(1..(length(tenL)-1),ii,
- tmp1=tenL_ii;
- if(contains(iolist,tmp1_4),
- tmp2=tenL_(ii+1);
- tmp=Listplot("",[tmp1_1,tmp2_1],["nodata"]);
- out=append(out,tmp);
- );
- );
- );
- SCALEY=Scalebkup;
- out;
-);
-
-Hatchdatacindy(nm,iostr,bdylist):=Hatchdatacindy(nm,iostr,bdylist,[]);
-Hatchdatacindy(nm,iostr,bdylistorg,options):=(
-//help:Hatchdatacindy("1",["ii"],[["ln1","Invert(gr1)"],["gr2","n"]]);
-//help:Hatchdatacindy(options=[angle,width]);
- regional(name,bdylist,bdynameL,bname,Ltype,Noflg,opstr,opcindy,reL,startP,angle,
- interval,vec,nvec,flg,pt,kk,delta,sha,AnsL,tmp,tmp1,tmp2);
- name="ha"+nm;
- bdylist=[];
- bdynameL=[];
- forall(1..(length(bdylistorg)),kk,
- tmp1=bdylistorg_kk;
- if(length(tmp1)==1,
- bname=tmp1_1;
- ,
- tmp=tmp1_(length(tmp1));
- if(contains(["n","s","e","w"],tmp),
- tmp2=parse(tmp1_1);
- if(tmp=="s",
- Listplot(name,[LLcrd(tmp2_1),[tmp2_1_1,YMIN],
- [tmp2_(length(tmp2))_1,YMIN],LLcrd(tmp2_(length(tmp2)))],["nodisp"]);
- Joincrvs(text(kk)+name,[tmp1_1,"sg"+name],["nodisp"]);
- bname="join"+text(kk)+name;
- );
- if(tmp=="n",
- Listplot(name,[LLcrd(tmp2_1),[tmp2_1_1,YMAX],
- [tmp2_(length(tmp2))_1,YMAX],LLcrd(tmp2_(length(tmp2)))],["nodisp"]);
- Joincrvs(text(kk)+name,[tmp1_1,"sg"+name],["nodisp"]);
- bname="join"+text(kk)+name;
- );
- if(tmp=="e",
- Listplot(name,apply([tmp2_1,[XMAX,tmp2_1_2],
- [XMAX,tmp2_(length(tmp2))_2],tmp2_(length(tmp2))],LLcrd(#)),["nodisp"]);
- Joincrvs(text(kk)+name,[tmp1_1,"sg"+name],["nodisp"]);
- bname="join"+text(kk)+name;
- );
- if(tmp=="w",
- Listplot(name,apply( [tmp2_1,[XMIN,tmp2_1_2],
- [XMIN,tmp2_(length(tmp2))_2],tmp2_(length(tmp2))],LLcrd(#)),["nodisp"]);
- Joincrvs(text(kk)+name,[tmp1_1,"sg"+name],["nodisp"]);
- bname="join"+text(kk)+name;
- );
- ,
- Enclosing2(text(#)+name,tmp,["nodisp"]);
- bname="en"+text(#)+name;
- );
- );
- bdylist=append(bdylist,parse(bname));
- bdynameL=append(bdynameL,bname);
- );
- tmp=Divoptions(options);
- Ltype=tmp_1;
- Noflg=tmp_2;
- opstr=tmp_(length(tmp)-1);
- opcindy=tmp_(length(tmp));
- reL=tmp_6;
- angle=45;
- interval=0.125*1000/2.54/MilliIn;
- startP=[(XMIN+XMAX)/2, (YMIN+YMAX)/2];
- tmp1=1;
- forall(reL,
- if(islist(#),
- startP=#;
- ,
- if(tmp1==1,
- angle=#;
- tmp1=tmp1+1;
- ,
- interval= interval*#;
- );
- );
- );
- angle=angle*pi/180;
- vec=[cos(angle),sin(angle)];
- nvec=[-sin(angle),cos(angle)];
- AnsL=[];
- flg=0;
- forall(0..100,kk,
- pt=startP+kk*interval*nvec;
- if(flg==0,
- sha=Makehatch(iostr,pt,vec,bdylist);
- if((sha==-1)%(length(sha)==0),
-// flg=1;
- ,
- AnsL=concat(AnsL,sha);
- );
- );
- );
- flg=0;
- forall(1..100,kk,
- pt=startP-kk*interval*nvec;
- if(flg==0,
- sha=Makehatch(iostr,pt,vec,bdylist);
- if((sha==-1)%(length(sha)==0),
-// flg=1;
- ,
- AnsL=concat(AnsL,sha);
- );
- );
- );
- if(Noflg<3,
- println("generate Hatchdata "+name);
- tmp=name+"="+textformat(AnsL,5);
- parse(tmp);
- if(!islist(iostr),tmp1=[iostr],tmp1=iostr);
- tmp="c(";
- forall(tmp1,
- tmp=tmp+Dq+#+Dq+",";
- );
- tmp=substring(tmp,0,length(tmp)-1)+")";
- tmp2=name+"=Hatchdata("+tmp;
- forall(bdynameL,
- tmp2=tmp2+",list("+#+")";
- );
- tmp2=tmp2+opstr+")";
- GLIST=append(GLIST,tmp2);
- );
- if(Noflg<2,
- if(isstring(Ltype),
- Ltype=GetLinestyle(text(Noflg)+Ltype,name);
- ,
- if(Noflg==1,Ltype=0);
- );
- GCLIST=append(GCLIST,[name,Ltype,opcindy]);
- );
- tmp2=[];
- forall(AnsL,tmp1,
- tmp=apply(tmp1,LLcrd(#));
- tmp2=append(tmp2,tmp);
- );
- tmp2;
-);
-
-/////////// end of new Hatchdata(cindy) ///////////
-
-
-Shade(plist):=Shade(plist,[]);
-Shade(plist,options):=(
-//help:Shade(["gr2","sg1"],[0.5]);
-//help:Shade(["gr2","sg1"],["red" /pict2e]);
-//help:Shade(["gr2","sg1"],[[0,0,0,0.5] /pict2e]);
-//help:Shade(["gr2","sg1"],[[1,0,0] /pict2e]);
-//help:Shade([pointlist]);
- regional(tmp,tmp1,tmp2,opstr,opcindy,Str,G2,flg);
- if(isstring(plist_1), // 16.01.24
- println("output Shade of "+plist);
- ,
- println("output Shade of lists");
- );
- tmp=Divoptions(options);
- opstr=tmp_(length(tmp)-1);
- opcindy=tmp_(length(tmp));
- flg=0;
- forall(plist,
- if(flg==0,
- if(isstring(#),tmp=parse(#),tmp=#); // from 16.01.24
- if(!islist(tmp),flg=1); until
- );
- );
- if(flg==1,
-// err("some data not defined yet");
- ,
- G2=Joincrvs("1",plist,["nodata"]);
- G2=apply(G2,Pcrd(#));
- tmp1="fillpoly("+textformat(G2,5)+opcindy+");";
- parse(tmp1);
- );
- Str="Shade(";
- tmp1="list(";
- forall(plist,
- if(isstring(#), // from 16.01.24
- if(length(#)>1,
- tmp1=tmp1+#+",";
- ,
- tmp1=tmp1+Dq+#+Dq+",";
- );
- ,
- tmp1=tmp1+"Listplot("+textformat(#,5)+"),";
- ); // until 16.01.24
- );
- Str=Str+substring(tmp1,0,length(tmp1)-1)+")"+opstr+")";
- Com2nd(Str);
-);
-
-//help:end();
-
diff --git a/texmf-dist/scripts/ketcindy/ketlib/ketcindylibbasic2logr.txt b/texmf-dist/scripts/ketcindy/ketlib/ketcindylibbasic2logr.txt
deleted file mode 100644
index 6510040a..00000000
--- a/texmf-dist/scripts/ketcindy/ketlib/ketcindylibbasic2logr.txt
+++ /dev/null
@@ -1,87 +0,0 @@
-//20180409
-// WritetoRS,Makebat changed ( "shell" used )
-//20180408
-// WritetoRS debugged ( setwd )
-// WriteoRS,Makebat changed ( use "sjis.txt")
-//20180405
-// Makebat debugged
-//20180404
-// Tlistplot changed ("Msg");
-// WritetoRS debugged ( openfie(..,Cdy= ))
-//20180403
-// WritetoRS, Makebat changed (for Zenkaku)
-// Convsjiswin removed
-// Mkslidesummary debugged
-//20180401
-// Convsjiswin added
-// Makebat changed (for convsjis )
-//20180330
-// Presentation changed (for wallpaper )
-// Settitle changed (Title option )
-//20180303
-// Letter debugged (for ` )
-//2017.12.24
-// IftoR, FortoR,Deffun rewritten
-//2017.12.23
-// Bezier, Translatedata,Rotatedata,Reflectdata debugged ( [ ] )
-// RSform : help added
-//2017.12.19
-// WritetoSci() added (=WritetoR(), for old Parent button )
-//2017.12.16
-// Setslidehyper changed ("Size=","Pos=[]")
-//2017.12.09
-// Mkslides changed (for animation)
-// MakeRarg (from Makesciarg ) added ( RSslash )
-// Setax, Htickmark, Vtickmark changed ( MakeRarg )
-//2017.11.24
-// Slidework changed ( makedir)
-// Rotatedata debugged ( MeasureDepth)
-//2017.11.20
-// Slidework changed ( for the case of (ex) dir="...../")
-//2017.11.05
-// Figpdf debugged
-//2017.11.01
-// Presentation debugged ( usepackage{ketpic} etc. )
-//2017.10.30
-// Viewtex changed ( path of ketpicstyle )
-//2017.10.28
-// WritetoRS changed ( generator is written )
-//2017.10.26
-// Mksummary changed for R
-//2017.10.18
-// Letter,Letterrot,Exprrot debugged (\ and \\)
-//2017.10.17
-// Viewtex debugged ($ removed for xelatex)
-//2017.10.16
-// Mkslides debugged ( line4 from last,path)
-//2017.10.14
-// Makebat,Makeshell changed(flow="tt" supported)
-//2017.10.13
-// Makebat,Makeshell,Mkslides debugged (Shellfile,Sehllchild removed )
-// Makeshell debugged ( Case of no "/" )
-//2017.10.08
-// Mkslides debugged (Sheslide=>Shellslide )
-//2017.10.07
-// WritetoRS changed (for pict2e)
-// Helplist debugged ( for r )
-//2017.10.06
-// RSform debugged
-//2017.09.29
-// Viewparent debugged (WritetoRS)
-//2017.09.24
-// WritetoRS debugged ("\" => "/")
-// RSslash added
-// Letter changed (RSslash used)
-//2017.09.22
-// Defvar changed ("=" removed)
-// WritetoRS changed (Com1st,..., VLIST )
-//2017.09.18
-// Extractdata changed
-// SCIWR,SCIRE removed
-//2017.09.17
-// WritetoRS added
-// Viewtex changed ( Writetosci => WritetoR )
-//2017.09.16
-// RSform, Deffun, IftoR, FortoR changed( added )
-//2017.09.14
-// Makeshell, Makebat changed \ No newline at end of file
diff --git a/texmf-dist/scripts/ketcindy/ketlib/ketcindylibbasic2r.cs b/texmf-dist/scripts/ketcindy/ketlib/ketcindylibbasic2r.cs
deleted file mode 100644
index ae40d147..00000000
--- a/texmf-dist/scripts/ketcindy/ketlib/ketcindylibbasic2r.cs
+++ /dev/null
@@ -1,5073 +0,0 @@
-// Copyright (C) 2014 Setsuo Takato, KETCindy Japan project team
-//
-//This program is free software: you can redistribute it and/or modify
-// it under the terms of the GNU General Public License as published by
-// the Free Software Foundation; either version 3 of the License, or
-// (at your option) any later version.
-//
-// This program is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-// GNU General Public License for more details.
-//
-// You should have received a copy of the GNU General Public License
-// along with this program. If not, see <http://www.gnu.org/licenses/>
-//
-
-println("ketcindybasic2(20180409) loaded");
-
-//help:start();
-
-Dispchoice():=(
- if(islist(Ch),
- if(!isreal(ChNum),ChNum=1);
- drawtext(mouse().xy,"Ch="+text(Ch)+" N="+text(ChNum),size->24,color->[0,0,1]);
- );
-);
-
-Datetime():=(
-//help:Datetime();
- regional(names,dt,tmp);
- tmp=getdatetime();
- dt=tokenize(tmp," ");
- dt=apply(dt,if(!isstring(#),text(#),#));
- names=["Jan","Feb","Mar","Apr","May","Jun",
- "Jul","Aug","Sep","Oct","Nov","Dec"];
- tmp=select(1..12,names_#==dt_2);
- tmp=text(tmp_1);
- tmp=[dt_6+"/"+tmp+"/"+dt_3,dt_4];
-);
-
-Rotatepoint(point,Theta,ctr):=(
-//help:Rotatepoint(A,2*pi/3,B);
- regional(X1,X2,Y1,Y2,Cx,Cy,tmp);
- tmp=Lcrd(point);
- X1=tmp_1; Y1=tmp_2;
- tmp=Lcrd(ctr);
- Cx=tmp_1; Cy=tmp_2;
- X2=Cx+(X1-Cx)*cos(Theta)-(Y1-Cy)*sin(Theta);
- Y2=Cy+(X1-Cx)*sin(Theta)+(Y1-Cy)*cos(Theta);
- [X2,Y2];
-);
-
-Translatepoint(point,mov):=(
-//help:Translatepoint(A,[2,3]);
- regional(X1,X2,Y1,Y2,Cx,Cy,tmp);
- tmp=Lcrd(point);
- X1=tmp_1; Y1=tmp_2;
- tmp=Lcrd(mov);
- Cx=tmp_1; Cy=tmp_2;
- X2=X1+Cx;
- Y2=Y1+Cy;
- [X2,Y2];
-);
-
-Scalepoint(point,ratio,center):=(
-//help:Scalepoint(A,[3,2],[0,0]);
- regional(X1,X2,Y1,Y2,Cx,Cy,tmp);
- tmp=Lcrd(point);
- X1=tmp_1; Y1=tmp_2;
- tmp=Lcrd(center);
- Cx=tmp_1; Cy=tmp_2;
- X2=Cx+ratio_1*(X1-Cx);
- Y2=Cy+ratio_2*(Y1-Cy);
- [X2,Y2];
-);
-
-Reflectpoint(point,symL):=(
-//help:Reflectpoint(A,B);
-//help:Reflectpoint(A,[[2,3]]);
-//help:Reflectpoint(A,[C,E]);
- regional(X1,X2,Y1,Y2,Us,Vs,Pt1,Pt2,Cx,Cy,tmp);
- tmp=Lcrd(point);
- X1=tmp_1; Y1=tmp_2;
- Pt1=Lcrd(symL_1);
- if(length(symL)==1,
- Pt2=Pt1;
- ,
- Pt2=Lcrd(symL_2);
- );
- Us=Pt2_1-Pt1_1;
- Vs=Pt2_2-Pt1_2;
- if(Pt1==Pt2,
- X2=2*Pt1_1-X1;
- Y2=2*Pt1_2-Y1;
- ,
- X2=(Us^2-Vs^2)/(Us^2+Vs^2)*X1+2*Us*Vs/(Us^2+Vs^2)*Y1
- -2*Vs*(Us*Pt1_2-Vs*Pt1_1)/(Us^2+Vs^2);
- Y2=2*Us*Vs/(Us^2+Vs^2)*X1-(Us^2-Vs^2)/(Us^2+Vs^2)*Y1
- +2*Us*(Us*Pt1_2-Vs*Pt1_1)/(Us^2+Vs^2);
- );
- [X2,Y2];
-);
-
-Rotatedata(nm,plist,Theta):=Rotatedata(nm,plist,Theta,[]);
-Rotatedata(nm,plist,angle,options):=(
-//help:Rotatedata("1","crAB",pi/3,[[1,5],"dr,2"]);
- regional(tmp,tmp1,tmp2,pdata,Theta,Pt,Cx,Cy,PdLL,PdL,
- opcindy,Nj,Njj,Kj,Mj,X1,Y1,X2,Y2,Ltype,Noflg,name);
- name="rt"+nm;
- Pt=[0,0];
- tmp=Divoptions(options);
- Ltype=tmp_1;
- Noflg=tmp_2;
- opcindy=tmp_(length(tmp));
- tmp1=tmp_6;
- if(length(tmp1)>0,Pt=Lcrd(tmp1_1));
- pdata=plist;
- if(isstring(pdata),pdata=[pdata]);
- if(!isstring(pdata_1) & MeasureDepth(pdata)==1,
- pdata=[pdata];
- );
- if(isstring(angle),Theta=parse(angle),Theta=angle);
- Cx=Pt_1; Cy=Pt_2;
- PdL=[];
- forall(pdata,Njj,
- if(isstring(Njj),Kj=parse(Njj),Kj=Njj);
- if(MeasureDepth(Kj)==0,Kj=[Kj]); //17.11.24
- if(MeasureDepth(Kj)==1,Kj=[Kj]);
- tmp2=[];
- forall(Kj,Nj,
- tmp1=[];
- forall(Nj,
- tmp=LLcrd(#);
- X1=tmp_1;
- Y1=tmp_2;
- X2=Cx+(X1-Cx)*cos(Theta)-(Y1-Cy)*sin(Theta);
- Y2=Cy+(X1-Cx)*sin(Theta)+(Y1-Cy)*cos(Theta);
- tmp1=concat(tmp1,[[X2,Y2]]);
- );
- tmp2=concat(tmp2,[tmp1]);
- );
- PdL=concat(PdL,tmp2);
- );
- if(Noflg<3,
- println("generate Rotatedata "+name);
- tmp1=[];
- forall(PdL,tmp2,
- tmp=apply(tmp2,Pcrd(#));
- tmp1=append(tmp1,tmp);
- );
- if(length(tmp1)==1,tmp1=tmp1_1);
- tmp=name+"="+textformat(tmp1,5);
- parse(tmp);
- tmp1=text(plist);
- tmp1=RSform(tmp1);// 17.12.23(2lines)
- tmp=name+"=Rotatedata("+tmp1+","
- +textformat(angle,5)+","+RSform(textformat(Pt,5))+")"; //17.12.23
- GLIST=append(GLIST,tmp);
- );
- if(Noflg<2,
- if(isstring(Ltype),
- Ltype=GetLinestyle(text(Noflg)+Ltype,name);
- ,
- if(Noflg==1,Ltype=0);
- );
- GCLIST=append(GCLIST,[name,Ltype,opcindy]);
- );
- PdL;
-);
-
-Translatedata(nm,plist,mov):=Translatedata(nm,plist,mov,[]);
-Translatedata(nm,plist,mov,options):=(
-//help:Translatedata("1",["gr1"],[1,2]);
- regional(tmp,tmp1,tmp2,pdata,Cx,Cy,PdL,Nj,Njj,Kj,
- opcindy,X2,Y2,Ltype,Noflg,name);
- name="tr"+nm;
- tmp=Divoptions(options);
- Ltype=tmp_1;
- Noflg=tmp_2;
- opcindy=tmp_(length(tmp));
- pdata=plist;
- if(isstring(pdata),pdata=[pdata]);
- if(!isstring(pdata_1) & MeasureDepth(pdata)==1,
- pdata=[pdata];
- );
- tmp=Lcrd(mov);
- Cx=tmp_1; Cy=tmp_2;
- PdL=[];
- forall(pdata,Njj,
- if(isstring(Njj),Kj=parse(Njj),Kj=Njj);
- if(MeasureDepth(Kj)==1,Kj=[Kj]);
- tmp2=[];
- forall(Kj,Nj,
- tmp1=[];
- forall(Nj,
- tmp=LLcrd(#);
- X2=tmp_1+Cx;
- Y2=tmp_2+Cy;
- tmp1=concat(tmp1,[[X2,Y2]]);
- );
- tmp2=concat(tmp2,[tmp1]);
- );
- PdL=concat(PdL,tmp2);
- );
- if(Noflg<3,
- println("generate Translatedata "+name);
- tmp1=[];
- forall(PdL,tmp2,
- tmp=apply(tmp2,Pcrd(#));
- tmp1=append(tmp1,tmp);
- );
- if(length(tmp1)==1,tmp1=tmp1_1);
- tmp=name+"="+textformat(tmp1,5);
- parse(tmp);
- tmp1=text(plist);
- tmp1=RSform(tmp1);// 17.12.23
- tmp=name+"=Translatedata("+tmp1+","+RSform(textformat(mov,5))+")";
- GLIST=append(GLIST,tmp);
- );
- if(Noflg<2,
- if(isstring(Ltype),
- Ltype=GetLinestyle(text(Noflg)+Ltype,name);
- ,
- if(Noflg==1,Ltype=0);
- );
- GCLIST=append(GCLIST,[name,Ltype,opcindy]);
- );
- PdL;
-);
-
-Scaledata(nm,plist,ratioV):=(
- regional(tmp);
- tmp=Lcrd(ratioV);
- Scaledata(nm,plist,tmp_1,tmp_2,[]);
-);
-Scaledata(nm,plist,Arg1,Arg2):=(
-//help:Scaledata("1","crAB",3,2,[[0,0]]);
- regional(tmp,options);
- if(islist(Arg2),
- tmp=Lcrd(Arg1);
- options=Arg2;
- Scaledata(nm,plist,tmp_1,tmp_2,options);
- ,
- Scaledata(nm,plist,Arg1,Arg2,[]);
- );
-);
-Scaledata(nm,plist,rx,ry,options):=(
- regional(tmp,tmp1,tmp2,pdata,Theta,Pt,Cx,Cy,PdL,
- opcindy,Nj,Njj,Kj,X2,Y2,Ltype,Noflg,name);
- name="sc"+nm;
- Pt=[0,0];
- tmp=Divoptions(options);
- Ltype=tmp_1;
- Noflg=tmp_2;
- opcindy=tmp_(length(tmp));
- tmp1=tmp_6;
- if(length(tmp1)>0,
- Pt=Lcrd(tmp1_1);
- );
- pdata=plist;
- if(isstring(pdata),pdata=[pdata]);
- if(!isstring(pdata_1) & MeasureDepth(pdata)==1,
- pdata=[pdata];
- );
- Cx=Pt_1; Cy=Pt_2;
- PdL=[];
- forall(pdata,Njj,
- if(isstring(Njj),Kj=parse(Njj),Kj=Njj);
- if(MeasureDepth(Kj)==1,Kj=[Kj]);
- tmp2=[];
- forall(Kj,Nj,
- tmp1=[];
- forall(Nj,
- tmp=LLcrd(#);
- X2=Cx+rx*(tmp_1-Cx);
- Y2=Cy+ry*(tmp_2-Cy);
- tmp1=concat(tmp1,[[X2,Y2]]);
- );
- tmp2=concat(tmp2,[tmp1]);
- );
- PdL=concat(PdL,tmp2);
- );
- if(Noflg<3,
- println("generate Scaledata "+name);
- tmp1=[];
- forall(PdL,tmp2,
- tmp=apply(tmp2,Pcrd(#));
- tmp1=append(tmp1,tmp);
- );
- if(length(tmp1)==1,tmp1=tmp1_1);
- tmp=name+"="+textformat(tmp1,5);
- parse(tmp);
- tmp1=text(plist);
- tmp1=RSform(tmp1); // 17.12.23
- tmp=name+"=Scaledata("+tmp1+","
- +textformat(rx,5)+","+textformat(ry,5)+","+RSform(textformat(Pt,5))+")";
- GLIST=append(GLIST,tmp);
- );
- if(Noflg<2,
- if(isstring(Ltype),
- Ltype=GetLinestyle(text(Noflg)+Ltype,name);
- ,
- if(Noflg==1,Ltype=0);
- );
- GCLIST=append(GCLIST,[name,Ltype,opcindy]);
- );
- PdL;
-);
-
-Reflectdata(nm,plist,symL):=Reflectdata(nm,plist,symL,[]);
-Reflectdata(nm,plist,symL,options):=(
-//help:Reflectdata("1","crAB",[C]);
- regional(tmp,tmp1,tmp2,pdata,Us,Vs,Pt1,Pt2,Cx,Cy,PdL,
- opcindy,Nj,Njj,Kj,X1,Y1,X2,Y2,Ltype,Noflg,name);
- name="re"+nm;
- Pt=[0,0];
- tmp=Divoptions(options);
- Ltype=tmp_1;
- Noflg=tmp_2;
- opcindy=tmp_(length(tmp));
- pdata=plist;
- if(isstring(pdata),pdata=[pdata]);
- if(!isstring(pdata_1) & MeasureDepth(pdata)==1,
- pdata=[pdata];
- );
- Pt1=Lcrd(symL_1);
- if(length(symL)==1,
- Pt2=Pt1;
- ,
- Pt2=Lcrd(symL_2);
- );
- Us=Pt2_1-Pt1_1;
- Vs=Pt2_2-Pt1_2;
- PdL=[];
- forall(pdata,Njj,
- if(isstring(Njj),Kj=parse(Njj),Kj=Njj);
- if(MeasureDepth(Kj)==1,Kj=[Kj]);
- tmp2=[];
- forall(Kj,Nj,
- tmp1=[];
- forall(Nj,
- tmp=LLcrd(#);
- X1=tmp_1;
- Y1=tmp_2;
- if(Pt1==Pt2,
- X2=2*Pt1_1-X1;
- Y2=2*Pt1_2-Y1;
- ,
- X2=(Us^2-Vs^2)/(Us^2+Vs^2)*X1+2*Us*Vs/(Us^2+Vs^2)*Y1
- -2*Vs*(Us*Pt1_2-Vs*Pt1_1)/(Us^2+Vs^2);
- Y2=2*Us*Vs/(Us^2+Vs^2)*X1-(Us^2-Vs^2)/(Us^2+Vs^2)*Y1
- +2*Us*(Us*Pt1_2-Vs*Pt1_1)/(Us^2+Vs^2);
- );
- tmp1=concat(tmp1,[[X2,Y2]]);
- );
- tmp2=concat(tmp2,[tmp1]);
- );
- PdL=concat(PdL,tmp2);
- );
- if(Noflg<3,
- println("generate Reflectdata "+name);
- tmp1=[];
- forall(PdL,tmp2,
- tmp=apply(tmp2,Pcrd(#));
- tmp1=append(tmp1,tmp);
- );
- if(length(tmp1)==1,tmp1=tmp1_1);
- tmp=name+"="+textformat(tmp1,5);
- parse(tmp);
- tmp1=text(plist);
- tmp1=RSform(tmp1);// 17.12.23
- tmp=name+"=Reflectdata("+tmp1+","+RSform(textformat(symL,5))+")";//17.12.23
- GLIST=append(GLIST,tmp);
- );
- if(Noflg<2,
- if(isstring(Ltype),
- Ltype=GetLinestyle(text(Noflg)+Ltype,name);
- ,
- if(Noflg==1,Ltype=0);
- );
- GCLIST=append(GCLIST,[name,Ltype,opcindy]);
- );
- PdL;
-);
-
-Mksegments():=Mksegments([]);
-Mksegments(options):=(
-//help:Mksegments();
- regional(segstr,p,q,r,tmp1,tmp2,tmp3);
- forall(allsegments(),seg,
- str=text(inspect(seg,"definition"));
- tmp1=indexof(str,"(");
- tmp2=indexof(str,";");
- tmp3=indexof(str,")");
- p=substring(str,tmp1,tmp2-1);
- q=substring(str,tmp2,tmp3-1);
- Listplot([parse(p),parse(q)]);
- );
-);
-
-Mkcircles():=Mkcircles([]);
-Mkcircles(options):=(
-//help:Mkcircles():
- regional(seg,cir,str,p,q,r,tmp1,tmp2,tmp3,tmp4);
- forall(allcircles(),cir,
- str=text(inspect(cir,"definition"));
- tmp1=indexof(str,"(");
- tmp2=indexof(str,";");
- tmp3=indexof(str,")");
- tmp4=indexof(str,";",tmp2+1);
- if(tmp4==0,
- p=substring(str,tmp1,tmp2-1);
- q=substring(str,tmp2,tmp3-1);
- Circledata([parse(p),parse(q)]);
- ,
- p=substring(str,tmp1,tmp2-1);
- q=substring(str,tmp2,tmp4-1);
- r=substring(str,tmp4,tmp3-1);
- Circledata([parse(p),parse(q),parse(r)]);
- );
- );
-);
-
-MakeRarg(arglist):=(
- regional(str,tmpstr);
- str="";
- forall(arglist,
- if(isstring(#),
- tmpstr=Dq+RSslash(#)+Dq;
- ,
- tmpstr=textformat(#,6);
- );
- str=str+tmpstr+",";
- );
- str=substring(str,0,length(str)-1);
- str;
-);
-
-Setax(arglist):=(
-//help:Setax(["l","x","e","y","n","O","sw"]);
-//help:Setax([7,"nw"]);
- regional(tmp);
- tmp=MakeRarg(arglist);
- Com1st("Setax("+tmp+")");
-);
-
-Htickmark(arglist):=(
-//help:Htickmark([1,"1",2,"sw","2"]);
- regional(tmp);
- tmp="";
- tmp=MakeRarg(arglist);
- Com2nd("Htickmark("+tmp+")");
-);
-
-Vtickmark(arglist):=(
-//help:Vtickmark([1,"1",2,"sw","2"]);
- regional(tmp);
- tmp=MakeRarg(arglist);
- Com2nd("Vtickmark("+tmp+")");
-);
-
-Vtick(py):=Vtick(py,MARKLEN,[]);
-Vtick(py,len):=Vtick(py,len,[]);
-Vtick(py,len,options):=(
-//help:Vtick(1,0.1,options);
- regional(tmp,tmp1,tmp2);
- tmp="v"+text(round(py*100));
- tmp=replace(tmp,"-","m");
- tmp1=[0-len/2,py];
- tmp2=[0+len/2,py];
- Listplot(tmp,[tmp1,tmp2],options);
-);
-
-Htick(px):=Htick(px,MARKLEN,[]);
-Htick(px,len):=Htick(px,len,[]);
-Htick(px,lenorg,options):=(
-//help:Htick(-1,0.1,options);
- regional(len,tmp,tmp1,tmp2);
- tmp=LLcrd([0,lenorg]);
- len=tmp_2;
- tmp="h"+text(round(px*100));
- tmp=replace(tmp,"-","m");
- tmp1=[px,0-len/2];
- tmp2=[px,0+len/2];
- Listplot(tmp,[tmp1,tmp2],options);
-);
-
-Drwxy():=(
-//help:Drwxy();
- Com2nd("Drwxy()");
- Addax(0); // 16.01.21
-);
-
-Drwpt(pstr):=Drawpoint(pstr);
-Drwpt(ptlist,nn):=( // 16.03.05 from
-//help:Drwpt(A);
-//help:Drwpt("[1,1],0");
-//help:Drwpt(A,0);
-//help:Drwpt([1,2],0);
- Drawpoint(ptlist,nn);
-);
-Drawpoint(pstr):=(
- if(isstring(pstr),
- println("Drwpt : "+pstr);
- Com2nd("Drwpt("+pstr+")");
- ,
- Drawpoint(pstr,1);
- );
-);
-Drawpoint(ptlistorg,nn):=(
- regional(ptlist,thick,tmp,tmp1);
- println("Drwpt : "+text(ptlistorg));
- if(islist(ptlistorg),
- if(MeasureDepth(ptlistorg)==1,
- ptlist=ptlistorg
- ,
- ptlist=[ptlistorg]
- );
- ,
- ptlist=[ptlistorg]
- );
- thick=PenThick/PenThickInit;// 16.04.09 from
- tmp1=max(TenSize/TenSizeInit,1)/8;
- Setpen(tmp1); // 16.04.09 until
- forall(ptlist,
- tmp=textformat(#,5)+","+text(nn);
- Com2nd("Drwpt("+tmp+")"); // 16.04.09
- );
- Setpen(thick); // 16.04.09
-);// 16.03.05 until
-
-Addax(param):=(
-//help:Addax(0);
- ADDAXES=textformat(param,5);
-);
-
-Expr(Pt,Dr,St):=Expr([Pt,Dr,St]);
-Expr(list):=Expr(list,[]);
-Expr(listorg,options):=( //16.10.09
-//help:Expr([A,"e","f(x)=x^2"]);
- regional(list,str,tmp,tmp1,tmp2);
- list=listorg;
- forall(1..round(length(list)/3),
- str=list_(3*#);
- if(!isstring(str),str=format(str,5));
- str="$"+str+"$";
- list_(3*#)=str;
- );
- Letter(list,options);
-);
-
-Letter(Pt,Dr,St):=Letter([Pt,Dr,St]);
-Letter(list):=Letter(list,[]);
-Letter(list,options):=(
-//help:Letter([C,"c","Graph of f(x)"]);
- regional(Nj,Pos,Dir,Str,Off,Dmv,Xmv,Ymv,Noflg,opcindy,
- opL,aln,sz,clr,bld,ita,tmp,tmp1,tmp2);
- tmp=Divoptions(options);
- Noflg=tmp_2;
- opL=select(options,indexof(#,"->")>0); //16.10.09from
- tmp=select(opL,indexof(#,"color"));
- size=12;
- clr=[0,0,0];
- bld=false;
- ita=false;
- aln="left";
- forall(opL,
- tmp=indexof(#,"->");
- tmp1=removespace(substring(#,0,tmp-1));
- tmp2=substring(#,tmp+1,length(#));
- if(tmp1=="size",sz=parse(tmp2));
- if(tmp1=="color",clr=parse(tmp2));
- if(tmp1=="bold",bld=parse(tmp2));
- if(tmp1=="ita",ita=parse(tmp2));
- );//16.10.09until
- Off=-4;
- Dmv=8;
- Nj=1;
- while(Nj+2<=length(list),
-// Pos=textformat(list_Nj,5);
- Pos=list_Nj;
- Dir=list_(Nj+1);
- tmp=indexof(Dir,"s")+indexof(Dir,"n");//16.10.19from
- if(tmp>0,
- tmp=indexof(Dir,"w")+indexof(Dir,"e");
- if(tmp==0,
- Dir="c"+Dir;//16.10.08
- );
- );//16.10.19until
- Str=list_(Nj+2);
- if(!isstring(Str),Str=format(Str,5)); // 16.09.30,10.09
- tmp=replace(Str,".xy","");
- tmp=replace(tmp,".x","(1)");
- Str=replace(tmp,".y","(2)");
- Str=RSslash(Str); // 17.09.24
- Str=replace(Str,"`","'");//180303
- tmp=Dq+","+Dq+Str+Dq+")";
- if(Noflg==0,
- Com2nd("Letter("+Lcrd(Pos)+","+Dq+Dir+tmp);//16.10.10
- );
- if(Noflg<2,
- Xmv=0;//16.10.13
- Ymv=-4;
- if(indexof(Dir,"n")>0,
- Ymv=Dmv/2;
- );
- if(indexof(Dir,"s")>0,
- Ymv=-Dmv*3/2;//16.10.13
- );
- if(indexof(Dir,"e")>0,
- Xmv=Dmv/2;
- Off=0;
- aln="left";
- );
- if(indexof(Dir,"w")>0,
- Xmv=-Dmv/2;
- Off=0; // 16.09.30from
- aln="right";
- );
- if(indexof(Dir,"c")>0,
- Xmv=0;//16.10.13
- Off=0;
- if(Ymv==0,Ymv=-4);//16.10.08
- aln="mid"; // 16.09.30until
- );
- Str=list_(Nj+2); //17.10.17
- drawtext(Pcrd(Pos),Str,offset->[Off+Xmv,Off+Ymv],
- size->sz,color->clr,align->aln,bold->bld,italics->ita);//16.10.09
- );
- Nj=Nj+3;
- );
-);
-
-Letterrot(pt,dir,str):=Letterrot(pt,dir,0,0,str);
-Letterrot(pt,dir,movstr,str):=(
-//help:Letterrot(C,B-A,"AB"):
-//help:Letterrot(C,B-A,0,5,"AB"):
-//help:Letterrot(C,B-A,"t0n5","AB"):
- regional(tmov,nmov,tmp,tmp1,tmp2);
- tmp1=indexof(movstr,"t");
- tmp2=indexof(movstr,"n");
- if(tmp1>0,
- if(tmp2>0,tmp=tmp2-1,tmp=length(movstr));
- tmov=parse(substring(movstr,tmp1,tmp));
- ,
- tmov=0;
- );
- if(tmp2>0,
- nmov=parse(substring(movstr,tmp2,length(movstr)));
- ,
- nmov=0;
- );
- Letterrot(pt,dir,tmov,nmov,str);
-);
-Letterrot(pt,dir,tmov,nmov,str):=(
- regional(tmp);
- Letter([pt,"c",str],["notex"]);
- tmp=replace(str,"\","\\"); //17.10.18
- Com2nd("Letterrot("+pt+","+dir+","+tmov+","+nmov+",'"+tmp+"')");
-);
-
-Exprrot(pt,dir,str):=Exprrot(pt,dir,0,0,str);
-Exprrot(pt,dir,movstr,str):=(
-//help:Exprrot(C,B-A,"d"):
-//help:Exprrot(C,B-A,0,5,"d"):
-//help:Exprrot(C,B-A,"t0n5","d"):
- regional(tmov,nmov,tmp,tmp1,tmp2);
- tmp1=indexof(movstr,"t");
- tmp2=indexof(movstr,"n");
- if(tmp1>0,
- if(tmp2>0,tmp=tmp2-1,tmp=length(movstr));
- tmov=parse(substring(movstr,tmp1,tmp));
- ,
- tmov=0;
- );
- if(tmp2>0,
- nmov=parse(substring(movstr,tmp2,length(movstr)));
- ,
- nmov=0;
- );
- Exprrot(pt,dir,tmov,nmov,str);
-);
-Exprrot(pt,dir,tmov,nmov,str):=(
- regional(tmp);
- Expr([pt,"c",str],["notex"]);
- tmp=replace(str,"\","\\"); //17.10.18
- Com2nd("Exprrot("+pt+","+dir+","+tmov+","+nmov+",'"+tmp+"')");
-);
-
-Putslider(ptstr,p1,p2):=Slider(ptstr,p1,p2);
-Slider(ptstr,p1,p2):=( //17.04.11
-//help:Slider("A-C-B",[-3,0],[3,0]);
- regional(pA,pB,pC,seg,sname,Alpha,tmp,tmp1);
- tmp=indexall(ptstr,"-");
- pA=substring(ptstr,0,tmp_1-1);
- pC=substring(ptstr,tmp_1,tmp_2-1);
- pB=substring(ptstr,tmp_2,length(ptstr));
- seg=pA+pB;
- Alpha="ABCDEFGHIJKLMNOPQRSTUVWXYZ";
- sname="";
- forall(1..(length(seg)),
- tmp=substring(seg,#-1,#);
- tmp1=indexof(Alpha,tmp);
- if(tmp1>0,
- sname=sname+unicode(text(tmp1+96),base->10);
- ,
- sname=sname+tmp;
- );
- );
- Putpoint(pA,p1);
- Putpoint(pB,p2);
- Listplot([parse(pA),parse(pB)],["notex","color->[0,0.4,0.4]","size->2"]);
-// create([sname],"Segment",[parse(pA),parse(pB)]);
-// tmp2=Listplot("",[p1,p2],["nodata"]);
- Putonseg(pC,parse("sg"+pA+pB));
-// create([pC],"PointOn",[parse(sname),0.5]);
-);
-
-Putpoint(name,Pt):=Putpoint(name,Pt,Pt);
-Putpoint(name,Ptinit,Pt):=(
-//help:Putpoint("A",[1,2],[1,A.y]);
- regional(ptstr);
- ptstr=apply(allpoints(),#.name);//16.10.06
- if(!contains(ptstr,name),
- createpoint(name,Pcrd([Ptinit_1,Ptinit_2]));
- ,
- ptstr=name+".xy="+textformat(Pcrd(Pt),5);
- parse(ptstr);
- );
-);
-
-Bezierpt(t,ptlist,ctrlist):=(
- regional(flg3,p0,p1,p2,p3,p4,p5,p6,p7,p8,p9);
- p0=ptlist_1;
- p3=ptlist_2;
- p1=ctrlist_1;
- if(length(ctrlist)==1,
- p2=p3;
- flg3=0;
- ,
- p2=ctrlist_2;
- flg3=1;
- );
- if(length(p0)<3, // 15.02.08
- p0=Lcrd(p0);
- p3=Lcrd(p3);
- p1=Lcrd(p1);
- p2=Lcrd(p2);
- );
- p4=(1-t)*p0+t*p1;
- p5=(1-t)*p1+t*p2;
- p6=(1-t)*p2+t*p3;
- p7=(1-t)*p4+t*p5;
- p8=(1-t)*p5+t*p6;
- p9=(1-t)*p7+t*p8;
- if(flg3==0,p7,p9);
-);
-
-Bezier(ptctrlist):=BezierCurve(ptctrlist_3,ptctrlist_1,ptctrlist_2,[]);
-Bezier(ptctrlist,options):=BezierCurve(ptctrlist_3,ptctrlist_1,ptctrlist_2,options);
-Bezier(nm,ptlist,ctrlist):=BezierCurve(nm,ptlist,ctrlist,[]);
-Bezier(nm,ptlist,ctrlist,options):=BezierCurve(nm,ptlist,ctrlist,options);
-BezierCurve(nm,ptlist,ctrlist):=BezierCurve(nm,ptlist,ctrlist,[]);
-BezierCurve(nm,ptlistorg,ctrlistorg,options):=(
-//help:Bezier("1",[A,D],[B,C]);
-//help:Bezier(options=["Num=10"]);
- regional(name,Ltype,Noflg,opstr,opcindy,Num,
- ptlist,ctrlist,tmp,tmp1,tmp2,ii,st,out,list);
- name="bz"+nm;
- tmp=Divoptions(options);
- Ltype=tmp_1;
- Noflg=tmp_2;
- opstr=tmp_(length(tmp)-1);
- opcindy=tmp_(length(tmp));
- Num=10;
- tmp1=tmp_5;
- forall(tmp1, // 14.12.31
- if(substring(#,0,1)=="N",
- tmp2=indexof(#,"=");
- Num=parse(substring(#,tmp2,length(#)));
- opstr=opstr+","+Dq+#+Dq;
- );
- );
- ptlist=apply(ptlistorg,Lcrd(#)); // 16.08.16
- ctrlist=[]; // 14.12.31
- if(length(ctrlistorg)==length(ptlist)-1,
- forall(ctrlistorg,tmp1,
- if(MeasureDepth(tmp1)==0,tmp=[tmp1],tmp=tmp1);
- tmp=apply(tmp,Lcrd(#)); // 16.08.16
- ctrlist=append(ctrlist,tmp);
- );
- ,
- forall(1..(length(ptlist)-1),ii,
- tmp=ctrlistorg_((2*ii-1)..(2*ii));
- tmp=apply(tmp,Lcrd(#)); // 16.08.16
- ctrlist=append(ctrlist,tmp);
- );
- );
- if(!islist(Num),
- Num=apply(ctrlist,Num);
- );
- list=[];
- forall(1..(length(ptlist)-1),ii,
- tmp1=ptlist_(ii..(ii+1));
- tmp2=ctrlist_ii;
- if(ii==1,st=0,st=1);
- forall(st..Num_ii,
- tmp=Bezierpt(#/Num_ii,tmp1,tmp2);
- list=append(list,tmp);
- );
- );
- if(Noflg<3,
- println("generate Bezier "+name);
- out=apply(list,Pcrd(#));
- tmp=name+"="+textformat(out,5);
- parse(tmp);
- tmp1=textformat(ptlist,5);
- tmp1=RSform(tmp1,2); //17.12.23
- tmp2=textformat(ctrlist,5);
- tmp2=RSform(tmp2,3); //17.12.23
- GLIST=append(GLIST,name+"=Bezier("+tmp1+","+tmp2+opstr+")");
- );
- if(Noflg<2,
- if(isstring(Ltype),
- Ltype=GetLinestyle(text(Noflg)+Ltype,name);
- ,
- if(Noflg==1,Ltype=0);
- );
- GCLIST=append(GCLIST,[name,Ltype,opcindy]);
- );
- list;
-);
-
-Readcsvsla(fname):=Readplotdigdata(fname,[]);
-Readcsvsla(fname,options):=Readplotdigdata(fname,options);
-Readplotdigdata(fname):=Readplotdigdata(fname,[]);
-Readplotdigdata(fname,options):=(
- regional(fsc,mv,cmdall,dataL,nd,npt,ptdata,ii,tmp,tmp1,tmp2,tmp3);
- tmp=Divoptions(options);
- tmp1=tmp_6;
- sc=1;//10;
- mv=[0,0];//[5,5];
- forall(tmp1,
- if(!islist(#),sc=#,mv=#);
- );
- if(indexof(fname,".")>0,
- tmp=load(fname);
- ,
- tmp=load(fname+".txt");
- );
- cmdall=tokenize(tmp,"//");
- dataL=[];
- forall(2..length(cmdall),ii,
- tmp1=parse("["+cmdall_ii+"]");
- dataL=append(dataL,tmp1);
- );
- if(length(dataL_(length(dataL)))<2,
- dataL=dataL_(1..(length(dataL)-1));
- );
- nd=length(dataL_1)/2;
- npt=length(dataL);
- ptdata=[];
- forall(1..nd,ii,
- tmp3=[];
- forall(1..npt,
- tmp1=dataL_#_(2*ii-1);
- tmp2=dataL_#_(2*ii);
- if(isreal(tmp1),
- tmp3=append(tmp3,[tmp1,tmp2]);
- );
- );
- ptdata=append(ptdata,tmp3);
- );
- tmp1=[];
- forall(ptdata,
- tmp=#/sc;
- tmp=Translatedata("1",[tmp],-mv,["nodata"]);
- tmp1=append(tmp1,tmp);
- );
- ptdata=tmp1;
- ptdata;
-);
-
-Putbezierdata(name,ptL):=Putbezierdata(name,ptL,[]);
-Putbezierdata(name,ptL,options):=(
- regional(psize,Deg,tmp,tmp1,tmp2,p1,p2,pts,ctrs);
- tmp=Divoptions(options);
- psize=3;
- Deg=3;
- tmp1=tmp_5;
- forall(tmp1,
- if(substring(#,0,1)=="D",
- tmp=indexof(#,"=");
- Deg=parse(substring(#,tmp,length(#)));
- );
- if(substring(#,0,1)=="S",
- tmp=indexof(#,"=");
- psize=parse(substring(#,tmp,length(#)));
- );
- );
- pts=[];
- ctrs=[];
- forall(1..length(ptL),
- p2=ptL_#; // 16.08.16
- if(ispoint(p2),
- tmp1=text(p2);
- ,
- tmp1=name+text(#);
- Putpoint(tmp1,p2,Lcrd(parse(tmp1))); // 16.08.16
- );
- inspect(parse(tmp1),"ptsize",psize);
- pts=append(pts,parse(tmp1));
- inspect(parse(tmp1),"color",4);
- if(#>1,
- p1=Lcrd(ptL_(#-1)); // 16.08.16
- p2=Lcrd(ptL_#); // 16.08.16
- if(Deg==3,
- tmp=(2*p1+p2)/3;
- tmp1=name+"p"+text(#-1);
- Putpoint(tmp1,tmp,Lcrd(parse(tmp1))); // 16.08.16
- inspect(parse(tmp1),"labeled",false); //15.01.22
- Letter([parse(tmp1),"ne",tmp1],["notex"]); //15.01.22
- inspect(parse(tmp1),"ptsize",psize);
- inspect(parse(tmp1),"color",3);
- tmp=(p1+2*p2)/3;
- tmp2=name+"q"+text(#-1);
- Putpoint(tmp2,tmp,Lcrd(parse(tmp2))); // 16.08.16
- inspect(parse(tmp2),"labeled",false); //15.01.22
- Letter([parse(tmp2),"ne",tmp2],["notex"]); //15.01.22
- inspect(parse(tmp2),"ptsize",psize);
- inspect(parse(tmp2),"color",3);
- ctrs=append(ctrs,[parse(tmp1),parse(tmp2)]);
- ,
- tmp=(p1+p2)/2;
- tmp1=name+"p"+text(#-1);
- Putpoint(tmp1,tmp,Lcrd(parse(tmp1))); // 16.08.16
- inspect(parse(tmp1),"labeled",false); //15.01.22
- Letter([parse(tmp1),"ne",tmp1],["notex"]); //15.01.22
- inspect(parse(tmp1),"ptsize",psize);
- inspect(parse(tmp1),"color",3);
- ctrs=append(ctrs,[parse(tmp1)]);
- );
- );
- );
- [pts,ctrs,name];
-);
-
-Bezierstart(n):=( // 2016.02.26
- BezierNumber=n;
-);
-
-Mkbezierptcrv(ptdata):=Mkbezierptcrv(ptdata,[]);
-Mkbezierptcrv(ptdata,options):=(
- //help:Mkbezierptcrv([A,B,C,D]);
- //help:Mkbezierptcrv([[A,B],[C,D]]);
- //help:Mkbezierptcrv(options=["Num=10"]);
- // global BezierNumber
- regional(ptlist,Out,tmp,tmp1,tmp2);
- if(isstring(ptdata),
- ptlist=Readcsvsla(ptdata,options);
- ,
- ptlist=ptdata;
- );
- if(MeasureDepth(ptlist)==1,ptlist=[ptlist]);
- Out=[];
- forall(1..length(ptlist),
- tmp=floor((BezierNumber-1)/26);// 15.02.23
- if(tmp==0,tmp="",tmp=text(tmp));
- tmp2=mod(BezierNumber,26);
- if(tmp2==0,tmp2=26);
- tmp1=unicode(text(96+tmp2),base->10)+tmp;// 15.03.11
- tmp2=Putbezierdata(tmp1,ptlist_#,options);
- Bezier(tmp2,options);
- BezierNumber=BezierNumber+1;
- Out=append(Out,tmp2_(1..2));
- );
- Out;
-);
-
-Mkbeziercrv(nm,ptctrL):=Mkbeziercrv(nm,ptctrL,[]);
-Mkbeziercrv(nm,ptctrL,options):=(
- //help:Mkbeziercrv("1",[[A,B,C,D],[[P,Q],[R,S],T]]);
- regional(ptctrLL,name,ptlist,ctrlist,tmp,tmp1,tmp2);
- if(MeasureDepth(ptctrL)==2,ptctrLL=[ptctrL],ptctrLL=ptctrL);
- forall(1..length(ptctrLL),
- name=nm+text(#);
- ptlist=ptctrLL_#_1;
- ctrlist=ptctrLL_#_2;
- Bezier(nm,ptlist,ctrlist,options); // 17.01.06
- );
-);
-
-Writebezier():=Writebezier(Fhead,"all");
-Writebezier(head):=Writebezier(head,"all");
-Writebezier(head,seL):=(
-//help:Writebezier(file);
-//help:Writebezier(file,"acd");
- regional(bz,dt,name,tmp,tmp1,tmp2);
- bz=select(GLIST,indexof(#,"=Bezier")>0);
- tmp1=[]; // 16.04.22from
- if(seL!="all",
- forall(1..length(seL),
- tmp=substring(seL,#-1,#);
- tmp=select(bz,indexof(#,"bz"+tmp)>0);
- tmp1=concat(tmp1,tmp);
- );
- bz=tmp1;// 16.04.22until
- );
- dt=[head+"n",[[length(bz),0]]];
- forall(1..length(bz),
- tmp=indexof(bz_#,"=");
- name=substring(bz_#,0,tmp-1);
- tmp=indexof(bz_#,","+Dq);
- if(tmp>0,
- tmp1=substring(bz_#,0,tmp-1)+")";
- ,
- tmp1=bz_#;
- );
- tmp1=replace(tmp1,"Bezier(","[");
- tmp1=replace(tmp1,"list(","[");
- tmp1=replace(tmp1,")","]");
- tmp1=replace(tmp1,",",".xy,");
- tmp1=replace(tmp1,"]",".xy]");
- tmp1=replace(tmp1,".xy,[",",[");
- tmp1=replace(tmp1,"].xy","]");
- tmp1=replace(tmp1,name,head+text(#));
- parse(tmp1);
- tmp=parse(head+text(#)+"_1");
- dt=concat(dt,[head+text(#)+"k",tmp]);
- tmp=parse(head+text(#)+"_2");
- dt=concat(dt,[head+text(#)+"c",tmp]);
- );
- WriteOutData(head+".txt",dt);
- dt;
-);
-
-Readbezier(file):=Readbezier(file,[]);
-Readbezier(file,optionorg):=(
-//help:Readbezier("xsr");
-//help:Readbezier(options=["Num=10","nogeo"]);
- regional(nn,options,stL,geo,nc,alpha,out,tmp,tmp1,tmp2,tmp3);
- options=optionorg;
- tmp=Divoptions(options);
- stL=tmp_7;
- geo=0;
- forall(stL,
- tmp=Toupper(substring(#,0,1));
- if(tmp=="G",geo=1);
- options=remove(options,[#]);
- );
- ReadOutData(file);
- tmp=file+"n_1_1";
- nn=parse(tmp);
- out=[];
- forall(1..nn,nc,
- tmp=file+text(nc);
- tmp1=parse(tmp+"k");
- tmp2=parse(tmp+"c");
- if(MeasureDepth(tmp2)==1,tmp2=[tmp2]); // 16.04.22from
- if(geo==1,
- alpha="abcdefghijklmnopqrstuvwxyz";
- forall(1..length(tmp1),
- tmp="k"+BezierNumber+"n"+text(nc)+substring(alpha,#-1,#);
- Putpoint(tmp,tmp1_#,parse(tmp+".xy"));
- inspect(parse(tmp),"labeled",false);
- inspect(parse(tmp),"ptsize",3);
- tmp1_#=parse(tmp+".xy");
- );
- forall(1..length(tmp2),
- tmp="c"+BezierNumber+"n"+text(nc)+substring(alpha,#-1,#)+"1";
- Putpoint(tmp,tmp2_#_1,parse(tmp+".xy"));
- inspect(parse(tmp),"labeled",false);
- inspect(parse(tmp),"color",4);
- inspect(parse(tmp),"ptsize",3);
- tmp2_#_1=parse(tmp+".xy");
- tmp="c"+BezierNumber+"no"+text(nc)+substring(alpha,#-1,#)+"2";
- Putpoint(tmp,tmp2_#_2,parse(tmp+".xy"));
- inspect(parse(tmp),"labeled",false);
- inspect(parse(tmp),"color",4);
- inspect(parse(tmp),"ptsize",3);
- tmp2_#_2=parse(tmp+".xy");
- );
- BezierNumber=BezierNumber+1;
- );
- Bezier(file+text(nc),tmp1,tmp2,options);// 16.04.22until
- out=append(out,"bz"+tmp);
- );
- out;
-);
-
-Ospline(nm,ptlist):=Ospline(nm,ptlist,[]);
-Ospline(nm,ptlist,options):=(
-//help:Ospline("1",ptlist,[options]);
- regional(tmp,tmp1,tmp2,list,ptL,ctrL,name,closed,flg,
- p0,p1,p2,p3,pQ,pR,cc,p01,p02,p11,p12,p21,p22,p31,p32);
- name="o"+nm;
- if(isstring(ptlist),list=parse(ptlist),list=ptlist);
- if(|list_1-list_(length(list))|<10^(-6),closed=1,closed=0);
-// list=apply(list,LLcrd(#));
- ctrL=[];
- forall(1..(length(list)-1),
- flg=0;
- p1=Lcrd(list_#); // 16.08.16
- p2=Lcrd(list_(#+1)); // 16.08.16
- if(#==1 % #==length(list)-1,
- flg=1;
- if(closed==0,
- pQ=(p1+2*p2)/3; // 15.09.21 // 16.08.16
- pR=(2*p1+p2)/3; // 16.08.16
- ctrL=append(ctrL,[pQ,pR]);
- flg=2;
- ,
- if(#==1,
- p0=Lcrd(list_(length(list)-1)); // 16.08.16
- p3=Lcrd(list_(#+2)); // 16.08.16
- ,
- p0=Lcrd(list_(#-1)); // 16.08.16
- p3=Lcrd(list_2); // 16.08.16
- );
- );
- );
- if(flg<=1,
- if(flg==0,
- p0=Lcrd(list_(#-1)); // 16.08.16
- p3=Lcrd(list_(#+2)); // 16.08.16
- );
- tmp=1+sqrt((1+Dotprod(p2-p0,p3-p1)/|p2-p0|/|p3-p1|)/2);
- cc=4*|p2-p1|/3/(|p2-p0|+|p3-p1|)/tmp;
- pQ=p1+cc*(p2-p0); // 15.09.21 // 16.08.16
- pR=p2+cc*(p1-p3); // 16.08.16
- ctrL=append(ctrL,[pQ,pR]);
- );
- );
-// list=apply(list,LLcrd(#)); // 16.08.16
-// ctrL=apply(ctrL,LLcrd(#));
- if(closed==0, // 15.09.21
- p1=ctrL_2_1;
- p2=Lcrd(list_2); // 16.08.16
- pQ=p2+(p2-p1);
- ctrL_1=[pQ];
- tmp=length(ctrL);
- tmp1=ctrL_(tmp-1);
- p1=ctrL_(tmp-1)_2;
- p2=Lcrd(list_(tmp)); // 16.08.16
- pQ=p2+(p2-p1);
- ctrL_tmp=[pQ];
- );
- Bezier("o"+nm,list,ctrL,options);
-);
-
-CRspline(nm,ptL):=CRspline(nm,ptL,[]);
-CRspline(nm,ptL,options):=(
- // Catmull-Rom spline
-//help:CRspline("1",[A,B,C,A]);
- regional(name,ptlist,ctrpts,eqL,opcindy,c,v,tmp,tmp1,tmp2,ctrlist,cflg);
- name="crsp"+nm;
- if(MeasureDepth(ptL)==1,tmp=[ptL],tmp=ptL);
- ptlist=tmp_1;
- if(length(tmp)==1,
- cflg=1;
- ,
- cflg=0;
- ctrpts=tmp_2;
- );
- c=1/6;
- tmp=Divoptions(options);
- eqL=tmp_5;
- opcindy=tmp_(length(tmp)); // 15.03.05
- forall(eqL,
- if(substring(#,0,1)=="R",
- tmp2=indexof(#,"=");
- c=parse(substring(#,tmp2,length(#)));
- );
- );
- ptlist=apply(ptlist,Lcrd(#)); // 16.08.16
- ctrlist=[];
- forall(1..(length(ptlist)-1),
- if(#==1,
- if(cflg==0,
- tmp1=ctrpts_1;
- ,
- v=ptlist_2-ptlist_(length(ptlist)-1);
- tmp1=ptlist_#+c*v;
- );
- ,
- v=ptlist_(#+1)-ptlist_(#-1);
- tmp1=ptlist_#+c*v;
- );
- if(#==length(ptlist)-1,
- if(cflg==0,
- tmp2=ctrpts_2;
- ,
- v=ptlist_2-ptlist_#;
- tmp2=ptlist_(#+1)-c*v;
- );
- ,
- v=ptlist_(#+2)-ptlist_#;
- tmp2=ptlist_(#+1)-c*v;
- );
- tmp=select(options,indexof(text(#),"->")>0);
- tmp=append(tmp,"notex"); //15.03.05
- Pointdata(name+text(#),[tmp1,tmp2],tmp);
- ctrlist=append(ctrlist,[tmp1,tmp2]);
- );
- Bezier(nm,ptlist,ctrlist,options);
-);
-
-Beziersmooth(nm,ptL):=Bzspline(nm,ptL,[]);
-//help:Beziersmooth("1",[A,B,C,A]);
-Beziersmooth(nm,ptL,options):=Bzspline(nm,ptL,options);
-Bzspline(nm,ptL):=Bzspline(nm,ptL,[]);
-Bzspline(nm,ptLorg,options):=(
- // smooth bezier
- regional(name,Eps,ptL,pt,pt1,pt2,pt3,npt,lstr,
- tmp,tmp1,tmp2,cflg,ctrlist);
- name="bzsp"+nm;
- Eps=10^(-3);
- ptL=apply(ptLorg,Lcrd(#)); // 16.08.16
- if(|ptL_1-ptL_(length(ptL))|<Eps,cflg=1,cflg=0);
- forall(2..length(ptL),
- pt=ptL_#;
- pt1=ptL_(#-1);
- tmp1="C"+text(#-1)+"q";// 16.10.07
- Putpoint(tmp1,(pt1+4*pt)/5,Lcrd(parse(tmp1))); // 16.08.16
- );
- forall(2..(length(ptL)-1),
- if(#<length(ptL) % cflg==1,
- lstr="c"+text(#);
- pt=ptLorg_#; // 16.08.16
- pt1=parse("C"+text(#-1)+"q");
- create([lstr],"Join",[pt1,pt]);
- tmp2="C"+text(#)+"p";
- tmp=Append((2*pt.xy-pt1.xy),1);
- create([tmp2],"PointOnLine",[parse(lstr),tmp]);
- );
- );
- if(cflg==0,
- pt=ptL_1;
- pt1=ptL_2;
- tmp1="C1p";
- Putpoint(tmp1,(4*pt+pt1)/5,Lcrd(parse(tmp1))); // 16.08.16
- );
- if(cflg==1,
- lstr="c1";
- pt=ptLorg_1; // 16.08.16
- pt1=parse("C"+text(length(ptL)-1)+"q");
- create([lstr],"Join",[pt1,pt]);
- tmp1="C1p";
- tmp=Append((2*pt.xy-pt1.xy),1);
- create([tmp1],"PointOnLine",[parse(lstr),tmp]);
- );
- ctrlist=[];
- forall(1..(length(ptL)-1),
- if(#>1 % cflg==1,
- tmp1="c"+text(#);
- inspect(parse(tmp1),"alpha",0.3);
- );
- tmp1="C"+text(#)+"p";
- tmp2="C"+text(#)+"q";
- inspect(parse(tmp1),"ptsize",3);
- inspect(parse(tmp1),"color",3);
- inspect(parse(tmp2),"ptsize",3);
- inspect(parse(tmp2),"color",3);
- tmp=[parse(tmp1),parse(tmp2)];
- ctrlist=append(ctrlist,tmp);
- );
- Bezier(nm,ptL,ctrlist,options);
- [ptL,ctrlist];
-);
-
-Beziersym(nm,ptL):=Bzsspline(nm,ptL,[]);
-Beziersym(nm,ptL,options):=Bzsspline(nm,ptL,options);
-Bzsspline(nm,ptL):=Bzsspline(nm,ptL,[]);
-Bzsspline(nm,ptLorg,options):=(
- // smooth bezier with symmetric control points
- regional(name,Eps,ptL,pt,pt1,pt2,pt3,npt,lstr,
- tmp,tmp1,tmp2,cflg,ctrlist);
- name="bzssp"+nm;
- Eps=10^(-3);
- ptL=apply(ptLorg,Lcrd(#)); // 16.08.16
- if(|ptL_1-ptL_(length(ptL))|<Eps,cflg=1,cflg=0);
- forall(2..length(ptL),
- pt=ptL_#;
- pt1=ptL_(#-1);
- tmp1="C"+text(#-1)+"q";
- Putpoint(tmp1,(pt1+4*pt)/5,Lcrd(parse(tmp1)));
- );
- forall(2..(length(ptL)-1),
- if(#<length(ptL) % cflg==1,
- pt=ptL_#;
- pt1=parse("C"+text(#-1)+"q");
- tmp2="C"+text(#)+"p=2*pt-pt1";
- parse(tmp2);
- );
- );
- if(cflg==0,
- pt=ptL_1;
- pt1=ptL_2;
- Putpoint("C1p",(4*pt+pt1)/5,Lcrd(C1p)); // 16.08.16
- inspect(C1p,"ptsize",3);
- inspect(C1p,"color",3);
- );
- if(cflg==1,
- pt=ptL_1;
- pt1=Lcrd(parse("C"+text(length(ptL)-1)+"q")); // 16.08.16
- tmp1="Putpoint("+Dq+"C1p"+Dq+",2*pt-pt1)"; // 16.08.16
- parse(tmp1);
- );
- ctrlist=[];
- forall(1..(length(ptL)-1),
- tmp1="C"+text(#)+"p";
- tmp2="C"+text(#)+"q";
- inspect(parse(tmp2),"ptsize",3);
- inspect(parse(tmp2),"color",3);
- tmp=[parse(tmp1),parse(tmp2)];
- ctrlist=append(ctrlist,tmp);
- );
- Bezier(nm,ptL,ctrlist,options);
- [ptL,ctrlist];
-);
-
-Listbspline2bz(listorg):=(
- regional(Eps,list,pcl,ptl,ctrl,k);
- Eps=10^(-3);
- list=apply(listorg,Lcrd(#)); // 16.08.16
- k=length(list);
- if(|list_1-list_k|>Eps,
- pcl=list;
- pcl_1=2*list_1-list_2;
- pcl_k=2*list_k-list_(k-1);
- ,
- pcl=concat(list,[list_2]);
- );
- ctrl=apply(2..(length(pcl)-1),[pcl_#]);
- ptl=apply(1..(length(pcl)-1),(pcl_#+pcl_(#+1))/2);
- [ptl,ctrl];
-);
-
-Bspline(nm,ctrL):=Bspline(nm,ctrL,[]);
-Bspline(nm,ctrL,options):=(
-//help:Bspline("",[A,B,C]);
- regional(list,tmp);
- list=Listbspline2bz(ctrL);
- tmp=BezierCurve("b"+nm,list_1,list_2,options);
- tmp;
-);
-
-MeetCurve(Crv,Xorg,Yorg):=(
- regional(Cv,tmp,tmp1,tmp2,X0,Y0,x1,x2,y1,y2,Ylist,Ban,Tate);
- if(isstring(Crv),Cv=parse(Crv),Cv=Crv);
- if(MeasureDepth(Cv)==2,Cv=Cv_1);
- Cv=apply(Cv,LLcrd(#)); // 14.12.18
- while(length(Cv)==1,
- Cv=Cv_1;
- );
- Cv=apply(Cv,Lcrd(#));
- tmp1=min(apply(Cv,#_1));
- tmp2=max(apply(Cv,#_1));
- if(isstring(Xorg),X0=parse(Xorg),X0=Xorg);
- if(isstring(Yorg),Y0=parse(Yorg),Y0=Yorg);
- if(X0<tmp1,
- X0=tmp1;
- ,
- if(X0>tmp2,
- X0=tmp2;
- );
- );
- tmp1=select(
- 1..(length(Cv)-1),Cv_#_1<=X0 & X0<=Cv_(#+1)_1);
- tmp2=select(
- 1..(length(Cv)-1),Cv_#_1>=X0 & X0>=Cv_(#+1)_1);
- tmp2=remove(tmp2,common(tmp2,tmp1));
- Ban=concat(tmp1,tmp2);
- Tate=select(Ban,
- abs(Cv_#_1-Cv_(#+1)_1)<=
- 10^(-2)*abs(Cv_#_2-Cv_(#+1)_2)
- );
- Ban=remove(Ban,Tate);
- Ylist=[];
- forall(Ban,
- tmp=Cv_#;
- x1=tmp_1; y1=tmp_2;
- tmp=Cv_(#+1);
- x2=tmp_1; y2=tmp_2;
- tmp=((x2-X0)*y1+(X0-x1)*y2)/(x2-x1);
- Ylist=append(Ylist,tmp);
- );
- forall(Tate,
- tmp=Cv_#;
- x1=tmp_1; y1=tmp_2;
- tmp=Cv_(#+1);
- x2=tmp_1; y2=tmp_2;
- tmp1=min([y1,y2]);
- tmp2=max([y1,y2]);
- if(Y0<tmp1,
- tmp=tmp1;
- ,
- if(Y0>tmp2,
- tmp=tmp2;
- ,
- tmp=Y0;
- );
- );
- Ylist=append(Ylist,tmp);
- );
- tmp=sort(Ylist,abs(#_1-Y0));
- [X0,tmp_1];
-);
-
-PutonLine(name,p1,p2):=PutonLine(name,p1,p2,[]);
-PutonLine(name,p1org,p2org,options):=(
-//help:PutonLine("C","sgAB");
-//help:PutonLine("C",pA,pB);
- regional(par,p1,p2,dx,dy,tmp,tmp1,tmp2);
- par=0.5;
- tmp=Divoptions(options);
- if(length(tmp_6)>0,
- par=tmp_6_1;
- );
- p1=Lcrd(p1org);//16.10.11from
- p2=Lcrd(p2org);
- dx=p2_1-p1_1;
- dy=p2_2-p1_2;
- tmp1=(1-par)*p1+par*p2;
- if(abs(dx)>abs(dy),
- tmp=name+".x";
- tmp2="["+tmp+",dy/dx*("+tmp+"-p1_1)+p1_2]";//16.10.11until
- Putpoint(name,tmp1,parse(tmp2));
- ,
- if(abs(dy)>0,
- tmp=name+".y";
- tmp2="[dx/dy*("+tmp+"-p1.y)+p1_1,"+tmp+"]";
- Putpoint(name,tmp1,parse(tmp2));
- ,
- tmp2=p1;//16.10.11
- Putpoint(name,tmp1,tmp2);
- );
- );
-);
-
-PutonSeg(name,sgstr):=(
- regional(seg,p1,p2);
- if(isstring(sgstr),seg=parse(sgstr),seg=sgstr);
- PutonSeg(name,LLcrd(seg_1),LLcrd(seg_2));
-);
-PutonSeg(name,p1,p2):=PutonSeg(name,p1,p2,[]);
-PutonSeg(name,p1org,p2org,options):=(
-//help:PutonSeg("C","sgAB");
-//help:PutonSeg("C",pA,pB);
- regional(par,dx,dy,p,tmp,tmp1,tmp2);
- par=0.5;
- tmp=Divoptions(options);
- if(length(tmp_6)>0,
- par=tmp_6_1;
- );
- p1=Lcrd(p1org);//16.10.11from
- p2=Lcrd(p2org);
- PutonLine(name,p1,p2,[par]);
- dx=p2_1-p1_1;
- dy=p2_2-p1_2;
- p=parse(name+".xy");
- p=LLcrd(p);
- if(abs(dx)>abs(dy) & (p_1-p1_1)*(p_1-p2_1)>0,
- if(|p-p1|<|p-p2|,
- parse(name+".xy=Pcrd(p1)");
- ,
- parse(name+".xy=Pcrd(p2)");
- );
- );
- if(abs(dx)<abs(dy) & (p_2-p1_2)*(p_2-p2_2)>0,
- if(|p-p1|<|p-p2|,
- parse(name+".xy=Pcrd(p1)");
- ,
- parse(name+".xy=Pcrd(p2)");//16.10.11until
- );
- );
-);
-
-PutonCurve(pn,crv):=PutonCurve(pn,crv,[]);
-PutonCurve(pn,crv,options):=(
-//help:PutonCurve("A","gr1");
- regional(Pmt,pstr,optionL,leftlim,rightlim,tmp,tmp1,Flg,Msg);
- if(!islist(options),optionL=[options],optionL=options);
- leftlim=XMIN;
- rightlim=XMAX;
- Flg=0;
- Msg="y";
- forall(optionL,
- if(isstring(#), // 16.02.10 from
- tmp=indexof(#,"=");
- tmp1=Toupper(substring(#,tmp,tmp+1));
- if(tmp1=="N", Msg="n"); // 16.02.10 until
- ,
- if(Flg==0,
- leftlim=#;
- Flg=Flg+1;
- ,
- rightlim=#;
- );
- );
- );
- Pmt=MeetCurve(crv,leftlim,0);
- pstr=apply(allpoints(),textformat(#,5)); // 15.04.07
- if(!contains(pstr,pn),
- createpoint(pn,Pcrd(Pmt));
- ,
- tmp1=parse(pn+".x");
- if(tmp1< leftlim % tmp1>rightlim,
- if(tmp1< leftlim,tmp= leftlim, tmp=rightlim);
- Pmt=MeetCurve(crv,textformat(tmp,5),pn+".y");
- ,
- Pmt=MeetCurve(crv,pn+".x",pn+".y");
- );
- ptstr=pn+".xy="+textformat(Pcrd(Pmt),5)+";";
- parse(ptstr);
- );
- if(Msg=="y",
- println("Put "+pn+" on Curve "+text(crv));
- );
-);
-
-CrossPoint(name,Crv1,Crv2,range):=(
- regional(Mx1,Mx2,Mx3,tmp,Crs1,Crs2,Crs3,Crs4,df1,df2);
- Mx1=range_1; Mx2=range_2;
- repeat(15,
- Mx3=(Mx1+Mx2)/2;
- Crs1=MeetCurve(Crv1,Mx1,0);
- Crs2=MeetCurve(Crv2,Mx1,0);
- Crs3=MeetCurve(Crv1,Mx3,0);
- Crs4=MeetCurve(Crv2,Mx3,0);
- df1=Crs1_2-Crs2_2;
- df2=Crs3_2-Crs4_2;
- if((df1>0 & df2>0) % (df1<0 & df2<0),
- Mx1=Mx3;
- ,
- Mx2=Mx3;
- );
- );
- Putpoint(name,Crs1);
-);
-
-Setscaling(sc):=(
-//help:Setscaling(3);
- SCALEX=1;
- SCALEY=sc;
- Com0th("Setscaling("+sc+")");
- Setwindow("Msg=no");
-);
-
-Periodfun(defL,rep):=Periodfun(defL,rep,[]);
-Periodfun(defL,rep,optionorg):=( // 16.11.24
-//help:Periodfun(["0",[-1,0],"1",1,[0,1],1],2(num of repetition),options);
-//help:Periodfun(options=["Con=y"]);
-//help:Periodfun(defL=[function string, range, devision number,...]);
- regional(nn,fun,range,num,options,nr,maxfun,
- tmp,tmp1,tmp2,eqL,connect,minx,maxx,pdata,Eps,prept);
- options=optionorg;
- tmp=Divoptions(options);
- eqL=tmp_5;
- connect="Y";
- forall(eqL,
- tmp=indexof(#,"=");
- tmp2=substring(#,tmp,tmp+1);
- tmp=substring(#,0,3);
- if(Toupper(tmp)=="CON",
- connect=Toupper(tmp2);
- options=remove(options,[#]);
- );
- );
- minx=10000;
- maxx=-10000;
- mxfun="";
- pdata=[];
- forall(1..(length(defL)/3),nn,
- fun=defL_(3*nn-2);
- range=defL_(3*nn-1);
- tmp1=if(isstring(range_1),parse(range_1),range_1); //17.06.11(2lines)
- tmp2=if(isstring(range_2),parse(range_2),range_2);
- minx=min(minx,tmp1);
- maxx=max(maxx,tmp2);
- num=defL_(3*nn);
- options=append(options,"Num="+text(num));
- Plotdata("pe"+text(nn),fun,
- "x="+textformat([tmp1,tmp2],5),options);
- pdata=append(pdata,"grpe"+text(nn));
- tmp1=range_1; //17.06.11(4lines)
- if(isstring(tmp1),tmp1=replace(tmp1,"pi","%pi"),tmp1=format(tmp1,5));
- tmp2=range_2;
- if(isstring(tmp2),tmp2=replace(tmp2,"pi","%pi"),tmp2=format(tmp2,5));
- mxfun=mxfun+"elseif ("+tmp1+
- "<=x and x<"+tmp2+") then "+fun+" ";
- );
- per=maxx-minx;
- forall(1..rep,nr,
- tmp1=[];
- forall(pdata,
- Translatedata("p"+#+text(nr),#,[per*nr,0],options);
- Translatedata("m"+#+text(nr),#,[-per*nr,0],options);
- tmp1=concat(tmp1,["trp"+#+text(nr),"trm"+#+text(nr)]);
- );
- );
- pdata=concat(pdata,tmp1);
- if(connect=="Y",
- Eps=10^(-5);
- pdata=sort(pdata,[parse(#)_1_1]);
- prept=parse(pdata_1)_1;
- forall(1..(length(pdata)),
- tmp=parse(pdata_#);
- tmp1=tmp_1;
- tmp2=tmp_(length(tmp));
- if(|prept-tmp1|>Eps,
- Listplot("con"+text(#),[prept,tmp1],append(options,"da"));
- );
- prept=tmp_(length(tmp));
- );
- );
- mxfun=substring(mxfun,4,length(mxfun)-1);
- [mxfun,per];
-);
-
-Fourierseries(nm,coeff,per,nterm):=
- Fourierseries(nm,coeff,per,nterm,[]); // 16.11.24
-Fourierseries(nm,coeff,per,nterm,options):=(
-//help:Fourierseries("1",[c0,cn,sn],period,numterm,options);
- regional(c0,cn,sn,fs,tmp,tmp1,tmp2);
- c0=coeff_1;
- if(!isstring(c0),c0=format(c0,5));
- c0=replace(c0,"%pi","pi");
- cn=coeff_2;
- if(!isstring(cn),cn=format(cn,5));
- cn=replace(cn,"%pi","pi");
- sn=coeff_3;
- if(!isstring(sn),sn=format(sn,5));
- sn=replace(sn,"%pi","pi");
- fs=c0;
- forall(1..nterm,
- tmp=parse(Assign(cn,["n",#]));
- tmp1=Assign("("+format(tmp,5)+")*cos(n*2*pi/per*x)",
- ["n",#,"per",per]);
- tmp=parse(Assign(sn,["n",#]));
- tmp2=Assign("("+format(tmp,5)+")*sin(n*2*pi/per*x)",
- ["n",#,"per",per]);
- fs=fs+"+"+tmp1+"+"+tmp2;
- );
- Plotdata("four"+nm,fs,"x",options);
-);
-
-Tabledatalight(nm,xLst,yLst,rmvL):=Tabledatalight(nm,xLst,yLst,rmvL,[]);
-Tabledatalight(nm,xLst,yLst,rmvL,optionorg):=(
-//help:Tabledatalight("",xLst,yLst,rmvL,[2,"Rng=y"]);
- regional(options,rng,name,upleft,ul,flg,tick,eqL,reL,n,m,xsize,ysize,
- rlist,clist,Tb,tmp,tmp1,tmp2,tmp3,Eps);
-// name="tb"+nm;
- name="tb";
- options=optionorg;
- tmp=Divoptions(options);
- eqL=tmp_5; //16.12.16from
- reL=tmp_6;
- rng="Y";
- forall(eqL,
- tmp=indexof(#,"=");
- tmp1=Toupper(substring(#,0,2));
- tmp2=Toupper(substring(#,tmp,tmp+1));
- if(tmp1=="RN",
- rng=tmp2;
- options=remove(options,[#]);
- );
- );//16.12.16until
- tick=1;
- flg=0;
- forall(reL,
- if(flg==0,
- tick=#;
- flg=flg+1;
- ,
- upleft=tmp_6_1;
- );
- );
- tmp=sum(yLst);
- upleft=[0,tmp];
- TableOptions=options; // 16.11.28
- println("Tabledatalight "+name+" generated");
- ul=upleft/10;
- m=length(xLst);
- n=length(yLst);
- xsize=sum(xLst);
- ysize=sum(yLst);
- clist=[ul];
- rlist=[ul];
- forall(1..m,
- tmp1=clist_(#)_1+xLst_#/10;
- clist=append(clist,[tmp1,clist_1_2]);
- );
- forall(1..n,
- tmp1=rlist_(#)_2-yLst_#/10;
- rlist=append(rlist,[0,tmp1]);
- );
- Tb=[clist,rlist];
- tmp=name+"="+Tb;
- parse(tmp);
- forall(0..m,
- tmp1="c"+text(#)+"r0";
- tmp2="c"+text(#)+"r"+text(n);
- Tlistplot("c"+text(#)+"r0r"+text(n),[tmp1,tmp2],options);
- if(mod(#,tick)==0 % #==m,
- tmp=clist_(#+1);
- drawtext(clist_(#+1)-[0.04,-0.1],"c"+text(#));
- );
- );
- forall(0..n,
- tmp1="c0r"+text(#);
- tmp2="c"+text(m)+"r"+text(#);
- Tlistplot("r"+text(#)+"c0c"+text(m),[tmp1,tmp2],options);
- if(mod(#,tick)==0 % #==n,
- tmp=rlist_(#+1);
- drawtext(rlist_(#+1)-[0.4,0.1],"r"+text(#));
- );
- );
- Tsegrmv(rmvL,options);
- Addax(0);
- Eps=10^(-3);
- tmp1=clist_(length(clist));
- tmp2=rlist_1;
- tmp3=rlist_(length(rlist));
- if(rng=="Y", // 16.12.16
- Setwindow([0-Eps,tmp1_1+Eps],[tmp3_2-Eps,tmp2_2+Eps]);
- );
- Tb;
-);
-
-Tabledata(nm,n,m,xsize,ysize,rmvL):=
- Tabledata(nm,n,m,xsize,ysize,rmvL,[]);
-Tabledata(nm,n,m,xsize,ysize,rmvL,options):=(
-//help:Tabledata("",xLst,yLst,rmvL,[2,"Rng=y"]);
- regional(Tb,name,tmp,xLst,yLst);
- name="tb"+nm;
- xLst=apply(1..n,xsize/n);
- yLst=apply(1..m,ysize/m);
- Tabledata(nm,xLst,yLst,rmvL,options)
-);
-Tabledata(nm,xLst,yLst,rmvL):=Tabledata(nm,xLst,yLst,rmvL,[]);
-Tabledata(nm,xLst,yLst,rmvL,optionorg):=(
-//help:Tabledata("",xLst,yLst,rmvL,[2,"Rng=y"]);
- regional(name,options,eqL,reL,rng,upleft,ul,flg,tick,n,m,xsize,ysize,
- rlist,clist,Tb,tmp,tmp1,tmp2,tmp3,Eps);
-// name="tb"+nm;
- name="tb";
- tmp=sum(yLst);
- upleft=[0,tmp];
- options=optionorg;
- tmp=Divoptions(options);
- eqL=tmp_5; //16.12.16from
- reL=tmp_6;
- rng="Y";
- forall(eqL,
- tmp=indexof(#,"=");
- tmp1=Toupper(substring(#,0,2));
- tmp2=Toupper(substring(#,tmp,tmp+1));
- if(tmp1=="RN",
- rng=tmp2;
- options=remove(options,[#]);
- );
- );//16.12.16until
- tick=1;
- flg=0;
- forall(reL,
- if(flg==0,
- tick=#;
- flg=flg+1;
- ,
- upleft=tmp_6_1;
- );
- );
- TableOptions=options; // 16.11.28
- println("Tabledata "+name+" generated");
- ul=upleft/10;
- m=length(xLst);
- n=length(yLst);
- xsize=sum(xLst);
- ysize=sum(yLst);
- clist=[ul];
- rlist=[ul];
- forall(1..m,
- tmp1=clist_(#)_1+xLst_#/10;
- clist=append(clist,[tmp1,clist_1_2]);
- );
- forall(1..n,
- tmp1=rlist_(#)_2-yLst_#/10;
- rlist=append(rlist,[0,tmp1]);
- );
- Tb=[clist,rlist];
- tmp=name+"="+Tb;
- parse(tmp);
- forall(0..m,
- tmp="C"+text(#);
- tmp1="c"+text(#)+"r0";
- if(#==0,
- Putpoint(tmp,Tgrid(tmp1));
- ,
- Putpoint(tmp,Tgrid(tmp1),[parse(tmp+".x"),C0.y]);
- clist_(#+1)=parse(tmp+".xy");
- );
- inspect(parse(tmp),"ptsize",3);
- inspect(parse(tmp),"labeled",false);
- if(mod(#,tick)==0 % #==m,
- tmp=clist_(#+1);
- drawtext(clist_(#+1)-[0.04,-0.1],"c"+text(#));
- );
- );
- forall(0..n,
- tmp="R"+text(#);
- tmp1="c0r"+text(#);
- if(#==0,
- Putpoint(tmp,Tgrid(tmp1));
- ,
- Putpoint(tmp,Tgrid(tmp1),[R0.x,parse(tmp+".y")]);
- rlist_(#+1)=parse(tmp+".xy");
- );
- Putpoint(tmp,Tgrid(tmp1),[R0.x,parse(tmp+".y")]);
- inspect(parse(tmp),"ptsize",3);
- inspect(parse(tmp),"labeled",false);
- if(mod(#,tick)==0 % #==n,
- tmp=rlist_(#+1);
- drawtext(rlist_(#+1)-[0.4,0.1],"r"+text(#));
- );
- );
- Tb=[clist,rlist];
- tmp=name+"="+Tb;
- parse(tmp);
- forall(0..m,
- tmp1="c"+text(#)+"r0";
- tmp2="c"+text(#)+"r"+text(n);
- Tlistplot("c"+text(#)+"r0r"+text(n),[tmp1,tmp2],options);
- if(#<m,
- tmp1=parse("C"+text(#));
- tmp2=parse("C"+text(#+1));
- tmp=(tmp1.xy+tmp2.xy)/2;
- drawtext(tmp+[-0.2,0.5],text((tmp2.x-tmp1.x)*10));
- );
- );
- forall(0..n,
- tmp1="c0r"+text(#);
- tmp2="c"+text(m)+"r"+text(#);
- Tlistplot("r"+text(#)+"c0c"+text(m),[tmp1,tmp2],options);
- if(#<n,
- tmp1=parse("R"+text(#));
- tmp2=parse("R"+text(#+1));
- tmp=(tmp1.xy+tmp2.xy)/2;
- drawtext(tmp-[1.2,0.1],text(abs(tmp1.y-tmp2.y)*10));
- );
- );
- Tsegrmv(rmvL,options);
- Addax(0);
- Eps=10^(-3);
- tmp1=clist_(length(clist));
- tmp2=rlist_1;
- tmp3=rlist_(length(rlist)); // 15.06.11
- if(rng=="Y", // 16.12.16
- Setwindow([0-Eps,tmp1_1+Eps],[tmp3_2-Eps,tmp2_2+Eps]);
- );
- Tb;
-);
-
-Tseginfo(seg):=(
- regional(cr,tp,tpc,n1,n2,n3,tmp,tmp1,tmp2);
- if(substring(seg,0,2)=="sg",
- cr=substring(seg,2,length(seg));
- ,
- cr=seg;
- );
- tp=substring(cr,0,1);
- if(tp=="c",
- tpc="r";
- ,
- tpc="c";
- );
- tmp1=indexof(cr,tpc);
- tmp=substring(cr,tmp1,length(cr));
- tmp2=tmp1+indexof(tmp,tpc);
- n1=substring(cr,1,tmp1-1);
- n2=substring(cr,tmp1,tmp2-1);
- n3=substring(cr,tmp2,length(cr));
- [tp+n1,tpc,parse(n2),parse(n3)];
-);
-
-Tsegrmv(rmvL):=Tsegrmv(rmvL,[]);
-Tsegrmv(rmvL,options):=(
- regional(cr,gcL,flg,gc,hd,tail,tpc,m1,m2,n1,n2,tmp,tmp1,tmp2);
- forall(rmvL,cr,
- tmp1=Tseginfo(cr);
- hd=tmp1_1;
- tpc=tmp1_2;
- m1=tmp1_3;
- m2=tmp1_4;
- gcL=select(GCLIST,Tseginfo(#_1)_1==tmp1_1);
- flg=0;
- forall(gcL,
- if(flg==0,
- tmp=Tseginfo(#_1);
- n1=tmp_3;
- n2=tmp_4;
- if(m1>=n1 & m2<=n2,
- gc=#;
- flg=1;
- );
- );
- );
- if(flg==1,
- Changestyle([gc_1],["nodisp"]);
- tail="";
- if(indexof(hd,"r")>0,
- tail=hd; hd="";
- );
- if(n1<m1,
- tmp1=tpc+text(n1);
- tmp2=tpc+text(m1);
- tmp=hd+tail+tmp1+tmp2;
- Tlistplot(tmp,[hd+tmp1+tail,hd+tmp2+tail],options);
- );
- if(m2<n2,
- tmp1=tpc+text(m2);
- tmp2=tpc+text(n2);
- tmp=hd+tail+tmp1+tmp2;
- Tlistplot(tmp,[hd+tmp1+tail,hd+tmp2+tail],options);
- );
- );
- );
-);
-
-Tgrid(ptstr):=(
-//help:Tgrid("c2r5");
- regional(tmp,tmp1,tmp2);
- tmp=parse(ptstr);
- if(islist(tmp),
- tmp;
- ,
- tmp=indexof(ptstr,"r");
- tmp1=substring(ptstr,1,tmp-1);
- tmp1=parse(tmp1);
- tmp2=substring(ptstr,tmp,length(ptstr));
- tmp2=parse(tmp2);
- [tb_1_(tmp1+1)_1,tb_2_(tmp2+1)_2];
- );
-);
-
-Tlistplot(ptL):=Tlistplot(ptL,[]);
-Tlistplot(Ag1,Ag2):=(
- regional(nm,ptL,options);
- if(isstring(Ag1),
- nm=Ag1;
- ptL=Ag2;
- options=[];
- ,
- ptL=Ag1;
- options=Ag2;
- nm=ptL_1+ptL_2;
- );
- Tlistplot(nm,ptL,options);
-);
-Tlistplot(nm,ptL,options):=(
-//help:Tlistplot(["c0r0","c0r4"]);
-//help:Tlistplot("1",["c0r0","c0r4"]);
-//help:Tlistplot([options2="Msg=y"]);
- regional(tmp,tmp1);
- tmp1=divoptions(options);//180404from
- tmp1=tmp1_5;
- tmp1=apply(tmp1,Toupper(substring(#,0,1)));
- if(contains(tmp1,"M"),
- tmp1=options;
- ,
- tmp1=append(options,"Msg=n");
- );//180404to
- tmp=apply(ptL,Tgrid(#)); // 15.06.03
- Listplot(nm,tmp,tmp1);
-);
-
-ChangeTablestyle(nameL,style):=(
-////help:ChangeTablestyle(["r0c0c3"],["da"]);
- regional(nmL,grid,head,sb,tmp,tmp1,tmp2,
- tsg,segall,sg,str);
- if(islist(nameL),nmL=nameL,nmL=[nameL]);
- forall(nmL,grid,
- if(substring(grid,0,1)=="r",sb="c",sb="r");
- tmp=Indexall(grid,sb);
- head=substring(grid,0,tmp_1-1);
- tmp1=substring(grid,tmp_1,tmp_2-1);
- tmp2=substring(grid,tmp_2,length(grid));
- tsg=apply([tmp1,tmp2],parse(#));
- tmp1=apply(GCLIST,#_1); // 16.12.06from
- segall=[];
- forall(tmp1,
- tmp2=substring(#,2,length(#));
- tmp=indexof(tmp2,sb);
- tmp2=substring(tmp2,0,tmp-1);
- if(head==tmp2,segall=append(segall,#));
- );// 16.12.06until
- sg=[];
- forall(segall,
- tmp=Indexall(#,sb);
- tmp1=substring(#,tmp_1,tmp_2-1);
- tmp2=substring(#,tmp_2,length(#));
- tmp=apply([tmp1,tmp2],parse(#));
- if((tsg_1>=tmp_1) & (tsg_2<=tmp_2),
- sg=tmp;
- Changestyle(#,["nodisp"]);
- );
- );
- if(length(sg)==0,
- println("No segment includes "+grid);
- ,
- if(sb=="c",str=sb+"no"+head,str=head+sb+"no");
- if(sg_1<tsg_1,
- tmp1=replace(str,"no",text(sg_1));
- tmp2=replace(str,"no",text(tsg_1));
- tmp=head+sb+text(sg_1)+"c"+text(tsg_1);
- Tlistplot(tmp,[tmp1,tmp2],TableOptions);
- );
- tmp1=replace(str,"no",text(tsg_1));
- tmp2=replace(str,"no",text(tsg_2));
- tmp=head+"c"+text(tsg_1)+"c"+text(tsg_2);
- Tlistplot(tmp,[tmp1,tmp2],style);
- if(tsg_2<sg_2,
- tmp1=replace(str,"no",text(tsg_2));
- tmp2=replace(str,"no",text(sg_2));
- tmp=head+"c"+text(tsg_2)+"c"+text(sg_2);
- Tlistplot(tmp,[tmp1,tmp2],TableOptions);
- );
- );
- );
-);
-
-Findcell(pos1,pos2):=Findcell("",pos1,pos2);
-Findcell(Tbdata,pos1,pos2):=(
-//help:Findcell("c0r0","c2r1");
- regional(tmp1,tmp2,posnw,posse,ctr,dx,dy);
- if(isstring(pos1),
- posnw=Tgrid(pos1); // 15.05.20
- posse=Tgrid(pos2);
- //posnw=parse(pos1);
- //posse=parse(pos2);
- ,
- if(islist(pos1),
- posnw=pos1;
- posse=pos2;
- ,
- tmp1="c"+text(pos1-1)+"r"+text(pos2-1);
- tmp2="c"+text(pos1)+"r"+text(pos2);
- posnw=Tgrid(tmp1);
- posse=Tgrid(tmp2);
-// posnw=parse(tmp1);
-// posse=parse(tmp2);
- );
- );
- ctr=(posnw+posse)/2;
- dx=abs(posse_1-ctr_1);
- dy=abs(posnw_2-ctr_2);
- [ctr,dx,dy];
-);
-
-Putcell(pos1,pos2,dir,lttr):=Putcell("",pos1,pos2,dir,lttr);
-Putcell(Tbdata,pos1,pos2,dir,lttr):=(
-//help:Putcell("c0r0","c2r1","lt","abc");
-//help:Putcell(2,3,"c","xyz");
- regional(tmp,tmp1,tmp2,posnw,posse,
- posdir,posstr,ctr,dx,dy);
- tmp=Findcell(Tbdata,pos1,pos2);
- ctr=tmp_1; dx=tmp_2; dy=tmp_3;
- posdir=ctr;
- posstr=dir;
- if(indexof(dir,"b")>0,
- posdir_2=posdir_2-dy;
- posstr=replace(posstr,"b","n");
- );
- if(indexof(dir,"t")>0,
- posdir_2=posdir_2+dy;
- posstr=replace(posstr,"t","s");
- );
- if(indexof(dir,"l")>0,
- posdir_1=posdir_1-dx;
- posstr=replace(posstr,"l","e");
- );
- if(indexof(dir,"r")>0,
- posdir_1=posdir_1+dx;
- posstr=replace(posstr,"r","w");
- );
- Letter(posdir,posstr,text(lttr));
-);
-
-Putcellexpr(pos1,pos2,dir,ex):=Putcellexpr("",pos1,pos2,dir,ex);
-Putcellexpr(Tbdata,pos1,pos2,dir,ex):=(
-//help:Putcellexpr("c0r0","c2r1","lt","abc");
-//help:Putcellexpr(2,3,"c","\sin x");
- Putcell(Tbdata,pos1,pos2,dir,"$"+text(ex)+"$");
-);
-
-Putrow(nrow,dir,lttrL):=Putrow("",nrow,dir,lttrL);
-Putrow(Tbdata,nrow,dir,lttrL):=(
-//help:Putrow(1,"c",["x","y","z"]);
- regional(tmp,tmp1,mcol);
- mcol=length(lttrL);
- forall(1..mcol,
- Putcell(Tbdata,#,nrow,dir,lttrL_#);
- );
-);
-
-Putrowexpr(nrow,dir,exL):=Putrowexpr("",nrow,dir,exL);
-Putrowexpr(Tbdata,nrow,dir,exL):=(
-//help:Putrowexpr(2,"r",["x","y","z"]);
- regional(lttrL);
- lttrL=apply(exL,"$"+#+"$");
- Putrow(Tbdata,nrow,dir,lttrL);
-);
-
-PutcoL(mcol,dir,lttrL):=PutcoL("",mcol,dir,lttrL);
-PutcoL(Tbdata,mcol,dir,lttrL):=(
-//help:PutcoL(1,"c",["x","y","z"]);
- regional(tmp,tmp1,nrow);
- nrow=length(lttrL);
- forall(1..nrow,
- Putcell(Tbdata,mcol,#,dir,lttrL_#);
- );
-);
-PutcoLexpr(mcol,dir,exL):=PutcoLexpr("",mcol,dir,exL);
-PutcoLexpr(Tbdata,mcol,dir,exL):=(
-//help:PutcoLexpr(2,"r",["x","y","z"]);
- regional(lttrL);
- lttrL=apply(exL,"$"+#+"$");
- PutcoL(Tbdata,mcol,dir,lttrL);
-);
-
-Setrange():=(
-//help:Setrange();
- SW.xy=Pcrd([XMIN,YMIN]);
- NE.xy=Pcrd([XMAX,YMAX]);
- drawpoly([Pcrd([XMIN,YMIN]), Pcrd([XMAX,YMIN]),
- Pcrd([XMAX,YMAX]),Pcrd([XMIN,YMAX])],color->[1,1,1]);
-);
-
-Sciform(list):=(
- regional(plotlist,comp,pos,out,out2,nn,strL,flg,
- tmp,tmp1,tmp2,tmp3,Nj);
- plotlist=Flatten([list]);
- out=replace(plotlist_1,".xy","");
- out=replace(out,".x","(1)");
- out=replace(out,".y","(2)");
- if(length(plotlist)==1,
- comp=[];
- forall(1..length(out),
- comp=append(comp,substring(out,#-1,#));
- );
- out="";
- pos=0;
- forall(comp,
- if(#!="'",
- out=out+#;
- ,
- if(pos==0,
- tmp=indexof(out,"Assign(");
- if(substring(out,length(out)-7,length(out))=="Assign(",
- out=out+"'";
- pos=1;
- ,
- out=out+"Assign('";
- pos=2;
- );
- ,
- if(pos==2,
- out=out+"')";
- ,
- out=out+"'";
- );
- pos=0;
- );
- );
- );
- ,
- forall(2..length(plotlist),
- comp=plotlist_#;
- if(isstring(comp),
- pos=indexof(comp,"Assign(");
- if(pos>0,
- comp=substring(comp,6,length(comp));
- );
- out=out+"Assign(";
- comp=replace(comp,".xy","");
- comp=replace(comp,".x","(1)");
- comp=replace(comp,".y","(2)");
- out=out+"'"+comp+"'";
- out=out+"),";
- );
- if(islist(comp),
- forall(comp,
- out=out+"'"+#+"',";
- );
- );
- );
- if(length(plotlist)>1,
- out=substring(out,0,length(out)-1);
- out=out+");";
- );
- );
- pos=[];
- forall(1..length(out),
- tmp=indexof(substring(out,#-1,length(out)),"Assign");
- if(tmp>0,
- tmp1=#-1+tmp;
- if(length(pos)==0,
- pos=[tmp1];
- ,
- if(pos_(length(pos))<tmp1,
- pos=append(pos,tmp1);
- );
- );
- );
- );
- if(length(pos)>0,
- strL=[];
- Nj=0;
- forall(pos,
- tmp=substring(out,Nj,#-1);
- strL=append(strL,tmp);
- Nj=#-1;
- );
- strL=append(strL,substring(out,Nj,length(out)));
- out="";
- forall(strL,
- if(indexof(#,"Assign")==0,
- out=out+#;
- ,
- tmp=indexof(#,"('");
- tmp1=indexof(#,"')");
- tmp2=substring(#,tmp+1,tmp1-2);
- tmp3=substring(#,tmp1-2,length(#));
- if(indexof(tmp2,"=")==0,
- out=out+#;
- ,
- tmp=substring(tmp2,0,indexof(tmp2,"="));
- out=out+"'"+tmp+"'+"+"Assign('";
- tmp=substring(tmp2,indexof(tmp2,"="),length(tmp2));
- out=out+tmp+tmp3;
- );
- );
- );
- );
- out2=""; // patched 16.01.21 from
- nn=length(out);
- flg=0;
- forall(1..nn,
- if(flg==0,
- tmp=indexof(out,"='+Assign('");
- if(tmp==0,
- out2=out2+out;
- flg=1;
- ,
- out2=out2+substring(out,0,tmp);
- out=substring(out,tmp+10,length(out));
- tmp=indexof(out,"'"); // 16.04.19 from
- tmp1=substring(out,0,tmp-1);
- tmp2="1234567890";
- tmp=apply(1..length(tmp1),
- indexof(tmp2,substring(tmp1,#-1,#)));
- tmp=min(tmp);
- if(tmp==0, // 16.04.19 until
- out2=out2+"'+Assign('";
- ,
- tmp=indexof(out,"'");
- out=substring(out,0,tmp)+substring(out,tmp+1,length(out));
- // 16.04.18 until
- );
- );
- );
- );
- out2=replace(out2,"Dist=","D=");
- out2=replace(out2,"Dis=","D=");
- out2;
-);
-
-RSform(str):=RSform(str,3);
-RSform(str,listfrom):=(
-//help:RSform(string,listfrom);
- regional(posL,mxlv,rep1,rep2,rep3,prev,out,
- tmp,tmp1,tmp2);
- rep1="c("; rep2="c("; rep3="list(";
- if(listfrom<3,rep2="list(");
- if(listfrom==1,rep1="list(");
- posL=Bracket(str,"[]");
- tmp=apply(posL,#_2);
- mxlv=max(tmp);
- out="";
- prev=0;
- forall(posL,
- out=out+substring(str,prev,#_1-1);
- prev=#_1;
- if(#_2>0,
- tmp1=select(posL,tmp,(tmp_2<0)&(tmp_1>#_1));
- tmp1=tmp1_1_1;
- tmp=substring(str,#_1,tmp1);
- if(#_2==mxlv,out=out+rep1);
- if(#_2==mxlv-1,out=out+rep2);
- if(#_2<=mxlv-2,out=out+rep3);
- ,
- out=out+")";
- );
- );
- out=out+substring(str,prev,length(str));
- out=replace(out,".xy","");
- out=replace(out,".x","[1]");
- out=replace(out,".y","[2]");
- out=replace(out,"c(1)","[1]");//17.10.06(2lines)
- out=replace(out,"c(2)","[2]");
- out;
-);
-
-RSslash(str):=( //17.09.24
- regional(tmp);
- tmp=replace(str,"\","\\");
-// tmp=replace(tmp,"\\\\","\\");
- tmp;
-);
-
-Rform(list):=(
- regional(plotlist,comp,pos,out,strL,tmp,tmp1,tmp2,tmp3,Nj);
- out=list;
- out=replace(out,"[[[","list([[");
- out=replace(out,"[","c(");
- out=replace(out,"]",")");
- out=replace(out,".xy","");
- out=replace(out,".x","[1]");
- out=replace(out,".y","[2]");
- out;
-);
-
-Defvar(varstr):=(
- regional(name,value,tmp,tmp1);
- if(isstring(varstr),
- parse(varstr);
- tmp=indexof(varstr,"=");
- name=substring(varstr,0,tmp-1);
- value=substring(varstr,tmp,length(varstr));
- value=parse(value);
- tmp1=select(1..length(VLIST),VLIST_#_1==name);
- if(length(tmp1)>0,
- tmp=tmp1_1;
- VLIST_tmp=[name,value];
- ,
- VLIST=prepend([name,value],VLIST);
- );
- ,
- forall(1..(length(varstr)/2), // 16.11.16from
- name=varstr_(2*#-1);
- value=varstr_(2*#);
- Defvar(name,value);
- ); // 16.11.16until
- );
-);
-
-Defvar(name,value):=(
-//help:Defvar("a",0.3);
-//help:Defvar(["a",0.3,"b",2]);
- regional(tmp,tmp1);
- if(islist(value),
- tmp1="[";
- forall(value,
- if(isstring(#), // 16.11.14
- tmp1=tmp1+Dq+#+Dq+","; // 16.11.14
- ,
- tmp1=tmp1+format(#,5)+",";
- );
- );
- tmp1=substring(tmp1,0,length(tmp1)-1)+"]";
- ,
- tmp1=format(value,5);
- );
- tmp=name+"="+tmp1; // 15.02.06
- parse(tmp);
- VLIST=select(VLIST,#_1!=name); // 15.02.08
- VLIST=prepend([name,value],VLIST);
-);
-
-IftoR(strorg):=(
- regional(str,pre,post,sub,ppL,ifstr,out,tmp,tmp1,tmp2);
- str=strorg;
- ifstr=indexof(str,"if(");
- if(ifstr==0,
- out=replace(str,",","}else{");
- ,
- pre=substring(str,0,ifstr-1)+"if(";
- ppL=Bracket(str,"()");
- tmp1=ifstr+2;
- tmp=select(ppL,#_1==tmp1);
- tmp=select(ppL,#_2==-tmp_1_2);
- tmp2=tmp_1_1;
- sub=substring(str,tmp1,tmp2-1);
- post="}"+substring(str,tmp2,length(str));
- tmp=indexof(sub,",");
- tmp1=substring(sub,0,tmp-1);
- tmp2=substring(sub,tmp,length(sub));
- sub=tmp1+"){"+tmp2;
- tmp=IftoR(sub);
- out=pre+tmp+"}";
- );
- out;
-);
-
-FortoR(strorg):=(
- regional(str,pre,post,sub,ppL,forstr,out,tmp,tmp1,tmp2);
- str=strorg;
- forstr=indexof(str,"forall(");
- if(forstr==0,
- out=str;
- ,
- pre=substring(str,0,forstr-1)+"for(";
- ppL=Bracket(str,"()");
- tmp1=forstr+6;
- tmp=select(ppL,#_1==tmp1);
- tmp=select(ppL,#_2==-tmp_1_2);
- tmp2=tmp_1_1;
- sub=substring(str,tmp1,tmp2-1);
- post="}"+substring(str,tmp2,length(str));
- tmp=indexof(sub,",");
- tmp1=substring(sub,0,tmp-1);
- tmp2=substring(sub,tmp,length(sub));
- sub=tmp1+"){"+tmp2;
- tmp1=indexof(sub,"{");
- tmp2=indexof(sub,",");
- tmp=substring(sub,tmp1,tmp2-1);
- pre=pre+tmp+" in "+substring(sub,0,tmp1-1)+"{";
- sub=substring(sub,tmp2,length(sub));
- tmp=FortoR(sub);
- out=pre+tmp+"}";
- );
- out=replace(out,"..",":");
- out;
-);
-
-Deffun(name,bodylist):=(
-//help:Deffun("f(x)",["regional(y)","y=x^2*(x-3)","y"]);
- regional(funstr,str,Pos,nbody,bdy,ppL,bpL,excma,tmp,tmp1,tmp2);
- funstr=name+":=(";
- forall(bodylist,
- funstr=funstr+#+";";
- );
- funstr=funstr+");";
- parse(funstr);
- tmp=indexof(name,"(");
- str=substring(name,0,tmp-1)+"<-function(";
- str=str+substring(name,tmp,length(name))+"{";
- forall(1..(length(bodylist)-1),nbody,
- bdy=bodylist_nbody;
- Pos=indexof(bdy,"regional")+indexof(bdy,"local");
- if(Pos==0,
- bdy=replace(bdy,LFmark,"");
- bdy=replace(bdy," ","");
- ppL=Bracket(bdy,"()");
- bpL=Bracket(bdy,"[]");
- tmp1=select(bpL,#_2==1);
- tmp2=select(bpL,#_2==-1);
- excma=[];
- forall(1..(length(tmp1)),
- excma=append(excma,[tmp1_#_1,tmp2_#_1]);
- );
- tmp1=Indexall(bdy,",");
- forall(tmp1,cma,
- tmp=select(excma,(#_1<cma)&(cma<#_2));
- if(length(tmp)>0,
- bdy=substring(bdy,0,cma-1)+"'"+substring(bdy,cma,length(bdy));
- );
- );
- tmp=indexof(bdy,"forall");
- if(tmp>0,
- bdy=FortoR(bdy);
- );
- tmp=indexof(bdy,"if(");
- if(tmp>0,
- bdy=IftoR(bdy);
- );
- bdy=RSform(replace(bdy,"'",","));
- str=str+bdy+";";
- );
- );
- str=str+"return("+bodylist_(length(bodylist))+")}";
- FUNLIST=append(FUNLIST,str);
-);
-
-Windispg():=(
- regional(Nj,Nk,Dt,Vj,tmp,tmp1,tmp2,opcindy);
- gsave();
- layer(KETPIClayer);
- forall(GCLIST,Nj,
- if(isstring(Nj_1),Dt=parse(Nj_1),Dt=Nj_1); // 11.17
- if(islist(Dt) & length(Dt)>0, // 12.19,12.22
- tmp=MeasureDepth(Dt);
- if(tmp==1,Dt=[Dt]);
- opcindy=Nj_3;
- if(Nj_2<0,tmp1=0,tmp1=Nj_2);
- if(tmp1<10,
- forall(Dt,Nk,
-// tmp2=apply(Nk,if(ispoint(#),Lcrd(#),#));
-// tmp2=apply(tmp2,Pcrd(#));
- tmp2=Nk; // 14.12.04
- if(length(Nk)>1,
- tmp="connect("+textformat(tmp2,5)+
- ",dashtype->"+text(tmp1)+",linecolor->"+KCOLOR+opcindy+")";
- parse(tmp);
- ,
- if(length(Nk)==1,
- tmp="draw("+text(tmp2_1)+opcindy+")"; // 14.12.31
- parse(tmp);
- );
- );
- );
- );
- );
- );
-// if(ADDAXES=="1", // 16.10.08from
-// draw([XMIN,0],[XMAX,0],color->[0,0.2,0]);
-// draw([0,YMIIN],[0,YMAX],color->[0,0.2,0]);
-// Letter([[XMAX,0],"e","x",[0,YMAX],"n","y"]);
-// Letter([[0,0],"sw","O"]);
-// ); // 16.10.08until
- grestore();
- layer(0);
-);
-
-Windispg(pltdata):=(
- regional(pdata,Nj,Nk,Dt,tmp,tmp1,tmp2,opcindy);
- gsave();
- layer(KETPIClayer);
- if(!islist(pltdata),tmp=[pltdata],tmp=pltdata);
- pdata=select(GCLIST,contains(tmp,#_1));
- forall(pdata,Nj,
- if(isstring(Nj_1),Dt=parse(Nj_1),Dt=Nj_1); // 11.17
- if(islist(Dt) & length(Dt)>0, // 12.19,12.22
- tmp=MeasureDepth(Dt);
- if(tmp==1,Dt=[Dt]);
- opcindy=Nj_3;
- if(Nj_2<0,tmp1=0,tmp1=Nj_2);
- if(tmp1<10,
- forall(Dt,Nk,
- tmp2=Nk; // 14.12.04
- if(length(Nk)>1,
- tmp="connect("+textformat(tmp2,5)+ // 15.05.11
- ",dashtype->"+text(tmp1)+
- ",linecolor->"+KCOLOR+opcindy+")";
- parse(tmp);
- ,
- if(length(Nk)==1,
- tmp="draw("+text(tmp2_1)+opcindy+")"; // 14.12.31
- parse(tmp);
- );
- );
- );
- );
- );
- );
- grestore();
- layer(0);
-);
-
-WritetoSci():=WritetoRS(); //17.12.19
-WritetoRS():=WritetoRS(FnameR);// 17.09.17from
-WritetoRS(Arg):=(
- regional(string,filename,shch,tmp1,tmp2);
- if(isstring(Arg),
- string=Arg;
- if(indexof(string,".r")>0,
- filename=string;
- shch="";
- ,
- filename=FnameR;
- shch=string;
- );
- WritetoRS(filename,shch);
- ,
- if(Arg<=1,WritetoRS(FnameR,"all"));
- if(Arg==2,WritetoRS(FnameR,"sh"));
- );
-);
-WritetoRS(filename,shchoice):=(
- regional(Plist,Pos,GrL,str,tmp,tmp1,tmp2,cmd);
- println("Write to R "+filename);
- Plist=[];
- Pnamelist=[];
- forall(remove(allpoints(),[SW,NE]),
- tmp=Lcrd(#);
- tmp1=format(re(tmp_1),6);// 15.02.05
- tmp2=format(re(tmp_2),6);
- tmp=#.name+"="+"c("+tmp1+","+tmp2+");";
- tmp=tmp+"Assignadd('"+#.name+"',"+#.name+")";
- Plist=append(Plist,tmp);
- );
- SCEOUTPUT = openfile(filename);
- tmp=Datetime();
- println(SCEOUTPUT,"# date time="+tmp_1+" "+tmp_2);
- if(isstring(CindyPathName), // 16.12.25from
- if(length(CindyPathName)>0,
- println(SCEOUTPUT,
- "# path file="+CindyPathName+" "+CindyFileName+".cdy");
- ,
- println(SCEOUTPUT,"");
- );
- ,
- println(SCEOUTPUT,"");
- );
- tmp1=replace(Dirwork,"\","/");
- if((iswindows())&(indexof(tmp1,"Users")>0),
- tmp=Indexall(tmp1,"/");
- tmp2=substring(tmp1,tmp_3-1,length(tmp1));
- tmp1=substring(tmp1,0,tmp_3-1);
- println(SCEOUTPUT,"Drv=shell('echo %HOMEDRIVE%',intern=TRUE)");
- println(SCEOUTPUT,"Drv=Drv[length(Drv)]");
- println(SCEOUTPUT,"Hpath=shell('echo %HOMEPATH%',intern=TRUE)");
- println(SCEOUTPUT,"Hpath=Hpath[length(Hpath)]");
- println(SCEOUTPUT,"Rest="+Dqq(tmp2));
- println(SCEOUTPUT,"Path=paste(Drv,Hpath,Rest,sep='')");
- println(SCEOUTPUT,"setwd(Path)");
- ,
- println(SCEOUTPUT,"setwd('"+tmp1+"')");
- );//180409to
- tmp=replace(Libname,"\","/"); //17.09.24from
- println(SCEOUTPUT,"source('"+tmp+".r')");//temporary
- if((indexof(PathT,"pdflatex")>0)%(indexof(PathT,"lualatex")>0),
- // 17.10.07added
- tmp=replace(tmp+"_rep2e","\","/");
- println(SCEOUTPUT,"source('"+tmp+".r')");
- );
- println(SCEOUTPUT,"Ketinit()");
- println(SCEOUTPUT,"cat(ThisVersion,'\n')");
- println(SCEOUTPUT,"Fnametex='"+Fnametex+"'");
- println(SCEOUTPUT,"FnameR='"+FnameR+"'");
- println(SCEOUTPUT,"Fnameout='"+Fnameout+"'");
- println(SCEOUTPUT,"arccos=acos; arcsin=asin; arctan=atan");
- println(SCEOUTPUT,"");
- forall(COM0thlist,
- if(indexof(#,"Texcom")==0, //17.09.22
- println(SCEOUTPUT,RSform(#));
- ,
- println(SCEOUTPUT,#);
- );
- );
- println(SCEOUTPUT,
- "Setwindow(c("+XMIN+","+XMAX+"), c("+YMIN+","+YMAX+"))");
- forall(Plist,
- println(SCEOUTPUT,#);
- );
- forall(VLIST,
- tmp=#_1;
- tmp1=#_2;
- if(!isstring(tmp1),
- if(islist(tmp1),
- tmp2="[";
- forall(tmp1,
- tmp2=tmp2+textformat(#,6)+",";
- );
- tmp1=substring(tmp2,0,length(tmp2)-1)+"]";
- ,
- tmp1=format(tmp1,6);
- );
- );
- tmp1=RSform(tmp1);
- print(SCEOUTPUT,tmp+"="+tmp1+";"); //17.09.22
-// tmp=substring(tmp,0,length(tmp)-1);
- println(SCEOUTPUT,"Assignadd('"+tmp+"',"+tmp+")");
- );
- forall(FUNLIST,
- println(SCEOUTPUT,#);
- );
- forall(GLIST,
- println(SCEOUTPUT,RSform(#));
- );
- tmp=text(Pnamelist);
- tmp=replace(tmp,"[","list(");
- Pnamelist=replace(tmp,"]",")");
- println(SCEOUTPUT,"PtL="+Pnamelist);
- tmp=select(GCLIST,#_2==-1);
- GrL=apply(tmp,#_1);
- tmp=text(GrL);
- tmp=replace(tmp,"[","list(");
- tmp=replace(tmp,"]",")");
- println(SCEOUTPUT,"GrL="+tmp);
- tmp1="";
- if(length(tmp1)>0,
- tmp1="WriteOutData(Fnameout"+tmp1+");";
- println(SCEOUTPUT,tmp1);
- );
- forall(COM1stlist,
- if(indexof(#,"Texcom")==0, //17.09.22
- println(SCEOUTPUT,RSform(#));
- ,
- println(SCEOUTPUT,#);
- );
- );
- println(SCEOUTPUT,"");
- println(SCEOUTPUT,"# Windisp(GrL)");
- println(SCEOUTPUT,"");
- println(SCEOUTPUT,"if(1==1){");
- println(SCEOUTPUT,"");
- tmp1=replace(Dirwork,"\","/"); //180408to
- if((iswindows())&(indexof(tmp1,"Users")>0),
- println(SCEOUTPUT,"Path=paste(Path,"+Dqq("/"+Fnametex)+",sep='')");
- tmp="Openfile(Path,'"+ULEN+"'";
- ,
- tmp="Openfile('"+tmp1+"/"+Fnametex+"','"+ULEN+"'";
- );
- tmp=tmp+",'Cdy="+Cindyname()+".cdy"; //180404
- tmp=replace(tmp,"\","\\");
- println(SCEOUTPUT,tmp+"')");
- forall(COM2ndlist,
- if(indexof(#,"Texcom")==0, //17.09.22
- println(SCEOUTPUT,RSform(#));
- ,
- println(SCEOUTPUT,#);
- );
- );
- if(length(GrL)>0,
- println(SCEOUTPUT," Drwline(GrL)");
- );
- println(SCEOUTPUT,"Closefile('"+ADDAXES+"')");
- println(SCEOUTPUT,"");
- println(SCEOUTPUT,"}");
- if(shchoice=="sh",
- println(SCEOUTPUT,"");
- println(SCEOUTPUT,"quit()");
- ,
- println(SCEOUTPUT,"");
- println(SCEOUTPUT,"#quit()");
- );
- closefile(SCEOUTPUT);
-); //17.09.17to
-
-Extractdata(name):=Extractdata(1,name,[]);
-Extractdata(Arg1,Arg2):=(
- if(isstring(Arg1),
- Extractdata(1,Arg1,Arg2);
- ,
- Extractdata(Arg1,Arg2,[]);
- );
-);
-Extractdata(number,name,options):=(
-//help:ExtractData("ha1");
-//help:ExtractData(1,"ha1");
- regional(dlist,tmp,tmp1,tmp2,tmp3,File,Ltype,Noflg,opstr,opcindy);
- tmp=Divoptions(options);
- Ltype=tmp_1;
- Noflg=tmp_2;
- opstr=tmp_(length(tmp)-1);
- opcindy=tmp_(length(tmp));
- tmp1=[];
- forall(1..length(GOUTLIST),
- if(contains(GOUTLIST_#_2,name),
- tmp1=append(tmp1,#);
- );
- );
- if(length(tmp1)==0,
- println(name+" not found");
- ,
- tmp1=tmp1_number;
- tmp2=GOUTLIST_tmp1;
- tmp=remove(tmp2_2,[name]);
- GOUTLIST_tmp1=[tmp2_1,tmp];
- File=tmp2_1;
- );
- if(Noflg<3,
- println("extract outdata "+name);
- tmp1=parse(name);
- tmp3=[ //17.09.18
- "Tmpout=ReadOutData("+Dq+File+Dq+")"
- ];
- GLIST=concat(GLIST,tmp3);
- );
- if(Noflg<2,
- if(isstring(Ltype),
- Ltype=GetLinestyle(text(Noflg)+Ltype,name);
- ,
- if(Noflg==1,Ltype=0);
- );
- GCLIST=append(GCLIST,[name,Ltype,opcindy]);
- );
- tmp2;
-);
-
-RemoveOut(pltlist):=(
- regional(name,tmp,tmp1,tmp2);
- forall(pltlist,name,
- tmp1=[];
- forall(GOUTLIST,
- tmp=remove(#_2,[name]);
- tmp1=append(tmp1,[#_1,tmp]);
- );
- GOUTLIST=tmp1;
- );
-);
-
-ReadOutData():=ReadOutData(Fnameout);
-ReadOutData(filename):=ReadOutData("",filename); //16.03.07
-ReadOutData(pathorg,filenameorg):=(
-//help:ReadOutData();
-//help:Readoutdata();
-//help:ReadOutData("file.txt");
-//help:Readoutdata("file.txt");
-//help:ReadOutData("/datafolder","file.txt");
-//help:Readoutdata("/datafolder","file.txt");
- regional(path,filename,varname,varL,ptL,pts,tmp,tmp1,tmp2,tmp3,tmp4,
- nmbr,cmdall,cmd,cmdorg,outdt,goutdt);
- path=pathorg; //16.03.07 from
- if(length(path)>0,
- setdirectory(path);
- if(indexof(path,"\")>0,tmp1="\",tmp1="/");
- tmp=substring(path,length(path)-1,length(path));
- if(tmp!=tmp1,path=path+tmp1);
- ); //16.03.07 until
- filename=filenameorg; // 16.04.17
- if(indexof(filename,".")==0,filename=filename+".txt");
- tmp=load(filename);
- cmdall=tokenize(tmp,"//");
- varname=cmdall_1;
- cmdall=cmdall_(2..length(cmdall));
- outdt=[];
- varL=[varname];
- ptL=[];
- forall(cmdall,cmdorg,
- cmd=replace(cmdorg,LFmark,"");
- if(length(cmd)>0,
- if(cmd=="start" % cmd=="end" % substring(cmd,0,1)=="[",
- if(cmd=="start",
- pts=[];
- );
- if(cmd=="end",
- ptL=append(ptL,pts);
- );
- if(substring(cmd,0,1)=="[",
- tmp1=parse(cmd);
- if(length(tmp1_1)==2,
- tmp1=apply(tmp1,Pcrd(#));
- );
- pts=concat(pts,tmp1);
- );
- ,
- if(length(ptL)>0,
- if(length(ptL)==1,
- ptL=ptL_1;
- tmp=apply(ptL,textformat(#,6));
- ,
- tmp="[";
- forall(ptL,tmp1,
- tmp=tmp+apply(tmp1,textformat(#,6))+",";
- );
- tmp=substring(tmp,0,length(tmp)-1)+"]";
- );
- ,
- tmp="[]";
- );
- parse(varname+"="+tmp);
- outdt=append(outdt,ptL);
- ptL=[];
- varname=cmd;
- varL=append(varL,varname);
- );
- );
- );
- if(length(ptL)>0,
- if(length(ptL)==1,
- ptL=ptL_1;
- tmp=apply(ptL,textformat(#,6));
- ,
- tmp="[";
- forall(ptL,tmp1,
- tmp=tmp+apply(tmp1,textformat(#,6))+",";
- );
- tmp=substring(tmp,0,length(tmp)-1)+"]";
- );
- ,
- tmp="[]";
- );
- parse(varname+"="+tmp);
- outdt=append(outdt,ptL);
- if(path=="",tmp=filename,tmp=path+filename); //16.03.07
- GOUTLIST=append(GOUTLIST,[tmp,varL]);
- if(length(path)>0, // 16.03.09
- setdirectory(Dirwork); // 16.03.07
- );
- print("readoutdata from "+tmp+" : ");
- println(varL);
- varL;
-);
-
-WriteOutData(filename,ptlist):=(
-//help:WriteOutData("file.txt",["g1",gr1,"sg",sgAB]);
-//help:Writeoutdata("file.txt",["g1",gr1,"sg",sgAB]);
- regional(nn,Gname,Gdata,Str,Gstr,Gj,Pt,Flg,tmp,tmp1,loopend);
- Flg=0;
- if(isstring(ptlist_(length(ptlist))),
- Flg=1;
- );
- SCEOUTPUT = openfile(filename);
- if(Flg==0,
- loopend=length(ptlist)/2;
- ,
- loopend=length(ptlist);
- );
- Gstr="[";
- forall(1..loopend,nn,
- if(Flg==0,
- Gname=ptlist_(2*nn-1);
- ,
- Gname=ptlist_nn;
- );
- Gstr=Gstr+Gname+",";
- println(SCEOUTPUT,Gname+"//");
- if(Flg==0,
- Gdata=ptlist_(2*nn);
- ,
- Gdata=parse(Gname);
- );
- Gdata=Flattenlist(Gdata);
- if(MeasureDepth(Gdata)==1,Gdata=[Gdata]);
- forall(Gdata,Gj,
- println(SCEOUTPUT,"start//");
- Str="";
- forall(Gj,Pt,
- if(length(Str)>0,
- Str=Str+","
- );
- Str=Str+"["+format(Pt_1,5)+",";
- Str=Str+format(Pt_2,5);
- if(length(Pt)<3,
- Str=Str+"]";
- ,
- Str=Str+","+format(Pt_3,5)+"]";
- );
- if(length(Str)>80,
- println(SCEOUTPUT,"["+Str+"]//");
- Str="";
- );
- );
- if(length(Str)>0,
- println(SCEOUTPUT,"["+Str+"]//");
- );
- if((nn==loopend) & (Gj==Gdata_(length(Gdata))),
- println(SCEOUTPUT,"end////");
- ,
- println(SCEOUTPUT,"end//");
- );
- );
- );
- closefile(SCEOUTPUT);
- Gstr=substring(Gstr,0,length(Gstr)-1)+"]";
- println("writeoutdata "+filename+":"+Gstr);
-);
-
-Makeshell():=(
- if(length(Texmain)>0,
- Texparent=Texmain;
- );
- if(length(Texparent)>0,
- Makeshell(Texparent);
- if(length(FigPdfList)>0,
- SCEOUTPUT=openfile(Texparent+".tex");
- forall(FigPdfList,println(SCEOUTPUT,#));
- closefile(SCEOUTPUT);
- );
- ,
- Makeshell(Fhead+"main");
- );
-);
-Makeshell(texmainfile):=Makeshell(texmainfile,"rtv");
-Makeshell(texmainfile,flow):=(
- regional(parent,tmp,tmp1,tmp2,tmp3,flg,tex,path,shnm);
- parent=Dirwork+Shellparent; // 16.05.29
- kc():=(
- println("kc : "+kc(Dirwork+Shellparent,Mackc+Dirlib,Fnametex)); // 16.06.04,06.07
- );
- tmp1="";
-// tmp2=parent;
- flg=0;
- forall(reverse(1..length(parent)),
- if(flg==0,
- tmp=substring(parent,#-1,#);
- if(tmp=="/" % tmp=="\", // 14.01.15
- tmp1=substring(parent,0,#-1);
- tmp2=substring(parent,#,length(parent));
- flg=1;
- );
- );
- );
- if(length(tmp1)>0,
- setdirectory(tmp1);
- );
- SCEOUTPUT = openfile(tmp2);
- println(SCEOUTPUT,"#!/bin/sh");
- println(SCEOUTPUT,"cd "+Dq+Dirwork+Dq); // 15.07.16
- tmp1=" "+Dq+Fhead+Dq+" "+Dq+texmainfile+Dq; // 15.12.11
- flg=0;
- forall(reverse(1..length(PathT)),
- if(flg==0,
- if(substring(PathT,#-1,#)=="/",
- tex=substring(PathT,#,length(PathT));
- path=substring(PathT,0,#-1);
- flg=1;
- );
- );
- );
- if(flg==0, // 17.10.13(Norbert)
- tex=PathT;
- path="";
- );
- if(indexof(flow,"r")>0,
- tmp=Dq+PathR+Dq+" --vanilla --slave < "+Fhead+".r";
- // 17.09.14
- println(SCEOUTPUT,tmp);
- );
- if(tex=="latex" % tex=="platex" % tex=="uplatex", //17.08.13
- tmp=Dq+PathT+Dq+" "+texmainfile+".tex";
- println(SCEOUTPUT,tmp);
- if(indexof(flow,"tt")>0,println(SCEOUTPUT,tmp)); //17.10.14
- tmp=replace(Dq+PathT+Dq,tex,"dvipdfmx")+" "+texmainfile+".dvi";
- println(SCEOUTPUT,tmp);
- tmp="rm "+texmainfile+".dvi";
- println(SCEOUTPUT,tmp);
- );
- if(tex=="xelatex",
- tmp="export PATH="+path+":${PATH}";
- println(SCEOUTPUT,tmp);
- tmp="xelatex"+" "+texmainfile+".tex";
- println(SCEOUTPUT,tmp);
- if(indexof(flow,"tt")>0,println(SCEOUTPUT,tmp)); //17.10.14
- tmp="rm "+texmainfile+".dvi";
- println(SCEOUTPUT,tmp);
- );
- if(tex=="pdflatex" % tex=="pdftex",//16.11.22from
- tmp=Dq+PathT+Dq+" "+texmainfile+".tex";
- println(SCEOUTPUT,tmp);
- if(indexof(flow,"tt")>0,println(SCEOUTPUT,tmp)); //17.10.14
- );//16.11.22until
- if(tex=="lualatex",//16.12.16
- tmp=Dq+PathT+Dq+" "+texmainfile+".tex";
- println(SCEOUTPUT,tmp);
- if(indexof(flow,"tt")>0,println(SCEOUTPUT,tmp)); //17.10.14
- );//16.12.16
- if(!isstring(Pathpdf),
- tmp="preview";
- ,
- tmp=Pathpdf;
- );
- if(tmp=="preview" % tmp=="skim", // 16.09.09from,16.10.20
- tmp="open -a "+Dq+tmp+Dq+" "+texmainfile+".pdf";
- ,
- tmp=Dq+tmp+Dq+" "+texmainfile+".pdf";
- );// 16.09.09until
- println(SCEOUTPUT,tmp); // 16.07.21until
- println(SCEOUTPUT,"exit 0");
- closefile(SCEOUTPUT);
- setdirectory(Dirwork);
-);
-
-Convsjiswin(dir,fname,ext):=( //180401
- regional(ctr,flg,mx,tmp);
- mx=200;
- ctr=0;flg=0;
- nkfwin(dir,fname,ext);
- while((!isexists(dir,fname+".out"))&(ctr<mx),
- wait(100);ctr=ctr+1;
- );
- if(ctr==mx,flg=1);
- if(flg==0,
- wait(100);ctr=0;
- nkfcpdel(dir,fname,ext);
- while((isexists(dir,fname+".out"))&(ctr<mx),
- wait(100);ctr=ctr+1;
- );
- if(ctr==mx,flg=2);
- );
- tmp=dir+pathsep()+fname+"."+ext;
- if(flg==0,
- tmp=
- println(tmp+" converted");
- ,
- println(tmp+" not converted "+text(flg));
- );
-);
-
-Makebat():=(
- if(length(Texmain)>0,
- Texparent=Texmain;
- );
- if(length(Texparent)>0,
- Makebat(Texparent);
- if(length(FigPdfList)>0,
- SCEOUTPUT=openfile(Texparent+".tex");
- forall(FigPdfList,println(SCEOUTPUT,#));
- closefile(SCEOUTPUT);
- );
- ,
- Makebat(Fhead+"main");
- );
-);
-Makebat(texmainfile):=Makebat(texmainfile,"rtv");
-Makebat(texmainfile,flow):=(
- regional(drive,fname,tmp,tmp1,tmp2,tmp3,flg,tex,path,batnm);
- drive="C:";
- fname=Dirwork+Batparent;
- kc():=(
- println("kc : "+kc(Dirwork+Batparent,Dirlib,Fnametex)); // 16.06.04
- );
- tmp=indexof(fname,":");
- if(tmp>0,
- drive=substring(fname,0,tmp);
- fname=substring(fname,tmp,length(fname));
- );
- tmp1="";
- tmp2=fname;
- flg=0;
- forall(reverse(1..length(fname)),
- if(flg==0,
- tmp=substring(fname,#-1,#);
- if(tmp=="/" % tmp=="\" % tmp=="\", // 14.01.15
- tmp1=substring(fname,0,#-1);
- tmp2=substring(fname,#,length(fname));
- flg=1;
- );
- );
- );
- if(length(tmp1)>0,
- setdirectory(drive+tmp1);
- );
- SCEOUTPUT = openfile(tmp2);
- fname=replace(Dirwork,"/","\");
- tmp=indexof(fname,":");
- if(tmp>0,
- drive=substring(Dirwork,0,tmp);
- fname=substring(Dirwork,tmp,length(Dirwork));
- println(SCEOUTPUT,drive);
- );
- tmp=Dirwork;//180408form
- if(iswindows(),
- if((isincludefull(Dirwork))&(isexists(Dirwork,"sjis.txt")),
- import("sjis.txt");
- );
- );
-// tmp=replace(tmp,"\","/"); //180408
-// println(SCEOUTPUT,"cd "+Dq+tmp+Dq); //180408
- tmp1=indexof(fname,"Users");//180409from
- tmp2=indexof(fname,Homehead);
- if((tmp1>0)%(tmp2>0),
- if(tmp1>0,
- fname=substring(fname,tmp1+length("Users")-1,length(fname));
- ,
- fname=substring(fname,tmp2+length(Homehead)-1,length(fname));
- );
- tmp=Indexall(fname,"\");//180403from
- fname=substring(fname,tmp_2,length(fname));
- fname="%HOMEPATH%\"+fname;
- );//180403to
- println(SCEOUTPUT,"cd "+Dq+fname+Dq);//180409to
- flg=0;
- tmp=replace(PathT,"\","/");
- forall(reverse(1..length(PathT)),
- if(flg==0,
- if(substring(tmp,#-1,#)=="/",
- tex=substring(PathT,#,length(PathT));
- path=substring(PathT,0,#-1);
- flg=1;
- );
- );
- );
- if(flg==0, // 17.10.13(Norbert)
- tex=PathT;
- path="";
- );
- if(indexof(flow,"r")>0,
- tmp=Dq+PathR+"\R"+Dq+" --vanilla --slave < "+Fhead+".r";
- // 17.09.14
- println(SCEOUTPUT,tmp);
- );
- if(tex=="latex" % tex=="platex" % tex=="uplatex", //17.08.13
- tmp=Dq+PathT+Dq+" "+texmainfile+".tex";
- println(SCEOUTPUT,tmp);
- if(indexof(flow,"tt")>0,println(SCEOUTPUT,tmp)); //17.10.14
- tmp=replace(Dq+PathT+Dq,tex,"dvipdfmx")+" "+texmainfile+".dvi";
- println(SCEOUTPUT,tmp);
- tmp="del "+texmainfile+".dvi";
- println(SCEOUTPUT,tmp);
- );
- if(tex=="xelatex",
- tmp="set Path = %Path%;"+Dq+path+Dq;
- println(SCEOUTPUT,tmp);
- if(indexof(flow,"tt")>0,println(SCEOUTPUT,tmp)); //17.10.14
- tmp="xelatex"+" "+texmainfile+".tex";
- println(SCEOUTPUT,tmp);
- tmp="del "+texmainfile+".dvi";
- println(SCEOUTPUT,tmp);
- );
- if(tex=="pdflatex" % tex=="pdftex",//16.11.22from
- tmp=Dq+PathT+Dq+" "+texmainfile+".tex";
- println(SCEOUTPUT,tmp);
- if(indexof(flow,"tt")>0,println(SCEOUTPUT,tmp)); //17.10.14
- );//16.11.22until
- if(tex=="lualatex",//16.12.16
- tmp=Dq+PathT+Dq+" "+texmainfile+".tex";
- println(SCEOUTPUT,tmp);
- if(indexof(flow,"tt")>0,println(SCEOUTPUT,tmp)); //17.10.14
- );//16.12.16
- if(!isstring(Pathpdf),
- tmp=indexof(PathS,"\scilab");// 15.12.12
- tmp=substring(PathS,0,tmp-1)+"\SumatraPDF\SumatraPDF.exe";
- ,
- tmp=Pathpdf;
- );
- tmp=Dq+tmp+Dq+" "+texmainfile+".pdf";
- println(SCEOUTPUT,tmp);
- println(SCEOUTPUT,"exit 0");
- closefile(SCEOUTPUT);
- if(indexof(Dirwork,":")==0, // 14.01.15
- drive="C:";
- ,
- drive="";
- );
- setdirectory(drive+Dirwork);
-);
-
-Addpackage(packorg):=(
-//help:Addpackage("bm");
-//help:Addpackage(["bm","enumerate"]);
-//help:Addpackage(["bm","[c]{somepackage}"]);
- regional(packL,tmp);
- packL=packorg; //17.06.25from
- if(!islist(packL),packL=[packL]);
- packL=apply(packL,replace(#,"\","/"));
- forall(1..(length(packL)),
- tmp=packL_#;
- if(substring(tmp,0,11)=="ketpicstyle",
- tmp=replace(Dirhead+"/"+tmp,"\","/");
- );
- if(indexof(tmp,"[")==0,
- packL_#="{"+tmp+"}";
- );
- );
- ADDPACK=concat(ADDPACK,packL); //17.06.25until
-);
-
-Viewtex():=(
- regional(texfile,tmp,tmp1,sep);
- texfile=Fhead+"main";
-// if(iswindows(),sep="\",sep="/"); // 17.04.07
-// sep="/";
- SCEOUTPUT=openfile(texfile+".tex");
- tmp="\documentclass{article}"; // 16.06.09from
- if(indexof(PathT,"platex")>0,
- tmp=replace(tmp,"article","jarticle");
- if(indexof(PathT,"uplatex")>0, //17.08.13from
- tmp=replace(tmp,"jarticle","ujarticle");
- );//17.08.13until
- ); // 16.06.09until
- println(SCEOUTPUT,tmp);
- if((indexof(PathT,"pdflatex")>0)%(indexof(PathT,"lualatex")>0) ,
- //16.11.23,12.16
- if(indexof(PathT,"pdflatex")>0,
- println(SCEOUTPUT,"\usepackage[pdftex]{pict2e}");//16.11.24
- ,
- println(SCEOUTPUT,"\usepackage{pict2e}");//16.12.16
- println(SCEOUTPUT,"\usepackage{luatexja}");//16.12.18
- );
- tmp=replace(Dirhead,"\","/"); //17.10.30from
- tmp=replace(tmp,"scripts","tex/latex");
- if(isexists(tmp,""),
- println(SCEOUTPUT,"\usepackage{ketpic2e,ketlayer2e}");
- ,
- tmp=replace(Dirhead+"/ketpicstyle","\","/");
- println(SCEOUTPUT,"\usepackage{"+tmp+"/ketpic2e}");
- println(SCEOUTPUT,"\usepackage{"+tmp+"/ketlayer2e}");
- );
- ,
- tmp=replace(Dirhead,"\","/");
- tmp=replace(tmp,"scripts","tex/latex");
- if(isexists(tmp,""),
- println(SCEOUTPUT,"\usepackage{ketpic,ketlayer}");
- ,
- tmp=replace(Dirhead+"/ketpicstyle","\","/");
- println(SCEOUTPUT,"\usepackage{"+tmp+"/ketpic}");
- println(SCEOUTPUT,"\usepackage{"+tmp+"/ketlayer}");
- );
- );//17.10.30until
- println(SCEOUTPUT,"\usepackage{amsmath,amssymb}");
- println(SCEOUTPUT,"\usepackage{graphicx}");
- println(SCEOUTPUT,"\usepackage{color}");
- forall(ADDPACK, // 16.05.16from
- println(SCEOUTPUT,"\usepackage"+#); //17.05.25
- );// 16.05.16until
- println(SCEOUTPUT,"");
-// println(SCEOUTPUT,"\def\ketcindy{{K\kern-.20em%"); // deleted 16.11.27,recovered11.29 redeleted17.04.07
-// println(SCEOUTPUT,"\lower.5ex\hbox{E}\kern-.125em{TCindy}}}");
-// println(SCEOUTPUT,"");
- println(SCEOUTPUT,"\setmargin{20}{20}{20}{20}");
- println(SCEOUTPUT,"");
- println(SCEOUTPUT,"\begin{document}");
- println(SCEOUTPUT,"");
- println(SCEOUTPUT,"\verb|"+Fhead+"| by \ketcindy");// 16.01.12, 18, 16.04.08
-// println(SCEOUTPUT,"\verb|"+Fhead+"| by KeTCindy");// 16.11.29 temporarily
- println(SCEOUTPUT,"\vspace{5mm}");
- println(SCEOUTPUT,"");
- println(SCEOUTPUT,"\input{"+Fhead+".tex}");
- println(SCEOUTPUT,"");
- println(SCEOUTPUT,"\end{document}");
- closefile(SCEOUTPUT);
- if(iswindows(),
- kc():=(
- println("kc : "+kc(Dirwork+Batparent,Dirlib,Fnametex)); // 16.06.04
- );
- Makebat(texfile);
- ,
- kc():=(
- println("kc : "+kc(Dirwork+Shellparent,Mackc+Dirlib,Fnametex)); // 16.06.04
- );
- Makeshell(texfile);
- );
- WritetoRS(2); //17.09.19
-);
-
-Viewparent():=( //17.04.13
- if(!isexists(Dirwork,Texparent+".tex"),
- if(isstring(Texparent),
- drawtext(mouse().xy,Texparent+".tex not exist",
- size->24,color->[1,0,0]);
- ,
- drawtext(mouse().xy,"Texparent not defined",
- size->24,color->[1,0,0]);
- );
- ,
- if(iswindows(),
- Makebat();
- ,
- Makeshell();
- );
- WritetoRS(2); //17.09.29
- kc();
- );
-);
-
-Makecmdlist(libname):=(
-//help:Makecmdlist("ketcindylib");
- regional(cmdall,cmd,flg,tmp,tmp1,tmp2,out);
- setdirectory(Dirlib);
- tmp=load(libname+".cs");
- cmdall=tokenize(tmp,":=");
- out=[];
- forall(cmdall,cmd,
- tmp=max([0,length(cmd)-50]);
- tmp1=";"+substring(cmd,tmp,length(cmd));
- flg=0;
- forall(reverse(1..length(tmp1)),
- if(flg==0,
- if(substring(tmp1,#-1,#)==";",
- tmp=substring(tmp1,#,length(tmp1));
- tmp2=substring(tmp,0,1);
- if(length(tmp)>0,
- if(!contains([" ","/"],tmp2),
- out=append(out,tmp);
- flg=1;
- );
- );
- );
- );
- );
- );
- setdirectory(Dirwork);
- tmp=length(out)-1;
- out=out_(2..tmp);
- out=sort(out);
-);
-
-Savecmdlist(cmdlist,cmdfile):=(
- SCEOUTPUT=openfile(cmdfile+".cs");
- forall(cmdlist,
- println(SCEOUTPUT,#);
- );
- closefile(SCEOUTPUT);
-);
-
-Quicksort(seq):=(
- regional(pivot,left,right,out);
- if(length(seq)<2,
- out=seq;
- ,
- pivot = max(seq_1,seq_2);
- left = [];
- right = [];
- forall(seq,
- if(#< pivot,
- left=append(left,#);
- ,
- right=append(right,#);
- );
- );
- left = Quicksort(left);
- right = Quicksort(right);
- out=concat(left,right);
- );
- out;
-);
-
-Lessstr(st1,st2):=(
- regional(tmp,tmp1,tmp2,out);
- tmp=min(length(st1),length(st2));
- flg=0;
- forall(1..tmp,
- if(flg==0,
- tmp1=substring(st1,#-1,#);
- tmp2=substring(st2,#-1,#);
- if(tmp1<tmp2,
- out=(1<2);
- flg=1;
- ,
- if(tmp1>tmp2,
- out=(1>2);
- flg=1;
- );
- );
- );
- );
- if(flg==0,
- if(length(st1)<length(str2),
- out=(1<2);
- ,
- out=(1>2);
- );
- );
- out;
-);
-
-Figpdf():=Figpdf(Texparent,[]);
-Figpdf(Arg1):=(
- if(isstring(Arg1),
- Figpdf(Arg1,[]);
- ,
- Figpdf(Texparent,Arg1);
- );
-);
-Figpdf(fnameorg,optionorg):=(
-//help:Figpdf();
-//help:Figpdf([10,,10,,[0,2] ]);(margin(4),move)
-//help:Figpdf([[0,0]]);(move)
-//help:Figpdf(options=[5,5,5,5,[0,0]]]);
- regional(options,fname,mar,pos,dp,sc,tmp,tmp1,tmp2,sep);
- fname=fnameorg;
- if(indexof(fnameorg,".")==0,
- fname=fnameorg+".tex";
- );
- tmp=apply(optionorg,if(isstring(#),parse("["+#+"]"),#)); // 16.04.07
- tmp=select(tmp,#!=[]);
- options=optionorg;//16.11.08from
-// mar=[5,5,5,5];
- dp=[0,-3];
- tmp=select(options,islist(#));
- if(length(tmp)>0,
- dp=tmp_1;
- options=remove(options,tmp);
- );
- tmp=4-length(options);
- tmp1=apply(1..tmp,5);
- mar=concat(options,tmp1);
- mar=apply(mar,if(length(#)==0,5,#));//16.11.08until
- pos=[mar_1+dp_1,mar_3+dp_2];
- sc=10;
- tmp=indexof(ULEN,"cm");
- if(tmp>0,
- tmp1=Removespace(substring(ULEN,0,tmp-1));
- sc=parse(tmp1)*10;
- );
- tmp=indexof(ULEN,"mm");
- if(tmp>0,
- tmp1=Removespace(substring(ULEN,0,tmp-1));
- sc=parse(tmp1);
- );
- tmp="\documentclass{article}"; // 16.06.09from
- if(indexof(PathT,"platex")>0,
- tmp=replace(tmp,"article","jarticle");
- if(indexof(PathT,"uplatex")>0, //17.08.13from
- tmp=replace(tmp,"jarticle","ujarticle");
- );//17.08.13until
- );
- FigPdfList=append(FigPdfList,tmp); // 16.06.09until
- tmp1="\special{papersize=W mm,H mm}";
- tmp=(XMAX-XMIN)*sc+(mar_1+mar_2);
- tmp1=replace(tmp1,"W",text(tmp));
- tmp=(YMAX-YMIN)*sc+(mar_3+mar_4);
- tmp1=replace(tmp1,"H",text(tmp));
-// if(iswindows(),sep="\",sep="/");//17.04.08
-// sep="/";
- FigPdfList=append(FigPdfList,tmp1);
- if(indexof(PathT,"pdflatex")+indexof(PathT,"lualatex")>0, //17.11.05from
- FigPdfList=append(FigPdfList,
- "\usepackage{pict2e}");
- tmp=replace(Dirhead,"\","/");
- tmp=replace(tmp,"scripts","tex/latex");
- if(isexists(tmp,""),
- FigPdfList=append(FigPdfList,
- "\usepackage{ketpic2e,ketlayer2e}");
- ,
- tmp=replace(Dirhead+"/ketpicstyle","\","/");
- FigPdfList=concat(FigPdfList,
- ["\usepackage{"+tmp+"/ketpic2e}",
- "\usepackage{"+tmp+"/ketlayer2e}"]);
- );
- ,
- tmp=replace(Dirhead,"\","/");
- tmp=replace(tmp,"scripts","tex/latex");
- if(isexists(tmp,""),
- FigPdfList=append(FigPdfList,
- "\usepackage{ketpic,ketlayer}");
- ,
- tmp=replace(Dirhead+"/ketpicstyle","\","/");
- FigPdfList=concat(FigPdfList,
- ["\usepackage{"+tmp+"/ketpic}",
- "\usepackage{"+tmp+"/ketlayer}"]);
- );
- );//17.11.05until
- FigPdfList=append(FigPdfList,
- "\usepackage{amsmath,amssymb}");
- FigPdfList=append(FigPdfList,
- "\usepackage{graphicx,color}");
- forall(ADDPACK, // 16.05.16from
- tmp1="\usepackage"+#; //17.07.10
- FigPdfList=append(FigPdfList,tmp1); // 16.09.05until
- );
- FigPdfList=append(FigPdfList,"");
- FigPdfList=append(FigPdfList,
- "\setmargin{0}{0}{0}{0}");
- FigPdfList=append(FigPdfList,"");
- FigPdfList=append(FigPdfList,"\begin{document}");
- FigPdfList=append(FigPdfList,"");
- FigPdfList=append(FigPdfList,
- "\begin{layer}{50}{0}");
- tmp1="\putnotese{X}{Y}{\input{";
- tmp1=replace(tmp1,"X",text(pos_1));
- tmp1=replace(tmp1,"Y",text(pos_2));
- FigPdfList=append(FigPdfList,tmp1+Fhead+".tex}}");
- FigPdfList=append(FigPdfList,"");
- FigPdfList=append(FigPdfList,"\end{layer}");
- FigPdfList=append(FigPdfList,"");
- FigPdfList=append(FigPdfList,"\end{document}");
- if(fnameorg!=Texparent,
- SCEOUTPUT=openfile(fname);
- forall(FigPdfList,println(SCEOUTPUT,#));
- closefile(SCEOUTPUT);
- );
- FigPdfList;
-);
-
-Makehelplist(libname):=(
- regional(cmdall,cmd,flg,lev,tmp,tmp1,out);
- tmp=load(libname);
- cmdall=tokenize(tmp,"//help:");
- cmdall=select(cmdall,substring(#,1,3)!=");");
- flg=0;
- forall(1..3,
- if(flg==0,
- if(substring(cmdall_#,0,7)=="start()",
- cmdall=cmdall_((#+1)..length(cmdall));
- flg=1;
- );
- );
- );
- flg=0;
- tmp=length(cmdall);
- forall(0..2,
- if(flg==0,
- if(substring(cmdall_(tmp-#),0,5)=="end()",
- cmdall=cmdall_(1..(tmp-#-1));
- flg=1;
- );
- );
- );
- out=[];
- forall(cmdall,cmd,
- tmp1=indexof(cmd,"(");
- lev=1;
- flg=0;
- forall((tmp1+1)..length(cmd),
- if(flg==0,
- tmp=substring(cmd,#-1,#);
- if(tmp=="(",lev=lev+1);
- if(tmp==")",
- lev=lev-1;
- if(lev==0,
- flg=1;
- out=append(out,substring(cmd,0,#)+";");
- );
- );
- );
- );
- );
- sort(out);
-);
-
-Helplist():=Helplist(Dirlib,["+","+3d"],"helpJ");
-// 15.05.22
-Helplist(Arg):=(
- if(islist(Arg),
- Helplist(Dirlib,Arg,"helpJ"); // 15.06.20
- ,
- if(indexof(Arg,"help")>0,
- Helplist(Dirlib,["+","+3d"],Arg);
- ,
- Helplist(Arg,["+","+3d"],"helpJ");
- );
- );
-);
-Helplist(Arg1,Arg2):=(
- if(islist(Arg1),
- Helplist(Dirlib,Arg1,Arg2);
- ,
- if(indexof(Arg2,"help")>0,
- Helplist(Dirlib,Arg1,Arg2);
- ,
- Helplist(Arg,["+","+3d"],Arg2);
- );
- );
-);
-Helplist(dir,files,help):=(
-//help:Helplist();
-//help:Helplist("helpE");
- regional(ketfiles,tmp,tmp1,tmp2);
- setdirectory(dir);
- if(contains(files,"+"),
- tmp=remove(files,["+"]);
- ketfiles=concat(["+basic1","+basic2","+out"],tmp);
- ,
- ketfiles=files;
- );
- ketfiles=apply(ketfiles,replace(#,"+","ketcindylib"));
- ketfiles=apply(ketfiles,#+"r.cs"); // 15.11.05 from
- tmp=apply(files,replace(#,"+","ketcindylib"));
-// tmp=apply(files,replace(#,"r.cs",""));
-// tmp=remove(tmp,["ketcindylibout"]);
-// tmp=apply(tmp,replace(#,"basic",""));
- tmp=apply(tmp,#+help+".txt");
- ketfiles=concat(ketfiles,tmp);// 15.11.05 until
- tmp1=[];
- forall(ketfiles,
- tmp=Makehelplist(#);
- tmp1=concat(tmp1,tmp);
- );
- if(!islist(HLIST), // 16.12.31from
- HLIST=sort(tmp1);
- ,
- HLIST=sort(concat(HLIST,tmp1));
- ); // 16.12.31until
- setdirectory(Dirwork);
-);
-
-
-Help():=(
- forall(HLIST,
- println(#);
- );
-);
-Help(strorg):=(
-//help:Help("Plot");
-//help:Help("*");
- regional(str,sel,tmp,tmp1,tmp2,flg,Endflg);
- if(length(HLIST)>0,flg=0,flg=-1);
- str=replace(strorg,"'",Dq); // 15.11.25
- if(length(str)==0,
- forall(HLIST,
- if(indexof(#,"*")>0,
- println(#);
- );
- flg=1;
- );
- ,
- if(str=="*",
- sel=HLIST;
- ,
- sel=select(HLIST,substring(#,0,length(str))==str);
- );
- if(length(sel)>0,flg=1);
- forall(sel,
- tmp=indexof(#,"(");
- if(substring(#,tmp-2,tmp-1)!="*",
- println(#);
- ,
-// println(substring(#,0,tmp-1));
- tmp1=substring(#,tmp,length(#)-2);
- tmp2=indexof(tmp1,"//");
- Endflg=0;
- forall(1..4,
- if(Endflg==0,
- tmp2=indexof(tmp1,"//");
- if(tmp2==0,
- println(" "+tmp1);
- Endflg=1;
- ,
- println(" "+substring(tmp1,0,tmp2-1));
- tmp1=substring(tmp1,tmp2+1,length(tmp1));
- );
- );
- );
- );
- );
- );
- if(flg==-1,println(" Help not read in"));
- if(flg==0,println(" no example"));
-);
-
-Helpkey(str):=(
- regional(tmp,tmp1,tmp2);
- tmp1=select(HLIST,indexof(#,str)>0);
- forall(tmp1,
- tmp=substring(#,0,indexof(#,"*")-1);
- Help(tmp);
- );
-);
-Helpkey(str1,str2):=(
-//help:Helpkey(keyword);
-//help:Helpkey(keyword1,keyword2);
- regional(tmp,tmp1,tmp2);
- tmp1=select(HLIST,indexof(#,str1)>0);
- tmp1=select(tmp1,indexof(#,str2)>0);
- forall(tmp1,
- tmp=substring(#,0,indexof(#,"*")-1);
- Help(tmp);
- );
-);
-
-Slidework():=Slidework(Dirwork); // 16.06.10
-Slidework(dirorg):=(
-//help:Slidework(directory);
- regional(dir,tmp); // 16.06.25
- dir=replace(dirorg,unicode("000a"),""); // 16.06.25
- dir=replace(dir,"/",pathsep());//17.11.20from
- dir=replace(dir,"\",pathsep());
- tmp=length(dir);
- if(substring(dir,tmp-1,tmp)==pathsep(),
- dir=substring(dir,0,tmp-1);
- );//17.11.20until
- if(isexists(dir,""), // 16.12.20
- Changework(dir);
- println(makedir(dir,"fig"));//17.11.23
- tmp=dir+pathsep()+"fig"; //17.04.16from
- Changework(tmp);// 17.02.19until
- ,
- println(dir+ " not exists");
- );
-);
-
-Setslidepage():=( // 17.03.05
- regional(tmp1,tmp2,tmp3);
- tmp1=["letterc","boxc","framec","shadowc","xpos","size"];
- tmp2=apply([1,2,4,5,7,8],SlideColorList_#);
- tmp3=apply(1..(length(tmp1)),tmp1_#+"="+tmp2_#);
- println(tmp3);
-);
-Setslidepage(list):=( // 16.12.22
-//help:Setslidepage([letterc,boxc,framec,shadowc,xpos,size]);
- regional(numlist,tmp,tmp1,letterc,boxc,shadowc,mboxc);
- letterc=[0.98,0.13,0,0.43]; boxc=[0,0.32,0.52,0];
- shadowc=[0,0,0,0.5]; mboxc="yellow";
- if(!islist(SlideColorList),
- SlideColorList=[letterc,boxc,boxc,boxc,shadowc,shadowc,6,1.3,
- letterc,mboxc,mboxc,mboxc,62,2,letterc];
- );
- numlist=[1,2,4,5,7,8];
- forall(1..(length(list)),
- if(length(list_#)>0,
- tmp=numlist_#;
- SlideColorList_tmp=list_#;
- );
- );
- SlideColorList_3=SlideColorList_2;
- SlideColorList_6=SlideColorList_5;
-);
-
-Setslidemain():=( // 17.03.05
- regional(tmp1,tmp2,tmp3);
- tmp1=["letterc","boxc","framec","xpos","size"];
- tmp2=apply([9,10,12,13,14],SlideColorList_#);
- tmp3=apply(1..(length(tmp1)),tmp1_#+"="+tmp2_#);
- println(tmp3);
-);
-Setslidemain(list):=( // 16.12.22
-//help:Setslidemain([letterc,boxc,framec,xpos,size]);
- regional(numlist,tmp,tmp1,letterc,boxc,shadowc,mboxc);
- letterc=[0.98,0.13,0,0.43]; boxc=[0,0.32,0.52,0];
- shadowc=[0,0,0,0.5]; mboxc="yellow";
- if(!islist(SlideColorList),
- SlideColorList=[letterc,boxc,boxc,boxc,shadowc,shadowc,6,1.3,
- letterc,mboxc,mboxc,mboxc,62,2,letterc];
- );
- numlist=[9,10,12,13,14];
- forall(1..(length(list)),
- if(length(list_#)>0, //17.01.04
- tmp=numlist_#;
- SlideColorList_tmp=list_#;
- );
- );
- SlideColorList_11=SlideColorList_10;
-);
-
-Setslidebody():=( // 17.03.05
- regional(tmp1,tmp2,tmp3);
- tmp1=["letterc","style","thindense"];
- tmp2=[SlideColorList_(15),BodyStyle,ThinDense];
- tmp3=apply(1..(length(tmp1)),tmp1_#+"="+tmp2_#);
- println(tmp3);
-);
-Setslidebody(str):=(
- regional(clr,style,thin);
- if(isstring(str),
- Setslidebody(str,"\Large\bf\boldmath",0.1);
- ,
- if(length(str)==1,Setslidebody(str_1));
- if(length(str)==2,Setslidebody(str_1,str_2));
- if(length(str)==3,Setslidebody(str_1,str_2,str_3));
- );
-);
-Setslidebody(str,Arg):=( //17.01.08
- if(isstring(Arg),
- Setslidebody(str,Arg,0.1);
- ,
- Setslidebody(str,"\Large\bf\boldmath",Arg);
- );
-);
-Setslidebody(str,style,density):=( // 16.12.22,17.01.06,01.08
-//help:Setslidebody(["black",,0]);
-//help:Setslidebody(["blue","\Large\bf\boldmath",0.1]);
- regional(numlist,tmp,tmp1,letterc,boxc,shadowc,mboxc);
- letterc=[0.98,0.13,0,0.43]; boxc=[0,0.32,0.52,0];
- shadowc=[0,0,0,0.5]; mboxc="yellow";
- if(!islist(SlideColorList),
- SlideColorList=[letterc,boxc,boxc,boxc,shadowc,shadowc,6,1.3,
- letterc,mboxc,mboxc,mboxc,62,2,letterc];
- );
- if(length(str)>0,SlideColorList_(15)=str);
- if(length(style)>0,BodyStyle=style);
- ThinDense=density;//17.01.08
-);
-
-Setslidehyper():=( 17.12.16from
- Setslidehyper(["cl=true,lc=blue,fc=blue",125,70,1]);
-);
-Setslidehyper(Arg):=(
- if(isstring(Arg),
- Setslidehyper(Arg,["cl=true,lc=blue,fc=blue",125,70,1]);
- ,
- Setslidehyper("",Arg);
- );
-);
-Setslidehyper(driverorg,options):=(
-//help:Setslidehyper();
-//help:Setslidehyper("dvipdfmx",["cl=true,lc=blue,fc=blue","Pos=[125,70]","Size=1"]);
- regional(driver,eqL,reL,stL,,str,tmp,tmp1,tmp2);
- driver=driverorg;
- if(length(driver)==0,
- if(indexof(PathT,"pdflatex")+indexof(PathT,"lualatex")==0,
- driver="dvipdfmx";
- );
- );
- tmp=Divoptions(options);
- eqL=tmp_5;
- reL=tmp_6;
- stL=tmp_7;
- if(length(stL)>0,
- str=stL_1;
- ,
- str="";
- );
- if(length(str)==0,
- str="cl=true,lc=blue,fc=blue";
- );
- if(length(driver)==0,
- tmp1="["+str+"]";
- ,
- tmp1="["+driver+","+str+"]";
- );
- tmp1=replace(tmp1,"cl=","colorlinks=");
- tmp1=replace(tmp1,"lc=","linkcolor=");
- tmp1=replace(tmp1,"fc=","filecolor=");
- tmp1=replace(tmp1,"uc=","urlcolor=");
- ADDPACK=select(ADDPACK,indexof(#,"hyperref")==0);
- Addpackage(tmp1+"{hyperref}");
- LinkPosH=125;
- LinkPosV=70;
- LinkSize=1;
- if(length(reL)>0,
- LinkPosH=reL_1;
- if(length(reL)>1,LinkPosV=reL_2);
- if(length(reL)>2,LinkSize=max(reL_3,0.1));
- );
- forall(eqL,
- tmp=indexof(#,"=");
- tmp1=Toupper(substring(#,0,1));
- tmp2=substring(#,tmp,length(#));
- tmp2=parse(tmp2);
- if(tmp1=="P",
- LinkPosH=tmp2_1;
- LinkPosV=tmp2_2;
- );
- if(tmp1=="S",
- LinkSize=max(tmp2,0.1);
- );
- );
-); //17.12.16until
-
-Settitle(cmdL):=Settitle(cmdL,[]); // 180330changed
-Settitle(cmdL,options):=(
-//help:Settitle(cmdL);
-//help:Settitle(name,cmdL);
-//help:Settitle(options=["Title=slide0","Layery=0","Color=blue"]);
- regional(tmp,tmp1,tmp2,eqL,layery,color,size,font);
- TitleName="slide0"; //180330
- layery="0";
- color="blue";
- size="\Large";
- font="\bf";
- tmp=Divoptions(options);
- eqL=tmp_5;
- forall(eqL,
- tmp1=Toupper(substring(#,0,1));
- tmp=indexof(#,"=");
- tmp2=substring(#,tmp,length(#));
- if(tmp1=="L",
- layery=tmp2;
- );
- if(tmp1=="C",
- color=tmp2;
- );
- if(tmp1=="S",
- size=tmp2;
- if(substring(size,0,1)!="\",size="\"+size);
- );
- if(tmp1=="F",
- font=tmp2;
- if(substring(font,0,1)!="\",font="\"+font);
- );
- if(tmp1=="T", //180330
- TitleName=tmp2;
- );
- );
- TitleCmdL=["{"+size+font];
- if(indexof(color,"[")>0,
- tmp=replace(color,"[","{");
- tmp=replace(tmp,"]","}");
- tmp1=Indexall(tmp,",");
- if(length(tmp1)>=3,
- tmp="\color[cmyk]"+tmp;
- ,
- tmp="\color[rgb]"+tmp;
- );
- ,
- tmp="\color{"+color+"}";
- );
- TitleCmdL=append(TitleCmdL,tmp);
- TitleCmdL=concat(TitleCmdL,["","\begin{layer}{120}{"+layery+"}"]);
- forall(1..(length(cmdL)),
- tmp=cmdL_#;
- if(length(tmp)>0,
- if(#==1,
- tmp="{\Huge \putnote"+tmp+"}"
- ,
- tmp="\putnote"+tmp;
- );
- TitleCmdL=append(TitleCmdL,tmp);
- );
- );
- TitleCmdL=concat(TitleCmdL,["\end{layer}","","}"]);
-);
-
-Maketitle():=(
- if(!isstring(TitleName), //17.04.13from
- drawtext(mouse().xy,"Settitle not defined",
- size->24,color->[1,0,0]);
- , //17.04.13until
- Maketitle(TitleName);
- );
-);
-Maketitle(name):=(
-//help:Maketitle();
- regional(texfile,texmain,tmp,tmp1,sep);
- texfile=name;
- texmain=name+"main";
- SCEOUTPUT=openfile(texfile+".tex");
- forall(TitleCmdL,
- println(SCEOUTPUT,#);
- );
- closefile(SCEOUTPUT);
- SCEOUTPUT=openfile(texmain+".tex");
- tmp="\documentclass[landscape,10pt]{article}";
- if(indexof(PathT,"platex")>0,
- tmp=replace(tmp,"article","jarticle");
- if(indexof(PathT,"uplatex")>0, //17.08.13from
- tmp=replace(tmp,"jarticle","ujarticle");
- );//17.08.13until
- );
- println(SCEOUTPUT,tmp);
- tmp="\special{papersize=\the\paperwidth,\the\paperheight}";
- println(SCEOUTPUT,tmp);
- tmp=replace(Dirhead,"\","/");//17.11.01from
- tmp=replace(tmp,"scripts","tex/latex");
- if(isexists(tmp,""),
- println(SCEOUTPUT,"\usepackage{ketpic,ketlayer,ketslide}");
- ,
- tmp=replace(Dirhead+"/ketpicstyle","\","/");
- println(SCEOUTPUT,"\usepackage{"+tmp+"/ketpic}");
- println(SCEOUTPUT,"\usepackage{"+tmp+"/ketlayer}");
- println(SCEOUTPUT,"\usepackage{"+tmp+"/ketslide}");
- );//17.11.01until
- println(SCEOUTPUT,"\usepackage{amsmath,amssymb}");
- println(SCEOUTPUT,"\usepackage{bm,enumerate}");
- if((indexof(PathT,"pdflatex")>0)%(indexof(PathT,"lualatex")>0),
- println(SCEOUTPUT,"\usepackage{graphicx}");
- ,
- println(SCEOUTPUT,"\usepackage[dvipdfmx]{graphicx}");
- );
- println(SCEOUTPUT,"\usepackage[usenames]{xcolor}");
- forall(ADDPACK,
-// if(indexof(#,"[")==0,
-// println(SCEOUTPUT,"\usepackage{"+#+"}");
-// ,
- println(SCEOUTPUT,"\usepackage"+#); // 17.07.10
-// );
- );
- if(indexof(PathT,"platex")>0,tmp="\ketmarginJ",tmp="\ketmarginE");
- println(SCEOUTPUT,tmp);
- println(SCEOUTPUT,"\ketslideinit");
- println(SCEOUTPUT,"");
- println(SCEOUTPUT,"\begin{document}");
- println(SCEOUTPUT,"");
- println(SCEOUTPUT,"\input{"+texfile+".tex}");
- println(SCEOUTPUT,"");
- println(SCEOUTPUT,"\end{document}");
- closefile(SCEOUTPUT);
- if(iswindows(),
- Makebat(texmain,"tv");
- ,
- Makeshell(texmain,"tv");
- );
- kc();
-);
-
-Repeatsameslide(repeatflg,sestr,addedL):=(
- regional(seL,flg1,ss,nn,nrep,tmp,tmp1,tmp2,tmp3,str,j,k);
- // global RepeatList, SCEOUTPUT
- nrep=length(RepeatList);
- flg1=0;
- forall(addedL,ss,
- if(repeatflg==0,
- if(substring(ss,0,1)!="%", //16.01.04
- println(SCEOUTPUT,ss);
- );//16.01.04
- ,
- forall(1..nrep,nn,
- if(sestr=="",
- RepeatList_nn=append(RepeatList_nn,ss);
- );
- );
- if(sestr=="",
- seL=[1];
- ,
- tmp1=substring(sestr,1,length(sestr)-1);
- tmp1=replace(tmp1,",-",".."+text(nrep));
- tmp1=replace(tmp1,"-,","1..");
- tmp1="["+tmp1+"]"; //17.01.03
- seL=flatten(parse(tmp1)); //17.01.03
- );
- if(contains(seL,1),
- if(substring(ss,0,1)!="%", //16.01.04
- println(SCEOUTPUT,ss);
- );
- seL=remove(seL,[1]);
- flg1=1;
- );
- forall(1..(length(seL)),nn,
- tmp=seL_nn;
- if(tmp<=length(RepeatList), //17.01.12from
- RepeatList_tmp=append( RepeatList_tmp,ss);
- ,
- println(" "+sestr+" : "+text(tmp)+" > "+text(length(RepeatList)));
- );
- );
- if(ThinFlg==1,//16.01.05from
- if(flg1==1,seL=append(seL,1));
- seL=remove(1..nrep,seL);
- str=ss; // 17.05.28from
- repeat(10,
- tmp1=Indexall(str,"{\color");
- if(length(tmp1)>0,
- tmp2=Indexall(str,"}");
- tmp=select(tmp2,tmp1_1<#);
- tmp=substring(str,tmp1_1,tmp_1);
- str=replace(str,tmp+" ","");
- str=replace(str,tmp,"");
- );
- );//17.05.28until
- if(contains(seL,1),
- if(substring(str,0,1)!="%",
- if(NonThinFlg==0,
- if(!contains(["\begi","\end{"],substring(str,0,5)),//17.01.15
- println(SCEOUTPUT,"{\color[cmyk]{\thin,\thin,\thin,\thin}");//17.08.23
- println(SCEOUTPUT,str);
- println(SCEOUTPUT,"}%");
- ,
- println(SCEOUTPUT,str);
- );
- );
- if(NonThinFlg==1,
- if(!contains(["\begi","\end{"],substring(str,0,5)),//17.01.15
- println(SCEOUTPUT,"{\color[cmyk]{\thin,\thin,\thin,\thin}");//17.08.23
- );
- println(SCEOUTPUT,str);
- );
- if(NonThinFlg==2,
- println(SCEOUTPUT,str);
- if(!contains(["\begi","\end{"],substring(str,0,5)),//17.01.15
- println(SCEOUTPUT,"}%");
- );
- );
- seL=remove(seL,[1]);
- );
- );
- if(substring(ss,0,1)!="%", //16.01.04
- forall(1..(length(seL)),nn,
- tmp=seL_nn;
- if(NonThinFlg==0,
- tmp1="{\color[cmyk]{\thin,\thin,\thin,\thin}";//17.08.23
- tmp1=[tmp1,str,"}%"];
- );
- if(NonThinFlg==1,
- tmp1="{\color[cmyk]{\thin,\thin,\thin,\thin}";//17.08.23
- tmp1=[tmp1,str];//17.01.08until
- );
- if(NonThinFlg==2,
- tmp1=[str,"}%"];
- );
- RepeatList_tmp=concat( RepeatList_tmp,tmp1);
- );
- );
- );//16.01.05until
- );
- );//16.12.05until
-);
-
-Presentation(texfile):=Presentation(texfile,texfile);
-Presentation(texfile,txtfile):=(
-//help:Presentation(texfile,txtfile);
- regional(file,flgL,flg,verbflg,slideL,ns,slideorgL,wall,sld,slidecmd,tmp,tmp0,tmp1,
- tmp2,tmp3,tmp4,tmp5,newoption,top,repeatflg,nrep,nrepprev,,repstr,
- sestr,npara,paradt,parafiles,hyperflg,paractr,
- letterc,boxc,shadowc,mboxc,sep);
- slidecmd=["\ketcletter","\ketcbox","\ketdbox","\ketcframe",
- "\ketcshadow","\ketdshadow","\slidetitlex","\slidetitlesize",
- "\mketcletter","\mketcbox","\mketdbox","\mketcframe",
- "\mslidetitlex","\mslidetitlesize"];
- if(!isstring(BodyStyle),//17.01.06
- BodyStyle="\Large\bf\boldmath";
- );
- repeatflg=0;
- RepeatList=[];
- paractr=0; //16.12.31
- if(indexof(texfile,".")==0,file=texfile+".tex",file=texfile);
- if(indexof(txtfile,".")==0,tmp1=txtfile+".txt",tmp1=txtfile);
- tmp=load(tmp1);
- tmp=replace(tmp,"////","||||");// 16.05.11, 06.24(reactivated)
- slideL=tokenize(tmp,"//");
- slideorgL=slideL; // 16.07.11
- slideL=apply(slideL,Removespace(#));
- tmp=select(1..length(slideL),length(slideL_#)>0); // 16.07.11from
- slideL=apply(tmp,slideL_#);
- slideorgL=apply(tmp,slideorgL_#);
-// slideL=select(slideL,length(#)>0); // 16.07.11until
- flg=0; // 16.06.09from
- forall(1..10,
- if(flg==0,
- if(substring(slideL_1,0,1)!="%",
- flg=1;
- ,
- slideL=slideL_(2..length(slideL));
- slideorgL=slideorgL_(2..length(slideorgL));
- );
- );
- ); // 16.06.09until
- flgL=[];
- SCEOUTPUT = openfile(file);
- tmp=tokenize(slideL_1,"::");
- tmp1=tmp_1;
- if(length(tmp)>1,
- tmp2=tmp_2;
- tmp3=tmp_(3..length(tmp));//16.06.25
- ,
- tmp2="";
- tmp3=tmp_(2..length(tmp));//16.06.25
- );
- wall=""; // 16.06.10
- if(length(tmp3)>0,//16.06.25from
- tmp=substring(tmp3_1,0,1);//180330
- if((tmp!="\")&(tmp!="%")&(indexof(tmp3_1,"=")==0), //180330
- wall=tmp3_1;
- tmp3=tmp3_(2..length(tmp3));
- );
- );//16.06.25until
- tmp="%%% "+tmp1+" "+txtfile;// 16.06.09from
- println(SCEOUTPUT,tmp);
- tmp="\documentclass[landscape,10pt]{article}";
- if(indexof(PathT,"platex")>0,
- tmp=replace(tmp,"article","jarticle");
- if(indexof(PathT,"uplatex")>0, //17.08.13from
- tmp=replace(tmp,"jarticle","ujarticle");
- );//17.08.13until
- );
- println(SCEOUTPUT,tmp);// 16.06.09from
- tmp=select(1..(length(tmp3)),indexof(tmp3_#,"\usepackage")>0);//17.06.18from
- forall(tmp,
- println(SCEOUTPUT,tmp3_#);
- );
- tmp=remove(1..(length(tmp3)),tmp);
- tmp3=tmp3_tmp;//17.06.18until
-// if(iswindows(),sep="\",sep="/"); // 17.04.08
-// sep="/";
- if((indexof(PathT,"pdflatex")>0)%(indexof(PathT,"lualatex")>0),
- if(indexof(PathT,"lualatex")>0,
- println(SCEOUTPUT,"\usepackage{luatexja}");
- );
- println(SCEOUTPUT,"\usepackage{pict2e}");
- println(SCEOUTPUT,"\usepackage{ketpic2e,ketlayer2e}");// 17.04.08from
- ,
- println(SCEOUTPUT,"\special{papersize=\the\paperwidth,\the\paperheight}");
- );// 17.04.08until
- tmp=replace(Dirhead,"\","/");//17.11.01from
- tmp=replace(tmp,"scripts","tex/latex");
- if(isexists(tmp,""),
- println(SCEOUTPUT,"\usepackage{ketpic,ketlayer}");
- ,
- tmp=replace(Dirhead+"/ketpicstyle","\","/");
- println(SCEOUTPUT,"\usepackage{"+tmp+"/ketpic}");
- println(SCEOUTPUT,"\usepackage{"+tmp+"/ketlayer}");
- );
- if(length(wall)==0,
- tmp=replace(Dirhead,"\","/");//17.11.01from
- tmp=replace(tmp,"scripts","tex/latex");
- if(isexists(tmp,""),
- println(SCEOUTPUT,"\usepackage{ketslide}");
- ,
- tmp=replace(Dirhead+"/ketpicstyle","\","/");
- println(SCEOUTPUT,"\usepackage{"+tmp+"/ketslide}");
- );
- ,
- tmp=replace(Dirhead,"\","/");
- tmp=replace(tmp,"scripts","tex/latex");
- if(isexists(tmp,""),
- println(SCEOUTPUT,"\usepackage{ketslide2}");
- ,
- tmp=replace(Dirhead+"/ketpicstyle","\","/");
- println(SCEOUTPUT,"\usepackage{"+tmp+"/ketslide2}");
- );
- );//17.04.08until
- println(SCEOUTPUT,"\usepackage{amsmath,amssymb}");
- println(SCEOUTPUT,"\usepackage{bm,enumerate}");
- if((indexof(PathT,"pdflatex")>0)%(indexof(PathT,"lualatex")>0),
- println(SCEOUTPUT,"\usepackage{graphicx}");
- ,
- println(SCEOUTPUT,"\usepackage[dvipdfmx]{graphicx}");
- );
-// println(SCEOUTPUT,"\usepackage[usenames]{color}");
-// println(SCEOUTPUT,"\usepackage{color}");//17.06.14
- println(SCEOUTPUT,"\usepackage{xcolor}");//17.07.31
- letterc=[0.98,0.13,0,0.43]; boxc=[0,0.32,0.52,0];
- shadowc=[0,0,0,0.5]; mboxc="yellow";
-// if(!islist(SlideColorList), //17.03.02from
-// SlideColorList=[letterc,boxc,boxc,boxc,shadowc,shadowc,6,1.3,
-// letterc,mboxc,mboxc,mboxc,62,2,letterc];
-// , //17.03.02until
- tmp4="abcdefghijklmno";
- forall(1..15,
- tmp=SlideColorList_#;
- if(islist(tmp),
- tmp=text(tmp);
- tmp=substring(tmp,1,length(tmp)-1);
- if(length(SlideColorList_#)==4,//17.01.07from
- println(SCEOUTPUT,"\definecolor{slidecolor"+tmp4_#+"}{cmyk}{"+tmp+"}");
- );
- if(length(SlideColorList_#)==3,
- println(SCEOUTPUT,"\definecolor{slidecolor"+tmp4_#+"}{rgb}{"+tmp+"}");
- );//17.01.07until
- SlideColorList_#="slidecolor"+tmp4_#;
- );
- );
-// ); //17.03.02
- println(SCEOUTPUT,"\def\setthin#1{\def\thin{#1}}");//17.08.23
- println(SCEOUTPUT,"\setthin{"+text(ThinDense)+"}");//17.08.23
- forall(ADDPACK,// 16.06.09from
-// if(indexof(#,"[")==0, // 16.09.05from
-// println(SCEOUTPUT,"\usepackage{"+#+"}");
-// ,
- println(SCEOUTPUT,"\usepackage"+#); //17.07.10
-// );
- );// 16.06.09until
- tmp=select(ADDPACK,indexof(#,"{hyperref}")>0);//16.12.31from
- if(length(tmp)>0,
- hyperflg=1;
- ,
- hyperflg=0; //16.12.31until
- );
- forall(tmp3,
- println(SCEOUTPUT,#);
- );
- if(indexof(PathT,"platex")>0,tmp="\ketmarginJ",tmp="\ketmarginE"); // 16.06.09
- println(SCEOUTPUT,tmp);
- println(SCEOUTPUT,"\ketslideinit");
- println(SCEOUTPUT,"");
- forall(tmp, // 15.07.21
- if(substring(#,0,1)=="\", println(SCEOUTPUT,#));
- );
- if(!isstring(PageStyle),PageStyle="headings");//17.04.09
- println(SCEOUTPUT,"\pagestyle{"+PageStyle+"}");//17.04.09
- println(SCEOUTPUT,"");
- println(SCEOUTPUT,"\begin{document}");
- println(SCEOUTPUT,"");
- if(length(wall)>0,
- println(SCEOUTPUT,"\input{fig/"+wall+".tex}");
- println(SCEOUTPUT,"");
- );
- if(length(tmp2)>0,
- if(indexof(tmp2," no")==0, // 16.11.11from
- println(SCEOUTPUT,"\begin{layer}{120}{0}");
- if(substring(tmp2,0,1)!="\",
- tmp2="\putnotese{0}{0}{\input{fig/"+tmp2+".tex}}";//16.12.27
- );
- println(SCEOUTPUT,tmp2);
- println(SCEOUTPUT,"\end{layer}");
- println(SCEOUTPUT,"");
- ,
- tmp=indexof(tmp2,"=");
- if(tmp==0,
- top="10mm";
- ,
- top=substring(tmp2,tmp,length(tmp2));
- );
- println(SCEOUTPUT,"");
- println(SCEOUTPUT,"\vspace*{"+top+"}");
- println(SCEOUTPUT,"");
- ); // 16.11.11until
- );
- println(SCEOUTPUT,"\def\mainslidetitley{22}");
- forall(1..14, //16.12.22from
- tmp=SlideColorList_#;
- if(!isstring(tmp),tmp=text(tmp));
- if(length(tmp)>0,
- tmp="\def"+slidecmd_#+"{"+tmp+"}";
- println(SCEOUTPUT,tmp);
- );
- );//16.12.22until
- println(SCEOUTPUT,"");
- println(SCEOUTPUT,"\color{"+SlideColorList_(15)+"}");
- println(SCEOUTPUT,BodyStyle);//17.01.07
- println(SCEOUTPUT,"\thispagestyle{empty}");//17.01.29
- println(SCEOUTPUT,"\addtocounter{page}{-1}");//17.01.29
- println(SCEOUTPUT,"");
- verbflg=0; //16.06.28
- repeatflg=0;//16.12.02
- nrep=0;//16.12.27
- nrepprev=0;//17.01.03
- npara=0;//16.12.27
- forall(2..length(slideL),ns,
- ThinFlg=0;
- NonThinFlg=0;
- flg=0;
- tmp1="";
- tmp2="";
- tmp3="";
- sld=removespace(slideL_ns); // 16.06.28
- sestr="";
- if((substring(sld,0,1)=="%") & (substring(sld,0,2)!="%%"), // 17.06.23
- Repeatsameslide(repeatflg,"",[slideL_ns]);
- if(repeatflg>0,
- tmp=indexof(sld,"]::");
- if(tmp>0,
- if(substring(sld,1,2)!="%",//17.05.31
- if(substring(sld,1,5)=="thin", ThinFlg=1); // 17.05.28
- sestr=substring(sld,1,tmp);
- sld=substring(sld,tmp+2,length(sld));
- tmp=indexof(sestr,"[");
- sestr=substring(sestr,tmp-1,length(sestr));//17.01.05
- );
- );
- );
- if(substring(sld,1,7)=="repeat", // 16.12.09from
- tmp=indexof(sld,"=");
- tmp5=substring(sld,tmp,length(sld));
- tmp=indexof(tmp5,",");
- if(tmp>0,//17.01.03from
- tmp5=substring(tmp5,0,tmp-1);
- );//17.01.03until
- repeatflg=1;
- if(length(tmp5)>0,
- nrep=parse(tmp5);
- tmp=[];
- if(length(wall)>0,
- tmp=["","\input{fig/"+wall+".tex}"];
- );
- tmp=concat(tmp,["","\sameslide"+NewSlideOption,"","\vspace*{18mm}",""]);
- RepeatList=apply(1..nrep,if(#==1,[],tmp));
- );
- if(sestr=="",flg=1);
- tmp=indexof(sld,",");//17.01.03from
- if(tmp>0,
- sld="%"+substring(sld,tmp,length(sld));
- if(indexof(sld,"=")==0,sld=sld+"=");
- );//17.01.03until
- );
- if(substring(sld,1,5)=="para",
- paractr=paractr+1;
- repeatflg=1;
- tmp=indexof(sld,"=");
- tmp=substring(sld,tmp,length(sld));
- if(length(tmp)==0, //17.01.03
- npara=0;
- ,
- paradt=tokenize(tmp,":");
- tmp=fileslist(Dirwork+"/fig/"+paradt_1);
- if(length(tmp)>0,
- parafiles=tokenize(tmp,",");
- if(indexof(paradt_4,"input")>0,
- tmp0=indexof(paradt_4,",");//17.01.29from
- if(tmp0>0,
- paradt=append(paradt,substring(paradt_4,tmp0,length(paradt_4)));
- paradt_4=substring(paradt_4,0,tmp0-1);
- );//17.01.29until
- parafiles=select(parafiles,indexof(#,".tex")>0);
- if(indexof(paradt_4,"\input")==0,paradt_4="\"+paradt_4);//16.12.17
- );
- if(indexof(paradt_4,"include")>0,
- parafiles=select(parafiles,indexof(#,".pdf")>0);
- );
- npara=length(parafiles);
- ,
- println(Dirwork+"/fig/"+paradt_1+" not found");
- parafiles=[];
- npara=0;
- );
- if(nrep==0,
- nrep=npara;
- if(length(wall)>0,
- tmp=["","\input{fig/"+wall+".tex}"];
- );
- tmp=concat(tmp,["","\sameslide"+NewSlideOption,"","\vspace*{18mm}",""]);
- RepeatList=apply(1..nrep,if(#==1,[],tmp));
- );
- );
- forall(1..nrep, //16.12.28
- tmp4=[]; //16.12.31from
- if(hyperflg>0,
- tmp4=["\hypertarget{para"+text(paractr)+"pg"+text(#)+"}{}"];
- );//16.12.31until
- if(npara>0, //17.01.03
- tmp4=concat(tmp4,["","\begin{layer}{120}"+paradt_2]);
- if(#<=npara, //16.12.28from
- tmp=parafiles_#;
- ,
- tmp=parafiles_npara;
- );
- tmp="{"+paradt_4+"{fig/"+paradt_1+"/"+tmp+"}}";
- if(length(paradt)>=5,
- tmp="{\scalebox{"+text(paradt_5)+"}"+tmp+"}";
- );
- if(substring(paradt_3,0,1)=="\",
- tmp=paradt_3+tmp;
- ,
- tmp="\putnote"+paradt_3+tmp;
- );
- tmp4=concat(tmp4,[tmp]);//16.12.31
- ,
- tmp4=concat(tmp4,["","\begin{layer}{120}{0}"]);
- );
- if((hyperflg>0) & (LinkSize>0.15),
- tmp="{"+text(LinkPosV)+"}{\hyperlink{para"; // 17.01.12from
- tmp1=tmp+text(paractr)+"pg";
- tmp2=tmp+text(paractr-1)+"pg"+text(nrepprev);
- if(#>1,tmp=tmp1+text(1),tmp=tmp2);
- tmp3=[text(LinkPosH-29*LinkSize)+"}"+tmp+"}{\fbox{\Ctab{"
- +text(2.5*LinkSize)+"mm}{\scalebox{"+text(LinkSize)
- +"}{\scriptsize $\mathstrut|\!\lhd$}}}}}"];
- if(#>1,tmp=tmp1+text(max(#-3,1)),tmp=tmp2);
- tmp3=append(tmp3,
- text(LinkPosH-24*LinkSize)+"}"+tmp+"}{\fbox{\Ctab{"
- +text(2.5*LinkSize)+"mm}{\scalebox{"+text(LinkSize)
- +"}{\scriptsize $\mathstrut\!\! \lhd\!\!\lhd\!$}}}}}");
- if(#>1,tmp=tmp1+text(#-1),tmp=tmp2);
- tmp3=append(tmp3,
- text(LinkPosH-17*LinkSize)+"}"+tmp+"}{\fbox{\Ctab{"
- +text(4.5*LinkSize)+"mm}{\scalebox{"+text(LinkSize)
- +"}{\scriptsize $\mathstrut\!\!\lhd\!\!$}}}}}");
- tmp="{"+text(LinkPosV)+"}{\hyperlink{para";
- tmp2=tmp+text(paractr+1)+"pg"+text(1);
- if(#<nrep,tmp=tmp1+text(#+1),tmp=tmp2);
- tmp3=append(tmp3,
- text(LinkPosH-10*LinkSize)+"}"+tmp+"}{\fbox{\Ctab{"
- +text(4.5*LinkSize)+"mm}{\scalebox{"+text(LinkSize)
- +"}{\scriptsize $\mathstrut\!\rhd\!$}}}}}");
- if(#<nrep,tmp=tmp1+text(min(#+3,nrep)),tmp=tmp2);
- tmp3=append(tmp3,
- text(LinkPosH-5*LinkSize)+"}"+tmp+"}{\fbox{\Ctab{"
- +text(2.5*LinkSize)+"mm}{\scalebox{"+text(LinkSize)
- +"}{\scriptsize $\mathstrut\!\!\rhd\!\!\rhd\!$}}}}}");
- if(#<nrep,tmp=tmp1+text(nrep),tmp=tmp2);
- tmp3=append(tmp3,
- text(LinkPosH)+"}"+tmp+"}{\fbox{\Ctab{" // 17.01.19
- +text(2.5*LinkSize)+"mm}{\scalebox{"+text(LinkSize)
- +"}{\scriptsize $\mathstrut \!\rhd\!\!|$}}}}}");
- tmp3=apply(tmp3,tmp,"\putnotew{"+tmp);
- tmp4=concat(tmp4,tmp3);// 17.01.12untilr
- tmp="\putnotew{"+text(LinkPosH)+"}{"+text(LinkPosV+6)+"}";//17.10.21from
- tmp=tmp+"{\scriptsize\color{black} "+text(#)+"/"+text(nrep)+"}";
- tmp4=append(tmp4,tmp);//17.10.21until
- );
- tmp4=concat(tmp4,["\end{layer}",""]);//16.12.31until
- Repeatsameslide(repeatflg,text([#]),tmp4);
- );
- );
- );
- if(substring(sld,0,2)=="%%", //17.06.23from
- println(SCEOUTPUT,sld);
- flg=1;
- ); //17.06.23until
- if(flg==0,
- if(indexof(sld,"\begin{verbatim}")==1, // 16.06.28from
- Repeatsameslide(repeatflg,sestr,[slideL_ns]);
- verbflg=1;
- flg=1;
- ); // 16.06.28
- if(indexof(sld,"\end{verbatim}")==1,
- Repeatsameslide(repeatflg,sestr,[slideL_ns]);
- verbflg=0;
- flg=1;
- ); // 16.06.28until
- if(flg==0,
- tmp=replace(sld,"||||","//"); // 16.05.11
- tmp=tokenize(tmp,"::"); // 16.05.11
- tmp1=tmp_1;
- if(length(tmp)>1,tmp2=tmp_2,tmp2="");
- if(length(tmp)>2,tmp3=tmp_3,tmp3="");
- if(length(tmp)>3,tmp4=tmp_4,tmp4="");
- if(length(tmp)>4,tmp5=tmp_5,tmp5="");
- if(contains(["main","new","same"],tmp1),
- if(tmp1=="new", // 16.11.09from
- newoption="";
- if(substring(tmp2,0,1)=="[",newoption=tmp2);
- );
- if(tmp1=="same",
- if(length(tmp2)==0,tmp2=newoption);
- );// 16.11.09until
- println(SCEOUTPUT,"");
- println(SCEOUTPUT,"%%%%%%%%%%%%%%%%%%%%");
- println(SCEOUTPUT,"");
- );
- );
- if(flg==0&tmp1=="main",
- if(repeatflg==1,
- forall(2..(length(RepeatList)),nrep,
- tmp=RepeatList_nrep;
- forall(tmp,
- if(substring(#,0,1)!="%", //16.01.04
- println(SCEOUTPUT,#);
- );
- );
- );
- println(SCEOUTPUT,"");
- repeatflg=0;RepeatList=[];
- nrepprev=nrep;//17.01.03
- nrep=0;//16.12.27
- npara=0;//16.12.27
- );
- if(length(wall)>0,
- println(SCEOUTPUT,"\input{fig/"+wall+".tex}");
- );
- println(SCEOUTPUT,"\mainslide{"+tmp2+"}");
- println(SCEOUTPUT,"");
- tmp2="";
- flg=1;
- );
- if(flg==0&tmp1=="new",
- if(repeatflg==1,
- forall(2..(length(RepeatList)),nrep,
- tmp=RepeatList_nrep;
- forall(tmp,
- if(substring(#,0,1)!="%", //16.01.04
- println(SCEOUTPUT,#);
- );
- );
- );
- println(SCEOUTPUT,"");
- repeatflg=0;RepeatList=[];
- nrepprev=nrep;//17.01.03
- nrep=0;
- npara=0;
- );
- if(length(wall)>0,
- Repeatsameslide(repeatflg,sestr,["\input{fig/"+wall+".tex}"]);
- );
- tmp="\newslide";
- NewSlideOption=""; //17.01.04
- if(substring(tmp2,0,1)=="[",
- NewSlideOption=tmp2; //17.01.04
- tmp=tmp+tmp2;
- tmp2=tmp3;
- tmp3=tmp4;
- tmp4=tmp5;
- );
- tmp=tmp+"{"+tmp2+"}";
- Repeatsameslide(repeatflg,sestr,[tmp,"","\vspace*{18mm}",""]);
- tmp2="";
- flg=1;
- );
- if(flg==0&tmp1=="same",
- if(repeatflg==1,
- forall(2..(length(RepeatList)),nrep,
- tmp=RepeatList_nrep;
- forall(tmp,
- if(substring(#,0,1)!="%", //16.01.04
- println(SCEOUTPUT,#);
- );
- );
- );
- println(SCEOUTPUT,"");
- repeatflg=0;RepeatList=[];
- nrepprev=nrep;//17.01.03
- nrep=0;
- npara=0;
- );
- if(length(wall)>0,
- println(SCEOUTPUT,"\input{fig/"+wall+".tex}");
- );
- tmp="\sameslide"+NewSlideOption; //17.01.04;
-// if(substring(tmp2,0,1)=="[",
-// tmp=tmp+tmp2;
-// tmp2=tmp3;
-// tmp3=tmp4;
-// );
- println(SCEOUTPUT,tmp);
- println(SCEOUTPUT,"");
- println(SCEOUTPUT,"\vspace*{18mm}");
- println(SCEOUTPUT,"");
- tmp4=tmp3;
- tmp3=tmp2;
- tmp2="";
- flg=1;
- );
- if(flg==0&tmp1=="itemize",
- Repeatsameslide(repeatflg,sestr,["\begin{itemize}"]);
- flgL=append(flgL,"i");
- tmp2="";
- tmp3="";
- flg=1;
- );
- if(flg==0&tmp1=="enumerate",
- Repeatsameslide(repeatflg,sestr,["\begin{enumerate}"+tmp2]);
- flgL=append(flgL,"e");
- tmp2="";
- tmp3="";
- flg=1;
- );
- if(flg==0&tmp1=="verbatim", //16.06.28from
- Repeatsameslide(repeatflg,sestr,["\begin{verbatim}"]);
- flgL=append(flgL,"v");
- tmp1="";
- tmp2="";
- tmp3="";
- verbflg=1;
- flg=1;
- ); //16.06.28until
- if(flg==0&tmp1=="layer",
- Repeatsameslide(repeatflg,sestr,[""]);
- tmp="\begin{layer}";
- if(length(tmp2)>0,
- tmp=tmp+tmp2;
- ,
- tmp=tmp+"{120}{0}";
- );
- Repeatsameslide(repeatflg,sestr,[tmp]);
- flgL=append(flgL,"l");
- tmp2="";
- tmp3="";
- flg=1;
- );
- if(flg==0&tmp1=="putnote",
- tmp="\putnote"+tmp2+"{";
- if(indexof(tmp3,"include")==0,
- tmp1=indexof(tmp3,",");
- if(tmp1==0,
- tmp=tmp+"\input{fig/"+tmp3+".tex}}";
- ,
- tmp2=substring(tmp3,tmp1,length(tmp3));
- tmp3=substring(tmp3,0,tmp1-1);
- tmp=tmp+"\scalebox{"+tmp2+"}{\input{fig/"+tmp3+".tex}}}";
- );
- ,
- tmp2=indexof(tmp3,"[");
- tmp3=substring(tmp3,tmp2-1,length(tmp3));
- tmp=tmp+"\includegraphics"+tmp3+"{fig/"+tmp4+"}}";
- );
- Repeatsameslide(repeatflg,sestr,[tmp]);
- tmp2="";
- tmp3="";
- flg=1;
- );
- if(flg==0&tmp1=="item",
- NonThinFlg=1;
- Repeatsameslide(repeatflg,sestr,["\item"]);
- tmp3="";
- flg=1;
- );
- if(flg==0&tmp1=="end",
- tmp=flgL_(length(flgL));
- if(tmp=="i",
- Repeatsameslide(repeatflg,sestr,["\end{itemize}"]);
- );
- if(tmp=="e",
- Repeatsameslide(repeatflg,sestr,["\end{enumerate}"]);
- );
- if(tmp=="l",
- Repeatsameslide(repeatflg,sestr,["\end{layer}",""]);
- );
- if(tmp=="v", // 16.06.28from
- Repeatsameslide(repeatflg,sestr,["\end{verbatim}",""]);
- verbflg=0;
- ); // 16.06.28until
- flgL=flgL_(1..(length(flgL)-1));
- tmp2="";
- tmp3="";
- flg=1;
- );
- if(flg==0, // 16.06.28from
- if(verbflg==0,
- tmp2=tmp1;
- ,
- tmp2=slideorgL_ns; // 16.07.11
- tmp2=replace(tmp2,"||","//"); // 16.07.10
- tmp3="";
- );
- ); // 16.06.28until
- if(length(tmp2)>0,
- if(tmp2=="...", tmp2="");
- if(NonThinFlg==1,NonThinFlg=2);
- Repeatsameslide(repeatflg,sestr,[tmp2]);
- );
- if(length(tmp3)>0,
- Repeatsameslide(repeatflg,sestr,["\begin{layer}{120}{0}"]);
- if(substring(tmp3,0,1)=="{",
- tmp=tmp3;
- tmp3=tmp4;
- ,
- tmp="{60}{0}";
- );
- tmp1=indexof(tmp3,",");
- if(tmp1==0,
- tmp3="\putnotes"+tmp+"{\input{fig/"+tmp3+".tex}}";
- ,
- tmp2=substring(tmp3,tmp1,length(tmp3));
- tmp3=substring(tmp3,0,tmp1-1);
- tmp3="\putnotes"+tmp+"{\scalebox{"+tmp2+"}
- {\input{fig/"+tmp3+".tex}}}";
- );
- Repeatsameslide(repeatflg,sestr,[tmp3,"\end{layer}",""]);
- );
- );
- );
- if(repeatflg==1,
- forall(2..(length(RepeatList)),nrep,
- tmp=RepeatList_nrep;
- forall(tmp,
- if(substring(#,0,1)!="%", //16.01.04
- println(SCEOUTPUT,#);
- );
- );
- );
- println(SCEOUTPUT,"");
- );
- println(SCEOUTPUT,"");
- println(SCEOUTPUT,"\end{document}");
- closefile(SCEOUTPUT);
-);
-
-Mkslides():=(
- regional(sep,parent,texparentorg,tmp,tmp1,tmp2,tmp3,tmp4,flg);
- tmp4=Fhead;
- Fhead="";
- if(!iswindows(), //17.10.13
- Dirwork=replace(Dirwork,"\",pathsep());
- parent=replace(Dirwork+Shellparent,"\",pathsep());
- ,
- Dirwork=replace(Dirwork,"/",pathsep());
- parent=replace(Dirwork+Batparent,"/",pathsep());// 16.05.29
- );
- Dirwork=replace(Dirwork,pathsep()+"fig","");
- Setdirectory(Dirwork);
- if(length(Texmain)>0, // 15.08.14 from
- Texparent=Texmain;
- );
- texparentorg=Texparent; //17.04.10from
- if(isstring(Slidename), // 15.08.14 from
- Texparent=Slidename;
- );//17.04.10until
- if(!isexists(Dirwork,Texparent+".txt"), // 17.04.12from
- drawtext(mouse().xy,Texparent+".txt not exist in "+Dirwork,
- size->24,color->[1,0,0]);
- , // 17.04.12until
- Presentation(Texparent); // 15.08.14 until
- if(iswindows(),
- tmp2=Batparent;
- parent=replace(Dirwork+Batparent,sep+"fig","");// 16.05.29
- if(indexof(Pathpdf,"Adobe")>0, //17.12.09from
- Makebat(Texparent,"ttv");
- ,
- Makebat(Texparent,"tv");
- ); //17.12.09until
- kc():=(
- println("kc : "+kc(parent,Dirlib,Fnametex)); // 16.06.10, 17.02.19
- );
- kc();
- Batparent=tmp2;
- ,
- tmp2=Shellparent;
- parent=replace(Dirwork+Shellparent,sep+"fig","");// 16.05.29
- Shellparent=replace(Shellparent,sep+"fig","");
- if(indexof(Pathpdf,"Adobe")>0, //17.12.09from
- Makeshell(Texparent,"ttv");
- ,
- Makeshell(Texparent,"tv");
- ); //17.12.09until
- kc():=(
- println("kc : "+kc(parent,Mackc+Dirlib,Fnametex)); // 16.06.10
- );
- kc();
- Shellparent=tmp2;
- );
- );
- Dirwork=Dirwork+pathsep()+"fig"; //17.10.16
- setdirectory(Dirwork);
- Fhead=tmp4;
- Texparent=texparentorg;//17.04.10
-);
-
-Mkslidesummary():=( // 17.10.26 for R
- regional(texparentorg);
- texparentorg=Texparent;
- if(isstring(Slidename),
- Texparent=Slidename;
- );
- Mkslidesummary(Texparent,Texparent+"digest",["m","Wait=3"]);
- Texparent=texparentorg;
-);
-Mkslidesummary(fin,fout):=
- Mkslidesummary(fin,fout,["m","Wait=3"]);
-Mkslidesummary(inputfile,outputfile,options):=(
-//help:Mkslidesummary(fin,fout,options);
- regional(fin,fout,out,figflg,dirworkorg,dirtop,tmp);
- dirworkorg=Dirwork;//17.04.10from
- dirtop=replace(Dirwork,pathsep()+"fig","");
- Changework(dirtop);//17.04.10uptp
- fin=inputfile;
- if(indexof(fin,".")==0,fin=fin+".tex");
- fout=outputfile;
- if(indexof(fout,".")==0,fout=fout+".tex");
- cmdL=[
- "Dt=readLines('"+fin+"')",[],
- "num=grep('\\hypertarget',Dt,fixed=TRUE)",[],
- "Dt=Dt[setdiff(1:length(Dt),num)]",[],
- "Smain=c();Snew=c();Ssame=c()",[],
- "for(J in 1:length(Dt)){",[],
- " Tmp=length(grep('\\mainslide{',Dt[J],fixed=TRUE))",[],
- " if(Tmp>0){Smain=c(Smain,1)}else{Smain=c(Smain,0)}",[],
- " Tmp=length(grep('\\newslide{',Dt[J],fixed=TRUE))",[],
- " if(Tmp>0){Snew=c(Snew,1)}else{Snew=c(Snew,0)}",[],
- " Tmp=length(grep('\\sameslide',Dt[J],fixed=TRUE))",[],
- " if(Tmp>0){Ssame=c(Ssame,1)}else{Ssame=c(Ssame,0)}",[],
- "}",[],
- "Nnew=c();Nsame=c()",[],
- "for(J in 1:length(Dt)){",[],
- " if((Snew[J]==1)|(Smain[J]==1)){Nnew=c(Nnew,J)}",[],
- " if(Ssame[J]==1){Nsame=c(Nsame,J)}",[],
- "}",[],
- "Out=Dt[1:Nnew[1]]",[],
- "for(J in Looprange(2,length(Nnew))){",[],
- " Tmp=max(c(1,Nsame[Nsame<Nnew[J]]))",[],
- " Tmp=max(c(Tmp,Nnew[J-1]))+1",[],
- " Out=c(Out,Dt[Tmp:Nnew[J]])",[],
- "}",[],
- "Tmp=max(c(Nsame[-1],Nnew[-1]))+1",[],
- "Out=c(Out,Dt[Tmp:length(Dt)])",[],
- "writeLines(Out,'"+fout+"',sep='\n')",[],
- "cat('////',file='resultR.txt',sep='')",[],
- "quit()",[]
- ];
- CalcbyR("out",cmdL,append(options,"Cat=n"));
- wait(1000);
- Changework(dirtop);//17.04.10
- tmp=replace(fout,".tex","");
- if(iswindows(),
- Makebat(tmp,"tv");
- ,
- Makeshell(tmp,"tv");
- );
- kc();
- Changework(dirworkorg);//17.04.10
-);
-
-Example(exorg):=Example(exorg,"");
-Example(exorg,suborg):=(
-//help:Example("Mxfun","diff");
- regional(ex,tmp,tmp1,tmp2);
- ex=replace(exorg,"'",Dq);
- sub=replace(suborg,"'",Dq);
- setdirectory(Dirlib);
- tmp=load("examples.txt");
- setdirectory(Dirwork);
- tmp=tokenize(tmp,"//");
- tmp=tmp_(1..(length(tmp)-1));
- tmp1=select(tmp,substring(#,0,length(ex))==ex);
- tmp1=sort(tmp1);
- if(length(sub)>0,
- tmp1=select(tmp1,indexof(#,sub)>0);
- );
- forall(tmp1,
- if((indexof(#,"##")>0) % (indexof(#,"~#")>0),
- tmp=indexof(#,",");
- println(substring(#,tmp,length(#)));
- ,
- println(#);
- );
- );
-);
-
-BBdata():=Bbdata(BBTarget,0);
-BBdata(fname):=Bbdata(fname,0); // 16.04.09
-BBdata(fname,optionorg):=(
-//help:BBdata(filename);
-//help:BBdata(options=0(automatic),1(make),"w=","h=");
- regional(fout,flg,path,file,kcfile,options,eqL,reL,stL,
- waiting,addop,tmp,tmp1,tmp2);
- path="";
- file=fname;
- flg=0;
- waiting=2;
- forall(reverse(1..length(fname)),
- if(flg==0,
- tmp=substring(fname,#-1,#);
- if(tmp=="/" % tmp=="\", // 14.01.15
- path=substring(fname,0,#-1);
- file=substring(fname,#,length(fname));
- flg=1;
- );
- );
- );
- if(path=="",path=Dirwork);//16.10.05
- if(indexof(file,".")==0,file=file+".pdf");
- if(islist(optionorg),options=optionorg,options=[optionorg]);
- tmp=divoptions(options);
- eqL=tmp_5;
- reL=tmp_6;
- stL=tmp_7;
- flg=0;
- addop="";
- if(length(reL)>0,
- tmp=reL_1;
- if(tmp==1,flg=1);
- );
- forall(stL,
- tmp=Toupper(substring(#,0,1));
- if(tmp=="M",flg=1);
- );
- forall(eqL,
- tmp=indexof(#,"=");
- tmp1=Toupper(substring(#,0,2));
- tmp2=substring(#,tmp,length(#));
- if(tmp1=="W=",
- addop=addop+",width="+tmp2;
- options=remove(options,[#]);
- );
- if(tmp1=="H=",
- addop=addop+",height="+tmp2;
- options=remove(options,[#]);
- );
- );
- tmp=indexof(file,".");
- tmp1=substring(file,0,tmp-1);
- fout=tmp1+".txt";
- if(iswindows(),
- kcfile="kc.bat";
- ,
- kcfile="kc.sh";
- );
- if(flg==0,
- tmp=load(fout); //
- if(length(tmp)==0,
- flg=1;
- ,
- tmp=tokenize(tmp,"%%");
- tmp=tmp_2;
- tmp1=indexof(tmp,":");
- tmp=substring(tmp,tmp1,length(tmp));
- tmp=Removespace(tmp);
- if(tmp!=file,flg=1);
- );
- );
- if(length(path)==0,
- path=Dirwork;
- );
- if(flg==1,
- setdirectory(path);
- tmp=load(file);
- setdirectory(Dirwork);
- if(length(tmp)==0,
- println(" => "+file+" not exists");
- flg=-1;
- );
- );
- if(flg==1,
- SCEOUTPUT = openfile(kcfile);
- if(!iswindows(),
- println(SCEOUTPUT,"#!/bin/sh");
- );
- println(SCEOUTPUT,"cd "+Dq+path+Dq);
- tmp=replace(PathT,"pdflatex","extractbb"); //16.11.22
- tmp=replace(tmp,"pdftex","extractbb"); //16.11.22
- tmp=replace(tmp,"xelatex","extractbb");
- tmp=replace(tmp,"uplatex","extractbb"); //17.09.20
- tmp=replace(tmp,"platex","extractbb");
- tmp=replace(tmp,"latex","extractbb");
- tmp=tmp+" -O "+file;
- if(iswindows(),
- tmp=tmp+" > "+Dirwork+"\"+fout;
- ,
- tmp=tmp+" > "+Dirwork+"/"+fout;
- );
- println(SCEOUTPUT,tmp);
- println(SCEOUTPUT,"exit 0");
- closefile(SCEOUTPUT);
- kc(Dirwork+"/"+kcfile,Mackc+Dirlib,Fnametex); // 16.06.07
- );
- if(flg>=0,
- tmp1=0;
- repeat(floor(waiting*1000/WaitUnit),
- if(tmp1==0,
- wait(10);
- tmp=load(fout);
- if(indexof(tmp,"CreationDate")>0,
- tmp1=1;
- );
- );
- );
- if(length(tmp)==0,
- println(fout+" not generated. Maybe "+kcfile+" not run.");
- ,
- tmp=tokenize(tmp,"%%");
- tmp=select(tmp,indexof(#,"Bounding")>0);
- tmp=tmp_2; //
- tmp1=indexof(tmp,":");
- tmp=substring(tmp,tmp1,length(tmp));
- tmp=removespace(tmp);
- tmp=tokenize(tmp," ");
- tmp1="";
- forall(tmp,
- tmp1=tmp1+Sprintf(#,2)+" ";
- );
- tmp1=removespace(tmp1)+addop;
- tmp2="\includegraphics[bb="+tmp1+"]{"+file+"}";
- println(tmp2);
- );
- );
-// setdirectory(Dirwork);
- tmp2; // 16.04.25
-);
-
-//help:end();
-
diff --git a/texmf-dist/scripts/ketcindy/ketlib/ketcindylibhelpE.txt b/texmf-dist/scripts/ketcindy/ketlib/ketcindylibhelpE.txt
deleted file mode 100644
index 0c89e3e7..00000000
--- a/texmf-dist/scripts/ketcindy/ketlib/ketcindylibhelpE.txt
+++ /dev/null
@@ -1,115 +0,0 @@
-//help:start();
-//help:drawimage*(import image into the screen);
-//help:drawtext*(write letters on the screen);
-//help:Option1*(specify the style of drawing lines);
-//help:Option2*(specify the way of writing data out);
-//help:Option3*(specify the way of reading and writing data in);
-//help:Changestyle*(change the style for drawing plot data);
-//help:Workprocess*(display the process of execution);
-//help:Textformat*(convert number into string with specific number of digits);
-//help:Assign*(replace the name of variable in the string by some specific value);
-//help:Flattenlist*(flatten the list of data);
-//help:Dotprod*(inner product);
-//help:Crossprod*(exterior product);
-//help:Ptstart*(starting point of plot data);
-//help:Ptend*(ending point of plot data);
-//help:Numptcrvtenn*(number of points in plot data);
-//help:Ptcrv*(the n-th point of plot data);
-//help:Invert*(reverse the orientation of curve);
-//help:ParamonCurve*(information (parameter value etc.) of the point in plot data);
-//help:PointonCurve*(the point in the plot data specified by the given information);
-//help:Nearestptcrv*(the point in the curve which is nearest to the given point);
-//help:Nearestpt*(the points in two given curves which are nearest each other);
-//help:Derivative*(calculate the differential coefficient);
-//help:Integrate*(numerical integration);
-//help:Findarea*(calculate the area of the region surrounded by a closed curve);
-//help:Findlength*(calculate the length of curve);
-//help:Com2nd*(add the R command to write out plot data into TeX);
-//help:Texcom*(write command into TeX output exactly as written here);
-//help:Setunitlen*(specify the unit length);
-//help:Setmarklen*(specify the unit length of the tickmarks on coordinate axis);
-//help:Setorigin*(specify the position the origin);
-//help:Fontsize*(specify the size of font);
- //help:Setpen*(specify the thickness of line);
-//help:Setpt*(specify the size of point);
-//help:Definecolor*(define the color for user's own use);
-//help:Setcolor*(specify the color);
-//help:Joincrvs*(join curves);
-//help:Partcrv*(cut out some part of the curve);
-//help:Pointdata*(generate the plot data of point
-//additional option : "Size=");
-//help:Listplot*(generate the plot data of a polyline);
-//help:Lineplot*(generate the plot data of line);
-//help:Plotdata*(generate the plot data of function
-//additional option : "Num=", "Exc=", "Dis=");
-//help:Paramplot*(generate the plot data of parametric function
-//additional option : "Num=", "Exc=", "Dis=");
-//help:Circledata*(generate the plot data of circle
-//additional option : "Num=", "Rng=");
-//help:Framedata*(generate the plot data of rectangle);
-//help:Ovaldata*(generate the plot data of oval shape);
-//help:Arrowhead*(generate the plot data of arrowhead
-//option : size, sharpness, shape and position in the arrow);
-//help:Arrowdata*(generate the plot data of arrow line
-//option : size of arrowhead, sharpness(angle),position of arrowhead);
-//help:Anglemark*(generate the plot data of angle mark option : size);
-//help:Paramark*(generate the plot data of right angle mark option : size);
-//help:Bowdata*(generate the plot data of bow arched curve
-//option : curvatute, size of the blank space, letter);
-//help:Deqplot*(generate the solution curve of differential equation
-//additional option : "Num=");
-//help:Hatchdata*(add hatching into some region
-// option : slope, degree, space betwen lines));
-//help:Enclosing*(generate the plot data of closed curve connecting some curves);
-//help:Shade*(add shading into some region option : depth);
-//help:Rotatepoint*(rotate the point, option : center);
-//help:Translatepoint*(pararell transport of the point);
-//help:Scalepoint*(magnify or reduce the position of point option : center);
- //help:Reflectpoint*(reflect the point);
-//help:Rotatedata*(rotate the plot data option : center);
-//help:Scaledata*(magnify or reduce the plot data option : center);
-//help:Reflectdata*(reflect the plot data);
-//help:Mksegments*(generate the plot data of all segments on the screen);
-//help:Mkcircles*(generate the plot data of all circles on the screen):
-//help:Setax*(specify the setting of coordinate axes);
-//help:Htickmark*(put a tickmark on the horizontal coordinate axis);
-//help:Vtickmark*(put a tickmark on the vertical coordinate axis);
-//help:Drwxy*(draw coordinate axes);
-//help:Addax*(specify whether coordinate axes are drawn or not);
-//help:Expr*(write mathematical expressions at a specific position);
-//help:Letter*(write letters at a specific position);
-//help:Letterrot*(write sloped letters at a specific position):
-//help:Exprrot*(write sloped mathematical expressions at a specific position):
-//help:Putpoint*(put a point at the specific position);
-//help:Bezier*(generate the plot data of Bezier curve);
-//help:Mkbezierptcrv*(generate the plot data of Bezier curve by automatically taking controll points);
-//help:CRspline*(generate the plot data of Catmull-Rom spline curve);
-//help:Beziersmooth*(generate the plot data of Bezier spline curve);
-//help:Bspline*(generate the plot data of B-spline curve);
-//help:PtonLine*(put a point on a specific line);
-//help:PtonSeg*(put a point on a specific segment);
-//help:PutonCurve*(put a point on a specific curve);
-//help:Setscaling*(specify the rate of magnification in the vertical direction);
- //help:Tabledatalight*(generate the plot data of table without geometric points
- //additional option : rules to be removed);
- //help:Tgrid*(return the coordinates of a cell in the table);
- //help:Tlistplot*(draw segment connecting two lattice points in the table);
-//help:ChangeTablestyle*(change the style for drawing rules in the table);
-//help:Tabledata*(generate the plot data of table with geometric points
- //option : usual options+rules to be removed);
-//help:Tabledata*(xLst=apply(1..5,10);yLst=apply(1..4,8);rmvL=[];);
-//help:Findcell*(return the information of a cell in the table);
-//help:Putcell*(write letters in a specific cell of the table);
-//help:Putcellexpr*(write mathematical expressions in a specific cell of the table);
-//help:Putrow*(write letters in a specific row of the table));
-//help:Putrowexpr*(write mathematical expressions in a specific row of the table);
-//help:PutcoL*(write letters in a specific column of the table));
-//help:PutcoLexpr*(write mathematical expressions in a specific column of the table));
-//help:Setwindow*(specify the area of drawing);
-//help:Defvar*(the definition of a variable is called by R);
-//help:Deffun*(the definition of a function is called by R);
-//help:Extractdata*(endow attribute to the imported plot data);
-//help:ReadOutData*(import the plot data);
-//help:WriteOutData*(export the plot data);
-//help:Removespace*(remove spaces of in front and behind);
-//help:end();
diff --git a/texmf-dist/scripts/ketcindy/ketlib/ketcindylibhelpJ.txt b/texmf-dist/scripts/ketcindy/ketlib/ketcindylibhelpJ.txt
deleted file mode 100644
index 93e5e323..00000000
--- a/texmf-dist/scripts/ketcindy/ketlib/ketcindylibhelpJ.txt
+++ /dev/null
@@ -1,139 +0,0 @@
-//help:start();
-//help:drawimage*(ç”»åƒã‚’ç”»é¢ã«èª­ã¿è¾¼ã‚€);
-//help:drawtext*(ç”»é¢ã«æ–‡å­—を書ã込む);
-//help:Option1*(線種を指定.コマンドã®ã‚ªãƒ—ション);
-//help:Option2*(書ã出ã—を指定.コマンドã®ã‚ªãƒ—ション);
-//help:Option3*(外部ファイルã®èª­è¾¼ï¼æ›¸è¾¼ã®æŒ‡å®šï¼Žã‚³ãƒžãƒ³ãƒ‰ã®ã‚ªãƒ—ション);
-//help:Changestyle*(プロットデータã®ã‚ªãƒ—ションを変更);
-//help:Workprocess*(実行手順を表示);
-//help:Textformat*(数値ã®æ–‡å­—列化ã§æ¡æ•°æŒ‡å®š);
-//help:Assign*(文字列内ã®å¤‰æ•°ã¸ã®å‰²å½“ã¦);
-//help:Flattenlist*(データリストを平å¦åŒ–);
-//help:Dotprod*(内ç©);
-//help:Crossprod*(外ç©);
-//help:Ptstart*(プロットデータã®å§‹ç‚¹);
-//help:Ptend*(プロットデータã®çµ‚点);
-//help:Numptcrvtenn*(プロットデータã®ç‚¹ã®æ•°);
-//help:Ptcrv*(プロットデータã®n番目ã®ç‚¹);
-//help:Invert*(プロットデータã®å‘ãを逆ã«ã™ã‚‹);
-//help:ParamonCurve*(プロットデータ上ã®ç‚¹ã®æƒ…å ±);
-//help:PointonCurve*(プロットデータ上ã®æƒ…å ±ã«ã‚ˆã‚‹ç‚¹);
-//help:Nearestptcrv*(点ã«ã¤ã„ã¦ãƒ—ロットデータ上ã®æœ€è¿‘点);
-//help:Nearestpt*(2曲線ã®æœ€è¿‘点);
-//help:Derivative*(微分係数);
-//help:Integrate*(数値ç©åˆ†);
-//help:Findarea*(閉曲線ã«å›²ã¾ã‚ŒãŸé¢ç©);
-//help:Findlength*(曲線ã®é•·ã•);
-//help:Com2nd*(TeXã®æ›¸ã出ã—コマンドを入れる);
-//help:Texcom*(TeXã®ã‚³ãƒžãƒ³ãƒ‰ã‚’直接記述);
-//help:Setunitlen*(å˜ä½é•·ã‚’指定);
-//help:Setmarklen*(å¾®å°å˜ä½é•·ã‚’指定);
-//help:Setorigin*(原点ã®ä½ç½®ã‚’指定);
-//help:Fontsize*(フォントサイズを指定);
- //help:Setpen*(ç·šã®å¤ªã•ã‚’指定);
-//help:Setpt*(点ã®å¤§ãã•ã‚’指定);
-//help:Definecolor*(ユーザー色を定義);
-//help:Setcolor*(色を指定);
-//help:Joincrvs*(曲線をã¤ãªã’ã‚‹);
-//help:Partcrv*(部分曲線を作る);
-//help:Pointdata*(点データを表示ï¼ä½œæˆ
-//追加オプション : "Size=");
-//help:Listplot*(線分や折れ線データを作æˆ);
-//help:Lineplot*(直線データを作æˆ);
-//help:Plotdata*(関数ã®ã‚°ãƒ©ãƒ•ã‚’作æˆ
-//追加オプション : "Num=", "Exc=", "Dis=");
-//help:Paramplot*(媒介変数ã®é–¢æ•°ã®ã‚°ãƒ©ãƒ•ã‚’作æˆ
-//追加オプション : "Num=", "Exc=", "Dis=");
-//help:Circledata*(円ã®ãƒ‡ãƒ¼ã‚¿ã‚’作æˆ
-//追加オプション : "Num=", "Rng=");
-//help:Framedata*(長方形ã®ãƒ‡ãƒ¼ã‚¿ã‚’作æˆ);
-//help:Ovaldata*(オーãƒãƒ«ãƒ‡ãƒ¼ã‚¿ã‚’作æˆ);
-//help:Arrowhead*(éƒã‚’作æˆ
-//オプション : 大ãã•ï¼Œé–‹ã角,形状ã¨ä½ç½®);
-//help:Arrowdata*(矢å°ã‚’作æˆ
-//オプション : 大ãã•ï¼Œé–‹ã角,矢ã˜ã‚Šä½ç½®);
-//help:Anglemark*(角度マークを作æˆ. オプション : 角ã®å°ã®å¤§ãã•);
-//help:Paramark*(垂直マークを作æˆ. オプション : 角ã®å°ã®å¤§ãã•);
-//help:Bowdata*(弓形をæã
-//オプション : 曲ãŒã‚Šï¼Œç©ºç™½ã‚µã‚¤ã‚ºï¼Œæ–‡å­—);
-//help:Deqplot*(微分方程å¼ã®è§£æ›²ç·šã‚’作æˆ
-//追加オプション : "Num=");
-//help:Hatchdata*(斜線塗り. オプション : 傾ã(度),間隔);
-//help:Enclosing*(複数曲線をã¤ãªã’ã¦é–‰æ›²ç·šã‚’作æˆ);
-//help:Shade*(シェーディング. オプション : 濃ã•);
-//help:Rotatepoint*(点を回転. オプション : 中心);
-//help:Translatepoint*(点を平行移動);
-//help:Translatedata*(プロットデータを平行移動);
-//help:Scalepoint*(点を縮å°ï¼æ‹¡å¤§. オプション : 中心);
-//help:Reflectpoint*(点をé¡æ˜ );
-//help:Rotatedata*(プロットデータを回転. オプション : 中心);
-//help:Scaledata*(プロットデータを縮å°ï¼æ‹¡å¤§. オプション : 中心);
-//help:Reflectdata*(プロットデータをé¡æ˜ );
-//help:Mksegments*(ç”»é¢ã«ã‚ã‚‹ã™ã¹ã¦ã®ç·šåˆ†ãƒ‡ãƒ¼ã‚¿ã‚’作æˆ);
-//help:Mkcircles*(ç”»é¢ã«ã‚ã‚‹ã™ã¹ã¦ã®å††ãƒ‡ãƒ¼ã‚¿ã‚’作æˆ):
-//help:Setax*(座標軸を指定);
-//help:Htickmark*(横軸ã«ç›®ç››ã‚Šã‚’æã);
-//help:Vtickmark*(縦軸ã«ç›®ç››ã‚Šã‚’æã);
-//help:Drwxy*(座標軸をæã);
-//help:Addax*(座標軸をæãã‹æã‹ãªã„ã‹ã®æŒ‡å®š);
-//help:Expr*(æ•°å¼ã‚’書ã込む);
-//help:Letter*(文字を書ã込む);
-//help:Letterrot*(傾ã„ãŸæ–‡å­—を書ã込む):
-//help:Exprrot*(傾ã„ãŸæ•°å¼ã‚’書ã込む):
-//help:Putpoint*(幾何点をã¨ã‚‹);
-//help:Bezier*(ベジェ曲線データを作æˆ);
-//help:Mkbezierptcrv*(制御点を自動的ã«ã¨ã£ã¦ãƒ™ã‚¸ã‚§ã‚’作æˆ);
-//help:CRspline*(Catmull-Romスプラインを作æˆ);
-//help:Beziersmooth*(ベジェスプラインを作æˆ);
-//help:Bspline*(B-スプラインを作æˆ);
-//help:PtonLine*(直線上ã«ç‚¹ã‚’ã¨ã‚‹);
-//help:PtonSeg*(線分上ã«ç‚¹ã‚’ã¨ã‚‹);
-//help:PutonCurve*(曲線上ã«ç‚¹ã‚’ã¨ã‚‹);
-//help:Setscaling*(縦方å‘ã®å€çŽ‡ã‚’指定);
- //help:Tabledatalight*(幾何点をもãŸãªã„表データ作æˆ
- //追加オプション : ラベルã®ã¨ã³ï¼Œæ画領域を表ã«åˆã‚ã›ã‚‹ã‹);
- //help:Tgrid*(表ã®ã‚»ãƒ«ã®åº§æ¨™ã‚’è¿”ã™);
- //help:Tlistplot*(表ã®2æ ¼å­ç‚¹ã‚’çµã¶ç·šåˆ†);
-////help:ChangeTablestyle*(表ã®ç½«ç·šã®ã‚¹ã‚¿ã‚¤ãƒ«å¤‰æ›´);
-//help:Tabledata*(幾何点をもã¤è¡¨ãƒ‡ãƒ¼ã‚¿ã‚’作æˆ
- //追加オプション : ラベルã®ã¨ã³ï¼Œæ画領域を表ã«åˆã‚ã›ã‚‹ã‹);
-//help:Tabledata*(xLst=apply(1..5,10);yLst=apply(1..4,8);rmvL=[];);
-//help:Findcell*(表ã®ã‚»ãƒ«ã®æƒ…報を返ã™);
-//help:Putcell*(表ã®ã‚»ãƒ«ã«æ–‡å­—を書ã入れる);
-//help:Putcellexpr*(表ã®ã‚»ãƒ«ã«æ•°å¼ã‚’書ã入れる);
-//help:Putrow*(表ã®è¡Œã«æ–‡å­—を書ã入れる));
-//help:Putrowexpr*(表ã®è¡Œã«æ•°å¼ã‚’書ã入れる);
-//help:PutcoL*(表ã®åˆ—ã«æ–‡å­—を書ã入れる));
-//help:PutcoLexpr*(表ã®åˆ—ã«æ•°å¼ã‚’書ã入れる));
-//help:Setwindow*(æ画領域を指定);
-//help:Defvar*(変数をRã«æ¸¡ã™);
-//help:Deffun*(関数をRã«æ¸¡ã™);
-//help:Extractdata*(読ã¿è¾¼ã‚“ã ãƒ‡ãƒ¼ã‚¿ã«å±žæ€§ã‚’与ãˆã‚‹);
-//help:ReadOutData*(データを読ã¿è¾¼ã‚€);
-//help:WriteOutData*(データを書ã出ã™);
-//help:Removespace*(å‰å¾Œã®ã‚¹ãƒšãƒ¼ã‚¹ã‚’除ã);
-//help:Drawlinetype*(線種を指定ã—ã¦æ›²ç·šã‚’æã);
-//help:Intersectcrvs*(交点リストを求ã‚ã‚‹);
-//help:IntersectcrvsPp*(交点ã¨ãƒ‘ラメータ値ã®ãƒªã‚¹ãƒˆã‚’求ã‚ã‚‹);
-//help:Implicitplot*(陰関数ã®ã‚°ãƒ©ãƒ•ã‚’æã);
-//help:Boxplot*(箱ヒゲ図をæã(R使用));
-//help:CalcbyR*(Rã®ã‚³ãƒžãƒ³ãƒ‰ã‚’実行ã—ã¦çµæžœã‚’è¿”ã™);
-//help:CalcbyS*(Scilabã®ã‚³ãƒžãƒ³ãƒ‰ã‚’実行ã—ã¦çµæžœã‚’è¿”ã™);
-//help:Framedata2*(左下ã¨å³ä¸Šã®ç‚¹ã§é•·æ–¹å½¢ã‚’æã);
-//help:HIstplot*(ヒストグラムをæã(R使用));
-//help:Hyperbolaplot*(åŒæ›²ç·šã‚’æã);
-//help:Ellipseplot*(楕円をæã);
-//help:Ospline*(Oshimaã®ã‚¹ãƒ—ラインをæã);
-//help:Parabolaplot*(放物線をæã);
-//help:PlotdataR*(Rã®é–¢æ•°ã®ã‚°ãƒ©ãƒ•ã‚’æã);
-//help:Polygonplot*(正多角形をæã);
-//help:Putintersect*(交点ã«å¹¾ä½•ç‚¹ã‚’ã¨ã‚‹);
-//help:Rulerscale*(点ã®å³ã¨ä¸Šã«ç›®ç››ã‚’æã);
-//help:Segmark*(線分ã«ãƒžãƒ¼ã‚¯ã‚’ã¤ã‘ã‚‹);
-//help:Sprintf*(å°æ•°ç‚¹ä»¥ä¸‹ã®é•·ã•ã‚’固定ã—ãŸæ–‡å­—列ã«å¤‰æ›);
-//help:Readcsv*(csvファイルを読ã¿è¾¼ã¿);
-//help:Writecsv*(csvファイルを書ãè¾¼ã¿);
-//help:Drwpt*(点をTeXã«æã.オプション:白抜ã 0);
-
-
-//help:end();
diff --git a/texmf-dist/scripts/ketcindy/ketlib/ketcindylibmvhelpE.txt b/texmf-dist/scripts/ketcindy/ketlib/ketcindylibmvhelpE.txt
deleted file mode 100644
index 9a7edb2e..00000000
--- a/texmf-dist/scripts/ketcindy/ketlib/ketcindylibmvhelpE.txt
+++ /dev/null
@@ -1,4 +0,0 @@
-//help:start();
-//help:Moviedata*(generate movie/para data);
-//help:Paraamble*(Define preamble and postamble);
-//help:end();
diff --git a/texmf-dist/scripts/ketcindy/ketlib/ketcindylibmvhelpJ.txt b/texmf-dist/scripts/ketcindy/ketlib/ketcindylibmvhelpJ.txt
deleted file mode 100644
index 354d6596..00000000
--- a/texmf-dist/scripts/ketcindy/ketlib/ketcindylibmvhelpJ.txt
+++ /dev/null
@@ -1,4 +0,0 @@
-//help:start();
-//help:Moviedata*(movieデータを定義
-//オプション : "Cut=1秒ã®ã‚³ãƒžæ•°(20)", "Div=全体ã®ã‚³ãƒžæ•°(80)");
-//help:end();
diff --git a/texmf-dist/scripts/ketcindy/ketlib/ketcindylibmvlogr.txt b/texmf-dist/scripts/ketcindy/ketlib/ketcindylibmvlogr.txt
deleted file mode 100644
index 70b42e5a..00000000
--- a/texmf-dist/scripts/ketcindy/ketlib/ketcindylibmvlogr.txt
+++ /dev/null
@@ -1,28 +0,0 @@
-//2017.12.09
-// Parafolder debugged (Viewtex ->WritetoRS)
-// Mkanimation debugged ( \ -> / for windows )
-//2017.12.07
-// Setpara options changed
-// Animatefile changed (\figsize, OpA)
-//2017.11.24
-// Mkflipanime added
-// Old movie function removed
-// Flipbook removed
-// Mkanimation changed (for R)
-//2017.11.21
-// Ketinitmv, Paraamble, Mkmovie changed (for R)
-//2017.11.03
-// Mkanimation changed (ketpic.sty etc )
-//2017.10.28
-// Parafolder changed (timing of display of counter,time)
-//2017.10.24
-// Parafolder changed (file.exists added)
-//2017.10.14
-// Mkanimation changed ("Rem=" option added)
-//2017.10.13
-// Ketinitmv changed (Shellfile removed)
-// Parafolder debugged
-//2017.10.12
-// Parafolder changed ( cmdL for making TeX files)
-//2017.10.08
-// Mkanimation added
diff --git a/texmf-dist/scripts/ketcindy/ketlib/ketcindylibmvr.cs b/texmf-dist/scripts/ketcindy/ketlib/ketcindylibmvr.cs
deleted file mode 100644
index e9978e7b..00000000
--- a/texmf-dist/scripts/ketcindy/ketlib/ketcindylibmvr.cs
+++ /dev/null
@@ -1,564 +0,0 @@
-// Copyright (C) 2014 Masataka Kaneko, Setsuo Takato, KETCindyJapan project team
-//
-//This program is free software: you can redistribute it and/or modify
-// it under the terms of the GNU General Public License as published by
-// the Free Software Foundation; either version 3 of the License, or
-// (at your option) any later version.
-//
-// This program is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-// GNU General Public License for more details.
-//
-// You should have received a copy of the GNU General Public License
-// along with this program. If not, see <http://www.gnu.org/licenses/>
-//
-
-println("ketcindymv(20171124) loaded");
-
-//help:start();
-
-Setpara(path,fstr,sL):=Setpara(path,fstr,sL,[],[]); // 16.12.27added
-Setpara(pathorg,fstr,sL,options):= //17.11.25(3lines)
- Setpara(pathorg,fstr,sL,options,[]);
-Setpara(pathorg,fstr,sL,options,optionsanim):=(
-//help:Setpara("folder name","funstr","range",options,optionsanim);
-//help:Setpara(folder,funstr,range,options);
-//help:Setpara(options=["m/r","Div=25"]);
-//help:Setpara(options2anim1=["Frate=10","Scale=1"]);
-//help:Setpara(options2anim2=["OpA=[loop,controls,buttonsize=3mm]"]);
-//help:Setpara(options2anim3=["OpA=+step"]);
-//help:Setpara(options2anim4=["Mag=1600","Title=folder"]);
- regional(path);//17.04.10
- if(length(pathorg)==0, path=Slidename,path=pathorg);//17.04.10
- ParaPath=path;
- ParaFstr=fstr;
- ParaSL=sL;
- ParaOp=options;
- ParaOpAnim=optionsanim; //17.11.25
- GLISTback=GLIST;
- GCLISTback=GCLIST;
- GOUTLISTback=GOUTLIST;
- POUTLISTback=POUTLIST;
- VLISTback=VLIST;
- FUNLISTback=FUNLIST;
- LETTERlistback=LETTERlist;
- COM0thlistback=COM0thlist;
- COM1stlistback=COM1stlist;
- COM2ndlistback=COM2ndlist;
-);
-
-Parafolder():=Parafolder(ParaPath,ParaFstr,ParaSL,ParaOp);
-Parafolder(path,fstr,sL):=Parafolder(path,fstr,sL,[]);
-Parafolder(path,fstr,sLorg,optionorg):=(
-//help:Parafolder(foldername,1..4);
-//help:Parafolder(foldername,"s=[0,1]");
-//help:Parafolder("mf(s)",foldername,"s=[0,1]");
-//help:Parafolder(options=["m/r","Div=25","Wait=20"]);
-//help:Paraslide(para=folder:layery:pos:input,scale);
-//help:Paraslide(para=folder:layery:pos:include:[width=100]);
- regional(nn,sL,tmp,tmp1,tmp2,strL,eqL,waiting,
- mkr,mktex,ndiv,options,sfL);
- if(!isstring(ParaPath),
- println("Setpara not executed");
- ,
- sL=sLorg;//16.12.24from
- if(!isstring(sL),
- tmp=indexof(fstr,"(");
- tmp1=substring(fstr,tmp,length(fstr));
- tmp=indexof(tmp1,")");
- tmp1=substring(tmp1,0,tmp-1);
- ,
- tmp=indexof(sL,"=");//16.12.21from
- if(length(tmp)>0,
- tmp1=substring(sL,0,tmp-1);
- );
- );
- parse("Movieframe("+tmp1+"):="+fstr);
- options=optionorg;
- tmp=Divoptions(options);
- eqL=tmp_5;
- strL=tmp_7;
- if(length(strL)==0,options=append(options,"m"));//16.12.18
- mkr="A";
- mktex="A";
- ndiv=25;
- waiting=20;
- forall(eqL,
- tmp=Indexof(#,"=");
- tmp1=Toupper(substring(#,0,1));
- tmp2=substring(#,tmp,length(#));
- if(tmp1=="D",
- ndiv=parse(tmp2);
- options=remove(options,[#]);
- );
- if(tmp1=="W",
- waiting=parse(tmp2);
- options=remove(options,[#]);
- );
- );
- forall(strL,
- tmp1=Toupper(substring(#,0,1));
- if(tmp1=="M",
- mkr="Y"; mktex="Y";
- );
- );
- sL=sLorg;
- if(isstring(sL),
- tmp=indexof(sL,"=");
- tmp1=parse(substring(sL,tmp,length(sL)));
- sL=apply(0..ndiv,tmp1_1+#*(tmp1_2-tmp1_1)/ndiv);
- );
- if(!isexists(Dirwork,path),
- if(ErrFlag!=-1,
- makedir(Dirwork,path)
- ,
- println(" ==> Changework may not work properly");
- sL=[];
- );
- ,
- tmp=fileslist(Dirwork+pathsep()+path); //17.12.09(3lines);
- tmp=length(tmp);
- if((mkr=="Y") & (tmp>0),
- tmp1=replace(Dirwork,"\","/");//17.10.13
- cmdL=[
- "setwd",[Dq+tmp1+"/"+path+Dq],
- "fL=as.matrix(list.files())",[],
- "apply",["fL",2,"file.remove"],
- "setwd",[Dq+tmp1+Dq],
- ];
- CalcbyR("rvf",cmdL,["Cat=n","m"]);
- tmp=Dirwork+pathsep()+path;
- repeat(1..30,
- if(length(fileslist(tmp))>0,wait(10));
- );
- );//17.02.20until
- );
- sfL=[];
- forall(1..(length(sL)),nn,
- GLIST=GLISTback;
- GCLIST=GCLISTback;
- GOUTLIST=GOUTLISTback;
- POUTLIST=POUTLISTback;
- VLIST=VLISTback;
- FUNLIST=FUNLISTback;
- LETTERlist=LETTERlistback;
- COM0thlist=COM0thlistback;
- COM1stlist=COM1stlistback;
- COM2ndlist=COM2ndlistback;
- tmp1=Sprintf(nn/1000,3);
- tmp=indexof(tmp1,".");
- tmp1=substring(tmp1,tmp,length(tmp1));
- FnameR=path+"/p"+tmp1+".r";
- sfL=append(sfL,FnameR);
- Fnametex=replace(FnameR,".r",".tex");
- Movieframe(sL_nn); //17.10.13
- if(!isexists(Dirwork,FnameR) % mkr=="Y",
- if(ErrFlag!=-1,
- WritetoRS(2); //17.12.09
- );
- );
- );
- tmp1=replace(Dirwork,"\","/"); //17.10.13
- cmdL=[
- "setwd",[Dq+tmp1+"/"+path+Dq],
- "Mkallfile=function(fname){",[],
- " Ctr<<- Ctr+1",[],
- " tmp=readLines(fname)",[],
- " first=1",[],
- " if(Ctr>1){",[],
- " first=7",[],
- " cat('Ketinit()\n',file='all.r',append=TRUE)",[],
- " }",[],
- " for(J in first:(length(tmp)-1)){",[],
- " cat(paste(tmp[J],'\n',sep=''),file='all.r',append=TRUE)",[],
- " }",[],
- " cat('print(',Ctr,')\n',file='all.r',append=TRUE)",[],
- " Tmp=proc.time()-Tm",[],
- " cat('print(',Tmp[3],')\n',file='all.r',append=TRUE)",[],
- "}",[],
- "if(file.exists('all.r')){file.remove('all.r')}",[], //17.10.24
- "fL=list.files()",[],
- "Ctr=0",[],
- "Tm<-invisible(proc.time())",[],
- "for(fname in fL){",[],
- " if(length(grep('.r',fname))>0){Mkallfile(fname)}",[], // 17.11.24
- "}",[],
- "source('all.r')",[],
- "setwd",[Dq+tmp1+Dq]
- ];
- if(ErrFlag!=-1,
- if(!isexists(Dirwork,Fnametex) % mktex=="Y",
- CalcbyR("all",cmdL,["Cat=n","m","Wait="+text(waiting)]);
- ,
- println("Parafolder "+path+" finished");//16.12.20
- );
- if(length(after)>0, // 16.12.27
- parse(after);
- );
- FnameR=Fhead+".r";
- Fnametex=Fhead+".tex";
- );
- );
-);
-
-Animatefile():=Animatefile(Dirwork,ParaPath);
-Animatefile(path,folder):=(
-//help:Animatefile();
-//help:Animatefile(Dirwork,ParaPath);
- regional(FRate, Scale, OpA, pa,fname,eqL,tmp,tmp1,tmp2);
- tmp=divoptions(ParaOpAnim); //17.11.24
- eqL=tmp_5;
- FRate="10";
- Scale="1";
- OpA="loop,controls,buttonsize=3mm";
- remflg=0;
- forall(eqL,
- tmp1=Toupper(substring(#,0,2));
- tmp=indexof(#,"=");
- tmp2=substring(#,tmp,length(#));
- if(tmp1=="FR",
- FRate=tmp2;
- );
- if(tmp1=="SC",
- Scale=tmp2;
- );
- if(tmp1=="OP", // 17.12.07from
- if(length(tmp2)>0,
- tmp2=replace(tmp2,"[","");
- tmp2=replace(tmp2,"]","");
- if(substring(tmp2,0,1)=="+",
- OpA=OpA+","+substring(tmp2,1,length(tmp2));
- ,
- OpA=tmp2;
- );
- );
- );
- );
- if(length(OpA)>0,OpA="["+OpA+"]");
- pa=replace(path,"\","/");
- fname="anim"+folder+".tex";
- tmp=Dirwork+"/"+folder;
- path=replace(tmp,"\","/");
- if(iswindows(),tmp=replace(tmp,"/","\"));
- tmp1=fileslist(tmp);
- tmp1=tokenize(tmp1,",");
- tmp1=select(tmp1,indexof(#,".tex")>0);
- SCEOUTPUT= openfile(fname);
- println(SCEOUTPUT,"\def\parapath{"+pa+"}%"); //17.06.22
- println(SCEOUTPUT,"\def\figsize{"+Scale+"}%"); //17.12.07
- println(SCEOUTPUT,"\begin{animateinline}"+OpA+"{"+FRate+"}%");
- forall(1..(length(tmp1)),
- if(Scale==1, // 17.08.30from
- tmp="\input{\parapath/";
- tmp=tmp+folder+"/"+tmp1_#+"}%";
- ,
- tmp="\scalebox{\figsize}{\input{\parapath/";//17.12.07
- tmp=tmp+folder+"/"+tmp1_#+"}}%";
- ); // 17.08.30until
- println(SCEOUTPUT,tmp);
-// println(SCEOUTPUT,""); //17.06.25
- if(#<length(tmp1),
- println(SCEOUTPUT,"\newframe%");
- );
- );
- println(SCEOUTPUT,"\end{animateinline}%");
- closefile(SCEOUTPUT);
- println(fname+" has been generated");
-);
-
-Mkanimation():=(
- regional(remflg,tmp,eqL,tmp1,tmp2);
- if(!isexists(Dirwork,ParaPath), //17.10.14from
- Parafolder();
- );
- Animatefile(); //17.10.14until
- Mkanimation(Dirwork,ParaPath);
-);
-Mkanimation(folder):=Mkanimation(Dirwork,folder);
-Mkanimation(path,folder):=(
-//help:Mkanimation();
-//help:Mkanimation(path,folder);
- regional(Fheadbkup,Pathpdfbkup,tex,article,parent,
- eqL,mag,title,tmp,tmp1,tmp2,tmp3,flg);
- tmp=Divoptions(ParaOpAnim); //17.11.25from
- eqL=tmp_5;
- mag="1600";
- title=folder;
- forall(eqL,
- tmp=Indexof(#,"=");
- tmp1=Toupper(substring(#,0,1));
- tmp2=substring(#,tmp,length(#));
- if(tmp1=="M",
- mag=tmp2;
- );
- if(tmp1=="T",
- title=tmp2;
- );
- ); //17.11.25until
- Fheadbkup=Fhead;
- Fhead="animate"+folder;
- Pathpdfbkup=Pathpdf;
- Pathpdf=PathAd;
- tmp1=replace(PathT,pathsep(),"/");
- tmp=indexall(tmp1,"/");//17.10.14from
- if(length(tmp)>0,
- tex=substring(tmp1,tmp_(length(tmp)),length(tmp1));
- ,
- tex=tmp1;
- );//17.10.14until
- if((tex=="platex")%(tex=="uplatex"),
- if(tex=="platex",article="jarticle",article="ujarticle");
- ,
- article="article";
- );
- SCEOUTPUT=openfile(Fhead+".tex");
- println(SCEOUTPUT,"\documentclass[landscape]{"+article+"}");
- if((tex=="platex")%(tex=="uplatex")%(tex=="latex"),
- tmp="\special{papersize=\the\paperwidth,\the\paperheight}";
- println(SCEOUTPUT,tmp);
- println(SCEOUTPUT,"\mag="+mag);//17.11.25
- );
- if((tex=="pdflatex")%(tex=="lualatex")%(tex=="xelatex"),
- if((tex=="pdflatex")%(tex=="xelatex"),
- println(SCEOUTPUT,"\usepackage[pdftex]{pict2e}");
- ,
- println(SCEOUTPUT,"\usepackage{pict2e}");
- println(SCEOUTPUT,"\usepackage{luatexja}");
- );
- tmp=replace(Dirhead,"\","/"); //17.10.30from
- tmp=replace(tmp,"scripts","tex/latex");
- if(isexists(tmp,""),
- println(SCEOUTPUT,"\usepackage{ketpic2e,ketlayer2e}");
- ,
- tmp=replace(Dirhead+"/ketpicstyle","\","/");
- println(SCEOUTPUT,"\usepackage{"+tmp+"/ketpic2e}");
- println(SCEOUTPUT,"\usepackage{"+tmp+"/ketlayer2e}");
- );
- ,
- tmp=replace(Dirhead,"\","/"); //17.10.30from
- tmp=replace(tmp,"scripts","tex/latex");
- if(isexists(tmp,""),
- println(SCEOUTPUT,"\usepackage{ketpic,ketlayer}");
- ,
- tmp=replace(Dirhead+"/ketpicstyle","\","/");
- println(SCEOUTPUT,"\usepackage{"+tmp+"/ketpic}");
- println(SCEOUTPUT,"\usepackage{"+tmp+"/ketlayer}");
- );
- );
- println(SCEOUTPUT,"\usepackage{amsmath,amssymb}");
- println(SCEOUTPUT,"\usepackage{bm,enumerate}");
- if((tex=="platex")%(tex=="uplatex")%(tex=="latex"),
- println(SCEOUTPUT,"\usepackage[dvipdfmx]{graphicx}");
- println(SCEOUTPUT,"\usepackage[dvipdfmx]{animate}");
- ,
- println(SCEOUTPUT,"\usepackage{graphicx}");
- println(SCEOUTPUT,"\usepackage{animate}");
- );
- println(SCEOUTPUT,"\usepackage{xcolor}");
- forall(ADDPACK, tmp1,
- tmp=indexof(tmp1,"{animate}")+indexof(tmp1,"{hyperref}");
- if(tmp==0,
- println(SCEOUTPUT,"\usepackage"+tmp1);
- );
- );
- println(SCEOUTPUT,"\pagestyle{empty}");
- println(SCEOUTPUT,"\setmargin{0}{0}{0}{0}");
- println(SCEOUTPUT,"");
- println(SCEOUTPUT,"\begin{document}");
- println(SCEOUTPUT,"\large");
- println(SCEOUTPUT,"");
- println(SCEOUTPUT,"\vspace*{25mm}");
- println(SCEOUTPUT,"");
- tmp=floor(parse("290*1000/"+mag));
- print(SCEOUTPUT,"\Ctab{"+text(tmp)+"mm}{");
- print(SCEOUTPUT,"\fbox{\Large\bf "+title+"}");
- println(SCEOUTPUT,"}");
- tmp=parse("6*1000/"+mag);
- println(SCEOUTPUT,"\vspace{"+text(tmp)+"mm}");
- println(SCEOUTPUT,"");
- tmp=indexof(ULEN,"cm");
- if(tmp>0,
- tmp1=substring(ULEN,0,tmp-1);
- tmp1=parse(replace(tmp1," ",""))*10;
- );
- tmp=indexof(ULEN,"mm");
- if(tmp>0,
- tmp1=substring(ULEN,0,tmp-1);
- tmp1=parse(replace(tmp1," ",""));
- );
- tmp=parse("300*1000/"+mag);
- tmp1=(tmp-(XMAX-XMIN)*tmp1)/2;
- tmp1=tmp1+parse("("+mag+"-1000)/100*1.3");
- print(SCEOUTPUT,"\hspace*{"+text(tmp1)+"mm}");
- tmp=replace(path,"\","/"); //17.12.09(2lines)
- println(SCEOUTPUT,"\input{"+tmp+"/anim"+folder+".tex}");
- println(SCEOUTPUT,"\end{document}");
- closefile(SCEOUTPUT);
- if(iswindows(),
- parent=Dirwork+Batparent;
- Makebat(Fhead,"ttv");
- kc():=(
- println("kc : "+kc(parent,Dirlib,Fnametex))
- );
- kc();
- ,
- parent=Dirwork+Shellparent;
- Makeshell(Fhead,"ttv");
- kc():=(
- println("kc : "+kc(parent,Mackc+Dirlib,Fnametex));
- );
- kc();
- );
- Fhead=Fheadbkup;
- Pathpdf= Pathpdfbkup;
-);
-
-Mkflipanime():=(
- regional(remflg,tmp,eqL,tmp1,tmp2);
- if(!isexists(Dirwork,ParaPath), //17.10.14from
- Parafolder();
- );
- Mkflipanime(Dirwork,ParaPath);
-);
-Mkflipanime(folder):=Mkflipanime(Dirwork,folder);
-Mkflipanime(path,folder):=(
-//help:Mkfilpanime();
-//help:Mkflipanime(path,folder);
- regional(Fheadbkup,tex,article,parent,eqL,mag,title,
- tmp,tmp1,tmp2,tmp3,texfiles,flg);
- tmp=Divoptions(ParaOpAnim); //17.11.25from
- eqL=tmp_5;
- mag="1600";
- title=folder;
- forall(eqL,
- tmp=Indexof(#,"=");
- tmp1=Toupper(substring(#,0,1));
- tmp2=substring(#,tmp,length(#));
- if(tmp1=="M",
- mag=tmp2;
- );
- if(tmp1=="T",
- title=tmp2;
- );
- ); //17.11.25until
- Fheadbkup=Fhead;
- Fhead="flipanime"+folder;
- tmp1=replace(PathT,pathsep(),"/");
- tmp=indexall(tmp1,"/");//17.10.14from
- if(length(tmp)>0,
- tex=substring(tmp1,tmp_(length(tmp)),length(tmp1));
- ,
- tex=tmp1;
- );//17.10.14until
- if((tex=="platex")%(tex=="uplatex"),
- if(tex=="platex",article="jarticle",article="ujarticle");
- ,
- article="article";
- );
- SCEOUTPUT=openfile(Fhead+".tex");
- println(SCEOUTPUT,"\documentclass[landscape]{"+article+"}");
- if((tex=="platex")%(tex=="uplatex")%(tex=="latex"),
- tmp="\special{papersize=\the\paperwidth,\the\paperheight}";
- println(SCEOUTPUT,tmp);
- println(SCEOUTPUT,"\mag="+mag);//17.11.25
- );
- if((tex=="pdflatex")%(tex=="lualatex")%(tex=="xelatex"),
- if((tex=="pdflatex")%(tex=="xelatex"),
- println(SCEOUTPUT,"\usepackage[pdftex]{pict2e}");
- ,
- println(SCEOUTPUT,"\usepackage{pict2e}");
- println(SCEOUTPUT,"\usepackage{luatexja}");
- );
- tmp=replace(Dirhead,"\","/"); //17.10.30from
- tmp=replace(tmp,"scripts","tex/latex");
- if(isexists(tmp,""),
- println(SCEOUTPUT,"\usepackage{ketpic2e,ketlayer2e}");
- ,
- tmp=replace(Dirhead+"/ketpicstyle","\","/");
- println(SCEOUTPUT,"\usepackage{"+tmp+"/ketpic2e}");
- println(SCEOUTPUT,"\usepackage{"+tmp+"/ketlayer2e}");
- );
- ,
- tmp=replace(Dirhead,"\","/"); //17.10.30from
- tmp=replace(tmp,"scripts","tex/latex");
- if(isexists(tmp,""),
- println(SCEOUTPUT,"\usepackage{ketpic,ketlayer}");
- ,
- tmp=replace(Dirhead+"/ketpicstyle","\","/");
- println(SCEOUTPUT,"\usepackage{"+tmp+"/ketpic}");
- println(SCEOUTPUT,"\usepackage{"+tmp+"/ketlayer}");
- );
- );
- println(SCEOUTPUT,"\usepackage{amsmath,amssymb}");
- println(SCEOUTPUT,"\usepackage{bm,enumerate}");
- if((tex=="platex")%(tex=="uplatex")%(tex=="latex"),
- println(SCEOUTPUT,"\usepackage[dvipdfmx]{graphicx}");
- ,
- println(SCEOUTPUT,"\usepackage{graphicx}");
- );
- println(SCEOUTPUT,"\usepackage{xcolor}");
- forall(ADDPACK, tmp1,
- if(tmp==0,
- println(SCEOUTPUT,"\usepackage"+tmp1);
- );
- );
- println(SCEOUTPUT,"\pagestyle{empty}");
- println(SCEOUTPUT,"\setmargin{0}{0}{0}{0}");
- println(SCEOUTPUT,"");
- println(SCEOUTPUT,"\begin{document}");
- println(SCEOUTPUT,"\large");
- println(SCEOUTPUT,"");
- tmp=fileslist(Dirwork+pathsep()+folder);
- tmp=tokenize(tmp,",");
- texfiles=select(tmp,indexof(#,".tex")>0);
- forall(texfiles,
- println(SCEOUTPUT,"\vspace*{25mm}");
- println(SCEOUTPUT,"");
- tmp=floor(parse("290*1000/"+mag));
- print(SCEOUTPUT,"\Ctab{"+text(tmp)+"mm}{");
- print(SCEOUTPUT,"\fbox{\Large\bf "+title+"}");
- println(SCEOUTPUT,"}");
- tmp=parse("6*1000/"+mag);
- println(SCEOUTPUT,"\vspace{"+text(tmp)+"mm}");
- println(SCEOUTPUT,"");
- tmp=indexof(ULEN,"cm");
- if(tmp>0,
- tmp1=substring(ULEN,0,tmp-1);
- tmp1=parse(replace(tmp1," ",""))*10;
- );
- tmp=indexof(ULEN,"mm");
- if(tmp>0,
- tmp1=substring(ULEN,0,tmp-1);
- tmp1=parse(replace(tmp1," ",""));
- );
- tmp=parse("300*1000/"+mag);
- tmp1=(tmp-(XMAX-XMIN)*tmp1)/2;
- tmp1=tmp1+parse("("+mag+"-1000)/100*1.3");
- print(SCEOUTPUT,"\hspace*{"+text(tmp1)+"mm}");
- println(SCEOUTPUT,"\input{"+folder+"/"+#+"}");
- println(SCEOUTPUT,"");
- println(SCEOUTPUT,"\newpage");
- );
- println(SCEOUTPUT,"\end{document}");
- closefile(SCEOUTPUT);
- if(iswindows(),
- parent=Dirwork+Batparent;
- Makebat(Fhead,"tv");
- kc():=(
- println("kc : "+kc(parent,Dirlib,Fnametex))
- );
- kc();
- ,
- parent=Dirwork+Shellparent;
- Makeshell(Fhead,"tv");
- kc():=(
- println("kc : "+kc(parent,Mackc+Dirlib,Fnametex));
- );
- kc();
- );
- Fhead=Fheadbkup;
-);
-
-//help:end();
-
diff --git a/texmf-dist/scripts/ketcindy/ketlib/ketcindyliboutlogr.txt b/texmf-dist/scripts/ketcindy/ketlib/ketcindyliboutlogr.txt
deleted file mode 100644
index 94752a33..00000000
--- a/texmf-dist/scripts/ketcindy/ketlib/ketcindyliboutlogr.txt
+++ /dev/null
@@ -1,59 +0,0 @@
-// 2018.03.27
-// functions of C changed
-// CalcbyC added
-// Sfbdparadata,Crvsfparadata added
-// 2018.03.24
-// WriteCdata changed ( 99999 )
-// 2018.03.03
-// ConvertFdtoC changed ( varnames converted to u,v )
-// 2018.03.01
-// Cform,ConvertFdtoC added
-// 2018.02.27
-// Rfun debugged
-// 2018.02.22
-// CalcbyR changed (adding ".txt" to wfile)
-// 2018.02.20
-// CalcbyR changed (Quick return of Erromessage)
-// 2018.02.12
-// MkprecommandR changed ( for GLIST )
-// 2018.02.11
-// Mkprecommand debugged
-// CalcbyR debugged ("ans" replaced to name )
-// 2018.02.01
-// CalcbyR changed (for matrix, wait=5 )
-// 2018.01.31
-// CalcbyR changed (for list of list )
-// 2018.01.29
-// CalcbyR debugged and changed (case of result is null )
-// 2018.01.27
-// CalcbyR changed ( output like Maxima(::),"Out")
-// 2018.01.07
-// Hatchdata debugged (fun removed )
-// 2017.12.24
-// Mkobjpoly,Mkobjplate debugged
-// Changeobjscalce changed for R
-// 2017.12.23
-// Mkobjsymbcmd debugged
-// Setoptions changed
-// Mkobjthickcmd added
-// 2017.12.22
-// Mkobjcrvcmd debugged
-// 2017.10.24
-// Maxima2Cindydata added
-// 2017.10.12
-// kcR debugged ( for Mac, => 2> )
-// 2017.10.07
-// CalcbyR debugged ( => WritetoRS )
-// ReadCdata changed ( execstr removed )
-// 2017.10.02
-// Imlicitplot changed (for R)
-// 2017.09.29
-// WritetoS debugged (LibnameS)
-// Dotfilldata changed
-// 2017.09.24
-// Circledata, WritetoR, PrecommandR debugged
-// 2017.09.23
-// Hatchdata debugged
-// 2017.09.18
-// Hatchdata changed (for R)
-// SCIWR,SCIRE removed
diff --git a/texmf-dist/scripts/ketcindy/ketlib/ketcindyliboutr.cs b/texmf-dist/scripts/ketcindy/ketlib/ketcindyliboutr.cs
deleted file mode 100644
index 1bb3e343..00000000
--- a/texmf-dist/scripts/ketcindy/ketlib/ketcindyliboutr.cs
+++ /dev/null
@@ -1,5935 +0,0 @@
-// Copyright (C) 2014 Setsuo Takato, KETCindy Japan project team
-//
-//This program is free software: you can redistribute it and/or modify
-// it under the terms of the GNU General Public License as published by
-// the Free Software Foundation; either version 3 of the License, or
-// (at your option) any later version.
-//
-// This program is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-// GNU General Public License for more details.
-//
-// You should have received a copy of the GNU General Public License
-// along with this program. If not, see <http://www.gnu.org/licenses/>
-//
-
-println("ketcindyout(20180327) loaded");
-
-//help:start();
-
-WritetoS(fname,cmdL):=(
-// help:WritetoS("outdata",cmdL);
- regional(tmp,tmp1,tmp2,filename);
- if(indexof(fname,".")==0,
- filename=fname+".sce";
- ,
- filename=fname;
- );
- SCEOUTPUT = openfile(filename);
- tmp="cd('"+Dirwork+"');//";
- println(SCEOUTPUT,tmp);
-// tmp1=replace(Dirlib,"\","/");
- tmp="Ketlib=lib("+Dq+LibnameS+Dq+");//"; //17.09.29
- println(SCEOUTPUT,tmp);
- tmp="Ketinit();//";
- println(SCEOUTPUT,tmp);
- tmp="Setwindow([XMIN,XMAX],[YMIN,YMAX]);"; // 16.06.26from
- tmp=Assign(tmp,["XMIN",XMIN,"XMAX",XMAX,"YMIN",YMIN,"YMAX",YMAX]);
- println(SCEOUTPUT,tmp); // 16.06.26until
- if(iswindows(), // 17.01.11from
- println(SCEOUTPUT,"setlanguage('en')");
- ); // 17.01.11until
- tmp="pi=%pi;////";
- println(SCEOUTPUT,tmp);
- forall(cmdL,
- println(SCEOUTPUT,#+"//");
- );
- closefile(SCEOUTPUT);
-);
-
-kcS(path,fname):=kcS(path,fname,[]);
-kcS(path,fname,optionorg):=(
-//help:kcS(PathS,"boxdata");
-//help:kcS(options=["r/m"]);
- regional(options,tmp,tmp1,tmp2,eqL,strL,filename,flg);
- if(indexof(fname,".")==0,
- filename=fname+".sce";
- ,
- filename=fname;
- );
- options=optionorg;
- tmp=Divoptions(options);
- eqL=tmp_5;
- strL=tmp_7;
- forall(eqL,
- tmp=indexof(#,"=");
- tmp1=substring(#,0,tmp-1);
- tmp2=substring(#,tmp,length(#));
- );
- flg=0;
- forall(strL,
- if(Toupper(substring(#,0,1))=="R",
- flg=0;
- options=remove(options,[#]);
- );
- if(Toupper(substring(#,0,1))=="M",
- flg=1;
- );
- );
- if(flg==0,
- tmp2=replace(filename,".sce",".txt");
- tmp1=load(tmp2);
- if(length(tmp1)==0,
- flg=1;
- );
- );
- if(flg==1,
- tmp1=""; // 15.10.08 from
- if(iswindows(),
- tmp2=Batparent;
- ,
- tmp2=Shellparent;
- );
- flg=0;
- forall(reverse(1..length(tmp2)),
- if(flg==0,
- tmp=substring(tmp2,#-1,#);
- if(tmp=="/" % tmp=="\", // 14.01.15
- tmp1=substring(tmp2,0,#-1);
- tmp2=substring(tmp2,#,length(tmp2));
- flg=1;
- );
- );
- );
- if(length(tmp1)>0,
- setdirectory(tmp1);
- ); // 15.10.08 to
- if(iswindows(),
- SCEOUTPUT = openfile("kc.bat");
- println(SCEOUTPUT,"cd "+Dq+Dirwork+Dq);
- tmp=Dq+path+Dq+" -nb -nwni -f "+filename;
- println(SCEOUTPUT,tmp);
- println(SCEOUTPUT,"exit");
- closefile(SCEOUTPUT);
- println(kc(Dirwork+Batparent,Dirlib,Fnametex));// 16.05.29, 0605
- ,
- SCEOUTPUT = openfile("kc.sh");
- println(SCEOUTPUT,"#!/bin/sh");
- println(SCEOUTPUT,"cd "+Dq+Dirwork+Dq);
- tmp=Dq+path+Dq+" -nwni -f "+filename;
- println(SCEOUTPUT,tmp);
- println(SCEOUTPUT,"exit 0");
- closefile(SCEOUTPUT);
- println(kc(Dirwork+Shellparent,Mackc+Dirlib,Fnametex));// 16.05.29
- );
- wait(WaitUnit);
- setdirectory(Dirwork);
- );
-);
-
-SetpathS():=(
- regional(tmp,tmp1);
- if(!isstring(PathS), // 15.12.11
- Setdirectory(Dirbin); // 15.12.07
- tmp=load(Shellfile);
- if(iswindows(),
- tmp=tokenize(tmp," -nb");
- PathS=tmp_1;
- ,
- tmp=tokenize(tmp," -nwni");
- tmp=tokenize(tmp_1,"/Applications/sci");
- PathS="/Applications/sci"+tmp_2;
- );
- setdirectory(Dirwork);
- );
- PathS;
-);
-
-ErrhandleS(fname):=( // 2016.02.28
- regional(str); //17.04.14
- if(indexof(PathS,"-6.")==0,
- str=["if iserror(-1) then"," error=lasterror()+'????';"];
- str=append(str," errclear(-1);"); // 16.03.14
- str=append(str," Fd=mopen("+Dq+wfile+Dq+",'wt');");
- str=append(str," mfprintf(Fd,'%s','Error: '+error);");
- str=append(str," mclose(Fd);");
- str=append(str," quit();");
- str=append(str,"end;");
- str;
- ,
- str=[]; //17.04.14
- );
-);
-
-Testfunstr(funstr,varx,vary):=(
- regional(var,val,fun,tmp,tmp1,tmp2);
- fun=replace(funstr,".x","(1)"); // 16.05.19
- fun=replace(fun,".y","(2)"); // 16.05.19
- tmp=indexof(varx,"=");
- var=substring(varx,0,tmp-1);
- val=substring(varx,tmp+1,length(varx));
- tmp=indexof(val,",");
- val=substring(val,0,tmp-1);
- tmp1=replace(fun,var,"("+val+")");
- tmp=indexof(vary,"=");
- var=substring(vary,0,tmp-1);
- val=substring(vary,tmp+1,length(vary));
- tmp=indexof(val,",");
- val=substring(val,0,tmp-1);
- tmp1=replace(tmp1,var,"("+val+")");
- tmp1;
-);
-
-CalcbyS(name,cmd):=CalcbyS(name,SetpathS(),cmd,[]);
-CalcbyS(name,Arg1,Arg2):=(
- if(isstring(Arg1),
- CalcbyS(name,Arg1,Arg2,[]);
- ,
- CalcbyS(name,SetpathS(),Arg1,Arg2);
- );
-);
-CalcbyS(name,path,cmd,optionorg):=(
-//help:CalcbyS("a",cmd);
-//help:CalcbyS(options= ["m/r","Wait=10","Cat=middle"]]);
-//help:CalcbyS(options1= ["Ncol=2","File=result","Dig=5"]]);
- regional(options,tmp,tmp1,tmp2,tmp3,tmp4,realL,strL,eqL,
- ncoL,cat,dig,flg,wflg,file,nc,arg,cmdS,cmdlist,wfile,ext,
- waiting, errcheck);
- options=optionorg;
- tmp=divoptions(options);
- eqL=tmp_5;
- realL=tmp_6;
- strL=tmp_7;
- cat="M";//16.11.24
- ncoL=2;
- ext=".txt";
- waiting=10;
- dig=5;
- wfile="";
- forall(eqL,
- tmp=indexof(#,"=");
- tmp1=Toupper(substring(#,0,2));
- tmp2=substring(#,tmp,length(#));
- if(tmp1=="CA",
- cat=Toupper(substring(tmp2,0,1));// 16.11.24
- options=remove(options,[#]);
- );
- if(tmp1=="NC",
- ncoL=parse(tmp2);
- options=remove(options,[#]);
- );
- if(tmp1=="EX",
- if(indexof(tmp2,".")==0,ext="."+tmp2,ext=tmp2);
- options=remove(options,[#]);
- );
- if(tmp1=="WA",
- waiting=parse(tmp2);
- options=remove(options,[#]);
- );
- if(tmp1=="DI",
- dig=parse(tmp2);
- options=remove(options,[#]);
- );
- if(tmp1=="FI", // 16.06.26from
- wfile=tmp2;
- options=remove(options,[#]);
- ); // 16.06.26until
- );
- if(wfile=="",
- if(cat=="Y",
- wfile=Fhead+name;
- ,
- wfile="resultS";
- );
- );
- if(indexof(wfile,".")==0,// 16.06.26from
- wfile=wfile+ext;
- ); // 16.06.26until
- wflg=0;
- forall(strL,
- tmp=Toupper(substring(#,0,1));
- if(tmp=="M",
- wflg=1;
- options=remove(options,[#]);
- );
- if(tmp=="R",
- wflg=-1;
- options=remove(options,[#]);
- );
- );
- if(CONTINUED==0,
- if((wflg==0) & (cat=="Y"), // 16.11.24
- tmp=load(wfile);
- if(length(tmp)==0,wflg=1);
- );
- );
- file=Fhead+name;
- cmdS=cmd;
- cmdlist=[];
- forall(1..floor(length(cmdS)/2),nc, //17.05.18
- tmp1=cmdS_(2*nc-1);
- tmp1=replace(tmp1,LFmark,""); // 16.06.12
- tmp1=replace(tmp1,CRmark,""); // 16.12.13
- if(nc==length(cmdR)/2, //16.10.23from
- if(indexof(tmp1,"=")==0,tmp1="="+tmp1);
- ); //16.10.23from
- if(substring(tmp1,0,1)=="=",
-// tmp1=name+tmp1; // 16.12.20
- );
- tmp2=cmdS_(2*nc); // list of argments
- tmp3="";
- tmp4="";
- errcheck=0;
- forall(tmp2,arg,
- if(isstring(arg),
- if(Toupper(arg)=="ERROR",
- errcheck=1;
- ,
- tmp3=tmp3+replace(arg,"'",Dq)+",";
- );
- ,
- if(!islist(arg),
- tmp3=tmp3+textformat(arg,dig)+",";
- ,
- tmp=select(arg,isstring(#) % islist(#));
- if(length(tmp)>0,
- tmp3=tmp3+"list(";
- tmp4=")";
- ,
- tmp3=tmp3+"[";
- tmp4="]";
- );
- forall(arg,
- if(isstring(#),
- tmp3=tmp3+replace(#,"'",Dq)+",";
- ,
- if(!islist(#), // 15.11.01 from
- tmp3=tmp3+textformat(#,dig)+",";
- ,
- tmp=textformat(#,dig);
- tmp=replace(tmp,"],[","];[");
- tmp3=tmp3+tmp+",";
- ); // 15.11.01 until
- );
- );
- tmp3=substring(tmp3,0,length(tmp3)-1)+tmp4+",";
- );
- );
- );
- if(length(tmp3)>0,
- tmp3=substring(tmp3,0,length(tmp3)-1);
- tmp1=tmp1+"("+tmp3+");";
- );
- if(errcheck==1,
- if(indexof(Dirlib,"sciL5")>0, // 17.03.20
- cmdlist=append(cmdlist,"errcatch(-1,'continue','nomessage');");
- ); // 17.03.20
- );
- cmdlist=append(cmdlist,tmp1);
- if(errcheck==1,
- tmp=ErrhandleS(wfile);
- cmdlist=concat(cmdlist,tmp);
- );
- );
- if(CONTINUED==1,
- ComOutList=concat(ComOutList,cmdlist);
- ,
- if(cat=="Y",
- tmp=[];
- tmp=append(tmp,"Fd=mopen("+Dq+file+".txt"+Dq+",'wt');");
- // 16.03.11 from
- tmp=append(tmp,"mfprintf(Fd,'%s',"+name+");");
- tmp=append(tmp,"mclose(Fd);");
- cmdlist=concat(cmdlist,tmp);
-// tmp="fprintfMat("+Dq+file+".txt"+Dq+","+name+")";
-// cmdlist=append(cmdlist,tmp); // 16.03.11 until
- ,
-// tmp="mputl(['????'],"+Dq+file+".txt"+Dq+");"; // 16.06.2 from
-// cmdlist=concat(cmdlist,[tmp]); // 16.06.2 until
- );
- if(cat!="Y", // 16.12.18
- cmdlist=append(cmdlist,"mputl('||||','"+wfile+"')");
- );
- cmdlist=append(cmdlist,"quit()");
- if(wflg==0,
- tmp1=load(file+".sce");
- if(length(tmp1)==0,
- wflg=1;
- ,
- tmp1=tokenize(tmp1,"////");
- tmp1=tokenize(tmp1_2,"//");
- tmp1=tmp1_(1..(length(tmp1)-1));
- if(length(tmp1)!=length(cmdlist),
- wflg=1;
- ,
- tmp=select(1..length(tmp1),tmp1_#!=cmdlist_#);
- if(length(tmp)>0, wflg=1);
- );
- );
- );
- if(wflg==0,wflg=-1); // 15.10.16
- if(wflg==1,
- if(length(wfile)>0, // 15.10.05
- SCEOUTPUT=openfile(wfile);
- println(SCEOUTPUT,"");
- closefile(SCEOUTPUT);
- );
- WritetoS(file+".sce",cmdlist);
- kcS(path,file,concat(options,["m"])); // 15.09.25
- );
- flg=0;
- tmp1=floor(waiting*1000/WaitUnit);
- repeat(tmp1,
- if(flg==0,
- tmp=load(wfile);
- if(length(tmp)>=4,
- tmp2=substring(tmp,length(tmp)-4,length(tmp));
- if(tmp2=="////" % tmp2=="||||" % tmp2=="????", // 16.08.09
- if(indexof(Toupper(tmp),"ERROR")>0,
- println(tmp);
- flg=2;
- ,
- flg=1;
- );
- );
- tmp2=#*WaitUnit/1000;
- ,
- if(wflg==-1,
- flg=-1;
- ,
- wait(WaitUnit);
- );
- );
- );
- );
- if(flg<=0,
- ErrFlag=1;
- if(flg==-1,
- println(wfile+" does not exist");
- ,
- tmp="("+text(waiting)+" s )";
- println(wfile+" not generated "+tmp);
- );
- ,
- if(flg==1,
- println(" CalcbyS succeeded "+name+"("+text(tmp2)+" sec)"); //16.06.03
- ,
- ErrFlag=1;
- );
- );
- );
- if(wflg>-1,
-// wait(WaitUnit);
- );
-);
-
-Scifun(name,fun,argL):=Scifun(name,fun,argL,[]);//16.10.22
-Scifun(name,fun,argL,optionorg):=(
-//help:Scifun("1","date()",[]);
-//help:Scifun(options=["Disp=y"]);
- regional(nm,options,eqL,disp,cmdL,fname,
- tmp,tmp1,tmp2);
- nm="sc"+name;
- fname=Fhead+nm+".txt";
- options=optionorg;
- tmp=divoptions(options);
- precise=6;
- disp=1;
- pack=[];
- set=[];
- add="";
- eqL=tmp_5;
- forall(eqL,
- tmp=indexof(#,"=");
- tmp1=Toupper(substring(#,0,3));
- tmp2=substring(#,tmp,length(#));
- if((tmp1=="DIS") % (tmp1=="DSP") ,
- tmp=Toupper(substring(tmp2,0,1));
- if((tmp=="F") % (tmp=="N"),
- disp=0;
- );
- options=remove(options,[#]);
- );
- );
- cmdL=[];
- cmdL=concat(cmdL,[
- nm+"="+fun,argL,
- "Fd=mopen",[Dq+fname+Dq,Dq+"wt"+Dq],
- "Sla=char(47)+char(47);",[],
- "mputl",["string("+nm+")+Sla","Fd"],
- "mputl",["Sla","Fd"],
- "mclose",["Fd"]
- ]);
- options=append(options,"Wait=2");
- CalcbyS(nm,cmdL,options);
- if(ErrFlag==0,
- tmp=load(fname);
- tmp=replace(tmp,"////","");
- tmp=tokenize(tmp,"//");
- tmp=apply(tmp,if(!isstring(#),textformat(#,6),Dq+#+Dq));
- if(length(tmp)==1,
- tmp=tmp_1;
- );
- tmp=nm+"="+text(tmp);
- parse(tmp);
- if(disp==1, // 15.11.24
- println(nm+" is : ");
- println(parse(nm));
- );
- );
- parse(nm);
-);
-
-WritetoR(fname,cmdL):=WritetoR(fname,cmdL,[]);
-WritetoR(fname,cmdL,options):=(
-// help:WritetoR("outdata",cmdL);
- regional(eqL,tmp,tmp1,tmp2,filename,waiting);
- if(indexof(fname,".")==0,
- filename=fname+".r";
- ,
- filename=fname;
- );
- tmp=divoptions(options);
- eqL=tmp_5;
- waiting=5;
- forall(eqL,
- tmp=indexof(#,"=");
- tmp1=substring(#,0,tmp-1);
- tmp2=substring(#,tmp,length(#));
- if(Toupper(substring(tmp1,0,1))=="W",
- waiting=parse(tmp2);
- );
- );
- SCEOUTPUT = openfile(filename);
- tmp1=replace(Dirwork,"\","/");
- tmp="setwd("+Dq+tmp1+Dq+")##";
- println(SCEOUTPUT,tmp);
- tmp1=replace(Libname,"\","/"); // 17.09.24from
-// tmp="load('"+tmp1+".Rdata')"; # 17.10.12
- tmp="source('"+tmp1+".r')##"; // 17.09.24temporarily
- println(SCEOUTPUT,tmp);
- println(SCEOUTPUT,"Ketinit()##"); // 16.07.07
- tmp="Setwindow(c(XMIN,XMAX),c(YMIN,YMAX))####"; // 16.06.26from
- tmp=Assign(tmp,["XMIN",XMIN,"XMAX",XMAX,"YMIN",YMIN,"YMAX",YMAX]);
- println(SCEOUTPUT,tmp);
- forall(cmdL,
- println(SCEOUTPUT,#+"##");
- );
- closefile(SCEOUTPUT);
-// flg=0;
-// tmp1=floor(waiting*1000/WaitUnit);
-// repeat(tmp1,
-// if(flg==0,
-// tmp=load(filename);
-// if(length(tmp)>0,
-// flg=1;
-// ,
-// wait(WaitUnit);
-// );
-// );
-// );
-);
-
-kcR(path,fname):=kcR(path,fname,[]);
-kcR(path,fname,optionorg):=(
-//help:kcR(PathR,"boxdata");
-//help:kcR(options=["m/r","Wait=10"]);
- regional(options,tmp,tmp1,tmp2,eqL,strL,filename,ferr,flg);
- if(indexof(fname,".")==0,
- filename=fname+".r";
- ,
- filename=fname;
- );
- options=optionorg;
- tmp=Divoptions(options);
- eqL=tmp_5;
- strL=tmp_7;
- forall(eqL,
- tmp=indexof(#,"=");
- tmp1=substring(#,0,tmp-1);
- tmp2=substring(#,tmp,length(#));
- );
- flg=0;
- forall(strL,
- if(Toupper(substring(#,0,1))=="R",
- flg=0;
- options=remove(options,[#]);
- );
- if(Toupper(substring(#,0,1))=="M",
- flg=1;
- options=remove(options,[#]);
- );
- );
- if(flg==0,
- tmp2=replace(filename,".r",".txt");
- tmp1=load(tmp2);
- if(length(tmp1)==0,
- flg=1;
- );
- );
- if(flg==1,
- tmp1=""; // 15.10.08 from
- if(iswindows(),
- tmp2=Batparent;
- ,
- tmp2=Shellparent;
- );
- flg=0;
- forall(reverse(1..length(tmp2)),
- if(flg==0,
- tmp=substring(tmp2,#-1,#);
- if(tmp=="/" % tmp=="\", // 14.01.15
- tmp1=substring(tmp2,0,#-1);
- tmp2=substring(tmp2,#,length(tmp2));
- flg=1;
- );
- );
- );
- if(length(tmp1)>0,
- setdirectory(tmp1);
- ); // 15.10.08 to
- ferr="errormessageR.txt";//16.10.22from
- SCEOUTPUT=openfile(ferr);
- closefile(SCEOUTPUT);//16.10.22uptp
- if(iswindows(),
- SCEOUTPUT = openfile("kc.bat");
- println(SCEOUTPUT,"cd "+Dq+Dirwork+Dq);
- tmp=Dq+path+"\R"+Dq+" --vanilla --slave < "+filename+" 2> "+ferr;
- //16.10.22
- println(SCEOUTPUT,tmp);
- println(SCEOUTPUT,"exit");
- closefile(SCEOUTPUT);
- println(kc(Dirwork+Batparent,Dirlib,Fnametex));// 16.05.29,06.05
- ,
- SCEOUTPUT = openfile("kc.sh");
- println(SCEOUTPUT,"#!/bin/sh");
- println(SCEOUTPUT,"cd "+Dq+Dirwork+Dq);
- if(PathR=="",tmp="R",tmp=PathR);//16.10.20
- tmp=tmp+" --vanilla --slave < "+filename+" 2> "+ferr;//17.10.12
- println(SCEOUTPUT,tmp);
- println(SCEOUTPUT,"exit 0");
- closefile(SCEOUTPUT);
- println(kc(Dirwork+Shellparent,Mackc+Dirlib,Fnametex));// 16.05.29,06.05
- );
- wait(WaitUnit);
- setdirectory(Dirwork);
- );
-);
-
-Dataframe(nmL,dL):=Dataframe(nmL,dL,[]);
-Dataframe(nmL,dL,options):=(
-//help:Dataframe(["name","no1","no2"],dtL);
-//help:Dataframe(options=["Dig=5"]);
- regional(dig,tmp,tmp1,tmp2,out);
- dig=5;
- tmp=Divoptions(options);
- tmp=tmp_5;
- forall(tmp,
- tmp1=Toupper(substring(#,0,1));
- tmp2=indexof(#,"=");
- tmp2=substring(#,tmp2,length(#));
- if(tmp1=="D",
- dig=parse(tmp2);
- );
- );
- out="data.frame(";
- forall(1..(length(nmL)),
- tmp1=nmL_#;
- tmp2=column(dL,#);
- tmp2=apply(tmp2,if(isstring(#),Dq+#+Dq,format(#,dig)));
- tmp=tmp1+"="+tmp2+",";
- out=out+tmp;
- );
- out=substring(out,0,length(out)-1)+")";
- out=replace(out,"[","c(");
- out=replace(out,"]",")");
-);
-
-CalcbyR(name,cmd):=CalcbyR(name,PathR,cmd,[]);
-CalcbyR(name,Arg1,Arg2):=(
- if(isstring(Arg1),
- CalcbyR(name,Arg1,Arg2,[]);
- ,
- CalcbyR(name,PathR,Arg1,Arg2);
- );
-);
-CalcbyR(name,path,cmd,optionorg):=(
-//help:CalcbyR(name,cmd);
-//help:CalcbyR(options=["m/r","Wait=2","Out=yes","Pre=yes","Res=" ]);
- regional(options,tmp,tmp1,tmp2,tmp3,realL,strL,eqL,
- cat,dig,preflg,flg,wflg,file,nc,arg,cmdR,cmdlist,wfile,waiting);
- options=optionorg;
- tmp=divoptions(options);
- eqL=tmp_5;
- realL=tmp_6;
- strL=tmp_7;
- dig=5;
- cat="Y";
- wfile="";
- preflg=1;
- waiting=5;
- forall(eqL,
- tmp=indexof(#,"=");
- tmp1=Toupper(substring(#,0,1));
- tmp2=substring(#,tmp,length(#));
- if((tmp1=="C")%(tmp1=="O"),
- cat=Toupper(substring(tmp2,0,1));
- options=remove(options,[#]);
- );
- if(tmp1=="W",
- waiting=parse(tmp2);
- options=remove(options,[#]);
- );
- if(tmp1=="P", //18.01.27
- tmp2=substring(Toupper(tmp2),0,1);
- if(tmp2=="Y",preflg=1);
- if(tmp2=="N",preflg=0);
- options=remove(options,[#]);
- );
- if(tmp1=="D",
- dig=parse(tmp2);
- options=remove(options,[#]);
- );
- if(tmp1=="F",
- wfile=tmp2; //18.02.27
- options=remove(options,[#]);
- );
- if(tmp1=="R",
- wfile=tmp2; //180227
- options=remove(options,[#]);
- );
- );
- if(wfile=="",
- if(cat=="Y",
- wfile=Fhead+name+".txt";
- ,
- wfile="result.txt";
- );
- );
- wflg=0;
- forall(strL,
- tmp=Toupper(substring(#,0,1));
- if(tmp=="M",
- wflg=1;
- options=remove(options,[#]);
- );
- if(tmp=="R",
- wflg=-1;
- options=remove(options,[#]);
- );
- );
- if(CONTINUED==0,
- if((wflg==0) & (cat!="N"), // 16.11.13
- tmp=load(wfile);
- if(length(tmp)==0,wflg=1);
- );
- );
- file=Fhead+name;
- cmdR=[];
- if(preflg==1, //18.01.27from
- cmdR=MkprecommandR();
- );
- cmdR=concat(cmdR,cmd); //18.01.27until
- cmdlist=[];
- if(dig>5, //16.10.28from
- cmdlist=append(cmdlist,"options(digits="+text(dig+2)+");");
- ); //16.10.28until
- forall(1..floor(length(cmdR)/2),nc, //17.05.18
- tmp1=cmdR_(2*nc-1);
- tmp1=replace(tmp1,LFmark,""); // 16.06.12
- if(nc==length(cmdR)/2, //16.10.23from
-// if(indexof(tmp1,"=")==0,tmp1="="+tmp1);//16.12.20
- ); //16.10.23uptp
- if(substring(tmp1,0,1)=="=",
- tmp1=name+tmp1;
- );
- tmp2=cmdR_(2*nc); // list of argments
- tmp3="";
- forall(tmp2,arg,
- if(isstring(arg),
- tmp3=tmp3+replace(arg,"'",Dq)+",";
- ,
- if(length(arg)==1,
- tmp3=tmp3+textformat(arg,dig)+",";
- ,
- tmp3=tmp3+"c(";
- forall(arg,
- tmp3=tmp3+textformat(#,dig)+",";
- );
- tmp3=substring(tmp3,0,length(tmp3)-1)+")"+",";
- );
- );
- );
- if(length(tmp3)>0,
- tmp3=substring(tmp3,0,length(tmp3)-1);
- tmp1=tmp1+"("+tmp3+")";
- );
- cmdlist=append(cmdlist,tmp1);
- );
- tmp1=cmdlist_(length(cmdlist));
- if(indexof(tmp1,"=")==0,
- tmp1=tokenize(tmp1,"::");
- if(length(tmp1)==1,
- tmp2=name+"="+tmp1_1;
- ,
- tmp2=name+"=list(";
- forall(tmp1,
- tmp2=tmp2+#+",";
- );
- tmp2=substring(tmp2,0,length(tmp2)-1)+")";
- );
- cmdlist_(length(cmdlist))=tmp2;
- );
- if(CONTINUED==1,
- ComOutList=concat(ComOutList,cmdlist);
- ,
- if(cat=="Y", //16.10.23from
- tmp="sharp=rawToChar(as.raw(35))";
- cmdlist=append(cmdlist,tmp);
- tmp="sharps=paste(sharp,sharp,'\n',sep='')";
- cmdlist=append(cmdlist,tmp);
- tmp="if(Length("+name+")==0){"+name+"='nodata'}"; //18.01.29
- cmdlist=append(cmdlist,tmp);
- cmdlist=append(cmdlist,"if(is.matrix("+name+")){");
- cmdlist=append(cmdlist," tmp=list()");//18.02.01from
- cmdlist=append(cmdlist," for(ii in 1:Length("+name+")){");
- cmdlist=append(cmdlist," tmp=c(tmp,list(Op(ii,"+name+")))");
- cmdlist=append(cmdlist," }");
- cmdlist=append(cmdlist," "+name+"=tmp");
- cmdlist=append(cmdlist,"}");//18.02.01until
- cmdlist=append(cmdlist,"if(is.list("+name+")){");
-// tmp=" cat(names("+name+"),file='"+wfile+"',sep=',')"; //18.01.27deleted
-// cmdlist=append(cmdlist,tmp);
-// tmp=" cat(sharps,file='"+wfile+"',append=TRUE)";
-// cmdlist=append(cmdlist,tmp);
- cmdlist=append(cmdlist," for(ii in Looprange(1,length("+name+"))){");
- cmdlist=append(cmdlist," if(is.list("+name+"[[ii]])){");
- tmp=" cat('[',file='"+wfile+"',sep='',append=TRUE)";
- cmdlist=append(cmdlist,tmp);
- tmp=" cat(sharps,file='"+wfile+"',sep='',append=TRUE)";
- cmdlist=append(cmdlist,tmp);
- tmp=" for(jj in Looprange(1,length("+name+"[[ii]]))){";
- cmdlist=append(cmdlist,tmp);
- tmp=" cat("+name+"[[ii]][[jj]],file='"+wfile+"',sep=',',append=TRUE)";
- cmdlist=append(cmdlist,tmp);
- tmp=" cat(sharps,file='"+wfile+"',append=TRUE)";
- cmdlist=append(cmdlist,tmp);
- cmdlsit=append(cmdlist," }");
- cmdlist=append(cmdlist," }");
- tmp=" cat(']',file='"+wfile+"',sep=',',append=TRUE)";
- cmdlist=append(cmdlist,tmp);
- tmp=" cat(sharps,file='"+wfile+"',append=TRUE)";
- cmdlist=append(cmdlist,tmp);
- cmdlist=append(cmdlist," }else{");
- tmp=" cat("+name+"[[ii]],file='"+wfile+"',";
- tmp=tmp+"sep=',',append=TRUE)";
- cmdlist=append(cmdlist,tmp);
- tmp=" cat(sharps,file='"+wfile+"',append=TRUE)";
- cmdlist=append(cmdlist,tmp);
- cmdlist=append(cmdlist," }");
- cmdlist=append(cmdlist," }");
- cmdlist=append(cmdlist,"}else{");
- tmp=" cat("+name+",file='"+wfile+"',sep=',')";
- cmdlist=append(cmdlist,tmp);
- tmp=" cat(sharps,file='"+wfile+"',append=TRUE)";
- cmdlist=append(cmdlist,tmp);
- cmdlist=append(cmdlist,"}");
- tmp="cat('////',file='"+wfile+"',sep=',',append=TRUE)";
- cmdlist=append(cmdlist,tmp);
- ); //16.10.23until
- if(cat!="Y", // 16.12.18
- cmdlist=append(cmdlist,"cat('////',file='"+wfile+"',sep='')");
- );
- cmdlist=append(cmdlist,"quit()");
- if(wflg==0,
- tmp1=load(file+".r");
- if(length(tmp1)==0,
- wflg=1;
- ,
- tmp1=tokenize(tmp1,"####"); // 15.09.25 from
- tmp1=tokenize(tmp1_2,"##");
- tmp1=tmp1_(1..(length(tmp1)-1));
- if(length(tmp1)!=length(cmdlist),
- wflg=1;
- ,
- tmp=select(1..length(tmp1),tmp1_#!=cmdlist_#);
- if(length(tmp)>0, wflg=1);
- );
- ); // 15.09.25 to
- );
- if(wflg==0,wflg=-1); // 15.10.16
- if(wflg==1,
- if(length(wfile)>0, // 15.10.05
- SCEOUTPUT=openfile(wfile);
- println(SCEOUTPUT,"");
- closefile(SCEOUTPUT);
- );
- WritetoR(file+".r",cmdlist); //17.10.08
- SCEOUTPUT=openfile("errormessageR.txt");//18.02.20from
- println(SCEOUTPUT,"");
- closefile(SCEOUTPUT);//18.02.20until
- kcR(PathR,file,concat(options,["m"])); // 15.09.25
- );
- flg=0;
- tmp1=floor(waiting*1000/WaitUnit);
- repeat(tmp1,
- if(flg==0,
- tmp=load(wfile);
- if(length(tmp)>=4,
- tmp2=substring(tmp,length(tmp)-4,length(tmp));
- if(tmp2=="////",
- tmp=substring(tmp,0,length(tmp)-4);
- flg=1;
- tmp2=#*WaitUnit/1000;
- );
- ,
- if(wflg==-1,
- flg=-1;
- ,
- wait(WaitUnit);
- tmp=load("errormessageR.txt");//18.02.20
- if(length(tmp)>1,
- println(tmp);
- flg=-2;
- );//18.02.20
- );
- );
- );
- );
- if(flg<=0,
- ErrFlag=1;
- if(flg==-1,
- println(wfile+" does not exist");
- ,
- if(flg==0,
- tmp="("+text(waiting)+" s )";
- println(wfile+" not generated "+tmp);
- );
- );
- ,
- println(" CalcbyR succeeded "+name+" ("+text(tmp2)+" sec)");
- if(cat=="Y", // 16.10.29,11.25
- tmp1=tokenize(tmp,"##"); //16.10.23from
- tmp1=tmp1_(1..(length(tmp1)-1));
- tmp2=[];
- forall(tmp1,tmp3,
- if(!isstring(tmp3),
- tmp=format(tmp3,dig);
- ,
- if(indexof(tmp3,",")==0,
- tmp=Dqq(tmp3); //180227
- ,
- tmp=tmp3;
- if(substring(tmp3,0,2)=="c(",
- tmp=substring(tmp3,2,length(tmp3)-1);
- );
- tmp=tokenize(tmp,",");
- tmp=textformat(tmp,dig);
- );
- );
- tmp2=append(tmp2,tmp);
- );
- if(length(tmp2)==1,
- tmp2=tmp2_1;
- if(length(tmp2)==1,tmp2=tmp2_1);
- if(isstring(tmp2),
- if(indexof(tmp2,"nodata")>0,tmp2="[]"); //180227from
- tmp2=parse(tmp2);
- );
- tmp3=textformat(tmp2,dig);//180227until
- ,
- tmp3="";
- forall(tmp2,
- if(length(#)==0,
- tmp3=tmp3+"[],";
- ,
- tmp3=tmp3+#+",";
- );
- );
- tmp3="["+substring(tmp3,0,length(tmp3)-1)+"]";
- tmp3=replace(tmp3,"[,","[");
- tmp3=replace(tmp3,",]","]");
- );
- tmp=name+"="+tmp3;//180227
- parse(tmp);
- );
- );
- );
-);
-
-Rfun(name,fun,argL):=Rfun(name,fun,argL,[]);//16.10.22
-Rfun(name,fun,argL,optionorg):=(
-//help:Rfun("1","rnorm",[10]);
-//help:Rfun(options=["Disp=y"]);
- regional(nm,options,eqL,disp,cmdL,
- tmp,tmp1,tmp2);
- nm="R"+name;
- options=optionorg;
- tmp=divoptions(options);
- precise=6;
- disp=1;
- pack=[];
- set=[];
- add="";
- eqL=tmp_5;
- forall(eqL,
- tmp=indexof(#,"=");
- tmp1=Toupper(substring(#,0,3));
- tmp2=substring(#,tmp,length(#));
- if((tmp1=="DIS") % (tmp1=="DSP") ,
- tmp=Toupper(substring(tmp2,0,1));
- if((tmp=="F") % (tmp=="N"),
- disp=0;
- );
- options=remove(options,[#]);
- );
- );
- cmdL=[];
- cmdL=concat(cmdL,[
- nm+"="+fun,argL,
- ]);
- options=concat(options,["Wait=2"]);
- CalcbyR(nm,cmdL,options);
- if(ErrFlag==0,
- if(disp==1, // 15.11.24
- println(nm+" is : ");
- println(parse(nm));
- );
- );
- parse(nm);
-);
-
-Readcsv(file):=Readcsv(Dirwork,file,[]);
-Readcsv(Arg1,Arg2):=(
- if(isstring(Arg2),
- Readcsv(Arg1,Arg2,[]);
- ,
- Readcsv(Dirwork,Arg1,Arg2);
- );
-);
-Readcsv(pathorg,file,optionorg):=(
-//help:Readcsv("ex.csv");
-//help:Readcsv(directory,"ex.csv");
-//help:Readcsv(options=["Head=yes","Sep=-999","Flat=no","Use=R"]);
- regional(path,fname,fout,options,eqL,header,cmdL,sep,
- dt,nrow,tmp,tmp1,tmp2,csv,use,flat);
- options=optionorg;
- tmp=divoptions(options);
- eqL=tmp_5;
- header=1;
- sep="-999";
- csv="Y"; // 16.12.12
- use="R";
- flat="N";
- forall(eqL,
- tmp=indexof(#,"=");
- tmp1=substring(#,0,tmp-1);
- tmp2=substring(#,tmp,length(#));
- tmp=Toupper(substring(tmp1,0,2));
- if(tmp=="HE",
- tmp=Toupper(substring(tmp2,0,1));
- if(tmp=="F" % tmp=="N",
- header=0;
- options=remove(options,[#]);
- );
- );
-// if(tmp=="WA", // removed:17.02.19
-// waiting=parse(tmp2);
-// options=remove(options,[#]);
-// );
- if(tmp=="SE",
- sep=tmp2;
- options=remove(options,[#]);
- );
- if(tmp=="CS",
- csv=Toupper(substring(tmp2,0,1));
- options=remove(options,[#]);
- );
- if(tmp=="US",
- use=Toupper(substring(tmp2,0,1));
- options=remove(options,[#]);
- );
- if(tmp=="FL",
- flat=Toupper(substring(tmp2,0,1));
- options=remove(options,[#]);
- );
- );
- if(flat=="Y",csv="N");
- sep=","+sep;
- tmp=indexof(file,".");
- if(tmp==0,
- fname=file+".csv";
- fout=file+"sep.csv";
- ,
- fname=file;
- tmp1=substring(file,0,tmp-1);
- tmp2=substring(file,tmp-1,length(file));
- fout=tmp1+"sep"+tmp2;
- );
- path=pathorg;
- if(!isexists(path,fname),
- println(path+" "+fname+" not found");
- ,
- path=replace(path,"\","/");
- if(use=="S",
- cmdL=[ // 16.12.20from
- "cd('"+path+"')",[],
- "Dt=mgetl('"+fname+"');",[],
- "cd('"+Dirwork+"')",[],
- "Dt2=[]",[],
- "for I=1:size(Dt,1),
- Tmp=Dt(I,:)+'"+sep+"';
- Dt2=[Dt2;Tmp];
- end",[],
- "mputl(Dt2,'"+fout+"')",[]
- ];
- CalcbyS("sep",cmdL,options);
- ,
- cmdL=[
- "setwd",[Dq+path+Dq],
- "tmp1=readLines",[Dq+fname+Dq,"warn=FALSE"],
- "fun=function(s) paste(s,"+Dq+sep+Dq+",sep="+Dq+Dq+")",[],
- "tmp2=sapply(tmp1,fun)",[],
- "writeLines",["tmp2",Dq+fout+Dq]
- ];
- CalcbyR("sep",cmdL,concat(options,["Cat=n"]));
- ); // 16.12.20until
- if(ErrFlag==1,
- println("Readcsv not completed");
- ,
- dt=load(fout);
- dt=tokenize(dt,sep);
- dt=dt_(1..(length(dt)-1));//16.12.20
- if(isstring(dt_1),// 17.02.10from
- if(indexof(dt_1,",")==0,csv="N");
- ,
- csv="N";
- );// 17.02.10until
- if(csv=="Y",
- dt=apply(dt,tokenize(#,","));
- ,
- dt=apply(dt,[#]);
- );
- forall(1..(length(dt)),nrow,
- tmp1=dt_nrow;
- tmp2=[];
- forall(tmp1,
- if(!isstring(#),
- tmp=#;
- ,
- if(substring(#,0,1)==Dq,
- tmp=parse(#);
- ,
- tmp=#;
- );
- );
- tmp2=append(tmp2,tmp);
- );
- dt_nrow=tmp2;
- );
- if(header==0,dt=dt_(2..(length(dt))));
- if(length(dt)==1,
- dt=dt_1
- ,
- if(length(dt_1)==1,
- dt=apply(dt,#_1);
- );
- );
- dt;
- );
- );
-);
-
-Writecsv(nmL,data,file):=Writecsv(nmL,data,file,[]);
-Writecsv(nmL,dataorg,file,optionorg):=(
-//help:Writecsv([],data,"ex.csv");
-//help:Writecsv(["a","b"],data,"ex.csv");
-//help:Writecsv(optins=["Col=1"]);
- regional(nameL,data,eqL,strL,ncol,nrow,fname,dig,tmp,tmp1,tmp2);
- ncol=0; // 17.02.09from
- dig=5;
- if(isstring(dataorg),data=parse(dataorg),data=dataorg);
- if(islist(data_1),
- ncol=length(data_1);
- data=flatten(data);
- ); // 17.02.09until
- options=optionorg;
- tmp=divoptions(options);
- eqL=tmp_5;
- forall(eqL,
- tmp=indexof(#,"=");
- tmp1=substring(#,0,tmp-1);
- tmp2=substring(#,tmp,length(#));
- if(Toupper(substring(tmp1,0,1))=="C",
- ncol=parse(tmp2);
- options=remove(options,[#]);
- );
- );
- if(indexof(file,".")==0,fname=file+".csv",fname=file);
- if(ncol==0,ncol=max(1,length(nmL)));
- tmp1=mod(length(data),ncol);
- if(tmp1>0,
- tmp=apply(1..(ncol-tmp1),-1);
- data=concat(data,tmp);
- );
- nrow=length(data)/ncol;
- if(length(nmL)<ncol,
- nameL=apply(1..ncol,"c"+text(#));
-// tmp=nameL_length(nameL)+"##";//17.02.09
- tmp=nameL_(length(nameL));//17.02.09
- nameL_(length(nameL))=tmp;
- ,
- nameL=nmL;
- );
- SCEOUTPUT=openfile(fname);
- tmp=text(nameL);
- println(SCEOUTPUT,substring(tmp,1,length(tmp)-1));
- forall(1..nrow,
- tmp1=data_(((#-1)*ncol+1)..(#*ncol));
- tmp2="";
- forall(tmp1,
- tmp2=tmp2+textformat(#,5)+",";
- );
- tmp2=substring(tmp2,0,length(tmp2)-1);
- println(SCEOUTPUT,tmp2);
- );
- closefile(SCEOUTPUT);
-);
-
-Hatchdata(nm,iostr,pltlist):=Hatchdata(nm,iostr,pltlist,[]);
-Hatchdata(nm,iostr,pltlist,optionorg):=( //17.09.18
-//help:Hatchdata("1","ii",[["gr1"],["gr2","n"]]);
-//help:Hatchdata(options=["Wait=5"]);
- regional(options,name,eqL,reL,strL,
- plt,fname,options,tmp,tmp1,tmp2,tmp3,flg,wflg,waiting);
- name="ha"+nm;
- fname=Fhead+name+".txt";
- options=optionorg;
- tmp=Divoptions(options);
- eqL=tmp_5;
- reL=tmp_6;
- strL=tmp_7;
- waiting=5;
- forall(eqL,
- tmp=indexof(#,"=");
- tmp1=Toupper(substring(#,0,1));
- tmp2=substring(#,tmp,length(#));
- if(tmp1=="W",
- waiting=parse(tmp2);
- options=remove(options,[#]);
- );
- );
- wflg=0;
- forall(strL,
- tmp=Toupper(substring(#,0,1));
- if(length(#)==0,
- options=remove(options,[#]);
- );
- if(tmp=="M",
- wflg=1;
- options=remove(options,[#]);
- );
- if(tmp=="R",
- wflg=-1;
- options=remove(options,[#]);
- );
- );
- if(islist(iostr),
- tmp1=text(apply(iostr,Dq+#+Dq));
- tmp1=replace(tmp1,"[","list("); //16.02.14
- tmp1=replace(tmp1,"]",")"); //16.02.14
- ,
- tmp1=Dq+iostr+Dq;
- );
- if(!islist(pltlist_1),
- tmp2=apply(pltlist,if(length(#)==1,Dq+#+Dq,Chunderscore(#)));
- tmp2=text(tmp2);
- tmp2="list("+substring(tmp2,1,length(tmp2)-1)+"),";
- ,
- tmp2="";
- forall(pltlist,plt,
- tmp=apply(plt,if(length(#)==1,Dq+#+Dq,Chunderscore(#))); // 16.04.06
- tmp=text(tmp);
- tmp="list("+substring(tmp,1,length(tmp)-1)+")";
- tmp2=tmp2+tmp+",";
- );
- );
- cmdL=MkprecommandR();
- tmp2=substring(tmp2,0,length(tmp2)-1);
- tmp=[tmp1,tmp2];
- tmp=concat(tmp,reL);
- cmdL=concat(cmdL,[
- "Setscaling",[SCALEY],
- "Setunitlen",[Dq+ULEN+Dq],
- name+"=Hatchdata",tmp, //16.12.23
- "WriteOutData",[Dq+fname+Dq,Dq+name+Dq,name]
- ]);
- options=append(options,"Wait="+text(waiting));
- if(wflg==1,options=concat(options,["m"]));
- if(wflg==-1,options=concat(options,["r"]));
- options=append(options,"Cat=no");
- if(ErrFlag==0,
- CalcbyR(name,cmdL,options);
- );
- if(ErrFlag==1,
- err("Hatchdata not completed");
- ,
- if(ErrFlag==0,
- ReadOutData(fname);
- Extractdata(name,options);
- );
- );
-);
-
-PlotdataR(name1,func,var):=PlotdataR(name1,PathR,func,var);
-PlotdataR(name1,Arg1,Arg2,Arg3):=(
- if(islist(Arg3),
- PlotdataR(name1,PathR,Arg1,Arg2,Arg3);
- ,
- PlotdataR(name1,Arg1,Arg2,Arg3,[]);
- );
-);
-PlotdataR(name1,path,func,variable,optionorg):=(
-//help:PlotdataR("1","dnorm(x)","x");
-//help:PlotdataR(options=["m/r","Num=50","Wait=10"]);
- regional(options,tmp,tmp1,tmp2,tmp3,name,varstr,flg,Num,
- Ltype,Noflg,eqL,strL,flg,outreg,filename,wfile,cmdL,waiting);
- name="grR"+name1;
- options=optionorg;
- tmp=Divoptions(options);
- eqL=tmp_5;
- strL=tmp_7;
- Num=50;
- waiting=5;
- outreg=0;
- flg=0;
- forall(eqL,
- tmp=indexof(#,"=");
- tmp1=substring(#,tmp,length(#));
- if(Toupper(substring(#,0,1))=="N",
- Num=parse(tmp1);
- options=remove(options,[#]);
- );
- if(Toupper(substring(#,0,1))=="W",
- waiting=parse(tmp1);
- options=remove(options,[#]);
- );
- if(Toupper(substring(#,0,1))=="O",
- tmp=Toupper(substring(tmp1,0,1));
- if(tmp=="T" % tmp=="Y", outreg=1);
- options=remove(options,[#]);
- );
- );
- tmp=indexof(variable,"=");
- if(tmp>0,
- varstr=variable;
- ,
- varstr=variable+"="+textformat([XMIN,XMAX],5);
- );
- varstr=replace(varstr,"[","c(");
- varstr=replace(varstr,"]",")");
- filename=Fhead+name+".r";
- wfile=Fhead+name+".txt";
- cmdL=MkprecommandR();
- cmdL=concat(cmdL,[
- name+"=Plotdata",[Dq+func+Dq,Dq+varstr+Dq,Dq+"Num="+text(Num)+Dq],
- "WriteOutData",[Dq+wfile+Dq,Dq+name+Dq,name]
- ]);
- if(ErrFlag==0,
- CalcbyR(name,cmdL,concat(options,["Cat=middle","Wait="+text(waiting)]));
- );
- if(ErrFlag==1,
- println("PlotdataR not completed");
- ,
- if(outreg==1,
- OutFileList=remove(OutFileList,[wfile]);
- OutFileList=append(OutFileList,wfile);
- );
- ReadOutData(wfile);
- Extractdata(name,options);
- tmp=parse(name);
- tmp1=name+"="+textformat(tmp,5);
- parse(tmp1);
- tmp2=apply(tmp,Lcrd(#));
- tmp2;
- );
-);
-
-PlotdiscR(nm,fun,varrng):=PlotdiscR(nm,fun,varrng,[]);
-PlotdiscR(nm,fun,varrng,options):=(
-//help:PlotdiscR("1","dbinom(k,10,0.4)","k=[0,10]");
- regional(name,pb,cmdL,var,range,tmp,tmp1,tmp2,wfile);
- name="grd"+nm;
- tmp=indexof(varrng,"=");
- var=substring(varrng,0,tmp-1);
- range=parse(substring(varrng,tmp,length(varrng)));
- if(length(range)==2,
- range=(range_1)..(range_2);
- );
- cmdL=[
- "fnb=function("+var+") "+fun,[],
- name+"=sapply",[range,"fnb"]
- ];
- wfile=Fhead+name+".txt";
- if(ErrFlag==0,
- CalcbyR(name,cmdL,options);
- );
- if(ErrFlag==1,
- println("PlotdiscR not completed");
- ,
- tmp1=load(wfile);
- tmp1=substring(tmp1,0,length(tmp1)-4);
- tmp1=replace(tmp1,"##","");
- pb=tokenize(tmp1,",");
- tmp=apply(range,[#,pb_(#+1)]);
- Listplot(name,tmp,options);
- );
-);
-
-Boxplot(nm,dataorg,ypos,dy):=Boxplot(nm,dataorg,ypos,dy,[]);
-Boxplot(nm,dataorg,ypos,dy,optionorg):=(
-//help:Boxplot("1",dt,2,1/2,[""]);
- regional(options,name,data,bp,cmdL,waiting,tmp,tmp1,tmp2,tmp3,tmp4,
- out,eqL,strL,pstr,ext,file,flg,wrflg);
- name="bp"+nm;
- options=optionorg;
- tmp=divoptions(options);
- eqL=tmp_5;
- strL=tmp_7;
- waiting=3;
- wrflg=0;
- forall(eqL,
- tmp=indexof(#,"=");
- tmp1=substring(#,0,tmp-1);
- tmp2=substring(#,tmp,length(#));
- if(Toupper(substring(tmp1,0,1))=="W",
- waiting=parse(tmp2);
- options=remove(options,[#]);
- );
- );
- forall(strL,
- tmp=Toupper(substring(#,0,1));
- if(tmp=="R",
- wrflg=-1;
- options=remove(options,[#]);
- );
- if(tmp=="M",
- wrflg=1;
- options=remove(options,[#]);
- );
- );
- data=dataorg;
- if(isstring(data),
- if(indexof(data,".")==0,data=data+".dat");
- if(iswindows(), // 15.11.10
- data=replace(data,"/","\");
- flg="\";
- ,
- data=replace(data,"\","/");
- flg="/";
- );
- forall(reverse(1..length(data)),
- if(length(flg)>0,
- tmp=substring(data,#-1,#);
- if(tmp==flg,
- tmp3=substring(data,0,#-1);
- tmp4=substring(data,#,length(data));
- if(indexof(tmp3,":")==0, // 11.11.10
- tmp=substring(tmp3,0,1);
- if(tmp!=flg,
- tmp3=Dirwork+flg+tmp3;
- );
- );
- flg="";
- );
- );
- );
- if(length(flg)>0,
- tmp3=Dirwork; //15.11.10
- tmp4=data;
- );
- setdirectory(tmp3);
- tmp=load(tmp4);
- if(length(tmp)==0, ErrFlag=2); // 15.11.07 until
- setdirectory(Dirwork);
- ,
- file=Fhead+name+".dat";
- tmp=load(file);
- if(length(tmp)>0,
- tmp1=tokenize(tmp,",");
- tmp1=tmp1_(1..(length(tmp1)-1));
- ,
- tmp1=[];
- );
- flg=0;
- if(length(tmp1)==length(data),
- tmp=tmp1-data;
- tmp=select(tmp,#!=0);
- if(length(tmp)>0,flg=1);
- ,
- flg=1;
- );
- if(flg==1,
- SCEOUTPUT=openfile(file);
- forall(data,
- print(SCEOUTPUT,textformat(#,5)+",");
- );
- println(SCEOUTPUT,"////");
- closefile(SCEOUTPUT);
-// wait(WaitUnit);
- );
- data=file;
- );
- data=replace(data,"\","/");
- cmdL=[
- "tmp=readLines",[Dq+data+Dq, "warn=FALSE"],
- "tmp=substring",["tmp",1,"nchar(tmp)-4"],
- "data=strsplit",["tmp",Dq+","+Dq,"fix=TRUE"],
- "data=data[[1]]",[],
- "fun=function(s) eval(parse(text=s))",[],
- "data=sapply",["data","fun"],
- "data=data[!is.na(data)]",[],
- "tmp=boxplot",["data","plot=FALSE"],
- "tmp1=tmp$stat",[],
- "tmp2=tmp$out",[],
- name+"=c(tmp1,tmp2)",[]
- ];
- file=Fhead+name+".txt";
- options=append(options,"Wait="+text(waiting));
- if(wrflg==1,options=append(options,"m"));
- if(wrflg==-1,options=append(options,"r"));
- if(ErrFlag==0,
- CalcbyR(name,cmdL,options);
- );
- if(ErrFlag>0,
- if(ErrFlag==1,println("Boxplot not completed"));
- if(ErrFlag==2,println(Dq+data+Dq+" not found"));
- ,
- bp=parse(name);
- pstr="[";
- tmp1=[bp_1,ypos-dy/2];
- tmp2=[bp_1,ypos+dy/2];
- Listplot(name+text(1),[tmp1,tmp2],["Msg=no"]);
- pstr=pstr+Dq+"sg"+name+text(1)+Dq+",";
- tmp1=[bp_2,ypos-dy];
- tmp2=[bp_2,ypos+dy];
- tmp3=[bp_4,ypos+dy];
- tmp4=[bp_4,ypos-dy];
- Listplot(name+text(2),[tmp1,tmp2,tmp3,tmp4,tmp1],["Msg=no"]);
- pstr=pstr+Dq+"sg"+name+text(2)+Dq+",";
- tmp1=[bp_5,ypos-dy/2];
- tmp2=[bp_5,ypos+dy/2];
- Listplot(name+text(3),[tmp1,tmp2],["Msg=no"]);
- pstr=pstr+Dq+"sg"+name+text(3)+Dq+",";
- tmp1=[bp_3,ypos-dy];
- tmp2=[bp_3,ypos+dy];
- Listplot(name+text(4),[tmp1,tmp2],["dr,2","Msg=no"]);
- pstr=pstr+Dq+"sg"+name+text(4)+Dq+",";
- tmp1=[bp_1,ypos];
- tmp2=[bp_2,ypos];
- Listplot(name+text(5),[tmp1,tmp2],["da","Msg=no"]);
- pstr=pstr+Dq+"sg"+name+text(5)+Dq+",";
- tmp1=[bp_4,ypos];
- tmp2=[bp_5,ypos];
- Listplot(name+text(6),[tmp1,tmp2],["da","Msg=no"]);
- pstr=pstr+Dq+"sg"+name+text(6)+Dq+",";
- out=bp_(6..length(bp));
- if(length(out)>0,
- out=apply(out,[#,ypos]);
- Pointdata(name+text(1),out,[0,"Size=4"]);
- );
- pstr=substring(pstr,0,length(pstr)-1)+"]";
- println("generate totally "+name);
- tmp=name+"="+pstr;
- [bp_(1..5),out];
- );
-);
-
-Histplot(nm,dataorg):=Histplot(nm,dataorg,[]);
-Histplot(nm,dataorg,optionorg):=(
-//help:Histplot("1",data(fillename));
-//help:Histplot(options=["Breaks=","Den=no","Rel=no"]);
- regional(options,name,data,waiting,hp,cmdL,tmp,tmp1,tmp2,tmp3,tmp4,
- out,eqL,strL,breaks,bdata,cdata,pstr,file,flg,rwflg,density,relative);
- name="hp"+nm;
- options=optionorg;
- tmp=divoptions(options);
- eqL=tmp_5;
- strL=tmp_7;
- breaks = "breaks="+Dq+"Sturges"+Dq;
- density=0;
- relative=0;
- waiting=3;
- forall(eqL,
- tmp=indexof(#,"=");
- tmp1=substring(#,tmp,length(#));
- if(Toupper(substring(#,0,1))=="B",
- if(substring(tmp1,0,1)=="[",
- tmp1="c("+substring(tmp1,1,length(tmp1)-1)+")";
- );
- breaks="breaks="+tmp1;
- options=remove(options,[#]);
- );
- if(Toupper(substring(#,0,1))=="D",
- tmp2=Toupper(substring(tmp1,0,1));
- if(tmp2=="T" % tmp2=="Y",
- density=1;
- );
- options=remove(options,[#]);
- );
- if(Toupper(substring(#,0,1))=="R",
- tmp2=Toupper(substring(tmp1,0,1));
- if(tmp2=="T" % tmp2=="Y",
- relative=1;
- );
- options=remove(options,[#]);
- );
- if(Toupper(substring(#,0,1))=="W",
- waiting=parse(tmp1);
- options=remove(options,[#]);
- );
- );
- wrflg=0;
- forall(strL,
- tmp=Toupper(substring(#,0,1));
- if(tmp=="R",
- wrflg=-1;
- options=remove(options,[#]);
- );
- if(tmp=="M",
- wrflg=1;
- options=remove(options,[#]);
- );
- );
- data=dataorg;
- if(isstring(data),
- if(indexof(data,".")==0,data=data+".csv");
- if(iswindows(), // 15.11.10
- data=replace(data,"/","\");
- flg="\";
- ,
- data=replace(data,"\","/");
- flg="/";
- );
- forall(reverse(1..length(data)),
- if(length(flg)>0,
- tmp=substring(data,#-1,#);
- if(tmp==flg,
- tmp3=substring(data,0,#-1);
- tmp4=substring(data,#,length(data));
- if(indexof(tmp3,":")==0, // 11.11.10
- tmp=substring(tmp3,0,1);
- if(tmp!=flg,
- tmp3=Dirwork+flg+tmp3;
- );
- );
- flg="";
- );
- );
- );
- if(length(flg)>0,
- tmp3=Dirwork; //15.11.10
- tmp4=data;
- );
- setdirectory(tmp3);
- tmp=load(tmp4);
- if(length(tmp)==0, ErrFlag=2); // 15.11.07 until
- setdirectory(Dirwork);
- ,
- file=Fhead+name+".dat";
- tmp=load(file);
- if(length(tmp)>0,
- tmp1=tokenize(tmp,",");
- tmp1=tmp1_(1..(length(tmp1)-1));
- ,
- tmp1=[];
- );
- flg=0;
- if(length(tmp1)==length(data),
- tmp=tmp1-data;
- tmp=select(tmp,#!=0);
- if(length(tmp)>0,flg=1);
- ,
- flg=1;
- );
- if(flg==1,
- SCEOUTPUT=openfile(file);
- forall(data,
- print(SCEOUTPUT,textformat(#,5)+",");
- );
- println(SCEOUTPUT,"////");
- closefile(SCEOUTPUT);
-// wait(WaitUnit);
- );
- data=file;
- );
- data=replace(data,"\","/");
- cmdL=[
- "tmp=readLines",[Dq+data+Dq, "warn=FALSE"],
- "tmp=substring",["tmp",1,"nchar(tmp)-4"],
- "data=strsplit",["tmp",Dq+","+Dq,"fix=TRUE"],
- "data=data[[1]]",[],
- "fun=function(s) eval(parse(text=s))",[],
- "data=sapply",["data","fun"],
- "data=data[!is.na(data)]",[],
- "tmp=hist",["data","plot=FALSE",breaks],
- "tmp1=tmp$breaks",[],
- "tmp2=tmp$count",[],
- "tmp3=tmp$density",[],
- name+"=c(tmp1,tmp2,tmp3)",[]
- ];
- file=Fhead+name+".txt";
- options=append(options,"Wait="+text(waiting));
- if(wrflg==1,options=append(options,"m"));
- if(wrflg==-1,options=append(options,"r"));
- if(ErrFlag==0,
- CalcbyR(name,cmdL,options);
- );
- if(ErrFlag>0,
- if(ErrFlag==1,println("Histplot not completed"));
- if(ErrFlag==2,println(Dq+data+Dq+" not found"));
- ,
-// tmp=load(file);
-// tmp=replace(tmp,"/","");
-// tmp=tokenize(tmp,",");
-// tmp=name+"="+textformat(tmp,5);
-// parse(tmp);
- hp=parse(name);
- tmp1=(length(hp)-1)/3+1;
- tmp2=tmp1+(length(hp)-1)/3;
- bdata=hp_(1..tmp1);
- if(density==0,
- cdata=hp_((tmp1+1)..tmp2);
- ,
- cdata=hp_((tmp2+1)..length(hp));
- );
- if(relative==1,
- cdata=cdata/sum(cdata);
- );
- options=append(options,"Msg=no"); // 15.10.03
- pstr="[";
- forall(1..length(cdata),
- tmp1=[bdata_#,0];
- tmp2=[bdata_#,cdata_#];
- tmp3=[bdata_(#+1),cdata_#];
- tmp4=[bdata_(#+1),0];
- Listplot(name+text(#),[tmp1,tmp2,tmp3,tmp4,tmp1],options);
- pstr=pstr+Dq+"sg"+name+text(#)+Dq+",";
- );
- pstr=substring(pstr,0,length(pstr)-1)+"]";
- println("generate totally "+name);
- tmp=name+"="+pstr;
- parse(tmp);
- [bdata,cdata];
- );
-);
-
-Scatterplot(nm,file):=Scatterplot(nm,file,[]);
-Scatterplot(nm,file,optionorg):=(
-//help:Scatterplot("1",path+filename);
-//help:Scatterplot(options=["Reg=yes",A,B,C,"Size"=4"]);
- regional(tmp,tmp1,tmp2,fname,name,reg,eqL,reL,cdysize,
- options,dtx,dty,nn,mx,my,sx,sy,sxy,rr,aa,bb,size);
- name="sc"+nm;
- options=optionorg;
- tmp=divoptions(options);
- eqL=tmp_5;
- reL=tmp_6;
- options=remove(options,reL);
- cdysize=select(options,indexof(#,"size->")>0);
- options=remove(options,cdysize);
- size=4;
- reg="yes";
- forall(eqL,
- tmp=indexof(#,"=");
- tmp1=Toupper(substring(#,0,1));
- tmp2=substring(#,tmp,length(#));
- if(tmp1=="R",
- reg=tmp2;
- options=remove(options,[#]);
- );
- if(tmp1=="S",
- size=parse(tmp2);
- options=remove(options,[#]);
- );
- );
- if(indexof(file,".")==0,
- fname=file+".csv";
- ,
- fname=file;
- );
- Readcsv(nm,fname);
- tmp=concat(options,cdysize);
- Pointdata(name,parse("rc"+nm),append(tmp,"Size="+text(size)));
- tmp=parse("rc"+nm);
- dtx=apply(tmp,#_1);
- dty=apply(tmp,#_2);
- nn=length(dtx);
- mx=sum(dtx)/nn;
- my=sum(dty)/nn;
- sx=sqrt(dtx*dtx/nn-mx^2);
- sy=sqrt(dty*dty/nn-my^2);
- sxy=dtx*dty/nn-mx*my;
- rr=sxy/sx/sy;
- aa=sxy/sx^2;
- bb=my-aa*mx;
- tmp=Assign("a*x+b",["a",aa,"b",bb]);
- if(reg!="no",
- Plotdata(name,tmp,"x",append(options,"Num=2"));
- );
- if(length(reL)>=2,
- Framedata2(name,[reL_1,reL_2]);
- if(length(reL)>2,
- tmp="r="+textformat(rr,3)+",\ y=";
- tmp=tmp+textformat(aa,3)+"x";
- if(bb>0,tmp=tmp+"+",tmp=tmp+"-");
- tmp=tmp+textformat(abs(bb),3);
- Expr([reL_3,"e",tmp]);
- );
- );
- [mx,my,sx,sy,sxy,rr,bb,aa];
-);
-
-Rulerscale(pt,hscale,vscale):=Rulerscale(pt,hscale,vscale,0.1);
-Rulerscale(pt,hscale,vscale,tick):=(
-//help:Rulerscale(A,["r",0,5,1],["s2",0,2,4]);
-//help:Rulerscale(A,["r",0,5,1],["f",10,"a",20,"w2","b"]);
-//help:Rulerscale(A,["r",0,5,1],["r",0,10,1],0.2);
- regional(pA,pos,mrk,dir,tmp,tmp1,tmp2,tmp3);
- pA=Lcrd(pt);
- if(length(hscale)>0,
- pos=[]; mrk=[]; dir=[];
- tmp=Toupper(substring(hscale_1,0,1));
- if(tmp=="R" % tmp=="F",
- if(tmp=="R",
- dir="s2";
- tmp1=hscale_2;
- tmp2=hscale_3;
- tmp3=hscale_4;
- tmp=floor((tmp2-tmp1)/tmp3);
- pos=apply(0..tmp,tmp1+#*tmp3);
- mrk=apply(pos,text(#));
- dir=apply(1..length(pos),"s2");
- ,
- forall(2..(length(hscale)-2),
- tmp1=hscale_(#);
- tmp2=hscale_(#+1);
- tmp3=hscale_(#+2);
- if(isreal(tmp1),
- pos=append(pos,tmp1);
- if(isstring(tmp3),
- dir=append(dir,tmp2);
- mrk=append(mrk,tmp3);
- ,
- dir=append(dir,"s2");
- mrk=append(mrk,tmp2);
- );
- );
- );
- if(isreal(tmp2),
- pos=append(pos,tmp2);
- dir=append(dir,"s2");
- mrk=append(mrk,tmp3);
- );
- );
- ,
- pos=hscale_(2..length(hscale));
- dir=apply(pos,"s2");
- mrk=apply(pos,text(#));
- );
- pos=apply(pos,[#,pA_2]);
- forall(1..length(pos),
- Expr([pos_#,dir_#,mrk_#]);
- tmp1=pos_#;
- tmp2=pos_#-[0,tick/SCALEY];
- Listplot("rsh"+text(#),[tmp1,tmp2],["Msg=no"]);
- );
- );
- if(length(vscale)>0,
- pos=[]; mrk=[]; dir=[];
- tmp=Toupper(substring(vscale_1,0,1));
- if(tmp=="R" % tmp=="F",
- if(tmp=="R",
- dir="w2";
- tmp1=vscale_2;
- tmp2=vscale_3;
- tmp3=vscale_4;
- tmp=floor((tmp2-tmp1)/tmp3);
- pos=apply(0..tmp,tmp1+#*tmp3);
- mrk=apply(pos,text(#));
- dir=apply(1..length(pos),"w2");
- ,
- forall(2..(length(vscale)-2),
- tmp1=vscale_(#);
- tmp2=vscale_(#+1);
- tmp3=vscale_(#+2);
- if(isreal(tmp1),
- pos=append(pos,tmp1);
- if(isstring(tmp3),
- dir=append(dir,tmp2);
- mrk=append(mrk,tmp3);
- ,
- dir=append(dir,"w2");
- mrk=append(mrk,tmp2);
- );
- );
- );
- if(isreal(tmp2),
- pos=append(pos,tmp2);
- dir=append(dir,"w2");
- mrk=append(mrk,tmp3);
- );
- );
- ,
- pos=vscale_(2..length(vscale));
- dir=apply(pos,"w1");
- mrk=apply(pos,text(#));
- );
- pos=apply(pos,[pA_1,#]);
- forall(1..length(pos),
- Expr([pos_#,dir_#,mrk_#]);
- tmp1=pos_#;
- tmp2=pos_#-[tick/SCALEX,0];
- Listplot("rsv"+text(#),[tmp1,tmp2],["Msg=no"]);
- );
- );
-);
-
-MkprecommandR():=MkprecommandR(6);
-MkprecommandR(prec):=(
- regional(cmdL,Plist,tmp,tmp1,tmp2);
- Plist=[];
- Pnamelist=[];
- Pvaluelist=[];
- forall(remove(allpoints(),[SW,NE]),
- tmp=textformat(re(Lcrd(#)),prec);
- tmp=RSform(tmp);
- tmp1=#.name;
- tmp1=tmp1+"="+tmp+";Assignadd('"+tmp1+"',"+tmp1+")";
- Plist=append(Plist,tmp1);
- );
- cmdL=[];
- forall(1..(length(Plist)),
- cmdL=concat(cmdL,[Plist_#,[]]);
- );
- tmp2=sort(apply(VLIST,#_1)); // 16.02.03 from
- tmp=apply(allpoints(),text(#));//18.02.11
- tmp2=remove(tmp2,tmp);
- tmp1=[];
- forall(tmp2,tmp,
- tmp1=concat(tmp1,select(VLIST,#_1==tmp));
- );
- VLIST=tmp1;// 17.09.24from
- forall(VLIST,
- tmp=#_1;
- tmp1=#_2;
- if(!isstring(tmp1),
- if(islist(tmp1),
- tmp2="[";
- forall(tmp1,
- tmp2=tmp2+textformat(#,6)+",";
- );
- tmp1=substring(tmp2,0,length(tmp2)-1)+"]";
- ,
- tmp1=format(tmp1,6);
- );
- );
- tmp1=RSform(tmp1);
- tmp1=tmp+"="+tmp1+";";
- tmp1=tmp1+"Assignadd('"+tmp+"',"+tmp+")";
- cmdL=concat(cmdL,[tmp1,[]]);//17.09.24until
- );
- forall(OutFileList,
- cmdL=concat(cmdL,["tmp=ReadOutData",[Dq+#+Dq]]);
- );
- forall(FUNLIST,
- cmdL=concat(cmdL,[#,[]]);
- );
- forall(GLIST,
- if(indexof(#,"ReadOutData")==0, //18.02.12
- tmp1=Rform(#);
- cmdL=concat(cmdL,[tmp1,[]]);
- );
- );
- cmdL;
-);
-
-
-MkprecommandS():=MkprecommandS(6);
-MkprecommandS(prec):=(
- regional(cmdL,Plist,Pnamelist,Pvaluelist,tmp,tmp1,tmp2);
- cmdL=[];
- Plist=[];
- Pnamelist=[];
- Pvaluelist=[];
- forall(remove(allpoints(),[SW,NE]),
- tmp=Lcrd(#);
- tmp1=format(re(tmp_1),prec);// 15.02.05
- tmp2=format(re(tmp_2),prec);
- tmp="["+tmp1+","+tmp2+"]";
- Plist=append(Plist,#.name+"="+tmp);
- Pnamelist=append(Pnamelist,#.name);
- Pvaluelist=append(Pvaluelist,tmp);
- );
- forall(1..length(Plist),
- cmdL=concat(cmdL,[Plist_#,[]]);
- cmdL=concat(cmdL,["Assignrep('"+Pnamelist_#+"',"+Pvaluelist_#+")",[]]);
- );
- tmp2=sort(apply(VLIST,#_1)); // 16.02.03 from
- tmp1=[];
- forall(tmp2,tmp,
- tmp1=concat(tmp1,select(VLIST,#_1==tmp));
- );
- VLIST=tmp1;// 16.02.03 until
- forall(VLIST,
- tmp=Sciform(#_1);
- tmp1=#_2; // 15.02.06
- if(!isstring(tmp1),
- if(islist(tmp1),
- if(!isstring(tmp1_1), // 16.11.14
- tmp2="[";
- forall(tmp1,
- if(abs(#)<10^(-prec), // 16.01.30
- tmp2=tmp2+"0,";
- ,
- tmp2=tmp2+format(#,prec)+",";
- );
- );
- tmp1=substring(tmp2,0,length(tmp2)-1)+"]";
- ,
- tmp2="list("; // 16.11.14from
- forall(tmp1,
- tmp2=tmp2+#+",";
- );
- tmp1=substring(tmp2,0,length(tmp2)-1)+")";
- ); // 16.11.14until
- ,
- tmp1=format(tmp1,prec);
- );
- );
- cmdL=concat(cmdL,[tmp+"evstr('"+tmp1+"')",[]]);
- tmp=substring(tmp,0,length(tmp)-1);
- cmdL=concat(cmdL,["Assignrep('"+tmp+"',"+tmp1+")",[]]); // 15.01.27
- );
- forall(OutFileList,
- tmp=["tmp=ReadOutData",[Dq+#+Dq],
- "if length(tmp(1))>8,execstr(tmp),end",[]];
- cmdL=concat(cmdL,tmp);
- );
- forall(FUNLIST, // 16.02.17 from
- cmdL=concat(cmdL,[#,[]]);
- ); // 16.02.17 until
- forall(GLIST,
- tmp1=Sciform(#);
- cmdL=concat(cmdL,[tmp1,[]]);
- );
- cmdL;
-);
-
-PlotdataS(name1,func,var):=PlotdataS(name1,func,var,[]);
-PlotdataS(nm,fun,variable,optionorg):=(
-//help:PlotdataS("1","besselj(1,x)","x");
-//help:PlotdataS(options=["m/r","Num=50","Wait=5","Mx=no"]);
- regional(options,name,varstr,Num,waiting,mxcheck,outreg,
- eqL,strL,fname,tmp,tmp1,tmp2,tmp3,cmdL,flg,wflg);
- name="grsc"+nm;
- fname=Fhead+name+".txt";
- options=optionorg;
- tmp=Divoptions(options);
- eqL=tmp_5;
- strL=tmp_7;
- Num=50;
- waiting=5;
- mxcheck=0; // 16.03.02
- outreg=0;
- flg=0;
- forall(eqL,
- tmp=indexof(#,"=");
- tmp1=Toupper(substring(#,0,1));
- tmp2=substring(#,tmp,length(#));
- if(tmp1=="N",
- Num=parse(tmp2);
- options=remove(options,[#]);
- );
- if(tmp1=="W",
- waiting=parse(tmp2);
- options=remove(options,[#]);
- );
- if(tmp1=="O",
- tmp=Toupper(substring(tmp2,0,1));
- if(tmp=="T" % tmp=="Y", outreg=1);
- options=remove(options,[#]);
- );
- if(tmp1=="M",
- tmp=Toupper(substring(tmp2,0,1));
- if(tmp=="T" % tmp=="Y", mxcheck=1);
- options=remove(options,[#]);
- );
- );
- wflg=0;
- forall(strL,
- tmp=Toupper(substring(#,0,1));
- if(length(#)==0,
- options=remove(options,[#]);
- );
- if(tmp=="M",
- wflg=1;
- options=remove(options,[#]);
- );
- if(tmp=="R",
- wflg=-1;
- options=remove(options,[#]);
- );
- );
- tmp=indexof(variable,"=");
- if(tmp>0,
- varstr=variable;
- ,
- varstr=variable+"="+textformat([XMIN,XMAX],5);
- );
- cmdL=MkprecommandS();
- cmdL=concat(cmdL,[
- name+"=Plotdata",[Dq+fun+Dq,Dq+varstr+Dq,Dq+"Num="+text(Num)+Dq],
- "WriteOutData",[Dq+fname+Dq,Dq+name+Dq,name]
- ]);
- ErrFlag=0; // 16.03.02 from
- if(mxcheck==1,
- Mxfun(name,fun,[],["Disp=n"]);
- tmp=parse("mx"+name);
- if(!isstring(tmp),ErrFlag=1);
- );
- options=append(options,"Wait="+text(waiting));
- if(wflg==1,options=append(options,"m"));
- if(wflg==-1,options=append(options,"r"));// 16.03.02 until
- if(ErrFlag==0,
- CalcbyS(name,cmdL,concat(options,["cat=middle","Wait="+text(waiting)]));
- );
- if(ErrFlag==1,
- println(" PlotdataS not completed");
- ,
- if(outreg==1, // 2016.03.02 ( // )
- OutFileList=remove(OutFileList,[wfile]);
- OutFileList=append(OutFileList,wfile);
- );
- ReadOutData(fname);
- Extractdata(name,options);
- tmp=parse(name);
- tmp1=name+"="+textformat(tmp,5);
- parse(tmp1);
-// Addgraph(name); // 16.04.04
- tmp2=apply(tmp,Lcrd(#));
- tmp2;
- );
-);
-
-Dotfilldata(nm,iostr,pltlist):=
- Dotfilldata(nm,iostr,pltlist,[]);
-Dotfilldata(nm,iostr,pltlist,optionorg):=(
-//help:Dotfilldata("1","ii",[["sg1"],["sg2"]]);
-//help:Dotfilldata(options=[0.3,"Wait=5"]);
- regional(options,name,fun,eqL,reL,strL,outreg,
- plt,fname,options,tmp,tmp1,tmp2,tmp3,flg,
- wflg,waiting,dense);
- name="df"+nm;
- fname=Fhead+name+".txt";
- fun=fnorg;
- tmp=indexof(fun,"=");
- if(tmp>0,
- tmp1=substring(fun,0,tmp-1);
- tmp2=substring(fun,tmp,length(fun));
- fun=tmp1+"-("+tmp2+")";
- );
- options=optionorg;
- tmp=Divoptions(options);
- eqL=tmp_5;
- reL=tmp_6;
- strL=tmp_7;
- dense=0.3;
- waiting=5;
- outreg=0;
- forall(reL,
- dense=#;
- );
- forall(eqL,
- tmp=indexof(#,"=");
- tmp1=Toupper(substring(#,0,1));
- tmp2=substring(#,tmp,length(#));
- if(tmp1=="W",
- waiting=parse(tmp2);
- options=remove(options,[#]);
- );
- if(tmp1=="O",
- tmp=Toupper(substring(tmp2,0,1));
- if(tmp=="T" % tmp=="Y", outreg=1);
- options=remove(options,[#]);
- );
- );
- wflg=0;
- forall(strL,
- tmp=Toupper(substring(#,0,1));
- if(length(#)==0,
- options=remove(options,[#]);
- );
- if(tmp=="M",
- wflg=1;
- options=remove(options,[#]);
- );
- if(tmp=="R",
- wflg=-1;
- options=remove(options,[#]);
- );
- );
- if(islist(iostr),
- tmp1=text(apply(iostr,Dq+#+Dq));
- tmp1=replace(tmp1,"[","list("); //16.02.14
- tmp1=replace(tmp1,"]",")"); //16.02.14
- ,
- tmp1=Dq+iostr+Dq;
- );
- if(!islist(pltlist_1),
- tmp2=apply(pltlist,if(length(#)==1,Dq+#+Dq,#));
- tmp2=text(tmp2);
- tmp2="list("+substring(tmp2,1,length(tmp2)-1)+"),";
- ,
- tmp2="";
- forall(pltlist,plt,
- tmp=apply(plt,if(length(#)==1,Dq+#+Dq,#));
- tmp=text(tmp);
- tmp="list("+substring(tmp,1,length(tmp)-1)+")";
- tmp2=tmp2+tmp+",";
- );
- );
- cmdL=MkprecommandR(); //17.09.29
- tmp2=substring(tmp2,0,length(tmp2)-1);
- tmp=[tmp1,tmp2];
- tmp=concat(tmp,dense);
- cmdL=concat(cmdL,[
- "Setscaling",[SCALEY],
- "Setunitlen",[Dq+ULEN+Dq],
- name+"=Dotfilldata",tmp,
- "WriteOutData",[Dq+fname+Dq,Dq+name+Dq,name],
- ]);
- options=append(options,"Wait="+text(waiting));
- if(wflg==1,options=concat(options,["m"]));
- if(wflg==-1,options=concat(options,["r"]));
- options=append(options,"Cat=n");
- if(ErrFlag==0,
- CalcbyR(name,cmdL,options); //17.09.29
- );
- if(ErrFlag==1,
- println("Dotfilldata not completed");
- ,
- if(outreg==1,
- OutFileList=remove(OutFileList,[fname]);
- OutFileList=append(OutFileList,fname);
- );
- if(ErrFlag==0,
- ReadOutData(fname);
- tmp1=parse(name);
- forall(tmp1,
- tmp=#_1;
- draw(tmp,pointsize->1);
- );
- Com2nd("tmp=ReadOutData("+Dq+fname+Dq+")");
- Com2nd("Drwpt("+name+")");
- );
- );
-);
-
-WritetoA(fname,cmdL):=(
-// help:WritetoA("outdata",cmdL);
- regional(tmp,tmp1,tmp2,filename,wfilename,endmark);
- if(indexof(fname,".")==0,
- filename=fname+".rr";
- ,
- filename=fname;
- );
- wfilename=replace(filename,".rr",".txt");
- SCEOUTPUT = openfile(filename);
-// tmp=replace(Dirlib,"\","/");
-// tmp="load("+Dq+tmp+"/oshima/os_muldif.rr"+Dq+")$/*####*/";
- tmp="/*####*/"; // 16.03.11
- println(SCEOUTPUT,tmp);
- tmp="output("+Dq+wfilename+Dq+")$/*##*/"; // 16.05.18from
- println(SCEOUTPUT,tmp); // 16.05.18until
- forall(1..(length(cmdL)),
- tmp1=cmdL_#;
- tmp=indexof(tmp1,";"); // 16.05.18from
- if(tmp>0,endmark=";",endmark="$");
- tmp1=replace(tmp1,";",""); // 16.05.18until
- if(#==length(cmdL)-1,
- println(SCEOUTPUT,tmp1+";/*##*/");
- ,
- println(SCEOUTPUT,tmp1+endmark+"/*##*/");//16.05.18
- );
- );
- closefile(SCEOUTPUT);
-);
-
-kcA(fname):=kcA(fname,[]);
-kcA(fname,optionorg):=(
-//help:kcA("boxdata");
-//help:kcA(options=["r/m"]);
- regional(options,tmp,tmp1,tmp2,eqL,strL,filename,flg);
- if(indexof(fname,".")==0,
- filename=fname+".rr";
- ,
- filename=fname;
- );
- options=optionorg;
- tmp=Divoptions(options);
- eqL=tmp_5;
- strL=tmp_7;
- forall(eqL,
- tmp=indexof(#,"=");
- tmp1=substring(#,0,tmp-1);
- tmp2=substring(#,tmp,length(#));
- );
- flg=0;
- forall(strL,
- if(Toupper(substring(#,0,1))=="R",
- flg=0;
- options=remove(options,[#]);
- );
- if(Toupper(substring(#,0,1))=="M",
- flg=1;
- );
- );
- if(flg==0,
- tmp2=replace(filename,".rr",".txt");
- tmp1=load(tmp2);
- if(length(tmp1)==0,
- flg=1;
- );
- );
- if(flg==1,
- tmp1="";
- if(iswindows(),
- tmp2=Batparent;
- ,
- tmp2=Shellparent;
- );
- flg=0;
- forall(reverse(1..length(tmp2)),
- if(flg==0,
- tmp=substring(tmp2,#-1,#);
- if(tmp=="/" % tmp=="\", // 14.01.15
- tmp1=substring(tmp2,0,#-1);
- tmp2=substring(tmp2,#,length(tmp2));
- flg=1;
- );
- );
- );
- if(length(tmp1)>0,
- setdirectory(tmp1);
- );
- if(iswindows(),
- SCEOUTPUT = openfile("kc.bat");
- println(SCEOUTPUT,"cd "+Dq+Dirwork+Dq);
- tmp="del "+replace(filename,".rr",".txt");
- println(SCEOUTPUT,tmp);
- tmp=Dq+PathA+Dq+" -quiet -f "+Dq+filename+Dq;
- println(SCEOUTPUT,tmp);
- println(SCEOUTPUT,"exit");
- closefile(SCEOUTPUT);
- tmp=replace(filename,".rr",".txt");
- println(kc(Dirwork+Batparent,Dirlib,tmp)); // 16.05.29,06.05
- ,
- SCEOUTPUT = openfile("kc.sh");
- println(SCEOUTPUT,"#!/bin/sh");
- println(SCEOUTPUT,"cd "+Dq+Dirwork+Dq);
- tmp="rm "+replace(filename,".rr",".txt");
- println(SCEOUTPUT,tmp);
- tmp=Dq+PathA+Dq+" -quiet -f "+Dq+filename+Dq;
- println(SCEOUTPUT,tmp);
- println(SCEOUTPUT,"exit 0");
- closefile(SCEOUTPUT);
- tmp=replace(filename,".rr",".txt");
- println(kc(Dirwork+Shellparent,Mackc+Dirlib,tmp));// 16.05.29,06.05
-
- );
-// wait(WaitUnit);
- setdirectory(Dirwork);
- );
-);
-
-CalcbyA(name,cmd):=CalcbyA(name,cmd,[]);
-CalcbyA(name,cmd,optionorg):=(
-//help:CalcbyA("a",cmd);
-//help:CalcbyA(options= ["m/r","Wait=10","Ext=txt","Dig=16"]]);
- regional(options,tmp,tmp1,tmp2,tmp3,tmp4,realL,strL,eqL,
- dig,flg,wflg,file,nc,arg,cmdA,cmdlist,wfile,ext,waiting,num,st);
- options=optionorg;
- tmp=divoptions(options);
- eqL=tmp_5;
- realL=tmp_6;
- strL=tmp_7;
- wfile="";
- ext=".txt";
- waiting=2;
- dig=6;
- forall(eqL,
- tmp=indexof(#,"=");
- tmp1=Toupper(substring(#,0,1));
- tmp2=substring(#,tmp,length(#));
- if(tmp1=="E",
- if(indexof(tmp2,".")==0,ext="."+tmp2,ext=tmp2);
- options=remove(options,[#]);
- );
- if(tmp1=="W",
- waiting=parse(tmp2);
- options=remove(options,[#]);
- );
- if(tmp1=="D",
- dig=parse(tmp2);
- options=remove(options,[#]);
- );
- );
- wfile=Fhead+name+ext;
- wflg=0;
- forall(strL,
- tmp=Toupper(substring(#,0,1));
- if(tmp=="M",
- wflg=1;
- options=remove(options,[#]);
- );
- if(tmp=="R",
- wflg=-1;
- options=remove(options,[#]);
- );
- );
- file=Fhead+name;
- cmdA=cmd;
- cmdlist=[];
- forall(1..floor(length(cmdA)/2),nc, //17.5.18
- tmp1=cmdA_(2*nc-1);
- tmp1=replace(tmp1,LFmark,""); // 16.06.12
- if(nc==length(cmdA)/2,
- tmp=indexof(tmp1,"=");
- tmp1=substring(tmp1,tmp,length(tmp1));
- if(substring(tmp1,0,1)=="[",
- tmp=substring(tmp1,0,length(tmp1)-1);
- ,
- tmp="["+Dq+"/start/"+Dq+","+tmp1; // 16.05.18
- );
- tmp=replace(tmp,"::",","+Dq+"//"+Dq+",");
- tmp1=tmp+","+Dq+"////"+Dq+"]";
- );
- tmp2=cmdA_(2*nc); // list of argments
- tmp3="";
- tmp4="";
- forall(tmp2,arg,
- if(isstring(arg),
- tmp3=tmp3+replace(arg,"'",Dq)+",";
-// tmp3=tmp3+arg;
- ,
- if(!islist(arg),
- tmp3=tmp3+textformat(arg,dig)+",";
- ,
- tmp3=tmp3+"[";
- tmp4="]";
- forall(arg,
- if(isstring(#),
-// tmp3=tmp3+Dq+#+Dq+",";
- tmp=replace(#,"'",Dq);
-// tmp=#;// 2016.03.03
- tmp3=tmp3+tmp+",";
- ,
- if(!islist(#),
- tmp3=tmp3+textformat(#,dig)+",";
- ,
- tmp=textformat(#,dig);
- tmp=replace(tmp,"],[","];[");
- tmp3=tmp3+tmp+",";
- );
- );
- );
- tmp3=substring(tmp3,0,length(tmp3)-1)+tmp4+",";
- );
- );
- );
- if(length(tmp3)>0,
- tmp3=substring(tmp3,0,length(tmp3)-1);
- tmp1=tmp1+"("+tmp3+")";
- );
- cmdlist=append(cmdlist,tmp1);
- );
- cmdlist=append(cmdlist,"quit");
- if(wflg==0,
- tmp1=load(file+".rr");
- if((length(tmp1)==0) % (indexof(tmp1,"/*####*/")==0), //15.11.26
- wflg=1;
- ,
- tmp1=tokenize(tmp1,"/*####*/");
- tmp1=tokenize(tmp1_2,"/*##*/");
- tmp1=tmp1_(1..(length(tmp1)-1));
- tmp=select(tmp1,indexof(#,"output")>0);
- tmp1=remove(tmp1,tmp);
- tmp1=apply(tmp1,substring(#,0,length(#)-1));
- if(length(tmp1)!=length(cmdlist), // 15.12.06
- wflg=1;
- ,
- tmp=select(1..length(tmp1),tmp1_#!=cmdlist_#);
- if(length(tmp)>0, wflg=1);
- );
- );
- );
- if(wflg==0,wflg=-1); // 15.10.16
- if(wflg==1,
- if(length(wfile)>0, // 15.10.05
- SCEOUTPUT=openfile(wfile);
- println(SCEOUTPUT,"");
- closefile(SCEOUTPUT);
- );
- WritetoA(file+".rr",cmdlist);
- kcA(file,concat(options,["m"]));
- );
- flg=0;
- tmp1=floor(waiting*1000/WaitUnit);
- repeat(tmp1,
- if(flg==0,
- tmp=load(wfile);
- if(length(tmp)>=4,
- tmp2=substring(tmp,length(tmp)-5,length(tmp));
- if(tmp2=="////]",
- tmp=substring(tmp,1,length(tmp)-6);
- num="1234567890+-.";
- tmp1=tokenize(","+tmp,",//");
- tmp3=apply(tmp1,substring(#,1,length(#)));
- tmp1="[";
- forall(tmp3,st,
- tmp=select(1..length(st),indexof(num,substring(st,#-1,#))==0);
- if((length(tmp)==0) & (length(st)<4), // 16.05.10 16=>4
- tmp1=tmp1+st+",";
- ,
- tmp1=tmp1+Dq+st+Dq+",";
- );
- );
- tmp=Indexof(tmp1,"/start/,"); // 16.05.18from
- tmp1="["+Dq+substring(tmp1,tmp+7,length(tmp1)-1)+"]";
- // 16.05.18until
-// tmp1=substring(tmp1,0,length(tmp1)-1)+"]";
- parse(name+"="+tmp1);
- tmp=parse(name);
- if(length(tmp)==1,
- tmp1=substring(tmp1,1,length(tmp1)-1);
- parse(name+"="+tmp1);
- );
- flg=1;
- tmp2=#*WaitUnit/1000;
- );
- ,
- if(wflg==-1,
- flg=-1;
- ,
- wait(WaitUnit);
- );
- );
- );
- );
- if(flg<=0,
- ErrFlag=1;
- if(flg==-1,
- println(wfile+" does not exist");
- ,
- tmp="("+text(waiting)+" s )";
- println(wfile+" not generated "+tmp);
- );
- ,
- println(" CalcbyA succeeded "+name+" ("+text(tmp2)+" sec)");
- );
-);
-
-AsfunO(name,fun,argL):=AsirfunO(name,fun,argL); // 16.02.03
-AsfunO(name,fun,argL,options):=AsirfunO(name,fun,argL,options);
-Asfun(name,fun,argL):=Asirfun(name,fun,argL);
-Asfun(name,fun,argL,optionorg):=Asirfun(name,fun,argL,optionorg);
-AsirfunO(name,fun,argL):=AsirfunO(name,fun,argL,[]);
-AsirfunO(name,fun,argLorg,options):=(
-//help:AsirfunO("an1","fint",["1/(x^2+1)",32,"['-','+']"]);
- regional(argL,tmp,tmp1,tmp2,eqL);// 16.05.26from
- tmp=divoptions(options);
- eqL=tmp_5;
- argL=argLorg;
- forall(eqL,
- tmp=indexof(#,"=");
- tmp1=Toupper(substring(#,0,3));
- tmp2=substring(#,tmp,length(#));
- if(tmp1=="PRO", // 16.05.26from
- tmp=Toupper(substring(tmp2,0,1));
- if((tmp=="T") % (tmp=="Y"),
- tmp1=argL_(length(argL));
- tmp=indexof(tmp1,"|");
- if(tmp==0,
- argL_(length(argL))=tmp1+"|dumb=-1,dviout=-2";
- );
- );
- );
- ); // 16.05.26until
- Asirfun(name,"os_md."+fun,argL,options);
-);
-Asirfun(name,fun,argL):=Asirfun(name,fun,argL,[]);
-Asirfun(name,fun,argL,optionorg):=(
-//help:Asirfun("al1","2*(3+5^4)",[],[""]);
- regional(nm,options,eqL,precise,disp,process,
- cmdL,tmp,tmp1,tmp2,tmp3,tmp4,out,out2);
- nm="as"+name;
- options=optionorg;
- tmp=divoptions(options);
- precise=6;
- disp=1;
- process=0;
- eqL=tmp_5;
- forall(eqL,
- tmp=indexof(#,"=");
- tmp1=Toupper(substring(#,0,3));
- tmp2=substring(#,tmp,length(#));
- if(tmp1=="PRE",
- precise=parse(tmp2);
- options=remove(options,[#]);
- );
- if((tmp1=="DIS") % (tmp1=="DSP"),
- tmp=Toupper(substring(tmp2,0,1));
- if((tmp=="F") % (tmp=="N"),
- disp=0;
- );
- options=remove(options,[#]);
- );
- if(tmp1=="PRO", // 16.05.26from
- tmp=Toupper(substring(tmp2,0,1));
- if((tmp=="T") % (tmp=="Y"),
- process=1;
- );
- options=remove(options,[#]);
- ); // 16.05.26upt
- );
- tmp=replace(Dirlib,"\","/");
- cmdL=[
- "load",[Dq+tmp+"/oshima/os_muldif.rr"+Dq], // 16.03.11
- "ctrl",[Dq+"real_digit"+Dq,precise],
- "A="+fun,argL, // 16.05.26from
- "A",[]
- ];
- CalcbyA(nm,cmdL,options);
- out=parse(nm); //16.05.26from
- if(process==1,
- tmp1=Bracket(out,"[]");
- tmp2=select(tmp1,abs(#_2)==2);
- tmp2=apply(tmp2,#_1);
- out=[];
- forall(1..length(tmp2)/2,
- tmp3=tmp2_(2*#-1);
- tmp4=tmp2_(2*#);
- tmp=substring(as1,tmp3+1,tmp4-2);
- tmp=tokenize(tmp,"],[");
- out=append(out,tmp);
- );
- out2=[];
- forall(out,tmp2,
- tmp4="";
- forall(tmp2,tmp3,
- tmp1=tokenize(tmp3,",");
- if(tmp1_1==0,
- tmp4=tmp4+tmp1_2+"="+tmp1_3+"+";
- ,
- if(tmp1_1==1,
- tmp4=tmp4+tmp1_2+"+";
- ,
- tmp="'integrate(";
- forall(2..length(tmp1),
- tmp=tmp+tmp1_#+"+";
- );
- tmp=substring(tmp,0,length(tmp)-1);
- tmp=tmp+","+tmp1_1+")";
- tmp4=tmp4+tmp+"+";
- );
- );
- );
- tmp4=substring(tmp4,0,length(tmp4)-1);
- out2=append(out2,tmp4);
- );
- out=out2;
- tmp=apply(out,Dq+#+Dq);
- parse(nm+"="+tmp);
- );
- if(ErrFlag==0,
- if(disp==1, // 15.11.24
- println(nm+" is : ");
- println(parse(nm));
- );
- );
- out; //16.05.26until
-);
-
-WritetoM(fname,cmdL,allflg):=(
-// help:WritetoM("outdata",cmdL);
- regional(tmp,tmp1,tmp2,filename,wfilename,outflg);
- if(indexof(fname,".")==0,
- filename=fname+".max";
- ,
- filename=fname;
- );
- wfilename=replace(filename,".max",".txt");
- SCEOUTPUT = openfile(filename);
- outflg=0;
- forall(1..(length(cmdL)),
- tmp1=cmdL_#;
-
- if(allflg==1, // 2016.02.23 from
- if(#==1,
- tmp="writefile("+Dq+Dirwork+"/"+wfilename+Dq+")$/*##*/";
- tmp=replace(tmp,"\","/");
- println(SCEOUTPUT,tmp);
- outflg=1;
- println(SCEOUTPUT,tmp1+"$/*##*/");
- ,
- println(SCEOUTPUT,tmp1+"$/*##*/");
- );
- ,
- if((indexof(tmp1,"disp(")>0) & (outflg==0),
- tmp="writefile("+Dq+Dirwork+"/"+wfilename+Dq+")$/*##*/";
- tmp=replace(tmp,"\","/");
- println(SCEOUTPUT,tmp);
- outflg=1;
- println(SCEOUTPUT,tmp1+"$/*##*/");
- ,
- println(SCEOUTPUT,tmp1+"$/*##*/");
- );
- );
- );
- closefile(SCEOUTPUT);
-);
-
-kcM(fname):=kcM(fname,[]);
-kcM(fname,optionorg):=(
-//help:kcM("boxdata");
-//help:kcM(options=["r/m"]);
- regional(options,tmp,tmp1,tmp2,eqL,strL,filename,flg);
- if(indexof(fname,".")==0,
- filename=fname+".max";
- ,
- filename=fname;
- );
- options=optionorg;
- tmp=Divoptions(options);
- eqL=tmp_5;
- strL=tmp_7;
- forall(eqL,
- tmp=indexof(#,"=");
- tmp1=substring(#,0,tmp-1);
- tmp2=substring(#,tmp,length(#));
- );
- flg=0;
- forall(strL,
- if(Toupper(substring(#,0,1))=="R",
- flg=0;
- options=remove(options,[#]);
- );
- if(Toupper(substring(#,0,1))=="M",
- flg=1;
- );
- );
- if(flg==0,
- tmp2=replace(filename,".max",".txt");
- tmp1=load(tmp2);
- if(length(tmp1)==0,
- flg=1;
- );
- );
- if(flg==1,
- tmp1="";
- if(iswindows(),
- tmp2=Batparent;
- ,
- tmp2=Shellparent;
- );
- flg=0;
- forall(reverse(1..length(tmp2)),
- if(flg==0,
- tmp=substring(tmp2,#-1,#);
- if(tmp=="/" % tmp=="\", // 14.01.15
- tmp1=substring(tmp2,0,#-1);
- tmp2=substring(tmp2,#,length(tmp2));
- flg=1;
- );
- );
- );
- if(length(tmp1)>0,
- setdirectory(tmp1);
- );
- if(iswindows(),
- SCEOUTPUT=openfile(replace(filename,".max",".txt"));
- println(SCEOUTPUT,"");
- closefile(SCEOUTPUT);
- SCEOUTPUT = openfile("kc.bat");
- println(SCEOUTPUT,"cd "+Dq+Dirwork+Dq);
-// tmp="del "+replace(filename,".max",".txt");
-// println(SCEOUTPUT,tmp);
- tmp=Indexall(PathM,".");
- tmp=substring(PathM,tmp_1,tmp_2-1);
- tmp=parse(tmp);
- if(tmp<39,
- tmp="call "+Dq+Dq+PathM+Dq+Dq+" -b "+Dq+filename+Dq;
- ,
- tmp="call "+Dq+PathM+Dq+" -b "+Dq+filename+Dq;
- );
-// tmp="cmd/c "+Dq+PathM+" -b "+filename+Dq;
- println(SCEOUTPUT,tmp);
- println(SCEOUTPUT,"exit");
- closefile(SCEOUTPUT);
- tmp=replace(filename,".max",".txt");
- println(kc(Dirwork+Batparent,Mackc+Dirlib,tmp));// 16.05.29,06.05
- ,
- SCEOUTPUT = openfile("kc.sh");
- println(SCEOUTPUT,"#!/bin/sh");
- println(SCEOUTPUT,"cd "+Dq+Dirwork+Dq);
- tmp="rm "+replace(filename,".max",".txt");
- println(SCEOUTPUT,tmp);
- tmp=Dq+PathM+Dq+" -b "+Dq+filename+Dq;
- println(SCEOUTPUT,tmp);
- println(SCEOUTPUT,"exit 0");
- closefile(SCEOUTPUT);
- tmp=replace(filename,".max",".txt");
- println(kc(Dirwork+Shellparent,Mackc+Dirlib,tmp));// 16.05.29,06.05
- );
-// wait(WaitUnit);
- setdirectory(Dirwork);
- );
-);
-
-CalcbyM(name,cmd):=CalcbyM(name,cmd,[]);
-CalcbyM(name,cmd,optionorg):=(
-//help:CalcbyM("a",cmdL);
-//help:CalcbyM(options1= ["m/r","Wait=5","Ext=txt","Dig=6","Pow=no","All=y"]);
-//help:CalcbyM(options2= ["line=1000"]);
- regional(options,tmp,tmp0,tmp1,tmp2,tmp3,tmp4,realL,strL,eqL,allflg,indL,line,
- dig,flg,wflg,file,nc,arg,add,powerd,cmdM,cmdlist,wfile,ext,waiting,num,st);
- options=optionorg;
- tmp=divoptions(options);
- eqL=tmp_5;
- realL=tmp_6;
- strL=tmp_7;
- wfile="";
- ext=".txt";
- waiting=5;
- dig=6;
- allflg=1;
- powerd="false";
- line=1000; // 16.06.13
- forall(eqL,
- tmp=indexof(#,"=");
- tmp1=Toupper(substring(#,0,1));
- tmp2=substring(#,tmp,length(#));
- if(tmp1=="E",
- if(indexof(tmp2,".")==0,ext="."+tmp2,ext=tmp2);
- options=remove(options,[#]);
- );
- if(tmp1=="W",
- waiting=parse(tmp2);
- options=remove(options,[#]);
- );
- if(tmp1=="D",
- dig=parse(tmp2);
- options=remove(options,[#]);
- );
- if(tmp1=="L", // 16.06.13
- line=parse(tmp2);
- options=remove(options,[#]);
- );
- if(tmp1=="P",
- tmp=Toupper(substring(tmp2,0,1));
- if((tmp=="y") % (tmp=="F"),powerd="true");
- options=remove(options,[#]);
- );
- if(tmp1=="A", // 2016.02.23
- tmp=Toupper(substring(tmp2,0,1));
- if((tmp=="N") % (tmp=="F"),allflg=0);
- options=remove(options,[#]);
- );
- );
- wfile=Fhead+name+ext;
- wflg=0;
- forall(strL,
- tmp=Toupper(substring(#,0,1));
- if(tmp=="M",
- wflg=1;
- options=remove(options,[#]);
- );
- if(tmp=="R",
- wflg=-1;
- options=remove(options,[#]);
- );
- );
- file=Fhead+name;
- cmdM=cmd;
- cmdlist=[
- "powerdisp:"+powerd,"display2d:false","linel:"+text(line) //15.11.25,16.06.13
- ];
- forall(1..floor(length(cmdM)/2),nc, //17.5.18
- tmp1=replace(cmdM_(2*nc-1),"`","'");//2016.02.23
- tmp1=replace(tmp1,LFmark,""); // 16.06.12
- if(nc==length(cmdM)/2,
- tmp=indexof(tmp1,"=");
- tmp1=substring(tmp1,tmp,length(tmp1));
- if(substring(tmp1,0,1)=="[",
- tmp=substring(tmp1,0,length(tmp1)-1);
- ,
- tmp="["+tmp1;
- );
- tmp2="";
- forall(1..length(tmp1),
- if(substring(tmp1,#-1,#+1)=="::",
- if(substring(tmp2,0,1)==":", tmp2=substring(tmp2,1,length(tmp2)));
- cmdlist=append(cmdlist,"disp("+tmp2+")");
- tmp2="";
- ,
- tmp2=tmp2+substring(tmp1,#-1,#);
- );
- );
- if(length(tmp2)>0,
- if(substring(tmp2,0,1)==":", tmp2=substring(tmp2,1,length(tmp2)));
- cmdlist=append(cmdlist,"disp("+tmp2+")");
- );
- ,
- tmp2=cmdM_(2*nc); // list of argments
- tmp3="";
- tmp4="";
- add="";
- forall(tmp2,arg,
- if(isstring(arg),
- if(substring(arg,0,1)!=",",
-// tmp=replace(arg,"'",Dq); // 16.03.03
- tmp=arg; // 16.03.03
- tmp=replace(tmp,"`","'");// 2016.02.23
- tmp3=tmp3+tmp+",";
- ,
- add=add+arg;
- );
- ,
- if(!islist(arg),
- tmp3=tmp3+textformat(arg,dig)+",";
- ,
- tmp3=tmp3+"[";
- tmp4="]";
- forall(arg,
- if(isstring(#),
-// tmp3=tmp3+Dq+#+Dq+",";
- tmp=replace(#,"'",Dq);
- tmp3=tmp3+tmp+",";
- ,
- if(!islist(#),
- tmp3=tmp3+textformat(#,dig)+",";
- ,
- tmp=textformat(#,dig);
- tmp=replace(tmp,"],[","];[");
- tmp3=tmp3+tmp+",";
- );
- );
- );
- tmp3=substring(tmp3,0,length(tmp3)-1)+tmp4+",";
- );
- );
- );
- if(length(tmp3)>0,
- tmp3=substring(tmp3,0,length(tmp3)-1);
- tmp1=tmp1+"("+tmp3+")"+add;
- );
- cmdlist=append(cmdlist,tmp1);
- );
- );
- cmdlist=append(cmdlist,"closefile()");
- cmdlist=append(cmdlist,"quit()");
- if(wflg==0,
- tmp1=load(file+".max");
- if(length(tmp1)==0,
- wflg=1;
- ,
- if(indexof(tmp1,"/*##*/")==0, // 15.11.26
- wflg=1;
- ,
- tmp1=tokenize(tmp1,"/*##*/");
- tmp1=tmp1_(1..(length(tmp1)-1));
- tmp=select(tmp1,indexof(#,"writefile")>0);
- tmp1=remove(tmp1,tmp);
- tmp1=apply(tmp1,substring(#,0,length(#)-1));
- if(length(tmp1)!=length(cmdlist), // 15.12.07
- wflg=1;
- ,
- tmp=select(1..length(tmp1),tmp1_#!=cmdlist_#);
- if(length(tmp)>0, wflg=1);
- );
- );
- );
- );
- if(wflg==0,wflg=-1); // 15.10.16
- if(wflg==1,
- if(length(wfile)>0, // 15.10.05
- SCEOUTPUT=openfile(wfile);
- println(SCEOUTPUT,"");
- closefile(SCEOUTPUT);
- );
- WritetoM(file+".max",cmdlist,allflg); // 2016.02.23
- kcM(file,concat(options,["m"]));
- );
- flg=0;
- tmp1=floor(waiting*1000/WaitUnit);
- repeat(tmp1,
- if(flg==0,
- tmp1=load(wfile);
- if(wflg==1,wait(WaitUnit)); // 2016.02.23
- if(length(tmp1)>0,
- tmp=indexof(tmp1,"error")+indexof(tmp1,"syntax"); //2016.02.23
- if(tmp>0,
- println("Some error(s) occurred"); //2016.02.24 from
- tmp2=tokenize(tmp1,"(%");
- forall(4..length(tmp2),println(tmp2_#)); //2016.02.24 until
- flg=2; //2016.02.23
- ,
- if(indexof(tmp1,"closefile()")>0, // 15.11.24
- tmp=tokenize(tmp1,"disp(");
- tmp1=tmp_(2..length(tmp));
- tmp4=[];
- forall(tmp1,tmp2,
- tmp=indexof(tmp2,")");
- tmp3=substring(tmp2,tmp,length(tmp2));
- indL=Indexall(tmp3,"(%i"); // 16.04.26from
- tmp0=0;
- forall(indL,
- if(tmp0==0,
- tmp=substring(tmp3,#+2,#+3);
- if(indexof("0123456789",tmp)>0,//16.04.25?
- tmp3=removespace(substring(tmp3,0,#-1));
- tmp4=append(tmp4,tmp3);
- tmp0=1;
- );
- );// 16.04.26until
- );
- );
- num="1234567890+-.";
- tmp1="[";
- forall(tmp4,st,
- tmp=select(1..length(st),indexof(num,substring(st,#-1,#))==0);
- if((length(tmp)==0) & (length(st)<4), // 16.05.10 16=>4
- tmp1=tmp1+st+",";
- ,
- tmp1=tmp1+Dq+st+Dq+",";
- );
- );
- tmp1=substring(tmp1,0,length(tmp1)-1)+"]";
- tmp1=replace(tmp1,".d+0",""); // 15.11.23
- parse(name+"="+tmp1);
- tmp=parse(name);
- if(length(tmp)==1,
- tmp1=substring(tmp1,1,length(tmp1)-1);
- parse(name+"="+tmp1);
- );
- flg=1;
- tmp2=#*WaitUnit/1000;
- );
- );
- ,
- if(wflg==-1,
- flg=-1;
- ,
- wait(WaitUnit);
- );
- );
- );
- );
- if(flg<=0,
- ErrFlag=1;
- if(flg==-1,
- println(wfile+" does not exist");
- ,
- tmp="("+text(waiting)+" s )";
- tmp1=load(wfile);
- if(length(tmp1)>0,
- println(wfile+" incomplete"+tmp); // 2016.02.24
- ,
- println(wfile+" not generated "+tmp);
- );
- );
- ,
- if(flg==1, // 2016.02.23
- println(" CalcbyM succeeded "+name+" ("+text(tmp2)+" sec)");
- );
- );
-);
-
-Mxfun(name,fun,argL):=Mxfun(name,fun,argL,[]);
-Mxfun(name,fun,argL,optionorg):=(
-//help:Mxfun("ca1","diff",["sin(x)^3","x"],[""]);
-//help:Mxfun(options=["Pre=6","Disp=y","Load= :: ","Set=::","Add="]);
- regional(nm,options,eqL,precise,disp,pack,set,add,cmdL,tmp,tmp1,tmp2);
- nm="mx"+name;
- options=optionorg;
- tmp=divoptions(options);
- precise=6;
- disp=1;
- pack=[];
- set=[];
- add="";
- eqL=tmp_5;
- forall(eqL,
- tmp=indexof(#,"=");
- tmp1=Toupper(substring(#,0,3));
- tmp2=substring(#,tmp,length(#));
- if(tmp1=="PRE",
- precise=parse(tmp2);
- options=remove(options,[#]);
- );
- if((tmp1=="DIS") % (tmp1=="DSP") ,
- tmp=Toupper(substring(tmp2,0,1));
- if((tmp=="F") % (tmp=="N"),
- disp=0;
- );
- options=remove(options,[#]);
- );
- if((tmp1=="PAC") % (tmp1=="LOA"), // 16.02.08
- pack=tokenize(tmp2,"::");
- options=remove(options,[#]);
- );
- if(tmp1=="SET",
- set=tokenize(tmp2,"::");
- options=remove(options,[#]);
- );
- if(tmp1=="ADD",
- add=","+tmp2;
- options=remove(options,[#]);
- );
- );
- cmdL=[];
- forall(pack,
- cmdL=concat(cmdL,["load",[#]]);
- );
- forall(set,
- cmdL=concat(cmdL,[#,[]]);
- );
- if(length(add)>0,
- tmp=append(argL,add);
- ,
- tmp=argL;
- );
- cmdL=concat(cmdL,[
- "ans"+":"+fun,tmp,
- "ans",[]
- ]);
- CalcbyM(nm,cmdL,options);
- if(ErrFlag==0,
- if(disp==1, // 15.11.24
- println(nm+" is : ");
- println(parse(nm));
- );
- );
- parse(nm);
-);
-
-Mxtex(nm,ex):=Mxtex(nm,ex,[]);
-Mxtex(nm,ex,optionorg):=(
-//help:Mxtex("1","sin(x)/x");
-//help:Mxtex(options=["Disp=y"]);
- regional(name,cmdL,eqL,options,tx,disp,out,set,
- tmp,tmp1,tmp2); // 16.01.25
- name="tx"+nm;
- options=optionorg;
- tmp=divoptions(options);
- eqL=tmp_5;
- disp=1;
- set=[];
- forall(eqL,
- tmp=indexof(#,"=");
- tmp1=Toupper(substring(#,0,3));
- tmp2=substring(#,tmp,length(#));
- if((tmp1=="DIS") % (tmp1=="DSP") ,
- tmp=Toupper(substring(tmp2,0,1));
- if((tmp=="F") % (tmp=="N"),
- disp=0;
- );
- options=remove(options,[#]);
- );
- if(tmp1=="SET", // 16.03.01
- set=tokenize(tmp2,"::");
- options=remove(options,[#]);
- );
- if(tmp1=="ORD", // 16.03.01
- tmp="ordergreat("+tmp2+")";
- set=append(set,tmp);
- options=remove(options,[#]);
- );
- );
- cmdL=[
- "load",[Dq+"mactex-utilities.lisp"+Dq]]; // 16.03.03
- forall(set, // 16.03.01
- cmdL=concat(cmdL,[#,[]]);
- );
- cmdL=concat(cmdL,[
- name+":disp(tex("+ex+"))",[], // 16.01.18
- name,[] // 16.01.18
- ]);
- CalcbyM(name,cmdL,options); // 16.02.19
- tx=parse(name);
- if(islist(tx), // 16.01.10
- out=tx_1;
- ,
- out=tx;
- );
- tmp=indexof(out,"$$")+1;
- out=substring(out,tmp,length(out));
- tmp=indexof(out,"$$")-1;
- out=substring(out,0,tmp);
- if(disp==1, // 16.01.10
- println(name+" is:");
- println(out);
- );
- tmp=name+"="+Dq+out+Dq; //16.01.10
- parse(tmp);
- out;
-);
-
-MxtexL(nm,exlist):=MxtexL(nm,exlist,[]); // 16.05.27
-MxtexL(nm,exlist,options):=(
- regional(out,tmp,tmp1);
- out=[];
- forall(1..length(exlist),
- tmp=Mxtex(nm+"n"+text(#),exlist_#,["Disp=n"]);
- out=append(out,Dq+tmp+Dq);
- );
- tmp="tx"+nm+"="+out;
- parse(tmp);
- println("tx"+nm+"is:");
- apply(out,println(#));
- out;
-);
-
-Mxbatch(file):=(
-//help:Mxbatch(["matoperation.max"]);
- regional(figL,out,path,tmp,tmp1,tmp2);
- if(!islist(file),figL=[file],figL=file);
- path=replace(Dirlib+"/maximaL/","\","/");
- out=[];
- forall(figL,
- if(indexof(#,".")==0,tmp1=#+".max",tmp1=#);
- tmp1=Dq+path+tmp1+Dq;
- tmp2=["batch",[tmp1]];
- out=concat(out,tmp2);
- );
- out;
-);
-
-Mxload(file):=( //17.06.16
-//help:Mxload(["rkfun.lispp"]);
- regional(figL,out,path,tmp,tmp1,tmp2);
- if(!islist(file),figL=[file],figL=file);
- path=replace(Dirlib+"/maximaL/","\","/");
- out=[];
- forall(figL,
- if(indexof(#,".")==0,tmp1=#+".lisp",tmp1=#);
- tmp1=Dq+path+tmp1+Dq;
- tmp2=["load",[tmp1]];
- out=concat(out,tmp2);
- );
- out;
-);
-
-Maxima2Cindydata(str):=( //17.10.24
- regional(out,numstr,eL,nn,ne,flg,tmp);
- numstr="-0123456789";
- eL=Indexall(str,"e");
- if(length(eL)==0,
- out=str;
- ,
- out=substring(str,0,eL_1-1);
- forall(1..(length(eL)),nn,
- ne=eL_nn;
- flg=0;
- forall(1..5,
- if(flg==0,
- tmp=substring(str,ne+#-1,ne+#);
- if(indexof(numstr,tmp)==0,
- flg=#;
- tmp=substring(str,ne,ne+flg-1);
- out=out+"*10^("+tmp+")";
- );
- );
- );
- if(nn<length(eL),
- out=out+substring(str,ne+flg-1,eL_(nn+1)-1);
- ,
- out=out+substring(str,ne+flg-1,length(str));
- );
- );
- );
- parse(out);
-);
-
-kcV3(fname):=kcV3(Dirwork,fname);
-kcV3(path,fname):=(
-//help:kcV3(path,"ex.obj");
- regional(tmp,tmp1,tmp2,eqL,strL,filename,flg);
- if(indexof(fname,".")==0,
- filename=fname+".obj";
- ,
- filename=fname;
- );
- flg=1;
- if(flg==1,
- tmp1=""; // 15.10.08 from
- if(iswindows(),
- tmp2=Batparent;
- ,
- tmp2=Shellparent;
- );
- tmp=replace(path,"\","/");
- tmp=substring(tmp,length(tmp)-1,length(tmp));
- if(tmp=="/" % tmp=="\", tmp1=path, tmp1=path+"/");
- if(iswindows(),
- SCEOUTPUT = openfile("kc.bat");
- println(SCEOUTPUT,"cd "+Dq+Dirwork+Dq);
- tmp=Dq+PathV3+Dq+" "+tmp1+filename;
- println(SCEOUTPUT,tmp);
- println(SCEOUTPUT,"exit");
- closefile(SCEOUTPUT);
- println(kc(Dirwork+Batparent,Dirlib,Fnametex));// 16.05.29,06.05
- ,
- SCEOUTPUT = openfile("kc.sh");
- println(SCEOUTPUT,"#!/bin/sh");
- println(SCEOUTPUT,"cd "+Dq+Dirwork+Dq);
- tmp=Dq+PathV3+Dq+" "+tmp1+filename;
- println(SCEOUTPUT,tmp);
- println(SCEOUTPUT,"exit 0");
- closefile(SCEOUTPUT);
- println(kc(Dirwork+Shellparent,Mackc+Dirlib,Fnametex));// 16.05.29,06.05
- );
- wait(WaitUnit);
- );
- if(fig==2,
- println("Obj file not exist / imperfect");
- );
-);
-
-Changeobjscale(fname):=(
- regional(fout);
- fout=replace(fname,".obj","");
- fout=fout+"out.obj";
- Changeobjscale(ULEN,fname,fout,[]);
-);
-Changeobjscale(fname,Arg):=(
- regional(fout);
- if(islist(Arg),
- fout=replace(fname,".obj","");
- fout=fout+"out.obj";
- Changeobjscale(ULEN,fname,fout,Arg);
- ,
- Changeobjscale(ULEN,fname,Arg,[]);
- );
-);
-Changeobjscale(Arg1,Arg2,Arg3):=(
- if(islist(Arg3),
- Changeobjscale(ULEN,Arg1,Arg2,Arg3);
- ,
- Changeobjscale(Arg1,Arg2,Arg3,[]);
- );
-);
-Changeobjscale(unitlen,fnameorg,foutorg,optionorg):=(
-//help:Changeobjscale("20mm",fname,fnameout);
-//help:Changeobjscale(options=["Unit=mm",[0,0,0]]);
- regional(fname,fout,fmd,unit,val,options,eqL,reL,
- origin,outunit,sc,stL,nn,tmp,tmp1,tmp2);
- options=optionorg;
- tmp=Divoptions(options);
- eqL=tmp_5;
- reL=tmp_6;
- outunit="IN";
- forall(eqL,
- tmp=indexof(#,"=");
- tmp1=Toupper(substring(#,0,1));
- tmp2=Toupper(substring(#,tmp,length(#)));
- if(tmp1=="O" % tmp1=="U",
- outunit=tmp2;
- options=remove(options,[#]);
- );
- );
- options=remove(options,reL);
- origin=[0,0,0];
- forall(reL,
- if(islist(#),origin=#);
- );
- options=remove(options,reL);
- tmp1=".0123456789+-*/";
- unit="";
- val=1;
- tmp2=0;
- forall(reverse(1..length(unitlen)),
- tmp=substring(unitlen,#-1,#);
- if(tmp2==0,
- if(indexof(tmp1,tmp)>0,
- tmp2=#;
- );
- );
- unit=substring(unitlen,tmp2,length(unitlen));
- unit=removespace(unit);
- val=parse(substring(unitlen,0,tmp2));
- );
- sc=1;
- if(unit=="cm",sc=1);
- if(unit=="mm",sc=0.1);
- if(unit=="in",sc=2.54);
- sc=sc*val;
- if(outunit=="IN",sc=sc/2.54);
- if(outunit=="MM",sc=sc*10);
- fname=fnameorg;
- if(indexof(fname,".")==0,fname=fname+".obj");
- fmd=replace(fname,".obj",".txt");
- fout=foutorg;
- if(indexof(fout,".")==0,fout=fout+".obj");
- tmp1=Textformat(origin,4);
- tmp1=RSform(tmp1);
- cmdL=[
- "Origin="+tmp1,[],
- "Sc="+format(sc,6),[],
- "Stv=readLines",[Dq+fname+Dq],
- "cat('',file="+Dq+fout+Dq+")",[],
- "for(nn in Looprange(1,length(Stv))){",[],
- " if(substring(Stv[nn],1,2)=='v '){",[],
- " Tmp1=paste('c(',substring(Stv[nn],3),')',sep='')",[],
- " Tmp1=gsub(' ',',',Tmp1,fixed=TRUE)",[],
- " Tmp1=gsub(',,',',',Tmp1,fixed=TRUE)",[],
- " Tmp1=gsub('(,','(',Tmp1,fixed=TRUE)",[],
- " Tmp=eval(parse(text=Tmp1))",[],
- " Tmp=Origin+Sc*(Tmp-Origin)",[],
- " Stv[nn]=paste('v ',sprintf('%8.5f %8.5f %8.5f',Tmp[1],Tmp[2],Tmp[3]),sep='')",[],
- " }",[],
- " cat(Stv[nn],'\n',sep='',file="+Dq+fout+Dq+",append=TRUE)",[],
- "}",[]
- ];
- options=concat(["Wait=3","Cat=n","File="+fmd],options); // 16.06.26
- CalcbyR("cs",cmdL,options);
- println("Scale of "+fname+" changed");
-);
-
-Mkviewobj(fname,cmdL):=Mkviewobj(Dirwork,fname,cmdL,[]);
-Mkviewobj(Arg1,Arg2,Arg3):=(
- if(!isstring(OCNAME), //17.04.13from
- drawtext(mouse().xy,"Mkobjcmd not defined",
- size->24,color->[1,0,0]);
- , //17.04.13until
- if(islist(Arg2),
- Mkviewobj(Dirwork,Arg1,Arg2,Arg3);
- ,
- Mkviewobj(Arg1,Arg2,Arg3,[]);
- );
- );
-);
-Mkviewobj(pathorg,fnameorg,cmdLorg,optionorg):=(
-//help:Mkviewobj(fname,cmdlist);
-//help:Mkviewobj(fname,[]);
-//help:Mkviewobj(path,fname,cmdlist);
-//help:Mkviewobj(options=["M/R","V","Unit=in","Wait=5"]);
- regional(path,cmdL,eqL,strL,flg,fname,options,make,view,cmdlist,
- vtx,face,unit,tmp,tmp1,tmp2);
- path=replace(pathorg,"\","/");
- if(substring(path,length(path)-1,length(path))!="/",path=path+"/");
- fname=fnameorg;
- if(indexof(fname,".")==0,fname=fname+".obj");
- cmdL=cmdLorg;
- options=optionorg;
- tmp=divoptions(options);
- eqL=tmp_5;
- strL=tmp_7;
- make=-1;
- view=0;
- unit="";
- forall(eqL,
- tmp=indexof(#,"=");
- tmp1=Toupper(substring(#,0,1));
- tmp2=substring(#,tmp,length(#));
- if(tmp1=="M",
- tmp2=Toupper(substring(tmp2,0,1));
- if(tmp2=="N" % tmp2=="F",
- make=0;
- );
- options=remove(options,[#]);
- );
- if(tmp1=="V",
- tmp2=Toupper(substring(tmp2,0,1));
- if(tmp2=="N" % tmp2=="F",
- view=0;
- );
- options=remove(options,[#]);
- );
- if(tmp1=="U", // 16.06.30from
- unit=tmp2;
- options=remove(options,[#]);
- ); // 16.06.30until
- );
- forall(strL,
- tmp=Toupper(substring(#,0,1));
- if(tmp=="M",
- make=1;
- options=remove(options,[#]);
- );
- if(tmp=="R",
- make=0;
- options=remove(options,[#]);
- );
- if(tmp=="V",
- view=1;
- options=remove(options,[#]);
- );
- );
- if(islist(cmdL),
- if(length(cmdL)==0,
- make=0;
- println("Command sequence not defnamed");
- );
- ,
- make=0;
- println("Command sequence not defined");
- );
- if(make==-1,
- setdirectory(pathorg);
- tmp1=load(fname);
- if(length(tmp1)==0,make=1,make=0);
- setdirectory(Dirwork);
- );
- if(make==1,
- if(isstring(cmdL_1),
- cmdlist=MkprecommandR();
- cmdlist=concat(cmdlist,["Openobj",[Dq+path+fname+Dq]]);
- cmdlist=concat(cmdlist,cmdL);
- tmp=["Closeobj()",[],"ans="+Dq+"||||"+Dq,[]];//16.12.26
- cmdlist=concat(cmdlist,tmp);
- tmp=append(options,"Cat=y");
- tmp1=apply(tmp,Toupper(substring(#,0,1))); // 16.04.23from
- tmp1=select(tmp1,#=="W");
- if(length(tmp1)==0,
- tmp=append(tmp,"Wait=5");
- );// 16.04.23until
- CalcbyR("ans",cmdlist,tmp);
- wait(WaitUnit*100); // 16.03.18
- ,
- vtx=cmdL_1;
- face=cmdL_2;
- setdirectory(pathorg);
- SCEOUTPUT = openfile(fname);
- forall(vtx,tmp1,
- tmp2=tmp1;
- if(ispoint(tmp1),
- tmp2=parse(text(tmp1)+"3d");
- );
- tmp2=apply(tmp2,format(#,5));
- tmp="v "+tmp2_1+" "+tmp2_2+" "+tmp2_3;
- println(SCEOUTPUT,tmp);
- );
- forall(face,tmp1,
- tmp="f";
- forall(tmp1,
- tmp=tmp+" "+text(#);
- );
- println(SCEOUTPUT,tmp);
- );
- closefile(SCEOUTPUT);
- setdirectory(Dirwork);
- );
- );
- if(length(unit)>0, // 16.06.30from
- Changeobjscale(fname,["Unit="+unit]);//16.10.04
- ); // 16.06.30until
- if(view==1,
- flg=0; // 16.03.14 from
- if(isstring(ViewFile),
- if(ViewFile==fname,flg=1);
- );
- if(flg==0,
- kcV3(path,fname);
- ViewFile=fname;
- ); // 16.03.14 until
- );
-);
-
-SetObj(str):=Objname(str,["m","v"]); //17.01.12
-SetObj(str,options):=Objname(str,options); //17.01.12
-Objnameoptions(str,options):=Objname(str,options);// 16.11.29
-Objname(str):=Objname(str,["m","v"]); // 16.11.29
-Objname(str,optionsorg):=(
-//help:Objname("sample");
-//help:Objname(options=["m","v"]);
-//help:Setobj("sample");
-//help:Setobj(options=["m","v"]);
- regional(options);
- if(length(str)>0,
- OCNAME=str;
- );
- options=select(optionsorg,length(#)>0); //17.12.23from
- if(length(options)>0,
- OCOPTION=options;
- ,
- OCOPTION=["m","v"];
- ); //17.12.23until
- println([OCNAME,OCOPTION]);
-);
-
-Mkobjcmd(nm,fd):=Mkobjcmd(nm,fd,[40,40,"+"]);
-Mkobjcmd(nm,fd,options):=(
-//help:Mkobjcmd("1",fd,[40,40,"+"]);
- regional(ffd,cmd,out,div1,div2,side,
- reL,stL,tmp,tmp1,tmp2,tmp3,tmp4);
- div1=40;
- div2=40;
- side="+";
- tmp=Divoptions(options);
- reL=tmp_6;
- stL=select(tmp_7,length(#)>0);
- forall(1..length(reL),
- if(#==1,
- div1=reL_1;
- div2=div1;
- ,
- div2=reL_2;
- );
- );
- forall(stL,
- side=#;
- );
- side="'"+side+"'";
- ffd=Fullformfunc(fd);
- tmp=indexof(ffd_5,"=");
- tmp1=RSform(substring(ffd_5,0,tmp-1));
- tmp2=RSform(substring(ffd_5,tmp,length(ffd_5)));
- tmp=indexof(ffd_6,"=");
- tmp3=RSform(substring(ffd_6,0,tmp-1));
- tmp4=RSform(substring(ffd_6,tmp,length(ffd_6)));
- out=["Fun"+nm+"<- function("+tmp1+","+tmp3+"){",[]];
- tmp=" Out=c("+ffd_2+","+ffd_3+","+ffd_4+")";
- out=concat(out,[tmp,[]]);
- out=concat(out,["}",[]]);
- tmp1=["Objsurf",
- ["Fun"+nm,tmp2,tmp4,div1,div2,side]];
- out=concat(out,tmp1);
- tmp2=[]; // 16.06.10from
- forall(out,tmp1,
- if(islist(tmp1),
- tmp=apply(tmp1,if(isstring(#),Dq+#+Dq,Textformat(#,5)));
- ,
- if(isstring(tmp1),tmp=Dq+tmp1+Dq,tmp=Textformat(#,5));
- );
- tmp2=append(tmp2,tmp);
- );
- parse("oc"+nm+"="+tmp2);
- println("cmd seq oc"+nm+" generated"); // 16.06.10until
- OBJCMD=concat(OBJCMD,out);//16.11.29
- out;
-);
-
-Mkobjnrm(nm,fd):=Mkobjnrm(nm,fd,[]);
-Mkobjnrm(nm,fd,optionorg):=(
-//help:Mkobjnrm("1",fd1,["Disp=y"]);
-//help:Mkobjnrm("1","[x,y,x*y/(x^2+y^2)],x,y");
- regional(name,options,stL,eqL,disp,ffd,fst,xst,yst,cmdL,
- precmd,out,tmp,tmp1,tmp2,tmp3);
- name="nrm"+nm;
- options=select(optionorg,length(#)>0);
- tmp=Divoptions(options);
- eqL=tmp_5;
- stL=tmp_7;
- precmd=[];
- disp="N";
- forall(eqL, // 16.05.02
- tmp1=Toupper(substring(#,0,1));
- tmp=indexof(#,"=");
- tmp2=Toupper(substring(#,tmp,tmp+1));
- if(tmp1=="D",
- if(tmp2=="Y" % tmp2=="T",
- disp="Y";
- options=remove(options,[#]);
- );
- );
- );
- forall(stL,
- if(indexof(#,"+")+indexof(#,"-")==0,
- precmd=concat(precmd,[#,[]]);
- options=remove(options,[#]);
- );
- );
- if(isstring(fd),
- tmp=Indexall(fd,",");
- fst=[
- substring(fd,1,tmp_1-1),
- substring(fd,tmp_1,tmp_2-1),
- substring(fd,tmp_2,tmp_3-2)
- ];
- xst=substring(fd,tmp_3,tmp_4-1);
- yst=substring(fd,tmp_4,length(fd));
- ,
- ffd=Fullformfunc(fd);
- fst=text(ffd_(2..4));
- tmp=indexof(ffd_5,"=");
- xst=substring(ffd_5,0,tmp-1);
- tmp=indexof(ffd_6,"=");
- yst=substring(ffd_6,0,tmp-1);
- );
- cmdL=precmd;
- cmdL=concat(cmdL,[
- "fx:diff",[fst,xst],
- "fy:diff",[fst,yst],
- "nx:fx[2]*fy[3]-fx[3]*fy[2]",[],
- "ny:fx[3]*fy[1]-fx[1]*fy[3]",[],
- "nz:fx[1]*fy[2]-fx[2]*fy[1]",[],
- "nn:factor(nx^2+ny^2+nz^2)",[], // 16.04.21
- "nn:sqrt(nn)",[], // 16.04.20
- "nx:nx/nn",[],
- "ny:ny/nn",[],
- "nz:nz/nn",[],
- "n:[nx,ny,nz]",[], // 16.04.21from
- "n:ratsimp(n)",[],
- "n:trigsimp(n)",[],
- "n:factor(n)",[], // 16.04.21until
- "n",[]
- ]);
- CalcbyM(name,cmdL,options); // 16.05.12
- tmp1=parse(name); // 16.05.12
- out=[tmp1]; // 15.04.21b from
- tmp2=[];
- forall(1..3,
- tmp=indexof(tmp1,",");
- if(tmp==0,
- tmp=indexof(tmp1,"]");
- );
- tmp3=substring(tmp1,0,tmp-1);
- tmp1=substring(tmp1,tmp,length(tmp1));
- tmp=indexof(tmp3,"/");
- if(tmp>0,
- tmp3=substring(tmp3,tmp,length(tmp3));
- tmp2=append(tmp2,tmp3);
- ,
- tmp2=append(tmp2,"1");
- );
- );
-// out=append(out,tmp2);
- out=out_1; // 16.05.02from
- println("calculate "+name+":"); // 16.05.12
- if(disp=="Y", // 16.05.02
- println(out);
- // println(out_2);
- ); // 16.05.02until
- out;
-);
-
-Mkobjthickcmd(nm,fd):=Mkobjthickcmd(nm,fd,"",[40,40,"+"]);
-Mkobjthickcmd(nm,fd,Arg):=(
- if(islist(Arg),
- Mkobjthickcmd(nm,fd,"",Arg);
- ,
- Mkobjthickcmd(nm,fd,Arg,[]);
- );
-);
-Mkobjthickcmd(nm,fd,fnrm,optionorg):=(
-//help:Mkobjthickcmd("1",fd,["assume(R>0)"]);
-//help:Mkobjthickcmd("1",fd,fnorm);
-//help:Mkobjthickcmd(options1=[40,40,0.05,-0.05,"+n+s+e+w+"]);
-//help:Mkobjthickcmd(options2=["ratsimp","trigsimp"]);
- regional(options,ffd,cmd,out,div1,div2,thick1,thick2,side,
- reL,stL,addcmd,fst,xst,yst,tmp,tmp1,tmp2,tmp3,tmp4);
- div1=40;
- div2=40;
- thick1=0.05;
- thick2=-0.05;
- side="+n+s+e+w+";
- options=select(optionorg,length(#)>0);
- tmp=Divoptions(options);
- reL=tmp_6;
- stL=tmp_7;
- tmp1=1; // 16.04.21from
- tmp2=1;
- forall(1..length(reL),
- tmp=reL_#;
- if(tmp>1,
- if(tmp1==1,
- div1=tmp;
- div2=tmp;
- ,
- div2=tmp;
- );
- tmp1=tmp1+1;
- ,
- if(tmp2==1,
- thick1=tmp;
- thick2=-tmp;
- ,
- thick2=tmp;
- );
- tmp2=tmp2+1;
- );
- ); // 16.04.21until
- options=remove(options,reL);
- forall(stL,
- if(length(#)>0,
- tmp=indexof(#,"+")+indexof(#,"-");
- if(tmp>0,
- side=#;
- options=remove(options,[#]);
- );
- );
- );
- side="'"+side+"'";
- ffd=Fullformfunc(fd);
- tmp=indexof(ffd_5,"=");
- tmp1=substring(ffd_5,0,tmp-1);
- tmp2=RSform(substring(ffd_5,tmp,length(ffd_5)));
- tmp=indexof(ffd_6,"=");
- tmp3=substring(ffd_6,0,tmp-1);
- tmp4=RSform(substring(ffd_6,tmp,length(ffd_6)));
- fst=text(ffd_(2..4));
- tmp=indexof(ffd_5,"=");
- xst=substring(ffd_5,0,tmp-1);
- tmp=indexof(ffd_6,"=");
- yst=substring(ffd_6,0,tmp-1);
- out=["Fun"+nm+"<- function("+tmp1+","+tmp3+"){",[]];
- tmp=" c("+ffd_2+","+ffd_3+","+ffd_4+")";
- out=concat(out,[tmp,[]]);
- out=concat(out,["}",[]]);
- tmp=["Fnrm"+nm+"<- function("+xst+","+yst+"){",[]];
- out=concat(out,tmp);
- if(fnrm=="",
- tmp=Mkobjnrm(nm,fd,options);
- tmp1=RSform(tmp);
- tmp="Fnrmden"+nm+"("+xst+","+yst+"):="+tmp_2;
- parse(tmp);
- ,
- tmp1=RSform(fnrm);
-// if(indexof(tmp1,"Out=")==0, // 16.05.09from
-// tmp1="Out="+tmp1;
-// ); // 16.05.09until
- );
- out=concat(out,[tmp1,[]]);
- out=concat(out,["}",[]]);
- tmp1=["Objthicksurf",
- ["Fun"+nm,tmp2,tmp4,div1,div2,"Fnrm"+nm,thick1,thick2,side]];
- out=concat(out,tmp1);
- tmp2=[]; // 16.06.10from
- forall(out,tmp1,
- if(islist(tmp1),
- tmp=apply(tmp1,if(isstring(#),Dq+#+Dq,Textformat(#,5)));
- ,
- if(isstring(tmp1),tmp=Dq+tmp1+Dq,tmp=Textformat(#,5));
- );
- tmp2=append(tmp2,tmp);
- );
- parse("oc"+nm+"="+tmp2);
- println("cmd seq oc"+nm+" generated"); // 16.06.10until
- OBJCMD=concat(OBJCMD,out);//16.11.29
- out;
-);
-
-Mkobjpolycmd(nm,pd):=Mkobjpolycmd(nm,pd,[]);
-Mkobjpolycmd(nm,pd,optionorg):=(
-//help:Mkobjpolycmd("1",pd);
-//help:Mkobjpolycmd(options1=[internal([0,0,0])]);
- regional(options,cmd,out,thick1,thick2,origin,
- reL,stL,vtx,face,pt1,pt2,pt3,tmp,tmp1,tmp2);
- thick1=0;
- thick2=-0;
- origin=[0,0,0];
- options=select(optionorg,length(#)>0);
- tmp=Divoptions(options);
- reL=tmp_6;
- stL=tmp_7;
- tmp1=1;
- forall(1..length(reL),
- tmp=reL_#;
- if(islist(tmp),
- origin=tmp;
- ,
- if(tmp1==1,
- thick1=tmp;
- thick2=-tmp;
- ,
- thick2=tmp;
- );
- tmp1=tmp1+1; // 16.07.08
- );
- );
- options=remove(options,reL);
- forall(stL,
- tmp=indexof(#,"+")+indexof(#,"-");
- if(tmp>0,
- side=#;
- options=remove(options,[#]);
- );
- );
- vtx=pd_1; //16.04.23from
- if(length(pd)==2,face=pd_2,face=pd_3);
- if(isstring(vtx),vtx=parse(vtx));
- vtx=apply(vtx,if(isstring(#),parse(#),#)); // 16.06.18
- if(isstring(face),face=parse(face));
- forall(1..length(face),
- tmp=face_#;
- pt1=vtx_(tmp_1);// 16.06.18
- pt2=vtx_(tmp_2);// 16.06.18
- pt3=vtx_(tmp_(length(tmp)));// 16.06.18
- tmp1=Crossprod(pt2-pt1,pt3-pt1);
- tmp2=Dotprod(tmp1,pt1-origin);
- if(tmp2<0,
- face_#=reverse(face_#);
- );
- );
- tmp1=RSform(textformat(vtx,5),2);//17.12.24from
- tmp2=RSform(textformat(face,5),2);
- out=["Objpolyhedron",[tmp1,tmp2]];//17.12.24until
- tmp2=[]; // 16.06.10from
- forall(out,tmp1,
- if(islist(tmp1),
- tmp=apply(tmp1,if(isstring(#),Dq+#+Dq,Textformat(#,5)));
- ,
- if(isstring(tmp1),tmp=Dq+tmp1+Dq,tmp=Textformat(#,5));
- );
- tmp2=append(tmp2,tmp);
- );
- parse("oc"+nm+"="+tmp2);
- println("cmd seq oc"+nm+" generated"); // 16.06.10until
- OBJCMD=concat(OBJCMD,out);//16.11.29
- out;
-);
-
-Mkobjplatecmd(nm,pd):=Mkobjplatecmd(nm,pd,[]);
-Mkobjplatecmd(nm,pdorg,optionorg):=( // 16.06.18
-//help:Mkobjplatecmd("1",pd);
-//help:Mkobjplatecmd("1",vtxlist);
-//help:Mkobjplatecmd(options1=[0.05,-0.05]);
- regional(pd,options,cmd,out,thick1,thick2,nn,pdn,
- reL,vtx,face,nv,npttmp,tmp1,tmp2,tmp3,tmp4);
- pd=pdorg;
- if(MeasureDepth(pd)==1,pd=[pd]);
- if(MeasureDepth(pd)==2,pd=[pd]);//16.10.04from
- forall(1..length(pd),nn, // 16.06.19from
- pdn=pd_nn;
- vtx=pdn_1;
- if(length(pdn)==1,face=[1..(length(vtx))],face=pdn_2);
- vtx=apply(vtx,if(isstring(#),parse(#),#));
- vtx=apply(vtx,if(ispoint(#),parse(text(#)+"3d"),#));
- pd_nn=[vtx,face];//16.10.04until
- ); // 16.06.19until
- thick1=0.05;
- thick2=-0.05;
- options=select(optionorg,length(#)>0);
- tmp=Divoptions(options);
- reL=tmp_6;
- tmp1=1;
- forall(1..length(reL),
- tmp=reL_#;
- if(tmp1==1,
- thick1=tmp;
- thick2=-tmp;
- ,
- thick2=tmp;
- );
- tmp1=tmp1+1;// 16.07.08
- );
- options=remove(options,reL);
- out=[];
- forall(1..length(pd),npd,
- forall(pd_npd_2,face,
- vtx=apply(face,pd_npd_1_#);
- npt=length(vtx);
- tmp1=vtx_1;
- tmp2=vtx_2;
- tmp3=vtx_npt;
- tmp=Crossprod(tmp2-tmp1,tmp3-tmp1);
- nv=tmp/Dist3d(tmp);
- tmp1=apply(vtx,#+thick1*nv);
- tmp2=apply(vtx,#+thick2*nv);
- vtx=concat(tmp1,tmp2);
- tmp=apply(1..npt,#+npt);
- tmp2=[1..npt,reverse(tmp)];
- tmp=apply(1..(npt-1),[#,#+npt,#+npt+1,#+1]);
- tmp2=concat(tmp2,tmp);
- tmp=[npt,npt+npt,1+npt,1];
- tmp2=append(tmp2,tmp);
- tmp3=RSform(textformat(vtx,5),2);//17.12.24from
- tmp4=RSform(textformat(tmp2,5),2);
- out=concat(out,["Objpolyhedron",[tmp3,tmp4]]);//17.12.24until
- );
- );
- tmp3="["; // 16.06.10from
- forall(out,tmp1,
- tmp2="";
- if(isstring(tmp1),
- tmp2=tmp2+Dq+tmp1+Dq+",[";
- ,
- tmp2=tmp2+Textformat(tmp1_1,5)+",";
- tmp2=tmp2+Textformat(tmp1_2,5)+"],";
- );
- tmp3=tmp3+tmp2;
- );
- tmp3=substring(tmp3,0,length(tmp3)-1)+"]";
- parse("oc"+nm+"="+tmp3);
- println("cmd seq oc"+nm+" generated");
- OBJCMD=concat(OBJCMD,out);//16.11.29
- out;
-);
-
-Mkobjcrvcmd(nm,pst):=Mkobjcrvcmd(nm,pst,[]);
-Mkobjcrvcmd(nm,pstorg,options):=(
-//help:Mkobjcrvcmd("1","sc3d1",[0.02,6,"xy"]);
- regional(cmd,out,thick,poly,dir,phead,pst,
- reL,stL,tmp,tmp1,tmp2,tmp3,tmp4,flg);
- thick=0.02;
- poly=6;
- dir="xy";
- tmp=Divoptions(options);
- reL=tmp_6;
- stL=select(tmp_7,length(#)>0);
- forall(1..length(reL),
- if(#==1,
- thick=reL_1;
- ,
- poly=reL_2;
- );
- );
- forall(stL,
- dir=#;
- );
- dir="'"+dir+"'";
- tmp=indexof(pstorg,"_");
- if(tmp==0,
- phead=pstorg;
- ,
- phead=substring(pstorg,0,tmp-1);
- );
- pst=pstorg;
- out=[];
- tmp1=select(GLIST,indexof(#,phead+"=")>0);
- if(length(tmp1)==0, println(phead+" incorrect"));
-// out=[tmp1_1,[]];
- out=[];
- tmp1=parse(pst);
- flg=0; // 16.04.23from
- if(MeasureDepth(tmp1)==2,flg=1);
- if(MeasureDepth(tmp1)==0,
- if(islist(tmp1),flg=1);
- );
- if(flg==1, // 16.04.23until
- if(!isstring(tmp1_1),
- forall(1..length(tmp1),
- tmp=["Objcurve",[pst+"[["+text(#)+"]]",thick,poly,dir]];//17.12.22
- out=concat(out,tmp);
- );
- ,
- forall(1..length(tmp1), // 16.11.14from
- tmp=["Objcurve",[tmp1_#,thick,poly,dir]];
- out=concat(out,tmp);
- );// 16.11.14until
- );
- ,
- tmp1=Chunderscore(pst);
- tmp=["Objcurve",[tmp1,thick,poly,dir]];
- out=concat(out,tmp);
- );
- tmp2=[]; // 16.06.10from
- forall(out,tmp1,
- if(islist(tmp1),
- tmp=apply(tmp1,if(isstring(#),Dq+#+Dq,Textformat(#,5)));
- ,
- if(isstring(tmp1),tmp=Dq+tmp1+Dq,tmp=Textformat(#,5));
- );
- tmp2=append(tmp2,tmp);
- );
- parse("oc"+nm+"="+tmp2);
- println("cmd seq oc"+nm+" generated"); // 16.06.10until
- OBJCMD=concat(OBJCMD,out);//16.11.29
- out;
-);
-
-Mkobjsymbcmd(symb,size,rot,dir,pos):=
- Mkobjsymbcmd("",symb,size,rot,dir,pos,[]);
-Mkobjsymbcmd(Ar1,Ar2,Ar3,Ar4,Ar5,Ar6):=(
- if(isstring(Ar2),
- Mkobjsymbcmd(Ar1,Ar2,Ar3,Ar4,Ar5,Ar6,[]);
- ,
- Mkobjsymbcmd("",Ar1,Ar2,Ar3,Ar4,Ar5,Ar6);
- );
-);
-Mkobjsymbcmd(path,symborg,size,rot,dir,pos,optionorg):=(
-//help:Mkobjsymbcmd("x",0.5,0,V3d,A3d);
-//help:Mkobjsymbcmd("P",0.5,0,V3d,A3d);
-//help:Mkobjsymbcmd(options=[0.05,4,"'yz'"]);
- regional(symb,options,opbez,eqL,reL,stL,dtLstr,dtL,dt,
- alpha,Alpha,out,mx,Mx,my,My,center,tmp,tmp1,tmp2);
- alpha="abcdefghijklmnopqrstuvwxyz";
- Alpha=Toupper(alpha);
- symb=symborg;
- options=optionorg;
- opbez=["nodisp"];
- tmp=Divoptions(options);
- eqL=tmp_5;
- reL=tmp_6;
- stL=tmp_7;
- opbez=concat(opbez,eqL);
- options=remove(options,eqL);
- tmp1=[0.05,4,"'yz'"];
- if(length(reL)==0,
- options=concat(options,tmp1_(1..2));
- );
- if(length(reL)==1, // debugged 16.06.18
- options=concat(options,[tmp1_2]);
- );
- if(length(stL)==0,
- options=concat(options,[tmp1_3]);
- );
- out=[];
- tmp=parse(symb);
- if((islist(symb)) % (islist(tmp)), //17.12.24from
- if(islist(tmp),
- dtL=[symb];
- ,
- dtL=symb;
- ); //17.12.24until
- ,
- tmp=substring(symb,0,1);
- if(tmp>="a" & tmp<="z",tmp1=tmp+"s");
- if(tmp>="A" & tmp<="Z",
- tmp=indexof(Alpha,tmp);
- tmp=substring(alpha,tmp-1,tmp);
- tmp1=tmp+"c";
- );
- if(length(symb)==1,
- if(symb>"Z",
- symb=tmp1+"i";
- ,
- symb=tmp1+"r";
- );
- );
- if(length(symb)==2,symb=tmp1+substring(symb,1,2));
- if(length(path)>0, // 16.04.23from
- setdirectory(path);
- ,
- tmp=Dirhead+"/data/fontF"; // 16.05.10
- setdirectory(tmp);
- ); // 16.04.23until
- dtL=Readbezier(symb,opbez);
- dtLstr=dtL; //17.12.23
- setdirectory(Dirwork);
- forall(dtL,dt,
- tmp=dt+"=";
- tmp1=select(GLIST,indexof(#,tmp)>0);
- if(length(tmp1)>0,//17.12.23from
- tmp1=tmp1_1;
- out=concat(out,[tmp1,[]]);
- ); //17.12.23until
- );
- mx=100;Mx=-100;my=100;My=-100;
- forall(dtL,dt,
- tmp=apply(parse(dt),#_1);
- mx=min(append(tmp,mx));
- Mx=max(append(tmp,Mx));
- tmp=apply(parse(dt),#_2);
- my=min(append(tmp,my));
- My=max(append(tmp,My));
- );
- center=[(mx+Mx)/2,(my+My)/2];
- tmp1=[];
- forall(dtL,dt,
- Rotatedata(dt,dt,rot,[center,"nodisp"]);
- Translatedata(dt,"rt"+dt,-center,["nodisp"]);
- tmp1=append(tmp1,"tr"+dt);
- );
- dtL=tmp1;
- forall(dtL,dt,
- tmp=dt+"=";
- tmp1=select(GLIST,indexof(#,tmp)>0);
- if(length(tmp1)>0, //17.12.23from
- tmp1=tmp1_1;
- out=concat(out,[tmp1,[]]);
- ); //17.12.23until
- );
- );
- tmp1=text(options);
- tmp1=substring(tmp1,1,length(tmp1)-1);
- tmp2=""; //17.12.23from
- forall(dtL,
- tmp2=tmp2+","+#;
- );
- tmp2="list("+substring(tmp2,1,length(tmp2))+")"; //17.12.23until
- out=concat(out,[
- "Sd=Symb3data",[tmp2,size,0,dir,pos], //17.12.23
- "Objsymb(Sd,"+tmp1+")",[]
- ]);
- tmp2=[]; // 16.06.10from
- forall(out,tmp1,
- if(islist(tmp1),
- tmp=apply(tmp1,if(isstring(#),Dq+#+Dq,Textformat(#,5)));
- ,
- if(isstring(tmp1),tmp=Dq+tmp1+Dq,tmp=Textformat(#,5));
- );
- tmp2=append(tmp2,tmp);
- );
- parse("oc"+symborg+"="+tmp2);
- println("cmd seq oc"+symborg+" generated"); // 16.06.10until
- OBJCMD=concat(OBJCMD,out);//16.11.29
- out;
-);
-
-Concatcmd(cmdlist):=(
-//help:Concatcmd([cmdL1,cmdL2]);
- regional(out);
- out=[];
- forall(cmdlist,
- out=concat(out,#);
- );
- out;
-);
-
-WritetoF(fname,cmdL):=(
-// help:WritetoF("outdata",cmdL);
- regional(tmp,tmp1,tmp2,filename,wfilename);
- if(indexof(fname,".")==0,
- filename=fname+".input";
- ,
- filename=fname;
- );
- wfilename=replace(filename,".input",".txt");
- SCEOUTPUT = openfile(filename);
- forall(1..(length(cmdL)),
- tmp1=cmdL_#;
- if(substring(tmp1,0,1)=="[",
- tmp1=tmp1+" --##";
- println(SCEOUTPUT,tmp1);
- ,
- println(SCEOUTPUT,tmp1);
- println(SCEOUTPUT," --##");
- );
- );
- closefile(SCEOUTPUT);
-);
-
-kcF(fname):=kcF(fname,[]);
-kcF(fname,optionorg):=(
- regional(options,tmp,tmp1,tmp2,eqL,strL,
- filename,wfile,flg);
- if(indexof(fname,".")==0,
- filename=fname+".input";
- ,
- filename=fname;
- );
- wfile=replace(filename,".input",".sfort");
- options=optionorg;
- tmp=Divoptions(options);
- eqL=tmp_5;
- strL=tmp_7;
- forall(eqL,
- tmp=indexof(#,"=");
- tmp1=substring(#,0,tmp-1);
- tmp2=substring(#,tmp,length(#));
- );
- flg=0;
- forall(strL,
- if(Toupper(substring(#,0,1))=="R",
- flg=0;
- options=remove(options,[#]);
- );
- if(Toupper(substring(#,0,1))=="M",
- flg=1;
- );
- );
- if(flg==0,
- tmp2=replace(filename,".input",".sfort");
- tmp1=load(tmp2);
- if(length(tmp1)==0,
- flg=1;
- );
- );
- if(flg==1,
- tmp1="";
- if(iswindows(),
- tmp2=Batparent;
- ,
- tmp2=Shellparent;
- );
- flg=0;
- forall(reverse(1..length(tmp2)),
- if(flg==0,
- tmp=substring(tmp2,#-1,#);
- if(tmp=="/" % tmp=="\", // 14.01.15
- tmp1=substring(tmp2,0,#-1);
- tmp2=substring(tmp2,#,length(tmp2));
- flg=1;
- );
- );
- );
- if(length(tmp1)>0,
- setdirectory(tmp1);
- );
- if(iswindows(),
-// SCEOUTPUT=openfile(wfile);
-// println(SCEOUTPUT,"");
-// closefile(SCEOUTPUT);
- SCEOUTPUT = openfile("kc.bat");
- tmp=Dq+PathF+"\bash"+Dq+" --login -i -c "+Dq+"/cygdrive/";
- tmp1=replace(Dirwork,"\","/");
- if(indexof(tmp1,":")==0,
- tmp=tmp+"c/"+tmp1+"/kc.sh"+Dq;
- ,
- tmp1=replace(tmp1,":","");
- tmp=tmp+tmp1+"/kc.sh"+Dq;
- );
- println(SCEOUTPUT,tmp);
- println(SCEOUTPUT,"exit 0");
- closefile(SCEOUTPUT);
- SCEOUTPUT = openfile("kc.sh");
- Lf=unicode("10",base->10);
- print(SCEOUTPUT,"#!/bin/sh"+Lf);
- tmp1=replace(Dirwork,"\","/");
- if(indexof(tmp1,":")==0,
- tmp="cd "+Dq+"/cygdrive/c/"+tmp1+Dq;
- ,
- tmp1=replace(tmp1,":","");
- tmp="cd "+Dq+"/cygdrive/"+tmp1+Dq;
- );
- print(SCEOUTPUT,tmp+Lf);
- tmp=Dq+"/opt/fricas/bin/fricas";
- tmp=tmp+Dq+" -nox -eval ";
- tmp=tmp+Dq+")read "+filename+Dq;
-// tmp=tmp+" > "+Dq+wfile+Dq;
- print(SCEOUTPUT,tmp+Lf);
- print(SCEOUTPUT,"exit 0"+Lf);
- closefile(SCEOUTPUT);
- println(kc(Dirwork+Batparent,Dirlib,Fnametex));// 16.05.29,06.05
- ,
- SCEOUTPUT = openfile("kc.sh");
- println(SCEOUTPUT,"#!/bin/sh");
- println(SCEOUTPUT,"cd "+Dq+Dirwork+Dq);
- tmp=Dq+PathF+Dq+" -nox -eval "+Dq+")read "+filename+Dq;
-// tmp=tmp+" > "+wfile;
- println(SCEOUTPUT,tmp);
- println(SCEOUTPUT,"exit 0");
- closefile(SCEOUTPUT);
- println(kc(Dirwork+Shellparent,Mackc+Dirlib,Fnametex));// 16.05.29,06.05
- );
- setdirectory(Dirwork);
- );
-);
-
-CalcbyF(name,cmd):=CalcbyM(name,cmd,[]);
-CalcbyF(name,cmd,optionorg):=(
-//help:CalcbyF("a",cmdL);
-//help:CalcbyF(options= ["m/r","Wait=5"]]);
- regional(options,tmp,tmp1,tmp2,tmp3,tmp4,strL,eqL,
- flg,wflg,file,nc,arg,cmdF,cmdlist,wfile,Alpha,
- waiting,num,dig,varlist);
- options=optionorg;
- tmp=divoptions(options);
- eqL=tmp_5;
- strL=tmp_7;
- waiting=5;
- dig=5;
- forall(eqL,
- tmp=indexof(#,"=");
- tmp1=Toupper(substring(#,0,1));
- tmp2=substring(#,tmp,length(#));
- if(tmp1=="W",
- waiting=parse(tmp2);
- options=remove(options,[#]);
- );
- );
- file=Fhead+name+".input";
- wfile=Fhead+name+".sfort";
- wflg=0;
- forall(strL,
- tmp=Toupper(substring(#,0,1));
- if(tmp=="M",
- wflg=1;
- options=remove(options,[#]);
- );
- if(tmp=="R",
- wflg=-1;
- options=remove(options,[#]);
- );
- );
- cmdF=cmd;
- tmp1=")set breakmode quit";
- tmp2=")set output fortran on";
- tmp3=")set fortran precision single";
- cmdlist=[tmp1,tmp2,tmp3];
- tmp=")set output fortran "+wfile;
- cmdlist=append(cmdlist,tmp);
- forall(1..floor(length(cmdF)/2),nc, //17.5.18
- tmp1=cmdF_(2*nc-1);
- tmp1=replace(tmp1,LFmark,""); // 16.06.12
- tmp2=cmdF_(2*nc); // list of argments
- if(nc<length(cmdF)/2,
- tmp3="";
- forall(tmp2,arg,
- if(isstring(arg),
- tmp3=tmp3+arg+",";
- ,
- tmp3=tmp3+textformat(arg,dig)+",";
- );
- );
- if(length(tmp3)>0,
- tmp3=tmp1+
- "("+substring(tmp3,0,length(tmp3)-1)+")";
- ,
- tmp3=tmp1;
- );
- cmdlist=append(cmdlist,tmp3);
- ,
- if(indexof(tmp1,"::")==0,
- varlist=[tmp1];
- ,
- varlist=tokenize(tmp1,"::");
- );
- forall(varlist,
- cmdlist=append(cmdlist,"["+#+"]");
- );
- );
- );
- cmdlist=concat(cmdlist,["111111*1",")quit"]);
- if(wflg==0,
- tmp1=load(file);
- if(length(tmp1)==0,
- wflg=1;
- ,
- if(indexof(tmp1," --##")==0, // 15.11.26
- wflg=1;
- ,
- tmp1=tokenize(tmp1," --##");
- tmp1=tmp1_(1..(length(tmp1)-1));
- if(length(tmp1)!=length(cmdlist),
- wflg=1;
- ,
- tmp=select(1..length(tmp1),tmp1_#!=cmdlist_#);
- if(length(tmp)>0, wflg=1);
- );
- );
- );
- );
- if(wflg==0,wflg=-1);
- if(wflg==1,
- if(length(wfile)>0,
- SCEOUTPUT=openfile(wfile);
- println(SCEOUTPUT,"");
- closefile(SCEOUTPUT);
- );
- WritetoF(file,cmdlist);
- kcF(file,concat(options,["m"]));
- );
- Alpha="ABCDEFGHIJKLMNOPQRSTUVWXYZ";
- flg=0;
- tmp1=floor(waiting*1000/WaitUnit);
- repeat(tmp1,
- if(flg==0,
- tmp1=load(wfile);
- if(wflg==1,wait(WaitUnit));
- tmp=indexof(tmp1,"Error")+indexof(tmp1,"find");
- if(tmp>0,
- println("Some error(s) occurred");
- tmp=tokenize(tmp1," --##");
- forall(tmp,
- if(indexof(#,"Error")+indexof(#,"find")>0,
- println(tmp_(length(tmp)));
- );
- );
- flg=2;
- );
- if(indexof(tmp1,"111111")>0,
- tmp1=replace(tmp1," &","");
- tmp3="[";
- forall(1..length(varlist),
- tmp=indexof(tmp1,"["+varlist_#+"]");
- tmp1=substring(tmp1,tmp,length(tmp1));
- tmp=indexof(tmp1,"(1)=");
- tmp1=substring(tmp1,tmp+3,length(tmp1));
- tmp=indexof(tmp1," ");
- tmp3=tmp3+Dq+substring(tmp1,0,tmp-1)+Dq+",";
- );
- tmp3=replace(tmp3,"**","^");
- tmp3=replace(tmp3,".0","");
- tmp4="";
- forall(1..length(tmp3),
- tmp=substring(tmp3,#-1,#);
- tmp1=indexof(Alpha,tmp);
- if(tmp1>0,
- tmp4=tmp4+unicode(text(tmp1+96),base->10);
- ,
- if(tmp==" " % tmp=="&",
- ,
- tmp4=tmp4+tmp;
- );
- );
- );
- tmp=name+"="+substring(tmp4,0,length(tmp4)-1)+"]";
- parse(tmp);
- tmp=parse(name);
- if(length(tmp)==1,
- tmp1=substring(tmp4,1,length(tmp3)-1);
- parse(name+"="+tmp1);
- );
- flg=1;
- tmp2=#*WaitUnit/1000;
- ,
- if(wflg==-1,
- flg=-1;
- ,
- wait(WaitUnit);
- );
- );
- );
- );
- if(flg<=0,
- if(flg==-1,
- println(wfile+" does not exist");
- ,
- tmp="("+text(waiting)+" s )";
- tmp1=load(wfile);
- if(length(tmp1)>0,
- println(wfile+" incomplete"+tmp); // 2016.02.24
- ,
- println(wfile+" not generated "+tmp);
- );
- );
- ,
- if(flg==1,
- println(" Succeeded "+name+" ("+text(tmp2)+" sec)");
- );
- );
-);
-
-Frfun(name,fun,argL):=Frifun(name,fun,argL,[]);
-Frfun(name,fun,argL,optionorg):=Frifun(name,fun,argL,optionorg);
-Frifun(name,fun,argL):=Frifun(name,fun,argL,[]);
-Frifun(name,fun,argL,optionorg):=(
-//help:Frfun("1","integrate",["sin(x)^3","x"],[""]);
-//help:Mxfun(options=["Disp=y"]);
- regional(nm,options,eqL,disp,cmdL,tmp,tmp1,tmp2);
- nm="fri"+name;
- options=optionorg;
- tmp=divoptions(options);
- disp=1;
- eqL=tmp_5;
- forall(eqL,
- tmp=indexof(#,"=");
- tmp1=Toupper(substring(#,0,3));
- tmp2=substring(#,tmp,length(#));
- if((tmp1=="DIS") % (tmp1=="DSP") ,
- tmp=Toupper(substring(tmp2,0,1));
- if((tmp=="F") % (tmp=="N"),
- disp=0;
- );
- options=remove(options,[#]);
- );
- );
- cmdL=[];
- cmdL=concat(cmdL,[
- "ans"+":="+fun,argL,
- "ans",[]
- ]);
- CalcbyF(nm,cmdL,options);
- if(disp==1, // 15.11.24
- println(nm+" is : ");
- println(parse(nm));
- );
- parse(nm);
-);
-
-Mkketcindyjs():=Mkketcindyjs("ketcindylib");
-Mkketcindyjs(Arg):=(
- if(isstring(Arg),
- Mkketcindyjs(Arg,[])
- ,
- Mkketcindyjs("ketcindylib",Arg)
- );
-);
-Mkketcindyjs(libname,options):=( //17.11.18
-//help:Mkketcindyjs();
-//help:Mkketcindyjs(options="Tex=y","Net=y"]);
- regional(texflg,netflg,tmp,tmp1,tmp2);
- texflg="Y";
- netflg="Y";
- forall(options,
- tmp1=Toupper(#);
- if(indexof(tmp1,"TEX")>0,
- tmp=indexof(tmp1,"=");
- texflg=Toupper(substring(tmp1,tmp,tmp+1));
- );
- if(indexof(tmp1,"NET")>0,
- tmp=indexof(tmp1,"=");
- netflg=Toupper(substring(tmp1,tmp,tmp+1));
- );
- );
- if(isexists(Dirwork,Fhead+".html"),
- SCEOUTPUT = openfile(Fhead+".r");
- println(SCEOUTPUT,"Looprange<- function(a,b){");
- println(SCEOUTPUT," if (a<=b) return(a:b)");
- println(SCEOUTPUT," return(c())");
- println(SCEOUTPUT,"}");
- println(SCEOUTPUT,"setwd('"+Dirfile+"/CindyJS')");
- println(SCEOUTPUT,"Dtket=readLines('"+libname+".txt')");
- println(SCEOUTPUT,"setwd('"+Dirwork+"')");
- println(SCEOUTPUT,"Dtjs=readLines('"+Fhead+".html')");
- println(SCEOUTPUT,"Qt=rawToChar(as.raw(34))");
- println(SCEOUTPUT,
- "Dtinit=c(paste('<script id=',Qt,'csinit',Qt,' type=',Qt,'text/x-cindyscript',Qt,'>',sep=''))");
- println(SCEOUTPUT,"Dtinit=c(Dtinit,Dtket,'</script>')");
- println(SCEOUTPUT,"Dthead=c()");
- println(SCEOUTPUT,"for(I in Looprange(1,length(Dtjs))){");
- println(SCEOUTPUT," if(length(grep('<script id=',Dtjs[I],fixed=TRUE))==0){");
- println(SCEOUTPUT," Tmp=Dtjs[I]");
- if(netflg=="N",
- println(SCEOUTPUT,
- " if(length(grep('link rel=',Tmp,fixed=TRUE))>0){");
- println(SCEOUTPUT,
- " Tmp1='file:///"+Dirfile+"/CindyJS/CindyJS.css'");
- println(SCEOUTPUT,
- " Tmp=paste(' <link rel=',Qt,'stylesheet',Qt,' href=',Qt,Tmp1,Qt,'>',sep='')");
- println(SCEOUTPUT,
- " }");
- println(SCEOUTPUT,
- " Tmp1=length(grep('script type=',Tmp,fixed=TRUE))");
- println(SCEOUTPUT,
- " Tmp1=Tmp1*length(grep('Cindy.js',Tmp,fixed=TRUE))");
- println(SCEOUTPUT,
- " if(Tmp1>0){");
- println(SCEOUTPUT,
- " Tmp1='file:///"+Dirfile+"/CindyJS/Cindy.js'");
- println(SCEOUTPUT,
- " Tmp=paste(' <script type=',Qt,'text/javascript',Qt,' src=',Qt,Tmp1,Qt,'>',sep='')");
- println(SCEOUTPUT,
- " Tmp=paste(Tmp,'</script>',sep='')");
- println(SCEOUTPUT,
- " }");
- );
- println(SCEOUTPUT,
- " Dthead=c(Dthead,Tmp)");
- println(SCEOUTPUT,
- " }else{");
- println(SCEOUTPUT,
- " Is=I; break");
- println(SCEOUTPUT,
- " }");
- println(SCEOUTPUT,
- "}");
- println(SCEOUTPUT,"Dt=c()");
- println(SCEOUTPUT,"for(I in Looprange(Is,length(Dtjs))){");
- println(SCEOUTPUT," Dt=c(Dt,Dtjs[I])");
- println(SCEOUTPUT," if(length(grep('</script>',Dtjs[I],fixed=TRUE))>0){");
- println(SCEOUTPUT," if(length(grep('draw',Dt[1],fixed=TRUE))>0){Dtdraw=Dt}");
- println(SCEOUTPUT," if(length(grep('keytyped',Dt[1],fixed=TRUE))>0){Dtkey=Dt}");
- println(SCEOUTPUT," Dt=c()");
- println(SCEOUTPUT," if(length(grep('<script id=',Dtjs[I+1],fixed=TRUE))==0){");
- println(SCEOUTPUT," Ie=I+1;break");
- println(SCEOUTPUT," }");
- println(SCEOUTPUT," }");
- println(SCEOUTPUT,"}");
- println(SCEOUTPUT,"Dt=c(Dthead,Dtdraw,Dtkey,Dtinit)");
- println(SCEOUTPUT,"for(I in Looprange(Ie,length(Dtjs))){");
- println(SCEOUTPUT,
- " if(length(grep('Button',Dtjs[I],fixed=TRUE))>0){");
- println(SCEOUTPUT,
- " if(length(grep(paste(Qt,'Figure',sep=''),Dtjs[I],fixed=TRUE))>0){next}");
- println(SCEOUTPUT,
- " if(length(grep(paste(Qt,'Exekc',sep=''),Dtjs[I],fixed=TRUE))>0){next}");
- println(SCEOUTPUT,
- " if(length(grep(paste(Qt,'Parent',sep=''),Dtjs[I],fixed=TRUE))>0){next}");
- println(SCEOUTPUT,
- " if(length(grep(paste(Qt,'KeTJS',sep=''),Dtjs[I],fixed=TRUE))>0){next}");
- println(SCEOUTPUT,
- " }");
- println(SCEOUTPUT," Dt=c(Dt,Dtjs[I])");
- if(texflg=="Y",
- println(SCEOUTPUT,
- " if(length(grep(paste(Qt,'cs*',Qt,sep=''),Dtjs[I],fixed=TRUE))>0){");
- println(SCEOUTPUT,
- " Dt=c(Dt,paste(' use: [',Qt,'katex',Qt,'],',sep=''))");
- println(SCEOUTPUT,
- " }");
- );
- println(SCEOUTPUT,"}");
- println(SCEOUTPUT,"writeLines(Dt,'"+Fhead+"ketcindy.html',sep='\n')");
- println(SCEOUTPUT,"quit()");
- closefile(SCEOUTPUT);
- kcR(PathR,Fhead+".r",["m"]);
- ,
- drawtext(mouse().xy-[0,1],"First export to CindyJS",size->24,color->[1,0,0]);
- wait(3000);
- );
-);
-
-///////////////// C function //////////////////
-
-Cform(strorg):=(
-//help:Cform(str)
- regional(str,ter,out,hat,ns,ne,nn,jj,flg,
- lv,str1,str2,tmp,tmp1,tmp2);
- ter=["+","-","*","/","(",")"];
- str=replace(strorg,"pi","M_PI");
- hat=Indexall(str,"^");
- out="";
- ns=0;
- forall(hat,nn,
- tmp=substring(str,nn-2,nn-1);
- if(tmp==")",
- tmp1=substring(str,ns,nn-1);
- tmp2=Parlevel(tmp1);
- tmp=tmp2_(length(tmp2))_2;
- lv=select(tmp2,#_2==-tmp);
- tmp=lv_1_1;
- out=out+substring(str,ns,ns+tmp-1);
- str1=substring(str,ns+tmp,nn-2);
- ,
- flg=0;
- tmp2=reverse(ns..(nn-1));
- forall(tmp2,jj,
- if(flg==0,
- tmp1=substring(str,jj-1,jj);
- if(contains(ter,tmp1),
- tmp=jj;
- flg=1;
- );
- );
- );
- tmp1=substring(str,ns,tmp);
- out=out+tmp1;
- str1=substring(str,tmp,nn-1);
- );
- tmp=substring(str,nn,nn+1);
- if(tmp=="(",
- tmp1=substring(str,nn,length(str));
- tmp2=Parlevel(tmp1);
- lv=select(tmp2,#_2==-1);
- tmp=lv_1_1;
- str2=substring(tmp1,1,tmp-1);
- ns=nn+tmp;
- ,
- flg=0;tmp=0;
- forall(nn..(length(str)),jj,
- if(flg==0,
- tmp1=substring(str,jj,jj+1);
- if((length(tmp1)==0)%(contains(ter,tmp1)),
- tmp=jj;
- flg=1;
- );
- );
- );
- str2=substring(str,nn,tmp);
- ns=nn+1;
- );
- out=out+"pow("+str1+","+str2+")";
- );
- str=out+substring(str,ns,length(str));
- str=str+"#";
- ter=apply(0..9,text(#));
- ter=append(ter,".");
- out="";
- tmp=substring(str,0,1);
- if(contains(ter,tmp),
- flg=1;out="";tmp1=tmp;
- ,
- flg=0;out=tmp;tmp1="";
- );
- forall(2..(length(str)),
- tmp=substring(str,#-1,#);
- if(contains(ter,tmp),
- if(flg==1,
- tmp1=tmp1+tmp;
- ,
- tmp1=tmp;
- );
- flg=1;
- ,
- if(flg==1,
- if(indexof(tmp1,".")==0,
- tmp1=tmp1+".0";
- );
- out=out+tmp1+tmp;
- ,
- out=out+tmp;
- );
- tmp1="";flg=0;
- );
- );
- out=substring(out,0,length(out)-1);
- out;
-);
-
-ConvertFdtoC(Fd):=ConvertFdtoC(Fd,["x","y","z"]);
-ConvertFdtoC(Fd,name):=(
-//help:ConvertFd(Fd);
- regional(FdL,FdC,uvar,vvar,tmp,tmp1);
- FdL=Fullformfunc(Fd);
- tmp=indexof(FdL_5,"="); //180303from
- uvar=substring(FdL_5,0,tmp-1);
- tmp=indexof(FdL_6,"=");
- vvar=substring(FdL_6,0,tmp-1);
- tmp1=apply(2..6,Assign(FdL_#,uvar,"u"));
- tmp1=apply(tmp1,Assign(#,vvar,"v"));
- tmp1=concat(tmp1,FdL_(7..8));
- FdC=apply(1..3,name_#+"="+Cform(tmp1_#));
- FdC=concat(FdC,[Cform(tmp1_4),Cform(tmp1_5)]);
- FdC=concat(FdC,[tmp1_6]);
-);
-
-ConstC(setlist):=( //180323
- regional(divL,sizeL,epsL);
- //Mdv=50; Ndv=50;
- //DsizeLL=5000; DsizeL=1500; DsizeM=500; DsizeS=200;
- //Eps=0.00001; Eps1=0.01; Eps2=0.1;
- forall(setlist,
- if((#_1>1)&(#_1<=200),
- divL=#;
- if(length(divL)==0,divL=[50]);
- if(length(divL)==1,divL=append(divL,divL_1));
- ,
- if(#_1>=100,
- sizeL=#;
- if(length(sizeL)==0,sizeL=[5000]);
- if(length(sizeL)==1,sizeL=append(sizeL,1500));
- if(length(sizeL)==2,sizeL=append(sizeL,500));
- if(length(sizeL)==3,sizeL=append(sizeL,200));
- ,
- epsL=#;
- if(length(epsL)==0,epsL=[0.01]);
- if(length(epsL)==1,epsL=append(epsL,0.1));
- epsL=prepend(0.00001,epsL);
- );
- );
- );
- ConstantListC=[divL,sizeL,epsL];
-);
-
-Cheader():=Cheader(FdC,FheadC+"header.h");
-Cheader(fdc,fname):=(
- regional(tmp,tmp1,tmp2,j, dW,dE,dS,dN,dstr,
- DsizeLL,DsizeL,DsizeM,DsizeS,Eps,Eps1,Eps2,Eps3);
- Mdv=50; Ndv=50;
- DsizeLL=15000; DsizeL=1500; DsizeM=500; DsizeS=200;
- Eps=0.00001; Eps1=0.05; Eps2=0.2; Eps3=1;
- SCEOUTPUT = openfile(fname);
- tmp=indexof(fdc_2,"=");
- tmp1=substring(fdc_2,tmp,length(fdc_2));
- tmp1=replace(tmp1,"[","{");
- tmp1=replace(tmp1,"]","}");
- tmp=indexof(fdc_3,"=");
- tmp2=substring(fdc_3,tmp,length(fdc_3));
- tmp2=replace(tmp2,"[","{");
- tmp2=replace(tmp2,"]","}");
- tmp="const double Urng[2]="+tmp1+", Vrng[2]="+tmp2;
- println(SCEOUTPUT,tmp+";");
- tmp="const double XMIN="+Sprintf(XMIN,6);
- tmp=tmp+",XMAX="+Sprintf(XMAX,6);
- println(SCEOUTPUT,tmp+";");
- tmp="const double THETA="+Sprintf(THETA,6);
- tmp=tmp+",PHI="+Sprintf(PHI,6);
- println(SCEOUTPUT,tmp+";");
- tmp=" //THETA:"+Sprintf(THETA*180/pi,2);
- tmp=tmp+", PHI:"+Sprintf(PHI*180/pi,2);
- println(SCEOUTPUT,tmp+";");
- dstr=fdc_4;
- if(indexof(dstr,"w")>0,dW=1,dW=0);
- if(indexof(dstr,"e")>0,dE=1,dE=0);
- if(indexof(dstr,"s")>0,dS=1,dS=0);
- if(indexof(dstr,"n")>0,dN=1,dN=0);
- tmp="const int DrawW="+text(dW)+", DrawE="+text(dE);
- tmp=tmp+", DrawS="+text(dS)+", DrawN="+text(dN);
- println(SCEOUTPUT,tmp+";");
- forall(j=5..(length(fdc)),
- tmp=fdc_#; //17.05.21from
- if(length(tmp)==2,
- if(tmp_1>1, //17.05.24from
- Mdv=tmp_1; Ndv=tmp_2;
- ,
- if(length(tmp_1)>0, Eps1=tmp_1);
- if(length(tmp_1)>0, Eps2=tmp_2);
- ); //17.05.24until
- );
- if(length(tmp)==3,
- if(length(tmp_1)>0, DsizeLL=tmp_1);//17.06.09(3lines)
- if(length(tmp_2)>0, DsizeL=tmp_2);
- if(length(tmp_3)>0, DsizeM=tmp_3);
- );
- if(length(tmp)==4,
- if(min(tmp)<1,
- if(length(tmp_1)>0, Eps=tmp_1);
- if(length(tmp_2)>0, Eps1=tmp_2);
- if(length(tmp_3)>0, Eps2=tmp_3);
- if(length(tmp_4)>0, Eps3=tmp_4);
- ,
- if(length(tmp_1)>0, DsizeLL=tmp_1);
- if(length(tmp_2)>0, DsizeL=tmp_2);
- if(length(tmp_3)>0, DsizeM=tmp_3);
- if(length(tmp_4)>0, DsizeS=tmp_4);
- )
- );//17.05.21until
- );
- tmp1=text(fdc_5_1);
- tmp2=text(fdc_5_2);
- tmp="const int Mdv="+text(Mdv)+", Ndv="+text(Ndv);
- println(SCEOUTPUT,tmp+";");
- tmp="#define DsizeLL "+text(DsizeLL);//17.05.21
- println(SCEOUTPUT,tmp);
- tmp="#define DsizeL "+text(DsizeL);
- println(SCEOUTPUT,tmp);
- tmp="#define DsizeM "+text(DsizeM);
- println(SCEOUTPUT,tmp);
- tmp="#define DsizeS "+text(DsizeS);
- println(SCEOUTPUT,tmp);
- tmp="const double Eps="+format(Eps,7);
- tmp=tmp+", Eps1="+format(Eps1,7);
- tmp=tmp+", Eps2="+format(Eps2,7);
- tmp=tmp+", Eps3= "+format(Eps3,7);
- println(SCEOUTPUT,tmp+";");
- tmp="void surffun(double u, double v, double pt[3]){";
- println(SCEOUTPUT,tmp);
- forall(fdc_1,
- tmp1=replace(#,"x=","pt[0]=");
- tmp1=replace(tmp1,"y=","pt[1]=");
- tmp1=replace(tmp1,"z=","pt[2]=");
- println(SCEOUTPUT," "+tmp1+";");
- );
- println(SCEOUTPUT,"}");
- closefile(SCEOUTPUT);
-);
-
-Cmain():=Cmain(FheadC+".c",MainC);
-Cmain(fname,cmdLorg):=(
-//help:MainC(writesfbd("sfbd");)
-//help:MainC(writeax("ax");)
-//help:MainC(writewire("wire" (,2), [10,10]);)
-//help:MainC(writewire("wire", [[0.5,1],[0,1,2]]]);)
-//help:MainC(writecut("sfcut","x+y+2*z-4");)
-//help:MainC(writesc("sl3d1");)
-//help:MainC(skeleton("sk",[objlist],[pltlist] (,width));)
-//help:MainC(writewire ptincrease (=2) are optional);)
- regional(cmdL, tmp,tmp1,tmp2,tmp3,tmp4,nL, nn,kk,jj, num, en,cmd,
- ax1,ax2,ax3,path, var,varh,file,fileh, flg, cutctr);
- path=Dirwork+"/"; //17.05.29from
- path=replace(path,"\","/");
- cmdL=cmdLorg;// 17.05.26from
- nL=select(1..(length(cmdL)),cmdL_#=="writeax");
- cmd=[];
- if(length(nL)>0,tmp3=cmdL_(1..(nL_1-1)),tmp3=[]);
- forall(1..(length(nL)),
- tmp2=cmdL_(nL_#+1);
- if(length(tmp2)==1,tmp2=append(tmp2,"Surf"));
- tmp=tmp2_1; // 17.06.08(5lines)
- if(substring(tmp,length(tmp)-2,length(tmp))!="3d",
- tmp=tmp+"3d";
- );
- tmp1=parse(tmp);
- tmp="axx="+textformat(tmp1_1,5);
- parse(tmp);
- tmp="axy="+textformat(tmp1_2,5);
- parse(tmp);
- tmp="axz="+textformat(tmp1_3,5);
- parse(tmp);
- tmp3=concat(tmp3,[
- "double "+tmp2_1+"[DsizeL][3];",[], //17.06.07(2lines)
- "double axx[3][3], axy[3][3], axz[3][3];",[],
- "spaceline",["axx"],
- "spaceline",["axy"],
- "spaceline",["axz"],
- tmp2_1+"[0][0]=0;",[],
- "appendd3(2,1,2,axx,"+tmp2_1+");",[],
- "appendd3(2,1,2,axy,"+tmp2_1+");",[],
- "appendd3(2,1,2,axz,"+tmp2_1+");",[],
- "writecrv",[tmp2_1,tmp2_2] //17.06.07
- ]);
- cmd=concat(cmd,tmp3);
- if(#<length(nL),
- tmp3=cmdL_((nL_#+2)..(nL_(#+1)-1));
- ,
- tmp3=cmdL_((nL_#+2)..(length(cmdL)));
- cmdL=concat(cmd,tmp3);
- );
- );
- nL=select(1..(length(cmdL)),cmdL_#=="writesc");
- cmd=[];
- if(length(nL)>0,tmp3=cmdL_(1..(nL_1-1)),tmp3=[]);
- forall(1..(length(nL)),
- tmp2=cmdL_(nL_#+1);
- if(length(tmp2)==1,
- tmp2=[tmp2_1,"Surf"];
- );
- tmp3=concat(tmp3,[
- "double "+tmp2_1+"[DsizeL][3];",[], //17.06.07(2lines)
- "double "+tmp2_1+"h[DsizeL][3];",[],
- "spaceline",[tmp2_1],
- "writecrv",[tmp2_1,tmp2_2] //17.06.07
- ]);
- cmd=concat(cmd,tmp3);
- if(#<length(nL),
- tmp3=cmdL_((nL_#+2)..(nL_(#+1)-1));
- ,
- tmp3=cmdL_((nL_#+2)..(length(cmdL)));
- cmdL=concat(cmd,tmp3);
- );
- );
- nL=select(1..(length(cmdL)),cmdL_#=="writesfbd");
- cmd=[];
- if(length(nL)>0,tmp3=cmdL_(1..(nL_1-1)),tmp3=[]);
- forall(1..(length(nL)),
- tmp2=cmdL_(nL_#+1);
- if(length(tmp2)==1,tmp2=append(tmp2,"Surf"));
- var=Dq+tmp2_1+"3d"+Dq;
- varh=Dq+tmp2_1+"h3d"+Dq;
- file=Dq+path+FheadC+tmp2_1+".txt"+Dq;
- fileh=Dq+path+FheadC+tmp2_1+"h.txt"+Dq;
- tmp="Borderhiddendata";
- tmp3=concat(tmp3,[
- "double "+tmp2_1+"[DsizeL][3];",[], //17.06.09(6lines)
- "sfbdparadata",[tmp2_1],
- "output3h",[var, varh,file,tmp2_1],
- "dataindexd3",[3,tmp2_1,"din"],
- tmp2_2+"[0][0]=0;",[],
- "appendd3",[2,"din[1][0]","din[1][1]",tmp2_1,tmp2_2]
- ]);
- cmd=concat(cmd,tmp3);
- if(#<length(nL),
- tmp3=cmdL_((nL_#+2)..(nL_(#+1)-1));
- ,
- tmp3=cmdL_((nL_#+2)..(length(cmdL)));
- cmdL=concat(cmd,tmp3);
- );
- );
- nL=select(1..(length(cmdL)),cmdL_#=="writecrv");
- cmd=[];
- if(length(nL)>0,tmp3=cmdL_(1..(nL_1-1)),tmp3=[]);
- forall(1..(length(nL)),
- tmp2=cmdL_(nL_#+1);
- if(length(tmp2)==1,tmp2=append(tmp2,"Surf"));
- var=Dq+tmp2_1+"3d"+Dq;
- varh=Dq+tmp2_1+"h3d"+Dq;
- file=Dq+path+FheadC+tmp2_1+".txt"+Dq;
- tmp3=concat(tmp3,[
- "crvsfparadata",[tmp2_1,tmp2_2,1,"Crvdata"],
- tmp2_1+"[0][0]=0;",[], //17.06.09(3lines)
- "appendd3",[0,1,"length3(Crvdata)","Crvdata",tmp2_1],
- "output3h",[var, varh, file,tmp2_1]
- ]);
- cmd=concat(cmd,tmp3);
- if(#<length(nL),
- tmp3=cmdL_((nL_#+2)..(nL_(#+1)-1));
- ,
- tmp3=cmdL_((nL_#+2)..(length(cmdL)));
- cmdL=concat(cmd,tmp3);
- );
- );
- nL=select(1..(length(cmdL)),cmdL_#=="writescrvonsf");
- cmd=[];
- if(length(nL)>0,tmp3=cmdL_(1..(nL_1-1)),tmp3=[]);
- forall(1..(length(nL)),
- tmp2=cmdL_(nL_#+1);
- if(length(tmp2)==1,tmp2=append(tmp2,"Surf"));
- var=Dq+tmp2_1+"3d"+Dq;
- varh=Dq+tmp2_1+"h3d"+Dq; //17.06.09(8lines)
- file=Dq+path+FheadC+tmp2_1+".txt"+Dq;
- tmp3=concat(tmp3,[
- "double "+tmp2_1+"[DsizeL][3];",[],
- " crv3onsfparadata",[tmp2_1,tmp2_2,1,"Crvdata"],
- tmp2_1+"[0][0]=0;",[],
- "appendd3",[0,1,"length3(Crvdata)","Crvdata",tmp2_1],
- "output3h",[var,varh, file ,tmp2_1]
- ]);
- cmd=concat(cmd,tmp3);
- if(#<length(nL),
- tmp3=cmdL_((nL_#+2)..(nL_(#+1)-1));
- ,
- tmp3=cmdL_((nL_#+2)..(length(cmdL)));
- cmdL=concat(cmd,tmp3);
- );
- );
- nL=select(1..(length(cmdL)),cmdL_#=="writecut");
- cmd=[];
- if(length(nL)>0,tmp3=cmdL_(1..(nL_1-1)),tmp3=[]);
- cutctr=0;
- forall(1..(length(nL)),
- cutctr=#;
- tmp2=cmdL_(nL_#+1);
- if(length(tmp2)==2,
- tmp2=[tmp2_1,"Surf",tmp2_2];
- );
- var=Dq+tmp2_1+"3d"+Dq;
- varh=Dq+tmp2_1+"h3d"+Dq; //17.06.09(10lines)
- file=Dq+path+FheadC+tmp2_1+".txt"+Dq;
- tmp3=concat(tmp3,[
- "cutfun",[tmp2_3],
- "double "+tmp2_1+"[DsizeL][3];",[],
- "sfcutdata",[text(cutctr),"out"], //17.06.02
- "crv3onsfparadata",["out",tmp2_2,"Crvdata"],
- tmp2_1+"[0][0]=0;",[],
- "appendd3",[0,1,"length3(Crvdata)","Crvdata",tmp2_1],
- "output3h",[var, varh, file, tmp2_1]
- ]);
- cmd=concat(cmd,tmp3);
- if(#<length(nL),
- tmp3=cmdL_((nL_#+2)..(nL_(#+1)-1));
- ,
- tmp3=cmdL_((nL_#+2)..(length(cmdL)));
- cmdL=concat(cmd,tmp3);
- );
- );
- nL=select(1..(length(cmdL)),cmdL_#=="writewire");
- cmd=[];
- if(length(nL)>0,tmp3=cmdL_(1..(nL_1-1)),tmp3=[]);
- forall(1..(length(nL)),
- tmp2=cmdL_(nL_#+1);
- if(!isstring(tmp2_2),
- tmp2=[tmp2_1,"Surf",tmp2_2,tmp2_3];
- );
- var=Dq+tmp2_1+"3d"+Dq;
- varh=Dq+tmp2_1+"h3d"+Dq; //17.06.09
- file=Dq+path+FheadC+tmp2_1+".txt"+Dq;
- tmp4=tmp2_(length(tmp2)); num=2;
- if(!islist(tmp4),
- num=tmp4; tmp4=tmp2_(length(tmp2)-1);
- );
- if(!islist(tmp4_1),
- tmp3=concat(tmp3,[
- "double udv[2]={-1,"+text(tmp4_1)+"};",[]
- ]);
- ,
- len=length(tmp4_1);
- tmp="double udv["+text(len+1)+"]={"+text(len)+",";
- forall(tmp4_1,
- tmp=tmp+format(#,5)+",";
- );
- tmp=substring(tmp,0,length(tmp)-1)+"};";
- tmp3=concat(tmp3,[tmp,[]]);
- );
- if(!islist(tmp4_2),
- tmp3=concat(tmp3,[
- "double vdv[2]={-1,"+text(tmp4_2)+"};",[]
- ]);
- ,
- len=length(tmp4_2);
- tmp="double vdv["+text(len+1)+"]={"+text(len)+",";
- forall(tmp4_2,
- tmp=tmp+format(#,5)+",";
- );
- tmp=substring(tmp,0,length(tmp)-1)+"};";
- tmp3=concat(tmp3,[tmp,[]]);
- );
- tmp3=concat(tmp3,[
- "double "+tmp2_1+"[DsizeLL][3];",[], //17.06.09(5lines)
- "wireparadata",["Surf", "udv","vdv", num, "Wiredata"],
- tmp2_1+"[0][0]=0;",[],
- "appendd3",[0,1,"length3(Wiredata)","Wiredata",tmp2_1],
- "output3h",[var, varh, file, tmp2_1]
- ]);
- cmd=concat(cmd,tmp3);
- if(#<length(nL),
- tmp3=cmdL_((nL_#+2)..(tmp_(#+1)-1));
- ,
- tmp3=cmdL_((nL_#+2)..(length(cmdL)));
- cmdL=concat(cmd,tmp3);
- );
- );// 17.05.29until
- nL=select(1..(length(cmdL)),cmdL_#=="skeleton");// 17.06.05from
- cmd=[];
- if(length(nL)>0,
- tmp3=cmdL_(1..(nL_1-1));
- tmp3=concat(tmp3,["double sk[DsizeLL][3];",[]]);//17.06.13
- ,
- tmp3=[];
- );
- forall(1..(length(nL)),nn,
- tmp2=cmdL_(nL_nn+1);
- var=Dq+tmp2_1+"3d"+Dq;
- file=Dq+path+FheadC+tmp2_1+".txt"+Dq;
- tmp3=concat(tmp3,[ //17.06.08from
- "data[0][0]=0;",[]
- ]);
- forall(tmp2_2,
- if(substring(#,length(#)-1,length(#))!="h",
- tmp1=#;
- tmp=[0,"din[1][0]","din[1][1]",tmp1,"data"];
- ,
- tmp1=substring(#,0,length(#)-1);
- tmp=[0,"din[2][0]","din[2][1]",tmp1,"data"];
- );
- tmp3=concat(tmp3,[
- "dataindexd3",[3,tmp1,"din"],
- "appendd3",tmp
- ]);
- );
- forall(1..(length(tmp2_3)),
- if(substring(tmp2_3_#,length(tmp2_3_#)-1,length(tmp2_3_#))!="h",
- tmp1=tmp2_3_#;
- tmp=[0,"din[1][0]","din[1][1]",tmp1,"data"];
- ,
- tmp1=substring(tmp2_3_#,0,length(tmp2_3_#)-1);
- tmp=[0,"din[2][0]","din[2][1]",tmp1,"data"];
- );
- tmp3=concat(tmp3,[
- "push3",["Inf",3,0,"data"],
- "dataindexd3",[3,tmp1,"din"],
- "appendd3",tmp
- ]);
- );
- if(length(tmp2)<=3,tmp=1,tmp=tmp2_4);
- tmp3=concat(tmp3,[
- "skeletondata3",["data", tmp, "Eps1","Eps2","sk"],//17.06.13
- "output3",[var, file, 2, "sk"]
- ]);
- cmd=concat(cmd,tmp3);
- if(nn<length(nL),
- tmp3=cmdL_((nL_nn+2)..(nL_(nn+1)-1));
- ,
- tmp3=cmdL_((nL_nn+2)..(length(cmdL)));
- cmdL=concat(cmd,tmp3);
- );//17.06.08until
- );// 17.06.05until
- path=DirlibC+"/";
- path=replace(path,"\","/");
- cmd=[
- "#include <stdio.h>", "#include <math.h>",
- "#include "+Dq+FheadC+"header.h"+Dq,
- "#include "+Dq+path+"ketcommon.h"+Dq,
- "#include "+Dq+path+"surflibhead.h"+Dq,
- "#include "+Dq+path+"surflib.h"+Dq,
- "int main(void){",
- " double out[DsizeL][3], data[DsizeLL][3];", //17.06.10
- " int i, j, nall, din[DsizeS][2];" //17.06.09
- ];
-// tmp=select(cmdL,#=="cutfun");
-// if(length(tmp)==0,
- if(cutctr==0, //17.06.02
- cmdL=prepend(["1"],cmdL);
- cmdL=prepend("cutfun",cmdL);
- );// 17.05.26until
- cutctr=0;
- forall(1..(floor(length(cmdL))/2),nn,
- tmp1=cmdL_(2*nn-1); tmp2=cmdL_(2*nn);
- flg=0; // 17.05.26from
- if(tmp1=="cutfun",
- cutctr=cutctr+1;
- tmp=select(1..(length(cmd)), indexof(cmd_#,"main")>0);
- tmp3=cmd_((tmp_1)..(length(cmd)));
- cmd=cmd_(1..(tmp_1-1));
- cmd=append(cmd,"double cutfun"+text(cutctr)+"(double u, double v){");
- cmd=append(cmd," double p[3],val;");
- cmd=append(cmd," surffun(u,v,p);");
- tmp=" val="+assign(tmp2_1,["x","p[0]","y","p[1]","z","p[2]"])+";";
- cmd=concat(cmd, [tmp," return val;", "}"]);
- cmd=concat(cmd, tmp3);
- flg=1;
- );
- if(tmp1=="xyzax3data",
- tmp=" "+tmp1+"(";
- tmp=tmp+textformat(tmp2_1_1_1_1,5)+",";
- tmp=tmp+textformat(tmp2_1_1_2_1,5)+",";
- tmp=tmp+textformat(tmp2_1_2_1_2,5)+",";
- tmp=tmp+textformat(tmp2_1_2_2_2,5)+",";
- tmp=tmp+textformat(tmp2_1_3_1_3,5)+",";
- tmp=tmp+textformat(tmp2_1_3_2_3,5)+",";
- tmp=tmp+tmp2_2+");";
- cmd=append(cmd,tmp);
- flg=1;
- );
- if(tmp1=="spaceline",
- if(!isstring(tmp2_1),
- println(tmp2_1+" should be assgined as a string");
- ,
- tmp3=parse(tmp2_1);
- tmp=text(length(tmp3)+1);
-// cmd=append(cmd, " double "+tmp2_1+"["+tmp+"][3];");
- tmp=text(length(tmp3));
- cmd=append(cmd, " "+tmp2_1+"[0][0]="+tmp+";");
- forall(1..(length(tmp3)),
- tmp=" "+tmp2_1+"["+text(#)+"][0]="+textformat(tmp3_#_1,5)+",";
- tmp=tmp+tmp2_1+"["+text(#)+"][1]="+textformat(tmp3_#_2,5)+",";
- tmp=tmp+tmp2_1+"["+text(#)+"][2]="+textformat(tmp3_#_3,5)+";";
- cmd=append(cmd,tmp);
- );
- );
- flg=1;
- );
- if(flg==0,
- tmp=" "+tmp1;
- if(length(tmp2)>0,
- tmp=tmp+"(";
- forall(1..length(tmp2),kk,
- if(isstring(tmp2_kk),
- if((kk==1)&(substring(tmp1,0,5)=="write"),
- file=path+FheadC+tmp2_kk+".txt";
- fileh=path+FheadC+tmp2_kk+"h.txt";
- tmp=tmp+Dq+tmp2_kk+Dq+","+Dq+file+Dq+","+Dq+fileh+Dq;
- ,
- tmp=tmp+tmp2_kk;
- );
- ,
- if(!islist(tmp2_kk),
- tmp=tmp+textformat(tmp2_kk,5);
- ,
- );
- );
- if(kk<length(tmp2),
- tmp=tmp+",";
- ,
- tmp=tmp+");";
- );
- );
- );
- cmd=append(cmd, tmp);// 17.05.26until
- );
- );
- tmp=select(1..(length(cmd)), indexof(cmd_#,"main")>0);//17.06.02from
- tmp3=cmd_((tmp_1)..(length(cmd)));
- cmd=cmd_(1..(tmp_1-1));
- cmd=append(cmd,"double cutfun(int ch, double u, double v){");
- cmd=append(cmd," double val;");
- forall(1..cutctr,
- tmp=text(#);
- cmd=append(cmd," if(ch=="+tmp+"){val=cutfun"+tmp+"(u,v);}");
- );
- cmd=concat(cmd,[" return val;", "}"]);
- cmd=concat(cmd, tmp3);//17.06.02until
- cmd=concat(cmd, [" return 0;", "}"]);
- SCEOUTPUT = openfile(fname);
- forall(cmd,
- println(SCEOUTPUT,#);
- );
- closefile(SCEOUTPUT);
- tmp=fileslist(Dirwork); // 17.05.20from
- tmp=tokenize(tmp,",");
- tmp=select(tmp,indexof(#,".txt")>0);
- tmp=select(tmp,indexof(#,FheadC)>0);
- forall(tmp,
- SCEOUTPUT = openfile(#);
- println(SCEOUTPUT,"");
- closefile(SCEOUTPUT);
- ); // 17.05.20until
-);
-
-kcC():=kcC(FheadC);
-kcC(cname):=(
- regional(tmp, tmp1,flg,rfile);
- rfile="resultC"+cname+".txt";
- if(iswindows(),
- SCEOUTPUT = openfile("kc.bat");
- println(SCEOUTPUT,"set path="+Dirwork);
- tmp=Indexall(PathC,"\");
- if(length(tmp)==0, tmp=ndexall(PathC,"/"));
- tmp1=substring(PathC,0,tmp_(length(tmp))-1);
- println(SCEOUTPUT,"cd "+tmp1);
- tmp=PathC+" %path%\"+cname+".c";
- tmp=tmp+" -o %path%\main.exe";
- println(SCEOUTPUT,tmp);
- println(SCEOUTPUT,"%path%\main.exe");
- println(SCEOUTPUT,"echo //// > %path%\"+rfile);
- println(SCEOUTPUT,"exit");
- closefile(SCEOUTPUT);
- tmp=cname+".txt";
- println(kc(Dirwork+Batparent,Mackc+Dirlib,tmp));
- ,
- SCEOUTPUT = openfile("kc.sh");
- println(SCEOUTPUT,"#!/bin/sh");
- println(SCEOUTPUT,"cd "+Dq+Dirwork+Dq);
- tmp=PathC+" "+cname+".c -o main.out";
- println(SCEOUTPUT,tmp);
- println(SCEOUTPUT,"./main.out");
- println(SCEOUTPUT,"echo //// >"+rfile);
- println(SCEOUTPUT,"exit 0");
- closefile(SCEOUTPUT);
- tmp=cname+".txt";
- println(kc(Dirwork+Shellparent,Mackc+Dirlib,tmp));
- );
- SCEOUTPUT=openfile(wfile);
- println(SCEOUTPUT,"");
- closefile(SCEOUTPUT);
- flg=0;
- repeat(floor(10*1000/WaitUnit),
- if(flg==0,
- tmp1=load(wfile);
- if(substring(tmp1,0,4)=="////",
- flg=1;
- );
- wait(WaitUnit);
- );
- );
- if(flg==0,
- println("Ckc not completed");
- ,
- println("Ckc succeeded");
- );
-);
-
-ReadCdataold(var, fname):=ReadCdata(var, fname,[]);
-ReadCdata(var, fname,options):=(
- regional(file,dt,name,str,tmp,tmp1,opstr,gout, out3,out2);
- if(indexof(fname,".")==0,
- file=fname+".txt";
- name=fname;
- ,
- file=fname;
- tmp=indexof(fname,".");
- name=substring(fname,0,tmp-1);
- );
- tmp=Divoptions(options);
- opstr=tmp_8;
- gout=ReadOutData(file);
- GLIST=Append(GLIST,"Tmpstr=ReadOutData("+Dq+file+Dq+")");
- if(substring(var,length(var)-1,length(var))!="h",
- if(length(parse(gout_1))>0,
- Projpara(var+"3d",options);
- );
- ,
- if(length(parse(gout_2))>0,
- Projpara(var+"3d",options);
- );
- );//17.06.16until
-);
-
-ReadCdata(fnameorg):=(
- regional(tmp,tmp1,fname,data,out);
- fname=fnameorg;
- if(indexof(fname,".")==0, fname=fname+".txt");
- data=load(fname);
- data=tokenize(data," -99999");
- out=[];
- tmp1=[];
- forall(1..(length(data)-1),
- tmp=replace(data_#," ",",");
- if(indexof(tmp,"99999.")==0,
- tmp="["+replace(data_#," ",",")+"]";
- tmp=parse(tmp);
- tmp1=append(tmp1,tmp);
- ,
- out=append(out,tmp1);
- tmp1=[];
- );
- );
- if(length(tmp1)>0,out=append(out,tmp1));
- out;
-);
-
-WriteCdata(fnameorg,dataorg):=(
-//help:WriteCdata(filename, 3ddata);
- regional(tmp,fname,data,kk,nn,pt);
- data=dataorg;
- if(isstring(data),data=parse(data));
- if(MeasureDepth(data)==1,data=[data]);
- fname=fnameorg;
- if(indexof(fname,".")==0, fname=fname+".txt");
- SCEOUTPUT=openfile(fname);
- forall(1..(length(data)),kk,
- forall(1..(length(data_kk)),nn,
- pt=apply(1..3,Sprintf(data_kk_nn_#,5));
- tmp=pt_1+" "+pt_2+" "+pt_3+" -99999";
- println(SCEOUTPUT,tmp);
- );
- if(kk<length(data),
- println(SCEOUTPUT,"99999.00000 2.00000 0.00000 -99999");
- );
- );
- closefile(SCEOUTPUT);
-);
-
-DisplayC():=DisplayC(DispC);
-DisplayC(name,options):=DisplayC([name,options]);
-DisplayC(dispc):=(
-//help:DisplayC("out",["Color=[1,0,0]");
-//help:DispC(options=["dr", "Color=[0,0,0]"])
- regional(tmp,tmp1,cflg,var, file,options,eqL,opcindy,color);
- forall(1..(floor(length(dispc)/2)), //17.05.18
- var=dispc_(2*#-1); // 17.05.24
- if(substring(var,length(var)-1,length(var))!="h",//17.06.09(5lines)
- file=FheadC+var+".txt";
- ,
- file=FheadC+substring(var,0,length(var)-1)+".txt";
- );
- options=dispc_(2*#);
- cflg=0;
- tmp=Divoptions(options);//17.06.18from
- eqL=tmp_5;
- opcindy=tmp_9;
- forall(eqL,
- if(Toupper(substring(#,0,2))=="CO",
- tmp=indexof(#,"=");
- color=substring(#,tmp,length(#));
- if(substring(color,0,1)=="[",
- color=parse(color);
- if(length(color)==3,
- tmp1="color->"+text(color);
- ,
- tmp=Colorcode("rgb","cmyk",color);
- tmp1="color->"+text(tmp);
- );
- options=append(options,tmp1);
- );
- options=remove(options,[#]);
- cflg=1;
- );
- );
- if(cflg==1,
- Texcom("{");
- Setcolor(color);
- );
- ReadCdata(var,file,options);// 17.05.24
- if(cflg==1,
- Texcom("}");
- );
- );
-);
-
-Cheadsurf():=(
- regional(cmd,jj,divL,sizeL,epsL,nf,var1,var2,tmp,tmp1,tmp2);
- divL=ConstantListC_1;
- sizeL=ConstantListC_2;
- epsL=ConstantListC_3;
- cmd=[];
- tmp="const double XMIN="+Sprintf(XMIN,6);
- tmp=tmp+",XMAX="+Sprintf(XMAX,6)+";";
- cmd=append(cmd,tmp);
- tmp="const double THETA="+Sprintf(THETA,6);
- tmp=tmp+",PHI="+Sprintf(PHI,6)+";";
- cmd=append(cmd,tmp);
- tmp=" //THETA:"+Sprintf(THETA*180/pi,2);
- tmp=tmp+", PHI:"+Sprintf(PHI*180/pi,2)+";";
- cmd=append(cmd,tmp);
- tmp1=apply(divL,text(#));
- tmp="const int Mdv="+tmp1_1+",Ndv="+tmp1_2+";";
- cmd=append(cmd,tmp);
- tmp1=apply(sizeL,text(#));
- tmp="#define DsizeLL "+tmp1_1;
- cmd=append(cmd,tmp);
- tmp="#define DsizeL "+tmp1_2;
- cmd=append(cmd,tmp);
- tmp="#define DsizeM "+tmp1_3;
- cmd=append(cmd,tmp);
- tmp="#define DsizeS "+tmp1_4;
- cmd=append(cmd,tmp);
- tmp1=apply(epsL,format(#,7));
- tmp="const double Eps="+tmp1_1;
- tmp=tmp+", Eps1="+tmp1_2;
- tmp=tmp+", Eps2="+tmp1_3+";";
- cmd=append(cmd,tmp);
- tmp="const char dirname[]="+Dq+Dirwork+"/"+Dq+";";
- cmd=append(cmd,tmp);
- cmd=append(cmd,"double Urng[2],Vrng[2];");
- cmd=append(cmd, "int DrawE,DrawW,DrawS,DrawN;");
- cmd=append(cmd,"void rangeUV(short ch){");
- cmd=append(cmd," switch(ch){");
- forall(1..(length(FuncListC)),nf,
- tmp2=" case "+text(nf)+" : ";
- forall(4..5,
- tmp1=FuncListC_nf_#; tmp=indexof(tmp1,"=");
- tmp1=substring(tmp1,tmp+1,length(tmp1)-1);
- tmp1=tokenize(tmp1,",");
- if(#==4,tmp="Urng",tmp="Vrng");
- tmp2=tmp2+tmp+"[0]="+tmp1_1+";"+tmp+"[1]="+tmp1_2+";";
- );
- cmd=append(cmd,tmp2);
- );
- cmd=append(cmd," }");
- cmd=append(cmd, "}");
- cmd=append(cmd,"void boundary(short ch){");
- cmd=append(cmd," switch(ch){");
- forall(1..(length(FuncListC)),nf,
- tmp2=" case "+text(nf)+" : ";
- tmp=FuncListC_nf_6;
- tmp2=tmp2+"DrawE=";
- if(indexof(tmp,"e")>0,tmp2=tmp2+"1;",tmp2=tmp2+"0;");
- tmp2=tmp2+"DrawW=";
- if(indexof(tmp,"w")>0,tmp2=tmp2+"1;",tmp2=tmp2+"0;");
- tmp2=tmp2+"DrawS=";
- if(indexof(tmp,"s")>0,tmp2=tmp2+"1;",tmp2=tmp2+"0;");
- tmp2=tmp2+"DrawN=";
- if(indexof(tmp,"n")>0,tmp2=tmp2+"1;",tmp2=tmp2+"0;");
- cmd=append(cmd,tmp2);
- );
- cmd=append(cmd," }");
- cmd=append(cmd,"}");
- tmp="void surffun(short ch,double u, double v, double p[3]){";
- cmd=append(cmd,tmp);
- cmd=append(cmd," switch(ch){");
- forall(1..(length(FuncListC)),nf,
- tmp2=" case "+text(nf)+" : ";
- forall(1..3,
- tmp1=FuncListC_nf_#; tmp=indexof(tmp1,"=");
- tmp1=substring(tmp1,tmp,length(tmp1));
- tmp2=tmp2+"p["+text(#-1)+"]="+tmp1+";";
- );
- cmd=append(cmd,tmp2);
- );
- cmd=append(cmd," }");
- cmd=append(cmd,"}");
- cmd;
-);
-
-Ctopsurf(name):=Ctopsurf(name,[]);
-Ctopsurf(name,cmdadd):=(
- regional(path,cmd);
- path=DirlibC+"/";
- path=replace(path,"\","/");
- cmd=[
- "#include <stdio.h>", "#include <math.h>",
- "#include "+Dqq(Fhead+name+"header.h"),
- "#include "+Dqq(path+"ketcommonhead.h"),
- "#include "+Dqq(path+"ketcommon.h"),
- "#include "+Dq+path+"surflibhead.h"+Dq,
- "#include "+Dq+path+"surflib.h"+Dq,
- "double cutfun1(short ch,double u, double v){",
- " double p[3],val;",
- " surffun(ch,u,v,p);",
- " val=1;",
- " return val;",
- "}",
- "double cutfun(short ch, int chcut, double u, double v){",
- " double p[3],val;",
- " switch(chcut){",
- " case 1: val=cutfun1(ch,u,v);",
- " }",
- " return val;",
- "}",
- "int main(void){",
- " double out[DsizeL][3], data[DsizeLL][3];",
- " int i, j, nall, din[DsizeS][2];",
- " char dirfname[256] = {'\0'};"
- ];
- cmd;
-);
-
-WritetoC(nm,header,main):=(
- regional(hfile,mfile,top,body,tmp,tmp1,tmp2);
- hfile=Fhead+nm+"header.h";
- mfile=Fhead+nm+".c";
- top=main_1;
- body=main_2;
- SCEOUTPUT=openfile(hfile);
- forall(header,
- println(SCEOUTPUT,#+"/**/");
- );
- closefile(SCEOUTPUT);
- SCEOUTPUT=openfile(mfile);
- forall(top,
- println(SCEOUTPUT,#);
- );
- println(SCEOUTPUT,"/**/");
- forall(body,
- println(SCEOUTPUT,#+"/**/");
- );
- println(SCEOUTPUT," return 0;");
- println(SCEOUTPUT,"}");
- closefile(SCEOUTPUT);
-);
-
-CalcbyC(name,cmd):=CalcbyC(name,PathC,cmd,[]);
-CalcbyC(name,Arg1,Arg2):=(
- if(isstring(Arg1),
- CalcbyC(name,Arg1,Arg2,[]);
- ,
- CalcbyC(name,PathC,Arg1,Arg2);
- );
-);
-CalcbyC(name,path,cmd,optionorg):=(
- regional(options,eqL,strL,waiting,wflg,header,top,body,
- wfile,hfile,mfile,flg,tmp,tmp1,tmp2,tmp3);
- header=cmd_1;
- top=cmd_2;
- body=cmd_3;
- options=optionorg;
- tmp=divoptions(options);
-// eqL=tmp_5;
- strL=tmp_7;
- waiting=30;
- wfile="resultC"+Fhead+name+".txt";
- hfile=Fhead+name+"header.h";
- println(Dirwork);
- println(hfile);
- mfile=Fhead+name+".c";
- wflg=0;
- forall(strL,
- tmp=Toupper(substring(#,0,1));
- if(tmp=="M",
- wflg=1;
- options=remove(options,[#]);
- );
- if(tmp=="R",
- wflg=-1;
- options=remove(options,[#]);
- );
- );
- if(wflg==0,
- tmp1=header;
- if(!isexists(Dirwork,hfile),wflg=1);
- if(wflg==0,
- tmp2=load(hfile);
- tmp2=tokenize(tmp2,"/**/");
- tmp2=tmp2_(1..(length(tmp2)-1));
- if(length(tmp1)!=length(tmp2),wflg=1);
- );
- if(wflg==0,
- forall(1..(length(tmp1)),
- if(tmp1_#!=tmp2_#,wflg=1);
- );
- );
- if(wflg==0,
- tmp1=body;
- if(!isexists(Dirwork+"/",mfile),wflg=1);
- if(wflg==0,
- tmp2=load(mfile);
- tmp2=tokenize(tmp2,"/**/");
- tmp2=tmp2_(2..(length(tmp2)-1));
- if(length(tmp1)!=length(tmp2),wflg=1);
- );
- if(wflg==0,
- forall(1..(length(tmp1)),
- if(tmp1_#!=tmp2_#,wflg=1);
- );
- );
- );
- if(wflg==0,wflg=-1);
- );
- if(wflg==1,
- WritetoC(name,header,[top,body]);
- SCEOUTPUT=openfile(wfile);
- println(SCEOUTPUT,"");
- closefile(SCEOUTPUT);
- kcC(Fhead+name);
- );
- flg=0;
- tmp1=floor(waiting*1000/WaitUnit);
- repeat(tmp1,
- if(flg==0,
- tmp=load(wfile);
- if(length(tmp)>=4,
- tmp2=substring(tmp,length(tmp)-4,length(tmp));
- if(tmp2=="////",
- tmp=substring(tmp,0,length(tmp)-4);
- flg=1;
- tmp2=#*WaitUnit/1000;
- );
- ,
- if(wflg==-1,
- flg=-1;
- ,
- wait(WaitUnit);
- );
- );
- );
- if(flg<=0,
- ErrFlag=1;
- if(flg==-1,
- println(wfile+" does not exist");
- ,
- if(flg==0,
- tmp="("+text(waiting)+" s )";
- println(wfile+" not generated "+tmp);
- );
- );
- );
- );
-);
-
-SfbdparadataC(nm,fd):=
- SfbdparadataC(nm,fd,[],["nodisp"]);
-SfbdparadataC(nm,fd,options):=
- SfbdparadataC(nm,fd,options,["nodisp"]);
-SfbdparadataC(nm,fdorg,optionorg,optionsh):=(
-//help:SfbdparadataC("1",Fd);
-//help:SfbdparadataC(options2=["r/m"]);
- regional(funnm,fd,options,name2,name3,name2h,name3h,waiting,
- eqL,reL,strL,fname,tmp,tmp1,tmp2,flg,wflg);
- if(ChNumber==0,ChNumber=Ch);
- fd=ConvertFdtoC(fdorg);
- FuncListC=append(FuncListC,fd);
- funnm=text(length(FuncListC));
- name2="sfbd2d"+nm;
- name3="sfbd3d"+nm;
- name2h="sfbdh2d"+nm;
- name3h="sfbdh3d"+nm;
- fname=Fhead+"sfbd"+nm+".txt";
- options=optionorg;
- tmp=Divoptions(options);
- eqL=tmp_5;
- reL=tmp_6;
- strL=tmp_7;
- waiting=120;
- wflg=0;
- forall(strL,
- tmp=Toupper(substring(#,0,1));
- if(tmp=="M",
- wflg=1;
- options=remove(options,[#]);
- );
- if(tmp=="R",
- wflg=-1;
- options=remove(options,[#]);
- );
- );
- options=remove(options,eqL);
- options=remove(options,reL);
- options=select(options,length(#)>0);
- cmdL=[
- " double sfbd"+funnm+"[DsizeL][3];",
- " char fname"+funnm+"[]="+Dqq(fname)+";",
- " rangeUV("+funnm+");",
- " boundary("+funnm+");",
- " sfbdparadata("+funnm+",sfbd"+funnm+");",
- " sprintf(dirfname,"+Dqq("%s%s")+",dirname,fname"+funnm+");",
- " output3h("+Dqq("sfbd3d"+nm)+","+Dqq("sfbdh3d"+nm)+",dirfname,sfbd"+funnm+");";
- ];
- if(wflg==1,tmp1=append(options,"m"));
- if(wflg==-1,tmp1=append(options,"r"));
- if(ErrFlag==0,
- tmp="sfbd"+nm;
- CalcbyC(tmp,[Cheadsurf(),Ctopsurf(tmp),cmdL],tmp1);
- );
- if(ErrFlag==1,
- err("Sfbdparadata not completed");
- ,
- ReadOutData(fname);
- GLIST=append(GLIST,"ReadOutData("+Dqq(fname)+")");
- if(islist(parse(name3)),
- tmp1=name2+"=Projpara("+Dqq(name3)+",[";
- tmp2="";
- if(length(options)>0,
- forall(options,
- tmp2=tmp2+Dqq(#)+",";
- );
- tmp2=substring(tmp2,0,length(tmp2)-1);
- );
- tmp1=tmp1+tmp2+"]);";
- parse(tmp1);
- if(length(optionsh)==0,tmp2=["nodisp"],tmp2=optionsh);
- tmp1=name2h+"=Projpara("+Dqq(name3h)+",[";
- forall(tmp2,
- tmp1=tmp1+Dqq(#)+",";
- );
- tmp1=substring(tmp1,0,length(tmp1)-1)+"]);";
- parse(tmp1);
- ,
- ErrFlag=1;
- );
- );
-);
-
-CrvsfparadataC(nm,fk,fbdy,fd):=
- CrvsfparadataC(nm,fk,fbdy,fd,[],["nodisp"]);
-CrvsfparadataC(nm,fk,fbdy,fd,options):=
- SfbdparadataC(nm,fk,fbdy,fd,options,["nodisp"]);
-CrvsfparadataC(nm,Fk,Fbdy,fdorg,optionorg,optionsh):=(
-//help:CrvsfparadataC("1","ax3d","sfbd3d1",Fd);
-//help:CrvsfparadataC(options2=["r/m"]);
-//help:CrvsfparadataC(optionsh=["nodisp"]);
- regional(funnm,fd,options,name2,name3,name2h,name3h,waiting,
- eqL,reL,strL,fname,tmp,tmp1,tmp2,flg,wflg,flg,ii,jj,eps);
- eps=10^(-5);
- fd=ConvertFdtoC(fdorg);
- tmp=select(1..(length(FuncListC)),FuncListC_#==fd);
- funcnum=tmp_1;
- name2="crvsf2d"+nm;
- name3="crvsf3d"+nm;
- name2h="crvsfh2d"+nm;
- name3h="crvsfh3d"+nm;
- fname=Fhead+"crvsf"+nm+".txt";
- options=optionorg;
- tmp=Divoptions(options);
- eqL=tmp_5;
- reL=tmp_6;
- strL=tmp_7;
- waiting=120;
- wflg=0;
- forall(strL,
- tmp=Toupper(substring(#,0,1));
- if(tmp=="M",
- wflg=1;
- options=remove(options,[#]);
- );
- if(tmp=="R",
- wflg=-1;
- options=remove(options,[#]);
- );
- );
- options=remove(options,eqL);
- options=remove(options,reL);
- options=select(options,length(#)>0);
-// tmp1=[Dqq(fname),Dqq(name3),name3,Dqq(name2),name2];
-// tmp1=concat(tmp1,[Dqq(name3h),name3h,Dqq(name2h),name2h]);
- tmp2=parse(Fbdy);
- flg=0;
- tmp=Fhead+Fbdy+".dat";
- if(!isexists(Dirwork,tmp),flg=1);
- if(flg==0,
- tmp1=ReadCdata(tmp);
- if(length(tmp1)!=length(tmp2),flg=1);
- if(flg==0,
- forall(1..(length(tmp1)),ii,
- if(length(tmp1_ii)!=length(tmp2_ii),flg=1);
- forall(1..(length(tmp1_ii)),jj,
- if(flg==0,
- if(Norm(tmp1_ii_jj-tmp2_ii_jj)>eps,flg=1);
- );
- );
- );
- );
- );
- if(flg==1,WriteCdata(tmp,Fbdy));
- tmp2=parse(Fk);
- flg=0;
- tmp=Fhead+Fk+".dat";
- if(!isexists(Dirwork,tmp),flg=1);
- if(flg==0,
- tmp1=ReadCdata(tmp);
- if(length(tmp1)!=length(tmp2),flg=1);
- if(flg==0,
- forall(1..(length(tmp1)),ii,
- if(length(tmp1_ii)!=length(tmp2_ii),flg=1);
- forall(1..(length(tmp1_ii)),jj,
- if(flg==0,
- if(Norm(tmp1_ii_jj-tmp2_ii_jj)>eps,flg=1);
- );
- );
- );
- );
- );
- if(flg==1,WriteCdata(tmp,Fk));
- cmdL=[
- " double fbdy[DsizeL][3],fk[DsizeL][3];",
- " char fname"+nm+"[]="+Dqq(fname)+";",
- " rangeUV("+funnm+");",
- " boundary("+funnm+");",
- " readdata3("+Dqq(Fhead+Fbdy+".dat")+",fbdy);",
- " readdata3("+Dqq(Fhead+Fk+".dat")+",fk);",
- " crvsfparadata(fk,fbdy, 0, out);",
- " sprintf(dirfname,"+Dqq("%s%s")+",dirname,fname"+nm+");",
- " output3h("+Dqq("crvsf3d"+nm)+","+Dqq("crvsfh3d"+nm)+",dirfname,out);"
- ];
- if(wflg==1,tmp1=append(options,"m"));
- if(wflg==-1,tmp1=append(options,"r"));
- if(ErrFlag==0,
- tmp="crvsf"+nm;
- CalcbyC(tmp,[Cheadsurf(),Ctopsurf(tmp),cmdL],tmp1);
- );
- if(ErrFlag==1,
- err("Crvsfparadata not completed");
- ,
- ReadOutData(fname);
- GLIST=append(GLIST,"ReadOutData("+Dqq(fname)+")");
- if(islist(parse(name3)),
- tmp1=name2+"=Projpara("+Dqq(name3)+",[";
- tmp2="";
- if(length(options)>0,
- forall(options,
- tmp2=tmp2+Dqq(#)+",";
- );
- tmp2=substring(tmp2,0,length(tmp2)-1);
- );
- tmp1=tmp1+tmp2+"]);";
- parse(tmp1);
- if(length(optionsh)==0,tmp2=["nodisp"],tmp2=optionsh);
- tmp1=name2h+"=Projpara("+Dqq(name3h)+",[";
- forall(tmp2,
- tmp1=tmp1+Dqq(#)+",";
- );
- tmp1=substring(tmp1,0,length(tmp1)-1)+"]);";
- parse(tmp1);
- ,
- ErrFlag=1;
- );
- );
-);
-
-//help:end();
-
diff --git a/texmf-dist/scripts/ketcindy/ketlib/ketpicR/ketpic5_2_4.r b/texmf-dist/scripts/ketcindy/ketlib/ketpicR/ketpic5_2_4.r
deleted file mode 100644
index a53dd021..00000000
--- a/texmf-dist/scripts/ketcindy/ketlib/ketpicR/ketpic5_2_4.r
+++ /dev/null
@@ -1,14413 +0,0 @@
-# Copyright (C) 2014 Setsuo Takato, KETCindy Japan project team
-#
-#This program is free software: you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation; either version 3 of the License, or
-# (at your option) any later version.
-#
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with this program. If not, see <http://www.gnu.org/licenses/>
-
-
-#########################################
-
-ThisVersion<- "KeTpic for R v5_2_4(18.02.26)"
-
-print(ThisVersion)
-
-# 2018.02.26
-# Sfcutparadata changed
-# Partcrv3 debugged
-# Projcurve rewritten
-# Nohiddenparadata debugged
-# PthiddenQ debugged
-# 2018.02.24
-# Sfcutdata added ( for functions )
-# Meetpoints debugged (case Norm(PtB-PtA)<Eps0)
-# 2018.02.23
-# Makevaltable2 added ( for functions )
-# 2018.02.23
-# Crvonsfparadata,Crv3onsfparadata added
-# Wireparadata added
-# 2018.02.22
-# PthiddenQ,Nohiddenpara2 changed (Eps2)
-# 2018.02.21
-# PthiddenQ,Meetpoints debugged
-# Crvsfparadata debugged (OTHERPARTITION)
-# Partitionseg debugged (for non-list) and changed (Ns=0)
-# Intersectcrvsf added
-# 2018.02.19
-# Groupnearpt added
-# Collectnear debugged
-# Meetpoints,PthiddenQ debugged and changed (Groupnearpt used )
-# Parapt changed (for point list )
-# Partitionseg changed (remove close value )
-# Fullformfunc changed (Initialization of ADDPOINT)
-# Addpoints added
-# 2018.02.18
-# Projpara debugged ( for empty data, Mix replace )
-# WriteOutData debugged (for emply data )
-# Sfbdparadata,Cuspparadata debugged
-# Meetpoints replaced
-# 2018.02.17
-# PthiddenQ replaced
-# 2018.02.15
-# Cancoordpara debugged (X=-... )
-# 2018.02.14
-# Paramoncrv,Pointoncrv renamed to ...curve
-# 2018.02.12
-# Nohiddenpara2 debugged ( CUSPPT should be a list )
-# Dropnumlistcrv changed (Eps)
-# 2018.02.11
-# Paramocrv debugged ( case N=Length(PtL) )
-# Sfbdparadata, Borderparadata, Makexybdy, Partitionseg,
-# Evlptablepara, Fullformfunc, Dropnumlistcrv, Cuspsplitpara,
-# PthiddenQ, Nohiddenpara2 added
-# Crvsfparadata, Meetpoints, Clipdomain added
-# 2018.02.10
-# Partcrv3 debugged
-# 2018.02.09
-# Ptstart,Ptend changed ( for the case fig is empty)
-# Norm changed (Dotprod used )
-# 2018.02.07
-# Collectnear debugged (Looprange )
-# Intersectcurves debugged (sum)
-# 2018.02.06
-# Kukeiiwake debugged ( ParamonCurve -> Paramoncrv )
-# 2018.02.05
-# Dotprod changed ( crossprod not used )
-# Intersectpartseg changed ( case of length of result =1)
-# 2018.02.04
-# Diff added ( func, withvar, (varnamevalue1,... ))
-# Funvalue added ( for an expression )
-# 2018.02.02
-# Enclosing2 changed ( for distant curves, startpt option removed )
-# 2018.02.01
-# Intersectline,Intersectseg,...,Intersectcuves added
-# Quicksort added
-# Enclosing2 added (incomplete)
-# 2018.01.29
-# Length added
-# 2017.12.24
-# Objpolyhedron added
-# 2017.12.23
-# Objsymb, symb3data added
-# Objrecs, Objpolygon debugged
-# Objthicksurf added
-# 2017.12.22
-# Openobj,Closeobj,Writeobjpoint,Printobjstr,Objname,Objsurf added
-# Crossprod added
-# Objjoin, Objcurve, Objrecs, Objpolygon, Objsymb added
-# Spacecurve debugged
-# 2017.12.17
-# Setunitlen debugged ( MEMORI )
-# 2017.12.13
-# ReadOutData debugged
-# 2017.12.11
-# Enclosing debugged ( appendrow -> Appendrow )
-# 2017.11.29
-# Anglemark, Arrowhead, Ovaldata debugged ( Circldeta included )
-# 2017.11.27
-# Anglemark changed ( Scilab 16.12.29)
-# Plotdata,Paramplot,Spacecurve changed ( Scilab 16.12.13)
-# Enclosing changed ( Scilab 16.10.09)
-# Arrowhead,Arrowline changed ( Scilab 15.06.11)
-# Definecolor added ( Scilab 15.05.04)
-# 2017.11.26
-# Exprrot, Letterrot debugged ( `)
-# 2017.11.24
-# Deqplot debugged (Looprange)
-# 2017.11.20
-# InWindow debugged (for length=1)
-# 2017.10.28
-# Openfile changed (Creator)
-# 2017.10.23
-# ReadOutData greatly changed
-# 2017.10.11
-# Drwpt debugged (Flattenlist )
-# 2017.10.08
-# Bezier debugged ( Num )
-# 2017.10.07
-# ReadOutData debugged ( for null data )
-# 2017.10.06
-# Deqdata, Deqplot added
-# Connectseg remade(bug)
-# 2017.09.30
-# Bezierpt, Bezier added
-# 2017.09.29
-# Ptcrv debugged
-# 2017.09.28
-# Openfile changed
-# 2017.09.24
-# Circledata debugged
-# Kyoukai changed (Eps)
-# Shade updated
-# 2017.09.22
-# Setcolor changed
-# Plotdata,Paramplot,Spacecurve changed (N-1 -> N)
-# 2017.09.21
-# Shade changed (Sci 17.01.09)
-# 2017.09.17
-# Ovaldata,Assignadd changed
-# Dist added
-# Cicledata changed
-# Bowdata debugged (Circledata,etc)
-
-# 2015.11.05
-# WriteOutData changed
-
-# 2015.10.29
-# WriteOutData changed ( endmark //// )
-
-# 2015.10.24
-# ReadOutData changed ( in case of listlength=1 )
-
-# 2014.12.23
-# ReadOutData added
-
-# 2014.12.17
-# WriteOutData added
-
-# 2014.0905
-# Unscaling debugged MARKLENI => MARKLEN
-# 2014.03.31
-# PhHiddenData added
-# 2014.03.30
-# Facesdata changed ( for Hiddendata )
-# 2014.03.23
-# MARKLEN separated, Rotate3data debugged
-
-# 2013.12.19
-# Openfile, Closefile, Bowname, Bownamerot
-
-# 2013.11.13
-# Arrowhead, Arrowheaddata
-
-# 2013.08.07
-# Cancoordpara added
-
-# 2013.08.07
-# Integrate added
-
-# 2013.05.20
-# Openfile changed
-
-# 2013.05.03
-# Tabledata, Pointdata changed
-# Dividetable, Partframe added
-
-# 2013.02.10
-# Ketinit added
-
-# 2012.01.07
-# Arrowline, Arrowhead ( Cut implemented )
-
-# 2011.12.18
-# Framedata ( compliant for list )
-
-# 2011.12.12
-# Skeletonparadata... ( Flattellist used)
-
-# 2011.11.27
-# drwboxframe
-
-# 2011.11.07
-# metacommands added
-
-# 2011.11.02
-# Joingraphics ( for list structure )
-
-# 2011.08.24
-# Setcolor ( c(1,0,0,0.5) etc )
-# Rotate3data ( Point is available )
-
-# 2011.07.19
-# Drwline, Letter, Expr
-# Drwboxplot( etc ) min,max => outliners
-# Drwline ( unfinished in the case of "integer" )
-
-# 2011.06.25
-# joincrvs debugged
-
-# synchro with ketpict2e
-
-# 2011.06.01
-# Bowdata debugged
-
-#2011.05.28
-# Ratiocmyk, Setcolor ( new )
-
-#2011.04.28
-# Htickmark, Vtickmark debugged
-
-#2011.03.08
-# Drwboxframe debugged
-# Putrow, Putrowexpr debugged (Dpos )
-
-#2011.03.02
-# Tabledata ( index of hline ), PutcoL, PutcoLexpr ( "r",...) debugged
-# Texcom changed ( // => backslash )
-
-#2011.01.07
-# Dividegraphics, Splinedat are changed significantly
-# Readtextdata is changed
-
-#2011.01.04
-# Derivative, Integrate are added
-
-#2010.12.07
-# Translatedata, Scaledata, Reflectdata changed ( efficient for vector )
-# Rotatedata changed ( deg : logical )
-# HIstplotdata, Drwhistplot ( type => freq , fpplot (added) )
-
-# 2010.12.04
-# WindispT changed ( tickmark )
-# Lineplot changed ( mag=> length )
-# Plotdata debugged ( 'E=fun', 'D=')
-# Enclosing changed (return PD)
-
-# 2010.12.02
-# WindispT changed
-# Makecurves debugged
-
-# 2010.11.27
-# Pointdata changed ( efficient for matrix and data.frame )
-# WindispT
-# Setwindow ( decide from data )
-# Assign debugged ( strsplit => gsub(fixed=T))
-
-# 2010.11.20
-# Flattenlist, WindispT
-# Splinedata changed( efficient for data.frame )
-
-#2010.08.19 ( Maybe not finished )
-# Stripblanks
-# Fullformfunc, Sf3data
-
-#2010.08.17
-# Phparadata, Phpersdata, Phspersdata, Phsparadata
-# Facesdata, MakeveLfaceL, Menkakusi2
-# Rotate3data
-# Skeletonpersdata, Skeletonpers3data, Makeskeletonpersdata
-# Embed
-
-#2010.08.16
-# Spacecurve changed
-# CameracoordCurve, Partcrv3, Projpers, CameraCurve,
-# Perspt, Xyzaxpersname, Invperspt, Zparapt, Zperspt
-
-# 2010.08.15
-# Phcutoffdata added
-
-# 2010.08.13
-# Phcutdata, Spacecurve debugged
-# Setangle changed
-
-# 2010.08.09
-# Spacecurve
-# Rotate3data, Rotate3pt
-# Phcutdata
-
-# 2010.08.08
-# Implementing 3d
-# Initangle, Setangle, Setpers, SetstereoL, SetstereoR
-# Mixlength
-# Spaceline, Projpara, ProjCurve, Parapt
-# Xyzax3data, Xyzaxparaname
-# Cancoordpers, Invparapt, ProjcoordCurve
-# Skeletonparadata, Skeletonpara3data, Makeskeletondata, Kukannozoki
-
-# 2010.07.25
-# Rotatedata changed
-# Drwline changed (list of list)
-
-# 2010.04.09
-# Stat package added
-
-# 2010.04.02
-# Putcolexpr, Putrowexpr
-
-# 2010.04.02
-
-# Windisp, Op changed
-# Execmd added
-# Texnewcmd, Texrenewcmd, Texend,
-# Texctr, Texnewctr, Texsetctr
-# Kyoukai debugged
-
-# 2010.01.20
-# Partcrv, Makeshasen : debugged
-
-# 2010.01.23
-# Ovaldata, Ovalbox added
-
-# 2010.01.27
-# Readtextdata changed
-# Putrow, PutcoL debugged ( Putcol is OK)
-
-# 2010.01.31
-# Writetextdata added
-
-# 2010.02.12
-# Texvalctr, Texthectr added
-
-# 2010.02.22
-# Execmd changed
-
-# 2010.02.23
-# Op, Windisp changed
-
-# 2010.02.24
-# Execmd changed
-
-# 2010.03.07
-# Dotfilldata (Kosa>1)
-
-# 2010.03.21
-# Mixjoin
-# Koutenlist (bug)
-
-
-# 2010.03.24
-# Arrowhead ( bug in the case of "l" )
-
-# 2010.03.28
-# Tabledata
-# Diagcelldata ( New )
-
-# 2010.03.30
-# Tabledata
-
-###########################################
-
-XMIN<- -5
-XMAX<- 5
-YMIN<- -5 ; YMAX<- 5
-ZIKU<- "line"
-ARROWSIZE<- 1
-XNAME<- "$x$"
-XPOS<- "e"
-YNAME<- "$y$"
-YPOS<- "n"
-ONAME<- "O"
-OPOS<- "sw"
-ULEN<- "1cm"
-MilliIn<- 1/2.54*1000
-PenThick<- round(MilliIn*0.02)
-PenThickInit<- PenThick
-TenSizeInit<<- 0.02*2 #17.10.07
-TenSize<- TenSizeInit
-Wfile<-""
-MEMORI<- 0.05
-MEMORIInit<- MEMORI
-MEMORINow<- MEMORI
-MARKLEN<- 0.05
-MARKLENInit<- MARKLEN
-MARKLENNow<- MARKLEN
-GENTEN<- c(0,0)
-YaSize<- 1
-YaAngle<- 18
-YaPosition<- 1
-YaThick<- 1
-YaStyle<- "tf"
-PHI<- 30*pi/180
-THETA<- 60*pi/180
-FocusPoint<- c(0,0,0)
-EyePoint<- c(5,5,5)
-ASSIGNLIST<- list("`","'")
-
-SCALEX<- 1
-SCALEY<- 1
-LOGX<- 0
-LOGY<- 0
-
-TEXFORLEVEL<- 0
-TEXFORLAST<- list()
-
-#######################
-
-Ketinit<- function(){
-XMIN<<- -5
-XMAX<<- 5
-YMIN<<- -5 ; YMAX<<- 5
-ZIKU<<- "line"
-ARROWSIZE<<- 1
-XNAME<<- "$x$"
-XPOS<<- "e"
-YNAME<<- "$y$"
-YPOS<<- "n"
-ONAME<<- "O"
-OPOS<<- "sw"
-ULEN<<- "1cm"
-MilliIn<<- 1/2.54*1000
-PenThick<<- round(MilliIn*0.02)
-PenThickInit<<- PenThick
-TenSizeInit<<- 0.02*2 #17.10.07
-TenSize<<- TenSizeInit
-Wfile<<-""
-MEMORI<<- 0.05
-MEMORIInit<<- MEMORI
-MEMORINow<<- MEMORI
-MARKLEN<<- 0.05
-MARKLENInit<<- MARKLEN
-MARKLENNow<<- MARKLEN
-GENTEN<<- c(0,0)
-YaSize<<- 1
-YaAngle<<- 18
-YaPosition<<- 1
-YaThick<<- 1
-YaStyle<<- "tf"
-PHI<<- 30*pi/180
-THETA<<- 60*pi/180
-FocusPoint<<- c(0,0,0)
-EyePoint<<- c(5,5,5)
-ASSIGNLIST<<- list("`","'")
-
-SCALEX<<- 1
-SCALEY<<- 1
-LOGX<<- 0
-LOGY<<- 0
-
-TEXFORLEVEL<<- 0
-TEXFORLAST<<- list()
-}
-
-#-------------------------------------------------------
-
-Appendrow<- function(...)
-{
- varargin<- list(...)
- Nargs<- length(varargin)
- Out<-c()
- Nc<- 0
- for (I in 1:Nargs)
- {
- Dt<- varargin[[I]]
- Nc<- max(Nc,Ncol(Dt))
- if(class(Dt)=="matrix") Dt<-as.numeric(t(Dt))
- Out<- c(Out,Dt)
- }
- if(Nc>0)
- {
- Out<-matrix(Out, nrow=Nc)
- Out<-t(Out)
- }
- else
- {
- Out<-c()
- }
- return(Out)
-}
-
-Crossprod<-function(a,b)
-{
- if(length(a)==3)
- {
- Tmp1<-a[2]*b[3]-a[3]*b[2]
- Tmp2=a[3]*b[1]-a[1]*b[3]
- Tmp3=a[1]*b[2]-a[2]*b[1]
- Out=c(Tmp1,Tmp2,Tmp3)
- }
- else
- {
- Out=a[1]*b[2]-a[2]*b[1]
- }
- return(Out)
-}
-
-Datalength<-function(Data)
-{
- if(length(Data)==0) return(0)
- if(mode(Data)=="numeric") return(Nrow(Data))
- if(mode(Data)=="character") return(nchar(Data))
- if(mode(Data)=="list") return(length(Data))
-}
-
-Crossprod<- function (a,b){ # 17.12.22
- if(length(a)==3){
- Tmp1=a[2]*b[3]-a[3]*b[2]
- Tmp2=a[3]*b[1]-a[1]*b[3]
- Tmp3=a[1]*b[2]-a[2]*b[1]
- Out=c(Tmp1,Tmp2,Tmp3)
- }else{
- Out=a[1]*b[2]-a[2]*b[1]
- }
-}
-
-Dotprod<-function(a,b){ # 18.02.05
- nn=min(length(a),length(b))
- out=0
- for(jj in Looprange(1,nn)){
- out=out+a[jj]*b[jj]
- }
- return(out)
-}
-
-Dist<- function(...) # 17.09.17
-{
- varargin<- list(...)
- a=varargin[[1]]
- if(length(varargin)==1){
- tmp=sqrt(Dotprod(a,a))
- return(as.vector(tmp))
- }
- else{
- b=varargin[[2]]
- tmp=sqrt(Dotprod(b-a,b-a))
- retun(as.vector(tmp))
- }
-}
-
-Member<-function(A,L)
-{
- N<-length(L);
- if(length(N)==0) return(FALSE)
- for (I in 1:N)
- {
- if(class(L)=="list")
- {
- Tmp<-L[[I]]
- }
- else
- {
- Tmp<-L[I]
- }
- if(mode(A)=="numeric")
- {
- if(Norm(A-Tmp)==0) return(TRUE)
- }
- else
- {
- if(A==Tmp) return(TRUE)
- }
- }
- return(FALSE)
-}
-
-Norm<-function(V)
-{
- Tmp=Dotprod(V,V) #18.02.09
-# Tmp<-as.vector(V);
-# Tmp<-crossprod(Tmp,Tmp)
- Tmp<-sqrt(Tmp)
-# as.numeric(Tmp)
-}
-
-Ncol<-function(P)
-{
- if(class(P)=="matrix") return(ncol(P))
- else return(length(P))
-}
-
-Nrow<-function(P)
-{
- if(length(P)==0) return(0)
- if(class(P)=="matrix") return(nrow(P))
- else return(1)
-}
-
-Looprange<- function(a,b)
-{
-if(a<=b) return(a:b)
-return(c())
-}
-
-Stripblanks<- function(Ch){
- Tmp<- gsub(" ","",Ch,fixed=TRUE)
- return(Tmp)
-}
-
-Quicksort<- function(seqL,key){ #18.02.01
- if(length(seqL)<2){
- out=seqL
- }else{
- tmp1=Op(1,seqL)
- tmp2=Op(2,seqL)
- if(Op(key,tmp1)>=Op(key,tmp2)){
- pivot = tmp1
- }else{
- pivot=tmp2
- }
- left = list()
- right = list()
- for(ii in 1:length(seqL)){
- tmp=Op(ii,seqL)
- if(Op(key,tmp)< Op(key,pivot)){
- left=c(left,list(tmp))
- }else{
- right=c(right,list(tmp))
- }
- }
- left = Quicksort(left,key)
- right = Quicksort(right,key)
- out=c(left,right)
- }
- return(out)
-}
-
-Derivative<- function(...)
-{
- varargin<- list(...)
- Nargs<- length(varargin)
- Fstr<- varargin[[1]]
- Vstr<- varargin[[2]]
- NvaL<- length(Vstr)
- Flg<- 0
- if(Nargs>=3){
- VaL<- varargin[[3]]
- Flg<- 1
- }
- Str<- paste("deriv(~",Fstr,",c('",Vstr[1],"'",sep="")
- for(J in Looprange(2,NvaL)){
- Str<- paste(Str,",'",Vstr[J],"'",sep="")
- }
- Str<- paste(Str,")",sep="")
- if(NvaL<=3){
- Str<- paste(Str,",func=TRUE)",sep="")
- }
- else{
- Str<- paste(Str,")",sep="")
- }
- f<- eval(parse(text=Str))
- if(Flg==1){
- if(NvaL<=3){
- if(NvaL==1){V<- f(VaL[1])}
- if(NvaL==2){V<- f(VaL[1],VaL[2])}
- if(NvaL==3){V<- f(VaL[1],VaL[2],VaL[3])}
- }
- else{
- for(J in 1:NvaL){
- Tmp<- paste(Vstr[J],'<-',as.character(VaL[J]))
- eval(parse(text=Tmp))
- }
- V<- eval(f)
- }
- Out<- attr(V,'gradient')
- Out<- Out[1,]
- }
- else{
- Out<- f
- }
- return(Out)
-}
-
-Diff<- function(...){ #18.02.04
- varargin=list(...)
- Nargs=length(varargin)
- fun=varargin[[1]]
- withvar=varargin[[2]]
- tmp=paste("f<- expression(",fun,")",sep="")
- eval(parse(text=tmp))
- nn=nchar(withvar)
- for(jj in Looprange(1,nn)){
- tmp=substring(withvar,jj,jj)
- f=D(f,tmp)
- }
- var=c()
- val=""
- for(jj in Looprange(3,Nargs)){
- tmp=strsplit(varargin[[jj]],"=")
- var=c(var,tmp[[1]][1])
- val=paste(val,tmp[[1]][2],",",sep="")
- }
- if(Length(val)>1){
- val=substring(val,1,Length(val)-1)
- f=deriv(f,var,func=TRUE)
- tmp=paste("out=f(",val,")",sep="")
- out=eval(parse(text=tmp))
- return(out[1])
- }else{
- return(f)
- }
-}
-
-Funvalue<- function(...){
- varargin=list(...)
- Nargs=length(varargin)
- df=varargin[[1]]
- var=c()
- val=""
- for(jj in Looprange(2,Nargs)){
- tmp=strsplit(varargin[[jj]],"=")
- var=c(var,tmp[[1]][1])
- val=paste(val,tmp[[1]][2],",",sep="")
- }
- val=substring(val,1,Length(val)-1)
- dfun=deriv(df,var,func=TRUE)
- tmp=paste("out=dfun(",val,")",sep="")
- eval(parse(text=tmp))
- return(out[1])
-}
-
-Integrate<- function(...)
-{
- varargin<- list(...)
- Nargs<- length(varargin)
- Fstr<- varargin[[1]]
- Vstr<- varargin[[2]]
- IntvL<- varargin[[3]]
- Str<- 'Tmpfun<- function('
- Str<- paste(Str,Vstr,'){',sep='')
- Str<- paste(Str,Fstr,'}',sep='')
- eval(parse(text=Str))
- Tmpfunv<- function(x){sapply(x,Tmpfun)}
- Out<- 0
- for (J in 1:(length(IntvL)-1)){
- Tmp<- integrate(Tmpfunv,IntvL[J],IntvL[J+1])
- Out<- Out+Tmp[[1]]
- }
- return(Out)
-}
-
-#--------------------------------------
-
-#########################
-
-Anglemark<- function(...)
-{
- varargin<- list(...)
- Nargs<- length(varargin)
- Eps<- 10^(-3)
- PA<- varargin[[1]]
- PB<- varargin[[2]]
- PC=varargin[[3]]
- r <- 0.5
- if(Nargs>=4){
- r<- varargin[[4]]*r
- }
- Out=c()
- if(r>min(Norm(PA-PB),Norm(PC-PB))){
- return(Out)
- }
- Cir<- Circledata(c(PB,r)) #17.11.29
- Tmp<- IntersectcrvsPp(Cir,Listplot(PA,PB))
- P1<- Op(2,Op(1,Tmp))
- Tmp<- IntersectcrvsPp(Cir,Listplot(PC,PB))
- P2<- Op(2,Op(1,Tmp))
- if(abs(P1-P2)<Eps){
- Out<-c()
- return(Out)
- }
- if(P1<P2-Eps){
- Out<- Partcrv(P1,P2,Cir)
- }
- else{
- Tmp<- Numptcrv(Cir)
- Tmp1<- Partcrv(P1,Tmp,Cir)
- Tmp2<- Partcrv(1,P2,Cir)
- Out<- Joincrvs(Tmp1,Tmp2)
- }
-}
-
-##############################################
-
-Arrowdata<- function(...)
-{
- varargin<- list(...)
- Nargs<- length(varargin)
- P<- varargin[[1]]
- Q<- varargin[[2]]
- R<- Q
- Futosa<- YaThick
- Ookisa<- YaSize
- Thickness<- 1
- Hiraki<- YaAngle
- Yapos<- YaPosition
- Position<- 1
- Str<- YaStyle
- Flg<- 0
- for (I in Looprange(3,Nargs)){
- Tmp<- varargin[[I]]
- if(mode(Tmp)=="numeric"){
- if(length(Tmp)>1){
- R<- Tmp
- }
- else{
- if(Flg==0){
- Ookisa<- Ookisa*Tmp
- }
- if(Flg==1){
- if(Tmp<5){
- Hiraki<- Tmp*Hiraki
- }
- else{
- Hiraki<- Tmp
- }
- }
- if(Flg==2){
- R<- P+Tmp*(Q-P)
- }
- else{
- R<- P+Yapos*(Q-P)
- }
- if(Flg==3){
- Futosa<- Tmp
- }
- Flg<- Flg+1
- }
- }
- if(mode(Tmp)=="character"){
- Tmp<- grep("=", Tmp)
- if(length(Tmp)>0){
- eval(parse(text=Tmp))
- Futosa<- Futosa*Thickness
- R<- P+Position*(Q-P)
- }
- else{
- Str<- Tmp
- }
- }
- }
- Tmp1<- Listplot(c(P,Q))
- Tmp2<- Arrowheaddata(R,Q-P,Ookisa,Hiraki,Futosa,Str)
- Out<- Joingraphics(Tmp1,Tmp2)
-}
-
-######################################
-
-# 2013.11.13 No Intersect debugged
-
-Arrowhead<-function(...)
-{ ## Scaling is implemented
- ## 12.01.08 Kirikomi
- varargin<-list(...)
- Nargs<-length(varargin)
- P<-varargin[[1]]
- Houkou<-varargin[[2]]
- Ookisa<-0.2*YaSize
- Hiraki<-YaAngle
- Futosa<-0.5*YaThick
- Cut<- 0
- Str<-YaStyle
- Flg<- 0
- for (I in Looprange(3,Nargs)){
- Tmp<-varargin[[I]]
- if(is.character(Tmp)){
- Equal<- grep("=",Tmp,fixed=TRUE) # 12.01.07 from
- if(length(Equal)>0){
- Tmp1<- strsplit(Tmp,"=",fixed=TRUE)
- Tmp2<- Tmp1[[1]]
- if(Tmp2[1]=="Cut" || Tmp2[1]=="cut"){
- Tmp<- paste("Cut=",Tmp2[2],sep="")
- eval(parse(text=Tmp))
- }
- }else{
- Str<- Tmp
- } # 12.01.07 upto
- }
- if(is.numeric(Tmp) && length(Tmp)==1){
- if(Flg==0) Ookisa<-Ookisa*Tmp
- if(Flg==1){
- if(Tmp<5) Hiraki<-Tmp*Hiraki
- else Hiraki<-Tmp
- }
- if(Flg==2) Futosa<-Tmp
- Flg<-Flg+1
- }
- }
- Ookisa<-1000/2.54/MilliIn*Ookisa
- Theta<-Hiraki*pi/180
- if(Nrow(Houkou)>1){
- P<- Doscaling(P)
- Houkou<- Doscaling(Houkou)
- Tmp<-Nearestpt(P,Houkou)
- A<-Tmp[[1]]
- I<-floor(Tmp[[2]])
- G<-Circledata(c(P,Ookisa*cos(Theta)),N=10) #17.11.29
- Flg<- 0 # 13.11.13
- JL<-seq(I,1,by=-1)
- for (J in JL){
- B<-Ptcrv(J,Houkou)
- Tmp<-IntersectcrvsPp(Listplot(list(A,B)),G)
- if(length(Tmp)>0){
- Flg<- 1
- break
- }
- A<-B
- }
- if(Flg==0){ # 13.11.13
- print("Arrowhead may be too large (no intersect)")
- return(P)
- }
- Houkou<-P-Op(1,Tmp[[1]])
- Houkou<- Unscaling(Houkou)
- P<- Unscaling(P)
- }
- P<- Doscaling(P)
- Houkou<- Doscaling(Houkou)
- Ev<--1/Norm(Houkou)*Houkou
- Nv<-c(-Ev[2],Ev[1])
- if(length(grep("c",Str))>0){
- P<-P-0.5*Ookisa*cos(Theta)*Ev
- }
- if(length(grep("b",Str))>0){
- P<-P-Ookisa*cos(Theta)*Ev
- }
- A<-P+Ookisa*cos(Theta)*Ev+Ookisa*sin(Theta)*Nv
- B<-P+Ookisa*cos(Theta)*Ev-Ookisa*sin(Theta)*Nv
- if(length(grep("l",Str))>0){
- Tmp<-Listplot(list(A,P,B))
- Tmp1<- Unscaling(Tmp)
- Drwline(Tmp1,Futosa)
- }
- else{
- C<- P+(1-Cut)*((A+B)/2-P) # 12.01.07
- Tmp<- Listplot(list(A,P,B,C,A)) # 12.01.07
- Tmp1<- Unscaling(Tmp)
- Shade(Tmp1)
- Tmp=Listplot(c(A,P,B,C,A,P)) # 15.6.20
- Tmp1=Unscaling(Tmp)
- Drwline(Tmp1,0.1) # 15.06.11, 15.06.14
- }
-}
-
-############################################
-
-# 2013.11.13 No intersect debugged
-
-Arrowheaddata<- function(...)
-{ ## Scaling is implemented
- varargin<- list(...)
- Nargs<- length(varargin)
- P<- varargin[[1]]
- Houkou<- varargin[[2]]
- Ookisa<- 0.2*YaSize
- Hiraki<- YaAngle
- Futosa<- 0
- Thickness<- 1
- Str<- YaStyle
- Flg<- 0
- for (I in Looprange(3,Nargs)){
- Tmp<-varargin[[I]]
- if(mode(Tmp)=="character"){
- Tmp1<-grep("=",Tmp)
- if(length(Tmp1)>0){
- eval(parse(text=Tmp))
- Futosa<- Thickness
- }
- else{
- Str<- Tmp
- }
- }
- if(mode(Tmp)=="numeric" && length(Tmp)==1){
- if(Flg==0) Ookisa<-Ookisa*Tmp
- if(Flg==1){
- if(Tmp<5) Hiraki<-Tmp*Hiraki
- else Hiraki<-Tmp
- }
- if(Flg==2) Futosa<-Tmp
- Flg<-Flg+1
- }
- }
- Theta<- Hiraki*pi/180
- if(Nrow(Houkou)>1){
- P<- Doscaling(P)
- Houkou<- Doscaling(Houkou)
- Tmp<-Nearestpt(P,Houkou)
- A<-Tmp[[1]]
- I<-floor(Tmp[[2]])
- G<-Circledata(c(P,Ookisa*cos(Theta)),N=10) #17.11.29
- Flg<- 0 # 13.11.13
- JL<-seq(I,1,by=-1)
- for (J in JL){
- B<- Ptcrv(J,Houkou)
- Tmp<- IntersectcrvsPp(Listplot(list(A,B)),G)
- if(length(Tmp)>0){
- Flg<- 1
- break
- }
- A<-B
- }
- if(Flg==0){ # 13.11.13
- print("Arrowhead may be too large (no intersect)")
- return(P)
- }
- Houkou<-P-Op(1,Tmp[[1]])
- Houkou<- Unscaling(Houkou)
- P<- Unscaling(P)
- }
- P<- Doscaling(P)
- Houkou<- Doscaling(Houkou)
- Ev<- -1/Norm(Houkou)*Houkou
- Nv<- c(-Ev[2],Ev[1])
- if(length(grep("c",Str))>0){
- P<-P-0.5*Ookisa*cos(Theta)*Ev
- }
- if(length(grep("b",Str))>0){
- P<-P-Ookisa*cos(Theta)*Ev
- }
- A<-P+Ookisa*cos(Theta)*Ev+Ookisa*sin(Theta)*Nv
- B<-P+Ookisa*cos(Theta)*Ev-Ookisa*sin(Theta)*Nv
- Tmp<- Listplot(A,P,B)
- Out<- Unscaling(Tmp)
- return(Out)
-}
-
-##########################################
-
-Arrowline<- function(...)
-{ # 12.01.07 kirikomi
- varargin<- list(...)
- Nargs<- length(varargin)
- P<- varargin[[1]]
- Q<- varargin[[2]]
- Futosa<- YaThick
- Ookisa<- YaSize
- Hiraki<- YaAngle
- Yapos<- YaPosition
- Cutstr<- "Cut=0"
- Str<- YaStyle
- Flg<- 0
- for (I in Looprange(3,Nargs)){
- Tmp<- varargin[[I]]
- if(is.character(Tmp)){
- Equal<- grep("=",Tmp,fixed=TRUE) # 12.01.07 from
- if(length(Equal)>0){
- Tmp1<- strsplit(Tmp,"=")
- Tmp2<- Tmp1[[1]]
- if(Tmp2[1]=="Cut" || Tmp2[1]=="cut"){
- Tmp<- paste("Cut=", Tmp2[2],sep="")
- Cutstr<- Tmp
- }
- }
- else{
- Str<- Tmp
- } # 12.01.07 upto
- }
- if(is.numeric(Tmp) && length(Tmp)==1){
- if(Flg==0) Ookisa<- Ookisa*Tmp
- if(Flg==1){
- if(Tmp<5) Hiraki<- Tmp*Hiraki
- else Hiraki<- Tmp
- }
- if(Flg==2) Yapos<- Tmp
- if(Flg==3) Futosa<- Tmp
- Flg<- Flg+1
- }
- }
- R<- P+Yapos*(Q-P)
- Tmp=Q-Unscaling(0.2*Ookisa/2*(Q-P)/Norm(Q-P)) # 15.10.24
- Drwline(Listplot(c(P,Tmp)),Futosa)
- Arrowhead(R,Q-P,Ookisa,Hiraki,Futosa,Cutstr,Str)
-}
-
-#########################################
-
-Assign<- function(...)
-{
- varargin<- list(...)
- Nargs<- length(varargin)
- if(Nargs==0){
- ASSIGNLIST<<- list("`",Prime())
- Out<- ASSIGNLIST
- return()
-# return("Assign reset done");
- }
- L<- list("`","'")
- if(Nargs%%2==0){
- L<- Mixjoin(L,varargin)
- ASSIGNLIST<<- L
- Out<- L
- return()
-# return("Assign set done");
- }
- if(Nargs==1){
- Fnstr<- varargin[[1]]
- if(nchar(Fnstr)==0){ # case of ""
- L<- ASSIGNLIST
- Out<- c()
- for (I in seq(1,length(L),by=2)){
- Tmp1<- L[[I]]
- Tmp2<- L[[I+1]]
- if(length(Tmp2)==1){
- Tmp3<- as.character(Tmp2)
- }
- else{
- if(mode(Tmp2)=="character"){
- Tmp3<- Tmp2
- }
- else if(mode(Tmp2)=="list"){
- Tmp3<- makeliststr(Tmp2)
- }
- else if(mode(Tmp2)=="numeric"){
- Tmp3<- "c("
- for (J in Looprange(1,length(Tmp2))){
- Tmp3<- paste(Tmp3,as.character(Tmp2[J]),sep="")
- if(J<length(Tmp2)){
- Tmp3<- paste(Tmp3,",",sep="")
- }
- }
- Tmp3<- paste(Tmp3,")",sep="")
- if(class(Tmp2)=="matrix"){
- Nr<- as.character(nrow(Tmp2))
- Tmp3<- paste("matrix(",Tmp3,"nrow=",Nr,")",sep="")
- }
- }
- }
- Tmp<- paste(Tmp1,"=",Tmp3,sep="")
- Out<- c(Out,Tmp)
- }
- return(Out);
- }
- if(substr(Fnstr,1,1)=="?"){
- Fnstr<- substr(Fnstr,2,nchar(Fnstr))
- for (I in seq(1,length(ASSIGNLIST),by=2)){
- Tmp<- ASSIGNLIST[[I]]
- if(Tmp==Fnstr){
- Out<- Mixjoin(list(I),ASSIGNLIST[I+1])
- return(Out)
- }
- }
- Out<- "Not found"
- return(Out);
- }
- L<- ASSIGNLIST
- }
- else{
- if(mode(varargin[[2]])=="numeric"){
- Fnstr<- varargin[[Nargs]]
- for (I in Looprange(1,Nargs-1)){
- L[[I]]=varargin[[I]]
- }
- }
- else{
- Fnstr<- varargin[[1]]
- for (I in Looprange(2,Nargs)){
- L[[I-1]]<- varargin[[I]]
- }
- }
- }
- for (I in seq(1,length(L),by=2)){
- Vname<- L[[I]]
- Val<- L[[I+1]]
- if(mode(Val)=="numeric"){
- if(Nrow(Val)==1){
- for (K in Looprange(1,length(Val))){
- Tmp<- paste(Vname,"[", as.character(K),"]",sep="")
- if(mode(Val[K])=="numeric"){
- Tmp1<- paste("(",as.character(Val[K]),")",sep="")
- }
- else{
- Tmp1<- Val[K]
- }
- Fnstr<- gsub(Tmp,Tmp1,Fnstr,fixed=TRUE)
- }
- }
- else{
- for (J in Looprange(1,Nrow(Val))){
- for (K in Looprange(1,Ncol(Val))){
- Tmp<- paste(Vname,"(",as.character(J),",",as.character(K),")",sep="")
- if(mode(Val[J,K])=="numeric"){
- Tmp1<- paste("(",as.character(Val[J,K]),")",sep="")
- }
- else{
- Tmp1<- Val[J,K]
- }
- Fnstr<- gsub(Tmp,Tmp1,Fnstr,fixed=TRUE)
- }
- }
- }
- if(length(Val)==1){
- Rep<- as.character(Val)
- }
- else{
- Rep<-""
- if(class(Val)=="matrix"){
- Rep<- "matrix("
- }
- Rep<- paste(Rep,"c(",sep="")
- for (J in Looprange(1,length(Val))){
- Rep<- paste(Rep,as.character(Val[J]),sep="")
- if(J<length(Val)){
- Rep<- paste(Rep,",",sep="")
- }
- else{
- Rep<- paste(Rep,")",sep="")
- }
- }
- if(class(Val)=="matrix"){
- Rep<- paste(Rep,",nrow=",as.character(nrow(Val)),")",sep="")
- }
- }
- Tmp1<- paste("(",Rep,")",sep="")
- }
- if(mode(Val)=="character"){
- Tmp1<- Val
- }
- if(mode(Val)=="list"){
- Tmp1<- Makeliststr(Val)
- }
- Fnstr<- gsub(Vname,Tmp1,Fnstr,fixed=TRUE) # 10.11.20
- }
- return(Fnstr)
-}
-
-#########################################
-
-Assignadd<- function(...)
-{
- varargin<- list(...)
- L<- ASSIGNLIST
- L<- Mixjoin(L,varargin)
- ASSIGNLIST<<- L
-# return("assign add done"); #17.09.17
-}
-
-#########################################
-
-Assignrep<- function(...)
-{
- varargin<- list(...)
- Nargs<- length(varargin)
- L<- ASSIGNLIST
- for (I in seq(1,Nargs,by=2)){
- Vname<- varargin[[I]]
- Val<- varargin[[I+1]]
- Tmp1<- paste("?",Vname,sep="")
- Tmp<- Assign(Tmp)
- if(mode(Tmp)=="character"){
- next
- }
- I<- Tmp[[1]]
- L<- Mixjoin(L,list(Val))
- }
- ASSIGNLIST<<- L
-}
-
-#########################################
-
- Assignset<- function(...)
-{
- Assign(...)
-}
-
-#########################################
-
-Beginpicture<-function(ul)
-{ ## Scaling is implemented
- Tmp<- Doscaling(c(XMIN,YMIN))
- Xm<- Tmp[1]
- Ym<- Tmp[2]
- Tmp<- Doscaling(c(XMAX,YMAX))
- XM<- Tmp[1]
- YM<- Tmp[2]
- Dx<- XM-Xm
- Dy<- YM-Ym
- Sym<-".0123456789 +-*/"
- SL<-Sym
- OL<-"+-*/"
- if(ul!=""){
- ULEN<<-ul;
- }
- Is<-1;
- VL<-"";
- Ucode<-ULEN
- for (I in Looprange(1,nchar(Ucode))){
- C<-substring(Ucode,I,I);
- if(length(grep(C,SL))>0){
- if(length(grep(C,OL))>0){
- Tmp<-substring(Ucode,Is,I-1);
- Str<-paste(VL,Tmp,C,sep="")
- VL<-Str
- Is<-I+1;
- }
- }
- else{
- Unit<-substring(Ucode,I,I+1)
- Str<-substring(Ucode,Is,I-1)
- VL<-paste(VL,Str,sep="")
- break;
- }
- }
- Valu<-eval(parse(text=VL))
- Str<-as.character(Valu);
- ULEN<<- paste(Str,Unit,sep="")
- if(Unit=="cm") MilliIn<<-1000/2.54*Valu
- if(Unit=="mm") MilliIn<<-1000/2.54*Valu/10
- if(Unit=="in") MilliIn<<-1000*Valu
- if(Unit=="pt") MilliIn<<-1000/72.27*Valu
- if(Unit=="pc") MilliIn<<-1000/6.022*Valu
- if(Unit=="bp") MilliIn<<-1000/72*Valu
- if(Unit=="dd2") MilliIn<<-1000/1238/1157/72.27*Valu
- if(Unit=="cc") MilliIn<<-1000/1238/1157/72.27*12*Valu;
- if(Unit=="sp") MilliIn<<-1000/72.27/65536*Valu/10
- MARKLEN<<- MARKLENNow*1000/2.54/MilliIn;
- Str<-paste("{\\unitlength=",ULEN,"%\n",sep="")
- cat(Str,file=Wfile,append=TRUE)
- cat("\\begin{picture}%\n",file=Wfile,append=TRUE)
- Str<-"("
- Tmp<-as.character(round(Dx,digits=6))
- Str<-paste(Str,Tmp,",",sep="")
- Tmp<-as.character(round(Dy,digits=6))
- Str<-paste(Str,Tmp,")(",sep="")
- Tmp<-as.character(round(Xm,digits=6))
- Str<-paste(Str,Tmp,",",sep="")
- Tmp<-as.character(round(Ym,digits=6))
- Str<-paste(Str,Tmp,")%\n",sep="")
- cat(Str,file=Wfile,append=TRUE)
- Str<-paste("\\special{pn ",as.character(PenThickInit),"}%\n",sep="")
- cat(Str,file=Wfile,append=TRUE)
- cat("%\n",file=Wfile,append=TRUE)
-}
-
-#################################################
-
-Bowdata<- function(...) #17.09.17
-{
- varargin <- list(...)
- Nargs <- length(varargin)
- PA <- varargin[[1]]
- PB <- varargin[[2]]
- Cut <- 0
- D <- 1/2*Norm(PB-PA)
- if(Nargs>=3) {
- H <- varargin[[3]]*D*0.2
- }
- else {
- H <- D*0.2
- }
- H <- min(H,D)
- if(Nargs>=4){
- Cut <- varargin[[4]]
- }
- Ydata <- MakeBowdata(PA,PB,H)
- C <- Op(1,Ydata)
- r <- Op(2,Ydata)
- R1 <- Op(3,Ydata)
- R2 <- Op(4,Ydata)
- Rng <- paste("R=c(",as.character(R1),",",as.character(R2),")",sep="")
- Theta <- (R1+R2)*0.5
- BOWMIDDLE <<- list(c(C[1]+r*cos(Theta),C[2]+r*sin(Theta)),Theta)
- M <- Op(1,BOWMIDDLE)
- ThetaM <- Op(2,BOWMIDDLE)
- BOWSTART <<- PA
- BOWEND <<- PB
- if(Cut==0){
- Pd<- Circledata(c(C,r),Rng)
- }
- else{
- Alpha <- R1; Beta <- ThetaM-Cut/(2*r)
- Rng <- paste("Rng=c(",as.character(Alpha),",",as.character(Beta),")",sep="")
- Pd <- Circledata(c(C,r),Rng)
- Alpha <- ThetaM+Cut/(2*r); Beta <- R2
- Rng <- paste("R=c(",as.character(Alpha),",",as.character(Beta),")",sep="")
- Tmp <- Circledata(c(C,r),Rng)
- Pd <- Appendrow(Pd,c(Inf,Inf),Tmp)
- }
-}
-
-Bowmiddle <- function(...)
-{
- varargin <- list(...)
- Nargs <- length(varargin)
- if( Nargs==0) {
- M <- BOWMIDDLE
- return(M)
- }
- if(Nargs==1) {
- Bdata <- varargin[[1]]
- A <- Bdata[1,]
- Dind <- Dataindex(Bdata)
- Dc <- Nrow(Dind)
- Tmp <- Dind[Dc,2]
- B <- Bdata[Tmp,]
- if(Dc==1) {
- Tmp1 <- round(Tmp/2)
- }
- else {
- Tmp1 <- Dind[1,2]
- }
- D <- Bdata[Tmp1,]
- B <- B-A
- D <- D-A
- Tmp1 <- B[1]*D[2]-D[1]*B[2]
- Tmp2 <- (Norm(B)^2*D[2]-B[2]*Norm(D)^2)/2
- Tmp3 <- -(Norm(B)^2*D[1]-B[1]*Norm(D)^2)/2
- C <- c(Tmp2,Tmp3)/Tmp1+A
- R <- Norm(C-A)
- B <- B+A
- V <- (A+B)/2-C
- V <- V/Norm(V)
- M <- C+R*V
- }
- else {
- A <- varargin[[1]]; B <- varargin[[2]]
- D <- 1/2*Norm(B-A)
- H <- 0.2*D;
- if(length(varargin)>=3) {
- Tmp <- varargin[[3]]
- H <- Tmp*D*0.2
- }
- H <- min(H,D)
- Ydata <- MakeBowdata(A,B,H)
- C <- Op(1,Ydata)
- R <- Op(2,Ydata)
- T <- (Op(3,Ydata)+Op(4,Ydata))/2
- P <- C+R*c(cos(T),sin(T))
- #M <- list(P,T)
- M <- P
- }
- return(M)
-}
-
-##########################
-# 13.12.19 small movement supported
-
-Bowname<- function(...)
-{
- varargin <- list(...)
- Nargs <- length(varargin)
- Siki <- varargin[[Nargs]]
- Nargs<- Nargs-1
- Dr<- "c"
- if(Nargs>=1){
- Tmp<- varargin[[Nargs]]
- if(is.character(Tmp)){
- Dr<- Tmp
- Nargs<- Nargs-1
- }
- }
- if(Nargs==0){
- Siki <- varargin[[1]]
- P <- Op(1,BOWMIDDLE)
- }
- else if(Nargs==1){
- Bdata <- varargin[[1]]
- P <- Bowmiddle(Bdata)
- }
- else{
- A <- varargin[[1]]; B <- varargin[[2]]
- D <- 1/2*Norm(B-A)
- Tmp <- varargin[[3]]
- if(is.character(Tmp)){
- H <- D*0.2
- }
- else {
- H <- Tmp*D*0.2
- }
- H <- min(H,D)
- Ydata <- MakeBowdata(A,B,H)
- Tmp <- Bowmiddle(Ydata)
- P <- Op(1,Tmp)
- }
- Expr(P,Dr,Siki)
-}
-
-##########################
-# 13.12.19 small movement supported
-# A,B, ... no longer supported
-
-Bownamerot <- function(...)
-{
- varargin <- list(...)
- Nargs <- length(varargin)
- Eps <- 10^(-6)
- Flg <- 1
- Tmp <- varargin[[Nargs]]
- if(is.numeric(Tmp) && length(Tmp)==1 && Tmp<0){
- Flg <- Tmp
- Nargs <- Nargs-1
- }
- Siki <- varargin[[Nargs]]
- Nargs<- Nargs-1
- Dr<- "c"
- if(Nargs>=1){
- Tmp<- varargin[[Nargs]]
- if(is.character(Tmp)){
- Dr<- Tmp
- Nargs<- Nargs-1
- }
- }
- if(Nargs==0) {
- P <- Op(1,BOWMIDDLE)
- A <- BOWSTART
- B <- BOWEND
- }
- else{
- Bdata<- varargin[[1]]
- P<- Bowmiddle(Bdata)
- A=Bdata[1,]
- B=Bdata[nrow(Bdata),]
- Tm<- 0; Tv<- 0
- if(Nargs>1){
- Tm<- varargin[[2]]
- if(Nargs>2){
- Tv<- varargin[[3]]
- }
- }
- }
-# else if(Nargs==2) {
-# Bdata <- varargin[[1]]
-# P <- Bowmiddle(Bdata)
-# A <- Bdata[1,]
-# B <- Bdata[Nrow(Bdata),]
-# Siki <- varargin[[2]]
-# }
-# else {
-# A <- varargin[[1]]; B <- varargin[[2]]
-# D <- 1/2*Norm(B-A)
-# Tmp <- varargin[[3]]
-# if(mode(Tmp)=="character") {
-# H <- 0.2*D; Siki <- Tmp
-# }
-# else {
-# H <- Tmp*D*0.2; Siki <- varargin[[4]]
-# }
-# H <- min(H,D)
-# Ydata <- MakeBowdata(A,B,H)
-# C <- Op(1,Ydata)
-# R <- Op(2,Ydata)
-# T <- (Op(3,Ydata)+Op(4,Ydata))/2
-# P <- C+R*c(cos(T),sin(T))
-# }
- if(A[1]>B[1]+Eps){
- Tmp <- A
- A <- B
- B <- Tmp
- }
- if(Flg>0) {
- Tmp <- B-A
- }
- else{
- Tmp <- A-B
- }
- Exprrot(P,Tmp,Tm,Tv,Siki)
-}
-
-CalcHeight<-function(Hoko,Moji)
-{
- D<-0
- H<-substring(Hoko,1,1)
- Tmp<-paste("\\settoheight{\\Height}{",Moji,"}",sep="")
- Str<-c(Tmp)
- Tmp=paste("\\settodepth{\\Depth}{",Moji,"}",sep="")
- Str<-c(Str,Tmp)
- if(H=="n") Str<-c(Str,"\\setlength{\\Height}{\\Depth}")
- if(H=="s") Str<-c(Str,"\\setlength{\\Height}{-\\Height}")
- if(H=="c")
- {
- Str<-c(Str,"\\setlength{\\Height}{-0.5\\Height}")
- Str<-c(Str,"\\setlength{\\Depth}{0.5\\Depth}")
- Str<-c(Str,"\\addtolength{\\Height}{\\Depth}")
- }
- for (I in 1:length(Str)) cat(Str[I],file=Wfile,append=TRUE)
- cat("%\n",file=Wfile,append=TRUE)
-}
-
-#########################
-
-CalcWidth<-function(Hoko,Moji)
-{
- D<-0;
- H<-substring(Hoko,2,2)
- if(H=="e") D<-0
- if(H=="w") D<--1.0
- if(H=="c") D<--0.5
- Str1<-paste("\\settowidth{\\Width}{",Moji,"}",sep="")
- Tmp<-as.character(D)
- Str2<-paste("\\setlength{\\Width}{",Tmp,"\\Width}",sep="")
- cat(Str1,file=Wfile,append=TRUE)
- cat(Str2,file=Wfile,append=TRUE)
- cat("%\n",file=Wfile,append=TRUE)
-}
-
-#########################
-# 17.09.17
-# 17.09.24
-
-Circledata<- function(...){
- varargin<- list(...)
- Nargs<- length(varargin)
- Cr<- varargin[[1]]
- C=Cr[1:2]
- if(length(Cr)==4){
- ra=Norm(C-Cr[3:4])
- Nop=2
- }
- else{
- ra=Cr[3]
- Nop=2
- }
- R=c(0,2*pi)
- N=50
- for (I in Looprange(Nop,Nargs)){
- Tmp<- varargin[[I]]
- if(is.character(Tmp)){
- Tmp1=regexpr("=",Tmp) #17.09.24from
- Tmp2=substring(Tmp,Tmp1+1,nchar(Tmp))
- Tmp1=substring(Tmp,1,Tmp1)
- Tmp1=gsub("NUM", "N", toupper(Tmp1))
- Tmp1=gsub("RNG", "R", Tmp1)
- Tmp=paste(Tmp1,Tmp2,sep="") #17.09.24upto
- eval(parse(text=Tmp))
- }
- }
- Dt<- (R[2]-R[1])/N
- T <- seq(R[1],R[2],by=Dt)
- X <- C[1]+ra*cos(T)
- Y <- C[2]+ra*sin(T)
- XY<- c(X,Y)
- P<- matrix(XY,ncol=2)
- return(P)
-}
-
-#########################
-# 13.12.19
-
-Closefile<-function(...)
-{
- varargin<- list(...)
- if(length(varargin)>=1){
- Pa<- varargin[[1]]
- if(is.character(Pa)){
- if(Pa=="1") Endpicture(1)
- if(Pa=="0") Endpicture(0)
- }
- }
- Wfile<<-""
-}
-
-#########################
-
-Closepar<- function()
-{
- S<- "%\n\\end{minipage}"
- cat(S,file=Wfile,append=TRUE)
- Closephr()
-}
-
-
-####################################
-
-Closephr<- function()
-{
- cat("%\n}%\n",file=Wfile,append=TRUE)
-}
-
-#####################################
-
-Dataindex<-function(P)
-{
- # Inf;Inf : Terminator
- Ndm<-c()
- if(length(P)==0) return(Ndm)
- N1<-1
- Flg<-0
- for (J in 1:Nrow(P))
- {
- if(P[J,1]==Inf)
- {
- Ndm<-Appendrow(Ndm,c(N1,J-1))
- N1<-J+1;
- if(P[N1,1]==Inf)
- {
- Flg<-1;
- break;
- }
- }
- }
- if(Flg==0)
- {
- Ndm<-Appendrow(Ndm,c(N1,Nrow(P)))
- }
- if(class(Ndm)=="numeric")
- {
- Tmp<-matrix(Ndm,nrow=1)
- Ndm<- Tmp
- }
- return(Ndm)
-}
-
-################################
-
-Dashline<- function(...)
-{
- varargin<- list(...)
- Nargs<- length(varargin)
- Nall<- Nargs; Sen<- 1 ; Gap<- 1
- Tmp<- varargin[[Nall]]
- if(mode(Tmp)=="numeric" && length(Tmp)==1 && Tmp>0){
- Tmp1<- varargin[[Nall-1]]
- if(mode(Tmp1)=="numeric" && length(Tmp1)==1 && Tmp1>0){
- Sen<- Tmp1; Gap<- Tmp
- Nall<- Nall-2
- }
- else{
- Sen<- Tmp; Gap<- Sen
- Nall<- Nall-1
- }
- }
- Sen<- 1000/2.54/MilliIn*Sen
- Gap<- 1000/2.54/MilliIn*Gap
- for (N in Looprange(1,Nall)){
- Pdata<- varargin[[N]]
- if(is.numeric(Pdata)==1){
- Pdata<- list(Pdata)
- }
- for (II in 1:length(Pdata)){
- Figdata<- Op(II,Pdata)
- Makehasen(Figdata,Sen,Gap,0)
- }
- }
-}
-
-##############################################
-# 17.11.27
-
-Definecolor<- function(Name,Data){
- Tmp1=length(Data)
- if((Tmp1<3) || (Tmp1>4)){
- cat("Size of data should be 3 or 4.")
- return()
- }
- if(Tmp1==4){
- Tp="cmyk"
- }else{
- Tp="rgb"
- }
- Tmp=""
- for(J in 1:Tmp1){
- Tmp=paste(Tmp, as.character(Data[J]),sep="")
- if(J<Tmp1){
- Tmp=paste(Tmp,",",sep="")
- }
- }
- Tmp=paste("\\definecolor{",Name,"}{",Tp,"}{",Tmp,"}",sep="")
- Texcom(Tmp)
-}
-
-##############################################
-
-Diagcelldata<- function(Tb,Nc,Nr)
-{
- Tmp<- Findcell(Tb,Nc,Nr)
- C<- Tmp[[1]]
- Dx<- Tmp[[2]]
- Dy<- Tmp[[3]]
- Pne<- C+c(Dx,Dy)
- Pnw<- C+c(-Dx,Dy)
- Psw<- C+c(-Dx,-Dy)
- Pse<- C+c(Dx,-Dy)
- Tmp1<- Listplot(Pnw,Pse)
- Tmp2<- Listplot(Pne,Psw)
- list(Tmp1,Tmp2)
-}
-
-##############################################
-# 11.01.07
-
-Dividegraphics<- function(Pd)
-{
- if(length(Pd)==0){
- return(Pd)
- }
- DtL<- Flattenlist(Pd)
- OutL<- list()
- for (J in 1:length(DtL)){
- Dt<- as.matrix(DtL[[J]])
- Ndm<- Dataindex(Dt)
- for (I in Looprange(1,Nrow(Ndm))){
- Fd<- Dt[Ndm[I,1]:Ndm[I,2],]
- OutL<- c(OutL,list(Fd))
- }
- }
- return(OutL)
-}
-
-##############################################
-# 13.05.03
-
-Dividetable<- function(Tb)
-{
- G<- Tb[[1]]
- Gw<- G[[1]]
- Gt<- G[Tb[[2]]]
- Gy<- G[Tb[[3]]]
- list(Gw,Gt,Gy)
-}
-
-################################################
-
-Doscaling<- function(G)
-{
- GLg<- G
- if(class(GLg)=="numeric")
- {
- if(LOGX==1) GLg[1]<- log(G[1], base=10)
- if(LOGY==1) GLg[2]<- log(G[2], base=10)
- Tmp<-c(SCALEX*GLg[1],SCALEY*GLg[2])
- return(Tmp)
- }
- else
- {
- if(LOGX==1) GLg[,1]<- log(G[,1],base=10)
- if(LOGY==1) GLg[,2]<- log(G[,2],base=10)
- Tmp1<-matrix(c(SCALEX,0,0,SCALEY),nrow=2)
- Tmp<-GLg %*% Tmp1
- return(Tmp)
- }
-}
-
-########################################
-
-Dotfilldata<- function(...)
-{ ## Scaling is implemented
- varargin<- list(...)
- Nargs<- length(varargin)
- ShaL<- list()
- Eps<- 0.01
- Kakudo<- 45
- Kosa<- 0.5
- Tmp<- Doscaling(c(XMIN,YMIN))
- Xmn<- Tmp[1]; Ymn<- Tmp[2]
- Tmp<- Doscaling(c(XMAX,YMAX))
- Xmx<- Tmp[1]; Ymx<- Tmp[2]
- for (N in seq(Nargs,1,by=-1)){
- Tmp<- varargin[[N]]
- if(Mixtype(Tmp)!=1){
- break
- }
- }
- if(N<Nargs){
- Kosa<- varargin[[N+1]]
- }
-# Kosa<- min(Kosa,1)
- Tmp<- 1/(2*Kosa)
- Kankaku<- Tmp*0.100*1000/2.54/MilliIn
- NaitenL<- varargin[[1]]
- if(Mixtype(NaitenL)==1){
- NaitenL<- list(NaitenL)
- }
- Ns<- 2
- StartP<- Op(1,NaitenL)
- if(mode(StartP)=="character"){
- StartP<- c((Xmn+Xmx)/2,(Ymn+Ymx)/2)
- }
- else{
- StartP<- Doscaling(StartP)
- }
- Tmp<- varargin[[2]]
- if(Mixtype(Tmp)==1){
- StartP<- Doscaling(Tmp)
- Ns<- 3
- }
- Tmp<- list()
- for (I in Looprange(Ns,N)){
- Tmp<- Mixjoin(Tmp,list(varargin[[I]]))
- }
- Bdy<- Kyoukai(Tmp)
- Bdys<-list()
- for (I in 1:length(Bdy)){
- Tmp1<- Bdy[[I]]
- Tmp2<- Doscaling(Tmp1)
- Bdys<- Mixjoin(Bdys,list(Tmp2))
- }
- Bdy<- Bdys
- PtnL<- list()
- for (I in Looprange(1,length(NaitenL))){
- Tmp<- Op(I,NaitenL)
- if(mode(Tmp)=="numeric"){
- Tmp1<- Naigai(Tmp,Bdy)
- PtnL<- Mixjoin(PtnL,list(Tmp1))
- }
- else{
- if(mode(Tmp)!="character"){
- return("Mode Error")
- }
- Ptn<- c()
- for (J in Looprange(1,nchar(Tmp))){
- if(substr(Tmp,J,J)=="i"){
- Ptn<- c(Ptn,1)
- }
- else{
- Ptn<- c(Ptn,0)
- }
- }
- PtnL<- Mixjoin(PtnL,list(Ptn))
- }
- }
- Call<- length(Bdy)
- Ptn<- c(seq(0, 0, length=Call))
- if(Member(Ptn,PtnL)){
- Wn<- Doscaling(Framedata())
- Bdy<- Mixjoin(Bdy,list(Wn))
- Tmp<- list()
- for (I in Looprange(1,length(PtnL))){
- Tmp1<- c(Op(I,PtnL),1)
- Tmp<- Mixjoin(Tmp,list(Tmp1))
- }
- PtnL<- Tmp
- }
- V<- c(cos(Kakudo*pi/180),sin(Kakudo*pi/180))
- Vm<- c(-sin(Kakudo*pi/180),cos(Kakudo*pi/180))
- Tmp<- Op(1,NaitenL)
- if(mode(Tmp)=="numeric" && length(Tmp)==2){
- Tmp<- Doscaling(Tmp)
- Delta<- Tmp-StartP
- K<- trunc(Dotprod(Delta,Vm)/Kankaku)
- PA<- StartP+K*Kankaku*Vm
- P<- PA
- Sha<- Makeshasen(PtnL,P,V,Bdy)
- Sha<- Dividegraphics(Sha)
- I<- 1
- while (length(Sha)>0){
- for (J in Looprange(1,length(Sha))){
- Tmp<- Op(J,Sha)
- Q<- Tmp[1,]
- R<- Tmp[2,]
- Tmp<- Dotprod(Q-P,V)/Kankaku
- K1<- ceiling(Tmp)
- if(abs(K1-Tmp)<Eps) K1=K1+1
- Tmp<- Dotprod(R-P,V)/Kankaku
- K2<- floor(Tmp)
- if(abs(Tmp-K2)<Eps) K2=K2-1
- for (K in Looprange(K1,K2)){
- Tmp1<- Pointdata(P+K*Kankaku*V)
- ShaL<- Mixjoin(ShaL, list(Tmp1))
- }
- }
- P<- PA+I*Kankaku*Vm
- Sha<- Makeshasen(PtnL,P,V,Bdy)
- Sha<- Dividegraphics(Sha)
- I<- I+1
- }
- P<- PA-Kankaku*Vm
- Sha<- Makeshasen(PtnL,P,V,Bdy)
- I<- 2
- while (length(Sha)>0){
- for (J in 1:length(Sha)){
- Tmp<- Op(J,Sha)
- Q<- Tmp[1,]
- R<- Tmp[2,]
- Tmp<- Dotprod(Q-P,V)/Kankaku
- K1<- ceiling(Tmp)
- if(abs(K1-Tmp)<Eps) K1<- K1+1
- Tmp<- Dotprod(R-P,V)/Kankaku
- K2<- floor(Tmp)
- if(abs(Tmp-K2)<Eps) K2<- K2-1
- for (K in Looprange(K1,K2)){
- Tmp1<- Pointdata(P+K*Kankaku*V)
- ShaL<- Mixjoin(ShaL, list(Tmp1))
- }
- }
- P<- PA-I*Kankaku*Vm
- Sha<- Makeshasen(PtnL,P,V,Bdy)
- I<- I+1
- }
- }
- else{
- Delta<- c(Xmn,Ymn)-StartP
- K1<- trunc(Dotprod(Delta,Vm)/Kankaku)
- Delta<- c(Xmx,Ymn)-StartP
- K2<- trunc(Dotprod(Delta,Vm)/Kankaku)
- Delta<- c(Xmx,Ymx)-StartP
- K3<- trunc(Dotprod(Delta,Vm)/Kankaku)
- Delta<- c(Xmn,Ymx)-StartP
- K4<- trunc(Dotprod(Delta,Vm)/Kankaku)
- IM<- max(K1,K2,K3,K4)
- Im<- min(K1,K2,K3,K4)
- for (I in Im:IM){
- P<- StartP+I*Kankaku*Vm
- Sha<- Makeshasen(PtnL,P,V,Bdy)
- Sha<- Dividegraphics(Sha)
- if(length(Sha)>0){
- for (J in 1:length(Sha)){
- Tmp<- Op(J,Sha)
- Q<- Tmp[1,]
- R<- Tmp[2,]
- Tmp<- Dotprod(Q-P,V)/Kankaku
- K1<- ceiling(Tmp)
- if(abs(K1-Tmp)<Eps) K1=K1+1
- Tmp<- Dotprod(R-P,V)/Kankaku
- K2<- floor(Tmp)
- if(abs(Tmp-K2)<Eps) K2=K2-1
- for (K in Looprange(K1,K2)){
- Tmp1<- Pointdata(P+K*Kankaku*V)
- ShaL<- Mixjoin(ShaL, list(Tmp1))
- }
- }
- }
- }
- }
- ShaLs<-list()
- for (I in Looprange(1,length(ShaL)))
- {
- Tmp<- ShaL[[I]]
- Tmp1<- Unscaling(Tmp)
- ShaLs<- Mixjoin(ShaLs,Tmp1)
- }
- ShaL<- ShaLs
- return(ShaL)
-}
-
-#############################################
-
-Dottedline<- function(...)
-{
- varargin <- list(...)
- Nall <- length(varargin)
- Nagasa <- 0.1
- Ookisa <- PenThick
- I <- Nall
- Tmp <- varargin[[I]]
- while (mode(Tmp)=="numeric" && length(Tmp)==1 ) {
- I <- I-1
- Tmp <- varargin[[I]]
- }
- if(I==Nall-1) {
- Nagasa<-Nagasa*varargin[[Nall]]
- Nall <- Nall-1
- }
- if(I==Nall-2) {
- Nagasa <- Nagasa*varargin[[Nall-1]]
- Ookisa <- round(Ookisa*varargin[[Nall]])
- Nall <- Nall-2
- }
- Nagasa <- 1000/2.54/MilliIn*Nagasa
- for (N in 1:Nall) {
- Pdata <- varargin[[N]]
- if(mode(Pdata)=="numeric") {
- Pdata <- list(Pdata)
- }
- for (II in 1:length(Pdata)) {
- Clist <- MakeCurves(Op(II,Pdata))
- DinM <- Dataindex(Clist)
- for (n in Looprange(1,Nrow(DinM))) {
- Tmp <- DinM[n,]
- Data <- Clist[Tmp[1]:Tmp[2],]
- Len <- 0
- Lenlist <- c(0)
- for (I in Looprange(2,Nrow(Data))) {
- Len <- Len+Norm(Data[I,]-Data[I-1,])
- Lenlist <- c(Lenlist,Len)
- }
- Lenall <- Lenlist[length(Lenlist)]
- if(Lenall==0) {
- next
- }
- Naga <- Nagasa
- Nten <- round(Lenall/Naga)+1
- if(Nten > 1) {
- Seg <- Lenall/(Nten-1)
- }
- else {
- Seg <- Lenall
- }
- Eps <- 10^(-6)*Seg
- PPd<-c()
- Hajime <- 1
- for (I in Looprange(0,Nten-1)) {
- Len <- Seg*I
- if(I>0) {
- J <- Hajime
- while( Len>=Lenlist[J]+Eps) {
- J <- J+1
- }
- Hajime <- J-1
- }
- T <- (Len-Lenlist[Hajime])/
- (Lenlist[Hajime+1]-Lenlist[Hajime])
- P <- Data[Hajime,]+T*(Data[Hajime+1,]-Data[Hajime,])
- PPd<-Appendrow(PPd,P)
- if(I==Nten-1) {
- if(Norm(P-Data[1,])<Eps) {
- next
- }
- }
- }
- Str<-paste("\\special{pn ", as.character(Ookisa),"}%\n",sep="")
- cat(Str,file=Wfile,append=TRUE)
- for (I in Looprange(1,Nrow(PPd))){
- P<- Op(I,PPd)
- if(Nrow(PPd)==1){
- V<- c(1,0)
- }
- else if(I==1){
- Tmp<- Op(I+1,PPd)-P
- V<- 1/Norm(Tmp)*Tmp
- }
- else if(I==Nrow(PPd)){
- Tmp<- P-Op(I-1,PPd)
- V<- 1/Norm(Tmp)*Tmp
- }
- else{
- Tmp1<- Op(I+1,PPd)-P
- Tmp2<- P-Op(I-1,PPd)
- Tmp3<-1/Norm(Tmp1)*Tmp1+1/Norm(Tmp2)*Tmp2
- V<- 1/Norm(Tmp3)*Tmp3
- }
- Tmp<- round(MilliIn*P[1]-1/2*Ookisa*V[1])
- X<- as.character(Tmp)
- Tmp<- -round(MilliIn*P[2]-1/2*Ookisa*V[2])
- Y<- as.character(Tmp)
- Str<-paste("\\special{pa ",X," ",Y,"}",sep="")
- cat(Str,file=Wfile,append=TRUE)
- Tmp<- round(MilliIn*P[1]+1/2*Ookisa*V[1])
- X<- as.character(Tmp)
- Tmp<- -round(MilliIn*P[2]+1/2*Ookisa*V[2])
- Y<- as.character(Tmp)
- Str<-paste("\\special{pa ",X," ",Y,"}",sep="")
- cat(Str,file=Wfile,append=TRUE)
- cat("\\special{fp}",file=Wfile,append=TRUE)
- if(I%%2==0){
- cat("%\n",file=Wfile,append=TRUE)
- }
- }
- }
- }
- }
- Tmp<-PenThick/PenThickInit
- Setpen(Tmp);
-}
-
-###########################################
-
-Drwline<-function(...)
-{
- varargin<-list(...)
- Nall<-length(varargin)
- Thick<-0
- Tmp<-varargin[[Nall]]
- if(mode(Tmp)=="numeric" && length(Tmp)==1){
- Thick<-round(Tmp*PenThickInit)
- Str<-paste("\\special{pn ", as.character(Thick),"}%\n",sep="")
- cat(Str,file=Wfile,append=TRUE)
- Nall<-Nall-1
- }
- for (N in 1:Nall){
- Pdata<-varargin[[N]]
- if(length(Pdata)==0) next
- if(mode(Pdata)!="list") Pdata<-list(Pdata)
- while(Mixtype(Pdata)==3){ # 10.07.25
- Tmp1<- list()
- for(II in Looprange(1,length(Pdata))){
- Tmp1<- Mixjoin(Tmp1,Pdata[[II]])
- }
- Pdata<- Tmp1
- } # 10.07.25
- for (II in Looprange(1,length(Pdata))){
- Clist<-MakeCurves(Pdata[[II]])
- DinM<-Dataindex(Clist)
- for (n in Looprange(1,Nrow(DinM))){
- Tmp<-DinM[n,]
- Data<-Clist[Tmp[1]:Tmp[2],]
- Mojisu<-0
- for (I in Looprange(1,Nrow(Data))){
- Tmp<-Data[I,]
- X<- sprintf("%5.0f",MilliIn*Tmp[1]) # 11.07.19
- Y<- sprintf("%5.0f",-MilliIn*Tmp[2]) # 11.07.19
- Str<-paste("\\special{pa ",X," ",Y,"}",sep="")
- cat(Str,file=Wfile,append=TRUE)
- Mojisu<-Mojisu+nchar(Str)
- if(Mojisu>80){
- cat("%\n",file=Wfile,append=TRUE)
- Mojisu<-0
- }
- }
- if(Mojisu!=0){
- cat("%\n",file=Wfile,append=TRUE)
- }
- cat("\\special{fp}%\n",file=Wfile,append=TRUE)
- }
- }
- }
- Str<-"%"
- if(Thick>0){
- Tmp<-PenThick/PenThickInit
- Setpen(Tmp)
- }
-}
-
-###########################################
-
-Drwpt<-function(...)
-{ ## Scaling is implemented
- varargin<-list(...)
- Nargs<-length(varargin)
- if(TenSize>TenSizeInit){
- N<- round(6*sqrt(TenSize/TenSizeInit))
- }
- else{
- N<-4
- }
- Tmp<- varargin[[Nargs]]
- if(mode(Tmp)=="numeric"){
- if(length(Tmp)>1){
- Kosa<- 1; All<- Nargs
- }
- else{
- Kosa<- Tmp; All<- Nargs-1
- }
- }
- else if(mode(Tmp)=="list"){
- Kosa<- 1; All<- Nargs
- }
- CL<-c()
- for (J in 0:N){
- Tmp<- TenSize*0.5*1000/2.54/MilliIn
- Tmp<- Tmp*c(cos(pi/4+J*2*pi/N),sin(pi/4+J*2*pi/N))
- CL<- append(CL,Tmp)
- }
- CL<- matrix(CL,nrow=2)
- CL<- t(CL)
- for (II in Looprange(1,All)){
- MS<- varargin[[II]]
- MS=Flattenlist(MS) #17.10.11
- if(mode(MS)=="numeric"){
- MS<- list(MS)
- }
- for (I in Looprange(1,length(MS))){
- P<- MS[[I]]
- if(InWindow(P)!="i") next
- P<- Doscaling(P)
- PL<-c()
- for (J in 0:N){
- PL<- c(PL,P+CL[J+1,])
- }
- PL<-matrix(PL,nrow=2)
- PL<-t(PL)
- Mojisu<-0
- for (J in 1:Nrow(PL)){
- Q<- PL[J,]
- X<- as.character(round(MilliIn*Q[1]))
- Y<- as.character(-round(MilliIn*Q[2]))
- Str<- paste("\\special{pa ",X," ",Y,"}",sep="")
- cat(Str,file=Wfile,append=TRUE)
- Mojisu<- Mojisu+nchar(Str)
- if(Mojisu>80){
- cat("#\n",file=Wfile,append=TRUE)
- }
- Mojisu=0
- }
- Str1<- paste("\\special{sh ",as.character(Kosa),"}",sep="")
- Str2<- "\\special{fp}%\n"
- cat(Str1,file=Wfile,append=TRUE)
- cat(Str2,file=Wfile,append=TRUE)
- }
- }
-}
-
-######################################################
-
-Drwxy<-function(...)
-{
- varargin<-list(...)
- Nargs <- length(varargin)
- Tmp<-grep("arrow", ZIKU)
- if(length(Tmp)>0)
- {
- Arrowline(c(XMIN,GENTEN[2]),c(XMAX,GENTEN[2]),ARROWSIZE)
- Arrowline(c(GENTEN[1],YMIN),c(GENTEN[1],YMAX),ARROWSIZE)
- }
- else
- {
- Drwline(Listplot(c(XMIN,GENTEN[2]),c(XMAX,GENTEN[2])))
- Drwline(Listplot(c(GENTEN[1],YMIN),c(GENTEN[1],YMAX)))
- }
- Letter(c(XMAX,GENTEN[2]),XPOS,XNAME)
- Letter(c(GENTEN[1],YMAX),YPOS,YNAME)
- Letter(GENTEN,OPOS,ONAME);
-}
-
-##########################################
-# 10.12.04
-
-Enclosing<- function(...)
-{
- Eps=10^(-7) # Scilab 16.12.05
- varargin<- list(...)
- Nargs<- length(varargin)
- P<- varargin[[1]]
- if(Mixtype(P)==2){
- Tmp<- Op(1,P)
- if(mode(Tmp)!="numeric" || length(Tmp)>1){
- AnsL<- EnclosingS(...)
- AnsL<- Joincrvs(AnsL) # 10.12.04
- }
- }
- Tmp1=Op(1,AnsL) # Scilab 16.12.05from
- Tmp2=Op(nrow(AnsL),AnsL)
- if(Norm(Tmp2-Tmp1)>Eps){
- AnsL=Appendrow(AnsL,Tmp1)
- }
- return(AnsL)
-}
-
-#########################################
-
-EnclosingS<- function(...)
-{
- varargin<- list(...)
- Nargs<- length(varargin)
- AnsL<- list()
- PdataL<- varargin[[1]]
- Nall<-length(PdataL)
- Eps<- 10^(-3)
- EEps<- 0.1
- S<- c()
- Flg<- 0
- for (I in Looprange(2,Nargs)){
- Tmp<- varargin[[I]]
- if(mode(Tmp)=="numeric" && Nrow(Tmp)==1 && length(Tmp)>1){
- S<- Tmp
- }
- if(mode(Tmp)=="numeric" && length(Tmp)==1){
- if(Flg==0){
- Eps<- Tmp
- Flg=Flg+1
- }
- else{
- EEps<- Tmp
- }
- }
- }
- F<- Op(1,PdataL); G<- Op(Nall,PdataL)
- KL<- IntersectcrvsPp(F,G)
- if(length(KL)==1){
- Tmp<- Op(1,KL)
- P<- Op(1,Tmp)
- T1<- Op(2,Tmp)
- }
- if(length(KL)==0){
- if(Numptcrv(F)>Numptcrv(G)){
- Tmp<- Nearestpt(F,G)
- P<- Op(1,Tmp)
- T1=Op(2,Tmp)
- }
- else{
- Tmp<- Nearestpt(G,F)
- P<- Op(3,Tmp)
- T1<- Op(4,Tmp)
- }
- }
- if(length(KL)>=2){
- if(length(S)==0){
- return("No Start Point")
- }
- Tmp<- Op(1,KL)
- P<- Op(1,Tmp)
- T1<- Op(2,Tmp)
- Tmp<- Norm(P-S)
- for (I in Looprange(2,length(KL))){
- Tmp1<- Op(1,Op(I,KL))
- Tmp2<- Norm(Tmp1-S)
- if(Tmp2<Tmp){
- P<- Tmp1
- T1<- Op(2,Op(I,KL))
- Tmp<- Tmp2
- }
- }
- }
- S<- P
- AnsL<- list()
- for (N in Looprange(1,Nall)){
- F<- Op(N,PdataL)
- if(N>1) P<- Q
- if(N==Nall){
- Q=S
- }
- else{
- Flg<- 0
- G<- Op(N+1,PdataL)
- KL<- IntersectcrvsPp(G,F)
- if(length(KL)==1){
- Tmp<- Op(1,KL)
- Q<- Op(1,Tmp)
- T3<- Op(2,Tmp)
- Flg<- 10
- }
- if(length(KL)==0) Flg<- 1
- if(length(KL)>=2){ # Maple bug?
- Tmp1<- Op(1,Op(1,KL))
- Tmp2<- Op(1,Op(2,KL))
- Tmp<- Norm(Tmp1-Tmp2)
- if(Tmp<Eps*10) Flg<- 1
- }
- if(Flg==1){
- if(Numptcrv(F)>Numptcrv(G)){
- Tmp<- Nearestpt(F,G)
- Q<- Op(1,Tmp)
- T3<- Op(4,Tmp)
- Flg<- 10
- }
- else{
- Tmp<- Nearestpt(G,F)
- Q<- Op(3,Tmp)
- T3<- Op(2,Tmp)
- Flg<- 10
- }
- }
- if(Flg<10){
- T2<- Inf
- for (I in Looprange(1,length(KL))){
- Dt<- Op(I,KL)
- Tmp1<- Op(1,Dt)
- Tmp<- Op(3,Dt)
- Tmp2<- Paramoncurve(Tmp1,Tmp,F)
- Tmp3<- Op(2,Dt)
- if(Tmp2>T1+Eps && Tmp2<T2-Eps){
- Q<- Tmp1
- T2<- Tmp2
- T3<- Tmp3
- }
- }
- }
- }
- Tmp<- Partcrv(P,Q,F)
- T1<- T3
- AnsL<- Mixjoin(AnsL,list(Tmp))
- }
- return(AnsL)
-}
-
-########################################
-
-Endpicture<-function(...)
-{
- varargin<-list(...)
- Nargs<-length(varargin)
- if(Nargs==0)
- {
- Drwxy()
- }
- else
- {
- if(varargin[[1]]==1) Drwxy()
- }
- cat("\\end{picture}}%",file=Wfile,append=TRUE)
-# MEMORI<<-MEMORINow*1000/2.54/MilliIn
- Setunitlen("1cm")
-}
-
-#########################################
-
-Execmd<- function(StrL)
-{
- if(mode(StrL)=="character" && length(StrL)==1){
- StrL<- list(StrL)
- }
- for (I in Looprange(1,length(StrL))){
- if(!is.na(Op(I,StrL)) && nchar(Op(I,StrL))>0){
- eval(parse(text=Op(I,StrL)))
- }
- }
-}
-
-#########################################
-
-Expr<-function(...)
-{ ## Scaling is implemented
- varargin<-list(...)
- Nargs<-length(varargin)
- Irng<-c(seq(from=1,to=Nargs,by=3))
- for (I in Irng)
- {
- Tmp<-varargin[[I]]
- P<- Doscaling(Tmp)
- X<-P[1]
- Y<-P[2]
- Houkou<-varargin[[I+1]]
- Mojiretu<-paste("$",varargin[[I+2]],"$",sep="")
- Hset<-Houkou
- Vhoko<-"c"
- if(length(grep("n",Hset))>0)
- {
- Vhoko<-"n"; Y<-Y+MEMORI
- }
- if(length(grep("s",Hset))>0)
- {
- Vhoko<-"s"; Y<-Y-MEMORI
- }
- Hhoko<-"c"
- if(length(grep("e",Hset))>0)
- {
- Hhoko<-"e"; X<-X+MEMORI
- }
- if(length(grep("w",Hset))>0)
- {
- Hhoko<-"w"; X<-X-MEMORI
- }
- Hoko<-paste(Vhoko,Hhoko,sep="")
- Suu<-"+-.0123456789"
- SuuL<-Suu
- J<-1; Dstr<-""
- while (J<=nchar(Houkou))
- {
- Tmp<-substring(Houkou,J,J)
- if(length(grep(Tmp,Suu))>0)
- {
- if(Dstr=="") Hk<-substring(Houkou,J-1,J-1)
- Dstr<-paste(Dstr,Tmp,sep="")
- }
- else
- {
- if(Dstr!="")
- {
- Nmbr<-as.numeric(Dstr)
- D<-Nmbr*MEMORI
- if(Hk=="n") Y<-Y+D
- if(Hk=="s") Y<-Y-D
- if(Hk=="e") X<-X+D
- if(Hk=="w") X<-X-D
- Dstr<-""
- }
- }
- J<-J+1
- }
- if(Dstr!="")
- {
- Nmbr<-as.numeric(Dstr)
- D<-Nmbr*MEMORI;
- if(Hk=="n") Y<-Y+D
- if(Hk=="s") Y<-Y-D
- if(Hk=="e") X<-X+D
- if(Hk=="w") X<-X-D
- }
- CalcWidth(Hoko,Mojiretu)
- CalcHeight(Hoko,Mojiretu)
- cat("\\put(",file=Wfile,append=TRUE)
- Tmp1<- sprintf("%7.7f",X) # 11.07.19
- Tmp2<- sprintf("%7.7f",Y) # 11.07.19
- Str<-paste(Tmp1,",",Tmp2,sep="")
- cat(Str,file=Wfile,append=TRUE)
- Tmp<-"){\\hspace*{\\Width}"
- Str<-paste(Tmp,"\\raisebox{\\Height}{",Mojiretu,"}}%\n",sep="")
- cat(Str,file=Wfile,append=TRUE)
- cat("%\n",file=Wfile,append=TRUE)
- }
-}
-
-##########################################
-
-Exprrot<- function(...)
-{
- varargin<- list(...)
- P<- varargin[[1]]
- V<- varargin[[2]]; N<- 3
- P<- Doscaling(P)
- V<- Doscaling(V)
- Tmov<- 0
- Tmp<- varargin[[N]]
- if(mode(Tmp)=="numeric"){
- Tmov<- Tmp; N<- N+1
- }
- Nmov<- 0
- Tmp<- varargin[[N]]
- if(mode(Tmp)=="numeric"){
- Nmov<- Tmp; N<- N+1
- }
- Mojiretu<- paste("$",Assign(varargin[[N]]),"$",sep="") # 2017.11.26
- Tv<- 1/Norm(V)*V
- Nv<- c(-Tv[2],Tv[1])
- P<- P+MEMORI*Tmov*Tv+MEMORI*Nmov*Nv
- Tmp<- acos(V[1]/Norm(V))
- Theta<- round(Tmp*180/pi)
- if(V[2]>=0){
- Units<- ""
- }
- else{
- Units<- "units=-360,"
- }
- Tmp<- paste("\\rotatebox[",Units,"origin=c]{",as.character(Theta),sep="")
- Tmp<- paste(Tmp,"}{",Mojiretu,"}",sep="")
- Letter(P,"c",Tmp)
-}
-
-######################################################
-
-Findcell<- function(...)
-{
- varargin<- list(...)
- Nargs<- length(varargin)
- TbL<- varargin[[1]]
- Ag<- varargin[[2]]
- Alpha<- "-ABCDEFGHIJKLMNOPQRSTUVWXYZ"
- if(mode(Ag)=="character"){
- Clm<- c()
- Rstr<- ""
- for (I in Looprange(1,nchar(Ag))){
- C<- substr(Ag,I,I)
- C<- toupper(C)
- Tmp<- strsplit(Alpha,C)
- Tmp<- Tmp[[1]]
- if(length(Tmp)>1){
- Tmp1<- nchar(Tmp[1])
- Clm<- c(Clm,Tmp1)
- }
- else{
- Rstr<- paste(Rstr,C,sep="")
- }
- }
- Nrg<- 0
- for (I in seq(length(Clm),1,by=-1)){
- Tmp<- Clm[I]
- Tmp1<- length(Clm)-I
- Nrg<- Nrg+Tmp*26^Tmp1
- }
- Mrg<- eval(parse(text=Rstr))
- if(Nargs>=3){
- Ag<- varargin[[3]]
- Clm<- c()
- Rstr<- ""
- for (I in Looprange(1,nchar(Ag))){
- C<- substr(Ag,1,1)
- C<- toupper(C)
- Tmp<- strsplit(Alpha,C)
- if(length(Tmp)>1){
- Clm<- c(Clm,Tmp+1)
- }
- else{
- Rstr<- paste(Rstr,C,sep="")
- }
- }
- Nrg2<- 0
- for (I in seq(length(Clm),1,by=-1)){
- Tmp<- Clm[I]
- Tmp1<- length[Clm]-I
- Nrg2<- Nrg2+Tmp*26^Tmp1
- }
- Nrg<- c(Nrg,Nrg2)
- Tmp=eval(parse(text=Rstr))
- Mrg<- c(Mrg,Tmp)
- }
- }
- else{
- Nrg<- varargin[[2]]
- Mrg<- varargin[[3]]
- }
- if(length(Mrg)==1){
- m1<- Mrg; m2<- m1+1
- }
- else{
- m1<- Mrg[1]; m2<- Mrg[2] # 10.12.12
- }
- if(length(Nrg)==1){
- n1<- Nrg; n2<- n1+1
- }
- else{
- n1<- Nrg[1]; n2<- Nrg[2]
- }
- n1<- n1+1; n2<- n2+1
- m1<- m1+1; m2<- m2+1
- Hind<- TbL[[2]]
- Vind<- TbL[[3]]
- Tmp<- TbL[[1]]
- HL<- Tmp[Hind]
- Tmp1<- Op(1,TbL[[4]])
- Tmp2<- Op(2,TbL[[4]])
- HL<- Mixjoin(list(Tmp1),HL,list(Tmp2))
- VL<- Tmp[Vind]
- Tmp1<- Op(1,TbL[[5]])
- Tmp2<- Op(2,TbL[[5]])
- VL<- Mixjoin(list(Tmp1),VL,list(Tmp2))
- Tmp<- TbL[[6]]
- Tmp1<- Listplot(c(Ptsw(Tmp),Ptnw(Tmp)))
- Tmp2<- Listplot(c(Ptse(Tmp),Ptne(Tmp)))
- HL<- Mixjoin(list(Tmp1),HL,list(Tmp2))
- Tmp1<- Listplot(c(Ptnw(Tmp),Ptne(Tmp)))
- Tmp2<- Listplot(c(Ptsw(Tmp),Ptse(Tmp)))
- VL<- Mixjoin(list(Tmp1),VL,list(Tmp2))
- Tmp<- HL[[n1]]
- if(mode(Tmp)=="numeric"){
- H1<- Tmp[1,1]
- }
- else{
- Tmp1<- Tmp[[1]]
- H1<- Tmp1[1,1]
- }
- Tmp<- HL[[n2]]
- if(mode(Tmp)=="numeric"){
- H2<- Tmp[1,1]
- }
- else{
- Tmp1<- Tmp[[1]]
- H2<- Tmp1[1,1]
- }
- Tmp<- VL[[m1]]
- if(mode(Tmp)=="numeric"){
- V1<- Tmp[1,2]
- }
- else{
- Tmp1<- Tmp[[1]]
- V1<- Tmp1[1,2]
- }
- Tmp<- VL[[m2]]
- if(mode(Tmp)=="numeric"){
- V2<- Tmp[1,2]
- }
- else{
- Tmp1<- Tmp[[1]]
- V2<- Tmp1[1,2]
- }
- Pt<- c((H1+H2)/2,(V1+V2)/2)
- High<- (V1-V2)/2
- Wide<- (H2-H1)/2
- Out<- list(Pt,Wide,High)
- return(Out)
-}
-
-############################################
-
-Flattenlist<- function(...){
- varargin<- list(...)
- Nargs<- length(varargin)
- Out<- list()
- for(N in Looprange(1,Nargs)){
- D<- varargin[[N]]
- if(is.data.frame(D) || !is.list(D)){ # modify
- Out<- c(Out,list(D))
- }
- else{
- for(I in Looprange(1,length(D))){
- Ds<- D[[I]]
- Tmp<- Flattenlist(Ds)
- Out<- c(Out,Tmp)
- }
- }
- }
- return(Out)
-}
-
-############################################
-
-Fontsize<- function(Ookisa)
-{
- Str<- "%"
- S<- substr(Ookisa,1,1)
- if(S=="n"){
- Str<- "\\normalsize%"
- }
- if(S=="s"){
- if(nchar(Ookisa)==1){
- Tmp<- "n"
- }
- else{
- Tmp<- substr(Ookisa,2,2)
- }
- if(Tmp=="s"){
- Str<- "\\scriptsize%"
- }
- else{
- Str<- "\\small%"
- }
- }
- if(S=="f"){
- Str<- "\\footnotesize%"
- }
- if(S=="t"){
- Str<- "\\tiny%"
- }
- if(S=="l"){
- Str<- "\\large%"
- }
- if(S=="L"){
- if(nchar(Ookisa)==1){
- Tmp<- "a"
- }
- else{
- Tmp<- substr(Ookisa,2,2)
- }
- if(Tmp=="a"){
- Str<- "\\Large%"
- }
- else{
- Str<- "\\LARGE%"
- }
- }
- if(S=="h"){
- Str<- "\\huge%"
- }
- if(S=="H"){
- Str<- "\\Huge%"
- }
- cat(Str,file=Wfile,append=TRUE)
- cat("\n",file=Wfile,append=TRUE)
-}
-
-##########################################
-
-Fracform<- function(...)
-{
- varargin<- list(...)
- Eps<- 10^(-10)
- Nmax<- 1/Eps
- Nargs<- length(varargin)
- X<- varargin[[1]]
- Nr<- Nrow(X)
- X<- as.matrix(X,nrow=Nr)
- for (I in Looprange(2,Nargs)){
- Tmp<- varargin[[I]]
- if(mode(Tmp)!="numeric"){
- next
- }
- if(Tmp>1){
- Nmax<- Tmp
- }
- else if(Tmp>0){
- Eps<- Tmp
- }
- }
- Tmp<- rep("",length(X))
- Out<- matrix(Tmp,nrow=nrow(X))
- for (I in Looprange(1,nrow(X))){
- for (J in Looprange(1,ncol(X))){
- Dt<- X[I,J]
- if(mode(Dt)=="character"){
- Dt<- eval(parse(text=Dt))
- }
- R<- 1
- N<- 0
- Rmin<- R
- Nr<- N
- while (R>Eps && N<Nmax){
- N<- N+1
- M<- round(Dt*N)
- R<- abs(Dt-M/N)
- if(R<Rmin){
- Rmin<- R
- Nr<- N
- }
- }
- if(N==Nmax){
- N<- Nr
- M<- round(Dt*N)
- }
- Tmp<- as.character(M)
- if(N!=1){
- Tmp<- paste(Tmp,"/",as.character(N),sep="")
- }
- Out[I,J]<- Tmp
- }
- }
- if(nrow(Out)==1){
- Out<- as.character(Out)
- }
- return(Out)
-}
-
-##############################################
-# 2011.12.17 ( list )
-
-Framedata<-function(...)
-{
- varargin<- Flattenlist(list(...))
- N<-length(varargin)
- if(N<= 1){
- H<- 1.0*10^(-4);
- PA<-c(XMIN+H,YMIN+H)
- PB<-c(XMAX-H,YMIN+H)
- PC<-c(XMAX-H,YMAX-H)
- PD<-c(XMIN+H,YMAX-H)
- }
- else{
- Tmp<-varargin[[N]]
- if(is.numeric(Tmp) && length(Tmp)==1){
- Dy<-Tmp; Dx<-Dy
- Tmp<-varargin[[N-1]]
- if(is.numeric(Tmp) && length(Tmp)==1){
- Dx<-Tmp
- }
- Tmp<-varargin[[1]]
- X<-Tmp[1]; Y<-Tmp[2]
- X1<-X-Dx; X2<-X+Dx; Y1<-Y-Dy; Y2<-Y+Dy
- }
- else{
- Tmp<-varargin[[1]]
- X1<-Tmp[1]; X2<-Tmp[2]
- Tmp<-varargin[[2]]
- Y1<-Tmp[1]; Y2<-Tmp[2]
- }
- PA<-c(X1,Y1); PB<-c(X2,Y1)
- PC<-c(X2,Y2); PD<-c(X1,Y2)
- }
- Out<- Listplot(c(PA,PB,PC,PD,PA))
- return(Out)
-}
-
-###################################
-
-Hatchdata<- function(...)
-{ ## Scaling is implemented
- varargin<- list(...)
- ShaL<- list()
- Nargs<- length(varargin)
- Kakudo<- 45
- Kankaku<- 0.125*1000/2.54/MilliIn
- Tmp<- Doscaling(c(XMIN,YMIN))
- Xmn<- Tmp[1]; Ymn<- Tmp[2]
- Tmp<- Doscaling(c(XMAX,YMAX))
- Xmx<- Tmp[1]; Ymx<- Tmp[2]
- for (N in seq(Nargs,1, by=-1))
- {
- Tmp<- varargin[[N]]
- if(mode(Tmp)=="list")
- {
- break
- }
- }
- if(N<Nargs)
- {
- Kakudo<- varargin[[N+1]]
- if(N==Nargs-2)
- {
- Kankaku<- 0.125*varargin[[Nargs]]
- }
- }
- NaitenL<- varargin[[1]]
- if(mode(NaitenL)!="list")
- {
- NaitenL<- list(NaitenL)
- }
- Ns<- 2
- StartP<- Op(1,NaitenL)
- if(mode(StartP)=="character")
- {
- StartP<- c((Xmn+Xmx)/2, (Ymn+Ymx)/2)
- }
- if(mode(varargin[[2]])=="numeric")
- {
- StartP<- varargin[[2]]
- StartP<- Doscaling(StartP)
- Ns<- 3
- }
- Tmp<- list()
- for ( I in Looprange(Ns,N))
- {
- Tmp1<- list(varargin[[I]])
- Tmp2<- Mixjoin(Tmp, Tmp1)
- Tmp<- Tmp2
- }
- Bdy<- Kyoukai(Tmp)
- Bdys<-list()
- for (I in 1:length(Bdy))
- {
- Tmp1<- Bdy[[I]]
- Tmp2<- Doscaling(Tmp1)
- Bdys<- Mixjoin(Bdys,list(Tmp2))
- }
- Bdy<- Bdys
- PtnL<- list()
- for (I in Looprange(1,length(NaitenL)))
- {
- Tmp<- Op(I, NaitenL)
- if(mode(Tmp)=="numeric")
- {
- Tmp1<- Naigai(Tmp,Bdy)
- Tmp2<- Mixjoin(PtnL, list(Tmp1))
- PtnL<- Tmp2
- }
- else
- {
- if(mode(Tmp)!="character")
- {
- return("Mode Error")
- }
- Ptn<-c()
- for (J in 1:nchar(Tmp))
- {
- if(Op(J,Tmp)=="i")
- {
- Ptn<- c(Ptn,1)
- }
- else
- {
- Ptn<- c(Ptn,0)
- }
- }
- PtnL<- Mixjoin(PtnL, list(Ptn))
- }
- }
- Call<- length(Bdy)
- Ptn<- c(seq(0, 0, length=Call))
- if(Member(Ptn,PtnL))
- {
- Wn<- Doscaling(Framedata())
- Tmp<- Mixjoin(Bdy,list(Wn))
- Bdy<- Tmp
- Tmp<- list()
- for (I in Looprange(1, length(PtnL)))
- {
- Tmp1<- c(Op(I,PtnL),1)
- Tmp2<- Mixjoin(Tmp,list(Tmp1))
- Tmp<- Tmp2
- }
- PtnL<- Tmp
- }
- V<- c(cos(Kakudo*pi/180),sin(Kakudo*pi/180))
- Vm<- c(-sin(Kakudo*pi/180),cos(Kakudo*pi/180))
- Tmp<- Op(1,NaitenL)
- if(mode(Tmp)=="numeric" && length(Tmp)==2)
- {
- Tmp<- Doscaling(Tmp)
- Delta<- Tmp-StartP
- K<- trunc(Dotprod(Delta,Vm)/Kankaku)
- PA<- StartP+K*Kankaku*Vm
- Sha<- Makeshasen(PtnL,PA,V,Bdy)
- I <- 1
- while (length(Sha)>0)
- {
- Tmp<- Mixjoin(ShaL, list(Sha))
- ShaL <- Tmp
- Sha<- Makeshasen(PtnL,PA+I*Kankaku*Vm,V,Bdy)
- I <- I+1
- }
- Sha<- Makeshasen(PtnL,PA-Kankaku*Vm,V,Bdy)
- I<- 2
- while (length(Sha)>0)
- {
- for (J in 1:length(Sha))
- {
- Tmp<- Mixjoin(ShaL,list(Sha[[J]]))
- ShaL<- Tmp
- }
- Sha<- Makeshasen(PtnL,PA-I*Kankaku*Vm,V,Bdy)
- I<- I+1
- }
- }
- else
- {
- Delta<- c(Xmn,Ymn)-StartP
- K1<- trunc(Dotprod(Delta,Vm)/Kankaku)
- Delta<- c(Xmx,Ymn)-StartP
- K2<- trunc(Dotprod(Delta,Vm)/Kankaku)
- Delta<- c(Xmx,Ymx)-StartP
- K3<- trunc(Dotprod(Delta,Vm)/Kankaku)
- Delta<- c(Xmn,Ymx)-StartP
- K4<- trunc(Dotprod(Delta,Vm)/Kankaku)
- IM<- max(K1,K2,K3,K4)
- Im<- min(K1,K2,K3,K4)
- for (I in Im:IM)
- {
- Sha<- Makeshasen(PtnL,StartP+I*Kankaku*Vm,V,Bdy)
- for (J in Looprange(1,length(Sha)))
- {
- Tmp<- Mixjoin(ShaL, list(Sha[[J]]))
- ShaL<- Tmp
- }
- }
- }
- ShaLs<-list()
- for (I in Looprange(1,length(ShaL)))
- {
- Tmp<- ShaL[[I]]
- Tmp1<- Unscaling(Tmp)
- Tmp2<- Mixjoin(ShaLs, list(Tmp1))
- ShaLs<- Tmp2
- }
- ShaL<- ShaLs
- return(ShaL)
-}
-
-######################################
-
-Htickmark<- function(...)
-{ ## Scaling is implemented
- varargin<- list(...)
- Nargs<- length(varargin)
- ArgsL<- varargin
- if(mode(ArgsL[[1]])=="character"){
- Str<- ArgsL[[1]]
- Tmp<- strsplit(Str,"m")
- Tmp<- Tmp[[1]]
- if(length(Tmp)>1){
- I<- nchar(Tmp[1])+1
- }
- else{
- I<- 0
- }
- Tmp<- strsplit(Str,"n")
- Tmp<- Tmp[[1]]
- if(length(Tmp)>1){
- J<- nchar(Tmp[1])+1
- }
- else{
- J<- 0
- }
- Tmp<- strsplit(Str,"r")
- Tmp<- Tmp[[1]]
- if(length(Tmp)>1){
- K=nchar(Tmp[1])+1
- }
- else{
- K<- 0
- }
- if(K>0){
- S<- substr(Str,K+1,nchar(Str))
- R<- as.numeric(S)
- if(is.na(R)){
- R<- 1
- }
- }
- else{
- R<- 1
- K<- nchar(Str)+1
- }
- if(J>0){
- S<- substr(Str,J+1,K-1)
- Dn<- as.numeric(S)
- if(is.na(Dn)){
- Dn<- 1
- }
- }
- else{
- Dn<- 1000
- J<- nchar(Str)+1
- }
- S<- substr(Str,I+1,J-1)
- Dm<- as.numeric(S)
- if(is.na(Dm)){
- Dm<- 1
- }
- ArgsL<- list()
- for (I in Looprange(1, floor((XMAX-GENTEN[1])/Dm))){
- ArgsL<- Mixjoin(ArgsL,I*Dm)
- if(I-floor(I/Dn)*Dn==0){
- Str<- as.character(I*Dm*R)
- ArgsL<- Mixjoin(ArgsL,Str)
- }
- }
- for (I in seq(-1,ceiling((XMIN-GENTEN[1])/Dm),by=-1)){
- ArgsL<- Mixjoin(ArgsL,I*Dm)
- if(I-floor(I/Dn)*Dn==0){
- Str<- as.character(I*Dm*R)
- ArgsL<- Mixjoin(ArgsL,Str)
- }
- }
- }
- MemoriList<- list()
- Memori<- list()
- for (N in 1:length(ArgsL)){
- Dt<- ArgsL[[N]]
- if(mode(Dt)=="numeric" && length(Dt)>1){
- if(length(Memori)>0){
- MemoriList<- Mixjoin(MemoriList,list(Memori))
- }
- Memori<- list(Dt[1],Dt[2])
- next
- }
- if(mode(Dt)=="character"){
- Memori<- Mixjoin(Memori,Dt)
- }
- else{
- if(length(Memori)>0){
- MemoriList<- Mixjoin(MemoriList,list(Memori))
- }
- Memori<- list(Dt,GENTEN[2])
- }
- }
- MemoriList<- Mixjoin(MemoriList,list(Memori))
- for (N in 1:length(MemoriList)){
- Dt<- MemoriList[[N]]
- Ndt<- length(Dt)
- X=Op(1,Dt)
- Y=Op(2,Dt)
- Tmp<-Doscaling(c(X,Y))
- X<- Tmp[1]
- Y<- Tmp[2]
- Moji<- Op(Ndt,Dt)
- Tmp1<- Unscaling(c(X,Y+MARKLEN))
- Tmp2<- Unscaling(c(X,Y-MARKLEN))
- Fd<- Listplot(c(Tmp1,Tmp2))
- Drwline(Fd)
- if(Ndt==3){
- Tmp<-Unscaling(c(X,Y-MARKLEN))
- Expr(Tmp,"s",Moji)
- }
- if(Ndt==4){
- Houkou<- Op(3,Dt)
- Tmp<-grep("s",Houkou)
- if(length(Tmp)>0){
- Tmp<-Unscaling(c(X,Y-MARKLEN))
- Expr(Tmp,Houkou,Moji)
- }
- else{
- Tmp<- Unscaling(c(X,Y+MARKLEN))
- Expr(Tmp,Houkou,Moji)
- }
- }
- cat("%\n",file=Wfile,append=TRUE)
- }
-}
-
-#############################################
-# 2013.08.07
-
-Integrate<- function(Fs,Vs, Intv){
- if(is.function(Fs)){
- Fn<- Fs
- }
- else{
- Str<- paste("Fn<- function(",Vs, ") ", Fs, sep="")
- eval(parse(text=Str))
- }
- Tmp<- integrate(Fn, Intv[[1]], Intv[[2]])
- Out<- Tmp[[1]]
- return(Out)
-}
-
-#############################################
-
-Intersectcrvs<-function(...)
-{
- varargin<-list(...)
- Nargs<-length(varargin)
- Eps<-10^(-4)
- Tmp<-varargin[[Nargs]]
- if(mode(Tmp)=="numeric" && length(Tmp)==1)
- {
- Eps<-Tmp
- }
- G1<-varargin[[1]]
- if(mode(G1)=="numeric")
- {
- G1<-list(G1)
- }
- G2<-varargin[[2]]
- if(mode(G2)=="numeric")
- {
- G2<-list(G2)
- }
- PL<-list()
- for (N in 1:length(G1))
- {
- for (M in 1:length(G2))
- {
- KL<-IntersectcrvsPp(G1[[N]],G2[[M]],Eps)
- for (I in Looprange(1,length(KL)))
- {
- Tmp<-KL[[I]]
- P<-Tmp[1]
- PL<-append(PL,P)
- }
- }
- }
- return(PL)
-}
-
-###########################################
-
-IntersectcrvsPp<-function(...)
-{
- varargin<-list(...)
- Nargs<-length(varargin)
- G1<-varargin[[1]]; G2<-varargin[[2]]
- Eps<- 10.0^(-4)
- if(Nargs>2) Eps<-varargin[[3]]
- SqEps<- 10.0^(-10)
- Eps2<- 0.1
- if(Nargs>3) Eps2<-varargin[[4]]
- Data1<-G1
- Data2<-G2
- if(Nrow(Data1)==Nrow(Data2))
- {
- Tmp<-seq(Nrow(Data2),1, by=-1)
- Tmp1<-Data2[Tmp,]
- Eps0<-10^(-6)
- Tmp2<-Norm(Data1-Data2)
- Tmp3<-Norm(Data1-Tmp1)
- if(Tmp2<Eps0||Tmp3<Eps0)
- {
- KL<-list()
- return(KL)
- }
- }
- KL1<-list()
- KL2<-list()
- for (I in Looprange(1,Nrow(Data1)-1))
- {
- A<-Data1[I,]
- B<-Data1[I+1,]
- for (J in Looprange(1,Nrow(Data2)-1))
- {
- P<-Data2[J,]; Q<-Data2[J+1,]
- Tmp<-Koutenseg(A,B,P,Q,Eps,Eps2)
- if(mode(Tmp)=="list")
- {
- if(Tmp[[3]]==0)
- {
- Tmp1<-list(Tmp[[1]],Tmp[[2]],I,J)
- KL1<-append(KL1,list(Tmp1))
- }
- else
- {
- Tmp2<-list(Tmp[[1]],Tmp[[2]],I,J)
- KL2<-append(KL2, list(Tmp2))
- }
- }
- }
- }
- KL<-list()
- if(length(KL1)>0)
- {
- Tmp<-KL1[[1]]
- P<-Tmp[[1]]
- T<-Tmp[[2]]
- I<-Tmp[[3]]
- J<-Tmp[[4]]
- Tmp<-list(P,I+T,J)
- KL<-list(Tmp)
- }
- for (N in Looprange(2,length(KL1)))
- {
- Tmp<-KL1[[N]]
- P<-Tmp[[1]]
- Flg<-0
- for (K in 1:length(KL))
- {
- if(1>length(KL)) break
- Tmp<-KL[[K]]
- if(Norm(P-Tmp[[1]])^2<SqEps)
- {
- Flg<-1
- break
- }
- }
- if(Flg==0)
- {
- Tmp<-KL1[[N]]
- T<-Tmp[[2]]
- I<-Tmp[[3]]
- J<-Tmp[[4]]
- Tmp<-list(P,I+T,J)
- KL<-append(KL,list(Tmp))
- }
- }
- for (N in Looprange(1,length(KL2)))
- {
- Tmp<-KL2[[N]]
- P<-Tmp[[1]]
- Flg<-0
- for (K in Looprange(1,length(KL)))
- {
- Tmp<-KL[[K]]
- if(Norm(P-Tmp[[1]])^2<SqEps)
- {
- Flg<-1
- break
- }
- }
- if(Flg==0)
- {
- Tmp<-KL2[[N]]
- T<-Tmp[[2]]
- T<-min(max(T,0),1)
- I<-Tmp[[3]]
- J<-Tmp[[4]]
- Tmp<-list(P,I+T,J)
- KL<-append(KL,list(Tmp))
- }
- }
- return(KL)
-}
-
-###########################################
-# 13.12.20 debugged
-
-Invdashline<- function(...)
-{
- varargin<- list(...)
- Nargs<- length(varargin)
- Nall<- Nargs; Sen<- 1 ; Gap<- 1
- Tmp<- varargin[[Nall]]
- if(is.numeric(Tmp) && length(Tmp)==1 && Tmp>0){ # 13.12.20
- Tmp1<- varargin[[Nall-1]]
- if(is.numeric(Tmp1) && length(Tmp1)==1 && Tmp1>0){ # 13.12.20
- Sen<- Tmp1; Gap<- Tmp
- Nall<- Nall-2
- }
- else{
- Sen<- Tmp; Gap<- Sen
- Nall<- Nall-1
- }
- }
- Sen<- 1000/2.54/MilliIn*Sen
- Gap<- 1000/2.54/MilliIn*Gap
- for (N in Looprange(1,Nall)){
- Figdata<- varargin[[N]]
- Makehasen(Figdata,Sen,Gap,1)
- }
-}
-
-#########################################
-
-Invert<- function(Pd)
-{
- OutL=Pd[nrow(Pd):1,]
- return(OutL)
-}
-
-############################################
-
-InWindow<-function(PA)
-{
- Eps<-10.0^(-6);
- if((length(PA)==2)&(is.numeric(PA))){ # 17.11.20
- X<-PA[1]; Y<-PA[2];
- if(X>XMIN-Eps && X<XMAX+Eps && Y>YMIN-Eps && Y<YMAX+Eps)
- Rx<-"i"
- else
- Rx<-"o"
- return(Rx)
- }else{
- return("o")
- }
-}
-
-#######################################
-
-Joincrvs<- function(...)
-{
- varargin<- list(...)
- Nall<- length(varargin)
- Eps<- 10^(-4)
- Tmp<- varargin[[Nall]]
- if(mode(Tmp)=="numeric" && length(Tmp)==1){
- Eps<- Tmp
- Nall<- Nall-1
- }
- QdL<- Flattenlist(varargin[1:Nall]) # 11.06.25
- if(length(QdL)==0){
- PtL<-c()
- return(PtL)
- }
- PtL<- Op(1,QdL)
- for (I in Looprange(2,length(QdL))){
- Qd<- Op(I,QdL)
- if(Numptcrv(Qd)<=1){next} # 11.06.25
- P<- Ptend(PtL)
- S<- Ptstart(PtL)
- Q<- Ptstart(Qd)
- R<- Ptend(Qd)
- MN<- min(Norm(P-Q),Norm(P-R),Norm(S-Q),Norm(S-R))
- if(MN==Norm(P-R)){
- Qd<- Invert(Qd)
- }
- else if(MN==Norm(S-Q)){
- PtL=Invert(PtL)
- }
- else if(MN==Norm(S-R)){
- PtL<- Invert(PtL)
- Qd<- Invert(Qd)
- }
- if(MN>Eps){
- PtL<- Appendrow(PtL,Qd)
- }
- else{
- if(is.null(nrow(Qd))){ Qd<- as.matrix(Qd,nrow=1)}
- PtL<- Appendrow(PtL,Qd[2:nrow(Qd),]) # 11.06.25
- }
- }
- return(PtL)
-}
-
-########################################
-# 2011.11.02
-
-Joingraphics<- function(...)
-{
- varargin<- list(...)
- Ls<- Flattenlist(varargin)
- N<- length(Ls)
- Tp<- Ls[[N]]
- Listflg<- 0
- if( is.character(Tp)){
- Tmp<- toupper(substr(Tp,1,1))
- if(Tmp=="L"){
- Listflg<- 1
- }
- N<- N-1
- Ls<- Ls[1:N]
- }
- if(Listflg==1){
- P<- Ls
- }
- else{
- P<- c()
- for (I in 1:N){
- Tmp<- Ls[[I]]
- P<- Appendrow(P,c(Inf,Inf))
- P<- Appendrow(P,Tmp)
- }
- P<- P[2:nrow(P),]
- }
- return(P)
-}
-
-########################################
-
-Kouten<- function(PA,V,P,Q)
-{
- Eps<- 10.0^(-6)
- A1<- PA[1]; A2<- PA[2]
- V1<- V[1]; V2<- V[2]
- P1<- P[1]; P2<- P[2]
- U1<- Q[1]-P1; U2<- Q[2]-P2
- Tmp<- Norm(P-Q)*Norm(V)
- if(Tmp==0)
- {
- Out<- list(Inf,-Inf)
- return(Out)
- }
- D<- U1*V2-U2*V1
- if(abs(D)/Tmp<Eps)
- {
- Out<- list(Inf,-Inf)
- return(Out)
- }
- S<- ((-A2+P2)*V1+(A1-P1)*V2)/D
- if(S>1+Eps || S<Eps)
- {
- Out<-list(Inf,-Inf)
- return(Out)
- }
- T<- ((-A2+P2)*U1+(A1-P1)*U2)/D
- Tmp<- PA+T*V
- Out<- list(T,Tmp,sign(D))
- return(Out)
-}
-
-##########################################
-
-KoutenList<- function(PA,V,Bdy)
-{
- Eps<-10.0^(-6)
- TenL<-list()
- for (N in 1:length(Bdy))
- {
- KL<- Op(N,Bdy)
- for (K in Looprange(1, Nrow(KL)-1))
- {
- P<- Op(K,KL); Q<- Op(K+1,KL)
- if(P!="/" && Q!="/")
- {
- Tmp<- Kouten(PA,V,P,Q);
- if(Tmp[[1]]!=Inf)
- {
- Ten<- append(Tmp,N)
- Flg<- 0
- NN<- length(TenL)
- I<- 1
- while (Flg==0 && I<=NN)
- {
- Tmp<- Op(I,TenL)
- if(Op(1,Ten)<Op(1,Tmp)-Eps)
- {
- Tmp1<- TenL[Looprange(1,I-1)]
- Tmp2<- TenL[Looprange(I,length(TenL))]
- TenL<- Mixjoin(Tmp1,list(Ten),Tmp2)
- Flg<-1
- }
- else
- if(Op(1,Ten)<Op(1,Tmp)+Eps)
- {
- if(Op(4,Ten)!=Op(4,Tmp))
- {
- Tmp1<- TenL[Looprange(1,I-1)]
- Tmp2<- TenL[Looprange(I,length(TenL))]
- TenL<- Mixjoin(Tmp1,list(Ten),Tmp2)
- Flg<-1
- }
- else
- if(Op(3,Ten)!=Op(3,Tmp))
- {
- Tmp1<- TenL[Looprange(I,I-1)]
- Tmp2<- TenL[Looprange(I+1,length(TenL))]
- TenL<- Mixjoin(Tmp1,Tmp2)
- }
- Flg<- 1
- }
- I<- I+1
- }
- if(Flg==0)
- {
- TenL<- Mixjoin(TenL,list(Ten))
- }
- }
- }
- }
- }
- return(TenL)
-}
-
-##########################################
-
-Koutenseg<-function(...)
-{
- #pointdata on AB at which AB intersects CD
- varargin<-list(...)
- Nargs<-length(varargin)
- Eps0 <- 10^(-4)
- A<-varargin[[1]]; V<-varargin[[2]]-A
- Sv2 <- V[1]^2+V[2]^2
- if(Sv2<10^(-6))
- {
- Out<-Inf
- return(Out)
- }
- P<-varargin[[3]]-A; Q<-varargin[[4]]-A
- Eps <- 10.0^(-3)
- if(Nargs>=5)
- {
- Eps<-varargin[[5]]
- }
- Eps2 <- 0.2
- if(Nargs>=6)
- {
- Eps2<-varargin[[6]]
- }
- Eps<-min(Eps2,Eps/sqrt(Sv2))
- P1<-(P[1]*V[1]+P[2]*V[2])/Sv2
- P2<-(-P[1]*V[2]+P[2]*V[1])/Sv2
- Q1<-(Q[1]*V[1]+Q[2]*V[2])/Sv2
- Q2<-(-Q[1]*V[2]+Q[2]*V[1])/Sv2
- m1 <- -Eps; M1 <- 1+Eps
- m2 <- -Eps; M2 <- Eps
- if(max(P1,Q1)<m1 || min(P1,Q1)>M1)
- {
- Out<-Inf
- return(Out)
- }
- if(max(P2,Q2)<m2 || min(P2,Q2)>M2)
- {
- Out<-Inf
- return(Out)
- }
- if(P2*Q2<0)
- {
- T<- P1-(Q1-P1)/(Q2-P2)*P2
- if(T>m1 && T<M1)
- {
- if(T > -Eps0 && T<1+Eps0)
- {
- Tmp1<-A+T*V
- Tmp2<-min(max(T,0),1)
- Out<-list(Tmp1,Tmp2,0)
- }
- else
- {
- Tmp1<-A+T*V
- Tmp2<-min(max(T,0),1)
- Out<-list(Tmp1,Tmp2,1)
- }
- return(Out)
- }
- if(P1<m1 || P1>M1 || P2<m2 || P2>M2)
- {
- if(Q1<m1 || Q1>M1 || Q2<m2 || Q2>M2)
- {
- Out<-Inf
- return(Out)
- }
- T<-min(max(Q1,0),1)
- Tmp=A+T*V
- Out<-list(Tmp,T,1)
- return(Out)
- }
- T<-min(max(P1,0),1)
- Tmp<-A+T*V
- Out<-list(Tmp,T,1)
- return(Out)
- }
- if(P1> -Eps0 && P1<1+Eps0 && P2> -Eps0 && P2 < Eps0)
- {
- T<- P1
- Tmp<- A+T*V
- Out<- list(Tmp, T, 0)
- return(Out)
- }
- if(Q1> -Eps0 && Q1<1+Eps0 && Q2> -Eps0 && Q2<Eps0)
- {
- T<- Q1
- Tmp<-A+T*V
- Out<- list(Tmp,T,0)
- return(Out)
- }
- if(P1<m1 || P1>M1 || P2<m2 || P2>M2)
- {
- if(Q1<m1 || Q1>M1 || Q2<m2 || Q2>M2)
- {
- Out<-Inf
- return(Out)
- }
- T<-min(max(Q1,0),1)
- Tmp<-A+T*V
- Out<-list(Tmp,T,1)
- return(Out)
- }
- if(Q1<m1 || Q1>M1 || Q2<m2 || Q2>M2)
- {
- T<-min(max(P1,0),1)
- Tmp<-A+T*V
- Out<-list(Tmp,T,1)
- return(Out)
- }
- if(abs(P2)<abs(Q2))
- {
- T<-min(max(P1,0),1)
- }
- else
- {
- T<-min(max(Q1,0),1)
- }
- Tmp<A+T*V
- Out<-list(Tmp,T,1)
- return(Out)
-}
-
-##########################################
-
-Kukeiwake<- function(PL)
-{
- Eps<-10.0^(-6)
- NW<- c(XMIN,YMAX); SW<-c(XMIN,YMIN)
- SE<- c(XMAX,YMIN); NE<-c(XMAX,YMAX)
- Tmp<-matrix(c(NW,SW,SE,NE,NW),nrow=2)
- Sikaku<- t(Tmp)
- Kt<- IntersectcrvsPp(PL,Sikaku)
- if(length(Kt)!=2)
- {
- print("not two points")
- return(c())
- }
- Tmp<- Op(1,Kt)
- Pt1<- Op(1,Tmp)
- N1<- trunc(Op(2,Tmp))
- M1<- Op(3,Tmp)
- Tmp<- Op(2,Kt)
- Pt2<- Op(1,Tmp)
- N2<- trunc(Op(2,Tmp))
- M2<- Op(3,Tmp)
- T1<- Paramoncurve(Pt1,M1,Sikaku) #18.02.06
- T2<- Paramoncurve(Pt2,M2,Sikaku)
- QL<c()
- if(Norm(Pt1-Op(N1+1,PL))>Eps)
- {
- QL<-Pt1
- }
- Tmp<-Appendrow(QL,PL[(N1+1):N2,])
- QL<- Tmp
- if(Norm(Pt2-Op(N2,PL))>Eps)
- {
- Tmp<-Appendrow(QL,Pt2)
- QL<- Tmp
- }
- HidariL<- QL
- Ms<- M2+1; Me<- M1
- if(T1<T2+Eps) Me<- M1+4
- for (M in Looprange(Ms,Me))
- {
- Tmp<- Op(Nrow(HidariL),HidariL)
- P<-Op(((M-1) %% 4)+1,Sikaku)
- if(Norm(Tmp-P)>Eps)
- {
- Tmp<-Append(HidariL,P)
- HidariL<-Tmp
- }
- }
- Tmp<- Op(Nrow(HidariL),HidariL)
- if(Norm(Tmp-Pt1)>Eps)
- {
- Tmp<-Append(HidariL,Pt1)
- HidariL<-Tmp
- }
- MigiL<- QL
- Ms<- M2; Me<- M1+1
- if(T1>T2-Eps) Me<- Me-4
- for (Mm in Looprange(Me,Ms))
- {
- M<- Me+Ms-Mm
- Tmp<- Op(Nrow(MigiL),MigiL)
- P<- Op(((M-1) %% 4)+1,Sikaku)
- if(Norm(Tmp-P)>Eps)
- {
- Tmp<-Appendrow(MigiL,P)
- MigiL<-Tmp
- }
- }
- Tmp<- Op(Nrow(MigiL),MigiL)
- if(Norm(Tmp-Pt1)>Eps)
- {
- Tmp<-Appendrow(MigiL,Pt1)
- MigiL<-Tmp
- }
- Out<- list(HidariL,MigiL)
- return(Out)
-}
-
-###################################
-# 17.09.24 Eps
-
-Kyoukai<- function(...)
-{
- varargin<- list(...)
- Nargs<- length(varargin)
- Eps0<- 10^(-7)
- DataL<-list()
- for (I in 1:Nargs){
- Tmp<- varargin[[I]]
- if(mode(Tmp)=="numeric"){
- DataL<- Mixjoin(DataL,list(list(Tmp)))
- }
- if(mode(Tmp)=="list"){
- if(mode(Tmp[[1]])!="list"){
- DataL<- Mixjoin(DataL, list(Tmp))
- }
- else{
- DataL<-Mixjoin(DataL,Tmp)
- }
- }
- }
- Eps<- 10.0^(-4) #17.09.24
- PLall<- list()
- Sflg<- 0
- N<- length(DataL)
- for (I in 1:N){
- Data<- Op(I, DataL)
- Tmp<- Op(length(Data),Data)
- if(mode(Tmp)=="numeric" && Nrow(Tmp)==1 && length(Tmp)>1){
- Rg<-Tmp ; Nd<-length(Data)-1
- }
- else{
- if(mode(Tmp)=="character"){
- Rg<- Tmp ; Nd<-length(Data)-1
- }
- else{
- Rg<- "c" ; Nd<-length(Data)
- }
- }
- for (J in Looprange(1,Nd)){
- Tmp<- Op(J,Data)
- if(mode(Tmp)=="character"){
- Rg<- Tmp
- next
- }
- Points<- Tmp
- P1<- Ptstart(Points)
- P2<- Ptend(Points)
- if(J==1){
- PL<- Points
- Pfirst<- P1
- Plast<- P2
- if(Nd>=2){
- Tmp<- Data[[2]]
- P<- Ptstart(Tmp)
- Q<- Ptend(Tmp)
- if(Norm(P2-P)>Eps && Norm(P2-Q)>Eps){
- Tmp< Nrow(PL)
- PL<-PL[Tmp:1,]
- Pfirst<- Ptstart(PL)
- Plast<- Ptend(PL)
- }
- }
- }
- else{
- if(Norm(P1-Plast)<Eps){
- Stp<-1; Ks<-2; Ke=Nrow(Points)
- }
- else{
- if(Norm(P2-Plast)<Eps) {
- Stp<- -1; Ks<-Nrow(Points)-1; Ke=1
- }
- else{
- Tmp<-Appendrow(PL,c(Inf,Inf),Points)
- PL<- Tmp
- Sflg<- 1
- Pfirst<- P1
- Plast<- P2
- Stp<- 1; Ks<- Nrow(Points)-1; Ke<- 1
- }
- }
- for (K in seq(Ks,Ke, by=Stp)){
- Tmp<- Appendrow(PL,Op(K,Points))
- PL<-Tmp
- }
- Plast<- Op(Ke,Points)
- }
- }
- if(Norm(Pfirst-Plast)>Eps){
- Np<- Nrow(PL)
- if(Rg=="c"){
- Tmp<- Appendrow(PL,Pfirst)
- PL<- Tmp
- }
- else if(Rg=="s"){
- Tmp<- c(PL[1:Np,2],YMIN)
- Y<- min(Tmp)-1
- P<- c(Plast[1],Y); Q<- c(Pfirst[1],Y)
- Tmp<- Appendrow(PL,P,Q,Pfirst)
- PL<- Tmp
- }
- else if(Rg=="n"){
- Tmp<- c(PL[1:Np,2],YMAX)
- Y<-max(Tmp)+1
- P<- c(Plast[1],Y); Q<- c(Pfirst[1],Y)
- Tmp<- Appendrow(PL,P,Q,Pfirst)
- PL<- Tmp
- }
- else if(Rg=="w"){
- Tmp<- c(PL[1:Np,1],XMIN)
- X<- min(Tmp)-1
- P<- c(X,Plast[2]); Q<- c(X,Pfirst[2])
- Tmp<- Appendrow(PL,P,Q,Pfirst)
- PL<- Tmp
- }
- else if(Rg=="e"){
- Tmp<- c(PL[1:Np,1],XMAX)
- X<- max(Tmp)+1
- P<- c(X,Plast[2]); Q<- c(X,Pfirst[2])
- Tmp<- Appendrow(PL,P,Q,Pfirst)
- PL<- Tmp
- }
- else if(mode(Rg)=="numeric" && Nrow(Rg)==1 && length(Rg)>1){
- Tmp<- Kukeiwake(PL)
- Tmp1<- Op(1,Tmp)
- Tmp2<- Naigai(Rg,list(Tmp1))
- if(Tmp2==c(1)){
- PL<-Op(1,Tmp)
- }
- else{
- PL<- Op(2,Tmp)
- }
- }
- }
- Tmp<- Ptstart(PL)
- for (J in 2:Nrow(PL)){
- P<- Op(J,PL)
- Q<- Op(Nrow(Tmp),Tmp)
- if(Norm(P-Q)>Eps){
- Tmp1<-Appendrow(Tmp,P)
- Tmp<-Tmp1
- }
- }
- PL<-Tmp
- PLall<-Mixjoin(PLall,list(PL))
- }
- if(length(PLall)==1 && Sflg==0){
- Tmp<- Op(1,PLall)
-# Tmp<- Op(1,Tmp)
- if(Norm(Ptstart(Tmp)-Ptend(Tmp))>Eps0){
- Tmp1<- Appendrow(Tmp,Ptstart(Tmp))
- PLall<- list(Tmp1)
- }
- }
- return(PLall)
-}
-
-######################################
-
-Letter<-function(...)
-{ ## Scaling is implemented
- varargin<-list(...)
- Nargs<-length(varargin)
- Irng<-c(seq(from=1,to=Nargs,by=3))
- for (I in Irng)
- {
- Tmp<-varargin[[I]]
- P<- Doscaling(Tmp)
- X<-P[1]
- Y<-P[2]
- Houkou<-varargin[[I+1]]
- Mojiretu<-varargin[[I+2]]
- Hset<-Houkou
- Vhoko<-"c"
- if(length(grep("n",Hset))>0)
- {
- Vhoko<-"n"; Y<-Y+MEMORI
- }
- if(length(grep("s",Hset))>0)
- {
- Vhoko<-"s"; Y<-Y-MEMORI
- }
- Hhoko<-"c"
- if(length(grep("e",Hset))>0)
- {
- Hhoko<-"e"; X<-X+MEMORI
- }
- if(length(grep("w",Hset))>0)
- {
- Hhoko<-"w"; X<-X-MEMORI
- }
- Hoko<-paste(Vhoko,Hhoko,sep="")
- Suu<-"+-.0123456789"
- SuuL<-Suu
- J<-1; Dstr<-""
- while (J<=nchar(Houkou))
- {
- Tmp<-substring(Houkou,J,J)
- if(length(grep(Tmp,SuuL))>0)
- {
- if(Dstr=="") Hk<-substring(Houkou,J-1,J-1)
- Dstr<-paste(Dstr,Tmp,sep="")
- }
- else
- {
- if(Dstr!="")
- {
- Nmbr<-as.numeric(Dstr)
- D<-Nmbr*MEMORI
- if(Hk=="n") Y<-Y+D
- if(Hk=="s") Y<-Y-D
- if(Hk=="e") X<-X+D
- if(Hk=="w") X<-X-D
- Dstr<-""
- }
- }
- J<-J+1
- }
- if(Dstr!="")
- {
- Nmbr<-as.numeric(Dstr)
- D<-Nmbr*MEMORI;
- if(Hk=="n") Y<-Y+D
- if(Hk=="s") Y<-Y-D
- if(Hk=="e") X<-X+D
- if(Hk=="w") X<-X-D
- }
- CalcWidth(Hoko,Mojiretu)
- CalcHeight(Hoko,Mojiretu)
- cat("\\put(",file=Wfile,append=TRUE)
- Tmp1<- sprintf("%7.7f",X) # 11.07.19
- Tmp2<- sprintf("%7.7f",Y) # 11.07.19
- Str<-paste(Tmp1,",",Tmp2,sep="")
- cat(Str,file=Wfile,append=TRUE)
- Tmp<-"){\\hspace*{\\Width}"
- Str<-paste(Tmp,"\\raisebox{\\Height}{",Mojiretu,"}}%\n",sep="")
- cat(Str,file=Wfile,append=TRUE)
- cat("%\n",file=Wfile,append=TRUE)
- }
-}
-
-######################################################
-
-Letterrot<- function(...)
-{
- varargin<- list(...)
- P<- varargin[[1]]
- V<- varargin[[2]]; N<- 3
- P<- Doscaling(P)
- V<- Doscaling(V)
- Tmov<- 0
- Tmp<- varargin[[N]]
- if(mode(Tmp)=="numeric"){
- Tmov<- Tmp; N<- N+1
- }
- Nmov<- 0
- Tmp<- varargin[[N]]
- if(mode(Tmp)=="numeric"){
- Nmov<- Tmp; N<- N+1
- }
- Mojiretu<- Assign(varargin[[N]]) #2017.11.26
- Tv<- 1/Norm(V)*V
- Nv<- c(-Tv[2],Tv[1])
- P<- P+MEMORI*Tmov*Tv+MEMORI*Nmov*Nv
- Tmp<- acos(V[1]/Norm(V))
- Theta<- round(Tmp*180/pi)
- if(V[2]>=0){
- Units<- ""
- }
- else{
- Units<- "units=-360,"
- }
- Tmp<- paste("\\rotatebox[",Units,"origin=c]{",as.character(Theta),sep="")
- Tmp<- paste(Tmp,"}{",Mojiretu,"}",sep="")
- Letter(P,"c",Tmp)
-}
-
-###################################
-# 10.12.04
-
-Lineplot<-function(...)
-{
- varargin <- list(...)
- Nargs<-length(varargin)
- A<-varargin[[1]]
- if(is.numeric(A)) {
- Tmp<-length(A)
- if(Tmp>3) {
- B <- A[(Tmp/2+1):Tmp]
- A <- A[1:(Tmp/2)]
- Is <- 2
- }
- else {
- B<-varargin[[2]]
- Is <- 3
- }
- }
- else {
- B<-A[[2]]
- A<-A[[1]]
- Is <- 2
- }
- Mag <- 100 ; Semi <- "" ## 10.12.04
- for (I in Looprange(Is,Nargs)) {
- Tmp <- varargin[[I]]
- switch ( mode(Tmp),
- "numeric"= Mag <- Tmp,
- "character"= Semi <- Tmp
- )
- }
-V<- Mag/Norm(B-A)*(B-A) ## 10.12.04 from here
- if(Semi=="") {
- Out<- Listplot(c(A-V,A+V))
- }
- else if(Semi=="+") {
- Out<- Listplot(c(A,A+V))
- }
- else {
- Out<- Listplot(c(A-V,A))
- } ## 10.12.04 to here
- return(Out)
-}
-
-################################
-
-Listplot<-function(...)
-{
- varargin<-list(...);
- Z<-c();
- for (I in 1:length(varargin))
- {
- Data<-varargin[[I]];
- if(mode(Data)=="numeric")
- {
- if(class(Data)=="numeric")
- {
- Tmp<-matrix(Data,nrow=2);
- Tmp<-t(Tmp);
- Z<-Appendrow(Z,Tmp)
- }
- else
- Z<-Appendrow(Z,Data)
- }
- else
- {
- for (J in 1:length(Data))
- {
- Tmp<-Data[[J]];
- Z<-Appendrow(Z,Tmp)
- }
- }
- }
- return(Z)
-}
-
-##############################
-
-MakeBowdata <- function(PA,PB,H)
-{
- Eps <- 10^(-5)
- BOWSTART <<- PA
- BOWEND <<- PB
- D <- 1/2*Norm(PB-PA)
- R <- (H^2+D^2)/(2*H)
- A1 <- PA[1]; A2<-PA[2]
- B1 <- PB[1]; B2<-PB[2]
- if(abs(A2-B2)>Eps){
-# x <- poly(0,"X")
-# y <- -(A1-B1)*x/(A2-B2)+(1/2)*(A1^2+A2^2-B1^2-B2^2)/(A2-B2)
-# Eq1 <- (A1-x)^2+(A2-y)^2-R^2
-# Tmp <- coeff(Eq1)
-# C0 <- Tmp[1]; C1<-Tm[2]; C2<-Tmp[3]
- C0<- A1^2+(A2-(1/2)*(A1^2+A2^2-B1^2-B2^2)/(A2-B2))^2-R^2
- C1<- -(A1+B1)*(A2^2+B2^2-2*A2*B2-2*A1*B1+A1^2+B1^2)/(A2-B2)^2
- C2<- 1+(A1-B1)^2/(A2-B2)^2
- Det <- sqrt(C1^2-4*C0*C2)
- Ansx1 <- (-C1+Det)/(2*C2)
- Ansx2 <- (-C1-Det)/(2*C2)
- Tmp <- -(A1-B1)*Ansx1/(A2-B2)+(1/2)*(A1^2+A2^2-B1^2-B2^2)/(A2-B2)
- PC <- c(Ansx1,Tmp)
- Tmp <--(A1-B1)*Ansx2/(A2-B2)+(1/2)*(A1^2+A2^2-B1^2-B2^2)/(A2-B2)
- PC2 <- c(Ansx2,Tmp)
- }
- else{
- Tmp <- 0.5*(PA+PB)
- PC <- Tmp+c(0,R-H) # 11.06.02
- PC2 <- Tmp-c(0,R-H)
- }
- VA <- PA-PC
- VB <- PB-PC
- if(VA[1]*VB[2]-VA[2]*VB[1]<0) {
- PC <- PC2
- }
- AngA <- acos((PA[1]-PC[1])/R)
- if(PA[2]-PC[2]<0){
- AngA <- -AngA
- }
- AngB <- acos((PB[1]-PC[1])/R)
- if(PB[2]-PC[2]<0){
- AngB <- -AngB
- }
- if(AngA>AngB) {
- AngB <- AngB+2*pi
- }
- Out <- list(PC,R,AngA,AngB)
- return(Out)
-}
-
-####################################################
-
-MakeCurves<-function(...){ ## Scaling is implemented
- varargin<-list(...)
- Figdata<-varargin[[1]]
- if(class(Figdata)=="numeric"){
- Figdata<-matrix(Figdata,nrow=1)
- }
- Ptout<-1
- if(length(varargin)>=2) Ptout<-varargin[[2]]
- Eps<-10.0^(-6)
- IndM<-Dataindex(Figdata)
- Atos<-c()
- for (Nd in 1:Nrow(IndM)){
- Tmp<-IndM[Nd,]
- Motos<-Figdata[Tmp[1]:Tmp[2],]
- All<-Nrow(Motos)
- if(Nrow(Motos)==1){
- if(InWindow(Motos)=="o"){
- next
- }
- Tmp1<- as.numeric(Motos)
- if(Ptout==1){
- Drwpt(Tmp1)
- }
- else{
- Tmp1<- Doscaling(Tmp1)
- Atos<-Appendrow(Atos,c(Inf,Inf),Tmp1)
- next
- }
- }
- Crv<-c()
- for (I in Looprange(2,All)){
- P<- Op(I-1,Motos)
- Q<- Op(I,Motos)
- Snbn<-MeetWindow(P,Q)
- if(length(Snbn)==0){
- if(length(Crv)>0){
- Atos<-Appendrow(Atos,c(Inf,Inf),Doscaling(Crv))
- Crv<-c()
- }
- }
- else{
- if(Norm(Snbn[1,]-Snbn[2,])<Eps){ next} # naosi 101202
- if(length(Crv)==0){
- Crv<-Snbn
- }
- else{
- Tmp<-Op(Nrow(Crv),Crv)
- if(Norm(Tmp-Op(1,Snbn))<Eps){
- Crv<-Appendrow(Crv,Op(2,Snbn))
- }
- else{
- Atos<-Appendrow(Atos,c(Inf,Inf),Doscaling(Crv))
- Crv<-Snbn
- }
- }
- }
- }
- if(Nrow(Crv)>=2)
- {
- Atos<-Appendrow(Atos,c(Inf,Inf),Doscaling(Crv))
- }
- }
- Outdata<-Atos[2:Nrow(Atos),]
- if(class(Outdata)=="numeric")
- {
- Outdata<-matrix(Outdata,nrow=1)
- }
- return(Outdata)
-}
-
-######################################
-
-Makehasen<- function(Figdata,Sen,Gap,Ptn)
-{
- Eps<- 10.0^(-6)
- Clist<- MakeCurves(Figdata)
- DinM<- Dataindex(Clist)
- for (N in Looprange(1,Nrow(DinM))){
- Tmp<- DinM[N,]
- Data<- Clist[Tmp[1]:Tmp[2],]
- Dtall<- Nrow(Data)
- Len<- 0
- Lenlist<- c(0)
- for (I in Looprange(2,Dtall)){
- Len<- Len+Norm(Data[I,]-Data[I-1,])
- Lenlist<- c(Lenlist,Len)
- }
- Lenall<- Lenlist[Dtall]
- if(Lenall==0){
- next
- }
- Kari<- (Sen+Gap)*0.1
- Naga<- Sen*0.1
- Tobi<- Gap*0.1
- if(Norm(Data[1,]-Data[Dtall,])<Eps){
- Nsen<- max(ceiling(Lenall/Kari),3)
- SegUnit<- Lenall/Nsen
- Naga<- SegUnit*Sen/(Sen+Gap)
- Tobi<- SegUnit*Gap/(Sen+Gap)
- SegList<- c(seq(0,(Nsen-1)*SegUnit,by=SegUnit))
- }
- else{
- if(Ptn==0){
- Nsen<- max(ceiling((Lenall+Tobi)/Kari),3)
- SegUnit<- Lenall*(Sen+Gap)/(Nsen*Sen+(Nsen-1)*Gap)
- Naga<- SegUnit*Sen/(Sen+Gap)
- Tobi<- SegUnit*Gap/(Sen+Gap)
- SegList<- c(seq(0,(Nsen-1)*SegUnit,by=SegUnit))
- }
- else{
- Nsen<- max(ceiling((Lenall+Naga)/Kari),3)
- SegUnit<- Lenall*(Sen+Gap)/((Nsen-1)*Sen+Nsen*Gap)
- Naga<- SegUnit*Sen/(Sen+Gap)
- Tobi<- SegUnit*Gap/(Sen+Gap)
- SegList<- c(seq(Tobi,Tobi+(Nsen-2)*SegUnit,by=SegUnit))
- }
- }
- Hajime<- 1; Owari<- 1
- Mojisu<- 0
- for (I in Looprange(1,length(SegList))){
- Len<- SegList[I]
- J<- Owari
- while (Len>=Lenlist[J]-Eps){
- if(J==Dtall){
- break
- }
- J<- J+1
- }
- Hajime<- J-1
- J<- Hajime
- while (Len+Naga>Lenlist[J]-Eps){
- if(J==Dtall){
- break
- }
- J<- J+1
- }
- Owari<- J-1
- T<- (Len-Lenlist[Hajime])
- T<- T/(Lenlist[Hajime+1]-Lenlist[Hajime])
- P<- Data[Hajime,]+T*(Data[Hajime+1,]-Data[Hajime,])
- X<- as.character(round(MilliIn*P[1]))
- Y<- as.character(-round(MilliIn*P[2]))
- Str<- paste("\\special{pa ",X," ",Y,"}",sep="")
- cat(Str,file=Wfile,append=TRUE)
- Mojisu<- Mojisu+nchar(Str)
- for (J in Looprange(Hajime+1,Owari)){
- P<- Data[J,]
- X<- as.character(round(MilliIn*P[1]))
- Y<- as.character(-round(MilliIn*P[2]))
- Str<- paste("\\special{pa ",X," ",Y,"}",sep="")
- cat(Str,file=Wfile,append=TRUE)
- Mojisu<- Mojisu+nchar(Str)
- }
- T<- (Len+Naga-Lenlist[Owari])
- T<- T/(Lenlist[Owari+1]-Lenlist[Owari])
- P<- Data[Owari,]+T*(Data[Owari+1,]-Data[Owari,])
- X<- as.character(round(MilliIn*P[1]))
- Y<- as.character(-round(MilliIn*P[2]))
- Str1<- paste("\\special{pa ",X," ",Y,"}",sep="")
- Str2<- "\\special{fp}"
- cat(Str1,file=Wfile,append=TRUE)
- cat(Str2,file=Wfile,append=TRUE)
- Mojisu<- Mojisu+nchar(Str1)+nchar(Str2)
- if(Mojisu>80){
- cat("%\n",file=Wfile,append=TRUE)
- Mojisu<- 0
- }
- }
- }
- cat("%\n%\n",file=Wfile,append=TRUE);
-}
-
-######################################
-
-Makeliststr<- function(L)
-{
- Out="list("
- for (I in 1:length(L)){
- Dt<- L[[I]]
- if(mode(Dt)=="numeric"){
- if(length(Dt)==1){
- Dts<- as.character(Dt)
- }
- else{
- Dts<- "c("
- for (J in Looprange(1,Nrow(Dt))){
- for (K in 1:ncol(Dt)){
- Dts<- paste(Dts,as.character(Dt[J,K]),sep="")
- if(K< ncol(Dt)){
- Dts<- paste(Dts,",",sep="")
- }
- }
- if(J<Nrow(Dt)){
- Dts<- paste(Dts,";",sep="")
- }
- else{
- Dts<- paste(Dts,")",sep="")
- }
- }
- }
- }
- if(mode(Dt)=="character"){
- Dts<- paste(Prime(),Dt,Prime(),sep="")
- }
- if(mode(Dt)=="list"){
- Dts<- Makeliststr(Dt)
- }
- Out<- paste(Out,Dts,sep="")
- if(I<length(L)){
- Out<- paste(Out,",")
- }
- else{
- Out<- paste(Out,")",sep="")
- }
- }
- return(Out)
-}
-
-############################################
-
-Makeshasen<- function(PtnL,PA,V,Bdy)
-{
- Eps<- 10^(-6)
- TenL<- KoutenList(PA,V,Bdy)
- Nten<- length(TenL)
- Call<- length(Bdy)
- Ptn<- c(seq(0, 0, length=Call))
- Out<- list()
- GL<- c()
- Te<- -10^6
- for (I in Looprange(1,Nten-1)){
- TenP<- Op(I,TenL); TenQ<- Op(I+1,TenL)
- Ts<- Op(1,TenP)
- P<- Op(2,TenP); Q<- Op(2,TenQ)
- NC<- Op(4,TenP)
- Tmp<- (Op(NC,Ptn)+1) %% 2
- Ptn[NC]<- Tmp
- if(Op(1,TenQ)-Ts>Eps){
- if(Member(Ptn,PtnL)){
- if(abs(Te-Ts)>Eps){
- if(Nrow(GL)>0){
- Tmp<- Mixjoin(Out, list(GL))
- Out<- Tmp
- }
- GL<- Listplot(P,Q)
- }
- else{
- Tmp <- Appendrow(GL, Q)
- GL<- Tmp
- }
- Te<- Op(1,TenQ)
- }
- }
- }
- if(Nrow(GL)>0){
- Tmp<- Mixjoin(Out, list(GL))
- Out<- Tmp
- }
- return(Out)
-}
-
-#############################################
-
-Mawarikomi<- function(...)
-{
- varargin<- list(...)
- haba<- "10cm"
- Nargs<- length(varargin)
- if(Nargs>0){
- haba<- varargin[[1]]
- }
- cat("\\begin{mawarikomi}%\n",file="",append=TRUE)
- cat("%<1>[5](0,0)%\n",file="",append=TRUE)
- Str<- paste("{",haba,"}{%\n",sep="")
- cat(Str,file="",append=TRUE)
- cat("}%\n",file="",append=TRUE)
- cat("\\end{mawarikomi}",file="",append=TRUE)
-}
-
-##############################################
-
-MeetWindow<-function(PA,PB)
-{
- if(InWindow(PA)=="i" && InWindow(PB)=="i")
- {
- R<-Appendrow(PA,PB)
- return(R)
- };
- Horner<-function(n,t)
- {
- PT<-(1-t)*PA+t*PB;
- return(PT[n])
- }
- Eps<-10.0^(-6);
- Txm<-(-1); TxM<-(-1); Tym<-(-1); TyM<-(-1);
- if(PA[1]!=PB[1])
- {
- Txm<-(XMIN-PA[1])/(PB[1]-PA[1]);
- TxM<-(XMAX-PA[1])/(PB[1]-PA[1]);
- }
- if(PA[2]!=PB[2])
- {
- Tym<-(YMIN-PA[2])/(PB[2]-PA[2]);
- TyM<-(YMAX-PA[2])/(PB[2]-PA[2]);
- }
- Tmp<-Horner(2,Txm);
- if(Tmp<YMIN-Eps || Tmp>YMAX+Eps)
- {
- Txm<-(-1);
- }
- Tmp<-Horner(2,TxM);
- if(Tmp<YMIN-Eps || Tmp>YMAX+Eps)
- {
- TxM<-(-1)
- }
- Tmp<-Horner(1,Tym);
- if(Tmp<XMIN-Eps || Tmp>XMAX+Eps)
- {
- Tym<--1
- }
- Tmp<-Horner(1,TyM);
- if(Tmp<XMIN-Eps || Tmp>XMAX+Eps)
- {
- TyM<--1
- }
- Tans<-sort(c(Txm,TxM,Tym,TyM));
- Tmp<-c();
- for (I in 1:length(Tans))
- {
- Tmp1<-Tans[I];
- if(Tmp1>-Eps && Tmp1<1+Eps)
- {
- if(length(Tmp)==0)
- {
- Tmp<-c(Tmp1);
- }
- else
- {
- if(abs(Tmp[length(Tmp)]-Tmp1)>Eps)
- {
- Tmp<-c(Tmp,Tmp1)
- }
- }
- }
- }
- Tans<-Tmp;
- if(length(Tans)==0)
- {
- R<-c();
- return(R);
- }
- if(length(Tans)==1)
- {
- Ten1<-Horner(1:2,Tans[1]);
- if(InWindow(PA)=="i")
- {
- R<-Appendrow(PA,Ten1)
- return(R)
- }
- else
- {
- R<-Appendrow(Ten1,PB)
- return(R)
- }
- }
- Ten1<-Horner(1:2,Tans[1])
- Ten2<-Horner(1:2,Tans[2])
- R<-Appendrow(Ten1,Ten2)
- return(R)
-}
-
-#########################################
-
-# New 10.03.21
-
-Mixjoin<-function(...)
-{
- varargin<-list(...)
- Nargs<- length(varargin)
- M<- list()
- for (I in 1:Nargs)
- {
- Tmp<-varargin[[I]]
- if(length(Tmp)==0) next
- if(Mixtype(Tmp)==1)
- {
- Tmp<-list(Tmp)
- }
- if(length(M)==0){
- M <- Tmp
- }
- else{
- M<- c(M,Tmp)
- }
- }
- return(M)
-}
-
-#################################
-
-Mixlength<- function(PL){
- if(length(PL)==0){
- return(0)
- }
- if(Mixtype(PL)==1){
- Out<- Nrow(PL)
- }
- else{
- Out<- length(PL)
- }
- return(Out)
-}
-
-###########################################
-
-Mixtype<- function(D)
-{
- if(mode(D)!="list") return(1)
- for (I in 1:length(D))
- {
- Tmp<- D[[I]]
- if(mode(Tmp)=="list") return(3)
- }
- return(2)
-}
-
-###########################################
-
-Naigai<- function(A,Bdy)
-{
- V<- c(1,1)
- Call<-length(Bdy)
- KL<- KoutenList(A,V,Bdy)
- Ptn<- seq(1,1,length=Call)
- for (K in Looprange(1,length(KL)))
- {
- Ten<- Op(K,KL)
- T<- Op(1,Ten); NC<- Op(4,Ten)
- if(T<0)
- {
- Tmp<- (Ptn[NC]+1) %% 2
- Ptn[NC]<- Tmp
- }
- }
- return(Ptn)
-}
-
-########################################
-
-Nearestpt<- function(...){
- varargin<- list(...)
- Nargs<- length(varargin)
- PL1<- varargin[[1]]
- if(!is.matrix(PL1)){
- Tmp<- matrix(PL1);
- PL1<- t(Tmp)
- }
- if(Nrow(PL1)==1) Flg=0
- else Flg=1
- Eps<- 10.0^(-6)
- PL<- varargin[[2]]
- Ans<- list(PL1[1,],1,PL[1,],1,Norm(PL1[1,]-PL[1,]))
- for(N in Looprange(1,Nrow(PL1))){
- PA<- PL1[N,]
- Pm<- PL[1,]
- Im<- 1
- Sm<- Norm(Pm-PA)
- for(I in Looprange(1,Nrow(PL)-1)){
- A1<- PL[I,1]; A2<-PL[I,2]
- B1<- PL[I+1,1]; B2<-PL[I+1,2]
- V1<- B1-A1; V2<-B2-A2
- X1<- PA[1]; X2<-PA[2]
- Tmp<-V2^2+V1^2
- if(abs(Tmp)<Eps) next
- T<- (-A2*V2-V1*A1+V1*X1+X2*V2)/Tmp
- if(T< -Eps){
- P<- c(A1,A2)
- }else{
- if(T>1+Eps){
- P<- c(B1,B2)
- }else{
- P<- c(A1+T*V1,A2+T*V2)
- }
- }
- S<- Norm(P-PA)
- if(S<Sm-Eps){
- Tmp<- Paramoncurve(P,I,PL)
- Pm<- P; Im<- Tmp; Sm<- S
- }
- }
- if(Sm<Op(5,Ans)) Ans<- list(PA,N,Pm,Im,Sm)
- if(Flg==0){
- Ans<- Ans[3:5]
- }
- }
- return(Ans)
-}
-
-#########################################
-
-Newlength<- function()
-{
- Tmp1<- "\\newlength{\\Width}%\n"
- Tmp2<- "\\newlength{\\Height}%\n"
- Tmp3<- "\\newlength{\\Depth}%\n"
- cat(Tmp1,file="",append=TRUE);
- cat(Tmp2,file="",append=TRUE);
- cat(Tmp3,file="",append=TRUE);
-}
-
-#########################################
-
-Numptcrv<-function(Fig)
-{
- return(Nrow(Fig))
-}
-
-# 2018.01.29
-Length<- function(Data){
- if(is.matrix(Data)){return(nrow(Data))}
- if(is.character(Data)){return(nchar(Data))}
- return(length(Data))
-}
-
-#########################################
-
-Op<-function(N,Data)
-{
- C <- c()
- if(length(Data)==0) return(C)
- if(mode(Data)=="list"){
- if(class(Data)=="data.frame"){ # 10.02.23
- C<- Data[N,]
- }
- else{
- C<- Data[[N]]
- }
- return(C)
- }
- if(mode(Data)=="character"){
- if(length(Data)==1){
- C<- substring(Data,N,N)
- }
- else{
- C<- Data[N]
- }
- return(C)
- }
- if(mode(Data)=="numeric"){
- if(class(Data)=="matrix"){
- Din<- Dataindex(Data)
- if(nrow(Din)==1){
- C<- Data[N,]
- }
- else{
- Tmp1<- Din[N,1]
- Tmp2<- Din[N,2]
- C<- Data[Tmp1:Tmp2,]
- }
- }
- else{
- C=Data[N]
- }
- }
- return(C)
-}
-
-#########################################
-# 2013.05.20 Changed ( Creator recorded)
-# 2013.12.18 Beginpicture inclued
-
-Openfile<-function(...)
-{
- varargin<- list(...)
- File<- varargin[[1]]
- Bflg<- 0
- Wfile<<- File
- Creator<- ""
- Cflg<- 0
- Nargs<- length(varargin)
- for(N in Looprange(2,Nargs)){
- Tmp<- varargin[[N]]
- Tmp1<- strsplit(Tmp,"=",fixed=TRUE)
- Tmp1<- Tmp1[[1]]
- if(length(Tmp1)>1){
- Creator<- Tmp1[2]
- Cflg<- 1
- }
- else{
- Unitstr<- Tmp
- Bflg<- 1
- }
- }
- Recentf<- ""
- Fv<- list.files()
- Nv<- grep("\\.r$", Fv)
- Rfiles<- Fv[Nv]
- StrW<- paste("%%% ",File,sep="") #17.10.28
- StrC<- paste("%%% Generator=",Creator,sep="")
- if(Cflg==0){
- }
- cat(StrW,"\n",file=Wfile)
- cat(StrC,"\n",file=Wfile,append=TRUE)
- if(Bflg==1){
- Beginpicture(Unitstr)
- }
-}
-
-#########################################
-
-Openpar<- function(...)
-{
- varargin<- list(...)
- Nargs<- length(varargin)
- Tmp<- varargin[[1]]
- Tmp1<- substr(Tmp,1,1)
- if(Tmp1=="\\"){
- Namestr<- Tmp
- N<- 2
- }
- else{
- Namestr<- "\\tmp"
- N<- 1
- }
- Habastr<- varargin[[N]]
- if(Nargs>N){
- Posstr<- paste("[",varargin[[N+1]],"]",sep="")
- }
- else{
- Posstr<- "[c]"
- }
- Openphr(Namestr)
- S<- paste("\\begin{minipage}",Posstr,"{",Habastr,"}%\n",sep="")
- cat(S,file=Wfile,append=TRUE)
-}
-
-###################################
-
-Openphr<- function(Str)
-{
- S<- paste("\\def",Str,"{%\n",sep="")
- cat(S,file=Wfile,append=TRUE)
-}
-
-#####################################
-
-Ovalbox<- function(...)
-{
- varargin<- list(...)
- Nargs<- length(varargin)
- Pos<- varargin[[1]]
- Dr<- varargin[[2]]
- StrV<- varargin[[3]]
- R<- 0.2
- NDflg<- 0
- for (I in Looprange(4,Nargs)){
- Tmp<- varargin[[I]]
- if(mode(Tmp)=="numeric"){
- R<- Tmp
- }
- else{
- if(substr(Tmp,1,1)=="-"){
- NDflg<- 1
- Tmp1<- substr(Tmp,2,nchar(Tmp))
- Cmdstr<- chartr("*","G",Tmp1)
- }
- }
- }
- Xr<- c(XMIN,XMAX)
- Yr<- c(YMIN,YMAX)
- Uv<- 0.6; Uh<- 0.8
- N<- nchar(StrV)
- W<- Uh;H<- Uv*N
- Setwindow(c(-W/2,W/2),c(-H,0))
- G<- Ovaldata(c(0,-H/2),W/2,H/2,R)
- Openphr("\\ketpictmp")
- Beginpicture("1cm")
- if(NDflg==0){
- Drwline(G)
- }
- else{
- eval(parse(text=Cmdstr))
- }
- for (I in Looprange(1,N)){
- Letter(c(0,Uv/2-Uv*I),"c",Op(I,StrV))
- }
- Endpicture(0)
- Closephr()
- Setwindow(Xr,Yr)
- Letter(Pos,Dr,"\\ketpictmp")
-}
-
-##########################################
-
-Ovaldata<- function(...) #17.09.11
-{
- varargin<- list(...)
- Nargs<- length(varargin)
- if(Nargs==1){
- Eps<- 1.0*10^(-4)
- C<- c((XMIN+XMAX)/2,(YMIN+YMAX)/2)
- Dx<- XMAX-C(1)-Eps
- Dy<- YMAX-C(2)-Eps
- N<- 1
- }
- else{
- C<- varargin[[1]]
- Dx<- varargin[[2]]
- Dy<- varargin[[3]]
- N<- 4
- }
- Rc<- 0.2
- if(N<=Nargs){ #15.11.15
- Rc<- varargin[[N]]*Rc #15.11.15
- }
- Out<- c()
- P<- C+c(Dx-Rc,Dy-Rc)
- Tmp1<- Circledata(c(P,Rc),"R=c(0,pi/2)","N=10") #17.11.29
- Tmp2<- Listplot(C+c(Dx-Rc,Dy),C+c(0,Dy))
- Tmp3<- Listplot(C+c(Dx,0),C+c(Dx,Dy-Rc))
- G<- Joincrvs(Tmp3,Tmp1,Tmp2)
- Tmp<- Reflectdata(G,c(C,C+c(0,1)))
- G<- Joincrvs(G,Tmp)
- Tmp<- Reflectdata(G,c(C,C+c(1,0)))
- Out<- Joincrvs(G,Tmp)
-}
-
-#########################################
-
-Paramark<- function(...)
-{
- varargin<- list(...)
- Nargs<- length(varargin)
- PA<- varargin[[1]]
- PB<- varargin[[2]]
- PC<- varargin[[3]]
- R<- 0.5
- if(Nargs>=4){
- R<- varargin[[4]]*R
- }
- U<- R*(PA-PB)/Norm(PA-PB)
- V<- R*(PC-PB)/Norm(PC-PB)
- if(Crossprod(PA-PB,PC-PB)!=0){
- P<- Listplot(c(PB+U,PB+U+V,PB+V))
- }
- else{
- P<- c()
- }
-}
-
-###########################################
-
-Paramoncurve<-function(...){
- varargin<-list(...)
- Nargs<-length(varargin)
- Eps<-10^(-8)
- P<-varargin[[1]]
- Gdata<-varargin[[Nargs]]
- if(Nrow(P)>1){
- Tmp<-P; P<-Gdata; Gdata<-Tmp
- }
- if(Nargs==2){
- Tmp<-Nearestpt(P,Gdata)
- Out<-Tmp[[2]]
- return(Out)
- }
- N<-varargin[[2]]
- PtL<-Gdata
- N=min(N,Length(PtL)-1) #18.02.11from
- Pa<-Ptcrv(N,PtL)
- Pb<-Ptcrv(N+1,PtL)
- V<-Pb-Pa
- W<-P-Pa
- D2<-Norm(V)^2
- if(D2<Eps) return(0)
- S<-Dotprod(V,W)/D2
- S<-min(max(S,0),1)
- Out=N+S #18.02.11upto
- return(Out)
-}
-
-##############################################
-
-Paramplot<- function(...)
-{
- varargin<- list(...)
- Eps<- 10^(-5)
- Nargs<- length(varargin)
- Fnflg<- 0
- Fnstr<- varargin[[1]]; Is=2
- Rgstr<- varargin[[Is]]; Is<- Is+1
- Range<- c(0,2*pi)
- N<- 50 # Numpoints
- E<-c() # Exclusions
- D<- Inf # Discont
- for (I in Looprange(Is,Nargs))
- {
- Tmp<- varargin[[I]]
- Tmp<- strsplit(Tmp,"=")
- K<- Tmp[[1]]
- Tmp<- K[1]
- Lhs<- substring(Tmp,1,1)
- Tmp1<- K[2]
- Str<-paste(Lhs,"=",Tmp1,sep="")
- eval(parse(text=Str))
- }
- Tmp<- strsplit(Rgstr,"=")
- K<-Tmp[[1]]
- if(length(K)>1)
- {
- Vname<- K[1]
- Tmp1<- K[2]
- Rng<- eval(parse(text=Tmp1))
- }
- else
- {
- Vname<- Rgstr
- Rng<- c(0,2*pi)
- }
- T1<- Rng[1]; T2<- Rng[2]
- Dt<- (T2-T1)/N #17.09.22
- if(Fnflg==0)
- {
- Str<- gsub(Vname,"t",Fnstr)
- }
- if(abs(Dt)<Eps){ # 16.12.13
- t=T1
- P=eval(parse(text=Str))
- return(P)
- }
- P<-c()
- if(length(E)>0)
- {
- E<-sort(E)
- E<E[length(E):1]
- }
- E<- c(E, Inf)
- Tmp<- sort(E)
- E<- E[length(Tmp):1]
- Ke<- 1
-# for (t in seq(T1, T2+Eps, by=Dt)){#18.02.05
- for(jj in 1:(N+1)){
- t=T1+(jj-1)*Dt
- Pa<- c()
- if(t-E[Ke]< Eps)
- {
- if(Fnflg==0)
- {
- Tmp<-eval(parse(text=Str))
- Pa<- Tmp
- }
- else
- {
- }
- }
- if(abs(t-E[Ke])<=Eps)
- {
- if(Nrow(P)>0 && Op(Nrow(P),P)!=c(Inf,Inf))
- {
- Pa<- c(Inf,Inf)
- }
- }
- if(t-E[Ke]>Eps)
- {
- if(Fnflg==0)
- {
- Tmp<- eval(parse(text=Str))
- Pa<- Tmp
- }
- else
- {
- }
- Ke<-Ke+1
- }
- if(length(Pa)>0)
- {
- if(Pa[1]==Inf)
- {
- Tmp<-Appendrow(P,Pa)
- P<-Tmp
- }
- else
- {
- if(Nrow(P)==0)
- {
- Tmp<- Appendrow(P,Pa)
- P<-Tmp
- }
- else
- {
- Tmp<- Op(Nrow(P),P)
- if(Tmp[1]==Inf)
- {
- Tmp<- Appendrow(P,Pa)
- P<- Tmp
- }
- else
- {
- if(Norm(Tmp-Pa)<D)
- {
- Tmp<-Appendrow(P,Pa)
- P<-Tmp
- }
- else
- {
- Tmp<- Appendrow(P,c(Inf,Inf),Pa)
- P<- Tmp
- }
- }
- }
- }
- }
- }
- Tmp<- Nrow(P)
- Tmp1<- Op(Tmp,P)
- if(Tmp1[1]==Inf)
- {
- P<- P[1:(Tmp-1),]
- }
- return(P)
-}
-
-#####################################
-
-Partcrv<- function(A,B,PkL)
-{
- Eps<- 10.0^(-3)
- if(mode(A)=="numeric" && length(A)==1){
- if(A>B+Eps){
- Npt<- Numptcrv(PkL)
- Out1<- Partcrv(A,Npt,PkL)
- Out2<- Partcrv(1,B,PkL)
- Tmp<- Ptstart(PkL)-Ptend(PkL)
- if(Norm(Tmp)<Eps){
- Ans<- Joincrvs(Out1,Out2)
- }
- else{
- Ans<- list(Out1,Out2)
- }
- return(Ans)
- }
- Is<- ceiling(A)
- Ie<- floor(B)
- PL<- c()
- if(A<Is-Eps){
- P<- (Is-A)*PkL[Is-1,]+(1-Is+A)*PkL[Is,]
- PL<- c(P)
- }
- PL<- Appendrow(PL, PkL[Looprange(Is,Ie),])
- if(B>Ie+Eps){
- P<- (1-B+Ie)*PkL[Ie,]+(B-Ie)*PkL[Ie+1,]
- PL<- Appendrow(PL,P)
- }
- Ans<- PL
- return(Ans)
- }
- Tmp<- Nearestpt(A,PkL)
- Ta<- Op(2,Tmp)
- Tmp<- Nearestpt(B,PkL)
- Tb<- Op(2,Tmp)
- Ans<- Partcrv(Ta,Tb,PkL)
-}
-
-##########################################
-# 13.05.03
-
-Partframe<- function(Tb,St,Ed)
-{
- G<- Dividetable(Tb)
- Gw<- G[[1]]
- Gt<- G[[2]]
- Gy<- G[[3]]
- Gwt<- Tb[[4]]
- Gwy<- Tb[[5]]
- Gat<- c(list(Gwt[[1]]),Gt,list(Gwt[[2]]))
- Gay<- c(list(Gwy[[1]]),Gy,list(Gwy[[2]]))
- Tmp1<- Ptstart(Gat[[St[1]]])
- Tmp2<- Ptstart(Gay[[St[2]]])
- Ps<- c(Tmp1[1],Tmp2[2])
- Tmp1<- Ptstart(Gat[[Ed[1]]])
- Tmp2<- Ptstart(Gay[[Ed[2]]])
- Pe<- c(Tmp1[1],Tmp2[2])
- Pars<- Paramoncurve(Ps,Gw)
- Pare<- Paramoncurve(Pe,Gw)
- if(Pars<Pare){
- Out<- Partcrv(Pars,Pare,Gw)
- }
- else{
- Tmp1<- Partcrv(Pars,Numptcrv(Gw),Gw)
- Tmp2<- Partcrv(1,Pare,Gw)
- Out<- Joincrvs(Tmp1,Tmp2)
- }
-return(Out)
-}
-
-
-##########################################
-# 10.12.04
-
-Plotdata<- function(...)
-{
- varargin<- list(...)
- Eps<- 10^(-5)
- Fnstr<- varargin[[1]]; Is<- 2
- Fnflg<- 0
- Rgstr<- varargin[[Is]]; Is<- Is+1
- Tmp<- strsplit(Rgstr,"=")
- K<-Tmp[[1]]
- if(length(K)>1){
- Vname<- K[1]
- Tmp1<- K[2]
- Rng<- eval(parse(text=Tmp1))
- }
- else{
- Vname<- Rgstr
- Rng<- c(XMIN,XMAX)
- }
- N<- 50 # Numpoints
- E<-c() # Exclusions
- Exfun<- "" # Exclusion function
- D<- Inf # Discont
- for (I in Looprange(Is,length(varargin))){
- Tmp<- varargin[[I]]
- Lhs<- substring(Tmp,1,1)
- Tmp<- strsplit(Tmp,"=")
- K<- Tmp[[1]]
- Tmp1<- K[2]
- Tmp2<- grep(Vname,Tmp1,fixed=TRUE) ## 10.12.04
- if(length(Tmp2)==0){
- Str<-paste(Lhs,"=",Tmp1,sep="")
- eval(parse(text=Str))
- }
- else{
- Exfun<-Tmp1
- }
- }
- X1<- Rng[1]; X2<- Rng[2]
- dx<- (X2-X1)/N # 17.09.22
- if(Fnflg==0){
- Str<- gsub(Vname,"x",Fnstr,fixed=TRUE)
- }
- if(abs(dx)<Eps){ # Scilab 16.12.13
- x=X1
- P=c(X1,eval(parse(text=Str)))
- return(P)
- }
- Exfun<- gsub(Vname,"x",Exfun,fixed=TRUE)
- P<-c()
- if(length(E)>0){
- E<-sort(E)
- E<E[length(E):1]
- }
- E<- c(E, Inf)
- Tmp<- sort(E)
- E<- E[length(Tmp):1]
- Ke<- 1
- for (x in seq(X1,X2,by=dx)){
- if(nchar(Exfun)>0){
- Tmp<-eval(parse(text=Exfun))
- if(abs(Tmp)<Eps){
- P<- Appendrow(P,c(Inf,inf))
- next
- }
- }
- Pa<- c()
- if(x-E[Ke]< -Eps){ ## 10.12.04
- Tmp<-eval(parse(text=Str))
- Pa<- c(x,Tmp)
- }
- if(abs(x-E[Ke])<=Eps){
- if(Nrow(P)>0 && P[Nrow(P),]!=c(Inf,Inf)){
- Pa<- c(Inf,Inf)
- }
- }
- if(x-E[Ke]>Eps){
- Tmp<- eval(parse(text=Str))
- Pa<- c(x,Tmp)
- Ke<-Ke+1
- }
- if(length(Pa)>0){
- if(Pa[1]==Inf){
- Tmp<-Appendrow(P,Pa)
- P<-Tmp
- }
- else{
- if(Nrow(P)==0){
- Tmp<- Appendrow(P,Pa)
- P<-Tmp
- }
- else{
- Tmp<- P[Nrow(P),]
- if(Tmp[1]==Inf){
- Tmp<- Appendrow(P,Pa)
- P<- Tmp
- }
- else{
- if(Norm(Tmp-Pa)<D){
- Tmp<-Appendrow(P,Pa)
- P<-Tmp
- }
- else{
- Tmp<- Appendrow(P,c(Inf,Inf),Pa)
- P<- Tmp
- }
- }
- }
- }
- }
- }
- Tmp<- Nrow(P)
- Tmp1<-P[Tmp,]
- if(Tmp1[1]==Inf)
- {
- P<- P[1:(Tmp-1),]
- }
- return(P)
-}
-
-######################################
-
-Pointoncurve<-function(...)
-{
- varargin<-list(...)
- Eps<-10^(-4)
- T<-varargin[[1]]
- Gdata<-varargin[[2]]
- if(Nrow(T)>1)
- {
- Tmp<-T; T<-Gdata; Gdata<-Tmp
- }
- PtL<-Gdata
- N<-trunc(T+Eps);
- S<-max(T-N,0);
- if(N==Nrow(PtL))
- {
- Out<-PtL[N,]
- }
- else
- {
- Pa<-PtL[N,]
- Pb<-PtL[N+1,]
- Out<-(1-S)*Pa+S*Pb
- }
- return(Out)
-}
-
-##############################################
-# 10.11.20
-# 13.05.03 Inf
-
-Pointdata<-function(...)
-{
- varargin<-list(...)
- Nargs<-length(varargin)
- PL<- list()
- for (I in Looprange(1,Nargs)){ # 10.11.20
- DL<-varargin[[I]]
- DL<- Flattenlist(DL) # 10.11.20 from here
- for (J in Looprange(1,length(DL))){
- Dt<- DL[[J]]
- if(is.matrix(Dt)|| is.data.frame(Dt)){
- for (K in 1:nrow(Dt)){
- Tmp<- as.numeric(Dt[K,])
- if(Tmp[1]<Inf){
- PL<- c(PL,list(Tmp))
- }
- }
- }
- else{
- PL<- c(PL,list(Dt))
- }
- }
- } # to here
- if(length(PL)==1)
- {
- PL<-PL[[1]]
- }
- return(PL)
-}
-
-##############################################
-
-Prime<- function(...)
-{
- varargin<- list(...)
- if(length(varargin)==0){
- Out="'"
- }
- else{
- Out<- paste(varargin[[1]],"'",sep="")
- }
- return(Out)
-}
-
-############################################
-# 17.09.29
-
-Ptcrv<-function(N,Fig)
-{
- if(is.matrix(Fig)){
- return(Fig[N,])
- }
- else{
- return(Fig)
- }
-}
-
-#########################################
-
-Ptend<-function(Fig)
-{
- if(Length(Fig)>0){ #18.02.09
- return(Op(Length(Fig),Fig))
- }else{
- return(c())
- }
-}
-
-#########################################
-
-Ptne<-function(...)
-{
- varargin<- list(...)
- if(length(varargin)==0){
- Out<- c(XMAX,YMAX)
- }
- else{
- G<- varargin[[1]]
- XM<- max(G[,1])
- YM<- max(G[,2])
- Out<- c(XM,YM)
- }
- return(Out)
-}
-
-#########################################
-
-Ptnw<-function(...)
-{
- varargin<- list(...)
- if(length(varargin)==0){
- Out<- c(XMIN,YMAX)
- }
- else{
- G<- varargin[[1]]
- Xm<- min(G[,1])
- YM<- max(G[,2])
- Out<- c(Xm,YM)
- }
- return(Out)
-}
-
-#########################################
-
-Ptse<-function(...)
-{
- varargin<- list(...)
- if(length(varargin)==0){
- Out<- c(XMAX,YMIN)
- }
- else{
- G<- varargin[[1]]
- XM<- max(G[,1])
- Ym<- min(G[,2])
- Out<- c(XM,Ym)
- }
- return(Out)
-}
-
-#############################################
-
-Ptstart<-function(Fig)
-{
- if(Length(Fig)>0){ #18.02.09
- return(Op(1,Fig))
- }else{
- return(c())
- }
-}
-
-#########################################
-
-Ptsw<-function(...)
-{
- varargin<- list(...)
- if(length(varargin)==0){
- Out<- c(XMIN,YMAX)
- }
- else{
- G<- varargin[[1]]
- Xm<- min(G[,1])
- Ym<- min(G[,2])
- Out<- c(Xm,Ym)
- }
- return(Out)
-}
-
-##############################################
-
-Putcell<- function(...)
-{
- varargin<- list(...)
- Nargs<- length(varargin)
- TbL<- varargin[[1]]
- Str<- varargin[[Nargs]]
- if(mode(Str)=="numeric"){
- Str<- as.character(Str)
- }
- Pos<- varargin[[Nargs-1]]
- Nrg<- varargin[[2]]
- if(mode(Nrg)=="character"){
- if(Nargs==4){
- Cell<- Findcell(TbL,Nrg)
- }
- else{
- Mrg<- varargin[[3]]
- Cell<- Findcell(TbL,Nrg,Mrg)
- }
- }
- else{
- Mrg<- varargin[[3]]
- Cell<- Findcell(TbL,Nrg,Mrg)
- }
- Pt<- Cell[[1]]; Dr<- "c"
- Posh<- substr(Pos,1,1)
- Post<- substr(Pos,2,nchar(Pos))
- if(toupper(Posh)=="R"){
- Pt<- Pt+c(Cell[[2]],0)
- if(nchar(Post)==0){
- Dr<- "w1"
- }
- else{
- Dr<- paste("w",Post,sep="")
- }
- }
- if(toupper(Posh)=="L"){
- Pt=Pt-c(Cell[[2]],0)
- if(nchar(Post)==0){
- Dr<- "e1"
- }
- else{
- Dr<- paste("e",Post,sep="")
- }
- }
- if(toupper(Posh)=="U"){
- Pt<- Pt+c(0,Cell[[3]])
- if(nchar(Post)==0){
- Dr<- "s1"
- }
- else{
- Dr<- paste("s",Post,sep="")
- }
- }
- if(toupper(Posh)=="D"){
- Pt<- Pt-c(0,Cell[[3]])
- if(nchar(Post)==0){
- Dr<- "n1"
- }
- else{
- Dr<- paste("n",Post,sep="")
- }
- }
- if(toupper(Posh)=="B"){
- Pt<- Pt-c(0,Cell[[3]])
- if(nchar(Post)==0){
- Dr<- "n1"
- }
- else{
- Dr<- paste("n",Post,sep="")
- }
- Str<- paste("$\\mathstrut$",Str,sep="")
- }
- Letter(Pt,Dr,Str)
-}
-
-#############################################
-
-PutcoL<- function(...)
-{
- varargin<- list(...)
- Nargs<- length(varargin)
- TbL<- varargin[[1]]
- if(mode(TbL)!="list"){
- return("Tabledata missing")
- }
- Ag<- varargin[[2]]
- if(mode(Ag)=="numeric"){
- CoL<- Ag
- }
- else{
- Alpha<- "-ABCDEFGHIJKLMNOPQRSTUVWXYZ"
- Clm<- c()
- for (I in Looprange(1,nchar(Ag))){
- C<- substr(Ag,I,I)
- C<- toupper(C)
- Tmp<- strsplit(Alpha,C)
- Tmp<- Tmp[[1]]
- if(length(Tmp)>1){
- Tmp1<- nchar(Tmp[1])
- Clm<- c(Clm,Tmp1)
- }
- }
- Nrg<- 0
- for (I in seq(length(Clm),1,by=-1)){
- Tmp<- Clm[I]
- Tmp1<- length(Clm)-I
- Nrg<- Nrg+Tmp*26^Tmp1
- }
- CoL<- Nrg
- }
- Nc<- length(TbL[[3]])+1
- K<- 1
- Dpos<- varargin[[3]]
- for (I in Looprange(4,Nargs)){
- if(I-3>Nc){
- break
- }
- Dt<- varargin[[I]]
- if(mode(Dt)!="list"){
- Putcell(TbL,CoL,K,Dpos,Dt) # 2011.03.02
- K<- K+1
- }
- else{
- N<- length(Dt)
- Str<- Dt[[N]]
- Rrng<- c(K,K+1)
- Pos<- Dpos
- for (J in Looprange(1,N-1)){
- Tmp<- Dt[[J]]
- if(mode(Tmp)=="numeric"){
- Rrng<- c(K,K+Tmp)
- }
- if(mode(Tmp)=="character"){
- Pos<- Tmp
- }
- }
- Putcell(TbL,CoL,Rrng,Pos,Str)
- K<- Crng[2]
- }
- }
-}
-
-Putcol<- function(...)
-{
- PutcoL(...)
-}
-
-PutcoLexpr<- function(...)
-{
- varargin<- list(...)
- Nargs<- length(varargin)
- TbL<- varargin[[1]]
- if(mode(TbL)!="list"){
- return("Tabledata missing")
- }
- Ag<- varargin[[2]]
- if(mode(Ag)=="numeric"){
- CoL<- Ag
- }
- else{
- Alpha<- "-ABCDEFGHIJKLMNOPQRSTUVWXYZ"
- Clm<- c()
- for (I in Looprange(1,nchar(Ag))){
- C<- substr(Ag,I,I)
- C<- toupper(C)
- Tmp<- strsplit(Alpha,C)
- Tmp<- Tmp[[1]]
- if(length(Tmp)>1){
- Tmp1<- nchar(Tmp[1])
- Clm<- c(Clm,Tmp1)
- }
- }
- Nrg<- 0
- for (I in seq(length(Clm),1,by=-1)){
- Tmp<- Clm[I]
- Tmp1<- length(Clm)-I
- Nrg<- Nrg+Tmp*26^Tmp1
- }
- CoL<- Nrg
- }
- Nc<- length(TbL[[3]])+1
- K<- 1
- Dpos<- varargin[[3]]
- for (I in Looprange(4,Nargs)){
- if(I-3>Nc){
- break
- }
- Dt<- varargin[[I]]
- if(mode(Dt)!="list"){
- Dt<- paste("$",Dt,"$",sep="")
- Putcell(TbL,CoL,K,Dpos,Dt) # 2011.03.02
- K<- K+1
- }
- else{
- N<- length(Dt)
- Str<- paste("$",Dt[[N]],"$",sep="")
- Rrng<- c(K,K+1)
- Pos<- Dpos
- for (J in Looprange(1,N-1)){
- Tmp<- Dt[[J]]
- if(mode(Tmp)=="numeric"){
- Rrng<- c(K,K+Tmp)
- }
- if(mode(Tmp)=="character"){
- Pos<- Tmp
- }
- }
- Putcell(TbL,CoL,Rrng,Pos,Str)
- K<- Crng[2]
- }
- }
-}
-
-Putcolexpr<- function(...)
-{
- PutcoLexpr(...)
-}
-
-#####################################################
-
-PutcoLstr<- function(...)
-{
- varargin<- list(...)
- Nargs<- length(varargin)
- Tb<- varargin[[1]]
- Nr<- varargin[[2]]
- Pos<- varargin[[3]]
- Str<- varargin[[4]]
- Sep<- ""
- if(Nargs>4){
- Sep<- varargin[[5]]
- }
- if(nchar(Sep)==0){
- for (I in Looprange(1,nchar(Str))){
- Tmp<- substr(Str,I,I)
- Putcell(Tb,Nr,I,Pos,Tmp)
- }
- }
- else{
- Ltr<- ""
- K<- 1
- for (I in Looprange(1,length(Str))){
- Tmp<- substr(Str,I,I)
- if(Tmp==Sep){
- Putcell(Tb,Nr,K,Pos,Ltr)
- K<- K+1
- Ltr<- ""
- }
- else{
- Ltr<- paste(Ltr,Tmp,sep="")
- }
- }
- if(nchar(Ltr)>0){
- Putcell(Tb,Nr,K,Pos,Ltr)
- }
- }
-}
-
-#############################################
-
-Putrow<- function(...)
-{
- varargin<- list(...)
- Nargs<- length(varargin)
- TbL<- varargin[[1]]
- if(mode(TbL)!="list"){
- return("Tabledata missing")
- }
- Row<- varargin[[2]]
- Nr<- length(TbL[[2]])+1
- K<- 1
- Dpos<- varargin[[3]]
- for (I in Looprange(4,Nargs)){
- if(I-3>Nr){
- break;
- }
- Dt<- varargin[[I]]
- if(mode(Dt)!="list"){
- Putcell(TbL,K,Row,Dpos,Dt) # 110308
- K<- K+1
- }
- else{
- N<- length(Dt)
- Str<- Dt[[N]]
- Crng<- c(K,K+1)
- Pos<- Dpos
- for (J in Looprange(1,N-1)){
- Tmp<- Dt[[J]]
- if(mode(Tmp)=="numeric"){
- Crng<- c(K,K+Tmp)
- }
- if(mode(Tmp)=="character"){
- Pos<- Tmp
- }
- }
- Putcell(TbL,Crng,Row,Pos,Str)
- K<- Crng[2]
- }
- }
-}
-
-Putrowexpr<- function(...)
-{
- varargin<- list(...)
- Nargs<- length(varargin)
- TbL<- varargin[[1]]
- if(mode(TbL)!="list"){
- return("Tabledata missing")
- }
- Row<- varargin[[2]]
- Nr<- length(TbL[[2]])+1
- K<- 1
- Dpos<- varargin[[3]]
- for (I in Looprange(4,Nargs)){
- if(I-3>Nr){
- break;
- }
- Dt<- varargin[[I]]
- if(mode(Dt)!="list"){
- Dt<- paste("$",Dt,"$",sep="")
- Putcell(TbL,K,Row,Dpos,Dt) #110308
- K<- K+1
- }
- else{
- N<- length(Dt)
- Str<- paste("$",Dt[[N]],"$",sep="")
- Crng<- c(K,K+1)
- Pos<- Dpos
- for (J in Looprange(1,N-1)){
- Tmp<- Dt[[J]]
- if(mode(Tmp)=="numeric"){
- Crng<- c(K,K+Tmp)
- }
- if(mode(Tmp)=="character"){
- Pos<- Tmp
- }
- }
- Putcell(TbL,Crng,Row,Pos,Str)
- K<- Crng[2]
- }
- }
-}
-
-####################################################
-
-Putrowstr<- function(...)
-{
- varargin<- list(...)
- Nargs<- length(varargin)
- Tb<- varargin[[1]]
- Nr<- varargin[[2]]
- Pos<- varargin[[3]]
- Str<- varargin[[4]]
- Sep<- ""
- if(Nargs>4){
- Sep<- varargin[[5]]
- }
- if(nchar(Sep)==0){
- for (I in Looprange(1,nchar(Str))){
- Tmp<- substr(Str,I,I)
- Putcell(Tb,I,Nr,Pos,Tmp)
- }
- }
- else{
- Ltr<- ""
- K<- 1
- for (I in Looprange(1,length(Str))){
- Tmp<- substr(Str,I,I)
- if(Tmp==Sep){
- Putcell(Tb,K,Nr,Pos,Ltr)
- K<- K+1
- Ltr<- ""
- }
- else{
- Ltr<- paste(Ltr,Tmp,sep="")
- }
- }
- if(nchar(Ltr)>0){
- Putcell(Tb,K,Nr,Pos,Ltr)
- }
- }
-}
-
-############################################
-# 11.05.28
-
-Ratiocmyk<- function(Color)
-{
- if(is.numeric(Color)){
- return(Color)
- }
- R<-
- switch(Color,
- greenyellow=c(0.15,0,0.69,0),
- yellow=c(0,0,1,0),
- goldenrod=c(0,0.1,0.84,0),
- dandelion=c(0,0.29,0.84,0),
- apricot=c(0,0.32,0.52,0),
- peach=c(0,0.5,0.7,0),
- melon=c(0,0.46,0.5,0),
- yelloworange=c(0,0.42,1,0),
- orange=c(0,0.61,0.87,0),
- burntorange=c(0,0.51,1,0),
- bittersweet=c(0,0.75,1,0.24),
- redorange=c(0,0.77,0.87,0),
- mahogany=c(0,0.85,0.87,0.35),
- maroon=c(0,0.87,0.68,0.32),
- brickred=c(0,0.89,0.94,0.28),
- red=c(0,1,1,0),
- orangered=c(0,1,0.5,0),
- rubinered=c(0,1,0.13,0),
- wildstrawberry=c(0,0.96,0.39,0),
- salmon=c(0,0.53,0.38,0),
- carnationpink=c(0,0.63,0,0),
- magenta=c(0,1,0,0),
- violetred=c(0,0.81,0,0),
- rhodamine=c(0,0.82,0,0),
- mulberry=c(0.34,0.9,0,0.02),
- redviolet=c(0.07,0.9,0,0.34),
- fuchsia=c(0.47,0.91,0,0.08),
- lavender=c(0,0.48,0,0),
- thistle=c(0.12,0.59,0,0),
- orchid=c(0.32,0.64,0,0),
- darkorchid=c(0.4,0.8,0.2,0),
- purple=c(0.45,0.86,0,0),
- plum=c(0.5,1,0,0),
- violet=c(0.79,0.88,0,0),
- royalpurple=c(0.75,0.9,0,0),
- blueviolet=c(0.86,0.91,0,0.04),
- periwinkle=c(0.57,0.55,0,0),
- cadetblue=c(0.62,0.57,0.23,0),
- cornflowerblue=c(0.65,0.13,0,0),
- midnightblue=c(0.98,0.13,0,0.43),
- navyblue=c(0.94,0.54,0,0),
- royalblue=c(1,0.5,0,0),
- blue=c(1,1,0,0),
- cerulean=c(0.94,0.11,0,0),
- cyan=c(1,0,0,0),
- processblue=c(0.96,0,0,0),
- skyblue=c(0.62,0,0.12,0),
- turquoise=c(0.85,0,0.2,0),
- tealblue=c(0.86,0,0.34,0.02),
- aquamarine=c(0.82,0,0.3,0),
- bluegreen=c(0.85,0,0.33,0),
- emerald=c(1,0,0.5,0),
- junglegreen=c(0.99,0,0.52,0),
- seagreen=c(0.69,0,0.5,0),
- green=c(1,0,1,0),
- forestgreen=c(0.91,0,0.88,0.12),
- pinegreen=c(0.92,0,0.59,0.25),
- limegreen=c(0.5,0,1,0),
- yellowgreen=c(0.44,0,0.74,0),
- springgreen=c(0.26,0,0.76,0),
- olivegreen=c(0.64,0,0.95,0.4),
- rawsienna=c(0,0.72,1,0.45),
- sepia=c(0,0.83,1,0.7),
- brown=c(0,0.81,1,0.6),
- tan=c(0.14,0.42,0.56,0),
- gray=c(0,0,0,0.5),
- black=c(0,0,0,1),
- white=c(0,0,0,0)
- )
- if(length(R)<4){
- print("No color")
- return(c())
- }
- return(R)
-}
-
-############################################
-# 11.01.07
-
-Readtextdata<- function(...)
-{
- varargin<- list(...)
- OutL<- list()
- Nargs<- length(varargin)
- Fname<- varargin[[1]]
- Tmp<- readLines(Fname,n=1)
- if(length(grep("\t",Tmp))>0){
- Sep<- "\t"
- }
- else if(length(grep(",",Tmp))>0){
- Sep<- ","
- }
- else{
- Sep<- " "
- }
- Hajime<- c(1,1)
- Owari<- c(Inf,Inf)
- C<- Inf
- R<- Inf
- Rna<- FALSE
- Cna<- TRUE
- Mat<- FALSE
- Num<- TRUE
- D<- -Inf
- Flg<- 0
- for (I in Looprange(2,Nargs)){
- Tmp<- varargin[[I]]
- if(mode(Tmp)=="numeric"){
- if (Flg==0){
- Hajime<- Tmp
- Flg<- 1
- }
- else{
- Owari<- Tmp
- }
- }
- else{
- eval(parse(text=Tmp))
- }
- }
- Tmp<- Hajime+c(R-1,C-1)
- Owari<- c(min(Owari[1],Tmp[1]),min(Owari[2],Tmp[2]))
- if(Cna){
- Df<- read.table(Fname,sep=Sep,header=TRUE,,stringsAsFactors=FALSE)
- }
- else{
- Df<- read.table(Fname,sep=Sep,header=FALSE,,stringsAsFactors=FALSE)
- Nv<- c(1:ncol(Df))
- colnames(Df)<- Nv
- }
- if(Rna){
- rownames(Df)<-Df[,1]
- Hajime<- Hajime+c(0,1)
- }
- if(Mat){
- M<- as.matrix(Df)
- Tmp1<- min(Owari[1],nrow(M))
- Tmp2<- min(Owari[2],ncol(M))
- Out<- as.matrix(M[Hajime[1]:Tmp1,Hajime[2]:Tmp2])
- if(Num){
- Tmp1<- as.numeric(Out)
- Out<- matrix(Tmp1,nrow=nrow(Out))
- }
- }
- else{
- Tmp1<- min(Owari[1],nrow(Df))
- Tmp2<- min(Owari[2],ncol(Df))
- Out<- Df[Hajime[1]:Tmp1,Hajime[2]:Tmp2]
- }
- if(D!=-Inf){ # 11.01.20 v2
- Tmp<- ncol(Out) # 11.01.07
- Tmp1<- rep(Inf,Tmp)
- Out[Out[,1]<=D,]<- Tmp1 # 11.01.07
- }
- return(Out)
-}
-
-##################################
-
-Reflectdata<- function(...)
-{
- varargin<- list(...)
- Nargs<- length(varargin)
- Eps<- 10^(-8)
- ML<- varargin[[1]]
- if(Mixtype(ML)==1){
- ML<- list(ML)
- }
- if(Nargs==1){
- PtA<- c(0,0); PtB<- PtA
- }
- else{
- Pts<- varargin[[2]]
- if(length(Pts)==2){
- PtA<- Pts; PtB<- PtA
- }
- else{
- PtA<- Pts[1:2]; PtB<- Pts[3:4]
- }
- }
- OutL<- list()
- for (N in Looprange(1,length(ML))){
- GL<- Op(N,ML)
- Out<- c()
- for (I in Looprange(1,Nrow(GL))){
- if(is.matrix(GL)){ # 10.12.07
- Tmp<- GL[I,]
- }
- else{
- Tmp<- GL
- }
- X1<- Tmp[1]
- Y1<- Tmp[2]
- if(X1==Inf){
- X2<- X1
- Y2<- Y1
- }
- else{
- if(Norm(PtA-PtB)<Eps){
- X2<- 2*PtA[1]-X1
- Y2<- 2*PtA[2]-Y1
- }
- else{
- U<- PtB[1]-PtA[1]
- V<- PtB[2]-PtA[2]
- A<- PtA[1]
- B<- PtA[2]
- X2<- (U^2-V^2)/(U^2+V^2)*X1+2*U*V/(U^2+V^2)*Y1
- X2<- X2-2*V*(U*B-V*A)/(U^2+V^2)
- Y2<- 2*U*V/(U^2+V^2)*X1-(U^2-V^2)/(U^2+V^2)*Y1
- Y2<- Y2+2*U*(U*B-V*A)/(U^2+V^2)
- }
- }
- Out<- Appendrow(Out,c(X2,Y2))
- }
- OutL<- Mixjoin(OutL,list(Out))
- }
- if(length(OutL)==1){
- OutL<- Op(1,OutL)
- }
- return(OutL)
-}
-
-##########################################
-
-Writetextdata<- function(...)
-{
- varargin<- list(...)
- OutL<- list()
- Nargs<- length(varargin)
- Data<- varargin[[1]]
- Fname<- varargin[[2]]
- Sep=","
- for (I in Looprange(3,Nargs)){
- Tmp<- varargin[[I]]
- eval(parse(text=Tmp))
- }
- write.table(Data,Fname,sep=Sep,row.names=FALSE,na="")
-}
-
-##########################################
-# 2014.12.17
-# 2015.10.29
-
-WriteOutData<- function(...){
- varargin<- list(...)
- Nargs<- length(varargin)
-# if modulo(Nargs,2)==0 then
-# Fname=Fnameout;
-# Nst=1;
-# else
- Fname=varargin[[1]]
- Nst=2;
-# end;
- for(N in seq(Nst,Nargs,by=2)){
- Gname=varargin[[N]]
- Tmp=paste(Gname,"//",sep="")
- if(N==Nst){
- cat(Tmp,"\n",sep="",file=Fname)
- }
- else{
- cat(Tmp,"\n",sep="",file=Fname,append=TRUE)
- }
- Gdata=varargin[[N+1]]
- Gdata=Flattenlist(Gdata)
- if(!is.list(Gdata)){Gdata=list(Gdata)}
- for(K in Looprange(1,length(Gdata))){
- GL=Dividegraphics(Gdata[[K]])
-# for(J in seq(1,length(GL))){
- for(J in Looprange(1,length(GL))){
- cat("start//","\n",sep="",file=Fname,append=TRUE)
- Str=""
- Iend=Numptcrv(GL[[J]])
-# for(II in seq(1,Iend)){
- for(II in Looprange(1,Iend)){
- Pt=Ptcrv(II,GL[[J]])
- if(nchar(Str)>0){
- Str=paste(Str,",",sep="")
- }
- if(length(Pt)<3){
- Str=paste(Str,sprintf("[%5.5f,%5.5f]",Pt[1],Pt[2]),sep="")
- }
- else{
- Str=paste(Str,sprintf("[%5.5f,%5.5f,%5.5f]",Pt[1],Pt[2],Pt[3]),sep="")
- }
- if(nchar(Str)>80){
- cat("[",Str,"]//","\n",sep="",file=Fname,append=TRUE)
- Str=""
- }
- }
- if(nchar(Str)>0){
- cat("[",Str,"]//","\n",sep="",file=Fname,append=TRUE)
- }
- if((N==Nargs-1) & (K==length(Gdata)) & (J==length(GL))){
-# cat("end////","\n",sep="",file=Fname,append=TRUE)
- cat("end//","\n",sep="",file=Fname,append=TRUE)
- }
- else{
- cat("end//","\n",sep="",file=Fname,append=TRUE)
- }
- }
- }
- }
- cat("//","\n",sep="",file=Fname,append=TRUE) # 15.11.05
-}
-
-###### Old ####################################
-# 2015.10.23
-ReadOutData<- function(...){
- varargin<- list(...)
- Nargs<- length(varargin)
- Fname=varargin[[1]]
- cmdall=readLines(Fname)
- cmdall=gsub("//","",cmdall,fixed=TRUE)
- varname=cmdall[1]
- outdt=list()
- varL=c()
- ptL=list()
- flg=0
- for(cmd in cmdall){
- if(nchar(cmd)>0){
- if((cmd=="start") | cmd=="end" | substring(cmd,1,1)=="["){
- if(cmd=="start"){
- pts=c()
- }
- if(cmd=="end"){
- ptL=c(ptL,list(pts))
- }
- if(substring(cmd,1,1)=="["){
- tmp1=paste(",",substring(cmd,2,nchar(cmd)-1),sep="")
- tmp1=strsplit(tmp1,"]",fixed=TRUE)
- tmp1=tmp1[[1]]
- tmp1=gsub(",[","c(",tmp1,fixed=TRUE)
- for(st in tmp1){
- tmp=eval(parse(text=paste(st,")",sep="")))
- pts=rbind(pts,tmp)
- }
- row.names(pts)=1:nrow(pts)
- }
- }
- else{
- varname=cmd
- varL=c(varL,varname)
- if(flg==0){ # 17.10.07from
- flg=1
- }else{
- outdt=c(outdt,list(ptL))
- } # 17.10.07upto
- ptL=c()
- }
- }
- }
- outdt=c(outdt,list(ptL)) # 17.10.07
- names(outdt)=varL
- for(var in varL){
- tmp=paste(var,"<<- outdt$",var,sep="")
- eval(parse(text=tmp))
- }
-# print(varL)
- outdt
-}
-
-####################################################
-
-ReadOutData<- function(...){ #2017.10.23
- varargin<- list(...)
- Nargs<- length(varargin)
- Fname=varargin[[1]]
- cmdall=readLines(Fname)
- cmdall=gsub("//","",cmdall,fixed=TRUE)
- varname=""#17.12.13 cmdall[1]
- outdt=list()
- varL=c()
- ptL=list()
- flg=0
- for(cmd in cmdall){
- if(nchar(cmd)>0){
- if((cmd=="start") | cmd=="end" | substring(cmd,1,1)=="["){
- if(cmd=="start"){
- tmp=paste(varname,"<<- c(",varname,",list(c()))",sep="")
- eval(parse(text=tmp))
- Ctr=Ctr+1
- }
- if(cmd=="end"){
- }
- if(substring(cmd,1,1)=="["){
- tmp1=paste(",",substring(cmd,2,nchar(cmd)-1),sep="")
- tmp1=strsplit(tmp1,"]",fixed=TRUE)
- tmp1=tmp1[[1]]
- tmp1=gsub(",[","c(",tmp1,fixed=TRUE)
- for(st in tmp1){
- tmp=paste(varname,"[[",as.character(Ctr),"]]",sep="")
- tmp=paste(tmp,"<<- rbind(",tmp,",",st,"))",sep="")#
- eval(parse(text=tmp))
- }
- }
- }
- else{
- # 17.12.13from
- if(nchar(varname)>0){
- tmp=paste("if(length(",varname,")==1){",varname,"<<- ",varname,"[[1]]}",sep="")
- eval(parse(text=tmp))
- }
- # 17.12.13upto
- varname=cmd
- tmp=paste(varname,"<<- list()",sep="")
- eval(parse(text=tmp))
- Ctr=0
- if(flg==0){ # 17.10.07from
- flg=1
- }else{
- } # 17.10.07upto
- }
- }
- }
- # 17.12.13from
- tmp=paste("if(length(",varname,")==1){",varname,"<<- ",varname,"[[1]]}",sep="")
- eval(parse(text=tmp))
- # 17.12.13upto
-}
-
-####################################################
-
-Rotatedata<- function(..., deg=FALSE)
-{
- varargin<- list(...)
- Nargs<- length(varargin)
- Eps<- 10^(-8)
- ML<- varargin[[1]]
- if(Mixtype(ML)==1){
- ML<- list(ML)
- }
- Theta<- varargin[[2]]
- if(deg) Theta<- Theta*pi/180 # 10.12.07
- if(Nargs==2){
- Pt<- c(0,0)
- }
- else{
- Pt<- varargin[[3]]
- }
- Cx<- Pt[1]; Cy<- Pt[2]
- OutL<- c()
- for (N in Looprange(1,length(ML))){
- GL<- Op(N,ML)
- Out<- c()
- for (I in Looprange(1,Nrow(GL))){
- if(is.matrix(GL)){
- Tmp<- GL[I,]
- }
- else{
- Tmp<- GL
- }
- X1<- Tmp[1]
- Y1<- Tmp[2]
- if(X1==Inf){
- X2<- X1
- Y2<- Y1
- }
- else{
- X2<- Cx+(X1-Cx)*cos(Theta)-(Y1-Cy)*sin(Theta)
- Y2<- Cy+(X1-Cx)*sin(Theta)+(Y1-Cy)*cos(Theta)
- }
- Out<- Appendrow(Out,c(X2,Y2))
- }
- if(nrow(Out)==1){
- Out<- Out[1,]
- }
- OutL<- Mixjoin(OutL,list(Out))
- }
- if(length(OutL)==1){
- OutL<- Op(1,OutL)
- }
- return(OutL)
-}
-
-###############################################
-
-Scaledata<- function(...)
-{
- varargin<- list(...)
- Nargs<- length(varargin)
- Eps<- 10^(-8)
- ML<- varargin[[1]]
- if(Mixtype(ML)==1){
- ML<- list(ML)
- }
- A<- varargin[[2]]
- B<- varargin[[3]]
- if(Nargs==3){
- Pt<- c(0,0)
- }
- else{
- Pt<- varargin[[4]]
- }
- OutL<- list()
- for (N in Looprange(1,length(ML))){
- GL<- Op(N,ML)
- Out<- c()
- for (I in Looprange(1,Nrow(GL))){
- if(is.matrix(GL)){ # 10.12.07
- Tmp<- GL[I,]
- }
- else{
- Tmp<- GL
- }
- X1<- Tmp[1]
- Y1<- Tmp[2]
- if(X1==Inf){
- X2<- X1
- Y2<-Y1
- }
- else{
- X2<- Pt[1]+A*(X1-Pt[1])
- Y2<- Pt[2]+B*(Y1-Pt[2])
- }
- Out<- Appendrow(Out,c(X2,Y2))
- }
- OutL<- Mixjoin(OutL,list(Out))
- }
- if(length(OutL)==1){
- OutL<- Op(1,OutL)
- }
- return(OutL)
-}
-
-################################
-
-Setarrow<- function(...)
-{
- varargin<- list(...)
- Nargs<- length(varargin)
- if(Nargs==0){
- Str<- paste("Size=",YaSize,",","Angle=",YaAngle,",",sep="")
- Str<- paste(Str,"Position=",YaThick,",","Style=",YaStyle,sep="")
- return(Str)
- }
- Flg<- 0
- for (I in 1:Nargs){
- Tmp<- varargin[[I]]
- if(mode(Tmp)=="numeric"){
- Flg<- Flg+1
- if(Flg==1) YaSize<<-Tmp
- if(Flg==2){
- if(Tmp<5){
- YaAngle<<- 18*Tmp
- }
- else{
- YaAngle<<- Tmp
- }
- }
- if(Flg==3) YaPosition<<- Tmp
- if(Flg==4) YaThick<<- Tmp
- }
- if(mode(Tmp)=="character"){
- YaStyle<<- Tmp
- }
- }
-}
-
-####################################
-
-Setax<- function(...)
-{
- varargin<- list(...)
- Nargs<- length(varargin)
- if(Nargs==0){
- if(ZIKU=="line"){
- Tmp<- ","
- }
- else{
- Tmp<- paste("(Arrowsize=", as.character(ARROWSIZE),"),",sep="")
- }
- Str<- paste(ZIKU,Tmp,XNAME,",",XPOS,",",sep="")
- Str<- paste(Str,YNAME,",",YPOS,",",ONAME,",",OPOS,sep="")
- return(Str)
- }
- ArgL<- c()
- Is<- 1
- Tmp<- varargin[[1]]
- if(mode(Tmp)=="numeric" && length(Tmp)==1){
- Is<- varargin[[1]]
- ArgL<- c()
- for (I in Looprange(1,Is-1)){
- ArgL<- c(ArgL,"")
- }
- for (I in Looprange(2,Nargs)){
- ArgL<- c(ArgL,varargin[[I]])
- }
- }
- else{
- if(Nargs==1){
- ArgL<- c(varargin[[1]])
- }
- else{
- Tmp<- varargin[[2]]
- if(mode(Tmp)=="numeric" && length(Tmp)==1){
- ARROWSIZE<<-Tmp
- ArgL<- c(varargin[[1]])
- for (I in Looprange(3,Nargs)){
- ArgL<- c(ArgL,varargin[[I]])
- }
- }
- else{
- ArgL<- c()
- for (I in 1:Nargs){
- ArgL<- c(ArgL,varargin[[I]])
- }
- }
- }
- }
- for (I in Looprange(length(ArgL)+1,7)){
- ArgL<- c(ArgL,"")
- }
- Zk<- ArgL[1]
- if(nchar(Zk)>0){
- ZL<-substr(Zk,2,nchar(Zk))
- Zk<-substr(Zk,1,1)
- if(nchar(ZL)>0){
- ARROWSIZE<<- as.numeric(ZL)
- }
- }
- Xn<- ArgL[2]; Xp<- ArgL[3]
- Yn<- ArgL[4]; Yp<- ArgL[5]
- Genn<- ArgL[6]; Genp<- ArgL[7]
- if(nchar(Zk)>0){
- C<- Zk
- if(C=="a"){
- ZIKU<<- "arrow"
- }
- else{
- ZIKU<<- "line"
- }
- }
- if(nchar(Xn)>0){
- XNAME<<- paste("$",Xn,"$",sep="")
- }
- if(nchar(Xp)>0){
- XPOS<<- Xp
- }
- if(nchar(Yn)>0){
- YNAME<<- paste("$",Yn,"$",sep="")
- }
- if(nchar(Yp)>0){
- YPOS<<-Yp
- }
- if(nchar(Genn)>0){
- ONAME<<- Genn
- }
- if(nchar(Genp)>0){
- OPOS<<- Genp
- }
- Out<- "";
-}
-
-#################################
-# 11.08.24
-
-Setcolor<- function(...){
- varargin<- list(...)
- Color<- 'black'
- Kosa<- 1
- for(J in Looprange(1,length(varargin))){
- Tmp<- varargin[[J]]
- if(is.character(Tmp)) Color<- Tmp
- if(is.numeric(Tmp)){
- if(length(Tmp)==1){# 11.08.24
- Kosa<- Tmp
- }
- else{
- Color<- Tmp
- }
- }# 11.08.24
- }
- Iro<- Ratiocmyk(Color)
- if(length(Iro)==0) return(c())
- Str<- "\\color[cmyk]{" #17.09.22
- for(J in 1:4){
- Str<- paste(Str,as.character(Kosa*Iro[J]),sep="")
- if(J<4){
- Str<- paste(Str,",",sep="")
- }
- }
- Str<- paste(Str,"}",sep="")
- Texcom(Str)
-}
-
-##################################
-
-Setmarklen<- function(...)
-{
- varargin<- list(...)
- Nargs<- length(varargin)
- if(Nargs==0){
- Tmp<- MARKLENNow/MARKLENInit
- Tmp=round(Tmp*100)/100
- return(Tmp)
- }
- Size<- varargin[[1]]
- MARKLENNow<<- MARKLENInit*Size
- MARKLEN<<- MARKLENNow*1000/2.54/MilliIn
-}
-
-###############################
-
-Setorigin<- function(...)
-{
- varargin<- list(...)
- Nargs<- length(varargin)
- if(Nargs==0){
- return(GENTEN)
- }
- Pt<- varargin[[1]]
- GENTEN<<- Pt;
-}
-
-################################
-
-Setscaling<- function(...)
-{
- varargin<- list(...)
- Nargs<- length(varargin)
- if(Nargs==0)
- {
- return(c(SCALEY,LOGX,LOGY))
- }
- for (I in 1:Nargs)
- {
- Tmp<- varargin[[I]]
- if(mode(Tmp)=="numeric")
- {
- SCALEY<<- Tmp
- }
- if(mode(Tmp)=="character")
- {
- if(Tmp=="l")
- {
- LOGX<<- 0
- LOGY<<- 1
- }
- else if(Tmp=="ll")
- {
- LOGX<<- 1
- LOGY<<- 1
- }
- else
- {
- LOGX<<- 0
- LOGY<<- 0
- }
- }
- }
- Tmp<- c(SCALEY,LOGX,LOGY);
-}
-
-#########################################
-
-Setpen<-function(Width)
-{
- PenThick<<-round(PenThickInit*Width)
- Str=paste("\\special{pn ", as.character(PenThick),"}%\n",sep="")
- cat(Str,file=Wfile,append=TRUE)
-}
-
-##############################################
-
-Setpt<- function(...)
-{
- varargin<- list(...)
- Nargs<- length(varargin)
- if(Nargs==0)
- {
- Tmp<- TenSize/TenSizeInit
- Tmp<- round(Tmp*100)/100
- return(Tmp)
- }
- Size<- varargin[[1]]
- TenSize<<- TenSizeInit*Size;
-}
-
-##############################################
-
-Setunitlen<-function(...)
-{
- varargin<-list(...)
- if(length(varargin)==0){
- return(ULEN)
- }
- Ul=varargin[[1]]
- Dx<-XMAX-XMIN
- Dy<-YMAX-YMIN
- Sym<-".0123456789 +-*/"
- SL<-Sym
- OL<-"+-*/"
- if(nchar(Ul)>0){
- ULEN<<-Ul
- }
- Is<-1
- VL<-""
- Ucode<-ULEN
- for (I in 1:nchar(Ucode)){
- C<-substring(Ucode,I,I)
- if(length(grep(C,SL))>0){
- if(length(grep(C,OL))>0){
- Tmp<-substring(Ucode,Is,I-1)
- Str<-paste(VL,Tmp,C,sep="")
- VL<-Str
- Is<-I+1
- }
- }
- else{
- Unit<-substring(Ucode,I,I+1)
- Str<-substring(Ucode,Is,I-1)
- VL<-paste(VL,Str,sep="")
- break;
- }
- }
- Valu<-eval(parse(text=VL))
- Str<-as.character(Valu)
- ULEN<<-paste(Str,Unit,sep="");
- if(Unit=="cm") MilliIn<<-1000/2.54*Valu
- if(Unit=="mm") MilliIn<<-1000/2.54*Valu/10
- if(Unit=="in") MilliIn<<-1000*Valu
- if(Unit=="pt") MilliIn<<-1000/72.27*Valu
- if(Unit=="pc") MilliIn<<-1000/6.022*Valu
- if(Unit=="bp") MilliIn<<-1000/72*Valu
- if(Unit=="dd2") MilliIn<<-1000/1238/1157/72.27*Valu
- if(Unit=="cc") MilliIn<<-1000/1238/1157/72.27*12*Valu
- if(Unit=="sp") MilliIn<<-1000/72.27/65536*Valu/10
- MARKLEN<<-MARKLENNow*1000/2.54/MilliIn
- MEMORI<<-MEMORINow*1000/2.54/MilliIn #17.12.17
-}
-
-#########################################
-# 10.11.20
-
-Setwindow<-function(...)
-{
- varargin<-list(...)
- Nargs<-length(varargin)
- if(Nargs==0){
- Out<-c(XMIN,XMAX,YMIN,YMAX)
- return(Out)
- }
- if(Nargs==1){
- Dt<- varargin[[1]]
- if(is.list(Dt) && !is.data.frame(Dt)){
- Tmp<- as.data.frame(Dt)
- Dt<- t(Tmp)
- }
- Xm<- min(Dt[,1])
- XM<- max(Dt[,1])
- Ym<- min(Dt[,2])
- YM<- max(Dt[,2])
- Str<- "Setwindow("
- Str<- paste(Str,"c(",as.character(Xm),",",as.character(XM),"),c(",sep="")
- Str<- paste(Str,as.character(Ym),",",as.character(YM),")",sep="")
- Str<- paste(Str,")",sep="")
- print(Str)
- }
- if(Nargs==2){
- RgX<-varargin[[1]]
- RgY<-varargin[[2]]
- XMIN<<-RgX[1]; XMAX<<-RgX[2]
- YMIN<<-RgY[1]; YMAX<<-RgY[2]
- }
- if(Nargs==4){
- XMIN<<-varargin[[1]]; XMAX<<-varargin[[2]]
- YMIN<<-varargin[[3]]; YMAX<<-varargin[[4]]
- }
- Out<- c(XMIN,XMAX,YMIN,YMAX);
-}
-
-#########################################
-
-Shade<- function(...)
-{ ## Scaling is implemented
- varargin<- list(...)
- Nargs<- length(varargin)
- Iroflg=0
- Kosa=1
- if(Nargs>1){
- Iro=varargin[[Nargs]]
- if(is.character(Iro)){
- Iroflg=1
- if(length(grep("{",Iro))>0){
- Str=paste("{\\color",Iro,sep="")
- }
- else{
- Str=paste("{\\color{",Iro,"}",sep="")
- }
- }
- else{
- if(length(Iro)==1){
- Kosa=Iro
- }
- else{
- Iroflg=1
- if(length(Iro)==4){
- Str="{\\color[cmyk]{"
- }
- else{
- if(length(Iro)==3){
- Str="{\\color[rgb]{"
- }
- }
- for(J in 1:length(Iro)){
- Str=paste(Str,as.character(Iro[J]),sep="")
- if(J<length(Iro)){
- Str=paste(Str,",")
- }
- }
- Str=paste(Str,"}")
- }
- }
- if(Iroflg==1){
- Str=paste(Str,"%\n",sep="")
- cat(Str,file=Wfile,append=TRUE)
- }
- }
- Tmp=varargin[[1]]
- Data=Kyoukai(Tmp)
- for (I in Looprange(1, length(Data))){
- PL<- Op(I,Data)
- Mojisu<- 0
- for (J in 1:Nrow(PL)){
- P<- Doscaling(Op(J,PL))
- X<- as.character(round(MilliIn*P[1]))
- Y<- as.character(-round(MilliIn*P[2]))
- Str<- paste("\\special{pa ",X," ",Y,"}",sep="")
- cat(Str,file=Wfile,append=TRUE)
- Mojisu<- Mojisu+nchar(Str)
- if(Mojisu>80){
- cat("%\n",file=Wfile,append=TRUE)
- Mojisu<- 0
- }
- }
- Str1<- paste("\\special{sh ",as.character(Kosa),"}",sep="")
- Str2<- paste("\\special{ip}%\n",sep="")
- cat(Str1,file=Wfile,append=TRUE)
- cat(Str2,file=Wfile,append=TRUE)
- }
- if(Iroflg==1){
- cat("}%\n",file=Wfile,append=TRUE)
- }
-}
-
-####### Shade new 17.09.24############
-
-Shade<- function(...)
-{ ## Scaling is implemented
- varargin<- list(...)
- Nargs<- length(varargin)
- Iroflg<- 0
- Kosa<- 1
- if(Nargs>1){
- Iro<- varargin[[Nargs]]
- if(mode(Iro)=="character"){
- Iroflg<- 1
- if(length(grep(Iro,"{"))>0)
- Str<- paste("{\\color",Iro,sep="")
- else
- Str<- paste("{\\color{",Iro,"}",sep="")
- }
- else{
- if(length(Iro)==1)
- Kosa<- Iro
- else{
- Iroflg<- 1
- if(length(Iro)==4)
- Str<- paste("{\\color[cmyk]{",sep="")
- else
- if(length(Iro)==3)
- Str<- paste("{\\color[rgb]{",sep="")
- for (J in Looprange(1,length(Iro))){
- Str<- paste(Str,as.character(Iro[J]),sep="")
- if(J<length(Iro))
- Str<- paste(Str,",",sep="")
- }
- Str<- paste(Str,"}",sep="")
- }
- }
- if(Iroflg==1){
- if(Wfile=="default")
- cat(Str,"%\n",file="",append=TRUE,sep="")
- else
- cat(Str,"%\n",file=Wfile,append=TRUE,sep="")
- }
- }
- Tmp<- varargin[[1]]
- Data<- Kyoukai(Tmp)
- for (I in Looprange(1, length(Data))){
- PL<- Op(I,Data)
- Mojisu<- 0
- for (J in 1:Nrow(PL)){
- P<- Doscaling(Op(J,PL))
- X<- as.character(round(MilliIn*P[1]))
- Y<- as.character(-round(MilliIn*P[2]))
- Str<- paste("\\special{pa ",X," ",Y,"}",sep="")
- if(Wfile=="default")
- cat(Str,file="",append=TRUE,sep="")
- else
- cat(Str,file=Wfile,append=TRUE,sep="")
- Mojisu<- Mojisu+nchar(Str)
- if(Mojisu>80){
- if(Wfile=="default")
- cat("%\n",file="",append=TRUE,sep="")
- else
- cat("%\n",file=Wfile,append=TRUE,sep="")
- Mojisu<- 0
- }
- }
- Str1<- paste("\\special{sh ",as.character(Kosa),"}",sep="")
- Str2<- paste("\\special{ip}%\n",sep="")
- if(Wfile=="default"){
- cat(Str1,file="",append=TRUE,sep="")
- cat(Str2,file="",append=TRUE,sep="")
- }
- else{
- cat(Str1,file=Wfile,append=TRUE,sep="")
- cat(Str2,file=Wfile,append=TRUE,sep="")
- }
- }
- if(Iroflg==1){
- if(Wfile=="default")
- cat("}%\n",file="",append=TRUE,sep="")
- else
- cat("}%\n",file=Wfile,append=TRUE,sep="")
- }
-}
-
-##############################################
-# 11.01.07
-
-Splinedata<- function(...)
-{
- varargin<- list(...)
- Nargs<- length(varargin)
- Eps<- 10^(-3)
- PL<- varargin[[1]]
- if(mode(PL)=="character"){
- Fname<- PL
- PL<- Readtextdata(Fname)
- }
- else{
- PL<- as.matrix(PL)
- if(Nrow(PL)==1){
- PL<- matrix(PL, nrow=length(PL)/2)
- PL<- t(PL)
- }
- }
- if(ncol(PL)==3){
- Flg3<- 1
- }
- else{
- Flg3<- 0
- }
- PLL<- Dividegraphics(PL)
- N<- 50
- C<- c()
- for (I in Looprange(2,Nargs)){
- Tmp<- varargin[[I]]
- if(mode(Tmp)!="character") next
- if(length(grep("=",Tmp,fixed=TRUE))>0){
- eval(parse(text=Tmp))
- }
- else{
- Tmp1<- substr(Tmp,1,1)
- if(toupper(Tmp1)=="C"){
- C<- 1:length(PLL)
- }
- }
- }
- Cflg<- rep(0,length(PLL))
- for(J in Looprange(1,length(C))){
- K<- C[J]
- Cflg[K]<- 1
- }
- if(length(N)>1){
- Nj<- as.numeric(N)
- }
- else{
- Tmp<- lapply(PLL,nrow)
- Tmp1<- as.numeric(Tmp)
- MxP<- max(Tmp1)
- Nj<- c()
- for (J in 1:length(PLL)){
- Tmp<- nrow(PLL[[J]])
- Tmp1<- round(N/MxP*(Tmp-1))
- Nj<- c(Nj,Tmp1)
- }
- }
- OutL<- list()
- for(J in 1:length(PLL)){
- PL<- PLL[[J]]
- if(Cflg[J]==1){
- if(Norm(PL[1,]-PL[Nrow(PL),])>Eps){
- PL<-Appendrow(PL,PL[1,])
- Nj[J]=round(N/MxP*nrow(PL))
- }
- else{
- PL[Nrow(PL),]<- PL[1,]
- }
- }
- Tn<- 1:Nrow(PL)
- Xn<- PL[,1]
- Yn<- PL[,2]
- if(Flg3==1) Zn<- PL[,3]
- if(Cflg[J]==0){
- Dxn<- spline(Tn,Xn,n=Nj[J])
- Dyn<- spline(Tn,Yn,n=Nj[J])
- if(Flg3==1) Dzn<- spline(Tn,Zn,n=Nj[J])
- }
- else{
- Dxn<- spline(Tn,Xn,method="periodic")
- Dyn<- spline(Tn,Yn,method="periodic")
- if(Flg3==1) Dzn<- spline(Tn,Zn,method="periodic")
- }
- Tmp1<- Dxn$y
- Tmp2<- Dyn$y
- Tmp3<-c()
- if(Flg3==1) Tmp3<- Dzn$y
- Out<- matrix(c(Tmp1,Tmp2,Tmp3),nrow=length(Tmp1))
- OutL<- c(OutL,list(Out))
- }
- return(OutL)
-}
-
-############################################
-# 2013.05.03 Domain is optional
-
-Tabledata<- function(...){
- varargin<- list(...)
- Eps<- 0.001
- Tmp<- varargin[[1]] # 130503 from
- if(is.numeric(Tmp)){
- Domain<- varargin[[1]]
- VL<- varargin[[2]]
- HL<- varargin[[3]]
- }
- else{
- Domain<- c(-1,-1)
- VL<- varargin[[1]]
- HL<- varargin[[2]]
- } # 130503 upto
- Hsize<- Domain[1]
- SvL<- list(0)
- S<- 0
- for (I in Looprange(1,length(VL))){
- Tmp<- VL[[I]]
- S<- S+Tmp[1]
- Tmp[1]<- S
- SvL<- c(SvL,list(Tmp))
- }
- if(Hsize>S){
- SvL<- c(SvL,list(Hsize))
- }
- Hsize<- Op(1,SvL[[length(SvL)]])
- Vsize<- Domain[2]
- ShL<- list(0)
- S<- 0
- for (I in Looprange(1,length(HL))){
- Tmp<- HL[[I]]
- S<- S+Tmp[1]
- Tmp[1]<- S
- ShL<- c(ShL,list(Tmp))
- }
- if(Vsize>S){
- ShL<- c(ShL,list(Vsize))
- }
- Vsize<- Op(1,ShL[[length(ShL)]])
- Marw<- 0; Mare<- 0; Mars<- 0; Marn<- 0
- if(length(Domain)>2){
- Marw<- Domain[3]
- Mare<- Domain[4]
- }
- if(length(Domain)>4){
- Marn<- Domain[5]
- Mars<- Domain[6]
- }
- Setwindow(c(-Marw,Hsize+Mare),c(-Mars,Vsize+Marn))
- Tmp<- Framedata(c(Eps,Hsize-Eps),c(Eps,Vsize-Eps))
- Gdata<- list(Tmp)
- Tmp<- -Marw
- Hdata<- list(Listplot(c(c(Tmp,-Mars),c(Tmp,Vsize+Marn))))
- for (I in Looprange(1,length(SvL))){
- Data<- SvL[[I]]
- X<- Data[1]
- if(length(Data)==1){
- Y1<- 0
- Y2<- Vsize
- G<- Listplot(c(X,Y1),c(X,Y2))
- }
- else{
- G<- c()
- for (J in seq(2,length(Data),by=2)){
- Y1<- Vsize-Op(1,ShL[[Data[J]]])
- Y2<- Vsize-Op(1,ShL[[Data[J+1]]])
- Tmp<- Listplot(c(c(X,Y1),c(X,Y2)))
- Tmp1<- Appendrow(G,c(Inf,Inf))
- G<- Appendrow(Tmp1,Tmp)
- }
- G<- G[2:nrow(G),]
- }
- Hdata<- c(Hdata,list(G))
- }
- Tmp<- Hsize+Mare
- Tmp1<- Listplot(c(c(Tmp,-Mars),c(Tmp,Vsize+Marn)))
- Hdata<- c(Hdata,list(Tmp1))
- Tmp<- Vsize+Marn
- Vdata<- list(Listplot(c(c(-Marw,Tmp),c(Hsize+Mare,Tmp))))
- for (I in Looprange(1,length(ShL))){
- Data<- ShL[[I]]
- Y<- Vsize-Data[1]
- if(length(Data)==1){
- X1<- 0
- X2<- Hsize
- G<- Listplot(c(X1,Y),c(X2,Y))
- }
- else{
- G<- c()
- for (J in seq(2,length(Data),by=2)){
- X1<- Op(1,SvL[[Data[J]]])
- X2<- Op(1,SvL[[Data[J+1]]])
- Tmp<- Listplot(c(X1,Y),c(X2,Y))
- G<- Appendrow(G,c(Inf,Inf))
- G<- Appendrow(G,Tmp)
- }
- G<-G[2:nrow(G),]
- }
- Vdata<- c(Vdata,list(G))
- }
-# Tmp<- Listplot(c(c(0,0),c(Hsize,0))) # 2011.03.02
-# Vdata<- Mixjoin(Vdata,list(Tmp))
- Tmp<- Listplot(c(c(-Marw,-Mars),c(Hsize+Mare,-Mars)))
- Vdata<- Mixjoin(Vdata,list(Tmp))
- Tmp1<- Hdata[Looprange(3,length(Hdata)-2)]
- Tmp2<- Vdata[Looprange(3,length(Vdata)-2)]
- Gdata<- Mixjoin(Gdata,Tmp1,Tmp2)
- Hind<- Looprange(2,1+length(Tmp1))
- Vind<- Looprange(2+length(Tmp1),1+length(Tmp1)+length(Tmp2))
- G=Gdata[[1]]
- P1<- Ptsw(G); P2<- Ptnw(G)
- Q1<- Ptse(G); Q2<- Ptne(G)
- Tmp1<- list(Listplot(c(P1,P2)),Listplot(c(Q1,Q2)))
- P1<- Ptnw(G); P2<- Ptne(G)
- Q1<- Ptsw(G); Q2<- Ptse(G)
- Tmp2<- list(Listplot(c(P1,P2)),Listplot(c(Q1,Q2)))
- Tmp3<- Framedata()
- Out<- list(Gdata,Hind,Vind,Tmp1,Tmp2,Tmp3)
- return(Out)
-}
-
-################################
-
-Texcom<- function(Meirei)
-{
- if(Meirei=="\\thinlines"){
- Setpen(1);
- return();
- }
- if(Meirei=="\\thicklines"){
- Setpen(2);
- return()
- }
- if(Meirei=="\\Thicklines"){
- Setpen(3);
- return()
- }
- if(length(Meirei)==0){ # 09.12.07
- Tmp<- c()
- }
- else{
- Tmp<- grep("newline",Meirei)
- }
- if(length(Tmp)>0){
- cat("\n",file=Wfile,append=TRUE);
- }
- else{
- Tmp<- paste(Meirei,"%\n",sep="")
- Tmp<- gsub("//","\\",Tmp,fixed=TRUE) # 11.03.02
- cat(Tmp,file=Wfile,append=TRUE);
- }
-}
-
-###############################################
-
-Texctr<- function(N){
- if(is.numeric(N)){
- Alpha<- "abcdefghijklmnopqrstuvwxyz"
- Out<- paste("ketpicctr",substr(Alpha,N,N),sep="")
- }
- else{
- if(grep("\\",N,fixed=TRUE)>0){
- Out<- substr(N,2,nchar(N))
- }
- else{
- Out<- N
- }
- }
- return(Out)
-}
-
-###############################################
-
-Texelse<- function (){
- Texcom("");
- Texcom("\\else")
-}
-
-###############################################
-
-Texend<- function()
-{
- Texcom("%\n}")
-}
-
-###############################################
-
-Texendfor<- function(I){
- Last<- TEXFORLAST[[TEXFORLEVEL]]
- Texcom("")
- Tmp<- paste("\\ifnum",Texthectr(I),"<",Last,sep="")
- Texcom(Tmp)
- Texcom("\\repeat")
- Texcom("}")
- TEXFORLEVEL<<- TEXFORLEVEL-1
- TEXFORLAST<<- TEXFORLAST[1:(length(TEXFORLAST)-1)]
-}
-
-###############################################
-
-Texendif<- function(){
- Texcom("")
- Texcom("\\fi")
- Texcom("}")
-}
-
-###############################################
-
-Texfor<- function(I,First,Last){
- TEXFORLEVEL<<- TEXFORLEVEL+1;
- Texsetctr(I,"0")
- Texsetctr(I,paste(as.character(First),"-1",sep=""))
- Texcom("")
- Texcom("{")
- Texcom("\\loop")
- Texsetctr(I,"+1")
- TEXFORLAST<<- c(TEXFORLAST,as.character(Last))
-}
-
-###############################################
-
-Texforinit<- function(){
- TEXFORLEVEL<<- 0
- TEXFORLAST<<- list()
-}
-
-###############################################
-
-Texif<- function(...){
- varargin<- list(...)
- Condstr<- varargin[[1]]
- Tp<- 0
- if(length(varargin)>1){
- Tp<- varargin[[2]]
- }
- Texcom("")
- Texcom("{")
- if(Tp==0){
- Texcom("\\ifnum")
- }
- else{
- Texcom("\\ifdim ")
- }
- Texcom(paste(Condstr," ",sep=""))
-}
-
-######################################
-
-Texletter<- function(...)
-{
- varargin<- list(...)
- Nargs<- length(varargin)
- for (I in seq(1,Nargs,by=3)){
- P<- varargin[[I]]
- X<- P[1]
- if(mode(X)=="numeric"){
- X<- as.character(X)
- }
- Y<- P[2]
- if(mode(Y)=="numeric"){
- Y<- as.character(Y)
- }
- Houkou<- varargin[[I+1]]
- Mojiretu<- varargin[[I+2]]
- Hset<- Houkou
- Vhoko<- "c"
- if(length(grep("n",Hset))>0){
- Vhoko<- "n"
- }
- if(length(grep("s",Hset))>0){
- Vhoko<- "s"
- }
- Hhoko<- "c";
- if(length(grep("e",Hset))>0){
- Hhoko<- "e"
- }
- if(length(grep("w",Hset))>0){
- Hhoko<- "w"
- }
- Hoko<- paste(Vhoko,Hhoko,sep="")
- CalcWidth(Hoko,Mojiretu)
- CalcHeight(Hoko,Mojiretu)
- Tmp<- paste("\\put(",X,",",Y,"){\\hspace*{\\Width}",sep="")
- Str<- paste(Tmp,"\\raisebox{\\Height}{",Mojiretu,"}}%\n",sep="")
- cat(Str,file=Wfile,append=TRUE)
- }
-}
-
-##################################################
-
-Texnewcmd<- function(...)
-{
- varargin<- list(...)
- Nargs<- length(varargin)
- Str<- varargin[[1]]
- S<- paste("\\newcommand{",Str,"}",sep="")
- if(Nargs>1){
- Tmp<- as.character(varargin[[2]])
- S<- paste(S,"[",Tmp,"]",sep="")
- }
- if(Nargs>2){
- Tmp<- varargin[[3]]
- if(mode(Tmp)=="numeric"){
- Tmp<- as.character(Tmp)
- }
- S<- paste(S,"[",Tmp,"]",sep="")
- }
- S<- paste(S,"{",sep="")
- Texcom(S)
-}
-
-###############################################
-
-Texnewctr<- function(N)
-{
- if(mode(N)=="character"){
- Str<- paste("\\newcounter{",N,"}",sep="")
- Texcom(Str)
- }
- else{
- for (I in N){
- Str<- paste("\\newcounter{",Texctr(I),"}",sep="")
- Texcom(Str)
- }
- }
-}
-###############################################
-
-Texrenewcmd<- function(...)
-{
- varargin<- list(...)
- Nargs<- length(varargin)
- Str<- varargin[[1]]
- S<- paste("\\renewcommand{",Str,"}",sep="")
- if(Nargs>1){
- Tmp<- as.character(varargin[[2]])
- S<- paste(S,"[",Tmp,"]",sep="")
- }
- if(Nargs>2){
- Tmp<- varargin[[3]]
- if(mode(Tmp)=="numeric"){
- Tmp<- as.character(Tmp)
- }
- S<- paste(S,"[",Tmp,"]",sep="")
- }
- S<- paste(S,"{",sep="")
- Texcom(S)
-}
-
-###############################################
-
-Texsetctr<- function(Nctr,Opstr)
-{
- Ctr<- Texctr(Nctr)
- Opstr<- paste(Opstr,"%",sep="")
- OperL<- "+-*/%"
- Oper<- ""
- Va<- ""
- Evflg<- 0
- Paflg<- 0
- for (I in Looprange(1,nchar(Opstr))){
- Tmp<- substring(Opstr,I,I)
- if(Tmp=="("){
- Paflg<- 1
- if(nchar(Va)>0){
- Evflg<- 1
- Va<- paste(Va,Tmp,sep="")
- }
- next
- }
- if(Tmp==")"){
- Paflg<- 0
- if(Evflg>0){
- Va<- paste(Va,Tmp,sep="")
- }
- next
- }
- if(Paflg>0){
- Va<- paste(Va,Tmp,sep="")
- next
- }
- if(length(grep(Tmp,OperL))==0){
- Va<- paste(Va,Tmp,sep="")
- }
- else{
- if(Evflg>0){
- Tmp1<- eval(parse(text=Va))
- Va<- paste("\\value{",Tmp1,"}",sep="")
- Evflg<- 0
- }
- if(Oper==""){
- if(nchar(Va)>0){
- Str<- paste("\\setcounter{",Ctr,"}{",Va,"}",sep="")
- Texcom(Str)
- }
- Oper<- Tmp
- Va<-""
- }
- else if(Oper=="+"){
- Str<- paste("\\addtocounter{",Ctr,"}{",Va,"}",sep="")
- Texcom(Str)
- Oper<- Tmp
- Va<-""
- }
- else if(Oper=="-"){
- Str<- paste("\\addtocounter{",Ctr,"}{-",Va,"}",sep="")
- Texcom(Str)
- Oper<- Tmp
- Va<-""
- }
- else if(Oper=="*"){
- Str<- paste("\\multiply\\value{",Ctr,"} by ",Va,sep="")
- Texcom(Str)
- Oper<- Tmp
- Va<-""
- }
- else if(Oper=="/"){
- Str<- paste("\\divide\\value{",Ctr,"} by ",Va,sep="")
- Texcom(Str)
- Oper<- Tmp
- Va<-""
- }
- }
- }
-}
-
-###############################################
-
-Texthectr<- function(N)
-{
- Out<- paste("\\the",Texctr(N),sep="")
- return(Out)
-}
-
-###############################################
-
-Texvalctr<- function(N){
- Out<- paste("\\value{",Texctr(N),"}",sep="")
- return(Out)
-}
-
-###############################################
-
-Texvctr<- function(N)
-{
- Out<- paste("\\value{",Texctr(N),"}",sep="")
- return(Out)
-}
-
-###############################################
-
-Tonumeric <- function(...)
-{
- varargin<- list(...)
- Nargs<- length(varargin)
- Data<- varargin[[1]]
- Sp<- c(1,1)
- Ep<- c(Inf,Inf)
- if(Nargs>1){
- Sp<- varargin[[2]]
- }
- if(Nargs>2){
- Ep<- varargin[[3]]
- }
- Nrs<- Sp[1]
- Nre<- min(nrow(Data),Ep[1])
- Ncs<- Sp[2]
- Nce<- min(ncol(Data),Ep[2])
- Tmp1<- Data[Nrs:Nre, Ncs:Nce]
- Tmp2 <- as.numeric(Tmp1)
- Out <- matrix(Tmp2,nrow=nrow(Tmp1))
- Sp<- c()
- for (I in 1:nrow(Out)){
- for (J in 1:ncol(Out)){
- Tmp<- Out[I,J]
- if(!is.na(Tmp)){
- Sp<- c(I,J)
- break;
- }
- }
- if(length(Sp)>0) break
- }
- if(length(Sp)==0){
- return("Numeric data not found")
- }
- Ep<- c(nrow(Out),ncol(Out))
- for (I in Sp[1]:nrow(Out)){
- Tmp<- Out[I,Sp[2]]
- if(is.na(Tmp)){
- Ep[1]<- I-1
- break
- }
- }
- for (J in Sp[2]:ncol(Out)){
- Tmp<- Out[Sp[1],J]
- if(is.na(Tmp)){
- Ep[2]<- J-1
- break
- }
- }
- Out<- Out[Sp[1]:Ep[1], Sp[2]:Ep[2]]
- return(Out)
-}
-
-##################################################
-
-Translatedata<- function(...)
-{
- varargin<- list(...)
- Nargs<- length(varargin)
- Eps<- 10^(-8)
- ML<- varargin[[1]]
- if(Mixtype(ML)==1){
- ML<- list(ML)
- }
- Tmp=varargin[[2]]
- if(mode(Tmp)=="numeric" && length(Tmp)>1){
- A<- Tmp[1]; B<- Tmp[2]
- }
- else{
- A<- Tmp
- if(Nargs>=3){
- B<- varargin[[3]]
- }
- else{
- B<- 0
- }
- }
- OutL<- list()
- for (N in Looprange(1,length(ML))){
- GL<- Op(N,ML)
- Out<- c()
- for (I in Looprange(1,Nrow(GL))){
- if(is.matrix(GL)){ # 10.12.07
- Tmp<- GL[I,]
- }
- else{
- Tmp<- GL
- }
- X1<- Tmp[1]
- Y1<- Tmp[2]
- if(X1==Inf){
- X2<- X1
- Y2<-Y1
- }
- else{
- X2<- X1+A
- Y2<- Y1+B
- }
- Out<- Appendrow(Out,c(X2,Y2))
- }
- OutL<- Mixjoin(OutL,list(Out))
- }
- if(length(OutL)==1){
- OutL<- Op(1,OutL)
- }
- return(OutL)
-}
-
-#######################################
-
-Unscaling<- function(G)
-{
- GLg<- G
- if(class(GLg)=="numeric"){
- GLg<-c(G[1]/SCALEX, G[2]/SCALEY)
- Tmp<-GLg
- if(LOGX==1) Tmp[1]<- 10^(GLg[1])
- if(LOGY==1) Tmp[2]<- 10^(GLg[2])
- return(Tmp)
- }
- else{
- Tmp1<-matrix(c(1/SCALEX,0,0,1/SCALEY),nrow=2)
- GLg<-G %*% Tmp1
- Tmp<-GLg
- if(LOGX==1) Tmp[,1]<- 10^(G[,1])
- if(LOGY==1) Tmp[,2]<- 10^(G[,2])
- return(Tmp)
- }
-}
-
-#############################################
-
-Vtickmark<- function(...)
-{ ## Scaling is implemented
- varargin<- list(...)
- Nargs<- length(varargin)
- ArgsL<- varargin
- if(mode(ArgsL[[1]])=="character"){
- Str<- ArgsL[[1]]
- Tmp<- strsplit(Str,"m")
- Tmp<- Tmp[[1]]
- if(length(Tmp)>1){
- I<- nchar(Tmp[1])+1
- }
- else{
- I<- 0
- }
- Tmp<- strsplit(Str,"n")
- Tmp<- Tmp[[1]]
- if(length(Tmp)>1){
- J<- nchar(Tmp[1])+1
- }
- else{
- J<- 0
- }
- Tmp<- strsplit(Str,"r")
- Tmp<- Tmp[[1]]
- if(length(Tmp)>1){
- K=nchar(Tmp[1])+1
- }
- else{
- K<- 0
- }
- if(K>0){
- S<- substr(Str,K+1,nchar(Str))
- R<- as.numeric(S)
- if(is.na(R)){
- R<- 1
- }
- }
- else{
- R<- 1
- K<- nchar(Str)+1
- }
- if(J>0){
- S<- substr(Str,J+1,K-1)
- Dn<- as.numeric(S)
- if(is.na(Dn)){
- Dn<- 1
- }
- }
- else{
- Dn<- 1000
- J<- nchar(Str)+1
- }
- S<- substr(Str,I+1,J-1)
- Dm<- as.numeric(S)
- if(is.na(Dm)){
- Dm<- 1
- }
- ArgsL<- list()
- for (I in 1:floor((YMAX-GENTEN[2])/Dm)){
- ArgsL<- Mixjoin(ArgsL,I*Dm)
- if(I-floor(I/Dn)*Dn==0){
- Str<- as.character(I*Dm*R)
- ArgsL<- Mixjoin(ArgsL,Str)
- }
- }
- for (I in seq(-1,ceiling((YMIN-GENTEN[2])/Dm))){
- ArgsL<- Mixjoin(ArgsL,I*Dm)
- if(I-floor(I/Dn)*Dn==0){
- Str<- as.character(I*Dm*R)
- ArgsL<- Mixjoin(ArgsL,Str)
- }
- }
- }
- MemoriList<- list()
- Memori<- list()
- for (N in 1:length(ArgsL)){
- Dt<- ArgsL[[N]]
- if(mode(Dt)=="numeric" && length(Dt)>1){
- if(length(Memori)>0){
- MemoriList<- Mixjoin(MemoriList,list(Memori))
- }
- Memori<- list(Dt[1],Dt[2])
- next
- }
- if(mode(Dt)=="character"){
- Memori<- Mixjoin(Memori,Dt)
- }
- else{
- if(length(Memori)>0){
- MemoriList<- Mixjoin(MemoriList,list(Memori))
- }
- Memori<- list(GENTEN[1],Dt)
- }
- }
- MemoriList<- Mixjoin(MemoriList,list(Memori))
- for (N in 1:length(MemoriList)){
- Dt<- MemoriList[[N]]
- Ndt<- length(Dt)
- X=Op(1,Dt)
- Y=Op(2,Dt)
- Tmp<-Doscaling(c(X,Y))
- X<- Tmp[1]
- Y<- Tmp[2]
- Moji<- Op(Ndt,Dt)
- Tmp1<- Unscaling(c(X+MARKLEN,Y))
- Tmp2<- Unscaling(c(X-MARKLEN,Y))
- Fd<- Listplot(c(Tmp1,Tmp2))
- Drwline(Fd)
- if(Ndt==3){
- Tmp<-Unscaling(c(X-MARKLEN,Y))
- Expr(Tmp,"w",Moji)
- }
- if(Ndt==4){
- Houkou<- Op(3,Dt)
- Tmp<-grep("w",Houkou)
- if(length(Tmp)>0){
- Tmp<-Unscaling(c(X-MARKLEN,Y))
- Expr(Tmp,Houkou,Moji)
- }
- else{
- Tmp<- Unscaling(c(X+MARKLEN,Y))
- Expr(Tmp,Houkou,Moji)
- }
- }
- cat("%\n",file=Wfile,append=TRUE)
- }
-}
-
-############################################
-
-Windisp<-function(...){
- varargin<-list(...)
- Nargs<-length(varargin)
- Tmp<- Doscaling(c(XMIN,YMIN))
- Xmn<- Tmp[1]; Ymn<- Tmp[2]
- Tmp<- Doscaling(c(XMAX,YMAX))
- Xmx<- Tmp[1]; Ymx<- Tmp[2]
- plot(c(Xmn,Xmx),c(Ymn,Ymx),type="n",asp=1,axes=FALSE,xlab="",ylab="")
- Tmp<- Doscaling(Listplot(c(0,YMIN),c(0,YMAX)))
- axis(2,at=as.numeric(Tmp[,2]), labels=round(c(YMIN,YMAX),2))
- Tmp<- Doscaling(Listplot(c(XMIN,0),c(XMAX,0)))
- axis(1,at=as.numeric(Tmp[,1]), labels=round(c(XMIN,XMAX),2))
- Tmp1<- c(XMIN,GENTEN[2])
- Tmp2<- c(XMAX,GENTEN[2])
- Tmp3<- Listplot(Tmp1,Tmp2)
- Tmp<- MakeCurves(Tmp3,0)
- if(Datalength(Tmp)>0){
- lines(Tmp[,1],Tmp[,2],col="green")
- }
- Tmp1<- c(GENTEN[1],YMAX)
- Tmp2<- c(GENTEN[1],YMIN)
- Tmp3<- Listplot(Tmp1,Tmp2)
- Tmp<- MakeCurves(Tmp3,0)
- if(Datalength(Tmp)>0){
- lines(Tmp[,1],Tmp[,2],col="green")
- }
- Tmp<-Doscaling(Framedata())
- lines(Tmp[,1],Tmp[,2])
- for (I in Looprange(1,Nargs)){
- Pdata<-varargin[[I]]
- if(mode(Pdata)=="numeric"){
- Pdata<-list(Pdata)
- }
- while(Mixtype(Pdata)==3){ # 10.02.23
- Tmp1<- list()
- for(II in Looprange(1,length(Pdata))){
- Tmp1<- Mixjoin(Tmp1,Pdata[[II]])
- }
- Pdata<- Tmp1
- } # 10.02.23
- for (II in Looprange(1,length(Pdata))){
- Tmp<-Pdata[[II]]
- P<-MakeCurves(Tmp,0)
- Ndm<-Dataindex(P)
- for (J in Looprange(1,Nrow(Ndm))){
- Q<-P[Ndm[J,1]:Ndm[J,2],]
- if(Nrow(Q)==1){
- Tmp<-seq(1,Ncol(Q),by=2)
- for (K in Tmp){
- Pt<-Q[K:(K+1)]
- points(Pt[1],Pt[2])
- }
- }
- else{
- lines(Q[,1],Q[,2])
- }
- }
- }
- }
-}
-
-############################################
-
-WindispT<-function(..., color="black",width=1,new=FALSE,htick=c(),vtick=c()){ # 10.12.04
- par(new=new)
- varargin<-list(...)
- Nargs<-length(varargin)
- if(!new) # 10.12.04
- {
- Tmp<- Doscaling(c(XMIN,YMIN))
- Xmn<- Tmp[1]; Ymn<- Tmp[2]
- Tmp<- Doscaling(c(XMAX,YMAX))
- Xmx<- Tmp[1]; Ymx<- Tmp[2]
- plot(c(Xmn,Xmx),c(Ymn,Ymx),type="n",asp=1,axes=FALSE,xlab="",ylab="")
- Tick<- sort(c(YMIN,YMAX,vtick)) #### 10.12.04 from here
- Tmp1<- matrix(c(rep(0,length(Tick)),Tick),ncol=2)
- Tmp<- Doscaling(Tmp1)
- axis(2,at=as.numeric(Tmp[,2]), labels=round(Tick,2))
- Tick<- sort(c(XMIN,XMAX,htick))
- Tmp1<- matrix(c(Tick,rep(0,length(Tick))),ncol=2)
- Tmp<- Doscaling(Tmp1)
- axis(1,at=as.numeric(Tmp[,1]), labels=round(Tick,2)) #### 10.12.04 to here
- Tmp1<- c(XMIN,GENTEN[2])
- Tmp2<- c(XMAX,GENTEN[2])
- Tmp3<- Listplot(Tmp1,Tmp2)
- Tmp<- MakeCurves(Tmp3,0)
- if(Datalength(Tmp)>0){
- lines(Tmp[,1],Tmp[,2],col="green")
- }
- Tmp1<- c(GENTEN[1],YMAX)
- Tmp2<- c(GENTEN[1],YMIN)
- Tmp3<- Listplot(Tmp1,Tmp2)
- Tmp<- MakeCurves(Tmp3,0)
- if(Datalength(Tmp)>0){
- lines(Tmp[,1],Tmp[,2],col="green")
- }
- Tmp<-Doscaling(Framedata())
- lines(Tmp[,1],Tmp[,2])
- }
- for (I in Looprange(1,Nargs)){
- Pdata<-Flattenlist(varargin[[I]]) # 101129 from here
- Cmd<- list()
- for (II in Looprange(1,length(Pdata))){
- Tmp<-Pdata[[II]]
- if(length(Tmp)==1){
- Cmd<- c(Cmd,list(Tmp))
- next
- }
-
- P<-MakeCurves(Tmp,0)
-
- if(length(Cmd)>0){
- if(length(Cmd)>=3){
- polygon(P,col=Cmd[[1]],border=Cmd[[2]],density=Cmd[[3]])
- }
- else{
- polygon(P,col=Cmd[[1]],border=Cmd[[2]])
- }
- next
- } # 101129 to here
- Ndm<-Dataindex(P)
- for (J in Looprange(1,Nrow(Ndm))){
- Q<-P[Ndm[J,1]:Ndm[J,2],]
- if(Nrow(Q)==1){
- Tmp<-seq(1,Ncol(Q),by=2)
- for (K in Tmp){
- Pt<-Q[K:(K+1)]
- points(Pt[1],Pt[2],col=color)#taka101111
- }
- }
- else{
- lines(Q[,1],Q[,2],col=color,lwd=width)#taka101111
- }
- }
- }
- }
- par(new=FALSE)
-}
-
-######################################
-
-# 3D
-
-#################################
-
-# 10.08.16
-CameracoordCurve<- function(Curve){
- Out<- c()
- for(J in Looprange(1,Nrow(Curve))){
- P<- Ptcrv(J,Curve) #P=Curve(J,:);
- Tmp<- P-FocusPoint
- X1<- Tmp[1]; Y1<- Tmp[2]; Z1<- Tmp[3]
- Tmp<- EyePoint-FocusPoint
- E1<- Tmp[1]; F1<- Tmp[2]; G1<- Tmp[3]
- Ca<- E1/sqrt(E1^2+F1^2)
- Sa<- F1/sqrt(E1^2+F1^2)
- X2<- X1*Ca+Y1*Sa; Y2<- -X1*Sa+Y1*Ca; Z2<- Z1
- E2<- E1*Ca+F1*Sa; F2<- -E1*Sa+F1*Ca; G2<- G1
- Cb<- E2/sqrt(E2^2+G2^2)
- Sb<- G2/sqrt(E2^2+G2^2)
- X3<- X2*Cb+Z2*Sb; Y3<- Y2; Z3<- -X2*Sb+Z2*Cb
- E3<- E2*Cb+G2*Sb; F3<- F2; G3<- -E2*Sb+G2*Cb
- Xz<- X3
- Yz<- E3/(E3-X3)*Y3
- Zz<- E3/(E3-X3)*Z3
- Out<- rbind(Out,c(Yz,Zz,Xz))
- }
- rownames(Out)<- 1:Nrow(Out)
- return(Out)
-}
-
-#########################################
-
-#100815
-CameraCurve<- function(Curve){
- Eps<- 10^(-6)
- for (I in Looprange(1,Nrow(Curve))){
- P<- Curve[I,]
- x<- P[1]; y<- P[2]; z<- P[3]
- if(x!=Inf){
- Tmp<- Perspt(P)
- if(I==1){
- AnsL<- rbind(c(),Tmp)
- }else{
- Tmp1<- AnsL[Nrow(AnsL),]
- if(Tmp1[1]==Inf || Norm(Tmp-Tmp1)>Eps){
- AnsL<- rbind(AnsL,Tmp)
- }
- }
- }else{
- AnsL<- rbind(AnsL,c(Inf,Inf))
- }
- }
- rownames(AnsL)<- 1:Nrow(AnsL)
- return(AnsL)
-}
-
-######################################
-
-Cancoordpara<- function(P){ # 18.02.15
- Xz<- P[1]
- Yz<- P[2]
- Zz<- P[3]
- X<- -Xz*sin(PHI)-Yz*cos(PHI)*cos(THETA)+Zz*cos(PHI)*sin(THETA)
- Y<- Xz*cos(PHI)-Yz*sin(PHI)*cos(THETA)+Zz*sin(PHI)*sin(THETA)
- Z<- Yz*sin(THETA)+Zz*cos(THETA)
- Out<- c(X,Y,Z)
- return(Out)
-}
-
-######################################
-
-Cancoordpers<- function(P){
- Tmp<- EyePoint-FocusPoint
- E1<- Tmp[1]; F1<- Tmp[2]; G1<- Tmp[3]
- Ca<- E1/sqrt(E1^2+F1^2)
- Sa<- F1/sqrt(E1^2+F1^2)
- E2<- E1*Ca+F1*Sa; F2<- -E1*Sa+F1*Ca; G2<- G1
- Cb<- E2/sqrt(E2^2+G2^2)
- Sb<- G2/sqrt(E2^2+G2^2)
- E3<- E2*Cb+G2*Sb; F3<- F2; G3<- -E2*Sb+G2*Cb
- Xz<- P[3]; Yz<- P[1]; Zz<- P[2]
- X3<- Xz; Y3<- Yz*(E3-Xz)/E3; Z3<- Zz*(E3-Xz)/E3
- X2<- X3*Cb-Sb*Z3; Y2<- Y3; Z2<- Cb*Z3+Sb*X3
- X1<- X2*Ca-Sa*Y2; Y1<- Ca*Y2+Sa*X2; Z1<- Z2
- X<- X1+FocusPoint[1]
- Y<- Y1+FocusPoint[2]
- Z<- Z1+FocusPoint[3]
- Out<- c(X,Y,Z)
- return(Out)
-}
-
-#######################################
-
-Embed<- function(...){
- varargin<- list(...)
- Nargs<- length(varargin)
- Pd3<- varargin[[1]]
- if(Mixtype(Pd3)==1){
- Pd3<- list(Pd3)
- }
- else if(Mixtype(Pd3)==3){
- Tmp<- list();
- for(I in Looprange(1,length(Pd3))){
- Tmp<- c(Tmp,Pd3[[I]])
- }
- Pd3<- Tmp
- }
- Tmpf=varargin[[2]]
- if(mode(Tmpf)=="character"){
- Tmp<- varargin[[3]]
- Tmp1<- gsub("c(","(",Tmp,fixed=TRUE)
- Vstr<- gsub(")",")",Tmp1,fixed=TRUE)
- Str<- paste("Tmpfn<- function",Vstr,"{",Tmpf,"}",sep="")
- eval(parse(text=Str))
- }
- else{
- Tmpfn<- Tmpf
- }
- Out<- list()
- for(I in Looprange(1,length(Pd3))){
- PD<- Pd3[[I]]
- Ans<- c()
- for(J in Looprange(1,Nrow(PD))){
- P<- PD[J,]
- Tmp<- Tmpfn(P[1],P[2])
- Ans<- rbind(Ans,Tmp)
- }
- Out<- c(Out, list(Ans))
- }
- if(length(Out)==1){
- Out<- Out[[1]]
- }
- return(Out)
-}
-
-#######################
-# 10.08.17
-# 14.03.30
-Facesdata<- function(...){
- varargin<-list(...)
- Nargs<- length(varargin)
- FL<- varargin[[1]]
- PT<- varargin[[length(varargin)]]
- Tmp<-grep("para",PT,fixed=TRUE)
- if(length(Tmp)>0){
- Ptype<- 1
- }else{
- Ptype<- -1
- }
- if(Nargs==2){
- CLadd<- list()
- }else{
- CLadd<- varargin[[2]]
- }
- NohiddenL<- list()
- HiddenL<- list()
- Eps<- 10^(-4)
- if(length(CLadd)>0){
- if(mode(CLadd)=="numeric"){
- C<- list()
- if(Nrow(CLadd)>1){
- for (I in Looprange(1,Nrow(CLadd))){
- C<- c(C,list(CLadd[I,]))
- }
- }else{
- I<- 1
- while (I<=Ncol(CLadd)){
- C<- c(C,list(CLadd[1,I:(I+2)]))
- I<- I+3
- }
- }
- CrvL<- list(C)
- }else if(mode(CLadd[[1]])=="numeric"){
- CrvL<- list()
- for (J in Looprange(1,length(CL))){
- Ctmp<- CLadd[[J]]
- C<- list()
- if(Nrow(Ctmp)>1){
- for (I in Looprange(1,Nrow(Ctmp))){
- C<- c(C,list(Ctmp[I,]))
- }
- }else{
- I<- 1
- while(I<=Ncol(Ctmp)){
- C<- c(C,list(Ctmp[1,I:(I+2)]))
- I<- I+3
- }
- }
- CrvL<- c(CrvL,list(C))
- }
- }else{
- CrvL<- CLadd
- }
- }else{
- CrvL<- list()
- }
- Out<- MakeveLfaceL(FL)
- VELNO<<- Out[[1]]
- VELHI<<- list()
- for (I in Looprange(1,length(CrvL))){
- Tmp<- CrvL[[I]]
- for (J in Looprange(1,length(Tmp)-1)){
- Edge<- list(Tmp[J],Tmp[J+1])
- Ntmp<- length(VELNO)
- VELNO(Ntmp+1)<<- list(Edge,0,Ntmp+1)
- }
- }
- FaceL<- Out[[2]]
- Tmp<- grep("raw",PT,fixed=TRUE)
- if(length(Tmp)==0){
- for (Nf in Looprange(1,length(FaceL))){
- Face<- FaceL[[Nf]]
- Menkakusi2(Face,Nf,Ptype)
- }
- }
- for (I in Looprange(1,length(VELNO))){
- Edge<- Op(1,VELNO[[I]])
- if(Norm(Edge[[1]]-Edge[[2]])>Eps){
- NohiddenL<- c(NohiddenL,list(Spaceline(Edge)))
- }
- }
- EdgeL<- list() # from 13.03.30
- for(K in Looprange(1,length(VELHI))){
- Edge<- Op(1,VELHI[[K]])
- P<- Edge[[1]]; Q<- Edge[[2]]
- if(Norm(P-Q)>Eps){
- EdgeL<- c(EdgeL,list(Edge))
- }
- }
- for(K in Looprange(1,length(EdgeL))){
- Edge<- EdgeL[[K]]
- P<- Edge[[1]]; Q<- Edge[[2]]
- Cflg<- 0
- for(J in Looprange(K+1,length(EdgeL))){
- Ej<- EdgeL[[J]]
- Pj<- Ej[[1]]; Qj<- Ej[[2]]
- if(Norm(Crossprod(Q-P,Qj-Pj))>Eps){
- next
- }
- if(Norm(Q-Pj)<Eps){
- EdgeL[[J]]<- list(P,Qj)
- Cflg<- 1
- break
- }
- if(Norm(P-Qj)<Eps){
- EdgeL[[J]]=list(Q,Pj)
- Cflg<- 1
- break
- }
- }
- if(Cflg==0){
- HiddenL<- c(HiddenL,list(Spaceline(Edge)))
- }
- } # upto 14.03.30
- PHHIDDENDATA<<- HiddenL
- return(NohiddenL)
-}
-
-##############################
-# 2014.03.31
-
-PhHiddenData<- function(){
- PHHIDDENDATA
-}
-
-########## Old Fullform ( Check the case of Polygon )####################
-
-Fullformfunc<- function(FdL){# Out=Fullformfunc(FdL)
- Out<- list(Op(1,FdL))
- N<- Mixlength(FdL)
- for (Jrg in Looprange(1,N)){
- Tmp<- Stripblanks(Op(Jrg,FdL))
- Tmp1<- grep("=c(",Tmp,fixed=TRUE)
- if(length(Tmp1)>0){
- break
- }
- }
- Urg<- Stripblanks(Op(Jrg,FdL))
- StrV<- strsplit(Urg,"=",fixed=TRUE)[[1]]
- Uname<- StrV[1]
- Vrg<- Stripblanks(Op(Jrg+1,FdL))
- StrV<- strsplit(Vrg,"=",fixed=TRUE)[[1]]
- Vname<- StrV[1]
- if(Jrg==2){
- Tmp<- Stripblanks(Op(1,FdL))
- StrV<- strsplit(Tmp,"=",fixed=TRUE)[[1]]
- Zf<- StrV[2]
- Tmp<- list(Uname,Vname,Zf,Urg,Vrg)
- Out<- c(Out,Tmp)
- }else if(Jrg==4){
- Tmp<- Stripblanks(Op(1,FdL))
- StrV<- strsplit(Tmp,"=",fixed=TRUE)[[1]]
- Zf<- StrV[2]
- Tmp<- Stripblanks(Op(2,FdL))
- StrV<- strsplit(Tmp,"=",fixed=TRUE)[[1]]
- Xname<- StrV[1]
- Xf<- StrV[2]
- Tmp<- Stripblanks(Op(3,FdL))
- StrV<- strsplit(Tmp,"=",fixed=TRUE)[[1]]
- Yname<- StrV[1]
- Yf<- StrV[2]
- Tmp<- gsub(Xname,paste("(",Xf,")",sep=""),Zf,fixed=TRUE)
- Zf<- gsub(Yname,paste("(",Yf,")",sep=""),Tmp,fixed=TRUE)
- Tmp<- list(Xf,Yf,Zf,Urg,Vrg)
- Out<- c(Out,Tmp)
- }else{
- Tmp<- Stripblanks(Op(2,FdL))
- StrV<- strsplit(Tmp,"=",fixed=TRUE)[[1]]
- Xf<- StrV[2]
- Tmp<- Stripblanks(Op(3,FdL))
- StrV<- strsplit(Tmp,"=",fixed=TRUE)[[1]]
- Yf<- StrV[2]
- Tmp<- Stripblanks(Op(4,FdL))
- StrV<- strsplit(Tmp,"=",fixed=TRUE)[[1]]
- Zf<- StrV[2]
- Tmp<- list(Xf,Yf,Zf,Urg,Vrg)
- Out<- c(Out,Tmp)
- }
- DrwS<- "enws"
- BdyL<- c()
- for (I in Looprange(Jrg+2,Mixlength(FdL))){
- Tmp<- Op(I,FdL)
- if(mode(Tmp)=="character"){
- if(length(Tmp)==0){
- Tmp<- " "
- }
- DrwS<- Tmp
- }
- if(mode(Tmp)=="numeric" && Ncol(Tmp)>1){
- BdyL<- Tmp
- }
- }
- Tmp<- list(DrwS,BdyL)
- Out<- c(Out,Tmp)
- return(Out)
-}
-
-####################################
-
-Initangle<- function (){
- PHI<<- 30*pi/180
- THETA<<- 60*pi/180
-}
-
-##########################
-
-Invparapt<- function(...){
- varargin<- list(...)
- Eps<- 10^(-4)
- Fk<- varargin[[length(varargin)]]
- NFk<- Numptcrv(Fk)
- Tmp<- varargin[[1]]
- if(mode(Tmp)=="numeric" && length(Tmp)==1){ # debug
- Ph<- Tmp
- Fh<- varargin[[2]]
- }else{
- Fh<- Projpara(Fk)
- if(NFk>2){
- Tmp1<- Nearestpt(Tmp,Fh)
- Ph<- Tmp1[[2]]
- }else{
- Ah<- Ptcrv(1,Fh); Bh=Ptcrv(2,Fh)
- V1<- Tmp-Ah; V2<- Bh-Ah
- Tmp1<- Crossprod(V1,V2)
- if(abs(Tmp1)>Eps){
- print("Not on the line")
- return(c())
- }else{
- Ph<- Dotprod(V1,V2)/Norm(V2)^2+1
- }
- }
- }
- if(NFk>2){
- N<- trunc(Ph)
- S0<- Ph-N
- if(Ph>Numptcrv(Fh)-Eps){
- Out<- list(Ptend(Fk),Numptcrv(Fh))
- return(Out)
- }
- }else{
- N<- 1
- S0<- Ph-1
- }
- Ak<- Ptcrv(N,Fk); Bk=Ptcrv(N+1,Fk)
- Ah<- Ptcrv(N,Fh); Bh=Ptcrv(N+1,Fh)
- Ph<- (1-S0)*Ah+S0*Bh
- T2<- S0
- Pk<- (1-T2)*Ak+T2*Bk
- Out<- list(Pk,N+T2)
- return(Out)
-}
-
-#################################
-
-#100815
-Invperspt<- function(...){
- varargin<-list(...)
- Eps<- 10^(-4)
- Fk<- varargin[[length(varargin)]]
- NFk<- Numptcrv(Fk)
- Tmp<- varargin[[1]]
- if(mode(Tmp)=="numeric" && length(Tmp)==1){
- Ph<- varargin[[1]]
- Fh<- varargin[[2]]
- }else{
- Fh<- Projpers(Fk)
- if(NFk>2){
- Tmp1<- Nearestpt(Tmp,Fh)
- Ph<- Tmp1[[2]]
- }else{
- Ah<- Ptcrv(1,Fh); Bh<- Ptcrv(2,Fh)
- V1<- Tmp-Ah; V2<- Bh-Ah
- Tmp1<- Crossprod(V1,V2)
- if(abs(Tmp1)>Eps){
- print("Not on the line")
- Out<- c()
- return(Out)
- }else{
- Ph<- Dotprod(V1,V2)/Norm(V2)^2+1# 09.11.12
- }
- }
- }
- if(NFk>2){
- N<- trunc(Ph)
- S0<- Ph-N
- if(Ph>Numptcrv(Fh)-Eps){
- Out<- list(Ptend(Fk),Numptcrv(Fh))
- return(Out)
- }
- }else{
- N<- 1
- S0<- Ph-1 # 09.11.12
- }
- Ak<- Ptcrv(N,Fk); Bk<- Ptcrv(N+1,Fk)
- Ah<- Ptcrv(N,Fh); Bh<- Ptcrv(N+1,Fh)
- Ph<- (1-S0)*Ah+S0*Bh
- Phc<- Cancoordpers(c(Ph,0))
- Ahc<- Cancoordpers(c(Ah,0))
- Bhc<- Cancoordpers(c(Bh,0))
- Vp<- Phc-EyePoint
- Va<- Ak-EyePoint
- AB<- Bk-Ak
- Cp<- Crossprod(Vp,AB)
- Nmr<- Crossprod(Va,Vp)
- Mx<- max(abs(Cp))
- if(abs(Cp[1])==Mx){
- T2<- Nmr[1]/Cp[1]
- }else if(abs(Cp[2])==Mx){
- T2<- Nmr[2]/Cp[2]
- }else{
- T2<- Nmr[3]/Cp[3]
- }
- Pk<- (1-T2)*Ak+T2*Bk
- Out<- list(Pk,N+T2)
- return(Out)
-}
-
-#########################
-
-Kukannozoku<- function(Jokyo,KukanL){
- Eps<- 10^(-6)
- N<- Nrow(KukanL)
- T1<- Jokyo[1]; T2<- Jokyo[2]
- Tmp<- KukanL[1,]
- T1<- max(T1,Tmp[1])
- Tmp<- KukanL[N,]
- T2<- min(T2,Tmp[2])
- Res<- c()
- Flg<- 0
- for (I in Looprange(1,N)){
- Ku<- KukanL[I,]
- if(Flg==0){
- if(Ku[2]<T1){
- Res<- rbind(Res,Ku)
- }else{
- Flg<- 1
- if(Ku[1]<T1-Eps){
- Tmp<- c(Ku[1],T1)
- Res<- rbind(Res,Tmp)
- }
- if(Ku[2]>T2+Eps){
- Tmp<- c(T2,Ku[2])
- Res<- rbind(Res,Tmp)
- }
- }
- }else if(Flg==1){
- if(Ku[2]<T2){
- next
- }else{
- Flg<- 2
- if(Ku[1]<T2-Eps){
- Ku<- c(T2,Ku[2])
- }
- Res<- rbind(Res,Ku)
- }
- }else{
- Res<- rbind(Res,Ku)
- }
- }
- return(Res)
-}
-
-########################################
-
-Makeskeletondata<- function(Obj2L,Plt2L,R0,Eps2){
- Eps<- 10.0^(-3)
- Dmat<- c()
- Dind<- c()
- for (I in Looprange(1,Mixlength(Plt2L))){
- Dt<- Op(I,Plt2L)
- N1<- Nrow(Dmat)+1
- if(Nrow(Dmat)==0){
- Dmat<- Dt
- }else{
- Dmat<- rbind(Dmat,Dt)
- }
- N2<- Nrow(Dmat)
- Dind<- c(Dind,N1,N2)
- }
- Dind<- matrix(Dind,ncol=2,byrow=TRUE)
- Nind<- Nrow(Dind)
- Allres<- list()
- for (Nobj in Looprange(1,Mixlength(Obj2L))){
- Plt2<- Op(Nobj,Obj2L)
- PhL<- Plt2[,1:2]
- ClipL<- c()
- for (Ns in Looprange(1,Nrow(PhL)-1)){
- P1<- PhL[Ns:(Ns+1),]
- for (I in Looprange(1,Nrow(Dind))){
- Tmp<- Dmat[Dind[I,1]:Dind[I,2],]
- P2<- Tmp[,1:2]
- KC<- IntersectcrvsPp(P1,P2,Eps)
- if(Mixlength(KC)>0){
- for (J in 1:Mixlength(KC)){
- P<- Op(1,Op(J,KC))
- Tmp<- Op(2,Op(J,KC))
- if(Tmp<1+Eps && Ns==1){
- next
- }
- if(Tmp>Numptcrv(P1)-Eps && Ns==(Nrow(PhL)-1)){
- next
- }
- N1<- Ns
- N2<- Op(3,Op(J,KC))
- Pa<- Plt2[N1,1:2]
- Za<- Plt2[N1,3]
- Pb<- Plt2[N1+1,1:2]
- Zb<- Plt2[N1+1,3]
- if(Norm(Pa-Pb)<Eps){
- next
- }
- T1<- Norm(Pa-P)/Norm(Pa-Pb)
- Z1<- (1-T1)*Za+T1*Zb
- Tmp<- Dmat[Dind[I,1]:Dind[I,2],]
- Pa<- Tmp[N2,1:2]
- Za<- Tmp[N2,3]
- Pb<- Tmp[N2+1,1:2]
- Zb<- Tmp[N2+1,3]
- if((Norm(Pa-Pb)<Eps)){
- next
- }
- T2<- Norm(Pa-P)/Norm(Pa-Pb)
- Z2<- (1-T2)*Za+T2*Zb
- if(Z1<Z2-Eps2){
- if(Nrow(ClipL)==0){
- Tmp<- 1
- }else{
- Tmp1<- ClipL[,1]-P[1]
- Tmp2<- ClipL[,2]-P[2]
- Tmp3<- Tmp1^2+Tmp2^2
- Tmp<- min(Tmp3)
- }
- if(Tmp>Eps^2){
- Tmp1<- P1[2,]-P1[1,]
- Tmp2<- Pb-Pa
- Tmp3<- Dotprod(Tmp1,Tmp2)
- Tmp3<- Tmp3/Norm(Tmp1)/Norm(Tmp2)
- Tmp<- 1-0.5*Tmp3^2
- ClipL<- rbind(ClipL,c(P,N1,T1,R0/Tmp))
- }
- }
- }
- }
- }
- }
- Te<- Nrow(Plt2)
- KukanL<- rbind(c(),c(1.0,Te))
- P1<- PhL
- if(Nrow(ClipL)>0){
- for (I in 1:Nrow(ClipL)){
- P<- ClipL[I,1:2]
- NN<- ClipL[I,3]
- T<- NN+ClipL[I,4]
- R<- ClipL[I,5]
- Flg<- 0
- for (J in NN:1){
- Q<- Pointoncurve(J,P1)
- if(Norm(P-Q)<R){
- next
- }
- Flg<- 1
- break
- }
- if(Flg==0){
- T1<- 1
- }else{
- T1<- J; T2<- T
- H<- T2-T1
- for (N in 1:10){
- H<- H*0.5
- Q<- Pointoncurve(T1+H,P1)
- if(Norm(P-Q)<R){
- T2<- T2-H
- }else{
- T1<- T1+H
- }
- }
- }
- Ku<- c(T1)
- Flg<- 0
- for (J in Looprange(NN+1,Te)){
- Q<- Pointoncurve(J,P1)
- if(Norm(P-Q)<R){
- next
- }
- Flg<- 1
- break
- }
- if(Flg==0){
- T2<- Te
- }else{
- T1<- T; T2<- J
- H<- T2-T1
- for (N in 1:10){
- H<- H*0.5
- Q<- Pointoncurve(T1+H,P1)
- if(Norm(P-Q)<R){
- T1<- T1+H
- }else{
- T2<- T2-H
- }
- }
- }
- Ku<- c(Ku,T2)
- KukanL<- Kukannozoku(Ku,KukanL)
- }
- }
- Res<- list()
- for (I in Looprange(1,Nrow(KukanL))){
- T1<- KukanL[I,1]; N1<- trunc(T1)
- T2<- KukanL[I,2]; N2<- trunc(T2)
- PtL<- list()
- if(T1-N1<1-Eps){
- Tmp<- Pointoncurve(T1,P1)
- PtL<- list(Tmp)
- }
- for (J in Looprange(N1+1,N2)){
- Tmp<- Pointoncurve(J,P1)
- PtL<- c(PtL,list(Tmp))
- }
- if(T2-N2>Eps){
- Tmp<- Pointoncurve(T2,P1)
- PtL<- c(PtL,list(Tmp))
- }
- Res<- c(Res,list(Listplot(PtL)))
- }
- Allres<- c(Allres,Res)
- }
- return(Allres)
-}
-
-#########################
-
-#100815
-Makeskeletonpersdata<- function(Obj2L,Plt2L,R0,Eps2){
- Eps<- 10.0^(-3)
- Dmat<- c()
- Dind<- c()
- for (I in Looprange(1,Mixlength(Plt2L))){
- Dt<- Op(I,Plt2L)
- N1<- Nrow(Dmat)+1
- Dmat<- rbind(Dmat,Dt)
- N2<- Nrow(Dmat)
- Dind<- rbind(Dind,c(N1,N2))
- }
- Nind<- Nrow(Dind)
- Allres<- list()
- for (Nobj in Looprange(1,Mixlength(Obj2L))){
- Plt2<- Op(Nobj,Obj2L)
- PhL<- Plt2[,1:2]
- ClipL<- c()
- for (Ns in Looprange(1,Nrow(PhL)-1)){
- P1<- PhL[Ns:(Ns+1),]
- for (I in Looprange(1,Nrow(Dind))){
- Tmp<- Dmat[Dind[I,1]:Dind[I,2],]
- P2<- Tmp[,1:2]
- KC<- IntersectcrvsPp(P1,P2,Eps)
- if(Mixlength(KC)>0){
- for (J in Looprange(1,Mixlength(KC))){#
- P<- Op(1,Op(J,KC))
- Tmp<- Op(2,Op(J,KC))
- if(Tmp<(1+Eps) && Ns==1){
- next
- }
- if(Tmp>Numptcrv(P1)-Eps && Ns==(Nrow(PhL)-1)){
- next
- }
- N1<- Ns
- N2<- Op(3,Op(J,KC))
- Pa<- Plt2[N1,1:2]
- Za<- Plt2[N1,3]
- Pb<- Plt2[N1+1,1:2]
- Zb<- Plt2[N1+1,3]
- if(Norm(Pa-Pb)<Eps){
- next
- }
- T1<- Norm(Pa-P)/Norm(Pa-Pb)#norm(Pa-P)/norm(Pa-Pb)
- Pka<- Cancoordpers(c(Pa[1],Pa[2],Za))
- Pkb<- Cancoordpers(c(Pb[1],Pb[2],Zb))
- if(T1>1-Eps){
- Pk<- Pkb
- }else{
- Tmp1<- Listplot(c(Pa,Pb))
- Tmp2<- Spaceline(c(Pka,Pkb))
- Tmp<- Invperspt(1+T1,Tmp1,Tmp2)
- Pk<- Op(1,Tmp)
- }
- Z1<- Zperspt(Pk)
- Tmp<- Dmat[Dind[I,1]:Dind[I,2],]
- Pa<- Tmp[N2,1:2]
- Za<- Tmp[N2,3]
- Pb<- Tmp[N2+1,1:2]
- Zb<- Tmp[N2+1,3]
- if(Norm(Pa-Pb)<Eps){
- next
- }
- T2<- Norm(Pa-P)/Norm(Pa-Pb)
- Pka<- Cancoordpers(c(Pa[1],Pa[2],Za))
- Pkb<- Cancoordpers(c(Pb[1],Pb[2],Zb))
- if(T2>(1-Eps)){
- Pk<- Pkb
- }else{
- Tmp1<- Listplot(c(Pa,Pb))
- Tmp2<- Spaceline(c(Pka,Pkb))
- Tmp<- Invperspt(1+T2,Tmp1,Tmp2)
- Pk<- Op(1,Tmp)
- }
- Z2<- Zperspt(Pk)
- if(Z1<(Z2-Eps2)){
- if(length(ClipL)==0){
- Tmp<- 1
- }else{
- Tmp1<- ClipL[,1]-P[1]
- Tmp2<- ClipL[,2]-P[2]
- Tmp3<- Tmp1^2+Tmp2^2
- Tmp<- min(Tmp3)
- }
- if(Tmp>Eps^2){
- Tmp1<- P1[2,]-P1[1,]
- Tmp2<- Pb-Pa
- Tmp3<- Dotprod(Tmp1,Tmp2)
- Tmp3<- Tmp3/Norm(Tmp1)/Norm(Tmp2)
- Tmp<- 1-0.5*Tmp3^2
- ClipL<- rbind(ClipL,c(P,N1,T1,R0/Tmp))
- }
- }
- }
- }
- }
- }
- Te<- Nrow(Plt2)
- KukanL<- rbind(c(),c(1.0,Te))
- P1<- PhL
- if(Nrow(ClipL)>0){
- for (I in Looprange(1,Nrow(ClipL))){
- P<- ClipL[I,1:2]
- NN<- ClipL[I,3]
- T<- NN+ClipL[I,4]
- R<- ClipL[I,5] #added 10.08.17
- Flg<- 0
- for (J in NN:1){
- Q<- Pointoncurve(J,P1)
- if(Norm(P-Q)<R){#(norm(P-Q)<R)
- next
- }
- Flg<- 1
- break
- }
- if(Flg==0){
- T1<- 1
- }else{
- T1<- J; T2<- T
- H<- T2-T1
- for (N in 1:10){
- H<- H*0.5
- Q<- Pointoncurve(T1+H,P1)
- if(Norm(P-Q)<R){ # norm(P-Q)<R
- T2<- T2-H
- }else{
- T1<- T1+H
- }
- }
- }
- Ku<- c(T1)#Ku<- [T1]
- Flg<- 0
- for (J in Looprange(NN+1,Te)){
- Q<- Pointoncurve(J,P1)
- if(Norm(P-Q)<R){
- next#continue
- }
- Flg<- 1
- break
- }
- if(Flg==0){
- T2<- Te
- }else{
- T1<- T; T2<- J
- H<- T2-T1
- for (N in 1:10){
- H<- H*0.5
- Q<- Pointoncurve(T1+H,P1)
- if(Norm(P-Q)<R){
- T1<- T1+H
- }else{
- T2<- T2-H
- }
- }
- }
- Ku<- c(Ku,T2)#[Ku,T2]
- KukanL<- Kukannozoku(Ku,KukanL)
- }
- }
- Res<- list()#[]
- for (I in Looprange(1,Nrow(KukanL))){#(I=1:size(KukanL,1))
- T1<- KukanL[I,1]; N1<- trunc(T1)
- T2<- KukanL[I,2]; N2<- trunc(T2)
- PtL<- list()#[]
- if(T1-N1<1-Eps){
- Tmp<- Pointoncurve(T1,P1)
- PtL<- list(Tmp)#100816c(PtL,list(Tmp)) PtL<- MixS(Tmp)
- }
- for (J in Looprange(N1+1,N2)){
- Tmp<- Pointoncurve(J,P1)
- PtL<- c(PtL,list(Tmp))#Mixadd(PtL,Tmp)
- }
- if(T2-N2>Eps){
- Tmp<- Pointoncurve(T2,P1)
- PtL<- c(PtL,list(Tmp))#Mixadd(PtL,Tmp)
- }
- Res<- c(Res,list(Listplot(PtL)))#Res<- Mixadd(Res,Listplot(PtL))
- }
- Allres<- c(Allres,Res)#Allres<- Mixjoin(Allres,Res)
- }
- return(Allres)
-}
-
-##############################3
-
-MakeveLfaceL<- function(VfL){
-# // Out format
-# // VeL Edge, Face num(as numlist), VeL num
-# // FL Face (Vertexs)
- Eps<- 10^(-4)
- Tmp<- VfL[[length(VfL)]]
- Tmp1<- Tmp[[1]]
- if(mode(Tmp1)=="numeric"){
- FvL<- list(VfL)
- }else{
- FvL<- VfL
- }
- EL<- list(); FL<- list()
- for (Nn in Looprange(1,length(FvL))){
- Tmp<- FvL[[Nn]]
- VL<- Tmp[[1]]
- if(length(VL)>0){
- FnL<- Tmp[[2]]
- FaceL<- list()
- for (I in Looprange(1,length(FnL))){
- Tmp1<- FnL[[I]]
- PtL<- list()
- for (J in Looprange(1,length(Tmp1))){
- Tmp2<- Tmp1[[J]]
- PtL[[J]]<- VL[[Tmp2]]
- }
- FaceL[[I]]<- PtL
- }
- }else{
- FaceL<- list(Tmp[[2]])
- }
- for (I in Looprange(1,length(FaceL))){
- Face<- FaceL[[I]]
- Face<- c(Face,list(Face[[1]]))
- FL<- c(FL,list(Face))
- for (J in Looprange(1,length(Face)-1)){
- Edge<- list(Face[[J]],Face[[J+1]])
- Flg<- 0
- for (K in Looprange(1,length(EL))){
- Tmp<- EL[[K]]
- Tmp1<- Tmp[[1]]
- Tmp2<- Norm(Edge[[1]]-Tmp1[[1]])+Norm(Edge[[2]]-Tmp1[[2]])
- Tmp3<- Norm(Edge[[1]]-Tmp1[[2]])+Norm(Edge[[2]]-Tmp1[[1]])
- if(Tmp2<Eps || Tmp3<Eps){#(
- Tmp<- EL[[K]]
- Tmp1<- Tmp[[1]]
- Tmp2<- c(Tmp[[2]],length(FL))
- EL[[K]]<- list(Tmp1,Tmp2,K)
- Flg<- 1
- break
- }
- }
- if(Flg==0){
- Ntmp<- length(EL)
- EL[[Ntmp+1]]<- list(Edge,c(length(FL)),Ntmp+1)
- }
- }
- }
- }
- Out<- list(EL,FL)
- return(Out)
-}
-
-###########################
-#// 09.10.29
-#// 09.11.15
-
-Menkakusi2<- function(Face,Nf,Ptype){
-# global THETA PHI EyePoint FocusPoint VELNO VELHI
- Eps0<- 10^(-6)
- Eps<- 10^(-4)
- Tmp1<- Face[[1]]-Face[[2]]
- Tmp2<- Face[[3]]-Face[[2]]
- if(Norm(Tmp1)<Eps || Norm(Tmp2)<Eps){
- return()
- }
- Vec<- 1/Norm(Tmp1)/Norm(Tmp2)*Crossprod(Tmp1,Tmp2)
- if(Norm(Vec)<Eps){
- return()
- }
- if(Ptype== -1){
- W<- EyePoint
- Tmp<- Dotprod(Vec,W-Face[[1]])
- }else{
- W<- c(sin(THETA)*cos(PHI),sin(THETA)*sin(PHI),cos(THETA))
- W<- 100*W
- Tmp<- Dotprod(Vec,W-Face[[1]])
- }
- if(abs(Tmp)<Eps){
- return()
- }
- if(Tmp<-Eps){
- Vec<- -Vec
- }
- if(Ptype==-1){
- G1<- Projpers(Spaceline(Face))
- }else{
- G1<- Projpara(Spaceline(Face))
- }
- VL<- list()
- for (I in Looprange(1,Numptcrv(G1))){
- VL[[I]]<- Ptcrv(I,G1)
- }
- Out1L<- list()
- Out2L<- VELHI
- for (N in Looprange(1,length(VELNO))){
- Out1<- list()
- Out2<- list()
- Tmp<- VELNO[[N]]
- Edge<- Tmp[[1]]
- Ne<- Tmp[[2]]
- NNe<- Tmp[[3]]
- if(Member(Nf,Ne)){
- Out1L<- c(Out1L, list(list(Edge,Ne,NNe)))
- next
- }
- if(Ptype==-1){
- PtA<- Perspt(Edge[[1]])
- PtB<- Perspt(Edge[[2]])
- }else{
- PtA<- Parapt(Edge[[1]])
- PtB<- Parapt(Edge[[2]])
- }
- if(Norm(PtA-PtB)<Eps){
- next
- }
- Bdy<- list(G1)
- V<- PtB-PtA
- TenL<- KoutenList(PtA,V,Bdy)
- Nten<- length(TenL)
- if(Nten==0){ # debug 10.08.17
- Out1L<- c(Out1L,list(list(Edge,Ne,NNe)))
- next
- }
- Te<- 0
- Pe3<- Edge[[1]]
- if(Ptype==-1){
- Tmp1<- Perspt(Pe3)
- Tmp<- Invperspt(Tmp1,Spaceline(Face))
- }else{
- Tmp1<- Parapt(Pe3)
- Tmp<- Invparapt(Tmp1,Spaceline(Face))
- }
- Qe3<- Tmp[[1]]
- Flg<- 0
- for (I in Looprange(1,Nten)){
- TenP<- TenL[[I]]
- Ts<- TenP[[1]]
- P<- TenP[[2]]
- if(Ts< -Eps){
- next
- }
- Eline<- Spaceline(Edge)
- if(Ptype==-1){
- Tmp<- Invperspt(P,Eline)
- Tmp1<- Invperspt(P,Spaceline(Face))
- }else{
- Tmp<- Invparapt(P,Eline)
- Tmp1<- Invparapt(P,Spaceline(Face))
- }
- P3<- Tmp[[1]]; Q3<- Tmp1[[1]]
- if(Ts>1-Eps){# // P3, Q3 are necessary
- Flg<- I
- break
- }
- if(abs(Te-Ts)>Eps0){
- if((I%%2)==1){
- Out1<- c(Out1,list(list(Pe3,P3)))
- }else{
- if(length(Qe3)==0){
- Tmp<- Op(2,TenL[[I-1]])
- if(Ptype==-1){
- Tmp1<- Invperspt(Tmp,Spaceline(Face))
- }else{
- Tmp1<- Invparapt(Tmp,Spaceline(Face))
- }
- Qe3<- Tmp1[[1]]
- }
- PM<- 0.5*(Pe3+P3); QM<- 0.5*(Qe3+Q3)
- if(Ptype==-1){
- Z1<- Zperspt(PM); Z2<- Zperspt(QM)
- }else{
- Z1<- Zparapt(PM); Z2<- Zparapt(QM)
- }
- if(Z1>Z2){
- Out1<- c(Out1, list(list(Pe3,P3)))
- }else{
- Out2<- c(Out2, list(list(Pe3,P3)))
- }##
- }
- }
- Te<- Ts; Pe3<- P3; Qe3<- Q3
- }
- if(Flg==0){
- if(Norm(Pe3-Edge[[2]])>Eps0){
- Out1<- c(Out1, list(list(Pe3,Edge[[2]])))
- }
- }else{
- if((Flg%%2)==1){
- Out1<- c(Out1, list(list(Pe3,Edge[[2]])))
- }else{
- PM<- 0.5*(Pe3+P3); QM<- 0.5*(Qe3+Q3)
- if(Ptype==-1){
- Z1<- Zperspt(PM); Z2<- Zperspt(QM)
- }else{
- Z1<- Zparapt(PM); Z2<- Zparapt(QM)
- }
- if(Z1>Z2){
- Out1<- c(Out1, list(list(Pe3,Edge[[2]])))
- }else{
- Out2<- c(Out2, list(list(Pe3,Edge[[2]])))
- }
- }
- }
- for (I in Looprange(1,length(Out1))){
- Tmp<- Out1[[I]]
- if(I==1){
- SeL<- Tmp
- }else{
- if(Norm(SeL[[2]]-Tmp[[1]])<Eps0){
- SeL[[2]]<- Tmp[[2]]
- }else{
- Out1L<- c(Out1L, list(list(SeL,Ne,NNe)))
- SeL<- Tmp
- }
- }
- }
- if(length(Out1)>0){
- Out1L<- c(Out1L, list(list(SeL,Ne,NNe)))
- }
- for (I in Looprange(1,length(Out2))){
- Tmp<- Out2[[I]]
- if(I==1){
- SeL<- Tmp
- }else{
- if(Norm(SeL[[2]]-Tmp[[1]])<Eps0){
- SeL[[2]]<- Tmp[[2]]
- }else{
- Out2L<- c(Out2L, list(list(SeL,Ne,NNe)))
- SeL<- Tmp
- }
- }
- }
- if(length(Out2)>0){
- Out2L<- c(Out2L, list(list(SeL,Ne,NNe)))
- }
- }
- VELNO<<- Out1L
- VELHI<<- Out2L
-}
-
-###################################
-
-Parapt<- function(Plist){ # 18.02.19 changed (for point list)
- if(!is.list(Plist)){Plist=list(Plist)}
- Out=list()
- for(jj in 1:length(Plist)){
- P=Op(jj,Plist)
- x<- P[1]
- y<- P[2]
- z<- P[3]
- Xz<- -x*sin(PHI)+y*cos(PHI)
- Yz<- -x*cos(PHI)*cos(THETA)-y*sin(PHI)*cos(THETA)+z*sin(THETA)
- Out<- c(Out,list(c(Xz,Yz)))
- }
- if(length(Out)==1){Out=Op(1,Out)}
- return(Out)
-}
-
-###################################
-
-Partcrv3<- function(T1,T2,Fk){
- Eps0=10^(-4)
-#// Tmp=Mixop(1,Fk)
-#// new part from
- if(T1>(T2+Eps0)){
- Npt<- Nrow(Fk)
- Out1<- Partcrv3(T1,Npt,Fk)
- Out2<- Partcrv3(1,T2,Fk)
- Tmp<- Fk[1,]-Fk[Npt,]
- if(Norm(Tmp)<Eps0){
- PL<- Joincrvs(Out1,Out2)
- }else{
- PL<- list(Out1,Out2)
- }
- rownames(PL)<- 1:Nrow(PL)
- return(PL)
- }
- if(floor(T1)==floor(T2)){ #18.02.26from
- Tmp=floor(T1)
- p1=Op(Tmp,Fk); p2=Op(Tmp+1,Fk)
- PL=c(p1+(T1-Tmp)*(p2-p1))
- PL=Appendrow(PL, p1+(T2-Tmp)*(p2-p1)) #18.02.26upto
- }else{
- Is<- ceiling(T1)
- Ie<- floor(T2)
- PL<- c()
- if(T1<Is-Eps0){
- P<- (Is-T1)*Fk[Is-1,]+(1-Is+T1)*Fk[Is,]
- PL<- Appendrow(PL, P) #18.02.10(bug)
- }
- PL<- Appendrow(PL,Fk[Is:Ie,])
- if(T2>(Ie+Eps0)){
- P<- (1-T2+Ie)*Fk[Ie,]+(T2-Ie)*Fk[Ie+1,]
- PL<- Appendrow(PL,P)
- }
- }
- return(PL)
-}
-
-###################################
-
-#100815
-Perspt<- function(P){
- Tmp<- P-FocusPoint
- X1<- Tmp[1]; Y1<- Tmp[2]; Z1<- Tmp[3]
- Tmp<- EyePoint-FocusPoint
- E1<- Tmp[1];F1<- Tmp[2];G1<- Tmp[3]
- Ca<- E1/sqrt(E1^2+F1^2)
- Sa<- F1/sqrt(E1^2+F1^2)
- X2<- X1*Ca+Y1*Sa; Y2<- -X1*Sa+Y1*Ca; Z2<- Z1
- E2<- E1*Ca+F1*Sa; F2<- -E1*Sa+F1*Ca; G2<- G1
- Cb<- E2/sqrt(E2^2+G2^2)
- Sb<- G2/sqrt(E2^2+G2^2)
- X3<- X2*Cb+Z2*Sb; Y3<- Y2; Z3<- -X2*Sb+Z2*Cb
- E3<- E2*Cb+G2*Sb; F3<- F2; G3<- -E2*Sb+G2*Cb
- Yz<- E3/(E3-X3)*Y3
- Zz<- E3/(E3-X3)*Z3
- Out<- c(Yz,Zz)
- return(Out)
-}
-
-
-#################################
-
-Phcutdata<- function(VL,FaceL,PlaneD){
- Out<- list()
- EL<- list()
- Eps<- 10^(-4)
- for (I in Looprange(1,Mixlength(FaceL))){
- Face<- Op(I,FaceL)
- for (J in Looprange(1,length(Face))){
- Nj<- J+1
- if(J==length(Face)){
- Nj<- 1
- }
- N1<- Face[J]; N2<- Face[Nj]
- Tmp<- c(N1,N2)
- Flg<- 0
- for (K in Looprange(1,Mixlength(EL))){
- Tmp1<- Op(K,EL)
- Tmp2<- Tmp1[2:1]
- if(all(Tmp==Tmp1) || all(Tmp==Tmp2)){
- Flg<- 1
- break
- }
- }
- if(Flg==0){
- EL<- c(EL,list(Tmp))
- }
- }
- }
- Out0<- list()
- for (I in Looprange(1,Mixlength(EL))){
- Tmp<- Op(I,EL)
- Tmp1<- Op(Tmp[1],VL)
- Tmp2<- Op(Tmp[2],VL)
- Out0<- c(Out0, list(Spaceline(Tmp1,Tmp2)))
- }
- if(Mixtype(PlaneD)!=1){
- V1<- Op(1,PlaneD)
- Tmp<- Op(2,PlaneD)
- if(length(Tmp)>1){
- d<- V1[1]*Tmp[1]+V1[2]*Tmp[2]+V1[3]*Tmp[3]
- }else{
- d<- Tmp
- }
- }else if(mode(PlaneD)=="numeric"){
- V1<- PlaneD[1:3]
- d<- PlaneD[4]
- }else{
- StrV<- strsplit(PlaneD,"=",fixed=TRUE)
- StrV<- StrV[[1]]
- if(length(StrV)>1){
- Tmp1<- StrV[1]
- Tmp2<- StrV[2]
- PlaneD<- paste(Tmp1,"-(",Tmp2,")",sep="")
- }
- x<- 0; y<- 0; z<- 0
- d<- -eval(parse(text=PlaneD))
- x<- 1; y<- 0; z<- 0;
- Tmp1<- eval(parse(text=PlaneD))+d
- x<- 0; y<- 1; z<- 0
- Tmp2<- eval(parse(text=PlaneD))+d
- x<- 0; y<- 0; z<- 1
- Tmp3<- eval(parse(text=PlaneD))+d
- V1<- c(Tmp1,Tmp2,Tmp3)
- }
- if(all(V1==c(0,0,0))){
- return(Out0)
- }
- V3<- c(1,0,0)
- Out1<- Rotate3data(Out0,V1,V3)
- Tmp2<- Rotate3pt(c(1,0,0),V3,V1)
- Tmp<- V1[1]*Tmp2[1]+V1[2]*Tmp2[2]+V1[3]*Tmp2[3]
- x0<- d/Tmp
- PtL<- list()
- for (I in Looprange(1,Mixlength(Out1))){
- Tmp<- Op(I,Out1)
- Tmp1<- Tmp[1,]; Tmp2<- Tmp[2,]
- P<- list(Tmp1,Tmp2-Tmp1)
- Tmp<- list(Tmp1[1],Tmp2[1]-Tmp1[1])
- if(abs(Tmp[[2]]) < Eps){
- Tmp<- c()
- }else{
- Tmp1<- Tmp[[2]]
- Tmp2<- x0-Tmp[[1]]
- Tmp<- c(Tmp2/Tmp1)
- }
- if(length(Tmp)>0){
- Tmp<- Tmp[1]
- if(Tmp>-Eps && Tmp<(1+Eps)){
- Tmp3<- P[[1]]+Tmp*P[[2]]
- Tmp3<- Rotate3pt(Tmp3,V3,V1)
- if(Tmp<Eps){
- Tmp1<- Op(I,EL)
- Tmp1<- Tmp1[1]
- Tmp4<- list(c(Tmp1,Tmp1),Tmp3)
- }else{
- if(Tmp>1-Eps){
- Tmp1<- Op(I,EL)
- Tmp1<- Tmp1[2]
- Tmp4<- list(c(Tmp1,Tmp1),Tmp3)
- }else{
- Tmp4<- list(Op(I,EL),Tmp3)
- }
- }
- Flg<- 0
- for (J in Looprange(1,Mixlength(PtL))){
- Tmp<- Op(J,PtL)
- Tmp<- Op(2,Tmp)
- if(Norm(Tmp3-Tmp)<Eps){
- Flg<- 1
- break
- }
- }
- if(Flg==0){
- PtL<- c(PtL,list(Tmp4))
- }
- }
- }
- }
- if(Mixlength(PtL)==0){
- return(Out0)
- }
- PL<- list(Op(1,PtL))
- QL<- PtL[2:Mixlength(PtL)]
- N<- Mixlength(QL)
- for (I in Looprange(2,N+1)){
- Tmp1<- Op(Mixlength(PL),PL)
- Tmp1<- Op(1,Tmp1)
- for (J in Looprange(1,Mixlength(QL))){
- Tmp2<- Op(J,QL)
- Tmp2<- Op(1,Tmp2)
- Flg<- 0
- for (K in Looprange(1,Mixlength(FaceL))){
- Tmp3<- Op(K,FaceL);
- if(Member(Tmp1[1],Tmp3) &&
- Member(Tmp1[2],Tmp3) &&
- Member(Tmp2[1],Tmp3) &&
- Member(Tmp2[2],Tmp3)){
- Flg<- 1
- break
- }
- }
- if(Flg==1){
- break
- }
- }
- J<- min(J, Mixlength(QL))
- PL<- c(PL,list(Op(J,QL)))
- Tmp1<- QL[Looprange(1,J-1)]
- Tmp2<- QL[Looprange(J+1,Mixlength(QL))]
- QL<- c(Tmp1,Tmp2)
- if(Mixlength(QL)==0){
- break
- }
- }
- PHCUTPOINTL<<- PL
- Tmp<- list()
- for (J in Looprange(1,Mixlength(PL))){
- Tmp1<- Op(J,PL)
- Tmp1<- Op(2,Tmp1)
- Tmp<- c(Tmp,list(Tmp1))
- }
- Tmp1<- Op(1,PL)
- Tmp1<- Op(2,Tmp1)
- Tmp<- c(Tmp,list(Tmp1))
- Out2<- Spaceline(Tmp)
- Out<- c(Out0,list(Out2))
-}
-
-#########################################
-
-Phcutoffdata<- function(...){
- varargin<-list(...)
- Eps<- 10^(-4)
- Out2<- list()
- VL<- varargin[[1]]
- FaceL<- varargin[[2]]
- PlaneD<- varargin[[3]]
- Sgnstr<- varargin[[4]]
- Fugou<- 1
- if(Sgnstr=="-" || Sgnstr=="n"){
- Fugou<- -1
- }
- Out0<- Phcutdata(VL,FaceL,PlaneD)
- PtL<- PHCUTPOINTL
- PHVERTEXL<<- VL
- PHFACEL<<- FaceL
- if(length(PtL)==0){
- Out2<- Out0
- return(Out2)
- }
- N1<- Mixlength(VL)
- Face<- c()
- for (I in Looprange(1,Mixlength(PtL))){
- Tmp<- Op(I,PtL)
- Tmp3<- Op(1,Tmp)
- Tmp1<- Tmp3[[1]]; Tmp2<- Tmp3[[2]] # debugged 10.08.14
- if(Tmp1!=Tmp2){
- VL<- c(VL,list(Op(2,Tmp)))
- N1<- N1+1
- Tmp1<- N1
- }
- Face<- c(Face,Tmp1)
- PtL[[I]]<- list(Op(1,Tmp),Tmp1)
- }
- OutfL<- list(Face)
- if(Mixtype(PlaneD)!=1){
- V1<- Op(1,PlaneD)
- Tmp<- Op(2,PlaneD)
- if(length(Tmp)>1){
- d<- V1[1]*Tmp[1]+V1[2]*Tmp[2]+V1[3]*Tmp[3]
- }else{
- d<- Tmp
- }
- }else if(mode(PlaneD)=="numeric"){
- V1<- PlaneD[1:3]
- d<- PlaneD[4]
- }else{
- StrV<- strsplit(PlaneD,"=",fixed=TRUE)
- StrV<- StrV[[1]]
- if(length(StrV)>1){
- Tmp1<- StrV[1]
- Tmp2<- StrV[2]
- PlaneD<- paste(Tmp1,"-(",Tmp2,")",sep="")
- }
- x<- 0; y<- 0; z<- 0
- d<- -eval(parse(text=PlaneD))
- x<- 1; y<- 0; z<- 0
- Tmp1<- eval(parse(text=PlaneD))+d
- x<- 0; y<- 1; z<- 0
- Tmp2<- eval(parse(text=PlaneD))+d
- x<- 0; y<- 0; z<- 1
- Tmp3<- eval(parse(text=PlaneD))+d
- V1<- c(Tmp1,Tmp2,Tmp3)
- }
- for (I in Looprange(1,Mixlength(FaceL))){
- Face<- Op(I,FaceL)
- TmpL<- list()
- for (J in Looprange(1,length(Face))){
- N1<- Face[J]
- if(J==length(Face)){
- N2<- Face[1]
- }else{
- N2<- Face[J+1]
- }
- for (K in Looprange(1,Mixlength(PtL))){
- Pd<- Op(K,PtL)
- Tmp<- Op(1,Pd)
- if(Tmp[1]==Tmp[2]){
- if(Tmp[1]==N1){
- TmpL<- c(TmpL,list(list(J,c(N1,N2),Op(2,Pd))))
- }
- }else{
- if(all(Tmp==c(N1,N2)) || all(Tmp==c(N2,N1))){
- TmpL<- c(TmpL,list(list(J,c(N1,N2),Op(2,Pd))))
- }
- }
- }
- }
- if(Mixlength(TmpL)<2){
- Flg<- 0
- for (J in Looprange(1,length(Face))){
- Tmp<- Op(Face[J],VL)
- Tmp1<- Fugou*(Dotprod(V1,Tmp)-d)
- if(Tmp1< -Eps){
- Flg<- 1
- break
- }
- }
- if(Flg==0){
- OutfL<- c(OutfL,list(Face))
- }
- next
- }
- Pd<- Op(1,TmpL)
- Qd<- Op(2,TmpL)
- Outf1<- c(Op(3,Pd))
- Nf<- Op(1,Pd)+1
- Tmp<- Op(2,Pd)
- JJ<- 0
- while (!all(Tmp==Op(2,Qd))){
- JJ<- JJ+1
- if(JJ>20){
- print("bug")
- return()
- }
- Tmp1<- Tmp[2]
- if(Outf1[length(Outf1)]!=Tmp1){
- Outf1<- c(Outf1,Tmp1)
- }
- Tmp<- c(Face[Nf])
- Nf<- Nf+1
- if(Nf>length(Face)){
- Nf<- 1
- }
- Tmp<- c(Tmp,Face[Nf])
- }
- Tmp1<- Op(3,Qd)
- if(Outf1[length(Outf1)]!=Tmp1){
- Outf1<- c(Outf1,Tmp1)
- }
- Outf2<- c(Op(3,Pd))
- Nf<- Op(1,Pd)
- Tmp<- Op(2,Pd)
- JJ<- 0
- while (!all(Tmp==Op(2,Qd))){
- JJ<- JJ+1
- if(JJ>20){
- print("bug")
- return()
- }
- Tmp1<- Tmp[1]
- if(Outf2[length(Outf2)]!=Tmp1){
- Outf2<- c(Outf2,Tmp1)
- }
- Tmp<- c(Face[Nf])
- Nf<- Nf-1
- if(Nf<1){
- Nf<- length(Face)
- }
- Tmp<- c(Face[Nf],Tmp)
- }
- Tmp1<- Op(3,Qd)
- if(Outf2[length(Outf2)]!=Tmp1){
- Outf2<- c(Outf2,Tmp1)
- }
- if(length(Outf1)<3 || length(Outf2)<3){
- Face<- Outf1
- if(length(Outf1)<length(Outf2)){
- Face<- Outf2
- }
- Flg<- 0
- for (J in Looprange(1,length(Face))){
- Tmp<- Op(Face(J),VL)
- Tmp1<- Fugou*(Dotprod(V1,Tmp)-d)
- if(Tmp1<-Eps){
- Flg<- 1
- break
- }
- }
- if(Flg==0){
- OutfL<- c(OutfL,list(Face))
- }
- }else{
- Tmp<- Op(Outf1[2],VL)
- Tmp1<- Outf1
- Tmp2<- Fugou*(Dotprod(V1,Tmp)-d)
- if(Tmp2<0){
- Tmp1<- Outf2
- }
- OutfL<- c(OutfL,list(Tmp1))
- }
- }
- PHVERTEXL<<- VL
- PHFACEL<<- OutfL
- Out2<- Phcutdata(VL,OutfL,c(0,0,0,0))
- return(Out2)
-}
-
-#######################
-
-Phparadata<- function(VL,FaceL){
- Out<- Facesdata(list(VL,FaceL),"para")
- return(Out)
-}
-
-####################################
-
-Phpersdata<- function(VL,FaceL){
- Out<- Facesdata(list(VL,FaceL),"pers")
- return(Out)
-}
-
-####################################
-
-Phspersdata<- function(Fdata){
- Out<- Facesdata(Fdata,"pers")
- return(Out)
-}
-
-####################################
-
-Phsparadata<- function(Fdata){
- Out<- Facesdata(Fdata,"para")
- return(Out)
-}
-
-#########################
-
-#100816
-Projpers<- function(...){
- varargin<- list(...)
- Nargs<- length(varargin)
- Flg<- 0
- if(Nargs==1 && Mixtype(varargin[[1]])==1){
- Flg<- 1
- }
- CL<- list()
- for (N in Looprange(1,Nargs)){
- Crv<- varargin[[N]]
- if(Mixtype(Crv)==1){
- Tmp<- CameraCurve(Crv)
- CL<- c(CL,list(Tmp))
- }else{
- if(Mixtype(Crv)==3){
- ObjL<- list()
- for (I in Looprange(1,Mixlength(Crv))){
- Tmp1<- Op(I,Crv)
- if(Mixtype(Tmp1)==1){
- ObjL<- c(ObjL,list(Tmp1))
- }else{
- ObjL<- c(ObjL,Tmp1)
- }
- }
- Crv<- ObjL
- }
- for (J in Looprange(1,Mixlength(Crv))){
- Tmp<- CameraCurve(Op(J,Crv))
- CL<- c(CL,list(Tmp))
- }
- }
- }
- if(Mixlength(CL)==1 && Flg==1){
- CL<- Op(1,CL)
- }
- return(CL)
-}
-
-###################################
-
-ProjcoordCurve<- function(Curve){
- SP<- sin(PHI); CP<- cos(PHI)
- ST<- sin(THETA); CT<- cos(THETA)
- Out<- c()
- for (J in Looprange(1,Nrow(Curve))){
- P<- Ptcrv(J,Curve)
- x<- P[1]; y<- P[2]; z<- P[3]
- Xz<- -x*SP+y*CP
- Yz<- -x*CP*CT-y*SP*CT+z*ST
- Zz<- x*CP*ST+y*SP*ST+z*CT
- Out<- c(Out,Xz,Yz,Zz)
- }
- Out<- matrix(Out,ncol=3,byrow=TRUE)
- return(Out)
-}
-
-#################################
-
-ProjCurve<- function(Curve){ # 2018.02.26 rewritten
- AnsL= c()
- SP=sin(PHI); CP=cos(PHI)
- ST=sin(THETA); CT=cos(THETA)
- for(I in Looprange(1,Length(Curve)) ){
- P=Op(I,Curve)
- x=P[1]; y=P[2]; z=P[3]
- if(x!=Inf){
- Xz=-x*SP+y*CP
- Yz= -x*CP*CT-y*SP*CT+z*ST
- AnsL=Appendrow(AnsL,c(Xz,Yz))
- Tmp= c(Xz,Yz)
- }else{
- AnsL=Appendrow(AnsL,c(Inf,Inf))
- }
- }
- return(AnsL)
-}
-
-####################################
-
-Projpara<- function(...){
- varargin<-list(...)
- Nargs<- length(varargin)
- Flg<- 0
- if((Nargs==1)&&(is.numeric(varargin[[1]]))){
- Flg<- 1
- }
- CL<- list()
- for (N in Looprange(1,Nargs)){
- Crv<- varargin[[N]]
- if(is.numeric(Crv)){
- Tmp<- ProjCurve(Crv)
- CL<- c(CL,list(Tmp))
- }
- else{
- if(is.list(Crv)){
- ObjL<- list()
- for (I in Looprange(1,Mixlength(Crv))){
- Tmp1<- Op(I,Crv)
- if(is.numeric(Tmp1)){
- ObjL<- c(ObjL,list(Tmp1))
- }
- else{
- ObjL<- c(ObjL,Tmp1)
- }
- }
- Crv<- ObjL
- }
- for (J in Looprange(1,length(Crv))){
- Tmp<- ProjCurve(Op(J,Crv))
- CL<- c(CL,list(Tmp))
- }
- }
- }
- if((length(CL)==1)&&(Flg==1)){
- CL<- Op(1,CL)
- }
- return(CL)
-}
-
-#########################
-
-#100816
-Projpers<- function(...){
- varargin<- list(...)
- Nargs<- length(varargin)
- Flg<- 0
- if(Nargs==1 && Mixtype(varargin[[1]])==1){
- Flg<- 1
- }
- CL<- list()
- for (N in Looprange(1,Nargs)){
- Crv<- varargin[[N]]
- if(Mixtype(Crv)==1){
- Tmp<- CameraCurve(Crv)
- CL<- c(CL,list(Tmp))
- }else{
- if(Mixtype(Crv)==3){
- ObjL<- list()
- for (I in Looprange(1,Mixlength(Crv))){
- Tmp1<- Op(I,Crv)
- if(Mixtype(Tmp1)==1){
- ObjL<- c(ObjL,list(Tmp1))
- }else{
- ObjL<- c(ObjL,Tmp1)
- }
- }
- Crv<- ObjL
- }
- for (J in Looprange(1,Mixlength(Crv))){
- Tmp<- CameraCurve(Op(J,Crv))
- CL<- c(CL,list(Tmp))
- }
- }
- }
- if(Mixlength(CL)==1 && Flg==1){
- CL<- Op(1,CL)
- }
- return(CL)
-}
-
-#########################################
-# 11.08.27
-# 14.03.23 Debugged "center"
-
-Rotate3data<- function(...){
-#Eps=10^(-4)
- varargin<-list(...)
- Nargs<- length(varargin)
- Pd3<- varargin[[1]]
- W1<- varargin[[2]]
- W2<- varargin[[3]]
- C<- c(0,0,0)
- if(Nargs>=4){
- C<- varargin[[4]]
- }
- if(Mixtype(Pd3)==1){
- Pd3<- list(Pd3)
- } else if(Mixtype(Pd3)==3){
- Tmp<- list()
- for (I in Looprange(1,Mixlength(Pd3))){
- Tmp<- c(Tmp,Op(I,Pd3))
- }
- Pd3<- Tmp
- }
- Out<- list()
- for (I in Looprange(1,Mixlength(Pd3))){
- PD<- Op(I,Pd3)
- Ans<- c()
- for (J in Looprange(1,Nrow(PD))){
- if(is.matrix(PD)){ # 11.08.27
- P<- PD[J,]
- }
- else{
- P<- PD
- }
- Tmp<- Rotate3pt(P,W1,W2,C) # 14.03.23
- Ans<- rbind(Ans,Tmp)
- } # 11.08.27
- rownames(Ans)<- 1:Nrow(Ans) #10.08.16
- Out<- c(Out,list(Ans))
- }
- if(Mixlength(Out)==1){
- Out<- Op(1,Out)
- }
- return(Out)
-}
-
-#######################################
-
-Rotate3pt<- function(...){
- varargin<-list(...)
- Eps<-10^(-4)
- Nargs<-length(varargin)
- P<- varargin[[1]]
- W1<- varargin[[2]]
- W2<- varargin[[3]]
- C<- c(0,0,0)
- if(Nargs>=4){
- C<- varargin[[4]]
- }
- if(mode(W2)=="numeric" && length(W2)==1){
- Ct<- cos(W2)
- St<- sin(W2)
- V3<- 1/Norm(W1)*W1
- if(V3[1]==0){
- Tmp<- c(1,0,0)
- }else{
- Tmp<- c(0,1,0)
- }
- W1<- c(Tmp[2]*V3[3]-Tmp[3]*V3[2],
- Tmp[3]*V3[1]-Tmp[1]*V3[3],
- Tmp[1]*V3[2]-Tmp[2]*V3[1])
- V1<- 1/Norm(W1)*W1
- V2<- c(V3[2]*V1[3]-V3[3]*V1[2],
- V3[3]*V1[1]-V3[1]*V1[3],
- V3[1]*V1[2]-V3[2]*V1[1])
- }else{
- Tmp<- c(W1[2]*W2[3]-W1[3]*W2[2],
- W1[3]*W2[1]-W1[1]*W2[3],
- W1[1]*W2[2]-W1[2]*W2[1])
- if(Norm(Tmp)<Eps){
- Ans<- P
- return(Ans)
- }
- V1<- 1/Norm(W1)*W1
- Ns<- V1[1]*W2[1]+V1[2]*W2[2]+V1[3]*W2[3]
- Tmp<- W2-Ns*V1
- V2<- 1/Norm(Tmp)*Tmp
- Tmp<- c(V1[2]*V2[3]-V1[3]*V2[2],
- V1[3]*V2[1]-V1[1]*V2[3],
- V1[1]*V2[2]-V1[2]*V2[1])
- V3<- 1/Norm(Tmp)*Tmp
- Ct<- Ns/Norm(W2)
- St<- sqrt(1-Ct^2)
- }
- if(Norm(Tmp)<Eps){
- Ans<- P
- return(Ans)
- }
- V1x<- V1[1]; V1y<- V1[2]; V1z<- V1[3]
- V2x<- V2[1]; V2y<- V2[2]; V2z<- V2[3]
- V3x<- V3[1]; V3y<- V3[2]; V3z<- V3[3]
- if(Mixtype(P)!=1){
- PtL<- P
- }else{
- PtL<- list(P)
- }
- Ans<- list()
- for (N in Looprange(1,Mixlength(PtL))){
- P<- Op(N,PtL)
- if(P[1]==Inf){
- Ans<- c(Ans,list(c(Inf,Inf,Inf)))
- next
- }
- x<- P[1]-C[1]; y=P[2]-C[2]; z=P[3]-C[3]
- Tmp1<- ((V1x*Ct+V2x*St)*V1x+(-V1x*St+V2x*Ct)*V2x+V3x^2)*x
- Tmp2<- ((V1x*Ct+V2x*St)*V1y+(-V1x*St+V2x*Ct)*V2y+V3x*V3y)*y
- Tmp3<- ((V1x*Ct+V2x*St)*V1z+(-V1x*St+V2x*Ct)*V2z+V3x*V3z)*z
- X<- Tmp1+Tmp2+Tmp3
- Tmp1<- ((V1y*Ct+V2y*St)*V1x+(-V1y*St+V2y*Ct)*V2x+V3x*V3y)*x
- Tmp2<- ((V1y*Ct+V2y*St)*V1y+(-V1y*St+V2y*Ct)*V2y+V3y^2)*y
- Tmp3<- ((V1y*Ct+V2y*St)*V1z+(-V1y*St+V2y*Ct)*V2z+V3y*V3z)*z
- Y<- Tmp1+Tmp2+Tmp3
- Tmp1<- ((V1z*Ct+V2z*St)*V1x+(-V1z*St+V2z*Ct)*V2x+V3x*V3z)*x
- Tmp2<- ((V1z*Ct+V2z*St)*V1y+(-V1z*St+V2z*Ct)*V2y+V3y*V3z)*y
- Tmp3<- ((V1z*Ct+V2z*St)*V1z+(-V1z*St+V2z*Ct)*V2z+V3z^2)*z
- Z<- Tmp1+Tmp2+Tmp3
- Ans<- c(Ans,list(C+c(X,Y,Z)))
- }
- if(Mixlength(Ans)==1){
- Ans<- Op(1,Ans)
- }
- return(Ans)
-}
-
-######################################
-
-Setangle<- function(...){
- Eps<- 10^(-6)
- varargin<-list(...)
- Nargs<-length(varargin)
- if(Nargs==0) {
- }
- else if(Nargs==1){
- V<- varargin[[1]]
- V<- V/Norm(V)
- THETA<<- acos(V[3])
- if(abs(sin(THETA))<Eps){
- PHI<<- 0
- }
- else{
- PHI<<- acos(V[1]/sin(THETA))
- if(V[2]< -Eps) PHI<<- -PHI
- }
- }
- else{
- PHI<<- varargin[[2]]*pi/180
- THETA<<- varargin[[1]]*pi/180
- }
- Out<- paste("theta=",as.character(THETA*180/pi)," phi=",
- as.character(PHI*180/pi),sep="")
- return (Out)
-}
-
-#################################
-
-Setpers<- function(...){
- varargin<- list(...)
- Nargs<- length(varargin)
- if(Nargs==0){
- }
- else{
- FocusPoint<<- varargin[[1]]
- EyePoint<<- varargin[[2]]
- }
- F<- as.character(FocusPoint)
- E<- as.character(EyePoint)
- Out<- paste("Focus = c(",F[1],",",F[2],",",F[3],") , ",
- " Eye = c(", E[1],",",E[2],",",E[3],") ",sep="")
- return (Out)
-}
-
-#################################
-
-SetstereoL<- function(R,T,P,H){
- X<- R*sin(T*pi/180)*cos(P*pi/180)
- Y<- R*sin(T*pi/180)*sin(P*pi/180)
- Z<- R*cos(T*pi/180)
- Eye<- c(X+H/2*Y/(X^2+Y^2),Y-H/2*X/(X^2+Y^2),Z)
- Out<- Setpers(c(0,0,0),Eye)
- return(Out)
-}
-
-#################################
-
-SetstereoR<- function(R,T,P,H){
- X<- R*sin(T*pi/180)*cos(P*pi/180)
- Y<- R*sin(T*pi/180)*sin(P*pi/180)
- Z<- R*cos(T*pi/180)
- Eye<- c(X-H/2*Y/(X^2+Y^2),Y+H/2*X/(X^2+Y^2),Z)
- Out<- Setpers(c(0,0,0),Eye)
- return(Out)
-}
-
-###############################
-
-Sf3data<- function(...){
- varargin<-list(...)
- Nargs<- length(varargin)
- FdL<- Fullformfunc(varargin[[1]])
- F<- Op(1,FdL)
- Xf<- Op(2,FdL)
- Yf<- Op(3,FdL)
- Zf<- Op(4,FdL)
- Urg<- Op(5,FdL)
- Vrg<- Op(6,FdL)
- Str<- strsplit(Urg,"=",fixed=TRUE)[[1]]
- U<- Str[1]
- Tmp<- Str[2]
- Tmp<- eval(parse(text=Tmp))
- Umin<- Tmp[1]; Umax<- Tmp[2]
- Str<- strsplit(Vrg,"=",fixed=TRUE)[[1]]
- V<- Str[1]
- Tmp<- Str[2]
- Tmp<- eval(parse(text=Tmp))
- Vmin<- Tmp[1]; Vmax<- Tmp[2]
- Ndu<- 25 ; Ndv<- 25; Np<- c(50,50)
- if(Nargs>=3){
- Ndu<- varargin[[2]]
- Ndv<- varargin[[3]]
- }
- if(Nargs>=4){
- Np<- varargin[[4]]
- if(mode(Np)=="numeric" && length(Np)==1){
- Np<- c(Np,Np)
- }
- }
- Du<- (Umax-Umin)/Ndu
- Dv<- (Vmax-Vmin)/Ndv
- PL <- c()#PL <- []
- Assign("Vmin",Vmin,"Vmax",Vmax)
- Trgstr<- Assign("t=c(Vmin,Vmax)")
- PL <- list()
- for (I in Looprange(0,Ndu)){
- U0 <- paste("(",as.character(Umin+I*Du),")",sep="")
- Tmp<- gsub(U,U0,Xf,fixed=TRUE)
- Tmp1<- gsub(V,"t",Tmp,fixed=TRUE)
- Tmp<- gsub(U,U0,Yf,fixed=TRUE)
- Tmp2<- gsub(V,"t",Tmp,fixed=TRUE)
- Tmp<- gsub(U,U0,Zf,fixed=TRUE)
- Tmp3<- gsub(V,"t",Tmp,fixed=TRUE)
- Tmp<- paste("c(",Tmp1,",",Tmp2,",",Tmp3,")",sep="")
- PD<- Spacecurve(Tmp,Trgstr,paste("N=",as.character(Np[2])))
- PL<- c(PL,list(PD))
- }
- Assign("Umin",Umin,"Umax",Umax)
- Trgstr<- Assign("t=c(Umin,Umax)")
- for (J in Looprange(0,Ndv)){
- V0<- paste("(",as.character(Vmin+J*Dv),")",sep="")
- Tmp<- gsub(V,V0,Xf,fixed=TRUE)
- Tmp1<- gsub(U,"t",Tmp,fixed=TRUE)
- Tmp<- gsub(V,V0,Yf,fixed=TRUE)
- Tmp2<- gsub(U,"t",Tmp,fixed=TRUE)
- Tmp<- gsub(V,V0,Zf,fixed=TRUE)
- Tmp3<- gsub(U,"t",Tmp,fixed=TRUE)
- Tmp<- paste("c(",Tmp1,",",Tmp2,",",Tmp3,")")
- PD<- Spacecurve(Tmp,Trgstr,paste("N=",as.character(Np[1])))
- PL<- c(PL,list(PD))
- }
- return(PL)
-}
-
-###################################
-
-Skeletonparadata<- function(...){
- varargin<-list(...)
- Nargs<- length(varargin)
- Out<- list()
- ObjL<- Flattenlist(varargin[[1]])
- Plt3L<- Flattenlist(varargin[[2]])
- R<- 0.075*1000/2.54/MilliIn
- if(Nargs>2){
- R<- R*varargin[[3]]
- }
- Eps2<- 0.05
- if(Nargs>3){
- Eps2<- varargin[[4]]
- }
- Obj2L<- list()
- for (I in Looprange(1,Mixlength(ObjL))){
- Tmp<- ProjcoordCurve(Op(I,ObjL))
- Obj2L<- c(Obj2L,list(Tmp))
- }
- Plt2L<- list()
- for (I in Looprange(1,Mixlength(Plt3L))){
- Tmp<- ProjcoordCurve(Op(I,Plt3L))
- Plt2L<- c(Plt2L,list(Tmp))
- }
- Out<- Makeskeletondata(Obj2L,Plt2L,R,Eps2)
- return(Out)
-}
-
-################################
-
-Skeletonpara3data<- function(...){
- varargin<-list(...)
- Nargs<- length(varargin)
- ObjL<- Flattenlist(varargin[[1]])
- Plt3L<- Flattenlist(varargin[[2]])
- R<- 0.075*1000/2.54/MilliIn
- if(Nargs>2){
- R=R*varargin[[3]]
- }
- Eps2<- 0.05
- if(Nargs>3){
- Eps2<- varargin[[4]]
- }
- Plt2L<- list()
- for (I in Looprange(1,Mixlength(Plt3L))){
- Tmp<- ProjcoordCurve(Op(I,Plt3L))
- Plt2L<- c(Plt2L,list(Tmp))
- }
- Out<- list()
- for (I in Looprange(1,Mixlength(ObjL))){
- Obj3<- Op(I,ObjL)
- Tmp<- ProjcoordCurve(Obj3)
- Data<- Makeskeletondata(list(Tmp),Plt2L,R,Eps2)
- for (J in Looprange(1,Mixlength(Data))){
- Gd<- Op(J,Data)
- PtD<- c()
- for (J in Looprange(1,Nrow(Gd))){
- Tmp<- Ptcrv(J,Gd)
- Tmp1<- Invparapt(Tmp,Obj3)
- Tmp1<- Op(1,Tmp1)
- PtD<- c(PtD,Tmp1)
- }
- PtD<- matrix(PtD,ncol=3,byrow=TRUE)
- Out<- c(Out,list(PtD))
- }
- }
- return(Out)
-}
-
-#################################
-
-#100815
-Skeletonpersdata<- function(...){
- varargin<-list(...)
- Nargs<- length(varargin)
- Out<- list()
- ObjL<- Flattenlist(varargin[[1]])
- Plt3L<- Flattenlist(varargin[[2]])
- R<- 0.075*1000/2.54/MilliIn
- if(Nargs>2){
- R<- R*varargin[[3]]
- }
- Eps2<- 0.05
- if(Nargs>3){
- Eps2<- varargin[[4]]
- }
- Obj2L<- list()
- for (I in Looprange(1,Mixlength(ObjL))){
- Tmp<- CameracoordCurve(Op(I,ObjL))
- Obj2L<- c(Obj2L,list(Tmp))
- }
- Plt2L<- list()
- for (I in Looprange(1,Mixlength(Plt3L))){
- Tmp<- CameracoordCurve(Op(I,Plt3L))
- Plt2L<- c(Plt2L,list(Tmp))
- }
- Out<- Makeskeletonpersdata(Obj2L,Plt2L,R,Eps2)
- return(Out)
-}
-
-#####################
-#100815
-Skeletonpers3data<- function(...){
- varargin<-list(...)
- Nargs<- length(varargin)
- Out<- list()
- ObjL<- Flattenlist(varargin[[1]])
- Plt3L<- Flattenlist(varargin[[2]])
- R<- 0.075*1000/2.54/MilliIn
- if(Nargs>2){
- R<- R*varargin[[3]]
- }
- Eps2<- 0.05
- if(Nargs>3){
- Eps2<- varargin[[4]]
- }
- Plt2L<- list()
- for (I in Looprange(1,Mixlength(Plt3L))){
- Tmp<- CameracoordCurve(Op(I,Plt3L))
- Plt2L<- c(Plt2L,list(Tmp))
- }
- Out<- list()
- for (I in Looprange(1,Mixlength(ObjL))){
- Obj3<- Op(I,ObjL)
- Tmp<- CameracoordCurve(Obj3)
- Data<- Makeskeletonpersdata(list(Tmp),Plt2L,R,Eps2)
- for (J in Looprange(1,Mixlength(Data))){
- Gd<- Op(J,Data)
- PtD<- c()
- for (J in Looprange(1,Nrow(Gd))){
- Tmp<- Gd[J,]
- Tmp1<- Invperspt(Tmp,Obj3)
- Tmp1<- Op(1,Tmp1)
- PtD<- rbind(PtD,Tmp1)
- }
- Out<- c(Out,list(PtD))
- }
- }
- return(Out)
-}
-
-#################################
-
-Spacecurve<- function(...){
- Eps<- 10^(-5)
- varargin<-list(...)
- Nargs<- length(varargin)
- Fnstr<- varargin[[1]]
- Rgstr<- varargin[[2]]
- Range<- c(0,2*pi)
- N<- 50 #Numpoints
- E<- c() #Exclusions
- D<- Inf #Discont (Changed)
- for(I in Looprange(3,Nargs)){
- Tmp<- varargin[[I]]
- StrV<- strsplit(Tmp,"=",fixed=TRUE)
- StrV<- StrV[[1]]
- Tmp1<- toupper(StrV[1])
- Lhs<- substr(Tmp1,1,1)
- Str<- paste(Lhs,"=",StrV[2],sep="")
- eval(parse(text=Str))
- }
- StrV<- strsplit(Rgstr,"=",fixed=TRUE)
- StrV<- StrV[[1]]
- if(length(StrV)>1){
- Vname<- StrV[1]
- Rng<- eval(parse(text=StrV[2]))
- }
- else{
- Vname<- Rgstr
- Rng<- c(XMIN,XMAX)
- }
- T1<- Rng[1]; T2<- Rng[2]
- Dt<- (T2-T1)/N #17.09.22
- Str<- gsub(Vname,"t",Fnstr)
- Str=gsub("[","c(",Str,fixed=TRUE) #17.12.22(2lines)
- Str=gsub("]",")",Str,fixed=TRUE)
- if(abs(Dt)<Eps){ # 16.12.13
- t=T1
- P=eval(parse(text=Str))
- return(P)
- }
- P<- c()
-# E<- sort(E,decreasing=FALSE)
- E<- c(E,Inf)
- E<- sort(E,decreasing=FALSE)
- Ke<- 1
- for(jj in 1:(N+1)){
- t=T1+(jj-1)*Dt
- Pa<- c()
- if(t-E[Ke]< Eps){
- Pa<- eval(parse(text=Str))
- }
- if(abs(t-E[Ke])<=Eps){
- if(length(P)>0 && P[Nrow(P),1]!=Inf){
- Pa<- c(Inf,Inf,Inf)
- }
- }
- if(t-E[Ke]>Eps){
- Pa<- eval(parse(text=Str))
- Ke<- Ke+1
- }
- if(length(Pa)>0){
- if(Pa[1]==Inf){
- P<- rbind(P,Pa)
- }else if(length(P)==0){
- P<- rbind(c(),c(Pa))
- }
- else{
- Tmp<- P[Nrow(P),]
- if(Tmp[1]==Inf){
- P<- rbind(P,Pa)
- }
- else if( Norm(Tmp-Pa)<D){
- P<- rbind(P,Pa)
- }
- else{
- P<- rbind(P,c(Inf,Inf,Inf))
- P<- rbind(P,Pa)
- }
- }
- }
- }
- rownames(P)<- 1:Nrow(P) # 10.08.16
- return(P)
-}
-
-########################################
-
-Spaceline<- function(...){
- varargin<- list(...)
- Z<- c()
- for(I in 1:length(varargin)){
- Data<- varargin[[I]]
- if(Mixtype(Data)==1){
- J<- 1
- while (J<=Ncol(Data)){
- Tmp<- Data[J:(J+2)]
- Z<-c(Z,Tmp)
- J<- J+3
- }
- next
- }
- if(Mixtype(Data)==3){
- Tmp<- list()
- for(I in 1:Mixlength(Data)){
- Tmp<- c(Tmp,Op(I,Data))
- }
- Data<- Tmp
- }
- for(J in 1:Mixlength(Data)){
- Tmp<- Op(J,Data)
- Z<- c(Z,Tmp)
- }
- }
- Z<- matrix(Z,ncol=3,byrow=TRUE)
- return(Z)
-}
-
-#################################
-
-Translate3data<- function(...){
- varargin<- list(...)
- Nargs<- length(varargin)
- Pd3<- varargin[[1]]
- Mv<- varargin[[2]]
- if(mode(Mv)=="numerice" && length(Mv)==1){
- Mv<- c(varargin[[2]],varargin[[3]],varargin[[4]])
- }
- if(Mixtype(Pd3)==1){
- Pd3<- list(Pd3)
- }
- else if(Mixtype(Pd3)==3){
- Tmp<-list()
- for(I in Looprange(1,Mixlength(Pd3))){
- Tmp<- c(Tmp, Op(I,Pd3))
- }
- Pd3<- Tmp
- }
- Out<- list()
- for(I in Looprange(1,Mixlength(Pd3))){
- PD<- Op(I,Pd3)
- PD<- rbind(c(),PD)
- Ans<- c()
- for(J in Looprange(1,Nrow(PD))){
- P<- PD[J,]
- Tmp<- P+Mv
- Ans<- rbind(Ans,Tmp)
- }
- rownames(Ans)<- 1:Nrow(Ans)
- Out<- c(Out,list(Ans))
- }
- if(Mixlength(Out)==1){
- Out<- Op(1,Out)
- }
- return(Out)
-}
-
-###############################################
-
-Xyzax3data<- function(Xrange,Yrange,Zrange){
- StrV<-strsplit(Xrange,"=",fixed=TRUE)
- StrV<- StrV[[1]]
- if(length(StrV)>1) StrV<- StrV[2]
- Tmp<- eval(parse(text=StrV))
- Px<- c(Tmp[1],0,0)
- Qx<- c(Tmp[2],0,0)
- StrV<-strsplit(Yrange,"=",fixed=TRUE)
- StrV<- StrV[[1]]
- if(length(StrV)>1) StrV<- StrV[2]
- Tmp<- eval(parse(text=StrV))
- Py<- c(0,Tmp[1],0)
- Qy<- c(0,Tmp[2],0)
- StrV<-strsplit(Zrange,"=",fixed=TRUE)
- StrV<- StrV[[1]]
- if(length(StrV)>1) StrV<- StrV[2]
- Tmp<- eval(parse(text=StrV))
- Pz<- c(0,0,Tmp[1])
- Qz<- c(0,0,Tmp[2])
- Out<- list(Spaceline(Px,Qx),Spaceline(Py,Qy),Spaceline(Pz,Qz))
- return(Out)
-}
-
-###################################
-
-Xyzaxparaname<- function(...){
- varargin<- list(...)
- Nargs<- length(varargin)
- Eps<- 10.0^(-6)
- Dr<- 0.19*1000/2.54/MilliIn
- Tmp<- varargin[[Nargs]]
- if(Nargs>1 && is.numeric(Tmp)){
- Dr<- Dr*Tmp
- Nargs<- Nargs-1
- }
- if(mode(varargin[[1]])=="character"){
- Xname<- "x"
- Yname<- "y"
- Zname<- "z"
- Xrange<- varargin[[1]]
- Yrange<- varargin[[2]]
- Zrange<- varargin[[3]]
- StrV<-strsplit(Xrange,"=",fixed=TRUE)
- StrV<- StrV[[1]]
- if(length(StrV)>1){
- Xname<- StrV[1]
- StrV<- StrV[2]
- }
- Tmp<- eval(parse(text=StrV))
- Px<- c(Tmp[1],0,0)
- Qx<- c(Tmp[2],0,0)
- StrV<-strsplit(Yrange,"=",fixed=TRUE)
- StrV<- StrV[[1]]
- if(length(StrV)>1){
- Yname<- StrV[1]
- StrV<- StrV[2]
- }
- Tmp<- eval(parse(text=StrV))
- Py<- c(0,Tmp[1],0)
- Qy<- c(0,Tmp[2],0)
- StrV<-strsplit(Zrange,"=",fixed=TRUE)
- StrV<- StrV[[1]]
- if(length(StrV)>1){
- Zname<- StrV[1]
- StrV<- StrV[2]
- }
- Tmp<- eval(parse(text=StrV))
- Pz<- c(0,0,Tmp[1])
- Qz<- c(0,0,Tmp[2])
- }else{
- Data<- varargin[[1]]
- Xname<- "x"; Yname<- "y"; Zname<- "z"
- if(Nargs>1){
- if(varargin[[2]]!=""){
- Xname<- varargin[[2]]
- }
- if(varargin[[3]]!=""){
- Yname<- varargin[[3]]
- }
- if(varargin[[4]]!=""){
- Zname<- varargin[[4]]
- }
- }
- Tmp<- Op(1,Data)
- Px<- Tmp[1,]; Qx<- Tmp[2,]
- Tmp<- Op(2,Data)
- Py<- Tmp[1,]
- Qy<- Tmp[2,]
- Tmp<- Op(3,Data)
- Pz<- Tmp[1,]
- Qz<- Tmp[2,]
- }
- Ph<- Parapt(Px); Qh<- Parapt(Qx); R<-Norm(Ph-Qh)
- Kekka<- list()
- if(R>Eps){
- Ch<- Qh+Dr/R*(Qh-Ph)
- Kekka<- c(Kekka,list(Pointdata(Ch)))
- Expr(Ch,"c",Xname)
- }
- Ph<- Parapt(Py); Qh<- Parapt(Qy); R<- Norm(Ph-Qh)
- if(R>Eps){
- Ch<- Qh+Dr/R*(Qh-Ph)
- Kekka<- c(Kekka,list(Pointdata(Ch)))
- Expr(Ch,"c",Yname)
- }
- Ph<- Parapt(Pz); Qh<- Parapt(Qz); R<- Norm(Ph-Qh)
- if(R>Eps){
- Ch<- Qh+Dr/R*(Qh-Ph)
- Kekka<- c(Kekka,list(Pointdata(Ch)))
- Expr(Ch,"c",Zname)
- }
-# return(Kekka)
-}
-
-###################################
-
-Xyzaxpersname<- function(...){
- varargin<- list(...)
- Eps<- 10.0^(-6)
- Nargs<- length(varargin)
- Dr<- 0.19*1000/2.54/MilliIn
- Tmp<- varargin[[Nargs]]
- if(Nargs>1 && mode(Tmp)=="numeric"){
- Dr<- Dr*Tmp
- Nargs<- Nargs-1
- }
- if(mode(varargin[[1]])=="character"){
- Xname<- "x"
- Yname<- "y"
- Zname<- "z"
- Xrange<- varargin[[1]]
- Yrange<- varargin[[2]]
- Zrange<- varargin[[3]]
- StrV<-strsplit(Xrange,"=",fixed=TRUE)
- StrV<- StrV[[1]]
- if(length(StrV)>1){
- Xname<- StrV[1]
- StrV<- StrV[2]
- }
- Tmp<- eval(parse(text=StrV))
- Px<- c(Tmp[1],0,0)
- Qx<- c(Tmp[2],0,0)
- StrV<-strsplit(Yrange,"=",fixed=TRUE)
- StrV<- StrV[[1]]
- if(length(StrV)>1){
- Yname<- StrV[1]
- StrV<- StrV[2]
- }
- Tmp<- eval(parse(text=StrV))
- Py<- c(0,Tmp[1],0)
- Qy<- c(0,Tmp[2],0)
- StrV<-strsplit(Zrange,"=",fixed=TRUE)
- StrV<- StrV[[1]]
- if(length(StrV)>1){
- Zname<- StrV[1]
- StrV<- StrV[2]
- }
- Tmp<- eval(parse(text=StrV))
- Pz<- c(0,0,Tmp[1])
- Qz<- c(0,0,Tmp[2])
- }else{
- Data<- varargin[[1]]
- Xname<- "x"; Yname<- "y"; Zname<- "z"
- if(Nargs>1){
- if(varargin[[2]]!=""){
- Xname<- varargin[[2]]
- }
- if(varargin[[3]]!=""){
- Yname<- varargin[[3]]
- }
- if(varargin[[4]]!=""){
- Zname<- varargin[[4]]
- }
- }
- Tmp<- Op(1,Data)
- Px<- Tmp[1,]; Qx<- Tmp[2,]
- Tmp<- Op(2,Data)
- Py<- Tmp[1,]
- Qy<- Tmp[2,]
- Tmp<- Op(3,Data)
- Pz<- Tmp[1,]
- Qz<- Tmp[2,]
- }
- Ph<- Perspt(Px)
- Qh<- Perspt(Qx)
- R<- Norm(Ph-Qh)
- Kekka<- list()
- if(R>Eps){
- Ch<- Qh+Dr/R*(Qh-Ph)
- Kekka<- c(Kekka,list(Pointdata(Ch)))
- Expr(Ch,"c",Xname)
- }
- Ph<- Perspt(Py)
- Qh<- Perspt(Qy)
- R<- Norm(Ph-Qh)
- if(R>Eps){
- Ch<- Qh+Dr/R*(Qh-Ph)
- Kekka<- c(Kekka,list(Pointdata(Ch)))
- Expr(Ch,"c",Yname)
- }
- Ph<- Perspt(Pz)
- Qh<- Perspt(Qz)
- R<- Norm(Ph-Qh)
- if(R>Eps){
- Ch<- Qh+Dr/R*(Qh-Ph)
- Kekka<- c(Kekka,list(Pointdata(Ch)))
- Expr(Ch,"c",Zname)
- }
-# return(Kekka)
-}
-
-#########################
-#100815
-Zparapt<- function(P){#function Out=Zparapt(P)
- x<- P[1]; y<- P[2]; z<- P[3]
- Out<- x*cos(PHI)*sin(THETA)+y*sin(PHI)*sin(THETA)+z*cos(THETA)
- return(Out)
-}
-
-#########################
-#100815
-Zperspt<- function(P){
- Tmp<- P-FocusPoint
- X1<- Tmp[1]; Y1<- Tmp[2]; Z1<- Tmp[3]
- Tmp<- EyePoint-FocusPoint
- E1<- Tmp[1]; F1<- Tmp[2]; G1<- Tmp[3]
- Ca<- E1/sqrt(E1^2+F1^2)
- Sa<- F1/sqrt(E1^2+F1^2)
- X2<- X1*Ca+Y1*Sa; Y2<- -X1*Sa+Y1*Ca; Z2<- Z1
- E2<- E1*Ca+F1*Sa; F2<- -E1*Sa+F1*Ca; G2<- G1
- Cb<- E2/sqrt(E2^2+G2^2)
- Sb<- G2/sqrt(E2^2+G2^2)
- X3<- X2*Cb+Z2*Sb
- return(X3)
-}
-
-##########################################
-
-
-
-##########################################
-
-# Stat Package
-
-##########################################
-
-# 2010.04.12
-
-# new
-
-# Htickmarklower, Vtickmarkleft, HtickmarklowerV
-# VtickmarkleftV, Insertcom, Replacecom
-# Maketexfile, Formatting
-# Drwhistframe, Histplotdata, Drwhistplot
-
-Htickmarklower<- function(...)
-{ ## Scaling is implemented
- varargin<- list(...)
- Nargs<- length(varargin)
- ArgsL<- varargin
- if(mode(ArgsL[[1]])=="character"){
- Str<- ArgsL[[1]]
- Tmp<- strsplit(Str,"m")
- Tmp<- Tmp[[1]]
- if(length(Tmp)>1){
- I<- nchar(Tmp[1])+1
- }
- else{
- I<- 0
- }
- Tmp<- strsplit(Str,"n")
- Tmp<- Tmp[[1]]
- if(length(Tmp)>1){
- J<- nchar(Tmp[1])+1
- }
- else{
- J<- 0
- }
- Tmp<- strsplit(Str,"r")
- Tmp<- Tmp[[1]]
- if(length(Tmp)>1){
- K=nchar(Tmp[1])+1
- }
- else{
- K<- 0
- }
- if(K>0){
- S<- substr(Str,K+1,nchar(Str))
- R<- as.numeric(S)
- if(is.na(R)){
- R<- 1
- }
- }
- else{
- R<- 1
- K<- nchar(Str)+1
- }
- if(J>0){
- S<- substr(Str,J+1,K-1)
- Dn<- as.numeric(S)
- if(is.na(Dn)){
- Dn<- 1
- }
- }
- else{
- Dn<- 1000
- J<- nchar(Str)+1
- }
- S<- substr(Str,I+1,J-1)
- Dm<- as.numeric(S)
- if(is.na(Dm)){
- Dm<- 1
- }
- ArgsL<- list()
- for (I in Looprange(1, floor((XMAX-GENTEN[1])/Dm))){
- ArgsL<- Mixjoin(ArgsL,I*Dm)
- if(I-floor(I/Dn)*Dn==0){
- Str<- as.character(I*Dm*R)
- ArgsL<- Mixjoin(ArgsL,Str)
- }
- }
- for (I in seq(-1,ceiling((XMIN-GENTEN[1])/Dm),by=-1)){
- ArgsL<- Mixjoin(ArgsL,I*Dm)
- if(I-floor(I/Dn)*Dn==0){
- Str<- as.character(I*Dm*R)
- ArgsL<- Mixjoin(ArgsL,Str)
- }
- }
- }
- MemoriList<- list()
- Memori<- list()
- for (N in 1:length(ArgsL)){
- Dt<- ArgsL[[N]]
- if(mode(Dt)=="numeric" && length(Dt)>1){
- if(length(Memori)>0){
- MemoriList<- Mixjoin(MemoriList,list(Memori))
- }
- Memori<- list(Dt)
- next
- }
- if(mode(Dt)=="character"){
- Memori<- Mixjoin(Memori,Dt)
- }
- else{
- if(length(Memori)>0){
- MemoriList<- Mixjoin(MemoriList,list(Memori))
- }
- Memori<- list(Dt,GENTEN[2])
- }
- }
- MemoriList<- Mixjoin(MemoriList,list(Memori))
- for (N in 1:length(MemoriList)){
- Dt<- MemoriList[[N]]
- Ndt<- length(Dt)
- X=Op(1,Dt)
- Y=Op(2,Dt)
- Tmp<-Doscaling(c(X,Y))
- X<- Tmp[1]
- Y<- Tmp[2]
- Moji<- Op(Ndt,Dt)
- Tmp1<- Unscaling(c(X,Y))
- Tmp2<- Unscaling(c(X,Y-2*MARKLEN))
- Fd<- Listplot(c(Tmp1,Tmp2))
- Drwline(Fd)
- if(Ndt==3){
- Tmp<-Unscaling(c(X,Y-2*MARKLEN))
- Expr(Tmp,"s",Moji)
- }
- if(Ndt==4){
- Houkou<- Op(3,Dt)
- Tmp<-grep("s",Houkou)
- if(length(Tmp)>0){
- Tmp<-Unscaling(c(X,Y-2*MARKLEN))
- Expr(Tmp,Houkou,Moji)
- }
- else{
- Tmp<- Unscaling(c(X,Y))
- Expr(Tmp,Houkou,Moji)
- }
- }
- cat("%\n",file=Wfile,append=TRUE)
- }
-}
-
-Vtickmarkleft<- function(...)
-{ ## Scaling is implemented
- varargin<- list(...)
- Nargs<- length(varargin)
- ArgsL<- varargin
- if(mode(ArgsL[[1]])=="character"){
- Str<- ArgsL[[1]]
- Tmp<- strsplit(Str,"m")
- Tmp<- Tmp[[1]]
- if(length(Tmp)>1){
- I<- nchar(Tmp[1])+1
- }
- else{
- I<- 0
- }
- Tmp<- strsplit(Str,"n")
- Tmp<- Tmp[[1]]
- if(length(Tmp)>1){
- J<- nchar(Tmp[1])+1
- }
- else{
- J<- 0
- }
- Tmp<- strsplit(Str,"r")
- Tmp<- Tmp[[1]]
- if(length(Tmp)>1){
- K=nchar(Tmp[1])+1
- }
- else{
- K<- 0
- }
- if(K>0){
- S<- substr(Str,K+1,nchar(Str))
- R<- as.numeric(S)
- if(is.na(R)){
- R<- 1
- }
- }
- else{
- R<- 1
- K<- nchar(Str)+1
- }
- if(J>0){
- S<- substr(Str,J+1,K-1)
- Dn<- as.numeric(S)
- if(is.na(Dn)){
- Dn<- 1
- }
- }
- else{
- Dn<- 1000
- J<- nchar(Str)+1
- }
- S<- substr(Str,I+1,J-1)
- Dm<- as.numeric(S)
- if(is.na(Dm)){
- Dm<- 1
- }
- ArgsL<- list()
- for (I in 1:floor((YMAX-GENTEN[2])/Dm)){
- ArgsL<- Mixjoin(ArgsL,I*Dm)
- if(I-floor(I/Dn)*Dn==0){
- Str<- as.character(I*Dm*R)
- ArgsL<- Mixjoin(ArgsL,Str)
- }
- }
- for (I in seq(-1,ceiling((YMIN-GENTEN[2])/Dm))){
- ArgsL<- Mixjoin(ArgsL,I*Dm)
- if(I-floor(I/Dn)*Dn==0){
- Str<- as.character(I*Dm*R)
- ArgsL<- Mixjoin(ArgsL,Str)
- }
- }
- }
- MemoriList<- list()
- Memori<- list()
- for (N in 1:length(ArgsL)){
- Dt<- ArgsL[[N]]
- if(mode(Dt)=="numeric" && length(Dt)>1){
- if(length(Memori)>0){
- MemoriList<- Mixjoin(MemoriList,list(Memori))
- }
- Memori<- list(Dt)
- next
- }
- if(mode(Dt)=="character"){
- Memori<- Mixjoin(Memori,Dt)
- }
- else{
- if(length(Memori)>0){
- MemoriList<- Mixjoin(MemoriList,list(Memori))
- }
- Memori<- list(GENTEN[1],Dt)
- }
- }
- MemoriList<- Mixjoin(MemoriList,list(Memori))
- for (N in 1:length(MemoriList)){
- Dt<- MemoriList[[N]]
- Ndt<- length(Dt)
- X=Op(1,Dt)
- Y=Op(2,Dt)
- Tmp<-Doscaling(c(X,Y))
- X<- Tmp[1]
- Y<- Tmp[2]
- Moji<- Op(Ndt,Dt)
- Tmp1<- Unscaling(c(X,Y))
- Tmp2<- Unscaling(c(X-2*MARKLEN,Y))
- Fd<- Listplot(c(Tmp1,Tmp2))
- Drwline(Fd)
- if(Ndt==3){
- Tmp<-Unscaling(c(X-2*MARKLEN,Y))
- Expr(Tmp,"w",Moji)
- }
- if(Ndt==4){
- Houkou<- Op(3,Dt)
- Tmp<-grep("w",Houkou)
- if(length(Tmp)>0){
- Tmp<-Unscaling(c(X-2*MARKLEN,Y))
- Expr(Tmp,Houkou,Moji)
- }
- else{
- Tmp<- Unscaling(c(X,Y))
- Expr(Tmp,Houkou,Moji)
- }
- }
- cat("%\n",file=Wfile,append=TRUE)
- }
-}
-
-HtickmarklowerV<- function(Vec,digits=2,nsmall=2)
-{
- for (I in 1:length(Vec)){
- Tmp<- Vec[I]
- Htickmarklower(Tmp, Formatting(Tmp,digits,nsmall))
- }
-}
-
-HtickLV<- function(...)
-{
- HtickmarklowerV(...)
-}
-
-VtickmarkleftV<- function(Vec,digits=2,nsmall=2)
-{
- for (I in 1:length(Vec)){
- Tmp<- Vec[I]
- Vtickmarkleft(Tmp, Formatting(Tmp,digits,nsmall))
- }
-}
-
-VtickLV<- function(...)
-{
- VtickmarkleftV(...)
-}
-
-Insertcom<- function(CmdM,Npos,Str)
-{
- if(is.matrix(CmdM)){
- Cmd<- CmdM
- }
- else{
- C<- paste("Cmd<- ",CmdM)
- eval(parse(text=C))
- }
- Out<- Cmd[Looprange(1,Npos-1),]
- Out<- c(Out,Str)
- Tmp<- Cmd[Looprange(Npos,nrow(Cmd)),]
- Out<- c(Out,Tmp)
- Out<- matrix(Out)
- if(!is.matrix(CmdM)){
- C<- paste(CmdM,"<<- Out")
- eval(parse(text=C))
- }
- return(Out)
-}
-
-Replacecom<- function(CmdM,Npos,Str)
-{
- if(is.matrix(CmdM)){
- Cmd<- CmdM
- }
- else{
- C<- paste("Cmd<- ",CmdM)
- eval(parse(text=C))
- }
- Out<- Cmd[Looprange(1,Npos-1),]
- Out<- c(Out,Str)
- Tmp<- Cmd[Looprange(Npos+1,nrow(Cmd)),]
- Out<- c(Out,Tmp)
- Out<- matrix(Out)
- if(!is.matrix(CmdM)){
- C<- paste(CmdM,"<<- Out")
- eval(parse(text=C))
- }
- return(Out)
-}
-
-Deletecom<- function(CmdM,Npos)
-{
- if(is.matrix(CmdM)){
- Cmd<- CmdM
- }
- else{
- C<- paste("Cmd<- ",CmdM)
- eval(parse(text=C))
- }
- Out<- Cmd[Looprange(1,Npos-1),]
- Tmp<- Cmd[Looprange(Npos+1,nrow(Cmd)),]
- Out<- c(Out,Tmp)
- Out<- matrix(Out)
- if(!is.matrix(CmdM)){
- C<- paste(CmdM,"<<- Out")
- eval(parse(text=C))
- }
- return(Out)
-}
-
-Maketexfile<- function(commands="",texfile="")
-{
- Openfile(texfile)
- Execmd(commands)
- Closefile()
-}
-
-Formatting<- function(X,D=2,N=2)
-{
- if(D>0){
- Xs <- format(X,digits=D,nsmall=N)
- }
- else{
- Xs<- as.character(X)
- }
- return(Xs)
-}
-
-################################
-
-Boxplotdata1 <-function(DataF1,CenterX,Width,...)
-{
- Xr <- Width
- Temp <- boxplot(DataF1[1],plot=FALSE)
- Stats <- Temp$stats
- rownames(Stats) <- c("Lhige","Q1","Q2","Q3","Uhige")
- Out <- Temp$out
- Lhige <- Stats["Lhige",1]
- Uhige <- Stats["Uhige",1]
- Q1 <- Stats["Q1",1]
- Q2 <- Stats["Q2",1]
- Q3 <- Stats["Q3",1]
- CenterY <- (Q1+Q3)/2
- C <- c(CenterX,CenterY)
- V <- c(0,(Q3-Q1)/2)
- G1 <- Framedata(C,Xr/2,V[2]) # box
- Temp1 <- c(0,Q1-Lhige)
- Temp2 <- c(0,Uhige-Q3)
- G2 <- Listplot(C-V,C-V-Temp1) #
- G3 <- Listplot(C+V,C+V+Temp2) #
- Temp3 <- c(Xr/4,0)
- G4 <- Listplot(C-V-Temp1-Temp3,C-V-Temp1+Temp3) #
- G5 <- Listplot(C+V+Temp2-Temp3,C+V+Temp2+Temp3) #
- Temp4 <- c(0,Q3-Q2)
- Temp5 <- c(Xr/2,0)
- G6 <- Listplot(C+V-Temp4-Temp5,C+V-Temp4+Temp5) #
- G7 <- list()
- for(j in Looprange(1,length(Out))){
- G7 <- c(G7,list(c(CenterX, Out[j])))
- }
- G7 <- G7[order(Out,decreasing=TRUE)]
- list(median=G6,box=G1,uwhisker=G2,lwhisker=G3,lwp=G4,uwp=G5,outliers=G7)
-}
-
-Boxplotdata2 <- function(Data,Ratio, ...)
-{
- DataF<- Flattenlist(Data) # 11.07.21(from)
- ymin<- Inf
- ymax<- -Inf
- for(J in 1:length(DataF)){
- Tmp<- DataF[[J]]
- ymin<- min(ymin, min(Tmp))
- ymax<- max(ymax,max(Tmp))
- } # 11.07.21(upto)
- dy <- ymax-ymin
- Setwindow(c(0,XMAX-XMIN),c(ymin-0.1*dy,ymax+0.1*dy))
- R1<- (YMAX-YMIN)/(XMAX-XMIN)
- R<- Ratio/R1
- Setscaling(R)
- Delta <- XMAX/length(DataF)
- W <- 0.6*Delta
- PdL <- list()
- for(i in 1:length(DataF)){ # 11.07.21
- X <- (0.5+i-1)*Delta
- G <- Boxplotdata1(DataF[i],X,W,...)
- PdL <- c(PdL,list(G))
- }
- G <- Framedata()
- Tmp<- list(frame=G)
- PdL <-c(PdL,list(Tmp))
- Epsi <-0
- Setwindow(c(XMIN-Epsi,XMAX+Epsi),c(YMIN-Epsi,YMAX+Epsi))
- return(PdL)
-}
-
-Drwboxframe<-function(BoxDataL)
-{
- Setorigin(c(XMIN,YMIN))
- Tmp<- Unscaling(c(0.2,0.2))
- Setwindow(c(XMIN-0.2,XMAX),c(YMIN-Tmp[2],YMAX))
- Hako<- BoxDataL$plotdata
- title<- BoxDataL$title
- cap<- BoxDataL$cap
- ylab<- BoxDataL$ylab
- if(mode(title)!="list") title<- list(title)
- if(mode(cap)!="list") cap<- list(cap)
- if(mode(ylab)!="list") ylab<- list(ylab)
- if(length(title)==0) title<- list("")
- if(length(title)==1) title<- c(title, list("n"))
- if(length(title)==2) title<- c(title, list(""))
- if(length(cap)==0) cap<- list("")
- if(length(cap)==1) cap<- c(cap, list("n"),0) # 11.11.27
- if(length(cap)==2) cap<- c(cap, 0) # 11.11.27
- if(length(ylab)==0) ylab<- list("")
- if(length(ylab)==1) ylab <- c(ylab, list("n"))
- if(length(ylab)==2) ylab<- c(ylab, list(""))
- Temp <- Hako[[length(Hako)]]
- Drwline(Temp$frame)
- Fontsize(cap[[2]])
- for(i in Looprange(1,length(Hako)-1)){
- Temp <- Hako[[i]]
- attach(Temp)
- Dashline(uwhisker,lwhisker)
- Drwline(median,2)
- Drwline(box,lwp,uwp)
- Drwpt(outliers,0)
- X <- uwhisker[1,1]
- detach(Temp)
- Htickmarklower(X)
- if(nchar(cap[[1]])<1) next # 2011.03.08
- if(length(cap)==2 || cap[[3]]==0){
- pos<- 1
- if(length(cap)>=4) pos<- cap[[4]]
- Tmp<- paste("s",as.character(pos),sep="")
- Letter(c(X,YMIN),Tmp, Op(i,cap[[1]]))
- }
- else{
- rotate<- cap[[3]]
- if(length(cap)==3){
- pos<- 0
- }
- else{
- pos<- cap[[4]]
- }
- Temp1 <- rotate*pi/180
- Temp <- c(cos(Temp1),sin(Temp1))
- Letterrot(c(X,YMIN-pos),Temp,Op(i,cap[[1]]))
- }
- }
- if(nchar(ylab[[1]])>0){
- Fontsize(ylab[[2]])
- Tmp1<- ylab[[1]]
- Tmp3<- ylab[[3]]
- if(nchar(Tmp3)>0){
- Tmp1<- paste("{\\",Tmp3," ",Tmp1,"}",sep="")
- }
- Letter(c(XMIN, YMAX),"n2",Tmp1)
- Fontsize("n")
- }
- if(nchar(title[[1]])>0){
- Fontsize(title[[2]])
- Tmp1<- title[[1]]
- Tmp3<- title[[3]]
- if(nchar(Tmp3)>0){
- Tmp1<- paste("{\\",Tmp3," ",Tmp1,"}",sep="")
- }
- Letter(c((XMIN+XMAX)/2,YMAX),"n2",Tmp1)
- }
- Fontsize("n")
-}
-
-Drwboxplot<- function(dataf,var,size,
- title=list(""), cap=list(colnames(dataf)),
- ylab=list(""), ptsize=5,plot=TRUE,...)
- #Return : title,cap,ylab,commands,plotdata,info
-{
- Tmp <- boxplot(dataf, plot=FALSE, ...)
- Stats <- Tmp$stats
- DataF<- Flattenlist(dataf) # 11.07.21(from)
- ymin<- Inf
- ymax<- -Inf
- for(J in 1:length(DataF)){
- Tmp<- DataF[[J]]
- ymin<- min(ymin, min(Tmp))
- ymax<- max(ymax,max(Tmp))
- } # 11.07.21(upto)
- Hako<- Boxplotdata2(dataf, size[2]/size[1], ...)
- if(plot){
- Windisp(Hako)
- }
- Tmp<- Formatting(size[1]/(XMAX-XMIN),5,5)
- unit<- paste(Tmp,"cm",sep="")
- Setunitlen(unit)
- Exstr<- c(
- "","",
- paste("Beginpicture(","'",unit,"')",sep=""),
- paste("Setpt(",as.character(ptsize),")",sep=""),
- "","",
- paste("Drwboxframe(",var,")",sep=""),
- paste("VtickLV(c(",as.character(ymin),",", as.character(ymax),"),0,0)",sep=""),
- "","","","",
- "Setpt(1)",
- "Endpicture(0)"
- )
- Exstr<- matrix(Exstr)
- Xpos<- c()
- for(i in Looprange(1,length(Hako)-1)){
- Temp <- Hako[[i]]
- Temp1 <- Temp[[5]]
- Xpos <- c(Xpos,Temp1[1,1])
- }
- Info<- list(stats=Stats,window=matrix(c(XMIN,XMAX,YMIN,YMAX),nrow=2),xpos=Xpos)
- Tmp<- paste(var,"<<- ",
- "list(title=title,cap=cap,ylab=ylab,",
- "commands=Exstr,plotdata=Hako,info=Info)",sep="")
- eval(parse(text=Tmp))
-}
-
-
-###########################################
-
-Histplotdata <- function(DataV,Ratio,freq=TRUE,densplot=FALSE,...)
-# 10.12.07 freq
-{
- Temp <- hist(DataV,plot=FALSE,...)
- Breaks <- Temp$breaks
- Counts <- Temp$counts
- Density <- Temp$density
- Mids <- Temp$mids
- if(!freq){
- Data<- Density
- }
- else{
- Data<- Counts
- }
- Ghist <- list()
- for(i in Looprange(1,length(Breaks)-1)){
- Tmp1 <- c(Breaks[i],Breaks[i+1])
- Tmp2 <- c(0,Data[i])
- G1 <- Framedata(Tmp1,Tmp2) #bar
- Ghist <- c(Ghist,list(G1))
- }
- Bin <- Breaks[2]-Breaks[1]
- Eps <- 0.7*Bin # 0.7 times Bin
- Temp1 <- c(min(Breaks)-Eps,max(Breaks)+Eps) # Put Eps at both sides
- Temp2 <- c(0,max(Data)*1.02)
- Setwindow(Temp1,Temp2)
- Setorigin(c(Temp1[1],0))
- R1<- (YMAX-YMIN)/(XMAX-XMIN)
- R<- Ratio/R1
- Setscaling(R)
- VEps <- 0.05*(XMAX-XMIN)/5
- Temp1<- Temp1-c(VEps,0)
- Temp2<- Temp2-1/R*c(VEps,0)
- Setwindow(Temp1,Temp2)
- Fpt <- c(Mids[1]-Bin,0)
- Lpt <- c(Mids[length(Mids)]+Bin,0)
- Fp <- matrix(Fpt,nrow=1)
- for(i in Looprange(1,length(Mids))){
- Tmp <- c(Mids[i],Data[i])
- Fp <- rbind(Fp,Tmp)
- }
- Fp <- rbind(Fp,Lpt)
- rownames(Fp)<- c(1:nrow(Fp))
- if(densplot){
- Temp <- density(DataV)
- X <- matrix(Temp$x)
- Y <- matrix(Temp$y)
- Gdens <- cbind(X,Y)
- }
- else{
- Gdens <- list()
- }
- list(plotdata=list(histplot=Ghist,fpplot=list(Fp),densityplot=list(Gdens)),
- breaks=Breaks,counts=Counts,density=Density,mids=Mids)
-}
-
-Drwhistframe<-function(HistDataL)
-{
- title<- HistDataL$title
- xlab<- HistDataL$xlab
- ylab<- HistDataL$ylab
- if(mode(title)!="list") title<- list(title)
- if(mode(xlab)!="list") cap<- list(xlab)
- if(mode(ylab)!="list") cap<- list(ylab)
- if(length(title)==0) title<- list("")
- if(length(title)==1) title<- c(title, list("n"))
- if(length(title)==2) title<- c(title, list(""))
- if(length(xlab)==0) xlab<- list("")
- if(length(xlab)==1) xlab<- c(xlab, list("n"))
- if(length(xlab)==2) xlab<- c(xlab, list(""))
- if(length(xlab)==3) xlab<- c(xlab, list(8))
- if(length(ylab)==0) ylab<- list("")
- if(length(ylab)==1) ylab<- c(ylab, list("n"))
- if(length(ylab)==2) ylab<- c(ylab, list(""))
- if(nchar(title[[1]])>0){
- Fontsize(title[[2]])
- Tmp1<- title[[1]]
- Tmp3<- title[[3]]
- if(nchar(Tmp3)>0){
- Tmp1<- paste("{\\",Tmp3," ",Tmp1,"}",sep="")
- }
- Letter(c((XMIN+XMAX)/2,YMAX),"n2",Tmp1)
- Fontsize("n")
- }
- if(nchar(xlab[[1]])>0){
- Fontsize(xlab[[2]])
- Tmp1<- xlab[[1]]
- Tmp3<- xlab[[3]]
- if(nchar(Tmp3)>0){
- Tmp1<- paste("{\\",Tmp3," ",Tmp1,"}",sep="")
- }
- Tmp4<- paste("s",as.character(xlab[[4]]),sep="")
- Letter(c((XMIN+XMAX)/2,YMIN),Tmp4,Tmp1)
- Fontsize("n")
- }
- if(nchar(ylab[[1]])>0){
- Fontsize(ylab[[2]])
- Tmp1<- ylab[[1]]
- Tmp3<- ylab[[3]]
- if(nchar(Tmp3)>0){
- Tmp1<- paste("{\\",Tmp3," ",Tmp1,"}",sep="")
- }
- Tmp<- Setorigin()
- Letter(c(Tmp[1], YMAX),"n2",Tmp1)
- Fontsize("n")
- }
-
- Setax(2," ")
- Setax(4," ")
- Setax(6," ")
-}
-
-Drwhistplot<- function(datav,var,size,freq=TRUE,
- title=list(""), xlab=list(""), ylab=list(""),
- plot=TRUE,densplot=FALSE,fpplot=TRUE,...)
- #Output : title,xlab,ylab,commands,plotdata,info
-{
- H <- Histplotdata(datav, size[2]/size[1], freq=freq,densplot=densplot,...)
- Pd<- H$plotdata
- Ghist <- list(histplot=Pd$histplot,densityplot=Pd$densityplot) # 10.12.07
- if(fpplot){
- Ghist<- c(Ghist,list(fpplot=Pd$fpplot))
- }
- if(plot){
- Windisp(Ghist)
- }
- Tmp<- Formatting(size[1]/(XMAX-XMIN),5,5)
- unit<- paste(Tmp,"cm",sep="")
- Setunitlen(unit)
- Infostr<- paste(var,"$info",sep="")
- Brkstr<- paste(Infostr,"$breaks",sep="")
- Midstr<- paste(Infostr,"$mids",sep="")
- if(!freq){
- Digits<- ",2,2"
- Denstr<- paste(Infostr,"$density",sep="")
- }
- else{
- Digits<- ",0,0"
- Denstr<- paste(Infostr,"$counts",sep="")
- }
-
- if(fpplot) Prefp<- "" else Prefp<- "#"
- Exstr<- c(
- "","",
- paste("Beginpicture(","'",unit,"')",sep=""),
- "","",
- paste("Drwhistframe(",var,")",sep=""),
- paste("HtickLV(",Midstr,",1,1)",sep=""),
- paste("VtickLV(max(",Denstr,")",Digits,")",sep=""),
- paste("Drwline(",var,"[['plotdata']]","$histplot)",sep=""),
- paste(Prefp,"Dashline(",var,"[['plotdata']]","$fpplot)",sep=""),
- paste("#Drwline(",var,"[['plotdata']]","$densityplot,2)",sep=""),
- "","","","",
- "Endpicture(1)"
- )
- Exstr<- matrix(Exstr)
- Info<- list(breaks=H$breaks,counts=H$counts,density=H$density,mids=H$mids,
- window=matrix(c(XMIN,XMAX,YMIN,YMAX),nrow=2))
- Tmp<- paste(var,"<<- ",
- "list(title=title,xlab=xlab,ylab=ylab,",
- "commands=Exstr,plotdata=Ghist,info=Info)",sep="")
- eval(parse(text=Tmp))
-}
-
-##########################
-#17.09.30
-
-Bezierpt<- function(t,Ptlist,Ctrlist){
- if(length(Ptlist)==6){
- P0=Ptlist[1:3]
- P3=Ptlist[4:6]
- P1=Ctrlist[1:3]
- if(length(Ctrlist)==3){
- P2=P3
- flg3=0
- }else{
- P2=Ctrlist[4:6]
- flg3=1
- }
- }else{
- P0=Ptlist[1:2]
- P3=Ptlist[3:4]
- P1=Ctrlist[1:2]
- if(length(Ctrlist)==2){
- P2=P3
- flg3=0
- }else{
- P2=Ctrlist[3:4]
- flg3=1
- }
- }
- P4=(1-t)*P0+t*P1
- P5=(1-t)*P1+t*P2
- P6=(1-t)*P2+t*P3
- P7=(1-t)*P4+t*P5
- P8=(1-t)*P5+t*P6
- P9=(1-t)*P7+t*P8
- if(flg3==0){
- Out=P7
- }else{
- Out=P9
- }
- return(Out)
-}
-
-Bezier<- function(...){
- varargin<- list(...)
- Nargs=length(varargin)
- Ptlist=varargin[[1]]
- Ctrlist=varargin[[2]]
- Num=10
- for(J in Looprange(3,Nargs)){
- Tmp=varargin[[J]]
- K=strsplit(Tmp,'=',fixe=TRUE)
- K=K[[1]]
- Tmp1=substring(K[1],1,1)
- Lhs=toupper(Tmp1)
- if(Lhs=="N"){
- Num=eval(parse(text=K[2]))
- }
- }
- if(length(Num)==1){
- Num=rep(Num,length(Ctrlist)) #17.10.08
- }
- Out=c()
- for(ii in Looprange(1,length(Ctrlist))){
- Tmp1=c(Ptlist[[ii]],Ptlist[[ii+1]])
- Tmp2=Ctrlist[[ii]]
- if(ii==1){
- St=0
- }else{
- St=1
- }
- for(J in Looprange(St,Num[ii])){
- Tmp=Bezierpt(J/Num[ii],Tmp1,Tmp2)
- Out=Appendrow(Out,Tmp)
- }
- }
- return(Out)
-}
-
-#######################
-# 17.10.02
-
-Connectseg<- function(...){
- varargin=list(...)
- Nargs=length(varargin)
- Pdata=varargin[[1]]
- Eps=10^(-4)
- if(Nargs>=2){
- Eps=varargin[[2]]
- }
- if(is.matrix(Pdata)){
- Din=Dataindex(Pdata)
- tmp1=list()
- for(J in 1:nrow(Din)){
- tmp=Pdata[Din[J,1]:Din[J,2],]
- tmp1=c(tmp1,list(tmp))
- }
- Pdata=tmp1
- }
- PlotL=list(Op(1,Pdata))
- VI=Looprange(2,length(Pdata))
- while(length(VI)>0){
- Qd=Op(Length(PlotL),PlotL)
- Ah=Op(1,Qd); Ao=Op(Length(Qd),Qd)
- Flg=0
- for(J in 1:length(VI)){
- Tmp1=Op(VI[J],Pdata)
- P=Op(1,Tmp1); Q=Op(Length(Tmp1),Tmp1)
- if(Norm(P-Ao)<Eps){
- Tmp=Tmp1[Looprange(2,Length(Tmp1)),]
- if(Length(Tmp)>0){
- Qd=Appendrow(Qd,Tmp)
- }
- PlotL[[length(PlotL)]]=Qd
- VI=VI[-J]
- Flg=1
- break
- }
- if(Norm(Q-Ao)<Eps){
- Tmp=Tmp1[(nrow(Tmp1)-1):1,]
- Qd=Appendrow(Qd,Tmp)
- PlotL[[length(PlotL)]]=Qd
- VI=VI[-J]
- Flg=1
- break
- }
- if(Norm(P-Ah)<Eps){
- Tmp=Tmp1[2:nrow(Tmp1),]
- Qd=Appendrow(Tmp,Qd)
- PlotL[[length(PlotL)]]=Qd
- VI=VI[-J]
- Flg=1
- break
- }
- if(Norm(Q-Ah)<Eps){
- Tmp=Tmp1[(nrow(Tmp1)-1):1,]
- Qd=Appendrow(Tmp,Qd)
- PlotL[[length(PlotL)]]=Qd
- VI=VI[-J]
- Flg=1
- break
- }
- }
- if(Flg==0){
- PlotL=c(PlotL,Pdata[VI[1]])
- VI=VI[-1]
- }
- }
- return(PlotL)
-}
-
-Makevaltable<- function(MS){
- Eps=10^(-6)
- Nargs=length(MS)
- Fstr=Op(1,MS)
- Tmp=Op(2,MS)
- Tmp1=strsplit(Tmp,"=",fixed=TRUE)
- Tmp1=Tmp1[[1]]
- Xname=Tmp1[1]
- Xrange=eval(parse(text=Tmp1[2]))
- Tmp=Op(3,MS)
- Tmp1=strsplit(Tmp,"=",fixed=TRUE)
- Tmp1=Tmp1[[1]]
- Yname=Tmp1[1]
- Yrange=eval(parse(text=Tmp1[2]))
- Tmp=gsub(Xname,"x",Fstr)
- Fstr=gsub(Yname,"y",Tmp)
- Tmp=grep(Xname,Fstr)
- if(length(Tmp)==0){
- Fstr=paste(Fstr,'+0*x',sep="")
- }
- Mdv=50
- Ndv=50
- if(Nargs>=4){
- Tmp=Op(4,MS)
- if(Length(Tmp)>1){ #18.02.09
- Mdv=Op(1,Tmp)
- Ndv=Op(2,Tmp)
- }else{
- Mdv=Tmp
- if(Nargs==4){
- Ndv=Mdv
- }else{
- Tmp1=Op(5,MS)
- if((is.numeric(Tmp1))&&(length(Tmp1)==1)){
- Ndv=Tmp1
- }else{
- Ndv=Mdv
- }
- }
- }
- }
- X1=Xrange[1]; X2=Xrange[2]
- Y1=Yrange[1]; Y2=Yrange[2]
- Dx=(X2-X1)/Mdv
- Dy=(Y2-Y1)/Ndv
- Xval=c()
- Tmp=X1
- for(ii in 1:(Mdv+1)){
- Tmp=X1+(ii-1)*Dx
- Xval=c(Xval,Tmp)
- }
- Yval=c()
- Tmp=Y1
- for(jj in 1:(Ndv+1)){
- Tmp=Y1+(jj-1)*Dy
- Yval=c(Yval,Tmp)
- }
- Zval=matrix(nrow=Ndv+1,ncol=Mdv+1)
- I=1
- for(y in Yval){
- J=1
- for(x in Xval){
- Zval[I,J]=eval(parse(text=Fstr))
- J=J+1
- }
- I=I+1
- }
- return(list(Zval,Xval,Yval))
-}
-
-Implicitplot<- function(...){
- varargin=list(...)
- Eps0=10^(-4)
- Nargs=length(varargin)
- Fstr=varargin[[1]]
- if(is.list(Fstr)){
- MS=Fstr
- Tmp=Makevaltable(MS)
- Zval=Tmp[[1]]; Xval=Tmp[[2]]; Yval=Tmp[[3]]
- }else if(is.character(Fstr)){
-# MS=list()
-# for(I in 1:Nargs){
-# MS=c(MS,varargin[I])
-# }
-# Tmp=Makevaltable(MS)
- Tmp=Makevaltable(varargin) #18.02.24
- Zval=Tmp[[1]]; Xval=Tmp[[2]]; Yval=Tmp[[3]]
- }else{
- Zval=varargin[[1]]
- Xval=varargin[[2]]
- Yval=varargin[[3]]
- }
- Out=c()
- for(J in Looprange(1,length(Yval)-1)){
- for(I in Looprange(1,length(Xval)-1)){
- a1=Xval[I]; b1=Yval[J]; c1=Zval[J,I]
- a2=Xval[I+1]; b2=Yval[J]; c2=Zval[J,I+1]
- a3=Xval[I+1]; b3=Yval[J+1]; c3=Zval[J+1,I+1]
- a4=Xval[I];b4=Yval[J+1];c4=Zval[J+1,I]
- PL=matrix(c(a1,b1,a2,b2,a3,b3,a4,b4,a1,b1),ncol=2,byrow=TRUE)
- VL=c(c1,c2,c3,c4,c1)
- QL=c()
- for(K in 1:4){
- if(abs(VL[K])<=Eps0){
- QL=Appendrow(QL,PL[K,])
- }else if(VL[K]>Eps0){
- if(VL[K+1]< -Eps0){
- Tmp=1/(VL[K]-VL[K+1])*(-VL[K+1]*PL[K,]+VL[K]*PL[K+1,])
- QL=Appendrow(QL,Tmp)
- }
- }else{
- if(VL[K+1]>Eps0){
- Tmp=1/(-VL[K]+VL[K+1])*(VL[K+1]*PL[K,]-VL[K]*PL[K+1,])
- QL=Appendrow(QL,Tmp)
- }
- }
- }
- if(Length(QL)==2){
- Out=Appendrow(Out,c(Inf,Inf))
- Out=Appendrow(Out,QL)
- }
- }
- }
- Out=Out[2:nrow(Out),]
- if(Length(Out)>0){
- Out=Connectseg(Out)
- }else{
- Out=c()
- }
- return(Out)
-}
-
-#########################
-# 17.10.06
-
-Deqdata=function(deq,rng,initt,initf,Num){
- Eps=10^(-3)
- inf=10^3
- tmp=strsplit(deq,"=")[[1]]
- tmp1=gsub("`","",tmp[1],fixed=TRUE)
- tmp1=substring(tmp1,3,nchar(tmp1)-1)
- Xname=strsplit(tmp1,",")[[1]]
- func=tmp[2]
- for(J in 1:(length(Xname))){
- tmp1=paste("X[",as.character(J),"]",sep="")
- func=gsub(Xname[J],tmp1,func,fixed=TRUE)
- }
- tmp=strsplit(rng,"=")[[1]]
- tname=tmp[1]
- tmp=eval(parse(text=tmp[2]))
- t1=tmp[1]
- t2=tmp[2]
- tmp=paste("function(",tname,",X){",func,"}",sep="")
- funP=eval(parse(text=tmp))
- tmp=paste("function(",tname,",X){-",func,"}",sep="")
- funN=eval(parse(text=tmp))
- dt=(t2-t1)/Num
- tt=initt
- X0=initf
- pdL=c(tt,X0)
- for(J in Looprange(1,floor((t2-initt)/dt))){
- kl1=dt*funP(tt,X0)
- kl2=dt*funP(tt+dt/2,X0+kl1/2)
- kl3=dt*funP(tt+dt/2,X0+kl2/2)
- kl4=dt*funP(tt+dt,X0+kl3)
- X0=X0+(kl1+2*kl2+2*kl3+kl4)/6
- tt=initt+J*dt
- tmp=c(tt,X0)
- if(Norm(tmp)>inf){break}
- pdL=Appendrow(pdL,tmp)
- }
- tt=initt
- X0=initf
- for(J in Looprange(1,floor((initt-t1)/dt))){
- kl1=dt*funN(tt,X0)
- kl2=dt*funN(tt+dt/2,X0+kl1/2)
- kl3=dt*funN(tt+dt/2,X0+kl2/2)
- kl4=dt*funN(tt+dt,X0+kl3)
- X0=X0+(kl1+2*kl2+2*kl3+kl4)/6
- tt=initt-J*dt
- tmp=c(tt,X0)
- if(Norm(tmp)>inf){break}
- pdL=Appendrow(tmp,pdL)
- }
- pdL
-}
-
-Deqplot=function(...){
- varargin=list(...)
- deq=varargin[[1]]
- rng=varargin[[2]]
- initt=varargin[[3]]
- initf=varargin[[4]]
- Num=50
- Sel=c(1,2)
- for(J in Looprange(5,length(varargin))){
- tmp1=varargin[[J]]
- if(is.character(tmp1)){
- tmp=strsplit(tmp1,"=")[[1]]
- Num=eval(parse(text=tmp[2]))
- }else{
- SeL=tmp1
- }
- }
- pdL=Deqdata(deq,rng,initt,initf,Num)
- pdL=pdL[,SeL]
-}
-
-
-############## obj ###############
-
-Openobj<- function(Fnm){
- OBJFMT<<- "%7.4f"
- NPOINT<<- 0
- NNORM<<- 0
- OBJSCALE<<- 1
- OBJFIGNO<<- 0
- OBJJOIN<<- 0
- Wfile<<- Fnm
- Tmp=grep(".obj",Fnm,fixed=TRUE)
- if(length(Tmp)==0){
- if(nchar(Fnm)>0){
- Wfile<<- paste(Fnm,".obj",sep="")
- }
- }
- cat("",file=Wfile,sep="")
- Wfile
-}
-
-Closeobj<- function(){
- Wfile=""
-}
-
-Writeobjpoint<- function(P){
- X=sprintf(OBJFMT,P[1]*OBJSCALE)
- Y=sprintf(OBJFMT,P[2]*OBJSCALE)
- Z=sprintf(OBJFMT,P[3]*OBJSCALE)
- Str=paste("v",X,Y,Z,sep=" ")
- Printobjstr(Str)
- NPOINT<<- NPOINT+1
- return(NPOINT)
-}
-
-Printobjstr<- function(Str){
- cat(Str,"\n",sep="",file=Wfile,append=TRUE)
-}
-
-Objname<- function(){
- if(OBJJOIN==0){
- OBJFIGNO<<- OBJFIGNO+1
- Gname=paste("ketfig",as.character(OBJFIGNO),sep="")
- Printobjstr(paste("# ",Gname,sep=""))
- Printobjstr(paste("g ",Gname,sep=""))
- }
-}
-
-Objjoin<- function(...){
- varargin=list()
- if(length(varargin)>0){
- OBJJOIN<<- abs(sign(varargin[[1]]))
- }
- OBJJOIN
-}
-
-Objsurf<- function(...){ #17.12.18
- Args<- list(...)
- Nargs<- length(Args)
- Sel=Args[[Nargs]]; Nargs=Nargs-1
- Rf=Args[[1]]
- N=2
- Mg=0; Ng=0
- if(is.numeric(Args[[N]])){
- if(length(Args[[N]])>2){
- U=Args[[N]]
- Mg=length(U)-1
- N=N+1
- }else if(length(Args[[N]])==2){
- Intab=Args[[N]]
- Ag=Intab[1]; Bg=Intab[2]
- N=N+1
- }else{
- Ag=Args[N]; Bg=Args[N+1]
- N=N+2
- }
- }else{
- Tmp0=Args[[N]]
- Tmp=grep("=",Tmp0,fixed=TRUE)
- if(length(Tmp)>0){
- Tmp1=strsplit(Tmp0,"=")
- Tmp0=Tmp1[[1]][2]
- }
- Intab=eval(parse(text=Tmp0))
- Ag=Intab[1]; Bg=Intab[2]
- N=N+1
- }
- if(is.numeric(Args[[N]])){
- if(length(Args[[N]])>2){
- V=Args[[N]]
- Ng=length(V)-1
- N=N+1
- }else if(length(Args[[N]])==2){
- Intab=Args[[N]]
- Cg=Intab[1]; Dg=Intab[2]
- N=N+1
- }else{
- Cg=Args[[N]]; Dg=Args[[N+1]]
- N=N+2
- }
- }else{ # the case of is.character(Args[[N]])
- Tmp0=Args[[N]]
- Tmp=grep("=",Tmp0,fixed=TRUE)
- if(length(Tmp)>0){
- Tmp2=strsplit(Tmp0,"=")
- Tmp0=Tmp2[[1]][2]
- }
- Intab=eval(parse(text=Tmp0))
- Cg=Intab[1]; Dg=Intab[2]
- N=N+1
- }
- if(Mg==0){
- Mg=Args[[N]]
- N=N+1
- U=c()
- for(J in Looprange(1,Mg+1)){
- U=c(U,Ag+(J-1)/Mg*(Bg-Ag))
- }
- }
- if(Ng==0){
- Ng=Args[[N]]
- V=c()
- for(K in Looprange(1,Ng+1)){
- V=c(V,Cg+(K-1)/Ng*(Dg-Cg))
- }
- }
- Objname()
- PL=list()
- for(J in Looprange(1,Mg+1)){
- for(K in Looprange(1,Ng+1)){
- P=Rf(U[J],V[K])
- Np=Writeobjpoint(P)
- PL=c(PL,list(c(P,Np)))
- }
- }
- Idx=1+(Ng+1)*(0:Mg)
- Pus=PL[Idx]
- Idx=(Ng+1)*(1:(Mg+1))
- Pue=PL[Idx]
- Idx=1:(Ng+1)
- Pvs=PL[Idx]
- Idx=((Ng+1)*Mg+1):((Ng+1)*(Mg+1))
- Pve=PL[Idx]
- Printobjstr("vt 0 0")
- Printobjstr("vt 1 0")
- Printobjstr("vt 1 1")
- Printobjstr("vt 0 1")
- for(J in Looprange(1,Mg)){
- for(K in Looprange(1,Ng)){
- P1=sprintf("%1d",Op(4,PL[[(Ng+1)*(J-1)+K]]))
- P2=sprintf("%1d",Op(4,PL[[(Ng+1)*J+K]]))
- P3=sprintf("%1d",Op(4,PL[[(Ng+1)*J+K+1]]))
- P4=sprintf("%1d",Op(4,PL[[(Ng+1)*(J-1)+K+1]]))
- N1=""; N2=""; N3=""; N4=""
- if(Sel=="+"){
- Str=paste("f ",P1,"/1/",N1," ",P2,"/2/",N2," ",sep="")
- Str=paste(Str,P3,"/3/",N3," ",P4,"/4/",N4,sep="")
- }else{
- Str=paste("f ",P1,"/1/",N1," ",P4,"/4/",N4," ",sep="")
- Str=paste(Str,P3,"/3/",N3," ",P2,"/2/",N2,sep="")
- }
- Printobjstr(Str)
- }
- }
- list(U,V,Pus,Pue,Pvs,Pve)
-}
-
-Objthicksurf<- function(...){
- Args=list(...)
- Nargs=length(Args)
- Sel=Args[[Nargs]]; Nargs=Nargs-1
- Selsurf=substring(Sel,1,1)
- Selside=c("0","0","0","0")
- Tmp=grep("w",Sel,fixed=TRUE)
- if(length(Tmp)>0){
- Selside[1]="w"
- }
- Tmp=grep("e",Sel,fixed=TRUE)
- if(length(Tmp)>0){
- Selside[2]="e"
- }
- Tmp=grep("s",Sel,fixed=TRUE)
- if(length(Tmp)>0){
- Selside[3]="s"
- }
- Tmp=grep("n",Sel,fixed=TRUE)
- if(length(Tmp)>0){
- Selside[4]="n"
- }
- Nfth=Args[[Nargs-2]]
- Thick1=Args[[Nargs-1]]
- Thick2=Args[[Nargs]]
- Nargs=Nargs-3
- Rfth=Args[[1]]
- N=2
- Mg=0; Ng=0
- if(is.numeric(Args[[N]])){
- if(length(Args[[N]])>2){
- U=Args[[N]]
- Mg=length(U)-1
- N=N+1
- }else if(length(Args[[N]])==2){
- Intab=Args[[N]]
- Ag=Intab[1]; Bg=Intab[2]
- N=N+1
- }else{
- Ag=Args[[N]]; Bg=Args[[N+1]]
- N=N+2
- }
- }else{
- Tmp0=Args[[N]]
- Tmp=strsplit(Tmp0,"=",fixe=TRUE)
- if(length(Tmp)>0){
- Tmp0=Tmp[[1]][2]
- }
- Intab=eval(parse(text=Tmp0))
- Ag=Intab[1]; Bg=Intab[2]
- N=N+1
- }
- if(is.numeric(Args[[N]])){
- if(length(Args[[N]])>2){
- V=Args[[N]]
- Ng=length(V)-1
- N=N+1
- }else if(length(Args[[N]])==2){
- Intab=Args[[N]]
- Cg=Intab[1]; Dg=Intab[2]
- N=N+1
- }else{
- Cg=Args[[N]]; Dg=Args[[N+1]]
- N=N+2
- }
- }else{
- Tmp0=Args[[N]]
- Tmp=strsplit(Tmp0,"=",fixed=TRUE)
- if(length(Tmp)>0){
- Tmp0=Tmp[[1]][2]
- }
- Intab=eval(parse(text=Tmp0))
- Cg=Intab[1]; Dg=Intab[2]
- N=N+1
- }
- if(Mg==0){
- Mg=Args[[N]]
- N=N+1
- U=c()
- for(J in Looprange(1,Mg+1)){
- U=c(U,Ag+(J-1)/Mg*(Bg-Ag))
- }
- }
- if(Ng==0){
- Ng=Args[[N]]
- V=c()
- for(K in Looprange(1,Ng+1)){
- V=c(V,Cg+(K-1)/Ng*(Dg-Cg))
- }
- }
- Objname()
- Join=OBJJOIN
- OBJJOIN<<- 1
- F1=function(u,v){
- Rfth(u,v)+Thick1*Nfth(u,v)
- }
- F2=function(u,v){
- Rfth(u,v)+Thick2*Nfth(u,v)
- }
- Dt1=Objsurf(F1,U,V,Selsurf)
- if(Selsurf=="+"){
- Tmp="-"
- }else{
- Tmp="+"
- }
- Dt2=Objsurf(F2,U,V,Tmp);
- Out=list(Dt1,Dt2);
-
- if(Selside[1]!="0"){
- Dt=Objrecs(Op(3,Dt1),Op(3,Dt2),Selside[1])
- Out=c(Out,list(Dt))
- }
- if(Selside[2]!="0"){
- Dt=Objrecs(Op(4,Dt1),Op(4,Dt2),Selside[2])
- Out=c(Out,list(Dt))
- }
- if(Selside[3]!="0"){
- Dt=Objrecs(Op(5,Dt1),Op(5,Dt2),Selside[3])
- Out=c(Out,list(Dt))
- }
- if(Selside[4]!="0"){
- Dt=Objrecs(Op(6,Dt1),Op(6,Dt2),Selside[4])
- Out=c(Out,list(Dt))
- }
- OBJJOIN<<- Join
-}
-
-Objrecs<- function(...){
- Eps=10^(-6)
- Args=list(...)
- Nargs=length(Args)
- Tmp=Args[[1]]
- PtL=Flattenlist(Tmp)
- for(J in Looprange(1,length(PtL))){ #17.12.23from
- Tmp=PtL[[J]]
- if(!is.matrix(Tmp)){
- PtL[[J]]=matrix(Tmp,nrow=1)
- }
- } #17.12.23upto
- PL1=list()
- for(J in Looprange(1,length(PtL))){
- Tmp=PtL[[J]]
- for(K in Looprange(1,nrow(Tmp))){
- PL1=c(PL1,list(Tmp[K,]))
- }
- }
- Sel=Args[[Nargs]]; Nargs=Nargs-1
- Objname()
- for(J in Looprange(1,length(PL1))){
- P=PL1[[J]]
- if((length(P)<4) || (P[4]==0)){
- Np=Writeobjpoint(P)
- PL1[[J]]=c(P[1:3],Np)
- }
- }
- Tmp=Args[[2]]
- if((is.numeric(Tmp)) && (length(Tmp)==1)){
- Drv=Tmp
- Len=Norm(Drv)
- PL2=list()
- for(J in Looprange(1,length(PL1))){
- Tmp=PL1[[J]]
- P=Tmp[1:3]+Drv
- Np=Writeobjpoint(P)
- PL2=c(PL2,list(c(P[1:3],Np)))
- if(J<length(PL1)){
- Vec=PL1[[J+1]]-PL1[[J]]
- if(Norm(Vec)>Eps){
- Tmp1=Crossprod(Drv,Vec)
- Tmp2=Crossprod(Tmp1,Vec)
- Tmp3=Dotprod(Tmp2,Drv)
- if(Tmp3<-Eps){
- Tmp2=-Tmp2
- }
- Drv=Len/Norm(Tmp2)*Tmp2
- }
- }
- }
- }else{
- PtL=Flattenlist(Tmp)
- for(J in Looprange(1,length(PtL))){ #17.12.23from
- Tmp=PtL[[J]]
- if(!is.matrix(Tmp)){
- PtL[[J]]=matrix(Tmp,nrow=1)
- }
- } #17.12.23upto
- PL2=list()
- for(J in Looprange(1,length(PtL))){
- Tmp=PtL[[J]]
- for(K in Looprange(1,nrow(Tmp))){
- PL2=c(PL2,list(Tmp[K,]))
- }
- }
- for(J in Looprange(1,length(PL2))){
- P=PL2[[J]]
- if((length(P)<4) || (P[4]==0)){
- Np=Writeobjpoint(P)
- PL2[[J]]=c(P[1:3],Np)
- }
- }
- }
- Printobjstr("vt 0 0")
- Printobjstr("vt 1 0")
- Printobjstr("vt 1 1")
- Printobjstr("vt 0 1")
- for(J in Looprange(2,length(PL1))){
- P1=sprintf("%1d",Op(4,PL1[[J-1]]))
- P2=sprintf("%1d",Op(4,PL2[[J-1]]))
- P3=sprintf("%1d",Op(4,PL2[[J]]))
- P4=sprintf("%1d",Op(4,PL1[[J]]))
- N1=""; N2=""; N3=""; N4=""
- if(Sel=="+"){
- Str=paste("f ",P1,"/1/",N1," ",P2,"/2/",N2," ",sep="")
- Str=paste(Str,P3,"/3/",N3," ",P4,"/4/",N4,sep="")
- }else{
- Str=paste("f ",P1,"/1/",N1," ",P4,"/4/",N4," ",sep="")
- Str=paste(Str,P3,"/3/",N3," ",P2,"/2/",N2,sep="")
- }
- Printobjstr(Str)
- }
- list(PL1,PL2)
-}
-
-Objpolygon<- function(...){
- Eps=10^(-6)
- Args=list(...)
- Nargs=length(Args)
- Tmp=Args[[1]]
- PtL=Flattenlist(Tmp)
- for(J in Looprange(1,length(PtL))){ #17.12.23from
- Tmp=PtL[[J]]
- if(!is.matrix(Tmp)){
- PtL[[J]]=matrix(Tmp,nrow=1)
- }
- } #17.12.23upto
- PL=list()
- for(J in Looprange(1,length(PtL))){
- Tmp=PtL[[J]]
- for(K in Looprange(1,nrow(Tmp))){
- PL=c(PL,list(Tmp[K,]))
- }
- }
- Sel=Args[[Nargs]]; Nargs=Nargs-1
- Objname()
- for(J in Looprange(1,length(PL))){
- P=PL[[J]]
- if((length(P)<4) || (P(4)==0)){
- Np=Writeobjpoint(P)
- PL[[J]]=c(P[1:3],Np)
- }
- }
- if(Nargs==1){
- Tmp=PL[[1]]
- Cen=Tmp[1:3]
- Nc=Tmp[4]
- }else{
- Tmp=Args[[2]]
- if(length(Tmp)==1){
- Tmp1=PL[[Tmp]]
- Cen=Tmp1[1:3]
- Nc=Tmp[4]
- }else{
- Cen=Tmp
- Nc=Writeobjpoint(Cen)
- }
- }
- for(J in Looprange(1,length(PL))){
- if(J<length(PL)){
- Je=J+1
- }else{
- Je=1
- }
- Pt1=Cen
- PLj=PL[[J]]; PLje=PL[[Je]]
- Pt2=PLj[1:3]; Pt3=PLje[1:3]
- if(Norm(Crossprod(Pt2-Pt1,Pt3-Pt1))<Eps){
- next
- }
- P1=sprintf("%1d",Nc)
- P2=sprintf("%1d",PLj[4])
- P3=sprintf("%1d",PLje[4])
- if(Sel=="+"){
- Str=paste("f",P1,P2,P3,"",sep=" ")
- }else{
- Str=paste("f",P1,P3,P2,"",sep=" ")
- }
- Printobjstr(Str)
- }
- PL
-}
-
-Objpolyhedron<- function(Vertex,Face){
- OBJFIGNO<<- OBJFIGNO+1
- Ninit=NPOINT
- Objname()
- for(N in Looprange(1,length(Vertex))){
- P=Vertex[[N]]
- Np=Writeobjpoint(P)
- Vertex[[N]]=c(P[1:3],Np)
- }
- for(N in Looprange(1,length(Face))){
- F=Face[[N]]+Ninit
- Face[[N]]=F
- Str="f"
- for(J in Looprange(1,length(F))){
- P=sprintf("%1d",F[J])
- Str=paste(Str,P,sep=" ")
- }
- Printobjstr(Str)
- }
- list(Vertex,Face)
-}
-
-Objcurve<- function(...){
- Eps=10^(-6)
- Args=list(...)
- Nargs=length(Args)
- Tmp=Args[[1]]
- PtL=Flattenlist(Tmp)
- for(J in Looprange(1,length(PtL))){ #17.12.23from
- Tmp=PtL[[J]]
- if(!is.matrix(Tmp)){
- PtL[[J]]=matrix(Tmp,nrow=1)
- }
- } #17.12.23upto
- PL=list()
- for(J in Looprange(1,length(PtL))){
- Tmp=PtL[[J]]
- for(K in Looprange(1,nrow(Tmp))){
- PL=c(PL,list(Tmp[K,]))
- }
- }
- Closed=Norm(PL[[length(PL)]]-PL[[1]])<Eps
- Pstr="xy"
- Tmp=Args[[Nargs]]
- if(is.character(Tmp)){
- Pstr=Tmp
- Nargs=Nargs-1
- }
- Sz=0.1
- Np=4
- if(Nargs>=2){
- Sz=Args[[2]]
- }
- if(Nargs>=3){
- Np=Args[[3]]
- }
- Assign("Sz",Sz)
- if(Pstr=="xy"){
- Vz=c(0,0,1)
- Fs=Assign("c(Sz*cos(t),Sz*sin(t),0)")
- }
- if(Pstr=="yz"){
- Vz=c(1,0,0)
- Fs=Assign("c(0,Sz*cos(t),Sz*sin(t))")
- }
- if(Pstr=="zx"){
- Vz=c(0,1,0)
- Fs=Assign("c(Sz*sin(t),0,Sz*cos(t))")
- }
- Gc0=Spacecurve(Fs,"t=c(0,2*pi)",paste("Num=",as.character(Np),sep=""))
- P=PL[[1]]; Q=PL[[2]]; R=PL[[length(PL)-1]]
- PQ1=Q-P
- if(!Closed){
- PQ2=PQ1
- }else{
- PQ2=P-R
- }
- Vp=PQ1/Norm(PQ1)+PQ2/Norm(PQ2)
- Vp1=Vp/Norm(Vp)
- Theta=acos(min(Dotprod(Vz,Vp1),1));
- Vj=Crossprod(Vz,Vp1)
- if(Norm(Vj)<Eps){
- Vj=Vz
- }
- Gc1=Rotate3data(Gc0,Vj,Theta)
- CL=list(Translate3data(Gc1,P))
- for(J in Looprange(2,length(PL)-1)){
- P=PL[[J]]; Q=PL[[J+1]]
- PQ2=Q-P
- if(Norm(PQ2)<Eps){
- next
- }
- Vp=PQ1/Norm(PQ1)+PQ2/Norm(PQ2)
- Vp2=Vp/Norm(Vp)
- Theta=acos(min(Dotprod(Vp1,Vp2),1))
- Vj=Crossprod(Vp1,Vp2)
- if(Norm(Vj)<Eps){
- Vj=Vp1
- }
- Gc2=Rotate3data(Gc1,Vj,Theta)
- CL=c(CL,list(Translate3data(Gc2,P)))
- PQ1=PQ2
- Vp1=Vp2
- Gc1=Gc2
- }
- if(!Closed){
- Vp2=(Q-P)/Norm(Q-P)
- Theta=acos(min(Dotprod(Vp1,Vp2),1))
- Vj=Crossprod(Vp1,Vp2)
- if(Norm(Vj)<Eps){
- Vj=Vp1
- }
- Gc3=Rotate3data(Gc1,Vj,Theta)
- CL=c(CL,list(Translate3data(Gc3,Q)))
- }
- Objname()
- Join=Objjoin();
- Objjoin(1)
- GL1=CL[[1]]
- for(J in Looprange(2,length(CL))){
- GL2=CL[[J]]
- Dt=Objrecs(GL1,GL2,"-")
- GL1=Dt[[2]]
- if(J==2){
- GL0=Dt[[1]]
- }
- }
- if(!Closed){
- Objpolygon(CL[[1]],"-")
- N=length(CL)
- Objpolygon(CL[[N]],"+")
- }else{
- Objrecs(GL1,GL0,"-")
- }
- Out=CL
- OBJJOIN<<- Join
-}
-
-Objsymb<- function(Symb,Thick,Face,Dir){
- for(J in Looprange(1,length(Symb))){
- Objcurve(Op(J,Symb),Thick,Face,Dir)
- }
-}
-
-Symb3data<- function(Moji,Size,Kaiten,NV,Pos){
- if(is.character(Moji)){
- #Tmp=Symbdata(Moji)
- # GY1=Tmp(2)
- }else{
- GY1=Moji
- }
- GY1=Scaledata(GY1,Size,Size)
- GY1=Rotatedata(GY1,Kaiten*pi/180)
- A=NV[1]; B=NV[2]; C=NV[3]
- if(A^2+B^2==0){
- E1=c(1,0,0)
- E2=c(0,1,0)
- }else{
- E1=c(B,-A,0)
- E2=c(-A*C,-B*C,A^2+B^2)
- Tmp=matrix(c(E1,E2,NV),3,3)
- D=det(Tmp)
- if(D<0){
- E1=-E1
- }
- E1=E1/Norm(E1)
- E2=E2/Norm(E2)
- }
- Em<- function(X,Y){
- c(E1[1]*X+E2[1]*Y,E1[2]*X+E2[2]*Y,E1[3]*X+E2[3]*Y)
- }
- GY1=Embed(GY1,Em)
- GY1=Translate3data(GY1,Pos)
- Flattenlist(GY1)
-}
-
-############## New Intersect 18.02.01 #############
-
-Intersectline<- function(p1,v1,p2,v2){
- Eps0=10^(-5)
- tmp=Dotprod(v1,v2)
- tmp1=c(tmp,Norm(v1)^2)
- tmp2=c(-Norm(v2)^2,-tmp)
- tmp3=c(Dotprod(p2-p1,v2),Dotprod(p2-p1,v1))
- d=Crossprod(tmp1,tmp2)
- tmp=abs(Crossprod(v1,v2))
- if(tmp>Eps0){
- dt=Crossprod(tmp3,tmp2)
- ds=Crossprod(tmp1,tmp3)
- t=dt/d
- s=ds/d
- pt=p1+v1*t
- out=list(pt,t,s)
- }else{
- tmp1=Crossprod(p2-p1,v1)/Norm(v1)
- out=list(abs(tmp1))
- }
- return(out)
-}
-
-Intersectseg<- function(...){
- varargin=list(...)
- Nargs=length(varargin)
- Eps0=10^(-4)
- Eps1=0.01
- seg1=varargin[[1]]
- seg2=varargin[[2]]
- if(Nargs>2){Eps1=varargin[[3]]}
- p1=Op(1,seg1); q1=Op(2,seg1)
- p2=Op(1,seg2); q2=Op(2,seg2)
- if((Norm(q1-p1)<Eps0)||(Norm(q2-p2)<Eps0)){
- out=list(-1)
- }else{
- tmp=Intersectline(p1,q1-p1,p2,q2-p2)
- if(length(Op(1,tmp))>1){
- pt=Op(1,tmp); t=Op(2,tmp); s=Op(3,tmp)
- if((t*(t-1)<Eps0)&&(s*(s-1)<Eps0)){
- out=list(0,pt,t,s)
- }else{
- t=min(max(t,0),1)
- s=min(max(s,0),1)
- tmp3=c(Norm(p1-p2),Norm(p1-q2),Norm(p2-p1),Norm(p2-q1))
- tmp1=c(Op(2,q2-p2),-Op(1,q2-p2))
- tmp=Intersectline(p1,tmp1,p2,q2-p2)
- if(length(Op(1,tmp))>1){
- if(Op(3,tmp)*(Op(3,tmp)-1)<Eps0){
- tmp3=c(tmp3,Norm(Op(1,tmp)-p1))
- }
- }
- tmp=Intersectline(q1,tmp1,p2,q2-p2)
- if(length(Op(1,tmp))>1){
- if(Op(3,tmp)*(Op(3,tmp)-1)<Eps0){
- tmp3=c(tmp3,Norm(Op(1,tmp)-q1))
- }
- }
- tmp1=c(Op(2,q1-p1),-Op(1,q1-p1))
- tmp=Intersectline(p2,tmp1,p1,q1-p1);
- if(length(Op(1,tmp))>1){
- if(Op(3,tmp)*(Op(3,tmp)-1)<Eps0){
- tmp3=c(tmp3,Norm(Op(1,tmp)-p2))
- }
- }
- if(length(Op(1,tmp))>1){
- if(Op(3,tmp)*(Op(3,tmp)-1)<Eps0){
- tmp3=c(tmp3,Norm(Op(1,tmp)-q2))
- }
- }
- out=list(min(tmp3),pt,t,s)
- }
- }else{
- dist=tmp[[1]]
- tmp1=q1-p1
- n=c(tmp1[2],-tmp1[1])/Norm(tmp1)
- pts=list()
- tmp=Intersectline(p1,n,p2,q2-p2)
- if((length(tmp)>1)&&(tmp[[3]]*(tmp[[3]]-1)<Eps0)){
- tmp1=(1-tmp[[3]])*p2+tmp[[3]]*q2
- pts=c(pts,list(list(tmp1,0,tmp[[3]])))
- }
- tmp=Intersectline(q1,n,p2,q2-p2)
- if((length(tmp)>1)&&(tmp[[3]]*(tmp[[3]]-1)<Eps0)){
- tmp1=(1-tmp[[3]])*p2+tmp[[3]]*q2
- pts=c(pts,list(list(tmp1,1,tmp[[3]])))
- }
- tmp=Intersectline(p2,n,p1,q1-p1)
- if((length(tmp)>1)&&(tmp[[3]]*(tmp[[3]]-1)<Eps0)){
- tmp1=(1-tmp[[3]])*p1+tmp[[3]]*q1
- pts=c(pts,list(list(tmp1,tmp[[3]],0)))
- }
- if((length(tmp)>1)&&(tmp[[3]]*(tmp[[3]]-1)<Eps0)){
- tmp1=(1-tmp[[3]])*p1+tmp[[3]]*q1
- pts=c(pts,list(list(tmp1,tmp[[3]],2)))
- }
- if(length(pts)==0){
- tmp1=min(Norm(p2-p1),Norm(q2-p1),Norm(p2-q1),Norm(q2-q1))
- out=list(tmp1)
- }else{
- if(dist>Eps1){
- out=list(dist)
- }else{
- tmp=c();
- for(j in 1:length(pts)){
- tmp=Appendrow(tmp,Op(1,pts[[j]]))
- }
- tmp1=sum(tmp[,1])/(length(pts))
- tmp2=sum(tmp[,2])/(length(pts))
- tmp3=c(tmp1,tmp2)
- tmp=Nearestpt(tmp3,seg1)
- tmp1=tmp[[2]]
- tmp=Nearestpt(tmp3,seg2)
- tmp2=tmp[[2]]
- out=list(dist,tmp3,tmp1,tmp2)
- }
- }
- }
- }
- return(out)
-}
-
-Osplineseg<- function(...){
- varargin=list(...)
- Nargs=length(varargin)
- Eps=10^(-2)
- Eps0=10^(-6)
- Ptlist=varargin[[1]]
- Numstr="Num=20"
- if(Nargs>1){
- Numstr=varargin[[2]]
- }
- p0=Op(1,Ptlist); p1=Op(2,Ptlist); p2=Op(3,Ptlist); p3=Op(4,Ptlist)
- tmp=Norm(p2-p0)*Norm(p3-p1)
- tmp=1+sqrt((1+Dotprod(p2-p0,p3-p1)/tmp)/2)
- cc=4*Norm(p2-p1)/3/(Norm(p2-p0)+Norm(p3-p1))/tmp
- pQ=p1+cc*(p2-p0)
- pR=p2+cc*(p1-p3)
- ctrL=list(c(pQ,pR))
- out=Bezier(list(p1,p2),ctrL,Numstr)
- return(out)
-}
-
-Intersectpartseg<- function(...){
- varargin=list(...)
- Nargs=length(varargin)
- crv1=varargin[[1]]
- crv2=varargin[[2]]
- ii=varargin[[3]]
- jj=varargin[[4]]
- Eps1=varargin[[5]]
- Eps2=varargin[[6]]
- Dist=10*Eps2
- if(Nargs>6){Dist=varargin[[7]]}
- Eps0=10^(-4)
- out=list()
- seg1=Listplot(Op(ii,crv1),Op(ii+1,crv1))
- seg2=Listplot(Op(jj,crv2),Op(jj+1,crv2))
- tmp1=Op(2,seg1)-Op(1,seg1)
- tmp2=Op(2,seg2)-Op(1,seg2)
- snang=abs(Crossprod(tmp1,tmp2))/(Norm(tmp1)*Norm(tmp2))
- tmp=Intersectseg(seg1,seg2,Eps1)
- dst=Op(1,tmp)
- if(dst<Eps0){
- out=list(Op(2,tmp),ii+Op(3,tmp),jj+Op(4,tmp),dst,snang)
- }else{
- if(dst<Eps2){
- if((Length(crv1)==2)||(Norm(Op(2,seg1)-Op(1,seg1))>Dist-Eps0)){
- os1=seg1
- }else{
- p1=Op(1,seg1); p2=Op(2,seg1)
- if(ii==1){
- p3=Op(3,crv1)
- tmp=p2-p1
- tmp=(p1+p2)/2+c(Op(2,tmp),-Op(1,tmp))
- p0=Reflectdata(p3,c((p1+p2)/2,tmp))
- }else{
- if(ii==Length(crv1)-1){
- p0=Op(ii-1,crv1)
- tmp=p2-p1
- tmp=(p1+p2)/2+c(Op(2,tmp),-Op(1,tmp))
- p3=Reflectdata(p0,c((p1+p2)/2,tmp))
- }else{
- p0=Op(ii-1,crv1); p3=Op(ii+2,crv1)
- }
- }
- os1=Osplineseg(list(p0,p1,p2,p3))
- }
- if((Length(crv2)==2)||(Norm(Op(2,seg2)-Op(1,seg2))>Dist-Eps0)){
- os2=seg2
- }else{
- p1=Op(1,seg2); p2=Op(2,seg2)
- if(jj==1){
- p3=Op(3,crv2)
- tmp=p2-p1
- tmp=(p1+p2)/2+c(Op(2,tmp),-Op(1,tmp))
- p0=Reflectdata(p3,c((p1+p2)/2,tmp))
- }else{
- if(jj==Length(crv2)-1){
- p0=Op(jj-1,crv2)
- tmp=p2-p1
- tmp=(p1+p2)/2+c(Op(2,tmp),-Op(1,tmp))
- p3=Reflectdata(p0,c((p1+p2)/2,tmp))
- }else{
- p0=Op(jj-1,crv2); p3=Op(jj+2,crv2)
- }
- }
- os2=Osplineseg(list(p0,p1,p2,p3))
- }
- tmp2=list()
- for(kk in Looprange(1,Length(os1)-1)){
- for(ll in Looprange(1,Length(os2)-1)){
- seg1=Listplot(Op(kk,os1),Op(kk+1,os1))
- seg2=Listplot(Op(ll,os2),Op(ll+1,os2))
- tmp=Intersectseg(seg1,seg2,Eps1)
- if((Op(1,tmp)<Eps1)&&(length(tmp)>1)){ #18.02.05
- if(Op(1,tmp)<dst+Eps0){
- dst=Op(1,tmp)
- tmp3=list()
- for( nn in Looprange(1,length(tmp2))){
- if(Op(1,tmp2[[nn]])<dst){
- tmp3=c(tmp3,list(tmp2[[nn]]))
- }
- }
- tmp2=c(tmp3,list(list(dst,Op(2,tmp))))
- }
- }
- }
- }
- if(length(tmp2)>0){
- tmp1=c()
- for(nn in Looprange(1,length(tmp2))){
- tmp1=Appendrow(tmp1,Op(2,tmp2[[nn]]))
- }
- tmp=sum(tmp1[,1])/length(tmp2)
- tmp=c(tmp,sum(tmp1[,2])/length(tmp2))
- out=list(tmp)
- p1=Op(ii,crv1); p2=Op(ii+1,crv1)
- tmp=c(Op(2,p2-p1),-Op(1,p2-p1))
- tmp=Intersectline(Op(1,out),tmp,p1,p2-p1)
- tmp=min(max(Op(3,tmp),0),1)
- out=c(out,list(ii+tmp))
- p1=Op(jj,crv2); p2=Op(jj+1,crv2)
- tmp=c(Op(2,p2-p1),-Op(1,p2-p1))
- tmp=Intersectline(Op(1,out),tmp,p1,p2-p1)
- tmp=min(max(Op(3,tmp),0),1)
- out=c(out,list(jj+tmp,dst,snang))
- }
- }
- }
- return(out)
-}
-
-Collectnear<- function(ptdL,Eps2){
- gL=list(Op(1,ptdL))
- rL=ptdL[Looprange(2,length(ptdL))] #18.02.07
- for( ii in Looprange(1,length(ptdL)-1)){
- numL=c()
- for(jj in Looprange(1,length(rL))){
- tmp1=100
- for(kk in Looprange(1,length(gL))){
- tmp=Norm(Op(1,gL[[kk]])-Op(1,rL[[jj]]))
- if(tmp<tmp1){tmp1=tmp}
- }
- if(tmp1<Eps2){numL=c(numL,jj)}
- }
- if(length(numL)==0){
- break
- }else{
- gL=c(gL,rL[numL]) #18.02.05
- tmp=setdiff(1:(length(rL)),numL)
- rL=rL[tmp]
- }
- }
- return(list(gL,rL))
-}
-
-Groupnearpt<- function(...){
- varargin=list(...)
- Nargs=length(varargin)
- Eps=varargin[[Nargs]]
- plist=varargin[[1]]
- qlist=varargin[[2]]
- if(!is.list(qlist)){
- qlist=plist
- plist=list()
- }
- if(length(qlist)==0){
- return(plist)
- }
- pt=qlist[[1]]
- qlist=qlist[Looprange(2,length(qlist))]
- if(length(plist)==0){
- plist=list(matrix(pt,nrow=1))
- }else{
- flg=0
- for(ii in Looprange(1,length(plist))){
- gL=plist[[ii]]
- for(jj in Looprange(1,Length(gL))){
- if(Norm(Op(jj,gL)-pt)<Eps){
- flg=1
- break
- }
- }
- if(flg==1){
- plist[[ii]]=Appendrow(gL,pt)
- break
- }
- }
- if(flg==0){
- plist=c(plist,list(matrix(pt,nrow=1)))
- }
- }
- out=Groupnearpt(plist,qlist,Eps)
- return(out)
-}
-
-IntersectcurvesPp<- function(...){
- varargin=list(...)
- Nargs=length(varargin)
- Eps0=10^(-4)
- Eps1=0.01
- Eps2=0.05
- Dist=10*Eps2
- if(Nargs>2){Eps1=varargin[[3]]}
- if(Nargs>3){Eps2=varargin[[4]]}
- if(Nargs>4){Dist=varargin[[5]]}
- tmp1=varargin[[1]]
- crv1=matrix(Op(1,tmp1),nrow=1)
- for(ii in Looprange(2,Length(tmp1))){
- tmp=Op(Length(crv1),crv1)
- if(Norm(tmp-Op(ii,tmp1))>Eps0){
- crv1=Appendrow(crv1,Op(ii,tmp1))
- }
- }
- tmp2=varargin[[2]]
- crv2=matrix(Op(1,tmp2),nrow=1)
- for(ii in Looprange(2,Length(tmp2))){
- tmp=Op(Length(crv2),crv2)
- if(Norm(tmp-Op(ii,tmp2))>Eps0){
- crv2=Appendrow(crv2,Op(ii,tmp2))
- }
- }
- if(Length(crv1)!=Length(crv2)){
- self=0
- }else{
- self=1
- for(ii in Looprange(1,Length(crv1))){
- if(Norm(Op(ii,crv1)-Op(ii,crv2))>0){
- self=0
- break
- }
- }
- }
- out=list()
- for(ii in Looprange(1,Length(crv1)-1)){
- if(self==0){
- loopL=Looprange(1,Length(crv2)-1)
- }else{
- loopL=Looprange(ii+2,Length(crv2)-1)
- }
- for(jj in loopL){
- tmp=Intersectpartseg(crv1,crv2,ii,jj,Eps1,Eps2,Dist)
- if(length(tmp)>1){ #18.02.05
- if(length(out)==0){
- out=list(tmp)
- }else{
- tmp1=Op(length(out),out)
- if(Norm(Op(1,tmp1)-Op(1,tmp))>Eps1){
- out=c(out,list(tmp))
- }
- }
- if(self==1){
- tmp=list(Op(1,tmp),Op(3,tmp),Op(2,tmp),Op(4,tmp),Op(5,tmp))
- out=c(out,list(tmp))
- }
- }
- }
- }
- tmp2=out
- out=list()
- tmp1=tmp2
- for(ii in Looprange(1,length(tmp2))){
- tmp=Collectnear(tmp1,Eps2)
- out=c(out,list(Op(1,tmp)))
- if(length(Op(2,tmp))==0){
- break
- }else{
- tmp1=Op(2,tmp)
- }
- }
- for(ii in Looprange(1,length(out))){
- tmp1=Op(ii,out)
- if(length(tmp1)==1){
- out[[ii]]=Op(1,tmp1)
- }else{
- tmp=c()
- for(jj in Looprange(1,length(tmp1))){
- tmp=c(tmp,Op(4,tmp1[[jj]]))
- }
- dst=min(tmp)
- tmp=c()
- for(jj in Looprange(1,length(tmp1))){
- if(Op(4,tmp1[[jj]])<dst+Eps0){
- tmp=c(tmp,Op(1,tmp1[[jj]]))
- }
- }
- tmp=matrix(tmp,ncol=2,byrow=TRUE)
- tmp=c(sum(tmp[,1]),sum(tmp[,2]))/Length(tmp)
- tmp2=list(tmp)
- tmp=Nearestpt(Op(1,tmp2),crv1)
- tmp2=c(tmp2,list(Op(2,tmp)))
- tmp=Nearestpt(Op(1,tmp2),crv2)
- tmp2=c(tmp2,list(Op(2,tmp)))
- tmp2=c(tmp2,list(list(dst,Op(5,tmp1[[1]]))))
- out[[ii]]=tmp2
- }
- }
- return(out)
-}
-
-Intersectcurves<- function(...){
- dtL=IntersectcurvesPp(...)
- out=list()
- for(jj in Looprange(1,length(dtL))){
- out=c(out,list(Op(1,dtL[[jj]])))
- }
- return(out)
-}
-
-############## end of New Intersect #############
-
-############## New Enclosing2 #############
-
-Enclosing2<- function(...){
- varargin=list(...)
- Nargs=length(varargin)
- plist=varargin[[1]]
- Eps0=10^(-5)
- Eps1=0.01
- Eps2=0.1
- Start=c()
- flg=0
- for(ii in Looprange(2,Nargs)){
- tmp=varargin[[ii]]
- if(length(tmp)>1){
-# Start=tmp
- }else{
- if(flg==0){Eps1=tmp}
- if(flg==1){Eps2=tmp}
- flg=flg+1
- }
- }
- flg=0
- AnsL=c()
- if(length(plist)==1){
- Fdata=plist[[1]]
- tmp1=Op(1,Fdata)
- tmp2=Op(Length(Fdata),Fdata)
- if(Norm(tmp1-tmp2)<Eps0){
- AnsL=Fdata
- }else{
- AnsL=Appendrow(Fdata,tmp1)
- }
- flg=1
- }
- if(flg==0){
- Fdata=Op(1,plist)
- Gdata=Op(length(plist),plist)
- KL=IntersectcurvesPp(Fdata,Gdata)
- if(length(KL)==0){
- tmp1=Op(Length(Gdata),Gdata)
- tmp2=Op(1,Fdata)
- tmp=Listplot(tmp1,tmp2)
- plist=c(plist,list(tmp))
- Start=tmp2
- tst=1
-# flg=1
- }else{
- if(length(KL)==1){
- tmp=Op(1,KL)
- tst=Op(2,tmp)
- Start=crv(tst,Fdata)
- }
- if(length(KL)>1){
- KL=Quicksort(KL,2)
- if(length(Start)==0){
- tmp=Op(1,KL)
- tst=Op(2,tmp)
- Start=Pointoncurve(tst,Fdata)
- }else{
- tmp=c()
- for(ii in Looprange(1,length(KL))){
- tmp=c(tmp,Norm(Op(1,KL[[ii]]-Start)))
- }
- tmp=min(tmp)
- tmp1=list()
- for(ii in Looprange(1,length(KL))){
- tmp2=Op(1,KL[[ii]])
- if(Norm(tmp2-Start)==tmp){
- tmp1=c(tmp1,list(tmp2))
- }
- }
- tmp=Op(1,tmp1)
- tst=Op(2,tmp)
- Start=Pointoncurve(tst,Fdata)
- }
- }
- }
- }
- if(flg==0){
- t1=tst
- for(nn in Looprange(1,length(plist))){
- Fdata=Op(nn,plist)
- if(nn==length(plist)){
- nxtno=1
- }else{
- nxtno=nn+1
- }
- Gdata=Op(nxtno,plist)
- KL=IntersectcurvesPp(Fdata,Gdata)
- if(length(KL)==0){
- tmp=matrix(Op(Length(Fdata),Fdata),nrow=1) #18.02.02from
- Gdata=Appendrow(tmp,Gdata)
- plist[[nxtno]]=Gdata
- t2=Length(Fdata)
- ss=1 #18.02.02upto
- }else{
- tmp=Op(1,KL)
- t2=Op(2,tmp)
- ss=Op(3,tmp)
- if(abs(t2-t1)<Eps0){
- if(length(KL)>1){
- tmp=Op(2,KL)
- t2=Op(2,tmp)
- ss=Op(3,tmp)
- }else{
-# println(text(nn)+" and "+text(nn+1)+" not intersect");
-# flg=1
- }
- }
- }
- if(flg==0){
- tmp=Partcrv(t1,t2,Fdata)
- if(nn==1){
- AnsL=tmp
- }else{
- tmp=tmp[2:Length(tmp),]
- AnsL=Appendrow(AnsL,tmp)
- }
- t1=ss
- }
- }
- }
- return(AnsL)
-}
-
-############## end of Enclosing2 #############
-
-############## start of surface drawing #############
-
-Fullformfunc<- function(FdL){
- ADDPOINT<<- list() #18.02.19
- Out=list(Op(1,FdL))
- N=length(FdL)
- for(Jrg in Looprange(1,N)){
- Tmp=grep("c(",Op(Jrg,FdL),fixed=TRUE)
- if(length(Tmp)>0){
- break
- }
- }
- Urg=Stripblanks(Op(Jrg,FdL))
- Tmp=strsplit(Urg,"=",fixed=TRUE)
- UNAME<<- Tmp[[1]][1]
- URNG<<- eval(parse(text=Tmp[[1]][2]))
- Urg=paste(UNAME,"=c(",sprintf("%6.7f",URNG[1]),",",
- sprintf("%6.7f",URNG[2]),")",sep="")
- Vrg=Stripblanks(Op(Jrg+1,FdL))
- Tmp=strsplit(Vrg,"=",fixed=TRUE)
- VNAME<<- Tmp[[1]][1]
- VRNG<<- eval(parse(text=Tmp[[1]][2]))
- Vrg=paste(VNAME,"=c(",sprintf("%6.7f",VRNG[1]),",",
- sprintf("%6.7f",VRNG[2]),")",sep="")
- if(Jrg==2){
- Xf=UNAME
- Yf=VNAME
- Tmp=Stripblanks(Op(1,FdL))
- Tmp=strsplit(Tmp,"=",fixed=TRUE)
- Zf=Tmp[[1]][2]
- Tmp=list(UNAME,VNAME,Zf,Urg,Vrg)
- Out=c(Out,Tmp)
- }else if(Jrg==4){
- Tmp=Stripblanks(Op(1,FdL))
- Tmp=strsplit(Tmp,"=",fixed=TRUE)
- Zf=Tmp[[1]][2]
- Tmp=Stripblanks(Op(2,FdL))
- Tmp=strsplit(Tmp,"=",fixed=TRUE)
- Xname=Tmp[[1]][1]
- Xf=Tmp[[1]][2]
- Tmp=Stripblanks(Op(3,FdL))
- Tmp=strsplit(Tmp,"=",fixed=TRUE)
- Yname=Tmp[[1]][1]
- Yf=Tmp[[1]][2]
- Tmp=gsub(Xname,paste("(",Xf,")",sep=""),Zf,fixed=TRUE)
- Zf=gsub(Yname,paste("(",Yf,")",sep=""),Tmp,fixed=TRUE)
- Tmp=list(Xf,Yf,Zf,Urg,Vrg)
- Out=c(Out,Tmp)
- }else{
- Tmp=Stripblanks(Op(2,FdL))
- Tmp=strsplit(Tmp,"=",fixed=TRUE)
- Xf=Tmp[[1]][2]
- Tmp=Stripblanks(Op(3,FdL))
- Tmp=strsplit(Tmp,"=",fixed=TRUE)
- Yf=Tmp[[1]][2]
- Tmp=Stripblanks(Op(4,FdL))
- Tmp=strsplit(Tmp,"=",fixed=TRUE)
- Zf=Tmp[[1]][2]
- Tmp=list(Xf,Yf,Zf,Urg,Vrg)
- Out=c(Out,Tmp)
- }
- tmp=paste("Xfunc<<- function(",UNAME,",",VNAME,"){",Xf,"}",sep='')
- eval(parse(text=tmp))
- tmp=paste("Yfunc<<- function(",UNAME,",",VNAME,"){",Yf,"}",sep='')
- eval(parse(text=tmp))
- tmp=paste("Zfunc<<- function(",UNAME,",",VNAME,"){",Zf,"}",sep='')
- eval(parse(text=tmp))
- tmp=paste("XYZfunc<<- function(",UNAME,",",VNAME,"){",sep='')
- tmp=paste(tmp,"c(",Xf,",",Yf,",",Zf,")}",sep='')
- eval(parse(text=tmp))
- XYZstr<<- c(Xf,Yf,Zf)
- DRWS<<- "enws"
- BdyL=list()
- for(I in Looprange(Jrg+2,length(FdL))){
- Tmp=Op(I,FdL)
- if(is.character(Tmp)){
- if(nchar(Tmp)==0){
- Tmp=" "
- }
- DRWS<<- list(Tmp)
- }
- if((is.numeric(Tmp))&&(Length(Tmp)>1)){
- BdyL=list(Tmp)
- }
- }
- BDYL<<- BdyL
- Tmp=c(DRWS,BDYL)
- Out=c(Out,Tmp)
- return(Out)
-}
-
-Addpoints<- function(ptlist){
- ADDPOINT<<- ptlist
-}
-
-Makexybdy<- function(Np){
- Eps0=10^(-4)
- Xystr=XYZstr[1:2]
- Umin=URNG[1]; Umax=URNG[2]
- Vmin=VRNG[1]; Vmax=VRNG[2]
- Cflg=0
- EhL=list()
- Tmp=grep("e",DRWS,fixed=TRUE)
- if(length(Tmp)>0){
- Tmp1="c("
- for(jj in 1:2){
- Tmp=gsub(UNAME,paste("(",sprintf("%7.7f",Umax),")",sep=""),Xystr[jj])
- Tmp1=paste(Tmp1,Tmp,",",sep="")
- }
- Tmp=substring(Tmp1,1,Length(Tmp1)-1)
- Tmp1=paste(Tmp,")",sep="")
- Tmp=sprintf("%6.6f",VRNG)
- Tmp2=paste(VNAME,"=c(",Tmp[1],",",Tmp[2],")",sep='')
- Tmp3=paste('N=',as.character(Np[2]))
- Tmp=Paramplot(Tmp1,Tmp2,Tmp3)
- if(Norm(Op(1,Tmp)-Op(Length(Tmp),Tmp))<Eps0){
- Cflg=1
- Tmp[Length(Tmp),]=Tmp[1,]
- }
- EhL=c(EhL,list(Tmp))
- }
- Tmp=grep("n",DRWS,fixed=TRUE)
- if(length(Tmp)>0){
- Tmp1="c("
- for(jj in 1:2){
- Tmp=gsub(VNAME,paste("(",sprintf("%7.7f",Vmax),")",sep=""),Xystr[jj])
- Tmp1=paste(Tmp1,Tmp,",",sep="")
- }
- Tmp=substring(Tmp1,1,Length(Tmp1)-1)
- Tmp1=paste(Tmp,")",sep="")
- Tmp=sprintf("%6.6f",URNG)
- Tmp2=paste(UNAME,"=c(",Tmp[1],",",Tmp[2],")",sep='')
- Tmp3=paste('N=',as.character(Np[1]))
- Tmp=Paramplot(Tmp1,Tmp2,Tmp3)
- if(Cflg>0){
- Tmp1=Op(length(EhL),EhL)
- Tmp=Joincrvs(Tmp1,Tmp)
- if(Norm(Op(1,Tmp)-Op(Length(Tmp),Tmp))<Eps0){
- Cflg=1
- Tmp[Length(Tmp),]=Tmp[1,]
- }
- Tmp1=EhL[Looprange(1,length(EhL)-1)]
- EhL=c(Tmp1,Tmp)
- }else{
- Cflg=0
- if(Norm(Op(1,Tmp)-Op(Length(Tmp),Tmp))<Eps0){
- Cflg=1
- Tmp[Length(Tmp),]=Tmp[1,]
- }
- EhL=c(EhL,list(Tmp))
- }
- }
- Tmp=grep("w",DRWS,fixed=TRUE)
- if(length(Tmp)>0){
- Tmp1="c("
- for(jj in 1:2){
- Tmp=gsub(UNAME,paste("(",sprintf("%7.7f",Umin),")",sep=""),Xystr[jj])
- Tmp1=paste(Tmp1,Tmp,",",sep="")
- }
- Tmp=substring(Tmp1,1,Length(Tmp1)-1)
- Tmp1=paste(Tmp,")",sep="")
- Tmp=sprintf("%6.6f",VRNG)
- Tmp2=paste(VNAME,"=c(",Tmp[1],",",Tmp[2],")",sep='')
- Tmp3=paste('N=',as.character(Np[2]))
- Tmp=Paramplot(Tmp1,Tmp2,Tmp3)
- if(Cflg>0){
- Tmp1=Op(length(EhL),EhL)
- Tmp=Joincrvs(Tmp1,Tmp)
- if(Norm(Op(1,Tmp)-Op(Length(Tmp),Tmp))<Eps0){
- Cflg=1
- Tmp[Length(Tmp),]=Tmp[1,]
- }
- Tmp1=EhL[Looprange(1,length(EhL)-1)]
- EhL=c(Tmp1,list(Tmp))
- }else{
- Cflg=0
- if(Norm(Op(1,Tmp)-Op(Length(Tmp),Tmp))<Eps0){
- Cflg=1
- Tmp[Length(Tmp),]=Tmp[1,]
- }
- EhL=c(EhL,list(Tmp))
- }
- }
- Tmp=grep("s",DRWS,fixed=TRUE)
- if(length(Tmp)>0){
- Tmp1="c("
- for(jj in 1:2){
- Tmp=gsub(VNAME,paste("(",sprintf("%7.7f",Vmin),")",sep=""),Xystr[jj])
- Tmp1=paste(Tmp1,Tmp,",",sep="")
- }
- Tmp=substring(Tmp1,1,Length(Tmp1)-1)
- Tmp1=paste(Tmp,")",sep="")
- Tmp=sprintf("%6.6f",URNG)
- Tmp2=paste(UNAME,"=c(",Tmp[1],",",Tmp[2],")",sep='')
- Tmp3=paste('N=',as.character(Np[1]))
- Tmp=Paramplot(Tmp1,Tmp2,Tmp3)
- if(Cflg>0){
- Tmp1=Op(length(EhL),EhL)
- Tmp=Joincrvs(Tmp1,Tmp)
- if(Norm(Op(1,Tmp)-Op(Length(Tmp),Tmp))<Eps0){
- Cflg=1
- Tmp1=EhL[Looprange(1,length(EhL)-1)]
- }
- Tmp1=EhL[Looprange(1,length(EhL)-1)]
- EhL=c(Tmp1,list(Tmp))
- }else{
- Cflg=0
- if(Norm(Op(1,Tmp)-Op(Length(Tmp),Tmp))<Eps0){
- Cflg=1
- Tmp[Length(Tmp),]=Tmp[1,]
- }
- EhL=c(EhL,list(Tmp))
- }
- }
- return(EhL)
-}
-
-Partitionseg<- function(...){
- varargin=list(...)
- Nargs=length(varargin)
- Fig=varargin[[1]]
- GL=varargin[[2]]; N=3
- if(!is.list(GL)){GL=list(GL)} #18.02.21
- Eps0=10^(-4)
- Eps=0.01
- if(Nargs>2){
- Eps=varargin[[3]]
- }
- Eps2=0.1
- if(Nargs>3){
- Eps2=varargin[[4]]
- }
- if(Nargs>4){
- Ns=varargin[[5]]
- if(Ns>0){#18.02.21from
- Other=Op(Ns,OTHERPARTITION)
- }else{
- Other=c()
- }#18.02.21upto
- }else{
- Ns=1
- Other=c()
- }
- Npt=Length(Fig)
- ParL=c(1,Npt,Other)
- for(N in Looprange(max(1,Ns),Length(GL))){ #18.02.21
- G=Op(N,GL)
- KouL=IntersectcurvesPp(Fig,G,Eps,Eps2)
- Tmp1=c(); Tmp2=c()
- for(jj in Looprange(1,length(KouL))){
- tmp=Op(2,KouL[[jj]])
- if((tmp>1+Eps0)&&(tmp<Npt-Eps0)){
- Tmp1=c(Tmp1,tmp)
- }
- tmp=Op(3,KouL[[jj]])
- if((tmp>1+Eps0)&&(tmp<Length(G)-Eps0)){
- Tmp2=c(Tmp2,tmp)
- }
- }
- ParL=c(ParL,Tmp1)
- if((Ns>0)&&(N>Ns)&&(length(Tmp2)>0)){ #18.02.21
- tmp=OTHERPARTITION[[N]]
- OTHERPARTITION[[N]]<<- c(tmp,Tmp2)
- }
- }
- tmp1=sort(ParL)
- ParL=c()
- tmp2=-1
- for(jj in Looprange(1,length(tmp1))){
- tmp=Op(jj,tmp1)
- if(abs(tmp-tmp2)>Eps){
- ParL=c(ParL,tmp)
- tmp2=tmp
- }
- }
- return(ParL)
-}
-
-Evlptablepara<- function(...){
- varargin=list(...)
- Nargs=length(varargin)
- Tmp=varargin[[1]]
- Mdv=50
- Ndv=50
- if(Nargs>=2){
- Tmp=varargin[[2]]
- if(is.list(Tmp)){Tmp=Op(1,Tmp)}
- if(length(Tmp)>1){
- Mdv=Tmp[1]
- Ndv=Tmp[2]
- }else{
- Mdv=Tmp
- if(Nargs==2){
- Ndv=Mdv
- }else{
- Tmp1=varargin[[3]]
- if((is.numeric(Tmp1)) && (length(Tmp1)==1)){
- Ndv=Tmp1
- }else{
- Ndv=Mdv
- }
- }
- }
- }
- U1=URNG[1]; U2=URNG[2]
- V1=VRNG[1]; V2=VRNG[2]
- Du=(U2-U1)/(Mdv)
- Dv=(V2-V1)/(Ndv)
- sph=sprintf("%7.7f",sin(PHI))
- cph=sprintf("%7.7f",cos(PHI))
- sth=sprintf("%7.7f",sin(THETA))
- cth=sprintf("%7.7f",cos(THETA))
- xstr=paste("-(",XYZstr[1],")*(",sph,")+(",XYZstr[2],")*(",cph,")",sep="")
- tmp=paste("-(",XYZstr[1],")*(",cph,")*(",cth,")-(",XYZstr[2],")*(",sph,")*(",cth,")",sep="")
- ystr=paste(tmp,"+(",XYZstr[3],")*(",sth,")",sep="")
- dxu=Diff(xstr,UNAME)
- dxv=Diff(xstr,VNAME)
- dyu=Diff(ystr,UNAME)
- dyv=Diff(ystr,VNAME)
- I=1
- Zval=c()
- for(jj in 1:(Ndv+1)){
- v=V1+(jj-1)*Dv
- ZuL=c()
- for(ii in 1:(Mdv+1)){
- u=U1+(ii-1)*Du
- tmp1=paste(UNAME,"=(",sprintf("%7.7f",u),")",sep="")
- tmp2=paste(VNAME,"=(",sprintf("%7.7f",v),")",sep="")
- Dxu=Funvalue(dxu,tmp1,tmp2)
- Dxv=Funvalue(dxv,tmp1,tmp2)
- Dyu=Funvalue(dyu,tmp1,tmp2)
- Dyv=Funvalue(dyv,tmp1,tmp2)
- Tmp=Dxu*Dyv-Dxv*Dyu
- ZuL=c(ZuL,Tmp)
- }
- Zval=Appendrow(Zval,ZuL)
- }
- Yval=c()
- for(jj in 1:(Ndv+1)){
- v=V1+(jj-1)*Dv
- Yval=c(Yval,v)
- }
- Xval=c()
- for(ii in 1:(Mdv+1)){
- u=U1+(ii-1)*Du
- Xval=c(Xval,u)
- }
- return(list(Zval,Xval,Yval))
-}
-
-Dropnumlistcrv<- function(QdL,Eps){
- Eps0=10^(-4)
- if(!is.list(QdL)){
- PdL=list(QdL)
- }else{
- PdL=QdL
- }
- OutL=list()
- for(I in Looprange(1,length(PdL))){
- Pd=Op(I,PdL)
- PtL=c(1)
- P=Op(1,Pd)
- for(K in Looprange(2,Length(Pd)-1)){
- if(Norm(P-Op(K,Pd))>Eps){
- PtL=c(PtL,K)
- P=Op(K,Pd)
- }
- }
- K=Length(Pd)
- if(Norm(P-Op(K,Pd))>Eps){ #18.02.12 eps
- PtL=c(PtL,K)
- }
- if(length(PtL)==1){
- PtL=c()
- }
- OutL=c(OutL,list(PtL))
- }
- return(OutL)
-}
-
-Cuspsplitpara<- function(...){
- varargin=list(...)
- Nargs=length(varargin);
- Gdxy=varargin[[1]]
- if(!is.list(Gdxy)){
- Gdxy=list(Gdxy)
- }
- Eps0=10^(-4)
- Eps=0.01
- if(Nargs>2){Eps=varargin[[2]]}
- N=2
- CUSPSPLITPT<<- list()
- OutkL=list()
- for(Ng in Looprange(1,length(Gdxy))){
- PtxyL=Op(Ng,Gdxy)
- PtkL=c()
- PthL=c()
- for(I in Looprange(1,Length(PtxyL))){
- Tmp=Op(I,PtxyL)
- Tmp1=paste(UNAME,'=',sprintf("%7.7f",Tmp[1]),sep="")
- eval(parse(text=Tmp1))
- Tmp1=paste(VNAME,'=',sprintf("%7.7f",Tmp[2]),sep="")
- eval(parse(text=Tmp1))
- Tmp2=c(eval(parse(text=XYZstr[1])))
- Tmp2=c(Tmp2,eval(parse(text=XYZstr[2])))
- Tmp2=c(Tmp2,eval(parse(text=XYZstr[3])))
- Tmp3=Parapt(Tmp2)
- if(I==1){
- PtkL=matrix(Tmp2,nrow=1)
- PthL=matrix(Tmp3,nrow=1)
- }else{
- Tmp4=Op(Length(PthL),PthL)
- if(Norm(Tmp3-Tmp4)>Eps0){
- PtkL=Appendrow(PtkL,Tmp2)
- PthL=Appendrow(PthL,Tmp3)
- }
- }
- }
- if(Length(PthL)==0){
- return(list())
- }
- Ps=Op(1,PthL); Pe=Op(Length(PthL),PthL)
- Cflg=0
- if(Norm(Ps-Pe)<Eps){Cflg=1}
- CuspL=c()
- Cva=cos(10*pi/180)
- for(I in Looprange(1,Length(PthL)-1)){
- if(Length(PthL)==2){break}
- Tmp=Op(I,PthL)
- if(I==1){
- if(Cflg==0){next}
- Tmp1=Op(Length(PthL)-1,PthL)
- }else{
- Tmp1=Op(I-1,PthL)
- }
- Tmp2=Op(I+1,PthL)
- V1=Tmp-Tmp1
- V2=Tmp2-Tmp
- Tmp3=Dotprod(V1,V2)/(Norm(V1)*Norm(V2))
- Cuspflg=0
- if(Tmp3<Cva){
- P=Op(I,PthL)
- Kaku=acos(Tmp3)*180/pi
- if(Crossprod(V1,V2)<0){
- Kaku=-Kaku
- }
- Cuspflg=0
- for(J in Looprange(I+1,Length(PthL)-1)){
- if(abs(Kaku)>90){
- Cuspflg=1
- break
- }
- Q=Op(J,PthL)
- if(Norm(P-Q)>Eps){
- break
- }
- V1=Q-Op(J-1,PthL)
- V2=Op(J+1,PthL)-Q
- Tmp3=Dotprod(V1,V2)/(norm(V1)*norm(V2))
- Tmp=acos(Tmp3)*180/pi
- if(Crossprod(V1,V2)<0){
- Tmp=-Tmp
- }
- Kaku=Kaku+Tmp
- }
- if(Cuspflg==1){
- Tmp=trunc((I+J)*0.5)
- I=J
- if(length(CuspL)==0){
- CuspL=c(Tmp)
- }else{
- CuspL=c(CuspL,Tmp)
- }
- }
- }
- }
- if(Cflg==0){
- CuspL=c(1,CuspL,Length(PthL))
- }else if(length(CuspL)==0){
- CuspL=c(1,Length(PthL))
- }else if(Op(1,CuspL)==1){
- CuspL=c(CuspL,Length(PthL))
- }else{
- Tmp=Op(1,CuspL)
- Tmp1=PthL[Tmp:Length(PthL),]
- Tmp2=PthL[2:Tmp,]
- PthL=Appendrow(Tmp1,Tmp2)
- Tmp1=PtkL[Tmp:Length(PthL),]
- Tmp2=PtkL[2:Tmp,]
- PtkL=Appendrow(Tmp1,Tmp2)
- CuspL=CuspL-Tmp+1
- CuspL=c(CuspL,Length(PthL))
- }
- if(length(CuspL)==2){
- Tmp4=PthL[Length(PthL),]
- if(Length(PtkL)>=2){
- CUSPSPLITPT<<- c(CUSPSPLITPT,list(Tmp4))
- OutkL=c(OutkL,list(PtkL))
- }
- next
- }
- Outk=list()
- Is=1
- for(I in Looprange(1,length(CuspL)-1)){
- Tmp1=CuspL[Is]; Tmp2=CuspL[I+1]
- Tmp3=Op(Tmp1,PthL); Tmp4=Op(Tmp2,PthL)
- if(Norm(Tmp3-Tmp4)>Eps){
- Tmpk=PtkL[Tmp1:Tmp2,]
- Outk=c(Outk,list(Tmpk))
- CUSPSPLITPT<<- c(CUSPSPLITPT,list(Tmp4))
- Is=I+1
- }
- }
- OutkL=c(OutkL,Outk)
- }
- Tmp1=Dropnumlistcrv(Projpara(OutkL),Eps*0.5)
- Tmp=list()
- for(I in Looprange(1,length(OutkL))){
- Tmp2=Op(I,OutkL)
- Tmp3=Op(I,Tmp1)
- Tmp4=c()
- for(J in Looprange(1,Length(Tmp3))){
- Tmp5=Op(Tmp3[J],Tmp2)
- Tmp4=Appendrow(Tmp4,Tmp5)
- }
- if(Length(Tmp4)>0){
- Tmp=c(Tmp,list(Tmp4))
- }
- }
- return(Tmp)
-}
-
-PthiddenQ<- function(PtA,Vec,Uveq,Np,Eps,Eps2){
- Eps0=10^(-4)
- Out=c()
- Vec=1/Norm(Vec)*Vec
- if(length(Np)==1){
- Np=c(Np,Np)
- }
- Tmp=paste("Eqfun<- function(U,V){",sep='')
- if((abs(Vec[2])>Eps0) || (abs(Vec[1])>Eps0)){
- Vstr=sprintf("%6.6f",Vec)
- Pstr=sprintf("%6.6f",PtA)
- Tmp=paste(Tmp,"(",Vstr[2],")*(Xfunc(U,V)-(",Pstr[1],"))",sep='')
- Tmp=paste(Tmp,"-(",Vstr[1],")*(Yfunc(U,V)-(",Pstr[2],"))}",sep='')
- }else{
- Tmp=paste(Tmp,"Xfunc(U,V)}",sep='')
- }
- eval(parse(text=Tmp))
- Dx=(URNG[2]-URNG[1])/Np[1]
- Dy=(VRNG[2]-VRNG[1])/Np[2]
- for(J in Looprange(1,Np[2])){ #####
- Vval1=VRNG[1]+(J-1)*Dy
- Vval2=VRNG[1]+J*Dy
- for(I in Looprange(1,Np[1])){ #####
- Uval1=URNG[1]+(I-1)*Dx
- Uval2=URNG[1]+I*Dx
- Eval11=Eqfun(Uval1,Vval1)
- Eval12=Eqfun(Uval1,Vval2)
- Eval21=Eqfun(Uval2,Vval1)
- Eval22=Eqfun(Uval2,Vval2)
- a1=Uval1;b1=Vval1;c1=Eval11
- a2=Uval2;b2=Vval1;c2=Eval21
- a3=Uval2;b3=Vval2;c3=Eval22
- a4=Uval1;b4=Vval2;c4=Eval12
- PL=matrix(c(a1,b1,a2,b2,a3,b3,a4,b4,a1,b1),ncol=2,byrow=TRUE)
- VL=c(c1,c2,c3,c4,c1)
- QL=c()
- for(K in 1:4){
- P1=Op(K,PL); P2=Op(K+1,PL)
- M1=Op(K,VL); M2=Op(K+1,VL)
- if(abs(M1)<Eps0){
- QL=Appendrow(QL,P1)
- next
- }
- if(abs(M2)<Eps0){
-# QL=Appendrow(QL,P2)
- next
- }
- if((M1> 0) && (M2> 0)){
- next
- }
- if((M1< 0) && (M2< 0)){
- next
- }
- Tmp=1/(M1-M2)*(-M2*P1+M1*P2)
- QL=Appendrow(QL,Tmp)
- }
- if(Length(QL)==2){
- Puv1=Op(1,QL); Puv2=Op(2,QL)
- Tmp1=Op(1,Puv1)
- Tmp2=Op(2,Puv1)
- Xv=Xfunc(Tmp1,Tmp2)
- Yv=Yfunc(Tmp1,Tmp2)
- Zv=Zfunc(Tmp1,Tmp2)
- P1=c(Xv,Yv,Zv)
- Tmp1=Op(1,Puv2)
- Tmp2=Op(2,Puv2)
- Xv=Xfunc(Tmp1,Tmp2)
- Yv=Yfunc(Tmp1,Tmp2)
- Zv=Zfunc(Tmp1,Tmp2)
- P2=c(Xv,Yv,Zv)
- V1=Vec[1]; V2=Vec[2]; V3=Vec[3]
- if(abs(V1)>Eps0){
- M1=PtA[3]+V3/V1*(P1[1]-PtA[1])-P1[3]
- M2=PtA[3]+V3/V1*(P2[1]-PtA[1])-P2[3]
- }else if(abs(V2)>Eps0){
- M1=PtA[3]+V3/V2*(P1[2]-PtA[2])-P1[3]
- M2=PtA[3]+V3/V2*(P2[2]-PtA[2])-P2[3]
- }else{
- M1=PtA[2]-P1[2]
- M2=PtA[2]-P2[2]
- }
- if(M1*M2>= 0){
- if(((M1>0) && (M2>0)) || ((M1< 0) && (M2< 0))){
- next
- }
- if(M1==0){
- Pt=P1; Ptuv=Puv1
- }else{
- Pt=P2; Ptuv=Puv2
- }
- }else{
- Pt=1/(M1-M2)*(-M2*P1+M1*P2)
- Ptuv=1/(M1-M2)*(-M2*Puv1+M1*Puv2)
- }
- if(is.character(Uveq)){
- Tmp1=paste('(',sprintf("%6.6f",Ptuv[1]),')',sep='')
- Tmp2=paste('('+sprintf("%6.6f",Ptuv[2]),')',sep='')
- Tmp=gsub(UNAME,Tmp1,Uveq,fixed=TRUE)
- Tmp=gsub(VNAME,Tmp2,Tmp,fixed=TRUE)
- Tmp=eval(parse(text=Tmp))
- if(Tmp< -Eps0){
- next
- }
- }
- Tmp1=Crossprod(Pt-PtA,Vec)
- if(Norm(Tmp1)<Eps){ #18.02.19
- if(Zparapt(Pt)>Zparapt(PtA)+Eps2){
- return(list(1,Pt,Zparapt(Pt),Zparapt(PtA)))
- }else{
- Out=Appendrow(Out,Pt)
- }
- }
- }
- }
- }
- if(Length(Out)==0){
- return(list(0,c()))
- }
- return(c(list(0,Out)))
-}
-
-Nohiddenpara2<- function (Par,Fk,Uveq,Np,Eps,Eps2){
- Eps0=10^(-4)
- Fh=Projpara(Fk)
- P1=Ptstart(Fh)
- P2=Ptend(Fh)
- Csp=CUSPPT
- if(!is.list(Csp)){Csp=list(Csp)}
- Cspflg=1
- for(I in Looprange(1,length(Csp))){
- Tmp=Op(I,Csp)
- if(Norm(Tmp-P1)<Eps0){
- if(Cspflg==1){Cspflg=2}
- if(Cspflg==3){Cspflg=6}
- next
- }
- if(Norm(Tmp-P2)<Eps0){
- if(Cspflg==1){Cspflg=3}
- if(Cspflg==2){Cspflg=6}
- next
- }
- }
- PaL=c()
- tmp2=-1
- for(jj in Looprange(1,length(Par)-1)){
- tmp1=Op(jj,Par)
- if(abs(tmp1-tmp2)>Eps2){
- PaL=c(PaL,tmp1)
- tmp2=tmp1
- }
- }
- tmp1=PaL[length(PaL)] #18.02.26from
- tmp2=Par[length(Par)]
- if(abs(tmp1-tmp2)<Eps2){
- PaL[length(PaL)]=tmp2
- }else{
- PaL=c(PaL,tmp2)
- } #18.02.26upto
- SeL=c()
- for(N in Looprange(1,length(PaL)-1)){
- S=(PaL[N]+PaL[N+1])/2
- Tmp=Invparapt(S,Fh,Fk)
- PtA=Op(1,Tmp)
- PtAp=Parapt(PtA)
- Vec=c(sin(THETA)*cos(PHI),sin(THETA)*sin(PHI),cos(THETA))
- Flg=PthiddenQ(PtA,Vec,Uveq,Np,Eps,Eps2)
- if(Flg[[1]]==0){
- SeL=c(SeL,N)
- }
- }
- FigL=list()
- FigkL=list()
- for(I in Looprange(1,length(SeL))){
- Tmp1=Pointoncurve(PaL[SeL[I]],Fh)
- Tmp2=Pointoncurve(PaL[SeL[I]+1],Fh)
- if(I==1){
- P=Tmp1; SP=PaL[SeL[I]]
- Q=Tmp2; SQ=PaL[SeL[I]+1]
- }else{
- if(Member(SeL[I]-1,SeL)){
- Q=Tmp2; SQ=PaL[SeL[I]+1]
- }else{
- FigL=c(FigL,list(Partcrv(SP,SQ,Fh)))
- Tmp3=Invparapt(SP,Fh,Fk)
- TP=Op(2,Tmp3)
- Tmp3=Invparapt(SQ,Fh,Fk)
- TQ=Op(2,Tmp3)
- Tmp4=Partcrv3(TP,TQ,Fk)
- FigkL=c(FigkL,list(Tmp4))
- P=Tmp1; SP=PaL[SeL[I]]
- Q=Tmp2; SQ=PaL[SeL[I]+1]
- }
- }
- }
- if(length(SeL)>0){
- if(Norm(P-Q)>Eps0){ #18.02.14
- FigL=c(FigL,list(Partcrv(P,Q,Fh)))
- Tmp3=Invparapt(SP,Fh,Fk)
- TP=Op(2,Tmp3)
- Tmp3=Invparapt(SQ,Fh,Fk)
- TQ=Op(2,Tmp3)
- FigkL=c(FigkL,list(Partcrv3(TP,TQ,Fk)))
- }else{
- FigL=c(FigL,list(Fh))
- FigkL=c(FigkL,list(Fk))
- }
- }
- Tmp=c()
- for(I in Looprange(1,length(PaL)-1)){
- if(!Member(I,SeL)){
- Tmp=c(Tmp,I)
- }
- }
- SeL=Tmp
- HIDDENDATA<<- list()
- for(I in Looprange(1,length(SeL))){
- Tmp=PaL[SeL[I]]
- Tmp1=Pointoncurve(Tmp,Fh)
- Tmp=PaL[SeL[I]+1]
- Tmp2=Pointoncurve(Tmp,Fh)
- if(I==1){
- P=Tmp1; SP=PaL[SeL[I]]
- Q=Tmp2; SQ=PaL[SeL[I]+1]
- }else{
- if(Member(SeL[I]-1,SeL)){
- Q=Tmp2; SQ=PaL[SeL[I]+1]
- }else{
- Tmp=Invparapt(SP,Fh,Fk)
- TP=Op(2,Tmp)
- Tmp=Invparapt(SQ,Fh,Fk)
- TQ=Op(2,Tmp)
- HIDDENDATA<<- c(HIDDENDATA,list(Partcrv3(TP,TQ,Fk)))
- P=Tmp1; SP=PaL[SeL[I]]
- Q=Tmp2; SQ=PaL[SeL[I]+1]
- }
- }
- }
- if(length(SeL)>0){
- if(Norm(P-Q)>Eps0){ #18.02.14
- Tmp=Invparapt(SP,Fh,Fk)
- TP=Op(2,Tmp)
- Tmp=Invparapt(SQ,Fh,Fk)
- TQ=Op(2,Tmp)
- HIDDENDATA<<- c(HIDDENDATA,list(Partcrv3(TP,TQ,Fk)))
- }else{
- HIDDENDATA<<- c(HIDDENDATA,list(Fk))
- }
- }
- return(FigkL)
-}
-
-Borderparadata<- function(...){
- varargin=list(...)
- Nargs=length(varargin)
- FkL=varargin[[1]]
- Np=c(50,50)
- Eps=0.01
- Eps2=0.05
- ctr=0
- for(jj in Looprange(2,Nargs)){
- tmp=varargin[[jj]]
- if((length(tmp)>1)||(tmp>1)){
- Np=tmp
- if(length(Np)==1){
- Np=c(Np,Np)
- }
- }else{
- ctr=ctr+1
- if(ctr==1){Eps=tmp}
- if(ctr==2){Eps2=tmp}
- }
- }
- Umin=URNG[1]; Umax=URNG[2]
- Vmin=VRNG[1]; Vmax=VRNG[2]
- EkL=list()
- Tmp=grep("e",DRWS,fixed=TRUE)
- if(length(Tmp)>0){
- Tmp1="c("
- for(jj in 1:3){
- Tmp=gsub(UNAME,paste("(",sprintf("%7.7f",Umax),")",sep=""),XYZstr[jj])
- Tmp1=paste(Tmp1,Tmp,",",sep="")
- }
- Tmp=substring(Tmp1,1,Length(Tmp1)-1)
- Tmp1=paste(Tmp,")",sep="")
- Tmp=sprintf("%6.6f",VRNG)
- Tmp2=paste(VNAME,"=c(",Tmp[1],",",Tmp[2],")",sep='')
- Tmp3=paste('N=',as.character(Np[2]),sep="")
- Tmp=Spacecurve(Tmp1,Tmp2,Tmp3)
- EkL=c(EkL,list(Tmp))
- }
- Tmp=grep("n",DRWS,fixed=TRUE)
- if(length(Tmp)>0){
- Tmp1="c("
- for(jj in 1:3){
- Tmp=gsub(VNAME,paste("(",sprintf("%7.7f",Vmax),")",sep=""),XYZstr[jj])
- Tmp1=paste(Tmp1,Tmp,",",sep="")
- }
- Tmp=substring(Tmp1,1,Length(Tmp1)-1)
- Tmp1=paste(Tmp,")",sep="")
- Tmp=sprintf("%6.6f",URNG)
- Tmp2=paste(UNAME,"=c(",Tmp[1],",",Tmp[2],")",sep='')
- Tmp3=paste('N=',as.character(Np[1]),sep="")
- Tmp=Spacecurve(Tmp1,Tmp2,Tmp3)
- EkL=c(EkL,list(Tmp))
- }
- Tmp=grep("w",DRWS,fixed=TRUE)
- if(length(Tmp)>0){
- Tmp1="c("
- for(jj in 1:3){
- Tmp=gsub(UNAME,paste("(",sprintf("%7.7f",Umin),")",sep=""),XYZstr[jj])
- Tmp1=paste(Tmp1,Tmp,",",sep="")
- }
- Tmp=substring(Tmp1,1,Length(Tmp1)-1)
- Tmp1=paste(Tmp,")",sep="")
- Tmp=sprintf("%6.6f",VRNG)
- Tmp2=paste(VNAME,"=c(",Tmp[1],",",Tmp[2],")",sep='')
- Tmp3=paste('N=',as.character(Np[2]))
- Tmp=Spacecurve(Tmp1,Tmp2,Tmp3)
- EkL=c(EkL,list(Tmp))
- }
- Tmp=grep("s",DRWS,fixed=TRUE)
- if(length(Tmp)>0){
- Tmp1="c("
- for(jj in 1:3){
- Tmp=gsub(VNAME,paste("(",sprintf("%7.7f",Vmin),")",sep=""),XYZstr[jj])
- Tmp1=paste(Tmp1,Tmp,",",sep="")
- }
- Tmp=substring(Tmp1,1,Length(Tmp1)-1)
- Tmp1=paste(Tmp,")",sep="")
- Tmp=sprintf("%6.6f",URNG)
- Tmp2=paste(UNAME,"=c(",Tmp[1],",",Tmp[2],")",sep='')
- Tmp3=paste('N=',as.character(Np[1]))
- Tmp=Spacecurve(Tmp1,Tmp2,Tmp3)
- EkL=c(EkL,list(Tmp))
- }
- if(length(EkL)>0){
- FkL=c(FkL,EkL)
- }
- Fall=Projpara(FkL)
- if(is.numeric(Fall)){
- Fall=list(Fall)
- }
- Fbdxy=Makexybdy(Np)
- BORDERPT<<- list()
- Tmp1=list()
- for(I in Looprange(1,length(Fall))){
- Tmp1=c(Tmp1,list(c()))
- }
- OTHERPARTITION<<- Tmp1
- FsL=list()
- BORDERHIDDENDATA<<- list()
- starttime=proc.time()
- for(I in Looprange(1,length(FkL))){
- Tmp=Op(I,FkL)
- Tmp=Projpara(Tmp)
- Par=Partitionseg(Tmp,Fall,Eps,Eps2,I)
- Tmp1=Op(I,FkL)
- Tmp=Nohiddenpara2(Par,Tmp1,1,Np,Eps,Eps2)
- if(length(HIDDENDATA)>0){
- BORDERHIDDENDATA<<- c(BORDERHIDDENDATA,HIDDENDATA)
- }
- if(length(Tmp)>0){
- FsL=c(FsL,Tmp)
- }
- Tmp=paste('Border',formatC(I,width=2,flag="0"),'/',sep='')
- Tmp=paste(Tmp,as.character(length(FkL)),' obtained : Time =',sep='')
- Tmp1=proc.time()-starttime
- print(paste(Tmp,sprintf("%6.3f",Tmp1[1]),sep=''))
- }
- return(FsL)
-}
-
-Sfbdparadata<- function(...){
- varargin=list(...)
- Nargs=length(varargin)
- Fd=varargin[[1]]
- FdL=Fullformfunc(Fd)
- Np=c(50,50)
- Eps=0.01
- Eps2=0.05
- ctr=0
- for(jj in Looprange(2,Nargs)){
- tmp=varargin[[jj]]
- if((length(tmp)>1)||(tmp>1)){
- Np=tmp
- if(length(Np)==1){
- Np=c(Np,Np)
- }
- }else{
- ctr=ctr+1
- if(ctr==1){Eps=tmp}
- if(ctr==2){Eps2=tmp}
- }
- }
- starttime=proc.time()
- tmp=Evlptablepara(Np)
- Zval=tmp[[1]]; Xval=tmp[[2]]; Yval=tmp[[3]]
- Out3=Implicitplot(Zval,Xval,Yval)
- tmp3=list()
- for(jj in Looprange(1,length(Out3))){
- tmp1=Op(jj,Out3)
- tmp2=c()
- for(kk in Looprange(1,Length(tmp1))){
- tmp=Op(kk,tmp1)
- tmp2=Appendrow(tmp2,XYZfunc(tmp[1],tmp[2]))
- }
- Nlist=Dropnumlistcrv(tmp2,Eps)
- Nlist=Nlist[[1]]
- tmp=c()
- for(kk in Looprange(1,length(Nlist))){
- tmp=Appendrow(tmp,Op(Nlist[kk],tmp1)) #18.02.18
- }
- if(Length(tmp)>0){
- tmp3=c(tmp3,list(tmp))
- }
- }
- Out3=tmp3
- IMPLICITDATA<<- Out3
- Tmp=proc.time()-starttime
- print(paste('ImplicitData obtained : Time =',sprintf("%6.3f",Tmp[1]),sep=''))
- starttime=proc.time()
- Out4=Cuspsplitpara(Out3,Eps)
- CUSPDATA<<- Out4
- CUSPPT<<- CUSPSPLITPT
- Tmp=proc.time()-starttime
- print(paste('CuspData obtained : Time =',sprintf("%6.3f",Tmp[1]),sep=''))
- Out5=Borderparadata(Out4,Np,Eps,Eps2)
- return(Out5)
-}
-
-Meetpoints<- function(PtA,PtB,Uveq,Np,Eps){
- Eps0=10^(-4)
- Vec=PtB-PtA
- if(Norm(Vec)<Eps0){return(list())} #18.02.24
- Out=list()
- Vec=1/Norm(Vec)*Vec
- if(length(Np)==1){
- Np=c(Np,Np)
- }
- Tmp=paste("Eqfun<- function(U,V){",sep='')
- if((abs(Vec[2])>Eps0) || (abs(Vec[1])>Eps0)){
- Vstr=sprintf("%6.6f",Vec)
- Pstr=sprintf("%6.6f",PtA)
- Tmp=paste(Tmp,"(",Vstr[2],")*(Xfunc(U,V)-(",Pstr[1],"))",sep='')
- Tmp=paste(Tmp,"-(",Vstr[1],")*(Yfunc(U,V)-(",Pstr[2],"))}",sep='')
- }else{
- Tmp=paste(Tmp,"Xfunc(U,V)}",sep='')
- }
- eval(parse(text=Tmp))
- Dx=(URNG[2]-URNG[1])/Np[1]
- Dy=(VRNG[2]-VRNG[1])/Np[2]
- for(J in Looprange(1,Np[2])){ #####
- Vval1=VRNG[1]+(J-1)*Dy
- Vval2=VRNG[1]+J*Dy
- for(I in Looprange(1,Np[1])){ #####
- Uval1=URNG[1]+(I-1)*Dx
- Uval2=URNG[1]+I*Dx
- Eval11=Eqfun(Uval1,Vval1)
- Eval12=Eqfun(Uval1,Vval2)
- Eval21=Eqfun(Uval2,Vval1)
- Eval22=Eqfun(Uval2,Vval2)
- a1=Uval1;b1=Vval1;c1=Eval11
- a2=Uval2;b2=Vval1;c2=Eval21
- a3=Uval2;b3=Vval2;c3=Eval22
- a4=Uval1;b4=Vval2;c4=Eval12
- PL=matrix(c(a1,b1,a2,b2,a3,b3,a4,b4,a1,b1),ncol=2,byrow=TRUE)
- VL=c(c1,c2,c3,c4,c1)
- QL=c()
- for(K in 1:4){
- P1=Op(K,PL); P2=Op(K+1,PL)
- M1=Op(K,VL); M2=Op(K+1,VL)
- if(abs(M1)<Eps0){
- QL=Appendrow(QL,P1)
- next
- }
- if(abs(M2)<Eps0){
-# QL=Appendrow(QL,P2)
- next
- }
- if((M1> 0) && (M2> 0)){
- next
- }
- if((M1< 0) && (M2< 0)){
- next
- }
- Tmp=1/(M1-M2)*(-M2*P1+M1*P2)
- QL=Appendrow(QL,Tmp)
- }
- if(Length(QL)==2){
- Puv1=Op(1,QL); Puv2=Op(2,QL)
- Tmp1=Op(1,Puv1)
- Tmp2=Op(2,Puv1)
- Xv=Xfunc(Tmp1,Tmp2)
- Yv=Yfunc(Tmp1,Tmp2)
- Zv=Zfunc(Tmp1,Tmp2)
- P1=c(Xv,Yv,Zv)
- Tmp1=Op(1,Puv2)
- Tmp2=Op(2,Puv2)
- Xv=Xfunc(Tmp1,Tmp2)
- Yv=Yfunc(Tmp1,Tmp2)
- Zv=Zfunc(Tmp1,Tmp2)
- P2=c(Xv,Yv,Zv)
- V1=Vec[1]; V2=Vec[2]; V3=Vec[3]
- if(abs(V1)>Eps0){
- M1=PtA[3]+V3/V1*(P1[1]-PtA[1])-P1[3]
- M2=PtA[3]+V3/V1*(P2[1]-PtA[1])-P2[3]
- }else if(abs(V2)>Eps0){
- M1=PtA[3]+V3/V2*(P1[2]-PtA[2])-P1[3]
- M2=PtA[3]+V3/V2*(P2[2]-PtA[2])-P2[3]
- }else{
- M1=PtA[2]-P1[2]
- M2=PtA[2]-P2[2]
- }
- if(M1*M2>= 0){ #18.02.21
- if(((M1>0) && (M2>0)) || ((M1< 0) && (M2< 0))){
- next
- }
- if(M1==0){
- Pt=P1; Ptuv=Puv1
- }else{
- Pt=P2; Ptuv=Puv2
- }
- }else{
- Pt=1/(M1-M2)*(-M2*P1+M1*P2)
- Ptuv=1/(M1-M2)*(-M2*Puv1+M1*Puv2)
- }
- if(is.character(Uveq)){
- Tmp1=paste('(',sprintf("%6.6f",Ptuv[1]),')',sep='')
- Tmp2=paste('('+sprintf("%6.6f",Ptuv[2]),')',sep='')
- Tmp=gsub(UNAME,Tmp1,Uveq,fixed=TRUE)
- Tmp=gsub(VNAME,Tmp2,Tmp,fixed=TRUE)
- Tmp=eval(parse(text=Tmp))
- if(Tmp< -Eps0){
- next
- }
- }
- Tmp1=Crossprod(Pt-PtA,Vec)
- if(Norm(Tmp1)<Eps){ #18.02.19
- Tmp1=Dotprod(Pt-PtA,Vec) #18.02.21
- if((Tmp1>-Eps0)&&(Tmp1<Norm(PtB-PtA)+Eps0)){
- Out=c(Out,list(Pt))
- }
- }
- }
- }
- }
- tmp1=Groupnearpt(Out,Eps)
- Out=list()
- for(jj in Looprange(1,length(tmp1))){
- tmp=Op(jj,tmp1)
- tmp=c(sum(tmp[,1]),sum(tmp[,2]),sum(tmp[,3]))/Length(tmp)
- Out=c(Out,list(tmp))
- }
- return(Out)
-}
-
-Clipindomain<- function(ObjL,FigL){
- Eps0=10^(-4)
- Eps1=0.01
- Eps2=0.05
- Bdy=Kyoukai(FigL)
- if(length(Bdy)>=2){
- Fbdy=Joincrvs(FigL)
- }else{
- Fbdy=Op(1,FigL)
- }
- if(!is.list(ObjL)){
- ObjL=list(ObjL)
- }
- if(!is.list(FigL)){
- FigL=list(FigL)
- }
- OutL=list()
- for(Nobj in Looprange(1,length(ObjL))){
- Obj=Op(Nobj,ObjL)
- ParL=c(1,Length(Obj))
- Tmp=IntersectcurvesPp(Obj,Fbdy,Eps1,Eps2)
- for(J in Looprange(1,length(Tmp))){
- Tmp1=Op(J,Tmp)
- ParL=c(ParL,Op(2,Tmp1))
- }
- ParL=sort(ParL)
- Tmp=c(1)
- for(I in Looprange(1,length(ParL))){
- Tmp1=Op(length(Tmp),Tmp)
- Tmp2=ParL[I]
- if(Tmp2-Tmp1>Eps0){
- Tmp=c(Tmp,Tmp2)
- }
- }
- ParL=Tmp
- Tmp1=Op(length(ParL),ParL)
- Tmp2=Length(Obj)
- if(abs(Tmp1-Tmp2)<Eps){
- ParL=c(ParL[Looprange(1,length(ParL)-1)],Tmp2)
- }
- Fig=list()
- for(N in Looprange(1,length(ParL)-1)){
- Tmp=(ParL[N]+ParL[N+1])*0.5
- Tmp=Pointoncurve(Tmp,Obj)
- Tmp=Naigai(Tmp,Bdy)
- Tmp1=sum(Tmp)%%2
- if(Tmp1==0){
- next
- }
- Fig=c(Fig,list(Partcrv(ParL[N],ParL[N+1],Obj)))
- }
- OutL=c(OutL,Fig)
- }
- return(OutL)
-}
-
-Crvsfparadata<- function(...){
- starttime=proc.time()
- varargin=list(...)
- Nargs=length(varargin)
- Sepflg=0
- Tmp=varargin[[Nargs]]
- if((is.numeric(Tmp))&&(Tmp<=0)){
- Sepflg=1
- Nargs=Nargs-1
- }
- Fk=varargin[[1]]
- if(!is.list(Fk)){
- FkL=list(Fk)
- }else{
- FkL=Fk
- }
- Fbdy=Projpara(varargin[[2]])
- Fd=varargin[[3]];
- Fullformfunc(Fd) #18.02.17
- Np=c(50,50)
- Eps=0.01
- Eps2=0.05
- ctr=0
- for(jj in Looprange(4,Nargs)){
- tmp=varargin[[jj]]
- if((length(tmp)>1)||(tmp>1)){
- Np=tmp
- if(length(Np)==1){
- Np=c(Np,Np)
- }
- }else{
- ctr=ctr+1
- if(ctr==1){Eps=tmp}
- if(ctr==2){Eps2=tmp}
- }
- }
- Out=list()
- CRVSFHIDDENDATA<<- list()
- for(Nn in Looprange(1,length(FkL))){
- Fk=Op(Nn,FkL)
- Tmp=Projpara(Fk)
- Par=Partitionseg(Tmp,Fbdy,Eps,Eps2,0)
- if(Sepflg==0){
- for(I in Looprange(1,Length(Fk)-1)){
- Pa=Op(I,Fk)
- Pb=Op(I+1,Fk)
- PtL=Meetpoints(Pa,Pb,1,Np,Eps)
- for(J in Looprange(1,Length(PtL))){
- Tmp=Op(J,PtL)
- Tmp=Parapt(Tmp)
- Tmp1=Paramoncurve(Tmp,I,Projpara(Fk))
- Tmp2=min(abs(Par-Tmp1))
- if(Tmp2*Norm(Parapt(Pb-Pa))>Eps) {
- Par=c(Par,Tmp1)
- }
- }
- Par=sort(Par)
- }
- }
- for(jj in Looprange(1,length(ADDPOINT))){ #18.02.19from
- tmp=Parapt(Op(jj,ADDPOINT))
- tmp=Nearestpt(tmp,Projpara(Fk))
- if(tmp[[3]]<Eps){
- Par=c(Par,tmp[[2]])
- }
- } #18.02.19upto
- tmp1=sort(Par)
- Par=c()
- tmp2=-1
- for(jj in Looprange(1,length(tmp1))){
- tmp=Op(jj,tmp1)
- if(abs(tmp-tmp2)>Eps){
- Par=c(Par,tmp)
- tmp2=tmp
- }
- }
- Tmp1=Nohiddenpara2(Par,Fk,1,Np,Eps,Eps2)
- Out=c(Out,Tmp1)
- CRVSFHIDDENDATA<<- c(CRVSFHIDDENDATA,HIDDENDATA)
- Tmp=paste('Crvsfdata',formatC(Nn,width=2,flag="0"),'/',sep='')
- Tmp=paste(Tmp,as.character(length(FkL)),' obtained : Time =',sep='')
- Tmp1=proc.time()-starttime
- print(paste(Tmp,sprintf("%6.3f",Tmp1[1]),sep=''))
- }
- return(Out)
-}
-
-Crv3onsfparadata<- function(...){
- starttime=proc.time()
- varargin=list(...)
- Nargs=length(varargin)
- Fk=varargin[[1]]
- if(!is.list(Fk)){
- FkL=list(Fk)
- }else{
- FkL=Fk
- }
- Fbdy=Projpara(varargin[[2]])
- Fd=varargin[[3]]
- Fullformfunc(Fd) #18.02.17
- Np=c(50,50)
- Eps=0.01
- Eps2=0.05
- ctr=0
- for(jj in Looprange(4,Nargs)){
- tmp=varargin[[jj]]
- if((length(tmp)>1)||(tmp>1)){
- Np=tmp
- if(length(Np)==1){
- Np=c(Np,Np)
- }
- }else{
- ctr=ctr+1
- if(ctr==1){Eps=tmp}
- if(ctr==2){Eps2=tmp}
- }
- }
- Out=list()
- CRVONSFHIDDENDATA<<- list()
- for(Nn in Looprange(1,length(FkL))){
- Fk=Op(Nn,FkL)
- Tmp=Projpara(Fk)
- Par=Partitionseg(Tmp,Fbdy,Eps,Eps2,0)
- for(jj in Looprange(1,length(ADDPOINT))){
- tmp=Parapt(Op(jj,ADDPOINT))
- tmp=Nearestpt(tmp,Projpara(Fk))
- if(tmp[[3]]<Eps){
- Par=c(Par,tmp[[2]])
- }
- }
- Par=sort(Par)
- Tmp1=Nohiddenpara2(Par,Fk,1,Np,Eps,Eps2)
- Out=c(Out,Tmp1)
- CRVONSFHIDDENDATA<<- c(CRVONSFHIDDENDATA,HIDDENDATA)
- Tmp=paste('Crvonsfdata',formatC(Nn,width=2,flag="0"),'/',sep='')
- Tmp=paste(Tmp,as.character(length(FkL)),' obtained : Time =',sep='')
- Tmp1=proc.time()-starttime
- print(paste(Tmp,sprintf("%6.3f",Tmp1[1]),sep=''))
- }
- return(Out)
-}
-
-Crvonsfparadata<- function(...){
- starttime=proc.time()
- varargin=list(...)
- Nargs=length(varargin)
- Fuv=varargin[[1]]
- Fbdy3=varargin[[2]]
- Fd=varargin[[3]]
- Fullformfunc(Fd)
- if(!is.list(Fuv)){
- Fuv=list(Fuv)
- }
- FkL=list()
- for(jj in Looprange(1,length(Fuv))){
- tmp1=Op(jj,Fuv)
- tmp2=c()
- for(kk in Looprange(1,Length(tmp1))){
- tmp=Op(kk,tmp1)
- tmp2=Appendrow(tmp2,XYZfunc(tmp[1],tmp[2]))
- }
- FkL=c(FkL,list(tmp2))
- }
- Np=c(50,50)
- Eps=0.01
- Eps2=0.05
- ctr=0
- for(jj in Looprange(4,Nargs)){
- tmp=varargin[[jj]]
- if((length(tmp)>1)||(tmp>1)){
- Np=tmp
- if(length(Np)==1){
- Np=c(Np,Np)
- }
- }else{
- ctr=ctr+1
- if(ctr==1){Eps=tmp}
- if(ctr==2){Eps2=tmp}
- }
- }
- Out=Crv3onsfparadata(FkL,Fbdy3,Fd,Np,Eps,Eps2)
- return(Out)
-}
-
-Wireparadata<- function(...){
- starttime=proc.time()
- varargin=list(...)
- Nargs=length(varargin)
- Fbdy3=varargin[[1]]
- Fd=varargin[[2]]
- FdL=Fullformfunc(Fd)
- DuL=varargin[[3]]
- DvL=varargin[[4]]
- Np=c(50,50)
- Eps=0.01
- Eps2=0.05
- ctr=0
- for(jj in Looprange(5,Nargs)){
- tmp=varargin[[jj]]
- if((length(tmp)>1)||(tmp>1)){
- Np=tmp
- if(length(Np)==1){
- Np=c(Np,Np)
- }
- }else{
- ctr=ctr+1
- if(ctr==1){Eps=tmp}
- if(ctr==2){Eps2=tmp}
- }
- }
- if(is.numeric(DuL)){
- tmp1=DuL
- DuL=list()
- for(jj in Looprange(1,tmp1)){
- tmp=jj*(URNG[2]-URNG[1])/(tmp1+1)
- DuL=c(DuL,list(tmp))
- }
- }
- if(is.numeric(DvL)){
- tmp1=DvL
- DvL=list()
- for(jj in Looprange(1,tmp1)){
- tmp=jj*(VRNG[2]-VRNG[1])/(tmp1+1)
- DvL=c(DvL,list(tmp))
- }
- }
- Fuv=list()
- for(jj in Looprange(1,length(DuL))){
- tmp1=paste("c(",as.character(Op(jj,DuL)),",",VNAME,")",sep="")
- tmp2=paste("N=",as.character(Np[2]),sep="")
- tmp1=Paramplot(tmp1,Op(6,FdL),tmp2)
- tmp2=c()
- for(kk in Looprange(1,Length(tmp1))){
- tmp=Op(kk,tmp1)
- tmp2=Appendrow(tmp2,tmp)
- }
- Fuv=c(Fuv,list(tmp2))
- }
- FkL=list()
- for(jj in Looprange(1,length(Fuv))){
- tmp1=Op(jj,Fuv)
- tmp2=c()
- for(kk in Looprange(1,Length(tmp1))){
- tmp=Op(kk,tmp1)
- tmp2=Appendrow(tmp2,XYZfunc(tmp[1],tmp[2]))
- }
- FkL=c(FkL,list(tmp2))
- }
- Tmp1=proc.time()-starttime
- cat(UNAME,"direction started","\n")
- Out1=Crv3onsfparadata(FkL,Fbdy3,Fd,Np,Eps,Eps2)
- WIREHIDDENDATA<<- CRVONSFHIDDENDATA
- Fuv=list()
- for(jj in Looprange(1,length(DvL))){
- tmp1=paste("c(",UNAME,",",as.character(Op(jj,DvL)),")",sep="")
- tmp2=paste("N=",as.character(Np[2]),sep="")
- tmp1=Paramplot(tmp1,Op(5,FdL),tmp2)
- tmp2=c()
- for(kk in Looprange(1,Length(tmp1))){
- tmp=Op(kk,tmp1)
- tmp2=Appendrow(tmp2,tmp)
- }
- Fuv=c(Fuv,list(tmp2))
- }
- FkL=list()
- for(jj in Looprange(1,length(Fuv))){
- tmp1=Op(jj,Fuv)
- tmp2=c()
- for(kk in Looprange(1,Length(tmp1))){
- tmp=Op(kk,tmp1)
- tmp2=Appendrow(tmp2,XYZfunc(tmp[1],tmp[2]))
- }
- FkL=c(FkL,list(tmp2))
- }
- cat(VNAME,"direction started","\n")
- Out2=Crv3onsfparadata(FkL,Fbdy3,Fd,Np,Eps,Eps2)
- WIREHIDDENDATA<<- c(WIREHIDDENDATA, CRVONSFHIDDENDATA)
- Out=c(Out1,Out2)
- return(Out)
-}
-
-Intersectcrvsf<- function(...){
- # bdyeq is the equation of boundary f(x,y,z) =0
- starttime=proc.time()
- varargin=list(...)
- Nargs=length(varargin)
- crv=varargin[[1]]
- Fd=varargin[[2]]
- Fullformfunc(Fd)
- bdyflg=0
- bdyeq=varargin[[Nargs]]
- if(is.character(bdyeq)){
- Nargs=Nargs-1
- bdyflg=1
- tmp=strsplit(bdyeq,"=",fixed=TRUE)
- tmp=tmp[[1]]
- if(length(tmp)>1){
- bdyeq=paste("(",tmp[1],")-(",tmp[2],")",sep="")
- }
- tmp=paste("bdyeq<- function(P){x=P[1];y=P[2];z=P[3];",bdyeq,"}",sep="")
- eval(parse(text=tmp))
- }
- Eps0=10^(-4)
- Np=c(50,50)
- Eps=0.01
- Eps2=0.05
- ctr=0
- for(jj in Looprange(3,Nargs)){
- tmp=varargin[[jj]]
- if((length(tmp)>1)||(tmp>1)){
- Np=tmp
- if(length(Np)==1){
- Np=c(Np,Np)
- }
- }else{
- ctr=ctr+1
- if(ctr==1){Eps=tmp}
- if(ctr==2){Eps2=tmp}
- }
- }
- PtL=list()
- for(I in Looprange(1,Length(crv)-1)){
- Pa=Op(I,crv)
- Pb=Op(I+1,crv)
- if(bdyflg==0){
- tmp=Meetpoints(Pa,Pb,1,Np,Eps)
- }else{
- M1=bdyeq(Pa); M2=bdyeq(Pb)
- if(M1*M2>= 0){ #18.02.21
- if(((M1>0) && (M2>0)) || ((M1< 0) && (M2< 0))){
- next
- }
- if(M1==0){
- tmp=list(Pa)
- }else{
- tmp=list(Pb)
- }
- }else{
- while(Norm(Pb-Pa)>Eps0){
- if(bdyeq(Pa)==0){
- tmp=list(Pa)
- break
- }
- if(bdyeq(Pa)*bdyeq((Pa+Pb)/2)>0){
- Pa=(Pa+Pb)/2
- }else{
- Pb=(Pa+Pb)/2
- }
- }
- tmp=list(1/(M1-M2)*(-M2*Pa+M1*Pb))
- }
- }
- PtL=c(PtL,tmp)
- }
- Tmp=paste('Intersectcrvsf obtained : Time =',sep='')
- Tmp1=proc.time()-starttime
- print(paste(Tmp,sprintf("%6.3f",Tmp1[1]),sep=''))
- return(PtL)
-}
-
-Sfcutparadata<- function(...){
- varargin=list(...)
- Nargs=length(varargin)
- CutD=varargin[[1]]
- Fbdy3=varargin[[2]]
- Fd=varargin[[3]]
- FdL=Fullformfunc(Fd)
- Np=c(50,50)
- Eps0=10^(-4)
- Eps=0.01
- Eps2=0.05
- ctr=0
- for(jj in Looprange(4,Nargs)){
- Tmp=varargin[[jj]]
- if((length(Tmp)>1)||(Tmp>1)){
- Np=Tmp
- if(length(Np)==1){
- Np=c(Np,Np)
- }
- }else{
- ctr=ctr+1
- if(ctr==1){Eps=Tmp}
- if(ctr==2){Eps2=Tmp}
- }
- }
- starttime=proc.time()
- Tmp=strsplit(CutD,'=')
- Tmp=Tmp[[1]]
- if(length(Tmp)==1){
- Eq=CutD
- }else{
- Eq=paste("(",Tmp[1],")-(",Tmp[2],")",sep="")
- }
- Eq=gsub("x","Xfunc(U,V)",Eq,fixed=TRUE)
- Eq=gsub("y","Yfunc(U,V)",Eq,fixed=TRUE)
- Eq=gsub("z","Zfunc(U,V)",Eq,fixed=TRUE)
- Tmp=paste("Eqfun<<- function(U,V){",Eq,"}",sep="") ########
- eval(parse(text=Tmp))
- Du=(URNG[2]-URNG[1])/Np[1]
- Dv=(VRNG[2]-VRNG[1])/Np[2]
- Out=list();Out2=list()
- for(J in Looprange(1,Np[2])){ #####
- Vval1=VRNG[1]+(J-1)*Dv
- Vval2=VRNG[1]+J*Dv
- for(I in Looprange(1,Np[1])){ #####
- Uval1=URNG[1]+(I-1)*Du
- Uval2=URNG[1]+I*Du
- Eval11=Eqfun(Uval1,Vval1)
- Eval12=Eqfun(Uval1,Vval2)
- Eval21=Eqfun(Uval2,Vval1)
- Eval22=Eqfun(Uval2,Vval2)
- a1=Uval1;b1=Vval1;c1=Eval11
- a2=Uval2;b2=Vval1;c2=Eval21
- a3=Uval2;b3=Vval2;c3=Eval22
- a4=Uval1;b4=Vval2;c4=Eval12
- PL=matrix(c(a1,b1,a2,b2,a3,b3,a4,b4,a1,b1),ncol=2,byrow=TRUE)
- VL=c(c1,c2,c3,c4,c1)
- QL=c()
- for(K in 1:4){
- P1=Op(K,PL); P2=Op(K+1,PL)
- M1=Op(K,VL); M2=Op(K+1,VL)
- if(abs(M1)<Eps0){
- QL=Appendrow(QL,P1)
- next
- }
- if(abs(M2)<Eps0){
-# QL=Appendrow(QL,P2)
- next
- }
- if((M1> 0) && (M2> 0)){
- next
- }
- if((M1< 0) && (M2< 0)){
- next
- }
- Tmp=1/(M1-M2)*(-M2*P1+M1*P2)
- QL=Appendrow(QL,Tmp)
- }
- if(Length(QL)==2){
- q11=QL[1,1];q12=QL[1,2];q21=QL[2,1];q22=QL[2,2]
- if(((q11==a1)&&(q21==a1))||((q11==a3)&&(q21==a3))){
- if(((q21==b1)&&(q22==b1))||((q21==b3)&&(q22==b3))){
- Out2=c(Out2,list(QL))
- }else{
- Out=c(Out,list(QL))
- }
- next
- }
- if(((q12==b1)&&(q22==b1))||((q12==b3)&&(q22==b3))){
- if(((q11==a1)&&(q21==a1))||((q11==a3)&&(q21==a3))){
- Out2=c(Out2,list(QL))
- }else{
- Out=c(Out,list(QL))
- }
- next
- }
- Out=c(Out,list(QL))
- }
- }
- }
- while(length(Out2)>0){
- tmp1=Out2[[1]]
- Out=c(Out,list(tmp1))
- Out2=Out2[-1]
- rmv=c()
- for(jj in Looprange(1,length(Out2))){
- tmp2=Out2[[jj]]
- diff1=Norm(tmp2[1,]-tmp1[1,])+Norm(tmp2[2,]-tmp1[2,])
- diff2=Norm(tmp2[1,]-tmp1[2,])+Norm(tmp2[2,]-tmp1[1,])
- if((diff1<Eps0)||(diff2<Eps0)){
- rmv=c(rmv,jj)
- next
- }
- }
- Out2=Out2[-rmv]
- }
- Out=Connectseg(Out,Eps)
- Tmp1=Out
- Out=list()
- for(ii in Looprange(1,length(Tmp1))){
- Tmp2=Op(ii,Tmp1)
- Tmp3=c()
- for(jj in Looprange(1,Length(Tmp2))){
- Tmp=Op(jj,Tmp2)
- Tmp=XYZfunc(Tmp[1],Tmp[2])
- if(Length(Tmp3)>0){
- if(Norm(Op(Length(Tmp3),Tmp3)-Tmp)<Eps){next}
- }
- Tmp3=Appendrow(Tmp3,Tmp)
- }
- Out=c(Out,list(Tmp3))
- }
- Out=Crv3onsfparadata(Out,Fbdy3,Fd,Np,Eps,Eps2)
- return(Out)
-}
diff --git a/texmf-dist/scripts/ketcindy/ketlib/ketpicR/ketpic5_2_4_rep2e.r b/texmf-dist/scripts/ketcindy/ketlib/ketpicR/ketpic5_2_4_rep2e.r
deleted file mode 100644
index 37033948..00000000
--- a/texmf-dist/scripts/ketcindy/ketlib/ketpicR/ketpic5_2_4_rep2e.r
+++ /dev/null
@@ -1,580 +0,0 @@
-# Copyright (C) 2014 Setsuo Takato, KETCindy Japan project team
-#
-#This program is free software: you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation; either version 3 of the License, or
-# (at your option) any later version.
-#
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with this program. If not, see <http://www.gnu.org/licenses/>
-
-
-#########################################
-
-ThisVersion<- "2ev5_2_3(17.10.28)"
-
-# 2017.10.28
-# Drwpt debugged ( Flattenlist )
-# 2017.10.07
-#
-
-#############################################
-
-Dottedline<- function(...)
-{
- varargin <- list(...)
- Nall <- length(varargin)
- Nagasa <- 0.1
- Ookisa <- PenThick*2 #17.10.07
- I <- Nall
- Tmp <- varargin[[I]]
- while (mode(Tmp)=="numeric" && length(Tmp)==1 ) {
- I <- I-1
- Tmp <- varargin[[I]]
- }
- if (I==Nall-1) {
- Nagasa<-Nagasa*varargin[[Nall]]
- Nall <- Nall-1
- }
- if (I==Nall-2) {
- Nagasa <- Nagasa*varargin[[Nall-1]]
- Ookisa <- round(Ookisa*varargin[[Nall]])
- Nall <- Nall-2
- }
- Nagasa <- 1000/2.54/MilliIn*Nagasa
- Ra=Ookisa/MilliIn
- for (N in 1:Nall) {
- Pdata <- varargin[[N]]
- if (mode(Pdata)=="numeric") {
- Pdata <- list(Pdata)
- }
- for (II in 1:length(Pdata)) {
- Clist <- MakeCurves(Op(II,Pdata))
- DinM <- Dataindex(Clist)
- Mojisu=0
- for (n in Looprange(1,Nrow(DinM))) {
- Tmp <- DinM[n,]
- Data <- Clist[Tmp[1]:Tmp[2],]
- Len <- 0
- Lenlist <- c(0)
- for (I in Looprange(2,Nrow(Data))) {
- Len <- Len+Norm(Data[I,]-Data[I-1,])
- Lenlist <- c(Lenlist,Len)
- }
- Lenall <- Lenlist[length(Lenlist)]
- if (Lenall==0) {
- next
- }
- Naga <- Nagasa
- Nten <- round(Lenall/Naga)+1
- if (Nten > 1) {
- Seg <- Lenall/(Nten-1)
- }
- else {
- Seg <- Lenall
- }
- Eps <- 10^(-6)*Seg
- PPd<-c()
- Hajime <- 1
- for (I in Looprange(0,Nten-1)) {
- Len <- Seg*I
- if (I>0) {
- J <- Hajime
- while( Len>=Lenlist[J]+Eps) {
- J <- J+1
- }
- Hajime <- J-1
- }
- T <- (Len-Lenlist[Hajime])/
- (Lenlist[Hajime+1]-Lenlist[Hajime])
- P <- Data[Hajime,]+T*(Data[Hajime+1,]-Data[Hajime,])
- PPd<-Appendrow(PPd,P)
- if (I==Nten-1) {
- if (Norm(P-Data[1,])<Eps) {
- next
- }
- }
- }
- for (I in Looprange(1,Nrow(PPd))){
- P<- Op(I,PPd)
- if (Nrow(PPd)==1){
- V<- c(1,0)
- }
- else if (I==1){
- Tmp<- Op(I+1,PPd)-P
- V<- 1/Norm(Tmp)*Tmp
- }
- else if (I==Nrow(PPd)){
- Tmp<- P-Op(I-1,PPd)
- V<- 1/Norm(Tmp)*Tmp
- }
- else{
- Tmp1<- Op(I+1,PPd)-P
- Tmp2<- P-Op(I-1,PPd)
- Tmp3<-1/Norm(Tmp1)*Tmp1+1/Norm(Tmp2)*Tmp2
- V<- 1/Norm(Tmp3)*Tmp3
- }
- X=sprintf('%5.5f',P[1])
- Y=sprintf('%5.5f',P[2])
- Str=paste('\\put(',X,',',Y,'){\\circle*{',sprintf('%6.6f',Ra),'}}',sep="")
- cat(Str,file=Wfile,append=TRUE)
- Mojisu=Mojisu+nchar(Str)
- if(Mojisu>80){
- cat("\n",file=Wfile,append=TRUE)
- Mojisu=0
- }
- }
- }
- }
- if(Mojisu>0){
- cat("\n",file=Wfile,append=TRUE)
- }
- }
- Tmp<-PenThick/PenThickInit
- Setpen(Tmp)
-}
-
-
-###########################################
-
-Drwline<-function(...)
-{
- varargin<-list(...)
- Nall<-length(varargin)
- Thick<-0
- Tmp<-varargin[[Nall]]
- if (mode(Tmp)=="numeric" && length(Tmp)==1){
- Setpen(Tmp)
- Nall<-Nall-1
- }
- for (N in 1:Nall){
- Pdata<-varargin[[N]]
- if (length(Pdata)==0) next
- if (mode(Pdata)!="list") Pdata<-list(Pdata)
- while(Mixtype(Pdata)==3){
- Tmp1<- list()
- for(II in Looprange(1,length(Pdata))){
- Tmp1<- Mixjoin(Tmp1,Pdata[[II]])
- }
- Pdata<- Tmp1
- }
- for (II in Looprange(1,length(Pdata))){
- Clist<-MakeCurves(Pdata[[II]])
- DinM<-Dataindex(Clist)
- for (n in Looprange(1,Nrow(DinM))){
- Tmp<-DinM[n,]
- Data<-Clist[Tmp[1]:Tmp[2],]
- Mojisu<-0
- for (I in Looprange(1,Nrow(Data))){
- Tmp<-Data[I,]
- X=sprintf('%5.5f',Tmp[1])
- Y=sprintf('%5.5f',Tmp[2])
- Pt=paste('(',X,',',Y,')',sep="")
- if(I==1){
- Str=paste('\\polyline',Pt,sep="")
- }else{
- Str=Pt
- }
- cat(Str,file=Wfile,append=TRUE)
- Mojisu<-Mojisu+nchar(Str)
- if (Mojisu>80){
- cat("%\n",file=Wfile,append=TRUE)
- Mojisu<-0
- }
- }
- if (Mojisu!=0){
- cat("%\n",file=Wfile,append=TRUE)
- }
- cat("%\n",file=Wfile,append=TRUE)
- }
- }
- }
- if (Thick>0){
- Tmp<-PenThick/PenThickInit
- Setpen(Tmp)
- }
-}
-
-###########################################
-
-Drwpt<-function(...)
-{
- varargin<-list(...)
- Nargs<-length(varargin)
- All=Nargs
- if (TenSize>TenSizeInit){
- N<- round(6*sqrt(TenSize/TenSizeInit))
- }
- else{
- N<-4
- }
- Tmp<- varargin[[All]]
- Iro=c(0,0,0,1)
- Iroflg=0
- if(is.character(Tmp)){
- Iro=Ratiocmyk(Tmp)
- Iroflg=1
- All=All-1
- }
- Tmp<- varargin[[All]]
- if (mode(Tmp)=="numeric"){
- if (length(Tmp)>1){
- Kosa<- 1; All<- Nargs
- }
- else{
- Kosa<- Tmp; All<- All-1
- }
- }
- else if (mode(Tmp)=="list"){
- Kosa<- 1; All<- Nargs
- }
- Ra=TenSize*1000/2.54/MilliIn
- if(Iroflg>0){
- Str='{\\color[cmyk]{'
- for(J in 1:4){
- Str=paste(Str,as.character(Kosa*Iro[J]),sep="")
- if(J<4){
- Str=paste(Str,',',sep="")
- }
- }
- Str=paste(Str,'}%',sep="")
- cat(Str,file=Wfile,append=TRUE)
- }
-
-# CL<-c()
-# for (J in 0:N){
-# Tmp<- TenSize*0.5*1000/2.54/MilliIn
-# Tmp<- Tmp*c(cos(pi/4+J*2*pi/N),sin(pi/4+J*2*pi/N))
-# CL<- append(CL,Tmp)
-# }
-# CL<- matrix(CL,nrow=2)
-# CL<- t(CL)
- Mojisu=0
- for (II in Looprange(1,All)){
- MS<- varargin[[II]]
- MS=Flattenlist(MS) #17.10.28
- if (mode(MS)=="numeric"){
- MS<- list(MS)
- }
- for (I in Looprange(1,length(MS))){
- P<- MS[[I]]
- if (InWindow(P)!="i") next
- P<- Doscaling(P)
- X=sprintf('%5.5f',P[1])
- Y=sprintf('%5.5f',P[2])
- Str=paste('\\put(',X,',',Y,'){\\circle*{',sprintf('%6.6f',Ra),'}}',sep="")
- cat(Str,file=Wfile,append=TRUE)
- Mojisu=Mojisu+nchar(Str)
- if(Mojisu>80){
- cat("\n",file=Wfile,append=TRUE)
- Mojisu=0
- }
- }
- }
- Str="%"
- if(Iroflg>0){
- Str='}%'
- }
- if(Mojisu>0){
- Str=paste('\n',Str,'\n',sep="")
- }else{
- Fmt=paste(Str,'\n',sep="")
- }
- cat(Str,file=Wfile,append=TRUE)
-}
-
-# PL<-c()
-# for (J in 0:N){
-# PL<- c(PL,P+CL[J+1,])
-# }
-# PL<-matrix(PL,nrow=2)
-# PL<-t(PL)
-# Mojisu<-0
-# for (J in 1:Nrow(PL)){
-# Q<- PL[J,]
-# X<- as.character(round(MilliIn*Q[1]))
-# Y<- as.character(-round(MilliIn*Q[2]))
-# Str<- paste("\\special{pa ",X," ",Y,"}",sep="")
-# cat(Str,file=Wfile,append=TRUE)
-# Mojisu<- Mojisu+nchar(Str)
-# if (Mojisu>80){
-# cat("#\n",file=Wfile,append=TRUE)
-# }
-# Mojisu=0
-# }
-# Str1<- paste("\\special{sh ",as.character(Kosa),"}",sep="")
-# Str2<- "\\special{fp}%\n"
-# cat(Str1,file=Wfile,append=TRUE)
-# cat(Str2,file=Wfile,append=TRUE)
-# }
-# }
-#}
-
-######################################
-
-Makehasen<- function(Figdata,Sen,Gap,Ptn)
-{
- Eps<- 10.0^(-6)
- Clist<- MakeCurves(Figdata)
- DinM<- Dataindex(Clist)
- for (N in Looprange(1,Nrow(DinM))){
- Tmp<- DinM[N,]
- Data<- Clist[Tmp[1]:Tmp[2],]
- Dtall<- Nrow(Data)
- Len<- 0
- Lenlist<- c(0)
- for (I in Looprange(2,Dtall)){
- Len<- Len+Norm(Data[I,]-Data[I-1,])
- Lenlist<- c(Lenlist,Len)
- }
- Lenall<- Lenlist[Dtall]
- if (Lenall==0){
- next
- }
- Kari<- (Sen+Gap)*0.1
- Naga<- Sen*0.1
- Tobi<- Gap*0.1
- if (Norm(Data[1,]-Data[Dtall,])<Eps){
- Nsen<- max(ceiling(Lenall/Kari),3)
- SegUnit<- Lenall/Nsen
- Naga<- SegUnit*Sen/(Sen+Gap)
- Tobi<- SegUnit*Gap/(Sen+Gap)
- SegList<- c(seq(0,(Nsen-1)*SegUnit,by=SegUnit))
- }
- else{
- if (Ptn==0){
- Nsen<- max(ceiling((Lenall+Tobi)/Kari),3)
- SegUnit<- Lenall*(Sen+Gap)/(Nsen*Sen+(Nsen-1)*Gap)
- Naga<- SegUnit*Sen/(Sen+Gap)
- Tobi<- SegUnit*Gap/(Sen+Gap)
- SegList<- c(seq(0,(Nsen-1)*SegUnit,by=SegUnit))
- }
- else{
- Nsen<- max(ceiling((Lenall+Naga)/Kari),3)
- SegUnit<- Lenall*(Sen+Gap)/((Nsen-1)*Sen+Nsen*Gap)
- Naga<- SegUnit*Sen/(Sen+Gap)
- Tobi<- SegUnit*Gap/(Sen+Gap)
- SegList<- c(seq(Tobi,Tobi+(Nsen-2)*SegUnit,by=SegUnit))
- }
- }
- Hajime<- 1; Owari<- 1
- Mojisu<- 0
- for (I in Looprange(1,length(SegList))){
- Len<- SegList[I]
- J<- Owari
- while (Len>=Lenlist[J]-Eps){
- if (J==Dtall){
- break
- }
- J<- J+1
- }
- Hajime<- J-1
- J<- Hajime
- while (Len+Naga>Lenlist[J]-Eps){
- if (J==Dtall){
- break
- }
- J<- J+1
- }
- Owari<- J-1
- T<- (Len-Lenlist[Hajime])
- T<- T/(Lenlist[Hajime+1]-Lenlist[Hajime])
- P<- Data[Hajime,]+T*(Data[Hajime+1,]-Data[Hajime,])
- X0=sprintf('%5.5f',P[1])
- Y0=sprintf('%5.5f',P[2])
- Pt0=paste('(',X0,',',Y0,')',sep="")
- Str=paste('\\polyline',Pt0,sep="")
- cat(Str,file=Wfile,append=TRUE)
- Mojisu<- Mojisu+nchar(Str)
- for (J in Looprange(Hajime+1,Owari)){
- P=Data[J,]
- X=sprintf('%5.5f',P[1])
- Y=sprintf('%5.5f',P[2])
- Pt=paste('(',X,',',Y,')',sep="")
- Str=Pt
- cat(Str,file=Wfile,append=TRUE)
- Pt0=Pt
- Mojisu=Mojisu+nchar(Str)
- }
- T<- (Len+Naga-Lenlist[Owari])
- T<- T/(Lenlist[Owari+1]-Lenlist[Owari])
- P<- Data[Owari,]+T*(Data[Owari+1,]-Data[Owari,])
- X=sprintf('%5.5f',P[1])
- Y=sprintf('%5.5f',P[2])
- Pt=paste('(',X,',',Y,')',sep="")
- Str=Pt
- cat(Str,file=Wfile,append=TRUE)
- Mojisu<- Mojisu+nchar(Str)
- if (Mojisu>80){
- cat("%\n",file=Wfile,append=TRUE)
- Mojisu<- 0
- }
- }
- }
- cat("%\n%\n",file=Wfile,append=TRUE);
-}
-
-#########################################
-
-Beginpicture<-function(ul)
-{ ## Scaling is implemented
- Tmp<- Doscaling(c(XMIN,YMIN))
- Xm<- Tmp[1]
- Ym<- Tmp[2]
- Tmp<- Doscaling(c(XMAX,YMAX))
- XM<- Tmp[1]
- YM<- Tmp[2]
- Dx<- XM-Xm
- Dy<- YM-Ym
- Sym<-".0123456789 +-*/"
- SL<-Sym
- OL<-"+-*/"
- if (ul!=""){
- ULEN<<-ul;
- }
- Is<-1;
- VL<-"";
- Ucode<-ULEN
- for (I in Looprange(1,nchar(Ucode))){
- C<-substring(Ucode,I,I);
- if (length(grep(C,SL,fixed=TRUE))>0){
- if (length(grep(C,OL,fixed=TRUE))>0){
- Tmp<-substring(Ucode,Is,I-1);
- Str<-paste(VL,Tmp,C,sep="")
- VL<-Str
- Is<-I+1;
- }
- }
- else{
- Unit<-substring(Ucode,I,I+1);
- Str<-substring(Ucode,Is,I-1);
- VL<-paste(VL,Str,sep="")
- break;
- }
- }
- Valu<-eval(parse(text=VL));
- Str<-as.character(Valu);
- ULEN<<- paste(Str,Unit,sep="");
- if (Unit=="cm") MilliIn<<-1000/2.54*Valu
- if (Unit=="mm") MilliIn<<-1000/2.54*Valu/10
- if (Unit=="in") MilliIn<<-1000*Valu
- if (Unit=="pt") MilliIn<<-1000/72.27*Valu
- if (Unit=="pc") MilliIn<<-1000/6.022*Valu
- if (Unit=="bp") MilliIn<<-1000/72*Valu
- if (Unit=="dd2") MilliIn<<-1000/1238/1157/72.27*Valu
- if (Unit=="cc") MilliIn<<-1000/1238/1157/72.27*12*Valu;
- if (Unit=="sp") MilliIn<<-1000/72.27/65536*Valu/10
- MARKLEN<<- MARKLENNow*1000/2.54/MilliIn;
- Str<-paste("{\\unitlength=",ULEN,"%\n",sep="");
- cat(Str,file=Wfile,append=TRUE);
- cat("\\begin{picture}%\n",file=Wfile,append=TRUE);
- Str<-"(";
- Tmp<-as.character(round(Dx,digits=6));
- Str<-paste(Str,Tmp,",",sep="");
- Tmp<-as.character(round(Dy,digits=6));
- Str<-paste(Str,Tmp,")(",sep="");
- Tmp<-as.character(round(Xm,digits=6));
- Str<-paste(Str,Tmp,",",sep="");
- Tmp<-as.character(round(Ym,digits=6));
- Str<-paste(Str,Tmp,")%\n",sep="");
- cat(Str,file=Wfile,append=TRUE);
- Str=paste('\\linethickness{',as.character(PenThickInit/1000),'in}%',sep="")
- cat(Str,file=Wfile,append=TRUE)
- cat("%\n",file=Wfile,append=TRUE)
-}
-
-#########################################
-
-Setpen<-function(Width)
-{
- PenThick<<-round(PenThickInit*Width)
- Str=paste('\\linethickness{',as.character(PenThick/1000),'in}%',sep="")
- cat(Str,file=Wfile,append=TRUE)
- cat("%\n",file=Wfile,append=TRUE)
-}
-
-#########################################
-
-Shade<- function(...)
-{ ## Scaling is implemented
- varargin<- list(...)
- Nargs<- length(varargin)
- Iroflg=0
- if(Nargs>1){
- Iro=varargin[[Nargs]]
- if(is.character(Iro)){
- Iroflg=1
- if(length(grep("{",Iro,fixed=TRUE))>0){
- Str=paste("{\\color",Iro,sep="")
- }
- else{
- Str=paste("{\\color{",Iro,"}",sep="")
- }
- }
- else{
- if(length(Iro)==1){
- Kosa=Iro
- }
- else{
- Iroflg=1
- if(length(Iro)==4){
- Str="{\\color[cmyk]{"
- }
- else{
- if(length(Iro)==3){
- Str="{\\color[rgb]{"
- }
- }
- for(J in 1:length(Iro)){
- Str=paste(Str,as.character(Iro[J]),sep="")
- if(J<length(Iro)){
- Str=paste(Str,",")
- }
- }
- Str=paste(Str,"}")
- }
- }
- if(Iroflg==1){
- Str=paste(Str,"%\n",sep="")
- cat(Str,file=Wfile,append=TRUE)
- }
- }
- Mojisu=0
- Tmp=varargin[[1]]
- Data=Kyoukai(Tmp)
- for (I in Looprange(1, length(Data))){
- PL<- Op(I,Data)
- Mojisu<- 0
- for (J in 1:Nrow(PL)){
- P<- Doscaling(Op(J,PL))
- X=sprintf('%5.5f',P[1])
- Y=sprintf('%5.5f',P[2])
- Pt=paste('(',X,',',Y,')',sep="")
- if(J==1){
- Str=paste('\\polygon*',Pt,sep="")
- }else{
- Str=Pt
- }
- cat(Str,file=Wfile,append=TRUE)
- Mojisu<- Mojisu+nchar(Str)
- if (Mojisu>80){
- cat("%\n",file=Wfile,append=TRUE)
- Mojisu<- 0
- }
- }
- }
- if(Iroflg==1){
- Str='}%'
- if(Mojisu>0){
- Str=paste('\n',Str,'\n',sep="")
- }else{
- Str=paste(Str,'\n')
- }
- cat(Str,file=Wfile,append=TRUE)
- }
-}
diff --git a/texmf-dist/scripts/ketcindy/ketlib/ketpiccurrent.r b/texmf-dist/scripts/ketcindy/ketlib/ketpiccurrent.r
deleted file mode 100644
index dc54682b..00000000
--- a/texmf-dist/scripts/ketcindy/ketlib/ketpiccurrent.r
+++ /dev/null
@@ -1,14614 +0,0 @@
-# Copyright (C) 2014 Setsuo Takato, KETCindy Japan project team
-#
-#This program is free software: you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation; either version 3 of the License, or
-# (at your option) any later version.
-#
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with this program. If not, see <http://www.gnu.org/licenses/>
-
-
-#########################################
-
-ThisVersion<- "KeTpic for R v5_2_4(20180327)"
-
-print(ThisVersion)
-
-# 20180402
-# Implicitplot greatly changed
-# 20180327
-# Kyoukai debugged
-# 20180317
-# IntersectcurvesPp changed and debugged
-# Intersectpartseg changed (Eps00 )
-# Collectsameseg added, Collectnear commented out
-# 20180306
-# PthiddenQ,Meetpoints,Sfcutparadata changed (to avoid duplications )
-# Sfbdparadata changed ( for near points in Implicitdata )
-# Envelopedata, Evlpfun added
-# 20180305
-# (for surface drwaings ) Eps => Eps1
-# 2018.02.27
-# Nohiddenpara2,Crvsfparadara debugged (Eps=>Eps0)
-# 2018.02.26
-# Sfcutparadata changed
-# Partcrv3 debugged
-# Projcurve rewritten
-# Nohiddenparadata debugged
-# PthiddenQ debugged
-# 2018.02.24
-# Sfcutdata added ( for functions )
-# Meetpoints debugged (case Norm(PtB-PtA)<Eps0)
-# 2018.02.23
-# Makevaltable2 added ( for functions )
-# 2018.02.23
-# Crvonsfparadata,Crv3onsfparadata added
-# Wireparadata added
-# 2018.02.22
-# PthiddenQ,Nohiddenpara2 changed (Eps2)
-# 2018.02.21
-# PthiddenQ,Meetpoints debugged
-# Crvsfparadata debugged (OTHERPARTITION)
-# Partitionseg debugged (for non-list) and changed (Ns=0)
-# Intersectcrvsf added
-# 2018.02.19
-# Groupnearpt added
-# Collectnear debugged
-# Meetpoints,PthiddenQ debugged and changed (Groupnearpt used )
-# Parapt changed (for point list )
-# Partitionseg changed (remove close value )
-# Fullformfunc changed (Initialization of ADDPOINT)
-# Addpoints added
-# 2018.02.18
-# Projpara debugged ( for empty data, Mix replace )
-# WriteOutData debugged (for emply data )
-# Sfbdparadata,Cuspparadata debugged
-# Meetpoints replaced
-# 2018.02.17
-# PthiddenQ replaced
-# 2018.02.15
-# Cancoordpara debugged (X=-... )
-# 2018.02.14
-# Paramoncrv,Pointoncrv renamed to ...curve
-# 2018.02.12
-# Nohiddenpara2 debugged ( CUSPPT should be a list )
-# Dropnumlistcrv changed (Eps)
-# 2018.02.11
-# Paramocrv debugged ( case N=Length(PtL) )
-# Sfbdparadata, Borderparadata, Makexybdy, Partitionseg,
-# Evlptablepara, Fullformfunc, Dropnumlistcrv, Cuspsplitpara,
-# PthiddenQ, Nohiddenpara2 added
-# Crvsfparadata, Meetpoints, Clipdomain added
-# 2018.02.10
-# Partcrv3 debugged
-# 2018.02.09
-# Ptstart,Ptend changed ( for the case fig is empty)
-# Norm changed (Dotprod used )
-# 2018.02.07
-# Collectnear debugged (Looprange )
-# Intersectcurves debugged (sum)
-# 2018.02.06
-# Kukeiiwake debugged ( ParamonCurve -> Paramoncrv )
-# 2018.02.05
-# Dotprod changed ( crossprod not used )
-# Intersectpartseg changed ( case of length of result =1)
-# 2018.02.04
-# Diff added ( func, withvar, (varnamevalue1,... ))
-# Funvalue added ( for an expression )
-# 2018.02.02
-# Enclosing2 changed ( for distant curves, startpt option removed )
-# 2018.02.01
-# Intersectline,Intersectseg,...,Intersectcuves added
-# Quicksort added
-# Enclosing2 added (incomplete)
-# 2018.01.29
-# Length added
-# 2017.12.24
-# Objpolyhedron added
-# 2017.12.23
-# Objsymb, symb3data added
-# Objrecs, Objpolygon debugged
-# Objthicksurf added
-# 2017.12.22
-# Openobj,Closeobj,Writeobjpoint,Printobjstr,Objname,Objsurf added
-# Crossprod added
-# Objjoin, Objcurve, Objrecs, Objpolygon, Objsymb added
-# Spacecurve debugged
-# 2017.12.17
-# Setunitlen debugged ( MEMORI )
-# 2017.12.13
-# ReadOutData debugged
-# 2017.12.11
-# Enclosing debugged ( appendrow -> Appendrow )
-# 2017.11.29
-# Anglemark, Arrowhead, Ovaldata debugged ( Circldeta included )
-# 2017.11.27
-# Anglemark changed ( Scilab 16.12.29)
-# Plotdata,Paramplot,Spacecurve changed ( Scilab 16.12.13)
-# Enclosing changed ( Scilab 16.10.09)
-# Arrowhead,Arrowline changed ( Scilab 15.06.11)
-# Definecolor added ( Scilab 15.05.04)
-# 2017.11.26
-# Exprrot, Letterrot debugged ( `)
-# 2017.11.24
-# Deqplot debugged (Looprange)
-# 2017.11.20
-# InWindow debugged (for length=1)
-# 2017.10.28
-# Openfile changed (Creator)
-# 2017.10.23
-# ReadOutData greatly changed
-# 2017.10.11
-# Drwpt debugged (Flattenlist )
-# 2017.10.08
-# Bezier debugged ( Num )
-# 2017.10.07
-# ReadOutData debugged ( for null data )
-# 2017.10.06
-# Deqdata, Deqplot added
-# Connectseg remade(bug)
-# 2017.09.30
-# Bezierpt, Bezier added
-# 2017.09.29
-# Ptcrv debugged
-# 2017.09.28
-# Openfile changed
-# 2017.09.24
-# Circledata debugged
-# Kyoukai changed (Eps)
-# Shade updated
-# 2017.09.22
-# Setcolor changed
-# Plotdata,Paramplot,Spacecurve changed (N-1 -> N)
-# 2017.09.21
-# Shade changed (Sci 17.01.09)
-# 2017.09.17
-# Ovaldata,Assignadd changed
-# Dist added
-# Cicledata changed
-# Bowdata debugged (Circledata,etc)
-
-# 2015.11.05
-# WriteOutData changed
-
-# 2015.10.29
-# WriteOutData changed ( endmark //// )
-
-# 2015.10.24
-# ReadOutData changed ( in case of listlength=1 )
-
-# 2014.12.23
-# ReadOutData added
-
-# 2014.12.17
-# WriteOutData added
-
-# 2014.0905
-# Unscaling debugged MARKLENI => MARKLEN
-# 2014.03.31
-# PhHiddenData added
-# 2014.03.30
-# Facesdata changed ( for Hiddendata )
-# 2014.03.23
-# MARKLEN separated, Rotate3data debugged
-
-# 2013.12.19
-# Openfile, Closefile, Bowname, Bownamerot
-
-# 2013.11.13
-# Arrowhead, Arrowheaddata
-
-# 2013.08.07
-# Cancoordpara added
-
-# 2013.08.07
-# Integrate added
-
-# 2013.05.20
-# Openfile changed
-
-# 2013.05.03
-# Tabledata, Pointdata changed
-# Dividetable, Partframe added
-
-# 2013.02.10
-# Ketinit added
-
-# 2012.01.07
-# Arrowline, Arrowhead ( Cut implemented )
-
-# 2011.12.18
-# Framedata ( compliant for list )
-
-# 2011.12.12
-# Skeletonparadata... ( Flattellist used)
-
-# 2011.11.27
-# drwboxframe
-
-# 2011.11.07
-# metacommands added
-
-# 2011.11.02
-# Joingraphics ( for list structure )
-
-# 2011.08.24
-# Setcolor ( c(1,0,0,0.5) etc )
-# Rotate3data ( Point is available )
-
-# 2011.07.19
-# Drwline, Letter, Expr
-# Drwboxplot( etc ) min,max => outliners
-# Drwline ( unfinished in the case of "integer" )
-
-# 2011.06.25
-# joincrvs debugged
-
-# synchro with ketpict2e
-
-# 2011.06.01
-# Bowdata debugged
-
-#2011.05.28
-# Ratiocmyk, Setcolor ( new )
-
-#2011.04.28
-# Htickmark, Vtickmark debugged
-
-#2011.03.08
-# Drwboxframe debugged
-# Putrow, Putrowexpr debugged (Dpos )
-
-#2011.03.02
-# Tabledata ( index of hline ), PutcoL, PutcoLexpr ( "r",...) debugged
-# Texcom changed ( // => backslash )
-
-#2011.01.07
-# Dividegraphics, Splinedat are changed significantly
-# Readtextdata is changed
-
-#2011.01.04
-# Derivative, Integrate are added
-
-#2010.12.07
-# Translatedata, Scaledata, Reflectdata changed ( efficient for vector )
-# Rotatedata changed ( deg : logical )
-# HIstplotdata, Drwhistplot ( type => freq , fpplot (added) )
-
-# 2010.12.04
-# WindispT changed ( tickmark )
-# Lineplot changed ( mag=> length )
-# Plotdata debugged ( 'E=fun', 'D=')
-# Enclosing changed (return PD)
-
-# 2010.12.02
-# WindispT changed
-# Makecurves debugged
-
-# 2010.11.27
-# Pointdata changed ( efficient for matrix and data.frame )
-# WindispT
-# Setwindow ( decide from data )
-# Assign debugged ( strsplit => gsub(fixed=T))
-
-# 2010.11.20
-# Flattenlist, WindispT
-# Splinedata changed( efficient for data.frame )
-
-#2010.08.19 ( Maybe not finished )
-# Stripblanks
-# Fullformfunc, Sf3data
-
-#2010.08.17
-# Phparadata, Phpersdata, Phspersdata, Phsparadata
-# Facesdata, MakeveLfaceL, Menkakusi2
-# Rotate3data
-# Skeletonpersdata, Skeletonpers3data, Makeskeletonpersdata
-# Embed
-
-#2010.08.16
-# Spacecurve changed
-# CameracoordCurve, Partcrv3, Projpers, CameraCurve,
-# Perspt, Xyzaxpersname, Invperspt, Zparapt, Zperspt
-
-# 2010.08.15
-# Phcutoffdata added
-
-# 2010.08.13
-# Phcutdata, Spacecurve debugged
-# Setangle changed
-
-# 2010.08.09
-# Spacecurve
-# Rotate3data, Rotate3pt
-# Phcutdata
-
-# 2010.08.08
-# Implementing 3d
-# Initangle, Setangle, Setpers, SetstereoL, SetstereoR
-# Mixlength
-# Spaceline, Projpara, ProjCurve, Parapt
-# Xyzax3data, Xyzaxparaname
-# Cancoordpers, Invparapt, ProjcoordCurve
-# Skeletonparadata, Skeletonpara3data, Makeskeletondata, Kukannozoki
-
-# 2010.07.25
-# Rotatedata changed
-# Drwline changed (list of list)
-
-# 2010.04.09
-# Stat package added
-
-# 2010.04.02
-# Putcolexpr, Putrowexpr
-
-# 2010.04.02
-
-# Windisp, Op changed
-# Execmd added
-# Texnewcmd, Texrenewcmd, Texend,
-# Texctr, Texnewctr, Texsetctr
-# Kyoukai debugged
-
-# 2010.01.20
-# Partcrv, Makeshasen : debugged
-
-# 2010.01.23
-# Ovaldata, Ovalbox added
-
-# 2010.01.27
-# Readtextdata changed
-# Putrow, PutcoL debugged ( Putcol is OK)
-
-# 2010.01.31
-# Writetextdata added
-
-# 2010.02.12
-# Texvalctr, Texthectr added
-
-# 2010.02.22
-# Execmd changed
-
-# 2010.02.23
-# Op, Windisp changed
-
-# 2010.02.24
-# Execmd changed
-
-# 2010.03.07
-# Dotfilldata (Kosa>1)
-
-# 2010.03.21
-# Mixjoin
-# Koutenlist (bug)
-
-
-# 2010.03.24
-# Arrowhead ( bug in the case of "l" )
-
-# 2010.03.28
-# Tabledata
-# Diagcelldata ( New )
-
-# 2010.03.30
-# Tabledata
-
-###########################################
-
-XMIN<- -5
-XMAX<- 5
-YMIN<- -5 ; YMAX<- 5
-ZIKU<- "line"
-ARROWSIZE<- 1
-XNAME<- "$x$"
-XPOS<- "e"
-YNAME<- "$y$"
-YPOS<- "n"
-ONAME<- "O"
-OPOS<- "sw"
-ULEN<- "1cm"
-MilliIn<- 1/2.54*1000
-PenThick<- round(MilliIn*0.02)
-PenThickInit<- PenThick
-TenSizeInit<<- 0.02*2 #17.10.07
-TenSize<- TenSizeInit
-Wfile<-""
-MEMORI<- 0.05
-MEMORIInit<- MEMORI
-MEMORINow<- MEMORI
-MARKLEN<- 0.05
-MARKLENInit<- MARKLEN
-MARKLENNow<- MARKLEN
-GENTEN<- c(0,0)
-YaSize<- 1
-YaAngle<- 18
-YaPosition<- 1
-YaThick<- 1
-YaStyle<- "tf"
-PHI<- 30*pi/180
-THETA<- 60*pi/180
-FocusPoint<- c(0,0,0)
-EyePoint<- c(5,5,5)
-ASSIGNLIST<- list("`","'")
-
-SCALEX<- 1
-SCALEY<- 1
-LOGX<- 0
-LOGY<- 0
-
-TEXFORLEVEL<- 0
-TEXFORLAST<- list()
-
-#######################
-
-Ketinit<- function(){
-XMIN<<- -5
-XMAX<<- 5
-YMIN<<- -5 ; YMAX<<- 5
-ZIKU<<- "line"
-ARROWSIZE<<- 1
-XNAME<<- "$x$"
-XPOS<<- "e"
-YNAME<<- "$y$"
-YPOS<<- "n"
-ONAME<<- "O"
-OPOS<<- "sw"
-ULEN<<- "1cm"
-MilliIn<<- 1/2.54*1000
-PenThick<<- round(MilliIn*0.02)
-PenThickInit<<- PenThick
-TenSizeInit<<- 0.02*2 #17.10.07
-TenSize<<- TenSizeInit
-Wfile<<-""
-MEMORI<<- 0.05
-MEMORIInit<<- MEMORI
-MEMORINow<<- MEMORI
-MARKLEN<<- 0.05
-MARKLENInit<<- MARKLEN
-MARKLENNow<<- MARKLEN
-GENTEN<<- c(0,0)
-YaSize<<- 1
-YaAngle<<- 18
-YaPosition<<- 1
-YaThick<<- 1
-YaStyle<<- "tf"
-PHI<<- 30*pi/180
-THETA<<- 60*pi/180
-FocusPoint<<- c(0,0,0)
-EyePoint<<- c(5,5,5)
-ASSIGNLIST<<- list("`","'")
-
-SCALEX<<- 1
-SCALEY<<- 1
-LOGX<<- 0
-LOGY<<- 0
-
-TEXFORLEVEL<<- 0
-TEXFORLAST<<- list()
-}
-
-#-------------------------------------------------------
-
-Appendrow<- function(...)
-{
- varargin<- list(...)
- Nargs<- length(varargin)
- Out<-c()
- Nc<- 0
- for (I in 1:Nargs)
- {
- Dt<- varargin[[I]]
- Nc<- max(Nc,Ncol(Dt))
- if(class(Dt)=="matrix") Dt<-as.numeric(t(Dt))
- Out<- c(Out,Dt)
- }
- if(Nc>0)
- {
- Out<-matrix(Out, nrow=Nc)
- Out<-t(Out)
- }
- else
- {
- Out<-c()
- }
- return(Out)
-}
-
-Datalength<-function(Data)
-{
- if(length(Data)==0) return(0)
- if(mode(Data)=="numeric") return(Nrow(Data))
- if(mode(Data)=="character") return(nchar(Data))
- if(mode(Data)=="list") return(length(Data))
-}
-
-Crossprod<- function (a,b){ # 17.12.22
- if(length(a)==3){
- Tmp1=a[2]*b[3]-a[3]*b[2]
- Tmp2=a[3]*b[1]-a[1]*b[3]
- Tmp3=a[1]*b[2]-a[2]*b[1]
- Out=c(Tmp1,Tmp2,Tmp3)
- }else{
- Out=a[1]*b[2]-a[2]*b[1]
- }
- return(Out)
-}
-
-Dotprod<-function(a,b){ # 18.02.05
- nn=min(length(a),length(b))
- out=0
- for(jj in Looprange(1,nn)){
- out=out+a[jj]*b[jj]
- }
- return(out)
-}
-
-Dist<- function(...) # 17.09.17
-{
- varargin<- list(...)
- a=varargin[[1]]
- if(length(varargin)==1){
- tmp=sqrt(Dotprod(a,a))
- return(as.vector(tmp))
- }
- else{
- b=varargin[[2]]
- tmp=sqrt(Dotprod(b-a,b-a))
- retun(as.vector(tmp))
- }
-}
-
-Member<-function(A,L)
-{
- N<-length(L);
- if(length(N)==0) return(FALSE)
- for (I in 1:N)
- {
- if(class(L)=="list")
- {
- Tmp<-L[[I]]
- }
- else
- {
- Tmp<-L[I]
- }
- if(mode(A)=="numeric")
- {
- if(Norm(A-Tmp)==0) return(TRUE)
- }
- else
- {
- if(A==Tmp) return(TRUE)
- }
- }
- return(FALSE)
-}
-
-Norm<-function(V)
-{
- Tmp=Dotprod(V,V) #18.02.09
-# Tmp<-as.vector(V);
-# Tmp<-crossprod(Tmp,Tmp)
- Tmp<-sqrt(Tmp)
-# as.numeric(Tmp)
-}
-
-Ncol<-function(P)
-{
- if(class(P)=="matrix") return(ncol(P))
- else return(length(P))
-}
-
-Nrow<-function(P)
-{
- if(length(P)==0) return(0)
- if(class(P)=="matrix") return(nrow(P))
- else return(1)
-}
-
-Looprange<- function(a,b)
-{
-if(a<=b) return(a:b)
-return(c())
-}
-
-Stripblanks<- function(Ch){
- Tmp<- gsub(" ","",Ch,fixed=TRUE)
- return(Tmp)
-}
-
-Quicksort<- function(seqL,key){ #18.02.01
- if(length(seqL)<2){
- out=seqL
- }else{
- tmp1=Op(1,seqL)
- tmp2=Op(2,seqL)
- if(Op(key,tmp1)>=Op(key,tmp2)){
- pivot = tmp1
- }else{
- pivot=tmp2
- }
- left = list()
- right = list()
- for(ii in 1:length(seqL)){
- tmp=Op(ii,seqL)
- if(Op(key,tmp)< Op(key,pivot)){
- left=c(left,list(tmp))
- }else{
- right=c(right,list(tmp))
- }
- }
- left = Quicksort(left,key)
- right = Quicksort(right,key)
- out=c(left,right)
- }
- return(out)
-}
-
-Derivative<- function(...)
-{
- varargin<- list(...)
- Nargs<- length(varargin)
- Fstr<- varargin[[1]]
- Vstr<- varargin[[2]]
- NvaL<- length(Vstr)
- Flg<- 0
- if(Nargs>=3){
- VaL<- varargin[[3]]
- Flg<- 1
- }
- Str<- paste("deriv(~",Fstr,",c('",Vstr[1],"'",sep="")
- for(J in Looprange(2,NvaL)){
- Str<- paste(Str,",'",Vstr[J],"'",sep="")
- }
- Str<- paste(Str,")",sep="")
- if(NvaL<=3){
- Str<- paste(Str,",func=TRUE)",sep="")
- }
- else{
- Str<- paste(Str,")",sep="")
- }
- f<- eval(parse(text=Str))
- if(Flg==1){
- if(NvaL<=3){
- if(NvaL==1){V<- f(VaL[1])}
- if(NvaL==2){V<- f(VaL[1],VaL[2])}
- if(NvaL==3){V<- f(VaL[1],VaL[2],VaL[3])}
- }
- else{
- for(J in 1:NvaL){
- Tmp<- paste(Vstr[J],'<-',as.character(VaL[J]))
- eval(parse(text=Tmp))
- }
- V<- eval(f)
- }
- Out<- attr(V,'gradient')
- Out<- Out[1,]
- }
- else{
- Out<- f
- }
- return(Out)
-}
-
-Diff<- function(...){ #18.02.04
- varargin=list(...)
- Nargs=length(varargin)
- fun=varargin[[1]]
- withvar=varargin[[2]]
- tmp=paste("f<- expression(",fun,")",sep="")
- eval(parse(text=tmp))
- nn=nchar(withvar)
- for(jj in Looprange(1,nn)){
- tmp=substring(withvar,jj,jj)
- f=D(f,tmp)
- }
- var=c()
- val=""
- for(jj in Looprange(3,Nargs)){
- tmp=strsplit(varargin[[jj]],"=")
- var=c(var,tmp[[1]][1])
- val=paste(val,tmp[[1]][2],",",sep="")
- }
- if(Length(val)>1){
- val=substring(val,1,Length(val)-1)
- f=deriv(f,var,func=TRUE)
- tmp=paste("out=f(",val,")",sep="")
- out=eval(parse(text=tmp))
- return(out[1])
- }else{
- return(f)
- }
-}
-
-Funvalue<- function(...){
- varargin=list(...)
- Nargs=length(varargin)
- df=varargin[[1]]
- var=c()
- val=""
- for(jj in Looprange(2,Nargs)){
- tmp=strsplit(varargin[[jj]],"=")
- var=c(var,tmp[[1]][1])
- val=paste(val,tmp[[1]][2],",",sep="")
- }
- val=substring(val,1,Length(val)-1)
- dfun=deriv(df,var,func=TRUE)
- tmp=paste("out=dfun(",val,")",sep="")
- eval(parse(text=tmp))
- return(out[1])
-}
-
-Integrate<- function(...)
-{
- varargin<- list(...)
- Nargs<- length(varargin)
- Fstr<- varargin[[1]]
- Vstr<- varargin[[2]]
- IntvL<- varargin[[3]]
- Str<- 'Tmpfun<- function('
- Str<- paste(Str,Vstr,'){',sep='')
- Str<- paste(Str,Fstr,'}',sep='')
- eval(parse(text=Str))
- Tmpfunv<- function(x){sapply(x,Tmpfun)}
- Out<- 0
- for (J in 1:(length(IntvL)-1)){
- Tmp<- integrate(Tmpfunv,IntvL[J],IntvL[J+1])
- Out<- Out+Tmp[[1]]
- }
- return(Out)
-}
-
-#--------------------------------------
-
-#########################
-
-Anglemark<- function(...)
-{
- varargin<- list(...)
- Nargs<- length(varargin)
- Eps<- 10^(-3)
- PA<- varargin[[1]]
- PB<- varargin[[2]]
- PC=varargin[[3]]
- r <- 0.5
- if(Nargs>=4){
- r<- varargin[[4]]*r
- }
- Out=c()
- if(r>min(Norm(PA-PB),Norm(PC-PB))){
- return(Out)
- }
- Cir<- Circledata(c(PB,r)) #17.11.29
- Tmp<- IntersectcrvsPp(Cir,Listplot(PA,PB))
- P1<- Op(2,Op(1,Tmp))
- Tmp<- IntersectcrvsPp(Cir,Listplot(PC,PB))
- P2<- Op(2,Op(1,Tmp))
- if(abs(P1-P2)<Eps){
- Out<-c()
- return(Out)
- }
- if(P1<P2-Eps){
- Out<- Partcrv(P1,P2,Cir)
- }
- else{
- Tmp<- Numptcrv(Cir)
- Tmp1<- Partcrv(P1,Tmp,Cir)
- Tmp2<- Partcrv(1,P2,Cir)
- Out<- Joincrvs(Tmp1,Tmp2)
- }
-}
-
-##############################################
-
-Arrowdata<- function(...)
-{
- varargin<- list(...)
- Nargs<- length(varargin)
- P<- varargin[[1]]
- Q<- varargin[[2]]
- R<- Q
- Futosa<- YaThick
- Ookisa<- YaSize
- Thickness<- 1
- Hiraki<- YaAngle
- Yapos<- YaPosition
- Position<- 1
- Str<- YaStyle
- Flg<- 0
- for (I in Looprange(3,Nargs)){
- Tmp<- varargin[[I]]
- if(mode(Tmp)=="numeric"){
- if(length(Tmp)>1){
- R<- Tmp
- }
- else{
- if(Flg==0){
- Ookisa<- Ookisa*Tmp
- }
- if(Flg==1){
- if(Tmp<5){
- Hiraki<- Tmp*Hiraki
- }
- else{
- Hiraki<- Tmp
- }
- }
- if(Flg==2){
- R<- P+Tmp*(Q-P)
- }
- else{
- R<- P+Yapos*(Q-P)
- }
- if(Flg==3){
- Futosa<- Tmp
- }
- Flg<- Flg+1
- }
- }
- if(mode(Tmp)=="character"){
- Tmp<- grep("=", Tmp)
- if(length(Tmp)>0){
- eval(parse(text=Tmp))
- Futosa<- Futosa*Thickness
- R<- P+Position*(Q-P)
- }
- else{
- Str<- Tmp
- }
- }
- }
- Tmp1<- Listplot(c(P,Q))
- Tmp2<- Arrowheaddata(R,Q-P,Ookisa,Hiraki,Futosa,Str)
- Out<- Joingraphics(Tmp1,Tmp2)
-}
-
-######################################
-
-# 2013.11.13 No Intersect debugged
-
-Arrowhead<-function(...)
-{ ## Scaling is implemented
- ## 12.01.08 Kirikomi
- varargin<-list(...)
- Nargs<-length(varargin)
- P<-varargin[[1]]
- Houkou<-varargin[[2]]
- Ookisa<-0.2*YaSize
- Hiraki<-YaAngle
- Futosa<-0.5*YaThick
- Cut<- 0
- Str<-YaStyle
- Flg<- 0
- for (I in Looprange(3,Nargs)){
- Tmp<-varargin[[I]]
- if(is.character(Tmp)){
- Equal<- grep("=",Tmp,fixed=TRUE) # 12.01.07 from
- if(length(Equal)>0){
- Tmp1<- strsplit(Tmp,"=",fixed=TRUE)
- Tmp2<- Tmp1[[1]]
- if(Tmp2[1]=="Cut" || Tmp2[1]=="cut"){
- Tmp<- paste("Cut=",Tmp2[2],sep="")
- eval(parse(text=Tmp))
- }
- }else{
- Str<- Tmp
- } # 12.01.07 until
- }
- if(is.numeric(Tmp) && length(Tmp)==1){
- if(Flg==0) Ookisa<-Ookisa*Tmp
- if(Flg==1){
- if(Tmp<5) Hiraki<-Tmp*Hiraki
- else Hiraki<-Tmp
- }
- if(Flg==2) Futosa<-Tmp
- Flg<-Flg+1
- }
- }
- Ookisa<-1000/2.54/MilliIn*Ookisa
- Theta<-Hiraki*pi/180
- if(Nrow(Houkou)>1){
- P<- Doscaling(P)
- Houkou<- Doscaling(Houkou)
- Tmp<-Nearestpt(P,Houkou)
- A<-Tmp[[1]]
- I<-floor(Tmp[[2]])
- G<-Circledata(c(P,Ookisa*cos(Theta)),N=10) #17.11.29
- Flg<- 0 # 13.11.13
- JL<-seq(I,1,by=-1)
- for (J in JL){
- B<-Ptcrv(J,Houkou)
- Tmp<-IntersectcrvsPp(Listplot(list(A,B)),G)
- if(length(Tmp)>0){
- Flg<- 1
- break
- }
- A<-B
- }
- if(Flg==0){ # 13.11.13
- print("Arrowhead may be too large (no intersect)")
- return(P)
- }
- Houkou<-P-Op(1,Tmp[[1]])
- Houkou<- Unscaling(Houkou)
- P<- Unscaling(P)
- }
- P<- Doscaling(P)
- Houkou<- Doscaling(Houkou)
- Ev<--1/Norm(Houkou)*Houkou
- Nv<-c(-Ev[2],Ev[1])
- if(length(grep("c",Str))>0){
- P<-P-0.5*Ookisa*cos(Theta)*Ev
- }
- if(length(grep("b",Str))>0){
- P<-P-Ookisa*cos(Theta)*Ev
- }
- A<-P+Ookisa*cos(Theta)*Ev+Ookisa*sin(Theta)*Nv
- B<-P+Ookisa*cos(Theta)*Ev-Ookisa*sin(Theta)*Nv
- if(length(grep("l",Str))>0){
- Tmp<-Listplot(list(A,P,B))
- Tmp1<- Unscaling(Tmp)
- Drwline(Tmp1,Futosa)
- }
- else{
- C<- P+(1-Cut)*((A+B)/2-P) # 12.01.07
- Tmp<- Listplot(list(A,P,B,C,A)) # 12.01.07
- Tmp1<- Unscaling(Tmp)
- Shade(Tmp1)
- Tmp=Listplot(c(A,P,B,C,A,P)) # 15.6.20
- Tmp1=Unscaling(Tmp)
- Drwline(Tmp1,0.1) # 15.06.11, 15.06.14
- }
-}
-
-############################################
-
-# 2013.11.13 No intersect debugged
-
-Arrowheaddata<- function(...)
-{ ## Scaling is implemented
- varargin<- list(...)
- Nargs<- length(varargin)
- P<- varargin[[1]]
- Houkou<- varargin[[2]]
- Ookisa<- 0.2*YaSize
- Hiraki<- YaAngle
- Futosa<- 0
- Thickness<- 1
- Str<- YaStyle
- Flg<- 0
- for (I in Looprange(3,Nargs)){
- Tmp<-varargin[[I]]
- if(mode(Tmp)=="character"){
- Tmp1<-grep("=",Tmp)
- if(length(Tmp1)>0){
- eval(parse(text=Tmp))
- Futosa<- Thickness
- }
- else{
- Str<- Tmp
- }
- }
- if(mode(Tmp)=="numeric" && length(Tmp)==1){
- if(Flg==0) Ookisa<-Ookisa*Tmp
- if(Flg==1){
- if(Tmp<5) Hiraki<-Tmp*Hiraki
- else Hiraki<-Tmp
- }
- if(Flg==2) Futosa<-Tmp
- Flg<-Flg+1
- }
- }
- Theta<- Hiraki*pi/180
- if(Nrow(Houkou)>1){
- P<- Doscaling(P)
- Houkou<- Doscaling(Houkou)
- Tmp<-Nearestpt(P,Houkou)
- A<-Tmp[[1]]
- I<-floor(Tmp[[2]])
- G<-Circledata(c(P,Ookisa*cos(Theta)),N=10) #17.11.29
- Flg<- 0 # 13.11.13
- JL<-seq(I,1,by=-1)
- for (J in JL){
- B<- Ptcrv(J,Houkou)
- Tmp<- IntersectcrvsPp(Listplot(list(A,B)),G)
- if(length(Tmp)>0){
- Flg<- 1
- break
- }
- A<-B
- }
- if(Flg==0){ # 13.11.13
- print("Arrowhead may be too large (no intersect)")
- return(P)
- }
- Houkou<-P-Op(1,Tmp[[1]])
- Houkou<- Unscaling(Houkou)
- P<- Unscaling(P)
- }
- P<- Doscaling(P)
- Houkou<- Doscaling(Houkou)
- Ev<- -1/Norm(Houkou)*Houkou
- Nv<- c(-Ev[2],Ev[1])
- if(length(grep("c",Str))>0){
- P<-P-0.5*Ookisa*cos(Theta)*Ev
- }
- if(length(grep("b",Str))>0){
- P<-P-Ookisa*cos(Theta)*Ev
- }
- A<-P+Ookisa*cos(Theta)*Ev+Ookisa*sin(Theta)*Nv
- B<-P+Ookisa*cos(Theta)*Ev-Ookisa*sin(Theta)*Nv
- Tmp<- Listplot(A,P,B)
- Out<- Unscaling(Tmp)
- return(Out)
-}
-
-##########################################
-
-Arrowline<- function(...)
-{ # 12.01.07 kirikomi
- varargin<- list(...)
- Nargs<- length(varargin)
- P<- varargin[[1]]
- Q<- varargin[[2]]
- Futosa<- YaThick
- Ookisa<- YaSize
- Hiraki<- YaAngle
- Yapos<- YaPosition
- Cutstr<- "Cut=0"
- Str<- YaStyle
- Flg<- 0
- for (I in Looprange(3,Nargs)){
- Tmp<- varargin[[I]]
- if(is.character(Tmp)){
- Equal<- grep("=",Tmp,fixed=TRUE) # 12.01.07 from
- if(length(Equal)>0){
- Tmp1<- strsplit(Tmp,"=")
- Tmp2<- Tmp1[[1]]
- if(Tmp2[1]=="Cut" || Tmp2[1]=="cut"){
- Tmp<- paste("Cut=", Tmp2[2],sep="")
- Cutstr<- Tmp
- }
- }
- else{
- Str<- Tmp
- } # 12.01.07 until
- }
- if(is.numeric(Tmp) && length(Tmp)==1){
- if(Flg==0) Ookisa<- Ookisa*Tmp
- if(Flg==1){
- if(Tmp<5) Hiraki<- Tmp*Hiraki
- else Hiraki<- Tmp
- }
- if(Flg==2) Yapos<- Tmp
- if(Flg==3) Futosa<- Tmp
- Flg<- Flg+1
- }
- }
- R<- P+Yapos*(Q-P)
- Tmp=Q-Unscaling(0.2*Ookisa/2*(Q-P)/Norm(Q-P)) # 15.10.24
- Drwline(Listplot(c(P,Tmp)),Futosa)
- Arrowhead(R,Q-P,Ookisa,Hiraki,Futosa,Cutstr,Str)
-}
-
-#########################################
-
-Assign<- function(...)
-{
- varargin<- list(...)
- Nargs<- length(varargin)
- if(Nargs==0){
- ASSIGNLIST<<- list("`",Prime())
- Out<- ASSIGNLIST
- return()
-# return("Assign reset done");
- }
- L<- list("`","'")
- if(Nargs%%2==0){
- L<- Mixjoin(L,varargin)
- ASSIGNLIST<<- L
- Out<- L
- return()
-# return("Assign set done");
- }
- if(Nargs==1){
- Fnstr<- varargin[[1]]
- if(nchar(Fnstr)==0){ # case of ""
- L<- ASSIGNLIST
- Out<- c()
- for (I in seq(1,length(L),by=2)){
- Tmp1<- L[[I]]
- Tmp2<- L[[I+1]]
- if(length(Tmp2)==1){
- Tmp3<- as.character(Tmp2)
- }
- else{
- if(mode(Tmp2)=="character"){
- Tmp3<- Tmp2
- }
- else if(mode(Tmp2)=="list"){
- Tmp3<- makeliststr(Tmp2)
- }
- else if(mode(Tmp2)=="numeric"){
- Tmp3<- "c("
- for (J in Looprange(1,length(Tmp2))){
- Tmp3<- paste(Tmp3,as.character(Tmp2[J]),sep="")
- if(J<length(Tmp2)){
- Tmp3<- paste(Tmp3,",",sep="")
- }
- }
- Tmp3<- paste(Tmp3,")",sep="")
- if(class(Tmp2)=="matrix"){
- Nr<- as.character(nrow(Tmp2))
- Tmp3<- paste("matrix(",Tmp3,"nrow=",Nr,")",sep="")
- }
- }
- }
- Tmp<- paste(Tmp1,"=",Tmp3,sep="")
- Out<- c(Out,Tmp)
- }
- return(Out);
- }
- if(substr(Fnstr,1,1)=="?"){
- Fnstr<- substr(Fnstr,2,nchar(Fnstr))
- for (I in seq(1,length(ASSIGNLIST),by=2)){
- Tmp<- ASSIGNLIST[[I]]
- if(Tmp==Fnstr){
- Out<- Mixjoin(list(I),ASSIGNLIST[I+1])
- return(Out)
- }
- }
- Out<- "Not found"
- return(Out);
- }
- L<- ASSIGNLIST
- }
- else{
- if(mode(varargin[[2]])=="numeric"){
- Fnstr<- varargin[[Nargs]]
- for (I in Looprange(1,Nargs-1)){
- L[[I]]=varargin[[I]]
- }
- }
- else{
- Fnstr<- varargin[[1]]
- for (I in Looprange(2,Nargs)){
- L[[I-1]]<- varargin[[I]]
- }
- }
- }
- for (I in seq(1,length(L),by=2)){
- Vname<- L[[I]]
- Val<- L[[I+1]]
- if(mode(Val)=="numeric"){
- if(Nrow(Val)==1){
- for (K in Looprange(1,length(Val))){
- Tmp<- paste(Vname,"[", as.character(K),"]",sep="")
- if(mode(Val[K])=="numeric"){
- Tmp1<- paste("(",as.character(Val[K]),")",sep="")
- }
- else{
- Tmp1<- Val[K]
- }
- Fnstr<- gsub(Tmp,Tmp1,Fnstr,fixed=TRUE)
- }
- }
- else{
- for (J in Looprange(1,Nrow(Val))){
- for (K in Looprange(1,Ncol(Val))){
- Tmp<- paste(Vname,"(",as.character(J),",",as.character(K),")",sep="")
- if(mode(Val[J,K])=="numeric"){
- Tmp1<- paste("(",as.character(Val[J,K]),")",sep="")
- }
- else{
- Tmp1<- Val[J,K]
- }
- Fnstr<- gsub(Tmp,Tmp1,Fnstr,fixed=TRUE)
- }
- }
- }
- if(length(Val)==1){
- Rep<- as.character(Val)
- }
- else{
- Rep<-""
- if(class(Val)=="matrix"){
- Rep<- "matrix("
- }
- Rep<- paste(Rep,"c(",sep="")
- for (J in Looprange(1,length(Val))){
- Rep<- paste(Rep,as.character(Val[J]),sep="")
- if(J<length(Val)){
- Rep<- paste(Rep,",",sep="")
- }
- else{
- Rep<- paste(Rep,")",sep="")
- }
- }
- if(class(Val)=="matrix"){
- Rep<- paste(Rep,",nrow=",as.character(nrow(Val)),")",sep="")
- }
- }
- Tmp1<- paste("(",Rep,")",sep="")
- }
- if(mode(Val)=="character"){
- Tmp1<- Val
- }
- if(mode(Val)=="list"){
- Tmp1<- Makeliststr(Val)
- }
- Fnstr<- gsub(Vname,Tmp1,Fnstr,fixed=TRUE) # 10.11.20
- }
- return(Fnstr)
-}
-
-#########################################
-
-Assignadd<- function(...)
-{
- varargin<- list(...)
- L<- ASSIGNLIST
- L<- Mixjoin(L,varargin)
- ASSIGNLIST<<- L
-# return("assign add done"); #17.09.17
-}
-
-#########################################
-
-Assignrep<- function(...)
-{
- varargin<- list(...)
- Nargs<- length(varargin)
- L<- ASSIGNLIST
- for (I in seq(1,Nargs,by=2)){
- Vname<- varargin[[I]]
- Val<- varargin[[I+1]]
- Tmp1<- paste("?",Vname,sep="")
- Tmp<- Assign(Tmp)
- if(mode(Tmp)=="character"){
- next
- }
- I<- Tmp[[1]]
- L<- Mixjoin(L,list(Val))
- }
- ASSIGNLIST<<- L
-}
-
-#########################################
-
- Assignset<- function(...)
-{
- Assign(...)
-}
-
-#########################################
-
-Beginpicture<-function(ul)
-{ ## Scaling is implemented
- Tmp<- Doscaling(c(XMIN,YMIN))
- Xm<- Tmp[1]
- Ym<- Tmp[2]
- Tmp<- Doscaling(c(XMAX,YMAX))
- XM<- Tmp[1]
- YM<- Tmp[2]
- Dx<- XM-Xm
- Dy<- YM-Ym
- Sym<-".0123456789 +-*/"
- SL<-Sym
- OL<-"+-*/"
- if(ul!=""){
- ULEN<<-ul;
- }
- Is<-1;
- VL<-"";
- Ucode<-ULEN
- for (I in Looprange(1,nchar(Ucode))){
- C<-substring(Ucode,I,I);
- if(length(grep(C,SL))>0){
- if(length(grep(C,OL))>0){
- Tmp<-substring(Ucode,Is,I-1);
- Str<-paste(VL,Tmp,C,sep="")
- VL<-Str
- Is<-I+1;
- }
- }
- else{
- Unit<-substring(Ucode,I,I+1)
- Str<-substring(Ucode,Is,I-1)
- VL<-paste(VL,Str,sep="")
- break;
- }
- }
- Valu<-eval(parse(text=VL))
- Str<-as.character(Valu);
- ULEN<<- paste(Str,Unit,sep="")
- if(Unit=="cm") MilliIn<<-1000/2.54*Valu
- if(Unit=="mm") MilliIn<<-1000/2.54*Valu/10
- if(Unit=="in") MilliIn<<-1000*Valu
- if(Unit=="pt") MilliIn<<-1000/72.27*Valu
- if(Unit=="pc") MilliIn<<-1000/6.022*Valu
- if(Unit=="bp") MilliIn<<-1000/72*Valu
- if(Unit=="dd2") MilliIn<<-1000/1238/1157/72.27*Valu
- if(Unit=="cc") MilliIn<<-1000/1238/1157/72.27*12*Valu;
- if(Unit=="sp") MilliIn<<-1000/72.27/65536*Valu/10
- MARKLEN<<- MARKLENNow*1000/2.54/MilliIn;
- Str<-paste("{\\unitlength=",ULEN,"%\n",sep="")
- cat(Str,file=Wfile,append=TRUE)
- cat("\\begin{picture}%\n",file=Wfile,append=TRUE)
- Str<-"("
- Tmp<-as.character(round(Dx,digits=6))
- Str<-paste(Str,Tmp,",",sep="")
- Tmp<-as.character(round(Dy,digits=6))
- Str<-paste(Str,Tmp,")(",sep="")
- Tmp<-as.character(round(Xm,digits=6))
- Str<-paste(Str,Tmp,",",sep="")
- Tmp<-as.character(round(Ym,digits=6))
- Str<-paste(Str,Tmp,")%\n",sep="")
- cat(Str,file=Wfile,append=TRUE)
- Str<-paste("\\special{pn ",as.character(PenThickInit),"}%\n",sep="")
- cat(Str,file=Wfile,append=TRUE)
- cat("%\n",file=Wfile,append=TRUE)
-}
-
-#################################################
-
-Bowdata<- function(...) #17.09.17
-{
- varargin <- list(...)
- Nargs <- length(varargin)
- PA <- varargin[[1]]
- PB <- varargin[[2]]
- Cut <- 0
- D <- 1/2*Norm(PB-PA)
- if(Nargs>=3) {
- H <- varargin[[3]]*D*0.2
- }
- else {
- H <- D*0.2
- }
- H <- min(H,D)
- if(Nargs>=4){
- Cut <- varargin[[4]]
- }
- Ydata <- MakeBowdata(PA,PB,H)
- C <- Op(1,Ydata)
- r <- Op(2,Ydata)
- R1 <- Op(3,Ydata)
- R2 <- Op(4,Ydata)
- Rng <- paste("R=c(",as.character(R1),",",as.character(R2),")",sep="")
- Theta <- (R1+R2)*0.5
- BOWMIDDLE <<- list(c(C[1]+r*cos(Theta),C[2]+r*sin(Theta)),Theta)
- M <- Op(1,BOWMIDDLE)
- ThetaM <- Op(2,BOWMIDDLE)
- BOWSTART <<- PA
- BOWEND <<- PB
- if(Cut==0){
- Pd<- Circledata(c(C,r),Rng)
- }
- else{
- Alpha <- R1; Beta <- ThetaM-Cut/(2*r)
- Rng <- paste("Rng=c(",as.character(Alpha),",",as.character(Beta),")",sep="")
- Pd <- Circledata(c(C,r),Rng)
- Alpha <- ThetaM+Cut/(2*r); Beta <- R2
- Rng <- paste("R=c(",as.character(Alpha),",",as.character(Beta),")",sep="")
- Tmp <- Circledata(c(C,r),Rng)
- Pd <- Appendrow(Pd,c(Inf,Inf),Tmp)
- }
-}
-
-Bowmiddle <- function(...)
-{
- varargin <- list(...)
- Nargs <- length(varargin)
- if( Nargs==0) {
- M <- BOWMIDDLE
- return(M)
- }
- if(Nargs==1) {
- Bdata <- varargin[[1]]
- A <- Bdata[1,]
- Dind <- Dataindex(Bdata)
- Dc <- Nrow(Dind)
- Tmp <- Dind[Dc,2]
- B <- Bdata[Tmp,]
- if(Dc==1) {
- Tmp1 <- round(Tmp/2)
- }
- else {
- Tmp1 <- Dind[1,2]
- }
- D <- Bdata[Tmp1,]
- B <- B-A
- D <- D-A
- Tmp1 <- B[1]*D[2]-D[1]*B[2]
- Tmp2 <- (Norm(B)^2*D[2]-B[2]*Norm(D)^2)/2
- Tmp3 <- -(Norm(B)^2*D[1]-B[1]*Norm(D)^2)/2
- C <- c(Tmp2,Tmp3)/Tmp1+A
- R <- Norm(C-A)
- B <- B+A
- V <- (A+B)/2-C
- V <- V/Norm(V)
- M <- C+R*V
- }
- else {
- A <- varargin[[1]]; B <- varargin[[2]]
- D <- 1/2*Norm(B-A)
- H <- 0.2*D;
- if(length(varargin)>=3) {
- Tmp <- varargin[[3]]
- H <- Tmp*D*0.2
- }
- H <- min(H,D)
- Ydata <- MakeBowdata(A,B,H)
- C <- Op(1,Ydata)
- R <- Op(2,Ydata)
- T <- (Op(3,Ydata)+Op(4,Ydata))/2
- P <- C+R*c(cos(T),sin(T))
- #M <- list(P,T)
- M <- P
- }
- return(M)
-}
-
-##########################
-# 13.12.19 small movement supported
-
-Bowname<- function(...)
-{
- varargin <- list(...)
- Nargs <- length(varargin)
- Siki <- varargin[[Nargs]]
- Nargs<- Nargs-1
- Dr<- "c"
- if(Nargs>=1){
- Tmp<- varargin[[Nargs]]
- if(is.character(Tmp)){
- Dr<- Tmp
- Nargs<- Nargs-1
- }
- }
- if(Nargs==0){
- Siki <- varargin[[1]]
- P <- Op(1,BOWMIDDLE)
- }
- else if(Nargs==1){
- Bdata <- varargin[[1]]
- P <- Bowmiddle(Bdata)
- }
- else{
- A <- varargin[[1]]; B <- varargin[[2]]
- D <- 1/2*Norm(B-A)
- Tmp <- varargin[[3]]
- if(is.character(Tmp)){
- H <- D*0.2
- }
- else {
- H <- Tmp*D*0.2
- }
- H <- min(H,D)
- Ydata <- MakeBowdata(A,B,H)
- Tmp <- Bowmiddle(Ydata)
- P <- Op(1,Tmp)
- }
- Expr(P,Dr,Siki)
-}
-
-##########################
-# 13.12.19 small movement supported
-# A,B, ... no longer supported
-
-Bownamerot <- function(...)
-{
- varargin <- list(...)
- Nargs <- length(varargin)
- Eps <- 10^(-6)
- Flg <- 1
- Tmp <- varargin[[Nargs]]
- if(is.numeric(Tmp) && length(Tmp)==1 && Tmp<0){
- Flg <- Tmp
- Nargs <- Nargs-1
- }
- Siki <- varargin[[Nargs]]
- Nargs<- Nargs-1
- Dr<- "c"
- if(Nargs>=1){
- Tmp<- varargin[[Nargs]]
- if(is.character(Tmp)){
- Dr<- Tmp
- Nargs<- Nargs-1
- }
- }
- if(Nargs==0) {
- P <- Op(1,BOWMIDDLE)
- A <- BOWSTART
- B <- BOWEND
- }
- else{
- Bdata<- varargin[[1]]
- P<- Bowmiddle(Bdata)
- A=Bdata[1,]
- B=Bdata[nrow(Bdata),]
- Tm<- 0; Tv<- 0
- if(Nargs>1){
- Tm<- varargin[[2]]
- if(Nargs>2){
- Tv<- varargin[[3]]
- }
- }
- }
-# else if(Nargs==2) {
-# Bdata <- varargin[[1]]
-# P <- Bowmiddle(Bdata)
-# A <- Bdata[1,]
-# B <- Bdata[Nrow(Bdata),]
-# Siki <- varargin[[2]]
-# }
-# else {
-# A <- varargin[[1]]; B <- varargin[[2]]
-# D <- 1/2*Norm(B-A)
-# Tmp <- varargin[[3]]
-# if(mode(Tmp)=="character") {
-# H <- 0.2*D; Siki <- Tmp
-# }
-# else {
-# H <- Tmp*D*0.2; Siki <- varargin[[4]]
-# }
-# H <- min(H,D)
-# Ydata <- MakeBowdata(A,B,H)
-# C <- Op(1,Ydata)
-# R <- Op(2,Ydata)
-# T <- (Op(3,Ydata)+Op(4,Ydata))/2
-# P <- C+R*c(cos(T),sin(T))
-# }
- if(A[1]>B[1]+Eps){
- Tmp <- A
- A <- B
- B <- Tmp
- }
- if(Flg>0) {
- Tmp <- B-A
- }
- else{
- Tmp <- A-B
- }
- Exprrot(P,Tmp,Tm,Tv,Siki)
-}
-
-CalcHeight<-function(Hoko,Moji)
-{
- D<-0
- H<-substring(Hoko,1,1)
- Tmp<-paste("\\settoheight{\\Height}{",Moji,"}",sep="")
- Str<-c(Tmp)
- Tmp=paste("\\settodepth{\\Depth}{",Moji,"}",sep="")
- Str<-c(Str,Tmp)
- if(H=="n") Str<-c(Str,"\\setlength{\\Height}{\\Depth}")
- if(H=="s") Str<-c(Str,"\\setlength{\\Height}{-\\Height}")
- if(H=="c")
- {
- Str<-c(Str,"\\setlength{\\Height}{-0.5\\Height}")
- Str<-c(Str,"\\setlength{\\Depth}{0.5\\Depth}")
- Str<-c(Str,"\\addtolength{\\Height}{\\Depth}")
- }
- for (I in 1:length(Str)) cat(Str[I],file=Wfile,append=TRUE)
- cat("%\n",file=Wfile,append=TRUE)
-}
-
-#########################
-
-CalcWidth<-function(Hoko,Moji)
-{
- D<-0;
- H<-substring(Hoko,2,2)
- if(H=="e") D<-0
- if(H=="w") D<--1.0
- if(H=="c") D<--0.5
- Str1<-paste("\\settowidth{\\Width}{",Moji,"}",sep="")
- Tmp<-as.character(D)
- Str2<-paste("\\setlength{\\Width}{",Tmp,"\\Width}",sep="")
- cat(Str1,file=Wfile,append=TRUE)
- cat(Str2,file=Wfile,append=TRUE)
- cat("%\n",file=Wfile,append=TRUE)
-}
-
-#########################
-# 17.09.17
-# 17.09.24
-
-Circledata<- function(...){
- varargin<- list(...)
- Nargs<- length(varargin)
- Cr<- varargin[[1]]
- C=Cr[1:2]
- if(length(Cr)==4){
- ra=Norm(C-Cr[3:4])
- Nop=2
- }
- else{
- ra=Cr[3]
- Nop=2
- }
- R=c(0,2*pi)
- N=50
- for (I in Looprange(Nop,Nargs)){
- Tmp<- varargin[[I]]
- if(is.character(Tmp)){
- Tmp1=regexpr("=",Tmp) #17.09.24from
- Tmp2=substring(Tmp,Tmp1+1,nchar(Tmp))
- Tmp1=substring(Tmp,1,Tmp1)
- Tmp1=gsub("NUM", "N", toupper(Tmp1))
- Tmp1=gsub("RNG", "R", Tmp1)
- Tmp=paste(Tmp1,Tmp2,sep="") #17.09.24until
- eval(parse(text=Tmp))
- }
- }
- Dt<- (R[2]-R[1])/N
- T <- seq(R[1],R[2],by=Dt)
- X <- C[1]+ra*cos(T)
- Y <- C[2]+ra*sin(T)
- XY<- c(X,Y)
- P<- matrix(XY,ncol=2)
- return(P)
-}
-
-#########################
-# 13.12.19
-
-Closefile<-function(...)
-{
- varargin<- list(...)
- if(length(varargin)>=1){
- Pa<- varargin[[1]]
- if(is.character(Pa)){
- if(Pa=="1") Endpicture(1)
- if(Pa=="0") Endpicture(0)
- }
- }
- Wfile<<-""
-}
-
-#########################
-
-Closepar<- function()
-{
- S<- "%\n\\end{minipage}"
- cat(S,file=Wfile,append=TRUE)
- Closephr()
-}
-
-
-####################################
-
-Closephr<- function()
-{
- cat("%\n}%\n",file=Wfile,append=TRUE)
-}
-
-#####################################
-
-Dataindex<-function(P)
-{
- # Inf;Inf : Terminator
- Ndm<-c()
- if(length(P)==0) return(Ndm)
- N1<-1
- Flg<-0
- for (J in 1:Nrow(P))
- {
- if(P[J,1]==Inf)
- {
- Ndm<-Appendrow(Ndm,c(N1,J-1))
- N1<-J+1;
- if(P[N1,1]==Inf)
- {
- Flg<-1;
- break;
- }
- }
- }
- if(Flg==0)
- {
- Ndm<-Appendrow(Ndm,c(N1,Nrow(P)))
- }
- if(class(Ndm)=="numeric")
- {
- Tmp<-matrix(Ndm,nrow=1)
- Ndm<- Tmp
- }
- return(Ndm)
-}
-
-################################
-
-Dashline<- function(...)
-{
- varargin<- list(...)
- Nargs<- length(varargin)
- Nall<- Nargs; Sen<- 1 ; Gap<- 1
- Tmp<- varargin[[Nall]]
- if(mode(Tmp)=="numeric" && length(Tmp)==1 && Tmp>0){
- Tmp1<- varargin[[Nall-1]]
- if(mode(Tmp1)=="numeric" && length(Tmp1)==1 && Tmp1>0){
- Sen<- Tmp1; Gap<- Tmp
- Nall<- Nall-2
- }
- else{
- Sen<- Tmp; Gap<- Sen
- Nall<- Nall-1
- }
- }
- Sen<- 1000/2.54/MilliIn*Sen
- Gap<- 1000/2.54/MilliIn*Gap
- for (N in Looprange(1,Nall)){
- Pdata<- varargin[[N]]
- if(is.numeric(Pdata)==1){
- Pdata<- list(Pdata)
- }
- for (II in 1:length(Pdata)){
- Figdata<- Op(II,Pdata)
- Makehasen(Figdata,Sen,Gap,0)
- }
- }
-}
-
-##############################################
-# 17.11.27
-
-Definecolor<- function(Name,Data){
- Tmp1=length(Data)
- if((Tmp1<3) || (Tmp1>4)){
- cat("Size of data should be 3 or 4.")
- return()
- }
- if(Tmp1==4){
- Tp="cmyk"
- }else{
- Tp="rgb"
- }
- Tmp=""
- for(J in 1:Tmp1){
- Tmp=paste(Tmp, as.character(Data[J]),sep="")
- if(J<Tmp1){
- Tmp=paste(Tmp,",",sep="")
- }
- }
- Tmp=paste("\\definecolor{",Name,"}{",Tp,"}{",Tmp,"}",sep="")
- Texcom(Tmp)
-}
-
-##############################################
-
-Diagcelldata<- function(Tb,Nc,Nr)
-{
- Tmp<- Findcell(Tb,Nc,Nr)
- C<- Tmp[[1]]
- Dx<- Tmp[[2]]
- Dy<- Tmp[[3]]
- Pne<- C+c(Dx,Dy)
- Pnw<- C+c(-Dx,Dy)
- Psw<- C+c(-Dx,-Dy)
- Pse<- C+c(Dx,-Dy)
- Tmp1<- Listplot(Pnw,Pse)
- Tmp2<- Listplot(Pne,Psw)
- list(Tmp1,Tmp2)
-}
-
-##############################################
-# 11.01.07
-
-Dividegraphics<- function(Pd)
-{
- if(length(Pd)==0){
- return(Pd)
- }
- DtL<- Flattenlist(Pd)
- OutL<- list()
- for (J in 1:length(DtL)){
- Dt<- as.matrix(DtL[[J]])
- Ndm<- Dataindex(Dt)
- for (I in Looprange(1,Nrow(Ndm))){
- Fd<- Dt[Ndm[I,1]:Ndm[I,2],]
- OutL<- c(OutL,list(Fd))
- }
- }
- return(OutL)
-}
-
-##############################################
-# 13.05.03
-
-Dividetable<- function(Tb)
-{
- G<- Tb[[1]]
- Gw<- G[[1]]
- Gt<- G[Tb[[2]]]
- Gy<- G[Tb[[3]]]
- list(Gw,Gt,Gy)
-}
-
-################################################
-
-Doscaling<- function(G)
-{
- GLg<- G
- if(class(GLg)=="numeric")
- {
- if(LOGX==1) GLg[1]<- log(G[1], base=10)
- if(LOGY==1) GLg[2]<- log(G[2], base=10)
- Tmp<-c(SCALEX*GLg[1],SCALEY*GLg[2])
- return(Tmp)
- }
- else
- {
- if(LOGX==1) GLg[,1]<- log(G[,1],base=10)
- if(LOGY==1) GLg[,2]<- log(G[,2],base=10)
- Tmp1<-matrix(c(SCALEX,0,0,SCALEY),nrow=2)
- Tmp<-GLg %*% Tmp1
- return(Tmp)
- }
-}
-
-########################################
-
-Dotfilldata<- function(...)
-{ ## Scaling is implemented
- varargin<- list(...)
- Nargs<- length(varargin)
- ShaL<- list()
- Eps<- 0.01
- Kakudo<- 45
- Kosa<- 0.5
- Tmp<- Doscaling(c(XMIN,YMIN))
- Xmn<- Tmp[1]; Ymn<- Tmp[2]
- Tmp<- Doscaling(c(XMAX,YMAX))
- Xmx<- Tmp[1]; Ymx<- Tmp[2]
- for (N in seq(Nargs,1,by=-1)){
- Tmp<- varargin[[N]]
- if(Mixtype(Tmp)!=1){
- break
- }
- }
- if(N<Nargs){
- Kosa<- varargin[[N+1]]
- }
-# Kosa<- min(Kosa,1)
- Tmp<- 1/(2*Kosa)
- Kankaku<- Tmp*0.100*1000/2.54/MilliIn
- NaitenL<- varargin[[1]]
- if(Mixtype(NaitenL)==1){
- NaitenL<- list(NaitenL)
- }
- Ns<- 2
- StartP<- Op(1,NaitenL)
- if(mode(StartP)=="character"){
- StartP<- c((Xmn+Xmx)/2,(Ymn+Ymx)/2)
- }
- else{
- StartP<- Doscaling(StartP)
- }
- Tmp<- varargin[[2]]
- if(Mixtype(Tmp)==1){
- StartP<- Doscaling(Tmp)
- Ns<- 3
- }
- Tmp<- list()
- for (I in Looprange(Ns,N)){
- Tmp<- Mixjoin(Tmp,list(varargin[[I]]))
- }
- Bdy<- Kyoukai(Tmp)
- Bdys<-list()
- for (I in 1:length(Bdy)){
- Tmp1<- Bdy[[I]]
- Tmp2<- Doscaling(Tmp1)
- Bdys<- Mixjoin(Bdys,list(Tmp2))
- }
- Bdy<- Bdys
- PtnL<- list()
- for (I in Looprange(1,length(NaitenL))){
- Tmp<- Op(I,NaitenL)
- if(mode(Tmp)=="numeric"){
- Tmp1<- Naigai(Tmp,Bdy)
- PtnL<- Mixjoin(PtnL,list(Tmp1))
- }
- else{
- if(mode(Tmp)!="character"){
- return("Mode Error")
- }
- Ptn<- c()
- for (J in Looprange(1,nchar(Tmp))){
- if(substr(Tmp,J,J)=="i"){
- Ptn<- c(Ptn,1)
- }
- else{
- Ptn<- c(Ptn,0)
- }
- }
- PtnL<- Mixjoin(PtnL,list(Ptn))
- }
- }
- Call<- length(Bdy)
- Ptn<- c(seq(0, 0, length=Call))
- if(Member(Ptn,PtnL)){
- Wn<- Doscaling(Framedata())
- Bdy<- Mixjoin(Bdy,list(Wn))
- Tmp<- list()
- for (I in Looprange(1,length(PtnL))){
- Tmp1<- c(Op(I,PtnL),1)
- Tmp<- Mixjoin(Tmp,list(Tmp1))
- }
- PtnL<- Tmp
- }
- V<- c(cos(Kakudo*pi/180),sin(Kakudo*pi/180))
- Vm<- c(-sin(Kakudo*pi/180),cos(Kakudo*pi/180))
- Tmp<- Op(1,NaitenL)
- if(mode(Tmp)=="numeric" && length(Tmp)==2){
- Tmp<- Doscaling(Tmp)
- Delta<- Tmp-StartP
- K<- trunc(Dotprod(Delta,Vm)/Kankaku)
- PA<- StartP+K*Kankaku*Vm
- P<- PA
- Sha<- Makeshasen(PtnL,P,V,Bdy)
- Sha<- Dividegraphics(Sha)
- I<- 1
- while (length(Sha)>0){
- for (J in Looprange(1,length(Sha))){
- Tmp<- Op(J,Sha)
- Q<- Tmp[1,]
- R<- Tmp[2,]
- Tmp<- Dotprod(Q-P,V)/Kankaku
- K1<- ceiling(Tmp)
- if(abs(K1-Tmp)<Eps) K1=K1+1
- Tmp<- Dotprod(R-P,V)/Kankaku
- K2<- floor(Tmp)
- if(abs(Tmp-K2)<Eps) K2=K2-1
- for (K in Looprange(K1,K2)){
- Tmp1<- Pointdata(P+K*Kankaku*V)
- ShaL<- Mixjoin(ShaL, list(Tmp1))
- }
- }
- P<- PA+I*Kankaku*Vm
- Sha<- Makeshasen(PtnL,P,V,Bdy)
- Sha<- Dividegraphics(Sha)
- I<- I+1
- }
- P<- PA-Kankaku*Vm
- Sha<- Makeshasen(PtnL,P,V,Bdy)
- I<- 2
- while (length(Sha)>0){
- for (J in 1:length(Sha)){
- Tmp<- Op(J,Sha)
- Q<- Tmp[1,]
- R<- Tmp[2,]
- Tmp<- Dotprod(Q-P,V)/Kankaku
- K1<- ceiling(Tmp)
- if(abs(K1-Tmp)<Eps) K1<- K1+1
- Tmp<- Dotprod(R-P,V)/Kankaku
- K2<- floor(Tmp)
- if(abs(Tmp-K2)<Eps) K2<- K2-1
- for (K in Looprange(K1,K2)){
- Tmp1<- Pointdata(P+K*Kankaku*V)
- ShaL<- Mixjoin(ShaL, list(Tmp1))
- }
- }
- P<- PA-I*Kankaku*Vm
- Sha<- Makeshasen(PtnL,P,V,Bdy)
- I<- I+1
- }
- }
- else{
- Delta<- c(Xmn,Ymn)-StartP
- K1<- trunc(Dotprod(Delta,Vm)/Kankaku)
- Delta<- c(Xmx,Ymn)-StartP
- K2<- trunc(Dotprod(Delta,Vm)/Kankaku)
- Delta<- c(Xmx,Ymx)-StartP
- K3<- trunc(Dotprod(Delta,Vm)/Kankaku)
- Delta<- c(Xmn,Ymx)-StartP
- K4<- trunc(Dotprod(Delta,Vm)/Kankaku)
- IM<- max(K1,K2,K3,K4)
- Im<- min(K1,K2,K3,K4)
- for (I in Im:IM){
- P<- StartP+I*Kankaku*Vm
- Sha<- Makeshasen(PtnL,P,V,Bdy)
- Sha<- Dividegraphics(Sha)
- if(length(Sha)>0){
- for (J in 1:length(Sha)){
- Tmp<- Op(J,Sha)
- Q<- Tmp[1,]
- R<- Tmp[2,]
- Tmp<- Dotprod(Q-P,V)/Kankaku
- K1<- ceiling(Tmp)
- if(abs(K1-Tmp)<Eps) K1=K1+1
- Tmp<- Dotprod(R-P,V)/Kankaku
- K2<- floor(Tmp)
- if(abs(Tmp-K2)<Eps) K2=K2-1
- for (K in Looprange(K1,K2)){
- Tmp1<- Pointdata(P+K*Kankaku*V)
- ShaL<- Mixjoin(ShaL, list(Tmp1))
- }
- }
- }
- }
- }
- ShaLs<-list()
- for (I in Looprange(1,length(ShaL)))
- {
- Tmp<- ShaL[[I]]
- Tmp1<- Unscaling(Tmp)
- ShaLs<- Mixjoin(ShaLs,Tmp1)
- }
- ShaL<- ShaLs
- return(ShaL)
-}
-
-#############################################
-
-Dottedline<- function(...)
-{
- varargin <- list(...)
- Nall <- length(varargin)
- Nagasa <- 0.1
- Ookisa <- PenThick
- I <- Nall
- Tmp <- varargin[[I]]
- while (mode(Tmp)=="numeric" && length(Tmp)==1 ) {
- I <- I-1
- Tmp <- varargin[[I]]
- }
- if(I==Nall-1) {
- Nagasa<-Nagasa*varargin[[Nall]]
- Nall <- Nall-1
- }
- if(I==Nall-2) {
- Nagasa <- Nagasa*varargin[[Nall-1]]
- Ookisa <- round(Ookisa*varargin[[Nall]])
- Nall <- Nall-2
- }
- Nagasa <- 1000/2.54/MilliIn*Nagasa
- for (N in 1:Nall) {
- Pdata <- varargin[[N]]
- if(mode(Pdata)=="numeric") {
- Pdata <- list(Pdata)
- }
- for (II in 1:length(Pdata)) {
- Clist <- MakeCurves(Op(II,Pdata))
- DinM <- Dataindex(Clist)
- for (n in Looprange(1,Nrow(DinM))) {
- Tmp <- DinM[n,]
- Data <- Clist[Tmp[1]:Tmp[2],]
- Len <- 0
- Lenlist <- c(0)
- for (I in Looprange(2,Nrow(Data))) {
- Len <- Len+Norm(Data[I,]-Data[I-1,])
- Lenlist <- c(Lenlist,Len)
- }
- Lenall <- Lenlist[length(Lenlist)]
- if(Lenall==0) {
- next
- }
- Naga <- Nagasa
- Nten <- round(Lenall/Naga)+1
- if(Nten > 1) {
- Seg <- Lenall/(Nten-1)
- }
- else {
- Seg <- Lenall
- }
- Eps <- 10^(-6)*Seg
- PPd<-c()
- Hajime <- 1
- for (I in Looprange(0,Nten-1)) {
- Len <- Seg*I
- if(I>0) {
- J <- Hajime
- while( Len>=Lenlist[J]+Eps) {
- J <- J+1
- }
- Hajime <- J-1
- }
- T <- (Len-Lenlist[Hajime])/
- (Lenlist[Hajime+1]-Lenlist[Hajime])
- P <- Data[Hajime,]+T*(Data[Hajime+1,]-Data[Hajime,])
- PPd<-Appendrow(PPd,P)
- if(I==Nten-1) {
- if(Norm(P-Data[1,])<Eps) {
- next
- }
- }
- }
- Str<-paste("\\special{pn ", as.character(Ookisa),"}%\n",sep="")
- cat(Str,file=Wfile,append=TRUE)
- for (I in Looprange(1,Nrow(PPd))){
- P<- Op(I,PPd)
- if(Nrow(PPd)==1){
- V<- c(1,0)
- }
- else if(I==1){
- Tmp<- Op(I+1,PPd)-P
- V<- 1/Norm(Tmp)*Tmp
- }
- else if(I==Nrow(PPd)){
- Tmp<- P-Op(I-1,PPd)
- V<- 1/Norm(Tmp)*Tmp
- }
- else{
- Tmp1<- Op(I+1,PPd)-P
- Tmp2<- P-Op(I-1,PPd)
- Tmp3<-1/Norm(Tmp1)*Tmp1+1/Norm(Tmp2)*Tmp2
- V<- 1/Norm(Tmp3)*Tmp3
- }
- Tmp<- round(MilliIn*P[1]-1/2*Ookisa*V[1])
- X<- as.character(Tmp)
- Tmp<- -round(MilliIn*P[2]-1/2*Ookisa*V[2])
- Y<- as.character(Tmp)
- Str<-paste("\\special{pa ",X," ",Y,"}",sep="")
- cat(Str,file=Wfile,append=TRUE)
- Tmp<- round(MilliIn*P[1]+1/2*Ookisa*V[1])
- X<- as.character(Tmp)
- Tmp<- -round(MilliIn*P[2]+1/2*Ookisa*V[2])
- Y<- as.character(Tmp)
- Str<-paste("\\special{pa ",X," ",Y,"}",sep="")
- cat(Str,file=Wfile,append=TRUE)
- cat("\\special{fp}",file=Wfile,append=TRUE)
- if(I%%2==0){
- cat("%\n",file=Wfile,append=TRUE)
- }
- }
- }
- }
- }
- Tmp<-PenThick/PenThickInit
- Setpen(Tmp);
-}
-
-###########################################
-
-Drwline<-function(...)
-{
- varargin<-list(...)
- Nall<-length(varargin)
- Thick<-0
- Tmp<-varargin[[Nall]]
- if(mode(Tmp)=="numeric" && length(Tmp)==1){
- Thick<-round(Tmp*PenThickInit)
- Str<-paste("\\special{pn ", as.character(Thick),"}%\n",sep="")
- cat(Str,file=Wfile,append=TRUE)
- Nall<-Nall-1
- }
- for (N in 1:Nall){
- Pdata<-varargin[[N]]
- if(length(Pdata)==0) next
- if(mode(Pdata)!="list") Pdata<-list(Pdata)
- while(Mixtype(Pdata)==3){ # 10.07.25
- Tmp1<- list()
- for(II in Looprange(1,length(Pdata))){
- Tmp1<- Mixjoin(Tmp1,Pdata[[II]])
- }
- Pdata<- Tmp1
- } # 10.07.25
- for (II in Looprange(1,length(Pdata))){
- Clist<-MakeCurves(Pdata[[II]])
- DinM<-Dataindex(Clist)
- for (n in Looprange(1,Nrow(DinM))){
- Tmp<-DinM[n,]
- Data<-Clist[Tmp[1]:Tmp[2],]
- Mojisu<-0
- for (I in Looprange(1,Nrow(Data))){
- Tmp<-Data[I,]
- X<- sprintf("%5.0f",MilliIn*Tmp[1]) # 11.07.19
- Y<- sprintf("%5.0f",-MilliIn*Tmp[2]) # 11.07.19
- Str<-paste("\\special{pa ",X," ",Y,"}",sep="")
- cat(Str,file=Wfile,append=TRUE)
- Mojisu<-Mojisu+nchar(Str)
- if(Mojisu>80){
- cat("%\n",file=Wfile,append=TRUE)
- Mojisu<-0
- }
- }
- if(Mojisu!=0){
- cat("%\n",file=Wfile,append=TRUE)
- }
- cat("\\special{fp}%\n",file=Wfile,append=TRUE)
- }
- }
- }
- Str<-"%"
- if(Thick>0){
- Tmp<-PenThick/PenThickInit
- Setpen(Tmp)
- }
-}
-
-###########################################
-
-Drwpt<-function(...)
-{ ## Scaling is implemented
- varargin<-list(...)
- Nargs<-length(varargin)
- if(TenSize>TenSizeInit){
- N<- round(6*sqrt(TenSize/TenSizeInit))
- }
- else{
- N<-4
- }
- Tmp<- varargin[[Nargs]]
- if(mode(Tmp)=="numeric"){
- if(length(Tmp)>1){
- Kosa<- 1; All<- Nargs
- }
- else{
- Kosa<- Tmp; All<- Nargs-1
- }
- }
- else if(mode(Tmp)=="list"){
- Kosa<- 1; All<- Nargs
- }
- CL<-c()
- for (J in 0:N){
- Tmp<- TenSize*0.5*1000/2.54/MilliIn
- Tmp<- Tmp*c(cos(pi/4+J*2*pi/N),sin(pi/4+J*2*pi/N))
- CL<- append(CL,Tmp)
- }
- CL<- matrix(CL,nrow=2)
- CL<- t(CL)
- for (II in Looprange(1,All)){
- MS<- varargin[[II]]
- MS=Flattenlist(MS) #17.10.11
- if(mode(MS)=="numeric"){
- MS<- list(MS)
- }
- for (I in Looprange(1,length(MS))){
- P<- MS[[I]]
- if(InWindow(P)!="i") next
- P<- Doscaling(P)
- PL<-c()
- for (J in 0:N){
- PL<- c(PL,P+CL[J+1,])
- }
- PL<-matrix(PL,nrow=2)
- PL<-t(PL)
- Mojisu<-0
- for (J in 1:Nrow(PL)){
- Q<- PL[J,]
- X<- as.character(round(MilliIn*Q[1]))
- Y<- as.character(-round(MilliIn*Q[2]))
- Str<- paste("\\special{pa ",X," ",Y,"}",sep="")
- cat(Str,file=Wfile,append=TRUE)
- Mojisu<- Mojisu+nchar(Str)
- if(Mojisu>80){
- cat("#\n",file=Wfile,append=TRUE)
- }
- Mojisu=0
- }
- Str1<- paste("\\special{sh ",as.character(Kosa),"}",sep="")
- Str2<- "\\special{fp}%\n"
- cat(Str1,file=Wfile,append=TRUE)
- cat(Str2,file=Wfile,append=TRUE)
- }
- }
-}
-
-######################################################
-
-Drwxy<-function(...)
-{
- varargin<-list(...)
- Nargs <- length(varargin)
- Tmp<-grep("arrow", ZIKU)
- if(length(Tmp)>0)
- {
- Arrowline(c(XMIN,GENTEN[2]),c(XMAX,GENTEN[2]),ARROWSIZE)
- Arrowline(c(GENTEN[1],YMIN),c(GENTEN[1],YMAX),ARROWSIZE)
- }
- else
- {
- Drwline(Listplot(c(XMIN,GENTEN[2]),c(XMAX,GENTEN[2])))
- Drwline(Listplot(c(GENTEN[1],YMIN),c(GENTEN[1],YMAX)))
- }
- Letter(c(XMAX,GENTEN[2]),XPOS,XNAME)
- Letter(c(GENTEN[1],YMAX),YPOS,YNAME)
- Letter(GENTEN,OPOS,ONAME);
-}
-
-##########################################
-# 10.12.04
-
-Enclosing<- function(...)
-{
- Eps=10^(-7) # Scilab 16.12.05
- varargin<- list(...)
- Nargs<- length(varargin)
- P<- varargin[[1]]
- if(Mixtype(P)==2){
- Tmp<- Op(1,P)
- if(mode(Tmp)!="numeric" || length(Tmp)>1){
- AnsL<- EnclosingS(...)
- AnsL<- Joincrvs(AnsL) # 10.12.04
- }
- }
- Tmp1=Op(1,AnsL) # Scilab 16.12.05from
- Tmp2=Op(nrow(AnsL),AnsL)
- if(Norm(Tmp2-Tmp1)>Eps){
- AnsL=Appendrow(AnsL,Tmp1)
- }
- return(AnsL)
-}
-
-#########################################
-
-EnclosingS<- function(...)
-{
- varargin<- list(...)
- Nargs<- length(varargin)
- AnsL<- list()
- PdataL<- varargin[[1]]
- Nall<-length(PdataL)
- Eps<- 10^(-3)
- EEps<- 0.1
- S<- c()
- Flg<- 0
- for (I in Looprange(2,Nargs)){
- Tmp<- varargin[[I]]
- if(mode(Tmp)=="numeric" && Nrow(Tmp)==1 && length(Tmp)>1){
- S<- Tmp
- }
- if(mode(Tmp)=="numeric" && length(Tmp)==1){
- if(Flg==0){
- Eps<- Tmp
- Flg=Flg+1
- }
- else{
- EEps<- Tmp
- }
- }
- }
- F<- Op(1,PdataL); G<- Op(Nall,PdataL)
- KL<- IntersectcrvsPp(F,G)
- if(length(KL)==1){
- Tmp<- Op(1,KL)
- P<- Op(1,Tmp)
- T1<- Op(2,Tmp)
- }
- if(length(KL)==0){
- if(Numptcrv(F)>Numptcrv(G)){
- Tmp<- Nearestpt(F,G)
- P<- Op(1,Tmp)
- T1=Op(2,Tmp)
- }
- else{
- Tmp<- Nearestpt(G,F)
- P<- Op(3,Tmp)
- T1<- Op(4,Tmp)
- }
- }
- if(length(KL)>=2){
- if(length(S)==0){
- return("No Start Point")
- }
- Tmp<- Op(1,KL)
- P<- Op(1,Tmp)
- T1<- Op(2,Tmp)
- Tmp<- Norm(P-S)
- for (I in Looprange(2,length(KL))){
- Tmp1<- Op(1,Op(I,KL))
- Tmp2<- Norm(Tmp1-S)
- if(Tmp2<Tmp){
- P<- Tmp1
- T1<- Op(2,Op(I,KL))
- Tmp<- Tmp2
- }
- }
- }
- S<- P
- AnsL<- list()
- for (N in Looprange(1,Nall)){
- F<- Op(N,PdataL)
- if(N>1) P<- Q
- if(N==Nall){
- Q=S
- }
- else{
- Flg<- 0
- G<- Op(N+1,PdataL)
- KL<- IntersectcrvsPp(G,F)
- if(length(KL)==1){
- Tmp<- Op(1,KL)
- Q<- Op(1,Tmp)
- T3<- Op(2,Tmp)
- Flg<- 10
- }
- if(length(KL)==0) Flg<- 1
- if(length(KL)>=2){ # Maple bug?
- Tmp1<- Op(1,Op(1,KL))
- Tmp2<- Op(1,Op(2,KL))
- Tmp<- Norm(Tmp1-Tmp2)
- if(Tmp<Eps*10) Flg<- 1
- }
- if(Flg==1){
- if(Numptcrv(F)>Numptcrv(G)){
- Tmp<- Nearestpt(F,G)
- Q<- Op(1,Tmp)
- T3<- Op(4,Tmp)
- Flg<- 10
- }
- else{
- Tmp<- Nearestpt(G,F)
- Q<- Op(3,Tmp)
- T3<- Op(2,Tmp)
- Flg<- 10
- }
- }
- if(Flg<10){
- T2<- Inf
- for (I in Looprange(1,length(KL))){
- Dt<- Op(I,KL)
- Tmp1<- Op(1,Dt)
- Tmp<- Op(3,Dt)
- Tmp2<- Paramoncurve(Tmp1,Tmp,F)
- Tmp3<- Op(2,Dt)
- if(Tmp2>T1+Eps && Tmp2<T2-Eps){
- Q<- Tmp1
- T2<- Tmp2
- T3<- Tmp3
- }
- }
- }
- }
- Tmp<- Partcrv(P,Q,F)
- T1<- T3
- AnsL<- Mixjoin(AnsL,list(Tmp))
- }
- return(AnsL)
-}
-
-########################################
-
-Endpicture<-function(...)
-{
- varargin<-list(...)
- Nargs<-length(varargin)
- if(Nargs==0)
- {
- Drwxy()
- }
- else
- {
- if(varargin[[1]]==1) Drwxy()
- }
- cat("\\end{picture}}%",file=Wfile,append=TRUE)
-# MEMORI<<-MEMORINow*1000/2.54/MilliIn
- Setunitlen("1cm")
-}
-
-#########################################
-
-Execmd<- function(StrL)
-{
- if(mode(StrL)=="character" && length(StrL)==1){
- StrL<- list(StrL)
- }
- for (I in Looprange(1,length(StrL))){
- if(!is.na(Op(I,StrL)) && nchar(Op(I,StrL))>0){
- eval(parse(text=Op(I,StrL)))
- }
- }
-}
-
-#########################################
-
-Expr<-function(...)
-{ ## Scaling is implemented
- varargin<-list(...)
- Nargs<-length(varargin)
- Irng<-c(seq(from=1,to=Nargs,by=3))
- for (I in Irng)
- {
- Tmp<-varargin[[I]]
- P<- Doscaling(Tmp)
- X<-P[1]
- Y<-P[2]
- Houkou<-varargin[[I+1]]
- Mojiretu<-paste("$",varargin[[I+2]],"$",sep="")
- Hset<-Houkou
- Vhoko<-"c"
- if(length(grep("n",Hset))>0)
- {
- Vhoko<-"n"; Y<-Y+MEMORI
- }
- if(length(grep("s",Hset))>0)
- {
- Vhoko<-"s"; Y<-Y-MEMORI
- }
- Hhoko<-"c"
- if(length(grep("e",Hset))>0)
- {
- Hhoko<-"e"; X<-X+MEMORI
- }
- if(length(grep("w",Hset))>0)
- {
- Hhoko<-"w"; X<-X-MEMORI
- }
- Hoko<-paste(Vhoko,Hhoko,sep="")
- Suu<-"+-.0123456789"
- SuuL<-Suu
- J<-1; Dstr<-""
- while (J<=nchar(Houkou))
- {
- Tmp<-substring(Houkou,J,J)
- if(length(grep(Tmp,Suu))>0)
- {
- if(Dstr=="") Hk<-substring(Houkou,J-1,J-1)
- Dstr<-paste(Dstr,Tmp,sep="")
- }
- else
- {
- if(Dstr!="")
- {
- Nmbr<-as.numeric(Dstr)
- D<-Nmbr*MEMORI
- if(Hk=="n") Y<-Y+D
- if(Hk=="s") Y<-Y-D
- if(Hk=="e") X<-X+D
- if(Hk=="w") X<-X-D
- Dstr<-""
- }
- }
- J<-J+1
- }
- if(Dstr!="")
- {
- Nmbr<-as.numeric(Dstr)
- D<-Nmbr*MEMORI;
- if(Hk=="n") Y<-Y+D
- if(Hk=="s") Y<-Y-D
- if(Hk=="e") X<-X+D
- if(Hk=="w") X<-X-D
- }
- CalcWidth(Hoko,Mojiretu)
- CalcHeight(Hoko,Mojiretu)
- cat("\\put(",file=Wfile,append=TRUE)
- Tmp1<- sprintf("%7.7f",X) # 11.07.19
- Tmp2<- sprintf("%7.7f",Y) # 11.07.19
- Str<-paste(Tmp1,",",Tmp2,sep="")
- cat(Str,file=Wfile,append=TRUE)
- Tmp<-"){\\hspace*{\\Width}"
- Str<-paste(Tmp,"\\raisebox{\\Height}{",Mojiretu,"}}%\n",sep="")
- cat(Str,file=Wfile,append=TRUE)
- cat("%\n",file=Wfile,append=TRUE)
- }
-}
-
-##########################################
-
-Exprrot<- function(...)
-{
- varargin<- list(...)
- P<- varargin[[1]]
- V<- varargin[[2]]; N<- 3
- P<- Doscaling(P)
- V<- Doscaling(V)
- Tmov<- 0
- Tmp<- varargin[[N]]
- if(mode(Tmp)=="numeric"){
- Tmov<- Tmp; N<- N+1
- }
- Nmov<- 0
- Tmp<- varargin[[N]]
- if(mode(Tmp)=="numeric"){
- Nmov<- Tmp; N<- N+1
- }
- Mojiretu<- paste("$",Assign(varargin[[N]]),"$",sep="") # 2017.11.26
- Tv<- 1/Norm(V)*V
- Nv<- c(-Tv[2],Tv[1])
- P<- P+MEMORI*Tmov*Tv+MEMORI*Nmov*Nv
- Tmp<- acos(V[1]/Norm(V))
- Theta<- round(Tmp*180/pi)
- if(V[2]>=0){
- Units<- ""
- }
- else{
- Units<- "units=-360,"
- }
- Tmp<- paste("\\rotatebox[",Units,"origin=c]{",as.character(Theta),sep="")
- Tmp<- paste(Tmp,"}{",Mojiretu,"}",sep="")
- Letter(P,"c",Tmp)
-}
-
-######################################################
-
-Findcell<- function(...)
-{
- varargin<- list(...)
- Nargs<- length(varargin)
- TbL<- varargin[[1]]
- Ag<- varargin[[2]]
- Alpha<- "-ABCDEFGHIJKLMNOPQRSTUVWXYZ"
- if(mode(Ag)=="character"){
- Clm<- c()
- Rstr<- ""
- for (I in Looprange(1,nchar(Ag))){
- C<- substr(Ag,I,I)
- C<- toupper(C)
- Tmp<- strsplit(Alpha,C)
- Tmp<- Tmp[[1]]
- if(length(Tmp)>1){
- Tmp1<- nchar(Tmp[1])
- Clm<- c(Clm,Tmp1)
- }
- else{
- Rstr<- paste(Rstr,C,sep="")
- }
- }
- Nrg<- 0
- for (I in seq(length(Clm),1,by=-1)){
- Tmp<- Clm[I]
- Tmp1<- length(Clm)-I
- Nrg<- Nrg+Tmp*26^Tmp1
- }
- Mrg<- eval(parse(text=Rstr))
- if(Nargs>=3){
- Ag<- varargin[[3]]
- Clm<- c()
- Rstr<- ""
- for (I in Looprange(1,nchar(Ag))){
- C<- substr(Ag,1,1)
- C<- toupper(C)
- Tmp<- strsplit(Alpha,C)
- if(length(Tmp)>1){
- Clm<- c(Clm,Tmp+1)
- }
- else{
- Rstr<- paste(Rstr,C,sep="")
- }
- }
- Nrg2<- 0
- for (I in seq(length(Clm),1,by=-1)){
- Tmp<- Clm[I]
- Tmp1<- length[Clm]-I
- Nrg2<- Nrg2+Tmp*26^Tmp1
- }
- Nrg<- c(Nrg,Nrg2)
- Tmp=eval(parse(text=Rstr))
- Mrg<- c(Mrg,Tmp)
- }
- }
- else{
- Nrg<- varargin[[2]]
- Mrg<- varargin[[3]]
- }
- if(length(Mrg)==1){
- m1<- Mrg; m2<- m1+1
- }
- else{
- m1<- Mrg[1]; m2<- Mrg[2] # 10.12.12
- }
- if(length(Nrg)==1){
- n1<- Nrg; n2<- n1+1
- }
- else{
- n1<- Nrg[1]; n2<- Nrg[2]
- }
- n1<- n1+1; n2<- n2+1
- m1<- m1+1; m2<- m2+1
- Hind<- TbL[[2]]
- Vind<- TbL[[3]]
- Tmp<- TbL[[1]]
- HL<- Tmp[Hind]
- Tmp1<- Op(1,TbL[[4]])
- Tmp2<- Op(2,TbL[[4]])
- HL<- Mixjoin(list(Tmp1),HL,list(Tmp2))
- VL<- Tmp[Vind]
- Tmp1<- Op(1,TbL[[5]])
- Tmp2<- Op(2,TbL[[5]])
- VL<- Mixjoin(list(Tmp1),VL,list(Tmp2))
- Tmp<- TbL[[6]]
- Tmp1<- Listplot(c(Ptsw(Tmp),Ptnw(Tmp)))
- Tmp2<- Listplot(c(Ptse(Tmp),Ptne(Tmp)))
- HL<- Mixjoin(list(Tmp1),HL,list(Tmp2))
- Tmp1<- Listplot(c(Ptnw(Tmp),Ptne(Tmp)))
- Tmp2<- Listplot(c(Ptsw(Tmp),Ptse(Tmp)))
- VL<- Mixjoin(list(Tmp1),VL,list(Tmp2))
- Tmp<- HL[[n1]]
- if(mode(Tmp)=="numeric"){
- H1<- Tmp[1,1]
- }
- else{
- Tmp1<- Tmp[[1]]
- H1<- Tmp1[1,1]
- }
- Tmp<- HL[[n2]]
- if(mode(Tmp)=="numeric"){
- H2<- Tmp[1,1]
- }
- else{
- Tmp1<- Tmp[[1]]
- H2<- Tmp1[1,1]
- }
- Tmp<- VL[[m1]]
- if(mode(Tmp)=="numeric"){
- V1<- Tmp[1,2]
- }
- else{
- Tmp1<- Tmp[[1]]
- V1<- Tmp1[1,2]
- }
- Tmp<- VL[[m2]]
- if(mode(Tmp)=="numeric"){
- V2<- Tmp[1,2]
- }
- else{
- Tmp1<- Tmp[[1]]
- V2<- Tmp1[1,2]
- }
- Pt<- c((H1+H2)/2,(V1+V2)/2)
- High<- (V1-V2)/2
- Wide<- (H2-H1)/2
- Out<- list(Pt,Wide,High)
- return(Out)
-}
-
-############################################
-
-Flattenlist<- function(...){
- varargin<- list(...)
- Nargs<- length(varargin)
- Out<- list()
- for(N in Looprange(1,Nargs)){
- D<- varargin[[N]]
- if(is.data.frame(D) || !is.list(D)){ # modify
- Out<- c(Out,list(D))
- }
- else{
- for(I in Looprange(1,length(D))){
- Ds<- D[[I]]
- Tmp<- Flattenlist(Ds)
- Out<- c(Out,Tmp)
- }
- }
- }
- return(Out)
-}
-
-############################################
-
-Fontsize<- function(Ookisa)
-{
- Str<- "%"
- S<- substr(Ookisa,1,1)
- if(S=="n"){
- Str<- "\\normalsize%"
- }
- if(S=="s"){
- if(nchar(Ookisa)==1){
- Tmp<- "n"
- }
- else{
- Tmp<- substr(Ookisa,2,2)
- }
- if(Tmp=="s"){
- Str<- "\\scriptsize%"
- }
- else{
- Str<- "\\small%"
- }
- }
- if(S=="f"){
- Str<- "\\footnotesize%"
- }
- if(S=="t"){
- Str<- "\\tiny%"
- }
- if(S=="l"){
- Str<- "\\large%"
- }
- if(S=="L"){
- if(nchar(Ookisa)==1){
- Tmp<- "a"
- }
- else{
- Tmp<- substr(Ookisa,2,2)
- }
- if(Tmp=="a"){
- Str<- "\\Large%"
- }
- else{
- Str<- "\\LARGE%"
- }
- }
- if(S=="h"){
- Str<- "\\huge%"
- }
- if(S=="H"){
- Str<- "\\Huge%"
- }
- cat(Str,file=Wfile,append=TRUE)
- cat("\n",file=Wfile,append=TRUE)
-}
-
-##########################################
-
-Fracform<- function(...)
-{
- varargin<- list(...)
- Eps<- 10^(-10)
- Nmax<- 1/Eps
- Nargs<- length(varargin)
- X<- varargin[[1]]
- Nr<- Nrow(X)
- X<- as.matrix(X,nrow=Nr)
- for (I in Looprange(2,Nargs)){
- Tmp<- varargin[[I]]
- if(mode(Tmp)!="numeric"){
- next
- }
- if(Tmp>1){
- Nmax<- Tmp
- }
- else if(Tmp>0){
- Eps<- Tmp
- }
- }
- Tmp<- rep("",length(X))
- Out<- matrix(Tmp,nrow=nrow(X))
- for (I in Looprange(1,nrow(X))){
- for (J in Looprange(1,ncol(X))){
- Dt<- X[I,J]
- if(mode(Dt)=="character"){
- Dt<- eval(parse(text=Dt))
- }
- R<- 1
- N<- 0
- Rmin<- R
- Nr<- N
- while (R>Eps && N<Nmax){
- N<- N+1
- M<- round(Dt*N)
- R<- abs(Dt-M/N)
- if(R<Rmin){
- Rmin<- R
- Nr<- N
- }
- }
- if(N==Nmax){
- N<- Nr
- M<- round(Dt*N)
- }
- Tmp<- as.character(M)
- if(N!=1){
- Tmp<- paste(Tmp,"/",as.character(N),sep="")
- }
- Out[I,J]<- Tmp
- }
- }
- if(nrow(Out)==1){
- Out<- as.character(Out)
- }
- return(Out)
-}
-
-##############################################
-# 2011.12.17 ( list )
-
-Framedata<-function(...)
-{
- varargin<- Flattenlist(list(...))
- N<-length(varargin)
- if(N<= 1){
- H<- 1.0*10^(-4);
- PA<-c(XMIN+H,YMIN+H)
- PB<-c(XMAX-H,YMIN+H)
- PC<-c(XMAX-H,YMAX-H)
- PD<-c(XMIN+H,YMAX-H)
- }
- else{
- Tmp<-varargin[[N]]
- if(is.numeric(Tmp) && length(Tmp)==1){
- Dy<-Tmp; Dx<-Dy
- Tmp<-varargin[[N-1]]
- if(is.numeric(Tmp) && length(Tmp)==1){
- Dx<-Tmp
- }
- Tmp<-varargin[[1]]
- X<-Tmp[1]; Y<-Tmp[2]
- X1<-X-Dx; X2<-X+Dx; Y1<-Y-Dy; Y2<-Y+Dy
- }
- else{
- Tmp<-varargin[[1]]
- X1<-Tmp[1]; X2<-Tmp[2]
- Tmp<-varargin[[2]]
- Y1<-Tmp[1]; Y2<-Tmp[2]
- }
- PA<-c(X1,Y1); PB<-c(X2,Y1)
- PC<-c(X2,Y2); PD<-c(X1,Y2)
- }
- Out<- Listplot(c(PA,PB,PC,PD,PA))
- return(Out)
-}
-
-###################################
-
-Hatchdata<- function(...)
-{ ## Scaling is implemented
- varargin<- list(...)
- ShaL<- list()
- Nargs<- length(varargin)
- Kakudo<- 45
- Kankaku<- 0.125*1000/2.54/MilliIn
- Tmp<- Doscaling(c(XMIN,YMIN))
- Xmn<- Tmp[1]; Ymn<- Tmp[2]
- Tmp<- Doscaling(c(XMAX,YMAX))
- Xmx<- Tmp[1]; Ymx<- Tmp[2]
- for (N in seq(Nargs,1, by=-1))
- {
- Tmp<- varargin[[N]]
- if(mode(Tmp)=="list")
- {
- break
- }
- }
- if(N<Nargs)
- {
- Kakudo<- varargin[[N+1]]
- if(N==Nargs-2)
- {
- Kankaku<- 0.125*varargin[[Nargs]]
- }
- }
- NaitenL<- varargin[[1]]
- if(mode(NaitenL)!="list")
- {
- NaitenL<- list(NaitenL)
- }
- Ns<- 2
- StartP<- Op(1,NaitenL)
- if(mode(StartP)=="character")
- {
- StartP<- c((Xmn+Xmx)/2, (Ymn+Ymx)/2)
- }
- if(mode(varargin[[2]])=="numeric")
- {
- StartP<- varargin[[2]]
- StartP<- Doscaling(StartP)
- Ns<- 3
- }
- Tmp<- list()
- for ( I in Looprange(Ns,N))
- {
- Tmp1<- list(varargin[[I]])
- Tmp2<- Mixjoin(Tmp, Tmp1)
- Tmp<- Tmp2
- }
- Bdy<- Kyoukai(Tmp)
- Bdys<-list()
- for (I in 1:length(Bdy))
- {
- Tmp1<- Bdy[[I]]
- Tmp2<- Doscaling(Tmp1)
- Bdys<- Mixjoin(Bdys,list(Tmp2))
- }
- Bdy<- Bdys
- PtnL<- list()
- for (I in Looprange(1,length(NaitenL)))
- {
- Tmp<- Op(I, NaitenL)
- if(mode(Tmp)=="numeric")
- {
- Tmp1<- Naigai(Tmp,Bdy)
- Tmp2<- Mixjoin(PtnL, list(Tmp1))
- PtnL<- Tmp2
- }
- else
- {
- if(mode(Tmp)!="character")
- {
- return("Mode Error")
- }
- Ptn<-c()
- for (J in 1:nchar(Tmp))
- {
- if(Op(J,Tmp)=="i")
- {
- Ptn<- c(Ptn,1)
- }
- else
- {
- Ptn<- c(Ptn,0)
- }
- }
- PtnL<- Mixjoin(PtnL, list(Ptn))
- }
- }
- Call<- length(Bdy)
- Ptn<- c(seq(0, 0, length=Call))
- if(Member(Ptn,PtnL))
- {
- Wn<- Doscaling(Framedata())
- Tmp<- Mixjoin(Bdy,list(Wn))
- Bdy<- Tmp
- Tmp<- list()
- for (I in Looprange(1, length(PtnL)))
- {
- Tmp1<- c(Op(I,PtnL),1)
- Tmp2<- Mixjoin(Tmp,list(Tmp1))
- Tmp<- Tmp2
- }
- PtnL<- Tmp
- }
- V<- c(cos(Kakudo*pi/180),sin(Kakudo*pi/180))
- Vm<- c(-sin(Kakudo*pi/180),cos(Kakudo*pi/180))
- Tmp<- Op(1,NaitenL)
- if(mode(Tmp)=="numeric" && length(Tmp)==2)
- {
- Tmp<- Doscaling(Tmp)
- Delta<- Tmp-StartP
- K<- trunc(Dotprod(Delta,Vm)/Kankaku)
- PA<- StartP+K*Kankaku*Vm
- Sha<- Makeshasen(PtnL,PA,V,Bdy)
- I <- 1
- while (length(Sha)>0)
- {
- Tmp<- Mixjoin(ShaL, list(Sha))
- ShaL <- Tmp
- Sha<- Makeshasen(PtnL,PA+I*Kankaku*Vm,V,Bdy)
- I <- I+1
- }
- Sha<- Makeshasen(PtnL,PA-Kankaku*Vm,V,Bdy)
- I<- 2
- while (length(Sha)>0)
- {
- for (J in 1:length(Sha))
- {
- Tmp<- Mixjoin(ShaL,list(Sha[[J]]))
- ShaL<- Tmp
- }
- Sha<- Makeshasen(PtnL,PA-I*Kankaku*Vm,V,Bdy)
- I<- I+1
- }
- }
- else
- {
- Delta<- c(Xmn,Ymn)-StartP
- K1<- trunc(Dotprod(Delta,Vm)/Kankaku)
- Delta<- c(Xmx,Ymn)-StartP
- K2<- trunc(Dotprod(Delta,Vm)/Kankaku)
- Delta<- c(Xmx,Ymx)-StartP
- K3<- trunc(Dotprod(Delta,Vm)/Kankaku)
- Delta<- c(Xmn,Ymx)-StartP
- K4<- trunc(Dotprod(Delta,Vm)/Kankaku)
- IM<- max(K1,K2,K3,K4)
- Im<- min(K1,K2,K3,K4)
- for (I in Im:IM)
- {
- Sha<- Makeshasen(PtnL,StartP+I*Kankaku*Vm,V,Bdy)
- for (J in Looprange(1,length(Sha)))
- {
- Tmp<- Mixjoin(ShaL, list(Sha[[J]]))
- ShaL<- Tmp
- }
- }
- }
- ShaLs<-list()
- for (I in Looprange(1,length(ShaL)))
- {
- Tmp<- ShaL[[I]]
- Tmp1<- Unscaling(Tmp)
- Tmp2<- Mixjoin(ShaLs, list(Tmp1))
- ShaLs<- Tmp2
- }
- ShaL<- ShaLs
- return(ShaL)
-}
-
-######################################
-
-Htickmark<- function(...)
-{ ## Scaling is implemented
- varargin<- list(...)
- Nargs<- length(varargin)
- ArgsL<- varargin
- if(mode(ArgsL[[1]])=="character"){
- Str<- ArgsL[[1]]
- Tmp<- strsplit(Str,"m")
- Tmp<- Tmp[[1]]
- if(length(Tmp)>1){
- I<- nchar(Tmp[1])+1
- }
- else{
- I<- 0
- }
- Tmp<- strsplit(Str,"n")
- Tmp<- Tmp[[1]]
- if(length(Tmp)>1){
- J<- nchar(Tmp[1])+1
- }
- else{
- J<- 0
- }
- Tmp<- strsplit(Str,"r")
- Tmp<- Tmp[[1]]
- if(length(Tmp)>1){
- K=nchar(Tmp[1])+1
- }
- else{
- K<- 0
- }
- if(K>0){
- S<- substr(Str,K+1,nchar(Str))
- R<- as.numeric(S)
- if(is.na(R)){
- R<- 1
- }
- }
- else{
- R<- 1
- K<- nchar(Str)+1
- }
- if(J>0){
- S<- substr(Str,J+1,K-1)
- Dn<- as.numeric(S)
- if(is.na(Dn)){
- Dn<- 1
- }
- }
- else{
- Dn<- 1000
- J<- nchar(Str)+1
- }
- S<- substr(Str,I+1,J-1)
- Dm<- as.numeric(S)
- if(is.na(Dm)){
- Dm<- 1
- }
- ArgsL<- list()
- for (I in Looprange(1, floor((XMAX-GENTEN[1])/Dm))){
- ArgsL<- Mixjoin(ArgsL,I*Dm)
- if(I-floor(I/Dn)*Dn==0){
- Str<- as.character(I*Dm*R)
- ArgsL<- Mixjoin(ArgsL,Str)
- }
- }
- for (I in seq(-1,ceiling((XMIN-GENTEN[1])/Dm),by=-1)){
- ArgsL<- Mixjoin(ArgsL,I*Dm)
- if(I-floor(I/Dn)*Dn==0){
- Str<- as.character(I*Dm*R)
- ArgsL<- Mixjoin(ArgsL,Str)
- }
- }
- }
- MemoriList<- list()
- Memori<- list()
- for (N in 1:length(ArgsL)){
- Dt<- ArgsL[[N]]
- if(mode(Dt)=="numeric" && length(Dt)>1){
- if(length(Memori)>0){
- MemoriList<- Mixjoin(MemoriList,list(Memori))
- }
- Memori<- list(Dt[1],Dt[2])
- next
- }
- if(mode(Dt)=="character"){
- Memori<- Mixjoin(Memori,Dt)
- }
- else{
- if(length(Memori)>0){
- MemoriList<- Mixjoin(MemoriList,list(Memori))
- }
- Memori<- list(Dt,GENTEN[2])
- }
- }
- MemoriList<- Mixjoin(MemoriList,list(Memori))
- for (N in 1:length(MemoriList)){
- Dt<- MemoriList[[N]]
- Ndt<- length(Dt)
- X=Op(1,Dt)
- Y=Op(2,Dt)
- Tmp<-Doscaling(c(X,Y))
- X<- Tmp[1]
- Y<- Tmp[2]
- Moji<- Op(Ndt,Dt)
- Tmp1<- Unscaling(c(X,Y+MARKLEN))
- Tmp2<- Unscaling(c(X,Y-MARKLEN))
- Fd<- Listplot(c(Tmp1,Tmp2))
- Drwline(Fd)
- if(Ndt==3){
- Tmp<-Unscaling(c(X,Y-MARKLEN))
- Expr(Tmp,"s",Moji)
- }
- if(Ndt==4){
- Houkou<- Op(3,Dt)
- Tmp<-grep("s",Houkou)
- if(length(Tmp)>0){
- Tmp<-Unscaling(c(X,Y-MARKLEN))
- Expr(Tmp,Houkou,Moji)
- }
- else{
- Tmp<- Unscaling(c(X,Y+MARKLEN))
- Expr(Tmp,Houkou,Moji)
- }
- }
- cat("%\n",file=Wfile,append=TRUE)
- }
-}
-
-#############################################
-# 2013.08.07
-
-Integrate<- function(Fs,Vs, Intv){
- if(is.function(Fs)){
- Fn<- Fs
- }
- else{
- Str<- paste("Fn<- function(",Vs, ") ", Fs, sep="")
- eval(parse(text=Str))
- }
- Tmp<- integrate(Fn, Intv[[1]], Intv[[2]])
- Out<- Tmp[[1]]
- return(Out)
-}
-
-#############################################
-
-Intersectcrvs<-function(...)
-{
- varargin<-list(...)
- Nargs<-length(varargin)
- Eps<-10^(-4)
- Tmp<-varargin[[Nargs]]
- if(mode(Tmp)=="numeric" && length(Tmp)==1)
- {
- Eps<-Tmp
- }
- G1<-varargin[[1]]
- if(mode(G1)=="numeric")
- {
- G1<-list(G1)
- }
- G2<-varargin[[2]]
- if(mode(G2)=="numeric")
- {
- G2<-list(G2)
- }
- PL<-list()
- for (N in 1:length(G1))
- {
- for (M in 1:length(G2))
- {
- KL<-IntersectcrvsPp(G1[[N]],G2[[M]],Eps)
- for (I in Looprange(1,length(KL)))
- {
- Tmp<-KL[[I]]
- P<-Tmp[1]
- PL<-append(PL,P)
- }
- }
- }
- return(PL)
-}
-
-###########################################
-
-IntersectcrvsPp<-function(...)
-{
- varargin<-list(...)
- Nargs<-length(varargin)
- G1<-varargin[[1]]; G2<-varargin[[2]]
- Eps<- 10.0^(-4)
- if(Nargs>2) Eps<-varargin[[3]]
- SqEps<- 10.0^(-10)
- Eps2<- 0.1
- if(Nargs>3) Eps2<-varargin[[4]]
- Data1<-G1
- Data2<-G2
- if(Nrow(Data1)==Nrow(Data2))
- {
- Tmp<-seq(Nrow(Data2),1, by=-1)
- Tmp1<-Data2[Tmp,]
- Eps0<-10^(-6)
- Tmp2<-Norm(Data1-Data2)
- Tmp3<-Norm(Data1-Tmp1)
- if(Tmp2<Eps0||Tmp3<Eps0)
- {
- KL<-list()
- return(KL)
- }
- }
- KL1<-list()
- KL2<-list()
- for (I in Looprange(1,Nrow(Data1)-1))
- {
- A<-Data1[I,]
- B<-Data1[I+1,]
- for (J in Looprange(1,Nrow(Data2)-1))
- {
- P<-Data2[J,]; Q<-Data2[J+1,]
- Tmp<-Koutenseg(A,B,P,Q,Eps,Eps2)
- if(mode(Tmp)=="list")
- {
- if(Tmp[[3]]==0)
- {
- Tmp1<-list(Tmp[[1]],Tmp[[2]],I,J)
- KL1<-append(KL1,list(Tmp1))
- }
- else
- {
- Tmp2<-list(Tmp[[1]],Tmp[[2]],I,J)
- KL2<-append(KL2, list(Tmp2))
- }
- }
- }
- }
- KL<-list()
- if(length(KL1)>0)
- {
- Tmp<-KL1[[1]]
- P<-Tmp[[1]]
- T<-Tmp[[2]]
- I<-Tmp[[3]]
- J<-Tmp[[4]]
- Tmp<-list(P,I+T,J)
- KL<-list(Tmp)
- }
- for (N in Looprange(2,length(KL1)))
- {
- Tmp<-KL1[[N]]
- P<-Tmp[[1]]
- Flg<-0
- for (K in 1:length(KL))
- {
- if(1>length(KL)) break
- Tmp<-KL[[K]]
- if(Norm(P-Tmp[[1]])^2<SqEps)
- {
- Flg<-1
- break
- }
- }
- if(Flg==0)
- {
- Tmp<-KL1[[N]]
- T<-Tmp[[2]]
- I<-Tmp[[3]]
- J<-Tmp[[4]]
- Tmp<-list(P,I+T,J)
- KL<-append(KL,list(Tmp))
- }
- }
- for (N in Looprange(1,length(KL2)))
- {
- Tmp<-KL2[[N]]
- P<-Tmp[[1]]
- Flg<-0
- for (K in Looprange(1,length(KL)))
- {
- Tmp<-KL[[K]]
- if(Norm(P-Tmp[[1]])^2<SqEps)
- {
- Flg<-1
- break
- }
- }
- if(Flg==0)
- {
- Tmp<-KL2[[N]]
- T<-Tmp[[2]]
- T<-min(max(T,0),1)
- I<-Tmp[[3]]
- J<-Tmp[[4]]
- Tmp<-list(P,I+T,J)
- KL<-append(KL,list(Tmp))
- }
- }
- return(KL)
-}
-
-###########################################
-# 13.12.20 debugged
-
-Invdashline<- function(...)
-{
- varargin<- list(...)
- Nargs<- length(varargin)
- Nall<- Nargs; Sen<- 1 ; Gap<- 1
- Tmp<- varargin[[Nall]]
- if(is.numeric(Tmp) && length(Tmp)==1 && Tmp>0){ # 13.12.20
- Tmp1<- varargin[[Nall-1]]
- if(is.numeric(Tmp1) && length(Tmp1)==1 && Tmp1>0){ # 13.12.20
- Sen<- Tmp1; Gap<- Tmp
- Nall<- Nall-2
- }
- else{
- Sen<- Tmp; Gap<- Sen
- Nall<- Nall-1
- }
- }
- Sen<- 1000/2.54/MilliIn*Sen
- Gap<- 1000/2.54/MilliIn*Gap
- for (N in Looprange(1,Nall)){
- Figdata<- varargin[[N]]
- Makehasen(Figdata,Sen,Gap,1)
- }
-}
-
-#########################################
-
-Invert<- function(Pd)
-{
- OutL=Pd[nrow(Pd):1,]
- return(OutL)
-}
-
-############################################
-
-InWindow<-function(PA)
-{
- Eps<-10.0^(-6);
- if((length(PA)==2)&(is.numeric(PA))){ # 17.11.20
- X<-PA[1]; Y<-PA[2];
- if(X>XMIN-Eps && X<XMAX+Eps && Y>YMIN-Eps && Y<YMAX+Eps)
- Rx<-"i"
- else
- Rx<-"o"
- return(Rx)
- }else{
- return("o")
- }
-}
-
-#######################################
-
-Joincrvs<- function(...)
-{
- varargin<- list(...)
- Nall<- length(varargin)
- Eps<- 10^(-4)
- Tmp<- varargin[[Nall]]
- if(mode(Tmp)=="numeric" && length(Tmp)==1){
- Eps<- Tmp
- Nall<- Nall-1
- }
- QdL<- Flattenlist(varargin[1:Nall]) # 11.06.25
- if(length(QdL)==0){
- PtL<-c()
- return(PtL)
- }
- PtL<- Op(1,QdL)
- for (I in Looprange(2,length(QdL))){
- Qd<- Op(I,QdL)
- if(Numptcrv(Qd)<=1){next} # 11.06.25
- P<- Ptend(PtL)
- S<- Ptstart(PtL)
- Q<- Ptstart(Qd)
- R<- Ptend(Qd)
- MN<- min(Norm(P-Q),Norm(P-R),Norm(S-Q),Norm(S-R))
- if(MN==Norm(P-R)){
- Qd<- Invert(Qd)
- }
- else if(MN==Norm(S-Q)){
- PtL=Invert(PtL)
- }
- else if(MN==Norm(S-R)){
- PtL<- Invert(PtL)
- Qd<- Invert(Qd)
- }
- if(MN>Eps){
- PtL<- Appendrow(PtL,Qd)
- }
- else{
- if(is.null(nrow(Qd))){ Qd<- as.matrix(Qd,nrow=1)}
- PtL<- Appendrow(PtL,Qd[2:nrow(Qd),]) # 11.06.25
- }
- }
- return(PtL)
-}
-
-########################################
-# 2011.11.02
-
-Joingraphics<- function(...)
-{
- varargin<- list(...)
- Ls<- Flattenlist(varargin)
- N<- length(Ls)
- Tp<- Ls[[N]]
- Listflg<- 0
- if( is.character(Tp)){
- Tmp<- toupper(substr(Tp,1,1))
- if(Tmp=="L"){
- Listflg<- 1
- }
- N<- N-1
- Ls<- Ls[1:N]
- }
- if(Listflg==1){
- P<- Ls
- }
- else{
- P<- c()
- for (I in 1:N){
- Tmp<- Ls[[I]]
- P<- Appendrow(P,c(Inf,Inf))
- P<- Appendrow(P,Tmp)
- }
- P<- P[2:nrow(P),]
- }
- return(P)
-}
-
-########################################
-
-Kouten<- function(PA,V,P,Q)
-{
- Eps<- 10.0^(-6)
- A1<- PA[1]; A2<- PA[2]
- V1<- V[1]; V2<- V[2]
- P1<- P[1]; P2<- P[2]
- U1<- Q[1]-P1; U2<- Q[2]-P2
- Tmp<- Norm(P-Q)*Norm(V)
- if(Tmp==0)
- {
- Out<- list(Inf,-Inf)
- return(Out)
- }
- D<- U1*V2-U2*V1
- if(abs(D)/Tmp<Eps)
- {
- Out<- list(Inf,-Inf)
- return(Out)
- }
- S<- ((-A2+P2)*V1+(A1-P1)*V2)/D
- if(S>1+Eps || S<Eps)
- {
- Out<-list(Inf,-Inf)
- return(Out)
- }
- T<- ((-A2+P2)*U1+(A1-P1)*U2)/D
- Tmp<- PA+T*V
- Out<- list(T,Tmp,sign(D))
- return(Out)
-}
-
-##########################################
-
-KoutenList<- function(PA,V,Bdy)
-{
- Eps<-10.0^(-6)
- TenL<-list()
- for (N in 1:length(Bdy))
- {
- KL<- Op(N,Bdy)
- for (K in Looprange(1, Nrow(KL)-1))
- {
- P<- Op(K,KL); Q<- Op(K+1,KL)
- if(P!="/" && Q!="/")
- {
- Tmp<- Kouten(PA,V,P,Q);
- if(Tmp[[1]]!=Inf)
- {
- Ten<- append(Tmp,N)
- Flg<- 0
- NN<- length(TenL)
- I<- 1
- while (Flg==0 && I<=NN)
- {
- Tmp<- Op(I,TenL)
- if(Op(1,Ten)<Op(1,Tmp)-Eps)
- {
- Tmp1<- TenL[Looprange(1,I-1)]
- Tmp2<- TenL[Looprange(I,length(TenL))]
- TenL<- Mixjoin(Tmp1,list(Ten),Tmp2)
- Flg<-1
- }
- else
- if(Op(1,Ten)<Op(1,Tmp)+Eps)
- {
- if(Op(4,Ten)!=Op(4,Tmp))
- {
- Tmp1<- TenL[Looprange(1,I-1)]
- Tmp2<- TenL[Looprange(I,length(TenL))]
- TenL<- Mixjoin(Tmp1,list(Ten),Tmp2)
- Flg<-1
- }
- else
- if(Op(3,Ten)!=Op(3,Tmp))
- {
- Tmp1<- TenL[Looprange(I,I-1)]
- Tmp2<- TenL[Looprange(I+1,length(TenL))]
- TenL<- Mixjoin(Tmp1,Tmp2)
- }
- Flg<- 1
- }
- I<- I+1
- }
- if(Flg==0)
- {
- TenL<- Mixjoin(TenL,list(Ten))
- }
- }
- }
- }
- }
- return(TenL)
-}
-
-##########################################
-
-Koutenseg<-function(...)
-{
- #pointdata on AB at which AB intersects CD
- varargin<-list(...)
- Nargs<-length(varargin)
- Eps0 <- 10^(-4)
- A<-varargin[[1]]; V<-varargin[[2]]-A
- Sv2 <- V[1]^2+V[2]^2
- if(Sv2<10^(-6))
- {
- Out<-Inf
- return(Out)
- }
- P<-varargin[[3]]-A; Q<-varargin[[4]]-A
- Eps <- 10.0^(-3)
- if(Nargs>=5)
- {
- Eps<-varargin[[5]]
- }
- Eps2 <- 0.2
- if(Nargs>=6)
- {
- Eps2<-varargin[[6]]
- }
- Eps<-min(Eps2,Eps/sqrt(Sv2))
- P1<-(P[1]*V[1]+P[2]*V[2])/Sv2
- P2<-(-P[1]*V[2]+P[2]*V[1])/Sv2
- Q1<-(Q[1]*V[1]+Q[2]*V[2])/Sv2
- Q2<-(-Q[1]*V[2]+Q[2]*V[1])/Sv2
- m1 <- -Eps; M1 <- 1+Eps
- m2 <- -Eps; M2 <- Eps
- if(max(P1,Q1)<m1 || min(P1,Q1)>M1)
- {
- Out<-Inf
- return(Out)
- }
- if(max(P2,Q2)<m2 || min(P2,Q2)>M2)
- {
- Out<-Inf
- return(Out)
- }
- if(P2*Q2<0)
- {
- T<- P1-(Q1-P1)/(Q2-P2)*P2
- if(T>m1 && T<M1)
- {
- if(T > -Eps0 && T<1+Eps0)
- {
- Tmp1<-A+T*V
- Tmp2<-min(max(T,0),1)
- Out<-list(Tmp1,Tmp2,0)
- }
- else
- {
- Tmp1<-A+T*V
- Tmp2<-min(max(T,0),1)
- Out<-list(Tmp1,Tmp2,1)
- }
- return(Out)
- }
- if(P1<m1 || P1>M1 || P2<m2 || P2>M2)
- {
- if(Q1<m1 || Q1>M1 || Q2<m2 || Q2>M2)
- {
- Out<-Inf
- return(Out)
- }
- T<-min(max(Q1,0),1)
- Tmp=A+T*V
- Out<-list(Tmp,T,1)
- return(Out)
- }
- T<-min(max(P1,0),1)
- Tmp<-A+T*V
- Out<-list(Tmp,T,1)
- return(Out)
- }
- if(P1> -Eps0 && P1<1+Eps0 && P2> -Eps0 && P2 < Eps0)
- {
- T<- P1
- Tmp<- A+T*V
- Out<- list(Tmp, T, 0)
- return(Out)
- }
- if(Q1> -Eps0 && Q1<1+Eps0 && Q2> -Eps0 && Q2<Eps0)
- {
- T<- Q1
- Tmp<-A+T*V
- Out<- list(Tmp,T,0)
- return(Out)
- }
- if(P1<m1 || P1>M1 || P2<m2 || P2>M2)
- {
- if(Q1<m1 || Q1>M1 || Q2<m2 || Q2>M2)
- {
- Out<-Inf
- return(Out)
- }
- T<-min(max(Q1,0),1)
- Tmp<-A+T*V
- Out<-list(Tmp,T,1)
- return(Out)
- }
- if(Q1<m1 || Q1>M1 || Q2<m2 || Q2>M2)
- {
- T<-min(max(P1,0),1)
- Tmp<-A+T*V
- Out<-list(Tmp,T,1)
- return(Out)
- }
- if(abs(P2)<abs(Q2))
- {
- T<-min(max(P1,0),1)
- }
- else
- {
- T<-min(max(Q1,0),1)
- }
- Tmp<A+T*V
- Out<-list(Tmp,T,1)
- return(Out)
-}
-
-##########################################
-
-Kukeiwake<- function(PL)
-{
- Eps<-10.0^(-6)
- NW<- c(XMIN,YMAX); SW<-c(XMIN,YMIN)
- SE<- c(XMAX,YMIN); NE<-c(XMAX,YMAX)
- Tmp<-matrix(c(NW,SW,SE,NE,NW),nrow=2)
- Sikaku<- t(Tmp)
- Kt<- IntersectcrvsPp(PL,Sikaku)
- if(length(Kt)!=2)
- {
- print("not two points")
- return(c())
- }
- Tmp<- Op(1,Kt)
- Pt1<- Op(1,Tmp)
- N1<- trunc(Op(2,Tmp))
- M1<- Op(3,Tmp)
- Tmp<- Op(2,Kt)
- Pt2<- Op(1,Tmp)
- N2<- trunc(Op(2,Tmp))
- M2<- Op(3,Tmp)
- T1<- Paramoncurve(Pt1,M1,Sikaku) #18.02.06
- T2<- Paramoncurve(Pt2,M2,Sikaku)
- QL<c()
- if(Norm(Pt1-Op(N1+1,PL))>Eps)
- {
- QL<-Pt1
- }
- Tmp<-Appendrow(QL,PL[(N1+1):N2,])
- QL<- Tmp
- if(Norm(Pt2-Op(N2,PL))>Eps)
- {
- Tmp<-Appendrow(QL,Pt2)
- QL<- Tmp
- }
- HidariL<- QL
- Ms<- M2+1; Me<- M1
- if(T1<T2+Eps) Me<- M1+4
- for (M in Looprange(Ms,Me))
- {
- Tmp<- Op(Nrow(HidariL),HidariL)
- P<-Op(((M-1) %% 4)+1,Sikaku)
- if(Norm(Tmp-P)>Eps)
- {
- Tmp<-Append(HidariL,P)
- HidariL<-Tmp
- }
- }
- Tmp<- Op(Nrow(HidariL),HidariL)
- if(Norm(Tmp-Pt1)>Eps)
- {
- Tmp<-Append(HidariL,Pt1)
- HidariL<-Tmp
- }
- MigiL<- QL
- Ms<- M2; Me<- M1+1
- if(T1>T2-Eps) Me<- Me-4
- for (Mm in Looprange(Me,Ms))
- {
- M<- Me+Ms-Mm
- Tmp<- Op(Nrow(MigiL),MigiL)
- P<- Op(((M-1) %% 4)+1,Sikaku)
- if(Norm(Tmp-P)>Eps)
- {
- Tmp<-Appendrow(MigiL,P)
- MigiL<-Tmp
- }
- }
- Tmp<- Op(Nrow(MigiL),MigiL)
- if(Norm(Tmp-Pt1)>Eps)
- {
- Tmp<-Appendrow(MigiL,Pt1)
- MigiL<-Tmp
- }
- Out<- list(HidariL,MigiL)
- return(Out)
-}
-
-###################################
-# 17.09.24 Eps
-
-Kyoukai<- function(...)
-{
- varargin<- list(...)
- Nargs<- length(varargin)
- Eps0<- 10^(-7)
- DataL<-list()
- for (I in 1:Nargs){
- Tmp<- varargin[[I]]
- if(mode(Tmp)=="numeric"){
- DataL<- Mixjoin(DataL,list(list(Tmp)))
- }
- if(mode(Tmp)=="list"){
- if(mode(Tmp[[1]])!="list"){
- DataL<- Mixjoin(DataL, list(Tmp))
- }
- else{
- DataL<-Mixjoin(DataL,Tmp)
- }
- }
- }
- Eps<- 10.0^(-4) #17.09.24
- PLall<- list()
- Sflg<- 0
- N<- length(DataL)
- for (I in Looprange(1,N)){
- Data<- Op(I, DataL)
- Tmp<- Op(length(Data),Data)
- if(mode(Tmp)=="numeric" && Nrow(Tmp)==1 && length(Tmp)>1){
- Rg<-Tmp ; Nd<-length(Data)-1
- }
- else{
- if(mode(Tmp)=="character"){
- Rg<- Tmp ; Nd<-length(Data)-1
- }
- else{
- Rg<- "c" ; Nd<-length(Data)
- }
- }
- for (J in Looprange(1,Nd)){
- Tmp<- Op(J,Data)
- if(mode(Tmp)=="character"){
- Rg<- Tmp
- next
- }
- Points<- Tmp
- P1<- Ptstart(Points)
- P2<- Ptend(Points)
- if(J==1){
- PL<- Points
- Pfirst<- P1
- Plast<- P2
- if(Nd>=2){
- Tmp<- Op(2,Data)
- P<- Ptstart(Tmp)
- Q<- Ptend(Tmp)
- if(Norm(P2-P)>Eps && Norm(P2-Q)>Eps){
- Tmp< Length(PL)
- PL<-PL[Tmp:1,]
- Pfirst<- Ptstart(PL)
- Plast<- Ptend(PL)
- }
- }
- }
- else{
- if(Norm(P1-Plast)<Eps){
- Stp<-1; Ks<-2; Ke=Length(Points)
- }
- else{
- if(Norm(P2-Plast)<Eps) {
- Stp<- -1; Ks<-Length(Points)-1; Ke=1
- }
- else{
- Tmp<-Appendrow(PL,c(Inf,Inf))
- PL<- Appendrow(Tmp,Points)
- Sflg<- 1
- Pfirst<- P1
- Plast<- P2
- Stp<- 1; Ks<- Length(Points)-1; Ke<- 1
- }
- }
- for (K in seq(Ks,Ke, by=Stp)){
- Tmp<- Appendrow(PL,Op(K,Points))
- PL<-Tmp
- }
- Plast<- Op(Ke,Points)
- }
- }
- if(Norm(Pfirst-Plast)>Eps){
- Np<- Length(PL)
- if(Rg=="c"){
- Tmp<- Appendrow(PL,Pfirst)
- PL<- Tmp
- }
- else if(Rg=="s"){
- Tmp<- c(PL[1:Np,2],YMIN)
- Y<- min(Tmp)-1
- P<- c(Plast[1],Y); Q<- c(Pfirst[1],Y)
- Tmp<- Appendrow(PL,P)
- Tmp=Appendrow(Tmp,Q)
- PL=Appendrow(Tmp,Pfirst)
- }
- else if(Rg=="n"){
- Tmp<- c(PL[1:Np,2],YMAX)
- Y<-max(Tmp)+1
- P<- c(Plast[1],Y); Q<- c(Pfirst[1],Y)
- Tmp<- Appendrow(PL,P)
- Tmp<- Appendrow(Tmp,Q)
- PL<- Appendrow(Tmp,Pfirst)
- }
- else if(Rg=="w"){
- Tmp<- c(PL[1:Np,1],XMIN)
- X<- min(Tmp)-1
- P<- c(X,Plast[2]); Q<- c(X,Pfirst[2])
- Tmp<- Appendrow(PL,P)
- Tmp<- Appendrow(Tmp,Q)
- PL<- Appendrow(Tmp,Pfirst)
- }
- else if(Rg=="e"){
- Tmp<- c(PL[1:Np,1],XMAX)
- X<- max(Tmp)+1
- P<- c(X,Plast[2]); Q<- c(X,Pfirst[2])
- Tmp<- Appendrow(PL,P)
- Tmp<- Appendrow(Tmp,Q)
- PL<- Appendrow(Tmp,Pfirst)
- }
- else if(mode(Rg)=="numeric" && Nrow(Rg)==1 && length(Rg)>1){
- Tmp<- Kukeiwake(PL)
- Tmp1<- Op(1,Tmp)
- Tmp2<- Naigai(Rg,list(Tmp1))
- if(Tmp2==c(1)){
- PL<-Op(1,Tmp)
- }
- else{
- PL<- Op(2,Tmp)
- }
- }
- }
- Tmp<- Ptstart(PL)
- for (J in Looprange(2,Length(PL))){
- P<- Op(J,PL)
- Q<- Op(Length(Tmp),Tmp)
- if(Norm(P-Q)>Eps){
- Tmp1<-Appendrow(Tmp,P)
- Tmp<-Tmp1
- }
- }
- PL<-Tmp
- PLall<-c(PLall,list(PL))
- }
- if(length(PLall)==1 && Sflg==0){
- Tmp<- Op(1,PLall)
-# Tmp<- Op(1,Tmp)
- if(Norm(Ptstart(Tmp)-Ptend(Tmp))>Eps0){
- Tmp1<- Appendrow(Tmp,Ptstart(Tmp))
- PLall<- list(Tmp1)
- }
- }
- return(PLall)
-}
-
-######################################
-
-Letter<-function(...)
-{ ## Scaling is implemented
- varargin<-list(...)
- Nargs<-length(varargin)
- Irng<-c(seq(from=1,to=Nargs,by=3))
- for (I in Irng)
- {
- Tmp<-varargin[[I]]
- P<- Doscaling(Tmp)
- X<-P[1]
- Y<-P[2]
- Houkou<-varargin[[I+1]]
- Mojiretu<-varargin[[I+2]]
- Hset<-Houkou
- Vhoko<-"c"
- if(length(grep("n",Hset))>0)
- {
- Vhoko<-"n"; Y<-Y+MEMORI
- }
- if(length(grep("s",Hset))>0)
- {
- Vhoko<-"s"; Y<-Y-MEMORI
- }
- Hhoko<-"c"
- if(length(grep("e",Hset))>0)
- {
- Hhoko<-"e"; X<-X+MEMORI
- }
- if(length(grep("w",Hset))>0)
- {
- Hhoko<-"w"; X<-X-MEMORI
- }
- Hoko<-paste(Vhoko,Hhoko,sep="")
- Suu<-"+-.0123456789"
- SuuL<-Suu
- J<-1; Dstr<-""
- while (J<=nchar(Houkou))
- {
- Tmp<-substring(Houkou,J,J)
- if(length(grep(Tmp,SuuL))>0)
- {
- if(Dstr=="") Hk<-substring(Houkou,J-1,J-1)
- Dstr<-paste(Dstr,Tmp,sep="")
- }
- else
- {
- if(Dstr!="")
- {
- Nmbr<-as.numeric(Dstr)
- D<-Nmbr*MEMORI
- if(Hk=="n") Y<-Y+D
- if(Hk=="s") Y<-Y-D
- if(Hk=="e") X<-X+D
- if(Hk=="w") X<-X-D
- Dstr<-""
- }
- }
- J<-J+1
- }
- if(Dstr!="")
- {
- Nmbr<-as.numeric(Dstr)
- D<-Nmbr*MEMORI;
- if(Hk=="n") Y<-Y+D
- if(Hk=="s") Y<-Y-D
- if(Hk=="e") X<-X+D
- if(Hk=="w") X<-X-D
- }
- CalcWidth(Hoko,Mojiretu)
- CalcHeight(Hoko,Mojiretu)
- cat("\\put(",file=Wfile,append=TRUE)
- Tmp1<- sprintf("%7.7f",X) # 11.07.19
- Tmp2<- sprintf("%7.7f",Y) # 11.07.19
- Str<-paste(Tmp1,",",Tmp2,sep="")
- cat(Str,file=Wfile,append=TRUE)
- Tmp<-"){\\hspace*{\\Width}"
- Str<-paste(Tmp,"\\raisebox{\\Height}{",Mojiretu,"}}%\n",sep="")
- cat(Str,file=Wfile,append=TRUE)
- cat("%\n",file=Wfile,append=TRUE)
- }
-}
-
-######################################################
-
-Letterrot<- function(...)
-{
- varargin<- list(...)
- P<- varargin[[1]]
- V<- varargin[[2]]; N<- 3
- P<- Doscaling(P)
- V<- Doscaling(V)
- Tmov<- 0
- Tmp<- varargin[[N]]
- if(mode(Tmp)=="numeric"){
- Tmov<- Tmp; N<- N+1
- }
- Nmov<- 0
- Tmp<- varargin[[N]]
- if(mode(Tmp)=="numeric"){
- Nmov<- Tmp; N<- N+1
- }
- Mojiretu<- Assign(varargin[[N]]) #2017.11.26
- Tv<- 1/Norm(V)*V
- Nv<- c(-Tv[2],Tv[1])
- P<- P+MEMORI*Tmov*Tv+MEMORI*Nmov*Nv
- Tmp<- acos(V[1]/Norm(V))
- Theta<- round(Tmp*180/pi)
- if(V[2]>=0){
- Units<- ""
- }
- else{
- Units<- "units=-360,"
- }
- Tmp<- paste("\\rotatebox[",Units,"origin=c]{",as.character(Theta),sep="")
- Tmp<- paste(Tmp,"}{",Mojiretu,"}",sep="")
- Letter(P,"c",Tmp)
-}
-
-###################################
-# 10.12.04
-
-Lineplot<-function(...)
-{
- varargin <- list(...)
- Nargs<-length(varargin)
- A<-varargin[[1]]
- if(is.numeric(A)) {
- Tmp<-length(A)
- if(Tmp>3) {
- B <- A[(Tmp/2+1):Tmp]
- A <- A[1:(Tmp/2)]
- Is <- 2
- }
- else {
- B<-varargin[[2]]
- Is <- 3
- }
- }
- else {
- B<-A[[2]]
- A<-A[[1]]
- Is <- 2
- }
- Mag <- 100 ; Semi <- "" ## 10.12.04
- for (I in Looprange(Is,Nargs)) {
- Tmp <- varargin[[I]]
- switch ( mode(Tmp),
- "numeric"= Mag <- Tmp,
- "character"= Semi <- Tmp
- )
- }
-V<- Mag/Norm(B-A)*(B-A) ## 10.12.04 from here
- if(Semi=="") {
- Out<- Listplot(c(A-V,A+V))
- }
- else if(Semi=="+") {
- Out<- Listplot(c(A,A+V))
- }
- else {
- Out<- Listplot(c(A-V,A))
- } ## 10.12.04 to here
- return(Out)
-}
-
-################################
-
-Listplot<-function(...)
-{
- varargin<-list(...);
- Z<-c();
- for (I in 1:length(varargin))
- {
- Data<-varargin[[I]];
- if(mode(Data)=="numeric")
- {
- if(class(Data)=="numeric")
- {
- Tmp<-matrix(Data,nrow=2);
- Tmp<-t(Tmp);
- Z<-Appendrow(Z,Tmp)
- }
- else
- Z<-Appendrow(Z,Data)
- }
- else
- {
- for (J in 1:length(Data))
- {
- Tmp<-Data[[J]];
- Z<-Appendrow(Z,Tmp)
- }
- }
- }
- return(Z)
-}
-
-##############################
-
-MakeBowdata <- function(PA,PB,H)
-{
- Eps <- 10^(-5)
- BOWSTART <<- PA
- BOWEND <<- PB
- D <- 1/2*Norm(PB-PA)
- R <- (H^2+D^2)/(2*H)
- A1 <- PA[1]; A2<-PA[2]
- B1 <- PB[1]; B2<-PB[2]
- if(abs(A2-B2)>Eps){
-# x <- poly(0,"X")
-# y <- -(A1-B1)*x/(A2-B2)+(1/2)*(A1^2+A2^2-B1^2-B2^2)/(A2-B2)
-# Eq1 <- (A1-x)^2+(A2-y)^2-R^2
-# Tmp <- coeff(Eq1)
-# C0 <- Tmp[1]; C1<-Tm[2]; C2<-Tmp[3]
- C0<- A1^2+(A2-(1/2)*(A1^2+A2^2-B1^2-B2^2)/(A2-B2))^2-R^2
- C1<- -(A1+B1)*(A2^2+B2^2-2*A2*B2-2*A1*B1+A1^2+B1^2)/(A2-B2)^2
- C2<- 1+(A1-B1)^2/(A2-B2)^2
- Det <- sqrt(C1^2-4*C0*C2)
- Ansx1 <- (-C1+Det)/(2*C2)
- Ansx2 <- (-C1-Det)/(2*C2)
- Tmp <- -(A1-B1)*Ansx1/(A2-B2)+(1/2)*(A1^2+A2^2-B1^2-B2^2)/(A2-B2)
- PC <- c(Ansx1,Tmp)
- Tmp <--(A1-B1)*Ansx2/(A2-B2)+(1/2)*(A1^2+A2^2-B1^2-B2^2)/(A2-B2)
- PC2 <- c(Ansx2,Tmp)
- }
- else{
- Tmp <- 0.5*(PA+PB)
- PC <- Tmp+c(0,R-H) # 11.06.02
- PC2 <- Tmp-c(0,R-H)
- }
- VA <- PA-PC
- VB <- PB-PC
- if(VA[1]*VB[2]-VA[2]*VB[1]<0) {
- PC <- PC2
- }
- AngA <- acos((PA[1]-PC[1])/R)
- if(PA[2]-PC[2]<0){
- AngA <- -AngA
- }
- AngB <- acos((PB[1]-PC[1])/R)
- if(PB[2]-PC[2]<0){
- AngB <- -AngB
- }
- if(AngA>AngB) {
- AngB <- AngB+2*pi
- }
- Out <- list(PC,R,AngA,AngB)
- return(Out)
-}
-
-####################################################
-
-MakeCurves<-function(...){ ## Scaling is implemented
- varargin<-list(...)
- Figdata<-varargin[[1]]
- if(class(Figdata)=="numeric"){
- Figdata<-matrix(Figdata,nrow=1)
- }
- Ptout<-1
- if(length(varargin)>=2) Ptout<-varargin[[2]]
- Eps<-10.0^(-6)
- IndM<-Dataindex(Figdata)
- Atos<-c()
- for (Nd in 1:Nrow(IndM)){
- Tmp<-IndM[Nd,]
- Motos<-Figdata[Tmp[1]:Tmp[2],]
- All<-Nrow(Motos)
- if(Nrow(Motos)==1){
- if(InWindow(Motos)=="o"){
- next
- }
- Tmp1<- as.numeric(Motos)
- if(Ptout==1){
- Drwpt(Tmp1)
- }
- else{
- Tmp1<- Doscaling(Tmp1)
- Atos<-Appendrow(Atos,c(Inf,Inf),Tmp1)
- next
- }
- }
- Crv<-c()
- for (I in Looprange(2,All)){
- P<- Op(I-1,Motos)
- Q<- Op(I,Motos)
- Snbn<-MeetWindow(P,Q)
- if(length(Snbn)==0){
- if(length(Crv)>0){
- Atos<-Appendrow(Atos,c(Inf,Inf),Doscaling(Crv))
- Crv<-c()
- }
- }
- else{
- if(Norm(Snbn[1,]-Snbn[2,])<Eps){ next} # naosi 101202
- if(length(Crv)==0){
- Crv<-Snbn
- }
- else{
- Tmp<-Op(Nrow(Crv),Crv)
- if(Norm(Tmp-Op(1,Snbn))<Eps){
- Crv<-Appendrow(Crv,Op(2,Snbn))
- }
- else{
- Atos<-Appendrow(Atos,c(Inf,Inf),Doscaling(Crv))
- Crv<-Snbn
- }
- }
- }
- }
- if(Nrow(Crv)>=2)
- {
- Atos<-Appendrow(Atos,c(Inf,Inf),Doscaling(Crv))
- }
- }
- Outdata<-Atos[2:Nrow(Atos),]
- if(class(Outdata)=="numeric")
- {
- Outdata<-matrix(Outdata,nrow=1)
- }
- return(Outdata)
-}
-
-######################################
-
-Makehasen<- function(Figdata,Sen,Gap,Ptn)
-{
- Eps<- 10.0^(-6)
- Clist<- MakeCurves(Figdata)
- DinM<- Dataindex(Clist)
- for (N in Looprange(1,Nrow(DinM))){
- Tmp<- DinM[N,]
- Data<- Clist[Tmp[1]:Tmp[2],]
- Dtall<- Nrow(Data)
- Len<- 0
- Lenlist<- c(0)
- for (I in Looprange(2,Dtall)){
- Len<- Len+Norm(Data[I,]-Data[I-1,])
- Lenlist<- c(Lenlist,Len)
- }
- Lenall<- Lenlist[Dtall]
- if(Lenall==0){
- next
- }
- Kari<- (Sen+Gap)*0.1
- Naga<- Sen*0.1
- Tobi<- Gap*0.1
- if(Norm(Data[1,]-Data[Dtall,])<Eps){
- Nsen<- max(ceiling(Lenall/Kari),3)
- SegUnit<- Lenall/Nsen
- Naga<- SegUnit*Sen/(Sen+Gap)
- Tobi<- SegUnit*Gap/(Sen+Gap)
- SegList<- c(seq(0,(Nsen-1)*SegUnit,by=SegUnit))
- }
- else{
- if(Ptn==0){
- Nsen<- max(ceiling((Lenall+Tobi)/Kari),3)
- SegUnit<- Lenall*(Sen+Gap)/(Nsen*Sen+(Nsen-1)*Gap)
- Naga<- SegUnit*Sen/(Sen+Gap)
- Tobi<- SegUnit*Gap/(Sen+Gap)
- SegList<- c(seq(0,(Nsen-1)*SegUnit,by=SegUnit))
- }
- else{
- Nsen<- max(ceiling((Lenall+Naga)/Kari),3)
- SegUnit<- Lenall*(Sen+Gap)/((Nsen-1)*Sen+Nsen*Gap)
- Naga<- SegUnit*Sen/(Sen+Gap)
- Tobi<- SegUnit*Gap/(Sen+Gap)
- SegList<- c(seq(Tobi,Tobi+(Nsen-2)*SegUnit,by=SegUnit))
- }
- }
- Hajime<- 1; Owari<- 1
- Mojisu<- 0
- for (I in Looprange(1,length(SegList))){
- Len<- SegList[I]
- J<- Owari
- while (Len>=Lenlist[J]-Eps){
- if(J==Dtall){
- break
- }
- J<- J+1
- }
- Hajime<- J-1
- J<- Hajime
- while (Len+Naga>Lenlist[J]-Eps){
- if(J==Dtall){
- break
- }
- J<- J+1
- }
- Owari<- J-1
- T<- (Len-Lenlist[Hajime])
- T<- T/(Lenlist[Hajime+1]-Lenlist[Hajime])
- P<- Data[Hajime,]+T*(Data[Hajime+1,]-Data[Hajime,])
- X<- as.character(round(MilliIn*P[1]))
- Y<- as.character(-round(MilliIn*P[2]))
- Str<- paste("\\special{pa ",X," ",Y,"}",sep="")
- cat(Str,file=Wfile,append=TRUE)
- Mojisu<- Mojisu+nchar(Str)
- for (J in Looprange(Hajime+1,Owari)){
- P<- Data[J,]
- X<- as.character(round(MilliIn*P[1]))
- Y<- as.character(-round(MilliIn*P[2]))
- Str<- paste("\\special{pa ",X," ",Y,"}",sep="")
- cat(Str,file=Wfile,append=TRUE)
- Mojisu<- Mojisu+nchar(Str)
- }
- T<- (Len+Naga-Lenlist[Owari])
- T<- T/(Lenlist[Owari+1]-Lenlist[Owari])
- P<- Data[Owari,]+T*(Data[Owari+1,]-Data[Owari,])
- X<- as.character(round(MilliIn*P[1]))
- Y<- as.character(-round(MilliIn*P[2]))
- Str1<- paste("\\special{pa ",X," ",Y,"}",sep="")
- Str2<- "\\special{fp}"
- cat(Str1,file=Wfile,append=TRUE)
- cat(Str2,file=Wfile,append=TRUE)
- Mojisu<- Mojisu+nchar(Str1)+nchar(Str2)
- if(Mojisu>80){
- cat("%\n",file=Wfile,append=TRUE)
- Mojisu<- 0
- }
- }
- }
- cat("%\n%\n",file=Wfile,append=TRUE);
-}
-
-######################################
-
-Makeliststr<- function(L)
-{
- Out="list("
- for (I in 1:length(L)){
- Dt<- L[[I]]
- if(mode(Dt)=="numeric"){
- if(length(Dt)==1){
- Dts<- as.character(Dt)
- }
- else{
- Dts<- "c("
- for (J in Looprange(1,Nrow(Dt))){
- for (K in 1:ncol(Dt)){
- Dts<- paste(Dts,as.character(Dt[J,K]),sep="")
- if(K< ncol(Dt)){
- Dts<- paste(Dts,",",sep="")
- }
- }
- if(J<Nrow(Dt)){
- Dts<- paste(Dts,";",sep="")
- }
- else{
- Dts<- paste(Dts,")",sep="")
- }
- }
- }
- }
- if(mode(Dt)=="character"){
- Dts<- paste(Prime(),Dt,Prime(),sep="")
- }
- if(mode(Dt)=="list"){
- Dts<- Makeliststr(Dt)
- }
- Out<- paste(Out,Dts,sep="")
- if(I<length(L)){
- Out<- paste(Out,",")
- }
- else{
- Out<- paste(Out,")",sep="")
- }
- }
- return(Out)
-}
-
-############################################
-
-Makeshasen<- function(PtnL,PA,V,Bdy)
-{
- Eps<- 10^(-6)
- TenL<- KoutenList(PA,V,Bdy)
- Nten<- length(TenL)
- Call<- length(Bdy)
- Ptn<- c(seq(0, 0, length=Call))
- Out<- list()
- GL<- c()
- Te<- -10^6
- for (I in Looprange(1,Nten-1)){
- TenP<- Op(I,TenL); TenQ<- Op(I+1,TenL)
- Ts<- Op(1,TenP)
- P<- Op(2,TenP); Q<- Op(2,TenQ)
- NC<- Op(4,TenP)
- Tmp<- (Op(NC,Ptn)+1) %% 2
- Ptn[NC]<- Tmp
- if(Op(1,TenQ)-Ts>Eps){
- if(Member(Ptn,PtnL)){
- if(abs(Te-Ts)>Eps){
- if(Nrow(GL)>0){
- Tmp<- Mixjoin(Out, list(GL))
- Out<- Tmp
- }
- GL<- Listplot(P,Q)
- }
- else{
- Tmp <- Appendrow(GL, Q)
- GL<- Tmp
- }
- Te<- Op(1,TenQ)
- }
- }
- }
- if(Nrow(GL)>0){
- Tmp<- Mixjoin(Out, list(GL))
- Out<- Tmp
- }
- return(Out)
-}
-
-#############################################
-
-Mawarikomi<- function(...)
-{
- varargin<- list(...)
- haba<- "10cm"
- Nargs<- length(varargin)
- if(Nargs>0){
- haba<- varargin[[1]]
- }
- cat("\\begin{mawarikomi}%\n",file="",append=TRUE)
- cat("%<1>[5](0,0)%\n",file="",append=TRUE)
- Str<- paste("{",haba,"}{%\n",sep="")
- cat(Str,file="",append=TRUE)
- cat("}%\n",file="",append=TRUE)
- cat("\\end{mawarikomi}",file="",append=TRUE)
-}
-
-##############################################
-
-MeetWindow<-function(PA,PB)
-{
- if(InWindow(PA)=="i" && InWindow(PB)=="i")
- {
- R<-Appendrow(PA,PB)
- return(R)
- };
- Horner<-function(n,t)
- {
- PT<-(1-t)*PA+t*PB;
- return(PT[n])
- }
- Eps<-10.0^(-6);
- Txm<-(-1); TxM<-(-1); Tym<-(-1); TyM<-(-1);
- if(PA[1]!=PB[1])
- {
- Txm<-(XMIN-PA[1])/(PB[1]-PA[1]);
- TxM<-(XMAX-PA[1])/(PB[1]-PA[1]);
- }
- if(PA[2]!=PB[2])
- {
- Tym<-(YMIN-PA[2])/(PB[2]-PA[2]);
- TyM<-(YMAX-PA[2])/(PB[2]-PA[2]);
- }
- Tmp<-Horner(2,Txm);
- if(Tmp<YMIN-Eps || Tmp>YMAX+Eps)
- {
- Txm<-(-1);
- }
- Tmp<-Horner(2,TxM);
- if(Tmp<YMIN-Eps || Tmp>YMAX+Eps)
- {
- TxM<-(-1)
- }
- Tmp<-Horner(1,Tym);
- if(Tmp<XMIN-Eps || Tmp>XMAX+Eps)
- {
- Tym<--1
- }
- Tmp<-Horner(1,TyM);
- if(Tmp<XMIN-Eps || Tmp>XMAX+Eps)
- {
- TyM<--1
- }
- Tans<-sort(c(Txm,TxM,Tym,TyM));
- Tmp<-c();
- for (I in 1:length(Tans))
- {
- Tmp1<-Tans[I];
- if(Tmp1>-Eps && Tmp1<1+Eps)
- {
- if(length(Tmp)==0)
- {
- Tmp<-c(Tmp1);
- }
- else
- {
- if(abs(Tmp[length(Tmp)]-Tmp1)>Eps)
- {
- Tmp<-c(Tmp,Tmp1)
- }
- }
- }
- }
- Tans<-Tmp;
- if(length(Tans)==0)
- {
- R<-c();
- return(R);
- }
- if(length(Tans)==1)
- {
- Ten1<-Horner(1:2,Tans[1]);
- if(InWindow(PA)=="i")
- {
- R<-Appendrow(PA,Ten1)
- return(R)
- }
- else
- {
- R<-Appendrow(Ten1,PB)
- return(R)
- }
- }
- Ten1<-Horner(1:2,Tans[1])
- Ten2<-Horner(1:2,Tans[2])
- R<-Appendrow(Ten1,Ten2)
- return(R)
-}
-
-#########################################
-
-# New 10.03.21
-
-Mixjoin<-function(...)
-{
- varargin<-list(...)
- Nargs<- length(varargin)
- M<- list()
- for (I in 1:Nargs)
- {
- Tmp<-varargin[[I]]
- if(length(Tmp)==0) next
- if(Mixtype(Tmp)==1)
- {
- Tmp<-list(Tmp)
- }
- if(length(M)==0){
- M <- Tmp
- }
- else{
- M<- c(M,Tmp)
- }
- }
- return(M)
-}
-
-#################################
-
-Mixlength<- function(PL){
- if(length(PL)==0){
- return(0)
- }
- if(Mixtype(PL)==1){
- Out<- Nrow(PL)
- }
- else{
- Out<- length(PL)
- }
- return(Out)
-}
-
-###########################################
-
-Mixtype<- function(D)
-{
- if(mode(D)!="list") return(1)
- for (I in 1:length(D))
- {
- Tmp<- D[[I]]
- if(mode(Tmp)=="list") return(3)
- }
- return(2)
-}
-
-###########################################
-
-Naigai<- function(A,Bdy)
-{
- V<- c(1,1)
- Call<-length(Bdy)
- KL<- KoutenList(A,V,Bdy)
- Ptn<- seq(1,1,length=Call)
- for (K in Looprange(1,length(KL)))
- {
- Ten<- Op(K,KL)
- T<- Op(1,Ten); NC<- Op(4,Ten)
- if(T<0)
- {
- Tmp<- (Ptn[NC]+1) %% 2
- Ptn[NC]<- Tmp
- }
- }
- return(Ptn)
-}
-
-########################################
-
-Nearestpt<- function(...){
- varargin<- list(...)
- Nargs<- length(varargin)
- PL1<- varargin[[1]]
- if(!is.matrix(PL1)){
- Tmp<- matrix(PL1);
- PL1<- t(Tmp)
- }
- if(Nrow(PL1)==1) Flg=0
- else Flg=1
- Eps<- 10.0^(-6)
- PL<- varargin[[2]]
- Ans<- list(PL1[1,],1,PL[1,],1,Norm(PL1[1,]-PL[1,]))
- for(N in Looprange(1,Nrow(PL1))){
- PA<- PL1[N,]
- Pm<- PL[1,]
- Im<- 1
- Sm<- Norm(Pm-PA)
- for(I in Looprange(1,Nrow(PL)-1)){
- A1<- PL[I,1]; A2<-PL[I,2]
- B1<- PL[I+1,1]; B2<-PL[I+1,2]
- V1<- B1-A1; V2<-B2-A2
- X1<- PA[1]; X2<-PA[2]
- Tmp<-V2^2+V1^2
- if(abs(Tmp)<Eps) next
- T<- (-A2*V2-V1*A1+V1*X1+X2*V2)/Tmp
- if(T< -Eps){
- P<- c(A1,A2)
- }else{
- if(T>1+Eps){
- P<- c(B1,B2)
- }else{
- P<- c(A1+T*V1,A2+T*V2)
- }
- }
- S<- Norm(P-PA)
- if(S<Sm-Eps){
- Tmp<- Paramoncurve(P,I,PL)
- Pm<- P; Im<- Tmp; Sm<- S
- }
- }
- if(Sm<Op(5,Ans)) Ans<- list(PA,N,Pm,Im,Sm)
- if(Flg==0){
- Ans<- Ans[3:5]
- }
- }
- return(Ans)
-}
-
-#########################################
-
-Newlength<- function()
-{
- Tmp1<- "\\newlength{\\Width}%\n"
- Tmp2<- "\\newlength{\\Height}%\n"
- Tmp3<- "\\newlength{\\Depth}%\n"
- cat(Tmp1,file="",append=TRUE);
- cat(Tmp2,file="",append=TRUE);
- cat(Tmp3,file="",append=TRUE);
-}
-
-#########################################
-
-Numptcrv<-function(Fig)
-{
- return(Nrow(Fig))
-}
-
-# 2018.01.29
-Length<- function(Data){
- if(is.matrix(Data)){return(nrow(Data))}
- if(is.character(Data)){return(nchar(Data))}
- return(length(Data))
-}
-
-#########################################
-
-Op<-function(N,Data)
-{
- C <- c()
- if(length(Data)==0) return(C)
- if(mode(Data)=="list"){
- if(class(Data)=="data.frame"){ # 10.02.23
- C<- Data[N,]
- }
- else{
- C<- Data[[N]]
- }
- return(C)
- }
- if(mode(Data)=="character"){
- if(length(Data)==1){
- C<- substring(Data,N,N)
- }
- else{
- C<- Data[N]
- }
- return(C)
- }
- if(mode(Data)=="numeric"){
- if(class(Data)=="matrix"){
- Din<- Dataindex(Data)
- if(nrow(Din)==1){
- C<- Data[N,]
- }
- else{
- Tmp1<- Din[N,1]
- Tmp2<- Din[N,2]
- C<- Data[Tmp1:Tmp2,]
- }
- }
- else{
- C=Data[N]
- }
- }
- return(C)
-}
-
-#########################################
-# 2013.05.20 Changed ( Creator recorded)
-# 2013.12.18 Beginpicture inclued
-
-Openfile<-function(...)
-{
- varargin<- list(...)
- File<- varargin[[1]]
- Bflg<- 0
- Wfile<<- File
- Creator<- ""
- Cflg<- 0
- Nargs<- length(varargin)
- for(N in Looprange(2,Nargs)){
- Tmp<- varargin[[N]]
- Tmp1<- strsplit(Tmp,"=",fixed=TRUE)
- Tmp1<- Tmp1[[1]]
- if(length(Tmp1)>1){
- Creator<- Tmp1[2]
- Cflg<- 1
- }
- else{
- Unitstr<- Tmp
- Bflg<- 1
- }
- }
- Recentf<- ""
- Fv<- list.files()
- Nv<- grep("\\.r$", Fv)
- Rfiles<- Fv[Nv]
- StrW<- paste("%%% ",File,sep="") #17.10.28
- StrC<- paste("%%% Generator=",Creator,sep="")
- if(Cflg==0){
- }
- cat(StrW,"\n",file=Wfile)
- cat(StrC,"\n",file=Wfile,append=TRUE)
- if(Bflg==1){
- Beginpicture(Unitstr)
- }
-}
-
-#########################################
-
-Openpar<- function(...)
-{
- varargin<- list(...)
- Nargs<- length(varargin)
- Tmp<- varargin[[1]]
- Tmp1<- substr(Tmp,1,1)
- if(Tmp1=="\\"){
- Namestr<- Tmp
- N<- 2
- }
- else{
- Namestr<- "\\tmp"
- N<- 1
- }
- Habastr<- varargin[[N]]
- if(Nargs>N){
- Posstr<- paste("[",varargin[[N+1]],"]",sep="")
- }
- else{
- Posstr<- "[c]"
- }
- Openphr(Namestr)
- S<- paste("\\begin{minipage}",Posstr,"{",Habastr,"}%\n",sep="")
- cat(S,file=Wfile,append=TRUE)
-}
-
-###################################
-
-Openphr<- function(Str)
-{
- S<- paste("\\def",Str,"{%\n",sep="")
- cat(S,file=Wfile,append=TRUE)
-}
-
-#####################################
-
-Ovalbox<- function(...)
-{
- varargin<- list(...)
- Nargs<- length(varargin)
- Pos<- varargin[[1]]
- Dr<- varargin[[2]]
- StrV<- varargin[[3]]
- R<- 0.2
- NDflg<- 0
- for (I in Looprange(4,Nargs)){
- Tmp<- varargin[[I]]
- if(mode(Tmp)=="numeric"){
- R<- Tmp
- }
- else{
- if(substr(Tmp,1,1)=="-"){
- NDflg<- 1
- Tmp1<- substr(Tmp,2,nchar(Tmp))
- Cmdstr<- chartr("*","G",Tmp1)
- }
- }
- }
- Xr<- c(XMIN,XMAX)
- Yr<- c(YMIN,YMAX)
- Uv<- 0.6; Uh<- 0.8
- N<- nchar(StrV)
- W<- Uh;H<- Uv*N
- Setwindow(c(-W/2,W/2),c(-H,0))
- G<- Ovaldata(c(0,-H/2),W/2,H/2,R)
- Openphr("\\ketpictmp")
- Beginpicture("1cm")
- if(NDflg==0){
- Drwline(G)
- }
- else{
- eval(parse(text=Cmdstr))
- }
- for (I in Looprange(1,N)){
- Letter(c(0,Uv/2-Uv*I),"c",Op(I,StrV))
- }
- Endpicture(0)
- Closephr()
- Setwindow(Xr,Yr)
- Letter(Pos,Dr,"\\ketpictmp")
-}
-
-##########################################
-
-Ovaldata<- function(...) #17.09.11
-{
- varargin<- list(...)
- Nargs<- length(varargin)
- if(Nargs==1){
- Eps<- 1.0*10^(-4)
- C<- c((XMIN+XMAX)/2,(YMIN+YMAX)/2)
- Dx<- XMAX-C(1)-Eps
- Dy<- YMAX-C(2)-Eps
- N<- 1
- }
- else{
- C<- varargin[[1]]
- Dx<- varargin[[2]]
- Dy<- varargin[[3]]
- N<- 4
- }
- Rc<- 0.2
- if(N<=Nargs){ #15.11.15
- Rc<- varargin[[N]]*Rc #15.11.15
- }
- Out<- c()
- P<- C+c(Dx-Rc,Dy-Rc)
- Tmp1<- Circledata(c(P,Rc),"R=c(0,pi/2)","N=10") #17.11.29
- Tmp2<- Listplot(C+c(Dx-Rc,Dy),C+c(0,Dy))
- Tmp3<- Listplot(C+c(Dx,0),C+c(Dx,Dy-Rc))
- G<- Joincrvs(Tmp3,Tmp1,Tmp2)
- Tmp<- Reflectdata(G,c(C,C+c(0,1)))
- G<- Joincrvs(G,Tmp)
- Tmp<- Reflectdata(G,c(C,C+c(1,0)))
- Out<- Joincrvs(G,Tmp)
-}
-
-#########################################
-
-Paramark<- function(...)
-{
- varargin<- list(...)
- Nargs<- length(varargin)
- PA<- varargin[[1]]
- PB<- varargin[[2]]
- PC<- varargin[[3]]
- R<- 0.5
- if(Nargs>=4){
- R<- varargin[[4]]*R
- }
- U<- R*(PA-PB)/Norm(PA-PB)
- V<- R*(PC-PB)/Norm(PC-PB)
- if(Crossprod(PA-PB,PC-PB)!=0){
- P<- Listplot(c(PB+U,PB+U+V,PB+V))
- }
- else{
- P<- c()
- }
-}
-
-###########################################
-
-Paramoncurve<-function(...){
- varargin<-list(...)
- Nargs<-length(varargin)
- Eps<-10^(-8)
- P<-varargin[[1]]
- Gdata<-varargin[[Nargs]]
- if(Nrow(P)>1){
- Tmp<-P; P<-Gdata; Gdata<-Tmp
- }
- if(Nargs==2){
- Tmp<-Nearestpt(P,Gdata)
- Out<-Tmp[[2]]
- return(Out)
- }
- N<-varargin[[2]]
- PtL<-Gdata
- N=min(N,Length(PtL)-1) #18.02.11from
- Pa<-Ptcrv(N,PtL)
- Pb<-Ptcrv(N+1,PtL)
- V<-Pb-Pa
- W<-P-Pa
- D2<-Norm(V)^2
- if(D2<Eps) return(0)
- S<-Dotprod(V,W)/D2
- S<-min(max(S,0),1)
- Out=N+S #18.02.11until
- return(Out)
-}
-
-##############################################
-
-Paramplot<- function(...)
-{
- varargin<- list(...)
- Eps<- 10^(-5)
- Nargs<- length(varargin)
- Fnflg<- 0
- Fnstr<- varargin[[1]]; Is=2
- Rgstr<- varargin[[Is]]; Is<- Is+1
- Range<- c(0,2*pi)
- N<- 50 # Numpoints
- E<-c() # Exclusions
- D<- Inf # Discont
- for (I in Looprange(Is,Nargs))
- {
- Tmp<- varargin[[I]]
- Tmp<- strsplit(Tmp,"=")
- K<- Tmp[[1]]
- Tmp<- K[1]
- Lhs<- substring(Tmp,1,1)
- Tmp1<- K[2]
- Str<-paste(Lhs,"=",Tmp1,sep="")
- eval(parse(text=Str))
- }
- Tmp<- strsplit(Rgstr,"=")
- K<-Tmp[[1]]
- if(length(K)>1)
- {
- Vname<- K[1]
- Tmp1<- K[2]
- Rng<- eval(parse(text=Tmp1))
- }
- else
- {
- Vname<- Rgstr
- Rng<- c(0,2*pi)
- }
- T1<- Rng[1]; T2<- Rng[2]
- Dt<- (T2-T1)/N #17.09.22
- if(Fnflg==0)
- {
- Str<- gsub(Vname,"t",Fnstr)
- }
- if(abs(Dt)<Eps){ # 16.12.13
- t=T1
- P=eval(parse(text=Str))
- return(P)
- }
- P<-c()
- if(length(E)>0)
- {
- E<-sort(E)
- E<E[length(E):1]
- }
- E<- c(E, Inf)
- Tmp<- sort(E)
- E<- E[length(Tmp):1]
- Ke<- 1
-# for (t in seq(T1, T2+Eps, by=Dt)){#18.02.05
- for(jj in 1:(N+1)){
- t=T1+(jj-1)*Dt
- Pa<- c()
- if(t-E[Ke]< Eps)
- {
- if(Fnflg==0)
- {
- Tmp<-eval(parse(text=Str))
- Pa<- Tmp
- }
- else
- {
- }
- }
- if(abs(t-E[Ke])<=Eps)
- {
- if(Nrow(P)>0 && Op(Nrow(P),P)!=c(Inf,Inf))
- {
- Pa<- c(Inf,Inf)
- }
- }
- if(t-E[Ke]>Eps)
- {
- if(Fnflg==0)
- {
- Tmp<- eval(parse(text=Str))
- Pa<- Tmp
- }
- else
- {
- }
- Ke<-Ke+1
- }
- if(length(Pa)>0)
- {
- if(Pa[1]==Inf)
- {
- Tmp<-Appendrow(P,Pa)
- P<-Tmp
- }
- else
- {
- if(Nrow(P)==0)
- {
- Tmp<- Appendrow(P,Pa)
- P<-Tmp
- }
- else
- {
- Tmp<- Op(Nrow(P),P)
- if(Tmp[1]==Inf)
- {
- Tmp<- Appendrow(P,Pa)
- P<- Tmp
- }
- else
- {
- if(Norm(Tmp-Pa)<D)
- {
- Tmp<-Appendrow(P,Pa)
- P<-Tmp
- }
- else
- {
- Tmp<- Appendrow(P,c(Inf,Inf),Pa)
- P<- Tmp
- }
- }
- }
- }
- }
- }
- Tmp<- Nrow(P)
- Tmp1<- Op(Tmp,P)
- if(Tmp1[1]==Inf)
- {
- P<- P[1:(Tmp-1),]
- }
- return(P)
-}
-
-#####################################
-
-Partcrv<- function(A,B,PkL)
-{
- Eps<- 10.0^(-3)
- if(mode(A)=="numeric" && length(A)==1){
- if(A>B+Eps){
- Npt<- Numptcrv(PkL)
- Out1<- Partcrv(A,Npt,PkL)
- Out2<- Partcrv(1,B,PkL)
- Tmp<- Ptstart(PkL)-Ptend(PkL)
- if(Norm(Tmp)<Eps){
- Ans<- Joincrvs(Out1,Out2)
- }
- else{
- Ans<- list(Out1,Out2)
- }
- return(Ans)
- }
- Is<- ceiling(A)
- Ie<- floor(B)
- PL<- c()
- if(A<Is-Eps){
- P<- (Is-A)*PkL[Is-1,]+(1-Is+A)*PkL[Is,]
- PL<- c(P)
- }
- PL<- Appendrow(PL, PkL[Looprange(Is,Ie),])
- if(B>Ie+Eps){
- P<- (1-B+Ie)*PkL[Ie,]+(B-Ie)*PkL[Ie+1,]
- PL<- Appendrow(PL,P)
- }
- Ans<- PL
- return(Ans)
- }
- Tmp<- Nearestpt(A,PkL)
- Ta<- Op(2,Tmp)
- Tmp<- Nearestpt(B,PkL)
- Tb<- Op(2,Tmp)
- Ans<- Partcrv(Ta,Tb,PkL)
-}
-
-##########################################
-# 13.05.03
-
-Partframe<- function(Tb,St,Ed)
-{
- G<- Dividetable(Tb)
- Gw<- G[[1]]
- Gt<- G[[2]]
- Gy<- G[[3]]
- Gwt<- Tb[[4]]
- Gwy<- Tb[[5]]
- Gat<- c(list(Gwt[[1]]),Gt,list(Gwt[[2]]))
- Gay<- c(list(Gwy[[1]]),Gy,list(Gwy[[2]]))
- Tmp1<- Ptstart(Gat[[St[1]]])
- Tmp2<- Ptstart(Gay[[St[2]]])
- Ps<- c(Tmp1[1],Tmp2[2])
- Tmp1<- Ptstart(Gat[[Ed[1]]])
- Tmp2<- Ptstart(Gay[[Ed[2]]])
- Pe<- c(Tmp1[1],Tmp2[2])
- Pars<- Paramoncurve(Ps,Gw)
- Pare<- Paramoncurve(Pe,Gw)
- if(Pars<Pare){
- Out<- Partcrv(Pars,Pare,Gw)
- }
- else{
- Tmp1<- Partcrv(Pars,Numptcrv(Gw),Gw)
- Tmp2<- Partcrv(1,Pare,Gw)
- Out<- Joincrvs(Tmp1,Tmp2)
- }
-return(Out)
-}
-
-
-##########################################
-# 10.12.04
-
-Plotdata<- function(...)
-{
- varargin<- list(...)
- Eps<- 10^(-5)
- Fnstr<- varargin[[1]]; Is<- 2
- Fnflg<- 0
- Rgstr<- varargin[[Is]]; Is<- Is+1
- Tmp<- strsplit(Rgstr,"=")
- K<-Tmp[[1]]
- if(length(K)>1){
- Vname<- K[1]
- Tmp1<- K[2]
- Rng<- eval(parse(text=Tmp1))
- }
- else{
- Vname<- Rgstr
- Rng<- c(XMIN,XMAX)
- }
- N<- 50 # Numpoints
- E<-c() # Exclusions
- Exfun<- "" # Exclusion function
- D<- Inf # Discont
- for (I in Looprange(Is,length(varargin))){
- Tmp<- varargin[[I]]
- Lhs<- substring(Tmp,1,1)
- Tmp<- strsplit(Tmp,"=")
- K<- Tmp[[1]]
- Tmp1<- K[2]
- Tmp2<- grep(Vname,Tmp1,fixed=TRUE) ## 10.12.04
- if(length(Tmp2)==0){
- Str<-paste(Lhs,"=",Tmp1,sep="")
- eval(parse(text=Str))
- }
- else{
- Exfun<-Tmp1
- }
- }
- X1<- Rng[1]; X2<- Rng[2]
- dx<- (X2-X1)/N # 17.09.22
- if(Fnflg==0){
- Str<- gsub(Vname,"x",Fnstr,fixed=TRUE)
- }
- if(abs(dx)<Eps){ # Scilab 16.12.13
- x=X1
- P=c(X1,eval(parse(text=Str)))
- return(P)
- }
- Exfun<- gsub(Vname,"x",Exfun,fixed=TRUE)
- P<-c()
- if(length(E)>0){
- E<-sort(E)
- E<E[length(E):1]
- }
- E<- c(E, Inf)
- Tmp<- sort(E)
- E<- E[length(Tmp):1]
- Ke<- 1
- for (x in seq(X1,X2,by=dx)){
- if(nchar(Exfun)>0){
- Tmp<-eval(parse(text=Exfun))
- if(abs(Tmp)<Eps){
- P<- Appendrow(P,c(Inf,inf))
- next
- }
- }
- Pa<- c()
- if(x-E[Ke]< -Eps){ ## 10.12.04
- Tmp<-eval(parse(text=Str))
- Pa<- c(x,Tmp)
- }
- if(abs(x-E[Ke])<=Eps){
- if(Nrow(P)>0 && P[Nrow(P),]!=c(Inf,Inf)){
- Pa<- c(Inf,Inf)
- }
- }
- if(x-E[Ke]>Eps){
- Tmp<- eval(parse(text=Str))
- Pa<- c(x,Tmp)
- Ke<-Ke+1
- }
- if(length(Pa)>0){
- if(Pa[1]==Inf){
- Tmp<-Appendrow(P,Pa)
- P<-Tmp
- }
- else{
- if(Nrow(P)==0){
- Tmp<- Appendrow(P,Pa)
- P<-Tmp
- }
- else{
- Tmp<- P[Nrow(P),]
- if(Tmp[1]==Inf){
- Tmp<- Appendrow(P,Pa)
- P<- Tmp
- }
- else{
- if(Norm(Tmp-Pa)<D){
- Tmp<-Appendrow(P,Pa)
- P<-Tmp
- }
- else{
- Tmp<- Appendrow(P,c(Inf,Inf),Pa)
- P<- Tmp
- }
- }
- }
- }
- }
- }
- Tmp<- Nrow(P)
- Tmp1<-P[Tmp,]
- if(Tmp1[1]==Inf)
- {
- P<- P[1:(Tmp-1),]
- }
- return(P)
-}
-
-######################################
-
-Pointoncurve<-function(...)
-{
- varargin<-list(...)
- Eps<-10^(-4)
- T<-varargin[[1]]
- Gdata<-varargin[[2]]
- if(Nrow(T)>1)
- {
- Tmp<-T; T<-Gdata; Gdata<-Tmp
- }
- PtL<-Gdata
- N<-trunc(T+Eps);
- S<-max(T-N,0);
- if(N==Nrow(PtL))
- {
- Out<-PtL[N,]
- }
- else
- {
- Pa<-PtL[N,]
- Pb<-PtL[N+1,]
- Out<-(1-S)*Pa+S*Pb
- }
- return(Out)
-}
-
-##############################################
-# 10.11.20
-# 13.05.03 Inf
-
-Pointdata<-function(...)
-{
- varargin<-list(...)
- Nargs<-length(varargin)
- PL<- list()
- for (I in Looprange(1,Nargs)){ # 10.11.20
- DL<-varargin[[I]]
- DL<- Flattenlist(DL) # 10.11.20 from here
- for (J in Looprange(1,length(DL))){
- Dt<- DL[[J]]
- if(is.matrix(Dt)|| is.data.frame(Dt)){
- for (K in 1:nrow(Dt)){
- Tmp<- as.numeric(Dt[K,])
- if(Tmp[1]<Inf){
- PL<- c(PL,list(Tmp))
- }
- }
- }
- else{
- PL<- c(PL,list(Dt))
- }
- }
- } # to here
- if(length(PL)==1)
- {
- PL<-PL[[1]]
- }
- return(PL)
-}
-
-##############################################
-
-Prime<- function(...)
-{
- varargin<- list(...)
- if(length(varargin)==0){
- Out="'"
- }
- else{
- Out<- paste(varargin[[1]],"'",sep="")
- }
- return(Out)
-}
-
-############################################
-# 17.09.29
-
-Ptcrv<-function(N,Fig)
-{
- if(is.matrix(Fig)){
- return(Fig[N,])
- }
- else{
- return(Fig)
- }
-}
-
-#########################################
-
-Ptend<-function(Fig)
-{
- if(Length(Fig)>0){ #18.02.09
- return(Op(Length(Fig),Fig))
- }else{
- return(c())
- }
-}
-
-#########################################
-
-Ptne<-function(...)
-{
- varargin<- list(...)
- if(length(varargin)==0){
- Out<- c(XMAX,YMAX)
- }
- else{
- G<- varargin[[1]]
- XM<- max(G[,1])
- YM<- max(G[,2])
- Out<- c(XM,YM)
- }
- return(Out)
-}
-
-#########################################
-
-Ptnw<-function(...)
-{
- varargin<- list(...)
- if(length(varargin)==0){
- Out<- c(XMIN,YMAX)
- }
- else{
- G<- varargin[[1]]
- Xm<- min(G[,1])
- YM<- max(G[,2])
- Out<- c(Xm,YM)
- }
- return(Out)
-}
-
-#########################################
-
-Ptse<-function(...)
-{
- varargin<- list(...)
- if(length(varargin)==0){
- Out<- c(XMAX,YMIN)
- }
- else{
- G<- varargin[[1]]
- XM<- max(G[,1])
- Ym<- min(G[,2])
- Out<- c(XM,Ym)
- }
- return(Out)
-}
-
-#############################################
-
-Ptstart<-function(Fig)
-{
- if(Length(Fig)>0){ #18.02.09
- return(Op(1,Fig))
- }else{
- return(c())
- }
-}
-
-#########################################
-
-Ptsw<-function(...)
-{
- varargin<- list(...)
- if(length(varargin)==0){
- Out<- c(XMIN,YMAX)
- }
- else{
- G<- varargin[[1]]
- Xm<- min(G[,1])
- Ym<- min(G[,2])
- Out<- c(Xm,Ym)
- }
- return(Out)
-}
-
-##############################################
-
-Putcell<- function(...)
-{
- varargin<- list(...)
- Nargs<- length(varargin)
- TbL<- varargin[[1]]
- Str<- varargin[[Nargs]]
- if(mode(Str)=="numeric"){
- Str<- as.character(Str)
- }
- Pos<- varargin[[Nargs-1]]
- Nrg<- varargin[[2]]
- if(mode(Nrg)=="character"){
- if(Nargs==4){
- Cell<- Findcell(TbL,Nrg)
- }
- else{
- Mrg<- varargin[[3]]
- Cell<- Findcell(TbL,Nrg,Mrg)
- }
- }
- else{
- Mrg<- varargin[[3]]
- Cell<- Findcell(TbL,Nrg,Mrg)
- }
- Pt<- Cell[[1]]; Dr<- "c"
- Posh<- substr(Pos,1,1)
- Post<- substr(Pos,2,nchar(Pos))
- if(toupper(Posh)=="R"){
- Pt<- Pt+c(Cell[[2]],0)
- if(nchar(Post)==0){
- Dr<- "w1"
- }
- else{
- Dr<- paste("w",Post,sep="")
- }
- }
- if(toupper(Posh)=="L"){
- Pt=Pt-c(Cell[[2]],0)
- if(nchar(Post)==0){
- Dr<- "e1"
- }
- else{
- Dr<- paste("e",Post,sep="")
- }
- }
- if(toupper(Posh)=="U"){
- Pt<- Pt+c(0,Cell[[3]])
- if(nchar(Post)==0){
- Dr<- "s1"
- }
- else{
- Dr<- paste("s",Post,sep="")
- }
- }
- if(toupper(Posh)=="D"){
- Pt<- Pt-c(0,Cell[[3]])
- if(nchar(Post)==0){
- Dr<- "n1"
- }
- else{
- Dr<- paste("n",Post,sep="")
- }
- }
- if(toupper(Posh)=="B"){
- Pt<- Pt-c(0,Cell[[3]])
- if(nchar(Post)==0){
- Dr<- "n1"
- }
- else{
- Dr<- paste("n",Post,sep="")
- }
- Str<- paste("$\\mathstrut$",Str,sep="")
- }
- Letter(Pt,Dr,Str)
-}
-
-#############################################
-
-PutcoL<- function(...)
-{
- varargin<- list(...)
- Nargs<- length(varargin)
- TbL<- varargin[[1]]
- if(mode(TbL)!="list"){
- return("Tabledata missing")
- }
- Ag<- varargin[[2]]
- if(mode(Ag)=="numeric"){
- CoL<- Ag
- }
- else{
- Alpha<- "-ABCDEFGHIJKLMNOPQRSTUVWXYZ"
- Clm<- c()
- for (I in Looprange(1,nchar(Ag))){
- C<- substr(Ag,I,I)
- C<- toupper(C)
- Tmp<- strsplit(Alpha,C)
- Tmp<- Tmp[[1]]
- if(length(Tmp)>1){
- Tmp1<- nchar(Tmp[1])
- Clm<- c(Clm,Tmp1)
- }
- }
- Nrg<- 0
- for (I in seq(length(Clm),1,by=-1)){
- Tmp<- Clm[I]
- Tmp1<- length(Clm)-I
- Nrg<- Nrg+Tmp*26^Tmp1
- }
- CoL<- Nrg
- }
- Nc<- length(TbL[[3]])+1
- K<- 1
- Dpos<- varargin[[3]]
- for (I in Looprange(4,Nargs)){
- if(I-3>Nc){
- break
- }
- Dt<- varargin[[I]]
- if(mode(Dt)!="list"){
- Putcell(TbL,CoL,K,Dpos,Dt) # 2011.03.02
- K<- K+1
- }
- else{
- N<- length(Dt)
- Str<- Dt[[N]]
- Rrng<- c(K,K+1)
- Pos<- Dpos
- for (J in Looprange(1,N-1)){
- Tmp<- Dt[[J]]
- if(mode(Tmp)=="numeric"){
- Rrng<- c(K,K+Tmp)
- }
- if(mode(Tmp)=="character"){
- Pos<- Tmp
- }
- }
- Putcell(TbL,CoL,Rrng,Pos,Str)
- K<- Crng[2]
- }
- }
-}
-
-Putcol<- function(...)
-{
- PutcoL(...)
-}
-
-PutcoLexpr<- function(...)
-{
- varargin<- list(...)
- Nargs<- length(varargin)
- TbL<- varargin[[1]]
- if(mode(TbL)!="list"){
- return("Tabledata missing")
- }
- Ag<- varargin[[2]]
- if(mode(Ag)=="numeric"){
- CoL<- Ag
- }
- else{
- Alpha<- "-ABCDEFGHIJKLMNOPQRSTUVWXYZ"
- Clm<- c()
- for (I in Looprange(1,nchar(Ag))){
- C<- substr(Ag,I,I)
- C<- toupper(C)
- Tmp<- strsplit(Alpha,C)
- Tmp<- Tmp[[1]]
- if(length(Tmp)>1){
- Tmp1<- nchar(Tmp[1])
- Clm<- c(Clm,Tmp1)
- }
- }
- Nrg<- 0
- for (I in seq(length(Clm),1,by=-1)){
- Tmp<- Clm[I]
- Tmp1<- length(Clm)-I
- Nrg<- Nrg+Tmp*26^Tmp1
- }
- CoL<- Nrg
- }
- Nc<- length(TbL[[3]])+1
- K<- 1
- Dpos<- varargin[[3]]
- for (I in Looprange(4,Nargs)){
- if(I-3>Nc){
- break
- }
- Dt<- varargin[[I]]
- if(mode(Dt)!="list"){
- Dt<- paste("$",Dt,"$",sep="")
- Putcell(TbL,CoL,K,Dpos,Dt) # 2011.03.02
- K<- K+1
- }
- else{
- N<- length(Dt)
- Str<- paste("$",Dt[[N]],"$",sep="")
- Rrng<- c(K,K+1)
- Pos<- Dpos
- for (J in Looprange(1,N-1)){
- Tmp<- Dt[[J]]
- if(mode(Tmp)=="numeric"){
- Rrng<- c(K,K+Tmp)
- }
- if(mode(Tmp)=="character"){
- Pos<- Tmp
- }
- }
- Putcell(TbL,CoL,Rrng,Pos,Str)
- K<- Crng[2]
- }
- }
-}
-
-Putcolexpr<- function(...)
-{
- PutcoLexpr(...)
-}
-
-#####################################################
-
-PutcoLstr<- function(...)
-{
- varargin<- list(...)
- Nargs<- length(varargin)
- Tb<- varargin[[1]]
- Nr<- varargin[[2]]
- Pos<- varargin[[3]]
- Str<- varargin[[4]]
- Sep<- ""
- if(Nargs>4){
- Sep<- varargin[[5]]
- }
- if(nchar(Sep)==0){
- for (I in Looprange(1,nchar(Str))){
- Tmp<- substr(Str,I,I)
- Putcell(Tb,Nr,I,Pos,Tmp)
- }
- }
- else{
- Ltr<- ""
- K<- 1
- for (I in Looprange(1,length(Str))){
- Tmp<- substr(Str,I,I)
- if(Tmp==Sep){
- Putcell(Tb,Nr,K,Pos,Ltr)
- K<- K+1
- Ltr<- ""
- }
- else{
- Ltr<- paste(Ltr,Tmp,sep="")
- }
- }
- if(nchar(Ltr)>0){
- Putcell(Tb,Nr,K,Pos,Ltr)
- }
- }
-}
-
-#############################################
-
-Putrow<- function(...)
-{
- varargin<- list(...)
- Nargs<- length(varargin)
- TbL<- varargin[[1]]
- if(mode(TbL)!="list"){
- return("Tabledata missing")
- }
- Row<- varargin[[2]]
- Nr<- length(TbL[[2]])+1
- K<- 1
- Dpos<- varargin[[3]]
- for (I in Looprange(4,Nargs)){
- if(I-3>Nr){
- break;
- }
- Dt<- varargin[[I]]
- if(mode(Dt)!="list"){
- Putcell(TbL,K,Row,Dpos,Dt) # 110308
- K<- K+1
- }
- else{
- N<- length(Dt)
- Str<- Dt[[N]]
- Crng<- c(K,K+1)
- Pos<- Dpos
- for (J in Looprange(1,N-1)){
- Tmp<- Dt[[J]]
- if(mode(Tmp)=="numeric"){
- Crng<- c(K,K+Tmp)
- }
- if(mode(Tmp)=="character"){
- Pos<- Tmp
- }
- }
- Putcell(TbL,Crng,Row,Pos,Str)
- K<- Crng[2]
- }
- }
-}
-
-Putrowexpr<- function(...)
-{
- varargin<- list(...)
- Nargs<- length(varargin)
- TbL<- varargin[[1]]
- if(mode(TbL)!="list"){
- return("Tabledata missing")
- }
- Row<- varargin[[2]]
- Nr<- length(TbL[[2]])+1
- K<- 1
- Dpos<- varargin[[3]]
- for (I in Looprange(4,Nargs)){
- if(I-3>Nr){
- break;
- }
- Dt<- varargin[[I]]
- if(mode(Dt)!="list"){
- Dt<- paste("$",Dt,"$",sep="")
- Putcell(TbL,K,Row,Dpos,Dt) #110308
- K<- K+1
- }
- else{
- N<- length(Dt)
- Str<- paste("$",Dt[[N]],"$",sep="")
- Crng<- c(K,K+1)
- Pos<- Dpos
- for (J in Looprange(1,N-1)){
- Tmp<- Dt[[J]]
- if(mode(Tmp)=="numeric"){
- Crng<- c(K,K+Tmp)
- }
- if(mode(Tmp)=="character"){
- Pos<- Tmp
- }
- }
- Putcell(TbL,Crng,Row,Pos,Str)
- K<- Crng[2]
- }
- }
-}
-
-####################################################
-
-Putrowstr<- function(...)
-{
- varargin<- list(...)
- Nargs<- length(varargin)
- Tb<- varargin[[1]]
- Nr<- varargin[[2]]
- Pos<- varargin[[3]]
- Str<- varargin[[4]]
- Sep<- ""
- if(Nargs>4){
- Sep<- varargin[[5]]
- }
- if(nchar(Sep)==0){
- for (I in Looprange(1,nchar(Str))){
- Tmp<- substr(Str,I,I)
- Putcell(Tb,I,Nr,Pos,Tmp)
- }
- }
- else{
- Ltr<- ""
- K<- 1
- for (I in Looprange(1,length(Str))){
- Tmp<- substr(Str,I,I)
- if(Tmp==Sep){
- Putcell(Tb,K,Nr,Pos,Ltr)
- K<- K+1
- Ltr<- ""
- }
- else{
- Ltr<- paste(Ltr,Tmp,sep="")
- }
- }
- if(nchar(Ltr)>0){
- Putcell(Tb,K,Nr,Pos,Ltr)
- }
- }
-}
-
-############################################
-# 11.05.28
-
-Ratiocmyk<- function(Color)
-{
- if(is.numeric(Color)){
- return(Color)
- }
- R<-
- switch(Color,
- greenyellow=c(0.15,0,0.69,0),
- yellow=c(0,0,1,0),
- goldenrod=c(0,0.1,0.84,0),
- dandelion=c(0,0.29,0.84,0),
- apricot=c(0,0.32,0.52,0),
- peach=c(0,0.5,0.7,0),
- melon=c(0,0.46,0.5,0),
- yelloworange=c(0,0.42,1,0),
- orange=c(0,0.61,0.87,0),
- burntorange=c(0,0.51,1,0),
- bittersweet=c(0,0.75,1,0.24),
- redorange=c(0,0.77,0.87,0),
- mahogany=c(0,0.85,0.87,0.35),
- maroon=c(0,0.87,0.68,0.32),
- brickred=c(0,0.89,0.94,0.28),
- red=c(0,1,1,0),
- orangered=c(0,1,0.5,0),
- rubinered=c(0,1,0.13,0),
- wildstrawberry=c(0,0.96,0.39,0),
- salmon=c(0,0.53,0.38,0),
- carnationpink=c(0,0.63,0,0),
- magenta=c(0,1,0,0),
- violetred=c(0,0.81,0,0),
- rhodamine=c(0,0.82,0,0),
- mulberry=c(0.34,0.9,0,0.02),
- redviolet=c(0.07,0.9,0,0.34),
- fuchsia=c(0.47,0.91,0,0.08),
- lavender=c(0,0.48,0,0),
- thistle=c(0.12,0.59,0,0),
- orchid=c(0.32,0.64,0,0),
- darkorchid=c(0.4,0.8,0.2,0),
- purple=c(0.45,0.86,0,0),
- plum=c(0.5,1,0,0),
- violet=c(0.79,0.88,0,0),
- royalpurple=c(0.75,0.9,0,0),
- blueviolet=c(0.86,0.91,0,0.04),
- periwinkle=c(0.57,0.55,0,0),
- cadetblue=c(0.62,0.57,0.23,0),
- cornflowerblue=c(0.65,0.13,0,0),
- midnightblue=c(0.98,0.13,0,0.43),
- navyblue=c(0.94,0.54,0,0),
- royalblue=c(1,0.5,0,0),
- blue=c(1,1,0,0),
- cerulean=c(0.94,0.11,0,0),
- cyan=c(1,0,0,0),
- processblue=c(0.96,0,0,0),
- skyblue=c(0.62,0,0.12,0),
- turquoise=c(0.85,0,0.2,0),
- tealblue=c(0.86,0,0.34,0.02),
- aquamarine=c(0.82,0,0.3,0),
- bluegreen=c(0.85,0,0.33,0),
- emerald=c(1,0,0.5,0),
- junglegreen=c(0.99,0,0.52,0),
- seagreen=c(0.69,0,0.5,0),
- green=c(1,0,1,0),
- forestgreen=c(0.91,0,0.88,0.12),
- pinegreen=c(0.92,0,0.59,0.25),
- limegreen=c(0.5,0,1,0),
- yellowgreen=c(0.44,0,0.74,0),
- springgreen=c(0.26,0,0.76,0),
- olivegreen=c(0.64,0,0.95,0.4),
- rawsienna=c(0,0.72,1,0.45),
- sepia=c(0,0.83,1,0.7),
- brown=c(0,0.81,1,0.6),
- tan=c(0.14,0.42,0.56,0),
- gray=c(0,0,0,0.5),
- black=c(0,0,0,1),
- white=c(0,0,0,0)
- )
- if(length(R)<4){
- print("No color")
- return(c())
- }
- return(R)
-}
-
-############################################
-# 11.01.07
-
-Readtextdata<- function(...)
-{
- varargin<- list(...)
- OutL<- list()
- Nargs<- length(varargin)
- Fname<- varargin[[1]]
- Tmp<- readLines(Fname,n=1)
- if(length(grep("\t",Tmp))>0){
- Sep<- "\t"
- }
- else if(length(grep(",",Tmp))>0){
- Sep<- ","
- }
- else{
- Sep<- " "
- }
- Hajime<- c(1,1)
- Owari<- c(Inf,Inf)
- C<- Inf
- R<- Inf
- Rna<- FALSE
- Cna<- TRUE
- Mat<- FALSE
- Num<- TRUE
- D<- -Inf
- Flg<- 0
- for (I in Looprange(2,Nargs)){
- Tmp<- varargin[[I]]
- if(mode(Tmp)=="numeric"){
- if (Flg==0){
- Hajime<- Tmp
- Flg<- 1
- }
- else{
- Owari<- Tmp
- }
- }
- else{
- eval(parse(text=Tmp))
- }
- }
- Tmp<- Hajime+c(R-1,C-1)
- Owari<- c(min(Owari[1],Tmp[1]),min(Owari[2],Tmp[2]))
- if(Cna){
- Df<- read.table(Fname,sep=Sep,header=TRUE,,stringsAsFactors=FALSE)
- }
- else{
- Df<- read.table(Fname,sep=Sep,header=FALSE,,stringsAsFactors=FALSE)
- Nv<- c(1:ncol(Df))
- colnames(Df)<- Nv
- }
- if(Rna){
- rownames(Df)<-Df[,1]
- Hajime<- Hajime+c(0,1)
- }
- if(Mat){
- M<- as.matrix(Df)
- Tmp1<- min(Owari[1],nrow(M))
- Tmp2<- min(Owari[2],ncol(M))
- Out<- as.matrix(M[Hajime[1]:Tmp1,Hajime[2]:Tmp2])
- if(Num){
- Tmp1<- as.numeric(Out)
- Out<- matrix(Tmp1,nrow=nrow(Out))
- }
- }
- else{
- Tmp1<- min(Owari[1],nrow(Df))
- Tmp2<- min(Owari[2],ncol(Df))
- Out<- Df[Hajime[1]:Tmp1,Hajime[2]:Tmp2]
- }
- if(D!=-Inf){ # 11.01.20 v2
- Tmp<- ncol(Out) # 11.01.07
- Tmp1<- rep(Inf,Tmp)
- Out[Out[,1]<=D,]<- Tmp1 # 11.01.07
- }
- return(Out)
-}
-
-##################################
-
-Reflectdata<- function(...)
-{
- varargin<- list(...)
- Nargs<- length(varargin)
- Eps<- 10^(-8)
- ML<- varargin[[1]]
- if(Mixtype(ML)==1){
- ML<- list(ML)
- }
- if(Nargs==1){
- PtA<- c(0,0); PtB<- PtA
- }
- else{
- Pts<- varargin[[2]]
- if(length(Pts)==2){
- PtA<- Pts; PtB<- PtA
- }
- else{
- PtA<- Pts[1:2]; PtB<- Pts[3:4]
- }
- }
- OutL<- list()
- for (N in Looprange(1,length(ML))){
- GL<- Op(N,ML)
- Out<- c()
- for (I in Looprange(1,Nrow(GL))){
- if(is.matrix(GL)){ # 10.12.07
- Tmp<- GL[I,]
- }
- else{
- Tmp<- GL
- }
- X1<- Tmp[1]
- Y1<- Tmp[2]
- if(X1==Inf){
- X2<- X1
- Y2<- Y1
- }
- else{
- if(Norm(PtA-PtB)<Eps){
- X2<- 2*PtA[1]-X1
- Y2<- 2*PtA[2]-Y1
- }
- else{
- U<- PtB[1]-PtA[1]
- V<- PtB[2]-PtA[2]
- A<- PtA[1]
- B<- PtA[2]
- X2<- (U^2-V^2)/(U^2+V^2)*X1+2*U*V/(U^2+V^2)*Y1
- X2<- X2-2*V*(U*B-V*A)/(U^2+V^2)
- Y2<- 2*U*V/(U^2+V^2)*X1-(U^2-V^2)/(U^2+V^2)*Y1
- Y2<- Y2+2*U*(U*B-V*A)/(U^2+V^2)
- }
- }
- Out<- Appendrow(Out,c(X2,Y2))
- }
- OutL<- Mixjoin(OutL,list(Out))
- }
- if(length(OutL)==1){
- OutL<- Op(1,OutL)
- }
- return(OutL)
-}
-
-##########################################
-
-Writetextdata<- function(...)
-{
- varargin<- list(...)
- OutL<- list()
- Nargs<- length(varargin)
- Data<- varargin[[1]]
- Fname<- varargin[[2]]
- Sep=","
- for (I in Looprange(3,Nargs)){
- Tmp<- varargin[[I]]
- eval(parse(text=Tmp))
- }
- write.table(Data,Fname,sep=Sep,row.names=FALSE,na="")
-}
-
-##########################################
-# 2014.12.17
-# 2015.10.29
-
-WriteOutData<- function(...){
- varargin<- list(...)
- Nargs<- length(varargin)
-# if modulo(Nargs,2)==0 then
-# Fname=Fnameout;
-# Nst=1;
-# else
- Fname=varargin[[1]]
- Nst=2;
-# end;
- for(N in seq(Nst,Nargs,by=2)){
- Gname=varargin[[N]]
- Tmp=paste(Gname,"//",sep="")
- if(N==Nst){
- cat(Tmp,"\n",sep="",file=Fname)
- }
- else{
- cat(Tmp,"\n",sep="",file=Fname,append=TRUE)
- }
- Gdata=varargin[[N+1]]
- Gdata=Flattenlist(Gdata)
- if(!is.list(Gdata)){Gdata=list(Gdata)}
- for(K in Looprange(1,length(Gdata))){
- GL=Dividegraphics(Gdata[[K]])
-# for(J in seq(1,length(GL))){
- for(J in Looprange(1,length(GL))){
- cat("start//","\n",sep="",file=Fname,append=TRUE)
- Str=""
- Iend=Numptcrv(GL[[J]])
-# for(II in seq(1,Iend)){
- for(II in Looprange(1,Iend)){
- Pt=Ptcrv(II,GL[[J]])
- if(nchar(Str)>0){
- Str=paste(Str,",",sep="")
- }
- if(length(Pt)<3){
- Str=paste(Str,sprintf("[%5.5f,%5.5f]",Pt[1],Pt[2]),sep="")
- }
- else{
- Str=paste(Str,sprintf("[%5.5f,%5.5f,%5.5f]",Pt[1],Pt[2],Pt[3]),sep="")
- }
- if(nchar(Str)>80){
- cat("[",Str,"]//","\n",sep="",file=Fname,append=TRUE)
- Str=""
- }
- }
- if(nchar(Str)>0){
- cat("[",Str,"]//","\n",sep="",file=Fname,append=TRUE)
- }
- if((N==Nargs-1) & (K==length(Gdata)) & (J==length(GL))){
-# cat("end////","\n",sep="",file=Fname,append=TRUE)
- cat("end//","\n",sep="",file=Fname,append=TRUE)
- }
- else{
- cat("end//","\n",sep="",file=Fname,append=TRUE)
- }
- }
- }
- }
- cat("//","\n",sep="",file=Fname,append=TRUE) # 15.11.05
-}
-
-###### Old ####################################
-# 2015.10.23
-ReadOutData<- function(...){
- varargin<- list(...)
- Nargs<- length(varargin)
- Fname=varargin[[1]]
- cmdall=readLines(Fname)
- cmdall=gsub("//","",cmdall,fixed=TRUE)
- varname=cmdall[1]
- outdt=list()
- varL=c()
- ptL=list()
- flg=0
- for(cmd in cmdall){
- if(nchar(cmd)>0){
- if((cmd=="start") | cmd=="end" | substring(cmd,1,1)=="["){
- if(cmd=="start"){
- pts=c()
- }
- if(cmd=="end"){
- ptL=c(ptL,list(pts))
- }
- if(substring(cmd,1,1)=="["){
- tmp1=paste(",",substring(cmd,2,nchar(cmd)-1),sep="")
- tmp1=strsplit(tmp1,"]",fixed=TRUE)
- tmp1=tmp1[[1]]
- tmp1=gsub(",[","c(",tmp1,fixed=TRUE)
- for(st in tmp1){
- tmp=eval(parse(text=paste(st,")",sep="")))
- pts=rbind(pts,tmp)
- }
- row.names(pts)=1:nrow(pts)
- }
- }
- else{
- varname=cmd
- varL=c(varL,varname)
- if(flg==0){ # 17.10.07from
- flg=1
- }else{
- outdt=c(outdt,list(ptL))
- } # 17.10.07until
- ptL=c()
- }
- }
- }
- outdt=c(outdt,list(ptL)) # 17.10.07
- names(outdt)=varL
- for(var in varL){
- tmp=paste(var,"<<- outdt$",var,sep="")
- eval(parse(text=tmp))
- }
-# print(varL)
- outdt
-}
-
-####################################################
-
-ReadOutData<- function(...){ #2017.10.23
- varargin<- list(...)
- Nargs<- length(varargin)
- Fname=varargin[[1]]
- cmdall=readLines(Fname)
- cmdall=gsub("//","",cmdall,fixed=TRUE)
- varname=""#17.12.13 cmdall[1]
- outdt=list()
- varL=c()
- ptL=list()
- flg=0
- for(cmd in cmdall){
- if(nchar(cmd)>0){
- if((cmd=="start") | cmd=="end" | substring(cmd,1,1)=="["){
- if(cmd=="start"){
- tmp=paste(varname,"<<- c(",varname,",list(c()))",sep="")
- eval(parse(text=tmp))
- Ctr=Ctr+1
- }
- if(cmd=="end"){
- }
- if(substring(cmd,1,1)=="["){
- tmp1=paste(",",substring(cmd,2,nchar(cmd)-1),sep="")
- tmp1=strsplit(tmp1,"]",fixed=TRUE)
- tmp1=tmp1[[1]]
- tmp1=gsub(",[","c(",tmp1,fixed=TRUE)
- for(st in tmp1){
- tmp=paste(varname,"[[",as.character(Ctr),"]]",sep="")
- tmp=paste(tmp,"<<- rbind(",tmp,",",st,"))",sep="")#
- eval(parse(text=tmp))
- }
- }
- }
- else{
- # 17.12.13from
- if(nchar(varname)>0){
- tmp=paste("if(length(",varname,")==1){",varname,"<<- ",varname,"[[1]]}",sep="")
- eval(parse(text=tmp))
- }
- # 17.12.13until
- varname=cmd
- tmp=paste(varname,"<<- list()",sep="")
- eval(parse(text=tmp))
- Ctr=0
- if(flg==0){ # 17.10.07from
- flg=1
- }else{
- } # 17.10.07until
- }
- }
- }
- # 17.12.13from
- tmp=paste("if(length(",varname,")==1){",varname,"<<- ",varname,"[[1]]}",sep="")
- eval(parse(text=tmp))
- # 17.12.13until
-}
-
-####################################################
-
-Rotatedata<- function(..., deg=FALSE)
-{
- varargin<- list(...)
- Nargs<- length(varargin)
- Eps<- 10^(-8)
- ML<- varargin[[1]]
- if(Mixtype(ML)==1){
- ML<- list(ML)
- }
- Theta<- varargin[[2]]
- if(deg) Theta<- Theta*pi/180 # 10.12.07
- if(Nargs==2){
- Pt<- c(0,0)
- }
- else{
- Pt<- varargin[[3]]
- }
- Cx<- Pt[1]; Cy<- Pt[2]
- OutL<- c()
- for (N in Looprange(1,length(ML))){
- GL<- Op(N,ML)
- Out<- c()
- for (I in Looprange(1,Nrow(GL))){
- if(is.matrix(GL)){
- Tmp<- GL[I,]
- }
- else{
- Tmp<- GL
- }
- X1<- Tmp[1]
- Y1<- Tmp[2]
- if(X1==Inf){
- X2<- X1
- Y2<- Y1
- }
- else{
- X2<- Cx+(X1-Cx)*cos(Theta)-(Y1-Cy)*sin(Theta)
- Y2<- Cy+(X1-Cx)*sin(Theta)+(Y1-Cy)*cos(Theta)
- }
- Out<- Appendrow(Out,c(X2,Y2))
- }
- if(nrow(Out)==1){
- Out<- Out[1,]
- }
- OutL<- Mixjoin(OutL,list(Out))
- }
- if(length(OutL)==1){
- OutL<- Op(1,OutL)
- }
- return(OutL)
-}
-
-###############################################
-
-Scaledata<- function(...)
-{
- varargin<- list(...)
- Nargs<- length(varargin)
- Eps<- 10^(-8)
- ML<- varargin[[1]]
- if(Mixtype(ML)==1){
- ML<- list(ML)
- }
- A<- varargin[[2]]
- B<- varargin[[3]]
- if(Nargs==3){
- Pt<- c(0,0)
- }
- else{
- Pt<- varargin[[4]]
- }
- OutL<- list()
- for (N in Looprange(1,length(ML))){
- GL<- Op(N,ML)
- Out<- c()
- for (I in Looprange(1,Nrow(GL))){
- if(is.matrix(GL)){ # 10.12.07
- Tmp<- GL[I,]
- }
- else{
- Tmp<- GL
- }
- X1<- Tmp[1]
- Y1<- Tmp[2]
- if(X1==Inf){
- X2<- X1
- Y2<-Y1
- }
- else{
- X2<- Pt[1]+A*(X1-Pt[1])
- Y2<- Pt[2]+B*(Y1-Pt[2])
- }
- Out<- Appendrow(Out,c(X2,Y2))
- }
- OutL<- Mixjoin(OutL,list(Out))
- }
- if(length(OutL)==1){
- OutL<- Op(1,OutL)
- }
- return(OutL)
-}
-
-################################
-
-Setarrow<- function(...)
-{
- varargin<- list(...)
- Nargs<- length(varargin)
- if(Nargs==0){
- Str<- paste("Size=",YaSize,",","Angle=",YaAngle,",",sep="")
- Str<- paste(Str,"Position=",YaThick,",","Style=",YaStyle,sep="")
- return(Str)
- }
- Flg<- 0
- for (I in 1:Nargs){
- Tmp<- varargin[[I]]
- if(mode(Tmp)=="numeric"){
- Flg<- Flg+1
- if(Flg==1) YaSize<<-Tmp
- if(Flg==2){
- if(Tmp<5){
- YaAngle<<- 18*Tmp
- }
- else{
- YaAngle<<- Tmp
- }
- }
- if(Flg==3) YaPosition<<- Tmp
- if(Flg==4) YaThick<<- Tmp
- }
- if(mode(Tmp)=="character"){
- YaStyle<<- Tmp
- }
- }
-}
-
-####################################
-
-Setax<- function(...)
-{
- varargin<- list(...)
- Nargs<- length(varargin)
- if(Nargs==0){
- if(ZIKU=="line"){
- Tmp<- ","
- }
- else{
- Tmp<- paste("(Arrowsize=", as.character(ARROWSIZE),"),",sep="")
- }
- Str<- paste(ZIKU,Tmp,XNAME,",",XPOS,",",sep="")
- Str<- paste(Str,YNAME,",",YPOS,",",ONAME,",",OPOS,sep="")
- return(Str)
- }
- ArgL<- c()
- Is<- 1
- Tmp<- varargin[[1]]
- if(mode(Tmp)=="numeric" && length(Tmp)==1){
- Is<- varargin[[1]]
- ArgL<- c()
- for (I in Looprange(1,Is-1)){
- ArgL<- c(ArgL,"")
- }
- for (I in Looprange(2,Nargs)){
- ArgL<- c(ArgL,varargin[[I]])
- }
- }
- else{
- if(Nargs==1){
- ArgL<- c(varargin[[1]])
- }
- else{
- Tmp<- varargin[[2]]
- if(mode(Tmp)=="numeric" && length(Tmp)==1){
- ARROWSIZE<<-Tmp
- ArgL<- c(varargin[[1]])
- for (I in Looprange(3,Nargs)){
- ArgL<- c(ArgL,varargin[[I]])
- }
- }
- else{
- ArgL<- c()
- for (I in 1:Nargs){
- ArgL<- c(ArgL,varargin[[I]])
- }
- }
- }
- }
- for (I in Looprange(length(ArgL)+1,7)){
- ArgL<- c(ArgL,"")
- }
- Zk<- ArgL[1]
- if(nchar(Zk)>0){
- ZL<-substr(Zk,2,nchar(Zk))
- Zk<-substr(Zk,1,1)
- if(nchar(ZL)>0){
- ARROWSIZE<<- as.numeric(ZL)
- }
- }
- Xn<- ArgL[2]; Xp<- ArgL[3]
- Yn<- ArgL[4]; Yp<- ArgL[5]
- Genn<- ArgL[6]; Genp<- ArgL[7]
- if(nchar(Zk)>0){
- C<- Zk
- if(C=="a"){
- ZIKU<<- "arrow"
- }
- else{
- ZIKU<<- "line"
- }
- }
- if(nchar(Xn)>0){
- XNAME<<- paste("$",Xn,"$",sep="")
- }
- if(nchar(Xp)>0){
- XPOS<<- Xp
- }
- if(nchar(Yn)>0){
- YNAME<<- paste("$",Yn,"$",sep="")
- }
- if(nchar(Yp)>0){
- YPOS<<-Yp
- }
- if(nchar(Genn)>0){
- ONAME<<- Genn
- }
- if(nchar(Genp)>0){
- OPOS<<- Genp
- }
- Out<- "";
-}
-
-#################################
-# 11.08.24
-
-Setcolor<- function(...){
- varargin<- list(...)
- Color<- 'black'
- Kosa<- 1
- for(J in Looprange(1,length(varargin))){
- Tmp<- varargin[[J]]
- if(is.character(Tmp)) Color<- Tmp
- if(is.numeric(Tmp)){
- if(length(Tmp)==1){# 11.08.24
- Kosa<- Tmp
- }
- else{
- Color<- Tmp
- }
- }# 11.08.24
- }
- Iro<- Ratiocmyk(Color)
- if(length(Iro)==0) return(c())
- Str<- "\\color[cmyk]{" #17.09.22
- for(J in 1:4){
- Str<- paste(Str,as.character(Kosa*Iro[J]),sep="")
- if(J<4){
- Str<- paste(Str,",",sep="")
- }
- }
- Str<- paste(Str,"}",sep="")
- Texcom(Str)
-}
-
-##################################
-
-Setmarklen<- function(...)
-{
- varargin<- list(...)
- Nargs<- length(varargin)
- if(Nargs==0){
- Tmp<- MARKLENNow/MARKLENInit
- Tmp=round(Tmp*100)/100
- return(Tmp)
- }
- Size<- varargin[[1]]
- MARKLENNow<<- MARKLENInit*Size
- MARKLEN<<- MARKLENNow*1000/2.54/MilliIn
-}
-
-###############################
-
-Setorigin<- function(...)
-{
- varargin<- list(...)
- Nargs<- length(varargin)
- if(Nargs==0){
- return(GENTEN)
- }
- Pt<- varargin[[1]]
- GENTEN<<- Pt;
-}
-
-################################
-
-Setscaling<- function(...)
-{
- varargin<- list(...)
- Nargs<- length(varargin)
- if(Nargs==0)
- {
- return(c(SCALEY,LOGX,LOGY))
- }
- for (I in 1:Nargs)
- {
- Tmp<- varargin[[I]]
- if(mode(Tmp)=="numeric")
- {
- SCALEY<<- Tmp
- }
- if(mode(Tmp)=="character")
- {
- if(Tmp=="l")
- {
- LOGX<<- 0
- LOGY<<- 1
- }
- else if(Tmp=="ll")
- {
- LOGX<<- 1
- LOGY<<- 1
- }
- else
- {
- LOGX<<- 0
- LOGY<<- 0
- }
- }
- }
- Tmp<- c(SCALEY,LOGX,LOGY);
-}
-
-#########################################
-
-Setpen<-function(Width)
-{
- PenThick<<-round(PenThickInit*Width)
- Str=paste("\\special{pn ", as.character(PenThick),"}%\n",sep="")
- cat(Str,file=Wfile,append=TRUE)
-}
-
-##############################################
-
-Setpt<- function(...)
-{
- varargin<- list(...)
- Nargs<- length(varargin)
- if(Nargs==0)
- {
- Tmp<- TenSize/TenSizeInit
- Tmp<- round(Tmp*100)/100
- return(Tmp)
- }
- Size<- varargin[[1]]
- TenSize<<- TenSizeInit*Size;
-}
-
-##############################################
-
-Setunitlen<-function(...)
-{
- varargin<-list(...)
- if(length(varargin)==0){
- return(ULEN)
- }
- Ul=varargin[[1]]
- Dx<-XMAX-XMIN
- Dy<-YMAX-YMIN
- Sym<-".0123456789 +-*/"
- SL<-Sym
- OL<-"+-*/"
- if(nchar(Ul)>0){
- ULEN<<-Ul
- }
- Is<-1
- VL<-""
- Ucode<-ULEN
- for (I in 1:nchar(Ucode)){
- C<-substring(Ucode,I,I)
- if(length(grep(C,SL))>0){
- if(length(grep(C,OL))>0){
- Tmp<-substring(Ucode,Is,I-1)
- Str<-paste(VL,Tmp,C,sep="")
- VL<-Str
- Is<-I+1
- }
- }
- else{
- Unit<-substring(Ucode,I,I+1)
- Str<-substring(Ucode,Is,I-1)
- VL<-paste(VL,Str,sep="")
- break;
- }
- }
- Valu<-eval(parse(text=VL))
- Str<-as.character(Valu)
- ULEN<<-paste(Str,Unit,sep="");
- if(Unit=="cm") MilliIn<<-1000/2.54*Valu
- if(Unit=="mm") MilliIn<<-1000/2.54*Valu/10
- if(Unit=="in") MilliIn<<-1000*Valu
- if(Unit=="pt") MilliIn<<-1000/72.27*Valu
- if(Unit=="pc") MilliIn<<-1000/6.022*Valu
- if(Unit=="bp") MilliIn<<-1000/72*Valu
- if(Unit=="dd2") MilliIn<<-1000/1238/1157/72.27*Valu
- if(Unit=="cc") MilliIn<<-1000/1238/1157/72.27*12*Valu
- if(Unit=="sp") MilliIn<<-1000/72.27/65536*Valu/10
- MARKLEN<<-MARKLENNow*1000/2.54/MilliIn
- MEMORI<<-MEMORINow*1000/2.54/MilliIn #17.12.17
-}
-
-#########################################
-# 10.11.20
-
-Setwindow<-function(...)
-{
- varargin<-list(...)
- Nargs<-length(varargin)
- if(Nargs==0){
- Out<-c(XMIN,XMAX,YMIN,YMAX)
- return(Out)
- }
- if(Nargs==1){
- Dt<- varargin[[1]]
- if(is.list(Dt) && !is.data.frame(Dt)){
- Tmp<- as.data.frame(Dt)
- Dt<- t(Tmp)
- }
- Xm<- min(Dt[,1])
- XM<- max(Dt[,1])
- Ym<- min(Dt[,2])
- YM<- max(Dt[,2])
- Str<- "Setwindow("
- Str<- paste(Str,"c(",as.character(Xm),",",as.character(XM),"),c(",sep="")
- Str<- paste(Str,as.character(Ym),",",as.character(YM),")",sep="")
- Str<- paste(Str,")",sep="")
- print(Str)
- }
- if(Nargs==2){
- RgX<-varargin[[1]]
- RgY<-varargin[[2]]
- XMIN<<-RgX[1]; XMAX<<-RgX[2]
- YMIN<<-RgY[1]; YMAX<<-RgY[2]
- }
- if(Nargs==4){
- XMIN<<-varargin[[1]]; XMAX<<-varargin[[2]]
- YMIN<<-varargin[[3]]; YMAX<<-varargin[[4]]
- }
- Out<- c(XMIN,XMAX,YMIN,YMAX);
-}
-
-#########################################
-
-Shadeold<- function(...)
-{ ## Scaling is implemented
- varargin<- list(...)
- Nargs<- length(varargin)
- Iroflg=0
- Kosa=1
- if(Nargs>1){
- Iro=varargin[[Nargs]]
- if(is.character(Iro)){
- Iroflg=1
- if(length(grep("{",Iro))>0){
- Str=paste("{\\color",Iro,sep="")
- }
- else{
- Str=paste("{\\color{",Iro,"}",sep="")
- }
- }
- else{
- if(length(Iro)==1){
- Kosa=Iro
- }
- else{
- Iroflg=1
- if(length(Iro)==4){
- Str="{\\color[cmyk]{"
- }
- else{
- if(length(Iro)==3){
- Str="{\\color[rgb]{"
- }
- }
- for(J in 1:length(Iro)){
- Str=paste(Str,as.character(Iro[J]),sep="")
- if(J<length(Iro)){
- Str=paste(Str,",")
- }
- }
- Str=paste(Str,"}")
- }
- }
- if(Iroflg==1){
- Str=paste(Str,"%\n",sep="")
- cat(Str,file=Wfile,append=TRUE)
- }
- }
- Tmp=varargin[[1]]
- Data=Kyokai(Tmp)
- Data=list(Data) ####180327
- for (I in Looprange(1, length(Data))){
- PL<- Op(I,Data)
- Mojisu<- 0
- for (J in 1:Nrow(PL)){
- P<- Doscaling(Op(J,PL))
- X<- as.character(round(MilliIn*P[1]))
- Y<- as.character(-round(MilliIn*P[2]))
- Str<- paste("\\special{pa ",X," ",Y,"}",sep="")
- cat(Str,file=Wfile,append=TRUE)
- Mojisu<- Mojisu+nchar(Str)
- if(Mojisu>80){
- cat("%\n",file=Wfile,append=TRUE)
- Mojisu<- 0
- }
- }
- Str1<- paste("\\special{sh ",as.character(Kosa),"}",sep="")
- Str2<- paste("\\special{ip}%\n",sep="")
- cat(Str1,file=Wfile,append=TRUE)
- cat(Str2,file=Wfile,append=TRUE)
- }
- if(Iroflg==1){
- cat("}%\n",file=Wfile,append=TRUE)
- }
-}
-
-####### Shade new 17.09.24############
-
-Shade<- function(...)
-{ ## Scaling is implemented
- varargin<- list(...)
- Nargs<- length(varargin)
- Iroflg<- 0
- Kosa<- 1
- if(Nargs>1){
- Iro<- varargin[[Nargs]]
- if(mode(Iro)=="character"){
- Iroflg<- 1
- if(length(grep(Iro,"{"))>0)
- Str<- paste("{\\color",Iro,sep="")
- else
- Str<- paste("{\\color{",Iro,"}",sep="")
- }
- else{
- if(length(Iro)==1)
- Kosa<- Iro
- else{
- Iroflg<- 1
- if(length(Iro)==4)
- Str<- paste("{\\color[cmyk]{",sep="")
- else
- if(length(Iro)==3)
- Str<- paste("{\\color[rgb]{",sep="")
- for (J in Looprange(1,length(Iro))){
- Str<- paste(Str,as.character(Iro[J]),sep="")
- if(J<length(Iro))
- Str<- paste(Str,",",sep="")
- }
- Str<- paste(Str,"}",sep="")
- }
- }
- if(Iroflg==1){
- if(Wfile=="default")
- cat(Str,"%\n",file="",append=TRUE,sep="")
- else
- cat(Str,"%\n",file=Wfile,append=TRUE,sep="")
- }
- }
- Tmp<- varargin[[1]]
- Data<- Kyoukai(Tmp)
- for (I in Looprange(1, length(Data))){
- PL<- Op(I,Data)
- Mojisu<- 0
- for (J in 1:Nrow(PL)){
- P<- Doscaling(Op(J,PL))
- X<- as.character(round(MilliIn*P[1]))
- Y<- as.character(-round(MilliIn*P[2]))
- Str<- paste("\\special{pa ",X," ",Y,"}",sep="")
- if(Wfile=="default")
- cat(Str,file="",append=TRUE,sep="")
- else
- cat(Str,file=Wfile,append=TRUE,sep="")
- Mojisu<- Mojisu+nchar(Str)
- if(Mojisu>80){
- if(Wfile=="default")
- cat("%\n",file="",append=TRUE,sep="")
- else
- cat("%\n",file=Wfile,append=TRUE,sep="")
- Mojisu<- 0
- }
- }
- Str1<- paste("\\special{sh ",as.character(Kosa),"}",sep="")
- Str2<- paste("\\special{ip}%\n",sep="")
- if(Wfile=="default"){
- cat(Str1,file="",append=TRUE,sep="")
- cat(Str2,file="",append=TRUE,sep="")
- }
- else{
- cat(Str1,file=Wfile,append=TRUE,sep="")
- cat(Str2,file=Wfile,append=TRUE,sep="")
- }
- }
- if(Iroflg==1){
- if(Wfile=="default")
- cat("}%\n",file="",append=TRUE,sep="")
- else
- cat("}%\n",file=Wfile,append=TRUE,sep="")
- }
-}
-
-##############################################
-# 11.01.07
-
-Splinedata<- function(...)
-{
- varargin<- list(...)
- Nargs<- length(varargin)
- Eps<- 10^(-3)
- PL<- varargin[[1]]
- if(mode(PL)=="character"){
- Fname<- PL
- PL<- Readtextdata(Fname)
- }
- else{
- PL<- as.matrix(PL)
- if(Nrow(PL)==1){
- PL<- matrix(PL, nrow=length(PL)/2)
- PL<- t(PL)
- }
- }
- if(ncol(PL)==3){
- Flg3<- 1
- }
- else{
- Flg3<- 0
- }
- PLL<- Dividegraphics(PL)
- N<- 50
- C<- c()
- for (I in Looprange(2,Nargs)){
- Tmp<- varargin[[I]]
- if(mode(Tmp)!="character") next
- if(length(grep("=",Tmp,fixed=TRUE))>0){
- eval(parse(text=Tmp))
- }
- else{
- Tmp1<- substr(Tmp,1,1)
- if(toupper(Tmp1)=="C"){
- C<- 1:length(PLL)
- }
- }
- }
- Cflg<- rep(0,length(PLL))
- for(J in Looprange(1,length(C))){
- K<- C[J]
- Cflg[K]<- 1
- }
- if(length(N)>1){
- Nj<- as.numeric(N)
- }
- else{
- Tmp<- lapply(PLL,nrow)
- Tmp1<- as.numeric(Tmp)
- MxP<- max(Tmp1)
- Nj<- c()
- for (J in 1:length(PLL)){
- Tmp<- nrow(PLL[[J]])
- Tmp1<- round(N/MxP*(Tmp-1))
- Nj<- c(Nj,Tmp1)
- }
- }
- OutL<- list()
- for(J in 1:length(PLL)){
- PL<- PLL[[J]]
- if(Cflg[J]==1){
- if(Norm(PL[1,]-PL[Nrow(PL),])>Eps){
- PL<-Appendrow(PL,PL[1,])
- Nj[J]=round(N/MxP*nrow(PL))
- }
- else{
- PL[Nrow(PL),]<- PL[1,]
- }
- }
- Tn<- 1:Nrow(PL)
- Xn<- PL[,1]
- Yn<- PL[,2]
- if(Flg3==1) Zn<- PL[,3]
- if(Cflg[J]==0){
- Dxn<- spline(Tn,Xn,n=Nj[J])
- Dyn<- spline(Tn,Yn,n=Nj[J])
- if(Flg3==1) Dzn<- spline(Tn,Zn,n=Nj[J])
- }
- else{
- Dxn<- spline(Tn,Xn,method="periodic")
- Dyn<- spline(Tn,Yn,method="periodic")
- if(Flg3==1) Dzn<- spline(Tn,Zn,method="periodic")
- }
- Tmp1<- Dxn$y
- Tmp2<- Dyn$y
- Tmp3<-c()
- if(Flg3==1) Tmp3<- Dzn$y
- Out<- matrix(c(Tmp1,Tmp2,Tmp3),nrow=length(Tmp1))
- OutL<- c(OutL,list(Out))
- }
- return(OutL)
-}
-
-############################################
-# 2013.05.03 Domain is optional
-
-Tabledata<- function(...){
- varargin<- list(...)
- Eps<- 0.001
- Tmp<- varargin[[1]] # 130503 from
- if(is.numeric(Tmp)){
- Domain<- varargin[[1]]
- VL<- varargin[[2]]
- HL<- varargin[[3]]
- }
- else{
- Domain<- c(-1,-1)
- VL<- varargin[[1]]
- HL<- varargin[[2]]
- } # 130503 until
- Hsize<- Domain[1]
- SvL<- list(0)
- S<- 0
- for (I in Looprange(1,length(VL))){
- Tmp<- VL[[I]]
- S<- S+Tmp[1]
- Tmp[1]<- S
- SvL<- c(SvL,list(Tmp))
- }
- if(Hsize>S){
- SvL<- c(SvL,list(Hsize))
- }
- Hsize<- Op(1,SvL[[length(SvL)]])
- Vsize<- Domain[2]
- ShL<- list(0)
- S<- 0
- for (I in Looprange(1,length(HL))){
- Tmp<- HL[[I]]
- S<- S+Tmp[1]
- Tmp[1]<- S
- ShL<- c(ShL,list(Tmp))
- }
- if(Vsize>S){
- ShL<- c(ShL,list(Vsize))
- }
- Vsize<- Op(1,ShL[[length(ShL)]])
- Marw<- 0; Mare<- 0; Mars<- 0; Marn<- 0
- if(length(Domain)>2){
- Marw<- Domain[3]
- Mare<- Domain[4]
- }
- if(length(Domain)>4){
- Marn<- Domain[5]
- Mars<- Domain[6]
- }
- Setwindow(c(-Marw,Hsize+Mare),c(-Mars,Vsize+Marn))
- Tmp<- Framedata(c(Eps,Hsize-Eps),c(Eps,Vsize-Eps))
- Gdata<- list(Tmp)
- Tmp<- -Marw
- Hdata<- list(Listplot(c(c(Tmp,-Mars),c(Tmp,Vsize+Marn))))
- for (I in Looprange(1,length(SvL))){
- Data<- SvL[[I]]
- X<- Data[1]
- if(length(Data)==1){
- Y1<- 0
- Y2<- Vsize
- G<- Listplot(c(X,Y1),c(X,Y2))
- }
- else{
- G<- c()
- for (J in seq(2,length(Data),by=2)){
- Y1<- Vsize-Op(1,ShL[[Data[J]]])
- Y2<- Vsize-Op(1,ShL[[Data[J+1]]])
- Tmp<- Listplot(c(c(X,Y1),c(X,Y2)))
- Tmp1<- Appendrow(G,c(Inf,Inf))
- G<- Appendrow(Tmp1,Tmp)
- }
- G<- G[2:nrow(G),]
- }
- Hdata<- c(Hdata,list(G))
- }
- Tmp<- Hsize+Mare
- Tmp1<- Listplot(c(c(Tmp,-Mars),c(Tmp,Vsize+Marn)))
- Hdata<- c(Hdata,list(Tmp1))
- Tmp<- Vsize+Marn
- Vdata<- list(Listplot(c(c(-Marw,Tmp),c(Hsize+Mare,Tmp))))
- for (I in Looprange(1,length(ShL))){
- Data<- ShL[[I]]
- Y<- Vsize-Data[1]
- if(length(Data)==1){
- X1<- 0
- X2<- Hsize
- G<- Listplot(c(X1,Y),c(X2,Y))
- }
- else{
- G<- c()
- for (J in seq(2,length(Data),by=2)){
- X1<- Op(1,SvL[[Data[J]]])
- X2<- Op(1,SvL[[Data[J+1]]])
- Tmp<- Listplot(c(X1,Y),c(X2,Y))
- G<- Appendrow(G,c(Inf,Inf))
- G<- Appendrow(G,Tmp)
- }
- G<-G[2:nrow(G),]
- }
- Vdata<- c(Vdata,list(G))
- }
-# Tmp<- Listplot(c(c(0,0),c(Hsize,0))) # 2011.03.02
-# Vdata<- Mixjoin(Vdata,list(Tmp))
- Tmp<- Listplot(c(c(-Marw,-Mars),c(Hsize+Mare,-Mars)))
- Vdata<- Mixjoin(Vdata,list(Tmp))
- Tmp1<- Hdata[Looprange(3,length(Hdata)-2)]
- Tmp2<- Vdata[Looprange(3,length(Vdata)-2)]
- Gdata<- Mixjoin(Gdata,Tmp1,Tmp2)
- Hind<- Looprange(2,1+length(Tmp1))
- Vind<- Looprange(2+length(Tmp1),1+length(Tmp1)+length(Tmp2))
- G=Gdata[[1]]
- P1<- Ptsw(G); P2<- Ptnw(G)
- Q1<- Ptse(G); Q2<- Ptne(G)
- Tmp1<- list(Listplot(c(P1,P2)),Listplot(c(Q1,Q2)))
- P1<- Ptnw(G); P2<- Ptne(G)
- Q1<- Ptsw(G); Q2<- Ptse(G)
- Tmp2<- list(Listplot(c(P1,P2)),Listplot(c(Q1,Q2)))
- Tmp3<- Framedata()
- Out<- list(Gdata,Hind,Vind,Tmp1,Tmp2,Tmp3)
- return(Out)
-}
-
-################################
-
-Texcom<- function(Meirei)
-{
- if(Meirei=="\\thinlines"){
- Setpen(1);
- return();
- }
- if(Meirei=="\\thicklines"){
- Setpen(2);
- return()
- }
- if(Meirei=="\\Thicklines"){
- Setpen(3);
- return()
- }
- if(length(Meirei)==0){ # 09.12.07
- Tmp<- c()
- }
- else{
- Tmp<- grep("newline",Meirei)
- }
- if(length(Tmp)>0){
- cat("\n",file=Wfile,append=TRUE);
- }
- else{
- Tmp<- paste(Meirei,"%\n",sep="")
- Tmp<- gsub("//","\\",Tmp,fixed=TRUE) # 11.03.02
- cat(Tmp,file=Wfile,append=TRUE);
- }
-}
-
-###############################################
-
-Texctr<- function(N){
- if(is.numeric(N)){
- Alpha<- "abcdefghijklmnopqrstuvwxyz"
- Out<- paste("ketpicctr",substr(Alpha,N,N),sep="")
- }
- else{
- if(grep("\\",N,fixed=TRUE)>0){
- Out<- substr(N,2,nchar(N))
- }
- else{
- Out<- N
- }
- }
- return(Out)
-}
-
-###############################################
-
-Texelse<- function (){
- Texcom("");
- Texcom("\\else")
-}
-
-###############################################
-
-Texend<- function()
-{
- Texcom("%\n}")
-}
-
-###############################################
-
-Texendfor<- function(I){
- Last<- TEXFORLAST[[TEXFORLEVEL]]
- Texcom("")
- Tmp<- paste("\\ifnum",Texthectr(I),"<",Last,sep="")
- Texcom(Tmp)
- Texcom("\\repeat")
- Texcom("}")
- TEXFORLEVEL<<- TEXFORLEVEL-1
- TEXFORLAST<<- TEXFORLAST[1:(length(TEXFORLAST)-1)]
-}
-
-###############################################
-
-Texendif<- function(){
- Texcom("")
- Texcom("\\fi")
- Texcom("}")
-}
-
-###############################################
-
-Texfor<- function(I,First,Last){
- TEXFORLEVEL<<- TEXFORLEVEL+1;
- Texsetctr(I,"0")
- Texsetctr(I,paste(as.character(First),"-1",sep=""))
- Texcom("")
- Texcom("{")
- Texcom("\\loop")
- Texsetctr(I,"+1")
- TEXFORLAST<<- c(TEXFORLAST,as.character(Last))
-}
-
-###############################################
-
-Texforinit<- function(){
- TEXFORLEVEL<<- 0
- TEXFORLAST<<- list()
-}
-
-###############################################
-
-Texif<- function(...){
- varargin<- list(...)
- Condstr<- varargin[[1]]
- Tp<- 0
- if(length(varargin)>1){
- Tp<- varargin[[2]]
- }
- Texcom("")
- Texcom("{")
- if(Tp==0){
- Texcom("\\ifnum")
- }
- else{
- Texcom("\\ifdim ")
- }
- Texcom(paste(Condstr," ",sep=""))
-}
-
-######################################
-
-Texletter<- function(...)
-{
- varargin<- list(...)
- Nargs<- length(varargin)
- for (I in seq(1,Nargs,by=3)){
- P<- varargin[[I]]
- X<- P[1]
- if(mode(X)=="numeric"){
- X<- as.character(X)
- }
- Y<- P[2]
- if(mode(Y)=="numeric"){
- Y<- as.character(Y)
- }
- Houkou<- varargin[[I+1]]
- Mojiretu<- varargin[[I+2]]
- Hset<- Houkou
- Vhoko<- "c"
- if(length(grep("n",Hset))>0){
- Vhoko<- "n"
- }
- if(length(grep("s",Hset))>0){
- Vhoko<- "s"
- }
- Hhoko<- "c";
- if(length(grep("e",Hset))>0){
- Hhoko<- "e"
- }
- if(length(grep("w",Hset))>0){
- Hhoko<- "w"
- }
- Hoko<- paste(Vhoko,Hhoko,sep="")
- CalcWidth(Hoko,Mojiretu)
- CalcHeight(Hoko,Mojiretu)
- Tmp<- paste("\\put(",X,",",Y,"){\\hspace*{\\Width}",sep="")
- Str<- paste(Tmp,"\\raisebox{\\Height}{",Mojiretu,"}}%\n",sep="")
- cat(Str,file=Wfile,append=TRUE)
- }
-}
-
-##################################################
-
-Texnewcmd<- function(...)
-{
- varargin<- list(...)
- Nargs<- length(varargin)
- Str<- varargin[[1]]
- S<- paste("\\newcommand{",Str,"}",sep="")
- if(Nargs>1){
- Tmp<- as.character(varargin[[2]])
- S<- paste(S,"[",Tmp,"]",sep="")
- }
- if(Nargs>2){
- Tmp<- varargin[[3]]
- if(mode(Tmp)=="numeric"){
- Tmp<- as.character(Tmp)
- }
- S<- paste(S,"[",Tmp,"]",sep="")
- }
- S<- paste(S,"{",sep="")
- Texcom(S)
-}
-
-###############################################
-
-Texnewctr<- function(N)
-{
- if(mode(N)=="character"){
- Str<- paste("\\newcounter{",N,"}",sep="")
- Texcom(Str)
- }
- else{
- for (I in N){
- Str<- paste("\\newcounter{",Texctr(I),"}",sep="")
- Texcom(Str)
- }
- }
-}
-###############################################
-
-Texrenewcmd<- function(...)
-{
- varargin<- list(...)
- Nargs<- length(varargin)
- Str<- varargin[[1]]
- S<- paste("\\renewcommand{",Str,"}",sep="")
- if(Nargs>1){
- Tmp<- as.character(varargin[[2]])
- S<- paste(S,"[",Tmp,"]",sep="")
- }
- if(Nargs>2){
- Tmp<- varargin[[3]]
- if(mode(Tmp)=="numeric"){
- Tmp<- as.character(Tmp)
- }
- S<- paste(S,"[",Tmp,"]",sep="")
- }
- S<- paste(S,"{",sep="")
- Texcom(S)
-}
-
-###############################################
-
-Texsetctr<- function(Nctr,Opstr)
-{
- Ctr<- Texctr(Nctr)
- Opstr<- paste(Opstr,"%",sep="")
- OperL<- "+-*/%"
- Oper<- ""
- Va<- ""
- Evflg<- 0
- Paflg<- 0
- for (I in Looprange(1,nchar(Opstr))){
- Tmp<- substring(Opstr,I,I)
- if(Tmp=="("){
- Paflg<- 1
- if(nchar(Va)>0){
- Evflg<- 1
- Va<- paste(Va,Tmp,sep="")
- }
- next
- }
- if(Tmp==")"){
- Paflg<- 0
- if(Evflg>0){
- Va<- paste(Va,Tmp,sep="")
- }
- next
- }
- if(Paflg>0){
- Va<- paste(Va,Tmp,sep="")
- next
- }
- if(length(grep(Tmp,OperL))==0){
- Va<- paste(Va,Tmp,sep="")
- }
- else{
- if(Evflg>0){
- Tmp1<- eval(parse(text=Va))
- Va<- paste("\\value{",Tmp1,"}",sep="")
- Evflg<- 0
- }
- if(Oper==""){
- if(nchar(Va)>0){
- Str<- paste("\\setcounter{",Ctr,"}{",Va,"}",sep="")
- Texcom(Str)
- }
- Oper<- Tmp
- Va<-""
- }
- else if(Oper=="+"){
- Str<- paste("\\addtocounter{",Ctr,"}{",Va,"}",sep="")
- Texcom(Str)
- Oper<- Tmp
- Va<-""
- }
- else if(Oper=="-"){
- Str<- paste("\\addtocounter{",Ctr,"}{-",Va,"}",sep="")
- Texcom(Str)
- Oper<- Tmp
- Va<-""
- }
- else if(Oper=="*"){
- Str<- paste("\\multiply\\value{",Ctr,"} by ",Va,sep="")
- Texcom(Str)
- Oper<- Tmp
- Va<-""
- }
- else if(Oper=="/"){
- Str<- paste("\\divide\\value{",Ctr,"} by ",Va,sep="")
- Texcom(Str)
- Oper<- Tmp
- Va<-""
- }
- }
- }
-}
-
-###############################################
-
-Texthectr<- function(N)
-{
- Out<- paste("\\the",Texctr(N),sep="")
- return(Out)
-}
-
-###############################################
-
-Texvalctr<- function(N){
- Out<- paste("\\value{",Texctr(N),"}",sep="")
- return(Out)
-}
-
-###############################################
-
-Texvctr<- function(N)
-{
- Out<- paste("\\value{",Texctr(N),"}",sep="")
- return(Out)
-}
-
-###############################################
-
-Tonumeric <- function(...)
-{
- varargin<- list(...)
- Nargs<- length(varargin)
- Data<- varargin[[1]]
- Sp<- c(1,1)
- Ep<- c(Inf,Inf)
- if(Nargs>1){
- Sp<- varargin[[2]]
- }
- if(Nargs>2){
- Ep<- varargin[[3]]
- }
- Nrs<- Sp[1]
- Nre<- min(nrow(Data),Ep[1])
- Ncs<- Sp[2]
- Nce<- min(ncol(Data),Ep[2])
- Tmp1<- Data[Nrs:Nre, Ncs:Nce]
- Tmp2 <- as.numeric(Tmp1)
- Out <- matrix(Tmp2,nrow=nrow(Tmp1))
- Sp<- c()
- for (I in 1:nrow(Out)){
- for (J in 1:ncol(Out)){
- Tmp<- Out[I,J]
- if(!is.na(Tmp)){
- Sp<- c(I,J)
- break;
- }
- }
- if(length(Sp)>0) break
- }
- if(length(Sp)==0){
- return("Numeric data not found")
- }
- Ep<- c(nrow(Out),ncol(Out))
- for (I in Sp[1]:nrow(Out)){
- Tmp<- Out[I,Sp[2]]
- if(is.na(Tmp)){
- Ep[1]<- I-1
- break
- }
- }
- for (J in Sp[2]:ncol(Out)){
- Tmp<- Out[Sp[1],J]
- if(is.na(Tmp)){
- Ep[2]<- J-1
- break
- }
- }
- Out<- Out[Sp[1]:Ep[1], Sp[2]:Ep[2]]
- return(Out)
-}
-
-##################################################
-
-Translatedata<- function(...)
-{
- varargin<- list(...)
- Nargs<- length(varargin)
- Eps<- 10^(-8)
- ML<- varargin[[1]]
- if(Mixtype(ML)==1){
- ML<- list(ML)
- }
- Tmp=varargin[[2]]
- if(mode(Tmp)=="numeric" && length(Tmp)>1){
- A<- Tmp[1]; B<- Tmp[2]
- }
- else{
- A<- Tmp
- if(Nargs>=3){
- B<- varargin[[3]]
- }
- else{
- B<- 0
- }
- }
- OutL<- list()
- for (N in Looprange(1,length(ML))){
- GL<- Op(N,ML)
- Out<- c()
- for (I in Looprange(1,Nrow(GL))){
- if(is.matrix(GL)){ # 10.12.07
- Tmp<- GL[I,]
- }
- else{
- Tmp<- GL
- }
- X1<- Tmp[1]
- Y1<- Tmp[2]
- if(X1==Inf){
- X2<- X1
- Y2<-Y1
- }
- else{
- X2<- X1+A
- Y2<- Y1+B
- }
- Out<- Appendrow(Out,c(X2,Y2))
- }
- OutL<- Mixjoin(OutL,list(Out))
- }
- if(length(OutL)==1){
- OutL<- Op(1,OutL)
- }
- return(OutL)
-}
-
-#######################################
-
-Unscaling<- function(G)
-{
- GLg<- G
- if(class(GLg)=="numeric"){
- GLg<-c(G[1]/SCALEX, G[2]/SCALEY)
- Tmp<-GLg
- if(LOGX==1) Tmp[1]<- 10^(GLg[1])
- if(LOGY==1) Tmp[2]<- 10^(GLg[2])
- return(Tmp)
- }
- else{
- Tmp1<-matrix(c(1/SCALEX,0,0,1/SCALEY),nrow=2)
- GLg<-G %*% Tmp1
- Tmp<-GLg
- if(LOGX==1) Tmp[,1]<- 10^(G[,1])
- if(LOGY==1) Tmp[,2]<- 10^(G[,2])
- return(Tmp)
- }
-}
-
-#############################################
-
-Vtickmark<- function(...)
-{ ## Scaling is implemented
- varargin<- list(...)
- Nargs<- length(varargin)
- ArgsL<- varargin
- if(mode(ArgsL[[1]])=="character"){
- Str<- ArgsL[[1]]
- Tmp<- strsplit(Str,"m")
- Tmp<- Tmp[[1]]
- if(length(Tmp)>1){
- I<- nchar(Tmp[1])+1
- }
- else{
- I<- 0
- }
- Tmp<- strsplit(Str,"n")
- Tmp<- Tmp[[1]]
- if(length(Tmp)>1){
- J<- nchar(Tmp[1])+1
- }
- else{
- J<- 0
- }
- Tmp<- strsplit(Str,"r")
- Tmp<- Tmp[[1]]
- if(length(Tmp)>1){
- K=nchar(Tmp[1])+1
- }
- else{
- K<- 0
- }
- if(K>0){
- S<- substr(Str,K+1,nchar(Str))
- R<- as.numeric(S)
- if(is.na(R)){
- R<- 1
- }
- }
- else{
- R<- 1
- K<- nchar(Str)+1
- }
- if(J>0){
- S<- substr(Str,J+1,K-1)
- Dn<- as.numeric(S)
- if(is.na(Dn)){
- Dn<- 1
- }
- }
- else{
- Dn<- 1000
- J<- nchar(Str)+1
- }
- S<- substr(Str,I+1,J-1)
- Dm<- as.numeric(S)
- if(is.na(Dm)){
- Dm<- 1
- }
- ArgsL<- list()
- for (I in 1:floor((YMAX-GENTEN[2])/Dm)){
- ArgsL<- Mixjoin(ArgsL,I*Dm)
- if(I-floor(I/Dn)*Dn==0){
- Str<- as.character(I*Dm*R)
- ArgsL<- Mixjoin(ArgsL,Str)
- }
- }
- for (I in seq(-1,ceiling((YMIN-GENTEN[2])/Dm))){
- ArgsL<- Mixjoin(ArgsL,I*Dm)
- if(I-floor(I/Dn)*Dn==0){
- Str<- as.character(I*Dm*R)
- ArgsL<- Mixjoin(ArgsL,Str)
- }
- }
- }
- MemoriList<- list()
- Memori<- list()
- for (N in 1:length(ArgsL)){
- Dt<- ArgsL[[N]]
- if(mode(Dt)=="numeric" && length(Dt)>1){
- if(length(Memori)>0){
- MemoriList<- Mixjoin(MemoriList,list(Memori))
- }
- Memori<- list(Dt[1],Dt[2])
- next
- }
- if(mode(Dt)=="character"){
- Memori<- Mixjoin(Memori,Dt)
- }
- else{
- if(length(Memori)>0){
- MemoriList<- Mixjoin(MemoriList,list(Memori))
- }
- Memori<- list(GENTEN[1],Dt)
- }
- }
- MemoriList<- Mixjoin(MemoriList,list(Memori))
- for (N in 1:length(MemoriList)){
- Dt<- MemoriList[[N]]
- Ndt<- length(Dt)
- X=Op(1,Dt)
- Y=Op(2,Dt)
- Tmp<-Doscaling(c(X,Y))
- X<- Tmp[1]
- Y<- Tmp[2]
- Moji<- Op(Ndt,Dt)
- Tmp1<- Unscaling(c(X+MARKLEN,Y))
- Tmp2<- Unscaling(c(X-MARKLEN,Y))
- Fd<- Listplot(c(Tmp1,Tmp2))
- Drwline(Fd)
- if(Ndt==3){
- Tmp<-Unscaling(c(X-MARKLEN,Y))
- Expr(Tmp,"w",Moji)
- }
- if(Ndt==4){
- Houkou<- Op(3,Dt)
- Tmp<-grep("w",Houkou)
- if(length(Tmp)>0){
- Tmp<-Unscaling(c(X-MARKLEN,Y))
- Expr(Tmp,Houkou,Moji)
- }
- else{
- Tmp<- Unscaling(c(X+MARKLEN,Y))
- Expr(Tmp,Houkou,Moji)
- }
- }
- cat("%\n",file=Wfile,append=TRUE)
- }
-}
-
-############################################
-
-Windisp<-function(...){
- varargin<-list(...)
- Nargs<-length(varargin)
- Tmp<- Doscaling(c(XMIN,YMIN))
- Xmn<- Tmp[1]; Ymn<- Tmp[2]
- Tmp<- Doscaling(c(XMAX,YMAX))
- Xmx<- Tmp[1]; Ymx<- Tmp[2]
- plot(c(Xmn,Xmx),c(Ymn,Ymx),type="n",asp=1,axes=FALSE,xlab="",ylab="")
- Tmp<- Doscaling(Listplot(c(0,YMIN),c(0,YMAX)))
- axis(2,at=as.numeric(Tmp[,2]), labels=round(c(YMIN,YMAX),2))
- Tmp<- Doscaling(Listplot(c(XMIN,0),c(XMAX,0)))
- axis(1,at=as.numeric(Tmp[,1]), labels=round(c(XMIN,XMAX),2))
- Tmp1<- c(XMIN,GENTEN[2])
- Tmp2<- c(XMAX,GENTEN[2])
- Tmp3<- Listplot(Tmp1,Tmp2)
- Tmp<- MakeCurves(Tmp3,0)
- if(Datalength(Tmp)>0){
- lines(Tmp[,1],Tmp[,2],col="green")
- }
- Tmp1<- c(GENTEN[1],YMAX)
- Tmp2<- c(GENTEN[1],YMIN)
- Tmp3<- Listplot(Tmp1,Tmp2)
- Tmp<- MakeCurves(Tmp3,0)
- if(Datalength(Tmp)>0){
- lines(Tmp[,1],Tmp[,2],col="green")
- }
- Tmp<-Doscaling(Framedata())
- lines(Tmp[,1],Tmp[,2])
- for (I in Looprange(1,Nargs)){
- Pdata<-varargin[[I]]
- if(mode(Pdata)=="numeric"){
- Pdata<-list(Pdata)
- }
- while(Mixtype(Pdata)==3){ # 10.02.23
- Tmp1<- list()
- for(II in Looprange(1,length(Pdata))){
- Tmp1<- Mixjoin(Tmp1,Pdata[[II]])
- }
- Pdata<- Tmp1
- } # 10.02.23
- for (II in Looprange(1,length(Pdata))){
- Tmp<-Pdata[[II]]
- P<-MakeCurves(Tmp,0)
- Ndm<-Dataindex(P)
- for (J in Looprange(1,Nrow(Ndm))){
- Q<-P[Ndm[J,1]:Ndm[J,2],]
- if(Nrow(Q)==1){
- Tmp<-seq(1,Ncol(Q),by=2)
- for (K in Tmp){
- Pt<-Q[K:(K+1)]
- points(Pt[1],Pt[2])
- }
- }
- else{
- lines(Q[,1],Q[,2])
- }
- }
- }
- }
-}
-
-############################################
-
-WindispT<-function(..., color="black",width=1,new=FALSE,htick=c(),vtick=c()){ # 10.12.04
- par(new=new)
- varargin<-list(...)
- Nargs<-length(varargin)
- if(!new) # 10.12.04
- {
- Tmp<- Doscaling(c(XMIN,YMIN))
- Xmn<- Tmp[1]; Ymn<- Tmp[2]
- Tmp<- Doscaling(c(XMAX,YMAX))
- Xmx<- Tmp[1]; Ymx<- Tmp[2]
- plot(c(Xmn,Xmx),c(Ymn,Ymx),type="n",asp=1,axes=FALSE,xlab="",ylab="")
- Tick<- sort(c(YMIN,YMAX,vtick)) #### 10.12.04 from here
- Tmp1<- matrix(c(rep(0,length(Tick)),Tick),ncol=2)
- Tmp<- Doscaling(Tmp1)
- axis(2,at=as.numeric(Tmp[,2]), labels=round(Tick,2))
- Tick<- sort(c(XMIN,XMAX,htick))
- Tmp1<- matrix(c(Tick,rep(0,length(Tick))),ncol=2)
- Tmp<- Doscaling(Tmp1)
- axis(1,at=as.numeric(Tmp[,1]), labels=round(Tick,2)) #### 10.12.04 to here
- Tmp1<- c(XMIN,GENTEN[2])
- Tmp2<- c(XMAX,GENTEN[2])
- Tmp3<- Listplot(Tmp1,Tmp2)
- Tmp<- MakeCurves(Tmp3,0)
- if(Datalength(Tmp)>0){
- lines(Tmp[,1],Tmp[,2],col="green")
- }
- Tmp1<- c(GENTEN[1],YMAX)
- Tmp2<- c(GENTEN[1],YMIN)
- Tmp3<- Listplot(Tmp1,Tmp2)
- Tmp<- MakeCurves(Tmp3,0)
- if(Datalength(Tmp)>0){
- lines(Tmp[,1],Tmp[,2],col="green")
- }
- Tmp<-Doscaling(Framedata())
- lines(Tmp[,1],Tmp[,2])
- }
- for (I in Looprange(1,Nargs)){
- Pdata<-Flattenlist(varargin[[I]]) # 101129 from here
- Cmd<- list()
- for (II in Looprange(1,length(Pdata))){
- Tmp<-Pdata[[II]]
- if(length(Tmp)==1){
- Cmd<- c(Cmd,list(Tmp))
- next
- }
-
- P<-MakeCurves(Tmp,0)
-
- if(length(Cmd)>0){
- if(length(Cmd)>=3){
- polygon(P,col=Cmd[[1]],border=Cmd[[2]],density=Cmd[[3]])
- }
- else{
- polygon(P,col=Cmd[[1]],border=Cmd[[2]])
- }
- next
- } # 101129 to here
- Ndm<-Dataindex(P)
- for (J in Looprange(1,Nrow(Ndm))){
- Q<-P[Ndm[J,1]:Ndm[J,2],]
- if(Nrow(Q)==1){
- Tmp<-seq(1,Ncol(Q),by=2)
- for (K in Tmp){
- Pt<-Q[K:(K+1)]
- points(Pt[1],Pt[2],col=color)#taka101111
- }
- }
- else{
- lines(Q[,1],Q[,2],col=color,lwd=width)#taka101111
- }
- }
- }
- }
- par(new=FALSE)
-}
-
-######################################
-
-# 3D
-
-#################################
-
-# 10.08.16
-CameracoordCurve<- function(Curve){
- Out<- c()
- for(J in Looprange(1,Nrow(Curve))){
- P<- Ptcrv(J,Curve) #P=Curve(J,:);
- Tmp<- P-FocusPoint
- X1<- Tmp[1]; Y1<- Tmp[2]; Z1<- Tmp[3]
- Tmp<- EyePoint-FocusPoint
- E1<- Tmp[1]; F1<- Tmp[2]; G1<- Tmp[3]
- Ca<- E1/sqrt(E1^2+F1^2)
- Sa<- F1/sqrt(E1^2+F1^2)
- X2<- X1*Ca+Y1*Sa; Y2<- -X1*Sa+Y1*Ca; Z2<- Z1
- E2<- E1*Ca+F1*Sa; F2<- -E1*Sa+F1*Ca; G2<- G1
- Cb<- E2/sqrt(E2^2+G2^2)
- Sb<- G2/sqrt(E2^2+G2^2)
- X3<- X2*Cb+Z2*Sb; Y3<- Y2; Z3<- -X2*Sb+Z2*Cb
- E3<- E2*Cb+G2*Sb; F3<- F2; G3<- -E2*Sb+G2*Cb
- Xz<- X3
- Yz<- E3/(E3-X3)*Y3
- Zz<- E3/(E3-X3)*Z3
- Out<- rbind(Out,c(Yz,Zz,Xz))
- }
- rownames(Out)<- 1:Nrow(Out)
- return(Out)
-}
-
-#########################################
-
-#100815
-CameraCurve<- function(Curve){
- Eps<- 10^(-6)
- for (I in Looprange(1,Nrow(Curve))){
- P<- Curve[I,]
- x<- P[1]; y<- P[2]; z<- P[3]
- if(x!=Inf){
- Tmp<- Perspt(P)
- if(I==1){
- AnsL<- rbind(c(),Tmp)
- }else{
- Tmp1<- AnsL[Nrow(AnsL),]
- if(Tmp1[1]==Inf || Norm(Tmp-Tmp1)>Eps){
- AnsL<- rbind(AnsL,Tmp)
- }
- }
- }else{
- AnsL<- rbind(AnsL,c(Inf,Inf))
- }
- }
- rownames(AnsL)<- 1:Nrow(AnsL)
- return(AnsL)
-}
-
-######################################
-
-Cancoordpara<- function(P){ # 18.02.15
- Xz<- P[1]
- Yz<- P[2]
- Zz<- P[3]
- X<- -Xz*sin(PHI)-Yz*cos(PHI)*cos(THETA)+Zz*cos(PHI)*sin(THETA)
- Y<- Xz*cos(PHI)-Yz*sin(PHI)*cos(THETA)+Zz*sin(PHI)*sin(THETA)
- Z<- Yz*sin(THETA)+Zz*cos(THETA)
- Out<- c(X,Y,Z)
- return(Out)
-}
-
-######################################
-
-Cancoordpers<- function(P){
- Tmp<- EyePoint-FocusPoint
- E1<- Tmp[1]; F1<- Tmp[2]; G1<- Tmp[3]
- Ca<- E1/sqrt(E1^2+F1^2)
- Sa<- F1/sqrt(E1^2+F1^2)
- E2<- E1*Ca+F1*Sa; F2<- -E1*Sa+F1*Ca; G2<- G1
- Cb<- E2/sqrt(E2^2+G2^2)
- Sb<- G2/sqrt(E2^2+G2^2)
- E3<- E2*Cb+G2*Sb; F3<- F2; G3<- -E2*Sb+G2*Cb
- Xz<- P[3]; Yz<- P[1]; Zz<- P[2]
- X3<- Xz; Y3<- Yz*(E3-Xz)/E3; Z3<- Zz*(E3-Xz)/E3
- X2<- X3*Cb-Sb*Z3; Y2<- Y3; Z2<- Cb*Z3+Sb*X3
- X1<- X2*Ca-Sa*Y2; Y1<- Ca*Y2+Sa*X2; Z1<- Z2
- X<- X1+FocusPoint[1]
- Y<- Y1+FocusPoint[2]
- Z<- Z1+FocusPoint[3]
- Out<- c(X,Y,Z)
- return(Out)
-}
-
-#######################################
-
-Embed<- function(...){
- varargin<- list(...)
- Nargs<- length(varargin)
- Pd3<- varargin[[1]]
- if(Mixtype(Pd3)==1){
- Pd3<- list(Pd3)
- }
- else if(Mixtype(Pd3)==3){
- Tmp<- list();
- for(I in Looprange(1,length(Pd3))){
- Tmp<- c(Tmp,Pd3[[I]])
- }
- Pd3<- Tmp
- }
- Tmpf=varargin[[2]]
- if(mode(Tmpf)=="character"){
- Tmp<- varargin[[3]]
- Tmp1<- gsub("c(","(",Tmp,fixed=TRUE)
- Vstr<- gsub(")",")",Tmp1,fixed=TRUE)
- Str<- paste("Tmpfn<- function",Vstr,"{",Tmpf,"}",sep="")
- eval(parse(text=Str))
- }
- else{
- Tmpfn<- Tmpf
- }
- Out<- list()
- for(I in Looprange(1,length(Pd3))){
- PD<- Pd3[[I]]
- Ans<- c()
- for(J in Looprange(1,Nrow(PD))){
- P<- PD[J,]
- Tmp<- Tmpfn(P[1],P[2])
- Ans<- rbind(Ans,Tmp)
- }
- Out<- c(Out, list(Ans))
- }
- if(length(Out)==1){
- Out<- Out[[1]]
- }
- return(Out)
-}
-
-#######################
-# 10.08.17
-# 14.03.30
-Facesdata<- function(...){
- varargin<-list(...)
- Nargs<- length(varargin)
- FL<- varargin[[1]]
- PT<- varargin[[length(varargin)]]
- Tmp<-grep("para",PT,fixed=TRUE)
- if(length(Tmp)>0){
- Ptype<- 1
- }else{
- Ptype<- -1
- }
- if(Nargs==2){
- CLadd<- list()
- }else{
- CLadd<- varargin[[2]]
- }
- NohiddenL<- list()
- HiddenL<- list()
- Eps<- 10^(-4)
- if(length(CLadd)>0){
- if(mode(CLadd)=="numeric"){
- C<- list()
- if(Nrow(CLadd)>1){
- for (I in Looprange(1,Nrow(CLadd))){
- C<- c(C,list(CLadd[I,]))
- }
- }else{
- I<- 1
- while (I<=Ncol(CLadd)){
- C<- c(C,list(CLadd[1,I:(I+2)]))
- I<- I+3
- }
- }
- CrvL<- list(C)
- }else if(mode(CLadd[[1]])=="numeric"){
- CrvL<- list()
- for (J in Looprange(1,length(CL))){
- Ctmp<- CLadd[[J]]
- C<- list()
- if(Nrow(Ctmp)>1){
- for (I in Looprange(1,Nrow(Ctmp))){
- C<- c(C,list(Ctmp[I,]))
- }
- }else{
- I<- 1
- while(I<=Ncol(Ctmp)){
- C<- c(C,list(Ctmp[1,I:(I+2)]))
- I<- I+3
- }
- }
- CrvL<- c(CrvL,list(C))
- }
- }else{
- CrvL<- CLadd
- }
- }else{
- CrvL<- list()
- }
- Out<- MakeveLfaceL(FL)
- VELNO<<- Out[[1]]
- VELHI<<- list()
- for (I in Looprange(1,length(CrvL))){
- Tmp<- CrvL[[I]]
- for (J in Looprange(1,length(Tmp)-1)){
- Edge<- list(Tmp[J],Tmp[J+1])
- Ntmp<- length(VELNO)
- VELNO(Ntmp+1)<<- list(Edge,0,Ntmp+1)
- }
- }
- FaceL<- Out[[2]]
- Tmp<- grep("raw",PT,fixed=TRUE)
- if(length(Tmp)==0){
- for (Nf in Looprange(1,length(FaceL))){
- Face<- FaceL[[Nf]]
- Menkakusi2(Face,Nf,Ptype)
- }
- }
- for (I in Looprange(1,length(VELNO))){
- Edge<- Op(1,VELNO[[I]])
- if(Norm(Edge[[1]]-Edge[[2]])>Eps){
- NohiddenL<- c(NohiddenL,list(Spaceline(Edge)))
- }
- }
- EdgeL<- list() # from 13.03.30
- for(K in Looprange(1,length(VELHI))){
- Edge<- Op(1,VELHI[[K]])
- P<- Edge[[1]]; Q<- Edge[[2]]
- if(Norm(P-Q)>Eps){
- EdgeL<- c(EdgeL,list(Edge))
- }
- }
- for(K in Looprange(1,length(EdgeL))){
- Edge<- EdgeL[[K]]
- P<- Edge[[1]]; Q<- Edge[[2]]
- Cflg<- 0
- for(J in Looprange(K+1,length(EdgeL))){
- Ej<- EdgeL[[J]]
- Pj<- Ej[[1]]; Qj<- Ej[[2]]
- if(Norm(Crossprod(Q-P,Qj-Pj))>Eps){
- next
- }
- if(Norm(Q-Pj)<Eps){
- EdgeL[[J]]<- list(P,Qj)
- Cflg<- 1
- break
- }
- if(Norm(P-Qj)<Eps){
- EdgeL[[J]]=list(Q,Pj)
- Cflg<- 1
- break
- }
- }
- if(Cflg==0){
- HiddenL<- c(HiddenL,list(Spaceline(Edge)))
- }
- } # until 14.03.30
- PHHIDDENDATA<<- HiddenL
- return(NohiddenL)
-}
-
-##############################
-# 2014.03.31
-
-PhHiddenData<- function(){
- PHHIDDENDATA
-}
-
-########## Old Fullform ( Check the case of Polygon )####################
-
-Fullformfunc<- function(FdL){# Out=Fullformfunc(FdL)
- Out<- list(Op(1,FdL))
- N<- Mixlength(FdL)
- for (Jrg in Looprange(1,N)){
- Tmp<- Stripblanks(Op(Jrg,FdL))
- Tmp1<- grep("=c(",Tmp,fixed=TRUE)
- if(length(Tmp1)>0){
- break
- }
- }
- Urg<- Stripblanks(Op(Jrg,FdL))
- StrV<- strsplit(Urg,"=",fixed=TRUE)[[1]]
- Uname<- StrV[1]
- Vrg<- Stripblanks(Op(Jrg+1,FdL))
- StrV<- strsplit(Vrg,"=",fixed=TRUE)[[1]]
- Vname<- StrV[1]
- if(Jrg==2){
- Tmp<- Stripblanks(Op(1,FdL))
- StrV<- strsplit(Tmp,"=",fixed=TRUE)[[1]]
- Zf<- StrV[2]
- Tmp<- list(Uname,Vname,Zf,Urg,Vrg)
- Out<- c(Out,Tmp)
- }else if(Jrg==4){
- Tmp<- Stripblanks(Op(1,FdL))
- StrV<- strsplit(Tmp,"=",fixed=TRUE)[[1]]
- Zf<- StrV[2]
- Tmp<- Stripblanks(Op(2,FdL))
- StrV<- strsplit(Tmp,"=",fixed=TRUE)[[1]]
- Xname<- StrV[1]
- Xf<- StrV[2]
- Tmp<- Stripblanks(Op(3,FdL))
- StrV<- strsplit(Tmp,"=",fixed=TRUE)[[1]]
- Yname<- StrV[1]
- Yf<- StrV[2]
- Tmp<- gsub(Xname,paste("(",Xf,")",sep=""),Zf,fixed=TRUE)
- Zf<- gsub(Yname,paste("(",Yf,")",sep=""),Tmp,fixed=TRUE)
- Tmp<- list(Xf,Yf,Zf,Urg,Vrg)
- Out<- c(Out,Tmp)
- }else{
- Tmp<- Stripblanks(Op(2,FdL))
- StrV<- strsplit(Tmp,"=",fixed=TRUE)[[1]]
- Xf<- StrV[2]
- Tmp<- Stripblanks(Op(3,FdL))
- StrV<- strsplit(Tmp,"=",fixed=TRUE)[[1]]
- Yf<- StrV[2]
- Tmp<- Stripblanks(Op(4,FdL))
- StrV<- strsplit(Tmp,"=",fixed=TRUE)[[1]]
- Zf<- StrV[2]
- Tmp<- list(Xf,Yf,Zf,Urg,Vrg)
- Out<- c(Out,Tmp)
- }
- DrwS<- "enws"
- BdyL<- c()
- for (I in Looprange(Jrg+2,Mixlength(FdL))){
- Tmp<- Op(I,FdL)
- if(mode(Tmp)=="character"){
- if(length(Tmp)==0){
- Tmp<- " "
- }
- DrwS<- Tmp
- }
- if(mode(Tmp)=="numeric" && Ncol(Tmp)>1){
- BdyL<- Tmp
- }
- }
- Tmp<- list(DrwS,BdyL)
- Out<- c(Out,Tmp)
- return(Out)
-}
-
-####################################
-
-Initangle<- function (){
- PHI<<- 30*pi/180
- THETA<<- 60*pi/180
-}
-
-##########################
-
-Invparapt<- function(...){
- varargin<- list(...)
- Eps<- 10^(-4)
- Fk<- varargin[[length(varargin)]]
- NFk<- Numptcrv(Fk)
- Tmp<- varargin[[1]]
- if(mode(Tmp)=="numeric" && length(Tmp)==1){ # debug
- Ph<- Tmp
- Fh<- varargin[[2]]
- }else{
- Fh<- Projpara(Fk)
- if(NFk>2){
- Tmp1<- Nearestpt(Tmp,Fh)
- Ph<- Tmp1[[2]]
- }else{
- Ah<- Ptcrv(1,Fh); Bh=Ptcrv(2,Fh)
- V1<- Tmp-Ah; V2<- Bh-Ah
- Tmp1<- Crossprod(V1,V2)
- if(abs(Tmp1)>Eps){
- print("Not on the line")
- return(c())
- }else{
- Ph<- Dotprod(V1,V2)/Norm(V2)^2+1
- }
- }
- }
- if(NFk>2){
- N<- trunc(Ph)
- S0<- Ph-N
- if(Ph>Numptcrv(Fh)-Eps){
- Out<- list(Ptend(Fk),Numptcrv(Fh))
- return(Out)
- }
- }else{
- N<- 1
- S0<- Ph-1
- }
- Ak<- Ptcrv(N,Fk); Bk=Ptcrv(N+1,Fk)
- Ah<- Ptcrv(N,Fh); Bh=Ptcrv(N+1,Fh)
- Ph<- (1-S0)*Ah+S0*Bh
- T2<- S0
- Pk<- (1-T2)*Ak+T2*Bk
- Out<- list(Pk,N+T2)
- return(Out)
-}
-
-#################################
-
-#100815
-Invperspt<- function(...){
- varargin<-list(...)
- Eps<- 10^(-4)
- Fk<- varargin[[length(varargin)]]
- NFk<- Numptcrv(Fk)
- Tmp<- varargin[[1]]
- if(mode(Tmp)=="numeric" && length(Tmp)==1){
- Ph<- varargin[[1]]
- Fh<- varargin[[2]]
- }else{
- Fh<- Projpers(Fk)
- if(NFk>2){
- Tmp1<- Nearestpt(Tmp,Fh)
- Ph<- Tmp1[[2]]
- }else{
- Ah<- Ptcrv(1,Fh); Bh<- Ptcrv(2,Fh)
- V1<- Tmp-Ah; V2<- Bh-Ah
- Tmp1<- Crossprod(V1,V2)
- if(abs(Tmp1)>Eps){
- print("Not on the line")
- Out<- c()
- return(Out)
- }else{
- Ph<- Dotprod(V1,V2)/Norm(V2)^2+1# 09.11.12
- }
- }
- }
- if(NFk>2){
- N<- trunc(Ph)
- S0<- Ph-N
- if(Ph>Numptcrv(Fh)-Eps){
- Out<- list(Ptend(Fk),Numptcrv(Fh))
- return(Out)
- }
- }else{
- N<- 1
- S0<- Ph-1 # 09.11.12
- }
- Ak<- Ptcrv(N,Fk); Bk<- Ptcrv(N+1,Fk)
- Ah<- Ptcrv(N,Fh); Bh<- Ptcrv(N+1,Fh)
- Ph<- (1-S0)*Ah+S0*Bh
- Phc<- Cancoordpers(c(Ph,0))
- Ahc<- Cancoordpers(c(Ah,0))
- Bhc<- Cancoordpers(c(Bh,0))
- Vp<- Phc-EyePoint
- Va<- Ak-EyePoint
- AB<- Bk-Ak
- Cp<- Crossprod(Vp,AB)
- Nmr<- Crossprod(Va,Vp)
- Mx<- max(abs(Cp))
- if(abs(Cp[1])==Mx){
- T2<- Nmr[1]/Cp[1]
- }else if(abs(Cp[2])==Mx){
- T2<- Nmr[2]/Cp[2]
- }else{
- T2<- Nmr[3]/Cp[3]
- }
- Pk<- (1-T2)*Ak+T2*Bk
- Out<- list(Pk,N+T2)
- return(Out)
-}
-
-#########################
-
-Kukannozoku<- function(Jokyo,KukanL){
- Eps<- 10^(-6)
- N<- Nrow(KukanL)
- T1<- Jokyo[1]; T2<- Jokyo[2]
- Tmp<- KukanL[1,]
- T1<- max(T1,Tmp[1])
- Tmp<- KukanL[N,]
- T2<- min(T2,Tmp[2])
- Res<- c()
- Flg<- 0
- for (I in Looprange(1,N)){
- Ku<- KukanL[I,]
- if(Flg==0){
- if(Ku[2]<T1){
- Res<- rbind(Res,Ku)
- }else{
- Flg<- 1
- if(Ku[1]<T1-Eps){
- Tmp<- c(Ku[1],T1)
- Res<- rbind(Res,Tmp)
- }
- if(Ku[2]>T2+Eps){
- Tmp<- c(T2,Ku[2])
- Res<- rbind(Res,Tmp)
- }
- }
- }else if(Flg==1){
- if(Ku[2]<T2){
- next
- }else{
- Flg<- 2
- if(Ku[1]<T2-Eps){
- Ku<- c(T2,Ku[2])
- }
- Res<- rbind(Res,Ku)
- }
- }else{
- Res<- rbind(Res,Ku)
- }
- }
- return(Res)
-}
-
-########################################
-
-Makeskeletondata<- function(Obj2L,Plt2L,R0,Eps2){
- Eps<- 10.0^(-3)
- Dmat<- c()
- Dind<- c()
- for (I in Looprange(1,Mixlength(Plt2L))){
- Dt<- Op(I,Plt2L)
- N1<- Nrow(Dmat)+1
- if(Nrow(Dmat)==0){
- Dmat<- Dt
- }else{
- Dmat<- rbind(Dmat,Dt)
- }
- N2<- Nrow(Dmat)
- Dind<- c(Dind,N1,N2)
- }
- Dind<- matrix(Dind,ncol=2,byrow=TRUE)
- Nind<- Nrow(Dind)
- Allres<- list()
- for (Nobj in Looprange(1,Mixlength(Obj2L))){
- Plt2<- Op(Nobj,Obj2L)
- PhL<- Plt2[,1:2]
- ClipL<- c()
- for (Ns in Looprange(1,Nrow(PhL)-1)){
- P1<- PhL[Ns:(Ns+1),]
- for (I in Looprange(1,Nrow(Dind))){
- Tmp<- Dmat[Dind[I,1]:Dind[I,2],]
- P2<- Tmp[,1:2]
- KC<- IntersectcrvsPp(P1,P2,Eps)
- if(Mixlength(KC)>0){
- for (J in 1:Mixlength(KC)){
- P<- Op(1,Op(J,KC))
- Tmp<- Op(2,Op(J,KC))
- if(Tmp<1+Eps && Ns==1){
- next
- }
- if(Tmp>Numptcrv(P1)-Eps && Ns==(Nrow(PhL)-1)){
- next
- }
- N1<- Ns
- N2<- Op(3,Op(J,KC))
- Pa<- Plt2[N1,1:2]
- Za<- Plt2[N1,3]
- Pb<- Plt2[N1+1,1:2]
- Zb<- Plt2[N1+1,3]
- if(Norm(Pa-Pb)<Eps){
- next
- }
- T1<- Norm(Pa-P)/Norm(Pa-Pb)
- Z1<- (1-T1)*Za+T1*Zb
- Tmp<- Dmat[Dind[I,1]:Dind[I,2],]
- Pa<- Tmp[N2,1:2]
- Za<- Tmp[N2,3]
- Pb<- Tmp[N2+1,1:2]
- Zb<- Tmp[N2+1,3]
- if((Norm(Pa-Pb)<Eps)){
- next
- }
- T2<- Norm(Pa-P)/Norm(Pa-Pb)
- Z2<- (1-T2)*Za+T2*Zb
- if(Z1<Z2-Eps2){
- if(Nrow(ClipL)==0){
- Tmp<- 1
- }else{
- Tmp1<- ClipL[,1]-P[1]
- Tmp2<- ClipL[,2]-P[2]
- Tmp3<- Tmp1^2+Tmp2^2
- Tmp<- min(Tmp3)
- }
- if(Tmp>Eps^2){
- Tmp1<- P1[2,]-P1[1,]
- Tmp2<- Pb-Pa
- Tmp3<- Dotprod(Tmp1,Tmp2)
- Tmp3<- Tmp3/Norm(Tmp1)/Norm(Tmp2)
- Tmp<- 1-0.5*Tmp3^2
- ClipL<- rbind(ClipL,c(P,N1,T1,R0/Tmp))
- }
- }
- }
- }
- }
- }
- Te<- Nrow(Plt2)
- KukanL<- rbind(c(),c(1.0,Te))
- P1<- PhL
- if(Nrow(ClipL)>0){
- for (I in 1:Nrow(ClipL)){
- P<- ClipL[I,1:2]
- NN<- ClipL[I,3]
- T<- NN+ClipL[I,4]
- R<- ClipL[I,5]
- Flg<- 0
- for (J in NN:1){
- Q<- Pointoncurve(J,P1)
- if(Norm(P-Q)<R){
- next
- }
- Flg<- 1
- break
- }
- if(Flg==0){
- T1<- 1
- }else{
- T1<- J; T2<- T
- H<- T2-T1
- for (N in 1:10){
- H<- H*0.5
- Q<- Pointoncurve(T1+H,P1)
- if(Norm(P-Q)<R){
- T2<- T2-H
- }else{
- T1<- T1+H
- }
- }
- }
- Ku<- c(T1)
- Flg<- 0
- for (J in Looprange(NN+1,Te)){
- Q<- Pointoncurve(J,P1)
- if(Norm(P-Q)<R){
- next
- }
- Flg<- 1
- break
- }
- if(Flg==0){
- T2<- Te
- }else{
- T1<- T; T2<- J
- H<- T2-T1
- for (N in 1:10){
- H<- H*0.5
- Q<- Pointoncurve(T1+H,P1)
- if(Norm(P-Q)<R){
- T1<- T1+H
- }else{
- T2<- T2-H
- }
- }
- }
- Ku<- c(Ku,T2)
- KukanL<- Kukannozoku(Ku,KukanL)
- }
- }
- Res<- list()
- for (I in Looprange(1,Nrow(KukanL))){
- T1<- KukanL[I,1]; N1<- trunc(T1)
- T2<- KukanL[I,2]; N2<- trunc(T2)
- PtL<- list()
- if(T1-N1<1-Eps){
- Tmp<- Pointoncurve(T1,P1)
- PtL<- list(Tmp)
- }
- for (J in Looprange(N1+1,N2)){
- Tmp<- Pointoncurve(J,P1)
- PtL<- c(PtL,list(Tmp))
- }
- if(T2-N2>Eps){
- Tmp<- Pointoncurve(T2,P1)
- PtL<- c(PtL,list(Tmp))
- }
- Res<- c(Res,list(Listplot(PtL)))
- }
- Allres<- c(Allres,Res)
- }
- return(Allres)
-}
-
-#########################
-
-#100815
-Makeskeletonpersdata<- function(Obj2L,Plt2L,R0,Eps2){
- Eps<- 10.0^(-3)
- Dmat<- c()
- Dind<- c()
- for (I in Looprange(1,Mixlength(Plt2L))){
- Dt<- Op(I,Plt2L)
- N1<- Nrow(Dmat)+1
- Dmat<- rbind(Dmat,Dt)
- N2<- Nrow(Dmat)
- Dind<- rbind(Dind,c(N1,N2))
- }
- Nind<- Nrow(Dind)
- Allres<- list()
- for (Nobj in Looprange(1,Mixlength(Obj2L))){
- Plt2<- Op(Nobj,Obj2L)
- PhL<- Plt2[,1:2]
- ClipL<- c()
- for (Ns in Looprange(1,Nrow(PhL)-1)){
- P1<- PhL[Ns:(Ns+1),]
- for (I in Looprange(1,Nrow(Dind))){
- Tmp<- Dmat[Dind[I,1]:Dind[I,2],]
- P2<- Tmp[,1:2]
- KC<- IntersectcrvsPp(P1,P2,Eps)
- if(Mixlength(KC)>0){
- for (J in Looprange(1,Mixlength(KC))){#
- P<- Op(1,Op(J,KC))
- Tmp<- Op(2,Op(J,KC))
- if(Tmp<(1+Eps) && Ns==1){
- next
- }
- if(Tmp>Numptcrv(P1)-Eps && Ns==(Nrow(PhL)-1)){
- next
- }
- N1<- Ns
- N2<- Op(3,Op(J,KC))
- Pa<- Plt2[N1,1:2]
- Za<- Plt2[N1,3]
- Pb<- Plt2[N1+1,1:2]
- Zb<- Plt2[N1+1,3]
- if(Norm(Pa-Pb)<Eps){
- next
- }
- T1<- Norm(Pa-P)/Norm(Pa-Pb)#norm(Pa-P)/norm(Pa-Pb)
- Pka<- Cancoordpers(c(Pa[1],Pa[2],Za))
- Pkb<- Cancoordpers(c(Pb[1],Pb[2],Zb))
- if(T1>1-Eps){
- Pk<- Pkb
- }else{
- Tmp1<- Listplot(c(Pa,Pb))
- Tmp2<- Spaceline(c(Pka,Pkb))
- Tmp<- Invperspt(1+T1,Tmp1,Tmp2)
- Pk<- Op(1,Tmp)
- }
- Z1<- Zperspt(Pk)
- Tmp<- Dmat[Dind[I,1]:Dind[I,2],]
- Pa<- Tmp[N2,1:2]
- Za<- Tmp[N2,3]
- Pb<- Tmp[N2+1,1:2]
- Zb<- Tmp[N2+1,3]
- if(Norm(Pa-Pb)<Eps){
- next
- }
- T2<- Norm(Pa-P)/Norm(Pa-Pb)
- Pka<- Cancoordpers(c(Pa[1],Pa[2],Za))
- Pkb<- Cancoordpers(c(Pb[1],Pb[2],Zb))
- if(T2>(1-Eps)){
- Pk<- Pkb
- }else{
- Tmp1<- Listplot(c(Pa,Pb))
- Tmp2<- Spaceline(c(Pka,Pkb))
- Tmp<- Invperspt(1+T2,Tmp1,Tmp2)
- Pk<- Op(1,Tmp)
- }
- Z2<- Zperspt(Pk)
- if(Z1<(Z2-Eps2)){
- if(length(ClipL)==0){
- Tmp<- 1
- }else{
- Tmp1<- ClipL[,1]-P[1]
- Tmp2<- ClipL[,2]-P[2]
- Tmp3<- Tmp1^2+Tmp2^2
- Tmp<- min(Tmp3)
- }
- if(Tmp>Eps^2){
- Tmp1<- P1[2,]-P1[1,]
- Tmp2<- Pb-Pa
- Tmp3<- Dotprod(Tmp1,Tmp2)
- Tmp3<- Tmp3/Norm(Tmp1)/Norm(Tmp2)
- Tmp<- 1-0.5*Tmp3^2
- ClipL<- rbind(ClipL,c(P,N1,T1,R0/Tmp))
- }
- }
- }
- }
- }
- }
- Te<- Nrow(Plt2)
- KukanL<- rbind(c(),c(1.0,Te))
- P1<- PhL
- if(Nrow(ClipL)>0){
- for (I in Looprange(1,Nrow(ClipL))){
- P<- ClipL[I,1:2]
- NN<- ClipL[I,3]
- T<- NN+ClipL[I,4]
- R<- ClipL[I,5] #added 10.08.17
- Flg<- 0
- for (J in NN:1){
- Q<- Pointoncurve(J,P1)
- if(Norm(P-Q)<R){#(norm(P-Q)<R)
- next
- }
- Flg<- 1
- break
- }
- if(Flg==0){
- T1<- 1
- }else{
- T1<- J; T2<- T
- H<- T2-T1
- for (N in 1:10){
- H<- H*0.5
- Q<- Pointoncurve(T1+H,P1)
- if(Norm(P-Q)<R){ # norm(P-Q)<R
- T2<- T2-H
- }else{
- T1<- T1+H
- }
- }
- }
- Ku<- c(T1)#Ku<- [T1]
- Flg<- 0
- for (J in Looprange(NN+1,Te)){
- Q<- Pointoncurve(J,P1)
- if(Norm(P-Q)<R){
- next#continue
- }
- Flg<- 1
- break
- }
- if(Flg==0){
- T2<- Te
- }else{
- T1<- T; T2<- J
- H<- T2-T1
- for (N in 1:10){
- H<- H*0.5
- Q<- Pointoncurve(T1+H,P1)
- if(Norm(P-Q)<R){
- T1<- T1+H
- }else{
- T2<- T2-H
- }
- }
- }
- Ku<- c(Ku,T2)#[Ku,T2]
- KukanL<- Kukannozoku(Ku,KukanL)
- }
- }
- Res<- list()#[]
- for (I in Looprange(1,Nrow(KukanL))){#(I=1:size(KukanL,1))
- T1<- KukanL[I,1]; N1<- trunc(T1)
- T2<- KukanL[I,2]; N2<- trunc(T2)
- PtL<- list()#[]
- if(T1-N1<1-Eps){
- Tmp<- Pointoncurve(T1,P1)
- PtL<- list(Tmp)#100816c(PtL,list(Tmp)) PtL<- MixS(Tmp)
- }
- for (J in Looprange(N1+1,N2)){
- Tmp<- Pointoncurve(J,P1)
- PtL<- c(PtL,list(Tmp))#Mixadd(PtL,Tmp)
- }
- if(T2-N2>Eps){
- Tmp<- Pointoncurve(T2,P1)
- PtL<- c(PtL,list(Tmp))#Mixadd(PtL,Tmp)
- }
- Res<- c(Res,list(Listplot(PtL)))#Res<- Mixadd(Res,Listplot(PtL))
- }
- Allres<- c(Allres,Res)#Allres<- Mixjoin(Allres,Res)
- }
- return(Allres)
-}
-
-##############################3
-
-MakeveLfaceL<- function(VfL){
-# // Out format
-# // VeL Edge, Face num(as numlist), VeL num
-# // FL Face (Vertexs)
- Eps<- 10^(-4)
- Tmp<- VfL[[length(VfL)]]
- Tmp1<- Tmp[[1]]
- if(mode(Tmp1)=="numeric"){
- FvL<- list(VfL)
- }else{
- FvL<- VfL
- }
- EL<- list(); FL<- list()
- for (Nn in Looprange(1,length(FvL))){
- Tmp<- FvL[[Nn]]
- VL<- Tmp[[1]]
- if(length(VL)>0){
- FnL<- Tmp[[2]]
- FaceL<- list()
- for (I in Looprange(1,length(FnL))){
- Tmp1<- FnL[[I]]
- PtL<- list()
- for (J in Looprange(1,length(Tmp1))){
- Tmp2<- Tmp1[[J]]
- PtL[[J]]<- VL[[Tmp2]]
- }
- FaceL[[I]]<- PtL
- }
- }else{
- FaceL<- list(Tmp[[2]])
- }
- for (I in Looprange(1,length(FaceL))){
- Face<- FaceL[[I]]
- Face<- c(Face,list(Face[[1]]))
- FL<- c(FL,list(Face))
- for (J in Looprange(1,length(Face)-1)){
- Edge<- list(Face[[J]],Face[[J+1]])
- Flg<- 0
- for (K in Looprange(1,length(EL))){
- Tmp<- EL[[K]]
- Tmp1<- Tmp[[1]]
- Tmp2<- Norm(Edge[[1]]-Tmp1[[1]])+Norm(Edge[[2]]-Tmp1[[2]])
- Tmp3<- Norm(Edge[[1]]-Tmp1[[2]])+Norm(Edge[[2]]-Tmp1[[1]])
- if(Tmp2<Eps || Tmp3<Eps){#(
- Tmp<- EL[[K]]
- Tmp1<- Tmp[[1]]
- Tmp2<- c(Tmp[[2]],length(FL))
- EL[[K]]<- list(Tmp1,Tmp2,K)
- Flg<- 1
- break
- }
- }
- if(Flg==0){
- Ntmp<- length(EL)
- EL[[Ntmp+1]]<- list(Edge,c(length(FL)),Ntmp+1)
- }
- }
- }
- }
- Out<- list(EL,FL)
- return(Out)
-}
-
-###########################
-#// 09.10.29
-#// 09.11.15
-
-Menkakusi2<- function(Face,Nf,Ptype){
-# global THETA PHI EyePoint FocusPoint VELNO VELHI
- Eps0<- 10^(-6)
- Eps<- 10^(-4)
- Tmp1<- Face[[1]]-Face[[2]]
- Tmp2<- Face[[3]]-Face[[2]]
- if(Norm(Tmp1)<Eps || Norm(Tmp2)<Eps){
- return()
- }
- Vec<- 1/Norm(Tmp1)/Norm(Tmp2)*Crossprod(Tmp1,Tmp2)
- if(Norm(Vec)<Eps){
- return()
- }
- if(Ptype== -1){
- W<- EyePoint
- Tmp<- Dotprod(Vec,W-Face[[1]])
- }else{
- W<- c(sin(THETA)*cos(PHI),sin(THETA)*sin(PHI),cos(THETA))
- W<- 100*W
- Tmp<- Dotprod(Vec,W-Face[[1]])
- }
- if(abs(Tmp)<Eps){
- return()
- }
- if(Tmp<-Eps){
- Vec<- -Vec
- }
- if(Ptype==-1){
- G1<- Projpers(Spaceline(Face))
- }else{
- G1<- Projpara(Spaceline(Face))
- }
- VL<- list()
- for (I in Looprange(1,Numptcrv(G1))){
- VL[[I]]<- Ptcrv(I,G1)
- }
- Out1L<- list()
- Out2L<- VELHI
- for (N in Looprange(1,length(VELNO))){
- Out1<- list()
- Out2<- list()
- Tmp<- VELNO[[N]]
- Edge<- Tmp[[1]]
- Ne<- Tmp[[2]]
- NNe<- Tmp[[3]]
- if(Member(Nf,Ne)){
- Out1L<- c(Out1L, list(list(Edge,Ne,NNe)))
- next
- }
- if(Ptype==-1){
- PtA<- Perspt(Edge[[1]])
- PtB<- Perspt(Edge[[2]])
- }else{
- PtA<- Parapt(Edge[[1]])
- PtB<- Parapt(Edge[[2]])
- }
- if(Norm(PtA-PtB)<Eps){
- next
- }
- Bdy<- list(G1)
- V<- PtB-PtA
- TenL<- KoutenList(PtA,V,Bdy)
- Nten<- length(TenL)
- if(Nten==0){ # debug 10.08.17
- Out1L<- c(Out1L,list(list(Edge,Ne,NNe)))
- next
- }
- Te<- 0
- Pe3<- Edge[[1]]
- if(Ptype==-1){
- Tmp1<- Perspt(Pe3)
- Tmp<- Invperspt(Tmp1,Spaceline(Face))
- }else{
- Tmp1<- Parapt(Pe3)
- Tmp<- Invparapt(Tmp1,Spaceline(Face))
- }
- Qe3<- Tmp[[1]]
- Flg<- 0
- for (I in Looprange(1,Nten)){
- TenP<- TenL[[I]]
- Ts<- TenP[[1]]
- P<- TenP[[2]]
- if(Ts< -Eps){
- next
- }
- Eline<- Spaceline(Edge)
- if(Ptype==-1){
- Tmp<- Invperspt(P,Eline)
- Tmp1<- Invperspt(P,Spaceline(Face))
- }else{
- Tmp<- Invparapt(P,Eline)
- Tmp1<- Invparapt(P,Spaceline(Face))
- }
- P3<- Tmp[[1]]; Q3<- Tmp1[[1]]
- if(Ts>1-Eps){# // P3, Q3 are necessary
- Flg<- I
- break
- }
- if(abs(Te-Ts)>Eps0){
- if((I%%2)==1){
- Out1<- c(Out1,list(list(Pe3,P3)))
- }else{
- if(length(Qe3)==0){
- Tmp<- Op(2,TenL[[I-1]])
- if(Ptype==-1){
- Tmp1<- Invperspt(Tmp,Spaceline(Face))
- }else{
- Tmp1<- Invparapt(Tmp,Spaceline(Face))
- }
- Qe3<- Tmp1[[1]]
- }
- PM<- 0.5*(Pe3+P3); QM<- 0.5*(Qe3+Q3)
- if(Ptype==-1){
- Z1<- Zperspt(PM); Z2<- Zperspt(QM)
- }else{
- Z1<- Zparapt(PM); Z2<- Zparapt(QM)
- }
- if(Z1>Z2){
- Out1<- c(Out1, list(list(Pe3,P3)))
- }else{
- Out2<- c(Out2, list(list(Pe3,P3)))
- }##
- }
- }
- Te<- Ts; Pe3<- P3; Qe3<- Q3
- }
- if(Flg==0){
- if(Norm(Pe3-Edge[[2]])>Eps0){
- Out1<- c(Out1, list(list(Pe3,Edge[[2]])))
- }
- }else{
- if((Flg%%2)==1){
- Out1<- c(Out1, list(list(Pe3,Edge[[2]])))
- }else{
- PM<- 0.5*(Pe3+P3); QM<- 0.5*(Qe3+Q3)
- if(Ptype==-1){
- Z1<- Zperspt(PM); Z2<- Zperspt(QM)
- }else{
- Z1<- Zparapt(PM); Z2<- Zparapt(QM)
- }
- if(Z1>Z2){
- Out1<- c(Out1, list(list(Pe3,Edge[[2]])))
- }else{
- Out2<- c(Out2, list(list(Pe3,Edge[[2]])))
- }
- }
- }
- for (I in Looprange(1,length(Out1))){
- Tmp<- Out1[[I]]
- if(I==1){
- SeL<- Tmp
- }else{
- if(Norm(SeL[[2]]-Tmp[[1]])<Eps0){
- SeL[[2]]<- Tmp[[2]]
- }else{
- Out1L<- c(Out1L, list(list(SeL,Ne,NNe)))
- SeL<- Tmp
- }
- }
- }
- if(length(Out1)>0){
- Out1L<- c(Out1L, list(list(SeL,Ne,NNe)))
- }
- for (I in Looprange(1,length(Out2))){
- Tmp<- Out2[[I]]
- if(I==1){
- SeL<- Tmp
- }else{
- if(Norm(SeL[[2]]-Tmp[[1]])<Eps0){
- SeL[[2]]<- Tmp[[2]]
- }else{
- Out2L<- c(Out2L, list(list(SeL,Ne,NNe)))
- SeL<- Tmp
- }
- }
- }
- if(length(Out2)>0){
- Out2L<- c(Out2L, list(list(SeL,Ne,NNe)))
- }
- }
- VELNO<<- Out1L
- VELHI<<- Out2L
-}
-
-###################################
-
-Parapt<- function(Plist){ # 18.02.19 changed (for point list)
- if(!is.list(Plist)){Plist=list(Plist)}
- Out=list()
- for(jj in 1:length(Plist)){
- P=Op(jj,Plist)
- x<- P[1]
- y<- P[2]
- z<- P[3]
- Xz<- -x*sin(PHI)+y*cos(PHI)
- Yz<- -x*cos(PHI)*cos(THETA)-y*sin(PHI)*cos(THETA)+z*sin(THETA)
- Out<- c(Out,list(c(Xz,Yz)))
- }
- if(length(Out)==1){Out=Op(1,Out)}
- return(Out)
-}
-
-###################################
-
-Partcrv3<- function(T1,T2,Fk){
- Eps0=10^(-4)
-#// Tmp=Mixop(1,Fk)
-#// new part from
- if(T1>(T2+Eps0)){
- Npt<- Nrow(Fk)
- Out1<- Partcrv3(T1,Npt,Fk)
- Out2<- Partcrv3(1,T2,Fk)
- Tmp<- Fk[1,]-Fk[Npt,]
- if(Norm(Tmp)<Eps0){
- PL<- Joincrvs(Out1,Out2)
- }else{
- PL<- list(Out1,Out2)
- }
- rownames(PL)<- 1:Nrow(PL)
- return(PL)
- }
- if(floor(T1)==floor(T2)){ #18.02.26from
- Tmp=floor(T1)
- p1=Op(Tmp,Fk); p2=Op(Tmp+1,Fk)
- PL=c(p1+(T1-Tmp)*(p2-p1))
- PL=Appendrow(PL, p1+(T2-Tmp)*(p2-p1)) #18.02.26until
- }else{
- Is<- ceiling(T1)
- Ie<- floor(T2)
- PL<- c()
- if(T1<Is-Eps0){
- P<- (Is-T1)*Fk[Is-1,]+(1-Is+T1)*Fk[Is,]
- PL<- Appendrow(PL, P) #18.02.10(bug)
- }
- PL<- Appendrow(PL,Fk[Is:Ie,])
- if(T2>(Ie+Eps0)){
- P<- (1-T2+Ie)*Fk[Ie,]+(T2-Ie)*Fk[Ie+1,]
- PL<- Appendrow(PL,P)
- }
- }
- return(PL)
-}
-
-###################################
-
-#100815
-Perspt<- function(P){
- Tmp<- P-FocusPoint
- X1<- Tmp[1]; Y1<- Tmp[2]; Z1<- Tmp[3]
- Tmp<- EyePoint-FocusPoint
- E1<- Tmp[1];F1<- Tmp[2];G1<- Tmp[3]
- Ca<- E1/sqrt(E1^2+F1^2)
- Sa<- F1/sqrt(E1^2+F1^2)
- X2<- X1*Ca+Y1*Sa; Y2<- -X1*Sa+Y1*Ca; Z2<- Z1
- E2<- E1*Ca+F1*Sa; F2<- -E1*Sa+F1*Ca; G2<- G1
- Cb<- E2/sqrt(E2^2+G2^2)
- Sb<- G2/sqrt(E2^2+G2^2)
- X3<- X2*Cb+Z2*Sb; Y3<- Y2; Z3<- -X2*Sb+Z2*Cb
- E3<- E2*Cb+G2*Sb; F3<- F2; G3<- -E2*Sb+G2*Cb
- Yz<- E3/(E3-X3)*Y3
- Zz<- E3/(E3-X3)*Z3
- Out<- c(Yz,Zz)
- return(Out)
-}
-
-
-#################################
-
-Phcutdata<- function(VL,FaceL,PlaneD){
- Out<- list()
- EL<- list()
- Eps<- 10^(-4)
- for (I in Looprange(1,Mixlength(FaceL))){
- Face<- Op(I,FaceL)
- for (J in Looprange(1,length(Face))){
- Nj<- J+1
- if(J==length(Face)){
- Nj<- 1
- }
- N1<- Face[J]; N2<- Face[Nj]
- Tmp<- c(N1,N2)
- Flg<- 0
- for (K in Looprange(1,Mixlength(EL))){
- Tmp1<- Op(K,EL)
- Tmp2<- Tmp1[2:1]
- if(all(Tmp==Tmp1) || all(Tmp==Tmp2)){
- Flg<- 1
- break
- }
- }
- if(Flg==0){
- EL<- c(EL,list(Tmp))
- }
- }
- }
- Out0<- list()
- for (I in Looprange(1,Mixlength(EL))){
- Tmp<- Op(I,EL)
- Tmp1<- Op(Tmp[1],VL)
- Tmp2<- Op(Tmp[2],VL)
- Out0<- c(Out0, list(Spaceline(Tmp1,Tmp2)))
- }
- if(Mixtype(PlaneD)!=1){
- V1<- Op(1,PlaneD)
- Tmp<- Op(2,PlaneD)
- if(length(Tmp)>1){
- d<- V1[1]*Tmp[1]+V1[2]*Tmp[2]+V1[3]*Tmp[3]
- }else{
- d<- Tmp
- }
- }else if(mode(PlaneD)=="numeric"){
- V1<- PlaneD[1:3]
- d<- PlaneD[4]
- }else{
- StrV<- strsplit(PlaneD,"=",fixed=TRUE)
- StrV<- StrV[[1]]
- if(length(StrV)>1){
- Tmp1<- StrV[1]
- Tmp2<- StrV[2]
- PlaneD<- paste(Tmp1,"-(",Tmp2,")",sep="")
- }
- x<- 0; y<- 0; z<- 0
- d<- -eval(parse(text=PlaneD))
- x<- 1; y<- 0; z<- 0;
- Tmp1<- eval(parse(text=PlaneD))+d
- x<- 0; y<- 1; z<- 0
- Tmp2<- eval(parse(text=PlaneD))+d
- x<- 0; y<- 0; z<- 1
- Tmp3<- eval(parse(text=PlaneD))+d
- V1<- c(Tmp1,Tmp2,Tmp3)
- }
- if(all(V1==c(0,0,0))){
- return(Out0)
- }
- V3<- c(1,0,0)
- Out1<- Rotate3data(Out0,V1,V3)
- Tmp2<- Rotate3pt(c(1,0,0),V3,V1)
- Tmp<- V1[1]*Tmp2[1]+V1[2]*Tmp2[2]+V1[3]*Tmp2[3]
- x0<- d/Tmp
- PtL<- list()
- for (I in Looprange(1,Mixlength(Out1))){
- Tmp<- Op(I,Out1)
- Tmp1<- Tmp[1,]; Tmp2<- Tmp[2,]
- P<- list(Tmp1,Tmp2-Tmp1)
- Tmp<- list(Tmp1[1],Tmp2[1]-Tmp1[1])
- if(abs(Tmp[[2]]) < Eps){
- Tmp<- c()
- }else{
- Tmp1<- Tmp[[2]]
- Tmp2<- x0-Tmp[[1]]
- Tmp<- c(Tmp2/Tmp1)
- }
- if(length(Tmp)>0){
- Tmp<- Tmp[1]
- if(Tmp>-Eps && Tmp<(1+Eps)){
- Tmp3<- P[[1]]+Tmp*P[[2]]
- Tmp3<- Rotate3pt(Tmp3,V3,V1)
- if(Tmp<Eps){
- Tmp1<- Op(I,EL)
- Tmp1<- Tmp1[1]
- Tmp4<- list(c(Tmp1,Tmp1),Tmp3)
- }else{
- if(Tmp>1-Eps){
- Tmp1<- Op(I,EL)
- Tmp1<- Tmp1[2]
- Tmp4<- list(c(Tmp1,Tmp1),Tmp3)
- }else{
- Tmp4<- list(Op(I,EL),Tmp3)
- }
- }
- Flg<- 0
- for (J in Looprange(1,Mixlength(PtL))){
- Tmp<- Op(J,PtL)
- Tmp<- Op(2,Tmp)
- if(Norm(Tmp3-Tmp)<Eps){
- Flg<- 1
- break
- }
- }
- if(Flg==0){
- PtL<- c(PtL,list(Tmp4))
- }
- }
- }
- }
- if(Mixlength(PtL)==0){
- return(Out0)
- }
- PL<- list(Op(1,PtL))
- QL<- PtL[2:Mixlength(PtL)]
- N<- Mixlength(QL)
- for (I in Looprange(2,N+1)){
- Tmp1<- Op(Mixlength(PL),PL)
- Tmp1<- Op(1,Tmp1)
- for (J in Looprange(1,Mixlength(QL))){
- Tmp2<- Op(J,QL)
- Tmp2<- Op(1,Tmp2)
- Flg<- 0
- for (K in Looprange(1,Mixlength(FaceL))){
- Tmp3<- Op(K,FaceL);
- if(Member(Tmp1[1],Tmp3) &&
- Member(Tmp1[2],Tmp3) &&
- Member(Tmp2[1],Tmp3) &&
- Member(Tmp2[2],Tmp3)){
- Flg<- 1
- break
- }
- }
- if(Flg==1){
- break
- }
- }
- J<- min(J, Mixlength(QL))
- PL<- c(PL,list(Op(J,QL)))
- Tmp1<- QL[Looprange(1,J-1)]
- Tmp2<- QL[Looprange(J+1,Mixlength(QL))]
- QL<- c(Tmp1,Tmp2)
- if(Mixlength(QL)==0){
- break
- }
- }
- PHCUTPOINTL<<- PL
- Tmp<- list()
- for (J in Looprange(1,Mixlength(PL))){
- Tmp1<- Op(J,PL)
- Tmp1<- Op(2,Tmp1)
- Tmp<- c(Tmp,list(Tmp1))
- }
- Tmp1<- Op(1,PL)
- Tmp1<- Op(2,Tmp1)
- Tmp<- c(Tmp,list(Tmp1))
- Out2<- Spaceline(Tmp)
- Out<- c(Out0,list(Out2))
-}
-
-#########################################
-
-Phcutoffdata<- function(...){
- varargin<-list(...)
- Eps<- 10^(-4)
- Out2<- list()
- VL<- varargin[[1]]
- FaceL<- varargin[[2]]
- PlaneD<- varargin[[3]]
- Sgnstr<- varargin[[4]]
- Fugou<- 1
- if(Sgnstr=="-" || Sgnstr=="n"){
- Fugou<- -1
- }
- Out0<- Phcutdata(VL,FaceL,PlaneD)
- PtL<- PHCUTPOINTL
- PHVERTEXL<<- VL
- PHFACEL<<- FaceL
- if(length(PtL)==0){
- Out2<- Out0
- return(Out2)
- }
- N1<- Mixlength(VL)
- Face<- c()
- for (I in Looprange(1,Mixlength(PtL))){
- Tmp<- Op(I,PtL)
- Tmp3<- Op(1,Tmp)
- Tmp1<- Tmp3[[1]]; Tmp2<- Tmp3[[2]] # debugged 10.08.14
- if(Tmp1!=Tmp2){
- VL<- c(VL,list(Op(2,Tmp)))
- N1<- N1+1
- Tmp1<- N1
- }
- Face<- c(Face,Tmp1)
- PtL[[I]]<- list(Op(1,Tmp),Tmp1)
- }
- OutfL<- list(Face)
- if(Mixtype(PlaneD)!=1){
- V1<- Op(1,PlaneD)
- Tmp<- Op(2,PlaneD)
- if(length(Tmp)>1){
- d<- V1[1]*Tmp[1]+V1[2]*Tmp[2]+V1[3]*Tmp[3]
- }else{
- d<- Tmp
- }
- }else if(mode(PlaneD)=="numeric"){
- V1<- PlaneD[1:3]
- d<- PlaneD[4]
- }else{
- StrV<- strsplit(PlaneD,"=",fixed=TRUE)
- StrV<- StrV[[1]]
- if(length(StrV)>1){
- Tmp1<- StrV[1]
- Tmp2<- StrV[2]
- PlaneD<- paste(Tmp1,"-(",Tmp2,")",sep="")
- }
- x<- 0; y<- 0; z<- 0
- d<- -eval(parse(text=PlaneD))
- x<- 1; y<- 0; z<- 0
- Tmp1<- eval(parse(text=PlaneD))+d
- x<- 0; y<- 1; z<- 0
- Tmp2<- eval(parse(text=PlaneD))+d
- x<- 0; y<- 0; z<- 1
- Tmp3<- eval(parse(text=PlaneD))+d
- V1<- c(Tmp1,Tmp2,Tmp3)
- }
- for (I in Looprange(1,Mixlength(FaceL))){
- Face<- Op(I,FaceL)
- TmpL<- list()
- for (J in Looprange(1,length(Face))){
- N1<- Face[J]
- if(J==length(Face)){
- N2<- Face[1]
- }else{
- N2<- Face[J+1]
- }
- for (K in Looprange(1,Mixlength(PtL))){
- Pd<- Op(K,PtL)
- Tmp<- Op(1,Pd)
- if(Tmp[1]==Tmp[2]){
- if(Tmp[1]==N1){
- TmpL<- c(TmpL,list(list(J,c(N1,N2),Op(2,Pd))))
- }
- }else{
- if(all(Tmp==c(N1,N2)) || all(Tmp==c(N2,N1))){
- TmpL<- c(TmpL,list(list(J,c(N1,N2),Op(2,Pd))))
- }
- }
- }
- }
- if(Mixlength(TmpL)<2){
- Flg<- 0
- for (J in Looprange(1,length(Face))){
- Tmp<- Op(Face[J],VL)
- Tmp1<- Fugou*(Dotprod(V1,Tmp)-d)
- if(Tmp1< -Eps){
- Flg<- 1
- break
- }
- }
- if(Flg==0){
- OutfL<- c(OutfL,list(Face))
- }
- next
- }
- Pd<- Op(1,TmpL)
- Qd<- Op(2,TmpL)
- Outf1<- c(Op(3,Pd))
- Nf<- Op(1,Pd)+1
- Tmp<- Op(2,Pd)
- JJ<- 0
- while (!all(Tmp==Op(2,Qd))){
- JJ<- JJ+1
- if(JJ>20){
- print("bug")
- return()
- }
- Tmp1<- Tmp[2]
- if(Outf1[length(Outf1)]!=Tmp1){
- Outf1<- c(Outf1,Tmp1)
- }
- Tmp<- c(Face[Nf])
- Nf<- Nf+1
- if(Nf>length(Face)){
- Nf<- 1
- }
- Tmp<- c(Tmp,Face[Nf])
- }
- Tmp1<- Op(3,Qd)
- if(Outf1[length(Outf1)]!=Tmp1){
- Outf1<- c(Outf1,Tmp1)
- }
- Outf2<- c(Op(3,Pd))
- Nf<- Op(1,Pd)
- Tmp<- Op(2,Pd)
- JJ<- 0
- while (!all(Tmp==Op(2,Qd))){
- JJ<- JJ+1
- if(JJ>20){
- print("bug")
- return()
- }
- Tmp1<- Tmp[1]
- if(Outf2[length(Outf2)]!=Tmp1){
- Outf2<- c(Outf2,Tmp1)
- }
- Tmp<- c(Face[Nf])
- Nf<- Nf-1
- if(Nf<1){
- Nf<- length(Face)
- }
- Tmp<- c(Face[Nf],Tmp)
- }
- Tmp1<- Op(3,Qd)
- if(Outf2[length(Outf2)]!=Tmp1){
- Outf2<- c(Outf2,Tmp1)
- }
- if(length(Outf1)<3 || length(Outf2)<3){
- Face<- Outf1
- if(length(Outf1)<length(Outf2)){
- Face<- Outf2
- }
- Flg<- 0
- for (J in Looprange(1,length(Face))){
- Tmp<- Op(Face(J),VL)
- Tmp1<- Fugou*(Dotprod(V1,Tmp)-d)
- if(Tmp1<-Eps){
- Flg<- 1
- break
- }
- }
- if(Flg==0){
- OutfL<- c(OutfL,list(Face))
- }
- }else{
- Tmp<- Op(Outf1[2],VL)
- Tmp1<- Outf1
- Tmp2<- Fugou*(Dotprod(V1,Tmp)-d)
- if(Tmp2<0){
- Tmp1<- Outf2
- }
- OutfL<- c(OutfL,list(Tmp1))
- }
- }
- PHVERTEXL<<- VL
- PHFACEL<<- OutfL
- Out2<- Phcutdata(VL,OutfL,c(0,0,0,0))
- return(Out2)
-}
-
-#######################
-
-Phparadata<- function(VL,FaceL){
- Out<- Facesdata(list(VL,FaceL),"para")
- return(Out)
-}
-
-####################################
-
-Phpersdata<- function(VL,FaceL){
- Out<- Facesdata(list(VL,FaceL),"pers")
- return(Out)
-}
-
-####################################
-
-Phspersdata<- function(Fdata){
- Out<- Facesdata(Fdata,"pers")
- return(Out)
-}
-
-####################################
-
-Phsparadata<- function(Fdata){
- Out<- Facesdata(Fdata,"para")
- return(Out)
-}
-
-#########################
-
-#100816
-Projpers<- function(...){
- varargin<- list(...)
- Nargs<- length(varargin)
- Flg<- 0
- if(Nargs==1 && Mixtype(varargin[[1]])==1){
- Flg<- 1
- }
- CL<- list()
- for (N in Looprange(1,Nargs)){
- Crv<- varargin[[N]]
- if(Mixtype(Crv)==1){
- Tmp<- CameraCurve(Crv)
- CL<- c(CL,list(Tmp))
- }else{
- if(Mixtype(Crv)==3){
- ObjL<- list()
- for (I in Looprange(1,Mixlength(Crv))){
- Tmp1<- Op(I,Crv)
- if(Mixtype(Tmp1)==1){
- ObjL<- c(ObjL,list(Tmp1))
- }else{
- ObjL<- c(ObjL,Tmp1)
- }
- }
- Crv<- ObjL
- }
- for (J in Looprange(1,Mixlength(Crv))){
- Tmp<- CameraCurve(Op(J,Crv))
- CL<- c(CL,list(Tmp))
- }
- }
- }
- if(Mixlength(CL)==1 && Flg==1){
- CL<- Op(1,CL)
- }
- return(CL)
-}
-
-###################################
-
-ProjcoordCurve<- function(Curve){
- SP<- sin(PHI); CP<- cos(PHI)
- ST<- sin(THETA); CT<- cos(THETA)
- Out<- c()
- for (J in Looprange(1,Nrow(Curve))){
- P<- Ptcrv(J,Curve)
- x<- P[1]; y<- P[2]; z<- P[3]
- Xz<- -x*SP+y*CP
- Yz<- -x*CP*CT-y*SP*CT+z*ST
- Zz<- x*CP*ST+y*SP*ST+z*CT
- Out<- c(Out,Xz,Yz,Zz)
- }
- Out<- matrix(Out,ncol=3,byrow=TRUE)
- return(Out)
-}
-
-#################################
-
-ProjCurve<- function(Curve){ # 2018.02.26 rewritten
- AnsL= c()
- SP=sin(PHI); CP=cos(PHI)
- ST=sin(THETA); CT=cos(THETA)
- for(I in Looprange(1,Length(Curve)) ){
- P=Op(I,Curve)
- x=P[1]; y=P[2]; z=P[3]
- if(x!=Inf){
- Xz=-x*SP+y*CP
- Yz= -x*CP*CT-y*SP*CT+z*ST
- AnsL=Appendrow(AnsL,c(Xz,Yz))
- Tmp= c(Xz,Yz)
- }else{
- AnsL=Appendrow(AnsL,c(Inf,Inf))
- }
- }
- return(AnsL)
-}
-
-####################################
-
-Projpara<- function(...){
- varargin<-list(...)
- Nargs<- length(varargin)
- Flg<- 0
- if((Nargs==1)&&(is.numeric(varargin[[1]]))){
- Flg<- 1
- }
- CL<- list()
- for (N in Looprange(1,Nargs)){
- Crv<- varargin[[N]]
- if(is.numeric(Crv)){
- Tmp<- ProjCurve(Crv)
- CL<- c(CL,list(Tmp))
- }
- else{
- if(is.list(Crv)){
- ObjL<- list()
- for (I in Looprange(1,Mixlength(Crv))){
- Tmp1<- Op(I,Crv)
- if(is.numeric(Tmp1)){
- ObjL<- c(ObjL,list(Tmp1))
- }
- else{
- ObjL<- c(ObjL,Tmp1)
- }
- }
- Crv<- ObjL
- }
- for (J in Looprange(1,length(Crv))){
- Tmp<- ProjCurve(Op(J,Crv))
- CL<- c(CL,list(Tmp))
- }
- }
- }
- if((length(CL)==1)&&(Flg==1)){
- CL<- Op(1,CL)
- }
- return(CL)
-}
-
-#########################
-
-#100816
-Projpers<- function(...){
- varargin<- list(...)
- Nargs<- length(varargin)
- Flg<- 0
- if(Nargs==1 && Mixtype(varargin[[1]])==1){
- Flg<- 1
- }
- CL<- list()
- for (N in Looprange(1,Nargs)){
- Crv<- varargin[[N]]
- if(Mixtype(Crv)==1){
- Tmp<- CameraCurve(Crv)
- CL<- c(CL,list(Tmp))
- }else{
- if(Mixtype(Crv)==3){
- ObjL<- list()
- for (I in Looprange(1,Mixlength(Crv))){
- Tmp1<- Op(I,Crv)
- if(Mixtype(Tmp1)==1){
- ObjL<- c(ObjL,list(Tmp1))
- }else{
- ObjL<- c(ObjL,Tmp1)
- }
- }
- Crv<- ObjL
- }
- for (J in Looprange(1,Mixlength(Crv))){
- Tmp<- CameraCurve(Op(J,Crv))
- CL<- c(CL,list(Tmp))
- }
- }
- }
- if(Mixlength(CL)==1 && Flg==1){
- CL<- Op(1,CL)
- }
- return(CL)
-}
-
-#########################################
-# 11.08.27
-# 14.03.23 Debugged "center"
-
-Rotate3data<- function(...){
-#Eps=10^(-4)
- varargin<-list(...)
- Nargs<- length(varargin)
- Pd3<- varargin[[1]]
- W1<- varargin[[2]]
- W2<- varargin[[3]]
- C<- c(0,0,0)
- if(Nargs>=4){
- C<- varargin[[4]]
- }
- if(Mixtype(Pd3)==1){
- Pd3<- list(Pd3)
- } else if(Mixtype(Pd3)==3){
- Tmp<- list()
- for (I in Looprange(1,Mixlength(Pd3))){
- Tmp<- c(Tmp,Op(I,Pd3))
- }
- Pd3<- Tmp
- }
- Out<- list()
- for (I in Looprange(1,Mixlength(Pd3))){
- PD<- Op(I,Pd3)
- Ans<- c()
- for (J in Looprange(1,Nrow(PD))){
- if(is.matrix(PD)){ # 11.08.27
- P<- PD[J,]
- }
- else{
- P<- PD
- }
- Tmp<- Rotate3pt(P,W1,W2,C) # 14.03.23
- Ans<- rbind(Ans,Tmp)
- } # 11.08.27
- rownames(Ans)<- 1:Nrow(Ans) #10.08.16
- Out<- c(Out,list(Ans))
- }
- if(Mixlength(Out)==1){
- Out<- Op(1,Out)
- }
- return(Out)
-}
-
-#######################################
-
-Rotate3pt<- function(...){
- varargin<-list(...)
- Eps<-10^(-4)
- Nargs<-length(varargin)
- P<- varargin[[1]]
- W1<- varargin[[2]]
- W2<- varargin[[3]]
- C<- c(0,0,0)
- if(Nargs>=4){
- C<- varargin[[4]]
- }
- if(mode(W2)=="numeric" && length(W2)==1){
- Ct<- cos(W2)
- St<- sin(W2)
- V3<- 1/Norm(W1)*W1
- if(V3[1]==0){
- Tmp<- c(1,0,0)
- }else{
- Tmp<- c(0,1,0)
- }
- W1<- c(Tmp[2]*V3[3]-Tmp[3]*V3[2],
- Tmp[3]*V3[1]-Tmp[1]*V3[3],
- Tmp[1]*V3[2]-Tmp[2]*V3[1])
- V1<- 1/Norm(W1)*W1
- V2<- c(V3[2]*V1[3]-V3[3]*V1[2],
- V3[3]*V1[1]-V3[1]*V1[3],
- V3[1]*V1[2]-V3[2]*V1[1])
- }else{
- Tmp<- c(W1[2]*W2[3]-W1[3]*W2[2],
- W1[3]*W2[1]-W1[1]*W2[3],
- W1[1]*W2[2]-W1[2]*W2[1])
- if(Norm(Tmp)<Eps){
- Ans<- P
- return(Ans)
- }
- V1<- 1/Norm(W1)*W1
- Ns<- V1[1]*W2[1]+V1[2]*W2[2]+V1[3]*W2[3]
- Tmp<- W2-Ns*V1
- V2<- 1/Norm(Tmp)*Tmp
- Tmp<- c(V1[2]*V2[3]-V1[3]*V2[2],
- V1[3]*V2[1]-V1[1]*V2[3],
- V1[1]*V2[2]-V1[2]*V2[1])
- V3<- 1/Norm(Tmp)*Tmp
- Ct<- Ns/Norm(W2)
- St<- sqrt(1-Ct^2)
- }
- if(Norm(Tmp)<Eps){
- Ans<- P
- return(Ans)
- }
- V1x<- V1[1]; V1y<- V1[2]; V1z<- V1[3]
- V2x<- V2[1]; V2y<- V2[2]; V2z<- V2[3]
- V3x<- V3[1]; V3y<- V3[2]; V3z<- V3[3]
- if(Mixtype(P)!=1){
- PtL<- P
- }else{
- PtL<- list(P)
- }
- Ans<- list()
- for (N in Looprange(1,Mixlength(PtL))){
- P<- Op(N,PtL)
- if(P[1]==Inf){
- Ans<- c(Ans,list(c(Inf,Inf,Inf)))
- next
- }
- x<- P[1]-C[1]; y=P[2]-C[2]; z=P[3]-C[3]
- Tmp1<- ((V1x*Ct+V2x*St)*V1x+(-V1x*St+V2x*Ct)*V2x+V3x^2)*x
- Tmp2<- ((V1x*Ct+V2x*St)*V1y+(-V1x*St+V2x*Ct)*V2y+V3x*V3y)*y
- Tmp3<- ((V1x*Ct+V2x*St)*V1z+(-V1x*St+V2x*Ct)*V2z+V3x*V3z)*z
- X<- Tmp1+Tmp2+Tmp3
- Tmp1<- ((V1y*Ct+V2y*St)*V1x+(-V1y*St+V2y*Ct)*V2x+V3x*V3y)*x
- Tmp2<- ((V1y*Ct+V2y*St)*V1y+(-V1y*St+V2y*Ct)*V2y+V3y^2)*y
- Tmp3<- ((V1y*Ct+V2y*St)*V1z+(-V1y*St+V2y*Ct)*V2z+V3y*V3z)*z
- Y<- Tmp1+Tmp2+Tmp3
- Tmp1<- ((V1z*Ct+V2z*St)*V1x+(-V1z*St+V2z*Ct)*V2x+V3x*V3z)*x
- Tmp2<- ((V1z*Ct+V2z*St)*V1y+(-V1z*St+V2z*Ct)*V2y+V3y*V3z)*y
- Tmp3<- ((V1z*Ct+V2z*St)*V1z+(-V1z*St+V2z*Ct)*V2z+V3z^2)*z
- Z<- Tmp1+Tmp2+Tmp3
- Ans<- c(Ans,list(C+c(X,Y,Z)))
- }
- if(Mixlength(Ans)==1){
- Ans<- Op(1,Ans)
- }
- return(Ans)
-}
-
-######################################
-
-Setangle<- function(...){
- Eps<- 10^(-6)
- varargin<-list(...)
- Nargs<-length(varargin)
- if(Nargs==0) {
- }
- else if(Nargs==1){
- V<- varargin[[1]]
- V<- V/Norm(V)
- THETA<<- acos(V[3])
- if(abs(sin(THETA))<Eps){
- PHI<<- 0
- }
- else{
- PHI<<- acos(V[1]/sin(THETA))
- if(V[2]< -Eps) PHI<<- -PHI
- }
- }
- else{
- PHI<<- varargin[[2]]*pi/180
- THETA<<- varargin[[1]]*pi/180
- }
- Out<- paste("theta=",as.character(THETA*180/pi)," phi=",
- as.character(PHI*180/pi),sep="")
- return (Out)
-}
-
-#################################
-
-Setpers<- function(...){
- varargin<- list(...)
- Nargs<- length(varargin)
- if(Nargs==0){
- }
- else{
- FocusPoint<<- varargin[[1]]
- EyePoint<<- varargin[[2]]
- }
- F<- as.character(FocusPoint)
- E<- as.character(EyePoint)
- Out<- paste("Focus = c(",F[1],",",F[2],",",F[3],") , ",
- " Eye = c(", E[1],",",E[2],",",E[3],") ",sep="")
- return (Out)
-}
-
-#################################
-
-SetstereoL<- function(R,T,P,H){
- X<- R*sin(T*pi/180)*cos(P*pi/180)
- Y<- R*sin(T*pi/180)*sin(P*pi/180)
- Z<- R*cos(T*pi/180)
- Eye<- c(X+H/2*Y/(X^2+Y^2),Y-H/2*X/(X^2+Y^2),Z)
- Out<- Setpers(c(0,0,0),Eye)
- return(Out)
-}
-
-#################################
-
-SetstereoR<- function(R,T,P,H){
- X<- R*sin(T*pi/180)*cos(P*pi/180)
- Y<- R*sin(T*pi/180)*sin(P*pi/180)
- Z<- R*cos(T*pi/180)
- Eye<- c(X-H/2*Y/(X^2+Y^2),Y+H/2*X/(X^2+Y^2),Z)
- Out<- Setpers(c(0,0,0),Eye)
- return(Out)
-}
-
-###############################
-
-Sf3data<- function(...){
- varargin<-list(...)
- Nargs<- length(varargin)
- FdL<- Fullformfunc(varargin[[1]])
- F<- Op(1,FdL)
- Xf<- Op(2,FdL)
- Yf<- Op(3,FdL)
- Zf<- Op(4,FdL)
- Urg<- Op(5,FdL)
- Vrg<- Op(6,FdL)
- Str<- strsplit(Urg,"=",fixed=TRUE)[[1]]
- U<- Str[1]
- Tmp<- Str[2]
- Tmp<- eval(parse(text=Tmp))
- Umin<- Tmp[1]; Umax<- Tmp[2]
- Str<- strsplit(Vrg,"=",fixed=TRUE)[[1]]
- V<- Str[1]
- Tmp<- Str[2]
- Tmp<- eval(parse(text=Tmp))
- Vmin<- Tmp[1]; Vmax<- Tmp[2]
- Ndu<- 25 ; Ndv<- 25; Np<- c(50,50)
- if(Nargs>=3){
- Ndu<- varargin[[2]]
- Ndv<- varargin[[3]]
- }
- if(Nargs>=4){
- Np<- varargin[[4]]
- if(mode(Np)=="numeric" && length(Np)==1){
- Np<- c(Np,Np)
- }
- }
- Du<- (Umax-Umin)/Ndu
- Dv<- (Vmax-Vmin)/Ndv
- PL <- c()#PL <- []
- Assign("Vmin",Vmin,"Vmax",Vmax)
- Trgstr<- Assign("t=c(Vmin,Vmax)")
- PL <- list()
- for (I in Looprange(0,Ndu)){
- U0 <- paste("(",as.character(Umin+I*Du),")",sep="")
- Tmp<- gsub(U,U0,Xf,fixed=TRUE)
- Tmp1<- gsub(V,"t",Tmp,fixed=TRUE)
- Tmp<- gsub(U,U0,Yf,fixed=TRUE)
- Tmp2<- gsub(V,"t",Tmp,fixed=TRUE)
- Tmp<- gsub(U,U0,Zf,fixed=TRUE)
- Tmp3<- gsub(V,"t",Tmp,fixed=TRUE)
- Tmp<- paste("c(",Tmp1,",",Tmp2,",",Tmp3,")",sep="")
- PD<- Spacecurve(Tmp,Trgstr,paste("N=",as.character(Np[2])))
- PL<- c(PL,list(PD))
- }
- Assign("Umin",Umin,"Umax",Umax)
- Trgstr<- Assign("t=c(Umin,Umax)")
- for (J in Looprange(0,Ndv)){
- V0<- paste("(",as.character(Vmin+J*Dv),")",sep="")
- Tmp<- gsub(V,V0,Xf,fixed=TRUE)
- Tmp1<- gsub(U,"t",Tmp,fixed=TRUE)
- Tmp<- gsub(V,V0,Yf,fixed=TRUE)
- Tmp2<- gsub(U,"t",Tmp,fixed=TRUE)
- Tmp<- gsub(V,V0,Zf,fixed=TRUE)
- Tmp3<- gsub(U,"t",Tmp,fixed=TRUE)
- Tmp<- paste("c(",Tmp1,",",Tmp2,",",Tmp3,")")
- PD<- Spacecurve(Tmp,Trgstr,paste("N=",as.character(Np[1])))
- PL<- c(PL,list(PD))
- }
- return(PL)
-}
-
-###################################
-
-Skeletonparadata<- function(...){
- varargin<-list(...)
- Nargs<- length(varargin)
- Out<- list()
- ObjL<- Flattenlist(varargin[[1]])
- Plt3L<- Flattenlist(varargin[[2]])
- R<- 0.075*1000/2.54/MilliIn
- if(Nargs>2){
- R<- R*varargin[[3]]
- }
- Eps2<- 0.05
- if(Nargs>3){
- Eps2<- varargin[[4]]
- }
- Obj2L<- list()
- for (I in Looprange(1,Mixlength(ObjL))){
- Tmp<- ProjcoordCurve(Op(I,ObjL))
- Obj2L<- c(Obj2L,list(Tmp))
- }
- Plt2L<- list()
- for (I in Looprange(1,Mixlength(Plt3L))){
- Tmp<- ProjcoordCurve(Op(I,Plt3L))
- Plt2L<- c(Plt2L,list(Tmp))
- }
- Out<- Makeskeletondata(Obj2L,Plt2L,R,Eps2)
- return(Out)
-}
-
-################################
-
-Skeletonpara3data<- function(...){
- varargin<-list(...)
- Nargs<- length(varargin)
- ObjL<- Flattenlist(varargin[[1]])
- Plt3L<- Flattenlist(varargin[[2]])
- R<- 0.075*1000/2.54/MilliIn
- if(Nargs>2){
- R=R*varargin[[3]]
- }
- Eps2<- 0.05
- if(Nargs>3){
- Eps2<- varargin[[4]]
- }
- Plt2L<- list()
- for (I in Looprange(1,Mixlength(Plt3L))){
- Tmp<- ProjcoordCurve(Op(I,Plt3L))
- Plt2L<- c(Plt2L,list(Tmp))
- }
- Out<- list()
- for (I in Looprange(1,Mixlength(ObjL))){
- Obj3<- Op(I,ObjL)
- Tmp<- ProjcoordCurve(Obj3)
- Data<- Makeskeletondata(list(Tmp),Plt2L,R,Eps2)
- for (J in Looprange(1,Mixlength(Data))){
- Gd<- Op(J,Data)
- PtD<- c()
- for (J in Looprange(1,Nrow(Gd))){
- Tmp<- Ptcrv(J,Gd)
- Tmp1<- Invparapt(Tmp,Obj3)
- Tmp1<- Op(1,Tmp1)
- PtD<- c(PtD,Tmp1)
- }
- PtD<- matrix(PtD,ncol=3,byrow=TRUE)
- Out<- c(Out,list(PtD))
- }
- }
- return(Out)
-}
-
-#################################
-
-#100815
-Skeletonpersdata<- function(...){
- varargin<-list(...)
- Nargs<- length(varargin)
- Out<- list()
- ObjL<- Flattenlist(varargin[[1]])
- Plt3L<- Flattenlist(varargin[[2]])
- R<- 0.075*1000/2.54/MilliIn
- if(Nargs>2){
- R<- R*varargin[[3]]
- }
- Eps2<- 0.05
- if(Nargs>3){
- Eps2<- varargin[[4]]
- }
- Obj2L<- list()
- for (I in Looprange(1,Mixlength(ObjL))){
- Tmp<- CameracoordCurve(Op(I,ObjL))
- Obj2L<- c(Obj2L,list(Tmp))
- }
- Plt2L<- list()
- for (I in Looprange(1,Mixlength(Plt3L))){
- Tmp<- CameracoordCurve(Op(I,Plt3L))
- Plt2L<- c(Plt2L,list(Tmp))
- }
- Out<- Makeskeletonpersdata(Obj2L,Plt2L,R,Eps2)
- return(Out)
-}
-
-#####################
-#100815
-Skeletonpers3data<- function(...){
- varargin<-list(...)
- Nargs<- length(varargin)
- Out<- list()
- ObjL<- Flattenlist(varargin[[1]])
- Plt3L<- Flattenlist(varargin[[2]])
- R<- 0.075*1000/2.54/MilliIn
- if(Nargs>2){
- R<- R*varargin[[3]]
- }
- Eps2<- 0.05
- if(Nargs>3){
- Eps2<- varargin[[4]]
- }
- Plt2L<- list()
- for (I in Looprange(1,Mixlength(Plt3L))){
- Tmp<- CameracoordCurve(Op(I,Plt3L))
- Plt2L<- c(Plt2L,list(Tmp))
- }
- Out<- list()
- for (I in Looprange(1,Mixlength(ObjL))){
- Obj3<- Op(I,ObjL)
- Tmp<- CameracoordCurve(Obj3)
- Data<- Makeskeletonpersdata(list(Tmp),Plt2L,R,Eps2)
- for (J in Looprange(1,Mixlength(Data))){
- Gd<- Op(J,Data)
- PtD<- c()
- for (J in Looprange(1,Nrow(Gd))){
- Tmp<- Gd[J,]
- Tmp1<- Invperspt(Tmp,Obj3)
- Tmp1<- Op(1,Tmp1)
- PtD<- rbind(PtD,Tmp1)
- }
- Out<- c(Out,list(PtD))
- }
- }
- return(Out)
-}
-
-#################################
-
-Spacecurve<- function(...){
- Eps<- 10^(-5)
- varargin<-list(...)
- Nargs<- length(varargin)
- Fnstr<- varargin[[1]]
- Rgstr<- varargin[[2]]
- Range<- c(0,2*pi)
- N<- 50 #Numpoints
- E<- c() #Exclusions
- D<- Inf #Discont (Changed)
- for(I in Looprange(3,Nargs)){
- Tmp<- varargin[[I]]
- StrV<- strsplit(Tmp,"=",fixed=TRUE)
- StrV<- StrV[[1]]
- Tmp1<- toupper(StrV[1])
- Lhs<- substr(Tmp1,1,1)
- Str<- paste(Lhs,"=",StrV[2],sep="")
- eval(parse(text=Str))
- }
- StrV<- strsplit(Rgstr,"=",fixed=TRUE)
- StrV<- StrV[[1]]
- if(length(StrV)>1){
- Vname<- StrV[1]
- Rng<- eval(parse(text=StrV[2]))
- }
- else{
- Vname<- Rgstr
- Rng<- c(XMIN,XMAX)
- }
- T1<- Rng[1]; T2<- Rng[2]
- Dt<- (T2-T1)/N #17.09.22
- Str<- gsub(Vname,"t",Fnstr)
- Str=gsub("[","c(",Str,fixed=TRUE) #17.12.22(2lines)
- Str=gsub("]",")",Str,fixed=TRUE)
- if(abs(Dt)<Eps){ # 16.12.13
- t=T1
- P=eval(parse(text=Str))
- return(P)
- }
- P<- c()
-# E<- sort(E,decreasing=FALSE)
- E<- c(E,Inf)
- E<- sort(E,decreasing=FALSE)
- Ke<- 1
- for(jj in 1:(N+1)){
- t=T1+(jj-1)*Dt
- Pa<- c()
- if(t-E[Ke]< Eps){
- Pa<- eval(parse(text=Str))
- }
- if(abs(t-E[Ke])<=Eps){
- if(length(P)>0 && P[Nrow(P),1]!=Inf){
- Pa<- c(Inf,Inf,Inf)
- }
- }
- if(t-E[Ke]>Eps){
- Pa<- eval(parse(text=Str))
- Ke<- Ke+1
- }
- if(length(Pa)>0){
- if(Pa[1]==Inf){
- P<- rbind(P,Pa)
- }else if(length(P)==0){
- P<- rbind(c(),c(Pa))
- }
- else{
- Tmp<- P[Nrow(P),]
- if(Tmp[1]==Inf){
- P<- rbind(P,Pa)
- }
- else if( Norm(Tmp-Pa)<D){
- P<- rbind(P,Pa)
- }
- else{
- P<- rbind(P,c(Inf,Inf,Inf))
- P<- rbind(P,Pa)
- }
- }
- }
- }
- rownames(P)<- 1:Nrow(P) # 10.08.16
- return(P)
-}
-
-########################################
-
-Spaceline<- function(...){
- varargin<- list(...)
- Z<- c()
- for(I in 1:length(varargin)){
- Data<- varargin[[I]]
- if(Mixtype(Data)==1){
- J<- 1
- while (J<=Ncol(Data)){
- Tmp<- Data[J:(J+2)]
- Z<-c(Z,Tmp)
- J<- J+3
- }
- next
- }
- if(Mixtype(Data)==3){
- Tmp<- list()
- for(I in 1:Mixlength(Data)){
- Tmp<- c(Tmp,Op(I,Data))
- }
- Data<- Tmp
- }
- for(J in 1:Mixlength(Data)){
- Tmp<- Op(J,Data)
- Z<- c(Z,Tmp)
- }
- }
- Z<- matrix(Z,ncol=3,byrow=TRUE)
- return(Z)
-}
-
-#################################
-
-Translate3data<- function(...){
- varargin<- list(...)
- Nargs<- length(varargin)
- Pd3<- varargin[[1]]
- Mv<- varargin[[2]]
- if(mode(Mv)=="numerice" && length(Mv)==1){
- Mv<- c(varargin[[2]],varargin[[3]],varargin[[4]])
- }
- if(Mixtype(Pd3)==1){
- Pd3<- list(Pd3)
- }
- else if(Mixtype(Pd3)==3){
- Tmp<-list()
- for(I in Looprange(1,Mixlength(Pd3))){
- Tmp<- c(Tmp, Op(I,Pd3))
- }
- Pd3<- Tmp
- }
- Out<- list()
- for(I in Looprange(1,Mixlength(Pd3))){
- PD<- Op(I,Pd3)
- PD<- rbind(c(),PD)
- Ans<- c()
- for(J in Looprange(1,Nrow(PD))){
- P<- PD[J,]
- Tmp<- P+Mv
- Ans<- rbind(Ans,Tmp)
- }
- rownames(Ans)<- 1:Nrow(Ans)
- Out<- c(Out,list(Ans))
- }
- if(Mixlength(Out)==1){
- Out<- Op(1,Out)
- }
- return(Out)
-}
-
-###############################################
-
-Xyzax3data<- function(Xrange,Yrange,Zrange){
- StrV<-strsplit(Xrange,"=",fixed=TRUE)
- StrV<- StrV[[1]]
- if(length(StrV)>1) StrV<- StrV[2]
- Tmp<- eval(parse(text=StrV))
- Px<- c(Tmp[1],0,0)
- Qx<- c(Tmp[2],0,0)
- StrV<-strsplit(Yrange,"=",fixed=TRUE)
- StrV<- StrV[[1]]
- if(length(StrV)>1) StrV<- StrV[2]
- Tmp<- eval(parse(text=StrV))
- Py<- c(0,Tmp[1],0)
- Qy<- c(0,Tmp[2],0)
- StrV<-strsplit(Zrange,"=",fixed=TRUE)
- StrV<- StrV[[1]]
- if(length(StrV)>1) StrV<- StrV[2]
- Tmp<- eval(parse(text=StrV))
- Pz<- c(0,0,Tmp[1])
- Qz<- c(0,0,Tmp[2])
- Out<- list(Spaceline(Px,Qx),Spaceline(Py,Qy),Spaceline(Pz,Qz))
- return(Out)
-}
-
-###################################
-
-Xyzaxparaname<- function(...){
- varargin<- list(...)
- Nargs<- length(varargin)
- Eps<- 10.0^(-6)
- Dr<- 0.19*1000/2.54/MilliIn
- Tmp<- varargin[[Nargs]]
- if(Nargs>1 && is.numeric(Tmp)){
- Dr<- Dr*Tmp
- Nargs<- Nargs-1
- }
- if(mode(varargin[[1]])=="character"){
- Xname<- "x"
- Yname<- "y"
- Zname<- "z"
- Xrange<- varargin[[1]]
- Yrange<- varargin[[2]]
- Zrange<- varargin[[3]]
- StrV<-strsplit(Xrange,"=",fixed=TRUE)
- StrV<- StrV[[1]]
- if(length(StrV)>1){
- Xname<- StrV[1]
- StrV<- StrV[2]
- }
- Tmp<- eval(parse(text=StrV))
- Px<- c(Tmp[1],0,0)
- Qx<- c(Tmp[2],0,0)
- StrV<-strsplit(Yrange,"=",fixed=TRUE)
- StrV<- StrV[[1]]
- if(length(StrV)>1){
- Yname<- StrV[1]
- StrV<- StrV[2]
- }
- Tmp<- eval(parse(text=StrV))
- Py<- c(0,Tmp[1],0)
- Qy<- c(0,Tmp[2],0)
- StrV<-strsplit(Zrange,"=",fixed=TRUE)
- StrV<- StrV[[1]]
- if(length(StrV)>1){
- Zname<- StrV[1]
- StrV<- StrV[2]
- }
- Tmp<- eval(parse(text=StrV))
- Pz<- c(0,0,Tmp[1])
- Qz<- c(0,0,Tmp[2])
- }else{
- Data<- varargin[[1]]
- Xname<- "x"; Yname<- "y"; Zname<- "z"
- if(Nargs>1){
- if(varargin[[2]]!=""){
- Xname<- varargin[[2]]
- }
- if(varargin[[3]]!=""){
- Yname<- varargin[[3]]
- }
- if(varargin[[4]]!=""){
- Zname<- varargin[[4]]
- }
- }
- Tmp<- Op(1,Data)
- Px<- Tmp[1,]; Qx<- Tmp[2,]
- Tmp<- Op(2,Data)
- Py<- Tmp[1,]
- Qy<- Tmp[2,]
- Tmp<- Op(3,Data)
- Pz<- Tmp[1,]
- Qz<- Tmp[2,]
- }
- Ph<- Parapt(Px); Qh<- Parapt(Qx); R<-Norm(Ph-Qh)
- Kekka<- list()
- if(R>Eps){
- Ch<- Qh+Dr/R*(Qh-Ph)
- Kekka<- c(Kekka,list(Pointdata(Ch)))
- Expr(Ch,"c",Xname)
- }
- Ph<- Parapt(Py); Qh<- Parapt(Qy); R<- Norm(Ph-Qh)
- if(R>Eps){
- Ch<- Qh+Dr/R*(Qh-Ph)
- Kekka<- c(Kekka,list(Pointdata(Ch)))
- Expr(Ch,"c",Yname)
- }
- Ph<- Parapt(Pz); Qh<- Parapt(Qz); R<- Norm(Ph-Qh)
- if(R>Eps){
- Ch<- Qh+Dr/R*(Qh-Ph)
- Kekka<- c(Kekka,list(Pointdata(Ch)))
- Expr(Ch,"c",Zname)
- }
-# return(Kekka)
-}
-
-###################################
-
-Xyzaxpersname<- function(...){
- varargin<- list(...)
- Eps<- 10.0^(-6)
- Nargs<- length(varargin)
- Dr<- 0.19*1000/2.54/MilliIn
- Tmp<- varargin[[Nargs]]
- if(Nargs>1 && mode(Tmp)=="numeric"){
- Dr<- Dr*Tmp
- Nargs<- Nargs-1
- }
- if(mode(varargin[[1]])=="character"){
- Xname<- "x"
- Yname<- "y"
- Zname<- "z"
- Xrange<- varargin[[1]]
- Yrange<- varargin[[2]]
- Zrange<- varargin[[3]]
- StrV<-strsplit(Xrange,"=",fixed=TRUE)
- StrV<- StrV[[1]]
- if(length(StrV)>1){
- Xname<- StrV[1]
- StrV<- StrV[2]
- }
- Tmp<- eval(parse(text=StrV))
- Px<- c(Tmp[1],0,0)
- Qx<- c(Tmp[2],0,0)
- StrV<-strsplit(Yrange,"=",fixed=TRUE)
- StrV<- StrV[[1]]
- if(length(StrV)>1){
- Yname<- StrV[1]
- StrV<- StrV[2]
- }
- Tmp<- eval(parse(text=StrV))
- Py<- c(0,Tmp[1],0)
- Qy<- c(0,Tmp[2],0)
- StrV<-strsplit(Zrange,"=",fixed=TRUE)
- StrV<- StrV[[1]]
- if(length(StrV)>1){
- Zname<- StrV[1]
- StrV<- StrV[2]
- }
- Tmp<- eval(parse(text=StrV))
- Pz<- c(0,0,Tmp[1])
- Qz<- c(0,0,Tmp[2])
- }else{
- Data<- varargin[[1]]
- Xname<- "x"; Yname<- "y"; Zname<- "z"
- if(Nargs>1){
- if(varargin[[2]]!=""){
- Xname<- varargin[[2]]
- }
- if(varargin[[3]]!=""){
- Yname<- varargin[[3]]
- }
- if(varargin[[4]]!=""){
- Zname<- varargin[[4]]
- }
- }
- Tmp<- Op(1,Data)
- Px<- Tmp[1,]; Qx<- Tmp[2,]
- Tmp<- Op(2,Data)
- Py<- Tmp[1,]
- Qy<- Tmp[2,]
- Tmp<- Op(3,Data)
- Pz<- Tmp[1,]
- Qz<- Tmp[2,]
- }
- Ph<- Perspt(Px)
- Qh<- Perspt(Qx)
- R<- Norm(Ph-Qh)
- Kekka<- list()
- if(R>Eps){
- Ch<- Qh+Dr/R*(Qh-Ph)
- Kekka<- c(Kekka,list(Pointdata(Ch)))
- Expr(Ch,"c",Xname)
- }
- Ph<- Perspt(Py)
- Qh<- Perspt(Qy)
- R<- Norm(Ph-Qh)
- if(R>Eps){
- Ch<- Qh+Dr/R*(Qh-Ph)
- Kekka<- c(Kekka,list(Pointdata(Ch)))
- Expr(Ch,"c",Yname)
- }
- Ph<- Perspt(Pz)
- Qh<- Perspt(Qz)
- R<- Norm(Ph-Qh)
- if(R>Eps){
- Ch<- Qh+Dr/R*(Qh-Ph)
- Kekka<- c(Kekka,list(Pointdata(Ch)))
- Expr(Ch,"c",Zname)
- }
-# return(Kekka)
-}
-
-#########################
-#100815
-Zparapt<- function(P){#function Out=Zparapt(P)
- x<- P[1]; y<- P[2]; z<- P[3]
- Out<- x*cos(PHI)*sin(THETA)+y*sin(PHI)*sin(THETA)+z*cos(THETA)
- return(Out)
-}
-
-#########################
-#100815
-Zperspt<- function(P){
- Tmp<- P-FocusPoint
- X1<- Tmp[1]; Y1<- Tmp[2]; Z1<- Tmp[3]
- Tmp<- EyePoint-FocusPoint
- E1<- Tmp[1]; F1<- Tmp[2]; G1<- Tmp[3]
- Ca<- E1/sqrt(E1^2+F1^2)
- Sa<- F1/sqrt(E1^2+F1^2)
- X2<- X1*Ca+Y1*Sa; Y2<- -X1*Sa+Y1*Ca; Z2<- Z1
- E2<- E1*Ca+F1*Sa; F2<- -E1*Sa+F1*Ca; G2<- G1
- Cb<- E2/sqrt(E2^2+G2^2)
- Sb<- G2/sqrt(E2^2+G2^2)
- X3<- X2*Cb+Z2*Sb
- return(X3)
-}
-
-##########################################
-
-
-
-##########################################
-
-# Stat Package
-
-##########################################
-
-# 2010.04.12
-
-# new
-
-# Htickmarklower, Vtickmarkleft, HtickmarklowerV
-# VtickmarkleftV, Insertcom, Replacecom
-# Maketexfile, Formatting
-# Drwhistframe, Histplotdata, Drwhistplot
-
-Htickmarklower<- function(...)
-{ ## Scaling is implemented
- varargin<- list(...)
- Nargs<- length(varargin)
- ArgsL<- varargin
- if(mode(ArgsL[[1]])=="character"){
- Str<- ArgsL[[1]]
- Tmp<- strsplit(Str,"m")
- Tmp<- Tmp[[1]]
- if(length(Tmp)>1){
- I<- nchar(Tmp[1])+1
- }
- else{
- I<- 0
- }
- Tmp<- strsplit(Str,"n")
- Tmp<- Tmp[[1]]
- if(length(Tmp)>1){
- J<- nchar(Tmp[1])+1
- }
- else{
- J<- 0
- }
- Tmp<- strsplit(Str,"r")
- Tmp<- Tmp[[1]]
- if(length(Tmp)>1){
- K=nchar(Tmp[1])+1
- }
- else{
- K<- 0
- }
- if(K>0){
- S<- substr(Str,K+1,nchar(Str))
- R<- as.numeric(S)
- if(is.na(R)){
- R<- 1
- }
- }
- else{
- R<- 1
- K<- nchar(Str)+1
- }
- if(J>0){
- S<- substr(Str,J+1,K-1)
- Dn<- as.numeric(S)
- if(is.na(Dn)){
- Dn<- 1
- }
- }
- else{
- Dn<- 1000
- J<- nchar(Str)+1
- }
- S<- substr(Str,I+1,J-1)
- Dm<- as.numeric(S)
- if(is.na(Dm)){
- Dm<- 1
- }
- ArgsL<- list()
- for (I in Looprange(1, floor((XMAX-GENTEN[1])/Dm))){
- ArgsL<- Mixjoin(ArgsL,I*Dm)
- if(I-floor(I/Dn)*Dn==0){
- Str<- as.character(I*Dm*R)
- ArgsL<- Mixjoin(ArgsL,Str)
- }
- }
- for (I in seq(-1,ceiling((XMIN-GENTEN[1])/Dm),by=-1)){
- ArgsL<- Mixjoin(ArgsL,I*Dm)
- if(I-floor(I/Dn)*Dn==0){
- Str<- as.character(I*Dm*R)
- ArgsL<- Mixjoin(ArgsL,Str)
- }
- }
- }
- MemoriList<- list()
- Memori<- list()
- for (N in 1:length(ArgsL)){
- Dt<- ArgsL[[N]]
- if(mode(Dt)=="numeric" && length(Dt)>1){
- if(length(Memori)>0){
- MemoriList<- Mixjoin(MemoriList,list(Memori))
- }
- Memori<- list(Dt)
- next
- }
- if(mode(Dt)=="character"){
- Memori<- Mixjoin(Memori,Dt)
- }
- else{
- if(length(Memori)>0){
- MemoriList<- Mixjoin(MemoriList,list(Memori))
- }
- Memori<- list(Dt,GENTEN[2])
- }
- }
- MemoriList<- Mixjoin(MemoriList,list(Memori))
- for (N in 1:length(MemoriList)){
- Dt<- MemoriList[[N]]
- Ndt<- length(Dt)
- X=Op(1,Dt)
- Y=Op(2,Dt)
- Tmp<-Doscaling(c(X,Y))
- X<- Tmp[1]
- Y<- Tmp[2]
- Moji<- Op(Ndt,Dt)
- Tmp1<- Unscaling(c(X,Y))
- Tmp2<- Unscaling(c(X,Y-2*MARKLEN))
- Fd<- Listplot(c(Tmp1,Tmp2))
- Drwline(Fd)
- if(Ndt==3){
- Tmp<-Unscaling(c(X,Y-2*MARKLEN))
- Expr(Tmp,"s",Moji)
- }
- if(Ndt==4){
- Houkou<- Op(3,Dt)
- Tmp<-grep("s",Houkou)
- if(length(Tmp)>0){
- Tmp<-Unscaling(c(X,Y-2*MARKLEN))
- Expr(Tmp,Houkou,Moji)
- }
- else{
- Tmp<- Unscaling(c(X,Y))
- Expr(Tmp,Houkou,Moji)
- }
- }
- cat("%\n",file=Wfile,append=TRUE)
- }
-}
-
-Vtickmarkleft<- function(...)
-{ ## Scaling is implemented
- varargin<- list(...)
- Nargs<- length(varargin)
- ArgsL<- varargin
- if(mode(ArgsL[[1]])=="character"){
- Str<- ArgsL[[1]]
- Tmp<- strsplit(Str,"m")
- Tmp<- Tmp[[1]]
- if(length(Tmp)>1){
- I<- nchar(Tmp[1])+1
- }
- else{
- I<- 0
- }
- Tmp<- strsplit(Str,"n")
- Tmp<- Tmp[[1]]
- if(length(Tmp)>1){
- J<- nchar(Tmp[1])+1
- }
- else{
- J<- 0
- }
- Tmp<- strsplit(Str,"r")
- Tmp<- Tmp[[1]]
- if(length(Tmp)>1){
- K=nchar(Tmp[1])+1
- }
- else{
- K<- 0
- }
- if(K>0){
- S<- substr(Str,K+1,nchar(Str))
- R<- as.numeric(S)
- if(is.na(R)){
- R<- 1
- }
- }
- else{
- R<- 1
- K<- nchar(Str)+1
- }
- if(J>0){
- S<- substr(Str,J+1,K-1)
- Dn<- as.numeric(S)
- if(is.na(Dn)){
- Dn<- 1
- }
- }
- else{
- Dn<- 1000
- J<- nchar(Str)+1
- }
- S<- substr(Str,I+1,J-1)
- Dm<- as.numeric(S)
- if(is.na(Dm)){
- Dm<- 1
- }
- ArgsL<- list()
- for (I in 1:floor((YMAX-GENTEN[2])/Dm)){
- ArgsL<- Mixjoin(ArgsL,I*Dm)
- if(I-floor(I/Dn)*Dn==0){
- Str<- as.character(I*Dm*R)
- ArgsL<- Mixjoin(ArgsL,Str)
- }
- }
- for (I in seq(-1,ceiling((YMIN-GENTEN[2])/Dm))){
- ArgsL<- Mixjoin(ArgsL,I*Dm)
- if(I-floor(I/Dn)*Dn==0){
- Str<- as.character(I*Dm*R)
- ArgsL<- Mixjoin(ArgsL,Str)
- }
- }
- }
- MemoriList<- list()
- Memori<- list()
- for (N in 1:length(ArgsL)){
- Dt<- ArgsL[[N]]
- if(mode(Dt)=="numeric" && length(Dt)>1){
- if(length(Memori)>0){
- MemoriList<- Mixjoin(MemoriList,list(Memori))
- }
- Memori<- list(Dt)
- next
- }
- if(mode(Dt)=="character"){
- Memori<- Mixjoin(Memori,Dt)
- }
- else{
- if(length(Memori)>0){
- MemoriList<- Mixjoin(MemoriList,list(Memori))
- }
- Memori<- list(GENTEN[1],Dt)
- }
- }
- MemoriList<- Mixjoin(MemoriList,list(Memori))
- for (N in 1:length(MemoriList)){
- Dt<- MemoriList[[N]]
- Ndt<- length(Dt)
- X=Op(1,Dt)
- Y=Op(2,Dt)
- Tmp<-Doscaling(c(X,Y))
- X<- Tmp[1]
- Y<- Tmp[2]
- Moji<- Op(Ndt,Dt)
- Tmp1<- Unscaling(c(X,Y))
- Tmp2<- Unscaling(c(X-2*MARKLEN,Y))
- Fd<- Listplot(c(Tmp1,Tmp2))
- Drwline(Fd)
- if(Ndt==3){
- Tmp<-Unscaling(c(X-2*MARKLEN,Y))
- Expr(Tmp,"w",Moji)
- }
- if(Ndt==4){
- Houkou<- Op(3,Dt)
- Tmp<-grep("w",Houkou)
- if(length(Tmp)>0){
- Tmp<-Unscaling(c(X-2*MARKLEN,Y))
- Expr(Tmp,Houkou,Moji)
- }
- else{
- Tmp<- Unscaling(c(X,Y))
- Expr(Tmp,Houkou,Moji)
- }
- }
- cat("%\n",file=Wfile,append=TRUE)
- }
-}
-
-HtickmarklowerV<- function(Vec,digits=2,nsmall=2)
-{
- for (I in 1:length(Vec)){
- Tmp<- Vec[I]
- Htickmarklower(Tmp, Formatting(Tmp,digits,nsmall))
- }
-}
-
-HtickLV<- function(...)
-{
- HtickmarklowerV(...)
-}
-
-VtickmarkleftV<- function(Vec,digits=2,nsmall=2)
-{
- for (I in 1:length(Vec)){
- Tmp<- Vec[I]
- Vtickmarkleft(Tmp, Formatting(Tmp,digits,nsmall))
- }
-}
-
-VtickLV<- function(...)
-{
- VtickmarkleftV(...)
-}
-
-Insertcom<- function(CmdM,Npos,Str)
-{
- if(is.matrix(CmdM)){
- Cmd<- CmdM
- }
- else{
- C<- paste("Cmd<- ",CmdM)
- eval(parse(text=C))
- }
- Out<- Cmd[Looprange(1,Npos-1),]
- Out<- c(Out,Str)
- Tmp<- Cmd[Looprange(Npos,nrow(Cmd)),]
- Out<- c(Out,Tmp)
- Out<- matrix(Out)
- if(!is.matrix(CmdM)){
- C<- paste(CmdM,"<<- Out")
- eval(parse(text=C))
- }
- return(Out)
-}
-
-Replacecom<- function(CmdM,Npos,Str)
-{
- if(is.matrix(CmdM)){
- Cmd<- CmdM
- }
- else{
- C<- paste("Cmd<- ",CmdM)
- eval(parse(text=C))
- }
- Out<- Cmd[Looprange(1,Npos-1),]
- Out<- c(Out,Str)
- Tmp<- Cmd[Looprange(Npos+1,nrow(Cmd)),]
- Out<- c(Out,Tmp)
- Out<- matrix(Out)
- if(!is.matrix(CmdM)){
- C<- paste(CmdM,"<<- Out")
- eval(parse(text=C))
- }
- return(Out)
-}
-
-Deletecom<- function(CmdM,Npos)
-{
- if(is.matrix(CmdM)){
- Cmd<- CmdM
- }
- else{
- C<- paste("Cmd<- ",CmdM)
- eval(parse(text=C))
- }
- Out<- Cmd[Looprange(1,Npos-1),]
- Tmp<- Cmd[Looprange(Npos+1,nrow(Cmd)),]
- Out<- c(Out,Tmp)
- Out<- matrix(Out)
- if(!is.matrix(CmdM)){
- C<- paste(CmdM,"<<- Out")
- eval(parse(text=C))
- }
- return(Out)
-}
-
-Maketexfile<- function(commands="",texfile="")
-{
- Openfile(texfile)
- Execmd(commands)
- Closefile()
-}
-
-Formatting<- function(X,D=2,N=2)
-{
- if(D>0){
- Xs <- format(X,digits=D,nsmall=N)
- }
- else{
- Xs<- as.character(X)
- }
- return(Xs)
-}
-
-################################
-
-Boxplotdata1 <-function(DataF1,CenterX,Width,...)
-{
- Xr <- Width
- Temp <- boxplot(DataF1[1],plot=FALSE)
- Stats <- Temp$stats
- rownames(Stats) <- c("Lhige","Q1","Q2","Q3","Uhige")
- Out <- Temp$out
- Lhige <- Stats["Lhige",1]
- Uhige <- Stats["Uhige",1]
- Q1 <- Stats["Q1",1]
- Q2 <- Stats["Q2",1]
- Q3 <- Stats["Q3",1]
- CenterY <- (Q1+Q3)/2
- C <- c(CenterX,CenterY)
- V <- c(0,(Q3-Q1)/2)
- G1 <- Framedata(C,Xr/2,V[2]) # box
- Temp1 <- c(0,Q1-Lhige)
- Temp2 <- c(0,Uhige-Q3)
- G2 <- Listplot(C-V,C-V-Temp1) #
- G3 <- Listplot(C+V,C+V+Temp2) #
- Temp3 <- c(Xr/4,0)
- G4 <- Listplot(C-V-Temp1-Temp3,C-V-Temp1+Temp3) #
- G5 <- Listplot(C+V+Temp2-Temp3,C+V+Temp2+Temp3) #
- Temp4 <- c(0,Q3-Q2)
- Temp5 <- c(Xr/2,0)
- G6 <- Listplot(C+V-Temp4-Temp5,C+V-Temp4+Temp5) #
- G7 <- list()
- for(j in Looprange(1,length(Out))){
- G7 <- c(G7,list(c(CenterX, Out[j])))
- }
- G7 <- G7[order(Out,decreasing=TRUE)]
- list(median=G6,box=G1,uwhisker=G2,lwhisker=G3,lwp=G4,uwp=G5,outliers=G7)
-}
-
-Boxplotdata2 <- function(Data,Ratio, ...)
-{
- DataF<- Flattenlist(Data) # 11.07.21(from)
- ymin<- Inf
- ymax<- -Inf
- for(J in 1:length(DataF)){
- Tmp<- DataF[[J]]
- ymin<- min(ymin, min(Tmp))
- ymax<- max(ymax,max(Tmp))
- } # 11.07.21(until)
- dy <- ymax-ymin
- Setwindow(c(0,XMAX-XMIN),c(ymin-0.1*dy,ymax+0.1*dy))
- R1<- (YMAX-YMIN)/(XMAX-XMIN)
- R<- Ratio/R1
- Setscaling(R)
- Delta <- XMAX/length(DataF)
- W <- 0.6*Delta
- PdL <- list()
- for(i in 1:length(DataF)){ # 11.07.21
- X <- (0.5+i-1)*Delta
- G <- Boxplotdata1(DataF[i],X,W,...)
- PdL <- c(PdL,list(G))
- }
- G <- Framedata()
- Tmp<- list(frame=G)
- PdL <-c(PdL,list(Tmp))
- Epsi <-0
- Setwindow(c(XMIN-Epsi,XMAX+Epsi),c(YMIN-Epsi,YMAX+Epsi))
- return(PdL)
-}
-
-Drwboxframe<-function(BoxDataL)
-{
- Setorigin(c(XMIN,YMIN))
- Tmp<- Unscaling(c(0.2,0.2))
- Setwindow(c(XMIN-0.2,XMAX),c(YMIN-Tmp[2],YMAX))
- Hako<- BoxDataL$plotdata
- title<- BoxDataL$title
- cap<- BoxDataL$cap
- ylab<- BoxDataL$ylab
- if(mode(title)!="list") title<- list(title)
- if(mode(cap)!="list") cap<- list(cap)
- if(mode(ylab)!="list") ylab<- list(ylab)
- if(length(title)==0) title<- list("")
- if(length(title)==1) title<- c(title, list("n"))
- if(length(title)==2) title<- c(title, list(""))
- if(length(cap)==0) cap<- list("")
- if(length(cap)==1) cap<- c(cap, list("n"),0) # 11.11.27
- if(length(cap)==2) cap<- c(cap, 0) # 11.11.27
- if(length(ylab)==0) ylab<- list("")
- if(length(ylab)==1) ylab <- c(ylab, list("n"))
- if(length(ylab)==2) ylab<- c(ylab, list(""))
- Temp <- Hako[[length(Hako)]]
- Drwline(Temp$frame)
- Fontsize(cap[[2]])
- for(i in Looprange(1,length(Hako)-1)){
- Temp <- Hako[[i]]
- attach(Temp)
- Dashline(uwhisker,lwhisker)
- Drwline(median,2)
- Drwline(box,lwp,uwp)
- Drwpt(outliers,0)
- X <- uwhisker[1,1]
- detach(Temp)
- Htickmarklower(X)
- if(nchar(cap[[1]])<1) next # 2011.03.08
- if(length(cap)==2 || cap[[3]]==0){
- pos<- 1
- if(length(cap)>=4) pos<- cap[[4]]
- Tmp<- paste("s",as.character(pos),sep="")
- Letter(c(X,YMIN),Tmp, Op(i,cap[[1]]))
- }
- else{
- rotate<- cap[[3]]
- if(length(cap)==3){
- pos<- 0
- }
- else{
- pos<- cap[[4]]
- }
- Temp1 <- rotate*pi/180
- Temp <- c(cos(Temp1),sin(Temp1))
- Letterrot(c(X,YMIN-pos),Temp,Op(i,cap[[1]]))
- }
- }
- if(nchar(ylab[[1]])>0){
- Fontsize(ylab[[2]])
- Tmp1<- ylab[[1]]
- Tmp3<- ylab[[3]]
- if(nchar(Tmp3)>0){
- Tmp1<- paste("{\\",Tmp3," ",Tmp1,"}",sep="")
- }
- Letter(c(XMIN, YMAX),"n2",Tmp1)
- Fontsize("n")
- }
- if(nchar(title[[1]])>0){
- Fontsize(title[[2]])
- Tmp1<- title[[1]]
- Tmp3<- title[[3]]
- if(nchar(Tmp3)>0){
- Tmp1<- paste("{\\",Tmp3," ",Tmp1,"}",sep="")
- }
- Letter(c((XMIN+XMAX)/2,YMAX),"n2",Tmp1)
- }
- Fontsize("n")
-}
-
-Drwboxplot<- function(dataf,var,size,
- title=list(""), cap=list(colnames(dataf)),
- ylab=list(""), ptsize=5,plot=TRUE,...)
- #Return : title,cap,ylab,commands,plotdata,info
-{
- Tmp <- boxplot(dataf, plot=FALSE, ...)
- Stats <- Tmp$stats
- DataF<- Flattenlist(dataf) # 11.07.21(from)
- ymin<- Inf
- ymax<- -Inf
- for(J in 1:length(DataF)){
- Tmp<- DataF[[J]]
- ymin<- min(ymin, min(Tmp))
- ymax<- max(ymax,max(Tmp))
- } # 11.07.21(until)
- Hako<- Boxplotdata2(dataf, size[2]/size[1], ...)
- if(plot){
- Windisp(Hako)
- }
- Tmp<- Formatting(size[1]/(XMAX-XMIN),5,5)
- unit<- paste(Tmp,"cm",sep="")
- Setunitlen(unit)
- Exstr<- c(
- "","",
- paste("Beginpicture(","'",unit,"')",sep=""),
- paste("Setpt(",as.character(ptsize),")",sep=""),
- "","",
- paste("Drwboxframe(",var,")",sep=""),
- paste("VtickLV(c(",as.character(ymin),",", as.character(ymax),"),0,0)",sep=""),
- "","","","",
- "Setpt(1)",
- "Endpicture(0)"
- )
- Exstr<- matrix(Exstr)
- Xpos<- c()
- for(i in Looprange(1,length(Hako)-1)){
- Temp <- Hako[[i]]
- Temp1 <- Temp[[5]]
- Xpos <- c(Xpos,Temp1[1,1])
- }
- Info<- list(stats=Stats,window=matrix(c(XMIN,XMAX,YMIN,YMAX),nrow=2),xpos=Xpos)
- Tmp<- paste(var,"<<- ",
- "list(title=title,cap=cap,ylab=ylab,",
- "commands=Exstr,plotdata=Hako,info=Info)",sep="")
- eval(parse(text=Tmp))
-}
-
-
-###########################################
-
-Histplotdata <- function(DataV,Ratio,freq=TRUE,densplot=FALSE,...)
-# 10.12.07 freq
-{
- Temp <- hist(DataV,plot=FALSE,...)
- Breaks <- Temp$breaks
- Counts <- Temp$counts
- Density <- Temp$density
- Mids <- Temp$mids
- if(!freq){
- Data<- Density
- }
- else{
- Data<- Counts
- }
- Ghist <- list()
- for(i in Looprange(1,length(Breaks)-1)){
- Tmp1 <- c(Breaks[i],Breaks[i+1])
- Tmp2 <- c(0,Data[i])
- G1 <- Framedata(Tmp1,Tmp2) #bar
- Ghist <- c(Ghist,list(G1))
- }
- Bin <- Breaks[2]-Breaks[1]
- Eps <- 0.7*Bin # 0.7 times Bin
- Temp1 <- c(min(Breaks)-Eps,max(Breaks)+Eps) # Put Eps at both sides
- Temp2 <- c(0,max(Data)*1.02)
- Setwindow(Temp1,Temp2)
- Setorigin(c(Temp1[1],0))
- R1<- (YMAX-YMIN)/(XMAX-XMIN)
- R<- Ratio/R1
- Setscaling(R)
- VEps <- 0.05*(XMAX-XMIN)/5
- Temp1<- Temp1-c(VEps,0)
- Temp2<- Temp2-1/R*c(VEps,0)
- Setwindow(Temp1,Temp2)
- Fpt <- c(Mids[1]-Bin,0)
- Lpt <- c(Mids[length(Mids)]+Bin,0)
- Fp <- matrix(Fpt,nrow=1)
- for(i in Looprange(1,length(Mids))){
- Tmp <- c(Mids[i],Data[i])
- Fp <- rbind(Fp,Tmp)
- }
- Fp <- rbind(Fp,Lpt)
- rownames(Fp)<- c(1:nrow(Fp))
- if(densplot){
- Temp <- density(DataV)
- X <- matrix(Temp$x)
- Y <- matrix(Temp$y)
- Gdens <- cbind(X,Y)
- }
- else{
- Gdens <- list()
- }
- list(plotdata=list(histplot=Ghist,fpplot=list(Fp),densityplot=list(Gdens)),
- breaks=Breaks,counts=Counts,density=Density,mids=Mids)
-}
-
-Drwhistframe<-function(HistDataL)
-{
- title<- HistDataL$title
- xlab<- HistDataL$xlab
- ylab<- HistDataL$ylab
- if(mode(title)!="list") title<- list(title)
- if(mode(xlab)!="list") cap<- list(xlab)
- if(mode(ylab)!="list") cap<- list(ylab)
- if(length(title)==0) title<- list("")
- if(length(title)==1) title<- c(title, list("n"))
- if(length(title)==2) title<- c(title, list(""))
- if(length(xlab)==0) xlab<- list("")
- if(length(xlab)==1) xlab<- c(xlab, list("n"))
- if(length(xlab)==2) xlab<- c(xlab, list(""))
- if(length(xlab)==3) xlab<- c(xlab, list(8))
- if(length(ylab)==0) ylab<- list("")
- if(length(ylab)==1) ylab<- c(ylab, list("n"))
- if(length(ylab)==2) ylab<- c(ylab, list(""))
- if(nchar(title[[1]])>0){
- Fontsize(title[[2]])
- Tmp1<- title[[1]]
- Tmp3<- title[[3]]
- if(nchar(Tmp3)>0){
- Tmp1<- paste("{\\",Tmp3," ",Tmp1,"}",sep="")
- }
- Letter(c((XMIN+XMAX)/2,YMAX),"n2",Tmp1)
- Fontsize("n")
- }
- if(nchar(xlab[[1]])>0){
- Fontsize(xlab[[2]])
- Tmp1<- xlab[[1]]
- Tmp3<- xlab[[3]]
- if(nchar(Tmp3)>0){
- Tmp1<- paste("{\\",Tmp3," ",Tmp1,"}",sep="")
- }
- Tmp4<- paste("s",as.character(xlab[[4]]),sep="")
- Letter(c((XMIN+XMAX)/2,YMIN),Tmp4,Tmp1)
- Fontsize("n")
- }
- if(nchar(ylab[[1]])>0){
- Fontsize(ylab[[2]])
- Tmp1<- ylab[[1]]
- Tmp3<- ylab[[3]]
- if(nchar(Tmp3)>0){
- Tmp1<- paste("{\\",Tmp3," ",Tmp1,"}",sep="")
- }
- Tmp<- Setorigin()
- Letter(c(Tmp[1], YMAX),"n2",Tmp1)
- Fontsize("n")
- }
-
- Setax(2," ")
- Setax(4," ")
- Setax(6," ")
-}
-
-Drwhistplot<- function(datav,var,size,freq=TRUE,
- title=list(""), xlab=list(""), ylab=list(""),
- plot=TRUE,densplot=FALSE,fpplot=TRUE,...)
- #Output : title,xlab,ylab,commands,plotdata,info
-{
- H <- Histplotdata(datav, size[2]/size[1], freq=freq,densplot=densplot,...)
- Pd<- H$plotdata
- Ghist <- list(histplot=Pd$histplot,densityplot=Pd$densityplot) # 10.12.07
- if(fpplot){
- Ghist<- c(Ghist,list(fpplot=Pd$fpplot))
- }
- if(plot){
- Windisp(Ghist)
- }
- Tmp<- Formatting(size[1]/(XMAX-XMIN),5,5)
- unit<- paste(Tmp,"cm",sep="")
- Setunitlen(unit)
- Infostr<- paste(var,"$info",sep="")
- Brkstr<- paste(Infostr,"$breaks",sep="")
- Midstr<- paste(Infostr,"$mids",sep="")
- if(!freq){
- Digits<- ",2,2"
- Denstr<- paste(Infostr,"$density",sep="")
- }
- else{
- Digits<- ",0,0"
- Denstr<- paste(Infostr,"$counts",sep="")
- }
-
- if(fpplot) Prefp<- "" else Prefp<- "#"
- Exstr<- c(
- "","",
- paste("Beginpicture(","'",unit,"')",sep=""),
- "","",
- paste("Drwhistframe(",var,")",sep=""),
- paste("HtickLV(",Midstr,",1,1)",sep=""),
- paste("VtickLV(max(",Denstr,")",Digits,")",sep=""),
- paste("Drwline(",var,"[['plotdata']]","$histplot)",sep=""),
- paste(Prefp,"Dashline(",var,"[['plotdata']]","$fpplot)",sep=""),
- paste("#Drwline(",var,"[['plotdata']]","$densityplot,2)",sep=""),
- "","","","",
- "Endpicture(1)"
- )
- Exstr<- matrix(Exstr)
- Info<- list(breaks=H$breaks,counts=H$counts,density=H$density,mids=H$mids,
- window=matrix(c(XMIN,XMAX,YMIN,YMAX),nrow=2))
- Tmp<- paste(var,"<<- ",
- "list(title=title,xlab=xlab,ylab=ylab,",
- "commands=Exstr,plotdata=Ghist,info=Info)",sep="")
- eval(parse(text=Tmp))
-}
-
-##########################
-#17.09.30
-
-Bezierpt<- function(t,Ptlist,Ctrlist){
- if(length(Ptlist)==6){
- P0=Ptlist[1:3]
- P3=Ptlist[4:6]
- P1=Ctrlist[1:3]
- if(length(Ctrlist)==3){
- P2=P3
- flg3=0
- }else{
- P2=Ctrlist[4:6]
- flg3=1
- }
- }else{
- P0=Ptlist[1:2]
- P3=Ptlist[3:4]
- P1=Ctrlist[1:2]
- if(length(Ctrlist)==2){
- P2=P3
- flg3=0
- }else{
- P2=Ctrlist[3:4]
- flg3=1
- }
- }
- P4=(1-t)*P0+t*P1
- P5=(1-t)*P1+t*P2
- P6=(1-t)*P2+t*P3
- P7=(1-t)*P4+t*P5
- P8=(1-t)*P5+t*P6
- P9=(1-t)*P7+t*P8
- if(flg3==0){
- Out=P7
- }else{
- Out=P9
- }
- return(Out)
-}
-
-Bezier<- function(...){
- varargin<- list(...)
- Nargs=length(varargin)
- Ptlist=varargin[[1]]
- Ctrlist=varargin[[2]]
- Num=10
- for(J in Looprange(3,Nargs)){
- Tmp=varargin[[J]]
- K=strsplit(Tmp,'=',fixe=TRUE)
- K=K[[1]]
- Tmp1=substring(K[1],1,1)
- Lhs=toupper(Tmp1)
- if(Lhs=="N"){
- Num=eval(parse(text=K[2]))
- }
- }
- if(length(Num)==1){
- Num=rep(Num,length(Ctrlist)) #17.10.08
- }
- Out=c()
- for(ii in Looprange(1,length(Ctrlist))){
- Tmp1=c(Ptlist[[ii]],Ptlist[[ii+1]])
- Tmp2=Ctrlist[[ii]]
- if(ii==1){
- St=0
- }else{
- St=1
- }
- for(J in Looprange(St,Num[ii])){
- Tmp=Bezierpt(J/Num[ii],Tmp1,Tmp2)
- Out=Appendrow(Out,Tmp)
- }
- }
- return(Out)
-}
-
-#######################
-# 17.10.02
-
-Connectseg<- function(...){
- varargin=list(...)
- Nargs=length(varargin)
- Pdata=varargin[[1]]
- Eps=10^(-4)
- if(Nargs>=2){
- Eps=varargin[[2]]
- }
- if(is.matrix(Pdata)){
- Din=Dataindex(Pdata)
- tmp1=list()
- for(J in 1:nrow(Din)){
- tmp=Pdata[Din[J,1]:Din[J,2],]
- tmp1=c(tmp1,list(tmp))
- }
- Pdata=tmp1
- }
- PlotL=list(Op(1,Pdata))
- VI=Looprange(2,length(Pdata))
- while(length(VI)>0){
- Qd=Op(Length(PlotL),PlotL)
- Ah=Op(1,Qd); Ao=Op(Length(Qd),Qd)
- Flg=0
- for(J in 1:length(VI)){
- Tmp1=Op(VI[J],Pdata)
- P=Op(1,Tmp1); Q=Op(Length(Tmp1),Tmp1)
- if(Norm(P-Ao)<Eps){
- Tmp=Tmp1[Looprange(2,Length(Tmp1)),]
- if(Length(Tmp)>0){
- Qd=Appendrow(Qd,Tmp)
- }
- PlotL[[length(PlotL)]]=Qd
- VI=VI[-J]
- Flg=1
- break
- }
- if(Norm(Q-Ao)<Eps){
- Tmp=Tmp1[(nrow(Tmp1)-1):1,]
- Qd=Appendrow(Qd,Tmp)
- PlotL[[length(PlotL)]]=Qd
- VI=VI[-J]
- Flg=1
- break
- }
- if(Norm(P-Ah)<Eps){
- Tmp=Tmp1[2:nrow(Tmp1),]
- Qd=Appendrow(Tmp,Qd)
- PlotL[[length(PlotL)]]=Qd
- VI=VI[-J]
- Flg=1
- break
- }
- if(Norm(Q-Ah)<Eps){
- Tmp=Tmp1[(nrow(Tmp1)-1):1,]
- Qd=Appendrow(Tmp,Qd)
- PlotL[[length(PlotL)]]=Qd
- VI=VI[-J]
- Flg=1
- break
- }
- }
- if(Flg==0){
- PlotL=c(PlotL,Pdata[VI[1]])
- VI=VI[-1]
- }
- }
- return(PlotL)
-}
-
-Implicitplot<- function(...){ #180402
- varargin=list(...)
- Eps=10^(-4)
- Nargs=length(varargin)
- Func=varargin[[1]]
- Xrng=varargin[[2]]
- Yrng=varargin[[3]]
- Mdv=50;Ndv=50
- for (I in Looprange(4,length(varargin))){
- Str= varargin[[I]]
- Tmp=strsplit(Str,"=",fixed=TRUE)
- Tmp=Tmp[[1]]
- Tmp1=toupper(Tmp[1])
- if(substring(Tmp1,1,1)=="N"){
- Mdv=eval(parse(text=Tmp[2]))
- if(length(Mdv)==1){
- Ndv=Mdv
- }else{
- Ndv=Mdv[2]
- Mdv=Mdv[1]
- }
- }
- }
- Tmp=strsplit(Func,"=",fixed=TRUE)
- Tmp=Tmp[[1]]
- if(length(Tmp)==1){
- Fn=Func
- }else{
- Fn=paste(Tmp[1],"-(",Tmp[2],")",sep="")
- }
- Tmp=strsplit(Xrng,"=",fixed=TRUE)
- Tmp=Tmp[[1]]
- Varx=Tmp[1]
- Rngx=eval(parse(text=Tmp[2]))
- Tmp=strsplit(Yrng,"=",fixed=TRUE)
- Tmp=Tmp[[1]]
- Vary=Tmp[1]
- Rngy=eval(parse(text=Tmp[2]))
- Tmp=paste("Impfun<- function(",Varx,",",Vary,"){",Fn,"}",sep="")
- eval(parse(text=Tmp))
- dx=(Rngx[2]-Rngx[1])/Mdv
- dy=(Rngy[2]-Rngy[1])/Ndv
- out=list()
- for(jj in 1:Ndv){
- yval1=Rngy[1]+(jj-1)*dy
- yval2=Rngy[1]+jj*dy
- xval1=Rngx[1]
- eval11=Impfun(xval1,yval1)
- eval12=Impfun(xval1,yval2)
- for(ii in 1:Mdv){
- xval2=Rngx[1]+ii*dx
- eval21=Impfun(xval2,yval1)
- eval22=Impfun(xval2,yval2)
- pL=list(c(xval1,yval1));vL=c(eval11)
- pL=c(pL,list(c(xval2,yval1)));vL=c(vL,eval21)
- pL=c(pL,list(c(xval2,yval2)));vL=c(vL,eval22)
- pL=c(pL,list(c(xval1,yval2)));vL=c(vL,eval12)
- pL=c(pL,list(c(xval1,yval1)));vL=c(vL,eval11)
- qL=c()
- for(kk in 1:4){
- if(abs(vL[kk])<=Eps){
- qL=Appendrow(qL,pL[[kk]])
- }else{
- if(vL[kk]>Eps){
- if(vL[kk+1]< -Eps){
- tmp=1/(vL[kk]-vL[kk+1])*
- (-vL[kk+1]*pL[[kk]]+vL[kk]*pL[[kk+1]])
- qL=Appendrow(qL,tmp)
- }
- }else{
- if(vL[kk+1]>Eps){
- tmp=1/(-vL[kk]+vL[kk+1])*
- (vL[kk+1]*pL[[kk]]-vL[kk]*pL[[kk+1]])
- qL=Appendrow(qL,tmp)
- }
- }
- }
- }
- xval1=xval2
- eval11=eval21
- eval12=eval22
- if(Length(qL)==2){
- out=c(out,list(qL))
- }
- }
- }
- if(length(out)>0){
- out=Connectseg(out)
- }
- if(length(out)==1){
- out=out[[1]]
- }
- return(out)
-}
-
-#########################
-# 17.10.06
-
-Deqdata=function(deq,rng,initt,initf,Num){
- Eps=10^(-3)
- inf=10^3
- tmp=strsplit(deq,"=")[[1]]
- tmp1=gsub("`","",tmp[1],fixed=TRUE)
- tmp1=substring(tmp1,3,nchar(tmp1)-1)
- Xname=strsplit(tmp1,",")[[1]]
- func=tmp[2]
- for(J in 1:(length(Xname))){
- tmp1=paste("X[",as.character(J),"]",sep="")
- func=gsub(Xname[J],tmp1,func,fixed=TRUE)
- }
- tmp=strsplit(rng,"=")[[1]]
- tname=tmp[1]
- tmp=eval(parse(text=tmp[2]))
- t1=tmp[1]
- t2=tmp[2]
- tmp=paste("function(",tname,",X){",func,"}",sep="")
- funP=eval(parse(text=tmp))
- tmp=paste("function(",tname,",X){-",func,"}",sep="")
- funN=eval(parse(text=tmp))
- dt=(t2-t1)/Num
- tt=initt
- X0=initf
- pdL=c(tt,X0)
- for(J in Looprange(1,floor((t2-initt)/dt))){
- kl1=dt*funP(tt,X0)
- kl2=dt*funP(tt+dt/2,X0+kl1/2)
- kl3=dt*funP(tt+dt/2,X0+kl2/2)
- kl4=dt*funP(tt+dt,X0+kl3)
- X0=X0+(kl1+2*kl2+2*kl3+kl4)/6
- tt=initt+J*dt
- tmp=c(tt,X0)
- if(Norm(tmp)>inf){break}
- pdL=Appendrow(pdL,tmp)
- }
- tt=initt
- X0=initf
- for(J in Looprange(1,floor((initt-t1)/dt))){
- kl1=dt*funN(tt,X0)
- kl2=dt*funN(tt+dt/2,X0+kl1/2)
- kl3=dt*funN(tt+dt/2,X0+kl2/2)
- kl4=dt*funN(tt+dt,X0+kl3)
- X0=X0+(kl1+2*kl2+2*kl3+kl4)/6
- tt=initt-J*dt
- tmp=c(tt,X0)
- if(Norm(tmp)>inf){break}
- pdL=Appendrow(tmp,pdL)
- }
- pdL
-}
-
-Deqplot=function(...){
- varargin=list(...)
- deq=varargin[[1]]
- rng=varargin[[2]]
- initt=varargin[[3]]
- initf=varargin[[4]]
- Num=50
- Sel=c(1,2)
- for(J in Looprange(5,length(varargin))){
- tmp1=varargin[[J]]
- if(is.character(tmp1)){
- tmp=strsplit(tmp1,"=")[[1]]
- Num=eval(parse(text=tmp[2]))
- }else{
- SeL=tmp1
- }
- }
- pdL=Deqdata(deq,rng,initt,initf,Num)
- pdL=pdL[,SeL]
-}
-
-
-############## obj ###############
-
-Openobj<- function(Fnm){
- OBJFMT<<- "%7.4f"
- NPOINT<<- 0
- NNORM<<- 0
- OBJSCALE<<- 1
- OBJFIGNO<<- 0
- OBJJOIN<<- 0
- Wfile<<- Fnm
- Tmp=grep(".obj",Fnm,fixed=TRUE)
- if(length(Tmp)==0){
- if(nchar(Fnm)>0){
- Wfile<<- paste(Fnm,".obj",sep="")
- }
- }
- cat("",file=Wfile,sep="")
- Wfile
-}
-
-Closeobj<- function(){
- Wfile=""
-}
-
-Writeobjpoint<- function(P){
- X=sprintf(OBJFMT,P[1]*OBJSCALE)
- Y=sprintf(OBJFMT,P[2]*OBJSCALE)
- Z=sprintf(OBJFMT,P[3]*OBJSCALE)
- Str=paste("v",X,Y,Z,sep=" ")
- Printobjstr(Str)
- NPOINT<<- NPOINT+1
- return(NPOINT)
-}
-
-Printobjstr<- function(Str){
- cat(Str,"\n",sep="",file=Wfile,append=TRUE)
-}
-
-Objname<- function(){
- if(OBJJOIN==0){
- OBJFIGNO<<- OBJFIGNO+1
- Gname=paste("ketfig",as.character(OBJFIGNO),sep="")
- Printobjstr(paste("# ",Gname,sep=""))
- Printobjstr(paste("g ",Gname,sep=""))
- }
-}
-
-Objjoin<- function(...){
- varargin=list()
- if(length(varargin)>0){
- OBJJOIN<<- abs(sign(varargin[[1]]))
- }
- OBJJOIN
-}
-
-Objsurf<- function(...){ #17.12.18
- Args<- list(...)
- Nargs<- length(Args)
- Sel=Args[[Nargs]]; Nargs=Nargs-1
- Rf=Args[[1]]
- N=2
- Mg=0; Ng=0
- if(is.numeric(Args[[N]])){
- if(length(Args[[N]])>2){
- U=Args[[N]]
- Mg=length(U)-1
- N=N+1
- }else if(length(Args[[N]])==2){
- Intab=Args[[N]]
- Ag=Intab[1]; Bg=Intab[2]
- N=N+1
- }else{
- Ag=Args[N]; Bg=Args[N+1]
- N=N+2
- }
- }else{
- Tmp0=Args[[N]]
- Tmp=grep("=",Tmp0,fixed=TRUE)
- if(length(Tmp)>0){
- Tmp1=strsplit(Tmp0,"=")
- Tmp0=Tmp1[[1]][2]
- }
- Intab=eval(parse(text=Tmp0))
- Ag=Intab[1]; Bg=Intab[2]
- N=N+1
- }
- if(is.numeric(Args[[N]])){
- if(length(Args[[N]])>2){
- V=Args[[N]]
- Ng=length(V)-1
- N=N+1
- }else if(length(Args[[N]])==2){
- Intab=Args[[N]]
- Cg=Intab[1]; Dg=Intab[2]
- N=N+1
- }else{
- Cg=Args[[N]]; Dg=Args[[N+1]]
- N=N+2
- }
- }else{ # the case of is.character(Args[[N]])
- Tmp0=Args[[N]]
- Tmp=grep("=",Tmp0,fixed=TRUE)
- if(length(Tmp)>0){
- Tmp2=strsplit(Tmp0,"=")
- Tmp0=Tmp2[[1]][2]
- }
- Intab=eval(parse(text=Tmp0))
- Cg=Intab[1]; Dg=Intab[2]
- N=N+1
- }
- if(Mg==0){
- Mg=Args[[N]]
- N=N+1
- U=c()
- for(J in Looprange(1,Mg+1)){
- U=c(U,Ag+(J-1)/Mg*(Bg-Ag))
- }
- }
- if(Ng==0){
- Ng=Args[[N]]
- V=c()
- for(K in Looprange(1,Ng+1)){
- V=c(V,Cg+(K-1)/Ng*(Dg-Cg))
- }
- }
- Objname()
- PL=list()
- for(J in Looprange(1,Mg+1)){
- for(K in Looprange(1,Ng+1)){
- P=Rf(U[J],V[K])
- Np=Writeobjpoint(P)
- PL=c(PL,list(c(P,Np)))
- }
- }
- Idx=1+(Ng+1)*(0:Mg)
- Pus=PL[Idx]
- Idx=(Ng+1)*(1:(Mg+1))
- Pue=PL[Idx]
- Idx=1:(Ng+1)
- Pvs=PL[Idx]
- Idx=((Ng+1)*Mg+1):((Ng+1)*(Mg+1))
- Pve=PL[Idx]
- Printobjstr("vt 0 0")
- Printobjstr("vt 1 0")
- Printobjstr("vt 1 1")
- Printobjstr("vt 0 1")
- for(J in Looprange(1,Mg)){
- for(K in Looprange(1,Ng)){
- P1=sprintf("%1d",Op(4,PL[[(Ng+1)*(J-1)+K]]))
- P2=sprintf("%1d",Op(4,PL[[(Ng+1)*J+K]]))
- P3=sprintf("%1d",Op(4,PL[[(Ng+1)*J+K+1]]))
- P4=sprintf("%1d",Op(4,PL[[(Ng+1)*(J-1)+K+1]]))
- N1=""; N2=""; N3=""; N4=""
- if(Sel=="+"){
- Str=paste("f ",P1,"/1/",N1," ",P2,"/2/",N2," ",sep="")
- Str=paste(Str,P3,"/3/",N3," ",P4,"/4/",N4,sep="")
- }else{
- Str=paste("f ",P1,"/1/",N1," ",P4,"/4/",N4," ",sep="")
- Str=paste(Str,P3,"/3/",N3," ",P2,"/2/",N2,sep="")
- }
- Printobjstr(Str)
- }
- }
- list(U,V,Pus,Pue,Pvs,Pve)
-}
-
-Objthicksurf<- function(...){
- Args=list(...)
- Nargs=length(Args)
- Sel=Args[[Nargs]]; Nargs=Nargs-1
- Selsurf=substring(Sel,1,1)
- Selside=c("0","0","0","0")
- Tmp=grep("w",Sel,fixed=TRUE)
- if(length(Tmp)>0){
- Selside[1]="w"
- }
- Tmp=grep("e",Sel,fixed=TRUE)
- if(length(Tmp)>0){
- Selside[2]="e"
- }
- Tmp=grep("s",Sel,fixed=TRUE)
- if(length(Tmp)>0){
- Selside[3]="s"
- }
- Tmp=grep("n",Sel,fixed=TRUE)
- if(length(Tmp)>0){
- Selside[4]="n"
- }
- Nfth=Args[[Nargs-2]]
- Thick1=Args[[Nargs-1]]
- Thick2=Args[[Nargs]]
- Nargs=Nargs-3
- Rfth=Args[[1]]
- N=2
- Mg=0; Ng=0
- if(is.numeric(Args[[N]])){
- if(length(Args[[N]])>2){
- U=Args[[N]]
- Mg=length(U)-1
- N=N+1
- }else if(length(Args[[N]])==2){
- Intab=Args[[N]]
- Ag=Intab[1]; Bg=Intab[2]
- N=N+1
- }else{
- Ag=Args[[N]]; Bg=Args[[N+1]]
- N=N+2
- }
- }else{
- Tmp0=Args[[N]]
- Tmp=strsplit(Tmp0,"=",fixe=TRUE)
- if(length(Tmp)>0){
- Tmp0=Tmp[[1]][2]
- }
- Intab=eval(parse(text=Tmp0))
- Ag=Intab[1]; Bg=Intab[2]
- N=N+1
- }
- if(is.numeric(Args[[N]])){
- if(length(Args[[N]])>2){
- V=Args[[N]]
- Ng=length(V)-1
- N=N+1
- }else if(length(Args[[N]])==2){
- Intab=Args[[N]]
- Cg=Intab[1]; Dg=Intab[2]
- N=N+1
- }else{
- Cg=Args[[N]]; Dg=Args[[N+1]]
- N=N+2
- }
- }else{
- Tmp0=Args[[N]]
- Tmp=strsplit(Tmp0,"=",fixed=TRUE)
- if(length(Tmp)>0){
- Tmp0=Tmp[[1]][2]
- }
- Intab=eval(parse(text=Tmp0))
- Cg=Intab[1]; Dg=Intab[2]
- N=N+1
- }
- if(Mg==0){
- Mg=Args[[N]]
- N=N+1
- U=c()
- for(J in Looprange(1,Mg+1)){
- U=c(U,Ag+(J-1)/Mg*(Bg-Ag))
- }
- }
- if(Ng==0){
- Ng=Args[[N]]
- V=c()
- for(K in Looprange(1,Ng+1)){
- V=c(V,Cg+(K-1)/Ng*(Dg-Cg))
- }
- }
- Objname()
- Join=OBJJOIN
- OBJJOIN<<- 1
- F1=function(u,v){
- Rfth(u,v)+Thick1*Nfth(u,v)
- }
- F2=function(u,v){
- Rfth(u,v)+Thick2*Nfth(u,v)
- }
- Dt1=Objsurf(F1,U,V,Selsurf)
- if(Selsurf=="+"){
- Tmp="-"
- }else{
- Tmp="+"
- }
- Dt2=Objsurf(F2,U,V,Tmp);
- Out=list(Dt1,Dt2);
-
- if(Selside[1]!="0"){
- Dt=Objrecs(Op(3,Dt1),Op(3,Dt2),Selside[1])
- Out=c(Out,list(Dt))
- }
- if(Selside[2]!="0"){
- Dt=Objrecs(Op(4,Dt1),Op(4,Dt2),Selside[2])
- Out=c(Out,list(Dt))
- }
- if(Selside[3]!="0"){
- Dt=Objrecs(Op(5,Dt1),Op(5,Dt2),Selside[3])
- Out=c(Out,list(Dt))
- }
- if(Selside[4]!="0"){
- Dt=Objrecs(Op(6,Dt1),Op(6,Dt2),Selside[4])
- Out=c(Out,list(Dt))
- }
- OBJJOIN<<- Join
-}
-
-Objrecs<- function(...){
- Eps=10^(-6)
- Args=list(...)
- Nargs=length(Args)
- Tmp=Args[[1]]
- PtL=Flattenlist(Tmp)
- for(J in Looprange(1,length(PtL))){ #17.12.23from
- Tmp=PtL[[J]]
- if(!is.matrix(Tmp)){
- PtL[[J]]=matrix(Tmp,nrow=1)
- }
- } #17.12.23until
- PL1=list()
- for(J in Looprange(1,length(PtL))){
- Tmp=PtL[[J]]
- for(K in Looprange(1,nrow(Tmp))){
- PL1=c(PL1,list(Tmp[K,]))
- }
- }
- Sel=Args[[Nargs]]; Nargs=Nargs-1
- Objname()
- for(J in Looprange(1,length(PL1))){
- P=PL1[[J]]
- if((length(P)<4) || (P[4]==0)){
- Np=Writeobjpoint(P)
- PL1[[J]]=c(P[1:3],Np)
- }
- }
- Tmp=Args[[2]]
- if((is.numeric(Tmp)) && (length(Tmp)==1)){
- Drv=Tmp
- Len=Norm(Drv)
- PL2=list()
- for(J in Looprange(1,length(PL1))){
- Tmp=PL1[[J]]
- P=Tmp[1:3]+Drv
- Np=Writeobjpoint(P)
- PL2=c(PL2,list(c(P[1:3],Np)))
- if(J<length(PL1)){
- Vec=PL1[[J+1]]-PL1[[J]]
- if(Norm(Vec)>Eps){
- Tmp1=Crossprod(Drv,Vec)
- Tmp2=Crossprod(Tmp1,Vec)
- Tmp3=Dotprod(Tmp2,Drv)
- if(Tmp3<-Eps){
- Tmp2=-Tmp2
- }
- Drv=Len/Norm(Tmp2)*Tmp2
- }
- }
- }
- }else{
- PtL=Flattenlist(Tmp)
- for(J in Looprange(1,length(PtL))){ #17.12.23from
- Tmp=PtL[[J]]
- if(!is.matrix(Tmp)){
- PtL[[J]]=matrix(Tmp,nrow=1)
- }
- } #17.12.23until
- PL2=list()
- for(J in Looprange(1,length(PtL))){
- Tmp=PtL[[J]]
- for(K in Looprange(1,nrow(Tmp))){
- PL2=c(PL2,list(Tmp[K,]))
- }
- }
- for(J in Looprange(1,length(PL2))){
- P=PL2[[J]]
- if((length(P)<4) || (P[4]==0)){
- Np=Writeobjpoint(P)
- PL2[[J]]=c(P[1:3],Np)
- }
- }
- }
- Printobjstr("vt 0 0")
- Printobjstr("vt 1 0")
- Printobjstr("vt 1 1")
- Printobjstr("vt 0 1")
- for(J in Looprange(2,length(PL1))){
- P1=sprintf("%1d",Op(4,PL1[[J-1]]))
- P2=sprintf("%1d",Op(4,PL2[[J-1]]))
- P3=sprintf("%1d",Op(4,PL2[[J]]))
- P4=sprintf("%1d",Op(4,PL1[[J]]))
- N1=""; N2=""; N3=""; N4=""
- if(Sel=="+"){
- Str=paste("f ",P1,"/1/",N1," ",P2,"/2/",N2," ",sep="")
- Str=paste(Str,P3,"/3/",N3," ",P4,"/4/",N4,sep="")
- }else{
- Str=paste("f ",P1,"/1/",N1," ",P4,"/4/",N4," ",sep="")
- Str=paste(Str,P3,"/3/",N3," ",P2,"/2/",N2,sep="")
- }
- Printobjstr(Str)
- }
- list(PL1,PL2)
-}
-
-Objpolygon<- function(...){
- Eps=10^(-6)
- Args=list(...)
- Nargs=length(Args)
- Tmp=Args[[1]]
- PtL=Flattenlist(Tmp)
- for(J in Looprange(1,length(PtL))){ #17.12.23from
- Tmp=PtL[[J]]
- if(!is.matrix(Tmp)){
- PtL[[J]]=matrix(Tmp,nrow=1)
- }
- } #17.12.23until
- PL=list()
- for(J in Looprange(1,length(PtL))){
- Tmp=PtL[[J]]
- for(K in Looprange(1,nrow(Tmp))){
- PL=c(PL,list(Tmp[K,]))
- }
- }
- Sel=Args[[Nargs]]; Nargs=Nargs-1
- Objname()
- for(J in Looprange(1,length(PL))){
- P=PL[[J]]
- if((length(P)<4) || (P(4)==0)){
- Np=Writeobjpoint(P)
- PL[[J]]=c(P[1:3],Np)
- }
- }
- if(Nargs==1){
- Tmp=PL[[1]]
- Cen=Tmp[1:3]
- Nc=Tmp[4]
- }else{
- Tmp=Args[[2]]
- if(length(Tmp)==1){
- Tmp1=PL[[Tmp]]
- Cen=Tmp1[1:3]
- Nc=Tmp[4]
- }else{
- Cen=Tmp
- Nc=Writeobjpoint(Cen)
- }
- }
- for(J in Looprange(1,length(PL))){
- if(J<length(PL)){
- Je=J+1
- }else{
- Je=1
- }
- Pt1=Cen
- PLj=PL[[J]]; PLje=PL[[Je]]
- Pt2=PLj[1:3]; Pt3=PLje[1:3]
- if(Norm(Crossprod(Pt2-Pt1,Pt3-Pt1))<Eps){
- next
- }
- P1=sprintf("%1d",Nc)
- P2=sprintf("%1d",PLj[4])
- P3=sprintf("%1d",PLje[4])
- if(Sel=="+"){
- Str=paste("f",P1,P2,P3,"",sep=" ")
- }else{
- Str=paste("f",P1,P3,P2,"",sep=" ")
- }
- Printobjstr(Str)
- }
- PL
-}
-
-Objpolyhedron<- function(Vertex,Face){
- OBJFIGNO<<- OBJFIGNO+1
- Ninit=NPOINT
- Objname()
- for(N in Looprange(1,length(Vertex))){
- P=Vertex[[N]]
- Np=Writeobjpoint(P)
- Vertex[[N]]=c(P[1:3],Np)
- }
- for(N in Looprange(1,length(Face))){
- F=Face[[N]]+Ninit
- Face[[N]]=F
- Str="f"
- for(J in Looprange(1,length(F))){
- P=sprintf("%1d",F[J])
- Str=paste(Str,P,sep=" ")
- }
- Printobjstr(Str)
- }
- list(Vertex,Face)
-}
-
-Objcurve<- function(...){
- Eps=10^(-6)
- Args=list(...)
- Nargs=length(Args)
- Tmp=Args[[1]]
- PtL=Flattenlist(Tmp)
- for(J in Looprange(1,length(PtL))){ #17.12.23from
- Tmp=PtL[[J]]
- if(!is.matrix(Tmp)){
- PtL[[J]]=matrix(Tmp,nrow=1)
- }
- } #17.12.23until
- PL=list()
- for(J in Looprange(1,length(PtL))){
- Tmp=PtL[[J]]
- for(K in Looprange(1,nrow(Tmp))){
- PL=c(PL,list(Tmp[K,]))
- }
- }
- Closed=Norm(PL[[length(PL)]]-PL[[1]])<Eps
- Pstr="xy"
- Tmp=Args[[Nargs]]
- if(is.character(Tmp)){
- Pstr=Tmp
- Nargs=Nargs-1
- }
- Sz=0.1
- Np=4
- if(Nargs>=2){
- Sz=Args[[2]]
- }
- if(Nargs>=3){
- Np=Args[[3]]
- }
- Assign("Sz",Sz)
- if(Pstr=="xy"){
- Vz=c(0,0,1)
- Fs=Assign("c(Sz*cos(t),Sz*sin(t),0)")
- }
- if(Pstr=="yz"){
- Vz=c(1,0,0)
- Fs=Assign("c(0,Sz*cos(t),Sz*sin(t))")
- }
- if(Pstr=="zx"){
- Vz=c(0,1,0)
- Fs=Assign("c(Sz*sin(t),0,Sz*cos(t))")
- }
- Gc0=Spacecurve(Fs,"t=c(0,2*pi)",paste("Num=",as.character(Np),sep=""))
- P=PL[[1]]; Q=PL[[2]]; R=PL[[length(PL)-1]]
- PQ1=Q-P
- if(!Closed){
- PQ2=PQ1
- }else{
- PQ2=P-R
- }
- Vp=PQ1/Norm(PQ1)+PQ2/Norm(PQ2)
- Vp1=Vp/Norm(Vp)
- Theta=acos(min(Dotprod(Vz,Vp1),1));
- Vj=Crossprod(Vz,Vp1)
- if(Norm(Vj)<Eps){
- Vj=Vz
- }
- Gc1=Rotate3data(Gc0,Vj,Theta)
- CL=list(Translate3data(Gc1,P))
- for(J in Looprange(2,length(PL)-1)){
- P=PL[[J]]; Q=PL[[J+1]]
- PQ2=Q-P
- if(Norm(PQ2)<Eps){
- next
- }
- Vp=PQ1/Norm(PQ1)+PQ2/Norm(PQ2)
- Vp2=Vp/Norm(Vp)
- Theta=acos(min(Dotprod(Vp1,Vp2),1))
- Vj=Crossprod(Vp1,Vp2)
- if(Norm(Vj)<Eps){
- Vj=Vp1
- }
- Gc2=Rotate3data(Gc1,Vj,Theta)
- CL=c(CL,list(Translate3data(Gc2,P)))
- PQ1=PQ2
- Vp1=Vp2
- Gc1=Gc2
- }
- if(!Closed){
- Vp2=(Q-P)/Norm(Q-P)
- Theta=acos(min(Dotprod(Vp1,Vp2),1))
- Vj=Crossprod(Vp1,Vp2)
- if(Norm(Vj)<Eps){
- Vj=Vp1
- }
- Gc3=Rotate3data(Gc1,Vj,Theta)
- CL=c(CL,list(Translate3data(Gc3,Q)))
- }
- Objname()
- Join=Objjoin();
- Objjoin(1)
- GL1=CL[[1]]
- for(J in Looprange(2,length(CL))){
- GL2=CL[[J]]
- Dt=Objrecs(GL1,GL2,"-")
- GL1=Dt[[2]]
- if(J==2){
- GL0=Dt[[1]]
- }
- }
- if(!Closed){
- Objpolygon(CL[[1]],"-")
- N=length(CL)
- Objpolygon(CL[[N]],"+")
- }else{
- Objrecs(GL1,GL0,"-")
- }
- Out=CL
- OBJJOIN<<- Join
-}
-
-Objsymb<- function(Symb,Thick,Face,Dir){
- for(J in Looprange(1,length(Symb))){
- Objcurve(Op(J,Symb),Thick,Face,Dir)
- }
-}
-
-Symb3data<- function(Moji,Size,Kaiten,NV,Pos){
- if(is.character(Moji)){
- #Tmp=Symbdata(Moji)
- # GY1=Tmp(2)
- }else{
- GY1=Moji
- }
- GY1=Scaledata(GY1,Size,Size)
- GY1=Rotatedata(GY1,Kaiten*pi/180)
- A=NV[1]; B=NV[2]; C=NV[3]
- if(A^2+B^2==0){
- E1=c(1,0,0)
- E2=c(0,1,0)
- }else{
- E1=c(B,-A,0)
- E2=c(-A*C,-B*C,A^2+B^2)
- Tmp=matrix(c(E1,E2,NV),3,3)
- D=det(Tmp)
- if(D<0){
- E1=-E1
- }
- E1=E1/Norm(E1)
- E2=E2/Norm(E2)
- }
- Em<- function(X,Y){
- c(E1[1]*X+E2[1]*Y,E1[2]*X+E2[2]*Y,E1[3]*X+E2[3]*Y)
- }
- GY1=Embed(GY1,Em)
- GY1=Translate3data(GY1,Pos)
- Flattenlist(GY1)
-}
-
-############## New Intersect 18.02.01 #############
-
-Intersectline<- function(p1,v1,p2,v2){
- Eps0=10^(-5)
- tmp=Dotprod(v1,v2)
- tmp1=c(tmp,Norm(v1)^2)
- tmp2=c(-Norm(v2)^2,-tmp)
- tmp3=c(Dotprod(p2-p1,v2),Dotprod(p2-p1,v1))
- d=Crossprod(tmp1,tmp2)
- tmp=abs(Crossprod(v1,v2))
- if(tmp>Eps0){
- dt=Crossprod(tmp3,tmp2)
- ds=Crossprod(tmp1,tmp3)
- t=dt/d
- s=ds/d
- pt=p1+v1*t
- out=list(pt,t,s)
- }else{
- tmp1=Crossprod(p2-p1,v1)/Norm(v1)
- out=list(abs(tmp1))
- }
- return(out)
-}
-
-Intersectseg<- function(...){
- varargin=list(...)
- Nargs=length(varargin)
- Eps0=10^(-4)
- Eps1=0.01
- seg1=varargin[[1]]
- seg2=varargin[[2]]
- if(Nargs>2){Eps1=varargin[[3]]}
- p1=Op(1,seg1); q1=Op(2,seg1)
- p2=Op(1,seg2); q2=Op(2,seg2)
- if((Norm(q1-p1)<Eps0)||(Norm(q2-p2)<Eps0)){
- out=list(-1)
- }else{
- tmp=Intersectline(p1,q1-p1,p2,q2-p2)
- if(length(Op(1,tmp))>1){
- pt=Op(1,tmp); t=Op(2,tmp); s=Op(3,tmp)
- if((t*(t-1)<Eps0)&&(s*(s-1)<Eps0)){
- out=list(0,pt,t,s)
- }else{
- t=min(max(t,0),1)
- s=min(max(s,0),1)
- tmp3=c(Norm(p1-p2),Norm(p1-q2),Norm(q1-p2),Norm(q1-q2)) #180317
- tmp1=c(Op(2,q2-p2),-Op(1,q2-p2))
- tmp=Intersectline(p1,tmp1,p2,q2-p2)
- if(length(Op(1,tmp))>1){
- if(Op(3,tmp)*(Op(3,tmp)-1)<Eps0){
- tmp3=c(tmp3,Norm(Op(1,tmp)-p1))
- }
- }
- tmp=Intersectline(q1,tmp1,p2,q2-p2)
- if(length(Op(1,tmp))>1){
- if(Op(3,tmp)*(Op(3,tmp)-1)<Eps0){
- tmp3=c(tmp3,Norm(Op(1,tmp)-q1))
- }
- }
- tmp1=c(Op(2,q1-p1),-Op(1,q1-p1))
- tmp=Intersectline(p2,tmp1,p1,q1-p1);
- if(length(Op(1,tmp))>1){
- if(Op(3,tmp)*(Op(3,tmp)-1)<Eps0){
- tmp3=c(tmp3,Norm(Op(1,tmp)-p2))
- }
- }
- tmp=Intersectline(q2,tmp1,p1,q1-p1); #180322
- if(length(Op(1,tmp))>1){
- if(Op(3,tmp)*(Op(3,tmp)-1)<Eps0){
- tmp3=c(tmp3,Norm(Op(1,tmp)-q2))
- }
- }
- out=list(min(tmp3),pt,t,s)
- }
- }else{
- dist=tmp[[1]]
- tmp1=q1-p1
- n=c(tmp1[2],-tmp1[1])/Norm(tmp1)
- pts=list()
- tmp=Intersectline(p1,n,p2,q2-p2)
- if((length(tmp)>1)&&(tmp[[3]]*(tmp[[3]]-1)<Eps0)){
- tmp1=(1-tmp[[3]])*p2+tmp[[3]]*q2
- pts=c(pts,list(list(tmp1,0,tmp[[3]])))
- }
- tmp=Intersectline(q1,n,p2,q2-p2)
- if((length(tmp)>1)&&(tmp[[3]]*(tmp[[3]]-1)<Eps0)){
- tmp1=(1-tmp[[3]])*p2+tmp[[3]]*q2
- pts=c(pts,list(list(tmp1,1,tmp[[3]])))
- }
- tmp=Intersectline(p2,n,p1,q1-p1)
- if((length(tmp)>1)&&(tmp[[3]]*(tmp[[3]]-1)<Eps0)){
- tmp1=(1-tmp[[3]])*p1+tmp[[3]]*q1
- pts=c(pts,list(list(tmp1,tmp[[3]],0)))
- }
- if((length(tmp)>1)&&(tmp[[3]]*(tmp[[3]]-1)<Eps0)){
- tmp1=(1-tmp[[3]])*p1+tmp[[3]]*q1
- pts=c(pts,list(list(tmp1,tmp[[3]],2)))
- }
- if(length(pts)==0){
- tmp1=min(Norm(p2-p1),Norm(q2-p1),Norm(p2-q1),Norm(q2-q1))
- out=list(tmp1)
- }else{
- if(dist>Eps1){
- out=list(dist)
- }else{
- tmp=c();
- for(j in 1:length(pts)){
- tmp=Appendrow(tmp,Op(1,pts[[j]]))
- }
- tmp1=sum(tmp[,1])/(length(pts))
- tmp2=sum(tmp[,2])/(length(pts))
- tmp3=c(tmp1,tmp2)
- tmp=Nearestpt(tmp3,seg1)
- tmp1=tmp[[2]]
- tmp=Nearestpt(tmp3,seg2)
- tmp2=tmp[[2]]
- out=list(dist,tmp3,tmp1,tmp2)
- }
- }
- }
- }
- return(out)
-}
-
-Osplineseg<- function(...){
- varargin=list(...)
- Nargs=length(varargin)
- Eps=10^(-2)
- Eps0=10^(-6)
- Ptlist=varargin[[1]]
- Numstr="Num=20"
- if(Nargs>1){
- Numstr=varargin[[2]]
- }
- p0=Op(1,Ptlist); p1=Op(2,Ptlist); p2=Op(3,Ptlist); p3=Op(4,Ptlist)
- tmp=Norm(p2-p0)*Norm(p3-p1)
- tmp=1+sqrt((1+Dotprod(p2-p0,p3-p1)/tmp)/2)
- cc=4*Norm(p2-p1)/3/(Norm(p2-p0)+Norm(p3-p1))/tmp
- pQ=p1+cc*(p2-p0)
- pR=p2+cc*(p1-p3)
- ctrL=list(c(pQ,pR))
- out=Bezier(list(p1,p2),ctrL,Numstr)
- return(out)
-}
-
-Intersectpartseg<- function(...){
- varargin=list(...)
- Nargs=length(varargin)
- crv1=varargin[[1]]
- crv2=varargin[[2]]
- ii=varargin[[3]]
- jj=varargin[[4]]
- Eps1=varargin[[5]]
- Eps2=varargin[[6]]
- Dist=10*Eps2
- if(Nargs>6){Dist=varargin[[7]]}
- Eps00=10^(-8)
- Eps0=10^(-4)
- out=list()
- seg1=Listplot(Op(ii,crv1),Op(ii+1,crv1))
- seg2=Listplot(Op(jj,crv2),Op(jj+1,crv2))
- tmp1=Op(2,seg1)-Op(1,seg1)
- tmp2=Op(2,seg2)-Op(1,seg2)
- snang=abs(Crossprod(tmp1,tmp2))/(Norm(tmp1)*Norm(tmp2))
- tmp=Intersectseg(seg1,seg2,Eps1)
- dst=Op(1,tmp)
- if(dst<Eps0){
- out=list(Op(2,tmp),ii+Op(3,tmp),jj+Op(4,tmp),dst,snang)
- }else{
- if(dst<Eps2){
- if((Length(crv1)==2)||(Norm(Op(2,seg1)-Op(1,seg1))>Dist-Eps0)){
- os1=seg1
- }else{
- p1=Op(1,seg1); p2=Op(2,seg1)
- if(ii==1){
- p3=Op(3,crv1)
- tmp=p2-p1
- tmp=(p1+p2)/2+c(Op(2,tmp),-Op(1,tmp))
- p0=Reflectdata(p3,c((p1+p2)/2,tmp))
- }else{
- if(ii==Length(crv1)-1){
- p0=Op(ii-1,crv1)
- tmp=p2-p1
- tmp=(p1+p2)/2+c(Op(2,tmp),-Op(1,tmp))
- p3=Reflectdata(p0,c((p1+p2)/2,tmp))
- }else{
- p0=Op(ii-1,crv1); p3=Op(ii+2,crv1)
- }
- }
- os1=Osplineseg(list(p0,p1,p2,p3))
- }
- if((Length(crv2)==2)||(Norm(Op(2,seg2)-Op(1,seg2))>Dist-Eps0)){
- os2=seg2
- }else{
- p1=Op(1,seg2); p2=Op(2,seg2)
- if(jj==1){
- p3=Op(3,crv2)
- tmp=p2-p1
- tmp=(p1+p2)/2+c(Op(2,tmp),-Op(1,tmp))
- p0=Reflectdata(p3,c((p1+p2)/2,tmp))
- }else{
- if(jj==Length(crv2)-1){
- p0=Op(jj-1,crv2)
- tmp=p2-p1
- tmp=(p1+p2)/2+c(Op(2,tmp),-Op(1,tmp))
- p3=Reflectdata(p0,c((p1+p2)/2,tmp))
- }else{
- p0=Op(jj-1,crv2); p3=Op(jj+2,crv2)
- }
- }
- os2=Osplineseg(list(p0,p1,p2,p3))
- }
- tmp2=list()
- for(kk in Looprange(1,Length(os1)-1)){
- for(ll in Looprange(1,Length(os2)-1)){
- seg1=Listplot(Op(kk,os1),Op(kk+1,os1))
- seg2=Listplot(Op(ll,os2),Op(ll+1,os2))
- tmp=Intersectseg(seg1,seg2,Eps1)
- if((Op(1,tmp)<Eps1)&&(length(tmp)>1)){ #18.02.05
- if(Op(1,tmp)<dst+Eps00){
- dst=Op(1,tmp)
- tmp3=list()
- for( nn in Looprange(1,length(tmp2))){
- if(Op(1,tmp2[[nn]])<dst){
- tmp3=c(tmp3,list(tmp2[[nn]]))
- }
- }
- tmp2=c(tmp3,list(list(dst,Op(2,tmp))))
- }
- }
- }
- }
- if(length(tmp2)>0){
- tmp1=c()
- for(nn in Looprange(1,length(tmp2))){
- tmp1=Appendrow(tmp1,Op(2,tmp2[[nn]]))
- }
- tmp=sum(tmp1[,1])/length(tmp2)
- tmp=c(tmp,sum(tmp1[,2])/length(tmp2))
- out=list(tmp)
- p1=Op(ii,crv1); p2=Op(ii+1,crv1)
- tmp=c(Op(2,p2-p1),-Op(1,p2-p1))
- tmp=Intersectline(Op(1,out),tmp,p1,p2-p1)
- tmp=min(max(Op(3,tmp),0),1)
- out=c(out,list(ii+tmp))
- p1=Op(jj,crv2); p2=Op(jj+1,crv2)
- tmp=c(Op(2,p2-p1),-Op(1,p2-p1))
- tmp=Intersectline(Op(1,out),tmp,p1,p2-p1)
- tmp=min(max(Op(3,tmp),0),1)
- out=c(out,list(jj+tmp,dst,snang))
- }
- }
- }
- return(out)
-}
-
-if(1==0){ #start of skip
-
-Collectnear<- function(ptdL,Eps2){
- gL=list(Op(1,ptdL))
- rL=ptdL[Looprange(2,length(ptdL))] #18.02.07
- for( ii in Looprange(1,length(ptdL)-1)){
- numL=c()
- for(jj in Looprange(1,length(rL))){
- tmp1=100
- for(kk in Looprange(1,length(gL))){
- tmp=Norm(Op(1,gL[[kk]])-Op(1,rL[[jj]]))
- if(tmp<tmp1){tmp1=tmp}
- }
- if(tmp1<Eps2){numL=c(numL,jj)}
- }
- if(length(numL)==0){
- break
- }else{
- gL=c(gL,rL[numL]) #18.02.05
- tmp=setdiff(1:(length(rL)),numL)
- rL=rL[tmp]
- }
- }
- return(list(gL,rL))
-}
-
-}# end of skip
-
-Collectsameseg<- function(ptdL){
- Eps00=10^(-8)
- if(length(ptdL)==0){
- gL=list();rL=list()
- }else{
- tmp1md=ptdL[1]
- rL=ptdL[Looprange(2,length(ptdL))]
- tmp1=tmp1md[[1]]
- kk=floor(Op(2,tmp1))
- if(Op(2,tmp1)<kk+Eps00){
- s1=kk-1-Eps00; e1=s1+2+2*Eps00
- }else{
- s1=kk-Eps00; e1=s1+1+2*Eps00
- }
- kk=floor(Op(3,tmp1))
- if(Op(3,tmp1)<kk+Eps00){
- s2=kk-1-Eps00; e2=s2+2+2*Eps00
- }else{
- s2=kk-Eps00; e2=s2+1+2*Eps00
- }
- diffL=c()
- for(ii in Looprange(1,length(rL))){
- tmp=rL[[ii]]
- tmp1=Op(2,tmp);tmp2=Op(3,tmp)
- if((tmp1>s1)&&(tmp1<e1)&&(tmp2>s2)&&(tmp2<e2)){
- tmp1md=c(tmp1md,list(tmp))
- }else{
- diffL=c(diffL,ii)
- }
- }
- tmp=c()
- for(ii in Looprange(1,length(tmp1md))){
- tmp=c(tmp,Op(4,tmp1md[[ii]]))
- }
- dst=min(tmp)
- gL=list()
- for(ii in Looprange(1,length(tmp1md))){
- tmp=tmp1md[[ii]]
- if(Op(4,tmp)<dst+Eps00){
- gL=c(gL,list(tmp))
- }
- }
- tmp1=rL
- rL=rL[diffL]
- }
- return(list(gL,rL))
-}
-
-Groupnearpt<- function(...){
- varargin=list(...)
- Nargs=length(varargin)
- Eps1=varargin[[Nargs]]
- plist=varargin[[1]]
- qlist=varargin[[2]]
- if(!is.list(qlist)){
- qlist=plist
- plist=list()
- }
- if(length(qlist)==0){
- return(plist)
- }
- pt=qlist[[1]]
- qlist=qlist[Looprange(2,length(qlist))]
- if(length(plist)==0){
- plist=list(matrix(pt,nrow=1))
- }else{
- flg=0
- for(ii in Looprange(1,length(plist))){
- gL=plist[[ii]]
- for(jj in Looprange(1,Length(gL))){
- if(Norm(Op(jj,gL)-pt)<Eps1){
- flg=1
- break
- }
- }
- if(flg==1){
- plist[[ii]]=Appendrow(gL,pt)
- break
- }
- }
- if(flg==0){
- plist=c(plist,list(matrix(pt,nrow=1)))
- }
- }
- out=Groupnearpt(plist,qlist,Eps1)
- return(out)
-}
-
-IntersectcurvesPp<- function(...){
- varargin=list(...)
- Nargs=length(varargin)
- Eps0=10^(-4)
- Eps1=0.01
-# Eps2=0.05
- Eps2=0.1
- Dist=10*Eps2
- if(Nargs>2){Eps1=varargin[[3]]}
- if(Nargs>3){Eps2=varargin[[4]]}
- if(Nargs>4){Dist=varargin[[5]]}
- tmp1=varargin[[1]]
- crv1=matrix(Op(1,tmp1),nrow=1)
- for(ii in Looprange(2,Length(tmp1))){
- tmp=Op(Length(crv1),crv1)
- if(Norm(tmp-Op(ii,tmp1))>Eps0){
- crv1=Appendrow(crv1,Op(ii,tmp1))
- }
- }
- tmp2=varargin[[2]]
- crv2=matrix(Op(1,tmp2),nrow=1)
- for(ii in Looprange(2,Length(tmp2))){
- tmp=Op(Length(crv2),crv2)
- if(Norm(tmp-Op(ii,tmp2))>Eps0){
- crv2=Appendrow(crv2,Op(ii,tmp2))
- }
- }
- if(Length(crv1)!=Length(crv2)){
- self=0
- }else{
- self=1
- for(ii in Looprange(1,Length(crv1))){
- if(Norm(Op(ii,crv1)-Op(ii,crv2))>0){
- self=0
- break
- }
- }
- }
- out=list()
- for(ii in Looprange(1,Length(crv1)-1)){
- if(self==0){
- loopL=Looprange(1,Length(crv2)-1)
- }else{
- loopL=Looprange(ii+2,Length(crv2)-1)
- }
- for(jj in loopL){
- tmp=Intersectpartseg(crv1,crv2,ii,jj,Eps1,Eps2,Dist)
- if(length(tmp)>1){ #18.02.05
- if(length(out)==0){
- out=list(tmp)
- }else{
- tmp1=Op(length(out),out)
- if(Norm(Op(1,tmp1)-Op(1,tmp))>Eps1){
- out=c(out,list(tmp))
- }
- }
- if(self==1){
- tmp=list(Op(1,tmp),Op(3,tmp),Op(2,tmp),Op(4,tmp),Op(5,tmp))
- out=c(out,list(tmp))
- }
- }
- }
- }
- tmp2=out
- out=list()
- tmp1=tmp2
- for(ii in Looprange(1,length(tmp2))){
- tmp=Collectsameseg(tmp1)
- out=c(out,list(Op(1,tmp)))
- if(length(Op(2,tmp))==0){
- break
- }else{
- tmp1=Op(2,tmp)
- }
- }
- for(ii in Looprange(1,length(out))){
- tmp1=Op(ii,out)
- if(length(tmp1)==1){
- out[[ii]]=Op(1,tmp1)
- }else{
- tmp=c()
- for(jj in Looprange(1,length(tmp1))){
- tmp=c(tmp,Op(4,tmp1[[jj]]))
- }
- dst=min(tmp)
- tmp=c()
- for(jj in Looprange(1,length(tmp1))){
- if(Op(4,tmp1[[jj]])<dst+Eps0){
- tmp=c(tmp,Op(1,tmp1[[jj]]))
- }
- }
- tmp=matrix(tmp,ncol=2,byrow=TRUE)
- tmp=c(sum(tmp[,1]),sum(tmp[,2]))/Length(tmp)
- tmp2=list(tmp)
- tmp=Nearestpt(Op(1,tmp2),crv1)
- tmp2=c(tmp2,list(Op(2,tmp)))
- tmp=Nearestpt(Op(1,tmp2),crv2)
- tmp2=c(tmp2,list(Op(2,tmp)))
- tmp2=c(tmp2,list(list(dst,Op(5,tmp1[[1]]))))
- out[[ii]]=tmp2
- }
- }
- return(out)
-}
-
-Intersectcurves<- function(...){
- dtL=IntersectcurvesPp(...)
- out=list()
- for(jj in Looprange(1,length(dtL))){
- out=c(out,list(Op(1,dtL[[jj]])))
- }
- return(out)
-}
-
-############## end of New Intersect #############
-
-############## New Enclosing2 #############
-
-Enclosing2<- function(...){
- varargin=list(...)
- Nargs=length(varargin)
- plist=varargin[[1]]
- Eps0=10^(-5)
- Eps1=0.01
- Eps2=0.1
- Start=c()
- flg=0
- for(ii in Looprange(2,Nargs)){
- tmp=varargin[[ii]]
- if(length(tmp)>1){
-# Start=tmp
- }else{
- if(flg==0){Eps1=tmp}
- if(flg==1){Eps2=tmp}
- flg=flg+1
- }
- }
- flg=0
- AnsL=c()
- if(length(plist)==1){
- Fdata=plist[[1]]
- tmp1=Op(1,Fdata)
- tmp2=Op(Length(Fdata),Fdata)
- if(Norm(tmp1-tmp2)<Eps0){
- AnsL=Fdata
- }else{
- AnsL=Appendrow(Fdata,tmp1)
- }
- flg=1
- }
- if(flg==0){
- Fdata=Op(1,plist)
- Gdata=Op(length(plist),plist)
- KL=IntersectcurvesPp(Fdata,Gdata)
- if(length(KL)==0){
- tmp1=Op(Length(Gdata),Gdata)
- tmp2=Op(1,Fdata)
- tmp=Listplot(tmp1,tmp2)
- plist=c(plist,list(tmp))
- Start=tmp2
- tst=1
-# flg=1
- }else{
- if(length(KL)==1){
- tmp=Op(1,KL)
- tst=Op(2,tmp)
- Start=crv(tst,Fdata)
- }
- if(length(KL)>1){
- KL=Quicksort(KL,2)
- if(length(Start)==0){
- tmp=Op(1,KL)
- tst=Op(2,tmp)
- Start=Pointoncurve(tst,Fdata)
- }else{
- tmp=c()
- for(ii in Looprange(1,length(KL))){
- tmp=c(tmp,Norm(Op(1,KL[[ii]]-Start)))
- }
- tmp=min(tmp)
- tmp1=list()
- for(ii in Looprange(1,length(KL))){
- tmp2=Op(1,KL[[ii]])
- if(Norm(tmp2-Start)==tmp){
- tmp1=c(tmp1,list(tmp2))
- }
- }
- tmp=Op(1,tmp1)
- tst=Op(2,tmp)
- Start=Pointoncurve(tst,Fdata)
- }
- }
- }
- }
- if(flg==0){
- t1=tst
- for(nn in Looprange(1,length(plist))){
- Fdata=Op(nn,plist)
- if(nn==length(plist)){
- nxtno=1
- }else{
- nxtno=nn+1
- }
- Gdata=Op(nxtno,plist)
- KL=IntersectcurvesPp(Fdata,Gdata)
- if(length(KL)==0){
- tmp=matrix(Op(Length(Fdata),Fdata),nrow=1) #18.02.02from
- Gdata=Appendrow(tmp,Gdata)
- plist[[nxtno]]=Gdata
- t2=Length(Fdata)
- ss=1 #18.02.02until
- }else{
- tmp=Op(1,KL)
- t2=Op(2,tmp)
- ss=Op(3,tmp)
- if(abs(t2-t1)<Eps0){
- if(length(KL)>1){
- tmp=Op(2,KL)
- t2=Op(2,tmp)
- ss=Op(3,tmp)
- }else{
-# println(text(nn)+" and "+text(nn+1)+" not intersect");
-# flg=1
- }
- }
- }
- if(flg==0){
- tmp=Partcrv(t1,t2,Fdata)
- if(nn==1){
- AnsL=tmp
- }else{
- tmp=tmp[2:Length(tmp),]
- AnsL=Appendrow(AnsL,tmp)
- }
- t1=ss
- }
- }
- }
- return(AnsL)
-}
-
-############## end of Enclosing2 #############
-
-############## start of surface drawing #############
-
-Fullformfunc<- function(FdL){
- ADDPOINT<<- list() #18.02.19
- Out=list(Op(1,FdL))
- N=length(FdL)
- for(Jrg in Looprange(1,N)){
- Tmp=grep("c(",Op(Jrg,FdL),fixed=TRUE)
- if(length(Tmp)>0){
- break
- }
- }
- Urg=Stripblanks(Op(Jrg,FdL))
- Tmp=strsplit(Urg,"=",fixed=TRUE)
- UNAME<<- Tmp[[1]][1]
- URNG<<- eval(parse(text=Tmp[[1]][2]))
- Urg=paste(UNAME,"=c(",sprintf("%6.7f",URNG[1]),",",
- sprintf("%6.7f",URNG[2]),")",sep="")
- Vrg=Stripblanks(Op(Jrg+1,FdL))
- Tmp=strsplit(Vrg,"=",fixed=TRUE)
- VNAME<<- Tmp[[1]][1]
- VRNG<<- eval(parse(text=Tmp[[1]][2]))
- Vrg=paste(VNAME,"=c(",sprintf("%6.7f",VRNG[1]),",",
- sprintf("%6.7f",VRNG[2]),")",sep="")
- if(Jrg==2){
- Xf=UNAME
- Yf=VNAME
- Tmp=Stripblanks(Op(1,FdL))
- Tmp=strsplit(Tmp,"=",fixed=TRUE)
- Zf=Tmp[[1]][2]
- Tmp=list(UNAME,VNAME,Zf,Urg,Vrg)
- Out=c(Out,Tmp)
- }else if(Jrg==4){
- Tmp=Stripblanks(Op(1,FdL))
- Tmp=strsplit(Tmp,"=",fixed=TRUE)
- Zf=Tmp[[1]][2]
- Tmp=Stripblanks(Op(2,FdL))
- Tmp=strsplit(Tmp,"=",fixed=TRUE)
- Xname=Tmp[[1]][1]
- Xf=Tmp[[1]][2]
- Tmp=Stripblanks(Op(3,FdL))
- Tmp=strsplit(Tmp,"=",fixed=TRUE)
- Yname=Tmp[[1]][1]
- Yf=Tmp[[1]][2]
- Tmp=gsub(Xname,paste("(",Xf,")",sep=""),Zf,fixed=TRUE)
- Zf=gsub(Yname,paste("(",Yf,")",sep=""),Tmp,fixed=TRUE)
- Tmp=list(Xf,Yf,Zf,Urg,Vrg)
- Out=c(Out,Tmp)
- }else{
- Tmp=Stripblanks(Op(2,FdL))
- Tmp=strsplit(Tmp,"=",fixed=TRUE)
- Xf=Tmp[[1]][2]
- Tmp=Stripblanks(Op(3,FdL))
- Tmp=strsplit(Tmp,"=",fixed=TRUE)
- Yf=Tmp[[1]][2]
- Tmp=Stripblanks(Op(4,FdL))
- Tmp=strsplit(Tmp,"=",fixed=TRUE)
- Zf=Tmp[[1]][2]
- Tmp=list(Xf,Yf,Zf,Urg,Vrg)
- Out=c(Out,Tmp)
- }
- tmp=paste("Xfunc<<- function(",UNAME,",",VNAME,"){",Xf,"}",sep='')
- eval(parse(text=tmp))
- tmp=paste("Yfunc<<- function(",UNAME,",",VNAME,"){",Yf,"}",sep='')
- eval(parse(text=tmp))
- tmp=paste("Zfunc<<- function(",UNAME,",",VNAME,"){",Zf,"}",sep='')
- eval(parse(text=tmp))
- tmp=paste("XYZfunc<<- function(",UNAME,",",VNAME,"){",sep='')
- tmp=paste(tmp,"c(",Xf,",",Yf,",",Zf,")}",sep='')
- eval(parse(text=tmp))
- XYZstr<<- c(Xf,Yf,Zf)
- DRWS<<- "enws"
- BdyL=list()
- for(I in Looprange(Jrg+2,length(FdL))){
- Tmp=Op(I,FdL)
- if(is.character(Tmp)){
- if(nchar(Tmp)==0){
- Tmp=" "
- }
- DRWS<<- list(Tmp)
- }
- if((is.numeric(Tmp))&&(Length(Tmp)>1)){
- BdyL=list(Tmp)
- }
- }
- BDYL<<- BdyL
- Tmp=c(DRWS,BDYL)
- Out=c(Out,Tmp)
- return(Out)
-}
-
-Addpoints<- function(ptlist){
- ADDPOINT<<- ptlist
-}
-
-Makexybdy<- function(Np){
- Eps0=10^(-4)
- Xystr=XYZstr[1:2]
- Umin=URNG[1]; Umax=URNG[2]
- Vmin=VRNG[1]; Vmax=VRNG[2]
- Cflg=0
- EhL=list()
- Tmp=grep("e",DRWS,fixed=TRUE)
- if(length(Tmp)>0){
- Tmp1="c("
- for(jj in 1:2){
- Tmp=gsub(UNAME,paste("(",sprintf("%7.7f",Umax),")",sep=""),Xystr[jj])
- Tmp1=paste(Tmp1,Tmp,",",sep="")
- }
- Tmp=substring(Tmp1,1,Length(Tmp1)-1)
- Tmp1=paste(Tmp,")",sep="")
- Tmp=sprintf("%6.6f",VRNG)
- Tmp2=paste(VNAME,"=c(",Tmp[1],",",Tmp[2],")",sep='')
- Tmp3=paste('N=',as.character(Np[2]))
- Tmp=Paramplot(Tmp1,Tmp2,Tmp3)
- if(Norm(Op(1,Tmp)-Op(Length(Tmp),Tmp))<Eps0){
- Cflg=1
- Tmp[Length(Tmp),]=Tmp[1,]
- }
- EhL=c(EhL,list(Tmp))
- }
- Tmp=grep("n",DRWS,fixed=TRUE)
- if(length(Tmp)>0){
- Tmp1="c("
- for(jj in 1:2){
- Tmp=gsub(VNAME,paste("(",sprintf("%7.7f",Vmax),")",sep=""),Xystr[jj])
- Tmp1=paste(Tmp1,Tmp,",",sep="")
- }
- Tmp=substring(Tmp1,1,Length(Tmp1)-1)
- Tmp1=paste(Tmp,")",sep="")
- Tmp=sprintf("%6.6f",URNG)
- Tmp2=paste(UNAME,"=c(",Tmp[1],",",Tmp[2],")",sep='')
- Tmp3=paste('N=',as.character(Np[1]))
- Tmp=Paramplot(Tmp1,Tmp2,Tmp3)
- if(Cflg>0){
- Tmp1=Op(length(EhL),EhL)
- Tmp=Joincrvs(Tmp1,Tmp)
- if(Norm(Op(1,Tmp)-Op(Length(Tmp),Tmp))<Eps0){
- Cflg=1
- Tmp[Length(Tmp),]=Tmp[1,]
- }
- Tmp1=EhL[Looprange(1,length(EhL)-1)]
- EhL=c(Tmp1,Tmp)
- }else{
- Cflg=0
- if(Norm(Op(1,Tmp)-Op(Length(Tmp),Tmp))<Eps0){
- Cflg=1
- Tmp[Length(Tmp),]=Tmp[1,]
- }
- EhL=c(EhL,list(Tmp))
- }
- }
- Tmp=grep("w",DRWS,fixed=TRUE)
- if(length(Tmp)>0){
- Tmp1="c("
- for(jj in 1:2){
- Tmp=gsub(UNAME,paste("(",sprintf("%7.7f",Umin),")",sep=""),Xystr[jj])
- Tmp1=paste(Tmp1,Tmp,",",sep="")
- }
- Tmp=substring(Tmp1,1,Length(Tmp1)-1)
- Tmp1=paste(Tmp,")",sep="")
- Tmp=sprintf("%6.6f",VRNG)
- Tmp2=paste(VNAME,"=c(",Tmp[1],",",Tmp[2],")",sep='')
- Tmp3=paste('N=',as.character(Np[2]))
- Tmp=Paramplot(Tmp1,Tmp2,Tmp3)
- if(Cflg>0){
- Tmp1=Op(length(EhL),EhL)
- Tmp=Joincrvs(Tmp1,Tmp)
- if(Norm(Op(1,Tmp)-Op(Length(Tmp),Tmp))<Eps0){
- Cflg=1
- Tmp[Length(Tmp),]=Tmp[1,]
- }
- Tmp1=EhL[Looprange(1,length(EhL)-1)]
- EhL=c(Tmp1,list(Tmp))
- }else{
- Cflg=0
- if(Norm(Op(1,Tmp)-Op(Length(Tmp),Tmp))<Eps0){
- Cflg=1
- Tmp[Length(Tmp),]=Tmp[1,]
- }
- EhL=c(EhL,list(Tmp))
- }
- }
- Tmp=grep("s",DRWS,fixed=TRUE)
- if(length(Tmp)>0){
- Tmp1="c("
- for(jj in 1:2){
- Tmp=gsub(VNAME,paste("(",sprintf("%7.7f",Vmin),")",sep=""),Xystr[jj])
- Tmp1=paste(Tmp1,Tmp,",",sep="")
- }
- Tmp=substring(Tmp1,1,Length(Tmp1)-1)
- Tmp1=paste(Tmp,")",sep="")
- Tmp=sprintf("%6.6f",URNG)
- Tmp2=paste(UNAME,"=c(",Tmp[1],",",Tmp[2],")",sep='')
- Tmp3=paste('N=',as.character(Np[1]))
- Tmp=Paramplot(Tmp1,Tmp2,Tmp3)
- if(Cflg>0){
- Tmp1=Op(length(EhL),EhL)
- Tmp=Joincrvs(Tmp1,Tmp)
- if(Norm(Op(1,Tmp)-Op(Length(Tmp),Tmp))<Eps0){
- Cflg=1
- Tmp1=EhL[Looprange(1,length(EhL)-1)]
- }
- Tmp1=EhL[Looprange(1,length(EhL)-1)]
- EhL=c(Tmp1,list(Tmp))
- }else{
- Cflg=0
- if(Norm(Op(1,Tmp)-Op(Length(Tmp),Tmp))<Eps0){
- Cflg=1
- Tmp[Length(Tmp),]=Tmp[1,]
- }
- EhL=c(EhL,list(Tmp))
- }
- }
- return(EhL)
-}
-
-Partitionseg<- function(...){
- varargin=list(...)
- Nargs=length(varargin)
- Fig=varargin[[1]]
- GL=varargin[[2]]; N=3
- if(!is.list(GL)){GL=list(GL)} #18.02.21
- Eps0=10^(-4)
- Eps1=0.01
- if(Nargs>2){
- Eps1=varargin[[3]]
- }
- Eps2=0.1
- if(Nargs>3){
- Eps2=varargin[[4]]
- }
- if(Nargs>4){
- Ns=varargin[[5]]
- if(Ns>0){#18.02.21from
- Other=Op(Ns,OTHERPARTITION)
- }else{
- Other=c()
- }#18.02.21until
- }else{
- Ns=1
- Other=c()
- }
- Npt=Length(Fig)
- ParL=c(1,Npt,Other)
- for(N in Looprange(max(1,Ns),Length(GL))){ #18.02.21
- G=Op(N,GL)
- KouL=IntersectcurvesPp(Fig,G,Eps1,Eps2)
- Tmp1=c(); Tmp2=c()
- for(jj in Looprange(1,length(KouL))){
- tmp=Op(2,KouL[[jj]])
- if((tmp>1+Eps0)&&(tmp<Npt-Eps0)){
- Tmp1=c(Tmp1,tmp)
- }
- tmp=Op(3,KouL[[jj]])
- if((tmp>1+Eps0)&&(tmp<Length(G)-Eps0)){
- Tmp2=c(Tmp2,tmp)
- }
- }
- ParL=c(ParL,Tmp1)
- if((Ns>0)&&(N>Ns)&&(length(Tmp2)>0)){ #18.02.21
- tmp=OTHERPARTITION[[N]]
- OTHERPARTITION[[N]]<<- c(tmp,Tmp2)
- }
- }
- tmp1=sort(ParL)
- ParL=c()
- tmp2=-1
- for(jj in Looprange(1,length(tmp1))){
- tmp=Op(jj,tmp1)
- if(abs(tmp-tmp2)>Eps1){
- ParL=c(ParL,tmp)
- tmp2=tmp
- }
- }
- return(ParL)
-}
-
-Evlptablepara<- function(...){
- varargin=list(...)
- Nargs=length(varargin)
- Tmp=varargin[[1]]
- Mdv=50
- Ndv=50
- if(Nargs>=2){
- Tmp=varargin[[2]]
- if(is.list(Tmp)){Tmp=Op(1,Tmp)}
- if(length(Tmp)>1){
- Mdv=Tmp[1]
- Ndv=Tmp[2]
- }else{
- Mdv=Tmp
- if(Nargs==2){
- Ndv=Mdv
- }else{
- Tmp1=varargin[[3]]
- if((is.numeric(Tmp1)) && (length(Tmp1)==1)){
- Ndv=Tmp1
- }else{
- Ndv=Mdv
- }
- }
- }
- }
- U1=URNG[1]; U2=URNG[2]
- V1=VRNG[1]; V2=VRNG[2]
- Du=(U2-U1)/(Mdv)
- Dv=(V2-V1)/(Ndv)
- sph=sprintf("%7.7f",sin(PHI))
- cph=sprintf("%7.7f",cos(PHI))
- sth=sprintf("%7.7f",sin(THETA))
- cth=sprintf("%7.7f",cos(THETA))
- xstr=paste("-(",XYZstr[1],")*(",sph,")+(",XYZstr[2],")*(",cph,")",sep="")
- tmp=paste("-(",XYZstr[1],")*(",cph,")*(",cth,")-(",XYZstr[2],")*(",sph,")*(",cth,")",sep="")
- ystr=paste(tmp,"+(",XYZstr[3],")*(",sth,")",sep="")
- dxu=Diff(xstr,UNAME)
- dxv=Diff(xstr,VNAME)
- dyu=Diff(ystr,UNAME)
- dyv=Diff(ystr,VNAME)
- I=1
- Zval=c()
- for(jj in 1:(Ndv+1)){
- v=V1+(jj-1)*Dv
- ZuL=c()
- for(ii in 1:(Mdv+1)){
- u=U1+(ii-1)*Du
- tmp1=paste(UNAME,"=(",sprintf("%7.7f",u),")",sep="")
- tmp2=paste(VNAME,"=(",sprintf("%7.7f",v),")",sep="")
- Dxu=Funvalue(dxu,tmp1,tmp2)
- Dxv=Funvalue(dxv,tmp1,tmp2)
- Dyu=Funvalue(dyu,tmp1,tmp2)
- Dyv=Funvalue(dyv,tmp1,tmp2)
- Tmp=Dxu*Dyv-Dxv*Dyu
- ZuL=c(ZuL,Tmp)
- }
- Zval=Appendrow(Zval,ZuL)
- }
- Yval=c()
- for(jj in 1:(Ndv+1)){
- v=V1+(jj-1)*Dv
- Yval=c(Yval,v)
- }
- Xval=c()
- for(ii in 1:(Mdv+1)){
- u=U1+(ii-1)*Du
- Xval=c(Xval,u)
- }
- return(list(Zval,Xval,Yval))
-}
-
-Evlpfun<- function(u,v){
- tmp1=paste(UNAME,"=(",sprintf("%7.7f",u),")",sep="")
- tmp2=paste(VNAME,"=(",sprintf("%7.7f",v),")",sep="")
- Dxu=Funvalue(dxu,tmp1,tmp2)
- Dxv=Funvalue(dxv,tmp1,tmp2)
- Dyu=Funvalue(dyu,tmp1,tmp2)
- Dyv=Funvalue(dyv,tmp1,tmp2)
- Tmp=Dxu*Dyv-Dxv*Dyu
- return(Tmp)
-}
-
-Envelopedata<- function(...){
- varargin=list(...)
- Eps0=10^(-4)
- Nargs=length(varargin)
- Fd=varargin[[1]]
- Fullformfunc(Fd)
- Mdv=50
- Ndv=50
- if(Nargs>=2){
- Tmp=varargin[[2]]
- if(is.list(Tmp)){Tmp=Op(1,Tmp)}
- if(length(Tmp)>1){
- Mdv=Tmp[1]
- Ndv=Tmp[2]
- }else{
- Mdv=Tmp
- if(Nargs==2){
- Ndv=Mdv
- }else{
- Tmp1=varargin[[3]]
- if((is.numeric(Tmp1)) && (length(Tmp1)==1)){
- Ndv=Tmp1
- }else{
- Ndv=Mdv
- }
- }
- }
- }
- sph=sprintf("%7.7f",sin(PHI))
- cph=sprintf("%7.7f",cos(PHI))
- sth=sprintf("%7.7f",sin(THETA))
- cth=sprintf("%7.7f",cos(THETA))
- xstr=paste("-(",XYZstr[1],")*(",sph,")+(",XYZstr[2],")*(",cph,")",sep="")
- tmp=paste("-(",XYZstr[1],")*(",cph,")*(",cth,")-(",XYZstr[2],")*(",sph,")*(",cth,")",sep="")
- ystr=paste(tmp,"+(",XYZstr[3],")*(",sth,")",sep="")
- dxu<<- Diff(xstr,UNAME)
- dxv<<- Diff(xstr,VNAME)
- dyu<<- Diff(ystr,UNAME)
- dyv<<- Diff(ystr,VNAME)
- U1=URNG[1]; U2=URNG[2]
- V1=VRNG[1]; V2=VRNG[2]
- Du=(U2-U1)/Mdv
- Dv=(V2-V1)/Ndv
- Out=c()
- for(J in 1:(Ndv)){
- Vval1=VRNG[1]+(J-1)*Dv
- Vval2=VRNG[1]+J*Dv
- Uval1=URNG[1]
- Eval11=Evlpfun(Uval1,Vval1)
- Eval12=Evlpfun(Uval1,Vval2)
- for(I in 1:(Mdv)){
-# Uval1=URNG[1]+(I-1)*Du
- Uval2=URNG[1]+I*Du
-# Eval11=Evlpfun(Uval1,Vval1)
-# Eval12=Evlpfun(Uval1,Vval2)
- Eval21=Evlpfun(Uval2,Vval1)
- Eval22=Evlpfun(Uval2,Vval2)
- a1=Uval1;b1=Vval1;c1=Eval11
- a2=Uval2;b2=Vval1;c2=Eval21
- a3=Uval2;b3=Vval2;c3=Eval22
- a4=Uval1;b4=Vval2;c4=Eval12
- PL=matrix(c(a1,b1,a2,b2,a3,b3,a4,b4,a1,b1),ncol=2,byrow=TRUE)
- VL=c(c1,c2,c3,c4,c1)
- QL=c()
- for(K in 1:4){
- if(abs(VL[K])<=Eps0){
- QL=Appendrow(QL,PL[K,])
- }else if(VL[K]>Eps0){
- if(VL[K+1]< -Eps0){
- Tmp=1/(VL[K]-VL[K+1])*(-VL[K+1]*PL[K,]+VL[K]*PL[K+1,])
- QL=Appendrow(QL,Tmp)
- }
- }else{
- if(VL[K+1]>Eps0){
- Tmp=1/(-VL[K]+VL[K+1])*(VL[K+1]*PL[K,]-VL[K]*PL[K+1,])
- QL=Appendrow(QL,Tmp)
- }
- }
- }
- Uval1=Uval2
- Eval11=Eval21
- Eval12=Eval22
- if(Length(QL)==2){
- Out=Appendrow(Out,c(Inf,Inf))
- Out=Appendrow(Out,QL)
- }
- }
- }
- Out=Out[2:nrow(Out),]
- if(Length(Out)>0){
- Out=Connectseg(Out)
- }else{
- Out=c()
- }
- return(Out)
-}
-
-Dropnumlistcrv<- function(QdL,Eps1){
- Eps0=10^(-4)
- if(!is.list(QdL)){
- PdL=list(QdL)
- }else{
- PdL=QdL
- }
- OutL=list()
- for(I in Looprange(1,length(PdL))){
- Pd=Op(I,PdL)
- PtL=c(1)
- P=Op(1,Pd)
- for(K in Looprange(2,Length(Pd)-1)){
- if(Norm(P-Op(K,Pd))>Eps1){
- PtL=c(PtL,K)
- P=Op(K,Pd)
- }
- }
- K=Length(Pd)
- if(Norm(P-Op(K,Pd))>Eps1){ #18.02.12 eps
- PtL=c(PtL,K)
- }
-# if(length(PtL)==1){ #180306
-# }
- OutL=c(OutL,list(PtL))
- }
- return(OutL)
-}
-
-Cuspsplitpara<- function(...){
- varargin=list(...)
- Nargs=length(varargin);
- Gdxy=varargin[[1]]
- if(!is.list(Gdxy)){
- Gdxy=list(Gdxy)
- }
- Eps0=10^(-4)
- Eps1=0.01
- if(Nargs>2){Eps1=varargin[[2]]}
- N=2
- CUSPSPLITPT<<- list()
- OutkL=list()
- for(Ng in Looprange(1,length(Gdxy))){
- PtxyL=Op(Ng,Gdxy)
- PtkL=c()
- PthL=c()
- for(I in Looprange(1,Length(PtxyL))){
- Tmp=Op(I,PtxyL)
- Tmp1=paste(UNAME,'=',sprintf("%7.7f",Tmp[1]),sep="")
- eval(parse(text=Tmp1))
- Tmp1=paste(VNAME,'=',sprintf("%7.7f",Tmp[2]),sep="")
- eval(parse(text=Tmp1))
- Tmp2=c(eval(parse(text=XYZstr[1])))
- Tmp2=c(Tmp2,eval(parse(text=XYZstr[2])))
- Tmp2=c(Tmp2,eval(parse(text=XYZstr[3])))
- Tmp3=Parapt(Tmp2)
- if(I==1){
- PtkL=matrix(Tmp2,nrow=1)
- PthL=matrix(Tmp3,nrow=1)
- }else{
- Tmp4=Op(Length(PthL),PthL)
- if(Norm(Tmp3-Tmp4)>Eps0){
- PtkL=Appendrow(PtkL,Tmp2)
- PthL=Appendrow(PthL,Tmp3)
- }
- }
- }
- if(Length(PthL)==0){
- return(list())
- }
- Ps=Op(1,PthL); Pe=Op(Length(PthL),PthL)
- Cflg=0
- if(Norm(Ps-Pe)<Eps1){Cflg=1}
- CuspL=c()
- Cva=cos(10*pi/180)
- for(I in Looprange(1,Length(PthL)-1)){
- if(Length(PthL)==2){break}
- Tmp=Op(I,PthL)
- if(I==1){
- if(Cflg==0){next}
- Tmp1=Op(Length(PthL)-1,PthL)
- }else{
- Tmp1=Op(I-1,PthL)
- }
- Tmp2=Op(I+1,PthL)
- V1=Tmp-Tmp1
- V2=Tmp2-Tmp
- Tmp3=Dotprod(V1,V2)/(Norm(V1)*Norm(V2))
- Cuspflg=0
- if(Tmp3<Cva){
- P=Op(I,PthL)
- Kaku=acos(Tmp3)*180/pi
- if(Crossprod(V1,V2)<0){
- Kaku=-Kaku
- }
- Cuspflg=0
- for(J in Looprange(I+1,Length(PthL)-1)){
- if(abs(Kaku)>90){
- Cuspflg=1
- break
- }
- Q=Op(J,PthL)
- if(Norm(P-Q)>Eps1){
- break
- }
- V1=Q-Op(J-1,PthL)
- V2=Op(J+1,PthL)-Q
- Tmp3=Dotprod(V1,V2)/(norm(V1)*norm(V2))
- Tmp=acos(Tmp3)*180/pi
- if(Crossprod(V1,V2)<0){
- Tmp=-Tmp
- }
- Kaku=Kaku+Tmp
- }
- if(Cuspflg==1){
- Tmp=trunc((I+J)*0.5)
- I=J
- if(length(CuspL)==0){
- CuspL=c(Tmp)
- }else{
- CuspL=c(CuspL,Tmp)
- }
- }
- }
- }
- if(Cflg==0){
- CuspL=c(1,CuspL,Length(PthL))
- }else if(length(CuspL)==0){
- CuspL=c(1,Length(PthL))
- }else if(Op(1,CuspL)==1){
- CuspL=c(CuspL,Length(PthL))
- }else{
- Tmp=Op(1,CuspL)
- Tmp1=PthL[Tmp:Length(PthL),]
- Tmp2=PthL[2:Tmp,]
- PthL=Appendrow(Tmp1,Tmp2)
- Tmp1=PtkL[Tmp:Length(PthL),]
- Tmp2=PtkL[2:Tmp,]
- PtkL=Appendrow(Tmp1,Tmp2)
- CuspL=CuspL-Tmp+1
- CuspL=c(CuspL,Length(PthL))
- }
- if(length(CuspL)==2){
- Tmp4=PthL[Length(PthL),]
- if(Length(PtkL)>=2){
- CUSPSPLITPT<<- c(CUSPSPLITPT,list(Tmp4))
- OutkL=c(OutkL,list(PtkL))
- }
- next
- }
- Outk=list()
- Is=1
- for(I in Looprange(1,length(CuspL)-1)){
- Tmp1=CuspL[Is]; Tmp2=CuspL[I+1]
- Tmp3=Op(Tmp1,PthL); Tmp4=Op(Tmp2,PthL)
- if(Norm(Tmp3-Tmp4)>Eps1){
- Tmpk=PtkL[Tmp1:Tmp2,]
- Outk=c(Outk,list(Tmpk))
- CUSPSPLITPT<<- c(CUSPSPLITPT,list(Tmp4))
- Is=I+1
- }
- }
- OutkL=c(OutkL,Outk)
- }
- Tmp1=Dropnumlistcrv(Projpara(OutkL),Eps1*0.5)
- Tmp=list()
- for(I in Looprange(1,length(OutkL))){
- Tmp2=Op(I,OutkL)
- Tmp3=Op(I,Tmp1)
- Tmp4=c()
- for(J in Looprange(1,Length(Tmp3))){
- Tmp5=Op(Tmp3[J],Tmp2)
- Tmp4=Appendrow(Tmp4,Tmp5)
- }
- if(Length(Tmp4)>0){
- Tmp=c(Tmp,list(Tmp4))
- }
- }
- return(Tmp)
-}
-
-PthiddenQ<- function(PtA,Vec,Uveq,Np,Eps1,Eps2){
- Eps0=10^(-4)
- Out=c()
- Vec=1/Norm(Vec)*Vec
- if(length(Np)==1){
- Np=c(Np,Np)
- }
- Tmp=paste("Eqfun<- function(U,V){",sep='')
- if((abs(Vec[2])>Eps0) || (abs(Vec[1])>Eps0)){
- Vstr=sprintf("%6.6f",Vec)
- Pstr=sprintf("%6.6f",PtA)
- Tmp=paste(Tmp,"(",Vstr[2],")*(Xfunc(U,V)-(",Pstr[1],"))",sep='')
- Tmp=paste(Tmp,"-(",Vstr[1],")*(Yfunc(U,V)-(",Pstr[2],"))}",sep='')
- }else{
- Tmp=paste(Tmp,"Xfunc(U,V)}",sep='')
- }
- eval(parse(text=Tmp))
- Dx=(URNG[2]-URNG[1])/Np[1]
- Dy=(VRNG[2]-VRNG[1])/Np[2]
- for(J in Looprange(1,Np[2])){ #180227
- Vval1=VRNG[1]+(J-1)*Dy
- Vval2=VRNG[1]+J*Dy
- Uval1=URNG[1] #180306(3lines)
- Eval11=Eqfun(Uval1,Vval1)
- Eval12=Eqfun(Uval1,Vval2)
- Uval1=URNG[1] #180305(3lines)
- for(I in Looprange(1,Np[1])){ #180227
-# Uval1=URNG[1]+(I-1)*Dx
- Uval2=URNG[1]+I*Dx
-# Eval11=Eqfun(Uval1,Vval1)
-# Eval12=Eqfun(Uval1,Vval2)
- Eval21=Eqfun(Uval2,Vval1)
- Eval22=Eqfun(Uval2,Vval2)
- a1=Uval1;b1=Vval1;c1=Eval11
- a2=Uval2;b2=Vval1;c2=Eval21
- a3=Uval2;b3=Vval2;c3=Eval22
- a4=Uval1;b4=Vval2;c4=Eval12
- PL=matrix(c(a1,b1,a2,b2,a3,b3,a4,b4,a1,b1),ncol=2,byrow=TRUE)
- VL=c(c1,c2,c3,c4,c1)
- QL=c()
- for(K in 1:4){
- P1=Op(K,PL); P2=Op(K+1,PL)
- M1=Op(K,VL); M2=Op(K+1,VL)
- if(abs(M1)<Eps0){
- QL=Appendrow(QL,P1)
- next
- }
- if(abs(M2)<Eps0){
-# QL=Appendrow(QL,P2)
- next
- }
- if((M1> 0) && (M2> 0)){
- next
- }
- if((M1< 0) && (M2< 0)){
- next
- }
- Tmp=1/(M1-M2)*(-M2*P1+M1*P2)
- QL=Appendrow(QL,Tmp)
- }
- Uval1=Uval2 #180306(3lines)
- Eval11=Eval21
- Eval12=Eval22
- if(Length(QL)==2){
- Puv1=Op(1,QL); Puv2=Op(2,QL)
- Tmp1=Op(1,Puv1)
- Tmp2=Op(2,Puv1)
- Xv=Xfunc(Tmp1,Tmp2)
- Yv=Yfunc(Tmp1,Tmp2)
- Zv=Zfunc(Tmp1,Tmp2)
- P1=c(Xv,Yv,Zv)
- Tmp1=Op(1,Puv2)
- Tmp2=Op(2,Puv2)
- Xv=Xfunc(Tmp1,Tmp2)
- Yv=Yfunc(Tmp1,Tmp2)
- Zv=Zfunc(Tmp1,Tmp2)
- P2=c(Xv,Yv,Zv)
- V1=Vec[1]; V2=Vec[2]; V3=Vec[3]
- if(abs(V1)>Eps0){
- M1=PtA[3]+V3/V1*(P1[1]-PtA[1])-P1[3]
- M2=PtA[3]+V3/V1*(P2[1]-PtA[1])-P2[3]
- }else if(abs(V2)>Eps0){
- M1=PtA[3]+V3/V2*(P1[2]-PtA[2])-P1[3]
- M2=PtA[3]+V3/V2*(P2[2]-PtA[2])-P2[3]
- }else{
- M1=PtA[2]-P1[2]
- M2=PtA[2]-P2[2]
- }
- if(M1*M2>= 0){
- if(((M1>0) && (M2>0)) || ((M1< 0) && (M2< 0))){
- next
- }
- if(M1==0){
- Pt=P1; Ptuv=Puv1
- }else{
- Pt=P2; Ptuv=Puv2
- }
- }else{
- Pt=1/(M1-M2)*(-M2*P1+M1*P2)
- Ptuv=1/(M1-M2)*(-M2*Puv1+M1*Puv2)
- }
- if(is.character(Uveq)){
- Tmp1=paste('(',sprintf("%6.6f",Ptuv[1]),')',sep='')
- Tmp2=paste('('+sprintf("%6.6f",Ptuv[2]),')',sep='')
- Tmp=gsub(UNAME,Tmp1,Uveq,fixed=TRUE)
- Tmp=gsub(VNAME,Tmp2,Tmp,fixed=TRUE)
- Tmp=eval(parse(text=Tmp))
- if(Tmp< -Eps0){
- next
- }
- }
- Tmp1=Crossprod(Pt-PtA,Vec)
- if(Norm(Tmp1)<Eps1){ #18.02.19
- if(Zparapt(Pt)>Zparapt(PtA)+Eps2){
- return(list(1,Pt,Zparapt(Pt),Zparapt(PtA)))
- }else{
- Out=Appendrow(Out,Pt)
- }
- }
- }
- }
- }
- if(Length(Out)==0){
- return(list(0,c()))
- }
- return(c(list(0,Out)))
-}
-
-Nohiddenpara2<- function (Par,Fk,Uveq,Np,Eps1,Eps2){
- Eps0=10^(-4)
- Fh=Projpara(Fk)
- P1=Ptstart(Fh)
- P2=Ptend(Fh)
- Csp=CUSPPT
- if(!is.list(Csp)){Csp=list(Csp)}
- Cspflg=1
- for(I in Looprange(1,length(Csp))){
- Tmp=Op(I,Csp)
- if(Norm(Tmp-P1)<Eps0){
- if(Cspflg==1){Cspflg=2}
- if(Cspflg==3){Cspflg=6}
- next
- }
- if(Norm(Tmp-P2)<Eps0){
- if(Cspflg==1){Cspflg=3}
- if(Cspflg==2){Cspflg=6}
- next
- }
- }
- PaL=c()
- tmp2=-1
- for(jj in Looprange(1,length(Par)-1)){
- tmp1=Op(jj,Par)
- if(abs(tmp1-tmp2)>Eps0){ #180227
- PaL=c(PaL,tmp1)
- tmp2=tmp1
- }
- }
- tmp1=PaL[length(PaL)] #18.02.26from
- tmp2=Par[length(Par)]
- if(abs(tmp1-tmp2)<Eps0){ #180227
- PaL[length(PaL)]=tmp2
- }else{
- PaL=c(PaL,tmp2)
- } #18.02.26until
- SeL=c()
- for(N in Looprange(1,length(PaL)-1)){
- S=(PaL[N]+PaL[N+1])/2
- Tmp=Invparapt(S,Fh,Fk)
- PtA=Op(1,Tmp)
- PtAp=Parapt(PtA)
- Vec=c(sin(THETA)*cos(PHI),sin(THETA)*sin(PHI),cos(THETA))
- Flg=PthiddenQ(PtA,Vec,Uveq,Np,Eps1,Eps2)
- if(Flg[[1]]==0){
- SeL=c(SeL,N)
- }
- }
- FigL=list()
- FigkL=list()
- for(I in Looprange(1,length(SeL))){
- Tmp1=Pointoncurve(PaL[SeL[I]],Fh)
- Tmp2=Pointoncurve(PaL[SeL[I]+1],Fh)
- if(I==1){
- P=Tmp1; SP=PaL[SeL[I]]
- Q=Tmp2; SQ=PaL[SeL[I]+1]
- }else{
- if(Member(SeL[I]-1,SeL)){
- Q=Tmp2; SQ=PaL[SeL[I]+1]
- }else{
- FigL=c(FigL,list(Partcrv(SP,SQ,Fh)))
- Tmp3=Invparapt(SP,Fh,Fk)
- TP=Op(2,Tmp3)
- Tmp3=Invparapt(SQ,Fh,Fk)
- TQ=Op(2,Tmp3)
- Tmp4=Partcrv3(TP,TQ,Fk)
- FigkL=c(FigkL,list(Tmp4))
- P=Tmp1; SP=PaL[SeL[I]]
- Q=Tmp2; SQ=PaL[SeL[I]+1]
- }
- }
- }
- if(length(SeL)>0){
- if(Norm(P-Q)>Eps0){ #18.02.14
- FigL=c(FigL,list(Partcrv(P,Q,Fh)))
- Tmp3=Invparapt(SP,Fh,Fk)
- TP=Op(2,Tmp3)
- Tmp3=Invparapt(SQ,Fh,Fk)
- TQ=Op(2,Tmp3)
- FigkL=c(FigkL,list(Partcrv3(TP,TQ,Fk)))
- }else{
- FigL=c(FigL,list(Fh))
- FigkL=c(FigkL,list(Fk))
- }
- }
- Tmp=c()
- for(I in Looprange(1,length(PaL)-1)){
- if(!Member(I,SeL)){
- Tmp=c(Tmp,I)
- }
- }
- SeL=Tmp
- HIDDENDATA<<- list()
- for(I in Looprange(1,length(SeL))){
- Tmp=PaL[SeL[I]]
- Tmp1=Pointoncurve(Tmp,Fh)
- Tmp=PaL[SeL[I]+1]
- Tmp2=Pointoncurve(Tmp,Fh)
- if(I==1){
- P=Tmp1; SP=PaL[SeL[I]]
- Q=Tmp2; SQ=PaL[SeL[I]+1]
- }else{
- if(Member(SeL[I]-1,SeL)){
- Q=Tmp2; SQ=PaL[SeL[I]+1]
- }else{
- Tmp=Invparapt(SP,Fh,Fk)
- TP=Op(2,Tmp)
- Tmp=Invparapt(SQ,Fh,Fk)
- TQ=Op(2,Tmp)
- HIDDENDATA<<- c(HIDDENDATA,list(Partcrv3(TP,TQ,Fk)))
- P=Tmp1; SP=PaL[SeL[I]]
- Q=Tmp2; SQ=PaL[SeL[I]+1]
- }
- }
- }
- if(length(SeL)>0){
- if(Norm(P-Q)>Eps0){ #18.02.14
- Tmp=Invparapt(SP,Fh,Fk)
- TP=Op(2,Tmp)
- Tmp=Invparapt(SQ,Fh,Fk)
- TQ=Op(2,Tmp)
- HIDDENDATA<<- c(HIDDENDATA,list(Partcrv3(TP,TQ,Fk)))
- }else{
- HIDDENDATA<<- c(HIDDENDATA,list(Fk))
- }
- }
- return(FigkL)
-}
-
-Borderparadata<- function(...){
- varargin=list(...)
- Nargs=length(varargin)
- FkL=varargin[[1]]
- Np=c(50,50)
- Eps1=0.01
- Eps2=0.05
- ctr=0
- for(jj in Looprange(2,Nargs)){
- tmp=varargin[[jj]]
- if((length(tmp)>1)||(tmp>1)){
- Np=tmp
- if(length(Np)==1){
- Np=c(Np,Np)
- }
- }else{
- ctr=ctr+1
- if(ctr==1){Eps1=tmp}
- if(ctr==2){Eps2=tmp}
- }
- }
- Umin=URNG[1]; Umax=URNG[2]
- Vmin=VRNG[1]; Vmax=VRNG[2]
- EkL=list()
- Tmp=grep("e",DRWS,fixed=TRUE)
- if(length(Tmp)>0){
- Tmp1="c("
- for(jj in 1:3){
- Tmp=gsub(UNAME,paste("(",sprintf("%7.7f",Umax),")",sep=""),XYZstr[jj])
- Tmp1=paste(Tmp1,Tmp,",",sep="")
- }
- Tmp=substring(Tmp1,1,Length(Tmp1)-1)
- Tmp1=paste(Tmp,")",sep="")
- Tmp=sprintf("%6.6f",VRNG)
- Tmp2=paste(VNAME,"=c(",Tmp[1],",",Tmp[2],")",sep='')
- Tmp3=paste('N=',as.character(Np[2]),sep="")
- Tmp=Spacecurve(Tmp1,Tmp2,Tmp3)
- EkL=c(EkL,list(Tmp))
- }
- Tmp=grep("n",DRWS,fixed=TRUE)
- if(length(Tmp)>0){
- Tmp1="c("
- for(jj in 1:3){
- Tmp=gsub(VNAME,paste("(",sprintf("%7.7f",Vmax),")",sep=""),XYZstr[jj])
- Tmp1=paste(Tmp1,Tmp,",",sep="")
- }
- Tmp=substring(Tmp1,1,Length(Tmp1)-1)
- Tmp1=paste(Tmp,")",sep="")
- Tmp=sprintf("%6.6f",URNG)
- Tmp2=paste(UNAME,"=c(",Tmp[1],",",Tmp[2],")",sep='')
- Tmp3=paste('N=',as.character(Np[1]),sep="")
- Tmp=Spacecurve(Tmp1,Tmp2,Tmp3)
- EkL=c(EkL,list(Tmp))
- }
- Tmp=grep("w",DRWS,fixed=TRUE)
- if(length(Tmp)>0){
- Tmp1="c("
- for(jj in 1:3){
- Tmp=gsub(UNAME,paste("(",sprintf("%7.7f",Umin),")",sep=""),XYZstr[jj])
- Tmp1=paste(Tmp1,Tmp,",",sep="")
- }
- Tmp=substring(Tmp1,1,Length(Tmp1)-1)
- Tmp1=paste(Tmp,")",sep="")
- Tmp=sprintf("%6.6f",VRNG)
- Tmp2=paste(VNAME,"=c(",Tmp[1],",",Tmp[2],")",sep='')
- Tmp3=paste('N=',as.character(Np[2]))
- Tmp=Spacecurve(Tmp1,Tmp2,Tmp3)
- EkL=c(EkL,list(Tmp))
- }
- Tmp=grep("s",DRWS,fixed=TRUE)
- if(length(Tmp)>0){
- Tmp1="c("
- for(jj in 1:3){
- Tmp=gsub(VNAME,paste("(",sprintf("%7.7f",Vmin),")",sep=""),XYZstr[jj])
- Tmp1=paste(Tmp1,Tmp,",",sep="")
- }
- Tmp=substring(Tmp1,1,Length(Tmp1)-1)
- Tmp1=paste(Tmp,")",sep="")
- Tmp=sprintf("%6.6f",URNG)
- Tmp2=paste(UNAME,"=c(",Tmp[1],",",Tmp[2],")",sep='')
- Tmp3=paste('N=',as.character(Np[1]))
- Tmp=Spacecurve(Tmp1,Tmp2,Tmp3)
- EkL=c(EkL,list(Tmp))
- }
- if(length(EkL)>0){
- FkL=c(FkL,EkL)
- }
- Fall=Projpara(FkL)
- if(is.numeric(Fall)){
- Fall=list(Fall)
- }
- Fbdxy=Makexybdy(Np)
- BORDERPT<<- list()
- Tmp1=list()
- for(I in Looprange(1,length(Fall))){
- Tmp1=c(Tmp1,list(c()))
- }
- OTHERPARTITION<<- Tmp1
- FsL=list()
- BORDERHIDDENDATA<<- list()
- starttime=proc.time()
- for(I in Looprange(1,length(FkL))){
- Tmp=Op(I,FkL)
- Tmp=Projpara(Tmp)
- Par=Partitionseg(Tmp,Fall,Eps1,Eps2,I)
- Tmp1=Op(I,FkL)
- Tmp=Nohiddenpara2(Par,Tmp1,1,Np,Eps1,Eps2)
- if(length(HIDDENDATA)>0){
- BORDERHIDDENDATA<<- c(BORDERHIDDENDATA,HIDDENDATA)
- }
- if(length(Tmp)>0){
- FsL=c(FsL,Tmp)
- }
- Tmp=paste('Border',formatC(I,width=2,flag="0"),'/',sep='')
- Tmp=paste(Tmp,as.character(length(FkL)),' obtained : Time =',sep='')
- Tmp1=proc.time()-starttime
- print(paste(Tmp,sprintf("%6.3f",Tmp1[1]),sep=''))
- }
- return(FsL)
-}
-
-Sfbdparadata<- function(...){
- varargin=list(...)
- Nargs=length(varargin)
- Fd=varargin[[1]]
- FdL=Fullformfunc(Fd)
- Np=c(50,50)
- Eps0=10^(-4)
- Eps1=0.01
- Eps2=0.05
- ctr=0
- for(jj in Looprange(2,Nargs)){
- tmp=varargin[[jj]]
- if((length(tmp)>1)||(tmp>1)){
- Np=tmp
- if(length(Np)==1){
- Np=c(Np,Np)
- }
- }else{
- ctr=ctr+1
- if(ctr==1){Eps1=tmp}
- if(ctr==2){Eps2=tmp}
- }
- }
- starttime=proc.time()
-# tmp=Evlptablepara(Np)
-# Zval=tmp[[1]]; Xval=tmp[[2]]; Yval=tmp[[3]]
-# Out3=Implicitplot(Zval,Xval,Yval)
- Out3=Envelopedata(Fd) #180306
- tmp3=list()
- pts=list() #180306
- for(jj in Looprange(1,length(Out3))){
- tmp1=Op(jj,Out3)
- tmp2=c()
- for(kk in Looprange(1,Length(tmp1))){
- tmp=Op(kk,tmp1)
- tmp2=Appendrow(tmp2,XYZfunc(tmp[1],tmp[2]))
- }
- Nlist=Dropnumlistcrv(tmp2,Eps1)
- Nlist=Nlist[[1]]
- if(Length(Nlist)==1){ #180306from
- tmp=Op(1,Nlist)
- tmp=Op(tmp,tmp1)
- pts=c(pts,list(tmp))
-# pts=c(pts,list(XYZfunc(tmp[1],tmp[2])))#180306until
- }else{
- tmp=c()
- for(kk in Looprange(1,length(Nlist))){
- tmp=Appendrow(tmp,Op(Nlist[kk],tmp1)) #18.02.18
- }
- if(Length(tmp)>0){
- tmp3=c(tmp3,list(tmp))
- }
- }
- }
- Out3=tmp3
- tmp3=pts #180306from
- pts=list()
- for(ii in Looprange(1,length(tmp3))){
- tmp=Op(ii,tmp3)
- tmp1=XYZfunc(tmp[1],tmp2[])
- flg=0
- for(jj in Looprange(1,length(pts))){
- tmp=Op(jj,pts)
- tmp2=XYZfunc(tmp[1],tmp2[])
- if(Norm(tmp1-tmp2)<Eps1){
- flg=1; break
- }
- }
- if(flg==0){pts=c(pts,list(Op(ii,tmp3)))}
- }
- for(ii in Looprange(1,length(pts))){
- tmp=Op(ii,pts)
- tmp1=XYZfunc(tmp[1],tmp[2])
- for(jj in Looprange(1,length(Out3))){
- tmp2=Op(jj,Out3)
- eps=1
- for(kk in Looprange(1,Length(tmp2)-1)){
- tmp=Op(kk,tmp2)
- tmp1=XYZfunc(tmp[1],tmp[2])
- tmp=Op(kk+1,tmp2)
- tmp=XYZfunc(tmp[1],tmp[2])
- eps=min(c(eps,Norm(tmp1-tmp)))
- }
- tmp=Ptstart(tmp2)
- if(Norm(tmp1-XYZfunc(tmp[1],tmp[2]))<eps+Eps0){
- Out3[[jj]]=Appendrow(Op(ii,pts),tmp2)
- next
- }
- tmp=Ptend(tmp2)
- if(Norm(tmp1-XYZfunc(tmp[1],tmp[2]))<eps+Eps0){
- Out3[[jj]]=Appendrow(tmp2,Op(ii,pts))
- next
- }
- }
- } #180306until
- IMPLICITDATA<<- Out3
- Tmp=proc.time()-starttime
- print(paste('ImplicitData obtained : Time =',sprintf("%6.3f",Tmp[1]),sep=''))
- starttime=proc.time()
- Out4=Cuspsplitpara(Out3,Eps1)
- CUSPDATA<<- Out4
- CUSPPT<<- CUSPSPLITPT
- Tmp=proc.time()-starttime
- print(paste('CuspData obtained : Time =',sprintf("%6.3f",Tmp[1]),sep=''))
- Out5=Borderparadata(Out4,Np,Eps1,Eps2)
- return(Out5)
-}
-
-Meetpoints<- function(PtA,PtB,Uveq,Np,Eps1){
- Eps0=10^(-4)
- Vec=PtB-PtA
- if(Norm(Vec)<Eps0){return(list())} #18.02.24
- Out=list()
- Vec=1/Norm(Vec)*Vec
- if(length(Np)==1){
- Np=c(Np,Np)
- }
- Tmp=paste("Eqfun<- function(U,V){",sep='')
- if((abs(Vec[2])>Eps0) || (abs(Vec[1])>Eps0)){
- Vstr=sprintf("%6.6f",Vec)
- Pstr=sprintf("%6.6f",PtA)
- Tmp=paste(Tmp,"(",Vstr[2],")*(Xfunc(U,V)-(",Pstr[1],"))",sep='')
- Tmp=paste(Tmp,"-(",Vstr[1],")*(Yfunc(U,V)-(",Pstr[2],"))}",sep='')
- }else{
- Tmp=paste(Tmp,"Xfunc(U,V)}",sep='')
- }
- eval(parse(text=Tmp))
- Dx=(URNG[2]-URNG[1])/Np[1]
- Dy=(VRNG[2]-VRNG[1])/Np[2]
- for(J in Looprange(1,Np[2])){
- Vval1=VRNG[1]+(J-1)*Dy
- Vval2=VRNG[1]+J*Dy
- Uval1=URNG[1] #180305(3lines)
- Eval11=Eqfun(Uval1,Vval1)
- Eval12=Eqfun(Uval1,Vval2)
- for(I in Looprange(1,Np[1])){
-# Uval1=URNG[1]+(I-1)*Dx
- Uval2=URNG[1]+I*Dx
-# Eval11=Eqfun(Uval1,Vval1)
-# Eval12=Eqfun(Uval1,Vval2)
- Eval21=Eqfun(Uval2,Vval1)
- Eval22=Eqfun(Uval2,Vval2)
- a1=Uval1;b1=Vval1;c1=Eval11
- a2=Uval2;b2=Vval1;c2=Eval21
- a3=Uval2;b3=Vval2;c3=Eval22
- a4=Uval1;b4=Vval2;c4=Eval12
- PL=matrix(c(a1,b1,a2,b2,a3,b3,a4,b4,a1,b1),ncol=2,byrow=TRUE)
- VL=c(c1,c2,c3,c4,c1)
- QL=c()
- for(K in 1:4){
- P1=Op(K,PL); P2=Op(K+1,PL)
- M1=Op(K,VL); M2=Op(K+1,VL)
- if(abs(M1)<Eps0){
- QL=Appendrow(QL,P1)
- next
- }
- if(abs(M2)<Eps0){
-# QL=Appendrow(QL,P2)
- next
- }
- if((M1> 0) && (M2> 0)){
- next
- }
- if((M1< 0) && (M2< 0)){
- next
- }
- Tmp=1/(M1-M2)*(-M2*P1+M1*P2)
- QL=Appendrow(QL,Tmp)
- }
- Uval1=Uval2 #180306(3lines)
- Eval11=Eval21
- Eval12=Eval22
- if(Length(QL)==2){
- Puv1=Op(1,QL); Puv2=Op(2,QL)
- Tmp1=Op(1,Puv1)
- Tmp2=Op(2,Puv1)
- Xv=Xfunc(Tmp1,Tmp2)
- Yv=Yfunc(Tmp1,Tmp2)
- Zv=Zfunc(Tmp1,Tmp2)
- P1=c(Xv,Yv,Zv)
- Tmp1=Op(1,Puv2)
- Tmp2=Op(2,Puv2)
- Xv=Xfunc(Tmp1,Tmp2)
- Yv=Yfunc(Tmp1,Tmp2)
- Zv=Zfunc(Tmp1,Tmp2)
- P2=c(Xv,Yv,Zv)
- V1=Vec[1]; V2=Vec[2]; V3=Vec[3]
- if(abs(V1)>Eps0){
- M1=PtA[3]+V3/V1*(P1[1]-PtA[1])-P1[3]
- M2=PtA[3]+V3/V1*(P2[1]-PtA[1])-P2[3]
- }else if(abs(V2)>Eps0){
- M1=PtA[3]+V3/V2*(P1[2]-PtA[2])-P1[3]
- M2=PtA[3]+V3/V2*(P2[2]-PtA[2])-P2[3]
- }else{
- M1=PtA[2]-P1[2]
- M2=PtA[2]-P2[2]
- }
- if(M1*M2>= 0){ #18.02.21
- if(((M1>0) && (M2>0)) || ((M1< 0) && (M2< 0))){
- next
- }
- if(M1==0){
- Pt=P1; Ptuv=Puv1
- }else{
- Pt=P2; Ptuv=Puv2
- }
- }else{
- Pt=1/(M1-M2)*(-M2*P1+M1*P2)
- Ptuv=1/(M1-M2)*(-M2*Puv1+M1*Puv2)
- }
- if(is.character(Uveq)){
- Tmp1=paste('(',sprintf("%6.6f",Ptuv[1]),')',sep='')
- Tmp2=paste('('+sprintf("%6.6f",Ptuv[2]),')',sep='')
- Tmp=gsub(UNAME,Tmp1,Uveq,fixed=TRUE)
- Tmp=gsub(VNAME,Tmp2,Tmp,fixed=TRUE)
- Tmp=eval(parse(text=Tmp))
- if(Tmp< -Eps0){
- next
- }
- }
- Tmp1=Crossprod(Pt-PtA,Vec)
- if(Norm(Tmp1)<Eps1){ #18.02.19
- Tmp1=Dotprod(Pt-PtA,Vec) #18.02.21
- if((Tmp1>-Eps0)&&(Tmp1<Norm(PtB-PtA)+Eps0)){
- Out=c(Out,list(Pt))
- }
- }
- }
- }
- }
- tmp1=Groupnearpt(Out,Eps1)
- Out=list()
- for(jj in Looprange(1,length(tmp1))){
- tmp=Op(jj,tmp1)
- tmp=c(sum(tmp[,1]),sum(tmp[,2]),sum(tmp[,3]))/Length(tmp)
- Out=c(Out,list(tmp))
- }
- return(Out)
-}
-
-Clipindomain<- function(ObjL,FigL){
- Eps0=10^(-4)
- Eps1=0.01
- Eps2=0.05
- Bdy=Kyoukai(FigL)
- if(length(Bdy)>=2){
- Fbdy=Joincrvs(FigL)
- }else{
- Fbdy=Op(1,FigL)
- }
- if(!is.list(ObjL)){
- ObjL=list(ObjL)
- }
- if(!is.list(FigL)){
- FigL=list(FigL)
- }
- OutL=list()
- for(Nobj in Looprange(1,length(ObjL))){
- Obj=Op(Nobj,ObjL)
- ParL=c(1,Length(Obj))
- Tmp=IntersectcurvesPp(Obj,Fbdy,Eps1,Eps2)
- for(J in Looprange(1,length(Tmp))){
- Tmp1=Op(J,Tmp)
- ParL=c(ParL,Op(2,Tmp1))
- }
- ParL=sort(ParL)
- Tmp=c(1)
- for(I in Looprange(1,length(ParL))){
- Tmp1=Op(length(Tmp),Tmp)
- Tmp2=ParL[I]
- if(Tmp2-Tmp1>Eps0){
- Tmp=c(Tmp,Tmp2)
- }
- }
- ParL=Tmp
- Tmp1=Op(length(ParL),ParL)
- Tmp2=Length(Obj)
- if(abs(Tmp1-Tmp2)<Eps1){
- ParL=c(ParL[Looprange(1,length(ParL)-1)],Tmp2)
- }
- Fig=list()
- for(N in Looprange(1,length(ParL)-1)){
- Tmp=(ParL[N]+ParL[N+1])*0.5
- Tmp=Pointoncurve(Tmp,Obj)
- Tmp=Naigai(Tmp,Bdy)
- Tmp1=sum(Tmp)%%2
- if(Tmp1==0){
- next
- }
- Fig=c(Fig,list(Partcrv(ParL[N],ParL[N+1],Obj)))
- }
- OutL=c(OutL,Fig)
- }
- return(OutL)
-}
-
-Crvsfparadata<- function(...){
- starttime=proc.time()
- varargin=list(...)
- Nargs=length(varargin)
- Sepflg=0
- Tmp=varargin[[Nargs]]
- if((is.numeric(Tmp))&&(Tmp<=0)){
- Sepflg=1
- Nargs=Nargs-1
- }
- Fk=varargin[[1]]
- if(!is.list(Fk)){
- FkL=list(Fk)
- }else{
- FkL=Fk
- }
- Fbdy=Projpara(varargin[[2]])
- Fd=varargin[[3]];
- Fullformfunc(Fd) #18.02.17
- Np=c(50,50)
- Eps0=10^(-4)
- Eps1=0.01
- Eps2=0.05
- ctr=0
- for(jj in Looprange(4,Nargs)){
- tmp=varargin[[jj]]
- if((length(tmp)>1)||(tmp>1)){
- Np=tmp
- if(length(Np)==1){
- Np=c(Np,Np)
- }
- }else{
- ctr=ctr+1
- if(ctr==1){Eps1=tmp}
- if(ctr==2){Eps2=tmp}
- }
- }
- Out=list()
- CRVSFHIDDENDATA<<- list()
- for(Nn in Looprange(1,length(FkL))){
- Fk=Op(Nn,FkL)
- Tmp=Projpara(Fk)
- Par=Partitionseg(Tmp,Fbdy,Eps1,Eps2,0)
- if(Sepflg==0){
- for(I in Looprange(1,Length(Fk)-1)){
- Pa=Op(I,Fk)
- Pb=Op(I+1,Fk)
- PtL=Meetpoints(Pa,Pb,1,Np,Eps1)
- for(J in Looprange(1,Length(PtL))){
- Tmp=Op(J,PtL)
- Tmp=Parapt(Tmp)
- Tmp1=Paramoncurve(Tmp,I,Projpara(Fk))
- Tmp2=min(abs(Par-Tmp1))
- if(Tmp2*Norm(Parapt(Pb-Pa))>Eps0) { #180227
- Par=c(Par,Tmp1)
- }
- }
- Par=sort(Par)
- }
- }
- for(jj in Looprange(1,length(ADDPOINT))){ #18.02.19from
- tmp=Parapt(Op(jj,ADDPOINT))
- tmp=Nearestpt(tmp,Projpara(Fk))
- if(tmp[[3]]<Eps1){
- Par=c(Par,tmp[[2]])
- }
- } #18.02.19until
- tmp1=sort(Par)
- Par=c()
- tmp2=-1
- for(jj in Looprange(1,length(tmp1))){
- tmp=Op(jj,tmp1)
- if(abs(tmp-tmp2)>Eps0){ #180227
- Par=c(Par,tmp)
- tmp2=tmp
- }
- }
- Tmp1=Nohiddenpara2(Par,Fk,1,Np,Eps1,Eps2)
- Out=c(Out,Tmp1)
- CRVSFHIDDENDATA<<- c(CRVSFHIDDENDATA,HIDDENDATA)
- Tmp=paste('Crvsfdata',formatC(Nn,width=2,flag="0"),'/',sep='')
- Tmp=paste(Tmp,as.character(length(FkL)),' obtained : Time =',sep='')
- Tmp1=proc.time()-starttime
- print(paste(Tmp,sprintf("%6.3f",Tmp1[1]),sep=''))
- }
- return(Out)
-}
-
-Crv3onsfparadata<- function(...){
- starttime=proc.time()
- varargin=list(...)
- Nargs=length(varargin)
- Fk=varargin[[1]]
- if(!is.list(Fk)){
- FkL=list(Fk)
- }else{
- FkL=Fk
- }
- Fbdy=Projpara(varargin[[2]])
- Fd=varargin[[3]]
- Fullformfunc(Fd) #18.02.17
- Np=c(50,50)
- Eps1=0.01
- Eps2=0.05
- ctr=0
- for(jj in Looprange(4,Nargs)){
- tmp=varargin[[jj]]
- if((length(tmp)>1)||(tmp>1)){
- Np=tmp
- if(length(Np)==1){
- Np=c(Np,Np)
- }
- }else{
- ctr=ctr+1
- if(ctr==1){Eps1=tmp}
- if(ctr==2){Eps2=tmp}
- }
- }
- Out=list()
- CRVONSFHIDDENDATA<<- list()
- for(Nn in Looprange(1,length(FkL))){
- Fk=Op(Nn,FkL)
- Tmp=Projpara(Fk)
- Par=Partitionseg(Tmp,Fbdy,Eps1,Eps2,0)
- for(jj in Looprange(1,length(ADDPOINT))){
- tmp=Parapt(Op(jj,ADDPOINT))
- tmp=Nearestpt(tmp,Projpara(Fk))
- if(tmp[[3]]<Eps1){
- Par=c(Par,tmp[[2]])
- }
- }
- Par=sort(Par)
- Tmp1=Nohiddenpara2(Par,Fk,1,Np,Eps1,Eps2)
- Out=c(Out,Tmp1)
- CRVONSFHIDDENDATA<<- c(CRVONSFHIDDENDATA,HIDDENDATA)
- Tmp=paste('Crvonsfdata',formatC(Nn,width=2,flag="0"),'/',sep='')
- Tmp=paste(Tmp,as.character(length(FkL)),' obtained : Time =',sep='')
- Tmp1=proc.time()-starttime
- print(paste(Tmp,sprintf("%6.3f",Tmp1[1]),sep=''))
- }
- return(Out)
-}
-
-Crvonsfparadata<- function(...){
- starttime=proc.time()
- varargin=list(...)
- Nargs=length(varargin)
- Fuv=varargin[[1]]
- Fbdy3=varargin[[2]]
- Fd=varargin[[3]]
- Fullformfunc(Fd)
- if(!is.list(Fuv)){
- Fuv=list(Fuv)
- }
- FkL=list()
- for(jj in Looprange(1,length(Fuv))){
- tmp1=Op(jj,Fuv)
- tmp2=c()
- for(kk in Looprange(1,Length(tmp1))){
- tmp=Op(kk,tmp1)
- tmp2=Appendrow(tmp2,XYZfunc(tmp[1],tmp[2]))
- }
- FkL=c(FkL,list(tmp2))
- }
- Np=c(50,50)
- Eps1=0.01
- Eps2=0.05
- ctr=0
- for(jj in Looprange(4,Nargs)){
- tmp=varargin[[jj]]
- if((length(tmp)>1)||(tmp>1)){
- Np=tmp
- if(length(Np)==1){
- Np=c(Np,Np)
- }
- }else{
- ctr=ctr+1
- if(ctr==1){Eps1=tmp}
- if(ctr==2){Eps2=tmp}
- }
- }
- Out=Crv3onsfparadata(FkL,Fbdy3,Fd,Np,Eps1,Eps2)
- return(Out)
-}
-
-Wireparadata<- function(...){
- starttime=proc.time()
- varargin=list(...)
- Nargs=length(varargin)
- Fbdy3=varargin[[1]]
- Fd=varargin[[2]]
- FdL=Fullformfunc(Fd)
- DuL=varargin[[3]]
- DvL=varargin[[4]]
- Np=c(50,50)
- Eps1=0.01
- Eps2=0.05
- ctr=0
- for(jj in Looprange(5,Nargs)){
- tmp=varargin[[jj]]
- if((length(tmp)>1)||(tmp>1)){
- Np=tmp
- if(length(Np)==1){
- Np=c(Np,Np)
- }
- }else{
- ctr=ctr+1
- if(ctr==1){Eps1=tmp}
- if(ctr==2){Eps2=tmp}
- }
- }
- if(is.numeric(DuL)){
- tmp1=DuL
- DuL=list()
- for(jj in Looprange(1,tmp1)){
- tmp=jj*(URNG[2]-URNG[1])/(tmp1+1)
- DuL=c(DuL,list(tmp))
- }
- }
- if(is.numeric(DvL)){
- tmp1=DvL
- DvL=list()
- for(jj in Looprange(1,tmp1)){
- tmp=jj*(VRNG[2]-VRNG[1])/(tmp1+1)
- DvL=c(DvL,list(tmp))
- }
- }
- Fuv=list()
- for(jj in Looprange(1,length(DuL))){
- tmp1=paste("c(",as.character(Op(jj,DuL)),",",VNAME,")",sep="")
- tmp2=paste("N=",as.character(Np[2]),sep="")
- tmp1=Paramplot(tmp1,Op(6,FdL),tmp2)
- tmp2=c()
- for(kk in Looprange(1,Length(tmp1))){
- tmp=Op(kk,tmp1)
- tmp2=Appendrow(tmp2,tmp)
- }
- Fuv=c(Fuv,list(tmp2))
- }
- FkL=list()
- for(jj in Looprange(1,length(Fuv))){
- tmp1=Op(jj,Fuv)
- tmp2=c()
- for(kk in Looprange(1,Length(tmp1))){
- tmp=Op(kk,tmp1)
- tmp2=Appendrow(tmp2,XYZfunc(tmp[1],tmp[2]))
- }
- FkL=c(FkL,list(tmp2))
- }
- Tmp1=proc.time()-starttime
- cat(UNAME,"direction started","\n")
- Out1=Crv3onsfparadata(FkL,Fbdy3,Fd,Np,Eps1,Eps2)
- WIREHIDDENDATA<<- CRVONSFHIDDENDATA
- Fuv=list()
- for(jj in Looprange(1,length(DvL))){
- tmp1=paste("c(",UNAME,",",as.character(Op(jj,DvL)),")",sep="")
- tmp2=paste("N=",as.character(Np[2]),sep="")
- tmp1=Paramplot(tmp1,Op(5,FdL),tmp2)
- tmp2=c()
- for(kk in Looprange(1,Length(tmp1))){
- tmp=Op(kk,tmp1)
- tmp2=Appendrow(tmp2,tmp)
- }
- Fuv=c(Fuv,list(tmp2))
- }
- FkL=list()
- for(jj in Looprange(1,length(Fuv))){
- tmp1=Op(jj,Fuv)
- tmp2=c()
- for(kk in Looprange(1,Length(tmp1))){
- tmp=Op(kk,tmp1)
- tmp2=Appendrow(tmp2,XYZfunc(tmp[1],tmp[2]))
- }
- FkL=c(FkL,list(tmp2))
- }
- cat(VNAME,"direction started","\n")
- Out2=Crv3onsfparadata(FkL,Fbdy3,Fd,Np,Eps1,Eps2)
- WIREHIDDENDATA<<- c(WIREHIDDENDATA, CRVONSFHIDDENDATA)
- Out=c(Out1,Out2)
- return(Out)
-}
-
-Intersectcrvsf<- function(...){
- # bdyeq is the equation of boundary f(x,y,z) =0
- starttime=proc.time()
- varargin=list(...)
- Nargs=length(varargin)
- crv=varargin[[1]]
- Fd=varargin[[2]]
- Fullformfunc(Fd)
- bdyflg=0
- bdyeq=varargin[[Nargs]]
- if(is.character(bdyeq)){
- Nargs=Nargs-1
- bdyflg=1
- tmp=strsplit(bdyeq,"=",fixed=TRUE)
- tmp=tmp[[1]]
- if(length(tmp)>1){
- bdyeq=paste("(",tmp[1],")-(",tmp[2],")",sep="")
- }
- tmp=paste("bdyeq<- function(P){x=P[1];y=P[2];z=P[3];",bdyeq,"}",sep="")
- eval(parse(text=tmp))
- }
- Eps0=10^(-4)
- Np=c(50,50)
- Eps1=0.01
- Eps2=0.05
- ctr=0
- for(jj in Looprange(3,Nargs)){
- tmp=varargin[[jj]]
- if((length(tmp)>1)||(tmp>1)){
- Np=tmp
- if(length(Np)==1){
- Np=c(Np,Np)
- }
- }else{
- ctr=ctr+1
- if(ctr==1){Eps1=tmp}
- if(ctr==2){Eps2=tmp}
- }
- }
- PtL=list()
- for(I in Looprange(1,Length(crv)-1)){
- Pa=Op(I,crv)
- Pb=Op(I+1,crv)
- if(bdyflg==0){
- tmp=Meetpoints(Pa,Pb,1,Np,Eps1)
- }else{
- M1=bdyeq(Pa); M2=bdyeq(Pb)
- if(M1*M2>= 0){ #18.02.21
- if(((M1>0) && (M2>0)) || ((M1< 0) && (M2< 0))){
- next
- }
- if(M1==0){
- tmp=list(Pa)
- }else{
- tmp=list(Pb)
- }
- }else{
- while(Norm(Pb-Pa)>Eps0){
- if(bdyeq(Pa)==0){
- tmp=list(Pa)
- break
- }
- if(bdyeq(Pa)*bdyeq((Pa+Pb)/2)>0){
- Pa=(Pa+Pb)/2
- }else{
- Pb=(Pa+Pb)/2
- }
- }
- tmp=list(1/(M1-M2)*(-M2*Pa+M1*Pb))
- }
- }
- PtL=c(PtL,tmp)
- }
- Tmp=paste('Intersectcrvsf obtained : Time =',sep='')
- Tmp1=proc.time()-starttime
- print(paste(Tmp,sprintf("%6.3f",Tmp1[1]),sep=''))
- return(PtL)
-}
-
-Sfcutparadata<- function(...){
- varargin=list(...)
- Nargs=length(varargin)
- CutD=varargin[[1]]
- Fbdy3=varargin[[2]]
- Fd=varargin[[3]]
- FdL=Fullformfunc(Fd)
- Np=c(50,50)
- Eps0=10^(-4)
- Eps1=0.01
- Eps2=0.05
- ctr=0
- for(jj in Looprange(4,Nargs)){
- Tmp=varargin[[jj]]
- if((length(Tmp)>1)||(Tmp>1)){
- Np=Tmp
- if(length(Np)==1){
- Np=c(Np,Np)
- }
- }else{
- ctr=ctr+1
- if(ctr==1){Eps1=Tmp}
- if(ctr==2){Eps2=Tmp}
- }
- }
- starttime=proc.time()
- Tmp=strsplit(CutD,'=')
- Tmp=Tmp[[1]]
- if(length(Tmp)==1){
- Eq=CutD
- }else{
- Eq=paste("(",Tmp[1],")-(",Tmp[2],")",sep="")
- }
- Eq=gsub("x","Xfunc(U,V)",Eq,fixed=TRUE)
- Eq=gsub("y","Yfunc(U,V)",Eq,fixed=TRUE)
- Eq=gsub("z","Zfunc(U,V)",Eq,fixed=TRUE)
- Tmp=paste("Eqfun<<- function(U,V){",Eq,"}",sep="")
- eval(parse(text=Tmp))
- Du=(URNG[2]-URNG[1])/Np[1]
- Dv=(VRNG[2]-VRNG[1])/Np[2]
- Out=list();Out2=list()
- for(J in Looprange(1,Np[2])){
- Vval1=VRNG[1]+(J-1)*Dv
- Vval2=VRNG[1]+J*Dv
- Uval1=URNG[1] #180305(3lines)
- Eval11=Eqfun(Uval1,Vval1)
- Eval12=Eqfun(Uval1,Vval2)
- for(I in Looprange(1,Np[1])){
-# Uval1=URNG[1]+(I-1)*Du
- Uval2=URNG[1]+I*Du
-# Eval11=Eqfun(Uval1,Vval1)
-# Eval12=Eqfun(Uval1,Vval2)
- Eval21=Eqfun(Uval2,Vval1)
- Eval22=Eqfun(Uval2,Vval2)
- a1=Uval1;b1=Vval1;c1=Eval11
- a2=Uval2;b2=Vval1;c2=Eval21
- a3=Uval2;b3=Vval2;c3=Eval22
- a4=Uval1;b4=Vval2;c4=Eval12
- PL=matrix(c(a1,b1,a2,b2,a3,b3,a4,b4,a1,b1),ncol=2,byrow=TRUE)
- VL=c(c1,c2,c3,c4,c1)
- QL=c()
- for(K in 1:4){
- P1=Op(K,PL); P2=Op(K+1,PL)
- M1=Op(K,VL); M2=Op(K+1,VL)
- if(abs(M1)<Eps0){
- QL=Appendrow(QL,P1)
- next
- }
- if(abs(M2)<Eps0){
-# QL=Appendrow(QL,P2)
- next
- }
- if((M1> 0) && (M2> 0)){
- next
- }
- if((M1< 0) && (M2< 0)){
- next
- }
- Tmp=1/(M1-M2)*(-M2*P1+M1*P2)
- QL=Appendrow(QL,Tmp)
- }
- Uval1=Uval2 #180306(3lines)
- Eval11=Eval21
- Eval12=Eval22
- if(Length(QL)==2){
- q11=QL[1,1];q12=QL[1,2];q21=QL[2,1];q22=QL[2,2]
- if(((q11==a1)&&(q21==a1))||((q11==a3)&&(q21==a3))){
- if(((q21==b1)&&(q22==b1))||((q21==b3)&&(q22==b3))){
- Out2=c(Out2,list(QL))
- }else{
- Out=c(Out,list(QL))
- }
- next
- }
- if(((q12==b1)&&(q22==b1))||((q12==b3)&&(q22==b3))){
- if(((q11==a1)&&(q21==a1))||((q11==a3)&&(q21==a3))){
- Out2=c(Out2,list(QL))
- }else{
- Out=c(Out,list(QL))
- }
- next
- }
- Out=c(Out,list(QL))
- }
- }
- }
- while(length(Out2)>0){
- tmp1=Out2[[1]]
- Out=c(Out,list(tmp1))
- Out2=Out2[-1]
- rmv=c()
- for(jj in Looprange(1,length(Out2))){
- tmp2=Out2[[jj]]
- diff1=Norm(tmp2[1,]-tmp1[1,])+Norm(tmp2[2,]-tmp1[2,])
- diff2=Norm(tmp2[1,]-tmp1[2,])+Norm(tmp2[2,]-tmp1[1,])
- if((diff1<Eps0)||(diff2<Eps0)){
- rmv=c(rmv,jj)
- next
- }
- }
- Out2=Out2[-rmv]
- }
- Out=Connectseg(Out,Eps1)
- Tmp1=Out
- Out=list()
- for(ii in Looprange(1,length(Tmp1))){
- Tmp2=Op(ii,Tmp1)
- Tmp3=c()
- for(jj in Looprange(1,Length(Tmp2))){
- Tmp=Op(jj,Tmp2)
- Tmp=XYZfunc(Tmp[1],Tmp[2])
- if(Length(Tmp3)>0){
- if(Norm(Op(Length(Tmp3),Tmp3)-Tmp)<Eps1){next}
- }
- Tmp3=Appendrow(Tmp3,Tmp)
- }
- Out=c(Out,list(Tmp3))
- }
- Out=Crv3onsfparadata(Out,Fbdy3,Fd,Np,Eps1,Eps2)
- return(Out)
-}
diff --git a/texmf-dist/scripts/ketcindy/ketlib/ketpiccurrent_rep2e.r b/texmf-dist/scripts/ketcindy/ketlib/ketpiccurrent_rep2e.r
deleted file mode 100644
index 37033948..00000000
--- a/texmf-dist/scripts/ketcindy/ketlib/ketpiccurrent_rep2e.r
+++ /dev/null
@@ -1,580 +0,0 @@
-# Copyright (C) 2014 Setsuo Takato, KETCindy Japan project team
-#
-#This program is free software: you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation; either version 3 of the License, or
-# (at your option) any later version.
-#
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with this program. If not, see <http://www.gnu.org/licenses/>
-
-
-#########################################
-
-ThisVersion<- "2ev5_2_3(17.10.28)"
-
-# 2017.10.28
-# Drwpt debugged ( Flattenlist )
-# 2017.10.07
-#
-
-#############################################
-
-Dottedline<- function(...)
-{
- varargin <- list(...)
- Nall <- length(varargin)
- Nagasa <- 0.1
- Ookisa <- PenThick*2 #17.10.07
- I <- Nall
- Tmp <- varargin[[I]]
- while (mode(Tmp)=="numeric" && length(Tmp)==1 ) {
- I <- I-1
- Tmp <- varargin[[I]]
- }
- if (I==Nall-1) {
- Nagasa<-Nagasa*varargin[[Nall]]
- Nall <- Nall-1
- }
- if (I==Nall-2) {
- Nagasa <- Nagasa*varargin[[Nall-1]]
- Ookisa <- round(Ookisa*varargin[[Nall]])
- Nall <- Nall-2
- }
- Nagasa <- 1000/2.54/MilliIn*Nagasa
- Ra=Ookisa/MilliIn
- for (N in 1:Nall) {
- Pdata <- varargin[[N]]
- if (mode(Pdata)=="numeric") {
- Pdata <- list(Pdata)
- }
- for (II in 1:length(Pdata)) {
- Clist <- MakeCurves(Op(II,Pdata))
- DinM <- Dataindex(Clist)
- Mojisu=0
- for (n in Looprange(1,Nrow(DinM))) {
- Tmp <- DinM[n,]
- Data <- Clist[Tmp[1]:Tmp[2],]
- Len <- 0
- Lenlist <- c(0)
- for (I in Looprange(2,Nrow(Data))) {
- Len <- Len+Norm(Data[I,]-Data[I-1,])
- Lenlist <- c(Lenlist,Len)
- }
- Lenall <- Lenlist[length(Lenlist)]
- if (Lenall==0) {
- next
- }
- Naga <- Nagasa
- Nten <- round(Lenall/Naga)+1
- if (Nten > 1) {
- Seg <- Lenall/(Nten-1)
- }
- else {
- Seg <- Lenall
- }
- Eps <- 10^(-6)*Seg
- PPd<-c()
- Hajime <- 1
- for (I in Looprange(0,Nten-1)) {
- Len <- Seg*I
- if (I>0) {
- J <- Hajime
- while( Len>=Lenlist[J]+Eps) {
- J <- J+1
- }
- Hajime <- J-1
- }
- T <- (Len-Lenlist[Hajime])/
- (Lenlist[Hajime+1]-Lenlist[Hajime])
- P <- Data[Hajime,]+T*(Data[Hajime+1,]-Data[Hajime,])
- PPd<-Appendrow(PPd,P)
- if (I==Nten-1) {
- if (Norm(P-Data[1,])<Eps) {
- next
- }
- }
- }
- for (I in Looprange(1,Nrow(PPd))){
- P<- Op(I,PPd)
- if (Nrow(PPd)==1){
- V<- c(1,0)
- }
- else if (I==1){
- Tmp<- Op(I+1,PPd)-P
- V<- 1/Norm(Tmp)*Tmp
- }
- else if (I==Nrow(PPd)){
- Tmp<- P-Op(I-1,PPd)
- V<- 1/Norm(Tmp)*Tmp
- }
- else{
- Tmp1<- Op(I+1,PPd)-P
- Tmp2<- P-Op(I-1,PPd)
- Tmp3<-1/Norm(Tmp1)*Tmp1+1/Norm(Tmp2)*Tmp2
- V<- 1/Norm(Tmp3)*Tmp3
- }
- X=sprintf('%5.5f',P[1])
- Y=sprintf('%5.5f',P[2])
- Str=paste('\\put(',X,',',Y,'){\\circle*{',sprintf('%6.6f',Ra),'}}',sep="")
- cat(Str,file=Wfile,append=TRUE)
- Mojisu=Mojisu+nchar(Str)
- if(Mojisu>80){
- cat("\n",file=Wfile,append=TRUE)
- Mojisu=0
- }
- }
- }
- }
- if(Mojisu>0){
- cat("\n",file=Wfile,append=TRUE)
- }
- }
- Tmp<-PenThick/PenThickInit
- Setpen(Tmp)
-}
-
-
-###########################################
-
-Drwline<-function(...)
-{
- varargin<-list(...)
- Nall<-length(varargin)
- Thick<-0
- Tmp<-varargin[[Nall]]
- if (mode(Tmp)=="numeric" && length(Tmp)==1){
- Setpen(Tmp)
- Nall<-Nall-1
- }
- for (N in 1:Nall){
- Pdata<-varargin[[N]]
- if (length(Pdata)==0) next
- if (mode(Pdata)!="list") Pdata<-list(Pdata)
- while(Mixtype(Pdata)==3){
- Tmp1<- list()
- for(II in Looprange(1,length(Pdata))){
- Tmp1<- Mixjoin(Tmp1,Pdata[[II]])
- }
- Pdata<- Tmp1
- }
- for (II in Looprange(1,length(Pdata))){
- Clist<-MakeCurves(Pdata[[II]])
- DinM<-Dataindex(Clist)
- for (n in Looprange(1,Nrow(DinM))){
- Tmp<-DinM[n,]
- Data<-Clist[Tmp[1]:Tmp[2],]
- Mojisu<-0
- for (I in Looprange(1,Nrow(Data))){
- Tmp<-Data[I,]
- X=sprintf('%5.5f',Tmp[1])
- Y=sprintf('%5.5f',Tmp[2])
- Pt=paste('(',X,',',Y,')',sep="")
- if(I==1){
- Str=paste('\\polyline',Pt,sep="")
- }else{
- Str=Pt
- }
- cat(Str,file=Wfile,append=TRUE)
- Mojisu<-Mojisu+nchar(Str)
- if (Mojisu>80){
- cat("%\n",file=Wfile,append=TRUE)
- Mojisu<-0
- }
- }
- if (Mojisu!=0){
- cat("%\n",file=Wfile,append=TRUE)
- }
- cat("%\n",file=Wfile,append=TRUE)
- }
- }
- }
- if (Thick>0){
- Tmp<-PenThick/PenThickInit
- Setpen(Tmp)
- }
-}
-
-###########################################
-
-Drwpt<-function(...)
-{
- varargin<-list(...)
- Nargs<-length(varargin)
- All=Nargs
- if (TenSize>TenSizeInit){
- N<- round(6*sqrt(TenSize/TenSizeInit))
- }
- else{
- N<-4
- }
- Tmp<- varargin[[All]]
- Iro=c(0,0,0,1)
- Iroflg=0
- if(is.character(Tmp)){
- Iro=Ratiocmyk(Tmp)
- Iroflg=1
- All=All-1
- }
- Tmp<- varargin[[All]]
- if (mode(Tmp)=="numeric"){
- if (length(Tmp)>1){
- Kosa<- 1; All<- Nargs
- }
- else{
- Kosa<- Tmp; All<- All-1
- }
- }
- else if (mode(Tmp)=="list"){
- Kosa<- 1; All<- Nargs
- }
- Ra=TenSize*1000/2.54/MilliIn
- if(Iroflg>0){
- Str='{\\color[cmyk]{'
- for(J in 1:4){
- Str=paste(Str,as.character(Kosa*Iro[J]),sep="")
- if(J<4){
- Str=paste(Str,',',sep="")
- }
- }
- Str=paste(Str,'}%',sep="")
- cat(Str,file=Wfile,append=TRUE)
- }
-
-# CL<-c()
-# for (J in 0:N){
-# Tmp<- TenSize*0.5*1000/2.54/MilliIn
-# Tmp<- Tmp*c(cos(pi/4+J*2*pi/N),sin(pi/4+J*2*pi/N))
-# CL<- append(CL,Tmp)
-# }
-# CL<- matrix(CL,nrow=2)
-# CL<- t(CL)
- Mojisu=0
- for (II in Looprange(1,All)){
- MS<- varargin[[II]]
- MS=Flattenlist(MS) #17.10.28
- if (mode(MS)=="numeric"){
- MS<- list(MS)
- }
- for (I in Looprange(1,length(MS))){
- P<- MS[[I]]
- if (InWindow(P)!="i") next
- P<- Doscaling(P)
- X=sprintf('%5.5f',P[1])
- Y=sprintf('%5.5f',P[2])
- Str=paste('\\put(',X,',',Y,'){\\circle*{',sprintf('%6.6f',Ra),'}}',sep="")
- cat(Str,file=Wfile,append=TRUE)
- Mojisu=Mojisu+nchar(Str)
- if(Mojisu>80){
- cat("\n",file=Wfile,append=TRUE)
- Mojisu=0
- }
- }
- }
- Str="%"
- if(Iroflg>0){
- Str='}%'
- }
- if(Mojisu>0){
- Str=paste('\n',Str,'\n',sep="")
- }else{
- Fmt=paste(Str,'\n',sep="")
- }
- cat(Str,file=Wfile,append=TRUE)
-}
-
-# PL<-c()
-# for (J in 0:N){
-# PL<- c(PL,P+CL[J+1,])
-# }
-# PL<-matrix(PL,nrow=2)
-# PL<-t(PL)
-# Mojisu<-0
-# for (J in 1:Nrow(PL)){
-# Q<- PL[J,]
-# X<- as.character(round(MilliIn*Q[1]))
-# Y<- as.character(-round(MilliIn*Q[2]))
-# Str<- paste("\\special{pa ",X," ",Y,"}",sep="")
-# cat(Str,file=Wfile,append=TRUE)
-# Mojisu<- Mojisu+nchar(Str)
-# if (Mojisu>80){
-# cat("#\n",file=Wfile,append=TRUE)
-# }
-# Mojisu=0
-# }
-# Str1<- paste("\\special{sh ",as.character(Kosa),"}",sep="")
-# Str2<- "\\special{fp}%\n"
-# cat(Str1,file=Wfile,append=TRUE)
-# cat(Str2,file=Wfile,append=TRUE)
-# }
-# }
-#}
-
-######################################
-
-Makehasen<- function(Figdata,Sen,Gap,Ptn)
-{
- Eps<- 10.0^(-6)
- Clist<- MakeCurves(Figdata)
- DinM<- Dataindex(Clist)
- for (N in Looprange(1,Nrow(DinM))){
- Tmp<- DinM[N,]
- Data<- Clist[Tmp[1]:Tmp[2],]
- Dtall<- Nrow(Data)
- Len<- 0
- Lenlist<- c(0)
- for (I in Looprange(2,Dtall)){
- Len<- Len+Norm(Data[I,]-Data[I-1,])
- Lenlist<- c(Lenlist,Len)
- }
- Lenall<- Lenlist[Dtall]
- if (Lenall==0){
- next
- }
- Kari<- (Sen+Gap)*0.1
- Naga<- Sen*0.1
- Tobi<- Gap*0.1
- if (Norm(Data[1,]-Data[Dtall,])<Eps){
- Nsen<- max(ceiling(Lenall/Kari),3)
- SegUnit<- Lenall/Nsen
- Naga<- SegUnit*Sen/(Sen+Gap)
- Tobi<- SegUnit*Gap/(Sen+Gap)
- SegList<- c(seq(0,(Nsen-1)*SegUnit,by=SegUnit))
- }
- else{
- if (Ptn==0){
- Nsen<- max(ceiling((Lenall+Tobi)/Kari),3)
- SegUnit<- Lenall*(Sen+Gap)/(Nsen*Sen+(Nsen-1)*Gap)
- Naga<- SegUnit*Sen/(Sen+Gap)
- Tobi<- SegUnit*Gap/(Sen+Gap)
- SegList<- c(seq(0,(Nsen-1)*SegUnit,by=SegUnit))
- }
- else{
- Nsen<- max(ceiling((Lenall+Naga)/Kari),3)
- SegUnit<- Lenall*(Sen+Gap)/((Nsen-1)*Sen+Nsen*Gap)
- Naga<- SegUnit*Sen/(Sen+Gap)
- Tobi<- SegUnit*Gap/(Sen+Gap)
- SegList<- c(seq(Tobi,Tobi+(Nsen-2)*SegUnit,by=SegUnit))
- }
- }
- Hajime<- 1; Owari<- 1
- Mojisu<- 0
- for (I in Looprange(1,length(SegList))){
- Len<- SegList[I]
- J<- Owari
- while (Len>=Lenlist[J]-Eps){
- if (J==Dtall){
- break
- }
- J<- J+1
- }
- Hajime<- J-1
- J<- Hajime
- while (Len+Naga>Lenlist[J]-Eps){
- if (J==Dtall){
- break
- }
- J<- J+1
- }
- Owari<- J-1
- T<- (Len-Lenlist[Hajime])
- T<- T/(Lenlist[Hajime+1]-Lenlist[Hajime])
- P<- Data[Hajime,]+T*(Data[Hajime+1,]-Data[Hajime,])
- X0=sprintf('%5.5f',P[1])
- Y0=sprintf('%5.5f',P[2])
- Pt0=paste('(',X0,',',Y0,')',sep="")
- Str=paste('\\polyline',Pt0,sep="")
- cat(Str,file=Wfile,append=TRUE)
- Mojisu<- Mojisu+nchar(Str)
- for (J in Looprange(Hajime+1,Owari)){
- P=Data[J,]
- X=sprintf('%5.5f',P[1])
- Y=sprintf('%5.5f',P[2])
- Pt=paste('(',X,',',Y,')',sep="")
- Str=Pt
- cat(Str,file=Wfile,append=TRUE)
- Pt0=Pt
- Mojisu=Mojisu+nchar(Str)
- }
- T<- (Len+Naga-Lenlist[Owari])
- T<- T/(Lenlist[Owari+1]-Lenlist[Owari])
- P<- Data[Owari,]+T*(Data[Owari+1,]-Data[Owari,])
- X=sprintf('%5.5f',P[1])
- Y=sprintf('%5.5f',P[2])
- Pt=paste('(',X,',',Y,')',sep="")
- Str=Pt
- cat(Str,file=Wfile,append=TRUE)
- Mojisu<- Mojisu+nchar(Str)
- if (Mojisu>80){
- cat("%\n",file=Wfile,append=TRUE)
- Mojisu<- 0
- }
- }
- }
- cat("%\n%\n",file=Wfile,append=TRUE);
-}
-
-#########################################
-
-Beginpicture<-function(ul)
-{ ## Scaling is implemented
- Tmp<- Doscaling(c(XMIN,YMIN))
- Xm<- Tmp[1]
- Ym<- Tmp[2]
- Tmp<- Doscaling(c(XMAX,YMAX))
- XM<- Tmp[1]
- YM<- Tmp[2]
- Dx<- XM-Xm
- Dy<- YM-Ym
- Sym<-".0123456789 +-*/"
- SL<-Sym
- OL<-"+-*/"
- if (ul!=""){
- ULEN<<-ul;
- }
- Is<-1;
- VL<-"";
- Ucode<-ULEN
- for (I in Looprange(1,nchar(Ucode))){
- C<-substring(Ucode,I,I);
- if (length(grep(C,SL,fixed=TRUE))>0){
- if (length(grep(C,OL,fixed=TRUE))>0){
- Tmp<-substring(Ucode,Is,I-1);
- Str<-paste(VL,Tmp,C,sep="")
- VL<-Str
- Is<-I+1;
- }
- }
- else{
- Unit<-substring(Ucode,I,I+1);
- Str<-substring(Ucode,Is,I-1);
- VL<-paste(VL,Str,sep="")
- break;
- }
- }
- Valu<-eval(parse(text=VL));
- Str<-as.character(Valu);
- ULEN<<- paste(Str,Unit,sep="");
- if (Unit=="cm") MilliIn<<-1000/2.54*Valu
- if (Unit=="mm") MilliIn<<-1000/2.54*Valu/10
- if (Unit=="in") MilliIn<<-1000*Valu
- if (Unit=="pt") MilliIn<<-1000/72.27*Valu
- if (Unit=="pc") MilliIn<<-1000/6.022*Valu
- if (Unit=="bp") MilliIn<<-1000/72*Valu
- if (Unit=="dd2") MilliIn<<-1000/1238/1157/72.27*Valu
- if (Unit=="cc") MilliIn<<-1000/1238/1157/72.27*12*Valu;
- if (Unit=="sp") MilliIn<<-1000/72.27/65536*Valu/10
- MARKLEN<<- MARKLENNow*1000/2.54/MilliIn;
- Str<-paste("{\\unitlength=",ULEN,"%\n",sep="");
- cat(Str,file=Wfile,append=TRUE);
- cat("\\begin{picture}%\n",file=Wfile,append=TRUE);
- Str<-"(";
- Tmp<-as.character(round(Dx,digits=6));
- Str<-paste(Str,Tmp,",",sep="");
- Tmp<-as.character(round(Dy,digits=6));
- Str<-paste(Str,Tmp,")(",sep="");
- Tmp<-as.character(round(Xm,digits=6));
- Str<-paste(Str,Tmp,",",sep="");
- Tmp<-as.character(round(Ym,digits=6));
- Str<-paste(Str,Tmp,")%\n",sep="");
- cat(Str,file=Wfile,append=TRUE);
- Str=paste('\\linethickness{',as.character(PenThickInit/1000),'in}%',sep="")
- cat(Str,file=Wfile,append=TRUE)
- cat("%\n",file=Wfile,append=TRUE)
-}
-
-#########################################
-
-Setpen<-function(Width)
-{
- PenThick<<-round(PenThickInit*Width)
- Str=paste('\\linethickness{',as.character(PenThick/1000),'in}%',sep="")
- cat(Str,file=Wfile,append=TRUE)
- cat("%\n",file=Wfile,append=TRUE)
-}
-
-#########################################
-
-Shade<- function(...)
-{ ## Scaling is implemented
- varargin<- list(...)
- Nargs<- length(varargin)
- Iroflg=0
- if(Nargs>1){
- Iro=varargin[[Nargs]]
- if(is.character(Iro)){
- Iroflg=1
- if(length(grep("{",Iro,fixed=TRUE))>0){
- Str=paste("{\\color",Iro,sep="")
- }
- else{
- Str=paste("{\\color{",Iro,"}",sep="")
- }
- }
- else{
- if(length(Iro)==1){
- Kosa=Iro
- }
- else{
- Iroflg=1
- if(length(Iro)==4){
- Str="{\\color[cmyk]{"
- }
- else{
- if(length(Iro)==3){
- Str="{\\color[rgb]{"
- }
- }
- for(J in 1:length(Iro)){
- Str=paste(Str,as.character(Iro[J]),sep="")
- if(J<length(Iro)){
- Str=paste(Str,",")
- }
- }
- Str=paste(Str,"}")
- }
- }
- if(Iroflg==1){
- Str=paste(Str,"%\n",sep="")
- cat(Str,file=Wfile,append=TRUE)
- }
- }
- Mojisu=0
- Tmp=varargin[[1]]
- Data=Kyoukai(Tmp)
- for (I in Looprange(1, length(Data))){
- PL<- Op(I,Data)
- Mojisu<- 0
- for (J in 1:Nrow(PL)){
- P<- Doscaling(Op(J,PL))
- X=sprintf('%5.5f',P[1])
- Y=sprintf('%5.5f',P[2])
- Pt=paste('(',X,',',Y,')',sep="")
- if(J==1){
- Str=paste('\\polygon*',Pt,sep="")
- }else{
- Str=Pt
- }
- cat(Str,file=Wfile,append=TRUE)
- Mojisu<- Mojisu+nchar(Str)
- if (Mojisu>80){
- cat("%\n",file=Wfile,append=TRUE)
- Mojisu<- 0
- }
- }
- }
- if(Iroflg==1){
- Str='}%'
- if(Mojisu>0){
- Str=paste('\n',Str,'\n',sep="")
- }else{
- Str=paste(Str,'\n')
- }
- cat(Str,file=Wfile,append=TRUE)
- }
-}
diff --git a/texmf-dist/scripts/ketcindy/ketlib/maximaL/fourier_sec.max b/texmf-dist/scripts/ketcindy/ketlib/maximaL/fourier_sec.max
deleted file mode 100644
index c70f7f46..00000000
--- a/texmf-dist/scripts/ketcindy/ketlib/maximaL/fourier_sec.max
+++ /dev/null
@@ -1,260 +0,0 @@
-/*
-Package fourier_sec, to study piecewise defined functions
-(sectionally defined, hence the name).
-
-Author: Jose A. Vallejo
- Faculty of Sciences
- Universidad Autonoma de San Luis Potosi (Mexico)
- http://galia.fc.uaslp.mx/~jvallejo
-
-It is assumed that the functions are defined using the format
- if ... then ... else ...
-as, for example,
-(%i1) absolute(x):=if (x<=0) then -x elseif (x>0) then x$
-(it will not work with 'abs').
-It provides three functions:
-1. 'paritycheck', to check if a given piecewise defined
- function is even or odd (or none). For instance,
- (%i2) paritycheck(absolute(x),x);
- (%o2) 0
- A '0' means 'even', '1' is 'odd', and '-1' is 'none'
-2. 'fourier_sec_coeff', to compute the Fourier sine and cosine
- coefficients. The function must have compact support.For
- instance, for the unit step we have:
- (%i3) h(x):=if (-%pi<=x and x<0) then 0 elseif (0<=x and x<=%pi) then 1$
- (%i4) fourier_sec_coeff(h(x),x);
- (%o4) [1/2,0,-((-1)^n-1)/(%pi*n)]
-3. 'fourier_sec_series', to compute the Fourier series, truncated
- or not. The series for the unit step to the 10th order:
- (%i5) fourier_sec_series(h(x),x,10);
- (%o5) (2*sin(9*x))/(9*%pi)+(2*sin(7*x))/(7*%pi)+(2*sin(5*x))/(5*%pi)+(2*sin(3*x))/(3*%pi)+(2*sin(x))/%pi+1/2
- and the whole Fourier series
- (%i6) fourier_sec_series(h(x),x,inf);
- (%o6) (sum(((1/n-(-1)^n/n)*sin(n*x))/%pi,n,1,inf))+1/2
-*/
-
-
-load(fourie)$
-
-load(simplify_sum)$
-
-paritycheck(funvar,x):=block([subintervals,subvalues,tmp1,tmp2,token1,token0,tmp3,
- subvalues_list,subintervals_list,icentral:0,middle,minusmiddle,token2,
- side_subintervals_list,L,side_subvalues_list,
- zero_subintervals,tmp4,tmp5,non_zero_side_subvalues_list,
- non_zero_side_subintervals_list,LL,token3,expr1,expr2],
- local(M,N,P,Q,count1,count2,count3,count4),
- subintervals:makelist(part(funvar,i),i,makelist(2*k-1,k,1,(length(funvar)-2)/2)),
- subvalues:makelist(part(funvar,i),i,makelist(2*k,k,1,(length(funvar)-2)/2)),
- for j:1 thru length(subintervals) do (if operatorp(subintervals[j],["<",">","<=",">="]) then tmp1[j]:1 else tmp1[j]:0),
- tmp1:makelist(tmp1[j],j,1,length(subintervals)),
- tmp2:sublist_indices(tmp1,lambda([x],x=1)),
-
- /* if length(tmp2)=0 all the subintervals in the domain of funvar are bounded! */
-
- if is(equal(length(tmp2),0)) then
- (
- subvalues_list:copylist(subvalues),
- tmp3:copylist(subintervals),
- for j:1 thru length(tmp3) do
- (
- M[j]:makelist(part(tmp3[j],k),k,1,length(tmp3[j])),
- for m:1 thru 2 do N[j,m]:makelist(part(M[j],m,n),n,1,length(M[j])),
- P[j]:append(N[j,1],N[j,2]),Q[j]:sort(delete(x,P[j]),"<")
- ),
- subintervals_list:makelist(Q[j],j,1,length(tmp3)),
- for i:1 thru length(subintervals_list) do (if is(lmin(subintervals_list[i])*lmax(subintervals_list[i])<0) then icentral:i),
- if is(icentral>0) then middle:subvalues_list[icentral],
- if is(icentral>0) then
- (if evenfunp(middle,x) then token2:0 elseif oddfunp(middle,x) then token2:1 else return(-1))
- else
-
- /* now we analyze what happens if icentral=0, so there are only side intervals */
-
- (
- /* as before, there must be an even number of symmetric intervals, otherwise -1 */
- side_subintervals_list:copylist(subintervals_list),
- if not(evenp(length(side_subintervals_list))) then return(-1),
- L:length(side_subintervals_list)/2,
- for k:1 thru L do count1[k]:charfun(is(equal(side_subintervals_list[k],reverse(map("-",side_subintervals_list[2*L+1-k]))))),
- if sum(count1[j],j,1,L)#L then return(-1),
- side_subvalues_list:copylist(subvalues_list),
- for k:1 thru L do count2[k]:charfun(is(equalp(side_subvalues_list[k],ratsubst(-x,x,side_subvalues_list[2*L+1-k])))),
- if is(equal(sum(count2[j],j,1,L),L)) then token3:0,
- for k:1 thru L do count3[k]:charfun(is(equalp(side_subvalues_list[k],-ratsubst(-x,x,side_subvalues_list[2*L+1-k])))),
- if is(equal(sum(count3[j],j,1,L),L)) then token3:1,
- if is(not(equalp(token3,0)) and not(equalp(token3,1))) then return(-1) ,
- return(token3)
- ),
-
- /* and what happens if icentral#0 */
-
- side_subintervals_list:delete(subintervals_list[icentral],subintervals_list),
- if is(equal(length(side_subintervals_list),0)) then (if is(equal(token1,token2)) then return(token1*token2) else return(-1)),
- if not(evenp(length(side_subintervals_list))) then return(-1),
- L:length(side_subintervals_list)/2,
- for k:1 thru L do count1[k]:charfun(is(equal(side_subintervals_list[k],reverse(map("-",side_subintervals_list[2*L+1-k]))))),
- if sum(count1[j],j,1,L)#L then return(-1),
- side_subvalues_list:delete(subvalues_list[icentral],subvalues_list),
-
- /* remove those subintervals in which funvar vanishes */
-
- zero_subintervals:sublist_indices(side_subvalues_list,lambda([x],x=0)),
- tmp4:copylist(side_subintervals_list),
- for j:1 thru length(zero_subintervals) do
- (tmp4:delete(side_subintervals_list[zero_subintervals[j]],tmp4)),
- non_zero_side_subintervals_list:tmp4,
- tmp5:copylist(side_subvalues_list),
- for j:1 thru length(zero_subintervals) do
- (tmp5:delete(side_subvalues_list[zero_subintervals[j]],tmp5)),
- non_zero_side_subvalues_list:tmp5,
-
- /* if length(non_zero_side_subintervals_list)=0 then we are done just with token2 */
-
- if is(equal(length(non_zero_side_subintervals_list),0)) then return(token2),
-
- /* otherwise, we must also take into account token3 */
- LL:length(non_zero_side_subintervals_list)/2,
- for k:1 thru LL do count2[k]:charfun(is(equalp(non_zero_side_subvalues_list[k],ratsubst(-x,x,non_zero_side_subvalues_list[2*LL+1-k])))),
- if is(equal(sum(count2[j],j,1,LL),LL)) then token3:0,
- for k:1 thru LL do count3[k]:charfun(is(equalp(non_zero_side_subvalues_list[k],-ratsubst(-x,x,non_zero_side_subvalues_list[2*LL+1-k])))),
- if is(equal(sum(count3[j],j,1,LL),LL)) then token3:1,
- if is(not(equal(token3,0) or equal(token3,1))) then return(-1) elseif
- is(token2#token3) then return(-1)
- elseif is(equal(token2,0)) then return(0)
- elseif is(equal(token2,1)) then return(1)
-
- ),
-
- /* we continue here with unbounded intervals */
-
- expr1:subvalues[tmp2[1]],
- expr2:ratsubst(-x,x,subvalues[tmp2[2]]),
- if is(equalp(expr1,expr2)) then token1:0
- elseif is(equalp(expr1,-expr2)) then token1:1
- else return(-1),
-
- /* the problem when defining token1 is that if the asymptotic value is 0, then it is always token1:0 */
- /* although the function could be odd. To cope with this, we define token0 below */
-
- tmp3:makelist(subintervals[i],i,sublist_indices(tmp1,lambda([x],x=0))),
- if is(equal(length(tmp3),0)) then return(token1),
- subvalues_list:makelist(subvalues[i],i,sublist_indices(tmp1,lambda([x],x=0))),
- token0:if member(0,makelist(subvalues[i],i,tmp2)) then 0 else 7,
- for j:1 thru length(tmp3) do
- (
- M[j]:makelist(part(tmp3[j],k),k,1,length(tmp3[j])),
- for m:1 thru 2 do N[j,m]:makelist(part(M[j],m,n),n,1,length(M[j])),
- P[j]:append(N[j,1],N[j,2]),Q[j]:sort(delete(x,P[j]),"<")
- ),
- subintervals_list:makelist(Q[j],j,1,length(tmp3)),
- for i:1 thru length(subintervals_list) do (if is(lmin(subintervals_list[i])*lmax(subintervals_list[i])<0) then icentral:i),
- if is(icentral>0) then middle:subvalues_list[icentral],
- if is(icentral>0) then
- (if evenfunp(middle,x) then token2:0 elseif oddfunp(middle,x) then token2:1 else return(-1))
- else
-
- /* now we analyze what happens if icentral=0, so there are only non-bounded intervals and side intervals */
-
- (
- /* as before, there must be an even number of symmetric intervals, otherwise -1 */
- side_subintervals_list:copylist(subintervals_list),
- if not(evenp(length(side_subintervals_list))) then return(-1),
- L:length(side_subintervals_list)/2,
- for k:1 thru L do count1[k]:charfun(is(equal(side_subintervals_list[k],reverse(map("-",side_subintervals_list[2*L+1-k]))))),
- if sum(count1[j],j,1,L)#L then return(-1),
- side_subvalues_list:copylist(subvalues_list),
- for k:1 thru L do count2[k]:charfun(is(equalp(side_subvalues_list[k],ratsubst(-x,x,side_subvalues_list[2*L+1-k])))),
- if is(equal(sum(count2[j],j,1,L),L)) then token3:0,
- for k:1 thru L do count3[k]:charfun(is(equalp(side_subvalues_list[k],-ratsubst(-x,x,side_subvalues_list[2*L+1-k])))),
- if is(equal(sum(count3[j],j,1,L),L)) then token3:1,
- if is(not(equal(token3,0)) and not(equal(token3,1))) then return(-1) elseif
- is(not(equal(token1,token3)) and not(equal(token0,0))) then return(-1)
- elseif is( equal(token0,0) and equal(token3,0)) then return(0)
- elseif is( equal(token0,0) and equal(token3,1)) then return(1)
- elseif is(not(equal(token0,0)) and equal(token1,token3)) then return(token3)
- elseif is(not(equal(token0,0)) and not(equal(token1,token3))) then return(-1)
- ),
-
- /* and what happens if icentral#0 */
-
- side_subintervals_list:delete(subintervals_list[icentral],subintervals_list),
- if is(equal(length(side_subintervals_list),0)) then (if is(equal(token1,token2)) then return(token1*token2) else return(-1)),
- if not(evenp(length(side_subintervals_list))) then return(-1),
- L:length(side_subintervals_list)/2,
- for k:1 thru L do count1[k]:charfun(is(equal(side_subintervals_list[k],reverse(map("-",side_subintervals_list[2*L+1-k]))))),
- if sum(count1[j],j,1,L)#L then return(-1),
- side_subvalues_list:delete(subvalues_list[icentral],subvalues_list),
-
- /* remove those subintervals in which funvar vanishes */
-
- zero_subintervals:sublist_indices(side_subvalues_list,lambda([x],x=0)),
- tmp4:copylist(side_subintervals_list),
- for j:1 thru length(zero_subintervals) do
- (tmp4:delete(side_subintervals_list[zero_subintervals[j]],tmp4)),
- non_zero_side_subintervals_list:tmp4,
- tmp5:copylist(side_subvalues_list),
- for j:1 thru length(zero_subintervals) do
- (tmp5:delete(side_subvalues_list[zero_subintervals[j]],tmp5)),
- non_zero_side_subvalues_list:tmp5,
-
- /* if length(non_zero_side_subintervals_list)=0 then we are done just with token1 and token2 */
-
- if is(equal(length(non_zero_side_subintervals_list),0)) then (if is(equal(token1,token2)) then return(token1*token2) else return(-1)),
-
- /* otherwise, we must also take into account token3 */
- LL:length(non_zero_side_subintervals_list)/2,
- for k:1 thru LL do count2[k]:charfun(is(equalp(non_zero_side_subvalues_list[k],ratsubst(-x,x,non_zero_side_subvalues_list[2*LL+1-k])))),
- if is(equal(sum(count2[j],j,1,LL),LL)) then token3:0,
- for k:1 thru LL do count3[k]:charfun(is(equalp(non_zero_side_subvalues_list[k],-ratsubst(-x,x,non_zero_side_subvalues_list[2*LL+1-k])))),
- if is(equal(sum(count3[j],j,1,LL),LL)) then token3:1,
- if is(not(equal(token0,0)) and is(not(equal(token1,token2)) or not(equal(token1,token3)) or not(equal(token2,token3))) ) then return(-1)
- elseif is(not(equal(token0,0)) and is(equal(token1,0)) ) then return(0)
- elseif is(not(equal(token0,0)) and is(equal(token1,1)) ) then return(1)
- elseif is( equal(token0,0) and equal(token3,0) and equal(token2,0)) then return(0)
- elseif is( equal(token0,0) and equal(token3,1) and equal(token2,1)) then return(1)
- else return(-1)
-
-)$
-
-fourier_sec_coeff(fuvar,x):=
-block([pp,LL,lm,a0,coeff],
- local(a,b,n,MM,NN,PP,QQ),
- declare(n,integer),
- pp:((length(fuvar)/2)-1),
- LL:makelist(part(fuvar,i),i,makelist(2*s-1,s,1,pp)),
- for j:1 thru length(LL) step 1 do
- (
- MM[j]:makelist(part(LL[j],r),r,1,length(LL[j])),
- for r:1 thru 2 do NN(j,r):=makelist(part(MM[j],r,k),k,1,length(MM[j])),
- PP[j]:append(NN(j,1),NN(j,2)),QQ[j]:delete(x,PP[j])
- ),
- for i:1 thru pp step 1 do partsums[i]:sort(QQ[i],"<"),
- for i:1 thru pp step 1 do partfunc[i]:part(fuvar,2*i),
- lm:lmax(unique(flatten(makelist(QQ[q],q,1,length(LL))))),
- a0:(1/(2*lm))*sum(integrate(partfunc[i],x,partsums[i][1],partsums[i][2]),i,1,pp),
- if is(equal(paritycheck(fuvar,x),1)) then a(n):=0 else a(n):=(1/lm)*sum(adefint(partfunc[i]*cos(%pi*n*x/lm),x,partsums[i][1],partsums[i][2]),i,1,pp),
- if is(equal(paritycheck(fuvar,x),0)) then b(n):=0 else b(n):=(1/lm)*sum(adefint(partfunc[i]*sin(%pi*n*x/lm),x,partsums[i][1],partsums[i][2]),i,1,pp),
- coeff:[a0,simplify_sum(a(n)),simplify_sum(b(n))],
- factor(ratsimp(coeff))
-)$
-
-fourier_sec_series(fuvar,x,u):=
-block([pp,LL,lm,a0,coeff],
- local(a,b,n,MM,NN,PP,QQ),
- declare(n,integer),
- pp:((length(fuvar)/2)-1),
- LL:makelist(part(fuvar,i),i,makelist(2*s-1,s,1,pp)),
- for j:1 thru length(LL) step 1 do
- (
- MM[j]:makelist(part(LL[j],r),r,1,length(LL[j])),
- for r:1 thru 2 do NN(j,r):=makelist(part(MM[j],r,k),k,1,length(MM[j])),
- PP[j]:append(NN(j,1),NN(j,2)),QQ[j]:delete(x,PP[j])
- ),
- for i:1 thru pp step 1 do partsums[i]:sort(QQ[i],"<"),
- for i:1 thru pp step 1 do partfunc[i]:part(fuvar,2*i),
- lm:lmax(unique(flatten(makelist(QQ[q],q,1,length(LL))))),
- a0:(1/(2*lm))*sum(integrate(partfunc[i],x,partsums[i][1],partsums[i][2]),i,1,pp),
- if is(equal(paritycheck(fuvar,x),1)) then a(n):=0 else a(n):=(1/lm)*sum(adefint(partfunc[i]*cos(%pi*n*x/lm),x,partsums[i][1],partsums[i][2]),i,1,pp),
- if is(equal(paritycheck(fuvar,x),0)) then b(n):=0 else b(n):=(1/lm)*sum(adefint(partfunc[i]*sin(%pi*n*x/lm),x,partsums[i][1],partsums[i][2]),i,1,pp),
- a0+intosum(sum(a(n)*cos(%pi*n*x/lm),n,1,u))+intosum(sum(b(n)*sin(%pi*n*x/lm),n,1,u)))$ \ No newline at end of file
diff --git a/texmf-dist/scripts/ketcindy/ketlib/maximaL/matoperation.max b/texmf-dist/scripts/ketcindy/ketlib/maximaL/matoperation.max
deleted file mode 100644
index 512a9ffb..00000000
--- a/texmf-dist/scripts/ketcindy/ketlib/maximaL/matoperation.max
+++ /dev/null
@@ -1,47 +0,0 @@
-/* Maxima tips http://www.cymric.jp/maxima/tips.html */
-
-rowmult(X, n, c) := block([M],
- M:matrix(),
- for i:1 thru length(X) do
- if i=n then M:addrow(M, c*row(X, i))
- else M:addrow(M, row(X, i)),
- M
-);
-rowadd(X, n, m, c) := block([M],
- M:matrix(),
- for i:1 thru length(X) do
- if i=n then M:addrow(M, c * row(X, m) + row(X, i))
- else M:addrow(M, row(X, i)),
- M
-);
-rowch(X, m, n) := block([M],
- M:matrix(),
- for i:1 thru length(X) do
- if i=m then M:addrow(M, row(X, n))
- else if i=n then M:addrow(M, row(X, m))
- else M:addrow(M, row(X, i)),
- M
-);
-
-colmult(X, n, c) := block([M],
- M:matrix(),
- for i:1 thru length(transpose(X)) do
- if i=n then M:addcol(M, c*col(X, i))
- else M:addcol(M, col(X, i)),
- M
-);
-coladd(X, n, m, c) := block([M],
- M:matrix(),
- for i:1 thru length(transpose(X)) do
- if i=n then M:addcol(M, c * col(X, m) + col(X, i))
- else M:addcol(M, col(X, i)),
- M
-);
-colch(X, m, n) := block([M],
- M:matrix(),
- for i:1 thru length(transpose(X)) do
- if i=m then M:addcol(M, col(X, n))
- else if i=n then M:addcol(M, col(X, m))
- else M:addcol(M, col(X, i)),
- M
-);
diff --git a/texmf-dist/scripts/ketcindy/ketlib/maximaL/poincare.mac b/texmf-dist/scripts/ketcindy/ketlib/maximaL/poincare.mac
deleted file mode 100644
index aefab3a2..00000000
--- a/texmf-dist/scripts/ketcindy/ketlib/maximaL/poincare.mac
+++ /dev/null
@@ -1,71 +0,0 @@
-/* Poincare.mac is a set of routines for the computation
-of Poincare surfaces of sections of Hamiltonian systems */
-
-/* Author: Jose A Vallejo
-Universidad Autonoma de San Luis Potosi (Mexico)
-josanv@gmail.com */
-
-/* To avoid messages when loading draw, execute
-with_stdout("/dev/null",load(draw))$ (in Linux)
-with_stdout("NUL",load(draw))$ (in Windows) */
-
-/* Poincare.mac requires a compiled version of
-rkfun.lisp, a LISP implementation of the RK4
-algorithm due to Richard Fateman. The original
-code can be downloaded from
-https://people.eecs.berkeley.edu/~fateman/lisp/rkfun.lisp */
-
-/*load("rkfun.fasl");*/
-/*load("rkfun.lisp");*/
-
-
-hameqs(H,name):=block(
-[vv,t,tvv,n,Q,P,eqq,eqp,eqs],
-vv:args(lhs(apply(fundef,[H]))),
-tvv:cons(t,vv),
-n:length(vv)/2,
-Q:makelist(vv[2*j-1],j,1,n),
-P:makelist(vv[2*k],k,1,n),
-eqq:makelist(float(diff(apply(H,vv),P[j])),j,1,n),
-eqp:makelist(float(-diff(apply(H,vv),Q[j])),j,1,n),
-eqs:join(eqq,eqp),
-for j:1 thru 2*n do define(funmake(concat(name,j),tvv),block([],mode_identity(float,vv),eqs[j])),
-apply(compile,makelist(concat(name,j),j,1,2*n)),
-[makelist(apply(concat(name,j),tvv),j,1,2*n),vv,makelist(concat(name,j),j,1,2*n)]
-)$
-
-lextract(ll,n):=block([l,a,b],
-l:length(ll),
-a:rest(ll,n),
-b:rest(ll,n-l-1),
-append(b,a)
-)$
-
-poincare3d(H,name,inicond,timestep,coord):=block(
-[heq,vars,tvars,hfuns,c,sol],
-heq:hameqs(H,name),
-vars:heq[2],
-tvars:cons(t,vars),
-hfuns:heq[3],
-c:first(sublist_indices(vars,lambda([x],x=coord))),
-sol:rkfun(hfuns,tvars,float(inicond),timestep),
-map(lambda([x],lextract(x,c)),map(lambda([x],rest(x)),sol))
-)$
-
-poincare2d(H,name,inicond,timestep,scene):=block(
-[heq,vars,tvars,hfuns,solu,c,soluc,sola,solb,subind,sol,e,f],
-heq:hameqs(H,name),
-vars:heq[2],
-tvars:cons(t,vars),
-hfuns:heq[3],
-solu:rkfun(hfuns,tvars,float(inicond),timestep),
-c:first(sublist_indices(vars,lambda([x],x=first(scene)))),
-soluc:map(lambda([x],x[c+1]),solu),
-sola:rest(soluc,-1)-second(scene),
-solb:rest(soluc)-second(scene),
-subind:sublist_indices(sola*solb,lambda([x],is(x < 0))),
-sol:makelist(solu[k],k,subind),
-e:first(sublist_indices(vars,lambda([x],x=third(scene))))+1,
-f:first(sublist_indices(vars,lambda([x],x=fourth(scene))))+1,
-makelist([j[e],j[f]],j,sol)
-)$ \ No newline at end of file
diff --git a/texmf-dist/scripts/ketcindy/ketlib/maximaL/rkfun.lisp b/texmf-dist/scripts/ketcindy/ketlib/maximaL/rkfun.lisp
deleted file mode 100644
index 70aafc7f..00000000
--- a/texmf-dist/scripts/ketcindy/ketlib/maximaL/rkfun.lisp
+++ /dev/null
@@ -1,99 +0,0 @@
-;; variation on runge-kutta (rk) routine in complex_dynamics.lisp by villate@fe.up.pt
-;; this one with changed by fateman@berkeley.edu
-
-#| rkfun may be much faster than rk because it calls compiled programs.
- rkfun (this file) should also be compiled to speed it up.
- how to use:
-
-
- first, read and understand the documentation for rk().
- next, define the ODE right hand sides as functions as shown below
-
-fun1(y,x,x0):= x0$
-fun2(y,x,x0):= block([], mode_declare([y, x0,x],float),(1-x^2)*x0-x);
-compile(fun1)$
-compile(fun2)$
-showtime:all$
-
-last(rkfun([fun1,fun2],[x,xdot],[0.0,0.6],[t,0,50,0.01]));
-
-/* which is, in one test, 18 times faster than */
-
-last(rk([xdot,(1-x^2)*xdot -x],[x,xdot],[0.0,0.6],[t,0,50,0.01]));
-
-|#
-
-(defun $rkfun (funs vars initial domain ;; taken from complex_dynamics.lisp
- &aux d u funlist k1 k2 k3 k4 r1 r2 r3 traj r
- (it (mapcar #'coerce-float (cddr domain))))
- (unless ($listp funs) (setq funs `((mlist) ,funs)))
- (unless ($listp initial) (setq initial `((mlist) ,initial)))
- (unless ($listp vars) (setq vars `((mlist) ,vars)))
- (dolist (var (cdr vars))
- (unless (symbolp var)
- (merror (intl:gettext "rk: variable name expected; found: ~M") var)))
- (unless (symbolp (cadr domain))
- (merror (intl:gettext "rk: variable name expected; found: ~M")
- (cadr domain)))
- (setq vars (append '((mlist)) (list (cadr domain)) (cdr vars)))
- (setq r (append `(,(car it)) (mapcar #'coerce-float (cdr initial))))
- (setq funlist (cdr funs))
-
- (setq d (/ (- (cadr it) (car it)) (caddr it)))
- (setq traj (list (cons '(mlist) r)))
- (do ((m 1 (1+ m))) ((> m d))
- (progn ;;; was ignore-errors
- (setq k1 (mapcar #'(lambda (x) (apply x r)) funlist))
- (setq r1 (map 'list #'+ (cdr r) (mapcar #'(lambda (x) (* 0.5d0 (caddr it) x)) k1)))
- (push (+ (car r) (/ (caddr it) 2)) r1)
- (setq k2 (mapcar #'(lambda (x) (apply x r1)) funlist))
- (setq r2 (map 'list #'+ (cdr r) (mapcar #'(lambda (x) (* 0.5d0(caddr it) x)) k2)))
- (push (+ (car r) (/ (caddr it) 2)) r2)
- (setq k3 (mapcar #'(lambda (x) (apply x r2)) funlist))
- (setq r3 (map 'list #'+ (cdr r) (mapcar #'(lambda (x) (* (caddr it) x)) k3)))
- (push (+ (car r) (caddr it)) r3)
- (setq k4 (mapcar #'(lambda (x) (apply x r3)) funlist))
- (setq u (map 'list #'+
- (mapcar #'(lambda (x) (* #.(/ 1.0 6.0d0) x)) k1)
- (mapcar #'(lambda (x) (* #.(/ 1.0 3.0d0) x)) k2)
- (mapcar #'(lambda (x) (* #.(/ 1.0 3.0d0) x)) k3)
- (mapcar #'(lambda (x) (* #.(/ 1.0 6.0d0) x)) k4)))
- (setq r
- (append
- `(,(+ (car it) (* m (caddr it))))
- (map 'list #'+ (cdr r) (mapcar #'(lambda (x) (* (caddr it) x)) u))))
- (push (cons '(mlist) r) traj)))
- (when (< (car r) (cadr it))
- (let ((s (- (cadr it) (car r))) )
- (declare(double-float s)(special s)(optimize (speed 3)(safety 0)))
- (progn ;; was ignore-errors
- (setq k1 (mapcar #'(lambda (x) (mapply x r nil)) funlist))
- (setq r1 (map 'list #'+ (cdr r) (mapcar #'(lambda (x)
- (declare(double-float x))
- (* s 0.5d0 x)) k1)))
- (push (+ (car r) (* 0.5d0 s)) r1)
- (setq k2 (mapcar #'(lambda (x) (mapply x r1 nil)) funlist))
- (setq r2 (map 'list #'+ (cdr r) (mapcar #'(lambda (x)(declare(double-float x))
- (* s 0.5d0 x)) k2)))
- (push (+ (car r) (* 0.5d0 s)) r2)
- (setq k3 (mapcar #'(lambda (x) (mapply x r2 nil)) funlist))
- (setq r3 (map 'list #'+ (cdr r) (mapcar #'(lambda (x)(declare(double-float x))
- (* s x)) k3)))
- (push (+ (car r) s) r3)
- (setq k4 (mapcar #'(lambda (x) (mapply x r3 nil)) funlist))
- (setq u (map 'list #'+
- (mapcar #'(lambda (x)(declare(double-float x))
- (* #.(/ 1.0d0 6.0d0) x)) k1)
- (mapcar #'(lambda (x)(declare(double-float x))
- (* #.(/ 1.0d0 3.0d0) x)) k2)
- (mapcar #'(lambda (x) (declare(double-float x))
- (* #.(/ 1.0d0 3.0d0) x)) k3)
- (mapcar #'(lambda (x)(declare(double-float x))
- (* #.(/ 1.0d0 6.0d0) x)) k4)))
- (setq r
- (append
- `(,(cadr it))
- (map 'list #'+ (cdr r) (mapcar #'(lambda (x)(declare(double-float x))
- (* s x)) u))))
- (push (cons '(mlist) r) traj))))
- (cons '(mlist) (nreverse traj))) \ No newline at end of file
diff --git a/texmf-dist/scripts/ketcindy/ketlib/oshima/os_muldif.pdf b/texmf-dist/scripts/ketcindy/ketlib/oshima/os_muldif.pdf
deleted file mode 100644
index 33864232..00000000
--- a/texmf-dist/scripts/ketcindy/ketlib/oshima/os_muldif.pdf
+++ /dev/null
Binary files differ
diff --git a/texmf-dist/scripts/ketcindy/ketlib/oshima/os_muldif.rr b/texmf-dist/scripts/ketcindy/ketlib/oshima/os_muldif.rr
deleted file mode 100644
index ba7131ab..00000000
--- a/texmf-dist/scripts/ketcindy/ketlib/oshima/os_muldif.rr
+++ /dev/null
@@ -1,19295 +0,0 @@
-/* The latest version will be at ftp://akagi.ms.u-tokyo.ac.jp/pub/math/muldif
- scp os_muldif.[dp]* ${USER}@lemon.math.kobe-u.ac.jp:/home/web/OpenXM/Current/doc/other-docs
-*/
-#define USEMODULE 1
-/* #undef USEMODULE */
-
-/* os_muldif.rr (Library for Risa/Asir)
- * Toshio Oshima (Nov. 2007 - Aug. 2017)
- *
- * For polynomials and differential operators with coefficients
- * in rational funtions (See os_muldif.pdf)
- *
- * "Tab = 4 column" is best
- */
-
-ord([zz,dz,dy,dx])$
-
-#ifdef USEMODULE
-module os_md;
-static Muldif.rr$
-static TeXEq$
-static TeXLim$
-static DIROUT$
-static DIROUTD$
-static DVIOUTL$
-static DVIOUTA$
-static DVIOUTB$
-static DVIOUTH$
-static DVIOUTF$
-static LCOPT$
-static COLOPT$
-static LPOPT$
-static LFOPT$
-static ErMsg$
-static FLIST$
-static IsYes$
-static XYPrec$
-static XYcm$
-static TikZ$
-static XYLim$
-static Canvas$
-static ID_PLOT$
-static Rand$
-static LQS$
-localf spType2$
-localf erno$
-localf chkfun$
-localf makev$
-localf shortv$
-localf makenewv$
-localf vweyl$
-localf mycat$
-localf mycat0$
-localf fcat$
-localf findin$
-localf countin$
-localf mycoef$
-localf mydiff$
-localf myediff$
-localf m2l$
-localf m2ll$
-localf mydeg$
-localf pfctr$
-localf mymindeg$
-localf m1div$
-localf mulsubst$
-localf cmpsimple$
-localf simplify$
-localf monotos$
-localf minustos$
-localf monototex$
-localf vnext$
-localf ldict$
-localf ndict$
-localf nextsub$
-localf nextpart$
-localf transpart$
-localf trpos$
-localf sprod$
-localf sinv$
-localf slen$
-localf sord$
-localf vprod$
-localf dvangle$
-localf dvprod$
-localf dnorm$
-localf mulseries$
-localf pluspower$
-localf vtozv$
-localf dupmat$
-localf matrtop$
-localf mytrace$
-localf mydet$
-localf mperm$
-localf mtranspose$
-localf mtoupper$
-localf mydet2$
-localf myrank$
-localf meigen$
-localf transm$
-localf vgen$
-localf mmc$
-localf lpgcd$
-localf mdivisor$
-localf mdsimplify$
-localf m2mc$
-localf easierpol$
-localf paracmpl$
-localf mykernel$
-localf myimage$
-localf mymod$
-localf mmod$
-localf ladd$
-localf lchange$
-localf llsize$
-localf llbase$
-localf lsort$
-localf lmax$
-localf lmin$
-localf lgcd$
-localf llcm$
-localf ldev$
-localf lsol$
-localf lnsol$
-localf l2p$
-localf m2v$
-localf lv2m$
-localf m2lv$
-localf s2m$
-localf c2m$
-localf m2diag$
-localf myinv$
-localf madjust$
-localf mpower$
-localf mrot$
-localf texlen$
-localf isdif$
-localf fctrtos$
-localf texlim$
-localf fmult$
-localf radd$
-localf getel$
-localf ptol$
-localf rmul$
-localf mtransbys$
-localf drawopt$
-localf execdraw$
-localf execproc$
-localf myswap$
-localf mysubst$
-localf evals$
-localf myval$
-localf myeval$
-localf mydeval$
-localf myfeval$
-localf myf2eval$
-localf myf3eval$
-localf myfdeval$
-localf myf2deval$
-localf myf3deval$
-localf myexp$
-localf mycos$
-localf mysin$
-localf mytan$
-localf myarg$
-localf myasin$
-localf myacos$
-localf myatan$
-localf mylog$
-localf mypow$
-localf scale$
-localf arg$
-localf sqrt$
-localf gamma$
-localf lngamma$
-localf digamma$
-localf dilog$
-localf zeta$
-localf eta$
-localf jell$
-localf frac$
-localf erfc$
-localf orthpoly$
-localf schurpoly$
-localf fouriers$
-localf todf$
-localf f2df$
-localf df2big$
-localf compdf$
-localf fzero$
-localf fmmx$
-localf flim$
-localf fcont$
-localf fresidue$
-localf mmulbys$
-localf appldo$
-localf appledo$
-localf muldo$
-localf jacobian$
-localf hessian$
-localf wronskian$
-localf adj$
-localf laplace1$
-localf laplace$
-localf mce$
-localf mc$
-localf rede$
-localf ad$
-localf add$
-localf vadd$
-localf addl$
-localf cotr$
-localf rcotr$
-localf muledo$
-localf mulpdo$
-localf transpdosub$
-localf transpdo$
-localf translpdo$
-localf rpdiv$
-localf mygcd$
-localf mylcm$
-localf sftpexp$
-localf applpdo$
-localf tranlpdo$
-localf divdo$
-localf qdo$
-localf sqrtdo$
-localf ghg$
-localf ev4s$
-localf b2e$
-localf sftpow$
-localf sftpowext$
-localf polinsft$
-localf pol2sft$
-localf polroots$
-localf fctri$
-localf binom$
-localf expower$
-localf seriesHG$
-localf seriesMc$
-localf seriesTaylor$
-localf evalred$
-localf toeul$
-localf fromeul$
-localf sftexp$
-localf fractrans$
-localf soldif$
-localf chkexp$
-localf sqrtrat$
-localf getroot$
-localf expat$
-localf polbyroot$
-localf polbyvalue$
-localf pcoef$
-localf prehombf$
-localf prehombfold$
-localf sub3e$
-localf fuchs3e$
-localf okubo3e$
-localf eosub$
-localf even4e$
-localf odd5e$
-localf extra6e$
-localf rigid211$
-localf solpokuboe$
-localf stoe$
-localf dform$
-localf polinvsym$
-localf polinsym$
-localf tohomog$
-localf substblock$
-localf okuboetos$
-localf heun$
-localf fspt$
-localf abs$
-localf sgn$
-localf calc$
-localf isint$
-localf israt$
-localf iscrat$
-localf isalpha$
-localf isnum$
-localf isalphanum$
-localf isdecimal$
-localf isvar$
-localf isyes$
-localf isall$
-localf iscoef$
-localf iscombox$
-localf sproot$
-localf spgen$
-localf chkspt$
-localf cterm$
-localf terms$
-localf polcut$
-localf redgrs$
-localf cutgrs$
-localf mcgrs$
-localf mc2grs$
-localf mcmgrs$
-localf anal2sp$
-localf delopt$
-localf str_char$
-localf str_pair$
-localf str_cut$
-localf str_str$
-localf str_subst$
-localf str_times$
-localf str_tb$
-localf strip$
-localf i2hex$
-localf sjis2jis$
-localf jis2sjis$
-localf s2os$
-localf l2os$
-localf r2os$
-localf s2euc$
-localf s2sjis$
-localf r2ma$
-localf evalma$
-localf ssubgrs$
-localf verb_tex_form$
-localf tex_cuteq$
-localf my_tex_form$
-localf texket$
-localf smallmattex$
-localf divmattex$
-localf dviout0$
-localf myhelp$
-localf isMs$
-localf showbyshell$
-localf readcsv$
-localf tocsv$
-localf getbyshell$
-localf show$
-localf dviout$
-localf rtotex$
-localf mtotex$
-localf ltotex$
-localf texbegin$
-localf texcr$
-localf texsp$
-localf getbygrs$
-localf mcop$
-localf shiftop$
-localf conf1sp$
-localf pgen$
-localf diagm$
-localf mgen$
-localf madj$
-localf newbmat$
-localf unim$
-localf pfrac$
-localf cfrac$
-localf cfrac2n$
-localf sqrt2rat$
-localf s2sp$
-localf sp2grs$
-localf fimag$
-localf trig2exp$
-localf intpoly$
-localf integrate$
-localf simplog$
-localf fshorter$
-localf isshortneg$
-localf intrat$
-localf powsum$
-localf bernoulli$
-localf lft01$
-localf linfrac01$
-localf nthmodp$
-localf issquaremodp$
-localf rootmodp$
-localf rabin$
-localf primroot$
-localf varargs$
-localf ptype$
-localf pfargs$
-localf average$
-localf sint$
-localf frac2n$
-localf xyproc$
-localf xypos$
-localf xyput$
-localf xybox$
-localf xyline$
-localf xylines$
-localf xycirc$
-localf xybezier$
-localf lbezier$
-localf draw_bezier$
-localf tobezier$
-localf velbezier$
-localf ptbezier$
-localf cutf$
-localf fsum$
-localf fint$
-localf periodicf$
-localf cmpf$
-localf areabezier$
-localf saveproc$
-localf xygraph$
-localf xy2graph$
-localf addIL$
-localf xy2curve$
-localf xygrid$
-localf xyarrow$
-localf xyarrows$
-localf xyang$
-localf xyoval$
-localf ptcommon$
-localf ptcopy$
-localf ptaffine$
-localf ptlattice$
-localf ptpolygon$
-localf ptwindow$
-localf ptbbox$
-localf lninbox$
-localf ptcombezier$
-localf ptcombz$
-localf lchange$
-localf init$
-localf powprimroot$
-localf distpoint$
-localf ntable$
-localf keyin$
-localf mqsub$
-localf msort$
-#else
-extern Muldif.rr$
-extern TeXEq$
-extern TeXLim$
-extern DIROUT$
-extern DIROUTD$
-extern DVIOUTL$
-extern DVIOUTA$
-extern DVIOUTB$
-extern DVIOUTH$
-extern DVIOUTF$
-static LCOPT$
-static COLOPT$
-static LPOPT$
-static LFOPT$
-extern TikZ$
-extern ErMsg$
-extern FLIST$
-extern IsYes$
-extern XYPrec$
-extern XYcm$
-extern TikZ$
-extern XYLim$
-extern Canvas$
-extern ID_PLOT$
-extern Rand$
-extern LQS$
-#endif
-static S_Fc,S_Dc,S_Ic,S_Ec,S_EC,S_Lc$
-static S_FDot$
-extern AMSTeX$
-Muldif.rr="00170825"$
-AMSTeX=1$
-TeXEq=5$
-TeXLim=80$
-TikZ=0$
-XYcm=0$
-XYPrec=3$
-XYLim=4$
-Rand=0$
-DIROUT="%HOME%\\tex"$
-DVIOUTL="%ASIRROOT%\\bin\\risatex0.bat"$
-DVIOUTA="%ASIRROOT%\\bin\\risatex.bat"$
-DVIOUTB="%ASIRROOT%\\bin\\risatex1%TikZ%.bat"$
-DVIOUTH="start dviout -2 -hyper=0x90 \"%ASIRROOT%\\help\\os_muldif.dvi\" #%LABEL%"$
-DVIOUTF=0$
-LCOPT=["red","green","blue","yellow","cyan","magenta","black","white","gray"]$
-COLOPT=[0xff,0xff00,0xff0000,0xffff,0xffff00,0xff00ff,0,0xffffff,0xc0c0c0]$
-LPOPT=["above","below","left","right"]$
-LFOPT=["very thin","thin","dotted","dashed"]$
-Canvas=[400,400]$
-LQS=[[1,0]]$
-
-ErMsg = newvect(3,[
- "irregal argument", /* 0 */
- "too big size", /* 1 */
- "irregal option" /* 2 */
-])$
-FLIST=0$
-IsYes=[]$
-ID_PLOT=-1$
-
-def erno(N)
-{
- /* extern ErMsg; */
- print(ErMsg[N]);
-}
-
-def chkfun(Fu, Fi)
-{
- /* extern FLIST; */
- /* extern Muldif.rr; */
-
- if(type(Fu) <= 1){
- if(Fu==1)
- mycat(["Loaded os_muldif Ver.", Muldif.rr, "(Toshio Oshima)"]);
- else
- mycat(["Risa/Asir Ver.", version()]);
- return 1;
- }
- if(type(FLIST) < 4)
- FLIST = flist();
- if(type(Fu) == 4){
- for(; Fu != [] ;Fu = cdr(Fu))
- if(chkfun(car(Fu),Fi) == 0) return 0;
- return 1;
- }
- if(findin(Fu, FLIST) >= 0)
- return 1;
- FLIST = flist();
- if(findin(Fu, FLIST) >= 0)
- return 1;
- if(type(Fi)==7){
- mycat0(["load(\"", Fi,"\") -> try again!\n"],1);
- load(Fi);
- }
- return 0;
-/*
- if(type(Fi) == 7)
- Fi = [Fi];
- for( ; Fi != []; Fi = cdr(Fi))
- load(car(Fi));
- FLIST = flist();
- return (findin(Fu,FLIST)>=0)?1:0;
-*/
-}
-
-def makev(L)
-{
- S = "";
- Num=getopt(num);
- while(length(L) > 0){
- VL = car(L); L = cdr(L);
- if(type(VL) == 7)
- S = S+VL;
- else if(type(VL) == 2 || VL < 10)
- S = S+rtostr(VL);
- else if(VL<46 && Num!=1)
- S = S+asciitostr([VL+87]);
- else
- S = S+rtostr(VL);
- }
- return strtov(S);
-}
-
-def makenewv(L)
-{
- if((V=getopt(var))<2) V="z_";
- else if(isvar(V)) V=rtostr(V);
- if(type(N=getopt(num))!=1) N=0;
- Var=varargs(L|all=2);
- for(XX=[],I=J=0;;I++){
- X=strtov(V+rtostr(I));
- if(findin(X,Var)<0){
- XX=cons(X,XX);
- if(++J>N) return X;
- else if(J==N) return reverse(XX);
- }
- }
-}
-
-def shortv(P,L)
-{
- V=vars(P);
- if(type(T=getopt(top))==2) T=strtoascii(rtostr(T))[0]-87;
- else T=10;
- for(;L!=[];L=cdr(L)){
- for(J=0;J<36;J++){
- if(findin(X=makev([car(L),J]|num=1),V)>=0){
- while(findin(Y=makev([T]),V)>=0) T++;
- if(T>35) return P;
- P=subst(P,X,Y);
- T++;
- }else if(J>0) break;
- }
- }
- return P;
-}
-
-def vweyl(L)
-{
- if(type(L) == 4){
- if(length(L) == 2)
- return L;
- else
- return [L[0],makev(["d",L[0]])];
- }
- /* else if(type(L)<2) return L; */
- return [L,makev(["d", L])];
-}
-
-def mycat(L)
-{
- if(type(L) != 4){
- print(L);
- return;
- }
- Opt = getopt(delim);
- Del = (type(Opt) >= 0)?Opt:" ";
- Opt = getopt(cr);
- CR = (type(Opt) >= 0)?0:1;
- while(L != []){
- if(Do==1)
- print(Del,0);
- print(car(L),0);
- L=cdr(L);
- Do = 1;
- }
- if(CR) print("");
-}
-
-def fcat(S,X)
-{
- if(type(S)!=7){
- if(type(DIROUTD)!=7){
- DIROUTD=str_subst(DIROUT,["%HOME%","%ASIRROOT%","\\"],
- [getenv("HOME"),get_rootdir(),"/"])+"/";
- if(isMs()) DIROUTD=str_subst(DIROUTD,"/","\\"|sjis=1);
- }
- if(S==-1) return;
- T="fcat";
- if(S>=2&&S<=9) T+=rtostr(S);
- T=DIROUTD+T+".txt";
- if(S==-1) return T;
- if(S!=0&&access(T)) remove_file(T);
- S=T;
- }
- R=output(S);
- print(X);
- output();
- if(getopt(exe)==1) shell("\""+S+"\"");
- return R;
-}
-
-def mycat0(L,T)
-{
- Opt = getopt(delim);
- Del = (type(Opt) >= 0)?Opt:"";
- if(type(L)!=4) L=[L];
- while(L != []){
- if(Do==1)
- print(Del,0);
- print(car(L),0);
- L=cdr(L);
- Do = 1;
- }
- if(T) print("");
-}
-
-def findin(M,L)
-{
- if(type(L)==4){
- for(I = 0; L != []; L = cdr(L), I++)
- if(car(L) == M) return I;
- }else if(type(L)==5){
- K=length(L);
- for(I = 0; I < K; I++)
- if(L[I] == M) return I;
- }else return -2;
- return -1;
-}
-
-def countin(S,M,L)
-{
- Step=getopt(step);
- if(type(Step)==1){
- N=(Step>0)?Step:-Step;
- if(type(L)==5) L=vtol(L);
- L=qsort(L);
- while(car(L)<S&&L!=[]) L=cdr(L);
- S+=M;
- for(R=[],C=I=0;L!=[];){
- if(car(L)<S||(Step>0&&car(L)==S)){
- C++;
- L=cdr(L);
- }else{
- R=cons(C,R);C=0;S+=M;
- if(N>1&&++I>=N) break;
- }
- }
- if(C>0) R=cons(C,R);
- if(N>1&&(N-=length(R))>0) while(N-->0) R=cons(0,R);
- return reverse(R);
- }
- if(type(L)==4){
- for(N=0; L!=[]; L=cdr(L))
- if(car(L)>=S && car(L)<=M) N++;
- }else if(type(L)==5){
- K=length(L);
- for(I = 0; I < K; I++)
- if(L[I]>=S && L[I]<=M) N++;
- }else return -2;
- return N;
-}
-
-def mycoef(P,N,X)
-{
- if(type(P)<3 && type(N)<3)
- return coef(P,N,X);
- if(type(P) >= 4)
-#ifdef USEMODULE
- return map(os_md.mycoef,P,N,X);
-#else
- return map(mycoef,P,N,X);
-#endif
- if(type(N)==4){
- for(;N!=[];N=cdr(N),X=cdr(X))
- P=mycoef(P,car(N),car(X));
- return P;
- }
- if(deg(dn(P), X) > 0){
- P = red(P);
- if(deg(dn(P), X) > 0)
- return 0;
- }
- return red(coef(nm(P),N,X)/dn(P));
-}
-
-def mydiff(P,X)
-{
- if(X == 0)
- return 0;
- if(type(P)<3 && type(X)<3)
- return diff(P,X);
- if(type(P) >= 4)
-#ifdef USEMODULE
- return map(os_md.mydiff,P,X);
-#else
- return map(mydiff,P,X);
-#endif
- if(type(X)==4){
- for(;X!=[];X=cdr(X)) P=mydiff(P,car(X));
- return P;
- }
- if(ptype(dn(P),X)<2)
- return red(diff(nm(P),X)/dn(P));
- return red(diff(P,X));
-}
-
-def myediff(P,X)
-{
- if(X == 0)
- return 0;
- if(type(P) < 3)
- return ediff(P,X);
- if(type(P) >= 4)
-#ifdef USEMODULE
- return map(os_md.myediff,P,X);
-#else
- return map(myediff,P,X);
-#endif
- if(deg(dn(P),X) == 0)
- return red(ediff(nm(P),X)/dn(P));
- return red(X*diff(P,X));
-}
-
-def m2l(M)
-{
- if(type(M) < 4)
- return [M];
- if(type(M) == 4){
- if(type(car(M))==4 && getopt(flat)==1){
- for(MM = []; M!=[]; M=cdr(M))
- MM = append(MM,car(M));
- return MM;
- }
- return M;
- }
- if(type(M) == 5)
- return vtol(M);
- S = size(M);
- for(MM = [], I = S[0]-1; I >= 0; I--)
- MM = append(vtol(M[I]), MM);
- return MM;
-}
-
-def mydeg(P,X)
-{
- if(type(P) < 3)
- return deg(P,X);
- II = -1;
- Opt = getopt(opt);
- if(type(P) >= 4){
- S=(type(P) == 6)?size(P)[0]:0;
- P = m2l(P);
- for(I = 0, Deg = -3; P != []; P = cdr(P), I++){
- if( (DT = mydeg(car(P),X)) == -2)
- return -2;
- if(DT > Deg){
- Deg = DT;
- II = I;
- }
- }
- return (Opt==1)?([Deg,(S==0)?II:[idiv(II,S),irem(II,S)]]):Deg;
- }
- P = red(P);
- if(deg(dn(P),X) == 0)
- return deg(nm(P),X);
- return -2;
-}
-
-def pfctr(P,X)
-{
- P=red(P);
- if((T=ptype(P,X))>3) return [];
- if(T==3){
- G=pfctr(dn(P),X);
- F=pfctr(nm(P),X);
- R=[[car(F)[0]/car(G)[0],1]];
- for(F=cdr(F);F!=[];F=cdr(F)) R=cons(car(F),R);
- for(G=cdr(G);G!=[];G=cdr(G)) R=cons([car(G)[0],-car(G)[1]],R);
- return reverse(R);
- }
- F=fctr(nm(P));
- for(R=[],C=1/dn(P);F!=[];F=cdr(F))
- if(mydeg(car(F)[0],X)>0) R=cons(car(F),R);
- else C*=car(F)[0]^car(F)[1];
- return cons([C,1],reverse(R));
-}
-
-def mymindeg(P,X)
-{
- if(type(P) < 3)
- return mindeg(P,X);
- II = -1;T=60;
- Opt = getopt(opt);
- if(type(P) >= 4){
- S=(type(P) == 6)?size(P)[0]:0;
- P = m2l(P);
- for(I = 0, Deg = -3; P != []; P = cdr(P), I++){
- if(car(P) == 0)
- continue;
- if( (DT = mydeg(car(P),X)) == -2)
- return -2;
- if(DT < Deg || Deg == -3){
- if(DT==0){
- if(type(car(P))>=T) continue;
- T=type(car(P));
- }
- Deg = DT;
- II = I;
- }
- }
- return (Opt==1)?([Deg,(S==0)?II:[idiv(II,S),irem(II,S)]]):Deg;
- }
- P = red(P);
- if(deg(dn(P),X) == 0)
- return mindeg(nm(P),X);
- return -2;
-}
-
-def m1div(M,N,L)
-{
- L = (type(L) <= 3)?[0,L]:vweyl[L];
- DX = L[1]; X = L[0];
- if(mydeg(N,DX) != 0)
- return 0;
- DD = mydeg(M,DX);
- MM = M;
- while( (Deg=mydeg(MM,DX)) > 0){
- MC = mycoef(MM,Deg,DX)*DX^(Deg-1);
- MS = radd(MC, MS);
- MM = radd(MM, muldo(MC,radd(-DX,N),L));
- }
- return [MM, MS];
-}
-
-
-def mulsubst(F,L)
-{
- N = length(L);
- if(N == 0)
- return F;
- if(type(L[0])!=4) L=[L];
- if(getopt(inv)==1){
- for(R=[];L!=[];L=cdr(L)) R=cons([car(L)[1],car(L)[0]],R);
- L=reverse(R);
- }
- if(length(L)==1) return mysubst(F,L);
- L1 = newvect(N);
- for(J = 0; J < N ; J++)
- L1[J] = uc();
- L2 = newvect(N);
- for(J = 0; J < N; J++){
- S = L[J][1];
- for(I = 0; I < N; I++)
- S = mysubst(S,[L[I][0],L1[I]]);
- L2[J] = S;
- }
- for(J = 0; J < N; J++)
- F = mysubst(F, [L[J][0],L2[J]]);
- for(J = 0; J < N; J++)
- F = mysubst(F, [L1[J],L[J][0]]);
- return F;
-}
-
-def cmpsimple(P,Q)
-{
- T = getopt(comp);
- if(P == Q)
- return 0;
- D = 0;
- if(type(T) < 0)
- T = 7;
- if(iand(T,1))
- D = length(vars(P)) - length(vars(Q));
- if(!D && iand(T,2))
- D = nmono(P) - nmono(Q);
- if(!D && iand(T,4))
- D = str_len(rtostr(P)) - str_len(rtostr(Q));
- if(!D){
- if(P > Q) D++;
- else D--;
- }
- return D;
-}
-
-def simplify(P,L,T)
-{
- if(type(P) > 3)
-#ifdef USEMODULE
- return map(os_md.simplify,P,L,T);
-#else
- return map(simplify,P,L,T);
-#endif
- if(type(L[0]) == 4){
- if(length(L[0]) > 1)
-#if USEMODULE
- return fmult(os_md.simplify,P,L,[T]);
-#else
- return fmult(simplify,P,L,[T]);
-#endif
- L = L[0];
- }
- if(type(Var=getopt(var)) == 4 && Var!=[]){
- if(type(P) == 3)
- return simplify(nm(P),P,L,T|var=Var)/simplify(dn(P),P,L,T|var=Var);
- V = car(Var);
- if((I = mydeg(P,V)) > 0){
- Var = cdr(Var);
- for(Q=0; I>=0 ; I--)
- Q += simplify(mycoef(P,I,V), L, T|var=Var)*V^I;
- return Q;
- }
- }
- if(length(L) == 1){
- L = car(L);
- for(V = vars(L); V != []; V = cdr(V)){
- VT = car(V);
- if(deg(L,VT) != 1) continue;
- P = simplify(P, [VT, -red(coef(L,0,VT)/coef(L,1,VT))], T);
- }
- return P;
- }
- Q = mysubst(P,[L[0],L[1]]);
- return (cmpsimple(P,Q|comp=T) <= 0)?P:Q;
-}
-
-def monotos(P)
-{
- if(nmono(P) <= 1)
- return rtostr(P);
- return "("+rtostr(P)+")";
-}
-
-
-def monototex(P)
-{
- Q=my_tex_form(P);
- if(nmono(P)<2 && (getopt(minus)!=1 || str_str(Q,"-"|top=0,end=0)<0))
- return Q;
- return "("+Q+")";
-}
-
-def minustos(S)
-{
- if(str_str(S,"-"|top=0,end=0)<0) return S;
- return "("+S+")";
-}
-
-def vnext(V)
-{
- S = length(V);
- for(I = S-1; I > 0; I--){
- if(V[I-1] < V[I]){
- V0 = V[I-1];
- for(J = I+1; J < S; J++)
- if(V0 >= V[J]) break;
- V[I-1] = V[--J];
- V[J] = V0;
- for(J = S-1; I < J; I++, J--){
- V0 = V[I];
- V[I] = V[J];
- V[J] = V0;
- }
- return 1;
- }
- }
- return 0;
-}
-
-def ldict(N, M)
-{
- Opt = getopt(opt);
- R = S = [];
- for(I = 2; N > 0; I++){
- R = cons(irem(N,I), R);
- N = idiv(N,I);
- }
- L = LL = length(R);
- T=newvect(LL+1);
- while(L-- > 0){
- V = car(R); R = cdr(R);
- for(I = J = 0; J <= V ; I++){
- if(T[I] == 0)
- J++;
- }
- T[I-1] = 1;
- S = cons(LL-I+1, S);
- }
- for(I = 0; I <= LL; I++){
- if(T[I] == 0){
- S = cons(LL-I, S);
- break;
- }
- }
- if(M == 0)
- return S;
- if(M <= LL){
- print("too small size");
- return 0;
- }
- T = [];
- for(I = --M; I > LL; I--)
- T = cons(I,T);
- S = append(S,T);
- if(Opt == 2 || Opt == 3)
- S = reverse(S);
- if(Opt != 1 && Opt != 3)
- return S;
- for(T = []; S != []; S = cdr(S))
- T = cons(M-car(S),T);
- return T;
-}
-
-def ndict(L)
-{
- Opt = getopt(opt);
- R = [];
- if(Opt != 1 && Opt != 2)
- L = reverse(L);
- T = (Opt == 1 || Opt == 3)?1:0;
- for( ; L != []; L = cdr(L)){
- for(I = 0, V = car(L), LT = cdr(L); LT != []; LT = cdr(LT))
- if(T == 0){
- if(V < car(LT)) I++;
- }else if (V > car(LT)) I++;
- R = cons(I, R);
- }
- R = reverse(R);
- for(V = 0, I = length(R); I > 0; R = cdr(R), I--)
- V = V*I + car(R);
- return V;
-}
-
-def nextsub(L,N)
-{
- if(type(L) == 1){
- for(LL = [], I = L-1; I >= 0; I--)
- LL = cons(I,LL);
- return LL;
- }
- M = length(L = ltov(L));
- K = N-M;
- for(I = M-1; I >= 0; I--)
- if(L[I] < I+K) break;
- if(I < 0)
- return 0;
- for(J = L[I]+1; I < M; I++, J++)
- L[I] = J;
- return vtol(L);
-}
-
-def nextpart(L)
-{
- if(car(L) <= 1)
- return 0;
- for(I = 0, L = reverse(L); car(L) == 1; L=cdr(L))
- I++;
- I += (K = car(L));
- R = irem(I,--K);
- R = (R==0)?[]:[R];
- for(J = idiv(I,K); J > 0; J--)
- R = cons(K,R);
- L = cdr(L);
- while(L!=[]){
- R = cons(car(L), R);
- L = cdr(L);
- }
- return R;
-}
-
-def transpart(L)
-{
- L = reverse(L);
- for(I=1, R=[]; L!= []; I++){
- R = cons(length(L), R);
- while(L != [] && car(L) <= I)
- L = cdr(L);
- }
- return reverse(R);
-}
-
-def trpos(A,B,N)
-{
- S = newvect(N);
- for(I = 0; I < N; I++)
- S[I]=(I==A)?B:((I==B)?A:I);
- return S;
-}
-
-def sprod(S,T)
-{
- L = length(S);
- V = newvect(L);
- while(--L >= 0)
- V[L] = S[T[L]];
- return V;
-}
-
-def sinv(S)
-{
- L = length(S);
- V = newvect(L);
- while(--L >= 0)
- V[S[L]] = L;
- return V;
-}
-
-def slen(S)
-{
- L = length(S);
- for(V = 0, J = 2; J < L; i++){
- for(I = 0; I < J; I++)
- if(S[I] > S[J]) V++;
- }
- return V;
-}
-
-def sord(W,V)
-{
- L = length(W);
- W0 = nevect(L);
- V0 = newvect(L);
- for(I = F = C = 0; I < L; I++){
- C = 0;
- if( (W1 = W[I]) > (V1 = V[I]) ){
- if(F < 0) C = 1;
- else if(F==0) F = 1;
- }else if(W1 < V1){
- if(F > 0) C = 1;
- else if(F==0) F = -1;
- }
- for(J = I;--J >= 0 && W0[J] > W1; ) W0[J+1] = W0[J];
- W0[J+1] = W1;
- for(J = I;--J >= 0 && V0[J] > V1; ) V0[J+1] = V0[J];
- V0[J+1] = V1;
- if(C){
- for(J = I; J >= 0; J--){
- if((W1=W0[J]) == (V1=V0[J])) continue;
- if(W1 > V1){
- if(F < 0) return 2;
- }
- else if(F > 0) return 2;
- }
- }
- }
- return F;
-}
-
-def vprod(V1,V2)
-{
- for(R = 0, I = length(V1)-1; I >= 0; I--)
- R = radd(R, rmul(V1[I], V2[I]));
- return R;
-}
-
-def dnorm(V)
-{
- if(type(V)<2) return dabs(V);
- R=0;
- if(type(V)!=4)
- for (I = length(V)-1; I >= 0; I--) R+= V[I]^2;
- else{
- if(type(V[0])>3){
- V=ltov(V[0])-ltov(V[1]);
- return dnorm(V);
- }
- for(;V!=[]; V=cdr(V)) R+=car(V)^2;
- }
- return dsqrt(R);
-}
-
-def dvprod(V1,V2)
-{
- if(type(V1)<2) return V1*V2;
- R=0;
- if(type(V1)!=4)
- for(I = length(V1)-1; I >= 0; I--)
- R += V1[I]*V2[I];
- else{
- for(; V1!=[]; V1=cdr(V1),V2=cdr(V2))
- R+=car(V1)*car(V2);
- }
- return R;
-}
-
-def dvangle(V1,V2)
-{
- if(V2==0 && type(V1)==4 && length(V1)==3 &&
- (type(V1[0])==4 || type(V1[0])==5 || type(V1[1])==4 || type(V1[1])==5 ||
- type(V1[2])==4 || type(V1[2])==5) ){
- if(V1[0]==0 || V1[1]==0 || V1[2]==0) return 1;
- PV2=V1[1];
- if(type(PV2)==4){
- PV2=ltov(PV2);
- return dvangle(PV2-ltov(V1[0]),ltov(V1[2])-PV2);
- }else
- return dvangle(PV2-V1[0],V1[2]-PV2);
- }
- if((L1=dnorm(V1))==0 || (L2=dnorm(V2))==0) return 1;
- return dvprod(V1,V2)/(L1*L2);
-}
-
-def mulseries(V1,V2)
-{
- L = length(V1);
- if(size(V2) < L)
- L = size(V2);
- VV = newvect(L);
- for(J = 0; J < L; J++){
- for(K = R = 0; K <= J; K++)
- R = radd(R,rmul(V1[K],V2[J-K]));
- VV[J] = R;
- }
- return VV;
-}
-
-def scale(L)
-{
- T=0;LS=1;
- Pr=getopt(prec);
- if(type(L)!=4){
- if(L==2){
- L=(Pr!=1)?
- [[[1,2,1/20],[2,5,1/10],[5,10,1/5], [10,20,1/2],[20,50,1],[50,100,2]],
- [[1,2,1/10],[2,5,1/2], [10,20,1],[20,50,5]],
- [[1,2,1/2],[2,10,1], [10,20,5],[20,100,10]]]:
- [[[1,2,1/50],[2,5,1/20],[5,10,1/10], [10,20,1/5],[20,50,1/2],[50,100,1]],
- [[1,5,1/10],[5,10,1/2], [10,20,1],[50,100,5]],
- [[1,5,1/2],[5,10,1], [10,50,5],[50,100,10]]];
- LS=2;
- }else if(L==3){
- L=(Pr!=1)?
- [[[1,2,1/20],[2,5,1/10],[5,10,1/5], [10,20,1/2],[20,50,1],[50,100,2],
- [100,200,5],[200,500,10],[500,1000,20]],
- [[1,2,1/10],[2,5,1/2], [10,20,1],[20,50,5], [100,200,10],[200,500,50]],
- [[1,2,1/2],[2,10,1], [10,20,5],[20,100,10], [100,200,50],[200,1000,100]]]:
- [[[1,2,1/50],[2,5,1/20],[5,10,1/10],[10,20,1/5],[20,50,1/2],[50,100,1],
- [100,200,2],[200,500,5],[500,1000,10]],
- [[1,5,1/10],[5,10,1/2], [10,50,1],[50,100,5], [100,500,10],[500,1000,50]],
- [[1,5,1/2],[5,10,1], [10,50,5],[50,100,10], [100,500,50],[500,1000,100]]];
- LS=3;
- }else{
- L=(Pr!=1)?
- [[[1,2,1/50],[2,5,1/20],[5,10,1/10]],
- [[1,5,1/10],[5,10,1/2]],
- [[1,5,1/2],[5,10,1]]]:
- [[[1,2,1/100],[2,5,1/50],[5,10,1/20]],
- [[1,2,1/20],[2,10,1/10]],
- [[1,2,1/10],[2,10,1/2]]];
- }
- }else if(type(L[0])!=4){
- L=[L];
- if(length(L)!=3||L[0]+L[2]>L[1]) T=L;
- }
- if(T==0){
- if(type(L[0][0])!=4) L=[L];
- for(R=[];L!=[];L=cdr(L)){
- for(RR=[],LT=car(L);LT!=[];LT=cdr(LT))
- for(I=car(LT)[0];I<=car(LT)[1];I+=car(LT)[2]) RR=cons(I,RR);
- RR=lsort(RR,[],1);
- R=cons(RR,R);
- }
- R=reverse(R);
- for(T=[];R!=[];R=cdr(R)){
- if(length(R)>1) T=cons(lsort(R[0],R[1],"setminus"),T);
- else T=cons(R[0],T);
- }
- }
- V0=dlog(10);
- S0=S1=1;D0=D1=0;
- SC=getopt(scale);
- if(type(SC)==4){
- S0=SC[0];S1=SC[1];
- }else if(type(SC)==1){
- S0=SC;S1=0;
- }else return T;
- if(type(D=getopt(shift))==4){
- D0=D[0];D1=D[1];
- }
- if(type(F=getopt(f))>1) F=f2df(F);
- else F=0;
- for(M=M0=[],I=length(T);T!=[];T=cdr(T),I--){
- for(S=car(T);S!=[];S=cdr(S)){
- V=((!F)?dlog(car(S))/dlog(10)/LS:myfdeval(F,car(S)))*S0;
- if(S1!=0){
- M=cons([V+D0,D1],M);
- M=cons([V+D0,I*((length(SC)>2)?SC[I]:S1)+D1],M);
- M=cons(0,M);
- }else M0=cons(V+D0,M0);
- }
- if(S1==0) M=cons(reverse(M0),M);
- }
- if(S1!=0) M=cdr(M);
- if(S1==0||getopt(TeX)!=1) return M;
- M=reverse(M);
- if(type(U=getopt(line))==4)
- M=cons([U[0]+D0,D1],cons([U[1]+D0,D1],cons(0,M)));
- if(type(Col=getopt(col))<1) S=xylines(M);
- else S=xylines(M|opt=Col);
- if(type(Mes=getopt(mes))==4){
- S3=car(Mes);
- if(type(S3)==4){
- Col=S3[1];
- S3=car(S3);
- }else Col=0;
- V=car(scale(cdr(Mes)));
- if(!F) Mes=scale(cdr(Mes)|scale=[S0/LS,0],shift=[D0,D1]);
- else Mes=scale(cdr(Mes)|f=F,scale=[S0,0],shift=[D0,D1]);
- for(M=car(Mes);M!=[];M=cdr(M),V=cdr(V)){
- VT=deval(car(V));
- if(Col!=0) VT=[Col,VT];
- S+=xyput([car(M),S3,VT]);
- }
- }
- return S;
-}
-
-def pluspower(P,V,N,M)
-{
- RR = 1;
- for(K = R = 1; K < M-1; I++){
- R = R*(N-K+1)*P/K;
- RR = radd(RR,R);
- }
- VV = newvect(M);
- for(K = 0; K < M-1; K++)
- VV[K] = red(mycoef(RR,K,V));
-}
-
-def vtozv(V)
-{
- if(type(V)<4) V=newvect(1,[V]);
- S = length(V);
- VV = newvect(S);
- Lcm = 1;
- for(K = 0; K < S; K++){
- VV[K] = red(V[K]);
- Lcm = lcm(Lcm,dn(VV[K]));
- C = ptozp(nm(VV[K])|factor=0);
- if(K == 0){
- Dn = dn(C[1]);
- Nm = nm(C[1]);
- PNm = nm(C[0]);
- }else{
- Dn = ilcm(Dn,dn(C[1]));
- Nm = igcd(Nm,nm(C[1]));
- PNm = gcd(PNm,nm(C[0]));
- }
- }
- if(!(M=Nm*PNm)) return [VV,0];
- Mul = (Lcm*Dn)/M;
- for(K = 0; K < S; K++)
- VV[K] = rmul(VV[K],Mul);
- return [VV,Mul];
-}
-
-def dupmat(M)
-{
- if(type(M) == 6){
- Size = size(M);
- MM = newmat(Size[0],Size[1]);
- for(I = 0; I < Size[0]; I++){
- for(J = 0; J < Size[1]; J++)
- MM[I][J] = M[I][J];
- }
- return MM;
- }
- if(type(M) == 5)
- return ltov(vtol(M));
- return M;
-}
-
-def matrtop(M)
-{
- S = size(M);
- MM = dupmat(M);
- Lcm = newvect(S[0]);
- for(J = 0; J < S[0]; J++){
- U = vtozv(M[J]);
- for(K = -1, I = 0; I < S[1]; I++)
- MM[J][I] = U[0][I];
- Lcm[J] = U[1];
- }
- return [MM,Lcm];
-}
-
-def mytrace(M)
-{
- S=size(M);
- if(S[0]!=S[1]) return 0;
- for(I=V=0; I<S[0]; I++){
- V+=M[I][I];
- }
- return V;
-}
-
-def mydet(M)
-{
- MM = matrtop(M);
- if(type(MM[0]) == 6){
- S = size(M);
- for(Dn = 1, I = 0; I < S[0]; I++)
- Dn *= MM[1][I];
- return (!Dn)?0:red(det(MM[0])/Dn);
- }
-}
-
-def mperm(M,P,Q)
-{
- if(type(M) == 6){
- S = size(M);
- if(type(P) <= 1)
- P=(P==1)?Q:trpos(0,0,S[0]);
- if(type(P) > 3 && type(P[0]) >= 4)
- P = trpos(P[0][0],P[0][1],S[0]);
- else if(type(P) == 4){
- if(length(P)==2 && type(P[1])==4){
- P0=P[0];P1=car(P[1]);P=newvect(P1);
- for(I=0;I<P1;I++) P[I]=P0+I;
- }else P = ltov(P);
- }
- if(type(Q) <= 1)
- Q=(Q==1)?P:trpos(0,0,S[1]);
- if(type(Q) > 3 && type(Q[0]) >= 4)
- Q = trpos(Q[0][0],Q[0][1],S[1]);
- if(type(Q) == 4){
- if(length(Q)==2 && type(Q[1])==4){
- P0=Q[0];P1=car(Q[1]);Q=newvect(P1);
- for(I=0;I<P1;I++) Q[I]=P0+I;
- }else Q = ltov(Q);
- }
- MM = newmat(S0=length(P),S1=length(Q));
- for(I = 0; I < S0; I++){
- MMI = MM[I]; MPI = M[P[I]];
- for(J = 0; J < S1; J++)
- MMI[J] = MPI[Q[J]];
- }
- return MM;
- }
- if((type(M) == 5 || type(M) == 4) && type(P) >= 4){
- if(length(P) == 1 && type(car(P)) == 4)
- P = trpos(car(P)[0],car(P)[1],length(M));
- MM = newvect(S = length(P));
- for(I = 0; I < S; I++)
- MM[I] = M[P[I]];
- if(type(M) == 4)
- MM = vtol(MM);
- return MM;
- }
- return M;
-}
-
-def mtranspose(M)
-{
- if(type(M)==4){
- MV=ltov(M);
- II=length(MV);
- for(I=L=0; I<II; I++){
- if(type(MV[I])!=4) return M;
- MV[I]=ltov(MV[I]);
- }
- for(R=[],J=0; ;J++){
- for(T=[],I=F=0; I<II; I++){
- if(length(MV[I])>J){
- F=1;
- T=cons(MV[I][J],T);
- }
- }
- if(F==0) return reverse(R);
- if(F==1) R=cons(reverse(T),R);
- }
- }
- if(type(M) != 6)
- return M;
- S = size(M);
- MM = newmat(S[1],S[0]);
- for(I = 0; I < S[0]; I++){
- for(J = 0; J < S[1]; J++)
- MM[J][I] = M[I][J];
- }
- return MM;
-}
-
-def mtoupper(MM, F)
-{
- TeXs=["\\ -=\\ ","\\ +=\\ "];
- Lins=[" -= line"," += line"];
- Assume=["If","Assume"];
- if(type(St = getopt(step))!=1) St=0;
- Opt = getopt(opt);
- if(type(Opt)!=1) Opt=0;
- TeX=getopt(dviout);
- if(type(Tab=getopt(tab))!=1 && Tab!=0) Tab=2;
- Line="\\text{line}";
- if(type(TeX)!=1 || !St) TeX=0;
- Size = size(MM);
- if(F==-1){
- M = newmat(Size[0], Size[1]+1);
- for(I = 0; I < Size[0]; I++){
- for(J = 0; J < Size[1]; J++)
- M[I][J] = MM[I][J];
- M[I][Size[1]] = zz^I;
- }
- Size = size(M);
- F = 1;
- }else if(F<0){
- F=Size[0];
- M = newbmat(1,2,[[MM,mgen(F,0,[1],0)]]);
- Size=[Size[0],F+Size[1]];
- }else
- M = dupmat(MM);
- if(St){
- if(TeX) Lout=[[dupmat(M)]];
- else mycat0([M,"\n\n"],0);
- }
- Top="";
- if(Opt>3){
- for(I=Opt; I>4; I--)
- Top+=(TeX)?"\\ ":" ";
- }
- PC=IF=1;
- for(K = JJ = 0; K < Size[1] - F; K++){
- for(J = JJ; J < Size[0]; J++){
- if(M[J][K] != 0){ /* search simpler element */
- if(Opt>2 && (Mul=M[J][K])!=1){
- for(FF=0,JT=J; JT<Size[0]; JT++){
- if((Val=M[JT][K])==1){ /* 1 */
- Mul=1;J=JT; break;
- }
- if(Val==0 || type(Val)>type(Mul)) continue;
- if(type(Val)<type(Mul) || (Val==-1 && Mul!=-1)){
- Mul=Val; J=JT; /* smaller type */
- }
- else if(Opt>3){
- if(isint(Val)==1){ /* integer elememt */
- if(isint(Mul)!=1){
- Mul=Val; J=JT; /* integer */
- }
- if(FF<3||(FF==3&&Val>0)){
- for(JK=K+1;;){
- if(JK>=Size[1]-F){
- J=JT;
- FF=((Mul=Val)>0)?4:3;
- break; /* divisible int => 4: pos_int 3: neg_int */
- }
- if(isint(M[JT][JK++]/Val)!=1) break;
- }
- }
- }else if(!FF){
- for(JK=K+1; JK<Size[1]-F; JK++){
- if(isint(M[JT][JK]/Val)!=1) break;
- J=JT; FF=1; /* divisible => 1: non integer */
- }
- }
- }
- }
- if(FF==0 && Opt>3 && Mul!=1 && Mul!=-1){ /* FF > 0 => divisible */
- for(FF=0,J0=J; J0<Size[0]-1 && FF!=9; J0++){
- VV0=M[J0][K];
- if(VV0==0 || isint(VV0)==0) continue;
- for(J1=J0+1;J1<Size[0] && FF!=9; J1++){
- VV1=M[J1][K];
- if(VV1==0 || isint(VV1)==0) continue;
- for(C=FT=0,V0=VV0,V1=VV1; C<2 && FF!=10; C++,V1=V0,V0=VV1){
- for(CC=0,RC=ceil(V0/V1);CC<2;CC++,RC--){
- if((CD=V0-RC*V1)==0 && (RC==1 || RC==-1)){
- FT=1; FF=10; /* 10: vanish by +- */
- }else if(CD==1){
- FV=(vars(M[J0])==[]&&vars(M[J1])==[])?1:0;
- if((RC==1 || RC==-1) && FF<8+FV){
- FT=1; FF=8+FV; /* 8/9: 1 by +- */
- }else if(FF<6+VF){
- FT=1; FF=6+FV; /* 6/7: 1 by times */
- }
- }else if(CD==-1){
- FV=(vars(M[J0])==[]&&vars(M[J1])==[])?1:0;
- if((RC==1 || RC==-1) && FF<4+FV){
- FT=1; FF=4+FV; /* 4/5: 1 by +- */
- }else if(FF<2+VF){
- FT=1; FF=2+FV; /* 2/3: 1 by times */
- }
- }
- if(FT==1){
- FT=0; KRC=RC;
- if(C==0){
- KJ0=J0; KJ1=J1;
- }else{
- KJ0=J1; KJ1=J0;
- }
- }
- }
- }
- }
- }
- if(FF>0){
- for(I=K;I<Size[1];I++)
- M[KJ0][I]=radd(M[KJ0][I],rmul(M[KJ1][I],-KRC));
- if(KRC<0){
- KRC=-KRC;Sgn=1;
- }else
- Sgn=0;
- if(St){
- if(TeX){
- if(KRC==1)
- Lout=cons([Top+"\\xrightarrow{", Line,KJ0+1,TeXs[Sgn],
- Line,KJ1+1,"}",dupmat(M)],Lout);
- else
- Lout=cons([Top+"\\xrightarrow{", Line,KJ0+1,TeXs[Sgn],
- Line,KJ1+1,"\\times\\left(",KRC,"\\right)}",
- dupmat(M)],Lout);
-
- }else{
- if(KRC==1)
- mycat([Top+"line",KJ0+1,Lins[Sgn],KJ1+1,"\n",M,"\n"]); else
- mycat([Top+"line",KJ0+1,Lins[Sgn],KJ1+1," * (",KRC,")\n",M,"\n"]);
- }
- }
- Mul=M[KJ0][K]; J=KJ0;
- if(FF==10){
- J--; continue;
- }
- }
- }
- }
- /* a parameter Var */
- Var=0;
- if(St && Opt>4 && length(Var=vars(nm(M[J][K])))==1){
- J0=J;Jv=mydeg(nm(M[J0][K]),car(Var));
- for(I=JJ;I<Size[0]; I++){
- if((MIK=M[I][K])==0) continue;
- if((T=vars(MIK=nm(MIK)))==[]){ /* 1/poly */
- J=I;Var=[]; break;
- }
- if(length(T)>1) continue;
- if(mydeg(MIK,T[0])<Jv){
- J0=I;Jv=mydeg(MIK);Var=T; /* search minimal degree */
- }
- }
- if(length(Var)==1){
- Var=car(Var);
- Q=nm(M[J0][K]);
- for(I=JJ; I<Size[0]; I++){
- if(I==J0 || mydeg(nm(M[I][K]),Var)<0) continue;
- T=rpdiv(nm(M[I][K]),Q,Var);
- if(T[0]!=0 && (vars(T)==[] || vars(T)==[Var])) break; /* dec. deg */
- }
- }
- }
- if(type(Var)==2){ /* 1 variable */
- if(I==Size[0]){
- for(QF=0,Q0=1,QR=getroot(Q,Var|mult=1);QR!=[];QR=cdr(QR)){
- if(deg(T=QR[0][1],Var)>0){
- QF=1;Q0*=T; continue;
- }
- if(subst(PC,Var,T)==0) continue;
- Q0*=(Var-(T=QR[0][1]));
- if(type(T)<2){
- M0=subst(M,Var,T);
- if(TeX){
- Lout=cons(["\\hspace{",Tab*(St-3)-1,"mm}\\text{If }",
- Var,"=",T,","] ,Lout);
- Lout=append(mtoupper(M0,F|step=St+1,opt=Opt,dviout=-2,tab=Tab),Lout);
- }else{
- mycat([str_times(" ",St-1)+"If",Var,"=",T,","]);
- mtoupper(M0,F|step=St+1,opt=Opt);
- }
- }
- }
- if(Q0!=1){
- if(TeX)
- Lout=cons(["\\hspace{",Tab*(St-3)-1,"mm}\\text{"+Assume[QF]+" }",
- Q0/=fctr(Q0)[0][0],"\\ne0,"],Lout);
- else
- mycat([str_times(" ",St-1)+Assume[QF],Q0,"!=0,"]);
- PC*=Q0;
- }
- IF=0;St++;
- }else{
- KRC=-red((T[2]*dn(M[J0][K]))/(T[1]*dn(M[I][K])));
- for(II=K;II<Size[1];II++)
- M[I][II]=radd(M[I][II],rmul(M[J0][II],KRC));
- if(TeX)
- Lout=cons([Top+"\\xrightarrow{", Line,I+1,"\\ +=\\ ",Line,
- J0+1,"\\times\\left(",KRC,"\\right)}",dupmat(M)],Lout);
- else
- mycat([Top+"line",I+1,"+=",Line,J0+1," * (",KRC,")\n",M,"\n"]);
- J=JJ-1;
- continue;
- }
- }
- if(J != JJ){
- for(I = K; I < Size[1]; I++){
- Temp = M[JJ][I];
- M[JJ][I] = M[J][I];
- M[J][I] = (Opt>=2)?Temp:-Temp;
- }
- if(St){
- if(TeX)
- Lout=cons([Top+"\\xrightarrow{",Line,JJ+1,"\\ \\leftrightarrow\\ ",
- Line,J+1,"}",dupmat(M)],Lout);
- else
- mycat0([Top+"line",JJ+1," <-> line",J+1,"\n",M,"\n\n"],0);
- }
- }
- /* Assume PC != 0 */
- if(Opt>1){
- Mul = M[JJ][K];
- if(Opt > 5 && St && IF && (Var=vars(MIK=nm(Mul)))!=[]){
- TF=fctr(MIK);
- for(FF=0,Q0=1,TP=cdr(TF);TP!=[];TP=cdr(TP)){
- if(type(dn(red(PC/(TP0=car(car(TP))))))<2) continue; /* divisible */
- Q0*=TP0;
- for(Var=vars(TP0);Var!=[];Var=cdr(Var)){
- if(mydeg(TP0,X=car(Var))==1 && type(dn(red(PC/mycoef(TP0,1,X))))<2){
- /* TP0=A*X+B with non-vanishing A */
- T=red(-mycoef(TP0,0,X)/mycoef(TP0,1,X));
- M0=mysubst(M,[X,T]);
- if(TeX){
- Lout=cons(["\\hspace{",Tab*(St-3)-1,"mm}\\text{If }",
- X,"=",T,","] ,Lout);
- Lout=append(mtoupper(M0,F|step=St+1,opt=Opt,dviout=-2,tab=Tab),
- Lout);
- }else{
- mycat([str_times(" ",St-1)+"If",X,"=",T,","]);
- mtoupper(M0,F|step=St+1,opt=Opt);
- }
- break;
- }
- }
- if(Var==[] && Opt>6){
- for(Var=vars(TP0);Var!=[];Var=cdr(Var)){
- if(mydeg(TP0,X=car(Var))==1){
- /* TP0=A*X+B, A is a poly of X0 with rational funct */
- T=nm(mycoef(TP0,1,X));
- for(Var0=vars(T);Var0!=[]; Var0=cdr(Var0)){
- X0=car(Var0);
- if(type(dn(red(PC/type(mycoef(T,mydeg(T,X0),X0)))))>1) continue;
- TR=getroot(T,X0|mult=1);
- if(findin(X0,vars(TR))<0) break;
- }
- if(Var0==[]) continue;
- for(;TR!=[0];TR=cdr(TR)){
- if(TR==[]){
- TR=[0,0];
- T0=-mycoef(TP0,0,X)/mycoef(TP0,1,X);
- X0=X;
- }else T0=car(TR)[1];
- M0=mysubst(M,[X0,T0]);
- if(TeX){
- Lout=cons(["\\hspace{",Tab*(St-3)-1,"mm}\\text{If }",
- X0,"=",T0,","] ,Lout);
- Lout=append(mtoupper(M0,F|step=St+1,opt=Opt,dviout=-2,tab=Tab),
- Lout);
- }else{
- mycat([str_times(" ",St-1)+"If",X0,"=",T0,","]);
- mtoupper(M0,F|step=St+1,opt=Opt);
- }
- }
-
- }
- break;
- }
- }
- if(Var==[]){
- FF=1;
- }
- }
- if(Q0!=1){
- if(FF) FF=1;
- if(TeX) Lout=cons(["\\hspace{",Tab*(St-3)-1,"mm}\\text{"+Assume[FF]+" }",Q0/=fctr(Q0)[0][0],"\\ne0,"],
- Lout);
- else mycat([str_times(" ",St-1)+Assume[FF],Q0,"!=0,"]);
- PC*=Q0;St++;
- }
- }
- IF=M[JJ][K]=1;
- if(Mul!=1){
- for(L=K+1; L<Size[1]; L++)
- M[JJ][L]=red(M[JJ][L]/Mul);
- if(St){
- if(TeX)
- Lout=cons([Top+"\\xrightarrow{",Line,JJ+1,
- "\\ \\times=\\ \\left(",red(1/Mul),"\\right)}",
- dupmat(M)],Lout);
- else
- mycat0([Top+"line",JJ+1, " *= (",red(1/Mul), ")\n",M,"\n\n"],0);
- }
- }
-
- }
- for(J = (Opt>0)?0:(JJ+1); J < Size[0]; J++){
- if(J == JJ)
- continue;
- Mul = -M[J][K];
- if(Mul!=0){
- if(Opt!=2) Mul=rmul(Mul,1/M[JJ][K]);
- for(I = K+1; I < Size[1]; I++)
- M[J][I] = radd(M[J][I],rmul(M[JJ][I],Mul));
- M[J][K] = 0;
- if(St){
- if(Mul<0){
- Mul=-Mul;Sgn=0;
- }else Sgn=1;
- if(TeX){
- if(Mul==1)
- Lout=cons([Top+"\\xrightarrow{", Line,J+1,TeXs[Sgn],Line,JJ+1,
- "}",dupmat(M)],Lout);
- else Lout=cons([Top+"\\xrightarrow{", Line,J+1,TeXs[Sgn],Line,JJ+1,
- "\\times\\left(",Mul,"\\right)}",dupmat(M)],Lout);
- }else{
- if(Mul==1)
- mycat0([Top+"line",J+1, Lins[Sgn],JJ+1,"\n",M,"\n\n"],0);
- else
- mycat0([Top+"line",J+1, Lins[Sgn],JJ+1," * (",Mul,")\n",M,"\n\n"],0);
- }
- }
- }
- }
- JJ++;
- }
- }
- }
- if(TeX){
- if(TeX==-2) return Lout;
- Lout=reverse(Lout);
- Br="\\allowdisplaybreaks";
- Cr="\\\\\n &";
- if(getopt(pages)==1) Cr=Br+Cr;
- if(type(S=getopt(cr))==7) Cr=S;
- if(type(Lim=getopt(lim))==1){
- if(Lim>0){
- if(Lim<30) Lim=TeXLim;
- Lim*=2;
- }
- }else Lim=0;
- Out = ltotex(Lout|opt=["cr","spts0"],str=1,cr=Cr,lim=Lim);
- if(TeX<0) return Out;
- dviout(Out|eq=(str_str(Cr,Br)>=0)?6:5,keep=(TeX==1)?0:1);
- }
- return M;
-}
-
-def mydet2(M)
-{
- S = size(M);
- Det = 1;
- MM = mtoupper(M,0);
- for(I = 0; I < S[0]; I++)
- Det = rmul(Det,MM[I][I]);
- return Det;
-}
-
-def myrank(MM)
-{
- S = size(MM);
- M = dupmat(MM);
- M = mtoupper(M,0);
- C = 0;
- for(I = K = 0; I < S[0]; I++){
- for(J = K; J < S[1]; J++){
- if(M[I][J] != 0){
- C++; K++;
- break;
- }
- }
- }
- return C;
-}
-
-def meigen(M)
-{
- F = getopt(mult);
- if(type(M)==4 || type(M)==5){
- II=length(M);
- for(R=[],I=II-1; I>=0; I--){
- if(F==1)
- R=cons(meigen(M[I]|mult=1),R);
- else
- R=cons(meigen(M[I]),R);
- }
- return R;
- }
- S = size(M)[0];
- P = mydet2(mgen(S,0,[zz],0)-M);
- return (F==1)?getroot(P,zz|mult=1):getroot(P,zz);
-}
-
-def transm(M)
-{
- if(type(M)!=6) M=s2m(M);
- if(type(M)!=6){
- errno(0);
- return 0;
- }
- L=[M];TeX="";
- Line=["\\text{line}","\\text{col}"];
- if((DVI=getopt(dviout)) !=1) DVI=0;
- else dviout(M);
- for(;;){
- print(L0=dupmat(car(L)));
- Sz=size(L0);
- S=keyin("? ");
- N=0;
- if(str_len(S)<=1){
- if(S=="q") return L;
- if(S=="t"){
- N=mtranspose(L0);
- TeX=["\\text{transpose}"];
- }
- else if(S=="f"){
- if(length(L)>1){
- if(LF!=0) TeX="";
- L=cdr(L);LF=L0;
- if(DVI){
- dviout0(-1);
- dviout(" ");
- }
- }
- }else if(S=="g"){
- if(LF!=0) N=LF;
- }else if(S=="0"){
- N=M;L=[];TeX=[];
- }else if(S=="a"||S=="A"){
- if(DVI&&S=="A") mtoupper(L0,0|step=1,opt=10,dviout=1);
- else mtoupper(L0,0|step=1,opt=10);
- }else{
- mycat0([
- "2,5 : line2 <-> line5",
- "2,5,-2 ; line2 += (-2)*line5",
- "2,2,-2 : line2 *= -2",
- "2,5,0 : line2 += (?)*line5 for reduction",
- "r,2,5 : raw2 <-> raw5 (r,2,5,-2 etc.)",
- "s,x,2 : subst(*,x,2)",
- "t : transpose",
- "0 : first matrix",
- "f : previous matrix",
- "g : next matrix (only after f)",
- "A : auto (a : without TeX)",
- "q : quit"
- ],1|delim="\n");
- }
- }else{
- FR=0;
- S=evals(S|del=",");
- if(S[0]==r){
- FR=1; S=cdr(S);
- }
- if((LL=length(S))>=2){
- S0=S[0]-1;S1=S[1]-1;
- if(S[0]==s){
- if(length(S)==3) N=subst(L0,S[1],S[2]);
- if(DVI) TeX=[S[1],"\\mapsto",S[2]];
- }else if(FR==0){
- if(S0<0 || S0>=Sz[0] || S1<0 || S1>=Sz[0]) continue;
- if(LL==2){
- N=rowx(L0,S0,S1);
- if(DVI) TeX=[Line[0],S[0],"\\ \\leftrightarrow\\ ",Line[0],S[1]];
- }else{
- S2=S[2];
- if(S0==S1){
- N=rowm(L0,S0,S2);
- if(DVI) TeX=[Line[0],S[0],"\\ \\times=\\ ",S2];
- }else{
- if(S2==0){
- for(J=0;J<Sz[1] && L0[S1][J]==0;J++);
- if(J<Sz[1]) S2=-L0[S0][J]/L0[S1][J];
- }
- if(S2!=0){
- N=rowa(L0,S0,S1,S2);
- if(DVI) TeX=[Line[0],S[0],"\\ +=\\ ",Line[0],
- S[1],"\\ \\times\\ (",S2,")"];
- }
- }
- }
- }else{
- if(S0<0 || S0>=Sz[1] || S1<0 && S1>=Sz[1]) continue;
- if(LL==2){
- N=colx(L0,S0,S1);
- if(DVI) TeX=[Line[1],S[0],"\\ \\leftrightarrow\\ ",Line[1],S[1]];
- }else{
- S2=S[2];
- if(S0==S1){
- N=colm(L0,S0,S2);
- if(DVI) TeX=[Line[1],S[0],"\\ \\times=\\ ",S[2]];
- }else{
- if(S2!=0){
- for(J=0; I1<Sz[0] && L0[I1][J]==0; J++);
- if(J<Sz[0]) S2=-L0[J][S0]/L0[J][S1];
- }if(S2!=0){
- N=cola(L0,S0,S1,S2);
- if(DVI) TeX=[Line[1],S[0],"\\ +=\\ ",Line[1],
- S[1],"\\ \\times\\ (",S2,")"];
- }
- }
- }
- }
- }
- }
- if(N!=0){
- LF=0;L=cons(N,L);
- if(DVI) dviout("\\xrightarrow{"+ltotex(TeX|opt="spts0",str=1)+"}"+mtotex(N)|eq=8);
- }
- }
-}
-
-def vgen(V,W,S)
-{
- IM=length(V);
- I=(getopt(opt)==0)?IM:0;
- for(SS=0; I<IM && (SS==0 || V[I]<=W[I]); I++)
- SS += W[I];
- if(I<IM){
- W[I]++;
- SS--;
- }else
- SS=S;
- for(J=0;J<I;J++){
- W[J] = (SS<=V[J])?SS:V[J];
- SS -= W[J];
- }
- if(SS>0)
- return -1;
- return(I==IM)?0:I;
-}
-
-def mmc(M,X)
-{
- Mt=getopt(mult);
- if(type(M)==7) M=os_md.s2sp(M);
- if(type(M)!=4||type(M[0])!=6) return 0;
- if(type(M[0])!=6){ /* spectre type -> GRS */
- G=s2sp(M|std=1);
- L=length(G);
- for(V=[],I=L-2;I>=0;I--) V=cons(makev([I+10]),V);
- V=cons(makev([L+9]),V);
- G=sp2grs(G,V,[1,length(G[0]),-1]|mat=1);
- if(getopt(short)!=0){
- V=append(cdr(V),[V[0]]);
- G=shortv(G,V);
- }
- R=chkspt(G|mat=1);
- if(Mt!=1) Mt=0;
- if(R[2]!=2 || R[3]!=0 || !(R=getbygrs(G,1|mat=1))) return 0;
- MZ=newmat(1,1);
- SS=length(G);
- if(Mt==1) SS=SS*(SS-1)/2;
- for(M=[],I=0;I<SS;I++) M=cons(MZ,M);
- for(RR=R; RR!=[]; RR=cdr(RR)){
- RT=car(RR)[0];
- if(type(RT)==4){
- if(RT[0]!=0) M=mmc(M,[RT[0]]|simplify=Simp);
- M=mmc(M,[cdr(RT)]);
- }
- }
-/* for(R=cdr(R);R!=[];R=cdr(R)) M=mmc(M,[car(R)[0]]|mult=Mt); */
- }
- if(X==0) return M;
- L=length(M);
- if((L>=6 && Mt!=0)||(L==3&&Mt==1)){
- for(SS=2,I=3; I<L; I+=(++SS));
- if(I!=L) return -1;
- Mt=1;
- }else{
- SS=L;Mt=0;
- }
- if(length(X)==SS+1){
- if(car(X)!=0&&(M=mmc(M,[car(X)]|mult=Mt))==0) return M;
- return mmc(M,cdr(X)|mult=Mt);
- }
- for(I=X;I!=[];I=cdr(I)) if(I[0]!=0) break;
- if(I==[]) return M;
- Simp=getopt(simplify);
- if(Simp!=0 && type(Simp)!=1) Simp=2;
- N=newvect(L);
- for(I=0;I<L;I++) N[I]=dupmat(M[I]);
- S=size(N[0])[0];
- if(type(X)==4&&length(X)>SS){ /* addition */
- for(I=0;I<SS;I++,X=cdr(X)) if(X[I] != 0) N[I] = radd(N[I],car(X));
- }
- if(length(X)!=1) return 0;
- X=X[0];
- MZ = newmat(S,S);
- MM = newvect(L);
- for(M1=J=0; J<SS; J++){
- for(R=[],I=SS-1; I>=0; I--){
- if(I==J){
- for(RR=[],K=SS-1; K>=0; K--)
- RR=cons((K==I)?N[K]+diagm(S,[X]):N[K],RR);
- R=cons(RR,R);
- }else R=cons([MZ],R);
- }
- MM[J]=newbmat(SS,SS,R);
- if(J==0) M1=MM[0];
- else M1=radd(M1,MM[J]);
- }
- /* middle convolution */
- for(P=0,Q=1;J<L;J++){ /* A_{P,Q} */
- for(R=[],I=SS-1; I>=0; I--){
- for(RR=[],K=SS-1;K>=0;K--){
- MT=MZ;
- if(I==K){
- MT=N[J];
- if(I==P) MT-=N[Q];
- else if(I==Q) MT-=N[P];
- }else if(I==P && K==Q) MT=N[Q];
- else if(I==Q && K==P) MT=N[P];
- RR=cons(MT,RR);
- }
- R=cons(RR,R);
- }
- MM[J]=newbmat(SS,SS,R);
- if(++Q==SS){
- P++;Q=P+1;
- }
- }
- for(R=[],I=SS-1; I>=0; I--){
- for(RR=[N[I]],J=0; J<I; J++) RR=cons(MZ,RR);
- R=cons(RR,R);
- }
- M0 = newbmat(SS,SS,R);
- KE = append(mykernel(M0|opt=1),mykernel(M1|opt=1));
- if(length(KE) == 0) return MM;
- KK = mtoupper(lv2m(KE),0);
- for(I=0;I<L;I++) MM[I] = mmod(MM[I],KK);
- if(Simp!=0) MM = mdsimplify(MM|type=Simp);
- return MM;
-}
-
-def lpgcd(L)
-{
- for(F=[]; L!=[]; L=cdr(L)){
- if((P=car(L))==0) continue;
- if(F==[]){
- F=fctr(P);
- S=length(F);
- S--;
- V=newvect(S);
- M=newvect(S);
- for(I=0; I<S; I++){
- M[I] = F[I+1][1];
- V[I] = F[I+1][0];
- }
- N=nm(ptozp(P|factor=1)[1]);
- continue;
- }
- N=igcd(ptozp(P|factor=1)[1],N);
- for(I=0; I<S; I++){
- for(Q=P,CT=0; CT<M[I]; CT++)
- if((Q=tdiv(Q,V[I])) == 0) break;
- if(CT<M[I]) M[I]=CT;
- }
- }
- if(F==[]) return 0;
- for(Q=N,I=0;I<S; I++){
- while(M[I]>0){
- Q *= V[I];
- M[I]--;
- }
- }
- return Q;
-}
-
-def mdivisor(M,X)
-{
- S=size(M=dupmat(M));
- XX=(type(X)==4||X==0)?X:[0,X];
- S0=S[0]; S1=S[1];
- if((Tr=getopt(trans))==1||Tr==2){
- Tr0=1;
- GR=mgen(S0,0,1,0); GC=mgen(S1,0,1,0);
- }else Tr=Tr0=0;
- /* 0,a,b : (a,b)->(1,1)
- 1 : (1,1) invertible
- 2,i,M : line 0,i by M
- 3,j,M : col 0,j by M
- 4,j : col 1 += col j
- 5,j,T : line j by T
- 6,j,T : col 1 += col j by T (non-com)
- 7,j : line 2<->j (non-com)
- */
- if(type(V=getopt(dviout))==1){
- if(type(XX)==4 && type(XX[0])>1) Var=[XX[1],"\\partial"];
- else Var=0;
- Tr=(abs(V)==3)?0:1;
- MM=dupmat(M);
- II=((S[0]>S[1])?S[1]:S[0])+1;
- if(abs(V)>1){
- Is1=Js1=S[0]+S[1];
- Is=Js=[0,[Is1]];
- }else{
- Is=[0,[Is1=S[0]]];Js=[0,[Js1=S[1]]];
- }
- VV=V;
- V=newvect(II);
- for(I=0;I<II;I++) V[I]=[];
- N=newbmat(2,2,[[M,mgen(S[0],0,[1],0)],[mgen(S[1],0,[1],0)]]);
- mdivisor(M,X|step=1,dviout=V);
- L=S[0]+S[1];
- if(Tr){
- NN=mperm(N,Is1,Js1);
- for(K=S[0];K<Is1;K++){
- for(L=S[1];L<Js1;L++)
- NN[K][L]=" ";
- }
- Out=[[mperm(NN,Is,Js)]];
- }
- for(I=1;I<II;I++){
- I0=I-1;
- if(V[I]==[]) continue;
- for(T=reverse(V[I]);T!=[];T=cdr(T)){
- St=[];
- C=car(R=car(T));
- if(C==0){
- N=mperm(N,(R[1]==0)?0:[[R[1]+I0,I0]],(R[2]==0)?0:[[R[2]+I0,I0]]);
-
- if(Tr){
- if(R[2]!=0) St=append(["C",I,"\\leftrightarrow C",R[2]+I],St);
- if(R[1]!=0){
- if(R[2]!=0) St=cons(",\\ ",St);
- St=append(["L",I,"\\leftrightarrow L",R[1]+I],St);
- }
- Out=cons(St,Out);
- }
- }else if(C==1){
- P=1/N[I0][I0];N[I0][I0]=1;
- if(P!=1){
- for(J=I;J<L;J++)
- N[I0][J]=muldo(P,N[I0][J],XX);
-
- if(Tr){
- St=append(["L",I,"\\leftarrow(",P,")","\\times L",I],St);
- Out=cons(St,Out);
- NN=mperm(N,Is1,Js1);
- for(K=S[0];K<Is1;K++){
- for(L=S[1];L<Js1;L++)
- NN[K][L]=" ";
- }
- Out=cons(["\\to",mperm(NN,Is,Js)],Out);
- }
- }
- for(F=0,J=I;J<S[0];J++){
- if((P=N[J][I0])==0) continue;
- F++;
- N[J][I0]=0;
- for(K=I;K<L;K++)
- N[J][K]=red(N[J][K]-muldo(P,N[I0][K],XX));
-
- }
- if(F){
- if(Tr){
- Out=cons(["Li\\ -\\!=\\ \\circ\\times L",I,"\\quad(i>",I,")"],Out);
- NN=mperm(N,Is1,Js1);
- for(K=S[0];K<Is1;K++){
- for(L=S[1];L<Js1;L++)
- NN[K][L]=" ";
- }
- Out=cons(["\\to",mperm(NN,Is,Js)],Out);
- }
- }
- for(F=0,J=I;J<S[1];J++){
- if((P=N[I0][J])==0) continue;
- F++;
- N[I0][J]=0;
- for(K=I;K<L;K++)
- N[K][J]=red(N[K][J]-muldo(N[K][I0],P,XX));
- }
- if(F&&Tr) Out=cons(["Cj\\ -\\!=\\ C",I,"\\times\\circ\\quad(j>",I,")"],Out);
- else continue;
- }else if(C==2){
- C=mat(N[I0],N[R[1]+I0]);C=muldo(R[2],C,XX);
- for(J=0;J<L;J++){
- N[I0][J]=C[0][J];N[R[1]+I0][J]=C[1][J];
- }
- if(Tr) Out=cons([dupmat(R[2]),"\\begin{pmatrix}L",I,"\\\\L",R[1]+I,
- "\\end{pmatrix}"],Out);
- }else if(C==3){
- C=newmat(L,2);
- for(J=0;J<L;J++){
- C[J][0]=N[J][I0];C[J][1]=N[J][R[1]+I0];
- }
- C=muldo(C,R[2],XX);
- for(J=0;J<L;J++){
- N[J][I0]=C[J][0];N[J][R[1]+I0]=C[J][1];
- }
- if(Tr) Out=cons(["\\begin{pmatrix}C",I,"&C",R[1]+I,"\\end{pmatrix}",
- dupmat(R[2])],Out);
- }else if(C==4){
- for(J=0;J<L;J++)
- N[J][I0]=red(N[J][I0]+N[J][R[1]+I0]);
- if(Tr) Out=cons(["C",I,"\\ +\\!=\\ C",R[1]+I],Out);
- }else if(C==5){
- for(J=0;J<L;J++)
- N[I0+R[1]][J]=red(R[2]*N[I0+R[1]][J]);
- if(Tr) Out=cons(["L",I+R[1],"\\leftarrow(", R[2],")\\times L",I+R[1]],
- Out);
- }else if(C==6){
- for(J=0;J<L;J++)
- N[J][I0]=N[J][I0]+muldo(N[J][I0+R[1]],R[2],XX);
- if(Tr) Out=cons(["C",I,"\\ +\\!=\\ C",I+R[1],"\\times(", R[2],")"],
- Out);
- }else if(C==7){
- mycat(["line",I+1,"\\leftrightarrow",R[1]+I]);
- for(J=0;J<L;J++){
- C=N[I][J];N[I][J]=N[R[1]+I0][J];N[R[1]+I0][J]=C;
- }
- if(Tr) Out=cons(["L",I+1,"\\leftrightarrow L",R[1]+I],Out);
- }
- if(Tr){
- NN=mperm(N,Is,Js);
- for(K=S[0];K<Is1;K++){
- for(L=S[1];L<Js1;L++)
- NN[K][L]=" ";
- }
- Out=cons(["\\to",NN],Out);
- }
- }
- }
- if(!Tr){
- NN=mperm(N,Is,Js);
- Out=[];
- }
- if(S[0]+S[1]==Is1){
- N1=mperm(NN,[0,[S[0]]],[S[1],[S[0]]]);
- N2=mperm(NN,[S[0],[S[1]]],[0,[S[1]]]);
- N3=mperm(NN,[0,[S[0]]],[0,[S[1]]]);
- R1=mdivisor(N1,X|trans=1)[1];
- R2=mdivisor(N2,X|trans=1)[1];
- if(Tr){
- Out=cons(["\\text{As a result,}"],Out);
- Out=cons([N3,"=",N1,MM,N2],Out);
- if(S[0]==S[1] && N3==mgen(S[0],0,1,0)){
- Out=cons(["=",muldo(N2,N1,XX),MM,"."],Out);
- }else{
- Out=cons([N1,"^{-1}=",R1,","],Out);
- Out=cons([N2,"^{-1}=",R2,"."],Out);
- }
- }else{
- Out=cons([N3,"=P",MM,"Q,"],Out);
- Out=cons(["P=",N1,"=",R1,"^{-1},"],Out);
- Out=cons(["Q=",N2,"=",R2,"^{-1}."],Out);
- }
- }
- Out = ltotex(reverse(Out)|opt=["cr","spts0"],str=1,cr=15,var=Var);
- if(S[0]+S[1]==Is1)
- Out=str_subst(Out,"\\texttt{ }","");
- if(VV>0){
- dviout(Out|eq=6);
- return NN;
- }
- return Out;
- }else if(type(V)!=5) V=0;
-
- if(type(St=getopt(step))!=1) St=0;
- for(FF=": start";;){
- if(St && V==0){
- if(Tr){
- mycat0([St,FF,"\n"],0);
- mycat([GR,"\n"]);mycat([M,"\n"]);mycat([GC,"\n"]);
- }
- else mycat0([St,FF,"\n",M,"\n"],0);
- }
- if(X==0||X==[0,0]){ /* search minimal non-zero element */
- for(K=F=I=0; I<S0; I++){
- for(J=0; J<S1; J++){
- if((P=abs(M[I][J]))!=0 && (K>P || K==0)){
- K=P; R=[I,J];
- }
- }
- }
- R=cons(K-1,[R]);
- }
- else R=mymindeg(M,XX[1]|opt=1);
- if(R[0]<0){ /*zero matrix */
- if(Tr) return [[],mgen(S0,0,1,0),mgen(S1,0,1,0)];
- return [];
- }
- R0=R[1][0];R1=R[1][1];
- if(R0!=0){
- M=rowx(M,0,R0);
- if(Tr) GR=rowx(GR,0,R0);
- }
- if(R1!=0){
- M=colx(M,0,R1);
- if(Tr) GC=colx(GC,0,R1);
- }
- if(St>0 && (R0!=0 || R1!=0))
- if(type(V)==5) V[St]=cons([0,R0,R1],V[St]);
- else if(Tr){
- mycat0([St,": (",R0+1,",",R1+1,") -> (1,1)\n"],0);
- mycat([GR,"\n"]);mycat([M,"\n"]);mycat([GC,"\n"]);
- }else mycat0([St,": (",R0+1,",",R1+1,") -> (1,1)\n",M,"\n"],0);
- if(R[0]==0){ /* (1,1) : invertible */
- if(type(V)==5) V[St]=cons([1],V[St]);
- P=M[0][0]; M[0][0]=1;
- for(J=0;J<S1;J++){ /* (1,1) -> 1 */
- if(J>0) M[0][J]= red(M[0][J]/P);
- if(Tr) GR[0][J]=red(GR[0][J]/P);
- }
- if(S0>1 && S1>1) N=newmat(S0-1,S1-1);
- else N=0;
- for(I=1;I<S0;I++){
- P=M[I][0]; M[I][0]=0;
- for(J=1;J<S1;J++)
- N[I-1][J-1]=M[I][J]=red(M[I][J] - muldo(P,M[0][J],XX));
- if(Tr){
- for(J=0;J<S0;J++)
- GR[I][J] = red(GR[I][J] -muldo(P,GR[0][J],XX));
- }
- }
- if(Tr){
- for(J=1;J<S1; J++){
- for(I=0;I<S1;I++) GC[I][J]=red(GC[I][J]-muldo(GC[I][0],M[0][J],XX));
- M[0][J]=0;
- }
- }
- if(St>0 && V==0){
- if(Tr){
- mycat0([St,": unit\n"],0);
- mycat([GR,"\n"]);mycat([M,"\n"]);mycat([GC,"\n"]);
- }
- else mycat0([St,": unit\n",M,"\n"],0);
- }
- if(N==0){
- if(!Tr) return [1];
- if(Tr==2){
- GR0=mdivisor(GR,X|trans=1)[1];
- GC0=mdivisor(GC,X|trans=1)[1];
- return [[1],GR,GC,GR0,GC0];
- }
- return [[1],GR,GC];
- }
- R=mdivisor(N,XX|dviout=V,trans=Tr0,step=(St>0)?St+1:St);
- if(!Tr) return cons(1,R);
- GR=muldo(newbmat(2,2,[[1],[0,R[1]]]),GR,XX);
- GC=muldo(GC,newbmat(2,2,[[1],[0,R[2]]]),XX);
- if(S0==S1 && countin(1,1,R[0])==S0-1){
- GR=muldo(GC,GR,XX); GC=mgen(S0,0,1,0);
- }
- if(Tr==2){
- GR0=mdivisor(GR,X|trans=1)[1];
- GC0=mdivisor(GC,X|trans=1)[1];
- return [cons(1,R[0]),GR,GC,GR0,GC0];
- }
- return [cons(1,R[0]),GR,GC];
- }
- for(I=1;I<S0;I++){
- if(M[I][0]!=0){
-/* Error! when mygcd(A,B,0) with A<=0 or B<=0 */
- R=mygcd(M[I][0],M[0][0],XX); /* R[0]=R[1]*M[I][0]+R[2]*M[0][0] */
- M[0][0]=R[0]; M[I][0]=0; /* 0=R[3]*M[I][0]+R[4]*M[0][0] */
- for(J=1;J<S1;J++){
- T=red(muldo(R[1],M[I][J],XX)+muldo(R[2],M[0][J],XX));
- M[I][J]=red(muldo(R[3],M[I][J],XX)+muldo(R[4],M[0][J],XX));
- M[0][J]=T;
- }
- if(Tr){
- for(J=0;J<S0;J++){
- T=red(muldo(R[1],GR[I][J],XX)+muldo(R[2],GR[0][J],XX));
- GR[I][J]=red(muldo(R[3],GR[I][J],XX)+muldo(R[4],GR[0][J],XX));
- GR[0][J]=T;
- }
- }
- if(St && V==0){
- mycat([" [",R[2],R[1],"]*"]);
- mycat([" [",R[4],R[3],"]"]);
- }
- if(type(V)==5) V[St]=cons([2,I,mat([R[2],R[1]],[R[4],R[3]])],V[St]);
- FF=": line 1 & "+rtostr(I+1); I=S0;
- }
- }
- if(I>S0) continue;
- for(J=1;J<S1;J++){
- if(M[0][J]!=0){
- R=mygcd(M[0][J],M[0][0],XX|rev=1); /* R[0]=M[0][J]*R[1]+M[0][0]*R[2] */
- M[0][0]=R[0]; M[0][J]=0; /* 0=M[0][J]*R[3]+M[0][0]*R[4] */
- for(I=1;I<S0;I++){
- T=red(muldo(M[I][J],R[1],XX)+muldo(M[I][0],R[2],XX));
- M[I][J]=red(muldo(M[I][J],R[3],XX)+muldo(M[I][0],R[4],XX));
- M[I][0]=T;
- }
- if(Tr){
- for(I=0;I<S1;I++){
- T=red(muldo(GC[I][J],R[1],XX)+muldo(GC[I][0],R[2],XX));
- GC[I][J]=red(muldo(GC[I][J],R[3],XX)+muldo(GC[I][0],R[4],XX));
- GC[I][0]=T;
- }
- }
- if(type(V)==5) V[St]=cons([3,J,mat([R[2],R[4]],[R[1],R[3]])],V[St]);
- FF=": column 1 & "+rtostr(J+1);J=S1;
- if(St && V==0){
- mycat([" *[",R[2],R[4],"]"]);
- mycat([" [",R[1],R[3],"]"]);
- }
- }
- }
- if(J>S1) continue;
- if(S0==1 || S1==1){
- P=M[0][0];
- if(X==0){
- if(P<0){
- P=-P;
- if(Tr) for(J=0;J<S0;J++) GR[0][J]=-GR[0][J];
- if(type(V)==5) V[St]=cons([5,0,-1],V[St]);
- }
- }else{
- P=nm(P);
- if((R=fctr(P)[0][0])!=1){
- P/=R;
- if(Tr) for(J=0;J<S0;J++) GR[0][J]/=R;
- if(type(V)==5) V[St]=cons([5,0,1/R],V[St]);
- }
- }
- if(!Tr) return [P];
- if(Tr==2){
- GR0=mdivisor(GR,X|trans=1)[1];
- GC0=mdivisor(GC,X|trans=1)[1];
- return [[P],GR,GC,GR0,GC0];
- }
- return [[P],GR,GC];
- }
- if(XX==0 || (type(XX)==4 && XX[0]==0)){ /* commutative case */
- P=M[0][0];
- for(I=1; I<S0; I++){
- for(J=1; J<S1; J++)
- if(divdo(M[I][J],P,XX)[1]!=0) break;
- if(J<S1){
- if(type(V)==5) V[St]=cons([4,J],V[St]);
- FF=": column 1 += col"+rtostr(J+1);
- for(I=1;I<S0;I++) M[I][0]=M[I][J];
- if(Tr) for(I=0;I<S1;I++) GC[I][0]=red(GC[I][0]+GC[I][J]);
- break;
- }
- }
- if(J<S1) continue;
- N=newmat(S0-1,S1-1);
- for(I=1;I<S0;I++)
- for(J=1;J<S1;J++) N[I-1][J-1]=red(M[I][J]/P);
- if(X==0){
- if(P<0) P=-P;
- if(Tr) for(J=0;J<S0;J++) GR[0][J]=-GR[0][J];
- }else{
- P=M[0][0];
- P=nm(P);
- P/=fctr(P)[0][0];
- if(Tr) for(J=0;J<S0;J++) GR[0][J]/=fctr(P)[0][0];
- }
- R=mdivisor(N,XX|dviout=V,trans=Tr0,step=(St>0)?St+1:St);
- RT=(Tr)?R[0]:R;
- for(RR=[],L=reverse(RT);L!=[];L=cdr(L))
- RR=cons(red(P*car(L)),RR);
- RR=cons(P,RR);
- if(!Tr) return RR;
- GR=muldo(newbmat(2,2,[[1],[0,R[1]]]),GR,XX);
- GC=muldo(GC,newbmat(2,2,[[1],[0,R[2]]]),XX);
- if(S0==S1 && countin(1,1,RR)==S0){
- GR=muldo(GC,GR,XX); GC=mgen(S0,0,1,0);
- }
- if(Tr==2){
- GR0=mdivisor(GR,X|trans=1)[1];
- GC0=mdivisor(GC,X|trans=1)[1];
- return [RR,GR,GC,GR0,GC0];
- }
- return [RR,GR,GC];
- } /* End of commutative case */
- for(I=1; I<S0; I++){
- for(J=1; J<S1; J++){
- if(M[I][J] != 0){
- for(T=1;I<S0;T*=XX[0]){
- R=divdo(muldo(M[I][J],T,XX),M[0][0],XX);
- if(R[1]!=0){
- if(type(V)==5) V[St]=cons([6,J,T],V[St]);
- FF=": column 1 += col"+rtostr((J+1)*T);
- if(I>1){
- M=rowx(M,1,I);
- if(Tr) GR=rowx(GR,1,I);
- if(type(V)==5) V[St]=cons([7,I],V[St]);
- FF+=", line 2<->"+rtostr(I+1);
- }
- for(I=1;I<S0;I++) M[I][0]=muldo(M[I][J],T,XX);
- if(Tr)
- for(I=1;I<S1;I++) GC[I][0]=red(GC[I][0]+muldo(GC[I][J],T,XX));
- I=S0+1; J=S1;
- break;
- }
- }
- }
- }
- if(I>S0) break;
- }
- if(I==S0) return []; /* zero matrix : never happen */
- }
-}
-
-def mdsimplify(L)
-{
- T=getopt(type);
- SS=0;
- if(type(L)==6){
- L=[L]; SS=1;
- }
- if(type(L)==5){
- SS=2;
- L = vtol(L);
- }
- M=car(L);
- S=size(M)[0];
-#if 0
- MN=newmat(S,S);
- MD=newmat(S,S);
- for(I=0;I<S;I++){
- for(J=0;J<S;J++){
- TN=0;TD=1;
- for(PL=L;PL!=[];PL=cdr(PL)){
- TM=red(car(PL)[I][J]);
- TN=lgcd([TN,nm(TM)]|pol=1);
- TD=llcm([TD,dn(TM)]|pol=1);
- }
- MN[I][J]=TM;
- MD[I][J]=TN;
- }
- }
- for(I=0;I<S;I++){
- for(J=0;J<S;J++){
- if(I==J||type(TD[I][J])<2||type(TN[J][I])<2) continue;
- for(FC=cdr(fctr(TD[I][J]));FC!=[];){
- TFC=car(FC);
- if(type(red(TN[J][I]/TFC[0]))>2) continue;
- }
- }
- }
-#endif
- DD=newvect(S);
- for(I=0; I<S; I++){
- LN=RN=[];
- LD=RD=1;
- for(LL=L; LL!=[]; LL=cdr(LL)){
- M = car(LL);
- for(J=0; J<S; J++){
- if(J==I) continue;
- if((MM=M[I][J]) != 0){
- LN = cons(nm(MM),LN);
- if(type(MM)==3 && tdiv(LD,P=dn(MM))==0)
- LD=tdiv(LD*P,gcd(LD,P));
- }
- if((MM=M[J][I]) != 0){
- RN = cons(nm(MM),RN);
- if(type(MM)==3 && tdiv(RD,P=dn(MM))==0)
- RD=tdiv(RD*P,gcd(RD,P));
- }
- }
- }
- if(T==1 || T==3) LQ=RD;
- else{
- P=lpgcd(LN);
- LQ=gcd(P,RD);
- if(P!=0) LQ *= nm(fctr(P)[0][0]);
- }
- if(T==1 || T==2) RQ=LD;
- else{
- P=lpgcd(RN);
- RQ=gcd(P,LD);
- if(P!=0) RQ *= nm(fctr(P)[0][0]);
- }
- if((P=gcdz(LQ,RQ))!=1){
- LQ = red(LQ/P); RQ=red(RQ/P);
- }
- DD[I]=red(LQ/RQ);
- if(LQ!=1 || RQ!=1){
- for(LA=[],LL=L; LL!=[]; LL=cdr(LL)){
- M = car(LL);
- for(J=0; J<S; J++){
- if(I!=J){
- if(LQ!=1){
- M[I][J] = red(M[I][J]/LQ);
- M[J][I] = red(M[J][I]*LQ);
- }
- if(RQ!=1){
- M[J][I] = red(M[J][I]/RQ);
- M[I][J] = red(M[I][J]*RQ);
- }
- }
- }
- }
- }
- }
- if(SS==2) L=ltov(L);
- if(SS==1) L=L[0];
- if(getopt(show)==1) L=[L,DD];
- return L;
-}
-
-def m2mc(M,X)
-{
- if(type(M)<2){
- mycat([
-"m2mc(m,t) or m2mc(m,[t,s])\t Calculation of Pfaff system of two variables\n",
-" m : list of 5 residue mat. or GRS/spc for rigid 4 singular points\n",
-" t : [a0,ay,a1,c], swap, GRS, GRSC, sp, irreducible, pair, pairs, Pfaff, All\n",
-" s : TeX, dviout, GRSC\n",
-" option : swap, small, simplify, operator, int\n",
-" Ex: m2mc(\"21,21,21,21\",\"All\")\n"
-]);
- return 0;
- }
- if(type(M)==7) M=s2sp(M);
- if(type(X)==7) X=[X];
- Simp=getopt(simplify);
- if(Simp!=0 && type(Simp)!=1) Simp=2;
- Small=(getopt(small)==1)?1:0;
- if(type(M[0])==4){
- if(type(M[0][0])==1){ /* spectral type */
- XX=getopt(dep);
- if(type(XX)!=4 || type(XX[0])>1) XX=[1,length(M[0])];
- M=sp2grs(M,[d,a,b,c],[XX[0],XX[1],-2]|mat=1);
- if(XX[0]>1 && XX[1]<2) XX=[XX[0],2];
- if(getopt(int)!=0){
- T=M[XX[0]-1][XX[1]-1][1];
- for(V=vars(T);V!=[];V=cdr(V)){
- F=coef(T,1,car(V));
- if(type(F)==1 && dn(F)>1)
- M = subst(M,car(V),dn(F)*car(V));
- }
- }
- V=vars(M);
- if(findin(d1,V)>=0 && findin(d2,V)<0 && findin(d3,V)<0)
- M=subst(M,d1,d);
- }
- RC=chkspt(M|mat=1);
- if(RC[2] != 2 || RC[3] != 0){ /* rigidity idx and Fuchs cond */
- erno(0);return 0;
- }
- R=getbygrs(M,1|mat=1);
- if(getopt(anal)==1) return R; /* called by mc2grs() */
- Z=newmat(1,1,[[0]]);
- N=[Z,Z,Z,Z,Z];
- for(RR=R; RR!=[]; RR=cdr(RR)){
- RT=car(RR)[0];
- if(type(RT)==4){
- if(RT[0]!=0) N=m2mc(N,RT[0]|simplify=Simp);
- N=m2mc(N,[RT[1],RT[2],RT[3]]|simplify=Simp);
- }
- }
- if(type(X)==4 && type(X[0])==7)
- return m2mc(N,X|keep=Keep,small=Small);
- return N;
- }
- if(type(X)==4 && type(X[0])==7){
- Keep=(getopt(keep)==1)?1:0;
- if(X[0]=="All"){
- dviout("Riemann scheme"|keep=1);
- m2mc(M,[(findin("GRSC",X)>=0)?"GRSC":"GRS","dviout"]|keep=1);
- dviout("Spectral types : "|keep=1);
- m2mc(M,["sp","dviout"]|keep=1);
- dviout("\\\\\nBy the decompositions"|keep=1);
- R=m2mc(M,["pairs","dviout"]|keep=1);
- for(R0=R1=[],I=1; R!=[]; I++, R=cdr(R)){
- for(S=0,RR=car(R)[1][0];RR!=[]; RR=cdr(RR)) S+=RR[0];
- if(S==0) R0=cons(I,R0);
- else if(S<0) R1=cons(I,R1);
- }
- S="irreducibility\\ $"+((length(R0)==0)?"\\Leftrightarrow":"\\Leftarrow")
- +"\\ \\emptyset=\\mathbb Z\\cap$";
- dviout(S|keep=1);
- m2mc(M,["irreducible","dviout"]|keep=1);
- if(R0!=[])
- dviout(ltotex(reverse(R0))|eq=0,keep=1,
- title="The following conditions may not be necessary for the irreducibility.");
- if(R1!=[])
- dviout(ltotex(reverse(R1))|eq=0,keep=1,title="The following conditions can be omitted.");
- if(getopt(operator)!=0){
- dviout("The equation in a Pfaff form is"|keep=1);
- m2mc(M,["Pfaff","dviout"]|keep=Keep,small=Small);
- }
- else if(Keep!=1) dviout(" ");
- return M;
- }
- Show=0;
- if(length(X)>1){
- if(X[1]=="dviout") Show=2;
- if(X[1]=="TeX") Show=1;
- }
- if(X[0]=="GRS"||X[0]=="GRSC"||X[0]=="sp"){
- Y=radd(-M[0],-M[1]-M[2]);
- if(X[0]!="GRSC"){
- L=meigen([M[0],M[1],M[2],M[3],M[4],Y,radd(-M[1],-M[3]-M[4]),radd(Y,-M[3]-M[4])]|mult=1);
- if(X[0]=="sp"){
- L=chkspt(L|opt="sp");
- V=[L[1],L[0],L[2],L[5]]; W=[L[1],L[3],L[4],L[6]];
- if(Show==2) dviout(s2sp(V)+" : "+s2sp(W)|keep=Keep);
- return [V,W];
- }
- S="x=0&x=y&x=1&y=0&y=1&x=\\infty&y=\\infty&x=y=\\infty\\\\\n";
- }else{
- L=meigen([M[0],M[1],M[2],M[3],M[4],Y,radd(-M[1],-M[3]-M[4]),radd(Y,-M[3]-M[4]),
- radd(M[0],M[1]+M[3]),radd(M[1],M[2]+M[4])]|mult=1);
- S="x=0&x=y&x=1&y=0&y=1&x=\\infty&y=\\infty&x=y=\\infty&x=y=0&x=y=1\\\\\n";
- }
- T=ltotex(L|opt="GRS",pre=S,small=Small);
- if(Show==2) dviout(T|eq=0,keep=Keep);
- if(Show==1) L=T;
- return L;
- }
- if(X[0]=="Pfaff"){
- S=ltotex(M|opt=["Pfaff",u,x,x-y,x-1,y,y-1],small=Small);
- if(Show==2) dviout(S|eq=0,keep=Keep);
- return S;
- }
- if(X[0]=="irreducible"){
- L=meigen([M[0],M[1],M[2],radd(-M[0],-M[1]-M[2])]|mult=1);
- S=getbygrs(L,10|mat=1);
- if(Show==2) dviout(ltotex(S)|eq=0,keep=Keep);
- return S;
- }
- if(X[0]=="pairs"||X[0]=="pair"){
- L=meigen([M[0],M[1],M[2],radd(-M[0],-M[1]-M[2])]|mult=1);
- S=chkspt(L|opt=0);
- V=(Show==2)?1:0;
- S=sproot(L,X[0]|dviout=V,keep=Keep);
- return S;
- }
- if(X[0]=="swap"){
- Swap=getopt(swap);
- if(type(Swap)<1 || Swap==1)
- return newvect(5,[M[3],M[1],M[4],M[0],M[2]]);
- if(Swap==2)
- return newvect(5,[radd(M[0],M[1]+M[3]),M[4],M[2],radd(-M[1],-M[3]-M[4]),M[1]]);
- if(type(Swap)==4 && length(Swap)==3){
- MX=radd(-M[0],-M[1]-M[2]); MY=radd(-M[3],-M[1]-M[4]);
- if(Swap[0]==1){
- MX0=M[2];MY0=M[4];
- }
- else if(Swap[0]==2){
- MX0=MX;MY0=MY;
- }else{
- MX0=M[0];MY0=M[3];
- }
- if(Swap[1]==1){
- MX1=M[2];MY1=M[4];
- }
- else if(Swap[1]==2){
- MX1=MX;MY1=MY;
- }else{
- MX1=M[0];MY1=M[3];
- }
- return newvect(5,MX0,M[1],MX1,MY0,MY1);
- }
- }
- return 0;
- }
- if(getopt(swap)==1)
- return m2mc(m2mc(m2mc(M,"swap"),X),"swap");
- N=newvect(5);
- for(I=0;I<5;I++)
- N[I]=M[I];
- S=size(N[0])[0];
- if(type(X)==4){
- for(I=0;I<3;I++){
- if(X[I] != 0)
- N[I] = radd(N[I],X[I]);
- }
- if(length(X)==3) return N;
- X=X[3];
- }
- MZ = newmat(S,S);
- ME = mgen(S,0,[X],0);
- MM = newvect(5);
- MM[0] = newbmat(3,3, [[N[0]+ME,N[1],N[2]], [MZ], [MZ]]);
- MM[1] = newbmat(3,3, [[MZ], [N[0],N[1]+ME,N[2]], [MZ]]);
- MM[2] = newbmat(3,3, [[MZ], [MZ], [N[0],N[1],N[2]+ME]]);
- MM[3] = newbmat(3,3, [[N[3]+N[1],-N[1]], [-N[0],radd(N[0],N[3])], [MZ,MZ,N[3]]]);
- MM[4] = newbmat(3,3, [[N[4]], [MZ,N[4]+N[2],-N[2]], [MZ,-N[1],radd(N[4],N[1])]]);
- M0 = newbmat(3,3, [[N[0]], [MZ,N[1]], [MZ,MZ,N[2]]]);
- M1 = radd(MM[0],MM[1]+MM[2]);
- KE = append(mykernel(M0|opt=1),mykernel(M1|opt=1));
- if(length(KE) == 0) return MM;
- KK = mtoupper(lv2m(KE),0);
- for(I=0;I<5;I++)
- MM[I] = mmod(MM[I],KK);
- if(Simp!=0) MM = mdsimplify(MM|type=Simp);
- return MM;
-}
-
-def easierpol(P,X)
-{
- if(type(X) == 4){
- for( Y = [] ; X != []; X = cdr(X) )
- Y = cons([0,car(X)], Y);
- }else
- Y = [0,X];
- return rede(P,Y);
-}
-
-def l2p(L,V)
-{
- if(type(L)==4){
- for(S=I=0;L!=[];L=cdr(L),I++)
- S+=car(L)*V^I;
- return S;
- }else if(type(L)==5){
- for(S=0,I=size(L)-1;I>=0;I--)
- S+=L[I]*V^I;
- return S;
- }else{
- if(type(D=getopt(size))==1) D--;
- else D=mydeg(L,V);
- for(S=[];D>=0;D--)
- S=cons(mycoef(L,D,V),S);
- return S;
- }
-}
-
-def paracmpl(L,V)
-{
- if(type(L)==4) L=ltov(L);
- S=length(L);
- Lim=getopt(lim);Low=getopt(low);
- if((F=type(L[0]))>3){
- SV=length(L[0]);
- V0=makenewv(L);
- for(LL=[];S>0;S--)
- LL=cons(l2p(L[S-1],V0),LL);
- G=paracmpl(LL,V|option_list=getopt());
- H=(Lim==1)?G:G[0];
- for(HH=[];H!=[];H=cdr(H)){
- HT=l2p(car(H),V0|size=SV);
- if(F==5) HT=ltov(HT);
- HH=cons(HT,HH);
- }
- H=reverse(HH);
- return (Lim==1)?H:[H,G[1]];
- }
- H=newvect(S);D=newvect(S);
- for(Dn=1,I=0;I<S;I++){
- P=dn(L[I]=red(L[I]));
- Dn=red(Dn*P/gcd(Dn,P));
- }
- if(Dn!=1){
- for(I=0;I<S;I++) L[I]=red(Dn*L[I]);
- }
- G=diagm(S,[1]);
- if(type(V)<4) V=[V];
- VV=lsort(vars(L),V,1);
- V=car(V);
- for(I=0;I<S;I++){
- P=L[I];
- for(J=0,C=P;J<I;J++){
- if(D[J]!=[]){
- C=mycoef(C,DT,VV);
- P-=C*H[J];
- G=cola(G,I,J,-C);
- }
- }
- if(P==0){
- D[I]=[];continue;
- }
- P0=nm(red(P));
- K=mymindeg(P0,V);
- C=mycoef(P0,K,V);
- if(K>0){
- P=red(P/V^K);
- G=colm(G,I,1/V^K);
- }
- for(DT=[],VT=VV;VT!=[];VT=cdr(VT)){
- K=(Low==1)?mymindeg(C,car(VT)):mydeg(C,car(VT));
- C=mycoef(C,K,car(VT));
- DT=cons(K,DT);
- }
- D[I]=DT=reverse(DT);
- for(C=P,VT=VV;VT!=[];VT=cdr(VT),DT=cdr(DT))
- C=mycoef(C,car(DT),car(VT));
- H[I]=P=red(P/C);
- G=colm(G,I,1/C);
- }
- if(Dn!=1){
- for(I=0;I<S;I++){
- TH=red(H[I]/Dn);
- F=fctr(dn(TH));F=cdr(F);
- if(Lim!=1||subst(Dn,V,0)==0){
- for(;F!=[];F=cdr(F)){
- if(lsort(vars(car(F)[0]),VV,2)==[]){
- C=car(F)[0]^car(F)[1];
- TH=red(TH*C);
- G=colm(G,I,C);
- }
- }
- }
- H[I]=TH;
- }
- }
- H=vtol(H);
- if(Lim==1){
- H=subst(H,V,0);
- return map(red,H);
- }
- return [H,map(red,G)];
-}
-
-def mykernel(M)
-{
- if(getopt(opt) == 1)
- M = mtranspose(M);
- S = size(M);
- R = [];
- MM = mtoupper(M,-1);
- for(I = S[0]-1; I >= 0; I--){
- for(J = S[1]-1; J >= 0; J--){
- if(MM[I][J] != 0)
- return R;
- }
- P = easierpol(MM[I][S[1]],zz);
- RR = newvect(S[0]);
- for(J = 0; J < S[0]; J++)
- RR[J] = mycoef(P,J,zz);
- R = cons(RR,R);
- }
- return R;
-}
-
-def myimage(M)
-{
- if(getopt(opt) == 1)
- M = mtranspose(M);
- S = size(M);
- V = [];
- M0 = newvect(S[1]);
- M = mtoupper(M,0|opt=1);
- for(I = S[0]-1; I >= 0; I--)
- if(M0 != M[I])
- V = cons(vtozv(M[I])[0], V);
- return V;
-}
-
-def mymod(V,L)
-{
- Opt = getopt(opt);
- S = length(V);
- VP = newvect(S);
- if(type(L)==6)
- L=m2lv(L);
- CT = length(L);
- for(LT = L; LT != []; LT = cdr(LT)){
- for(VT = car(LT), I = 0; I < S; I++)
- if(VT[I] != 0) break;
- if(I >= S){
- CT--;
- continue;
- }
- VP[I] = 1;
- MI = -red(V[I]/VT[I]);
- if(MI != 0)
- V = radd(V,rmul(MI,VT));
- }
- if(Opt==1){
- for(I = 0; I < S; I++)
- if(V[I] != 0)
- return 1;
- return 0;
- }
- if(Opt==2){
- W=newvect(S-CT);
- for(CC = I = 0; I < S; I++){
- if(VP[I]==0) W[CC++] =V[I];
- }
- return W;
- }
- return V;
-}
-
-def mmod(M,L)
-{
- S=size(M)[1];
- MM=mtranspose(M);
- VP = newvect(S);
- if(type(L)==6)
- L=m2lv(L);
- for(CT = 0, LT = L; LT != []; LT = cdr(LT)){
- for(VT = car(LT), I = 0; I < S; I++){
- if(VT[I] != 0){
- VP[I] = 1;
- break;
- }
- }
- }
- if(getopt(opt)==1)
- NE=1;
- for(D=I=0; I<S; I++){
- if(NE != 1 && VP[I] == 1) continue;
- T = mymod(MM[I],L|opt=2);
- if(D==0){
- K=length(T);
- MN=newmat((NE==1)?S:K,K);
- }
- for(J=0;J<K;J++)
- MN[J][D]=T[J];
- D++;
- }
- return MN;
-}
-
-def llsize(V)
-{
- for(I=J=0;V!=[];V=cdr(V),I++)
- if(length(car(V))>J) J=length(car(V));
- return [I,J];
-}
-
-def llbase(VV,L)
-{
- S = length(VV);
- V = dupmat(VV);
- if(type(V) == 4)
- V = ltov(V);
- T = length(L);
- for(I = 0; I < S; I++)
- V[I] = nm(red(V[I]));
- LV = 0;
- for(J = 0; J < T; J++){
- X = var(L[J]); N = deg(L[J],X);
- for(I = LV; I < S; I++){
- if((C2=coef(V[I],N,X)) != 0){
- if(I > LV){
- Temp = V[I];
- V[I] = V[LV];
- V[LV] = Temp;
- }
- for(I = 0; I < S; I++){
- if(I == LV || (C1 = coef(V[I],N,X)) == 0)
- continue;
- Gcd = gcd(C1,C2);
- V[I] = V[I]*tdiv(C2,Gcd)-V[LV]*tdiv(C1,Gcd);
- }
- LV++;
- }
- }
- }
- return V;
-}
-
-def lsort(L1,L2,T)
-{
- C1=getopt(c1);C2=getopt(c2);
- if(type(T)==4){
- K=T;
- if(length(T)>0){
- T=K[0];
- K=cdr(K);
- }else T=0;
- }else K=0;
- if(type(TT=T)==7)
- T = findin(T,["cup","setminus","cap","reduce","sum","subst"]);
- if(type(L2)==7&&T<0)
- T=findin(TT,["put","get","sub"]);
- if(K){ /* [[..],..] */
- if(K!=[]) KN=K[0];
- if(L2==[]||L2=="sort"){ /* sort or deduce duplication */
- if((T!=0&&T!=3)||length(K)!=1) return L1;
- if(KN<0){
- KN=-KN-1;
- F=-1;
- }else F=1;
- L1=msort(L1,[F,0,KN]);
- if(T==3){
- R=[car(L1)];L1=cdr(L1);
- for(;L1!=[];L1=cdr(L1)){
- if(car(L1)[KN]!=car(R)[KN]) R=cons(car(L1),R);
- }
- L1=reverse(R);
- }
- return L1;
- }else if((L2==0||L2=="col")&&type(C1)==4){
- if(T==0||T==1){ /* extract or delete columns */
- for(R=[];L1!=[];L1=cdr(L1)){
- if(T==1&&C1==[0]){ /* delete top column */
- R=cons(cdr(car(L1)),R);
- continue;
- }
- LT=car(L1);RT=[];
- if(T==0){
- for(CT=C1;CT!=[];CT=cdr(CT)) RT=cons(LT[car(CT)],RT);
- }else{
- for(I=0;LT!=[];I++,LT=cdr(LT))
- if(findin(I,C1)<0) RT=cons(car(LT),RT);
- RT=reverse(RT);
- }
- R=cons(RT,R);
- }
- return reverse(R);
- }
- }else if(type(L2)==1||type(L2)==7){
- if(L2==1||L2=="num"){
- if(T==4) T=3;
- I=(length(K)<2)?(-1):K[1];
- if(T==0||T==1||T==2||T==3){
- S=F=CT=0;R=[];
- if(K==[] || type((S=K[0]))==1 || S==0){
- if(T==0||T==1||T==2){
- for(J;L1!=[];L1=cdr(L1),J++){
- if(T==0) R=cons(cons(J+S,car(L1)),R);
- else if(T==1){
- for( ;C1!=[]; C1=cdr(C1))
- R=cons(L1[car(C1)],R);
- }else{
- if(findin(J,C1)<0) R=cons(car(L1),R);
- }
- }
- return reverse(R);
- }else if(T==3) return length(L1);
- }else{
- if(type(S)==2&&vtype(S)>2) F=1;
- else if(type(S)==4) F=2;
- else if(S=="+") F=3;
- else return L1;
- }
- for(R=[];L1!=[];L1=cdr(L1)){
- L1T=car(L1);
- if(F==1) V=call(S,(I<0)?L1T:L1T[I]);
- else if(F==2) V=calc((I<0)?L1T:L1T[I],S);
- else if(F==3){
- for(C=C1,V=0;C!=[];C=cdr(C))
- if(type(X=L1T[car(C)])==1) V+=X;
- }
- if(T==0) R=cons(cons(V,L1T),R);
- else if(T==1){
- if(V) R=cons(L1T,R);
- }else if(T==2){
- if(!V) R=cons(L1T,R);
- }else if(T==3){
- if(F==3) CT+=V;
- else if(V) CT++;
- }
- }
- return (T==3)?CT:reverse(R);
- }else if(TT=="col"){
- J=(length(K)>0)?car(K):0;
- I=length(car(L1))+J;
- for(V=[];I>J;)
- V=cons(--I,V);
- return cons(V,L1);
- }
- }else if(L2=="transpose") return mtranspose(L1);
- else if(L2=="subst"||L2=="adjust"){
- Null=(!K)?"":car(K);
- if(L2=="adjust") C1=[];
- R=lv2m(L1|null="");
- for(;C1!=[];C1=cdr(C1)) R[car(C1)[0]][car(C1)[1]]=car(C1)[2];
- return m2ll(R);
- }
- return L1;
- }else{ /* [[..],..], [[..],..] */
- if(type(L2[0])<4){
- for(R=[];L2!=[];L2=cdr(L2)) R=cons([car(L2)],R);
- L2=reverse(R);
- }
- if(TT=="sum") T=3;
- if(TT=="over") T=4;
- if(findin(T,[0,1,2,3,4,5])<0) return L1;
- if(T==4||T==5){
- if(type(C1)<2) C1=[C1];
- if(type(C2)<2) C2=[C2];
- }
- if(type(car(L2))!=4){
- for(R=[];L2!=[];L2=cdr(L2)) R=cons([car(L2)],R);
- R=reverse(R);
- if(length(K)==1) K=[K[0],0];
- C2=0;
- }
- L1=lsort(L1,"num",["put",0]); /* insert number */
- K0=(length(K)>0)?K[0]+1:1;
- K1=(length(K)>1)?K1=K[1]:0;
- L1=lsort(L1,"sort",[0,K0]);
- if(T<4&&type(C2)==4&&length(L2[0])>1){
- L2=lsort(L2,"col",["put"]|c1=cons(K1,C2)); /* add key and extract columns */
- C2=0;K1=0;
- }
- L2=lsort(L2,"sort",[0,K1]);
- for(R0=[],S=S1=length(L1[0]);S>0;S--) R0=cons("",R0);
- for(R1=[],S=length(L2[0]);S>0;S--) R1=cons("",R1);
- if(!K1&&T!=3) R1=cdr(R1);
- for(R=[];L1!=[];L1=cdr(L1)){
- while(L2!=[]&&car(L1)[K0]>car(L2)[K1]){
- if(T==3) R=cons(append(R0,car(L2)),R);
- L2=cdr(L2);
- }
- if(L2==[]||car(L1)[K0]<car(L2)[K1]){
- if(T!=2) R=cons((T==1||T>3||R1==[])?car(L1):append(car(L1),R1),R);
- }else if(T==0||T==2||T==3){
- if(R0==[]) R=append(car(L1),R);
- else R=cons(append(car(L1),(!K1&&T!=3)?cdr(car(L2)):car(L2)),R);
- L2=cdr(L2);
- }else if(T==4||T==5){
- V1=ltov(car(L1));V2=ltov(car(L2));
- for(D1=C1,D2=C2;D1!=[];D1=cdr(D1),D2=cdr(D2))
- if((I=V2[car(D2)])!=""||T==4) V1[car(D1)+1]=I;
- R=cons(vtol(V1),R);
- }
- }
- if(T==3){
- while(L2!=[]){
- R=cons(append(R0,car(L2)),R);
- L2=cdr(L2);
- }
- }
- R=lsort(R,"sort",["put",0]); /* original order */
- D=(((T==0||T==2)&&!K1)||T==3)?[0]:[0,S1+K1];
- R=lsort(R,0,[1]|c1=D); /* delete */
- if(type(C1)!=4||T==1||T==4||T==5) return R;
- C=[];S0=size(L1[0]);
- for(;C1!=[];C1=cdr(C1)) C=cons(car(C1),C);
- for(I=0;I<S0-S1;I++) C=cons(I+S1,C);
- C=reverse(C);
- return lsort(R,"col",[1]|c1=C);
- }
- }
- if(L2 == []){ /* [...] */
- if(T==8||TT=="count") return [length(L1),length(lsort(L1,[],1))];
- if(T==7||TT=="cut"){
- K=length(L1);
- if(C1<0) C1=K+C1;
- for(R=[],I=0;I<C1&&L1!=[];I++,L1=cdr(L1))
- R=cons(car(L1),R);
- for(S=[];L1!=[];L1=cdr(L1))
- S=cons(car(L1),S);
- return [reverse(R),reverse(S)];
- }
- if(T==2) return L2;
- if(T==3) return [L1,L2];
- L1 = ltov(L1); qsort(L1);
- if(T != 1)
- return vtol(L1);
- L3 = [];
- for(I = length(L1)-1; I >= 0; I--){
- if(I > 0 && L1[I] == L1[I-1])
- continue;
- L3 = cons(L1[I], L3);
- }
- return L3;
- }
- if(T==8||TT=="count"){
- K=length(lsort(L1,L2,3)[0]);
- R=[length(L2),length(L1)];
- L1 = lsort(L1,[],1);
- L2 = lsort(L2,[],1);
- R=append([length(L2),length(L1)],R);
- R=cons(length(lsort(L1,L2,2)),R);
- return reverse(cons(K,R));
- }
- if((T==9||TT=="cons")&&type(car(L1))==4){
- if(type(L2)!=4) L2=[L2];
- for(R=[];L1!=[];L1=cdr(L1)){
- R=cons(cons(car(L2),car(L1)),R);
- if(length(L2)>1) L2=cdr(L2);
- }
- return reverse(R);
- }
- if(T==10||TT=="cmp"){
- if(length(L1)!=length(L2)){
- mycat("Different length!");
- return 1;
- }
- R=[];
- if(type(car(L1))==4){
- for(U=[],I=0;L1!=[];I++,L1=cdr(L1),L2=cdr(L2)){
- if(length(S=car(L1))!=length(T=car(L2))){
- mycat(["Different size : line ",I]);
- return 0;
- }
- for(J=0;S!=[];S=cdr(S),T=cdr(T),J++)
- if(car(S)!=car(T)) U=cons([[I,J],car(S),car(T)],U);
- }
- if(U!=[]) R=cons(reverse(U),R);
- }else{
- for(I=0;L1!=[];L1=cdr(L1),L2=cdr(L2),I++)
- if(car(L1)!=car(L2)) R=cons([I,car(L1),car(L2)],R);
- }
- return reverse(R);
- }
- if(T==11||TT=="append"){
- if(type(car(L1))!=4) return append(L1,L2);
- for(R=[];L1!=[];L1=cdr(L1),L2=cdr(L2))
- R=cons(append(car(L1),car(L2)),R);
- return reverse(R);
- }
- if(T == 1 || T == 2){
- L1 = lsort(L1,[],1);
- L2 = lsort(L2,[],1);
- L3 = [];
- if(T == 1){
- while(L1 != []){
- if(L2 == [] || car(L1) < car(L2)){
- L3 = cons(car(L1), L3);
- L1 = cdr(L1);
- continue;
- }
- if(car(L1) > car(L2)){
- L2 = cdr(L2);
- continue;
- }
- L1 = cdr(L1); L2 = cdr(L2);
- }
- return reverse(L3);
- }
- if(T==2){
- while(L1 != [] && L2 != []){
- if(car(L1) != car(L2)){
- if(car(L1) <= car(L2))
- L1 = cdr(L1);
- else L2 = cdr(L2);
- continue;
- }
- while(car(L1) == car(L2))
- L1 = cdr(L1);
- L3 = cons(car(L2), L3);
- }
- return reverse(L3);
- }
- }
- if(T==3){
- L1 = qsort(L1); L2 = qsort(L2);
- L3 = L4 = [];
- while(L1 != [] && L2 != []){
- if(car(L1) == car(L2)){
- L1 = cdr(L1); L2 = cdr(L2);
- }else if(car(L1) < car(L2)){
- L3 = cons(car(L1),L3);
- L1 = cdr(L1);
- }else{
- L4 = cons(car(L2), L4);
- L2 = cdr(L2);
- }
- }
- L4 = append(reverse(L4),L2);
- L3 = append(reverse(L3),L1);
- return [L3,L4];
- }
- L1 = append(L1,L2);
- return lsort(L1,[],1);
-}
-
-def mqsub(X,Y)
-{
- for(L=LQS;L!=[];L=cdr(L)){
- F=(T=car(L))[0];M=(T=cdr(T))[0];
- X0=X;Y0=Y;
- for(T=cdr(T);T!=[];T=cdr(T)){
- X0=X0[car(T)];Y0=Y0[car(T)];
- }
- if(type(M)==1){
- if(M==3){
- X0=type(X0);Y0=type(Y0);
- }else if(M==4&&type(X0)<2&&type(Y0)<2){
- X0=abs(X0);Y0=abs(Y0);
- }else if(M==5){
- X0=str_len(rtostr(X0));Y0=str_len(rtostr(Y0));
- }else if(type(X0)==type(Y0)&&type(X0)>3&&type(X0)<7){
- if(M==1){
- X0=length(X0);Y0=length(Y0);
- }else if(M==2){
- LX=length(X0);LY=length(Y0);
- L0=(LX<LY)?LX:LY;
- for(I=0;;I++){
- if(I==L0){
- X0=LX;Y0=LY;break;
- }
- if(X0[I]==Y0[I]) continue;
- X0=X0[I];Y0=Y0[I];break;
- }
- }
- }
- }else if(type(M)==2){
- X0=(*M)(X0,Y0);Y0=0;
- }else if(type(M)==4&&length(M)==1){
- X0=(*car(M))(X0);Y0=(*car(M))(Y0);
- }
- if(X0==Y0) continue;
- return (X0<Y0)?-F:F;
- }
- return 0;
-}
-
-def msort(L,S)
-{
- if(type(S)!=4) return qsort(L);
- if(type(S[0])!=4) S=[S];
- LQS=S;
- return qsort(L,os_md.mqsub);
-}
-
-def lmax(L)
-{
- if(type(L)==4){
- V=car(L);
- while((L=cdr(L))!=[])
- if(V < car(L)) V=car(L);
- return V;
- }else if(type(L)==5||type(L)==6)
- return lmax(m2l(L));
- return [];
-}
-
-def lmin(L)
-{
- if(type(L)==4){
- V=car(L);
- while((L=cdr(L))!=[])
- if(V > car(L)) V=car(L);
- return V;
- }else if(type(L)==5||type(L)==6)
- return lmin(m2l(L));
- return [];
-}
-
-def lgcd(L)
-{
- if(type(L)==4){
- F=getopt(poly);
- V=car(L);
- while((L=cdr(L))!=[]&&V!=1){
- if(V!=0)
- V=(F==1)?gcd(V,car(L)):igcd(V,car(L));
- }
- return V;
- }else if(type(L)==5||type(L)==6)
- return lgcd(m2l(L)|option_list=getopt());
- return [];
-}
-
-def llcm(L)
-{
- if(type(L)==4){
- F=getopt(poly);
- V=car(L);
- while((L=cdr(L))!=[]){
- if(V!=0){
- if((V0=car(L))!=0)
- V=(F==1)?red(V*V0/gcd(V,V0)):ilcm(V,V0);
- }
- else V=car(L);
- }
- if(F!=1&&V<0) V=-V;
- return V;
- }
- else if(type(L)==5||type(L)==6)
- return llcm(m2l(L)|option_list=getopt());
- return [];
-}
-
-def ldev(L,S)
-{
- M=abs(lmax(L));N=abs(lmin(L));
- if(M<N) M=N;
- for(C=0,LT=L;;C++){
- LT=ladd(LT,S,1);
- MT=abs(lmax(LT));NT=abs(lmin(LT));
- if(MT<NT) MT=NT;
- if(MT>=M) break;
- M=MT;
- }
- if(!C){
- for(C=0,LT=L;;C--){
- LT=ladd(LT,S,-1);
- MT=abs(lmax(LT));NT=abs(lmin(LT));
- if(MT<NT) MT=NT;
- if(MT>=M) break;
- M=MT;
- }
- }
- return [C,ladd(L,S,C)];
-}
-
-def lchange(L,P,V)
-{
- if(getopt(flat)==1&&type(P)==4){
- for(L=ltov(L);P!=[];P=cdr(P),V=cdr(V))
- L[car(P)]=car(V);
- return vtol(L);
- }
- if(type(P)==4){
- IP=car(P); P=cdr(P);
- }else{
- IP=P; P=[];
- }
- for(I=0, LL=[], LT=L; LT!=[]; I++,LT=cdr(LT)){
- if(I==IP){
- LL=cons((P==[])?V:lchange(car(LT),P,V),LL);
- }else
- LL=cons(car(LT),LL);
- }
- return reverse(LL);
-}
-
-def lsol(VV,L)
-{
- if(type(VV)<4 && type(L)==2)
- return red(L-VV/mycoef(VV,1,L));
- S = length(VV);
- T = length(L);
- V = llbase(VV,L);
- for(J = K = 0; J < T; J++){
- X = var(L[J]); N = deg(L[J],X);
- for(I = K; I < S; I++){
- if((C=mycoef(V[I], N, X)) != 0){
- V[I] = [L[J],red(X^N-V[I]/C)];
- K++;
- break;
- }
- }
- }
- return V;
-}
-
-def lnsol(VV,L)
-{
- LL=lsort(vars(VV),L,1);
- VV=ptol(VV,LL|opt=0);
- return lsol(VV,L);
-}
-
-
-def ladd(X,Y,M)
-{
- if(type(X)==4) X=ltov(X);
- if(type(Y)==4) Y=ltov(Y);
- return vtol(X+M*Y);
-}
-
-def mrot(X)
-{
- if(type(X)==4){
- if(getopt(deg)==1)
- X=[deval(@pi*X[0]/180),deval(@pi*X[1]/180),deval(@pi*X[2]/180)];
- if(getopt(conj)==1)
- return mrot([-X[2],-X[1],0])*mrot([X[0],X[1],X[2]]);
- if(X[1]==0){
- X=[X[0]+X[2],0,0];
- if(X[0]==0) return diagm(3,[1]);
- }
- if(X[0]!=0){
- M=mat([dcos(X[0]),-dsin(X[0]),0],[dsin(X[0]),dcos(X[0]),0],[0,0,1]);
- if(X[1]==0) return M;
- }
- N=mat([dcos(X[1]),0,-dsin(X[1])],[0,1,0],[dsin(X[1]),0,dcos(X[1])]);
- if(X[0]!=0) N=M*N;
- if(X[2]==0) return N;
- return N*mrot([X[2],0,0]);
- }
- if(getopt(deg)==1) X=@pi*X/180;
- X=deval(X);
- return mat([dcos(X),-dsin(X)],[dsin(X),dcos(X)]);
-}
-
-def m2v(M)
-{
- S = size(M);
- V = newvect(S[0]*S[1]);
- for(I = C = 0; I < S[0]; I++){
- MI = M[I];
- for(J = 0; J < S[1]; J++)
- V[C++] = MI[J];
- }
- return V;
-}
-
-def lv2m(L)
-{
- if(type(L)==5) L=vtol(L);
- II=length(L);
- for(J=1,T=L; T!=[]; T=cdr(T))
- if(length(car(T))>JJ) JJ=length(car(T));
- M = newmat(II,JJ);
- N = getopt(null);
- if(type(N)<0) N=0;
- for(I=0; I<II; I++){
- V=car(L); L=cdr(L);
- for(J=length(V);--J>=0;)
- M[I][J] = V[J];
- if(N!=0){
- for(J=length(V); J<JJ; J++)
- M[I][J]=N;
- }
- }
- return M;
-}
-
-def m2lv(M)
-{
- I=size(M)[0];
- for(N=[],I=size(M)[0];I-->0;)
- N=cons(M[I],N);
- return N;
-}
-
-def s2m(S)
-{
- if(type(S)==6) return S;
- if(type(S)==7){
- if(str_chr(S,0,"[")!=0) S=s2sp(S);
- else if(str_chr(S,0,",")>=0) return eval_str(S);
- else{
- for(L=LL=[],I=0; ; ){
- II=str_chr(S,I+2,"]");
- if(II<0) return 0;
- J=str_chr(S,I+2," ");
- while(str_chr(S,J+1," ")==J+1) J++;
- if(J>II-2 || J<0) J=II;
- V=eval_str(sub_str(S,I+1,J-1));
- L=cons(V,L);
- I=J;
- if(J==II){
- LL=cons(ltov(reverse(L)),LL);
- L=[];
- if((I=str_chr(S,II+1,"["))<0)
- return lv2m(reverse(LL));
- }
- }
- }
- }
- if(type(S)==5) S=vtol(S);
- if(type(S[0])==5) return lv2m(S);
- I=length(S);
- for(J=1,T=S; T!=[]; T=cdr(T))
- if(length(car(T))>J) J=length(car(T));
- return newmat(I,J,S);
-}
-
-def c2m(L,V)
-{
- if(type(Pow=getopt(pow))!=1){
- if(isvar(V)==1){
- for(Pow=0,LT=L;LT!=[];LT=cdr(LT)){
- if(mydeg(car(LT),V)>JJ) Pow=mydeg(car(LT),V);
- }
- JJ=Pow+1;
- }else{
- Pow=-1;
- JJ=length(V);
- }
- }else JJ=Pow+1;
- M=newmat(length(L),JJ);
- for(I=0;L!=[];L=cdr(L),I++){
- for(J=0;J<JJ;J++){
- LT=car(L);
- M[I][J]=(Pow>=0)?mycoef(LT,J,V):mycoef(LT,1,V[J]);
- }
- }
- return M;
-}
-
-#if 0
-def m2diag(M,N)
-{
- S = size(M);
- MM = mtoupper(M,N);
- for(I = S[0]-1; I >= 0; I--){
- for(J = 0; I < S[1]-N; I++){
- if(MM[I][J] != 0){
- P = MM[I][J];
- for(K = 0; K < I; K++){
- Q = -rmul(MM[K][J],1/P);
- MM[K][J] = 0;
- if(Q != 0){
- for(L = J+1; L < S[1]; L++){
- if(MM[I][L] != 0)
- MM[K][L] = radd(MM[K][L], rmul(MM[I][L],Q));
- }
- }
- }
- }
- }
- }
- return MM;
-}
-#endif
-
-def myinv(M)
-{
- S = size(M);
- if((T=S[0]) != S[1])
- return 0;
- MM = mtoupper(M,-T|opt=2);
- if(MM[T-1][T-1] != 1) return 0;
- return mperm(MM,0,[T,[T]]);
-}
-
-def madj(G,M)
-{
- H=myinv(G);
- if(type(M)==6)
- return rmul(rmul(G,M),H);
- if(type(M)==4||type(M)==5){
- L=length(M);
- N=newvect(L);
- for(I=0;I<L;I++){
- N[I]=rmul(rmul(G,M[I]),H);
- }
- if(type(N)==4) N=vtol(N);
- return N;
- }
- return -1;
-}
-
-def mpower(M,N)
-{
- if(type(M)<=3) return (red(M))^N;
- S = size(M);
- if(S[0] != S[1])
- return 0;
- if(N == 0) return mgen(S[0],0,[1],0);
- if(N < 0)
- return(mpower(myinv(M), -N));
- R = dupmat(M);
- V=1;
- for(V=1;;){
- if(iand(N,1)){
- V=map(red,R*V);
- N--;
- }
- if((N/=2)==0) break;
- R=map(red,R*R);
- }
- return V;
-}
-
-def texlen(S)
-{
- if(type(S)!=7) return 0;
- LF=I=J=0;
- LM=str_len(S);
- while((I=str_str(S,"\\frac{"|top=J))>=0){
- if(I>J) LF+=texlen(str_cut(S,J,I-1));
- I+=6;
- for(F=L=0,J=I;F<2 && J<LM-1;F++){
- for(C=1;C>0 && J<LM;){
- if((K0=str_char(S,J,"}"))<0) K0=LM;
- if((K1=str_char(S,J,"{"))<0) K1=LM;
- if(K0<0 && K1<0){
- J = str_len(S)-1;
- break;
- }
- if(K0<K1){
- J=K0+1; C--;
- }else{
- J=K1+1; C++;
- }
- }
- T=str_cut(S,I,J-1);
- if(F==0){
- I=J=K1+1;C=1;
- }else J=K0+1;
- if(type(T)==7 && (LL=texlen(T))>L) L=LL;
- }
- LF+=L;
- }
- if(J>0) S=str_cut(S,J,str_len(S)-1);
- if(S==0) return LF;
- S=ltov(strtoascii(S));
- L=LL=length(S);
- for(I=F=0; I<L; I++){
- if(S[I]==92) F=1;
- else if(F==1){
- if((S[I]>96 && S[I]<123)||(S[I]>64 && S[I]<91)) LL--;
- else F=0;
- }
- if(S[I]<=32||S[I]==123||S[I]==125||S[I]==94||S[I]==38) LL--; /* {}^& */
- else if(S[I]==95){
- LL--;
- if(I+2<L && S[I+2]==94) LL--; /* x_2^3 */
- else if(I+6<L && S[I+1]==123 && S[I+4]==125){ /* x_{11}^2 */
- if(S[I+5]==94 || (S[I+5]==125 && S[I+6]==94)) LL-- ; /* x_{11}}^2 */
- }
- }
- }
- return LL+LF;
-}
-
-def isdif(P)
-{
- if(type(P)<1 || type(P)>3) return 0;
- for(Var=[],R=vars(P);R!=[];R=cdr(R)){
- V0=rtostr(car(R));
- if(V0>"d" && V0<"e"){
- V=sub_str(V0,1,str_len(V0)-1);
- if(V>="a" && V<"{") Var=cons([strtov(V),strtov(V0)],Var);
- }
- }
- if(Var==[]) return 0;
- for(V=Var; V!=[]; V=cdr(V))
- if(ptype(P,car(V)[1])==3) return 0;
- return Var;
-}
-
-def texsp(P)
-{
- Q=strtoascii(P);
- if((J=str_char(Q,0,92))<0 || (C=Q[L=str_len(P)-1])==32||C==41||C==125)
- return P;
- for(;;){
- if((I=str_char(Q,J+1,92))<0) break;
- J=I;
- };
- for(I=J+1;I<L&&isalpha(Q[I]);I++);
- return(I==L)?P+" ":P;
-}
-
-def fctrtos(P)
-{
- /* extern TeXLim; */
-
- if(!chkfun("write_to_tb", "names.rr"))
- return 0;
-
- TeX = getopt(TeX);
- if(TeX != 1 && TeX != 2 && TeX != 3)
- TeX = 0;
- if((Dvi=getopt(dviout)==1) && TeX<2) TeX=3;
- if(TeX>0){
- Lim=getopt(lim);
- if(Lim!=0 && TeX>1 && (type(Lim)!=1||Lim<30)) Lim=TeXLim;
- else if(type(Lim)!=1) Lim=0;
- CR=(TeX==2)?"\\\\\n":"\\\\\n&";
- if(TeX==1 || Lim==0) CR="";
- else if((Pages=getopt(pages))==1) CR="\\allowdisplaybreaks"+CR;
- if(!chkfun("print_tex_form", "names.rr"))
- return 0;
- Small=getopt(small);
- }
- Dif=getopt(dif);
- Var=getopt(var);
- if(Lim>0 && type(Var)<2 && TeX!=1) Var=[strtov("0"),""];
- Dif=0;
- if(Var=="dif"){
- Dif=DV=1;
- }else if (Var=="dif0") Dif=1;
- else if(Var=="dif1") Dif=2;
- else if(Var=="dif2") Dif=3;
- if(Dif>0){
- for(Var=[],R=vars(P);R!=[];R=cdr(R)){
- V=rtostr(car(R));
- if(V>"d" && V<"e"){
- V=sub_str(V,1,str_len(V)-1);
- if(V>="a" && V<"{"){
- if(TeX>0){
- V=my_tex_form(strtov(V));
- if(Dif>=1){
- if(Dif==1){
- if(str_len(V)==1) V="\\partial_"+V;
- else V="\\partial_{"+V+"}";
- }
- Var=cons([car(R),V],Var);
- }
- else Var=cons([car(R)],Var);
- }else Var=cons([car(R)],Var);
- }
- }
- }
- if(TeX>0){
- if(length(Var)==1){
- if(DV==1 && str_len(Var[0][1])==10) Var=[[Var[0][0],"\\partial"]];
- }else if(DV==1){
- for(V=Var;V!=[];V=cdr(V)){
- VV=rtostr(car(V)[0]);
- if(VV<"dx0" || VV>= "dx:" || str_len(VV)>4) break;
- }
- if(V==[]){
- for(VT=[],V=Var;V!=[];V=cdr(V)){
- VV=str_cut(rtostr(car(V)[0]),2,3);
- if(str_len(VV)==1) VT=cons([car(V)[0],"\\partial_"+VV],VT);
- else VT=cons([car(V)[0],"\\partial_{"+VV+"}"],VT);
- }
- Var=reverse(VT);
- }
- }else
- if(Dif==2 && length(Var)>1) Dif=3;
- }
- if(Dif>0) Dif--;
- }
- if(type(Var)>1 && Var!=[]){ /* as a polynomial of Var */
- Add=getopt(add);
- if(type(Add)>0){
- if(type(Add)!=7){
- Add=my_tex_form(Add);
- if(str_char(Add,0,"-")>=0 || str_char(Add,0,"+")>=0) Add="("+Add+")";
- }
- if(str_char(Add,0,"(")!=0) Add = " "+Add;
- }else Add=0;
- if(type(Var)!=4) Var=[Var];
- if(length(Var)==2 && type(Var[1]) == 7)
- Var = [Var];
- for(VV=VD=[]; Var!=[];Var=cdr(Var)){
- VT=(type(car(Var))==4)?car(Var):[car(Var)];
- VT0=var(car(VT));
- VV=cons(VT0,VV);
- if(length(VT)==1){
- VD=cons((TeX>=1)?my_tex_form(VT0):rtostr(VT0),VD);
- }else VD=cons(VT[1],VD);
- }
- VV=reverse(VV);VD=reverse(VD);
- Rev=(getopt(rev)==1)?1:0;
- Dic=(getopt(dic)==1)?1:0;
- TT=terms(P,VV|rev=Rev,dic=Dic);
- if(TeX==0){
- Pre="("; Post=")";
- }else{
- Pre="{"; Post="}";
- }
- Out = string_to_tb("");
- for(L=C=0,Tm=TT;Tm!=[];C++,Tm=cdr(Tm)){
- for(I=0,PC=P,T=cdr(car(Tm)),PW="";T!=[];T=cdr(T),I++){
- PC=mycoef(PC,D=car(T),VV[I]);
- if(PC==0) continue;
- PT="";
- if(D!=0 && VD[I]!=""){
- if(TeX==0 && PW!="") PW+="*";
- if(D>1){
- if(D>9) PT="^"+Pre+rtostr(D)+Post;
- else PT="^"+rtostr(D);
- }
- if(Dif>0) PW+=(Dif==1)?"d":"\\partial ";
- PW+=VD[I]+PT;
- }
- }
- D=car(Tm)[0];
- if(Dif>0 && D>0){
- Op=(Dif==1)?"\\frac{d":"\\frac{\\partial";
- if(D>1) Op+="^"+((D>9)?(Pre+rtostr(D)+Post):rtostr(D));
- PW=Op+Add+"}{"+PW+"}";
- }else if(Add!=0) PW=PW+Add;
- if(TeX>=1){
- if(type(PC)==1 && ntype(PC)==0 && PC<0)
- OC="-"+my_tex_form(-PC);
- else OC=fctrtos(PC|TeX=1,br=1);
- }else OC=fctrtos(PC|br=1);
- if(PW!=""){
- if(OC == "1") OC = "";
- else if(OC == "-1") OC = "-";
- }
- if(TeX==0 && D!=0 && OC!="" && OC!="-") PW= "*"+PW;
- if((TOC=type(OC)) == 4){ /* rational coef. */
- if(Lim>0 && (texlen(OC[0])>Lim || texlen(OC[0])>Lim)){
- OC = (Small==1)?"("+OC[0]+")/("+OC[1]+")"
- :"\\Bigl("+OC[0]+"\\Bigr)\\Bigm/\\Bigl("+OC[1]+"\\Bigr)";
- TOC = 7;
- }else{
- if(str_char(OC[0],0,"-")==0){
- OC = fctrtos(-PC|TeX=1,br=1);
- OC = "-\\frac{"+OC[0]+"}{"+OC[1]+"}";
- }
- else
- OC = "\\frac{"+OC[0]+"}{"+OC[1]+"}";
- }
- }
- if(Lim>0){
- LL=texlen(OC)+texlen(PW);
- if(LL+L>=Lim){
- if(L>0) str_tb(CR,Out);
- if(LL>Lim){
- if(TOC==7) OC=texlim(OC,Lim|cut=CR);
- PW+=CR; L=0;
- }else L=LL;
- }else L+=LL;
- }else if(length(Tm)!=1) PW += CR; /* not final term */
- if(TeX) OC=texsp(OC);
- if(str_chr(OC,0,"-") == 0 || C==0) str_tb([OC,PW], Out);
- else{
- str_tb(["+",OC,PW],Out);
- if(LL<=Lim) L++;
- }
- }
- S=str_tb(0,Out);
- if(S=="") S="0";
- }else{ /* Var is not specified */
- if((TP=type(P)) == 3){ /* rational function */
- P = red(P); Nm=nm(P); Dn=dn(P);
- Q=dn(ptozp(Nm|factor=1)[1]);
- if(Q>1){
- Nm*=Q;Dn*=Q;
- }
- if(TeX>0){
- return (TeX==2)?
- "\\frac\{"+fctrtos(Nm|TeX=1)+"\}\{"+fctrtos(Dn|TeX=1)+"\}"
- :[fctrtos(Nm|TeX=1),fctrtos(Dn|TeX=1)];
- }
- else{
- S=fctrtos(Nm);
- if(nmono(Nm)>1) S="("+S+")";
- return S+"/("+fctrtos(Dn)+")";
- }
- }
- if(imag(P)==0) P = fctr(P); /* usual polynomial */
- else P=[[P,1]];
- S = str_tb(0,0);
- for(J = N = 0; J < length(P); J++){
- if(type(P[J][0]) <= 1){
- if(P[J][0] == -1){
- write_to_tb("-",S);
- if(length(P) == 1)
- str_tb("1", S);
- }else if(P[J][0] != 1){
- str_tb((TeX>=1)?my_tex_form(P[J][0]):rtostr(P[J][0]), S);
- N++;
- }else if(length(P) == 1)
- str_tb("1", S);
- else if(getopt(br)!=1 && length(P) == 2 && P[1][1] == 1){
- str_tb((TeX>=1)?my_tex_form(P[1][0]):rtostr(P[1][0]), S);
- J++;
- }
- continue;
- }
- if(N > 0 && TeX != 1 && TeX != 2 && TeX != 3)
- write_to_tb("*", S);
- SS=(TeX>=1)?my_tex_form(P[J][0]):rtostr(P[J][0]);
- N++;
- if(P[J][1] != 1){ /* (log(x))^2 */
- if(nmono(P[J][0])>1||
- (!isvar(P[J][0])||vtype(P[J][0]))&&str_len(SS)>1) SS="("+SS+")";
- write_to_tb(SS,S);
- str_tb(["^", (TeX>1)?rtotex(P[J][1]):monotos(P[J][1])],S);
- }else{
- if(nmono(P[J][0])>1) SS="("+SS+")";
- write_to_tb(SS,S);
- }
- }
- S = str_tb(0,S);
- if((Lim>0 || TP!=2) && CR!="") S=texlim(S,Lim|cut=CR);
- }
- if(TeX>0){
- if(Small==1) S=str_subst(S,"\\frac{","\\tfrac{");
- if(Dvi==1){
- dviout(strip(S,"(",")")|eq=(Pages==1)?6:0); S=1;
- }
- }
- return S;
-}
-
-def strip(S,S0,S1)
-{
- SS=strtoascii(S);
- if(length(SS)>1){
- if(SS[0]==40&&SS[length(SS)-1]==41&&str_pair(SS,1,S0,S1)==length(SS)-1)
- S=str_cut(SS,1,length(SS)-2);
- }
- return S;
-}
-
-def texlim(S,Lim)
-{
- /* extern TeXLim; */
- if(S==1 && Lim>10){
- TeXLim=Lim;
- mycat(["Set TeXLim =",Lim]);
- return 1;
- }
- if(type(Out=getopt(cut))!=7) Out="\\\\\n&";
- if(type(Del=getopt(del))!=7) Del=Out;
- if(Lim<30) Lim=TeXLim;
- S=ltov(strtoascii(S));
- for(L=[0],I=F=0;F==0; ){
- II=str_str(S,Del|top=I)+2;
- if(II<2){
- F++;II=/* str_len(S) */ length(S)-1;
- }
- for(J=JJ=I+1;;JJ=K+1){
- K=str_char(S,JJ,43); /* + */
- if((K1=str_char(S,JJ,45))>2 && K1<K){ /* - */
- if(S[K1-1]!=123 && S[K1-1]!=40) K=K1; /* {, ( */
- }
- if((K1=str_char(S,JJ,40))>0 && K1-JJ>6 && K1<K && S[K1-1]!=43 && S[K1-1]!=45){ /* ( */
- T=str_char(S,K1-6,"\\"); /* \Big*(, \big*( */
- if((T==K1-6 || T==K1-5)
- && (str_str(S,"big"|top=T+1,end=T+1)>0 || str_str(S,"Big"|top=T+1,end=T+1)>0))
- K=T;
- else if(K1>0 && K1<K) K=K1;
- }
- if(K<0 || K>II) break;
- if(K-J>Lim && texlen(str_cut(S,J,K-1))>=Lim){
- J=K+1; L=cons(JJ-1,L); SL=0;
- }
- }
- I=II;
- }
- SS=str_tb(0,0);
- L=cons(length(S),L);
- L=reverse(L);
- for(I=0; L!=[]; I=J,L=cdr(L)){
- str_tb((I==0)?"":Out,SS);
- J=car(L);
- str_tb(str_cut(S,I,J-1),SS);
- }
- return str_tb(0,SS);
-}
-
-def fmult(FN,M,L,N)
-{
- Opt=getopt();
- for(I = 0; I < length(M); I++)
- M = call(FN, cons(M,cons(L[I],N))|option_list=Opt);
- return M;
-}
-
-def radd(P,Q)
-{
- if(type(P) <= 3 || type(Q) <= 3){
- if(type(P) >= 5)
- return radd(Q,P);
- if(type(Q) >= 5){
- R = dupmat(Q);
- if(P == 0)
- return R;
- if(type(Q) == 6){
- S = size(Q);
- if(S[0] != S[1])
- return 0;
- for(I = 0; I < S[0]; I++)
- R[I][I] = radd(R[I][I], P);
- }else{
- for(I = length(R)-1; I >= 0; I--)
- R[I] = radd(R[I],P);
- }
- return R;
- }
- /* P=red(P);Q=red(Q); */
- if((P1=dn(P)) == (Q1=dn(Q))){
- if(P1==1) return P+Q;
- return red((nm(P)+nm(Q))/P1);
- }
- R=gcd(P1,Q1);S=tdiv(P1,R);
- return red((nm(P)*tdiv(Q1,R)+nm(Q)*S)/(S*Q1));
- }
- if(type(P) == 5){
- S = length(P);
- R = newvect(S);
- for(I = 0; I < S; I++)
- R[I] = radd(P[I],Q[I]);
- return R;
- }
- if(type(P) == 6){
- S = size(P);
- R = newmat(S[0],S[1]);
- for(I = 0; I < S[0]; I++){
- for(J = 0; J < S[1]; J++)
- R[I][J] = radd(P[I][J],Q[I][J]);
- }
- return R;
- }
- erno(0);
-}
-
-def getel(M,I)
-{
- if(type(M) >= 4 && type(M) <= 6 && type(I) <= 1)
- return M[I];
- if(type(M) == 6 && type(I) == 5)
- return M[I][J];
- return M;
-}
-
-def ptol(P,X)
-{
- F=(getopt(opt)==0)?0:1;
- if(type(P) <= 3)
- P = [P];
- if(type(X) == 4){
- for( ; X != []; X = cdr(X))
- P=ptol(P,car(X)|opt=F);
- return P;
- }
- P = reverse(P);
- for(R=[]; P != []; P = cdr(P)){
- Q = car(P);
- for(I = mydeg(Q,X); I >= 0; I--){
- S=mycoef(Q,I,X);
- if(F==1 || S!=0) R = cons(S,R);
- }
- }
- return R;
-}
-
-def rmul(P,Q)
-{
- if(type(P) <= 3 && type(Q) <= 3){
- P=red(P);Q=red(Q);
- P1=dn(P);P2=nm(P);Q1=dn(Q);Q2=nm(Q);
- if(P1==1 && Q1==1)
- return P*Q;
- if((R=gcd(P1,Q2)) != 1){
- P1=tdiv(P1,R);Q2=tdiv(Q2,R);
- }
- if((R=gcd(Q1,P2)) != 1){
- Q1=tdiv(Q1,R);P2=tdiv(P2,R);
- }
- return P2*Q2/(P1*Q1);
- }
-#ifdef USEMODULE
- return mmulbys(os_md.rmul,P,Q,[]);
-#else
- return mmulbys(rmul,P,Q,[]);
-#endif
-}
-
-def mtransbys(FN,F,LL)
-{
- Opt=getopt();
- if(type(F) == 4){
- F = ltov(F);
- S = length(F);
- R = newvect(S);
- for(I = 0; I < S; I++)
- R[I] = mtransbys(FN,F[I],LL|option_list=Opt);
- return vtol(R);
- }
- if(type(F) == 5){
- S = length(F);
- R = newvect(S);
- for(I = 0; I < S; I++)
- R[I] = mtransbys(FN,F[I],LL|option_list=Opt);
- return R;
- }
- if(type(F) == 6){
- S = size(F);
- R = newmat(S[0],S[1]);
- for(I = 0; I < S[0]; I++){
- for(J = 0; J < S[1]; J++)
- R[I][J] = mtransbys(FN,F[I][J],LL|option_list=Opt);
- }
- return R;
- }
- if(type(F) == 7) return F;
- return call(FN, cons(F,LL)|option_list=Opt);
-}
-
-def drawopt(S,T)
-{
- if(type(S)!=7) return -1;
- if(T==0||T==1){
- for(I=0,R=LCOPT;I<7;I++,R=cdr(R))
- if(str_str(S,car(R))>=0) return(T==0)?COLOPT[I]:car(R);
- return -1;
- }
- if(T==2){
- V0=V1=0;
- for(I=0,R=LPOPT;R!=[];I++,R=cdr(R)){
- if(str_str(S,car(R))>=0){
- if(I==0) V1++;
- else if(I==1) V1--;
- else if(I==2) V0--;
- else V0++;
- }
- }
- if(V0==0&&V1==0) return -1;
- return [V0,V1];
- }
- if(T==3){
- V=0;
- for(I=1,R=LFOPT;R!=[];R=cdr(R),I*=2){
- if(str_str(S,car(R))>=0) V+=I;
- }
- return (V==0)?-1:V;
- }
- return -1;
-}
-
-def execdraw(L,P)
-{
- if((Proc=getopt(proc))!=1) Proc=0;
- if(type(P)<2) P=[P];
- if(L!=[]&&type(L[0])!=4) L=[L];
- /* special command */
- if(P[0]<0){
- if(length(P)==1&&(P[0]==-1||P[0]==-2||P[0]==-3)){ /* Bounding Box */
- W=WS=N=LS=0;
- for(LL=L;LL!=[];LL=cdr(LL)){
- T=car(LL);
- if(P[0]!=-3 && T[0]==0){
- if(length(T)>3) S=" by "+rtostr(T[3])+" cm";
- else S="";
- if(P[0]==-1){
- mycat(["Windows : ",T[1][0],"< x <",T[1][1],", ",
- T[2][0],"< y <",T[2][1],S]);
- if(length(T)>4 && type(T[4])==4) mycat(["ext :",T[4]]);
- if(length(T)>5) mycat(["shift :",T[5]]);
- }
- return cdr(T);
- }
- if(type(T[0])==1){
- if(T[0]==1){
- for(TT=cdr(cdr(T));TT!=[];TT=cdr(TT)){
- D=car(TT);
- if(type(D[0][0])==4){
- for(DT=D;DT!=[];DT=cdr(DT)){
- if(N++==0) W=ptbbox(car(DT));
- else W=ptbbox(car(DT)|box=W);
- }
- }else{
- if(N++==0) W=ptbbox(D);
- else W=ptbbox(D|box=W);
- }
- }
- }else if(T[0]==2){
- V=T[2];
- if(type(V[0])>1||type(V[1])>1) continue; /* not supported */
- if((Sc=delopt(T[1],"scale"|inv=1))!=[]){
- Sc=car(Sc)[1];
- if(type(Sc)==1) V=[Sc*V[0],Sc*V[1]];
- else V=[Sc[0]*V[0],Sc[1]*V[1]];
- }
- if(LS==0) WS=ptbbox([V]);
- else WS=ptbbox([V]|box=WS);
- if(length(T)>4) S=T[4];
- else if(type(S=T[3])==4){
- S=S[0];
- if(type(S)==4) S=S[length(S)-1];
- S=rtostr(S);
- }
- if(str_len(S)>LS) LS=str_len(S);
- }else if(T[0]==3||T[0]==4){
- if(N++==0) W=ptbbox(cdr(cdr(T)));
- else W=ptbbox(cdr(cdr(T))|box=W);
- }
- }
- }
- if(W!=0&&WS!=0) W=ptbbox([W,WS]|box=1);
- return (P[0]==-3)?[W,LS,WS]:W;
- }else if(length(P)>1&&P[0]==-1){ /* set Bounding Box */
- P=cons(0,cdr(P));
- Ex=Sft=[0,0];
- if(type(X=getopt(ext))==4) Ex=X;
- if(type(X=getopt(shift))==4) Sft=X;
- if(Ex!=Sft||Ex!=[0,0]){
- if(Sft==[0,0]) Sft=[Ex];
- else Sft=[Ex,Sft];
- if(length(P)==3) Sft=cons(1,Sft);
- if(length(P)==3||length(P)==4) P=append(P,Sft);
- }
- return cons(P,delopt(L,0));
- }
- if(P[0]==-4){
- for(N=0,LT=L;LT!=[];LT=cdr(LT)){ /* count coord. */
- T=car(LT);
- if(T[0]==1){
- for(T=cdr(cdr(T));T!=[];T=cdr(T)){
- if(type((S=car(T))[0][0])==4) N+=length(S);
- else for(;S!=[];S=cdr(S)) if(type(car(S))==4) N++;
- }
- }else if(T[0]==2) N++;
- else if(T[0]==3||T[0]==4) N+=2;
- }
- return N;
- }
- if(P[0]==-5){ /* functions */
- for(N=0,R=[],LT=L;LT!=[];LT=cdr(LT)){
- T=car(LT);
- if(T[0]==0) N=ior(N,1);
- else if(type(T[0])==1){
- if(T[0]>0) N=ior(N,2^T[0]);
- }
- else if(Type(T[0])==2){
- if(findin(T[0],R)<0) R=cons(T[0],R);
- }
- }
- for(I=5;I>=0;I--) if(iand(N,2^I)) R=cons(I,R);
- return R;
- }
- return 0;
- }
-
- if(length(P)>1){
- if(type(P[1])==6||(type(P[1])<2&&P[1]>0)) M=P[1];
- else if(type(P[1])==4&&length(P[1])==2) M=diagm(2,P[1]);
- }
- if(length(P)>2&&type(P[2])==4){
- Org=[["shift",P[2]]];
- if(M==0) M=1;
- }else Org=[];
- if(P[0]==0||(type(P[0])==4&&P[0][0]==0)){ /* Risa/Asir */
- PP=car(P);PPP=0;
- if(type(PP)!=4) PP=[PP];
- if(length(PP)<3){
- if(length(PP)==1 || type(PP[1])==4){
- if(ID_PLOT<0) ID_PLOT=ox_launch_nox(0,"ox_plot");
- Id=ID_PLOT;
- if(length(PP)==1&&type(Canvas)==4&&length(Canvas)==2)
- PP=cons(PP[0],[Canvas]);
- if(length(PP)>1){
- PPP=PP[1][0];
- PPQ=(length(PP[1])==2)?PP[1][1]:PPP;
- open_canvas(Id,[PPP,PPQ]);
- }else open_canvas(Id);
- Ind=ox_pop_cmo(Id);
- }else{
- Ind=PP[1];
- if(getopt(cl)==1) clear_canvas(Id,Ind);
- }
- }else{
- Id=PP[1];Ind=PP[2];
- if(length(PP)>3 && type(PP[3])==1) PPP=PP[3];
- if(length(PP)>4 && type(PP[4])==1) PPQ=PP[4];
- if(getopt(cl)==1) clear_canvas(Id,Ind);
- }
- if(L==[]) return (PPP>0)? [0,Id,Ind,PPP,PPQ]:[0,Id,Ind];
- Ex0=Ex0;Sft=[0,0];
- if(length(P)>1&&P[1]==0&&length(P)<4){
- R=execdraw(L,-3);
- Ex0=Ex1=Ex2=10;
- if((U=R[1])>0){ /* string */
- if(U>20) U=16; /* adj 16,8,2,7,15 */
- if(R[0][0][0]>R[2][0][0]-(R[0][0][1]-R[0][0][0])/256) Ex0+=8*U; /* adj 256 */
- else Ex0+=2*U;
- if(R[0][0][1]<R[2][0][1]+(R[0][0][1]-R[0][0][0])/256) Ex1+=7*U;
- else Ex1+=2*U;
- if(R[0][1][1]<R[2][1][1]+(R[0][1][1]-R[0][1][0])/256) Ex2+=15;
- }
- R=[R[0][0],R[0][1],0,[Ex0,Ex1],[0,-Ex2]];
- if(length(P)>2 && P[2]==1)
- mycat0(["Box:",[R[0],R[1]], ", ext=",R[3],", shift=",R[4]],1);
- }else R=execdraw((length(P)>3)?P[3]:L,-2); /* Windows */
- XW=R[0];YW=R[1];
- if(length(R)>3){
- if(R[3]!=0 && R[3]!=[0,0]) Ex=R[3];
- if(length(R)>4) Sft=R[4];
- }
- if(type(X=getopt(ext))==4)
- Ex=(Ex0)?[X[0]+Ex[0],X[1]+Ex[1]]:X;
- if(type(M)<2){
- if(length(P)>1&&type(P[1])==1) M=P[1];
- else if((length(P)==1||P[1]==0||P[1]==1)&& PPP>0) M=PPP;
- if(M<2) M=400;
- if(Ex!=0 && type(Ex)==4){
- M-=Ex[0]+Ex[1];
- }
- M=(M/(XW[1]-XW[0]))*diagm(2,[1,-1]);
- }
- if(type(X=getopt(shift))==4) Sft=(Ex0)?[Sft[0]+X[0],Sft[1]+X[1]]:X;
- if(type(Sft)==4) Sft=[Sft[0],-Sft[1]];
- if(Ex!=0) Sft=[Sft[0]+Ex[0],Sft[1]];
- Org=[["shift",ptaffine(M,[-XW[0],-YW[1]]|shift=Sft)]];
- for(CT=0;CT<2;CT++){
- for(LT=L;LT!=[];LT=cdr(LT)){
- T=car(LT);
- if(!CT && T[0]!=2) continue;
- if(CT && T[0]==2) continue;
- if(T[0]==1){
- for(TT=cdr(cdr(T));TT!=[];TT=cdr(TT)){
- D=car(TT);
- if(type(D[0][0])==4){
- for(DT=D;DT!=[];DT=cdr(DT)){
- V=car(DT);
- if(M) V=ptaffine(M,V|option_list=Org);
- draw_bezier(Id,Ind,V|option_list=T[1]);
- }
- }else{
- if(M) D=ptaffine(M,D|option_list=Org);
- draw_bezier(Id,Ind,D|option_list=T[1]);
- }
- }
- }else if(T[0]==2){ /* put */
- if(length(T)<4) continue;
- V=T[2];
- if(type(VLB)==4&&V[0]=="_") V=VLB;
- else if(type(V[0])>1||type(V[1])>1) continue; /* not supported */
- if(length(T)>3&&type(T[3])==4&&length(T[3])>1&&T[3][1]==1) VLB=V;
- F++;MM=M;
- if((Sc=delopt(T[1],"scale"|inv=1))!=[]){
- if(!MM) MM=1;
- Sc=car(Sc)[1];
- if(type(Sc)==1) MM=MM*Sc;
- else if(type(Sc)==6) MM=MM*diagm(2,Sc);
- }
- if(MM) V=ptaffine(MM,V|option_list=Org);
- if(type(S=S0=T[3])==4) S=S0[0];
- if(length(T)>4) S=T[4]; /* subst. string */
- if(type(S0)==4&&type(S0[0])==4){
- if((Col=drawopt(S0[0][0],0))<0) Col=0; /* attrib. */
- if(type(S)!=7) S=rtostr(S0[0][1]);
- S=str_subst(S,[["$\\bullet$","*"],["$\\times$","x"],["$",""]],0);
- if(type(Pos=drawopt(S0[0][0],2))==4)
- V=[V[0]+4*str_len(S)*Pos[0],V[1]-10*Pos[1]]; /* adjustable */
- }else S=str_subst(rtostr(S),[["$\\bullet$","*"],["$\\times$","x"],["$",""]],0);
- V=[V[0]-str_len(S)*4,V[1]-8]; /* adjustable */
- draw_string(Id,Ind,V,S,Col);
- }else if(T[0]==3){ /* arrow */
- F++;
- T1=T[2];T2=T[3];
- if(M){
- T1=ptaffine(M,T1|option_list=Org);
- T2=ptaffine(M,T2|option_list=Org);
- }
- draw_bezier(Id,Ind,[T1,T2]|option_list=T[1]);
- }else if(T[0]==4){ /* line */
- F++;
- T1=T[2];T2=T[3];
- if(M){
- T1=ptaffine(M,T1|option_list=Org);
- T2=ptaffine(M,T2|option_list=Org);
- }
- V=delopt(T1=T[1],"opt"|inv=1);
- if(V!=[]&&str_str(V[1],".")>=0)
- T1=cons(["opt",cons("dotted,",V[1])],delopt(T1,"opt"));
- draw_bezier(Id,Ind,[T1,T2]|option_list=T1);
- }else if(T[0]==5){ /* TeX */
- mycat(rtostr(T[2]));
- if(F){
- S=str_tb(0,Out);
- Out=str_tb(0,0);
- F=0;
- if(S!=""){
- if(P[0]==2) dviout(xyproc(S)|keep=1);
- else LOut=cons(xyproc(S),LOut);
- }
- if(P[0]==2) dviout(T[2]|option_list=T[1]);
- else{
- LOut=cons(T[2],Out);
- }
- }
- }else if(Proc==1&&type(T[0])==2){
- if(length(T)<3) call(T[0],T[1]);
- else call(T[0],T[1]|option_list=T[2]);
- }
- }
- }
- S=(PPP>0)? [0,Id,Ind,PPP,PPQ]:[0,Id,Ind];
- if(Ex==0&&Sft!=[0,0]) Ex=[0,0];
- return (Ex!=0&&length(P)>2&&P[2]==-1)?
- [S,0,0,[0,R[0],R[1],0,Ex,[Sft[0]-Ex[0],-Sft[1]]]]:S;
- }
- if(P[0]==1||P[0]==2){ /* TeX */
- Out=str_tb(0,0);LOut=[];F=0;
- if(getopt(cl)==1) dviout0(0);
- for(;L!=[];L=cdr(L)){
- T=car(L);Opt=T[1];
- if(type(T[0])>=2) continue;
- if(T[0]==0){
- XW=T[1];YW=T[2];
- if(length(P)>1&&type(P[1])==1&&P[1]<0)
- M=-P[1]/(XW[0]-XW[1]);
- }else if(T[0]==1){
- F++;
- for(TT=cdr(cdr(T));TT!=[];TT=cdr(TT)){
- D=car(TT);
- if(type(D[0][0])==4){
- for(DT=D;DT!=[];DT=cdr(DT)){
- V=car(DT);
- if(M) V=ptaffine(M,V|option_list=Org);
- str_tb(xybezier(V|option_list=Opt),Out);
- }
- }else{
- if(M) D=ptaffine(M,D|option_list=Org);
- str_tb(xybezier(D|option_list=Opt),Out);
- }
- }
- }else if(T[0]==2){
- F++;V=T[2];
- Opt=delopt(Opt,"scale"|inv=1);
- MM=M;
- if(Opt!=[]){
- Opt=car(Opt)[1];
- if(type(Opt)==1) Opt=[Opt,Opt];
- if(Opt!=[1,1]){
- if(!MM) MM=1;
- MM=MM*diagm(2,[Opt[0],Opt[1]]);
- }
- }
- if(MM) V=ptaffine(MM,V|option_list=Org);
- if(length(T)>3) V=append(V,T[3]);
- str_tb(xyput(V),Out);
- }else if(T[0]==3){
- F++;
- T1=T[2];T2=T[3];
- if(M){
- T1=ptaffine(M,T1|option_list=Org);
- T2=ptaffine(M,T2|option_list=Org);
- }
- str_tb(xyarrow(T1,T2|option_list=Opt),Out);
- }else if(T[0]==4){
- F++;
- T1=T[2];T2=T[3];
- if(M){
- T1=ptaffine(M,T1|option_list=Org);
- T2=ptaffine(M,T2|option_list=Org);
- }
- str_tb(xyline(T1,T2|option_list=Opt),Out);
- }else if(T[0]==5){
- if(F){
- S=str_tb(0,Out);
- Out=str_tb(0,0);
- F=0;
- if(S!=""){
- if(P[0]==2) dviout(xyproc(S)|keep=1);
- else LOut=cons(xyproc(S),LOut);
- }
- if(P[0]==2) dviout(T[2]|option_list=T[1]);
- else LOut=cons(T[2],Out);
- }
- }else if(T[0]==-2)
- str_tb(["%",T[1],"\n"],Out);
- else if(Proc==1&&type(T[0])==2){
- if(length(T)<3) call(T[0],T[1]);
- else call(T[0],T[1]|option_list=T[2]);
- }
- }
- S=str_tb(0,Out);
- if(P[0]==1){
- if(F) LOut=cons(xyproc(S),LOut);
- Out=str_tb(0,0);
- for(L=reverse(LOut);L!=[];L=cdr(L))
- str_tb(car(L),Out);
- return str_tb(0,Out);
- }
- if(F) dviout(xyproc(S));
- else dviout(" ");
- }
-}
-
-def execproc(L)
-{
- if(type(N=getopt(var))!=1&&N!=0) N=2;
- for(R=[];L!=[];L=cdr(L)){
- P=car(L);
- if(type(P[0])==2&&vtype(P[0])==3){
- if((VS=vars(cdr(P)))!=[]){
- for(I=0;I<N;I++){
- V=makev(["v",I+1]);
- if(findin(V,VS)>=0) P=mysubst(P,[V,R[I]]);
- }
- }
- if(length(P)<3) R=cons(call(P[0],P[1]),R);
- else R=cons(call(P[0],P[1]|option_list=P[2]),R);
- }
- }
- return (getopt(all)==1)?R:car(R);
-}
-
-def myswap(P,L)
-{
- X=makenewv(P);
- for(L=reverse(L);length(L)>1;L=cdr(L))
- P=subst(P,L[0],X,L[1],L[0],X,L[1]);
- return P;
-}
-
-def mysubst(P,L)
-{
- if(P==0) return 0;
- Inv=getopt(inv);
- if(type(L[0]) == 4){
- while((L0 = car(L))!=[]){
- P = mysubst(P,(Inv==1)?[L0[1],L0[0]]:L0);
- L = cdr(L);
- }
- return P;
- }
- if(Inv==1) L=[L[1],L[0]];
- if(type(P) > 3){
- if(type(P)==7) return P;
- if(type(P)>7)
- return subst(P,L[0],L[1]);
-#ifdef USEMODULE
- return mtransbys(os_md.mysubst,P,[L]);
-#else
- return mtransbys(mysubst,P,[L]);
-#endif
- }
- P = red(P);
- if(type(P) == 3){
- A=mysubst(nm(P),L);B=mysubst(dn(P),L);
- return red(nm(A)/nm(B))*red(dn(B)/dn(A));
- }
- L1=(type(L[1])==3)?red(L[1]):L[1];X=L[0];
- if(ptype(L1,X)==3){
- LN=nm(L1);LD=dn(L1);
- Deg=mydeg(P,X);
- if(Deg <= 0) return P;
- V = newvect(Deg+1);
- for(V[I=Deg]=1;I >= 1;I--)
- V[I-1]=V[I]*LD;
- for(R = 0, I = Deg; I >= 0; I--)
- R = R*LN + mycoef(P,I,X)*V[I];
- return red(R/V[0]);
- }
- return subst(P,X,L1);
-}
-
-def mmulbys(FN,P,F,L)
-{
- Opt=getopt();
- if(type(F) <= 3){
- if(type(P) <= 3)
- return call(FN, cons(P,cons(F,L))|option_list=Opt);
- if(type(P) == 5){
- S = length(P);
- R = newvect(S);
- for(I = 0; I < S; I++)
- R[I] = call(FN, cons(P[I],cons(F,L))|option_list=Opt);
- return R;
- }else if(type(P) == 6){
- S = size(P);
- R = newmat(S[0],S[1]);
- for(I = 0; I < S[0]; I++){
- for(J = 0; J < S[1]; J++)
- R[I][J] = call(FN, cons(P[I][J],cons(F,L))|option_list=Opt);
- }
- return R;
- }
- }
- if(type(F) == 5){
- S = length(F);
- if(type(P) <= 3){
- R = newvect(S);
- for(I = 0; I < S; I++)
- R[I] = call(FN, cons(P,cons(F[I],L))|option_list=Opt);
- return R;
- }
- if(type(P) == 5){
- for(J=R=0; J<S; J++)
- R = radd(R, call(FN, cons(P[J],cons(F[J],L)))|option_list=Opt);
- return R;
- }
- T = size(P);
- R = newvect(T[0]);
- for(I = 0; I < T[0]; I++){
- for(J = 0; J < S; J++)
- R[I] = radd(R[I], call(FN, cons(P[I][J],cons(F[J],L))|option_list=Opt));
- }
- return R;
- }
- if(type(F) == 6){
- S = size(F);
- if(type(P) <= 3){
- R = newmat(S[0],S[1]);
- for(I = 0; I < S[0]; I++){
- for(J = 0; J < S[1]; J++)
- R[I][J] = call(FN, cons(P,cons(F[I][J],L))|option_list=Opt);
- }
- return R;
- }
- if(type(P) == 5){
- R = newvect(S[1]);
- for(J = 0; J < S[1]; J++){
- for(K = U = 0; K < S[0]; K++)
- U = radd(U, call(FN, cons(P[K],cons(F[K][J],L))|option_list=Opt));
- R[J] = U;
- }
- return R;
- }
- T = size(P);
- R = newmat(T[0],S[1]);
- for(I = 0; I < T[0]; I++){
- for(J = 0; J < S[1]; J++){
- for(K = U = 0; K < S[0]; K++)
- U = radd(U, call(FN, cons(P[I][K],cons(F[K][J],L)|option_list=Opt)));
- R[I][J] = U;
- }
- }
- return R;
- }
- erno(0);
- return 0;
-}
-
-def appldo(P,F,L)
-{
- if(type(F) <= 3){
- if(type(L) == 4 && type(L[0]) == 4)
- return applpdo(P,F,L);
- L = vweyl(L);
- X = L[0]; DX = L[1];
- J = mydeg(P,DX);
- for(I = R = 0; I <= J; I++){
- if(I > 0)
- F = mydiff(F,X);
- R = radd(R,mycoef(P,I,DX)*F);
- }
- return R;
- }
-#ifdef USEMODULE
- return mmulbys(os_md.appldo,P,F,[L]);
-#else
- return mmulbys(appldo,P,F,[L]);
-#endif
-}
-
-def appledo(P,F,L)
-{
- if(type(F) <= 3){
- L = vweyl(L);
- X = L[0]; DX = L[1];
- J = mydeg(P,DX);
- for(I = R = 0; I <= J; I++){
- if(I > 0)
- F = myediff(F,X);
- R = radd(R,mycoef(P,I,DX)*F);
- }
- return R;
- }
-#ifdef USEMODULE
- mmulbys(os_md.appledo,P,F,[L]);
-#else
- mmulbys(appledo,P,F,[L]);
-#endif
-}
-
-def muldo(P,Q,L)
-{
- if(type(Lim=getopt(lim))!=1) Lim=100;
- if(type(Q) <= 3){
- if(type(L) == 4 && type(L[0]) == 4)
- return mulpdo(P,Q,L|lim=Lim); /* several variables */
- R = rmul(P,Q);
- L = vweyl(L);
- X = L[0]; DX = L[1];
- if(X != 0){
- for(I = F = 1; ; I++){
- P = mydiff(P,DX);
- if(I>Lim){
- mycat(["Over", Lim,"derivations!"]);
- break;
- }
- if(P == 0)
- break;
- Q = mydiff(Q,X);
- if(Q == 0)
- break;
- F *= I;
- R = radd(R,P*Q/F);
- }
- }
- return R;
- }
-#ifdef USEMODULE
- return mmulbys(os_md.muldo,P,Q,[L]);
-#else
- return mmulbys(muldo,P,Q,[L]);
-#endif
-}
-
-def jacobian(F,X)
-{
- F=ltov(F);X=ltov(X);
- N=length(F);
- M=newmat(N,N);
- for(I=0;I<N;I++)
- for(J=0;J<N;J++) M[I][J]=red(diff(F[I],X[J]));
- if(getopt(mat)==1) return M;
- return mydet(M);
-}
-
-def hessian(F,X)
-{
- X=ltov(X);
- N=length(X);
- M=newmat(N,N);
- for(I=0;I<N;I++){
- G=red(diff(F,X[I]));
- for(J=0;J<N;J++) M[I][J]=red(diff(G,X[J]));
- }
- if(getopt(mat)==1) return M;
- return mydet(M);
-}
-
-def wronskian(F,X)
-{
- N=length(F);
- M=newmat(N,N);
- for(I=0;F!=[];F=cdr(F),I++){
- M[I][0]=car(F);
- for(J=1;J<N;J++) M[I][J]=red(diff(M[I][J-1],X));
- }
- if(getopt(mat)==1) return M;
- return mydet(M);
-}
-
-def adj(P,L)
-{
- if(type(P) == 4)
-#ifdef USEMODULE
- return map(os_md.adj,mtranspose(P),L);
-#else
- return map(adj,mtranspose(P),L);
-#endif
- if(type(L) == 4 && type(L[0]) == 4)
-#ifdef USEMODULE
- return fmult(os_md.adj,P,L,[]);
-#else
- return fmult(adj,P,L,[]);
-#endif
- L = vweyl(L);
- X = L[0]; DX = L[1];
- P = R = subst(P, DX, -DX);
- for(I = 1; (R = mydiff(mydiff(R, X), DX)/I) != 0 && I < 100; I++)
- P = radd(P,R);
- return P;
-}
-
-def laplace1(P,L)
-{
- if(type(L) == 4 && type(L[0]) == 4)
-#ifdef USEMODULE
- return fmult(os_md.laplace,P,L,[]);
-#else
- return fmult(laplace,P,L,[]);
-#endif
- L = vweyl(L);
- X = L[0]; DX = L[1];
- P = adj(P, L);
- return subst(P,X,o_1,DX,X,o_1,DX);
-}
-
-def laplace(P,L)
-{
- if(type(L) == 4 && type(L[0]) == 4)
-#ifdef USEMODULE
- return fmult(os_md.laplace1,P,L,[]);
-#else
- return fmult(laplace1,P,L,[]);
-#endif
- L = vweyl(L);
- X = L[0]; DX = L[1];
- P = adj(P, L);
- return subst(P,X,o_1,DX,-X,o_1,-DX);
-}
-
-def mce(P,L,V,R)
-{
- L = vweyl(L);
- X = L[0]; DX = L[1];
- P = sftexp(laplace1(P,L),L,V,R);
- return laplace(P,L);
-}
-
-def mc(P,L,R)
-{
- return mce(P,L,0,R);
-}
-
-def rede(P,L)
-{
- Q = ltov(fctr(nm(red(P))));
- P = 1;
- if(type(L) < 4)
- L = [L];
- if(type(L[0]) < 4)
- L = [L];
- for( ; L != []; L = cdr(L)){
- DX = vweyl(car(L))[1];
- for(I = 1; I < length(Q); I++){
- if(mydeg(Q[I][0],DX) > 0){
- P *= (Q[I][0])^(Q[I][1]);
- Q[I]=[1,0];
- }
- }
- }
- return P;
-}
-
-def ad(P,L,R)
-{
- L = vweyl(L);
- DX = L[1];
- K = mydeg(P,DX);
- S = mycoef(P,0,DX);
- Q = 1;
- for(I=1; I <= K;I++){
- Q = muldo(Q,DX-R,L);
- S = radd(S,mycoef(P,I,DX)*Q);
- }
- return S;
-}
-
-def add(P,L,R)
-{
- return rede(ad(P,L,R),L);
-}
-
-
-def vadd(P,L,R)
-{
- L = vweyl(L);
- if(type(R) != 4)
- return 0;
- N = length(R);
- DN = 1; Ad = PW = 0;
- for( ; R != []; R = cdr(R), PW++){
- DN *= (T=1-car(R)[0]*L[0]);
- Ad = Ad*T-car(R)[1]*x^PW;
- }
- Ad /= DN;
- return add(P,L,Ad);
-}
-
-def addl(P,L,R)
-{
- return laplace1(add(laplace(P,L),L,R),L);
-}
-
-def cotr(P,L,R)
-{
- L = vweyl(L);
- X = L[0]; DX = L[1];
- T = 1/mydiff(P,DX);
- K = mydeg(P,DX);
- S = mysubst(mycoef(P,0,DX), [X, R]);
- Q = 1;
- for(I = 1; I <= K; I++){
- Q = muldo(Q, K*DX, L);
- S = radd(S,mysubst(mycoef(P,I,DX), [X, R])*Q);
- }
-}
-
-def rcotr(P,L,R)
-{
- return rede(cotr(P,L,R), L);
-}
-
-def muledo(P,Q,L)
-{
- if(type(Q)>3)
-#ifdef USEMODULE
- return mmulbys(os_md.muledo,P,Q,[L]);
-#else
- return mmulbys(muledo,P,Q,[L]);
-#endif
- R = P*Q;
- L = vweyl(L);
- X = L[0]; DX = L[1];
- for(I = F = 1; I < 100; I++){
- P = mydiff(P,DX);
- if(P == 0)
- break;
- Q = myediff(Q,X);
- if(Q == 0)
- break;
- F = rmul(F,I);
- R = radd(R,P*Q/F);
- }
- return R;
-}
-
-
-#if 1
-def mulpdo(P,Q,L)
-{
- if(type(Q)>3)
-#ifdef USEMODULE
- return mmulbys(os_md.mulpdo,P,Q,[L]);
-#else
- return mmulbys(mulpdo,P,Q,[L]);
-#endif
- if(type(Lim=getopt(lim))!=1) Lim=100;
- M = vweyl(car(L)); X= M[0]; DX = M[1];
- L = cdr(L);
- R = 0;
- for(I = 0; Q != 0 && I <= Lim; I++){
- if(I>Lim){
- mycat(["Over", Lim,"derivations!"]);
- break;
- }
- if(I > 0)
- P /= I;
- if(length(L)==0)
- R = radd(R,P*Q);
- else
- R = radd(R,mulpdo(P,Q,L));
- if(X==0) break;
- P = mydiff(P,DX);
- if(P == 0)
- break;
- Q = mydiff(Q,X);
- }
- if(I>Lim) mycat(["Over", Lim,"derivations!"]);
- return R;
-}
-
-#else
-def mulpdo(P,Q,L);
-{
- if(type(Q)>3)
-#ifdef USEMODULE
- return mmulbys(os_md.mulpdo,P,Q,[L]);
-#else
- return mmulbys(mulpdo,P,Q,[L]);
-#endif
- if(type(Lim=getopt(lim))!=1) Lim=100;
- N = length(L);
- VO = newvect(2*N);
- VN = newvect(2*N);
- for(I = J = 0; I < N; J += 2, I++){
- M = vweyl(L[I]);
- P = subst(P, VO[J]=M[0], VN[J]=strtov("o_"+rtostr(V[J])),
- VO[J+1]=M[1], VN[J+1] = strtov("o_"+rtostr(V[J+1])));
- }
- for(PQ = P*Q, I = 0; I < 2*N; I += 2){
- for(R = PQ, J = 1; J < Lim; J++){
- R = mydiff(R, VN[I+1])/J;
- if(R == 0)
- break;
- R = mydiff(R, VO[I]);
- if(R == 0)
- break;
- PQ = radd(PQ,R);
- }
- if(I==Lim) mycat(["Over", Lim,"derivations!"]);
- PQ = red(subst(PQ,VN[I],VO[I],VN[I+1],VO[I+1]));
- }
-}
-#endif
-
-def transpdosub(P,LL,K)
-{
- Len = length(K)-1;
- if(Len < 0 || P == 0)
- return P;
- KK=K[Len];
- if(type(KK)==4){
- KK0=KK[0]; KK1=KK[1];
- }else{
- L = vweyl(LL[Len]);
- KK0=L[1]; KK1=K[Len];
- }
- Deg = mydeg(P,KK0);
- K1 = reverse(cdr(reverse(K)));
- R = transpdosub(mycoef(P,0,KK0),LL,K1);
- for(I = M = 1; I <= Deg ; I++){
- M = mulpdo(M,KK1,LL);
- S = mycoef(P,I,KK0);
- if(Len > 0)
- S = transpdosub(S,LL,K1);
- R = radd(R,mulpdo(S,M,LL));
- }
- return R;
-}
-
-def transpdo(P,LL,K)
-{
- if(type(K[0]) < 4)
- K = [K];
- Len = length(K)-1;
- K1=K2=[];
- if(type(LL)!=4) LL=[LL];
- if(type(LL[0])!=4) LL=[LL];
- if(getopt(ex)==1){
- for(LT=LL, KT=K; KT!=[]; LT=cdr(LT), KT=cdr(KT)){
- L = vweyl(LL[J]);
- K1=cons([L[0],car(KT)[0]],K1);
- K2=cons([L[1],car(KT)[1]],K2);
- }
- K2=append(K1,K2);
- }else{
- for(J = length(K)-1; J >= 0; J--){
- L = vweyl(LL[J]);
- if(L[0] != K[J][0])
- K1 = cons([L[0],K[J][0]],K1);
- K2 = cons(K[J][1],K2);
- }
- P = mulsubst(P, K1);
- }
- return transpdosub(P,LL,K2);
-}
-
-def translpdo(P,LL,M)
-{
- S=length(LL);
- L0=newvect(S);L1=newvect(S);
- K=newvect(S);
- for(J=0;J<S;J++){
- L = vweyl(LL[J]);
- L0[J]=L[0];
- L1[J]=L[1];
- }
- K=rmul(M,L0);
- for(T=[],J=0;J<S;J++)
- T=cons([L0[J],K[J]],T);
- P=mulsubst(P,T);
- K=rmul(myinv(M),L1);
- for(T=[],J=0;J<S;J++)
- T=cons([L1[J],K[J]],T);
- return mulsubst(P,T);
-}
-
-/*
- return [R, M, S] : R = M*P - S*Q
- deg(R,X) < deg(Q,X)
-*/
-def rpdiv(P,Q,X)
-{
- if(P == 0)
- return [0,1,0];
- DQ = mydeg(Q,X);
- CO = mycoef(Q,DQ,X);
- S = 0;
- while((DP = mydeg(P,X)) >= DQ){
- R = mycoef(P,DP,X)/CO;
- S = radd(S,R*X^(DP-DQ));
- P = radd(P, -R*Q*X^(DP-DQ));
- }
- Lcm = lcm(dn(S),dn(P));
- Gcd = gcd(nm(S),nm(P));
- return [red(P*Lcm/Gcd), red(Lcm/Gcd),red(S*Lcm/Gcd)];
-}
-
-def texbegin(T,S)
-{
- if(type(Opt=getopt(opt))==7) Opt="["+Opt+"]\n";
- else Opt="\n";
- return "\\begin{"+T+"}"+Opt+S+"%\n\\end{"+T+"}\n";
-}
-
-def mygcd(P,Q,L)
-{
- if((Dvi=getopt(dviout))==3 || Dvi==-3){ /* dviout=3 */
- if((Rev=getopt(rev))!=1) Rev=0;
- R=mygcd(P,Q,L|rev=Rev);
- if(type(L)<2) Var=0;
- else if(type(L)==2){
- Val=L;L=[0,L];
- }else if(type(L)==4){
- L=vweyl(L);
- Var=[[L[1],"\\partial"]];
- }
- S=mat([P],[Q]);T=mat([R[0]],[0]);
- M=mat([R[1],R[2]],[R[3],R[4]]);
- if(type(Val)==4)
- N=mdivisor(M,L|trans=1)[1];
- else N=myinv(M);
- Tb=str_tb(mtotex(S|var=Var),0);
- str_tb("&="+mtotex(N|var=Var)+mtotex(T|var=Var)+",\\\\\n",Tb);
- str_tb(mtotex(T|var=Var),Tb);
- str_tb("&="+mtotex(M|var=Var)+mtotex(S|var=Var)+".",Tb);
- Out=str_tb(0,Tb);
- if(Dvi<0) return Out;
- dviout(Out|eq="align*");
- return 1;
- }
- if((type(Dvi)==1||Dvi==0) && getopt(rev)!=1) V=[[P,Q]];
- else V=0;
- if(L==0){ /* integer case */
- if(type(P) > 1 || type(Q) > 1 || Q==0 /* P <= 0 || Q <= 0 */
- || dn(P) > 1 || dn(Q) > 1)
- return 0;
- CPP = CQQ = 1; CQP = CPQ = 0;
- P1 = P; Q1 = Q;
- /* P1 = CPP*P + CPQ*Q
- Q1 = CQP*P + CQQ*Q */
- while(Q1 != 0){
- Div1 = idiv(P1,Q1); Div2 = irem(P1,Q1);
- if(type(V)==4) V=cons([Div1,Div2],V);
- P1 = Q1 ; Q1 = Div2;
- TP = CQP; TQ = CQQ;
- CQP = CPP-Div1*CQP;
- CQQ = CPQ-Div1*CQQ;
- CPP = TP; CPQ = TQ;
- }
- if(V!=0){
- V=reverse(V);
- if((DVI=abs(Dvi))==0) return V;
- PT=P;QT=Q;
- if(DVI==1 || DVI==2){
- Tb=str_tb(0,0);
- for(C=0,V=cdr(V);V!=[];V=cdr(V)){
- T=car(V);
- if(C++) str_tb(texcr(11),Tb);
- if(DVI==1){
- Qs=rtostr(QT);
- if(QT<0) Qs="("+Qs+")";
- if(T[1]>0) Qs=Qs+"+";
- if(T[1]!=0) Qs=Qs+rtostr(T[1]);
- str_tb(rtostr(PT)+"&="
- +rtostr(T[0])+"\\times"+Qs,Tb);
- }else{
- N=mat([T[0],1],[1,0]);
- if(C==1){
- str_tb(S0=mtotex(mat([PT],[QT])),Tb);
- M=N;
- }
- str_tb("&=",Tb);
- if(C>1) str_tb(mtotex(M),Tb);
- str_tb(mtotex(N),Tb);
- str_tb(S=mtotex(mat([QT],[T[1]])),Tb);
- if(C>1){
- str_tb("=",Tb);
- str_tb(mtotex(M=M*N),Tb);
- str_tb(S,Tb);
- }
- }
- PT=QT;QT=T[1];
- }
- if(DVI==2){
- str_tb(texcr(43)+S+"&=",Tb);
- str_tb(mtotex(myinv(M)),Tb);
- str_tb(S0,Tb);
- }
- Out=str_tb(0,Tb);
- if(Dvi>0){
- dviout(Out|eq="align*");
- return 1;
- }
- return Out;
- }
- }
- if(P1<0) return [-P1,-CPP,-CPQ,CQP,CQQ];
- return [P1, CPP, CPQ, CQP, CQQ];
- }
- if(type(L) == 2) /* polynomical case */
- L = [0,L];
- if(getopt(rev)==1 && L[0]!=0){
- R=mygcd(adj(P,L),adj(Q,L),L);
- return [adj(R[0],L),adj(R[1],L),adj(R[2],L),adj(R[3],L),adj(R[4],L)];
- }
- if(type(P) == 3)
- P = red(P);
- if(type(Q) == 3)
- Q = red(Q);
- CP=newvect(2,[1/dn(P),0]); CQ=newvect(2,[0,1/dn(Q)]);
- P=PT=nm(P); Q =QT=nm(Q);
- L = vweyl(L);
- while(Q != 0){
- R = divdo(P,Q,L);
- if(type(V)==4) V=cons(R,V);
-/* R[1] = R[2]*P - R[0]*Q
- = R[2]*(CP[0]*P0+CP[1]*Q0) - R[0]*(CQ[0]*P0+CQ[1]*Q0) */
-/*
- P(n) |0 1 | P(n-1)
- = | |
- R[1] |R[2] -R[0]| P(n)
- P(n+1) = R[1], P(n) = P, P(n-1) = Q
-*/
- P = Q;
- Q = R[1];
- {
- CT = dupmat(CQ);
- CQ = [R[2]*CP[0]-muldo(R[0],CQ[0],L),
- R[2]*CP[1]-muldo(R[0],CQ[1],L)];
- CP = CT;
- }
- }
- if(V!=0){
- V=reverse(V);
- if((DVI=abs(Dvi))==0) return V;
- if(type(L[0])<1) Var=L[1];
- else Var=[L[1],"\\partial"];
- if(DVI==1 || DVI==2){
- Tb=str_tb(0,0);
- PT=car(V)[0];QT=car(V)[1];
- for(C=0,V=cdr(V);V!=[];V=cdr(V)){
- T=car(V);
- if(C++) str_tb(texcr(11),Tb);
- if(DVI==1){
- if(T[2]!=1){
- str_tb(monototex(T[2]),Tb);
- str_tb("(",Tb);
- str_tb(fctrtos(PT|var=Var,TeX=2),Tb);
- str_tb(")&=",Tb);
- }else{
- str_tb(fctrtos(PT|var=Var,TeX=2),Tb);
- str_tb("&=",Tb);
- }
- str_tb("(",Tb);
- str_tb(fctrtos(T[0]|var=Var,TeX=2),Tb);
- str_tb(")(",Tb);
- str_tb(fctrtos(QT|var=Var,TeX=2),Tb);
- if(T[1]!=0){
- str_tb(")+(",Tb);
- str_tb(fctrtos(T[1]|var=Var,TeX=2),Tb);
- }
- str_tb(")",Tb);
- }else{
- N=mat([red(T[0]/T[2]),1],[1,0]);
- if(C==1){
- str_tb(S0=mtotex(mat([PT],[QT])|var=Var),Tb);
- M=N;
- }
- str_tb("&=",Tb);
- if(C>1) str_tb(mtotex(M),Tb);
- str_tb(mtotex(N|var=Var),Tb);
- str_tb(S=mtotex(mat([QT],[T[1]])|var=Var),Tb);
- if(C>1){
- str_tb("=",Tb);
- str_tb(mtotex(M=muldo(M,N,L)|var=Var),Tb);
- str_tb(S,Tb);
- }
- }
- PT=QT;QT=T[1];
- }
- if(DVI==2){
- FT=fctr(PT);
- for(R=1;FT!=[];FT=cdr(FT)){
- if(mydeg(car(FT)[0],L[1])<1)
- for(J=car(FT)[1];J>0;J--) R*=car(FT)[0];
- }
- if(R!=1){
- str_tb(texcr(79),Tb);
- M=muldo(M,mat([R,0],[0,1]),L);
- str_tb(mtotex(M|var=Var),Tb);
- str_tb(S=mtotex(mat([PT/R],[QT])|var=Var),Tb);
- }
- str_tb(texcr(43)+S+"&=",Tb);
- if(type(Var)==4){
- N=mdivisor(M,L|trans=1);
- N=N[1];
- }else
- N=myinv(M);
- str_tb(mtotex(N|var=Var),Tb);
- str_tb(S0,Tb);
- }
- Out=str_tb(0,Tb);
- if(Dvi>0){
- dviout(Out|eq="align*");
- return 1;
- }
- return Out;
- }
- }
- Q = rede(P,L);
- R = red(P/Q);
- return [Q,red(CP[0]/R),red(CP[1]/R),red(CQ[0]/R),red(CQ[1]/R)];
-}
-
-def mylcm(P,Q,L)
-{
- Rev=(getopt(rev)==1)?1:0;
- if(Rev==1){
- P=adj(P); Q=adj(Q);
- }
- R = mygcd(P,Q,L);
- S=(type(L)<=2)?R[3]*P:muldo(R[3],P,L);
- S = nm(S);
- if(type(S) <= 1 && type(L) <= 1){
- if(S<0) S = -S;
- return S;
- }
- if(type(L) == 2)
- return easierpol(S,L);
- S=rede(easierpol(S,L[1]),L);
- return (Rev==1)?adj(S):S;
-}
-
-def sftpexp(P,LL,F,Q)
-{
- if(type(LL[0]) < 4)
- LL = [LL];
- for(L0=L1=[],LT=LL;LT!=[];LT=cdr(LT)){
- W=vweyl(car(LT));
- L0=cons(W,L0);
- D=mydiff(F,W[0]);
- if(D!=0) L1=cons(W[1]+Q*D/F,L1);
- else L1=cons(W[1],L1);
- }
- return rede(transpdosub(P,L0,L1),L0);
-}
-
-def applpdo(P,F,LL)
-{
- if(type(F)>3)
-#ifdef USEMODULE
- return mmulbys(os_md.applpdo,P,F,[LL]);
-#else
- return mmulbys(applpdo,P,F,[LL]);
-#endif
- L = vweyl(LL[0]);
- LL = cdr(LL);
- Deg = deg(P,L[1]);
- S = F;
- for(I = R = 0; I <= Deg ; I++){
- if(I > 0)
- S = mydiff(S,L[0]);
- if(LL == [])
- R = radd(R,mycoef(P,I,L[1])*S);
- else
- R = radd(R,applpdo(mycoef(P,I,L[1]), S, LL));
- }
- return R;
-}
-
-def tranlpdo(P,L,M)
-{
- N = length(L);
- R = size(M);
- if(R[0] != N || R[1] != N){
- print("Strange size");
- return;
- }
- InvM = M;
- if(InvM[1] == 0){
- print("Not invertible");
- return;
- }
- XL = newvector(N);
- DL = newvector(N);
- for(I = 0; I < 0; I++){
- R = vweyl(L[I]);
- XL[I] = R[0];
- DL[I] = R[1];
- }
- for(I = 0; I < N; I++){
- for(J = XX = D0 = 0; J < N; J++){
- XX = radd(XX,M[I][J]*XL[J]);
- DD = radd(DD, red(InvM[0][I][J]/InvM[1])*DL[J]);
- P = mysubst(P,[[XL[I],XX],[DL[I],DD]]);
- }
- }
- return P;
-}
-
-def divdo(P,Q,L)
-{
- if(L==0){
- R=P-idiv(P,Q)*Q;
- if(R<0){
- if(Q>0) R+=Q;
- else R-=Q;
- }
- return [(P-R)/Q,R,1];
- }
- L = vweyl(L);
- if(getopt(rev)==1){
- R=divdo(adj(P,L),adj(Q,L),L);
- return [adj(R[0],L),adj(R[1],L),R[2]];
- }
- X = L[0]; DX = L[1];
- S = 0;
- M = 1;
- I = mydeg(Q,DX);
- CQ = mycoef(Q,I,DX);
- while((J=mydeg(P,DX)) >= I){
- C = mycoef(P,J,DX);
- SR = red(C/CQ);
- if(dn(SR) != 1){
- M *= dn(SR);
- P *= dn(SR);
- S *= dn(SR);
- SR = nm(SR);
- }
- P -= muldo(SR*(DX)^(J-I),Q,L);
- S += SR*(DX)^(J-I);
- }
- return [S,P,M];
-}
-
-def qdo(P,Q,L)
-{
- L = vweyl(L); DX = L[1]; OD = deg(P,DX);
- V = newvect(OD+1);
- for(I = 0; I <= OD; I++){
- if(I)
- Q = muldo(DX,Q,L);
- S = divdo(Q,P,L);
- V[I] = S[1]*DX-S[2]*zz^I;
- }
- for(K = [], I = OD; I >= 0; I--)
- K = cons(DX^(I+1), K);
- R = lsol(V,K);
- S = length(R);
- for(I = P1 = 0; I < S; I++){
- if(type(R[I]) < 4 && mydeg(R[I],DX) == 0 && R[I] != 0
- && (mydeg(R[I],zz) <= mydeg(P,DX)))
- P1 = R[I];
- else if(type(R[I]) == 4 && R[I][0] == DX)
- P2 = R[I][1];
- }
- T=fctr(P1);
- for(I=0, S=length(T), P1=1; I<S; I++){
- if(mydeg(T[I][0],zz) > 0)
- P1 *= T[I][0]^(T[I][1]);
- }
- return subst([P1,P2],zz,DX);
-}
-
-def sqrtdo(P,L)
-{
- L = vweyl(L);
- P = toeul(P,L,0);
- V = -1;
- for(R = 0, Ord = mydeg(P,L[1]); Ord >= 0; Ord--){
- Q = coef(P,Ord,L[1]);
- M = mydeg(Q,L[0]);
- N = mymindeg(Q,L[0]);
- if(V < 0)
- V = M+N;
- else if(V != M+N){
- print("Cannot be transformed!");
- return;
- }
- Q = tohomog(red(Q/L[0]^N), [L[0]], z_z);
- if(irem(Ord,2))
- B = x-z_z;
- else
- B = x+z_z;
- Q = substblock(Q,x,B,z_zz);
- if(mydeg(Q,x) > 0){
- print("Cannot be transformed!");
- return;
- }
- R += mysubst(Q,[z_zz,x])*L[1]^Ord;
- }
- return fromeul(R,L,0);
-}
-
-def ghg(A,B)
-{
- R = dx;
- while(length(B)>0){
- R = muldo(x*dx+car(B),R,[x,dx]);
- B = cdr(B);
- }
- T = 1;
- while(length(A)>0){
- T = muldo(x*dx+car(A),T,[x,dx]);
- A = cdr(A);
- }
- return R-T;
-}
-
-def ev4s(A,B,C,S,T)
-{
- R4 = x^2*(x-1)^2;
- R3 = x*(x-1)*((2*A-2*B-8)*x-2*A+5);
- R2 = (-3/2*(A^2+B^2)+3*A*B+9*A-9*B-29/2+1/4*(S^2+T^2))*x^2
- +(5*A^2/2-13*A-3*A*B+B^2/2+7*B-C^2+C+35/2 - 1/4*(S^2+T^2))*x
- - (2*A+2*C-5)*(2*A-2*C-3)/4;
- R1 = 1/4*(A-B-2)*(2*A^2-4*A*B-8*A+2*B^2+8*B+10-S^2-T^2)*x
- +15/4+3*B^2/4-C^2/2+11*A^2/4 - 11*A/2+3*B+B*C-7*A*B/2+C/2-A*B^2/2
-#if 1
- + A^2*B
-#endif
- - B*C^2 - A^3/2+(2*A-3)*(S^2+T^2)/8;
-/* OK? for the above term added */
- R0 = -(A-B-1-S)*(A-B-1+S)*(A-B-1-T)*(A-B-1+T)/16;
- return (R4*dx^4-R3*dx^3-R2*dx^2-R1*dx-R0);
-}
-
-def b2e(A,B,C,S,T)
-{
- R4 = x^2*(x-1)^2;
- R3 = x*(x-1)*(2*x-1)*(2*c-5);
- R2 = (-6*C^2+24*C-25+1/2*S^2+1/2*T^2)*x^2
- +(6*C^2-24*C+25-1/2*S^2-1/2*T^2-A^2+B^2+A-B)*x
- +A^2-C^2-A+4*C-15/4;
- R1 = (2*C-3)*(2*C^2-6*C+5-1/2*S^2-1/2*T^2)*x
- +(2*C-3)*(-C^2+3*C+1/2*A^2-1/2*B^2+1/2*B-1/2*A-5/2+1/4*S^2+1/4*T^2);
- R0 = -(2-2*C+S+T)*(2-2*C-S-T)*(2-2*C+S-T)*(2-2*C-S+T)/16;
- return (R4*dx^4-R3*dx^3-R2*dx^2-R1*dx-R0);
-}
-
-
-/*
- T^m = T(T-1)....(T-m+1)
- f(t) -> g(t)
-
- f(t) = a_mt^m + ... + a_1t+a_0
- g(x*dx) = a_m*x^m*dx^m + ... + a_1*x*dx+a_0
-
- ret: x(x-1)...(x-i+1)
- */
-def sftpow(X,I)
-{
- R = 1;
- for(J=0;J<I;J++)
- R *= X-J;
- return(R);
-}
-
-/*
- ret: x(x+K)(x+2*k)...(x+(i-1)*k)
-*/
-def sftpowext(X,I,K)
-{
- R = 1;
- for(J=0;J<I;J++)
- R *= X+K*J;
- return(R);
-}
-
-def polinsft(F,A)
-{
- R = 0;
- while(F != 0){
- D = mydeg(F,A);
- C = mycoef(F,D,A);
- R += C*A^D;
- F -= C*sftpow(A,D);
- }
- return R;
-}
-
-def pol2sft(F,A)
-{
- S=getopt(sft);
- if(type(S)<0 || type(S)>2) S=1;
- R = 0;
- for(I = mydeg(F,A); I >= 0; I--)
- R = R*(A-I*S) + mycoef(F,I,A);
- return R;
-}
-
-def binom(P,N)
-{
- if(type(N)!=1 || N<=0) return 1;
- for(S=1;N>0;N--,P-=1) S*=P/N;
- return red(S);
-}
-
-def expower(P,R,N)
-{
- if(type(N)!=1 || N<0) return 0;
- for(S=S0=K=1;K<=N;K++,R-=1){
- S0*=P*R/K;S+=S0;
- }
- return red(S);
-}
-
-def seriesHG(A,B,X,N)
-{
- if(N==0) return 1;
- if(type(N)!=1 || N<0) return 0;
- if(type(X)<4){
- for(K=0,S=S0=1;K<N;K++){
- for(T=A; T!=[]; T=cdr(T)) S0*=car(T)+K;
- for(T=B; T!=[]; T=cdr(T)) S0/=car(T)+K;
- S0=red(S0*X/(K+1));
- DN=dn(S0);
- S=red((red(S*DN)+nm(S0))/DN);
- }
- return S;
- }
- S=0;
- for(K=0;K<=N;K++){
- for(I=0;I<=N-K;I++){
- C=1/sftpowext(1,I,1)/sftpowext(1,J,1);
- for(T=A[0];T!=[];T=cdr(T)) C*=sftpowext(car(T),I+K,1);
- for(T=A[1];T!=[];T=cdr(T)) C*=sftpowext(car(T),I,1);
- for(T=A[2];T!=[];T=cdr(T)) C*=sftpowext(car(T),K,1);
- for(T=B[0];T!=[];T=cdr(T)) C/=sftpowext(car(T),I+K,1);
- for(T=B[1];T!=[];T=cdr(T)) C/=sftpowext(car(T),I,1);
- for(T=B[2];T!=[];T=cdr(T)) C/=sftpowext(car(T),K,1);
- S+=red(C*X[0]^I*X[1]^K);
- }
- }
- return S;
-}
-
-def evalred(F)
-{
- Opt=getopt(opt);
- if(type(Opt)!=4){
- Opt=[];
- }else if(length(Opt)==2 && type(Opt[0])!=4) Opt=[Opt];
- for(;;){
- G=mysubst(F,[[tan(0),0],[asin(0),0],[atan(0),0],[sinh(0),0],[tanh(0),0],
- [log(1),0],[cosh(0),1],[exp(0),1]]);
- for(Rep=Opt; Rep!=[]; Rep=cdr(Rep))
- G=subst(G,car(Rep)[0],car(Rep)[1]);
- Var=vars(G);
- for(V=Var; V!=[]; V=cdr(V)){
- if(!(VV=args(CV=car(V)))) continue;
- if((functor(CV)==sin||functor(CV)==cos)){
- P=2*red(VV[0]/@pi);
- if(functor(CV)==sin) P=1-P;
- if(isint(P)){
- if(iand(P,1)) G=subst(G,CV,0);
- else if(!iand(P,3)) G=subst(G,CV,1);
- else G=subst(G,CV,-1);
- continue;
- }
- if(isint(P*=3/2)){
- if(iand(P,3)==1) G=subst(G,CV,1/2);
- else G=subst(G,CV,-1/2);
- }
- }
- for(;VV!=[];VV=cdr(VV))
- if(car(VV)!=(TV=evalred(car(VV)))) G=subst(G,car(VV),TV);
- if(functor(CV)!=pow || (args(CV)[0])!=1) continue;
- G=subst(G,CV,1);
- }
- if(G==F) return F;
- F=G;
- }
-}
-
-def seriesMc(F,N,V)
-{
- if(type(V)<4) V=[V];
- V=reverse(V);
- L=length(V);
- if(type(Opt=getopt(evalopt))!=4) Opt=[];
- P=newvect(L);
- G=newvect(L+1);
- G[0]=F;
- for(I=0;I<L;I++)
- G[I+1]=eval(evalred(subst(G[I],V[I],0)|opt=Opt));
- R=G[L];
- for(;;){
- for(M=0,I=0;I<L;I++){
- M+=P[I];
- if(M==N) break;
- }
- if(M<N){
- P[L-1]++;
- G[L-1]=mydiff(G[L-1],V[L-1]);
- G[L]=eval(evalred(mysubst(G[L-1],[V[L-1],0])|opt=Opt));
- }else{
- if(I--==0) break;
- P[I]++;
- G[I]=mydiff(G[I],V[I]);
- while(I++<L){
- G[I]=eval(evalred(mysubst(G[I-1],[V[I-1],0])|opt=Opt));
- if(I<L) P[I]=0;
- }
- }
- K=1;
- for(I=0;I<L;I++) K*=V[I]^P[I]/fac(P[I]);
- R+=G[L]*K;
- }
- return R;
-}
-
-def seriesTaylor(F,N,V)
-{
- G=F;
- if(isvar(V)) V=[V];
- if(length(V)==2 && type(car(V))!=4 && !isvar(V[1])) V=[V];
- for(V0=V1=[];V!=[];V=cdr(V)){
- if(type(T=car(V))!=4) T=[T];
- V0=cons(X=car(T),V0);
- if(length(T)==1 || T[1]==0){
- V1=cons(X,V1);continue;
- }
- S=my_tex_form(-T[1]);
- if(str_char(S,0,"-")!=0) S="+"+S;
- S="("+my_tex_form(X)+S+")";
- V1=cons([X,S],V1);
- F=red(subst(F,T[0],T[0]+T[1]));
- }
- V0=reverse(V0);V1=reverse(V1);
- F=seriesMc(F,N,V0|option_list=getopt());
- if(getopt(frac)==0) F=frac2n(F);
- T=getopt(dviout);
- if(type(T)!=1) T=0;
- F=fctrtos(F|var=V1,rev=1,TeX=(T==0||T==2)?2:3);
- if(getopt(small)==1) F=str_subst(F,"\\frac{","\\tfrac{");
- if(T<0 || T==1) F="\\begin{align}\\begin{split}\n"+
- my_tex_form(G)+"&="+F+"+\\cdots\n\\end{split}\\end{align}\n";
- if(T==1) dviout(F);
- else if(T==1) dviout(F|eq=4);
- return F;
-}
-
-def toeul(F,L,V)
-{
- L = vweyl(L);
- X = L[0]; DX = L[1];
- I = mydeg(F,DX);
- if(V == "infty"){
- for(II=I; II>=0; II--){
- J = mydeg(P=mycoef(F,I,DX),X);
- if(II==I) S=II-J;
- else if(P!=0 && II-J>S) S=II-J;
- }
- F *= X^S;
- R = 0;
- for( ; I >= 0; I--)
- R += red((mysubst(mycoef(F,I,DX),[X,1/X])*(x*DX)^I));
- return(subst(pol2sft(R,DX),DX,-DX));
- }
- F = subst(F,X,X+V);
- for(II=I; II>=0; II--){
- J = mymindeg(P=mycoef(F,II,DX),X);
- if(II==I) S=II-J;
- else if(P!=0 && II-J>S) S=II-J;
- }
- F *= X^S;
- R = 0;
- for( ; I >= 0; I--)
- R += (red(mycoef(F,I,DX)/X^I))*DX^I;
- return pol2sft(R,DX);
-}
-
-/*
-def topoldif(P,F,L)
-{
- L = vweyl(L);
- P = nm(red(P));
- while(deg(P,L[1]) > 0){
- R = coef(P,0,L[0]);
- Q = red((P-R)/(F*L[0]);
- P = nm(Q)*zz+F*R*dn(Q);
- }
-}
-*/
-
-def fromeul(P,L,V)
-{
- if(P == 0)
- return 0;
- L = vweyl(L);
- X = L[0]; DX = L[1];
- I = mydeg(P,DX);
- if(V == "infty"){
- P = subst(P,DX,-DX);
- J = mydeg(P,X);
- P = red(mysubst(P,[X,1/X])*X^J);
- }
- R = mycoef(P,0,DX);
- S = 1;
- for(S = J = 1; J <= I; J++){
- S = DX*(S*X + mydiff(S,DX));
- R += mycoef(P,J,DX)*S;
- }
- while(mycoef(R,0,X) == 0)
- R = tdiv(R,X);
- if(V != "infty" && V != 0)
- R = mysubst(R,[X,X-V]);
- return R;
-}
-
-def sftexp(P,L,V,N)
-{
- L = vweyl(L); DX = L[1];
- P = mysubst(toeul(P,L,V),[DX,DX+N]);
- return fromeul(P,L,V);
-}
-
-
-def fractrans(P,L,N0,N1,N2)
-{
- L = vweyl(L);
- if(N2 != "infty"){
- if(N0 == "infty")
- N0 = 0;
- else
- N0 = red(1/(N0-N2));
- if(N1 == "infty")
- N1 = 0;
- else
- N1 = red(1/(N1-N2));
- P = mysubst(P,[L[0],L[0]+N2]);
- P = fromeul(toeul(P,L,"infty"),L,0);
- }
- if(N0 != 0){
- P = mysubst(P,[L[0],L[0]+N0]);
- N1 -= N0;
- }
- if(N1 != 1)
- P = mysubst(P,[[L[0],L[0]/N1],[L[1],L[1]*N1]]);
- return P;
-}
-
-def soldif(P,L,V,Q,N)
-{
- L = vweyl(L); X = L[0]; DX = L[1];
- P = mysubst(toeul(P,L,V),[DX,DX+Q]);
- DEG = mydeg(P,X);
- P0 = newvect(DEG+1);
- for(I = 0; I <= DEG; I++)
- P0[I] = coef(P,I,X);
- if(P0[0] == 0)
- return 0;
- if(subst(P0[0],DX,0) != 0){
- mycat([Q,"is not the exponent at", V])$
- return 0;
- }
- R = newvect(N+1);
- R[0] = 1;
- for(I = 1; I <= N; I++){
- for(S = 0, K = 1; K <= DEG && K <= I; K++)
- S += mysubst(P0[K],[DX,I-K])*R[I-K];
- S = red(S);
- M = mysubst(P0[0],[DX,I]);
- if(M != 0){
- R[I] = -red(S/M);
- if(R1 != 0){
- for(S = 0, K = 1; K <= DEG && K <= I; K++)
- S += mysubst(P0[K],[DX,I-K])*R1[I-K] +
- mysubst(P1[K],[DX,I-K])*R[I-K];
- R1[I] = -red(S/M);
- }
- }else{
- if(S == 0){
- if(R1 != 0){
- for(S = 0, K = 1; K <= DEG && K <= I; K++)
- S += mysubst(P0[K],[DX,I-K])*R1[I-K] +
- mysubst(P1[K],[DX,I-K])*R[I-K];
- }
- if(S == 0)
- continue;
- }
- R1 = newvect(N+1);
- for(K = 0; K < I; K++){
- R1[K] = R[K];
- R[K] = 0;
- }
- R1[I] = 0;
- P1 = newvect(DEG);
- for(K = 0; K <= DEG; K++)
- P1[K] = mydiff(P0[K], DX);
- M = mysubst(P1[0],[DX,I]);
- if(M == 0){
- cat(["multiple log at ", I])$
- return 0;
- }
- R[I] = -red(S/M);
- }
- }
- if(R1 != 0)
- return [R1, R];
- else
- return R;
-}
-
-def chkexp(P,L,V,Q,N)
-{
- L = vweyl(L); X = L[0]; DX = L[1];
- P = mysubst(toeul(P,L,V),[DX,DX+Q]);
- P = fromeul(P,L,0);
- D = mydeg(P,DX);
- Z = mindeg(mycoef(P,D,DX), X) - (D-N);
- R = [];
- for(I = 0; I < Z; I++){
- S = mycoef(P,I,X);
- if(S != 0){
- for(J = mydeg(S,DX); J >= 0; J--){
- T = mycoef(S,J,DX);
- if(T != 0)
- R = cons(T,R);
- }
- }
- }
- return R;
-}
-
-
-def sqrtrat(P)
-{
- if(P==0) return 0;
- if(type(P)==3||type(P)==2){
- P=red(P);
- if(imag(dn(P))!=0||imag(nm(P))!=0){
- if(imag(dn(P))==0&&real(P)!=0){
- F=red(imag(P)/real(P));
- if(F==3^(1/2)||F==-3^(1/2)){
- if(eval(real(P))<0)
- return -real(P)+imag(P)*@i;
- else{
- if(eval(imag(P))>0) return imag(P)+real(P)*@i;
- else return -imag(P)-real(P)*@i;
- }
- }
- }
- return [];
- }
- F=fctr(dn(P));
- R=sqrtrat(car(F)[0]);
- for(F=cdr(F);F!=[];F=cdr(F)){
- if(!iand(car(F)[1],1)) R*=car(F)[0]^(car(F)[1]/2);
- else return [];
- }
- F=fctr(nm(P));
- R=sqrtrat(car(F)[0])/R;
- for(F=cdr(F);F!=[];F=cdr(F)){
- if(!iand(car(F)[1],1)) R*=car(F)[0]^(car(F)[1]/2);
- else return [];
- }
- return R;
- }
- if(ntype(P)==4){
- P0=real(P);P1=imag(P)/2;
- X=makenewv(P);
- for(R=fctr(X^4-P0*X^2-P1^2);R!=[];R=cdr(R)){
- RT=car(R)[0];
- if(deg(RT,X)==1){
- X=-mycoef(RT,0,X)/mycoef(RT,1,X);
- return X+P1/X*@i;
- }
- if(deg(RT,X)==2){
- if((D=mycoef(RT,1,X)^2-4*mycoef(RT,2,X)*mycoef(RT,0,X))<0) continue;
- X=(-mycoef(RT,1,X)+sqrtrat(D))/(2*mycoef(RT,2,X));
- return X+P1*sqrt2rat(1/X)*@i;
- }
- }
- D=P0^2+4*P1^2;
- if(P1>0) return ((sqrtrat(D)+P0)/2)^(1/2)+((sqrtrat(D)-P0)/2)^(1/2)*@i;
- return ((sqrtrat(D)+P0)/2)^(1/2)-((sqrtrat(D)-P0)/2)^(1/2)*@i;
- }else if(ntype(P)!=0) return [];
- if(P==1) return P;
- Dn=dn(P);Nm=nm(P);C=R=1;
- N=pari(factor,Dn);
- if(N){
- for(II=car(size(N))-1;II>=0;II--){
- if(iand(K=N[II][1],1)){
- R*=N[II][0];
- K++;
- }
- C/=N[II][0]^(K/2);
- }
- }
- N=pari(factor,Nm);
- if(N){
- for(II=car(size(N))-1;II>=0;II--){
- if(N[II][0]==-1){
- C*=@i;
- continue;
- }
- K=N[II][1];
- if(iand(K,1)){
- R*=N[II][0];
- K--;
- }
- if(K!=0) C*=N[II][0]^(K/2);
- }
- }
- if(R!=1) C*=R^(1/2);
- return C;
-}
-
-def fctri(F)
-{
- R=(iscoef(F,os_md.israt))?fctr(F):[[1,1],[F,1]];
- if(!iscoef(F,os_md.iscrat)||chkfun("af_noalg",0)==0) return R;
- X=makenewv(vars(F));
- for(S=[];R!=[];R=cdr(R)){
- if(length(Var=vars(R0=car(R)[0])) == 1 && (D=mydeg(R0,Var=car(Var))) > 0){
- if(imag(T=mycoef(R0,D,Var))!=0) R0/=T;
- T=af_noalg(real(R0)+imag(R0)*X,[[X,X^2+1]]);
- if(length(T)>1||T[0][1]>1){
- T=subst(T,X,@i);
- for(; T!=[];T=cdr(T)){
- if(vars(T[0])!=[])
- S=cons([car(T)[0],car(T)[1]*car(R)[1]],S);
- }
- continue;
- }
- }
- S=cons(R[0],S);
- }
- return reverse(S);
-}
-
-def getroot(F,X)
-{
- S=[];
- if(type(Cpx=getopt(cpx))!=1) Cpx=0;
- M=getopt(mult);
- if(type(F) == 3)
- F = nm(red(F));
- for(R=fctri(F); length(R)>0; R = cdr(R)){
- T=car(R);
- P=car(T);
- I=car(cdr(T));
- if(mydeg(P,X)>0){
- if(mydeg(P,X)==1){
- C = mycoef(P,1,X);
- P = X - red(P/C);
- }else if(mydeg(P,X)==2 && Cpx>0){
- C2=mycoef(P,2,X);C1=mycoef(P,1,X);C0=mycoef(P,0,X);
- C=sqrt2rat(C1^2-4*C0*C2);
- C0=[];
- if(type(C)==0&&ntype(C)==0&&pari(issquare,-C)) C0=sqrt(C);
- else if(Cpx>1) C0=sqrtrat(C);
- if(C0==[]&&Cpx>2) C0=C^(1/2);
- if(C0!=[]){
- if(M==1)
- S=cons([I,sqrt2rat((-C1+C0)/(2*C2))],S);
- else{
- for(II=I; II>0; II--)
- S=cons(sqrt2rat((-C1+C0)/(2*C2)),S);
- }
- P=sqrt2rat((-C1-C0)/(2*C2));
- }
- }else if(mydeg(P,X)==3 && Cpx>1){
- Omg=(-1+3^(1/2)*@i)/2;
- PP=P/mycoef(P,3,X);
- C2=mycoef(PP,2,X)/3;
- PP=subst(PP,X,X-C2);
- if((C1=mycoef(PP,1,X))==0){
- C0=mycoef(PP,0,X);
- if(real(C0)==0||imag(C0)==0){
- if(real(C0)==0){
- PP=getroot(X^3+imag(C0),X);
- if(length(PP)==3){
- for(;PP!=[];PP=cdr(PP)){
- if(imag(PP[0])==0){
- C0=PP[0]*@i;
- break;
- }
- }
- if(PP==[]) C0=0;
- }
- }else{
- if(C0>0) C0=C0^(1/3);
- else C0=-(-C0)^(1/3);
- }
- if(C0!=0){
- if(M==1){
- S=cons([I,C0-C2],S);
- S=cons([I,C0*Omg-C2],S);
- S=cons([I,C0*(-1-Omg)-C2],S);
- }else{
- for(II=I; II>0; II--){
- S=cons(C0-C2,S);
- S=cons(C0*Omg-C2,S);
- S=cons(C0*(-1-Omg)-C2,S);
- }
- }
- continue;
- }
- }
- }
- if(Cpx>2){
- Q=X^2+(mycoef(PP,1,X)/3)*X+mycoef(PP,0,X)^3;
- SQ=getroot(Q,X|cpx=2);
- SQ=SQ[0]^(1/3);SQ2=mycoef(PP,0,X)/SQ;
- if(M==1){
- S=cons([I,SQ+SQ2-C2],S);
- S=cons([I,SQ*Omg+SQ2*(-1-Omg)-C2],S);
- S=cons([I,SQ*(-1-Omg)+SQ2*Omg-C2],S);
- }else{
- for(II=I; II>0; II--){
- S=cons(SQ+SQ2-C2,S);
- S=cons(SQ*Omg+SQ2*(-1-Omg)-C2,S);
- S=cons(SQ*(-1-Omg)+SQ2*Omg-C2,S);
- }
- }
- continue;
- }
- }else if(mydeg(P,X)==4 && Cpx>0){
- C2=mycoef(P,3,X)/(4*mycoef(P,4,X));
- PP=subst(P,X,X-C2);
- if(mycoef(PP,1,X)==0){
- PP=mycoef(PP,4,X)*X^2+mycoef(PP,2,X)*X+(SQ2=mycoef(PP,0,X));
- SQ=getroot(PP,X|cpx=2);
- if(length(SQ)==2){
- if((C0=sqrtrat(SQ[0]))==[]){
- if(mycoef(PP,1,X)==0){
- if(SQ2<0) C0=(-SQ2)^(1/4);
- else C0=SQ2^(1/4)*(1+@i)/2;
- }
- else if(Cpx>2) C0=SQ[0]^(1/2);
- else C0=0;
- }
- if((C1=sqrtrat(SQ[1]))==[]){
- if(mycoef(PP,1,X)==0) C1=-C0;
- else C1=SQ[1]^(1/2);
- }
- if(C0!=0){
- if(M==1)
- S=append([[I,C0-C2],[I,-C0-C2],[I,C1-C2],[I,-C1-C2]],S);
- else{
- for(II=I; II>0; II--)
- S=append([C0-C2,-C0-C2,C1-C2,-C1-C2],S);
- }
- continue;
- }
- }
- }else{
- PP/=mycoef(PP,4,X);
- CC=mycoef(PP,2,X);C1=mycoef(PP,1,X);C0=mycoef(PP,0,X);
- SQ=getroot(X*(CC+X)^2-4*C0*X-C1^2,X|cpx=Cpx);
- if(length(SQ)>1){
- SQ=sqrt2rat(SQ[0]);
- SQ2=getroot(X^2-SQ,X|cpx=Cpx);
- if(length(SQ2)>1){
- C1=SQ2[0]*X-C1/SQ2[0]/2;
- C0=getroot(X^2+CC/2+SQ/2+C1,X|cpx=Cpx);
- C1=getroot(X^2+CC/2+SQ/2-C1,X|cpx=Cpx);
- if(length(C0)>1&&length(C1)>1){
- C0=[sqrt2rat(C0[0]-C2),sqrt2rat(C0[1]-C2),
- sqrt2rat(C1[0]-C2),sqrt2rat(C1[1]-C2)];
- if(M==1) for(II=0;II<4;II++) S=cons([I,C0[II]],S);
- else for(II=I; II>0; II--) S=append(C0,S);
- continue;
- }
- }
- }
- }
- }
- if(M==1)
- S=cons([I,P],S);
- else for( ; I>0; I--) S=cons(P,S);
- }
- }
- S=qsort(S);
- if(M==1) S=reverse(S);
- return S;
-}
-
-def expat(F,L,V)
-{
- L = vweyl(L);
- if(V == "?"){
- Ans = [];
-
- F = nm(red(F));
- S = fromeul(toeul(F,L,"infty"),L,0);
- S = mycoef(S,mydeg(S,L[1]),L[1]);
- if(mydeg(S,L[0]) > 0)
- Ans = cons(["infty", expat(F,L,"infty")],Ans);
-
- S = mycoef(F,mydeg(F,L[1]), L[1]);
- R = getroot(S,L[0]);
- for(I = 0; I < length(R); I++){
- if(I > 0 && R[I-1] == R[I])
- continue;
- if(mydeg(R[I], L[0]) <= 0)
- Ans = cons([R[I], expat(F,L,R[I])], Ans);
- else
- Ans = cons([R[I]], Ans);
- }
- return Ans;
- }
- return getroot(subst(toeul(F,L,V),L[0],0),L[1]);
-}
-
-def polbyroot(P,X)
-{
- R = 1;
- while(length(P)){
- R *= X-car(P);
- if(type(R)>2) R = red(R);
- P = cdr(P);
- }
- return R;
-}
-
-def polbyvalue(P,X)
-{
- R = 1; S = 0;
- while(length(P)){
- T = car(P);
- V0 = T[1] - mysubst(S,[X,T[0]]);
- if(V0 != 0){
- if(type(R) > 2) R = red(R);
- V1 = mysubst(R,[X,T[0]]);
- if(V1 == 0){
- erno(0);
- return 0;
- }
- S += (V0/V1)*R;
- if(type(S) > 2) S = red(S);
- }
- R *= X - T[0];
- P = cdr(P);
- }
- return S;
-}
-
-
-def pcoef(P,L,Q)
-{
- if(L==0)
- return 1;
- Coef=TP=0;
- if(type(Q)>=4){
- TP=1;
- V=Q[0];
- if(type(V)==4)
- V=ltov(V);
- else V=dupmat(V);
- N=length(V);
- if(type(Q[1])==5) MR=dupmat(Q[1]);
- else{
- MR=newvect(N);
- for(K=Q[1], I=0; I< N; I++){
- MR[I] = car(K);
- K = cdr(K);
- }
- }
- }else{
- V=ltov(vars(P));
- N=length(V);
- MR=newvect(N);
- for(I=0;I<N;I++){
- MR[I]=mydeg(Q,V[I]);
- Q=mycoef(Q,MR[I],V[I]);
- }
- if(type(Q)>1) return 0;
- }
- if(L==1){
- for(I=0;I<N;I++)
- P=mycoef(P,MR[I],V[I]);
- return P;
- }
- for(I=1;I<N;I++){ /* sorted by required degrees */
- for(K1=MR[I],K2=V[I],J=I-1; J>=0 && MR[J]<K1; J--);
- for(II=I-1;II>J;II--){
- MR[II+1]=MR[II];V[II+1]=V[II];
- }
- MR[II+1]=K1;V[II+1]=K2;
- }
- for(NN=N; N>0 && MR[N-1]==0; N--);
- Mon=[];Coe=[];Q=P;
- while(Q!=0){
- M=newvect(N);
- for(R=Q,F=I=0,MT=1;I<NN;I++){
- K=mydeg(R,V[I]);
- R=mycoef(R,K,V[I]);
- if(I<N) M[I]=K;
- if(K>0) MT*=V[I]^K;
- if(K>MR[I]) F=1;
- }
- Q -= R*MT;
- if(F==0){
- Mon=cons(M,Mon);
- Coe=cons(R,Coe);
- }
- }
- Mon=ltov(reverse(Mon));
- Coe=ltov(reverse(Coe));
- Len=length(Mon);
- S=newvect(Len);
- for(JL=0; JL<Len;JL++){
- if(L*Mon[JL][0]<MR[0]) break;
- }
- S[0]=L;
-
- K0=Mon[0][0];
- K=L*K0-MR[0];
- for(I=II=0;II<Len && K>=0;II++){
- if((K1=K0-Mon[0][II])>0){
- while(K>K1 && S[I]>0){
- S[I]--;S[II]++;
- K-=K1;
- I=II;
- K0=Mon[0][II];
- }
- }else break;
- }
-
- I=0;
- while(1){
- for(T=T0=J=JP=0; J<Len; J++){
- if(S[J]!=0){
- if(T0==0 && J>=JL) return Coef;
- JP=J;T0=1;
- T+=S[J]*Mon[J][I];
- }
- }
- if(T==MR[I]){
- if(++I<N) continue;
- for(TT=1,J=1; J<=L; J++) /* find a solution */
- TT*=J;
- for(J=0;J<Len;J++){
- if(S[J]!=0){
- TT*=Coe[J]^S[J];
- for(II=S[J]; II>1; II--)
- TT/=II;
- }
- }
- Coef+=TT;
- if(TP==1 && type(Coef)==3) Coef=red(Coef);
- if(JP<Len-2 && S[JP]>1){
- S[JP]-=2;S[JP+1]++;S[JP+2]++;
- }else{
- for(JT=JP-1;JT>=0&&S[JT]==0;JT--);
- if(JT<0) break;
- if(JT==JP-1){
- S[JT]--;
- if(JP<Len-1)
- S[JP+1]++;
- else
- S[JP]++;
- }else{
- S[JT]--;
- S[JT+1]+=S[JP]+1;
- S[JP]=0;
- }
- }
- I=0;
- continue;
- }
- if(JP<Len-1){
- for(JP1=JP+1;JP1<Len-1;JP1++){
- if(Mon[JP1][I]!=Mon[JP][I]) break;
- }
-
- if(I>0 && Mon[JP1][0] < Mon[JP][0]){
- S[JP]--;S[Len-1]++;JP=JP-1;
- }else{
-
- S[JP]--;
- if(JP1<Len){
- S[JP1]++;
- }else{
- S[JP1-1]++;
- }
- }
- }
- if(JP==Len-1){
- for(JT=JP-1;JT>=0 && S[JT]==0;JT--);
- if(JT<0) break;
- S[JT]--;
- if(JT==JP-1){
- S[JP]++;
- }else{
- S[JT+1]+=S[JP]+1;
- S[JP]=0;
- }
- }
- I=0;
- }
- return Coef;
-}
-
-def prehombf(P,Q)
-{
- if((Mem=getopt(mem))!=1 && Mem!=-1)
- return prehombfold(P,Q);
- if(Q==0) Q=P;
- V=ltov(vars(P));
- N=length(V);
- for(I=1;I<N;I++){ /* sorted by required degrees */
- for(K=mydeg(P,V[I]),K1=V[I],J=I-1; J>=0 && mydeg(P,V[J])<K; J--);
- for(II=I-1;II>J;II--) V[II+1]=V[II];
- V[II+1]=K1;
- }
- S=newvect(N);T=newvect(N);U=newvect(N);
- for(R=P,M=1,Deg=I=0;I<N;I++){ /* extreme vector */
- Deg+=(S[I]=mydeg(R,V[I]));
- R=mycoef(R,S[I],V[I]);
- }
- DR=[[-1,0]];
- if((R1=N/Deg)!=1){
- DR=cons([-R1,0],DR);
- Sft=1;
- }else Sft=0;
- if(Deg%2==0) Sg=1;
- else Sg=-1;
- for(I=0,R=R2=1,QQ=Q; 2*I+Sft < Deg; I++){
- if(Mem==-1){
- print(I+1,0);print("/",0);print(idiv(Deg-Sft+1,2),0);print(" ",2);
- }
- Coef=0;
- Q=QQ;
- while(Q!=0){
- for(R=Q,J=0,RR=1;J<N;J++){
- T[J]=mydeg(R,V[J]);
- R=mycoef(R,T[J],V[J]);
- if(T[J]>0) RR*=V[J]^T[J];
- }
- Q-=R*RR;
- for(J=0,CC=R;J<N;J++){
- U[J]=I*S[J]+T[J];
- for(II=0; II<T[J]; II++)
- CC*=(U[J]-II);
- }
- CC*=pcoef(P,I+1,[V,U]);
- if(Mem==-1) print("*",2);
- Coef+=CC;
- }
- DR=cons([I,Coef],DR);
- DR=cons([-R1-1-I,Sg*Coef],DR);
- if(Mem==-1) print("");
- }
- P = polbyvalue(DR,s);
- return fctr(P);
-}
-
-def prehombfold(P,Q)
-{
- V = vars(P);
- if(Q==0) Q=P;
- for(Deg=0, R=P, V1=V, DD=[]; V1!=[]; V1=cdr(V1)){
- VT = car(V1);
- D = mydeg(R,VT);
- R = mycoef(R,D,VT);
- Deg += D;
- X = makev(["d",VT]);
- Q = subst(Q,VT,X);
- DD=cons([VT,X],DD);
- }
- DR=[[-1,0]];
- NV=length(V);
- if((R1=NV/Deg)!=1){
- DR=cons([-R1,0],DR);
- Sft=1;
- }else
- Sft=0;
- if(Deg%2==0)
- Sg=1;
- else Sg=-1;
- for(I = 0, R=R2=1; 2*I+Sft < Deg; I++){
- R = R2;
- R2 = R*P;
- S = appldo(Q,R2,DD);
- QQ = sdiv(S,R);
- DR=cons([I,QQ],DR);
- DR=cons([-R1-1-I,Sg*QQ],DR);
- }
- P = polbyvalue(DR,s);
- return fctr(P);
-}
-
-def sub3e(P0,P1,P2,N0,N1,N)
-{
- R = x^N0*(x-1)^N1*dx^N;
- for(V = I = 1, J = 1; I <= N; I++){
- S = 0;
- M = N-I;
- if(I <= N0){
- T = mycoef(P0,N0-I,x);
- S += T;
- R += T*x^(N0-I)*(x-1)^N1*dx^M;
- K1 = N0-I+1;
- }else
- K1 = 0;
- if(I <= N1){
- T = mycoef(P1,N1-I,x);
- S += T;
- R += T*x^N0*(x-1)^(N1-I)*dx^M;
- K2 = N0-1;
- }else
- K2 = N-I;
- for(K = K1; K <= K2; K++){
- if(K == K2){
- R += (mycoef(P2,N-I,x)-S)*x^K*(x-1)^(M-K)*dx^M;
- continue;
- }
- R += strtov("r"+rtostr(V))*x^K*(x-1)^(M-K)*dx^M;
- S += strtov("r"+rtostr(V++));
- }
- }
- if(V > 1)
- mycat([V-1, "accessory parameters: r1,r2,..."]);
- return R;
-}
-
-def fuchs3e(P,Q,R)
-{
- return getbygrs([R,P,Q],3);
-}
-
-def okubo3e(P,Q,R)
-{
- if(getopt(opt)==1){
- N=length(R);
- M1=N-length(P);M2=N-length(Q);
- V=(M1-1)*(M2-1);
- if(V>0) mycat([V, "accessory parameters"]);
- return getbygrs([R,cons([M1,0],P),cons([M2,0],Q)],3);
- }
- S = 0;
- V = -1;
- L = newvect(3,[[],[],[]]);
- N = newvect(3,[0,0,0]);
- if(type(R) < 4){
- I = -1;
- V = 3;
- }else{
- I = 2;
- V = -1;
- }
- for( ; I >= 0; I--){
- if(I == 2)
- U = R;
- else if(I == 1)
- U = Q;
- else
- U = P;
- for( ; length(U); U = cdr(U)){
- T = car(U);
- if( T == "?"){
- if(V < 0)
- V = I;
- else
- return 0;
- }else{
- if(I == 2)
- L[I] = cons(-T, L[I]);
- else
- L[I] = cons(T, L[I]);
- S += T;
- }
- N[I]++;
- }
- }
- if(V == 3){
- N[2] = N[0] + N[1];
- P2 = x^N;
- for(I = 1; I <= N; I++)
- P2 += makev([R,I])*x^(N-I);
- }else{
- if(N[0]+N[1] != N[2]){
- print("Number of exponents are wrong",0);
- return -1;
- }
- S -= N[0]*N[1];
- if(V < 0){
- if(S != 0){
- mycat(["Viorate Fuchs relation ->",S]);
- return -2;
- }
- }else{
- if(V != 2)
- S = -S;
- L[V] = cons(S, L[V]);
- }
- P2 = polinsft(polbyroot(L[2],x),x);
- }
- P0 = polinsft(mysubst(polbyroot(L[0],x),[x,x+N[1]]),x);
- P1 = polinsft(mysubst(polbyroot(L[1],x),[x,x+N[0]]),x);
- return sub3e(P0,P1,P2,N[0],N[1],N[2]);
-}
-
-/* N = 2*M (N-M = M) or 2*M+1 (N-M = M+1)
- 0 : 0 1 ..... M-1 B B+1 ... B+N-M-2 A
- 1 : C C+1 ... C+M-1 0 1 .... N-M-2 N-M-1
- */
-def eosub(A,B,C,N)
-{
- M = N%2;
- P = [];
- Q = [];
- P = cons(A,P);
- for(I = 0; I < N-M-1; I++)
- P = cons(B+I,P);
- for(I = 0; I < M; I++)
- Q = cons(C+I,Q);
- P = okubo3e(P,Q,s);
-
- C = newvect(2);
- L = newvect(2);
- C[1] = chkexp(P,[x,dx],0,b,N-M-1);
- C[0] = chkexp(P,[x,dx],1,c,M);
- for(LL = K = 0; K < 2; K++){
- L[K] = length(C[K]);
- C[K] = ltov(C[K]);
- if(L[K] > LL)
- LL = L[K];
- }
- JJ = 0;
-
- for(I = 1; Do; I++){
- Do = 0;
- S = makev(["r",I]);
- for(J = JJ; J < LL; J++){
- JJ = LL;
- for(K = 0; K < 2; K++){
- if(J >= L[K] || C[K][J] == 0)
- continue;
- if(J < JJ)
- JJ = J;
- if(Do == 1){
- CC = C[K];
- CC[J] = mysubst(CC[J], [S, Var]);
- continue;
- }
- if(mydeg(C[K][J]) >= 1){
- if(mydeg(C[K][J]) > 1){
- print("Internal error");
- return;
- }
- Var = getroot(C[K][J],S);
- Var = Var[0];
- CC = C[K];
- CC[J] = 0;
- P = mysubst(P, [S, Var]);
- Do = 1;
- J = JJ - 1;
- K++;
- }
- }
- }
- }
- if(JJ != L){
- print("Internal error (non Rigid)");
- return;
- }
- return P;
-}
-
-def even4e(X,Y){
- if(length(X) != 4 || length(Y) != 2){
- print("Usage: even4e([a,b,c,d],[e,f])");
- print("0: 0 1 e f");
- print("1; 0 1 * *+1");
- print("infty: a b c d");
- return;
- }
- S = -3;
- for(I = 0; I < 4; I++){
- S += X[I];
- if(I < 2)
- S += Y[I];
- }
- S = -S/2;
- P = okubo3e(Y,[S,"?"],X);
- T = chkexp(P,x,1,S,2);
- T = getroot(T[0],r1);
- return mysubst(P,[r1,T[0]]);
-}
-
-def odd5e(X,Y)
-{
- if(length(X) != 5 || length(Y) != 2){
- print("Usage: spec6e([a,b,c,d,e],[f,g])");
- print("0: 0 1 f g g+1");
- print("1: 0 1 2 * *+1");
- print("infty: a b c d e");
- return;
- }
- S = -4;
- for(I = 0; I < 5; I++){
- S += X[I];
- if(I < 2)
- S += Y[I];
- }
- S = -(S + Y[1])/2;
- P = okubo3e([Y[0],Y[1],Y[1]+1],[S,"?"],X);
- T = chkexp(P,x,1,S,2);
- T = getroot(T[0],r1);
- P = mysubst(P,[r1,T[0]]);
- T = chkexp(P,x,0,Y[1],2);
- T = getroot(T[0],r2);
- return mysubst(P,[r2,T[0]]);
-}
-
-def extra6e(X,Y)
-{
- if(length(X) != 6 || length(Y) != 2){
- print("Usage: extra6e([a,b,c,d,e,f],[g,h])");
- print("0: 0 1 g g+1 h h+1");
- print("1: 0 1 2 3 * *+1");
- print("infty: a b c d e f");
- return;
- }
- S = -5;
- for(I = 0; I < 6; I++){
- S += X[I];
- if(I < 2)
- S += 2*Y[I];
- }
- S = -S/2;
- P = okubo3e([Y[0],Y[0]+1,Y[1],Y[1]+1],[S,"?"],X);
- T = chkexp(P,x,1,S,2);
- T = getroot(T[0],r1);
- P = mysubst(P,[r1,T[0]]);
- T = chkexp(P,x,0,Y[0],2);
- T = getroot(T[0],r3);
- P = mysubst(P,[r3,T[0]]);
- T = chkexp(P,x,0,Y[1],2);
- T = getroot(T[0],r2);
- return mysubst(P,[r2,T[0]]);
-}
-
-def rigid211(X,Y,Z)
-{
- if(length(X) != 2 || length(Y) != 2 || length(Z) != 2){
- print("Usage: rigid211([a,b],[c,d],[e,f])");
- print("0: 0 1 a b");
- print("1: 0 1 c d");
- print("infty: e e+1 f *");
- return;
- }
- P = okubo3e(X,Y,[Z[0],Z[0]+1,Z[1],"?"]);
- T = chkexp(P,x,"infty",Z[0],2);
- T = getroot(T[0],r1);
- return mysubst(P,[r1,T[0]]);
-}
-
-def solpokuboe(P,L,N)
-{
- if(type(N) > 1 || ntype(N) != 0 || dn(N) != 1){
- mycat(["Irrigal argument :", N]);
- return 0;
- }
- L = vweyl(L);
- DD=N+1;
- for(U = S = L[0]^N; U != 0; ){
- D = mydeg(U,L[0]);
- if(D>=DD){
- mycat(["Internal Error",D,DD]);
- return -1;
- }
- DD=D;
- UU = L[0]^D;
- R = appldo(P,UU,L);
- if(mydeg(R,L[0]) > D){
- printf("Bad operator\n");
- return 0;
- }
- CC = mycoef(R,D,L[0]);
- if(D == N){
- P -= (E = CC);
- U = R-E*U;
- continue;
- }
- if(CC == 0){
- printf("No polynomial\n");
- return 0;
- }
- CC= mycoef(U,D,L[0])/CC;
- S = red(S - UU*CC);
- U = red(U - R*CC);
- }
- return [nm(S),E];
-}
-
-def stoe(M,L,N)
-{
- L = vweyl(L);
- Size = size(M);
- S = Size[0];
- NN = 0;
- if(type(N) == 4){
- NN=N[0]; N=N[1];
- }else if(N < 0){
- NN=-N; N=0;
- }
- if(S != Size[1] || N >= S || NN >= S)
- return;
- D = newmat(S+1,S+1);
- MN = dupmat(M);
- MD = newmat(S,S);
- DD = D[0];
- DD[N] = 1; DD[S] = 1;
- for(Lcm = I = 1; ; ){
- DD = D[I];
- MM = MN[N];
- for(J = 0; J < S; J++){
- DD[J] = MM[J];
- Lcm = lcm(dn(DD[J]),Lcm);
- }
- DD[S] = L[1]^I;
- for(J = 0; J <= S; J++)
- DD[J] = red(DD[J]*Lcm);
- if(I++ >= S)
- break;
- if(I==S && NN>0){
- DD = D[I];
- DD[0]=-z_zz; DD[NN]=1;
- break;
- }
- Mm = dupmat(MN*M);
- for(J = 0; J < S; J++){
- for(K = 0; K < S; K++)
- MN[J][K] = red(diff(MN[J][K],L[0])+Mm[J][K]);
- }
- }
-#if 0
- P = fctr(mydet2(D));
-#else
- P = fctr(det(D));
-#endif
- for(I = R = 1; I < length(P); I++){
- if(mydeg(P[I][0],L[1]) > 0)
- R *= P[I][0]^P[I][1];
- }
- if(NN > 0)
- R = -red(coef(R,0,z_zz)/coef(R,1,z_zz));
- return R;
-}
-
-def dform(L,X)
-{
- if(type(X)==2) X=[X];
- if(type(L[0])!=4) L=[L];
- if(type(X)==4) X=ltov(X);
- M=length(X);
- if(length(car(L))==2){
- R=newvect(M);
- for(LL=L; LL!=[]; LL=cdr(LL)){
- for(I=0; I<M; I++){
- RT=rmul(car(LL)[0],mydiff(car(LL)[1],X[I]));
- R[I] = (R[I]==0)?RT:radd(R[I],RT);
- }
- }
- Dif=getopt(dif);
- for(RR=[], I=M-1; I>=0; I--){
- if(Dif==1) RR=cons([1,R[I],X[I]],RR);
- else RR=cons([R[I],X[I]],RR);
- }
- if(Dif==1) RR=dform(RR,X);
- return RR;
- }else if(length(car(L))!=3) return L;
- N=M*(M-1)/2;
- R=newvect(N);
- S=newvect(N);
- for(LL=L; LL!=[]; LL=cdr(LL)){
- for(I=K=0; I<M; I++){
- for(J=I+1; J<M; J++, K++){
- if(LL==L) S[K]=[X[I],X[J]];
- LT=car(LL);
- R1=mydiff(LT[2],X[J]);
- R2=mydiff(-LT[2],X[I]);
- if(R2==0){
- if(R1==0) continue;
- R1=rmul(mydiff(LT[1],X[I]),R1);
- }else if(R1==0){
- R1=rmul(mydiff(LT[1],X[J]),R2);
- }else
- R1=rmul(mydiff(LT[1],X[I]),R1)+rmul(mydiff(LT[1],X[J]),R2);
- R1=rmul(LT[0],R1);
- R[K] = (R[K]==0)?R1:radd(R[K],R1);
- }
- }
- }
- for(RR=[],I=N-1; I>=0; I--)
- RR=cons([R[I],S[I][0],S[I][1]],RR);
- return RR;
-}
-
-def polinvsym(P,Q,Sym)
-{
- N = length(Q);
- T = polbyroot(Q,zz);
- for(I = 1; I <= N; I++){
- P = mysubst(P,[makev([Sym,I]), (-1)^I*coef(T,N-I,zz)]);
- }
- return P;
-}
-
-def polinsym(P,Q,Sym)
-{
- if(type(P) == 3){
- P = red(P);
- if(type(P) == 3){
- D = polinsym(dn(P),Q,Sym);
- if(D == 0)
- return 0;
- return polinsym(nm(P),Q,Sym)/D;
- }
- }
- N = length(Q);
- V = newvect(N+1);
- S = newvect(N+1);
- E = newvect(N+1);
- E0 = newvect(N+1);
- T = polbyroot(Q,zzz);
- for(J = 1; J <= N; J++){
- K = coef(T,N-J,zzz);
- if(J % 2)
- K = -K;
- S[J] = K;
- V[J] = makev([Sym,J]);
- }
- K = deg(P,Q[0]);
- for(J = 0; J <= N; J++)
- E0[J] = K+1;
- E[0] = K+1;
- while(deg(P,Q[0]) > 0){
- for(P0 = P, J = 1; J <= N; J++){
- E[J] = deg(P0,Q[J-1]);
- P0 = coef(P0,E[J],Q[J-1]);
- }
- /* P0*Q[0]^E[1]*Q[1]^E[2]*... E[1] >= E[2} >= ... */
- for(J = 1; J <= N; J++){
- if(E[J] < E0[J])
- break;
- if(E[J-1] < E[J])
- J = N;
- }
- if(J > N){
- print("Not symmetric");
- return 0;
- }
- for(J = 1; J <= N; J++)
- E0[J] = E[J];
- for(J = N; J > 1; J--){
- if(E[J] != 0)
- for(K = 1; K < J; K++)
- E[K] -= E[J];
- }
- for(R0 = P0, K = 1; K <= N; K++){
- if(E[K] > 0)
- P0 *= S[K]^E[K];
- R0 *= V[K]^E[K];
- }
- P += R0 - P0;
- }
- return P;
-}
-
-def tohomog(P,L,V)
-{
- while(length(L)>0){
- P = mysubst(P,[car(L),car(L)/V]);
- L = cdr(L);
- }
- P = red(P);
- N = mindeg(dn(P),V);
- if(N > 0)
- P = red(P*V^N);
- N = mindeg(dn(P),V);
- if(N > 0)
- P = red(P/(V^N));
- return P;
-}
-
-def substblock(P,X,Q,Y)
-{
- P = red(P);
- if(deg(dn(P),X) > 0)
- return substblock(nm(P),X,Q,Y)/substblock(dn(P),X,Q,Y);
- N = mydeg(Q,X);
- if(N < 1)
- return P;
- R = mycoef(Q,N,X);
- while(M = mydeg(P,X), M >= N)
- P = red(P - mycoef(P,M,X)*(Q-Y)*X^(M-N)/R);
- return P;
-}
-
-def okuboetos(P,L)
-{
- L = vweyl(L); X = L[0]; DX = L[1];
- N = mydeg(P,DX);
- C = mycoef(P,N,DX);
- K = mydeg(C,X);
- if(K > N){
- print("Irregular singularity at infinity")$
- return 0;
- }
- if(N > K)
- P *= x^(N-K);
-
- L = getroot(mycoef(P,N,DX),x);
- L = ltov(reverse(L));
- if(length(L) != N || N == 0){
- print("Cannot get exponents")$
- return 0;
- }
- if( type(LL = getopt(diag)) == 4 ){
- LL = ltov(LL);
- if(length(LL) != N){
- mycat(["Length of the option should be", N]);
- return 0;
- }
- Tmp = newvect(N);
- for(I = N-1; I >= 0; I--){
- for(LLT = LL[I], J = N-1; J >=0 ; J--){
- if(LLT == L[J] && Tmp[J] == 0){
- Tmp[J] = 1;
- break;
- }
- }
- if(J < 0){
- print("option is wrong");
- return 0;
- }
- }
- L = LL;
- }
- P /= mycoef(C,N,X);
- A = newmat(N,N);
- AT = newmat(N+1,N+1);
- Phi= newvect(N+1);
- Phi[0] = 1;
- for(J = 0; J < N; J++)
- Phi[J+1] = Phi[J]*(X-L[J]);
- for(ATT = AT[N], J = 0; J < N; J++)
- ATT[J] = mycoef(P,J,DX);
-
- for(K = 1; K <= N; K++){
- for(J = N; J >= K; J--){
- Aj = A[J-1];
- SIG = AT[J][J-K];
- for(I = 0; I <= K-2; I++)
- SIG += Aj[J-I-1]*AT[J-I-1][J-K];
- if(K == 1)
- DAT = mydiff(Phi[J-1],X);
- else
- DAT = mydiff(AT[J-1][J-K],X);
- Aj[J-K] = -SIG+(X-L[J-1])*DAT;
- Aj[J-K] /= Phi[J-K];
- Aj[J-K] = mysubst(Aj[J-K],[X,L[J-1]]);
- if(J < K+1) continue;
- ATj = AT[J-1];
- ATj[J-K-1] = SIG+Aj[J-K]*Phi[J-K];
- ATj[J-K-1] /= (X - L[J-1]);
- ATj[J-K-1] = red(ATj[J-K-1]-DAT);
- }
- }
-
- ATT = newmat(N,N);
- for(J = 0; J < N; J++){
- for(K = 0; K < N; K++){
- ATj = ATT[J];
- ATj[K] = AT[J][K];
- }
- ATj[J] = Phi[J];
- if(J < N-1){
- ATj = A[J];
- ATj[J+1] = 1;
- }
- }
- return [L,A,ATT];
-}
-
-def heun(X,P,R)
-{
- if(type(X) != 4 || length(X) != 5){
- print("Usage: huen([a,b,c,d,e],p,r)");
- print("0: 0 c");
- print("1: 0 d");
- print("p: 0 e");
- print("infty: a b");
- print("Fuchs relation: a+b+1 = c+d+e");
- return;
- }
- S = 1;
- V = -1;
- X = ltov(X);
- for(I = 0; I < 5; I++){
- if(X[I] == "?"){
- if(V >= 0)
- return;
- V = I;
- }else if(I < 2){
- S += X[I];
- }else
- S -= X[I];
- }
- if(V >= 0){
- if(V < 2)
- X[V] = -S;
- else
- X[V] = S;
- }else if(S != 0){
- mycat(["Fuch relation:", S,"should be zero!"]);
- return;
- }
- return
- x*(x-1)*(x-P)*dx^2
- + (X[2]*(x-1)*(x-P)+X[3]*x*(x-P)+X[4]*x*(x-1))*dx
- + X[0]*X[1]*(x-R);
-}
-
-def fspt(M,T)
-{
- if(type(M)==7) M=s2sp(M);
- if(T == 3) /* 3: cut 0 */
- return cutgrs(M);
- if(T == 4 || T== 5){ /* 4: short 5: long */
- for(MN = [] ; M != []; M = cdr(M)){
- MT = car(M);
- for(MNT = []; MT != []; MT = cdr(MT)){
- if(type(car(MT)) <= 3){
- if(T == 4) MNT = cons(car(MT),MNT);
- else MNT = cons([1,car(MT)],MNT);
- }else{
- if(T == 5 || car(MT)[0] > 1) MNT = cons(car(MT),MNT);
- else if(car(MT)[0] == 1) MNT = cons(car(MT)[1],MNT);
- }
- }
- MN = cons(reverse(MNT), MN);
- }
- return reverse(MN);
- }
- if(type(M[0][0]) == 4){
- for(MN = [] ; M != []; M = cdr(M)){
- MT = car(M);
- for(MNT = []; MT != []; MT = cdr(MT))
- MNT = cons(car(MT)[0], MNT);
- MN = cons(reverse(MNT), MN);
- }
- return fspt(reverse(MN),T);
- }
- if(T == 0) /* 0: sp */
- return M;
- for(MN = [] ; M != []; M = cdr(M)){
- MT = qsort(ltov(car(M)));
- L = length(MT);
- for(MNT = [], I = 0; I < L; I++)
- MNT = cons(MT[I], MNT);
- MN = cons(MNT, MN);
- }
- MN = reverse(MN);
- if(T==6) return MN; /* 7: sort */
- L = length(MN);
- for(M = MN; M != []; M = cdr(M)){
- for(I = 0, MT = car(M); MT != []; MT = cdr(MT))
- I += car(MT);
- if(OD == 0)
- OD = I;
- else if(OD != I || OD == 0)
- return 0;
- }
- ALL = [MN];
- RD=[];
- while(OD > 0){
- for(S = 0, MT = MN; MT != []; MT = cdr(MT))
- S += car(MT)[0];
- S -= (L-2)*OD;
- if(S <= 0){
- if(T==7) return [ALL[0],ALL[length(ALL)-1],RD];
- return (T==1)?MN:ALL;
- }
- RD=cons([S,0,0],RD);
- for(NP=0, M = [], MT = MN; MT != []; NP++, MT = cdr(MT)){
- MTT = car(MT);
- I = MTT[0] - S;
- if(I < 0){
- if(I+OD!=0) return 0;
- if(T==7) return [ALL[0],ALL[length(ALL)-1],cdr(RD)];
- return (T==1)?MN:ALL;
- }
- MTT = cdr(MTT);
- NC=1; DO=0;
- for(MNT = []; MTT != []; MTT = cdr(MTT)){
- if(MTT[0] > I){
- if(DO==0) RD=cons([MTT[0]-I,NP,NC++],RD);
- MNT = cons(MTT[0], MNT);
- }
- else if(MTT[0] <= I && I != 0){
- DO=1;
- MNT = cons(I, MNT);
- I = 0;
- if(MTT[0] > 0)
- MNT = cons(MTT[0], MNT);
- }
- }
- if(I > 0)
- MNT = cons(I,MNT);
- M = cons(reverse(MNT), M);
- }
- MN = reverse(M);
- ALL = cons(MN,ALL);
- OD -= S;
- }
-}
-
-def abs(X)
-{
- if(vars(X)!=[]) return todf(os_md.abs,[X]);
- if(type(X)==4){
- P=X[1];X=X[0];
- }else P=0;
- if(type(X)==1){
- if((T=ntype(X))<2 || T==3){
- if(X<0) X=-X;
- }else if(T==4) X=P?pari(abs,X,P):pari(abs,X);
- }
- return X;
-}
-
-def sgn(X)
-{
- if(X==0) return 0;
- if(type(X)==1){
- return (X>0)?1:-1;
- }
- if(type(X)==5) X=vtol(X);
- if(type(X)==4){
- for(W=0,Y=X;Y!=[];Y=cdr(Y))
- for(Z=cdr(Y);Z!=[];Z=cdr(Z))
- if(car(Y)>car(Z)) W++;
- if(getopt(val)==1) return W;
- return (iand(W,1))?-1:1;
- }
-}
-
-def calc(X,L)
-{
- if(type(X)<4||type(X)==7){
- if(type(L)==4||type(L)==7){
- V=L[1];
- if(type(X)!=7){
- if((L0=L[0])=="+") X+=V;
- else if(L0=="-") X-=V;
- else if(L0=="*") X*=V;
- else if(L0=="/") X/=V;
- else if(L0=="^") X^=V;
- }
- if((L0=L[0])==">") X=(X>V);
- else if(L0=="<") X=(X<V);
- else if(L0=="=") X=(X==V);
- else if(L0==">=") X=(X>=V);
- else if(L0=="<=") X=(X<=V);
- else if(L0=="!=") X=(X!=V);
- }else if(type(L)==7&&type(X)<4){
- if(L=="neg") X=-X;
- else if(L=="abs") X=abs(X);
- else if(L=="neg") X=-X;
- else if(L=="sqr") X*=X;
- else if(L=="inv") X=1/X;
- else if(L=="sgn"){
- if(X>0)X=1;
- else if(X<0) X=-1;
- }
- }
- }
- return X;
-}
-
-def isint(X)
-{
- if(X==0||(type(X)==1 && ntype(X)==0 && dn(X)==1)) return 1;
- return 0;
-}
-
-def israt(X)
-{
- if(X==0||(type(X)==1 && ntype(X)==0)) return 1;
- return 0;
-}
-
-def iscrat(X)
-{
- if(X==0 || (type(X)==1 && israt(real(X)) && israt(imag(X)))) return 1;
- return 0;
-}
-
-def isalpha(X)
-{
- return ((X>64&&X<91)||(X>96&&X<123))?1:0;
-}
-
-def isnum(X)
-{
- return (X>47&&X<58)?1:0;
-}
-
-def isalphanum(X)
-{
- return (isalpha(X)||isnum(X))?1:0;
-}
-
-def isdecimal(X)
-{
- if(type(X)!=7) return 0;
- F=S=0;
- L=strtoascii(X);
- while(L!=[]&&car(L)==32) L=cdr(L);
- if(L!=[]&&car(L)==45) L=cdr(L); /* - */
- while(L!=[]&&isnum(car(L))){
- F=1; L=cdr(L);
- }
- while(L!=[]&&car(L)<33){
- S=1;L=cdr(L);
- }
- if(L==[]) return F;
- else if(S||car(L)!=46) return 0; /* . */
- L=cdr(L);F=0;
- while(L!=[]&&isnum(car(L))){
- F=1; L=cdr(L);
- }
- while(L!=[]&&car(L)<33) L=cdr(L);
- return (L==[])?F:0;
-}
-
-def isvar(X)
-{
- return ([X]==vars(X)&&vtype(X)<3)?1:0;
-}
-
-def isyes(F)
-{
- if((CC=getopt(set))==1){
- IsYes=(type(F[0])==4)?F:[F];
- return 1;
- }else if(CC==0) return(IsYes);
- if(type(CC)!=7)
- CC=IsYes;
- for(;CC!=[]; CC=cdr(CC)){
- C=car(CC);
- V=call(C[0],cons(F,C[1]));
- if(type(C[2])!=4){
- if(V!=C[2]) break;
- }else{
- if(C[2][0]!="" && V<C[2][0]) break;
- if(C[2][1]!="" && V>C[2][1]) break;
- }
- }
- return (CC==[])?1:0;
-}
-
-def isall(FN,M)
-{
- if(type(M)<4 || type(M)>6) return ((*FN)(M)==0)?0:1;
- if(type(M)==4){
- for(;M!=[];M=cdr(M))
- if((*FN)(car(M))==0) return 0;
- }else if(type(M)==5){
- K=length(M);
- for(I=0;I<K;I++)
- if((*FN)(M[I])==0) return 0;
- }else if(type(M)==6){
- K=size(M)[0];
- for(I=0;I<K;I++)
- if (isall(FN,M[I])==0) return 0;
- }
- return 1;
-}
-
-def sproot(MP,T)
-{
- if((I=str_chr(T,0,","))>0){
- if(type(MP)==7) M=s2sp(MP);
- else M=chkspt(MP|opt=0);
- if(I==length(M[0])){
- N=s2sp(T);S=SM=SN=K=0;
- for(MM=M,NN=N;MM!=[];MM=cdr(MM),NN=cdr(NN),K++){
- for(MT=car(MM),NT=car(NN);MT!=[];MT=cdr(MT),NT=cdr(NT)){
- S+=car(MT)*car(NT);
- if(K==0){
- SM+=car(MT);SN+=car(NT);
- }
- }
- }
- return S-(length(M)-2)*SM*SN;
- }
- }
- MM=chkspt(MP|opt=7);
- if(T=="base") return MM;
- Keep=(getopt(keep)==1)?1:0;
- Null=getopt(null);
- Only=getopt(only);
- if(type(Only)!=1) Only=7;
- M0=MM[0];
- M1=MM[1];
- M=MM[2];
- if(T=="length") return length(M);
- if(T=="height"){
- for(J=2,S=M1[0][0],M2=M1; M2!=[]; M2=cdr(M2)){
- for(MT=cdr(car(M2)); MT!=[]; J++, MT=cdr(MT)){
- S+= J*car(MT);
- }
- J=1;
- }
- return S;
- }
- for(OD=0, MT=M1[0]; MT!=[]; MT=cdr(MT)) OD+=car(MT);
- if(T=="type"){
- R=newvect(OD+1);
- for(MT=M; MT!=[]; MT=cdr(MT)) R[MT[0][0]]++;
- for(RR=[],I=OD; I>0; I--)
- if(R[I]>0) RR=cons([R[I],I],RR);
- return RR;
- }
- if(T=="part"||T=="pair"||T=="pairs"){
- NP=length(M1);
- LM=newvect(NP);
- R=newvect(length(M));
- for(K=0; K<NP; K++) LM[K]=length(M1[K]);
- for(I=0,TM=M; TM!=[]; I++, TM=cdr(TM)){
- V=newvect(NP);
- for(K=0; K<NP; K++) V[K]=newvect(LM[K]);
- TP=car(TM);
- if(TP[2]==0){
- for(K=0;K<NP;K++) V[K][0]=1;
- for(J=0; J<I; J++){
- VJ=R[J][1];
- for(S=K=0;K<NP;K++) S+=VJ[K][0];
- for(OD=0,K=0;K<LM[0];K++) OD+=VJ[0][K];
- S-=(NP-2)*OD;
- for(K=0;K<NP;K++) VJ[K][0]-=S;
- }
- }else{
- K=TP[1]; P=TP[2];
- V[K][P-1]=-1; V[K][P]=1;
- for(J=0; J<I; J++){
- VJ=R[J][1];
- S=VJ[K][P]; VJ[K][P]=VJ[K][P-1]; VJ[K][P-1]=S;
- }
- }
- R[I]=[TP[0],V];
- }
- if(T=="pair"||T=="pairs"){
- MV=ltov(M1);
- for(K=0; K<NP; K++) MV[K] = ltov(MV[K]);
- for(RR=UU=SS=[],I=0; I<length(M); I++){
- V=newvect(NP); W=newvect(NP); U=newvect(NP);
- for(K=0; K<NP; K++){
- U[K]=newvect(LM[K]); V[K]=newvect(LM[K]); W[K]=newvect(LM[K]);
- }
- S=R[I][0];
- for(K=0; K<NP; K++){
- for(Q=J=0; J<LM[K]; J++){
- V[K][J] = S*(U[K][J] = R[I][1][K][J]);
- Q+=(W[K][J] = MV[K][J] - V[K][J]);
- }
- }
- if(Q>0 && iand(Only,1)==0) continue;
- if(Q==0 && iand(Only,2)==0) continue;
- if(Q<0 && iand(Only,4)==0) continue;
- for(K=0; K<NP; K++){
- V[K] = vtol(V[K]); W[K] = vtol(W[K]); U[K]=vtol(U[K]);
- }
- V=vtol(V); W=vtol(W);U=vtol(U);
- if(Q<0) S=-S;
- RR = cons([V,W], RR); UU = cons(U,UU); SS=cons(S,SS);
- }
- RR = reverse(RR); UU=reverse(UU); SS=reverse(SS);
- if(getopt(dviout)==1 && (Null!=1 || RR!=[])){
- Out=string_to_tb("\\begin{align}\\begin{split}"+s2sp(M1)+"&=");
- for(I=0,R=RR, U=UU; R!=[]; I++, R=cdr(R), U=cdr(U)){
- if(I>0) str_tb("\\\\\n &=",Out);
- if(T=="pairs"){
- if((S=SS[I])<0) S=-S;
- if(S>1) str_tb([my_tex_form(S),"("],Out);
- str_tb(s2sp(car(U)),Out);
- if(S>1) str_tb(")",Out);
- str_tb(" \\oplus ",Out);
- if(SS[I]<0){
-#ifdef USEMODULE
- str_tb(["-(",s2sp(mtransbys(os_md.abs,car(R)[1],[])),")"],Out);
-#else
- str_tb(["-(",s2sp(mtransbys(abs,car(R)[1],[])),")"],Out);
-#endif
- }else
- str_tb(s2sp(car(R)[1]),Out);
- }else
- str_tb([s2sp(car(R)[0])," \\oplus ",s2sp(car(R)[1])],Out);
- }
- str_tb("\n\\end{split}\\end{align}",Out);
- dviout(str_tb(0,Out)|keep=Keep);
- }
- return RR;
- }
- for(I=0; I<length(M); I++){
- for(K=0; K<NP; K++) R[I][1][K] = vtol(R[I][1][K]);
- R[I] = [R[I][0],vtol(R[I][1])];
- }
- R = vtol(R);
- return [M0,M1,R];
- }
-}
-
-def spgen(MO)
-{
- Eq=(getopt(eq)==1)?1:0;
- Sp=getopt(sp);
- if(type(Sp)==7) Sp=s2sp(Sp);
- St=getopt(str);
- LP=getopt(pt);
- F=getopt(std);
- if(F!=1&&F!=-1) F=0;
- if(type(LP)==4){
- L0=LP[0]; L1=LP[1];
- }else{
- L0=0; L1=MO+1;
- }
- if(MO<=0){
- MO=-MO;
- if(iand(MO,1)==1) return [];
- if(MO>1){
- if(isMs()==0) return [];
- Cmd="okubo "+rtostr(-MO);
- MO/=2;
- if(L1>0) Cmd=Cmd+"+"+rtostr(L0)+"-"+rtostr(L1);
- else L1=MO+4;
- Cmd=Cmd+" B";
- Id=getbyshell(Cmd);
- if(Id<0) return [];
- B=[];
- while((S=get_line(Id)) !=0){
- P0=str_chr(S,1,":")+1;
- if(P0>1){
- P1=str_chr(S,P,"\n");
- if(P1<0) P1=str_len(S);
- B=cons(sub_str(S,P0,P1-1),B);
- }
- }
- close_file(Id);
- }else{
- MO/=2;
- if(L1<=1) L1=MO+4;
-BB=[
-["11,11,11,11","111,111,111","1^4,1^4,22","1^6,222,33"],
-["11,11,11,11,11","1^4,1^4,211","211,22,22,22","1^6,2211,33",
-"2211,222,222","22211,2^4,44","2^511,444,66","1^4,22,22,31",
-"2^5,3331,55","1^5,1^5,32","1^8,332,44","111,111,21,21","1^5,221,221"],
-["11,11,11,11,11,11","1^4,1^4,1^4","1^4,22,22,22","111,111,111,21",
-"1^6,21^4,33","21^4,222,222","221^4,2^4,44","2^41^4,444,66",
-"1^5,1^5,311","1^8,3311,44","1^6,222,321","321,33,33,33",
-"3321,333,333","33321,3^4,66","3^721,666,99","2^5,3322,55",
-"1^6,1^6,42","222,33,33,42","1^a,442,55","1^6,33,33,51",
-"222,222,33,51","1^9,333,54","2^7,554,77","1^5,2111,221",
-"2^41,333,441","1^7,2221,43","211,211,22,22","2211,2211,222",
-"22211,22211,44","1^4,211,22,31","2^411,3331,55","1^4,1^4,31,31",
-"22,22,22,31,31","1^7,331,331","2221,2221,331","111,21,21,21,21"],
-["11,11,11,11,11,11,11","111,111,111,111","1^6,1^6,33",
-"1^6,222,222","222,33,33,33","1^5,1^5,221",
-"1^4,211,22,22","1^4,1^4,22,31","22,22,22,22,31",
-"111,111,21,21,21","21^6,2^4,44","2221^6,444,66",
-"1^6,222,3111","3111,33,33,33","33111,333,333",
-"333111,3^4,66","3^5111,666,99","2^5,33211,55",
-"1^8,3221,44","3222,333,333","33222,3^4,66",
-"3^4222,666,99","1^6,1^6,411","222,33,33,411",
-"1^a,4411,55","2^4,2^4,431","431,44,44,44",
-"2^6,4431,66","4431,444,444","44431,4^4,88",
-"4^531,888,cc","1^a,433,55","1^7,1^7,52",
-"1^c,552,66","3^4,444,552","1^8,2^4,53",
-"1^8,44,44,71","3^5,555,771","21^4,2211,222",
-"221^4,22211,44","2221^4,3331,55","1^6,2211,321",
-"2^411,3322,55","1^7,322,331","2211,33,33,42",
-"3^42,4442,77","2211,222,33,51","3^51,5551,88",
-"2^611,554,77","2221,2221,322","2^41,2^41,54",
-"1^5,2111,2111","222111,333,441","1^7,22111,43",
-"1^5,1^5,41,41","1^9,441,441","22111,2221,331",
-"1^5,221,32,41","221,221,221,41","211,211,211,22",
-"2211,2211,2211","1^4,211,211,31","211,22,22,31,31",
-"1^4,22,31,31,31","1^5,32,32,32","221,221,32,32","21,21,21,21,21,21"],
-["11,11,11,11,11,11,11,11","1^4,1^4,22,22","1^8,2^4,44",
-"1^6,2211,222","2211,33,33,33","111,111,111,21,21",
-"1^5,1^5,2111","1^4,211,211,22","1^4,1^4,211,31",
-"211,22,22,22,31","1^4,22,22,31,31","111,21,21,21,21,21",
-"221^8,444,66","2^5,331^4,55","1^8,32111,44",
-"32211,333,333","332211,3^4,66","3^42211,666,99",
-"2^5,32221,55","1^7,1^7,511","1^c,5511,66",
-"3^4,444,5511","541,55,55,55","5541,555,555",
-"55541,5^4,aa","5^541,aaa,ff","1^8,1^8,62",
-"1^a1^4,662,77","1^a,55,55,91","2^71,555,87",
-"21^6,22211,44","221^6,3331,55","1^6,2211,3111",
-"2^411,33211,55","1^7,3211,331","2211,33,33,411",
-"3^42,44411,77","22211,2^4,431","2^511,4431,66",
-"1^8,332,431","3^42,4433,77","1^8,22211,53",
-"2221,2221,3211","221^5,333,441","1^7,21^5,43",
-"1^b,443,65","21^5,2221,331","2^51,3332,65",
-"21^4,21^4,222","221^4,221^4,44","1^6,21^4,321",
-"2221^4,3322,55","21^4,33,33,42","21^4,222,33,51",
-"2^51^4,554,77","2^4,3311,3311","3^411,4442,77",
-"321,321,33,33","3321,3321,333","33321,33321,66",
-"222,321,33,42","1^6,321,33,51","222,222,321,51",
-"1^9,3321,54","1^7,322,322","3^422,5551,88",
-"1^6,33,42,42","1^6,222,42,51","33,33,33,42,51",
-"1^6,1^6,51,51","222,33,33,51,51","1^b,551,551",
-"1^5,221,311,41","2^41,3321,441","22111,2221,322",
-"2^51,443,551","222111,2^41,54","21^4,2211,2211",
-"1^5,311,32,32","3331,3331,442","2211,2211,33,51",
-"221,221,311,32","22111,22111,331","1^5,2111,32,41",
-"2111,221,221,41","2111,221,32,32","211,211,211,211",
-"211,211,22,31,31","1^4,211,31,31,31","22,22,31,31,31,31"],
-["11,11,11,11,11,11,11,11,11","1^5,1^5,1^5","2^5,2^5,55",
-"111,111,111,111,21","2^41,333,333","1^4,1^4,211,22",
-"211,22,22,22,22","1^8,22211,44","1^4,1^4,1^4,31",
-"1^4,22,22,22,31","1^7,1^7,43","1^7,2221,331",
-"2221,2221,2221","1^6,21^4,222","21^4,33,33,33",
-"1^6,1^6,321","222,321,33,33","1^6,33,33,42",
-"222,222,33,42","1^6,222,33,51","222,222,222,51",
-"33,33,33,33,51","1^6,2211,2211","111,111,21,21,21,21",
-"1^5,1^5,32,41","1^5,221,221,41","1^5,221,32,32",
-"221,221,221,32","1^4,211,211,211","211,211,22,22,31",
-"1^4,211,22,31,31","1^4,1^4,31,31,31","22,22,22,31,31,31",
-"21,21,21,21,21,21,21","21^a,444,66","1^8,31^5,44",
-"321^4,333,333","3321^4,3^4,66","3^421^4,666,99",
-"2^5,322111,55","32^41,3^4,66","3332^41,666,99",
-"1^8,1^8,611","2^4,44,44,611","1^d,6611,77",
-"4^5,66611,aa","2^6,444,651","3^4,3^4,651",
-"651,66,66,66","3^6,6651,99","6651,666,666",
-"66651,6^4,cc","6^551,ccc,ii","2^8,655,88",
-"1^9,1^9,72","1^g,772,88","1^c,444,75",
-"2^6,3^4,75","1^c,66,66,b1","3^4,444,66,b1",
-"3^7,777,ba","1^7,2221,4111","2^41,333,4311",
-"1^9,2^41,63","21^8,3331,55","2^411,331^4,55",
-"1^7,31^4,331","2^411,32221,55","22211,2^4,422",
-"2^511,4422,66","1^8,332,422","2^5,3331,541",
-"22211,44,44,62","2^411,2^5,64","2^711,664,88",
-"1^a,3331,64","2221,2221,31^4","21^7,333,441",
-"333,333,441,81","2^6111,555,87","21^6,221^4,44",
-"221^6,3322,55","2^41^6,554,77","1^6,21^4,3111",
-"3111,321,33,33","33111,3321,333","333111,33321,66",
-"222,3111,33,42","1^6,3111,33,51","222,222,3111,51",
-"1^9,33111,54","2221^4,33211,55","1^7,3211,322",
-"3^4211,5551,88","2^4,3221,3311","333221,4442,77",
-"3222,3321,333","33222,33321,66","1^9,3222,54",
-"21^4,33,33,411","3^411,44411,77","222,321,33,411",
-"1^6,33,411,42","1^6,222,411,51","33,33,33,411,51",
-"221^4,2^4,431","2^41^4,4431,66","1^8,3311,431",
-"3^411,4433,77","33321,444,552","1^8,221^4,53",
-"3311,44,44,53","4^42,5553,99","2^4,3311,44,71",
-"3^421,555,771","4^52,7771,bb","3^611,776,aa",
-"2^41,33111,441","22111,2221,3211","2^41,3222,441",
-"2^61,4441,76","3331,3331,4411","22211,22211,431",
-"3331,3331,433","3^41,3^41,76","1^7,1^7,61,61",
-"1^d,661,661","21^5,2221,322","221^5,2^41,54",
-"2^51,33311,65","21^5,22111,331","3^41,4441,661",
-"1^7,331,43,61","2221,2221,43,61","2221,331,331,61",
-"21^4,21^4,2211","21^4,2211,33,51","22211,3311,3311",
-"1^5,311,311,32","2211,321,33,42","2211,222,321,51",
-"3322,3331,442","2211,222,42,42","2^411,442,442",
-"1^6,2211,42,51","2211,33,33,51,51","221,221,311,311",
-"1^5,2111,311,41","222111,3321,441","22111,22111,322",
-"222111,222111,54","2111,221,311,32","2111,2111,221,41",
-"1^5,221,41,41,41","2221,43,43,43","1^5,32,32,41,41",
-"331,331,43,43","221,221,32,41,41","221,32,32,32,41",
-"211,211,211,31,31","211,22,31,31,31,31","1^4,31,31,31,31,31"]];
- B=BB[MO];
- }
- if(St!=1){
- for(R=[]; B!=[]; B=cdr(B)){
- RT=F?s2sp(car(B)|std=F):s2sp(car(B));
- if(length(RT)<L0 || length(RT)>L1) continue;
- R=cons(RT,R);
- }
- return reverse(R);
- }else{
- if(L0<=3 && L1>=MO+4) return B;
- for(R=[]; B!=[]; B=cdr(B)){
- RT=s2sp(T=car(B));
- if(length(RT)<L0 || length(RT)>L1) continue;
- if(F) T=s2sp(s2sp(T|std=K));
- R=cons(T,R);
- }
- return reverse(R);
- }
- }
- MP=(L1<MO+1)?L1:MO+1;
- LL=newvect(MO+1);
- R=newvect(MP+2);
- R0=newvect(MP+2);
- for(I=1; I<=MO; I++) LL[I]=[];
- if(type(Sp)==4){
- if(getopt(basic)==1) Sp=chkspt(Sp[6]);
- R=chkspt(Sp);
- if(R[1]>MO) return 0;
- LL[R[1]]=R;
- K=R[1];
- }
- if(K==1||type(Sp)!=4){
- LL[1]=[[[1]]];
- for(I=2; I<=MO && I<MP;I++){
- for(T=[], J=0; J<I+1; J++)
- T=cons([I-1,1],T);
- LL[I]=cons(T,LL[I]);
- }
- K=2;
- }
- for(OD=K; OD<MO; OD++){
- for(LT=LL[OD]; LT!=[]; LT=cdr(LT)){
- for(II=0,L=car(LT); L!=[]; II++, L=cdr(L)){
- R0[II]=R[II]=car(L);
- }
- for(; ;){
- for(S=-2*OD, I=0; I<II; I++){
- S += OD;
- if(R[I]!=[]) S-=car(R[I]);
- }
- --I;
- for(;S+OD<=MO && I<=MP;S+=OD,I++){
- if(S<=0) continue;
- for(J=0;J<=I;J++){
- if(J>=II){
- if(S<OD) break;
- }else
- if(S+((R[J]==[])?0:car(R[J]))<car(R0[J])) break;
- }
- if(--J>=I){
- V=newvect(I);
- RRR=[];
- for(;J>=0;J--){
- if(J>=II) RR=[OD,S];
- else{
- K=length(R[J]);
- RR=[S+((K==0)?0:car(R[J]))];
- K=length(R0[J])-K;
- for(RT=R0[J]; RT!=[]; K--,RT=cdr(RT)){
- if(K!=0) RR=cons(car(RT),RR);
- }
- }
- RRR=cons(reverse(RR),RRR);
- }
- RRR=qsort(reverse(RRR));
- if(findin(RRR,LL[S+OD])<0)
- LL[S+OD]=cons(RRR,LL[S+OD]);
- }
- }
- for(K=0; K<II; K++){
- if(R[K]!=[]){
- S=car(R[K]);
- while((R[K]=cdr(R[K]))!=[] && car(R[K])==S);
- break;
- }else R[K]=R0[K];
- }
- if(K>=II) break;
- }
- }
- }
- if(L0>0 || L1<MO+1 || St==1 || F){
- for(J=1; J<=MO; J++){
- for(RT=[],R=LL[J];R!=[];R=cdr(R)){
- L=length(T=car(R));
- if(L<L0 || L>L1) continue;
- if(F) T=s2sp(T|std=F);
- RT=cons((St==1)?s2sp(T):T,RT);
- }
- LL[J] = reverse(RT);
- }
- }
- if(Eq==1) return LL[MO];
- return LL;
-}
-
-def spType2(L)
-{
- C=0;R=[];
- for(LT=L;LT!=[];LT=cdr(LT)){
- D=-1;LP=car(LT);
- for(LPT=LP;LPT!=[];LPT=cdr(LPT)){
- if(D==-1) D=car(LPT);
- else D=igcd(D,car(LPT));
- if(D==1){
- C++;break;
- }
- }
- if(C==2) return 0;
- R=cons(D,R);
- }
- if(C==0) return L;
- if(C==1){
- for(K=length(R)-1;R[K]!=1;K--);
- D=-1;
- for(I=length(R)-1;I>=0;I--){
- if(I==K) continue;
- if(D==-1) D=R[I];
- else D=igcd(D,R[I]);
- if(D==1) return 0;
- }
- }
- return L;
-}
-
-
-/* ret [#points, order, idx, Fuchs, reduction order, reduction exponents, fund] */
-def chkspt(M)
-{
- Opt= getopt(opt);
- Mat= getopt(mat);
- if(type(M)==7) M=s2sp(M);
- if(type(Opt) >= 0){
- if(type(Opt) == 7)
- Opt = findin(Opt, ["sp","basic","construct","strip","short","long","sort","root"]);
- if(Opt < 0){
- erno(2);
- return 0;
- }
- return fspt(M,Opt);
- }
- MR = fspt(M,1);
- P = length(M);
- OD = -1;
- XM = newvect(P);
- Fu = 0;
- for( I = SM = SSM = 0; I < P; I++ ){
- LJ = length(M[I]);
- JM = JMV = 0;
- for(J = SM = 0; J < LJ; J++){
- MV = M[I][J];
- if(type(MV) == 4){
- Fu += MV[0]*MV[1];
- MV = MV[0];
- }
- if(MV > JMV){
- JM = J; JMV = MV;
- }
- SM += MV;
- SSM += MV^2;
- }
- if(OD < 0)
- OD = SM;
- else if(OD != SM){
- print("irregal partitions");
- return 0;
- }
- XM[I] = JM;
- }
- SSM -= (P-2)*OD^2;
- for(I = SM = JM = 0; I < P; I++){
- MV = M[I][XM[I]];
- if(type(MV) == 4){
- MV = MV[0]; JM = 1;
- }
- if(I == 0)
- SMM = MV;
- else if(SMM > MV)
- SMM = MV;
- SM += MV;
- }
- SM -= (P-2)*OD;
- if(SM > SMM && SM != 2*OD){
- print("not realizable");
- return -1;
- }
- if(JM==1 && Mat!=1)
- Fu -= OD - SSM/2;
- return [P, OD, SSM, Fu, SM, XM, MR];
-}
-
-def cterm(P)
-{
- V = getopt(var);
- if(type(V) != 4)
- V=vars(P);
- for(; V !=[]; V = cdr(V))
- P = mycoef(P,0,car(V));
- return P;
-}
-
-def terms(P,L)
-{
- Lv=getopt(level);
- if(type(Lv)!=1) Lv=0;
- V=car(L);L=cdr(L);
- for(R=[],D=mydeg(P,V);D>=0; D--){
- if((Q=mycoef(P,D,V))==0) continue;
- if(L!=[]){
- R0=terms(Q,L|level=Lv+1);
- for(;R0!=[];R0=cdr(R0)) R=cons(cons(D,car(R0)),R);
- }else R=cons([D],R);
- }
- if(Lv>0) return R;
- R=qsort(R);
- Rev = getopt(rev); Dic=getopt(dic);
- if(Dic==1 && Rev==1) R=reverse(R);
- for(R0=[];R!=[];R=cdr(R)){
- for(RT=car(R),S=0;RT!=[];RT=cdr(RT)) S+=car(RT);
- R0=cons(cons(S,car(R)),R0);
- }
- if(Dic==1) return R0;
- if(Rev==1){
- for(R=[];R0!=[];R0=cdr(R0)){
- T=car(R0);
- R=cons(cons(-car(T),cdr(T)),R);
- }
- R0=R;
- }
- R0=qsort(R0);
- if(Rev==1){
- for(R=[];R0!=[];R0=cdr(R0)){
- T=car(R0);
- R=cons(cons(-car(T),cdr(T)),R);
- }
- R0=R;
- }
- return (Rev==1)?R0:reverse(R0);
-}
-
-def polcut(P,N,L)
-{
- if(type(L)==2) L=[L];
- M=getopt(top);
- if(type(M)!=1) M=0;
- T=terms(P,L);
- for(S=0;T!=[];T=cdr(T)){
- LT=car(T);
- if(LT[0]<M || LT[0]>N) continue;
- for(PW=1,LT=cdr(LT),V=L,Q=P;LT!=[];LT=cdr(LT),V=cdr(V)){
- Q=mycoef(Q,car(LT),car(V));PW*=car(V)^car(LT);
- }
- S+=Q*PW;
- }
- return S;
-}
-
-def redgrs(M)
-{
- Mat = getopt(mat);
- if(Mat!=1) Mat=0;
- R = chkspt(M|mat=Mat);
- if(type(R) < 4)
- return -1;
- if(R[4] <= 0)
- return 1-R[4];
- if(R[4] == 2*R[1])
- return 0;
- V = newvect(R[0]);
- Type = type(M[0][0]);
- if(Type > 3){
- Mu = Mat-1;
- for(I = 0; I < R[0]; I++)
- Mu += M[I][R[5][I]][1];
- }
- for(I = 0; I < R[0]; I++){
- IR = R[5][I]; L = []; MI = M[I]; MIE=MI[IR];
- for(J = length(MI)-1; J >= 0; J--){
- if(Type <= 3){
- VM = MI[J];
- if(J == IR){
- VM -= R[4];
- if(VM < 0) return -1;
- }
- L = cons(VM, L);
- }else{
- VM = MI[J][0];
- if(J == IR){
- VM -= R[4];
- if(VM < 0)
- return -1;
- if(I == 0)
- EV = 1-Mat-Mu;
- else
- EV = 0;
- }else{
- if(I == 0)
- EV = MI[J][1] - M[0][R[5][0]][1] + 1-Mat; /* + MX - Mu; */
- else
- EV = MI[J][1] - MIE[1] + Mu;
- }
- L = cons([VM,EV], L);
-/*
- if(R[2] >= 2){ */ /* digid */
-/* P = dx^(R[1]);
- } */
- }
- }
- V[I] = L;
- }
- return [R[5], vtol(V)];
-}
-
-def cutgrs(A)
-{
- for(AL=[] ; A!=[]; A=cdr(A)){ /* AT: level 2 */
- for(ALT=[], AT=car(A); AT!=[]; AT=cdr(AT)){
- M = (type(car(AT)) < 4)?car(AT):car(AT)[0];
- if(M > 0)
- ALT = cons(car(AT), ALT); /* ALT: level 2 */
- }
- AL = cons(reverse(ALT), AL); /* AL: level 3 */
- }
- return reverse(AL);
-}
-
-def mcgrs(G, R)
-{
- NP = length(G);
- Mat = (getopt(mat)==1)?0:1;
- for(R = reverse(R) ; R != []; R = cdr(R)){
- GN = [];
- L = length(G)-1;
- RT = car(R);
- if(type(RT) == 4){
- RT = reverse(RT); S = 0;
- for(G = reverse(G); G != []; G = cdr(G), L--){
- AD = car(RT); RT = cdr(RT);
- if(L > 0)
- S += AD;
- else
- AD = -S;
- for(GTN = [], GT = reverse(car(G)); GT != []; GT = cdr(GT))
- GTN = cons([car(GT)[0],car(GT)[1]+AD], GTN);
- GN = cons(GTN, GN);
- }
- G = GN;
- continue;
- }
- VP = newvect(L+1); GV = ltov(G);
- for(I = S = OD = 0; I <= L; I++){
- RTT = (I==0)?(Mat-RT):0;
- VP[I] = -1;
- for(J = M = 0, GT = GV[I]; GT != []; GT = cdr(GT), J++){
- if(I == 0)
- OD += car(GT)[0];
- if(car(GT)[1] == RTT && car(GT)[0] > M){
- S += car(GT)[0]-M;
- VP[I] = J;
- }
- }
- S -= (L-1)*OD;
- for(GN = [] ; L >= 0; L--){
- GT = GV[L];
- RTT = (L==0)?(-RT):RT;
- FTN = (VP[L] >= 0 || S == 0)?[]:[-S,(L==0)?(Mat-RT):0];
- for(J = 0; GT != []; GT = cdr(GT), J++){
- if(J != VP[L]){
- GTN = cons([car(GT)[0],car(GT)[1]+RTT], GTN);
- continue;
- }
- K = car(GT)[0] - S;
- if(K < 0){
- print("Not realizable");
- return;
- }
- GTN = cons([K,(L==0)?(Mat-RT):0], GTN);
- }
- GN = cons(reverse(GTN), GN);
- }
- }
- G = cutgrs(GN);
- }
- return G;
-}
-
-/*
- F=0 : unify
- F=["add",S] :
- F=["sub",S] :
- F=["+",A,B] :
- F=["*",A,B] :
- F=["mul",K];
- F=["get",F,V] :
- F=["put",F,V] :
- F=["get1",F,V] :
- F=["put1",F,V] :
- F=["put1"] :
- F=["val",F];
- F=["swap"];
- */
-def anal2sp(R,F)
-{
- if(type(F)==4&&type(F[0])==4){ /* multiple commands */
- for(;F!=[];F=cdr(F)) R=anal2sp(R,car(F));
- return R;
- }
- if(type(F)==7) F=[F];
- if(F==0){ /* unify */
- R=ltov(R);
- L=length(R);
- for(J=1;J<L;J++){
- for(I=0;I<J;I++){
- if(cdr(R[I])==cdr(R[J])){
- R[I]=cons(R[I][0]+R[J][0],cdr(R[I]));
- R[J]=cons(0,cdr(R[J]));
- break;
- }
- }
- }
- for(G=[],I=L-1;I>=0;I--)
- if(R[I][0]!=0) G=cons(R[I],G);
- if(length(G[0])==2){ /* sort by multiplicity */
- R=ltov(G);
- L=length(R);
- for(I=1;I<L;I++){
- for(J=I;J>0;J--){
- if(R[J-1][0]>R[J][0]) break;
- if(R[J-1][0]==R[J][0]){
- S1=rtostr(R[J-1][1]);S2=rtostr(R[J][1]);
- if((K=str_len(S1)-str_len(S2))<0) break;
- if(!K&&S1<S2) break;
- }
- S=R[J-1];R[J-1]=R[J];R[J]=S;
- }
- }
- G=vtol(R);
- }
- return G;
- }
- if(F[0]=="add") return append(R,F[1]);
- R=reverse(R);
- if(F[0]=="sub"){
- for(S=F[1];S!=[];S=cdr(S))
- R=cons(cons(-car(S)[0],cdr(car(S))),R);
- return reverse(R);
- }
- if(F[0]=="swap"){
- for(G=[];R!=[];R=cdr(R))
- G=cons([car(R)[0],car(R)[2],car(R)[1]],G);
- return G;
- }
- if(F[0]=="+"){
- for(G=[];R!=[];R=cdr(R))
- G=cons([car(R)[0],car(R)[1]+F[1],car(R)[2]+F[2]],G);
- return G;
- }
- if(F[0]=="*"){
- for(G=[];R!=[];R=cdr(R))
- G=cons([car(R)[0],car(R)[1]*F[1]+car(R)[2]*F[2]],G);
- return G;
- }
- if(F[0]=="mult"){
- K=F[1];
- for(G=[];R!=[];R=cdr(R)) G=cons(cons(K*car(R)[0],cdr(car(R))),G);
- return G;
- }
- if(F[0]=="get"){
- for(G=[];R!=[];R=cdr(R))
- if(car(R)[F[1]]==F[2]) G=cons(car(R),G);
- return G;
- }
- if(F[0]=="put"){
- if(F[1]==1){
- for(G=[];R!=[];R=cdr(R)) G=cons([car(R)[0],F[2],car(R)[2]],G);
- }else{
- for(G=[];R!=[];R=cdr(R)) G=cons([car(R)[0],car(R)[1],F[2]],G);
- }
- return G;
- }
- if(F[0]=="get1"){
- if(length(F)==2){
- for(G=[];R!=[];R=cdr(R)) G=cons([R[0][0],car(R)[F[1]]],G);
- return G;
- }
- for(G=[];R!=[];R=cdr(R))
- if(car(R)[F[1]]==F[2]) G=cons([R[0][0],car(R)[3-F[1]]],G);
- return G;
- }
- if(F[0]=="put1"){
- if(length(F)==1)
- for(G=[];R!=[];R=cdr(R)) G=cons([car(R)[0],car(R)[1],car(R)[1]],G);
- else if(F[1]==1)
- for(G=[];R!=[];R=cdr(R)) G=cons([car(R)[0],F[2],car(R)[1]],G);
- else{
- for(G=[];R!=[];R=cdr(R)) G=cons([car(R)[0],car(R)[1],F[2]],G);
- }
- return G;
- }
- if(F[0]=="val"){
- V=(length(F)==1)?1:F[1];
- for(I=J=0;R!=[];R=cdr(R)){
- I+=car(R)[0];
- J+=car(R)[0]*car(R)[V];
- }
- return [I,J];
- }
- return 0;
-}
-
-/*
- G=0 get trivial common spct
- G="..,..," spectre type of 4 singular points
- P=["get"] all spct
- P=["get",L]
- L=n for variable x_n
- L=[m,n] for residue [m,n]
- L=[[m,n],[m',n']] for common spct
- P=["get0",[m,n],[m',n']] for the sum of residues
- P=["swap",[m,n]] for symmetry
- P=["perm",[...]] for symmetry
- P=["deg"]
- P=["homog"]
- P=["sort"]
- P=[[[m,n],c],...] for addition
- P=[c] or [[c],...] for middle convolution wrt 0
- P=[m,c] or [[m,c],...] for general middle convolution
- P=[[a,b,c]] for special additions
- P=[[d,a,b,c]] for middle convotution and additions
- P=["multi",...] multiple commands
- P=0,1,3 : return sim. spectre of 4 singular points
-*/
-def mc2grs(G,P)
-{
- if(G==0){
- G=[];
- for(I=4;I>=0;I--){
- V=lsort([0,1,2,3,4],[I],1);
- for(J=1;J<4;J++){
- for(T=[],K=3;K>0;K--)
- if(K!=J) T=cons(V[K],T);
- G=cons([[[V[0],V[J]],T],[1,0,0]],G);
- }
- }
- G=mc2grs(G,"sort");
- }else if(type(G)==7||(type(G)==4&&length(G)==4)){
- if(type(G)==7) G=s2sp(G);
- F=(getopt(top)==0)?1:0;
- K=[];
- if(type(P)==1&&iand(P,1)&&type(G[0][0])<4){
- G=s2sp(G|std=1);
- if(F) G=[G[1],G[2],G[3],G[0]];
- G=sp2grs(G,[d,c,b,a],[1,length(G[0]),-1]|mat=1);
- G=reverse(G);
- if(iand(P,3)==3){
- V=vars(G);
- for(H=L=[a,b,c,d];H!=[];H=cdr(H))
- if(findin(car(H),V)>=0) G=subst(G,car(H),makev([car(H),1]));
- G=shortv(G,[a,b,c,d]);
- V=vars(G);
- for(H=G[3];H!=[];H=cdr(H)){
- T=car(H)[1];
- if(type(T)>1&&!isvar(T)){
- K=[car(H)[0],T];
- break;
- }
- }
- }
- F=1;
- }
- if(F) G=[G[3],G[0],G[1],G[2]];
- S=cons(["anal",1],getopt());
- if(!(R=m2mc(G,0|option_list=S))) return R;
- for(G=0,R=cdr(R);R!=[];R=cdr(R)){
- TR=car(R)[0];
- if(TR[0]) G=mc2grs(G,[[TR[0]]]);
- G=mc2grs(G,[cdr(TR)]);
- }
- if(type(P)==1&&K!=[]){
- for(T=10;T<36;T++){
- if(findin(X=makev([T]),V)>=0) continue;
- F=K[0]*(X-K[1]);
- return [F,simplify(G,[F],4)];
- }
- }
- }
- if(type(P)<2) return G;
- F=0;
- if(type(P)==7||(type(P)==4&&type(P[0])<4)) P=[P];
- if((Dvi=getopt(dviout))!=1&&Dvi!=2&&Dvi!=-1) Dvi=0;
- Keep=(Dvi==2)?1:0;
- if(type(P)==4&&type(F=car(P))==7){
- if(F=="mult"){
- for(P=cdr(P);P!=[];P=cdr(P)) G=mc2grs(G,car(P)|option_list=getopt());
- return G;
- }
- if(F=="show"){
- for(R=str_tb(0,0);G!=[];){
- L=car(G);
- I=L[0][0];J=L[0][1];
- str_tb("[A_{"+rtostr(I[0])+rtostr(I[1])+"}:A_{"+rtostr(J[0])+rtostr(J[1])
- +"}]&=\\left\\{",R);
- for(L=cdr(L);;){
- S=car(L);
- str_tb("["+my_tex_form(S[1])+":"+my_tex_form(S[2])+"]",R);
- if(S[0]!=1) str_tb("_{"+rtostr(S[0])+"}",R);
- if((L=cdr(L))==[]) break;
- str_tb(",\\,",R);
- }
- str_tb("\\right\\}",R);
- if((G=cdr(G))==[]) break;
- str_tb(",\\\\\n",R);
- }
- R=texbegin("align*",str_tb(0,R));
- if(Dvi!=-1) dviout(R|keep=Keep);
- return R;
- }
- if(F=="show0"){
- for(S="",L=[];G!=[];G=cdr(G)){
- for(TL=[],TG=cdr(car(G));TG!=[];TG=cdr(TG)) TL=cons(car(TG)[0],TL);
- TL=msort(TL,[-1,0]);
- if(Dvi){
- if(S!="") S=S+",";
- for(I=J=0,T=append(TL,[[0]]);T!=[];T=cdr(T)){
- if(car(T)==I) J++;
- else{
- if(I>0&&J>0){
- if(I>9) S=S+"("+rtostr(I)+")";
- else S=S+rtostr(I);
- if(J>1){
- if(J>9) S=S+"^{"+rtostr(J)+"}";
- else S=S+"^"+rtostr(J);
- }
- }
- I=car(T);J=1;
- }
- }
- }
- L=cons(TL,L);
- }
- if(Dvi){
- if(Dvi!=-1) dviout(S|eq=0);
- return S;
- }
- return reverse(L);
- }
- if(F=="sort"){
- G=ltov(G);L=length(G);
- for(I=0;I<L;I++){
- S=G[I][0];
- if(S[0][0]>S[0][1]) S=[[S[0][1],S[0][0]],S[1]];
- if(S[1][0]>S[1][1]) S=[S[0],[S[1][1],S[1][0]]];
- if(S[0]>S[1]){
- F=0;S=[S[1],S[0]];
- }
- if(S!=G[I][0]){
- if(F==0) G[I]=cons(S,anal2sp(cdr(G[I]),"swap"));
- else G[I]=cons(S,cdr(G[I]));
- }
- for(J=I;J>0;J--){
- if(G[J-1][0]<G[J][0]) break;
- S=G[J-1];G[J-1]=G[J];G[J]=S;
- }
- }
- return vtol(G);
- }
- if(F=="get"||F=="get0"){
- if(Dvi!=0) F="get";
- if(length(P)==1||type(P[1])<2){
- L=[];
- if(length(P)==1){
- for(I=3;I>=0;I--){
- for(J=4;J>I;J--) L=cons(mc2grs(G,[F,[I,J]]),L);
- }
- }else{
- for(I=P[1],J=4;J>=0;J--){
- if(I==J) continue;
- L=cons(mc2grs(G,[F,(I<J)?[I,J]:[J,I]]),L);
- }
- }
- if(Dvi){
- if(length(L)==10){
- R=ltov(L);
- if(R[6][0]==[1,4]){
- S=R[6];R[6]=R[7];R[7]=S;
- L=vtol(R);
- }
- }
- for(R=S=[],L=reverse(L);L!=[];L=cdr(L)){
- T=car(L);
- R=cons(cdr(T),R);
- if(S==[]) S="A_{"+rtostr(T[0][0])+rtostr(T[0][1])+"}\\\\\n";
- else S="A_{"+rtostr(T[0][0])+rtostr(T[0][1])+"}&"+S;
- }
- L=ltotex(R|opt="GRS",pre=S);
- if(Dvi>0) dviout(L|eq=0,keep=Keep);
- }
- return L; /* get all spct */
- }
- if(type(T=P[1])==4){
- if(F=="get0"&&length(P)==3&&type(I=P[1])==4&&type(J=P[2])==4){
- if(I[0]>I[1]) I=[I[1],I[0]];
- if(J[0]>J[1]) J=[J[1],J[0]];
- if(I[0]>I[0]){S=I;I=J;J=S;};
- K=lsort(I,J,0);
- if(length(K)==4){
- S=sp2grs(G,["get0",[I,J]]);
- return anal2sp(S,[["*",1,1],0]);
- }
- I=lsort(K,lsort(I,J,2),1);
- S=lsort([0,1,2,3,4],K,1);
- D=sp2grs(G,"deg");
- if(findin(4,S)<0) D=-D;
- J=sp2grs(G,["get0",[I,S]]);
- if(I[0]>S[0]) J=sp2grs(J,"swap");
- return anal2sp(J,[["+",0,D],["*",-1,1]]);
- }
- if(type(car(T))==4){
- if(T[0][0]>T[0][1]) T=[[T[0][1],T[0][0]],T[1]];
- if(T[1][0]>T[1][1]) T=[T[0],[T[1][1],T[1][0]]];
- if(T[0][0]>T[1][0]) T=[T[1],T[0]];
- for(PG=G;PG!=[];PG=cdr(PG))
- if(car(PG)[0]==T) return (F=="get")?car(PG):cdr(car(PG));
- return []; /* get common spct */
- }
- if(T[0]>T[1]) T=[T[1],T[0]];
- for(FT=0,PG=G;PG!=[];PG=cdr(PG)){
- if(car(PG)[0][0]==T){
- FT=1;break;
- }
- if(car(PG)[0][1]==T){
- FT=2;break;
- }
- }
- if(!FT) return [];
- L=anal2sp(cdr(car(PG)),[["get1",FT],0]);
- return (F=="get")?cons(T,L):L;
- }
- }
- if(F=="deg"){
- for(S=I=0;I<3;I++){
- for(J=I+1;J<4;J++){
- L=mc2grs(G,["get0",[I,J]]);
- L=anal2sp(L,"val");
- S+=L[1];
- }
- }
- return S/L[0];
- }
- if(F=="spct"){
- G=mc2grs(G,"get");
- M=newmat(5,5);
- for(;G!=[];G=cdr(G)){
- GT=car(G);I=GT[0][0];J=GT[0][1];
- for(S=0,L=[],GT=cdr(GT);GT!=[];GT=cdr(GT)){
- L=cons(car(GT)[0],L);
- }
- L=reverse(qsort(L));
- M[I][J]=M[J][I]=L;
- }
- for(D=0,GT=M[0][1];GT!=[];GT=cdr(GT)) D+=car(GT);
- for(I=0;I<5;I++){
- S=-2*D^2;
- for(J=0;J<5;J++){
- if(I==J) continue;
- for(L=M[I][J];L!=[];L=cdr(L)) S+=car(L)^2;
- }
- M[I][I]=S;
- }
- if(Dvi){
- S=[];
- for(I=4;I>=0;I--){
- L=[M[I][I]];
- for(J=4;J>=0;J--){
- if(I==J) L=cons("",L);
- else L=cons(s2sp([M[I][J]]),L);
- }
- S=cons(L,S);
- }
- S=cons([x0,x1,x2,x3,x4,"idx"],S);
- M=ltotex(S|opt="tab",hline=[0,1,z],vline=[0,1,z-1,z],left=["","$x_0$","$x_1$","$x_2$","$x_3$","$x_4$"]);
- if(Dvi>0) dviout(M|keep=Keep);
- }
- return M;
- }
- if(F=="swap"||F=="perm"){
- if(F=="perm") TR=P[1];
- else{
- TR=newvect(5,[0,1,2,3,4]);
- K=P[1][0];L=P[1][1];
- TR[K]=L;TR[L]=K;
- if(TR[4]!=4) G=mc2grs(G,"deg");
- }
- V=newvect(2);
- for(L=[],T=G;T!=[];T=cdr(T)){
- TP=car(T)[0];
- for(TQ=[],I=1;I>=0;I--){
- V=[TR[TP[I][0]],TR[TP[I][1]]];
- if(V[0]>V[1]) V=[V[1],V[0]];
- TQ=cons(V,TQ);
- }
- if(TQ[0][0]<TQ[1][0]){
- L=cons(cons(TQ,cdr(car(T))),L);
- continue;
- }
- TQ=[[TQ[1],TQ[0]]];
- for(TP=cdr(car(T));TP!=[];TP=cdr(TP))
- TQ=cons([car(TP)[0],car(TP)[2],car(TP)[1]],TQ);
- L=cons(reverse(TQ),L);
- }
- return mc2grs(L,"sort");
- }
- if(F=="homog"){
- V=mc2grs(G,"deg");
- return mc2grs(G,[[[2,3],-V]]);
- }else if(F=="deg"){
- R=mc2grs(G,4);
- for(V=0;R!=[];R++){
- for(TR=cdr(R);TR!=[];TR=cdr(TR))
- V+=car(TR)[0]*car(TR)[1];
- }
- return -V;
- }
- }
- if(type(F)!=4) return 0;
- if(type(P[0])!=4) P=[P];
- for(;P!=[];P=cdr(P)){
- if(type((S=P[0])[0])==4){ /* addition */
- T=P[0][0];
- if(T[0]>T[1]) T=[T[1],T[0]];
- T1=[T[0],4];T2=[T[1],4];
- for(L=[],PG=reverse(G);PG!=[];PG=cdr(PG)){
- R=car(PG);R0=R[0];F=0;K=P[0][1];
- if(R0[0]==T) F=1;
- else if(R0[1]==T) F=2;
- else if(getopt(unique)!=1){
- K=-K;
- if(R0[0]==T1||R0[0]==T2) F=1;
- else if(R0[1]==T1||R0[1]==T2) F=2;
- }
- if(F==0) L=cons(R,L);
- else{
- R1=anal2sp(cdr(R),(F==1)?["+",K,0]:["+",0,K]);
- L=cons(cons(R0,R1),L);
- }
- }
- G=L;
- }else if(type(S[0])<4){
- if(length(S)==1){ /* mc wrt0 4:cases */
- U=mc2grs(G,"deg");
- C=P[0][0];
- L=[];
- /* [[0,1],[2,3]] : [K=[0,k],J=[i,j]], S=[k,4] : 3 cases */
- for(K=1;K<4;K++){
- J=lsort([1,2,3],[K],1);
- K4=[K,4];K0=[0,K];
- G0=mc2grs(G,["get0",[K0,J]]);
- LT=anal2sp(G0,["+",C,0]);
- G0=mc2grs(G,["get0",J]);
- L0=anal2sp(G0,["put1",1,0]);
- LT=anal2sp(LT,["add",L0]);
- G0=mc2grs(G,["get0",K4]);
- L0=anal2sp(G0,[["put1",1,0],["+",0,U]]);
- LT=anal2sp(LT,["add",L0]);
- G0=mc2grs(G,["get0",[[0,J[0]],K4]]);
- L0=anal2sp(G0,[["get",1,0],["+",0,U]]);
- LT=anal2sp(LT,["sub",L0]);
- G0=mc2grs(G,["get0",[[0,J[1]],K4]]);
- L0=anal2sp(G0,[["get",1,0],["+",0,U]]);
- LT=anal2sp(LT,["sub",L0]);
- G0=mc2grs(G,["get0",[K0,J]]);
- L0=anal2sp(G0,[["get",1,0],["+",C,0]]);
- LT=anal2sp(LT,["sub",L0]);
- G0=mc2grs(G,["get0",[[0,4],J]]);
- L0=anal2sp(G0,[["+",-C,0],["get",1,0]]);
- LT=anal2sp(LT,[["sub",L0],0]);
- L=cons(cons([K0,J],LT),L);
- }
- /* [[0,1],[2,4]] : [K,I]=[[0,k],[i,4]] S=[j,k] : 6 cases */
- for(K=1;K<4;K++){
- for(I=1;I<4;I++){
- if(I==K) continue;
- for(J=1;J<4;J++) if(J!=I&&J!=K) break;
- I4=[I,4];S=(J<K)?[J,K]:[K,J];K0=[0,K];
- G0=cdr(mc2grs(G,["get",[K0,I4]]));
- LT=anal2sp(G0,["+",C,0]);
- G0=cdr(mc2grs(G,["get",I4]));
- L0=anal2sp(G0,["put1",1,0]);
- LT=anal2sp(LT,["add",L0]);
- G0=cdr(mc2grs(G,["get",S]));
- L0=anal2sp(G0,[["put1",1,0],["+",0,-C-U]]);
- LT=anal2sp(LT,["add",L0]);
-
- G0=cdr(mc2grs(G,["get",[[0,I],S]]));
- L0=anal2sp(G0,[["get",1,0],["+",0,-C-U]]);
- LT=anal2sp(LT,["sub",L0]);
- G0=cdr(mc2grs(G,["get",[[0,J],I4]]));
- L0=anal2sp(G0,["get",1,0]);
- LT=anal2sp(LT,["sub",L0]);
- G0=cdr(mc2grs(G,["get",[K0,I4]]));
- L0=anal2sp(G0,[["get",1,0],["+",C,0]]);
- LT=anal2sp(LT,["sub",L0]);
- G0=cdr(mc2grs(G,["get",[[0,4],S]]));
- L0=anal2sp(G0,[["get",1,C],["+",-C,-C-U]]);
- LT=anal2sp(LT,[["sub",L0],0]);
- L=cons(cons([K0,I4],LT),L);
- }
- }
- /* [[0,4],[2,3]] : [[0,4],J]=[[0,4],[i,j]] 3 cases */
- for(K=3;K>0;K--){
- J=lsort([1,2,3],[K],1);
- G0=mc2grs(G,["get0",[[0,4],J]]);
- LT=anal2sp(G0,["+",-C,0]);
- G0=mc2grs(G,["get0",J]);
- L0=anal2sp(G0,["put1",1,-C]);
- LT=anal2sp(LT,["add",L0]);
- G0=mc2grs(G,["get0",[K,4]]);
- L0=anal2sp(G0,[["put1",1,-C],["+",0,U]]);
- LT=anal2sp(LT,["add",L0]);
-
- G0=mc2grs(G,["get0",[[0,J[0]],[K,4]]]);
- L0=anal2sp(G0,[["get",1,0],["+",-C,U]]);
- LT=anal2sp(LT,["sub",L0]);
- G0=mc2grs(G,["get0",[[0,J[1]],[K,4]]]);
- L0=anal2sp(G0,[["get",1,0],["+",-C,U]]);
- LT=anal2sp(LT,["sub",L0]);
- G0=mc2grs(G,["get0",[[0,K],J]]);
- L0=anal2sp(G0,[["get",1,0],["+",-C,0]]);
- LT=anal2sp(LT,["sub",L0]);
- G0=mc2grs(G,["get0",[[0,4],J]]);
- L0=anal2sp(G0,[["get",1,C],["put",1,0]]);
- LT=anal2sp(LT,[["sub",L0],0]);
- L=cons(cons([[0,4],J],LT),L);
- }
- /* [[1,2],[3,4]] : [J,K]=[[i,j],[k,4]] 3 cases */
- for(K=3;K>0;K--){
- J=lsort([1,2,3],[K],1);
- if(K>1)
- LT=mc2grs(G,["get0",[J,[K,4]]]);
- else{
- LT=mc2grs(G,["get0",[[K,4],J]]);
- LT=anal2sp(LT,"swap");
- }
- G0=mc2grs(G,["get0",J]);
- L0=anal2sp(G0,[["put1"],["+",0,-C-U]]);
- LT=anal2sp(LT,["add",L0]);
- G0=mc2grs(G,["get0",[K,4]]);
- L0=anal2sp(G0,[["put1"],["+",U,0]]);
- LT=anal2sp(LT,["add",L0]);
-
- G0=mc2grs(G,["get0",[[0,J[0]],[K,4]]]);
- L0=anal2sp(G0,[["get1",1,0],["put1"],["+",U,0]]);
- LT=anal2sp(LT,["sub",L0]);
- G0=mc2grs(G,["get0",[[0,J[1]],[K,4]]]);
- L0=anal2sp(G0,[["get1",1,0],["put1"],["+",U,0]]);
- LT=anal2sp(LT,["sub",L0]);
- G0=mc2grs(G,["get0",[[0,K],J]]);
- L0=anal2sp(G0,[["get1",1,0],["put1"],["+",0,-C-U]]);
- LT=anal2sp(LT,["sub",L0]);
- G0=mc2grs(G,["get0",[[0,4],J]]);
- L0=anal2sp(G0,[["get1",1,C],["put1"],["+",0,-C-U]]);
- LT=anal2sp(LT,[["sub",L0],0]);
- if(K==1){
- LT=anal2sp(LT,"swap");
- L=cons(cons([[K,4],J],LT),L);
- }else L=cons(cons([J,[K,4]],LT),L);
- }
- G=L;
- }else if(length(S)==2){ /* general mc */
- if(S[1]!=0){
- I=S[0];
- if(I!=0) G=mc2grs(G,["swap",[0,I]]);
- G=mc2grs(G,[S[1]]);
- if(I!=0) G=mc2grs(G,["swap",[0,I]]);
- }
- }else if(length(S)==3||length(S)==4){ /* addition */
- for(I=1;I<4;I++,S=cdr(S))
- if(S[0]) G=mc2grs(G,[[[0,I],S[0]]]);
- if(length(S)==1 && S[0]) /* mc */
- G=mc2grs(G,[S[0]]);
- }
- }
- }
- return mc2grs(G,"sort");
-}
-
-def mcmgrs(G,P)
-{
- if(type(G)<2){
- if(G>1){
- N=G+2;G=[];
- for(I=1;I<=N;I++){
- for(J=1;J<N;J++){
- if(I==J) continue;
- for(K=J+1;K<=N;K++){
- if(I==K) continue;
- G=cons([[[0,I],[J,K]],[1,0,0]],G);
- }
- }
- }
- for(I=1;I<=N;I++){
- for(J=1;J<I;J++) G=cons([[[0,I],[0,J,I]],[1,0,0]],G);
- for(J=I+1;J<=N;J++) G=cons([[[0,I],[0,I,J]],[1,0,0]],G);
- }
- return reverse(G);
- }
- return 0;
- }
- if(type(G)==7) G=os_md.s2sp(G);
- if(type(G)!=4||type(G[0])!=4) return 0;
- if(type(G[0][0])!=4){ /* spectre type -> GRS */
- G=s2sp(G|std=1);
- L=length(G);
- for(V=[],I=L-2;I>=0;I--) V=cons(makev([I+10]),V);
- V=cons(makev([L+9]),V);
- G=sp2grs(G,V,[1,length(G[0]),-1]|mat=1);
- if(getopt(short)!=0){
- V=append(cdr(V),[V[0]]);
- G=shortv(G,V);
- }
- R=chkspt(G|mat=1);
- if(R[2] != 2 || R[3] != 0 || !(R=getbygrs(G,1|mat=1))) return 0;
- if(getopt(anal)==1) return R; /* called by mcmgrs() */
- if(!(G=mcmgrs(L-2,0))) return 0;
- for(R=cdr(R);R!=[];R=cdr(R)){
- TR=car(R)[0];
- if(TR[0]) G=mcmgrs(G,[[TR[0]]]);
- G=mcmgrs(G,[cdr(TR)]);
- }
- }
- L=length(G);
- for(N=4;N<25;N++){
- K=N^2*(N-1)/2;
- if(K>L) return 0;
- if(K==L) break;
- }
- if(type(P)<2) return G;
- F=0;
- if(type(P)==7||(type(P)==4&&type(P[0])<4)) P=[P];
- if((Dvi=getopt(dviout))!=1&&Dvi!=2&&Dvi!=-1) Dvi=0;
- Keep=(Dvi==2)?1:0;
- if(type(P)==4 && type(F=car(P))==7){
- if(F=="mult"){
- for(P=cdr(P);P!=[];P=cdr(P)) G=os_md.mc2grs(G,car(P)|option_list=getopt());
- return G;
- }
- if(F=="get"||F=="get0"){
- if(Dvi!=0) F="get";
- if(length(P)==2){
- if(type(P[1])==4){
- if(type(P[1][1])==4){ /* [[,],[,]] */
- for(PG=reverse(G);PG!=[];PG=cdr(PG)){
- TP=car(PG);
- if(TP[0]==P[1]) return (F=="get")?TP:cdr(TP);
- }
- return [];
- }
- if(P[1][0]==0){
- if(length(P[1])==2){ /* [0,] */
- for(J=1;J<=N;J++) if(J!=P[1][1]) break;
- for(K=J+1;K<=N;K++) if(K!=P[1][1]) break;
- L=mcmgrs(G,["get0",[P[1],[J,K]]]);
- L=anal2sp(L,["get1",1]);
- }else{ /* [0,*,*] */
- L=mcmgrs(G,["get0",[[P[1][0],P[1][1]],P[1]]]);
- L=anal2sp(L,["get1",2]);
- }
- }else{ /* [,] */
- for(J=1;J<=N;J++) if(J!=P[1][0]&&J!=P[1][1]) break;
- L=mcmgrs(G,["get0",[[0,J],P[1]]]);
- L=anal2sp(L,["get1",2]);
- }
- L=anal2sp(L,0);
- if(F=="get") L=cons(P[1],L);
- return L;
- }else{ /* I */
- for(L=[],I=P[1],J=0;J<=N;J++){
- if(I==J) continue;
- II=(I<J)?[I,J]:[J,I];
- L=cons(mcmgrs(G,[F,II]),L);
- }
- }
- }else{
- for(L=[],I=0;I<N;I++){
- for(J=I+1;J<=N;J++) L=cons(mcmgrs(G,[F,[I,J]]),L);
- }
- }
- if(Dvi){
- for(R=S=[];L!=[];L=cdr(L)){
- T=car(L);
- R=cons(cdr(T),R);
- if(S==[]) S="A_{"+rtostr(T[0][0])+rtostr(T[0][1])+"}\\\\\n";
- else S="A_{"+rtostr(T[0][0])+rtostr(T[0][1])+"}&"+S;
- }
- L=ltotex(R|opt="GRS",pre=S);
- if(type(V=getopt(div))!=4) V=[];
- if(V==[]&&(K=length(R))>10)
- for(I=9;I<K;I+=9) V=cons(I,V);
- V=reverse(V);
- if(V!=[]) L=divmattex(L,V);
- if(Dvi>0){
- if(V!=[]) dviout(L|keep=Keep);
- else dviout(L|eq=0,keep=Keep);
- }
- }else L=reverse(L);
- return L;
- }
- if(F=="show"){
- for(R=str_tb(0,0);G!=[];){
- L=car(G);
- I=L[0][0];J=L[0][1];
- str_tb("[A_{"+rtostr(I[0])+rtostr(I[1])+"}:A_{"+rtostr(J[0])+rtostr(J[1]),R);
- if(length(J)==3) str_tb(rtostr(J[2]),R);
- str_tb("}]&=\\left\\{",R);
- for(L=cdr(L);;){
- S=car(L);
- str_tb("["+my_tex_form(S[1])+":"+my_tex_form(S[2])+"]",R);
- if(S[0]!=1) str_tb("_{"+rtostr(S[0])+"}",R);
- if((L=cdr(L))==[]) break;
- str_tb(",\\,",R);
- }
- str_tb("\\right\\}",R);
- if((G=cdr(G))==[]) break;
- str_tb(texcr(43),R);
- }
- R=texbegin("align*",str_tb(0,R));
- if(Dvi!=-1) dviout(R|keep=Keep);
- return R;
- }
- if(F=="show0"){
- for(C=N*(N-1)*(N-2)/2,S="",L=[];G!=[];G=cdr(G)){
- for(TL=[],TG=cdr(car(G));TG!=[];TG=cdr(TG)) TL=cons(car(TG)[0],TL);
- TL=msort(TL,[-1,0]);
- if(Dvi){
- if(S!=""){
- if(--C==0) S=S+";";
- else S=S+",";
- }
- for(I=J=0,T=append(TL,[[0]]);T!=[];T=cdr(T)){
- if(car(T)==I) J++;
- else{
- if(I>0&&J>0){
- if(I>9) S=S+"("+rtostr(I)+")";
- else S=S+rtostr(I);
- if(J>1){
- if(J>9) S=S+"^{"+rtostr(J)+"}";
- else S=S+"^"+rtostr(J);
- }
- }
- I=car(T);J=1;
- }
- }
- }
- L=cons(TL,L);
- }
- if(Dvi){
- if(Dvi!=-1) dviout(S|eq=0);
- return S;
- }
- return reverse(L);
- }
- if(F=="spct"){
- G=mcmgrs(G,"get");
- M=newmat(N+1,N+1);
- for(;G!=[];G=cdr(G)){
- GT=car(G);I=GT[0][0];J=GT[0][1];
- for(S=0,L=[],GT=cdr(GT);GT!=[];GT=cdr(GT)){
- L=cons(car(GT)[0],L);
- }
- L=reverse(qsort(L));
- M[I][J]=M[J][I]=L;
- }
- for(D=0,GT=M[0][1];GT!=[];GT=cdr(GT)) D+=car(GT);
- for(I=0;I<=N;I++){
- S=-(N-2)*D^2;
- for(J=0;J<=N;J++){
- if(I==J) continue;
- for(L=M[I][J];L!=[];L=cdr(L)) S+=car(L)^2;
- }
- M[I][I]=S;
- }
- if(Dvi){
- S=[];
- for(LS=[],I=N;I>=0;I--){
- L=[M[I][I]];
- for(J=N;J>=0;J--){
- if(I==J) L=cons("",L);
- else L=cons(s2sp([M[I][J]]),L);
- }
- S=cons(L,S);
- LS=cons("$x_"+rtostr(I)+"$",LS);
- }
- S=cons(append(LS,["idx"]),S);
- M=ltotex(S|opt="tab",hline=[0,1,z],vline=[0,1,z-1,z],left=cons("",LS));
- if(Dvi>0) dviout(M|keep=Keep);
- }
- return M;
- }
- if(F=="deg"){
- for(S=I=0;I<N-1;I++){
- for(J=I+1;J<N;J++){
- L=mcmgrs(G,["get0",[I,J]]);
- L=anal2sp(L,"val");
- S+=L[1];
- }
- }
- return S/L[0];
- }
- }
- L=[];
- if(type(F)!=4) return 0;
- if(type(P[0])!=4||length(P[0])==2) P=[P];
- for(;P!=[];P=cdr(P)){
- if(type(T=(S=car(P))[0])==4){ /* addition */
- if((K=P[0][1])!=0){
- if(T[0]>T[1]) T=[T[1],T[0]];
- T1=[T[0],N];T2=[T[1],N];
- T01=cons(0,T1);T02=cons(0,T2);
- for(PG=G;PG!=[];PG=cdr(PG)){
- R=car(PG);R0=R[0];K1=K2=0;
- TP=R0[0];
- if(TP==T) K1=K;
- else if(TP==T1||TP==T2) K1=-K;
- if(length(TP=R0[1])==2){
- if(TP==T) K2=K;
- else if(TP==T1||TP==T2) K2=-K;
- }else{
- S=0;
- if(findin(T[0],TP)>=0) S++;
- if(findin(T[1],TP)>=0) S++;
- if(S>0&&TP[2]==N) K2=-K;
- else if(S==2) K2=K;
- }
- R1=anal2sp(cdr(R),["+",K1,K2]);
- L=cons(cons(R0,R1),L);
- }
- G=reverse(L);
- }
- }else if(length(S)==1){ /* middle convolution */
- C=S[0];L=[];
- for(I=1;I<=N;I++){
- for(J=1;J<=N;J++){
- if(I==J) continue;
- for(K=J+1;K<=N;K++){ /* [[0,I],[J,K]] */
- if(I==K)continue;
- T=[[0,I],JK=[J,K]];
- if(I==N){
- LT=mcmgrs(G,["get0",T]);
- G0=mcmgrs(G,["get0",JK]);
- L0=anal2sp(G0,[["put1",1,0],["mult",N-3]]);
- G0=mcmgrs(G,["get0",[0,J,K]]);
- LT=anal2sp(LT,["add",L0]);
- L0=anal2sp(G0,["put1",1,0]);
- LT=anal2sp(LT,["add",L0]);
- for(V=1;V<=N;V++){
- if(V==I){
- G0=mcmgrs(G,["get0",T]);
- L0=anal2sp(G0,["get",1,C]);
- }else if(V==J||V==K){
- G0=mcmgrs(G,["get0",[[0,V],[0,J,K]]]);
- L0=anal2sp(G0,["get",1,0]);
- }else{
- G0=mcmgrs(G,["get0",[[0,V],JK]]);
- L0=anal2sp(G0,["get",1,0]);
- }
- LT=anal2sp(LT,["sub",L0]);
- }
- LT=anal2sp(LT,["+",-C,0]);
- }else if(K==N){
- LT=mcmgrs(G,["get0",T]);
- LT=anal2sp(LT,["+",C,0]);
- G0=mcmgrs(G,["get0",JK]);
- L0=anal2sp(G0,[["put1",1,0],["mult",N-3]]);
- LT=anal2sp(LT,["add",L0]);
- G0=mcmgrs(G,["get0",[0,J,K]]);
- L0=anal2sp(G0,[["put1",1,0],["+",0,-C]]);
- LT=anal2sp(LT,["add",L0]);
- for(V=1;V<=N;V++){
- if(V==I){
- G0=mcmgrs(G,["get0",T]);
- L0=anal2sp(G0,[["get",1,0],["+",C,0]]);
- }else if(V==J){
- G0=mcmgrs(G,["get0",[[0,V],[0,J,K]]]);
- L0=anal2sp(G0,[["get",1,0],["+",0,-C]]);
- }else if(V==N){
- G0=mcmgrs(G,["get0",[[0,V],[0,J,K]]]);
- L0=anal2sp(G0,[["get",1,C],["+",-C,-C]]);
- }else{
- G0=mcmgrs(G,["get0",[[0,V],JK]]);
- L0=anal2sp(G0,["get",1,0]);
- }
- LT=anal2sp(LT,["sub",L0]);
- }
- }else{
- G0=mcmgrs(G,["get0",T]);
- LT=anal2sp(G0,["+",C,0]);
- G0=mcmgrs(G,["get0",JK]);
- L0=anal2sp(G0,[["put1",1,0],["mult",N-3]]);
- LT=anal2sp(LT,["add",L0]);
- G0=mcmgrs(G,["get0",[0,J,K]]);
- L0=anal2sp(G0,["put1",1,0]);
- LT=anal2sp(LT,["add",L0]);
- for(V=1;V<=N;V++){
- if(V==I){
- G0=mcmgrs(G,["get0",T]);
- L0=anal2sp(G0,[["get",1,0],["+",C,0]]);
- }else if(V==J||V==K){
- G0=mcmgrs(G,["get0",[[0,V],[0,J,K]]]);
- L0=anal2sp(G0,["get",1,0]);
- }else if(V==N){
- G0=mcmgrs(G,["get0",[[0,V],JK]]);
- L0=anal2sp(G0,[["get",1,C],["+",-C,0]]);
- }else{
- G0=mcmgrs(G,["get0",[[0,V],JK]]);
- L0=anal2sp(G0,["get",1,0]);
- }
- LT=anal2sp(LT,["sub",L0]);
- }
- }
- LT=anal2sp(LT,0);
- L=cons(cons(T,LT),L);
- }
- T=[[0,I],(I<J)?[0,I,J]:[0,J,I]]; /* [0,I], [0,I,J] */
- JK=(I<J)?[I,J]:[J,I];
- if(I==N){
- G0=mcmgrs(G,["get0",T]);
- LT=anal2sp(G0,["+",-C,0]);
- G0=mcmgrs(G,["get0",JK]);
- L0=anal2sp(G0,[["put1",1,-C],["mult",N-3]]);
- LT=anal2sp(LT,["add",L0]);
- G0=mcmgrs(G,["get0",T[1]]);
- L0=anal2sp(G0,["put1",1,-C]);
- LT=anal2sp(LT,["add",L0]);
- for(V=1;V<=N;V++){
- if(V==J){
- G0=mcmgrs(G,["get0",T]);
- L0=anal2sp(G0,[["get",1,0],["+",-C,0]]);
- }else if(V==N){
- G0=mcmgrs(G,["get0",[[0,V],T[1]]]);
- L0=anal2sp(G0,[["get",1,C],["+",-C,0]]);
- }else{
- G0=mcmgrs(G,["get0",[[0,V],JK]]);
- L0=anal2sp(G0,[["get",1,0],["+",-C,0]]);
- }
- LT=anal2sp(LT,["sub",L0]);
- }
- LT=anal2sp(LT,["+",0,C]);
- }else if(J==N){
- G0=mcmgrs(G,["get0",T]);
- LT=anal2sp(G0,["+",C,0]);
- G0=mcmgrs(G,["get0",T[0]]);
- L0=anal2sp(G0,[["put1",1,0],["mult",N-3]]);
- LT=anal2sp(LT,["add",L0]);
- G0=mcmgrs(G,["get0",T[1]]);
- L0=anal2sp(G0,["put1",1,0]);
- LT=anal2sp(LT,["add",L0]);
- for(V=1;V<=N;V++){
- if(V==I){
- G0=mcmgrs(G,["get0",T]);
- L0=anal2sp(G0,[["get",1,0],["+",C,0]]);
- }else if(V==N){
- G0=mcmgrs(G,["get0",[[0,V],T[1]]]);
- L0=anal2sp(G0,[["get",1,C],["+",-C,0]]);
- }else{
- G0=mcmgrs(G,["get0",[[0,V],JK]]);
- L0=anal2sp(G0,["get",1,0]);
- }
- LT=anal2sp(LT,["sub",L0]);
- }
- LT=anal2sp(LT,["+",0,-C]);
- }else{
- G0=mcmgrs(G,["get0",T]);
- LT=anal2sp(G0,["+",C,C]);
- G0=mcmgrs(G,["get0",JK]);
- L0=anal2sp(G0,[["put1",1,0],["mult",N-3]]);
- LT=anal2sp(LT,["add",L0]);
- G0=mcmgrs(G,["get0",T[1]]);
- L0=anal2sp(G0,[["put1",1,0],["+",0,C]]);
- LT=anal2sp(LT,["add",L0]);
- for(V=1;V<=N;V++){
- if(V==I){
- G0=mcmgrs(G,["get0",T]);
- L0=anal2sp(G0,[["get",1,0],["+",C,C]]);
- }else if(V==J){
- G0=mcmgrs(G,["get0",[[0,V],T[1]]]);
- L0=anal2sp(G0,[["get",1,0],["+",0,C]]);
- }else if(V==N){
- G0=mcmgrs(G,["get0",[[0,V],JK]]); L0=anal2sp(G0,[["get",1,C],["+",-C,0]]);
- }else{
- G0=mcmgrs(G,["get0",[[0,V],JK]]);
- L0=anal2sp(G0,["get",1,0]);
- }
- LT=anal2sp(LT,["sub",L0]);
- }
- }
- LT=anal2sp(LT,0);
- L=cons(cons(T,LT),L);
- }
- }
- for(G0=G=[];L!=[];L=cdr(L)){
- if(length(car(L)[0][1])==2) G0=cons(car(L),G0);
- else G=cons(car(L),G);
- }
- G=append(G0,G);
- }else{
- if(length(S)==N-1||length(S)==N){ /* [a_1,...,a_{N-1},c] */
- for(I=1;I<N;S=cdr(S),I++) G=mcmgrs(G,[[0,I],car(S)]);
- if(length(S)==1) G=mcmgrs(G,[S[0]]);
- }else return 0;
- }
- }
- return G;
-}
-
-
-def delopt(L,S)
-{
- if((Inv=getopt(inv))!=1) Inv=0;
- for(R=[];L!=[];L=cdr(L)){
- if(type(car(L))!=4) F=0;
- else if(type(S)==4) F=(findin(car(L)[0],S)<0)?0:1;
- else F=(car(L)[0]==S)?1:0;
- if(F==Inv) R=cons(car(L),R);
- }
- return reverse(R);
-}
-
-def str_char(S,N,L)
-{
- if(type(S)==7){
- if(type(L)==1) L=asciitostr([L]);
- return str_chr(S,N,L);
- }
- if(type(L)==7) L=strtoascii(L)[0];
- if(type(S)==4){
- M=N;
- while(M-->0) S=cdr(S);
- M=findin(L,S);
- return (M>=0)?findin(L,S)+N:-1;
- }else if(type(S)==5){
- K=length(S);
- for(I=N;I<K;I++)
- if(S[I]==L) return I;
- }
- return -1;
-}
-
-def str_pair(S,N,I,J)
-{
- if(type(I)==7) I=(II=strtoascii(I))[0];
- if(type(J)==7) J=(JJ=strtoascii(J))[0];
- if(type(S)==7) S=strtoascii(S);
- if(getopt(inv)==1){
- if(II!=0){
- I=asciitostr(reverse(II));
- IL=length(II);
- }else IL=1;
- if(JJ!=0) J=asciitostr(reverse(JJ));
- R=str_pair(reverse(S),length(S)-N-1,J,I);
- if(R>=0) R=length(S)-IL-R;
- return R;
- }
- if((SJIS=getopt(sjis))!=1) SJIS=0;
- if((II!=0&&length(II)>1)||(JJ!=0&&length(JJ)>1)){
- for(;;){
- MJ=str_str(S,N|top=JJ,sjis=SJIS);
- if(MJ>=0){
- MI=str_str(S,II|top=N,sjis=SJIS);
- if(MI<0 || MI>MJ){
- if(C==0) return MJ;
- C--; N=MJ+length(II);
- }else if(MI>=0){
- C++; N=MI+length(JJ);
- }
- }
- return -1;
- }
- }
- if(type(S)==4){
- M=N;
- while(M-->0) S=cdr(S);
- while(S!=[]){
- if(car(S)==I) C++;
- else if(car(S)==J){
- if(C==0) return N;
- C--;
- }
- S=cdr(S);N++;
- }
- }else if(type(S)==5){
- K=length(S);
- for(T=N;T<K && C>=0;T++){
- if(S[T]==I) C++;
- else if(S[T]==J){
- if(C==0) return T;
- C--;
- }
- }
- }
- return -1;
-}
-
-
-def str_cut(S,I,J)
-{
- if(type(S)==7) return sub_str(S,I,J);
- if((JJ=length(S))<=J) J=JJ-1;
- if(type(S)==5){
- for(L=[],K=J; K>=I; K--) L=cons(S[K],L);
- }else if(type(S)==4){
- J-=I;
- while(I-->0) S=cdr(S);
- for(L=[];J-->=0;S=cdr(S)) L=cons(car(S),L);
- L=reverse(L);
- }
- return asciitostr(L);
-}
-
-def str_str(S,T)
-{
- if(S==0) return -1;
- if(type(S) == 7)
- S = strtoascii(S);
- if(type(J=getopt(top))!=1 || J<0) J=0;
- LS=length(S);
- if(LS-J<1) return -1;
- if(type(S)==4){
- LS-=(J0=J);
- for( ; J>0 && S!=[]; S=cdr(S),J--);
- }
- if(type(JJ=getopt(end))!=1 && JJ!=0) JJ=LS;
- else JJ-=J0;
- if((SJIS=getopt(sjis))!=1) SJIS=0;
- if(JJ-J<0) return -1;
- /* search from J-th to JJ-th */
- if(type(T)==1) T=[T];
- else if(type(T)==7) T = strtoascii(T);
- else if(type(T)==4 && type(T[0])>3){
- for(K=(KF=-1)-J0; T!=[]; F++,T=cdr(T)){
- JK=str_str(S,car(T)|top=J,end=JJ,sjis=SJIS);
- if(JK>=0){
- JJ=(K=JK)-1; KF=F;
- if(J>JJ) break;
- }
- }
- return [KF,J0+K];
- }
- if(type(T)==4) T=ltov(T);
- LT = length(T);
- if(LT>0){
- LE = LS-LT;
- LP = T[0];
- if(JJ==0 ||(type(JJ)==1 && JJ<LE)) LE=JJ;
- if(type(S)==5){
- for(; J <= LE; J++){
- if(S[J] != LP){
- if(SJIS && (V=S[J])>128){
- if(V<160 || (V>223 && V<240)) J++;
- }
- continue;
- }
- for(I = 1; I < LT && S[I+J] == T[I]; I++);
- if(I >= LT) return J;
- }
- }else if(type(S)==4){
- for(; J<=LE; S=cdr(S),J++){
- if(car(S) != LP){
- if(SJIS && (V=S[J])>128){
- if(V<160 || (V>223 && V<240)) J++;
- }
- continue;
- }
- for(ST=cdr(S), I = 1; I < LT && car(ST) == T[I]; I++, ST=cdr(ST));
- if(I >= LT) return J0+J;
- }
- }
- }
- return -1;
-}
-
-def str_times(S,N)
-{
- if(!isint(N)) return "";
- if(type(S)==7){
- for(Tb=str_tb(0,0);N-->0;)
- str_tb(S,Tb);
- return str_tb(0,Tb);
- }
- if(type(S)==4){
- for(LT=[],I=0;I<N;I++){
- if(type(car(S))==7){
- LT=cons(car(S),LT);
- S=cdr(S);
- if(S==[]) S=[[""]];
- }else if(type(car(S))==4){
- ST=car(S);
- for(J=0;I<N;I++){
- if(J==length(ST)) J=0;
- LT=cons(ST[J++],LT);
- }
- }
- }
- return reverse(LT);
- }
- return S;
-}
-
-def ssubgrs(M,L)
-{
- if(type(L)==7) L=s2sp(L);
- for(S=0, L=L, M=M; L!=[]; L=cdr(L), M=cdr(M)){
- for(LT=car(L), MT=car(M); LT!=[]; LT=cdr(LT), MT=cdr(MT)){
- S += car(LT)*car(MT)[1];
- }
- }
- return S;
-}
-
-def s2os(S)
-{
- return str_subst(S,[["\\","\\\\"],["\"","\\\""]],0);
-}
-
-def l2os(S)
-{
- if(type(S)==6)
- S=m2ll(S);
- else if(type(S)==5)
- S=vtol(S);
- else if(type(S)==7) return "\""+s2os(S)+"\"";
- else if(type(S)<4) return rtostr(S);
- if(type(S)==4){
- for(F=0,Tb=str_tb("[",0);S!=[];S=cdr(S)){
- if(F++) str_tb(", ",Tb);
- str_tb(l2os(car(S)),Tb);
- }
- str_tb("]",Tb);
- return str_tb(0,Tb);
- }
- return 0;
-}
-
-def r2os(S)
-{
- if(type(S)==6){
- for(T="",S=m2ll(S);S!=[];S=cdr(S)){
- if(T!="") T=T+","+r2os(car(S));
- else T=r2os(car(S));
- }
- return "mat("+T+")\n";
- }else if(type(S)==5){
- for(T="",S=v2l(S);S!=[];S=cdr(S)){
- if(T!="") T=T+","+r2os(car(S));
- else T=r2os(car(S));
- }
- return "vect("+T+")\n";
- }else if(type(S)<4) return rtostr(S);
- else if(type(S)==4){
- for(T="";S!=[];S=cdr(S)){
- if(T!="") T=T+","+r2os(car(S));
- else T=r2os(car(S));
- }
- return "["+T+"]";
- }else if(type(S)==7) return "\""+s2os(S)+"\"";
- return "";
-}
-
-def s2euc(S)
-{
- for(R=[],CR=0,L=strtoascii(S);L!=[];L=cdr(L)){
- if((C=car(L)) == 0x1b && length(L)>1) {
- if((C=car(L=cdr(L)))==0x24 && length(L)>1){ /* $ */
- if((C = car(L=cdr(L))) == 0x40 || C == 0x42) { /* @, B */
- Mode = 1;
- } else return 0;
- }else if(C == 0x28 && length(L)>1) { /* ( */
- if((C = car(L=cdr(L)))== 0x42 || C == 0x4a) { /* B, J */
- Mode = 0;
- }else if(C == 0x49) { /* I */
- Mode = 2;
- }else{
- R=cons(0x1b,R);R=cons(0x28,R);R=cons(C,R);
- }
- }else if (C == 0x26 && length(L)>1 && car(cdr(L))==0x1b) { /* & ESC */
- L=cdr(L);
- }else{
- R=cons(0x1b,R);R=cons(C,R);
- }
- }else if(C == 0x0e) {
- Mode = 2;
- }else if(C == 0x0f) {
- Mode = 0;
- }else if(Mode == 1 && C>0x20 && C<0x7f && length(L)>1) { /* JIS KANJI */
- D=car(L=cdr(L));
- if(D>0x20 && D<0x7f) {
- R=cons(ior(C,0x80),R);R=cons(ior(D,0x80),R);
- } else return 0;
- }else if(Mode == 2 && C > 0x1f && C < 0x60) { /* JIS KANA */
- R=cons(0x8e,R); R=cons(ior(C,0x80),R);
- }else if(((C>0x80 && C<0xa0) || (C>0xdf && C<0xf0)) && length(L)>1) { /* ShiftJIS */
- D=car(L=cdr(L));
- if(D>0x3f && D<0xfd && D!=0x7f) {
- T=sjis2jis([C,D]);
- R=cons(ior(T[0],0x80),R); R=cons(ior(T[1],0x80),R);
- }else return 0;
- }else if(C>0x9f && C<0xe0) { /* HanKana */
- R=cons(0x8e,R); R=cons(C,R);
- }else if(C == 0x0a){
- CR++;
- }else if(C == 0x0d){
- R=cons(0x0d,R);
- CR=0;
- }else{
- while(CR-->0) R=cons(0x0d,R);
- R=cons(C,R);
- }
- }
- while(CR-->0) R=cons(0x0d,R);
- return asciitostr(reverse(R));
-}
-
-def s2sjis(S)
-{
- for(R=[],CR=0,L=strtoascii(S);L!=[];L=cdr(L)){
- if((C=car(L)) == 0x1b && length(L)>1) {
- if((C=car(L=cdr(L)))==0x24 && length(L)>1){ /* $ */
- if((C = car(L=cdr(L))) == 0x40 || C == 0x42) { /* @, B */
- Mode = 1;
- } else return 0;
- }else if(C == 0x28 && length(L)>1) { /* ( */
- if((C = car(L=cdr(L)))== 0x42 || C == 0x4a) { /* B, J */
- Mode = 0;
- }else if(C == 0x49) { /* I */
- Mode = 2;
- }else{
- R=cons(0x1b,R);R=cons(0x28,R);R=cons(C,R);
- }
- }else if (C == 0x26 && length(L)>1 && car(cdr(L))==0x1b) { /* & ESC */
- L=cdr(L);
- }else{
- R=cons(0x1b,R);R=cons(C,R);
- }
- }else if(C == 0x0e) {
- Mode = 2;
- }else if(C == 0x0f) {
- Mode = 0;
- }else if(Mode == 1 && C>0x20 && C<0x7f && length(L)>1) { /* JIS KANJI */
- D=car(L=cdr(L));
- if(D>0x20 && D<0x7f) {
- T=jis2sjis([C,D]);
- R=cons(T[0],R);R=cons(T[1],R);
- } else return 0;
- }else if(Mode == 2 && C > 0x1f && C < 0x60) { /* JIS KANA */
- R=cons(ior(C,0x80),R);
- }else if(C>0xa0 && C<0xff && length(L)>1) { /* EUC */
- D=car(L=cdr(L));
- if(D>0xa0 && D<0xff) {
- T=jis2sjis([iand(C,0x7f),iand(D,0x7f)]);
- R=cons(T[0],R);R=cons(T[1],R);
- }else return 0;
- }else if(C == 0x0a){
- CR++;
- }else if(C == 0x0d){
- R=cons(0x0a,R);R=cons(0x0d,R);
- CR=0;
- }else{
- while(CR-->0){
- R=cons(0x0a,R);R=cons(0x0d,R);
- }
- R=cons(C,R);
- }
- }
- while(CR-->0){
- R=cons(0x0a,R);R=cons(0x0d,R);
- }
- return asciitostr(reverse(R));
-}
-
-def r2ma(S)
-{
- return evalma(S|inv=1);
-}
-
-def evalma(S)
-{
- L0=["\n","\d","{","}","[","]","Log","Exp","Sinh","Cosh","Tanh","Sin","Cos","Tan",
- "ArcSin","ArcCos","ArcTan"];
- L1=["", "" ,"[","]","(",")","log","exp","sinh","cosh","tanh","sin","cos","tan",
- "asin", "acos", "atan"];
- if(getopt(inv)==1){
- if(type(S)==6) S=m2ll(S);
- else if(type(S)==5) S=vtol(S);
- if(type(S)==4){
- for(L=[];S!=[];S=cdr(S)){
- if(type(car(S))==6) L=cons(m2ll(car(S)),L);
- else if(type(car(S))==5) L=cons(vtol(car(S)),L);
- else L=cons(car(S),L);
- }
- S=reverse(L);
- }else return 0;
- return str_subst(rtostr(S),cdr(cdr(L1)),cdr(cdr(L0)));
- }
- if(S==0){
- print("Mathematica text (terminated by ;) ?");
- purge_stdin();
- Tb=str_tb(0,0);
- for(;;){
- S=get_line();
- str_tb(S,Tb);
- if(str_char(S,0,";")>=0) break;
- }
- S=str_tb(0,Tb);
- }
-/*
- while((P=str_chr(S,0,";"))>=0){
- V0=evalma(str_cut(S,0,P+1));
- S=str_cut(S,P+1,length(S));
- }
- if((P=str_char(S,0,"="))>=0){
- X=strtoascii(str_cut(S,0,P));
- L=length(X);
- for(P0=P1=-1,I=0;I<L;I++){
- if(L(I)<=32) continue;
- if(isalphanum(L[I])){
- if(P0<0){
- if(isnum(L[I])) break;
- P0=I;
- }
- else if(P1!=I+1) break;
- P1=I;
- }
- }
- if(I==L && P0>=0){
- for(I==P0;I-->0;) X=cdr(X);
- if((X0=car(X))>96) X0-=32;
- Y=[X0];X=cdr(X);
- for(I=P1-P0;I-->0;X=cdr(X))
- Y=cons(car(X),Y);
- Y=cons(61,Y);
- Var=asciitostr(reverse(Y));
- S=str_cut(S,P,length(S));
- }
- }
-*/
- S=eval_str(str_subst(S,L0,L1));
- if(type(S)==4){
- for(L=-1,T=S;T!=[];T=cdr(T)){
- if(type(T0=car(T))>4) break;
- if(type(T0)<4){
- if(L>=0) break;
- L=-2;continue;
- }
- if(L<-2) break;
- if(L==-1) L=length(T0);
- else if(L!=length(T0)) break;
- }
- if(T==[]){
- if(L>0) S=s2m(S);
- else S=ltov(S);
- }
- }
-/*
- if(S==0 && V0!=0) return V0;
- if(type(Var)==7){
- T=rtostr(S);
- if(type(S)==7) T="\""+T+"\"";
- S=eval_str(Var+T);
- mycat(["Define",Var]);
- }
-*/
- return S;
-}
-
-def i2hex(N)
-{
- Opt=getopt();
- if(type(N)==4 && isint(car(N))){
-#ifdef USEMODULE
- L=mtransbys(os_md.i2hex,N,[]|option_list=Opt);
-#else
- L=mtransbys(i2hex,N,[]|option_list=Opt);
-#endif
- return rtostr(L);
- }
- if(!isint(N) || N<0) return 0;
- if(!N) L=[];
- else{
- Cap=(getopt(cap)==1)?32:0;
- for(L=[];N!=0;N=ishift(N,4)){
- J=iand(N,15);
- L=cons(((J>9)?(87-Cap):48)+J,L);
- }
- }
- if(!isint(Min=getopt(min))) Min=2;
- for(Min-=length(L);Min-->0;)
- L=cons(48,L);
- if(getopt(num)==1){
- L=cons(120,L);L=cons(48,L);
- }
- return asciitostr(L);
-}
-
-def sjis2jis(L)
-{
- L1=L[1];
- if((L0=L[0])<=0x9f){
- if(L1<0x9f) L0=L0*2-0xe1;
- else L0=(L0*2)-0xe0;
- }else{
- if(L1<0x9f) L0=L0*2-0x161;
- else L0=L0*2-0x160;
- }
- if(L1<0x7f) return [L0,L1-0x1f];
- else if(L1<0x9f) return [L0,L1-0x20];
- return [L0,L1-0x7e];
-}
-
-def jis2sjis(L)
-{
- L1=L[1];
- if(iand(L0=L[0],1)){
- if(L1<0x60) L=[L1+0x1f];
- else L=[L1+0x20];
- }else L=[L1+0x7e];
- if(L0<0x5f) return cons(ishift(L0+0xe1,1),L);
- return cons(ishift(L0+0x161,1),L);
-}
-
-def verb_tex_form(P)
-{
- L = reverse(strtoascii(rtostr(P)));
- for(SS = []; L != []; L = cdr(L)){
- Ch = car(L); /* ^~\{} */
- if(Ch == 92 || Ch == 94 || Ch == 123 || Ch == 125 || Ch == 126){
- SS = append([92,Ch,123,125],SS); /* \Ch{} */
- if(Ch != 94 && Ch != 126) /* \char` */
- SS = append([92,99,104,97,114,96],SS);
- continue;
- }
- SS = cons(Ch, SS);
- if((Ch >= 35 && Ch <= 38) || Ch == 95) /* #$%&_ */
- SS = cons(92, SS); /* \Ch */
- }
- return asciitostr(SS);
-}
-
-def tex_cuteq(S,P)
-{
- if(P==0) return 0;
- if(S[P]==125){ /* } */
- if((Q=str_pair(S,P-1,"{","}"|inv=1))<0) return -1;
- if(Q<2||S[Q-1]!=95) return Q;
- return tex_cuteq(S,Q-2);
- }
- if(!isalphanum(S[Q=P--])) return -1;
- while(P>0&&isalphanum(S[P])) P--;
- if(S[P]==92){ /* \ */
- if(P==0) return P;
- else P--;
- }
- if(S[P]!=95||P==0) return Q; /* _ */
- return tex_cuteq(S,P-1);
-}
-
-
-def texket(S)
-{
- if(!isint(F=getopt(all))) F=0;
- if(type(S)==7){
- L=str_len(S);
- SS=strtoascii(S);
- }else{
- L=length(S);
- SS=S;
- }
- for(T="",I=I0=0;I<L-1;){
- J=str_char(SS,I,"(");
- if(J<0) break;
- if(J<L-1 && J>4 && str_str(SS,"\\left"|top=J-5,end=J-1)>=0){
- I=J+1;continue;
- }
- if((K=str_pair(SS,J+1,"(",")"))>=0){
- KK=str_char(SS,J+2,"(");
- if(KK>K||KK<0){
- if(F!=1){
- if(!F){
- for(N=J+1;N<K;N++) /* + - _ { } */
- if(!isalphanum(P=SS[N])&&findin(P,[32,43,45,95,123,125])<0) break;
- }else N=K;
- if(N==K){
- I=K+1;continue;
- }
- }
- T=T+str_cut(SS,I0,J-1)+"\\left"+str_cut(SS,J,K-1)+"\\right)";
- I0=I=K+1;
- }else{
- T=T+str_cut(SS,I0,J-1)+"\\left("+texket(str_cut(SS,J+1,K-1)|all=F) +"\\right)";
- I0=I=K+1;
- }
- }else break;
- }
- return T+str_cut(SS,I0,L);
-}
-
-
-def my_tex_form(S)
-{
- if(getopt(skip) != 1){
- if(type(S)==1 && S<0) return "-"+print_tex_form(-S);
- if(type(S)==6) return mtotex(S);
- S = print_tex_form(S);
- for(F=Top=0;(L=str_str(S,"\\verb`"|top=Top))>=0;Top=LV+1){
- F++;
- if(Top==0) Tb = string_to_tb("");
- LV = str_chr(S, L+6, "`");
- if(LV<0) LV=str_len(S);
- str_tb([my_tex_form(sub_str(S, Top, L-1)|skip=1), "\\texttt{"], Tb);
- str_tb([verb_tex_form(sub_str(S,L+6, LV-1)),"}"], Tb);
- Top=LV+1;
- }
- if(F>0){
- str_tb(my_tex_form(sub_str(S, Top,str_len(S)-1)|skip=1), Tb);
- return tb_to_string(Tb);
- }
- }
- if(S==0) return "";
- S = ltov(strtoascii(S));
- L = length(S)-1;
- while(L >= 1 && S[L] == 10)
- L--;
- if((Fr=getopt(frac))!=0 && Fr!=1) Fr=2;
- for(I = L+1, T = K = 0, SS = []; --I >= 0; ){
- if(S[I] == 32 && I!=L){
- if(I==L) continue;
- if(findin(S[I+1], [32,40,41,43,45,123,125]) >= 0 /* " ()+-{}" */
- || (S[I+1] >= 49 && S[I+1] <= 57)) /* 1 - 9 */
- if(I == 0 || S[I-1] >= 32) continue;
- }
- if(Fr && S[I]>=48 && S[I]<=57){ /* 2/3 -> \tfrac{2}{3} */
- for(K=0,II=I; II>=0; II--){
- if(S[II]>=48 && S[II]<=57) continue;
- if(S[II]==47){ /* / */
- if(K>0) break;
- K=II;
- }else break;
- }
- if(K>II+1){
- SS=cons(125,SS);
- for(J=I; J>K; J--) SS=cons(S[J],SS);
- if(AMSTeX){
- SS=cons(123,SS);SS=cons(125,SS);
- }else{
- for(J=[114,101,118,111,92];J!=[];J=cdr(J)) /* \over */
- SS=cons(car(J),SS);
- }
- for(J=K-1;J>II;J--) SS=cons(S[J],SS);
- SS=cons(123,SS);
- if(AMSTeX){
- J=(Fr==2)?[99,97,114,102,116,92]:[99,97,114,102,92];
- for(;J!=[];J=cdr(J)) /* \tfrac */
- SS=cons(car(J),SS);
- }
- I=II+1;
- }else{
- for(;I>II;I--) SS = cons(S[I], SS);
- I++;
- }
- continue;
- }
- SS = cons(S[I], SS);
- }
- SS=str_subst(SS,"\\\\\n\\end{pmatrix}","\n\\end{pmatrix}"|raw=1);
- Subst=getopt(subst);
- Sub0=["{asin}","{acos}","{atan}"];
- Sub1=["\\arcsin ","\\arccos","\\arctan "];
- if(type(Subst) == 4){
- Sub0=append(Sub0,Subst[0]);Sub1=append(Sub1,Subst[1]);
- }
- SS = str_subst(SS,Sub0,Sub1|raw=1);
- S = ltov(SS);
- L = length(S);
- SS = [];
- while(--L >= 0){
- if(S[I=L] == 125){
- while(--I >= 0 && S[I] == 125);
- J = 2*I - L;
- if(J >= 0 && S[I] != 123){
- for(K = J; K < I && S[K] == 123; K++);
- if(K == I){
- if(J-- <= 0 || S[J] < 65 || S[J] > 122 || (S[J] > 90 && S[J] < 97)){
- SS = cons(S[I],SS);
- L = J+1;
- continue;
- }
- }
- }
- }
- SS = cons(S[L],SS);
- }
- RT=getopt(root);
- for(Top=0;;Top++){ /* ((x+1))^{y} , 1/y=2,3,...,9 */
-#if 1
- P=str_str(SS,["))^","^{\\tfrac{1}"]|top=Top);
- if(P[0]<0) break;
- Sq=0;
- if(P[0]==0){
- P=P[1];
- if((Q=str_pair(SS,P,"(",")"|inv=1))<0||SS[Q+1]!=40) continue;
- if((RT==2||(RT!=0 && P-Q<33)) && str_str(SS,"{\\tfrac{1}"|top=P+3,end=P+3)==P+3
- && SS[P+14]==125){
- if((Sq=SS[P+13]-48)<2||Sq>9) Sq=0;
- }
- F=2;
- }else{
- P=P[1];
- if(SS[P+12]!=125||(Sq=(SS[P+11]-48))<2||Sq>9) break;
- if(SS[P-1]==125){
- if((Q=str_pair(SS,P-2,"{","}"|inv=1))<0) break;
- if(Q>1&&SS[Q-1]==95){
- if((Q=tex_cuteq(SS,Q-2))<0) break;
- F=0;
- }else F=1;
- }else{
- if(!isalphanum(SS[Q=P-1]) || (Q=tex_cuteq(SS,Q))<0) break;
- F=0;
- }
- if(RT!=2&&P-Q>32) break;
- }
-#else
- if((P=str_str(SS,"))^"|top=Top))<0 || (Q=str_pair(SS,P,"(",")"|inv=1))<0) break;
- else F=2;
- Sq=0;
- if((RT==2||(RT!=0 && P-Q<33)) && str_str(SS,"{\\tfrac{1}"|top=P+3,end=P+3)==P+3
- && SS[P+14]==125){
- if((Sq=SS[P+13]-48)<2||Sq>9) Sq=0;
- }
-#endif
- for(I=0,S=[];SS!=[];SS=cdr(SS),I++){
- if(I==Q){
- if(Sq){
- S=append([116,114,113,115,92],S);
- if(Sq>2) S=append([93,Sq+48,91],S);
- S=cons(123,S);
- if(F==2) SS=cdr(SS);
- else if(F==0) S=cons(car(SS),S);
- }else if(F==2&&P-Q==3){ /* (2)^x -> 2^x*/
- SS=cdr(SS);SS=cdr(SS);
- S=cons(123,S);S=cons(car(SS),S);S=cons(125,S);
- SS=cdr(SS);SS=cdr(SS);
- I+=3;
- }
- continue;
- }else if(I==P){
- if(Sq){
- if(F>0) S=cdr(S);
- S=cons(125,S);
- if(F==2) SS=cdr(SS);
- for(J=0;J<12;J++) SS=cdr(SS);
- }
- continue;
- }
- S=cons(car(SS),S);
- }
- SS=reverse(S);
- Top=P;
- }
- S=asciitostr(SS);
- if((K=getopt(ket))==1) S=texket(S);
- else if(K==2) S=texket(S|all=1);
- return S;
-}
-
-def smallmattex(S)
-{
- return str_subst(S,[["\\begin{pmatrix}","\\left(\\begin{smallmatrix}"],
- ["\\end{pmatrix}","\\end{smallmatrix}\\right)"],
- ["\\begin{Bmatrix}","\\left\\{\\begin{smallmatrix}"],
- ["\\end{Bmatrix}","\\end{smallmatrix}\\right\\}"],
- ["\\begin{bmatrix}","\\left[{\\begin{smallmatrix}"],
- ["\\end{bmatrix}","\\end{smallmatrix}\\right]"],
- ["\\begin{vmatrix}","\\left|\\begin{smallmatrix}"],
- ["\\end{vmatrix}","\\end{smallmatrix}\\right|"],
- ["\\begin{Vmatrix}","\\left\\|\\begin{smallmatrix}"],
- ["\\end{Vmatrix}","\\end{smallmatrix}\\right\\|"],
- ["\\begin{matrix}","\\begin{smallmatrix}"],
- ["\\end{matrix}","\\end{smallmatrix}"]],0);
-}
-
-
-def divmattex(S,T)
-{
- TF=["matrix","pmatrix","Bmatrix","bmatrix","vmatrix","Vmatrix"];
- TG=[0,"(","\\{","[","|","\\|"];
- TH=[0,")","\\}","]","|","\\|"];
- if(type(S)!=7) S=mtotex(S);
- S=strtoascii(S0=S);
- if((P0=str_str(S,"\\begin{"))<0 || (P1=str_str(S,"}"|top=P0+7))<0)
- return S0;
- F=str_cut(S,P0+7,P1-1);
- if((K=findin(F,TF))<0) return S0;
- Q=str_str(S,"\\end{"+F+"}");
- if(Q<0) return S0;
- for(J=P1+1;S[J]<33;J++);
- for(L0=L=[],I=J;J<Q;J++){
- if(S[J]==38){ /* & */
- if(I>=J) L0=cons(0,L0);
- else L0=cons(str_cut(S,I,J-1),L0);
- I=J+1;
- }
- if(S[J]==92&&S[J+1]==92){ /* \\ */
- if(I>=J) L0=cons(0,L0);
- else L0=cons(str_cut(S,I,J-1),L0);
- L=cons(reverse(L0),L);
- L0=[];
- J++;
- for(I=J+1;S[I]<33;I++);
- }
- }
- J--;
- if(S[J]<33) J--;
- if(I<=J) L0=cons(str_cut(S,I,J),L0);
- if(length(L0)>0) L=cons(reverse(L0),L);
- L=lv2m(reverse(L)); /* get matrix */
- if(T==0) return L;
- Size=size(L);S0=Size[0];
- if(type(T[0])!=4){
- S1=Size[1];
- T=append(T,[S1]);
- for(TT=[],I=0;T!=[];T=cdr(T)){
- J=car(T);
- if(J>S1) J=S1;
- for(T0=[];J>I;J--) T0=cons(J-1,T0);
- if(T0!=[]) TT=cons(T0,TT);
- I=car(T);
- }
- T=reverse(TT);
- }
- SS=length(T);
- St=str_tb(0,0);
- if(SS==1) St=str_tb("\\begin{"+F+"}\n",St);
- else{
- if(K>0) St=str_tb("&\\left"+TG[K],St);
- St=str_tb("\\begin{matrix}\n",St);
- }
- for(;T!=[];T=cdr(T)){
- for(I=0;I<S0;I++){
- for(J=0,TT=car(T);TT!=[];TT=cdr(TT),J++){
- if(J>0) St=str_tb("&",St);
- if(L[I][car(TT)]!=0) St=str_tb(L[I][car(TT)],St);
- }
- if(I<S0-1) St=str_tb("\\\\",St);
- St=str_tb("\n",St);
- }
- if(length(T)>1)
- St=str_tb("\\end{matrix}\\right.\\\\\n&\\quad\\left.\\begin{matrix}\n",St);
- else{
- if(SS==1) St=str_tb("\\end{"+F+"}\n",St);
- else St=str_tb("\\end{matrix}\\right"+TH[K]+"\n",St);
- }
- }
- S=str_tb(0,St);
- if(SS==1) return S;
- return texbegin("align*",S);
-}
-
-def str_subst(S, L0, L1)
-{
- if(type(S) == 7)
- S = strtoascii(S);
- if(type(S) == 4)
- S = ltov(S);
- SE = length(S);
- if(L1 == 0){
- for(L1 = L = [], L0 = reverse(L0); L0 != []; L0 = cdr(L0)){
- L = cons(car(L0)[0], L);
- L1 = cons(car(L0)[1], L1);
- }
- L0 = L;
- }
- if(type(L0)==7) L0 = [strtoascii(L0)];
- else{
- for(LT = []; L0 != []; L0 = cdr(L0))
- LT = cons(strtoascii(car(L0)), LT);
- L0 = ltov(LT);
- }
- E0 = length(L0);
- if(type(L1)==7) L1 = [strtoascii(L1)];
- else{
- for(LT = []; L1 != []; L1 = cdr(L1))
- LT = cons(strtoascii(car(L1)), LT);
- L1 = ltov(LT);
- }
- if(getopt(inv)==1){
- L2=L0;L0=L1;L0=L2;
- }
- if((SJIS=getopt(sjis))!=1) SJIS=0;
- for(J = JJ = 0, ST = []; J < SE; J++){
- SP = S[J];
- for(I = E0-1; I >= 0; I--){
- if(SP != L0[I][0] || J + (K = length(L0[I])) > SE)
- continue;
- while(--K >= 1)
- if(L0[I][K] != S[J+K]) break;
- if(K > 0) continue;
- for(KE = length(L1[I]), K = 0 ;K < KE; K++)
- ST = cons(L1[I][K],ST);
- J += length(L0[I])-1;
- break;
- }
- if(I < 0){
- ST = cons(S[J],ST);
- if(SJIS && (V=S[J])>128){
- if(V<160 || (V>223 && V<240)) ST = cons(S[J++],ST);
- }
- }
- }
- if(getopt(raw)==1) return reverse(ST);
- return asciitostr(reverse(ST));
-}
-
-def dviout0(L)
-{
- Cmd=["TikZ","TeXLim","TeXEq","DVIOUT","XYPrec","XYcm","XYLim","Canvas"];
- if(type(Opt=getopt(opt))==7){
- if((F=findin(Opt,Cmd)) < 0) return -1;
- if(L==-1){
- if(F<=3){
- if(F==0) V=TikZ;
- else if(F==1) V=TeXLim;
- else if(F==2) V=TeXEq;
- else V=iand(DVIOUTF,1);
- }else{
- if(F==4) V=XYPrec;
- else if(F==5) V=XYcm;
- else if(F==6) V=XYLim;
- else V=Canvas;
- }
- return V;
- }
- if(F==0) TikZ=L;
- else if(F==2) TeXEq=L;
- else if(F==3){
- if(iand(DVIOUTF,1)==L)
- mycat0(["DVIOUTA=\"", DVIOUTA,"\""],1);
- else dviout0(4);
- return 1;
- }else if(F==7&&type(L)==4)
- Canvas=L;
- else if(L>0){
- if(F==1) TeXLim=L;
- else if(F==4) XYPrec=L;
- else if(F==5) XYcm=L;
- else if(F==6) XYLim=L;
- }
- mycat0([Cmd[F],"=",L],1);
- return 1;
- }
- if(type(L) == 4){
- for( ; L != []; L = cdr(L)) dviout0(car(L));
- return 1;
- }
- if(type(L) == 7){
- if(L=="") dviout(" \n"|keep=1);
- else if(L=="cls") dviout0(0);
- else if(L=="show") dviout(" ");
- else if(L=="?") dviout0(3);
- else dviout("\\"+L+"\n"|keep=1);
- return 1;
- }
- if(L == 0)
- dviout(" "|keep=1,clear=1);
- else if(L == 1)
- dviout(" ");
- else if(L == 2)
- dviout(" "|clear=1);
- else if(L>10)
- dviout("\\setcounter{MaxMatrixCols}{"+rtostr(L)+"}%"|keep=1);
- else if(L < 0)
- dviout(" "|delete=-L,keep=1);
- else if(L == 3){
- mycat0(["DIROUT =\"", DIROUT,"\""],1);
- mycat0(["DVIOUTH=\"", DVIOUTH,"\""],1);
- mycat0(["DVIOUTA=\"", DVIOUTA,"\""],1);
- mycat0(["DVIOUTB=\"", DVIOUTB,"\""],1);
- mycat0(["DVIOUTL=\"", DVIOUTL,"\""],1);
- mycat(["Canvas =", Canvas]);
- mycat(["TeXLim =", TeXLim]);
- mycat(["TeXEq =", TeXEq]);
- mycat(["AMSTeX =", AMSTeX]);
- mycat(["TikZ =", TikZ]);
- mycat(["XYPrec =", XYPrec]);
- mycat(["XYcm =", XYcm]);
- mycat(["XYLim =", XYLim]);
- }else if(L==4){
- Tmp=DVIOUTA; DVIOUTA=DVIOUTB; DVIOUTB=Tmp;
- mycat0(["DVIOUTA=\"", DVIOUTA,"\""],1);
- DVIOUTF++;
- }else if(L==5){
- if(!iand(DVIOUTF,1)) dviout0(4);
- }else if(L==6){
- TikZ=1;mycat("TikZ=1");
- }else if(L==7){
- TikZ=0;mycat("TikZ=0");
- }
- return 1;
-}
-
-def myhelp(T)
-{
- /* extern DVIOUT; */
- /* extern HDVI; */
- /* extern DVIOUTH; */
-
- if(type(T)==2){
- if(T==getbygrs){
- getbygrs(0,0);
- return 0;
- }
- else if(T==m2mc){
- m2mc(0,0);
- return 0;
- }
- else if(T==mgen){
- mgen(0,0,0,0);
- return 0;
- }
- else T=rtostr(T);
- }
- if(type(T)==4 && typeT[0]==7){
- if(length(T)==2 && type(T[1])==1){
- DVIOUTH="start "+T[0]+" -"+rtostr(T[1])+"-hyper:0x90 \"%ASIRROOT%\\help\\os_muldif.dvi\" #r:%LABEL%";
- }else if(str_len(T[0])>2) DVIOUTH=T[0];
- mycat(["DVIOUTH="+DVIOUTH,"\nmyhelp(fn) is set!"]);
- return 0;
- }
- if(T==0){
- mycat([
- "myhelp(t) : show help\n",
-#ifdef USEMODULE
- " t : -1 (dvi), 1 (pdf) or os_md.getbygrs, os_md.m2mc, os_md.mgen\n",
-#else
- " t : -1 (dvi), 1 (pdf) or getbygrs, m2mc, mgen\n",
-#endif
- " \"fn\" : Help of the function fn\n",
- " [path,n] : path of dviout, n = # dviout\n",
- " [DVIOUTH] : Way to jump to the help of a function\n",
- " default: start dviout -2 \"%ASIRTOOT%\\help\\os_muldif.dvi\" #r:%LABEL%"
- ]);
- return 0;
- }
- if(type(T)==7){
- if(str_str(T,"os_md.")==0) T=str_cut(T,6,str_len(T)-1);
- Dr=str_subst(DVIOUTH,["%ASIRROOT%","%LABEL%"],[get_rootdir(),"r:"+str_subst(T,"_","")]);
- shell(Dr);
- return 0;
- }
- Dr=get_rootdir();
- if(T==-1) Dr+="\\help\\os_muldif.dvi";
- else Dr+="\\help\\os_muldif.pdf";
- if(!isMs()) Dr=str_subst(Dr,"\\","/");
- shell(Dr);
- return 0;
-}
-
-def isMs()
-{
- if(type(Tmp=getenv("TEMP"))!=7) {
- if (type(Tmp=getenv("TMP")) != 7) Tmp=getenv("HOME");
- }
- if(type(Tmp)==7 && str_chr(Tmp,0,"\\")==2) return 1;
- else return 0;
-}
-
-def tocsv(L)
-{
- if(type(L)==6) L=m2ll(L);
- else if(type(L)==5) L=vtol(L);
- Null=getopt(null);
- Tb=str_tb(0,0);
- for(LL=L; LL!=[]; LL=cdr(LL)){
- LT=car(LL);
- if(type(LT)==5) LT=vtol(LT);
- if(type(LT)<4) LT=[LT];
- for(N=0; LT!=[]; LT=cdr(LT),N++){
- if(N) str_tb(", ",Tb);
- if((T=car(LT))==Null) continue;
- if(type(T)==7){
- K=str_len(T);
- T=str_subst(T,["\""],["\"\""]);
- if(str_len(T)>K||str_char(T,0,",")>=0) T="\""+T+"\"";
- str_tb(T,Tb);
- }else str_tb(rtostr(T),Tb);
- }
- str_tb("\n",Tb);
- }
- S=str_tb(0,Tb);
- if(type(EXE=getopt(exe))!=1&&EXE!=0&&type(EXE)!=7) return S;
- if(type(F)!=7){
- fcat(-1,0);
- F="risaout";
- if(EXE>=2&&EXE<=9) F+=rtostr(EXE);
- F=DIROUTD+F+".csv";
- }else F=S;
- if(EXE!=0 && access(F)) remove_file(F);
- fcat(F,S|exe=1);
- return 1;
-}
-
-def readcsv(F)
-{
- if((ID=open_file(F))<0) return -1;
- SJIS=isMs();
- L=[];
- if(type(V=getopt(eval))!=4){
- if(V=="all") V=1;
- else if(type(V)==1) V=[V];
- else V=[];
- }
- Eq=getopt(eq);
- Sp=getopt(sp);
- if(type(T=getopt(col))!=1) T=0;
- Null=getopt(null);
- if(type(Null)<0) Null=(Eq==1)?0:"";
- while((S=get_line(ID))!=0){
- S=strtoascii(S);
- N=length(S);
- for(I=J=F=0,LL=LT=[];I<N;I++){
- C=S[I];
- if(F==0){
- if(C<=32) continue;
- if(C==34){F=2;continue;}
- F=1;
- }
- if(F==2 && C==34){
- if(I<N-1&& S[I+1]==34){
- LT=cons(34,LT);I++;continue;
- }
- F=-2;
- }
- if(F==1){
- if((C==44&&Sp!=1)||(C<=32&&Sp==1)) F=-1;
- else if(C<32 && C!=9) continue;
- }
- if(SJIS && I<N-1 && ((C>128 && C<160)||(C>223 && C<240))){
- LT=cons(C,LT);LT=cons(S[++I],LT);continue;
- }
- if(F>0){
- LT=cons(C,LT);continue;
- }
- LS=asciitostr(reverse(LT));
- if(V==1||findin(++J,V)>=0){
- if(Eq==1) LS=(LS=="")?Null:eval_str(LS);
- else LS=(isdecimal(LS))?eval_str(LS):((LS=="")?Null:LS);
- }
- if(!T || T==J) LL=cons(LS,LL);
- if(F==-2) while(++I<N && Sp!=1 && S[I]!=44);
- F=0;LT=[];
- }
- if(I<=N && (Sp!=1 || length(LT)>0)){ /* lastline */
- LS=asciitostr(reverse(LT));
- if(V==1||findin(++J,V)>=0){
- if(Eq==1) LS=(LS=="")?Null:eval_str(LS);
- else LS=(isdecimal(LS))?eval_str(LS):((LS=="")?Null:LS);
- }
- if(!T || T==J) LL=cons(LS,LL);
- }
- L=cons(reverse(LL),L);
- }
- close_file(ID);
- if(T) L=m2l(L|flat=1);
- L=reverse(L);
- return L;
-}
-
-def showbyshell(S)
-{
- Id = getbyshell(S);
- if(Id<0) return Id;
- while((S=get_line(Id))!=0) print(S,2);
- return close_file(Id);
-}
-
-
-def getbyshell(S)
-{
- /* extern DIROUT; */
-
- Home=getenv("HOME");
- if(type(Home)!=7) Home="";
- if(type(Tmp=getenv("TEMP"))!=7 && type(Tmp=getenv("TMP")) != 7)
- Tmp=str_subst(DIROUT,["%HOME%","%ASIRROOT%"],[Home,get_rootdir()]);
- Sep=isMs()?"\\":"/";
- F=Tmp+Sep+"muldif.tmp";
- if(type(S)<=1 && S>=0) close_file(S);
- remove_file(F);
- if(type(S)<=1) return -1;
- shell(S+" > \""+F+"\"");
- return open_file(F);
-}
-
-def show(P)
-{
- T=type(P);
- S=P;
- Var=getopt(opt);
- if(Var=="verb"){
- dviout("{\\tt"+verb_tex_form(T)+"}\n\n");
- return;
- }
- if(type(Var)<0) Var=getopt(var);
- if(T==6){
- if((Sp=getopt(sp))==1 || Sp==2)
- S=mtotex(P|lim=1,small=2,sp=Sp,null=1,mat="B");
- else if(type(Var)==4 || type(Var)==7)
- S=mtotex(P|lim=1,small=2,var=Var);
- else
- S=mtotex(P|lim=1,small=2);
- Size=size(P);
- Size=(Size[0]>Size[1])?Size[0]:Size[1];
- if(Size>10) dviout0(Size);
- }else if(T<=3){
- X=0;
- if(Var=="pfrac") X=var(P);
- else X=getopt(pfrac);
- if(isvar(X)){
- pfrac(P,X|dviout=1);
- return;
- }
- Opt=cons(["dviout",1],getopt());
- if(type(Var)==2||type(Var)==4||type(Var)==7) fctrtos(P|option_list=Opt);
- else{
- if(isdif(P)!=0) Opt=cons(["var","dif"],Opt);
- else Opt=cons(["br",1],Opt);
- fctrtos(P|option_list=Opt);
- }
- return;
- }else if(T==4){
- if(type(Var)==4 || type(Var)==7){
- S=ltotex(P|option_list=getopt());
- if(Var=="text"){
- dviout(S);
- return;
- }
- }else{
- for(F=0,L=P;L!=[] && F!=-1;L=cdr(L)){
- LL=car(L);
- if(type(LL)==4){
- if(F==0){
- T=type(LL[0]);
- if(T==4) F=2; /* [[[? */
- else if(T==1 || T==0) F=1; /* [[num,.. */
- }
- if(F==1){
- if(length(LL)!=2 || !isint(LL[0]) || LL[0]<0 || type(LL[1])>3)
- F=-1; /* [[num,rat],[num,rat],...] */
- }else if(F==2){
- for(LLT=LL; LLT!=[] && F!=-1; LLT=cdr(LLT)){
- LLL=car(LLT); /* [[[num,rat],[num,rat],...],[[..],..]],....] */
- if(length(LLL)!=2 || !isint(LLL[0]) || LLL[0]<0 || type(LLL[1])>3)
- F=-1;
- }
- }
- }else if((F==0 || F==7) && type(LL)==7){
- F=7;
- }else F=-1;
- }
- if(F==1) S=ltotex(P|opt="spt");
- else if(F==2){
- M=mtranspose(lv2m(S));
- show(M|sp=1); /* GRS */
- return;
- }else if(F==7) S=ltotex(P|opt="spts");
- else{
- for(F=0,L=P;L!=[] && F!=-1;L=cdr(L)){
- LL=car(L);
- if(type(LL)!=4){
- F=-1; break;
- }
- for(LLT=LL; LLT!=[] && F!=-1; LLT=cdr(LLT)){
- T=type(LLL=car(LLT));
- if(T<7 && T!=4) F0++;
- else if(T==7){
- if(str_char(LLL,0,"\\")<0) F1++;
- else F2++;
- }else F=-1;
- }
- }
- }
- if(F==0 && F0>0 && (F1+F2)>0){ /* list of list of eq and str */
- if(F2>0) S=ltotex(P|opt=["cr","spts0"],str=1);
- else S=ltotex(P|opt=["cr","spts"]);
- }else{
- for(S="[";;){
- S+=my_tex_form(car(P));
- if((P=cdr(P))==[]){
- S+="]";break;
- }
- S+=",";
- }
- }
- }
- }else if(T==7){
- if(Var=="raw" ||
- (Var !="eq" && str_chr(P,0,"\\")<0 && str_char(P,0,"^")<0 && str_char(P,0,"_")<0
- && str_char(P,0,"&")<0)){
- dviout(P+"\n\n");
- return;
- }
- }
- dviout(S|eq=5);
-}
-
-
-/* options : eq = 1 - 8, clear=1, keep=1, delete=1, title=s,
- fctr=1, begin=s */
-def dviout(L)
-{
- /* extern AMSTeX, TeXEq, DIROUT, DVIOUTA, DVIOUTB, DVIOUTL; */
-
- MyEq = [
- ["\\[\n ","\\]"],
- ["\\begin{align}\n","\\end{align}"],
- ["\\begin{gather}\n ","\\end{gather}"],
- ["\\begin{multline}\n ","\\\\[-15pt]\\end{multline}"],
- ["\\begin{align}\\begin{split}\n &","\\end{split}\\end{align}"],
- ["\\begin{align*}\n &","\\end{align*}"],
- ["\\begin{gather*}\n ","\\end{gather*}"],
- ["\\begin{equation}\n ","\\end{equation}"]
- ];
- if(!chkfun("print_tex_form", "names.rr"))
- return 0;
- Home=getenv("HOME");
- if(type(Home)!=7) Home="";
- Dir=str_subst(DIROUT,["%HOME%","%ASIRROOT%","\\"],[Home,get_rootdir(),"/"]);
- Dirout=Dir+(AMSTeX?"/out.tex":"/out0.tex");
- Risaout=(AMSTeX)?"risaout":"risaout0";
- Dirisa=Dir+"/"+Risaout+".tex";
- Viewer="dviout";
- SV=["c:/w32tex/dviout","c:/dviout"];
- Risatex=str_subst(AMSTeX?DVIOUTA:DVIOUTL,
- ["%HOME%","%ASIRROOT%","%TikZ%"],[Home,get_rootdir(),rtostr(TikZ)]);
- if(isMs() && !access(Risatex)){
- for(TV=SV; TV!=[]; TV=cdr(TV)){
- VV=car(TV)+"/dviout.exe";
- if(access(VV)){
- Viewer=str_subst(VV,"/","\\");
- break;
- }
- }
- output(Risatex);
- print("cd \""+str_subst(Dir,"/","\\")+"\"");
- print("latex -src=cr,display,hbox,math,par "+Risaout);
- print("start "+Viewer+" -1 \""+Dr+"\\tex\\"+Risaout+"\" 1000");
- output();
- }
- if(access(Dirisa) == 0){
- D0="\""+(isMs()?str_subst(Dir,"/","\\")+"\"":Dir);
- shell("mkdir "+D0);
- output(Dirisa);
- if(AMSTeX){
- print("\\documentclass[a4paper]{amsart}");
- print("\\usepackage{amsmath,amssymb,amsfonts}");
- }else
- print("\\documentclass[a4paper]{article}");
- print("\\pagestyle{empty}\n\\begin{document}\n\\thispagestyle{empty}");
- print(AMSTeX?"\\input{out}\n\\end{document}":"\\input{out0}\n\\end{document}");
- output();
- }
- if((K = getopt(delete)) >= 1){ /* delete */
- LC = 0;
- if(type(K) == 1 && K > 10) K = 10;
- if(type(K) == 4){
- K = qsort(K);
- LC = 1; /* specific lines */
- }
- Done = 1;
- Id = open_file(Dirout);
- if(Id >= 0){
- Buf = Buf0 = Buf1 = Key = "";
- PE = 0;
- if(type(K) == 1)
- BufE = newvect(K--);
- Dout = Dirout+"0";
- remove_file(Dout);
- output(Dout);
- while((S = get_line(Id)) != 0){
- if(LC){
- while(K != [] && car(K) < LC)
- K = cdr(K);
- if(K == [] || car(K) > LC)
- output(S);
- }
- if(Key == ""){
- if((P0 = str_str(S,"\\begin{")) == 0){
- Key = sub_str(S,7,str_str(S,"}")-1);
- if(findin(Key,["align", "gather","multline", "equation","align*"]) < 0)
- Key = "";
- else{
- Key = "\\end{"+Key+"}";
- if(!LC){
- if(Buf != ""){
- if(PE < K)
- BufE[PE++] = Buf1+Buf;
- else{
- if(K > 0){
- print(BufE[0]);
- for(I = 1; I < K; I++)
- BufE[I-1]=BufE[I];
- BufE[K-1] = Buf1+Buf;
- }else
- print(Buf1+Buf);
- Done = 0;
- }
- Buf1 = Buf0;
- Buf = Buf0 ="";
- }
- }
- }
- }
- if(Key == "" && !LC) Buf0 += S;
- }
- if(Key != ""){
- if(!LC) Buf += S;
- if(str_str(S,Key) >= 0){
- Key = "";
- if(LC) LC++;
- }
- }
- }
- output();
- close_file(Id);
- }
- if(Done==0){
- Id = open_file(Dout);
- if(Id >= 0){
- remove_file(Dirout);
- output(Dirout);
- while((S = get_line(Id)) != 0)
- print(S,0);
- output();
- close_file(Id);
- }
- remove_file(Dout);
- }else L=" ";
- }
- if(getopt(clear) == 1 || Done == 1){ /* clear */
- remove_file(Dirout);
- if(L == "" || L == " "){
- output(Dirout);
- print("\\centerline{Risa/Asir}");
- output();
- }
- }
- if(L != " "){
- Eq=1;
- Eqo = getopt(eq);
- Fc = getopt(fctr);
- if(Fc == 1 && (type(L) == 2 || type(L) == 3)){
- L = fctrtos(L|TeX=1);
- if(type(L) == 4)
- L = "\\fact{"+L[0]+"}{"+L[1]+"}";
- if(type(Eqo) != 0 && type(Eqo) !=7){
- Eqo=0;
- }
- }
- if(type(L) != 4 || getopt(mult) != 1)
- L = [L];
- if(type(Eqo)!=7 && (Eqo<1 || Eqo>8))
- Eqo = (AMSTeX==1)?TeXEq:1;
- Title = getopt(title);
- if(type(Title) == 7){
- output(Dirout);
- print(Title);
- output();
- }
- Sb = getopt(subst);
- for( ; L != []; L = cdr(L)){
- Eq = 1;
- if(type(LT=car(L)) != 7 && type(LT) != 21)
- LT = my_tex_form(LT);
- else if(type(getopt(eq)) < 0)
- Eq = 0;
- if(type(Sb) == 4)
- LT = str_subst(LT,Sb[0],Sb[1]);
- output(Dirout);
- if(Eq == 1){
- if(type(Eqo)==7)
- print(texbegin(Eqo,LT));
- else if(Eqo >= 1 && Eqo <= 8){
- mycat0([MyEq[Eqo-1][0],LT,"%"],1);
- print(MyEq[Eqo-1][1]);
- }else print(LT);
- }else print(LT);
- output();
- }
- }
- if(str_char(Risatex,0," ")>=0 && str_char(DVIOUTA,0," ")<0 && str_char(DVIOUTB,0," ")<0
- && str_char(DVIOUTL,0," ")<0)
- Risatex="\""+Risatex+"\"";
- if(getopt(keep) != 1) shell(Risatex);
- return 1;
-}
-
-def rtotex(P)
-{
- S = my_tex_form(P);
- return (str_len(S) == 1)?S:"{"+S+"}";
-}
-
-def mtotex(M)
-{
- /* extern TexLim; */
-
- MB=mat(["(",")","p"],["\\{","\\}","B"],["[","]","b"],["|","|","v"],
- ["\\|","\\|","V"], [".",".",""]);
- if(type(MT=getopt(mat))==7){
- MT=findin(MT,["p","B","b","v","V",""]);
- if(MT<0) MT=0;
- }
- else MT=0;
- MT=MB[MT];
- if((F=getopt(small))!=1 && F!=2) F=0;
- Lim=getopt(lim);
- if(type(Lim)==1){
- if(Lim<30 && Lim!=0) Lim = TexLim;
- }else Lim=0;
- FL=getopt(len);
- Rw=getopt(raw);
- Sp=getopt(sp);
- Idx=getopt(idx);
- if(type(Idx)==4) Idx=ltov(Idx);
- if(type(Idx)==6 && length(Idx)==0) Idx=-1;
- Var=getopt(var);
- if(Lim>0) FL=1;
- Null=getopt(null);
- if(Null!=1 && Null!=2) Null=0;
- if(type(M)==5) M=lv2m([V]);
- else if(type(M)!=6) return monototex(M);
- S=size(M);
- if(FL==1){
- L=newmat(S[0],S[1]); LL=newvect(S[1]);
- }
- SS=newmat(S[0],S[1]);
- for(I=0; I<S[0]; I++){
- for(J=0; J<S[1]; J++){
- if(type(P=M[I][J])<=3){
- if(P!=0 || Null == 0 || (Null==2 && I==J)){
- SS[I][J]=(type(Var)>1)?fctrtos(P|TeX=2,lim=0,var=Var):fctrtos(P|TeX=2,lim=0);
- if(type(P)==1 && str_str(SS[I][J],"\\frac{-"|end=0)==0)
- SS[I][J]="-\\frac{"+str_cut(SS[I][J],7,100000);
- }
- }else if(type(P)==6){
- ST= mtotex(P|small=1,len=1);
- SS[I][J]=ST[0];
- L[I][J]=ST[1];
- }else if(type(P)==7){
- if(Rw==1) SS[I][J]=P;
- else SS[I][J]="\\text{"+P+"\}";
- }else if(type(P)==4 && length(P)==2 && P[0]>0 && (Sp==1 || Sp==2)){
- if(P[0]==1){
- SS[I][J]=fctrtos(P[1]|TeX=2,lim=0);
- }else{
- ST=my_tex_form(P[0]);
- if(Sp==2) ST="("+ST+")";
- SS[I][J]="["+fctrtos(P[1]|TeX=2,lim=0)+"]_";
- if(str_len(ST)<2) SS[I][J]+=ST;
- else SS[I][J]+="{"+ST+"}";
- }
- }else
- SS[I][J]=my_tex_form(P);
- if(FL==1) L[I][J]=texlen(SS[I][J]);
- }
- }
- if(Lim>0 || FL==1){
- for(LLL=J=0; J<S[1];J++){
- for(I=K=0; I<S[0];I++){
- if(K<L[I][J]) K=L[I][J];
- }
- LLL+=(LL[J]=K);
- }
- }
- if(Lim>0){
- if(F==2 && LLL>Lim-2*S[1]-2) F=1;
- if(F==1)
- Lim=idiv(Lim*6,5);
- if(LLL<=Lim-(2-F)*S[I]-2) Lim=0;
- }
- Mat=(F==1)?"smallmatrix}":"matrix}";
- if(F==1) Out=str_tb("\\left"+MT[0]+"\\begin{",0);
- else Out=str_tb((Lim==0)?"\\begin{"+MT[2]:"\\left"+MT[0]+"\\begin{",0);
- Out = str_tb(Mat,Out);
- for(I=II=LT=0; II<=S[0]; II++){
- if(Lim==0) II=S[0];
- if(II<S[0]){
- K=LL[II]+(2-F);
- if(I==II){
- LT+=K;
- continue;
- }
- if(LT+K<Lim-2) continue;
- LT=K;
- }
- for(I0=I; I<II; I++){
- if(I==I0){
- str_tb((I==0)?
- "\n ":
- "\\right.\\\\\n \\allowdisplaybreaks\\\\\n &\\ \\left.\\begin{"+Mat+"\n ", Out);
- if(Idx==1||Idx==0||type(Idx)==5){
- for(J=I; J<II; J++){
- if(type(Idx)!=4)
- str_tb("("+rtostr(J+Idx)+")",Out);
- else{
- JJ=length(Idx)-1;
- if(J<JJ) JJ=J;
- str_tb(my_tex_form(Idx[JJ]),Out);
- }
- if(J<II) str_tb(" & ",Out);
- }
- str_tb("\\\\\n ",Out);
- }
- }
- else str_tb("\\\\\n ",Out);
- for(J=0; J<S[1]; J++){
- if(J!=0) str_tb(" & ",Out);
- if(type(SS[I][J])==7) str_tb(SS[I][J],Out);
- }
- }
- Out=str_tb("\n\\end{", Out);
- if(II==S[0]) Out=str_tb((Lim==0&&F!=1)?MT[2]+Mat:Mat+"\\right"+MT[1],Out);
- else Out=str_tb(Mat+"\\right.",Out);
- }
- SS = str_tb(0,Out);
- if(FL!=1) return SS;
- if(F==1) LLL=idiv((LLL+S[1])*5+13,6);
- else LLL+=2*(1+S[1]);
- return [SS,LLL];
-}
-
-def sint(N,P)
-{
- if( type(N)==1 || N==0 ) {
- NT=ntype(N);
- if((type(Opt=getopt(str))==1 || Opt==0) && Opt>=0 && P>=0){
- if(Opt==2 || Opt==4 || Opt==0){
- if(N==0) return (Opt>0)?"0":0;
- Pw=0;
- if(NT==4){
- NN=abs(real(N));N1=abs(imag(N));
- if(NN<N1) NN=N1;
- }else NN=abs(N);
- while(NN<1 && NN>-1){
- Pw--;
- N*=10;NN*=10;
- }
- while(N>=10 || N<=-10){
- Pw++;
- N/=10;NN/=10;
- }
- if(Opt==0) return sint(N*10^Pw,P-Pw-1);
- S=(getopt(sqrt)==1)?sint(N,P|str=(Opt==4)?3:1,sqrt=1):sint(N,P|str=(Opt==4)?3:1);
- if(Pw==0) return S;
- if(NT==4)
- S="("+S+")";
- if(Pw==1){
- if(Opt==2)
- return S+"*10";
- else
- return S+"\\times10";
- }
- if(Opt==2)
- return S+"*10^("+rtostr(Pw)+")";
- else
- return S+"\\times10^{"+rtostr(Pw)+"}";
- }
- if(NT==4){
- NN=real(N);
- if(NN!=0){
- S=sint(NN,P|str=1);
- if(imag(N)>0) S=S+"+";
- }
- else S="";
- S=S+sint(imag(N),P|str=1)+((Opt==3)?((getopt(sqrt)==1)?"\\sqrt{-1}":"i"):"@i");
- return S;
- }
- if(N<0){
- N=-N;
- Neg="-";
- }else Neg="";
- N=rint(N*10^P)/10^P;
- NN=floor(N);
- NV=(N-NN+1)*10^P;
- NS=rtostr(NN);
- if(P<=0) return Neg+NS;
- if(NN==0 && getopt(zero)==0) NS="";
- return Neg+NS+"."+str_cut(rtostr(NV),1,P);
- }
- if(NT==4)
- return sint(real(N),P)+sint(imag(N),P)*@i;
- X = rint( N*10^P );
- return deval(X/10^P);
- }
- if( (type(N)==2) || (type(N)==3) ){
- NN = eval(N);
- if( type(NN)==1 )
- return sint(NN,P|option_list=getopt());
- else return N;
- }
- if( type(N)>3 && type(N) < 7)
-#ifdef USEMODULE
- return mtransbys(os_md.sint,N,[P]|option_list=getopt());
-#else
- return mtransbys(sint,N,[P]|option_list=getopt()));
-#endif
- return N;
-}
-
-def frac2n(N)
-{
- if((T=type(N))<0) return N;
- E=(getopt(big)==1)?eval(@e):0.1;
- if(T==1){
- if(ntype(N)==0) return (E*N)/E;
- else if(ntype(N)!=4) return N;
- else return (E*(1+@i)*N)/(E*(1+@i));
- }
- if(T==3||T==2){
- N=red(N);
- Nm=nm(N);Var=vars(Nm);V=car(Var);K=length(Var);
- for(S=0,I=mydeg(Nm,V);I>=0;I--) S+=frac2n(mycoef(Nm,I,V))*V^I;
- return S/dn(N);
- }
- if(T<4) return (E*N)/E;
-#ifdef USEMODULE
- return mtransbys(os_md.frac2n,N,[]|option_list=getopt());
-#else
- return mtransbys(frac2n,N,[]|option_list=getopt());
-#endif
-}
-
-def xyproc(F)
-{
- if(type(Opt=getopt(opt))!=7) Opt="";
- if(type(Env=getopt(env))!=7)
- Env=(!TikZ)?"xy":"tikzpicture";
- if(F==1)
- return(Opt=="")?"\\begin{"+Env+"}\n":"\\begin{"+Env+"}["+Opt+"]\n";
- if(F==0) return "\\end{"+Env+"}\n";
- if(type(F)==7){
- F=xyproc(1|opt=Opt,env=Env)+F+xyproc(0|env=Env);
- if(getopt(dviout)==1) dviout(F);
- else return F;
- }
-}
-
-def xypos(P)
-{
- if(type(P[0])==7){
- if(P[0]=="") S="";
- else S=(!TikZ)?"\""+P[0]+"\"":"("+P[0]+")";
- }
- else{
- if(TikZ==0 && XYcm==1){
- X=sint(P[0]*10,XYPrec); Y=sint(P[1]*10,XYPrec);
- }else{
- X=sint(P[0],XYPrec); Y=sint(P[1],XYPrec);
- }
- S="("+rtostr(X)+","+rtostr(Y)+")";
- }
- if(!TikZ){
- if(length(P)>2 && (PP=P[2])!=""){
- S=S+" *";
- if(type(PP)==4 && length(PP)==2 && type(PP[0])==7){
- S=S+PP[0];
- PP=PP[1];
- }
- if(type(PP)==7){
- L=str_len(PP);
- if(str_chr(PP,0,"$")==0 && str_chr(PP,L-1,"$")==L-1){
- PP=str_cut(PP,1,L-2);
- }else S+="\\txt";
- }
- else PP=my_tex_form(PP);
- S=S+"{"+PP+"}";
- }
- if(length(P)>3){
- if(type(P[3])==7 && P[3]!="") S=S+"=\""+P[3]+"\"";
- if(length(P)>4 && type(P[4])==7) S=S+P[4];
- }
- }else{
- T="";
- if(length(P)>2 && (PP=P[2])!=""){
- F=1;
- if(type(PP)==4){
- if(length(PP)==2 && type(PP[0])==7){
- T="["+PP[0]+"]";
- PP=PP[1];
- }
- }
- if(type(PP)!=7) PP="$"+my_tex_form(PP)+"$";
- S=S+"{"+PP+"}";
- }else F=0;
- if(length(P)>3){
- if(type(P[3])==7 && P[3]!="") T=T+"("+P[3]+")";
- else if(P[3]==1) T=T+"(_)";
- if(length(P)>4 && type(P[4])==7) S=S+P[4];
- }
- if(length(P)>2){
- if(F) S="node"+T+" at"+S;
- else S="coordinate"+T+" at"+S;
- }
- }
- return S;
-}
-
-def xyput(P)
-{
- if((type(Sc=getopt(scale))==1 && Sc!=1) || type(Sc)==4){
- if(type(Sc)==1) Sc=[Sc,Sc];
- Sx=Sc[0];Sy=Sc[1];
- if(length(P)>2)
- P1=cons(Sy*P[1],cdr(cdr(P)));
- else P1=[Sy*P[1]];
- P=cons((type(P[0])==7)?P[0]:(Sx*P[0]),P1);
- }
- if(!TikZ) return "{"+xypos(P)+"};\n";
- return "\\"+xypos(P)+";\n";
-}
-
-def xyline(P,Q)
-{
- if(!TikZ) return "{"+xypos(P)+" \\ar@{-} "+xypos(Q)+"};\n";
- if(type(T=getopt(opt))!=7) T="";
- else T="["+T+"]";
- if(length(P)<3 && length(Q)<3)
- return "\\draw"+T+xypos(P)+"--"+xypos(Q)+";\n";
- if(length(P)==2) P=[P[0],P[1],"","_0"];
- else if(length(P)==3 || (length(P)==4 && P[3]==""))
- P=[P[0],P[1],P[2],"_0"];
- else if(length(P)>4 && P[3]=="")
- P=[P[0],P[1],P[2],"_0",P[4]];
- if(length(Q)==2) Q=[Q[0],Q[1],"","_1"];
- else if(length(Q)==3 || (length(Q)==4 && Q[3]==""))
- Q=[Q[0],Q[1],Q[2],"_1"];
- else if(length(Q)>4 && Q[3]=="")
- Q=[Q[0],Q[1],Q[2],"_1",Q[4]];
- return "\\draw "+T+xypos(P)+" "+xypos(Q)+"("+P[3]+")--("+Q[3]+");\n";
-}
-
-def xylines(P)
-{
- Lf=getopt(curve);
- if(type(Lf)!=1) Lf=0;
- SS=getopt(opt);
- SF=(SS==0)?1:0;
- if((Proc=getopt(proc))==1||Proc==2||Proc==3){
- OL=cons(["opt",0],delopt(getopt(),["opt","proc"]));
- R=xylines(P|option_list=OL);
- OP=(type(SS)<0)?[]:((type(SS)==4)?[["opt",SS[0]],["cmd",SS[1]]]:[["opt",SS]]);
- return [1,OP,R];
- }
- if(type(SS)!=7 && type(SS)!=4){
- if(Lf==0 && !TikZ) SS="@{-}";
- else SS="";
- }
- if(type(Sc=getopt(scale))==1 || type(Sc)==4){
- if(type(Sc)==1) Sc=[Sc,Sc];
- Sx=Sc[0];Sy=Sc[1];
- if(Sx!=1 || Sy!=1){
- for(PP=[], P0=P; P0!=[]; P0=cdr(P0)){
- PT=car(P0);
- if((type(PT)!=4 && type(PT)!=5) || (type(PT[0])!=1 && PT[0]!=0))
- PP=cons(PT,PP);
- else{
- if(length(PT)>2 && type(PT)==4)
- P1=cons(Sy*PT[1],cdr(cdr(PT)));
- else P1=[Sy*PT[1]];
- PP=cons(cons(Sx*PT[0],P1),PP);
- }
- }
- P=reverse(PP);
- }
- }
- if(type(Cl=CL0=getopt(close))!=1) Cl=0;
- if((Vb=getopt(verb))!=1&&type(Vb)!=4) Vb=0;
- if(type(Lf)!=1 || Lf==0){ /* lines */
- if(TikZ||SF){
- for(L=[],F=0,PT=P;PT!=[];PT=cdr(PT)){
- if(type(car(PT))<4){
- L=cons(car(PT),L);
- F=0;
- }else{
- if(F++>1) L=cons(1,L);
- L=cons(car(PT),L);
- }
- }
- if(Cl==1){
- L=cons(1,L);L=cons(-1,L);
- }
- if(L) L=reverse(L);
- if(SF) return L;
- if(type(SS)!=4) S=xybezier(L|opt=SS);
- else S=xybezier(L|opt=SS[0],cmd=SS[1]);
-
- }else{
- Out = str_tb(0,0);
- for(PT=P; PT!=[]; ){
- PS1=car(PT);
- PT=cdr(PT);
- if(PT==[]){
- if(Cl==1) PS2=car(P);
- else PS2=0;
- }else PS2=car(PT);
- str_tb(xyarrow(PS1,PS2|opt=SS),Out);
- }
- S=str_tb(0,Out);
- }
- }else if(Lf==2){ /* B-spline */
- if(SF) return P;
- if(!TikZ){
- Out = str_tb("{\\curve{",0);
- for(PT=P;PT!=[];PT=cdr(PT)){
- if(car(PT)==0){
- str_tb("}};\n{\\curve{",Out);
- continue;
- }
- if(PT!=P) str_tb("&",Out);
- str_tb(xypos([car(PT)[0],car(PT)[1]]),Out);
- }
- str_tb("}};\n",Out);
- S=str_tb(0,Out);
- }else Out=str_tb(xybezier(P|opt=SS),0);
- for(I=0;I<2;I++){
- Q=car(P);
- if(length(Q)>2)
- str_tb(xyput(Q),Out);
- P=reverse(P);
- }
- S=str_tb(0,Out);
- }else{ /* extended Bezier */
- RTo=getopt(ratio);
- if(type(Acc=getopt(Acc))!=1) Acc=0;
- if(type(RTo)!=1 || RTo>1.5 || RTo<0.001) RTo=0;
- if(Cl==1){
- PR=reverse(P);
- PT=car(PR);
- PR=cons(P[0],PR);
- PR=cons(P[1],PR);
- P=cons(PT,reverse(PR));
- }else if(Cl==-1) Cl=1;
- for(L=P2=P3=0,PT=P;;){
- P1=P2;P2=P3;P3=P4;
- P4=(PT==[])?0:car(PT);
- if(PT==[] && (Cl==1 || P3==0)) break;
- PT=cdr(PT);
- if(P3==0) str_tb("%\n", Out);
- if(P2==0 || P3==0 || (Cl==1 && P1==0)) continue;
- if(L!=0){
- if(car(L)==P2)
- L=cons(1,L);
- else{
- L=cons(0,L); L=cons(P2,L);
- }
- }else L=[P2];
- X=P3[0]-P2[0];Y=P3[1]-P2[1];
- DL1=DL2=0;DL=Acc?sqrt(X^2+Y^2):dsqrt(X^2+Y^2);
- if(P4!=0){
- XD1=P4[0]-P2[0];YD1=P4[1]-P2[1];DL1=Acc?sqrt(XD1^2+YD1^2):dsqrt(XD1^2+YD1^2);
- }
- if(P1!=0){
- XD2=P3[0]-P1[0];YD2=P3[1]-P1[1];DL2=Acc?sqrt(XD2^2+YD2^2):dsqrt(XD2^2+YD2^2);
- }
- if(RTo!=0)
- R=RTo;
- else if(DL1>0 && DL2>0){
- Cos=(XD1*XD2+YD1*YD2)/(DL1*DL2);
- RT=4/(3*(Acc?sqrt((1+Cos)/2):dsqrt((1+Cos)/2))+3);
- R=DL*RT/(DL1+DL2);
- }else if(DL1!=0)
- R=DL/(2*DL1);
- else if(DL2!=0)
- R=DL/(2*DL2);
- if(DL2!=0) L=cons([P2[0]+R*XD2,P2[1]+R*YD2],L);
- if(DL1!=0) L=cons([P3[0]-R*XD1,P3[1]-R*YD1],L);
- L=cons([P3[0],P3[1]],L);
- }
- if(CL0==1) L=cons(-1,cdr(L));
- if(L!=0) L=reverse(L);
- if(SF) return L;
- if(type(SS)==4)
- S=xybezier(L|opt=SS[0],cmd=SS[1],verb=Vb);
- else
- S=xybezier(L|opt=SS,verb=Vb);
- }
- if(getopt(dviout)!=1) return S;
- xyproc(S|dviout=1);
-}
-
-def saveproc(S,Out)
-{
- if(type(Out)==4){
- Out=cons(S,Out);
- return Out;
- }else{
- str_tb(S,Out);
- return Out;
- }
-}
-
-def xygrid(X,Y)
-{
- for(RR=[],I=0,Z=X;I<2;I++){
- U=Z[2];L=LL=[];M=Z[3];
- if(Z[1]==1||Z[1]==-1){
- if(type(M)==4) L=M;
- else{
- if(U*(-dlog(1-1/20)/dlog(10))>=M){
- L=cons([1,2,1/10],L);
- LL=cons([1,2,1/2],LL);
- }else if(U*(-dlog(1-1/10)/dlog(10))>=M)
- L=cons([1,2,1/5],L);
- else if(U*(-dlog(1-1/4)/dlog(10))>=M)
- L=cons([1,2,1/2],L);
- if(U*(-dlog(1-1/50)/dlog(10))>=M){
- L=cons([2,5,1/10],L);
- LL=cons([2,5,1/2],LL);
- }else if(U*(-dlog(1-1/25)/dlog(10))>=M)
- L=cons([2,5,1/5],L);
- else if(U*(-dlog(1-1/10)/dlog(10))>=M)
- L=cons([2,5,1/2],L);
- if(U*(-dlog(1-1/100)/dlog(10))>=M){
- L=cons([5,10,1/10],L);
- LL=cons([5,10,1/2],LL);
- }
- else if(U*(-dlog(1-1/50)/dlog(10))>=M)
- L=cons([5,10,1/5],L);
- else if(U*(-dlog(1-1/20)/dlog(10))>=M)
- L=cons([5,10,1/2],L);
- L=cons(L,cons(LL,[[[1,10,1]]]));
- }
- R=scale(L|scale=U);
- if(Z[1]==-1){
- for(LL=[];R!=[];R=cdr(R)){
- for(L=[],T=car(R);T!=[];T=cdr(T)) L=cons(U-car(T),L);
- LL=cons(reverse(L),LL);
- }
- R=reverse(LL);
- }
- }else if(Z[1]==0){
- if(type(M)==4){
- R=scale(M|f=x,scale=U);
- }else{
- V=0;
- if(U/10>=M) V=1/10;
- else if(U/5>=M) V=1/5;
- else if(U/2>=M) V=1/2;
- R=[];
- if(V>0){
- UU=U*V;
- for(R=[],J=UU;J<U;J+=UU) R=cons(J,R);
- }
- if(V==1/10) L=[U/2];
- else L=[];
- R=cons(R,cons(L,[[0,U]]));
- }
- }else if(type(Z[1])==4){
- R=Z[1];
- if(length(R)==0||type(R[0])!=4) R=[[],[],R];
- }else return 0;
- K=length(R);
- S=newvect(K);
- for(J=0;J<K;J++){
- for(S[J]=[],JJ=0;JJ<=Z[0];JJ+=U){
- for(P=R[J];P!=[];P=cdr(P))
- if(car(P)+JJ<=Z[0]) S[J]=cons(car(P)+JJ,S[J]);
- }
- }
- for(J=0;J<K;J++) S[J]=lsort(S[J],[],1);
- for(U=[],J=K-1;J>0;J--){
- U=lsort(S[J],U,0);S[J-1]=lsort(S[J-1],U,1);
- }
- RR=cons(vtol(S),RR);
- Z=Y;
- }
- if((Raw=getopt(raw))==1) return RR;
- SS=[];
- if(type(Sf=getopt(shift))==7){
- Sx=Sf[0];Sy=Sf[1];
- }else Sx=Sy=0;
- for(I=0;I<2;I++){
- for(S0=[],L=RR[I];L!=[];L=cdr(L)){
- for(S=[],T=car(L);T!=[];T=cdr(T)){
- if(S!=[]) S=cons(0,S);
- if(I==0){
- S=cons([X[0]+Sx,car(T)+Sy],S);
- S=cons([Sx,car(T)+Sy],S);
- }else{
- S=cons([car(T)+Sx,Y[0]+Sy],S);
- S=cons([car(T)+Sx,Sy],S);
- }
- }
- S0=cons(S,S0);
- }
- SS=cons(reverse(S0),SS);
- }
- SS=reverse(SS);
- if(Raw==2) return SS;
- if(length(Y)<5) T=[["",""]];
- else if(type(Y[4])==4) T=[Y[4]];
- else T=[Y[4],Y[4]];
- if(length(X[4])==4) T=cons([""],T);
- else if(type(X[4])==4) T=cons(X[4],T);
- else T=cons([X[4]],T);
- for(Sx=Sy=[],I=0;I<2;I++){
- TT=T[I];
- for(V=SS[I];V!=[];V=cdr(V)){
- Op=car(TT);
- if(length(TT)>1) TT=cdr(TT);
- if(car(V)==[]) continue;
- if(Op=="") S=xylines(car(V));
- else S=xylines(car(V)|opt=Op);
- if(I==0) Sx=cons(S,Sx);
- else Sy=cons(S,Sy);
- }
- }
- for(S="",Sx=reverse(Sx), Sy=reverse(Sy);Sx!=[]&&Sy!=[];){
- if(Sx!=[]){
- S+=car(Sx);Sx=cdr(Sx);
- }
- if(Sy!=[]){
- S+=car(Sy);Sy=cdr(Sy);
- }
- }
- return S;
-}
-
-
-def addIL(I,L)
-{
- if(I==0){
- for(R=[];L!=[];L=cdr(L)) R=addIL(car(L),R);
- return reverse(R);
- }
- if(type(In=getopt(in))==1){
- if(In==-1){
- J=JJ=I[1];I=I[0];
- for(R=[];L!=[];L=cdr(L)){
- J=lmin([car(L)[0],JJ]);
- if(J>I) R=cons([I,J],R);
- I=lmax([car(L)[1],I]);
- }
- if(I<JJ) R=cons([I,JJ],R);
- return reverse(R);
- }else{
- for(;L!=[];L=cdr(L)){
- if(car(L)[0]>I) return 0;
- if(car(L)[1]>=I){
- if(In==3) return car(L);
- if(In==1||(I!=car(L)[0]&&I!=car(L)[1])) return 1;
- return 2;
- }
- }
- return 0;
- }
- }
- I0=car(I);I1=I[1];
- for(F=0,R=[];L!=[];L=cdr(L)){
- if(I0>car(L)[1]){
- R=cons(car(L),R);
- continue;
- }
- if(I0<=car(L)[1]){
- I0=lmin([I0,car(L)[0]]);
- if(I1<car(L)[0]){
- R=cons([I0,I1],R);
- for( ;L!=[];L=cdr(L)) R=cons(car(L),R);
- F=1;
- break;
- }
- I1=lmax([I1,car(L)[1]]);
- }
- }
- if(!F) R=cons([I0,I1],R);
- return reverse(R);
-}
-
-def xy2curve(F,N,Lx,Ly,Lz,A,B)
-{
- Raw=getopt(raw);
- if(type(Gap=getopt(gap))==4){
- MG=Gap[1];Gap=car(Gap);
- }else MG=3;
- if(type(Gap)!=1 && Gap!=0) Gap=0.7;
- if(type(Dvi=getopt(dviout))<1) Dvi=0;
- OL=[["dviout",Dvi]];
- if(type(Opt=getopt(opt))<1) Opt=0;
- else OL=cons(["opt",Opt],OL);
- if(type(Sc=getopt(scale))!=1 && type(Sc)!=4) Sc=[1,1,1];
- else if(type(Sc)!=4) Sc=[Sc,Sc,Sc];
- else if(length(Sc)!=3) Sc=[Sc[0],Sc[1],Sc[1]];
- M=diagm(3,Sc);
- if(A!=0||B!=0){
- if(type(A)!=6){ /* M=mrot([-A,B,0]|deg=1)*M; */
- Pi=deval(@pi);
- Ac=dcos(Pi*A/180);As=dsin(Pi*A/180);
- M=mat([Ac,As,0],[-As,Ac,0],[0,0,1])*M;
- Ac=dcos(Pi*B/180);As=dsin(Pi*B/180);
- M=mat([Ac,0,As],[0,1,0],[-As,0,Ac])*M;
- }else M=A;
- V=M*newvect(3,[x,y,z]);
- Fx=compdf(V[0],[x,y,z],F);Fy=compdf(V[1],[x,y,z],F);Fz=compdf(V[2],[x,y,z],F);
- }else{
- for(I=0;I<3;I++){
- if(type(T=F[I])!=4) T=f2df(T);
- if(type(T)==4) T=cons(car(T)*Sc[I],cdr(T));
- else T*=Sc[I];
- if(I==0) Fx=T;
- else if(I==1) Fy=T;
- else Fz=T;
- }
- }
- if(Raw==5||!Gap)
- return (Dvi||!Gap)? xygraph([Fy,Fz],N,Lx,Ly,Lz|option_list=OL):[Fx,Fy,Fz];
- R=xygraph([Fy,Fz],N,Lx,Ly,Lz|raw=2);
- R0=cdr(car(R));R1=R[1];
- for(LT=[];R0!=[];R0=cdr(R0),R1=cdr(R1))
- if(car(R0)!=0) LT=cons([R1[0],R1[1]],LT);
- LT=reverse(LT);
- if(N<0){
- Be=xylines(car(R)|curve=1,proc=3,close=-1);
- LT=reverse(cdr(LT));
- LT=reverse(cdr(LT));
- }
- else Be=xylines(car(R)|curve=1,proc=3);
- Be=cdr(cdr(Be));
- Be=lbezier(car(Be));
- if(Raw==4) return [Be,LT,Lx];
- X=ptcombz(Be,0,0);
- Var=(length(Lx)==3)?car(Lx):x;
- if(type(Eq=getopt(eq))!=1) Eq=0.01;
- if(TikZ==1){
- Gap/=10;Eq/=10;
- }
- for(R=[],XT=X;XT!=[];XT=cdr(XT)){
- V=car(XT);
- U=LT[V[0][0]];
- T=U[0]*V[1][0]+U[1]*(1-V[1][0]);
- VV=myfdeval(Fx,[Var,T]);
- U=LT[V[0][1]];
- T=U[0]*V[1][1]+U[1]*(1-V[1][1]);
- VV-=myfdeval(Fx,[Var,T]);
- if(abs(VV)<Eq) continue;
- I=(VV<0)?0:1;
- R=cons([V[0][I],V[1][I],V[0][1-I],V[1][1-I]],R);
- }
- R=qsort(R);
- if(Raw==3) return [Be,R];
- Db=newvect(L=length(Be));
- for(I=0;I<L;I++) Db[I]=[];
- for(TR=R;TR!=[];TR=cdr(TR)){
- V1=ptbezier(Be,[I=car(TR)[0],P=car(TR)[1]])[1];
- V2=ptbezier(Be,[car(TR)[2],car(TR)[3]])[1];
- T=dsqrt(1-dvangle(V1,V2)^2);
- if(T<1/MG) T=MG;
- GP=Gap/T;
- W=GP/dnorm(V1);
- Db[I]=addIL([P-W,P+W],Db[I]);
- if(P-W<0 && I>0) Db[I-1]=addIL([P-W+1,1],Db[I-1]);
- if(P+W>1 && I+1<L) Db[I+1]=addIL([0,P+W-1],Db[I+1]);
- }
- Db=vtol(Db);
- for(Bf=[];Be!=[];Be=cdr(Be),Db=cdr(Db)){
- if(car(Db)==[]) Bf=cons(car(Be),Bf);
- else{
- D=addIL([0,1],car(Db)|in=-1);
- for(;D!=[];D=cdr(D))
- Bf=cons(tobezier(car(Be)|inv=car(D)),Bf);
- }
- }
- Bf=reverse(Bf);
- if(Raw==2) return Bf;
- OL=[];
- if(Opt){
- if(type(Opt)==4&&length(Opt)>1) OL=[["opt",Opt[0]],["cmd",Opt[1]]];
- else OL=[["opt",Opt]];
- }else OL=[];
- S=xybezier(lbezier(Bf|inv=1)|option_list=OL);
- if(Raw==1||!Dvi) return S;
- return xyproc(S|dviout=Dvi);
-}
-
-def xy2graph(F0,N,Lx,Ly,Lz,A,B)
-{
- /* (x,y,z) -> (z sin B + x cos A cos B + y sin A cos B,
- -x sin A + y cos A, z cos B - x cos A sin B - y sin A sin B) */
- if((Proc=getopt(proc))==1||Proc==2){
- OPT0=[["proc",3]];
- }else{
- Proc=0;OPT0=[];
- }
- if(type(DV=getopt(dviout))==4){
- S=["ext","shift","cl","dviout"];
- OL=delopt(getopt(),S);
- OL=cons(["proc",1],OL);
- R=xy2graph(F0,N,Lx,Ly,Lz,A,B|option_list=OL);
- OL=delopt(getopt(),S|inv=1);
- return execdraw(R,DV|optilon_list=OL);
- }
- if(N==0 || N>100 || N<-100) N=-16;
- if(N<0){
- N=-N;N1=-1;N2=NN+1;
- }else{
- N1=0;N2=NN=N;
- }
-
- Ratio=Ratio2=1;
- if(type(Sc=Sc0=getopt(scale))!=1 && type(Sc)!=4) Sc=1;
- if(type(Sc)==4){
- Ratio=Sc[1]/Sc[0];
- if(length(Sc)>2) Ratio2=Sc[2]/Sc[0];
- Sc=Sc[0];
- }
- if(type(Vw=getopt(view))!=1) Vw=0;
- if(type(Raw=getopt(raw))!=1) Raw=0;
- if(type(M1=getopt(dev))==1) M2=M1;
- else if(type(M1)==4){
- M2=M1[1];M1=M1[0];
- }else M1=0;
- if(type(M3=getopt(acc))!=1 || (M3<0.5 && M3>100)) M3=1;
- if(M1<=0) M1=16;
- if(M2<=0) M2=16;
- OL=[["para",1],["scale",Sc]];
- if(Raw==1) OL=cons(["raw",1],OL);
- if(type(Prec=getopt(prec))>=0) OL=cons(["prec",Prec],OL);
- L=newvect(4,[[Lx[1],Ly[0]],[Lx[1],Ly[1]],[Lx[0],Ly[1]],[Lx[0],Ly[0]]]);
- Lx=[deval(Lx[0]),deval(Lx[1])];
- Ly=[deval(Ly[0]),deval(Ly[1])];
- Lz=[deval(Lz[0]),deval(Lz[1])];
- A=(A0=A)%360;
- F00=F0;
- if(type(F0)<4){
- FC=f2df(F0);
- if(findin(z,Vars=vars(FC))>=0 && findin(x,Vars)<0 && findin(y,Vars)<0)
- F0=[w,[z,0,x+y*@i],[w,os_md.abs,FC]];
- }
- if(type(Org=getopt(org))==4){ /* shift origin */
- Lx=[Lx[0]-Org[0],Lx[1]-Org[0]];
- Ly=[Ly[0]-Org[1],Ly[1]-Org[1]];
- Lz=[Lz[0]-Org[2],Lz[1]-Org[2]];
- F0=mysubst(F0,[[x,x+Org[0]],[y,y+Org[1]]]);
- if(type(F0)==4){
- F0=cons(F0[0]-Org[2],cdr(F0));
- }
- else F0-=Org[2];
- }else Org=[0,0,0];
- Cpx=getopt(cpx);
- if(type(Cpx)<0){
- if(str_str(rtostr(F0),"@i")>=0) Cpx=1;
- else Cpx=0;
- }
- if(A<0) A+=360;
- if(A<90){
- Sh=1;F1=F0;Cx=x-Org[0];Cy=y-Org[1];
- }else if(A<180){ /* x -> y, y -> -x */
- Sh=2;A-=90; F1=mulsubst(F0,[[x,-y],[y,x]]);
- LL=Ly;Ly=[-Lx[1],-Lx[0]];Lx=LL;Cx=y-Org[1];Cy=-x+Org[0];
- }else if(A<270){
- Sh=3;A-=180; F1=subst(F0,[[x,-x],[y,-y]]);
- Lx=[-Lx[1],-Lx[0]];Ly=[-Ly[1],-Ly[0]];Cx=-x+Org[0];Cy=-y+Org[1];
- }else{
- Sh=4;A-=270;F1=mulsubst(F0,[[x,y],[y,-x]]);
- LL=Lx;Lx=[-Ly[1],-Ly[0]];Ly=LL;Cx=-y+Org[1];Cy=x-Org[0];
- }
- A=@pi*A/180; B=@pi*B/180;
- if(A==0) A=@pi/3;
- if(B==0) B=@pi/12;
- NN=N*M2;
- Ac=dcos(deval(A)); As=dsin(deval(A));
- if(Ac<=0.087 || As<=0.087){
- mycat(["Unsuitable angle",A0,"(6-th argument)!"]);
- return -1;
- }
- Bc=Ratio*dcos(deval(B)); Bs=dsin(deval(B));
- if(Bc<0){
- mycat("Unsuitable angle (7-th argument)!");
- return -1;
- }
- /*
- z = f(x,y) => X=-As*x+Ac*y, Y= Bc*f(x,y)-Bsc*x-Bss*y
- Out X-coord is in [X0,X1], dvided by Dev segments
- J-th segment of Y-coord : ZF[J]==1 => [Z0[0],Z1[J]]
- */
- Bsc=Bs*Ac;Bss=Bs*As;
- if(Ratio2!=1){
- if(Sh%2==1){
- Ac*=Ratio2;Bss*=Ratio2;
- }else{
- As*=Ratio2;Bsc*=Ratio2;
- }
- }
- CX=-As*Cx+Ac*Cy;CY=Bc*(z-Org[2])-Bsc*Cx-Bss*Cy;
- if(type(Dvi=getopt(dviout))!=1 && getopt(trans)==1) return [CX*Sc,CY*Sc];
- if(type(N1=getopt(inf))==1){
- if(Proc) Dvi=N1;
- else if(Dvi<=0) Dvi=-N1;
- }
- X0=-As*Lx[1]+Ac*Ly[0];X1=-As*Lx[0]+Ac*Ly[1];
- F1=mysubst(F1,[@pi,deval(@pi)]);
- Tf=type(F1=f2df(F1|opt=0));
- if(Tf!=4) F=Bc*F1-Bsc*x-Bss*y;
- else F=append([Bc*F1[0]-Bsc*x-Bss*y],cdr(F1));
- Dx=(Lx[1]-Lx[0])/NN; Dy=(Ly[1]-Ly[0])/NN;
- if(type(Err=getopt(err))==1)
- F=mysubst(F,[[x,x+Err*Dx/1011.23],[y,y+Err*Dy/1101.34]]);
- Out=(Proc)?[]:str_tb(0,0);
- Dev=N*M1;
- XD=(X1-X0)/Dev;
- OLV=newvect(2,[OL,OL]);
- if(type(Ura=getopt(opt))==4 || type(Ura)==7){
- if(type(Ura)==7) Ura=[Ura,Ura];
- else{
- OLV[0]=cons(["opt",Ura[0]],OL);
- OLV[1]=cons(["opt",Ura[1]],OL);
- }
- }
- for(KC=0; KC<=1; KC++){ /* draw curves */
- Z0=newvect(Dev+1); Z1=newvect(Dev+1); ZF=newvect(Dev+1);
- for(I=0; I<=NN; I++){
- FV=I%M2;
- if(KC==0){
- X=x; Y=Ly[1]-I*Dy; LX=Lx; DD=Dx; G=mysubst(F,[y,Y]);
- if(!FV){
- if(!Proc) str_tb(["%y=",rtostr(Y),"\n"],Out);
- else Out=cons([-2,"y="+rtostr(Y)],Out);
- }
- }else{
- X=Lx[1]-I*Dx; Y=x; LX=Ly; DD=Dy; G=mysubst(F,[[x,X],[y,Y]]);
- if(!FV){
- if(!Proc) str_tb(["%x=",rtostr(X),"\n"],Out);
- else Out=cons([-2,"x="+rtostr(X)],Out);
- }
- }
- XX=-As*X+Ac*Y; A1=coef(XX,1,x); A0=coef(XX,0,x); /* XX = A1*x + A0, x = (XX-A0)/A1 */
- if(!FV && Vw==1){
- if(Proc) Out=cons(xygraph([XX,G],N,LX,[X0,X1],Lz|scale=Sc,para=1,proc=3),Out);
- else str_tb(xygraph([XX,G],N,LX,[X0,X1],Lz|scale=Sc,para=1),Out);
- continue;
- }
- V=VT=LX[1];
- J0=(subst(XX,x,LX[0])-X0)/XD; J1=(subst(XX,x,LX[1])-X0)/XD;
- if(J0<J1){
- J0=ceil(J0); J1=floor(J1); JD=1; /* fixed x: y: dec => (x,z):(dec,inc) */
- }else{
- J0=floor(J0); J1=ceil(J1); JD=-1; /* fixed y: x: dec => (x,z):(inc,inc) */
- }
- for(FF=1,J=J1;;J-=JD){
- V1=VT;
- VT=(X0+J*XD-A0)/A1;GG=mysubst(G,[x,VT]);
- if(Cpx>=1) VV=myeval(GG);
- else VV=(Tf==4)? mydeval(GG):deval(GG); /* J -> V */
- if(ZF[J]==0 || VV<=Z0[J] || VV>=Z1[J]){ /* visible */
- if(FF==0){
- V0=(VT+V1)/2;
- if(!FV && Vw==-1 && Raw!=1){ /* draw doted line */
- K=ceil(M3*(V-V0)/(M2*DD));
- if(N1<0) K=-K;
- OPT=append(OPT0,[["opt",(TikZ)?"dotted":"~*=<3pt>{.}"],["scale",Sc],["para",1]]);
- Out=saveproc(xygraph([XX,G],K,[V0,V],[X0-1,X1+1],Lz|
- option_list=OPT),Out);
- }
- V=V0;
- }
- if(ZF[J]==0){
- ZF[J]=1; Z0[J]=Z1[J]=VV;
- }else if(VV<=Z0[J]) Z0[J]=VV;
- else Z1[J]=VV;
-
- if(VV>=Z1[J]) FF=1;
- else if(VV<=Z0[J]) FF=-1;
- }else{
- if(FF!=0){
- V0=(VT+V1)/2;
- K=ceil(M3*(V-V0)/(M2*DD));
- if(N1<0) K=-K;
- if(!FV){
- OPT=append(OPT0,OLV[(1-FF)/2]);
- Out=saveproc(xygraph([XX,G],K,[V0,V],[X0-1,X1+1],Lz|option_list=OPT),Out);
- }
- V=V0;
- }
- FF=0;
- }
- if(J==J0) break;
- }
- if(FV) continue;
- V0=LX[0];K=ceil(M3*(V-V0)/(M2*DD));
- if(N1<0) K=-K;
- if(FF!=0){
- if(Raw!=1){
- OPT=append(OPT0,OLV[(1-FF)/2]);
- Out=saveproc(xygraph([XX,G],K,[V0,V],[X0-1,X1+1],Lz|option_list=OPT),Out);
- }else if(Vw==-1 && Raw!=1){
- OPT=append(OPT0,[["opt",(TikZ)?"dotted":"~*=<3pt>{.}"]]);
- Out=saveproc(xygraph([XX,G],K,[V0,V],[X0-1,X1+1],Lz|option_list=OPT),Out);
- }
- }
- }
- }
- OptSc=(Sc==1)?[]:[["scale",Sc]];
- if(type(LZ=getopt(ax))==4){ /* draw box */
- FC=0;
- if(length(LZ)==3) FC=LZ[2];
- P0=newvect(2,[-As*Lx[1]+Ac*Ly[1],Bc*(LZ[0]-Org[0])-Bsc*Lx[1]-Bss*Ly[1]]);
- Vx=newvect(2,[As*(Lx[1]-Lx[0]),Bsc*(Lx[1]-Lx[0])]);
- Vy=newvect(2,[Ac*(Ly[0]-Ly[1]),Bss*(Ly[1]-Ly[0])]);
- Vz=newvect(2,[0,Bc*(LZ[1]-LZ[0])]);
- OL=OL0=append(OPT0,OL);
- if(TikZ && type(Ura)==4 && length(Ura)>2) OL0=cons(["opt",Ura[2]],OL);
- LL=[[P0+Vz,P0+Vx+Vz],[P0,P0+Vx]];
- if(Bs>0){
- LL=cons([P0+Vy+Vz,Pz=P0+Vx+Vy+Vz],LL);
- LL=cons([P0+Vx+Vz,Pz],LL);
- PP=Pz-Vz;
- }
- else{
- LL=cons([P0+Vy,Pz=P0+Vx+Vy+Vz],LL);
- LL=cons([P0+Vx,Pz],LL);
- PP=Pz+Vz;
- }
- J=ceil((PP[0]-X0)/XD+0.5);
- LL=append([[P0+Vy,P0+Vy+Vz],[P0+Vy,P0+Vy+Vz],[P0+Vx,P0+Vx+Vz],[P0,P0+Vz],
- [P0+Vz,P0+Vy+Vz],[P0,P0+Vy]],LL);
- for(LL=reverse(LL);LL!=[];LL=cdr(LL)) Out=saveproc(xylines(car(LL)|option_list=OL0),Out);
- if(Dev>4) Dev2=ceil(Dev/2);
- if(FC<0 && Raw!=1){
- if(TikZ){
- if(type(Ura)==4 && length(Ura)>2)
- OL1=cons(["opt",Ura[2]+",dotted"],OL);
- else OL1=cons(["opt","dotted"],OL);
- }else OL1=cons(["opt","@{.}"],OL);
- if(FC==-8) FC=0;
- }
- for(I=0;I<3;I++){ /* box with hidden part */
- if(I==1) Pz=PP-Vx;
- else if(I==2) Pz=PP-Vy;
- LP=Pz-PP;
- for(FV=-1,K=0;K<=Dev2; K++){
- PPx=PP[0]+(K/Dev2)*LP[0]; PPy=PP[1]+(K/Dev2)*LP[1];
- J=ceil((PPx-X0)/XD);
- if(K!=Dev2 && (J<0||J>Dev)) continue;
- if(K!=Dev2 && (ZF[J]==0 || PPy<Z0[J] || PPy>Z1[J])){ /* visible */
- if(FV!=1){
- FV=1;
- PPP=[PPx,PPy];
- }
- }else{
- if(FV!=0){
- if(FV==1) Out=saveproc(xylines([PPP,[PPx,PPy]]|option_list=OL1),Out);
- FV=0;
- }
- }
- }
- }
- if(FC!=0 && Raw!=1){ /* show coordinate*/
- if(iand(FC,4)){
- Sub=1;
- if(TikZ){
- S0="\\scriptsize";S1="";
- }else{
- S0="{}_{"; S1="}";
- }
- }else Sub=0;
- if(iand(FC,2))
- LLL=[[1,0,P0+Vx,(TikZ)?"right":"+!L"],[3,0,P0+Vy,(TikZ)?"left":"+!R"]];
- else LL=[];
- if(Bs>0){
- LLL=cons([0,0,P0,(TikZ)?"below":"+!U"],LLL);
- LLL=cons([2,1,P0+Vx+Vy+Vz,(TikZ)?"above":"+!D"],LLL);
- }else{
- LLL=cons([2,0,P0+Vx+Vy,(TikZ)?"below":"+!U"],LLL);
- LLL=cons([0,1,P0+Vz,(TikZ)?"above":"+!D"],LLL);
- }
- for(TLL=LLL;TLL!=[];TLL=cdr(TLL)){
- TL=car(TLL);LL=L[(Sh+TL[0])%4];
- if(Cpx==0 || Cpx==3){
- S=ltotex([LL[0],LL[1],LZ[TL[1]]]|opt="coord");
- SS="("+rtostr(LL[0]) +","+rtostr(LL[1])+","+rtostr(LZ[TL[1]])+")";
- }else{
- S=ltotex([LL[0]+LL[1]*@i,LZ[TL[1]]]|opt="coord",cpx=Cpx);
- SS="("+rtostr(LL[0])+"+"+rtostr(LL[1])+"i,"+ rtostr(LZ[TL[1]])+")";
- }
- if(TikZ) S="$"+S+"$";
- if(Sub) S=S0+S+S1;
- if(!TikZ) S="$"+S+"$";
- if(Proc) Out=cons([2,OptSc,[TL[2][0],TL[2][1]],[[TL[3],S]],SS],Out);
- else str_tb(xyput([TL[2][0],TL[2][1],[TL[3],S]]|option_list=OptSc),Out);
- }
- }
- }
- if(type(Pt=getopt(pt))==4){ /* option pt=[] */
- if(type(Pt[0])<4) Pt=[[Pt]];
- if(length(Pt)>1&&type(Pt[1])!=4) Pt=[Pt];
- for(PT=Pt;PT!=[];PT=cdr(PT)){
- PP=car(PT);
- if(type(PP)==4 && length(PP)==3 && type(PP[0])<2 && type(PP[2])<2) PP=[PP];
- P=car(PP);
- if(type(P)==7) Q=[P,0];
- else if(P==1) Q=["_",0];
- else Q=mysubst([CX,CY],[[x,deval(P[0])],[y,deval(P[1])],[z,deval(P[2])]]);
- if(length(PP)>1 && type(PP[1])==4 && length(PP[1])==3){ /* draw line */
- PP=cdr(PP);P=car(PP);
- if(type(P)==7) Q1=P;
- else if(P==1) Q="_";
- else Q1=mysubst([CX,CY],[[x,deval(P[0])],[y,deval(P[1])],[z,deval(P[2])]]);
- if(length(PP)<2 || PP[1]==0 || iand(PP[1],1)) OL2="";
- else OL2=(TikZ)?"dotted":"@{.}";
- if(length(PP)>2 && type(PP[2])==7){
- if(OL2=="") OL2=PP[2];
- else{
- if(TikZ) OL2=OL2+",";
- OL2=OL2+PP[2];
- }
- }
- OL1=OL;
- if(OL2!="") OL1=cons(["opt",OL2],OL1);
- if(length(PP)<2 || PP[1]>=0)
- Out=saveproc(xylines([Q,Q1]|option_list=OL1),Out);
- else{
- LP0=Q1[0]-Q[0];LP1=Q1[1]-Q[1];
- for(FV=-1,K=0;K<=Dev2; K++){
- PPx=Q[0]+(K/Dev2)*LP0; PPy=Q[1]+(K/Dev2)*LP1;
- J=ceil((PPx-X0)/XD);
- if(K!=Dev2 && (J<0 || J>Dev || ZF[J]==0 || PPy<Z0[J] || PPy>Z1[J])){
- /* visible */
- if(FV!=1){
- FV=1;
- PPP=[PPx,PPy];
- }
- }else{
- if(FV!=0){
- if(FV==1) Out=saveproc(xylines([PPP,[PPx,PPy]]|option_list=OL1),Out);
- FV=0;
- }
- }
- }
- }
- continue;
- }
- if(length(PP)==1) S="$\\bullet$";
- else if(type(PP[1])==7) S=PP[1];
- else if(type(PP[1])==4){
- if(length(PP[1])>1 && type(PP[1][1])!=7)
- S=cons(car(PP),cons("$\\bullet$",cdr(cdr(PP))));
- else S=PP[1];
- }else S="$\\bullet$";
- if(length(PP)<=2){
- if(Proc) Out=cons([2,OptSc,[Q[0],Q[1]],[S]],Out);
- else str_tb(xyput([Q[0],Q[1],S]|option_list=OptSc),Out);
- }else if(!TikZ){
- if(Proc) Out=cons([2,OptSc,[Q[0],Q[1]],[S,"",PP[2]]],Out);
- else str_tb(xyput([Q[0],Q[1],S,"",PP[2]]|option_list=OptSc),Out);
- }else{
- if(Proc) Out=cons([2,OptSc,[Q[0],Q[1]],cons(S,cdr(cdr(PP)))],Out);
- else str_tb(xyput(append([Q[0],Q[1],S],cdr(cdr(PP)))|option_list=OptSc),Out);
- }
- }
- }
- if(Proc){
- S=reverse(Out);
- if(Proc==1||Proc==3){
- for(W=[],I=0;I<2;I++) for(J=0;J<2;J++) for(K=0;K<2;K++)
- W=cons(mysubst([CX*Sc,CY*Sc],[[x,Lx[I]],[y,Ly[J]],[z,Lz[K]]]),W);
- W=ptbbox(W);
- S=cons([0,W[0],W[1],(TikZ)?1:1/10],S);
- }
- }else S=str_tb(0,Out);
- if(type(Dvi)!=1||(Proc&&abs(Dvi)<2)) return S;
- Lout=[];
- if(abs(Dvi)>=2){
- /* show title */
- L0=[];
- Title=getopt(title);
- if(type(Title)!=7)
- Title=(type(F00)==4)?("\\texttt{"+verb_tex_form(F00)+"}"):my_tex_form(F00);
- if(type(Title)==7){
- T=my_tex_form(L[3][0])+"\\le x\\le "+my_tex_form(L[1][0])+",\\,"+
- my_tex_form(L[3][1])+"\\le y\\le "+my_tex_form(L[1][1])+")";
- if(Proc){
- if(Cpx>=1) L0=[[5,[["eq",1]],"|"+Title+"|\\quad(z=x+yi,\\ "+T]];
- else L0=[[5,[["eq",1]],"z="+Title+"\\ \\ ("+T]];
- }else{
- if(Cpx>=1) dviout("|"+Title+"|\\quad(z=x+yi,\\ "+T|eq=1,keep=1);
- else dviout("z="+Title+"\\ \\ ("+T|eq=1,keep=1);
- }
- }
- A=rint(deval(180*A/@pi))+90*(Sh-1);
- if(A>=180) A-=180;
- B=rint(deval(180*B/@pi));
- if(abs(Dvi)>=3){
- T="\\text{angle } ("+my_tex_form(A)+"^\\circ,"+my_tex_form(B)+"^\\circ)";
- if(Ratio!=1 || Ratio2!=1) T=T+"\\quad\\text{ratio }1:"
- +my_tex_form(sint(Ratio2,2))+":"+my_tex_form(sint(Ratio,2));
- if(Proc) L0=cons([5,[["eq",1]],T],L0);
- else dviout(T|eq=1,keep=1);
- }
- SS="% range "+rtostr([L[3][0],L[1][0]])+"x"+rtostr([L[3][1],L[1][1]])+
- " angle ("+ rtostr(A) +","+ rtostr(B)+") dev=";
- if(M1==M2) SS=SS+rtostr(M1);
- else SS=SS+rtostr([M1,M2]);
- if(M3!=1) SS=SS+" acc="+rtostr(M3);
- if(type(Sc0)>=0) SS=SS+" scale="+rtostr(Sc0);
- if(Proc){
- S=cons([5,[],SS],S);
- for(;L0!=[];L0=cdr(L0)) S=cons(car(L0),S);
- return S;
- }
- if(Dvi>0){
- dviout(SS|keep=1);
- dviout(xyproc(S)|eq=8);
- }else Lout=[SS,S];
- }else{
- if(Dvi>0) dviout(xyproc(S));
- else Lout=[S];
- }
- if(getopt(trans)==1) return cons([CX*Sc,CY*Sc],Lout);
- if(Dvi<0) return Lout;
-}
-
-def orthpoly(N)
-{
- F=0;
- if(type(P=getopt(pol))==7){
- for(L=["Le","Ge","Tc","2T","Ja","He","La","Se"];L!=[];L=cdr(L),F++)
- if(str_str(P,car(L)|end=2)==0) break;
- }else P=0;
- if(type(D=N)==4) D=N[0];
- if(!isint(D)||D<0) return 0;
- if(F==0) return seriesHG([-D,D+1],[1],(1-x)/2,D);
- if(F==1) return red(seriesHG([-D,D+2*N[1]],[N[1]+1/2],(1-x)/2,D)*binom(D+2*N[1]-1,D));
- if(F==2) return seriesHG([-D,D],[1/2],(1-x)/2,D);
- if(F==3){
- if(D==0) return 0;
- return orthpoly([D-1,1]|pol="Ge");
- }
- if(F==4) return red(seriesHG([-D,D+N[1]],[N[2]],x,D));
- if(F==5){
- for(S=I=1;I<=D;I+=2) S*=I;
- if(iand(D,1)) return seriesHG([-(D-1)/2],[3/2],x^2/2,D-1)*x*S*(-1)^((D-1)/2);
- else return seriesHG([-D/2],[1/2],x^2/2,D)*S*(-1)^(D/2);
- }
- if(F==6){
- NN=(type(N)==4)?N[1]:0;
- return red(seriesHG([-D],[NN+1],x,D)*binom(D+NN,D));
- }
- if(F==7){
- NN=N[1];
- for(S=1,I=1;I<=D;I++) S+=(-1)^I*binom(D,I)*binom(D+I,I)*sftpow(x,I)/sftpow(NN,I);
- return S;
- }
- return 0;
-}
-
-def schurpoly(L)
-{
- N=length(L);
- for(R=[],I=1;L!=[];L=cdr(L),I++) R=cons(car(L)+N-I,R);
- L=reverse(R);
- if(type(X=getopt(var))!=4){
- V=(type(X)>1)?X:"x";
- for(X=[],I=0;I<N;I++) X=cons(makev([V,N-I]),X);
- }
- M=newmat(N,N);
- for(I=0;I<N;I++)
- for(J=0;J<N;J++) M[I][J]=X[I]^L[J];
- P=det(M);
- for(I=0;I<N;I++)
- for(J=I+1;J<N;J++) P=sdiv(P,X[I]-X[J]);
- return P;
-}
-
-def fouriers(A,B,X)
-{
- if((Y=getopt(y))==0||type(Y)>0) Y=deval(Y);
- else Y=0;
- if((V=getopt(const))==0||type(V)>0){
- V=myfeval(V,Y);
- K=1;
- }else K=0;
- if(A!=[]&&type(car(A))>1){
- for(C=[],I=A[1];I>=K;I--) C=cons(myf2eval(car(A),I,Y),C);
- if(K) C=cons(0,C);
- A=C;
- }
- if(K){
- if(A!=[]) A=cdr(A);
- A=cons(V,A);
- }
- if(B!=[]&&type(car(B))>1){
- for(C=[],I=B[1];I>0;I--) C=cons(myf2eval(car(B),I,Y),C);
- B=C;
- }
- L=length(B)+1;
- if(length(A)>=L) L=length(A)+1;
- if(type(Sum=getopt(sum))>0){
- if(Sum==1) Sum=1-x;
- else if(Sum==2) Sum=[(z__)/(3.1416*x),[z__,os_md.mysin,3.1416*x]];
- else Sum=f2df(Sum);
- C=[];
- if(A!=[]){
- C=cons(car(A),C);
- A=cdr(A);
- }
- for(I=1;A!=[];A=cdr(A),I++) C=cons(car(A)*myf2eval(Sum,I/L,L),C);
- A=reverse(C);
- for(C=[],I=1;B!=[];B=cdr(B),I++) C=cons(car(B)*myf2eval(Sum,I/L,L),C);
- B=reverse(C);
- }
- if(getopt(cpx)==1){
- if(type(X=eval(X))>1) return todf([os_md.fouriers,[["cpx",1]]],[[A],[B],[X]]);
- V=dexp(@i*X);
- for(C=A,P=1,I=0;C!=[];C=cdr(C),I++){
- R+=S*car(C)*P;
- P*=V;
- }
- V=dexp(-@i*X);
- for(C=B,P=1,I=0;C!=[];C=cdr(C),I++){
- P*=V;
- R+=car(C)*P;
- }
- return R;
- }
- if(type(X=eval(X))>1) return todf(os_md.fouriers,[[A],[B],[X]]);
- for(C=A,I=0;C!=[];C=cdr(C),I++)
- R+=car(C)*mycos(I*X);
- for(C=B,I=1;C!=[];C=cdr(C),I++)
- R+=car(C)*mysin(I*X);
- return R;
-}
-
-
-def myexp(Z)
-{
- if(type(Z=eval(Z))>1) return todf(os_md.myexp,[Z]);
- if((Im=imag(Z))==0) return dexp(Z);
- return dexp(real(Z))*(dcos(Im)+@i*dsin(Im));
-}
-
-def mycos(Z)
-{
- if(type(Z=eval(Z))>1) return todf(os_md.mycos,[Z]);
- if((Im=imag(Z))==0) return dcos(Z);
- V=myexp(Z*@i);
- return (V+1/V)/2;
-}
-
-def mysin(Z)
-{
- if(type(Z=eval(Z))>1) return todf(os_md.mysin,[Z]);
- if((Im=imag(Z))==0) return dsin(Z);
- V=myexp(Z*@i);
- return (1/V-V)*@i/2;
-}
-
-def mytan(Z)
-{
- if(type(Z=eval(Z))>1) return todf(os_md.mytan,[Z]);
- if((Im=imag(Z))==0) return dtan(Z);
- V=myexp(2*Z*@i);
- return @i*(1-V)/(1+V);
-}
-
-def mylog(Z)
-{
- if(type(Z=eval(Z))>1) return todf(os_md.mylog,[Z]);
- if((Im=imag(Z))==0) return dlog(Z);
- return dlog(dabs(Z))+@i*myarg(Z);
-}
-
-def mypow(Z,R)
-{
- if(type(Z=eval(Z))>1||type(R=eval(R))>1) return todf(os_md.mypow,[Z,R]);
- if(Z==0) return 0;
- if(isint(2*R)){
- if(R==0) return 1;
- if(isint(R)) return Z^R;
- V=dsqrt(Z);
- if(R==1/2) return V;
- return Z^(R-1/2)*V;
- }
- return myexp(R*mylog(Z));
-}
-
-def myarg(Z)
-{
- if(type(Z=map(eval,Z))==4){
- if(length(Z)!=2) return todf(os_md.myarg,[Z]);
- Re=Z[0];Im=Z[1];
- }else if(type(Z)>1){
- return todf(os_md.myarg,[Z]);
- }else {
- Im=imag(Z);Re=real(Z);
- }
- if(Re==0) return (Im<0)?-deval(@pi)/2:deval(@pi)/2;
- V=datan(Im/Re);
- if(Re>0) return V;
- return (V>0)?(V-deval(@pi)):(V+deval(@pi));
-}
-
-def myatan(Z)
-{
- if(type(Z=eval(Z))>1) return todf(os_md.myatan,[Z]);
- if((Im=imag(Z))==0) return datan(Z);
- mylog((1-Z*@i)/(1+Z*@i))*@i/2;
-}
-
-def myasin(Z)
-{
- if(type(Z=eval(Z))>1) return todf(os_md.myasin,[Z]);
- return deval(@pi/2)-myacos(Z);
-}
-
-def frac(X)
-{
- if(type(X=eval(X))>1) return todf(os_md.frac,[X]);
- return (ntype(X)==3)? pari(frac,X):(X-floor(X));
-}
-
-def myacos(Z)
-{
- if(type(Z=eval(Z))>1) return todf(os_md.myacos,[Z]);
- if(imag(Z)==0 && Z<=1 && Z>=-1) return dacos(Z);
- return mylog(Z-dsqrt(Z^2-1))*@i;
-}
-
-def arg(Z)
-{
- if(vars(Z=map(eval,Z))!=[]) return todf(os_md.arg,[Z]);
- return (type(Z)==4)?pari(arg,Z[0],Z[1]):arg(sqrt,Z);
-}
-
-def sqrt(Z){
- if(vars(Z=map(eval,Z))!=[]) return todf(os_md.sqrt,[Z]);
- R=(type(Z)==4)?Z[1]:Z;
- if(ntype(R)==0){
- if(R==0) return 0;
- if(R>0){
- if(pari(issquare,R)) return pari(isqrt,nm(R))/pari(isqrt,dn(R));
- }else{
- R=-R;
- if(pari(issquare,R)) return pari(isqrt,nm(R))/pari(isqrt,dn(R))*@i;
- }
- }
- return (type(Z)==4)?pari(sqrt,Z[0],Z[1]):pari(sqrt,Z);
-}
-
-def gamma(Z)
-{
- if(vars(Z=map(eval,Z))!=[]) return todf(os_md.gamma,[Z]);
- return (type(Z)==4)?pari(gamma,Z[0],Z[1]):pari(gamma,Z);
-}
-
-def lngamma(Z)
-{
- if(vars(Z=map(eval,Z))!=[]) return todf(os_md.lngamma,[Z]);
- return (type(Z)==4)?pari(lngamma,Z[0],Z[1]):pari(lngamma,Z);
-}
-
-def digamma(Z)
-{
- if(vars(Z=map(eval,Z))!=[]) return todf(os_md.digamma,[Z]);
- return (type(Z)==4)?pari(digamma,Z[0],Z[1]):pari(digamma,Z);
-}
-
-def dilog(Z)
-{
- if(vars(Z=map(eval,Z))!=[]) return todf(os_md.dilog,[Z]);
- return (type(Z)==4)?pari(dilog,Z[0],Z[1]):pari(dilog,Z);
-}
-
-def erfc(Z)
-{
- if(vars(Z=map(eval,Z))!=[]) return todf(os_md.erfc,[Z]);
- return (type(Z)==4)?pari(erfc,Z[0],Z[1]):pari(erfc,Z);
-}
-
-def zeta(Z)
-{
- if(vars(Z=map(eval,Z))!=[]) return todf(os_md.zeta,[Z]);
- return (type(Z)==4)?pari(zeta,Z[0],Z[1]):pari(zeta,Z);
-}
-
-def eta(Z)
-{
- if(vars(Z=map(eval,Z))!=[]) return todf(os_md.eta,[Z]);
- return (type(Z)==4)?pari(eta,Z[0],Z[1]):pari(eta,Z);
-}
-
-def jell(Z)
-{
- if(vars(Z=map(eval,V))>1) return todf(os_md.jell,[Z]);
- return (type(Z)==4)?pari(jell,Z[0],Z[1]):jell(jell,Z);
-}
-
-def evals(F)
-{
- if(type(F)==7){
- if(type(Del=getopt(del))!= 7) return eval_str(F);
- S=strtoascii(Del);K=length(S);
- if(K==0) return [eval_str(F)];
- Raw=getopt(raw);
- F=strtoascii(F);L=[];T1=0;
- do{
- T2=str_str(F,S|top=T1);
- if(T2<0) T2=10000;
- FT=str_cut(F,T1,T2-1);
- L=cons((Raw==1)?FT:evals(FT),L);
- T1=T2+K;
- }while(T2!=10000);
- return reverse(L);
- }
- if(type(F)==4){
- if(type(S=car(F))==7){
- S+="(";
- for(I=0,FT=cdr(F); FT!=[]; I++,FT=cdr(FT)){
- if(type(ST=car(FT))!=7) ST=rtostr(ST);
- if(I>0) S=S+","+ST;
- else S=S+ST;
- }
- S=S+")";
- return eval_str(S);
- }else return call(S,cdr(F));
- }
- return F;
-}
-
-def myval(F)
-{
- if(type(F)!=4){
- F=f2df(sqrt2rat(F));
- if(type(F)!=4) return F;
- };
- if(length(F)==1) V=car(F);
- else for(V=car(F),F=cdr(F); F!=[];){
- FT=car(F);
- if(type(G=FT[1])==2){
- if(length(FT)>2){
- FT2=myval(FT[2]);
- if(length(FT)>3) FT3=myval(FT[3]);
- };
- X=red(FT2/@pi);Vi=-red(FT2*@i/@pi);W=red(FT2/@e);
- if(G==os_md.mypow && FT3==1/2){
- G=os_md.sqrt;
- FT=[FT[0],G,FT[2]];
- }
- if((T=findin(G,
- [sin,os_md.mysin,cos,os_md.mycos,tan,os_md.mytan]))>=0
- &&(isint(6*X)||isint(4*X))){
- if(T==2||T==3){
- T=0;X=1/2-X;
- }
- X=X-floor(X/2)*2;
- if(T==0||T==1){
- if(X>1){
- S=-1;X-=1;
- }else S=1;
- if(X>1/2) X=1-X;
- if(X==0) R=0;
- else if(X==1/6) R=1/2;
- else if(X==1/4) R=2^(1/2)/2;
- else if(X==1/3) R=3^(1/2)/2;
- else R=1;
- R*=S;
- }else{
- if(X>1) X-=1;
- if(X>1/2){
- S=-1;V=1-X;
- }else S=1;
- if(X==0) R=0;
- else if(X==1/6) R=3^(1/2)/3;
- else if(X==1/4) R=1;
- else if(X==1/3) R=3^(1/2);
- else R=2^512;
- R*=S;
- }
- }else if((G==exp||G==os_md.myexp)&&(isint(FT2)||isint(6*Vi)||isint(4*Vi))){
- if(isint(FT2)) R=@e^FT2;
- else R=myval([z+w*@i,[z,cos,Vi*@pi],[w,sin,Vi*@pi]]);
- }else if((G==pow||G==os_md.mypow) && (isint(FT3)||FT2==1||FT2==0)){
- if(FT2==0) R=0;
- else if(FT2==1) R=1;
- else R=FT2^FT3;
- }else if(G==os_md.abs&&ntype(P=eval(FT2))<4){
- R=FT2;
- if(P<0) R=-R;
- }else if((G==os_md.sqrt||G==dsqrt)&&type(FT2)<2&&ntype(FT2)==0)
- R=sqrtrat(FT2);
- else if((G==os_md.mylog||G==dlog)&&(FT2==@e||FT2==1))
- R=(FT2==1)?0:1;
- else if(length(FT)==3) R=eval((*G)(myeval(FT2)));
-#ifdef USEMODULE
- else R=call(G,map(os_md.myeval,cdr(cdr(FT))));
-#else
- else R=call(G,map(myeval,cdr(cdr(FT))));
-#endif
- }
- else if(G==0) R=FT[2];
-#ifdef USEMODULE
- else R=eval(call(G[0],map(os_md.myeval,cdr(cdr(FT)))|option_list=G[1]));
-#else
- else R=eval(call(G[0],map(myeval,cdr(cdr(FT)))|option_list=G[1]));
-#endif
- V=mysubst(V,[FT[0],R]);
- F=mysubst(cdr(F),[FT[0],R]);
- }
- if(type(V)<4 && !iscoef(V,os_md.iscrat)) V=eval(V);
-#if 0
- return (type(V)<4)?myeval(V):mtransbys(os_md.myeval,V,[]);
-#else
- return V;
-#endif
-}
-
-/* -1:‹ó 0:®” 1:—L—” 2:Gauss®” 3:Gauss—L—” 4:‚»‚êˆÈŠO‚Ì•¡‘f” */
-/* def vntype(F)
-{
- if((T=type(F))<2){
- if(T<0) return -1;
- if((Tn=ntype(F))==0){
- return (isint(F))?0:1;
- }
- if(Tn==4){
- if(ntype(real(F))==0&&ntype(real(F))==0)
- return (isint(F)&&isint(F))?2:3;
- return 4;
- }
- }
- if(T==2){
- V=vars(F);
- if((VV=lsort(V,[@e,@pi],1))==[]){
- FT=mycoef(
- }else{
- if(length(VV)==1){
- }else
- }
- }else if(T==3){
-
- }
-}
-*/
-
-
-def myeval(F)
-{
- if(type(F)!=4) V=F;
- else if(length(F)==1) V=car(F);
- else for(V=car(F),F=cdr(F); F!=[];){
- FT=car(F);
- if(type(G=FT[1])==2){
- if(length(FT)==3) R=(*G)(myeval(FT[2]));
-#ifdef USEMODULE
- else R=call(G,map(os_md.myeval,cdr(cdr(FT))));
-#else
- else R=call(G,map(myeval,cdr(cdr(FT))));
-#endif
- }
- else if(G==0) R=myeval(FT[2]);
-#ifdef USEMODULE
- else R=call(G[0],map(os_md.myeval,cdr(cdr(FT)))|option_list=G[1]);
-#else
- else R=call(G[0],map(myeval,cdr(cdr(FT)))|option_list=G[1]);
-#endif
- V=mysubst(V,[FT[0],R]);
- F=mysubst(cdr(F),[FT[0],R]);
- }
- return (type(V)<4)?eval(V):mtransbys(eval,V,[]);
-}
-
-def mydeval(F)
-{
- if(type(F)!=4) V=F;
- else if(length(F)==1) V=car(F);
- else for(V=car(F),F=cdr(F); F!=[]; ){
- FT=car(F);
- if(type(G=FT[1])==2){
- if(length(FT)==3) R=(*G)(myeval(FT[2]));
-#ifdef USEMODULE
- else R=call(G,map(os_md.mydeval,cdr(cdr(FT))));
-#else
- else R=call(G,map(mydeval,cdr(cdr(FT))));
-#endif
- }
- else if(G==0) R=mydeval(FT[2]);
-#ifdef USEMODULE
- else R=call(G[0],map(os_md.mydeval,cdr(cdr(FT)))|option_list=G[1]);
-#else
- else R=call(G[0],map(mydeval,cdr(cdr(FT)))|option_list=G[1]);
-#endif
- V=mysubst(V,[FT[0],R]);
- F=mysubst(cdr(F),[FT[0],R]);
- }
- return (type(V)<4)?deval(V):mtransbys(deval,V,[]);
-}
-
-def myfeval(F,X)
-{
- if(type(X)==4){
- if(isvar(X[0])&&length(X)==2)
- return mydeval(mysubst(F,[X[0],X[1]]));
- if(type(X[0])==4&&isvar(X[0][0])&&length(X[0])==2){
- for(Y=X;Y!=[];Y=cdr(Y))
- F=mysubst(F,[car(Y)[0],car(Y)[1]]);
- return myeval(F);
- }
- }
- return myeval(mysubst(F,[x,X]));
-}
-
-def myf2eval(F,X,Y)
-{
- return myeval(mysubst(F,[[x,X],[y,Y]]));
-}
-
-def myf3eval(F,X,Y,Z)
-{
- return myeval(mysubst(F,[[x,X],[y,Y],[z,Z]]));
-}
-
-def myfdeval(F,X)
-{
- if(type(X)==4){
- if(isvar(X[0])&&length(X)==2)
- return mydeval(mysubst(F,[X[0],X[1]]));
- if(type(X[0])==4&&isvar(X[0][0])&&length(X[0])==2){
- for(Y=X;Y!=[];Y=cdr(Y))
- F=mysubst(F,[car(Y)[0],car(Y)[1]]);
- return mydeval(F);
- }
- }
- return mydeval(mysubst(F,[x,X]));
-}
-
-def myf2deval(F,X,Y)
-{
- return mydeval(mysubst(F,[[x,X],[y,Y]]));
-}
-
-def myf3deval(F,X,Y,Z)
-{
- return mydeval(mysubst(F,[[x,X],[y,Y],[z,Z]]));
-}
-
-def df2big(F)
-{
- AG=[[os_md.mysin,sin],[os_md.mycos,cos],[os_md.mytan,tan],[os_md.myasin,asin],
- [os_md.acos,acos],[os_md,atan,atan],[os_md.myexp,exp],[os_md.mylog,log],[os_md.mypow,pow]];
- if(getopt(inv)!=1) return mysubst(F,AG);
- else return mysubst(F,AG|inv=1);
-
-}
-
-def f2df(F)
-{
- if(type(Opt=getopt(opt))!=1) Opt=0;
- if(iand(Opt,1)){
- if(Opt>0) F=map(eval,F);
- else F=map(deval,F);
- }
- Cpx=getopt(cpx);
- if(type(F)==4 && iand(Opt,2)==0) return F;
- K=getopt(level);
- if(type(K)!=1) K=0;
- AG=[sin,cos,tan,asin,acos,atan,exp,sinh,cosh,tanh,log,pow];
- AGd=[os_md.mysin,os_md.mycos,os_md.mytan,os_md.myasin,os_md.myacos,
- os_md.myatan,os_md.myexp,os_md.myexp,os_md.myexp,os_md.myexp,
- os_md.mylog,os_md.sqrt,os_md.myexp];
- for(R=[],I=0,Arg=vars(F);Arg!=[];Arg=cdr(Arg)){
- Fn=functor(car(Arg));
- if(vtype(Fn)!=3) continue;
- V=args(car(Arg));
- for(PAG=AG,PAGd=AGd;PAG!=[];PAG=cdr(PAG),PAGd=cdr(PAGd)){
- if(Fn==car(PAG)){
- if(K==0) L="z__";
- else L="z"+rtostr(K)+"__";
- if(I==0) VC=makev([L]);
- else VC=makev([L,I]);
- I++;
- VC0=VC;
- if(Fn==sinh || Fn==cosh || Fn==tanh){
- VC=makev([L,I++]);
- if(Fn==sinh)
- R=cons([VC0,0,(VC^2-1)/(2*VC)],R);
- else if(Fn==cosh)
- R=cons([VC0,0,(VC^2+1)/(2*VC)],R);
- else
- R=cons([VC0,0,(VC^2-1)/(VC^2+1)],R);
- }
- if(Fn==pow && (V[1]!=1/2||Cpx==1)){
-#if 0
- R0=f2df(V[1]*((type(V[0])==1)?dlog(V[0]):log(V[0]))|level=K+1);
- PAGd=cdr(PAGd);
-#else
- R=cons([VC,os_md.mypow,V[0],V[1]],R);
- F=mysubst(F,[car(Arg),VC0]);
- Arg=cons(0,vars(F));
- break;
-#endif
- }else R0=f2df(V[0]|level=K+1);
- R=cons([VC,car(PAGd),R0],R);
- F=mysubst(F,[car(Arg),VC0]);
- Arg=cons(0,vars(F));
- break;
- }
- }
- }
- if(R==[]) return F;
- if(Cpx==1){
- for(PAG=P,PAGd=AGd;PAG!=[];PAG=cdr(PAG),PAGd=cdr(PAGd))
- R=mysubst(R,[car(PADd),car(PAG)]);
- }
- return cons(F,reverse(R));
-}
-
-def todf(F,V)
-{
- if(type(V)!=4) V=[V];
- for(R=[];V!=[];V=cdr(V)){
- R=cons(f2df(car(V)),R);
- }
- V=reverse(R);
- Z=makenewv([F,V]);
- return [Z,cons(Z,cons(F,V))];
-}
-
-def compdf(F,V,G)
-{
- FL=["abs","floor","rint","zeta","gamma","arg","real","imag","conj"];
- FS=[os_md.abs,floor,rint,os_md.zeta,os_md.gamma,os_md.myarg,real,imag,conj];
- if(type(F)==7){
- if(str_str(F,"|")==0){
- F="abs("+str_cut(F,1,str_len(F)-2)+")";
- }else if(str_str(F,"[")==0){
- F="floor("+str_cut(F,1,str_len(F)-2)+")";
- }
- I=str_str(F,"(");
- Var=x;
- if(I>0){
- J=str_pair(F,I+1,"(",")");
- if(J<0) return 0;
- Var=eval_str(str_cut(F,I+1,J-1));
- Var=f2df(Var);
- F0=str_cut(F,0,I-1);
- }
- if((I=findin(F0,FL))<0&&(I=findin(F,FL))<0) F=f2df(eval_str(F));
- else F=[z__,[z__,FS[I],Var]];
- }
- if(type(F)!=4) F=f2df(F);
- if(type(G)!=4) G=f2df(G);
- if(V==G) return F; /* subst(F(V),V,G) */
- VF=vars(F);VG=vars(G);
- if(type(V)==4){
- for(VT=[],VV=V;VV!=[];VV=cdr(VV)){
- if(findin(car(VV),VF)>=0){
- X=makenewv(append(VF,VG));
- VF=cons(X,VF);
- F=mysubst(F,[car(VV),X]);
- VT=cons(X,VT);
- }else VT=cons(car(VV),VT);
- }
- for(V=reverse(VT);V!=[];V=cdr(V),G=cdr(G)) F=compdf(F,car(V),car(G));
- return F;
- }
- for(E=I=0;I<30;I++){
- for(J=0;J<30;J++){
- X=makev(["z__",I,J]);
- if(findin(X,VF)<0 && findin(X,VG)<0){
- E=1;break;
- }
- }
- if(E) break;
- }
- if(!E) return 0;
- if(type(G)<4) return mysubst(F,[V,G]);
- if(type(F)<4) F=[F]; /* return compdf([X,[X,0,F]],V,G); */
- F=mysubst(F,[V,X]);
- if(isvar(G[0])){
- G=mysubst(G,[G[0],X]);
- if(length(G)==2&&type(G[1])==4&&G[1][0]==X) G=G[1];
- G=cons(G,cdr(F));
- }
- else G=cons([X,0,G],cdr(F));
- return cons(car(F),G);
-}
-
-def fzero(F,LX)
-{
- if(length(LX)==3){
- V=LX[0];LX=cdr(LX);
- }else V=x;
- LX1=eval(LX[0]);LX2=eval(LX[1]);
- if(getopt(zero)==1){
- if(getopt(cont)==1) CT=1;
- else CT=0;
- if(getopt(trans)!=1 && type(F)<4) F=f2df(F);
- F=mysubst(F,[[@pi,deval(@pi)],[@e,deval(@e)]]);
- if(type(Dev=getopt(dev))!=1 || Dev<2) Dev=16;
- V1=myeval(mysubst(F,[V,X1=LX1]));
- V2=myeval(mysubst(F,[V,X2=LX2]));
- if(V1>0){
- V0=V1;V1=V2;V2=V0;
- X0=X1;X1=X2;X2=X0;
- }
- if(V1<0 && V2>0){
- D=(V2-V1)*1024;
- for(I=0; I<Dev; I++){
-/* mycat([D,X1,V1,X2,V2]) ; */
- if(iand(I,1)) X0=(X1+X2)/2;
- else X0=(V2*X1-V1*X2)/(V2-V1);
- V0=myeval(mysubst(F,[V,X0]));
- if(V0==0||V0==V1||V0==V2) return [X0,V0];
- if(V0<0){
- if(!CT && V0+D<0) return [];
- V1=V0;X1=X0;
- }else{
- if(!CT && V0>D) return [];
- V2=V0;X2=X0;
- }
- }
- X0=(V2*X1-V1*X2)/(V2-V1);
- return [X0,myeval(mysubst(F,[V,X0]))];
- }
- if(V0==0) return [X0,V0];
- if(V1==0) return [X1,V1];
- return [];
- }
- if(type(F)<4) F=f2df(F);
- F=mysubst(F,[[@pi,deval(@pi)],[@e,deval(@e)]]);
- L=[];
- if(type(F)<4){
- if(type(F)==3) F=nm(red(F));
- if((Deg=deg(F,V))<=2){
- if(Deg==2){
- D=(C1=coef(F,1,V))^2-4*(C2=coef(F,2,V))*coef(F,0,V);
- if(D>=0){
- R=dsqrt(D);
- if((S=(-C1+R)/(2*C2))>=LX1&&S<=LX2) L=[[S,mysubst(F,[V,S])]];
- if(D!=0 && (S=(-C1-R)/(2*C2))>=LX1&&S<=LX2) L=cons([S,mysubst(F,[V,S])],L);
- }
- L=qsort(L);
- }else if(Deg==1&&(S=-coef(F,0,V)/coef(F,1,V))>=LX1&&S<=LX2)
- L=[[S,mysubst(F,[V,S])]];
- return L;
- }
- for(L=[];S!=[];S=cdr(S))
- if(car(S)>=LX1&&car(S)<=LX2) L=cons([car(S),mysubst(F,[V,car(S)])],L);
- return qsort(L);
- }
- if(type(Div=getopt(mesh))!=1 || Div<=0)
- Div = 2^(10);
- W=(LX2-LX1)/Div;
- for(I=V2=0;I<=Div;I++){
- X1=X2;X2=LX1+I*W;V1=V2;
- if((V2=myeval(mysubst(F,[V,X2])))==0)
- L=cons([X2,V2],L);
- if(V1*V2<0){
- L0=fzero(F,[V,X1,X2]|zero=1,trans=1);
- if(L0!=[]) L=cons(L0,L);
- }
- }
- return reverse(L);
-}
-
-def fmmx(F,LX)
-{
- if(length(LX)==3){
- V=LX[0];LX=cdr(LX);
- }else V=x;
- LX1=eval(LX[0]);LX2=eval(LX[1]);
- FT=F;
- if(getopt(trans)!=1 && type(F)<4) FT=f2df(FT);
- FT=mysubst(FT,[[@pi,eval(@pi)],[@e,eval(@e)]]);
- if(type(G=getopt(dif))>=1){
- if(G==1) G=os_md.mydiff(F,V);
- L=fzero(G,[V,LX1,LX2]|option_list=getopt());
- R=[[LX1,myeval(mysubst(FT,[V,LX1]))]];
- for(I=0;L!=[];L=cdr(L),I++){
- X=car(L)[0];
- if(X==LX1) continue;
- R=cons([X,myeval(mysubst(FT,[V,X]))],R);
- }
- if(X!=LX2) R=cons([LX2,myeval(mysubst(FT,[V,LX2]))],R);
- if(getopt(mmx)!=1) return reverse(R);
- for(Mi=Ma=car(R);R!=[];R=cdr(R)){
- if(car(R)[1]>Ma[1]) Ma=car(R);
- else if(car(R)[1]<Mi[1]) Mi=car(R);
- }
- return [Mi,Ma];
- }
- if(type(Div=getopt(mesh))!=1 || Div<=0)
- Div = 2^(10);
- if(type(Dev=getopt(dev))!=1 || Dev<2) Dev=16;
- W=(LX2-LX1)/Div;
- for(I=V2=V3=0;I<=Div;I++){
- X1=X2;X2=X3;X3=LX1+I*W;V1=V2;V2=V3;
- V3=myeval(mysubst(FT,[V,X3]));
- if(I==0) L=[[X3,V3]];
- if(I<2) continue;
- if((V1-V2)*(V2-V3)<0){
- X02=X2;V02=V2;X03=X3;V03=V3;
- for(J=0; J<Dev && X1!=X3; J++){
- X12=(X1+X2)/2;V12=myeval(mysubst(FT,[V,X12]));
- if((V1-V12)*(V12-V2)<=0){
- X3=X2;V3=V2;X2=X12;V2=V12;continue;
- }
- X23=(X2+X3)/2;V23=myeval(mysubst(FT,[V,X23]));
- if((V12-V2)*(V2-V23)<=0){
- X1=X12;V1=V12;X3=X23;V3=V23;continue;
- }
- if((V2-V23)*(V23-V3)<=0){
- X1=X2;V1=V2;X2=X23;V2=V23;continue;
- }
- }
- L=cons([X2,V2],L);
- X2=X02;V2=V02;X3=X03;V3=V03;
- }
- }
- L=cons([LX2,myeval(mysubst(FT,[V,LX2]))],L);
- if(getopt(mmx)!=1) return L;
- for(Mi=Ma=car(L);L!=[];L=cdr(L)){
- if(car(L)[1]>Ma[1]) Ma=car(L);
- else if(car(L)[1]<Mi[1]) Mi=car(L);
- }
- return [Mi,Ma];
-}
-
-def flim(F,L)
-{
- FD=f2df(F);
- Lim0=4;Lim=12;FS=1;
- if(type(Pc=getopt(prec))==1){
- if((Pc>1&&Pc<31)||Pc>-5) Lim+=Pc;
- }
- if(type(Pc=getopt(init))==1 && Pc>0) FS*=Pc;
- if(type(L)==7) L=[L];
- else if(type(L)<2){
- K=flim(F,["+",L]|option_list=getopt());
- if(K=="") return K;
- K1=flim(F,["-",L]|option_list=getopt());
- if(K1=="") return K1;
- if(type(K)==7||type(K1)==7){
- if(K!=K1) return "";
- return K;
- }
- if(abs(K)<10^(-5)){
- if(abs(K1)<10^(-5)) return (K1+K)/2;
- else return "";
- }
- if(abs((K1-K)/K)<10^(-4)) return (K1+K)/2;
- return "";
- }
- if(type(L)!=4||type(L[0])!=7) return "";
- if(L[0]=="-"||L[0]=="-infty"){
- FS=-FS;
- }else if(L[0]!="+"&&L[0]!="infty") return "";
- FI=(length(L)==1)?1:0;
- for(Inf=0,I=Lim0;I<Lim;I++){
- D1=FS*8^I;D2=8*D1;
- if(FI==0){
- D1=1/D1;D2=1/D2;
- }
- if(D1>D2){
- D=D1;D1=D2;D1=D;
- X1=D1;X2=D2;
- }
- if(FI==0){
- D1+=L[1];D2+=L[1];
- }
- K=fmmx(FD,[D1,D2]|mmx=1,mesh=16,dev=4);
- if(I>Lim0){
- if(DF<K[1][1]-K[0][1]&&DF>10^(-8)&&DF<10^7){
- if(I>Lim0+1){
- if(Inf==0) return "";
- }else Inf=1;
- }else if(Inf==1) return "";
- }
- DF=K[1][1]-K[0][1];
- }
- if(Inf==1){
- if(K[0][1]>10^8) return "+";
- else if(K[1][1]<-10^8) return "-";
- return "";
- }
- V=(myfeval(FD,D1)+1.0)-1.0;
- if(V!=0 && abs(V)<10^(-9)) return 0;
- return V;
-}
-
-def fcont(F,LX)
-{
- if(length(LX)==3){
- V=LX[0];LX=cdr(LX);
- }else V=x;
- LX1=eval(LX[0]);LX2=eval(LX[1]);
- if(getopt(trans)!=1 && type(F)<4) FT=f2df(F);
- if(type(Div=getopt(mesh))!=1 || Div<=0)
- Div = 2^(10);
- if(type(Dev=getopt(dev))!=1 || Dev<2) Dev=16;
- W=(LX2-LX1)/Div;
- if((Df=getopt(dif))!=1){
- Df=0;
- }else{
- if(Dev==16) Dev=6;
- WD=W/2^(Dev+1);
- }
- F=FT;
- C=2;
- for(I=V2=V3=0;I<=Div;I++){
- X1=X2;X2=X3;X3=LX1+I*W;V1=V2;V2=V3;
- V3=myeval(mysubst(F,[V,X3]));
- if(Df){
- if(I==Div) break;
- V3=(myeval(mysubst(F,[V,X3+WD]))-V3)/WD;
- }
- if(I==0) L=[[X3,V3]];
- if(I<2) continue;
- if(C*dabs(2*V2-V1-V3) > dabs(V1-V3)){
- X01=X1;V01=V1;X02=X2;V02=V2;X03=X3;V03=V3;
- for(J=0; X01!=X03; J++){
- if(dabs(V01-V02)>dabs(V02-V03)){
- X03=X02;V03=V02;
- }else{
- X01=X02;V01=V02;
- }
- if(J==Dev) break;
- X02=(X01+X02)/2;
- V02=myeval(mysubst(F,[V,X02]));
- if(Df) V02=(myeval(mysubst(F,[V,WD]))-V02)/WD;
- if(C*dabs(2*V02-V01-V03) < dabs(V01-V03)) break;
- }
- if(J==Dev||X01==X03) L=cons([X01,X03,V03-V01],L);
- }
- }
- return reverse(L);
-}
-
-def xygraph(F,N,LT,LX,LY)
-{
- if((Proc=getopt(proc))!=1&&Proc!=2&&Proc!=3) Proc=0;
- if(type(DV=getopt(dviout))==4){
- OL=delopt(getopt(),["dviout","shift","ext","cl"]);
- OL=cons(["proc",1],OL);
- R=xygraph(F,N,LT,LX,LY|option_list=OL);
- OL=delopt(getopt(),["shift","ext","cl"]|inv=1);
- return execdraw(R,DV|optilon_list=OL);
- }
- if(N==0) N=32;
- if(N<0){
- N=-N;
- N1=-1; N2=N+1;
- }else{
- N1=0; N2=N;
- }
- if(length(LT)==3 && isvar(LT[0])==1){
- TT=LT[0]; LT=cdr(LT);
- F=mysubst(F,[TT,x]);
- }
- if(LX==0) LX=LT;
- if((Acc=getopt(Acc))!=1) Acc=0;
- if(Acc){
- LX=[eval(LX[0]),eval(LX[1])];
- LY=[eval(LY[0]),eval(LY[1])];
- LT=[eval(LT[0]),eval(LT[1])];
- }else{
- LX=[deval(LX[0]),deval(LX[1])];
- LY=[deval(LY[0]),deval(LY[1])];
- LT=[deval(LT[0]),deval(LT[1])];
- }
- TD=(LT[1]-LT[0])/N;
- if(type(Mul=getopt(scale))!=1){
- if(type(Mul)==4){
- MulX=Mul[0]; MulY=Mul[1];
- }else MulX=MulY=1;
- }else MulX=MulY=Mul;
- if(type(Org=getopt(org))==4){
- Orgx=Org[0];Orgy=Org[1];
- }else Orgx=Orgy=0;
- if(type(F)!=4 || (getopt(para)!=1 && length(F)>1 && type(F[0])<4 && type(F[1])==4)) {
- if(getopt(rev)!=1){
- F1=x; /* LX[0]+(LX[1]-LX[0])*(x-LT[0])/(TD*N); */
- F2=F;
- }else{
- F1=F;
- F2=x; /* LY[0]+(LY[1]-LY[0])*(x-LT[0])/(TD*N); */
- }
- }else{
- F1=F[0]; F2=F[1];
- }
- if(F1==0 || F2==0) LT=[];
- if(length(LT)==2){
- if(Acc){
- for(LTT=[],I=N2;I>=N1;I--)
- LTT=cons(eval(LT[0]+I*(LT[1]-LT[0])/N),LTT);
- }else{
- for(LTT=[],I=N2;I>=N1;I--)
- LTT=cons(deval(LT[0]+I*(LT[1]-LT[0])/N),LTT);
- }
- LT=LTT;
- }
- Cpx=getopt(cpx);
- if(Cpx!=1 && (str_str(rtostr(F1),"@i")>=0 || str_str(rtostr(F2),"@i")>=0))
- Cpx=1;
- if(type(Cpx)<0) Cpx=0;
- if(!Acc){
- if(type(F1)<4) F1=f2df(F1);
- if(type(F2)<4) F2=f2df(F2);
- }
- if(type(Err=getopt(err))==1){
- F1=mysubst(F1,[x,x+Err*TD/1001.23]);
- F2=mysubst(F2,[x,x+Err*TD/1001.23]);
- }
- if(type(F1)==4 || type(F2)==4){
- Dn=1;
- }else Dn=dn(F1)*dn(F2);
- for(V=[],PT=LT;PT!=[]; PT=cdr(PT)){
- T=car(PT);
- if(myfeval(Dn,T)==0){
- V=cons(0,V); continue;
- }
- if(Cpx>0||Acc){
- X=myfeval(F1,T);Y=myfeval(F2,T);
- }else{
- X=myfdeval(F1,T);Y=myfdeval(F2,T);
- }
- if((N1==0||(PT!=LT&&length(PT)!=1)) && (X<LX[0]||X>LX[1]||Y<LY[0]||Y>LY[1]))
- V=cons(0,V);
- else
- V=cons([MulX*(X-Orgx),MulY*(Y-Orgy)],V);
- }
- V=reverse(V);
- Gap0=Gap=Arg=0;
- if(type(Prec=getopt(prec))<0)
- Level=0;
- else if(Prec==0) Level=4;
- else if(type(Prec)==1){
- Level=Prec;
- if(Level<0){
- Level=-Level;
- Gap0=1;
- }
- }else if(type(Prec)==4){
- Level=Prec[0];
- if(length(Prec)>1) Arg=Prec[1];
- if(length(Prec)>2) Gap0=Prec[2];
- }
- if(Level>0){
- if(Level>16) Level=16;
- if(Arg<=0) Arg=30;
- else if(Arg>120) Arg=120;
- Arg=Acc?eval(@pi*Arg/180):deval(@pi*Arg/180);
- SL=dcos(Arg);
- }
- if(Gap0>0){
- if(Gap0<2) Gap0=16;
- else if(Gap0>512) Gap0=512;
- Gap=((MulX*(LX[1]-LX[0]))^2+(MulY*(LY[1]-LY[0]))^2)/(Gap0^2);
- }
- for(I=0;I<Level;I++){
- for(F=K=G=0,NV=NLT=[],PLT=LT,PV=V;PLT!=[];K++,PLT=cdr(PLT),PV=cdr(PV)){
- TG=0;D0=D1;CLT0=CLT;CV0=CV;CV=car(PV);CLT=car(PLT);
- if(length(PV)>1){
- if((CV1=car(cdr(PV)))!=0 && CV!=0)
- D1=[CV[0]-CV1[0],CV[1]-CV1[1]];
- else D1=0;
- }else K=-1; /* ? */
- if(K>0 &&(((D1==0||D0==0)&&(CV0!=0||CV!=0||CV1!=0)) || dvangle(D0,D1)<SL ||
- (Gap>0 && type(D0)==4 && (TG=(D0[0]^2+D0[1]^2-Gap)>0)))){
- G++;T1=(CLT0+CLT)/2;
- if(F==0 && (CV0!=0 || CV!=0)){
- if(myfdeval(Dn,T1)==0){
- NV=cons(0,NV); NLT=cons(T1,NLT);
- }
- if(Cpx>0||Acc){
- X=myfeval(F1,T1);Y=myfeval(F2,T1);
- }else{
- X=myfdeval(F1,T1);Y=myfdeval(F2,T1);
- }
- if(K==1 && N1<0){
- NV=[];NLT=[];
- }
- if((K>1||N1==0)&&(X<LX[0]||X>LX[1]||Y<LY[0]||Y>LY[1])){
- NV=cons(0,NV);NLT=cons(T1,NLT);F=0;
- }else{
- NV=cons([MulX*(X-Orgx),MulY*(Y-Orgy)],NV);NLT=cons(T1,NLT);
- }
- }
- NV=cons(CV,NV);NLT=cons(CLT,NLT);
- if(!TG&&(CV0!=0||CV1!=0)){
- T2=(car(cdr(PLT))+CLT)/2;
- if(myfdeval(Dn,T2)==0){
- NV=cons(0,NV); NLT=cons(CLT,NLT);
- }
- if(Cpx>0||Acc){
- X=myfeval(F1,T2);Y=myfeval(F2,T2);
- }else{
- X=myfdeval(F1,T2);Y=myfdeval(F2,T2);
- }
- if((N1==0||length(PV)!=2)&&(X<LX[0]||X>LX[1]||Y<LY[0]||Y>LY[1])){
- NV=cons(0,NV);NLT=cons(T1,NLT);
- }else{
- NV=cons([MulX*(X-Orgx),MulY*(Y-Orgy)],NV);NLT=cons(T2,NLT);
- }
- }
- if(length(PV)==2 && N1==-1) break;
- F=1;
- }else{
- F=0;NV=cons(CV,NV);NLT=cons(CLT,NLT);
- }
- }
- V=reverse(NV);LT=reverse(NLT);
- if(G==0) break;
- }
- if(Gap>0){
- for(NV=[],PV=V;PV!=[];PV=cdr(PV)){
- NV=cons(P0=car(PV),NV);
- if(length(PV)>1 && P0!=0 && PV[1]!=0
- && (P0[0]-PV[1][0])^2+(P0[1]-PV[1][1])^2>Gap) NV=cons(0,NV);
- }
- V=reverse(NV);
- }
- if((Raw=getopt(raw))==1) return V;
- if(Raw==2) return [V,LT];
- OL=[["curve",1]];OLP=[];
- if(type(C=getopt(ratio))==1){
- OL=cons(["ratio",C],OL);OLP=cons(["ratio",C],OLP);
- }
- if(Acc==1) OL=cons(["Acc",1],OL);
- if(N1<0) OL=cons(["close",-1],OL);
- if(type(Opt=getopt(opt))!=7 && type(Opt)!=4){
- if(Opt==0) return xylines(V|option_list=cons(["opt",0],OL));
- }
- OL=cons(["opt",(Proc)?0:Opt],OL);
- if(type(Opt)>=0) OLP=cons(["opt",Opt],OLP);
- if(type(Vb=getopt(verb))==1||type(Vb)==4){
- OL=cons(["verb",Vb],OL);OLP=cons(["verb",Vb],OL);
- }
- if(Proc){
- S=(Proc==1)?
- [[0,[MulX*(LX[0]-Orgx),MulX*(LX[1]-Orgx)],[MulY*(LY[0]-Orgy),MulY*(LY[1]-Orgy)],
- (TikZ)?1:1/10]]:[];
- S=cons([1,OLP,xylines(V|option_list=OL)],S);
- if(Proc==3) return car(S);
- }else S=xylines(V|option_list=OL);
- if(type(Pt=getopt(pt))==4){
- if(type(Pt[0])!=4) Pt=[Pt];
- if(length(Pt)>1 && type(Pt[1])!=4) Pt=[Pt];
- for(PT=Pt;PT!=[];PT=cdr(PT)){
- PP=car(PT);
- if(type(PP[0])!=4) PP=[PP];
- P=car(PP);PP=cdr(PP);
- Qx=MulX*(P[0]-Orgx);Qy=MulY*(P[1]-Orgy);
- if(length(PP)>0 && type(PP[0])==4){ /* draw line */
- P=car(PP);
- Q1x=MulX*(P[0]-Orgx);Q1y=MulY*(P[1]-Orgy);
- if(length(PP)<1 || car(PP)==0 || iand(car(PP),1))
- OL=["opt",(TikZ)?"-":"@{-}"];
- else OL=["opt",(TikZ)?".":"@{.}"];
- if(Proc) S=cons([1,OL,[[Qx,Qy],[Q1x,Q1y]]],S);
- else S=S+xylines([[Qx,Qy],[Q1x,Q1y]]|optilon_list=OL);
- continue;
- }
- if(length(PP)==0 || type(car(PP))!=7) SS="$\\bullet$";
- else SS=car(PP);
- if(length(PP)<=1){
- if(Proc) S=cons([2,[],[Qx,Qy],[SS]],S);
- else S=S+xyput([Qx,Qy,SS]);
- }else{
- if(Proc) S=cons([2,[],[Qx,Qy],[[SS],"",PP[1]]],S);
- S=S+xyput([Qx,Qy,SS,"",PP[1]]);
- }
- }
- }
- if(type(Ax=getopt(ax))==4){ /* draw axis */
- Adx0=Ady0=0; Adx1=Ady1=0.1;
- if(!TikZ){
- if(!XYcm) Adx1=Ady1=1;
- LOp="@{-}"; LxOp="+!U"; LyOp="+!R";
- }else{
- LOp="-"; LxOp="below"; LyOp="left";
- }
- LOp0=LOp1=LOp;
- LxOO=(Ax[1]==LY[0])?LxOp:(TikZ)?"below left":"+!UR";
- if(type(AxOp=getopt(axopt))>0){
- if(type(AxOp)==1){
- if(AxOp>0) Adx1=Ady1=AxOp;
- else if(AxOp<0){
- Adx1=Ady1=0; Adx0=Ady0=AxOp;
- }
- }else if(type(AxOp)==4){
- if(type(T=car(AxOp))==4 && length(AxOp)>1){
- if(type(T)==7){
- LxOp=T; LyOp=AxOp[1];
- }else if(type(T)==4){
- Ay0=T[0]; Ay1=T[1]; Ax0=AxOp[1][0]; Ax1=AxOp[1][1];
- if(length(T)>2) LxOp=T[2];
- if(length(AxOp[1])>2) LyOp=AxOp[1][2];
- }
- }
- if(length(AxOp)>2 && type(AxOp[2])==7) LxOO=AxOp[2];
- if(length(AxOp)>3 && type(AxOp[3])==7) LOp0=AxOp[3];
- if(length(AxOp)>4 && type(AxOp[4])==7) LOp1=AxOp[4];
- }
- if(type(AxOp)==7) LOp0=AxOp;
- }
- if(Ax[0]>=LX[0] && Ax[0]<=LX[1]){ /* draw marks on x-axis */
- if(Proc) S=cons([3,(type(LOp0)>=0)?[["opt",LOp0]]:[],
- [MulX*(Ax[0]-Orgx),MulY*(LY[0]-Orgy)],[MulX*(Ax[0]-Orgx),MulY*(LY[1]-Orgy)]],S);
- else S=S+xyarrow([MulX*(Ax[0]-Orgx),MulY*(LY[0]-Orgy)],
- [MulX*(Ax[0]-Orgx),MulY*(LY[1]-Orgy)]|opt=LOp0);
- if(length(Ax)>2){
- D=Ax[2];
- if(type(D)==1 && D>0){
- I0=ceil((LX[0]-Ax[0])/D); I1=floor((LX[1]-Ax[0])/D);
- for(DD=[],I=I0; I<=I1; I++){
- if(length(Ax)<5) DD=cons(I*D,DD);
- else if(Ax[4]==0) DD=cons([I*D,I*D+Ax[0]],DD);
- else if(Ax[4]==1) DD=cons([I*D,I*D],DD);
- else if(Ax[4]==2) DD=cons([I*D,I],DD);
- }
- D=DD;
- }
- if(type(D)==4){
- for(;D!=[]; D=cdr(D)){
- T=car(D);
- if(type(T)==4) T=car(T);
- X=MulX*(T+Ax[0]-Orgx); Y=MulY*(Ax[1]-Orgy);
- if(T!=0){
- if(Proc) S=cons([3,(type(LOp1)>=0)?[["opt",LOp1]]:[],[X,Y+Ady0],[X,Y+Ady1]],S);
- else S=S+xyarrow([X,Y+Ady0],[X,Y+Ady1]|opt=LOp1);
- }
- if(type(car(D))==4){
- Arg=[(T==0)?LxOO:LxOp,D[0][1]];
- if(Proc) S=cons([2,[],[X,Y+Ady0],[Arg]],S);
- else S=S+xyput([X,Y+Ady0,Arg]);
- }
- }
- }
- }
- }
- if(Ax[1]>=LY[0] && Ax[1]<=LY[1]){ /* draw marks on y-axis */
- if(Proc) S=cons([3,[["opt",LOp0]],
- [MulX*(LX[0]-Orgx),MulY*(Ax[1]-Orgy)],
- [MulX*(LX[1]-Orgx),MulY*(Ax[1]-Orgy)]],S);
- else S=S+xyarrow([MulX*(LX[0]-Orgx),MulY*(Ax[1]-Orgy)],
- [MulX*(LX[1]-Orgx),MulY*(Ax[1]-Orgy)]|opt=LOp0);
- if(length(Ax)>3){
- D=Ax[3];
- if(type(D)==1 && D>0){
- I0=ceil((LY[0]-Ax[1])/D); I1=floor((LY[1]-Ax[0])/D);
- for(DD=[],I=I0; I<=I1; I++){
- if(length(Ax)<5) DD=cons(I*D,DD);
- else if(I!=0){
- if(Ax[4]==0) DD=cons([I*D,I*D+Ax[1]],DD);
- if(Ax[4]==1) DD=cons([I*D,I*D],DD);
- if(Ax[4]==2) DD=cons([I*D,I],DD);
- }
- }
- D=DD;
- }
- if(type(D)==4){
- for(;type(D)==4&&D!=[]; D=cdr(D)){
- T=car(D);
- if(type(T)==4) T=car(T);
- X=MulX*(Ax[0]-Orgx); Y=MulY*(T+Ax[1]-Orgy);
- if(T!=0){
- if(Proc) S=cons([3,(type(LOp0)>=0)?[["opt",LOp1]]:[],
- [X+Adx0,Y],[X+Adx1,Y]],S);
- else S=S+xyarrow([X+Adx0,Y],[X+Adx1,Y]|opt=LOp1);
- }
- if(type(car(D))==4){
- if(Proc) S=cons([2,[],[X,Y+Ady0],[[LyOp,D[0][1]]]],S);
- else S=S+xyput([X,Y+Ady0,[LyOp,D[0][1]]]);
- }
- }
- }
- }
- }
- }
- if(Proc) return reverse(S);
- if(getopt(dviout)!=1) return S;
- xyproc(S|dviout=1);
-}
-
-def xyarrow(P,Q)
-{
- Cmd = ["fill","filldaw","shade","shadedraw","clip ","pattern","path ","node","coordinate"];
- if(type(P)<4) return "%\n";
- SS=getopt(opt);
- if(!TikZ){
- if(type(Q)<4) return "";
- S="{"+xypos(P)+" \\ar";
- if(type(SS)==7) S=S+SS;
- return S+" "+xypos(Q)+"};\n";
- }
- if(type(SS)==4 && length(SS)>1){
- if(length(SS)>2) SU=SS[2];
- ST=SS[1];
- SS=SS[0];
- }
- if(type(SS)!=7) SS="->";
- if(type(ST)!=7) ST=" -- ";
- if(type(SU)!=7) SU="";
- if(type(S=getopt(cmd))==7) S="\\"+S;
- else S="\\draw";
- if(type(Q)!=4){
- if(Q>0 && Q<=length(Cmd)) S="\\"+Cmd[Q-1]+"";
- if(SS!="-") S=S+"["+SS+"]";
- if(SU!="") SU="["+SU+"]";
- return S+xypos(P)+ST+SU+";\n";
- }
- if(SS!="-"&&SS!="") S=S+"["+SS+"]";
- if(length(P)<3 && length(Q)<3)
- return S+xypos(P)+ST+xypos(Q)+SU+";\n";
- if(length(P)==2) P=[P[0],P[1],"","_0"];
- else if(length(P)==3 || (length(P)==4 && P[3]==""))
- P=[P[0],P[1],P[2],"_0"];
- else if(P[3]=="")
- P=[P[0],P[1],P[2],"_0",P[4]];
- if(length(Q)==2) Q=[Q[0],Q[1],"","_1"];
- else if(length(Q)==3 || (length(Q)==4 && Q[3]==""))
- Q=[Q[0],Q[1],Q[2],"_1"];
- else if(Q[3]=="")
- Q=[Q[0],Q[1],Q[2],"_1",Q[4]];
- return S+xypos(P)+" "+xypos(Q)+"("+P[3]+")"+ST+"("+Q[3]+")"+SU+";\n";
-}
-
-def xyarrows(P,Q,R)
-{
- PQ=newvect(4);
- PQ[0]=(type(P[0])!=4)?f2df(P[0]):P[0];
- PQ[1]=(type(P[1])!=4)?f2df(P[1]):P[1];
- PQ[2]=(type(Q[0])!=4)?f2df(Q[0]):Q[0];
- PQ[3]=(type(Q[1])!=4)?f2df(Q[1]):Q[1];
- if(type(R[0])!=4) R=[R];
- TR=R[0];NX=TR[2];X=X0=TR[0];DX=(TR[1]-TR[0])/NX;
- if(length(R)==2){
- TR=R[1];NY=TR[2];Y=TR[0];DY=(TR[1]-TR[0])/NY;
- }else{
- NY=1;Y=DY=0;
- }
- if(type(L=getopt(abs))!=1) L=0;
- if(type(Sc=getopt(scale))!=1) Sc=0;
- OL=[];
- if(type(Opt=getopt(opt))==7) OL=cons(["opt",Opt],OL);
- Tb=str_tb(0,0);
- for(J=0;J<NY;Y+=DY,J++){
- for(I=0,X=X0;I<NX;I++,X+=DX){
- PX=myf2eval(PQ[0],X,Y);PY=myf2eval(PQ[1],X,Y);
- VX=myf2eval(PQ[2],X,Y);VY=myf2eval(PQ[3],X,Y);
- if(L>0){
- C=dnorm([VX,VY]);
- if(C!=0){
- VX*=L/C;VY*=L/C;
- }
- }
- if(Sc){
- VX*=Sc;VY*=Sc;
- }
- if(VX||VY) str_tb(xyarrow([PX,PY],[PX+VX,PY+VY]|optilon_list=OL),Tb);
- }
- }
- return str_tb(0,Tb);
-}
-
-def polroots(L,V)
-{
- INIT=1;
- if(type(CF=getopt(comp))!=1) CF=0;
- OL=getopt();
- if(CF>32){
- CF-=64;
- INIT=0;
- }else OL=cons(["comp",CF+64],delopt(OL,"comp"));
- if(type(V)==4&&length(V)==1){
- L=L[0];V=V[0];
- }
- Lim=Lim2=[];
- if(type(L)<4){
- if(type(Lim=getopt(lim))==4){
- if(type(Lim[0])!=4){
- if(!isvar(Lim[0])) Lim=cons(V,[Lim]);
- Lim=[Lim];
- }
- if(!isvar(Lim[0][0])) Lim=[cons(V,Lim)];
- Lim=delopt(Lim,V|inv=1);
- if(Lim!=[]){
- Lim=Lim[0];
- if(length(Lim)==3) Lim2=Lim[2];
- Lim=Lim[1];
- }
- }else{
- Lim=Lim2=[];
- }
- if((CF==-2||CF==-1||CF==2)&&iscoef(L,os_md.israt)){ /* Rat+Comp, Rat+Real or Rat */
- S=(CF==-1)?getroot(L,V|cpx=1):getroot(L,V);
- for(RR=[],F=x;S!=[];S=cdr(S)){
- if(findin(V,vars(C=car(S)))<0){ /* Rational solution */
- if(type(C)<2){
- if(Lim!=[]&&(real(C)<Lim[0]||real(C)>Lim[1])) continue;
- if(Lim2!=[]&&(imag(C)<Lim2[0]||imag(C)>Lim2[1])) continue;
- }
- if(F!=C) RR=cons(F=C,RR);
- }else if(CF<0){ /* Irrational solution */
- if((R=pari(roots,mysubst(C,[V,x])))!=0){
- for(R=vtol(R);R!=[];R=cdr(R))
- if((C=car(R))!=F && ntype(C)<CF+6){
- if(Lim!=[]&&(real(C)<Lim[0]||real(C)>Lim[1])) continue;
- if(Lim2!=[]&&(imag(C)<Lim2[0]||imag(C)>Lim2[1])) continue;
- RR=cons(F=C,RR);
- }
- }
- }
- }
- return qsort(RR);
- }
- R=pari(roots,subst(L,V,x));
- if(R==0){
- R=[0];
- if(CF==1){
- for(R=[0],I=mydeg(L,V);I>1; I--)
- R=cons(0,R);
- }
- return R;
- }
- if(CF==1){ /* Complex */
- if(Lim==[]&&Lim2==[]) return vtol(R);
- for(L=[],I=length(R)-1;I>=0;I--){
- C=R[I];
- if(Lim!=[]&&(real(C)<Lim[0]||real(C)>Lim[1])) continue;
- if(Lim2!=[]&&(imag(C)<Lim2[0]||imag(C)>Lim2[1])) continue;
- L=cons(C,L);
- }
- return L;
- }
- for(L=[],F=x,I=length(R)-1;I>=0;I--){ /* Real */
- if(ntype(R[I])<4 && F!=R[I]){
- if(Lim!=[] && (R[I]<Lim[0]||R[I]>Lim[1])) continue;
- L=cons(F=R[I],L);
- }
- }
- return qsort(L);
- }
- if(SS==0&&INIT==1){
- SS=polroots(L,V|option_list=OL);
- if(SS!=0) return SS;
- for(C=0;SS==0&&C<5;C++){
- I=(C==0)?1:(iand(random(),0xff)-0x80);
- for(LL=[],K=length(L)-1;K>=0;K--){
- for(Q=0,J=length(L)-1;J>=0;J--)
- Q+=L[J]*(I+K)^J;
- LL=cons(Q,LL);
- }
- SS=polroots(LL,V|option_list=OL);
- if(SS!=0) return SS;
- }
- return SS;
- }
- C=2^(-32);
- if(type(getopt(err))==1) C=err;
- if((N=length(V))!=length(L)) return [];
- if(N==1) return polroots(L[0],V[0]|option_list=OL);
- for(L1=[],I=1;I<N;I++){
- Res=res(V[0],L[I-1],L[I]);
- if(type(Res)<2) return Res;
- L1=cons(res(V[0],L[I-1],L[I]),L1);
- }
- R=polroots(L1,V1=cdr(V)|option_list=OL);
- if(type(R)<2) return R;
- for(SS=[];R!=[];R=cdr(R)){
- RS=(N==2)?[car(R)]:car(R);
- for(I=0,L0=L[0];I<N-1;I++) L0=mysubst(L0,[V1[I],RS[I]]);
- if(L0==0) return 0;
- S0=polroots(L0,V[0]|option_list=OL);
- if(type(S0)<2) return S0;
- for(S=S0;S!=[];S=cdr(S)){
- S0=cons(car(S),RS);
- for(LT=cdr(L);LT!=[];LT=cdr(LT)){
- for(I=0,TV=car(LT);I<N;I++) TV=mysubst(TV,[V[I],S0[I]]);
- if(abs(TV)>C) break;
- }
- if(LT==[]) SS=cons(S0,SS);
- }
- }
- return reverse(SS);
-}
-
-def ptcommon(X,Y)
-{
- if(length(X)!=2 || length(Y)!=2) return 0;
- if(type(X[1])==4){ /* X is a line */
- if((In=getopt(in))==-1||In==-2||In==-3){
- X0=(X[0][0]+X[1][0])/2;X1=(X[0][1]+X[1][1])/2;
- X=[[X0,X1],[X0+X[1][1]-X[0][1],X1-X[1][0]+X[0][0]]];
- if(In==-1&&type(Y[1])==4) return ptcommon(Y,X|in=-2);
- /* for the second line */
- if(In==-3) In=1;
- else In=0;
- }else if(In==2||In==3){
- X=(X[1][0]-X[0][0])+(X[1][1]-X[0][1])*@i;
- if(X==0) return 0;
- Y=(Y[1][0]-Y[0][0])+(Y[1][1]-Y[0][1])*@i;
- X=myarg(Y/X);
- return (In==2)?X:(X*180/deval(@pi));
- }else if(In!=1) In=0;
- if(type(Y[0])<=3){
- if(In==1){
- return [(Y[1]*X[0][0]+Y[0]*X[1][0])/(Y[0]+Y[1]),
- (Y[1]*X[0][1]+Y[0]*X[1][1])/(Y[0]+Y[1])];
- }
- XX=X[1][0]-X[0][0];YY=X[1][1]-X[0][1];
- Arg=(length(Y)<2)?0:Y[1];
- Arg=deval(Arg);
- if(Arg!=0){
- S=dcos(Arg)*XX-dsin(Arg)*YY;
- YY=dsin(Arg)*XX+dcos(Arg)*YY;
- XX=S;
- }
- S=dnorm([XX,YY]);
- if(S!=0){
- XX*=Y[0]/S;YY*=Y[0]/S;
- }
- return [X[1][0]+XX,X[1][1]+YY];
- }
- S=[X[0][0]+(X[1][0]-X[0][0])*x_,X[0][1]+(X[1][1]-X[0][1])*x_];
- if(type(Y[1])==4){ /* Y is a line */
- T=[Y[0][0]+(Y[1][0]-Y[0][0])*y_-S[0],
- Y[0][1]+(Y[1][1]-Y[0][1])*y_-S[1]];
- R=lsol(T,[x_,y_]);
- if(type(R[0])==4&&type(R[1])==4&&R[0][0]==x_&&R[1][0]==y_){
- if(!In || (R[0][1]>=0&&R[0][1]<=1&&R[1][1]>=0&&R[1][1]<=1) )
- return subst(S,x_,R[0][1],y_,R[1][1]);
- }
- if((type(R[0])>0&&type(R[0])<4)||(type(R[1])>0&&type(R[1])<4)) return 0;
- if(!In) return 1;
- I=(X[0][0]==X[1][0]&&Y[0][0]==Y[1][0]&&X[0][0]==Y[0][0])?1:0;
- if(X[0][I]<=X[1][I]){
- X0=X[0][I];X1=X[1][I];
- }else{
- X1=X[0][I];X0=X[1][I];
- }
- return ((Y[0][I]<X0 && Y[1][I]<X0)||(Y[0][I]>X1&&Y[1][I]>X1))?0:1;
- }else if(Y[1]==0){ /* orth */
- T=[Y[0][0]+(X[1][1]-X[0][1])*y_-S[0],
- Y[0][1]-(X[1][0]-X[0][0])*y_-S[1]];
- R=lsol(T,[x_,y_]);
- if(type(R[0])==4&&type(R[1])==4&&R[0][0]==x_&&R[1][0]==y_){
- if(!In||(R[0][1]>=0&&R[0][1]<=1))
- return subst(S,x_,R[0][1],y_,R[1][1]);
- }
- return (X[0]==X[1])?0:1;
- }else if(type(Y[1])==1 && Y[1]>0){ /* circle */
- T=(S[0]-Y[0][0])^2+(S[1]-Y[0][1])^2-Y[1]^2;
- D=mycoef(T,1,x_)^2-4*mycoef(T,0,x_)*mycoef(T,2,x_);
- if(D==0){
- V=mycoef(T,1,x_)/(2*mycoef(T,2,x_));
- if(!in||(V>=0&&V<=1)) return [subst(S,x_,V)];
- }
- else if((type(D)==1&&D>0)){
- D=dsqrt(D);
- V=-(mycoef(T,1,x_)+D)/(2*mycoef(T,2,x_));
- if(!In||(V>=0&&V<=1)) L=[subst(S,x_,V)];
- else L=[];
- V=(D-mycoef(T,1,x_))/(2*mycoef(T,2,x_));
- if(!In||(V>=0&&V<=1)) L=cons(subst(S,x_,V),L);
- if(length(L)>0) return L;
- }
- }
- return 0;
- }
- if(type(Y[1])==4 || X[1]==0) return ptcommon(Y,X);
- /* X is a circle */
- if(Y[1]==0){ /* tangent line */
- if(Y[0][0]==X[0][0]+X[1] || Y[0][0]==X[0][0]-X[1]) L=[[Y[0][0],X[0][1]]];
- else L=[];
- P=(Y[0][0]+x_-X[0][0])^2+(Y[0][1]+x_*y_-X[0][1])^2-X[1]^2;
- Q=mycoef(P,1,x_)^2-4*mycoef(P,2,x_)*mycoef(P,0,x_);
- for(R=polroots(Q,y_);R!=[];R=cdr(R)){
- X0=-subst(mycoef(P,1,x_)/(2*mycoef(P,2,x_)),y_,car(R));
- L=cons([Y[0][0]+X0,Y[0][1]+car(R)*X0],L);
- }
- }else{ /* Y is a circle */
- P=(x_-X[0][0])^2+(y_-X[0][1])^2-X[1]^2;
- Q=(x_-Y[0][0])^2+(y_-Y[0][1])^2-Y[1]^2;
- V=(X[0][0]!=Y[0][0])?[x_,y_]:[y_,x_];
- R=subst(P,V[0],T=lsol(P-Q,V[0]));
- if(type(T[0])<4) return (T[0]==0)?1:0;
- S=polroots(R,V[1]);
- for(L=[];S!=[];S=cdr(S)){
- R=subst(T,V[1],car(S));
- if(V[0]==x_) L=cons([R,car(S)],L);
- else L=cons([S,R],L);
- }
- }
- if(length(L)!=0) return L;
- return 0;
-}
-
-def tobezier(L)
-{
- if((Div=getopt(div))==1||Div==2){
- if(length(L)!=4) return [tobezier(L|inv=[0,1/2]),tobezier(L|inv=[1/2,1])];
- if(type(L)==4) L=ltov(L);
- if(type(L[0])==4)
- L=[ltov(L[0]),ltov(L[1]),ltov(L[2]),ltov(L[3])];
- S=[(L[0]+3*L[1]+3*L[2]+L[3])/8];
- T=[L[3]];
- S=cons((L[0]+2*L[1]+L[2])/4,S);
- T=cons((L[2]+L[3])/2,T);
- S=cons((L[0]+L[1])/2,S);
- T=cons((L[1]+2*L[2]+L[3])/4,T);
- S=cons(L[0],S);
- T=cons((L[0]+3*L[1]+3*L[2]+L[3])/8,T);
- return [S,T];
- }
- if(Div>2&&Div<257){
- L=tobezier(L);
- for(R=[],I=Div-1;I>=0;I--)
- R=cons(tobezier(L|inv=[I/Div,(I+1)/Div]),R);
- return R;
- }
- if((V=getopt(inv))==1 || type(V)>3){
- if(type(L[0])>3 && type(V)>3) L=tobezier(L);
- if(type(V)>3 && length(V)>2) V2=V[2];
- if(type(V2)!=2) V2=t;
- if(type(V)>3) L=subst(L,V2,(V[1]-V[0])*V2+V[0]);
- N=mydeg(L,V2);
- for(R=[],I=0;I<=N;I++){
- RT=mycoef(L,I,V2);
- R=cons(RT/binom(N,I),R);
- L-=RT*V2^I*(1-V2)^(N-I);
- }
- return reverse(R);
- };
- N=length(L)-1;
- V=newvect(2);
- for(I=0;I<=N;I++,L=cdr(L)){
- if(type(X=car(L))==4) X=ltov(X);
- V+=X*binom(N,I)*t^I*(1-t)^(N-I);
- }
- return V;
-}
-
-def cutf(F,X,VV)
-{
- if(type(car(V=VV))==2){
- Y=[car(V),X];
- V=cdr(V);
- }else Y=X;
- if(type(X)>1){
- Y=(type(Y)==4)?Y[0]:x;
- V1=makenewv(F);
- if(X==Y||Y==x){
- V2=makenewv([F,V1]);
- F=mysubst(F,[Y,V2]);
- V=cons(V2,V);
- }
- return [V1,[V1,os_md.cutf,[F],X,[V]]];
- }
- if(car(V)!=[] && X<car(V)[0]) return myfeval(car(V)[1],Y);
- for(V=cdr(V); ;V=R){
- if((R=cdr(V))==[]){
- if(car(V)!=[] && car(V)[0]<X) return myfeval(car(V)[1],Y);
- return myfeval(F,Y);
- }
- if(car(V)==[]||X>car(V)[0]) continue;
- if(X==car(V)[0]) return car(V)[1];
- return myfeval(F,Y);
- }
-}
-
-def fsum(F,L)
-{
- if(getopt(df)==1){
- F=f2df(F);
- }else Sub=getopt(subst);
- if(type(L[0])==2){
- X=L[0];
- L=cdr(L);
- }else X=0;
- V=(length(L)>2)?L[2]:1;
- for(R=0,I=L[0];;I+=V){
- if(V==0||(I-L[1])*V>0) return R;
- R+=(Sub==1)?subst(F,X?X:x,I):os_md.myfeval(F,X?[X,I]:I);
- }
-}
-
-def periodicf(F,L,X)
-{
- if(type(L)==4) L=[eval(L[0]),eval(L[1])];
- else L=eval(L);
- if(isvar(X)){
- Y=makenewv([X,F]);
- Z=makenewv([X,Y,F]);
- return [Z,[Z,os_md.periodicf,[mysubst(F,[x,Y])],(type(L)==4)?[L]:L,[[Y,X]]]];
- }
- if(type(X)==4){
- V=X[0];
- X=X[1];
- }else V=x;
- if(type(F)==5){
- X=eval(X);
- return myfeval(F[floor(X/L)%length(F)],[V,X-floor(X/L)*L]);
- }
- if(type(L)==4){
- X-=floor((X-L[0])/(L[1]-L[0]))*(L[1]-L[0]);
- return myfeval(F,[V,X]);
- }
-}
-
-def cmpf(X)
-{
- if(type(X)>3){
- if(type(L)==7) return [S_Fc,Dx,S_Ic,S_Ec,S_EC,S_Lc];
- S_Lc=0;
- if(type(S_Fc=X[0])!=4) S_Fc=f2df(S_Fc);
- S_Ic=X[1];
- if(length(S_Ic)>2){
- S_Fc=mysubst(S_Fc,[S_Ic[0],x]);
- S_Ic=cdr(S_Ic);
- }
- S_Dc=(type(S_Ic[0])==7)?1:0;
- if(type(S_Ic[1])==7) S_Dc=ior(S_Dc,2);
- if(type(S_Ec=getopt(exp))!=1) S_Ec=0;
- if(S_Ec<=0){
- S_EC=-S_Ec;
- if(S_EC==0) S_EC=1;
- if(S_Dc==3) S_EC*=2;
- else S_EC/=4;
- if(type(F=X[0])==3&&vars(F)==[x]&&(D=deg(nm(F),x))==deg(dn(F),x)-2){
- S_Lc=S_EC*coef(nm(F),D,x)/coef(dn(F),D+2,x);
- }
- }else{
- S_EC=S_Ec;
- if(S_Dc==3) S_EC*=12;
- else S_EC/=6;
- }
- if(type(S_Fc)==3) S_Fc=red(S_Fc);
- S_EC=1/S_EC;
- return [z_,[z_,os_md.cmpf,x]];
- }
- if(X<=0 && iand(S_Dc,1)) return S_Lc;
- if(X>=1 && iand(S_Dc,2)) return S_Lc;
- if(S_Dc==3){
- if(S_Ec>0){
- Y0=dexp(1/X)*S_EC;
- Y1=dexp(1/(1-X))*S_EC;
- return myfeval(S_Fc,Y1-Y0)*(Y0/X^2+Y1/(1-X)^2);
- }
- return myfeval(S_Fc,S_EC/(1-X)-S_EC/X)*(S_EC/(1-X)^2+S_EC/X^2);
- }
- if(S_Dc==1){
- if(S_Ec>0){
- Y=dexp(1-1/X);
- R=myfeval(S_Fc,S_EC*(Y-1)+I[1])*Y;
- }
- else R=myfeval(S_Fc,I[1]+(1-1/X)*S_EC);
- return R*S_EC/X^2;
- }
- if(S_Dc==2){
- if(S_Ec>0){
- Y=dexp(X/(1-X));
- R=myfeval(S_Fc,S_EC*(Y-1)+S_Ic[0])*Y;
- }else R=myfeval(S_Fc,S_EC*X/(1-X)+S_Ic[0]);
- return R*S_EC/(1-X)^2;
- }
- X=S_Ic[0]+(S_Ic[1]-S_Ic[0])*X;
- return myfeval(S_Fc,X)/(S_Ic[1]-Ic[0]);
-}
-
-def fresidue(P,Q)
-{
- if(iscoef(Q,os_md.israt)) S=fctr(Q);
- else S=[[Q,1]];
- for(R=[];S!=[];S=cdr(S)){
- T=car(S);
- if((D=mydeg(T[0],z))==0) continue;
- L=[];
- if(iscoef(T[0],os_md.iscrat)) L=getroot(T[0],z|cpx=2);
- if(findin(z,vars(L))>=0) L=[];
- if(L==[]) L=polroots(T[0],z|comp=-1);
- for(;L!=[];L=cdr(L)){
- QQ=Q;
- for(I=T[1]; I>1;I--) QQ=mydiff(QQ,z);
- for(U=0,W=I=T[1];I>0;I--,W++){
- QQ=diff(QQ,z);
- U+=subst(QQ,z,L[0])*(z-L[0])^(W-T[1])/fac(W);
- }
- UD=mydiff(U,z);
- for(I=T[1],K=1,PP=P; I>1;I--,K++)
- PP=diff(PP,z)*U-K*PP*UD;
- QQ=subst(PP,z,L[0])/subst(U,z,L[0])^K;
-/* if(D==2) QQ=sqrt2rat(QQ); */
- R=cons([L[0],sqrt2rat(QQ)],R);
- }
- }
- if(type(L=getopt(cond))==4){
- for(S=[];R!=[];R=cdr(R)){
- Z=car(R);
- for(LL=L;LL!=[];LL=cdr(LL)){
- X=real(car(Z));Y=imag(car(Z));
- if(myf3eval(car(LL),X,Y,car(Z))<=0) break;
- }
- if(LL==[]) S=cons(Z,S);
- }
- R=reverse(S);
- }
- if((Sum=getopt(sum))==1||Sum==2){
- for(S=0;R!=[];R=cdr(R)) S+=car(R)[1];
- if(Sum==2) S*=2*@pi*@i;
- return sqrt2rat(S);
- }
- return R;
-}
-
-def fint(F,D,V)
-{
- if(((L=length(V))==2 || (L==3&&isvar(V[0])<3))
- && (type(V[L-1])==7||(type(V[L-1])<3&&type(eval(V[L-1]))<2)))
- /* real integral */
- return areabezier([F,D,V]|option_list=getopt());
- /* complex integral */
- if(L>1&&type(V[1])==4&&type(V[1][1])<4){
- if(type(V[0])==4&&type(V[0][0])<2){
- for(R=[],VT=car(V),VV=cdr(V);VV!=[];VV=cdr(VV),VT=VU){
- if((VU=car(VV))==-1) VU=car(V);
- R=cons([ptcommon([VT,VU],[t,1-t]|in=1),[0,1]],R);
- }
- V=reverse(R);
- }
- else if(L==2) V=[V];
- }
- Opt=cons(["cpx",1],getopt());
- for(R=0;V!=[];V=cdr(V)){
- VT=car(V);
- X=car(VT)[0];XD=red(diff(X,t));
- Y=car(VT)[1];YD=red(diff(Y,t));
- F=mysubst(F,[[x,X],[y,Y],[z,X+@i*Y]]);
- if(type(F)==4)
- FF=cons(F[0]*(XD+@i*YD),cdr(F));
- else FF=red(F*(XD+@i*YD));
- R+=areabezier([FF,D,cons(t,VT[1])]|option_list=Opt);
- }
- return R;
-}
-
-def areabezier(V)
-{
- if(getopt(cpx)==1){
- Opt=delopt(getopt(),"cpx");
- F=V[0];
- if(!isvar(Var=V[2][0])) Var=x;
- if(type(F)==3 && vars(F)==[Var] && imag(dn(F))!=0){
- F=(nm(F)*conj(dn(F)))/(dn(F)*conj(dn(F)));
- V0=red(real(nm(F))/dn(F));
- R=areabezier([V0,V[1],V[2]]|option_list=Opt);
- V0=red(imag(nm(F))/dn(F));
- return R+@i*areabezier([V0,V[1],V[2]]|option_list=Opt);
- }
- if(getopt(Acc)!=1) F=f2df(F);
- V0=compdf([o,[o,real,o_]],o_,F);
- R=areabezier([V0,V[1],V[2]]|option_list=Opt);
- V0=compdf([o,[o,imag,o_]],o_,F);
- return R+@i*areabezier([V0,V[1],V[2]]|option_list=Opt);
- }
- if(type(V[0])!=4 || vars(V[0][0])!=0){
- Mx=[-2.0^(512),2.0^(512)];
- I=length(V[2]);
- if(type(V[2][I-1])==7||type(V[2][I-2])==7){ /* infinite interval */
- if(type(Ec=getopt(exp))==1) R=cmpf([V[0],V[2]]|exp=Ec);
- else R=cmpf([V[0],V[2]]);
- V=[R,V[1],[0,1]];
- }
- if(type((Int=getopt(int)))==1 && type(V[0])<4 && (V1=V[1])>=0){
- if(Int==2&&iand(V1,1)) V1++;
- if(!V1) V1=32;
- Opt=cons(["raw",1],getopt());
- W=xygraph(V[0],V[1],V[2],Mx,Mx|option_list=Opt);
- SS=W[0][1];
- for(S0=S1=0,I=0,L=W;L!=[] && I<=V1;I++, L=cdr(L)){
- if(iand(I,1)) S1+=car(L)[1];
- else S0+=car(L)[1];
- if (I==V1) SS+=car(L)[1];
- }
- VV=deval(V[2][1]-V[2][0]);
- if(Int==2)
- return (2*S0+4*S1-SS)*VV/(3*V1);
- else
- return (2*S0+2*S1-SS)*VV/(2*V1);
- }
- Opt=cons(["opt",0],getopt());
- V=xygraph(V[0],V[1],V[2],Mx,Mx|option_list=Opt);
- }
- if(type(V[0][0])!=4) V=os_md.lbezier(V);
- for(S=0; V!=[]; V=cdr(V)){
- B=tobezier(car(V));
- P=intpoly(B[1]*diff(B[0],t),t);
- S+=mysubst(P,[t,1]);
- }
- return S;
-}
-
-def velbezier(V,L)
-{
- if(L==0) L=[t,0,1];
- else L=[(length(L)==3)?L[2]:t,L[0],L[1]];
- for(R=[],II=length(V)-1;II>=0;II--){
- S=fmmx(diff(V[II],L[0]|dif=1),L|dif=1);
- for(U=0;S!=[];S=cdr(S)) if((T=abs(car(S)[1]))>U) U=T;
- R=cons(U,R);
- }
- return R;
-}
-
-def ptbezier(V,L)
-{
- if(type(V[0])==4&&type(V[0][0])!=4) V=lbezier(V);
- K=length(V);
- if(type(L)<2){
- if(L<0) return K;
- if(L>=K-1) L=[K-1,1];
- else{
- L0=floor(L);
- if(L0>=K-1) L0=K-1;
- L=[L0,L-L0];
- }
- }
- if(L[0]>=0) B=V[L[0]];
- else B=V[K+L[0]];
- B=tobezier(B);
- BB=[diff(B[0],t),diff(B[1],t)];
- return [subst(B,t,L[1]),subst(BB,t,L[1])];
-}
-
-def ptcombezier(P,Q,T)
-{
- if(type(T)<2){
- if(T<2) T=20; /* default */
- return ptcombezier(P,Q,[0,0,1,T]);
- }
- V=T[2]/2;;
- PB=tobezier(P|div=1);
- PP=[ptbbox(PB[0]),ptbbox(PB[1])];
- QB=tobezier(Q|div=1);
- QQ=[ptbbox(QB[0]),ptbbox(QB[1])];
- for(L=[],I=0;I<2;I++){
- for(J=0;J<2;J++){
- if(!iscombox(PP[I],QQ[J])) continue;
- if(T[3]<=1) return
- [[T[0]+(I+0.5)*V,T[1]+(J+0.5)*V,
- [(PP[I][0][0]+PP[I][0][1])/2,(PP[I][1][0]+PP[I][1][1])/2]]];
- else{
-#if 0
- U=PB[I][0];V=PB[I][length(PB[I])-1];
- if(abs(A=(U[0]-V[0]))>abs(B=(U[1]-V[I])))
- M=mat([1,0],[-B/A,1]);
- else if(U!=V)
- M=mat([1,-A/B],[0,1]);
- else continue;
- if(!iscombox(ptbox(ptaffine(M,PB[I])),ptbox(ptaffine(M,QB[J])))) continue;
-#endif
-
- LN=ptcombezier(PB[I],QB[J],[T[0]+I*V,T[1]+J*V,V,T[3]-1]);
-#if 0
- L=append(LN,L);
-#else
- if(LN!=[]){
- if(L==[]) L=LN;
- else for(VV=3*V/2^T[3];LN!=[];LN=cdr(LN)){
- for(LT=L;LT!=[];LT=cdr(LT)){
- if(abs(car(LN)[0]-car(LT)[0])<VV&&abs(car(LN)[1]-car(LT)[1])<VV) break;
- }
- }
- }
- if(length(L)>32){ /* Too many points */
- I=J=2;
- }
-#endif
- }
- }
- }
- return L;
-}
-
-
-def ptcombz(P,Q,T)
-{
- if(P==Q) Q=0;
- if(type(P[0][0])!=4) P=P0=lbezier(P);
- if(Q==0){
- Q=P;F=1;
- }
- else if(type(Q[0][0])!=4) Q=lbezier(Q);
- for(R=[],I=0,Q0=Q;P!=[];P=cdr(P),I++){
- for(J=0,Q=Q0;Q!=[];Q=cdr(Q),J++){
- if(F==1&&I<J+2) break;
- if((RT=ptcombezier(car(P),car(Q),T))!=[]){
- RT=cons([I,J],RT);
- R=cons(RT,R);
- }
- }
- }
- if((Red=getopt(red))==1||Red==2){
- if(type(M=getopt(prec))!=1) M=12;
- for(F=0,T=P0;T!=[];T=cdr(T)){
- for(S=car(T);S!=[];S=cdr(S)){
- if(type(ST=car(S))==4 && type(ST[0])<2){
- if(F++==0){
- X0=X1=ST[0];Y0=Y1=ST[1];
- }else{
- if(ST[0]<X0) X0=ST[0];
- if(ST[0]>X1) X1=ST[0];
- if(ST[1]<Y0) Y0=ST[1];
- if(ST[1]>Y1) Y1=ST[1];
- }
- }
- }
- }
- V0=(X1-X0)/2^M;V1=(Y1-Y2)/2^M;
- for(RR=[],RT=R;RT!=[];RT=cdr(RT))
- for(S=cdr(car(RT));S!=[];S=cdr(S)) RR=cons(car(S)[2],RR);
- RR=ltov(RR);L=length(RR);
- for(I=0;I<L;I++)
- for(K=1,J=I+1;K!=0&&J<L;J++)
- if(abs(RR[I][0]-RR[J][0])<V0 && abs(RR[I][1]-RR[J][1])<V1) RR[I]=K=0;
- R0=[];
- I=L-1;
- if(Red==2){
- for(;I>=0;I--) if(RR[I]!=0) R0=cons(RR[I],R0);
- }else{
- for(RT=R;RT!=[];RT=cdr(RT)){
- R00=[car(RT)[0]];
- for(S=cdr(car(RT));S!=[];S=cdr(S),I--)
- if(RR[L-I-1]!=0) R00=cons(car(S),R00);
- if(length(R00)>1) R0=cons(reverse(R00),R0);
- }
- }
- return R0;
- }
- return reverse(R);
-}
-
-def draw_bezier(ID,IDX,B)
-{
- if(getopt(init)==1){
- S_FDot=0;
- return;
- }
- if(type(Col=getopt(col))!=1&&Col!=0) Col=0;
- Dot=0;
- if(type(Opt=getopt(opt))==7){
- if(!Col){
- Col=drawopt(Opt,0);
- if(Col==-1) Col=0;
- }
- T=drawopt(Opt,3);
- if(iand(T,2)){
- M=iand(T,1)?1/8:1/4;
- for(C=Col,Col=I=0;I<20;I+=8)
- Col+=ishift(0xff-(floor((0xff-iand(0xff,ishift(C,I)))*M)),-I);
- }
- if(iand(T,4)) Dot=2; /* 2 or 3 or 4 or 6 */
- else if(iand(T,8)) Dot=4;
- }
- if(type(B)==4 && (type(B[0])==4||type(B[0])==5) && type(B[0][0])<2) B=lbezier(B);
- else if(type(B)==5) B=[vtol(B)];
- for(;B!=[];B=cdr(B)){
- if(vars(F=car(B))==[]){
-#if 1
- if(length(F)<3&&!Dot){ /* line or point */
- if(length(F)>0){
- G=[rint(F[0][0]),rint(F[0][1])];
- if(length(F)==1) draw_obj(ID,IDX,G,Col);
- else{
- G=[G[0],G[1],rint(F[1][0]),rint(F[1][1])];
- draw_obj(ID,IDX,G,Col);
- }
- }
- continue;
- }
-#endif
- if(length(F)<2) continue;
- F=tobezier(F);
- }
- N=velbezier(F,0);
- N=(N[0]>N[1])?N[0]:N[1];
- if(!N) N=1;
- for(I=0;I<=N;I++,S_FDot++){
- if(Dot!=iand(S_FDot,Dot)) continue;
- G=subst(F,t,I/N);
- G=[rint(G[0]),rint(G[1])];
- if(G!=G0){
- draw_obj(ID,IDX,G,Col);
- G0=G;
- }
- }
- }
- if(S_FDot-->=2^32) S_FDot=0;
- return 0;
-}
-
-def lbezier(L)
-{
- if((In=getopt(inv))==1||In==2||In==3){
- for(F=0,R=[];L!=[];L=cdr(L)){
- LT=car(L);
- if(F==car(LT)) R=cons(1,R);
- else{
- if(R!=[]&&F!=0) R=cons(0,R);
- R=cons(G=car(LT),R);
- if(In==3) In==2;
- }
- for(LT=cdr(LT);LT!=[];LT=cdr(LT))
- R=cons(car(LT),R);
- if((F=car(R))==G&&In==1){
- R=cons(-1,cdr(R));
- F=0;
- }
- }
- if(In==3 && car(R)==G) R=cons(-1,cdr(R));
- return reverse(R);
- }
- for(F=0,RT=R=[];L!=[];L=cdr(L)){
- if(type(T=car(L))==4||type(T)==5){
- if(F==0){
- FT=T;F=1;
- }
- RT=cons(T,RT);
- }else if(T==0){
- if(RT==[]) R=cons(reverse(RT),R);
- RT=[];F=0;
- }else if(T==1){
- if(RT!=[]){
- R=cons(reverse(RT),R);
- RT=[car(RT)];
- }else{
- RT=[];F=0;
- }
- }else if(T==-1){
- RT=cons(FT,RT);
- R=cons(reverse(RT),R);
- RT=[];F=0;
- }
- }
- if(RT!=[]) R=cons(reverse(RT),R);
- return reverse(R);
-}
-
-
-def xybezier(L)
-{
- if(L==0 || (LS=length(L))==0) return "";
- Out=str_tb(0,0);
- if(type(VF=getopt(verb))==4){
- if(type(car(VF))>3){
- VFS=VF;VF=1;
- }else{
- VFS=cdr(VF);VF=car(VF);
- }
- }else VFS=["$\\bullet$","$\\times$"];
- if(VF!=1 && VF!=2) VF=0;
- if(!TikZ){
- if(VF) Ob=str_tb(0,0);
- T="\n**\\crv{";
- if(type(Opt=getopt(opt))==7 && Opt!="") T=T+Opt;
- L00=Q=L[I0=0];S=S1="";
- for(F=0,I=1;I<=LS;I++){
- P=Q;Q=(I==LS)?0:L[I];
- if(type(Q)==4){
- if(F==0){
- S1="";L0=P;F=1;
- continue;
- }else if(F==1)
- F=2;
- else if(F==2){
- S1=S1+"&";
- }
- S1=S1+xypos(P);
- if(VF&&length(VFS)>1) str_tb(xyput([P[0],P[1],VFS[1]]),Ob);
- }else{
- if(Q==0){
- if(F>0){
- str_tb("{"+xypos(L0)+";"+xypos(P)+T+S1+"}};\n",Out);
- if(VF){
- str_tb(xyput([L[0][0],L[0][1],VFS[0]]),Ob);
- if(VF==1) str_tb(xyput([P[0],P[1],VFS[0]]),Ob);
- }
- F=0;
- }
- }else if(Q==1){
- str_tb("{"+xypos(L0)+";"+xypos(P)+T+S1+"}};\n",Out);
- if(VF){
- str_tb(xyput([L[0][0],L[0][1],VFS[0]]),Ob);
- if(VF==1) str_tb(xyput([P[0],P[1],VFS[0]]),Ob);
- }
- F=1;
- }else if(Q==-1){
- if(F==2)
- S1=S1+"&";
- str_tb("{"+xypos(L0)+";"+xypos(L00)+T+S1+xypos(P)+"}};\n",Out);
- if(VF) str_tb(xyput([L[0][0],L[0][1],VFS[0]]),Ob);
- F=0;
- }
- if(F==1){
- if(I<LS-1 && type(L[I+1])<2){
- if(L[I+1]==-1){
- str_tb("{"+xypos(P)+";"+xypos(L00)+T+"}};\n",Out);
- }
- if(VF) str_tb(xyput([P[0][0],P[0][1],VFS[0]]),Ob);
- F=0;
- }
- }
- while(++I<LS && type(L[I])<2);
- if(I>=LS) break;
- if(F==1){
- Q=P;I--;F=0;
- }else L00=Q=L[I];
- }
- }
- }else{
- if(type(T=getopt(cmd))==7){
- if(T!="") T="\\"+T;
- }else T="\\draw";
- if((Rel=getopt(relative))==1) VF=0;
- if(VF) Ob=str_tb(0,0);
- if(type(Opt=getopt(opt))==7 && Opt!="") T=T+"["+Opt+"]";
- Out=str_tb(T,0);
- Q=L[0];
- for(F=M=0,I=1;I<=LS;I++){
- P=Q; Q=(I==LS)?0:L[I];
- if(++M>XYLim){
- str_tb("\n",Out);M=1;
- }
- if(type(Q)==4 || type(Q)==5 || type(Q)==7){
- if(F==0){
- str_tb(" ",Out);
- F=1;
- }else if(F==1){
- str_tb(" .. controls ",Out);
- F=2;
- }else if(F==2){
- str_tb(" and ",Out);
- F=2;
- }
- PP=xypos(P);
- if(Rel==1 && F==2) PP="+"+PP;
- str_tb(PP,Out);
- if(VF&&((F<2)||length(VFS)>1))
- str_tb(xyput([P[0],P[1],(F<2)?VFS[0]:VFS[1]]),Ob);
- }else{
-/* if(I<LS-1) VF=0; */
- if(Q==0||Q==1){
- PP=xypos(P);
- if(Rel==1) PP="+"+PP;
- str_tb(((F==0)?" ":((F==1)?" -- ":" .. "))+PP,Out);
- if(VF) str_tb(xyput([P[0],P[1],VFS[0]]),Ob);
- F=Q;
- }else if(Q==-1){
- PP=xypos(P);
- if(Rel==1) PP="+"+PP;
- if(F==1)
- str_tb("..controls "+PP+" .. cycle",Out);
- else if(F==2)
- str_tb(" and "+PP+" .. cycle",Out);
- if(VF&&length(VFS)>1) str_tb(xyput([P[0],P[1],VFS[1]]),Ob);
- F=0;
- }
- if(F==1){
- if(I<LS-1){
- if(L[I+1]==-1){
- str_tb(" -- cycle",Out);
- I=I+1;
- F=0;
- }
- else if(type(L[I+1])<2) F=0;
- }
- }
- while(++I<LS && type(L[I])<2);
- if(I>=LS) break;
- Q=L[I];
- }
- }
- str_tb(";\n",Out);
- }
- if(VF) str_tb(str_tb(0,Ob),Out);
- return str_tb(0,Out);
-}
-
-def xybox(L)
-{
- K=length(L);
- P=L[0];Q=L[1];
- if(K==2)
- LL=[ P, [P[0],Q[1]], Q, [Q[0],P[1]] ];
- else{
- R=L[2];
- LL=[ P, R, Q, [P[0]+Q[0]-R[0],P[1]+Q[1]-R[1]] ];
- }
- Opt=getopt();
- SS=getopt(opt);
- FL=getopt(color);
- if(TikZ&&type(SS)<1&&K==2){
- if(type(FL)==4){
- F=FL[0];
- if(length(FL)>1) CMD=FL[1];
- }else if(type(FL)==7) F=FL;
- else F="";
- F=cons(F,["rectangle"]);
- if(CMD) return xyarrow(P,Q|opt=F,cmd=CMD);
- else return xyarrow(P,Q|opt=F);
- }
- if(type(SS)!=7&&!TikZ) Opt=cons(["opt","@{-}"],Opt);
- Opt=cons(["close",1],Opt);
- return xylines(LL|option_list=Opt);
-}
-
-def xyang(S,P,Q,R)
-{
- Opt=getopt();
- if(type(Prec=getopt(prec))!=1) Prec=0;
- if(type(Q)>2){
- if(R==1||R==-1){ /* ’¼Šp */
- P1=ptcommon([Q,P],[-S,0]);
- S*=R;
- P2=ptcommon([P,P1],[S,@pi/2]);
- P3=ptcommon([P1,P2],[S,@pi/2]);
- return xylines([P1,P2,P3]|option_list=Opt);
- }else if((AR=abs(R))==0||AR==2||AR==3||AR==4){ /* –îˆó */
- Ang=myarg([Q[0]-P[0],Q[1]-P[1]]);
- if(R<0) Ang+=3.14159;
- ANG=[0.7854,0.5236,1.0472];
- X=(AR==0)?1.5708:ANG[AR-2];
- U=[P[0]+S*dcos(Ang+X),P[1]+S*dsin(Ang+X)];
- V=[P[0]+S*dcos(Ang-X),P[1]+S*dsin(Ang-X)]; /* –îæ */
- V=(X==0)?[U,V]:[U,P,V];
- if(getopt(ar)==1) V=append([Q,P,0],V); /* S–_ */
- return xylines(V|option_list=Opt);
- }else if(AR>4&&AR<9){
- Ang=myarg([Q[0]-P[0],Q[1]-P[1]]);
- ANG=[0.7854,0.5236,0.3927,0.2618];
- X=ANG[AR-5];
- U=[P[0]+S*dcos(Ang+X),P[1]+S*dsin(Ang+X)];
- V=[P[0]+S*dcos(Ang-X),P[1]+S*dsin(Ang-X)];
- W=ptcommon([P,U],[P,Q]|in=-2);
- W1=[(U[0]+P[0]+W[0])/3,(U[1]+P[1]+W[1])/3];
- W2=[(V[0]+P[0]+W[0])/3,(V[1]+P[1]+W[1])/3];
- L=[U,W1,P,1,W2,V];
- if(getopt(ar)==1) L=append([Q,P,0],L);
- if(type(Sc=getopt(scale))>0){
- if(type(Sc)==1) Sc=[Sc,Sc];
- L=ptaffine(diagm(2,Sc),L);
- }
- Opt=getopt(opt);
- if(type(Opt)>0) OL=[["opt",Opt]];
- else OL=[];
- if(getopt(proc)==1) return append([2,OL],L);
- S=xybezier(L|optilon_list=OL);
- if(getopt(dviout)!=1) return S;
- dviout(S);
- return 1;
- }
- }
- if(type(Q)<3){
- X=deval(Q); Y=deval(R);
- }else{
- X=myarg([Q[0]-P[0],Q[1]-P[1]]);
- Y=myarg([R[0]-P[0],R[1]-P[1]]);
- }
- if(Prec>2) N=8;
- else if(Prec==2) N=6;
- else if(Prec==1) N=4;
- else N=3;
- U=deval(@pi)*2/N;
- if(X==Y||Y-X>6.28318){
- for(L=[],I=N-1;I>=0;I--) L=cons([P[0]+S*dcos(I*U),P[1]+S*dsin(I*U)],L);
- return xylines(L|option_list=append([["curve",1],["close",1]],Opt));
- }
- for(M=1;(Y-X)/M>U;M++);
- for(L=[],I=M+1;I>-2;I--){
- Ang=X+(Y-X)*I/M;
- L=cons([P[0]+S*dcos(Ang),P[1]+S*dsin(Ang)],L);
- }
- if(getopt(ar)!=1) return xylines(L|option_list=append([["curve",1],["close",-1]],Opt));
- OL=delopt(Opt,["dviout","opt","proc"]);
- S=xylines(L|option_list=append([["curve",1],["close",-1],["opt",0]],OL));
- T=xylines([P,L[1]]|option_list=cons(["opt",0],OL));
- S=ptaffine("close",[S,T]); /* connect curves */
- if(getopt(opt)==0) return S;
- OL=(type(SS=getopt(opt))>1)?[["opt",SS]]:[];
- if(type(T=getopt(proc))==1 && T>=1 && T<=3) return [1,OL,S];
- if(OL==[]) S=xybezier(S);
- else S=(type(SS)==7)? xybezier(S|opt=SS):xybezier(S|opt=SS[0],cmd=SS[1]);
- if(getopt(dviout)==1) return xyproc(S|dviout=1);
- return S;
-}
-
-def xyoval(P,L,R)
-{
- if(type(Arg=getopt(arg))!=4 && type(Arg=getopt(deg))==4){
- if(length(Arg)>2)
- Arg=[@pi*Arg[0]/180,@pi*Arg[1]/180,@pi*Arg[2]/180];
- else
- Arg=[@pi*Arg[0]/180,@pi*Arg[1]/180];
- }
- if(type(Arg)==4){
- Arg0=deval(Arg[0]); Arg1=deval(Arg[1]);
- if(length(Arg)>2) Arg2=deval(Arg[2]);
- if(Arg1<Arg0 || Arg0<-7) return 0;
- }
- if(type(Prec=getopt(prec))!=0) Prec=0;
- if((Ar=getopt(ar))!=1) Ar=0;
- L=xyang(L,[0,0],Arg0,Arg1|prec=Prec,opt=0,ar=Ar);
- Sc=getopt(scale);
- if(type(Sc=getopt(scale))<1) Sc=[1,1];
- else if(type(Sc)==1) Sc=[Sc,Sc];
- M=mat([1,0],[0,R]);
- L=ptaffine(M,L|shift=P);
- M=mat([Sc[0],0],[0,Sc[1]]);
- L=ptaffine(M,L|arg=Arg2);
- if((Opt=getopt(opt))==0) return L;
- Opt=(type(Opt)>1)? [["opt2",Opt]]:[];
- if(getopt(proc)==1) return [1,Opt,L];
- S=xybezier(L|option_list=getopt());
- if(getopt(dviout)==1){
- xyproc(S|dviout=1);
- return 1;
- }
- return S;
-}
-
-def xycirc(P,R)
-{
- ST=getopt(opt);
- if(type(ST)<0) ST="";
- if(type(Arg=getopt(arg))!=4 && type(Arg=getopt(deg))==4){
- Arg=[@pi*Arg[0]/180,@pi*Arg[1]/180];
- }
-/* Is it OK?
- if(TikZ==0 && XYcm==1){
- R*=10; P=[P[0]*10,P[1]*10];
- }
-*/
- if(type(Arg)==4){
- Arg0=deval(Arg[0]); Arg1=deval(Arg[1]);
- if(Arg1<=Arg0 || Arg0<-7 || Arg1-Arg0>7) return 0;
- if(type(ST)==7)
- S=xygraph([R*cos(x)+P[0],R*sin(x)+P[1]],-4,[Arg0,Arg1],[P[0]-R-1,P[0]+R+1],
- [P[1]-R-1,P[1]+R+1]|opt=ST);
- else
- S=xygraph([R*cos(x)+P[0],R*sin(x)+P[1]],-4,[Arg0,Arg1],[P[0]-R-1,P[0]+R+1],
- [P[1]-R-1,P[1]+R+1]);
- if(getopt(close)==1){
- S=S+xyline([0,0],
- [deval(subst(R*cos(x)+P[0],x,Arg0)),deval(subst(R*sin(x)+P[0],x,Arg0))]);
- S=S+xyline([0,0],
- [deval(subst(R*cos(x)+P[0],x,Arg1)),deval(subst(R*sin(x)+P[0],x,Arg1))]);
- }
- return S;
- }
- if(TikZ){
- SP="";
- if(length(P)>2) SP=P[2];
- if(type(SP)!=7) SP="$"+my_tex_form(SP)+"$";
- if(R==0){
- if(ST!="") ST=ST+",";
- return "\\node ["+ST+"circle,draw]"+xypos([P[0],P[1]])+ "{"+SP+"};\n";
- }
- if(type(R)!=7) R=rtostr(deval(R));
- if(ST!="") ST="["+ST+"]";
- S="\\draw "+ST+xypos([P[0],P[1]])+" circle [radius="+R+"]";
- if(SP!="") S=S+" node at"+xypos([P[0],P[1]])+" {"+SP+"}";
- return S+";\n";
- }
- S="{"+xypos([P[0],P[1]]);
- if(length(P)>2){
- SP=P[2];
- if(type(P)!=7) SP=my_tex_form(SP);
- S=S+" *+{"+SP+"}";
- }
- S =S+" *\\cir";
- if(R!=0){
- R=deval(R);
- S=S+"<"+rtostr(R)+((XYcm)?"cm>":"mm>");
- }
- S = S+"{";
- if(type(ST)==7) S=S+ST;
- return S+"}};\n";
-}
-
-def ptaffine(M,L)
-{
- if(type(L)!=4&&type(L)!=5){
- erno(0);return L;
- }
- if(type(M)==7){ /* connect lists */
- if(M=="reverse"){
- for(LO=LR=[],F=0,LT=L; LT!=[]; LT=cdr(LT)){
- if(type(P=car(LT))==4 || type(P)==7){
- LR=cons(P,LR);
- continue;
- }else{
- if(P==-1){
- LL=reverse(LR);
- LO=append(reverse(cons(-1,cdr(LL))),LO);
- LO=cons(car(LL),LO);
- LR=[];
- }else if(P==1){
- LR=cons(car(LR),cons(1,cdr(LR)));
- }else if(P==0 || length(LT)==1){
- if(LO!=[] && car(LO)!=0 && (type(car(LO))==4 || car(LO)==1))
- LO=cons(0,LO);
- LO=append(LR,LO);
- if(length(LT)>1&&length(LO)>0&&car(LO)!=0) LO=cons(0,LO);
- LR=[];
- }
- }
- }
- return append(LR,LO);
- }
- if(type(L[0][0])!=4) L=[L];
- LO=[];
- if(M=="connect" || M=="close" || M=="loop"){
- Top=car(car(L));
- for(K=1,LL=L; LL!=[]; LL=cdr(LL)){
- for(F=0,LT=car(LL); LT!=[]; LT=cdr(LT),F++){
- if((LTT=car(LT))==0) LTT=1;
- if(F==0 && LO!=[]){
- LO0=car(LO);
- if(car(LO)!=1&&length(LO)>1) LO=cons(1,LO);
- if(LTT==LO0) continue;
- else LO=cons(1,cons(LTT, LO));
- }else LO=cons(LTT, LO);
- }
- }
- if(M!="connect"){
- if(Top==car(LO) || car(LO)==1 || M=="loop")
- LO=cons(-1,cdr(LO));
- else
- LO=cons(-1,cons(1,LO));
- }
- return reverse(LO);
- }
- if(M=="union"){
- for(LL=reverse(L); LL!=[]; LL=cdr(LL)){
- if(LO!=[]) LO=cons(0,LO);
- LO=append(car(LL),LO);
- }
- L=LO;
- }
- return L;
- }
- if(type(Arg=getopt(deg))==1)
- Arg=@pi*Arg/180;
- else Arg=getopt(arg);
- if(type(Arg)==2) Arg=deval(Arg);
- if(type(Arg)==1)
- M=M*mat([dcos(Arg),-dsin(Arg)],[dsin(Arg),dcos(Arg)]);
- if(type(Sft=getopt(org))==4){
- Sft=ltov(Sft);
- Sft-=M*Sft;
- }else Sft=ltov([0,0]);
- if(type(V=getopt(shift))==4)
- Sft+=ltov(V);
- if(getopt(proc)==1){
- if(Sft!=0&&ltov(Sft)!=[0,0]) Sft=[["shift",vtol(Sft)]];
- else Sft=[];
- for(LO=[],LT=L;LT!=[];LT=cdr(LT)){
- if(type(car(T=car(LT)))<2){
- if((P=car(T))==0){ /* exedraw 0 */
- V=[[T[1][0],T[2][0]],[T[1][0],T[2][1]],[T[1][1],T[2][0]],[T[1][1],T[2][1]]];
- V=ptbbox(ptaffine(M,V|option_list=Sft));
- L1=cdr(cdr(cdr(T)));
- LO=cons(append([0,V[0],V[1]],L1),LO);
- continue;
- }else if(P==1){ /* exedraw 1 */
- L1=[];
- for(TT=cdr(cdr(T));TT!=[];TT=cdr(TT)){
- D=car(TT);
- if(type(D[0][0])==4){
- for(L2=[],DT=D;DT!=[];DT=cdr(DT))
- L2=cons(ptaffine(M,car(DT)|option_list=Sft),L2);
- L1=cons(reverse(L2),L1);
- }else L1=cons(ptaffine(M,D|option_list=Sft),L1);
- }
- LO=cons(append([1,T[1]],reverse(L1)),LO);
- continue;
- }else if(P>=2 && P<=5){
- L1=ptaffine(M,cdr(cdr(T))|optilon_list=Sft);
- LO=cons(append([P,T[1]],L1),LO);
- continue;
- }
- }
- LO=cons(T,LO);
- }
- return reverse(LO);
- }
- F=0;
- if(type(L)==4){
- for(LT=L; LT!=[]; LT=cdr(LT)){
- if((T=type(car(LT)))==4||T==5){
- F=1; break;
- }
- }
- }
- if(F==0) return (Sft==0)?ptaffine(M,[L])[0]:ptaffine(M,[L]|shift=vtol(Sft))[0];
- for(LO=[],LT=L; LT!=[]; LT=cdr(LT)){
- if(((T=type(P=car(LT)))!=4 && T!=5)||type(P[0])>3) LO=cons(P,LO);
- else{
- if(T==4) P=ltov(P);
- V=M*P;
- if(Sft!=0) V+=Sft;
- if(T==4) V=vtol(V);
- LO=cons(V,LO);
- }
- }
- return reverse(LO);
-}
-
-def ptlattice(M,N,X,Y)
-{
- if(type(S=getopt(scale))!=1) S=1;
- if(type(Cond=getopt(cond))!=4) Cond=[];
- Line=getopt(line);
- if(Line==1 || Line==2) F=newmat(M,N);
- else Line=0;
- if(type(Org=getopt(org))==4) Org=ltov(Org);
- else Org=newvect(length(X));
- X=ltov(X); Y=ltov(Y);
- for(L=[],I=M-1;I>=0;I--){
- for(P0=P1=0,J=N-1;J>=0;J--){
- P=Org+I*X+J*Y;
- for(C=Cond; C!=[]; C=cdr(C))
- if(subst(car(C),x,P[0],y,P[1])<0) break;
- if(C!=[]) continue;
- if(Line) F[I][J]=1;
- else L=cons(vtol(S*P),L);
- }
- }
- if(Line==0) return L;
- for(I=M-1;I>=0;I--){
- for(T0=0,T1=J=N-1;J>=0;J--){
- if((K=F[I][J])!=0){
- if(T0==0) T0=J;
- else T1=J;
- }
- if(K==0 || T1==0){
- if(T1<T0){
- L=cons(vtol(S*(Org+I*X+T0*Y)), L);
- L=cons(vtol(S*(Org+I*X+T1*Y)), L);
- L=cons(0,L);
- }
- T0=0; T1=N-1;
- }
- }
- }
- for(J=N-1;J>=0;J--){
- for(T0=0,T1=I=M-1;I>=0;I--){
- if((K=F[I][J])!=0){
- if(T0==0) T0=I;
- else T1=I;
- }
- if(K==0 || T1==0){
- if(T1<T0){
- L=cons(vtol(S*(Org+T0*X+J*Y)), L);
- L=cons(vtol(S*(Org+T1*X+J*Y)), L);
- L=cons(0,L);
- }
- T0=0; T1=M-1;
- }
- }
- }
- return cdr(L);
-}
-
-def ptpolygon(N,R)
-{
- if(type(S=getopt(scale))!=1) S=1;
- if(type(Org=getopt(org))!=4) Org=[0,0];
- Pi=deval(@pi);
- if(type(Arg=getopt(deg))==1)
- Arg=Pi*Arg/180;
- else Arg=getopt(arg);
- if(type(Arg)==2) Arg=deval(Arg);
- if(type(Arg)!=1) Arg=0;
- Arg -= Pi*(1/2+1/N);
- D=Pi*2/N;
- for(L=[],I=N-1; I>=0; I--)
- L=cons([S*(Org[0]+R*dcos(Arg+I*D)),S*(Org[1]+R*dsin(Arg+I*D))],L);
- return L;
-}
-
-def ptwindow(L,X,Y)
-{
- if(type(S=getopt(scale))==1){
- X=[S*X[0],S*X[1]]; Y=[S*Y[0],S*Y[1]];
- }
- for(R=[],LT=L;LT!=[];LT=cdr(LT)){
- P=car(LT);
- if(P[0]<X[0] || P[0]>X[1] || P[1]<Y[0] || P[1]>Y[1])
- R=cons(0,R);
- else R=cons(P,R);
- }
- return reverse(R);
-}
-
-def lninbox(L,W)
-{
- if(L[0]==L[1]) return 0;
- R=newvect(2);C=newvect(2);
- for(J=0;J<2;J++){
- C[J]=L[1][J]-L[0][J];
- if(C[J]!=0){
- R[J]=[(W[J][0]-L[0][J])/C[J],(W[J][1]-L[0][J])/C[J]];
- if(R[J][0]>R[J][1]) R[J]=[R[J][1],R[J][0]];
- }
- }
- if(R[0]==0) R[0]=R[1];
- if(R[1]==0) R[1]=R[0];
- S0=(R[0][0]<R[1][0])?R[1][0]:R[0][0];
- S1=(R[0][1]<R[1][1])?R[0][1]:R[1][1];
- if(getopt(in)==1){
- if(S0<0) S0=0;
- if(S1>1) S1=1;
- }
- if(S0>S1) return 0;
- return [[L[0][0]+C[0]*S0,L[0][1]+C[1]*S0],[L[0][0]+C[0]*S1,L[0][1]+C[1]*S1]];
-}
-
-def ptbbox(L)
-{
- J=length(L[0]);
- if((Box=getopt(box))==1){
- for(R=[],I=0;I<J;I++){
- P=car(LT=L)[I][0];Q=car(LT)[I][1];
- for(;LT!=[];LT=cdr(LT)){
- if((type(T=car(LT))==4 || type(T)==5) && length(T)==J){
- if(T[I][0]<P) P=T[I][0];
- if(T[I][1]>Q) Q=T[I][1];
- }
- }
- R=cons([P,Q],R);
- }
- }else if(type(Box)==4) return ptbbox([ptbbox(L),Box]|box=1);
- else{
- for(R=[],I=0;I<J;I++){
- P=Q=car(LT=L)[I];LT=cdr(LT);
- for(;LT!=[];LT=cdr(LT)){
- if((type(T=car(LT))==4||type(T)==5) && type(T[0])<2 && length(T)==J){
- if((V=T[I])<P) P=V;
- else if(V>Q) Q=V;
- }
- }
- R=cons([P,Q],R);
- }
- }
- return reverse(R);
-}
-
-def iscombox(S,T)
-{
- for(;S!=[];S=cdr(S),T=cdr(T))
- if(car(S)[0]>car(T)[1] || car(S)[1]<car(T)[0]) return 0;
- return 1;
-}
-
-def ptcopy(L,V)
-{
- if(type(V[0])!=4) V=[V];
- for(F=0,LL=[]; V!=[]; V=cdr(V)){
- if(F) LL=append(LL,[0]);
- F++;
- LL=append(LL,ptaffine(1,L|shift=car(V)));
- }
-}
-
-def average(L)
-{
- L=os_md.m2l(L|flat=1);
- M0=M1=car(L);
- for(I=SS=0, LT=L; LT!=[]; LT=cdr(LT), I++){
- S+=(V=car(LT));
- SS+=V^2;
- if(V<M0) M0=V;
- else if(V>M1) M1=V;
- }
- SS=dsqrt(SS/I-S^2/I^2);
- S=[deval(S/I),SS,I,M0,M1];
- if(isint(N=getopt(sint))) S=sint(S,N);
- return S;
-}
-
-def m2ll(M)
-{
- for(R=[],I=size(M)[0]-1; I>=0; I--)
- R=cons(vtol(M[I]),R);
- return R;
-}
-
-def madjust(M,W)
-{
- if(type(Null=getopt(null))<0) Null=0;
- if(type(M)==4 && type(M[0])==4){
- M=lv2m(M|null=Null);
- return m2ll(madjust(M,W|null=Null));
- }
- S=size(M);
- if(W<0){
- W=-W;
- T0=ceil(S[0]/W);
- T1=S[1]*W;
- N=newmat(T0,T1);
- for(I=0; I<T0; I++){
- for(K=0; K<W; K++){
- II=K*T0+I;
- for(J=0; J<S[1]; J++)
- N[I][S[1]*K+J]=(II<S[0])?M[II][J]:Null;
- }
- }
- }else{
- T1=W;
- T0=S[0]*(D=ceil(S[1]/T1));
- N=newmat(T0,T1);
- for(K=0; K<D; K++){
- for(J=0; J<W;J++){
- JJ=W*K+J;
- for(I=0; I<S[0]; I++)
- N[S[0]*K+I][J]=(JJ<S[1])?M[I][JJ]:Null;
- }
- }
- }
- return N;
-}
-
-def texcr(N)
-{
- if(!isint(N) || N<0 || N>127) return N;
- S=(iand(N,8))? "\\allowdisplaybreaks":"";
- if(iand(N,2)) S=S+"\\\\";
- if(iand(N,16)) S=S+"\\pause";
- if(iand(N,1)) S=S+"\n";
- if(iand(N,4)) S=S+"& ";
- else if(!iand(N,1)) S=S+" ";
- if(iand(N,64)) S=S+"=";
- if(iand(N,32)) S=","+S;
- return S;
-}
-
-def ltotex(L)
-{
- /* extern TeXLim; */
-
- if(type(L)==5)
- L = vtol(L);
- if(type(L) != 4)
- return my_tex_form(L);
- Opt=getopt(opt);
- Pre=getopt(pre);
- if(type(Var=getopt(var))<1) Var=0;
- Cr2="\n";
- if(type(Cr=getopt(cr))==4){
- Cr2=Cr[1];Cr=Cr[0];
- }
- if(isint(Cr)) Cr=texcr(Cr);
- if(type(Cr)!=7) Cr="\\\\\n & "; /* Cr=7 */
- if(type(Opt)==7) Opt=[Opt];
- if(type(Opt)!=4)
- Op = -1;
- else{
- Op=findin(Opt[0],["spt","GRS","Pfaff","Fuchs","vect","cr","text","spts","spts0",
- "dform","tab", "graph","coord"]);
- Opt=cdr(Opt);
- }
- if(Op==0){ /* spt */
- Out = str_tb("\\left\\{\n ",0);
- for(CC=0; L!=[]; L=cdr(L), CC++){
- if(CC>0) str_tb(",\\, ",Out);
- TP=car(L);
- if(Op!=0)
- str_tb(my_tex_form(TP),Out);
- else if(TP[0]==1)
- str_tb(my_tex_form(TP[1]),Out);
- else
- str_tb(["[", my_tex_form(TP[1]), "]_", rtotex(TP[0])],Out);
- }
- str_tb("%\n\\right\\}\n",Out);
- }else if(Op==1){ /* GRS */
- Out = string_to_tb("\\begin{Bmatrix}\n");
- if(type(Pre)==7) str_tb(Pre,Out);
- MC=length(M=ltov(L));
- for(ML=0, I=length(M); --I>=0; ){
- if(length(M[I]) > ML) ML=length(M[I]);
- }
- for(I=0; I<ML; I++){
- for(CC=J=0; J<MC; J++, CC++){
- if(length(M[J]) <= I){
- if(CC > 0) str_tb(" & ",Out);
- }else if(M[J][I][0] <= 1){
- if(M[J][I][0] == 0) str_tb(" & ",Out);
- else
- str_tb([(!CC)?" ":" & ", my_tex_form(M[J][I][1])], Out);
- }else
- str_tb([((!CC)?" [":" & ["), my_tex_form(M[J][I][1]), "]_",
- rtotex(M[J][I][0])], Out);
- }
- str_tb((I<ML-1)?"\\\\\n":"\n", Out);
- }
- str_tb("\\end{Bmatrix}",Out);
- }else if(Op==2){ /* Pfaff */
- V=monototex(Opt[0]);
- Out = string_to_tb("d"+V+"= \\Biggl(");
- Opt=cdr(Opt);
- II=length(Opt);
- for(I=0; I<II; I++){
- str_tb([(I>0)?" + ":" ",mtotex(L[I]),"\\frac{d",monototex(Opt[I]),"}{",
- my_tex_form(Opt[I]),(I==II-1)?"}\n":"}\n\\\\&\n"],Out);
- }
- str_tb(["\\Biggr)",V,"\n"],Out);
- }else if(Op==3){ /* Fuchs */
- Out = string_to_tb("\\frac{d");
- V=my_tex_form(Opt[0]);
- str_tb([V,"}{d",my_tex_form(Opt[1]),"}="] ,Out);
- Opt=cdr(Opt); Opt=cdr(Opt);
- II=length(Opt);
- for(I=0; I<II; I++){
- str_tb([(I>0)?" +":"\\Biggl(", " \\frac{",
- my_tex_form(L[I]),"}{", my_tex_form(Opt[I]),"}\n"],Out);
- }
- str_tb(["\\Biggr)",V,"\n"],Out);
- }else if(Op==4){ /* vect */
- Out=str_tb(mtotex(matc(L)|lim=0,var=Var),0);
- }else if(Op==5 || Op==6){ /* cr or text */
- Out = str_tb(0,0);
- if(type(Lim=getopt(lim))!=1) Lim=0;
- else if(Lim<30&&Lim>0) Lim=TeXLim;
- Str=getopt(str);
- if(length(Opt)==1 && (car(Opt)=="spts" || car(Opt)=="spts0") && type(Str)!=1)
- Str=2;
- for(K=I=0; L!=[]; I++, L=cdr(L)){
- LT=car(L);
- if((!Lim||Op==6)&&I>0) str_tb((Op==5)?Cr:"\n",Out);
- if(Op==6){
- if(type(LT)==7){
- str_tb([LT," "],Out);
- I=-1;
- continue;
- }
- str_tb("$",Out);
- }
- KK=0;
- if(Str>0 && type(LT)==4 && Opt!=[])
- S=ltotex(LT|opt=car(Opt),lim=0,str=Str,cr=Cr2,var=Var);
- else if(type(LT)==6){
- if(Lim>0){
- S=mtotex(LT|var=Var,lim=0,len=1);
- KK=S[1];
- S=S[0];
- }else S=mtotex(LT|var=Var,lim=0);
- }else if(type(LT)==3 || type(LT)==2)
- S=fctrtos(LT|TeX=2,lim=0,var=Var);
- else S=my_tex_form(LT);
- if(Op!=6&&I>0&&Lim){
- if(Lim<0){
- if(I%(-Lim)==0)
- str_tb((Op==5)?Cr:"\n",Out);
- }else if((K+=(KK=(KK)?KK:texlen(S)))>Lim){
- str_tb((Op==5)?Cr:"\n",Out);
- K=KK;
- }
- }
- str_tb(S,Out);
- if(Op==6) str_tb("$",Out);
- }
- }else if(Op==7||Op==8){ /* spts, spts0 */
- if(type(Lim=getopt(lim))!=1 || (Lim<30 && Lim!=0))
- Lim=TeXLim;
- Str=getopt(str);
- Out = str_tb(0,0);
- for(K=0; L!=[]; L=cdr(L)){
- LT=car(L);
- KK=0;
- if(type(LT)==7 && Str==1) S=LT;
- else if(type(LT)==3 || type(LT)==2)
- S=fctrtos(LT|TeX=2,lim=0,var=Var);
- else if(type(LT)==6){
- if(Lim){
- S=mtotex(LT|var=Var,lim=0,len=1);
- KK=S[1];
- S=S[0];
- }else S=mtotex(LT|var=Var,lim=0);
- }else
- S=my_tex_form(LT);
- if(Lim!=0){
- if(!KK) KK=texlen(S);
- if(K>0 && K+KK>Lim){
- str_tb(Cr,Out);
- K=0;
- }
- }
- if(K>0){
- str_tb((Op==7)?"\\ ":" ",Out);
- if(type(LT)>3 && type(LT)<7) str_tb("%\n",Out);
- }
- str_tb(S,Out);
- K+=KK;
- if(OP==7) K++;
- }
- }else if(Op==9){ /* dform */
- Out=str_tb(0,0);
- for(I=0;L!=[];L=cdr(L),I++){
- for(J=0,LT=car(L); LT!=[]; LT=cdr(LT),J++){
- if(J==0){
- if((V=car(LT))==0) continue;
- if(I>0){
- if(type(V)==1){
- if(V<0){
- str_tb("-",Out);
- V=-V;
- }
- else str_tb("+",Out);
- if(V==1 && length(LT)>1) continue;
- str_tb(monototex(V),Out);
- continue;
- }
- else str_tb("+",Out);
- }
- }else if(J>0) str_tb((J>1)?"\\wedge d":"\\,d",Out);
- V=monototex(car(LT));
- if(V<"-" || V>=".") str_tb(V,Out);
- else str_tb(["(",V,")"],Out);
- }
- }
- }else if(Op==10 && type(L)==4 && type(car(L))==4){ /* tab */
- if(type(Null=getopt(null))<0) Null="";
- if(getopt(vert)==1){
- M=lv2m(L|null=Null);
- L=m2ll(mtranspose(M));
- }
- if(type(W=getopt(width))==1)
- L=madjust(L,W|null=Null);
- LV=ltov(L);
- S=length(LV);
-#if 1
- if(type(T=getopt(left))==4){
- T=str_times(T,S);
- for(L=[],I=0;I<S;I++){
- L=cons(cons(car(T),LV[I]),L);
- T=cdr(T);
- }
- LV=reverse(L);
- }
- if(type(T=getopt(right))==4){
- T=str_times(T,S);
- for(L=[],I=0;I<S;I++){
- L=cons(append(LV[I],[car(T)]),L);
- T=cdr(T);
- }
- LV=reverse(L);
- }
- for(I=CS=0; I<S; I++)
- if(length(LV[I])>CS) CS=length(LV[I]);
- if(type(T=getopt(top))==4){
- LV=cons(str_times(T,CS),vtol(LV));
- S++;
- }
- if(type(T=getopt(last))==4){
- LV=append(vtol(LV),[str_times(T,CS)]);
- S++;
- }
-#else
- for(I=CS=0; I<S; I++)
- if(length(LV[I])>CS) CS=length(LV[I]);
-#endif
- if(type(Title=getopt(title))!=7) Title="";
- if(type(Vline=getopt(vline))!=4) Vline=[0,CS];
- else Vline=subst(Vline,z,CS);
- for(VV=[],VT=Vline;VT!=[];VT=cdr(VT)){
- if(type(T=car(VT))==4 && T[1]>0){
- for(I=T[0];I<=CS;I+=T[1]) VV=cons(I,VV);
- }else VV=cons(T,VV);
- }
- Vline=qsort(VV);
- Out=str_tb("\\begin{tabular}{",0);
- if(type(Al=getopt(align))==7 && str_len(Al)>1){
- str_tb(Al,Out);
- }else{
- if(type(Al)!=7 || str_len(Al)<1) Al="r";
- for(I=0;I<=CS;I++){
- if(I!=0) str_tb(Al,Out);
- while(Vline!=[] && car(Vline)==I){
- str_tb("|",Out);
- Vline=cdr(Vline);
- }
- }
- }
- str_tb("}",Out);
- if(Title!="")
- str_tb("\n\\multicolumn{"+rtostr(CS)+"}{c}{"+Title+"}\\\\",Out);
- if(type(Hline=getopt(hline))!=4) Hline=[0,S];
- else Hline=subst(Hline,z,S);
- for(VV=[],VT=Hline;VT!=[];VT=cdr(VT)){
- if(type(T=car(VT))==4 && T[1]>0){
- for(I=T[0];I<=S;I+=T[1]) VV=cons(I,VV);
- }else VV=cons(T,VV);
- }
- Hline=qsort(VV);
- while(Hline!=[] && car(Hline)==0){
- str_tb(" \\hline\n",Out);
- Hline=cdr(Hline);
- }
-/*
- if(type(getopt(left))==4) CS++;
- if(type(getopt(right))==4) CS++;
- if(type(T=getopt(top))==4){
- LV=cons(str_times(T,CS),vtol(LV));
- S++;
- }
- if(type(T=getopt(last))==4){
- LV=append(vtol(LV),[str_times(T,CS)]);
- S++;
- }
- if(type(T=getopt(left))==4){
- T=str_times(T,S);
- for(L=[],I=0;I<S;I++){
- L=cons(cons(car(T),LV[I]),L);
- T=cdr(T);
- }
- LV=reverse(L);
- }
- if(type(T=getopt(right))==4){
- T=str_times(T,S);
- for(L=[],I=0;I<S;I++){
- L=cons(append(LV[I],[car(T)]),L);
- T=cdr(T);
- }
- LV=reverse(L);
- }
-*/
- for(I=0; I<S; I++){
- for(C=0,LT=LV[I];C<CS; C++){
- if(LT!=[]){
- P=car(LT);
- if(type(P)!=7) P="$"+my_tex_form(P)+"$";
- if(P!="") str_tb(P,Out);
- LT=cdr(LT);
- }
- if(C<CS-1) str_tb("& ",Out);
- }
- str_tb("\\\\",Out);
- while(Hline!=[] && car(Hline)==I+1){
- str_tb(" \\hline",Out);
- Hline=cdr(Hline);
- }
- str_tb("\n",Out);
- }
- str_tb("\\end{tabular}\n",Out);
- }else if(Op==11){ /* graph */
- if(type(Strip=getopt(strip))!=1) Strip=0;
- if(type(MX=getopt(max))!=1) MX=0;
- if(type(ML=getopt(mult))!=1) ML=0;
- if((REL=getopt(relative))!=1) REL=0;
- CL=getopt(color);
- OL=delopt(getopt(),["color","strip","mult"]);
- if(ML==1&&type(CL)==4){
- LL=L[1];L=L[0];K=length(L);S=T="";
- if(!MX){
- MX=vector(length(L[0]));
- for(LT=L;LT!=[];LT=cdr(LT)){
- for(I=0,LTT=car(LT);LTT!=[];I++,LTT=cdr(LTT)){
- if(REL==1) MX[I]+=car(LTT);
- else if(MX[I]<car(LTT)) MX[I]=car(LTT);
- }
- }
- MX=lmax(MX);
- OL=cons(["max",MX],OL);
- }
- if(REL==1) MX=newvect(length(L[0]));
- for(I=0;I<K;I++){
- for(R=[],J=length(L[I]);--J>=0;){
- if(REL==1){
- R=cons([MX[J],V=MX[J]+L[I][J]],R);
- MX[J]=V;
- }else R=cons([(!I)?0:L[I-1][J],L[I][J]],R);
- }
- OP=cons(["color",CL[I]],OL);
- S+=ltotex([R,LL]|option_list=cons(["value",0],cons(["strip",(!I)?1:2],OP)));
- T+=ltotex([R,LL]|option_list=cons(["strip",3],OP));
- }
- return(!Strip)?xyproc(S+T):(S+T);
- }else if(!TikZ) CL=0;
- if(type(Line=getopt(line))!=1){
- if(type(Line)==4){
- if(type(Line[0])==1 && (type(Line[1])==7 || type(Line[1])==1)){
- Opt=Line[1]; Line=Line[0];
- }else if(ML==1){
- OL=delopt(OL,"line");
- LL=L[1];L=L[0];K=length(L);S="";
- if(!MX){
- MX=newvect(length(L[0]));
- for(LT=L;LT!=[];LT=cdr(LT)){
- for(I=0,LTT=car(LT);LTT!=[];I++,LTT=cdr(LTT)){
- if(REL==1) MX[I]+=car(LTT);
- else if(MX[I]<car(LTT)) MX[I]=car(LTT);
- }
- }
- MX=lmax(MX);
- OL=cons(["max",MX],OL);
- }
- for(I=0;I<K;I++)
- S+=ltotex([L[I],LL]|option_list
- =cons(["line",Line[I]],cons(["strip",(!I)?1:2],OL)));
- return(!Strip)?xyproc(S):S;
- }
- }else Line=0;
- }else Opt="@{-}";
- Width=8; Hight=3; WRet=1/2; HMerg=(getopt(horiz)==1)?0.3:0.2;
- if(!TikZ){
- Width*=10; Hight*=10; HMerg*=10;
- }
- VMerg=HMerg;
- if(type(Shift=getopt(shift))!=1)
- Shift=0;
- if(type(V=getopt(size))==4){
- Width=V[0];Hight=V[1];
- if(length(V)>2) WRet=V[2];
- if(length(V)>3) VMerg=VMerg=V[3];
- if(length(V)>4) HMerg=V[4];
- }
- Val=getopt(value);
- if(!isint(Val)) Val=-1;
- if(type(Line=getopt(line))!=1){
- if(type(Line)==4 && type(Line[0])==1 && (type(Line[1])==7 || type(Line[1])==1)){
- Opt=Line[1]; Line=Line[0];
- }else Line=0;
- }else Opt="@{-}";
- if(type(car(L))==4){
- LL=L[1]; L=L[0];
- }else LL=[];
- if(Line==-1){
- for(Sum=0, LT=L; LT!=[]; LT=cdr(LT)){
- if((S=car(LT))<=0) return 0;
- Sum+=S;
- }
- for(R=[],LT=L;LT!=[];LT=cdr(LT)) R=cons(car(LT)/Sum,R);
- R=reverse(R);
- Opt0=Opt*2/3;
- Out=str_tb((Strip>0)?0:xyproc(1),0);
- if(type(CL)!=4) str_tb(xylines(ptpolygon(6,Opt)|close=1,curve=1),Out);
- for(S=0,RT=R,LT=LL;RT!=[];RT=cdr(RT)){
- SS=S+RT[0];
- if(type(CL)==4){
- str_tb(xyang(Opt,[0,0],(0.25-SS)*6.2832,(0.25-S)*6.2832|ar=1,opt=car(CL)),Out);
- if(length(CL)>0) CL=cdr(CL);
- }else str_tb(xyline([0,0],[Opt*dsin(S*6.2832),Opt*dcos(S*6.2832)]),Out);
- T=(S+SS)/2;
- S=SS;
- if(LT!=[]){
- str_tb(xyput([Opt0*dsin(T*6.2832),Opt0*dcos(T*6.2832),car(LT)]),Out);
- LT=cdr(LT);
- }
- }
- if(!Strip) str_tb(xyproc(0),Out);
- return str_tb(0,Out);
- }
- if(MX==0){
- for(MX=0,LT=L; LT!=[]; LT=cdr(LT))
- if(car(LT)>MX) MX=car(LT);
- }
- MX-=Shift;
- S=length(L);
- WStep=Width/S;
- WWStep=WStep*WRet;
- HStep=(Hight<0)?-Hight:Hight/MX;
- if(LL!=[]&&length(LL)==S-1) WS2=WStep/2;
- else WS2=0;
- Out=str_tb((Strip>0)?0:xyproc(1),0);
- Hori=getopt(horiz);
- if(Strip<2){
- if(Hori==1) str_tb(xyline([0,0],[0,Width-WStep+WWStep]),Out);
- else str_tb(xyline([0,0],[Width-WStep+WWStep,0]),Out);
- }
- for(I=0,LT=L;LT!=[]; LT=cdr(LT),I++){
- XP=WStep*I; XPM=XP+WWStep/2;
- if(type(LTT=car(LT))==4){
- YP0=(car(LTT)-Shift)*HStep;YP=(LTT[1]-Shift)*HStep;
- VL=LTT[1];
- if(REL) VL-=LTT[0];
- }else{
- YP0=0;YP=(LTT-Shift)*HStep;VL=LTT;
- }
- if(Hori==1){
- if(Line!=0){
- if(I>0)
- str_tb(xyarrow([XPM,YP],[XPM-WStep,YPP]|opt=Opt),Out);
- if(Val!=0)
- str_tb(xyput([YP+HMerg, XPM,car(LT)]),Out);
- if(Line==2)
- str_tb(xyput([YP,XPM,"$\\bullet$"]),Out);
- YPP=YP;
- }else if(YP!=0 || Val==1){
- if(Strip!=3){
- if(CL) str_tb(xybox([[YP,XP+WWStep], [YP0,XP]]|color=CL),Out);
- else str_tb(xybox([[YP,XP+WWStep],[YP0,XP]]),Out);
- }
- if(Val!=0) str_tb(xyput([(YP<0||REL==1)?(YP-HMerg):(YP+HMerg),XPM,VL]),Out);
- }
- if(LL!=[]&&I<length(LL)&&Strip<2) str_tb(xyput([-VMerg,XPM+WS2,LL[I]]),Out);
- }else{
- if(Line!=0){
- if(I>0)
- str_tb(xyarrow([XPM-WStep,YPP],[XPM,YP]|opt=Opt),Out);
- if(Val!=0)
- str_tb(xyput([XPM,YP+HMerg,car(LT)]),Out);
- if(Line==2)
- str_tb(xyput([XPM,YP,"$\\bullet$"]),Out);
- YPP=YP;
- }else if(YP!=0 || Val==1){
- if(Strip!=3){
- if(CL) str_tb(xybox([[XP,YP0],[XP+WWStep,YP]]|color=CL),Out);
- else str_tb(xybox([[XP,YP0],[XP+WWStep,YP]]),Out);
- }
- if(Val!=0) str_tb(xyput([XPM,(YP<0||REL==1)?(YP-HMerg):(YP+HMerg),VL]),Out);
- }
- if(LL!=[]&&I<length(LL)&&Strip<2) str_tb(xyput([XPM+WS2,-VMerg,LL[I]]),Out);
- }
- }
- if(!Strip)str_tb(xyproc(0),Out);
- }else if(Op==12){ /* coord */
- Out=str_tb("(",0);
- for(LT=L;;){
- X=car(LT);
- if(type(X)>3 || imag(X)==0) str_tb(my_tex_form(X),Out);
- else{
- XR=real(X);XI=imag(X);
- S=monototex(imag(X));
- if(S=="1") S="";
- else if(S=="- 1") S="-";
- if(getopt(cpx)==2) S=S+"\\sqrt{-1}";
- else S=S+"i";
- if(XR!=0){
- if(str_char(S,0,"-")==0) S=monototex(XR)+S;
- else S=monototex(XR)+"+"+S;
- }
- str_tb(S,Out);
- }
- if((LT=cdr(LT))==[]) break;
- else str_tb(",",Out);
- }
- str_tb(")",Out);
- }
- else return my_tex_form(L);
- S = str_tb(0,Out);
- return (getopt(small)==1)?smallmattex(S):S;
-}
-
-
-def str_tb(L,TB)
-{
- if(type(TB) == 0) TB = "";
- if(L == 0)
- return (type(TB) == 7)?string_to_tb(TB):tb_to_string(TB);
- if(type(L) == 7)
- L = [L];
- else if(type(L) != 4){
- erno(0);
- return 0;
- }
- if(type(TB) <= 7)
- TB = string_to_tb((type(TB)==7)?TB:"");
- for(; L != []; L = cdr(L))
- write_to_tb(car(L), TB);
- return TB;
-}
-
-/*
-def redgrs(M,T)
-{
- L = [zzz];
- for(I=S=0,Eq=[],MT=M; MT!=[]; I++, MT=cdr(MT)){
- for(J=LS=0, N=car(MT); N!=[]; N=cdr(N)){
- X = makev([z,I,z,J]);
- L=cons(X,L);
- LS += X;
- S += car(N)[1]*X;
- }
- Eq = cons(LS-zzz,Eq);
- }
- Eq = cons(S-T,Eq);
- Sol= lnsol(Eq,L);
- for(LS=[],S=Sol; S!=[]; S=cdr(S)){
- T=car(S);
- if(type(S)!=4) return 0;
- LS=cons(car(S)[0],LS);
- }
-}
-*/
-
-/* T=0 : all reduction
- =1 : construction procedure
- =2 : connection coefficient
- =3 : operator
- =4 : series expansion
- =5 : expression by TeX
- =6 : Fuchs relation
- =7 : All
- =8 : basic
- =9 : ""
- =10: irreducible
- =11: recurrence */
-def getbygrs(M, TT)
-{
- /* extern TeXEq; */
-
- if(type(M)==7) M=s2sp(M);
- if(type(M) != 4 || TT =="help"){
- mycat(
-["getbygrs(m,t) or getbygrs(m,[t,s_1,s_2,...]|perm=?,var=?,pt=?,mat=?)\n",
-" m: generalized Riemann scheme or spectral type\n",
-" t: reduction, construct, connection, series, operator, TeX, Fuchs, irreducible, basic, recurrence,\n",
-" All\n",
-" s: TeX dviout simplify short general operator irreducible top0 x1 x2 sft\n",
-"Ex: getbygrs(\"111,21,111\", [\"All\",\"dviout\",\"operator\",\"top0\"])\n"]);
- return 0;
- }
- if(type(TT) == 4){
- T = TT[0];
- T1 = cdr(TT);
- }else{
- T = TT;
- T1 = [];
- }
- if(type(T) == 7)
- T = findin(T,["reduction","construct","connection", "operator", "series",
- "TeX", "Fuchs", "All", "basic", "", "irreducible", "recurrence"]);
- TeX = findin("TeX", T1);
- Simp = findin("simplify", T1);
- Short = findin("short", T1);
- Dviout= findin("dviout", T1);
- General=findin("general", T1);
- Op =findin("operator", T1);
- Irr =findin("irreducible", T1);
- Top0 =findin("top0",T1);
- X1 =findin("x1",T1);
- X2 =findin("x2",T1);
- Sft =findin("sft",T1);
- Title = getopt(title);
- Mat = getopt(mat);
- if(Mat!=1 || T<0 ||(T!=0&&T!=1&&T!=5&&T!=6&&T!=8&&T!=10&&T!=9)) Mat = 0;
- if(findin("keep",T1) >= 0)
- Keep = Dviout = 1;
- else Keep = 0;
- if(Dviout >= 0 || T == 5) TeX = 1;
- for(J = 0, MM = M; J == 0 && MM != []; MM = cdr(MM)){
- for(MI = car(MM); MI != []; MI = cdr(MI)){
- if(type(car(MI)) != 1 || car(MI) <= 0){
- J = 1; break;
- }
- }
- }
-
- /* spectral type -> GRS */
- if(J == 0){
- for(R = [], S = J = 0, MM = M; MM != []; MM = cdr(MM), J++){
- MT = qsort(car(MM));
- R = cons(reverse(MT), R);
- if(J == 1){
- S = length(MT)-1;
- if(MT[S] > MT[0]) S = 0;
- }
- }
- M = reverse(R);
- R = getopt(var);
- if(type(R)<1){
- for(R = [], I = J-1; I >= 0; I--)
- R = cons(asciitostr([97+I]), R);
- }
- Sft=(Sft>=0)?1:0;
- if(General < 0)
- Sft=-Sft-1;
- M = sp2grs(M,R,Sft|mat=Mat);
- }
- for(M0=[],MM=M;MM!=[];MM=cdr(MM)){ /* change "?" -> z_z */
- for(M1=[],Mm=car(MM);Mm!=[];Mm=cdr(Mm)){
- Mt=car(Mm);
- if(type(Mt)==4 && Mt[1]=="?"){
- M1=cons([Mt[0],z_z],M1);
- continue;
- }else if(type(Mt)==7 && Mt=="?"){
- M1=cons(z_z,M1);
- continue;
- }
- M1=cons(Mt,M1);
- }
- M0=cons(reverse(M1),M0);
- }
- M = fspt(reverse(M0),5); /* short -> long */
- if(findin(z_z,vars(M))>=0)
- M=subst(M,z_z,lsol(chkspt(M|mat=Mat)[3],z_z)); /* Fuchs relation */
- NP = length(M);
- Perm = getopt(perm);
- if(type(Perm) == 4)
- M = mperm(M,Perm,0);
- if(T == 9){ /* "" */
- if(Short >= 0)
- M = chkspt(M|opt=4,mat=Mat);
- return M;
- }
- R = [0,M];
- ALL = [R];
-
- while(type(R = redgrs(R[1]|mat=Mat)) == 4)
- ALL = cons(R, ALL);
- if(R < 0)
- return 0;
-
- /* TeX */
- if(TeX >= 0 && !chkfun("print_tex_form", "names.rr"))
- return 0;
- if(Dviout >= 0 && type(Title) == 7)
- dviout(Title|keep=1);
- if(T == 7 && Dviout >= 0){
- S=["keep","simplify"];
- if(Top0 >= 0)
- S = cons("top0",S);
- getbygrs(M,cons(5,S)|title="\\noindent Riemann Scheme",mat=Mat);
- Same = 0;
- if(R > 0){
- MM = getbygrs(M,8|mat=Mat); /* basic GRS */
- MS = chkspt(MM|opt=0,mat=Mat); /* spectral type */
- if(M != MM)
- getbygrs(MM,cons(5,S)|title="Basic Riemann Scheme",mat=Mat);
- else{
- dviout("This is a basic Riemann Scheme.\n\n\\noindent"|keep=1);
- Same = 1;
- }
- dviout(MS|keep=1);
- }
- if(chkspt(ALL[0][1]|mat=Mat)[3] != 0)
- getbygrs(M,cons(6,S)|title="Fuchs condition",mat=Mat);
- if(Same == 0){
- M1 = M[1];
- if(M1[length(M1)-1][0]==1 && Mat!=1){
- M1=M[2];
- if(M1[length(M1)-1][0] == 1){
- getbygrs(M,cons(2,S)|title="Connection formula");
- if(M1[length(M[0][0])-1][0] == 1 && R==0)
- getbygrs(M,cons(11,S)|title="Recurrence relation shifting the last exponents at $\\infty$, 0, 1");
- }
- getbygrs(M,cons(1,S)|title="Integral representation");
- getbygrs(M,cons(4,S)|title="Series expansion");
- }
- if(Irr < 0){
- TI="Irreduciblity $\\Leftrightarrow$ any value of the following linear forms $\\notin\\mathbb Z$";
- if(R > 0)
- TI += " + fundamental irreducibility";
- getbygrs(M,cons(10,S)|title=TI,mat=Mat);
- dviout("which coorespond to the decompositions"|keep=1);
- sproot(chkspt(M|opt=0),"pairs"|dviout=1,keep=1);
- }
- }
- if(Op >= 0 && Mat!=1) getbygrs(M,cons(3,S)|title="Operator");
- dviout(" ");
- return 1;
- }
- if(T == 0 && TeX >= 0){
- T = 1; TeX = 16;
- }
-/* Fuchs */
- Fuc = chkspt(ALL[0][1]|Mat=mat)[3];
- if(Fuc == 0) Simp = -1;
- if(type(Fuc) == 1){
- print("Violate Fuchs condition");
- return 0;
- }
- if(T == 6){
- if(Dviout >= 0) dviout(Fuc|eq=0,keep=Keep);
- return (TeX >= 0)?my_tex_form(Fuc):Fuc;
- }
- Fuc = [Fuc];
-/* Generelized Riemann scheme */
- if(T == 5){
- M = ltov(M);
- for(ML=0, I=0; I<NP; I++){
- L = length(M[I]);
- if(L > ML) ML = L;
- }
- Out = string_to_tb("P\\begin{Bmatrix}\nx=");
- if(Top0 < 0)
- write_to_tb("\\infty & ",Out);
- Pt = getopt(pt);
- if(type(Pt) == 4){
- for(J = 3; J < NP; J++){
- str_tb(["& ",rtotex(car(Pt))],Out);
- Pt = cdr(Pt);
- }
- }
- else if(X2>=0)
- str_tb("0 & x_2",Out);
- else
- str_tb((X1>=0)?"x_1 & x_2":"0 & 1",Out);
- for(J = 3; J < NP; J++)
- str_tb(["& x_",rtotex(J)],Out);
- if(Top0 >= 0)
- write_to_tb("& \\infty",Out);
- write_to_tb("\\\\\n",Out);
- for(I = 0; I < ML; I++){
- for(CC = 0, J = (Top0 >= 0)?1:0; ; J++, CC++){
- if(J == NP){
- if(Top0 < 0) break;
- J = 0;
- }
- if(length(M[J]) <= I){
- if(CC > 0) write_to_tb(" & ",Out);
- }else if(M[J][I][0] <= 1){
- if(M[J][I][0] == 0) str_tb(" & ",Out);
- else
- str_tb([(!CC)?" ":" & ", my_tex_form(M[J][I][1])], Out);
- }else{
- str_tb([((!CC)?"[":" & ["), my_tex_form(M[J][I][1]),
- (Mat==1)?"]_{":"]_{("],Out);
- str_tb([my_tex_form(M[J][I][0]),(Mat==1)?"}":")}"],Out);
- }
- if(Top0 >= 0 && J == 0)
- break;
- }
- if(I == 0)
- str_tb("&\\!\\!;x",Out);
- str_tb("\\\\\n",Out);
- }
- str_tb("\\end{Bmatrix}",Out);
- Out = str_tb(0,Out);
- if(Dviout >= 0)
- dviout(Out|eq=0,keep=Keep);
- return Out;
- }
-
-/* Reduction */
- if(T == 0){
- if(Simp >= 0)
- ALL = simplify(ALL,Fuc,4);
- return reverse(ALL);
- }
- LA = length(ALL) - 1;
- NP = length(ALL[0][1]);
-
-/* irreducible */
- if(T == 10){
- for(IR=[], I = 0; I < LA; I++){
- AI = ALL[I]; AIT = AI[1];
- K = AI[0][0];
- P = -AIT[0][K][1];
- P -= cterm(P);
- IR = cons(P, IR);
- for(J = 0; J < NP; J++){
- K = AI[0][J];
- for(L = length(AIT[J]) - 1; L >= 0 ; L--){
- if(L == K || AIT[J][L][0] <= AIT[J][K][0])
- continue;
- P = AIT[J][L][1] - AIT[J][K][1];
- Q = cterm(P);
- if(dn(Q)==1)
- P -= Q;
- IR = cons(P,IR);
- }
- }
- }
- P=Fuc[0];
- Q=cterm(P);
- if(type(Q)==1 && dn(Q)==1){
- for(F=0,V=vars(P);V!=[];V=cdr(V)){
- R=mycoef(P,1,car(V));
- if(type(R)!=1 || Q%R!=0){
- F=1; break;
- }
- }
- if(F==0){
- P-=Q;
- Simp=0;
- }
- }
- if(Simp >= 0){
- IR=simplify(IR,[P],4);
- for(R=[]; IR!=[]; IR=cdr(IR)){
- P=car(IR);
- Q=cterm(P);
- if(dn(Q)==1) P-=Q;
- R=cons(P,R);
- }
- IR=R;
- }
- for(R=[]; IR!=[]; IR=cdr(IR)){
- P=car(IR);
- if(str_len(rtostr(P)) > str_len(rtostr(-P)))
- P = -P;
- R = cons(P,R);
- }
- R = ltov(R);
-#ifdef USEMODULE
- R = qsort(R,os_md.cmpsimple);
-#else
- R = qsort(R,cmpsimple);
-#endif
- R = vtol(R);
- if(TeX >= 0){
- Out = string_to_tb("");
- for(I=L=K=0; R!=[]; R=cdr(R),I++){
- K1 = K;
- RS = my_tex_form(car(R));
- K = nmono(car(R));
- L += K;
- if(I){
- if(K1 == K && L < 30)
- str_tb("\\quad ",Out);
- else{
- L = K;
- str_tb((TeXEq==5)?["\\\\%\n &"]:["\\\\%\n "],Out);
- }
- }
- str_tb(RS,Out);
- }
- R = Out;
- if(Dviout>=0){
- dviout(R|eq=0,keep=Keep);
- return 1;
- }
- }
- return R;
- }
-
- AL = []; SS = 0;
- for(I = 0; I <= LA; I++){
- AI = ALL[I]; AIT = AI[1]; /* AIT: GRS */
- if(I > 0){
- for(S = J = 0; J < NP; J++){
- GE = AIT[J][AI0[J]][1];
- S += GE;
- if(J == 0)
- SS = [];
- else
- SS = cons(GE,SS);
- }
- SS = cons(1-Mat-S, reverse(SS));
- }
- AI0 = AI[0];
- AL = cons([SS, cutgrs(AIT)], AL);
- }
- AL = reverse(AL);
- AD = newvect(NP);
- ALT = AL[0][1];
- for(J = 1; J < NP; J++){
- /* AD[J] = ALT[J][0][1]; [J][?][1] <- [J][?][0]: max */
- for(MMX=0, K = KM = length(ALT[J])-1; K >= 0; K--){
- if(MMX <= ALT[J][K][0]){
- if(J == 1 && MMX == ALT[J][K][0])
- continue;
- KM = K;
- MMX = ALT[J][K][0];
- }
- }
- AD[J] = ALT[J][KM][1];
- }
- AL = cdr(AL);
- AL = cons([vtol(AD), ALT], AL);
- AL = cons([0, mcgrs(ALT, [vtol(-AD)]|mat=Mat)], AL);
- if(Simp >= 0 && T != 3)
- AL = simplify(AL,Fuc,4);
-/* Basic */
- if(T == 8){
- ALT = AL[0][1];
- if(TeX >= 0){
- if(Dviout >= 0){
- return getbygrs(ALT,["TeX","dviout","keep"]);
- }
- return getbygrs(ALT,"TeX");
- }
- if(Short >= 0)
- ALT = chkspt(ALT|opt=4);
- return ALT;
- }
-
-/* Construct */
- if(T == 1){
- if(TeX >= 0){
- L = length(AL);
- I = Done = 0; Out0=Out1=""; NM = DN = [];
- if(TeX != 16){
- AL11=AL[L-1][1][1];
- AT = AL11[length(AL11)-1];
- if(type(AT) == 4){
- PW = (AT[0] > 1)?"":AT[1];
- }else PW = AT;
- }
- Out = string_to_tb("");
- while(--L >= 0){
- if(TeX == 16){
- if(Done)
- write_to_tb(":\\ ", Out);
- write_to_tb(getbygrs(AL[L][1],(Top0>=0)?["TeX", "top0"]:"TeX"|mat=Mat), Out);
- Done = 1;
- if(L != 0) write_to_tb((TeXEq==5)?
- "\\\\%\n&\\leftarrow ":"\\\\%\n\\leftarrow ", Out);
- }
- ALT = AL[L][0];
- if(TeX != 16){
- V1 = (I==0)?"x":V2;
- V2 = /* (I==0 && L<=2)?"s": */
- "s_"+rtotex(I);
- }else V1=V2="x";
- JJ = (type(ALT) == 4)?length(ALT):0;
- if(I > 0 && L > 0)
- write_to_tb("\n ", Out);
- for(Outt = "", J = 1; J < JJ; J++){
- if(ALT[J] == 0) continue;
- if(J == 1) Outt += V1;
- else if(J == 2) Outt += "(1-"+V1+")";
- else Outt += "(x_"+rtotex(J)+"-"+V1+")";
- Outt += "^"+ rtotex(ALT[J]);
- }
- if(TeX != 16) write_to_tb(Outt, Out);
- else if(Outt != "")
- str_tb(["\\mathrm{Ad}\\Bigl(",Outt,"\\Bigr)"], Out);
- if(JJ == 0){
- if(I != 0)
- Out1 = "ds_"+rtotex(I-1)+Out1;
- continue;
- }
- if(ALT[0] == 0) continue;
- Out0 += "\\int_p^{"+V1+"}";
- if(TeX == 16)
- str_tb(["mc_",rtotex(ALT[0])], Out);
- else{
- str_tb(["(",V1,"-",V2,")^",rtotex(-1+ALT[0])], Out);
- AL11=AL[L-1][1][1];
- AT = AL11[length(AL11)-1];
- if(type(AT) == 4) AT = AT[1];
- DN = cons(ALT[0]+AT+1,DN);
- NM = cons(AT+1,cons(ALT[0],NM));
- }
- if(L != 2) Out1 += "d"+V2;
- I++;
- }
- if(R){
- if(I == 0) Ov = "x";
- else Ov = "s_"+rtotex(I-1);
- Out1 = "u_B("+Ov+")"+Out1;
- }
- if(TeX != 16){
- Out0 = string_to_tb(Out0);
- str_tb([Out, Out1], Out0);
- Out = Out0;
- NM = simplify(NM, Fuc, 4);
- DN = simplify(DN, Fuc, 4);
- DNT = lsort(NM,DN,"reduce");
- NMT = DNT[0]; DNT = DNT[1];
- if(NMT != [] && PW != ""){
- write_to_tb((TeXEq==5)?"\\\\\n &\\sim\\frac{\n"
- :"\\\\\n \\sim\\frac{\n", Out);
- for(PT = NMT; PT != []; PT = cdr(PT))
- str_tb([" \\Gamma(",my_tex_form(car(PT)), ")\n"], Out);
- write_to_tb(" }{\n", Out);
- for(PT = DNT; PT != []; PT = cdr(PT))
- write_to_tb(" \\Gamma("+my_tex_form(car(PT))+")\n", Out);
- write_to_tb(" }", Out);
- if(R > 0) write_to_tb("C_0", Out);
- write_to_tb("x^"+rtotex(PW) +"\\ \\ (p=0,\\ x\\to0)", Out);
- }
- }else
- Out = str_tb(0, Out);
- if(Dviout >= 0){
- dviout(Out|eq=0,keep=Keep);
- return 1;
- }
- return O;
- }
- if(Short >= 0){
- for(ALL = [] ; AL != []; AL = cdr(AL)){
- AT = car(AL);
- ALL = cons([AT[0], chkspt(AT[1]|opt=4)], ALL);
- }
- AL = reverse(ALL);
- }
- return AL; /* AL[0][1] : reduced GRS, R==0 -> rigid */
- }
-
- if(T == 2 || T == 4 || T == 11){
- for(I = (T==2)?2:1; I >= (T==11)?0:1; I--){
- ALT = M[I];
- if(ALT[length(ALT)-1][0] != 1){
- mycat(["multiplicity for",I,":",ALT[length(ALT)-1][1],
- "should be 1"]);
- return;
- }
- }
- }
- LA++;
- NM = DN = [];
-
-/* Three term relation */
- if(T == 11){
- if(R > 0){
- print("This is not rigid\n");
- return 0;
- }
- for(I = 0; I <= LA; I++){
- if(I > 0){
- AI = AL[I][0]; /* operation */
- if(AI[0] != 0){
- DN = cons(simplify(AI1+1,Fuc,4),DN);
- NM = cons(simplify(AI1+AI[0]+1,Fuc,4),NM);
- }
- }
- ALT = AL[I][1][1]; AI1 = ALT[length(ALT)-1][1];
- }
- DNT = lsort(NM,DN,"reduce");
- if(TeX < 0) return DNT;
- NMT = DNT[0]; DNT = DNT[1];
- Out = str_tb("u_{0,0,0}-u_{+1,0,-1}=\\frac{","");
- for(PT = NMT; PT != []; PT = cdr(PT))
- str_tb(["(",my_tex_form(car(PT)),")"], Out);
- str_tb(["}\n{"],Out);
- for(PT = DNT; PT != []; PT = cdr(PT))
- str_tb(["(",my_tex_form(car(PT)),")"], Out);
- write_to_tb("}u_{0,+1,-1}",Out);
- if(Dviout >= 0){
- dviout(Out|eq=0,keep=Keep);
- return 1;
- }
- return Out;
- }
-
- AD=newvect(NP);
- for(I = 0; I <= LA; I++){
- if(I > 0){
- AI = AL[I][0]; /* operation */
- if(T == 2 && AI[0] != 0){
- DN = cons(simplify(-AI2,Fuc,4), cons(simplify(AI1+1,Fuc,4),DN));
- NM = cons(simplify(-AI2-AI[0],Fuc,4), cons(simplify(AI1+AI[0]+1,Fuc,4),
- NM));
- }
- for(J = 1; J < NP; J++)
- AD[J] += simplify(AI[J],Fuc,4);
- }
- if(T == 2){
- ALT = AL[I][1][1]; AI1 = ALT[length(ALT)-1][1];
- ALT = AL[I][1][2]; AI2 = ALT[length(ALT)-1][1];
- if(I == 0){
- C3 = AI1; C4 = AI2;
- }
- }
- }
-
-/* Connection */
- if(T == 2){
- DNT = lsort(NM,DN,"reduce");
- NMT = DNT[0]; DNT = DNT[1];
- if(TeX < 0) return [NMT,DNT,AD];
- C0 = M[1][length(M[1])-1][1];
- C1 = M[2][length(M[2])-1][1];
- M = AL[0][1];
- C3 = M[1][length(M[1])-1][1];
- C4 = M[2][length(M[2])-1][1];
- Out = str_tb(["c(0\\!:\\!", my_tex_form(C0),
- " \\rightsquigarrow 1\\!:\\!", my_tex_form(C1),")"], "");
- if(R > 0 && AMSTeX == 1 && (TeXEq == 4 || TeXEq == 5)){
- write_to_tb("\\\\\n", Out);
- if(TeXEq == 5) write_to_tb(" &", Out);
- }
- write_to_tb("=\\frac{\n",Out);
- for(PT = NMT; PT != []; PT = cdr(PT))
- write_to_tb(" \\Gamma("+my_tex_form(car(PT))+")\n", Out);
- write_to_tb(" }{\n",Out);
- for(PT = DNT; PT != []; PT = cdr(PT))
- write_to_tb(" \\Gamma("+my_tex_form(car(PT))+")\n",Out);
- write_to_tb(" }", Out);
- for(J = 3; J < length(AD); J++){
- if(AD[J] == 0) continue;
- str_tb(["\n (1-x_", rtotex(J), "^{-1})^", rtotex(AD[J])], Out);
- }
- if(R != 0)
- str_tb(["\n c_B(0\\!:\\!", my_tex_form(C3),
- " \\rightsquigarrow 1\\!:\\!", my_tex_form(C4), ")"], Out);
- Out = tb_to_string(Out);
- if(Dviout >= 0){
- dviout(Out|eq=0,keep=Keep);
- return 1;
- }
- return Out;
- }
-
-/* Series */
- if(T == 4){
- AL11 = AL[0][1][1];
- V = AL11[length(AL11)-1][1];
- S00 = -V; S01 = (R==0)?[]:[[0,0]];
- S1 = S2 = [];
- for(Ix = 1, ALL = cdr(AL); ALL != []; ){
- ALT = ALL[0][0];
- if(ALT[0] != 0){ /* mc */
- for(Sum = [], ST = S01; ST != []; ST = cdr(ST))
- Sum = cons(car(ST)[0], Sum);
- S1 = cons(cons(S00+1,Sum), S1);
- S2 = cons(cons(S00+1+ALT[0],Sum),S2);
- S00 += ALT[0];
- }
- ALL = cdr(ALL);
- for(I = 1; I < length(ALT); I++){ /* addition */
- if(I == 1){
- S00 += ALT[1];
- if(ALL == [])
- S00 = [S00];
- }else{
- if(ALT[I] == 0)
- continue;
- if(ALL != []){
- S1 = cons([-ALT[I],Ix],S1);
- S2 = cons([1,Ix],S2);
- S01= cons([Ix,I],S01);
- Ix++;
- }else
- S00 = cons([ALT[I],I],S00);
- }
- }
- }
- S00 = reverse(S00);
- S01 = qsort(S01); S1 = qsort(S1); S2 = qsort(S2);
- if(Simp >= 0){
- S00 = simplify(S00,Fuc,4);
- S01 = simplify(S01,Fuc,4);
- S1 = simplify(S1,Fuc,4);
- S2 = simplify(S2,Fuc,4);
- SS = lsort(S1,S2,"reduce");
- S1 = SS[0]; S2 = SS[1];
- }
-
- if(TeX >= 0){
- /* Top linear power */
- TOP = Ps = Sm = "";
- for(TOP = Ps = Sm = "", ST = cdr(S00); ST != []; ST = cdr(ST)){
- SP = car(ST);
- if(SP[0] != 0){
- if(SP[1] == 2)
- TOP += "(1-x)^"+rtotex(SP[0]);
- else
- TOP += "(1-x/x_"+rtotex(SP[1])+")^"+rtotex(SP[0]);
- }
- }
- /* Top power */
- PW = my_tex_form(car(S00));
- if(PW == "0")
- PW = "";
- NP = length(AL[0][1]);
- PWS = newvect(NP);
- for(I = 0; I < NP; I++)
- PWS[I] = "";
- for(S = S01, I = 0; S != []; S = cdr(S), I++){
- SI = rtotex(car(S)[0]);
- if(I > 0) Sm += ",\\ ";
- Sm += "n_"+SI+"\\ge0";
- if(PW != "")
- PW += "+";
- PW += "n_"+SI;
- if(car(S)[1] > 2)
- PWS[car(S)[1]] += "-n_"+rtotex(car(S)[0]);
- else if(car(S)[1] == 0)
- Ps = "C_{n_0}"+Ps;
- }
- for(I = 3; I < NP; I++){
- if(PWS[I] != "")
- Ps += "x_"+rtotex(I)+"^{"+PWS[I]+"}";
- }
- Out = str_tb([TOP, Ps, "x^{", PW, "}"], "");
- /* Gamma factor */
- for(I = 0, SS = S1; I <= 1; I++, SS = S2){
- PW = string_to_tb("");
- for(PW1=""; SS != [] ; SS = cdr(SS)){
- for(J = 0, SST = car(SS); SST != []; SST = cdr(SST), J++){
- if(J == 0){
- JJ = (car(SST) == 1)?((length(SST)==2)?(-1):0):1;
- if(JJ > 0)
- str_tb(["(", my_tex_form(car(SST)), ")_{"], PW);
- else if(JJ == 0)
- PW1 = "(";
- }else{
- if(JJ > 0){
- if(J > 1) write_to_tb("+", PW);
- str_tb(["n_", rtotex(car(SST))], PW);
- }else{
- if(J > 1) PW1 += "+";
- PW1 += "n_"+rtotex(car(SST));
- }
- }
- }
- if(JJ > 0) write_to_tb("}", PW);
- else PW1 += (JJ == 0)?")!":"!";
- }
- if(I == 0)
- Out0 = "\\frac";
- Out0 += "{"+tb_to_string(PW)+PW1+"}";
- PW = string_to_tb(""); PW1 = "";
- }
- if(Out0 == "\\frac{}{}")
- Out0 = "";
- Out = "\\sum_{"+Sm+"}"+Out0 + Top + tb_to_string(Out);
- if(length(S01) == 1){
- Out = str_subst(Out, "{n_"+SI+"}", "n");
- Out = str_subst(Out, "n_"+SI, "n");
- }
- if(Dviout >= 0)
- dviout(Out|eq=0,keep=Keep);
- return Out;
- }
- return [cons(S00, S01), S1, S2];
- }
-
-/* Operator */
- if(T==3){
- Fuc0 = car(Fuc);
- if(Fuc0 != 0){ /* Kill Fuchs relation */
- for(V = vars(Fuc0); V != []; V = cdr(V)){
- VT = car(V);
- if(deg(Fuc0,VT) == 1){
- AL = mysubst(AL, [VT, -red(coef(Fuc0,0,VT)/coef(Fuc0,1,VT))]);
- break;
- }
- }
- if(V == []){
- print("Fuchs condition has no variable with degree 1");
- return 0;
- }
- }
- L = newvect(NP);
- Pt = getopt(pt);
- for(I = NP-1; I >= 1; I--){
- if(type(Pt) == 4)
- L[I] = Pt[I-1];
- else if(I >= 3 || X1 >= 0 || (X2 >= 0 && I >= 2))
- L[I] = makev(["x_", I]);
- else L[I] = I-1;
- }
- if(R){ /* non-rigid basic */
- MM = AL[0][1]; /* Riemann scheme */
- for(OD = 0, MT = car(MM); MT != []; MT = cdr(MT))
- OD += car(MT)[0];
- for(V = DN = [], M = MM; M != []; M = cdr(M)){
- MT = car(M); /* exponents */
- for(K = KM = 0, NT = []; ; K++){
- for(J = 0, P = 1, MTT = MT; MTT != []; MTT = cdr(MTT)){
- if(J == 0 && car(MTT)[1] == 0)
- KM = car(MTT)[0];
- for(KK = car(MTT)[0] - K -1; KK >= 0; KK--)
- P *= (dx-car(MTT)[1]-KK);
- }
- if(P == 1) break;
- NT = cons(P,NT);
- }
- V = cons(reverse(NT), V);
- DN = cons(KM, DN);
- }
- V = ltov(reverse(V)); /* conditions for GRS */
- DN = ltov(reverse(DN)); /* dims of local hol. sol. */
- for(J = OD; J >= 0; J--){
- for(I = Q = 1; I < NP; I++){
- if(J > DN[I])
- Q *= (x-L[I])^(J-DN[I]);
- }
- K = mydeg(Q,x);
- if(J == OD){
- P = Q*dx^J;
- DM = K;
- }else{
- for(I = DM-OD+J-K; I >= 0; I--){
- X = makev(["r",J,"_",I]);
- P += Q*x^I*X*dx^J;
- }
- }
- }
- for(R = [], I = 0; I < NP; I++){
- Q = toeul(P, [x,dx], (I==0)?"infty":L[I]); /* Euler at I-th pt */
- for(VT = V[I], J=0; VT != [] ; VT = cdr(VT), J++){
- if(car(VT) != 0)
- R = cons(rpdiv(coef(Q,J,x), car(VT), dx)[0], R); /* equations */
- }
- }
- for(RR = RRR = [], I = OD-1; I>=0; I--){
- RR = [];
- for(RT = R; RT != [] ; RT = cdr(RT)){
- if( (VT = mycoef(car(RT), I, dx)) != 0)
- RR = cons(VT, RR); /* real linear eqs */
- }
- J = mydeg(mycoef(P,I,dx),x);
- for(S = 0, VVV = []; J >= 0; J--){
- X = makev(["r",I,"_",J]);
- VVV = cons(X, VVV); /* unknowns */
- }
- RR = lsol(RR,VVV);
- LN = length(RR);
- for(K=0; K<LN; K++){
- RRT = RR[K];
- if(type(RRT) != 4) continue;
- R = mysubst(R,RRT);
- P = mysubst(P,RRT);
- }
- }
- }else /* Rigid case */
- P = dx^(AL[0][1][0][0][0]);
- /* additions and middle convolutions */
- for(ALT = AL; ALT != []; ALT = cdr(ALT)){
- AI = car(ALT)[0];
- if(type(AI) != 4) continue;
- V = ltov(AI);
- if(V[0] != 0) P = mc(P,x,V[0]);
- for(I = 1; I < NP; I++){
- if(V[I] != 0)
- P = sftexp(P,x,L[I],-V[I]);
- }
- }
- P = (Simp>=0)? simplify(P,Fuc,4|var=[dx]):simplify(P,Fuc,4);
- if(TeX >= 0){
- Val = 1;
- if(mydeg(P,dx) > 2 && AMSTeX == 1 && TeXEq > 3)
- Val = (TeXEq==5)?3:2;
- Out = fctrtos(P|var=[dx,"\\partial"],TeX=Val);
- if(Dviout < 0) return Out;
- dviout(Out|eq=0,keep=Keep);
- return 1;
- }
- return P;
- }
- return 0;
-}
-
-def mcop(P,M,S)
-{
- for(V=[],ST=S;ST!=[];ST=cdr(ST))
- if(isvar(VT=car(ST))) V=cons(vweyl(VT),V);
- V=reverse(V);
- N=length(V);
- for(MT=M;MT!=[];MT=cdr(MT)){
- T=car(MT);
- if(T[0]!=0)
- P=mc(P,V[0],T[0]);
- for(TT=cdr(T),ST=cdr(S);ST!=[];TT=cdr(TT),ST=cdr(ST))
- if(car(TT)!=0) P=sftpexp(P,V,S[0]-ST[0],-car(TT));
- }
- return P;
-}
-
-/* option: zero, all, raw */
-def shiftop(M,S)
-{
- if(type(M)==7) M=s2sp(M);
- if(type(S)==7) S=s2sp(S);
- Zero=getopt(zero);
- NP=length(M);
- for(V=L=[],I=NP-1; I>=0; I--){
- V=cons(strtov(asciitostr([97+I])),V);
- if(I>2) L=cons(makev(["y_", I-1]),L);
- else L=cons(I-1,L);
- }
- if(type(M[0][0])==4){
- F=1;RS=M;SS=S;
- R=chkspt(M);
- if(R[2]!=2 || R[3]!=0){
- mycat("GRS is not valid!");return 0;
- }
- for(; S!=[]; S=cdr(S)){
- if(nmono(S[0][0])!=1) break;
- if(isint(S[0][1]-S[0][0])==0) break;
- }
- if(S!=[]){
- mycat("Error in shift!"); return 0;
- }
- }else{
- F=0;
- RS=sp2grs(M,V,[1,length(M[0]),1]);
- for(SS=S0=[],I=0; I<NP; I++){
- for(J=F=0; J<length(M[I]); J++){
- if(I==0 && J==length(M[0])-1) break;
- if((U=S[I][J])!=0){
- if(isint(U)!=1){
- mycat("Error in shift!"); return 0;
- }
- VT=RS[I][J][1];
- SS=cons([VT,VT+U],SS);
- }else if(I>0 && Zero==1 && F==0){
- RS=mysubst(RS,[RS[I][J][1],0]);
- F=J+1;
- }
- }
- if((F>0 && J==2) || (I==0 && J==1)){
- J=(I==0)?0:2-F; VT=RS[I][J][1];
- S0=cons([VT,strtov(asciitostr([strtoascii(rtostr(VT))[0]]))],S0);
- }
- }
- }
- RS1=mysubst(RS,SS);
- if(F==1){
- R=chkspt(RS1);
- if(R[2]!=2 || R[3]!=0){
- mycat("Error in shift!");
- return 0;
- }
- }
- R=getbygrs(RS,1); R1=getbygrs(RS1,1);
- RT=R[0][1][0];
- if(length(RT)!=1 || RT[0][0]!=1){
- mycat("Not rigid!");
- return 0;
- }
- P=dx;Q=Q1=1;
- for(RT = R, RT1=R1; RT != []; RT = cdr(RT), RT1=cdr(RT1)){
- V=car(RT)[0]; V1=car(RT1)[0];
- if(type(V) != 4) continue;
-
- if(V[0] != 0){
- P = mc(P,x,V[0]); /* middle convolution */
- QT = mc(Q,x,V[0]);
- }else QT=Q;
- D0=mydeg(Q,dx);D0T=mydeg(QT,dx);
- C0=red(mycoef(Q,D0,dx)/mycoef(QT,D0T,dx));
- if(C0!=1) QT=red(C0*QT);
-
- if(V1[0] != 0) Q1T = mc(Q1,x,V1[0]);
- else Q1T=Q1;
- D1=mydeg(Q1,dx);D1T=mydeg(Q1T,dx);
- C1=red(mycoef(Q1,D1,dx)/mycoef(Q1T,D1T,dx));
- if(C1!=1) Q1T=red(C1*Q1T);
- DD=(V[0]-V1[0])+(D0-D0T)-(D1-D1T);
- if(DD>0){
- QT=muldo(dx^DD,QT,[x,dx]);
- D0T+=DD;
- }else if(DD<0){
- Q1T=muldo(dx^(-DD),Q1T,[x,dx]);
- D1T-=DD;
- }
- C=mylcm(dn(QT),dn(Q1T),x);
- if(C!=1){
- QT=red(C*QT); Q1T=red(C*Q1T);
- }
- Q=QT;Q1=Q1T;
- for(I = 1; I < NP; I++){
- if(V[I]!=0){
- P = sftexp(P,x,L[I],-V[I]); /* addition u -> (x-L[I])^V[I]u */
- QT = sftexp(QT,x,L[I],-V[I]);
- }
- if(V1[I]!=0)
- Q1T = sftexp(Q1T,x,L[I],-V1[I]);
- }
- C=red(mycoef(QT,D0T,dx)*mycoef(Q1,D1T,dx)/(mycoef(Q,D0T,dx)*mycoef(Q1T,D1T,dx)));
- Q=red(dn(C)*QT);Q1=red(nm(C)*Q1T);
- for(I = 1; I < NP; I++){
- if((J=V[I]-V1[I])!=0){
- if(J>0) Q1*=(x-L[I])^J;
- else Q*=(x-L[I])^(-J);
- }
- while((QT=tdiv(Q,x-L[I]))!=0){
- if((Q1T=tdiv(Q1,x-L[I]))!=0){
- Q=QT;Q1=Q1T;
- }else break;
- }
- }
- }
- P1=mysubst(P,SS);
- if(type(S0)==4 && S0!=[]){
- P=mysubst(P,S0); Q=mysubst(Q,S0);
- P1=mysubst(P1,S0); Q1=mysubst(Q1,S0);
- RS=mysubst(RS,S0); RS1=mysubst(RS1,S0);
- }
- R=mygcd(Q1,P1,[x,dx]);
- if(findin(dx,vars(R[0]))>=0){
- mycat("Some error!");
- return 0;
- }
- Q=muldo(R[1]/R[0],Q,[x,dx]);
- R=divdo(Q,P,[x,dx]);
- Q=red(R[1]/R[2]);
- R=fctr(nm(Q));
- QQ=Q/R[0][0];
- R1=fctr(dn(QQ));
- for(RR=cdr(R1); RR!=[]; RR=cdr(RR)){
- VT=vars(car(RR)[0]);
- if(findin(x,VT)<0 && findin(dx,VT)<0){
- for(I=car(RR)[1];I>0;I--) QQ=red(QQ*car(RR)[0]);
- }
- }
- Raw=getopt(raw);
- Dviout=getopt(dviout);
- if(Dviout==1) Raw=4;
- if(Raw!=1){
- for(RR=cdr(R); RR!=[]; RR=cdr(RR)){
- VT=vars(car(RR)[0]);
- if(findin(x,VT)<0 && findin(dx,VT)<0){
- for(I=car(RR)[1];I>0;I--) QQ=red(QQ/car(RR)[0]);
- }
- }
- }
- if(Raw==2||Raw==3||Raw==4){
- R=mygcd(QQ,P,[x,dx]); /* R[0]=R[1]*QQ + R[2]*P */
- Q1=red(R[0]/R[2]);
- for(Q=1,RR=cdr(fctr(nm(Q1))); RR!=[]; RR=cdr(RR)){
- VT=vars(car(RR)[0]);
- if(findin(x,VT)<0){
- for(I=car(RR)[1];I>0;I--) Q*=car(RR)[0];
- }
- }
- if(Raw==3) QQ=[QQ,Q];
- else if(Raw==4) /* Q=Q*R[1]/R[0]*QQ+Q/R[0]*P */
- QQ=[QQ,Q,red(R[1]*Q/R[0])];
- else QQ=Q;
- }
- F=getopt(all);
- if(Dviout==1){
- Pre = " x=\\infty & 0 & 1";
- for(I=3; I<NP; I++) Pre = Pre+"& "+rtostr(L[I]);
- Pre = Pre+"\\\\\n";
- PW=str_tb(ltotex(RS|opt="GRS",pre=Pre),0);
- str_tb(
-"=\\{u\\mid Pu=0\\}\\\\\n&\\underset{Q_2}{\\overset{Q_1}{\\rightleftarrows}}\n",PW);
- str_tb([ltotex(RS1|opt="GRS",pre=Pre),"\\\\\n"],PW);
- R=fctrtos(QQ[0]|TeX=3,var=[dx,"\\partial"]);
- if(type(R)==4) R="\\frac1{"+R[1]+"}"+R[0];
- str_tb(["Q_1&=",R,"\\\\\n"],PW);
- R=fctrtos(QQ[2]|TeX=3,var=[dx,"\\partial"]);
- if(type(R)==4) R="\\frac1{"+R[1]+"}"+R[0];
- str_tb(["Q_2&=",R,"\\\\\n"],PW);
- str_tb(["Q_2Q_1&\\equiv ",fctrtos(QQ[1]|TeX=3),"\\mod W(x)P"],PW);
- if(F==1)
- str_tb(["\\\\\nP&=",fctrtos(P|TeX=3,var=[dx,"\\partial"])],PW);
- dviout(str_tb(0,PW)|eq=0,title="Shift Operator");
- }
- if(F==1) return [QQ,P,RS,P1,RS1];
- else if(F==0) return QQ;
- return [QQ,P,RS];
-}
-
-def conf1sp(M)
-{
- if(type(M)==7) M=s2sp(M);
- L0 = length(M);
- L1 = length(M[L0-1]);
- X2 = getopt(x2);
- Conf= getopt(conf);
- if(Conf != 0)
- Conf = -1;
- if((X2==1 || X2==-1) && Conf != 0){
- X1 = 0;
- X = x_1;
- }else{
- X1 = 1;
- X = x_2;
- }
- G = sp2grs(M,a,[L0,L1]);
- for(I = 0; I < L0-1; I++){
- V = makev([a,I-Conf,0]);
- G = subst(G,V,0);
- }
- L2 = length(M[1]);
- for(I=J=S0=S1=0; I < L2; I++){
- S1 += G[1][I][0];
- while(S0 < S1){
- S0 += G[0][J][0];
- if((V=G[0][J][1]) != 0)
- G = mysubst(G,[V,V-G[1][I][1]]);
- J++;
- }
- if(S0 > S1){
- print("Error in data!");
- return 0;
- }
- }
- if(Conf==0){
- for(L=[], I=L0-2; I>=0; I--)
- L=cons(I,L);
- L=cons(L0-1,L);
- P = getbygrs(G,["operator","x2"]|perm=L);
- }else if(X1)
- P = getbygrs(mperm(G,[[1,2]],[]), ["operator","x2"]);
- else
- P = getbygrs(G,["operator","x1"]);
- if(Conf==0)
- P=nm(mysubst(P,[X,c]));
- else{
- P = nm(mysubst(P,[X,1/c]));
- if(X2==-1){
- for(I=2; I<L0; I++){
- V=makev(["x_",I]); VC=makev([c,I]);
- P = nm(mysubst(P,[V,1/VC]));
- }
- }
- }
- for(I = 1; I < L2; I++){
- X = G[1][I][1];
- P = nm(mysubst(P,[X,X/c]));
- }
- VS = vars(P);
- while(VS!=[]){
- V = car(VS);
- if(str_chr(rtostr(V),0,"r")==0){
- CV = mycoef(P,1,V);
- D = mymindeg(CV,c);
- if(D > 0) P = mysubst(P,[V,V/c^D]);
- CV = mycoef(P,1,V);
- DD = mydeg(CV,dx);
- CVV = mycoef(CV,DD,dx);
- CD1 = mydeg(CVV,x);
- CD = (X==x1)?0:CD1;
- while(CD>=0 && CD<=CD1){
- CC = mycoef(CVV,CD,x);
- if(type(CC)==1){
- VT = mycoef(mycoef(mycoef(P,DD,dx),CD,x),0,V)/CC;
- if(VT != 0) P = mysubst(P,[V,V-VT]);
- break;
- }
- if(X==x1) CD++;
- else CD--;
- }
- while(subst(P,c,0,V,0) == 0)
- P = red(mysubst(P,[V,c*V])/c);
- }
- VS =cdr(VS);
- }
- return P;
-}
-
-def pgen(L,VV)
-{
- if(type(L[0])<4) L=[L];
- if(type(L)==4) L=ltov(L);
- K=length(L);
- V=newvect(K);
- if(type(Sum=getopt(sum))!=1) Sum=0;
- if((Num=getopt(num))!=1) Num=0;
- if((Sep=getopt(sep))!=1) Sep=0;
- if(type(Shift=getopt(shift))!=1) Shift=0;
- for(;;){
- for(PP=1,R=[],II=K-1; II>=0; II--){
- R=cons(V[II]+Shift,R);
- if(II>0 && Sep==1) R=cons("_",R);
- PP*=L[II][0]^V[II];
- }
- P+=makev(cons(VV,R)|num=Num)*PP;
- for(I=0;I<K;){
- if(++V[I]<=L[I][1]){
- if(Sum>0){
- for(S=II=0;II<K;) S+=V[II++];
- if(S>Sum){
- V[I++]=0;
- continue;
- }
- }
- }else{
- V[I++]=0;
- continue;
- }
- break;
- }
- if(I>=K) return P;
- }
-}
-
-def diagm(M,A)
-{
- return mgen(M,0,A,1);
-}
-
-def mgen(M,N,A,S)
-{
- if(M==0 && N==0){
- mycat([
-"mgen(m,n,a,s|sep=1) : generate a matrix of size m x n\n",
-" n : a number or \"diagonal\", \"highdiag\", \"lowdiag\",\"skew\",\"symmetric\",\"perm\" = 0,-1,-2,..\n",
-" a : a symbol or list (ex. a, [a], [a,b,c], [1,2,3])\n",
-" s : 0 or 1 (shift of suffix)\n"
- ]);
- return 0;
- }
- if(type(N)==7) N=-findin(N,["diag","highdiag","lowdiag","skew","symmetric","perm"]);
- Sep=(getopt(sep)==1)?1:0;
- if(S < 0 || S > 2)
- S = 0;
- if(M+S > 30 || N+S > 30){
- erno(1);
- return;
- }
- if(N==-5){
- NM=newmat(M,M);
- for(I=0;I<M;I++,A=cdr(A)) NM[I][car(A)-S]=1;
- return NM;
- }
- if(type(A) == 4)
- L = length(A)-1;
- else
- L = -1;
- if(N <= 0 && N >= -2){
- MM = newmat(M,M);
- J = K = 0;
- if(N == -1){
- K = 1; M--;
- }else if(N == -2){
- J = 1; M--;
- }
- for(I = 0; I < M; I++){
- if(L >= 0)
- MM[I+J][I+K] = A[(I > L)?L:I];
- else if(type(A)==7 || isvar(A))
- MM[I+J][I+K] = makev([A,S+I]|sep=Sep);
- else
- MM[I+J][I+K] = A;
- }
- return MM;
- }
- K = N;
- if(K < 0) N = M;
- MM = newmat(M,N);
- for(I = 0; I < M; I++){
- if(L >= 0)
- AA = rtostr(A[(I > L)?L:I]);
- else
- AA = rtostr(A)+rtostr(I+S);
- if(AA>="0" && AA<=":"){
- erno(0); return;
- }
- for(J = 0; J < N; J++){
- if(K < 0){
- if(I > J) continue;
- if(K == -3 && I == J) continue;
- }
- MM[I][J] = makev([AA,J+S]|sep=Sep);
- }
- }
- if(K < 0){
- for(I = 0; I < M; I++){
- for(J = 0; J < I; J++)
- MM[I][J] = (K == -4)?MM[J][I]:-MM[J][I];
- }
- }
- return MM;
-}
-
-def newbmat(M,N,R)
-{
- S = newvect(M);
- T = newvect(N);
- IM = length(R);
- for(I = 0; I < IM; I++){
- RI = R[I];
- JM = length(RI);
- for(J = 0; J < JM; J++){
- RIJ = RI[J];
- if(type(RIJ) == 6){
- S[I] = size(RIJ)[0];
- T[J] = size(RIJ)[1];
- }
- }
- }
- for(I = K = 0; I < M; I++){
- if(S[I] == 0)
- S[I] = 1;
- K += S[I];
- }
- for(J = L = 0; J < N; J++){
- if(T[J] == 0)
- T[J] = 1;
- L += T[J];
- }
- M = newmat(K,L);
- if(type(Null=getopt(null))>0){
- for(I=0;I<K;I++){
- for(J=0;J<L;J++) M[I][J]=Null;
- }
- }
- for(I0 = II = 0; II < IM; I0 += S[II++]){
- RI = R[II];
- JM = length(RI);
- for(J0 = JJ = 0; JJ < JM; J0 += T[JJ++]){
- if((RIJ = RI[JJ]) == 0)
- continue;
- Type = type(RIJ);
- for(I = 0; I < S[II]; I++){
- for(J = 0; J < T[JJ]; J++){
- if(Type == 6)
- M[I0+I][J0+J] = RIJ[I][J];
- else if(Type == 4 || Type == 5)
- M[I0+I][J0+J] = (I>0)?RIJ[I]:RIJ[J];
- else
- M[I0+I][J0+J] = RIJ;
- }
- }
- }
- }
- return M;
-}
-
-def unim(S)
-{
- if(!Rand++) random(currenttime());
- if(!isint(Wt=getopt(wt))||Wt<0||Wt>10) Wt=2;
- if(!isint(Xa=getopt(abs)) || Xa<1)
- Xa=9;
- if((Xaa=Xa)>10) Xaa=10;
- if(Xaa%2) Xaa++;
- Xh=Xaa/2;
- if(type(S0=SS=S)==4){
- Int=(getopt(int)==1)?1:0;
- U=[1,1,1,1,1,1,1,1,1,1,1,1,2,2,3,4];
- M=newmat(S[0],S[1]);
- SS=cdr(S);SS=cdr(SS);
- if(Rk=length(SS)) L=SS;
- else{
- L=[0];
- I=(S[0]>S[1])?S[1]:S[0];
- if(I<=2) return 0;
- if(!isint(Rk=getopt(rank))||Rk<1||Rk>S[0]||Rk>S[1])
- Rk=random()%(I-1)+2;
- for(I=1;I<Rk;){
- P=random()%(S[1]+Wt)-Wt;
- if(P<=0) P=1;
- if(findin(P,L)!=0){
- L=cons(P,L);
- I++;
- }
- }
- }
- L=ltov(qsort(L));
- M[0][L[0]]=1;
- for(I=1;I<Rk;I++){
- P=Int?1:U[random()%length(U)];
- if(P>Xa) P=Xa;
- M[I][L[I]]=(random()%2)?P:(-P);
- }
- for(I=0;I<Rk;I++){
- if(I!=0&&abs(M[I][L[I]])>1) M[K=random()%I][KK=L[I]]=1;
- I0=(I==0)?1:L[I]+1;
- I1=(I==Rk-1)?S[1]:L[I+1];
- for(J=I0;J<I1;J++){
- for(K=1;K<=Xa;K++){
- P=random()%(I+1);
- if((random()%2)==1) M[P][J]++;
- else M[P][J]--;
- }
- }
- }
- S=M;
- Res=(getopt(res)==1)?dupmat(S):0;
- }
- Conj=0;
- if(type(S)<2){
- if(S<2||S>20) return 0;
- if(getopt(conj)==1){
- M=S+Wt;
- if(M>15) M=10;
- M0=floor((M-1)/2);
- for(R=[],I=0;I<S;I++) R=cons(random()%M-M0,R);
- R=qsort(R);
- M=diagm(S,R);
- if(getopt(diag)!=1){
- for(I=1;I<S;I++)
- if(M[I-1][I-1]==M[I][I] && random()%2) M[I-1][I]=1;
- }
- if(M[0][0]==M[S-1][S-1]){
- for(I=1;I<S;I++) if(M[I-1][I]==1) break;
- if(I==S){
- if(M[0][0]>0) M[0][0]--;
- else M[S-1][S-1]++;
- }
- }
- if(getopt(res)==1) RR=diagm(S,[1]);
- S1=S;
- Res=dupmat(S=M);
- if(isint(I=getopt(int))&&I>1&&random()%I==0){
- K=S[0][0];L=K+1;
- for(I=1;I<S1;I++){
- if(S[I][I]>L && S[I-1][I]==0 && (I==S1-1||S[I][I+1]==0)){
- L=S[I][I];
- if(RR){
- RR[I][I]=L-K;RR[0][I]=1;
- }
- S[0][I]=1;
- if(!(random()%3)) break;
- }
- }
- if(random()%3==0){
- for(I=0;I<S1-1;I++){
- if(iand(S[I][I],1)&&S[I][I+1]==1){
- for(J=I+2;J<S1&&S[I][J]==0;J++);
- if(J<S1) continue;
- for(J=I-1;J>=0&&S[J][I]==0;J--);
- if(J>=0) continue;
- S[I][I+1]=2;
- for(J=0;J<S1;J++) RR[I][J]*=2;
- break;
- }
- }
- }
- }
- }else{
- M=diagm(S,[1]);
- S1=S;
- }
- }
- if(type(S)==6){
- M=dupmat(S);
- S=size(S);
- S1=S[1];S=S[0];
- Nt=1;
- if(getopt(conj)==1&&S==S1) Conj=1;
- }
- if(!isint(Ct=getopt(time)))
- Ct=(S>3||S1>3)?100:200;
- if(getopt(both)==1){
- OL=delopt(getopt(),"both");
- M=unim(mtranspose(M)|option_list=OL);
- M=mtranspose(M);
- }
- Mx=20;
- for(I=K=LL=0;I<Ct+Mx;I++){
- P=random()%S;Q=random()%S;
- if(3*K>Ct) T=random()%Xaa-Xh;
- else if(5*K<Ct) T=random()%2-1;
- else T=random()%4-2;
- if(T>=0) T++;
- if(P==Q) continue;
- for(G=0,J=S1-1;J>=0;J--){
- if((H=abs(M[Q][J]+M[P][J]*T))>Xa&&(!Conj||J!=P)) break;
- if(K<Mx&&!Conj) G=igcd(G,H);
- }
- if(K<Mx && G>1) J=1;
- if(J>0) continue;
- if(J<0&&Conj==1){
- for(J=S1-1;J>=0;J--)
- if(J!=Q&&abs(M[J][P]-M[J][Q]*T)>Xa) break;
- if(J<0&&abs(M[Q][P]-M[Q][Q]*T+M[P][P]*T-M[P][Q]*T^2)>Xa) J=1;
- if(J<0&&M[P][P]==M[Q][Q]){
- LF=0;
- for(L=S1-1;J>=0;J--) if(L!=Q&&M[J][Q]!=0) LF++;
- for(L=S1-1;J>=0;J--) if(L!=P&&M[P][J]!=0) LF++;
- if(!LF) J=1;
- }
- }
- if(J<0){
- for(J=S1-1;J>=0;J--)
- M[Q][J]+=M[P][J]*T;
- if(Conj==1)
- for(J=S1-1;J>=0;J--) M[J][P]-=M[J][Q]*T;
- if(RR) for(J=S1-1;J>=0;J--) RR[Q][J]+=RR[P][J]*T;
- K++;
- }
- if(K%5==0){
- if(!Nt) M=mtranspose(M);
- else if(!Conj&&K%2==0){
- for(F=0;F<S;F++){
- if((V=lgcd(M[F]))>1){
- for(L=0;L<S1;L++) M[F][L]/=V;
- }
- }
- }
- }
- if(I>Ct){
- for(L=S-1;L>=0;L--){
- for(F=0,J=S1-1;J>=0;J--)
- if(M[L][J]!=0) F++;
- if(F<2){
- F=-1;break;
- }
- else F=0;
- }
- if(F<0 && LL++<5){
- I=(CT-CT%2)/2;K=1;
- }
- if(I>Ct) break;
- }
- }
- if(RR){
- for(I=F=0;I<S1;I++){
- V=Res[I][I];
- for(J=I+1;J<S1;J++){
- if(Res[J][J]!=V) break;
- for(LP=0;LP<2;LP++){
- if(J==S1-1||Res[J][J+1]==0){
- if(I==0||Res[I-1][I]==0){
- for(VL=VS=[],K=0;K<S1;K++){
- VL=cons(RR[K][J],VL);VS=cons(RR[K][I],VS);
- }
- VR=ldev(VL,VS);
- if(VR[0]){
- for(K=S1-1,VN=VR[1];K>=0;K--,VN=cdr(VN))
- RR[K][J]=car(VN);
- F=1;
- }
- }
- }
- K=I;I=J;J=K;
- }
- }
- if(F&&I==S1-1){
- F=0;I=-1;
- }
- }
- if(getopt(int)==1){
- N=mtranspose(M);
- for(F=I=0;I<S1;I++) if(lgcd(M[I])>1||lgcd(N[I])>1) F++;
- if(F){
- for(F=I=0;I<S1;I++){
- if(Res[I][I]==-1) F=ior(F,1);
- else if(Res[I][I]==1) F=ior(F,2);
- }
- C=0;
- if(!iand(F,1)) C=1;
- else if(!iand(F,2)) C=-1;
- if(C){
- for(I=0;I<S1;I++){
- M[I][I]+=C;Res[I][I]+=C;
- }
- }
- }
- }
- if(getopt(rep)!=1){
- for(Lp=0;Lp<5;Lp++){
- F=(M==Res||abs(lmax(RR))>Xa*10||abs(lmin(RR))>Xa*10)?1:0;
- for(I=0;!F&&I<S1&&Lp<4;I++){
- for(K=L=J=0;J<S1;J++){
- if(M[I][J]) K++;
- if(M[J][I]) L++;
- }
- if(K<2||L<2) F=1;
- }
- if(!F) break;
- R=unim(S0|option_list=cons(["rep",1],getopt()));
- M=R[0];Res=R[1];RR=R[3];
- }
- }
- }
- if(Res==0) return M;
- if(RR){
- for(I=K=V=0;I<S1;I++){
- for(J=0;J<S1;J++){
- if(RR[J][I]>0) V++;
- else if(RR[J][I]<0) V--;
- }
- if(I<S1-1&&Res[I][I+1]!=0) continue;
- if(V<0){
- for(;K<=I;K++) RR=colm(RR,K,-1);
- }
- K=I+1;V=0;
- }
- }
- if(getopt(rep)!=1){
- if((F=getopt(dviout))==1){
- if(getopt(conj)==1){
- if(RR) show([Res,"=",myinv(RR),M,RR]|opt="spts0",str=1,lim=200);
- }else{
- if(type(Lim=getopt(lim))==1)
- mtoupper(M,0|step=1,opt=7,dviout=1,pages=1,lim=Lim);
- else mtoupper(M,0|step=1,opt=7,dviout=1,pages=1);
- }
- }else if(F==-1){
- if(getopt(conj)==1){
- if(RR) return ltotex([Res,"=",myinv(RR),M,RR]|opt="spts0",str=1,lim=200);
- }else{
- if(type(Lim=getopt(lim))==1)
- return mtoupper(M,0|step=1,opt=7,pages=1,lim=Lim,dviout=-1);
- else return mtoupper(M,0|step=1,opt=7,pages=1,dviout=-1);
- }
- }
- }
- if(RR==0) return[M,Res];
- return [M,Res,myinv(RR),RR];
-}
-
-def pfrac(F,X)
-{
- F = red(F);
- FN = nm(F);
- FD = dn(F);
- if(mydeg(FD,X) == 0)
- return [[F,1,1]];
- R = rpdiv(FN,FD,X);
- FN = R[0]/R[1];
- R0 = R[2]/R[1];
- FC = fctr(FD);
- RT=[];
- if(getopt(root)==2){
- for(FE=[],FT=FC;FT!=[];FT=cdr(FT)){
- if(mydeg(P=car(FT)[0],X)==4 && vars(P)==[X] && pari(issquare,C=mycoef(P,4,X))){
- if((S=mycoef(P,3,X)/4/C)!=0) P=subst(P,X,X-S);
- if(mycoef(P,1,X)==0 && pari(issquare,C0=mycoef(P,0,X))){
- C=sqrtrat(C);C0=sqrtrat(C0);C1=2*C*C0-mycoef(P,2,X);
- if(C1>0){
- FE=cons([C*(X+S)^2-C1^(1/2)*(X+S)+C0,car(FT)[1]],FE);
- FE=cons([C*(X+S)^2+C1^(1/2)*(X+S)+C0,car(FT)[1]],FE);
- RT=cons(C1,RT);
- continue;
- }
- }
- }
- FE=cons(car(FT),FE);
- }
- FC=reverse(FE);
- }
- N = Q = 0;
- L = [];
- for(I = length(FC)-1; I >= 0; I--){
- if((D = mydeg(FC[I][0],X)) == 0) continue;
- for(K=1; K<=FC[I][1]; K++){
- for(J=P=0; J < D; J++){
- V = makev(["zz_",++N]);
- P = P*X + V;
- L = cons(V,L);
- }
- Q += P/(FC[I][0]^K);
- Q = red(Q);
- }
- }
- L=reverse(L);
- Q = nm(red(red(Q*FD)-FN));
- Q = ptol(Q,X);
- S = lsol(Q,L);
- R = (R0==0)?[]:[[R0,1,1]];
- for(N=0,I=length(FC)-1; I >= 0; I--){
- if((D = mydeg(FC[I][0],X)) == 0) continue;
- for(K=1; K<=FC[I][1]; K++){
- for(P=J=0; J < D; N++,J++)
- P = P*X + S[N][1];
- if(P!=0) R = cons([P,FC[I][0],K],R);
- }
- }
- for(;RT!=[];RT=cdr(RT)){
- RTT=car(RT);
- R=mtransbys(os_md.substblock,R,[RTT^(1/2),(RTT^(1/2))^2,RTT]);
- }
- TeX=getopt(TeX);
- if((Dvi=getopt(dviout))==1||TeX==1){
- V=strtov("0");
- for(S=L=0,RR=R;RR!=[];RR=cdr(RR),L++){
- RT=car(RR);
- S+=(RT[0]/RT[1]^RT[2])*V^L;
- }
- if(TeX!=1) fctrtos(S|var=[V,""],dviout=1);
- else return fctrtos(S|var=[V,""],TeX=3);
- }
- return reverse(R);
-}
-
-def cfrac(X,N)
-{
- F=[floor(X)];
- if(N<0){
- Max=N=-N;
- }
- X-=F[0];
- if(Max!=1)
- M=mat([F[0],1],[1,0]);
- for(;N>0 && X!=0;N--){
- X=1/X;
- F=cons(Y=floor(X),F);
- X-=Y;
- if(Max){
- M0=M[0][0];M1=M[1][0];
- M=M*mat([Y,1],[1,0]);
- if(M[0][0]>Max) return M0/M1;
- }
- }
- return (Max==0)?reverse(F):M[0][0]/M[1][0];
-}
-
-def sqrt2rat(X)
-{
- if(type(X)>3) return X;
- X=red(X);
- if(getopt(mult)==1){
- for(V=vars(X);V!=[];V=cdr(V)){
- T=funargs(F=car(V));
- if(type(T)==4&&length(T)>1){
- Y=T[1];
- Z=sqrt2rat(Y);
- if(Y!=Z){
- if(length(T)==2){
- T0=T[0];
- X=subst(X,F,T0(Z));
- }else if(T[0]==pow)
- X=subst(X,F,Y^T[2]);
- }
- }
- }
- }
- for(V=vars(X);V!=[];V=cdr(V)){ /* r(x)^(1/2+n) -> r(x)^n*r(x)^(1/2) */
- T=args(Y=car(V));
- if(functor(Y)==pow&&T[1]!=1/2&&isint(T2=2*T[1])){
- if(iand(T2,1)){
- R=(T[0])^(1/2);T2--;
- }else R=1;
- R*=T[0]^(T2/2);
- X=red(subst(X,Y,R));
- }
- }
- D=dn(X);N=nm(X);
- if(imag(D)!=0){
- N*=conj(D);
- D*=conj(D);
- return sqrt2rat(N/D);
- }
- for(V=vars(N);V!=[];V=cdr(V)){ /* (r(x)^(n/m))^k */
- T=args(Y=car(V));
- if(functor(Y)==pow&&(T[1]==0||(type(T[1])==1&&ntype(T[1])==0))){
- Dn=dn(T[1]);Nm=nm(T[1]);
- N=substblock(N,Y,Y^Dn,T[0]^Nm);
- }
- }
- for(V=vars(D);V!=[];V=cdr(V)){
- T=args(Y=car(V));
- if(functor(Y)==pow&&(T[1]==0||(type(T[1])==1&&ntype(T[1])==0))){
- Dn=dn(T[1]);Nm=nm(T[1]);
- D=substblock(D,Y,Y^Dn,T[0]^Nm);
- }
- }
- for(V=vars(D);V!=[];V=cdr(V)){
- T=args(Y=car(V));
- if(functor(Y)==pow&&T[1]==1/2&&mydeg(D,Y)==1){
- N*=mycoef(D,0,Y)-mycoef(D,1,Y)*Y;
- N=mycoef(N,0,Y)+mycoef(N,1,Y)*Y+mycoef(N,2,Y)*T[0];
- D=mycoef(D,0,Y)^2-mycoef(D,1,Y)^2*T[0];
- X=red(N/D);
- D=dn(X);N=nm(X);
- break;
- }
- }
- X=red(N/D);
- D=dn(X);N=nm(X);
- for(V=vars(D);V!=[];V=cdr(V)){
- T=args(Y=car(V));
- if(functor(Y)==pow&&T[1]==1/2)
- D=substblock(D,T[0]^T[1],(T[0]^T[1])^2,T[0]);
- }
- for(V=vars(N);V!=[];V=cdr(V)){
- T=args(Y=car(V));
- if(functor(Y)==pow&&T[1]==1/2)
- N=substblock(N,T[0]^T[1],(T[0]^T[1])^2,T[0]);
- }
- for(V=vars(N);V!=[];V=cdr(V)){
- T=args(Y=car(V));
- if(functor(Y)==pow&&T[1]==1/2){
- Ag=T[0];
- R=S=1;
- An=fctr(nm(Ag));
- CA=An[0][0];
- if(CA<0){
- CA=-CA;R=-1;
- }
- if(type(I=sqrtrat(CA))<2) S=I;
- else R*=CA;
- for(An=cdr(An);An!=[];An=cdr(An)){
- Pw=car(An)[1];I=iand(Pw,1);
- if(I) R*=car(An)[0];
- if((Q=(Pw-I)/2)>0) S*=car(An)[0]^Q;
- }
- for(An=fctr(dn(Ag));An!=[];An=cdr(An)){
- Pw=car(An)[1];I=iand(Pw,1);
- if(I) R/=car(An)[0]^I;
- if((Q=(Pw-I)/2)>0) S/=car(An)[0]^Q;
- }
- if(S!=1) N=subst(N,Y,R^(1/2)*S);
- }
- }
- for(V=vars(N);V!=[];V=cdr(V)){
- T=args(Y=car(V));
- if(functor(Y)==pow&&T[1]==1/2){
- C=mycoef(N,1,Y);
- for(VC=vars(C);VC!=[];VC=cdr(VC)){
- TC=args(YC=car(VC));
- if(functor(YC)==pow&&TC[1]==1/2){
- Ag=red(T[0]*TC[0]);
- R=S=1;
- An=fctr(nm(Ag));
- CA=An[0][0];
- if(CA<0){
- CA=-CA;R=-1;
- }
- if(type(I=sqrtrat(CA))<2) S=I;
- else R*=CA;
- for(An=cdr(An);An!=[];An=cdr(An)){
- Pw=car(An)[1];I=iand(Pw,1);
- if(I) R*=car(An)[0];
- if((Q=(Pw-I)/2)>0) S*=car(An)[0]^Q;
- }
- for(An=fctr(dn(Ag));An!=[];An=cdr(An)){
- Pw=car(An)[1];I=iand(Pw,1);
- if(I) R/=car(An)[0]^I;
- if((Q=(Pw-I)/2)>0) S/=car(An)[0]^Q;
- }
- CC=mycoef(C,1,YC);
- N=N-CC*YC*Y+CC*R^(1/2)*S;
- }
- }
- }
- }
- return red(N/D);
-}
-
-def cfrac2n(X)
-{
- if(type(L=getopt(loop))==1&&L>0)
- C=x;
- else{
- C=0;L=0;
- }
- if(L>1){
- for(Y=[];L>1;L--){
- Y=cons(car(X),Y);
- X=cdr(X);
- }
- if(X!=[]){
- P=cfrac2n(X|loop=1);
- for(V=P,Y=reverse(Y);Y!=[];Y=cdr(Y))
- V=sqrt2rat(car(Y)+1/V);
- return V;
- }else{
- C=0;X=reverse(Y);
- }
- }
- for(V=C,X=reverse(X);X!=[];X=cdr(X)){
- if(V!=0) V=1/V;
- V+=car(X);
- }
- if(C!=0){
- V=red(V);P=dn(V)*x-nm(V);
- S=getroot(P,x|cpx=2);
- T=map(eval,S);
- V=(T[0]>0)?S[0]:S[1];
- }
- return V;
-}
-
-def s2sp(S)
-{
- if(getopt(short)==1){
- if(type(F=getopt(std))==1) S=s2sp(S|std=F);
- if(type(S)!=7) S=s2sp(S);
- L=strtoascii(S);
- for(LS=[],F=C=0;L!=[];L=cdr(L)){
- if((G=car(L))!=F){
- LS=cons(G,LS);C=0;
- }else if(C<3){
- LS=cons(G,LS);
- }else if(C==3){
- LS=cdr(LS);LS=cdr(LS);
- LS=cons(94,LS);LS=cons(52,LS);
- }else if(C==9){
- LS=cdr(LS);LS=cons(97,LS);
- }else{
- K=car(LS);LS=cdr(LS);LS=cons(K+1,LS);
- }
- C++;F=G;
- }
- return asciitostr(reverse(LS));
- }
- if(type(F=getopt(std))==1){
- F=(F>0)?1:-1;
- if(type(S)==7) S=s2sp(S);
- for(L=[];S!=[];S=cdr(S))
- L=cons(os_md.msort(car(S),[-1,0]),L);
- return os_md.msort(L,[F,2]);
- }
- if(type(S)==7){
- S = strtoascii(S);
- if(type(S) == 5) S = vtol(S);
- for(N=0,R=TR=[]; S!=[]; S=cdr(S)){
- if(car(S)==45) /* - */
- N=1;
- else if(car(S)==47) /* / */
- N=2;
- if(N>0){
- while(car(S)<48&&car(S)!=40) S=cdr(S);
- }
- if((T=car(S))>=48 && T<=57) TR=cons(T-48,TR);
- else if(T>=97) TR=cons(T-87,TR);
- else if(T>=65 && T<=90) TR=cons(T-29,TR); /* A-Z */
- else if(T==44){
- R=cons(reverse(TR),R);
- TR=[];
- }else if(T==94){ /* ^ */
- S=cdr(S);
- if(car(S)==40){ /* ( */
- S=cdr(S);
- for(T=0; car(S)!=41 && S!=[]; S=cdr(S)){
- V=car(S)-48;
- if(V>=10) V-=39;
- T=10*T+V;
- }
- }else{
- while(car(S)<48) S=cdr(S);
- T=car(S)-48;
- if(T>=10) T-=39;
- }
- while(--T>=1) TR=cons(car(TR),TR);
- }else if(T==40){ /* ( */
- S=cdr(S);
- if(N==1){
- N=0; NN=1;
- }else NN=0;
- if(car(S)==45){ /* - */
- S=cdr(S);
- NN=1-NN;
- }
- for(I=0; I<2; I++){
- for(V=0; (SS=car(S))!=41 && SS!=47 && S!=[]; S=cdr(S)){
- T=SS-48;
- if(T>=10) T-=39;
- V=10*V+T;
- }
- if(NN==1){
- V=-V; NN=0;
- }
- TR=cons(V,TR);
- if(SS!=47) break;
- else{
- N=2; S=cdr(S);
- }
- }
- }else if(T==60){
- for(V=[],S=cdr(S);S!=[]&&car(S)!=62;S=cdr(S))
- V=cons(car(S),V);
- if(car(S)!=62) continue;
- TR=cons(eval_str(asciitostr(reverse(V))),TR);
- }else if(T<48) continue;
- if(N==1){
- T = car(TR);
- TR=cons(-T,cdr(TR));
- N=0;
- }else if(N==2){
- T=car(TR); TR=cdr(TR);
- TR=cons(car(TR)/T,cdr(TR));
- N=0;
- }
- }
- return reverse(cons(reverse(TR),R));
- }else if(type(S)==4){
- Num=getopt(num);
- for(R=[]; ; ){
- if(type(TS=car(S))!=4) return;
- for(; TS!=[]; TS=cdr(TS)){
- V=car(TS);
- if(type(V)>1||(type(V)==1&&ntype(V)>0)){
- V="<"+rtostr(V)+">";
- R=append(reverse(strtoascii(V)),R);
- continue;
- }
- if(dn(V)>1){
- P=reverse(strtoascii(rtostr(V)));
- R=append(P,cons(40,R));
- R=cons(41,R);
- continue;
- }
- if(V<0 && V>-10){
- V=-V;
- R=cons(45,R);
- }
- if(V<0 || V>35 || (V>9 && Num==1)){
- P=reverse(strtoascii(rtostr(V)));
- R=append(P,cons(40,R));
- V=41;
- }else if(V<10) V+=48;
- else V+=87;
- R=cons(V,R);
- }
- if((S=cdr(S))==[]) break;
- R=cons(44,R);
- }
- return asciitostr(reverse(R));
- }
- return 0;
-}
-
-def sp2grs(M,A,L)
-{
- MM = [];
- T0 = 0;
- Mat=getopt(mat);
- if(Mat!=1) Mat=0;
- if(type(M)==7) M=s2sp(M);
- if((LM = length(M)) > 10 && type(A) < 4)
- CK = 1;
- Sft = (type(L)==1)?L:0;
- if(type(L)==4 && length(L)>=3)
- Sft = L[2];
- if(Sft < 0){
- T0 = 1;
- Sft = -Sft-1;
- }
- for(I = LM-1; I >= 0; I--){
- MI = M[I]; MN = [];
- if(CK == 1 && length(MI) > 10){
- erno(1);
- return;
- }
- if(type(A) == 4)
- AA = rtostr(A[I]);
- else
- AA = rtostr(A)+rtostr(I);
- for(J = LM = length(MI)-1; J >= 0; J--){
- V = MI[J];
- if(type(V) > 3)
- V = V[0];
- if(T0 == 0 || I == 0)
- MN = cons([V, makev([AA,J+Sft])], MN);
- else{
- if(LM == 1)
- MN = cons([V, (J==0)?0:makev([AA])], MN);
- else if(I == 1 && Mat == 0)
- MN = cons([V, (J==length(MI)-1)?0:makev([AA,J+Sft])], MN);
- else
- MN = cons([V, (J==0)?0:makev([AA,J])], MN);
- }
- }
- MM = cons(MN, MM);
- }
- if(type(L) == 4 && length(L) >= 2){
- R = chkspt(MM|mat=Mat); /* R[3]: Fuchs */
- AA = var(MM[L[0]-1][L[1]-1][1]);
- if(AA==0) AA=var(R[3]);
- if(AA!=0 && (P = mycoef(R[3],1,AA))!=0){
- P = -mycoef(R[3], 0, AA)/P;
- MM = mysubst(MM,[AA,P]);
- }
- }
- return MM;
-}
-
-def intpoly(F,X)
-{
- if((T=ptype(F,X))<4){
- if(T<3){ /* polynomial */
- if(type(C=getopt(cos))>0){
- V=vars(F);
- Z=makenewv(V);
- W=makenewv(cons(Z,V));
- Q=intpoly(F,X|exp=Z);
- Q=(subst(Q,Z,@i*C)*(Z+@i*W)+subst(Q,Z,-@i*C)*(Z-@i*W))/2;
- return [mycoef(Q,1,Z),mycoef(Q,1,W)];
- }
- if(type(C=getopt(sin))>0){
- Q=intpoly(F,X|cos=C);
- return [-Q[1],Q[0]];
- }
- if(type(C=getopt(log))>0){
- Q=intpoly(F,X);
- if(C[0]==0) return [Q,0];
- if(length(C)<3) C=[C[0],C[1],1];
- Q-=subst(Q,X,-C[1]/C[0]);
- if(iscoef(Q,os_md.israt)) Q=red(Q);
- if(C[2]==0) return [Q];
- S=subst(-Q*C[0]*C[2],X,X-C[1]/C[0]);
- for(R=0,D=mydeg(S,X);D>0;D--) R+=mycoef(S,D,X)*X^(D-1);
- R=subst(R,X,X+C[1]/C[0]);
- return cons(Q,intpoly(R,X|log=[C[0],C[1],C[2]-1]));
- }
- if(type(C=getopt(exp))>0){
- D = mydeg(F,X);
- for(P=Q=F/C;D>=0;D--){
- Q=-mydiff(Q,X)/C;
- P+=Q;
- }
- return P;
- }
- for(P=0,I=mydeg(F,X);I >= 0;I--)
- P += mycoef(F,I,X)*X^(I+1)/(I+1);
- return P;
- }
- R=pfrac(F,X|root=2); /* rational */
- for(P=0;R!=[];R=cdr(R)){
- if(type(V=getopt(dumb))==5){
- for(PF=[],RR=R;RR!=[];RR=cdr(RR))
- PF=cons(RR[0][0]/RR[0][1]^RR[0][2],PF);
- PF=[cons(X,reverse(PF))];
- if(P) PF=cons([1,P],PF);
- V[0]=cons(PF,V[0]);
- }
- RT=car(R);
- if(mydeg(RT[1],X)==0) P+=intpoly(RT[0]*RT[2],X);
- else if((Deg=mydeg(RT[1],X))==1){
- if(RT[2]>1) P+=RT[0]*RT[1]^(1-RT[2])/(1-RT[2])/mycoef(RT[1],1,X);
- else P+=RT[0]*log(RT[1])/mycoef(RT[1],1,X);
- P=red(P);
- }else if(Deg==2){
- D1=diff(RT[1],X);C1=mycoef(D1,1,X);
- B=2*C1*mycoef(RT[1],0,X)-mycoef(RT[1],1,X)^2; /* ax^2+bx+c => B=4ac-b^2 */
- B=sqrt2rat(B);
- N=RT[0];
- for(I=RT[2];I>0&&N!=0;I--){
- C0=mycoef(N,1,X)/C1;N-=C0*D1;
- if(C0){
- if(I>1) P-=C0/RT[1]^(I-1)/(I-1);
- else P+=C0*log(RT[1]);
- }
- if(I>1){
- BB=B/C1;
- P+=N*X/RT[1]^(I-1)/(I-1)/BB;
- N*=(2*I-3)/(I-1)/BB;
- }else{
- if(type(BR=sqrtrat(B))>3){
- mycat(["Cannot obtain sqare root of ",B]);
- return [];
- }
- if(real(nm(BR))!=0){
- P+=(2*N/BR)*atan(sqrt2rat(D1/BR|mult=1));
- }else{
- BR*=@i;BRI=sqrt2rat(1/BR);
- R1=(-mycoef(RT[1],1,X)+BR)/C1;
- R2=(-mycoef(RT[1],1,X)-BR)/C1;
- P+=N*BRI*log( /* sqrt2rat */((x-R1)/(x-R2)));
- }
- }
- P=red(P);
- }
- P=sqrt2rat(P);
- }else{
- mycat(["Cannot get an indefinite integral of ",F]);
- return [];
- }
- }
- Q=simplog(P,X);
- if(type(V)==5&&nmono(P)!=nmono(Q)) V[0]=cons([[1,red(P)]],V[0]);
- return red(Q);
- }
- return [];
-}
-
-def fshorter(P,X)
-{
- Q=sqrt2rat(P);
- R=trig2exp(Q,X|inv=1);
- if(str_len(fctrtos(R))<str_len(fctrtos(Q))) Q=R;
- Var=pfargs(Q,X|level=1);
- for(C=F=0,R=1,V=Var;V!=[];V=cdr(V)){
- if(findin(car(V)[1],[cos,sin,tan])>=0){
- if(!C){
- F=car(V)[2];
- }else{
- R=red(car(V)[2]/F);
- if(type(R)!=1) break;
- F/=dn(R);
- }
- C++;
- }
- }
- if(getopt(period)==1) return F;
- if(!isint(Log=getopt(log))) Log=0;
- if(V==[]&&F!=0){
- if(iand(Log,1)){
- H=append(cdr(fctr(nm(Q))),cdr(fctr(dn(Q))));
- for(L=0;H!=[];H=cdr(H))
- L+=str_len(rtostr(car(H)[0]));
- }else L=str_len(fctrtos(Q));
- S=trig2exp(P,X);
- for(T=[sin(F),tan(F),cos(F),sin(F/2),cos(F/2),tan(F/2)];T!=[];T=cdr(T)){
- R=trig2exp(S,X|inv=car(T));
- if(iand(Log,1)){
- H=append(cdr(fctr(nm(R))),cdr(fctr(dn(R))));
- for(K=0;H!=[];H=cdr(H))
- K+=str_len(rtostr(car(H)[0]));
- }else K=str_len(fctrtos(R));
- if(K<L){
- Q=R;L=K;
- }
- }
- }
- return Q;
-}
-
-def isshortneg(P)
-{
- return(str_len(rtostr(P))>str_len(rtostr(-P)))?1:0;
-}
-
-def simplog(R,X)
-{
- for(V=[],Var=pfargs(R,X);Var!=[];Var=cdr(Var)){
- VT=car(Var);
- if(VT[1]==log && ptype(R,VT[0])==2 && mydeg(R,VT[0])==1)
- V=cons([VT[0],VT[2],mycoef(R,1,VT[0])],V);
- }
- for(;V!=[];V=cdr(V)){
- VT=car(V);
- for(V2=cdr(V);V2!=[];V2=cdr(V2)){
- Dn=1;
- if((C=red(car(V2)[2]/VT[2]))!=1&&C!=-1){
- if(getopt(mult)==1&&type(C)==1&&ntype(C)==0){
- Dn=dn(C);C*=Dn;
- }else continue;
- }
- Log=red(VT[1]^Dn*car(V2)[1]^(Dn*C));
- L=str_len(rtostr(dn(Log)))-str_len(rtostr(nm(Log)));
- if(L>0 || (L==0&&isshortneg(VT[2])) ){
- Dn=-Dn;Log=1/Log;
- }
- R=mycoef(R,0,VT[0]);R=mycoef(R,0,car(V2)[0]);
- return(R+VT[2]*log(Log)/Dn);
- }
- }
- return R;
-}
-
-def integrate(P,X)
-{
- Dvi=getopt(dviout);
- if(type(I=getopt(I))==4){
- if((R=integrate(P,X))==[]) II="?";
- else if(type(I[0])>3||type(I[1])>3){
- R=subst(R,X,x);
- V=flim(R,I[0]);VV=flim(R,I[1]);
- if(V==""||VV=="") II="?";
- else if(type(V)==7||type(VV)==7){
- if(V==VV) II="?";
- else II=(VV=="+"||V=="-")?"\\infty":"-\\infty";
- }else{
- II=VV-V;
- if(II>10^10) II="\\infty";
- else if(II<-10^10) II="-\\infty";
- }
- }else{
- V=subst(R,X,I[1])-subst(R,X,I[0]);
- VV=myval(V);
- II=(type(VV)>=2||ntype(VV)<1)?VV:evalred(V);
- }
- if(type(Dvi)!=1) return II;
- I=ltov(I);
- for(J=0;J<2;J++){
- if(type(I[J])>3){
- if(type(I[J])==4&&length(I[J])>1) I[J]=I[J][1];
- else I[J]=(J==0)?"-\\infty":"\\infty";
- }
- if(type(I[J])<4) I[J]=my_tex_form(I[J]);
- }
- S=(type(II)==7)?II:my_tex_form(II);
- S="\\int_{"+I[0]+"}^{"+I[1]+"}"+monototex(P)+"\\,d"+my_tex_form(X)+"&="+S;
- if(Dvi==1) dviout(texbegin("align",S));
- return S;
- }
- if(isint(Dvi)==1){
- if(Dvi==2||getopt(dumb)==-1){
- V=newvect(1);V[0]=[];
- }else V=0;
- if((RR=integrate(P,X|dumb=V))==[]) return R;
- S=fshorter(RR,X);
- VV=[X];
- if(V!=0){
- R=cons([[1,RR]],V[0]);
- if(S!=RR) R=cons([[1,RR=S]],R);
- for(V=FR=[];R!=[];R=cdr(R))
- if(car(R)!=FR) V=cons(FR=car(R),V);
- Var=varargs(V|all=2);
- for(S0=[x0,x1,x2,x3],S=[t,s,u,v,w];S0!=[]&&S!=[];){
- if(findin(car(S0),Var)<0){
- S0=cdr(S0); continue;
- }
- if(findin(car(S),Var)>=0){
- S=cdr(S); continue;
- }
- V=subst(V,[car(S0),car(S)]);S0=cdr(S0);S=cdr(S);
- }
- if(Dvi==-2) return V;
- S1="\\,dx&";
- }else{
- V=[[],[[1,RR=S]]];
- S1="\\,dx";
- }
- if(type(P)>2){
- if(type(nm(P))<2){
- P=P*dx;S1=V?"&":"";
- }
- S=fctrtos(P|TeX=2,lim=0);SV0=my_tex_form(P);
- if(str_len(SV0)<str_len(S)) S=SV0;
- }else S=monototex(P);
- if(Dvi!=-2) S="\\int "+S+S1;
- else S="";
- for(L=[],V=cdr(V);V!=[];V=cdr(V)){
- CL=car(V);S0=["="]; /* a line */
- for(FL=0;CL!=[];CL=cdr(CL),FL++){
- CT=car(CL); /* a term */
- if((Y=CT[0])==0){ /* a variable */
- CT=cdr(CT);
- if(length(CT)>2) CT=cdr(CT);
- S0=["\\qquad(",CT[0],"=",CT[1],")"];
- break;
- }else{
- for(FT=0,S2=[],CT=cdr(CT);CT!=[];CT=cdr(CT),FT++){
- SV=fctrtos(car(CT)|TeX=2,lim=0);SV0=my_tex_form(car(CT));
- if(str_len(SV0)<str_len(SV)) SV=SV0;
- if(FL||FT||(F&&type(Y)<2)) SV=minustos(SV);
- S2=append(["+",SV],S2);
- }
- S2=reverse(cdr(S2));
- if(type(Y)>1){
- if(length(S2)>1){
- S1="\\int\\left(";S3="\\right)\\,d";
- }else{
- S1="\\int";S3="\\,d";
- }
- S2=cons(S1,append(S2,[S3,Y]));
- if(findin(Y,VV)<0) VV=cons(Y,VV);
- }
- if(FL) S0=append(S0,cons("+",S2));
- else S0=append(S0,S2);
- }
- }
- L=append([S0],L);
- };
- V=pfargs(RR,X|level=1);
- for(Var=[];V!=[];V=cdr(V)) Var=cons(car(V)[0],Var);
- Var=reverse(Var);
- if(!isint(J=getopt(frac))) J=0;;
- if(!iand(J,4)&&(!iand(J,2)||length(Var)==1)&&(iand(J,8)==8||ptype(RR,Var)==2)){
- F=1;
- if(iand(J,1)){
- K=str_len(fctrtos(RR));
- I=str_len(fctrtos(RR|var=Var));
- if(I>=K) F=0;
- }
- if(F){
- V=[fctrtos(RR|var=Var,TeX=2)];
- if(Dvi!=-2) V=cons("=",V);
- if(length(L)>0) L=cdr(L);
- L=append([V],L);
- }
- }else if(ptype(RR,X)==2){
- L=cdr(L);
- V=[fctrtos(RR|var=X,TeX=2)];
- if(Dvi!=-2) V=cons("=",V);
- L=append([V],L);
- }
- S=texket(S+ltotex(reverse(L)|opt=["cr","spts0"],str=1));
- if(getopt(log)!=1){
- for(V=[];VV!=[];VV=cdr(VV))
- V=cons(strtoascii(my_tex_form(car(VV))),V);
- S1=strtoascii("\\log");
- for(F=1;F;){ /* log(log(x)) */
- F=FT=0;
- S0=strtoascii(S); /* log(x) -> log|x| */
- L=length(S0);
- S2=str_tb(0,0);
- for(I=0;;){
- if(I>=L||(J=str_str(S0,S1|top=I+FT))<0){
- S=str_tb(0,S2)+str_cut(S0,I,100000);
- break;
- }
- if((K=str_str(S0,40|top=J+4))<0
- ||(K!=J+4&&K!=J+9)||(N=str_pair(S0,K+1,40,41))<0){
- FT=J-I+4;continue;
- }
- FT=0;
- if(str_str(S0,V|top=K+1,end=N-1)[0]<0) S2=str_tb(str_cut(S0,I,N),S2);
- else{
- /* log(a) -> log(a) */
- F=1;
- if(N<L-1&&S0[N+1]==94){ /* log(x)^2 -> (log|x|)^2 */
- S2=str_tb([str_cut(S0,I,J-1),"\\left(",str_cut(S0,J,K-1),
- "|",str_cut(S0,K+1,N-1),"|\\right)"],S2);
- }
- else S2=str_tb([str_cut(S0,I,K-1),"|",str_cut(S0,K+1,N-1),"|"],S2);
- }
- I=N+1;
- }
- }
- }
- if(Dvi>0){
- dviout(texbegin("align*",S));
- return 1;
- }
- return S;
- } /* end of dviout */
- SM=["Cannot integrate",P,"at present"];
- P=sqrt2rat(P|mult=1);
- Dumb2=1;Dumb3=0;W=newvect(1);W[0]=[];
- if(type(Dumb=getopt(dumb))==5){
- Dumb2=Dumb3=Dumb;D2=W;
- }else if(!isint(Dumb)) Dumb=0;
- if(Dumb==-1){
- Dumb2=Dumb3=-1;
- }
- if(type(Dumb)!=5) D2=Dumb2;
- if(!isint(Mul=getopt(mult))) Mul=0;
- else Mul++;
- if(type(VAR=getopt(var))!=4) VAR=[];
- if(type(P)>4) return [];
- if(iand(T=ptype(P=red(P),X),63)>3||Mul>4){
- if(Dumb!=1) mycat(SM);
- return [];
- }
- if(Dumb==-1) mycat(["integrate", P]);
- else if(type(Dumb)==5) Dumb[0]=cons([[X,P]],Dumb[0]);
- if(T<4 && (T<3||iscoef(P,os_md.israt))){
- if(Dumb==-1) mycat(["rational function",P]);
- else if(type(Dumb)==5) Dumb[0]=cons([[X,P]],Dumb[0]);
- return intpoly(P,X|dumb=Dumb); /* rational function */
- }
- Var=pfargs(P,X);
- for(F=0,VV=Var;VV!=[];VV=cdr(VV)){
- /* p(x)*log(x^2-1), @e^x, a^x, f(x)^(m/n) etc.->simplify */
- V=car(VV);
- if(V[1]==log && (T=ptype(V[2],X))>1 && T<4){
- if(mydeg(dn(V[2]),X)>0||mydeg(nm(V[2]),X)>1){
- FC=pfctr(V[2],X);RV=1;
- if(length(FC)>2){
- RR=0;RV=1;
- if((F0=car(FC)[0])!=1){
- if(type(F0)!=1 && F0<0){
- for(FT=cdr(FT);FT!=[];FT=cdr(FT)){
- if(iand(car(FT)[1],1)){
- RV=-1;F0=-F0;break;
- }
- }
- }
- }
- if(F0!=1) RR=log(F0);
- for(FC=cdr(FC);FC!=[];FC=cdr(FC)){
- if(RV==-1&&iand(car(FC)[1],1)==1){
- RR+=car(FC)[1]*log(-car(FC)[0]);
- RV=1;
- }else
- RR+=car(FC)[1]*log(car(FC)[0]);
- }
- P=subst(P,V[0],RR);
- F=1;
- }
- }
- F=1;
- }else if(V[1]==pow){
- if(ptype(V[2],X)==1){
- F=1;
- if(V[2]==@e){ /* @e^(f(x)) */
- P=subst(P,V[0],exp(V[3]));
- }else P=subst(P,V[0],exp(log(V[2])*V[3]));
- }else if(type(V[3])<=1 && ntype(V[3])==0){ /* r(x)^(m/n) */
- if((Pw=floor(V[3]))!=0){
- R=V[2]^Pw;
- if((PF=V[3]-Pw)!=0) R*=V[2]^PF;
- P=subst(P,V[0],R);
- F=1;
- V=[V[2]^PF,V[1],V[2],PF];
- }
- if(ptype(nm(V[2]),X)<2&&V[3]>0){ /* (1/p(x))^(m/n) */
- P=subst(P,V[0],V[2]*red(1/V[2])^(1-V[3]));
- F=0;VV=cons(0,Var=pfargs(P,X));continue;
- }
- if(ptype(V[2],X)<4&&(K=dn(V[3]))>1){
- V2=red(V[2]);
- DN=mydeg(nm(V2),X);DD=mydeg(dn(V2),X);
- if(DN+DD>1){
- VF=pfctr(V2,X);
- R=car(VF)[0]^(car(VF)[1]);RR=0;
- for(VF=cdr(VF);VF!=[];VF=cdr(VF)){
- TV=car(VF);TM=TV[1];
- while(abs(TM)>=K){
- RR=1;
- if(TM>0){
- TM-=K;
- RR*=TV[0]^nm(V[3]);
- }else{
- TM+=K;
- RR/=TV[0]^nm(V[3]);
- }
- }
- if(TM!=0) R*=TV[0]^TM;
- }
- if(RR){
- P=subst(P,V[0],RR*red(R)^(V[3]));F=1;
- F=0;VV=cons(0,Var=pfargs(P,X));continue;
- }
- }
- }
- }
- }
- }
- if(F){
- P=sqrt2rat(P|mult=1);
- Var=pfargs(P=red(P),X);T=ptype(P,X);
- if(T<4 && (T<3||iscoef(P,os_md.israt))){
- if(Dumb==-1) mycat(["rational function",P]);
- else if(type(Dumb)==5){
- Dumb[0]=cons([[X,P]],Dumb[0]);
- return intpoly(P,X|dumb=Dumb3);
- }
- return intpoly(P,X); /* rational function */
- }
- }
-#if 1
- for(P0=P,V=pfargs(P,X|level=1);V!=[];V=cdr(V)) /* P:tan(x) -> P0:sin(x)/cos(x) */
- if(car(V)[1]==tan) P0=red(subst(P0,car(V)[0],sin(car(V)[2])/cos(car(V)[2])));
- if(iand(ptype(P0,X),128)){ /* (log f)'=f'/f */
- for(Df=cdr(fctr(dn(P0)));Df!=[];Df=cdr(Df)){
- if(!iand(ptype(car(Df)[0],X),64)) continue;
- Q=car(Df)[0]^(car(Df)[1]);QQ=red(dn(P0)/Q);
- DQ=red(diff(Q,X)*QQ);
- if(type(C=DQ/nm(P0))<2&&C!=0){
- PP=0;DN=[1];
- }else for(DN=cdr(fctr(DQ));DN!=[];DN=cdr(DN)){
- Y=car(DN)[0];
- if(!iand(ptype(Y,X),64)||(I=mydeg(nm(P0),Y))!=mydeg(DQ,Y)
- || ptype((C=red(mycoef(nm(P0),I,Y)/mycoef(DQ,I,Y))),X)>1||C==0) continue;
- PP=red(P0-C*diff(Q,X)/Q);
- if(nmono(P0)>nmono(PP)) break;
- }
- if(DN!=[]){
- R=C*log(Q);
- if(PP==0){
- if(P!=P0&&type(Dumb)==5) Dumb[0]=cons([[X,P0]],Dumb[0]);
- return R;
- }
- W[0]=[];
- S=integrate(PP,X|dumb=D2);
- if(S!=[]){
- if(type(Dumb)==5){
- Dumb[0]=cons([[X,red(P0-PP),PP]],Dumb[0]);
- TD=W[0];
- for(W0=[],TD=reverse(TD);TD!=[];TD=cdr(TD)){
- if(car(TD)[0][0]){
- WL=cons([1,R],car(TD));
- Dumb[0]=cons(WL,Dumb[0]);
- }
- else Dumb[0]=cons(car(TD),Dumb[0]);
- }
- }
- return red(R+S);
- }
- }
- }
- }
-#endif
- if((length(Var)==1||getopt(exe)==1) && /* p(x)*atan(q(x))^m+r(x), etc */
- findin((VT=car(Var))[1],[atan,asin,acos,log])>=0 && ptype(P,VT[0])==2 &&
- (VT[1]!=log||(T!=65&&T!=66)||mydeg(VT[2],X)!=1)){ /* exclude x*log(x+1)^2 */
- for(R=0,D=mydeg(P,VT[0]);D>=0;D--){
- Q=S=mycoef(P,D,VT[0]);
- if(S){
- if(D>0){
- if((Q=integrate(S,X|mult=Mul))==[]) return Q;
- }else{
- W[0]=[];
- if((Q=integrate(S,X|dumb=D2,var=VAR,mult=Mul))==[]) return Q;
- if(type(Dumb)==5){
- TD=W[0];
- for(W0=[],TD=reverse(TD);TD!=[];TD=cdr(TD)){
- if(car(TD)[0][0]){
- WL=cons([1,R],car(TD));
- Dumb[0]=cons(WL,Dumb[0]);
- }
- else Dumb[0]=cons(car(TD),Dumb[0]);
- }
- if(car(Dumb[0])!=[[1,R],[1,Q]])
- Dumb[0]=cons([[1,R,Q]],Dumb[0]);
- }
- return red(R+Q);
- }
- }else if(D>0) continue;
- if(D==0){
- if(Q!=0&&type(Dumb)==5) Dumb[0]=cons([[1,R,Q]],Dumb[0]);
- return red(Q+R);
- }
- R0=Q*VT[0]^D;
- P=(P0=P)-S*VT[0]^D-Q*diff(VT[0]^D,X);
- if(mydeg(P,VT[0])>=D){ /* (x+1)*log(x)/x^2 */
- if(mydeg(P,VT[0])==D &&
- ptype(C=red(mycoef(P,D,VT[0])/diff(VT[0],X)),VT[0])<2){
- P=P0-(S*VT[0]^D+Q*diff(VT[0]^D,X)+C*diff(VT[0]^(D+1),X)/(D+1));
- R0+=C*VT[0]^(D+1)/(D+1);
- }else{
- P=P0;
- if(Dumb!=1) mycat(SM);
- return [];
- }
- }
- if(type(Dumb)==5){
- if(P) Dumb[0]=cons([R?[1,R,R0]:[1,R0],[X,P]],Dumb[0]);
- else if(R!=0) Dumb[0]=cons([[1,R,R0]],Dumb[0]);
- }
- R+=R0;
- }
- }
- if(length(Var)==1 && (VT=car(Var))[1]==pow && mydeg(P,VT[0])==1 && (PT=ptype(VT[2],X))<4){
- PR=mycoef(P,0,VT[0]);
- if(RR!=0){
- RR=integrate(RR,X|dumb=Dumb3,var=Var);
- if(RR==[]) return RR;
- }
- PW=VT[3];
- if((D=mydeg(nm(V2=VT[2]),X))==2&&PT==2){ /* f(x)*(ax^2+bx+c)^(m/2)+r(x) */
- if(isint(2*PW)){
- C2=mycoef(V20=V2,2,X);F=1;
- if((C21=sqrtrat(C2))==[]) return [];
- if(imag(C21)!=0){
- if(real(C21)!=0) return [];
- C21=C21/@i;F=-1;
- }
- if(type(C21)>3) return [];
- P=subst(P,X,X/C21);VT=mysubst(VT,[X,X/C21]);V2=VT[2];
- C1=mycoef(V2,1,X)/F/2;
- if(C1!=0){
- P=subst(P,X,X-C1);VT=mysubst(VT,[X,X-C1]);V2=VT[2];
- }
- C0=mycoef(V2,0,X);
- if((C01=sqrtrat(C0))==[]) return [];
- if(imag(nm(C01))!=0){
- if(real(nm(C01))!=0) return [];
- C01=C01/@i;G=-1;
- }else G=1;
- if(type(C01)>3||(F==-1&&G==-1)) return [];
- Y=makenewv([P,VAR]|var=x);
- if(F==-1){ /* (c^2-x^2)^(1/2) */
- Q=subst(P,VT[0],(C01*cos(Y))^(2*PW),X,YX=C01*sin(Y))
- *C01*cos(Y)/C21;
- SY=(C21*X+C1);CY=V20;YY=asin(sqrt2rat((C21*X+C1)/C01|mult=1));
- }else if(G==-1){ /* (x^2-c^2)^(1/2) */
- Q=subst(P,VT[0],(C01*sin(Y)/cos(Y))^(2*PW),X,YX=C01/cos(Y))
- *C01*sin(Y)/cos(Y)^2/C21;
- SY=V20;CY=1/(C21*X+C1);YY=acos(sqrt2rat(C01*(C21*X+C1)|mult=1));
- }else{ /* (x^2+c^2)^(1/2) */
- Q=subst(P,VT[0],(C01/cos(Y))^(2*PW),X,YX=C01*sin(Y)/cos(Y))
- *C01/cos(Y)^2/C21;
- CY=V20; YY=atan(sqrt2rat((C21*X+C1)/C01|mult=1));
- }
- if(Dumb==-1) mycat([C21*X+C1,"=",YX]);
- else if(type(Dumb)==5) Dumb[0]=cons([[0,Y,C21*X+C1,YX]],Dumb[0]);
- Q=sqrt2rat(Q);
- QQ=red(substblock(nm(Q),sin(Y),sin(Y)^2,1-cos(Y)^2)
- /substblock(dn(Q),sin(Y),sin(Y)^2,1-cos(Y)^2));
- if(cmpsimple(QQ,Q|comp=2)<0) Q=QQ;
- QQ=red(substblock(nm(Q),cos(Y),cos(Y)^2,1-sin(Y)^2)
- /substblock(dn(Q),cos(Y),cos(Y)^2,1-sin(Y)^2));
- if(cmpsimple(QQ,Q|comp=2)<0) Q=QQ;
- if((Q=integrate(Q,Y|dumb=Dumb2,var=cons(X,Var)))==[]) return [];
- Q=trig2exp(Q,Y|inv=cos(Y));
- for(V=vars(Q);V!=[];V=cdr(V)){
- FA=funargs(car(V));
- if(type(FA)==4&&FA[0]==log){
- QQ=trig2exp(FA[1],Y|inv=cos(Y));
- Q=mycoef(Q,0,car(V))+mycoef(Q,1,car(V))*log(QQ);
- }
- }
- if(type(Dumb)==5) Dumb[0]=cons([[1,Q]],Dumb[0]);
- if(F==-1) Q=subst(Q,sin(Y),SY/C01,cos(Y),CY^(1/2)/C01,Y,YY);
- else if(G==-1){
- Q=red(subst(Q,sin(Y),SY^(1/2)*cos(Y)/C01));
- Q=red(subst(Q,cos(Y),C01*CY,Y,YY));
- }else{
- Q=red(subst(Q,sin(Y),(C21*X+C1)*cos(Y)/C01));
- Nm=substblock(nm(Q),cos(Y),C01^2/CY,cos(Y)^2);
- Nm=subst(Nm,cos(Y),C01/CY^(1/2));
- Dn=substblock(dn(Q),cos(Y),C01^2/CY,cos(Y)^2);
- Dn=subst(Dn,cos(Y),C01/CY^(1/2));
- Q=red(subst(Nm/Dn,Y,YY));
- }
- if(findin(Y,vars(Q))>=0) return [];
- for(R=[],Var=vars(Q);Var!=[];Var=cdr(Var)){
- VT=funargs(V=car(Var));
- if(type(VT)==4&&VT[0]==log&&ptype(VT[1],X)>60&&mydeg(Q,V)==1)
- R=cons([mycoef(Q,1,V),V],R);
- }
- if(length(R)==2 && (R[0][0]==R[1][0]||R[0][0]+R[1][0]==0)){
- R0=args(R[0][1])[0];R1=args(R[1][1])[0];
- if(R[0][0]==R[1][0]) S=R0*R1;
- else S=R1/R0;
- Q=mycoef(Q,0,R[0][1]);Q=mycoef(Q,0,R[1][1]);
- Q+=R[1][0]*log(red(S));
- }
- for(Var=vars(Q);Var!=[];Var=cdr(Var)){
- VT=funargs(car(Var));
- if(type(VT)==4&&VT[0]==log&&ptype(VT[1],X)>60){
- S=trig2exp(VT[1],X|inv=cos(X),arc=1);
- if(ptype(dn(S),X)<2 && mydeg(Q,car(Var))==1
- && ptype(mycoef(Q,1,car(Var)),X)<2){
- S=nm(S);
- SF=fctr(S);
- S/=SF[0][0];
- }
- if(cmpsimple(S,-S)>0) S=-S;
- Q=subst(Q,car(Var),log(S));
- }
- } /* x/(1-x^2)^(1/2) */
- if(type(Q=red(Q+RR))==2&&type(Dumb)!=5) Q-=cterm(Q);
- if(Dumb==-1) mycat(["->",Q]);
- else if(type(Dumb)==5) Dumb[0]=cons([[1,Q]],Dumb[0]);
- return Q;
- }
- }else if(D==1 && mydeg(Dn=dn(V2),X)<2 && type(PW)==1 && ntype(PW)==0 &&
- (V2!=X||ptype(mycoef(P,1,VT[0]),X)>2)){ /* p(x)((ax+b)/(cx+d))^(m/n) */
- PN=nm(PW);PD=dn(PW);
- Y=makenewv([P,VAR]|var=x);Q=Y^PD*Dn-nm(V2);F=-mycoef(Q,0,X)/mycoef(Q,1,X);
- Q=red(subst(P,VT[0],Y^PN,X,F)*diff(F,Y));
- if(Dumb==-1) mycat([Y,"=",V2^(1/PD)]);
- else if(type(Dumb)==5) Dumb[0]=cons([[0,Y,V2^(1/PD)]],Dumb[0]);
- if((Q=integrate(Q,Y|dumb=Dumb3,var=cons(X,Var)))==[]) return [];
- Q=red(Q);
- QN=subst(substblock(nm(Q),Y,Y^PD,V2),Y,V2^(1/PD));
- QD=subst(substblock(dn(Q),Y,Y^PD,V2),Y,V2^(1/PD));
- Q=red(QN/QD+RR);
- if(Dumb==-1) mycat(["->",Q]);
- else if(type(Dumb)==5) Dumb[0]=cons([[1,Q]],Dumb[0]);
- return Q;
- }
- }else if(length(Var)==2 && /* r(x,(ax+b)^(1/2),(cx+d)^(1/2)) */
- (VT=car(Var))[1]==pow && ptype(VT[2],X)==1 && mydeg(VT[2],X)==1 && VT[3]==1/2 &&
- (VS=car(car(Var)))[1]==pow && ptype(VS[2],X)==1 && mydeg(VS[2],X)==1 && VS[3]==1/2){
- Y=makenewv([P,VAR]|var=x);R=(Y^2-myceof(VS[0],0,X))/(C=mycoef(VS[0],1,X));
- if(Dumb==-1) mycat([Y,"=",VS[0]]);
- else if(type(Dumb)==5) Dumb[0]=cons([[0,Y,VD[0]]],Dumb[0]);
- R=integrate(subst(P,VS[0],Y,X,R)*2*Y/C,Y|dumb=Dumb3,var=cons(X,Var));
- if(R!=[]){
- R=subst(substblock(R,Y,VS[0],Y^2),Y,VS[0]);
- if(Dumb==-1) mycat(["->",R]);
- else if(type(Dumb)==5) Dumb[0]=cons([[1,R]],Dumb[0]);
- }
- return R;
- }
- if(T==65||T==66){ /* polynomial including sin, exp etc */
- for(F=0,VT=Var;VT!=[];VT=cdr(VT)){
- VTT=car(VT);
- if(ptype(VTT[2],X)>2||mydeg(VTT[2],X)>1) F=ior(F,256); /* compos. or rat. or nonlin. */
- K=findin(VTT[1],[cos,sin,tan,exp,log,pow]);
- F=ior(F,2^(K+1)); /* 1:other,2:cos,4:sin,8:tan,16:exp,32:log,64:pow */
- if((Deg=mydeg(P,VTT[0]))>1&&K!=4) F=ior(F,1024); /* nonlinear */
- if(K==5 && (ptype(VTT[3],X)!=0 || VTT[2]!=x||Deg>1)) F=ior(F,8192); /* pow */
- for(;Deg>0;Deg--){ /* coef */
- if(ptype(mycoef(P,Deg,VTT[0]),X)>2){
- if(K==4||K==5) F=ior(F,2048); /* exp, log */
- else F=ior(F,4096);
- }
- }
- }
- if(!iand(F,1+8+64+256+512+2048+8192)){ /* cos,sin,exp,log^n,x^c */
- if(iand(F,1024+4096)&&!iand(F,32+64)){ /* cos,sin,exp */
- if(type(Dumb)==5){
- S=trig2exp(P,X|inv=1);
- if(P!=S) Dumb[0]=cons([[X,S]],Dumb[0]);
- }
- R=integrate(trig2exp(P,X),X);
- if(R!=[]) S=trig2exp(R,X|inv=1);
- R=fshorter(S,X);
- if(type(Dumb)==5&&R!=S){
- Dumb[0]=cons([[1,S]],Dumb[0]);
- }
- return R;
- }
- for(R=0,VT=Var;VT!=[];VT=cdr(VT)){
- CV=car(VT);
- C0=mycoef(CV[2],0,X);C1=mycoef(CV[2],1,X);
- Q=mycoef(P,1,CV[0]);
- if(CV[1]==sin||CV[1]==cos){
- TR=(CV[1]==sin)?intpoly(Q,X|sin=C1):intpoly(Q,X|cos=C1);
- R+=TR[0]*cos(CV[2])+TR[1]*sin(CV[2]);
- }else if(CV[1]==exp){
- QT=exp(CV[2]);
- for(V2=vars(C1);V2!=[];V2=cdr(V2)){ /* exp(2*log(a)*x) => a^(2*x) */
- if(vtype(VA=car(V2))==2&&functor(VA)==log){
- if(ptype(C1,VA)!=2||mydeg(C1,VA)==1&&mycoef(C1,0,VA)==0){
- QT=args(VA)[0]^(red(C1/VA)*X);
- if(C0!=0) QT*=exp(C0);
- break;
- }
- }
- }
- R+=intpoly(Q,X|exp=C1)*QT;
- }else if(CV[1]==pow)
- R+=intpoly(Q,X|pow=CV[2])*x^CV[2];
- else if(CV[1]==log){
- for(Deg=mydeg(P,CV[0]);Deg>0; Deg--){
- Q=mycoef(P,Deg,CV[0]);
- TR=intpoly(Q,X|log=[C1,C0,Deg]);
- for(I=0;TR!=[];I++,TR=cdr(TR)){
- if(I==Deg) R+=car(TR)-subst(car(TR),X,0);
- else R+=car(TR)*CV[0]^(Deg-I);
- }
- }
- }
- P=mycoef(P,0,CV[0]);
- }
- R+=intpoly(P,X);
- return R;
- }
- }
- for(K=0,VX=[],VT=Var;VT!=[];VT=cdr(VT)){ /* contain only both pow and trig */
- VTT=car(VT);
- if(findin(VTT[1],[cos,sin,tan])>=0){
- if(ptype(VTT[2],X)!=2||mydeg(VTT[2],X)!=1) break;
- VX=cons(VTT,VX);
- }else if(VTT[1]==pow) K=1;
- else break;
- }
- if(VT==[]&&K==1&&VX!=[]){
- D=VX[0][2];
- if(VX[0][1]==tan) D*=2;
- for(VT=cdr(VX);VT!=[];VT=cdr(VT)){
- K=VT[0][2]/D;
- if(VT[0][1]==tan) K*=2;
- if(type(K)!=1||ntype(K)!=0) break;
- D/=dn(K);
- }
- if(VT==[]){
- Y=makenewv([P,VAR]|var=x);
- for(Q=P,VT=VX;VT!=[];VT=cdr(VT)){
- VTT=car(VT);
- if(VTT[1]==cos||VTT[1]==sin){
- VV=trig2exp(VTT[0],X|inv=cos(D));
- VV=subst(VV,cos(D),(1-Y^2)/(1+Y^2),sin(D),2*Y/(Y^2+1));
- }else if(VTT[1]==tan){
- VV=trig2exp(VTT[0],X|inv=tan(D/2));
- VV=subst(VV,tan(D),Y);
- }
- Q=subst(Q,VTT[0],VV);
- }
- Q*=2/(Y^2+1);
- if(diff(Q,X)==0){
- if(Dumb==-1) mycat([Y,"=",tan(D/2)]);
- else if(type(Dumb)==5) Dumb[0]=cons([[0,Y,tan(D/2)]],Dumb[0]);
- R=integrate(Q,Y|dumb=Dumb2,var=cons(X,Var));
- if(R!=[]){
- if(Dumb==-1) mycat(["->",R]);
- else if(type(Dumb)==5) Dumb[0]=cons([[1,R]],Dumb[0]);
- return sqrt2rat(subst(R,Y,tan(D/2))|mult=1);
- }
- }
- }
- }
- if(T>65||iand(F,8)){ /* rational for functions or tan */
- if(findin(X,vars(P))<0){
- for(XV=XE=0,VT=Var;VT!=[];VT=cdr(VT)){
- VTT=car(VT);
- if(mydeg(VTT[2],X)!=1) break;
- if(VTT[1]==cos||VTT[1]==sin||VTT[1]==tan){
- K=red(VTT[2]/X);
- if(type(K)>1||ntype(K)>0) break;
- if(XV==0) XV=K;
- else XV/=dn(K/XV);
- if(VTT[1]==tan) P=red(subst(P,VTT[0],sin(VTT[2])/cos(VTT[2])));
- }else if(VTT[1]==exp){
- K=red(VTT[2]/X);
- if(type(K)>1||ntype(K)>0) break;
- if(XE==0) XE=K;
- else XE/=dn(K/XE);
- }else break;
- }
- if(VT==[]&&XE*XV==0){
- if(XE){
- if(XE<0) XE=-XE;
- Y=makenewv([P,VAR]|var=x);
- for(F=0,VT=Var;VT!=[];VT=cdr(VT),F++){
- VTT=car(VT);C=red(VTT[2]/X/XE);
- P=subst(P,VTT[0],Y^C);
- if(!F){
- if(Dumb==-1) mycat([Y^C,"=",VTT[0]]);
- else if(type(Dumb)==5) Dumb[0]=cons([[0,Y^C,VTT[0]]],Dumb[0]);
- }
- }
- P/=XE*Y;
- Q=integrate(P,Y|dumb=Dumb3,var=cons(X,VAR));
- if(Q==[]) return [];
- Q=subst(Q,Y,exp(XE*X));
- Q=trig2exp(Q,X);
- if(Dumb==-1) mycat(["->",Q]);
- else if(type(Dumb)==5) Dumb[0]=cons([[1,Q]],Dumb[0]);
- return Q;
- }
- P=trig2exp(nm(P),X|inv=cos(XV*X))/trig2exp(dn(P),X|inv=cos(XV*X));
- Y=makenewv([P,VAR]|var=x);
- Q=red(subst(P,sin(XV*X),Y*cos(XV*X)));
- Q=substblock(nm(Q),cos(XV*X),cos(XV*X)^2,1/(Y^2+1))/
- (substblock(dn(Q),cos(XV*X),cos(XV*X)^2,1/(Y^2+1))*(Y^2+1));
- Q=red(Q);
- if(ptype(Q,X)<2){
- XV*=2;P=Q;
- }else{
- P=subst(P,cos(XV*X),(1-Y^2)/(1+Y^2),sin(XV*X),2*Y/(1+Y^2))*2/K/(1+Y^2);
- P=red(P);
- }
- if(Dumb==-1){
- mycat([Y,"=",tan(XV*X/2)]);
- mycat(["integrate",P]);
- }else if(type(Dumb)==5) Dumb[0]=cons([[Y,P]],cons([[0,Y,tan(XV*X/2)]],Dumb[0]));
- R=intpoly(P,Y|dumb=Dumb);
- if(R==[]) return R;
- if(Dumb==-1) mycat(["->",R]);
- else if(type(Dumb)==5) Dumb[0]=cons([[1,R]],Dumb[0]);
- for(Log=1,K=0,Var=pfargs(RR=R,Y);Var!=[];Var=cdr(Var)){
- VTT=car(Var);
- if(VTT[1]==log){
- C=mycoef(R,1,VTT[0]);
- VT2=VTT[2];
- if(K==0){
- K=C;Log=VT2;
- if(K<0){
- K=-K;Log=1/Log;
- }
- }else{
- if((V=red(C/K))<0){
- VT2=1/VT2;V=-V;
- }
- if(type(V)>1||ntype(V)>0){
- Log=1;break;
- }
- if(isint(V)) Log*=VT2^V;
- else{
- D=dn(V);K/=D;
- Log=Log^D*VT2^nm(V);
- }
- }
- RR=mycoef(RR,0,VTT[0]);
- }
- }
- if(Log!=1){
- R=RR;
- if(type(Dumb)==5){
- if(RR) Dumb[0]=cons([[1,K*log(Log),RR]],Dumb[0]);
- else Dumb[0]=cons([[1,K*log(Log)]],Dumb[0]);
- }
- Log=red(subst(red(Log),Y,sin(XV*X/2)/cos(XV*X/2)));
- Log=fshorter(Log,X|log=1); /* log(cos(2*x)+1)=-2*log(cos(x)) */
- Nm=fctr(nm(Log));
- for(T=[];Nm!=[];Nm=cdr(Nm)){
- if(ptype(car(Nm)[0],X)>1) T=cons(car(Nm),T);
- }
- Nm=fctr(dn(Log));
- for(;Nm!=[];Nm=cdr(Nm)){
- if(ptype(car(Nm)[0],X)>1) T=cons([car(Nm)[0],-car(Nm)[1]],T);
- }
- for(I=0,Nm=T;T!=[];T=cdr(T)){
- if(I=0) I=abs(car(T)[1]);
- else I=igcd(I,car(T)[1]);
- }
- for(Log=1;Nm!=[];Nm=cdr(Nm)) Log*=car(Nm)[0]^(car(Nm)[1]/I);
- K*=I;
- if(cmpsimple(nm(Log),dn(Log))<0){
- K=-K;Log=red(1/Log);
- }
- Log=K*log(Log);
- if(type(Dumb)==5){
- if(RR) Dumb[0]=cons([[1,Log,RR]],Dumb[0]);
- else Dumb[0]=cons([[1,Log]],Dumb[0]);
- }
- }else Log=0;
- for(Atan=0,Var=pfargs(RR=R,Y);Var!=[];Var=cdr(Var)){
- VTT=car(Var);
- if(VTT[1]==atan){
- W=subst(VTT[2],Y,sin(XV*X/2)/cos(XV*X/2));
- W=trig2exp(W,X|inv=1);
- V2=funargs(dn(W));
- if(type(V2)==4&&length(V2)==2){
- V3=V2[1]*mycoef(R,1,VTT[0]);
- Z=0;
- if(V2[0]==cos)
- Z=red(W*cos(V2[1])/sin(V2[1]));
- else if(V2[0]==sin){
- Z=red(W*sin(V2[1])/cos(V2[1]));
- V3=-V3;
- }
- if(Z==1){
- Atan+=V3;W=0;
- }else if(Z==-1){
- Atan-=V3;W=0;
- }
- }
- R0=mycoef(R,0,VTT[0]);
- if(W!=0) Atan+=subst(R-R0,VTT[0],atan(W)); /* atan(W); */
- R=R0;
- }
- }
- if(R!=0){
- R=subst(R,Y,sin(XV*X/2)/cos(XV*X/2));
- R=red(R);
- R=trig2exp(nm(R),X|inv=1)/trig2exp(dn(R),X|inv=1);
- }
- if(type(Dumb)==5){
- F=0;WL=[];
- if(R){
- WL=cons(R,WL);
- F++;
- }
- if(Atan){
- WL=cons(Atan,WL);
- F++;
- }
- if(Log){
- WL=cons(Log,WL);
- F++;
- }
- WL=cons(1,WL);
- if(F>1) Dumb[0]=cons([WL],Dumb[0]);
- }
- R=red(R+Log+Atan);
- if(Dumb==-1) mycat(["->",R]);
- else if(type(Dumb)==5) Dumb[0]=cons([[1,R]],Dumb[0]);
- return fshorter(R,X);
- }
- }
- }
- VT=pfargs(Q=P,X|level=1);
- V=(iand(ptype(P,X),7)<3)?[X]:[];
- for(;VT!=[];VT=cdr(VT))
- if(ptype(P,car(VT)[0])<3) V=cons(car(VT)[0],V);
- if(length(V)>0){ /* 1/x+tan(x)+... etc.: sums */
- for(R=0;V!=[];V=cdr(V)){
- T=mycoef(Q,0,car(V));
- W[0]=[];
- S=integrate(TD=red(Q-T),X|dumb=D2,mult=Mul,exe=1);
- if(S==[]) continue;
- if(type(Dumb)==5){
- WL=0;
- if(T!=0) WL=[[X,TD,T]];
- if(R!=0) WL=cons([1,R],WL);
- if(WL) Dumb[0]=cons(WL,Dumb[0]);
- TD=W[0];
- if(R!=0||T!=0){
- for(W0=[],TD=reverse(TD);TD!=[];TD=cdr(TD)){
- if(car(TD)[0][0]){
- WL=(!T)?[]:[[X,T]];
- WL=append(car(TD),WL);
- if(R!=0) WL=cons([1,R],WL);
- }else WL=car(TD);
- Dumb[0]=cons(WL,Dumb[0]);
- }
- }else Dumb[0]=append(TD,Dumb[0]);
- }
- R+=S;Q=T;
- if(!Q) return red(R);
- }
- W[0]=[];
- if(P!=Q&&type(S=integrate(Q,X|dumb=D2,mult=Mul))<4){
- RR=red(R+S);
- if(type(Dumb)==5){
- TD=W[0];
- for(W0=[],TD=reverse(TD);TD!=[];TD=cdr(TD)){
- if(car(TD)[0][0]){
- WL=cons([1,R],car(TD));
- Dumb[0]=cons(WL,Dumb[0]);
- }
- else Dumb[0]=append(TD,Dumb[0]);
- }
- if(nmono(R)+nmono(S)!=nmono(RR)) Dumb[0]=cons([[1,R,S]],Dumb[0]);
- }
- return RR;
- }
- }
- if(Dumb!=1) mycat(SM);
- return [];
-}
-
-def fimag(P)
-{
- for(V=vars(P);V!=[];V=cdr(V)){
- Q=[];
- if(vtype(VF=car(V))==2){
- VAA=args(VF);
- if(VAA==[]) continue;
- VA=sqrt2rat(VAA[0]);
- if(functor(VF)==exp){
- if(imag(VA)!=0){
- R=(real(VA)!=0)?exp(real(VA)):1;
- Q=subst(P,VF,R*(cos(imag(VA))+sin(imag(VA))*@i));
- }
- }else if(functor(VF)==pow){
- VA=sqrt2rat(VAA[1]);
- if(imag(VA)!=0){
- R=(real(VA)!=0)?VAA[0]^(real(VA)):1;
- L=(VAA[0]!=@e)?log(VAA[0]):1;
- Q=subst(P,VAA[0]^(VAA[1]),R*(cos(L*imag(VA))+sin(L*imag(VA))*@i));
- }else if(VAA[1]!=(V0=fimag(VA)))
- Q=subst(P,VAA[0]^(VAA[1]),VAA[0]^(V0));
- }
- V0=VA;
- if(length(VAA)==1&&(VAA[0]!=V0||VA!=(V0=fimag(VA))))
- Q=subst(P,VF,subst(VF,VAA[0],V0));
- }
- if(Q!=[]&&P!=Q){
- P=Q;V=cons(0,vars(P));
- }
- }
- return P;
-}
-
-
-def trig2exp(P,X)
-{
- if(iand(ptype(P,X),128)){
- OL=getopt();
- Nm=trig2exp(nm(P),X|option_list=OL);
- Dn=trig2exp(dn(P),X|option_list=OL);
- R=red(Nm/Dn);
- if(getopt(arc)==1) return sqrt2rat(R);
- }
- if((Inv=getopt(inv))==1||type(Inv)==2){
- for(VT=T=vars(P);T!=[];T=cdr(T)){
- if(findin(functor(car(T)),[cos,sin,tan])>=0){
- P=trig2exp(P,X);VT=vars(P);break;
- }
- }
- for(;VT!=[];VT=cdr(VT)){
- if(functor(CT=car(VT))==exp){
- if((Re=real(args(CT)[0]))!=0){
- if(isint(Re)) S=@e^Re;
- else S=exp(Re);
- }else S=1;
- if((Im=imag(args(CT)[0]))!=0){
- Q=nm(Im);Q=mycoef(Q,mydeg(Q,X),X);
- if(-Q>Q) S*=cos(-Im)-@i*sin(-Im);
- else S*=cos(Im)+@i*sin(Im);
- }
- P=subst(P,CT,S);
- }
- }
- P=red(P);
- U=vars(Inv);
- if(length(U)!=1||((F=functor(car(U)))!=sin&&F!=cos&&F!=tan)) return P;
- XX=args(car(U))[0];
- if(mydeg(XX,X)!=1) return P;
- if(!isvar(XX)) P=subst(P,X,(X-mycoef(XX,0,X))/mycoef(XX,1,X));
- for(VT=vars(P);VT!=[];VT=cdr(VT)){
- if(vtype(CT=car(VT))<2) continue;
- TX=args(CT)[0];
- if(mydeg(TX,X)!=1) continue;
- if(!isint(C1=mycoef(TX,1,X))) continue;
- if((C0=mycoef(TX,0,X))==0){
- CC=1;CS=0;
- }else if(vars(C0)==[@pi]){
- CC=myval(cos(C0));
- if(CC!=0&&type(CC)==1&&ntype(CC)!=0){
- CC=cos(C0);CS=sin(C0);
- }else CS=myval(sin(C0));
- }else{
- CC=cos(C0);CS=sin(C0);
- }
- K=C1;
- if(K<0) K=-K;
- for(CC1=0,I=K;I>=0;I-=2) CC1+=(-1)^((K-I)/2)*binom(K,I)*cos(X)^I*sin(X)^(K-I);
- for(CS1=0,I=K-1;I>=0;I-=2) CS1+=(-1)^((K-I-1)/2)*binom(K,I)*cos(X)^I*sin(X)^(K-I);
- if(C1<0) CS1=-CS1;
- if((TF=functor(CT))==cos) P=subst(P,cos(TX),CC1*CC-CS1*CS);
- else if(TF==sin) P=subst(P,sin(TX),CS1*CC+CC1*CS);
- }
- if(F==sin)
- P=substblock(P,cos(X),cos(X)^2,1-sin(X)^2);
- else{
- P=substblock(P,sin(X),sin(X)^2,1-cos(X)^2);
- if(F==tan){
- P=subst(P,sin(X),cos(X)*tan(X));
- P=substblock(P,cos(X),cos(X)^2,1/(tan(X)^2+1));
- }
- }
- if(!isvar(XX)) P=subst(P,X,XX);
-
- if(getopt(arc)==1){
- for(VT=vars(P);VT!=[];VT=cdr(VT)){
- FA=funargs(car(VT));
- if(type(FA)==4&&(FA[0]==cos||FA[0]==sin)&&ptype(FA[1],X)>60){
- VTT=vars(FA[1]);
- if(type(FA[1])!=2||length(VTT)!=1) break;
- FB=funargs(VTT[0]);
- if(type(FB)!=4||(FF=findin(FB[0],[asin,acos,atan]))<0) break;
- if(!isint(2*(C=mycoef(FA[1],1,VTT[0])))||mycoef(FA[1],0,VTT[0])!=0) break;
- if(C==1/2){
- if(FF==1){
- U=(FA[0]==cos)?(1+FB[1])/2:(1-FB[1])/2;
- P=subst(P,car(VT),red(U)^(1/2));
- }else if(FF==2){
- if(FA[0]==sin){
- FB1=red(FB[1]);
- Nm=nm(FB1);CC=fctr(Nm)[0][0];Dn=dn(FB1);
- if(CC<0) CC=-CC;
- Nm/=CC;Dn/=CC;
- NN=Nm^2+Dn^2;
- P=subst(P,car(VT),((NN)^(1/2)-Dn)/Nm*cos(FA[1]));
- }
- }
- P=red(P);
- }else if(C==1){
- if(FF==1){
- if(FA[0]==cos) P=subst(P,car(VT),FB[1]);
- else P=subst(P,car(VT),(1-FB[1])^(1/2));
- }else if(FF==0){
- if(FA[0]==sin) P=subst(P,car(VT),FB[1]);
- else P=subst(P,car(VT),(1-FB[1])^(1/2));
- }
- P=red(P);
- }
- }
- }
- P=sqrt2rat(P);
- }
- return red(P);
- }
- Var=pfargs(P,X);
- for(VT=Var;VT!=[];VT=cdr(VT)){
- CT=car(VT);
- if(CT[1]==cos)
- P=subst(P,CT[0],exp(CT[2]*@i)/2+exp(-CT[2]*@i)/2);
- else if(CT[1]==sin)
- P=subst(P,CT[0],exp(-CT[2]*@i)*@i/2-exp(CT[2]*@i)*@i/2);
- else if (CT[1]==tan)
- P=subst(P,CT[0],(exp(-CT[2]*@i)*@i-exp(CT[2]*@i)*@i)/(exp(CT[2]*@i)+exp(-CT[2]*@i)));
- else if(CT[1]==pow){
- if(ptype(CT[2],X)>1) continue;
- if(CT[2]==@e) P=subst(P,CT[0],exp(CT[3]));
- else P=subst(P,CT[0],exp(log(CT[2])*exp(CT[3])));
- }
- }
- P=red(P);
- for(PP=1,Lp=(dn(P)==1)?1:0;Lp<2;Lp++){
- PP=1/PP;
- U=(Lp==0)?dn(P):nm(P);
- if(U==1) continue;
- Var=vars(U);
- for(R=[],VT=Var;VT!=[];VT=cdr(VT))
- if(functor(car(VT))==exp) R=cons(car(VT),R);
- RR=os_md.terms(U,R);
- for(Q=0,RRT=RR;RRT!=[];RRT=cdr(RRT)){
- for(S=0,CT=cdr(car(RRT)),CR=R,UT=U;CR!=[];CR=cdr(CR),CT=cdr(CT)){
- UT=mycoef(UT,car(CT),car(CR));S+=car(CT)*args(car(CR))[0];
- }
- if(S==0) Q+=UT;
- else Q+=UT*exp(S);
- }
- PP*=Q;
- }
- return PP;
-}
-
-def powsum(N)
-{
- if (N < 0) return 0;
- if (N == 0) return x;
- P = intpoly(N*powsum(N-1),x);
- C = subst(P,x,1);
- return P+(1-C)*x;
-}
-
-def bernoulli(N)
-{
- return mydiff(powsum(N),x) - N*x^(N-1);
-}
-
-/* linfrac01([x,y]) */
-/* linfrac01(newvect(10,[0,1,2,3,4,5,6,7,8,9]) */
-/* 0:x=0, 1:x=y, 2:x=1, 3:y=0, 4:y=1, 5:x=\infty, 6:y=\infty, 7:x=y=0, 8:x=y=1, 9:x=y=\infty
- 10:y_2=0, 11:y_2=x, 12:y_2=y, 13: y_2=1, 14: y_2=\infty
- 15:y_3=0, 16:y_3=x, 17:y_3=y, 18: y_3=y_2, 19: y_3=1, 20:y_3=\infty
- X[0],X[11],X[2],X[10],X[13],X[5],X[14],X[7],X[8],X[9],
- X[3],X[1],X[12],X[4],X[6]
-
- T=0 (x_2,x_1,x_3,x_4,...)
- T=-j (x_1,x_2,..,x_{j-1},x_{j+1},x_j,x_{j+2},...)
- T=1 (1-x_1,1-x_2,1-x_3,1-x_4,...)
- T=2 (1/x_1,1/x_2,1/x_3,1/x_4,...)
- T=3 (x_1,x_1/x_2,x_1/x_3,x_1/x_4,...)
-*/
-
-def lft01(X,T)
-{
- MX=getopt();
- if(type(X)==4){
- K=length(X);
- if(K>=1) D=1;
- }
- if(type(X)==5){
- K=length(X);
- for(J=5, F=K-10; F>0; F-=J++);
- if(F==0) D=2;
- }
- if(D==0) return 0;
- if(T==0){ /* x <-> y */
- if(D==1){
- R=cdr(X); R=cdr(R);
- R=cons(X[0],R);
- return cons(X[1],R);
- }
- R=newvect(K,[X[3],X[1],X[4],X[0],X[2],X[6],X[5]]);
- for(I=7;I<K;I++) R[I]=X[I];
- for(I=11,J=5; I<K; I+=J++){
- R[I]=X[I+1]; R[I+1]=X[I];
- }
- return R;
- }
- if(T==1){
- if(D==1){
- for(R=[];X!=[];X=cdr(X)) R=cons(1-car(X),R);
- return reverse(R);
- }
- R=newvect(K,[X[2],X[1],X[0],X[4],X[3],X[5],X[6],X[8],X[7],X[9]]);
- for(I=11;I<K;I++) R[I]=X[I];
- for(I=10, J=5; I<K; I+=J++){
- R[I]=X[I+J-2]; R[I+J-2]=X[I];
- }
- return R;
- }
- if(T==2){
- if(D==1){
- for(R=[]; X!=[]; X=cdr(X)) R=cons(red(1/car(X)),R);
- return reverse(R);
- }
- R=newvect(K,[X[5],X[1],X[2],X[6],X[4],X[0],X[3],X[9],X[8],X[7]]);
- for(I=11;I<K;I++) R[I]=X[I];
- for(I=10,J=5; I<K; I+=J++){
- R[I]=X[I+J-1]; R[I+J-1]=X[I];
- }
- return R;
- }
- if(T==3){
- if(D==1){
- T=car(X);
- for(R=[T],X=cdr(X); X!=[]; X=cdr(X))
- R=cons(red(T/car(X)),R);
- return reverse(R);
- }
- R=newvect(K,[X[7],X[4],X[2],X[6],X[1],X[9],X[3],X[0],X[8],X[5]]);
- for(I=10,J=5; I<K; I+=J++){
- R[I]=X[I+J-1]; R[I+1]=X[I+J-2]; R[I+J-2]=X[I+1]; R[I+J-1]=X[I];
- }
- return R;
- }
- if(T==-1){
- if(D==1){
- return append([X[1],X[2],X[0]],cdr(cdr(cdr(X))));
- }
- R=newvect(K,[X[0],X[11],X[2],X[10],X[13],X[5],X[14],X[7],X[8],X[9],
- X[3],X[1],X[12],X[4],X[6]]);
- for(I=11;I<K;I++) R[I]=X[I];
- for(I=17,J=5; I<K; I+=J++){
- R[I]=X[I+1]; R[I+1]=X[I];
- }
- return R;
- }
- if(T<0){
- if(D==1){
- for(R=[],I=0; X!=[]; X=cdr(X),I--){
- if(I==T){
- R=cons(X[1],R);
- R=cons(X[0],R);
- X=cdr(X);
- }
- else R=cons(car(X),R);
- }
- return reverse(R);
- }
- T=3-T;
- R=newvect(K);
- for(I=0;I<K;I++) R[I]=X[I];
- for(I=10,J=5;J<T;I+=J++);
- for(II=0; II<J-2; II++){
- R[I]=X[I+J]; R[I+J]=R[I];
- }
- for( ; II<J; II++){
- R[I]=X[I+J+1]; R[I+J+1]=X[I];
- }
- return R;
- }
- return 0;
-}
-
-def linfrac01(X)
-{
- if(type(X)==4) K=length(X)-2;
- else if(type(X)==5){
- L=length(X);
- for(K=0,I=10,J=5; I<L; K++,I+=J++);
- if(I!=L) return 0;
- }
- if(K>3 && getopt(over)!=1) return(-1);
- II=(K==-1)?3:4;
- for(CC=C=1,L=[X]; C!=0; CC+=C){
- for(F=C,C=0,R=L; F>0; R=cdr(R), F--){
- P=car(R);
- for(I=-K; I<II; I++){
- S=lft01(P,I);
- if(findin(S,L) < 0){
- C++; L=cons(S,L);
- }
- }
- }
- }
- return L;
-}
-
-
-def varargs(P)
-{
- if((All=getopt(all))!=1&&All!=2) All=0;
- V=vars(P);
- for(Arg=FC=[];V!=[];V=cdr(V)){
- if(vtype(CV=car(V))==0&&All!=0){
- Arg=lsort([CV],Arg,0);
- }
- if(vtype(CV)!=2) continue;
- if(findin(F=functor(CV),FC)<0) FC=cons(F,FC);
- for(AT=vars(args(CV));AT!=[];AT=cdr(AT)){
- if(vtype(X=car(AT))<2){
- if(findin(X,Arg)<0) Arg=cons(X,Arg);
- }else if(vtype(X)==2){
- R=varargs(X);
- if(R[1]!=[]){
- Arg=lsort(R[1],Arg,0);
- FC=lsort(R[0],FC,0);
- }
- }
- }
- }
- Arg=reverse(Arg);
- return (All==2)?Arg:[reverse(FC),Arg];
-}
-
-def pfargs(P,X)
-{
- if(type(L=getopt(level))!=1) L=0;
- for(Var=[],V=vars(P);V!=[];V=cdr(V)){
- if(vtype(car(V))==2){
- VT=funargs(car(V));
- if(length(VT)>1){
- if(L<2 &&(ptype(VT[1],X)>1 || (length(VT)>2 && ptype(VT[2],X)>1)))
- Var=cons(cons(car(V),VT),Var);
- if(L!=1 && (R=pfargs(VT[1],X|level=L-1))!=[]) Var=append(R,Var);
- }
- }
- }
- return reverse(Var);
-}
-
-def ptype(P,L)
-{
- if((T=type(P))<2 || T>3) return T;
- if(type(L)!=4) L=[L];
- F=0;
- if(lsort(L,varargs(dn(P))[1],2)!=[]) F=128;
- if(lsort(L,varargs(nm(P))[1],2)!=[]) F+=64;
- if(lsort(L,vars(dn(P)),2)!=[]) return F+3;
- return (lsort(L,vars(nm(P)),2)==[])?(F+1):(F+2);
-}
-
-def nthmodp(X,N,P)
-{
- X=X%P;
- for(Z=1;;){
- if((W=iand(N,1))==1) Z=(Z*X)%P;
- if((N=(N-W)/2)<=0) return Z;
- X=irem(X*X,P);
- }
-}
-
-def issquaremodp(X,P)
-{
- N=getopt(power);
- if(!isint(N)) N=2;
- if(P<=1 || !isint(P) || !pari(ispsp,P) || !isint(X) || !isint(N) || N<1){
- errno(0);
- return -2;
- }
- M=(P-1)/igcd(N,P-1);
- if((X%=P) == 0) return 0;
- if(X==1 || M==P-1) return 1;
- return (nthmodp(X,M,P)==1)?1:-1;
-}
-
-def iscoef(P,F)
-{
- if(P==0) return 1;
- if(type(P)==1) return F(P);
- if(type(P)==2) {
- X=var(P);
- for(I=deg(P,X); I>=0; I--){
- if(!iscoef(mycoef(P,I,X),F)) return 0;
- }
- }else if(type(P)==3){
- if(!iscoef(nm(P),F)||!iscoef(dn(P),F)) return 0;
- }else if(type(P)==4){
- for(;P!=[];P=cdr(P)) if(!iscoef(P,F)) return 0;
- }else if(type(P)>4 && type(P)<7) return iscoef(m2l(PP),F);
- else return 0;
- return 1;
-}
-
-def rootmodp(X,P)
-{
- X%=P;
- if(X==0) return [0];
- N=getopt(power);
- PP=pari(factor,P);
- P0=PP[0][0]; P1=PP[0][1];
- P2=pari(phi,P);
- if(!isint(N)) N=2;
- N%=P2;
- if(P0==2 || size(PP)[0]>1){
- for(I=1,R=[]; I<P2; I++)
- if(nthmodp(I,N,P)==X) R=cons(I,R);
- return qsort(R);
- }
- Y=primroot(P);
- if(Y==0) return 0;
- Z=nthmodp(Y,N,P);
- G=igcd(N,P2);
- P3=P2/G;
- for(I=0, W=1; I<P3;I++){
- if(W==X) break;
- W=(W*Z)%P;
- }
- if(I==P3) return [];
- W=nthmodp(Y,I,P);
- Z=nthmodp(Y,P3,P);
- for(I=0,R=[];;){
- R=cons(W,R);
- if(++I>=G) break;
- W=(W*Z)%P;
- }
- return qsort(R);
-}
-
-def primroot(P)
-{
- PP=pari(factor,P);
- P0=PP[0][0]; P1=PP[0][1];
- S=size(PP);
- if(S[0]>1 || !isint(P) || P0<=2){
- print("Not odd prime(power)!");
- return 0;
- }
- if(isint(Ind=getopt(ind))){
- Ind %= P;
- if(Ind<=0 || igcd(Ind,P)!=1 || (Z=primroot(P))==0){
- print("Not exist!");
- return 0;
- }
- P2=P0^(P1-1)*(P0-1);
- for(I=1,S=1; I<P2; I++)
- if((S = (S*Z)%P) == Ind) return I;
- return 0;
- }
- if(getopt(all)==1){
- I=primroot(P);
- P2=P0^(P1-1)*(P0-1);
- for(L=[],J=1; J<P2; J++){
- if(P1>1 && igcd(P0,J)!=1) continue;
- if(igcd(P0-1,J)!=1) continue;
- L=cons(nthmodp(I,J,P),L);
- }
- return qsort(L);
- }
- if(PP[0][1]>1){
- I=primroot(P0);
- P2=P0^(P1-2)*(P0-1);
- if(nthmodp(I,P2,P)==1) I+=P0;
- return I;
- }
- F=pari(factor,P-1);
- SF=size(F)[0];
- for(I=2; I<P; I++){
- for(J=0; J<SF; J++)
- if(nthmodp(I,(P-1)/F[J][0],P)==1) break;
- if(J==SF) return I;
- }
-}
-
-def rabin(P,X)
-{
- for(M=0,Q=P-1;iand(Q,1)==0;M++,Q/=2);
- Z=nthmodp(X,Q,P);
- for(N=M;M>0&&Z!=1&&Z!=P-1;M--,Z=(Z*Z)%P);
- return (M<N&&(M==0||Z==1))?0:1;
-}
-
-def powprimroot(P,N)
-{
- if(P<3) P=3;
- FE=getopt(exp);
- if(FE!=1) FE=0;
- if((Log=getopt(log))==1||Log==2) FE=-1;
- else if(Log==3){
- FE=-2;
- for(PP=1, L0=["$r$","$p/a$"];;){
- PP=pari(nextprime,PP+1);
- if(PP>=P) break;
- L0=cons(PP, L0);
- }
- L0=reverse(L0);
- }
- if(FE==0) All=getopt(all);
- for(I=0, PP=P, LL=[]; I<N; I++,PP++){
- PP=pari(nextprime,PP);
- if(All==1){
- PR=primroot(PP|all=1);
- LL=cons(cons(PP,PR),LL);
- continue;
- }
- PR=primroot(PP);
- if(FE==-2){ /* log=3 */
- LT=cdr(L0);LT=cdr(L0);
- for(L=[PP];LT!=[];LT=cdr(LT))
- L=cons(primroot(PP|ind=car(LT)),L);
- LL=cons(reverse(L),LL);
- if(I<N-1) L0=append(L0,[PP]);
- }else if(FE){
- for(J=1, L=[PP], K=1; J<PP; J++){
- if(FE==-1){ /* log=1,2 */
- K=primroot(PP|ind=J);
- if(K==0 && Log==2) K=PP-1;
- }
- else K=(K*PR)%PP; /* exp=1 */
- L=cons(K,L);
- }
- LL=cons(reverse(L),LL);
- }else
- LL=cons([PP,PR],LL); /* default */
- }
- LL=reverse(LL);
- if(!FE) return LL;
- PP--;
- if(FE==-2) return append(LL,[L0]);
- for(I=1,L=["$p$"];I<PP; I++) L=cons(I,L);
- return cons(reverse(L),LL);
-}
-
-def ntable(F,II,D)
-{
- F=f2df(F|opt=-1);
- Df=getopt(dif);
- Str=getopt(str);
- if(Df!=1) Df=0;
- L=[];
- if(type(D)==4){
- if(type(II[0])==4){
- T1=II[0][1]-II[0][0];T2=II[1][1]-II[1][0];
- for(L0=[],I=0;I<D[0];I++){
- for(R=[],J=0;J<D[1];J++)
- R=cons(myf2eval(F,II[0][0]+I*T1/D[0],II[1][0]+J*T2/D[1]),R);
- L=cons(reverse(R),L);L0=cons(II[0][0]+I*T1/D[0],L0);
- }
- }else{
- for(T=II[1]-II[0],L0=[],I=0;I<D[0];I++){
- for(R=[],J=0;J<D[1];J++)
- R=cons(myfdeval(F,II[0]+I*T/D[0]+J*T/D[0]/D[1]),R);
- L=cons(reverse(R),L);L0=cons(II[0]+I*T/D[0],L0);
- }
- }
- L=reverse(L);L0=reverse(L0);
- if(type(Str)==4){
- L0=mtransbys(os_md.sint,L0,[Str[0]]|str=1,zero=0);
- L=mtransbys(os_md.sint,L,[Str[1]]|str=1,zero=0);
- if(Df==1){
- for(DT=[],RT=L,I=0;RT!=[];){
- for(LT=[],TT=car(RT);TT!=[];TT=cdr(TT)){
- VV=car(TT);
- if((J=str_char(VV,0,"."))>=0){
- if(J==0) VV=str_cut(VV,1,10000);
- else VV=str_cut(VV,0,J-1)+str_cut(VV,J+1,10000);
- }
- V1=eval_str(VV);
- if(I++) LT=cons(V1-V0,LT);
- V0=V1;
- }
- DT=cons(LT,DT);
- if((RT=cdr(RT))==[]){
- VE=rint(myfdeval(F,II[1])*10^Str[1]);
- DT=cons([VE-V0],DT);
- }
- }
- for(I=0,D=[],TT=DT;TT!=[];TT=cdr(TT)){
- if(!I++) V=car(TT)[0];
- else{
- T1=reverse(cons(V,car(TT)));
- V=car(T1);
- if(length(TT)>1) T1=cdr(T1);
- D=cons(T1,D);
- }
- }
- for(DD=[],TT=D;TT!=[];TT=cdr(TT))
- DD=cons([os_md.lmin(car(TT)),os_md.lmax(car(TT))],DD);
- DD=reverse(DD);
- L=lsort(L,DD,"append");
- }
- }
- L=lsort(L,L0,"cons");
- if(type(Top=getopt(top))==4||getopt(TeX)==1){
- if(type(Top)==4){
- K=length(L[0])-length(Top);
- if(K>0&&K<4){
- if(K>1){
- Top=append(Top,["",""]);
- K-=2;
- }
- if(K) Top=cons("",Top);
- }
- L=cons(Top,L);
- }
- if(type(H=getopt(hline))!=4) H=[0,1,z];
- if(type(V=getopt(vline))!=4) V=[0,1,(DF)?z-2:z];
- if(type(T=getopt(title))!=7) Out=ltotex(L|opt="tab",hline=H,vline=V);
- else Out=ltotex(L|opt="tab",hline=H,vline=V,title=T);
- if(Df) Out=str_subst(Out,"\\hline","\\cline{1-"+rtostr(length(L[0])-2)+"}");
- return Out;
- }
- return L;
- }
- for(L=[],I=0;I<=D;I++){
- X=II[0]+I*T/D;
- L=cons([X,myfdeval(F,X)],L);
- }
- if(Df==1){
- for(LD=[],LL=L;LL!=[];LL=cdr(LL)){
- if(LD==[]) LD=cons([car(LL)[0],car(LL)[1],0],LD);
- else LD=cons([car(LL)[0],car(LL)[1],abs(car(LL)[1]-car(LD)[1])],LD);
- }
- L=reverse(LD);
- }
- if(type(Str)==4){
- if(length(Str)==1) Str=[Str[0],Str[0]];
- if(Df==1 && length(Str)==2) Str=[Str[0],Str[1],Str[1]];
- for(S=Str,Str=[];S!=[];S=cdr(S)){
- if(type(car(S))!=4) Str=cons([car(S),3],Str);
- else Str=cons(car(S),Str);
- }
- Str=reverse(Str);
- for(LD=[],LL=L;LL!=[];LL=cdr(LL)){
- for(K=[],J=length(Str); --J>=0; )
- K=cons(sint(car(LL)[J],Str[J][0]|str=Str[J][1]),K);
- LD=cons(K,LD);
- }
- L=LD;
- }else
- L=reverse(L);
- if(type(M=getopt(mult))==1){
- Opt=[["opt","tab"],["vline",[[0,2+Df]]],["width",-M]];
- if(type(T=getopt(title))==7)
- Opt=cons(["title",T],Opt);
- if(type(Tp=getopt(top))==4)
- Opt=cons(["top",Tp],Opt);
- L=ltotex(L|option_list=Opt);
- }
- return L;
-}
-
-def distpoint(L)
-{
- L=m2l(L|flat=1);
- if(getopt(div)==5) Div=5;
- else Div=10;
- V=newvect(100/Div);
- for(LT=L,LL=[],N=0; LT!=[]; LT=cdr(LT)){
- if(type(K=car(LT))>1||K<0){
- N++; continue;
- }
- LL=cons(K,LL);
- T=idiv(K,Div);
- if(Div==10 && T>=9) T=9;
- else if(Div==5 && T>=19) T=19;
- V[T]++;
- }
- V=vtol(V);
- if((Opt=getopt(opt))=="data") return V;
- Title=getopt(title);
- OpList=[["opt","tab"]];
- if(type(Title=getopt(title)) == 7)
- OpList=cons(["title",Title],OpList);
- if(Opt=="average"){
- T=isMs()?["•½‹Ï“_","•W€•Î·","Å’á“_","Å‚“_","ŽóŒ±l”"]:
- ["average","deviation","min","max","examinees"];
- L=average(LL);
- L=[sint(L[0],1),sint(L[1],1),L[3],L[4],L[2]];
- if(N>0){
- T=append(T,[isMs()?"Œ‡ÈŽÒ":"absentees"]);L=append(L,[N]);
- }
- OpList=cons(["align","c"],OpList);
- return ltotex([T,L]|option_list=OpList);
- }
-
- if(getopt(opt)=="graph"){
- Mul=getopt(size);
- if(Div==5){
- V0=["00","05","10","15","20","25","30","35","40","45","50","55",
- "60","65","70","75","80","85","90","95"];
- if(type(Mul)!=4){
- Size = (TikZ)?[12,3,1/2,0.2]:[120,30,1/2,2];
- }
- }else{
- V0=["00-","10-","20-","30-","40-","50-","60-","70-","80-","90-"];
- if(type(Mul)!=4){
- Size = (TikZ)?[8,3,1/2,0.2]:[80,30,1/2,2];
- }
- }
- return ltotex([V,V0]|opt="graph",size=Size);
- }
- if(Div==5)
- V0=["00--04","05--09","10--14","15--19", "20--24", "25--29", "30--34", "35-39",
- "40--44", "45--49","50--54", "55--59","60--64", "65--69",
- "70--74", "75--79","80--84", "85--89","90--94", "95--100"];
- else
- V0=["00--09","10--19","20--29","30--39","40--49","50--59","60--69",
- "70--79","80--89","90--100"];
- Title=getopt(title);
- return ltotex([V0,V]|option_list=OpList);
-}
-
-def keyin(S)
-{
- print(S,2);
- purge_stdin();
- S=get_line();
- L=length(S=strtoascii(S));
- if(L==0) return "";
- return str_cut(S,0,L-2);
-}
-
-def init() {
- LS=["DIROUT","DVIOUTA","DVIOUTB","DVIOUTH","DVIOUTL","TeXLim","TeXEq","TikZ",
- "XYPrec","XYcm","Canvas"];
- if(!access(get_rootdir()+"/help/os_muldif.dvi")||!access(get_rootdir()+"/help/os_muldif.pdf"))
- mycat(["Put os_muldif.dvi and os_muldif.pdf in", get_rootdir()+(isMs()?"\\help.":"/help.")]);
- if(!isMs()){
- DIROUT="%HOME%/asir/tex";
- DVIOUTA=str_subst(DVIOUTA,[["\\","/"],[".bat",".sh"]],0);
- DVIOUTB=str_subst(DVIOUTB,[["\\","/"],[".bat",".sh"]],0);
- DVIOUTL=str_subst(DVIOUTL,[["\\","/"],[".bat",".sh"]],0);
- DVIOUTH="%ASIRROOT%/help/os_muldif.pdf";
- }
- Home=getenv("HOME");
- if(type(Home)!=7) Home="";
- for(Id=-7, F=Home; Id<-1;){
- G = F+"/.muldif";
- if(access(G)) Id = open_file(G);
- else Id++;
- if(Id==-6) F+="/asir";
- else if(Id==-5) F=get_rootdir();
- else if(Id==-4) F+="/bin";
- else if(Id==-3) F=get_rootdir()+"/lib-asir-contrib";
- }
- if(Id>=0){
- while((S=get_line(Id))!=0){
- if(type(P=str_str(S,LS))==4 && (P0=str_char(S,P[1]+4,"="))>0){
- if(P[0]<5){
- P0=str_chr(S,P0+1,"\"");
- if(P0>0){
- for(P1=P0;(P2=str_char(S,P1+1,"\""))>0; P1=P2);
- if(P1>P0+1){
- SS=str_cut(S,P0+1,P1-1);
- SS=str_subst(SS,["\\\\","\\\""],["\\","\""]);
- if(P[0]==0) DIROUT=SS;
- else if(P[0]==1) DVIOUTA=SS;
- else if(P[0]==2) DVIOUTB=SS;
- else if(P[0]==3) DVIOUTH=SS;
- else if(P[0]==4) DVIOUTL=SS;
- }
- }
- if(P0<0 || P1<P0+2) mycat(["Error! Definiton of", LS[P[0]],
- "in .muldif"]);
- }else{
- SV=eval_str(str_cut(S,P0+1,str_len(S)-1));
- if(P[0]==5) TeXLim=SV;
- else if(P[0]==6) TeXEq=SV;
- else if(P[0]==7) TikZ=SV;
- else if(P[0]==8) XYPrec=SV;
- else if(P[0]==9) XYcm=SV;
- else if(P[0]==10) Canvas=SV;
- }
- }
- }
- close_file(Id);
- }
- chkfun(1,0);
-}
-
-#ifdef USEMODULE
-endmodule;
-os_md.init()$
-#else
-init()$
-#endif
-
-end$
diff --git a/texmf-dist/scripts/ketcindy/ketlibC/ketcommon.h b/texmf-dist/scripts/ketcindy/ketlibC/ketcommon.h
deleted file mode 100644
index 27a5434f..00000000
--- a/texmf-dist/scripts/ketcindy/ketlibC/ketcommon.h
+++ /dev/null
@@ -1,2127 +0,0 @@
-//20180308 norm added
-
-int length1(double gdata[]){
- return floor(gdata[0]+0.5);
-}
-
-int length2(double gdata[][2]){
- return floor(gdata[0][0]+0.5);
-}
-
-int length3(double gdata[][3]){
- return floor(gdata[0][0]+0.5);
-}
-
-int length4(double gdata[][4]){
- return floor(gdata[0][0]+0.5);
-}
-
-int length5(double gdata[][5]){
- return floor(gdata[0][0]+0.5);
-}
-
-int length6(double gdata[][6]){
- return floor(gdata[0][0]+0.5);
-}
-
-int length2i(int gdata[][2]){
- return gdata[0][0];
-}
-
-void copyd(int from, int upto, double q[], double p[]){
- int i;
- for(i=from; i<=upto; i++){
- p[i]=q[i];
- }
-}
-
-void copyi(int from, int upto, int q[], int p[]){
- int i;
- for(i=from; i<=upto; i++){
- p[i]=q[i];
- }
-}
-
-int push2(double x, double y, double ptL[][2]){
- int nall=length2(ptL);
- nall++;
- ptL[nall][0]=x; ptL[nall][1]=y;
- ptL[0][0]=nall;
- return nall;
-}
-
-int push3(double x, double y, double z, double ptL[][3]){
- int nall=length3(ptL);
- nall++;
- ptL[nall][0]=x; ptL[nall][1]=y; ptL[nall][2]=z;
- ptL[0][0]=nall;
- return nall;
-}
-
-int push4(double x, double y, double z, double w, double ptL[][4]){
- int nall=length4(ptL);
- nall++;
- ptL[nall][0]=x; ptL[nall][1]=y;
- ptL[nall][2]=z; ptL[nall][3]=w;
- ptL[0][0]=nall;
- return nall;
-}
-
-int push5(double x, double y, double z, double w, double u, double ptL[][5]){
- int nall=length5(ptL);
- nall++;
- ptL[nall][0]=x; ptL[nall][1]=y;
- ptL[nall][2]=z; ptL[nall][3]=w; ptL[nall][4]=u;
- ptL[0][0]=nall;
- return nall;
-}
-
-int push6(double x, double y, double z, double w, double u, double v,double ptL[][6]){
- int nall=ptL[0][0];
- nall++;
- ptL[nall][0]=x; ptL[nall][1]=y;ptL[nall][2]=z;
- ptL[nall][3]=w; ptL[nall][4]=u; ptL[nall][5]=v;
- ptL[0][0]=nall;
- return nall;
-}
-
-void pull3(int num, double ptL[][3],double pt[3]){
- pt[0]=ptL[num][0]; pt[1]=ptL[num][1]; pt[2]=ptL[num][2];
-}
-
-void pull2(int num, double ptL[][2],double pt[2]){
- pt[0]=ptL[num][0]; pt[1]=ptL[num][1];
-}
-
-void pull4(int num, double ptL[][4],double pt[4]){
- pt[0]=ptL[num][0]; pt[1]=ptL[num][1];
- pt[2]=ptL[num][2]; pt[3]=ptL[num][3];
-}
-
-void pull5(int num, double ptL[][5],double pt[5]){
- pt[0]=ptL[num][0]; pt[1]=ptL[num][1];
- pt[2]=ptL[num][2]; pt[3]=ptL[num][3]; pt[4]=ptL[num][4];
-}
-
-void pull6(int num, double ptL[][6],double pt[6]){
- pt[0]=ptL[num][0]; pt[1]=ptL[num][1]; pt[2]=ptL[num][2];
- pt[3]=ptL[num][3]; pt[4]=ptL[num][4]; pt[5]=ptL[num][5];
-}
-
-int add2(double gdata[][2], double x, double y){
- int nall;
- nall=push2(x, y, gdata);
- return nall;
-}
-
-int add3(double gdata[][3], double x, double y, double z){
- int nall;
- nall=push3(x, y, z,gdata);
- return nall;
-}
-
-int addptd3(double gdata[][3], double pt[3]){
- int nall;
- nall=push3(pt[0],pt[1],pt[2],gdata);
- return nall;
-}
-
-int addptd2(double gdata[][2], double pt[2]){
- int nall;
- nall=push2(pt[0],pt[1],gdata);
- return nall;
-}
-
-int addptd4(double gdata[][4], double pt[4]){
- int nall;
- nall=push4(pt[0],pt[1],pt[2],pt[3],gdata);
- return nall;
-}
-
-int addptd5(double gdata[][5], double pt[5]){
- int nall;
- nall=push5(pt[0],pt[1],pt[2],pt[3],pt[4],gdata);
- return nall;
-}
-
-int addptd6(double gdata[][6], double pt[6]){
- int nall;
- nall=push6(pt[0],pt[1],pt[2],pt[3],pt[4],pt[5],gdata);
- return nall;
-}
-
-int appendd2(int level, int from,int upto, double gdata[][2],double mat[][2]){
- int j, np, nall=length2(mat);
- np=upto-from+1;
- if(np<0){np=0;}
- if(np>0){
- if(level>0){
- if(nall>0){
- nall=add2(mat,Inf, level);
- }
- }
- for(j=1; j<=np; j++){
- mat[nall+j][0]=gdata[from+j-1][0];
- mat[nall+j][1]=gdata[from+j-1][1];
- }
- }
- mat[0][0]=nall+np;
- return nall+np;
-}
-
-int appendd3(int level, int from,int upto, double gdata[][3],double mat[][3]){
- int j, np, nall=length3(mat);
- np=upto-from+1;
- if(np<0){np=0;}
- if(np>0){
- if(level>0){
- if(nall>0){
- nall=add3(mat,Inf, level, 0);
- }
- }
- for(j=1; j<=np; j++){
- mat[nall+j][0]=gdata[from+j-1][0];
- mat[nall+j][1]=gdata[from+j-1][1];
- mat[nall+j][2]=gdata[from+j-1][2];
- }
- }
- mat[0][0]=nall+np;
- return nall+np;
-}
-
-int prependd2(int from,int upto, double gdata[][2],double mat[][2]){
- int j,np, nall=length2(mat);
- if(from<=upto){
- np=upto-from+1;
- for(j=nall; j>=1; j--){
- mat[np+j][0]=mat[j][0];
- mat[np+j][1]=mat[j][1];
- }
- for(j=1; j<=np; j++){
- mat[j][0]=gdata[from+j-1][0];
- mat[j][1]=gdata[from+j-1][1];
- }
- }else{
- np=from-upto+1;
- for(j=nall; j>=1; j--){
- mat[np+j][0]=mat[j][0];
- mat[np+j][1]=mat[j][1];
- }
- for(j=1; j<=np; j++){
- mat[nall+j][0]=gdata[from-j+1][0];
- mat[nall+j][1]=gdata[from-j+1][1];
- }
- }
- mat[0][0]=nall+np;
- return nall+np;
-}
-
-int appendd1(double numvec[], double num){
- int n;
- n=floor(numvec[0]+0.5);
- numvec[n+1]=num;
- numvec[0]=n+1;
- return n+1;
-}
-
-int appendi1(int numvec[],int num){
- int n;
- n=numvec[0];
- numvec[n+1]=num;
- numvec[0]=n+1;
- return n+1;
-}
-
-int prependi1(int num, int numvec[]){
- int i,n;
- n=numvec[0];
- for(i=n; i>=1; i--){
- numvec[i+1]=numvec[i];
- }
- numvec[1]=num;
- numvec[0]=n+1;
- return n+1;
-}
-
-int removei2(int nrmv,int mat[][2]){
- int j,nall=mat[0][0];
- if(nall>0){
- for(j=nrmv; j<=nall-1; j++){
- mat[j][0]=mat[j+1][0];
- mat[j][1]=mat[j+1][1];
- }
- mat[0][0]=nall-1;
- return nall-1;
- }
- else{
- mat[0][0]=0;
- return 0;
- }
-}
-
-int dataindexd1(double out[],int din[][2]){
- int n1=1, j, ctr=0, nall=floor(out[0]+0.5);
- if(nall==0){
- din[0][0]=0;
- return 0;
- }
- for(j=1; j<=nall; j++){
- if(out[j]>Inf-1){
- ctr++;
- din[ctr][0]=n1;
- din[ctr][1]=j-1;
- n1=j+1;
- }
- }
- ctr++;
- din[ctr][0]=n1;
- din[ctr][1]=nall;
- din[0][0]=ctr;
- return ctr;
-}
-
-int dataindexd2(int level,double out[][2],int din[][2]){
- int n1=1, j, ctr=0, nall=length2(out);
- if(nall==0){
- din[0][0]=0;
- return 0;
- }
- for(j=1; j<=nall; j++){
- if(out[j][0]>Inf-1){
- if((level==0) || (out[j][1]==level)){
- ctr++;
- din[ctr][0]=n1;
- din[ctr][1]=j-1;
- n1=j+1;
- }
- }
- }
- ctr++;
- din[ctr][0]=n1;
- din[ctr][1]=nall;
- din[0][0]=ctr;
- return ctr;
-}
-
-int dataindexd3(int level, double out[][3],int din[][2]){
- int n1=1, j, ctr=0, nall=length3(out);
- if(nall==0){
- din[0][0]=0;
- return 0;
- }
- for(j=1; j<=nall; j++){
- if(out[j][0]>Inf-1){
- if((level==0) || (out[j][1]==level)){
- ctr++;
- din[ctr][0]=n1;
- din[ctr][1]=j-1;
- n1=j+1;
- }
- }
- }
- ctr++;
- din[ctr][0]=n1;
- din[ctr][1]=nall;
- din[0][0]=ctr;
- return ctr;
-}
-
-int dataindexd4(int level, double out[][4],int din[][2]){
- int n1=1, j, ctr=0, nall=length4(out);
- if(nall==0){
- din[0][0]=0;
- return 0;
- }
- for(j=1; j<=nall; j++){
- if(out[j][0]>Inf-1){
- if((level==0) || (out[j][1]==level)){
- ctr++;
- din[ctr][0]=n1;
- din[ctr][1]=j-1;
- n1=j+1;
- }
- }
- }
- ctr++;
- din[ctr][0]=n1;
- din[ctr][1]=nall;
- din[0][0]=ctr;
- return ctr;
-}
-
-int dataindexi1(int out[],int din[][2]){
- int n1=1, j, ctr=0, nall=out[0], ninfp=0;
- if(nall==0){
- din[0][0]=0; din[0][1]=-1;
- return 0;
- }
- for(j=1; j<=nall; j++){
- if(out[j]==Infint){
- ctr++;
- if(j==ninfp+1){
- din[ctr][0]=0; din[ctr][1]=-1;
- }
- else{
- din[ctr][0]=n1; din[ctr][1]=j-1;
- }
- ninfp=j;
- n1=j+1;
- }
- }
- ctr++;
- if(out[nall]==Infint){
- din[ctr][0]=0; din[ctr][1]=0;
- }
- else{
- din[ctr][0]=n1; din[ctr][1]=nall;
- }
- din[0][0]=ctr;
- return ctr;
-}
-
-void dispvec(int n,double dt[]){
- int i;
- for(i=0; i<n; i++){
- printf("%f ",dt[i]);
- }
- printf("\n");
-}
-
-void dispveci(int n,int dt[]){
- int i;
- for(i=0; i<n; i++){
- printf("%d ",dt[i]);
- }
- printf("\n");
-}
-
-void dispmatd2(int from, int upto, double mat[][2]){
- int i;
- for(i=from; i<upto+1; i++){
- printf("%3d %7.5f %7.5f\n",i,mat[i][0],mat[i][1]);
- }
-}
-
-void dispmatd3(int from, int upto, double mat[][3]){
- int i;
- for(i=from; i<upto+1; i++){
- printf("%3d %7.5f %7.5f %7.5f\n",i,mat[i][0],mat[i][1],mat[i][2]);
- }
-}
-
-void dispmatd4(int from, int upto, double mat[][4]){
- int i;
- for(i=from; i<upto+1; i++){
- printf("%3d %7.5f %7.5f ",i,mat[i][0],mat[i][1]);
- printf("%7.5f %7.5f\n",mat[i][2],mat[i][3]);
- }
-}
-
-void dispmatd5(int from, int upto, double mat[][5]){
- int i;
- for(i=from; i<upto+1; i++){
- printf("%3d %7.5f %7.5f ",i,mat[i][0],mat[i][1]);
- printf("%7.5f %7.5f %7.5f\n",mat[i][2],mat[i][3],mat[i][4]);
- }
-}
-
-void dispmatd6(int from, int upto, double mat[][6]){
- int i;
- for(i=from; i<upto+1; i++){
- printf("%3d %7.5f %7.5f %7.5f ",i,mat[i][0],mat[i][1],mat[i][2]);
- printf("%7.5f %7.5f %7.5f\n",mat[i][3],mat[i][4],mat[i][5]);
- }
-}
-
-void dispmatd2all(double mat[][2]){
- int i;
- if(mat[0][0]==0){printf("%s\n","no data");return;}
- for(i=1; i<mat[0][0]+1; i++){
- printf("%3d %7.5f %7.5f\n",i,mat[i][0],mat[i][1]);
- }
-}
-
-void dispmatd3all(double mat[][3]){
- int i;
- if(mat[0][0]==0){printf("%s\n","no data");return;}
- for(i=1; i<mat[0][0]+1; i++){
- printf("%3d %7.5f %7.5f %7.5f\n",i,mat[i][0],mat[i][1],mat[i][2]);
- }
-}
-
-void dispmatd4all(double mat[][4]){
- int i;
- if(mat[0][0]==0){printf("%s\n","no data");return;}
- for(i=1; i<mat[0][0]+1; i++){
- printf("%3d %7.5f %7.5f ",i,mat[i][0],mat[i][1]);
- printf("%7.5f %7.5f\n",mat[i][2],mat[i][3]);
- }
-}
-
-void dispmatd5all(double mat[][5]){
- int i;
- if(mat[0][0]==0){printf("%s\n","no data");return;}
- for(i=1; i<mat[0][0]+1; i++){
- printf("%3d %7.5f %7.5f ",i,mat[i][0],mat[i][1]);
- printf("%7.5f %7.5f %7.5f\n",mat[i][2],mat[i][3],mat[i][4]);
- }
-}
-
-void dispmatd6all(double mat[][6]){
- int i;
- if(mat[0][0]==0){printf("%s\n","no data");return;}
- for(i=1; i<mat[0][0]+1; i++){
- printf("%3d %7.5f %7.5f %7.5f ",i,mat[i][0],mat[i][1],mat[i][2]);
- printf("%7.5f %7.5f %7.5f\n",mat[i][3],mat[i][4],mat[i][5]);
- }
-}
-
-void dispmati2(int from, int upto, int mat[][2]){
- int i;
- for(i=from; i<upto+1; i++){
- printf("%3d %d %d\n",i,mat[i][0],mat[i][1]);
- }
-}
-
-void dispmati1(int from, int upto, int mat[]){
- int i;
- for(i=from; i<upto+1; i++){
- printf("%3d %d\n",i,mat[i]);
- }
-}
-
-void readdata3(const char *fname, double out[][3]){
- double data[DsizeL][4];
- int i, j, ndata, nall;
- FILE *fp;
- fp=fopen(fname,"r");
- if(fp==NULL){
- printf("file not found\n");
- return;
- }
- ndata=0;
- i=1;
- while( ! feof(fp) && i<DsizeL){
- for(j=0;j<4;j++){
- fscanf(fp,"%lf",&data[i][j]);
- }
- i++;
- ndata++;
- }
- ndata--;
- fclose(fp);
- out[0][0]=0; nall=0;
- for(i=1; i<=ndata; i++){
- nall=add3(out, data[i][0], data[i][1], data[i][2]);
- }
- return;
-}
-
-void readdata2(const char *fname, double out[][2]){
- double data[DsizeL][3];
- int i, j, ndata, nall;
- FILE *fp;
- fp=fopen(fname,"r");
- if(fp==NULL){
- printf("file not found\n");
- return;
- }
- ndata=0;
- i=1;
- while( ! feof(fp) && i<DsizeL){
- for(j=0;j<3;j++){
- fscanf(fp,"%lf",&data[i][j]);
- }
- i++;
- ndata++;
- }
- ndata--;
- fclose(fp);
- out[0][0]=0; nall=0;
- for(i=1; i<=ndata; i++){
- nall=add2(out, data[i][0], data[i][1]);
- }
- return;
-}
-
-int output2(const char *var, const char *fname, int level, double out[][2]){
- int nall=length2(out), ndin, din[DsizeM][2],i,j;
- double tmpd[2];
- FILE *fp;
- fp=fopen(fname,"w");
- if (fp == NULL) {
- printf("cannot open\n");
- return -1;
- }
- ndin=dataindexd2(level, out,din);
- fprintf(fp,"%s//\n",var);
- for(i=1; i<=ndin; i++){
- fprintf(fp,"start//\n");
- fprintf(fp,"[");
- for(j=din[i][0]; j<=din[i][1]; j++){
- pull2(j,out,tmpd);
- fprintf(fp,"[ %7.5f, %7.5f]",tmpd[0],tmpd[1]);
- if(j<din[i][1]){
- fprintf(fp,",");
- }
- }
- fprintf(fp,"]//\n");
- if(i<ndin){
- fprintf(fp,"end//\n");
- }
- else{
- fprintf(fp,"end////\n");
- }
- }
- fclose(fp);
- return 0;
-}
-
-void simplesort(double number[]){
- int i,j, total=number[0];
- double tmp;
- for (i=1; i<=total; i++) {
- for (j=i+1; j<=total; j++) {
- if (number[i] > number[j]) {
- tmp = number[i];
- number[i] = number[j];
- number[j] = tmp;
- }
- }
- }
-}
-
-int memberi(int a, int list[]){
- int i, n=list[0];
- for(i=1; i<=n; i++){
- if(a==list[i]){
- return 1;
- }
- }
- return 0;
-}
-
-double dotprod(int dim, double p[], double q[]){
- double ans;
- ans=p[0]*q[0]+p[1]*q[1];
- if(dim>2){
- ans=ans+p[2]*q[2];
- }
- return ans;
-}
-
-double norm(int dim, double p[]){
- double ans;
- ans=dotprod(dim,p,p);
- return sqrt(ans);
-}
-
-double dist(int dim, double p[], double q[]){
- double tmp;
- tmp=pow(q[0]-p[0],2)+pow(q[1]-p[1],2);
- if(dim>2){
- tmp=tmp+pow(q[2]-p[2],2);
- }
- return sqrt(tmp);
-}
-
-void crossprod(int dim,double a[3],double b[3], double out[3]){
- if(dim==3){
- out[0]=a[1]*b[2]-a[2]*b[1];
- out[1]=a[2]*b[0]-a[0]*b[2];
- out[2]=a[0]*b[1]-a[1]*b[0];
- }else{
- out[0]=a[0]*b[1]-a[1]*b[0];
- out[1]=Inf;
- }
-}
-
-void reflectpoint(double p1[2],double regard[][2],double p2[2]){
- double pa[2],pb[2],u,v,a,b,u2,v2;
- pull2(1,regard,pa);
- if(length2(regard)==1){
- p2[0]=2*pa[0]-p1[0]; p2[1]=2*pa[1]-p1[1];
- }else{
- pull2(2,regard,pb);
- u=pb[0]-pa[0]; u2=pow(u,2.0);
- v=pb[1]-pa[1]; v2=pow(v,2.0);
- a=pa[0]; b=pa[1];
- p2[0]=(u2-v2)/(u2+v2)*p1[0]+2*u*v/(u2+v2)*p1[1];
- p2[0]=p2[0]-2*v*(u*b-v*a)/(u2+v2);
- p2[1]=2*u*v/(u2+v2)*p1[0]-(u2-v2)/(u2+v2)*p1[1];
- p2[1]=p2[1]+2*u*(u*b-v*a)/(u2+v2);
- }
-}
-
-void pointoncurve(double t, double gdata[][2], double eps, double pt[]){
- double pa[2],pb[2], s;
- int n, nall;
- n=floor(t+eps);
- s=fmax(t-n,0);
- nall=length2(gdata);
- if(n>=nall){
- pull2(nall,gdata,pt);
-// pt[0]=gdata[nall][0]; pt[1]=gdata[nall][1];
- }
- else{
- pull2(n,gdata,pa);
- pull2(n+1,gdata,pb);
- pt[0]=(1-s)*pa[0]+s*pb[0];
- pt[1]=(1-s)*pa[1]+s*pb[1];
- }
-}
-
-int partcrv(double a,double b,double pkL[][2], double pL[][2]){
- int i, is, ie, nall;
- double eps=pow(10,-3.2);
- is=ceil(a);
- ie=floor(b);
- nall=0;
- if(a<is-eps){
- nall++;
- pL[nall][0]=(is-a)*pkL[is-1][0]+(1-is+a)*pkL[is][0];
- pL[nall][1]=(is-a)*pkL[is-1][1]+(1-is+a)*pkL[is][1];
- }
- for(i=is; i<=ie; i++){
- nall++;
- pL[nall][0]=pkL[i][0];
- pL[nall][1]=pkL[i][1];
- }
- if(b>ie+eps){
- nall++;
- pL[nall][0]=(1-b+ie)*pkL[ie][0]+(b-ie)*pkL[ie+1][0];
- pL[nall][1]=(1-b+ie)*pkL[ie][1]+(b-ie)*pkL[ie+1][1];
- }
- pL[0][0]=nall;
- return nall;
-}
-
-int partcrv3(double a,double b,double pkL[][3], double pL[][3]){
- int i, is, ie, nall;
- double eps=pow(10,-3.2);
- is=ceil(a);
- ie=floor(b);
- nall=0;
- if(a<is-eps){
- nall++;
- pL[nall][0]=(is-a)*pkL[is-1][0]+(1-is+a)*pkL[is][0];
- pL[nall][1]=(is-a)*pkL[is-1][1]+(1-is+a)*pkL[is][1];
- pL[nall][2]=(is-a)*pkL[is-1][2]+(1-is+a)*pkL[is][2];
- }
- for(i=is; i<=ie; i++){
- nall++;
- pL[nall][0]=pkL[i][0];
- pL[nall][1]=pkL[i][1];
- pL[nall][2]=pkL[i][2];
- }
- if(b>ie+eps){
- nall++;
- pL[nall][0]=(1-b+ie)*pkL[ie][0]+(b-ie)*pkL[ie+1][0];
- pL[nall][1]=(1-b+ie)*pkL[ie][1]+(b-ie)*pkL[ie+1][1];
- pL[nall][2]=(1-b+ie)*pkL[ie][2]+(b-ie)*pkL[ie+1][2];
- }
- pL[0][0]=nall;
- return nall;
-}
-
-int connectseg(double pdata[][2], double eps, double out[][2]){
- int din[DsizeM][2], nd, nq, i, j, flg, st, en, ntmp;
- int nall=length2(pdata), nout=0;
- double qd[DsizeM][2], ah[2], ao[2], p[2], q[2], tmp[2];
- out[0][0]=0;
- nd=dataindexd2(0,pdata,din);
- qd[0][0]=0;
- nq=appendd2(0,din[1][0],din[1][1],pdata,qd);
- nd=removei2(1,din);
- while(nd>0){
- pull2(1,qd,ah);
- pull2(nq,qd,ao);
- flg=0;
- for(j=1; j<=nd; j++){
- st=din[j][0];
- en=din[j][1];
- pull2(st,pdata,p);
- pull2(en,pdata,q);
- if(dist(2,p,ao)<eps){
- nq=appendd2(0,st+1,en,pdata,qd);
- nd=removei2(j,din);
- flg=1;
- break;
- }
- if(dist(2,q,ao)<eps){
- nq=appendd2(0,en-1,st,pdata,qd);
- nd=removei2(j,din);
- flg=1;
- break;
- }
- if(dist(2,p,ah)<eps){
- nq=prependd2(en,st+1,pdata,qd);
- nd=removei2(j,din);
- flg=1;
- break;
- }
- if(dist(2,q,ah)<eps){
- nq=prependd2(st,en-1,pdata,qd);
- nd=removei2(j,din);
- flg=1;
- break;
- }
- }
- if(flg==0){
- nout=appendd2(2,1,nq,qd,out);
- qd[0][0]=0;
- nq=appendd2(0,din[1][0],din[1][1],pdata,qd);
- nd=removei2(1,din);
- }
- }
- if(nq>0){
- nout=appendd2(2,1,nq,qd,out);
- }
- return nout;
-}
-
-void koutenseg(double a[2], double b[2], double c[2], double d[2],
- double eps, double eps2, double out[4]){
- double v[2], epss,eps0=Eps, sv2, p1, p2, q1,q2,m1, m2, M1, M2, t;
- double tmp1d2[2], tmp2d1, p[2], q[2];
- v[0]=b[0]-a[0]; v[1]=b[1]-a[1];
- sv2=pow(v[0],2.0)+pow(v[1],2.0);
- if(sv2<pow(10,-6.0)){
- out[0]=Inf;
- return;
- }
- p[0]=c[0]-a[0]; p[1]=c[1]-a[1];
- q[0]=d[0]-a[0]; q[1]=d[1]-a[1];
- epss=fmin(eps2, eps/sqrt(sv2));
- p1=(p[0]*v[0]+p[1]*v[1])/sv2;
- p2=(-p[0]*v[1]+p[1]*v[0])/sv2;
- q1=(q[0]*v[0]+q[1]*v[1])/sv2;
- q2=(-q[0]*v[1]+q[1]*v[0])/sv2;
- m1=-epss; M1=1+epss;
- m2=-epss; M2=epss;
- if((fmax(p1,q1)<m1) || (fmin(p1,q1)>M1)){
- out[0]=Inf;
- return;
- }
- if((fmax(p2,q2)<m2) || (fmin(p2,q2)>M2)){
- out[0]=Inf;
- return;
- }
- if(p2*q2<0){
- t=p1-(q1-p1)/(q2-p2)*p2;
- if((t>m1)&& (t<M1)){
- if((t>-eps0) && (t<1+eps0)){
- tmp1d2[0]=a[0]+t*v[0]; tmp1d2[1]=a[1]+t*v[1];
- tmp2d1=fmin(fmax(t,0),1);
- out[0]=tmp1d2[0]; out[1]=tmp1d2[1];
- out[2]=tmp2d1; out[3]=0;
- }
- else{
- tmp1d2[0]=a[0]+t*v[0]; tmp1d2[1]=a[1]+t*v[1];
- tmp2d1=fmin(fmax(t,0),1);
- out[0]=tmp1d2[0]; out[1]=tmp1d2[1];
- out[2]=tmp2d1; out[3]=1;
- }
- return;
- }
- if((p1<m1)||(p1>M1)||(p2<m2)||(p2>M2)){
- if((q1<m1)||(q1>M1)||(q2<m2)||(q2>M2)){
- out[0]=Inf;
- return;
- }
- t=fmin(fmax(q1,0),1);
- tmp1d2[0]=a[0]+t*v[0]; tmp1d2[1]=a[1]+t*v[1];
- out[0]=tmp1d2[0]; out[1]=tmp1d2[1];
- out[2]=t; out[3]=1;
- return;
- }
- t=fmin(fmax(p1,0),1);
- tmp1d2[0]=a[0]+t*v[0]; tmp1d2[1]=a[1]+t*v[1];
- out[0]=tmp1d2[0]; out[1]=tmp1d2[1];
- out[2]=t; out[3]=1;
- return;
- }
- if((p1>-eps0)&&(p1<1+eps0)&&(p2>-eps0)&&(p2<eps0)){
- t= p1;
- tmp1d2[0]=a[0]+t*v[0]; tmp1d2[1]=a[1]+t*v[1];
- out[0]=tmp1d2[0]; out[1]=tmp1d2[1];
- out[2]=t; out[3]=0;
- return;
- }
- if((q1>-eps0)&&(q1<1+eps0)&&(q2>-eps0)&&(q2<eps0)){
- t= q1;
- tmp1d2[0]=a[0]+t*v[0]; tmp1d2[1]=a[1]+t*v[1];
- out[0]=tmp1d2[0]; out[1]=tmp1d2[1];
- out[2]=t; out[3]=0;
- return;
- }
- if((p1<m1)||(p1>M1)||(p2<m2)||(p2>M2)){
- if((q1<m1)||(q1>M1)||(q2<m2)||(q2>M2)){
- out[0]=Inf;
- return;
- }
- t=fmin(fmax(q1,0),1);
- tmp1d2[0]=a[0]+t*v[0]; tmp1d2[1]=a[1]+t*v[1];
- out[0]=tmp1d2[0]; out[1]=tmp1d2[1];
- out[2]=t; out[3]=1;
- return;
- }
- if((q1<m1)||(q1>M1)||(q2<m2)||(q2>M2)){
- t=fmin(fmax(p1,0),1);
- tmp1d2[0]=a[0]+t*v[0]; tmp1d2[1]=a[1]+t*v[1];
- out[0]=tmp1d2[0]; out[1]=tmp1d2[1];
- out[2]=t; out[3]=1;
- return;
- }
- if(fabs(p2)<fabs(q2)){
- t=fmin(fmax(p1,0),1);
- }
- else{
- t=fmin(fmax(q1,0),1);
- }
- tmp1d2[0]=a[0]+t*v[0]; tmp1d2[1]=a[1]+t*v[1];
- out[0]=tmp1d2[0]; out[1]=tmp1d2[1];
- out[2]=t; out[3]=1;
- return;
-}
-
-double paramoncurve(double p[2], int n, double ptL[][2]){
- double pa[2], pb[2], v[2], w[2], o[2], d2, s;
- int nptL=length2(ptL);
- if(n==nptL){
- return nptL;
- }
- else{
- pull2(n,ptL,pa);
- pull2(n+1,ptL,pb);
- v[0]=pb[0]-pa[0]; v[1]=pb[1]-pa[1];
- w[0]=p[0]-pa[0]; w[1]=p[1]-pa[1];
- o[0]=0; o[1]=0;
- d2=pow(dist(2,v,o),2.0);
- s=dotprod(2,v,w)/d2;
- s=fmin(fmax(s,0),1);
- return n+s;
- }
-}
-
-void nearestptpt(double pa[2], double pL[][2], double pt[4]){
- double eps0=pow(10,-6.0), p[2], pm[2], im, sm, s;
- double ans[7], a1,a2, b1,b2, v1, v2, x1, x2, t, tmpd1;
- int i, n, npL=length2(pL);
- ans[0]=pa[0]; ans[1]=pa[1];
- ans[2]=1;
- p[0]=pL[1][0]; p[1]=pL[1][1];
- ans[3]=p[0]; ans[4]=p[1];
- ans[5]=1; ans[6]=dist(2,pa,p);
- pm[0]=pL[1][0]; pm[1]=pL[1][1];
- im=1;
- sm=dist(2,pm,pa);
- for(i=1; i<=npL-1; i++){
- a1=pL[i][0]; a2=pL[i][1];
- b1=pL[i+1][0]; b2=pL[i+1][1];
- v1=b1-a1; v2=b2-a2;
- x1=pa[0]; x2=pa[1];
- tmpd1=pow(v2,2.0)+pow(v1,2.0);
- if(fabs(tmpd1)<eps0){
- continue;
- }
- t=(-a2*v2-v1*a1+v1*x1+x2*v2)/tmpd1;
- if(t<-eps0){
- p[0]=a1; p[1]=a2;
- }
- else if(t>1+eps0){
- p[0]=b1; p[1]=b2;
- }
- else{
- p[0]=a1+t*v1; p[1]=a2+t*v2;
- }
- s=dist(2,p,pa);
- if(s<sm-eps0){
- tmpd1=paramoncurve(p,i,pL);
- pm[0]=p[0]; pm[1]=p[1];
- im=tmpd1; sm=s;
- }
- }
- if(sm<ans[6]){
- ans[0]=pa[0]; ans[1]=pa[1];
- ans[2]=n;
- ans[3]=pm[0]; ans[4]=pm[1];
- ans[5]=im; ans[6]=sm;
- }
- pt[0]=ans[3]; pt[1]=ans[4];
- pt[2]=ans[5]; pt[3]=ans[6];
-}
-
-int intersectselfPp(double data1[][2],double eps,double eps1s,double kL[][4]){
- double a[2], b[2], tmpd2[2], tmpd4[4], tmpd5[5], p[2], q[2], t, s;
- double eps0=pow(10,-5.0);
- double tmpd1, tmp1d1, tmp2d1;
- int i, j, k, n, is, ndata1,nkL, ntmp, ntmp1,flg, closed=0;
- ndata1=length2(data1);
- p[0]=data1[1][0]; p[1]=data1[1][1];
- q[0]=data1[ndata1][0]; q[1]=data1[ndata1][1];
- if(dist(2,p,q)<Eps){closed=1;}
- kL[0][0]=0; nkL=0;
- for(i=1; i<=ndata1; i++){
- ntmp=0; tmpd1=Inf;
- pull2(i,data1,a);
- nearestptpt(a, data1, tmpd4);
- n=floor(tmpd4[2]+0.5);
- if(n==i){continue;}
- if(closed==1){
- if((i==1)&&(n==ndata1)){continue;}
- if((i==ndata1)&&(n==1)){continue;}
- }
- ntmp1=floor(tmpd4[2]+Eps);
- if((tmpd4[3]<eps1s)&&(ntmp1!=i)){
- if(ntmp<ntmp1){
- ntmp=ntmp1;
- tmpd1=tmpd4[3];
- nkL=addptd4(kL,tmpd4);
- }
- else if(tmpd4[3]<tmpd1){
- tmpd1=tmpd4[3];
- kL[0][0]--;
- nkL=addptd4(kL,tmpd4);
- }
- }
- }
- return nkL;
-}
-
-/*
-int intersectcrvsPptest(double data1[][2], double data2[][2],
- double eps1,double eps2, double kL[][4]){
- double t, s, a[2], b[2], p[2], q[2];
- double sqeps=pow(10,-10.0), eps0=pow(10,-2.0);
- double tmp1d2[2],tmp2d2[2],tmpd4[4],tmp1d4[4],tmpd5[5];
- double tmpd1,tmp1d1,tmp2d1, kL0[DsizeL][5], ds;
- int i, j, k, n, is, nkL, nall, ndata1,ndata2,ntmp, ntmp1, flg;
- ndata1=length2(data1);
- ndata2=length2(data2);
- if(ndata1==ndata2){
- tmp1d1=0; tmp2d1=0;
- for(i=1; i<=ndata1; i++){
- tmp1d1=tmp1d1+pow(data1[i][0]-data2[i][0],2.0);
- tmp1d1=tmp1d1+pow(data1[i][1]-data2[i][1],2.0);
- tmp2d1=tmp2d1+pow(data1[i][0]-data2[ndata2-i+1][0],2.0);
- tmp2d1=tmp2d1+pow(data1[i][1]-data2[ndata2-i+1][1],2.0);
- }
- tmp1d1=sqrt(tmp1d1); tmp2d1=sqrt(tmp2d1);
- if((tmp1d1<Eps)||(tmp2d1<Eps)){
- kL[0][0]=0; nkL=0;
- return nkL;
- }
- }
- kL0[0][0]=0; nkL=0;
- for(i=1; i<=ndata1; i++){
- ntmp=0; tmpd1=Inf;
- pull2(i,data1,a);
- nearestptpt(a, data2, tmpd4);
- tmp1d1=floor(tmpd4[2]+Eps); //17.06.03
- a[0]=tmpd4[0]; a[1]=tmpd4[1];
- nearestptpt(a, data1, tmpd4);
- tmpd5[0]=tmpd4[0]; tmpd5[1]=tmpd4[1];
- tmpd5[2]=tmpd4[2]; tmpd5[3]=tmp1d1;
- tmpd5[4]=tmpd4[3];
- nkL=addptd5(kL0,tmpd5);
- }
- kL[0][0]=0; nall=0;
- p[0]=Inf; p[1]=0;
- for(i=1; i<=nkL; i++){
- if(kL0[i][4]<eps2){
- q[0]=kL0[i][0]; q[1]=kL0[i][1];
- if(dist(2,p,q)>eps2){
- nall=push4(kL0[i][0],kL0[i][1],kL0[i][2],kL0[i][3],kL);
- p[0]=kL0[i][0]; p[1]=kL0[i][1];
- ds=kL0[i][4];
- continue;
- }
- if(kL0[i][4]<ds){
- kL[0][0]--;
- nall=push4(kL0[i][0],kL0[i][1],kL0[i][2],kL0[i][3],kL);
- p[0]=kL0[i][0]; p[1]=kL0[i][1];
- ds=kL0[i][4];
- }
- }
- }
- return nall;
-}
-*/
-
-int intersectcrvsPp(double data1[][2], double data2[][2],
- double eps,double eps1s, double kL[][4]){
- double t, s, a[2], b[2], p[2], q[2];
- double sqeps=pow(10,-10.0), eps0=pow(10,-2.0);
- double tmp1d2[2],tmp2d2[2],tmpd4[4],tmp1d4[4],tmpd5[5];
- double tmpd1,tmp1d1,tmp2d1;
- int i, j, k, n, is, ndata1, ndata2, nkL,nkL1,nkL2,ntmp, ntmp1, flg;
- ndata1=length2(data1);
- ndata2=length2(data2);
- if(ndata1==ndata2){
- tmp1d1=0; tmp2d1=0;
- for(i=1; i<=ndata1; i++){
- tmp1d1=tmp1d1+pow(data1[i][0]-data2[i][0],2.0);
- tmp1d1=tmp1d1+pow(data1[i][1]-data2[i][1],2.0);
- tmp2d1=tmp2d1+pow(data1[i][0]-data2[ndata2-i+1][0],2.0);
- tmp2d1=tmp2d1+pow(data1[i][1]-data2[ndata2-i+1][1],2.0);
- }
- tmp1d1=sqrt(tmp1d1); tmp2d1=sqrt(tmp2d1);
- if((tmp1d1<Eps)||(tmp2d1<Eps)){
- kL[0][0]=0; nkL=0;
- return nkL;
- }
- }
- kL[0][0]=0; nkL=0;
- for(i=1; i<=ndata1;i++){
- ntmp=0; tmpd1=Inf;
- pull2(i,data1,a);
- nearestptpt(a, data2, tmpd4);
- tmp1d1=floor(tmpd4[2]+Eps); //17.06.03
- a[0]=tmpd4[0]; a[1]=tmpd4[1];
- nearestptpt(a, data1, tmpd4);
- if(tmpd4[3]<eps1s){
- flg=0;
- p[0]=tmpd4[0]; p[1]=tmpd4[1];
- for(j=1; j<=nkL; j++){
- q[0]=kL[j][0]; q[1]=kL[j][1];
- if(dist(2,p,q)<eps0){
- flg=1;
- break;
- }
- }
- if(flg==1){continue;}
- ntmp1=floor(tmpd4[2]+Eps);
- if(ntmp<ntmp1){
- ntmp=ntmp1;
- tmpd1=tmpd4[3];
- tmp1d4[0]=tmpd4[0]; tmp1d4[1]=tmpd4[1];
- tmp1d4[2]=tmpd4[2]; tmp1d4[3]=tmp1d1;
- nkL=addptd4(kL,tmp1d4);
- }
- else if(tmpd4[3]<tmpd1){
- tmpd1=tmpd4[3];
- kL[0][0]--;
- tmp1d4[0]=tmpd4[0]; tmp1d4[1]=tmpd4[1];
- tmp1d4[2]=tmpd4[2]; tmp1d4[3]=tmp1d1;
- nkL=addptd4(kL,tmp1d4);
- }
- }
- }
- return nkL;
-}
-
-int intersectcrvsPpold(double data1[][2], double data2[][2],
- double eps,double eps1s, double kL[][4]){
-// 17.05.22
- double kL1[DsizeL][5], kL2[DsizeL][5];
- double t, s, a[2], b[2], p[2], q[2];
- double sqeps=pow(10,-10.0), eps0=pow(10,-6.0);
- double tmp1d2[2],tmp2d2[2],tmpd4[4],tmpd5[5];
- double tmpd1,tmp1d1,tmp2d1;
- int i, j, k, n, is, ndata1, ndata2, nkL,nkL1,nkL2,ntmp,flg;
- ndata1=length2(data1);
- ndata2=length2(data2);
- if(ndata1==ndata2){
- tmp1d1=0; tmp2d1=0;
- for(i=1; i<=ndata1; i++){
- tmp1d1=tmp1d1+pow(data1[i][0]-data2[i][0],2.0);
- tmp1d1=tmp1d1+pow(data1[i][1]-data2[i][1],2.0);
- tmp2d1=tmp2d1+pow(data1[i][0]-data2[ndata2-i+1][0],2.0);
- tmp2d1=tmp2d1+pow(data1[i][1]-data2[ndata2-i+1][1],2.0);
- }
- tmp1d1=sqrt(tmp1d1); tmp2d1=sqrt(tmp2d1);
- if((tmp1d1<eps0)||(tmp2d1<eps0)){
- kL[0][0]=0; nkL=0;
- return nkL;
- }
- }
- kL1[0][0]=0; nkL1=0;
- kL2[0][0]=0; nkL2=0;
- for(i=1; i<=ndata1-1; i++){
- pull2(i,data1,a);
- pull2(i+1,data1,b);
- for(j=1; j<=ndata2-1; j++){
- pull2(j, data2, p);
- pull2(j+1, data2, q);
- koutenseg(a,b,p,q,eps,eps1s,tmpd4);
- if(tmpd4[0]<Inf-1){
- ntmp=floor(tmpd4[3]+Eps);
- if(ntmp==0){
- tmpd5[0]=tmpd4[0]; tmpd5[1]=tmpd4[1];
- tmpd5[2]=tmpd4[2]; tmpd5[3]=i; tmpd5[4]=j;
- nkL1=addptd5(kL1,tmpd5);
- }
- else{
- tmpd5[0]=tmpd4[0]; tmpd5[1]=tmpd4[1];
- tmpd5[2]=tmpd4[2]; tmpd5[3]=i; tmpd5[4]=j;
- nkL2=addptd5(kL2,tmpd5);
- }
- }
- }
- }
- kL[0][0]=0; nkL=0;
- if(nkL1>0){
- pull5(1,kL1,tmpd5);
- p[0]=tmpd5[0]; p[1]=tmpd5[1];
- t=tmpd5[2];
- i=floor(tmpd5[3]+Eps);
- j=floor(tmpd5[4]+Eps);
- tmpd4[0]=p[0]; tmpd4[1]=p[1];
- tmpd4[2]=i+t; tmpd4[3]=j;
- nkL=addptd4(kL,tmpd4);
- }
- for(n=2; n<=nkL1; n++){
- pull5(n,kL1,tmpd5);
- p[0]=tmpd5[0]; p[1]=tmpd5[1];
- flg=0;
- for(k=1; k<=nkL; k++){
- pull4(k,kL,tmpd4);
- tmp1d2[0]=tmpd4[0]; tmp1d2[1]=tmpd4[1];
- if(pow(dist(2,p,tmp1d2),2.0)<sqeps){
- flg=1;
- break;
- }
- }
- if(flg==0){
- tmpd4[0]=p[0]; tmpd4[1]=p[1];
- t=tmpd5[2];
- i=floor(tmpd5[3]+Eps);
- j=floor(tmpd5[4]+Eps);
- tmpd4[2]=t+i; tmpd4[3]=j;
- nkL=addptd4(kL,tmpd4);
- }
- }
- for(n=1; n<=nkL2; n++){
- pull5(n,kL2,tmpd5);
- p[0]=tmpd5[0]; p[1]=tmpd5[1];
- flg=0;
- for(k=1; k<=nkL; k++){
- pull4(k,kL,tmpd4);
- tmp1d2[0]=tmpd4[0]; tmp1d2[1]=tmpd4[1];
- if(pow(dist(2,p,tmp1d2),2.0)<sqeps){
- flg=1;
- break;
- }
- }
- if(flg==0){
- tmpd4[0]=p[0]; tmpd4[1]=p[1];
- t=tmpd5[2];
- i=floor(tmpd5[3]+Eps);
- j=floor(tmpd5[4]+Eps);
- tmpd4[2]=i+t; tmpd4[3]=j;
- nkL=addptd4(kL,tmpd4);
- }
- }
- return nkL;
-}
-
-int dropnumlistcrv(double qd[][2], double eps1, int out[]){
- int i,j,k, nout,nall=length2(qd), nd, se, en, npd, nptL;
- int din[DsizeM][2],ptL[DsizeL];
- double eps=pow(10.0,-6.0), pd[DsizeL][2], p[2], tmp2d[2];
- out[0]=0; nout=0;
- nd=dataindexd2(2,qd,din);
- for(j=1; j<=nd; j++){
- se=din[j][0]; en=din[j][1];
- pd[0][0]=0; npd=0;
- npd=appendd2(0,se,en,qd,pd);
- ptL[0]=0; nptL=0;
- nptL=appendi1(ptL,1);
- pull2(1,pd,p);
- for(k=2; k<=npd-1; k++){
- pull2(k,pd,tmp2d);
- if(dist(2,p,tmp2d)>eps1){
- nptL=appendi1(ptL,k);
- pull2(k,pd,p);
- }
- }
- pull2(npd-1,pd,p);
- pull2(npd,pd,tmp2d);
- if(dist(2,p,tmp2d)>eps){ // eps -> eps1 ?
- nptL=appendi1(ptL,npd);
- }
- if(nptL==1){ptL[0]=0; nptL=0;}
- if(nout>0){
- nout=appendi1(out,Infint);
- }
- for(i=1; i<=nptL; i++){
- nout=appendi1(out,ptL[i]);
- }
- }
- out[0]=nout;
- return nout;
-}
-
-int increasept2(double ptL[][2], int nn, double out[][2]){
- int ii, jj, npt, nall;
- double tmpd2[2];
- npt=length2(ptL);
- out[0][0]=0;
- for(ii=1; ii<=npt-1; ii++){
- for(jj=0; jj<nn; jj++){
- tmpd2[0]=ptL[ii][0]+1.0*jj/nn*(ptL[ii+1][0]-ptL[ii][0]);
- tmpd2[1]=ptL[ii][1]+1.0*jj/nn*(ptL[ii+1][1]-ptL[ii][1]);
- addptd2(out,tmpd2);
- }
- }
- nall=appendd2(0,npt,npt,ptL,out);
- return nall;
-}
-
-int increasept3(double ptL[][3], int nn, double out[][3]){
- int ii, jj, npt, nall;
- double tmpd3[3];
- npt=length3(ptL);
- out[0][0]=0;
- for(ii=1; ii<=npt-1; ii++){
- for(jj=0; jj<nn; jj++){
- tmpd3[0]=ptL[ii][0]+1.0*jj/nn*(ptL[ii+1][0]-ptL[ii][0]);
- tmpd3[1]=ptL[ii][1]+1.0*jj/nn*(ptL[ii+1][1]-ptL[ii][1]);
- tmpd3[2]=ptL[ii][2]+1.0*jj/nn*(ptL[ii+1][2]-ptL[ii][2]);
- addptd3(out,tmpd3);
- }
- }
- nall=appendd3(0,npt,npt,ptL,out);
- return nall;
-}
-
-void bezierpt(double t, double p0[], double p3[], double p1[], double p2[],
- double pout[]){
- double p4[2], p5[2], p6[2], p7[2], p8[2];
- int i, flg3=1;
- if(p2[0]>Inf-1){
- for(i=0; i<2; i++){
- p2[i]=p3[i];
- }
- flg3=0;
- }
- for(i=0; i<2; i++){
- p4[i]=(1-t)*p0[i]+t*p1[i];
- }
- for(i=0; i<2; i++){
- p5[i]=(1-t)*p1[i]+t*p2[i];
- }
- for(i=0; i<2; i++){
- p6[i]=(1-t)*p2[i]+t*p3[i];
- }
- for(i=0; i<2; i++){
- p7[i]=(1-t)*p4[i]+t*p5[i];
- }
- if(flg3==0){
- for(i=0; i<2; i++){
- pout[i]=p7[i];
- }
- }
- else{
- for(i=0; i<2; i++){
- p8[i]=(1-t)*p5[i]+t*p6[i];
- }
- for(i=0; i<2; i++){
- pout[i]=(1-t)*p7[i]+t*p8[i];
- }
- }
-}
-
-int bezier(double ptL[][2], double ctrL[][4], int num, double out[][2]){
- double p0[2], p3[2], p1[2], p2[2], pt[2], dt=1.0/num;
- int i, j, n, nall;
- out[0][0]=0; nall=0;
- nall=appendd2(0,1,1,ptL,out);
- n=length2(ptL);
- for(i=1; i<=n-1; i++){
- pull2(i,ptL, p0);
- pull2(i+1,ptL, p3);
- p1[0]=ctrL[i][0]; p1[1]=ctrL[i][1];
- p2[0]=ctrL[i][2]; p2[1]=ctrL[i][3];
- for(j=1; j<=num; j++){
- bezierpt(j*dt,p0,p3,p1,p2,pt);
- nall=push2(pt[0],pt[1], out);
- }
- }
- return nall;
-}
-
-int ospline(int level, double ptL[][2], int num, double out[][2]){
- double ctrlist[DsizeM][4], eps0=pow(10,-6.0), tmp, cc;
- double p[2], q[2], p0[2], p3[2], p1[2], p2[2], pQ[2], pR[2];
- double ptlist[DsizeM][2], tmpmd2[DsizeM][2];
- int nd, i, j, npt, nall, nctr, flg, ndin, closed, din[DsizeM][2], ntmp;
- out[0][0]=0;
- if(num==1){
- npt=length2(ptL);
- for(i=0; i<=npt; i++){
- out[i][0]=ptL[i][0]; out[i][1]=ptL[i][1];
- }
- nall=length2(out);
- return nall;
- }
- ndin=dataindexd2(level,ptL,din);
- for(nd=1; nd<=ndin; nd++){
- ptlist[0][0]=0;
- npt=appendd2(0,din[nd][0],din[nd][1],ptL,ptlist);
- if(npt==2){
- appendd2(2, 1,npt,ptlist,out);
- continue;
- }
- closed=0;
- pull2(1,ptlist,p);
- pull2(npt,ptlist,q);
- if(dist(2,p,q)<eps0){
- closed=1;
- }
- ctrlist[0][0]=0; nctr=0;
- for(i=1; i<=npt-1; i++){
- flg=0;
- pull2(i, ptlist,p1);
- pull2(i+1, ptlist,p2);
- if((i==1)||(i==npt-1)){
- flg=1;
- if(closed==0){
- pQ[0]=(p1[0]+2*p2[0])/3.0;
- pQ[1]=(p1[1]+2*p2[1])/3.0;
- pR[0]=(2*p1[0]+p2[0])/3.0;
- pR[1]=(2*p1[1]+p2[1])/3.0;
- nctr++;
- ctrlist[nctr][0]=pQ[0]; ctrlist[nctr][1]=pQ[1];
- ctrlist[nctr][2]=pR[0]; ctrlist[nctr][3]=pR[1];
- flg=2;
- }
- else{
- if(i==1){
- pull2(npt-1, ptlist,p0);
- pull2(i+2, ptlist,p3);
- }
- else{
- pull2(i-1, ptlist, p0);
- pull2(2, ptlist, p3);
- }
- }
- }
- if(flg<=1){
- if(flg==0){
- pull2(i-1, ptlist, p0);
- pull2(i+2, ptlist, p3);
- }
- p[0]=p2[0]-p0[0]; p[1]=p2[1]-p0[1];
- q[0]=p3[0]-p1[0]; q[1]=p3[1]-p1[1];
- tmp=1+sqrt((1+dotprod(2,p,q)/dist(2,p0,p2)/dist(2,p1,p3))/2);
- cc=4*dist(2,p1,p2)/3/(dist(2,p0,p2)+dist(2,p1,p3))/tmp;
- pQ[0]=p1[0]+cc*(p2[0]-p0[0]); pQ[1]=p1[1]+cc*(p2[1]-p0[1]);
- pR[0]=p2[0]+cc*(p1[0]-p3[0]); pR[1]=p2[1]+cc*(p1[1]-p3[1]);
- nctr++;
- ctrlist[nctr][0]=pQ[0]; ctrlist[nctr][1]=pQ[1];
- ctrlist[nctr][2]=pR[0]; ctrlist[nctr][3]=pR[1];
- }
- }
- if(closed==0){
- p1[0]=ctrlist[2][0]; p1[1]=ctrlist[2][1];
- pull2(2, ptlist, p2);
- pQ[0]=p2[0]+(p2[0]-p1[0]); pQ[1]=p2[1]+(p2[1]-p1[1]);
- ctrlist[1][0]=pQ[0]; ctrlist[1][1]=pQ[1];
- ctrlist[1][2]=Inf; ctrlist[1][3]=0;
- p1[0]=ctrlist[nctr-1][2]; p1[1]=ctrlist[nctr-1][3];
- pull2(nctr,ptlist,p2);
- pQ[0]=p2[0]+(p2[0]-p1[0]); pQ[1]=p2[1]+(p2[1]-p1[1]);
- ctrlist[nctr][0]=pQ[0]; ctrlist[nctr][1]=pQ[1];
- ctrlist[nctr][2]=Inf; ctrlist[1][3]=0;
- }
- ctrlist[0][0]=nctr;
- if(length2(ptlist)>2){
- ntmp=bezier(ptlist,ctrlist,num, tmpmd2);
- nall=appendd2(2,1,ntmp,tmpmd2,out);
- }
- }
- return nall;
-}
-
-void bezierpt3(double t, double p0[], double p3[], double p1[], double p2[],
- double pout[]){
- double p4[3], p5[3], p6[3], p7[3], p8[3];
- int i, flg3=1;
- if(p2[0]>Inf-1){
- for(i=0; i<3; i++){
- p2[i]=p3[i];
- }
- flg3=0;
- }
- for(i=0; i<3; i++){
- p4[i]=(1-t)*p0[i]+t*p1[i];
- }
- for(i=0; i<3; i++){
- p5[i]=(1-t)*p1[i]+t*p2[i];
- }
- for(i=0; i<3; i++){
- p6[i]=(1-t)*p2[i]+t*p3[i];
- }
- for(i=0; i<3; i++){
- p7[i]=(1-t)*p4[i]+t*p5[i];
- }
- if(flg3==0){
- for(i=0; i<3; i++){
- pout[i]=p7[i];
- }
- }
- else{
- for(i=0; i<3; i++){
- p8[i]=(1-t)*p5[i]+t*p6[i];
- }
- for(i=0; i<3; i++){
- pout[i]=(1-t)*p7[i]+t*p8[i];
- }
- }
-}
-
-int bezier3(double ptL[][3], double ctrL[][6], int num, double out[][3]){
- double p0[3], p3[3], p1[3], p2[3], pt[3], dt=1.0/num;
- int i, j, n, nall;
- out[0][0]=0; nall=0;
- nall=appendd3(0,1,1,ptL,out);
- n=length3(ptL);
- for(i=1; i<=n-1; i++){
- pull3(i,ptL, p0);
- pull3(i+1,ptL, p3);
- p1[0]=ctrL[i][0]; p1[1]=ctrL[i][1]; p1[2]=ctrL[i][2];
- p2[0]=ctrL[i][3]; p2[1]=ctrL[i][4]; p2[2]=ctrL[i][5];
- for(j=1; j<=num; j++){
- bezierpt3(j*dt,p0,p3,p1,p2,pt);
- nall=push3(pt[0],pt[1],pt[2], out);
- }
- }
- return nall;
-}
-
-int ospline3(int level, double ptL[][3], int num, double out[][3]){
- double ctrlist[DsizeM][6], eps0=pow(10,-6.0), tmp, cc;
- double p[3], q[3], p0[3], p3[3], p1[3], p2[3], pQ[3], pR[3];
- double ptlist[DsizeM][3], tmpmd2[DsizeM][3];
- int nd, i, j, n, npt, nall, nctr, closed, flg, ndin, din[DsizeM][2], ntmp;
- out[0][0]=0; nall=0;
- if(num==1){
- npt=length3(ptL);
- for(i=0; i<=npt; i++){
- out[i][0]=ptL[i][0]; out[i][1]=ptL[i][1]; out[i][2]=ptL[i][2];
- }
- nall=length3(out);
- return nall;
- }
- ndin=dataindexd3(2,ptL,din);
- for(nd=1; nd<=ndin; nd++){
- ptlist[0][0]=0;
- npt=din[nd][1]-din[nd][0];
- if(npt<=3){
- n=appendd3(0, din[nd][0], din[nd][0], ptL, ptlist);
- for(i=1; i<=npt-1; i++){
- pull3(din[nd][0]+i,ptL,p);
- pull3(din[nd][0]+i+1,ptL,q);
- for(j=1; j<=num; j++){
- p1[0]=p[0]+1.0*j/num*(q[0]-p[0]);
- p1[1]=p[1]+1.0*j/num*(q[1]-p[1]);
- p1[2]=p[2]+1.0*j/num*(q[2]-p[2]);
- n=addptd3(ptlist,p1);
- }
- }
- nall=appendd3(2, 1,n,ptlist,out);
- continue;
- }
- appendd3(0,din[nd][0],din[nd][1],ptL,ptlist);
- closed=0;
- pull3(1,ptlist,p);
- pull3(npt,ptlist,q);
- if(dist(3,p,q)<eps0){closed=1;}
- ctrlist[0][0]=0; nctr=0;
- for(i=1; i<=npt-1; i++){
- flg=0;
- pull3(i, ptlist,p1);
- pull3(i+1, ptlist,p2);
- if((i==1)||(i==npt-1)){
- flg=1;
- if(closed==0){
- pQ[0]=(p1[0]+2*p2[0])/3.0;
- pQ[1]=(p1[1]+2*p2[1])/3.0;
- pQ[2]=(p1[2]+2*p2[2])/3.0;
- pR[0]=(2*p1[0]+p2[0])/3.0;
- pR[1]=(2*p1[1]+p2[1])/3.0;
- pR[2]=(2*p1[2]+p2[2])/3.0;
- nctr++;
- ctrlist[nctr][0]=pQ[0]; ctrlist[nctr][1]=pQ[1]; ctrlist[nctr][2]=pQ[2];
- ctrlist[nctr][3]=pR[0]; ctrlist[nctr][4]=pR[1]; ctrlist[nctr][5]=pR[2];
- flg=2;
- }
- else{
- if(i==1){
- pull3(npt-1, ptlist,p0);
- pull3(i+2, ptlist,p3);
- }
- else{
- pull3(i-1, ptlist, p0);
- pull3(2, ptlist, p3);
- }
- }
- }
- if(flg<=1){
- if(flg==0){
- pull3(i-1, ptlist, p0);
- pull3(i+2, ptlist, p3);
- }
- p[0]=p2[0]-p0[0]; p[1]=p2[1]-p0[1]; p[2]=p2[2]-p0[2];
- q[0]=p3[0]-p1[0]; q[1]=p3[1]-p1[1]; q[2]=p3[2]-p1[2];
- tmp=1+sqrt((1+dotprod(3,p,q)/dist(3,p0,p2)/dist(3,p1,p3))/2);
- cc=4*dist(3,p1,p2)/3/(dist(3,p0,p2)+dist(3,p1,p3))/tmp;
- pQ[0]=p1[0]+cc*(p2[0]-p0[0]); pQ[1]=p1[1]+cc*(p2[1]-p0[1]);
- pQ[2]=p1[2]+cc*(p2[2]-p0[2]);
- pR[0]=p2[0]+cc*(p1[0]-p3[0]); pR[1]=p2[1]+cc*(p1[1]-p3[1]);
- pR[2]=p2[2]+cc*(p1[2]-p3[2]);
- nctr++;
- ctrlist[nctr][0]=pQ[0]; ctrlist[nctr][1]=pQ[1]; ctrlist[nctr][2]=pQ[2];
- ctrlist[nctr][3]=pR[0]; ctrlist[nctr][4]=pR[1]; ctrlist[nctr][5]=pR[2];
- }
- }
- if(closed==0){
- p1[0]=ctrlist[2][0]; p1[1]=ctrlist[2][1]; p1[2]=ctrlist[2][2];
- pull3(2, ptlist, p2);
- pQ[0]=p2[0]+(p2[0]-p1[0]); pQ[1]=p2[1]+(p2[1]-p1[1]);
- pQ[2]=p2[2]+(p2[2]-p1[2]);
- ctrlist[1][0]=pQ[0]; ctrlist[1][1]=pQ[1]; ctrlist[1][2]=pQ[2];
- ctrlist[1][3]=Inf; ctrlist[1][4]=0; ctrlist[1][5]=0;
- p1[0]=ctrlist[nctr-1][3]; p1[1]=ctrlist[nctr-1][4]; p1[2]=ctrlist[nctr-1][5];
- pull3(nctr,ptlist,p2);
- pQ[0]=p2[0]+(p2[0]-p1[0]); pQ[1]=p2[1]+(p2[1]-p1[1]);
- pQ[2]=p2[2]+(p2[2]-p1[2]);
- ctrlist[nctr][0]=pQ[0]; ctrlist[nctr][1]=pQ[1]; ctrlist[nctr][2]=pQ[2];
- ctrlist[nctr][3]=Inf; ctrlist[1][4]=0; ctrlist[1][5]=0;
- }
- ctrlist[0][0]=nctr;
- if(length3(ptlist)>2){
- ntmp=bezier3(ptlist,ctrlist,num, tmpmd2);
- nall=appendd3(2,1,ntmp,tmpmd2,out);
- }
- }
- return nall;
-}
-
-void segplot(double x1,double y1,double x2,double y2,double seg[][2]){
- seg[0][0]=0;
- push2(x1,y1,seg);
- push2(x2,y2,seg);
-}
-
-void addsegplot(double x1,double y1,double seg[][2]){
- push2(x1,y1,seg);
-}
-
-void circledata(double cx,double cy,double r, int num,double out[][2]){
- double t,dt,pt[2];
- int i;
- dt=2*M_PI/num;
- out[0][0]=0;
- for(i=0; i<=num; i++){
- push2(cx+r*cos(i*dt),cy+r*sin(i*dt),out);
- }
-}
-
-void intersectline(double p1[2],double v1[2], double p2[2],double v2[2],double out[4]){
- double tmp,d,dt,ds,t,s,tmp1[2],tmp2[2],tmp3[2],pt[2];
- tmp=dotprod(2,v1,v2);
- tmp1[0]=tmp; tmp1[1]=pow(norm(2,v1),2.0);
- tmp2[0]=-pow(norm(2,v2),2.0);tmp2[1]=-tmp;
- pt[0]=p2[0]-p1[0];pt[1]=p2[1]-p1[1];
- tmp3[0]=dotprod(2,pt,v2);tmp3[1]=dotprod(2,pt,v1);
- crossprod(2,tmp1,tmp2,pt); d=pt[0];
- crossprod(2,v1,v2,pt); tmp=fabs(pt[0]);
- if(tmp>Eps){
- crossprod(2,tmp3,tmp2,pt); dt=pt[0];
- crossprod(2,tmp1,tmp3,pt); ds=pt[0];
- t=dt/d;
- s=ds/d;
- pt[0]=p1[0]+v1[0]*t; pt[1]=p1[1]+v1[1]*t;
- out[0]=pt[0];out[1]=pt[1];out[2]=t; out[3]=s;
- }else{
- pt[0]=p2[0]-p1[0];pt[1]=p2[1]-p1[1];
- crossprod(2,pt,v1,tmp1);
- tmp=tmp1[0]/norm(2,v1);
- out[0]=fabs(tmp); out[1]=Inf;
- }
-}
-
-void intersectseg(double seg1[][2],double seg2[][2], double out[5]){
- double p1[2],q1[2],p2[2],q2[2],pt[2],pt1[2],nv[2],pts[DsizeS][4];
- double q1p1[2],q2p2[2],p1q2[2],q1p2[2],p1p2[2],q1q2[2];
- double tmp[2],tmp1[2],tmp2[2],tmp3[2],tmp4[2];
- double tmpd1,x,y,t,s,t1,s1,distance,tmpd[4],tmp3d[7];
- int ctr=0, i;
- pull2(1,seg1,p1); pull2(2,seg1,q1);
- pull2(1,seg2,p2); pull2(2,seg2,q2);
- q1p1[0]=q1[0]-p1[0];q1p1[1]=q1[1]-p1[1];
- q2p2[0]=q2[0]-p2[0];q2p2[1]=q2[1]-p2[1];
- p1q2[0]=p1[0]-q2[0];p1q2[1]=p1[1]-q2[1];
- q1p2[0]=q1[0]-p2[0];q1p2[1]=q1[1]-p2[1];
- p1p2[0]=p1[0]-p2[0];p1p2[1]=p1[1]-p2[1];
- p1q2[0]=p1[0]-q2[0];p1q2[1]=p1[1]-q2[1];
- q1q2[0]=q1[0]-q2[0];q1q2[1]=q1[1]-q2[1];
- if((norm(2,q1p1)<Eps)||(norm(2,q2p2)<Eps)){
- out[0]=-1; out[1]=Inf;
- }else{
- intersectline(p1,q1p1,p2,q2p2,tmpd);
- if(tmpd[1]<Inf-Eps){
- pt[0]=tmpd[0];pt[1]=tmpd[1];t=tmpd[2];s=tmpd[3];
- if((t*(t-1)<Eps)&&(s*(s-1)<Eps)){
- out[0]=0;out[1]=pt[0];out[2]=pt[1];out[3]=t;out[4]=s;
- }else{
- if(t<0){t=0;}; if(t>1){t=1;};
- if(s<0){s=0;}; if(s>1){s=1;};
- tmp3d[ctr]=norm(2,p1p2);ctr++;
- tmp3d[ctr]=norm(2,p1q2);ctr++;
- tmp3d[ctr]=norm(2,q1p2);ctr++;
- tmp3d[ctr]=norm(2,q1q2);ctr++;
- tmp1[0]=q2p2[1];tmp1[1]=-q2p2[0];
- intersectline(p1,tmp1,p2,q2p2,tmpd);
- if(tmpd[1]!=Inf){
- pt1[0]=tmpd[0];pt1[1]=tmpd[1];s1=tmpd[3];
- if(s1*(s1-1)<Eps){
- tmp3d[ctr]=dist(2,pt1,p1);ctr++;
- }
- }
- intersectline(q1,tmp1,p2,q2p2,tmpd);
- if(tmpd[1]!=Inf){
- pt1[0]=tmpd[0];pt1[1]=tmpd[1];s1=tmpd[3];
- if(s1*(s1-1)<Eps){
- tmp3d[ctr]=dist(2,pt1,q1);ctr++;
- }
- }
- tmp1[0]=q1p1[1];tmp1[1]=-q1p1[0];
- intersectline(p2,tmp1,p1,q1p1,tmpd);
- if(tmpd[1]!=Inf){
- pt1[0]=tmpd[0];pt1[1]=tmpd[1];s1=tmpd[3];
- if(s1*(s1-1)<Eps){
- tmp3d[ctr]=dist(2,pt1,p2);ctr++;
- }
- }
- intersectline(q2,tmp1,p1,q1p1,tmpd);
- if(tmpd[1]!=Inf){
- pt1[0]=tmpd[0];pt1[1]=tmpd[1];s1=tmpd[3];
- if(s1*(s1-1)<Eps){
- tmp3d[ctr]=dist(2,pt1,q2);ctr++;
- }
- }
- tmpd1=tmp3d[0];
- for(i=1;i<ctr;i++){
- if(tmp3d[i]<tmpd1){tmpd1=tmp3d[i];};
- }
- out[0]=tmpd1;out[1]=pt[0];out[2]=pt[1];
- out[3]=t;out[4]=s;
- }
- }else{
- distance=tmpd[0];
- nv[0]=q1p1[1]/norm(2,q1p1);nv[1]=-q1p1[0]/norm(2,q1p1);
- pts[0][0]=0;
- intersectline(p1,nv,p2,q2p2,tmpd);
- s1=tmpd[3];
- if((tmpd[1]!=Inf)&&(s1*(s1-1)<Eps)){
- x=(1-s1)*p2[0]+s1*q2[0];y=(1-s1)*p2[1]+s1*q2[1];
- push4(x,y,0,s1,pts);
- }
- intersectline(q1,nv,p2,q2p2,tmpd);
- s1=tmpd[3];
- if((tmpd[1]!=Inf)&&(s1*(s1-1)<Eps)){
- x=(1-s1)*p2[0]+s1*q2[0];y=(1-s1)*p2[1]+s1*q2[1];
- push4(x,y,1,s1,pts);
- }
- intersectline(p2,nv,p1,q1p1,tmpd);
- s1=tmpd[3];
- if((tmpd[1]!=Inf)&&(s1*(s1-1)<Eps)){
- x=(1-s1)*p1[0]+s1*q1[0];y=(1-s1)*p1[1]+s1*q1[1];
- push4(x,y,s1,0,pts);
- }
- intersectline(q2,nv,p1,q1p1,tmpd);
- if((tmpd[1]!=Inf)&&(s1*(s1-1)<Eps)){
- x=(1-s1)*p1[0]+s1*q1[0];y=(1-s1)*p1[1]+s1*q1[1];
- push4(x,y,s1,2,pts);
- }
- if(length4(pts)==0){
- tmpd1=norm(2,p1p2);
- if(norm(2,p1q2)<tmpd1){tmpd1=norm(2,p1q2);}
- if(norm(2,q1p2)<tmpd1){tmpd1=norm(2,q1p2);}
- if(norm(2,q1q2)<tmpd1){tmpd1=norm(2,q1q2);}
- out[0]=tmpd1;out[1]=Inf;
- }else{
- if(distance>Eps1){
- out[0]=distance;out[1]=Inf;
- }else{
- x=0; y=0;
- for(i=1; i<=length4(pts); i++){
- x=x+pts[i][0];
- y=y+pts[i][1];
- }
- tmp3[0]=x/length4(pts); tmp3[1]=y/length4(pts);
- nearestptpt(tmp3,seg1,tmpd);
- t=tmpd[2];
- nearestptpt(tmp3,seg2,tmpd);
- s=tmpd[2];
- out[0]=distance; out[1]=tmp3[0]; out[2]=tmp3[1];
- out[3]=t;out[4]=s;
- }
- }
- }
- }
-}
-
-int osplineseg(double ptlist[5][2],int num,double out[][2]){
- double p0[2],p1[2],p2[2],p3[2],p2p0[2],p3p1[2],p2p1[2];
- double tmp,cc,pq[2],pr[2],knots[3][2],ctrlist[2][4];
- pull2(1,ptlist,p0); pull2(2,ptlist,p1);
- pull2(3,ptlist,p2); pull2(4,ptlist,p3);
- p2p0[0]=p2[0]-p0[0];p2p0[1]=p2[1]-p0[1];
- p3p1[0]=p3[0]-p1[0];p3p1[1]=p3[1]-p1[1];
- p2p1[0]=p2[0]-p1[0];p2p1[1]=p2[1]-p1[1];
- tmp=norm(2,p2p0)*norm(2,p3p1);
- tmp=1+sqrt((1+dotprod(2,p2p0,p3p1)/tmp)/2);
- cc=4*norm(2,p2p1)/3/(norm(2,p2p0)+norm(2,p3p1))/tmp;
- pq[0]=p1[0]+cc*p2p0[0]; pq[1]=p1[1]+cc*p2p0[1];
- pr[0]=p2[0]-cc*p3p1[0];pr[1]=p2[1]-cc*p3p1[1];
- ctrlist[0][0]=0;
- push4(pq[0],pq[1],pr[0],pr[1],ctrlist);
- knots[0][0]=0;
- addptd2(knots,p1);addptd2(knots,p2);
- bezier(knots,ctrlist,num,out);
- return length2(out);
-}
-
-void intersectpartseg(double crv1[][2],double crv2[][2],int ii, int jj,int num,double out[6]){
- double distance=10*Eps2,seg1[3][2],seg2[3][2],tmpd[2],tmp1d[2],tmp2d[2];
- double tmp,snang,dst,tmpd5[5],os1[DsizeS][2],os2[DsizeS][2];
- double p0[2],p1[2],p2[2],p3[2],ptlist[5][2],regard[3][2];
- double tmp1md[20][2],tmpd3[3],tmp3md3[20][3],tmp2md3[20][3];
- double tmpd4[4],Eps00=pow(10,-8.0);
- double sx,sy;
- int kk,ll,nn;
- out[0]=Inf;
- for(kk=1;kk<6;kk++){out[kk]=0;}
- seg1[0][0]=0;seg2[0][0]=0;
- appendd2(1,ii,ii+1,crv1,seg1);
- appendd2(1,jj,jj+1,crv2,seg2);
- pull2(2,seg1,tmp1d);
- pull2(1,seg1,tmpd);
- tmp1d[0]=tmp1d[0]-tmpd[0]; tmp1d[1]=tmp1d[1]-tmpd[1];
- pull2(2,seg2,tmp2d);
- pull2(1,seg2,tmpd);
- tmp2d[0]=tmp2d[0]-tmpd[0]; tmp2d[1]=tmp2d[1]-tmpd[1];
- crossprod(2,tmp1d,tmp2d,tmpd);
- snang=fabs(tmpd[0])/(norm(2,tmp1d)*norm(2,tmp2d));
- intersectseg(seg1,seg2,tmpd5);
- dst=tmpd5[0];
- if(dst<Eps){
- if(dst>-Eps){
- out[0]=tmpd5[1];out[1]=tmpd5[2];out[2]=ii+tmpd5[3];
- out[3]=jj+tmpd5[4];out[4]=dst;out[5]=snang;
- }
- }else{
- if(dst<Eps2){
- os1[0][0]=0;os2[0][0]=0;
- pull2(1,seg1,tmp1d);
- pull2(2,seg1,tmp2d);
- tmpd[0]=tmp2d[0]-tmp1d[0];tmpd[1]=tmp2d[1]-tmp1d[1];
- if((length2(crv1)==2)||(norm(2,tmpd)>distance-Eps)){
- appendd2(1,1,2,seg1,os1);
- }else{
- pull2(1,seg1,p1);pull2(2,seg1,p2);
- if(ii==1){
- pull2(3,crv1,p3);
- tmpd[0]=p2[0]-p1[0];tmpd[1]=p2[1]-p1[1];
- tmp1d[0]=(p1[0]+p2[0])/2;
- tmp1d[1]=(p1[1]+p2[1])/2;
- tmp2d[0]=tmp1d[0]+tmpd[1];
- tmp2d[1]=tmp1d[1]-tmpd[0];
- regard[0][0]=0;
- addptd2(regard,tmp1d); addptd2(regard,tmp2d);
- reflectpoint(p3,regard,p0);
- }else{
- if(ii==length2(crv1)-1){
- pull2(ii-1,crv1,p0);
- tmpd[0]=p2[0]-p1[0]; tmpd[1]=p2[1]-p1[1];
- tmp1d[0]=(p1[0]+p2[0])/2;
- tmp1d[1]=(p1[1]+p2[1])/2;
- tmp2d[0]=tmp1d[0]+tmpd[1];
- tmp2d[1]=tmp1d[1]-tmpd[0];
- regard[0][0]=0;
- addptd2(regard,tmp1d); addptd2(regard,tmp2d);
- reflectpoint(p0,regard,p3);
- }else{
- pull2(ii-1,crv1,p0);pull2(ii+2,crv1,p3);
- }
- }
- ptlist[0][0]=0;
- addptd2(ptlist,p0);addptd2(ptlist,p1);
- addptd2(ptlist,p2);addptd2(ptlist,p3);
- osplineseg(ptlist,num,os1);
- }
- pull2(1,seg2,tmp1d);
- pull2(2,seg2,tmp2d);
- if((length2(crv2)==2)||(dist(2,tmp2d,tmp1d)>distance-Eps)){
- appendd2(1,1,2,seg2,os2);
- }else{
- pull2(1,seg2,p1);pull2(2,seg2,p2);
- if(jj==1){
- pull2(3,crv2,p3);
- tmpd[0]=p2[0]-p1[0];tmpd[1]=p2[1]-p1[1];
- tmp1d[0]=(p1[0]+p2[0])/2;
- tmp1d[1]=(p1[1]+p2[1])/2;
- tmp2d[0]=tmp1d[0]+tmpd[1];
- tmp2d[1]=tmp1d[1]-tmpd[0];
- regard[0][0]=0;
- addptd2(regard,tmp1d); addptd2(regard,tmp2d);
- reflectpoint(p3,regard,p0);
- }else{
- if(jj==length2(crv2)-1){
- pull2(jj-1,crv2,p0);
- tmpd[0]=p2[0]-p1[0]; tmpd[1]=p2[1]-p1[1];
- tmp1d[0]=(p1[0]+p2[0])/2;
- tmp1d[1]=(p1[1]+p2[1])/2;
- tmp2d[0]=tmp1d[0]+tmpd[1];
- tmp2d[1]=tmp1d[1]-tmpd[0];
- regard[0][0]=0;
- addptd2(regard,tmp1d); addptd2(regard,tmp2d);
- reflectpoint(p0,regard,p3);
- }else{
- pull2(jj-1,crv2,p0);pull2(jj+2,crv2,p3);
- }
- }
- ptlist[0][0]=0;
- addptd2(ptlist,p0);addptd2(ptlist,p1);
- addptd2(ptlist,p2);addptd2(ptlist,p3);
- osplineseg(ptlist,num,os2);
- }
- tmp2md3[0][0]=0;
- for(kk=1;kk<length2(os1);kk++){
- for(ll=1;ll<length2(os2);ll++){
- seg1[0][0]=0; seg2[0][0]=0;
- pull2(kk,os1,tmpd);addptd2(seg1,tmpd);
- pull2(kk+1,os1,tmpd);addptd2(seg1,tmpd);
- pull2(ll,os2,tmpd);addptd2(seg2,tmpd);
- pull2(ll+1,os2,tmpd);addptd2(seg2,tmpd);
- intersectseg(seg1,seg2,tmpd5);
- if((tmpd5[0]<Eps1)&&(tmpd5[1]<Inf-Eps)){
- if(tmpd5[0]<dst+Eps00){
- dst=tmpd5[0];
- tmp3md3[0][0]=0;
- for(nn=1;nn<=length3(tmp2md3);nn++){
- pull3(nn,tmp2md3,tmpd3);
- if(tmpd3[0]<dst+Eps00){
- addptd3(tmp3md3,tmpd3);
- }
- }
- tmp2md3[0][0]=0;
- for(nn=1;nn<=length3(tmp3md3);nn++){
- pull3(nn,tmp3md3,tmpd3);
- addptd3(tmp2md3,tmpd3);
- }
- push3(dst,tmpd5[1],tmpd5[2],tmp2md3);
- }
- }
- }
- }
- if(length3(tmp2md3)>0){
- tmp1md[0][0]=0;
- sx=0; sy=0;
- for(nn=1;nn<=length3(tmp2md3);nn++){
- pull3(nn,tmp2md3,tmpd3);
- push2(tmpd3[1],tmpd3[2],tmp1md);
- sx=sx+tmpd3[1];
- sy=sy+tmpd3[2];
- }
- sx=sx/length3(tmp2md3);
- sy=sy/length3(tmp2md3);
- p0[0]=sx; p0[1]=sy;
- pull2(ii,crv1,p1); pull2(ii+1,crv1,p2);
- tmp1d[0]=p2[0]-p1[0];tmp1d[1]=p2[1]-p1[1];
- tmpd[0]=tmp1d[1];tmpd[1]=-tmp1d[0];
- intersectline(p0,tmpd,p1,tmp1d,tmpd4);
- tmp=tmpd4[3];
- if(tmp<0){tmp=0;}
- if(tmp>1){tmp=1;}
- out[0]=sx;out[1]=sy;out[2]=ii+tmp;
- pull2(jj,crv2,p1); pull2(jj+1,crv2,p2);
- tmp1d[0]=p2[0]-p1[0];tmp1d[1]=p2[1]-p1[1];
- tmpd[0]=tmp1d[1];tmpd[1]=-tmp1d[0];
- intersectline(p0,tmpd,p1,tmp1d,tmpd4);
- tmp=tmpd4[3];
- if(tmp<0){tmp=0;}
- if(tmp>1){tmp=1;}
- out[3]=jj+tmp;out[4]=dst;out[5]=snang;
- }
- }
- }
-}
-
-void collectsameseg(double ptdL[][6],double rL[][6]){
- double Eps00=pow(10,-8.0),tmp1d[2],tmp2d[2],tmp1d6[6],tmp2d6[6];
- int ii,jj,kk,nr,ctr,numL[40],diffL[40];
- double s1,e1,s2,e2,dst,tmp1,tmp2,tmp1md6[40][6];
- rL[0][0]=0;
- if(length6(ptdL)==0){
- return;
- }
- for(ii=2;ii<=length6(ptdL);ii++){
- pull6(ii,ptdL,tmp1d6);addptd6(rL,tmp1d6);
- }
- tmp1md6[0][0]=0;
- pull6(1,ptdL,tmp1d6);
- addptd6(tmp1md6,tmp1d6);
- kk=tmp1d6[2];
- if(tmp1d6[2]<kk+Eps00){
- s1=kk-1-Eps00;e1=s1+2+2*Eps00;
- }else{
- s1=kk-Eps00; e1=s1+1+2*Eps00;
- }
- kk=tmp1d6[3];
- if(tmp1d6[3]<kk+Eps00){
- s2=kk-1-Eps00;e2=s2+2+2*Eps00;
- }else{
- s2=kk-Eps00; e2=s2+1+2*Eps00;
- }
- ctr=1;numL[0]=0;
- for(ii=1;ii<=length6(rL);ii++){
- pull6(ii,rL,tmp1d6);
- tmp1=tmp1d6[2]; tmp2=tmp1d6[3];
- if((tmp1>s1)&&(tmp1<e1)&&(tmp2>s2)&&(tmp2<e2)){
- addptd6(tmp1md6,tmp1d6);
- numL[ctr]=ii;ctr++;
- }
- }
- dst=100;
- for(ii=1;ii<=length6(tmp1md6);ii++){
- pull6(ii,tmp1md6,tmp1d6);
- if(tmp1d6[4]<dst){
- dst=tmp1d6[4];
- }
- }
- ptdL[0][0]=0;
- for(ii=1;ii<=length6(tmp1md6);ii++){
- pull6(ii,tmp1md6,tmp1d6);
- if(tmp1d6[4]<dst+Eps00){
- addptd6(ptdL,tmp1d6);
- }
- }
- for(ii=0;ii<=length6(rL);ii++){
- diffL[ii]=0;
- }
- for(ii=1;ii<=ctr;ii++){
- kk=numL[ii];
- diffL[kk]=1;
- }
- nr=length6(rL);
- rL[0][0]=0;
- for(ii=1;ii<=nr;ii++){
- if(diffL[ii]==0){
- pull6(ii,rL,tmp1d6);addptd6(rL,tmp1d6);
- }
- }
-}
-
-void intersectcurvesPp(double crv1s[][2],double crv2s[][2],int num,double out[][6]){
- double Eps00=pow(10,-8.0),Dist=10*Eps2, crv1[DsizeL][2],crv2[DsizeL][2];
- double tmp1md6[DsizeS][6],tmp2md6[DsizeS][6];
- double tmpd[2],tmp1d[2],tmp2d[2],tmpd6[6],tmp1d6[6];
- double sx,sy,dst,ans[4];
- int ii,jj,kk,nall,self,js,je;
- crv1[0][0]=0;
- pull2(1,crv1s,tmpd);addptd2(crv1,tmpd);
- for(ii=2;ii<=length2(crv1s);ii++){
- pull2(length2(crv1),crv1,tmp1d);
- pull2(ii,crv1s,tmp2d);
- if(dist(2,tmp1d,tmp2d)>Eps){
- addptd2(crv1,tmp2d);
- }
- }
- crv2[0][0]=0;
- pull2(1,crv2s,tmpd);
- addptd2(crv2,tmpd);
- for(ii=2;ii<=length2(crv2s);ii++){
- pull2(length2(crv2),crv2,tmp1d);
- pull2(ii,crv2s,tmp2d);
- if(dist(2,tmp1d,tmp2d)>Eps){
- addptd2(crv2,tmp2d);
- }
- }
- if(length2(crv1)!=length2(crv2)){
- self=0;
- }else{
- self=1;
- for(ii=1;ii<=length2(crv1);ii++){
- pull2(ii,crv1,tmp1d);pull2(ii,crv2,tmp2d);
- if(dist(2,tmp1d,tmp2d)>0){
- self=0;
- break;
- }
- }
- }
- tmp1md6[0][0]=0;
- for(ii=1;ii<=length2(crv1)-1;ii++){
- if(self==0){
- js=1; je=length2(crv2)-1;
- }else{
- js=ii+2; je=length2(crv2)-1;
- }
- for(jj=js;jj<=je;jj++){
- intersectpartseg(crv1,crv2,ii,jj,num,tmpd6);
- if(tmpd6[0]<Inf-Eps){
- tmpd[0]=tmpd6[0];tmpd[1]=tmpd6[1];
- if(length6(tmp1md6)==0){
- addptd6(tmp1md6,tmpd6);
- }else{
- pull6(length6(tmp1md6),tmp1md6,tmp1d6);
- tmp1d[0]=tmp1d6[0];tmp1d[1]=tmp1d6[1];
- if(dist(2,tmp1d,tmpd)>Eps1){
- addptd6(tmp1md6,tmpd6);
- }
- }
- if(self==1){
- push6(tmpd6[0],tmpd6[1],tmpd6[3],tmpd6[2],tmpd6[4],tmpd6[5],tmp1md6);
- }
- }
- }
- }
- out[0][0]=0;
- tmp2md6[0][0]=0;
- while(length6(tmp1md6)>0){
- collectsameseg(tmp1md6,tmp2md6);
- dst=100;
- for(ii=1;ii<=length6(tmp1md6);ii++){
- pull6(ii,tmp1md6,tmpd6);
- if(tmpd6[4]<dst){
- dst=tmpd6[4];
- }
- }
- sx=0; sy=0;nall=0;
- for(ii=1;ii<=length6(tmp1md6);ii++){
- pull6(ii,tmp1md6,tmpd6);
- if(tmpd6[4]<dst+Eps00){
- nall++;
- sx=sx+tmpd6[0]; sy=sy+tmpd6[1];
- }
- tmp1d[0]=sx/nall; tmp1d[1]=sy/nall;
- tmp1d6[0]=tmp1d[0];tmp1d6[1]=tmp1d[1];
- nearestptpt(tmp1d,crv1,ans);
- tmp1d6[2]=ans[2];
- nearestptpt(tmp1d,crv2,ans);
- tmp1d6[3]=ans[2];
- tmp1d6[4]=dst;
- tmp1d6[5]=tmpd6[5];
- addptd6(out,tmp1d6);
- }
- tmp1md6[0][0]=0;
- for(ii=1;ii<=length6(tmp2md6);ii++){
- pull6(ii,tmp2md6,tmpd6);addptd6(tmp1md6,tmpd6);
- }
- }
-}
-
-void intersectcurves(double crv1[][2],double crv2[][2],int num,double out[][2]){
- double out6[DsizeS][6],tmpd[2],tmpd6[6];
- int jj;
- intersectcurvesPp(crv1,crv2,num,out6);
- out[0][0]=0;
- for(jj=1;jj<=length6(out6);jj++){
- pull6(jj,out6,tmpd6);push2(tmpd6[0],tmpd6[1],out);
- }
-}
diff --git a/texmf-dist/scripts/ketcindy/ketlibC/ketcommonhead.h b/texmf-dist/scripts/ketcindy/ketlibC/ketcommonhead.h
deleted file mode 100644
index 7e83a2b9..00000000
--- a/texmf-dist/scripts/ketcindy/ketlibC/ketcommonhead.h
+++ /dev/null
@@ -1,97 +0,0 @@
-int length1(double gdata[]);
-int length2(double gdata[][2]);
-int length3(double gdata[][3]);
-int length4(double gdata[][4]);
-int length5(double gdata[][5]);
-int length6(double gdata[][6]);
-int length2i(int gdata[][2]);
-void copyd(int from, int upto, double q[], double p[]);
-void copyi(int from, int upto, int q[], int p[]);
-int addptd2(double gdata[][2], double pt[2]);
-int addptd3(double gdata[][3], double pt[3]);
-int addptd4(double gdata[][4], double pt[4]);
-int addptd5(double gdata[][5], double pt[5]);
-int addptd6(double gdata[][6], double pt[6]);
-int add2(double gdata[][2], double x, double y);
-int add3(double gdata[][3], double x, double y, double z);
-int push2(double x, double y, double ptL[][2]);
-int push3(double x, double y, double z, double ptL[][3]);
-int push4(double x, double y, double z, double w, double ptL[][4]);
-int push5(double x, double y, double z, double w, double u, double ptL[][5]);
-int push6(double x, double y, double z, double w, double u, double v,double ptL[][6]);
-void pull2(int num, double ptL[][2],double pt[2]);
-void pull3(int num, double ptL[][3],double pt[3]);
-void pull4(int num, double ptL[][4],double pt[4]);
-void pull5(int num, double ptL[][5],double pt[5]);
-void pull6(int num, double ptL[][6],double pt[6]);
-int appendd2(int level, int from,int upto, double gdata[][2],double mat[][2]);
-int appendd3(int level, int from,int upto, double gdata[][3],double mat[][3]);
-int prependd2(int from,int upto, double gdata[][2],double mat[][2]);
-int appendd1(double numvec[], double num);
-int appendi1(int numvec[],int num);
-int prependi1(int num, int numvec[]);
-int removei2(int nrmv,int mat[][2]);
-int dataindexi1(int out[],int din[][2]);
-int dataindexd1(double out[],int din[][2]);
-int dataindexd2(int level,double out[][2],int din[][2]);
-int dataindexd3(int level, double out[][3],int din[][2]);
-int dataindexd4(int level, double out[][4],int din[][2]);
-void dispvec(int n,double dt[]);
-void dispveci(int n,int dt[]);
-void dispmatd2(int from, int upto, double mat[][2]);
-void dispmatd3(int from, int upto, double mat[][3]);
-void dispmatd4(int from, int upto, double mat[][4]);
-void dispmatd5(int from, int upto, double mat[][5]);
-void dispmatd6(int from, int upto, double mat[][6]);
-void dispmatd2all(double mat[][2]);
-void dispmatd3all(double mat[][3]);
-void dispmatd4all(double mat[][4]);
-void dispmatd5all(double mat[][5]);
-void dispmatd6all(double mat[][6]);
-void dispmati2(int from, int upto, int mat[][2]);
-void dispmati1(int from, int upto, int mat[]);
-void readdata3(const char *fname, double out[][3]);
-void readdata2(const char *fname, double out[][2]);
-int output2(const char *var, const char *fname, int level, double out[][2]);
-void simplesort(double number[]);
-int memberi(int a, int list[]);
-double dotprod(int dim, double p[], double q[]);
-double norm(int dim, double p[]);
-double dist(int dim, double p[], double q[]);
-void crossprod(int dim,double a[3],double b[3], double out[3]);
-void reflectpoint(double p1[2],double regard[][2],double p2[2]);
-void pointoncurve(double t, double gdata[][2], double eps, double pt[]);
-int partcrv(double a,double b,double pkL[][2], double pL[][2]);
-int partcrv3(double a,double b,double pkL[][3], double pL[][3]);
-int connectseg(double pdata[][2], double eps, double out[][2]);
-void koutenseg(double a[2], double b[2], double c[2], double d[2],
- double eps, double eps2, double out[4]);
-double paramoncurve(double p[2], int n, double ptL[][2]);
-void nearestptpt(double pa[2], double pL[][2], double ans[4]);
-int intersectselfPp(double data1[][2],double eps,double eps1s,double kL[][4]);
-int intersectcrvsPp(double data1[][2], double data2[][2],
- double eps,double eps1s, double kL[][4]);
-int dropnumlistcrv(double qd[][2], double eps1, int out[]);
-int increasept2(double ptL[][2], int nn, double out[][2]);
-int increasept3(double ptL[][3], int nn, double out[][3]);
-void bezierpt(double t, double p0[2], double p3[2],
- double p1[2], double p2[2], double ptout[2]);
-int bezier(double ptL[][2], double ctrL[][4], int num, double out[][2]);
-int ospline(int level, double ptL[][2], int num, double out[][2]);
-void bezierpt3(double t, double p0[3], double p3[3],
- double p1[3], double p2[3], double ptout[3]);
-int bezier3(double ptL[][3], double ctrL[][6], int num, double out[][3]);
-int ospline3(int level, double ptL[][3], int num, double out[][3]);
-void segplot(double x1,double y1,double x2,double y2,double seg[][2]);
-void addsegplot(double x1,double y1,double seg[][2]);
-void circledata(double cx,double cy,double r, int num,double out[][2]);
-void intersectline(double p1[2],double v1[2], double p2[2],double v2[2],double out[4]);
-void intersectseg(double seg1[][2],double seg2[][2], double out[5]);
-int osplineseg(double ptlist[5][2],int num,double out[][2]);
-void intersectpartseg(double crv1[][2],double crv2[][2],int ii, int jj,int num,double out[6]);
-void collectsameseg(double ptdL[][6],double rL[][6]);
-void intersectcurvesPp(double crv1s[][2],double crv2s[][2],int num,double out[][6]);
-void intersectcurves(double crv1[][2],double crv2[][2],int num,double out[][2]);
-
-const double Inf=99999;
-const int Infint=30000;
diff --git a/texmf-dist/scripts/ketcindy/ketlibC/surflib.h b/texmf-dist/scripts/ketcindy/ketlibC/surflib.h
deleted file mode 100644
index d9c0fbdc..00000000
--- a/texmf-dist/scripts/ketcindy/ketlibC/surflib.h
+++ /dev/null
@@ -1,2098 +0,0 @@
-// 17.06.16 crvsfparadata changed ( num of devision )
-
-int output3(const char *var, const char *fname, int level, double out[][3]){
- int nall=floor(out[0][0]+0.5), ndin, din[DsizeM][2],i,j,ctr;
- double tmpd[3];
- FILE *fp;
- fp=fopen(fname,"w");
- if (fp == NULL) {
- printf("cannot open\n");
- return -1;
-// exit(1);
- }
- ndin=dataindexd3(level, out,din);
- fprintf(fp,"%s//\n",var); //17.05.29
-// fprintf(fp,"%s3d//\n",var2);
- for(i=1; i<=ndin; i++){
- fprintf(fp,"start//\n");
- fprintf(fp,"[");
- ctr=0;
- for(j=din[i][0]; j<=din[i][1]; j++){
- pull3(j,out,tmpd);
- fprintf(fp,"[ %7.5f, %7.5f, %7.5f]",tmpd[0],tmpd[1],tmpd[2]);
- ctr++;
- if(ctr==5){
- fprintf(fp,"]//\n[");
- ctr=0;
- }else{
- if(j<din[i][1]){
- fprintf(fp,",");
- }
- }
- }
- fprintf(fp,"]//\n");
- if(i<ndin){
- fprintf(fp,"end//\n");
- }
- else{
- fprintf(fp,"end////\n");
- }
- }
- fclose(fp);
- return 0;
-}
-
-int output3h(const char *var, const char *varh, const char *fname, double out[][3]){
- // 17.06.09
- double out1[DsizeLL][3], tmpd[3];
- int din1[DsizeM][2],din2[DsizeM][2], i, j,ctr;
- FILE *fp;
- fp=fopen(fname,"w");
- if (fp == NULL) {
- printf("cannot open\n");
- return -1;
- }
- dataindexd3(3,out,din1);
- out1[0][0]=0;
- appendd3(0, din1[1][0],din1[1][1],out,out1);
- dataindexd3(2, out1,din2);
- fprintf(fp,"%s//\n",var);
- for(i=1; i<=length2i(din2); i++){
- fprintf(fp,"start//\n");
- fprintf(fp,"[");
- ctr=0;
- for(j=din2[i][0]; j<=din2[i][1]; j++){
- pull3(j,out1,tmpd);
- fprintf(fp,"[ %7.5f, %7.5f, %7.5f]",tmpd[0],tmpd[1],tmpd[2]);
- ctr++;
- if(ctr==5){
- if(j<din2[i][1]){
- fprintf(fp,"]//\n[");
- ctr=0;
- }
- }else{
- if(j<din2[i][1]){
- fprintf(fp,",");
- }
- }
- }
- fprintf(fp,"]//\n");
- fprintf(fp,"end//\n");
- }
- out1[0][0]=0;
- fprintf(fp,"%s//\n",varh); //17.06.16from
- appendd3(0, din1[2][0],din1[2][1],out,out1);
- dataindexd3(2, out1,din2);
- for(i=1; i<=length2i(din2); i++){
- fprintf(fp,"start//\n");
- fprintf(fp,"[");
- for(j=din2[i][0]; j<=din2[i][1]; j++){
- pull3(j,out1,tmpd);
- fprintf(fp,"[ %7.5f, %7.5f, %7.5f]",tmpd[0],tmpd[1],tmpd[2]);
- ctr++;
- if(ctr==5){
- if(j<din2[i][1]){
- fprintf(fp,"]//\n[");
- ctr=0;
- }
- }else{
- if(j<din2[i][1]){
- fprintf(fp,",");
- }
- }
- }
- fprintf(fp,"]//\n");
-// if(i<ndin2){
- fprintf(fp,"end//\n");
-// }
-// else{
-// fprintf(fp,"end////\n");
-// }
- }
- fprintf(fp,"//\n");
- fclose(fp);
- return 0;
-}
-
-int writedataC(const char *fname, double out[][3]){
- int i, nall;
- FILE *fp;
- nall=length3(out);
- fp=fopen(fname,"w");
- for(i=1; i<=nall; i++){
- fprintf(fp,"%7.5f %7.5f %7.5f\n",out[i][0],out[i][1],out[i][2]);
- }
- fprintf(fp,"%7.5f %7.5f %7.5f\n",Inf,Inf,Inf);
- fclose(fp);
- return nall;
-}
-
-int readdataC(const char *fname, double data[][3]){
- int i, j, ndata=0;
- FILE *fp;
- fp=fopen(fname,"r");
- if(fp==NULL){
- printf("file not found\n");
- return 1;
- }
- while( ! feof(fp) && ndata<DsizeL){
- ndata++;
- for(j=0;j<=2;j++){
- fscanf(fp,"%lf",&data[ndata][j]);
- }
- if(data[ndata][1]==Inf){
- ndata--;
- break;
- }
- }
- fclose(fp);
- data[0][0]=ndata;
- return ndata;
-}
-
-void parapt(double pt3[3],double pt2[2]){
- if(fabs(pt3[0])>Inf-1){
- pt2[0]=pt3[0]; pt2[1]=pt3[1];
- }
- else{
- pt2[0]=-pt3[0]*sin(PHI)+pt3[1]*cos(PHI);
- pt2[1]=-pt3[0]*cos(PHI)*cos(THETA)-pt3[1]*sin(PHI)*cos(THETA)+pt3[2]*sin(THETA);
- }
-}
-
-int projpara(double p3[][3], double p2[][2]){
- double pt3[3], pt2[2];
- int i, nall, nall2;
- nall=length3(p3);
- p2[0][0]=0;
- for(i=1; i<=nall; i++){
- pull3(i,p3,pt3);
- parapt(pt3,pt2);
- nall2=addptd2(p2,pt2);
- }
- return nall2;
-}
-
-double invparapt(double ph, double fh[][2], double fk[][3],double out[3]){
- int n, nfk=length3(fk), nph=length2(fh);
- double s0=ph-n, ak[3], bk[3], ah[2], bh[2], pk[3];
- if(nfk>2){
- n=trunc(ph);
- s0=ph-n;
- if(ph>nph-Eps){
- out[0]=fk[nfk][0]; out[1]=fk[nfk][1]; out[2]=fk[nfk][2];
- return nph;
- }
- }
- else{
- n=1;
- s0=ph-1;
- }
- ak[0]=fk[n][0]; ak[1]=fk[n][1]; ak[2]=fk[n][2];
- bk[0]=fk[n+1][0]; bk[1]=fk[n+1][1]; bk[2]=fk[n+1][2];
- ah[0]=fh[n][0]; ah[1]=fh[n][1];
- bh[0]=fh[n+1][0]; bh[1]=fh[n+1][1];
- out[0]=(1-s0)*ak[0]+s0*bk[0];
- out[1]=(1-s0)*ak[1]+s0*bk[1];
- out[2]=(1-s0)*ak[2]+s0*bk[2];
- return n+s0;
-}
-
-int surfcurve(short ch,int level, double crv[][2], double pdata[][3]){
- double p2[2], pt[3];
- int i, n, nall;
- n=length2(crv);
- pdata[0][0]=0;
- for(i=1; i<=n; i++){
- pull2(i,crv,p2);
- surffun(ch,p2[0],p2[1],pt);
- nall=addptd3(pdata,pt);
- }
- return nall;
-}
-
-int xyzax3data(double x0, double x1, double y0, double y1, double z0, double z1,
- double out[][3]){
- int nall;
- double pd3[10][3];
- out[0][0]=0; nall=0;
- pd3[0][0]=2;
- pd3[1][0]=x0; pd3[1][1]=0; pd3[1][2]=0;
- pd3[2][0]=x1; pd3[2][1]=0; pd3[2][2]=0;
- nall=appendd3(2,1,2,pd3,out);
- pd3[1][0]=0; pd3[1][1]=y0; pd3[1][2]=0;
- pd3[2][0]=0; pd3[2][1]=y1; pd3[2][2]=0;
- nall=appendd3(2,1,2,pd3,out);
- pd3[1][0]=0; pd3[1][1]=0; pd3[1][2]=z0;
- pd3[2][0]=0; pd3[2][1]=0; pd3[2][2]=z1;
- nall=appendd3(2,1,2,pd3,out);
- return nall;
-}
-
-void evlptablepara(short ch){
- int i, j;
- double u,v,u1,u2,v1,v2,pt1[3],pt2[3],pt2d1[2],pt2d2[2],dxu,dyu,dxv,dyv;
- double du=(Urng[1]-Urng[0])/Mdv, dv=(Vrng[1]-Vrng[0])/Ndv;
- double eps=0.00001;
- for (j= 0; j < Ndv+1; j++) {
- v=Vrng[0]+j*dv;
- v1=v-eps/2; v2=v+eps/2;
- for (i = 0; i < Mdv+1; i++) {
- u=Urng[0]+i*du;
- u1=u-eps/2; u2=u+eps/2;
- surffun(ch,u1,v,pt1); parapt(pt1,pt2d1);
- surffun(ch,u2,v,pt2); parapt(pt2,pt2d2);
- dxu=(pt2d2[0]-pt2d1[0])/eps;
- dyu=(pt2d2[1]-pt2d1[1])/eps;
- surffun(ch,u,v1,pt1); parapt(pt1,pt2d1);
- surffun(ch,u,v2,pt2); parapt(pt2,pt2d2);
- dxv=(pt2d2[0]-pt2d1[0])/eps;
- dyv=(pt2d2[1]-pt2d1[1])/eps;
- Zval[j][i]=dxu*dyv-dxv*dyu;
- }
- }
- for (i = 0; i < Mdv+1; i++) {
- Xval[i]=Urng[0]+i*du;
- }
- for (j= 0; j < Ndv+1; j++) {
- Yval[j]=Vrng[0]+j*dv;
- }
-};
-
-double evlpfun(short ch, double u, double v){
- double u1,u2,v1,v2,pt1[3],pt2[3],pt2d1[2],pt2d2[2],dxu,dyu,dxv,dyv;
- double du=(Urng[1]-Urng[0])/Mdv, dv=(Vrng[1]-Vrng[0])/Ndv;
- double eps=0.00001;
- u1=u-eps/2; u2=u+eps/2;
- if(u1<Urng[0]){u1=Urng[0];}
- if(u2>Urng[1]){u2=Urng[1];}
- surffun(ch,u1,v,pt1); parapt(pt1,pt2d1);
- surffun(ch,u2,v,pt2); parapt(pt2,pt2d2);
- dxu=(pt2d2[0]-pt2d1[0])/(u2-u1);
- dyu=(pt2d2[1]-pt2d1[1])/(u2-u1);
- v1=v-eps/2; v2=v+eps/2;
- if(v1<Vrng[0]){v1=Vrng[0];}
- if(v2>Vrng[1]){v2=Vrng[1];}
- surffun(ch,u,v1,pt1); parapt(pt1,pt2d1);
- surffun(ch,u,v2,pt2); parapt(pt2,pt2d2);
- dxv=(pt2d2[0]-pt2d1[0])/(v2-v1);
- dyv=(pt2d2[1]-pt2d1[1])/(v2-v1);
- return dxu*dyv-dxv*dyu;
-};
-
-int envelopedata(short ch, double out[][2]){
- int i, j, k, ctrq=0,ctr, nall;
- double uval1,uval2,vval1,vval2,eval11,eval12,eval21,eval22;
- double pl[5][2], vl[5], ql[11][2], out2[DsizeM][2];
- double du=(Urng[1]-Urng[0])/Mdv;
- double dv=(Vrng[1]-Vrng[0])/Mdv;
- ctr=0;
- for (j = 0; j < Ndv; j++) {
- vval1=Vrng[0]+j*dv;
- vval2=Vrng[0]+(j+1)*dv;
- uval1=Urng[0];
- eval11=evlpfun(ch,uval1,vval1);
- eval12=evlpfun(ch,uval1,vval2);
- for (i = 0; i < Mdv; i++) {
- uval2=Urng[0]+(i+1)*du;
- eval21=evlpfun(ch,uval2,vval1);
- eval22=evlpfun(ch,uval2,vval2);
- pl[0][0]=uval1; pl[0][1]=vval1; vl[0]=eval11;
- pl[1][0]=uval2; pl[1][1]=vval1; vl[1]=eval21;
- pl[2][0]=uval2; pl[2][1]=vval2; vl[2]=eval22;
- pl[3][0]=uval1; pl[3][1]=vval2; vl[3]=eval12;
- pl[4][0]=uval1; pl[4][1]=vval1; vl[4]=eval11;
- ctrq=0;
- for (k = 0; k < 4; k++) {
- if(fabs(vl[k])<=Eps){
- ql[ctrq][0]=pl[k][0];
- ql[ctrq][1]=pl[k][1];
- ctrq++;
- }
- else if(vl[k]>Eps){
- if(vl[k+1]< -Eps){
- ql[ctrq][0]=1/(vl[k]-vl[k+1])*(-vl[k+1]*pl[k][0]+vl[k]*pl[k+1][0]);
- ql[ctrq][1]=1/(vl[k]-vl[k+1])*(-vl[k+1]*pl[k][1]+vl[k]*pl[k+1][1]);
- ctrq++;
- }
- }
- else{
- if(vl[k+1]>Eps){
- ql[ctrq][0]=1/(-vl[k]+vl[k+1])*(vl[k+1]*pl[k][0]-vl[k]*pl[k+1][0]);
- ql[ctrq][1]=1/(-vl[k]+vl[k+1])*(vl[k+1]*pl[k][1]-vl[k]*pl[k+1][1]);
- ctrq++;
- }
- }
- }
- uval1=uval2;
- eval11=eval21;
- eval12=eval22;
- if(ctrq==2){
- if(ctr>0){
- ctr++;
- out[ctr][0]=Inf;
- out[ctr][1]=2; // 2 <- 0 ?
- }
- ctr++;
- out[ctr][0]=ql[0][0];
- out[ctr][1]=ql[0][1];
- ctr++;
- out[ctr][0]=ql[1][0];
- out[ctr][1]=ql[1][1];
- }
- }
- }
- out[0][0]=ctr;
- if(ctr>0){
- nall=connectseg(out, Eps, out2);
- out[0][0]=0;
- nall=appendd2(2,1,nall,out2,out);
- }
- return nall;
-}
-
-/*
-
-int implicitplot(double out[][2]){
- int i, j, k, ctrq=0,ctr, nall;
- double pl[5][2], vl[5], ql[11][2], out2[DsizeM][2];
- ctr=0;
- for (j = 0; j < Ndv; j++) {
- for (i = 0; i < Mdv; i++) {
- pl[0][0]=Xval[i]; pl[0][1]=Yval[j]; vl[0]=Zval[j][i];
- pl[1][0]=Xval[i+1]; pl[1][1]=Yval[j]; vl[1]=Zval[j][i+1];
- pl[2][0]=Xval[i+1]; pl[2][1]=Yval[j+1]; vl[2]=Zval[j+1][i+1];
- pl[3][0]=Xval[i]; pl[3][1]=Yval[j+1]; vl[3]=Zval[j+1][i];
- pl[4][0]=Xval[i]; pl[4][1]=Yval[j]; vl[4]=Zval[j][i];
- ctrq=0;
- for (k = 0; k < 4; k++) {
- if(fabs(vl[k])<=Eps){
- ql[ctrq][0]=pl[k][0];
- ql[ctrq][1]=pl[k][1];
- ctrq++;
- }
- else if(vl[k]>Eps){
- if(vl[k+1]< -Eps){
- ql[ctrq][0]=1/(vl[k]-vl[k+1])*(-vl[k+1]*pl[k][0]+vl[k]*pl[k+1][0]);
- ql[ctrq][1]=1/(vl[k]-vl[k+1])*(-vl[k+1]*pl[k][1]+vl[k]*pl[k+1][1]);
- ctrq++;
- }
- }
- else{
- if(vl[k+1]>Eps){
- ql[ctrq][0]=1/(-vl[k]+vl[k+1])*(vl[k+1]*pl[k][0]-vl[k]*pl[k+1][0]);
- ql[ctrq][1]=1/(-vl[k]+vl[k+1])*(vl[k+1]*pl[k][1]-vl[k]*pl[k+1][1]);
- ctrq++;
- }
- }
- }
- if(ctrq==2){
- if(ctr>0){
- ctr++;
- out[ctr][0]=Inf;
- out[ctr][1]=2; // 2 <- 0 ?
- }
- ctr++;
- out[ctr][0]=ql[0][0];
- out[ctr][1]=ql[0][1];
- ctr++;
- out[ctr][0]=ql[1][0];
- out[ctr][1]=ql[1][1];
- }
- }
- }
- out[0][0]=ctr;
- if(ctr>0){
- nall=connectseg(out, Eps, out2);
- out[0][0]=0;
- nall=appendd2(2,1,nall,out2,out);
- }
- return nall;
-}
-
-*/
-
-int cuspsplitpara(short ch,double pdata[][2], double outkL[][3]){
- int i, j, ng, n, nd, ndd, ndrop, is, ncusp=0, ncusppt,st, en, npk,nph, cflg;
- int cusp[DsizeM], cuspflg;
- int ntmp,ntmp1,ntmp2, ntmpnum, noutkL=0, noutk=0, nout=0;
- int din[DsizeM][2], dind[DsizeM][2], drop[DsizeL], tmpnum[DsizeM];
- double eps=pow(10.0,-6.0);
- double vtmp, vtmp1,kaku,cva, ps[2], pe[2],v1[2],v2[2];
- double tmp[2],tmp1[2],tmp2[2],pt3d[3],pt2d[2],q3d[3],q2d[2];
- double ptk[DsizeM][3],pth[DsizeM][2], outk[DsizeM][3];
- double ptxy[DsizeM][2],tmp3d[DsizeM][3];
- double tmp3d1[DsizeM][3],tmp3d2[DsizeM][3],tmp2d[DsizeM][2];
- outkL[0][0]=0;
- cusp[0]=0;
- Cuspsplitpt[0][0]=0;
- nd=dataindexd2(0,pdata,din);
- for(ng=1; ng<=nd; ng++){
- ptk[0][0]=0; pth[0][0]=0;
- st=din[ng][0]; en=din[ng][1];
- ptxy[0][0]=0;
- n=appendd2(0,st,en,pdata,ptxy);
- npk=0; nph=0;
- for(i=1; i<=en-st+1; i++){
- pull2(st+i-1,pdata,tmp);
- surffun(ch,tmp[0],tmp[1],pt3d);
- parapt(pt3d,pt2d);
- if(i==1){
- npk=addptd3(ptk,pt3d);
- nph=addptd2(pth,pt2d);
- }
- else{
- pull2(nph,pth,tmp1);
- if(dist(2,tmp1,pt2d)>eps){
- npk=addptd3(ptk,pt3d);
- nph=addptd2(pth,pt2d);
- }
- }
- }
- if(nph==0){
- npk=0;
- return 0;
- };
- pull2(1,pth,ps);
- pull2(nph,pth,pe);
- cflg=0;
- if(dist(2,ps,pe)<Eps1){cflg=1;}
- ncusp=0; cusp[0]=0;
- cva=cos(10*M_PI/180);
- for(i=1; i<=nph-1; i++){
- if(nph==2){break;}
- pull2(i,pth,tmp);
- tmp[0]=pth[i][0]; tmp[1]=pth[i][1];
- if(i==1){
- if(cflg==0){continue;}
- pull2(nph-1,pth,tmp1);
- }
- else{
- pull2(i-1,pth,tmp1);
- }
- pull2(i+1,pth,tmp2);
- v1[0]=tmp[0]-tmp1[0]; v1[1]=tmp[1]-tmp1[1];
- v2[0]=tmp2[0]-tmp[0]; v2[1]=tmp2[1]-tmp[1];
- vtmp=v1[0]*v2[0]+v1[1]*v2[1];
- tmp[0]=0; tmp[1]=0;
- vtmp=vtmp/(dist(2,v1,tmp)*dist(2,v2,tmp));
- cuspflg=0;
- if(vtmp<cva){
- pt2d[0]=pth[i][0]; pt2d[1]=pth[i][1];
- kaku=acos(vtmp)*180/M_PI;
- if(v1[0]*v2[1]-v1[1]*v2[0]<0){
- kaku=-kaku;
- }
- cuspflg=0;
- for(j=i+1; j<=nph-1; j++){
- if(fabs(kaku)>90){
- cuspflg=1;
- break;
- }
- pull2(j,pth,q2d);
- if(dist(2,pt2d,q2d)>Eps1){
- break;
- }
- v1[0]=q2d[0]-pth[j-1][0]; v1[1]=q2d[1]-pth[j-1][1];
- v2[0]=pth[j+1][0]-q2d[0]; v2[1]=pth[j+1][1]-q2d[1];
- vtmp=v1[0]*v2[0]+v1[1]*v2[1];
- tmp[0]=0; tmp[1]=0;
- vtmp=vtmp/(dist(2,v1,tmp)*dist(2,v2,tmp));
- vtmp=acos(vtmp)*180/M_PI;
- if(v1[0]*v2[1]-v1[1]*v2[0]<0){
- vtmp=-vtmp;
- }
- kaku=kaku+vtmp;
- }
- if(cuspflg==1){
- ntmp=trunc((i+j)*0.5);
- i=j;
- if(cusp[0]==0){
- ncusp=appendi1(cusp,ntmp);
- }
- else{
- ncusp=appendi1(cusp,ntmp);
- }
- }
- }
- }
- if(cflg==0){
- ncusp=prependi1(1,cusp);
- ncusp=appendi1(cusp,nph);
- }
- else if(ncusp==0){
- ncusp=prependi1(1,cusp);
- ncusp=appendi1(cusp,nph);
- }
- else if(cusp[1]==1){
- ncusp=appendi1(cusp,nph);
- }
- else{
- ntmp=cusp[1];
- ntmp1=nph;
- tmp2d[0][0]=0;
- n=appendd2(0,ntmp,ntmp1,pth,tmp2d);
- n=appendd2(0,2,ntmp,pth,tmp2d);
- pth[0][0]=0;
- nph=appendd2(0,1,n,tmp2d,pth);
- tmp3d[0][0]=0;
- n=appendd3(0,ntmp,ntmp1,ptk,tmp3d);
- n=appendd3(0,2,ntmp,ptk,tmp3d);
- ptk[0][0]=0;
- npk=appendd3(0,1,n,tmp3d,ptk);
- for(i=1; i<=cusp[0]; i++){
- cusp[i]=cusp[i]-ntmp+1;
- }
- ncusp=appendi1(cusp,nph);
- }
- if(ncusp==2){
- pull2(nph,pth,tmp);
- if(npk>=2){
- ncusppt=addptd2(Cuspsplitpt,tmp);
- noutkL=appendd3(2,1,npk,ptk,outkL);
- }
- continue;
- }
- outk[0][0]=0;
- is=1;
- for(i=1; i<=ncusp-1; i++){
- ntmp1=cusp[is]; ntmp2=cusp[i+1];
- pull2(ntmp1,pth,tmp1);
- pull2(ntmp2,pth,tmp2);
- if(dist(2,tmp1,tmp2)>Eps1){
- tmp3d[0][0]=0;
- n=appendd3(0,ntmp1,ntmp2,ptk,tmp3d);
- noutk=appendd3(2,1,n,tmp3d,outk);
- ncusppt=addptd2(Cuspsplitpt,tmp2);
- is=i+1;
- }
- }
- noutkL=appendd3(2,1,noutk,outk,outkL);
- }
- n=projpara(outkL,tmp2d);
- ndrop=dropnumlistcrv(tmp2d,Eps1*0.5,drop);
- nd=dataindexd3(2,outkL,din);
- ndd=dataindexi1(drop,dind);
- tmp3d2[0][0]=0; ntmp2=0;
- for(i=1; i<=nd; i++){
- tmp3d[0][0]=0; ntmp=0;
- ntmp=appendd3(0,din[i][0],din[i][1],outkL,tmp3d);
- tmpnum[0]=0; ntmpnum=0;
- for(j=dind[i][0]; j<=dind[i][1]; j++){
- ntmpnum=appendi1(tmpnum,drop[j]);
- }
- tmp3d1[0][0]=0; ntmp1=0;
- for(j=1; j<=ntmpnum; j++){
- pt3d[0]=tmp3d[tmpnum[j]][0];
- pt3d[1]=tmp3d[tmpnum[j]][1];
- pt3d[2]=tmp3d[tmpnum[j]][2];
- ntmp1=addptd3(tmp3d1,pt3d);
- }
- if(ntmp1>0){
- ntmp2=appendd3(2,1,ntmp1,tmp3d1,tmp3d2);
- }
- }
- outkL[0][0]=0; noutkL=0;
- noutkL=appendd3(0,1,ntmp2,tmp3d2,outkL);
- return noutkL;
-}
-
-int makexybdy(short ch,double ehL[][2]){
- int i, nehL, ntmpd2;
- double ptd3[3],ptd2[2],tmpd2[DsizeM][2],du,dv;
- ehL[0][0]=0; nehL=0;
- du=(Urng[1]-Urng[0])/Mdv;
- dv=(Vrng[1]-Vrng[0])/Ndv;
- if(DrawE==1){
- tmpd2[0][0]=0; ntmpd2=0;
- for(i=0; i<=Ndv; i++){
- surffun(ch,Urng[1],Vrng[0]+i*dv,ptd3);
- ntmpd2=push2(ptd3[0],ptd3[1],tmpd2);
- }
- nehL=appendd2(2,1,ntmpd2,tmpd2,ehL);
- }
- if(DrawN==1){
- tmpd2[0][0]=0; ntmpd2=0;
- for(i=0; i<=Mdv; i++){
- surffun(ch,Urng[0]+i*du,Vrng[1],ptd3);
- ntmpd2=push2(ptd3[0],ptd3[1],tmpd2);
- }
- nehL=appendd2(2,1,ntmpd2,tmpd2,ehL);
- }
- if(DrawW==1){
- tmpd2[0][0]=0; ntmpd2=0;
- for(i=0; i<=Ndv; i++){
- surffun(ch,Urng[0],Vrng[0]+i*dv,ptd3);
- ntmpd2=push2(ptd3[0],ptd3[1],tmpd2);
- }
- nehL=appendd2(2,1,ntmpd2,tmpd2,ehL);
- }
- if(DrawS==1){
- tmpd2[0][0]=0; ntmpd2=0;
- for(i=0; i<=Mdv; i++){
- surffun(ch,Urng[0]+i*du,Vrng[0],ptd3);
- ntmpd2=push2(ptd3[0],ptd3[1],tmpd2);
- }
- nehL=appendd2(2,1,ntmpd2,tmpd2,ehL);
- }
- return nehL;
-}
-
-void partitionseg(double fig[][2],double gL[][2], int ns, double parL[]){
- int ii,jj,kk,n,din[DsizeM][2],din2[DsizeM][2];
- double eps0=pow(10,-5.0),tmpd4[4], tmpd6[6],tmp,tmp2;
- double p[2], q[2], pd3[3], ans[4], tmp1d1[DsizeM], tmp2d1[DsizeM];
- double other[DsizeM], g[DsizeM][2], kouL[DsizeS][4],kouL6[DsizeS][6];
- if(ns>1){
- dataindexd1(Otherpartition,din);
- other[0]=0;
- for(ii=din[ns][0]; ii<=din[ns][1]; ii++){
- appendd1(other,Otherpartition[ii]);
- }
- }else{
- other[0]=0;
- }
- parL[0]=0;
- appendd1(parL,1);
- appendd1(parL,length2(fig));
- if(length1(other)>0){
- for(ii=1; ii<=length1(other); ii++){
- appendd1(parL,other[ii]);
- }
- }
- dataindexd2(2,gL,din);
- for(n=ns; n<=din[0][0]; n++){
- g[0][0]=0;
- appendd2(2,din[n][0],din[n][1],gL,g);
- intersectcurvesPp(fig,g,20,kouL6);
- kouL[0][0]=0;
- for(ii=1;ii<=length6(kouL6);ii++){
- pull6(ii,kouL6,tmpd6);
- push4(tmpd6[0],tmpd6[1],tmpd6[2],tmpd6[3],kouL);
- }
- tmp1d1[0]=0;tmp2d1[0]=0;
- for(jj=1;jj<=length4(kouL);jj++){
- pull4(jj,kouL,tmpd4);
- tmp=tmpd4[2];
- if((tmp>1+Eps)&&(tmp<length2(fig)-Eps)){
- appendd1(tmp1d1,tmp);
- }
- tmp=tmpd4[3];
- if((tmp>1+Eps)&&(tmp<length2(g)-Eps)){
- appendd1(tmp2d1,tmp);
- }
- }
- for(jj=1;jj<=length1(tmp1d1);jj++){
- appendd1(parL,tmp1d1[jj]);
- }
- if((ns>0)&&(n>ns)&&(length1(tmp2d1)>0)){
- dataindexd1(Otherpartition,din);
- tmp1d1[0]=0;
- for(ii=1;ii<=length2i(din);ii++){
- if(ii==n){
- for(kk=1;kk<=length1(tmp2d1);kk++){
- appendd1(tmp1d1,tmp2d1[kk]);
- }
- }
- for(jj=din[ii][0]; jj<=din[ii][1];jj++){
- appendd1(tmp1d1,Otherpartition[jj]);
- }
- if(ii<length2i(din)){
- appendd1(tmp1d1,Inf);
- }
- }
- }
- dataindexd1(tmp1d1,din);
- Otherpartition[0]=0;
- for(ii=1;ii<=length2i(din);ii++){
- for(jj=din[ii][0];jj<=din[ii][1];jj++){
- appendd1(Otherpartition,tmp1d1[jj]);
- }
- }
- }
- simplesort(parL);
- tmp1d1[0]=0;
- for(ii=1;ii<=length1(parL);ii++){
- appendd1(tmp1d1,parL[ii]);
- }
- parL[0]=0;
- tmp2=-1;
- for(jj=1;jj<=length1(tmp1d1);jj++){
- tmp=tmp1d1[jj];
- if(fabs(tmp-tmp2)>Eps1){
- appendd1(parL,tmp);
- tmp2=tmp;
- }
- }
-}
-
-double funpthiddenQ(short ch,double u, double v, double pa[3]){
- double Vec[3]={sin(THETA)*cos(PHI),sin(THETA)*sin(PHI),cos(THETA)};
- double eps0=pow(10,-4.0)*(XMAX-XMIN)/10, pt[3], out;
- surffun(ch,u, v, pt);
- if((fabs(Vec[1])>eps0)||(fabs(Vec[0])>eps0)){
- out=(Vec[1]*(pt[0]-pa[0])-Vec[0]*(pt[1]-pa[1]));
- }
- else{
- out=pt[0]-pa[0];
- }
- return out;
-}
-
-void makevaltable(double pta[3]){
- double eps0=pow(10,-6.0), u, v, du, dv, p[3];
- int i, j, nx=0, ny=0; ;
- du=(Urng[1]-Urng[0])/Mdv;
- dv=(Vrng[1]-Vrng[0])/Ndv;
- for(j=0; j<=Ndv; j++){
- v=Vrng[0]+j*dv;
- for(i=0; i<=Mdv; i++){
- u=Urng[0]+i*du;
- Zval[j][i]=funpthiddenQ(Ch,u, v, pta);
- }
- }
- for(i=0; i<=Mdv; i++){
- Xval[i]=Urng[0]+i*du;
- }
- for(j=0; j<=Ndv; j++){
- Yval[j]=Vrng[0]+j*dv;
- }
-}
-
-int pthiddenQ(short ch,double pta[3], int uveq, double eps[2]){
- int i, j, k, out, nqL, nsL, nptL, flg, nxt;
- double Vec[3]={sin(THETA)*cos(PHI),sin(THETA)*sin(PHI),cos(THETA)};
- double eps0, epspt, vec1[3], po[3]={0,0,0}, tmpd1, tmp1d1, tmp2d1, m1, m2;
- double tmp3d1, tmp4d1, tmp5d1, tmp6d1, tmpd3[3], v1, v2, v3;
- double tmpd2[2], p1[2], p2[2], ptuv[2], puv1[2], puv2[2];
- double p1d3[3], p2d3[3], ptd3[3];
- double ptL[DsizeM][6], sL[DsizeM][7], qL[DsizeM][2], pL[5][2], vL[5];
-// Out=1 : hidden
-// SL : List of segments near PtA+Vec
- eps0=pow(10,-4.0)*(XMAX-XMIN)/10.0;
- epspt=eps[0]*(XMAX-XMIN)/10.0;
- out=0;
- po[0]=0; po[1]=0; po[2]=0;
- tmpd1=1/dist(3,Vec,po);
- vec1[0]=tmpd1*Vec[0];
- vec1[1]=tmpd1*Vec[1];
- vec1[2]=tmpd1*Vec[2];
- nptL=0;
- makevaltable(pta);
- nsL=0;
- for(j=0; j<=Ndv-1; j++){
- for(i=0; i<=Mdv-1; i++){
- pL[0][0]=Xval[i]; pL[0][1]=Yval[j]; vL[0]=Zval[j][i];
- pL[1][0]=Xval[i+1]; pL[1][1]=Yval[j]; vL[1]=Zval[j][i+1];
- pL[2][0]=Xval[i+1]; pL[2][1]=Yval[j+1]; vL[2]=Zval[j+1][i+1];
- pL[3][0]=Xval[i]; pL[3][1]=Yval[j+1]; vL[3]=Zval[j+1][i];
- pL[4][0]=Xval[i]; pL[4][1]=Yval[j]; vL[4]=Zval[j][i];
- qL[0][0]=0; nqL=0;
- for(k=0; k<=3; k++){
- p1[0]=pL[k][0]; p1[1]=pL[k][1];
- p2[0]=pL[k+1][0]; p2[1]=pL[k+1][1];
- m1=vL[k]; m2=vL[k+1];
- if((m1>=eps0)&&(m2>=eps0)){
- continue;
- }
- if((m1<=-eps0)&&(m2<=-eps0)){
- continue;
- }
- if(fabs(m1)<eps0){
- tmpd2[0]=p1[0]; tmpd2[1]=p1[1];
- }
- else if(fabs(m2)<eps0){
- continue;
- }
- else{
- tmpd2[0]=1/(m1-m2)*(-m2*p1[0]+m1*p2[0]);
- tmpd2[1]=1/(m1-m2)*(-m2*p1[1]+m1*p2[1]);
- }
- nqL++;
- qL[nqL][0]=tmpd2[0]; qL[nqL][1]=tmpd2[1];
- }
- if(nqL==2){
- puv1[0]=qL[1][0]; puv1[1]=qL[1][1];
- puv2[0]=qL[2][0]; puv2[1]=qL[2][1];
- surffun(ch,puv1[0],puv1[1],p1d3);
- surffun(ch,puv2[0],puv2[1],p2d3);
- if(dist(2,p1d3,p2d3)<eps0){
- continue;
- }
- tmp1d1=dist(3,p1d3,pta);
- tmpd3[0]=p1d3[0]-pta[0];
- tmpd3[1]=p1d3[1]-pta[1];
- tmpd3[2]=p1d3[2]-pta[2];
- tmp2d1=dotprod(3,tmpd3,vec1);
- tmp3d1=sqrt(fabs(pow(tmp1d1,2.0)-pow(tmp2d1,2.0)));
- tmp4d1=dist(3,p2d3, pta);
- tmpd3[0]=p2d3[0]-pta[0];
- tmpd3[1]=p2d3[1]-pta[1];
- tmpd3[2]=p2d3[2]-pta[2];
- tmp5d1=dotprod(3,tmpd3,vec1);
- tmp6d1=sqrt(fabs(pow(tmp4d1,2.0)-pow(tmp5d1,2.0)));
- if(tmp2d1<tmp5d1){
- tmpd3[0]=p1d3[0]; tmpd3[1]=p1d3[1]; tmpd3[2]=p1d3[2];
- p1d3[0]=p2d3[0]; p1d3[1]=p2d3[1]; p1d3[2]=p2d3[2];
- p2d3[0]=tmpd3[0]; p2d3[1]=tmpd3[1]; p2d3[2]=tmpd3[2];
- tmpd1=tmp2d1; tmp2d1=tmp5d1; tmp5d1=tmpd1;
- tmpd1=tmp3d1; tmp3d1=tmp6d1; tmp6d1=tmpd1;
- }
- if((tmp3d1<eps[1]*epspt)&&(tmp6d1<eps[1]*epspt)){
- if(tmp2d1>-eps0){
- if(tmp5d1<-eps0){
- nsL++;
- sL[nsL][0]=p1d3[0]; sL[nsL][1]=p1d3[1]; sL[nsL][2]=p1d3[2];
- sL[nsL][3]=p2d3[0]; sL[nsL][4]=p2d3[1]; sL[nsL][5]=p2d3[2];
- sL[nsL][6]=-1;
- }
- else{
- nsL++;
- sL[nsL][0]=p1d3[0]; sL[nsL][1]=p1d3[1]; sL[nsL][2]=p1d3[2];
- sL[nsL][3]=p2d3[0]; sL[nsL][4]=p2d3[1]; sL[nsL][5]=p2d3[2];
- sL[nsL][6]=1;
- }
- }
- }
- v1=vec1[0]; v2=vec1[1]; v3=vec1[2];
- if(fabs(v1)>eps0){
- m1=pta[2]+v3/v1*(p1d3[0]-pta[0])-p1d3[2];
- m2=pta[2]+v3/v1*(p2d3[0]-pta[0])-p2d3[2];
- }
- else if(fabs(v2)>eps0){
- m1=pta[2]+v3/v2*(p1d3[1]-pta[1])-p1d3[2];
- m2=pta[2]+v3/v2*(p2d3[1]-pta[1])-p2d3[2];
- }
- else{
- m1=pta[1]-p1d3[1];
- m2=pta[1]-p2d3[1];
- }
- if(m1*m2>=0){
- if(((m1>eps0)&&(m2>eps0))||((m1<-eps0)&&(m2<-eps0))){
- continue;
- }
- if(fabs(m1)<=eps0){
- ptd3[0]=p1d3[0]; ptd3[1]=p1d3[1]; ptd3[2]=p1d3[2];
- ptuv[0]=puv1[0]; ptuv[1]=puv1[1];
- }
- else{
- ptd3[0]=p2d3[0]; ptd3[1]=p2d3[1]; ptd3[2]=p2d3[2];
- ptuv[0]=puv2[0]; ptuv[1]=puv2[1];
- }
- }
- else{
- ptd3[0]=1/(m1-m2)*(-m2*p1d3[0]+m1*p2d3[0]);
- ptd3[1]=1/(m1-m2)*(-m2*p1d3[1]+m1*p2d3[1]);
- ptd3[2]=1/(m1-m2)*(-m2*p1d3[2]+m1*p2d3[2]);
- ptuv[0]=1/(m1-m2)*(-m2*puv1[0]+m1*puv2[1]);
- }
- tmpd3[0]=ptd3[0]-pta[0];
- tmpd3[1]=ptd3[1]-pta[1];
- tmpd3[2]=ptd3[2]-pta[2];
- tmp1d1=dotprod(3,tmpd3,vec1);
- tmp2d1=fabs(tmp1d1);
- tmpd3[0]=p1d3[0]-p2d3[0];
- tmpd3[1]=p1d3[1]-p2d3[1];
- tmpd3[2]=p1d3[2]-p2d3[2];
- tmp3d1=dotprod(3,tmpd3,vec1);
- tmp4d1=dist(3,p1d3,p2d3);
- tmp6d1=tmp3d1/tmp4d1;
- if(tmp1d1>eps0){
- if(fabs(tmp6d1)>0.75){
- nptL++;
- ptL[nptL][0]=ptd3[0]; ptL[nptL][1]=ptd3[1]; ptL[nptL][2]=ptd3[2];
- ptL[nptL][3]=p2d3[0]; ptL[nptL][4]=p2d3[1]; ptL[nptL][5]=p2d3[2];
- continue;
- }
- if(tmp2d1>epspt){
- return 1;
- }
- if(tmp2d1<2*epspt){
- continue;
- }
- }
- }
- }
- }
- if(nptL==0){
- return 0;
- }
- for(i=1; i<=nsL; i++){
- p2d3[0]=sL[i][3]; p2d3[1]=sL[i][4]; p2d3[2]=sL[i][5];
- flg=0;
- for(j=1; j<=nsL; j++){
- p1d3[0]=sL[j][0]; p1d3[1]=sL[j][1]; p1d3[2]=sL[j][2];
- if(dist(3,p1d3,p2d3)<eps0){
- sL[i][6]=j;
- flg=1;
- break;
- }
- }
- if((flg==0)&&(sL[i][6]>0)){
- sL[i][6]=-2;
- }
- }
- for(i=1; i<=nptL; i++){
- p2d3[0]=ptL[i][3]; p2d3[1]=ptL[i][4]; p2d3[2]=ptL[i][5];
- flg=0;
- for(j=1; j<=nsL; j++){
- p1d3[0]=sL[j][0]; p1d3[1]=sL[j][1]; p1d3[2]=sL[j][2];
- if(dist(3,p1d3,p2d3)<eps0){
- flg=1;
- break;
- }
- }
- if(flg==0){
- ptd3[0]=ptL[i][0]; ptd3[1]=ptL[i][1]; ptd3[2]=ptL[i][2];
- tmpd1=dist(3,p2d3,ptd3);
- tmpd3[0]=p2d3[0]-ptd3[0];
- tmpd3[1]=p2d3[1]-ptd3[1];
- tmpd3[2]=p2d3[2]-ptd3[2];
- tmp1d1=fabs(dotprod(3,tmpd3,vec1));
- tmp2d1=sqrt(fabs(pow(tmpd1,2.0)-pow(tmp1d1,2.0)));
- tmp3d1=tmp2d1*dist(3,ptd3,pta)/tmpd1;
- if(tmp3d1>epspt/5){
- return 1;
- }
- else{
- continue;
- }
- }
- nxt=sL[j][6];
- while(nxt>0){
- ptd3[0]=sL[nxt][3]; ptd3[1]=sL[nxt][4]; ptd3[2]=sL[nxt][5];
- nxt=sL[nxt][6];
- }
- if(nxt==-2){
- return 1;
- }
- else{
- out=0;
- }
- }
- return out;
-}
-
-int nohiddenpara2(double paL[], double fk[][3], int uveq, double figkL[][3]){
- double eps0=pow(10,-5.0), s, p1[2], p2[2], q[2],tmpd1, tmpd2[2], epstmp[2];
- double fh[DsizeM][2], pta[3], ptap[2], vec[3];
- double figL[DsizeM][2], tmpmd2[DsizeM][2], tmpmd3[DsizeM][3];
- double tmp1d2[2], tmp2d2[2], tmp3d2[2], tmpd3[3],tmpd4[4];
- double pd2[2], qd2[2], pd3[3], qd3[3], sp, sq, tp, tq, dtmp, dtmp1, dtmp2;
- int ncusp=floor(Cusppt[0][0]+0.5), seL[DsizeM], npaL=floor(paL[0]+0.5);
- int i, n, nfh, nfk, nfigL, nfigkL, nhidden, cspflg, nseL=0, ntmp, flg, tmpi1[DsizeM];
- nfk=length3(fk);
- nfh=projpara(fk, fh);
- pull2(1,fh,p1);
- pull2(nfh,fh,p2);
- cspflg=1;
- for(i=1; i<=ncusp; i++){
- pull2(i, Cusppt, tmpd2);
- if(dist(2,tmpd2,p1)<eps0){
- if(cspflg==1){
- cspflg=2;
- }
- else if(cspflg==3){
- cspflg=6;
- }
- continue;
- }
- if(dist(2,tmpd2,p2)<eps0){
- if(cspflg==1){
- cspflg=3;
- }
- else if(cspflg==2){
- cspflg=6;
- }
- continue;
- }
- }
- seL[0]=0; nseL=0;
- for(n=1; n<=npaL-1; n++){
- s=(paL[n]+paL[n+1])/2.0;
- ntmp=invparapt(s,fh,fk, pta);
- parapt(pta,ptap);
- epstmp[0]=Eps1; epstmp[1]=1;
- if((n==1)&&(cspflg % 2==0)){
- pull2(1,fh,p1);
- dtmp=fmin(Eps1*dist(2,ptap, p1),Eps1);
- epstmp[0]=dtmp; epstmp[1]=1;
- }
- if((n==npaL-1)&&(cspflg % 3==0)){
- pull2(nfh,fh,p1);
- dtmp=fmin(Eps1*dist(2, ptap, p1), Eps1);
- epstmp[0]=dtmp; epstmp[1]=1;
- }
- flg=pthiddenQ(Ch,pta, uveq, epstmp);
- if(flg==0){
- nseL=appendi1(seL,n);
- }
- }
- figL[0][0]=0; nfigL=0;
- figkL[0][0]=0; nfigkL=0;
- for(i=1; i<=nseL; i++){
- pointoncurve(paL[seL[i]], fh, Eps, tmp1d2);
- pointoncurve(paL[seL[i]+1], fh, Eps, tmp2d2);
- if(i==1){
- copyd(0,1,tmp1d2,pd2);
- sp=paL[seL[i]];
- copyd(0,1,tmp2d2,qd2);
- sq=paL[seL[i]+1];
- }
- else{
- if(memberi(seL[i]-1,seL)==1){
- copyd(0,1,tmp2d2,qd2);
- sq=paL[seL[i]+1];
- }
- else{
- ntmp=partcrv(sp,sq,fh,tmpmd2);
- nfigL=appendd2(2,1,ntmp,tmpmd2,figL);
- tp=invparapt(sp,fh,fk, tmpd3);
- tq=invparapt(sq,fh,fk,tmpd3);
- ntmp=partcrv3(tp,tq,fk,tmpmd3);
- nfigkL=appendd3(2,1,ntmp,tmpmd3,figkL);
- copyd(0,1,tmp1d2,pd2);
- sp=paL[seL[i]];
- copyd(0,1,tmp2d2,qd2);
- sq=paL[seL[i]+1];
- }
- }
- }
- if(nseL>0){
- if(dist(2,pd2,qd2)>Eps1){
- nearestptpt(pd2,fh,tmpd4);
- dtmp1=tmpd4[2];
- nearestptpt(qd2,fh,tmpd4);
- dtmp2=tmpd4[2];
- ntmp=partcrv(dtmp1,dtmp2,fh,tmpmd2);
- nfigL=appendd2(2,1,ntmp,tmpmd2,figL);
- tp=invparapt(sp,fh,fk,tmpd3);
- tq=invparapt(sq,fh,fk,tmpd3);
- ntmp=partcrv3(tp,tq,fk,tmpmd3);
- nfigkL=appendd3(2,1,ntmp, tmpmd3, figkL);
- }
- else{
- nfigL=appendd2(2,1,nfh, fh, figL);
- nfigkL=appendd3(2,1,nfk,fk,figkL);
- }
- }
- tmpi1[0]=0; ntmp=0;
- for(i=1; i<=npaL-1; i++){
- if(memberi(i,seL)==0){
- ntmp=appendi1(tmpi1,i);
- }
- }
- copyi(0,ntmp,tmpi1,seL);
- seL[0]=ntmp; nseL=ntmp;
- Hiddendata[0][0]=0; nhidden=0;
- for(i=1; i<=nseL; i++){
- dtmp=paL[seL[i]];
- pointoncurve(dtmp,fh,Eps,tmp1d2);
- dtmp=paL[seL[i]+1];
- pointoncurve(dtmp,fh,Eps, tmp2d2);
- if(i==1){
- copyd(0,1,tmp1d2,pd2);
- sp=paL[seL[i]];
- copyd(0,1,tmp2d2,qd2);
- sq=paL[seL[i]+1];
- }
- else{
- if(memberi(seL[i]-1,seL)==1){
- copyd(0,1,tmp2d2,qd2);
- sq=paL[seL[i]+1];
- }
- else{
- tp=invparapt(sp,fh,fk,tmpd3);
- tq=invparapt(sq,fh,fk,tmpd3);
- ntmp=partcrv3(tp,tq,fk,tmpmd3);
- nhidden=appendd3(2,1,ntmp,tmpmd3,Hiddendata);
- copyd(0,1,tmp1d2,pd2);
- sp=paL[seL[i]];
- copyd(0,1,tmp2d2,qd2);
- sq=paL[seL[i]+1];
- }
- }
- }
- if(nseL>0){
- if(dist(2,pd2,qd2)>Eps1){
- tp=invparapt(sp,fh,fk,tmpd3);
- tq=invparapt(sq,fh,fk,tmpd3);
- ntmp=partcrv3(tp,tq,fk,tmpmd3);
- nhidden=appendd3(2,1,ntmp,tmpmd3,Hiddendata);
- }
- else{
- nhidden=appendd3(2,1,nfk,fk,Hiddendata);
- }
- }
- return nfigkL;
-}
-
-int borderparadata(short ch,double fkL[][3], double fsL[][3]){
- double ekL[DsizeL][3], fall[DsizeL][2], fbdxy[DsizeL][2];
- double tmpd3[DsizeM][3], tmpd2[DsizeM][2], p[2], p3[3];
- double figkL[DsizeM][3], du, dv;
- int i, j, nall, nekL, nfsL, nfkL=length3(fkL), nfall, nfbdxy;
- int ndin, din[DsizeS][2], ndin2,din2[DsizeM][2];
- int ntmp, ntmpd3,ntmpd2, npar=0, nfigkL;
- double par[DsizeM];
- du=(Urng[1]-Urng[0])/Mdv;
- dv=(Vrng[1]-Vrng[0])/Ndv;
- fsL[0][0]=0;
- ekL[0][0]=0; nekL=0;
- if(DrawE==1){
- tmpd2[0][0]=0; nall=0;
- for(j=0; j<=Ndv; j++){
- nall=add2(tmpd2, Urng[1], Vrng[0]+j*dv);
- }
- nall=surfcurve(ch,2, tmpd2,tmpd3);
- nekL=appendd3(2,1,nall,tmpd3,ekL);
- }
- if(DrawN==1){
- tmpd2[0][0]=0; nall=0;
- for(j=0; j<=Mdv; j++){
- nall=add2(tmpd2, Urng[0]+j*du, Vrng[1]);
- }
- nall=surfcurve(ch,2, tmpd2,tmpd3);
- nekL=appendd3(2,1,nall,tmpd3,ekL);
- }
- if(DrawW==1){
- tmpd2[0][0]=0; nall=0;
- for(j=0; j<=Ndv; j++){
- nall=add2(tmpd2, Urng[0], Vrng[0]+j*dv);
- }
- nall=surfcurve(ch,2, tmpd2,tmpd3);
- nekL=appendd3(2,1,nall,tmpd3,ekL);
- }
- if(DrawS==1){
- tmpd2[0][0]=0; nall=0;
- for(j=0; j<=Mdv; j++){
- nall=add2(tmpd2, Urng[0]+j*du, Vrng[0]);
- }
- nall=surfcurve(ch,2, tmpd2,tmpd3);
- nekL=appendd3(2,1,nall,tmpd3,ekL);
- }
- if(nekL>0){
- nfkL=appendd3(2,1,nekL,ekL,fkL);
- }
- nfall=projpara(fkL,fall);
- nfbdxy=makexybdy(ch,fbdxy);
- ndin=dataindexd2(2,fall,din);
- Borderpt[0][0]=0;
- Otherpartition[0]=0;
- for(i=1; i<=ndin-1; i++){
- Otherpartition[i]=Inf; Otherpartition[0]++;
- }
- Borderhiddendata[0][0]=0;
- ndin2=dataindexd3(2,fkL,din2);
- for(i=1; i<= ndin2; i++){
- tmpd3[0][0]=0;
- ntmpd3=appendd3(0,din2[i][0],din2[i][1],fkL,tmpd3);
- ntmpd2=projpara(tmpd3,tmpd2);
- partitionseg(tmpd2,fall, 1,par);
- if(length1(par)>2){
- ntmp=npar-1;
- tmpd2[0][0]=0; ntmpd2=0;
- for(j=2; j<=ntmp; j++){
- pull2(j,Partitionpt,p);
- ntmpd2=addptd2(tmpd2, p);
- }
- ntmp=appendd2(0, 1,ntmpd2,tmpd2,Borderpt);
- }
- tmpd3[0][0]=0;
- for(j=din2[i][0]; j<=din2[i][1]; j++){
- pull3(j,fkL,p3);
- ntmpd3=addptd3(tmpd3,p3);
- }
- nfigkL=nohiddenpara2(par,tmpd3,1, figkL);
- if(nfigkL>0){
- nfsL=appendd3(2,1,nfigkL,figkL, fsL);
- }
- ntmp=length3(Hiddendata);
- if(ntmp>0){
- appendd3(2,1,ntmp,Hiddendata,Borderhiddendata);
- }
- }
- return nfsL;
-}
-
-int dropnumlistcrv3(double qd[][3], double eps1, int out[]){
- int i,j,k,nout,nall=length3(qd), nd, se, en, npd, nptL;
- int din[DsizeM][2],ptL[DsizeL];
- double eps=pow(10.0,-6.0), pd[DsizeL][3], p[3], tmp2d[3];
- out[0]=0; nout=0;
- nd=dataindexd3(2,qd,din);
- for(j=1; j<=nd; j++){
- se=din[j][0]; en=din[j][1];
- pd[0][0]=0; npd=0;
- npd=appendd3(0,se,en,qd,pd);
- ptL[0]=0; nptL=0;
- nptL=appendi1(ptL,1);
- pull3(1,pd,p);
- for(k=2; k<=npd-1; k++){
- pull3(k,pd,tmp2d);
- if(dist(3,p,tmp2d)>eps1){
- nptL=appendi1(ptL,k);
- pull3(k,pd,p);
- }
- }
- pull3(npd-1,pd,p);
- pull3(npd,pd,tmp2d);
- if(dist(3,p,tmp2d)>eps){ // eps -> eps1 ?
- nptL=appendi1(ptL,npd);
- }
-// if(nptL==1){ptL[0]=0; nptL=0;}//180318db
- if(nout>0){
- nout=appendi1(out,Infint);
- }
- for(i=1; i<=nptL; i++){
- nout=appendi1(out,ptL[i]);
- }
- }
- out[0]=nout;
- return nout;
-}
-
-int sfbdparadata(short ch,double outd3[][3]){
- double pdatad3[DsizeL][3];
- double pts[DsizeL][2],out3md[DsizeL][2],eps;
- double tmpmd[DsizeL][2],tmp1md[DsizeL][2],tmp2md[DsizeL][2],tmp3md[DsizeL][2];
- double tmpd[2],tmp1d[2],tmpd3[3],tmp1d3[3],tmp2d3[3],tmp2md3[DsizeL][3];
- int din[DsizeS][2],nlist[DsizeL];
- int ii,jj,kk,n,nall,flg;
- envelopedata(ch, tmp3md);
- out3md[0][0]=0;
- pts[0][0]=0;
- dataindexd2(2,tmp3md,din);
- for(jj=1;jj<=length2i(din);jj++){
- tmp1md[0][0]=0;
- tmp2md3[0][0]=0;
- for(kk=din[jj][0];kk<=din[jj][1];kk++){
- pull2(kk,tmp3md,tmpd);
- addptd2(tmp1md,tmpd);
- surffun(ch,tmpd[0],tmpd[1],tmpd3);
- addptd3(tmp2md3,tmpd3);
- }
- dropnumlistcrv3(tmp2md3,Eps1,nlist);
- if(nlist[0]==1){
- pull2(nlist[1],tmp1md,tmpd);
- addptd2(pts,tmpd);
- }else{
- tmpmd[0][0]=0;
- for(kk=1;kk<=nlist[0];kk++){
- pull2(nlist[kk],tmp1md,tmpd);
- addptd2(tmpmd,tmpd);
- }
- if(length2(tmpmd)>0){
- appendd2(2,1,length2(tmpmd),tmpmd,out3md);
- }
- }
- }
- tmp3md[0][0]=0;
- appendd2(2,1,length2(pts),pts,tmp3md);
- pts[0][0]=0;
- for(ii=1;ii<=length2(tmp3md);ii++){
- pull2(ii,tmp3md,tmpd);
- surffun(ch,tmpd[0],tmpd[1],tmp1d3);
- flg=0;
- for(jj=1;jj<=length2(pts);jj++){
- pull2(jj,pts,tmpd);
- surffun(ch,tmpd[0],tmpd[1],tmp2d3);
- if(dist(3,tmp1d3,tmp2d3)<Eps1){
- flg=1; break;
- }
- }
- if(flg==0){
- pull2(ii,tmp3md,tmpd);
- addptd2(pts,tmpd);
- }
- }
- for(ii=1;ii<=length2(pts);ii++){
- tmp3md[0][0]=0;
- appendd2(2,1,length2(out3md),out3md,tmp3md);
- out3md[0][0]=0;
- pull2(ii,pts,tmpd);
- surffun(ch,tmpd[0],tmpd[1],tmp1d3);
- dataindexd2(2,tmp3md,din);
- for(jj=1;jj<=length2i(din);jj++){
- tmp2md[0][0]=0;
- appendd2(2,din[jj][0],din[jj][1],tmp3md,tmp2md);
- pull2(jj,tmp3md,tmpd);
- surffun(ch,tmpd[0],tmpd[1],tmp2d3);
- eps=1;
- for(kk=1;kk<=length2(tmp2md)-1;kk++){
- pull2(kk,tmp2md,tmpd);
- surffun(ch,tmpd[0],tmpd[1],tmp1d3);
- pull2(kk+1,tmp2md,tmpd);
- surffun(ch,tmpd[0],tmpd[1],tmpd3);
- if(eps>dist(3,tmp1d3,tmpd3)){
- eps=dist(3,tmp1d3,tmpd3);
- }
- }
- pull2(1,tmp2md,tmpd);
- surffun(ch,tmpd[0],tmpd[1],tmpd3);
- if(dist(3,tmp1d3,tmpd3)<eps+Eps){
- appendd2(2,ii,ii,pts,out3md);
- for(kk=1;kk<=length2(tmp2md);kk++){
- pull2(kk,tmp2md,tmpd);
- addptd2(out3md,tmpd);
- }
- continue;
- }
- pull2(length2(tmp2md),tmp2md,tmpd);
- surffun(ch,tmpd[0],tmpd[1],tmpd3);
- if(dist(3,tmp1d3,tmpd3)<eps+Eps){
- appendd2(2,1,length2(tmp2md),tmp2md,out3md);
- pull2(ii,pts,tmpd);
- addptd2(out3md,tmpd);
- continue;
- }
- }
- appendd2(2,1,length2(tmp2md),tmp2md,out3md);
- }
- nall=cuspsplitpara(ch,out3md, pdatad3);
- n=length2(Cuspsplitpt);
- Cusppt[0][0]=0;
- nall=appendd2(0, 1,n,Cuspsplitpt,Cusppt);
- nall= borderparadata(ch,pdatad3, outd3);
- push3(Inf,3,0,outd3);
- nall=appendd3(0,1,length3(Borderhiddendata),Borderhiddendata,outd3);
- push3(Inf,3,0,outd3);
- return nall;
-}
-
-void makevaltablemeet(short ch,double pa[3], double vec[3], double eps0){
- double u, v, du, dv, pt[3];
- int i, j;
- du=(Urng[1]-Urng[0])/Mdv;
- dv=(Vrng[1]-Vrng[0])/Ndv;
- for(j=0; j<=Ndv; j++){
- v=Vrng[0]+j*dv;
- for(i=0; i<=Mdv; i++){
- u=Urng[0]+i*du;
- surffun(ch,u, v, pt);
- if((fabs(vec[1])>eps0)||(fabs(vec[0])>eps0)){
- Zval[j][i]=(vec[1]*(pt[0]-pa[0])-vec[0]*(pt[1]-pa[1]));
- }
- else{
- Zval[j][i]=pt[0]-pa[0];
- }
- }
- }
- for(i=0; i<=Mdv; i++){
- Xval[i]=Urng[0]+i*du;
- }
- for(j=0; j<=Ndv; j++){
- Yval[j]=Vrng[0]+j*dv;
- }
-}
-
-int meetpoints(short ch,double pta[3], double ptb[3], double eps, double ptL[][3]){
- double eps0=pow(10,-4.0), vec[3], out[DsizeM], pL[5][2], vL[5];
- double qL[DsizeM][2], p1d2[2], p2d2[2], tmpd2[2], puv1d2[2], puv2d2[2];
- double m1,m2, p1d3[3], p2d3[3], v1, v2, v3, ptd3[3], ptuvd2[2], tmp1d1;
- double po[3]={0,0,0}, tmpmd1[DsizeM], tmp1d3[3];
- int nout, nptL, ntmp, nqL, i, j, k;
- vec[0]=ptb[0]-pta[0]; vec[1]=ptb[1]-pta[1]; vec[2]=ptb[2]-pta[2];
- out[0]=0; nout=0;
- ptL[0][0]=0; nptL=0;
- makevaltablemeet(Ch,pta,vec,eps0);
- for(j=0; j<=Ndv-2; j++){
- for(i=0; i<=Mdv-2; i++){
- pL[0][0]=Xval[i]; pL[0][1]=Yval[j]; vL[0]=Zval[j][i];
- pL[1][0]=Xval[i+1]; pL[1][1]=Yval[j]; vL[1]=Zval[j][i+1];
- pL[2][0]=Xval[i+1]; pL[2][1]=Yval[j+1]; vL[2]=Zval[j+1][i+1];
- pL[3][0]=Xval[i]; pL[3][1]=Yval[j+1]; vL[3]=Zval[j+1][i];
- pL[4][0]=Xval[i]; pL[4][1]=Yval[j]; vL[4]=Zval[j][i];
- qL[0][0]=0; nqL=0;
- for(k=0; k<=3; k++){
- pull2(k,pL,p1d2);
- pull2(k+1,pL,p2d2);
- m1=vL[k]; m2=vL[k+1];
- if((m1>=eps0)&&(m2>=eps0)){
- continue;
- }
- if((m1<=-eps0)&&(m2<=-eps0)){
- continue;
- }
- if(fabs(m1)<eps0){
- copyd(0,1,p1d2,tmpd2);
- }
- else if(fabs(m2)<eps0){
- continue;
- }
- else{
- tmpd2[0]=1/(m1-m2)*(-m2*p1d2[0]+m1*p2d2[0]);
- tmpd2[1]=1/(m1-m2)*(-m2*p1d2[1]+m1*p2d2[1]);
- }
- nqL=addptd2(qL,tmpd2);
- }
- if(nqL==2){
- pull2(1, qL, puv1d2);
- pull2(2, qL, puv2d2);
- surffun(ch,puv1d2[0], puv1d2[1], p1d3);
- surffun(ch,puv2d2[0], puv2d2[1], p2d3);
- v1=vec[0]; v2=vec[1]; v3=vec[2];
- if(fabs(v1)>eps0){
- m1=pta[2]+v3/v1*(p1d3[0]-pta[0])-p1d3[2];
- m2=pta[2]+v3/v1*(p2d3[0]-pta[0])-p2d3[2];
- }
- else if(fabs(v2)>eps0){
- m1=pta[2]+v3/v2*(p1d3[1]-pta[1])-p1d3[2];
- m2=pta[2]+v3/v2*(p2d3[1]-pta[1])-p2d3[2];
- }
- else{
- m1=pta[1]-p1d3[1];
- m2=pta[1]-p2d3[1];
- }
- if(m1*m2>=-eps0){
- if(((m1>eps0)&&(m2>eps0)) || ((m1<-eps0)&&(m2<-eps0))){
- continue;
- }
- if(fabs(m1)<=eps0){
- copyd(0,2,p1d3,ptd3);
- copyd(0,1,puv1d2,ptuvd2);
- }
- else{
- copyd(0,2,p2d3,ptd3);
- copyd(0,1,puv2d2,ptuvd2);
- }
- }
- else{
- ptd3[0]=1/(m1-m2)*(-m2*p1d3[0]+m1*p2d3[0]);
- ptd3[1]=1/(m1-m2)*(-m2*p1d3[1]+m1*p2d3[1]);
- ptd3[2]=1/(m1-m2)*(-m2*p1d3[2]+m1*p2d3[2]);
- }
- tmp1d3[0]=ptd3[0]-pta[0]; tmp1d3[1]=ptd3[1]-pta[1];
- tmp1d3[2]=ptd3[2]-pta[2];
- tmp1d1=dotprod(3,tmp1d3,vec);
- tmp1d1=tmp1d1/pow(dist(3,vec,po),2.0);
- if((tmp1d1>-eps0)&&(tmp1d1<1+eps0)){
- nout=appendd1(out,tmp1d1);
- }
- }
- }
- }
- if(nout>>0){
- simplesort(out);
- tmpmd1[1]=out[1]; ntmp=1;
- for(i=2; i<=nout; i++){
- tmp1d3[0]=(out[i]-tmpmd1[ntmp])*vec[0];
- tmp1d3[1]=(out[i]-tmpmd1[ntmp])*vec[1];
- tmp1d3[2]=(out[i]-tmpmd1[ntmp])*vec[2];
- tmp1d1=dist(3,tmp1d3,po);
- if(tmp1d1>eps){
- ntmp=appendd1(tmpmd1,out[i]);
- }
- }
- nout=ntmp;
- copyd(0,ntmp,tmpmd1,out);
- for(i=1; i<=nout; i++){
- tmp1d3[0]=pta[0]+out[i]*vec[0];
- tmp1d3[1]=pta[1]+out[i]*vec[1];
- tmp1d3[2]=pta[2]+out[i]*vec[2];
- nptL=addptd3(ptL,tmp1d3);
- }
- }
- return nptL;
-}
-
-int crvsfparadata(double fkL[][3], double fbdkL[][3], int sepflg, double out[][3]){
- double fbdy[DsizeL][2], fk[DsizeM][3],fkp[DsizeM][3], outh[DsizeL][3];
- double fh[DsizeM][2], parL[DsizeM], tmpmd3[DsizeM][3];
- double ptL[DsizeM][3], tmpd2[2], tmpd3[3], tmp1d1, tmp2d1, dt;
- double po[2]={0,0}, epsd2[2]={Eps1,1}, pa[3], pb[3];
- int nbor=length3(Borderhiddendata), nfkL,nfbdkL, nfbdy, nfk, nall;
- int ncshidden, npar, ndin, din[DsizeM][2], ndin2,din2[DsizeS][2];
- int nn, i, j, k, n, nptL, nout;
- nfkL=length3(fkL);
- nfbdy=projpara(fbdkL,fbdy);
- out[0][0]=0;
- outh[0][0]=0;
- ndin=dataindexd3(2,fkL,din);
- for(nn=1; nn<=ndin; nn++){
- fkp[0][0]=0;
- nfk=appendd3(0,din[nn][0],din[nn][1],fkL,fkp);
- n=fmax(1,floor((fmax(Mdv,Ndv)+1)/(nfk-1)+0.5)); //17.06.16
- dt=1.0/n;
- fk[0][0]=0;
- for(i=1; i<nfk; i++){
- for(j=0; j<n; j++){
- tmpd3[0]=fkp[i][0]+(fkp[i+1][0]-fkp[i][0])*j*dt;
- tmpd3[1]=fkp[i][1]+(fkp[i+1][1]-fkp[i][1])*j*dt;
- tmpd3[2]=fkp[i][2]+(fkp[i+1][2]-fkp[i][2])*j*dt;
- addptd3(fk,tmpd3);
- }
- }
- nfk=appendd3(0,nfk,nfk,fkp,fk);
- nall=projpara(fk,fh);
- partitionseg(fh, fbdy,1, parL);
- if(sepflg>=0){
- for(i=1; i<=nfk-1; i++){
- pull3(i,fk,pa);
- pull3(i+1,fk,pb);
- nptL=meetpoints(Ch,pa,pb, Eps2,ptL);
- for(j=1; j<=nptL; j++){
- pull3(j,ptL,tmpd3);
- parapt(tmpd3,tmpd2);
- tmp1d1=paramoncurve(tmpd2,i,fh);
- tmp2d1=Inf;
- for(k=1; k<=npar; k++){
- tmp2d1=fmin(tmp2d1,fabs(parL[k]-tmp1d1));
- }
- tmpd3[0]=pb[0]-pa[0]; tmpd3[1]=pb[1]-pa[1];
- tmpd3[2]=pb[2]-pa[2];
- if(tmp2d1*dist(3,tmpd3,po)>Eps1){
- npar=appendd1(parL,tmp1d1);
- }
- }
- simplesort(parL);
- }
- }
- nohiddenpara2(parL,fk,1, tmpmd3);
- appendd3(2,1,length3(tmpmd3),tmpmd3,out);
- appendd3(2,1, length3(Hiddendata),Hiddendata,outh);
- }
- push3(Inf,3,0,out); //17.06.17
- nout=appendd3(0,1,length3(outh),outh,out);
- push3(Inf,3,0,out); //17.06.17
- return nout;
-}
-
-int wireparadata(double bdyk[][3], double udv[], double vdv[], int num,
- double fsL[][3]){
- double fbdy[DsizeL][2], udiv[DsizeM], vdiv[DsizeM], fbdxy[DsizeM][2];
- double fs[DsizeL][3], u, v, d, pdata[DsizeM][3], fkL[DsizeM][3];
- double fsLh[DsizeLL][3];
- double tmpmd2[DsizeM][2], fk[DsizeM][3], par[DsizeM], p[2];
- int nfbdy, nd, i, j, k, n, nu, nv, nfbdxy, nfsL, npdata, nfkL, nfk, npar,ntmp;
- int nwire, ndin, din[DsizeM][2], nfs, ndin2, din2[DsizeM][2];
- nfbdy=projpara(bdyk, fbdy);
- Wirept[0][0]=0;
- udiv[0]=0; nu=0;
- vdiv[0]=0; nv=0;
- n=floor(udv[0]+0.5);
- if(n==-1){
- nd=floor(udv[1]+0.5);
- d=(Urng[1]-Urng[0])/(nd+1);
- for(i=1; i<=nd; i++){
- u=Urng[0]+i*d;
- nu=appendd1(udiv,u);
- }
- }
- else{
- for(i=1; i<=n; i++){
- nu=appendd1(udiv,udv[i]);
- }
- }
- n=floor(vdv[0]+0.5);
- if(n==-1){
- nd=floor(vdv[1]+0.5);
- d=(Vrng[1]-Vrng[0])/(nd+1);
- for(i=1; i<=nd; i++){
- v=Vrng[0]+i*d;
- nv=appendd1(vdiv,v);
- }
- }
- else{
- for(i=1; i<=n; i++){
- nv=appendd1(vdiv,vdv[i]);
- }
- }
- nfbdxy=makexybdy(Ch,fbdxy);
- Wirept[0][0]=0;
- fsL[0][0]=0; nfsL=0;
- fsLh[0][0]=0;
- for(i=1; i<=nu; i++){
- u=udiv[i];
- d=(Vrng[1]-Vrng[0])/(num*Ndv);
- tmpmd2[0][0]=0; ntmp=0;
- for(j=1;j<=(num*Ndv)+1; j++){
- v=Vrng[0]+(j-1)*d;
- p[0]=u; p[1]=v;
- ntmp=addptd2(tmpmd2,p);
- }
- nfkL=cuspsplitpara(Ch,tmpmd2, fkL);
- ndin=dataindexd3(2,fkL,din);
- for(j=1; j<=ndin; j++){
- fk[0][0]=0;
- nfk=appendd3(0, din[j][0], din[j][1], fkL,fk);
- ntmp=projpara(fk,tmpmd2);
- partitionseg(tmpmd2, fbdy, 1, par);
- ntmp=length2(Partitionpt);
- if(ntmp>2){
- for(k=2; k<=ntmp; k++){
- pull2(k, Partitionpt, p);
- nwire=addptd3(Wirept,p);
- }
- }
- nfs=nohiddenpara2(par,fk,1, fs);
- n=length3(Hiddendata);
- ntmp=appendd3(2,1,n, Hiddendata,fsLh);
- nfsL=appendd3(2,1,nfs,fs,fsL);
- }
- }
- for(i=1; i<= nv; i++){
- v=vdiv[i];
- d=(Urng[1]-Urng[0])/(num*Mdv);
- tmpmd2[0][0]=0; ntmp=0;
- for(j=1;j<=(num*Mdv)+1; j++){
- u=Urng[0]+(j-1)*d;
- p[0]=u; p[1]=v;
- ntmp=addptd2(tmpmd2,p);
- }
- nfkL=cuspsplitpara(Ch,tmpmd2, fkL);
- ndin=dataindexd3(2,fkL,din);
- for(j=1; j<=ndin; j++){
- fk[0][0]=0;
- nfk=appendd3(0, din[j][0], din[j][1], fkL,fk);
- ntmp=projpara(fk,tmpmd2);
- partitionseg(tmpmd2, fbdy, 1, par);
- ntmp=length2(Partitionpt);
- if(ntmp>2){
- for(k=2; k<=ntmp; k++){
- pull2(k, Partitionpt, p);
- nwire=addptd3(Wirept,p);
- }
- }
- nohiddenpara2(par,fk,1, fs);
- appendd3(2,1,length3(Hiddendata), Hiddendata,fsLh);
- appendd3(2,1,length3(fs),fs,fsL);
- }
- }
- push3(Inf,3,0,fsL);
- nfsL=appendd3(0,1,length3(fsLh),fsLh,fsL);
- push3(Inf,3,0,fsL);
- return nfsL;
-}
-
-/*
-double cutfun(int ch, double u, double v){
- double p[3],val ;
- surffun(ch,u,v,p);
- val=p[0]+p[1]-0.5;
- return val;
-}
-*/
-
-void makevaltablecut(int chcut){
- double eps0=pow(10,-6.0), u, v, du, dv;
- int i, j, nx=0, ny=0; ;
- du=(Urng[1]-Urng[0])/Mdv;
- dv=(Vrng[1]-Vrng[0])/Ndv;
- for(j=0; j<=Ndv; j++){
- v=Vrng[0]+j*dv;
- for(i=0; i<=Mdv; i++){
- u=Urng[0]+i*du;
- Zval[j][i]=cutfun(Ch,chcut, u,v);
- }
- }
- for(i=0; i<=Mdv; i++){
- Xval[i]=Urng[0]+i*du;
- }
- for(j=0; j<=Ndv; j++){
- Yval[j]=Vrng[0]+j*dv;
- }
-}
-
-int sfcutdata(int ch, double ekL[][3]){
- double cutuvL[DsizeL][2], out1[DsizeM][2], out2[DsizeM][3], pt[3];
- int i, j, nall, ndin, din[DsizeM][2], nekL,nout1,nout2;
-// makevaltablecut(ch); //180320
-// nall=implicitplot(cutuvL); //180320
- ekL[0][0]=0; nekL=0;
- ndin=dataindexd2(2,cutuvL,din);
- for(i=1; i<=ndin; i++){
- out1[0][0]=0;
- nout1=appendd2(2,din[i][0],din[i][1],cutuvL,out1);
- out2[0][0]=0;
- for(j=1; j<=nout1; j++){
- surffun(ch,out1[j][0], out1[j][1], pt);
- nout2=addptd3(out2,pt);
- }
- nekL=appendd3(2,1,nout2,out2,ekL);
- }
- return nekL;
-}
-
-int crv3onsfparadata(double fk[][3], double fbdyd3[][3], double out[][3]){
- double fbdy[DsizeL][2], fh[DsizeL][2], tmpmd2[DsizeL][2], par[DsizeM];
- int n, nall, nfbdy, nfbdxy, npar, nout;
- out[0][0]=0;
- nfbdy=projpara(fbdyd3,fbdy);
-// nall=ospline3(2,fk,2,fk1);
- projpara(fk,fh);
- partitionseg(fh,fbdy, 1, par);
- nohiddenpara2(par,fk, 1,out);
- push3(Inf,3,0,out);
- nall=appendd3(0,1,length3(Hiddendata),Hiddendata,out);
- push3(Inf,3,0,out); //17.06.16
- return nall;
-}
-
-int projcoordcurve(double curve[][3], double out[][3]){
- double SP=sin(PHI), CP=cos(PHI), ST=sin(THETA), CT=cos(THETA);
- double pt[3], xz, yz, zz;
- int i, n, nall;
- out[0][0]=0;
- n=length3(curve);
- for(i=1; i<=n; i++){
- pull3(i, curve, pt);
- if(pt[0]>Inf-1){
- xz=pt[0]; yz=pt[1]; zz=pt[2];
- }
- else{
- xz=-pt[0]*SP+pt[1]*CP;
- yz=-pt[0]*CP*CT-pt[1]*SP*CT+pt[2]*ST;
- zz=pt[0]*CP*ST+pt[1]*SP*ST+pt[2]*CT;
- }
- nall=push3(xz,yz,zz,out);
- }
- return nall;
-}
-
-int kukannozoku(double jokyo[2], double kukanL[][2], double res[][2]){
- double t1, t2, tmpd2[2], ku[2];
- int i, j, ii, nn, flg, nres;
- nn=length2(kukanL);
- t1=jokyo[0];
- t2=jokyo[1];
- pull2(1,kukanL,tmpd2);
- t1=fmax(t1,tmpd2[0]);
- pull2(nn,kukanL,tmpd2);
- t2=fmin(t2,tmpd2[1]);
- res[0][0]=0; nres=0;
- flg=0;
- for(ii=1; ii<=nn; ii++){
- pull2(ii,kukanL,ku);
- if(flg==0){
- if(ku[1]<t1){
- nres=addptd2(res,ku);
- }
- else{
- flg=1;
- if(ku[0]<t1-Eps){
- tmpd2[0]=ku[0]; tmpd2[1]=t1;
- nres=addptd2(res,tmpd2);
- }
- if(ku[1]>t2+Eps){
- tmpd2[0]=t2; tmpd2[1]=ku[1];
- nres=addptd2(res,tmpd2);
- }
- }
- }
- else if(flg==1){
- if(ku[1]<t2){
- continue;
- }
- else{
- flg=2;
- if(ku[0]<t2-Eps){
- ku[0]=t2;
- }
- nres=addptd2(res,ku);
- }
- }
- else{
- nres=addptd2(res,ku);
- }
- }
- return nres;
-}
-
-int skeletondata3(double data[][3], double r00,
- double eps1, double eps2, double allres[][3]){
- double objL[DsizeLL][3], pltL[DsizeLL][3];
- double clipL[DsizeL][5],koc2d6[DsizeM][6],tmpd6[6];
- double pts1[DsizeL][2],koc[DsizeM][4], koc2[DsizeM][4], kukanL[DsizeL][2];
- double r0, t1, t2, z1, z2, tt, rr, origin[2], te, hh, ku[2], za, zb, ds[DsizeM],dmin;
- double pt[2], pta[2], ptb[2], ptq[2];
- double ptL[DsizeL][3], ptL2[DsizeL][2], res2[DsizeL][2], allres2[DsizeL][2];
- double obj[DsizeL][3], plt[DsizeL][3];
- double objp[DsizeL][3], pltp[DsizeL][3];
- double obj2d[DsizeL][2], plt2d[DsizeL][2];
- double tmpd1, tmp2d1, tmp3d1, tmp1d2[2], tmp2d2[2],tmpd3[3];
- double tmpmd2[DsizeL][2], tmpmd3[DsizeL][3], tmpd4[4], tmp1d4[4];
- int j, ii, jj, nobj, nplt, nall, din1[DsizeM][2], din2[DsizeM][2];
- int nkoc, nkoc2, nn,nn1,nn2, nclipL, flg, ntmp;
- char str1[100], str2[100];
- objL[0][0]=0; pltL[0][0]=0;
- dataindexd3(3,data,din1);
- appendd3(0, din1[1][0],din1[1][1],data,objL);
- appendd3(0, din1[2][0],din1[2][1],data,pltL);
- allres[0][0]=0;
- allres2[0][0]=0;
- dataindexd3(2,objL,din1);
- dataindexd3(2,pltL,din2);
- for(nobj=1; nobj<=length2i(din1); nobj++){
- tmpmd3[0][0]=0;
- ntmp=appendd3(2,din1[nobj][0],din1[nobj][1],objL,tmpmd3);
- nn=ceil((fmax(Mdv,Ndv)*2-1)/(ntmp-1));
- increasept3(tmpmd3,nn,obj);
- appendd3(0,ntmp,ntmp,tmpmd3,obj);
- projcoordcurve(obj,objp);
- obj2d[0][0]=0;
- for(j=1; j<=length3(objp); j++){
- push2(objp[j][0],objp[j][1],obj2d);
- }
- clipL[0][0]=0; nclipL=0;
- for(nplt=1; nplt<=length2i(din2); nplt++){
- tmpmd3[0][0]=0;
- ntmp=appendd3(2,din2[nplt][0],din2[nplt][1],pltL,tmpmd3);
- nn=ceil((fmax(Mdv,Ndv)*2-1)/(ntmp-1));
- increasept3(tmpmd3,nn,plt);
- appendd3(0,ntmp,ntmp,tmpmd3,plt);
- projcoordcurve(plt,pltp);
- plt2d[0][0]=0;
- for(j=1; j<=length3(pltp); j++){
- push2(pltp[j][0],pltp[j][1],plt2d);
- }
- intersectcurvesPp(obj2d,plt2d,20,koc2d6); //180324from
- nkoc2=length6(koc2d6);
- koc2[0][0]=0;
- for(ii=1;ii<=nkoc2;ii++){
- pull6(ii,koc2d6,tmpd6);
- push4(tmpd6[0],tmpd6[1],tmpd6[2],tmpd6[3],koc2);
- }//180324to
- if(nkoc2>0){
- koc[0][0]=0; nkoc=0;
- pull2(1,plt2d,pta);
- pull2(length2(plt2d),plt2d,ptb);
- for(j=1; j<=nkoc2; j++){
- pt[0]=koc2[j][0]; pt[1]=koc2[j][1];
- nearestptpt(pt, plt2d, tmpd4);
- koc2[j][3]=tmpd4[2];
- pt[0]=tmpd4[0]; pt[1]=tmpd4[1];
- nearestptpt(pt, obj2d, tmpd4);
- koc2[j][0]=tmpd4[0]; koc2[j][1]=tmpd4[1];
- koc2[j][2]=tmpd4[2];
- ds[j]=tmpd4[3];
- }
- pull4(1,koc2,tmp1d4);
- dmin=ds[1];
- for(j=2; j<=nkoc2; j++){
- if(fabs(koc2[j][2]-tmp1d4[2])<4){
- if(ds[j]<dmin){
- pull4(j,koc2,tmp1d4);
- dmin=ds[j];
- }
- }
- else{
- addptd4(koc,tmp1d4);
- pull4(j,koc2,tmp1d4);
- dmin=ds[j];
- }
- }
- nkoc=addptd4(koc,tmp1d4);
-/*
- if(tmpd4[3]<2*eps1){
- if((dist(2,pta,pt)<eps2)&&(tmpd4[2]<0.1*length2(plt2d))){
- continue;
- }
- if((dist(2,ptb,pt)<eps2)&&(tmpd4[2]>0.9*length2(plt2d))){
- continue;
- }
- pull4(j,koc2,tmpd4);
- nkoc=addptd4(koc,tmpd4);
- }
- }
-*/
- for(jj=1; jj<=nkoc; jj++){
- pt[0]=koc[jj][0]; pt[1]=koc[jj][1];
- pta[0]=plt2d[1][0]; pta[1]=plt2d[1][1];
- ptb[0]=plt2d[length2(plt2d)][0]; ptb[1]=plt2d[length2(plt2d)][1];
- if((dist(2,pt,pta)<eps2)&&(koc[jj][3]<0.3*length2(plt2d))){
- continue;
- }
- if((dist(2,pt,ptb)<eps2)&&(koc[jj][3]>0.7*length2(plt2d))){
- continue;
- }
- nn1=floor(koc[jj][2]);
- nn2=koc[jj][3];
- pta[0]=objp[nn1][0]; pta[1]=objp[nn1][1];
- za=objp[nn1][2];
- ptb[0]=objp[nn1+1][0]; ptb[1]=objp[nn1+1][1];
- zb=objp[nn1+1][2];
- if(dist(2,pta,ptb)<eps1){
- continue;
- }
- t1=dist(2,pta,pt)/dist(2,pta,ptb);
- z1=(1-t1)*za+t1*zb;
- pta[0]=pltp[nn2][0]; pta[1]=pltp[nn2][1];
- za=tmpmd3[nn2][2];
- ptb[0]=pltp[nn2+1][0]; ptb[1]=pltp[nn2+1][1];
- zb=tmpmd3[nn2+1][2];
- if(dist(2,pta,ptb)<Eps){
- continue;
- }
- t2=dist(2,pta,pt)/dist(2,pta,ptb);
- z2=(1-t2)*za+t2*zb;
- if(z1<z2-eps1){
- if(nclipL==0){
- tmpd1=1;
- }
- }
- else{
- tmpd1=Inf;
- for(j=1; j<=nclipL; j++){
- tmp2d1=pow(clipL[j][0]-pt[0],2.0);
- tmp2d1=tmp2d1+pow(clipL[j][1]-pt[1],2.0);
- tmpd1=fmin(tmpd1,tmp2d1);
- }
- }
- if(tmpd1>pow(Eps,2.0)){
- pts1[0][0]=0;
- pointoncurve(nn1,obj2d,Eps,tmp1d2);
- addptd2(pts1,tmp1d2);
- pointoncurve(nn1+1,obj2d,Eps,tmp1d2);
- addptd2(pts1,tmp1d2);
- tmp1d2[0]=pts1[2][0]-pts1[1][0];
- tmp1d2[1]=pts1[2][1]-pts1[1][1];
- tmp2d2[0]=ptb[0]-pta[0];
- tmp2d2[1]=ptb[1]-pta[1];
- tmp3d1=dotprod(2,tmp1d2,tmp2d2);
- origin[0]=0; origin[1]=0;
- tmp3d1=tmp3d1/dist(2,tmp1d2,origin)/dist(2,tmp2d2,origin);
- tmpd1=1-0.5*pow(tmp3d1,2.0);
- r0=0.075*r00;
- nclipL=push5(pt[0],pt[1], nn1,t1,r0/tmpd1, clipL);
- }
- }
- }
- }
- kukanL[0][0]=0;
- te=length3(obj);
- push2(1.0,te, kukanL);
- for(ii=1; ii<=nclipL; ii++){
- pt[0]=clipL[ii][0]; pt[1]=clipL[ii][1];
- nn=clipL[ii][2];
- tt=nn+clipL[ii][3];
- rr=clipL[ii][4];
- flg=0;
- for(jj=nn; jj>=1; jj--){
- pointoncurve(jj,obj2d,Eps,ptq);
- if(dist(2,pt,ptq)<rr){
- continue;
- }
- flg=jj;
- break;
- }
- if(flg==0){
- t1=1;
- }
- else{
- t1=flg; t2=tt;
- hh=t2-t1;
- for(j=1; j<=10; j++){
- hh=hh*0.5;
- pointoncurve(t1+hh,obj2d,Eps,ptq);
- if(dist(2,pt,ptq)<rr){
- t2=t2-hh;
- }
- else{
- t1=t1+hh;
- }
- }
- }
- ku[0]=t1;
- flg=0;
- for(jj=nn+1; jj<=te; jj++){
- pointoncurve(jj,obj2d,Eps,ptq);
- if(dist(2,pt,ptq)<rr){
- continue;
- }
- flg=jj;
- break;
- }
- if(flg==0){
- t2=te;
- }
- else{
- t1=tt; t2=flg;
- hh=t2-t1;
- for(j=1; j<=10; j++){
- hh=hh*0.5;
- pointoncurve(t1+hh,obj2d,Eps,ptq);
- if(dist(2,pt,ptq)<rr){
- t1=t1+hh;
- }
- else{
- t2=t2-hh;
- }
- }
- }
- ku[1]=t2;
- ntmp=kukannozoku(ku,kukanL,tmpmd2);
- kukanL[0][0]=0;
- appendd2(0,1,ntmp,tmpmd2,kukanL);
- }
- for(jj=1; jj<=length2(kukanL); jj++){
- tmp1d2[0]=kukanL[jj][0]; tmp1d2[1]=kukanL[jj][1];
- t1=kukanL[jj][0]; nn1=floor(t1);
- t2=kukanL[jj][1]; nn2=floor(t2);
- ptL2[0][0]=0;
- ptL[0][0]=0;
- if(t1-nn1<1-Eps){
- pointoncurve(t1,obj2d,Eps,tmp1d2);
- addptd2(ptL2,tmp1d2);
- invparapt(t1, obj2d, obj, tmpd3);
- addptd3(ptL,tmpd3);
- }
- for(j=nn1+1; j<=nn2; j++){
- pointoncurve(j,obj2d,Eps,tmp1d2);
- addptd2(ptL2,tmp1d2);
- invparapt(j, obj2d, obj, tmpd3);
- addptd3(ptL,tmpd3);
- }
- if(t2-nn2>Eps){
- pointoncurve(t2,obj2d,Eps,tmp1d2);
- addptd2(ptL2,tmp1d2);
- invparapt(t2, obj2d, obj, tmpd3);
- addptd3(ptL,tmpd3);
- }
- if(length2(ptL2)>1){
- appendd2(2,1,length2(ptL2),ptL2,allres2);
- appendd3(2,1,length3(ptL),ptL,allres);
- }
- }
- }
- return length3(allres);
-}
-
-/*
-void writesfbd(const char *var, const char *fname, const char *fnameh,double sf[][3]){
- sfbdparadata(sf);
- output3(var, "", fname,2,sf);
- output3(var, "h", fnameh,2,Borderhiddendata);
-}
-
-void writecrv(const char *var, const char *fname, const char *fnameh,
- double crv[][3],double sf[][3]){
- crvsfparadata(crv, sf, 1,Crvdata);
- output3(var, "", fname,2,Crvdata);
- output3(var, "h", fnameh,2,Crvsfhiddendata);
-}
-
-void writewire(const char *var, const char *fname, const char *fnameh,
- double sf[][3], int num, double udv[], double vdv[]){
- wireparadata(sf, num, udv,vdv, Wiredata);
- output3(var, "", fname,2,Wiredata);
- output3(var, "h", fnameh,2,Hiddenwiredata);
-}
-
-void writesfcut(const char *var, const char *fname, const char *fnameh,
- double crv[][3], double sf[][3]){
- sfcutdata(crv);
- crv3onsfparadata(crv, sf, Crvonsfdata);
- output3(var, "", fname,2,Crvonsfdata);
- output3(var, "h", fnameh,2,Crv3onsfhiddendata);
-}
-
-void writecrvonsf(const char *var, const char *fname, const char *fnameh,
- double crv[][3],double sf[][3]){
- crv3onsfparadata(crv, sf, Crvonsfdata);
- output3(var, "", fname,2,Crvonsfdata);
- output3(var, "h", fnameh,2,Crv3onsfhiddendata);
-}
-*/
-
-
diff --git a/texmf-dist/scripts/ketcindy/ketlibC/surflibhead.h b/texmf-dist/scripts/ketcindy/ketlibC/surflibhead.h
deleted file mode 100644
index df31a4d8..00000000
--- a/texmf-dist/scripts/ketcindy/ketlibC/surflibhead.h
+++ /dev/null
@@ -1,58 +0,0 @@
-double Xval[DsizeS], Yval[DsizeS], Zval[DsizeS][DsizeS];
-
-//////////////////////
-short Ch=1;
-/////////////////////
-
-//double Implicitdata[DsizeL][2]; //180320
-double Cuspsplitpt[DsizeL][2];
-double Cusppt[DsizeM][2];
-double Otherpartition [DsizeM];
-double Partitionpt[DsizeM][2];
-double Cuspdata[DsizeM];
-double Wirept[DsizeM][3];
-double Hiddendata[DsizeL][3];
-double Borderpt[DsizeM][2];
-double Borderhiddendata[DsizeL][3];
-double Surf[DsizeL][3];
-double Crvdata[DsizeL][3];
-double Wiredata[DsizeLL][3];
-
-int output3(const char *var, const char *fname, int level, double out[][3]);
-int output3h(const char *var, const char *varh, const char *fname, double out[][3]);
-int writedataC(const char *fname, double out[][3]);
-int readdataC(const char *fname, double data[][3]);
-void parapt(double pt3[3],double pt2[2]);
-int projpara(double p3[][3], double p2[][2]);
-double invparapt(double ph, double fh[][2], double fk[][3],double out[3]);
-int surfcurve(short ch,int level, double crv[][2], double pdata[][3]);
-int xyzax3data(double x0, double x1, double y0, double y1, double z0, double z1,
- double out[][3]);
-double evlpfun(short ch, double u, double v);
-int envelopedata(short ch, double out[][2]);
-void evlptablepara(short ch);
-//int implicitplot(double out[][2]);
-int cuspsplitpara(short ch,double pdata[][2], double outkL[][3]);
-double funpthiddenQ(short ch,double u, double v, double pa[3]);
-int makexybdy(short ch,double ehL[][2]);
-void partitionseg(double fig[][2],double gL[][2], int ns, double parL[]);
-void makevaltablepth(short ch,double pta[3]);
-int pthiddenQ(short ch,double pta[3], int uveq, double eps[2]);
-int nohiddenpara2(double paL[], double fk[][3], int uveq, double figkL[][3]);
-int borderparadata(short ch,double fkL[][3], double fsL[][3]);
-int dropnumlistcrv3(double qd[][3], double eps1, int out[]);
-int sfbdparadata(short ch,double outd3[][3]);
-void makevaltablemeet(short ch,double pa[3], double vec[3], double eps0);
-int meetpoints(short ch,double pta[3], double ptb[3], double eps, double ptL[][3]);
-int crvsfparadata(double fkL[][3], double fbdkL[][3], int sepflg, double out[][3]);
-int sfcutdata(int ch, double ekL[][3]);
-int crv3onsfparadata(double fk[][3], double fbdyd3[][3], double out[][3]);
-int wireparadata(double bdyk[][3], double udv[], double vdv[], int num,
- double fsL[][3]);
-int projcoordcurve(double curve[][3], double out[][3]);
-int kukannozoku(double jokyo[2], double kukanL[][2], double res[][2]);
-int skeletondata3(double data[][3], double r00, double eps1, double eps2,
- double allres[][3]);
-
-double cutfun(short ch,int chcut,double u, double v);
-void makevaltablecut(int chcut);
diff --git a/texmf-dist/scripts/ketcindy/ketoutset.txt b/texmf-dist/scripts/ketcindy/ketoutset.txt
deleted file mode 100644
index 38381ef2..00000000
--- a/texmf-dist/scripts/ketcindy/ketoutset.txt
+++ /dev/null
@@ -1,68 +0,0 @@
-if(iswindows(),
-// PathThead="C:\kettex\texlive\bin\win32\";
-// PathThead="";
-// PathT=PathThead+"platex";
- PathT=PathThead+"uplatex";
-// PathT=PathThead+"platex";
-// PathT=PathThead+"latex";
-// PathT=PathThead+"pdflatex";
-// PathT=PathThead+"lualatex";
-// PathS="C:\Program Files\scilab-5.5.2\bin\scilex";
- PathS="C:\Program Files\scilab-6.0.0\bin\scilex";
- PathC="C:\MinGW\bin\gcc.exe";
-// PathC="C:\MinGW32\bin\gcc.exe";
- Pathpdf="C:\Program Files\SumatraPDF\SumatraPDF.exe";
- PathR="C:\Program Files\R\R-3.4.2\bin";
- PathA="C:\Program Files\asir\bin\asir";
- PathM="C:\maxima-5.37.3\bin\maxima.bat";
- PathV3="C:\Program Files\VCG\MeshLab\meshlab";
- PathF="C:\cygwin\bin";
-// PathAd="C:\Program Files (x86)\Adobe\Reader 11.0\Reader\AcroRd32.exe";
- PathAd="C:\Program Files\Adobe\Acrobat Reader DC\Reader\AcroRd32.exe";
-);
-if(ismacosx(),
-// PathThead="/Applications/kettex/texlive/bin/x86_64-darwin/";
-// PathThead="/Library/TeX/texbin/";
-// PathThead="";
-// PathT=PathThead+"platex";
- PathT=PathThead+"uplatex";
-// PathT=PathThead+"latex";
-// PathT=PathThead+"xelatex";
-// PathT=PathThead+"pdflatex";
-// PathT=PathThead+"lualatex";
-// PathS="/Applications/scilab-5.5.2.app/Contents/MacOS/bin/scilab";
- PathS="/Applications/scilab-6.0.0.app/Contents/MacOS/bin/scilab";
- Pathpdf="preview";
-// Pathpdf="skim";
-// Pathpdf="/Applications/skim.app/Contents/MacOS/Skim";
- PathC="gcc";
-// PathR="R";
-// PathR="/Library/Frameworks/R.framework/Versions/3.3/Resources/bin/R";
- PathR="/Library/Frameworks/R.framework/Versions/Current/Resources/bin/R";
- PathA="/Applications/cfep.app/OpenXM/rc/asir";
- PathM="/Applications/Maxima.app/Contents/Resources/maxima.sh";
- PathV3="/Applications/meshlab.app/Contents/MacOS/MeshLab";
- PathF="/Applications/FriCAS.app/Contents/Resources/bin/fricas";
-// PathAd="Adobe Reader";
- PathAd="/Applications/Adobe Acrobat Reader DC.app/Contents/MacOS/AdobeReader";
- Mackc="sh";
-// Mackc="open";
-);
-if(islinux(),
- PathT="uplatex";
- PathS="scilab";
- Pathpdf="evince";
-// Pathpdf="/usr/bin/xpdf";
- PathR="R";
- PathA="";
- PathM="maxima";
- PathV3="";
- PathF="";
- PathAd="";
-);
-
-if(indexof(PathT,"platex")>0,
- Helplist(["+","+3d","+mv"],"helpJ");
-,
- Helplist(["+","+3d","+mv"],"helpE");
-);
diff --git a/texmf-dist/scripts/ketcindy/setketcindy.txt b/texmf-dist/scripts/ketcindy/setketcindy.txt
deleted file mode 100755
index 39de2543..00000000
--- a/texmf-dist/scripts/ketcindy/setketcindy.txt
+++ /dev/null
@@ -1,12 +0,0 @@
-// e:2018.02.26
-Dirlib=Dirhead+pathsep()+"ketlib";
-Libname=Dirlib+pathsep()+"ketpiccurrent";
-DirlibC=Dirhead+pathsep()+"ketlibC";
-setdirectory(Dirlib);
-import("ketcindylibbasic1r.cs");
-import("ketcindylibbasic2r.cs");
-import("ketcindyliboutr.cs");
-import("ketcindylib3dr.cs");
-import("ketcindylibmvr.cs");
-
-setdirectory(Dirhead);
diff --git a/texmf-dist/scripts/ketcindy/template1basic.cdy b/texmf-dist/scripts/ketcindy/template1basic.cdy
deleted file mode 100644
index 806d69f2..00000000
--- a/texmf-dist/scripts/ketcindy/template1basic.cdy
+++ /dev/null
Binary files differ
diff --git a/texmf-dist/scripts/ketcindy/template2advanced.cdy b/texmf-dist/scripts/ketcindy/template2advanced.cdy
deleted file mode 100755
index 3fa2e25a..00000000
--- a/texmf-dist/scripts/ketcindy/template2advanced.cdy
+++ /dev/null
Binary files differ
diff --git a/texmf-dist/tex/latex/ketcindy/ketlayer.sty b/texmf-dist/tex/latex/ketcindy/ketlayer.sty
deleted file mode 100755
index 45817242..00000000
--- a/texmf-dist/tex/latex/ketcindy/ketlayer.sty
+++ /dev/null
@@ -1,2836 +0,0 @@
-%Copyright (C) 2014 Setsuo Takato, KETpic developer team
-%*
-%* This program is free software: you can redistribute it and/or modify
-%* it under the terms of the GNU General Public License as published by
-%* the Free Software Foundation; either version 3 of the License, or
-%* (at your option) any later version.
-%*
-%* This program is distributed in the hope that it will be useful,
-%* but WITHOUT ANY WARRANTY; without even the implied warranty of
-%* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-%* GNU General Public License for more details.
-%*
-%* You should have received a copy of the GNU General Public License
-%* along with this program. If not, see <http://www.gnu.org/licenses/>
-%%% ketlayer.sty 2017-1-13 12:53
-%%% ketlayer170109.sce 2017-1-13 12:53
-% 2017.01.09%
-\newlength{\layercurrentunit}%
-\newcommand{\shadebox}[7][0]{%
-\def\tmpcontents{%
-{\unitlength=1mm%
-\begin{picture}%
-( 100.00000, 100.00000)( 0.00000, 0.00000)%
-\special{pn 8}%
-%
-{\color{#6}%
-\special{pa 0 0}\special{pa 3937 0}\special{pa 3937 -3937}\special{pa 0 -3937}\special{pa 0 0}%
-\special{sh 1}\special{ip}%
-}%
-\end{picture}}%%
-}%
-%
-{%
-\ifnum %
-#4<10 %
-%
-{%
-\ifnum %
-#5<10 %
-\settowidth{\Width}{{\color{#7}\scalebox{0.0#4}[0.0#5]{\tmpcontents}}}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{{\color{#7}\scalebox{0.0#4}[0.0#5]{\tmpcontents}}}\settodepth{\Depth}{{\color{#7}\scalebox{0.0#4}[0.0#5]{\tmpcontents}}}\setlength{\Height}{-\Height}%
-\put(#2,-#3){\hspace*{\Width}\raisebox{\Height}{{\color{#7}\scalebox{0.0#4}[0.0#5]{\tmpcontents}}}}%
-%
-\else%
-\settowidth{\Width}{{\color{#7}\scalebox{0.0#4}[0.#5]{\tmpcontents}}}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{{\color{#7}\scalebox{0.0#4}[0.#5]{\tmpcontents}}}\settodepth{\Depth}{{\color{#7}\scalebox{0.0#4}[0.#5]{\tmpcontents}}}\setlength{\Height}{-\Height}%
-\put(#2,-#3){\hspace*{\Width}\raisebox{\Height}{{\color{#7}\scalebox{0.0#4}[0.#5]{\tmpcontents}}}}%
-%
-\fi%
-}%
-%
-\else%
-%
-{%
-\ifnum %
-#5<10 %
-\settowidth{\Width}{{\color{#7}\scalebox{0.#4}[0.0#5]{\tmpcontents}}}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{{\color{#7}\scalebox{0.#4}[0.0#5]{\tmpcontents}}}\settodepth{\Depth}{{\color{#7}\scalebox{0.#4}[0.0#5]{\tmpcontents}}}\setlength{\Height}{-\Height}%
-\put(#2,-#3){\hspace*{\Width}\raisebox{\Height}{{\color{#7}\scalebox{0.#4}[0.0#5]{\tmpcontents}}}}%
-%
-\else%
-\settowidth{\Width}{{\color{#7}\scalebox{0.#4}[0.#5]{\tmpcontents}}}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{{\color{#7}\scalebox{0.#4}[0.#5]{\tmpcontents}}}\settodepth{\Depth}{{\color{#7}\scalebox{0.#4}[0.#5]{\tmpcontents}}}\setlength{\Height}{-\Height}%
-\put(#2,-#3){\hspace*{\Width}\raisebox{\Height}{{\color{#7}\scalebox{0.#4}[0.#5]{\tmpcontents}}}}%
-%
-\fi%
-}%
-%
-\fi%
-}%
-%
-{%
-\ifnum %
-#1>0 %
-\boxframese{#2}{#3}{#4}{#5}{}%
-%
-\fi%
-}%
-%
-}%
-\newcommand{\shadeboxse}[7][0]{%
-\shadebox[#1]{#2}{#3}{#4}{#5}{#6}{#7}%
-%
-}%
-\newcommand{\shadeboxc}[7][0]{%
-\setcounter{ketpicctrd}{-#4}%
-\divide\value{ketpicctrd} by 2%
-\addtocounter{ketpicctrd}{#2}%
-\setcounter{ketpicctre}{-#4}%
-\divide\value{ketpicctre} by 2%
-\addtocounter{ketpicctre}{#3}%
-\shadebox[#1]{\theketpicctrd}{\theketpicctre}{#4}{#5}{#6}{#7}%
-%
-}%
-\newcommand{\shadeboxe}[7][0]{%
-\setcounter{ketpicctrd}{#2}%
-\setcounter{ketpicctre}{-#4}%
-\divide\value{ketpicctre} by 2%
-\addtocounter{ketpicctre}{#3}%
-\shadebox[#1]{\theketpicctrd}{\theketpicctre}{#4}{#5}{#6}{#7}%
-%
-}%
-\newcommand{\shadeboxw}[7][0]{%
-\setcounter{ketpicctrd}{-#4}%
-\addtocounter{ketpicctrd}{#2}%
-\setcounter{ketpicctre}{-#4}%
-\divide\value{ketpicctre} by 2%
-\addtocounter{ketpicctre}{#3}%
-\shadebox[#1]{\theketpicctrd}{\theketpicctre}{#4}{#5}{#6}{#7}%
-%
-}%
-\newcommand{\shadeboxn}[7][0]{%
-\setcounter{ketpicctrd}{-#4}%
-\divide\value{ketpicctrd} by 2%
-\addtocounter{ketpicctrd}{#2}%
-\setcounter{ketpicctre}{#3}%
-\addtocounter{ketpicctre}{-#4}%
-\shadebox[#1]{\theketpicctrd}{\theketpicctre}{#4}{#5}{#6}{#7}%
-%
-}%
-\newcommand{\shadeboxs}[7][0]{%
-\setcounter{ketpicctrd}{-#4}%
-\divide\value{ketpicctrd} by 2%
-\addtocounter{ketpicctrd}{#2}%
-\setcounter{ketpicctre}{#3}%
-\shadebox[#1]{\theketpicctrd}{\theketpicctre}{#4}{#5}{#6}{#7}%
-%
-}%
-\newcommand{\shadeboxnw}[7][0]{%
-\setcounter{ketpicctrd}{-#4}%
-\addtocounter{ketpicctrd}{#2}%
-\setcounter{ketpicctre}{#3}%
-\addtocounter{ketpicctre}{-#4}%
-\shadebox[#1]{\theketpicctrd}{\theketpicctre}{#4}{#5}{#6}{#7}%
-%
-}%
-\newcommand{\shadeboxne}[7][0]{%
-\setcounter{ketpicctrd}{#2}%
-\setcounter{ketpicctre}{#3}%
-\addtocounter{ketpicctre}{-#4}%
-\shadebox[#1]{\theketpicctrd}{\theketpicctre}{#4}{#5}{#6}{#7}%
-%
-}%
-\newcommand{\shadeboxsw}[7][0]{%
-\setcounter{ketpicctrd}{-#4}%
-\addtocounter{ketpicctrd}{#2}%
-\setcounter{ketpicctre}{#3}%
-\shadebox[#1]{\theketpicctrd}{\theketpicctre}{#4}{#5}{#6}{#7}%
-%
-}%
-\newcommand{\eraser}[5][0]{%
-\def\tmpcontents{%
-{\unitlength=1mm%
-\begin{picture}%
-( 100.00000, 100.00000)( 0.00000, 0.00000)%
-\special{pn 8}%
-%
-\special{pa 0 0}\special{pa 3937 0}\special{pa 3937 -3937}\special{pa 0 -3937}\special{pa 0 0}%
-\special{sh 0}\special{ip}%
-\end{picture}}%%
-}%
-%
-{%
-\ifnum %
-#4<10 %
-%
-{%
-\ifnum %
-#5<10 %
-\settowidth{\Width}{\scalebox{0.0#4}[0.0#5]{\tmpcontents}}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{\scalebox{0.0#4}[0.0#5]{\tmpcontents}}\settodepth{\Depth}{\scalebox{0.0#4}[0.0#5]{\tmpcontents}}\setlength{\Height}{-\Height}%
-\put(#2,-#3){\hspace*{\Width}\raisebox{\Height}{\scalebox{0.0#4}[0.0#5]{\tmpcontents}}}%
-%
-\else%
-\settowidth{\Width}{\scalebox{0.0#4}[0.#5]{\tmpcontents}}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{\scalebox{0.0#4}[0.#5]{\tmpcontents}}\settodepth{\Depth}{\scalebox{0.0#4}[0.#5]{\tmpcontents}}\setlength{\Height}{-\Height}%
-\put(#2,-#3){\hspace*{\Width}\raisebox{\Height}{\scalebox{0.0#4}[0.#5]{\tmpcontents}}}%
-%
-\fi%
-}%
-%
-\else%
-%
-{%
-\ifnum %
-#5<10 %
-\settowidth{\Width}{\scalebox{0.#4}[0.0#5]{\tmpcontents}}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{\scalebox{0.#4}[0.0#5]{\tmpcontents}}\settodepth{\Depth}{\scalebox{0.#4}[0.0#5]{\tmpcontents}}\setlength{\Height}{-\Height}%
-\put(#2,-#3){\hspace*{\Width}\raisebox{\Height}{\scalebox{0.#4}[0.0#5]{\tmpcontents}}}%
-%
-\else%
-\settowidth{\Width}{\scalebox{0.#4}[0.#5]{\tmpcontents}}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{\scalebox{0.#4}[0.#5]{\tmpcontents}}\settodepth{\Depth}{\scalebox{0.#4}[0.#5]{\tmpcontents}}\setlength{\Height}{-\Height}%
-\put(#2,-#3){\hspace*{\Width}\raisebox{\Height}{\scalebox{0.#4}[0.#5]{\tmpcontents}}}%
-%
-\fi%
-}%
-%
-\fi%
-}%
-%
-{%
-\ifnum %
-#1>0 %
-\boxframese{#2}{#3}{#4}{#5}{}%
-%
-\fi%
-}%
-%
-}%
-\newcommand{\eraserse}[5][0]{%
-\eraser[#1]{#2}{#3}{#4}{#5}%
-%
-}%
-\newcommand{\eraserc}[5][0]{%
-\setcounter{ketpicctrd}{-#4}%
-\divide\value{ketpicctrd} by 2%
-\addtocounter{ketpicctrd}{#2}%
-\setcounter{ketpicctre}{-#4}%
-\divide\value{ketpicctre} by 2%
-\addtocounter{ketpicctre}{#3}%
-\eraser[#1]{\theketpicctrd}{\theketpicctre}{#4}{#5}%
-%
-}%
-\newcommand{\erasere}[5][0]{%
-\setcounter{ketpicctrd}{#2}%
-\setcounter{ketpicctre}{-#4}%
-\divide\value{ketpicctre} by 2%
-\addtocounter{ketpicctre}{#3}%
-\eraser[#1]{\theketpicctrd}{\theketpicctre}{#4}{#5}%
-%
-}%
-\newcommand{\eraserw}[5][0]{%
-\setcounter{ketpicctrd}{-#4}%
-\addtocounter{ketpicctrd}{#2}%
-\setcounter{ketpicctre}{-#4}%
-\divide\value{ketpicctre} by 2%
-\addtocounter{ketpicctre}{#3}%
-\eraser[#1]{\theketpicctrd}{\theketpicctre}{#4}{#5}%
-%
-}%
-\newcommand{\erasern}[5][0]{%
-\setcounter{ketpicctrd}{-#4}%
-\divide\value{ketpicctrd} by 2%
-\addtocounter{ketpicctrd}{#2}%
-\setcounter{ketpicctre}{#3}%
-\addtocounter{ketpicctre}{-#4}%
-\eraser[#1]{\theketpicctrd}{\theketpicctre}{#4}{#5}%
-%
-}%
-\newcommand{\erasers}[5][0]{%
-\setcounter{ketpicctrd}{-#4}%
-\divide\value{ketpicctrd} by 2%
-\addtocounter{ketpicctrd}{#2}%
-\setcounter{ketpicctre}{#3}%
-\eraser[#1]{\theketpicctrd}{\theketpicctre}{#4}{#5}%
-%
-}%
-\newcommand{\erasernw}[5][0]{%
-\setcounter{ketpicctrd}{-#4}%
-\addtocounter{ketpicctrd}{#2}%
-\setcounter{ketpicctre}{#3}%
-\addtocounter{ketpicctre}{-#4}%
-\eraser[#1]{\theketpicctrd}{\theketpicctre}{#4}{#5}%
-%
-}%
-\newcommand{\eraserne}[5][0]{%
-\setcounter{ketpicctrd}{#2}%
-\setcounter{ketpicctre}{#3}%
-\addtocounter{ketpicctre}{-#4}%
-\eraser[#1]{\theketpicctrd}{\theketpicctre}{#4}{#5}%
-%
-}%
-\newcommand{\erasersw}[5][0]{%
-\setcounter{ketpicctrd}{-#4}%
-\addtocounter{ketpicctrd}{#2}%
-\setcounter{ketpicctre}{#3}%
-\eraser[#1]{\theketpicctrd}{\theketpicctre}{#4}{#5}%
-%
-}%
-\newcommand{\arrowhead}[4][1]{%
-\def\tmpcontents{%
-{\unitlength=1mm%
-\begin{picture}%
-( 4.00000, 1.23607)( -2.00000, -0.61803)%
-\special{pn 8}%
-%
-\special{pn 4}%
-\special{pa 0 0}\special{pa 79 24}\special{pa 79 -24}\special{pa 0 0}%
-\special{fp}%
-\special{pn 8}%
-\special{pa 0 0}\special{pa 79 24}\special{pa 79 -24}\special{pa 0 0}\special{sh 1}\special{ip}%
-\end{picture}}%%
-}%
-\settowidth{\Width}{\rotatebox[origin=c]{#4}{\scalebox{#1}{\tmpcontents}}}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{\rotatebox[origin=c]{#4}{\scalebox{#1}{\tmpcontents}}}\settodepth{\Depth}{\rotatebox[origin=c]{#4}{\scalebox{#1}{\tmpcontents}}}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(#2,-#3){\hspace*{\Width}\raisebox{\Height}{\rotatebox[origin=c]{#4}{\scalebox{#1}{\tmpcontents}}}}%
-%
-}%
-\newcommand{\lineseg}[5][12]{%
-\def\tmpcontents{%
-\setcounter{ketpicctra}{0}%
-\setcounter{ketpicctra}{1}%
-\addtocounter{ketpicctra}{-1}%
-%
-{%
-\loop%
-\addtocounter{ketpicctra}{1}%
-{\unitlength=1mm%
-\begin{picture}%
-( 1.00000, 0.00200)( 0.00000, -0.00100)%
-\special{pn 8}%
-%
-\special{pn #1}%
-\special{pa 0 0}\special{pa 39 0}%
-\special{fp}%
-\end{picture}}%%
-\ifnum\theketpicctra<#4%
-\repeat%
-}%
-%
-}%
-%
-{%
-\ifnum %
-#5>0 %
-%
-{%
-\ifnum %
-#5<90 %
-\settowidth{\Width}{\rotatebox[origin=c]{#5}{\tmpcontents}}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{\rotatebox[origin=c]{#5}{\tmpcontents}}\settodepth{\Depth}{\rotatebox[origin=c]{#5}{\tmpcontents}}\setlength{\Height}{\Depth}%
-\put(#2,-#3){\hspace*{\Width}\raisebox{\Height}{\rotatebox[origin=c]{#5}{\tmpcontents}}}%
-%
-\else%
-\settowidth{\Width}{\rotatebox[origin=c]{#5}{\tmpcontents}}\setlength{\Width}{-1\Width}%
-\settoheight{\Height}{\rotatebox[origin=c]{#5}{\tmpcontents}}\settodepth{\Depth}{\rotatebox[origin=c]{#5}{\tmpcontents}}\setlength{\Height}{\Depth}%
-\put(#2,-#3){\hspace*{\Width}\raisebox{\Height}{\rotatebox[origin=c]{#5}{\tmpcontents}}}%
-%
-\fi%
-}%
-%
-\else%
-%
-{%
-\ifnum %
-#5>-90 %
-\settowidth{\Width}{\rotatebox[origin=c]{#5}{\tmpcontents}}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{\rotatebox[origin=c]{#5}{\tmpcontents}}\settodepth{\Depth}{\rotatebox[origin=c]{#5}{\tmpcontents}}\setlength{\Height}{-\Height}%
-\put(#2,-#3){\hspace*{\Width}\raisebox{\Height}{\rotatebox[origin=c]{#5}{\tmpcontents}}}%
-%
-\else%
-\settowidth{\Width}{\rotatebox[origin=c]{#5}{\tmpcontents}}\setlength{\Width}{-1\Width}%
-\settoheight{\Height}{\rotatebox[origin=c]{#5}{\tmpcontents}}\settodepth{\Depth}{\rotatebox[origin=c]{#5}{\tmpcontents}}\setlength{\Height}{-\Height}%
-\put(#2,-#3){\hspace*{\Width}\raisebox{\Height}{\rotatebox[origin=c]{#5}{\tmpcontents}}}%
-%
-\fi%
-}%
-%
-\fi%
-}%
-%
-}%
-\newcommand{\dashlineseg}[5][12]{%
-\def\tmpcontents{%
-\setcounter{ketpicctra}{0}%
-\setcounter{ketpicctra}{1}%
-\addtocounter{ketpicctra}{-1}%
-%
-{%
-\loop%
-\addtocounter{ketpicctra}{1}%
-{\unitlength=1mm%
-\begin{picture}%
-( 1.00000, 0.00200)( 0.00000, -0.00100)%
-\special{pn 8}%
-%
-\special{pn #1}%
-\special{pa 0 0}\special{pa 20 0}%
-\special{fp}%
-\end{picture}}%%
-\ifnum\theketpicctra<#4%
-\repeat%
-}%
-%
-}%
-%
-{%
-\ifnum %
-#5>0 %
-%
-{%
-\ifnum %
-#5<90 %
-\settowidth{\Width}{\rotatebox[origin=c]{#5}{\tmpcontents}}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{\rotatebox[origin=c]{#5}{\tmpcontents}}\settodepth{\Depth}{\rotatebox[origin=c]{#5}{\tmpcontents}}\setlength{\Height}{\Depth}%
-\put(#2,-#3){\hspace*{\Width}\raisebox{\Height}{\rotatebox[origin=c]{#5}{\tmpcontents}}}%
-%
-\else%
-\settowidth{\Width}{\rotatebox[origin=c]{#5}{\tmpcontents}}\setlength{\Width}{-1\Width}%
-\settoheight{\Height}{\rotatebox[origin=c]{#5}{\tmpcontents}}\settodepth{\Depth}{\rotatebox[origin=c]{#5}{\tmpcontents}}\setlength{\Height}{\Depth}%
-\put(#2,-#3){\hspace*{\Width}\raisebox{\Height}{\rotatebox[origin=c]{#5}{\tmpcontents}}}%
-%
-\fi%
-}%
-%
-\else%
-%
-{%
-\ifnum %
-#5>-90 %
-\settowidth{\Width}{\rotatebox[origin=c]{#5}{\tmpcontents}}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{\rotatebox[origin=c]{#5}{\tmpcontents}}\settodepth{\Depth}{\rotatebox[origin=c]{#5}{\tmpcontents}}\setlength{\Height}{-\Height}%
-\put(#2,-#3){\hspace*{\Width}\raisebox{\Height}{\rotatebox[origin=c]{#5}{\tmpcontents}}}%
-%
-\else%
-\settowidth{\Width}{\rotatebox[origin=c]{#5}{\tmpcontents}}\setlength{\Width}{-1\Width}%
-\settoheight{\Height}{\rotatebox[origin=c]{#5}{\tmpcontents}}\settodepth{\Depth}{\rotatebox[origin=c]{#5}{\tmpcontents}}\setlength{\Height}{-\Height}%
-\put(#2,-#3){\hspace*{\Width}\raisebox{\Height}{\rotatebox[origin=c]{#5}{\tmpcontents}}}%
-%
-\fi%
-}%
-%
-\fi%
-}%
-%
-}%
-\def\arrowline#1#2#3#4{%
-\lineseg[12]{#1}{#2}{#3}{#4}%
-\arrowhead{#1}{#2}{#4}%
-%
-}%
-\newcommand{\arrowlineseg}[5][12]{%
-\lineseg[#1]{#2}{#3}{#4}{#5}%
-\arrowhead{#2}{#3}{#5}%
-%
-}%
-\newcommand{\conversion}[1]{%
-\setcounter{ketpicctra}{#1}%
-\multiply\value{ketpicctra} by 3937%
-\divide\value{ketpicctra} by 100%
-\{\theketpicctra\}%
-%
-}%
-\def\drwline#1#2#3#4{%
-\special{pn 8}%
-\special{pa #1 #2}\special{pa #3 #4}%
-\special{fp}%
-%
-}%
-\newcommand{\dispgrid}[2]{%
-\def\tmpcontents{%
-{\unitlength=1mm%
-\begin{picture}%
-( 10.00000, 0.02000)( 0.00000, -0.01000)%
-\special{pn 8}%
-%
-\special{pn 12}%
-\special{pa -6 0}\special{pa 6 0}\special{fp}\special{pa 33 0}\special{pa 45 0}\special{fp}%
-\special{pa 73 0}\special{pa 85 0}\special{fp}\special{pa 112 0}\special{pa 124 0}\special{fp}%
-\special{pa 151 0}\special{pa 163 0}\special{fp}\special{pa 191 0}\special{pa 203 0}\special{fp}%
-\special{pa 230 0}\special{pa 242 0}\special{fp}\special{pa 270 0}\special{pa 282 0}\special{fp}%
-\special{pa 309 0}\special{pa 321 0}\special{fp}\special{pa 348 0}\special{pa 360 0}\special{fp}%
-\special{pa 388 0}\special{pa 400 0}\special{fp}\special{pn 8}%
-\end{picture}}%%
-}%
-\setcounter{ketpicctre}{#2}%
-\divide\value{ketpicctre} by 10%
-\setcounter{ketpicctrf}{#1}%
-\divide\value{ketpicctrf} by 10%
-\addtocounter{ketpicctrf}{-1}%
-\setcounter{ketpicctra}{0}%
-\setcounter{ketpicctra}{0}%
-\addtocounter{ketpicctra}{-1}%
-%
-{%
-\loop%
-\addtocounter{ketpicctra}{1}%
-\setcounter{ketpicctrd}{0}%
-\addtocounter{ketpicctrd}{-\value{ketpicctra}}%
-\multiply\value{ketpicctrd} by 10%
-\setcounter{ketpicctrc}{0}%
-\setcounter{ketpicctrb}{0}%
-\setcounter{ketpicctrb}{0}%
-\addtocounter{ketpicctrb}{-1}%
-%
-{%
-\loop%
-\addtocounter{ketpicctrb}{1}%
-\settowidth{\Width}{\tmpcontents}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{\tmpcontents}\settodepth{\Depth}{\tmpcontents}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(\theketpicctrc,\theketpicctrd){\hspace*{\Width}\raisebox{\Height}{\tmpcontents}}%
-\addtocounter{ketpicctrc}{10}%
-%
-\ifnum\theketpicctrb<\theketpicctrf%
-\repeat%
-}%
-\setcounter{ketpicctrg}{0}%
-\addtocounter{ketpicctrg}{-\value{ketpicctrd}}%
-\settowidth{\Width}{\theketpicctrg}\setlength{\Width}{-1\Width}%
-\settoheight{\Height}{\theketpicctrg}\settodepth{\Depth}{\theketpicctrg}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(-1,\theketpicctrd){\hspace*{\Width}\raisebox{\Height}{\theketpicctrg}}%
-%
-\ifnum\theketpicctra<\theketpicctre%
-\repeat%
-}%
-%
-{%
-\ifnum %
-\theketpicctrd>-#2 %
-\setcounter{ketpicctrc}{0}%
-\setcounter{ketpicctrb}{0}%
-\setcounter{ketpicctrb}{0}%
-\addtocounter{ketpicctrb}{-1}%
-%
-{%
-\loop%
-\addtocounter{ketpicctrb}{1}%
-\settowidth{\Width}{\tmpcontents}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{\tmpcontents}\settodepth{\Depth}{\tmpcontents}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(\theketpicctrc,-#2){\hspace*{\Width}\raisebox{\Height}{\tmpcontents}}%
-\addtocounter{ketpicctrc}{10}%
-%
-\ifnum\theketpicctrb<\theketpicctrf%
-\repeat%
-}%
-%
-\fi%
-}%
-\def\tmpcontents{%
-{\unitlength=1mm%
-\begin{picture}%
-( 0.02000, 10.00000)( -0.01000, 0.00000)%
-\special{pn 8}%
-%
-\special{pn 12}%
-\special{pa 0 6}\special{pa 0 -6}\special{fp}\special{pa 0 -33}\special{pa 0 -45}\special{fp}%
-\special{pa 0 -73}\special{pa 0 -85}\special{fp}\special{pa 0 -112}\special{pa 0 -124}\special{fp}%
-\special{pa 0 -151}\special{pa 0 -163}\special{fp}\special{pa 0 -191}\special{pa 0 -203}\special{fp}%
-\special{pa 0 -230}\special{pa 0 -242}\special{fp}\special{pa 0 -270}\special{pa 0 -282}\special{fp}%
-\special{pa 0 -309}\special{pa 0 -321}\special{fp}\special{pa 0 -348}\special{pa 0 -360}\special{fp}%
-\special{pa 0 -388}\special{pa 0 -400}\special{fp}\special{pn 8}%
-\end{picture}}%%
-}%
-\def\tmpcontentsb{%
-{\unitlength=1mm%
-\begin{picture}%
-( 0.02000, 0.02000)( -0.01000, -0.01000)%
-\special{pn 8}%
-%
-\special{pa 3 -3}\special{pa -3 -3}\special{pa -3 3}\special{pa 3 3}\special{pa 3 -3}%
-\special{sh 1}\special{fp}%
-\end{picture}}%%
-}%
-\setcounter{ketpicctre}{#2}%
-\divide\value{ketpicctre} by 10%
-\addtocounter{ketpicctre}{-1}%
-\setcounter{ketpicctrf}{#1}%
-\divide\value{ketpicctrf} by 10%
-\setcounter{ketpicctra}{0}%
-\setcounter{ketpicctra}{0}%
-\addtocounter{ketpicctra}{-1}%
-%
-{%
-\loop%
-\addtocounter{ketpicctra}{1}%
-\setcounter{ketpicctrd}{0}%
-\addtocounter{ketpicctrd}{\value{ketpicctra}}%
-\multiply\value{ketpicctrd} by 10%
-\setcounter{ketpicctrc}{0}%
-\setcounter{ketpicctrb}{0}%
-\setcounter{ketpicctrb}{0}%
-\addtocounter{ketpicctrb}{-1}%
-%
-{%
-\loop%
-\addtocounter{ketpicctrb}{1}%
-\settowidth{\Width}{\tmpcontents}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{\tmpcontents}\settodepth{\Depth}{\tmpcontents}\setlength{\Height}{-\Height}%
-\put(\theketpicctrd,\theketpicctrc){\hspace*{\Width}\raisebox{\Height}{\tmpcontents}}%
-\addtocounter{ketpicctrc}{-10}%
-%
-\ifnum\theketpicctrb<\theketpicctre%
-\repeat%
-}%
-%
-{%
-\ifnum %
-\theketpicctrc>-#2 %
-\setcounter{ketpicctrb}{0}%
-\setcounter{ketpicctrb}{-#2}%
-\addtocounter{ketpicctrb}{-1}%
-%
-{%
-\loop%
-\addtocounter{ketpicctrb}{1}%
-\settowidth{\Width}{\tmpcontentsb}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{\tmpcontentsb}\settodepth{\Depth}{\tmpcontentsb}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(\theketpicctrd,\theketpicctrb){\hspace*{\Width}\raisebox{\Height}{\tmpcontentsb}}%
-%
-\ifnum\theketpicctrb<\theketpicctrc%
-\repeat%
-}%
-%
-\fi%
-}%
-\setcounter{ketpicctrg}{-#2}%
-\addtocounter{ketpicctrg}{-1}%
-\settowidth{\Width}{\theketpicctrd}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{\theketpicctrd}\settodepth{\Depth}{\theketpicctrd}\setlength{\Height}{-\Height}%
-\put(\theketpicctrd,\theketpicctrg){\hspace*{\Width}\raisebox{\Height}{\theketpicctrd}}%
-%
-\ifnum\theketpicctra<\theketpicctrf%
-\repeat%
-}%
-%
-}%
-\newcommand{\dispgridneg}[2]{%
-\def\tmpcontents{%
-{\unitlength=1mm%
-\begin{picture}%
-( 10.00000, 0.02000)( 0.00000, -0.01000)%
-\special{pn 8}%
-%
-\special{pn 12}%
-\special{pa -6 0}\special{pa 6 0}\special{fp}\special{pa 33 0}\special{pa 45 0}\special{fp}%
-\special{pa 73 0}\special{pa 85 0}\special{fp}\special{pa 112 0}\special{pa 124 0}\special{fp}%
-\special{pa 151 0}\special{pa 163 0}\special{fp}\special{pa 191 0}\special{pa 203 0}\special{fp}%
-\special{pa 230 0}\special{pa 242 0}\special{fp}\special{pa 270 0}\special{pa 282 0}\special{fp}%
-\special{pa 309 0}\special{pa 321 0}\special{fp}\special{pa 348 0}\special{pa 360 0}\special{fp}%
-\special{pa 388 0}\special{pa 400 0}\special{fp}\special{pn 8}%
-\end{picture}}%%
-}%
-\setcounter{ketpicctre}{#2}%
-\multiply\value{ketpicctre} by -1%
-\divide\value{ketpicctre} by 10%
-\setcounter{ketpicctrf}{#1}%
-\divide\value{ketpicctrf} by 10%
-\addtocounter{ketpicctrf}{-1}%
-\setcounter{ketpicctra}{0}%
-\setcounter{ketpicctra}{0}%
-\addtocounter{ketpicctra}{-1}%
-%
-{%
-\loop%
-\addtocounter{ketpicctra}{1}%
-\setcounter{ketpicctrd}{\value{ketpicctra}}%
-\multiply\value{ketpicctrd} by 10%
-\setcounter{ketpicctrc}{0}%
-\setcounter{ketpicctrb}{0}%
-\setcounter{ketpicctrb}{0}%
-\addtocounter{ketpicctrb}{-1}%
-%
-{%
-\loop%
-\addtocounter{ketpicctrb}{1}%
-\settowidth{\Width}{\tmpcontents}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{\tmpcontents}\settodepth{\Depth}{\tmpcontents}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(\theketpicctrc,\theketpicctrd){\hspace*{\Width}\raisebox{\Height}{\tmpcontents}}%
-\addtocounter{ketpicctrc}{10}%
-%
-\ifnum\theketpicctrb<\theketpicctrf%
-\repeat%
-}%
-\setcounter{ketpicctrg}{0}%
-\addtocounter{ketpicctrg}{-\value{ketpicctrd}}%
-\settowidth{\Width}{\theketpicctrg}\setlength{\Width}{-1\Width}%
-\settoheight{\Height}{\theketpicctrg}\settodepth{\Depth}{\theketpicctrg}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(-1,\theketpicctrd){\hspace*{\Width}\raisebox{\Height}{\theketpicctrg}}%
-%
-\ifnum\theketpicctra<\theketpicctre%
-\repeat%
-}%
-%
-{%
-\ifnum %
-\theketpicctrd>-#2 %
-\setcounter{ketpicctrc}{0}%
-\setcounter{ketpicctrb}{0}%
-\setcounter{ketpicctrb}{0}%
-\addtocounter{ketpicctrb}{-1}%
-%
-{%
-\loop%
-\addtocounter{ketpicctrb}{1}%
-\settowidth{\Width}{\tmpcontents}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{\tmpcontents}\settodepth{\Depth}{\tmpcontents}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(\theketpicctrc,-#2){\hspace*{\Width}\raisebox{\Height}{\tmpcontents}}%
-\addtocounter{ketpicctrc}{10}%
-%
-\ifnum\theketpicctrb<\theketpicctrf%
-\repeat%
-}%
-%
-\fi%
-}%
-\def\tmpcontents{%
-{\unitlength=1mm%
-\begin{picture}%
-( 0.02000, 10.00000)( -0.01000, 0.00000)%
-\special{pn 8}%
-%
-\special{pn 12}%
-\special{pa 0 6}\special{pa 0 -6}\special{fp}\special{pa 0 -33}\special{pa 0 -45}\special{fp}%
-\special{pa 0 -73}\special{pa 0 -85}\special{fp}\special{pa 0 -112}\special{pa 0 -124}\special{fp}%
-\special{pa 0 -151}\special{pa 0 -163}\special{fp}\special{pa 0 -191}\special{pa 0 -203}\special{fp}%
-\special{pa 0 -230}\special{pa 0 -242}\special{fp}\special{pa 0 -270}\special{pa 0 -282}\special{fp}%
-\special{pa 0 -309}\special{pa 0 -321}\special{fp}\special{pa 0 -348}\special{pa 0 -360}\special{fp}%
-\special{pa 0 -388}\special{pa 0 -400}\special{fp}\special{pn 8}%
-\end{picture}}%%
-}%
-\def\tmpcontentsb{%
-{\unitlength=1mm%
-\begin{picture}%
-( 0.02000, 0.02000)( -0.01000, -0.01000)%
-\special{pn 8}%
-%
-\special{pa 3 -3}\special{pa -3 -3}\special{pa -3 3}\special{pa 3 3}\special{pa 3 -3}%
-\special{sh 1}\special{fp}%
-\end{picture}}%%
-}%
-\setcounter{ketpicctre}{#2}%
-\multiply\value{ketpicctre} by -1%
-\divide\value{ketpicctre} by 10%
-\addtocounter{ketpicctre}{-1}%
-\setcounter{ketpicctrf}{#1}%
-\divide\value{ketpicctrf} by 10%
-\setcounter{ketpicctra}{0}%
-\setcounter{ketpicctra}{0}%
-\addtocounter{ketpicctra}{-1}%
-%
-{%
-\loop%
-\addtocounter{ketpicctra}{1}%
-\setcounter{ketpicctrd}{0}%
-\addtocounter{ketpicctrd}{\value{ketpicctra}}%
-\multiply\value{ketpicctrd} by 10%
-\setcounter{ketpicctrc}{0}%
-\setcounter{ketpicctrb}{0}%
-\setcounter{ketpicctrb}{0}%
-\addtocounter{ketpicctrb}{-1}%
-%
-{%
-\loop%
-\addtocounter{ketpicctrb}{1}%
-\settowidth{\Width}{\tmpcontents}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{\tmpcontents}\settodepth{\Depth}{\tmpcontents}\setlength{\Height}{\Depth}%
-\put(\theketpicctrd,\theketpicctrc){\hspace*{\Width}\raisebox{\Height}{\tmpcontents}}%
-\addtocounter{ketpicctrc}{10}%
-%
-\ifnum\theketpicctrb<\theketpicctre%
-\repeat%
-}%
-%
-{%
-\ifnum %
-\theketpicctrc>-#2 %
-\setcounter{ketpicctrb}{0}%
-\setcounter{ketpicctrb}{-#2}%
-\addtocounter{ketpicctrb}{-1}%
-%
-{%
-\loop%
-\addtocounter{ketpicctrb}{1}%
-\settowidth{\Width}{\tmpcontentsb}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{\tmpcontentsb}\settodepth{\Depth}{\tmpcontentsb}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(\theketpicctrd,\theketpicctrb){\hspace*{\Width}\raisebox{\Height}{\tmpcontentsb}}%
-%
-\ifnum\theketpicctrb<\theketpicctrc%
-\repeat%
-}%
-%
-\fi%
-}%
-\setcounter{ketpicctrg}{-#2}%
-\addtocounter{ketpicctrg}{1}%
-\settowidth{\Width}{\theketpicctrd}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{\theketpicctrd}\settodepth{\Depth}{\theketpicctrd}\setlength{\Height}{\Depth}%
-\put(\theketpicctrd,\theketpicctrg){\hspace*{\Width}\raisebox{\Height}{\theketpicctrd}}%
-%
-\ifnum\theketpicctra<\theketpicctrf%
-\repeat%
-}%
-%
-}%
-\newenvironment{layer}[3][0]{%
-\setlength{\layercurrentunit}{\unitlength}%
-\unitlength=1 mm%
-\vspace{-\baselineskip}%
-\noindent%
-\hspace*{#1 mm}%
-\begin{picture}(#3,0)(0,0)%
-%
-{%
-\ifnum %
-#3>0 %
-\dispgrid{#2}{#3}%
-%
-\fi%
-}%
-%
-{%
-\ifnum %
-#3<0 %
-\dispgridneg{#2}{#3}%
-%
-\fi%
-}%
-}{%
-\end{picture}%
-\setlength{\unitlength}{\layercurrentunit}%
-%
-}%
-\newenvironment{layerv}[3][0]{%
-\setlength{\layercurrentunit}{\unitlength}%
-\unitlength=1 mm%
-\vspace*{-\baselineskip}%
-\vspace*{#2 mm}%
-
-\setcounter{ketpicctrj}{-#2}%
-\noindent%
-\hspace*{#1 mm}%
-\begin{picture}(100,0)(0,0)%
-%
-{%
-\ifnum %
-#3>0 %
-\setlength{\Width}{\textwidth}%
-\addtolength{\Width}{-#1 mm}%
-\setcounter{ketpicctri}{0}%
-\setcounter{ketpicctri}{1}%
-\addtocounter{ketpicctri}{-1}%
-%
-{%
-\loop%
-\addtocounter{ketpicctri}{1}%
-%
-{%
-\ifdim %
-\theketpicctri mm>\Width %
-\addtocounter{ketpicctri}{500}%
-%
-\fi%
-}%
-%
-\ifnum\theketpicctri<400%
-\repeat%
-}%
-\addtocounter{ketpicctri}{-500}%
-\addtocounter{ketpicctri}{-1}%
-\dispgrid{\theketpicctri}{#3}%
-%
-\fi%
-}%
-}{%
-\end{picture}%
-\vspace*{\theketpicctrj mm}%
-\setlength{\unitlength}{\layercurrentunit}%
-%
-}%
-\newenvironment{layerg}[2][1]{%
-\setlength{\layercurrentunit}{\unitlength}%
-\unitlength=1 mm%
-\vspace*{-\baselineskip}%
-\ketcalcheight{#2}%
-\setcounter{ketpicctrj}{\value{ketpicctra}}%
-\ketcalcdepth{#2}%
-\addtocounter{ketpicctrj}{\value{ketpicctra}}%
-\vspace*{-\theketpicctrj mm}%
-
-\noindent%
-\begin{picture}(100,0)(0,0)%
-%
-{%
-\ifnum %
-#1>0 %
-\setlength{\Width}{\textwidth}%
-\addtolength{\Width}{-#1 mm}%
-\setcounter{ketpicctri}{0}%
-\setcounter{ketpicctri}{1}%
-\addtocounter{ketpicctri}{-1}%
-%
-{%
-\loop%
-\addtocounter{ketpicctri}{1}%
-%
-{%
-\ifdim %
-\theketpicctri mm>\Width %
-\addtocounter{ketpicctri}{500}%
-%
-\fi%
-}%
-%
-\ifnum\theketpicctri<400%
-\repeat%
-}%
-\addtocounter{ketpicctri}{-500}%
-\addtocounter{ketpicctri}{-1}%
-\dispgrid{\theketpicctri}{\theketpicctrj}%
-%
-\fi%
-}%
-}{%
-\end{picture}%
-\vspace*{\theketpicctrj mm}%
-\setlength{\unitlength}{\layercurrentunit}%
-%
-}%
-\newcommand{\putnotec}[3]{%
-\settowidth{\Width}{#3}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{#3}\settodepth{\Depth}{#3}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(#1,-#2){\hspace*{\Width}\raisebox{\Height}{#3}}%
-%
-}%
-\newcommand{\putnotee}[3]{%
-\settowidth{\Width}{#3}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{#3}\settodepth{\Depth}{#3}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(#1,-#2){\hspace*{\Width}\raisebox{\Height}{#3}}%
-%
-}%
-\newcommand{\putnotew}[3]{%
-\settowidth{\Width}{#3}\setlength{\Width}{-1\Width}%
-\settoheight{\Height}{#3}\settodepth{\Depth}{#3}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(#1,-#2){\hspace*{\Width}\raisebox{\Height}{#3}}%
-%
-}%
-\newcommand{\putnotes}[3]{%
-\settowidth{\Width}{#3}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{#3}\settodepth{\Depth}{#3}\setlength{\Height}{-\Height}%
-\put(#1,-#2){\hspace*{\Width}\raisebox{\Height}{#3}}%
-%
-}%
-\newcommand{\putnoten}[3]{%
-\settowidth{\Width}{#3}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{#3}\settodepth{\Depth}{#3}\setlength{\Height}{\Depth}%
-\put(#1,-#2){\hspace*{\Width}\raisebox{\Height}{#3}}%
-%
-}%
-\newcommand{\putnotene}[3]{%
-\settowidth{\Width}{#3}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{#3}\settodepth{\Depth}{#3}\setlength{\Height}{\Depth}%
-\put(#1,-#2){\hspace*{\Width}\raisebox{\Height}{#3}}%
-%
-}%
-\newcommand{\putnotenw}[3]{%
-\settowidth{\Width}{#3}\setlength{\Width}{-1\Width}%
-\settoheight{\Height}{#3}\settodepth{\Depth}{#3}\setlength{\Height}{\Depth}%
-\put(#1,-#2){\hspace*{\Width}\raisebox{\Height}{#3}}%
-%
-}%
-\newcommand{\putnotese}[3]{%
-\settowidth{\Width}{#3}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{#3}\settodepth{\Depth}{#3}\setlength{\Height}{-\Height}%
-\put(#1,-#2){\hspace*{\Width}\raisebox{\Height}{#3}}%
-%
-}%
-\newcommand{\putnotesw}[3]{%
-\settowidth{\Width}{#3}\setlength{\Width}{-1\Width}%
-\settoheight{\Height}{#3}\settodepth{\Depth}{#3}\setlength{\Height}{-\Height}%
-\put(#1,-#2){\hspace*{\Width}\raisebox{\Height}{#3}}%
-%
-}%
-\newcommand{\ballonr}[5][8]{%
-\def\tempcontents{%
-{\unitlength=1cm%
-\begin{picture}%
-( 4.00000, 3.50000)( -2.00000, 0.00000)%
-\special{pn 8}%
-%
-\special{pn #1}%
-\special{pa 124 -260}\special{pa 123 -261}\special{pa 120 -262}\special{pa 115 -263}%
-\special{pa 109 -264}\special{pa 101 -266}\special{pa 92 -267}\special{pa 82 -269}%
-\special{pa 71 -271}\special{pa 59 -273}\special{pa 45 -276}\special{pa 32 -279}\special{pa 17 -282}%
-\special{pa 2 -286}\special{pa -14 -290}\special{pa -30 -295}\special{pa -47 -300}%
-\special{pa -63 -306}\special{pa -80 -312}\special{pa -96 -319}\special{pa -112 -327}%
-\special{pa -128 -335}\special{pa -144 -344}\special{pa -159 -354}\special{pa -174 -365}%
-\special{pa -188 -376}\special{pa -201 -388}\special{pa -213 -401}\special{pa -224 -416}%
-\special{pa -234 -431}\special{pa -243 -447}\special{pa -250 -464}\special{pa -256 -482}%
-\special{pa -260 -501}\special{pa -263 -522}\special{pa -264 -544}\special{pa -263 -566}%
-\special{pa -260 -591}\special{pa -265 -595}\special{pa -274 -599}\special{pa -287 -603}%
-\special{pa -302 -607}\special{pa -320 -611}\special{pa -340 -615}\special{pa -360 -620}%
-\special{pa -381 -626}\special{pa -402 -633}\special{pa -423 -641}\special{pa -442 -651}%
-\special{pa -459 -662}\special{pa -473 -675}\special{pa -484 -691}\special{pa -492 -709}%
-\special{pa -496 -728}\special{pa -498 -750}\special{pa -498 -772}\special{pa -496 -794}%
-\special{pa -493 -817}\special{pa -490 -839}\special{pa -487 -860}\special{pa -483 -880}%
-\special{pa -479 -899}\special{pa -472 -918}\special{pa -464 -935}\special{pa -452 -952}%
-\special{pa -437 -969}\special{pa -418 -984}\special{pa -395 -999}\special{pa -370 -1013}%
-\special{pa -342 -1026}\special{pa -312 -1037}\special{pa -280 -1048}\special{pa -248 -1057}%
-\special{pa -216 -1065}\special{pa -184 -1071}\special{pa -152 -1076}\special{pa -122 -1078}%
-\special{pa -95 -1079}\special{pa -69 -1078}\special{pa -47 -1075}\special{pa -37 -1085}%
-\special{pa -26 -1095}\special{pa -15 -1106}\special{pa -1 -1117}\special{pa 13 -1129}%
-\special{pa 29 -1140}\special{pa 47 -1152}\special{pa 67 -1162}\special{pa 90 -1172}%
-\special{pa 114 -1181}\special{pa 142 -1189}\special{pa 172 -1196}\special{pa 205 -1201}%
-\special{pa 242 -1205}\special{pa 282 -1206}\special{pa 324 -1206}\special{pa 368 -1204}%
-\special{pa 411 -1200}\special{pa 454 -1195}\special{pa 494 -1189}\special{pa 531 -1181}%
-\special{pa 565 -1172}\special{pa 594 -1162}\special{pa 619 -1150}\special{pa 642 -1136}%
-\special{pa 662 -1120}\special{pa 680 -1102}\special{pa 697 -1081}\special{pa 712 -1057}%
-\special{pa 726 -1031}\special{pa 738 -1004}\special{pa 748 -975}\special{pa 755 -945}%
-\special{pa 760 -916}\special{pa 762 -886}\special{pa 760 -857}\special{pa 755 -829}%
-\special{pa 745 -803}\special{pa 732 -779}\special{pa 713 -758}\special{pa 690 -740}%
-\special{pa 661 -726}\special{pa 668 -717}\special{pa 675 -706}\special{pa 681 -695}%
-\special{pa 688 -683}\special{pa 694 -670}\special{pa 699 -657}\special{pa 704 -643}%
-\special{pa 708 -629}\special{pa 712 -614}\special{pa 715 -599}\special{pa 718 -583}%
-\special{pa 719 -567}\special{pa 720 -551}\special{pa 719 -534}\special{pa 718 -518}%
-\special{pa 715 -501}\special{pa 712 -484}\special{pa 707 -468}\special{pa 701 -451}%
-\special{pa 693 -435}\special{pa 684 -418}\special{pa 673 -402}\special{pa 661 -387}%
-\special{pa 648 -372}\special{pa 633 -357}\special{pa 617 -343}\special{pa 600 -329}%
-\special{pa 581 -316}\special{pa 560 -304}\special{pa 539 -293}\special{pa 516 -283}%
-\special{pa 491 -273}\special{pa 466 -265}\special{pa 439 -258}\special{pa 410 -252}%
-\special{pa 381 -247}\special{pa 349 -244}\special{pa 317 -242}\special{pa 283 -242}%
-\special{pa 278 -228}\special{pa 273 -215}\special{pa 267 -202}\special{pa 261 -190}%
-\special{pa 255 -178}\special{pa 248 -166}\special{pa 242 -155}\special{pa 235 -144}%
-\special{pa 228 -133}\special{pa 220 -123}\special{pa 213 -114}\special{pa 205 -104}%
-\special{pa 197 -95}\special{pa 189 -87}\special{pa 180 -79}\special{pa 171 -71}\special{pa 162 -63}%
-\special{pa 153 -57}\special{pa 144 -50}\special{pa 134 -44}\special{pa 124 -38}\special{pa 114 -33}%
-\special{pa 104 -28}\special{pa 93 -23}\special{pa 82 -19}\special{pa 71 -15}\special{pa 60 -11}%
-\special{pa 48 -8}\special{pa 37 -6}\special{pa 25 -3}\special{pa 12 -1}\special{pa 0 0}%
-\special{pa 8 -6}\special{pa 15 -12}\special{pa 23 -18}\special{pa 30 -25}\special{pa 37 -31}%
-\special{pa 43 -38}\special{pa 49 -45}\special{pa 55 -52}\special{pa 61 -59}\special{pa 67 -66}%
-\special{pa 72 -73}\special{pa 77 -81}\special{pa 82 -88}\special{pa 86 -96}\special{pa 90 -104}%
-\special{pa 94 -112}\special{pa 98 -120}\special{pa 102 -129}\special{pa 105 -137}%
-\special{pa 108 -146}\special{pa 111 -155}\special{pa 113 -163}\special{pa 115 -172}%
-\special{pa 117 -182}\special{pa 119 -191}\special{pa 121 -200}\special{pa 122 -210}%
-\special{pa 123 -220}\special{pa 123 -229}\special{pa 124 -239}\special{pa 124 -250}%
-\special{pa 124 -260}%
-\special{fp}%
-\settowidth{\Width}{{\begin{minipage}{1.8cm}#5\end{minipage}}}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{{\begin{minipage}{1.8cm}#5\end{minipage}}}\settodepth{\Depth}{{\begin{minipage}{1.8cm}#5\end{minipage}}}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(0.5000,1.8000){\hspace*{\Width}\raisebox{\Height}{{\begin{minipage}{1.8cm}#5\end{minipage}}}}%
-%
-%
-\end{picture}}%%
-}%
-\setcounter{ketpicctra}{-#3}%
-\settowidth{\Width}{{\scalebox{#4}{\tempcontents}}}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{{\scalebox{#4}{\tempcontents}}}\settodepth{\Depth}{{\scalebox{#4}{\tempcontents}}}\setlength{\Height}{\Depth}%
-\put(#2,\theketpicctra){\hspace*{\Width}\raisebox{\Height}{{\scalebox{#4}{\tempcontents}}}}%
-%
-}%
-\newcommand{\ballonl}[5][8]{%
-\def\tempcontents{%
-{\unitlength=1cm%
-\begin{picture}%
-( 5.00000, 2.50000)( -2.50000, 0.00000)%
-\special{pn 8}%
-%
-\special{pn #1}%
-\special{pa -225 -221}\special{pa -262 -199}\special{pa -296 -180}\special{pa -329 -163}%
-\special{pa -360 -149}\special{pa -390 -138}\special{pa -419 -128}\special{pa -446 -121}%
-\special{pa -473 -116}\special{pa -499 -112}\special{pa -525 -110}\special{pa -550 -109}%
-\special{pa -576 -109}\special{pa -602 -111}\special{pa -628 -113}\special{pa -655 -115}%
-\special{pa -682 -119}\special{pa -709 -124}\special{pa -736 -131}\special{pa -762 -139}%
-\special{pa -786 -151}\special{pa -810 -165}\special{pa -831 -182}\special{pa -851 -202}%
-\special{pa -868 -224}\special{pa -883 -248}\special{pa -895 -274}\special{pa -904 -301}%
-\special{pa -909 -329}\special{pa -912 -357}\special{pa -910 -386}\special{pa -906 -414}%
-\special{pa -898 -441}\special{pa -887 -467}\special{pa -874 -492}\special{pa -857 -515}%
-\special{pa -838 -537}\special{pa -817 -555}\special{pa -793 -572}\special{pa -767 -585}%
-\special{pa -738 -594}\special{pa -708 -600}\special{pa -676 -602}\special{pa -684 -633}%
-\special{pa -688 -663}\special{pa -689 -691}\special{pa -687 -718}\special{pa -681 -743}%
-\special{pa -673 -766}\special{pa -663 -788}\special{pa -650 -808}\special{pa -635 -827}%
-\special{pa -619 -843}\special{pa -601 -858}\special{pa -582 -871}\special{pa -562 -883}%
-\special{pa -541 -892}\special{pa -520 -900}\special{pa -498 -906}\special{pa -476 -911}%
-\special{pa -452 -915}\special{pa -427 -918}\special{pa -401 -920}\special{pa -372 -922}%
-\special{pa -342 -924}\special{pa -311 -926}\special{pa -279 -927}\special{pa -248 -928}%
-\special{pa -217 -927}\special{pa -187 -925}\special{pa -160 -922}\special{pa -136 -918}%
-\special{pa -114 -912}\special{pa -94 -904}\special{pa -77 -894}\special{pa -61 -882}%
-\special{pa -47 -869}\special{pa -35 -853}\special{pa -23 -836}\special{pa -13 -816}%
-\special{pa -3 -794}\special{pa 7 -770}\special{pa 16 -744}\special{pa 25 -715}\special{pa 35 -684}%
-\special{pa 56 -683}\special{pa 76 -680}\special{pa 95 -677}\special{pa 112 -672}%
-\special{pa 128 -667}\special{pa 142 -661}\special{pa 156 -654}\special{pa 169 -646}%
-\special{pa 180 -637}\special{pa 191 -627}\special{pa 202 -616}\special{pa 211 -603}%
-\special{pa 221 -590}\special{pa 230 -576}\special{pa 238 -561}\special{pa 246 -545}%
-\special{pa 253 -528}\special{pa 258 -510}\special{pa 262 -492}\special{pa 264 -473}%
-\special{pa 264 -455}\special{pa 261 -436}\special{pa 257 -417}\special{pa 250 -399}%
-\special{pa 242 -382}\special{pa 232 -365}\special{pa 222 -348}\special{pa 212 -333}%
-\special{pa 202 -320}\special{pa 192 -307}\special{pa 181 -296}\special{pa 170 -285}%
-\special{pa 158 -276}\special{pa 144 -268}\special{pa 130 -260}\special{pa 114 -253}%
-\special{pa 96 -246}\special{pa 77 -241}\special{pa 55 -235}\special{pa 31 -230}\special{pa 4 -225}%
-\special{pa -26 -221}\special{pa -26 -214}\special{pa -26 -208}\special{pa -26 -201}%
-\special{pa -27 -194}\special{pa -26 -187}\special{pa -26 -181}\special{pa -26 -174}%
-\special{pa -26 -167}\special{pa -26 -160}\special{pa -25 -154}\special{pa -25 -147}%
-\special{pa -24 -140}\special{pa -24 -133}\special{pa -23 -126}\special{pa -22 -119}%
-\special{pa -22 -113}\special{pa -21 -106}\special{pa -20 -99}\special{pa -19 -92}%
-\special{pa -18 -85}\special{pa -17 -78}\special{pa -16 -71}\special{pa -14 -64}\special{pa -13 -57}%
-\special{pa -12 -50}\special{pa -10 -43}\special{pa -9 -36}\special{pa -7 -29}\special{pa -5 -21}%
-\special{pa -4 -14}\special{pa -2 -7}\special{pa 0 0}\special{pa -9 -11}\special{pa -17 -21}%
-\special{pa -26 -32}\special{pa -34 -42}\special{pa -42 -52}\special{pa -50 -61}\special{pa -58 -71}%
-\special{pa -66 -80}\special{pa -74 -88}\special{pa -82 -97}\special{pa -89 -105}%
-\special{pa -97 -113}\special{pa -104 -121}\special{pa -111 -129}\special{pa -119 -136}%
-\special{pa -126 -143}\special{pa -133 -150}\special{pa -139 -156}\special{pa -146 -162}%
-\special{pa -153 -168}\special{pa -160 -174}\special{pa -166 -180}\special{pa -172 -185}%
-\special{pa -179 -190}\special{pa -185 -195}\special{pa -191 -199}\special{pa -197 -203}%
-\special{pa -203 -207}\special{pa -208 -211}\special{pa -214 -215}\special{pa -220 -218}%
-\special{pa -225 -221}%
-\special{fp}%
-\settowidth{\Width}{{\begin{minipage}{1.5cm}#5\end{minipage}}}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{{\begin{minipage}{1.5cm}#5\end{minipage}}}\settodepth{\Depth}{{\begin{minipage}{1.5cm}#5\end{minipage}}}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(-0.8000,1.2000){\hspace*{\Width}\raisebox{\Height}{{\begin{minipage}{1.5cm}#5\end{minipage}}}}%
-%
-%
-\end{picture}}%%
-}%
-\setcounter{ketpicctra}{-#3}%
-\settowidth{\Width}{{\scalebox{#4}{\tempcontents}}}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{{\scalebox{#4}{\tempcontents}}}\settodepth{\Depth}{{\scalebox{#4}{\tempcontents}}}\setlength{\Height}{\Depth}%
-\put(#2,\theketpicctra){\hspace*{\Width}\raisebox{\Height}{{\scalebox{#4}{\tempcontents}}}}%
-%
-}%
-\newcommand{\lefthand}[3][16]{%
-\def\tempcontents{%
-{\unitlength=1cm%
-\begin{picture}%
-( 1.01000, 0.82000)( -1.00000, -0.80000)%
-\special{pn 8}%
-%
-\special{pn #1}%
-\special{pa -324 274}\special{pa -311 261}\special{pa -296 251}\special{pa -280 243}%
-\special{pa -265 237}\special{pa -249 232}\special{pa -233 228}\special{pa -219 225}%
-\special{pa -204 222}\special{pa -192 218}\special{pa -180 215}\special{pa -170 210}%
-\special{pa -163 204}\special{pa -156 198}\special{pa -150 191}\special{pa -143 184}%
-\special{pa -136 178}\special{pa -127 173}\special{pa -118 169}\special{pa -108 165}%
-\special{pa -99 162}\special{pa -91 160}\special{pa -84 158}\special{pa -80 156}\special{pa -78 154}%
-\special{pa -76 152}\special{pa -76 151}\special{pa -76 149}\special{pa -77 146}\special{pa -78 144}%
-\special{pa -80 142}\special{pa -82 140}\special{pa -85 138}\special{pa -88 137}\special{pa -92 136}%
-\special{pa -97 136}\special{pa -102 136}\special{pa -107 136}\special{pa -112 136}%
-\special{pa -117 137}\special{pa -122 137}\special{pa -126 138}\special{pa -130 138}%
-\special{pa -133 139}%
-\special{fp}%
-\special{pa -165 170}\special{pa -161 166}\special{pa -156 161}\special{pa -149 154}%
-\special{pa -142 147}\special{pa -133 138}\special{pa -123 129}\special{pa -113 119}%
-\special{pa -102 109}\special{pa -91 98}\special{pa -79 88}\special{pa -67 78}\special{pa -55 69}%
-\special{pa -43 60}\special{pa -34 52}\special{pa -25 44}\special{pa -19 38}\special{pa -14 32}%
-\special{pa -10 26}\special{pa -7 22}\special{pa -5 17}\special{pa -3 12}\special{pa -1 8}%
-\special{pa 0 4}\special{pa 0 1}\special{pa -1 -1}\special{pa -3 -3}\special{pa -6 -3}%
-\special{pa -11 -2}\special{pa -17 1}\special{pa -25 5}\special{pa -35 12}\special{pa -47 20}%
-\special{pa -60 30}\special{pa -74 42}\special{pa -90 55}\special{pa -106 68}\special{pa -122 82}%
-\special{pa -137 95}\special{pa -150 106}\special{pa -161 115}\special{pa -168 122}%
-\special{pa -171 124}\special{pa -169 123}\special{pa -161 116}%
-\special{fp}%
-\special{pa -151 107}\special{pa -151 105}\special{pa -150 104}\special{pa -150 102}%
-\special{pa -151 101}\special{pa -151 99}\special{pa -151 98}\special{pa -152 97}%
-\special{pa -153 96}\special{pa -153 94}\special{pa -154 93}\special{pa -155 92}\special{pa -156 92}%
-\special{pa -158 91}\special{pa -159 90}\special{pa -160 89}\special{pa -161 89}\special{pa -163 88}%
-\special{pa -164 88}\special{pa -165 87}\special{pa -167 87}\special{pa -168 86}\special{pa -170 86}%
-\special{pa -171 86}\special{pa -173 85}\special{pa -174 85}\special{pa -176 85}\special{pa -177 85}%
-\special{pa -178 85}\special{pa -179 85}\special{pa -181 85}\special{pa -182 85}\special{pa -183 85}%
-\special{pa -184 85}\special{pa -185 85}\special{pa -185 85}\special{pa -186 85}\special{pa -187 85}%
-\special{fp}%
-\special{pa -198 97}\special{pa -196 96}\special{pa -193 94}\special{pa -192 93}\special{pa -190 91}%
-\special{pa -189 90}\special{pa -188 88}\special{pa -188 87}\special{pa -187 86}\special{pa -187 84}%
-\special{pa -188 83}\special{pa -188 82}\special{pa -189 81}\special{pa -190 80}\special{pa -191 78}%
-\special{pa -192 77}\special{pa -193 76}\special{pa -194 76}\special{pa -195 75}\special{pa -197 74}%
-\special{pa -198 73}\special{pa -199 72}\special{pa -201 72}\special{pa -202 71}\special{pa -204 71}%
-\special{pa -205 70}\special{pa -206 70}\special{pa -207 69}\special{pa -209 69}\special{pa -210 69}%
-\special{pa -211 68}\special{pa -213 68}\special{pa -214 68}\special{pa -215 68}\special{pa -216 68}%
-\special{pa -218 68}\special{pa -219 68}\special{pa -220 68}\special{pa -221 68}\special{pa -222 68}%
-\special{fp}%
-\special{pa -232 80}\special{pa -230 78}\special{pa -228 76}\special{pa -227 75}\special{pa -226 73}%
-\special{pa -225 71}\special{pa -224 69}\special{pa -223 67}\special{pa -223 66}\special{pa -223 64}%
-\special{pa -223 63}\special{pa -224 61}\special{pa -225 60}\special{pa -226 58}\special{pa -227 57}%
-\special{pa -229 55}\special{pa -231 54}\special{pa -233 53}\special{pa -236 53}\special{pa -240 53}%
-\special{pa -244 54}\special{pa -248 56}\special{pa -253 58}\special{pa -259 62}\special{pa -265 67}%
-\special{pa -271 73}\special{pa -277 79}\special{pa -283 86}\special{pa -289 93}\special{pa -294 101}%
-\special{pa -299 110}\special{pa -303 118}\special{pa -307 127}\special{pa -312 137}%
-\special{pa -316 146}\special{pa -321 156}\special{pa -325 165}\special{pa -331 175}%
-\special{pa -336 185}\special{pa -343 194}\special{pa -350 203}\special{pa -358 213}%
-\special{pa -367 221}%
-\special{fp}%
-\end{picture}}%%
-}%
-\setcounter{ketpicctra}{-#3}%
-\settowidth{\Width}{{\tempcontents}}\setlength{\Width}{-1\Width}%
-\settoheight{\Height}{{\tempcontents}}\settodepth{\Depth}{{\tempcontents}}\setlength{\Height}{-\Height}%
-\put(#2,\theketpicctra){\hspace*{\Width}\raisebox{\Height}{{\tempcontents}}}%
-%
-}%
-\newcommand{\righthand}[3][16]{%
-\def\tempcontents{%
-{\unitlength=1cm%
-\begin{picture}%
-( 1.01000, 0.82000)( -0.01000, -0.80000)%
-\special{pn 8}%
-%
-\special{pn #1}%
-\special{pa 324 274}\special{pa 311 261}\special{pa 296 251}\special{pa 280 243}\special{pa 265 237}%
-\special{pa 249 232}\special{pa 233 228}\special{pa 219 225}\special{pa 204 222}\special{pa 192 218}%
-\special{pa 180 215}\special{pa 170 210}\special{pa 163 204}\special{pa 156 198}\special{pa 150 191}%
-\special{pa 143 184}\special{pa 136 178}\special{pa 127 173}\special{pa 118 169}\special{pa 108 165}%
-\special{pa 99 162}\special{pa 91 160}\special{pa 84 158}\special{pa 80 156}\special{pa 78 154}%
-\special{pa 76 152}\special{pa 76 151}\special{pa 76 149}\special{pa 77 146}\special{pa 78 144}%
-\special{pa 80 142}\special{pa 82 140}\special{pa 85 138}\special{pa 88 137}\special{pa 92 136}%
-\special{pa 97 136}\special{pa 102 136}\special{pa 107 136}\special{pa 112 136}\special{pa 117 137}%
-\special{pa 122 137}\special{pa 126 138}\special{pa 130 138}\special{pa 133 139}%
-\special{fp}%
-\special{pa 165 170}\special{pa 161 166}\special{pa 156 161}\special{pa 149 154}\special{pa 142 147}%
-\special{pa 133 138}\special{pa 123 129}\special{pa 113 119}\special{pa 102 109}\special{pa 91 98}%
-\special{pa 79 88}\special{pa 67 78}\special{pa 55 69}\special{pa 43 60}\special{pa 34 52}%
-\special{pa 25 44}\special{pa 19 38}\special{pa 14 32}\special{pa 10 26}\special{pa 7 22}%
-\special{pa 5 17}\special{pa 3 12}\special{pa 1 8}\special{pa 0 4}\special{pa 0 1}%
-\special{pa 1 -1}\special{pa 3 -3}\special{pa 6 -3}\special{pa 11 -2}\special{pa 17 1}%
-\special{pa 25 5}\special{pa 35 12}\special{pa 47 20}\special{pa 60 30}\special{pa 74 42}%
-\special{pa 90 55}\special{pa 106 68}\special{pa 122 82}\special{pa 137 95}\special{pa 150 106}%
-\special{pa 161 115}\special{pa 168 122}\special{pa 171 124}\special{pa 169 123}\special{pa 161 116}%
-\special{fp}%
-\special{pa 151 107}\special{pa 151 105}\special{pa 150 104}\special{pa 150 102}\special{pa 151 101}%
-\special{pa 151 99}\special{pa 151 98}\special{pa 152 97}\special{pa 153 96}\special{pa 153 94}%
-\special{pa 154 93}\special{pa 155 92}\special{pa 156 92}\special{pa 158 91}\special{pa 159 90}%
-\special{pa 160 89}\special{pa 161 89}\special{pa 163 88}\special{pa 164 88}\special{pa 165 87}%
-\special{pa 167 87}\special{pa 168 86}\special{pa 170 86}\special{pa 171 86}\special{pa 173 85}%
-\special{pa 174 85}\special{pa 176 85}\special{pa 177 85}\special{pa 178 85}\special{pa 179 85}%
-\special{pa 181 85}\special{pa 182 85}\special{pa 183 85}\special{pa 184 85}\special{pa 185 85}%
-\special{pa 185 85}\special{pa 186 85}\special{pa 187 85}%
-\special{fp}%
-\special{pa 198 97}\special{pa 196 96}\special{pa 193 94}\special{pa 192 93}\special{pa 190 91}%
-\special{pa 189 90}\special{pa 188 88}\special{pa 188 87}\special{pa 187 86}\special{pa 187 84}%
-\special{pa 188 83}\special{pa 188 82}\special{pa 189 81}\special{pa 190 80}\special{pa 191 78}%
-\special{pa 192 77}\special{pa 193 76}\special{pa 194 76}\special{pa 195 75}\special{pa 197 74}%
-\special{pa 198 73}\special{pa 199 72}\special{pa 201 72}\special{pa 202 71}\special{pa 204 71}%
-\special{pa 205 70}\special{pa 206 70}\special{pa 207 69}\special{pa 209 69}\special{pa 210 69}%
-\special{pa 211 68}\special{pa 213 68}\special{pa 214 68}\special{pa 215 68}\special{pa 216 68}%
-\special{pa 218 68}\special{pa 219 68}\special{pa 220 68}\special{pa 221 68}\special{pa 222 68}%
-\special{fp}%
-\special{pa 232 80}\special{pa 230 78}\special{pa 228 76}\special{pa 227 75}\special{pa 226 73}%
-\special{pa 225 71}\special{pa 224 69}\special{pa 223 67}\special{pa 223 66}\special{pa 223 64}%
-\special{pa 223 63}\special{pa 224 61}\special{pa 225 60}\special{pa 226 58}\special{pa 227 57}%
-\special{pa 229 55}\special{pa 231 54}\special{pa 233 53}\special{pa 236 53}\special{pa 240 53}%
-\special{pa 244 54}\special{pa 248 56}\special{pa 253 58}\special{pa 259 62}\special{pa 265 67}%
-\special{pa 271 73}\special{pa 277 79}\special{pa 283 86}\special{pa 289 93}\special{pa 294 101}%
-\special{pa 299 110}\special{pa 303 118}\special{pa 307 127}\special{pa 312 137}\special{pa 316 146}%
-\special{pa 321 156}\special{pa 325 165}\special{pa 331 175}\special{pa 336 185}\special{pa 343 194}%
-\special{pa 350 203}\special{pa 358 213}\special{pa 367 221}%
-\special{fp}%
-\end{picture}}%%
-}%
-\setcounter{ketpicctra}{-#3}%
-\settowidth{\Width}{{\tempcontents}}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{{\tempcontents}}\settodepth{\Depth}{{\tempcontents}}\setlength{\Height}{-\Height}%
-\put(#2,\theketpicctra){\hspace*{\Width}\raisebox{\Height}{{\tempcontents}}}%
-%
-}%
-\newcommand{\leftdownhand}[3][16]{%
-\def\tempcontents{%
-{\unitlength=1cm%
-\begin{picture}%
-( 1.01000, 0.82000)( -1.00000, -0.02000)%
-\special{pn 8}%
-%
-\special{pn #1}%
-\special{pa -324 -274}\special{pa -311 -261}\special{pa -296 -251}\special{pa -280 -243}%
-\special{pa -265 -237}\special{pa -249 -232}\special{pa -233 -228}\special{pa -219 -225}%
-\special{pa -204 -222}\special{pa -192 -218}\special{pa -180 -215}\special{pa -170 -210}%
-\special{pa -163 -204}\special{pa -156 -198}\special{pa -150 -191}\special{pa -143 -184}%
-\special{pa -136 -178}\special{pa -127 -173}\special{pa -118 -169}\special{pa -108 -165}%
-\special{pa -99 -162}\special{pa -91 -160}\special{pa -84 -158}\special{pa -80 -156}%
-\special{pa -78 -154}\special{pa -76 -152}\special{pa -76 -151}\special{pa -76 -149}%
-\special{pa -77 -146}\special{pa -78 -144}\special{pa -80 -142}\special{pa -82 -140}%
-\special{pa -85 -138}\special{pa -88 -137}\special{pa -92 -136}\special{pa -97 -136}%
-\special{pa -102 -136}\special{pa -107 -136}\special{pa -112 -136}\special{pa -117 -137}%
-\special{pa -122 -137}\special{pa -126 -138}\special{pa -130 -138}\special{pa -133 -139}%
-\special{fp}%
-\special{pa -165 -170}\special{pa -161 -166}\special{pa -156 -161}\special{pa -149 -154}%
-\special{pa -142 -147}\special{pa -133 -138}\special{pa -123 -129}\special{pa -113 -119}%
-\special{pa -102 -109}\special{pa -91 -98}\special{pa -79 -88}\special{pa -67 -78}%
-\special{pa -55 -69}\special{pa -43 -60}\special{pa -34 -52}\special{pa -25 -44}\special{pa -19 -38}%
-\special{pa -14 -32}\special{pa -10 -26}\special{pa -7 -22}\special{pa -5 -17}\special{pa -3 -12}%
-\special{pa -1 -8}\special{pa 0 -4}\special{pa 0 -1}\special{pa -1 1}\special{pa -3 3}%
-\special{pa -6 3}\special{pa -11 2}\special{pa -17 -1}\special{pa -25 -5}\special{pa -35 -12}%
-\special{pa -47 -20}\special{pa -60 -30}\special{pa -74 -42}\special{pa -90 -55}\special{pa -106 -68}%
-\special{pa -122 -82}\special{pa -137 -95}\special{pa -150 -106}\special{pa -161 -115}%
-\special{pa -168 -122}\special{pa -171 -124}\special{pa -169 -123}\special{pa -161 -116}%
-\special{fp}%
-\special{pa -151 -107}\special{pa -151 -105}\special{pa -150 -104}\special{pa -150 -102}%
-\special{pa -151 -101}\special{pa -151 -99}\special{pa -151 -98}\special{pa -152 -97}%
-\special{pa -153 -96}\special{pa -153 -94}\special{pa -154 -93}\special{pa -155 -92}%
-\special{pa -156 -92}\special{pa -158 -91}\special{pa -159 -90}\special{pa -160 -89}%
-\special{pa -161 -89}\special{pa -163 -88}\special{pa -164 -88}\special{pa -165 -87}%
-\special{pa -167 -87}\special{pa -168 -86}\special{pa -170 -86}\special{pa -171 -86}%
-\special{pa -173 -85}\special{pa -174 -85}\special{pa -176 -85}\special{pa -177 -85}%
-\special{pa -178 -85}\special{pa -179 -85}\special{pa -181 -85}\special{pa -182 -85}%
-\special{pa -183 -85}\special{pa -184 -85}\special{pa -185 -85}\special{pa -185 -85}%
-\special{pa -186 -85}\special{pa -187 -85}%
-\special{fp}%
-\special{pa -198 -97}\special{pa -196 -96}\special{pa -193 -94}\special{pa -192 -93}%
-\special{pa -190 -91}\special{pa -189 -90}\special{pa -188 -88}\special{pa -188 -87}%
-\special{pa -187 -86}\special{pa -187 -84}\special{pa -188 -83}\special{pa -188 -82}%
-\special{pa -189 -81}\special{pa -190 -80}\special{pa -191 -78}\special{pa -192 -77}%
-\special{pa -193 -76}\special{pa -194 -76}\special{pa -195 -75}\special{pa -197 -74}%
-\special{pa -198 -73}\special{pa -199 -72}\special{pa -201 -72}\special{pa -202 -71}%
-\special{pa -204 -71}\special{pa -205 -70}\special{pa -206 -70}\special{pa -207 -69}%
-\special{pa -209 -69}\special{pa -210 -69}\special{pa -211 -68}\special{pa -213 -68}%
-\special{pa -214 -68}\special{pa -215 -68}\special{pa -216 -68}\special{pa -218 -68}%
-\special{pa -219 -68}\special{pa -220 -68}\special{pa -221 -68}\special{pa -222 -68}%
-\special{fp}%
-\special{pa -232 -80}\special{pa -230 -78}\special{pa -228 -76}\special{pa -227 -75}%
-\special{pa -226 -73}\special{pa -225 -71}\special{pa -224 -69}\special{pa -223 -67}%
-\special{pa -223 -66}\special{pa -223 -64}\special{pa -223 -63}\special{pa -224 -61}%
-\special{pa -225 -60}\special{pa -226 -58}\special{pa -227 -57}\special{pa -229 -55}%
-\special{pa -231 -54}\special{pa -233 -53}\special{pa -236 -53}\special{pa -240 -53}%
-\special{pa -244 -54}\special{pa -248 -56}\special{pa -253 -58}\special{pa -259 -62}%
-\special{pa -265 -67}\special{pa -271 -73}\special{pa -277 -79}\special{pa -283 -86}%
-\special{pa -289 -93}\special{pa -294 -101}\special{pa -299 -110}\special{pa -303 -118}%
-\special{pa -307 -127}\special{pa -312 -137}\special{pa -316 -146}\special{pa -321 -156}%
-\special{pa -325 -165}\special{pa -331 -175}\special{pa -336 -185}\special{pa -343 -194}%
-\special{pa -350 -203}\special{pa -358 -213}\special{pa -367 -221}%
-\special{fp}%
-\end{picture}}%%
-}%
-\setcounter{ketpicctra}{-#3}%
-\settowidth{\Width}{{\tempcontents}}\setlength{\Width}{-1\Width}%
-\settoheight{\Height}{{\tempcontents}}\settodepth{\Depth}{{\tempcontents}}\setlength{\Height}{\Depth}%
-\put(#2,\theketpicctra){\hspace*{\Width}\raisebox{\Height}{{\tempcontents}}}%
-%
-}%
-\newcommand{\rightdownhand}[3][16]{%
-\def\tempcontents{%
-{\unitlength=1cm%
-\begin{picture}%
-( 1.01000, 0.82000)( -0.01000, -0.02000)%
-\special{pn 8}%
-%
-\special{pn #1}%
-\special{pa 324 -274}\special{pa 311 -261}\special{pa 296 -251}\special{pa 280 -243}%
-\special{pa 265 -237}\special{pa 249 -232}\special{pa 233 -228}\special{pa 219 -225}%
-\special{pa 204 -222}\special{pa 192 -218}\special{pa 180 -215}\special{pa 170 -210}%
-\special{pa 163 -204}\special{pa 156 -198}\special{pa 150 -191}\special{pa 143 -184}%
-\special{pa 136 -178}\special{pa 127 -173}\special{pa 118 -169}\special{pa 108 -165}%
-\special{pa 99 -162}\special{pa 91 -160}\special{pa 84 -158}\special{pa 80 -156}\special{pa 78 -154}%
-\special{pa 76 -152}\special{pa 76 -151}\special{pa 76 -149}\special{pa 77 -146}\special{pa 78 -144}%
-\special{pa 80 -142}\special{pa 82 -140}\special{pa 85 -138}\special{pa 88 -137}\special{pa 92 -136}%
-\special{pa 97 -136}\special{pa 102 -136}\special{pa 107 -136}\special{pa 112 -136}%
-\special{pa 117 -137}\special{pa 122 -137}\special{pa 126 -138}\special{pa 130 -138}%
-\special{pa 133 -139}%
-\special{fp}%
-\special{pa 165 -170}\special{pa 161 -166}\special{pa 156 -161}\special{pa 149 -154}%
-\special{pa 142 -147}\special{pa 133 -138}\special{pa 123 -129}\special{pa 113 -119}%
-\special{pa 102 -109}\special{pa 91 -98}\special{pa 79 -88}\special{pa 67 -78}\special{pa 55 -69}%
-\special{pa 43 -60}\special{pa 34 -52}\special{pa 25 -44}\special{pa 19 -38}\special{pa 14 -32}%
-\special{pa 10 -26}\special{pa 7 -22}\special{pa 5 -17}\special{pa 3 -12}\special{pa 1 -8}%
-\special{pa 0 -4}\special{pa 0 -1}\special{pa 1 1}\special{pa 3 3}\special{pa 6 3}%
-\special{pa 11 2}\special{pa 17 -1}\special{pa 25 -5}\special{pa 35 -12}\special{pa 47 -20}%
-\special{pa 60 -30}\special{pa 74 -42}\special{pa 90 -55}\special{pa 106 -68}\special{pa 122 -82}%
-\special{pa 137 -95}\special{pa 150 -106}\special{pa 161 -115}\special{pa 168 -122}%
-\special{pa 171 -124}\special{pa 169 -123}\special{pa 161 -116}%
-\special{fp}%
-\special{pa 151 -107}\special{pa 151 -105}\special{pa 150 -104}\special{pa 150 -102}%
-\special{pa 151 -101}\special{pa 151 -99}\special{pa 151 -98}\special{pa 152 -97}%
-\special{pa 153 -96}\special{pa 153 -94}\special{pa 154 -93}\special{pa 155 -92}\special{pa 156 -92}%
-\special{pa 158 -91}\special{pa 159 -90}\special{pa 160 -89}\special{pa 161 -89}\special{pa 163 -88}%
-\special{pa 164 -88}\special{pa 165 -87}\special{pa 167 -87}\special{pa 168 -86}\special{pa 170 -86}%
-\special{pa 171 -86}\special{pa 173 -85}\special{pa 174 -85}\special{pa 176 -85}\special{pa 177 -85}%
-\special{pa 178 -85}\special{pa 179 -85}\special{pa 181 -85}\special{pa 182 -85}\special{pa 183 -85}%
-\special{pa 184 -85}\special{pa 185 -85}\special{pa 185 -85}\special{pa 186 -85}\special{pa 187 -85}%
-\special{fp}%
-\special{pa 198 -97}\special{pa 196 -96}\special{pa 193 -94}\special{pa 192 -93}\special{pa 190 -91}%
-\special{pa 189 -90}\special{pa 188 -88}\special{pa 188 -87}\special{pa 187 -86}\special{pa 187 -84}%
-\special{pa 188 -83}\special{pa 188 -82}\special{pa 189 -81}\special{pa 190 -80}\special{pa 191 -78}%
-\special{pa 192 -77}\special{pa 193 -76}\special{pa 194 -76}\special{pa 195 -75}\special{pa 197 -74}%
-\special{pa 198 -73}\special{pa 199 -72}\special{pa 201 -72}\special{pa 202 -71}\special{pa 204 -71}%
-\special{pa 205 -70}\special{pa 206 -70}\special{pa 207 -69}\special{pa 209 -69}\special{pa 210 -69}%
-\special{pa 211 -68}\special{pa 213 -68}\special{pa 214 -68}\special{pa 215 -68}\special{pa 216 -68}%
-\special{pa 218 -68}\special{pa 219 -68}\special{pa 220 -68}\special{pa 221 -68}\special{pa 222 -68}%
-\special{fp}%
-\special{pa 232 -80}\special{pa 230 -78}\special{pa 228 -76}\special{pa 227 -75}\special{pa 226 -73}%
-\special{pa 225 -71}\special{pa 224 -69}\special{pa 223 -67}\special{pa 223 -66}\special{pa 223 -64}%
-\special{pa 223 -63}\special{pa 224 -61}\special{pa 225 -60}\special{pa 226 -58}\special{pa 227 -57}%
-\special{pa 229 -55}\special{pa 231 -54}\special{pa 233 -53}\special{pa 236 -53}\special{pa 240 -53}%
-\special{pa 244 -54}\special{pa 248 -56}\special{pa 253 -58}\special{pa 259 -62}\special{pa 265 -67}%
-\special{pa 271 -73}\special{pa 277 -79}\special{pa 283 -86}\special{pa 289 -93}\special{pa 294 -101}%
-\special{pa 299 -110}\special{pa 303 -118}\special{pa 307 -127}\special{pa 312 -137}%
-\special{pa 316 -146}\special{pa 321 -156}\special{pa 325 -165}\special{pa 331 -175}%
-\special{pa 336 -185}\special{pa 343 -194}\special{pa 350 -203}\special{pa 358 -213}%
-\special{pa 367 -221}%
-\special{fp}%
-\end{picture}}%%
-}%
-\setcounter{ketpicctra}{-#3}%
-\settowidth{\Width}{{\tempcontents}}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{{\tempcontents}}\settodepth{\Depth}{{\tempcontents}}\setlength{\Height}{\Depth}%
-\put(#2,\theketpicctra){\hspace*{\Width}\raisebox{\Height}{{\tempcontents}}}%
-%
-}%
-\newcommand{\cirscoremark}[2][20]{%
-\scalebox{#2}{%
-{\unitlength=0.04mm%
-\begin{picture}%
-( 621.63538, 724.07834)( 277.81039,2339.74153)%
-\special{pn 8}%
-%
-\special{pn #1}%
-\special{pa 916 -3691}\special{pa 815 -3685}\special{pa 726 -3696}\special{pa 650 -3725}%
-\special{pa 585 -3768}\special{pa 533 -3824}\special{pa 492 -3891}\special{pa 463 -3966}%
-\special{pa 445 -4049}\special{pa 437 -4137}\special{pa 441 -4228}\special{pa 455 -4321}%
-\special{pa 479 -4413}\special{pa 514 -4503}\special{pa 558 -4588}\special{pa 612 -4664}%
-\special{pa 676 -4729}\special{pa 748 -4780}\special{pa 830 -4813}\special{pa 920 -4825}%
-\special{pa 1016 -4817}\special{pa 1113 -4791}\special{pa 1204 -4750}\special{pa 1285 -4698}%
-\special{pa 1351 -4638}\special{pa 1395 -4572}\special{pa 1416 -4502}\special{pa 1416 -4431}%
-\special{pa 1400 -4358}\special{pa 1369 -4284}\special{pa 1327 -4210}\special{pa 1278 -4137}%
-\special{pa 1225 -4066}\special{pa 1171 -3997}\special{pa 1120 -3932}\special{pa 1074 -3871}%
-\special{pa 1037 -3815}\special{pa 1012 -3765}%
-\special{fp}%
-\special{pa 980 -3765}\special{pa 918 -3783}\special{pa 864 -3802}\special{pa 818 -3820}%
-\special{pa 778 -3839}\special{pa 746 -3859}\special{pa 720 -3880}\special{pa 701 -3903}%
-\special{pa 688 -3928}\special{pa 681 -3956}\special{pa 680 -3986}\special{pa 684 -4020}%
-\special{pa 694 -4058}\special{pa 709 -4099}\special{pa 729 -4143}\special{pa 753 -4189}%
-\special{pa 781 -4234}\special{pa 813 -4276}\special{pa 848 -4314}\special{pa 887 -4346}%
-\special{pa 927 -4371}\special{pa 969 -4387}\special{pa 1009 -4396}\special{pa 1048 -4396}%
-\special{pa 1083 -4386}\special{pa 1114 -4367}\special{pa 1139 -4338}\special{pa 1159 -4302}%
-\special{pa 1173 -4261}\special{pa 1183 -4216}\special{pa 1187 -4171}\special{pa 1187 -4127}%
-\special{pa 1183 -4086}\special{pa 1174 -4046}\special{pa 1163 -4009}\special{pa 1149 -3974}%
-\special{pa 1132 -3940}\special{pa 1115 -3908}\special{pa 1096 -3876}\special{pa 1077 -3846}%
-\special{pa 1059 -3816}\special{pa 1041 -3786}\special{pa 1025 -3756}\special{pa 1012 -3727}%
-\special{fp}%
-\end{picture}}%%
-}%
-%
-}%
-\newcommand{\scirscoremark}[2][20]{%
-\scalebox{#2}{%
-{\unitlength=0.04mm%
-\begin{picture}%
-( 535.76632, 538.46556)( 296.43854,1549.10000)%
-\special{pn 8}%
-%
-\special{pn #1}%
-\special{pa 951 -2440}\special{pa 865 -2450}\special{pa 787 -2470}\special{pa 718 -2499}%
-\special{pa 658 -2535}\special{pa 606 -2577}\special{pa 563 -2624}\special{pa 527 -2675}%
-\special{pa 500 -2728}\special{pa 481 -2781}\special{pa 470 -2835}\special{pa 467 -2889}%
-\special{pa 471 -2941}\special{pa 483 -2991}\special{pa 502 -3039}\special{pa 527 -3083}%
-\special{pa 558 -3124}\special{pa 592 -3160}\special{pa 631 -3191}\special{pa 672 -3218}%
-\special{pa 716 -3241}\special{pa 761 -3259}\special{pa 808 -3273}\special{pa 856 -3283}%
-\special{pa 906 -3288}\special{pa 959 -3287}\special{pa 1013 -3281}\special{pa 1067 -3269}%
-\special{pa 1117 -3251}\special{pa 1162 -3227}\special{pa 1200 -3196}\special{pa 1232 -3160}%
-\special{pa 1258 -3119}\special{pa 1279 -3074}\special{pa 1296 -3025}\special{pa 1306 -2974}%
-\special{pa 1311 -2922}\special{pa 1309 -2868}\special{pa 1300 -2815}\special{pa 1284 -2763}%
-\special{pa 1262 -2712}\special{pa 1233 -2662}\special{pa 1198 -2615}\special{pa 1157 -2571}%
-\special{pa 1109 -2531}\special{pa 1056 -2494}%
-\special{fp}%
-\end{picture}}%%
-}%
-%
-}%
-\newcommand{\triscoremark}[2][20]{%
-\scalebox{#2}{%
-{\unitlength=0.04mm%
-\begin{picture}%
-( 579.38800, 435.04900)( 235.82100, 892.46100)%
-\special{pn 8}%
-%
-\special{pn #1}%
-\special{pa 909 -2091}\special{pa 893 -2068}\special{pa 877 -2045}\special{pa 861 -2022}%
-\special{pa 845 -2000}\special{pa 829 -1977}\special{pa 813 -1954}\special{pa 797 -1932}%
-\special{pa 782 -1910}\special{pa 766 -1888}\special{pa 750 -1866}\special{pa 735 -1844}%
-\special{pa 719 -1822}\special{pa 704 -1801}\special{pa 688 -1780}\special{pa 673 -1759}%
-\special{pa 658 -1739}\special{pa 643 -1718}\special{pa 628 -1698}\special{pa 613 -1679}%
-\special{pa 598 -1660}\special{pa 584 -1641}\special{pa 569 -1622}\special{pa 555 -1604}%
-\special{pa 541 -1587}\special{pa 527 -1569}\special{pa 513 -1553}\special{pa 499 -1537}%
-\special{pa 486 -1521}\special{pa 472 -1506}\special{pa 459 -1491}\special{pa 446 -1477}%
-\special{pa 433 -1463}\special{pa 420 -1451}\special{pa 408 -1438}\special{pa 395 -1427}%
-\special{pa 383 -1416}\special{pa 371 -1405}%
-\special{fp}%
-\special{pa 371 -1405}\special{pa 379 -1412}\special{pa 388 -1418}\special{pa 399 -1423}%
-\special{pa 410 -1429}\special{pa 423 -1434}\special{pa 437 -1438}\special{pa 452 -1443}%
-\special{pa 468 -1447}\special{pa 486 -1451}\special{pa 504 -1455}\special{pa 523 -1459}%
-\special{pa 544 -1462}\special{pa 565 -1465}\special{pa 587 -1468}\special{pa 610 -1471}%
-\special{pa 634 -1473}\special{pa 659 -1476}\special{pa 685 -1478}\special{pa 711 -1480}%
-\special{pa 738 -1482}\special{pa 766 -1483}\special{pa 795 -1485}\special{pa 824 -1487}%
-\special{pa 854 -1488}\special{pa 884 -1489}\special{pa 915 -1490}\special{pa 947 -1491}%
-\special{pa 979 -1492}\special{pa 1011 -1493}\special{pa 1044 -1494}\special{pa 1077 -1495}%
-\special{pa 1111 -1495}\special{pa 1145 -1496}\special{pa 1179 -1497}\special{pa 1214 -1497}%
-\special{pa 1249 -1498}\special{pa 1284 -1498}%
-\special{fp}%
-\special{pa 1284 -1498}\special{pa 1271 -1513}\special{pa 1259 -1528}\special{pa 1247 -1543}%
-\special{pa 1235 -1558}\special{pa 1223 -1572}\special{pa 1212 -1586}\special{pa 1201 -1601}%
-\special{pa 1190 -1615}\special{pa 1180 -1628}\special{pa 1169 -1642}\special{pa 1159 -1656}%
-\special{pa 1149 -1670}\special{pa 1140 -1683}\special{pa 1130 -1697}\special{pa 1121 -1711}%
-\special{pa 1112 -1724}\special{pa 1103 -1738}\special{pa 1094 -1752}\special{pa 1085 -1765}%
-\special{pa 1076 -1779}\special{pa 1068 -1793}\special{pa 1059 -1807}\special{pa 1051 -1821}%
-\special{pa 1043 -1835}\special{pa 1035 -1849}\special{pa 1026 -1863}\special{pa 1018 -1878}%
-\special{pa 1010 -1892}\special{pa 1002 -1907}\special{pa 994 -1922}\special{pa 986 -1937}%
-\special{pa 978 -1952}\special{pa 970 -1968}\special{pa 962 -1984}\special{pa 954 -2000}%
-\special{pa 946 -2016}\special{pa 938 -2033}%
-\special{fp}%
-\end{picture}}%%
-}%
-%
-}%
-\newcommand{\crosscoremark}[2][20]{%
-\scalebox{#2}{%
-{\unitlength=0.04mm%
-\begin{picture}%
-( 727.79300, 479.77400)( 209.39300, 264.28200)%
-\special{pn 8}%
-%
-\special{pn #1}%
-\special{pa 839 -1159}\special{pa 847 -1123}\special{pa 855 -1088}\special{pa 862 -1055}%
-\special{pa 870 -1023}\special{pa 877 -992}\special{pa 885 -962}\special{pa 892 -934}%
-\special{pa 899 -907}\special{pa 906 -880}\special{pa 913 -855}\special{pa 920 -831}%
-\special{pa 926 -808}\special{pa 933 -786}\special{pa 939 -764}\special{pa 946 -744}%
-\special{pa 952 -724}\special{pa 958 -705}\special{pa 965 -687}\special{pa 971 -669}%
-\special{pa 977 -652}\special{pa 983 -636}\special{pa 989 -620}\special{pa 995 -604}%
-\special{pa 1001 -589}\special{pa 1007 -575}\special{pa 1013 -560}\special{pa 1019 -547}%
-\special{pa 1025 -533}\special{pa 1031 -520}\special{pa 1037 -506}\special{pa 1043 -493}%
-\special{pa 1049 -481}\special{pa 1055 -468}\special{pa 1061 -455}\special{pa 1067 -442}%
-\special{pa 1073 -429}\special{pa 1079 -416}%
-\special{fp}%
-\special{pa 330 -490}\special{pa 362 -513}\special{pa 394 -536}\special{pa 426 -558}%
-\special{pa 458 -580}\special{pa 490 -602}\special{pa 521 -623}\special{pa 553 -644}%
-\special{pa 584 -664}\special{pa 615 -684}\special{pa 646 -704}\special{pa 676 -724}%
-\special{pa 707 -743}\special{pa 738 -762}\special{pa 768 -780}\special{pa 798 -799}%
-\special{pa 829 -817}\special{pa 859 -835}\special{pa 889 -853}\special{pa 920 -870}%
-\special{pa 950 -888}\special{pa 980 -905}\special{pa 1011 -922}\special{pa 1041 -939}%
-\special{pa 1071 -956}\special{pa 1102 -972}\special{pa 1132 -989}\special{pa 1163 -1006}%
-\special{pa 1194 -1022}\special{pa 1224 -1039}\special{pa 1255 -1055}\special{pa 1286 -1072}%
-\special{pa 1318 -1088}\special{pa 1349 -1105}\special{pa 1380 -1122}\special{pa 1412 -1138}%
-\special{pa 1444 -1155}\special{pa 1476 -1172}%
-\special{fp}%
-\end{picture}}%%
-}%
-%
-}%
-\newcommand{\boxline}[5][8]{%
-\def\tmpcontents{%
-{\unitlength=1mm%
-\begin{picture}%
-( 1.00000, 0.02000)( 0.00000, -0.01000)%
-\special{pn 8}%
-%
-\special{pn #1}%
-\special{pa 0 0}\special{pa 39 0}%
-\special{fp}%
-\end{picture}}%%
-}%
-\setcounter{ketpicctrc}{-#3}%
-\addtocounter{ketpicctrc}{-#5}%
-\setcounter{ketpicctra}{0}%
-\setcounter{ketpicctra}{1}%
-\addtocounter{ketpicctra}{-1}%
-%
-{%
-\loop%
-\addtocounter{ketpicctra}{1}%
-\setcounter{ketpicctrb}{#2}%
-\addtocounter{ketpicctrb}{\value{ketpicctra}}%
-\addtocounter{ketpicctrb}{-1}%
-\settowidth{\Width}{\tmpcontents}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{\tmpcontents}\settodepth{\Depth}{\tmpcontents}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(\theketpicctrb,-#3){\hspace*{\Width}\raisebox{\Height}{\tmpcontents}}%
-\settowidth{\Width}{\tmpcontents}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{\tmpcontents}\settodepth{\Depth}{\tmpcontents}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(\theketpicctrb,\theketpicctrc){\hspace*{\Width}\raisebox{\Height}{\tmpcontents}}%
-%
-\ifnum\theketpicctra<#4%
-\repeat%
-}%
-\def\tmpcontents{%
-{\unitlength=1mm%
-\begin{picture}%
-( 0.02000, 1.00000)( -0.01000, 0.00000)%
-\special{pn 8}%
-%
-\special{pn #1}%
-\special{pa 0 0}\special{pa 0 -39}%
-\special{fp}%
-\end{picture}}%%
-}%
-\setcounter{ketpicctrc}{#2}%
-\addtocounter{ketpicctrc}{#4}%
-\setcounter{ketpicctra}{0}%
-\setcounter{ketpicctra}{1}%
-\addtocounter{ketpicctra}{-1}%
-%
-{%
-\loop%
-\addtocounter{ketpicctra}{1}%
-\setcounter{ketpicctrb}{-#3}%
-\addtocounter{ketpicctrb}{-#5}%
-\addtocounter{ketpicctrb}{\value{ketpicctra}}%
-\addtocounter{ketpicctrb}{-1}%
-\settowidth{\Width}{\tmpcontents}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{\tmpcontents}\settodepth{\Depth}{\tmpcontents}\setlength{\Height}{\Depth}%
-\put(#2,\theketpicctrb){\hspace*{\Width}\raisebox{\Height}{\tmpcontents}}%
-\settowidth{\Width}{\tmpcontents}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{\tmpcontents}\settodepth{\Depth}{\tmpcontents}\setlength{\Height}{\Depth}%
-\put(\theketpicctrc,\theketpicctrb){\hspace*{\Width}\raisebox{\Height}{\tmpcontents}}%
-%
-\ifnum\theketpicctra<#5%
-\repeat%
-}%
-%
-}%
-\newcommand{\boxlinene}[5][8]{%
-\boxline[#1]{#2}{#3}{#4}{#5}%
-%
-}%
-\newcommand{\boxlinec}[5][8]{%
-\setcounter{ketpicctrd}{-#4}%
-\divide\value{ketpicctrd} by 2%
-\addtocounter{ketpicctrd}{#2}%
-\setcounter{ketpicctre}{#5}%
-\divide\value{ketpicctre} by 2%
-\addtocounter{ketpicctre}{#3}%
-\boxline[#1]{\theketpicctrd}{\theketpicctre}{#4}{#5}%
-%
-}%
-\newcommand{\boxlinee}[5][8]{%
-\setcounter{ketpicctrd}{#2}%
-\setcounter{ketpicctre}{#5}%
-\divide\value{ketpicctre} by 2%
-\addtocounter{ketpicctre}{#3}%
-\boxline[#1]{\theketpicctrd}{\theketpicctre}{#4}{#5}%
-%
-}%
-\newcommand{\boxlinew}[5][8]{%
-\setcounter{ketpicctrd}{-#4}%
-\addtocounter{ketpicctrd}{#2}%
-\setcounter{ketpicctre}{#5}%
-\divide\value{ketpicctre} by 2%
-\addtocounter{ketpicctre}{#3}%
-\boxline[#1]{\theketpicctrd}{\theketpicctre}{#4}{#5}%
-%
-}%
-\newcommand{\boxlinen}[5][8]{%
-\setcounter{ketpicctrd}{-#4}%
-\divide\value{ketpicctrd} by 2%
-\addtocounter{ketpicctrd}{#2}%
-\setcounter{ketpicctre}{#3}%
-\boxline[#1]{\theketpicctrd}{\theketpicctre}{#4}{#5}%
-%
-}%
-\newcommand{\boxlines}[5][8]{%
-\setcounter{ketpicctrd}{-#4}%
-\divide\value{ketpicctrd} by 2%
-\addtocounter{ketpicctrd}{#2}%
-\setcounter{ketpicctre}{#5}%
-\addtocounter{ketpicctre}{#3}%
-\boxline[#1]{\theketpicctrd}{\theketpicctre}{#4}{#5}%
-%
-}%
-\newcommand{\boxlinenw}[5][8]{%
-\setcounter{ketpicctrd}{-#4}%
-\addtocounter{ketpicctrd}{#2}%
-\setcounter{ketpicctre}{#3}%
-\boxline[#1]{\theketpicctrd}{\theketpicctre}{#4}{#5}%
-%
-}%
-\newcommand{\boxlinese}[5][8]{%
-\setcounter{ketpicctrd}{#2}%
-\setcounter{ketpicctre}{#5}%
-\addtocounter{ketpicctre}{#3}%
-\boxline[#1]{\theketpicctrd}{\theketpicctre}{#4}{#5}%
-%
-}%
-\newcommand{\boxlinesw}[5][8]{%
-\setcounter{ketpicctrd}{-#4}%
-\addtocounter{ketpicctrd}{#2}%
-\setcounter{ketpicctre}{#5}%
-\addtocounter{ketpicctre}{#3}%
-\boxline[#1]{\theketpicctrd}{\theketpicctre}{#4}{#5}%
-%
-}%
-\newcommand{\ketboxframe}[6][8]{%
-\def\tmpcontents{%
-\setcounter{ketpicctrf}{#4}%
-\addtocounter{ketpicctrf}{-4}%
-\setlength{\Width}{\theketpicctrf\unitlength}%
-\begin{minipage}{\Width}%
-#6%
-\end{minipage}%
-%
-}%
-\setcounter{ketpicctrg}{#2}%
-\addtocounter{ketpicctrg}{2}%
-\setcounter{ketpicctrh}{-#3}%
-\addtocounter{ketpicctrh}{-2}%
-\settowidth{\Width}{\tmpcontents}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{\tmpcontents}\settodepth{\Depth}{\tmpcontents}\setlength{\Height}{-\Height}%
-\put(\theketpicctrg,\theketpicctrh){\hspace*{\Width}\raisebox{\Height}{\tmpcontents}}%
-\boxline[#1]{#2}{#3}{#4}{#5}%
-%
-}%
-\newcommand{\boxframese}[6][8]{%
-\ketboxframe[#1]{#2}{#3}{#4}{#5}{#6}%
-%
-}%
-\newcommand{\boxframec}[6][8]{%
-\setcounter{ketpicctrd}{-#4}%
-\divide\value{ketpicctrd} by 2%
-\addtocounter{ketpicctrd}{#2}%
-\setcounter{ketpicctre}{-#5}%
-\divide\value{ketpicctre} by 2%
-\addtocounter{ketpicctre}{#3}%
-\ketboxframe[#1]{\theketpicctrd}{\theketpicctre}{#4}{#5}{#6}%
-%
-}%
-\newcommand{\boxframee}[6][8]{%
-\setcounter{ketpicctrd}{#2}%
-\setcounter{ketpicctre}{-#5}%
-\divide\value{ketpicctre} by 2%
-\addtocounter{ketpicctre}{#3}%
-\ketboxframe[#1]{\theketpicctrd}{\theketpicctre}{#4}{#5}{#6}%
-%
-}%
-\newcommand{\boxframew}[6][8]{%
-\setcounter{ketpicctrd}{-#4}%
-\addtocounter{ketpicctrd}{#2}%
-\setcounter{ketpicctre}{-#5}%
-\divide\value{ketpicctre} by 2%
-\addtocounter{ketpicctre}{#3}%
-\ketboxframe[#1]{\theketpicctrd}{\theketpicctre}{#4}{#5}{#6}%
-%
-}%
-\newcommand{\boxframen}[6][8]{%
-\setcounter{ketpicctrd}{-#4}%
-\divide\value{ketpicctrd} by 2%
-\addtocounter{ketpicctrd}{#2}%
-\setcounter{ketpicctre}{#3}%
-\addtocounter{ketpicctre}{-#5}%
-\ketboxframe[#1]{\theketpicctrd}{\theketpicctre}{#4}{#5}{#6}%
-%
-}%
-\newcommand{\boxframes}[6][8]{%
-\setcounter{ketpicctrd}{-#4}%
-\divide\value{ketpicctrd} by 2%
-\addtocounter{ketpicctrd}{#2}%
-\setcounter{ketpicctre}{#3}%
-\ketboxframe[#1]{\theketpicctrd}{\theketpicctre}{#4}{#5}{#6}%
-%
-}%
-\newcommand{\boxframenw}[6][8]{%
-\setcounter{ketpicctrd}{-#4}%
-\addtocounter{ketpicctrd}{#2}%
-\setcounter{ketpicctre}{#3}%
-\addtocounter{ketpicctre}{-#5}%
-\ketboxframe[#1]{\theketpicctrd}{\theketpicctre}{#4}{#5}{#6}%
-%
-}%
-\newcommand{\boxframene}[6][8]{%
-\setcounter{ketpicctrd}{#2}%
-\setcounter{ketpicctre}{#3}%
-\addtocounter{ketpicctre}{-#5}%
-\ketboxframe[#1]{\theketpicctrd}{\theketpicctre}{#4}{#5}{#6}%
-%
-}%
-\newcommand{\boxframesw}[6][8]{%
-\setcounter{ketpicctrd}{-#4}%
-\addtocounter{ketpicctrd}{#2}%
-\setcounter{ketpicctre}{#3}%
-\ketboxframe[#1]{\theketpicctrd}{\theketpicctre}{#4}{#5}{#6}%
-%
-}%
-\newcommand{\circleline}[4][8]{%
-\settowidth{\Width}{\circlemark[#1]{#4}}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{\circlemark[#1]{#4}}\settodepth{\Depth}{\circlemark[#1]{#4}}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(#2,-#3){\hspace*{\Width}\raisebox{\Height}{\circlemark[#1]{#4}}}%
-%
-}%
-\newcommand{\hjaggyline}[4][8]{%
-\def\tmpcontents{%
-{\unitlength=1mm%
-\begin{picture}%
-( 1.00000, 1.00000)( 0.00000, 0.00000)%
-\special{pn 8}%
-%
-\special{pn #1}%
-\special{pa 0 0}\special{pa 39 -39}%
-\special{fp}%
-\end{picture}}%%
-}%
-\def\tmpcontentsb{%
-{\unitlength=1mm%
-\begin{picture}%
-( 1.00000, 1.00000)( 0.00000, 0.00000)%
-\special{pn 8}%
-%
-\special{pn #1}%
-\special{pa 0 -39}\special{pa 39 0}%
-\special{fp}%
-\end{picture}}%%
-}%
-\setcounter{ketpicctra}{0}%
-\setcounter{ketpicctra}{1}%
-\addtocounter{ketpicctra}{-1}%
-%
-{%
-\loop%
-\addtocounter{ketpicctra}{1}%
-\setcounter{ketpicctrb}{#2}%
-\addtocounter{ketpicctrb}{\value{ketpicctra}}%
-\addtocounter{ketpicctrb}{-1}%
-\setcounter{ketpicctrc}{\value{ketpicctra}}%
-\divide\value{ketpicctrc} by 2%
-\multiply\value{ketpicctrc} by 2%
-%
-{%
-\ifnum %
-\theketpicctrc<\theketpicctra %
-\settowidth{\Width}{\tmpcontents}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{\tmpcontents}\settodepth{\Depth}{\tmpcontents}\setlength{\Height}{\Depth}%
-\put(\theketpicctrb,-#3){\hspace*{\Width}\raisebox{\Height}{\tmpcontents}}%
-%
-\else%
-\settowidth{\Width}{\tmpcontentsb}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{\tmpcontentsb}\settodepth{\Depth}{\tmpcontentsb}\setlength{\Height}{\Depth}%
-\put(\theketpicctrb,-#3){\hspace*{\Width}\raisebox{\Height}{\tmpcontentsb}}%
-%
-\fi%
-}%
-%
-\ifnum\theketpicctra<#4%
-\repeat%
-}%
-%
-}%
-\newcommand{\vjaggyline}[4][8]{%
-\def\tmpcontents{%
-{\unitlength=1mm%
-\begin{picture}%
-( 1.00000, 1.00000)( 0.00000, -1.00000)%
-\special{pn 8}%
-%
-\special{pn #1}%
-\special{pa 0 0}\special{pa 39 39}%
-\special{fp}%
-\end{picture}}%%
-}%
-\def\tmpcontentsb{%
-{\unitlength=1mm%
-\begin{picture}%
-( 1.00000, 1.00000)( 0.00000, -1.00000)%
-\special{pn 8}%
-%
-\special{pn #1}%
-\special{pa 39 0}\special{pa 0 39}%
-\special{fp}%
-\end{picture}}%%
-}%
-\setcounter{ketpicctra}{0}%
-\setcounter{ketpicctra}{1}%
-\addtocounter{ketpicctra}{-1}%
-%
-{%
-\loop%
-\addtocounter{ketpicctra}{1}%
-\setcounter{ketpicctrb}{-#3}%
-\addtocounter{ketpicctrb}{-\value{ketpicctra}}%
-\addtocounter{ketpicctrb}{1}%
-\setcounter{ketpicctrc}{\value{ketpicctra}}%
-\divide\value{ketpicctrc} by 2%
-\multiply\value{ketpicctrc} by 2%
-%
-{%
-\ifnum %
-\theketpicctrc<\theketpicctra %
-\settowidth{\Width}{\tmpcontents}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{\tmpcontents}\settodepth{\Depth}{\tmpcontents}\setlength{\Height}{-\Height}%
-\put(#2,\theketpicctrb){\hspace*{\Width}\raisebox{\Height}{\tmpcontents}}%
-%
-\else%
-\settowidth{\Width}{\tmpcontentsb}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{\tmpcontentsb}\settodepth{\Depth}{\tmpcontentsb}\setlength{\Height}{-\Height}%
-\put(#2,\theketpicctrb){\hspace*{\Width}\raisebox{\Height}{\tmpcontentsb}}%
-%
-\fi%
-}%
-%
-\ifnum\theketpicctra<#4%
-\repeat%
-}%
-%
-}%
-\newcommand{\hjaggylineb}[4][8]{%
-\def\tmpcontents{%
-{\unitlength=1mm%
-\begin{picture}%
-( 1.00000, 1.00000)( 0.00000, 0.00000)%
-\special{pn 8}%
-%
-\special{pn #1}%
-\special{pa 0 0}\special{pa 39 -39}%
-\special{fp}%
-\end{picture}}%%
-}%
-\def\tmpcontentsb{%
-{\unitlength=1mm%
-\begin{picture}%
-( 1.00000, 1.00000)( 0.00000, 0.00000)%
-\special{pn 8}%
-%
-\special{pn #1}%
-\special{pa 0 -39}\special{pa 39 0}%
-\special{fp}%
-\end{picture}}%%
-}%
-\setcounter{ketpicctra}{0}%
-\setcounter{ketpicctra}{1}%
-\addtocounter{ketpicctra}{-1}%
-%
-{%
-\loop%
-\addtocounter{ketpicctra}{1}%
-\setcounter{ketpicctrb}{#2}%
-\addtocounter{ketpicctrb}{\value{ketpicctra}}%
-\addtocounter{ketpicctrb}{-1}%
-\setcounter{ketpicctrc}{\value{ketpicctra}}%
-\divide\value{ketpicctrc} by 2%
-\multiply\value{ketpicctrc} by 2%
-%
-{%
-\ifnum %
-\theketpicctrc<\theketpicctra %
-\settowidth{\Width}{\tmpcontentsb}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{\tmpcontentsb}\settodepth{\Depth}{\tmpcontentsb}\setlength{\Height}{-\Height}%
-\put(\theketpicctrb,-#3){\hspace*{\Width}\raisebox{\Height}{\tmpcontentsb}}%
-%
-\else%
-\settowidth{\Width}{\tmpcontents}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{\tmpcontents}\settodepth{\Depth}{\tmpcontents}\setlength{\Height}{-\Height}%
-\put(\theketpicctrb,-#3){\hspace*{\Width}\raisebox{\Height}{\tmpcontents}}%
-%
-\fi%
-}%
-%
-\ifnum\theketpicctra<#4%
-\repeat%
-}%
-%
-}%
-\newcommand{\vjaggylineb}[4][8]{%
-\def\tmpcontents{%
-{\unitlength=1mm%
-\begin{picture}%
-( 1.00000, 1.00000)( 0.00000, -1.00000)%
-\special{pn 8}%
-%
-\special{pn #1}%
-\special{pa 0 0}\special{pa 39 39}%
-\special{fp}%
-\end{picture}}%%
-}%
-\def\tmpcontentsb{%
-{\unitlength=1mm%
-\begin{picture}%
-( 1.00000, 1.00000)( 0.00000, -1.00000)%
-\special{pn 8}%
-%
-\special{pn #1}%
-\special{pa 39 0}\special{pa 0 39}%
-\special{fp}%
-\end{picture}}%%
-}%
-\setcounter{ketpicctra}{0}%
-\setcounter{ketpicctra}{1}%
-\addtocounter{ketpicctra}{-1}%
-%
-{%
-\loop%
-\addtocounter{ketpicctra}{1}%
-\setcounter{ketpicctrb}{-#3}%
-\addtocounter{ketpicctrb}{-\value{ketpicctra}}%
-\addtocounter{ketpicctrb}{1}%
-\setcounter{ketpicctrc}{\value{ketpicctra}}%
-\divide\value{ketpicctrc} by 2%
-\multiply\value{ketpicctrc} by 2%
-%
-{%
-\ifnum %
-\theketpicctrc<\theketpicctra %
-\settowidth{\Width}{\tmpcontentsb}\setlength{\Width}{-1\Width}%
-\settoheight{\Height}{\tmpcontentsb}\settodepth{\Depth}{\tmpcontentsb}\setlength{\Height}{-\Height}%
-\put(#2,\theketpicctrb){\hspace*{\Width}\raisebox{\Height}{\tmpcontentsb}}%
-%
-\else%
-\settowidth{\Width}{\tmpcontents}\setlength{\Width}{-1\Width}%
-\settoheight{\Height}{\tmpcontents}\settodepth{\Depth}{\tmpcontents}\setlength{\Height}{-\Height}%
-\put(#2,\theketpicctrb){\hspace*{\Width}\raisebox{\Height}{\tmpcontents}}%
-%
-\fi%
-}%
-%
-\ifnum\theketpicctra<#4%
-\repeat%
-}%
-%
-}%
-\newcommand{\jaggyboxframe}[6][8]{%
-\def\tmpcontents{%
-\setcounter{ketpicctrf}{#4}%
-\addtocounter{ketpicctrf}{-4}%
-\setlength{\Width}{\theketpicctrf\unitlength}%
-\begin{minipage}{\Width}%
-#6%
-\end{minipage}%
-%
-}%
-\setcounter{ketpicctrg}{#2}%
-\addtocounter{ketpicctrg}{2}%
-\setcounter{ketpicctrh}{-#3}%
-\addtocounter{ketpicctrh}{-2}%
-\settowidth{\Width}{\tmpcontents}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{\tmpcontents}\settodepth{\Depth}{\tmpcontents}\setlength{\Height}{-\Height}%
-\put(\theketpicctrg,\theketpicctrh){\hspace*{\Width}\raisebox{\Height}{\tmpcontents}}%
-\setcounter{ketpicctrg}{#2}%
-\setcounter{ketpicctrh}{#3}%
-\hjaggylineb[#1]{\theketpicctrg}{\theketpicctrh}{#4}%
-\vjaggylineb[#1]{\theketpicctrg}{\theketpicctrh}{#5}%
-\setcounter{ketpicctrg}{#2}%
-\setcounter{ketpicctrh}{#3}%
-\addtocounter{ketpicctrh}{#5}%
-\hjaggyline[#1]{\theketpicctrg}{\theketpicctrh}{#4}%
-\setcounter{ketpicctrg}{#2}%
-\addtocounter{ketpicctrg}{#4}%
-\setcounter{ketpicctrh}{#3}%
-\vjaggyline[#1]{\theketpicctrg}{\theketpicctrh}{#5}%
-%
-}%
-\newcommand{\jaggyboxframese}[6][8]{%
-\jaggyboxframe[#1]{#2}{#3}{#4}{#5}{#6}%
-%
-}%
-\newcommand{\jaggyboxframec}[6][8]{%
-\setcounter{ketpicctrd}{-#4}%
-\divide\value{ketpicctrd} by 2%
-\addtocounter{ketpicctrd}{#2}%
-\setcounter{ketpicctre}{-#5}%
-\divide\value{ketpicctre} by 2%
-\addtocounter{ketpicctre}{#3}%
-\jaggyboxframe[#1]{\theketpicctrd}{\theketpicctre}{#4}{#5}{#6}%
-%
-}%
-\newcommand{\jaggyboxframee}[6][8]{%
-\setcounter{ketpicctrd}{#2}%
-\setcounter{ketpicctre}{-#5}%
-\divide\value{ketpicctre} by 2%
-\addtocounter{ketpicctre}{#3}%
-\jaggyboxframe[#1]{\theketpicctrd}{\theketpicctre}{#4}{#5}{#6}%
-%
-}%
-\newcommand{\jaggyboxframew}[6][8]{%
-\setcounter{ketpicctrd}{-#4}%
-\addtocounter{ketpicctrd}{#2}%
-\setcounter{ketpicctre}{-#5}%
-\divide\value{ketpicctre} by 2%
-\addtocounter{ketpicctre}{#3}%
-\jaggyboxframe[#1]{\theketpicctrd}{\theketpicctre}{#4}{#5}{#6}%
-%
-}%
-\newcommand{\jaggyboxframen}[6][8]{%
-\setcounter{ketpicctrd}{-#4}%
-\divide\value{ketpicctrd} by 2%
-\addtocounter{ketpicctrd}{#2}%
-\setcounter{ketpicctre}{#3}%
-\addtocounter{ketpicctre}{-#5}%
-\jaggyboxframe[#1]{\theketpicctrd}{\theketpicctre}{#4}{#5}{#6}%
-%
-}%
-\newcommand{\jaggyboxframes}[6][8]{%
-\setcounter{ketpicctrd}{-#4}%
-\divide\value{ketpicctrd} by 2%
-\addtocounter{ketpicctrd}{#2}%
-\setcounter{ketpicctre}{#3}%
-\jaggyboxframe[#1]{\theketpicctrd}{\theketpicctre}{#4}{#5}{#6}%
-%
-}%
-\newcommand{\jaggyboxframenw}[6][8]{%
-\setcounter{ketpicctrd}{-#4}%
-\addtocounter{ketpicctrd}{#2}%
-\setcounter{ketpicctre}{#3}%
-\addtocounter{ketpicctre}{-#5}%
-\jaggyboxframe[#1]{\theketpicctrd}{\theketpicctre}{#4}{#5}{#6}%
-%
-}%
-\newcommand{\jaggyboxframene}[6][8]{%
-\setcounter{ketpicctrd}{#2}%
-\setcounter{ketpicctre}{#3}%
-\addtocounter{ketpicctre}{-#5}%
-\jaggyboxframe[#1]{\theketpicctrd}{\theketpicctre}{#4}{#5}{#6}%
-%
-}%
-\newcommand{\jaggyboxframesw}[6][8]{%
-\setcounter{ketpicctrd}{-#4}%
-\addtocounter{ketpicctrd}{#2}%
-\setcounter{ketpicctre}{#3}%
-\jaggyboxframe[#1]{\theketpicctrd}{\theketpicctre}{#4}{#5}{#6}%
-%
-}%
-\newcommand{\hdialine}[4][8]{%
-\def\tmpcontents{%
-{\unitlength=1mm%
-\begin{picture}%
-( 1.00000, 1.00000)( 0.00000, -0.50000)%
-\special{pn 8}%
-%
-\special{pn #1}%
-\special{pa 39 -20}\special{pa 0 0}\special{pa 39 20}%
-\special{fp}%
-\end{picture}}%%
-}%
-\def\tmpcontentsb{%
-{\unitlength=1mm%
-\begin{picture}%
-( 1.00000, 1.00000)( 0.00000, -0.50000)%
-\special{pn 8}%
-%
-\special{pn #1}%
-\special{pa 0 -20}\special{pa 39 0}\special{pa 0 20}%
-\special{fp}%
-\end{picture}}%%
-}%
-\setcounter{ketpicctra}{0}%
-\setcounter{ketpicctra}{1}%
-\addtocounter{ketpicctra}{-1}%
-%
-{%
-\loop%
-\addtocounter{ketpicctra}{1}%
-\setcounter{ketpicctrb}{#2}%
-\addtocounter{ketpicctrb}{\value{ketpicctra}}%
-\addtocounter{ketpicctrb}{-1}%
-\setcounter{ketpicctrc}{\value{ketpicctra}}%
-\divide\value{ketpicctrc} by 2%
-\multiply\value{ketpicctrc} by 2%
-%
-{%
-\ifnum %
-\theketpicctrc<\theketpicctra %
-\settowidth{\Width}{\tmpcontents}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{\tmpcontents}\settodepth{\Depth}{\tmpcontents}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(\theketpicctrb,-#3){\hspace*{\Width}\raisebox{\Height}{\tmpcontents}}%
-%
-\else%
-\settowidth{\Width}{\tmpcontentsb}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{\tmpcontentsb}\settodepth{\Depth}{\tmpcontentsb}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(\theketpicctrb,-#3){\hspace*{\Width}\raisebox{\Height}{\tmpcontentsb}}%
-%
-\fi%
-}%
-%
-\ifnum\theketpicctra<#4%
-\repeat%
-}%
-%
-}%
-\newcommand{\vdialine}[4][8]{%
-\def\tmpcontents{%
-{\unitlength=1mm%
-\begin{picture}%
-( 1.00000, 1.00000)( -0.50000, 0.00000)%
-\special{pn 8}%
-%
-\special{pn #1}%
-\special{pa -20 0}\special{pa 0 -39}\special{pa 20 0}%
-\special{fp}%
-\end{picture}}%%
-}%
-\def\tmpcontentsb{%
-{\unitlength=1mm%
-\begin{picture}%
-( 1.00000, 1.00000)( -0.50000, 0.00000)%
-\special{pn 8}%
-%
-\special{pn #1}%
-\special{pa -20 -39}\special{pa 0 0}\special{pa 20 -39}%
-\special{fp}%
-\end{picture}}%%
-}%
-\setcounter{ketpicctra}{0}%
-\setcounter{ketpicctra}{1}%
-\addtocounter{ketpicctra}{-1}%
-%
-{%
-\loop%
-\addtocounter{ketpicctra}{1}%
-\setcounter{ketpicctrb}{-#3}%
-\addtocounter{ketpicctrb}{-\value{ketpicctra}}%
-\addtocounter{ketpicctrb}{1}%
-\setcounter{ketpicctrc}{\value{ketpicctra}}%
-\divide\value{ketpicctrc} by 2%
-\multiply\value{ketpicctrc} by 2%
-%
-{%
-\ifnum %
-\theketpicctrc<\theketpicctra %
-\settowidth{\Width}{\tmpcontents}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{\tmpcontents}\settodepth{\Depth}{\tmpcontents}\setlength{\Height}{-\Height}%
-\put(#2,\theketpicctrb){\hspace*{\Width}\raisebox{\Height}{\tmpcontents}}%
-%
-\else%
-\settowidth{\Width}{\tmpcontentsb}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{\tmpcontentsb}\settodepth{\Depth}{\tmpcontentsb}\setlength{\Height}{-\Height}%
-\put(#2,\theketpicctrb){\hspace*{\Width}\raisebox{\Height}{\tmpcontentsb}}%
-%
-\fi%
-}%
-%
-\ifnum\theketpicctra<#4%
-\repeat%
-}%
-%
-}%
-\newcommand{\diaboxframe}[6][4]{%
-\def\tmpcontents{%
-\setcounter{ketpicctrf}{#4}%
-\addtocounter{ketpicctrf}{-4}%
-\setlength{\Width}{\theketpicctrf\unitlength}%
-\begin{minipage}{\Width}%
-#6%
-\end{minipage}%
-%
-}%
-\setcounter{ketpicctrg}{#2}%
-\addtocounter{ketpicctrg}{2}%
-\setcounter{ketpicctrh}{-#3}%
-\addtocounter{ketpicctrh}{-2}%
-\settowidth{\Width}{\tmpcontents}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{\tmpcontents}\settodepth{\Depth}{\tmpcontents}\setlength{\Height}{-\Height}%
-\put(\theketpicctrg,\theketpicctrh){\hspace*{\Width}\raisebox{\Height}{\tmpcontents}}%
-\setcounter{ketpicctrh}{#3}%
-\hdialine[#1]{#2}{\theketpicctrh}{#4}%
-\setcounter{ketpicctrh}{#3}%
-\addtocounter{ketpicctrh}{#5}%
-\hdialine[#1]{#2}{\theketpicctrh}{#4}%
-\setcounter{ketpicctrg}{#2}%
-\vdialine[#1]{\theketpicctrg}{#3}{#5}%
-\setcounter{ketpicctrg}{#2}%
-\addtocounter{ketpicctrg}{#4}%
-\vdialine[#1]{\theketpicctrg}{#3}{#5}%
-%
-}%
-\newcommand{\diaboxframese}[6][8]{%
-\diaboxframe[#1]{#2}{#3}{#4}{#5}{#6}%
-%
-}%
-\newcommand{\diaboxframec}[6][8]{%
-\setcounter{ketpicctrd}{-#4}%
-\divide\value{ketpicctrd} by 2%
-\addtocounter{ketpicctrd}{#2}%
-\setcounter{ketpicctre}{-#5}%
-\divide\value{ketpicctre} by 2%
-\addtocounter{ketpicctre}{#3}%
-\diaboxframe[#1]{\theketpicctrd}{\theketpicctre}{#4}{#5}{#6}%
-%
-}%
-\newcommand{\diaboxframee}[6][8]{%
-\setcounter{ketpicctrd}{#2}%
-\setcounter{ketpicctre}{-#5}%
-\divide\value{ketpicctre} by 2%
-\addtocounter{ketpicctre}{#3}%
-\diaboxframe[#1]{\theketpicctrd}{\theketpicctre}{#4}{#5}{#6}%
-%
-}%
-\newcommand{\diaboxframew}[6][8]{%
-\setcounter{ketpicctrd}{-#4}%
-\addtocounter{ketpicctrd}{#2}%
-\setcounter{ketpicctre}{-#5}%
-\divide\value{ketpicctre} by 2%
-\addtocounter{ketpicctre}{#3}%
-\diaboxframe[#1]{\theketpicctrd}{\theketpicctre}{#4}{#5}{#6}%
-%
-}%
-\newcommand{\diaboxframen}[6][8]{%
-\setcounter{ketpicctrd}{-#4}%
-\divide\value{ketpicctrd} by 2%
-\addtocounter{ketpicctrd}{#2}%
-\setcounter{ketpicctre}{-#5}%
-\addtocounter{ketpicctre}{#3}%
-\diaboxframe[#1]{\theketpicctrd}{\theketpicctre}{#4}{#5}{#6}%
-%
-}%
-\newcommand{\diaboxframes}[6][8]{%
-\setcounter{ketpicctrd}{-#4}%
-\divide\value{ketpicctrd} by 2%
-\addtocounter{ketpicctrd}{#2}%
-\setcounter{ketpicctre}{#3}%
-\diaboxframe[#1]{\theketpicctrd}{\theketpicctre}{#4}{#5}{#6}%
-%
-}%
-\newcommand{\diaboxframenw}[6][8]{%
-\setcounter{ketpicctrd}{-#4}%
-\addtocounter{ketpicctrd}{#2}%
-\setcounter{ketpicctre}{-#5}%
-\addtocounter{ketpicctre}{#3}%
-\diaboxframe[#1]{\theketpicctrd}{\theketpicctre}{#4}{#5}{#6}%
-%
-}%
-\newcommand{\diaboxframene}[6][8]{%
-\setcounter{ketpicctrd}{#2}%
-\setcounter{ketpicctre}{-#5}%
-\addtocounter{ketpicctre}{#3}%
-\diaboxframe[#1]{\theketpicctrd}{\theketpicctre}{#4}{#5}{#6}%
-%
-}%
-\newcommand{\diaboxframesw}[6][8]{%
-\setcounter{ketpicctrd}{-#4}%
-\addtocounter{ketpicctrd}{#2}%
-\setcounter{ketpicctre}{#3}%
-\diaboxframe[#1]{\theketpicctrd}{\theketpicctre}{#4}{#5}{#6}%
-%
-}%
-\newcommand{\hdashline}[4][8]{%
-\def\tmpcontents{%
-{\unitlength=1mm%
-\begin{picture}%
-( 1.00000, 0.02000)( 0.00000, -0.01000)%
-\special{pn 8}%
-%
-\special{pn #1}%
-\special{pa 0 0}\special{pa 20 0}%
-\special{fp}%
-\end{picture}}%%
-}%
-\setcounter{ketpicctra}{0}%
-\setcounter{ketpicctra}{1}%
-\addtocounter{ketpicctra}{-1}%
-%
-{%
-\loop%
-\addtocounter{ketpicctra}{1}%
-\setcounter{ketpicctrb}{#2}%
-\addtocounter{ketpicctrb}{\value{ketpicctra}}%
-\addtocounter{ketpicctrb}{-1}%
-\settowidth{\Width}{\tmpcontents}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{\tmpcontents}\settodepth{\Depth}{\tmpcontents}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(\theketpicctrb,-#3){\hspace*{\Width}\raisebox{\Height}{\tmpcontents}}%
-%
-\ifnum\theketpicctra<#4%
-\repeat%
-}%
-%
-}%
-\newcommand{\hdashlineb}[4][8]{%
-\def\tmpcontents{%
-{\unitlength=1mm%
-\begin{picture}%
-( 1.00000, 0.02000)( 0.00000, -0.01000)%
-\special{pn 8}%
-%
-\special{pn #1}%
-\special{pa 20 0}\special{pa 39 0}%
-\special{fp}%
-\end{picture}}%%
-}%
-\setcounter{ketpicctra}{0}%
-\setcounter{ketpicctra}{1}%
-\addtocounter{ketpicctra}{-1}%
-%
-{%
-\loop%
-\addtocounter{ketpicctra}{1}%
-\setcounter{ketpicctrb}{#2}%
-\addtocounter{ketpicctrb}{\value{ketpicctra}}%
-\addtocounter{ketpicctrb}{-1}%
-\settowidth{\Width}{\tmpcontents}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{\tmpcontents}\settodepth{\Depth}{\tmpcontents}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(\theketpicctrb,-#3){\hspace*{\Width}\raisebox{\Height}{\tmpcontents}}%
-%
-\ifnum\theketpicctra<#4%
-\repeat%
-}%
-%
-}%
-\newcommand{\vdashline}[4][8]{%
-\def\tmpcontents{%
-{\unitlength=1mm%
-\begin{picture}%
-( 0.02000, 1.00000)( -0.01000, 0.00000)%
-\special{pn 8}%
-%
-\special{pn #1}%
-\special{pa 0 0}\special{pa 0 -20}%
-\special{fp}%
-\end{picture}}%%
-}%
-\setcounter{ketpicctra}{0}%
-\setcounter{ketpicctra}{1}%
-\addtocounter{ketpicctra}{-1}%
-%
-{%
-\loop%
-\addtocounter{ketpicctra}{1}%
-\setcounter{ketpicctrb}{-#3}%
-\addtocounter{ketpicctrb}{-\value{ketpicctra}}%
-\addtocounter{ketpicctrb}{1}%
-\settowidth{\Width}{\tmpcontents}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{\tmpcontents}\settodepth{\Depth}{\tmpcontents}\setlength{\Height}{-\Height}%
-\put(#2,\theketpicctrb){\hspace*{\Width}\raisebox{\Height}{\tmpcontents}}%
-%
-\ifnum\theketpicctra<#4%
-\repeat%
-}%
-%
-}%
-\newcommand{\vdashlineb}[4][8]{%
-\def\tmpcontents{%
-{\unitlength=1mm%
-\begin{picture}%
-( 0.02000, 1.00000)( -0.01000, 0.00000)%
-\special{pn 8}%
-%
-\special{pn #1}%
-\special{pa 0 -20}\special{pa 0 -39}%
-\special{fp}%
-\end{picture}}%%
-}%
-\setcounter{ketpicctra}{0}%
-\setcounter{ketpicctra}{1}%
-\addtocounter{ketpicctra}{-1}%
-%
-{%
-\loop%
-\addtocounter{ketpicctra}{1}%
-\setcounter{ketpicctrb}{-#3}%
-\addtocounter{ketpicctrb}{-\value{ketpicctra}}%
-\addtocounter{ketpicctrb}{1}%
-\settowidth{\Width}{\tmpcontents}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{\tmpcontents}\settodepth{\Depth}{\tmpcontents}\setlength{\Height}{-\Height}%
-\put(#2,\theketpicctrb){\hspace*{\Width}\raisebox{\Height}{\tmpcontents}}%
-%
-\ifnum\theketpicctra<#4%
-\repeat%
-}%
-%
-}%
-\newcommand{\dashboxframe}[6][4]{%
-\def\tmpcontents{%
-\setcounter{ketpicctrf}{#4}%
-\addtocounter{ketpicctrf}{-4}%
-\setlength{\Width}{\theketpicctrf\unitlength}%
-\begin{minipage}{\Width}%
-#6%
-\end{minipage}%
-%
-}%
-\setcounter{ketpicctrg}{#2}%
-\addtocounter{ketpicctrg}{2}%
-\setcounter{ketpicctrh}{-#3}%
-\addtocounter{ketpicctrh}{-2}%
-\settowidth{\Width}{\tmpcontents}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{\tmpcontents}\settodepth{\Depth}{\tmpcontents}\setlength{\Height}{-\Height}%
-\put(\theketpicctrg,\theketpicctrh){\hspace*{\Width}\raisebox{\Height}{\tmpcontents}}%
-\setcounter{ketpicctrh}{#3}%
-\hdashline[#1]{#2}{\theketpicctrh}{#4}%
-\setcounter{ketpicctrh}{#3}%
-\addtocounter{ketpicctrh}{#5}%
-\hdashlineb[#1]{#2}{\theketpicctrh}{#4}%
-\setcounter{ketpicctrg}{#2}%
-\vdashline[#1]{\theketpicctrg}{#3}{#5}%
-\setcounter{ketpicctrg}{#2}%
-\addtocounter{ketpicctrg}{#4}%
-\vdashlineb[#1]{\theketpicctrg}{#3}{#5}%
-%
-}%
-\newcommand{\dashboxframese}[6][8]{%
-\dashboxframe[#1]{#2}{#3}{#4}{#5}{#6}%
-%
-}%
-\newcommand{\dashboxframec}[6][8]{%
-\setcounter{ketpicctrd}{-#4}%
-\divide\value{ketpicctrd} by 2%
-\addtocounter{ketpicctrd}{#2}%
-\setcounter{ketpicctre}{-#5}%
-\divide\value{ketpicctre} by 2%
-\addtocounter{ketpicctre}{#3}%
-\dashboxframe[#1]{\theketpicctrd}{\theketpicctre}{#4}{#5}{#6}%
-%
-}%
-\newcommand{\dashboxframee}[6][8]{%
-\setcounter{ketpicctrd}{#2}%
-\setcounter{ketpicctre}{-#5}%
-\divide\value{ketpicctre} by 2%
-\addtocounter{ketpicctre}{#3}%
-\dashboxframe[#1]{\theketpicctrd}{\theketpicctre}{#4}{#5}{#6}%
-%
-}%
-\newcommand{\dashboxframew}[6][8]{%
-\setcounter{ketpicctrd}{-#4}%
-\addtocounter{ketpicctrd}{#2}%
-\setcounter{ketpicctre}{-#5}%
-\divide\value{ketpicctre} by 2%
-\addtocounter{ketpicctre}{#3}%
-\dashboxframe[#1]{\theketpicctrd}{\theketpicctre}{#4}{#5}{#6}%
-%
-}%
-\newcommand{\dashboxframen}[6][8]{%
-\setcounter{ketpicctrd}{-#4}%
-\divide\value{ketpicctrd} by 2%
-\addtocounter{ketpicctrd}{#2}%
-\setcounter{ketpicctre}{#3}%
-\addtocounter{ketpicctre}{-#5}%
-\dashboxframe[#1]{\theketpicctrd}{\theketpicctre}{#4}{#5}{#6}%
-%
-}%
-\newcommand{\dashboxframes}[6][8]{%
-\setcounter{ketpicctrd}{-#4}%
-\divide\value{ketpicctrd} by 2%
-\addtocounter{ketpicctrd}{#2}%
-\setcounter{ketpicctre}{#3}%
-\dashboxframe[#1]{\theketpicctrd}{\theketpicctre}{#4}{#5}{#6}%
-%
-}%
-\newcommand{\dashboxframenw}[6][8]{%
-\setcounter{ketpicctrd}{-#4}%
-\addtocounter{ketpicctrd}{#2}%
-\setcounter{ketpicctre}{#3}%
-\addtocounter{ketpicctre}{-#5}%
-\dashboxframe[#1]{\theketpicctrd}{\theketpicctre}{#4}{#5}{#6}%
-%
-}%
-\newcommand{\dashboxframene}[6][8]{%
-\setcounter{ketpicctrd}{#2}%
-\setcounter{ketpicctre}{#3}%
-\addtocounter{ketpicctre}{-#5}%
-\dashboxframe[#1]{\theketpicctrd}{\theketpicctre}{#4}{#5}{#6}%
-%
-}%
-\newcommand{\dashboxframesw}[6][8]{%
-\setcounter{ketpicctrd}{-#4}%
-\addtocounter{ketpicctrd}{#2}%
-\setcounter{ketpicctre}{#3}%
-\dashboxframe[#1]{\theketpicctrd}{\theketpicctre}{#4}{#5}{#6}%
-%
-}%
-\newcommand{\boxlinep}[6][8]{%
-\def\tmpcontents{%
-{\unitlength=1mm%
-\begin{picture}%
-( 1.00000, 0.02000)( 0.00000, -0.01000)%
-\special{pn 8}%
-%
-\special{pn #1}%
-\special{pa 0 0}\special{pa 39 0}%
-\special{fp}%
-\end{picture}}%%
-}%
-\def\tmpcontentsb{%
-{\unitlength=0.1mm%
-\begin{picture}%
-( 1.00000, 0.02000)( 0.00000, -0.01000)%
-\special{pn 8}%
-%
-\special{pn #1}%
-\special{pa 0 0}\special{pa 4 0}%
-\special{fp}%
-\end{picture}}%%
-}%
-{\unitlength=0.1mm%
-\setcounter{ketpicctrc}{-#3}%
-\addtocounter{ketpicctrc}{-#5}%
-\setcounter{ketpicctra}{0}%
-\setcounter{ketpicctra}{1}%
-\addtocounter{ketpicctra}{-1}%
-%
-{%
-\loop%
-\addtocounter{ketpicctra}{1}%
-\setcounter{ketpicctrb}{\value{ketpicctra}}%
-\addtocounter{ketpicctrb}{9}%
-%
-{%
-\ifnum %
-\theketpicctrb>#4 %
-\setcounter{ketpicctrb}{#2}%
-\addtocounter{ketpicctrb}{\value{ketpicctra}}%
-\settowidth{\Width}{{\color{#6}\tmpcontentsb}}\setlength{\Width}{-1\Width}%
-\settoheight{\Height}{{\color{#6}\tmpcontentsb}}\settodepth{\Depth}{{\color{#6}\tmpcontentsb}}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(\theketpicctrb,-#3){\hspace*{\Width}\raisebox{\Height}{{\color{#6}\tmpcontentsb}}}%
-\settowidth{\Width}{{\color{#6}\tmpcontentsb}}\setlength{\Width}{-1\Width}%
-\settoheight{\Height}{{\color{#6}\tmpcontentsb}}\settodepth{\Depth}{{\color{#6}\tmpcontentsb}}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(\theketpicctrb,\theketpicctrc){\hspace*{\Width}\raisebox{\Height}{{\color{#6}\tmpcontentsb}}}%
-%
-\else%
-\addtocounter{ketpicctra}{9}%
-\setcounter{ketpicctrb}{#2}%
-\addtocounter{ketpicctrb}{\value{ketpicctra}}%
-\settowidth{\Width}{{\color{#6}\tmpcontents}}\setlength{\Width}{-1\Width}%
-\settoheight{\Height}{{\color{#6}\tmpcontents}}\settodepth{\Depth}{{\color{#6}\tmpcontents}}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(\theketpicctrb,-#3){\hspace*{\Width}\raisebox{\Height}{{\color{#6}\tmpcontents}}}%
-\settowidth{\Width}{{\color{#6}\tmpcontents}}\setlength{\Width}{-1\Width}%
-\settoheight{\Height}{{\color{#6}\tmpcontents}}\settodepth{\Depth}{{\color{#6}\tmpcontents}}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(\theketpicctrb,\theketpicctrc){\hspace*{\Width}\raisebox{\Height}{{\color{#6}\tmpcontents}}}%
-%
-\fi%
-}%
-%
-\ifnum\theketpicctra<#4%
-\repeat%
-}%
-}%
-\def\tmpcontents{%
-{\unitlength=1mm%
-\begin{picture}%
-( 0.02000, 1.00000)( -0.01000, 0.00000)%
-\special{pn 8}%
-%
-\special{pn #1}%
-\special{pa 0 0}\special{pa 0 -39}%
-\special{fp}%
-\end{picture}}%%
-}%
-\def\tmpcontentsb{%
-{\unitlength=0.1mm%
-\begin{picture}%
-( 0.02000, 1.00000)( -0.01000, 0.00000)%
-\special{pn 8}%
-%
-\special{pn #1}%
-\special{pa 0 0}\special{pa 0 -4}%
-\special{fp}%
-\end{picture}}%%
-}%
-{\unitlength=0.1mm%
-\setcounter{ketpicctrc}{#2}%
-\addtocounter{ketpicctrc}{#4}%
-\setcounter{ketpicctra}{0}%
-\setcounter{ketpicctra}{1}%
-\addtocounter{ketpicctra}{-1}%
-%
-{%
-\loop%
-\addtocounter{ketpicctra}{1}%
-\setcounter{ketpicctrb}{\value{ketpicctra}}%
-\addtocounter{ketpicctrb}{9}%
-%
-{%
-\ifnum %
-\theketpicctrb>#5 %
-\setcounter{ketpicctrb}{-#3}%
-\addtocounter{ketpicctrb}{-\value{ketpicctra}}%
-\settowidth{\Width}{{\color{#6}\tmpcontentsb}}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{{\color{#6}\tmpcontentsb}}\settodepth{\Depth}{{\color{#6}\tmpcontentsb}}\setlength{\Height}{\Depth}%
-\put(#2,\theketpicctrb){\hspace*{\Width}\raisebox{\Height}{{\color{#6}\tmpcontentsb}}}%
-\settowidth{\Width}{{\color{#6}\tmpcontentsb}}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{{\color{#6}\tmpcontentsb}}\settodepth{\Depth}{{\color{#6}\tmpcontentsb}}\setlength{\Height}{\Depth}%
-\put(\theketpicctrc,\theketpicctrb){\hspace*{\Width}\raisebox{\Height}{{\color{#6}\tmpcontentsb}}}%
-%
-\else%
-\addtocounter{ketpicctra}{9}%
-\setcounter{ketpicctrb}{-#3}%
-\addtocounter{ketpicctrb}{-\value{ketpicctra}}%
-\settowidth{\Width}{{\color{#6}\tmpcontents}}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{{\color{#6}\tmpcontents}}\settodepth{\Depth}{{\color{#6}\tmpcontents}}\setlength{\Height}{\Depth}%
-\put(#2,\theketpicctrb){\hspace*{\Width}\raisebox{\Height}{{\color{#6}\tmpcontents}}}%
-\settowidth{\Width}{{\color{#6}\tmpcontents}}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{{\color{#6}\tmpcontents}}\settodepth{\Depth}{{\color{#6}\tmpcontents}}\setlength{\Height}{\Depth}%
-\put(\theketpicctrc,\theketpicctrb){\hspace*{\Width}\raisebox{\Height}{{\color{#6}\tmpcontents}}}%
-%
-\fi%
-}%
-%
-\ifnum\theketpicctra<#5%
-\repeat%
-}%
-}%
-%
-}%
-\newcommand{\shadeframep}[6][1]{%
-\def\tmpcontents{%
-{\unitlength=1mm%
-\begin{picture}%
-( 100.00000, 100.00000)( 0.00000, 0.00000)%
-\special{pn 8}%
-%
-{\color{#1}%
-\special{pa 0 0}\special{pa 3937 0}\special{pa 3937 -3937}\special{pa 0 -3937}\special{pa 0 0}%
-\special{sh 1}\special{ip}%
-}%
-\end{picture}}%%
-}%
-{\unitlength=0.1mm%
-%
-{%
-\ifnum %
-#4<100 %
-%
-{%
-\ifnum %
-#5<100 %
-\settowidth{\Width}{{\color{#6}\scalebox{0.0#4}[0.0#5]{\tmpcontents}}}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{{\color{#6}\scalebox{0.0#4}[0.0#5]{\tmpcontents}}}\settodepth{\Depth}{{\color{#6}\scalebox{0.0#4}[0.0#5]{\tmpcontents}}}\setlength{\Height}{-\Height}%
-\put(#2,-#3){\hspace*{\Width}\raisebox{\Height}{{\color{#6}\scalebox{0.0#4}[0.0#5]{\tmpcontents}}}}%
-%
-\else%
-\settowidth{\Width}{{\color{#6}\scalebox{0.0#4}[0.#5]{\tmpcontents}}}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{{\color{#6}\scalebox{0.0#4}[0.#5]{\tmpcontents}}}\settodepth{\Depth}{{\color{#6}\scalebox{0.0#4}[0.#5]{\tmpcontents}}}\setlength{\Height}{-\Height}%
-\put(#2,-#3){\hspace*{\Width}\raisebox{\Height}{{\color{#6}\scalebox{0.0#4}[0.#5]{\tmpcontents}}}}%
-%
-\fi%
-}%
-%
-\else%
-%
-{%
-\ifnum %
-#4<1000 %
-%
-{%
-\ifnum %
-#5<100 %
-\settowidth{\Width}{{\color{#6}\scalebox{0.#4}[0.0#5]{\tmpcontents}}}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{{\color{#6}\scalebox{0.#4}[0.0#5]{\tmpcontents}}}\settodepth{\Depth}{{\color{#6}\scalebox{0.#4}[0.0#5]{\tmpcontents}}}\setlength{\Height}{-\Height}%
-\put(#2,-#3){\hspace*{\Width}\raisebox{\Height}{{\color{#6}\scalebox{0.#4}[0.0#5]{\tmpcontents}}}}%
-%
-\else%
-\settowidth{\Width}{{\color{#6}\scalebox{0.#4}[0.#5]{\tmpcontents}}}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{{\color{#6}\scalebox{0.#4}[0.#5]{\tmpcontents}}}\settodepth{\Depth}{{\color{#6}\scalebox{0.#4}[0.#5]{\tmpcontents}}}\setlength{\Height}{-\Height}%
-\put(#2,-#3){\hspace*{\Width}\raisebox{\Height}{{\color{#6}\scalebox{0.#4}[0.#5]{\tmpcontents}}}}%
-%
-\fi%
-}%
-%
-\else%
-%
-{%
-\ifnum %
-#5<100 %
-\settowidth{\Width}{{\color{#6}\scalebox{1}[0.0#5]{\tmpcontents}}}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{{\color{#6}\scalebox{1}[0.0#5]{\tmpcontents}}}\settodepth{\Depth}{{\color{#6}\scalebox{1}[0.0#5]{\tmpcontents}}}\setlength{\Height}{-\Height}%
-\put(#2,-#3){\hspace*{\Width}\raisebox{\Height}{{\color{#6}\scalebox{1}[0.0#5]{\tmpcontents}}}}%
-\setcounter{ketpicctra}{#2}%
-\addtocounter{ketpicctra}{#4}%
-\settowidth{\Width}{{\color{#6}\scalebox{1}[0.0#5]{\tmpcontents}}}\setlength{\Width}{-1\Width}%
-\settoheight{\Height}{{\color{#6}\scalebox{1}[0.0#5]{\tmpcontents}}}\settodepth{\Depth}{{\color{#6}\scalebox{1}[0.0#5]{\tmpcontents}}}\setlength{\Height}{-\Height}%
-\put(\theketpicctra,-#3){\hspace*{\Width}\raisebox{\Height}{{\color{#6}\scalebox{1}[0.0#5]{\tmpcontents}}}}%
-%
-\else%
-\settowidth{\Width}{{\color{#6}\scalebox{1}[0.#5]{\tmpcontents}}}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{{\color{#6}\scalebox{1}[0.#5]{\tmpcontents}}}\settodepth{\Depth}{{\color{#6}\scalebox{1}[0.#5]{\tmpcontents}}}\setlength{\Height}{-\Height}%
-\put(#2,-#3){\hspace*{\Width}\raisebox{\Height}{{\color{#6}\scalebox{1}[0.#5]{\tmpcontents}}}}%
-\setcounter{ketpicctra}{#2}%
-\addtocounter{ketpicctra}{#4}%
-\settowidth{\Width}{{\color{#6}\scalebox{1}[0.#5]{\tmpcontents}}}\setlength{\Width}{-1\Width}%
-\settoheight{\Height}{{\color{#6}\scalebox{1}[0.#5]{\tmpcontents}}}\settodepth{\Depth}{{\color{#6}\scalebox{1}[0.#5]{\tmpcontents}}}\setlength{\Height}{-\Height}%
-\put(\theketpicctra,-#3){\hspace*{\Width}\raisebox{\Height}{{\color{#6}\scalebox{1}[0.#5]{\tmpcontents}}}}%
-%
-\fi%
-}%
-%
-\fi%
-}%
-%
-\fi%
-}%
-}%
-%
-}%
-\newcommand{\popframe}[9][8]{%
-{\unitlength=0.1mm%
-\ketcalcwidth{#9}%
-\setcounter{ketpicctrh}{\value{ketpicctra}}%
-\ketcalcheight{#9}%
-\setcounter{ketpicctri}{\value{ketpicctra}}%
-\ketcalcdepth{#9}%
-\addtocounter{ketpicctri}{\value{ketpicctra}}%
-\addtocounter{ketpicctrh}{30}%
-\addtocounter{ketpicctri}{30}%
-\setcounter{ketpicctrf}{#2}%
-\multiply\value{ketpicctrf} by 10%
-\addtocounter{ketpicctrf}{15}%
-\setcounter{ketpicctrg}{#3}%
-\multiply\value{ketpicctrg} by 10%
-\addtocounter{ketpicctrg}{15}%
-\shadeframep[#5]{\theketpicctrf}{\theketpicctrg}{\theketpicctrh}{\theketpicctri}{#5}%
-\setcounter{ketpicctrf}{#2}%
-\multiply\value{ketpicctrf} by 10%
-\setcounter{ketpicctrg}{#3}%
-\multiply\value{ketpicctrg} by 10%
-\shadeframep[#7]{\theketpicctrf}{\theketpicctrg}{\theketpicctrh}{\theketpicctri}{#7}%
-\boxlinep[#1]{\theketpicctrf}{\theketpicctrg}{\theketpicctrh}{\theketpicctri}{#8}%
-\addtocounter{ketpicctrf}{15}%
-\setcounter{ketpicctra}{\value{ketpicctri}}%
-\divide\value{ketpicctra} by 2%
-\addtocounter{ketpicctrg}{\value{ketpicctra}}%
-\multiply\value{ketpicctrg} by -1%
-\settowidth{\Width}{{#9}}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{{#9}}\settodepth{\Depth}{{#9}}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(\theketpicctrf,\theketpicctrg){\hspace*{\Width}\raisebox{\Height}{{#9}}}%
-}%
-%
-}%
-\newcommand{\colorframe}[7][8]{%
-{\unitlength=0.1mm%
-\ketcalcwidth{#7}%
-\setcounter{ketpicctrh}{\value{ketpicctra}}%
-\ketcalcheight{#7}%
-\setcounter{ketpicctri}{\value{ketpicctra}}%
-\ketcalcdepth{#7}%
-\addtocounter{ketpicctri}{\value{ketpicctra}}%
-\addtocounter{ketpicctrh}{30}%
-\addtocounter{ketpicctri}{30}%
-\setcounter{ketpicctrf}{#2}%
-\multiply\value{ketpicctrf} by 10%
-\setcounter{ketpicctrg}{#3}%
-\multiply\value{ketpicctrg} by 10%
-\shadeframep[#4]{\theketpicctrf}{\theketpicctrg}{\theketpicctrh}{\theketpicctri}{#5}%
-\boxlinep[#1]{\theketpicctrf}{\theketpicctrg}{\theketpicctrh}{\theketpicctri}{#6}%
-\addtocounter{ketpicctrf}{15}%
-\setcounter{ketpicctra}{\value{ketpicctri}}%
-\divide\value{ketpicctra} by 2%
-\addtocounter{ketpicctrg}{\value{ketpicctra}}%
-\multiply\value{ketpicctrg} by -1%
-\settowidth{\Width}{{#7}}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{{#7}}\settodepth{\Depth}{{#7}}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(\theketpicctrf,\theketpicctrg){\hspace*{\Width}\raisebox{\Height}{{#7}}}%
-}%
-%
-}%
-\newcommand{\colorframes}[7][8]{%
-{\unitlength=0.1mm%
-\ketcalcwidth{#7}%
-\setcounter{ketpicctrh}{\value{ketpicctra}}%
-\ketcalcheight{#7}%
-\setcounter{ketpicctri}{\value{ketpicctra}}%
-\ketcalcdepth{#7}%
-\addtocounter{ketpicctri}{\value{ketpicctra}}%
-\addtocounter{ketpicctrh}{30}%
-\addtocounter{ketpicctri}{30}%
-\setcounter{ketpicctrf}{#2}%
-\multiply\value{ketpicctrf} by 10%
-\setcounter{ketpicctra}{\value{ketpicctrh}}%
-\divide\value{ketpicctra} by 2%
-\addtocounter{ketpicctrf}{-\value{ketpicctra}}%
-\setcounter{ketpicctrg}{#3}%
-\multiply\value{ketpicctrg} by 10%
-\shadeframep[#5]{\theketpicctrf}{\theketpicctrg}{\theketpicctrh}{\theketpicctri}{#5}%
-\boxlinep[#1]{\theketpicctrf}{\theketpicctrg}{\theketpicctrh}{\theketpicctri}{#6}%
-\addtocounter{ketpicctrf}{15}%
-\setcounter{ketpicctra}{\value{ketpicctri}}%
-\divide\value{ketpicctra} by 2%
-\addtocounter{ketpicctrg}{\value{ketpicctra}}%
-\multiply\value{ketpicctrg} by -1%
-\settowidth{\Width}{{#7}}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{{#7}}\settodepth{\Depth}{{#7}}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(\theketpicctrf,\theketpicctrg){\hspace*{\Width}\raisebox{\Height}{{#7}}}%
-}%
-%
-}%
diff --git a/texmf-dist/tex/latex/ketcindy/ketlayer2e.sty b/texmf-dist/tex/latex/ketcindy/ketlayer2e.sty
deleted file mode 100644
index 62d2ad67..00000000
--- a/texmf-dist/tex/latex/ketcindy/ketlayer2e.sty
+++ /dev/null
@@ -1,3155 +0,0 @@
-%Copyright (C) 2014 Setsuo Takato, KETpic developer team
-%*
-%* This program is free software: you can redistribute it and/or modify
-%* it under the terms of the GNU General Public License as published by
-%* the Free Software Foundation; either version 3 of the License, or
-%* (at your option) any later version.
-%*
-%* This program is distributed in the hope that it will be useful,
-%* but WITHOUT ANY WARRANTY; without even the implied warranty of
-%* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-%* GNU General Public License for more details.
-%*
-%* You should have received a copy of the GNU General Public License
-%* along with this program. If not, see <http://www.gnu.org/licenses/>%%% ketlayer2e.sty 2017-1-11 8:5
-%%% ketlayer2e170109.sce 2017-1-10 13:47
-% 2017.01.09%
-\newlength{\layercurrentunit}%
-\newcommand{\ketshadebox}[7][0]{%
-\def\tmpcontents{%
-{\unitlength=1mm%
-\begin{picture}%
-( 100.00000, 100.00000)( 0.00000, 0.00000)%
-\linethickness{0.008in}%
-%
-{\color{#7}
-\polygon*(0.00010,0.00010)(99.99990,0.00010)(99.99990,99.99990)(0.00010,99.99990)%
-(0.00010,0.00010)
-}%
-\end{picture}}%%
-}%
-%
-{%
-\ifnum %
-#4<10 %
-%
-{%
-\ifnum %
-#5<10 %
-\settowidth{\Width}{{\color{#7}\scalebox{0.0#4}[0.0#5]{\tmpcontents}}}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{{\color{#7}\scalebox{0.0#4}[0.0#5]{\tmpcontents}}}\settodepth{\Depth}{{\color{#7}\scalebox{0.0#4}[0.0#5]{\tmpcontents}}}\setlength{\Height}{-\Height}%
-\put(#2,-#3){\hspace*{\Width}\raisebox{\Height}{{\color{#7}\scalebox{0.0#4}[0.0#5]{\tmpcontents}}}}%
-%
-\else%
-\settowidth{\Width}{{\color{#7}\scalebox{0.0#4}[0.#5]{\tmpcontents}}}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{{\color{#7}\scalebox{0.0#4}[0.#5]{\tmpcontents}}}\settodepth{\Depth}{{\color{#7}\scalebox{0.0#4}[0.#5]{\tmpcontents}}}\setlength{\Height}{-\Height}%
-\put(#2,-#3){\hspace*{\Width}\raisebox{\Height}{{\color{#7}\scalebox{0.0#4}[0.#5]{\tmpcontents}}}}%
-%
-\fi%
-}%
-%
-\else%
-%
-{%
-\ifnum %
-#5<10 %
-\settowidth{\Width}{{\color{#7}\scalebox{0.#4}[0.0#5]{\tmpcontents}}}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{{\color{#7}\scalebox{0.#4}[0.0#5]{\tmpcontents}}}\settodepth{\Depth}{{\color{#7}\scalebox{0.#4}[0.0#5]{\tmpcontents}}}\setlength{\Height}{-\Height}%
-\put(#2,-#3){\hspace*{\Width}\raisebox{\Height}{{\color{#7}\scalebox{0.#4}[0.0#5]{\tmpcontents}}}}%
-%
-\else%
-\settowidth{\Width}{{\color{#7}\scalebox{0.#4}[0.#5]{\tmpcontents}}}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{{\color{#7}\scalebox{0.#4}[0.#5]{\tmpcontents}}}\settodepth{\Depth}{{\color{#7}\scalebox{0.#4}[0.#5]{\tmpcontents}}}\setlength{\Height}{-\Height}%
-\put(#2,-#3){\hspace*{\Width}\raisebox{\Height}{{\color{#7}\scalebox{0.#4}[0.#5]{\tmpcontents}}}}%
-%
-\fi%
-}%
-%
-\fi%
-}%
-%
-{%
-\ifnum %
-#1>0 %
-\boxframese{#2}{#3}{#4}{#5}{}%
-%
-\fi%
-}%
-%
-}%
-\newcommand{\shadeboxse}[7][0]{%
-\ketshadebox[#1]{#2}{#3}{#4}{#5}{#6}{#7}%
-%
-}%
-\newcommand{\shadeboxc}[7][0]{%
-\setcounter{ketpicctrd}{-#4}%
-\divide\value{ketpicctrd} by 2%
-\addtocounter{ketpicctrd}{#2}%
-\setcounter{ketpicctre}{-#4}%
-\divide\value{ketpicctre} by 2%
-\addtocounter{ketpicctre}{#3}%
-\ketshadebox[#1]{\theketpicctrd}{\theketpicctre}{#4}{#5}{#6}{#7}%
-%
-}%
-\newcommand{\shadeboxe}[7][0]{%
-\setcounter{ketpicctrd}{#2}%
-\setcounter{ketpicctre}{-#4}%
-\divide\value{ketpicctre} by 2%
-\addtocounter{ketpicctre}{#3}%
-\ketshadebox[#1]{\theketpicctrd}{\theketpicctre}{#4}{#5}{#6}{#7}%
-%
-}%
-\newcommand{\shadeboxw}[7][0]{%
-\setcounter{ketpicctrd}{-#4}%
-\addtocounter{ketpicctrd}{#2}%
-\setcounter{ketpicctre}{-#4}%
-\divide\value{ketpicctre} by 2%
-\addtocounter{ketpicctre}{#3}%
-\ketshadebox[#1]{\theketpicctrd}{\theketpicctre}{#4}{#5}{#6}{#7}%
-%
-}%
-\newcommand{\shadeboxn}[7][0]{%
-\setcounter{ketpicctrd}{-#4}%
-\divide\value{ketpicctrd} by 2%
-\addtocounter{ketpicctrd}{#2}%
-\setcounter{ketpicctre}{#3}%
-\addtocounter{ketpicctre}{-#4}%
-\ketshadebox[#1]{\theketpicctrd}{\theketpicctre}{#4}{#5}{#6}{#7}%
-%
-}%
-\newcommand{\shadeboxs}[7][0]{%
-\setcounter{ketpicctrd}{-#4}%
-\divide\value{ketpicctrd} by 2%
-\addtocounter{ketpicctrd}{#2}%
-\setcounter{ketpicctre}{#3}%
-\ketshadebox[#1]{\theketpicctrd}{\theketpicctre}{#4}{#5}{#6}{#7}%
-%
-}%
-\newcommand{\shadeboxnw}[7][0]{%
-\setcounter{ketpicctrd}{-#4}%
-\addtocounter{ketpicctrd}{#2}%
-\setcounter{ketpicctre}{#3}%
-\addtocounter{ketpicctre}{-#4}%
-\ketshadebox[#1]{\theketpicctrd}{\theketpicctre}{#4}{#5}{#6}{#7}%
-%
-}%
-\newcommand{\shadeboxne}[7][0]{%
-\setcounter{ketpicctrd}{#2}%
-\setcounter{ketpicctre}{#3}%
-\addtocounter{ketpicctre}{-#4}%
-\ketshadebox[#1]{\theketpicctrd}{\theketpicctre}{#4}{#5}{#6}{#7}%
-%
-}%
-\newcommand{\shadeboxsw}[7][0]{%
-\setcounter{ketpicctrd}{-#4}%
-\addtocounter{ketpicctrd}{#2}%
-\setcounter{ketpicctre}{#3}%
-\ketshadebox[#1]{\theketpicctrd}{\theketpicctre}{#4}{#5}{#6}{#7}%
-%
-}%
-\newcommand{\eraser}[5][0]{%
-\def\tmpcontents{%
-{\unitlength=1mm%
-\begin{picture}%
-( 100.00000, 100.00000)( 0.00000, 0.00000)%
-\linethickness{0.008in}%
-%
-{\color[cmyk]{0,0,0,0}
-\polygon*(0.00010,0.00010)(99.99990,0.00010)(99.99990,99.99990)(0.00010,99.99990)%
-(0.00010,0.00010)
-}%
-\end{picture}}%%
-}%
-%
-{%
-\ifnum %
-#4<10 %
-%
-{%
-\ifnum %
-#5<10 %
-\settowidth{\Width}{\scalebox{0.0#4}[0.0#5]{\tmpcontents}}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{\scalebox{0.0#4}[0.0#5]{\tmpcontents}}\settodepth{\Depth}{\scalebox{0.0#4}[0.0#5]{\tmpcontents}}\setlength{\Height}{-\Height}%
-\put(#2,-#3){\hspace*{\Width}\raisebox{\Height}{\scalebox{0.0#4}[0.0#5]{\tmpcontents}}}%
-%
-\else%
-\settowidth{\Width}{\scalebox{0.0#4}[0.#5]{\tmpcontents}}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{\scalebox{0.0#4}[0.#5]{\tmpcontents}}\settodepth{\Depth}{\scalebox{0.0#4}[0.#5]{\tmpcontents}}\setlength{\Height}{-\Height}%
-\put(#2,-#3){\hspace*{\Width}\raisebox{\Height}{\scalebox{0.0#4}[0.#5]{\tmpcontents}}}%
-%
-\fi%
-}%
-%
-\else%
-%
-{%
-\ifnum %
-#5<10 %
-\settowidth{\Width}{\scalebox{0.#4}[0.0#5]{\tmpcontents}}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{\scalebox{0.#4}[0.0#5]{\tmpcontents}}\settodepth{\Depth}{\scalebox{0.#4}[0.0#5]{\tmpcontents}}\setlength{\Height}{-\Height}%
-\put(#2,-#3){\hspace*{\Width}\raisebox{\Height}{\scalebox{0.#4}[0.0#5]{\tmpcontents}}}%
-%
-\else%
-\settowidth{\Width}{\scalebox{0.#4}[0.#5]{\tmpcontents}}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{\scalebox{0.#4}[0.#5]{\tmpcontents}}\settodepth{\Depth}{\scalebox{0.#4}[0.#5]{\tmpcontents}}\setlength{\Height}{-\Height}%
-\put(#2,-#3){\hspace*{\Width}\raisebox{\Height}{\scalebox{0.#4}[0.#5]{\tmpcontents}}}%
-%
-\fi%
-}%
-%
-\fi%
-}%
-%
-{%
-\ifnum %
-#1>0 %
-\boxframese{#2}{#3}{#4}{#5}{}%
-%
-\fi%
-}%
-%
-}%
-\newcommand{\eraserse}[5][0]{%
-\eraser[#1]{#2}{#3}{#4}{#5}%
-%
-}%
-\newcommand{\eraserc}[5][0]{%
-\setcounter{ketpicctrd}{-#4}%
-\divide\value{ketpicctrd} by 2%
-\addtocounter{ketpicctrd}{#2}%
-\setcounter{ketpicctre}{-#4}%
-\divide\value{ketpicctre} by 2%
-\addtocounter{ketpicctre}{#3}%
-\eraser[#1]{\theketpicctrd}{\theketpicctre}{#4}{#5}%
-%
-}%
-\newcommand{\erasere}[5][0]{%
-\setcounter{ketpicctrd}{#2}%
-\setcounter{ketpicctre}{-#4}%
-\divide\value{ketpicctre} by 2%
-\addtocounter{ketpicctre}{#3}%
-\eraser[#1]{\theketpicctrd}{\theketpicctre}{#4}{#5}%
-%
-}%
-\newcommand{\eraserw}[5][0]{%
-\setcounter{ketpicctrd}{-#4}%
-\addtocounter{ketpicctrd}{#2}%
-\setcounter{ketpicctre}{-#4}%
-\divide\value{ketpicctre} by 2%
-\addtocounter{ketpicctre}{#3}%
-\eraser[#1]{\theketpicctrd}{\theketpicctre}{#4}{#5}%
-%
-}%
-\newcommand{\erasern}[5][0]{%
-\setcounter{ketpicctrd}{-#4}%
-\divide\value{ketpicctrd} by 2%
-\addtocounter{ketpicctrd}{#2}%
-\setcounter{ketpicctre}{#3}%
-\addtocounter{ketpicctre}{-#4}%
-\eraser[#1]{\theketpicctrd}{\theketpicctre}{#4}{#5}%
-%
-}%
-\newcommand{\erasers}[5][0]{%
-\setcounter{ketpicctrd}{-#4}%
-\divide\value{ketpicctrd} by 2%
-\addtocounter{ketpicctrd}{#2}%
-\setcounter{ketpicctre}{#3}%
-\eraser[#1]{\theketpicctrd}{\theketpicctre}{#4}{#5}%
-%
-}%
-\newcommand{\erasernw}[5][0]{%
-\setcounter{ketpicctrd}{-#4}%
-\addtocounter{ketpicctrd}{#2}%
-\setcounter{ketpicctre}{#3}%
-\addtocounter{ketpicctre}{-#4}%
-\eraser[#1]{\theketpicctrd}{\theketpicctre}{#4}{#5}%
-%
-}%
-\newcommand{\eraserne}[5][0]{%
-\setcounter{ketpicctrd}{#2}%
-\setcounter{ketpicctre}{#3}%
-\addtocounter{ketpicctre}{-#4}%
-\eraser[#1]{\theketpicctrd}{\theketpicctre}{#4}{#5}%
-%
-}%
-\newcommand{\erasersw}[5][0]{%
-\setcounter{ketpicctrd}{-#4}%
-\addtocounter{ketpicctrd}{#2}%
-\setcounter{ketpicctre}{#3}%
-\eraser[#1]{\theketpicctrd}{\theketpicctre}{#4}{#5}%
-%
-}%
-\newcommand{\arrowhead}[4][1]{%
-\def\tmpcontents{%
-{\unitlength=1mm%
-\begin{picture}%
-( 4.00000, 1.23607)( -2.00000, -0.61803)%
-\linethickness{0.008in}%
-%
-\linethickness{0.004in}%
-\polyline(0.00000,0.00000)(2.00000,-0.61803)(2.00000,0.61803)(0.00000,0.00000)%
-%
-\linethickness{0.008in}%
-\polygon*(0.00000,0.00000)(2.00000,-0.61803)(2.00000,0.61803)(0.00000,0.00000)\end{picture}}%%
-}%
-\settowidth{\Width}{\rotatebox[origin=c]{#4}{\scalebox{#1}{\tmpcontents}}}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{\rotatebox[origin=c]{#4}{\scalebox{#1}{\tmpcontents}}}\settodepth{\Depth}{\rotatebox[origin=c]{#4}{\scalebox{#1}{\tmpcontents}}}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(#2,-#3){\hspace*{\Width}\raisebox{\Height}{\rotatebox[origin=c]{#4}{\scalebox{#1}{\tmpcontents}}}}%
-%
-}%
-\newcommand{\lineseg}[5][12]{%
-\def\tmpcontents{%
-\setcounter{ketpicctra}{0}%
-\setcounter{ketpicctra}{1}%
-\addtocounter{ketpicctra}{-1}%
-%
-{%
-\loop%
-\addtocounter{ketpicctra}{1}%
-{\unitlength=1mm%
-\begin{picture}%
-( 1.00000, 0.00200)( 0.00000, -0.00100)%
-\linethickness{0.008in}%
-%
-%
-{%
-\ifnum %
-#1<10 %
-\linethickness{0.00#1 in}%
-%
-\else%
-\linethickness{0.0#1 in}%
-%
-\fi%
-}%
-\polyline(0.00000,0.00000)(1.00000,0.00000)%
-%
-\linethickness{0.008in}%
-\end{picture}}%%
-\ifnum\theketpicctra<#4%
-\repeat%
-}%
-%
-}%
-%
-{%
-\ifnum %
-#5>0 %
-%
-{%
-\ifnum %
-#5<90 %
-\settowidth{\Width}{\rotatebox[origin=c]{#5}{\tmpcontents}}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{\rotatebox[origin=c]{#5}{\tmpcontents}}\settodepth{\Depth}{\rotatebox[origin=c]{#5}{\tmpcontents}}\setlength{\Height}{\Depth}%
-\put(#2,-#3){\hspace*{\Width}\raisebox{\Height}{\rotatebox[origin=c]{#5}{\tmpcontents}}}%
-%
-\else%
-\settowidth{\Width}{\rotatebox[origin=c]{#5}{\tmpcontents}}\setlength{\Width}{-1\Width}%
-\settoheight{\Height}{\rotatebox[origin=c]{#5}{\tmpcontents}}\settodepth{\Depth}{\rotatebox[origin=c]{#5}{\tmpcontents}}\setlength{\Height}{\Depth}%
-\put(#2,-#3){\hspace*{\Width}\raisebox{\Height}{\rotatebox[origin=c]{#5}{\tmpcontents}}}%
-%
-\fi%
-}%
-%
-\else%
-%
-{%
-\ifnum %
-#5>-90 %
-\settowidth{\Width}{\rotatebox[origin=c]{#5}{\tmpcontents}}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{\rotatebox[origin=c]{#5}{\tmpcontents}}\settodepth{\Depth}{\rotatebox[origin=c]{#5}{\tmpcontents}}\setlength{\Height}{-\Height}%
-\put(#2,-#3){\hspace*{\Width}\raisebox{\Height}{\rotatebox[origin=c]{#5}{\tmpcontents}}}%
-%
-\else%
-\settowidth{\Width}{\rotatebox[origin=c]{#5}{\tmpcontents}}\setlength{\Width}{-1\Width}%
-\settoheight{\Height}{\rotatebox[origin=c]{#5}{\tmpcontents}}\settodepth{\Depth}{\rotatebox[origin=c]{#5}{\tmpcontents}}\setlength{\Height}{-\Height}%
-\put(#2,-#3){\hspace*{\Width}\raisebox{\Height}{\rotatebox[origin=c]{#5}{\tmpcontents}}}%
-%
-\fi%
-}%
-%
-\fi%
-}%
-%
-}%
-\newcommand{\dashlineseg}[5][12]{%
-\def\tmpcontents{%
-\setcounter{ketpicctra}{0}%
-\setcounter{ketpicctra}{1}%
-\addtocounter{ketpicctra}{-1}%
-%
-{%
-\loop%
-\addtocounter{ketpicctra}{1}%
-{\unitlength=1mm%
-\begin{picture}%
-( 1.00000, 0.00200)( 0.00000, -0.00100)%
-\linethickness{0.008in}%
-%
-%
-{%
-\ifnum %
-#1<10 %
-\linethickness{0.00#1 in}%
-%
-\else%
-\linethickness{0.0#1 in}%
-%
-\fi%
-}%
-\polyline(0.00000,0.00000)(0.50000,0.00000)%
-%
-\linethickness{0.008in}%
-\end{picture}}%%
-\ifnum\theketpicctra<#4%
-\repeat%
-}%
-%
-}%
-%
-{%
-\ifnum %
-#5>0 %
-%
-{%
-\ifnum %
-#5<90 %
-\settowidth{\Width}{\rotatebox[origin=c]{#5}{\tmpcontents}}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{\rotatebox[origin=c]{#5}{\tmpcontents}}\settodepth{\Depth}{\rotatebox[origin=c]{#5}{\tmpcontents}}\setlength{\Height}{\Depth}%
-\put(#2,-#3){\hspace*{\Width}\raisebox{\Height}{\rotatebox[origin=c]{#5}{\tmpcontents}}}%
-%
-\else%
-\settowidth{\Width}{\rotatebox[origin=c]{#5}{\tmpcontents}}\setlength{\Width}{-1\Width}%
-\settoheight{\Height}{\rotatebox[origin=c]{#5}{\tmpcontents}}\settodepth{\Depth}{\rotatebox[origin=c]{#5}{\tmpcontents}}\setlength{\Height}{\Depth}%
-\put(#2,-#3){\hspace*{\Width}\raisebox{\Height}{\rotatebox[origin=c]{#5}{\tmpcontents}}}%
-%
-\fi%
-}%
-%
-\else%
-%
-{%
-\ifnum %
-#5>-90 %
-\settowidth{\Width}{\rotatebox[origin=c]{#5}{\tmpcontents}}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{\rotatebox[origin=c]{#5}{\tmpcontents}}\settodepth{\Depth}{\rotatebox[origin=c]{#5}{\tmpcontents}}\setlength{\Height}{-\Height}%
-\put(#2,-#3){\hspace*{\Width}\raisebox{\Height}{\rotatebox[origin=c]{#5}{\tmpcontents}}}%
-%
-\else%
-\settowidth{\Width}{\rotatebox[origin=c]{#5}{\tmpcontents}}\setlength{\Width}{-1\Width}%
-\settoheight{\Height}{\rotatebox[origin=c]{#5}{\tmpcontents}}\settodepth{\Depth}{\rotatebox[origin=c]{#5}{\tmpcontents}}\setlength{\Height}{-\Height}%
-\put(#2,-#3){\hspace*{\Width}\raisebox{\Height}{\rotatebox[origin=c]{#5}{\tmpcontents}}}%
-%
-\fi%
-}%
-%
-\fi%
-}%
-%
-}%
-\def\arrowline#1#2#3#4{%
-\lineseg[12]{#1}{#2}{#3}{#4}%
-\arrowhead{#1}{#2}{#4}%
-%
-}%
-\newcommand{\arrowlineseg}[5][12]{%
-\lineseg[#1]{#2}{#3}{#4}{#5}%
-\arrowhead{#2}{#3}{#5}%
-%
-}%
-\newcommand{\conversion}[1]{%
-\setcounter{ketpicctra}{#1}%
-\multiply\value{ketpicctra} by 3937%
-\divide\value{ketpicctra} by 100%
-\{\theketpicctra\}%
-%
-}%
-\newcommand{\dispgrid}[2]{%
-\def\tmpcontents{%
-{\unitlength=1mm%
-\begin{picture}%
-( 10.00000, 0.02000)( 0.00000, -0.01000)%
-\linethickness{0.008in}%
-%
-\put(0.00000,0.00000){\circle*{0.304800}}\put(1.00000,0.00000){\circle*{0.304800}}%
-\put(2.00000,0.00000){\circle*{0.304800}}\put(3.00000,0.00000){\circle*{0.304800}}%
-\put(4.00000,0.00000){\circle*{0.304800}}\put(5.00000,0.00000){\circle*{0.304800}}%
-\put(6.00000,0.00000){\circle*{0.304800}}\put(7.00000,0.00000){\circle*{0.304800}}%
-\put(8.00000,0.00000){\circle*{0.304800}}\put(9.00000,0.00000){\circle*{0.304800}}%
-\put(10.00000,0.00000){\circle*{0.304800}}%
-\end{picture}}%%
-}%
-\setcounter{ketpicctre}{#2}%
-\divide\value{ketpicctre} by 10%
-\setcounter{ketpicctrf}{#1}%
-\divide\value{ketpicctrf} by 10%
-\addtocounter{ketpicctrf}{-1}%
-\setcounter{ketpicctra}{0}%
-\setcounter{ketpicctra}{0}%
-\addtocounter{ketpicctra}{-1}%
-%
-{%
-\loop%
-\addtocounter{ketpicctra}{1}%
-\setcounter{ketpicctrd}{0}%
-\addtocounter{ketpicctrd}{-\value{ketpicctra}}%
-\multiply\value{ketpicctrd} by 10%
-\setcounter{ketpicctrc}{0}%
-\setcounter{ketpicctrb}{0}%
-\setcounter{ketpicctrb}{0}%
-\addtocounter{ketpicctrb}{-1}%
-%
-{%
-\loop%
-\addtocounter{ketpicctrb}{1}%
-\settowidth{\Width}{\tmpcontents}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{\tmpcontents}\settodepth{\Depth}{\tmpcontents}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(\theketpicctrc,\theketpicctrd){\hspace*{\Width}\raisebox{\Height}{\tmpcontents}}%
-\addtocounter{ketpicctrc}{10}%
-%
-\ifnum\theketpicctrb<\theketpicctrf%
-\repeat%
-}%
-\setcounter{ketpicctrg}{0}%
-\addtocounter{ketpicctrg}{-\value{ketpicctrd}}%
-\settowidth{\Width}{\theketpicctrg}\setlength{\Width}{-1\Width}%
-\settoheight{\Height}{\theketpicctrg}\settodepth{\Depth}{\theketpicctrg}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(-1,\theketpicctrd){\hspace*{\Width}\raisebox{\Height}{\theketpicctrg}}%
-%
-\ifnum\theketpicctra<\theketpicctre%
-\repeat%
-}%
-%
-{%
-\ifnum %
-\theketpicctrd>-#2 %
-\setcounter{ketpicctrc}{0}%
-\setcounter{ketpicctrb}{0}%
-\setcounter{ketpicctrb}{0}%
-\addtocounter{ketpicctrb}{-1}%
-%
-{%
-\loop%
-\addtocounter{ketpicctrb}{1}%
-\settowidth{\Width}{\tmpcontents}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{\tmpcontents}\settodepth{\Depth}{\tmpcontents}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(\theketpicctrc,-#2){\hspace*{\Width}\raisebox{\Height}{\tmpcontents}}%
-\addtocounter{ketpicctrc}{10}%
-%
-\ifnum\theketpicctrb<\theketpicctrf%
-\repeat%
-}%
-%
-\fi%
-}%
-\def\tmpcontents{%
-{\unitlength=1mm%
-\begin{picture}%
-( 0.02000, 10.00000)( -0.01000, 0.00000)%
-\linethickness{0.008in}%
-%
-\put(0.00000,0.00000){\circle*{0.304800}}\put(0.00000,1.00000){\circle*{0.304800}}%
-\put(0.00000,2.00000){\circle*{0.304800}}\put(0.00000,3.00000){\circle*{0.304800}}%
-\put(0.00000,4.00000){\circle*{0.304800}}\put(0.00000,5.00000){\circle*{0.304800}}%
-\put(0.00000,6.00000){\circle*{0.304800}}\put(0.00000,7.00000){\circle*{0.304800}}%
-\put(0.00000,8.00000){\circle*{0.304800}}\put(0.00000,9.00000){\circle*{0.304800}}%
-\put(0.00000,10.00000){\circle*{0.304800}}%
-\end{picture}}%%
-}%
-\def\tmpcontentsb{%
-{\unitlength=1mm%
-\begin{picture}%
-( 0.02000, 0.02000)( -0.01000, -0.01000)%
-\linethickness{0.008in}%
-%
-\put(0.00000,0.00000){\circle*{0.200000}}
-
-\put(0.00000,0.00000){\circle{0.200000}}
-%
-\end{picture}}%%
-}%
-\setcounter{ketpicctre}{#2}%
-\divide\value{ketpicctre} by 10%
-\addtocounter{ketpicctre}{-1}%
-\setcounter{ketpicctrf}{#1}%
-\divide\value{ketpicctrf} by 10%
-\setcounter{ketpicctra}{0}%
-\setcounter{ketpicctra}{0}%
-\addtocounter{ketpicctra}{-1}%
-%
-{%
-\loop%
-\addtocounter{ketpicctra}{1}%
-\setcounter{ketpicctrd}{0}%
-\addtocounter{ketpicctrd}{\value{ketpicctra}}%
-\multiply\value{ketpicctrd} by 10%
-\setcounter{ketpicctrc}{0}%
-\setcounter{ketpicctrb}{0}%
-\setcounter{ketpicctrb}{0}%
-\addtocounter{ketpicctrb}{-1}%
-%
-{%
-\loop%
-\addtocounter{ketpicctrb}{1}%
-\settowidth{\Width}{\tmpcontents}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{\tmpcontents}\settodepth{\Depth}{\tmpcontents}\setlength{\Height}{-\Height}%
-\put(\theketpicctrd,\theketpicctrc){\hspace*{\Width}\raisebox{\Height}{\tmpcontents}}%
-\addtocounter{ketpicctrc}{-10}%
-%
-\ifnum\theketpicctrb<\theketpicctre%
-\repeat%
-}%
-%
-{%
-\ifnum %
-\theketpicctrc>-#2 %
-\setcounter{ketpicctrb}{0}%
-\setcounter{ketpicctrb}{-#2}%
-\addtocounter{ketpicctrb}{-1}%
-%
-{%
-\loop%
-\addtocounter{ketpicctrb}{1}%
-\settowidth{\Width}{\tmpcontentsb}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{\tmpcontentsb}\settodepth{\Depth}{\tmpcontentsb}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(\theketpicctrd,\theketpicctrb){\hspace*{\Width}\raisebox{\Height}{\tmpcontentsb}}%
-%
-\ifnum\theketpicctrb<\theketpicctrc%
-\repeat%
-}%
-%
-\fi%
-}%
-\setcounter{ketpicctrg}{-#2}%
-\addtocounter{ketpicctrg}{-1}%
-\settowidth{\Width}{\theketpicctrd}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{\theketpicctrd}\settodepth{\Depth}{\theketpicctrd}\setlength{\Height}{-\Height}%
-\put(\theketpicctrd,\theketpicctrg){\hspace*{\Width}\raisebox{\Height}{\theketpicctrd}}%
-%
-\ifnum\theketpicctra<\theketpicctrf%
-\repeat%
-}%
-%
-}%
-\newcommand{\dispgridneg}[2]{%
-\def\tmpcontents{%
-{\unitlength=1mm%
-\begin{picture}%
-( 10.00000, 0.02000)( 0.00000, -0.01000)%
-\linethickness{0.008in}%
-%
-\put(0.00000,0.00000){\circle*{0.304800}}\put(1.00000,0.00000){\circle*{0.304800}}%
-\put(2.00000,0.00000){\circle*{0.304800}}\put(3.00000,0.00000){\circle*{0.304800}}%
-\put(4.00000,0.00000){\circle*{0.304800}}\put(5.00000,0.00000){\circle*{0.304800}}%
-\put(6.00000,0.00000){\circle*{0.304800}}\put(7.00000,0.00000){\circle*{0.304800}}%
-\put(8.00000,0.00000){\circle*{0.304800}}\put(9.00000,0.00000){\circle*{0.304800}}%
-\put(10.00000,0.00000){\circle*{0.304800}}%
-\end{picture}}%%
-}%
-\setcounter{ketpicctre}{#2}%
-\multiply\value{ketpicctre} by -1%
-\divide\value{ketpicctre} by 10%
-\setcounter{ketpicctrf}{#1}%
-\divide\value{ketpicctrf} by 10%
-\addtocounter{ketpicctrf}{-1}%
-\setcounter{ketpicctra}{0}%
-\setcounter{ketpicctra}{0}%
-\addtocounter{ketpicctra}{-1}%
-%
-{%
-\loop%
-\addtocounter{ketpicctra}{1}%
-\setcounter{ketpicctrd}{\value{ketpicctra}}%
-\multiply\value{ketpicctrd} by 10%
-\setcounter{ketpicctrc}{0}%
-\setcounter{ketpicctrb}{0}%
-\setcounter{ketpicctrb}{0}%
-\addtocounter{ketpicctrb}{-1}%
-%
-{%
-\loop%
-\addtocounter{ketpicctrb}{1}%
-\settowidth{\Width}{\tmpcontents}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{\tmpcontents}\settodepth{\Depth}{\tmpcontents}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(\theketpicctrc,\theketpicctrd){\hspace*{\Width}\raisebox{\Height}{\tmpcontents}}%
-\addtocounter{ketpicctrc}{10}%
-%
-\ifnum\theketpicctrb<\theketpicctrf%
-\repeat%
-}%
-\setcounter{ketpicctrg}{0}%
-\addtocounter{ketpicctrg}{-\value{ketpicctrd}}%
-\settowidth{\Width}{\theketpicctrg}\setlength{\Width}{-1\Width}%
-\settoheight{\Height}{\theketpicctrg}\settodepth{\Depth}{\theketpicctrg}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(-1,\theketpicctrd){\hspace*{\Width}\raisebox{\Height}{\theketpicctrg}}%
-%
-\ifnum\theketpicctra<\theketpicctre%
-\repeat%
-}%
-%
-{%
-\ifnum %
-\theketpicctrd>-#2 %
-\setcounter{ketpicctrc}{0}%
-\setcounter{ketpicctrb}{0}%
-\setcounter{ketpicctrb}{0}%
-\addtocounter{ketpicctrb}{-1}%
-%
-{%
-\loop%
-\addtocounter{ketpicctrb}{1}%
-\settowidth{\Width}{\tmpcontents}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{\tmpcontents}\settodepth{\Depth}{\tmpcontents}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(\theketpicctrc,-#2){\hspace*{\Width}\raisebox{\Height}{\tmpcontents}}%
-\addtocounter{ketpicctrc}{10}%
-%
-\ifnum\theketpicctrb<\theketpicctrf%
-\repeat%
-}%
-%
-\fi%
-}%
-\def\tmpcontents{%
-{\unitlength=1mm%
-\begin{picture}%
-( 0.02000, 10.00000)( -0.01000, 0.00000)%
-\linethickness{0.008in}%
-%
-\put(0.00000,0.00000){\circle*{0.304800}}\put(0.00000,1.00000){\circle*{0.304800}}%
-\put(0.00000,2.00000){\circle*{0.304800}}\put(0.00000,3.00000){\circle*{0.304800}}%
-\put(0.00000,4.00000){\circle*{0.304800}}\put(0.00000,5.00000){\circle*{0.304800}}%
-\put(0.00000,6.00000){\circle*{0.304800}}\put(0.00000,7.00000){\circle*{0.304800}}%
-\put(0.00000,8.00000){\circle*{0.304800}}\put(0.00000,9.00000){\circle*{0.304800}}%
-\put(0.00000,10.00000){\circle*{0.304800}}%
-\end{picture}}%%
-}%
-\def\tmpcontentsb{%
-{\unitlength=1mm%
-\begin{picture}%
-( 0.02000, 0.02000)( -0.01000, -0.01000)%
-\linethickness{0.008in}%
-%
-\put(0.00000,0.00000){\circle*{0.200000}}
-
-\put(0.00000,0.00000){\circle{0.200000}}
-%
-\end{picture}}%%
-}%
-\setcounter{ketpicctre}{#2}%
-\multiply\value{ketpicctre} by -1%
-\divide\value{ketpicctre} by 10%
-\addtocounter{ketpicctre}{-1}%
-\setcounter{ketpicctrf}{#1}%
-\divide\value{ketpicctrf} by 10%
-\setcounter{ketpicctra}{0}%
-\setcounter{ketpicctra}{0}%
-\addtocounter{ketpicctra}{-1}%
-%
-{%
-\loop%
-\addtocounter{ketpicctra}{1}%
-\setcounter{ketpicctrd}{0}%
-\addtocounter{ketpicctrd}{\value{ketpicctra}}%
-\multiply\value{ketpicctrd} by 10%
-\setcounter{ketpicctrc}{0}%
-\setcounter{ketpicctrb}{0}%
-\setcounter{ketpicctrb}{0}%
-\addtocounter{ketpicctrb}{-1}%
-%
-{%
-\loop%
-\addtocounter{ketpicctrb}{1}%
-\settowidth{\Width}{\tmpcontents}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{\tmpcontents}\settodepth{\Depth}{\tmpcontents}\setlength{\Height}{\Depth}%
-\put(\theketpicctrd,\theketpicctrc){\hspace*{\Width}\raisebox{\Height}{\tmpcontents}}%
-\addtocounter{ketpicctrc}{10}%
-%
-\ifnum\theketpicctrb<\theketpicctre%
-\repeat%
-}%
-%
-{%
-\ifnum %
-\theketpicctrc>-#2 %
-\setcounter{ketpicctrb}{0}%
-\setcounter{ketpicctrb}{-#2}%
-\addtocounter{ketpicctrb}{-1}%
-%
-{%
-\loop%
-\addtocounter{ketpicctrb}{1}%
-\settowidth{\Width}{\tmpcontentsb}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{\tmpcontentsb}\settodepth{\Depth}{\tmpcontentsb}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(\theketpicctrd,\theketpicctrb){\hspace*{\Width}\raisebox{\Height}{\tmpcontentsb}}%
-%
-\ifnum\theketpicctrb<\theketpicctrc%
-\repeat%
-}%
-%
-\fi%
-}%
-\setcounter{ketpicctrg}{-#2}%
-\addtocounter{ketpicctrg}{1}%
-\settowidth{\Width}{\theketpicctrd}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{\theketpicctrd}\settodepth{\Depth}{\theketpicctrd}\setlength{\Height}{\Depth}%
-\put(\theketpicctrd,\theketpicctrg){\hspace*{\Width}\raisebox{\Height}{\theketpicctrd}}%
-%
-\ifnum\theketpicctra<\theketpicctrf%
-\repeat%
-}%
-%
-}%
-\newenvironment{layer}[3][0]{%
-\setlength{\layercurrentunit}{\unitlength}%
-\unitlength=1 mm%
-\vspace{-\baselineskip}%
-\noindent%
-\hspace*{#1 mm}%
-\begin{picture}(#3,0)(0,0)%
-%
-{%
-\ifnum %
-#3>0 %
-\dispgrid{#2}{#3}%
-%
-\fi%
-}%
-%
-{%
-\ifnum %
-#3<0 %
-\dispgridneg{#2}{#3}%
-%
-\fi%
-}%
-}{%
-\end{picture}%
-\setlength{\unitlength}{\layercurrentunit}%
-%
-}%
-\newenvironment{layerv}[3][0]{%
-\setlength{\layercurrentunit}{\unitlength}%
-\unitlength=1 mm%
-\vspace*{-\baselineskip}%
-\vspace*{#2 mm}%
-
-\setcounter{ketpicctrj}{-#2}%
-\noindent%
-\hspace*{#1 mm}%
-\begin{picture}(100,0)(0,0)%
-%
-{%
-\ifnum %
-#3>0 %
-\setlength{\Width}{\textwidth}%
-\addtolength{\Width}{-#1 mm}%
-\setcounter{ketpicctri}{0}%
-\setcounter{ketpicctri}{1}%
-\addtocounter{ketpicctri}{-1}%
-%
-{%
-\loop%
-\addtocounter{ketpicctri}{1}%
-%
-{%
-\ifdim %
-\theketpicctri mm>\Width %
-\addtocounter{ketpicctri}{500}%
-%
-\fi%
-}%
-%
-\ifnum\theketpicctri<400%
-\repeat%
-}%
-\addtocounter{ketpicctri}{-500}%
-\addtocounter{ketpicctri}{-1}%
-\dispgrid{\theketpicctri}{#3}%
-%
-\fi%
-}%
-}{%
-\end{picture}%
-\vspace*{\theketpicctrj mm}%
-\setlength{\unitlength}{\layercurrentunit}%
-%
-}%
-\newenvironment{layerg}[2][1]{%
-\setlength{\layercurrentunit}{\unitlength}%
-\unitlength=1 mm%
-\vspace*{-\baselineskip}%
-\ketcalcheight{#2}%
-\setcounter{ketpicctrj}{\value{ketpicctra}}%
-\ketcalcdepth{#2}%
-\addtocounter{ketpicctrj}{\value{ketpicctra}}%
-\vspace*{-\theketpicctrj mm}%
-
-\noindent%
-\begin{picture}(100,0)(0,0)%
-%
-{%
-\ifnum %
-#1>0 %
-\setlength{\Width}{\textwidth}%
-\addtolength{\Width}{-#1 mm}%
-\setcounter{ketpicctri}{0}%
-\setcounter{ketpicctri}{1}%
-\addtocounter{ketpicctri}{-1}%
-%
-{%
-\loop%
-\addtocounter{ketpicctri}{1}%
-%
-{%
-\ifdim %
-\theketpicctri mm>\Width %
-\addtocounter{ketpicctri}{500}%
-%
-\fi%
-}%
-%
-\ifnum\theketpicctri<400%
-\repeat%
-}%
-\addtocounter{ketpicctri}{-500}%
-\addtocounter{ketpicctri}{-1}%
-\dispgrid{\theketpicctri}{\theketpicctrj}%
-%
-\fi%
-}%
-}{%
-\end{picture}%
-\vspace*{\theketpicctrj mm}%
-\setlength{\unitlength}{\layercurrentunit}%
-%
-}%
-\newcommand{\putnotec}[3]{%
-\settowidth{\Width}{#3}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{#3}\settodepth{\Depth}{#3}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(#1,-#2){\hspace*{\Width}\raisebox{\Height}{#3}}%
-%
-}%
-\newcommand{\putnotee}[3]{%
-\settowidth{\Width}{#3}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{#3}\settodepth{\Depth}{#3}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(#1,-#2){\hspace*{\Width}\raisebox{\Height}{#3}}%
-%
-}%
-\newcommand{\putnotew}[3]{%
-\settowidth{\Width}{#3}\setlength{\Width}{-1\Width}%
-\settoheight{\Height}{#3}\settodepth{\Depth}{#3}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(#1,-#2){\hspace*{\Width}\raisebox{\Height}{#3}}%
-%
-}%
-\newcommand{\putnotes}[3]{%
-\settowidth{\Width}{#3}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{#3}\settodepth{\Depth}{#3}\setlength{\Height}{-\Height}%
-\put(#1,-#2){\hspace*{\Width}\raisebox{\Height}{#3}}%
-%
-}%
-\newcommand{\putnoten}[3]{%
-\settowidth{\Width}{#3}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{#3}\settodepth{\Depth}{#3}\setlength{\Height}{\Depth}%
-\put(#1,-#2){\hspace*{\Width}\raisebox{\Height}{#3}}%
-%
-}%
-\newcommand{\putnotene}[3]{%
-\settowidth{\Width}{#3}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{#3}\settodepth{\Depth}{#3}\setlength{\Height}{\Depth}%
-\put(#1,-#2){\hspace*{\Width}\raisebox{\Height}{#3}}%
-%
-}%
-\newcommand{\putnotenw}[3]{%
-\settowidth{\Width}{#3}\setlength{\Width}{-1\Width}%
-\settoheight{\Height}{#3}\settodepth{\Depth}{#3}\setlength{\Height}{\Depth}%
-\put(#1,-#2){\hspace*{\Width}\raisebox{\Height}{#3}}%
-%
-}%
-\newcommand{\putnotese}[3]{%
-\settowidth{\Width}{#3}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{#3}\settodepth{\Depth}{#3}\setlength{\Height}{-\Height}%
-\put(#1,-#2){\hspace*{\Width}\raisebox{\Height}{#3}}%
-%
-}%
-\newcommand{\putnotesw}[3]{%
-\settowidth{\Width}{#3}\setlength{\Width}{-1\Width}%
-\settoheight{\Height}{#3}\settodepth{\Depth}{#3}\setlength{\Height}{-\Height}%
-\put(#1,-#2){\hspace*{\Width}\raisebox{\Height}{#3}}%
-%
-}%
-\newcommand{\ballonr}[5][8]{%
-\def\tempcontents{%
-{\unitlength=1cm%
-\begin{picture}%
-( 4.00000, 3.50000)( -2.00000, 0.00000)%
-\linethickness{0.008in}%
-%
-%
-{%
-\ifnum %
-#1<10 %
-\linethickness{0.00#1 in}%
-%
-\else%
-\linethickness{0.0#1 in}%
-%
-\fi%
-}%
-\polyline(0.31500,0.66000)(0.31187,0.66265)(0.30427,0.66539)(0.29249,0.66830)(0.27679,0.67148)%
-(0.25744,0.67501)(0.23472,0.67898)(0.20890,0.68347)(0.18024,0.68859)(0.14903,0.69440)%
-(0.11553,0.70101)(0.08002,0.70850)(0.04276,0.71695)(0.00403,0.72646)(-0.03590,0.73711)%
-(-0.07675,0.74900)(-0.11826,0.76220)(-0.16016,0.77681)(-0.20216,0.79292)(-0.24401,0.81061)%
-(-0.28543,0.82997)(-0.32614,0.85109)(-0.36587,0.87406)(-0.40436,0.89896)(-0.44133,0.92588)%
-(-0.47651,0.95492)(-0.50963,0.98615)(-0.54041,1.01967)(-0.56858,1.05557)(-0.59388,1.09393)%
-(-0.61602,1.13484)(-0.63475,1.17838)(-0.64978,1.22466)(-0.66084,1.27374)(-0.66767,1.32573)%
-(-0.66998,1.38072)(-0.66752,1.43877)(-0.66000,1.50000)(-0.67265,1.51154)(-0.69581,1.52188)%
-(-0.72792,1.53157)(-0.76744,1.54117)(-0.81283,1.55123)(-0.86253,1.56232)(-0.91500,1.57500)%
-(-0.96870,1.58982)(-1.02207,1.60734)(-1.07358,1.62812)(-1.12167,1.65272)(-1.16480,1.68169)%
-(-1.20143,1.71560)(-1.23000,1.75500)(-1.24947,1.80016)(-1.26077,1.85015)(-1.26535,1.90376)%
-(-1.26462,1.95976)(-1.26003,2.01695)(-1.25302,2.07410)(-1.24500,2.13000)(-1.23692,2.18365)%
-(-1.22772,2.23494)(-1.21582,2.28399)(-1.19966,2.33091)(-1.17768,2.37580)(-1.14832,2.41880)%
-(-1.11000,2.46000)(-1.06166,2.49946)(-1.00422,2.53695)(-0.93909,2.57220)(-0.86769,2.60491)%
-(-0.79143,2.63481)(-0.71173,2.66160)(-0.63000,2.68500)(-0.54766,2.70473)(-0.46612,2.72050)%
-(-0.38680,2.73203)(-0.31111,2.73903)(-0.24047,2.74121)(-0.17630,2.73830)(-0.12000,2.73000)%
-(-0.09460,2.75467)(-0.06709,2.78128)(-0.03698,2.80930)(-0.00373,2.83822)(0.03317,2.86749)%
-(0.07424,2.89659)(0.12000,2.92500)(0.17096,2.95218)(0.22764,2.97761)(0.29056,3.00076)%
-(0.36024,3.02110)(0.43720,3.03811)(0.52194,3.05125)(0.61500,3.06000)(0.71632,3.06396)%
-(0.82363,3.06329)(0.93405,3.05824)(1.04476,3.04912)(1.15288,3.03618)(1.25558,3.01972)%
-(1.35000,3.00000)(1.43396,2.97717)(1.50797,2.95077)(1.57321,2.92024)(1.63085,2.88498)%
-(1.68208,2.84441)(1.72807,2.79794)(1.77000,2.74500)(1.80872,2.68530)(1.84374,2.61981)%
-(1.87426,2.54981)(1.89946,2.47655)(1.91852,2.40132)(1.93064,2.32537)(1.93500,2.25000)%
-(1.93079,2.17646)(1.91719,2.10603)(1.89340,2.03998)(1.85860,1.97958)(1.81197,1.92610)%
-(1.75271,1.88082)(1.68000,1.84500)(1.69733,1.82055)(1.71432,1.79394)(1.73080,1.76532)%
-(1.74658,1.73483)(1.76150,1.70260)(1.77537,1.66877)(1.78801,1.63348)(1.79925,1.59686)%
-(1.80890,1.55905)(1.81680,1.52020)(1.82276,1.48043)(1.82660,1.43988)(1.82815,1.39870)%
-(1.82722,1.35702)(1.82365,1.31498)(1.81725,1.27272)(1.80784,1.23036)(1.79525,1.18806)%
-(1.77929,1.14594)(1.75980,1.10416)(1.73670,1.06286)(1.70998,1.02223)(1.67968,0.98246)%
-(1.64581,0.94374)(1.60838,0.90626)(1.56741,0.87019)(1.52291,0.83572)(1.47491,0.80304)%
-(1.42342,0.77234)(1.36845,0.74381)(1.31002,0.71762)(1.24815,0.69397)(1.18285,0.67303)%
-(1.11414,0.65501)(1.04204,0.64008)(0.96655,0.62842)(0.88771,0.62024)(0.80552,0.61570)%
-(0.72000,0.61500)(0.70658,0.58034)(0.69258,0.54668)(0.67799,0.51401)(0.66281,0.48234)%
-(0.64705,0.45167)(0.63070,0.42199)(0.61377,0.39331)(0.59625,0.36562)(0.57814,0.33894)%
-(0.55945,0.31324)(0.54018,0.28854)(0.52031,0.26484)(0.49986,0.24214)(0.47883,0.22043)%
-(0.45721,0.19972)(0.43500,0.18000)(0.41221,0.16128)(0.38883,0.14355)(0.36486,0.12683)%
-(0.34031,0.11109)(0.31518,0.09636)(0.28945,0.08262)(0.26314,0.06987)(0.23625,0.05812)%
-(0.20877,0.04737)(0.18070,0.03762)(0.15205,0.02886)(0.12281,0.02109)(0.09299,0.01433)%
-(0.06258,0.00855)(0.03158,0.00378)(0.00000,0.00000)(0.01983,0.01518)(0.03902,0.03070)%
-(0.05757,0.04658)(0.07547,0.06281)(0.09272,0.07939)(0.10934,0.09633)(0.12530,0.11361)%
-(0.14062,0.13125)(0.15530,0.14924)(0.16934,0.16758)(0.18272,0.18627)(0.19547,0.20531)%
-(0.20757,0.22471)(0.21902,0.24445)(0.22983,0.26455)(0.24000,0.28500)(0.24952,0.30580)%
-(0.25840,0.32695)(0.26663,0.34846)(0.27422,0.37031)(0.28116,0.39252)(0.28746,0.41508)%
-(0.29312,0.43799)(0.29812,0.46125)(0.30249,0.48486)(0.30621,0.50883)(0.30929,0.53314)%
-(0.31172,0.55781)(0.31351,0.58283)(0.31465,0.60820)(0.31515,0.63393)(0.31500,0.66000)%
-%
-\linethickness{0.008in}%
-\settowidth{\Width}{{\begin{minipage}{1.8cm}#5\end{minipage}}}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{{\begin{minipage}{1.8cm}#5\end{minipage}}}\settodepth{\Depth}{{\begin{minipage}{1.8cm}#5\end{minipage}}}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(0.5000,1.8000){\hspace*{\Width}\raisebox{\Height}{{\begin{minipage}{1.8cm}#5\end{minipage}}}}%
-%
-%
-\end{picture}}%%
-}%
-\setcounter{ketpicctra}{-#3}%
-\settowidth{\Width}{{\scalebox{#4}{\tempcontents}}}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{{\scalebox{#4}{\tempcontents}}}\settodepth{\Depth}{{\scalebox{#4}{\tempcontents}}}\setlength{\Height}{\Depth}%
-\put(#2,\theketpicctra){\hspace*{\Width}\raisebox{\Height}{{\scalebox{#4}{\tempcontents}}}}%
-%
-}%
-\newcommand{\ballonl}[5][8]{%
-\def\tempcontents{%
-{\unitlength=1cm%
-\begin{picture}%
-( 5.00000, 2.50000)( -2.50000, 0.00000)%
-\linethickness{0.008in}%
-%
-%
-{%
-\ifnum %
-#1<10 %
-\linethickness{0.00#1 in}%
-%
-\else%
-\linethickness{0.0#1 in}%
-%
-\fi%
-}%
-\polyline(-0.57200,0.56100)(-0.66502,0.50474)(-0.75287,0.45596)(-0.83608,0.41418)%
-(-0.91517,0.37896)(-0.99068,0.34982)(-1.06311,0.32633)(-1.13300,0.30800)(-1.20087,0.29439)%
-(-1.26724,0.28503)(-1.33264,0.27947)(-1.39759,0.27725)(-1.46262,0.27790)(-1.52825,0.28097)%
-(-1.59500,0.28600)(-1.66316,0.29276)(-1.73209,0.30198)(-1.80088,0.31459)(-1.86866,0.33154)%
-(-1.93453,0.35380)(-1.99760,0.38230)(-2.05700,0.41800)(-2.11187,0.46151)(-2.16154,0.51214)%
-(-2.20539,0.56886)(-2.24279,0.63064)(-2.27311,0.69644)(-2.29572,0.76523)(-2.31000,0.83600)%
-(-2.31548,0.90773)(-2.31232,0.97953)(-2.30083,1.05052)(-2.28134,1.11983)(-2.25416,1.18660)%
-(-2.21960,1.24995)(-2.17800,1.30900)(-2.12966,1.36289)(-2.07491,1.41075)(-2.01405,1.45170)%
-(-1.94742,1.48487)(-1.87532,1.50939)(-1.79807,1.52439)(-1.71600,1.52900)(-1.73655,1.60873)%
-(-1.74760,1.68448)(-1.74979,1.75622)(-1.74378,1.82389)(-1.73021,1.88744)(-1.70974,1.94683)%
-(-1.68300,2.00200)(-1.65065,2.05290)(-1.61334,2.09949)(-1.57171,2.14172)(-1.52641,2.17953)%
-(-1.47810,2.21288)(-1.42741,2.24172)(-1.37500,2.26600)(-1.32132,2.28578)(-1.26601,2.30158)%
-(-1.20854,2.31404)(-1.14835,2.32378)(-1.08489,2.33143)(-1.01763,2.33763)(-0.94600,2.34300)%
-(-0.86985,2.34798)(-0.79052,2.35223)(-0.70976,2.35517)(-0.62929,2.35627)(-0.55085,2.35498)%
-(-0.47618,2.35074)(-0.40700,2.34300)(-0.34466,2.33128)(-0.28894,2.31535)(-0.23922,2.29505)%
-(-0.19488,2.27022)(-0.15531,2.24071)(-0.11989,2.20636)(-0.08800,2.16700)(-0.05903,2.12248)%
-(-0.03237,2.07263)(-0.00739,2.01731)(0.01653,1.95634)(0.03998,1.88957)(0.06360,1.81685)%
-(0.08800,1.73800)(0.14258,1.73395)(0.19323,1.72765)(0.24018,1.71905)(0.28370,1.70812)%
-(0.32401,1.69482)(0.36136,1.67913)(0.39600,1.66100)(0.42817,1.64040)(0.45812,1.61730)%
-(0.48608,1.59166)(0.51231,1.56344)(0.53704,1.53262)(0.56052,1.49915)(0.58300,1.46300)%
-(0.60454,1.42421)(0.62448,1.38306)(0.64198,1.33994)(0.65622,1.29521)(0.66636,1.24923)%
-(0.67157,1.20237)(0.67100,1.15500)(0.66413,1.10751)(0.65163,1.06036)(0.63448,1.01405)%
-(0.61367,0.96907)(0.59016,0.92591)(0.56495,0.88505)(0.53900,0.84700)(0.51304,0.81212)%
-(0.48675,0.78032)(0.45955,0.75138)(0.43086,0.72510)(0.40009,0.70124)(0.36666,0.67962)%
-(0.33000,0.66000)(0.28952,0.64218)(0.24465,0.62594)(0.19480,0.61107)(0.13939,0.59735)%
-(0.07784,0.58458)(0.00957,0.57253)(-0.06600,0.56100)(-0.06660,0.54413)(-0.06703,0.52723)%
-(-0.06729,0.51028)(-0.06738,0.49328)(-0.06729,0.47624)(-0.06703,0.45916)(-0.06660,0.44204)%
-(-0.06600,0.42487)(-0.06523,0.40767)(-0.06428,0.39041)(-0.06316,0.37312)(-0.06187,0.35578)%
-(-0.06041,0.33840)(-0.05878,0.32098)(-0.05698,0.30351)(-0.05500,0.28600)(-0.05285,0.26845)%
-(-0.05053,0.25085)(-0.04804,0.23321)(-0.04537,0.21553)(-0.04254,0.19781)(-0.03953,0.18004)%
-(-0.03635,0.16223)(-0.03300,0.14437)(-0.02948,0.12648)(-0.02578,0.10854)(-0.02191,0.09056)%
-(-0.01787,0.07253)(-0.01366,0.05446)(-0.00928,0.03635)(-0.00473,0.01820)(0.00000,0.00000)%
-(-0.02187,0.02752)(-0.04348,0.05440)(-0.06484,0.08063)(-0.08594,0.10622)(-0.10678,0.13116)%
-(-0.12736,0.15546)(-0.14768,0.17912)(-0.16775,0.20212)(-0.18756,0.22449)(-0.20711,0.24621)%
-(-0.22640,0.26729)(-0.24544,0.28772)(-0.26421,0.30751)(-0.28273,0.32665)(-0.30100,0.34515)%
-(-0.31900,0.36300)(-0.33675,0.38021)(-0.35423,0.39677)(-0.37146,0.41269)(-0.38844,0.42797)%
-(-0.40515,0.44260)(-0.42161,0.45659)(-0.43781,0.46993)(-0.45375,0.48262)(-0.46943,0.49468)%
-(-0.48486,0.50609)(-0.50003,0.51685)(-0.51494,0.52697)(-0.52959,0.53644)(-0.54398,0.54527)%
-(-0.55812,0.55346)(-0.57200,0.56100)%
-%
-\linethickness{0.008in}%
-\settowidth{\Width}{{\begin{minipage}{1.5cm}#5\end{minipage}}}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{{\begin{minipage}{1.5cm}#5\end{minipage}}}\settodepth{\Depth}{{\begin{minipage}{1.5cm}#5\end{minipage}}}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(-0.8000,1.2000){\hspace*{\Width}\raisebox{\Height}{{\begin{minipage}{1.5cm}#5\end{minipage}}}}%
-%
-%
-\end{picture}}%%
-}%
-\setcounter{ketpicctra}{-#3}%
-\settowidth{\Width}{{\scalebox{#4}{\tempcontents}}}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{{\scalebox{#4}{\tempcontents}}}\settodepth{\Depth}{{\scalebox{#4}{\tempcontents}}}\setlength{\Height}{\Depth}%
-\put(#2,\theketpicctra){\hspace*{\Width}\raisebox{\Height}{{\scalebox{#4}{\tempcontents}}}}%
-%
-}%
-\newcommand{\lefthand}[3][16]{%
-\def\tempcontents{%
-{\unitlength=1cm%
-\begin{picture}%
-( 1.01000, 0.82000)( -1.00000, -0.80000)%
-\linethickness{0.008in}%
-%
-%
-{%
-\ifnum %
-#1<10 %
-\linethickness{0.00#1 in}%
-%
-\else%
-\linethickness{0.0#1 in}%
-%
-\fi%
-}%
-\polyline(-0.82419,-0.69564)(-0.78908,-0.66318)(-0.75158,-0.63725)(-0.71246,-0.61684)%
-(-0.67248,-0.60097)(-0.63240,-0.58865)(-0.59300,-0.57888)(-0.55504,-0.57068)(-0.51928,-0.56304)%
-(-0.48649,-0.55497)(-0.45744,-0.54549)(-0.43288,-0.53361)(-0.41280,-0.51898)(-0.39570,-0.50254)%
-(-0.37987,-0.48534)(-0.36363,-0.46845)(-0.34530,-0.45295)(-0.32358,-0.43973)(-0.29944,-0.42879)%
-(-0.27467,-0.41976)(-0.25107,-0.41230)(-0.23044,-0.40605)(-0.21452,-0.40067)(-0.20374,-0.39585)%
-(-0.19724,-0.39136)(-0.19411,-0.38695)(-0.19341,-0.38238)(-0.19423,-0.37742)(-0.19592,-0.37195)%
-(-0.19858,-0.36627)(-0.20245,-0.36070)(-0.20775,-0.35558)(-0.21472,-0.35126)(-0.22356,-0.34804)%
-(-0.23405,-0.34593)(-0.24580,-0.34478)(-0.25843,-0.34446)(-0.27152,-0.34481)(-0.28469,-0.34568)%
-(-0.29753,-0.34694)(-0.30966,-0.34843)(-0.32067,-0.35001)(-0.33016,-0.35154)(-0.33774,-0.35286)%
-\polyline(-0.41839,-0.43100)(-0.40862,-0.42173)(-0.39536,-0.40850)(-0.37893,-0.39183)%
-(-0.35961,-0.37226)(-0.33771,-0.35032)(-0.31352,-0.32655)(-0.28734,-0.30146)(-0.25947,-0.27560)%
-(-0.23021,-0.24949)(-0.19985,-0.22367)(-0.16898,-0.19861)(-0.13874,-0.17463)(-0.11037,-0.15207)%
-(-0.08509,-0.13123)(-0.06413,-0.11244)(-0.04790,-0.09575)(-0.03554,-0.08081)(-0.02614,-0.06722)%
-(-0.01872,-0.05461)(-0.01239,-0.04261)(-0.00683,-0.03113)(-0.00249,-0.02050)(0.00015,-0.01101)%
-(0.00061,-0.00300)(-0.00156,0.00320)(-0.00679,0.00711)(-0.01539,0.00804)(-0.02769,0.00535)%
-(-0.04401,-0.00164)(-0.06467,-0.01354)(-0.08964,-0.03035)(-0.11867,-0.05169)(-0.15155,-0.07719)%
-(-0.18802,-0.10645)(-0.22772,-0.13897)(-0.26909,-0.17335)(-0.31003,-0.20776)(-0.34845,-0.24036)%
-(-0.38225,-0.26930)(-0.40932,-0.29275)(-0.42756,-0.30887)(-0.43488,-0.31583)(-0.42916,-0.31178)%
-(-0.40831,-0.29489)%
-\polyline(-0.38311,-0.27221)(-0.38240,-0.26776)(-0.38210,-0.26354)(-0.38219,-0.25954)%
-(-0.38266,-0.25575)(-0.38347,-0.25218)(-0.38462,-0.24881)(-0.38607,-0.24564)(-0.38782,-0.24266)%
-(-0.38983,-0.23987)(-0.39209,-0.23727)(-0.39458,-0.23485)(-0.39729,-0.23260)(-0.40018,-0.23051)%
-(-0.40324,-0.22859)(-0.40644,-0.22682)(-0.40978,-0.22521)(-0.41322,-0.22374)(-0.41676,-0.22241)%
-(-0.42036,-0.22122)(-0.42401,-0.22016)(-0.42768,-0.21922)(-0.43137,-0.21840)(-0.43504,-0.21770)%
-(-0.43868,-0.21710)(-0.44227,-0.21661)(-0.44578,-0.21621)(-0.44920,-0.21591)(-0.45251,-0.21569)%
-(-0.45568,-0.21555)(-0.45870,-0.21549)(-0.46155,-0.21551)(-0.46420,-0.21558)(-0.46664,-0.21572)%
-(-0.46884,-0.21591)(-0.47079,-0.21615)(-0.47246,-0.21644)(-0.47384,-0.21676)%
-\polyline(-0.50409,-0.24700)(-0.49723,-0.24301)(-0.49144,-0.23910)(-0.48667,-0.23526)%
-(-0.48284,-0.23151)(-0.47990,-0.22784)(-0.47780,-0.22427)(-0.47648,-0.22078)(-0.47587,-0.21740)%
-(-0.47593,-0.21411)(-0.47658,-0.21093)(-0.47778,-0.20786)(-0.47946,-0.20489)(-0.48156,-0.20204)%
-(-0.48403,-0.19931)(-0.48681,-0.19669)(-0.48984,-0.19420)(-0.49306,-0.19184)(-0.49641,-0.18961)%
-(-0.49984,-0.18751)(-0.50329,-0.18555)(-0.50672,-0.18373)(-0.51014,-0.18205)(-0.51354,-0.18050)%
-(-0.51692,-0.17909)(-0.52029,-0.17782)(-0.52363,-0.17668)(-0.52695,-0.17568)(-0.53025,-0.17481)%
-(-0.53352,-0.17407)(-0.53677,-0.17347)(-0.53998,-0.17300)(-0.54317,-0.17266)(-0.54633,-0.17245)%
-(-0.54946,-0.17237)(-0.55256,-0.17243)(-0.55562,-0.17261)(-0.55864,-0.17291)(-0.56163,-0.17335)%
-(-0.56458,-0.17391)%
-\polyline(-0.58978,-0.20416)(-0.58464,-0.19911)(-0.58011,-0.19420)(-0.57622,-0.18941)%
-(-0.57296,-0.18473)(-0.57035,-0.18018)(-0.56839,-0.17573)(-0.56710,-0.17139)(-0.56647,-0.16715)%
-(-0.56652,-0.16301)(-0.56726,-0.15897)(-0.56868,-0.15502)(-0.57081,-0.15115)(-0.57364,-0.14737)%
-(-0.57718,-0.14366)(-0.58147,-0.14010)(-0.58662,-0.13698)(-0.59277,-0.13468)(-0.60005,-0.13357)%
-(-0.60861,-0.13403)(-0.61859,-0.13643)(-0.63011,-0.14114)(-0.64323,-0.14845)(-0.65761,-0.15822)%
-(-0.67283,-0.17027)(-0.68845,-0.18437)(-0.70404,-0.20032)(-0.71919,-0.21791)(-0.73345,-0.23692)%
-(-0.74652,-0.25717)(-0.75858,-0.27848)(-0.76993,-0.30070)(-0.78085,-0.32369)(-0.79166,-0.34729)%
-(-0.80265,-0.37135)(-0.81410,-0.39571)(-0.82633,-0.42023)(-0.83963,-0.44475)(-0.85430,-0.46912)%
-(-0.87062,-0.49319)(-0.88891,-0.51680)(-0.90946,-0.53981)(-0.93256,-0.56206)%
-%
-\linethickness{0.008in}%
-\end{picture}}%%
-}%
-\setcounter{ketpicctra}{-#3}%
-\settowidth{\Width}{{\tempcontents}}\setlength{\Width}{-1\Width}%
-\settoheight{\Height}{{\tempcontents}}\settodepth{\Depth}{{\tempcontents}}\setlength{\Height}{-\Height}%
-\put(#2,\theketpicctra){\hspace*{\Width}\raisebox{\Height}{{\tempcontents}}}%
-%
-}%
-\newcommand{\righthand}[3][16]{%
-\def\tempcontents{%
-{\unitlength=1cm%
-\begin{picture}%
-( 1.01000, 0.82000)( -0.01000, -0.80000)%
-\linethickness{0.008in}%
-%
-%
-{%
-\ifnum %
-#1<10 %
-\linethickness{0.00#1 in}%
-%
-\else%
-\linethickness{0.0#1 in}%
-%
-\fi%
-}%
-\polyline(0.82419,-0.69564)(0.78908,-0.66318)(0.75158,-0.63725)(0.71246,-0.61684)%
-(0.67248,-0.60097)(0.63240,-0.58865)(0.59300,-0.57888)(0.55504,-0.57068)(0.51928,-0.56304)%
-(0.48649,-0.55497)(0.45744,-0.54549)(0.43288,-0.53361)(0.41280,-0.51898)(0.39570,-0.50254)%
-(0.37987,-0.48534)(0.36363,-0.46845)(0.34530,-0.45295)(0.32358,-0.43973)(0.29944,-0.42879)%
-(0.27467,-0.41976)(0.25107,-0.41230)(0.23044,-0.40605)(0.21452,-0.40067)(0.20374,-0.39585)%
-(0.19724,-0.39136)(0.19411,-0.38695)(0.19341,-0.38238)(0.19423,-0.37742)(0.19592,-0.37195)%
-(0.19858,-0.36627)(0.20245,-0.36070)(0.20775,-0.35558)(0.21472,-0.35126)(0.22356,-0.34804)%
-(0.23405,-0.34593)(0.24580,-0.34478)(0.25843,-0.34446)(0.27152,-0.34481)(0.28469,-0.34568)%
-(0.29753,-0.34694)(0.30966,-0.34843)(0.32067,-0.35001)(0.33016,-0.35154)(0.33774,-0.35286)%
-\polyline(0.41839,-0.43100)(0.40862,-0.42173)(0.39536,-0.40850)(0.37893,-0.39183)%
-(0.35961,-0.37226)(0.33771,-0.35032)(0.31352,-0.32655)(0.28734,-0.30146)(0.25947,-0.27560)%
-(0.23021,-0.24949)(0.19985,-0.22367)(0.16898,-0.19861)(0.13874,-0.17463)(0.11037,-0.15207)%
-(0.08509,-0.13123)(0.06413,-0.11244)(0.04790,-0.09575)(0.03554,-0.08081)(0.02614,-0.06722)%
-(0.01872,-0.05461)(0.01239,-0.04261)(0.00683,-0.03113)(0.00249,-0.02050)(-0.00015,-0.01101)%
-(-0.00061,-0.00300)(0.00156,0.00320)(0.00679,0.00711)(0.01539,0.00804)(0.02769,0.00535)%
-(0.04401,-0.00164)(0.06467,-0.01354)(0.08964,-0.03035)(0.11867,-0.05169)(0.15155,-0.07719)%
-(0.18802,-0.10645)(0.22772,-0.13897)(0.26909,-0.17335)(0.31003,-0.20776)(0.34845,-0.24036)%
-(0.38225,-0.26930)(0.40932,-0.29275)(0.42756,-0.30887)(0.43488,-0.31583)(0.42916,-0.31178)%
-(0.40831,-0.29489)%
-\polyline(0.38311,-0.27221)(0.38240,-0.26776)(0.38210,-0.26354)(0.38219,-0.25954)%
-(0.38266,-0.25575)(0.38347,-0.25218)(0.38462,-0.24881)(0.38607,-0.24564)(0.38782,-0.24266)%
-(0.38983,-0.23987)(0.39209,-0.23727)(0.39458,-0.23485)(0.39729,-0.23260)(0.40018,-0.23051)%
-(0.40324,-0.22859)(0.40644,-0.22682)(0.40978,-0.22521)(0.41322,-0.22374)(0.41676,-0.22241)%
-(0.42036,-0.22122)(0.42401,-0.22016)(0.42768,-0.21922)(0.43137,-0.21840)(0.43504,-0.21770)%
-(0.43868,-0.21710)(0.44227,-0.21661)(0.44578,-0.21621)(0.44920,-0.21591)(0.45251,-0.21569)%
-(0.45568,-0.21555)(0.45870,-0.21549)(0.46155,-0.21551)(0.46420,-0.21558)(0.46664,-0.21572)%
-(0.46884,-0.21591)(0.47079,-0.21615)(0.47246,-0.21644)(0.47384,-0.21676)%
-\polyline(0.50409,-0.24700)(0.49723,-0.24301)(0.49144,-0.23910)(0.48667,-0.23526)%
-(0.48284,-0.23151)(0.47990,-0.22784)(0.47780,-0.22427)(0.47648,-0.22078)(0.47587,-0.21740)%
-(0.47593,-0.21411)(0.47658,-0.21093)(0.47778,-0.20786)(0.47946,-0.20489)(0.48156,-0.20204)%
-(0.48403,-0.19931)(0.48681,-0.19669)(0.48984,-0.19420)(0.49306,-0.19184)(0.49641,-0.18961)%
-(0.49984,-0.18751)(0.50329,-0.18555)(0.50672,-0.18373)(0.51014,-0.18205)(0.51354,-0.18050)%
-(0.51692,-0.17909)(0.52029,-0.17782)(0.52363,-0.17668)(0.52695,-0.17568)(0.53025,-0.17481)%
-(0.53352,-0.17407)(0.53677,-0.17347)(0.53998,-0.17300)(0.54317,-0.17266)(0.54633,-0.17245)%
-(0.54946,-0.17237)(0.55256,-0.17243)(0.55562,-0.17261)(0.55864,-0.17291)(0.56163,-0.17335)%
-(0.56458,-0.17391)%
-\polyline(0.58978,-0.20416)(0.58464,-0.19911)(0.58011,-0.19420)(0.57622,-0.18941)%
-(0.57296,-0.18473)(0.57035,-0.18018)(0.56839,-0.17573)(0.56710,-0.17139)(0.56647,-0.16715)%
-(0.56652,-0.16301)(0.56726,-0.15897)(0.56868,-0.15502)(0.57081,-0.15115)(0.57364,-0.14737)%
-(0.57718,-0.14366)(0.58147,-0.14010)(0.58662,-0.13698)(0.59277,-0.13468)(0.60005,-0.13357)%
-(0.60861,-0.13403)(0.61859,-0.13643)(0.63011,-0.14114)(0.64323,-0.14845)(0.65761,-0.15822)%
-(0.67283,-0.17027)(0.68845,-0.18437)(0.70404,-0.20032)(0.71919,-0.21791)(0.73345,-0.23692)%
-(0.74652,-0.25717)(0.75858,-0.27848)(0.76993,-0.30070)(0.78085,-0.32369)(0.79166,-0.34729)%
-(0.80265,-0.37135)(0.81410,-0.39571)(0.82633,-0.42023)(0.83963,-0.44475)(0.85430,-0.46912)%
-(0.87062,-0.49319)(0.88891,-0.51680)(0.90946,-0.53981)(0.93256,-0.56206)%
-%
-\linethickness{0.008in}%
-\end{picture}}%%
-}%
-\setcounter{ketpicctra}{-#3}%
-\settowidth{\Width}{{\tempcontents}}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{{\tempcontents}}\settodepth{\Depth}{{\tempcontents}}\setlength{\Height}{-\Height}%
-\put(#2,\theketpicctra){\hspace*{\Width}\raisebox{\Height}{{\tempcontents}}}%
-%
-}%
-\newcommand{\leftdownhand}[3][16]{%
-\def\tempcontents{%
-{\unitlength=1cm%
-\begin{picture}%
-( 1.01000, 0.82000)( -1.00000, -0.02000)%
-\linethickness{0.008in}%
-%
-%
-{%
-\ifnum %
-#1<10 %
-\linethickness{0.00#1 in}%
-%
-\else%
-\linethickness{0.0#1 in}%
-%
-\fi%
-}%
-\polyline(-0.82419,0.69564)(-0.78908,0.66318)(-0.75158,0.63725)(-0.71246,0.61684)%
-(-0.67248,0.60097)(-0.63240,0.58865)(-0.59300,0.57888)(-0.55504,0.57068)(-0.51928,0.56304)%
-(-0.48649,0.55497)(-0.45744,0.54549)(-0.43288,0.53361)(-0.41280,0.51898)(-0.39570,0.50254)%
-(-0.37987,0.48534)(-0.36363,0.46845)(-0.34530,0.45295)(-0.32358,0.43973)(-0.29944,0.42879)%
-(-0.27467,0.41976)(-0.25107,0.41230)(-0.23044,0.40605)(-0.21452,0.40067)(-0.20374,0.39585)%
-(-0.19724,0.39136)(-0.19411,0.38695)(-0.19341,0.38238)(-0.19423,0.37742)(-0.19592,0.37195)%
-(-0.19858,0.36627)(-0.20245,0.36070)(-0.20775,0.35558)(-0.21472,0.35126)(-0.22356,0.34804)%
-(-0.23405,0.34593)(-0.24580,0.34478)(-0.25843,0.34446)(-0.27152,0.34481)(-0.28469,0.34568)%
-(-0.29753,0.34694)(-0.30966,0.34843)(-0.32067,0.35001)(-0.33016,0.35154)(-0.33774,0.35286)%
-\polyline(-0.41839,0.43100)(-0.40862,0.42173)(-0.39536,0.40850)(-0.37893,0.39183)%
-(-0.35961,0.37226)(-0.33771,0.35032)(-0.31352,0.32655)(-0.28734,0.30146)(-0.25947,0.27560)%
-(-0.23021,0.24949)(-0.19985,0.22367)(-0.16898,0.19861)(-0.13874,0.17463)(-0.11037,0.15207)%
-(-0.08509,0.13123)(-0.06413,0.11244)(-0.04790,0.09575)(-0.03554,0.08081)(-0.02614,0.06722)%
-(-0.01872,0.05461)(-0.01239,0.04261)(-0.00683,0.03113)(-0.00249,0.02050)(0.00015,0.01101)%
-(0.00061,0.00300)(-0.00156,-0.00320)(-0.00679,-0.00711)(-0.01539,-0.00804)(-0.02769,-0.00535)%
-(-0.04401,0.00164)(-0.06467,0.01354)(-0.08964,0.03035)(-0.11867,0.05169)(-0.15155,0.07719)%
-(-0.18802,0.10645)(-0.22772,0.13897)(-0.26909,0.17335)(-0.31003,0.20776)(-0.34845,0.24036)%
-(-0.38225,0.26930)(-0.40932,0.29275)(-0.42756,0.30887)(-0.43488,0.31583)(-0.42916,0.31178)%
-(-0.40831,0.29489)%
-\polyline(-0.38311,0.27221)(-0.38240,0.26776)(-0.38210,0.26354)(-0.38219,0.25954)%
-(-0.38266,0.25575)(-0.38347,0.25218)(-0.38462,0.24881)(-0.38607,0.24564)(-0.38782,0.24266)%
-(-0.38983,0.23987)(-0.39209,0.23727)(-0.39458,0.23485)(-0.39729,0.23260)(-0.40018,0.23051)%
-(-0.40324,0.22859)(-0.40644,0.22682)(-0.40978,0.22521)(-0.41322,0.22374)(-0.41676,0.22241)%
-(-0.42036,0.22122)(-0.42401,0.22016)(-0.42768,0.21922)(-0.43137,0.21840)(-0.43504,0.21770)%
-(-0.43868,0.21710)(-0.44227,0.21661)(-0.44578,0.21621)(-0.44920,0.21591)(-0.45251,0.21569)%
-(-0.45568,0.21555)(-0.45870,0.21549)(-0.46155,0.21551)(-0.46420,0.21558)(-0.46664,0.21572)%
-(-0.46884,0.21591)(-0.47079,0.21615)(-0.47246,0.21644)(-0.47384,0.21676)%
-\polyline(-0.50409,0.24700)(-0.49723,0.24301)(-0.49144,0.23910)(-0.48667,0.23526)%
-(-0.48284,0.23151)(-0.47990,0.22784)(-0.47780,0.22427)(-0.47648,0.22078)(-0.47587,0.21740)%
-(-0.47593,0.21411)(-0.47658,0.21093)(-0.47778,0.20786)(-0.47946,0.20489)(-0.48156,0.20204)%
-(-0.48403,0.19931)(-0.48681,0.19669)(-0.48984,0.19420)(-0.49306,0.19184)(-0.49641,0.18961)%
-(-0.49984,0.18751)(-0.50329,0.18555)(-0.50672,0.18373)(-0.51014,0.18205)(-0.51354,0.18050)%
-(-0.51692,0.17909)(-0.52029,0.17782)(-0.52363,0.17668)(-0.52695,0.17568)(-0.53025,0.17481)%
-(-0.53352,0.17407)(-0.53677,0.17347)(-0.53998,0.17300)(-0.54317,0.17266)(-0.54633,0.17245)%
-(-0.54946,0.17237)(-0.55256,0.17243)(-0.55562,0.17261)(-0.55864,0.17291)(-0.56163,0.17335)%
-(-0.56458,0.17391)%
-\polyline(-0.58978,0.20416)(-0.58464,0.19911)(-0.58011,0.19420)(-0.57622,0.18941)%
-(-0.57296,0.18473)(-0.57035,0.18018)(-0.56839,0.17573)(-0.56710,0.17139)(-0.56647,0.16715)%
-(-0.56652,0.16301)(-0.56726,0.15897)(-0.56868,0.15502)(-0.57081,0.15115)(-0.57364,0.14737)%
-(-0.57718,0.14366)(-0.58147,0.14010)(-0.58662,0.13698)(-0.59277,0.13468)(-0.60005,0.13357)%
-(-0.60861,0.13403)(-0.61859,0.13643)(-0.63011,0.14114)(-0.64323,0.14845)(-0.65761,0.15822)%
-(-0.67283,0.17027)(-0.68845,0.18437)(-0.70404,0.20032)(-0.71919,0.21791)(-0.73345,0.23692)%
-(-0.74652,0.25717)(-0.75858,0.27848)(-0.76993,0.30070)(-0.78085,0.32369)(-0.79166,0.34729)%
-(-0.80265,0.37135)(-0.81410,0.39571)(-0.82633,0.42023)(-0.83963,0.44475)(-0.85430,0.46912)%
-(-0.87062,0.49319)(-0.88891,0.51680)(-0.90946,0.53981)(-0.93256,0.56206)%
-%
-\linethickness{0.008in}%
-\end{picture}}%%
-}%
-\setcounter{ketpicctra}{-#3}%
-\settowidth{\Width}{{\tempcontents}}\setlength{\Width}{-1\Width}%
-\settoheight{\Height}{{\tempcontents}}\settodepth{\Depth}{{\tempcontents}}\setlength{\Height}{\Depth}%
-\put(#2,\theketpicctra){\hspace*{\Width}\raisebox{\Height}{{\tempcontents}}}%
-%
-}%
-\newcommand{\rightdownhand}[3][16]{%
-\def\tempcontents{%
-{\unitlength=1cm%
-\begin{picture}%
-( 1.01000, 0.82000)( -0.01000, -0.02000)%
-\linethickness{0.008in}%
-%
-%
-{%
-\ifnum %
-#1<10 %
-\linethickness{0.00#1 in}%
-%
-\else%
-\linethickness{0.0#1 in}%
-%
-\fi%
-}%
-\polyline(0.82419,0.69564)(0.78908,0.66318)(0.75158,0.63725)(0.71246,0.61684)(0.67248,0.60097)%
-(0.63240,0.58865)(0.59300,0.57888)(0.55504,0.57068)(0.51928,0.56304)(0.48649,0.55497)%
-(0.45744,0.54549)(0.43288,0.53361)(0.41280,0.51898)(0.39570,0.50254)(0.37987,0.48534)%
-(0.36363,0.46845)(0.34530,0.45295)(0.32358,0.43973)(0.29944,0.42879)(0.27467,0.41976)%
-(0.25107,0.41230)(0.23044,0.40605)(0.21452,0.40067)(0.20374,0.39585)(0.19724,0.39136)%
-(0.19411,0.38695)(0.19341,0.38238)(0.19423,0.37742)(0.19592,0.37195)(0.19858,0.36627)%
-(0.20245,0.36070)(0.20775,0.35558)(0.21472,0.35126)(0.22356,0.34804)(0.23405,0.34593)%
-(0.24580,0.34478)(0.25843,0.34446)(0.27152,0.34481)(0.28469,0.34568)(0.29753,0.34694)%
-(0.30966,0.34843)(0.32067,0.35001)(0.33016,0.35154)(0.33774,0.35286)%
-\polyline(0.41839,0.43100)(0.40862,0.42173)(0.39536,0.40850)(0.37893,0.39183)(0.35961,0.37226)%
-(0.33771,0.35032)(0.31352,0.32655)(0.28734,0.30146)(0.25947,0.27560)(0.23021,0.24949)%
-(0.19985,0.22367)(0.16898,0.19861)(0.13874,0.17463)(0.11037,0.15207)(0.08509,0.13123)%
-(0.06413,0.11244)(0.04790,0.09575)(0.03554,0.08081)(0.02614,0.06722)(0.01872,0.05461)%
-(0.01239,0.04261)(0.00683,0.03113)(0.00249,0.02050)(-0.00015,0.01101)(-0.00061,0.00300)%
-(0.00156,-0.00320)(0.00679,-0.00711)(0.01539,-0.00804)(0.02769,-0.00535)(0.04401,0.00164)%
-(0.06467,0.01354)(0.08964,0.03035)(0.11867,0.05169)(0.15155,0.07719)(0.18802,0.10645)%
-(0.22772,0.13897)(0.26909,0.17335)(0.31003,0.20776)(0.34845,0.24036)(0.38225,0.26930)%
-(0.40932,0.29275)(0.42756,0.30887)(0.43488,0.31583)(0.42916,0.31178)(0.40831,0.29489)%
-\polyline(0.38311,0.27221)(0.38240,0.26776)(0.38210,0.26354)(0.38219,0.25954)(0.38266,0.25575)%
-(0.38347,0.25218)(0.38462,0.24881)(0.38607,0.24564)(0.38782,0.24266)(0.38983,0.23987)%
-(0.39209,0.23727)(0.39458,0.23485)(0.39729,0.23260)(0.40018,0.23051)(0.40324,0.22859)%
-(0.40644,0.22682)(0.40978,0.22521)(0.41322,0.22374)(0.41676,0.22241)(0.42036,0.22122)%
-(0.42401,0.22016)(0.42768,0.21922)(0.43137,0.21840)(0.43504,0.21770)(0.43868,0.21710)%
-(0.44227,0.21661)(0.44578,0.21621)(0.44920,0.21591)(0.45251,0.21569)(0.45568,0.21555)%
-(0.45870,0.21549)(0.46155,0.21551)(0.46420,0.21558)(0.46664,0.21572)(0.46884,0.21591)%
-(0.47079,0.21615)(0.47246,0.21644)(0.47384,0.21676)%
-\polyline(0.50409,0.24700)(0.49723,0.24301)(0.49144,0.23910)(0.48667,0.23526)(0.48284,0.23151)%
-(0.47990,0.22784)(0.47780,0.22427)(0.47648,0.22078)(0.47587,0.21740)(0.47593,0.21411)%
-(0.47658,0.21093)(0.47778,0.20786)(0.47946,0.20489)(0.48156,0.20204)(0.48403,0.19931)%
-(0.48681,0.19669)(0.48984,0.19420)(0.49306,0.19184)(0.49641,0.18961)(0.49984,0.18751)%
-(0.50329,0.18555)(0.50672,0.18373)(0.51014,0.18205)(0.51354,0.18050)(0.51692,0.17909)%
-(0.52029,0.17782)(0.52363,0.17668)(0.52695,0.17568)(0.53025,0.17481)(0.53352,0.17407)%
-(0.53677,0.17347)(0.53998,0.17300)(0.54317,0.17266)(0.54633,0.17245)(0.54946,0.17237)%
-(0.55256,0.17243)(0.55562,0.17261)(0.55864,0.17291)(0.56163,0.17335)(0.56458,0.17391)%
-\polyline(0.58978,0.20416)(0.58464,0.19911)(0.58011,0.19420)(0.57622,0.18941)(0.57296,0.18473)%
-(0.57035,0.18018)(0.56839,0.17573)(0.56710,0.17139)(0.56647,0.16715)(0.56652,0.16301)%
-(0.56726,0.15897)(0.56868,0.15502)(0.57081,0.15115)(0.57364,0.14737)(0.57718,0.14366)%
-(0.58147,0.14010)(0.58662,0.13698)(0.59277,0.13468)(0.60005,0.13357)(0.60861,0.13403)%
-(0.61859,0.13643)(0.63011,0.14114)(0.64323,0.14845)(0.65761,0.15822)(0.67283,0.17027)%
-(0.68845,0.18437)(0.70404,0.20032)(0.71919,0.21791)(0.73345,0.23692)(0.74652,0.25717)%
-(0.75858,0.27848)(0.76993,0.30070)(0.78085,0.32369)(0.79166,0.34729)(0.80265,0.37135)%
-(0.81410,0.39571)(0.82633,0.42023)(0.83963,0.44475)(0.85430,0.46912)(0.87062,0.49319)%
-(0.88891,0.51680)(0.90946,0.53981)(0.93256,0.56206)%
-%
-\linethickness{0.008in}%
-\end{picture}}%%
-}%
-\setcounter{ketpicctra}{-#3}%
-\settowidth{\Width}{{\tempcontents}}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{{\tempcontents}}\settodepth{\Depth}{{\tempcontents}}\setlength{\Height}{\Depth}%
-\put(#2,\theketpicctra){\hspace*{\Width}\raisebox{\Height}{{\tempcontents}}}%
-%
-}%
-\newcommand{\cirscoremark}[2][20]{%
-\scalebox{#2}{%
-{\unitlength=0.04mm%
-\begin{picture}%
-( 621.63538, 724.07834)( 277.81039,2339.74153)%
-\linethickness{0.008in}%
-%
-%
-{%
-\ifnum %
-#1<10 %
-\linethickness{0.00#1 in}%
-%
-\else%
-\linethickness{0.0#1 in}%
-%
-\fi%
-}%
-\polyline(581.42100,2343.98000)(517.25871,2339.74153)(461.02448,2347.24212)(412.58070,2365.27538)%
-(371.78973,2392.63490)(338.51396,2428.11428)(312.61577,2470.50710)(293.95752,2518.60696)%
-(282.40160,2571.20746)(277.81039,2627.10220)(280.04626,2685.08476)(288.97159,2743.94874)%
-(304.44877,2802.48773)(326.33983,2859.45726)(354.50312,2913.17008)(388.79455,2961.65333)%
-(429.07001,3002.92940)(475.18538,3035.02067)(526.99654,3055.94950)(584.29056,3063.81987)%
-(645.27185,3058.61222)(706.56216,3042.18351)(764.71444,3016.47226)(816.28162,2983.41699)%
-(857.81665,2944.95624)(885.90654,2903.01977)(899.18278,2859.01098)(899.44577,2813.51741)%
-(888.76853,2767.05643)(869.22406,2720.14541)(842.88537,2673.30172)(811.82546,2627.04273)%
-(778.11735,2581.88580)(743.83405,2538.34830)(711.04855,2496.94761)(681.83387,2458.20108)%
-(658.26302,2422.62609)(642.40900,2390.74000)%
-\polyline(622.08000,2390.74000)(583.00266,2402.49652)(548.77013,2414.09750)(519.23649,2425.79318)%
-(494.25586,2437.83376)(473.68232,2450.46947)(457.36999,2463.95054)(445.17295,2478.52717)%
-(436.94531,2494.44961)(432.54116,2511.96806)(431.81461,2531.33275)(434.61976,2552.79389)%
-(440.81070,2576.60172)(450.23717,2602.92167)(462.70610,2631.08618)(478.00010,2659.95493)%
-(495.90151,2688.38216)(516.19267,2715.22212)(538.65591,2739.32904)(563.05305,2759.58189)%
-(588.80104,2775.27493)(615.03072,2786.04698)(640.86425,2791.54730)(665.42380,2791.42518)%
-(687.83153,2785.32986)(707.22241,2772.93278)(723.15440,2754.63757)(735.69523,2731.73029)%
-(744.94296,2705.54955)(750.99569,2677.43394)(753.95148,2648.72206)(753.90950,2620.74666)%
-(751.06452,2594.33214)(745.77971,2569.40718)(738.43537,2545.80933)(729.41181,2523.37610)%
-(719.08936,2501.94502)(707.84831,2481.35362)(696.06898,2461.43943)(684.13168,2442.03997)%
-(672.41672,2422.99277)(661.30441,2404.13536)(651.17507,2385.30526)(642.40900,2366.34000)%
-%
-\linethickness{0.008in}%
-\end{picture}}%%
-}%
-%
-}%
-\newcommand{\scirscoremark}[2][20]{%
-\scalebox{#2}{%
-{\unitlength=0.04mm%
-\begin{picture}%
-( 535.76632, 538.46556)( 296.43854,1549.10000)%
-\linethickness{0.008in}%
-%
-%
-{%
-\ifnum %
-#1<10 %
-\linethickness{0.00#1 in}%
-%
-\else%
-\linethickness{0.0#1 in}%
-%
-\fi%
-}%
-\polyline(603.78400,1549.10000)(549.09950,1555.72780)(499.93413,1568.59203)(456.23153,1586.89332)%
-(417.93533,1609.83230)(384.98918,1636.60958)(357.33669,1666.42580)(334.92151,1698.48158)%
-(317.68727,1731.97755)(305.57594,1766.14560)(298.51789,1800.43565)(296.43854,1834.39046)%
-(299.26329,1867.55317)(306.88798,1899.47041)(318.93045,1929.72197)(334.85626,1957.90583)%
-(354.12938,1983.62013)(376.21735,2006.48478)(400.63359,2026.40258)(426.92367,2043.47418)%
-(454.63379,2057.80428)(483.32821,2069.48943)(512.90936,2078.47342)(543.58006,2084.56434)%
-(575.55355,2087.56556)(609.01674,2087.28028)(643.39940,2083.50671)(677.27873,2076.03742)%
-(709.18644,2064.66465)(737.66856,2049.18630)(761.96761,2029.67427)(782.32209,2006.59228)%
-(799.04710,1980.43418)(812.45557,1951.69401)(822.64859,1920.88299)(829.34059,1888.54374)%
-(832.20486,1855.22221)(830.91512,1821.46418)(825.26103,1787.76328)(815.30455,1754.49078)%
-(801.14666,1722.00039)(782.88837,1690.64582)(760.63067,1660.78079)(734.47454,1632.75900)%
-(704.52099,1606.93416)(670.87100,1583.66000)%
-%
-\linethickness{0.008in}%
-\end{picture}}%%
-}%
-%
-}%
-\newcommand{\triscoremark}[2][20]{%
-\scalebox{#2}{%
-{\unitlength=0.04mm%
-\begin{picture}%
-( 579.38800, 435.04900)( 235.82100, 892.46100)%
-\linethickness{0.008in}%
-%
-%
-{%
-\ifnum %
-#1<10 %
-\linethickness{0.00#1 in}%
-%
-\else%
-\linethickness{0.0#1 in}%
-%
-\fi%
-}%
-\polyline(577.35500,1327.51000)(567.14266,1313.03444)(556.94693,1298.57080)(546.77105,1284.13099)%
-(536.61828,1269.72692)(526.49187,1255.37053)(516.39507,1241.07373)(506.33113,1226.84844)%
-(496.30330,1212.70658)(486.31483,1198.66006)(476.36899,1184.72081)(466.46901,1170.90075)%
-(456.61814,1157.21179)(446.81965,1143.66586)(437.07678,1130.27487)(427.39279,1117.05074)%
-(417.77092,1104.00540)(408.21442,1091.15076)(398.72656,1078.49874)(389.31057,1066.06126)%
-(379.96972,1053.85024)(370.70724,1041.87760)(361.52641,1030.15526)(352.43045,1018.69513)%
-(343.42264,1007.50914)(334.50621,996.60921)(325.68443,986.00725)(316.96053,975.71519)%
-(308.33779,965.74494)(299.81943,956.10842)(291.40872,946.81756)(283.10891,937.88427)%
-(274.92325,929.32047)(266.85499,921.13808)(258.90739,913.34901)(251.08369,905.96520)%
-(243.38714,898.99856)(235.82100,892.46100)%
-\polyline(235.82100,892.46100)(240.77169,896.42750)(246.54485,900.19895)(253.12099,903.78079)%
-(260.48059,907.17841)(268.60416,910.39725)(277.47218,913.44271)(287.06515,916.32022)%
-(297.36356,919.03519)(308.34792,921.59304)(319.99871,923.99919)(332.29642,926.25905)%
-(345.22156,928.37804)(358.75462,930.36158)(372.87609,932.21508)(387.56647,933.94397)%
-(402.80624,935.55366)(418.57592,937.04957)(434.85598,938.43711)(451.62693,939.72170)%
-(468.86925,940.90877)(486.56345,942.00372)(504.69002,943.01197)(523.22945,943.93895)%
-(542.16224,944.79006)(561.46888,945.57073)(581.12987,946.28637)(601.12569,946.94241)%
-(621.43686,947.54425)(642.04385,948.09731)(662.92717,948.60702)(684.06730,949.07879)%
-(705.44475,949.51803)(727.04001,949.93017)(748.83356,950.32061)(770.80592,950.69479)%
-(792.93757,951.05811)(815.20900,951.41600)%
-\polyline(815.20900,951.41600)(807.14899,961.02180)(799.28294,970.50244)(791.60435,979.86661)%
-(784.10672,989.12298)(776.78356,998.28023)(769.62835,1007.34705)(762.63460,1016.33211)%
-(755.79580,1025.24409)(749.10546,1034.09168)(742.55707,1042.88355)(736.14412,1051.62839)%
-(729.86013,1060.33486)(723.69859,1069.01167)(717.65299,1077.66747)(711.71684,1086.31096)%
-(705.88363,1094.95081)(700.14686,1103.59571)(694.50003,1112.25433)(688.93664,1120.93535)%
-(683.45019,1129.64746)(678.03417,1138.39933)(672.68209,1147.19965)(667.38744,1156.05709)%
-(662.14373,1164.98033)(656.94444,1173.97805)(651.78308,1183.05894)(646.65315,1192.23168)%
-(641.54814,1201.50493)(636.46156,1210.88739)(631.38690,1220.38773)(626.31767,1230.01464)%
-(621.24735,1239.77679)(616.16945,1249.68287)(611.07746,1259.74154)(605.96490,1269.96151)%
-(600.82524,1280.35143)(595.65200,1290.92000)%
-%
-\linethickness{0.008in}%
-\end{picture}}%%
-}%
-%
-}%
-\newcommand{\crosscoremark}[2][20]{%
-\scalebox{#2}{%
-{\unitlength=0.04mm%
-\begin{picture}%
-( 727.79300, 479.77400)( 209.39300, 264.28200)%
-\linethickness{0.008in}%
-%
-%
-{%
-\ifnum %
-#1<10 %
-\linethickness{0.00#1 in}%
-%
-\else%
-\linethickness{0.0#1 in}%
-%
-\fi%
-}%
-\polyline(532.63100,735.92500)(537.69449,712.99599)(542.66769,690.94870)(547.55386,669.75605)%
-(552.35624,649.39093)(557.07808,629.82627)(561.72263,611.03497)(566.29315,592.98994)%
-(570.79288,575.66409)(575.22507,559.03032)(579.59297,543.06155)(583.89984,527.73068)%
-(588.14892,513.01063)(592.34346,498.87430)(596.48672,485.29460)(600.58193,472.24444)%
-(604.63236,459.69673)(608.64125,447.62437)(612.61185,436.00028)(616.54742,424.79737)%
-(620.45119,413.98854)(624.32643,403.54671)(628.17638,393.44477)(632.00429,383.65565)%
-(635.81342,374.15225)(639.60700,364.90747)(643.38830,355.89423)(647.16056,347.08544)%
-(650.92703,338.45400)(654.69096,329.97283)(658.45560,321.61483)(662.22420,313.35291)%
-(666.00002,305.15998)(669.78629,297.00895)(673.58628,288.87273)(677.40322,280.72422)%
-(681.24038,272.53634)(685.10100,264.28200)%
-\polyline(209.39300,311.04000)(229.97986,325.81197)(250.42730,340.29966)(270.74288,354.51284)%
-(290.93421,368.46126)(311.00886,382.15466)(330.97442,395.60280)(350.83847,408.81544)%
-(370.60861,421.80232)(390.29242,434.57320)(409.89748,447.13783)(429.43138,459.50596)%
-(448.90171,471.68735)(468.31604,483.69175)(487.68198,495.52890)(507.00709,507.20857)%
-(526.29897,518.74050)(545.56520,530.13446)(564.81338,541.40018)(584.05108,552.54742)%
-(603.28588,563.58594)(622.52539,574.52549)(641.77717,585.37581)(661.04883,596.14667)%
-(680.34793,606.84782)(699.68208,617.48900)(719.05884,628.07997)(738.48582,638.63049)%
-(757.97060,649.15029)(777.52075,659.64915)(797.14387,670.13681)(816.84755,680.62301)%
-(836.63936,691.11753)(856.52690,701.63010)(876.51775,712.17048)(896.61949,722.74842)%
-(916.83971,733.37368)(937.18600,744.05600)%
-%
-\linethickness{0.008in}%
-\end{picture}}%%
-}%
-%
-}%
-\newcommand{\boxline}[5][8]{%
-\def\tmpcontents{%
-{\unitlength=1mm%
-\begin{picture}%
-( 1.00000, 0.02000)( 0.00000, -0.01000)%
-\linethickness{0.008in}%
-%
-%
-{%
-\ifnum %
-#1<10 %
-\linethickness{0.00#1 in}%
-%
-\else%
-\linethickness{0.0#1 in}%
-%
-\fi%
-}%
-\polyline(0.00000,0.00000)(1.00000,0.00000)%
-%
-\linethickness{0.008in}%
-\end{picture}}%%
-}%
-\setcounter{ketpicctrc}{-#3}%
-\addtocounter{ketpicctrc}{-#5}%
-\setcounter{ketpicctra}{0}%
-\setcounter{ketpicctra}{1}%
-\addtocounter{ketpicctra}{-1}%
-%
-{%
-\loop%
-\addtocounter{ketpicctra}{1}%
-\setcounter{ketpicctrb}{#2}%
-\addtocounter{ketpicctrb}{\value{ketpicctra}}%
-\addtocounter{ketpicctrb}{-1}%
-\settowidth{\Width}{\tmpcontents}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{\tmpcontents}\settodepth{\Depth}{\tmpcontents}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(\theketpicctrb,-#3){\hspace*{\Width}\raisebox{\Height}{\tmpcontents}}%
-\settowidth{\Width}{\tmpcontents}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{\tmpcontents}\settodepth{\Depth}{\tmpcontents}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(\theketpicctrb,\theketpicctrc){\hspace*{\Width}\raisebox{\Height}{\tmpcontents}}%
-%
-\ifnum\theketpicctra<#4%
-\repeat%
-}%
-\def\tmpcontents{%
-{\unitlength=1mm%
-\begin{picture}%
-( 0.02000, 1.00000)( -0.01000, 0.00000)%
-\linethickness{0.008in}%
-%
-%
-{%
-\ifnum %
-#1<10 %
-\linethickness{0.00#1 in}%
-%
-\else%
-\linethickness{0.0#1 in}%
-%
-\fi%
-}%
-\polyline(0.00000,0.00000)(0.00000,1.00000)%
-%
-\linethickness{0.008in}%
-\end{picture}}%%
-}%
-\setcounter{ketpicctrc}{#2}%
-\addtocounter{ketpicctrc}{#4}%
-\setcounter{ketpicctra}{0}%
-\setcounter{ketpicctra}{1}%
-\addtocounter{ketpicctra}{-1}%
-%
-{%
-\loop%
-\addtocounter{ketpicctra}{1}%
-\setcounter{ketpicctrb}{-#3}%
-\addtocounter{ketpicctrb}{-#5}%
-\addtocounter{ketpicctrb}{\value{ketpicctra}}%
-\addtocounter{ketpicctrb}{-1}%
-\settowidth{\Width}{\tmpcontents}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{\tmpcontents}\settodepth{\Depth}{\tmpcontents}\setlength{\Height}{\Depth}%
-\put(#2,\theketpicctrb){\hspace*{\Width}\raisebox{\Height}{\tmpcontents}}%
-\settowidth{\Width}{\tmpcontents}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{\tmpcontents}\settodepth{\Depth}{\tmpcontents}\setlength{\Height}{\Depth}%
-\put(\theketpicctrc,\theketpicctrb){\hspace*{\Width}\raisebox{\Height}{\tmpcontents}}%
-%
-\ifnum\theketpicctra<#5%
-\repeat%
-}%
-%
-}%
-\newcommand{\boxlinene}[5][8]{%
-\boxline[#1]{#2}{#3}{#4}{#5}%
-%
-}%
-\newcommand{\boxlinec}[5][8]{%
-\setcounter{ketpicctrd}{-#4}%
-\divide\value{ketpicctrd} by 2%
-\addtocounter{ketpicctrd}{#2}%
-\setcounter{ketpicctre}{#5}%
-\divide\value{ketpicctre} by 2%
-\addtocounter{ketpicctre}{#3}%
-\boxline[#1]{\theketpicctrd}{\theketpicctre}{#4}{#5}%
-%
-}%
-\newcommand{\boxlinee}[5][8]{%
-\setcounter{ketpicctrd}{#2}%
-\setcounter{ketpicctre}{#5}%
-\divide\value{ketpicctre} by 2%
-\addtocounter{ketpicctre}{#3}%
-\boxline[#1]{\theketpicctrd}{\theketpicctre}{#4}{#5}%
-%
-}%
-\newcommand{\boxlinew}[5][8]{%
-\setcounter{ketpicctrd}{-#4}%
-\addtocounter{ketpicctrd}{#2}%
-\setcounter{ketpicctre}{#5}%
-\divide\value{ketpicctre} by 2%
-\addtocounter{ketpicctre}{#3}%
-\boxline[#1]{\theketpicctrd}{\theketpicctre}{#4}{#5}%
-%
-}%
-\newcommand{\boxlinen}[5][8]{%
-\setcounter{ketpicctrd}{-#4}%
-\divide\value{ketpicctrd} by 2%
-\addtocounter{ketpicctrd}{#2}%
-\setcounter{ketpicctre}{#3}%
-\boxline[#1]{\theketpicctrd}{\theketpicctre}{#4}{#5}%
-%
-}%
-\newcommand{\boxlines}[5][8]{%
-\setcounter{ketpicctrd}{-#4}%
-\divide\value{ketpicctrd} by 2%
-\addtocounter{ketpicctrd}{#2}%
-\setcounter{ketpicctre}{#5}%
-\addtocounter{ketpicctre}{#3}%
-\boxline[#1]{\theketpicctrd}{\theketpicctre}{#4}{#5}%
-%
-}%
-\newcommand{\boxlinenw}[5][0.008]{%
-\setcounter{ketpicctrd}{-#4}%
-\addtocounter{ketpicctrd}{#2}%
-\setcounter{ketpicctre}{#3}%
-\boxline[#1]{\theketpicctrd}{\theketpicctre}{#4}{#5}%
-%
-}%
-\newcommand{\boxlinese}[5][8]{%
-\setcounter{ketpicctrd}{#2}%
-\setcounter{ketpicctre}{#5}%
-\addtocounter{ketpicctre}{#3}%
-\boxline[#1]{\theketpicctrd}{\theketpicctre}{#4}{#5}%
-%
-}%
-\newcommand{\boxlinesw}[5][8]{%
-\setcounter{ketpicctrd}{-#4}%
-\addtocounter{ketpicctrd}{#2}%
-\setcounter{ketpicctre}{#5}%
-\addtocounter{ketpicctre}{#3}%
-\boxline[#1]{\theketpicctrd}{\theketpicctre}{#4}{#5}%
-%
-}%
-\newcommand{\ketboxframe}[6][8]{%
-\def\tmpcontents{%
-\setcounter{ketpicctrf}{#4}%
-\addtocounter{ketpicctrf}{-4}%
-\setlength{\Width}{\theketpicctrf\unitlength}%
-\begin{minipage}{\Width}%
-#6%
-\end{minipage}%
-%
-}%
-\setcounter{ketpicctrg}{#2}%
-\addtocounter{ketpicctrg}{2}%
-\setcounter{ketpicctrh}{-#3}%
-\addtocounter{ketpicctrh}{-2}%
-\settowidth{\Width}{\tmpcontents}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{\tmpcontents}\settodepth{\Depth}{\tmpcontents}\setlength{\Height}{-\Height}%
-\put(\theketpicctrg,\theketpicctrh){\hspace*{\Width}\raisebox{\Height}{\tmpcontents}}%
-\boxline[#1]{#2}{#3}{#4}{#5}%
-%
-}%
-\newcommand{\boxframese}[6][8]{%
-\ketboxframe[#1]{#2}{#3}{#4}{#5}{#6}%
-%
-}%
-\newcommand{\boxframec}[6][8]{%
-\setcounter{ketpicctrd}{-#4}%
-\divide\value{ketpicctrd} by 2%
-\addtocounter{ketpicctrd}{#2}%
-\setcounter{ketpicctre}{-#5}%
-\divide\value{ketpicctre} by 2%
-\addtocounter{ketpicctre}{#3}%
-\ketboxframe[#1]{\theketpicctrd}{\theketpicctre}{#4}{#5}{#6}%
-%
-}%
-\newcommand{\boxframee}[6][8]{%
-\setcounter{ketpicctrd}{#2}%
-\setcounter{ketpicctre}{-#5}%
-\divide\value{ketpicctre} by 2%
-\addtocounter{ketpicctre}{#3}%
-\ketboxframe[#1]{\theketpicctrd}{\theketpicctre}{#4}{#5}{#6}%
-%
-}%
-\newcommand{\boxframew}[6][8]{%
-\setcounter{ketpicctrd}{-#4}%
-\addtocounter{ketpicctrd}{#2}%
-\setcounter{ketpicctre}{-#5}%
-\divide\value{ketpicctre} by 2%
-\addtocounter{ketpicctre}{#3}%
-\ketboxframe[#1]{\theketpicctrd}{\theketpicctre}{#4}{#5}{#6}%
-%
-}%
-\newcommand{\boxframen}[6][8]{%
-\setcounter{ketpicctrd}{-#4}%
-\divide\value{ketpicctrd} by 2%
-\addtocounter{ketpicctrd}{#2}%
-\setcounter{ketpicctre}{#3}%
-\addtocounter{ketpicctre}{-#5}%
-\ketboxframe[#1]{\theketpicctrd}{\theketpicctre}{#4}{#5}{#6}%
-%
-}%
-\newcommand{\boxframes}[6][8]{%
-\setcounter{ketpicctrd}{-#4}%
-\divide\value{ketpicctrd} by 2%
-\addtocounter{ketpicctrd}{#2}%
-\setcounter{ketpicctre}{#3}%
-\ketboxframe[#1]{\theketpicctrd}{\theketpicctre}{#4}{#5}{#6}%
-%
-}%
-\newcommand{\boxframenw}[6][8]{%
-\setcounter{ketpicctrd}{-#4}%
-\addtocounter{ketpicctrd}{#2}%
-\setcounter{ketpicctre}{#3}%
-\addtocounter{ketpicctre}{-#5}%
-\ketboxframe[#1]{\theketpicctrd}{\theketpicctre}{#4}{#5}{#6}%
-%
-}%
-\newcommand{\boxframene}[6][8]{%
-\setcounter{ketpicctrd}{#2}%
-\setcounter{ketpicctre}{#3}%
-\addtocounter{ketpicctre}{-#5}%
-\ketboxframe[#1]{\theketpicctrd}{\theketpicctre}{#4}{#5}{#6}%
-%
-}%
-\newcommand{\boxframesw}[6][8]{%
-\setcounter{ketpicctrd}{-#4}%
-\addtocounter{ketpicctrd}{#2}%
-\setcounter{ketpicctre}{#3}%
-\ketboxframe[#1]{\theketpicctrd}{\theketpicctre}{#4}{#5}{#6}%
-%
-}%
-\newcommand{\circleline}[4][8]{%
-\settowidth{\Width}{\circlemark[#1]{#4}}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{\circlemark[#1]{#4}}\settodepth{\Depth}{\circlemark[#1]{#4}}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(#2,-#3){\hspace*{\Width}\raisebox{\Height}{\circlemark[#1]{#4}}}%
-%
-}%
-\newcommand{\hjaggyline}[4][8]{%
-\def\tmpcontents{%
-{\unitlength=1mm%
-\begin{picture}%
-( 1.00000, 1.00000)( 0.00000, 0.00000)%
-\linethickness{0.008in}%
-%
-%
-{%
-\ifnum %
-#1<10 %
-\linethickness{0.00#1 in}%
-%
-\else%
-\linethickness{0.0#1 in}%
-%
-\fi%
-}%
-\polyline(0.00000,0.00000)(1.00000,1.00000)%
-%
-\linethickness{0.008in}%
-\end{picture}}%%
-}%
-\def\tmpcontentsb{%
-{\unitlength=1mm%
-\begin{picture}%
-( 1.00000, 1.00000)( 0.00000, 0.00000)%
-\linethickness{0.008in}%
-%
-%
-{%
-\ifnum %
-#1<10 %
-\linethickness{0.00#1 in}%
-%
-\else%
-\linethickness{0.0#1 in}%
-%
-\fi%
-}%
-\polyline(0.00000,1.00000)(1.00000,0.00000)%
-%
-\linethickness{0.008in}%
-\end{picture}}%%
-}%
-\setcounter{ketpicctra}{0}%
-\setcounter{ketpicctra}{1}%
-\addtocounter{ketpicctra}{-1}%
-%
-{%
-\loop%
-\addtocounter{ketpicctra}{1}%
-\setcounter{ketpicctrb}{#2}%
-\addtocounter{ketpicctrb}{\value{ketpicctra}}%
-\addtocounter{ketpicctrb}{-1}%
-\setcounter{ketpicctrc}{\value{ketpicctra}}%
-\divide\value{ketpicctrc} by 2%
-\multiply\value{ketpicctrc} by 2%
-%
-{%
-\ifnum %
-\theketpicctrc<\theketpicctra %
-\settowidth{\Width}{\tmpcontents}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{\tmpcontents}\settodepth{\Depth}{\tmpcontents}\setlength{\Height}{\Depth}%
-\put(\theketpicctrb,-#3){\hspace*{\Width}\raisebox{\Height}{\tmpcontents}}%
-%
-\else%
-\settowidth{\Width}{\tmpcontentsb}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{\tmpcontentsb}\settodepth{\Depth}{\tmpcontentsb}\setlength{\Height}{\Depth}%
-\put(\theketpicctrb,-#3){\hspace*{\Width}\raisebox{\Height}{\tmpcontentsb}}%
-%
-\fi%
-}%
-%
-\ifnum\theketpicctra<#4%
-\repeat%
-}%
-%
-}%
-\newcommand{\vjaggyline}[4][8]{%
-\def\tmpcontents{%
-{\unitlength=1mm%
-\begin{picture}%
-( 1.00000, 1.00000)( 0.00000, -1.00000)%
-\linethickness{0.008in}%
-%
-%
-{%
-\ifnum %
-#1<10 %
-\linethickness{0.00#1 in}%
-%
-\else%
-\linethickness{0.0#1 in}%
-%
-\fi%
-}%
-\polyline(0.00000,0.00000)(1.00000,-1.00000)%
-%
-\linethickness{0.008in}%
-\end{picture}}%%
-}%
-\def\tmpcontentsb{%
-{\unitlength=1mm%
-\begin{picture}%
-( 1.00000, 1.00000)( 0.00000, -1.00000)%
-\linethickness{0.008in}%
-%
-%
-{%
-\ifnum %
-#1<10 %
-\linethickness{0.00#1 in}%
-%
-\else%
-\linethickness{0.0#1 in}%
-%
-\fi%
-}%
-\polyline(1.00000,0.00000)(0.00000,-1.00000)%
-%
-\linethickness{0.008in}%
-\end{picture}}%%
-}%
-\setcounter{ketpicctra}{0}%
-\setcounter{ketpicctra}{1}%
-\addtocounter{ketpicctra}{-1}%
-%
-{%
-\loop%
-\addtocounter{ketpicctra}{1}%
-\setcounter{ketpicctrb}{-#3}%
-\addtocounter{ketpicctrb}{-\value{ketpicctra}}%
-\addtocounter{ketpicctrb}{1}%
-\setcounter{ketpicctrc}{\value{ketpicctra}}%
-\divide\value{ketpicctrc} by 2%
-\multiply\value{ketpicctrc} by 2%
-%
-{%
-\ifnum %
-\theketpicctrc<\theketpicctra %
-\settowidth{\Width}{\tmpcontents}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{\tmpcontents}\settodepth{\Depth}{\tmpcontents}\setlength{\Height}{-\Height}%
-\put(#2,\theketpicctrb){\hspace*{\Width}\raisebox{\Height}{\tmpcontents}}%
-%
-\else%
-\settowidth{\Width}{\tmpcontentsb}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{\tmpcontentsb}\settodepth{\Depth}{\tmpcontentsb}\setlength{\Height}{-\Height}%
-\put(#2,\theketpicctrb){\hspace*{\Width}\raisebox{\Height}{\tmpcontentsb}}%
-%
-\fi%
-}%
-%
-\ifnum\theketpicctra<#4%
-\repeat%
-}%
-%
-}%
-\newcommand{\hjaggylineb}[4][8]{%
-\def\tmpcontents{%
-{\unitlength=1mm%
-\begin{picture}%
-( 1.00000, 1.00000)( 0.00000, 0.00000)%
-\linethickness{0.008in}%
-%
-%
-{%
-\ifnum %
-#1<10 %
-\linethickness{0.00#1 in}%
-%
-\else%
-\linethickness{0.0#1 in}%
-%
-\fi%
-}%
-\polyline(0.00000,0.00000)(1.00000,1.00000)%
-%
-\linethickness{0.008in}%
-\end{picture}}%%
-}%
-\def\tmpcontentsb{%
-{\unitlength=1mm%
-\begin{picture}%
-( 1.00000, 1.00000)( 0.00000, 0.00000)%
-\linethickness{0.008in}%
-%
-%
-{%
-\ifnum %
-#1<10 %
-\linethickness{0.00#1 in}%
-%
-\else%
-\linethickness{0.0#1 in}%
-%
-\fi%
-}%
-\polyline(0.00000,1.00000)(1.00000,0.00000)%
-%
-\linethickness{0.008in}%
-\end{picture}}%%
-}%
-\setcounter{ketpicctra}{0}%
-\setcounter{ketpicctra}{1}%
-\addtocounter{ketpicctra}{-1}%
-%
-{%
-\loop%
-\addtocounter{ketpicctra}{1}%
-\setcounter{ketpicctrb}{#2}%
-\addtocounter{ketpicctrb}{\value{ketpicctra}}%
-\addtocounter{ketpicctrb}{-1}%
-\setcounter{ketpicctrc}{\value{ketpicctra}}%
-\divide\value{ketpicctrc} by 2%
-\multiply\value{ketpicctrc} by 2%
-%
-{%
-\ifnum %
-\theketpicctrc<\theketpicctra %
-\settowidth{\Width}{\tmpcontentsb}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{\tmpcontentsb}\settodepth{\Depth}{\tmpcontentsb}\setlength{\Height}{-\Height}%
-\put(\theketpicctrb,-#3){\hspace*{\Width}\raisebox{\Height}{\tmpcontentsb}}%
-%
-\else%
-\settowidth{\Width}{\tmpcontents}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{\tmpcontents}\settodepth{\Depth}{\tmpcontents}\setlength{\Height}{-\Height}%
-\put(\theketpicctrb,-#3){\hspace*{\Width}\raisebox{\Height}{\tmpcontents}}%
-%
-\fi%
-}%
-%
-\ifnum\theketpicctra<#4%
-\repeat%
-}%
-%
-}%
-\newcommand{\vjaggylineb}[4][8]{%
-\def\tmpcontents{%
-{\unitlength=1mm%
-\begin{picture}%
-( 1.00000, 1.00000)( 0.00000, -1.00000)%
-\linethickness{0.008in}%
-%
-%
-{%
-\ifnum %
-#1<10 %
-\linethickness{0.00#1 in}%
-%
-\else%
-\linethickness{0.0#1 in}%
-%
-\fi%
-}%
-\polyline(0.00000,0.00000)(1.00000,-1.00000)%
-%
-\linethickness{0.008in}%
-\end{picture}}%%
-}%
-\def\tmpcontentsb{%
-{\unitlength=1mm%
-\begin{picture}%
-( 1.00000, 1.00000)( 0.00000, -1.00000)%
-\linethickness{0.008in}%
-%
-%
-{%
-\ifnum %
-#1<10 %
-\linethickness{0.00#1 in}%
-%
-\else%
-\linethickness{0.0#1 in}%
-%
-\fi%
-}%
-\polyline(1.00000,0.00000)(0.00000,-1.00000)%
-%
-\linethickness{0.008in}%
-\end{picture}}%%
-}%
-\setcounter{ketpicctra}{0}%
-\setcounter{ketpicctra}{1}%
-\addtocounter{ketpicctra}{-1}%
-%
-{%
-\loop%
-\addtocounter{ketpicctra}{1}%
-\setcounter{ketpicctrb}{-#3}%
-\addtocounter{ketpicctrb}{-\value{ketpicctra}}%
-\addtocounter{ketpicctrb}{1}%
-\setcounter{ketpicctrc}{\value{ketpicctra}}%
-\divide\value{ketpicctrc} by 2%
-\multiply\value{ketpicctrc} by 2%
-%
-{%
-\ifnum %
-\theketpicctrc<\theketpicctra %
-\settowidth{\Width}{\tmpcontentsb}\setlength{\Width}{-1\Width}%
-\settoheight{\Height}{\tmpcontentsb}\settodepth{\Depth}{\tmpcontentsb}\setlength{\Height}{-\Height}%
-\put(#2,\theketpicctrb){\hspace*{\Width}\raisebox{\Height}{\tmpcontentsb}}%
-%
-\else%
-\settowidth{\Width}{\tmpcontents}\setlength{\Width}{-1\Width}%
-\settoheight{\Height}{\tmpcontents}\settodepth{\Depth}{\tmpcontents}\setlength{\Height}{-\Height}%
-\put(#2,\theketpicctrb){\hspace*{\Width}\raisebox{\Height}{\tmpcontents}}%
-%
-\fi%
-}%
-%
-\ifnum\theketpicctra<#4%
-\repeat%
-}%
-%
-}%
-\newcommand{\jaggyboxframe}[6][8]{%
-\def\tmpcontents{%
-\setcounter{ketpicctrf}{#4}%
-\addtocounter{ketpicctrf}{-4}%
-\setlength{\Width}{\theketpicctrf\unitlength}%
-\begin{minipage}{\Width}%
-#6%
-\end{minipage}%
-%
-}%
-\setcounter{ketpicctrg}{#2}%
-\addtocounter{ketpicctrg}{2}%
-\setcounter{ketpicctrh}{-#3}%
-\addtocounter{ketpicctrh}{-2}%
-\settowidth{\Width}{\tmpcontents}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{\tmpcontents}\settodepth{\Depth}{\tmpcontents}\setlength{\Height}{-\Height}%
-\put(\theketpicctrg,\theketpicctrh){\hspace*{\Width}\raisebox{\Height}{\tmpcontents}}%
-\setcounter{ketpicctrg}{#2}%
-\setcounter{ketpicctrh}{#3}%
-\hjaggylineb[#1]{\theketpicctrg}{\theketpicctrh}{#4}%
-\vjaggylineb[#1]{\theketpicctrg}{\theketpicctrh}{#5}%
-\setcounter{ketpicctrg}{#2}%
-\setcounter{ketpicctrh}{#3}%
-\addtocounter{ketpicctrh}{#5}%
-\hjaggyline[#1]{\theketpicctrg}{\theketpicctrh}{#4}%
-\setcounter{ketpicctrg}{#2}%
-\addtocounter{ketpicctrg}{#4}%
-\setcounter{ketpicctrh}{#3}%
-\vjaggyline[#1]{\theketpicctrg}{\theketpicctrh}{#5}%
-%
-}%
-\newcommand{\jaggyboxframese}[6][8]{%
-\jaggyboxframe[#1]{#2}{#3}{#4}{#5}{#6}%
-%
-}%
-\newcommand{\jaggyboxframec}[6][8]{%
-\setcounter{ketpicctrd}{-#4}%
-\divide\value{ketpicctrd} by 2%
-\addtocounter{ketpicctrd}{#2}%
-\setcounter{ketpicctre}{-#5}%
-\divide\value{ketpicctre} by 2%
-\addtocounter{ketpicctre}{#3}%
-\jaggyboxframe[#1]{\theketpicctrd}{\theketpicctre}{#4}{#5}{#6}%
-%
-}%
-\newcommand{\jaggyboxframee}[6][8]{%
-\setcounter{ketpicctrd}{#2}%
-\setcounter{ketpicctre}{-#5}%
-\divide\value{ketpicctre} by 2%
-\addtocounter{ketpicctre}{#3}%
-\jaggyboxframe[#1]{\theketpicctrd}{\theketpicctre}{#4}{#5}{#6}%
-%
-}%
-\newcommand{\jaggyboxframew}[6][8]{%
-\setcounter{ketpicctrd}{-#4}%
-\addtocounter{ketpicctrd}{#2}%
-\setcounter{ketpicctre}{-#5}%
-\divide\value{ketpicctre} by 2%
-\addtocounter{ketpicctre}{#3}%
-\jaggyboxframe[#1]{\theketpicctrd}{\theketpicctre}{#4}{#5}{#6}%
-%
-}%
-\newcommand{\jaggyboxframen}[6][8]{%
-\setcounter{ketpicctrd}{-#4}%
-\divide\value{ketpicctrd} by 2%
-\addtocounter{ketpicctrd}{#2}%
-\setcounter{ketpicctre}{#3}%
-\addtocounter{ketpicctre}{-#5}%
-\jaggyboxframe[#1]{\theketpicctrd}{\theketpicctre}{#4}{#5}{#6}%
-%
-}%
-\newcommand{\jaggyboxframes}[6][8]{%
-\setcounter{ketpicctrd}{-#4}%
-\divide\value{ketpicctrd} by 2%
-\addtocounter{ketpicctrd}{#2}%
-\setcounter{ketpicctre}{#3}%
-\jaggyboxframe[#1]{\theketpicctrd}{\theketpicctre}{#4}{#5}{#6}%
-%
-}%
-\newcommand{\jaggyboxframenw}[6][8]{%
-\setcounter{ketpicctrd}{-#4}%
-\addtocounter{ketpicctrd}{#2}%
-\setcounter{ketpicctre}{#3}%
-\addtocounter{ketpicctre}{-#5}%
-\jaggyboxframe[#1]{\theketpicctrd}{\theketpicctre}{#4}{#5}{#6}%
-%
-}%
-\newcommand{\jaggyboxframene}[6][8]{%
-\setcounter{ketpicctrd}{#2}%
-\setcounter{ketpicctre}{#3}%
-\addtocounter{ketpicctre}{-#5}%
-\jaggyboxframe[#1]{\theketpicctrd}{\theketpicctre}{#4}{#5}{#6}%
-%
-}%
-\newcommand{\jaggyboxframesw}[6][8]{%
-\setcounter{ketpicctrd}{-#4}%
-\addtocounter{ketpicctrd}{#2}%
-\setcounter{ketpicctre}{#3}%
-\jaggyboxframe[#1]{\theketpicctrd}{\theketpicctre}{#4}{#5}{#6}%
-%
-}%
-\newcommand{\hdialine}[4][8]{%
-\def\tmpcontents{%
-{\unitlength=1mm%
-\begin{picture}%
-( 1.00000, 1.00000)( 0.00000, -0.50000)%
-\linethickness{0.008in}%
-%
-%
-{%
-\ifnum %
-#1<10 %
-\linethickness{0.00#1 in}%
-%
-\else%
-\linethickness{0.0#1 in}%
-%
-\fi%
-}%
-\polyline(1.00000,0.50000)(0.00000,0.00000)(1.00000,-0.50000)%
-%
-\linethickness{0.008in}%
-\end{picture}}%%
-}%
-\def\tmpcontentsb{%
-{\unitlength=1mm%
-\begin{picture}%
-( 1.00000, 1.00000)( 0.00000, -0.50000)%
-\linethickness{0.008in}%
-%
-%
-{%
-\ifnum %
-#1<10 %
-\linethickness{0.00#1 in}%
-%
-\else%
-\linethickness{0.0#1 in}%
-%
-\fi%
-}%
-\polyline(0.00000,0.50000)(1.00000,0.00000)(0.00000,-0.50000)%
-%
-\linethickness{0.008in}%
-\end{picture}}%%
-}%
-\setcounter{ketpicctra}{0}%
-\setcounter{ketpicctra}{1}%
-\addtocounter{ketpicctra}{-1}%
-%
-{%
-\loop%
-\addtocounter{ketpicctra}{1}%
-\setcounter{ketpicctrb}{#2}%
-\addtocounter{ketpicctrb}{\value{ketpicctra}}%
-\addtocounter{ketpicctrb}{-1}%
-\setcounter{ketpicctrc}{\value{ketpicctra}}%
-\divide\value{ketpicctrc} by 2%
-\multiply\value{ketpicctrc} by 2%
-%
-{%
-\ifnum %
-\theketpicctrc<\theketpicctra %
-\settowidth{\Width}{\tmpcontents}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{\tmpcontents}\settodepth{\Depth}{\tmpcontents}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(\theketpicctrb,-#3){\hspace*{\Width}\raisebox{\Height}{\tmpcontents}}%
-%
-\else%
-\settowidth{\Width}{\tmpcontentsb}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{\tmpcontentsb}\settodepth{\Depth}{\tmpcontentsb}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(\theketpicctrb,-#3){\hspace*{\Width}\raisebox{\Height}{\tmpcontentsb}}%
-%
-\fi%
-}%
-%
-\ifnum\theketpicctra<#4%
-\repeat%
-}%
-%
-}%
-\newcommand{\vdialine}[4][8]{%
-\def\tmpcontents{%
-{\unitlength=1mm%
-\begin{picture}%
-( 1.00000, 1.00000)( -0.50000, 0.00000)%
-\linethickness{0.008in}%
-%
-%
-{%
-\ifnum %
-#1<10 %
-\linethickness{0.00#1 in}%
-%
-\else%
-\linethickness{0.0#1 in}%
-%
-\fi%
-}%
-\polyline(-0.50000,0.00000)(0.00000,1.00000)(0.50000,0.00000)%
-%
-\linethickness{0.008in}%
-\end{picture}}%%
-}%
-\def\tmpcontentsb{%
-{\unitlength=1mm%
-\begin{picture}%
-( 1.00000, 1.00000)( -0.50000, 0.00000)%
-\linethickness{0.008in}%
-%
-%
-{%
-\ifnum %
-#1<10 %
-\linethickness{0.00#1 in}%
-%
-\else%
-\linethickness{0.0#1 in}%
-%
-\fi%
-}%
-\polyline(-0.50000,1.00000)(0.00000,0.00000)(0.50000,1.00000)%
-%
-\linethickness{0.008in}%
-\end{picture}}%%
-}%
-\setcounter{ketpicctra}{0}%
-\setcounter{ketpicctra}{1}%
-\addtocounter{ketpicctra}{-1}%
-%
-{%
-\loop%
-\addtocounter{ketpicctra}{1}%
-\setcounter{ketpicctrb}{-#3}%
-\addtocounter{ketpicctrb}{-\value{ketpicctra}}%
-\addtocounter{ketpicctrb}{1}%
-\setcounter{ketpicctrc}{\value{ketpicctra}}%
-\divide\value{ketpicctrc} by 2%
-\multiply\value{ketpicctrc} by 2%
-%
-{%
-\ifnum %
-\theketpicctrc<\theketpicctra %
-\settowidth{\Width}{\tmpcontents}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{\tmpcontents}\settodepth{\Depth}{\tmpcontents}\setlength{\Height}{-\Height}%
-\put(#2,\theketpicctrb){\hspace*{\Width}\raisebox{\Height}{\tmpcontents}}%
-%
-\else%
-\settowidth{\Width}{\tmpcontentsb}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{\tmpcontentsb}\settodepth{\Depth}{\tmpcontentsb}\setlength{\Height}{-\Height}%
-\put(#2,\theketpicctrb){\hspace*{\Width}\raisebox{\Height}{\tmpcontentsb}}%
-%
-\fi%
-}%
-%
-\ifnum\theketpicctra<#4%
-\repeat%
-}%
-%
-}%
-\newcommand{\diaboxframe}[6][4]{%
-\def\tmpcontents{%
-\setcounter{ketpicctrf}{#4}%
-\addtocounter{ketpicctrf}{-4}%
-\setlength{\Width}{\theketpicctrf\unitlength}%
-\begin{minipage}{\Width}%
-#6%
-\end{minipage}%
-%
-}%
-\setcounter{ketpicctrg}{#2}%
-\addtocounter{ketpicctrg}{2}%
-\setcounter{ketpicctrh}{-#3}%
-\addtocounter{ketpicctrh}{-2}%
-\settowidth{\Width}{\tmpcontents}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{\tmpcontents}\settodepth{\Depth}{\tmpcontents}\setlength{\Height}{-\Height}%
-\put(\theketpicctrg,\theketpicctrh){\hspace*{\Width}\raisebox{\Height}{\tmpcontents}}%
-\setcounter{ketpicctrh}{#3}%
-\hdialine[#1]{#2}{\theketpicctrh}{#4}%
-\setcounter{ketpicctrh}{#3}%
-\addtocounter{ketpicctrh}{#5}%
-\hdialine[#1]{#2}{\theketpicctrh}{#4}%
-\setcounter{ketpicctrg}{#2}%
-\vdialine[#1]{\theketpicctrg}{#3}{#5}%
-\setcounter{ketpicctrg}{#2}%
-\addtocounter{ketpicctrg}{#4}%
-\vdialine[#1]{\theketpicctrg}{#3}{#5}%
-%
-}%
-\newcommand{\diaboxframese}[6][8]{%
-\diaboxframe[#1]{#2}{#3}{#4}{#5}{#6}%
-%
-}%
-\newcommand{\diaboxframec}[6][8]{%
-\setcounter{ketpicctrd}{-#4}%
-\divide\value{ketpicctrd} by 2%
-\addtocounter{ketpicctrd}{#2}%
-\setcounter{ketpicctre}{-#5}%
-\divide\value{ketpicctre} by 2%
-\addtocounter{ketpicctre}{#3}%
-\diaboxframe[#1]{\theketpicctrd}{\theketpicctre}{#4}{#5}{#6}%
-%
-}%
-\newcommand{\diaboxframee}[6][8]{%
-\setcounter{ketpicctrd}{#2}%
-\setcounter{ketpicctre}{-#5}%
-\divide\value{ketpicctre} by 2%
-\addtocounter{ketpicctre}{#3}%
-\diaboxframe[#1]{\theketpicctrd}{\theketpicctre}{#4}{#5}{#6}%
-%
-}%
-\newcommand{\diaboxframew}[6][8]{%
-\setcounter{ketpicctrd}{-#4}%
-\addtocounter{ketpicctrd}{#2}%
-\setcounter{ketpicctre}{-#5}%
-\divide\value{ketpicctre} by 2%
-\addtocounter{ketpicctre}{#3}%
-\diaboxframe[#1]{\theketpicctrd}{\theketpicctre}{#4}{#5}{#6}%
-%
-}%
-\newcommand{\diaboxframen}[6][8]{%
-\setcounter{ketpicctrd}{-#4}%
-\divide\value{ketpicctrd} by 2%
-\addtocounter{ketpicctrd}{#2}%
-\setcounter{ketpicctre}{-#5}%
-\addtocounter{ketpicctre}{#3}%
-\diaboxframe[#1]{\theketpicctrd}{\theketpicctre}{#4}{#5}{#6}%
-%
-}%
-\newcommand{\diaboxframes}[6][0.008]{%
-\setcounter{ketpicctrd}{-#4}%
-\divide\value{ketpicctrd} by 2%
-\addtocounter{ketpicctrd}{#2}%
-\setcounter{ketpicctre}{#3}%
-\diaboxframe[#1]{\theketpicctrd}{\theketpicctre}{#4}{#5}{#6}%
-%
-}%
-\newcommand{\diaboxframenw}[6][8]{%
-\setcounter{ketpicctrd}{-#4}%
-\addtocounter{ketpicctrd}{#2}%
-\setcounter{ketpicctre}{-#5}%
-\addtocounter{ketpicctre}{#3}%
-\diaboxframe[#1]{\theketpicctrd}{\theketpicctre}{#4}{#5}{#6}%
-%
-}%
-\newcommand{\diaboxframene}[6][8]{%
-\setcounter{ketpicctrd}{#2}%
-\setcounter{ketpicctre}{-#5}%
-\addtocounter{ketpicctre}{#3}%
-\diaboxframe[#1]{\theketpicctrd}{\theketpicctre}{#4}{#5}{#6}%
-%
-}%
-\newcommand{\diaboxframesw}[6][8]{%
-\setcounter{ketpicctrd}{-#4}%
-\addtocounter{ketpicctrd}{#2}%
-\setcounter{ketpicctre}{#3}%
-\diaboxframe[#1]{\theketpicctrd}{\theketpicctre}{#4}{#5}{#6}%
-%
-}%
-\newcommand{\hdashline}[4][8]{%
-\def\tmpcontents{%
-{\unitlength=1mm%
-\begin{picture}%
-( 1.00000, 0.02000)( 0.00000, -0.01000)%
-\linethickness{0.008in}%
-%
-%
-{%
-\ifnum %
-#1<10 %
-\linethickness{0.00#1 in}%
-%
-\else%
-\linethickness{0.0#1 in}%
-%
-\fi%
-}%
-\polyline(0.00000,0.00000)(0.50000,0.00000)%
-%
-\linethickness{0.008in}%
-\end{picture}}%%
-}%
-\setcounter{ketpicctra}{0}%
-\setcounter{ketpicctra}{1}%
-\addtocounter{ketpicctra}{-1}%
-%
-{%
-\loop%
-\addtocounter{ketpicctra}{1}%
-\setcounter{ketpicctrb}{#2}%
-\addtocounter{ketpicctrb}{\value{ketpicctra}}%
-\addtocounter{ketpicctrb}{-1}%
-\settowidth{\Width}{\tmpcontents}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{\tmpcontents}\settodepth{\Depth}{\tmpcontents}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(\theketpicctrb,-#3){\hspace*{\Width}\raisebox{\Height}{\tmpcontents}}%
-%
-\ifnum\theketpicctra<#4%
-\repeat%
-}%
-%
-}%
-\newcommand{\hdashlineb}[4][8]{%
-\def\tmpcontents{%
-{\unitlength=1mm%
-\begin{picture}%
-( 1.00000, 0.02000)( 0.00000, -0.01000)%
-\linethickness{0.008in}%
-%
-%
-{%
-\ifnum %
-#1<10 %
-\linethickness{0.00#1 in}%
-%
-\else%
-\linethickness{0.0#1 in}%
-%
-\fi%
-}%
-\polyline(0.50000,0.00000)(1.00000,0.00000)%
-%
-\linethickness{0.008in}%
-\end{picture}}%%
-}%
-\setcounter{ketpicctra}{0}%
-\setcounter{ketpicctra}{1}%
-\addtocounter{ketpicctra}{-1}%
-%
-{%
-\loop%
-\addtocounter{ketpicctra}{1}%
-\setcounter{ketpicctrb}{#2}%
-\addtocounter{ketpicctrb}{\value{ketpicctra}}%
-\addtocounter{ketpicctrb}{-1}%
-\settowidth{\Width}{\tmpcontents}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{\tmpcontents}\settodepth{\Depth}{\tmpcontents}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(\theketpicctrb,-#3){\hspace*{\Width}\raisebox{\Height}{\tmpcontents}}%
-%
-\ifnum\theketpicctra<#4%
-\repeat%
-}%
-%
-}%
-\newcommand{\vdashline}[4][8]{%
-\def\tmpcontents{%
-{\unitlength=1mm%
-\begin{picture}%
-( 0.02000, 1.00000)( -0.01000, 0.00000)%
-\linethickness{0.008in}%
-%
-%
-{%
-\ifnum %
-#1<10 %
-\linethickness{0.00#1 in}%
-%
-\else%
-\linethickness{0.0#1 in}%
-%
-\fi%
-}%
-\polyline(0.00000,0.00000)(0.00000,0.50000)%
-%
-\linethickness{0.008in}%
-\end{picture}}%%
-}%
-\setcounter{ketpicctra}{0}%
-\setcounter{ketpicctra}{1}%
-\addtocounter{ketpicctra}{-1}%
-%
-{%
-\loop%
-\addtocounter{ketpicctra}{1}%
-\setcounter{ketpicctrb}{-#3}%
-\addtocounter{ketpicctrb}{-\value{ketpicctra}}%
-\addtocounter{ketpicctrb}{1}%
-\settowidth{\Width}{\tmpcontents}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{\tmpcontents}\settodepth{\Depth}{\tmpcontents}\setlength{\Height}{-\Height}%
-\put(#2,\theketpicctrb){\hspace*{\Width}\raisebox{\Height}{\tmpcontents}}%
-%
-\ifnum\theketpicctra<#4%
-\repeat%
-}%
-%
-}%
-\newcommand{\vdashlineb}[4][8]{%
-\def\tmpcontents{%
-{\unitlength=1mm%
-\begin{picture}%
-( 0.02000, 1.00000)( -0.01000, 0.00000)%
-\linethickness{0.008in}%
-%
-%
-{%
-\ifnum %
-#1<10 %
-\linethickness{0.00#1 in}%
-%
-\else%
-\linethickness{0.0#1 in}%
-%
-\fi%
-}%
-\polyline(0.00000,0.50000)(0.00000,1.00000)%
-%
-\linethickness{0.008in}%
-\end{picture}}%%
-}%
-\setcounter{ketpicctra}{0}%
-\setcounter{ketpicctra}{1}%
-\addtocounter{ketpicctra}{-1}%
-%
-{%
-\loop%
-\addtocounter{ketpicctra}{1}%
-\setcounter{ketpicctrb}{-#3}%
-\addtocounter{ketpicctrb}{-\value{ketpicctra}}%
-\addtocounter{ketpicctrb}{1}%
-\settowidth{\Width}{\tmpcontents}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{\tmpcontents}\settodepth{\Depth}{\tmpcontents}\setlength{\Height}{-\Height}%
-\put(#2,\theketpicctrb){\hspace*{\Width}\raisebox{\Height}{\tmpcontents}}%
-%
-\ifnum\theketpicctra<#4%
-\repeat%
-}%
-%
-}%
-\newcommand{\dashboxframe}[6][4]{%
-\def\tmpcontents{%
-\setcounter{ketpicctrf}{#4}%
-\addtocounter{ketpicctrf}{-4}%
-\setlength{\Width}{\theketpicctrf\unitlength}%
-\begin{minipage}{\Width}%
-#6%
-\end{minipage}%
-%
-}%
-\setcounter{ketpicctrg}{#2}%
-\addtocounter{ketpicctrg}{2}%
-\setcounter{ketpicctrh}{-#3}%
-\addtocounter{ketpicctrh}{-2}%
-\settowidth{\Width}{\tmpcontents}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{\tmpcontents}\settodepth{\Depth}{\tmpcontents}\setlength{\Height}{-\Height}%
-\put(\theketpicctrg,\theketpicctrh){\hspace*{\Width}\raisebox{\Height}{\tmpcontents}}%
-\setcounter{ketpicctrh}{#3}%
-\hdashline[#1]{#2}{\theketpicctrh}{#4}%
-\setcounter{ketpicctrh}{#3}%
-\addtocounter{ketpicctrh}{#5}%
-\hdashlineb[#1]{#2}{\theketpicctrh}{#4}%
-\setcounter{ketpicctrg}{#2}%
-\vdashline[#1]{\theketpicctrg}{#3}{#5}%
-\setcounter{ketpicctrg}{#2}%
-\addtocounter{ketpicctrg}{#4}%
-\vdashlineb[#1]{\theketpicctrg}{#3}{#5}%
-%
-}%
-\newcommand{\dashboxframese}[6][8]{%
-\dashboxframe[#1]{#2}{#3}{#4}{#5}{#6}%
-%
-}%
-\newcommand{\dashboxframec}[6][8]{%
-\setcounter{ketpicctrd}{-#4}%
-\divide\value{ketpicctrd} by 2%
-\addtocounter{ketpicctrd}{#2}%
-\setcounter{ketpicctre}{-#5}%
-\divide\value{ketpicctre} by 2%
-\addtocounter{ketpicctre}{#3}%
-\dashboxframe[#1]{\theketpicctrd}{\theketpicctre}{#4}{#5}{#6}%
-%
-}%
-\newcommand{\dashboxframee}[6][8]{%
-\setcounter{ketpicctrd}{#2}%
-\setcounter{ketpicctre}{-#5}%
-\divide\value{ketpicctre} by 2%
-\addtocounter{ketpicctre}{#3}%
-\dashboxframe[#1]{\theketpicctrd}{\theketpicctre}{#4}{#5}{#6}%
-%
-}%
-\newcommand{\dashboxframew}[6][8]{%
-\setcounter{ketpicctrd}{-#4}%
-\addtocounter{ketpicctrd}{#2}%
-\setcounter{ketpicctre}{-#5}%
-\divide\value{ketpicctre} by 2%
-\addtocounter{ketpicctre}{#3}%
-\dashboxframe[#1]{\theketpicctrd}{\theketpicctre}{#4}{#5}{#6}%
-%
-}%
-\newcommand{\dashboxframen}[6][8]{%
-\setcounter{ketpicctrd}{-#4}%
-\divide\value{ketpicctrd} by 2%
-\addtocounter{ketpicctrd}{#2}%
-\setcounter{ketpicctre}{#3}%
-\addtocounter{ketpicctre}{-#5}%
-\dashboxframe[#1]{\theketpicctrd}{\theketpicctre}{#4}{#5}{#6}%
-%
-}%
-\newcommand{\dashboxframes}[6][8]{%
-\setcounter{ketpicctrd}{-#4}%
-\divide\value{ketpicctrd} by 2%
-\addtocounter{ketpicctrd}{#2}%
-\setcounter{ketpicctre}{#3}%
-\dashboxframe[#1]{\theketpicctrd}{\theketpicctre}{#4}{#5}{#6}%
-%
-}%
-\newcommand{\dashboxframenw}[6][8]{%
-\setcounter{ketpicctrd}{-#4}%
-\addtocounter{ketpicctrd}{#2}%
-\setcounter{ketpicctre}{#3}%
-\addtocounter{ketpicctre}{-#5}%
-\dashboxframe[#1]{\theketpicctrd}{\theketpicctre}{#4}{#5}{#6}%
-%
-}%
-\newcommand{\dashboxframene}[6][8]{%
-\setcounter{ketpicctrd}{#2}%
-\setcounter{ketpicctre}{#3}%
-\addtocounter{ketpicctre}{-#5}%
-\dashboxframe[#1]{\theketpicctrd}{\theketpicctre}{#4}{#5}{#6}%
-%
-}%
-\newcommand{\dashboxframesw}[6][8]{%
-\setcounter{ketpicctrd}{-#4}%
-\addtocounter{ketpicctrd}{#2}%
-\setcounter{ketpicctre}{#3}%
-\dashboxframe[#1]{\theketpicctrd}{\theketpicctre}{#4}{#5}{#6}%
-%
-}%
-\newcommand{\boxlinep}[6][8]{%
-\def\tmpcontents{%
-{\unitlength=1mm%
-\begin{picture}%
-( 1.00000, 0.02000)( 0.00000, -0.01000)%
-\linethickness{0.008in}%
-%
-%
-{%
-\ifnum %
-#1<10 %
-\linethickness{0.00#1 in}%
-%
-\else%
-\linethickness{0.0#1 in}%
-%
-\fi%
-}%
-\polyline(0.00000,0.00000)(1.00000,0.00000)%
-%
-\linethickness{0.008in}%
-\end{picture}}%%
-}%
-\def\tmpcontentsb{%
-{\unitlength=0.1mm%
-\begin{picture}%
-( 1.00000, 0.02000)( 0.00000, -0.01000)%
-\linethickness{0.008in}%
-%
-%
-{%
-\ifnum %
-#1<10 %
-\linethickness{0.00#1 in}%
-%
-\else%
-\linethickness{0.0#1 in}%
-%
-\fi%
-}%
-\polyline(0.00000,0.00000)(1.00000,0.00000)%
-%
-\linethickness{0.008in}%
-\end{picture}}%%
-}%
-{\unitlength=0.1mm%
-\setcounter{ketpicctrc}{-#3}%
-\addtocounter{ketpicctrc}{-#5}%
-\setcounter{ketpicctra}{0}%
-\setcounter{ketpicctra}{1}%
-\addtocounter{ketpicctra}{-1}%
-%
-{%
-\loop%
-\addtocounter{ketpicctra}{1}%
-\setcounter{ketpicctrb}{\value{ketpicctra}}%
-\addtocounter{ketpicctrb}{9}%
-%
-{%
-\ifnum %
-\theketpicctrb>#4 %
-\setcounter{ketpicctrb}{#2}%
-\addtocounter{ketpicctrb}{\value{ketpicctra}}%
-\settowidth{\Width}{{\color{#6}\tmpcontentsb}}\setlength{\Width}{-1\Width}%
-\settoheight{\Height}{{\color{#6}\tmpcontentsb}}\settodepth{\Depth}{{\color{#6}\tmpcontentsb}}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(\theketpicctrb,-#3){\hspace*{\Width}\raisebox{\Height}{{\color{#6}\tmpcontentsb}}}%
-\settowidth{\Width}{{\color{#6}\tmpcontentsb}}\setlength{\Width}{-1\Width}%
-\settoheight{\Height}{{\color{#6}\tmpcontentsb}}\settodepth{\Depth}{{\color{#6}\tmpcontentsb}}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(\theketpicctrb,\theketpicctrc){\hspace*{\Width}\raisebox{\Height}{{\color{#6}\tmpcontentsb}}}%
-%
-\else%
-\addtocounter{ketpicctra}{9}%
-\setcounter{ketpicctrb}{#2}%
-\addtocounter{ketpicctrb}{\value{ketpicctra}}%
-\settowidth{\Width}{{\color{#6}\tmpcontents}}\setlength{\Width}{-1\Width}%
-\settoheight{\Height}{{\color{#6}\tmpcontents}}\settodepth{\Depth}{{\color{#6}\tmpcontents}}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(\theketpicctrb,-#3){\hspace*{\Width}\raisebox{\Height}{{\color{#6}\tmpcontents}}}%
-\settowidth{\Width}{{\color{#6}\tmpcontents}}\setlength{\Width}{-1\Width}%
-\settoheight{\Height}{{\color{#6}\tmpcontents}}\settodepth{\Depth}{{\color{#6}\tmpcontents}}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(\theketpicctrb,\theketpicctrc){\hspace*{\Width}\raisebox{\Height}{{\color{#6}\tmpcontents}}}%
-%
-\fi%
-}%
-%
-\ifnum\theketpicctra<#4%
-\repeat%
-}%
-}%
-\def\tmpcontents{%
-{\unitlength=1mm%
-\begin{picture}%
-( 0.02000, 1.00000)( -0.01000, 0.00000)%
-\linethickness{0.008in}%
-%
-%
-{%
-\ifnum %
-#1<10 %
-\linethickness{0.00#1 in}%
-%
-\else%
-\linethickness{0.0#1 in}%
-%
-\fi%
-}%
-\polyline(0.00000,0.00000)(0.00000,1.00000)%
-%
-\linethickness{0.008in}%
-\end{picture}}%%
-}%
-\def\tmpcontentsb{%
-{\unitlength=0.1mm%
-\begin{picture}%
-( 0.02000, 1.00000)( -0.01000, 0.00000)%
-\linethickness{0.008in}%
-%
-%
-{%
-\ifnum %
-#1<10 %
-\linethickness{0.00#1 in}%
-%
-\else%
-\linethickness{0.0#1 in}%
-%
-\fi%
-}%
-\polyline(0.00000,0.00000)(0.00000,1.00000)%
-%
-\linethickness{0.008in}%
-\end{picture}}%%
-}%
-{\unitlength=0.1mm%
-\setcounter{ketpicctrc}{#2}%
-\addtocounter{ketpicctrc}{#4}%
-\setcounter{ketpicctra}{0}%
-\setcounter{ketpicctra}{1}%
-\addtocounter{ketpicctra}{-1}%
-%
-{%
-\loop%
-\addtocounter{ketpicctra}{1}%
-\setcounter{ketpicctrb}{\value{ketpicctra}}%
-\addtocounter{ketpicctrb}{9}%
-%
-{%
-\ifnum %
-\theketpicctrb>#5 %
-\setcounter{ketpicctrb}{-#3}%
-\addtocounter{ketpicctrb}{-\value{ketpicctra}}%
-\settowidth{\Width}{{\color{#6}\tmpcontentsb}}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{{\color{#6}\tmpcontentsb}}\settodepth{\Depth}{{\color{#6}\tmpcontentsb}}\setlength{\Height}{\Depth}%
-\put(#2,\theketpicctrb){\hspace*{\Width}\raisebox{\Height}{{\color{#6}\tmpcontentsb}}}%
-\settowidth{\Width}{{\color{#6}\tmpcontentsb}}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{{\color{#6}\tmpcontentsb}}\settodepth{\Depth}{{\color{#6}\tmpcontentsb}}\setlength{\Height}{\Depth}%
-\put(\theketpicctrc,\theketpicctrb){\hspace*{\Width}\raisebox{\Height}{{\color{#6}\tmpcontentsb}}}%
-%
-\else%
-\addtocounter{ketpicctra}{9}%
-\setcounter{ketpicctrb}{-#3}%
-\addtocounter{ketpicctrb}{-\value{ketpicctra}}%
-\settowidth{\Width}{{\color{#6}\tmpcontents}}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{{\color{#6}\tmpcontents}}\settodepth{\Depth}{{\color{#6}\tmpcontents}}\setlength{\Height}{\Depth}%
-\put(#2,\theketpicctrb){\hspace*{\Width}\raisebox{\Height}{{\color{#6}\tmpcontents}}}%
-\settowidth{\Width}{{\color{#6}\tmpcontents}}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{{\color{#6}\tmpcontents}}\settodepth{\Depth}{{\color{#6}\tmpcontents}}\setlength{\Height}{\Depth}%
-\put(\theketpicctrc,\theketpicctrb){\hspace*{\Width}\raisebox{\Height}{{\color{#6}\tmpcontents}}}%
-%
-\fi%
-}%
-%
-\ifnum\theketpicctra<#5%
-\repeat%
-}%
-}%
-%
-}%
-\newcommand{\shadeframep}[6][white]{%
-\def\tmpcontents{%
-{\unitlength=1mm%
-\begin{picture}%
-( 100.00000, 100.00000)( 0.00000, 0.00000)%
-\linethickness{0.008in}%
-%
-{\color{#1}
-\polygon*(0.00010,0.00010)(99.99990,0.00010)(99.99990,99.99990)(0.00010,99.99990)%
-(0.00010,0.00010)
-}%
-\end{picture}}%%
-}%
-{\unitlength=0.1mm%
-%
-{%
-\ifnum %
-#4<100 %
-%
-{%
-\ifnum %
-#5<100 %
-\settowidth{\Width}{{\color{#6}\scalebox{0.0#4}[0.0#5]{\tmpcontents}}}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{{\color{#6}\scalebox{0.0#4}[0.0#5]{\tmpcontents}}}\settodepth{\Depth}{{\color{#6}\scalebox{0.0#4}[0.0#5]{\tmpcontents}}}\setlength{\Height}{-\Height}%
-\put(#2,-#3){\hspace*{\Width}\raisebox{\Height}{{\color{#6}\scalebox{0.0#4}[0.0#5]{\tmpcontents}}}}%
-%
-\else%
-\settowidth{\Width}{{\color{#6}\scalebox{0.0#4}[0.#5]{\tmpcontents}}}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{{\color{#6}\scalebox{0.0#4}[0.#5]{\tmpcontents}}}\settodepth{\Depth}{{\color{#6}\scalebox{0.0#4}[0.#5]{\tmpcontents}}}\setlength{\Height}{-\Height}%
-\put(#2,-#3){\hspace*{\Width}\raisebox{\Height}{{\color{#6}\scalebox{0.0#4}[0.#5]{\tmpcontents}}}}%
-%
-\fi%
-}%
-%
-\else%
-%
-{%
-\ifnum %
-#4<1000 %
-%
-{%
-\ifnum %
-#5<100 %
-\settowidth{\Width}{{\color{#6}\scalebox{0.#4}[0.0#5]{\tmpcontents}}}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{{\color{#6}\scalebox{0.#4}[0.0#5]{\tmpcontents}}}\settodepth{\Depth}{{\color{#6}\scalebox{0.#4}[0.0#5]{\tmpcontents}}}\setlength{\Height}{-\Height}%
-\put(#2,-#3){\hspace*{\Width}\raisebox{\Height}{{\color{#6}\scalebox{0.#4}[0.0#5]{\tmpcontents}}}}%
-%
-\else%
-\settowidth{\Width}{{\color{#6}\scalebox{0.#4}[0.#5]{\tmpcontents}}}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{{\color{#6}\scalebox{0.#4}[0.#5]{\tmpcontents}}}\settodepth{\Depth}{{\color{#6}\scalebox{0.#4}[0.#5]{\tmpcontents}}}\setlength{\Height}{-\Height}%
-\put(#2,-#3){\hspace*{\Width}\raisebox{\Height}{{\color{#6}\scalebox{0.#4}[0.#5]{\tmpcontents}}}}%
-%
-\fi%
-}%
-%
-\else%
-%
-{%
-\ifnum %
-#5<100 %
-\settowidth{\Width}{{\color{#6}\scalebox{1}[0.0#5]{\tmpcontents}}}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{{\color{#6}\scalebox{1}[0.0#5]{\tmpcontents}}}\settodepth{\Depth}{{\color{#6}\scalebox{1}[0.0#5]{\tmpcontents}}}\setlength{\Height}{-\Height}%
-\put(#2,-#3){\hspace*{\Width}\raisebox{\Height}{{\color{#6}\scalebox{1}[0.0#5]{\tmpcontents}}}}%
-\setcounter{ketpicctra}{#2}%
-\addtocounter{ketpicctra}{#4}%
-\settowidth{\Width}{{\color{#6}\scalebox{1}[0.0#5]{\tmpcontents}}}\setlength{\Width}{-1\Width}%
-\settoheight{\Height}{{\color{#6}\scalebox{1}[0.0#5]{\tmpcontents}}}\settodepth{\Depth}{{\color{#6}\scalebox{1}[0.0#5]{\tmpcontents}}}\setlength{\Height}{-\Height}%
-\put(\theketpicctra,-#3){\hspace*{\Width}\raisebox{\Height}{{\color{#6}\scalebox{1}[0.0#5]{\tmpcontents}}}}%
-%
-\else%
-\settowidth{\Width}{{\color{#6}\scalebox{1}[0.#5]{\tmpcontents}}}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{{\color{#6}\scalebox{1}[0.#5]{\tmpcontents}}}\settodepth{\Depth}{{\color{#6}\scalebox{1}[0.#5]{\tmpcontents}}}\setlength{\Height}{-\Height}%
-\put(#2,-#3){\hspace*{\Width}\raisebox{\Height}{{\color{#6}\scalebox{1}[0.#5]{\tmpcontents}}}}%
-\setcounter{ketpicctra}{#2}%
-\addtocounter{ketpicctra}{#4}%
-\settowidth{\Width}{{\color{#6}\scalebox{1}[0.#5]{\tmpcontents}}}\setlength{\Width}{-1\Width}%
-\settoheight{\Height}{{\color{#6}\scalebox{1}[0.#5]{\tmpcontents}}}\settodepth{\Depth}{{\color{#6}\scalebox{1}[0.#5]{\tmpcontents}}}\setlength{\Height}{-\Height}%
-\put(\theketpicctra,-#3){\hspace*{\Width}\raisebox{\Height}{{\color{#6}\scalebox{1}[0.#5]{\tmpcontents}}}}%
-%
-\fi%
-}%
-%
-\fi%
-}%
-%
-\fi%
-}%
-}%
-%
-}%
-\newcommand{\popframe}[9][8]{%
-{\unitlength=0.1mm%
-\ketcalcwidth{#9}%
-\setcounter{ketpicctrh}{\value{ketpicctra}}%
-\ketcalcheight{#9}%
-\setcounter{ketpicctri}{\value{ketpicctra}}%
-\ketcalcdepth{#9}%
-\addtocounter{ketpicctri}{\value{ketpicctra}}%
-\addtocounter{ketpicctrh}{30}%
-\addtocounter{ketpicctri}{30}%
-\setcounter{ketpicctrf}{#2}%
-\multiply\value{ketpicctrf} by 10%
-\addtocounter{ketpicctrf}{15}%
-\setcounter{ketpicctrg}{#3}%
-\multiply\value{ketpicctrg} by 10%
-\addtocounter{ketpicctrg}{15}%
-\shadeframep[#5]{\theketpicctrf}{\theketpicctrg}{\theketpicctrh}{\theketpicctri}{#5}%
-\setcounter{ketpicctrf}{#2}%
-\multiply\value{ketpicctrf} by 10%
-\setcounter{ketpicctrg}{#3}%
-\multiply\value{ketpicctrg} by 10%
-\shadeframep[#7]{\theketpicctrf}{\theketpicctrg}{\theketpicctrh}{\theketpicctri}{#7}%
-\boxlinep[#1]{\theketpicctrf}{\theketpicctrg}{\theketpicctrh}{\theketpicctri}{#8}%
-\addtocounter{ketpicctrf}{15}%
-\setcounter{ketpicctra}{\value{ketpicctri}}%
-\divide\value{ketpicctra} by 2%
-\addtocounter{ketpicctrg}{\value{ketpicctra}}%
-\multiply\value{ketpicctrg} by -1%
-\settowidth{\Width}{{#9}}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{{#9}}\settodepth{\Depth}{{#9}}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(\theketpicctrf,\theketpicctrg){\hspace*{\Width}\raisebox{\Height}{{#9}}}%
-}%
-%
-}%
-\newcommand{\colorframe}[7][8]{%
-{\unitlength=0.1mm%
-\ketcalcwidth{#7}%
-\setcounter{ketpicctrh}{\value{ketpicctra}}%
-\ketcalcheight{#7}%
-\setcounter{ketpicctri}{\value{ketpicctra}}%
-\ketcalcdepth{#7}%
-\addtocounter{ketpicctri}{\value{ketpicctra}}%
-\addtocounter{ketpicctrh}{30}%
-\addtocounter{ketpicctri}{30}%
-\setcounter{ketpicctrf}{#2}%
-\multiply\value{ketpicctrf} by 10%
-\setcounter{ketpicctrg}{#3}%
-\multiply\value{ketpicctrg} by 10%
-\shadeframep[#4]{\theketpicctrf}{\theketpicctrg}{\theketpicctrh}{\theketpicctri}{#5}%
-\boxlinep[#1]{\theketpicctrf}{\theketpicctrg}{\theketpicctrh}{\theketpicctri}{#6}%
-\addtocounter{ketpicctrf}{15}%
-\setcounter{ketpicctra}{\value{ketpicctri}}%
-\divide\value{ketpicctra} by 2%
-\addtocounter{ketpicctrg}{\value{ketpicctra}}%
-\multiply\value{ketpicctrg} by -1%
-\settowidth{\Width}{{#7}}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{{#7}}\settodepth{\Depth}{{#7}}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(\theketpicctrf,\theketpicctrg){\hspace*{\Width}\raisebox{\Height}{{#7}}}%
-}%
-%
-}%
-\newcommand{\colorframes}[7][8]{%
-{\unitlength=0.1mm%
-\ketcalcwidth{#7}%
-\setcounter{ketpicctrh}{\value{ketpicctra}}%
-\ketcalcheight{#7}%
-\setcounter{ketpicctri}{\value{ketpicctra}}%
-\ketcalcdepth{#7}%
-\addtocounter{ketpicctri}{\value{ketpicctra}}%
-\addtocounter{ketpicctrh}{30}%
-\addtocounter{ketpicctri}{30}%
-\setcounter{ketpicctrf}{#2}%
-\multiply\value{ketpicctrf} by 10%
-\setcounter{ketpicctra}{\value{ketpicctrh}}%
-\divide\value{ketpicctra} by 2%
-\addtocounter{ketpicctrf}{-\value{ketpicctra}}%
-\setcounter{ketpicctrg}{#3}%
-\multiply\value{ketpicctrg} by 10%
-\shadeframep[#5]{\theketpicctrf}{\theketpicctrg}{\theketpicctrh}{\theketpicctri}{#5}%
-\boxlinep[#1]{\theketpicctrf}{\theketpicctrg}{\theketpicctrh}{\theketpicctri}{#6}%
-\addtocounter{ketpicctrf}{15}%
-\setcounter{ketpicctra}{\value{ketpicctri}}%
-\divide\value{ketpicctra} by 2%
-\addtocounter{ketpicctrg}{\value{ketpicctra}}%
-\multiply\value{ketpicctrg} by -1%
-\settowidth{\Width}{{#7}}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{{#7}}\settodepth{\Depth}{{#7}}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(\theketpicctrf,\theketpicctrg){\hspace*{\Width}\raisebox{\Height}{{#7}}}%
-}%
-%
-}%
diff --git a/texmf-dist/tex/latex/ketcindy/ketmedia.sty b/texmf-dist/tex/latex/ketcindy/ketmedia.sty
deleted file mode 100644
index aa6eecac..00000000
--- a/texmf-dist/tex/latex/ketcindy/ketmedia.sty
+++ /dev/null
@@ -1,108 +0,0 @@
-\newcommand{\inputsound}[3][90]{
-% 20180305 changed
-% 20180317 changed
-\def\soundbuttona{\color{blue}\small\fbox{\strut$\oplus\triangleright$}}
-\def\soundbuttonb{\color{blue}\small\fbox{\strut$\ll$}}
-{\unitlength=1pt
-\ketcalcwidth[0]{\soundbuttona}
-\setcounter{ketpicctrb}{\theketpicctra}
-\ketcalcwidth[0]{\soundbuttonb}
-\addtocounter{ketpicctrb}{\theketpicctra}
-\addtocounter{ketpicctrb}{20}
-
-\noindent
-\hspace*{#1mm}\hspace{20pt}%
-\mediabutton[
-mediacommand=#3:playPause,
-overface={\soundbuttona}%,
-%downface={\color{red}\strut Pause/Pause}%
-]{\soundbuttona}%
-\mediabutton[
-mediacommand=#3:rewind,
-overface={\soundbuttonb}
-%downface={\color{red}\strut Pause/Pause}%
-]{\soundbuttonb}%
-\hspace{-\theketpicctrb pt}%
-\includemedia[
- label=#3,
- addresource=#2#3.mp3,
- activate=pageopen,
- flashvars={
- source=#2#3.mp3
- &autoPlay=true
- }
-% transparent,
-% passcontext
-]{\color{blue}\small\fbox{\Ctab{15pt}{\strut}}}{APlayer.swf}
-}}
-
-\newcommand{\inputsoundclick}[3][90]{
-% 20180317 added
-\def\soundbuttona{\color{blue}\small\fbox{\strut$\oplus\triangleright$}}
-\def\soundbuttonb{\color{blue}\small\fbox{\strut$\ll$}}
-{\unitlength=1pt
-\ketcalcwidth[0]{\soundbuttona}
-\setcounter{ketpicctrb}{\theketpicctra}
-\ketcalcwidth[0]{\soundbuttonb}
-\addtocounter{ketpicctrb}{\theketpicctra}
-\addtocounter{ketpicctrb}{20}
-
-\noindent
-\hspace*{#1mm}\hspace{20pt}%
-\mediabutton[
-mediacommand=#3:playPause,
-overface={\soundbuttona}%,
-%downface={\color{red}\strut Pause/Pause}%
-]{\soundbuttona}%
-\mediabutton[
-mediacommand=#3:rewind,
-overface={\soundbuttonb}
-%downface={\color{red}\strut Pause/Pause}%
-]{\soundbuttonb}%
-\hspace{-\theketpicctrb pt}%
-\includemedia[
- label=#3,
- addresource=#2#3.mp3,
- activate=onclick,
- flashvars={
- source=#2#3.mp3
- &autoPlay=true
- }
-% transparent,
-% passcontext
-]{\color{blue}\small\fbox{\Ctab{15pt}{\strut}}}{APlayer.swf}
-}}
-
-\newcommand{\inputmovie}[5][90]{
-% 20180306 changed
-% width,height,dir,name
-\def\soundbuttona{\small\fbox{\strut$\oplus\triangleright$}}
-\def\soundbuttonb{\small\fbox{\strut$\ll$}}
-
-\hspace*{#1 mm}\mediabutton[
- mediacommand=#5:playPause,
- overface={\color{blue}\soundbuttona},
- downface={\color{red}\soundbuttona}
-]{\fbox{\soundbuttona}}
-\mediabutton[
- mediacommand=#5:rewind,
- overface={\color{blue}\soundbuttonb},
- downface={\color{red}\soundbuttonb}
-]{\fbox{\soundbuttonb}}
-
-\includemedia[
- label=#5,
- width=#2\linewidth,totalheight=#3\linewidth,
- activate=pageopen,
- addresource=#4#5.mp4,
- flashvars={
- source=#4#5.mp4
-% &showloading=never
-% &autoRewind=true
- &autoplay=true
-% &loop=1
-% &buffer=0.2
- }
-]{}{VPlayer.swf}
-
-} \ No newline at end of file
diff --git a/texmf-dist/tex/latex/ketcindy/ketpic.sty b/texmf-dist/tex/latex/ketcindy/ketpic.sty
deleted file mode 100644
index b0555f7b..00000000
--- a/texmf-dist/tex/latex/ketcindy/ketpic.sty
+++ /dev/null
@@ -1,825 +0,0 @@
-%Copyright (C) 2014 Setsuo Takato, KETpic developer team
-%*
-%* This program is free software: you can redistribute it and/or modify
-%* it under the terms of the GNU General Public License as published by
-%* the Free Software Foundation; either version 3 of the License, or
-%* (at your option) any later version.
-%*
-%* This program is distributed in the hope that it will be useful,
-%* but WITHOUT ANY WARRANTY; without even the implied warranty of
-%* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-%* GNU General Public License for more details.
-%*
-%* You should have received a copy of the GNU General Public License
-%* along with this program. If not, see <http://www.gnu.org/licenses/>
-%%% ketpic.sty
-% 2016.12.08
-% NEarrow, ..., SELarrow,... added
-% argument ( option ) = size
-% 2016.04.07
-% ketcindy, selarrow, serarrow, nelarrow, nerarrow
-% 2010.09.17 %
-%
-\newcounter{ketpicctra}%
-\newcounter{ketpicctrb}%
-\newcounter{ketpicctrc}%
-\newcounter{ketpicctrd}%
-\newcounter{ketpicctre}%
-\newcounter{ketpicctrf}%
-\newcounter{ketpicctrg}%
-\newcounter{ketpicctrh}%
-\newcounter{ketpicctri}%
-\newcounter{ketpicctrj}%
-\def\ketpic{%
-{K\kern-.20em\lower.5ex\hbox{E}\kern-.125em{Tpic}}%
-%
-}%
-\def\ketcindy{{K\kern-.20em%
-\lower.5ex\hbox{E}\kern-.125em{TCindy}}}%
-\def\KeTpic{\ketpic}%
-\def\KeTCindy{\ketcindy}%
-\newlength{\Width}%
-\newlength{\Height}%
-\newlength{\Depth}%
-\newcommand{\Ltab}[2]{%
-\settowidth{\Width}{#2}%
-\setlength{\Width}{-\Width}%
-\addtolength{\Width}{#1}%
-#2\hspace{\Width}\mbox{}%
-%
-}%
-\newcommand{\Rtab}[2]{%
-\settowidth{\Width}{#2}%
-\setlength{\Width}{-\Width}%
-\addtolength{\Width}{#1}%
-\hspace*{\Width}#2\mbox{}%
-%
-}%
-\newcommand{\Ctab}[2]{%
-\settowidth{\Width}{#2}%
-\setlength{\Width}{-\Width}%
-\addtolength{\Width}{#1}%
-\setlength{\Width}{0.5\Width}%
-\hspace*{\Width}#2\hspace{\Width}\mbox{}%
-%
-}%
-\newcommand{\vbackward}[1]{%
-\settoheight{\Height}{#1}%
-\vspace*{-\Height}%
-%
-}%
-\newcommand{\vforward}[1]{%
-\settoheight{\Height}{#1}%
-\vspace*{\Height}%
-%
-}%
-\newcommand{\usepack}{%
-\usepackage{amsmath,amssymb}%
-\usepackage{graphicx}%
-\usepackage{color}%
-%
-}%
-\newcommand{\setmargin}[4]{%
-\setlength{\oddsidemargin}{-25.4mm}%
-\addtolength{\oddsidemargin}{#1 mm}%
-\setlength{\textwidth}{\paperwidth}%
-\addtolength{\textwidth}{-#1 mm}%
-\addtolength{\textwidth}{-#2 mm}%
-\setlength{\headheight}{0mm}%
-\setlength{\headsep}{0mm}%
-\setlength{\topmargin}{-25.4mm}%
-\addtolength{\topmargin}{#3 mm}%
-\setlength{\textheight}{\paperheight}%
-\addtolength{\textheight}{-#3 mm}%
-\addtolength{\textheight}{-#4 mm}%
-%
-}%
-\newcommand{\ketcalcwidth}[2][0]{%
-\settowidth{\Depth}{#2}%
-\setlength{\Width}{0\unitlength}%
-\setcounter{ketpicctra}{0}%
-\setcounter{ketpicctra}{1}%
-\addtocounter{ketpicctra}{-1}%
-%
-{%
-\loop%
-\addtocounter{ketpicctra}{1}%
-\addtolength{\Width}{\unitlength}%
-%
-{%
-\ifdim %
-\Width>\Depth %
-\addtocounter{ketpicctra}{6000}%
-%
-\fi%
-}%
-%
-\ifnum\theketpicctra<5000%
-\repeat%
-}%
-\addtocounter{ketpicctra}{-6000}%
-%
-{%
-\ifnum %
-#1>0 %
-\theketpicctra%
-%
-\fi%
-}%
-%
-}%
-\newcommand{\ketcalcheight}[2][0]{%
-\settoheight{\Depth}{#2}%
-\setlength{\Height}{0\unitlength}%
-\setcounter{ketpicctra}{0}%
-\setcounter{ketpicctra}{1}%
-\addtocounter{ketpicctra}{-1}%
-%
-{%
-\loop%
-\addtocounter{ketpicctra}{1}%
-\addtolength{\Height}{\unitlength}%
-%
-{%
-\ifdim %
-\Height>\Depth %
-\addtocounter{ketpicctra}{6000}%
-%
-\fi%
-}%
-%
-\ifnum\theketpicctra<5000%
-\repeat%
-}%
-\addtocounter{ketpicctra}{-6000}%
-%
-{%
-\ifnum %
-#1>0 %
-\theketpicctra%
-%
-\fi%
-}%
-%
-}%
-\newcommand{\ketcalcdepth}[2][0]{%
-\settodepth{\Width}{#2}%
-\setlength{\Depth}{0\unitlength}%
-\setcounter{ketpicctra}{0}%
-\setcounter{ketpicctra}{1}%
-\addtocounter{ketpicctra}{-1}%
-%
-{%
-\loop%
-\addtocounter{ketpicctra}{1}%
-\addtolength{\Depth}{\unitlength}%
-%
-{%
-\ifdim %
-\Depth>\Width %
-\addtocounter{ketpicctra}{5000}%
-%
-\fi%
-}%
-%
-\ifnum\theketpicctra<5000%
-\repeat%
-}%
-\addtocounter{ketpicctra}{-5000}%
-%
-{%
-\ifnum %
-#1>0 %
-\theketpicctra%
-%
-\fi%
-}%
-%
-}%
-\newcommand{\ketcalcwh}[1]{%
-{\unitlength=0.1mm%
-\ketcalcwidth{#1}%
-\setcounter{ketpicctrb}{\value{ketpicctra}}%
-\divide\value{ketpicctrb} by 10%
-\addtocounter{ketpicctrb}{0}%
-\{\theketpicctrb.%
-\multiply\value{ketpicctrb} by 10%
-\addtocounter{ketpicctrb}{0}%
-\addtocounter{ketpicctra}{-\value{ketpicctrb}}%
-\theketpicctra\}\{%
-\ketcalcheight{#1}%
-\setcounter{ketpicctrb}{\value{ketpicctra}}%
-\ketcalcdepth{#1}%
-\addtocounter{ketpicctra}{\value{ketpicctrb}}%
-\setcounter{ketpicctrb}{\value{ketpicctra}}%
-\divide\value{ketpicctrb} by 10%
-\addtocounter{ketpicctrb}{0}%
-\theketpicctrb.%
-\multiply\value{ketpicctrb} by 10%
-\addtocounter{ketpicctrb}{0}%
-\addtocounter{ketpicctra}{-\value{ketpicctrb}}%
-\theketpicctra\}%
-%
-}%
-%
-}%
-\newcommand{\dangerbendmark}[1][1]{%
-\def\tmpcontents{%
-{\unitlength=0.911mm%
-\begin{picture}%
-( 3.85072, 4.34364)( 3.18982, 4.86836)%
-\special{pn 8}%
-%
-\special{pa 229 -200}\special{pa 211 -204}\special{pa 195 -208}\special{pa 183 -210}%
-\special{pa 173 -212}\special{pa 166 -213}\special{pa 160 -214}\special{pa 155 -215}%
-\special{pa 151 -215}\special{pa 149 -215}\special{pa 146 -215}\special{pa 143 -216}%
-\special{pa 142 -217}\special{pa 141 -218}\special{pa 142 -220}\special{pa 146 -222}%
-\special{pa 152 -226}\special{pa 160 -229}\special{pa 169 -233}\special{pa 180 -237}%
-\special{pa 190 -241}\special{pa 201 -245}\special{pa 211 -248}\special{pa 221 -252}%
-\special{pa 229 -255}\special{pa 235 -258}\special{pa 240 -260}\special{pa 243 -263}%
-\special{pa 246 -266}\special{pa 248 -270}\special{pa 250 -275}\special{pa 251 -280}%
-\special{pa 252 -286}\special{pa 253 -292}\special{pa 252 -298}\special{pa 249 -302}%
-\special{pa 245 -306}\special{pa 240 -309}\special{pa 235 -312}\special{pa 228 -314}%
-\special{pa 221 -316}\special{pa 214 -319}\special{pa 207 -320}\special{pa 198 -322}%
-\special{pa 190 -324}\special{pa 181 -326}\special{pa 172 -327}\special{pa 163 -328}%
-\special{pa 153 -329}\special{pa 142 -330}\special{pa 142 -330}\special{pa 142 -329}%
-\special{pa 142 -329}\special{pa 142 -328}\special{pa 142 -328}\special{pa 142 -327}%
-\special{pa 142 -327}\special{pa 142 -326}\special{pa 142 -326}\special{pa 142 -325}%
-\special{pa 141 -325}\special{pa 141 -324}\special{pa 141 -324}\special{pa 141 -323}%
-\special{pa 141 -323}\special{pa 141 -322}\special{pa 141 -322}\special{pa 141 -321}%
-\special{pa 141 -321}\special{pa 141 -320}\special{pa 141 -320}\special{pa 141 -319}%
-\special{pa 141 -319}\special{pa 141 -318}\special{pa 141 -318}\special{pa 141 -317}%
-\special{pa 140 -317}\special{pa 140 -316}\special{pa 140 -316}\special{pa 140 -315}%
-\special{pa 140 -315}\special{pa 140 -314}\special{pa 140 -313}\special{pa 140 -313}%
-\special{pa 140 -312}\special{pa 140 -312}\special{pa 140 -311}\special{pa 140 -311}%
-\special{pa 140 -310}\special{pa 140 -310}\special{pa 140 -309}\special{pa 140 -309}%
-\special{pa 139 -308}\special{pa 139 -308}\special{pa 139 -307}\special{pa 139 -307}%
-\special{pa 139 -306}\special{pa 139 -306}\special{pa 139 -305}\special{pa 159 -301}%
-\special{pa 175 -297}\special{pa 188 -294}\special{pa 198 -293}\special{pa 206 -292}%
-\special{pa 211 -291}\special{pa 215 -291}\special{pa 217 -290}\special{pa 218 -290}%
-\special{pa 219 -289}\special{pa 219 -289}\special{pa 219 -287}\special{pa 219 -286}%
-\special{pa 219 -285}\special{pa 220 -284}\special{pa 220 -283}\special{pa 220 -283}%
-\special{pa 219 -282}\special{pa 215 -280}\special{pa 210 -278}\special{pa 201 -275}%
-\special{pa 190 -272}\special{pa 179 -268}\special{pa 167 -264}\special{pa 155 -259}%
-\special{pa 145 -255}\special{pa 136 -251}\special{pa 128 -246}\special{pa 122 -242}%
-\special{pa 118 -238}\special{pa 116 -234}\special{pa 115 -230}\special{pa 114 -225}%
-\special{pa 115 -221}\special{pa 115 -216}\special{pa 116 -211}\special{pa 118 -206}%
-\special{pa 121 -202}\special{pa 125 -197}\special{pa 132 -194}\special{pa 140 -190}%
-\special{pa 150 -188}\special{pa 160 -185}\special{pa 171 -183}\special{pa 183 -181}%
-\special{pa 194 -180}\special{pa 205 -178}\special{pa 215 -176}\special{pa 224 -175}%
-\special{pa 224 -175}\special{pa 224 -176}\special{pa 224 -176}\special{pa 224 -176}%
-\special{pa 224 -177}\special{pa 224 -177}\special{pa 224 -178}\special{pa 225 -178}%
-\special{pa 225 -179}\special{pa 225 -179}\special{pa 225 -180}\special{pa 225 -180}%
-\special{pa 225 -181}\special{pa 225 -181}\special{pa 225 -182}\special{pa 225 -182}%
-\special{pa 226 -183}\special{pa 226 -183}\special{pa 226 -184}\special{pa 226 -184}%
-\special{pa 226 -184}\special{pa 226 -185}\special{pa 226 -185}\special{pa 226 -186}%
-\special{pa 226 -186}\special{pa 227 -187}\special{pa 227 -187}\special{pa 227 -188}%
-\special{pa 227 -188}\special{pa 227 -189}\special{pa 227 -189}\special{pa 227 -190}%
-\special{pa 227 -190}\special{pa 227 -191}\special{pa 227 -191}\special{pa 228 -192}%
-\special{pa 228 -192}\special{pa 228 -192}\special{pa 228 -193}\special{pa 228 -193}%
-\special{pa 228 -194}\special{pa 228 -194}\special{pa 228 -195}\special{pa 228 -195}%
-\special{pa 229 -196}\special{pa 229 -196}\special{pa 229 -197}\special{pa 229 -197}%
-\special{pa 229 -198}\special{pa 229 -200}\special{sh 1}\special{ip}%
-\special{pn 8}%
-\special{pa 229 -200}\special{pa 211 -204}\special{pa 195 -208}\special{pa 183 -210}%
-\special{pa 173 -212}\special{pa 166 -213}\special{pa 160 -214}\special{pa 155 -215}%
-\special{pa 151 -215}\special{pa 149 -215}\special{pa 146 -215}\special{pa 143 -216}%
-\special{pa 142 -217}\special{pa 141 -218}\special{pa 142 -220}\special{pa 146 -222}%
-\special{pa 152 -226}\special{pa 160 -229}\special{pa 169 -233}\special{pa 180 -237}%
-\special{pa 190 -241}\special{pa 201 -245}\special{pa 211 -248}\special{pa 221 -252}%
-\special{pa 229 -255}\special{pa 235 -258}\special{pa 240 -260}\special{pa 243 -263}%
-\special{pa 246 -266}\special{pa 248 -270}\special{pa 250 -275}\special{pa 251 -280}%
-\special{pa 252 -286}\special{pa 253 -292}\special{pa 252 -298}\special{pa 249 -302}%
-\special{pa 245 -306}\special{pa 240 -309}\special{pa 235 -312}\special{pa 228 -314}%
-\special{pa 221 -316}\special{pa 214 -319}\special{pa 207 -320}\special{pa 198 -322}%
-\special{pa 190 -324}\special{pa 181 -326}\special{pa 172 -327}\special{pa 163 -328}%
-\special{pa 153 -329}\special{pa 142 -330}%
-\special{fp}%
-\special{pa 142 -330}\special{pa 142 -330}\special{pa 142 -329}\special{pa 142 -329}%
-\special{pa 142 -328}\special{pa 142 -328}\special{pa 142 -327}\special{pa 142 -327}%
-\special{pa 142 -326}\special{pa 142 -326}\special{pa 142 -325}\special{pa 141 -325}%
-\special{pa 141 -324}\special{pa 141 -324}\special{pa 141 -323}\special{pa 141 -323}%
-\special{pa 141 -322}\special{pa 141 -322}\special{pa 141 -321}\special{pa 141 -321}%
-\special{pa 141 -320}\special{pa 141 -320}\special{pa 141 -319}\special{pa 141 -319}%
-\special{pa 141 -318}\special{pa 141 -318}\special{pa 141 -317}\special{pa 140 -317}%
-\special{pa 140 -316}\special{pa 140 -316}\special{pa 140 -315}\special{pa 140 -315}%
-\special{pa 140 -314}\special{pa 140 -313}\special{pa 140 -313}\special{pa 140 -312}%
-\special{pa 140 -312}\special{pa 140 -311}\special{pa 140 -311}\special{pa 140 -310}%
-\special{pa 140 -310}\special{pa 140 -309}\special{pa 140 -309}\special{pa 139 -308}%
-\special{pa 139 -308}\special{pa 139 -307}\special{pa 139 -307}\special{pa 139 -306}%
-\special{pa 139 -306}\special{pa 139 -305}%
-\special{fp}%
-\special{pa 139 -305}\special{pa 159 -301}\special{pa 175 -297}\special{pa 188 -294}%
-\special{pa 198 -293}\special{pa 206 -292}\special{pa 211 -291}\special{pa 215 -291}%
-\special{pa 217 -290}\special{pa 218 -290}\special{pa 219 -289}\special{pa 219 -289}%
-\special{pa 219 -287}\special{pa 219 -286}\special{pa 219 -285}\special{pa 220 -284}%
-\special{pa 220 -283}\special{pa 220 -283}\special{pa 219 -282}\special{pa 215 -280}%
-\special{pa 210 -278}\special{pa 201 -275}\special{pa 190 -272}\special{pa 179 -268}%
-\special{pa 167 -264}\special{pa 155 -259}\special{pa 145 -255}\special{pa 136 -251}%
-\special{pa 128 -246}\special{pa 122 -242}\special{pa 118 -238}\special{pa 116 -234}%
-\special{pa 115 -230}\special{pa 114 -225}\special{pa 115 -221}\special{pa 115 -216}%
-\special{pa 116 -211}\special{pa 118 -206}\special{pa 121 -202}\special{pa 125 -197}%
-\special{pa 132 -194}\special{pa 140 -190}\special{pa 150 -188}\special{pa 160 -185}%
-\special{pa 171 -183}\special{pa 183 -181}\special{pa 194 -180}\special{pa 205 -178}%
-\special{pa 215 -176}\special{pa 224 -175}%
-\special{fp}%
-\special{pa 224 -175}\special{pa 224 -175}\special{pa 224 -176}\special{pa 224 -176}%
-\special{pa 224 -176}\special{pa 224 -177}\special{pa 224 -177}\special{pa 224 -178}%
-\special{pa 225 -178}\special{pa 225 -179}\special{pa 225 -179}\special{pa 225 -180}%
-\special{pa 225 -180}\special{pa 225 -181}\special{pa 225 -181}\special{pa 225 -182}%
-\special{pa 225 -182}\special{pa 226 -183}\special{pa 226 -183}\special{pa 226 -184}%
-\special{pa 226 -184}\special{pa 226 -184}\special{pa 226 -185}\special{pa 226 -185}%
-\special{pa 226 -186}\special{pa 226 -186}\special{pa 227 -187}\special{pa 227 -187}%
-\special{pa 227 -188}\special{pa 227 -188}\special{pa 227 -189}\special{pa 227 -189}%
-\special{pa 227 -190}\special{pa 227 -190}\special{pa 227 -191}\special{pa 227 -191}%
-\special{pa 228 -192}\special{pa 228 -192}\special{pa 228 -192}\special{pa 228 -193}%
-\special{pa 228 -193}\special{pa 228 -194}\special{pa 228 -194}\special{pa 228 -195}%
-\special{pa 228 -195}\special{pa 229 -196}\special{pa 229 -196}\special{pa 229 -197}%
-\special{pa 229 -197}\special{pa 229 -198}%
-\special{fp}%
-\special{pn 8}%
-\end{picture}}%%
-}%
-\scalebox{#1}{\tmpcontents}%
-%
-}%
-\newcommand{\cautionmark}[1][1]{%
-\scalebox{#1}{%
-{\unitlength=1mm%
-\begin{picture}%
-( 4.60000, 3.98372)( -2.30000, 0.00000)%
-\special{pn 8}%
-%
-\special{pn 12}%
-\special{pa -91 -0}\special{pa 91 -0}\special{pa 0 -157}\special{pa -91 -0}%
-\special{fp}%
-\special{pn 2}%
-\special{pa 12 -22}\special{pa 11 -25}\special{pa 10 -29}\special{pa 7 -31}\special{pa 4 -33}%
-\special{pa 0 -33}\special{pa -4 -33}\special{pa -7 -31}\special{pa -10 -29}\special{pa -11 -25}%
-\special{pa -12 -22}\special{pa -11 -18}\special{pa -10 -15}\special{pa -7 -12}\special{pa -4 -10}%
-\special{pa -0 -10}\special{pa 4 -10}\special{pa 7 -12}\special{pa 10 -15}\special{pa 11 -18}%
-\special{pa 12 -22}%
-\special{fp}%
-\special{pa 0 -47}\special{pa 4 -49}\special{pa 8 -54}\special{pa 11 -60}\special{pa 13 -67}%
-\special{pa 14 -75}\special{pa 16 -82}\special{pa 17 -88}\special{pa 18 -94}\special{pa 18 -98}%
-\special{pa 16 -102}\special{pa 14 -105}\special{pa 11 -108}\special{pa 7 -110}\special{pa 2 -112}%
-\special{pa -3 -112}\special{pa -7 -110}\special{pa -11 -108}\special{pa -14 -105}%
-\special{pa -16 -102}\special{pa -17 -98}\special{pa -17 -93}\special{pa -17 -88}%
-\special{pa -16 -82}\special{pa -15 -75}\special{pa -13 -67}\special{pa -11 -60}\special{pa -8 -53}%
-\special{pa -4 -49}\special{pa 0 -47}%
-\special{fp}%
-\special{pn 8}%
-\special{pa 12 -22}\special{pa 11 -25}\special{pa 10 -29}\special{pa 7 -31}\special{pa 4 -33}%
-\special{pa 0 -33}\special{pa -4 -33}\special{pa -7 -31}\special{pa -10 -29}\special{pa -11 -25}%
-\special{pa -12 -22}\special{pa -11 -18}\special{pa -10 -15}\special{pa -7 -12}\special{pa -4 -10}%
-\special{pa -0 -10}\special{pa 4 -10}\special{pa 7 -12}\special{pa 10 -15}\special{pa 11 -18}%
-\special{pa 12 -22}\special{sh 1}\special{ip}%
-\special{pa 0 -47}\special{pa 4 -49}\special{pa 8 -54}\special{pa 11 -60}\special{pa 13 -67}%
-\special{pa 14 -75}\special{pa 16 -82}\special{pa 17 -88}\special{pa 18 -94}\special{pa 18 -98}%
-\special{pa 16 -102}\special{pa 14 -105}\special{pa 11 -108}\special{pa 7 -110}\special{pa 2 -112}%
-\special{pa -3 -112}\special{pa -7 -110}\special{pa -11 -108}\special{pa -14 -105}%
-\special{pa -16 -102}\special{pa -17 -98}\special{pa -17 -93}\special{pa -17 -88}%
-\special{pa -16 -82}\special{pa -15 -75}\special{pa -13 -67}\special{pa -11 -60}\special{pa -8 -53}%
-\special{pa -4 -49}\special{pa 0 -47}\special{sh 1}\special{ip}%
-\end{picture}}%%
-}%
-%
-}%
-\newcommand{\circlemark}[2][8]{%
-\scalebox{#2}{%
-{\unitlength=1mm%
-\begin{picture}%
-( 4.00000, 4.00000)( -2.00000, -2.00000)%
-\special{pn 8}%
-%
-\special{pn #1}%
-\special{pa 79 -0}\special{pa 78 -10}\special{pa 76 -20}\special{pa 73 -29}\special{pa 69 -38}%
-\special{pa 64 -46}\special{pa 57 -54}\special{pa 50 -61}\special{pa 42 -66}\special{pa 34 -71}%
-\special{pa 24 -75}\special{pa 15 -77}\special{pa 5 -79}\special{pa -5 -79}\special{pa -15 -77}%
-\special{pa -24 -75}\special{pa -34 -71}\special{pa -42 -66}\special{pa -50 -61}\special{pa -57 -54}%
-\special{pa -64 -46}\special{pa -69 -38}\special{pa -73 -29}\special{pa -76 -20}\special{pa -78 -10}%
-\special{pa -79 0}\special{pa -78 10}\special{pa -76 20}\special{pa -73 29}\special{pa -69 38}%
-\special{pa -64 46}\special{pa -57 54}\special{pa -50 61}\special{pa -42 66}\special{pa -34 71}%
-\special{pa -24 75}\special{pa -15 77}\special{pa -5 79}\special{pa 5 79}\special{pa 15 77}%
-\special{pa 24 75}\special{pa 34 71}\special{pa 42 66}\special{pa 50 61}\special{pa 57 54}%
-\special{pa 64 46}\special{pa 69 38}\special{pa 73 29}\special{pa 76 20}\special{pa 78 10}%
-\special{pa 79 -0}%
-\special{fp}%
-\end{picture}}%%
-}%
-%
-}%
-\newcommand{\circleshade}[3][8]{%
-\scalebox{#2}{%
-{\unitlength=1mm%
-\begin{picture}%
-( 4.00000, 4.00000)( -2.00000, -2.00000)%
-\special{pn 8}%
-%
-\special{pn #1}%
-\special{pa 79 -0}\special{pa 78 -10}\special{pa 76 -20}\special{pa 73 -29}\special{pa 69 -38}%
-\special{pa 64 -46}\special{pa 57 -54}\special{pa 50 -61}\special{pa 42 -66}\special{pa 34 -71}%
-\special{pa 24 -75}\special{pa 15 -77}\special{pa 5 -79}\special{pa -5 -79}\special{pa -15 -77}%
-\special{pa -24 -75}\special{pa -34 -71}\special{pa -42 -66}\special{pa -50 -61}\special{pa -57 -54}%
-\special{pa -64 -46}\special{pa -69 -38}\special{pa -73 -29}\special{pa -76 -20}\special{pa -78 -10}%
-\special{pa -79 0}\special{pa -78 10}\special{pa -76 20}\special{pa -73 29}\special{pa -69 38}%
-\special{pa -64 46}\special{pa -57 54}\special{pa -50 61}\special{pa -42 66}\special{pa -34 71}%
-\special{pa -24 75}\special{pa -15 77}\special{pa -5 79}\special{pa 5 79}\special{pa 15 77}%
-\special{pa 24 75}\special{pa 34 71}\special{pa 42 66}\special{pa 50 61}\special{pa 57 54}%
-\special{pa 64 46}\special{pa 69 38}\special{pa 73 29}\special{pa 76 20}\special{pa 78 10}%
-\special{pa 79 -0}\special{sh #3}\special{ip}%
-\special{pa 79 -0}\special{pa 78 -10}\special{pa 76 -20}\special{pa 73 -29}\special{pa 69 -38}%
-\special{pa 64 -46}\special{pa 57 -54}\special{pa 50 -61}\special{pa 42 -66}\special{pa 34 -71}%
-\special{pa 24 -75}\special{pa 15 -77}\special{pa 5 -79}\special{pa -5 -79}\special{pa -15 -77}%
-\special{pa -24 -75}\special{pa -34 -71}\special{pa -42 -66}\special{pa -50 -61}\special{pa -57 -54}%
-\special{pa -64 -46}\special{pa -69 -38}\special{pa -73 -29}\special{pa -76 -20}\special{pa -78 -10}%
-\special{pa -79 0}\special{pa -78 10}\special{pa -76 20}\special{pa -73 29}\special{pa -69 38}%
-\special{pa -64 46}\special{pa -57 54}\special{pa -50 61}\special{pa -42 66}\special{pa -34 71}%
-\special{pa -24 75}\special{pa -15 77}\special{pa -5 79}\special{pa 5 79}\special{pa 15 77}%
-\special{pa 24 75}\special{pa 34 71}\special{pa 42 66}\special{pa 50 61}\special{pa 57 54}%
-\special{pa 64 46}\special{pa 69 38}\special{pa 73 29}\special{pa 76 20}\special{pa 78 10}%
-\special{pa 79 -0}%
-\special{fp}%
-\end{picture}}%%
-}%
-%
-}%
-% 2016.04.07
-\newcommand{\nelarrow}[1][1]{%
-\scalebox{#1}{\raisebox{-2.5pt}{%
-{\unitlength=1pt%
-\begin{picture}%
-( 10.00000, 10.00000)( -5.00000, -5.00000)%
-\special{pn 8}%
-%
-\special{pa -55 55}\special{pa -40 54}\special{pa -24 51}\special{pa -10 45}\special{pa 4 38}%
-\special{pa 17 29}\special{pa 28 18}\special{pa 37 5}\special{pa 45 -9}\special{pa 51 -23}%
-\special{pa 54 -39}%
-\special{fp}%
-\special{pa 61 -16}\special{pa 55 -55}\special{pa 37 -20}\special{pa 49 -18}\special{pa 61 -16}%
-\special{sh 1}\special{ip}%
-\special{pn 1}%
-\special{pa 61 -16}\special{pa 55 -55}\special{pa 37 -20}\special{pa 49 -18}\special{pa 61 -16}%
-\special{pa 55 -55}%
-\special{fp}%
-\special{pn 8}%
-\end{picture}}%
-}}}%
-\newcommand{\nerarrow}[1][1]{%
-\scalebox{#1}{\raisebox{-2.5pt}{%
-{\unitlength=1pt%
-\begin{picture}%
-( 10.00000, 10.00000)( -5.00000, -5.00000)%
-\special{pn 8}%
-%
-\special{pa 39 -54}\special{pa 23 -51}\special{pa 9 -45}\special{pa -5 -37}\special{pa -18 -28}%
-\special{pa -29 -17}\special{pa -38 -4}\special{pa -45 10}\special{pa -51 24}\special{pa -54 40}%
-\special{pa -55 55}%
-\special{fp}%
-\special{pa 20 -37}\special{pa 55 -55}\special{pa 16 -61}\special{pa 18 -49}\special{pa 20 -37}%
-\special{sh 1}\special{ip}%
-\special{pn 1}%
-\special{pa 20 -37}\special{pa 55 -55}\special{pa 16 -61}\special{pa 18 -49}\special{pa 20 -37}%
-\special{pa 55 -55}%
-\special{fp}%
-\special{pn 8}%
-\end{picture}}%
-}}}%
-\newcommand{\selarrow}[1][1]{%
-\scalebox{#1}{\raisebox{-2.5pt}{%
-{\unitlength=1pt%
-\begin{picture}%
-( 10.00000, 10.00000)( -5.00000, -5.00000)%
-\special{pn 8}%
-%
-\special{pa -55 -55}\special{pa -54 -40}\special{pa -51 -24}\special{pa -45 -10}\special{pa -38 4}%
-\special{pa -29 17}\special{pa -18 28}\special{pa -5 37}\special{pa 9 45}\special{pa 23 51}%
-\special{pa 39 54}%
-\special{fp}%
-\special{pa 16 61}\special{pa 55 55}\special{pa 20 37}\special{pa 18 49}\special{pa 16 61}%
-\special{sh 1}\special{ip}%
-\special{pn 1}%
-\special{pa 16 61}\special{pa 55 55}\special{pa 20 37}\special{pa 18 49}\special{pa 16 61}%
-\special{pa 55 55}%
-\special{fp}%
-\special{pn 8}%
-\end{picture}}%
-}}}%
-\newcommand{\serarrow}[1][1]{%
-\scalebox{#1}{\raisebox{-2.5pt}{%
-{\unitlength=1pt%
-\begin{picture}%
-( 10.00000, 10.00000)( -5.00000, -5.00000)%
-\special{pn 8}%
-%
-\special{pa 54 39}\special{pa 51 23}\special{pa 45 9}\special{pa 37 -5}\special{pa 28 -18}%
-\special{pa 17 -29}\special{pa 4 -38}\special{pa -10 -45}\special{pa -24 -51}\special{pa -40 -54}%
-\special{pa -55 -55}%
-\special{fp}%
-\special{pa 37 20}\special{pa 55 55}\special{pa 61 16}\special{pa 49 18}\special{pa 37 20}%
-\special{sh 1}\special{ip}%
-\special{pn 1}%
-\special{pa 37 20}\special{pa 55 55}\special{pa 61 16}\special{pa 49 18}\special{pa 37 20}%
-\special{pa 55 55}%
-\special{fp}%
-\special{pn 8}%
-\end{picture}}%
-}}}%
-%%% bendingarrow.sty 2016-12-9 7:41
-%%% bendingarrow.sce 2016-12-9 7:41
-\newcommand{\NEarrow}[1][1]{%
-\scalebox{#1}{\raisebox{-2.5pt}{%
-{\unitlength=1pt%
-\begin{picture}%
-( 10.00000, 10.00000)( 0.00000, 0.00000)%
-\special{pn 8}%
-%
-\special{pa 28 -28}\special{pa 97 -97}%
-\special{fp}%
-\special{pa 91 -68}\special{pa 111 -111}\special{pa 68 -91}\special{pa 86 -86}\special{pa 91 -68}%
-\special{sh 1}\special{ip}%
-\special{pn 1}%
-\special{pa 91 -68}\special{pa 111 -111}\special{pa 68 -91}\special{pa 86 -86}\special{pa 91 -68}%
-\special{pa 111 -111}%
-\special{fp}%
-\special{pn 8}%
-\end{picture}}%%
-}%
-%
-}%
-%
-}%
-\newcommand{\SEarrow}[1][1]{%
-\scalebox{#1}{\raisebox{-2.5pt}{%
-{\unitlength=1pt%
-\begin{picture}%
-( 10.00000, 10.00000)( 0.00000, 0.00000)%
-\special{pn 8}%
-%
-\special{pa 28 -111}\special{pa 97 -42}%
-\special{fp}%
-\special{pa 68 -48}\special{pa 111 -28}\special{pa 91 -70}\special{pa 86 -53}\special{pa 68 -48}%
-\special{sh 1}\special{ip}%
-\special{pn 1}%
-\special{pa 68 -48}\special{pa 111 -28}\special{pa 91 -70}\special{pa 86 -53}\special{pa 68 -48}%
-\special{pa 111 -28}%
-\special{fp}%
-\special{pn 8}%
-\end{picture}}%%
-}%
-%
-}%
-%
-}%
-\newcommand{\NWarrow}[1][1]{%
-\scalebox{#1}{\raisebox{-2.5pt}{%
-{\unitlength=1pt%
-\begin{picture}%
-( 10.00000, 10.00000)( 0.00000, 0.00000)%
-\special{pn 8}%
-%
-\special{pa 111 -28}\special{pa 42 -97}%
-\special{fp}%
-\special{pa 70 -91}\special{pa 28 -111}\special{pa 48 -68}\special{pa 53 -86}\special{pa 70 -91}%
-\special{sh 1}\special{ip}%
-\special{pn 1}%
-\special{pa 70 -91}\special{pa 28 -111}\special{pa 48 -68}\special{pa 53 -86}\special{pa 70 -91}%
-\special{pa 28 -111}%
-\special{fp}%
-\special{pn 8}%
-\end{picture}}%%
-}%
-%
-}%
-%
-}%
-\newcommand{\SWarrow}[1][1]{%
-\scalebox{#1}{\raisebox{-2.5pt}{%
-{\unitlength=1pt%
-\begin{picture}%
-( 10.00000, 10.00000)( 0.00000, 0.00000)%
-\special{pn 8}%
-%
-\special{pa 111 -111}\special{pa 42 -42}%
-\special{fp}%
-\special{pa 48 -70}\special{pa 28 -28}\special{pa 70 -48}\special{pa 53 -53}\special{pa 48 -70}%
-\special{sh 1}\special{ip}%
-\special{pn 1}%
-\special{pa 48 -70}\special{pa 28 -28}\special{pa 70 -48}\special{pa 53 -53}\special{pa 48 -70}%
-\special{pa 28 -28}%
-\special{fp}%
-\special{pn 8}%
-\end{picture}}%%
-}%
-%
-}%
-%
-}%
-\newcommand{\NELarrow}[1][1]{%
-\scalebox{#1}{\raisebox{-2.5pt}{%
-{\unitlength=1pt%
-\begin{picture}%
-( 10.00000, 10.00000)( 0.00000, 0.00000)%
-\special{pn 8}%
-%
-\special{pa 28 -28}\special{pa 33 -28}\special{pa 39 -28}\special{pa 45 -29}\special{pa 50 -31}%
-\special{pa 56 -33}\special{pa 61 -35}\special{pa 66 -37}\special{pa 71 -40}\special{pa 76 -43}%
-\special{pa 80 -46}\special{pa 85 -50}\special{pa 89 -54}\special{pa 92 -59}\special{pa 96 -63}%
-\special{pa 99 -68}\special{pa 102 -73}\special{pa 104 -78}\special{pa 106 -83}\special{pa 108 -89}%
-\special{pa 109 -94}%
-\special{fp}%
-\special{pa 114 -64}\special{pa 111 -111}\special{pa 83 -72}\special{pa 101 -76}\special{pa 114 -64}%
-\special{sh 1}\special{ip}%
-\special{pn 1}%
-\special{pa 114 -64}\special{pa 111 -111}\special{pa 83 -72}\special{pa 101 -76}\special{pa 114 -64}%
-\special{pa 111 -111}%
-\special{fp}%
-\special{pn 8}%
-\end{picture}}%%
-}%
-%
-}%
-%
-}%
-\newcommand{\NERarrow}[1][1]{%
-\scalebox{#1}{\raisebox{-2.5pt}{%
-{\unitlength=1pt%
-\begin{picture}%
-( 10.00000, 10.00000)( 0.00000, 0.00000)%
-\special{pn 8}%
-%
-\special{pa 94 -109}\special{pa 89 -108}\special{pa 83 -106}\special{pa 78 -104}\special{pa 73 -102}%
-\special{pa 68 -99}\special{pa 63 -96}\special{pa 59 -92}\special{pa 54 -89}\special{pa 50 -85}%
-\special{pa 46 -80}\special{pa 43 -76}\special{pa 40 -71}\special{pa 37 -66}\special{pa 35 -61}%
-\special{pa 33 -56}\special{pa 31 -50}\special{pa 29 -45}\special{pa 28 -39}\special{pa 28 -33}%
-\special{pa 28 -28}%
-\special{fp}%
-\special{pa 72 -84}\special{pa 111 -111}\special{pa 64 -115}\special{pa 76 -102}\special{pa 72 -84}%
-\special{sh 1}\special{ip}%
-\special{pn 1}%
-\special{pa 72 -84}\special{pa 111 -111}\special{pa 64 -115}\special{pa 76 -102}\special{pa 72 -84}%
-\special{pa 111 -111}%
-\special{fp}%
-\special{pn 8}%
-\end{picture}}%%
-}%
-%
-}%
-%
-}%
-\newcommand{\SELarrow}[1][1]{%
-\scalebox{#1}{\raisebox{-2.5pt}{%
-{\unitlength=1pt%
-\begin{picture}%
-( 10.00000, 10.00000)( 0.00000, 0.00000)%
-\special{pn 8}%
-%
-\special{pa 28 -111}\special{pa 28 -105}\special{pa 28 -99}\special{pa 29 -94}\special{pa 31 -88}%
-\special{pa 33 -83}\special{pa 35 -78}\special{pa 37 -72}\special{pa 40 -67}\special{pa 43 -63}%
-\special{pa 46 -58}\special{pa 50 -54}\special{pa 54 -50}\special{pa 59 -46}\special{pa 63 -43}%
-\special{pa 68 -40}\special{pa 73 -37}\special{pa 78 -34}\special{pa 83 -32}\special{pa 89 -31}%
-\special{pa 94 -29}%
-\special{fp}%
-\special{pa 64 -24}\special{pa 111 -28}\special{pa 72 -55}\special{pa 76 -37}\special{pa 64 -24}%
-\special{sh 1}\special{ip}%
-\special{pn 1}%
-\special{pa 64 -24}\special{pa 111 -28}\special{pa 72 -55}\special{pa 76 -37}\special{pa 64 -24}%
-\special{pa 111 -28}%
-\special{fp}%
-\special{pn 8}%
-\end{picture}}%%
-}%
-%
-}%
-%
-}%
-\newcommand{\SERarrow}[1][1]{%
-\scalebox{#1}{\raisebox{-2.5pt}{%
-{\unitlength=1pt%
-\begin{picture}%
-( 10.00000, 10.00000)( 0.00000, 0.00000)%
-\special{pn 8}%
-%
-\special{pa 109 -44}\special{pa 108 -50}\special{pa 106 -55}\special{pa 104 -60}\special{pa 102 -66}%
-\special{pa 99 -71}\special{pa 96 -75}\special{pa 92 -80}\special{pa 89 -84}\special{pa 85 -88}%
-\special{pa 80 -92}\special{pa 76 -95}\special{pa 71 -99}\special{pa 66 -101}\special{pa 61 -104}%
-\special{pa 56 -106}\special{pa 50 -108}\special{pa 45 -109}\special{pa 39 -110}\special{pa 33 -111}%
-\special{pa 28 -111}%
-\special{fp}%
-\special{pa 83 -66}\special{pa 111 -28}\special{pa 114 -75}\special{pa 101 -62}\special{pa 83 -66}%
-\special{sh 1}\special{ip}%
-\special{pn 1}%
-\special{pa 83 -66}\special{pa 111 -28}\special{pa 114 -75}\special{pa 101 -62}\special{pa 83 -66}%
-\special{pa 111 -28}%
-\special{fp}%
-\special{pn 8}%
-\end{picture}}%%
-}%
-%
-}%
-%
-}%
-\newcommand{\SWRarrow}[1][1]{%
-\scalebox{#1}{\raisebox{-2.5pt}{%
-{\unitlength=1pt%
-\begin{picture}%
-( 10.00000, 10.00000)( 0.00000, 0.00000)%
-\special{pn 8}%
-%
-\special{pa 44 -29}\special{pa 50 -31}\special{pa 55 -32}\special{pa 60 -34}\special{pa 66 -37}%
-\special{pa 71 -40}\special{pa 75 -43}\special{pa 80 -46}\special{pa 84 -50}\special{pa 88 -54}%
-\special{pa 92 -58}\special{pa 95 -63}\special{pa 99 -67}\special{pa 101 -72}\special{pa 104 -78}%
-\special{pa 106 -83}\special{pa 108 -88}\special{pa 109 -94}\special{pa 110 -99}\special{pa 111 -105}%
-\special{pa 111 -111}%
-\special{fp}%
-\special{pa 67 -55}\special{pa 28 -28}\special{pa 75 -24}\special{pa 62 -37}\special{pa 67 -55}%
-\special{sh 1}\special{ip}%
-\special{pn 1}%
-\special{pa 67 -55}\special{pa 28 -28}\special{pa 75 -24}\special{pa 62 -37}\special{pa 67 -55}%
-\special{pa 28 -28}%
-\special{fp}%
-\special{pn 8}%
-\end{picture}}%%
-}%
-%
-}%
-%
-}%
-\newcommand{\SWLarrow}[1][1]{%
-\scalebox{#1}{\raisebox{-2.5pt}{%
-{\unitlength=1pt%
-\begin{picture}%
-( 10.00000, 10.00000)( 0.00000, 0.00000)%
-\special{pn 8}%
-%
-\special{pa 111 -111}\special{pa 105 -111}\special{pa 99 -110}\special{pa 94 -109}%
-\special{pa 88 -108}\special{pa 83 -106}\special{pa 78 -104}\special{pa 72 -101}\special{pa 67 -99}%
-\special{pa 63 -95}\special{pa 58 -92}\special{pa 54 -88}\special{pa 50 -84}\special{pa 46 -80}%
-\special{pa 43 -75}\special{pa 40 -71}\special{pa 37 -66}\special{pa 34 -60}\special{pa 32 -55}%
-\special{pa 31 -50}\special{pa 29 -44}%
-\special{fp}%
-\special{pa 24 -75}\special{pa 28 -28}\special{pa 55 -66}\special{pa 37 -62}\special{pa 24 -75}%
-\special{sh 1}\special{ip}%
-\special{pn 1}%
-\special{pa 24 -75}\special{pa 28 -28}\special{pa 55 -66}\special{pa 37 -62}\special{pa 24 -75}%
-\special{pa 28 -28}%
-\special{fp}%
-\special{pn 8}%
-\end{picture}}%%
-}%
-%
-}%
-%
-}%
-\newcommand{\NWRarrow}[1][1]{%
-\scalebox{#1}{\raisebox{-2.5pt}{%
-{\unitlength=1pt%
-\begin{picture}%
-( 10.00000, 10.00000)( 0.00000, 0.00000)%
-\special{pn 8}%
-%
-\special{pa 29 -94}\special{pa 31 -89}\special{pa 32 -83}\special{pa 34 -78}\special{pa 37 -73}%
-\special{pa 40 -68}\special{pa 43 -63}\special{pa 46 -59}\special{pa 50 -54}\special{pa 54 -50}%
-\special{pa 58 -46}\special{pa 63 -43}\special{pa 67 -40}\special{pa 72 -37}\special{pa 78 -35}%
-\special{pa 83 -33}\special{pa 88 -31}\special{pa 94 -29}\special{pa 99 -28}\special{pa 105 -28}%
-\special{pa 111 -28}%
-\special{fp}%
-\special{pa 55 -72}\special{pa 28 -111}\special{pa 24 -64}\special{pa 37 -76}\special{pa 55 -72}%
-\special{sh 1}\special{ip}%
-\special{pn 1}%
-\special{pa 55 -72}\special{pa 28 -111}\special{pa 24 -64}\special{pa 37 -76}\special{pa 55 -72}%
-\special{pa 28 -111}%
-\special{fp}%
-\special{pn 8}%
-\end{picture}}%%
-}%
-%
-}%
-%
-}%
-\newcommand{\NWLarrow}[1][1]{%
-\scalebox{#1}{\raisebox{-2.5pt}{%
-{\unitlength=1pt%
-\begin{picture}%
-( 10.00000, 10.00000)( 0.00000, 0.00000)%
-\special{pn 8}%
-%
-\special{pa 111 -28}\special{pa 111 -33}\special{pa 110 -39}\special{pa 109 -45}\special{pa 108 -50}%
-\special{pa 106 -56}\special{pa 104 -61}\special{pa 101 -66}\special{pa 99 -71}\special{pa 95 -76}%
-\special{pa 92 -80}\special{pa 88 -85}\special{pa 84 -89}\special{pa 80 -92}\special{pa 75 -96}%
-\special{pa 71 -99}\special{pa 66 -102}\special{pa 60 -104}\special{pa 55 -106}\special{pa 50 -108}%
-\special{pa 44 -109}%
-\special{fp}%
-\special{pa 75 -115}\special{pa 28 -111}\special{pa 67 -84}\special{pa 62 -102}\special{pa 75 -115}%
-\special{sh 1}\special{ip}%
-\special{pn 1}%
-\special{pa 75 -115}\special{pa 28 -111}\special{pa 67 -84}\special{pa 62 -102}\special{pa 75 -115}%
-\special{pa 28 -111}%
-\special{fp}%
-\special{pn 8}%
-\end{picture}}%%
-}%
-%
-}%
-%
-}%
diff --git a/texmf-dist/tex/latex/ketcindy/ketpic2e.sty b/texmf-dist/tex/latex/ketcindy/ketpic2e.sty
deleted file mode 100644
index b9b3d3ea..00000000
--- a/texmf-dist/tex/latex/ketcindy/ketpic2e.sty
+++ /dev/null
@@ -1,680 +0,0 @@
-%Copyright (C) 2014 Setsuo Takato, KETpic developer team
-%*
-%* This program is free software: you can redistribute it and/or modify
-%* it under the terms of the GNU General Public License as published by
-%* the Free Software Foundation; either version 3 of the License, or
-%* (at your option) any later version.
-%*
-%* This program is distributed in the hope that it will be useful,
-%* but WITHOUT ANY WARRANTY; without even the implied warranty of
-%* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-%* GNU General Public License for more details.
-%*
-%* You should have received a copy of the GNU General Public License
-%* along with this program. If not, see <http://www.gnu.org/licenses/>
-% 2016.12.08
-% NEarrow,..., NERarrow,... added
-% argument(option)=size
-% 2016.04.07
-% ketcindy, selarrow, serarrow, nelarrow, nerarrow
-% 2010.09.17 %
-%
-\newcounter{ketpicctra}%
-\newcounter{ketpicctrb}%
-\newcounter{ketpicctrc}%
-\newcounter{ketpicctrd}%
-\newcounter{ketpicctre}%
-\newcounter{ketpicctrf}%
-\newcounter{ketpicctrg}%
-\newcounter{ketpicctrh}%
-\newcounter{ketpicctri}%
-\newcounter{ketpicctrj}%
-\def\ketpic{%
-{K\kern-.20em\lower.5ex\hbox{E}\kern-.125em{Tpic}}%
-%
-}%
-\def\ketcindy{{K\kern-.20em%
-\lower.5ex\hbox{E}\kern-.125em{TCindy}}}%
-\def\KeTpic{\ketpic}%
-\def\KeTCindy{\ketcindy}%
-\newlength{\Width}%
-\newlength{\Height}%
-\newlength{\Depth}%
-\newcommand{\Ltab}[2]{%
-\settowidth{\Width}{#2}%
-\setlength{\Width}{-\Width}%
-\addtolength{\Width}{#1}%
-#2\hspace{\Width}\mbox{}%
-%
-}%
-\newcommand{\Rtab}[2]{%
-\settowidth{\Width}{#2}%
-\setlength{\Width}{-\Width}%
-\addtolength{\Width}{#1}%
-\hspace*{\Width}#2\mbox{}%
-%
-}%
-\newcommand{\Ctab}[2]{%
-\settowidth{\Width}{#2}%
-\setlength{\Width}{-\Width}%
-\addtolength{\Width}{#1}%
-\setlength{\Width}{0.5\Width}%
-\hspace*{\Width}#2\hspace{\Width}\mbox{}%
-%
-}%
-\newcommand{\vbackward}[1]{%
-\settoheight{\Height}{#1}%
-\vspace*{-\Height}%
-%
-}%
-\newcommand{\vforward}[1]{%
-\settoheight{\Height}{#1}%
-\vspace*{\Height}%
-%
-}%
-\newcommand{\usepack}{%
-\usepackage{amsmath,amssymb}%
-\usepackage{graphicx}%
-\usepackage{color}%
-%
-}%
-\newcommand{\setmargin}[4]{%
-\setlength{\oddsidemargin}{-25.4mm}%
-\addtolength{\oddsidemargin}{#1 mm}%
-\setlength{\textwidth}{\paperwidth}%
-\addtolength{\textwidth}{-#1 mm}%
-\addtolength{\textwidth}{-#2 mm}%
-\setlength{\headheight}{0mm}%
-\setlength{\headsep}{0mm}%
-\setlength{\topmargin}{-25.4mm}%
-\addtolength{\topmargin}{#3 mm}%
-\setlength{\textheight}{\paperheight}%
-\addtolength{\textheight}{-#3 mm}%
-\addtolength{\textheight}{-#4 mm}%
-%
-}%
-\newcommand{\ketcalcwidth}[2][0]{%
-\settowidth{\Depth}{#2}%
-\setlength{\Width}{0\unitlength}%
-\setcounter{ketpicctra}{0}%
-\setcounter{ketpicctra}{1}%
-\addtocounter{ketpicctra}{-1}%
-%
-{%
-\loop%
-\addtocounter{ketpicctra}{1}%
-\addtolength{\Width}{\unitlength}%
-%
-{%
-\ifdim %
-\Width>\Depth %
-\addtocounter{ketpicctra}{6000}%
-%
-\fi%
-}%
-%
-\ifnum\theketpicctra<5000%
-\repeat%
-}%
-\addtocounter{ketpicctra}{-6000}%
-%
-{%
-\ifnum %
-#1>0 %
-\theketpicctra%
-%
-\fi%
-}%
-%
-}%
-\newcommand{\ketcalcheight}[2][0]{%
-\settoheight{\Depth}{#2}%
-\setlength{\Height}{0\unitlength}%
-\setcounter{ketpicctra}{0}%
-\setcounter{ketpicctra}{1}%
-\addtocounter{ketpicctra}{-1}%
-%
-{%
-\loop%
-\addtocounter{ketpicctra}{1}%
-\addtolength{\Height}{\unitlength}%
-%
-{%
-\ifdim %
-\Height>\Depth %
-\addtocounter{ketpicctra}{6000}%
-%
-\fi%
-}%
-%
-\ifnum\theketpicctra<5000%
-\repeat%
-}%
-\addtocounter{ketpicctra}{-6000}%
-%
-{%
-\ifnum %
-#1>0 %
-\theketpicctra%
-%
-\fi%
-}%
-%
-}%
-\newcommand{\ketcalcdepth}[2][0]{%
-\settodepth{\Width}{#2}%
-\setlength{\Depth}{0\unitlength}%
-\setcounter{ketpicctra}{0}%
-\setcounter{ketpicctra}{1}%
-\addtocounter{ketpicctra}{-1}%
-%
-{%
-\loop%
-\addtocounter{ketpicctra}{1}%
-\addtolength{\Depth}{\unitlength}%
-%
-{%
-\ifdim %
-\Depth>\Width %
-\addtocounter{ketpicctra}{5000}%
-%
-\fi%
-}%
-%
-\ifnum\theketpicctra<5000%
-\repeat%
-}%
-\addtocounter{ketpicctra}{-5000}%
-%
-{%
-\ifnum %
-#1>0 %
-\theketpicctra%
-%
-\fi%
-}%
-%
-}%
-\newcommand{\ketcalcwh}[1]{%
-{\unitlength=0.1mm%
-\ketcalcwidth{#1}%
-\setcounter{ketpicctrb}{\value{ketpicctra}}%
-\divide\value{ketpicctrb} by 10%
-\addtocounter{ketpicctrb}{0}%
-\{\theketpicctrb.%
-\multiply\value{ketpicctrb} by 10%
-\addtocounter{ketpicctrb}{0}%
-\addtocounter{ketpicctra}{-\value{ketpicctrb}}%
-\theketpicctra\}\{%
-\ketcalcheight{#1}%
-\setcounter{ketpicctrb}{\value{ketpicctra}}%
-\ketcalcdepth{#1}%
-\addtocounter{ketpicctra}{\value{ketpicctrb}}%
-\setcounter{ketpicctrb}{\value{ketpicctra}}%
-\divide\value{ketpicctrb} by 10%
-\addtocounter{ketpicctrb}{0}%
-\theketpicctrb.%
-\multiply\value{ketpicctrb} by 10%
-\addtocounter{ketpicctrb}{0}%
-\addtocounter{ketpicctra}{-\value{ketpicctrb}}%
-\theketpicctra\}%
-%
-}%
-%
-}%
-\newcommand{\dangerbendmark}[1][1]{%
-\def\tmpcontents{%
-{\unitlength=0.911mm%
-\begin{picture}%
-( 3.85104, 4.34364)( 3.18983, 4.86836)%
-\linethickness{0.008in}%
-%
-\polygon*(6.38428,5.56800)(5.81904,5.70600)(5.36381,5.80921)(5.00440,5.88297)(4.72661,5.93266)%
-(4.51623,5.96364)(4.35907,5.98127)(4.24093,5.99092)(4.14761,5.99794)(4.06496,6.00771)%
-(3.98898,6.02518)(3.93831,6.05448)(3.93468,6.09958)(3.99978,6.16449)(4.15166,6.25226)%
-(4.38123,6.35904)(4.66723,6.47789)(4.98836,6.60185)(5.32339,6.72405)(5.65390,6.84014)%
-(5.96513,6.94907)(6.24257,7.05003)(6.47172,7.14220)(6.64276,7.22661)(6.76463,7.31164)%
-(6.85098,7.40753)(6.91544,7.52450)(6.97077,7.67186)(7.01627,7.84507)(7.04088,8.02894)%
-(7.03329,8.20802)(6.98222,8.36687)(6.88214,8.49624)(6.74033,8.60073)(6.56582,8.68676)%
-(6.36764,8.76079)(6.15404,8.82871)(5.92745,8.89231)(5.68774,8.95154)(5.43473,9.00634)%
-(5.16827,9.05667)(4.88820,9.10245)(4.59435,9.14364)(4.28655,9.18018)(3.96466,9.21200)%
-(3.94280,9.03709)(3.92093,8.86218)(3.89907,8.68727)(3.87720,8.51236)(4.48711,8.36772)%
-(4.97210,8.26299)(5.34677,8.19129)(5.62571,8.14578)(5.82354,8.11957)(5.95483,8.10581)%
-(6.03419,8.09764)(6.07621,8.08818)(6.09549,8.07060)(6.10389,8.04155)(6.10727,8.00555)%
-(6.11068,7.96817)(6.11914,7.93497)(6.13500,7.91026)(6.14070,7.88899)(6.10976,7.86195)%
-(6.01565,7.81987)(5.83248,7.75368)(5.55828,7.66096)(5.22221,7.54790)(4.85551,7.42131)%
-(4.48940,7.28796)(4.15131,7.15361)(3.85341,7.01988)(3.60406,6.88734)(3.41163,6.75659)%
-(3.28362,6.62808)(3.21473,6.50035)(3.18983,6.37048)(3.19352,6.23551)(3.21044,6.09250)%
-(3.23419,5.94135)(3.27834,5.78836)(3.35914,5.64069)(3.49285,5.50548)(3.69311,5.38901)%
-(3.95396,5.29113)(4.26069,5.20877)(4.59856,5.13885)(4.95280,5.07831)(5.30867,5.02406)%
-(5.65141,4.97304)(5.96628,4.92216)(6.23852,4.86836)(6.27496,5.02870)(6.31140,5.18904)%
-(6.34784,5.34938)(6.38428,5.50972)(6.38428,5.56800)\linethickness{0.008in}%
-\polyline(6.38428,5.56800)(5.81904,5.70600)(5.36381,5.80921)(5.00440,5.88297)(4.72661,5.93266)%
-(4.51623,5.96364)(4.35907,5.98127)(4.24093,5.99092)(4.14761,5.99794)(4.06496,6.00771)%
-(3.98898,6.02518)(3.93831,6.05448)(3.93468,6.09958)(3.99978,6.16449)(4.15166,6.25226)%
-(4.38123,6.35904)(4.66723,6.47789)(4.98836,6.60185)(5.32339,6.72405)(5.65390,6.84014)%
-(5.96513,6.94907)(6.24257,7.05003)(6.47172,7.14220)(6.64276,7.22661)(6.76463,7.31164)%
-(6.85098,7.40753)(6.91544,7.52450)(6.97077,7.67186)(7.01627,7.84507)(7.04088,8.02894)%
-(7.03329,8.20802)(6.98222,8.36687)(6.88214,8.49624)(6.74033,8.60073)(6.56582,8.68676)%
-(6.36764,8.76079)(6.15404,8.82871)(5.92745,8.89231)(5.68774,8.95154)(5.43473,9.00634)%
-(5.16827,9.05667)(4.88820,9.10245)(4.59435,9.14364)(4.28655,9.18018)(3.96466,9.21200)%
-\polyline(3.96466,9.21200)(3.94280,9.03709)(3.92093,8.86218)(3.89907,8.68727)(3.87720,8.51236)%
-\polyline(3.87720,8.51236)(4.48711,8.36772)(4.97210,8.26299)(5.34677,8.19129)(5.62571,8.14578)%
-(5.82354,8.11957)(5.95483,8.10581)(6.03419,8.09764)(6.07621,8.08818)(6.09549,8.07060)%
-(6.10389,8.04155)(6.10727,8.00555)(6.11068,7.96817)(6.11914,7.93497)(6.13500,7.91026)%
-(6.14070,7.88899)(6.10976,7.86195)(6.01565,7.81987)(5.83248,7.75368)(5.55828,7.66096)%
-(5.22221,7.54790)(4.85551,7.42131)(4.48940,7.28796)(4.15131,7.15361)(3.85341,7.01988)%
-(3.60406,6.88734)(3.41163,6.75659)(3.28362,6.62808)(3.21473,6.50035)(3.18983,6.37048)%
-(3.19352,6.23551)(3.21044,6.09250)(3.23419,5.94135)(3.27834,5.78836)(3.35914,5.64069)%
-(3.49285,5.50548)(3.69311,5.38901)(3.95396,5.29113)(4.26069,5.20877)(4.59856,5.13885)%
-(4.95280,5.07831)(5.30867,5.02406)(5.65141,4.97304)(5.96628,4.92216)(6.23852,4.86836)%
-\polyline(6.23852,4.86836)(6.27496,5.02870)(6.31140,5.18904)(6.34784,5.34938)(6.38428,5.50972)%
-%
-\linethickness{0.008in}%
-\end{picture}}%%
-}%
-\scalebox{#1}{\tmpcontents}%
-%
-}%
-\newcommand{\cautionmark}[1][1]{%
-\scalebox{#1}{%
-{\unitlength=1mm%
-\begin{picture}%
-( 4.60000, 3.98372)( -2.30000, 0.00000)%
-\linethickness{0.008in}%
-%
-\linethickness{0.012 in}%
-\polyline(-2.30000,0.00000)(2.30000,0.00000)(0.00000,3.98372)(-2.30000,0.00000)%
-%
-\linethickness{0.008in}%
-\linethickness{0.002in}%
-\polyline(0.30000,0.55000)(0.28532,0.64271)(0.24271,0.72634)(0.17634,0.79271)(0.09271,0.83532)%
-(0.00000,0.85000)(-0.09271,0.83532)(-0.17634,0.79271)(-0.24271,0.72634)(-0.28532,0.64271)%
-(-0.30000,0.55000)(-0.28532,0.45729)(-0.24271,0.37366)(-0.17634,0.30729)(-0.09271,0.26468)%
-(-0.00000,0.25000)(0.09271,0.26468)(0.17634,0.30729)(0.24271,0.37366)(0.28532,0.45729)%
-(0.30000,0.55000)%
-%
-\polyline(0.00000,1.20000)(0.09619,1.23889)(0.18421,1.33825)(0.25763,1.47869)(0.31127,1.64158)%
-(0.34897,1.81375)(0.37862,1.98450)(0.40754,2.14344)(0.43405,2.28492)(0.44959,2.40694)%
-(0.44551,2.50766)(0.41740,2.58913)(0.36636,2.65840)(0.29386,2.72283)(0.20281,2.78402)%
-(0.09933,2.83074)(-0.01000,2.85000)(-0.11855,2.83292)(-0.21932,2.78698)(-0.30522,2.72371)%
-(-0.36996,2.65337)(-0.41290,2.57639)(-0.43593,2.48886)(-0.44109,2.38691)(-0.43200,2.26815)%
-(-0.41354,2.13130)(-0.39047,1.97528)(-0.36270,1.80472)(-0.32377,1.63171)(-0.26686,1.46885)%
-(-0.18930,1.33045)(-0.09771,1.23462)(0.00000,1.20000)%
-%
-\linethickness{0.008in}%
-\polygon*(0.30000,0.55000)(0.28532,0.64271)(0.24271,0.72634)(0.17634,0.79271)(0.09271,0.83532)%
-(0.00000,0.85000)(-0.09271,0.83532)(-0.17634,0.79271)(-0.24271,0.72634)(-0.28532,0.64271)%
-(-0.30000,0.55000)(-0.28532,0.45729)(-0.24271,0.37366)(-0.17634,0.30729)(-0.09271,0.26468)%
-(-0.00000,0.25000)(0.09271,0.26468)(0.17634,0.30729)(0.24271,0.37366)(0.28532,0.45729)%
-(0.30000,0.55000)\polygon*(0.00000,1.20000)(0.09619,1.23889)(0.18421,1.33825)(0.25763,1.47869)(0.31127,1.64158)%
-(0.34897,1.81375)(0.37862,1.98450)(0.40754,2.14344)(0.43405,2.28492)(0.44959,2.40694)%
-(0.44551,2.50766)(0.41740,2.58913)(0.36636,2.65840)(0.29386,2.72283)(0.20281,2.78402)%
-(0.09933,2.83074)(-0.01000,2.85000)(-0.11855,2.83292)(-0.21932,2.78698)(-0.30522,2.72371)%
-(-0.36996,2.65337)(-0.41290,2.57639)(-0.43593,2.48886)(-0.44109,2.38691)(-0.43200,2.26815)%
-(-0.41354,2.13130)(-0.39047,1.97528)(-0.36270,1.80472)(-0.32377,1.63171)(-0.26686,1.46885)%
-(-0.18930,1.33045)(-0.09771,1.23462)(0.00000,1.20000)\end{picture}}%%
-}%
-%
-}%
-\newcommand{\circlemark}[2][8]{%
-\scalebox{#2}{%
-{\unitlength=1mm%
-\begin{picture}%
-( 4.00000, 4.00000)( -2.00000, -2.00000)%
-\linethickness{0.008in}%
-%
-\linethickness{#1 in}%
-\polyline(2.00000,0.00000)(1.98423,0.25067)(1.93717,0.49738)(1.85955,0.73625)(1.75261,0.96351)%
-(1.61803,1.17557)(1.45794,1.36909)(1.27485,1.54103)(1.07165,1.68866)(0.85156,1.80965)%
-(0.61803,1.90211)(0.37476,1.96457)(0.12558,1.99605)(-0.12558,1.99605)(-0.37476,1.96457)%
-(-0.61803,1.90211)(-0.85156,1.80965)(-1.07165,1.68866)(-1.27485,1.54103)(-1.45794,1.36909)%
-(-1.61803,1.17557)(-1.75261,0.96351)(-1.85955,0.73625)(-1.93717,0.49738)(-1.98423,0.25067)%
-(-2.00000,-0.00000)(-1.98423,-0.25067)(-1.93717,-0.49738)(-1.85955,-0.73625)(-1.75261,-0.96351)%
-(-1.61803,-1.17557)(-1.45794,-1.36909)(-1.27485,-1.54103)(-1.07165,-1.68866)(-0.85156,-1.80965)%
-(-0.61803,-1.90211)(-0.37476,-1.96457)(-0.12558,-1.99605)(0.12558,-1.99605)(0.37476,-1.96457)%
-(0.61803,-1.90211)(0.85156,-1.80965)(1.07165,-1.68866)(1.27485,-1.54103)(1.45794,-1.36909)%
-(1.61803,-1.17557)(1.75261,-0.96351)(1.85955,-0.73625)(1.93717,-0.49738)(1.98423,-0.25067)%
-(2.00000,0.00000)%
-%
-\linethickness{0.008in}%
-\end{picture}}%%
-}%
-%
-}%
-\newcommand{\circleshade}[3][8]{%
-\scalebox{#2}{%
-{\unitlength=1mm%
-\begin{picture}%
-( 4.00000, 4.00000)( -2.00000, -2.00000)%
-\linethickness{0.008in}%
-%
-\linethickness{#1 in}%
-{\color[cmyk]{,,,}%
-\polygon*(2.00000,0.00000)(1.98423,0.25067)(1.93717,0.49738)(1.85955,0.73625)(1.75261,0.96351)%
-(1.61803,1.17557)(1.45794,1.36909)(1.27485,1.54103)(1.07165,1.68866)(0.85156,1.80965)%
-(0.61803,1.90211)(0.37476,1.96457)(0.12558,1.99605)(-0.12558,1.99605)(-0.37476,1.96457)%
-(-0.61803,1.90211)(-0.85156,1.80965)(-1.07165,1.68866)(-1.27485,1.54103)(-1.45794,1.36909)%
-(-1.61803,1.17557)(-1.75261,0.96351)(-1.85955,0.73625)(-1.93717,0.49738)(-1.98423,0.25067)%
-(-2.00000,-0.00000)(-1.98423,-0.25067)(-1.93717,-0.49738)(-1.85955,-0.73625)(-1.75261,-0.96351)%
-(-1.61803,-1.17557)(-1.45794,-1.36909)(-1.27485,-1.54103)(-1.07165,-1.68866)(-0.85156,-1.80965)%
-(-0.61803,-1.90211)(-0.37476,-1.96457)(-0.12558,-1.99605)(0.12558,-1.99605)(0.37476,-1.96457)%
-(0.61803,-1.90211)(0.85156,-1.80965)(1.07165,-1.68866)(1.27485,-1.54103)(1.45794,-1.36909)%
-(1.61803,-1.17557)(1.75261,-0.96351)(1.85955,-0.73625)(1.93717,-0.49738)(1.98423,-0.25067)%
-(2.00000,0.00000)
-}%
-\polyline(2.00000,0.00000)(1.98423,0.25067)(1.93717,0.49738)(1.85955,0.73625)(1.75261,0.96351)%
-(1.61803,1.17557)(1.45794,1.36909)(1.27485,1.54103)(1.07165,1.68866)(0.85156,1.80965)%
-(0.61803,1.90211)(0.37476,1.96457)(0.12558,1.99605)(-0.12558,1.99605)(-0.37476,1.96457)%
-(-0.61803,1.90211)(-0.85156,1.80965)(-1.07165,1.68866)(-1.27485,1.54103)(-1.45794,1.36909)%
-(-1.61803,1.17557)(-1.75261,0.96351)(-1.85955,0.73625)(-1.93717,0.49738)(-1.98423,0.25067)%
-(-2.00000,-0.00000)(-1.98423,-0.25067)(-1.93717,-0.49738)(-1.85955,-0.73625)(-1.75261,-0.96351)%
-(-1.61803,-1.17557)(-1.45794,-1.36909)(-1.27485,-1.54103)(-1.07165,-1.68866)(-0.85156,-1.80965)%
-(-0.61803,-1.90211)(-0.37476,-1.96457)(-0.12558,-1.99605)(0.12558,-1.99605)(0.37476,-1.96457)%
-(0.61803,-1.90211)(0.85156,-1.80965)(1.07165,-1.68866)(1.27485,-1.54103)(1.45794,-1.36909)%
-(1.61803,-1.17557)(1.75261,-0.96351)(1.85955,-0.73625)(1.93717,-0.49738)(1.98423,-0.25067)%
-(2.00000,0.00000)%
-%
-\linethickness{0.008in}%
-\end{picture}}%%
-}%
-%
-}%
-%%% bendingarrow2e.sty 2016-12-9 7:43
-%%% bendingarrow2e.sce 2016-12-9 7:42
-\newcommand{\NEarrow}[1][1]{%
-\scalebox{#1}{\raisebox{-2.5pt}{%
-{\unitlength=1pt%
-\begin{picture}%
-( 10.00000, 10.00000)( 0.00000, 0.00000)%
-\linethickness{0.008in}%
-%
-\polyline(2.00000,2.00000)(7.00000,7.00000)%
-%
-\linethickness{0.008in}%
-\polygon*(6.54625,4.91062)(8.00000,8.00000)(4.91062,6.54625)(6.18275,6.18275)(6.54625,4.91062)%
-\linethickness{0.001in}%
-\polyline(6.54625,4.91062)(8.00000,8.00000)(4.91062,6.54625)(6.18275,6.18275)(6.54625,4.91062)%
-(8.00000,8.00000)%
-%
-\linethickness{0.008in}%
-\end{picture}}%%
-}%
-%
-}%
-%
-}%
-\newcommand{\SEarrow}[1][1]{%
-\scalebox{#1}{\raisebox{-2.5pt}{%
-{\unitlength=1pt%
-\begin{picture}%
-( 10.00000, 10.00000)( 0.00000, 0.00000)%
-\linethickness{0.008in}%
-%
-\polyline(2.00000,8.00000)(7.00000,3.00000)%
-%
-\linethickness{0.008in}%
-\polygon*(4.91062,3.45375)(8.00000,2.00000)(6.54625,5.08938)(6.18275,3.81725)(4.91062,3.45375)%
-\linethickness{0.001in}%
-\polyline(4.91062,3.45375)(8.00000,2.00000)(6.54625,5.08938)(6.18275,3.81725)(4.91062,3.45375)%
-(8.00000,2.00000)%
-%
-\linethickness{0.008in}%
-\end{picture}}%%
-}%
-%
-}%
-%
-}%
-\newcommand{\NWarrow}[1][1]{%
-\scalebox{#1}{\raisebox{-2.5pt}{%
-{\unitlength=1pt%
-\begin{picture}%
-( 10.00000, 10.00000)( 0.00000, 0.00000)%
-\linethickness{0.008in}%
-%
-\polyline(8.00000,2.00000)(3.00000,7.00000)%
-%
-\linethickness{0.008in}%
-\polygon*(5.08938,6.54625)(2.00000,8.00000)(3.45375,4.91062)(3.81725,6.18275)(5.08938,6.54625)%
-\linethickness{0.001in}%
-\polyline(5.08938,6.54625)(2.00000,8.00000)(3.45375,4.91062)(3.81725,6.18275)(5.08938,6.54625)%
-(2.00000,8.00000)%
-%
-\linethickness{0.008in}%
-\end{picture}}%%
-}%
-%
-}%
-%
-}%
-\newcommand{\SWarrow}[1][1]{%
-\scalebox{#1}{\raisebox{-2.5pt}{%
-{\unitlength=1pt%
-\begin{picture}%
-( 10.00000, 10.00000)( 0.00000, 0.00000)%
-\linethickness{0.008in}%
-%
-\polyline(8.00000,8.00000)(3.00000,3.00000)%
-%
-\linethickness{0.008in}%
-\polygon*(3.45375,5.08938)(2.00000,2.00000)(5.08938,3.45375)(3.81725,3.81725)(3.45375,5.08938)%
-\linethickness{0.001in}%
-\polyline(3.45375,5.08938)(2.00000,2.00000)(5.08938,3.45375)(3.81725,3.81725)(3.45375,5.08938)%
-(2.00000,2.00000)%
-%
-\linethickness{0.008in}%
-\end{picture}}%%
-}%
-%
-}%
-%
-}%
-\newcommand{\NELarrow}[1][1]{%
-\scalebox{#1}{\raisebox{-2.5pt}{%
-{\unitlength=1pt%
-\begin{picture}%
-( 10.00000, 10.00000)( 0.00000, 0.00000)%
-\linethickness{0.008in}%
-%
-\polyline(2.00000,2.00000)(2.41092,2.01409)(2.81990,2.05628)(3.22504,2.12639)(3.62443,2.22408)%
-(4.01618,2.34889)(4.39847,2.50024)(4.76950,2.67742)(5.12752,2.87959)(5.47085,3.10580)%
-(5.79789,3.35500)(6.10709,3.62601)(6.39700,3.91756)(6.66627,4.22827)(6.91363,4.55671)%
-(7.13791,4.90131)(7.33806,5.26046)(7.51315,5.63247)(7.66235,6.01561)(7.78496,6.40806)%
-(7.88040,6.80798)%
-%
-\linethickness{0.008in}%
-\polygon*(8.26407,4.59590)(8.00000,8.00000)(6.03361,5.20877)(7.31907,5.52187)(8.26407,4.59590)%
-\linethickness{0.001in}%
-\polyline(8.26407,4.59590)(8.00000,8.00000)(6.03361,5.20877)(7.31907,5.52187)(8.26407,4.59590)%
-(8.00000,8.00000)%
-%
-\linethickness{0.008in}%
-\end{picture}}%%
-}%
-%
-}%
-%
-}%
-\newcommand{\NERarrow}[1][1]{%
-\scalebox{#1}{\raisebox{-2.5pt}{%
-{\unitlength=1pt%
-\begin{picture}%
-( 10.00000, 10.00000)( 0.00000, 0.00000)%
-\linethickness{0.008in}%
-%
-\polyline(6.80798,7.88040)(6.40806,7.78496)(6.01561,7.66235)(5.63247,7.51315)(5.26046,7.33806)%
-(4.90131,7.13791)(4.55671,6.91363)(4.22827,6.66627)(3.91756,6.39700)(3.62601,6.10709)%
-(3.35500,5.79789)(3.10580,5.47085)(2.87959,5.12752)(2.67742,4.76950)(2.50024,4.39847)%
-(2.34889,4.01618)(2.22408,3.62443)(2.12639,3.22504)(2.05628,2.81990)(2.01409,2.41092)%
-(2.00000,2.00000)%
-%
-\linethickness{0.008in}%
-\polygon*(5.19160,6.05822)(8.00000,8.00000)(4.59835,8.29398)(5.51598,7.34088)(5.19160,6.05822)%
-\linethickness{0.001in}%
-\polyline(5.19160,6.05822)(8.00000,8.00000)(4.59835,8.29398)(5.51598,7.34088)(5.19160,6.05822)%
-(8.00000,8.00000)%
-%
-\linethickness{0.008in}%
-\end{picture}}%%
-}%
-%
-}%
-%
-}%
-\newcommand{\SELarrow}[1][1]{%
-\scalebox{#1}{\raisebox{-2.5pt}{%
-{\unitlength=1pt%
-\begin{picture}%
-( 10.00000, 10.00000)( 0.00000, 0.00000)%
-\linethickness{0.008in}%
-%
-\polyline(2.00000,8.00000)(2.01409,7.58908)(2.05628,7.18010)(2.12639,6.77496)(2.22408,6.37557)%
-(2.34889,5.98382)(2.50024,5.60153)(2.67742,5.23050)(2.87959,4.87248)(3.10580,4.52915)%
-(3.35500,4.20211)(3.62601,3.89291)(3.91756,3.60300)(4.22827,3.33373)(4.55671,3.08637)%
-(4.90131,2.86209)(5.26046,2.66194)(5.63247,2.48685)(6.01561,2.33765)(6.40806,2.21504)%
-(6.80798,2.11960)%
-%
-\linethickness{0.008in}%
-\polygon*(4.59835,1.70602)(8.00000,2.00000)(5.19160,3.94178)(5.51598,2.65912)(4.59835,1.70602)%
-\linethickness{0.001in}%
-\polyline(4.59835,1.70602)(8.00000,2.00000)(5.19160,3.94178)(5.51598,2.65912)(4.59835,1.70602)%
-(8.00000,2.00000)%
-%
-\linethickness{0.008in}%
-\end{picture}}%%
-}%
-%
-}%
-%
-}%
-\newcommand{\SERarrow}[1][1]{%
-\scalebox{#1}{\raisebox{-2.5pt}{%
-{\unitlength=1pt%
-\begin{picture}%
-( 10.00000, 10.00000)( 0.00000, 0.00000)%
-\linethickness{0.008in}%
-%
-\polyline(7.88040,3.19202)(7.78496,3.59194)(7.66235,3.98439)(7.51315,4.36753)(7.33806,4.73954)%
-(7.13791,5.09869)(6.91363,5.44329)(6.66627,5.77173)(6.39700,6.08244)(6.10709,6.37399)%
-(5.79789,6.64500)(5.47085,6.89420)(5.12752,7.12041)(4.76950,7.32258)(4.39847,7.49976)%
-(4.01618,7.65111)(3.62443,7.77592)(3.22504,7.87361)(2.81990,7.94372)(2.41092,7.98591)%
-(2.00000,8.00000)%
-%
-\linethickness{0.008in}%
-\polygon*(6.03361,4.79123)(8.00000,2.00000)(8.26407,5.40410)(7.31907,4.47813)(6.03361,4.79123)%
-\linethickness{0.001in}%
-\polyline(6.03361,4.79123)(8.00000,2.00000)(8.26407,5.40410)(7.31907,4.47813)(6.03361,4.79123)%
-(8.00000,2.00000)%
-%
-\linethickness{0.008in}%
-\end{picture}}%%
-}%
-%
-}%
-%
-}%
-\newcommand{\SWRarrow}[1][1]{%
-\scalebox{#1}{\raisebox{-2.5pt}{%
-{\unitlength=1pt%
-\begin{picture}%
-( 10.00000, 10.00000)( 0.00000, 0.00000)%
-\linethickness{0.008in}%
-%
-\polyline(3.19202,2.11960)(3.59194,2.21504)(3.98439,2.33765)(4.36753,2.48685)(4.73954,2.66194)%
-(5.09869,2.86209)(5.44329,3.08637)(5.77173,3.33373)(6.08244,3.60300)(6.37399,3.89291)%
-(6.64500,4.20211)(6.89420,4.52915)(7.12041,4.87248)(7.32258,5.23050)(7.49976,5.60153)%
-(7.65111,5.98382)(7.77592,6.37557)(7.87361,6.77496)(7.94372,7.18010)(7.98591,7.58908)%
-(8.00000,8.00000)%
-%
-\linethickness{0.008in}%
-\polygon*(4.80840,3.94178)(2.00000,2.00000)(5.40165,1.70602)(4.48402,2.65912)(4.80840,3.94178)%
-\linethickness{0.001in}%
-\polyline(4.80840,3.94178)(2.00000,2.00000)(5.40165,1.70602)(4.48402,2.65912)(4.80840,3.94178)%
-(2.00000,2.00000)%
-%
-\linethickness{0.008in}%
-\end{picture}}%%
-}%
-%
-}%
-%
-}%
-\newcommand{\SWLarrow}[1][1]{%
-\scalebox{#1}{\raisebox{-2.5pt}{%
-{\unitlength=1pt%
-\begin{picture}%
-( 10.00000, 10.00000)( 0.00000, 0.00000)%
-\linethickness{0.008in}%
-%
-\polyline(8.00000,8.00000)(7.58908,7.98591)(7.18010,7.94372)(6.77496,7.87361)(6.37557,7.77592)%
-(5.98382,7.65111)(5.60153,7.49976)(5.23050,7.32258)(4.87248,7.12041)(4.52915,6.89420)%
-(4.20211,6.64500)(3.89291,6.37399)(3.60300,6.08244)(3.33373,5.77173)(3.08637,5.44329)%
-(2.86209,5.09869)(2.66194,4.73954)(2.48685,4.36753)(2.33765,3.98439)(2.21504,3.59194)%
-(2.11960,3.19202)%
-%
-\linethickness{0.008in}%
-\polygon*(1.73593,5.40410)(2.00000,2.00000)(3.96639,4.79123)(2.68093,4.47813)(1.73593,5.40410)%
-\linethickness{0.001in}%
-\polyline(1.73593,5.40410)(2.00000,2.00000)(3.96639,4.79123)(2.68093,4.47813)(1.73593,5.40410)%
-(2.00000,2.00000)%
-%
-\linethickness{0.008in}%
-\end{picture}}%%
-}%
-%
-}%
-%
-}%
-\newcommand{\NWRarrow}[1][1]{%
-\scalebox{#1}{\raisebox{-2.5pt}{%
-{\unitlength=1pt%
-\begin{picture}%
-( 10.00000, 10.00000)( 0.00000, 0.00000)%
-\linethickness{0.008in}%
-%
-\polyline(2.11960,6.80798)(2.21504,6.40806)(2.33765,6.01561)(2.48685,5.63247)(2.66194,5.26046)%
-(2.86209,4.90131)(3.08637,4.55671)(3.33373,4.22827)(3.60300,3.91756)(3.89291,3.62601)%
-(4.20211,3.35500)(4.52915,3.10580)(4.87248,2.87959)(5.23050,2.67742)(5.60153,2.50024)%
-(5.98382,2.34889)(6.37557,2.22408)(6.77496,2.12639)(7.18010,2.05628)(7.58908,2.01409)%
-(8.00000,2.00000)%
-%
-\linethickness{0.008in}%
-\polygon*(3.96639,5.20877)(2.00000,8.00000)(1.73593,4.59590)(2.68093,5.52187)(3.96639,5.20877)%
-\linethickness{0.001in}%
-\polyline(3.96639,5.20877)(2.00000,8.00000)(1.73593,4.59590)(2.68093,5.52187)(3.96639,5.20877)%
-(2.00000,8.00000)%
-%
-\linethickness{0.008in}%
-\end{picture}}%%
-}%
-%
-}%
-%
-}%
-\newcommand{\NWLarrow}[1][1]{%
-\scalebox{#1}{\raisebox{-2.5pt}{%
-{\unitlength=1pt%
-\begin{picture}%
-( 10.00000, 10.00000)( 0.00000, 0.00000)%
-\linethickness{0.008in}%
-%
-\polyline(8.00000,2.00000)(7.98591,2.41092)(7.94372,2.81990)(7.87361,3.22504)(7.77592,3.62443)%
-(7.65111,4.01618)(7.49976,4.39847)(7.32258,4.76950)(7.12041,5.12752)(6.89420,5.47085)%
-(6.64500,5.79789)(6.37399,6.10709)(6.08244,6.39700)(5.77173,6.66627)(5.44329,6.91363)%
-(5.09869,7.13791)(4.73954,7.33806)(4.36753,7.51315)(3.98439,7.66235)(3.59194,7.78496)%
-(3.19202,7.88040)%
-%
-\linethickness{0.008in}%
-\polygon*(5.40165,8.29398)(2.00000,8.00000)(4.80840,6.05822)(4.48402,7.34088)(5.40165,8.29398)%
-\linethickness{0.001in}%
-\polyline(5.40165,8.29398)(2.00000,8.00000)(4.80840,6.05822)(4.48402,7.34088)(5.40165,8.29398)%
-(2.00000,8.00000)%
-%
-\linethickness{0.008in}%
-\end{picture}}%%
-}%
-%
-}%
-%
-}%
diff --git a/texmf-dist/tex/latex/ketcindy/ketslide.sty b/texmf-dist/tex/latex/ketcindy/ketslide.sty
deleted file mode 100644
index b8ec630b..00000000
--- a/texmf-dist/tex/latex/ketcindy/ketslide.sty
+++ /dev/null
@@ -1,151 +0,0 @@
-%Copyright (C) 2014 Setsuo Takato, KETpic developer team
-%*
-%* This program is free software: you can redistribute it and/or modify
-%* it under the terms of the GNU General Public License as published by
-%* the Free Software Foundation; either version 3 of the License, or
-%* (at your option) any later version.
-%*
-%* This program is distributed in the hope that it will be useful,
-%* but WITHOUT ANY WARRANTY; without even the implied warranty of
-%* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-%* GNU General Public License for more details.
-%*
-%* You should have received a copy of the GNU General Public License
-%* along with this program. If not, see <http://www.gnu.org/licenses/>
-%%% ketslide.sty 2017-1-9 11:50
-%%% ketslide170109.sce 2017-1-9 11:50
-% 2017.01.09 ketslide%
-% \documentclass[landscape,10pt]{jarticle}%
-% or \documentclass[landscape,10pt]{article}%
-%\special{papersize=297mm,210mm}%
-\mag=2000%
-\newcommand{\ketmarginJ}{%
-\setmargin{25}{150}{15}{110}%
-%
-}%
-\newcommand{\ketmarginE}{%
-\setmargin{25}{135}{15}{115}%
-%
-}%
-\newcommand{\ketslideinit}{%
-\definecolor{ketshadowclr}{cmyk}{0,0,0,0.5}%
-\def\ketcletter{black}%
-\def\ketcbox{black}%
-\def\ketdbox{}%
-\def\ketcframe{black}%
-\def\ketcshadow{ketshadowclr}%
-\def\ketdshadow{}%
-\def\ketslidew{130}%
-\def\slidetitlex{6}%
-\def\slidetitlesize{2}%
-\def\mketcletter{black}%
-\def\mketcbox{white}%
-\def\mketdbox{}%
-\def\mketcframe{white}%
-\def\mslidetitlex{62}%
-\def\mslidetitlesize{3}%
-%
-}%
-\newcommand{\newnewslide}[2][7]{%
-\def\slidetitle{{\color{\ketcletter}#2}}%
-{\unitlength=1mm%
-\ketcalcwidth{#2}%
-}%
-%
-{%
-\ifnum %
-\theketpicctra>1 %
-\begin{layer}{\ketslidew}{0}%
-\popframe{\slidetitlex}{#1}%
-{\ketdshadow}{\ketcshadow}%
-{\ketdbox}{\ketcbox}{\ketcframe}%
-{\scalebox{\slidetitlesize}{\slidetitle}}%
-\end{layer}%
-%
-\fi%
-}%
-%
-}%
-\newcommand{\newslide}[2][7]{%
-\newpage%
-\def\slidetitle{{\color{\ketcletter}#2}}%
-{\unitlength=1mm%
-\ketcalcwidth{#2}%
-}%
-%
-{%
-\ifnum %
-\theketpicctra>1 %
-\begin{layer}{\ketslidew}{0}%
-\popframe{\slidetitlex}{#1}%
-{\ketdshadow}{\ketcshadow}%
-{\ketdbox}{\ketcbox}{\ketcframe}%
-{\scalebox{\slidetitlesize}{\slidetitle}}%
-\end{layer}%
-%
-\fi%
-}%
-%
-}%
-\newcommand{\sameslide}[1][7]{%
-\newpage%
-\addtocounter{page}{-1}%
-\ketcalcwidth{\slidetitle}%
-{\unitlength=1mm%
-\ketcalcwidth{\slidetitle}%
-}%
-%
-{%
-\ifnum %
-\theketpicctra>1 %
-\begin{layer}{\ketslidew}{0}%
-\popframe{\slidetitlex}{#1}%
-{\ketdshadow}{\ketcshadow}%
-{\ketdbox}{\ketcbox}{\ketcframe}%
-{\scalebox{\slidetitlesize}{\slidetitle}}%
-\end{layer}%
-%
-\fi%
-}%
-%
-}%
-\newcommand{\mainslide}[2][35]{%
-\newpage%
-\def\slidetitle{{\color{\mketcletter}#2}}%
-{\unitlength=1mm%
-\ketcalcwidth{#2}%
-}%
-%
-{%
-\ifnum %
-\theketpicctra>1 %
-\begin{layer}{\ketslidew}{0}%
-\colorframes{\mslidetitlex}{#1}%
-{\mketdbox}{\mketcbox}{\mketcframe}%
-{\scalebox{\mslidetitlesize}{\slidetitle}}%
-\end{layer}%
-%
-\fi%
-}%
-%
-}%
-\newcommand{\mainsameslide}[1][35]{%
-\newpage%
-\addtocounter{page}{-1}%
-{\unitlength=1mm%
-\ketcalcwidth{\slidetitle}%
-}%
-%
-{%
-\ifnum %
-\theketpicctra>1 %
-\begin{layer}{\ketslidew}{0}%
-\colorframes{\mslidetitlex}{#1}%
-{\mketdbox}{\mketcbox}{\mketcframe}%
-{\scalebox{\mslidetitlesize}{\slidetitle}}%
-\end{layer}%
-%
-\fi%
-}%
-%
-}%
diff --git a/texmf-dist/tex/latex/ketcindy/ketslide2.sty b/texmf-dist/tex/latex/ketcindy/ketslide2.sty
deleted file mode 100644
index d6929592..00000000
--- a/texmf-dist/tex/latex/ketcindy/ketslide2.sty
+++ /dev/null
@@ -1,151 +0,0 @@
-%Copyright (C) 2014 Setsuo Takato, KETpic developer team
-%*
-%* This program is free software: you can redistribute it and/or modify
-%* it under the terms of the GNU General Public License as published by
-%* the Free Software Foundation; either version 3 of the License, or
-%* (at your option) any later version.
-%*
-%* This program is distributed in the hope that it will be useful,
-%* but WITHOUT ANY WARRANTY; without even the implied warranty of
-%* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-%* GNU General Public License for more details.
-%*
-%* You should have received a copy of the GNU General Public License
-%* along with this program. If not, see <http://www.gnu.org/licenses/>
-%%% ketslide.sty 2017-1-9 11:50
-%%% ketslide170109.sce 2017-1-9 11:50
-% 2017.01.09 ketslide%
-% \documentclass[landscape,10pt]{jarticle}%
-% or \documentclass[landscape,10pt]{article}%
-%\special{papersize=297mm,210mm}%
-\mag=2000%
-\newcommand{\ketmarginJ}{%
-\setmargin{25}{150}{15}{110}%
-%
-}%
-\newcommand{\ketmarginE}{%
-\setmargin{25}{135}{15}{115}%
-%
-}%
-\newcommand{\ketslideinit}{%
-\definecolor{ketshadowclr}{cmyk}{0,0,0,0.5}%
-\def\ketcletter{black}%
-\def\ketcbox{black}%
-\def\ketdbox{}%
-\def\ketcframe{black}%
-\def\ketcshadow{ketshadowclr}%
-\def\ketdshadow{}%
-\def\ketslidew{130}%
-\def\slidetitlex{6}%
-\def\slidetitlesize{2}%
-\def\mketcletter{black}%
-\def\mketcbox{white}%
-\def\mketdbox{}%
-\def\mketcframe{white}%
-\def\mslidetitlex{62}%
-\def\mslidetitlesize{3}%
-%
-}%
-\newcommand{\newnewslide}[2][7]{%
-\def\slidetitle{{\color{\ketcletter}#2}}%
-{\unitlength=1mm%
-\ketcalcwidth{#2}%
-}%
-%
-{%
-\ifnum %
-\theketpicctra>1 %
-\begin{layer}{\ketslidew}{0}%
-\popframe{\slidetitlex}{#1}%
-{\ketdshadow}{\ketcshadow}%
-{\ketdbox}{\ketcbox}{\ketcframe}%
-{\scalebox{\slidetitlesize}{\slidetitle}}%
-\end{layer}%
-%
-\fi%
-}%
-%
-}%
-\newcommand{\newslide}[2][7]{%
-%\newpage%
-\def\slidetitle{{\color{\ketcletter}#2}}%
-{\unitlength=1mm%
-\ketcalcwidth{#2}%
-}%
-%
-{%
-\ifnum %
-\theketpicctra>1 %
-\begin{layer}{\ketslidew}{0}%
-\popframe{\slidetitlex}{#1}%
-{\ketdshadow}{\ketcshadow}%
-{\ketdbox}{\ketcbox}{\ketcframe}%
-{\scalebox{\slidetitlesize}{\slidetitle}}%
-\end{layer}%
-%
-\fi%
-}%
-%
-}%
-\newcommand{\sameslide}[1][7]{%
-%\newpage%
-\addtocounter{page}{-1}%
-\ketcalcwidth{\slidetitle}%
-{\unitlength=1mm%
-\ketcalcwidth{\slidetitle}%
-}%
-%
-{%
-\ifnum %
-\theketpicctra>1 %
-\begin{layer}{\ketslidew}{0}%
-\popframe{\slidetitlex}{#1}%
-{\ketdshadow}{\ketcshadow}%
-{\ketdbox}{\ketcbox}{\ketcframe}%
-{\scalebox{\slidetitlesize}{\slidetitle}}%
-\end{layer}%
-%
-\fi%
-}%
-%
-}%
-\newcommand{\mainslide}[2][35]{%
-%\newpage%
-\def\slidetitle{{\color{\mketcletter}#2}}%
-{\unitlength=1mm%
-\ketcalcwidth{#2}%
-}%
-%
-{%
-\ifnum %
-\theketpicctra>1 %
-\begin{layer}{\ketslidew}{0}%
-\colorframes{\mslidetitlex}{#1}%
-{\mketdbox}{\mketcbox}{\mketcframe}%
-{\scalebox{\mslidetitlesize}{\slidetitle}}%
-\end{layer}%
-%
-\fi%
-}%
-%
-}%
-\newcommand{\mainsameslide}[1][35]{%
-%\newpage%
-\addtocounter{page}{-1}%
-{\unitlength=1mm%
-\ketcalcwidth{\slidetitle}%
-}%
-%
-{%
-\ifnum %
-\theketpicctra>1 %
-\begin{layer}{\ketslidew}{0}%
-\colorframes{\mslidetitlex}{#1}%
-{\mketdbox}{\mketcbox}{\mketcframe}%
-{\scalebox{\mslidetitlesize}{\slidetitle}}%
-\end{layer}%
-%
-\fi%
-}%
-%
-}%
diff --git a/tlpkg/tlpsrc/ketcindy.tlpsrc b/tlpkg/tlpsrc/ketcindy.tlpsrc
deleted file mode 100644
index 403a3ef6..00000000
--- a/tlpkg/tlpsrc/ketcindy.tlpsrc
+++ /dev/null
@@ -1 +0,0 @@
-binpattern f bin/${ARCH}/ketcindy