%!PS % An Ultra Fast Magic Sinewave Calculator % ======================================= % by Don Lancaster GG #73 FASTMSOL.PSL % revised may 2007 /ggnum 73 store % Copyright c 2006 by Don Lancaster & Synergetics, Box 809, Thatcher, AZ, 85552 % (928) 428-4073 Email: don@tinaja.com Website: http://www.tinaja.com % Consulting services available http://www.tinaja.com/info01.html % Linking welcome. Reposting expressly forbidden. % All commercial rights and all electronic media rights ~fully~ reserved. % Linking usually welcome. Reposting expressly forbidden. Version 1.1 % IMPORTANT NOTE: Don Lancaster's file gonzo.ps is required for this program. % After obvious location mods, uncomment ONE of the following two lines: (C:\\Documents and Settings\\don\\Desktop\\gonzo\\gonzo.ps) run % use internal gonzo % (A:\\gonzo.ps) run % use external gonzo % NOTE THAT ALL PS FILENAME STRINGS !!!DEMAND!!! DOUBLE REVERSE SLASHES. % GONZO20A Guru Gonzo PostScript power tools (Interim release) % Includes gonzo justification and layout utilities. % Copyright c 1990, 1996, 2001 by Don Lancaster and Synergetics, Box 809, % Thatcher Arizona, 5552 (928) 428-4073 don@tinaja.com support % via http://www.tinaja.com All commercial rights and all electronic % media rights **FULLY** reserved. Reposting is expressly forbidden. % Many routines removed and cleaned at #58 %%%%%%%%%%% links menu directory %%%%%%%%%%%% % This code locks pdfmark commands out of a PostScript printer. /pdfmark where {pop}{userdict /pdfmark /cleartomark load put} ifelse % /surl "start url" marks the beginning of a text sequence to be urled. % It also paints the text blue... /surl {mark /blue cvx 0.33 /setgray cvx % change text to blue /currentpoint cvx % remember box start /urly /exch cvx /store cvx /urlx /exch cvx /store cvx ] cvx % complete deferred command printlist exch 3 index exch put % stuff into gonzo printlist exch 1 add exch % increment gonzo list count } def % /eurl "end url" unmarks the end of a text sequence and sets up % the pdfmark needed to define the Acrobat web link. /eurl {mark % start deferred proc exch % position url string % /black cvx 0 /setgray cvx % turn blue marker off % maintextcolor /setrgbcolor cvx % reset to main text color??? /aqua cvx /black cvx /makeurl cvx % defer call of url builder ] cvx % complete deferred proc printlist exch 3 index exch % stuff into gonzo printlist put exch 1 add exch % increment gonzo list count } def % /makeurl generates the pdfmark, receiving a {(urlstring) makeurl}. % Note that it is not called until formatted printlist time... /urlover 0.2 def % fraction of hot area over bounds /makeurl { /cururlname exch store % save the url string mark % start pdfmark currentfont /ScaleMatrix get 3 get /fsize exch store % guess height /Rect [ urlx fsize urlover mul sub % set box left x urly fsize urlover mul sub % set box left y currentpoint exch fsize urlover mul add exch fsize add ] /Border [ 0 0 0] % [0 0 0 ] = none; [0 0 2] = debug /Color [ .7 0 0 ] /Action <> /Subtype /Link /ANN % annotation type pdfmark % call pdf operators } def % /makeurlx generates the box specific pdfmark, receiving % a {(urlstring) makeurl}. % Note that it is not called until formatted printlist time... /makeurlx { /cururlnamex exch store % save the url string mark % start pdfmark /Rect [ xpos % set box left x ypos 0.9 sub % set box left y xpos 2.8 add % box right x ypos 0.9 sub 2.8 add % box right y ] /Border [ 0 0 0] % [0 0 0 ] = none; [0 0 2] = debug /Color [ .7 0 0 ] /Action <> /Subtype /Link /ANN % annotation type pdfmark % call pdf operators } def /maintextcolor {0 0 0 } def % text link specific data -- use dictionary instead below { /cubic01 {(http://www.tinaja.com/cubic01.asp) eurl} def /hack62 {(http://www.tinaja.com/glib/hack62.pdf) eurl} def /increment {(http://www.tinaja.com/text/bezgen3.html) eurl} def /interpolate {(http://members.bellatlantic.net/~vze2vrva/design.html) eurl } def /bezmath {(http://www.tinaja.com/text/bezmath.html) eurl } def /table {(http://www.tinaja.com/psutils/imtable.psl) eurl } def } pop % zzz keep for search marker % dictionary method << % entered during gg 73 /bridge701.psl (http://www.tinaja.com/magsn_5/bridge701.psl) /bridge701.pdf (http://www.tinaja.com/magsn_5/bridge701.pdf) /demo28a (http://www.tinaja.com/demo28a.asp) /gaussjordan (http://en.wikipedia.org/wiki/Gauss-Jordan_elimination) /sinseries (http://www.ucl.ac.uk/Mathematics/geomath/level2/series/ser11.html) /newtonmethod (http://en.wikipedia.org/wiki/Newton's_method) /trigidentity (http://www.sosmath.com/trig/Trig5/trig5/trig5.html) /demo28a.asp (http://www.tinaja.com/demo28a.asp) % entered during gg 71 /detmssol.pdf (http://www.tinaja.com/glib/detmssol.pdf) /detmssol.psl (http://www.tinaja.com/glib/detmssol.psl) /alvinpile (http://www.tinaja.com/glib/enhebay2.pdf) % duplicate name /dilbert (http://www.dilbert.com) /putty (http://www.putty.nl) /legible1.pdf (http://www.tinaja.com/glib/legible1.pdf) /muse144.pdf (http://www.tinaja.com/glib/muse144.pdf) /webcolr.pdf (http://www.tinaja.com/psutils/webcolor.pdf) /ifilter (http://www.adobe.com/support/downloads/detail.jsp?ftpID=2611) /drmsbiz1 (http://reform.house.gov/UploadedFiles/MG%20Williams%20July%2025%20Testimony.pdf) /drmsbiz2 (http://www.gao.gov/new.items/d05277.pdf) /drmsclosed (http://www.drms.dla.mil/A76/transitionsitelistrevised.pdf) /drmsmap (http://www.drms.dla.mil/meo/routemap.htm) /drms (http://www.drms.dla.mil/) /enhebay4.pdf (http://www.tinaja.com/glib/enhebay4.pdf) % entered during gg 70 /insidegame (http://www.amazon.com/exec/obidos/ISBN%3D1585006246/donlancastersgurA/002-8267096-8078436) /auctionbytes (http://www.auctionbytes.com) /texasauctionlaw (Texas auction law: http://www.license.state.tx.us/auc/auction.htm) /shermananti (http://www.gamingip.com/Statutes/ShermanAct/ST-Sherman1-4.html) /mainantique (http://www.antiquedigest.com/articles/auclaw.htm) /finex1 (http://www.tinaja.com/images/bargs/pwrssrx3.jpg) /knockback.psl (http://www.tinaja.com/psutils/knockback.psl) /krylondull (http://www.krylon.com/main/product_template.cfm?levelid=5&sub_levelid=8&productid=1822&content=product_details) /adeptaabb (http://www.tinaja.com/images/bargs/araabbb.jpg) /bonnette (http://www.bonnetteauctions.com/) /walmartauctionsignup (mailto://Joan.Ramsey@Wal-Mart.com) /walmartauction (http://walmartstores.com/GlobalWMStoresWeb/navigate.do?catg=504&contId=49) /ucc (http://www.law.cornell.edu/ucc/) /whtnu06 (http://www.tinaja.com/whtnu06.asp) % entered during gg69 /wikicat (http://en.wikipedia.org/wiki/Catenary) /bezcat.psl (http://www.tinaja.com/glib/bezcat.psl) /nubz4pts1.pdf (http://www.tinaja.com/glib/nubz4pts1.pdf) % entered during gg68 /nobodydog (http://www.unc.edu/depts/jomc/academics/dri/idog.html) /kaizen (http://en.wikipedia.org/wiki/Kaizen) /circuitcellar (http://www.circuitcellar.com/guru/) /makemag (http://www.makezine.com/) /adamsadventures (http://www.msadams.com/downloads.htm) /linux (http://www.linux.org/) /opensource (http://www.opensource.org/) /craigslist (http://phoenix.craigslist.org/) /autotrader (http://www.autotrader.com/) /lulu (http://www.lulu.com/) /bookmarket (http://www.bookmarket.com/ondemand.html) /burgerking (http://www.bk.com) /newtek (http://www.newtek.com) /memsnet (http://www.memsnet.org/) /muse120.pdf (http://www.tinaja.com/glib/muse120.pdf) /supercap (http://www.sciencemag.org/cgi/content/abstract/313/5794/1760?maxtoshow=&HITS=10&hits=10&RESULTFORMAT=&fulltext=carbon+pore+sizes&searchid=1&FIRSTINDEX=0&resourcetype=HWCIT) /quantumdots (http://www.google.com/search?q=%22quantum+dots%22+solar&sourceid=mozilla-search&start=0&start=0&ie=utf-8&oe=utf-8&client=firefox-a&rls=org.mozilla:en-US:official) /datasheetarchive (http://www.datasheetarchive.com/chipPhotos/photosA.html) /googleearth (http://www.earth.google.com) /toystory (http://us.imdb.com/title/tt0114709/) /robotmovie (http://us.imdb.com/title/tt0358082/) /cars (http://us.imdb.com/title/tt0317219/) /netflix (http://www.netflix.com/) /blockbuster (http://www.blockbuster.com/online/) % entered during gg67 /puzz01.psl (http://www.tinaja.com/psutils/puzz01.psl) /alphamet1 ( http://www.tkcs-collins.com/truman/alphamet/alphamet.shtml) /alphamet2 (http://www.tkcs-collins.com/truman/alphamet/alpha_gen.shtml) /alphamet3 (http://users.aol.com/s6sj7gt/mikealp.htm) /msinexec.pdf (http://www.tinaja.com/glib/msinexec.pdf) /paradigm.pdf (http://www.tinaja.com/glib/paradigm.pdf) % entered during gg66 /thunderbird (http://www.thunderbird.com) /spysweeper (http://www.webroot.com/consumer/products/spysweeper/?rc=1651) /norton (http://www.symantec.com/index.htm) /pestpatrol (http://www.pestpatrol.com/) /firefox (http://www.firefox.com) /sciencemag (http://www.sciencemag.org/) /worldfact (http://www.cia.gov/cia/publications/factbook/) /internetdog (http://www.unc.edu/depts/jomc/academics/dri/idog.html) /zipcode (http://www.usps.com/ncsc/lookups/lookup_zip+4.html) /weather (http://www.weather.com/) /thomasreg (http://www.thomasregister.com/) /topozone (http://www.topozone.com/) /yahoostock (http://finance.yahoo.com/) /reversephone (http://www.reversephonedirectory.com/) /uspto (http://www.uspto.gov/patft/index.html) /msnbc (http://www.msnbc.com/) /imdb (http://us.imdb.com/) /loanamort (http://www.hsh.com/calc-amort.html) /kellybook (http://www.kbb.com/) /googlemaps (http://maps.google.com/) /newyorker (http://www.newyorker.com/) /currexch (http://www.xe.net/ucc/) /chemele (http://www.chemicalelements.com) /cnn (http://www.cnn.com) /areacodes (http://decoder.americom.com/cgi-bin/decoder.cgi) /tinajaoffsite (http://www.tinaja.com#offsite) /tinajaengines (http://www.tinja.com#engines) /walmart (http://www.walmart.com) /rssbook (http://www.amazon.com/exec/obidos/ISBN%3D0764588486/donlancastersgurA/002-5434897-4181636) /webwb01 (http://www.tinaja.com/webwb01.asp) /weblib01 (http://www.tinaja.com/weblib01.asp) /validator (http://rss.scripting.com/) /webbooks (http://www.tinaja.com/books/bkwbmast.asp) /golive (http://www.adobe.com/products/golive/) /frontpage (http://office.microsoft.com/en-us/FX010858021033.aspx) /htmlbooks (http://www.tinaja.com/books/bkhtml.asp) /htmldummybook (http://www.amazon.com/exec/obidos/ISBN=0764507230/donlancastersgurA/) /naa (http://www.auctioneers.org) /histolog.pdf (http://www.tinaja.com/glib/histolog.pdf) /analogeb.pdf (http://www.tinaja.com/glib/analogeb.pdf) /enhebay3.pdf (http://www.tinaja.com/glib/enhebay3.pdf) /ipswitch (http://www.ipswitch.com/Products/WS_FTP) /networksolutions (http://www.networksolutions.com) /whois (http://www.networksolutions.com/cgi-bin/whois/whois) % entered furing gg65 msexec summary /picpro (http://www.tinaja.com/glib/mspicpro.pdf) /fourier (http://www.tinaja.com/glib/muse90.pdf) % entered during GG64 log log graphs /pdfrm1 (http://partners.adobe.com/public/developer/en/acrobat/sdk/pdf/pdf_creation_apis_and_specs/pdfmarkReference.pdf) /loglog01.psl (http://www.tinaja.com/psutils/loglog01.psl) /loglog01.pdf (http://www.tinaja.com/glair/loglog01.pdf) /bookcvr1.psl (http://www.tinaja.com/psutils/bookcvr1.psl) /bookcvr1.pdf (http://www.tinaja.com/glair/bookcvr1.pdf) % entered during gg 63 two phase magic sinewaves /numschip.pdf (http://www.tinaja.com/glib/numschip.pdf) /mspicpro.pdf (http://www.tinaja.com/glib/mspicpro.pdf) % entered during gg 62 enhance III /analogeb.pdf (http://www.tinaja.com/glib/analogeb.pdf) /rss (http://www.tinaja.com/whtnu.xml) /oreproptable (http://www.tinaja.com/whtnu05.asp#rogue3) /javascriptslideshow (http://www.codelifter.com/main/javascript/slideshow4.html) /logrptx2.psl (http://www.tinaja.com/psutils/logrptx2.psl) % entered during GG61 /jpg2pdf.pdf (http://www.tinaja.com/glib/jpg2pdf.pdf) /barcodeonline (http://www.raise-the-bar.co.uk/cgi-bin/webbarcodegen.pl) /barcodegen (http://www.terryburton.co.uk/barcodewriter/) /barcodetutorial (http://www.barcode-us.com/info_center/bookinfo.htm) /isbn (http://www.isbn.org/standards/home/index.asp) /bookcovr.psl (http://www.tinaja.com/psutils/bookcovr.psl) /bookcovr.pdf (http://www.tinaja.com/psutils/bookcovr.pdf) /begstuff (http://www.tinaja.com/post01.asp#begstuff) /ghostscript (http://www.cs.wisc.edu/~ghost/) /bod01 (http://www.tinaja.com/bod01.asp) % entered during GG 60 /bezlenjf.pdf (http://www.tinaja.com/glib/bezlenjf.pdf) /bzlnsub1.psl (http://www.tinaja.com/psutils/bzlnsub1.psl) /cubemath.pdf (http://www.tinaja.com/glib/cubemath.pdf) % entered during GG 59 /imbz4p01.psl (http://www.tinaja.com/psutils/imbz4p01.psl) /cubemath.pdf (http://www.tinaja.com/glib/cubemath.pdf) /bernstein (http://graphics.idav.ucdavis.edu/education/CAGDNotes/Bernstein-Polynomials.pdf) /ellipse4.psl (http://www.tinaja.com/glib/ellipse4.psl) /wnhsl (http://www.tinaja.com/whatnu05.asp#hsl) /stalac.pdf (http://www.tinaja.com/glib/stalac.pdf) /santa01 (http://www.tinaja.com/santa01.asp) /imxytab.psl (http://www.tinaja.com/psutils/imxytab.psl) /nonlingr.pdf (http://www.tinaja.com/glib/nonlingr.pdf) /unibmm01.psl (http://www.tinaja.com/psutils/unibm01.psl) /webimage.pdf (http://www.tinaja.com/glib/webimage.pdf) /keycor01.pdf (http://www.tinaja.com/glib/keycor01.pdf) /nubkg01.psl (http://www.tinaja.com/psutils/nubkg01.psl) /basis.pdf (http://www.tinaja.com/glib/basis.pdf) /fixtlt01.psl (http://www.tinaja.com/psutils/fixtlt01.psl) /swingt01.psl (http://www.tinaja.com/psutils/swingt01.psl) /perspec1.pdf (http://www.tinaja.com/glib/perspec1.pdf) /starwars.psl (http://www.tinaja.com/psutils/starwars.psl) /video901.jpg (http://www.tinaja.com/images/bargs/finalc9.jpg) /video901.bmp (http://www.tinaja.com/images/bargs/finalc9.bmp) /autobmf1.psl (http://www.tinaja.com/psutils/autobmf1.psl) /bmfauto1.pdf (http://www.tinaja.com/glib/bmfauto1.pdf) /autobm1.psl (http://www.tinaja.com/psutils/autobmf1.psl) /bmdemo1.bmp (http://www.tinaja.com/psutils/bmdemo1.bmp) /adobeifilter (http://www.adobe.com/support/downloads/product.jsp?product=1&platform=Windows) /myriadfont (http://store.adobe.com/type/browser/P/P_1706.html) /stonefont (http://store.adobe.com/type/browser/F/STAQ/F_STAQ-11705000.html) /cleartype (http://grc.com/cleartype.htm) /adobeacrobat (http://www.adobe.com/products/acrobat/main.html) /acroread (http://www.adobe.com/products/acrobat/readstep2.html) /dutchdare (http://www.darenet.nl/page/language.view/home) /sedn (news:///sci.electronics.design) /sern (news:///sci.electronics.repair) /mcmaster (http://www.mcmaster.com/ ) /smallparts (http://www.smallparts.com/ ) /grainger (http://www.grainger.com/Grainger/ ) /mouser (http://www.mouser.com/ ) /digikey (http://www.digikey.com/ ) /allied (http://www.alliedelec.com/ ) /newark (http://www.newark.com/) /thomasreg (http://www.thomasregister.com/) /whtnu05 (http://www.tinaja.com/whtnu05.asp) /refurblg.pdf (http://www.tinaja.com/glib/refurblg.pdf) /refurb.pdf (http://www.tinaja.com/glib/refurb.pdf) /advetorl.pdf (http://www.tinaja.com/glib/advetorl.pdf) /sotofamilia (http://cgi6.ebay.com/ws/eBayISAPI.dll?MfcISAPICommand=ViewListedItems&userid=sotofamilia&include=0&since=7&sort=3&rows=100) /marcia.pdf (http://www.tinaja.com/glib/marcia.pdf) /auctscne.pdf (http://www.tinaja.com/glib/auctscne.pdf) /ebaysell.pdf (http://www.tinaja.com/glib/ebaysell.pdf) /ebayspoof (mailto:spoof@ebay.com) /auct01links (http://www.tinaja.com/auct01.asp#links) /enhebay2.pdf (http://www.tinaja.com/glib/enhebay2.pdf) /enhebay1.pdf (http://www.tinaja.com/glib/enhebay1.pdf) /pdfflash.pdf(http://www.tinaja.com/glib/pdfflash.pdf) /adobejava (http://partners.adobe.com/public/developer/pdf/topic_js.html) /p3anim01.pdf (http://www.tinaja.com/glib/p3anim01.pdf) /xpdf (http://www.foolabs.com/xpdf/) /heapsort.pdf (http://www.tinaja.com/glib/heapsort.pdf) /strconv.pdf (http://www.tinaja.com/glib/strconv.pdf) /pdfrefman (http://partners.adobe.com/public/developer/pdf/index_reference.html) /uncompresspdf.api (http://www.tinaja.com/plugins/uncompressPDF.api) /adobeebooks (http://www.adobe.com/epaper/ebooks/main.html) /viewpdf1.psl (http://www.tinaja.com/psutils/viewpdf1.psl) /adobeacrobatsdk (http://partners.adobe.com/public/developer/acrobat/sdk/index_doc.html) /adobejavascriptguide (http://partners.adobe.com/public/developer/acrobat/sdk/index_doc.html#js) /wordfreq.pdf (http://www.tinaja.com/glib/wordfreq.pdf) /azauct01.pdf (http://www.tinaja.com/glib/azauct01.pdf) /startsdk.pdf (http://www.tinaja.com/glib/startsdk.pdf) /flatevue.pdf (http://www.tinaja.com/glib/flatvue.pdf) /wordfrq1.psl (http://www.tinaja.com/psutils/wordfrq1.psl) /otherwf (http://www.mytranslate.com/wordfrequency.htm) /homonyms (http://www.cooper.com/alan/homonym_list.html) /wrightauct (http://www.wrightbrosauctioneers.com/) /a1auct (http://www.a1auctionz.com/) /auctbroke (http://www.auctionbrokers.us/) /ronbrunk (http://www.brunksauction.com/) /americawest (http://www.yellowpages-ads.com/01231827) /azauctioneers (http://www.arizonaauctioneers.com/) /dickerson (http://www.cfdauction.com/) /wsmauct (http://www.westernsalesmanagement.com/) /asustore (http://property.asu.edu/) /uaauct (http://pacs.web.arizona.edu/pacs_home.html) /schoolauct (http://web.archive.org/web/20040229230404/http://www.dist.maricopa.edu/surplus/other.html) /haynieauct (http://www.chuckhaynieauctions.com/pages/1/index.htm) /crawfordauct (http://www.tumbleweedauction.com/) /mangold (http://www.azauctioneers.org/members/8402_OCMangold.asp) /tingle (http://brucetingleauctioneering.com/) /countass (http://www.soldyourway.com/) /southwestliq (http://www.swliquidators.com/) /maricopacoll (http://www.dist.maricopa.edu/surplus/) /sierraauct (http://www.sierraauction.com/) /cunninghamauct (http://www.auctionaz.com/) /auctappr (http://www.auctionandappraise.com/) /azauctionassn (http://www.azauctioneers.org/home.asp) /natauctionassn (http://www.auctioneers.org/) /azclassifieds (http://www.arizclassified.com/classifieds/index.inn) /azrepublic (http://www.azcentral.com/class/merch/) /tudailystar (http://classified.tucson.com/index.php?site_name=citizen) /enhebay1.pdf (http://www.tinaja.com/glib/enhebay1.pdf) /busonly.psl (http://www.tinaja.com/psutils/busonly.psl) /rebound1.psl (http://www.tinaja.com/glib/rebound1.psl) /rebound1.pdf (http://www.tinaja.com/glib/rebound1.pdf) /funfield.pdf (http://www.tinaja.com/glib/funfield.pdf) /psar2img.pdf (http://www.tinaja.com/glib/psar2img.pdf) /dovebid (http://www.dovebid.com) /michaelfox (http://www.michaelfox.com) /mjauctions (http://www.mjauctions.com) /ucc (http://www.law.cornell.edu/ucc/) /arizlaw (http://www.azleg.state.az.us/ArizonaRevisedStatutes.asp) /vickrey (http://www.vanderbilt.edu/econ/reiley/papers/VickreyHistory.pdf) /whtnu04 (http://www.tinaja.com/whtnu04.asp) /logrpt01.psl (http://www.tinaja.com/psutils/logrpt01.psl) /nutilt01.psl (http://www.tinaja.com/psutils/nutilt01.psl) /nubkg01.psl (http://www.tinaja.com/psutils/nubkg01.psl) /dodbur01.psl (http://www.tinaja.com/psutils/dodbur01.psl) /ebayphen.pdf (http://www.tinaja.com/glib/ebayphen.pdf) /gallery.pdf (http://www.tinaja.com/glib/gallery.pdf) /histolog (http://www.tinaja.com/glib/histolog.pdf) /bmfonts (http://www.tinaja.com/glib/bmfonts.pdf) /dodbur (http://www.tinaja.com/glib/dodgebur.pdf) /ebayphoto (http://www.tinaja.com/glib/ebayfoto.pdf) /auctscne (http://www.tinaja.com/glib/auctscne.pdf) /stepprep (http://www.tinaja.com/glib/stepprep.pdf) /phonenums (http://www.switchboard.com/bin/cgiqa.dll?MG=) /reversephone (http://www.reversephonedirectory.com/) /scholar (http://www.scholar.google.com/) /shieldsup (https://grc.com/x/ne.dll?bh0bkyd2) /sotofamilia (http://cgi6.ebay.com/ws/eBayISAPI.dll?MfcISAPICommand=ViewListedItems&userid=sotofamilia&include=0&since=7&sort=3&rows=100) /topozone (http://www.topozone.com/) /thomasreg (http://www.thomasregister.com/) /uhaul (http://www.uhaul.com/) /ups (http://www.ups.com/) /usps (http://www.usps.com/) /vrane (http://www.vrane.com) /wayback (http://web.archive.org/) /whois (http://www.networksolutions.com/cgi-bin/whois/whois) /grainger (http://www.grainger.com/) /zipcodes (http://www.usps.com/ncsc/lookups/lookup_zip+4.html) /mcmaster (http://www.mcmaster.com/) /mscsupply (http://www.mscdirect.com/) /natauctioneers (http://www.auctioneers.org/) /newspapers (http://www.usnpl.com/) /norfolk (http://www.norfolkandwaay.com) /quickphrase (http://www.typingmaster.com/index.asp?go=quickphrase) /myebays (http://www.tinaja.com/glib/myebays.pdf) /moreebay (http://www.tinaja.com/glib/moreebay.pdf) /mapsonus (http://www6.mapsonus.com/) /aafont01 (http://www.tinaja.com/aafont01.asp) /froogle (http://www.froogle.com) /govliquidation (http://www.govliquidation.com) /intershipper (http://www.intershipper.com) /kelly (http://www.kbb.com) /paypal (https://www.paypal.com/refer/pal=don%40tinaja.com) /ebaysell (http://www.tinaja.com/glib/ebaysell.pdf) /ebaybuy (http://www.tinaja.com/glib/ebaybuy.pdf) /deja (http://groups.google.com/googlegroups/deja_announcement.html) /drhtml (http://www2.imagiware.com/RxHTML/) /fedex (http://www.fedex.com/us/) /currency (http://www.xe.net/ucc/) /terraserver (http://terraserver-usa.com/) /areacode (http://decoder.americom.com/cgi-bin/decoder.cgi) /asiansources (http://www.asia.globalsources.com/HOMEPAGES/ASOL/HOME) /ebaystore (http://stores.ebay.com/synergeticsabeja) /amazon (http://www.amazon.com/exec/obidos/redirect-home/donlancastersgur/) /aucres01 (http://www.tinaja.com/aucres01.asp) /auctlinks (http://www.tinaja.com/auct01.asp#links) /wayback (http://www.archive.org/web/web.php) /agilent (http://www.agilent.com) /fields01.psl (http://www.tinaja.com/glib/fields01.psl) /fields01.pdf (http://www.tinaja.com/glib/fields01.pdf) /maxwells (http://hyperphysics.phy-astr.gsu.edu/hbase/electric/maxeq.html#c3) /muse121 (http://www.tinaja.com/glib/muse121.pdf) /maxwellbook (http://www.amazon.com/exec/obidos/ISBN=0486606368/donlancastersgurA) /transtronics (http://www.transtronics.com) /sigview.pdf (http://www.tinaja.com/glib/sigview.pdf) /mscal28nd.asp (http://www.tinaja.com/mscal28nd.asp) /microchip (http://www.microchip.com) /numschip.pdf (http://www.tinaja.com/glib/numschip.pdf) /numschip.psl (http://www.tinaja.com/glib/numschip.psl) /msd28a.asm (http://www.tinaja.com/glib/msd28a.asm) /lineartechnology (http://www.lineartechnology.com) /bmtypewr (http://www.tinaja/com/psutils/bmtypewr.psl) /distlang.pdf (http://www.tinaja.com/glib/distlang.pdf) /muse141 (http://www.tinaja.com/glib/muse141.pdf) /screenthief (http://www.keyscreen.com/KeyScreen(s)5/scrnthf.htm) /giffont (http://www.tinaja.com/bmfonts/giffont1.bmp) /f507bg.txt (http://www.tinaja.com/bmfonts/f507bg.txt) /f507bg.psl (http://www.tinaja.com/bmfonts/f507bg.psl) /f507bg.pdf (http://www.tinaja.com/bmfonts/f507bg.pdf) /f607bg.txt (http://www.tinaja.com/bmfonts/f607bg.txt) /f707bg.txt (http://www.tinaja.com/bmfonts/f707bg.txt) /imgwrds1.psl (http://www.tinaja.com/psutils/imgwrds1.psl) /bmfont01 (http://www.tinaja.com/bmfont01.asp) /expbmp.psl (http://www.tinaja.com/glib/expbmp.psl) /kikisu (http://www.tinaja.com/images/bargs/ki710101.jpg) /hp3336a (http://www.tinaja.com/images/bargs/hp333601.jpg) /bmtransfer (http://www.tinaja.com/bmfonts/lettex01.bmp) /histolog.pdf (http://www.tinaja.com/glib/histolog.pdf) /histolog.psl (http://www.tinaja.com/glib/histolog.psl) /site01 (http://www.tinaja.com/site01.asp) /dayproc1.psl (http://www.tinaja.com/psutils/dayproc1.psl) /trail30.psl (http://www.tinaja.com/psutils/trail30.psl) /logrptm1.psl (http://www.tinaja.com/psutils/logrptm1.psl) /logrpt01.psl (http://www.tinaja.com/psutils/logrpt01.psl) /powerfit (http://www.tinaja.com/glib/powerfit.pdf) /pssort (http://www.tinaja.com/glib/pssort.pdf) /heapsort (http://www.tinaja.com/glib/heapsort.pdf) /bashpseu (http://www.tinaja.com/glib/bashpseu.pdf) /pseudo01 (http://www.tinaja.com/pseudo01.asp) /muse112 (http://www.tinaja.com/glib/muse112.pdf) /muse113 (http://www.tinaja.com/glib/muse113.pdf) /muse89 (http://www.tinaja.com/glib/muse89.pdf) /muse151 (http://www.tinaja.com/glib/muse151.pdf) /muse153 (http://www.tinaja.com/glib/muse153.pdf) /pssecrets (http://www.tinaja.com/glib/pssecrets.pdf) /bouncy (http://www.tinaja.com/glib/bouncy.pdf) /vectstep (http://www.tinaja.com/glib/vectstep.pdf) /muse102 (http://www.tinaja.com/glib/muse102.pdf) /onesword (http://www.tinaja.com/text/onesword.html) /emergop2 (http://www.tinaja.com/glib/emergop2.pdf) /wave01 (http://www.tinaja.com/wave01.asp) /chaincode (http://www.tinaja.com/text/chain01.html) /muse152 (http://www.tinaja.com/glib/muse152.pdf) /atg1 (http://www.tinaja.com/glib/atg1.pdf) /hack62 (http://www.tinaja.com/glib/hack62.pdf) /psinscrt (http://www.tinaja.com/glib/psinscrt.pdf) /fern2img (http://www.tinaja.com/psutils/fern2img.psl) /thefern (http://www.tinaja.com/psutils/fern2img.pdf) /cmoscb (http://www.amazon.com/exec/obidos/ISBN%3D0750699434/donlancastersgurA/002-0496817-3688016) /activecb (http://www.amazon.com/exec/obidos/ISBN%3D075062986X/donlancastersgurA/002-0496817-3688016) /hack64 (http://www.tinaja.com/glib/hack64.pdf) /nss (http://www.caves.org) /sinquest (http://www.tinaja.com/glib/sinquest.pdf) /askguru (http://www.tinaja.com/glair01.asp) /assycb (http://www.amazon.com/exec/obidos/ISBN%3D0672223317/donlancastersgurA/002-3338585-9572047) /muse105 (http://www.tinaja.com/glib/muse105.pdf) /muse107 (http://www.tinaja.com/glib/muse107.pdf) /resbn90 (http://www.tinaja.com/glib/resbn90.pdf) /hackar3 (http://www.tinaja.com/glib/hackar3.pdf) /testdemo (http://www.tinaja.com/glib/FULL60-1.ASC) /mschips (http://www.tinaja.com/glib/mschips.pdf) /sigview (http://www.sigview.com) /ggsigview (http://www.tinaja.com/glib/sigview.pdf) /mock (http://www.technicalworks.com) /xtronics (http://www.xtronics.com/) /oshen (http://www.oshonsoft.com/pic.html) /heapps01 (http://www.tinaja.com/psutils/heapps01.psl) /distlangpdf (http://www.tinaja.com/glib/distlang.pdf) /strconv (http://www.tinaja.com/glib/strconv.pdf) /fancysort (http://linux.wku.edu/~lamonml/algor/sort) /presort (http://www.tinaja.com/psutils/presort1.psl) /psnt (http://www.tinaja.com/glib/psnt.pdf) /insort (http://www.tinaja.com/psutils/insort.ps) /bublsort (http://www.tinaja.com/psutils/bublsort.ps) /oldstrconv (http://www.tinaja.com/psutils/strconv.html) /psdisk03 (http://www.tinaja.com/glib/psdisk03.pdf) /muse01 (http://www.tinaja.com/muse01.asp) /gonzopow (http://www.tinaja.com/glib/gonzopow.pdf) /analogeb (http://www.tinaja.com/glib/analogeb.pdf) /psdisk03 (http://www.tinaja.com/glib/psdisk03.pdf) /flut01 (http://www.tinaja.com/flut01.asp) /clpng (news:///comp.lang.postscript) /ctpng (news:///comp.text.pdf) /yahoo (http://www.yahoo.com) /google (http://www.google.com) /scodes (http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html) /whois (http://www.networksolutions.com/en_US/whois/index.jhtml) /zekes (http://www.zekes.com) /logfileformat (http://www.microsoft.com/windows2000/en/server/iis/default.asp?url=/windows2000/en/server/iis/htm/core/iicnvlg.htm) /logrpt01.psl (http://www.tinaja.com/psutils/logrpt01.psl) /logrpt01.log (http://www.tinaja.com/psutils/logrpt01.log) /ex031126 (http://www.tinaja.com/psutils/ex031126.log) /picup01 (http://www.tinaja.com/picup01.asp) /webwb01 (http://www.tinaja.com/webwb01.asp) /muse90 (http://www.tinaja.com/glib/muse90.pdf) /vismagsn (http://www.tinaja.com/glib/vismagsn.psl) /vismagsn.pdf (http://www.tinaja.com/glib/vismagsn.pdf) /msquant (http://www.tinaja.com/glib/msquant.psl) /optjit01 (http://www.tinaja.com/psutils/optjit01.psl) /optjit01demo (http://www.tinaja.com/psutils/optjit01.pdf) /qall01 (http://www.tinaja.com/psutils/qall01.psl) /deltapat (http://www.tinaja.com/psutils/deltapat.pdf) /deltapat.pdf (http://www.tinaja.com/psutils/deltapat.pdf) /deltapat.psl (http://www.tinaja.com/psutils/deltapat.psl) /mindist1 (http://www.tinaja.com/glib/mindist1.pdf) /deltams1 (http://www.tinaja.com/glib/deltams1.pdf) /grabjpg (http://www.tinaja.com/psutils/grabjpg.psl) /gallery (http://www.tinaja.com/glib/gallery.pdf) /nutour01 (http://wwww.tinaja.com/nutour01.pdf) /linkpdf1 (http://www.tinaja.com/glib/linkpdf1.html) /ebayfoto (http://www.tinaja.com/glib/ebayfoto.pdf) /jpeg2pdf.html (http://www.tinaja.com/text/jpeg2pdf.html) /pdf2bmp (http://www.tinaja.com/psutils/pdf2bmp.psl) /bitmfont (http://www.tinaja.com/psutils/bitmfont.txt) /antifontpsl (http://www.tinaja.com/psutils/antifont.psl) /antifonttxt (http://www.tinaja.com/psutils/antifont.txt) /histog01 (http://www.tinaja.com/psutils/histog01.psl) /swingtlt (http://www.tinaja.com/glib/swingtlt.pdf) /newsamoe (news:///alt.marketing/online.ebay) /webtrends (http://www.netiq.com/webtrends/default.asp) /stegan (http://63.140.207.28/books/bkwater.asp) /nodi (http://www.pages.ebay.com/help/community/notice-infringe2.pdf) /ebayvero (http://www.pages.ebay.com/help/community/vero-program.html) /aboutme (http://members.ebay.com/aboutme/abeja/) /magfill2 (http://www.tinaja.com/psutils/magfill2.psl) /bmprpt01 (http://www.tinaja.com/psutils/bmprpt01.psl) /waywere (http://www.tinaja.com/glib/waywere.pdf) /nikon (http://www.nikon.com) /bayer (http://www.coreco.com/Web/wbtools3.nsf/0/87fce126f109ea3a05256c7100591c9a?OpenDocument) /hewpack (http://www.hp.com) /auct01 (http://www.tinaja.com/auct01.asp) /blat01 (http://www.tinaja.com/blat01.asp) /moreebay (http://www.tinaja.com/glib/moreebay.pdf) /auctscne (http://www.tinaja.com/glib/auctscne.pdf) /autourl (http://www.tinaja.com/glib/autourl.pdf) /msintro1 (http://www.tinaja.com/glib/msintro1.pdf) /msintrosource (http://www.tinaja.com/glib/msintro1.psl) /knockout (http://www.tinaja.com/glib/knockout.bmp) /stepsynt (http://www.tinaja.com/glib/stepsynt.pdf) /msintro1 (http://www.tinaja.com/glib/msintro1.pdf) /msinprop (http://www.tinaja.com/glib/msinprop.pdf) /muse106 (http://www.tinaja.com/glib/muse106.pdf) /muse142 (http://www.tinaja.com/glib/muse142.pdf) /math01 (http://www.tinaja.com/math01.asp) /cubic01 (http://www.tinaja.com/cubic01.asp) /bez4pts (http://www.tinaja.com/glib/bez4pts.pdf) /muse145 (http://www.tinaja.com/glib/muse145.pdf) /muse148 (http://www.tinaja.com/glib/muse148.pdf) /curveft3 (http://www.tinaja.com/psutils/curveft3.psl) /fuzzybez (http://www.tinaja.com/glib/fuzzybez.pdf) /bmprpt01 (http://www.tinaja.com/psutils/bmprpt01.psl) /nowhit01 (http://www.tinaja.com/psutils/nowhit01.psl) /blender (http://www.tinaja.com/psutils/blender.psl) /speedup2 (http://www.tinaja.com/glib/speedup2.pdf) /histog01 (http://www.tinaja.com/psutils/histog01.psl) /imgviewer32 (http://www.arcatapet.net/imgv32.cfm) /basis (http://www.tinaja.com/glib/basis.pdf) /expbmp (http://www.tinaja.com/glib/expbmp.pdf) /dodbur01 (http://www.tinaja.com/psutils/dodbur01.psl) /dodgebur (http://www.tinaja.com/glib/dodgebur.pdf) /magfill1 (http://www.tinaja.com/psutils/magfill1.psl) /swingt01 (http://www.tinaja.com/psutils/swingt01.psl) /before01 (http://www.tinaja.com/images/bargs/marcon01.jpg) /during01 (http://www.tinaja.com/images/bargs/marcon01.bmp) /after01 (http://www.tinaja.com/images/bargs/marconz1.jpg) /repobmp (http://www.tinaja.com/glib/repobmp.pdf) /basis01 (http://www.tinaja.com/glib/basis.pdf) /arcata (http://www.arcatapet.net/imgv32.cfm) /comparebmp (http://www.designer-info.com/Writing/bmp_tiff_jpeg_gif.htm) /imagimag (http://www.tinaja.com/glib/imagimag.pdf) /myebays (http://www.tinaja.com/glib/myebays.pdf) /stepprep (http://www.tinaja.com/glib/stepprep.pdf) /aafont01 (http://www.tinaja.com/aafont01.asp) /here1 (http://village.infoweb.ne.jp/~fwhw1257/study/bmpform.htm) /here2 (http://www.daubnet.com/formats/BMP.html) /bittype (http://www.tinaja.com/psutils/pdf2bmp.psl) /photocombine (http://www.tinaja.com/psutils/blender.psl) /psl (http://www.tinaja.com/psutils/) % dummy temp /psl1 (http://www.tinaja.com/psutils/pdf2bmp.psl) /psl2 (http://www.tinaja.com/psutils/acatdata.psl) /psl3 (http://www.tinaja.com/psutils/catwords.psl) /psl4 (http://www.tinaja.com/psutils/graburls.psl) /psl5 (http://www.tinaja.com/psutils/blender.psl) /psl6 (http://www.tinaja.com/psutils/catools1.psl) /psl7 (http://www.tinaja.com/psutils/strconv.html) /psl8 (http://www.tinaja.com/psutils/bodcat.psl) /psl9 (http://www.tinaja.com/psutils/flatvue1.psl) /psl10 (http://www.tinaja.com/psutils/fern2img.psl) /psl11 (http://www.tinaja.com/psutils/flutools.psl) /psl12 (http://www.tinaja.com/psutils/mscal156q.psl) /psl13 (http://www.tinaja.com/psutils/weblogu2.psl) /psl14 (http://www.tinaja.com/psutils/pfa2pfb.psl) /psl15 (http://www.tinaja.com/psutils/pfb2pfa.psl) /psl16 (http://www.tinaja.com/glib/psdisk03.psl) /psl17 (http://www.tinaja.com/psutils/disktool.psl) /psl18 (http://www.tinaja.com/glib/psinscrt.psl) /psl19 (http://www.tinaja.com/glib/pssearch.psl) /psl20 (http://www.tinaja.com/text/refsum1.html) /psl21 (http://www.tinaja.com/text/reflog1.html) /psl22 (http://www.tinaja.com/psutils/reflog1.psl) /psl23 (http://www.tinaja.com/psutils/refsum1.psl) /psl24 (http://www.tinaja.com/psutils/searepl.psl) /psl25 (http://www.tinaja.com/psutils/weberru2.psl) /psl26 (http://www.tinaja.com/psutils/grabsrch.psl) /psl27 (http://www.tinaja.com/psutils/grabrefs.psl) /magsn01 (http://www.tinaja.com/magsn01.asp) /gonzoutils (http://www.tinaja.com/post01.asp#gonzo) /disktool (http://www.tinaja.com/psutils/disktool.ps) /elesimp (http://www.tinaja.com/glib/elesimp.pdf) /tn5603 (http://partners.adobe.com/asn/developer/pdfs/tn/TN5603.Filters.pdf) /fern2img (http://www.tinaja.com/psutils/fern2img.psl) /fern (http://www.tinaja.com/psutils/fern2img.pdf) /oldfern (http://www.tinaja.com/psutils/fernx1.pdf) /acrosdk (http://partners.adobe.com/asn/developer/acrosdk/main.html) /refman2 (http://partners.adobe.com/asn/developer/pdfs/tn/psrefman.pdf) /refman3 (http://partners.adobe.com/asn/developer/pdfs/tn/PLRM.pdf) /s3011 (http://partners.adobe.com/asn/developer/pdfs/tn/PS3010and3011.Supplement.pdf) /s2011 (http://ftp.ktug.or.kr/obsolete/info/adobe/devtechnotes/pdffiles/ps2011.supplement.pdf) /s2012 (http://ftp.ktug.or.kr/obsolete/info/adobe/devtechnotes/pdffiles/ps2012.supplement.pdf) /s2013 (http://ftp.ktug.or.kr/obsolete/info/adobe/devtechnotes/pdffiles/ps2013.supplement.pdf) /s2014 (http://ftp.ktug.or.kr/obsolete/info/adobe/devtechnotes/pdffiles/ps2014.supplement.pdf) /s2015 (http://ftp.ktug.or.kr/obsolete/info/adobe/devtechnotes/pdffiles/ps2015.supplement.pdf) /s2016 (http://ftp.ktug.or.kr/obsolete/info/adobe/devtechnotes/pdffiles/ps2016.supplement.pdf) /ghost (http://www.cs.wisc.edu/~ghost/) /distlang (http://www.tinaja.com/psutils/distlang.html) /adobepst (http://partners.adobe.com/asn/developer/technotes/) /maildon (mailto:don@tinaja.com) /tinaja (http://www.tinaja.com) /adobe (http://www.adobe.com) /adobesdk (http://partners.adobe.com/asn/developer/acrosdk/main.html) /pstrans (http://www.tinaja.com/glib/pstrans.pdf) /borland (http://www.borland.com/products/downloads/download_cbuilder.html) /ebay (http://cgi6.ebay.com/ws/eBayISAPI.dll?ViewSellersOtherItems&userid=abeja&completed=0&sort=2&since=-1&include=0&page=1&rows=100) /searepl (http://www.tinaja.com/psutils/searepl.psl) /aasdk (http://www.tinaja.com/plugins/AboutAcrobatSDK.api) /uncomp (http://www.tinaja.com/plugins/UncompressPDF.api) /addimage (http://www.tinaja.com/plugins/AddImage.api) /samplejpg (http://www.tinaja.com/plugins/sample.jpg) /transparency (http://www.tinaja.com/plugins/Transparency.api) /threerects (http://www.tinaja.com/plugins/threerects.pdf) /watermark (http://www.tinaja.com/plugins/Watermark.api) /verifyurls (http://www.tinaja.com/plugins/VerifyURLS.api) /flate (http://www.tinaja.com/glib/flatvue.pdf) /pstrans (http://www.tinaja.com/glib/pstrans.pdf) /advt01 (http://www.tinaja.com/advt01.asp) /amlink01 (http://www.tinaja.com/amlink01.asp) /ng1 (news:///comp.text.pdf) /ng2 (news:///comp.lang.postscript) /msc++ (http://msdn.microsoft.com/visualc/productinfo/default.asp) /degub (http://www.tinaja.com/glib/degub.pdf) % dead /ghostscript (http://www.artifex.com/pressreleases/GS70.htm) /demox.psl (http://www.tinaja.com/glib/g9demox.psl) /demox.pdf (http://www.tinaja.com/glib/g9demox.pdf) /demo.pdf (http://www.tinaja.com/glib/g9demo.pdf) /flatvue (http://www.tinaja.com/glib/flatvue.psl) /pdfrefman (http://partners.adobe.com/asn/developer/acrosdk/docs.html) /psrefman (http://partners.adobe.com/asn/developer/technotes/postscript.html) /pdfmrm (http://partners.adobe.com/asn/developer/acrosdk/docs.html) /tipdf (http://partners.adobe.com/asn/developer/acrosdk/docs.html) /asdk (http://partners.adobe.com/asn/developer/acrosdk) /mtcr (http://support.adobe.com/devsup/devsup.nsf/docs/51864.htm) /flatvue1 (http://www.tinaja.com/psutils/flatvue1.psl) /acrob01 (http://www.tinaja.com/acrob01.asp) /post01 (http://www.tinaja.com/post01.asp) /info01 (http://www.tinaja.com/info01.asp) /gurgrm01 (http://www.tinaja.com/gurgrm01.asp) /energfun (http://www.tinaja.com/glib/energfun.pdf) { /tilley (http://www.tilleyfoundation.com) /mnglobal (http://www.mnglobal.com/energy/pg2.htm) /keely (http://www.keelynet.com) /evolve (http://www.evolvedtechnology.com) /hack64 (http://www.tinaja.com/glib/hack64.pdf) /hackar3 (http://www.tinaja.com/glib/hackar3.pdf) /resbn58 (http://www.tinaja.com/glib/resbn58.pdf) /bppt (http://www.batterypoweronline.com) /muse112 (http://www.tinaja.com/glib/muse112.pdf) /muse113 (http://www.tinaja.com/glib/muse113.pdf) /energfun (http://www.tinaja.com/glib/energfun.pdf) /bashpseu (http://www.tinaja.com/glib/bashpseu.pdf) /adobe (http://www.adobe.com) /netscape (http://www.netscape.com) /gallypsl (http://www.tinaja.com/galley1.psl) /gallypdf (http://www.tinaja.com/galley1.pdf) /atn5150 (http://partners.adobe.com/asn/developer/acrosdk/docs/createpdfapi/pdfmarkReference.pdf) /nutour (http://www.tinaja.com/bargains/nutour02.pdf) /nutoursource (http://www.tinaja.com/bargains/nutour02.psl) /bwhistle (http://www.tinaja.com/glib/bwhistle.pdf) /gonzo1 (http://www.tinaja.com/post01.asp#gonzo) /barg01 (http://www.tinaja.com/barg01.asp) /weblib01 (http://www.tinaja.com/weblib01.asp) /gurgrm01 (http://www.tinaja.com/gurgrm01.asp) /z1 (http://www.tinaja.com/bargains/thumb/albradz2.jpg) /z2 (http://www.tinaja.com/bargains/sbtesteq.asp) /z3 (http://www.tinaja.com/images/bargs/albrad02.jpg) /z4 (http://www.tinaja.com/bargains/thumb/tutenaz2.jpg) /z5 (http://www.tinaja.com/bargains/sbphone.asp) /z6 (http://www.tinaja.com/images/bargs/tutena02.jpg) /sourceme (http://www.tinaja.com/glib/gallery.psl) /sourceme2 (http://www.tinaja.com/glib/autourl.psl) } pop >> {mark exch /eurl cvx ] cvx def} forall %%%%%%%%%%%%%%%% New colorizer patches %%%%%%%%%%%%%%%%%% /boxgrays 0.899 def /grayshade boxgrays def /mastergray boxgrays def /staytint {0.33 setgray} def /staytint1 {0.25 setgray} def /showadgrays true def /red {0 settint} def /Zmacro {staytint /ypos ypos 2 add def 72 300 div setlinewidth xpos ypos moveto txtwide 0 rlineto stroke /ypos ypos -2 add def tintoff} def % hair rule /amacro {(zy0) stringmacro /ypos ypos ypara add def 0.33 setgray } def % start drop cap /bmacro {(iFy1) stringmacro /ypos ypos ypara add def black} def % finish drop cap % Gonzo character colorizer /blueon {mark /blue cvx 0.33 /setgray cvx] cvx printlist exch 3 index exch put exch 1 add exch} def /blueoff {mark /beige cvx 0 /setgray cvx] cvx printlist exch 3 index exch put exch 1 add exch} def /tinton {mark 0.33 /setgray cvx] cvx printlist exch 3 index exch put exch 1 add exch} def /tinton1 {mark 0.25 /setgray cvx] cvx printlist exch 3 index exch put exch 1 add exch} def /tinton1b {mark beige cvx % try for aqua after url??? 0.25 /setgray cvx] cvx printlist exch 3 index exch put exch 1 add exch} def /tinton1a {mark /aqua cvx % try for aqua after url??? 0.25 /setgray cvx] cvx printlist exch 3 index exch put exch 1 add exch} def /tinton1p {mark /burple cvx % try for aqua after url??? 0.25 /setgray cvx] cvx printlist exch 3 index exch put exch 1 add exch} def /tinton1r {mark /red cvx % try for aqua after url??? 0.25 /setgray cvx] cvx printlist exch 3 index exch put exch 1 add exch} def /tinton1a {mark /aqua cvx % try for aqua after url??? 0.25 /setgray cvx] cvx printlist exch 3 index exch put exch 1 add exch} def /tinton1b {mark /beige cvx % try for beige after url??? 0.25 /setgray cvx] cvx printlist exch 3 index exch put exch 1 add exch} def /tintoff {mark 0 /setgray cvx] cvx printlist exch 3 index exch put exch 1 add exch} def %%%%%%%%%%%%%% COMPACT VERSION OF COLORIZER II %%%%%%%%%%%%%%%%%%%%%% /settint {dup /currenttint exch store 5.999 mul dup floor cvi /&cbar exch store dup floor sub /&cwt exch store [ {/setgray [ /dup cvx 0.3 &cwt 0.59 mul add /ge cvx [1 /exch cvx &cwt 0.59 mul 0.30 add /sub cvx 1 &cwt sub 0.59 mul 0.11 add /div cvx /dup cvx 1 &cwt sub /mul cvx &cwt /add cvx /exch cvx ] cvx [ &cwt 0.59 mul 0.3 add /div cvx /dup cvx &cwt /mul cvx 0] cvx /ifelse cvx /setrgbcolor cvx] cvx /def cvx} {/setgray [/dup cvx 0.59 1 &cwt sub 0.3 mul add /ge cvx [1 &cwt sub 0.3 mul 0.59 add /sub cvx &cwt 0.3 mul 0.11 add /div cvx /dup cvx &cwt /mul cvx 1 &cwt sub /add cvx /exch cvx 1 /exch cvx] cvx [1 &cwt sub 0.3 mul 0.59 add /div cvx /dup cvx 1 &cwt sub /mul cvx /exch cvx 0] cvx /ifelse cvx /setrgbcolor cvx] cvx /def cvx} {/setgray [/dup cvx 0.59 &cwt 0.11 mul add /ge cvx [&cwt 0.11 mul 0.59 add /sub cvx 1 &cwt sub 0.11 mul 0.30 add /div cvx /dup cvx 1 &cwt sub /mul cvx &cwt /add cvx 1 /exch cvx] cvx [0 /exch cvx &cwt 0.11 mul 0.59 add /div cvx /dup cvx &cwt /mul cvx] cvx /ifelse cvx /setrgbcolor cvx] cvx /def cvx} {/setgray [/dup cvx 0.59 1 &cwt sub mul 0.11 add /ge cvx [1 &cwt sub 0.59 mul 0.11 add /sub cvx &cwt 0.59 mul 0.30 add /div cvx /dup cvx &cwt /mul cvx 1 &cwt sub /add cvx 1] cvx [0 /exch cvx 1 &cwt sub 0.59 mul 0.11 add /div cvx /dup cvx 1 &cwt sub /mul cvx /exch cvx] cvx /ifelse cvx /setrgbcolor cvx] cvx /def cvx} {/setgray [/dup cvx 0.11 &cwt 0.30 mul add /ge cvx[&cwt 0.30 mul 0.11 add /sub cvx 1 &cwt sub 0.30 mul 0.59 add /div cvx /dup cvx 1 &cwt sub /mul cvx &cwt /add cvx /exch cvx 1] cvx [ &cwt 0.30 mul 0.11 add /div cvx /dup cvx &cwt /mul cvx /exch cvx 0 /exch cvx ] cvx /ifelse cvx /setrgbcolor cvx ] cvx /def cvx} {/setgray [ /dup cvx 0.30 1 &cwt sub 0.11 mul add /ge cvx[ 1 /exch cvx 1 &cwt sub 0.11 mul 0.30 add /sub cvx &cwt 0.11 mul 0.59 add /div cvx /dup cvx &cwt /mul cvx 1 &cwt sub /add cvx ] cvx [ 1 &cwt sub 0.11 mul 0.30 add /div cvx /dup cvx 1 &cwt sub /mul cvx 0 /exch cvx] cvx /ifelse cvx /setrgbcolor cvx ] cvx /def cvx} ] &cbar get exec exec} bind def /beige {0.10 settint} def % examples of convenience operators /aqua {0.52 settint} def /blue {0.67 settint} def /lime {0.44 settint} def /burple {0.75 settint} def %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% /guru { gonzo begin ps.util.1 begin printerror nuisance begin} def % guru % activate gonzo utilities 50 50 10 setgrid % create grid % 56 61 showgrid /setpagefonts { /cstretch 0.015 def /sstretch 0.015 def /font0 /StoneSans-Bold 1.6 gonzofont /font1 /StoneSans 0.95 gonzofont /font2 /StoneSans [0.95 0 0.25 0.95 0 0 ] gonzofont /font4 /StoneSans 0.85 gonzofont /font3 /StoneSans-Bold 0.85 gonzofont /font6 /StoneSans-Bold 0.85 gonzofont /font7 /StoneSans-Bold 1.05 gonzofont % subheaders /font8 /StoneSans-Bold [0.65 0 0 0.65 0 0.4] gonzofont /txtwide 36 store /yinc 1.2 store /kern 0.1 store /pm 1.5 store aqua 0.33 setgray font1 black /amacro { mark /aqua cvx 0.33 /setgray cvx ] cvx printlist exch 3 index exch % stuff into gonzo printlist put exch 1 add exch } def /bmacro { mark /black cvx ] cvx printlist exch 3 index exch % stuff into gonzo printlist put exch 1 add exch } def /shiftin {xpos /xposhold exch store /xpos xpos 3 add store} def /shiftout {/xpos xposhold store} def /texttop 51 store /textleft 3 store /cmacro {aqua 0.25 setgray (znhL7) stringmacro /xpos xpos 1.7 sub store /ypos ypos .1 sub def } def % left title /dmacro {black (pL1hz) stringmacro /xpos xpos 1.7 add store /ypos ypos .1 add def} def % normal text after centered title /fmacro % try and fake | {mark /gsave cvx /currentpoint cvx /moveto cvx 0.1 /setlinewidth cvx 0 0.65 /rlineto cvx /stroke cvx /grestore cvx ] cvx printlist exch 3 index exch put % stuff into gonzo printlist exch 1 add exch % increment gonzo list count } def } def setpagefonts % -2 50.5 (optional header here \274) cl %% Set document opening conventions. Note DOCVIEW limited. [/CropBox [0 0 520 620] % set the wierd size /PAGES pdfmark [ {Catalog} << /ViewerPreferences << /FitWindow true /CenterWindow true >> /PageLayout /OneColumn % continous /Pagemode /UseNone % no thumbs /View [/XYZ null null 1 ] % force 100% >> /PUT pdfmark %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% page manager /pagenum 1 store /startnewpage { black beige 0.35 setgray 21 -2.5 (|3\320|j|j) ggnum 10 string cvs mergestr (|j.|j) mergestr pagenum 10 string cvs mergestr (|j|j\320) mergestr cc aqua showpage %% start next page /pagenum pagenum 1 add store 50 50 10 setgrid % create grid setpagefonts font1 textleft texttop } def /su {surl font6} store /to {tinton1 font6} store /tx {tintoff font1} store /tabs [7 20] store %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % //// REVISED DIPDRAW PROC ///// electronics begin % dipdraw - draws a dip integrated circuit. (old code to be improved) % Enter with currentpoint set to pin 1 and scale % set so that 1.0 = distance between pins. Then % do a numpins-(name)-(hipins)-(lopins) dipdraw % Pin callouts preceeded by / will be complemented. % main dipdraw entry: /dipdraw { save /dipsnap exch def /hipins exch def /lopins exch def /chipname exch def /numpins exch def mark 0 0 0 0 0 0 0 0 0 0 0 0 % temp patch /howlong {numpins 2 div cvi 1 add} def /howhigh {4 numpins 36 ge {1 add} if} def /stub {howhigh 1.4 sub 2 div} def % internal service subs start here: /pinproc {numpins 2 div cvi{newpath 0 cpos 0.37 0 360 arc gsave 1 setgray fill grestore 0.067 setlinewidth stroke pin# 5 string cvs dup stringwidth pop 2 div neg cpos 0.2 sub moveto show 1 0 translate /pin# pin# dir add def} repeat } def /stretchprint { dup stringwidth pop 2 div neg exch length 1 sub stretch mul 2 div sub 0 moveto callout (/) anchorsearch true eq {currentpoint exch stretch add exch moveto pop dup /callout exch def stringwidth pop callout length 1 sub stretch mul add /barwide exch def 0.033 setlinewidth gsave currentpoint 0.55 add moveto barwide 0 rlineto stroke grestore} if stretch 0 callout ashow pop} def /pincallouts{0 vpos translate {workstring ( ) search true eq {/callout exch def pop /workstring exch def callout stretchprint 1 0 translate}{dup /callout exch def stretchprint exit } ifelse}loop} def % actual dipdraw process starts here: % ........ the outline: gsave 1 setlinecap 1 setlinejoin currentpoint translate newpath -1 howhigh 2 div 0.7 -90 90 arc 0 stub rlineto howlong 0 rlineto 0 howhigh neg rlineto howlong neg 0 rlineto closepath gsave grayshade setgray fill grestore grayshade dup 1 ne {0.33}{0} ifelse setgray 0.36 setlinewidth stroke newpath -.55 .45 0.15 0 360 arc fill black % ........ pin circles and numbers: /Helvetica-Bold findfont [0.4 0 0 0.55 0 0] makefont setfont gsave /pin# 1 def /dir 1 def /cpos 0 def pinproc grestore gsave /pin# numpins def /dir -1 def /cpos howhigh def pinproc grestore % pin callouts: /Helvetica findfont [0.35 0 0 0.6 0 0] makefont setfont /stretch 0.033 def gsave /workstring hipins def /vpos 0.6 def pincallouts grestore gsave /workstring lopins def /vpos howhigh 1.05 sub def pincallouts grestore % device number: grayshade 1 ne {0.33}{0} ifelse setgray /Helvetica-Bold findfont [1.4 0 0 1 0 0] makefont setfont /stretch 0.05 def gsave numpins 2 div 1 sub 2 div howhigh 2 div 0.33 sub translate chipname dup /callout exch def stretchprint grestore black % end cleanup: grestore grestore cleartomark dipsnap restore} def end % get out of electronics? %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% Burplebox routines /burpwide 29.5 store /burpcom {save /burpx exch store /bht exch store save /burp1 exch store xpos ypos translate -1 .2 mt bht yinc mul .4 add pd burpwide pr bht yinc mul .4 add pu closepath 0.9 setgray fill burp1 restore} store /burpwidew 32 store /burpcomw {save /burpx exch store /bht exch store save /burp1 exch store xpos 1 sub ypos translate 0 .2 mt bht yinc mul .4 add pd burpwidew pr bht yinc mul .4 add pu closepath 0.9 setgray fill burp1 restore} store { /burplebox1 {1.5 burpcom} store /burplebox1.5 {2 burpcom} store /burplebox2 {2.5 burpcom} store /burplebox2.5 {3 burpcom} store /burplebox3 {3.5 burpcom} store /burplebox3.5 {4 burpcom} store /burplebox4 {4.5 burpcom} store /burplebox4.5 {5 burpcom} store /burplebox5 {5.5 burpcom} store /burplebox5.5 {6 burpcom} store /burplebox6 {6.5 burpcom} store /burplebox6.5 {7 burpcom} store /burplebox7 {7.5 burpcom} store /burplebox7.5 {8 burpcom} store /burplebox8 {8.5 burpcom} store /burplebox8.5 {9 burpcom} store /burplebox9 {9.5 burpcom} store /burplebox9.5 {10 burpcom} store /burplebox10 {10.5 burpcom} store /burplebox10.5 {11 burpcom} store /burplebox11 {11.5 burpcom} store /burplebox11.5 {12 burpcom} store /burplebox12 {12.5 burpcom} store /burplebox11w {11.5 burpcomw} store /burplebox12.5 {13 burpcom} store /burplebox13 {13.5 burpcom} store /burplebox13.5 {14 burpcom} store /burplebox14 {14.5 burpcom} store /burplebox14.5 {15 burpcom} store /burplebox15{15.5 burpcom} store /burplebox15.5{16 burpcom} store /burplebox16 {16.5 burpcom} store /burplebox16.5 {17 burpcom} store /burplebox17 {17.5 burpcom} store /burplebox17.5 {18 burpcom} store /burplebox18 {18.5 burpcom} store /burplebox18.5 {19 burpcom} store /burplebox19 {19.5 burpcom} store /burplebox19.5 {20 burpcom} store /burplebox20 {20.5 burpcom} store /burplebox21.5 {22 burpcom} store /burplebox22{22.5 burpcom} store /burplebox22.5 {23 burpcom} store /burplebox23 {23.5 burpcom} store /burplebox23.5 {24 burpcom} store /burplebox24{24.5 burpcom} store /burplebox25{25.5 burpcom} store /burplebox25.5{26 burpcom} store /burplebox27{27.5 burpcom} store /burplebox28 {28.5 burpcom} store /burplebox28.5 {29 burpcom} store /burplebox30 {30.5 burpcom} store /burplebox31 {31.5 burpcom} store /burplebox31.5 {32 burpcom} store /burplebox33.5 {34 burpcom} store /burplebox34 {34.5 burpcom} store /burplebox38 {38.5 burpcom} store /burplebox38.5{39 burpcom} store /burplebox40{40.5 burpcom} store /burplebox40.5{41 burpcom} store /burplebox41.5{42 burpcom} store /burplebox42 {42.5 burpcom} store /burplebox42.5{43 burpcom} store % nearly a full page /burplebox43 {43.5 burpcom} store } pop 1 1 50 {cvi /size exch store % make all the burpleboxes (burplebox) size 20 string cvs mergestr cvn mark size 0.5 add /burpcom cvx ] cvx store (burplebox) size 0.5 add 20 string cvs mergestr cvn mark size 1 add /burpcom cvx ] cvx store } for /burplebox34w{34.5 burpcomw} store /burplebox34.5w{35 burpcomw} store /burplebox38w{38.5 burpcomw} store /burplebox38.5w{39 burpcomw} store /burplebox40w{40.5 burpcomw} store %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % New sequence of auto positioning figures... % combined autopos jpeg conversion and hotlink: /autoimageandlink1 {save /af1 exch store xpos ypos yinc add translate 11.8 -12.1 511 492 .022 % xpos ypos xres yres pixscale (http://www.tinaja.com/images/bargs/qsc53601.jpg) % url first (C:\\Documents and Settings\\don\\Desktop\\gurugrams\\71_ebayskill_V\\qsc53601.jpg) jpegimageprocwithlink af1 restore} store /autoimageandlink2 {save /af2 exch store xpos ypos yinc add translate 18 -11.8 684 487 .022 % xpos ypos xres yres pixscale (http://www.tinaja.com/images/bargs/ce47u25v.jpg) % url first (C:\\Documents and Settings\\don\\Desktop\\gurugrams\\70_ebayskill_iv\\ce47u25v.jpg) jpegimageprocwithlink af2 restore} store /autoimageandlink3 {save /af1 exch store xpos ypos yinc add translate 1 -12 684 487 .022 % xpos ypos xres yres pixscale (http://www.tinaja.com/images/bargs/pwrssrx3x.bmp) % url first (C:\\Documents and Settings\\don\\Desktop\\gurugrams\\70_ebayskill_iv\\origpwri.jpg) jpegimageprocwithlink af1 restore} store /autoimageandlink4 {save /af2 exch store xpos ypos yinc add translate 18 -12 -1.5 add 684 487 .022 % xpos ypos xres yres pixscale (http://www.tinaja.com/images/bargs/pwrssrx3.bmp) % url first (C:\\Documents and Settings\\don\\Desktop\\gurugrams\\70_ebayskill_iv\\finpwri.jpg) jpegimageprocwithlink af2 restore} store /jpegimageprocwithlink { % hoffset voffset hres vres save /snap2 exch def /infilename exch store % grab passed pix file /inurllink exch store % grab link filename /photoscale exch store /vpixels exch store /hpixels exch store translate % adjust position for final figure ??? inurllink setareaurl % autolink sizing /DeviceRGB setcolorspace % pick color model 0 0 translate % set page position hpixels vpixels scale % magnify unit square photoscale dup scale /infile infilename (r) file def % establish input read file /Data {infile /DCTDecode filter} def % define a data source << % start image dicationary /ImageType 1 % always one /Width hpixels % JPEG width in pixels /Height vpixels % JPEG height in pixels /ImageMatrix [hpixels 0 0 vpixels neg 0 vpixels ] /DataSource Data % proc to get filtered JPEG /BitsPerComponent 8 % color resolution /Decode [0 1 0 1 0 1] % per red book 4.10 >> image % call the image operator ypos snap2 restore /ypos exch def } def /setareaurl { % for auto include routine /cururlname exch store mark % start pdfmark /Rect [ 0 0 hpixels photoscale mul vpixels photoscale mul ] /Border [ 0 0 0] % [0 0 0 ] = none; [0 0 2] = debug /Color [ .7 0 0 ] /Action <> /Subtype /Link /ANN % annotation type pdfmark % call pdf operators } def %%%%%%%%%%%%% ordinary tracking figures /autofig1 { /figadvance 13 store save /snap1 exch store xpos 2 add ypos figadvance sub translate figure1 snap1 restore /ypos ypos figadvance sub yinc sub store } store /autofig2 { /figadvance 13 store save /snap2 exch store xpos 2 add ypos figadvance sub translate figure2 snap2 restore /ypos ypos figadvance sub yinc sub store } store %%%%%%%%%%%%%%% fixed position figures here %%%%%%%%%%%%%%% /figure1 {0 0 mt 10 pu 10 pr 10 pd closepath fill} store % temp tester /figure1 { save /f1snap exch store mark 5 12.2 translate -55 rotate 0.09 dup scale -100 -100 translate /solvexy {/ff exch store % grab values - not optimized /ee exch store /dd exch store /cc exch store /bb exch store /aa exch store cc aa dd div ff mul sub bb aa ee mul dd div sub div /yy exch store /xx cc bb yy mul sub aa div store xx yy } store /bez4ptsx1 {aload pop % unpack array /y3 exch store /x3 exch store % stash data. Strange /y5 exch store /x5 exch store % numbering is in use /y4 exch store /x4 exch store /y0 exch store /x0 exch store % find the chords /c1 x4 x0 sub dup mul y4 y0 sub dup mul add sqrt store /c2 x5 x4 sub dup mul y5 y4 sub dup mul add sqrt store /c3 x3 x5 sub dup mul y3 y5 sub dup mul add sqrt store % guess at the best t values % /t1 c1 dup c2 add c3 add div store % /t2 c1 c2 add dup c3 add div store /b0 {1 exch sub dup dup mul mul} store /b1 {dup 1 exch sub dup mul mul 3 mul} store /b2 {dup 1 exch sub exch dup mul mul 3 mul} store /b3 {dup dup mul mul} store % ai + bj = k t1 b1 t1 b2 x4 x0 t1 b0 mul sub x3 t1 b3 mul sub t2 b1 t2 b2 x5 x0 t2 b0 mul sub x3 t2 b3 mul sub solvexy /x2 exch store /x1 exch store t1 b1 t1 b2 y4 y0 t1 b0 mul sub y3 t1 b3 mul sub t2 b1 t2 b2 y5 y0 t2 b0 mul sub y3 t2 b3 mul sub solvexy /y2 exch store /y1 exch store x0 y0 moveto x1 y1 x2 y2 x3 y3 curveto } def /data [100 100 180 120 270 190 320 100 sub 300] store % /data [100 100 200 120 300 190 200.24 300] store /bdot {gsave 16 dup scale 0 0 dot grestore} store /bdot8 {gsave 6 dup scale 0 0 dot grestore} store data 0 get data 1 get mt bdot data 2 get data 3 get mt bdot data 4 get data 5 get mt bdot data 6 get data 7 get mt bdot /t1 0.33 store /t2 0.67 store 100 100 moveto % demo - comment before use data bez4ptsx1 0.35 setlinewidth stroke true { 1 0 0 setrgbcolor /t1 0.28 store /t2 0.72 store 100 100 moveto % demo - comment before use data bez4ptsx1 0.35 setlinewidth stroke 0 0 1 setrgbcolor /t1 0.37 store /t2 0.63 store 100 100 moveto % demo - comment before use data bez4ptsx1 0.35 setlinewidth stroke } if cleartomark f1snap restore } store /figure1 { save /f1snap exch store 5 -7.5 translate 0.1 dup scale /dots [0.0 0.0 0.264953 1.54495 0.604746 3.07298 1.03917 4.57484 1.59717 6.03836 2.31306 7.42849 3.22877 8.69581 4.37073 9.76335 5.71563 10.5583 7.19172 11.074 8.7265 11.3795 10.2797 11.5763 11.8334 11.7684 13.371 12.0601 14.8541 12.5554 16.2111 13.3298 17.3652 14.3824 18.2898 15.6429 19.0102 17.0323 19.5673 18.4938 20.0 20.0] store 0 0 10 setgrid 20 20 showgrid /x0 0 store /y0 0 store /x1 3 store /y1 20 store /x2 16 store /y2 4 store /x3 20 store /y3 20 store x0 y0 moveto x1 y1 x2 y2 x3 y3 curveto black line1 stroke 0 1 20 {2 mul /jj exch store dots jj get dots jj 1 add get mt dot } for f1snap restore } store %%%%%%%%%%%%%%%% %%%%%%%%%%%%%%%% special figure one for gg61 book layout /figure1 { save /f1xsnap exch store gsave % temp 10.2 0.8 translate 0.4 dup scale % adjust fit on page % add an active link for expandion temporary /cururlname (http://www.tinaja.com/glib/loglog01.pdf) store mark % start pdfmark /Rect [ 0 0 30 30 ] /Border [ 0 0 0] % [0 0 0 ] = none; [0 0 2] = debug /Color [ .7 0 0 ] /Action <> /Subtype /Link /ANN % annotation type pdfmark % call pdf operators % Custom Engineering Graphs: A log log display % ================================== % by Don Lancaster % Copyright c 2006 by Don Lancaster & Synergetics, Box 809, Thatcher, AZ, 85552 % (928) 428-4073 Email: don@tinaja.com Website: http://www.tinaja.com % Consulting services available http://www.tinaja.com/info01.html % All commercial rights and all electronic media rights ~fully~ reserved. % Linking usually welcome. Reposting expressly forbidden. Version 1.1 % An example of using my Gonzo Utilities to do a custom engineering graph. % Detailed example does a scatterplot on a 3x3 log graph. % IMPORTANT NOTE: Don Lancaster's file gonzo.ps is required for this program. % This may be freely downloaded from http://www.tinaja.com/post01.asp#gonzo % To activate after obvious location mods, uncomment ONE of the following two lines: % (C:\\Documents and Settings\\don\\Desktop\\gonzo\\gonzo.ps) run % use internal gonzo % (A:\\gonzo.ps) run % use external gonzo % Plus the next line when Gonzo is to be activated... % gonzo begin ps.util.1 begin nuisance begin % NOTE THAT ALL PS FILENAME STRINGS !!!DEMAND!!! DOUBLE REVERSE SLASHES. % To use this program, you modify your values and save it as an ordinary ASCII % textfile. That file is then sent to Acrobat Distiller for coversion to a .PDF % file format. %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%%%%%% Fixzed Input Data %%%%%%%%%%%%%%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% /backgroundcolor {0.8 1 1} store % background color of graph /graphlinecolor {0 0.8 0.8}store % line color of graph /datadotcolor {0.3 0.3 0.3} store % dot color % loglines establishes the fine line detail of the log plots % always refers to a 1,1 lower left axis and NOT to the actual % scaled data values /loglines [ 1 2 3 4 5 6 7 8 9 10 20 30 40 50 60 70 80 90 100 200 300 400 500 600 700 800 900 1000 ] store /xdatascale 1.0 store % scale factor to make left data = 1 /ydatascale 10 store % scale factor to make bottom data = 1 /xaxisname (TREES PER ACRE) store % x axis label /yaxisname (TREE DIAMETER IN INCHES) store % y axis label /xnums [1 10 100 1000] store % scaled x axis data /ynums [.1 1.0 10 100] store % scaled y axis data /maintitle (HULAPAI TIMBER ALLOTMENT\n( T20N R15E ) ) store % main title % /inputdata may be cut and pasted here or run as a separate textfile % below. Format is an array of [ x0, y0, x1, y1, .... xn, yn ] data % values. Limited to a maximum of 32767 data value pairs. Data is % ACTUAL values, not graph scaled ones. /inputdata [ 3.0634 0.3678 3 3 3 30 30 0.4 30 4 30 40 300 0.5 300 5 300 50 100 {90 random 10 add 90 random 10 add 10 div } repeat % fake some dense data ] store % Note: fonts must be defined BELOW and AFTER grid is established. % Availability of STONE font is recommended for this demo. %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%%%%%% File Read Input Data %%%%%%%%%%%%%%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % Any and all of the above data may optionally be read from a textfile. % If used, be sure to use a DOUBLE reverse % slash every time you want a single one in a PostScript string. % Be sure to provide complete, correct, and accurate location for access. % /datafilename (C:\\Documents and Settings\\don\\Desktop\\trees\\tree1.txt) store % Uncomment the following line ONLY if external data is to be disk read... % datafilename run % run additional data from external file. %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%% Low Level Graph Creating Code %%%%%%%%%%%%%%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % /makeagrid establishes the grid size. Each 10 x 10 area will be one % decade. Also puts down edges and background of log display area /makeagrid { % 100 100 10 setgrid % establish xposn yposn size grid /cstretch 0.01 store % adjust font to grid /sstretch 0.01 store backgroundcolor setrgbcolor % paint background. Comment out 0 0 mt 30 pu 30 pr 30 pd % or use [1 1 1] for white closepath fill graphlinecolor setrgbcolor % paint decades heavier line2 1 setlinecap 1 setlinejoin [ {-0.3 0 mt 30.3 r}10 4 ] yrpt % [{action} spacing repeats ] [ {0 -0.3 mt 30.3 u}10 4 ] xrpt } store % /make3x3log provides the inside detail for the log graphs. Both axes % done separately just in case semilog is later needed /make3x3log { line1 % thin line 0 1 loglines length 1 sub % draw verticals {/ptr exch store loglines ptr get log 10 mul 0 mt 30 u } for 0 1 loglines length 1 sub % draw horizontals {/ptr exch store loglines ptr get 0 exch log 10 mul mt 30 r } for } store % /plotdata scales and plots the data points from the inputdata array /plotdata { datadotcolor setrgbcolor % set dot color 0 2 inputdata length 2 sub % go through plotdata list {/ptr1 exch store % save location inputdata ptr1 get % get x value xdatascale mul log 10 mul inputdata ptr1 1 add get % get y value ydatascale mul log 10 mul mt dot % and plot dot } for } store % /addaxis lables the axes /addaxis { /font1 /StoneSans-Bold 0.85 gonzofont % numeric value font /font2 /StoneSans-Bold 1.2 gonzofont % title value font font1 % pick numeric font black % and color 0 1 xnums length 1 sub { % show the x axis nums /ptr2 exch store ptr2 10 mul -1.5 xnums ptr2 get 20 string cvs cc } for 0 1 ynums length 1 sub { % show the y axis nums /ptr2 exch store -0.9 ptr2 10 mul 0.3 sub ynums ptr2 get 20 string cvs cr } for font2 15 -3.5 xaxisname cc gsave -3.5 15 translate 90 rotate 0 0 yaxisname cc grestore } store % /addboiler provides the main graph name, can later extensively annotate. /addboiler { /font3 /StoneSans-Bold 2 gonzofont % title value font font3 /yinc 2.2 store 15 35 maintitle cc % print main title } store %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%% High Level Graph Creating Code %%%%%%%%%%%%%%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % This routine combines the needed steps for the complete log log plot. /makealogloggraph { makeagrid % sets up grid make3x3log % draws log graph addaxis % letters the axes plotdata % plots data points addboiler % adds title and desc } store % temp defaults. uncomment for debug % /make3x3log {} store % /addaxis {} store % /plotdata {} store /addboiler {} store %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%% Actual Graph Creator %%%%%%%%%%%%%%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % This routine actually draws the graph makealogloggraph grestore % undo translate and page positioning f1xsnap restore } store %%%%%%%%%%%%%%%% %%%%%%%%%%%%%%%% specific to gg65 ms executive summary %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%%%%%% specific figures for append %%%%%%%%%%%%%% /ms0360 { save /snapxx exch store 5 -2 translate % reposition absolute on page 0.76 dup scale /hh {32 mul 90 div 0.78 mul } store /uu 12.5 store /posninc 90 7.5 div store /p1s 11.086 store % best efficiency leans /p1e 12.913 store /p2s 22.211 store /p2e 25.788 store /p3s 33.416 store /p3e 38.583 store /p4s 44.733 store /p4e 51.266 store /p5s 56.192 store /p5e 63.807 store /p6s 67.819 store /p6e 76.180 store /p7s 79.628 store /p7e 88.371 store /msinplot {gsave translate 0.5 0 0.5 setrgbcolor line1 gsave % [{0 12 moveto 0.8 u} posninc hh 8] xrpt grestore 0 0 mt p1s hh pr uu pu p1e p1s sub hh pr uu pd p2s p1e sub hh pr uu pu p2e p2s sub hh pr uu pd p3s p2e sub hh pr uu pu p3e p3s sub hh pr uu pd p4s p3e sub hh pr uu pu p4e p4s sub hh pr uu pd p5s p4e sub hh pr uu pu p5e p5s sub hh pr uu pd p6s p5e sub hh pr uu pu p6e p6s sub hh pr uu pd p7s p6e sub hh pr uu pu p7e p7s sub hh pr uu pd 90 p7e sub hh pr gsave 0 0.83 0.83 setrgbcolor fill grestore line3 1 setlinecap 1 setlinejoin 0 0.33 0.33 setrgbcolor stroke grestore} store 0.8 1 scale % 40 100 showgrid /lilplot0 {gsave translate 0.5 0.5 scale 0 0 msinplot grestore} store /lilplot1 {gsave translate -0.5 0.5 scale 0 0 msinplot grestore} store /lilplot2 {gsave translate 0.5 -0.5 scale 0 0 msinplot grestore} store /lilplot3 {gsave translate -0.5 -0.5 scale 0 0 msinplot grestore} store 0 10 lilplot0 25 10 lilplot1 24.5 10 lilplot2 49.5 10 lilplot3 snapxx restore } store %%%%%%%%%%%%%%%%%%%%% /spectrumplot {save /snap3 exch store /cstretch 0.01 store /sstretch 0.01 store /font0 /StoneSans-Bold 1.2 gonzofont /font1 /StoneSans-Bold 1 gonzofont font1 /kern 0.1 store /yinc 1.1 store 7.5 5.8 translate % adjust position 0.7 dup scale gsave 0.75 1 1 setrgbcolor 0 0 mt 15 pu 36.5 pr 15 pd closepath fill grestore % 33 13 showgrid % uncomment to view gsave line1 [{0 0 mt 0.3 d} 2 19] xrpt grestore gsave line1 [{-0.4 3 mt 36.9 r} 3 5] yrpt grestore line1 36.5 0 mt 15 u 0 1 1 setrgbcolor 0 setlinecap line1 0.5 0 mt 15 pu 1 pr 15 pd gsave closepath fill grestore 0 0.33 0.33 setrgbcolor stroke 1 0 1 setrgbcolor 28.5 0 mt 4.2 pu 1 pr 4.2 pd gsave closepath fill grestore 0.33 0 0.33 setrgbcolor stroke 1 0 1 setrgbcolor 30.5 0 mt 2.25 pu 1 pr 2.25 pd gsave closepath fill grestore 0.33 0 0.33 setrgbcolor stroke 1 0 1 setrgbcolor 32.5 0 mt 3 pu 1 pr 3 pd gsave closepath fill grestore 0.33 0 0.33 setrgbcolor stroke 1 0 1 setrgbcolor 34.5 0 mt 0.5 pu 1 pr 0.5 pd gsave closepath fill grestore 0.33 0 0.33 setrgbcolor stroke black % /font1 /Helvetica 0.8 gonzofont font1 font1 /yinc 2 store /kern 0.1 store gsave 1.45 -0.9 translate 90 rotate black 0 0 (1 3 5 7 9 11 13 15 17 19 21 23 25 27 29 31 33 35) cr grestore font0 0.25 dup dup setrgbcolor % temp gray 12.5 -4 (HARMONIC NUMBER) cl font1 -1 -0.3 (0.0) cr -1 2.7 (0.2) cr -1 5.7 (0.4) cr -1 8.7 (0.6) cr -1 11.7 (0.8) cr -1 14.7 (1.0) cr gsave -3.5 4.0 translate 90 rotate % black font0 0 0 (AMPLITUDE) cl grestore black line2 0 0 mt -.5 0 mt 37 r 0 -.5 mt 16 u black font1 11 12.6 ((|jbest efficiency n|j=|j28|j a|j=|j0.97|j)) cl % flashtext font0 1 0 0 setrgbcolor 15 6.65 (All Intermediate\nHarmonics are ZERO|j!!!) cc snap3 restore } store %%%%%%%%%%%%%%%% %%%%%%%%%%%%%%%% /plot2897 {save /snap4 exch store /cstretch 0.01 store /sstretch 0.01 store /font0 /StoneSans-Bold 1.2 gonzofont /font1 /StoneSans-Bold 1 gonzofont font1 /kern 0.1 store /yinc 1.1 store 3.2 14 translate % adjust position 0.85 dup scale %%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%%%%%%%%% pattern utilities %%%%%%%%%%%%%%%%%% %%%%%%%%%%%%%%%%%%%%%%%%%% /bluerndcolor [153 215 230 40] store % random pattern colors [red blue green variance ] /slidewide 40 store /slidehigh 36.5 store /DeviceRGB setcolorspace % pick color model /hpixels 50 store % size of pattern image /vpixels 50 store /issize hpixels vpixels mul store % makestring converts a stack top array into a string... /makestring {dup length string dup /NullEncode filter 3 -1 roll {1 index exch write} forall pop} def % /buildpixels makes three nearby colors given [r b g texture] all 0-255 integers /buildpixels {aload pop /texture exch store /b0 exch store /g0 exch store /r0 exch store 123 srand /r1 r0 texture random texture 2 div sub add cvi dup 255 ge {pop 255}if dup 0 lt {pop 0} if store /g1 g0 texture random texture 2 div sub add cvi dup 255 ge {pop 255}if dup 0 lt {pop 0} if store /b1 b0 texture random texture 2 div sub add cvi dup 255 ge {pop 255}if dup 0 lt {pop 0} if store /r2 r0 texture random texture 2 div sub add cvi dup 255 ge {pop 255}if dup 0 lt {pop 0} if store /g2 g0 texture random texture 2 div sub add cvi dup 255 ge {pop 255}if dup 0 lt {pop 0} if store /b2 b0 texture random texture 2 div sub add cvi dup 255 ge {pop 255}if dup 0 lt {pop 0} if store /r3 r0 texture random texture 2 div sub add cvi dup 255 ge {pop 255}if dup 0 lt {pop 0} if store /g3 g0 texture random texture 2 div sub add cvi dup 255 ge {pop 255}if dup 0 lt {pop 0} if store /b3 b0 texture random texture 2 div sub add cvi dup 255 ge {pop 255}if dup 0 lt {pop 0} if store } store % /makeimagestring creates a sting usable for a pattern image /makeimagestring { 12345 srand % make repeatable /iarray mark issize { r1 g1 b1} repeat ] store % fill all with color 1 issize 2 div cvi { iarray issize % fill half with color 2 random 3 mul cvi [ r2 g2 b2 ] putinterval} repeat issize 2 div cvi { iarray issize % fill third with color 3 random 3 mul cvi [ r3 g3 b3 ] putinterval} repeat iarray makestring } store % /rndimage shows the random string as a patternable image /bodyrandimage { gsave 5 dup scale << % start image dicationary /ImageType 1 % always one /Width hpixels % width in pixels /Height vpixels % height in pixels /ImageMatrix [hpixels 0 0 vpixels neg 0 vpixels ] /DataSource bodypatstring % proc to get string data /BitsPerComponent 8 % color resolution /Decode [0 1 0 1 0 1] % per red book 4.10 >> image % call the image grestore } def /accentrandimage { gsave 5 dup scale << % start image dicationary /ImageType 1 % always one /Width hpixels % width in pixels /Height vpixels % height in pixels /ImageMatrix [hpixels 0 0 vpixels neg 0 vpixels ] /DataSource accentpatstring % proc to get string data /BitsPerComponent 8 % color resolution /Decode [0 1 0 1 0 1] % per red book 4.10 >> image % call the image grestore } def % using a separate pattern dictionary for each pattern... /bodypatdict << /PatternType 1 % Tiling pattern /PaintType 1 % Colored /TilingType 1 /BBox [0 0 50 50] /XStep 5 /YStep 5 /PaintProc { begin bodyrandimage end} >> store /accentpatdict << /PatternType 1 % Tiling pattern /PaintType 1 % Colored /TilingType 1 /BBox [0 0 50 50] /XStep 5 /YStep 5 /PaintProc { begin accentrandimage end} >> store % /makepatternstrings generates the needed patterns /makepatternstrings { [230 100 230 120] pop bluerndcolor buildpixels makeimagestring /bodypatstring exch store } store bluerndcolor buildpixels makepatternstrings %%%%%%%% end pattern utils %%%%%%%% save /snap1 exch store % show the body background bodypatdict matrix % Identity matrix makepattern % Instantiate the pattern /bodypat exch def 0 0 % for the actual slide size slidewide slidehigh /Pattern setcolorspace bodypat setcolor rectfill % Fill rectangle with pattern snap1 restore %%%% end % 40 36 showgrid /cstretch 0.01 store /sstretch 0.01 store /font1 /StoneSans-Bold 0.95 gonzofont % parameter value font /font2 /StoneSans [0.85 0 0 1 0 0 ] gonzofont % numeric value font /orange { 241 255 div 158 255 div 30 255 div setrgbcolor } store /magenta { 254 255 div 156 255 div 255 236 div setrgbcolor } store /ltblue { 207 255 div 255 255 div 255 255 div setrgbcolor } store /white {1 1 1 setrgbcolor} store /lime { 54 255 div 255 255 div 52 255 div setrgbcolor } store /aqua { 102 255 div 255 255 div 201 255 div setrgbcolor } store orange %%%%%%%%%%%% orange series gsave .8 .8 translate [{orange 0 0 mt 1.7 pu 12.0 pr 1.7 pd closepath fill white 2.9 .2 mt 1.3 pu 8.2 pr 1.3 pd fill} 2.2 14] yrpt font1 0.33 dup dup setrgbcolor /dat1 [(p7e:) (p7s:) (p6e:) (p6s:) (p5e:) (p5s:) (p4e:) (p4s:) (p3e:) (p3s:) (p2e:) (p2s:) (p1e:) (p1s:)] store font1 0.12 dup dup setrgbcolor 0 1 dat1 length 1 sub {/ii exch store 1.23 0.6 ii 2.2 mul add dat1 ii get cc} for /dat2 [ (89.76625289081) (75.93480958918) (75.13315213749) (63.77803849250) (62.12795009229) (52.45588082770) (49.57368364472) (41.56706542527) (37.14383081926) (30.95837849073) (24.75285471101) (20.53940226898) (12.37453450377) (10.24045703622) ] store font2 0 1 dat2 length 1 sub {/ii exch store 3.7 0.55 ii 2.2 mul add dat2 ii get cl} for gsave 0 31.2 translate lime 0 0 mt 3.7 pu 12 pr 3.7 pd fill 13 0 mt 3.7 pu 25 pr 3.7 pd fill % right lime font1 0.12 dup dup setrgbcolor /yinc 1.2 store 6 2 (Pulse Positions\nin Degrees) cc 25 2.2 (Target Amplitude: ) cr 25 1.9 1.3 sub (Target Power: ) cr [{white 25.7 0.3 mt 1.3 pu 8.2 pr 1.3 pd fill} 1.7 2] yrpt font2 26 2.2 (0.970000000) cl 26 0.6 (0.9409 ) cl grestore % lime grestore % undo whole left %%%%%%%% %%%%%%%%%%%% mid blue series gsave 13.8 .8 translate [{ltblue 0 0 mt 1.7 pu 12.0 pr 1.7 pd closepath fill white 2.9 .2 mt 1.3 pu 8.2 pr 1.3 pd fill} 2.2 12] yrpt font1 0.33 dup dup setrgbcolor /dat3 [(h25:) (h23:) (h21:) (h19:) (h17:) (h15:) (h13:) (h11:) (h09:) (h07:) (h05:) (h03:) ] store font1 0.12 dup dup setrgbcolor 0 1 dat3 length 1 sub {/ii exch store 1.23 0.6 ii 2.2 mul add dat3 ii get cc} for /dat4 [ (-0.00000000014) (-0.00000000032) (-0.00000000004) (-0.00000000021) (-0.00000000022) (-0.00000000002) (-0.00000000024) ( 0.00000000044) (-0.00000000022) (-0.00000000011) (-0.00000000013) (0.000000000070) ] store font2 0 1 dat4 length 1 sub {/ii exch store 3.7 0.55 ii 2.2 mul add dat4 ii get cl} for gsave % magenta series magenta [{magenta 0 26.4 mt 1.7 pu 25.0 pr 1.7 pd closepath fill} 2.2 2 ] yrpt font1 0.12 dup dup setrgbcolor 0.8 26.8 (THD ) cl 0.8 6.2 add 26.8 (is ) cl 0.8 15.3 add 26.8 (percent.) cl 0.8 26.8 2.3 add (Fundamental Amplitude:) cl white 3.2 5.2 add 26.6 mt 1.3 pu 7.2 pr 1.3 pd fill white 14.2 28.8 mt 1.3 pu 7.2 pr 1.3 pd fill % fund amp box white 3.2 26.6 mt 1.3 pu 3.2 pr 1.3 pd fill 0.12 dup dup setrgbcolor font2 3.6 26.8 (2-28) cl 8.7 26.8 (0.00000006128) cl font2 14.7 27 2.1 add (0.97000000) cl grestore % burple grestore % whole middle %%%%%%%% %%%%%%%%%%%% right blue series gsave 26.8 .8 translate [{ltblue 0 0 mt 1.7 pu 12.0 pr 1.7 pd closepath fill white 2.9 .2 mt 1.3 pu 8.2 pr 1.3 pd fill} 2.2 12] yrpt [{aqua 0 19.8 mt 1.7 pu 12.0 pr 1.7 pd closepath fill white 2.9 20 mt 1.3 pu 8.2 pr 1.3 pd fill } 2.2 2] yrpt % emphasis font1 0.33 dup dup setrgbcolor /dat1 [(h49:) (h47:) (h45:) (h43:) (h41:) (h39:) (h37:) (h35:) (h33:) (h31:) (h29:) (h27:) ] store font1 0.12 dup dup setrgbcolor 0 1 dat1 length 1 sub {/ii exch store 1.23 0.6 ii 2.2 mul add dat1 ii get cc} for /dat6 [ (-0.00924395093) ( 0.00562585661) (-0.00342276346) ( 0.00211106203) (-0.00078946014) ( 0.00660309293) ( 0.04412815271) ( 0.17750740386) ( 0.20474366480) (-0.15202976905) (-0.28097991216) (-0.00000000009) ] store font2 0 1 dat6 length 1 sub {/ii exch store 3.7 0.55 ii 2.2 mul add dat6 ii get cl} for grestore snap4 restore } store %%%%%%%% /stalacs { %figadvance has to go in figuretwoauto save /snap3 exch def 11 10.3 translate % latest page positioner 0.8 dup scale -0.5 2.5 translate % reposition on page INTERACTS WITH FIGADVANCE 0 1 0 setrgbcolor % green grid /linestring 1000 string store /sdatproc { 0.0 0.7 0.1 setrgbcolor [ 0.4 7.33 0.38 6.36 -0.32 7.12 -0.04 7.33 -0.38 7.07 -0.07 7.26 -0.2 4.68 0.07 5.15 0.11 6.17 -0.27 4.26 0.01 6.32 -0.23 4.79 0.05 2.95 -0.29 6.05 -0.02 6.3 0.02 7.29 -0.09 7.37 -0.15 6.89 -0.12 6.19 0.16 5.06 -0.18 7.0 0.1 7.32 0.13 7.29 -0.71 7.44 -0.54 5.7 -0.26 7.38 -0.88 6.82 -0.6 4.84 -0.56 5.38 -0.29 5.67 -0.63 6.12 -0.49 7.26 -0.45 6.66 -0.17 7.01 -0.51 7.05 ] makedots 0.6 0.2 1.0 setrgbcolor [ 0.65 7.03 0.69 6.23 0.97 6.68 0.63 6.72 0.62 6.51 0.6 7.45 0.8 6.74 1.08 7.27 0.74 6.98 0.74 6.97 1.05 7.33 0.71 6.69 0.38 7.38 0.04 6.4 0.32 6.16 0.36 5.3 0.63 7.17 0.02 7.15 0.3 5.41 0.01 6.4 0.29 5.16 0.33 7.08 -0.05 7.19 0.23 7.39 0.26 5.94 0.47 5.9 0.13 7.29 0.41 5.73 0.44 7.34 0.13 6.76 0.4 5.73 0.44 6.52 0.72 7.49 0.07 7.3 0.1 7.49 0.38 4.95 0.66 7.44 ] makedots 0.6 0.4 0.0 setrgbcolor [ 1.63 6.68 0.93 5.94 1.21 6.41 1.25 7.01 0.87 6.21 0.91 6.32 1.19 5.19 1.05 5.6 1.33 6.22 1.36 5.73 0.99 5.61 1.26 7.47 1.02 4.35 1.3 2.75 1.33 6.82 0.96 6.06 1.24 6.51 1.27 6.22 1.41 6.99 0.6 6.37 0.54 6.21 0.58 6.38 0.85 6.71 0.72 6.05 0.38 7.2 0.65 5.61 0.69 4.44 0.97 5.07 0.63 5.68 0.9 7.44 0.94 7.24 ]makedots 0.0 0.6 0.5 setrgbcolor [ 1.94 5.77 2.22 6.47 1.88 6.61 2.19 7.1 1.88 6.99 1.91 7.36 2.19 7.2 1.85 6.98 1.5 6.84 1.44 7.42 1.3 6.69 1.57 6.66 1.33 7.31 1.61 4.16 1.89 6.58 1.27 6.45 1.55 4.73 1.58 6.33 1.86 6.88 1.27 6.28 1.54 5.29 1.58 5.83 1.86 7.0 1.2 7.36 1.24 7.32 1.52 4.83 1.79 7.44 1.72 6.96 1.66 7.1 1.7 7.36 1.69 7.14 1.63 6.09 0.94 7.5 1.19 7.27 ]makedots 1.0 0.0 0.9 setrgbcolor [ 2.77 7.47 2.19 5.69 2.47 6.39 2.5 5.62 2.13 6.29 2.16 4.87 2.44 3.68 2.47 6.99 2.1 6.96 2.38 7.43 2.41 6.96 2.3 7.28 2.61 6.33 2.27 5.22 2.55 4.32 2.59 6.34 2.21 6.99 2.53 6.05 1.86 5.69 2.17 7.05 1.52 7.32 1.79 5.86 1.83 4.38 2.11 5.13 1.77 6.23 1.97 7.29 1.91 7.2 1.94 4.78 2.22 5.62 2.26 7.34 1.88 6.26 1.92 7.41 2.19 6.71 ]makedots 0.3 0.5 0.0 setrgbcolor [ 3.08 6.71 3.36 7.4 3.2 6.33 3.47 7.16 3.13 7.36 3.17 7.34 3.45 6.83 3.17 7.46 3.44 7.49 3.1 7.36 2.44 7.31 2.71 7.35 2.75 4.87 3.03 7.12 2.41 7.35 2.69 5.99 2.72 7.09 2.68 6.84 2.72 7.03 2.66 6.77 2.59 7.22 2.86 4.34 3.14 6.88 3.18 7.38 2.52 6.65 2.8 5.26 2.84 5.32 3.11 6.18 2.52 7.09 2.8 6.44 2.83 5.51 3.11 6.94 2.49 7.14 2.77 4.86 2.53 7.25 2.19 7.45 2.44 6.93 ]makedots 0.0 0.5 1.0 setrgbcolor [ 3.64 7.35 3.3 7.22 3.58 6.56 3.76 7.24 3.44 6.46 3.72 7.27 3.48 7.12 3.75 5.15 3.38 7.25 3.41 4.44 3.69 3.51 3.73 5.53 4.01 7.05 3.35 6.95 3.67 5.83 3.53 6.9 3.8 6.46 3.84 6.79 3.78 6.81 3.0 7.19 2.97 6.5 3.25 7.11 3.11 6.04 3.15 6.8 3.42 6.27 3.05 6.49 3.08 3.17 3.36 4.46 3.4 6.24 3.02 5.79 3.06 6.77 3.33 6.1 3.2 6.17 3.47 7.04 3.51 7.39 3.45 7.05 2.75 7.44 ]makedots 1.0 0.1 0.3 setrgbcolor [ 4.34 6.3 4.61 7.2 4.65 7.42 4.59 7.15 4.7 7.4 3.89 7.33 3.73 6.72 4.0 3.61 4.28 6.52 4.04 7.22 4.32 6.81 3.66 6.66 3.94 5.38 3.98 5.13 4.25 6.11 3.66 7.44 3.94 6.92 3.97 5.78 4.25 7.24 3.91 5.82 4.12 5.7 4.43 7.33 4.05 6.71 4.09 5.35 4.37 6.42 4.09 6.24 4.02 6.0 4.06 7.23 4.34 7.37 3.67 6.43 3.33 7.09 3.61 7.22 3.65 7.09 3.58 7.28 3.76 7.26 3.69 7.43 ]makedots 0.0 0.7 0.0 setrgbcolor [ 4.58 7.35 4.89 6.06 4.56 6.0 4.83 5.44 4.87 6.67 4.81 7.43 5.01 7.15 4.73 7.42 5.01 5.81 4.67 5.29 4.95 4.82 4.98 4.94 5.26 6.8 4.64 7.41 4.92 5.63 4.25 6.6 4.29 7.06 4.56 6.64 4.22 4.58 4.5 5.64 4.54 6.9 4.16 7.17 4.47 7.29 4.36 7.28 4.4 6.74 4.68 6.43 4.34 3.63 4.61 5.07 4.37 7.09 4.65 5.26 4.27 6.35 4.31 5.98 4.59 5.46 4.0 7.29 ]makedots 0.4 0.3 1.0 setrgbcolor [ 5.59 6.81 5.9 6.88 5.56 7.13 5.84 6.87 5.14 5.55 5.08 7.33 5.12 6.93 5.32 7.37 4.98 6.64 5.26 3.82 5.53 6.82 5.29 6.04 5.57 5.79 4.92 6.85 5.19 5.84 5.23 3.83 5.51 5.32 5.23 5.46 5.5 7.18 5.16 5.83 5.2 6.85 5.48 7.09 5.34 6.4 5.62 7.5 4.81 7.33 4.65 7.07 4.93 6.14 4.59 6.91 4.86 7.21 4.9 5.77 4.9 7.0 4.56 7.36 4.83 6.93 ]makedots 0.7 0.3 0.0 setrgbcolor [ 6.15 6.63 5.87 7.2 6.15 5.63 5.81 5.65 6.09 5.32 6.12 5.13 6.4 7.02 6.06 6.39 6.26 7.28 5.92 6.94 6.2 6.79 6.23 5.51 6.51 7.41 6.17 6.43 5.36 7.43 5.51 7.44 5.82 6.75 5.5 6.91 5.54 6.08 5.82 5.82 5.48 3.44 5.75 5.04 5.51 6.75 5.79 4.91 5.41 6.78 5.45 6.19 5.73 5.79 5.93 7.45 5.59 5.32 5.87 6.59 5.63 6.95 5.9 5.34 5.56 6.13 5.84 5.86 5.14 6.82 ]makedots 0.0 0.6 0.4 setrgbcolor [ 7.04 7.5 7.15 7.2 7.09 7.43 6.46 7.26 6.12 6.97 6.4 4.49 6.67 7.28 6.43 6.23 6.71 6.08 6.33 6.83 6.37 4.92 6.65 6.23 6.37 6.64 6.3 7.44 6.23 7.41 6.51 5.31 6.55 5.76 6.82 5.74 6.45 7.15 6.48 3.87 6.76 5.59 6.8 6.77 6.48 6.19 6.42 6.79 6.45 6.5 6.73 6.95 5.79 7.0 6.07 6.14 5.73 7.34 6.04 6.11 5.9 7.47 6.18 6.79 6.21 7.19 6.15 5.33 6.15 7.25 6.09 7.43 6.12 7.21 ]makedots 0.9 0.1 1.0 setrgbcolor [ 7.29 7.27 7.26 7.18 7.4 6.53 7.4 6.23 7.06 6.33 7.34 6.24 7.1 7.48 7.37 4.5 7.65 6.77 7.31 6.19 7.49 6.95 6.68 7.19 6.96 7.05 6.62 5.82 6.89 6.95 6.93 6.63 6.8 6.9 7.07 6.24 6.79 6.03 7.07 6.0 6.73 3.87 7.01 5.57 6.77 5.63 7.04 3.61 7.32 7.46 6.67 7.25 6.7 5.31 6.98 5.09 7.02 7.24 6.84 7.45 7.16 6.44 6.82 7.17 7.09 7.13 6.4 6.67 6.37 7.3 ]makedots 0.4 0.5 0.0 setrgbcolor [ 8.3 6.97 7.54 6.99 7.71 7.12 7.37 6.89 7.65 4.65 7.69 4.84 7.96 4.92 7.59 7.18 7.62 3.54 7.9 5.44 7.94 6.42 7.62 6.36 7.56 7.43 7.59 6.95 7.87 7.45 7.76 7.33 7.8 6.47 8.08 6.65 7.74 5.22 8.01 6.78 8.05 6.63 7.71 7.03 7.04 6.54 7.32 5.84 7.35 6.05 7.63 7.38 6.98 7.16 7.02 6.9 7.29 4.53 7.57 7.39 7.29 7.02 7.26 7.27 7.47 7.44 7.41 5.97 7.37 7.37 ]makedots 0.0 0.5 0.8 setrgbcolor [ 8.55 6.85 8.54 6.92 8.2 7.43 8.48 7.42 8.51 5.78 8.66 7.29 8.63 5.12 8.9 7.37 8.56 6.9 7.94 6.75 8.21 6.14 7.93 6.24 8.21 6.29 7.87 4.98 8.15 6.45 7.91 6.19 8.18 4.55 7.84 6.49 8.12 6.39 8.05 7.12 8.33 6.67 8.3 7.32 8.05 6.91 8.32 7.08 8.36 7.49 7.98 5.47 8.26 6.96 8.02 5.46 8.3 3.73 7.96 5.48 8.23 5.51 8.27 6.33 7.54 6.99 7.65 7.38 7.69 7.42 7.96 7.49 7.62 7.08 ]makedots 1.0 0.1 0.5 setrgbcolor [ 9.55 7.28 8.79 6.18 8.83 6.08 9.1 6.22 8.76 5.77 9.04 7.15 8.9 5.93 8.94 4.5 9.22 4.86 8.6 7.37 8.88 3.59 9.15 5.69 8.91 6.5 9.19 5.24 8.85 7.26 9.13 7.36 8.87 6.98 8.85 6.6 9.12 7.3 8.99 7.17 9.3 7.34 8.18 7.28 8.46 6.72 8.5 6.68 8.43 5.98 8.29 6.98 8.57 6.52 8.61 5.32 8.89 6.97 8.27 6.34 8.55 3.98 8.82 7.23 8.58 6.78 8.86 6.94 8.52 7.17 8.54 7.26 8.52 6.56 8.66 7.4 ]makedots 0.2 0.6 0.0 setrgbcolor [ 9.8 6.75 9.8 7.41 9.77 5.22 10.05 7.5 9.71 7.47 9.88 6.62 9.32 7.17 9.53 7.16 9.19 6.04 9.47 5.59 9.5 6.83 9.44 6.68 9.19 6.2 9.46 6.45 9.5 6.67 9.12 5.26 9.4 6.86 9.16 4.95 9.44 3.11 9.71 7.46 9.1 5.65 9.37 5.75 9.41 6.32 9.27 6.32 9.55 5.18 9.21 6.6 9.49 6.82 9.52 6.3 8.79 6.84 8.83 6.66 9.1 6.81 8.76 6.83 ]makedots 0.3 0.3 1.0 setrgbcolor [ 10.04 6.29 10.08 4.67 10.36 5.1 10.02 4.64 10.29 6.46 10.05 6.92 10.33 5.84 10.19 5.38 10.47 5.91 10.51 7.32 10.13 5.0 10.41 6.84 10.17 6.14 10.44 5.06 10.1 7.19 10.38 7.45 10.1 7.11 9.44 6.85 9.71 6.44 9.75 4.93 10.03 6.74 9.41 6.52 9.69 4.36 9.96 7.5 9.72 6.79 10.0 7.02 9.66 7.4 9.86 5.66 10.14 7.41 9.52 6.69 9.8 4.79 9.83 6.04 10.11 6.42 9.77 6.74 9.77 6.73 ]makedots 1.0 0.2 0.0 setrgbcolor [ 10.91 7.16 11.05 7.48 11.09 7.36 11.02 5.75 10.99 7.38 10.67 7.33 10.33 6.74 10.61 6.39 10.64 7.3 10.33 7.2 10.6 7.48 10.64 7.47 10.26 6.95 10.3 6.49 10.58 5.31 10.78 7.3 10.44 6.28 10.72 6.05 10.76 5.96 10.69 6.07 10.44 7.06 10.72 7.46 10.75 6.48 10.38 6.52 10.41 4.77 10.69 3.24 10.73 6.4 11.0 7.45 10.35 5.79 10.63 6.1 10.66 5.26 10.8 7.17 10.78 7.14 10.08 6.13 10.36 6.5 10.02 6.58 10.33 7.42 ]makedots 0.0 0.6 0.3 setrgbcolor [ 11.22 6.79 11.5 7.15 11.16 7.28 11.3 7.27 11.33 4.31 11.61 5.03 11.65 6.41 11.27 4.66 11.55 6.65 11.31 5.62 11.58 4.51 11.24 7.26 11.24 7.46 11.45 7.04 11.38 6.98 11.42 6.71 11.7 5.95 10.89 6.57 10.83 6.71 10.69 7.26 10.97 7.05 10.73 7.28 11.0 4.02 11.28 6.31 10.66 5.93 10.94 3.77 11.22 7.33 10.98 4.98 11.25 5.52 10.91 6.4 10.91 6.71 11.11 6.91 11.05 6.47 11.09 6.23 11.37 6.8 11.03 7.15 ]makedots 0.7 0.1 1.0 setrgbcolor [ 12.23 7.39 12.16 6.71 12.28 7.1 11.92 6.63 11.58 6.05 11.86 5.86 11.9 5.52 12.17 7.41 11.83 6.25 11.58 7.16 11.89 6.42 11.52 7.14 11.55 5.33 11.83 4.13 11.87 6.67 11.49 6.8 11.77 7.12 11.8 6.21 11.7 7.37 11.97 7.33 12.01 6.03 11.95 6.4 12.01 7.16 11.67 5.73 11.94 4.82 11.98 6.09 12.26 7.36 11.6 6.84 11.88 7.28 11.64 7.4 11.92 5.21 11.25 7.01 11.22 6.15 11.5 6.58 11.16 7.12 11.33 6.54 11.61 7.07 11.27 7.2 11.58 7.05 ]makedots 0.5 0.4 0.0 setrgbcolor [ 12.47 5.57 12.75 6.2 12.79 7.17 12.41 6.42 12.45 6.95 12.72 6.15 12.59 5.22 12.86 6.04 12.9 5.99 12.52 5.79 12.56 5.2 12.84 4.29 12.5 7.17 12.14 4.79 12.42 6.88 11.8 6.96 12.08 5.31 12.12 6.0 12.39 6.51 11.98 7.36 12.26 4.46 12.53 6.78 12.29 7.33 12.57 6.79 11.92 6.3 12.19 4.6 12.23 3.93 12.51 4.85 12.17 5.9 12.16 6.86 12.34 7.28 ]makedots 0.0 0.6 0.6 setrgbcolor [ 13.48 6.98 13.42 7.11 13.0 7.4 13.04 6.94 12.97 6.79 13.18 6.79 12.84 6.28 13.11 6.29 12.87 7.27 13.15 4.42 13.43 6.8 13.15 6.22 12.81 5.16 13.08 4.22 13.12 5.37 13.4 6.84 13.26 6.99 12.92 7.39 13.2 6.9 13.23 6.71 12.5 6.86 12.82 6.67 12.47 5.58 12.75 6.26 12.79 7.14 ]makedots 1.0 0.0 0.7 setrgbcolor [ 13.73 5.27 14.01 6.14 14.04 5.86 13.67 6.41 13.7 5.65 13.98 4.9 13.84 6.91 14.15 6.51 13.81 5.86 14.09 5.3 14.13 7.43 13.28 7.23 13.12 6.95 13.4 3.86 13.67 6.45 13.43 6.76 13.71 6.24 13.06 6.41 13.33 4.82 13.37 3.84 13.65 4.86 13.51 5.96 13.54 7.26 13.82 6.91 13.17 7.47 13.45 6.31 13.48 4.22 13.76 5.33 13.06 7.49 13.04 7.19 13.15 7.44 ]makedots 0.3 0.5 0.0 setrgbcolor [ 14.73 7.37 14.32 6.89 13.98 6.88 14.25 6.93 14.29 5.03 14.57 7.26 14.23 6.65 14.29 6.97 13.95 6.55 14.22 5.9 14.26 6.56 14.2 6.9 14.09 7.35 14.13 7.16 14.4 4.51 14.68 7.03 14.06 7.1 14.34 5.93 14.38 6.55 14.65 7.37 14.4 6.93 14.06 6.05 14.34 5.5 14.37 5.0 14.65 6.75 14.03 7.05 14.31 5.06 13.65 7.02 13.96 6.69 13.62 6.48 13.89 7.12 13.79 7.39 14.07 6.36 13.73 6.99 14.01 7.09 13.73 6.03 14.01 6.84 14.04 6.5 13.67 7.45 13.7 6.72 13.98 6.15 ]makedots 0.2 0.4 1.0 setrgbcolor [ 14.87 7.12 15.18 7.42 15.12 7.21 14.98 6.03 15.26 6.97 15.02 7.07 15.29 5.4 14.92 7.25 14.95 5.24 15.23 4.68 15.27 6.81 15.07 7.28 15.34 7.03 14.54 5.67 14.85 7.36 14.47 6.9 14.51 6.04 14.79 6.79 14.65 7.5 14.37 7.04 14.65 4.32 14.93 6.9 14.69 5.74 14.96 5.37 14.31 6.73 14.59 5.47 14.35 7.36 14.62 2.32 14.9 4.09 14.94 6.47 14.56 5.92 14.6 7.38 14.87 6.93 14.74 5.65 15.01 6.7 14.32 7.41 14.29 6.11 ]makedots 1.0 0.1 0.2 setrgbcolor [ 15.88 7.35 15.43 7.31 15.57 7.05 15.61 7.05 15.23 7.08 15.51 7.28 15.27 6.68 15.54 3.8 15.82 6.64 15.86 7.41 15.2 7.14 15.48 6.02 15.52 6.44 15.79 7.31 15.54 6.79 15.2 6.4 15.48 5.95 15.51 5.24 15.79 6.98 15.45 5.93 15.66 5.73 15.59 7.11 15.63 6.5 15.91 7.49 15.59 7.37 15.63 5.74 15.9 7.48 15.56 6.04 14.9 6.86 14.94 6.5 15.21 5.37 14.87 6.61 15.15 6.76 15.19 7.19 14.87 5.94 15.15 6.81 15.18 6.26 14.84 6.97 15.12 6.48 15.33 6.93 15.3 7.3 14.98 7.29 15.3 6.74 14.96 6.99 15.23 6.64 ]makedots 0.0 0.7 0.1 setrgbcolor [ 16.12 6.88 16.44 6.17 16.1 6.55 16.37 6.17 16.27 7.35 16.55 5.97 16.21 5.87 16.49 5.61 16.52 6.31 15.51 7.37 15.79 4.91 16.07 7.32 15.83 5.97 16.1 5.68 15.73 6.51 15.76 3.92 16.04 5.22 16.08 7.06 15.9 5.84 15.94 5.68 16.22 5.53 15.84 6.94 15.6 7.34 15.88 2.78 16.15 4.63 15.91 7.06 16.19 5.52 15.46 7.4 15.43 6.46 15.54 5.9 ]makedots 0.5 0.2 1.0 setrgbcolor [ 16.69 5.54 16.66 7.21 16.86 6.88 16.52 6.55 16.8 3.9 17.08 6.86 16.83 6.56 17.11 6.48 16.46 7.23 16.73 6.32 16.77 5.41 17.05 6.6 16.79 7.44 16.45 7.12 16.73 6.89 16.77 4.86 17.05 6.87 16.43 7.42 16.7 5.86 16.74 7.37 16.88 7.29 16.88 7.24 16.08 7.23 16.35 6.28 16.19 5.98 16.47 4.97 16.5 7.3 16.13 6.35 16.4 6.67 16.44 5.88 16.12 6.35 16.4 7.33 16.16 7.07 16.44 5.53 16.1 6.36 16.37 6.03 ]makedots 0.6 0.4 0.0 setrgbcolor [ 17.38 7.47 17.41 7.11 17.69 5.74 17.35 6.19 17.63 5.98 17.66 6.46 17.8 7.33 17.46 7.28 17.74 7.23 17.78 6.69 16.93 7.18 16.9 6.89 17.11 7.45 17.05 7.22 17.36 7.11 16.77 7.45 17.04 5.26 17.08 4.82 17.36 4.71 16.98 6.99 16.74 7.17 17.02 2.45 17.29 4.49 17.05 6.74 17.33 5.17 17.19 6.57 17.47 6.63 17.13 4.65 17.41 6.13 17.17 6.9 17.44 5.55 16.71 7.31 16.75 7.05 16.69 5.24 16.8 6.64 ]makedots 0.0 0.6 0.5 setrgbcolor [ 18.0 6.69 17.66 6.85 17.94 4.45 18.22 7.21 17.97 6.71 18.25 6.68 17.88 7.17 17.91 6.21 18.19 7.3 17.91 6.03 17.85 7.36 17.77 7.27 18.05 5.25 18.09 6.27 18.36 6.39 17.99 7.41 18.02 5.35 18.3 6.72 18.02 5.6 17.96 6.7 17.99 7.0 17.67 7.31 17.33 5.84 17.61 4.86 17.64 7.04 17.27 6.77 17.54 7.1 17.58 6.18 17.26 7.03 17.58 6.15 17.24 7.37 17.51 7.12 17.44 6.4 17.72 5.68 17.76 6.69 17.38 6.95 17.66 7.4 17.42 7.44 17.69 5.39 17.41 7.11 17.69 5.81 17.35 6.64 17.63 6.51 17.66 6.86 ]makedots 1.0 0.0 0.9 setrgbcolor [ 18.83 7.22 18.67 7.39 18.94 6.27 18.6 6.72 18.88 6.71 18.92 5.92 18.19 6.58 18.22 6.02 18.5 5.98 18.16 5.12 18.44 6.39 18.47 6.71 18.34 7.18 18.61 6.59 18.3 6.56 18.33 4.74 18.61 4.89 18.65 7.25 17.99 7.15 18.27 2.87 18.55 4.97 18.31 5.61 18.58 3.93 18.38 6.85 18.7 6.52 17.83 6.49 18.0 6.65 17.66 7.16 17.94 5.0 17.98 7.0 18.25 7.03 ]makedots 0.4 0.5 0.0 setrgbcolor [ 19.08 6.8 19.26 6.53 18.92 6.73 19.19 4.53 19.47 7.41 19.23 5.46 19.51 5.64 19.13 7.4 19.17 5.12 19.44 6.58 19.16 5.7 19.1 7.29 19.14 7.4 19.31 7.17 19.34 6.87 19.62 7.15 19.28 6.27 19.28 7.12 19.25 7.42 18.47 7.38 18.75 6.66 18.92 6.82 18.58 5.26 18.86 4.41 18.9 5.43 19.17 6.93 18.52 6.49 18.8 7.0 18.56 6.84 18.83 4.59 19.11 7.39 18.52 7.37 18.55 6.74 18.83 5.41 18.49 6.79 18.77 6.71 18.8 6.88 18.97 7.17 19.01 6.92 18.95 5.92 18.94 6.96 18.92 6.97 ]makedots 0.0 0.5 1.0 setrgbcolor [ 20.08 6.85 20.06 6.88 20.17 6.32 19.5 7.21 19.48 7.02 19.76 6.44 19.44 6.84 19.48 4.88 19.75 5.08 19.79 7.2 19.41 4.09 19.69 5.8 19.45 6.13 19.73 4.7 19.59 7.32 19.87 6.91 19.59 5.78 19.87 6.1 19.9 7.06 19.52 4.68 19.8 6.37 19.56 5.41 19.84 3.96 19.14 6.31 18.8 7.32 19.08 5.28 19.12 7.02 19.39 7.1 19.26 7.1 19.19 5.83 19.23 6.48 19.51 6.71 ]makedots 1.0 0.1 0.4 setrgbcolor [ 20.4 7.09 20.33 5.94 20.37 6.49 20.65 6.68 20.31 6.77 20.3 7.44 20.51 7.22 20.17 7.42 20.45 5.71 20.48 5.11 20.76 5.53 20.42 5.04 20.7 6.68 20.73 7.05 20.42 6.33 20.39 7.02 20.07 6.95 19.72 6.03 20.0 5.34 20.04 6.0 20.32 7.42 19.97 5.91 19.97 6.82 20.18 7.16 19.84 5.73 20.11 5.19 20.15 4.59 20.43 6.48 19.77 7.07 19.81 6.23 20.09 3.94 20.36 7.16 20.12 7.31 19.81 6.78 20.09 5.68 19.74 7.03 20.02 7.11 20.06 6.11 20.2 7.24 ]makedots 0.1 0.7 0.0 setrgbcolor [ 21.34 7.29 21.31 6.37 21.42 7.49 20.62 6.84 20.89 7.02 20.55 6.85 20.87 7.1 20.76 7.45 21.07 6.9 20.73 6.31 21.01 5.86 20.73 4.81 21.01 5.23 21.04 6.13 20.67 4.33 20.94 6.15 20.7 4.87 20.98 3.28 20.64 6.17 20.92 6.31 20.84 7.47 20.78 6.85 20.81 6.2 21.09 5.23 20.75 6.95 21.03 7.2 21.06 7.42 20.22 7.24 20.4 7.0 20.4 5.86 20.67 7.43 20.06 6.97 20.33 5.02 20.37 5.56 20.65 5.86 20.31 6.35 20.45 7.37 20.48 6.83 20.76 7.21 20.42 7.18 ] makedots } store % Total count = 1282. /makedots {/curmat exch store 0 2 curmat length 2 sub {/cposn exch store curmat cposn get curmat cposn 1 add get mt dot } for } store % 100 100 10 setgrid % only when not standalone 1.15 dup scale 0.92 setgray 1 setlinewidth 0 setlinecap 0.5 0 mt 7 u 19.5 0 mt 7 u 2 setlinewidth 10 0 mt 7 u 20 7 showgrid black line1 10 -0.3 mt 7.8 u gsave 0 0 mt 7.5 pu 20 pr 7.5 pd closepath clip sdatproc grestore % get off clip /cstretch 0 store /sstretch 0.015 store /font1 /StoneSans-Bold 0.75 gonzofont font1 black line1 0 7.5 mt 20 r 0 -0.3 mt 7.8 u 20 -0.3 mt 7.8 u -0.3 0 mt 20.6 r 0 2.5 mt 0.3 l 0 5 mt 0.3 l 0 7.5 mt 0.3 l /kern 0.1 store 0.2 0.2 0.2 setrgbcolor 0 -1.5 (0.52) cc 10 -1.5 (0.53) cc 20 -1.5 (0.54) cc 10 -2.5 (amplitude) cc -1 0 0.2 sub(0.00|j%) cr -1 2.5 0.2 sub (0.05|j%) cr -1 5 0.2 sub (0.10|j%) cr -1 7.5 0.2 sub (0.15|j%) cr gsave -4.4 3.75 translate 90 rotate 0 0 (distortion 2-22) cc grestore % end ypos snap3 restore /ypos exch def } def %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% /deltachip { %aaaaaaaaaaaa /figadvance 10 store save /snap3 exch def /linestring 1000 string store %%%%%%%%%%%%%%%%%%% electronics begin bestgray 8 37.5 translate % reposition on page 0.85 dup scale % 0 0 10 setgrid already there % 33 14 showgrid /cstretch 0.02 def /sstretch 0.0 def /kern 0.1 def /yinc 1.0 def /red {0 settint} def /blue {0.67 settint} def /purple {0.75 settint} def /font0 /Helvetica-Bold [1.2 0 0 1 0 -0.2] gonzofont /font0 /helvetica-bold [1 0 0 0.8 0 0 ] gonzofont /font1 /Helvetica 0.75 gonzofont /font4 /Helvetica 0.6 gonzofont /font3 /Helvetica-Bold 0.75 gonzofont /font2 /Helvetica-Oblique 0.75 gonzofont /font5 /Helvetica-Bold 1.1 gonzofont /font6 /Helvetica [2 0 0 1.4 0 0] gonzofont /font7 /Helvetica-Oblique 0.75 gonzofont /font8 /Symbol 0.75 gonzofont /font9 /Helvetica [.6 0 0 .6 -.15 .4] gonzofont /font- /Helvetica-Bold [0.4 0 0 0.55 0 0] gonzofont /kern 0.15 def /tabs [16.5] def /txtwide 29 def font1 /tabs [17.5] def font1 /yinc 0.9 def line1 bestgray black 22 6 mt 3 d 5 rx circ1 26 3 mt rarrow 21 6 mt 1 d 6 rx circ1 26 5 mt rarrow 20 6 mt 1.5 d 4 rx 2 ux 3 r circ1 26 6.5 mt rarrow 19 6 mt 2 d 5.5 rx 4 ux 2.5 r circ1 26 8 mt rarrow 17 10 mt 1 u 5 l 8 d 4 l circ1 9.5 3 mt rarrow % low priority 18 6 mt 1.5 d ground 17 6 mt 2.5 d 7 lx 1 u 2 l circ1 9.5 4.5 mt rarrow 16 6 mt 2 d 5.5 lx 2 u 2.5 l circ1 9.5 6 mt rarrow 15 6 mt 1.5 d 4 lx 3 u 3 l circ1 9.5 7.5 mt rarrow 14 6 mt 1 d 2.5 lx 4 u 3.5 l circ1 9.5 9 mt rarrow 21 10 mt 2 ux 3 r 2 d 3 r circ1 26 13 mt rarrow 20 10 mt 2.5 u 4.5 r 1 d 2.5 r circ1 26 11.5 mt rarrow 19 10 mt 3 u 8 r circ1 26 10 mt rarrow 18 10 mt 1.5 u circ1 % +5v 16 10 mt 3 ux circ1 16 12.3 mt darrow 15 10 mt 2 ux 7 l circ1 9.5 12 mt rarrow 14 10 mt 1.5 ux 2.5 l 1 d 3.5 l circ1 9.5 10.5 mt rarrow beige 14 6 moveto 18 (MS28D-05X) (IN1 IN0 XIN IN6 +5V /DA /DB /DC NC) (IN2 IN3 IN4 IN5 GND DA DB DC SYNC) dipdraw font4 22 10.65 (NC) cc font1 18 12 (+5V) cc font1 /overstrikeht 0.55 store 27.7 13 0.3 sub (Delta "A" complement) cl 27.7 11.5 0.3 sub (Delta "B" complement) cl 27.7 10 0.3 sub (Delta "C" complement) cl 27.7 8 0.3 sub (Delta "A" true output) cl 27.7 6.5 0.3 sub (Delta "B" true output) cl 27.7 5 0.3 sub (Delta "C" true output) cl 27.7 3 0.3 sub (Zero degrees sync) cl 16 14.7 (10 MHz per 60 Hz) cc 16 13.8 (input clock ref) cc 7.3 2.7 (high ~|jOR|j~ 0-100 amp bit 6) cr 7.3 4.2 (high ~|jOR|j~ 0-100 amp bit 5) cr 7.3 5.7 (high ~|jOR|j~ 0-100 amp bit 4) cr 7.3 7.2 (slew up ~|jOR|j~ 0-100 amp bit 3) cr 7.3 8.7 (slew down ~|jOR|j~ 0-100 amp bit 2) cr 7.3 10.2 (step up ~|jOR|j~ 0-100 amp bit 1) cr 7.3 11.7 (step down ~|jOR|j~ 0-100 amp bit 0) cr end ypos snap3 restore /ypos exch def } def %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% fig3 for fastmsol2 /figure3 { % transfer of angles vs ampliude for gg72 % save /snap3 exch def %%%%%%%%%%%%%%%%%%% 11.5 5 translate % position on page % capture the 28 best efficiency data set to .01 detail... % truncated for gg /angs0 [ 12.00 12.00 24.00 24.00 36.00 36.00 48.00 48.00 60.00 60.00 72.00 72.00 84.00 84.00 ] store /coss0 mark angs0 {cos} forall ] store /angs1 [ 11.98 12.01 23.97 24.02 35.96 36.03 47.95 48.04 59.94 60.05 71.94 72.05 83.94 84.05 ] store /angs2 [ 11.974847054192383 % a=p1s 12.024744017679858 % a=p1e 23.950819469133126 % a=p2s 24.048433365709524 % a=p2e 35.9289889953262 % a=p3s 36.07005477232906 % a=p3e 47.910323239760814 % a=p4s 48.088676789078065 % a=p4e 59.89564103809268 % a=p5s 60.10348816058274 % a=p5e 71.88557608883967 % a=p6s 72.11383286811898 % a=p6e 83.88055055992965 % a=p7s 84.11924037287778 % a=p7e ] store /angs3 [ 11.962118915829903 % a=p1s 12.03696090624807 % a=p1e 23.92595162929968 % a=p2s 24.07236703949866 % a=p2e 35.893127245474595 % a=p3s 36.10472087707484 % a=p3e 47.86511076741572 % a=p4s 48.13263882275228 % a=p4e 59.84313379542474 % a=p5s 60.15490640171296 % a=p5e 71.8281392839728 % a=p6s 72.17053048401827 % a=p6e 83.82074309176468 % a=p7s 84.17878636192533 % a=p7e ] store /angs4 [ 11.949290517283893 % a=p1s 12.049073387651642 % a=p1e 23.900900022994463 % a=p2s 24.096110421824473 % a=p2e 35.85702905846874 % a=p3s 36.13914449836989 % a=p3e 47.81964912772209 % a=p4s 48.17634896136679 % a=p4e 59.790407132381254 % a=p5s 60.20610752850041 % a=p5e 71.7705506598397 % a=p6s 72.22708352375918 % a=p6e 83.76087805625558 % a=p7s 84.23828505542117 % a=p7e ] store /angs5 [ 11.936362466871577 % a=p1s 12.06108068586895 % a=p1e 23.875665544479162 % a=p2s 24.119662226290405 % a=p2e 35.820695114855724 % a=p3s 36.173324291962636 % a=p3e 47.77393833539115 % a=p4s 48.21980630146989 % a=p4e 59.737460197319905 % a=p5s 60.25709145625097 % a=p5e 71.71280864356133 % a=p6s 72.28349283843973 % a=p6e 83.70095359631462 % a=p7s 84.29773803842423 % a=p7e ] store /angs6 [ 11.92333534962837 % a=p1s 12.072981999867295 % a=p1e 23.850249033990785 % a=p2s 24.14302110761017 % a=p2e 35.78412600358127 % a=p3s 36.20725881394451 % a=p3e 47.72797828072875 % a=p4s 48.263009807514656 % a=p4e 59.68429200398899 % a=p5s 60.30785796415633 % a=p5e 71.65491155362278 % a=p6s 72.33975917878625 % a=p6e 83.64096780758828 % a=p7s 84.35714686441895 % a=p7e ] store /angs7 [ 11.910209727377705 % a=p1s 12.084776503234172 % a=p1e 23.824651278023655 % a=p2s 24.166185660657497 % a=p2e 35.747322222396384 % a=p3s 36.24094651910828 % a=p3e 47.68176872964642 % a=p4s 48.30595830989897 % a=p4e 59.63090143051986 % a=p5s 60.35840669388239 % a=p5e 71.59685759776832 % a=p6s 72.3958831951506 % a=p6e 83.58091873602368 % a=p7s 84.41651305690237 % a=p7e ] store /angs8 [ 11.896986138776953 % a=p1s 12.096463343780352 % a=p1e 23.798873009544423 % a=p2s 24.1891544194381 % a=p2e 35.71028417813772 % a=p3s 36.27438575915712 % a=p3e 47.635309323468576 % a=p4s 48.348650502768294 % a=p4e 59.577287218151646 % a=p5s 60.40873714787044 % a=p5e 71.53864487064128 % a=p6s 72.45186543727682 % a=p6e 83.52080437530424 % a=p7s 84.47583811090627 % a=p7e ] store /angs9 [ 11.883665099327878 % a=p1s 12.10804164310246 % a=p1e 23.77291490813462 % a=p2s 24.21192585597619 % a=p2e 35.673012186877045 % a=p3s 36.30757478075494 % a=p3e 47.58859957853082 % a=p4s 48.39108494156987 % a=p4e 59.52344796968203 % a=p5s 60.45884868734144 % a=p5e 71.4802713511592 % a=p6s 72.50770635383223 % a=p6e 83.46062266414432 % a=p7s 84.53512349445879 % a=p7e ] store /angs10 [ 11.870247101357558 % a=p1s 12.119510496110177 % a=p1e 23.746777600061925 % a=p2s 24.23449837911455 % a=p2e 35.63550647394103 % a=p3s 36.34051172341407 % a=p3e 47.541638885569256 % a=p4s 48.43326004035069 % a=p4e 59.469382147639834 % a=p5s 60.50874052999415 % a=p5e 71.42173489961449 % a=p6s 72.56340629169891 % a=p6e 83.4003714834328 % a=p7s 84.59437064998934 % a=p7e ] store /angs11 [ 11.856732613966773 % a=p1s 12.130868970513701 % a=p1e 23.720461658280186 % a=p2s 24.2568703332254 % a=p2e 35.59776717380025 % a=p3s 36.37319461721436 % a=p3e 47.49442650889857 % a=p4s 48.475174068789634 % a=p4e 59.41508807217332 % a=p5s 60.55841174738708 % a=p5e 71.36303325448995 % a=p6s 72.61896549501986 % a=p6e 83.34004865321407 % a=p7s 84.65358099568142 % a=p7e ] store /angs12 [ 11.843122082945142 % a=p1s 12.142116106270509 % a=p1e 23.693967602355304 % a=p2s 24.279039996827304 % a=p2e 35.55979432982573 % a=p3s 36.405621380346524 % a=p3e 47.44696158537543 % a=p4s 48.516825148952385 % a=p4e 59.360563918645916 % a=p5s 60.6078612619903 % a=p5e 71.30416402897619 % a=p6s 72.67438410399262 % a=p6e 83.2796519294945 % a=p7s 84.71275592677652 % a=p7e ] store /angs13 [ 11.82941593065426 % a=p1s 12.153250914990615 % a=p1e 23.667295898318045 % a=p2s 24.3010055811062 % a=p2e 35.52158789391118 % a=p3s 36.43778981647274 % a=p3e 47.39924312314353 % a=p4s 48.558211251757726 % a=p4e 59.305807714931596 % a=p5s 60.65708784389479 % a=p5e 71.24512470717748 % a=p6s 72.72966215340223 % a=p6e 83.21917900086149 % a=p7s 84.7718968168333 % a=p7e ] store /angs14 [ 11.815614555875824 % a=p1s 12.164272379297325 % a=p1e 23.6404469584398 % a=p2s 24.322765228334127 % a=p2e 35.48314772595886 % a=p3s 36.469697611896315 % a=p3e 47.351270000155424 % a=p4s 48.599330193141476 % a=p4e 59.25081733839909 % a=p5s 60.70609010716251 % a=p5e 71.1859126399899 % a=p6s 72.78479957088365 % a=p6e 83.15862748490005 % a=p7s 84.83100501894486 % a=p7e ] store /angs15 [ 11.801718333625152 % a=p1s 12.175179452142526 % a=p1e 23.613421140931536 % a=p2s 24.344317010183318 % a=p2e 35.4444735932256 % a=p3s 36.50134233253178 % a=p3e 47.3030409624662 % a=p4s 48.640179629904 % a=p4e 59.19559051257442 % a=p5s 60.75486650580041 % a=p5e 71.12652504063502 % a=p6s 72.83979617490274 % a=p6e 83.09799492439242 % a=p7s 84.89008186691791 % a=p7e ] store /angs16 [ 11.787727614929405 % a=p1s 12.18597105607372 % a=p1e 23.586218749562654 % a=p2s 24.36565892592901 % a=p2e 35.40556516952632 % a=p3s 36.53272142066584 % a=p3e 47.25455462229148 % a=p4s 48.680757055225016 % a=p4e 59.14012480346797 % a=p5s 60.80341532933896 % a=p5e 71.06695897982998 % a=p6s 72.89465167244286 % a=p6e 83.03727878328297 % a=p7s 84.94912867641655 % a=p7e ] store /angs17 [ 11.77364272656729 % a=p1s 12.196646082450007 % a=p1e 23.55884003319776 % a=p2s 24.386788900536796 % a=p2e 35.36642203429076 % a=p3s 36.56383219149893 % a=p3e 47.205809455823555 % a=p4s 48.721059793828665 % a=p4e 59.08441761555297 % a=p5s 60.85173469799367 % a=p5e 71.00721138057251 % a=p6s 72.94936565638254 % a=p6e 82.97647644239078 % a=p7s 85.00814674607393 % a=p7e ] store /angs18 [ 11.759463970771552 % a=p1s 12.207203390605802 % a=p1e 23.531285185248322 % a=p2s 24.407704782627324 % a=p2e 35.32704367146845 % a=p3s 36.59467182945564 % a=p3e 47.15680380079669 % a=p4s 48.761084996779495 % a=p4e 59.02846618737822 % a=p5s 60.89982255738604 % a=p5e 70.94727901251849 % a=p6s 73.00393760254836 % a=p6e 82.91558519484946 % a=p7s 85.06713735857441 % a=p7e ] store /angs19 [ 11.745191624890726 % a=p1s 12.217641806957563 % a=p1e 23.503554343036566 % a=p2s 24.428404342313463 % a=p2e 35.28742946827808 % a=p3s 36.625237384252536 % a=p3e 47.107535853792385 % a=p4s 48.80082963588889 % a=p4e 58.972267586798715 % a=p5s 60.94767667279787 % a=p5e 70.88715848592577 % a=p6s 73.05836686642435 % a=p6e 82.85460224125279 % a=p7s 85.12610178170924 % a=p7e ] store /angs20 [ 11.730825941009456 % a=p1s 12.227960124052048 % a=p1e 23.47564758706738 % a=p2s 24.448885268901304 % a=p2e 35.247578713793736 % a=p3s 36.65552576670891 % a=p3e 47.05800366727401 % a=p4s 48.84029049770906 % a=p4e 58.91581870580349 % a=p5s 60.995294622930274 % a=p5e 70.82684624513675 % a=p6s 73.11265267949769 % a=p6e 82.79352468448211 % a=p7s 85.18504126940833 % a=p7e ] store /angs21 [ 11.71636714552474 % a=p1s 12.238157099551403 % a=p1e 23.44756494020518 % a=p2s 24.469145168448645 % a=p2e 35.20749059736334 % a=p3s 36.68553374428745 % a=p3e 47.008205146339535 % a=p4s 48.87946417709021 % a=p4e 58.859116254920146 % a=p5s 61.04267379313565 % a=p5e 70.76633856156903 % a=p6s 73.16679414521796 % a=p6e 82.73234952418977 % a=p7s 85.24395706275082 % a=p7e ] store /angs22 [ 11.701815438676984 % a=p1s 12.248231455152272 % a=p1e 23.419306366750394 % a=p2s 24.489181561171776 % a=p2e 35.167164206850316 % a=p3s 36.71525793634734 % a=p3e 46.958138045178856 % a=p4s 48.91834707027344 % a=p4e 58.8021567571719 % a=p5s 61.089811368087894 % a=p5e 70.70563152617991 % a=p6s 73.22079023454442 % a=p6e 82.67107365091016 % a=p7s 85.30285039095683 % a=p7e ] store /angs23 [ 11.687170994032428 % a=p1s 12.258181875434113 % a=p1e 23.390871771411508 % a=p2s 24.50899187869209 % a=p2e 35.126598526691865 % a=p3s 36.744694809094355 % a=p3e 46.907799963221834 % a=p4s 48.956935367490466 % a=p4e 58.74493654156117 % a=p5s 61.13670432385263 % a=p5e 70.64472104136836 % a=p6s 73.27463978105305 % a=p6e 82.60969383976686 % a=p7s 85.36172247236334 % a=p7e ] store /angs24 [ 11.672433957915235 % a=p1s 12.26800700663286 % a=p1e 23.362260998166978 % a=p2s 24.528573461112185 % a=p2e 35.085792435764034 % a=p3s 36.773840670208166 % a=p3e 46.85718834096131 % a=p4s 48.99522504503821 % a=p4e 58.68745173605153 % a=p5s 61.18334941931543 % a=p5e 70.58360281227317 % a=p6s 73.3283414755723 % a=p6e 82.54820674374241 % a=p7s 85.42057451538614 % a=p7e ] store /angs25 [ 11.657604448786142 % a=p1s 12.277705455334987 % a=p1e 23.33347382901136 % a=p2s 24.547923553911666 % a=p2e 35.04474470504407 % a=p3s 36.80269166312757 % a=p3e 46.80630045543359 % a=p4s 49.03321185679282 % a=p4e 58.62969826001678 % a=p5s 61.2297431869218 % a=p5e 70.52227233742346 % a=p6s 73.38189386031235 % a=p6e 82.48660888647268 % a=p7s 85.47940771947097 % a=p7e ] store /angs26 [ 11.642682556563992 % a=p1s 12.287275787086035 % a=p1e 23.304509982578292 % a=p2s 24.567039304649334 % a=p2e 35.00345399505897 % a=p3s 36.83124376097095 % a=p3e 46.75513341533713 % a=p4s 49.07089132512581 % a=p4e 58.57167181612225 % a=p5s 61.27588192267824 % a=p5e 70.4607248986916 % a=p6s 73.43529532244932 % a=p6e 82.4248966545247 % a=p7s 85.5382232760357 % a=p7e ] store /angs27 [ 11.62766834188761 % a=p1s 12.29671652490895 % a=p1e 23.275369112634362 % a=p2s 24.585917759460802 % a=p2e 34.961918853108216 % a=p3s 36.859492760068704 % a=p3e 46.703684155768975 % a=p4s 49.10825873117987 % a=p4e 58.51336788160183 % a=p5s 61.32176167535815 % a=p5e 70.3989555504958 % a=p6s 73.48854408712174 % a=p6e 82.36306628911284 % a=p7s 85.5970223694067 % a=p7e ] store /angs28 [ 11.61256183531389 % a=p1s 12.306026147724955 % a=p1e 23.246050806434955 % a=p2s 24.6045558593367 % a=p2e 34.920137710247616 % a=p3s 36.88743427308142 % a=p3e 46.651949432555526 % a=p4s 49.14530910446015 % a=p4e 58.45478169888876 % a=p5s 61.36737823485163 % a=p5e 70.33695910819229 % a=p6s 73.54163820979106 % a=p6e 82.30111387720302 % a=p7s 85.6558061777513 % a=p7e ] store /angs29 [ 11.59736303644711 % a=p1s 12.315203088670305 % a=p1e 23.21655458293341 % a=p2s 24.622950436166153 % a=p2e 34.87810887801911 % a=p3s 36.91506372167538 % a=p3e 46.5999258161524 % a=p4s 49.18203721169034 % a=p4e 58.39590826555562 % a=p5s 61.41272711959097 % a=p5e 70.27473013559283 % a=p6s 73.594575567914 % a=p6e 82.23903534194987 % a=p7s 85.71457587400957 % a=p7e ] store /angs30 [ 11.582071912996428 % a=p1s 12.324245733302025 % a=p1e 23.186879890834618 % a=p2s 24.64109820852994 % a=p2e 34.83583054491118 % a=p3s 36.94237632872516 % a=p3e 46.54760968508595 % a=p4s 49.21843754488009 % a=p4e 58.336742323513874 % a=p5s 61.45780356297762 % a=p5e 70.21226293153529 % a=p6s 73.64735385186718 % a=p6e 82.17682643240578 % a=p7s 85.77333262682737 % a=p7e ] store /angs31 [ 11.566688399755103 % a=p1s 12.333152417683447 % a=p1e 23.157026106481293 % a=p2s 24.65899577722405 % a=p2e 34.793300772531175 % a=p3s 36.96936711000882 % a=p3e 46.49499721890572 % a=p4s 49.254504308544554 % a=p4e 58.27727834741927 % a=p5s 61.502602498728 % a=p5e 70.14955151542911 % a=p6s 73.69997055505918 % a=p6e 82.11448271243431 % a=p7s 85.83207760149402 % a=p7e ] store /angs32 [ 11.55121239749649 % a=p1s 12.341921426340825 % a=p1e 23.12699253156217 % a=p2s 24.676639620494885 % a=p2e 34.750517491470966 % a=p3s 36.996030865359884 % a=p3e 46.44208439061452 % a=p4s 49.29023140601078 % a=p4e 58.21751053222307 % a=p5s 61.54711854504793 % a=p5e 70.08658961168794 % a=p6s 73.75242296315676 % a=p6e 82.05199954875309 % a=p7s 85.89081196088709 % a=p7e ] store /angs33 [ 11.535643771780839 % a=p1s 12.35055099008155 % a=p1e 23.09677839062888 % a=p2s 24.6940260889639 % a=p2e 34.7074784968436 % a=p3s 37.02236216923542 % a=p3e 46.388866958539694 % a=p4s 49.32561242474032 % a=p4e 58.15743277980454 % a=p5s 61.5913459875349 % a=p5e 70.02337063295417 % a=p6s 73.80470814234442 % a=p6e 81.98937209802318 % a=p7s 85.94953686642697 % a=p7e ] store /angs34 [ 11.519982351665762 % a=p1s 12.359039283662634 % a=p1e 23.066382828406926 % a=p2s 24.711151400217876 % a=p2e 34.66418144346757 % a=p3s 37.04835536065633 % a=p3e 46.33534045760484 % a=p4s 49.360640620589926 % a=p4e 58.09703868461281 % a=p5s 61.63527876069768 % a=p5e 69.95988766200874 % a=p6s 73.8568229265267 % a=p6e 81.92659529289242 % a=p7s 86.00825347904505 % a=p7e ] store /angs35 [ 11.504227928312746 % a=p1s 12.367384423297112 % a=p1e 23.03580490688566 % a=p2s 24.728011633039017 % a=p2e 34.62062384067247 % a=p3s 37.0740045324722 % a=p3e 46.2815001899581 % a=p4s 49.39530890092468 % a=p4e 58.03632151823934 % a=p5s 61.67891042797037 % a=p5e 69.8961334322492 % a=p6s 73.90876390337225 % a=p6e 81.86366382688989 % a=p7s 86.06696296016798 % a=p7e ] store /angs36 [ 11.488380253482298 % a=p1s 12.375584463986224 % a=p1e 23.00504360216978 % a=p2s 24.744602721245936 % a=p2e 34.57680304669713 % a=p3s 37.09930351989759 % a=p3e 46.22734121490803 % a=p4s 49.42960980648992 % a=p4e 57.975274212834535 % a=p5s 61.722234160085286 % a=p5e 69.83210030660594 % a=p6s 73.96052739908667 % a=p6e 81.80057213805719 % a=p7s 86.12566647272173 % a=p7e ] store /angs37 [ 11.472439037907781 % a=p1s 12.383637396662037 % a=p1e 22.974097801072595 % a=p2s 24.760920447114106 % a=p2e 34.53271626264794 % a=p3s 37.12424588826167 % a=p3e 46.17285833811334 % a=p4s 49.46353549193782 % a=p4e 57.91388934327296 % a=p5s 61.765242711653386 % a=p5e 69.76778025475258 % a=p6s 74.01210946178786 % a=p6e 81.73731439118794 % a=p7s 86.18436518215925 % a=p7e ] store /angs38 [ 11.456403949537945 % a=p1s 12.391541145124311 % a=p1e 22.94296629743082 % a=p2s 24.776960434340847 % a=p2e 34.48836052598261 % a=p3s 37.14882491990828 % a=p3e 46.11804609996735 % a=p4s 49.497077704895275 % a=p4e 57.85215910796204 % a=p5s 61.80792839578511 % a=p5e 69.7031648284505 % a=p6s 74.06350584334204 % a=p6e 81.67388445853271 % a=p7s 86.24306025751534 % a=p7e ] store /angs39 [ 11.440274611637554 % a=p1s 12.399293562754744 % a=p1e 22.91164778811647 % a=p2s 24.792718140516374 % a=p2e 34.443732703479476 % a=p3s 37.17303360017536 % a=p3e 46.06289876311179 % a=p4s 49.530227763446774 % a=p4e 57.79007530817778 % a=p5s 61.850283056564976 % a=p5e 69.63824513484936 % a=p6s 74.1147119795016 % a=p6e 81.6102758988087 % a=p7s 86.30175287249307 % a=p7e ] store /angs40 [ 11.424050600733594 % a=p1s 12.406892428988357 % a=p1e 22.880140868720527 % a=p2s 24.80818884905887 % a=p2e 34.39882948364979 % a=p3s 37.19686460237714 % a=p3e 46.0074102990076 % a=p4s 49.562976531893824 % a=p4e 57.727629325799626 % a=p5s 61.89229803917272 % a=p5e 69.57301180754612 % a=p6s 74.16572296816564 % a=p6e 81.54648193433371 % a=p7s 86.36044420658635 % a=p7e ] store /angs41 [ 11.407731444392123 % a=p1s 12.414335445520077 % a=p1e 22.848444028878745 % a=p2s 24.82336766056565 % a=p2e 34.35364736854382 % a=p3s 37.22031027170321 % a=p3e 45.95157437348261 % a=p4s 49.595314394636866 % a=p4e 57.664812099301635 % a=p5s 61.93396415741885 % a=p5e 69.50745497518102 % a=p6s 74.21653354556209 % a=p6e 81.48249542608227 % a=p7s 86.4191354462431 % a=p7e ] store /angs42 [ 11.391316618812636 % a=p1s 12.421620232222997 % a=p1e 22.816555647207974 % a=p2s 24.838249483529232 % a=p2e 34.30818266489811 % a=p3s 37.24336260794033 % a=p3e 45.89538433116774 % a=p4s 49.62723122800976 % a=p4e 57.60161409784311 % a=p5s 61.975271658436604 % a=p5e 69.44156422732436 % a=p6s 74.2671380601239 % a=p6e 81.4183088464351 % a=p7s 86.47782778607522 % a=p7e ] store /angs43 [ 11.374805546220893 % a=p1s 12.428744322751362 % a=p1e 22.784473985816735 % a=p2s 24.852829024359778 % a=p2e 34.26243147456385 % a=p3s 37.26601324691203 % a=p3e 45.83883317872304 % a=p4s 49.65871636987805 % a=p4e 57.53802529328333 % a=p5s 62.01621018424045 % a=p5e 69.37532857737801 % a=p6s 74.31753044380257 % a=p6e 81.35391424936446 % a=p7s 86.53652243012 % a=p7e ] store /angs44 [ 11.35819759204244 % a=p1s 12.435705159797667 % a=p1e 22.75219718435015 % a=p2s 24.86710077664962 % a=p2e 34.21638968414958 % a=p3s 37.28825344052012 % a=p3e 45.78191356674409 % a=p4s 49.6897585867911 % a=p4e 57.474035129926285 % a=p5s 62.05676872982675 % a=p5e 69.30873642218249 % a=p6s 74.36770418052814 % a=p6e 81.28930323776372 % a=p7s 86.59522059316049 % a=p7e ] store /angs45 [ 11.34149206183451 % a=p1s 12.442500089971064 % a=p1e 22.719723253524165 % a=p2s 24.881059009607743 % a=p2e 34.17005295380453 % a=p3s 37.31007403525855 % a=p3e 45.72461777022698 % a=p4s 49.72034603845508 % a=p4e 57.40963249177892 % a=p5s 62.096935597452855 % a=p5e 69.24177549798291 % a=p6s 74.41765227148547 % a=p6e 81.2244669275907 % a=p7s 86.65392350211121 % a=p7e ] store /angs46 [ 11.324688197954293 % a=p1s 12.449126358260662 % a=p1e 22.687050068099666 % a=p2s 24.894697755584264 % a=p2e 34.12341670505911 % a=p3s 37.33146544905604 % a=p3e 45.66693766745586 % a=p4s 49.75046623926626 % a=p4e 57.3448056670816 % a=p5s 62.13669834668453 % a=p5e 69.17443283236364 % a=p6s 74.46736719683196 % a=p6e 81.15939590844944 % a=p7s 86.7126323974769 % a=p7e ] store /angs47 [ 11.30778517593426 % a=p1s 12.45558110203941 % a=p1e 22.654175359239318 % a=p2s 24.908010796594976 % a=p2e 34.07647610762935 % a=p3s 37.352417646286725 % a=p3e 45.60886471716075 % a=p4s 49.780106016614425 % a=p4e 57.2795423098412 % a=p5s 62.176043739750995 % a=p5e 69.10669469171246 % a=p6s 74.51684087342855 % a=p6e 81.09408020018329 % a=p7s 86.77134853489343 % a=p7e ] store /angs48 [ 11.290782100537243 % a=p1s 12.46186134456465 % a=p1e 22.6210967061847 % a=p2s 24.92099164974485 % a=p2e 34.02922606508087 % a=p3s 37.37292011076909 % a=p3e 45.55038993377577 % a=p4s 49.809251465631526 % a=p4e 57.21382939806499 % a=p5s 62.214957681686315 % a=p5e 69.03854652371888 % a=p6s 74.56606460809658 % a=p6e 81.02850920499182 % a=p7s 86.83007318675996 % a=p7e ] store /angs49 [ 11.273678001455522 % a=p1s 12.467963987920319 % a=p1e 22.58781152718225 % a=p2s 24.93363355143764 % a=p2e 33.981661199234416 % a=p3s 37.39296181655209 % a=p3e 45.49150386060608 % a=p4s 49.83788790002112 % a=p4e 57.14765318835708 % a=p5s 62.25342515466871 % a=p5e 68.96997289434539 % a=p6s 74.61502904584103 % a=p6e 80.96267165451394 % a=p7s 86.888807643973 % a=p7e ] store /angs50 [ 11.256471828616469 % a=p1s 12.473885805342528 % a=p1e 22.55431706957733 % a=p2s 24.945929440243628 % a=p2e 33.93377583318008 % a=p3s 37.412531196262016 % a=p3e 45.43219654068899 % a=p4s 49.86599979855995 % a=p4e 57.08099916649744 % a=p5s 62.29143014589003 % a=p5e 68.90095741863797 % a=p6s 74.66372411239975 % a=p6e 80.89655555123879 % a=p7s 86.94755321777491 % a=p7e ] store /angs51 [ 11.239162447052136 % a=p1s 12.47962343286081 % a=p1e 22.520610398986634 % a=p2s 24.95787193828209 % a=p2e 33.88556397275016 % a=p3s 37.43161610675572 % a=p3e 45.372457485106786 % a=p4s 49.8935707468113 % a=p4e 57.01385199357515 % a=p5s 62.32895556819798 % a=p5e 68.83148268465389 % a=p6s 74.7121389503812 % a=p6e 80.83014810350937 % a=p7s 87.00631124172916 % a=p7e ] store /angs52 [ 11.221748631282578 % a=p1s 12.48517336017917 % a=p1e 22.486688387444715 % a=p2s 24.969453330954863 % a=p2e 33.83701928628069 % a=p3s 37.4502037917929 % a=p3e 45.31227563847723 % a=p4s 49.92058337353123 % a=p4e 56.94619544719365 % a=p5s 62.36598317264838 % a=p5e 68.76153016968738 % a=p6s 74.76026184814054 % a=p6e 80.76343565327369 % a=p7s 87.06508307383864 % a=p7e ] store /angs53 [ 11.20422905915866 % a=p1s 12.490531920710476 % a=p1e 22.452547700408434 % a=p2s 24.98066554484676 % a=p2e 33.788135082467825 % a=p3s 37.46828084140232 % a=p3e 45.25163934131193 % a=p4s 49.94701928118102 % a=p4e 56.87801235720142 % a=p5s 62.402493451983915 % a=p5e 68.6910801478577 % a=p6s 74.8080801604117 % a=p6e 80.69640359560516 % a=p7s 87.12387009882286 % a=p7e ] store /angs54 [ 11.186602305099901 % a=p1s 12.495695280665814 % a=p1e 22.418184782485486 % a=p2s 24.991500123582217 % a=p2e 33.73890428609978 % a=p3s 37.4858331475734 % a=p3e 45.19053628888994 % a=p4s 49.97285896988131 % a=p4e 56.80928453532971 % a=p5s 62.43846553391484 % a=p5e 68.62011158799075 % a=p6s 74.85558021955563 % a=p6e 80.62903628886036 % a=p7s 87.18267373057436 % a=p7e ] store /angs55 [ 11.168866832655869 % a=p1s 12.50065942708694 % a=p1e 22.38359584173527 % a=p2s 25.001948201398868 % a=p2e 33.689319411412896 % a=p3s 37.50284585585413 % a=p3e 45.128953486246175 % a=p4s 49.99808175405332 % a=p4e 56.739992698034094 % a=p5s 62.47387706291255 % a=p5e 68.54860204056897 % a=p6s 74.90274723610061 % a=p6e 80.56131695415807 % a=p7s 87.24149541481523 % a=p7e ] store /angs56 [ 11.151020986307298 % a=p1s 12.505420154692983 % a=p1e 22.348776832366852 % a=p2s 25.012000474163663 % a=p2e 33.63937253278393 % a=p3s 37.51930331237692 % a=p3e 45.06687719881598 % a=p4s 50.02266567088745 % a=p4e 56.670116381738616 % a=p5s 62.50870406903544 % a=p5e 68.476527512343 % a=p6s 74.94956518702878 % a=p6e 80.49322756264593 % a=p7s 87.30033663197948 % a=p7e ] store /angs57 [ 11.13306298241263 % a=p1s 12.50997305139454 % a=p1e 22.31372343563443 % a=p2s 25.02164716751755 % a=p2e 33.58905525242943 % a=p3s 37.535189005766014 % a=p3e 45.0042928982123 % a=p4s 50.046587379658476 % a=p4e 56.599633849567944 % a=p5s 62.54292082208086 % a=p5e 68.4038623269841 % a=p6s 74.9960166900026 % a=p6e 80.42474870876194 % a=p7s 87.35919890034931 % a=p7e ] store /angs58 [ 11.114990899189143 % a=p1s 12.514313482305218 % a=p1e 22.27843103869883 % a=p2s 25.030878001786867 % a=p2e 33.53835866473104 % a=p3s 37.550485503298596 % a=p3e 44.94118520253261 % a=p4s 50.06982205076392 % a=p4e 56.52852198851917 % a=p5s 62.576499669092854 % a=p5e 68.33057896990591 % a=p6s 75.04208286140883 % a=p6e 80.35585946738757 % a=p7s 87.41808377947804 % a=p7e ] store /angs59 [ 11.096802665602791 % a=p1s 12.51843657205544 % a=p1e 22.24289471118855 % a=p2s 25.039682153244534 % a=p2e 33.4872733167486 % a=p3s 37.56517438059821 % a=p3e 44.877537810502034 % a=p4s 50.092343243195536 % a=p4e 56.45675619586943 % a=p5s 62.60941085294281 % a=p5e 68.25664791508777 % a=p6s 75.0877431557225 % a=p6e 80.28653723241713 % a=p7s 87.47699287393749 % a=p7e ] store /angs60 [ 11.078496049018788 % a=p1s 12.522337185180852 % a=p1e 22.207109179150628 % a=p2s 25.048048211237965 % a=p2e 33.435789164411744 % a=p3s 37.57923614402594 % a=p3e 44.813333428650054 % a=p4s 50.114122768958474 % a=p4e 56.38431025343144 % a=p5s 62.6416223093306 % a=p5e 68.18203743138122 % a=p6s 75.13297518323725 % a=p6e 80.2167575338191 % a=p7s 87.53592783743304 % a=p7e ] store /angs61 [ 11.060068641441879 % a=p1s 12.52600990432232 % a=p1e 22.171068796031477 % a=p2s 25.055964130622204 % a=p2e 33.38389552379846 % a=p3s 37.59265014480355 % a=p3e 44.748553690590235 % a=p4s 50.135130542720844 % a=p4e 56.311156188052415 % a=p5s 62.67309943911543 % a=p5e 68.1067133653657 % a=p6s 75.17775450265952 % a=p6e 80.14649382972333 % a=p7s 87.59489037733685 % a=p7e ] store /angs62 [ 11.041517844146707 % a=p1s 12.52944900592984 % a=p1e 22.134767510267338 % a=p2s 25.063417178844876 % a=p2e 33.331581016809906 % a=p3s 37.60539448374439 % a=p3e 44.68317906731879 % a=p4s 50.15533441470291 % a=p4e 56.23726411649478 % a=p5s 62.70380485236126 % a=p5e 68.03063889732242 % a=p6s 75.22205438439424 % a=p6e 80.07571726940691 % a=p7s 87.65388225969777 % a=p7e ] store /angs63 [ 11.022840850463098 % a=p1s 12.532648433109795 % a=p1e 22.09819882899121 % a=p2s 25.070393876915794 % a=p2e 33.278833510432506 % a=p3s 37.61744590527948 % a=p3e 44.617188767265105 % a=p4s 50.17469998448852 % a=p4e 56.16260207253044 % a=p5s 62.73369807985659 % a=p5e 67.95377426630246 % a=p6s 75.26584553953315 % a=p6e 80.00439642224802 % a=p7s 87.71290531479623 % a=p7e ] store /angs64 [ 11.004034626440033 % a=p1s 12.535601765191819 % a=p1e 22.06135577727643 % a=p2s 25.076879933362243 % a=p2e 33.225640048635384 % a=p3s 37.628779679240274 % a=p3e 44.55056062460701 % a=p4s 50.1931903930522 % a=p4e 56.08713581371444 % a=p5s 62.76273524711508 % a=p5e 67.87607645955154 % a=p6s 75.30909580855457 % a=p6e 79.93249696672828 % a=p7s 87.77196144332437 % a=p7e ] store /angs65 [ 10.985095889062986 % a=p1s 12.538302183515828 % a=p1e 22.024230852231366 % a=p2s 25.08286017010714 % a=p2e 33.17198677577882 % a=p3s 37.63936946858586 % a=p3e 44.483270974097714 % a=p4s 50.21076608982633 % a=p4e 56.01082860486339 % a=p5s 62.790868704955884 % a=p5e 67.7974988606935 % a=p6s 75.35176980250732 % a=p6e 79.85998133234801 % a=p7s 87.83105262328567 % a=p7e ] store /angs66 [ 10.966021081636118 % a=p1s 12.540742432845043 % a=p1e 21.986815971131573 % a=p2s 25.0883184390112 % a=p2e 33.11785885020017 % a=p3s 37.64918718093233 % a=p3e 44.415294510329325 % a=p4s 50.227384571068235 % a=p4e 55.93364097473211 % a=p5s 62.818046609661955 % a=p5e 67.71799085003121 % a=p6s 75.39382848791966 % a=p6e 79.78680828581052 % a=p7s 87.89018091772554 % a=p7e ] store /angs67 [ 10.94680634586756 % a=p1s 12.54291477769846 % a=p1e 21.94910241261885 % a=p2s 25.093237527579294 % a=p2e 33.06324034638662 % a=p3s 37.658202801337055 % a=p3e 44.34660412896331 % a=p4s 50.243000085101365 % a=p4e 55.85553044173637 % a=p5s 62.84421244437447 % a=p5e 67.6374973490548 % a=p6s 75.43522870476507 % a=p6e 79.7129324509537 % a=p7s 87.94934848342535 % a=p7e ] store /angs68 [ 10.927447490103745 % a=p1s 12.544810952756503 % a=p1e 21.91108074980412 % a=p2s 25.09759905203626 % a=p2e 33.008114143830355 % a=p3s 37.66638420329706 % a=p3e 44.27717074697666 % a=p4s 50.257563299167835 % a=p4e 55.77645120378118 % a=p5s 62.869304471741685 % a=p5e 67.55595829969172 % a=p6s 75.47592260442312 % a=p6e 79.63830374955334 % a=p7s 88.00855758071803 % a=p7e ] store /angs69 [ 10.907939953044973 % a=p1s 12.54642210632034 % a=p1e 21.872740773873115 % a=p2s 25.101383335613146 % a=p2e 32.95246180027236 % a=p3s 37.673696934309646 % a=p3e 44.20696309837506 % a=p4s 50.271020921603245 % a=p4e 55.69635378628597 % a=p5s 62.893255105823094 % a=p5e 67.4733080669238 % a=p6s 75.51585699155763 % a=p6e 79.56286674715845 % a=p7s 88.06781058461439 % a=p7e ] store /angs70 [ 10.88827876213401 % a=p1s 12.547738735592494 % a=p1e 21.834071406497248 % a=p2s 25.104569269430915 % a=p2e 32.89626340655733 % a=p3s 37.680103971586306 % a=p3e 44.13594750108554 % a=p4s 50.283315271777106 % a=p4e 55.615184641300885 % a=p5s 62.915990188754535 % a=p5e 67.38947475103117 % a=p6s 75.55497255000346 % a=p6e 79.48655988435449 % a=p7s 88.12710999746892 % a=p7e ] store /angs71 [ 10.868458485630846 % a=p1s 12.548750612276178 % a=p1e 21.795060598981305 % a=p2s 25.10713415280293 % a=p2e 32.83949741971713 % a=p3s 37.6855654425648 % a=p3e 44.06408758981432 % a=p4s 50.29438378866586 % a=p4e 55.53288568912042 % a=p5s 62.93742815457482 % a=p5e 67.30437939278238 % a=p6s 75.59320292786317 % a=p6e 79.40931456904917 % a=p7s 88.18645846346183 % a=p7e ] store /angs72 [ 10.848473177165172 % a=p1s 12.54944669665458 % a=p1e 21.755695215611905 % a=p2s 25.10905350906351 % a=p2e 32.78214047013667 % a=p3s 37.690038303674356 % a=p3e 43.99134400849086 % a=p4s 50.30415846695302 % a=p4e 55.44939379193438 % a=p5s 62.95747905872753 % a=p5e 67.2179350512085 % a=p6s 75.63047365071941 % a=p6e 79.33105409919511 % a=p7s 88.24585878523492 % a=p7e ] store /angs73 [ 10.82831631127428 % a=p1s 12.54981503788168 % a=p1e 21.715960898076432 % a=p2s 25.110300872123222 % a=p2e 32.724167137687495 % a=p3s 37.693475969299065 % a=p3e 43.91767405444072 % a=p4s 50.312565207062136 % a=p4e 55.364640146702015 % a=p5s 62.9760434468519 % a=p5e 67.13004572895788 % a=p6s 75.66670082371068 % a=p6e 79.25169237736007 % a=p7s 88.30531394309575 % a=p7e ] store /angs74 [ 10.807980708069964 % a=p1s 12.54984265766669 % a=p1e 21.675841907060825 % a=p2s 25.11084753779409 % a=p2e 32.66554969047322 % a=p3s 37.69582788095825 % a=p3e 43.84303126453871 % a=p4s 50.31952306236405 % a=p4e 55.2785495814377 % a=p5s 62.993011030256994 % a=p5e 67.04060511433761 % a=p6s 75.70178957255598 % a=p6e 79.17113236809766 % a=p7s 88.36482711730189 % a=p7e ] store /angs75 [ 10.787458444709657 % a=p1s 12.549515413826098 % a=p1e 21.635320936152468 % a=p2s 25.11066227243144 % a=p2e 32.606257778229484 % a=p3s 37.697039004236025 % a=p3e 43.76736493115638 % a=p4s 50.324943362741315 % a=p4e 55.19103973524946 % a=p5s 63.008259127518066 % a=p5e 66.94949510161331 % a=p6s 75.7356321595626 % a=p6e 79.08926423529904 % a=p7s 88.42440171406147 % a=p7e ] store /angs76 [ 10.76674075073603 % a=p1s 12.54881783925506 % a=p1e 21.59437889189328 % a=p2s 25.109710969494113 % a=p2e 32.54625807033505 % a=p3s 37.69704923776268 % a=p3e 43.69061953254325 % a=p4s 50.328728688439405 % a=p4e 55.10202009748705 % a=p5s 63.0216508213731 % a=p5e 66.8565840414203 % a=p6s 75.76810569196802 % a=p6e 79.00596307839702 % a=p7s 88.48404139604865 % a=p7e ] store /angs77 [ 10.745817883542566 % a=p1s 12.547732950655154 % a=p1e 21.552994632142486 % a=p2s 25.107956242064812 % a=p2e 32.48551382564454 % a=p3s 37.6957927143048 % a=p3e 43.612734058110654 % a=p4s 50.33077166126485 % a=p4e 55.011390874833026 % a=p5s 63.03303276674643 % a=p5e 66.76172466049388 % a=p6s 75.79906931487801 % a=p6e 78.92108616172325 % a=p7s 88.54375011844128 % a=p7e ] store /angs78 [ 10.724678979154362 % a=p1s 12.546242019744097 % a=p1e 21.511144652666793 % a=p2s 25.10535693597329 % a=p2e 32.42398437770426 % a=p3s 37.693196968388726 % a=p3e 43.53364120354497 % a=p4s 50.3309535111145 % a=p4e 54.91904164654285 % a=p5s 63.042232568185476 % a=p5e 66.66475157331087 % a=p6s 75.82836074703079 % a=p6e 78.83446949800086 % a=p7s 88.6035321717656 % a=p7e ] store /angs79 [ 10.703311872070397 % a=p1s 12.544324297503936 % a=p1e 21.468802708860174 % a=p2s 25.10186754359615 % a=p2e 32.36162451400444 % a=p3s 37.6891819373172 % a=p3e 43.453266403232774 % a=p4s 50.32914236368454 % a=p4e 54.824849756494636 % a=p5s 63.04905562170921 % a=p5e 66.565478286174 % a=p6s 75.85579197093445 % a=p6e 78.74592360127376 % a=p7s 88.66339223320006 % a=p7e ] store /angs80 [ 10.681702875954299 % a=p1s 12.541956679075694 % a=p1e 21.42593935538871 % a=p2s 25.097437492192512 % a=p2e 32.29838372123975 % a=p3s 37.68365875215961 % a=p3e 43.3715266573525 % a=p4s 50.32519117878111 % a=p4e 54.728678375066174 % a=p5s 63.053281284795474 % a=p5e 66.46369356464169 % a=p6s 75.881143824128 % a=p6e 78.6552281611952 % a=p7s 88.72333542848413 % a=p7e ] store /angs81 [ 10.659836514247882 % a=p1s 12.539113292836335 % a=p1e 21.382521380886654 % a=p2s 25.092010272063927 % a=p2e 32.23420525933059 % a=p3s 37.67652826113121 % a=p3e 43.28832909702567 % a=p4s 50.31893524611107 % a=p4e 54.63037414236975 % a=p5s 63.054658195711696 % a=p5e 66.35915699490941 % a=p6s 75.90415914721605 % a=p6e 78.5621253015316 % a=p7s 88.78336740724937 % a=p7e ] store /angs82 [ 10.637695185993898 % a=p1s 12.535764991504823 % a=p1e 21.33851110689382 % a=p2s 25.085522357840425 % a=p2e 32.16902501405345 % a=p3s 37.66767920798015 % a=p3e 43.203569211389976 % a=p4s 50.310189114033676 % a=p4e 54.529764274421154 % a=p5s 63.05289850477063 % a=p5e 66.2515935141803 % a=p6s 75.92453401446242 % a=p6e 78.46631095883205 % a=p7s 88.84349443551498 % a=p7e ] store /angs83 [ 10.61525874674933 % a=p1s 12.531878715022073 % a=p1e 21.293865508926707 % a=p2s 25.077901859150412 % a=p2e 32.102770059768275 % a=p3s 37.656985959876216 % a=p3e 43.1171286326933 % a=p4s 50.29874278230683 % a=p4e 54.42665297137745 % a=p5s 63.047670698031496 % a=p5e 66.14068660725404 % a=p6s 75.94190638480522 % a=p6e 78.36742373365804 % a=p7s 88.90372351038114 % a=p7e ] store /angs84 [ 10.592503976654715 % a=p1s 12.527416683236392 % a=p1e 21.248535101219208 % a=p2s 25.069066812278805 % a=p2e 32.035356837154495 % a=p3s 37.64430563864088 % a=p3e 43.028872335345895 % a=p4s 50.28435692581228 % a=p4e 54.32081690576332 % a=p5s 63.03859057713544 % a=p5e 66.02606975574359 % a=p6s 75.95584123474288 % a=p6e 78.26503029691146 % a=p7s 88.9640625037828 % a=p7e ] store /angs85 [ 10.569403896174823 % a=p1s 12.522335359137418 % a=p1e 21.202462502516937 % a=p2s 25.058922988051854 % a=p2e 31.966688811640243 % a=p3s 37.62947444923545 % a=p3e 42.93864504562983 % a=p4s 50.2667568221177 % a=p4e 54.21199947856619 % a=p5s 63.02520978945754 % a=p5e 65.90731556547105 % a=p6s 75.96581082065448 % a=p6e 78.15860602993351 % a=p7s 89.02452034480287 % a=p7e ] store /angs86 [ 10.545926872605126 % a=p1s 12.516584097323948 % a=p1e 21.155580563877532 % a=p2s 25.04736103638729 % a=p2e 31.89665341905499 % a=p3s 37.612302909182475 % a=p3e 42.846266569495306 % a=p4s 50.24562451436328 % a=p4e 54.09990339572997 % a=p5s 63.007001051557715 % a=p5e 65.78392175908459 % a=p6s 75.97116808614204 % a=p6e 78.0475089606994 % a=p7s 89.0851072539084 % a=p7e ] store /angs87 [ 10.522035433517816 % a=p1s 12.510103352160264 % a=p1e 21.10780988314357 % a=p2s 25.034252703364917 % a=p2e 31.825118013673226 % a=p3s 37.59256954340369 % a=p3e 42.75152560808503 % a=p4s 50.22058852343689 % a=p4e 53.98418090914118 % a=p5s 62.9833388276552 % a=p5e 65.65529285871052 % a=p6s 75.9711102439751 % a=p6e 77.93094409735356 % a=p7s 89.14583504825299 % a=p7e ] store /angs88 [ 10.497684660592489 % a=p1s 12.502822256276911 % a=p1e 21.059055441433046 % a=p2s 25.019445722575252 % a=p2e 31.75192438887398 % a=p3s 37.570012388417375 % a=p3e 42.654171412167706 % a=p4s 50.19121007951041 % a=p4e 53.86442073640436 % a=p5s 62.95347363033468 % a=p5e 65.52071581820768 % a=p6s 75.96462798667281 % a=p6e 77.8079137255463 % a=p7s 89.20671754601857 % a=p7e ] store /angs89 [ 10.472819967382202 % a=p1s 12.494655275793896 % a=p1e 21.00920195089533 % a=p2s 25.00275676337861 % a=p2e 31.676881203639077 % a=p3s 37.54431728967448 % a=p3e 42.55390226966079 % a=p4s 50.15696428250893 % a=p4e 53.74013013574648 % a=p5s 62.9164971546799 % a=p5e 65.37932695490305 % a=p6s 75.95043319432422 % a=p6e 77.67714671916806 % a=p7s 89.267771111587 % a=p7e ] store /angs90 [ 10.44737394623543 % a=p1s 12.485497472250978 % a=p1e 20.95810725568375 % a=p2s 24.98396144813609 % a=p2e 31.599753247054046 % a=p3s 37.51510136707036 % a=p3e 42.45034921663944 % a=p4s 50.1172136554016 % a=p4e 53.610709704045156 % a=p5s 62.87129386468458 % a=p5e 65.23006601413964 % a=p6s 75.92685363715245 % a=p6e 77.53699566206811 % a=p7s 89.32901540553087 % a=p7e ] store /angs91 [ 10.421261761253758 % a=p1s 12.475217590906341 % a=p1e 20.905592692739635 % a=p2s 24.962779798689688 % a=p2e 31.520245767122837 % a=p3s 37.48188895354737 % a=p3e 42.34305230016192 % a=p4s 50.071169894367095 % a=p4e 53.47541687050413 % a=p5s 62.816471889197054 % a=p5e 65.07161056727695 % a=p6s 75.89167552706655 % a=p6e 77.38528314961515 % a=p7s 89.39047444015759 % a=p7e ] store /angs92 [ 10.39437418034958 % a=p1s 12.463647623808814 % a=p1e 20.851428517050195 % a=p2s 24.93885427281721 % a=p2e 31.437980790359042 % a=p3s 37.4440753432555 % a=p3e 42.23142476643647 % a=p4s 50.01783657095724 % a=p4e 53.33331112576324 % a=p5s 62.75026106623974 % a=p5e 64.90227915475951 % a=p6s 75.84190088464126 % a=p6e 77.21906515428934 % a=p7s 89.4521781042207 % a=p7e ] store /angs93 [ 10.366566594024654 % a=p1s 12.450566387400894 % a=p1e 20.7953109387511 % a=p2s 24.91171522392829 % a=p2e 31.352459835082556 % a=p3s 37.40086986833539 % a=p3e 42.11469675473716 % a=p4s 49.95591963617774 % a=p4e 53.183168342405175 % a=p5s 62.67035634556985 % a=p5e 64.71988238764112 % a=p6s 75.77336031510298 % a=p6e 77.03425376248032 % a=p7s 89.51416443218523 % a=p7e ] store /angs94 [ 10.337640827583373 % a=p1s 12.43567236437918 % a=p1e 20.736824100778414 % a=p2s 24.880723810756752 % a=p2e 31.263002207045993 % a=p3s 37.351201943985174 % a=p3e 41.99182224402634 % a=p4s 49.88368040256907 % a=p4e 53.02333981853951 % a=p5s 62.573665066453344 % a=p5e 64.52148239066106 % a=p6s 75.68006906658896 % a=p6e 76.82499053487105 % a=p7s 89.57648310092486 % a=p7e ] store /angs95 [ 10.3073131210325 % a=p1s 12.418535962 % a=p1e 20.675373157115303 % a=p2s 24.84497168741433 % a=p2e 31.168636456211317 % a=p3s 37.29355619650331 % a=p3e 41.861315568140476 % a=p4s 49.79867863856155 % a=p4e 52.85150561997737 % a=p5s 62.45587317977757 % a=p5e 64.30297938970263 % a=p6s 75.55310227890614 % a=p6e 76.58255351663618 % a=p7s 89.639201041776 % a=p7e ] store /angs96 [ 10.27515327329313 % a=p1s 12.398508906273932 % a=p1e 20.610057118365663 % a=p2s 24.80309072406826 % a=p2e 31.0678942534632 % a=p3s 37.22566008831809 % a=p3e 41.72094132649595 % a=p4s 49.69728761978492 % a=p4e 52.66420838116201 % a=p5s 62.3106404326897 % a=p5e 64.05834364726535 % a=p6s 75.37850966942737 % a=p6e 76.2933344097417 % a=p7s 89.70241189457685 % a=p7e ] store /angs97 [ 10.240457014776476 % a=p1s 12.374534483857923 % a=p1e 20.539402258496843 % a=p2s 24.752854701221814 % a=p2e 30.958378485619786 % a=p3s 37.143830811962594 % a=p3e 41.567065421883505 % a=p4s 49.57368363983764 % a=p4e 52.45588082398579 % a=p5s 62.12795008488131 % a=p5e 63.77803848358542 % a=p6s 75.13315211918425 % a=p6e 75.93480957381597 % a=p7s 89.7662528933324 % a=p7e ] store /angs98 [ 10.201940783287087 % a=p1s 12.344694343661418 % a=p1e 20.460724780181135 % a=p2s 24.69022861634551 % a=p2e 30.835731476098257 % a=p3s 37.041418581955604 % a=p3e 41.393107024755516 % a=p4s 49.41744597628106 % a=p4e 52.2165341809466 % a=p5s 61.8902485673239 % a=p5e 63.445327791130374 % a=p6s 74.77556573610576 % a=p6e 75.46672987115005 % a=p7s 89.83093728039667 % a=p7e ] store /angs99 [ 10.156863514538578 % a=p1s 12.304906380898949 % a=p1e 20.368298086378783 % a=p2s 24.6066397184238 % a=p2e 30.690671442542342 % a=p3s 36.90434732074166 % a=p3e 41.185102323629934 % a=p4s 49.206715079304736 % a=p4e 51.92516721537275 % a=p5s 61.561627576755996 % a=p5e 63.025927609896144 % a=p6s 74.22325640356571 % a=p6e 74.80934874610683 % a=p7s 89.89682247726977 % a=p7e ] store /angs100 [ 10.097664637482845 % a=p1s 12.243948888604791 % a=p1e 20.2463452806097 % a=p2s 24.478569462863145 % a=p2e 30.49768963075752 % a=p3s 36.69417993773908 % a=p3e 40.904866750365436 % a=p4s 48.88245951368224 % a=p4e 51.525008083759836 % a=p5s 61.048280116916224 % a=p5e 62.43026757621404 % a=p6s 73.28583530820094 % a=p6e 73.77999848960131 % a=p7s 89.9645717192571 % a=p7e ] store %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% /masterangs [ angs0 angs1 angs2 angs3 angs4 angs5 angs6 angs7 angs8 angs9 angs10 angs11 angs12 angs13 angs14 angs15 angs16 angs17 angs18 angs19 angs20 angs21 angs22 angs23 angs24 angs25 angs26 angs27 angs28 angs29 angs30 angs31 angs32 angs33 angs34 angs35 angs36 angs37 angs38 angs39 angs40 angs41 angs42 angs43 angs44 angs45 angs46 angs47 angs48 angs49 angs50 angs51 angs52 angs53 angs54 angs55 angs56 angs57 angs58 angs59 angs60 angs61 angs62 angs63 angs64 angs65 angs66 angs67 angs68 angs69 angs70 angs71 angs72 angs73 angs74 angs75 angs76 angs77 angs78 angs79 angs80 angs81 angs82 angs83 angs84 angs85 angs86 angs87 angs88 angs89 angs90 angs91 angs92 angs93 angs94 angs95 angs96 angs97 angs98 angs99 angs100 ] store %% grab individual angle reports /p1sangs mark masterangs {0 get} forall ] store /p2sangs mark masterangs {2 get} forall ] store /p3sangs mark masterangs {4 get} forall ] store /p4sangs mark masterangs {6 get} forall ] store /p5sangs mark masterangs {8 get} forall ] store /p6sangs mark masterangs {10 get} forall ] store /p7sangs mark masterangs {12 get} forall ] store %% grab angle diffrences from carrier impulse /p1sdangs mark p1sangs {12 sub} forall ] store /p2sdangs mark p2sangs {24 sub} forall ] store /p3sdangs mark p3sangs {36 sub} forall ] store /p4sdangs mark p4sangs {48 sub} forall ] store /p5sdangs mark p5sangs {60 sub} forall ] store /p6sdangs mark p6sangs {72 sub} forall ] store /p7sdangs mark p7sangs {84 sub} forall ] store %% calculate cosine half differences... /p1sdcos mark p1sangs {cos 12 cos sub } forall ] store /p2sdcos mark p2sangs {cos 24 cos sub } forall ] store /p3sdcos mark p3sangs {cos 36 cos sub } forall ] store /p4sdcos mark p4sangs {cos 48 cos sub } forall ] store /p5sdcos mark p5sangs {cos 60 cos sub } forall ] store /p6sdcos mark p6sangs {cos 72 cos sub } forall ] store /p7sdcos mark p7sangs {cos 84 cos sub } forall ] store % get normalized max values /normp1s p1sdcos 100 get store /normp2s p2sdcos 100 get store /normp3s p3sdcos 100 get store /normp4s p4sdcos 100 get store /normp5s p5sdcos 100 get store /normp6s p6sdcos 100 get store /normp7s p7sdcos 100 get store %% find fractional tota;s /fractot 12 sin 24 sin add 36 sin add 48 sin add 60 sin add 72 sin add 84 sin add store /fracts [ 12 sin fractot div 24 sin fractot div 36 sin fractot div 48 sin fractot div 60 sin fractot div 72 sin fractot div 84 sin fractot div ] store % calculate cosine contributed half fractions /fract12 fracts 0 get 2 div store /fract24 fracts 1 get 2 div store /fract36 fracts 2 get 2 div store /fract48 fracts 3 get 2 div store /fract60 fracts 4 get 2 div store /fract72 fracts 6 get 2 div store /fract84 fracts 6 get 2 div store % use reminder % /data [ 0 0 0.5 0.7 1 1 ] store solvelineq plotit showpage %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% zzz %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % do a total plot and compare against existing and better guesses % 150 100 10 setgrid 0 0 mt 45 pu 20 pr 45 pd closepath 0.8 1 1 setrgbcolor fill 20 45 showgrid % two degrees per v block black % p7s 0 84 2 div mt % center of p7 0 1 100 {/jj exch store jj 5 div masterangs jj get 12 get 2 div lineto } for 20 84 2 div lineto closepath 1 0.4 0.4 setrgbcolor fill 0 84 2 div mt % center of p7 0 1 100 {/jj exch store jj 5 div masterangs jj get 13 get 2 div lineto } for 20 84 2 div lineto closepath 1 0.4 0.4 setrgbcolor fill % p6s %%%%%%%%%%%%%%%%%%%%%%%%%%%% 0 72 2 div mt % center of p7 0 1 100 {/jj exch store jj 5 div masterangs jj get 10 get 2 div lineto } for 20 72 2 div lineto closepath 1 0.4 0.4 setrgbcolor fill 0 72 2 div mt % center of p7 0 1 100 {/jj exch store jj 5 div masterangs jj get 11 get 2 div lineto } for 20 72 2 div lineto closepath 1 0.4 0.4 setrgbcolor fill % p5s %%%%%%%%%%%%%%%%%%%%%%%%%%%% 0 60 2 div mt % center of p7 0 1 100 {/jj exch store jj 5 div masterangs jj get 8 get 2 div lineto } for 20 60 2 div lineto closepath 1 0.4 0.4 setrgbcolor fill 0 60 2 div mt % center of p5 0 1 100 {/jj exch store jj 5 div masterangs jj get 9 get 2 div lineto } for 20 60 2 div lineto closepath 1 0.4 0.4 setrgbcolor fill % p4s %%%%%%%%%%%%%%%%%%%%%%%%%%%% 0 48 2 div mt % center of p7 0 1 100 {/jj exch store jj 5 div masterangs jj get 6 get 2 div lineto } for 20 48 2 div lineto closepath 1 0.4 0.4 setrgbcolor fill 0 48 2 div mt % center of p5 0 1 100 {/jj exch store jj 5 div masterangs jj get 7 get 2 div lineto } for 20 48 2 div lineto closepath 1 0.4 0.4 setrgbcolor fill % p3s %%%%%%%%%%%%%%%%%%%%%%%%%%%% 0 36 2 div mt % center of p7 0 1 100 {/jj exch store jj 5 div masterangs jj get 4 get 2 div lineto } for 20 36 2 div lineto closepath 1 0.4 0.4 setrgbcolor fill 0 36 2 div mt % center of p5 0 1 100 {/jj exch store jj 5 div masterangs jj get 5 get 2 div lineto } for 20 36 2 div lineto closepath 1 0.4 0.4 setrgbcolor fill % p2s %%%%%%%%%%%%%%%%%%%%%%%%%%%% 0 24 2 div mt % center of p7 0 1 100 {/jj exch store jj 5 div masterangs jj get 2 get 2 div lineto } for 20 24 2 div lineto closepath 1 0.4 0.4 setrgbcolor fill 0 24 2 div mt % center of p5 0 1 100 {/jj exch store jj 5 div masterangs jj get 3 get 2 div lineto } for 20 24 2 div lineto closepath 1 0.4 0.4 setrgbcolor fill % p1s %%%%%%%%%%%%%%%%%%%%%%%%%%%% 0 12 2 div mt % center of p7 0 1 100 {/jj exch store jj 5 div masterangs jj get 0 get 2 div lineto } for 20 12 2 div lineto closepath 1 0.4 0.4 setrgbcolor fill 0 12 2 div mt % center of p5 0 1 100 {/jj exch store jj 5 div masterangs jj get 1 get 2 div lineto } for 20 12 2 div lineto closepath 1 0.4 0.4 setrgbcolor fill line1 [{0.2 6 mt 19.6 r} 6 7 ] yrpt black line1 0 84 2 div mt 20 masterangs 1 get 13 get 84 sub 2 div 100 mul rlineto 20 0 masterangs 1 get 13 get 84 sub 100 mul neg rlineto closepath stroke 0 72 2 div mt 20 masterangs 1 get 11 get 72 sub 2 div 100 mul rlineto 20 0 masterangs 1 get 11 get 72 sub 100 mul neg rlineto closepath stroke 0 60 2 div mt 20 masterangs 1 get 9 get 60 sub 2 div 100 mul rlineto 20 0 masterangs 1 get 9 get 60 sub 100 mul neg rlineto closepath stroke 0 48 2 div mt 20 masterangs 1 get 7 get 48 sub 2 div 100 mul rlineto 20 0 masterangs 1 get 7 get 48 sub 100 mul neg rlineto closepath stroke 0 36 2 div mt 20 masterangs 1 get 5 get 36 sub 2 div 100 mul rlineto 20 0 masterangs 1 get 5 get 36 sub 100 mul neg rlineto closepath stroke 0 24 2 div mt 20 masterangs 1 get 3 get 24 sub 2 div 100 mul rlineto 20 0 masterangs 1 get 3 get 24 sub 100 mul neg rlineto closepath stroke 0 12 2 div mt 20 masterangs 1 get 1 get 12 sub 2 div 100 mul rlineto 20 0 masterangs 1 get 1 get 12 sub 100 mul neg rlineto closepath stroke { 0 0 1 setrgbcolor 0 36 2 div mt 20 masterangs 1 get 5 get 36 sub 2 div 100 mul 0.6000 sub rlineto 20 0 masterangs 1 get 5 get 36 sub 100 mul neg rlineto closepath stroke } pop black line1 -0.4 0 mt 20.4 r 0 0 mt 0.4 d 10 0 mt 0.4 d 20 0 mt 0.4 d /cstretch 0.02 store /sstretch 0.02 store /font1 /Helvetica-Bold 0.85 gonzofont font1 0 -1.3 (0.0) cc 10 -1.3 (0.5) cc 20 -1.3 (1.0) cc 10 -2.7 (input amplitude) cc 10 3.5 (best efficiency 7 pulse per quadrant magic sinewave pulse positions) cc -1.3 -0.3 (0.0000) cr -1.3 6 0.3 sub (12.000) cr -1.3 12 0.3 sub (24.000) cr -1.3 18 0.3 sub (36.000) cr -1.3 24 0.3 sub (48.000) cr -1.3 30 0.3 sub (60.000) cr -1.3 36 0.3 sub (72.000) cr -1.3 42 0.3 sub (84.000) cr -1.3 45 0.3 sub (90.000) cr [{0 0 mt 0.4 l}6 8 ] yrpt 0 45 mt 0.4 l 0 0 mt 45 u 20 r 45 d 18 42 0.3 sub (P7) cc 18 36 0.3 sub (P6) cc 18 30 0.3 sub (P5) cc 18 24 0.3 sub (P4) cc 18 18 0.3 sub (P3) cc 18 12 0.3 sub (P2) cc 18 6 0.3 sub (P1) cc gsave -5.5 22.5 translate 90 rotate 0 0 (pulse starting or ending angle position in degrees) cc grestore snap3 restore } def %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % figure1 for detmssol 72 /figure1 { save /snapxxx exch def %%%%%%%%%%%%%%%%%%% -0.3 -2.5 translate % position on box 1.5 dup scale 0 1 0 setrgbcolor line1 gsave 0 0 mt 10 pu 20 pr 10 pd closepath 0.8 1 1 setrgbcolor fill grestore 20 10 showgrid 0 1 1 setrgbcolor line2 10 0 mt 10 u 0 10 mt 20 r 0 0 mt 10 pu 20 pr 10 pd closepath stroke newpath 0 0 mt 10 pu 20 pr 10 pd closepath clip newpath 10 0 translate black /f1 { /b1 exch store /m1 exch store % capture slope and error -11 11 mt line1 0.07 setlinewidth -10 0.1 10 {/x1 exch store % plotting loop for linear x1 m1 mul b1 add abs x1 exch lineto } for stroke -11 11 mt line1 0.07 setlinewidth -10 0.1 10 {/x1 exch store % plotting loop for square x1 m1 mul b1 add dup mul % sqrt % find rms x1 exch % 2 copy == == (\n) print flush % gsave black 2 copy mt dot grestore lineto } for stroke 1 0 0 setrgbcolor % verify and plot minimum b1 m1 div neg 0 mt 20 u 0 b1 mt dot % plot initial y value } def 2 3 f1 % and do it slope - offset f1 snapxxx restore } store %%%%%%%%%%%%%%%% % figure2 for detmssol 72 /figure2 { save /snapxxx exch def %%%%%%%%%%%%%%%%%%% -0.3 -2.5 translate % position on box 1.5 dup scale 0 1 0 setrgbcolor line1 gsave 0 0 mt 10 pu 20 pr 10 pd closepath 0.8 1 1 setrgbcolor fill grestore 20 10 showgrid 0 1 1 setrgbcolor line2 10 0 mt 10 u 0 10 mt 20 r 0 0 mt 10 pu 20 pr 10 pd closepath stroke newpath 0 0 mt 10 pu 20 pr 10 pd closepath clip newpath 10 0 translate black /f123 {/b7 exch store /m7 exch store % capture 7h slope and error /b5 exch store /m5 exch store % capture 5h slope and error /b3 exch store /m3 exch store % capture 3h slope and error -11 11 mt line1 -10 0.1 10 {/x3 exch store % plotting loop for 3h linear x3 m3 mul b3 add abs x3 exch lineto } for stroke 1 0 0 setrgbcolor % show intercept 0 b3 mt dot black -11 11 mt line1 0.07 setlinewidth -10 0.1 10 {/x5 exch store % plotting loop for 5h linear x5 m5 mul b5 add abs x5 exch lineto } for stroke 1 0 0 setrgbcolor % show intercept 0 b5 mt dot black -11 11 mt line1 0.07 setlinewidth -10 0.1 10 {/x7 exch store % plotting loop for 7h linear x7 m7 mul b7 add abs x7 exch lineto } for stroke 1 0 0 setrgbcolor % show intercept 0 b7 mt dot black -11 11 mt line1 0.07 setlinewidth % plot sum of squares -10 0.1 10 {/ss exch store ss m3 mul b3 add dup mul ss m5 mul b5 add dup mul add ss m7 mul b7 add dup mul add sqrt % plot as rms ss exch lineto } for stroke % minimum shold be - (m3b3 + m5b5 + m7b7)/(m3m3 + m5m5 + m7m7) 1 0 0 setrgbcolor % verify and plot minimum m3 b3 mul m5 b5 mul add m7 b7 mul add m3 dup mul m5 dup mul add m7 dup mul add div neg 0 mt 20 u } def 2 3 .5 2 -0.75 2.5 f123 % and do it slope - offset f1 snapxxx restore } store %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % Specific file info here /font; /Helvetica [0.7 0 0 0.7 0 0.4] gonzofont font1 /font- /Symbol 0.85 gonzofont aqua 0.33 setgray font0 /narrowx {/txtwide txtwide 8.5 sub store} store /widenx {/txtwide txtwide 8.5 add store} store /burpon {mark /burple cvx 0.33 /setgray cvx ] cvx % additional internal gonzo printlist exch 3 index exch put exch 1 add exch} def /burpoff {mark /aqua cvx 0 /setgray cvx ] cvx printlist exch 3 index exch put exch 1 add exch} def /darkenheader {save /headsnap exch store xpos 1 sub ypos 0.2 add translate 0.3 1 1 setrgbcolor 0 0 mt 3.2 pd burpwide pr 3.2 pu closepath fill headsnap restore} store % sssssssssssssssssssss % start marker /tabs [14] store 20 48.3 0.7 add % 1 sub (An |jUltra |jFast)cc 20 46.3 0.7 add % 1 sub (Magic |jSinewave |jCalculator) cc black font2 textleft 43 0.3 add % this one only need |h below (|/aqua |/staytint1 |3Don Lancaster Synergetics, Box 809, Thatcher, AZ 85552 copyright c2007 as |/surl |6GuruGram|1|/gurgrm01 |/tinton1 |6#73-R |/surl http://www.tinaja.com|/tinaja |/surl don@tinaja.com|/maildon (928) 428-4073 |/aqua |/black |a|0M|b|1agic Sinewaves are a newly discovered class of mathematical functions that hold significant potential to dramatically improve the efficiency and power quality of solar energy synchronous inverters, electric hybrid automobiles, and industrial motor controls, among many others. An executive summary can be found |/su here|1|/msinexec.pdf , a slideshow type intro presentation |/su here|1|/demo28a |1|/msintro1 , a development proposal |/su here|1|/msinprop , the latest calculator |/su here|1|/demo28a , and detailed additional tutorials and design info |/su here|1|/magsn01 . |h Major goals of such digital sinewave generation including offering the |/to maximum |/to possible efficiency|/tx by using the fewest of simplest possible switching transitions; offering the |/to lowest possible distortion|/tx by zeroing out a maximum number of low harmonics that impact power quality, whine, vibration, and circulating currents; and by using |/to all digital techniques|/tx that are extremely low end microprocessor and/or microcontroller friendly. |h Magic sinewaves have two remarkable properties: |/to Any number of desired low |/to harmonics can be forced exactly to zero|/tx in theory, and to astonishingly low levels when quantized to 8-bit compatible levels. And magic sinewaves use the |/to absolute minimum possible and simplest energy-robbing transitions|/tx to achieve such harmonic suppression. |h A typical |/su magic sinewave|1|/magsn01 might look something like this\274 |h |/ms0360 ) cl startnewpage /smaller {gsave 0 7 translate 0.85 dup scale} store /larger {1 0.85 div dup scale grestore} store /font: /StoneSans-Bold [1 0 0 1 0 -0.25] gonzofont % center times (|1We see that this waveform is a variation on |/to PWM|/tx or |/to pulse width modulation|/tx . |h Its highly unique characteristics are that it has far fewer energy robbing transitions than conventional PWM, that it is always exactly phase- and frequency locked to a fundamental, and uses half bridge rather than full bridge switching events for further efficiency improvment. Additional advantages include a 100 percent modulation depth allowing the carrier to |/to never|/tx exceed the fundamental. |h Plus, of course, zeroing out any chosen number of low harmonics and doing so with an absolute minimum of switching events. |h There are several different types of Magic Sinewaves possible. Three of emerging interest are called |/to Best Efficiency|/tx , |/to Bridged Best Efficiency|/tx , and |/to Delta Friendly|/tx . A |/su Best Efficiency Magic Sinewave|1|/msintro1 zeros out an additional two harmonics. When compared to conventional earlier solutions. Brought about by an invisible and zero integrated width pulse at zero degrees. |h A bridged best efficiency is similar but is continuous at 90 degrees, And fills in with alternate values. A |/su delta friendly|1|/deltams1 magic sinewave meets the exacting special needs of three phase power systems. There are fewer of these at present, limited to |/to 3, 7, 11, 15, \274|/tx or more pulses per quadrant. They zero out somewhat fewer low harmonics but have a major advantage of needing only |/to one-half the storage|/tx for amplitude data values. |h |1Magic sinewaves are extremely exacting in their solutions. A typical equation set for a seven pulse per quadrant best efficiency |/su magic sinewave|1|/magsn01 might be\274 |6|/shiftin |/aqua |/burplebox13.5 |/staytint1 |h|/smaller |6cos|j( 1|:*|6p1s )|j-|jcos|j( 1|:*|6p1e )|j+|j\274|j+|jcos|j( 1|:*|6p7s )|j-|jcos|j( 1|:*|6p7e ) = ampl|j|:*|6|jpi/4 cos|j( 3|:*|6p1s )|j-|jcos|j( 3|:*|6p1e )|j+|j\274|j+|jcos|j( 3|:*|6p7s )|j-|jcos|j( 3|:*|6p7e ) = 0 cos|j( 5|:*|6p1s )|j-|jcos|j( 5|:*|6p1e )|j+|j\274|j+|jcos|j( 5|:*|6p7s )|j-|jcos|j( 5|:*|6p7e ) = 0 cos|j( 7|:*|6p1s )|j-|jcos|j( 7|:*|6p1e )|j+|j\274|j+|jcos|j( 7|:*|6p7s )|j-|jcos|j( 7|:*|6p7e ) = 0 cos|j( 9|:*|6p1s )|j-|jcos|j( 9|:*|6p1e )|j+|j\274|j+|jcos|j( 9|:*|6p7s )|j-|jcos|j( 9|:*|6p7e ) = 0 cos|j(11|:*|6p1s)|j-|jcos|j(11|:*|6p1e)|j+|j\274|j+|jcos|j(11|:*|6p7s)|j-|jcos|j(11|:*|6p7e)|j = 0 cos|j(13|:*|6p1s)|j-|jcos|j(13|:*|6p1e)|j+|j\274|j+|jcos|j(13|:*|6p7s)|j-|jcos|j(13|:*|6p7e)|j = 0 cos|j(15|:*|6p1s)|j-|jcos|j(15|:*|6p1e)|j+|j\274|j+|jcos|j(15|:*|6p7s)|j-|jcos|j(15|:*|6p7e)|j = 0 cos|j(17|:*|6p1s)|j-|jcos|j(17|:*|6p1e)|j+|j\274|j+|jcos|j(17|:*|6p7s)|j-|jcos|j(17|:*|6p7e)|j = 0 cos|j(19|:*|6p1s)|j-|jcos|j(19|:*|6p1e)|j+|j\274|j+|jcos|j(19|:*|6p7s)|j-|jcos|j(19|:*|6p7e)|j = 0 cos|j(21|:*|6p1s)|j-|jcos|j(21|:*|6p1e)|j+|j\274|j+|jcos|j(21|:*|6p7s)|j-|jcos|j(21|:*|6p7e)|j = 0 cos|j(23|:*|6p1s)|j-|jcos|j(23|:*|6p1e)|j+|j\274|j+|jcos|j(23|:*|6p7s)|j-|jcos|j(23|:*|6p7e)|j = 0 cos|j(25|:*|6p1s)|j-|jcos|j(25|:*|6p1e)|j+|j\274|j+|jcos|j(25|:*|6p7s)|j-|jcos|j(25|:*|6p7e)|j = 0 cos|j(27|:*|6p1s)|j-|jcos|j(27|:*|6p1e)|j+|j\274|j+|jcos|j(27|:*|6p7s)|j-|jcos|j(27|:*|6p7e)|j = 0 |h|/larger |1|/shiftout |/aqua |/black |h|y|y|y|y|y|y Power polynomials of this complexity are unlikely to have a direct solution. Instead, |/to Newton's Method|/tx , otherwise known as |/to "shake the box"|/tx has proven to be an effective solution route. In which a |/to good guess|/tx is made based on a previously useful result or a nearby amplitude. This is followed by one or more iterations of |/to improvement|/tx to the good guess. |h ) cl startnewpage (|1Such an initial guess |/to presupposes|/tx one and only one solution for a given magic sinewave equation. Some experiments using |/to Monte Carlo Methods|/tx do strongly suggest that single solutions are likely the case. |h Per this |/su example code|1|/bridge701.psl and |/su this result|1|/bridge701.pdf . |h The general concept is to generate tens to hundreds of millions of random pulses, filter them to low distortions, and seek out any exceptions to the known solution set. Things rapidly get out of hand beyond |/to n=4|/tx . But all of the lower order models strongly support uniqueness. |h An extensive set of older JavaScript based interactive calculators is found |/su here|1|/magsn01 . These earlier calculators use a brute force iterative method that had demanded repeated trig calculations to seek the harmonic distortion minimums. While quite effective and useful, their initially slow computing times became excessive when many dozens or hundreds of harmonics are to be zeroed. |h In |/su GuruGram #72|1|/detmssol.pdf , some very preliminary and tentative work showed an improved and quasi-deterministic approach to |/su Magic Sinewave|1|/magsn01 solutions. However, these new solutions still remained quite slowly converging. Here we will explore some extensions to these techniques that has led to a brand new approach to |/su Magic|1|/magsn01 |/su Sinewave|1|/magsn01 calculations that is both exceptionally fast and quasi-deterministic. |h Speedups beyond |/su 1000:1|/tx have been demonstrated. With typical calculation times of well under one second. As per this |/su current calculator demo|1|/demo28a.asp . |h |c The |jApproach |d There is a fundamental mathematical proof that |/to no direct deterministic solutions |/to exist for independent polynomial equation sets above order four|/tx . But on the other hand, there are trigonometric identities that might somehow |/to indirectly |/to relate|/tx the variables in the above equations. And, as our results clearly prove, it certainly should be possible to modulate a carrier without distortion. |h Whether a useful direct and deterministic solution to |/su Magic Sinewaves|1|/magsn01 exists remains an open question. The approach here uses a two step process of |/to a good |/to guess|/tx that is followed by |/to a fast converging improvement|/tx . In some cases, a single iteration can give engineeringly useful results. And repeated iterations can end up amazingly fast. While converging to aesthetically and mathematically satisfying harmonics zeroed to well beyond fourteen decimal places. |h As an additional bonus, the current technique converges |/to simultaneously|/tx on the zeroed harmonics |/to and|/tx on a chosen target amplitude. |h |c Making |jSome |jGood |jGuesses |d A better guess can start by |/to working backwards|/tx from a known |/su Magic Sinewave|1|/magsn01 solution. While attempting to stay as close as possible to the "real" math. Here is how the |/to n=7|/tx Best Efficiency Magic Sinewave angles vary with amplitude\274 ) cl startnewpage figure3 % figure only on page plus number ( ) cl startnewpage (|1We first note that very low amplitudes start off with a group of carefully locked |/to carrier phase impulses|/tx . Having zero width and zero energy for zero amplitude. In the case of a best efficiency, seven pulse per quadrant magic sinewave, there will be impulses that start near |/to 12.000|/tx , |/to 24.000|/tx , |/to 36.000|/tx , |/to 48.000|/tx , |/to 60.000|/tx , |/to 72.000|/tx , and |/to 84.000|/tx degrees. These impulses will mirror over the |/to 90|/tx to |/to 180|/tx degree range and invert over the |/to 180|/tx to |/to 360|/tx degree range. |h There will also be two "invisible" carrier phase impulses you'll find at |/to 0|/tx and |/to 180|/tx degrees. |/to Whose very small and bipolar energy will integrate to zero|/tx . And thus can be completely ignored. These invisible impulses are the key to a seven pulse per quadrant best efficiency magic sinewave being able to reject and zero all the harmonics through the |/to 28th|/tx . Or |/to two|/tx more harmonics than would normally be expected. Because there really are |/to 7-1/2|/tx pulses per quadrant. |h As the amplitudes increase, each of the carrier phase impulses will widen. This widening appears to be somewhat proportional to the |/to sine squared|/tx of the carrier impulse phase angle. The fractional contribution of each carrier phase impulse can be found by summing the squares of the sines of all impulses and dividing. |h Because of |/su Fourier Series|1|/muse90 constant considerations, the sought amplitude will end up as |/to pi/4|/tx or |/to 0.785398163|/tx of the |/to 0|/tx to |/to 1|/tx desired final amplitude. |h As the carrier impulses fatten, they do |/to not|/tx do so linearly. Instead, they will |/to trend |/to downward|/tx at very high amplitudes. Sadly, polynomials directly and accurately synthesizing these curves turn out to be incredibly complex and high order. |h Instead, a "two step" guessing process is made. First a |/to linear expansion|/tx get done based on |/to sine squared|/tx cosine distributions. This is "good enough" for all but the highest amplitudes of certain magic sinewave solutions. |h It is important to note that |/to these first guess angles expand as their cosines and |/to NOT as degrees!|/tx . Because you want just as much energy above the carrier pulse center as below. Should an amplitude fraction of |/to .007|/tx be wanted, you can use\274 |6|/shiftin |/aqua |/burplebox3 |/staytint1 |h starting angle = acos ( cos(center angle) - .007) ending angle |j = acos ( cos(center angle) + .007) |h |1|/shiftout |/black |h Another gotcha is forgetting that JavaScript works in |/to radians|/tx , not |/to degrees|/tx . The conversion constants are\274 |6|/shiftin |/aqua |/burplebox3 |/staytint1 |h radians = degrees * pi/180 degrees = radians * 180/pi |h |1|/shiftout |/black To make sure the highest amplitudes converge, a |/to second guess|/tx can be made that slightly tilts the highest amplitude angles downward\274 ) cl startnewpage /font: /StoneSans-Bold [0.6 0 0 0.6 0 0.4] gonzofont (|6|/shiftin |/aqua |/burplebox2 |/staytint1 |h |/to correction = fudge * (amplitude)^4 * (angle/90) |1|/shiftout |/black |h |1 \274 with a typical |/to fudge|/tx value of |/to .02|/tx or |/to .03|/tx getting subtracted. |h Summarizing, a good guess is made by first linear expanding to the sought amplitude in a sine squared weighted proportion. A second guess then slightly adjusts the highest amplitude values to guarantee convergence. Exact details can be found by using |/to view source|/tx on the |/su calculator demo|1|/demo28a . |h |c Exploring |ja |jTrig |jIdentity |d It turns out the "improver" portion of our two-step algorithm is in fact |/to fully |/to deterministic|/tx when |/to very near|/tx a given |/su Magic Sinewave|1|/magsn01 solution. To understand exactly why this is so, we can look at this |/su trig identity|1|/trigidentity \274 |6|/shiftin |/aqua |/burplebox2 |/staytint1 |h cos(|ja + x|j) = cos|j(|ja|j) cos|j(|jx|j) - sin|j(|ja|j) sin|j(|jx|j) |h |1|/shiftout |/black |h |1This identity is true for all values of |/to a|/tx and |/to x|/tx . Useful simplifications can result if we are in the first quadrant and if |/to a|/tx is much larger than |/to x|/tx . If |/to x|/tx is very nearly zero, its cosine will be close to one and its |/to radian|/tx value will nearly equal its argument. |h Which simplifies to\274 |6|/shiftin |/aqua |/burplebox2 |/staytint1 |h cos(|ja|j+|jx|j)|j approximates |jcos(|ja|j)|j-|jx|jsin(|ja|j) if a >> x |1|/shiftout |/black |h |1This expression |/to exactly|/tx matches that used by |/su Newton's Method|1|/newtonmethod ! Where you make a better approximation to a solution by multiplying its present error by the |/to slope|/tx of the function and add this to the present value. |h |/to Note that the slope of the cosine is minus the sine.|/tx And also that the slope of |/to cos|j(|jnx|j|/tx ) is|/to -|jn|j*|jsin|j(|jnx|j|/tx ). |h It can also be of interest to find an even better approximation. The power |/su series|/sinseries |/su definition|1|/sinseries of sines and cosines are\274 |6|/shiftin |/aqua |/burplebox3 |/staytint1 |h sin(x) |j= x - x|:3|6/3! + x|:5|6/5! - \274 cos(x) = 1 - x|:2|6/2! + x|:4|6/4! - \274 |h |1|/shiftout |/black \274 which, when substituted in the original trig identity gives us a somewhat more precise approximation of\274 ) cl startnewpage (|6|/shiftin |/aqua |/burplebox2 |/staytint1 |h cos(|ja|j+|jx|j) closely equals cos(|ja|j)*(1|j-|jx|:2|6/2 )|j-|jsin(|ja|j)*(x|j-|jx|:3|6/6) |1|/shiftout |/black |h While this result is not needed for our current "improver" algorithm, it may prove highly useful for further refinements. |h |c The "improver" algorithm |d The "improver" algorithm ends up very close to fully deterministic when near a valid |/su Magic Sinewave|1|/magsn01 solution. It is based on taking our initial equations above and |/to substituting|/tx each cosine value with |/to cos|j(|jlastguess + error|j)|/tx . Rearranging constant and variable terms will leave fourteen |/to linear|/tx equations in fourteen unknowns. These are easily and rapidly solved using |/su Gauss Jordan Elimination|1|/gaussjordan . |h As the fundamental amplitude error is treated as an error |/to in the same way|/tx as a nonharmonic zero error, the solution rapidly converges |/to both|/tx on the desired amplitude |/to and|/tx on totally zeroed harmonics. This completely eliminates the small amplitude errors of the |/su previous calculators|1|/magsn01 . And the need for repeat trips. |h A functional and super fast demo Magic Sinewave calculator |/su appears here|1|/demo28a.asp . |h Summarizing our "improver" rules\274 |6|/shiftin |/aqua |/burplebox13 |/staytint1 |h Each cosine term in the basic Magic Sinewave equations gets substituted with cos|j(|jbestguess + error|j) |h This gets approximated by cos(bestguess) - error*slope. Note that the slope of cos(nx) is -n*sin(nx). |h Terms are rearranged, leaving an array of n linear equations in n unknowns. |h The equations are solved, either using Gauss Elimination and back substitution. Or else Gauss-Jordan Elimination. |h Errors are replaced using the cos (|ja+x|j) trig identity. Leaving a very close and nearly deterministic solution. |1|/shiftout |/aqua |/black |h Let's look at some more detail. Our fundamental equation from above was\274 |6|/shiftin |/aqua |/burplebox3 |/staytint1 |h |6 cos|j(|j1*|6p1s )|j-|jcos|j(|j1*|6p1e|j)|j+|j\274|j-|j\274|j+ cos|j(|j1*|6p7s|j)|j-|jcos|j(|j1*|6p7e|j)|j=|jampl|j*|6|jpi/4 |h |1|/shiftout |/aqua |/black |h Replace each cos with a sum of our known guess and unknown error |/to xn|/tx \274 ) cl startnewpage (|6|/shiftin |/aqua |/burplebox4 |/staytint1 |h |6cos|j(p1sg + x1) |j - |6cos|j(p1eg + x2) + |6cos|j(p2sg + x3) |j|j- |6cos|j(p2eg + x4) + \274 + |6cos|j(p7sg + x14) - |6cos|j(p7eg + x14) = ampl|j*|6|jpi/4 |h |1|/shiftout |/aqua |/black |h Assume |/to xn|/tx is very small and substitute its |/to cos (|ja+x|j)|/tx approximation\274 |6|/shiftin |/aqua |/burplebox3 |/staytint1 |h |6cos|j(p1sg) |j|j|j- x1|j*|jsin (p1sg) - |6cos|j(p1eg) + x1|j*|jsin (p1sg) + \274 = ampl|j*|6|jpi/4 |h |1|/shiftout |/aqua |/black |h Note that |/to signs alternate|/tx between starting and ending angles. Since |/to p1xg|/tx is known, its sine and its cosine will be |/to constants|/tx . Change sign and rearrange all constants to the right side of the equation\274 |6|/shiftin |/aqua |/burplebox5 |/staytint1 x1|j*|jsin(p1sg) - x2|j*|jsin(p1eg) + x3|j*|jsin(p2sg) - x4|j*|jsin(p2eg) + \274 - \274 = |h ampl|j*|6|jpi/4 + cos(p1sg) - cos(p1eg) + cos(p2sg) - cos(p2eg) + \274 |h |1|/shiftout |/aqua |/black |h When all constants are substituted and combined, this becomes a fourteen term linear equation of form\274 |6|/shiftin |/aqua |/burplebox2 |/staytint1 |h [j0,0](x1)|j+|j[j0,1](x2)|j+|j[j0,3](x3)|j+|j\274|j+|j[j0,13](x14) = [|jk00|j] |h |1|/shiftout |/aqua |/black |h Solving the harmonic equations are similar noting the slope of |/to cos(nx)|/tx will be |/to -|jn|j*sin(nx)|/tx . Giving us a |/to linear|/tx equation set of 14 variables in 14 unknowns\274 |6|/shiftin |/aqua |/burplebox5 |/staytint1 |h [j0,0](x1) |j+|j[j0,1](x2) |j+|j[j0,3](x3) |j+|j\274|j+|j[j0,13](x14)|j =|j|j[|jk00|j] [j1,0](x1) |j+|j[j1,1](x2) |j+|j[j1,3](x3) |j+|j\274|j+|j[j1,13](x14)|j =|j|j[|jk01|j] . . . . . . . . . . [j13,0](x1)|j+|j[j13,1](x2)|j+|j[j13,3](x3)|j+|j\274|j+|j[j13,13](x14)|j=|j[|jk13|j] |h |1|/shiftout |/aqua |/black |h Which, despite its apparent complexity, can easily be solved by either |/to Gaussian |/to elimination|/tx followed by |/to back substitution|/tx . Or else by |/to Gauss-Jordan elimination|/tx . The latter is preferable when expanding to larger magic sinewave solutions. Once the |/to x|/tx errors are found, they are easily combined with the guess angles using the above exact |/to cos|j(|ja+x|j)|/tx trig identity. |h ) cl startnewpage /tabs [10 17] store (Convergence is amazingly rapid and speed appears at least a thousand times faster than the earlier calculations. Again, a demo can be found |/su here|1|/demo28a.asp . |h |c Some |j Delta |j Friendly |jConsiderations |d |h If three phase loads are to be driven without needing rewiring and using only three half bridge drivers, special |/to delta friendly magic sinewaves|/tx are required. |h These are summarized in |/su this tutorial|1|/deltams1 . |h Known three phase magic sinewave solutions are presently limited to |/to n|j=|j3|/tx , |/to n|j=|j7|/tx , |/to n|j=|j11|/tx , and higher |/to (|j4x + 3|j)|/tx pulses per quadrant. Because |/to all|/tx triad harmonics |/to must|/tx be explicitly cancelled, delta friendly magic sinewaves zero out a fewer number of low harmonics. But their benefits include having to solve only |/to one half|/tx the usual number of linear equations and require only |/to one half|/tx of the data storage. |h For instance, a |/to 7|/tx pulse per quadrant magic sinewave might use seven of its pulse edges to guarantee explicit triad cancellation, one pulse edge (|jused in obscure combination with the others|j) to set the amplitude, and the remaining six edges (|jagain in combination|j) used to zero out harmonics |/to 5|/tx , |/to 7|/tx , |/to 11|/tx , |/to 13|/tx , |/to 17|/tx , and |/to 19|/tx . Since |/to 21|/tx is a triad harmonic and no even harmonics are present, the first uncontrolled harmonic would be the |/to 23rd|/tx . Compared to the |/to 29th|/tx for a single phase, seven pulse best efficiency magic sinewave. |h Again for |/to n=7|/tx , it is convenient to make the controllable edges |/to p4s|/tx , |/to p4e|/tx , |/to p5s|/tx , |/to p6s|/tx , |/to p6e|/tx , |/to p7s|/tx , and |/to p7e|/tx . The other edges |/to must|/tx be forced to obey this rule set\274 |6|/shiftin |/aqua |/burplebox8 |/staytint1 |h p1s = 60 - p5s p1e = p6e - 60 p2s = p7s - 60 p2e = 60 - p4e p3s = 60 - p4s p3e = p7e - 60 p5e = 120 - p6s |h |1|/shiftout |/aqua |/black Instead of the usual |/to 14|/tx equations in |/to 14|/tx unknowns, we should be able to come up with only |/to 7|/tx equations in |/to 7|/tx unknowns instead. With each of the new variables representing a curious |/to vector sum|/tx of the paired original edges\274 |6|/shiftin |/aqua |/burplebox5 |/staytint1 |h cos (1*(p4s-30))* 1.732 |j - cos (1*(p4e-30))* 1.732 + cos (1*(p5s-30))* 1.732 + cos (1*(p6s+30))* 1.732 - cos (1*(p6e-30))* 1.732 + cos (1*(p7s-30))* 1.732 - cos (1*(p6e-30))* 1.732 = amplitude * pi/4 |h |1|/shiftout |/aqua |/black |h ) cl startnewpage (|1Yes, these equations are truly bizarre. A complete derivation is included in the |/su demo|1|/demo28a , which you can access through the usual |/to "view source"|/tx route. |h |/to Note that the fourth term is different from the others|/tx . Because it relates a leading and trailing pulse edge. Also note that |/to 1.732|/tx more precisely is |/to 2*sin(60)|/tx . |h The harmonic equations are similar to the above, except the |/to "1"|/tx gets replaced by the non-triad harmonic numbers of |/to 5|/tx , |/to 7|/tx , |/to 11|/tx , |/to 13|/tx , |/to 17|/tx , and |/to 19|/tx . And |/to the output gets |/to divided by the harmonic number|/tx . Also, the overall harmonic signs invert for |/to 5|/tx , |/to 7|/tx , |/to 17|/tx , and |/to 19|/tx . Thus the equation for |/to 5h|/tx produces |/to minus|/tx the actual fifth harmonic. Once again, a derivation appears in the |/su demo calculator|1|/demo28a . |h |c Calculator |jDesign |jand |jStructure |d The new ultra speed calculators differ dramatically from the earlier versions. Here are some of the key differences\274 |6|/shiftin |/aqua |/burplebox27.5 |h |6|/to "N" INDEPENDENT CODE --|/tx |1 As many of the functions are made as independent of the pulse-per-quadrant and display box counts as possible. This enormously simplifies rewrites for different sizes of magic sinewaves. |h |6|/to NORMALIZATION --|/tx Internal calcs are done with JavaScript preferred radian angles and Fourier rather than absolute amplitudes. Final values are limited to the display only. |h |6|/to ARRAY TECHNIQUES -|/tx A numerically accessed |/to Angles[x]|/tx and a supporting |/to Harms[x]|/tx array eliminates keeping track of fancy variable names and display positions. |h |6|/to CODE SPLITTING - |/tx The code is in two halves, an "analyze" portion that keeps the display happy and the "adjust" portion that provides newer and better values. Central to this is "pivoting" on the |/to Angles[x]|/tx array. Which is the primary link between the two. |h |6|/to EXTENSIVE LOOPING - |/tx Used when and where possible to keep the code compact and to encourage |/to "n"|/tx independence. |h |6|/to IMPROVED GAUSS-JORDAN -|/tx Latest versions of the required |/to n|jx|jn|/tx linear equation solvers are ultra compact, amazingly fast, and fully |/to "n"|/tx independent. |6|/to EXPORT AREAS -|/tx New cut and paste regions can greatly simplify extracting all angles for further use. |h |1|/shiftout |/aqua |/black |h ) cl startnewpage (|c A |jBrief |jGauss-Jordan |jTutorial |d Gaussian elimination is the process of playing around with some array values ahead to time to greatly simplify a final solution. Consider five linear equations in five unknowns... |h|6|/staytint A0*v + B0*w + C0*x +D0*y + E0*z = K0 A1*v + B1*w + C1*x +D1*y + E1*z = K1 A2*v + B2*w + C2*x +D2*y + E2*z = K2 A3*v + B3*w + C3*x +D3*y + E3*z = K3 A4*v + B4*w + C4*x +D4*y + E4*z = K4 |h|1|/black While all sorts of solution methods exist, we seek one that is computationally efficient. If we dink around with some manipulations ahead of time, we can eventually end up with a solution that will be obvious by inspection! |h Arrange the coefficients into a group of arrays... |h|6|/staytint [ A0 B0 C0 D0 E0 K0 ] [ A1 B1 C1 D1 E1 K1 ] [ A2 B2 C2 D2 E2 K2 ] [ A3 B3 C3 D3 E3 K3 ] [ A4 B4 C4 D4 E4 K4 ] |h|1|/black The rules for our "Gauss" part of rearrangement are that |/to any row can be scaled by |/to any constant term by term without changing the results|/tx . And that |/to any row can |/to be subtracted from any other row term by term and substituted|/tx . Again without changing the results. |h In interests of sanity, let |/to "~"|/tx be any coefficient that resulted from any and all previous manipulation. Scale the top row by dividing by its initial value... |h |h|6|/staytint [ 1 ~|j ~|j ~|j ~|j ~ ] [ A1 B1 C1 D1 E1 K1 ] [ A2 B2 C2 D2 E2 K2 ] [ A3 B3 C3 D3 E3 K3 ] [ A4 B4 C4 D4 E4 K4 ] |h|1|/black Scale the top row by A1 and subtract it from the next row down and replacing... |h|6|/staytint [ 1 ~|j ~|j ~|j ~|j ~ ] [ 0 ~|j ~|j ~|j ~|j ~ ] [ A2 B2 C2 D2 E2 K2 ] [ A3 B3 C3 D3 E3 K3 ] [ A4 B4 C4 D4 E4 K4 ] |h|1|/black |1Similarly, scale the top row by A2 and subtract it from the middle row. Then scale by A3 for row 3 and A4 for row4... ) cl startnewpage (|6|/staytint [ 1 ~|j ~|j ~|j ~|j ~ ] [ 0 ~|j ~|j ~|j ~|j ~ ] [ 0 ~|j ~|j ~|j ~|j ~ ] [ 0 ~|j ~|j ~|j ~|j ~ ] [ 0 ~|j ~|j ~|j ~|j ~ ] |h|1|/black Now, scale the |/to second|/tx row down by its first nonzero coefficient... |h|6|/staytint [ 1 ~|j ~|j ~|j ~|j ~ ] [ 0 1|j ~|j ~|j ~|j ~ ] [ 0 ~|j ~|j ~|j ~|j ~ ] [ 0 ~|j ~|j ~|j ~|j ~ ] [ 0 ~|j ~|j ~|j ~|j ~ ] |h|1|/black Next, force zeros in the second column the same as we did with the first, but using the |/to second|/tx row for subtraction and substitution... |h|6|/staytint [ 1 ~|j ~|j ~|j ~|j ~ ] [ 0 1|j ~|j ~|j ~|j ~ ] [ 0 0|j ~|j ~|j ~|j ~ ] [ 0 0|j ~|j ~|j ~|j ~ ] [ 0 0|j ~|j ~|j ~|j ~ ] |h|1|/black Keep working your way through the array, this time scaling the |/to third|/tx row down by its first nonzero term and then using scaled subtractions to zero out everything below in the same column. |h Eventually, you should end up with... |h|6|/staytint [ 1 ~|j ~|j ~|j ~|j ~ ] [ 0 1|j ~|j ~|j ~|j ~ ] [ 0 0|j 1|j ~|j ~|j ~ ] [ 0 0|j 0|j 1|j ~|j ~ ] [ 0 0|j 0|j 0|j 1|j ~ ] |h|1|/black This completes the Gauss part of the process. The lower right squiggle will be |/to z|/tx by inspection! |h Relabel the above array\274 |h|6|/staytint [ 1 |jc01 |jc02 |jc03 |jc04 |jj05 ] [ 0 1 |j|jc12 |jc13 |jc14 |jj15 ] [ 0 0 1 |jc23 |jc24 |jj25 ] [ 0 0 0 1 |jc34 |jj35 ] [ 0 0 0 0 1 z ] |h|1|/black where |/to cxx|/tx is the row and column coefficient for the left side equation terms, and |/to jxx|/tx is the similar row and column coefficient for the right side equation term. |h ) cl startnewpage (|1The traditional way to solve this was by |/to back substitution|/tx . You can start off with |/to y = j35 - z*c34|/tx and so on. And then work your way up a row at a time, making more complex calculations until you have |/to v|/tx through |/to z|/tx all solved. |h The Jordan approach starts off the same way, but |/to it works one column at a time|/tx , greatly simplifying computer programming. Especially when more than one |/to n x n|/tx equation set size is to be accommmodated. The new rule is that |/to any constant can |/to be subtracted from one term in the left side of the equation as long as that |/to same constant get subtracted from the right side of the equation|/tx . |h Subtract |/to z*c34|/tx from row 4... |h|6|/staytint [ 1 |jc01 |jc02 |jc03 |jc04 |jj05 ] [ 0 1 |j|jc12 |jc13 |jc14 |jj15 ] [ 0 0 1 |jc23 |jc24 |jj25 ] [ 0 0 0 1 0 y ] [ 0 0 0 0 1 z ] |h|1|/black So far, this is the same as the usual back substitution. We now can observe |/to y|/tx by inspection The difference with Jordan is to continue by |/to working columns|/tx instead of rows. Modify the rows by subtracting |/to z*c24|/tx , |/to z*c14|/tx , and |/to |/to z*c04|/tx to get... |6|h|/staytint [ 1 |jc01 |jc02 |jc03 |k|k0 |jj05 |k ] [ 0 1 |j|jc12 |jc13 |j0 |jj15 ] [ 0 0 1 |jc23 |j0 |jj25 ] [ 0 0 0 1 0 y ] [ 0 0 0 0 1 z ] |h|1|/black Next, modify column |/to three|/tx by subtracting |/to y*c23|/tx , |/to y*c13|/tx , and |/to y*c03|/tx . And then column |/to two|/tx by subtracting |/to x*c12|/tx and |/to x*c02|/tx . And finally column one by subtracting |/to w*c01|/tx to get\274 |6|h|/staytint [ 1 0 0 0 0 v ] [ 0 1 0 0 0 |kw|k ] [ 0 0 1 0 0 x ] [ 0 0 0 1 0 y ] [ 0 0 0 0 1 z ] |h|1|/black Your values |/to v|/tx through |/to z|/tx are now instantly readable by inspection! |h Once again, the Jordan method takes just as many calculations as does a back substitution, but it greatly simplifies computation. In that loops do not have any multiple calculations or complicated cross-coefficients in them. |h This is especially handy when it comes to making the working code independent of |/to n |/tx . ) cl startnewpage /tabs [14] store (|c A |jCode |jExample |d Here's a JavaScript program that solves |/to n|jx|jn|/tx linear equations. It is amazingly compact, offers |/to 64 bit|/tx arithmetic, and works for most any sane value of n. But it does not yet trap out any div0's or accomodate wildly varying coefficients. |h Here is the main proc... |6|/shiftin |/aqua |/burplebox9 |/staytint1 |h function solveGaussJordan() { gjNsize = eqns.length ; for (var iii = 0; iii <=(gjNsize-1); iii++){ normaLize ( eqns[iii],iii ) ; for (var jjj = iii; jjj <=(gjNsize-2); jjj++) { subScaled (eqns[iii],eqns[(jjj+1)],iii)} } ; normaLize ( eqns [(gjNsize-1)],(gjNsize-1) ) ; jorDanify () } ; |h |1|/shiftout |/aqua |/black |h It needs these three support subs... |6|/shiftin |/aqua |/burplebox14 |/staytint1 |h function normaLize (bb,cc) { xx = bb[cc] ; for (var ii = 0; ii <= gjNsize; ii++) { bb[ii] = (bb[ii]/xx) } } ; |h function subScaled (aa,bb,cc) { xx = bb[cc] ; for (var ii = cc; ii <=gjNsize; ii++) { bb[ii] -= aa[ii] *xx } } ; |h function jorDanify() { for (var i3 = (gjNsize-1); i3 >=1; i3--){ zz = eqns[i3][gjNsize] ; for (var i4 = (i3-1); i4 >=0 ; i4--) eqns[i4][gjNsize] -= eqns [i4][i3]*zz eqns[i4][i3] = 0 } } } ; |h |1|/shiftout |/aqua |/black |h And here is how you would use it... |6|/shiftin |/aqua |/burplebox5.5 |/staytint1 |h eq0 = [ 4, 3, -2, 1 , 22 ] |teq1 = [ 2, 1, -2, 2, 9 ] eq2 = [ 1,-1, 1, 5 , 8 ] |teq3 = [ 3, 1, 3, 1 , 22 ] |h eqns = [ eq0, eq1, eq2, eq3] ; solveGaussJordan () ; |h |1|/shiftout |/aqua |/black ) cl startnewpage (|/to eq0|/tx represents |/to 4w + 3x - 2y + z = 22|/tx . There is an implicit equals sign before the rightmost column. |h Reals as well as integers can be used. Processing time increases sharply with increasing |/to n|/tx . But is well under one second for |/to n = 30|jx|j30|/tx . |h Returned via Gauss-Jordan elimination is ... |6|/shiftin |/aqua |/burplebox5 |/staytint1 |h eq0 = [ 1, 0, 0, 0, w ] eq1 = [ 0, 1, 0, 0, x ] eq2 = [ 0, 0, 1, 0, y ] eq3 = [ 0, 0, 0, 1, z ] |h |1|/shiftout |/aqua |/black ...and for the above example, |/to w|j=|j4|/tx , |/to x|j=|j3|/tx , |/to y|j=|j2|/tx and |/to x|j=|j1|/tx . |h |c For |jAdditional |jAssistance |d Obvious next steps are expanding |/su the calculators|1|/demo28a for other types and orders of magic sinewaves. Of particular interest should be suppressing |/to 1000|/tx or more zeros. Which now should be possible with the dramatic speedups. Also of interest is finding whether in fact a fully deterministic solution can be found. Or an accurate interpolation scheme. |h These further explorations require your participation as a Synergetics |/su partner|1|/msinprop or |/su associate|1|/advt01 . |h To proceed, view the many |/to Magic Sinewave|/tx tutorial files and JavaScript calculators you'll find at |/su http://www.tinaja.com/magsn01.asp|1|/magsn01 . |h Or you can email |/su don@tinaja.com|1|/maildon . Or call |/to (928) 428-4073|/tx . ) cl startnewpage % EOF