# HG changeset patch # User jwe # Date 939707551 0 # Node ID edf6e485228737d7b674c3afc29b1d9a39f37a2d # Parent b9a024ee031236fd4c3ec33e271a649c3fed4855 [project @ 1999-10-12 05:49:45 by jwe] diff --git a/scripts/control/sysmin.m b/scripts/control/sysmin.m new file mode 100644 --- /dev/null +++ b/scripts/control/sysmin.m @@ -0,0 +1,80 @@ +function [retsys,nc,no,cflg,oflg] = sysmin(sys,flg); + # [retsys,nc,no] = sysmin(sys{,flg}); + # return a minimal (or reduced order) system + # inputs: + # sys: system data structure + # flg: 0 [default] return minimal system; state names lost + # : 1 return system with physical states removed that + # are either uncontrollable or unobservable + # (cannot reduce further without discarding physical + # meaning of states) + # outputs: + # retsys: returned system + # nc: number of controllable states in the returned system + # no: number of observable states in the returned system + # cflg: is_controllable(retsys) + # oflg: is_observable(retsys) + + switch(nargin) + case(1), flg = 0; + case(2), jnk = flg; # dummy operation + otherwise, + usage("[retsys,nc,no] = sysmin(sys{,flg})"); + endswitch + dflg = is_digital(sys,flg); + Ts = sysgettsam(sys); + switch(flg) + case(0), + # reduce to a minimal system + [aa,bb,cc,dd] = sys2ss(sys); + [cflg,Uc] = is_controllable(aa,bb); + if(!cflg) + # reduce to controllable states + if(!isempty(Uc)) + aa = Uc'*aa*Uc; + bb = Uc'*bb; + cc = cc*Uc; + else + aa = bb = cc = []; + endif + endif + if(!isempty(aa)) + [oflg,Uo] = is_observable(aa,cc); + if(!oflg) + if(!isempty(Uo)) + aa = Uo'*aa*Uo; + bb = Uo'*bb; + cc = cc*Uo; + else + aa = bb = cc = []; + endif + endif + endif + switch(dflg) + case(0), + nc = no = nn = columns(aa); + nz = 0; + case(1), + nc = no = nz = columns(aa); + nn = 0; + endswitch + inname = sysgetsignals(sys,"in"); + outname= sysgetsignals(sys,"out"); + retsys = ss2sys(aa,bb,cc,dd,Ts,nn,nz,[],inname,outname); + case(1), + # reduced model with physical states + [cflg,Uc] = is_controllable(sys); xc = find(max(abs(Uc')) != 0); + [oflg,Uo] = is_observable(sys); xo = find(max(abs(Uo')) != 0); + xx = intersection(xc,xo); + if(isempty(xx)) xx = 0; endif # signal no states in reduced model + retsys = sysprune(sys,[],[],xx); + otherwise, + error("illegal value of flg=%d",flg); + endswitch + if(sysdimensions(retsys,"st") > 0) + [cflg,Uc] = is_controllable(retsys); nc = columns(Uc); + [oflg,Uo] = is_observable(retsys); no = columns(Uo); + else + nc = no = 0; + endif +endfunction diff --git a/scripts/finance/Makefile.in b/scripts/finance/Makefile.in new file mode 100644 --- /dev/null +++ b/scripts/finance/Makefile.in @@ -0,0 +1,75 @@ + +# Makefile for octave's scripts/finance directory +# +# John W. Eaton +# jwe@bevo.che.wisc.edu +# University of Wisconsin-Madison +# Department of Chemical Engineering + +TOPDIR = ../.. + +script_sub_dir = finance + +srcdir = @srcdir@ +top_srcdir = @top_srcdir@ +VPATH = @srcdir@ + +include $(TOPDIR)/Makeconf + +INSTALL = @INSTALL@ +INSTALL_PROGRAM = @INSTALL_PROGRAM@ +INSTALL_DATA = @INSTALL_DATA@ + +SOURCES = *.m + +DISTFILES = Makefile.in $(SOURCES) + +FCN_FILES = $(wildcard $(srcdir)/*.m) +FCN_FILES_NO_DIR = $(notdir $(FCN_FILES)) + +BINDISTFILES = $(FCN_FILES) + +all: +.PHONY: all + +install install-strip: + $(top_srcdir)/mkinstalldirs $(fcnfiledir)/$(script_sub_dir) + for f in $(FCN_FILES_NO_DIR); do \ + rm -f $(fcnfiledir)/$(script_sub_dir)/$$f; \ + $(INSTALL_DATA) $(srcdir)/$$f $(fcnfiledir)/$(script_sub_dir)/$$f; \ + done +.PHONY: install install-strip + +uninstall: + for f in $(FCN_FILES_NO_DIR); \ + do rm -f $(fcnfiledir)/$(script_sub_dir)/$$f; \ + done +.PHONY: uninstall + +clean: +.PHONY: clean + +tags: $(SOURCES) + ctags $(SOURCES) + +TAGS: $(SOURCES) + etags $(SOURCES) + +mostlyclean: clean +.PHONY: mostlyclean + +distclean: clean + rm -f Makefile +.PHONY: distclean + +maintainer-clean: distclean + rm -f tags TAGS +.PHONY: maintainer-clean + +dist: + ln $(DISTFILES) ../../`cat ../../.fname`/scripts/finance +.PHONY: dist + +bin-dist: + ln $(BINDISTFILES) ../../`cat ../../.fname`/scripts/finance +.PHONY: bin-dist diff --git a/scripts/general/randperm.m b/scripts/general/randperm.m new file mode 100644 --- /dev/null +++ b/scripts/general/randperm.m @@ -0,0 +1,40 @@ +## Copyright (C) 1998 John W. Eaton +## +## This file is part of Octave. +## +## Octave is free software; you can redistribute it and/or modify it +## under the terms of the GNU General Public License as published by +## the Free Software Foundation; either version 2, or (at your option) +## any later version. +## +## Octave is distributed in the hope that it will be useful, but +## WITHOUT ANY WARRANTY; without even the implied warranty of +## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +## General Public License for more details. +## +## You should have received a copy of the GNU General Public License +## along with Octave; see the file COPYING. If not, write to the Free +## Software Foundation, 59 Temple Place - Suite 330, Boston, MA +## 02111-1307, USA. + +## usage: randperm (N) +## +## Return a row vector containing a random permutation of the +## integers from 1 to N. + +## Author: "James R. Van Zandt" +## Adapted-By: jwe + +function retval = randperm (n) + + if (nargin == 1 && is_scalar (n) && floor (n) == n) + if (n > 0) + [junk, retval] = sort (rand (1, n)); + else + error ("randperm: argument must be positive"); + endif + else + usage ("randperm (n)"); + endif + +endfunction diff --git a/scripts/miscellaneous/pack.m b/scripts/miscellaneous/pack.m new file mode 100644 --- /dev/null +++ b/scripts/miscellaneous/pack.m @@ -0,0 +1,29 @@ +## Copyright (C) 1999 John W. Eaton +## +## This file is part of Octave. +## +## Octave is free software; you can redistribute it and/or modify it +## under the terms of the GNU General Public License as published by +## the Free Software Foundation; either version 2, or (at your option) +## any later version. +## +## Octave is distributed in the hope that it will be useful, but +## WITHOUT ANY WARRANTY; without even the implied warranty of +## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +## General Public License for more details. +## +## You should have received a copy of the GNU General Public License +## along with Octave; see the file COPYING. If not, write to the Free +## Software Foundation, 59 Temple Place - Suite 330, Boston, MA +## 02111-1307, USA. + +## usage: pack +## +## This function is provided for compatibility with Matlab, but it +## doesn't actually do anything. + +## Author: jwe + +function pack () + +endfunction diff --git a/scripts/quaternion/quaternion.ps b/scripts/quaternion/quaternion.ps new file mode 100644 --- /dev/null +++ b/scripts/quaternion/quaternion.ps @@ -0,0 +1,8786 @@ +%!PS (but not EPSF; comments have been disabled) +%DVIPSCommandLine: dvips tmp -o quaternion.ps +%DVIPSParameters: dpi=600, compressed, comments removed +%DVIPSSource: TeX output 1998.10.23:1515 +/TeXDict 250 dict def TeXDict begin /N{def}def /B{bind def}N /S{exch}N +/X{S N}B /TR{translate}N /isls false N /vsize 11 72 mul N /hsize 8.5 72 +mul N /landplus90{false}def /@rigin{isls{[0 landplus90{1 -1}{-1 1} +ifelse 0 0 0]concat}if 72 Resolution div 72 VResolution div neg scale +isls{landplus90{VResolution 72 div vsize mul 0 exch}{Resolution -72 div +hsize mul 0}ifelse TR}if Resolution VResolution vsize -72 div 1 add mul +TR[matrix currentmatrix{dup dup round sub abs 0.00001 lt{round}if} +forall round exch round exch]setmatrix}N /@landscape{/isls true N}B +/@manualfeed{statusdict /manualfeed true put}B /@copies{/#copies X}B +/FMat[1 0 0 -1 0 0]N /FBB[0 0 0 0]N /nn 0 N /IE 0 N /ctr 0 N /df-tail{ +/nn 8 dict N nn begin /FontType 3 N /FontMatrix fntrx N /FontBBox FBB N +string /base X array /BitMaps X /BuildChar{CharBuilder}N /Encoding IE N +end dup{/foo setfont}2 array copy cvx N load 0 nn put /ctr 0 N[}B /df{ +/sf 1 N /fntrx FMat N df-tail}B /dfs{div /sf X /fntrx[sf 0 0 sf neg 0 0] +N df-tail}B /E{pop nn dup definefont setfont}B /ch-width{ch-data dup +length 5 sub get}B /ch-height{ch-data dup length 4 sub get}B /ch-xoff{ +128 ch-data dup length 3 sub get sub}B /ch-yoff{ch-data dup length 2 sub +get 127 sub}B /ch-dx{ch-data dup length 1 sub get}B /ch-image{ch-data +dup type /stringtype ne{ctr get /ctr ctr 1 add N}if}B /id 0 N /rw 0 N +/rc 0 N /gp 0 N /cp 0 N /G 0 N /sf 0 N /CharBuilder{save 3 1 roll S dup +/base get 2 index get S /BitMaps get S get /ch-data X pop /ctr 0 N ch-dx +0 ch-xoff ch-yoff ch-height sub ch-xoff ch-width add ch-yoff +setcachedevice ch-width ch-height true[1 0 0 -1 -.1 ch-xoff sub ch-yoff +.1 sub]/id ch-image N /rw ch-width 7 add 8 idiv string N /rc 0 N /gp 0 N +/cp 0 N{rc 0 ne{rc 1 sub /rc X rw}{G}ifelse}imagemask restore}B /G{{id +gp get /gp gp 1 add N dup 18 mod S 18 idiv pl S get exec}loop}B /adv{cp +add /cp X}B /chg{rw cp id gp 4 index getinterval putinterval dup gp add +/gp X adv}B /nd{/cp 0 N rw exit}B /lsh{rw cp 2 copy get dup 0 eq{pop 1}{ +dup 255 eq{pop 254}{dup dup add 255 and S 1 and or}ifelse}ifelse put 1 +adv}B /rsh{rw cp 2 copy get dup 0 eq{pop 128}{dup 255 eq{pop 127}{dup 2 +idiv S 128 and or}ifelse}ifelse put 1 adv}B /clr{rw cp 2 index string +putinterval adv}B /set{rw cp fillstr 0 4 index getinterval putinterval +adv}B /fillstr 18 string 0 1 17{2 copy 255 put pop}for N /pl[{adv 1 chg} +{adv 1 chg nd}{1 add chg}{1 add chg nd}{adv lsh}{adv lsh nd}{adv rsh}{ +adv rsh nd}{1 add adv}{/rc X nd}{1 add set}{1 add clr}{adv 2 chg}{adv 2 +chg nd}{pop nd}]dup{bind pop}forall N /D{/cc X dup type /stringtype ne{] +}if nn /base get cc ctr put nn /BitMaps get S ctr S sf 1 ne{dup dup +length 1 sub dup 2 index S get sf div put}if put /ctr ctr 1 add N}B /I{ +cc 1 add D}B /bop{userdict /bop-hook known{bop-hook}if /SI save N @rigin +0 0 moveto /V matrix currentmatrix dup 1 get dup mul exch 0 get dup mul +add .99 lt{/QV}{/RV}ifelse load def pop pop}N /eop{SI restore userdict +/eop-hook known{eop-hook}if showpage}N /@start{userdict /start-hook +known{start-hook}if pop /VResolution X /Resolution X 1000 div /DVImag X +/IE 256 array N 0 1 255{IE S 1 string dup 0 3 index put cvn put}for +65781.76 div /vsize X 65781.76 div /hsize X}N /p{show}N /RMat[1 0 0 -1 0 +0]N /BDot 260 string N /rulex 0 N /ruley 0 N /v{/ruley X /rulex X V}B /V +{}B /RV statusdict begin /product where{pop product dup length 7 ge{0 7 +getinterval dup(Display)eq exch 0 4 getinterval(NeXT)eq or}{pop false} +ifelse}{false}ifelse end{{gsave TR -.1 .1 TR 1 1 scale rulex ruley false +RMat{BDot}imagemask grestore}}{{gsave TR -.1 .1 TR rulex ruley scale 1 1 +false RMat{BDot}imagemask grestore}}ifelse B /QV{gsave newpath transform +round exch round exch itransform moveto rulex 0 rlineto 0 ruley neg +rlineto rulex neg 0 rlineto fill grestore}B /a{moveto}B /delta 0 N /tail +{dup /delta X 0 rmoveto}B /M{S p delta add tail}B /b{S p tail}B /c{-4 M} +B /d{-3 M}B /e{-2 M}B /f{-1 M}B /g{0 M}B /h{1 M}B /i{2 M}B /j{3 M}B /k{ +4 M}B /w{0 rmoveto}B /l{p -4 w}B /m{p -3 w}B /n{p -2 w}B /o{p -1 w}B /q{ +p 1 w}B /r{p 2 w}B /s{p 3 w}B /t{p 4 w}B /x{0 S rmoveto}B /y{3 2 roll p +a}B /bos{/SS save N}B /eos{SS restore}B end +TeXDict begin /SDict 200 dict N SDict begin /@SpecialDefaults{/hs 612 N +/vs 792 N /ho 0 N /vo 0 N /hsc 1 N /vsc 1 N /ang 0 N /CLIP 0 N /rwiSeen +false N /rhiSeen false N /letter{}N /note{}N /a4{}N /legal{}N}B +/@scaleunit 100 N /@hscale{@scaleunit div /hsc X}B /@vscale{@scaleunit +div /vsc X}B /@hsize{/hs X /CLIP 1 N}B /@vsize{/vs X /CLIP 1 N}B /@clip{ +/CLIP 2 N}B /@hoffset{/ho X}B /@voffset{/vo X}B /@angle{/ang X}B /@rwi{ +10 div /rwi X /rwiSeen true N}B /@rhi{10 div /rhi X /rhiSeen true N}B +/@llx{/llx X}B /@lly{/lly X}B /@urx{/urx X}B /@ury{/ury X}B /magscale +true def end /@MacSetUp{userdict /md known{userdict /md get type +/dicttype eq{userdict begin md length 10 add md maxlength ge{/md md dup +length 20 add dict copy def}if end md begin /letter{}N /note{}N /legal{} +N /od{txpose 1 0 mtx defaultmatrix dtransform S atan/pa X newpath +clippath mark{transform{itransform moveto}}{transform{itransform lineto} +}{6 -2 roll transform 6 -2 roll transform 6 -2 roll transform{ +itransform 6 2 roll itransform 6 2 roll itransform 6 2 roll curveto}}{{ +closepath}}pathforall newpath counttomark array astore /gc xdf pop ct 39 +0 put 10 fz 0 fs 2 F/|______Courier fnt invertflag{PaintBlack}if}N +/txpose{pxs pys scale ppr aload pop por{noflips{pop S neg S TR pop 1 -1 +scale}if xflip yflip and{pop S neg S TR 180 rotate 1 -1 scale ppr 3 get +ppr 1 get neg sub neg ppr 2 get ppr 0 get neg sub neg TR}if xflip yflip +not and{pop S neg S TR pop 180 rotate ppr 3 get ppr 1 get neg sub neg 0 +TR}if yflip xflip not and{ppr 1 get neg ppr 0 get neg TR}if}{noflips{TR +pop pop 270 rotate 1 -1 scale}if xflip yflip and{TR pop pop 90 rotate 1 +-1 scale ppr 3 get ppr 1 get neg sub neg ppr 2 get ppr 0 get neg sub neg +TR}if xflip yflip not and{TR pop pop 90 rotate ppr 3 get ppr 1 get neg +sub neg 0 TR}if yflip xflip not and{TR pop pop 270 rotate ppr 2 get ppr +0 get neg sub neg 0 S TR}if}ifelse scaleby96{ppr aload pop 4 -1 roll add +2 div 3 1 roll add 2 div 2 copy TR .96 dup scale neg S neg S TR}if}N /cp +{pop pop showpage pm restore}N end}if}if}N /normalscale{Resolution 72 +div VResolution 72 div neg scale magscale{DVImag dup scale}if 0 setgray} +N /psfts{S 65781.76 div N}N /startTexFig{/psf$SavedState save N userdict +maxlength dict begin /magscale true def normalscale currentpoint TR +/psf$ury psfts /psf$urx psfts /psf$lly psfts /psf$llx psfts /psf$y psfts +/psf$x psfts currentpoint /psf$cy X /psf$cx X /psf$sx psf$x psf$urx +psf$llx sub div N /psf$sy psf$y psf$ury psf$lly sub div N psf$sx psf$sy +scale psf$cx psf$sx div psf$llx sub psf$cy psf$sy div psf$ury sub TR +/showpage{}N /erasepage{}N /copypage{}N /p 3 def @MacSetUp}N /doclip{ +psf$llx psf$lly psf$urx psf$ury currentpoint 6 2 roll newpath 4 copy 4 2 +roll moveto 6 -1 roll S lineto S lineto S lineto closepath clip newpath +moveto}N /endTexFig{end psf$SavedState restore}N /@beginspecial{SDict +begin /SpecialSave save N gsave normalscale currentpoint TR +@SpecialDefaults count /ocount X /dcount countdictstack N}N /@setspecial +{CLIP 1 eq{newpath 0 0 moveto hs 0 rlineto 0 vs rlineto hs neg 0 rlineto +closepath clip}if ho vo TR hsc vsc scale ang rotate rwiSeen{rwi urx llx +sub div rhiSeen{rhi ury lly sub div}{dup}ifelse scale llx neg lly neg TR +}{rhiSeen{rhi ury lly sub div dup scale llx neg lly neg TR}if}ifelse +CLIP 2 eq{newpath llx lly moveto urx lly lineto urx ury lineto llx ury +lineto closepath clip}if /showpage{}N /erasepage{}N /copypage{}N newpath +}N /@endspecial{count ocount sub{pop}repeat countdictstack dcount sub{ +end}repeat grestore SpecialSave restore end}N /@defspecial{SDict begin} +N /@fedspecial{end}B /li{lineto}B /rl{rlineto}B /rc{rcurveto}B /np{ +/SaveX currentpoint /SaveY X N 1 setlinecap newpath}N /st{stroke SaveX +SaveY moveto}N /fil{fill SaveX SaveY moveto}N /ellipse{/endangle X +/startangle X /yrad X /xrad X /savematrix matrix currentmatrix N TR xrad +yrad scale 0 0 1 startangle endangle arc savematrix setmatrix}N end +TeXDict begin 40258431 52099146 1000 600 600 (tmp.dvi) +@start /Fa 1 1 df<007FB712FCB812FEA26C16FC2F047A943C>0 +D E /Fb 3 123 df<90391F801F8090397FE07FE09039E0F0E0703A01C0F9C0F8390380 +7D833807007F000E1403000C15F0001C137E0018EC01C002FEC7FC00385B1210C7FC1301 +5CA31303A25C1640010714E016C0001C5B007E1401010F148000FE1403011FEB0700011B +130E39F839F01C397070F878393FE07FE0390F801F8025227EA02C>120 +D<13F0D803FCEB01C0D8071EEB03E0D80E1F1307121C003813800030140F013F14C00070 +1300126049131FD8E07E14801240EA00FE49133F000115005BA25D0003147E5BA215FE5D +5BA214015DEBF00314070001130F3900F83FF0EB3FFBEB0FC3EB00075DA20007130FD81F +805B003F495AA24AC7FCEB007E003E137C00385B381803F0381E07C0D807FFC8FCEA01F8 +23317EA026>I<903807800390381FE00790383FF00690387FF80E9038FFFC1C48EBFE78 +9038E03FF03803800190C712E0EC01C0C7EA0380EC0700140E143C14705C495A495A49C7 +FC130E133C0170130C49131C484813184848133848C71278D80EC013F0380FFE03391F3F +FFE0D8381F13C0486C1380D86007130038E003FE38C000F020227DA024>I +E /Fc 26 123 df<123C127EB4FCA21380A2127F123D1201A412031300A25A1206120E12 +0C121C5A5A126009177A8715>44 DI<123C127E12FFA4127E12 +3C08087A8715>I<90381FE00390387FFC0748B5FC3907F01FCF390F8003FF48C7FC003E +80814880A200788000F880A46C80A27E92C7FC127F13C0EA3FF013FF6C13F06C13FF6C14 +C06C14F0C680013F7F01037F9038003FFF140302001380157F153FED1FC0150F12C0A215 +07A37EA26CEC0F80A26C15006C5C6C143E6C147E01C05B39F1FC03F800E0B512E0011F13 +8026C003FEC7FC22377CB42B>83 D97 D99 +D<153FEC0FFFA3EC007F81AEEB07F0EB3FFCEBFC0F3901F003BF3907E001FF48487E4848 +7F8148C7FCA25A127E12FEAA127E127FA27E6C6C5BA26C6C5B6C6C4813803A03F007BFFC +3900F81E3FEB3FFCD90FE0130026357DB32B>III<151F90 +391FC07F809039FFF8E3C03901F07FC73907E03F033A0FC01F83809039800F8000001F80 +EB00074880A66C5CEB800F000F5CEBC01F6C6C48C7FCEBF07C380EFFF8380C1FC0001CC9 +FCA3121EA2121F380FFFFEECFFC06C14F06C14FC4880381F0001003EEB007F4880ED1F80 +48140FA56C141F007C15006C143E6C5C390FC001F83903F007E0C6B51280D91FFCC7FC22 +337EA126>II +I108 +D<2703F01FE013FF00FF90267FF80313C0903BF1E07C0F03E0903BF3803E1C01F02807F7 +003F387FD803FE1470496D486C7EA2495CA2495CB3486C496C487EB53BC7FFFE3FFFF0A3 +3C217EA041>I<3903F01FC000FFEB7FF09038F1E0FC9038F3807C3907F7007EEA03FE49 +7FA25BA25BB3486CEB7F80B538C7FFFCA326217EA02B>II<3903F03F8000FFEBFFE09038F3C0F89038F7007ED807FE +7F6C48EB1F804914C049130F16E0ED07F0A3ED03F8A9150716F0A216E0150F16C06D131F +6DEB3F80160001FF13FC9038F381F89038F1FFE0D9F07FC7FC91C8FCAA487EB512C0A325 +307EA02B>I<3803E07C38FFE1FF9038E38F809038E71FC0EA07EEEA03ECA29038FC0F80 +49C7FCA35BB2487EB512E0A31A217FA01E>114 DI<1330A51370A313F0A21201A212031207381FFFFEB5FCA23803F000 +AF1403A814073801F806A23800FC0EEB7E1CEB1FF8EB07E0182F7FAD1E>IIIII<3A7FFF807FF8A33A07F8001FC00003EC0F800001EC070015066C6C5BA26D13 +1C017E1318A26D5BA2EC8070011F1360ECC0E0010F5BA2903807E180A214F3010390C7FC +14FBEB01FEA26D5AA31478A21430A25CA214E05CA2495A1278D8FC03C8FCA21306130EEA +701CEA7838EA1FF0EA0FC025307F9F29>I<003FB512F0A2EB000F003C14E00038EB1FC0 +0030EB3F800070137F1500006013FE495A13035CC6485A495AA2495A495A49C7FC153013 +FE485A12035B48481370485A001F14604913E0485A387F000348130F90B5FCA21C207E9F +22>I E /Fd 1 106 df<1338137CA2137813701300A7EA0780EA1FC0EA38E01230EA60F0 +EAC1E0A3EA03C0A3EA0780A2EA0F0013041306EA1E0CA21318121CEA1E70EA0FE0EA0780 +0F237DA116>105 D E /Fe 2 51 df<13E01201120712FF12F91201B3A7487EB512C0A2 +12217AA01E>49 DI E +/Ff 4 64 df0 D<130C131EA50060EB01800078130739FC0C0F +C0007FEB3F80393F8C7F003807CCF83801FFE038007F80011EC7FCEB7F803801FFE03807 +CCF8383F8C7F397F0C3F8000FCEB0FC039781E078000601301000090C7FCA5130C1A1D7C +9E23>3 D14 D<4A7E1403B3B3A6007FB712FEB8FC7E2F +2E7CAD38>63 D E /Fg 14 119 df<147E49B47E903907C1C38090391F80EFC090383F00 +FF017E137F4914804848133F485AA248481400120F5B001F5C157E485AA215FE007F5C90 +C7FCA21401485C5AA21403EDF0385AA21407EDE078020F1370127C021F13F0007E013F13 +E0003E137FECF3E1261F01E313C03A0F8781E3803A03FF00FF00D800FC133E252977A72E +>97 D99 D101 D +103 D<1478EB01FCA21303A314F8EB00E01400AD137C48B4FC38038F80EA0707000E13C0 +121E121CEA3C0F1238A2EA781F00701380A2EAF03F140012005B137E13FE5BA212015BA2 +12035B1438120713E0000F1378EBC070A214F0EB80E0A2EB81C01383148038078700EA03 +FEEA00F8163E79BC1C>105 D<1507ED1FC0A2153FA31680ED0E0092C7FCADEC07C0EC3F +F0EC78F8ECE07CEB01C01303EC807EEB0700A2010E13FE5D131E131CEB3C01A201005BA2 +1403A25DA21407A25DA2140FA25DA2141FA25DA2143FA292C7FCA25CA2147EA214FEA25C +A213015CA2121C387F03F012FF495A5C495A4848C8FCEAF83EEA707CEA3FF0EA0FC02250 +83BC1C>I110 +DI<027E1360903901FF81E0903807C1C390391F80E7C0 +90383F00F7017E137F5B4848EB3F80485AA2485A000F15005B121F5D4848137EA3007F14 +FE90C75AA3481301485CA31403485CA314074A5A127C141F007E133F003E495A14FF381F +01EF380F879F3903FF1F80EA00FC1300143F92C7FCA35C147EA314FE5CA21301130390B5 +12F05AA2233A77A72A>113 DIII<137C48B414 +1C26038F80137EEA0707000E7F001E15FE121CD83C0F5C12381501EA781F007001805BA2 +D8F03F1303140000005D5B017E1307A201FE5C5B150F1201495CA2151F0003EDC1C04914 +81A2153F1683EE0380A2ED7F07000102FF13005C01F8EBDF0F00009038079F0E90397C0F +0F1C90391FFC07F8903907F001F02A2979A731>I<017CEB01C048B4EB07F038038F80EA +0707000E01C013F8121E001C1403EA3C0F0038EC01F0A2D8781F130000705BA2EAF03F91 +C712E012005B017E130116C013FE5B1503000115805BA2ED07001203495B150EA25DA25D +1578000114706D5B0000495A6D485AD97E0FC7FCEB1FFEEB03F0252979A72A>I +E /Fh 12 123 df<123C127EB4FCA21380A2127F123D1201A312031300A25A1206120E5A +5A5A126009157A8714>59 D<000FB8FCA23B1FC003F8003F0100151F001C4A130E123C00 +3801071406123000704A130EA20060010F140C12E0485CA2141FC715005DA2143FA292C8 +FCA25CA2147EA214FEA25CA21301A25CA21303A25CA21307A25C130F131F001FB512F0A2 +302D7FAC29>84 D96 D<13F8121FA21201A25BA21203A25BA2 +1207A25BA2120FEBC7E0EB9FF8EBB83C381FF01EEBE01F13C09038800F80EA3F00A2123E +A2007E131FA2127CA2143F00FC14005AA2147EA2147C14FC5C387801F01303495A383C0F +806C48C7FCEA0FFCEA03F0192F7DAD1E>98 D101 D<157C4AB4FC913807C380EC0F87150FEC1F1FA391383E0E +0092C7FCA3147E147CA414FC90383FFFF8A2D900F8C7FCA313015CA413035CA413075CA5 +130F5CA4131F91C8FCA4133EA3EA383C12FC5BA25B12F0EAE1E0EA7FC0001FC9FC213D7C +AE22>I<1307EB0F80EB1FC0A2EB0F80EB070090C7FCA9EA01E0EA07F8EA0E3CEA1C3E12 +3812301270EA607EEAE07C12C013FC485A120012015B12035BA21207EBC04014C0120F13 +801381381F01801303EB0700EA0F06131EEA07F8EA01F0122E7EAC18>105 +D<90387C01F89038FE07FE3901CF8E0F3A03879C0780D907B813C0000713F000069038E0 +03E0EB0FC0000E1380120CA2D8081F130712001400A249130F16C0133EA2017EEB1F80A2 +017C14005D01FC133E5D15FC6D485A3901FF03E09038FB87C0D9F1FFC7FCEBF0FC000390 +C8FCA25BA21207A25BA2120FA2EAFFFCA2232B829D24>112 D<3807C01F390FF07FC039 +1CF8E0E0383879C138307B8738707F07EA607E13FC00E0EB03804848C7FCA2128112015B +A21203A25BA21207A25BA2120FA25BA2121FA290C8FC120E1B1F7E9D20>114 +D<013F137C9038FFC1FF3A01C1E383803A0380F703C0390700F60F000E13FE4813FC1218 +0038EC0700003049C7FCA2EA200100005BA313035CA301075B5D14C000385CD87C0F1306 +00FC140E011F130C011B131C39F03BE038D8707113F0393FE0FFC0260F803FC7FC221F7E +9D28>120 DI<011E1330EB3F809038FFC07048EBE0E0ECF1C03803C0FF9038803F80903800070048 +130EC75A5C5C5C495A495A49C7FC131E13385B491340484813C0485A38070001000EEB03 +80380FE007391FF81F0038387FFF486C5A38601FFC38E00FF038C003C01C1F7D9D21>I +E /Fi 27 106 df<1430147014E0EB01C01303EB0780EB0F00A2131E5BA25B13F85B1201 +5B1203A2485AA3485AA3121F90C7FCA25AA3123EA2127EA6127C12FCB3A2127C127EA612 +3EA2123FA37EA27F120FA36C7EA36C7EA212017F12007F13787FA27F7FA2EB0780EB03C0 +1301EB00E0147014301462738226>0 D<12C07E12707E123C7E7EA26C7E6C7EA26C7E7F +12007F1378137CA27FA37FA31480130FA214C0A31307A214E0A6130314F0B3A214E01307 +A614C0A2130FA31480A2131F1400A3133EA35BA2137813F85B12015B485AA2485A48C7FC +A2121E5A12385A5A5A14627C8226>I<12F0B3B3B2043674811C>12 +D<00F01378B3B3B2153674812E>I<151E153E157C15F8EC01F0EC03E01407EC0FC0EC1F +8015005C147E5CA2495A495AA2495AA2495AA2495AA249C7FCA2137EA213FE5B12015BA2 +12035BA21207A25B120FA35B121FA45B123FA548C8FCA912FEB3A8127FA96C7EA5121F7F +A4120F7FA312077FA21203A27F1201A27F12007F137EA27FA26D7EA26D7EA26D7EA26D7E +A26D7E6D7EA2147E80801580EC0FC0EC07E01403EC01F0EC00F8157C153E151E1F947182 +32>16 D<12F07E127C7E7E6C7E7F6C7E6C7E12017F6C7E137EA27F6D7EA26D7EA26D7EA2 +6D7EA26D7EA26D7EA280147E147F80A21580141FA215C0A2140F15E0A3140715F0A41403 +15F8A5EC01FCA9EC00FEB3A8EC01FCA9EC03F8A515F01407A415E0140FA315C0141FA215 +80A2143F1500A25C147E14FE5CA2495AA2495AA2495AA2495AA2495AA249C7FC137EA25B +485A5B1203485A485A5B48C8FC123E5A5A5A1F947D8232>I<160F161F163E167C16F8ED +01F0ED03E0ED07C0150FED1F801600153E157E5D4A5A5D14034A5A5D140F4A5AA24AC7FC +143E147E5CA2495AA2495AA2495AA2130F5CA2495AA2133F91C8FCA25B137E13FEA25B12 +01A25B1203A35B1207A35B120FA35BA2121FA45B123FA690C9FC5AAA12FEB3AC127FAA7E +7FA6121F7FA4120FA27FA312077FA312037FA312017FA212007FA2137E137F7FA280131F +A26D7EA2801307A26D7EA26D7EA26D7EA2147E143E143F6E7EA26E7E1407816E7E140181 +6E7E157E153E811680ED0FC01507ED03E0ED01F0ED00F8167C163E161F160F28C66E823D +>I<12F07E127C7E7E6C7E6C7E6C7E7F6C7E1200137C137E7F6D7E130F806D7E1303806D +7EA26D7E147C147E80A26E7EA26E7EA26E7EA2811403A26E7EA2811400A281157E157FA2 +811680A2151F16C0A3150F16E0A3150716F0A31503A216F8A4150116FCA6150016FEAA16 +7FB3AC16FEAA16FC1501A616F81503A416F0A21507A316E0150FA316C0151FA31680153F +A216005DA2157E15FE5DA214015DA24A5AA214075DA24A5AA24A5AA24AC7FCA2147E147C +14FC495AA2495A5C1307495A5C131F49C8FC137E137C5B1201485A5B485A485A48C9FC12 +3E5A5A5A28C67E823D>I32 D<12F07E127C7E123F7E6C7E6C7E6C7E7F12 +016C7E7F137E133E133F6D7E130F806D7EA26D7E80130180130080147E147F8081141F81 +140F81140781A2140381140181A2140081A2157FA36F7EA382151FA282150FA3821507A3 +82A21503A282A31501A282A31500A382A482A21780A7163F17C0AC161F17E0B3B3A217C0 +163FAC1780167FA71700A25EA45EA31501A35EA21503A35EA21507A25EA3150F5EA3151F +5EA2153F5EA34BC7FCA315FEA25D1401A25D14035D1407A25D140F5D141F5D143F92C8FC +5C147E14FE5C13015C13035C495AA2495A5C131F49C9FC133E137E5B5B485A12035B485A +485A48CAFC5A123E5A5A5A2BF87E8242>III<177C17FCEE01F8A2EE03F0EE07E0EE0FC0A2EE1F80EE3F005E16 +7E5E15015E15034B5A5E150F5E151F4B5AA24BC7FCA215FEA24A5AA24A5AA24A5AA2140F +5D141F5D143F5DA2147F92C8FC5CA25C13015C1303A25C1307A3495AA3495AA3133F5CA3 +137F5CA313FF91C9FCA35A5BA31203A25BA31207A35BA3120FA45BA2121FA65BA2123FA8 +5BA2127FAE5B12FFB3A62E95688149>48 D<12F87E127EA27E6C7E6C7EA26C7E6C7E7F12 +016C7E7F137E137F6D7E131F80130F806D7EA26D7EA26D7EA26D7EA2147FA26E7EA28114 +1F81140F811407A281140381A2140181140081A28182A36F7EA36F7EA382150FA3821507 +A3821503A3821501A382A281A31780A3167FA317C0A4163FA217E0A6161FA217F0A8160F +A217F8AE160717FCB3A62E957E8149>III<12FCB3B3B3B3B3B3B3B0B6 +12F0A61C94668237>II<12FCB3B3B006 +34668037>I<12FCB3B3B006346A8037>I64 DIII80 D104 DI E /Fj 65 123 df<121C127FEAFF80B3EA7F00B2123EC7FCA8121C127FA2EAFF +80A3EA7F00A2121C09396DB830>33 D<00101304007C131F00FEEB3F80A26C137FA24813 +3FB2007E1400007C7F003C131E00101304191C75B830>I<903907C007C0A2496C487EA8 +011F131FA202C05BA3007FB7FCA2B81280A36C16006C5D3A007F807F80A2020090C7FCA9 +495BA2003F90B512FE4881B81280A36C1600A22701FC01FCC7FCA300031303A201F85BA7 +6C486C5AA229387DB730>I37 D39 +D<141E147F14FF5BEB03FEEB07FCEB0FF0EB1FE0EB3FC0EB7F80EBFF00485A5B12035B48 +5A120F5BA2485AA2123F5BA2127F90C7FCA412FEAD127FA47F123FA27F121FA26C7EA27F +12076C7E7F12017F6C7EEB7F80EB3FC0EB1FE0EB0FF0EB07FCEB03FEEB01FF7F147F141E +184771BE30>I<127812FE7E7F6C7E6C7EEA0FF06C7E6C7E6C7E6C7EEB7F80133F14C013 +1FEB0FE014F01307A2EB03F8A214FC1301A214FE1300A4147FAD14FEA4130114FCA21303 +14F8A2EB07F0A2130F14E0EB1FC0133F1480137FEBFF00485A485A485A485AEA3FE0485A +485A90C7FC5A1278184778BE30>I<14E0497E497EA60038EC0380007EEC0FC0D8FF83EB +3FE001C3137F9038F3F9FF267FFBFB13C06CB61280000FECFE00000314F86C5C6C6C13C0 +011F90C7FC017F13C048B512F04880000F14FE003FECFF80267FFBFB13C026FFF3F913E0 +9038C3F87F0183133FD87E03EB0FC00038EC0380000091C7FCA66D5A6D5A23277AAE30> +I<143EA2147FAF007FB7FCA2B81280A36C1600A2C76CC8FCAF143EA229297DAF30>II<007FB612F0A2B712F8A36C15 +F0A225077B9E30>I<120FEA3FC0EA7FE0A2EAFFF0A4EA7FE0A2EA3FC0EA0F000C0C6E8B +30>I<16F01501ED03F8A21507A2ED0FF0A2ED1FE0A2ED3FC0A2ED7F80A2EDFF00A24A5A +A25D1403A24A5AA24A5AA24A5AA24A5AA24A5AA24AC7FCA2495AA25C1303A2495AA2495A +A2495AA2495AA2495AA249C8FCA2485AA25B1203A2485AA2485AA2485AA2485AA2485AA2 +48C9FCA25AA2127CA225477BBE30>I<14FE903807FFC0497F013F13F8497F90B57E48EB +83FF4848C6138049137F4848EB3FC04848EB1FE049130F001F15F0491307A24848EB03F8 +A290C712014815FCA400FEEC00FEAD6C14016C15FCA36D1303003F15F8A26D1307001F15 +F0A26D130F6C6CEB1FE0A26C6CEB3FC06C6CEB7F806D13FF2601FF8313006CEBFFFE6D5B +6D5B010F13E06D5BD900FEC7FC273A7CB830>IIIII<000FB612804815C05AA316800180C8FCAEEB83FF019F13C090B512F015FC81 +81D9FE0313809039F0007FC049133F0180EB1FE06CC7120F000E15F0C81207A216F81503 +A31218127EA2B4FC150716F048140F6C15E06C141F6DEB3FC06D137F3A3FE001FF80261F +FC0F13006CB55A6C5C6C5C6C14E06C6C1380D90FFCC7FC25397BB730>II<127CB7 +12FC16FEA416FC48C7EA0FF816F0ED1FE0007CEC3FC0C8EA7F80EDFF00A24A5A4A5A5D14 +075D140F5D4A5AA24A5AA24AC7FCA25C5C13015CA213035CA213075CA4495AA6131F5CA9 +6D5A6DC8FC273A7CB830>I<49B4FC011F13F0017F13FC90B57E0003ECFF804815C04801 +0113E03A1FF8003FF049131FD83FC0EB07F8A24848EB03FC90C71201A56D1303003F15F8 +6D13076C6CEB0FF06C6CEB1FE0D807FCEB7FC03A03FF83FF806C90B512006C6C13FC011F +13F0497F90B512FE48802607FE0013C0D80FF8EB3FE0D81FE0EB0FF04848EB07F8491303 +007F15FC90C712014815FE481400A66C14016C15FC6D1303003F15F86D1307D81FF0EB1F +F06D133F3A0FFF01FFE06C90B512C06C1580C6ECFE006D5B011F13F0010190C7FC273A7C +B830>I<49B4FC010F13E0013F13F890B57E4880488048010113803A0FFC007FC0D81FF0 +EB3FE04848131F49EB0FF048481307A290C7EA03F85A4815FC1501A416FEA37E7E6D1303 +15076C7E6C6C130F6D133FD80FFC13FF6CB6FC7E6C14FE6C14F9013FEBE1FC010F138190 +380060011400ED03F8A2150716F0150F000F15E0486C131F486CEB3FC0157FEDFF804A13 +00EC07FE391FF01FFC90B55A6C5C6C5C6C1480C649C7FCEB3FF0273A7CB830>I<120FEA +3FC0EA7FE0A2EAFFF0A4EA7FE0A2EA3FC0EA0F00C7FCAF120FEA3FC0EA7FE0A2EAFFF0A4 +EA7FE0A2EA3FC0EA0F000C276EA630>II<007FB7FCA2 +B81280A36C16006C5DCBFCA7003FB612FE4881B81280A36C1600A229157DA530>61 +D<1278127EB4FC13C07FEA7FF813FEEA1FFF6C13C000037F6C13F86C6C7EEB1FFF6D7F01 +0313E06D7F9038007FFC6E7E91380FFF806E13C0020113F080ED3FF8151F153FEDFFF05C +020713C04A138091383FFE004A5A903801FFF0495B010F13804990C7FCEB7FFC48485A48 +13E0000F5B4890C8FCEA7FFE13F8EAFFE05B90C9FC127E1278252F7BB230>I<147F4A7E +A2497FA4497F14F7A401077F14E3A3010F7FA314C1A2011F7FA490383F80FEA590387F00 +7FA4498049133F90B6FCA34881A39038FC001F00038149130FA4000781491307A2D87FFF +EB7FFFB56CB51280A46C496C130029397DB830>65 D<007FB7FCB81280A47ED803F8C712 +3FA8EE1F0093C7FCA4157C15FEA490B5FCA6EBF800A4157C92C8FCA5EE07C0EE0FE0A900 +7FB7FCB8FCA46C16C02B387EB730>69 D<3B3FFF800FFFE0486D4813F0B56C4813F8A26C +496C13F06C496C13E0D803F8C7EAFE00B290B6FCA601F8C7FCB3A23B3FFF800FFFE0486D +4813F0B56C4813F8A26C496C13F06C496C13E02D387FB730>72 D77 DI<90383FFFE048 +B512FC000714FF4815804815C04815E0EBF80001E0133FD87F80EB0FF0A290C71207A448 +15F8481403B3A96C1407A26C15F0A36D130FA26D131F6C6CEB3FE001F813FF90B6FC6C15 +C06C15806C1500000114FCD8003F13E0253A7BB830>I<90390FF803C0D97FFF13E048B5 +12C74814F74814FF5A381FF80F383FE001497E4848137F90C7123F5A48141FA2150FA37E +ED07C06C91C7FC7F7FEA3FF0EA1FFEEBFFF06C13FF6C14E0000114F86C80011F13FF0103 +1480D9003F13C014019138007FE0151FED0FF0A2ED07F8A2007C140312FEA56C140716F0 +7F6DEB0FE06D131F01F8EB3FC001FF13FF91B51280160000FD5CD8FC7F13F8D8F81F5BD8 +78011380253A7BB830>83 D<003FB712C04816E0B8FCA43AFE003F800FA8007CED07C0C7 +91C7FCB3B1011FB5FC4980A46D91C7FC2B387EB730>I<007FB5FCB61280A4150048C8FC +B3B3B3A5B6FC1580A46C140019476DBE30>91 D<127CA212FEA27EA26C7EA26C7EA26C7E +A26C7EA26C7EA26C7EA212017FA26C7EA26D7EA26D7EA26D7EA26D7EA26D7EA26D7EA213 +0180A26D7EA26E7EA26E7EA26E7EA26E7EA26E7EA26E7EA2140181A26E7EA2ED7F80A2ED +3FC0A2ED1FE0A2ED0FF0A2ED07F8A21503A2ED01F0150025477BBE30>I<007FB5FCB612 +80A47EC7123FB3B3B3A5007FB5FCB6FCA46C140019477DBE30>I<007FB612F0A2B712F8 +A36C15F0A225077B7D30>95 D97 DII<913801FFE04A7F5CA28080EC0007AAEB03FE90 +381FFF874913E790B6FC5A5A481303380FFC00D81FF0133F49131F485A150F4848130790 +C7FCA25AA25AA87E6C140FA27F003F141F6D133F6C7E6D137F390FF801FF2607FE07EBFF +C06CB712E06C16F06C14F76D01C713E0011F010313C0D907FCC8FC2C397DB730>I<49B4 +FC010713E0011F13F8017F7F90B57E488048018113803A07FC007FC04848133FD81FE0EB +1FE0150F484814F0491307127F90C7FCED03F85A5AB7FCA516F048C9FC7E7EA27F003FEC +01F06DEB03F86C7E6C7E6D1307D807FEEB1FF03A03FFC07FE06C90B5FC6C15C0013F1480 +6DEBFE00010713F8010013C0252A7CA830>IIII<14E0EB03F8A2497EA36D5A +A2EB00E091C8FCA9381FFFF8487F5AA27E7EEA0001B3A9003FB612C04815E0B7FCA27E6C +15C023397AB830>III<387FFFF8B5 +7EA47EEA0001B3B3A8007FB612F0B712F8A46C15F025387BB730>I<02FC137E3B7FC3FF +01FF80D8FFEF01877F90B500CF7F15DF92B57E6C010F13872607FE07EB03F801FC13FE90 +39F803FC01A201F013F8A301E013F0B3A23C7FFE0FFF07FF80B548018F13C0A46C486C01 +071380322881A730>II<49B4FC010F13E0013F13F8 +497F90B57E0003ECFF8014013A07FC007FC04848EB3FE0D81FE0EB0FF0A24848EB07F849 +1303007F15FC90C71201A300FEEC00FEA86C14016C15FCA26D1303003F15F86D13076D13 +0F6C6CEB1FF06C6CEB3FE06D137F3A07FF01FFC06C90B512806C15006C6C13FC6D5B010F +13E0010190C7FC272A7CA830>II<49B413F8010FEBC1FC013F13F14913FD48B6FC5A481381390FFC007F49131F4848 +130F491307485A491303127F90C7FC15015A5AA77E7E15037FA26C6C1307150F6C6C131F +6C6C133F01FC137F3907FF01FF6C90B5FC6C14FD6C14F9013F13F1010F13C1903803FE01 +90C7FCAD92B512F84A14FCA46E14F82E3C7DA730>II<90381FFC1E48B512 +9F000714FF5A5A5A387FF007EB800100FEC7FC4880A46C143E007F91C7FC13E06CB4FC6C +13FC6CEBFF806C14E0000114F86C6C7F01037F9038000FFF02001380007C147F00FEEC1F +C0A2150F7EA27F151F6DEB3F806D137F9039FC03FF0090B6FC5D5D00FC14F0D8F83F13C0 +26780FFEC7FC222A79A830>III<3B3FFFC07FFF80486DB512C0B5 +15E0A26C16C06C496C13803B01F80003F000A26D130700005DA26D130F017E5CA2017F13 +1F6D5CA2EC803F011F91C7FCA26E5A010F137EA2ECE0FE01075BA214F101035BA3903801 +FBF0A314FF6D5BA36E5A6E5A2B277EA630>I<3B3FFFC01FFFE0486D4813F0B515F8A26C +16F06C496C13E0D807E0C7EA3F00A26D5C0003157EA56D14FE00015DEC0F80EC1FC0EC3F +E0A33A00FC7FF1F8A2147DA2ECFDF9017C5C14F8A3017E13FBA290393FF07FE0A3ECE03F +A2011F5C90390F800F802D277FA630>I<3A3FFF81FFFC4801C37FB580A26C5D6C01815B +C648C66CC7FC137FEC80FE90383F81FC90381FC3F8EB0FE3ECE7F06DB45A6D5B7F6D5B92 +C8FC147E147F5C497F81903803F7E0EB07E790380FE3F0ECC1F890381F81FC90383F80FE +90387F007E017E137F01FE6D7E48486D7E267FFF80B5FCB500C1148014E3A214C16C0180 +140029277DA630>I<3B3FFFC07FFF80486DB512C0B515E0A26C16C06C496C13803B01FC +0003F000A2000014076D5C137E150F017F5C7F151FD91F805BA214C0010F49C7FCA214E0 +0107137EA2EB03F0157C15FCEB01F85DA2EB00F9ECFDF0147D147FA26E5AA36E5AA35DA2 +143F92C8FCA25C147EA2000F13FE486C5AEA3FC1EBC3F81387EB8FF0EBFFE06C5B5C6C90 +C9FC6C5AEA01F02B3C7EA630>I<001FB612FC4815FE5AA316FC90C7EA0FF8ED1FF0ED3F +E0ED7FC0EDFF80003E491300C7485A4A5A4A5A4A5A4A5A4A5A4A5A4990C7FC495A495A49 +5A495A495A495A4948133E4890C7127F485A485A485A485A485A48B7FCB8FCA46C15FE28 +277DA630>I E /Fk 5 53 df<156015F0A24A7E4A7EA24A7E1406EC0E7F140C91381C3F +8014184A6C7E150F02607F150702C07F1503D901807F1501D903007F496D7E1306010E14 +7F130C011C6E7E131801386E7E1330496E7E160749811603484881160148C87F486F7E12 +06000E167F120C001CEE3F801218003FB812C0A24817E0A2B912F0342F7DAE3B>1 +D<130C133C137CEA03FC12FFEAFC7C1200B3B113FE387FFFFEA2172C7AAB23>49 +DII<140EA2141E143EA2147E14FEA2EB01BE13 +03143E1306130E130C131813381330136013E013C0EA0180120313001206120E120C5A12 +3812305A12E0B612FCA2C7EA3E00A9147F90381FFFFCA21E2D7EAC23>I +E /Fl 13 121 df<007FB812FEBAFCA26C17FE3804799847>0 D<121EEA7F80A2EAFFC0 +A4EA7F80A2EA1E000A0A799B19>I<0060166000F816F06C1501007E15036CED07E06C6C +EC0FC06C6CEC1F806C6CEC3F006C6C147E6C6C5C6C6C495A017E495A6D495A6D6C485A6D +6C485A6D6C48C7FC903803F07E6D6C5A903800FDF8EC7FF06E5A6E5AA24A7E4A7EECFDF8 +903801F8FC903803F07E49487E49486C7E49486C7E49486C7E017E6D7E496D7E48486D7E +4848147E4848804848EC1F804848EC0FC048C8EA07E0007EED03F0481501481500006016 +602C2C73AC47>I25 D<19301978A2197C193CA2193E191EA2191F +737EA2737E737EA2737E737E1A7C1A7EF21F80F20FC0F207F0007FBB12FCBDFCA26C1AFC +CDEA07F0F20FC0F21F80F27E001A7C624F5A4F5AA24F5A4F5AA24FC7FC191EA2193E193C +A2197C1978A2193050307BAE5B>33 D<0203B512F8023F14FC91B6FC010315F8D90FFEC8 +FCEB1FE0EB7F8001FEC9FCEA01F8485A485A485A5B48CAFCA2123EA25AA21278A212F8A2 +5AA2B812F817FCA217F800F0CAFCA27EA21278A2127CA27EA27EA26C7E7F6C7E6C7E6C7E +EA00FEEB7F80EB1FE0EB0FFE0103B612F8010015FC143F020314F82E3679B13D>50 +D<1718173C177CA217F8A2EE01F0A2EE03E0A2EE07C0160F1780EE1F00A2163EA25EA25E +A24B5AA24B5AA24B5AA24B5AA24BC7FCA2153E157E157C5DA24A5AA24A5AA24A5AA24A5A +A24AC8FCA2143EA25CA25C13015C495AA2495AA2495AA249C9FCA2133EA25BA25BA2485A +A2485AA2485A120F5B48CAFCA2123EA25AA25AA25A12602E5474C000>54 +D<146014F01301A214E01303A214C01307A2EB0F80A214005BA2131E133EA25BA2137813 +F8A25B1201A25B1203A2485AA25B120FA290C7FC5AA2123EA2123C127CA2127812F8A412 +78127CA2123C123EA27EA27E7FA212077FA26C7EA212017FA212007FA21378137CA27FA2 +131E131FA27F1480A2EB07C0A2130314E0A2130114F0A213001460145A77C323>104 +D<126012F07EA21278127CA2123C123EA27EA27E7FA212077FA26C7EA212017FA212007F +A21378137CA27FA2131E131FA27F1480A2EB07C0A2130314E0A2130114F0A414E01303A2 +14C01307A2EB0F80A214005BA2131E133EA25BA2137813F8A25B1201A25B1203A2485AA2 +5B120FA290C7FC5AA2123EA2123C127CA2127812F8A25A1260145A7BC323>I<126012F0 +B3B3B3B3B11260045B76C319>I<0060131800F0133CB3B3B3B3B000601318165A75C32D> +I<1A061A0F1A1FA21A3EA21A7CA21AF8A2F101F0A2F103E0A2F107C0A2F10F80A2F11F00 +A2193EA261A261A24E5AA24E5AA24E5AA24E5AA24EC7FCA2183EA260A260A24D5AA24D5A +133801F85E486C15071203D80FFE4B5A121D00394CC8FCEAF1FF00C0163EC67F017F5D80 +013F5D80011F4A5A80010F4A5A8001074A5AA26E495A13036E49C9FC13016E133E7F6F5A +147F6F5A143FEDE1F0141FEDE3E015F391380FF7C015FF6E5BA26E90CAFCA26E5AA26E5A +A215781570485B7A834C>112 D120 +D E /Fm 29 119 df12 +D46 +D +49 DII<163FA25E5E5D5DA25D5D +5D5DA25D92B5FCEC01F7EC03E7140715C7EC0F87EC1F07143E147E147C14F8EB01F0EB03 +E0130714C0EB0F80EB1F00133E5BA25B485A485A485A120F5B48C7FC123E5A12FCB91280 +A5C8000F90C7FCAC027FB61280A531417DC038>I<0007150301E0143F01FFEB07FF91B6 +FC5E5E5E5E5E16804BC7FC5D15E092C8FC01C0C9FCAAEC3FF001C1B5FC01C714C001DF14 +F09039FFE03FFC9138000FFE01FC6D7E01F06D13804915C0497F6C4815E0C8FC6F13F0A3 +17F8A4EA0F80EA3FE0487E12FF7FA317F05B5D6C4815E05B007EC74813C0123E003F4A13 +80D81FC0491300D80FF0495AD807FEEBFFFC6CB612F0C65D013F1480010F01FCC7FC0101 +13C02D427BC038>I65 D68 D77 D<923807FFC092B512FE0207ECFFC0021F15F091267FFE +0013FC902601FFF0EB1FFF010701C0010713C04990C700017F49486E7F49486F7E49486F +7E49486F7E48496F7E48496F1380A248496F13C0A24819E091C97E4819F0A248487013F8 +A3007F19FCA249177FA300FF19FEAD007F19FCA36D17FF003F19F8A3001F19F06D5EA26C +19E06E01FE5B6C912603FF8014C06C6D486D4813804B13E06C9028E01F83F00F13006C90 +3BF01E00F81FFE90267FF83E90387C3FFC90263FFC3C6D485AD91FFE91381EFFF0D90FFF +021F5B6D01FE5D010194C7FC6D6D6CB45A023F90B512F8020703E0130202006F13070307 +13C792C7EA07F8716C130F72131F9538FF80FF96B5FC7114FEA3831AFCA27213F81AF084 +7213E07213C0721300F001FC48587AC454>81 D<003FBA12E0A59026FE000FEB8003D87F +E09338003FF049171F90C71607A2007E1803007C1801A300781800A400F819F8481978A5 +C81700B3B3A20107B8FCA545437CC24E>84 D<903801FFE0011F13FE017F6D7E48B612E0 +3A03FE007FF84848EB1FFC6D6D7E486C6D7EA26F7FA36F7F6C5A6C5AEA00F090C7FCA402 +03B5FC91B6FC1307013F13F19038FFFC01000313E0000F1380381FFE00485A5B127F5B12 +FF5BA35DA26D5B6C6C5B4B13F0D83FFE013EEBFFC03A1FFF80FC7F0007EBFFF86CECE01F +C66CEB8007D90FFCC9FC322F7DAD36>97 D99 +DIII<137C48B4FC48 +13804813C0A24813E0A56C13C0A26C13806C1300EA007C90C7FCAAEB7FC0EA7FFFA51203 +7EB3AFB6FCA518467CC520>105 D108 D<90277F8007FEEC0FFCB590263FFFC090387FFF8092B5D8F001B512E002816E +4880913D87F01FFC0FE03FF8913D8FC00FFE1F801FFC0003D99F009026FF3E007F6C019E +6D013C130F02BC5D02F86D496D7EA24A5D4A5DA34A5DB3A7B60081B60003B512FEA5572D +7CAC5E>I<90397F8007FEB590383FFF8092B512E0028114F8913987F03FFC91388F801F +000390399F000FFE6C139E14BC02F86D7E5CA25CA35CB3A7B60083B512FEA5372D7CAC3E +>II<90397FC00FF8B590B5 +7E02C314E002CF14F89139DFC03FFC9139FF001FFE000301FCEB07FF6C496D13804A15C0 +4A6D13E05C7013F0A2EF7FF8A4EF3FFCACEF7FF8A318F017FFA24C13E06E15C06E5B6E49 +13806E4913006E495A9139DFC07FFC02CFB512F002C314C002C091C7FCED1FF092C9FCAD +B67EA536407DAC3E>II<90387F807FB53881FFE0028313F0028F13F8ED8FFC91389F1FFE000313BE6C13BC +14F8A214F0ED0FFC9138E007F8ED01E092C7FCA35CB3A5B612E0A5272D7DAC2E>I<9039 +1FFC038090B51287000314FF120F381FF003383FC00049133F48C7121F127E00FE140FA2 +15077EA27F01E090C7FC13FE387FFFF014FF6C14C015F06C14FC6C800003806C15806C7E +010F14C0EB003F020313E0140000F0143FA26C141F150FA27EA26C15C06C141FA26DEB3F +8001E0EB7F009038F803FE90B55A00FC5CD8F03F13E026E007FEC7FC232F7CAD2C>IIII E /Fn 24 118 df<1530157015E0EC03C0EC0780EC +0F00141E5C147C5C5C495A1303495A5C130F49C7FCA2133E137E137C13FC5B1201A2485A +A25B1207A2485AA3485AA448C8FCA45A127EA512FE5AA95AA87EA2127CA5123C123EA212 +1EA2121F7EA26C7EA26C7EA26C7E120013707FA213181C5A74C323>40 +D<497E806D7E1470147880A280A280A2EC0780A215C01403A215E0A3EC01F0A615F8AF14 +0315F0A5140715E0A4140F15C0A3141F1580A3EC3F00A2143E147EA2147C14FC5C13015C +13035C13075C495AA249C7FC131E133E5B13785B485A485A12075B000EC8FC5A5A12F05A +1D5A7FC323>I<121EEA3F80EA7FC012FFA41380EA7F00123C0A0A788919>46 +D<157015F014011407143F903803FFE0137FEBFFCFEBF80F1300141F15C0A5143F1580A5 +147F1500A55C5CA513015CA513035CA513075CA5130F5CA3131F497EB612F8A31D3D78BC +2D>49 D56 DI<13F0EA01FC1203EA07FEA313FCA2EA03F8EA01E0C7FCB3121EEA +3F80EA7FC012FFA41380EA7F00123C0F2778A619>I<17E016011603831607A2160FA216 +1F83163FA2167F167716F7EEE7FCED01E316C3150316831507EE03FEED0F01150E151E15 +1C153C03387FED7800157015F05D4A4880177F4A5AA24AC7FCA2020E81173F5C021FB6FC +5CA20270C7EA3FE0171F5CA2495AA2494881170F49C8FCA2130EA24982013C1507A2137C +D801FE4B7E2607FF80EC3FFEB500F00107B512FC19F85E3E417DC044>65 +D<013FB5D8F807B6FC04F015FEA29026007FF0C7380FFE006E486E5AA24B5DA4180F147F +4B5DA4181F14FF92C85BA4183F5B4A5EA491B8FC5B6102FCC8127FA318FF13074A93C7FC +A45F130F4A5DA41703131F4A5DA41707133F4A5DA3017F150F496C4A7EB6D8E01FB512FC +6115C0483E7DBD44>72 D<011FB512FC5BA29039003FF8006E5AA25DA5143F5DA5147F5D +A514FF92C7FCA55B5CA513035CA513075CA5130F5CA5131F5CA3133F497E007FB512F0A2 +B6FC263E7EBD21>I<923803FF80031F13F09238FE01FE913903F8003FDA0FE0EB1FC0DA +3F806D7E4AC7EA03F0D901FC8149486E7E49486E7E010F82494881494816804948ED3FC0 +13FF91C9FC484817E00003171F5B000718F0A2485AA2485A19F8123FA25B127FA219F048 +48163FA519E0187F5BA219C018FF1980A24D1300A24D5A6C7E4D5A60003F160F037C5C6C +6C48B4495A913A0783803FC0000F90260E01C05B9026F00C0049C7FC0007011CEBE0FE26 +03F818EB61FCD801FCEC73F8D800FEEC77F0017FEC7FC0D93F985CD90FFC01FEC8FC9027 +03FE07F813030100B5FC91260FFC3C5B91C7FC180E163E181E043F137CEF81FC17FF60A2 +60A2705B60705B7048C7FCEE01F83D5276BF47>81 D<9239FF8003800207EBF007021F90 +38FC0F0091387F00FE02FCEB1F1FD903F0EB07BF49486DB4FC49487F4A6D5A49C8FC4915 +7E133E137E173E49153CA57F1738A26D92C7FC808080EB7FFEECFFE06D13FEEDFFC06D14 +F06D14FC010380010080143F020380DA003F7F15031500707E163F161FA2160F121CA316 +07160F003C5EA35F003E151F94C7FC007E5D007F153E6D5C16FC01E0495AD87DF0495AD8 +FCFCEB0FC03AF87F803F8027F01FFFFEC8FCD8E00713F839C0007FC031427BBF33>83 +D97 +D99 DII<1478EB01FE130314FFA25B14 +FE130314FCEB00F01400ACEB03F8EA01FF14F0A2EA001F130FA314E0A5131F14C0A5133F +1480A5137F1400A55B5BA4EA03FF007F13F0A2B5FC183E7DBD1A>105 +D<143FEB1FFF5BA213017FA214FEA5130114FCA5130314F8A5130714F0A5130F14E0A513 +1F14C0A5133F1480A5137F1400A55B5BA4EA03FF007F13F8A2B5FC183F7DBE1A>108 +D<903907F007F8D803FFEB1FFF9139E0781FC09138E1E00F3B001FE38007E090380FE700 +02EE14F014FC14D814F85CA24A130F131F4A14E0A4161F133F4A14C0A4163F137F91C713 +80A4167F5B491500A300015D486C491380B5D8F87F13FCA32E287DA733>110 +DI<903907F01F80D803FFEB7FE09138E1E1F09138E387F83900 +1FE707EB0FE614EE02FC13F002D813E09138F801804AC7FCA25C131FA25CA4133F5CA513 +7F91C8FCA55B5BA31201487EB512FEA325287EA724>114 D<9138FF81C0010713E39038 +1F807F90397C003F8049131F4848130F5B00031407A248481400A27FA27F6D90C7FCEBFF +8014FC6C13FF6C14C015F06C6C7F011F7F13079038007FFE1403140100381300157EA212 +3C153E157E007C147CA2007E147815F8007F495A4A5A486C485A26F9E01FC7FC38E0FFFC +38C01FE0222A7DA824>II<01FE +147F00FFEC7FFF4914FEA20007140300031401A34914FCA4150312074914F8A41507120F +4914F0A4150F121F4914E0A2151FA3153F4914C0157F15FFEC01DF3A0FC003BFE0913807 +3FFF3803F01E3801FFF826003FE01380282977A733>I E /Fo 27 +123 df<15FCEC03FF91380F87C091383E03E0EC7C0102F813F01301903903F000F8495A +010F14FC5C495A133F91C7FC4914FE13FEA212015B12034913011207A25B000F15FC1503 +121F5BA21507003F15F890B6FCA33A7FC0000FF05BA2151F16E048C7FCA2ED3FC0A24815 +80157F1600A215FEA24A5AA24A5A007E5C14075D4A5A003E5C141F4AC7FC6C137E5C380F +81F03807C3E03801FF80D8007EC8FC27417DBF2B>18 D32 D<18E00130ED03F80170ED07FC13F0485A5B1203491503000716 +0148CAFC187C120E121E001C173C003C021C14380038147EA20078177803FE147000705C +A218F04A4814E000F01601A24BEB03C0A24BEB07800203140F6C0107EC1F00173E6CD91F +F0137E007C013F5C007E90397FF803F83B7F83FFFE1FF0263FFFFCB5FC4A14C06C496C5B +6C01C091C7FC6C9038001FFCD801FCEB07E036297FA739>I39 D<121EEA7F80A2EAFFC0A4EA7F80A2EA1E000A0A7989 +19>58 D<121EEA7F8012FF13C0A213E0A3127FEA1E601200A413E013C0A3120113801203 +13005A120E5A1218123812300B1C798919>I61 D<49B612C05BA2D90001EB800093 +C7FC5DA314035DA314075DA3140F5DA3141F5DA3143F5DA3147F5DA314FF92C8FCA35B5C +A313035CA313075CA3130F5CA3131F5CA2133FA25CEBFFE0B612E0A32A3E7DBD28>73 +D<49B77E18F818FFD90001D900017F9438003FE04BEC0FF0727E727E14034B6E7EA30207 +825DA3020F4B5A5DA24E5A141F4B4A5A614E5A023F4B5A4B4A5A06FEC7FCEF03FC027FEC +0FF04BEBFF8092B500FCC8FC5F9139FF8001FE92C7EA7F80EF1FC084496F7E4A1407A284 +13035CA2170F13075C60171F130F5CA3011F033F5B4AEE038018E0013F17071A004A021F +5B496C160EB600E090380FF01E05075B716C5ACBEAFFE0F03F8041407DBD45>82 +D97 +DIIII<143C14FEA21301A314FCEB00 +701400AD137E3801FF803803C7C0EA0703000F13E0120E121C13071238A2EA780F007013 +C0A2EAF01F14801200133F14005B137EA213FE5BA212015B0003130E13F0A20007131EEB +E01CA2143CEBC0381478147014E013C13803E3C03801FF00EA007C173E7EBC1F>105 +DI +I110 DI<91381F80 +0C9138FFE01C903903F0707C90390FC0387890391F801CF890383F000F137E4914F00001 +1407485A485A16E0485A121F150F484814C0A3007F141F491480A300FF143F90C71300A3 +5D48147EA315FE007E495A1403A26C13074A5A381F801D000F13793807C1F33901FFC3F0 +38007F03130014075DA3140F5DA3141F5DA2143F147F90381FFFFE5BA2263A7DA729> +113 DII<147014FC1301A25CA21303A25CA21307A25CA2 +130FA25CA2007FB512F0B6FC15E039001F8000133FA291C7FCA25BA2137EA213FEA25BA2 +1201A25BA21203A25BA21207EC01C013E01403000F1480A2EBC0071500140E141E5C0007 +13385C3803E1E03801FF80D8003EC7FC1C3A7EB821>I<017E147848B4EB01FC2603C7C0 +13FED807031303000F13E0120E121C0107130100381400167ED8780F143E00705B161EEA +F01F4A131C1200133F91C7123C16385B137E167801FE14705B16F016E0120149EB01C0A2 +ED0380A2ED0700A20000140E5D6D133C017C5B6D5B90381F03C0903807FF80D901FCC7FC +27297EA72C>118 D120 D<137C48B4EC03802603C7C0EB0FC0EA070300 +0F7F000E151F001C168013071238163FD8780F150000705BA2D8F01F5C4A137E1200133F +91C712FE5E5B137E150113FE495CA2150300015D5BA215075EA2150F151F00005D6D133F +017C137F017E13FF90393F03DF8090380FFF1FEB01FC90C7123F93C7FCA25DD80380137E +D80FE013FE001F5C4A5AA24848485A4A5A6CC6485A001C495A001E49C8FC000E137C3807 +81F03803FFC0C648C9FC2A3B7EA72D>I<02F8130ED903FE131ED90FFF131C49EB803C49 +EBC0784914F090397E07F1E09038F800FF49EB1FC049EB07800001EC0F006C48131E90C7 +5A5D5D4A5A4A5A4A5A4AC7FC143E14785C495A495A495A49C8FC011E14E05B5B49130148 +48EB03C0485AD807F8EB078048B4131F3A1F87E07F00391E03FFFE486C5B00785CD87000 +5B00F0EB7FC048011FC7FC27297DA72A>I E /Fp 18 121 df<157815FC14031407141F +14FF130F0007B5FCB6FCA2147F13F0EAF800C7FCB3B3B3A6007FB712FEA52F4E76CD43> +49 D<932601FFFCEC01C0047FD9FFC013030307B600F81307033F03FE131F92B8EA803F +0203DAE003EBC07F020F01FCC7383FF0FF023F01E0EC0FF94A01800203B5FC494848C9FC +4901F8824949824949824949824949824990CA7E494883A2484983485B1B7F485B481A3F +A24849181FA3485B1B0FA25AA298C7FC5CA2B5FCAE7EA280A2F307C07EA36C7FA21B0F6C +6D1980A26C1A1F6C7F1C006C6D606C6D187EA26D6C606D6D4C5A6D6D16036D6D4C5A6D6D +4C5A6D01FC4C5A6D6DEE7F806D6C6C6C4BC7FC6E01E0EC07FE020F01FEEC1FF80203903A +FFE001FFF0020091B612C0033F93C8FC030715FCDB007F14E0040101FCC9FC525479D261 +>67 D73 +D<93380FFFC00303B6FC031F15E092B712FC0203D9FC0013FF020F01C0010F13C0023F90 +C7000313F0DA7FFC02007F902601FFF0ED3FFE49496F7E49496F7F49496F7F4990C96C7F +4948707F4948707F01FF854A177F48864849717EA24849711380A2481BC04A83481BE0A2 +4A83481BF0A3481BF8A291CB7EA3B51AFCAF6C1BF8A26E5FA36C1BF0A36C6D4D13E0A36C +1BC06E5F6C1B806E5F6CDB01FE16006C6D902607FF80495A4C13E06C6D013F6D495A017F +91267F03F85C6D6C90277C00FC015B6D6C49D97E035B6D01806E485B6D6D48D91F8F5B6D +01E0039F90C7FC6D01F06EB45A6DD9FCF85DDA3FFF6E13F0020F6D4913C0020301FF90B5 +C8FC020091B512FC031F180C0303181EDB001FEBE3FE93C7EA01FF74133E74137E7413FE +F2F8077290B5FC1CFCA285A21CF8A2851CF07314E0A27314C0731480731400735B963800 +7FF8F21FE0576A79D265>81 DI97 +D<913801FFF8021FEBFF8091B612F0010315FC010F9038C00FFE903A1FFE0001FFD97FFC +491380D9FFF05B4817C048495B5C5A485BA2486F138091C7FC486F1300705A4892C8FC5B +A312FFAD127F7FA27EA2EF03E06C7F17076C6D15C07E6E140F6CEE1F806C6DEC3F006C6D +147ED97FFE5C6D6CEB03F8010F9038E01FF0010390B55A01001580023F49C7FC020113E0 +33387CB63C>99 D<4DB47E0407B5FCA5EE001F1707B3A4913801FFE0021F13FC91B6FC01 +0315C7010F9038E03FE74990380007F7D97FFC0101B5FC49487F4849143F484980485B83 +485B5A91C8FC5AA3485AA412FFAC127FA36C7EA37EA26C7F5F6C6D5C7E6C6D5C6C6D49B5 +FC6D6C4914E0D93FFED90FEFEBFF80903A0FFFC07FCF6D90B5128F0101ECFE0FD9003F13 +F8020301C049C7FC41547CD24B>I<913803FFC0023F13FC49B6FC010715C04901817F90 +3A3FFC007FF849486D7E49486D7E4849130F48496D7E48178048497F18C0488191C7FC48 +17E0A248815B18F0A212FFA490B8FCA318E049CAFCA6127FA27F7EA218E06CEE01F06E14 +037E6C6DEC07E0A26C6DEC0FC06C6D141F6C6DEC3F806D6CECFF00D91FFEEB03FE903A0F +FFC03FF8010390B55A010015C0021F49C7FC020113F034387CB63D>II<137F497E000313E0487FA2487FA76C5BA26C5BC613806DC7FC90C8FCAD +EB3FF0B5FCA512017EB3B3A6B612E0A51B547BD325>105 D110 +D<913801FFE0021F13FE91B612C0010315F0010F9038807FFC903A1FFC000FFED97FF86D +6C7E49486D7F48496D7F48496D7F4A147F48834890C86C7EA24883A248486F7EA3007F18 +80A400FF18C0AC007F1880A3003F18006D5DA26C5FA26C5F6E147F6C5F6C6D4A5A6C6D49 +5B6C6D495B6D6C495BD93FFE011F90C7FC903A0FFF807FFC6D90B55A010015C0023F91C8 +FC020113E03A387CB643>I<90397FE003FEB590380FFF80033F13E04B13F09238FE1FF8 +9139E1F83FFC0003D9E3E013FEC6ECC07FECE78014EF150014EE02FEEB3FFC5CEE1FF8EE +0FF04A90C7FCA55CB3AAB612FCA52F367CB537>114 D<903903FFF00F013FEBFE1F90B7 +FC120348EB003FD80FF81307D81FE0130148487F4980127F90C87EA24881A27FA27F01F0 +91C7FC13FCEBFFC06C13FF15F86C14FF16C06C15F06C816C816C81C681013F1580010F15 +C01300020714E0EC003F030713F015010078EC007F00F8153F161F7E160FA27E17E07E6D +141F17C07F6DEC3F8001F8EC7F0001FEEB01FE9039FFC00FFC6DB55AD8FC1F14E0D8F807 +148048C601F8C7FC2C387CB635>I<143EA6147EA414FEA21301A313031307A2130F131F +133F13FF5A000F90B6FCB8FCA426003FFEC8FCB3A9EE07C0AB011FEC0F8080A26DEC1F00 +15806DEBC03E6DEBF0FC6DEBFFF86D6C5B021F5B020313802A4D7ECB34>II<007FB500F090387FFFFEA5C66C48C7000F90C7FC6D6CEC07F86D6D +5C6D6D495A6D4B5A6F495A6D6D91C8FC6D6D137E6D6D5B91387FFE014C5A6E6C485A6EEB +8FE06EEBCFC06EEBFF806E91C9FCA26E5B6E5B6F7E6F7EA26F7F834B7F4B7F92B5FCDA01 +FD7F03F87F4A486C7E4A486C7E020F7FDA1FC0804A486C7F4A486C7F02FE6D7F4A6D7F49 +5A49486D7F01076F7E49486E7E49486E7FEBFFF0B500FE49B612C0A542357EB447>120 +D E /Fq 78 122 df<16E04B7EA24B7EA24B7EA24B7EA2ED1DFFA203387FA29238787FC0 +15709238F03FE015E002016D7E15C002036D7E158002076D7E15004A6D7E140E021E6D7E +141C023C6D7F143802786E7E147002F06E7E5C01016F7E5C01036F7E5C01076F7E91C8FC +496F7E130E011E6F7E131C013C6F7F13380178707E137001F0707E5B0001717E5B000371 +7E5B0007717E90CAFC48717E120E001E717E001FBAFC481980A24819C0A2BB12E0A24341 +7CC04C>1 D<913801FFC0021F13FC9139FF007F80D903F8EB0FE0D90FF0EB07F8D91FC0 +EB01FCD97F806DB4FC49C86C7E48486F7E00038348486F7E000F8349150F001F83491507 +003F83A348486F7EAA6C6C4B5AA3001F5FA26C6C4B5AA200075F6D151F00035FA26C6C4B +5A00005FA2017F4BC7FC6D157EA26D6C5C010F5DA26D6C495A00E0EF0380010315E0D870 +019238C007006E130301001580A36C0160EC000E003C017049131E263FFFF0ECFFFEA36C +5FA339407CBF42>10 D<4AB4EB0FE0021F9038E03FFC913A7F00F8FC1ED901FC90383FF0 +3FD907F090397FE07F80494801FF13FF4948485BD93F805C137F0200ED7F00EF003E01FE +6D91C7FC82ADB97EA3C648C76CC8FCB3AE486C4A7E007FD9FC3FEBFF80A339407FBF35> +I<4AB4FC021F13C091387F01F0903901FC0078D907F0131C4948133E494813FF49485A13 +7F1400A213FE6F5A163893C7FCAA167FB8FCA33900FE00018182B3AC486CECFF80007FD9 +FC3F13FEA32F407FBF33>I<4AB47E021F13F791387F00FFEB01F8903807F001EB0FE0EB +1FC0EB3F80137F14008101FE80AEB8FCA3C648C77EB3AE486CECFF80007FD9FC3F13FEA3 +2F407FBF33>I<4AB4ECFF80021FD9C00F13E0913B7F01F03F80F8903C01F80078FE003C +D907F0D93FF8130E49484948131F49484948EB7F804948484913FF137F02005CA201FE92 +C7FC6FED7F0070141C96C7FCAAF13F80BBFCA3C648C76CC7FC197F193FB3AC486C4A6CEB +7FC0007FD9FC3FD9FE1FB5FCA348407FBF4C>I16 D22 D<121EEA7F8012FF13C0A213E0A3 +127FEA1E601200A413E013C0A312011380120313005A120E5A1218123812300B1C79BE19 +>39 D<1430147014E0EB01C0EB03801307EB0F00131E133E133C5B13F85B12015B1203A2 +485AA2120F5BA2121F90C7FCA25AA3123E127EA6127C12FCB2127C127EA6123E123FA37E +A27F120FA27F1207A26C7EA212017F12007F13787F133E131E7FEB07801303EB01C0EB00 +E014701430145A77C323>I<12C07E12707E7E121E7E6C7E7F12036C7E7F12007F137813 +7CA27FA2133F7FA21480130FA214C0A3130714E0A6130314F0B214E01307A614C0130FA3 +1480A2131F1400A25B133EA25BA2137813F85B12015B485A12075B48C7FC121E121C5A5A +5A5A145A7BC323>I<1506150FB3A9007FB912E0BA12F0A26C18E0C8000FC9FCB3A91506 +3C3C7BB447>43 D<121EEA7F8012FF13C0A213E0A3127FEA1E601200A413E013C0A31201 +1380120313005A120E5A1218123812300B1C798919>II<121EEA +7F80A2EAFFC0A4EA7F80A2EA1E000A0A798919>IIIIII<15 +0E151E153EA2157EA215FE1401A21403EC077E1406140E141CA214381470A214E0EB01C0 +A2EB0380EB0700A2130E5BA25B5BA25B5B1201485A90C7FC5A120E120C121C5AA25A5AB8 +FCA3C8EAFE00AC4A7E49B6FCA3283E7EBD2D>I<00061403D80780131F01F813FE90B5FC +5D5D5D15C092C7FC14FCEB3FE090C9FCACEB01FE90380FFF8090383E03E090387001F849 +6C7E49137E497F90C713800006141FC813C0A216E0150FA316F0A3120C127F7F12FFA416 +E090C7121F12FC007015C012780038EC3F80123C6CEC7F00001F14FE6C6C485A6C6C485A +3903F80FE0C6B55A013F90C7FCEB07F8243F7CBC2D>II<1238123C123F90B612FCA316F85A16F016E00078C712010070EC03 +C0ED078016005D48141E151C153C5DC8127015F04A5A5D14034A5A92C7FC5C141EA25CA2 +147C147814F8A213015C1303A31307A3130F5CA2131FA6133FAA6D5A0107C8FC26407BBD +2D>III<121EEA7F80A2EAFFC0A4EA7F80A2EA1E00C7FCB3 +121EEA7F80A2EAFFC0A4EA7F80A2EA1E000A2779A619>I<121EEA7F80A2EAFFC0A4EA7F +80A2EA1E00C7FCB3121E127FEAFF80A213C0A4127F121E1200A412011380A3120313005A +1206120E120C121C5A1230A20A3979A619>I<007FB912E0BA12F0A26C18E0CDFCAE007F +B912E0BA12F0A26C18E03C167BA147>61 D<15074B7EA34B7EA34B7EA34B7EA34B7E15E7 +A2913801C7FC15C3A291380381FEA34AC67EA3020E6D7EA34A6D7EA34A6D7EA34A6D7EA3 +4A6D7EA349486D7E91B6FCA249819138800001A249C87EA24982010E157FA2011E82011C +153FA2013C820138151FA2017882170F13FC00034C7ED80FFF4B7EB500F0010FB512F8A3 +3D417DC044>65 DIIIIIIII +76 DIIIIIII<003FB91280A3903AF0007FE001018090393F +C0003F48C7ED1FC0007E1707127C00781703A300701701A548EF00E0A5C81600B3B14B7E +4B7E0107B612FEA33B3D7DBC42>II87 D91 +D93 D<1318133C137E13FF3801E7 +803803C3C0380781E0380F00F0001E137848133C48131E48130F00601306180D76BD2D> +I<121EEA7F80A2EAFFC0A4EA7F80A2EA1E000A0A79BD19>I97 DI<49B4FC010F13E090383F00 +F8017C131E4848131F4848137F0007ECFF80485A5B121FA24848EB7F00151C007F91C7FC +A290C9FC5AAB6C7EA3003FEC01C07F001F140316806C6C13076C6C14000003140E6C6C13 +1E6C6C137890383F01F090380FFFC0D901FEC7FC222A7DA828>IIII<167C903903F801FF903A1FFF078F8090397E0FDE1F9038F803F83803F001A23B07E0 +00FC0600000F6EC7FC49137E001F147FA8000F147E6D13FE00075C6C6C485AA23901F803 +E03903FE0FC026071FFFC8FCEB03F80006CAFC120EA3120FA27F7F6CB512E015FE6C6E7E +6C15E06C810003813A0FC0001FFC48C7EA01FE003E140048157E825A82A46C5D007C153E +007E157E6C5D6C6C495A6C6C495AD803F0EB0FC0D800FE017FC7FC90383FFFFC010313C0 +293D7EA82D>III<1478EB01FEA2EB03FFA4EB01FEA2EB007814 +00AC147FEB7FFFA313017F147FB3B3A5123E127F38FF807E14FEA214FCEB81F8EA7F0138 +7C03F0381E07C0380FFF803801FC00185185BD1C>III<2701F801FE14FF00FF902707FFC00313E0913B1E07E00F03F0 +913B7803F03C01F80007903BE001F87000FC2603F9C06D487F000101805C01FBD900FF14 +7F91C75B13FF4992C7FCA2495CB3A6486C496CECFF80B5D8F87FD9FC3F13FEA347287DA7 +4C>I<3901F801FE00FF903807FFC091381E07E091387803F000079038E001F82603F9C0 +7F0001138001FB6D7E91C7FC13FF5BA25BB3A6486C497EB5D8F87F13FCA32E287DA733> +I<14FF010713E090381F81F890387E007E01F8131F4848EB0F804848EB07C04848EB03E0 +000F15F04848EB01F8A2003F15FCA248C812FEA44815FFA96C15FEA36C6CEB01FCA3001F +15F86C6CEB03F0A26C6CEB07E06C6CEB0FC06C6CEB1F80D8007EEB7E0090383F81FC9038 +0FFFF0010090C7FC282A7EA82D>I<3901FC03FC00FF90381FFF8091387C0FE09039FDE0 +03F03A03FFC001FC6C496C7E91C7127F49EC3F805BEE1FC017E0A2EE0FF0A3EE07F8AAEE +0FF0A4EE1FE0A2EE3FC06D1580EE7F007F6E13FE9138C001F89039FDE007F09039FC780F +C0DA3FFFC7FCEC07F891C9FCAD487EB512F8A32D3A7EA733>I<02FF131C0107EBC03C90 +381F80F090397F00387C01FC131CD803F8130E4848EB0FFC150748481303121F485A1501 +485AA448C7FCAA6C7EA36C7EA2001F14036C7E15076C6C130F6C7E6C6C133DD8007E1379 +90383F81F190380FFFC1903801FE0190C7FCAD4B7E92B512F8A32D3A7DA730>I<3901F8 +07E000FFEB1FF8EC787CECE1FE3807F9C100031381EA01FB1401EC00FC01FF1330491300 +A35BB3A5487EB512FEA31F287EA724>I<90383FC0603901FFF8E03807C03F381F000F00 +3E1307003C1303127C0078130112F81400A27E7E7E6D1300EA7FF8EBFFC06C13F86C13FE +6C7F6C1480000114C0D8003F13E0010313F0EB001FEC0FF800E01303A214017E1400A27E +15F07E14016C14E06CEB03C0903880078039F3E01F0038E0FFFC38C01FE01D2A7DA824> +I<131CA6133CA4137CA213FCA2120112031207001FB512C0B6FCA2D801FCC7FCB3A215E0 +A912009038FE01C0A2EB7F03013F138090381F8700EB07FEEB01F81B397EB723>III +III E /Fr 35 121 df12 D45 DI<140F143F5C495A130F48B5FC +B6FCA313F7EAFE071200B3B3A8B712F0A5243C78BB34>49 D<903803FF80013F13F890B5 +12FE00036E7E4881260FF80F7F261FC0037F4848C67F486C6D7E6D6D7E487E6D6D7EA26F +1380A46C5A6C5A6C5A0007C7FCC8FC4B1300A25E153F5E4B5AA24B5A5E4A5B4A5B4A48C7 +FC5D4A5AEC1FE04A5A4A5A9139FF000F80EB01FC495A4948EB1F00495AEB1F8049C7FC01 +7E5C5B48B7FC485D5A5A5A5A5AB7FC5EA4293C7BBB34>I<903801FFE0010F13FE013F6D +7E90B612E04801817F3A03FC007FF8D807F06D7E82D80FFC131F6D80121F7FA56C5A5E6C +48133FD801F05CC8FC4B5A5E4B5A4A5B020F5B902607FFFEC7FC15F815FEEDFFC0D90001 +13F06E6C7E6F7E6F7E6F7E1780A26F13C0A217E0EA0FC0487E487E487E487EA317C0A25D +491580127F49491300D83FC0495A6C6C495A3A0FFE01FFF86CB65A6C5DC61580013F49C7 +FC010313E02B3D7CBB34>II<16FCA24B7EA24B7EA34B7FA24B7FA34B7FA24B7FA34B7F157C03FC7FEDF87FA20201 +80EDF03F0203804B7E02078115C082020F814B7E021F811500824A81023E7F027E81027C +7FA202FC814A147F49B77EA34982A2D907E0C7001F7F4A80010F835C83011F8391C87E49 +83133E83017E83017C81B500FC91B612FCA5463F7CBE4F>65 D<922607FFC0130E92B500 +FC131E020702FF133E023FEDC07E91B7EAE1FE01039138803FFB499039F80003FF4901C0 +1300013F90C8127F4948151FD9FFF8150F48491507485B4A1503481701485B18004890CA +FC197E5A5B193E127FA349170012FFAC127F7F193EA2123FA27F6C187E197C6C7F19FC6C +6D16F86C6D150119F06C6D15036C6DED07E0D97FFEED0FC06D6CED3F80010F01C0ECFF00 +6D01F8EB03FE6D9039FF801FFC010091B55A023F15E002071580020002FCC7FC030713C0 +3F407ABE4C>67 DII77 +D81 +DI<903807FFC0013F13F848 +B6FC48812607FE037F260FF8007F6DEB3FF0486C806F7EA36F7EA26C5A6C5AEA01E0C8FC +153F91B5FC130F137F3901FFFE0F4813E0000F1380381FFE00485A5B485A12FF5BA4151F +7F007F143F6D90387BFF806C6C01FB13FE391FFF07F36CEBFFE100031480C6EC003FD91F +F890C7FC2F2B7DA933>97 D<13FFB5FCA512077EAFEDFFE0020713FC021FEBFF80027F80 +DAFF8113F09139FC003FF802F06D7E4A6D7E4A13074A80701380A218C082A318E0AA18C0 +A25E1880A218005E6E5C6E495A6E495A02FCEB7FF0903AFCFF01FFE0496CB55AD9F01F91 +C7FCD9E00713FCC7000113C033407DBE3A>II< +EE07F8ED07FFA5ED003F161FAFEC7FF0903807FFFE011FEBFF9F017F14DF9039FFF01FFF +48EBC00348EB00014848EB007F485A001F153F5B123FA2127F5BA212FFAA127FA37F123F +A26C6C147F120F6D14FF6C6C01037F6C6D48EBFFE06CEBF03F6C6CB512BF6D143F010713 +FC010001E0EBE00033407DBE3A>III<903A03FF8007F0013F9038F83FF8499038FCFFFC48B712FE48018313F93A07FC +007FC34848EB3FE1001FEDF1FC4990381FF0F81700003F81A7001F5DA26D133F000F5D6C +6C495A3A03FF83FF8091B5C7FC4814FC01BF5BD80F03138090CAFCA2487EA27F13F06CB6 +FC16F016FC6C15FF17806C16C06C16E01207001F16F0393FE000034848EB003F49EC1FF8 +00FF150F90C81207A56C6CEC0FF06D141F003F16E001F0147FD81FFC903801FFC02707FF +800F13006C90B55AC615F8013F14E0010101FCC7FC2F3D7DA834>I105 D<13FFB5FCA512077EB092380FFFFEA5DB01FEC7FC4B5AED07F0ED1FE04B5A4B5A +4BC8FCEC03FC4A5A4A5A141FEC7FF84A7EA2818102E77F02C37F148102007F826F7E6F7E +151F6F7E826F7F6F7F816F7FB5D8FC07EBFFC0A5323F7DBE37>107 +D<13FFB5FCA512077EB3B3AFB512FCA5163F7CBE1D>I<01FFD91FF8ECFFC0B590B50107 +13F80203DAC01F13FE4A6E487FDA0FE09026F07F077F91261F003FEBF8010007013EDAF9 +F0806C0178ECFBC04A6DB4486C7FA24A92C7FC4A5CA34A5CB3A4B5D8FE07B5D8F03FEBFF +80A551297CA858>I<01FFEB1FF8B5EBFFFE02036D7E4A80DA0FE07F91381F007F000701 +3C806C5B4A6D7E5CA25CA35CB3A4B5D8FE0FB512E0A533297CA83A>II<01FFEBFFE0B5000713FC021FEBFF80027F80DAFF81 +13F09139FC007FF8000301F06D7E4A6D7E4A130F4A6D7E1880A27013C0A38218E0AA4C13 +C0A318805E18005E6E5C6E495A6E495A02FCEBFFF0DAFF035B92B55A029F91C7FC028713 +FC028113C00280C9FCACB512FEA5333B7DA83A>II<3901FE01FE00FF903807FF804A13E04A13F0EC3F1F91387C3FF8000713F8 +000313F0EBFFE0A29138C01FF0ED0FE091388007C092C7FCA391C8FCB3A2B6FCA525297D +A82B>I<90383FFC1E48B512BE000714FE5A381FF00F383F800148C7FC007E147EA200FE +143EA27E7F6D90C7FC13F8EBFFE06C13FF15C06C14F06C806C806C806C80C61580131F13 +00020713C014000078147F00F8143F151F7EA27E16806C143F6D140001E013FF9038F803 +FE90B55A15F0D8F87F13C026E00FFEC7FC222B7DA929>III119 DI +E /Fs 8 119 df<121EEA7F80A2EAFFC0A4EA7F80A2EA1E000A0A78891B>58 +D<91B712F018FF19E002009039C0003FF86F48EB07FC03FFEC01FEF0007F93C8EA3F801A +C0F11FE05C5D1AF0A214035DA30207EE3FE05DA2F17FC0020F17804B15FF1A004E5A021F +4B5A4B4A5AF00FE04E5A023F037FC7FC4BEB03FCEF1FF092B612804A4AC8FC923980007F +80EF0FC0EF07F002FF6E7E92C77F1701845B4A1400A2170113035CA2170313075CA24D5A +130F5CA3011F18185CA2013F4C13381A304A6F1370D9FFE0020314E0B600E0ED01C00501 +EB0380943900FE0F00CBEA3FFEF007F045467CC34A>82 D101 +D<141E143F5C5CA3147E143891C7FCAE133EEBFF803801C3C0380781E0380601F0120E12 +1CEA180312381230A2EA700700605BA2EAE00F00C05BEA001F5CA2133F91C7FCA25B137E +13FE5BA212015BEC03800003140013F01207495A1406140E140CEBC01C141814385C0003 +5BEBE1C0C6B45A013EC7FC19437DC121>105 D<01F8EB03FCD803FEEB1FFFD8071F9038 +7C0FC03B0E0F80E007E03A0C07C3C003001CD9C7007F001801CE1301003801DC80003013 +D8EB0FF800705B00605BA200E0491303D8C01F5D5C12001607013F5D91C7FCA2160F495D +137E161F5F13FE49143F94C7FC187000014B136049147E16FE4C13E0000317C049150104 +F81380170300071700495D170EEE781C000FED7C3849EC1FF0D80380EC07C0342D7DAB3A +>110 DI115 D<013E140ED9FF80EB3F802603C3C0137F380703E0 +380601F0120E121CD81803143F0038151F0030150FA2D87007140700605BA2D8E00F1500 +00C0497FEA001F4A5B1606133F91C7FC160E49140C137EA2161C01FE14185B1638163016 +704848146016E05E150100005D15036D49C7FC1506017C130E017E5B6D137890380F81E0 +6DB45AD900FEC8FC292D7DAB2F>118 D E /Ft 14 118 df<121FEA3F80EA7FC0EAFFE0 +A5EA7FC0EA3F80EA1F000B0B6C8A33>46 D64 +D97 DI100 DI103 DI<383FFFFC487FB5FCA27E7EC7FCB3B3AD003FB612F84815FCB712FEA26C15FC6C15 +F8273D7ABC33>108 D<4AB4FC263FFC0713C0267FFE1F13F000FF017F7F91B5FC6CB67E +6CEC07FEC6EBF801ECF0004A7F4A7F5CA291C7FCA35BB3A43B3FFFF80FFFFC486D4813FE +B56C4813FFA26C496C13FE6C496C13FC302C7FAB33>110 DI114 D<90381FFE0F90B5EA8F80000314 +FF120F5A5AEBF007387F800190C7FC00FE147F5A153FA37E007FEC1F0001C090C7FCEA3F +F8EBFFC06C13FF6C14E0000314F8C680011F13FF01001480020713C0EC007FED1FE0007C +140F00FEEC07F01503A27EA27F15076D14E06D130F6DEB3FC09038FE01FF90B612801600 +00FD5C00FC14F8D8F83F13E0D8780790C7FC242E79AC33>I117 +D E /Fu 15 112 df<140C141C1438147014E0EB01C01303EB0780EB0F00A2131E5BA25B +13F85B12015B1203A2485AA3485AA348C7FCA35AA2123EA2127EA4127CA312FCB3A2127C +A3127EA4123EA2123FA27EA36C7EA36C7EA36C7EA212017F12007F13787FA27F7FA2EB07 +80EB03C01301EB00E014701438141C140C166476CA26>40 D<12C07E12707E7E7E120F6C +7E6C7EA26C7E6C7EA21378137C133C133E131E131FA2EB0F80A3EB07C0A3EB03E0A314F0 +A21301A214F8A41300A314FCB3A214F8A31301A414F0A21303A214E0A3EB07C0A3EB0F80 +A3EB1F00A2131E133E133C137C13785BA2485A485AA2485A48C7FC120E5A5A5A5A5A1664 +7BCA26>I<121EEA7F80A2EAFFC0A4EA7F80A2EA1E000A0A78891B>46 +D<143014F013011303131F13FFB5FC13E713071200B3B3B0497E497E007FB6FCA3204278 +C131>49 D<14FF010713E0011F13F890387F00FE01FC133FD801F0EB1F804848EB0FC049 +EB07E00007EC03F048481301A290C713F8481400A47FA26D130116F07F6C6CEB03E013FC +6C6CEB07C09039FF800F806C9038C01F006CEBF03EECF87839007FFEF090383FFFC07F01 +077F6D13F8497F90381E7FFFD97C1F1380496C13C02601E00313E048486C13F000079038 +007FF84848EB3FFC48C7120F003EEC07FE150148140016FF167F48153FA2161FA56C151E +007C153EA2007E153C003E157C6C15F86DEB01F06C6CEB03E06C6CEB07C0D803F8EB1F80 +C6B4EBFF0090383FFFFC010F13F00101138028447CC131>56 D<14FF010713E0011F13F8 +90387F80FC9038FC007E48487F4848EB1F804848EB0FC0000FEC07E0485AED03F0485A16 +F8007F140190C713FCA25AA216FE1500A516FFA46C5CA36C7E5D121F7F000F5C6C6C1306 +150E6C6C5B6C6C5BD8007C5B90383F01E090390FFF80FE903801FE0090C8FC150116FCA4 +ED03F8A216F0D80F801307486C14E0486C130F16C0ED1F80A249EB3F0049137E001EC75A +001C495A000F495A3907E01FE06CB51280C649C7FCEB1FF028447CC131>I<121EEA7F80 +A2EAFFC0A4EA7F80A2EA1E00C7FCB3A5121EEA7F80A2EAFFC0A4EA7F80A2EA1E000A2B78 +AA1B>I<16C04B7EA34B7EA34B7EA34B7EA3ED19FEA3ED30FFA203707FED607FA203E07F +EDC03FA2020180ED801FA2DA03007F160FA20206801607A24A6D7EA34A6D7EA34A6D7EA2 +0270810260147FA202E08191B7FCA249820280C7121FA249C87F170FA20106821707A249 +6F7EA3496F7EA3496F7EA201788313F8486C83D80FFF03037FB500E0027FEBFFC0A34247 +7DC649>65 D72 +D<49B41303010FEBE007013F13F89039FE00FE0FD801F8131FD807E0EB079F49EB03DF48 +486DB4FC48C8FC4881003E81127E82127C00FC81A282A37E82A27EA26C6C91C7FC7F7FEA +3FF813FE381FFFE06C13FE6CEBFFE06C14FC6C14FF6C15C0013F14F0010F80010180D900 +1F7F14019138001FFF03031380816F13C0167F163F161F17E000C0150FA31607A37EA36C +16C0160F7E17806C151F6C16006C5D6D147ED8FBC05CD8F9F0495AD8F07C495A90393FC0 +0FE0D8E00FB51280010149C7FC39C0003FF02B487BC536>83 D99 D<167FED3FFFA315018182B3EC7F80903803FFF090380FC07C90383F00 +0E017E1307496D5AD803F87F48487F5B000F81485AA2485AA2127FA290C8FC5AAB7E7FA2 +123FA26C7EA2000F5D7F6C6C5B00035C6C6C9038077F806C6C010E13C0013F011C13FE90 +380FC0F8903803FFE09026007F0013002F467DC436>II108 +D111 D E /Fv 25 121 +df12 D45 +D<120FEA3FC0EA7FE0EAFFF0A6EA7FE0EA3FC0EA0F00C7FCB3B3A2120FEA3FC0EA7FE0EA +FFF0A6EA7FE0EA3FC0EA0F000C3E74BD24>58 D<170FA34D7EA24D7EA34D7EA34D7EA34C +7F17DFA29338039FFC178FA29338070FFE1707040F7FEE0E03A2041E80EE1C01A2043C80 +EE3800A24C80187FA24C80183FA24B4880181F0303814C130FA203078193C71207A24B81 +030E80A24B8284A24B8284A24B82197F03F0824B153FA20201834B151FA202038392B8FC +A24A83A292C91207020E8385A24A8485023C84023882A20278840270177FA202F0844A17 +3FA24948841A1FA24948841A0FA249CB7F1A074985865B496C85497E48486C4D7F000F01 +F8051F13F0B60407B612F0A45C657DE463>65 D73 D<933801FFE0043F13FF4BB612 +E003079038003FF8DB1FF0EB03FEDB7FC0903800FF804A48C8EA3FE0DA03FCED0FF0DA0F +F0ED03FC4A486F7E4A486F7E4A48707E4ACA6C7E4948717E4948717E4948717E4948717E +4948717E013F854A83017F864948727EA24890CC6C7EA24848737EA24848737EA2000F87 +491907001F87A34848737EA4007F1C80A24985A400FF1CC0AF6C6C4F1380A5003F1C006D +61A3001F63A26D190F000F63A26C6C4F5AA36C6C4F5AA26C6D4E5A6C636E18FF017F626D +6C4D90C7FC6E5F011F616D6C4D5A6D6C4D5A0103616E171F6D6C4D5A6D6D4C5ADA3FC04C +C8FCDA1FF0ED03FE6E6C4B5A6E6C4B5ADA01FFED3FE09126007FC0ECFF80DB1FF0D903FE +C9FCDB07FFEB3FF8030190B512E0DB003F91CAFC040113E05A667AE367>79 +D<933801FFE0043F13FF4BB612E003079038003FF8DB1FF0EB03FEDB7FC0903800FF804A +48C8EA3FE0DA03FCED0FF0DA0FF8ED07FCDA1FE0ED01FE4A486F7E4A48707E4ACA6C7E49 +48717E4948717E4948717E010F854948717E4948717EA24948717F01FF864A187F4890CC +6C7EA2488749191F00078749190F000F87A2001F87491907A2003F87A24985A2007F1C80 +A44985A200FF1CC0AF007F1C806D61A4003F1C00A36D61001F63A36C6C4F5AA20007636D +191FA26C6C4F5AA26C636C6DDA3F804A5AEFFFE06D6C010301F84A5A6D6C902607C07C49 +90C7FC93380F001E6D6C011E6D495A6D6C6F495A0107021CD903805B6D6C013C6D6C485A +6E0138151F6D6C0300495A6D01806F485ADA3FC04CC8FCDA1FE0ED71FE91260FF83CEC77 +FC912607FC1CEC7FF8912601FF1EEC3FE09126007FDEECFF80DB1FFFD903FEC9FC030790 +38C03FF8030190B56C1560DB003F143C0401EBE01C93C8121EA21DE0191FA3736C13011D +C0741303A274130774130F736CEB1F8074133F9738FF01FF7390B51200A264856485745B +745B745B08071380E001FEC7FC5B807AE367>81 D97 D<4AB47E020F13F8023F13FE9139FF007F80D903FCEB07 +E0D907F0EB01F0D91FE0EB007849488049488049C87E48485D4915FF00034B138048485C +A2485AA2485AA2003F6F130049EC007C94C7FC127FA35B12FFAD127F7FA4123F7FA2001F +EE01C07F000F16036D168012076C6C15076D160000015E6C6C151E6D6C5C6D6C5C6D6C5C +D90FF8495AD903FCEB07C0903A00FF803F8091263FFFFEC7FC020F13F80201138032417C +BF3A>99 D<181EEF3FFEEE07FFA4EE000F1703A21701B3AAEDFF80020F13F8023F13FE91 +39FF803F81903A03FC0007C14948EB01E1D91FE0EB00F94948147D4948143D49C8121F48 +48150F491507120348481503491501120F121F5BA2123F5B127FA45B12FFAD127F7FA312 +3FA27F121FA26C6C1503A26C6C150712036D150F6C6C151F0000163D137F6D6CECF9FF6D +6CEB01F1D90FF0D903C113C06D6CD90F81EBFF80D901FFEB7F019039007FFFFC021F13E0 +0201010091C7FC41657CE349>II104 D<133C13FF487F487FA66C5B6C90C7FC133C90C8FCB3A2EB03C0EA07FF127FA412 +01EA007FA2133FB3B3AC497E497EB612E0A41B5F7DDE23>I108 +DIIII<9039078003F8 +D807FFEB0FFFB5013F13C092387C0FE0913881F01F9238E03FF00001EB838039007F8700 +148FEB3F8E029CEB1FE0EE0FC00298EB030002B890C7FCA214B014F0A25CA55CB3B0497E +EBFFF8B612FCA42C3F7CBE33>114 D<9139FFE00180010FEBFC03017FEBFF073A01FF00 +1FCFD803F8EB03EFD807E0EB01FF48487F4848147F48C8123F003E151F007E150F127CA2 +00FC1507A316037EA27E7F6C7E6D91C7FC13F8EA3FFE381FFFF06CEBFF806C14F86C14FF +6C15C06C6C14F0011F80010714FED9007F7F02031480DA003F13C01503030013E0167F00 +E0ED1FF0160F17F86C15071603A36C1501A37EA26C16F016037E17E06D14076DEC0FC06D +1580D8FDF0141FD8F8F8EC7F00013E14FC3AF01FC00FF80107B512E0D8E001148027C000 +3FF8C7FC2D417DBF34>I<1438A71478A414F8A31301A31303A21307130F131FA2137F13 +FF1203000F90B6FCB8FCA3260007F8C8FCB3AE17E0AE6D6CEB01C0A316036D6C14801607 +6D6C14006E6C5A91383FC01E91381FF07C6EB45A020313E09138007F802B597FD733>I< +D903C0150FD807FFED1FFFB50203B5FCA40001ED0007D8007F1501A2013F81B3B25FA35F +A35F011F15066E140E5F130F6E4A7F01075D6D6C494813E0D901FE4948EBFFC0903A00FF +C01F8091393FFFFE00020F13F8020001C0EC800042407DBE49>III<007FB500C0010FB512E0A4C691C70003EBFC00D93FFE6E13 +E0D90FFC16807148C7FC01075E6D6C4A5A6D6C5D6D6D495A606E6C495A6E6C49C8FC6E6C +130E171E6E6C5B6E6C5B6E6C5B5F913801FF016EEB83C092387FC780033F90C9FC16EFED +1FFE6F5A6F5A826F7E6F7E5D834B7F92380F3FE0ED1E1F033C7F9238380FF892387807FC +EDF003DA01E07F4A486C7E707F4A486D7E4AC7FC021E6E7E021C6E7E023C6E7E5C4A6E7E +01016F7E49486E7E1307010F6F7F013F83D9FFF04A7F00076D4A13FCB56C020FEBFFF8A4 +453E80BD46>I E end +TeXDict begin + +1 0 bop 249 763 a Fv(Quaternions:)60 b(An)44 b(In)l(tro)t(duction)g +(with)g(Octa)l(v)l(e)g(m-\014le)g(examples)1071 1016 +y Fu(A.)32 b(S.)h(Ho)s(del)f Ft(a.s.hodel@eng.auburn.edu)1462 +1219 y Fs(R)q(ev)t(ision)d Fu(:)f(1)p Fs(:)p Fu(1)k(\(c\))g(1998)1537 +1568 y Fr(Ac)m(kno)m(wledgemen)m(t)0 1781 y Fq(The)g(author)g +(gratefully)f(thanks)h(the)h(Fligh)m(t)f(Con)m(trols)g(and)f(Dynamics)h +(Branc)m(h)h(at)g(Marshall)e(Space)h(Fligh)m(t)0 1894 +y(Cen)m(ter)h(for)f(their)g(useful)f(discussions)f(that)j(led)f(to)h +(this)f(do)s(cumen)m(t)g(and)g(m-\014le)g(suite.)47 b(Citations)32 +b(are)h(giv)m(en)0 2007 y(where)28 b(they)g(w)m(ere)h(a)m(v)-5 +b(ailable)28 b(to)h(me.)40 b(I)28 b(w)m(elcome)h(an)m(y)g(suggestions)f +(for)g(additional)e(reference)j(material)f(to)h(b)s(e)0 +2120 y(placed)h(in)f(the)h(bibliograph)m(y)-8 b(.)0 2406 +y Fp(Con)l(ten)l(ts)0 2610 y Fr(1)84 b(Quaternions)3154 +b(2)136 2723 y Fq(1.1)94 b(De\014nition)61 b Fo(:)46 +b(:)g(:)g(:)f(:)h(:)g(:)f(:)h(:)g(:)g(:)f(:)h(:)g(:)f(:)h(:)g(:)f(:)h +(:)g(:)g(:)f(:)h(:)g(:)f(:)h(:)g(:)g(:)f(:)h(:)g(:)f(:)h(:)g(:)g(:)f(:) +h(:)g(:)f(:)h(:)g(:)f(:)131 b Fq(2)136 2836 y(1.2)94 +b(Multiplication)28 b(of)i(quaternions)72 b Fo(:)46 b(:)g(:)f(:)h(:)g +(:)f(:)h(:)g(:)g(:)f(:)h(:)g(:)f(:)h(:)g(:)g(:)f(:)h(:)g(:)f(:)h(:)g(:) +g(:)f(:)h(:)g(:)f(:)h(:)g(:)f(:)131 b Fq(2)136 2949 y(1.3)94 +b(Quaternions)29 b(as)i(rotations)39 b Fo(:)46 b(:)g(:)f(:)h(:)g(:)f(:) +h(:)g(:)f(:)h(:)g(:)g(:)f(:)h(:)g(:)f(:)h(:)g(:)g(:)f(:)h(:)g(:)f(:)h +(:)g(:)g(:)f(:)h(:)g(:)f(:)h(:)g(:)f(:)131 b Fq(3)136 +3061 y(1.4)94 b(Application)29 b(of)h(quaternions)g(in)f(co)s(ordinate) +h(frame)g(transformations)53 b Fo(:)45 b(:)h(:)g(:)g(:)f(:)h(:)g(:)f(:) +h(:)g(:)f(:)131 b Fq(6)345 3174 y(1.4.1)106 b(Euler)29 +b(angles)i Fo(:)46 b(:)f(:)h(:)g(:)g(:)f(:)h(:)g(:)f(:)h(:)g(:)f(:)h(:) +g(:)g(:)f(:)h(:)g(:)f(:)h(:)g(:)g(:)f(:)h(:)g(:)f(:)h(:)g(:)g(:)f(:)h +(:)g(:)f(:)h(:)g(:)f(:)131 b Fq(6)345 3287 y(1.4.2)106 +b(Co)s(ordinate)30 b(transformation)g(matrices)g(and)g(quaternions)46 +b Fo(:)g(:)g(:)f(:)h(:)g(:)g(:)f(:)h(:)g(:)f(:)h(:)g(:)f(:)131 +b Fq(6)136 3400 y(1.5)94 b(Time)30 b(deriv)-5 b(ativ)m(e)30 +b(of)g(a)h(quaternion)42 b Fo(:)k(:)f(:)h(:)g(:)f(:)h(:)g(:)g(:)f(:)h +(:)g(:)f(:)h(:)g(:)g(:)f(:)h(:)g(:)f(:)h(:)g(:)g(:)f(:)h(:)g(:)f(:)h(:) +g(:)f(:)85 b Fq(12)1927 5656 y(1)p eop +2 1 bop 0 100 a Fn(A.)31 b(S.)f(Ho)s(del:)40 b(Quaternions)29 +b(\(In)m(tro)s(duction\))g Fo(R)q(ev)s(ision)d Fq(:)f(1)p +Fo(:)p Fq(1)436 b Fn(\(c\))31 b(1998)902 b Fq(2)0 399 +y Fp(1)135 b(Quaternions)0 601 y Fq(A)32 b(con)m(v)m(enien)m(t)g(w)m(a) +m(y)h(to)f(represen)m(t)f(the)h(relativ)m(e)g(orien)m(tation)f(of)h(t)m +(w)m(o)g(frames)g(is)e(through)h(the)h(use)f(of)g(quater-)0 +714 y(nions.)0 958 y Fm(1.1)112 b(De\014nition)0 1129 +y Fr(De\014nition)35 b(1.1)46 b Fq(A)31 b(quaternion)e(is)g(a)i(4-v)m +(ector)i(de\014ned)c(b)m(y)1268 1334 y Fo(q)f Fq(=)d +Fo(a)1474 1313 y Fq(^)1481 1334 y Fo(i)c Fq(+)f Fo(b)1662 +1313 y Fq(^)1663 1334 y Fo(j)26 b Fq(+)19 b Fo(c)1857 +1310 y Fq(^)1855 1334 y Fo(k)24 b Fq(+)c Fo(d;)46 b(a;)15 +b(b;)g(c;)g(d)27 b Fl(2)e Fq(I)-9 b(R)0 1538 y(where)256 +1517 y(^)263 1538 y Fo(i)p Fq(,)348 1517 y(^)350 1538 +y Fo(j)5 b Fq(,)450 1514 y(^)448 1538 y Fo(k)33 b Fq(are)e(quan)m +(tities)f(satisfying)1498 1517 y(^)1505 1538 y Fo(i)1536 +1505 y Fk(2)1601 1538 y Fq(=)1696 1517 y(^)1697 1538 +y Fo(j)1739 1505 y Fk(2)1804 1538 y Fq(=)1903 1514 y(^)1900 +1538 y Fo(k)1950 1505 y Fk(2)2015 1538 y Fq(=)25 b Fl(\000)p +Fq(1)31 b(and)1476 1721 y(^)1483 1742 y Fo(i)1513 1721 +y Fq(^)1515 1742 y Fo(j)f Fq(=)1681 1718 y(^)1678 1742 +y Fo(k)1846 1721 y Fq(^)1847 1742 y Fo(j)1892 1718 y +Fq(^)1890 1742 y Fo(k)e Fq(=)2054 1721 y(^)2061 1742 +y Fo(i)2213 1718 y Fq(^)2211 1742 y Fo(k)2254 1721 y +Fq(^)2261 1742 y Fo(i)e Fq(=)2412 1721 y(^)2413 1742 +y Fo(j)1372 1859 y Fq(^)1373 1880 y Fo(j)6 b Fq(\0201)25 +b(=)g Fl(\000)1681 1856 y Fq(^)1679 1880 y Fo(k)1814 +1856 y Fq(^)1812 1880 y Fo(k)1860 1859 y Fq(^)1862 1880 +y Fo(j)31 b Fq(=)25 b Fl(\000)2090 1859 y Fq(^)2097 1880 +y Fo(i)2204 1859 y Fq(^)2211 1880 y Fo(i)2244 1856 y +Fq(^)2242 1880 y Fo(k)k Fq(=)24 b Fl(\000)2483 1859 y +Fq(^)2484 1880 y Fo(j)0 2092 y Fr(Remark)34 b(1.1)46 +b Fq(Notice)35 b(that)1058 2072 y(^)1065 2092 y Fo(i)p +Fq(,)1154 2072 y(^)1156 2092 y Fo(j)5 b Fq(,)35 b(and)1440 +2068 y(^)1438 2092 y Fo(k)h Fq(are)e(scalar)g(quan)m(tities)e(equal)h +(to)2718 2021 y Fl(p)p 2793 2021 117 4 v 2793 2092 a(\000)p +Fq(1)q(;)i(ho)m(w)m(ev)m(er,)3341 2072 y(^)3348 2092 +y Fo(i)p Fq(,)3437 2072 y(^)3438 2092 y Fo(j)6 b Fq(,)35 +b(and)3723 2068 y(^)3720 2092 y Fo(k)i Fq(do)0 2205 y(not)g(comm)m(ute) +h(under)d(m)m(ultiplication.)56 b(Therefore)36 b(quaternions)g(do)g +(not)h(comm)m(ute)h(under)d(m)m(ultiplication)0 2318 +y(\()p Fo(q)76 2332 y Fk(1)115 2318 y Fo(q)156 2332 y +Fk(2)221 2318 y Fl(6)p Fq(=)25 b Fo(q)358 2332 y Fk(2)397 +2318 y Fo(q)438 2332 y Fk(1)497 2318 y Fq(in)20 b(general\).)38 +b(This)19 b(is)h(consisten)m(t)h(with)f(the)h(in)m(terpretation)f(of)h +(quaternions)f(as)h(spatial)f(rotations)0 2431 y(\(to)31 +b(b)s(e)f(discussed)f(in)g Fl(x)p Fq(1.4.2.)0 2644 y +Fr(M-\014le)46 b Fj(quaternion)57 b Fq(Create/extract)34 +b(quaternion)29 b(information:)227 2869 y Fj(quaternion:)45 +b(construct)g(or)i(extract)f(a)i(quaternion)227 2982 +y(w)g(=)f(a*i)g(+)h(b*j)e(+)i(c*k)f(+)g(d)h(from)e(given)h(data.)227 +3207 y(calling)f(formats:)227 3320 y([a,b,c,d])141 b(=)47 +b(quaternion\(w\))570 b(-or-)227 3433 y([vv,theta])45 +b(=)j(quaternion\(w\))227 3546 y(w)525 b(=)47 b(quaternion\(a,b,c,d\)) +227 3659 y(w)525 b(=)47 b(quaternion\(vv,theta\))227 +3884 y Fq(\()p Fj(vv,theta)29 b Fq(format)h(to)i(b)s(e)d(explained)g +(later\))0 4128 y Fm(1.2)112 b(Multiplication)34 b(of)k(quaternions)0 +4299 y Fq(F)-8 b(rom)31 b(De\014nition)e(1.1,)j(w)m(e)e(ha)m(v)m(e)533 +4503 y Fo(q)574 4517 y Fk(1)613 4503 y Fo(q)654 4517 +y Fk(2)776 4503 y Fq(=)83 b(\()p Fo(a)1013 4517 y Fk(1)1046 +4483 y Fq(^)1053 4503 y Fo(i)20 b Fq(+)g Fo(b)1234 4517 +y Fk(1)1272 4483 y Fq(^)1274 4503 y Fo(j)26 b Fq(+)20 +b Fo(c)1467 4517 y Fk(1)1509 4479 y Fq(^)1506 4503 y +Fo(k)k Fq(+)c Fo(d)1715 4517 y Fk(1)1754 4503 y Fq(\)\()p +Fo(a)1872 4517 y Fk(2)1905 4483 y Fq(^)1913 4503 y Fo(i)g +Fq(+)g Fo(b)2094 4517 y Fk(2)2132 4483 y Fq(^)2133 4503 +y Fo(j)26 b Fq(+)20 b Fo(c)2326 4517 y Fk(2)2368 4479 +y Fq(^)2366 4503 y Fo(k)j Fq(+)d Fo(d)2574 4517 y Fk(2)2614 +4503 y Fq(\))776 4641 y(=)83 b(\()p Fo(a)1013 4655 y +Fk(1)1053 4641 y Fo(d)1100 4655 y Fk(2)1160 4641 y Fq(+)20 +b Fo(b)1290 4655 y Fk(1)1329 4641 y Fo(c)1368 4655 y +Fk(2)1428 4641 y Fl(\000)g Fo(c)1558 4655 y Fk(1)1598 +4641 y Fo(b)1637 4655 y Fk(2)1697 4641 y Fq(+)f Fo(d)1834 +4655 y Fk(1)1874 4641 y Fo(a)1922 4655 y Fk(2)1962 4641 +y Fq(\))p Fo(i)i Fq(+)e(\()p Fo(c)2213 4655 y Fk(1)2254 +4641 y Fo(a)2302 4655 y Fk(2)2361 4641 y Fl(\000)h Fo(a)2500 +4655 y Fk(1)2540 4641 y Fo(c)2579 4655 y Fk(2)2639 4641 +y Fq(+)g Fo(b)2769 4655 y Fk(1)2808 4641 y Fo(d)2855 +4655 y Fk(2)2915 4641 y Fq(+)g Fo(d)3053 4655 y Fk(1)3093 +4641 y Fo(b)3132 4655 y Fk(2)3171 4641 y Fq(\))3205 4620 +y(^)3206 4641 y Fo(j)930 4779 y Fq(+\()p Fo(a)1084 4793 +y Fk(1)1124 4779 y Fo(b)1163 4793 y Fk(2)1222 4779 y +Fl(\000)g Fo(b)1352 4793 y Fk(1)1392 4779 y Fo(a)1440 +4793 y Fk(2)1499 4779 y Fq(+)g Fo(c)1629 4793 y Fk(1)1669 +4779 y Fo(d)1716 4793 y Fk(2)1776 4779 y Fq(+)g Fo(d)1914 +4793 y Fk(1)1954 4779 y Fo(c)1993 4793 y Fk(2)2032 4779 +y Fq(\))2069 4755 y(^)2067 4779 y Fo(k)k Fq(+)c(\()p +Fl(\000)p Fo(a)2383 4793 y Fk(1)2423 4779 y Fo(a)2471 +4793 y Fk(2)2530 4779 y Fl(\000)g Fo(b)2660 4793 y Fk(1)2700 +4779 y Fo(b)2739 4793 y Fk(2)2798 4779 y Fl(\000)g Fo(c)2928 +4793 y Fk(1)2968 4779 y Fo(c)3007 4793 y Fk(2)3067 4779 +y Fq(+)g Fo(d)3205 4793 y Fk(1)3245 4779 y Fo(d)3292 +4793 y Fk(2)3331 4779 y Fq(\))347 b(\(1.1\))21 5018 y(De\014ne)21 +b Fo(v)337 5032 y Fk(1)401 5018 y Fq(=)497 4924 y Fi(h)578 +5018 y Fo(a)626 5032 y Fk(1)749 5018 y Fo(b)788 5032 +y Fk(1)910 5018 y Fo(c)949 5032 y Fk(1)1030 4924 y Fi(i)1070 +4947 y Fh(T)1145 5018 y Fq(and)g Fo(v)1357 5032 y Fk(2)1421 +5018 y Fq(=)1517 4924 y Fi(h)1598 5018 y Fo(a)1646 5032 +y Fk(2)1769 5018 y Fo(b)1808 5032 y Fk(2)1930 5018 y +Fo(c)1969 5032 y Fk(2)2050 4924 y Fi(i)2089 4947 y Fh(T)2145 +5018 y Fq(.)37 b(Then)20 b([Mul)o(])h(equation)g(\(1.1\))h(ma)m(y)g(b)s +(e)e(rewritten)0 5131 y(as)1017 5244 y Fo(q)1058 5258 +y Fk(1)1097 5244 y Fo(q)1138 5258 y Fk(2)1202 5244 y +Fq(=)25 b Fo(d)1345 5258 y Fk(1)1385 5244 y Fo(d)1432 +5258 y Fk(2)1492 5244 y Fq(+)20 b Fo(d)1630 5258 y Fk(1)1669 +5244 y Fo(v)1713 5258 y Fk(2)1773 5244 y Fq(+)g Fo(d)1911 +5258 y Fk(2)1951 5244 y Fo(v)1995 5258 y Fk(1)2054 5244 +y Fl(\000)g(h)q Fo(v)2225 5258 y Fk(1)2264 5244 y Fo(;)15 +b(v)2348 5258 y Fk(2)2388 5244 y Fl(i)21 b Fq(+)f(\()p +Fo(v)2614 5258 y Fk(1)2674 5244 y Fl(\002)f Fo(v)2808 +5258 y Fk(2)2848 5244 y Fq(\))830 b(\(1.2\))p eop +3 2 bop 0 100 a Fn(A.)31 b(S.)f(Ho)s(del:)40 b(Quaternions)29 +b(\(In)m(tro)s(duction\))g Fo(R)q(ev)s(ision)d Fq(:)f(1)p +Fo(:)p Fq(1)436 b Fn(\(c\))31 b(1998)902 b Fq(3)0 399 +y(where)30 b(the)g(cross)h(pro)s(duct)1385 622 y(\()p +Fo(v)1464 636 y Fk(1)1524 622 y Fl(\002)20 b Fo(v)1659 +636 y Fk(2)1699 622 y Fq(\))1765 572 y Fk(\001)1759 622 +y Fq(=)1855 424 y Fi(\014)1855 474 y(\014)1855 524 y(\014)1855 +574 y(\014)1855 624 y(\014)1855 674 y(\014)1855 723 y(\014)1883 +428 y(2)1883 574 y(6)1883 627 y(4)2001 492 y Fq(^)2008 +513 y Fo(i)2167 492 y Fq(^)2168 513 y Fo(j)2328 489 y +Fq(^)2326 513 y Fo(k)1980 625 y(a)2028 639 y Fk(1)2150 +625 y Fo(b)2189 639 y Fk(1)2312 625 y Fo(c)2351 639 y +Fk(1)1980 738 y Fo(a)2028 752 y Fk(2)2150 738 y Fo(b)2189 +752 y Fk(2)2312 738 y Fo(c)2351 752 y Fk(2)2432 428 y +Fi(3)2432 574 y(7)2432 627 y(5)2487 424 y(\014)2487 474 +y(\014)2487 524 y(\014)2487 574 y(\014)2487 624 y(\014)2487 +674 y(\014)2487 723 y(\014)0 881 y Fq(This)29 b(v)m(ector-based)j(in)m +(terpretation)d(will)f(b)s(ecome)j(more)f(imp)s(ortan)m(t)g(in)f +Fl(x)p Fq(1.4.2.)0 1040 y Fr(M-\014le)46 b Fj(qmult)227 +1231 y(function)g(c)h(=)h(qmult\(a,b\))227 1344 y(multiply)e(two)h +(quaternions)0 1534 y Fr(De\014nition)35 b(1.2)46 b Fq(The)26 +b Fg(c)-5 b(onjugate)26 b Fq(of)g(a)h(quaternion)e Fo(q)j +Fq(=)d Fo(a)2077 1514 y Fq(^)2084 1534 y Fo(i)12 b Fq(+)f +Fo(b)2247 1514 y Fq(^)2248 1534 y Fo(j)17 b Fq(+)11 b +Fo(c)2425 1510 y Fq(^)2423 1534 y Fo(k)k Fq(+)c Fo(d)26 +b Fq(is)f Fo(q)2771 1501 y Ff(\003)2836 1534 y Fq(=)g +Fl(\000)p Fo(a)3044 1514 y Fq(^)3051 1534 y Fo(i)11 b +Fl(\000)g Fo(b)3213 1514 y Fq(^)3214 1534 y Fo(j)17 b +Fl(\000)11 b Fo(c)3391 1510 y Fq(^)3389 1534 y Fo(k)k +Fq(+)c Fo(d)p Fq(.)40 b(Notice)0 1664 y(that)35 b Fo(q)s(q)289 +1631 y Ff(\003)361 1664 y Fq(=)d Fo(q)508 1631 y Ff(\003)547 +1664 y Fo(q)k Fq(=)c Fo(a)775 1631 y Fk(2)837 1664 y +Fq(+)23 b Fo(b)970 1631 y Fk(2)1033 1664 y Fq(+)f Fo(c)1165 +1631 y Fk(2)1228 1664 y Fq(+)h Fo(d)1369 1631 y Fk(2)1447 +1614 y(\001)1441 1664 y Fq(=)32 b Fl(j)p Fo(q)s Fl(j)1639 +1622 y Fk(2)1678 1664 y Fq(.)54 b(F)-8 b(or)35 b(quaternions)f +Fo(q)j Fq(with)c Fo(q)s(q)2799 1631 y Ff(\003)2871 1664 +y Fl(6)p Fq(=)f(0)j(w)m(e)g(de\014ne)f(the)h Fg(inverse)0 +1821 y(quaternion)c Fo(q)498 1783 y Ff(\000)p Fk(1)618 +1821 y Fq(=)746 1759 y Fo(q)790 1726 y Ff(\003)p 724 +1799 128 4 v 724 1883 a Fo(q)s(q)812 1857 y Ff(\003)861 +1821 y Fq(.)40 b(Notice)32 b(that)f Fo(q)s(q)1497 1788 +y Ff(\000)p Fk(1)1616 1821 y Fq(=)25 b Fo(q)1756 1788 +y Ff(\000)p Fk(1)1850 1821 y Fo(q)j Fq(=)d(1.)0 2037 +y Fr(M-\014le)46 b Fj(qinv)59 b Fq(Compute)30 b(the)h(in)m(v)m(erse)f +(of)g(a)h(quaternion)227 2228 y Fj(function)46 b(b)h(=)h(qinv\(a\))227 +2341 y(return)e(the)h(inverse)f(of)h(a)h(quaternion)227 +2454 y(a)g(=)95 b([w,x,y,z])45 b(=)j(w*i)f(+)g(x*j)g(+)g(y*k)g(+)h(z) +227 2567 y(qmult\(a,qinv\(a\)\))c(=)j(1)h(=)f([0)g(0)h(0)f(1])0 +2757 y Fr(Example)34 b(1.1)46 b Fq(Compute)30 b(and)f(m)m(ultiply)f +(the)j(in)m(v)m(erse)f(quaternion:)0 2916 y Fj(octave:1>)45 +b(q)j(=)f(quaternion\(1,2,3,4\);)42 b(qi)48 b(=)f(qinv\(q\))0 +3029 y(qi)g(=)h(-0.033333)93 b(-0.066667)g(-0.100000)140 +b(0.133333)0 3142 y(octave:2>)45 b(qmult\(qi,q\))0 3255 +y(ans)i(=)g(0)96 b(0)f(0)g(1)0 3368 y(octave:3>)45 b(qmult\(q,qi\))0 +3481 y(ans)i(=)g(0)96 b(0)f(0)g(1)0 3640 y Fq(In)30 b(b)s(oth)f(cases)j +(the)e(pro)s(duct)f(is)h(the)g(iden)m(tiy)f(quaternion)h(0)2101 +3619 y(^)2108 3640 y Fo(i)21 b Fq(+)f(0)2295 3619 y(^)2296 +3640 y Fo(j)26 b Fq(+)20 b(0)2497 3616 y(^)2495 3640 +y Fo(k)k Fq(+)19 b(1)26 b(=)f(1.)0 3878 y Fm(1.3)112 +b(Quaternions)38 b(as)g(rotations)0 4062 y Fr(De\014nition)d(1.3)46 +b Fq(A)31 b Fg(unit)h(quaternion)g Fo(q)c Fq(=)d Fo(a)1617 +4041 y Fq(^)1624 4062 y Fo(i)20 b Fq(+)g Fo(b)1804 4041 +y Fq(^)1805 4062 y Fo(j)26 b Fq(+)20 b Fo(c)2000 4038 +y Fq(^)1998 4062 y Fo(k)k Fq(+)19 b Fo(d)31 b Fq(satis\014es)2572 +3964 y Fi(\015)2572 4014 y(\015)2572 4064 y(\015)2618 +3967 y(h)2699 4062 y Fo(a)83 b(b)g(c)g(d)3163 3967 y +Fi(i)3202 3964 y(\015)3202 4014 y(\015)3202 4064 y(\015)3248 +4118 y Fk(2)3313 4062 y Fq(=)25 b(1.)0 4254 y Fr(Remark)34 +b(1.2)46 b Fq(Unit)40 b(quaternions)f(ma)m(y)h(b)s(e)g(considered)f(as) +h(represen)m(tations)g(of)h(a)f(rotation)h(of)f Fo(\022)i +Fq(degrees)0 4367 y(ab)s(out)f(a)g(giv)m(en)g(unit)f(v)m(ector)j +Fo(v)h Fq(\(see)e(routine)e Fj(quaternion)p Fq(\).)70 +b(The)41 b(transformation)f(is)g(accomplished)g(b)m(y)0 +4496 y(m)m(ultiplying)27 b Fo(v)529 4510 y Fh(r)592 4496 +y Fq(=)e Fo(q)s(v)s(q)823 4463 y Ff(\000)p Fk(1)917 4496 +y Fq(,)31 b(where)f Fo(v)e Fq(=)1404 4402 y Fi(h)1485 +4496 y Fo(x)83 b(y)j(z)h Fq(0)1967 4402 y Fi(i)2006 4496 +y Fq(.)0 4684 y(With)30 b(this)f(in)m(terpretation,)h(unit)f +(quaternions)g(ma)m(y)i(b)s(e)f(written)f(as)890 4964 +y Fo(q)f Fq(=)1055 4870 y Fi(\020)1105 4964 y Fo(ai)21 +b Fq(+)e Fo(b)1333 4944 y Fq(^)1334 4964 y Fo(j)26 b +Fq(+)20 b Fo(c)1529 4940 y Fq(^)1527 4964 y Fo(k)1578 +4870 y Fi(\021)1643 4964 y Fq(sin)n(\()p Fo(\022)s(=)p +Fq(2\))h(+)f(cos)q(\()p Fo(\022)s(=)p Fq(2\))2432 4914 +y Fk(\001)2426 4964 y Fq(=)2522 4771 y Fi(0)2522 4917 +y(B)2522 4970 y(@)2594 4771 y(2)2594 4917 y(6)2594 4970 +y(4)2691 4851 y Fo(a)2696 4964 y(b)2696 5077 y(c)2781 +4771 y Fi(3)2781 4917 y(7)2781 4970 y(5)2851 4964 y Fo(;)15 +b(\022)2937 4771 y Fi(1)2937 4917 y(C)2937 4970 y(A)3713 +4964 y Fq(\(1.3\))0 5279 y(Notice)26 b(that)f(this)f(implies)e(that) +1137 5185 y Fi(h)1218 5279 y Fo(a)83 b(b)g(c)1552 5185 +y Fi(i)1615 5279 y Fq(is)24 b(also)h(a)g(unit)e(v)m(ector.)41 +b(This)23 b(is)g(consisten)m(t)j(with)d(m)m(ultiplication)0 +5407 y(b)m(y)30 b(the)h(iden)m(tit)m(y)f(quaterion)g +Fo(q)e Fq(=)d(1,)31 b(since)e(cos)q(\(0\))d(=)f(1)31 +b(and)f(sin)o(\(0\))c(=)f(0.)p eop +4 3 bop 0 100 a Fn(A.)31 b(S.)f(Ho)s(del:)g(Quaternions)f(\(In)m(tro)s +(duction\))g Fo(R)q(ev)s(ision)d Fq(:)f(1)p Fo(:)p Fq(1)439 +b Fn(\(c\))32 b(1998)908 b Fq(4)0 399 y Fr(Example)34 +b(1.2)46 b Fq(Unit)33 b(quaternions)g(ma)m(y)h(b)s(e)g(m)m(ultiplied)c +(to)35 b(obtain)e(a)i(single)e(equiv)-5 b(alen)m(t)33 +b(co)s(ordinate)h(rota-)0 511 y(tion.)47 b(Let)33 b Fo(q)435 +525 y Fk(3)506 511 y Fq(b)s(e)f(a)h(90)800 478 y Ff(\016)872 +511 y Fq(rotation)g(ab)s(out)f(the)h Fo(x)p Fl(\000)p +Fq(axis.)46 b(F)-8 b(ollo)m(w)33 b(this)e(rotation)i(b)m(y)g +Fo(q)2982 525 y Fk(2)3021 511 y Fq(,)g(a)g(90)3247 478 +y Ff(\016)3319 511 y Fq(rotation)g(ab)s(out)0 624 y(the)k(\(new\))g +Fo(y)i Fq(axis.)60 b(Finally)-8 b(,)37 b(follo)m(w)f(this)g(rotation)h +(b)m(y)f Fo(q)2067 638 y Fk(1)2106 624 y Fq(,)j(a)e(90)2342 +591 y Ff(\016)2419 624 y Fq(rotation)g(ab)s(out)g(the)g(\(newly)f +(revised\))g Fo(z)0 737 y Fq(axis.)k(Then)30 b Fo(q)e +Fq(=)d Fo(q)664 751 y Fk(1)703 737 y Fo(q)744 751 y Fk(2)783 +737 y Fo(q)824 751 y Fk(3)893 737 y Fq(is)k(a)i(90)g(degree)g(rotation) +g(ab)s(out)f(the)h(original)d Fo(y)s Fq(-axis.)0 925 +y Fj(octave:1>)45 b(degrees)h(=)i(pi/180;)0 1038 y(octave:2>)d(q1)i(=)h +(quaternion\([0,0,1],90*de)o(gree)o(s\);)0 1151 y(octave:3>)d(q2)i(=)h +(quaternion\([0,1,0],90*de)o(gree)o(s\);)0 1264 y(octave:4>)d(q3)i(=)h +(quaternion\([1,0,0],90*de)o(gree)o(s\);)0 1377 y(octave:5>)d(q)j(=)f +(qmult\(q1,qmult\(q2,q3\)\);)0 1489 y(octave:6>)e([vv,th])h(=)i +(quaternion\(q\))0 1602 y(vv)f(=)h(0)f(1)h(0)0 1715 y(th)f(=)h(1.5708)0 +1828 y(octave:7>)d(th/degrees)0 1941 y(ans)i(=)g(90.000)118 +2154 y Fq(The)26 b(rotation)g(ab)s(out)g(a)h(v)m(ector)h(axis)e(in)m +(terpretation)f(of)i(quaternions)e(requires)g(care:)39 +b(the)26 b(axis)g(of)h(rotation)0 2267 y(is)40 b(tak)m(en)j(based)e(on) +h(the)f(co)s(ordinate)g(frame)h(for)f(whic)m(h)f(the)i(quaternion)e(w)m +(as)i(written.)73 b(F)-8 b(or)42 b(example,)j(a)0 2379 +y(rotation)30 b(around)e(the)i(inertial)d Fo(y)s Fq(-axis)i(follo)m(w)m +(ed)g(b)m(y)g(a)h(rotation)g(around)e(the)i(inertial)d +Fo(x)j Fq(axis)e(can)i(b)s(e)f(written)0 2492 y(as)949 +2623 y Fo(q)f Fq(=)d Fo(q)1155 2637 y Fh(x)1199 2623 +y Fo(q)1240 2637 y Fh(y)1306 2623 y Fq(=)1402 2504 y +Fi(\022)1463 2529 y(h)1544 2623 y Fq(1)83 b(0)h(0)1888 +2529 y Fi(i)1927 2552 y Fh(T)1982 2623 y Fo(;)15 b(\022)2065 +2637 y Fh(x)2109 2504 y Fi(\023)g(\022)2246 2529 y(h)2327 +2623 y Fq(0)83 b(1)h(0)2671 2529 y Fi(i)2710 2552 y Fh(T)2765 +2623 y Fo(;)15 b(\022)2848 2637 y Fh(y)2890 2504 y Fi(\023)0 +2825 y Fq(This)31 b(is)i(inconsisten)m(t)f(with)g(the)h(de\014nition)e +(of)j(Euler)d(angles,)k(in)c(whic)m(h)h(eac)m(h)j(angle)e(is)f +(de\014ned)g(b)m(y)h(a)h(frame)0 2938 y(based)41 b(up)s(on)f(the)i +(previous)e(rotation.)75 b(This)40 b(problem)g(is)h(addressed)f(b)m(y)i +(co)s(ordinate)f(transformation)g(b)m(y)0 3051 y(quaternions:)0 +3264 y Fr(M-\014le)46 b Fj(qtrans)59 b Fq(T)-8 b(ransform)29 +b(a)i(quaternion)e(in)g(one)i(frame)f(to)h(the)g(co)s(ordinate)f(basis) +f(of)i(another)f(frame.)275 3489 y Fj(function)46 b(v)h(=)g +(qtrans\(v,q\))275 3602 y(transform)e(the)i(vector)f(v)i(\(in)f +(quaternion)e(form\))h(by)h(the)g(quaternion)e(q;)275 +3714 y(v)i(=)h([x)f(y)h(z)f(0],)g(q)g(=)h(transformation)c(quaternion) +275 3827 y(returns)i(v)h(=)h(q*v/q)0 4052 y Fr(Remark)34 +b(1.3)46 b Fq(Giv)m(en)34 b(a)h(quaternion)e Fo(q)1425 +4067 y Fh(f)1504 4052 y Fq(describing)f(the)j(rotation)f(from)g(an)g +(inertial)e(frame)i(\()p Fo(x)3463 4066 y Fk(1)3503 4052 +y Fo(;)15 b(y)3588 4066 y Fk(1)3628 4052 y Fo(;)g(z)3710 +4066 y Fk(1)3750 4052 y Fq(\))34 b(to)0 4165 y(second)24 +b(frame)f(\()p Fo(x)622 4179 y Fk(2)662 4165 y Fo(;)15 +b(y)747 4179 y Fk(2)787 4165 y Fo(;)g(z)869 4179 y Fk(2)909 +4165 y Fq(\),)25 b(a)f(quaternion)f Fo(q)1555 4179 y +Fh(r)1616 4165 y Fq(de\014ned)f(in)h(the)h(second)f(frame)h(ma)m(y)g(b) +s(e)f(applied)f(b)m(y)h(m)m(ultiplying)0 4278 y Fo(q)41 +4293 y Fh(f)86 4278 y Fo(q)127 4292 y Fh(r)164 4278 y +Fo(q)205 4293 y Fh(f)250 4245 y Ff(\000)p Fk(1)345 4278 +y Fq(:)111 4466 y(1.)46 b(T)-8 b(ransform)30 b(\(rotate\))i(frame)f(2)f +(\()p Fo(x)1424 4480 y Fk(2)1464 4466 y Fo(;)15 b(y)1549 +4480 y Fk(2)1589 4466 y Fo(;)g(z)1671 4480 y Fk(2)1711 +4466 y Fq(\))30 b(bac)m(k)h(to)h(the)e(inertial)e(frame.)111 +4653 y(2.)46 b(P)m(erform)31 b(the)f(rotation)h Fo(q)1124 +4667 y Fh(r)1161 4653 y Fq(.)111 4841 y(3.)46 b(Rotate)33 +b(bac)m(k)e(to)g(the)f(second)h(frame)f(via)g Fo(q)1745 +4856 y Fh(f)1790 4841 y Fq(.)0 5074 y(That)40 b(is,)h(if)e +Fo(q)499 5088 y Fh(r)577 5074 y Fq(=)689 4955 y Fi(\022)750 +4980 y(h)831 5074 y Fq(0)83 b(1)h(0)1175 4980 y Fi(i)1214 +5003 y Fh(T)1269 5074 y Fo(;)15 b(\022)1352 5088 y Fh(r)1390 +4955 y Fi(\023)1491 5074 y Fq(is)38 b(a)i(rotation)h(ab)s(out)e(the)h +Fo(y)j Fq(axis)c(in)f(the)i(frame)g(\()p Fo(x)3385 5088 +y Fk(2)3425 5074 y Fo(;)15 b(y)3510 5088 y Fk(2)3549 +5074 y Fo(;)g(z)3631 5088 y Fk(2)3671 5074 y Fq(\),)43 +b(the)0 5235 y(quaternion)29 b Fo(q)498 5250 y Fh(f)543 +5235 y Fo(q)584 5249 y Fh(r)622 5235 y Fo(q)663 5250 +y Fh(f)708 5202 y Ff(\000)p Fk(1)832 5235 y Fq(is)h(the)g(equiv)-5 +b(alen)m(t)30 b(rotation)h(in)e(the)i(frame)f(\()p Fo(x)2466 +5249 y Fk(1)2506 5235 y Fo(;)15 b(y)2591 5249 y Fk(1)2630 +5235 y Fo(;)g(z)2712 5249 y Fk(1)2752 5235 y Fq(\).)p +eop +5 4 bop 0 100 a Fn(A.)31 b(S.)f(Ho)s(del:)40 b(Quaternions)29 +b(\(In)m(tro)s(duction\))g Fo(R)q(ev)s(ision)d Fq(:)f(1)p +Fo(:)p Fq(1)436 b Fn(\(c\))31 b(1998)902 b Fq(5)0 399 +y Fr(Example)34 b(1.3)46 b(Quaternion)27 b(algebra)d +Fl(\000)p Fq(90)1672 366 y Ff(\016)1736 399 y Fq(rotation)h(ab)s(out)e +Fo(x)h Fq(follo)m(w)m(ed)g(b)m(y)g(90)2963 366 y Ff(\016)3028 +399 y Fq(rotation)g(ab)s(out)g(revised)0 522 y Fo(y)33 +b Fq(and)d Fo(z)k Fq(axes)d(is)f(equiv)-5 b(alen)m(t)30 +b(to)h(a)g(rotation)f(ab)s(out)g(the)2007 428 y Fi(h)2088 +522 y Fq(1)83 b(1)h(1)2432 428 y Fi(i)2501 522 y Fq(v)m(ector.)0 +711 y Fj(qx)95 b(=)47 b(quaternion\([1,0,0],-pi/2\);)184 +b(#)48 b(elementary)d(rotations)0 824 y(qy1)i(=)g +(quaternion\([0,1,0],pi/2\);)0 936 y(qz2)g(=)g +(quaternion\([0,0,1],pi/2\);)0 1162 y(qyi)g(=)g(qtrans\(qy1,qx\);)712 +b(#)48 b(transform)d(back)i(to)g(original)e(coordinates)0 +1275 y(qzi)i(=)g(qtrans\(qtrans\(qz2,qy1\),qx\))o(;)0 +1388 y(qzi2=)f(qtrans\(qz2,qyi\);)664 b(#)48 b(NOT)f(THE)f(SAME)h(as)g +(qzi!)0 1501 y(qzi3=)f(qtrans\(qz2,qmult\(qyi,qx\)\);)184 +b(#)48 b(This)e(matches)94 b(qzi)0 1727 y([qyiv,thyi])45 +b(=)i(quaternion\(qyi\))330 b(#)48 b(check)e(vectors,)g(angles)0 +1840 y([qziv,thzi])f(=)i(quaternion\(qzi\))0 1953 y([qzi2v,thz2i])d(=)k +(quaternion\(qzi2\))0 2066 y([qzi3v,thz3i])c(=)k(quaternion\(qzi3\))0 +2291 y(qtot)f(=)g(qmult\(qzi,qmult\(qyi,qx\)\))0 2404 +y(qtotchk)f(=)h(qmult\(qx,)f(qmult\(qy1,qz2\)\))118 2582 +y Fq(Output:)0 2741 y Fj(qyiv)h(=)g(0.00000)141 b(0.00000)94 +b(-1.00000)0 2854 y(thyi)47 b(=)g(1.5708)0 3013 y Fo(q)41 +3027 y Fh(y)76 3036 y Fe(1)145 3013 y Fq(in)29 b(the)h +Fo(q)448 3027 y Fh(x)522 3013 y Fq(frame)g(is)g(equiv)-5 +b(alen)m(t)29 b(to)j(a)e(rotation)h(ab)s(out)f(the)h(original)d +Fl(\000)p Fo(z)35 b Fq(axis.)0 3172 y Fj(qziv)47 b(=)g(1.0000e+00)141 +b(1.5701e-16)f(3.4863e-32)0 3285 y(thzi)47 b(=)g(1.5708)0 +3398 y(qzi2v)f(=)i(1.5701e-16)140 b(-1.5701e-16)188 b(1.0000e+00)0 +3511 y(thz2i)46 b(=)i(1.5708)0 3624 y(qzi3v)e(=)i(1.0000e+00)140 +b(1.9626e-16)h(3.9252e-17)0 3737 y(thz3i)46 b(=)i(1.5708)0 +3896 y Fq(One)29 b(ma)m(y)h(b)s(e)f(tempted)g(to)h(view)f +Fo(q)1227 3910 y Fh(y)1262 3920 y Fd(i)1321 3896 y Fq(as)h(the)g +(rotation)f(to)i(the)e(basis)f(frame)i(of)f Fo(q)2821 +3910 y Fh(z)2854 3919 y Fe(2)2892 3896 y Fq(,)h(but)f(this)f(is)h +(incorrect.)40 b Fo(q)3835 3910 y Fh(y)3870 3920 y Fd(i)0 +4009 y Fq(merely)33 b(represen)m(ts)g(the)g(rotation)h +Fo(q)1282 4023 y Fh(y)1317 4032 y Fe(1)1388 4009 y Fq(in)e(the)i +(reference)f(frame;)i(b)s(oth)e(rotations)g Fo(q)2972 +4023 y Fh(x)3049 4009 y Fq(and)g Fo(q)3270 4023 y Fh(y)3305 +4033 y Fd(i)3368 4009 y Fq(m)m(ust)g(b)s(e)g(used)0 4122 +y(to)e(bac)m(k-transform)g Fo(q)782 4136 y Fh(z)815 4145 +y Fe(2)883 4122 y Fq(in)m(to)g(the)f(reference)h(frame.)41 +b(This)28 b(is)i(sho)m(wn)f(as)i(follo)m(ws:)611 4292 +y Fo(q)652 4306 y Fh(y)687 4316 y Fd(i)800 4292 y Fq(=)83 +b Fo(q)995 4306 y Fh(x)1038 4292 y Fo(q)1079 4306 y Fh(y)1114 +4315 y Fe(1)1153 4292 y Fo(q)1194 4306 y Fh(x)1237 4254 +y Ff(\000)p Fk(1)613 4449 y Fo(q)654 4463 y Fh(z)687 +4473 y Fd(i)800 4449 y Fq(=)g Fo(q)995 4463 y Fh(x)1053 +4355 y Fi(\020)1103 4449 y Fo(q)1144 4463 y Fh(y)1179 +4472 y Fe(1)1217 4449 y Fo(q)1258 4463 y Fh(z)1291 4472 +y Fe(2)1329 4449 y Fo(q)1370 4463 y Fh(y)1405 4472 y +Fe(1)1444 4411 y Ff(\000)p Fk(1)1538 4355 y Fi(\021)1603 +4449 y Fo(q)1644 4463 y Fh(x)1687 4411 y Ff(\000)p Fk(1)578 +4614 y Fo(q)619 4628 y Fh(z)652 4638 y Fd(i)678 4628 +y Fk(2)800 4614 y Fq(=)g Fo(q)995 4628 y Fh(y)1030 4638 +y Fd(i)1060 4614 y Fo(q)1101 4628 y Fh(z)1134 4637 y +Fe(2)1172 4614 y Fo(q)1213 4628 y Fh(y)1248 4638 y Fd(i)1278 +4577 y Ff(\000)p Fk(1)800 4788 y Fq(=)g Fo(q)995 4802 +y Fh(x)1038 4788 y Fo(q)1079 4802 y Fh(y)1114 4811 y +Fe(1)1153 4788 y Fo(q)1194 4802 y Fh(x)1237 4751 y Ff(\000)p +Fk(1)1331 4788 y Fo(q)1372 4802 y Fh(z)1405 4811 y Fe(2)1443 +4694 y Fi(\020)1493 4788 y Fo(q)1534 4802 y Fh(x)1577 +4788 y Fo(q)1618 4802 y Fh(y)1653 4811 y Fe(1)1692 4788 +y Fo(q)1733 4802 y Fh(x)1776 4751 y Ff(\000)p Fk(1)1870 +4694 y Fi(\021)1920 4717 y Ff(\000)p Fk(1)2040 4788 y +Fq(=)25 b Fo(q)2177 4802 y Fh(x)2220 4788 y Fo(q)2261 +4802 y Fh(y)2296 4811 y Fe(1)2334 4788 y Fo(q)2375 4802 +y Fh(x)2419 4751 y Ff(\000)p Fk(1)2513 4788 y Fo(q)2554 +4802 y Fh(z)2587 4811 y Fe(2)2625 4788 y Fo(q)2666 4802 +y Fh(x)2710 4788 y Fo(q)2751 4802 y Fh(y)2786 4811 y +Fe(1)2824 4751 y Ff(\000)p Fk(1)2918 4788 y Fo(q)2959 +4802 y Fh(x)3003 4751 y Ff(\000)p Fk(1)3122 4788 y Fl(6)p +Fq(=)g Fo(q)3259 4802 y Fh(z)3292 4812 y Fd(i)578 4958 +y Fo(q)619 4972 y Fh(z)652 4982 y Fd(i)678 4972 y Fk(3)800 +4958 y Fq(=)83 b(\()p Fo(q)1030 4972 y Fh(y)1065 4982 +y Fd(i)1095 4958 y Fo(q)1136 4972 y Fh(x)1180 4958 y +Fq(\))15 b Fo(q)1271 4972 y Fh(z)1304 4981 y Fe(2)1342 +4958 y Fq(\()q Fo(q)1419 4972 y Fh(y)1454 4982 y Fd(i)1484 +4958 y Fo(q)1525 4972 y Fh(x)1568 4958 y Fq(\))1603 4916 +y Ff(\000)p Fk(1)1723 4958 y Fq(=)25 b Fo(q)1860 4972 +y Fh(y)1895 4981 y Fe(1)1933 4958 y Fo(q)1974 4972 y +Fh(x)2018 4958 y Fo(q)2059 4972 y Fh(z)2092 4981 y Fe(2)2130 +4958 y Fo(q)2171 4972 y Fh(x)2214 4921 y Ff(\000)p Fk(1)2309 +4958 y Fo(q)2350 4972 y Fh(y)2385 4981 y Fe(1)2423 4921 +y Ff(\000)p Fk(1)2542 4958 y Fq(=)g Fo(q)2679 4972 y +Fh(z)2712 4982 y Fd(i)0 5274 y Fj(qtot)47 b(=)g(-5.5511e-17)188 +b(7.0711e-01)g(1.2326e-32)g(7.0711e-01)0 5387 y(qtotchk)46 +b(=)h(-5.5511e-17)188 b(7.0711e-01)g(5.5511e-17)h(7.0711e-01)p +eop +6 5 bop 0 100 a Fn(A.)31 b(S.)f(Ho)s(del:)40 b(Quaternions)29 +b(\(In)m(tro)s(duction\))g Fo(R)q(ev)s(ision)d Fq(:)f(1)p +Fo(:)p Fq(1)436 b Fn(\(c\))31 b(1998)902 b Fq(6)0 399 +y Fm(1.4)112 b(Application)35 b(of)j(quaternions)g(in)e(co)s(ordinate)i +(frame)f(transformations)0 570 y Fq(In)m(terpretations)30 +b(of)h(quaternions.)0 810 y Fr(1.4.1)105 b(Euler)35 b(angles)0 +982 y Fq(\(y)m(a)m(w-pitc)m(h-roll\))71 b(ma)m(y)36 b(b)s(e)f(used)g +(to)h(construct)g(an)f(inertial-to-b)s(o)s(dy)e(quaterion)i +Fo(q)2995 997 y Fh(bi)3088 982 y Fq(as)h(follo)m(ws.)55 +b(The)35 b(y)m(a)m(w)0 1095 y(rotation)c(is)e(ab)s(out)h(the)h +Fo(z)j Fq(axis)c(in)f(the)i(inertial)d(frame)1508 1299 +y Fo(q)1549 1313 y Fh(y)1615 1299 y Fq(=)1711 1205 y +Fi(\020h)1841 1299 y Fq(0)84 b(0)f(1)2185 1205 y Fi(i)2240 +1299 y Fo(;)15 b( )2342 1205 y Fi(\021)0 1519 y Fq(The)30 +b(pitc)m(h)g(rotation)g(is)g(ab)s(out)g(the)g Fo(y)k +Fq(axis)29 b(in)h(frame)g(1)h(\()p Fo(y)s Fq(-axis)f(after)h(the)f(y)m +(a)m(w)i(rotation)e(is)g(made\))1500 1739 y Fo(q)1541 +1753 y Fh(p)1577 1762 y Fe(1)1640 1739 y Fq(=)1736 1644 +y Fi(\020h)1866 1739 y Fq(0)84 b(1)f(0)2210 1644 y Fi(i)2265 +1739 y Fo(;)15 b(\022)2351 1644 y Fi(\021)0 1953 y Fq(The)30 +b(roll)f(rotation)h(is)g(made)g(ab)s(out)g(the)h Fo(x)f +Fq(axis)g(in)f(frame)h(2)1495 2158 y Fo(q)1536 2172 y +Fh(r)1568 2181 y Fe(2)1631 2158 y Fq(=)1727 2063 y Fi(\020h)1857 +2158 y Fq(1)84 b(0)f(0)2201 2063 y Fi(i)2256 2158 y Fo(;)15 +b(')2355 2063 y Fi(\021)0 2372 y Fq(In)28 b(order)g(to)h(construct)g(a) +g(single)e(quaterion)h Fo(q)1626 2387 y Fh(bi)1712 2372 +y Fq(relating)g(the)g(inertial)f(to)i(b)s(o)s(dy)e(axis)h(rotation,)h +(rotations)g Fo(q)3826 2386 y Fh(p)3862 2395 y Fe(1)0 +2485 y Fq(and)h Fo(q)218 2499 y Fh(r)250 2508 y Fe(2)318 +2485 y Fq(m)m(ust)g(b)s(e)g(expressed)g(in)f(the)i(inertial)d(frame:) +1199 2689 y Fo(q)1240 2703 y Fh(p)1363 2689 y Fq(=)82 +b Fo(q)1557 2703 y Fh(y)1598 2689 y Fo(q)1639 2703 y +Fh(p)1675 2712 y Fe(1)1713 2689 y Fo(q)1754 2703 y Fh(y)1795 +2652 y Ff(\000)p Fk(1)1201 2827 y Fo(q)1242 2841 y Fh(r)1363 +2827 y Fq(=)g Fo(q)1557 2841 y Fh(y)1598 2827 y Fo(q)1639 +2841 y Fh(r)1671 2850 y Fe(1)1710 2827 y Fo(q)1751 2841 +y Fh(y)1792 2790 y Ff(\000)p Fk(1)1911 2827 y Fq(=)25 +b Fo(q)2048 2841 y Fh(y)2089 2827 y Fo(q)2130 2841 y +Fh(p)2166 2850 y Fe(1)2204 2827 y Fo(q)2245 2841 y Fh(r)2277 +2850 y Fe(2)2315 2827 y Fo(q)2356 2841 y Fh(p)2392 2850 +y Fe(1)2430 2790 y Ff(\000)p Fk(1)2524 2827 y Fo(q)2565 +2841 y Fh(y)2606 2790 y Ff(\000)p Fk(1)0 3032 y Fq(and)30 +b(so)756 3144 y Fo(q)797 3159 y Fh(bi)881 3144 y Fq(=)24 +b Fo(q)1017 3158 y Fh(r)1055 3144 y Fo(q)1096 3159 y +Fh(b)1130 3144 y Fo(q)1171 3158 y Fh(y)1237 3144 y Fq(=)1333 +3050 y Fi(\020)1383 3144 y Fo(q)1424 3158 y Fh(y)1465 +3144 y Fo(q)1506 3158 y Fh(p)1542 3167 y Fe(1)1580 3144 +y Fo(q)1621 3158 y Fh(r)1653 3167 y Fe(2)1691 3144 y +Fo(q)1732 3158 y Fh(p)1768 3167 y Fe(1)1806 3107 y Ff(\000)p +Fk(1)1900 3144 y Fo(q)1941 3158 y Fh(y)1982 3107 y Ff(\000)p +Fk(1)2076 3050 y Fi(\021)15 b(\020)2191 3144 y Fo(q)2232 +3158 y Fh(y)2273 3144 y Fo(q)2314 3158 y Fh(p)2350 3167 +y Fe(1)2387 3144 y Fo(q)2428 3158 y Fh(y)2469 3107 y +Ff(\000)p Fk(1)2564 3050 y Fi(\021)2628 3144 y Fo(y)2673 +3158 y Fh(y)2740 3144 y Fq(=)25 b Fo(q)2877 3158 y Fh(y)2918 +3144 y Fo(q)2959 3158 y Fh(p)2995 3167 y Fe(1)3033 3144 +y Fo(q)3074 3158 y Fh(r)3106 3167 y Fe(2)0 3322 y Fq(Notice)30 +b(that)f(the)g(order)g(of)g(the)g(rotations)g(is)f(rev)m(ersed)h(when)e +(the)i(un)m(transformed)f(rotations)h Fo(q)3374 3336 +y Fh(y)3415 3322 y Fq(,)g Fo(q)3510 3336 y Fh(p)3546 +3345 y Fe(1)3584 3322 y Fq(,)h Fo(q)3680 3336 y Fh(r)3712 +3345 y Fe(2)3779 3322 y Fq(are)0 3435 y(used)g(instead)f(of)i +(quaternions)e(transformed)h(to)h(the)f(inertial)f(frame)h +Fo(q)2504 3449 y Fh(r)2541 3435 y Fq(,)h Fo(q)2638 3450 +y Fh(b)2672 3435 y Fq(,)f Fo(q)2768 3449 y Fh(y)2809 +3435 y Fq(.)0 3675 y Fr(1.4.2)105 b(Co)s(ordinate)35 +b(transformation)f(matrices)g(and)h(quaternions)0 3846 +y Fq(A)26 b(unit)e(quaternion)g(\()p Fo(v)s(;)15 b(\022)s +Fq(\))26 b(ma)m(y)g(b)s(e)f(in)m(terpreted)f(as)i(a)g(rotation)g(of)f +Fo(\022)j Fq(degrees)e(ab)s(out)f(the)h(axis)f Fo(v)s +Fq(.)39 b(Application)0 3959 y(of)31 b(this)e(rotation)i(to)g(a)f(v)m +(ector)i Fo(x)f Fq(is)e(illustrated)f(b)s(elo)m(w:)903 +4721 y Fo(v)23 b Fl(\002)d Fo(x)p 3 setlinewidth np 1604 +4343 453 151 0.00 360.00 ellipse st 3 setlinewidth np +1604 5250 a 1604 4344 li st 3 setlinewidth np 1619 4404 +a 1604 4344 li 1588 4404 li st 3 setlinewidth np 1604 +5250 a 1604 4948 li st 3 setlinewidth np 1619 5009 a +1604 4948 li 1588 5009 li st 3 setlinewidth np 1604 5250 +a 1150 4344 li st 3 setlinewidth np 1191 4391 a 1150 +4344 li 1164 4405 li st 3 setlinewidth np 1151 4343 a +1177 4343 li st 3 setlinewidth np 1204 4343 a 1230 4343 +li st 3 setlinewidth np 1257 4343 a 1283 4343 li st 3 +setlinewidth np 1311 4343 a 1337 4343 li st 3 setlinewidth +np 1364 4343 a 1390 4343 li st 3 setlinewidth np 1417 +4343 a 1443 4343 li st 3 setlinewidth np 1471 4343 a +1497 4343 li st 3 setlinewidth np 1524 4343 a 1550 4343 +li st 3 setlinewidth np 1577 4343 a 1603 4343 li st 3 +setlinewidth np 1604 4343 a 1586 4357 li st 3 setlinewidth +np 1570 4371 a 1552 4385 li st 3 setlinewidth np 1536 +4398 a 1518 4412 li st 3 setlinewidth np 1502 4425 a +1484 4439 li st 3 setlinewidth np 1468 4452 a 1450 4466 +li st 3 setlinewidth np 1434 4479 a 1416 4493 li st 3 +setlinewidth np 1452 4446 a 1415 4495 li 1471 4469 li +st 3 setlinewidth np 1604 5250 a 1452 4495 li st 3 setlinewidth +np 1479 4551 a 1452 4495 li 1449 4557 li st 3 setlinewidth +np 2207 4722 a 1641 4571 li st 3 setlinewidth np 1703 +4572 a 1641 4571 li 1695 4601 li st 3 setlinewidth np +1868 4118 a 1377 4382 li st 3 setlinewidth np 1423 4340 +a 1377 4382 li 1437 4367 li st 3 setlinewidth np 1151 +4343 a 1151 4370 li st 3 setlinewidth np 1151 4398 a +1151 4425 li st 3 setlinewidth np 1151 4453 a 1151 4480 +li st 3 setlinewidth np 1151 4508 a 1151 4535 li st 3 +setlinewidth np 1151 4563 a 1151 4590 li st 3 setlinewidth +np 1151 4618 a 1151 4645 li st 3 setlinewidth np 1135 +4586 a 1150 4646 li 1165 4586 li st 1642 5061 a(v)1113 +4343 y(x)1257 4532 y(\022)2246 4759 y Fl(h)p Fo(x;)15 +b(v)s Fl(i)p Fo(v)2246 4872 y Fq(pro)5 b(jection)30 b(of)g +Fo(x)h Fq(on)m(to)g Fo(v)1906 4117 y Fq(pro)5 b(jection)30 +b(of)h Fo(x)f Fq(o\013)h(of)f Fo(v)1906 4230 y(x)20 b +Fl(\000)g(h)p Fo(x;)15 b(v)s Fl(i)p Fo(v)p 3 setlinewidth +np 1481 4060 435 93.73 139.40 arc st 3 setlinewidth np +1391 4506 a 1452 4495 li 1393 4476 li st eop +7 6 bop 0 100 a Fn(A.)31 b(S.)f(Ho)s(del:)40 b(Quaternions)29 +b(\(In)m(tro)s(duction\))g Fo(R)q(ev)s(ision)d Fq(:)f(1)p +Fo(:)p Fq(1)436 b Fn(\(c\))31 b(1998)902 b Fq(7)0 399 +y(The)28 b(v)m(ector)h Fo(x)507 413 y Fh(e)569 399 y +Fq(=)c Fl(h)q Fo(x;)15 b(v)s Fl(i)h Fo(v)31 b Fq(is)c(the)h(pro)5 +b(jection)28 b(of)g Fo(x)g Fq(on)m(to)i Fo(v)h Fq(and)c(is)h(unc)m +(hanged)f(b)m(y)h(the)g(rotation.)41 b(The)27 b(v)m(ector)0 +511 y Fo(x)52 526 y Fh(e)p Ff(?)171 511 y Fq(=)g Fo(x)22 +b Fl(\000)e Fo(x)486 525 y Fh(e)555 511 y Fq(is)31 b(orthogonal)h(to)g +Fo(v)j Fq(and)c(is)g(rotated)i(b)m(y)f Fo(\022)h Fq(degrees)g(ab)s(out) +e Fo(x)p Fq(.)45 b(The)31 b(plane)g(of)h(the)g(rotation)g(is)0 +624 y(spanned)d(b)m(y)h Fo(x)532 639 y Fh(e)p Ff(?)654 +624 y Fq(and)g Fo(v)24 b Fl(\002)c Fo(x)30 b Fq(Th)m(us)f(the)i +(rotated)g(v)m(ector)h Fo(x)20 b Fl(\000)g Fo(r)33 b +Fq(ma)m(y)e(b)s(e)f(written)f(as)1127 782 y Fo(x)1179 +796 y Fh(r)1242 782 y Fq(=)c Fo(x)1390 796 y Fh(e)1447 +782 y Fq(+)20 b(\()p Fo(x)g Fl(\000)g Fo(x)1788 796 y +Fh(e)1825 782 y Fq(\))15 b(cos)q(\()p Fo(\022)s Fq(\))20 +b(+)g(\()p Fo(v)k Fl(\002)c Fo(x)p Fq(\))15 b(sin)o(\()p +Fo(\022)s Fq(\))p Fo(:)940 b Fq(\(1.4\))0 941 y(where)41 +b(the)h(\014rst)f(term)h(re\015ects)g(the)g(unc)m(hanged)f(p)s(ortion)f +(of)i Fo(x)f Fq(and)g(the)h(second)g(t)m(w)m(o)h(terms)f(denote)g(the)0 +1054 y(rotation)31 b(in)e(the)h(plane)g(normal)f(to)i +Fo(v)s Fq(.)118 1166 y(The)c(co)s(ordinate)g(transformation)f(applied)f +(to)j Fo(x)e Fq(ma)m(y)i(b)s(e)f(computed)f(b)m(y)h(applying)e +(equation)i(\(1.4\))i(to)f(the)0 1279 y Fo(x)p Fq(,)j +Fo(y)s Fq(,)f Fo(z)k Fq(unit)29 b(v)m(ectors.)43 b(The)29 +b(ab)s(o)m(v)m(e)j(application)d(in)m(v)m(olv)m(es)h(the)h(rotation)f +(of)h(a)g(v)m(ector)h(ab)s(out)e(an)g(axis.)40 b(Since)730 +1354 y Fi(2)730 1500 y(6)730 1553 y(4)827 1435 y Fo(v)871 +1449 y Fk(1)827 1548 y Fo(v)871 1562 y Fk(2)827 1660 +y Fo(v)871 1674 y Fk(3)952 1354 y Fi(3)952 1500 y(7)952 +1553 y(5)1027 1548 y Fl(\002)1118 1354 y Fi(2)1118 1500 +y(6)1118 1553 y(4)1215 1435 y Fo(x)1217 1548 y(y)1215 +1660 y(x)1309 1354 y Fi(3)1309 1500 y(7)1309 1553 y(5)1389 +1548 y Fq(=)25 b(\()p Fo(v)1564 1562 y Fk(2)1604 1548 +y Fo(z)f Fl(\000)c Fo(v)1805 1562 y Fk(3)1845 1548 y +Fo(y)s Fq(\))1921 1527 y(^)1928 1548 y Fo(i)h Fq(+)e(\()p +Fo(v)2149 1562 y Fk(3)2189 1548 y Fo(x)h Fl(\000)g Fo(v)2396 +1562 y Fk(1)2436 1548 y Fo(z)t Fq(\))2516 1527 y(^)2517 +1548 y Fo(j)26 b Fq(+)20 b(\()p Fo(v)2750 1562 y Fk(1)2790 +1548 y Fo(y)j Fl(\000)d Fo(v)2993 1562 y Fk(2)3033 1548 +y Fo(x)p Fq(\))p Fo(k)0 1814 y Fq(w)m(e)31 b(ma)m(y)g(write)1062 +2082 y Fo(x)1114 2096 y Fh(r)1235 2082 y Fq(=)82 b Fo(v)1432 +2096 y Fk(1)1472 2082 y Fo(v)23 b Fq(+)d(\()p Fo(x)h +Fl(\000)f Fo(v)1873 2096 y Fk(1)1912 2082 y Fo(v)s Fq(\))15 +b(cos)i Fo(\022)22 b Fq(+)2303 1888 y Fi(2)2303 2034 +y(6)2303 2087 y(4)2454 1969 y Fq(0)2435 2082 y Fo(v)2479 +2096 y Fk(3)2400 2195 y Fl(\000)p Fo(v)2515 2209 y Fk(2)2596 +1888 y Fi(3)2596 2034 y(7)2596 2087 y(5)2666 2082 y Fq(sin)14 +b Fo(\022)1069 2464 y(y)1114 2478 y Fh(r)1235 2464 y +Fq(=)82 b Fo(v)1432 2478 y Fk(2)1472 2464 y Fo(v)23 b +Fq(+)d(\()p Fo(x)h Fl(\000)f Fo(v)1873 2478 y Fk(2)1912 +2464 y Fo(v)s Fq(\))15 b(cos)i Fo(\022)22 b Fq(+)2303 +2270 y Fi(2)2303 2416 y(6)2303 2469 y(4)2400 2351 y Fl(\000)p +Fo(v)2515 2365 y Fk(3)2454 2464 y Fq(0)2435 2577 y Fo(v)2479 +2591 y Fk(1)2596 2270 y Fi(3)2596 2416 y(7)2596 2469 +y(5)2666 2464 y Fq(sin)14 b Fo(\022)1071 2846 y(z)1113 +2860 y Fh(r)1235 2846 y Fq(=)82 b Fo(v)1432 2860 y Fk(3)1472 +2846 y Fo(v)23 b Fq(+)d(\()p Fo(x)h Fl(\000)f Fo(v)1873 +2860 y Fk(3)1912 2846 y Fo(v)s Fq(\))15 b(cos)i Fo(\022)22 +b Fq(+)2303 2652 y Fi(2)2303 2798 y(6)2303 2851 y(4)2435 +2733 y Fo(v)2479 2747 y Fk(2)2400 2846 y Fl(\000)p Fo(v)2515 +2860 y Fk(1)2454 2958 y Fq(0)2596 2652 y Fi(3)2596 2798 +y(7)2596 2851 y(5)2666 2846 y Fq(sin)14 b Fo(\022)0 3119 +y Fq(\(The)30 b(signs)f(are)i(rev)m(ersed)g(since)e(w)m(e're)j(mo)m +(ving)e(the)g(co)s(ordinate)h(axes,)g(not)f(the)h(v)m(ector.\))118 +3232 y(An)26 b(alternativ)m(e)h(deriv)-5 b(ation)24 b(for)i(the)h +(transformation)e(matrix)h(from)g(equation)g(\(1.4\))i(is)d(as)h(follo) +m(ws.)39 b(De\014ne)7 3379 y(\026)-52 b Fo(q)28 b Fq(=)d(imag)q(\()p +Fo(q)s Fq(\))h(=)594 3285 y Fi(h)675 3379 y Fo(q)716 +3393 y Fk(1)838 3379 y Fo(q)879 3393 y Fk(2)1001 3379 +y Fo(q)1042 3393 y Fk(3)1122 3285 y Fi(i)1162 3308 y +Fh(T)1242 3379 y Fq(=)f Fo(v)18 b Fq(sin)o(\()p Fo(\022)s(=)p +Fq(2\),)31 b Fl(k)q Fo(v)s Fl(k)26 b Fq(=)f(1.)41 b(Then)359 +3568 y Fo(x)411 3582 y Fh(r)532 3568 y Fq(=)83 b Fo(v)s(v)780 +3530 y Fh(T)836 3568 y Fo(x)20 b Fq(+)g(\()p Fo(x)g Fl(\000)g +Fo(v)s(v)1291 3530 y Fh(T)1347 3568 y Fo(x)p Fq(\))15 +b(cos)q(\()p Fo(\022)s Fq(\))20 b Fl(\000)g Fq(\(\()p +Fo(v)k Fl(\002)c Fo(e)2069 3582 y Fk(1)2109 3568 y Fq(\))p +Fo(x)2196 3582 y Fk(1)2256 3568 y Fq(+)g(\()p Fo(v)k +Fl(\002)c Fo(e)2583 3582 y Fk(2)2622 3568 y Fq(\))p Fo(x)2709 +3582 y Fk(2)2769 3568 y Fq(+)g(\()p Fo(v)k Fl(\002)c +Fo(e)3096 3582 y Fk(3)3136 3568 y Fq(\))p Fo(x)3223 3582 +y Fk(3)3263 3568 y Fq(\))15 b(sin)o(\()p Fo(\022)s Fq(\))532 +3721 y(=)686 3627 y Fi(\020)736 3721 y Fo(I)22 b Fq(cos)16 +b Fo(\022)22 b Fq(+)e Fo(v)s(v)1185 3684 y Fh(T)1241 +3721 y Fq(\(1)h Fl(\000)f Fq(cos)c Fo(\022)s Fq(\))j(+)h(\()p +Fo(v)k Fl(\002)c Fo(I)7 b Fq(\))15 b(sin)f Fo(\022)2225 +3627 y Fi(\021)2289 3721 y Fo(x)0 3890 y Fq(where)31 +b Fo(v)24 b Fl(\002)d Fo(I)38 b Fq(is)31 b(de\014ned)f(b)m(y)h(the)h +(column-b)m(y-column)e(v)m(ector)j(cross)e(pro)s(duct.)43 +b(F)-8 b(rom)32 b(equation)f(1.3)i(and)e(the)0 4003 y(trigonometric)f +(half-angle)g(form)m(ulae)g(w)m(e)h(ha)m(v)m(e)519 4172 +y(cos)16 b Fo(\022)85 b Fq(=)e(cos)1060 4134 y Fk(2)1099 +4172 y Fq(\()p Fo(\022)s(=)p Fq(2\))21 b Fl(\000)f Fq(sin)1529 +4134 y Fk(2)1568 4172 y Fq(\()p Fo(\022)s(=)p Fq(2\))26 +b(=)f(1)c Fl(\000)f Fq(2)15 b(sin)2225 4134 y Fk(2)2264 +4172 y Fq(\()p Fo(\022)s(=)p Fq(2\))26 b(=)f(1)c Fl(\000)f +Fq(2)2809 4077 y Fi(\020)2859 4172 y Fq(1)h Fl(\000)f +Fq(real)o(\()p Fo(q)s Fq(\))3276 4134 y Fk(2)3316 4077 +y Fi(\021)529 4325 y Fq(sin)14 b Fo(\022)85 b Fq(=)e(2)15 +b(cos)q(\()p Fo(\022)s(=)p Fq(2\))g(sin\()p Fo(\022)s(=)p +Fq(2\))26 b(=)f(2real\()p Fo(q)s Fq(\))15 b(sin)o(\()p +Fo(\022)s(=)p Fq(2\))26 b(=)f(2)p Fo(q)2629 4339 y Fk(4)2684 +4325 y Fq(sin)o(\()p Fo(\022)s(=)p Fq(2\))p Fo(:)0 4483 +y Fq(Substituting)j(the)i(ab)s(o)m(v)m(e)i(in)m(to)e +Fo(x)1171 4497 y Fh(r)1239 4483 y Fq(w)m(e)h(obtain)530 +4702 y Fo(x)582 4716 y Fh(r)702 4702 y Fq(=)856 4558 +y Fi(")905 4702 y Fo(I)7 b Fq(\(2)p Fo(q)1076 4664 y +Fk(2)1073 4724 y(4)1136 4702 y Fl(\000)20 b Fq(1\))h(+)f(2)p +Fo(v)s(v)1558 4664 y Fh(T)1629 4558 y Fi( )1705 4640 +y Fq(sin)1816 4606 y Fk(2)1856 4640 y Fq(\()p Fo(\022)s(=)p +Fq(2\))p 1705 4681 358 4 v 1705 4768 a(sin)1816 4733 +y Fk(2)1856 4768 y Fq(\()p Fo(\022)s(=)p Fq(2\))2073 +4558 y Fi(!)2154 4702 y Fq(\(1)h Fl(\000)e Fo(q)2389 +4664 y Fk(2)2386 4724 y(4)2429 4702 y Fq(\))h(+)g(2\()p +Fo(v)25 b Fl(\002)19 b Fo(I)7 b Fq(\))p Fo(q)2937 4716 +y Fk(4)2992 4702 y Fq(sin)14 b Fo(\022)s(=)p Fq(2)3255 +4558 y Fi(#)3319 4702 y Fo(x)702 4984 y Fq(=)856 4840 +y Fi(")905 4984 y Fo(I)7 b Fq(\(2)p Fo(q)1076 4946 y +Fk(2)1073 5006 y(4)1136 4984 y Fl(\000)20 b Fq(1\))h(+)f(2)7 +b(\026)-52 b Fo(q)10 b Fq(\026)-52 b Fo(q)1552 4946 y +Fh(T)1742 4922 y Fq(1)20 b Fl(\000)g Fo(q)1942 4889 y +Fk(2)1939 4945 y(4)p 1617 4963 490 4 v 1617 5046 a Fq(1)h +Fl(\000)f Fq(cos)1895 5020 y Fk(2)1935 5046 y Fq(\()p +Fo(\022)s(=)p Fq(2)2136 4984 y(+)g(2\()7 b(\026)-52 b +Fo(q)24 b Fl(\002)c Fo(I)7 b Fq(\))p Fo(q)2586 4998 y +Fk(4)2625 4840 y Fi(#)2689 4984 y Fo(x)702 5216 y Fq(=)856 +5122 y Fi(h)895 5216 y Fo(I)g Fq(\(2)p Fo(q)1066 5179 +y Fk(2)1063 5239 y(4)1127 5216 y Fl(\000)20 b Fq(1\))h(+)f(2)7 +b(\026)-52 b Fo(q)10 b Fq(\026)-52 b Fo(q)1543 5179 y +Fh(T)1618 5216 y Fq(+)20 b(2\()7 b(\026)-52 b Fo(q)24 +b Fl(\002)c Fo(I)7 b Fq(\))p Fo(q)2068 5230 y Fk(4)2107 +5122 y Fi(i)2161 5216 y Fo(x)702 5384 y Fq(=)83 b(\(2)p +Fo(q)980 5347 y Fk(2)977 5407 y(4)1040 5384 y Fl(\000)20 +b Fq(1\))p Fo(x)h Fq(+)f(2)7 b(\026)-52 b Fo(q)10 b Fq(\026)-51 +b Fo(q)1509 5347 y Fh(T)1563 5384 y Fo(x)21 b Fq(+)f(2)p +Fo(q)1813 5398 y Fk(4)1852 5384 y Fq(\()7 b(\026)-52 +b Fo(q)23 b Fl(\002)d Fo(x)p Fq(\))p eop +8 7 bop 0 100 a Fn(A.)31 b(S.)f(Ho)s(del:)g(Quaternions)f(\(In)m(tro)s +(duction\))g Fo(R)q(ev)s(ision)d Fq(:)f(1)p Fo(:)p Fq(1)439 +b Fn(\(c\))32 b(1998)908 b Fq(8)0 399 y Fr(Remark)34 +b(1.4)46 b Fq(The)32 b(ab)s(o)m(v)m(e)i(deriv)-5 b(ation)31 +b(treats)i(a)f(quaternion)g(as)g(a)h(transformation)e(up)s(on)g(a)i(v)m +(ector)g(within)0 511 y(a)f(linear)d(space.)44 b(An)31 +b(alternativ)m(e)h(con)m(v)m(en)m(tion)g(is)f(used)f(in)g([R)-10 +b(W91)r(],)31 b(in)f(whic)m(h)g(the)i(quaternion)e(is)g(treated)j(as)0 +624 y(a)e(transformation)e(up)s(on)g(the)h(basis)g(v)m(ectors)h(of)g(a) +f(frame.)41 b(The)30 b(latter)g(con)m(v)m(en)m(tion)i(results)d(in)g(a) +i(sign)e(c)m(hange)0 737 y(of)i(the)f(angle)g(of)h(rotation,)g(i.e.,) +1150 941 y Fo(x)1202 955 y Fh(r)1323 941 y Fq(=)83 b(\(2)p +Fo(q)1601 904 y Fk(2)1598 964 y(4)1661 941 y Fl(\000)20 +b Fq(1\))p Fo(x)h Fq(+)f(2)7 b(\026)-52 b Fo(q)10 b Fq(\026)-52 +b Fo(q)2129 904 y Fh(T)2184 941 y Fo(x)20 b Fq(+)g(2)p +Fo(q)2433 955 y Fk(4)2472 941 y Fq(\()7 b(\026)-52 b +Fo(q)24 b Fl(\002)c Fo(x)p Fq(\))0 1146 y(Use)29 b(of)g(the)f(latter)h +(con)m(v)m(en)m(tion)h(results)d(in)g(a)i(similar)d(c)m(hange)k(in)d +(sign)h(in)f(the)i(time)f(deriv)-5 b(ativ)m(e)28 b(of)h(the)f(quater-)0 +1259 y(nion,)h(discussed)g(in)g(1.5.)0 1471 y Fr(M-\014le)46 +b Fj(qtransv)28 b Fq(Rotate)k(a)f(v)m(ector)227 1696 +y Fj(qtransv)46 b(is)h(the)g(function)f(defined)g(from:)g +(/home3/hodel/oct/quat/qt)o(rans)o(v.m)275 1922 y(vr)h(=)h +(qtransv\(vv,qr\))275 2035 y(rotate)e(a)i(3-vector)d(as)i(specified)f +(by)h(quaternion)e(qr)275 2148 y(q)i(=)h(\(ee,th\))93 +b(\(vector,)46 b(angle)g(notation\))275 2261 y(vr)h(=)h(\(vv)f(.)g +(ee\)*ee)f([projection)f(on)i(ee)g(unchanged)e(])514 +2374 y(+)i([vv)g(-)g(\(vv)g(.)h(ee\)*ee])e(cos\(th\))93 +b([what's)46 b(left)h(gets)f(scaled)g(by)i(cosine])514 +2487 y(+)f(\(vv)g(x)g(ee\))g(sin\(th\))571 b([and)47 +b(the)g(sine)f(term)h(completes)e(the)i(rotation])0 2711 +y Fr(M-\014le)f Fj(qtransvmat)57 b Fq(Obtain)30 b(3)20 +b Fl(\002)g Fq(3)31 b(rotation)g(matrix)e(from)h(a)h(quaternion)275 +2936 y Fj([xv,yv,zv])45 b(=)i(qtransvmat\(q\))275 3049 +y(xm)g(=)h(qtransvmat\(q\),)c(xm)j(=)g([xv)g(yv)g(zv])275 +3162 y(compute)f(x,y,z)g(axes)h(rotated)f(per)h(specified)e(quaternion) +g(q)0 3387 y Fr(Example)34 b(1.4)46 b Fq(Use)30 b(of)h(quaternions)e +(to)i(view)f(b)s(o)s(dy/inertial)d(frame)k(transformations:)0 +3575 y Fj(degrees)46 b(=)h(pi/180;)189 b(daz)47 b(=)h(30*degrees;)188 +b(del)46 b(=)i(-20*degrees;)0 3688 y(qazimuth)e(=)h +(quaternion\([0,0,1],daz\);)0 3801 y(qelevation)e(=)i +(quaternion\([cos\(daz\),sin\(d)o(az\),)o(0],)o(del\))o(;)0 +3914 y(qview)f(=)i(qmult\(qelevation,qazimut)o(h\);)0 +4139 y(th)f(=)h(0:5:20;)0 4252 y(ov)f(=)h(ones\(size\(th\)\);)0 +4365 y(myth)f(=)g([th,max\(th\)*ov)d(;)j(0*ov,th];)0 +4478 y(myth)g(=)g([[0:5:20])e(,)j(20*ones\(1,4\),20*ones\(1,4)o(\);)41 +b(...)382 4591 y(zeros\(1,5\),)k(5:5:20,)g(20*ones\(1,4\);)g(...)382 +4704 y(zeros\(1,5\),)g(zeros\(1,4\),)f([5:5:20]];)0 4930 +y(#)j(inertial)f(frame)g(quaternion)0 5043 y(qin)h(=)g(quaternion\([1)e +(0)i(0],180*degrees\);)0 5156 y(for)g(kk=1:length\(myth\(1,:\)\))95 +5269 y(figure\(kk\))95 5381 y(thy)g(=)h(myth\(1,kk\);)140 +b(thp)47 b(=)g(myth\(2,kk\);)141 b(thr)46 b(=)i(myth\(3,kk\);)p +eop +9 8 bop 0 100 a Fn(A.)31 b(S.)f(Ho)s(del:)40 b(Quaternions)29 +b(\(In)m(tro)s(duction\))g Fo(R)q(ev)s(ision)d Fq(:)f(1)p +Fo(:)p Fq(1)436 b Fn(\(c\))31 b(1998)902 b Fq(9)95 399 +y Fj(#)48 b(avoid)e(transformations)e(by)j(reversing)e(the)i(order)g +(of)g(multiplication!)95 511 y(qyi)g(=)h(quaternion\([0,0,1],thy*d)o +(egr)o(ees\))o(;)95 624 y(qp1)f(=)h(quaternion\([0,1,0],thp*d)o(egr)o +(ees\))o(;)95 737 y(qr2)f(=)h(quaternion\([1,0,0],thr*d)o(egr)o(ees\))o +(;)95 850 y(qbi)f(=)h(qmult\(qyi,qmult\(qp1,qr2\))o(\);)95 +1076 y(printf\("yaw=\0458.4f,)43 b(pitch=\0458.4f,)i(\\n)190 +b(qbi)47 b(=)g(\(\0458.4f\)i)f(+)h(\(\0458.4e\)j)f(+)h(\(\0458.4f\)k)f +(+)h(\()0 1189 y(\0458.4f\)\\n",thy,thp,)c(...)382 1302 +y(qbi\(1\),)j(qbi\(2\),)f(qbi\(3\),)h(qbi\(4\)\);)95 +1415 y([vv,th])g(=)i(quaternion\(qbi\);)95 1528 y(printf\(")285 +b(=)47 b(\(vector\))f(=)h([\0458.4f)f(\0458.4f)h(\0458.4f],)e +(th=\0455.2f)h(deg\\n",)g(...)382 1641 y(vv\(1\),)g(vv\(2\),)g +(vv\(3\),)g(th*180/pi\);)95 1866 y(#)i(transform)d(qbi)i(to)g +(reference)f(coordinates)95 1979 y(qb)i(=)f(qmult\(qin,qbi\);)95 +2092 y(title\(sprintf\("yaw=\0455.2f,)41 b(pitch=\0455.2f,)k +(roll=\0455.2f)g(\(deg\)",thy,thp,thr\)\))95 2205 y +(coordinate_plot\(qin,qb,qvi)o(ew\);)95 2318 y(gset)i(terminal)f +(postscript)f(eps)95 2431 y(eval\(sprintf\("gset)e(output)j +('fig\045d.eps'",kk\)\);)95 2544 y(replot)95 2657 y(gset)h(terminal)f +(x11)0 2770 y(endfor)0 2957 y Fq(Results:)316 2924 y +Fk(1)50 4816 y @beginspecial 50 @llx 50 @lly 410 @urx +302 @ury 2808 @rwi @setspecial +/gnudict 120 dict def +gnudict begin +/Color false def +/Solid false def +/gnulinewidth 5.000 def +/userlinewidth gnulinewidth def +/vshift -46 def +/dl {10 mul} def +/hpt_ 31.5 def +/vpt_ 31.5 def +/hpt hpt_ def +/vpt vpt_ def +/M {moveto} bind def +/L {lineto} bind def +/R {rmoveto} bind def +/V {rlineto} bind def +/vpt2 vpt 2 mul def +/hpt2 hpt 2 mul def +/Lshow { currentpoint stroke M + 0 vshift R show } def +/Rshow { currentpoint stroke M + dup stringwidth pop neg vshift R show } def +/Cshow { currentpoint stroke M + dup stringwidth pop -2 div vshift R show } def +/UP { dup vpt_ mul /vpt exch def hpt_ mul /hpt exch def + /hpt2 hpt 2 mul def /vpt2 vpt 2 mul def } def +/DL { Color {setrgbcolor Solid {pop []} if 0 setdash } + {pop pop pop Solid {pop []} if 0 setdash} ifelse } def +/BL { stroke gnulinewidth 2 mul setlinewidth } def +/AL { stroke gnulinewidth 2 div setlinewidth } def +/UL { gnulinewidth mul /userlinewidth exch def } def +/PL { stroke userlinewidth setlinewidth } def +/LTb { BL [] 0 0 0 DL } def +/LTa { AL [1 dl 2 dl] 0 setdash 0 0 0 setrgbcolor } def +/LT0 { PL [] 0 1 0 DL } def +/LT1 { PL [4 dl 2 dl] 0 0 1 DL } def +/LT2 { PL [2 dl 3 dl] 1 0 0 DL } def +/LT3 { PL [1 dl 1.5 dl] 1 0 1 DL } def +/LT4 { PL [5 dl 2 dl 1 dl 2 dl] 0 1 1 DL } def +/LT5 { PL [4 dl 3 dl 1 dl 3 dl] 1 1 0 DL } def +/LT6 { PL [2 dl 2 dl 2 dl 4 dl] 0 0 0 DL } def +/LT7 { PL [2 dl 2 dl 2 dl 2 dl 2 dl 4 dl] 1 0.3 0 DL } def +/LT8 { PL [2 dl 2 dl 2 dl 2 dl 2 dl 2 dl 2 dl 4 dl] 0.5 0.5 0.5 DL } def +/Pnt { stroke [] 0 setdash + gsave 1 setlinecap M 0 0 V stroke grestore } def +/Dia { stroke [] 0 setdash 2 copy vpt add M + hpt neg vpt neg V hpt vpt neg V + hpt vpt V hpt neg vpt V closepath stroke + Pnt } def +/Pls { stroke [] 0 setdash vpt sub M 0 vpt2 V + currentpoint stroke M + hpt neg vpt neg R hpt2 0 V stroke + } def +/Box { stroke [] 0 setdash 2 copy exch hpt sub exch vpt add M + 0 vpt2 neg V hpt2 0 V 0 vpt2 V + hpt2 neg 0 V closepath stroke + Pnt } def +/Crs { stroke [] 0 setdash exch hpt sub exch vpt add M + hpt2 vpt2 neg V currentpoint stroke M + hpt2 neg 0 R hpt2 vpt2 V stroke } def +/TriU { stroke [] 0 setdash 2 copy vpt 1.12 mul add M + hpt neg vpt -1.62 mul V + hpt 2 mul 0 V + hpt neg vpt 1.62 mul V closepath stroke + Pnt } def +/Star { 2 copy Pls Crs } def +/BoxF { stroke [] 0 setdash exch hpt sub exch vpt add M + 0 vpt2 neg V hpt2 0 V 0 vpt2 V + hpt2 neg 0 V closepath fill } def +/TriUF { stroke [] 0 setdash vpt 1.12 mul add M + hpt neg vpt -1.62 mul V + hpt 2 mul 0 V + hpt neg vpt 1.62 mul V closepath fill } def +/TriD { stroke [] 0 setdash 2 copy vpt 1.12 mul sub M + hpt neg vpt 1.62 mul V + hpt 2 mul 0 V + hpt neg vpt -1.62 mul V closepath stroke + Pnt } def +/TriDF { stroke [] 0 setdash vpt 1.12 mul sub M + hpt neg vpt 1.62 mul V + hpt 2 mul 0 V + hpt neg vpt -1.62 mul V closepath fill} def +/DiaF { stroke [] 0 setdash vpt add M + hpt neg vpt neg V hpt vpt neg V + hpt vpt V hpt neg vpt V closepath fill } def +/Pent { stroke [] 0 setdash 2 copy gsave + translate 0 hpt M 4 {72 rotate 0 hpt L} repeat + closepath stroke grestore Pnt } def +/PentF { stroke [] 0 setdash gsave + translate 0 hpt M 4 {72 rotate 0 hpt L} repeat + closepath fill grestore } def +/Circle { stroke [] 0 setdash 2 copy + hpt 0 360 arc stroke Pnt } def +/CircleF { stroke [] 0 setdash hpt 0 360 arc fill } def +/C0 { BL [] 0 setdash 2 copy moveto vpt 90 450 arc } bind def +/C1 { BL [] 0 setdash 2 copy moveto + 2 copy vpt 0 90 arc closepath fill + vpt 0 360 arc closepath } bind def +/C2 { BL [] 0 setdash 2 copy moveto + 2 copy vpt 90 180 arc closepath fill + vpt 0 360 arc closepath } bind def +/C3 { BL [] 0 setdash 2 copy moveto + 2 copy vpt 0 180 arc closepath fill + vpt 0 360 arc closepath } bind def +/C4 { BL [] 0 setdash 2 copy moveto + 2 copy vpt 180 270 arc closepath fill + vpt 0 360 arc closepath } bind def +/C5 { BL [] 0 setdash 2 copy moveto + 2 copy vpt 0 90 arc + 2 copy moveto + 2 copy vpt 180 270 arc closepath fill + vpt 0 360 arc } bind def +/C6 { BL [] 0 setdash 2 copy moveto + 2 copy vpt 90 270 arc closepath fill + vpt 0 360 arc closepath } bind def +/C7 { BL [] 0 setdash 2 copy moveto + 2 copy vpt 0 270 arc closepath fill + vpt 0 360 arc closepath } bind def +/C8 { BL [] 0 setdash 2 copy moveto + 2 copy vpt 270 360 arc closepath fill + vpt 0 360 arc closepath } bind def +/C9 { BL [] 0 setdash 2 copy moveto + 2 copy vpt 270 450 arc closepath fill + vpt 0 360 arc closepath } bind def +/C10 { BL [] 0 setdash 2 copy 2 copy moveto vpt 270 360 arc closepath fill + 2 copy moveto + 2 copy vpt 90 180 arc closepath fill + vpt 0 360 arc closepath } bind def +/C11 { BL [] 0 setdash 2 copy moveto + 2 copy vpt 0 180 arc closepath fill + 2 copy moveto + 2 copy vpt 270 360 arc closepath fill + vpt 0 360 arc closepath } bind def +/C12 { BL [] 0 setdash 2 copy moveto + 2 copy vpt 180 360 arc closepath fill + vpt 0 360 arc closepath } bind def +/C13 { BL [] 0 setdash 2 copy moveto + 2 copy vpt 0 90 arc closepath fill + 2 copy moveto + 2 copy vpt 180 360 arc closepath fill + vpt 0 360 arc closepath } bind def +/C14 { BL [] 0 setdash 2 copy moveto + 2 copy vpt 90 360 arc closepath fill + vpt 0 360 arc } bind def +/C15 { BL [] 0 setdash 2 copy vpt 0 360 arc closepath fill + vpt 0 360 arc closepath } bind def +/Rec { newpath 4 2 roll moveto 1 index 0 rlineto 0 exch rlineto + neg 0 rlineto closepath } bind def +/Square { dup Rec } bind def +/Bsquare { vpt sub exch vpt sub exch vpt2 Square } bind def +/S0 { BL [] 0 setdash 2 copy moveto 0 vpt rlineto BL Bsquare } bind def +/S1 { BL [] 0 setdash 2 copy vpt Square fill Bsquare } bind def +/S2 { BL [] 0 setdash 2 copy exch vpt sub exch vpt Square fill Bsquare } bind def +/S3 { BL [] 0 setdash 2 copy exch vpt sub exch vpt2 vpt Rec fill Bsquare } bind def +/S4 { BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt Square fill Bsquare } bind def +/S5 { BL [] 0 setdash 2 copy 2 copy vpt Square fill + exch vpt sub exch vpt sub vpt Square fill Bsquare } bind def +/S6 { BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt vpt2 Rec fill Bsquare } bind def +/S7 { BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt vpt2 Rec fill + 2 copy vpt Square fill + Bsquare } bind def +/S8 { BL [] 0 setdash 2 copy vpt sub vpt Square fill Bsquare } bind def +/S9 { BL [] 0 setdash 2 copy vpt sub vpt vpt2 Rec fill Bsquare } bind def +/S10 { BL [] 0 setdash 2 copy vpt sub vpt Square fill 2 copy exch vpt sub exch vpt Square fill + Bsquare } bind def +/S11 { BL [] 0 setdash 2 copy vpt sub vpt Square fill 2 copy exch vpt sub exch vpt2 vpt Rec fill + Bsquare } bind def +/S12 { BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt2 vpt Rec fill Bsquare } bind def +/S13 { BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt2 vpt Rec fill + 2 copy vpt Square fill Bsquare } bind def +/S14 { BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt2 vpt Rec fill + 2 copy exch vpt sub exch vpt Square fill Bsquare } bind def +/S15 { BL [] 0 setdash 2 copy Bsquare fill Bsquare } bind def +/D0 { gsave translate 45 rotate 0 0 S0 stroke grestore } bind def +/D1 { gsave translate 45 rotate 0 0 S1 stroke grestore } bind def +/D2 { gsave translate 45 rotate 0 0 S2 stroke grestore } bind def +/D3 { gsave translate 45 rotate 0 0 S3 stroke grestore } bind def +/D4 { gsave translate 45 rotate 0 0 S4 stroke grestore } bind def +/D5 { gsave translate 45 rotate 0 0 S5 stroke grestore } bind def +/D6 { gsave translate 45 rotate 0 0 S6 stroke grestore } bind def +/D7 { gsave translate 45 rotate 0 0 S7 stroke grestore } bind def +/D8 { gsave translate 45 rotate 0 0 S8 stroke grestore } bind def +/D9 { gsave translate 45 rotate 0 0 S9 stroke grestore } bind def +/D10 { gsave translate 45 rotate 0 0 S10 stroke grestore } bind def +/D11 { gsave translate 45 rotate 0 0 S11 stroke grestore } bind def +/D12 { gsave translate 45 rotate 0 0 S12 stroke grestore } bind def +/D13 { gsave translate 45 rotate 0 0 S13 stroke grestore } bind def +/D14 { gsave translate 45 rotate 0 0 S14 stroke grestore } bind def +/D15 { gsave translate 45 rotate 0 0 S15 stroke grestore } bind def +/DiaE { stroke [] 0 setdash vpt add M + hpt neg vpt neg V hpt vpt neg V + hpt vpt V hpt neg vpt V closepath stroke } def +/BoxE { stroke [] 0 setdash exch hpt sub exch vpt add M + 0 vpt2 neg V hpt2 0 V 0 vpt2 V + hpt2 neg 0 V closepath stroke } def +/TriUE { stroke [] 0 setdash vpt 1.12 mul add M + hpt neg vpt -1.62 mul V + hpt 2 mul 0 V + hpt neg vpt 1.62 mul V closepath stroke } def +/TriDE { stroke [] 0 setdash vpt 1.12 mul sub M + hpt neg vpt 1.62 mul V + hpt 2 mul 0 V + hpt neg vpt -1.62 mul V closepath stroke } def +/PentE { stroke [] 0 setdash gsave + translate 0 hpt M 4 {72 rotate 0 hpt L} repeat + closepath stroke grestore } def +/CircE { stroke [] 0 setdash + hpt 0 360 arc stroke } def +/BoxFill { gsave Rec 1 setgray fill grestore } def +end +gnudict begin +gsave +50 50 translate +0.050 0.050 scale +0 setgray +newpath +(Helvetica) findfont 140 scalefont setfont +LTb +672 560 M +63 0 V +4067 0 R +-63 0 V +588 560 M +(-2) Rshow +672 1076 M +63 0 V +4067 0 R +-63 0 V +-4151 0 R +(-1.5) Rshow +672 1593 M +63 0 V +4067 0 R +-63 0 V +-4151 0 R +(-1) Rshow +672 2109 M +63 0 V +4067 0 R +-63 0 V +-4151 0 R +(-0.5) Rshow +672 2625 M +63 0 V +4067 0 R +-63 0 V +-4151 0 R +(0) Rshow +672 3141 M +63 0 V +4067 0 R +-63 0 V +-4151 0 R +(0.5) Rshow +672 3658 M +63 0 V +4067 0 R +-63 0 V +-4151 0 R +(1) Rshow +672 4174 M +63 0 V +4067 0 R +-63 0 V +-4151 0 R +(1.5) Rshow +672 4690 M +63 0 V +4067 0 R +-63 0 V +-4151 0 R +(2) Rshow +672 560 M +0 63 V +0 4067 R +0 -63 V +672 420 M +(-2) Cshow +1188 560 M +0 63 V +0 4067 R +0 -63 V +0 -4207 R +(-1.5) Cshow +1705 560 M +0 63 V +0 4067 R +0 -63 V +0 -4207 R +(-1) Cshow +2221 560 M +0 63 V +0 4067 R +0 -63 V +0 -4207 R +(-0.5) Cshow +2737 560 M +0 63 V +0 4067 R +0 -63 V +0 -4207 R +(0) Cshow +3253 560 M +0 63 V +0 4067 R +0 -63 V +0 -4207 R +(0.5) Cshow +3770 560 M +0 63 V +0 4067 R +0 -63 V +0 -4207 R +(1) Cshow +4286 560 M +0 63 V +0 4067 R +0 -63 V +0 -4207 R +(1.5) Cshow +4802 560 M +0 63 V +0 4067 R +0 -63 V +0 -4207 R +(2) Cshow +LTb +672 560 M +4130 0 V +0 4130 V +-4130 0 V +672 560 L +2737 210 M +(rotate about eigenaxis 0.00 deg) Cshow +2737 4900 M +(reference coordinates) Cshow +1.000 UP +1.000 UL +LT0 +4151 4557 M +(x \(body\)) Rshow +4235 4557 M +399 0 V +3631 2625 M +-894 0 V +3631 2625 Pls +2737 2625 Pls +4434 4557 Pls +1.000 UP +1.000 UL +LT1 +4151 4417 M +(y \(body\)) Rshow +4235 4417 M +399 0 V +2737 2625 M +2252 2272 L +2737 2625 Pls +2252 2272 Pls +4434 4417 Pls +1.000 UP +1.000 UL +LT2 +4151 4277 M +(z \(body\)) Rshow +4235 4277 M +399 0 V +2737 2625 M +-177 970 V +2737 2625 Crs +2560 3595 Crs +4434 4277 Crs +1.000 UP +1.000 UL +LT0 +4151 4137 M +(x \(inertial\)) Rshow +4235 4137 M +399 0 V +3631 2625 M +-894 0 V +3631 2625 Star +2737 2625 Star +4434 4137 Star +1.000 UP +1.000 UL +LT1 +4151 3997 M +(y \(inertial\)) Rshow +4235 3997 M +399 0 V +2737 2625 M +2252 2272 L +2737 2625 Star +2252 2272 Star +4434 3997 Star +1.000 UP +1.000 UL +LT2 +4151 3857 M +(z \(inertial\)) Rshow +4235 3857 M +399 0 V +2737 2625 M +-177 970 V +2737 2625 Box +2560 3595 Box +4434 3857 Box +1.000 UL +LT5 +4151 3717 M +(eigenaxis) Rshow +4235 3717 M +399 0 V +2737 2625 M +-177 970 V +-89 0 V +1.000 UL +LT3 +3323 1302 M +-1789 0 V +1181 3242 L +970 706 V +1789 0 V +4293 2008 L +3323 1302 L +970 706 V +-1788 0 V +2151 3948 L +2505 2008 L +1534 1302 L +1.000 UL +LT4 +3940 3948 M +2969 3242 L +-1788 0 V +1788 0 V +3323 1302 L +stroke +grestore +end +showpage + @endspecial 2050 w @beginspecial 50 @llx 50 @lly 410 +@urx 302 @ury 2808 @rwi @setspecial +/gnudict 120 dict def +gnudict begin +/Color false def +/Solid false def +/gnulinewidth 5.000 def +/userlinewidth gnulinewidth def +/vshift -46 def +/dl {10 mul} def +/hpt_ 31.5 def +/vpt_ 31.5 def +/hpt hpt_ def +/vpt vpt_ def +/M {moveto} bind def +/L {lineto} bind def +/R {rmoveto} bind def +/V {rlineto} bind def +/vpt2 vpt 2 mul def +/hpt2 hpt 2 mul def +/Lshow { currentpoint stroke M + 0 vshift R show } def +/Rshow { currentpoint stroke M + dup stringwidth pop neg vshift R show } def +/Cshow { currentpoint stroke M + dup stringwidth pop -2 div vshift R show } def +/UP { dup vpt_ mul /vpt exch def hpt_ mul /hpt exch def + /hpt2 hpt 2 mul def /vpt2 vpt 2 mul def } def +/DL { Color {setrgbcolor Solid {pop []} if 0 setdash } + {pop pop pop Solid {pop []} if 0 setdash} ifelse } def +/BL { stroke gnulinewidth 2 mul setlinewidth } def +/AL { stroke gnulinewidth 2 div setlinewidth } def +/UL { gnulinewidth mul /userlinewidth exch def } def +/PL { stroke userlinewidth setlinewidth } def +/LTb { BL [] 0 0 0 DL } def +/LTa { AL [1 dl 2 dl] 0 setdash 0 0 0 setrgbcolor } def +/LT0 { PL [] 0 1 0 DL } def +/LT1 { PL [4 dl 2 dl] 0 0 1 DL } def +/LT2 { PL [2 dl 3 dl] 1 0 0 DL } def +/LT3 { PL [1 dl 1.5 dl] 1 0 1 DL } def +/LT4 { PL [5 dl 2 dl 1 dl 2 dl] 0 1 1 DL } def +/LT5 { PL [4 dl 3 dl 1 dl 3 dl] 1 1 0 DL } def +/LT6 { PL [2 dl 2 dl 2 dl 4 dl] 0 0 0 DL } def +/LT7 { PL [2 dl 2 dl 2 dl 2 dl 2 dl 4 dl] 1 0.3 0 DL } def +/LT8 { PL [2 dl 2 dl 2 dl 2 dl 2 dl 2 dl 2 dl 4 dl] 0.5 0.5 0.5 DL } def +/Pnt { stroke [] 0 setdash + gsave 1 setlinecap M 0 0 V stroke grestore } def +/Dia { stroke [] 0 setdash 2 copy vpt add M + hpt neg vpt neg V hpt vpt neg V + hpt vpt V hpt neg vpt V closepath stroke + Pnt } def +/Pls { stroke [] 0 setdash vpt sub M 0 vpt2 V + currentpoint stroke M + hpt neg vpt neg R hpt2 0 V stroke + } def +/Box { stroke [] 0 setdash 2 copy exch hpt sub exch vpt add M + 0 vpt2 neg V hpt2 0 V 0 vpt2 V + hpt2 neg 0 V closepath stroke + Pnt } def +/Crs { stroke [] 0 setdash exch hpt sub exch vpt add M + hpt2 vpt2 neg V currentpoint stroke M + hpt2 neg 0 R hpt2 vpt2 V stroke } def +/TriU { stroke [] 0 setdash 2 copy vpt 1.12 mul add M + hpt neg vpt -1.62 mul V + hpt 2 mul 0 V + hpt neg vpt 1.62 mul V closepath stroke + Pnt } def +/Star { 2 copy Pls Crs } def +/BoxF { stroke [] 0 setdash exch hpt sub exch vpt add M + 0 vpt2 neg V hpt2 0 V 0 vpt2 V + hpt2 neg 0 V closepath fill } def +/TriUF { stroke [] 0 setdash vpt 1.12 mul add M + hpt neg vpt -1.62 mul V + hpt 2 mul 0 V + hpt neg vpt 1.62 mul V closepath fill } def +/TriD { stroke [] 0 setdash 2 copy vpt 1.12 mul sub M + hpt neg vpt 1.62 mul V + hpt 2 mul 0 V + hpt neg vpt -1.62 mul V closepath stroke + Pnt } def +/TriDF { stroke [] 0 setdash vpt 1.12 mul sub M + hpt neg vpt 1.62 mul V + hpt 2 mul 0 V + hpt neg vpt -1.62 mul V closepath fill} def +/DiaF { stroke [] 0 setdash vpt add M + hpt neg vpt neg V hpt vpt neg V + hpt vpt V hpt neg vpt V closepath fill } def +/Pent { stroke [] 0 setdash 2 copy gsave + translate 0 hpt M 4 {72 rotate 0 hpt L} repeat + closepath stroke grestore Pnt } def +/PentF { stroke [] 0 setdash gsave + translate 0 hpt M 4 {72 rotate 0 hpt L} repeat + closepath fill grestore } def +/Circle { stroke [] 0 setdash 2 copy + hpt 0 360 arc stroke Pnt } def +/CircleF { stroke [] 0 setdash hpt 0 360 arc fill } def +/C0 { BL [] 0 setdash 2 copy moveto vpt 90 450 arc } bind def +/C1 { BL [] 0 setdash 2 copy moveto + 2 copy vpt 0 90 arc closepath fill + vpt 0 360 arc closepath } bind def +/C2 { BL [] 0 setdash 2 copy moveto + 2 copy vpt 90 180 arc closepath fill + vpt 0 360 arc closepath } bind def +/C3 { BL [] 0 setdash 2 copy moveto + 2 copy vpt 0 180 arc closepath fill + vpt 0 360 arc closepath } bind def +/C4 { BL [] 0 setdash 2 copy moveto + 2 copy vpt 180 270 arc closepath fill + vpt 0 360 arc closepath } bind def +/C5 { BL [] 0 setdash 2 copy moveto + 2 copy vpt 0 90 arc + 2 copy moveto + 2 copy vpt 180 270 arc closepath fill + vpt 0 360 arc } bind def +/C6 { BL [] 0 setdash 2 copy moveto + 2 copy vpt 90 270 arc closepath fill + vpt 0 360 arc closepath } bind def +/C7 { BL [] 0 setdash 2 copy moveto + 2 copy vpt 0 270 arc closepath fill + vpt 0 360 arc closepath } bind def +/C8 { BL [] 0 setdash 2 copy moveto + 2 copy vpt 270 360 arc closepath fill + vpt 0 360 arc closepath } bind def +/C9 { BL [] 0 setdash 2 copy moveto + 2 copy vpt 270 450 arc closepath fill + vpt 0 360 arc closepath } bind def +/C10 { BL [] 0 setdash 2 copy 2 copy moveto vpt 270 360 arc closepath fill + 2 copy moveto + 2 copy vpt 90 180 arc closepath fill + vpt 0 360 arc closepath } bind def +/C11 { BL [] 0 setdash 2 copy moveto + 2 copy vpt 0 180 arc closepath fill + 2 copy moveto + 2 copy vpt 270 360 arc closepath fill + vpt 0 360 arc closepath } bind def +/C12 { BL [] 0 setdash 2 copy moveto + 2 copy vpt 180 360 arc closepath fill + vpt 0 360 arc closepath } bind def +/C13 { BL [] 0 setdash 2 copy moveto + 2 copy vpt 0 90 arc closepath fill + 2 copy moveto + 2 copy vpt 180 360 arc closepath fill + vpt 0 360 arc closepath } bind def +/C14 { BL [] 0 setdash 2 copy moveto + 2 copy vpt 90 360 arc closepath fill + vpt 0 360 arc } bind def +/C15 { BL [] 0 setdash 2 copy vpt 0 360 arc closepath fill + vpt 0 360 arc closepath } bind def +/Rec { newpath 4 2 roll moveto 1 index 0 rlineto 0 exch rlineto + neg 0 rlineto closepath } bind def +/Square { dup Rec } bind def +/Bsquare { vpt sub exch vpt sub exch vpt2 Square } bind def +/S0 { BL [] 0 setdash 2 copy moveto 0 vpt rlineto BL Bsquare } bind def +/S1 { BL [] 0 setdash 2 copy vpt Square fill Bsquare } bind def +/S2 { BL [] 0 setdash 2 copy exch vpt sub exch vpt Square fill Bsquare } bind def +/S3 { BL [] 0 setdash 2 copy exch vpt sub exch vpt2 vpt Rec fill Bsquare } bind def +/S4 { BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt Square fill Bsquare } bind def +/S5 { BL [] 0 setdash 2 copy 2 copy vpt Square fill + exch vpt sub exch vpt sub vpt Square fill Bsquare } bind def +/S6 { BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt vpt2 Rec fill Bsquare } bind def +/S7 { BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt vpt2 Rec fill + 2 copy vpt Square fill + Bsquare } bind def +/S8 { BL [] 0 setdash 2 copy vpt sub vpt Square fill Bsquare } bind def +/S9 { BL [] 0 setdash 2 copy vpt sub vpt vpt2 Rec fill Bsquare } bind def +/S10 { BL [] 0 setdash 2 copy vpt sub vpt Square fill 2 copy exch vpt sub exch vpt Square fill + Bsquare } bind def +/S11 { BL [] 0 setdash 2 copy vpt sub vpt Square fill 2 copy exch vpt sub exch vpt2 vpt Rec fill + Bsquare } bind def +/S12 { BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt2 vpt Rec fill Bsquare } bind def +/S13 { BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt2 vpt Rec fill + 2 copy vpt Square fill Bsquare } bind def +/S14 { BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt2 vpt Rec fill + 2 copy exch vpt sub exch vpt Square fill Bsquare } bind def +/S15 { BL [] 0 setdash 2 copy Bsquare fill Bsquare } bind def +/D0 { gsave translate 45 rotate 0 0 S0 stroke grestore } bind def +/D1 { gsave translate 45 rotate 0 0 S1 stroke grestore } bind def +/D2 { gsave translate 45 rotate 0 0 S2 stroke grestore } bind def +/D3 { gsave translate 45 rotate 0 0 S3 stroke grestore } bind def +/D4 { gsave translate 45 rotate 0 0 S4 stroke grestore } bind def +/D5 { gsave translate 45 rotate 0 0 S5 stroke grestore } bind def +/D6 { gsave translate 45 rotate 0 0 S6 stroke grestore } bind def +/D7 { gsave translate 45 rotate 0 0 S7 stroke grestore } bind def +/D8 { gsave translate 45 rotate 0 0 S8 stroke grestore } bind def +/D9 { gsave translate 45 rotate 0 0 S9 stroke grestore } bind def +/D10 { gsave translate 45 rotate 0 0 S10 stroke grestore } bind def +/D11 { gsave translate 45 rotate 0 0 S11 stroke grestore } bind def +/D12 { gsave translate 45 rotate 0 0 S12 stroke grestore } bind def +/D13 { gsave translate 45 rotate 0 0 S13 stroke grestore } bind def +/D14 { gsave translate 45 rotate 0 0 S14 stroke grestore } bind def +/D15 { gsave translate 45 rotate 0 0 S15 stroke grestore } bind def +/DiaE { stroke [] 0 setdash vpt add M + hpt neg vpt neg V hpt vpt neg V + hpt vpt V hpt neg vpt V closepath stroke } def +/BoxE { stroke [] 0 setdash exch hpt sub exch vpt add M + 0 vpt2 neg V hpt2 0 V 0 vpt2 V + hpt2 neg 0 V closepath stroke } def +/TriUE { stroke [] 0 setdash vpt 1.12 mul add M + hpt neg vpt -1.62 mul V + hpt 2 mul 0 V + hpt neg vpt 1.62 mul V closepath stroke } def +/TriDE { stroke [] 0 setdash vpt 1.12 mul sub M + hpt neg vpt 1.62 mul V + hpt 2 mul 0 V + hpt neg vpt -1.62 mul V closepath stroke } def +/PentE { stroke [] 0 setdash gsave + translate 0 hpt M 4 {72 rotate 0 hpt L} repeat + closepath stroke grestore } def +/CircE { stroke [] 0 setdash + hpt 0 360 arc stroke } def +/BoxFill { gsave Rec 1 setgray fill grestore } def +end +gnudict begin +gsave +50 50 translate +0.050 0.050 scale +0 setgray +newpath +(Helvetica) findfont 140 scalefont setfont +LTb +672 560 M +63 0 V +4067 0 R +-63 0 V +588 560 M +(-2) Rshow +672 1076 M +63 0 V +4067 0 R +-63 0 V +-4151 0 R +(-1.5) Rshow +672 1593 M +63 0 V +4067 0 R +-63 0 V +-4151 0 R +(-1) Rshow +672 2109 M +63 0 V +4067 0 R +-63 0 V +-4151 0 R +(-0.5) Rshow +672 2625 M +63 0 V +4067 0 R +-63 0 V +-4151 0 R +(0) Rshow +672 3141 M +63 0 V +4067 0 R +-63 0 V +-4151 0 R +(0.5) Rshow +672 3658 M +63 0 V +4067 0 R +-63 0 V +-4151 0 R +(1) Rshow +672 4174 M +63 0 V +4067 0 R +-63 0 V +-4151 0 R +(1.5) Rshow +672 4690 M +63 0 V +4067 0 R +-63 0 V +-4151 0 R +(2) Rshow +672 560 M +0 63 V +0 4067 R +0 -63 V +672 420 M +(-2) Cshow +1188 560 M +0 63 V +0 4067 R +0 -63 V +0 -4207 R +(-1.5) Cshow +1705 560 M +0 63 V +0 4067 R +0 -63 V +0 -4207 R +(-1) Cshow +2221 560 M +0 63 V +0 4067 R +0 -63 V +0 -4207 R +(-0.5) Cshow +2737 560 M +0 63 V +0 4067 R +0 -63 V +0 -4207 R +(0) Cshow +3253 560 M +0 63 V +0 4067 R +0 -63 V +0 -4207 R +(0.5) Cshow +3770 560 M +0 63 V +0 4067 R +0 -63 V +0 -4207 R +(1) Cshow +4286 560 M +0 63 V +0 4067 R +0 -63 V +0 -4207 R +(1.5) Cshow +4802 560 M +0 63 V +0 4067 R +0 -63 V +0 -4207 R +(2) Cshow +LTb +672 560 M +4130 0 V +0 4130 V +-4130 0 V +672 560 L +2737 210 M +(rotate about eigenaxis 0.00 deg) Cshow +2737 4900 M +(yaw= 0.00 deg, pitch= 0.00 deg) Cshow +1.000 UP +1.000 UL +LT0 +4151 4557 M +(x \(body\)) Rshow +4235 4557 M +399 0 V +3467 2625 M +-730 0 V +3467 2625 Pls +2737 2625 Pls +4434 4557 Pls +1.000 UP +1.000 UL +LT1 +4151 4417 M +(y \(body\)) Rshow +4235 4417 M +399 0 V +2737 2625 M +632 516 V +2737 2625 Pls +3369 3141 Pls +4434 4417 Pls +1.000 UP +1.000 UL +LT2 +4151 4277 M +(z \(body\)) Rshow +4235 4277 M +399 0 V +2737 2625 M +365 -894 V +2737 2625 Crs +3102 1731 Crs +4434 4277 Crs +1.000 UP +1.000 UL +LT0 +4151 4137 M +(x \(inertial\)) Rshow +4235 4137 M +399 0 V +3467 2625 M +-730 0 V +3467 2625 Star +2737 2625 Star +4434 4137 Star +1.000 UP +1.000 UL +LT1 +4151 3997 M +(y \(inertial\)) Rshow +4235 3997 M +399 0 V +2737 2625 M +632 516 V +2737 2625 Star +3369 3141 Star +4434 3997 Star +1.000 UP +1.000 UL +LT2 +4151 3857 M +(z \(inertial\)) Rshow +4235 3857 M +399 0 V +2737 2625 M +365 -894 V +2737 2625 Box +3102 1731 Box +4434 3857 Box +1.000 UL +LT5 +4151 3717 M +(eigenaxis) Rshow +4235 3717 M +399 0 V +2737 2625 M +-365 894 V +-73 0 V +1.000 UL +LT3 +3200 1215 M +-1460 0 V +1010 3003 L +2274 4035 L +1460 0 V +4464 2247 L +3200 1215 L +4464 2247 L +-1460 0 V +2274 4035 L +3004 2247 L +1740 1215 L +1.000 UL +LT4 +3734 4035 M +2470 3003 L +-1460 0 V +1460 0 V +3200 1215 L +stroke +grestore +end +showpage + @endspecial 0 4911 1560 4 v 104 4965 a Fe(1)138 4997 +y Fc(due)28 b(to)g(details)h(of)g(visualization)h(soft)n(w)n(are,)h +(the)d Fb(x)18 b Fa(\000)g Fb(y)j Fa(\000)e Fb(z)31 b +Fc(axes)d(do)g(not)g(app)r(ear)h(as)g(a)f(righ)n(t-handed)f(co)r +(ordinate)j(system.)0 5088 y(Sorry)-6 b(.)p eop +10 9 bop 0 100 a Fn(A.)31 b(S.)f(Ho)s(del:)40 b(Quaternions)29 +b(\(In)m(tro)s(duction\))g Fo(R)q(ev)s(ision)d Fq(:)f(1)p +Fo(:)p Fq(1)421 b Fn(\(c\))31 b(1998)871 b Fq(10)50 2045 +y @beginspecial 50 @llx 50 @lly 410 @urx 302 @ury 2808 +@rwi @setspecial +/gnudict 120 dict def +gnudict begin +/Color false def +/Solid false def +/gnulinewidth 5.000 def +/userlinewidth gnulinewidth def +/vshift -46 def +/dl {10 mul} def +/hpt_ 31.5 def +/vpt_ 31.5 def +/hpt hpt_ def +/vpt vpt_ def +/M {moveto} bind def +/L {lineto} bind def +/R {rmoveto} bind def +/V {rlineto} bind def +/vpt2 vpt 2 mul def +/hpt2 hpt 2 mul def +/Lshow { currentpoint stroke M + 0 vshift R show } def +/Rshow { currentpoint stroke M + dup stringwidth pop neg vshift R show } def +/Cshow { currentpoint stroke M + dup stringwidth pop -2 div vshift R show } def +/UP { dup vpt_ mul /vpt exch def hpt_ mul /hpt exch def + /hpt2 hpt 2 mul def /vpt2 vpt 2 mul def } def +/DL { Color {setrgbcolor Solid {pop []} if 0 setdash } + {pop pop pop Solid {pop []} if 0 setdash} ifelse } def +/BL { stroke gnulinewidth 2 mul setlinewidth } def +/AL { stroke gnulinewidth 2 div setlinewidth } def +/UL { gnulinewidth mul /userlinewidth exch def } def +/PL { stroke userlinewidth setlinewidth } def +/LTb { BL [] 0 0 0 DL } def +/LTa { AL [1 dl 2 dl] 0 setdash 0 0 0 setrgbcolor } def +/LT0 { PL [] 0 1 0 DL } def +/LT1 { PL [4 dl 2 dl] 0 0 1 DL } def +/LT2 { PL [2 dl 3 dl] 1 0 0 DL } def +/LT3 { PL [1 dl 1.5 dl] 1 0 1 DL } def +/LT4 { PL [5 dl 2 dl 1 dl 2 dl] 0 1 1 DL } def +/LT5 { PL [4 dl 3 dl 1 dl 3 dl] 1 1 0 DL } def +/LT6 { PL [2 dl 2 dl 2 dl 4 dl] 0 0 0 DL } def +/LT7 { PL [2 dl 2 dl 2 dl 2 dl 2 dl 4 dl] 1 0.3 0 DL } def +/LT8 { PL [2 dl 2 dl 2 dl 2 dl 2 dl 2 dl 2 dl 4 dl] 0.5 0.5 0.5 DL } def +/Pnt { stroke [] 0 setdash + gsave 1 setlinecap M 0 0 V stroke grestore } def +/Dia { stroke [] 0 setdash 2 copy vpt add M + hpt neg vpt neg V hpt vpt neg V + hpt vpt V hpt neg vpt V closepath stroke + Pnt } def +/Pls { stroke [] 0 setdash vpt sub M 0 vpt2 V + currentpoint stroke M + hpt neg vpt neg R hpt2 0 V stroke + } def +/Box { stroke [] 0 setdash 2 copy exch hpt sub exch vpt add M + 0 vpt2 neg V hpt2 0 V 0 vpt2 V + hpt2 neg 0 V closepath stroke + Pnt } def +/Crs { stroke [] 0 setdash exch hpt sub exch vpt add M + hpt2 vpt2 neg V currentpoint stroke M + hpt2 neg 0 R hpt2 vpt2 V stroke } def +/TriU { stroke [] 0 setdash 2 copy vpt 1.12 mul add M + hpt neg vpt -1.62 mul V + hpt 2 mul 0 V + hpt neg vpt 1.62 mul V closepath stroke + Pnt } def +/Star { 2 copy Pls Crs } def +/BoxF { stroke [] 0 setdash exch hpt sub exch vpt add M + 0 vpt2 neg V hpt2 0 V 0 vpt2 V + hpt2 neg 0 V closepath fill } def +/TriUF { stroke [] 0 setdash vpt 1.12 mul add M + hpt neg vpt -1.62 mul V + hpt 2 mul 0 V + hpt neg vpt 1.62 mul V closepath fill } def +/TriD { stroke [] 0 setdash 2 copy vpt 1.12 mul sub M + hpt neg vpt 1.62 mul V + hpt 2 mul 0 V + hpt neg vpt -1.62 mul V closepath stroke + Pnt } def +/TriDF { stroke [] 0 setdash vpt 1.12 mul sub M + hpt neg vpt 1.62 mul V + hpt 2 mul 0 V + hpt neg vpt -1.62 mul V closepath fill} def +/DiaF { stroke [] 0 setdash vpt add M + hpt neg vpt neg V hpt vpt neg V + hpt vpt V hpt neg vpt V closepath fill } def +/Pent { stroke [] 0 setdash 2 copy gsave + translate 0 hpt M 4 {72 rotate 0 hpt L} repeat + closepath stroke grestore Pnt } def +/PentF { stroke [] 0 setdash gsave + translate 0 hpt M 4 {72 rotate 0 hpt L} repeat + closepath fill grestore } def +/Circle { stroke [] 0 setdash 2 copy + hpt 0 360 arc stroke Pnt } def +/CircleF { stroke [] 0 setdash hpt 0 360 arc fill } def +/C0 { BL [] 0 setdash 2 copy moveto vpt 90 450 arc } bind def +/C1 { BL [] 0 setdash 2 copy moveto + 2 copy vpt 0 90 arc closepath fill + vpt 0 360 arc closepath } bind def +/C2 { BL [] 0 setdash 2 copy moveto + 2 copy vpt 90 180 arc closepath fill + vpt 0 360 arc closepath } bind def +/C3 { BL [] 0 setdash 2 copy moveto + 2 copy vpt 0 180 arc closepath fill + vpt 0 360 arc closepath } bind def +/C4 { BL [] 0 setdash 2 copy moveto + 2 copy vpt 180 270 arc closepath fill + vpt 0 360 arc closepath } bind def +/C5 { BL [] 0 setdash 2 copy moveto + 2 copy vpt 0 90 arc + 2 copy moveto + 2 copy vpt 180 270 arc closepath fill + vpt 0 360 arc } bind def +/C6 { BL [] 0 setdash 2 copy moveto + 2 copy vpt 90 270 arc closepath fill + vpt 0 360 arc closepath } bind def +/C7 { BL [] 0 setdash 2 copy moveto + 2 copy vpt 0 270 arc closepath fill + vpt 0 360 arc closepath } bind def +/C8 { BL [] 0 setdash 2 copy moveto + 2 copy vpt 270 360 arc closepath fill + vpt 0 360 arc closepath } bind def +/C9 { BL [] 0 setdash 2 copy moveto + 2 copy vpt 270 450 arc closepath fill + vpt 0 360 arc closepath } bind def +/C10 { BL [] 0 setdash 2 copy 2 copy moveto vpt 270 360 arc closepath fill + 2 copy moveto + 2 copy vpt 90 180 arc closepath fill + vpt 0 360 arc closepath } bind def +/C11 { BL [] 0 setdash 2 copy moveto + 2 copy vpt 0 180 arc closepath fill + 2 copy moveto + 2 copy vpt 270 360 arc closepath fill + vpt 0 360 arc closepath } bind def +/C12 { BL [] 0 setdash 2 copy moveto + 2 copy vpt 180 360 arc closepath fill + vpt 0 360 arc closepath } bind def +/C13 { BL [] 0 setdash 2 copy moveto + 2 copy vpt 0 90 arc closepath fill + 2 copy moveto + 2 copy vpt 180 360 arc closepath fill + vpt 0 360 arc closepath } bind def +/C14 { BL [] 0 setdash 2 copy moveto + 2 copy vpt 90 360 arc closepath fill + vpt 0 360 arc } bind def +/C15 { BL [] 0 setdash 2 copy vpt 0 360 arc closepath fill + vpt 0 360 arc closepath } bind def +/Rec { newpath 4 2 roll moveto 1 index 0 rlineto 0 exch rlineto + neg 0 rlineto closepath } bind def +/Square { dup Rec } bind def +/Bsquare { vpt sub exch vpt sub exch vpt2 Square } bind def +/S0 { BL [] 0 setdash 2 copy moveto 0 vpt rlineto BL Bsquare } bind def +/S1 { BL [] 0 setdash 2 copy vpt Square fill Bsquare } bind def +/S2 { BL [] 0 setdash 2 copy exch vpt sub exch vpt Square fill Bsquare } bind def +/S3 { BL [] 0 setdash 2 copy exch vpt sub exch vpt2 vpt Rec fill Bsquare } bind def +/S4 { BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt Square fill Bsquare } bind def +/S5 { BL [] 0 setdash 2 copy 2 copy vpt Square fill + exch vpt sub exch vpt sub vpt Square fill Bsquare } bind def +/S6 { BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt vpt2 Rec fill Bsquare } bind def +/S7 { BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt vpt2 Rec fill + 2 copy vpt Square fill + Bsquare } bind def +/S8 { BL [] 0 setdash 2 copy vpt sub vpt Square fill Bsquare } bind def +/S9 { BL [] 0 setdash 2 copy vpt sub vpt vpt2 Rec fill Bsquare } bind def +/S10 { BL [] 0 setdash 2 copy vpt sub vpt Square fill 2 copy exch vpt sub exch vpt Square fill + Bsquare } bind def +/S11 { BL [] 0 setdash 2 copy vpt sub vpt Square fill 2 copy exch vpt sub exch vpt2 vpt Rec fill + Bsquare } bind def +/S12 { BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt2 vpt Rec fill Bsquare } bind def +/S13 { BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt2 vpt Rec fill + 2 copy vpt Square fill Bsquare } bind def +/S14 { BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt2 vpt Rec fill + 2 copy exch vpt sub exch vpt Square fill Bsquare } bind def +/S15 { BL [] 0 setdash 2 copy Bsquare fill Bsquare } bind def +/D0 { gsave translate 45 rotate 0 0 S0 stroke grestore } bind def +/D1 { gsave translate 45 rotate 0 0 S1 stroke grestore } bind def +/D2 { gsave translate 45 rotate 0 0 S2 stroke grestore } bind def +/D3 { gsave translate 45 rotate 0 0 S3 stroke grestore } bind def +/D4 { gsave translate 45 rotate 0 0 S4 stroke grestore } bind def +/D5 { gsave translate 45 rotate 0 0 S5 stroke grestore } bind def +/D6 { gsave translate 45 rotate 0 0 S6 stroke grestore } bind def +/D7 { gsave translate 45 rotate 0 0 S7 stroke grestore } bind def +/D8 { gsave translate 45 rotate 0 0 S8 stroke grestore } bind def +/D9 { gsave translate 45 rotate 0 0 S9 stroke grestore } bind def +/D10 { gsave translate 45 rotate 0 0 S10 stroke grestore } bind def +/D11 { gsave translate 45 rotate 0 0 S11 stroke grestore } bind def +/D12 { gsave translate 45 rotate 0 0 S12 stroke grestore } bind def +/D13 { gsave translate 45 rotate 0 0 S13 stroke grestore } bind def +/D14 { gsave translate 45 rotate 0 0 S14 stroke grestore } bind def +/D15 { gsave translate 45 rotate 0 0 S15 stroke grestore } bind def +/DiaE { stroke [] 0 setdash vpt add M + hpt neg vpt neg V hpt vpt neg V + hpt vpt V hpt neg vpt V closepath stroke } def +/BoxE { stroke [] 0 setdash exch hpt sub exch vpt add M + 0 vpt2 neg V hpt2 0 V 0 vpt2 V + hpt2 neg 0 V closepath stroke } def +/TriUE { stroke [] 0 setdash vpt 1.12 mul add M + hpt neg vpt -1.62 mul V + hpt 2 mul 0 V + hpt neg vpt 1.62 mul V closepath stroke } def +/TriDE { stroke [] 0 setdash vpt 1.12 mul sub M + hpt neg vpt 1.62 mul V + hpt 2 mul 0 V + hpt neg vpt -1.62 mul V closepath stroke } def +/PentE { stroke [] 0 setdash gsave + translate 0 hpt M 4 {72 rotate 0 hpt L} repeat + closepath stroke grestore } def +/CircE { stroke [] 0 setdash + hpt 0 360 arc stroke } def +/BoxFill { gsave Rec 1 setgray fill grestore } def +end +gnudict begin +gsave +50 50 translate +0.050 0.050 scale +0 setgray +newpath +(Helvetica) findfont 140 scalefont setfont +LTb +672 560 M +63 0 V +4067 0 R +-63 0 V +588 560 M +(-2) Rshow +672 1076 M +63 0 V +4067 0 R +-63 0 V +-4151 0 R +(-1.5) Rshow +672 1593 M +63 0 V +4067 0 R +-63 0 V +-4151 0 R +(-1) Rshow +672 2109 M +63 0 V +4067 0 R +-63 0 V +-4151 0 R +(-0.5) Rshow +672 2625 M +63 0 V +4067 0 R +-63 0 V +-4151 0 R +(0) Rshow +672 3141 M +63 0 V +4067 0 R +-63 0 V +-4151 0 R +(0.5) Rshow +672 3658 M +63 0 V +4067 0 R +-63 0 V +-4151 0 R +(1) Rshow +672 4174 M +63 0 V +4067 0 R +-63 0 V +-4151 0 R +(1.5) Rshow +672 4690 M +63 0 V +4067 0 R +-63 0 V +-4151 0 R +(2) Rshow +672 560 M +0 63 V +0 4067 R +0 -63 V +672 420 M +(-2) Cshow +1188 560 M +0 63 V +0 4067 R +0 -63 V +0 -4207 R +(-1.5) Cshow +1705 560 M +0 63 V +0 4067 R +0 -63 V +0 -4207 R +(-1) Cshow +2221 560 M +0 63 V +0 4067 R +0 -63 V +0 -4207 R +(-0.5) Cshow +2737 560 M +0 63 V +0 4067 R +0 -63 V +0 -4207 R +(0) Cshow +3253 560 M +0 63 V +0 4067 R +0 -63 V +0 -4207 R +(0.5) Cshow +3770 560 M +0 63 V +0 4067 R +0 -63 V +0 -4207 R +(1) Cshow +4286 560 M +0 63 V +0 4067 R +0 -63 V +0 -4207 R +(1.5) Cshow +4802 560 M +0 63 V +0 4067 R +0 -63 V +0 -4207 R +(2) Cshow +LTb +672 560 M +4130 0 V +0 4130 V +-4130 0 V +672 560 L +2737 210 M +(rotate about eigenaxis 5.00 deg) Cshow +2737 4900 M +(yaw= 5.00 deg, pitch= 0.00 deg) Cshow +1.000 UP +1.000 UL +LT0 +4151 4557 M +(x \(body\)) Rshow +4235 4557 M +399 0 V +3409 2580 M +-672 45 V +3409 2580 Pls +2737 2625 Pls +4434 4557 Pls +1.000 UP +1.000 UL +LT1 +4151 4417 M +(y \(body\)) Rshow +4235 4417 M +399 0 V +2737 2625 M +693 514 V +2737 2625 Pls +3430 3139 Pls +4434 4417 Pls +1.000 UP +1.000 UL +LT2 +4151 4277 M +(z \(body\)) Rshow +4235 4277 M +399 0 V +2737 2625 M +365 -894 V +2737 2625 Crs +3102 1731 Crs +4434 4277 Crs +1.000 UP +1.000 UL +LT0 +4151 4137 M +(x \(inertial\)) Rshow +4235 4137 M +399 0 V +3467 2625 M +-730 0 V +3467 2625 Star +2737 2625 Star +4434 4137 Star +1.000 UP +1.000 UL +LT1 +4151 3997 M +(y \(inertial\)) Rshow +4235 3997 M +399 0 V +2737 2625 M +632 516 V +2737 2625 Star +3369 3141 Star +4434 3997 Star +1.000 UP +1.000 UL +LT2 +4151 3857 M +(z \(inertial\)) Rshow +4235 3857 M +399 0 V +2737 2625 M +365 -894 V +2737 2625 Box +3102 1731 Box +4434 3857 Box +1.000 UL +LT5 +4151 3717 M +(eigenaxis) Rshow +4235 3717 M +399 0 V +2737 2625 M +-365 894 V +78 5 V +10 10 V +6 10 V +3 9 V +-3 7 V +-6 6 V +-10 3 V +-14 2 V +-16 -1 V +-18 -3 V +-20 -6 V +1.000 UL +LT3 +3200 1215 M +-1460 0 V +1010 3003 L +2274 4035 L +1460 0 V +4464 2247 L +3200 1215 L +4464 2247 L +-1460 0 V +2274 4035 L +3004 2247 L +1740 1215 L +1.000 UL +LT4 +3734 4035 M +2470 3003 L +-1460 0 V +1460 0 V +3200 1215 L +stroke +grestore +end +showpage + @endspecial 2050 w @beginspecial 50 @llx 50 @lly 410 +@urx 302 @ury 2808 @rwi @setspecial +/gnudict 120 dict def +gnudict begin +/Color false def +/Solid false def +/gnulinewidth 5.000 def +/userlinewidth gnulinewidth def +/vshift -46 def +/dl {10 mul} def +/hpt_ 31.5 def +/vpt_ 31.5 def +/hpt hpt_ def +/vpt vpt_ def +/M {moveto} bind def +/L {lineto} bind def +/R {rmoveto} bind def +/V {rlineto} bind def +/vpt2 vpt 2 mul def +/hpt2 hpt 2 mul def +/Lshow { currentpoint stroke M + 0 vshift R show } def +/Rshow { currentpoint stroke M + dup stringwidth pop neg vshift R show } def +/Cshow { currentpoint stroke M + dup stringwidth pop -2 div vshift R show } def +/UP { dup vpt_ mul /vpt exch def hpt_ mul /hpt exch def + /hpt2 hpt 2 mul def /vpt2 vpt 2 mul def } def +/DL { Color {setrgbcolor Solid {pop []} if 0 setdash } + {pop pop pop Solid {pop []} if 0 setdash} ifelse } def +/BL { stroke gnulinewidth 2 mul setlinewidth } def +/AL { stroke gnulinewidth 2 div setlinewidth } def +/UL { gnulinewidth mul /userlinewidth exch def } def +/PL { stroke userlinewidth setlinewidth } def +/LTb { BL [] 0 0 0 DL } def +/LTa { AL [1 dl 2 dl] 0 setdash 0 0 0 setrgbcolor } def +/LT0 { PL [] 0 1 0 DL } def +/LT1 { PL [4 dl 2 dl] 0 0 1 DL } def +/LT2 { PL [2 dl 3 dl] 1 0 0 DL } def +/LT3 { PL [1 dl 1.5 dl] 1 0 1 DL } def +/LT4 { PL [5 dl 2 dl 1 dl 2 dl] 0 1 1 DL } def +/LT5 { PL [4 dl 3 dl 1 dl 3 dl] 1 1 0 DL } def +/LT6 { PL [2 dl 2 dl 2 dl 4 dl] 0 0 0 DL } def +/LT7 { PL [2 dl 2 dl 2 dl 2 dl 2 dl 4 dl] 1 0.3 0 DL } def +/LT8 { PL [2 dl 2 dl 2 dl 2 dl 2 dl 2 dl 2 dl 4 dl] 0.5 0.5 0.5 DL } def +/Pnt { stroke [] 0 setdash + gsave 1 setlinecap M 0 0 V stroke grestore } def +/Dia { stroke [] 0 setdash 2 copy vpt add M + hpt neg vpt neg V hpt vpt neg V + hpt vpt V hpt neg vpt V closepath stroke + Pnt } def +/Pls { stroke [] 0 setdash vpt sub M 0 vpt2 V + currentpoint stroke M + hpt neg vpt neg R hpt2 0 V stroke + } def +/Box { stroke [] 0 setdash 2 copy exch hpt sub exch vpt add M + 0 vpt2 neg V hpt2 0 V 0 vpt2 V + hpt2 neg 0 V closepath stroke + Pnt } def +/Crs { stroke [] 0 setdash exch hpt sub exch vpt add M + hpt2 vpt2 neg V currentpoint stroke M + hpt2 neg 0 R hpt2 vpt2 V stroke } def +/TriU { stroke [] 0 setdash 2 copy vpt 1.12 mul add M + hpt neg vpt -1.62 mul V + hpt 2 mul 0 V + hpt neg vpt 1.62 mul V closepath stroke + Pnt } def +/Star { 2 copy Pls Crs } def +/BoxF { stroke [] 0 setdash exch hpt sub exch vpt add M + 0 vpt2 neg V hpt2 0 V 0 vpt2 V + hpt2 neg 0 V closepath fill } def +/TriUF { stroke [] 0 setdash vpt 1.12 mul add M + hpt neg vpt -1.62 mul V + hpt 2 mul 0 V + hpt neg vpt 1.62 mul V closepath fill } def +/TriD { stroke [] 0 setdash 2 copy vpt 1.12 mul sub M + hpt neg vpt 1.62 mul V + hpt 2 mul 0 V + hpt neg vpt -1.62 mul V closepath stroke + Pnt } def +/TriDF { stroke [] 0 setdash vpt 1.12 mul sub M + hpt neg vpt 1.62 mul V + hpt 2 mul 0 V + hpt neg vpt -1.62 mul V closepath fill} def +/DiaF { stroke [] 0 setdash vpt add M + hpt neg vpt neg V hpt vpt neg V + hpt vpt V hpt neg vpt V closepath fill } def +/Pent { stroke [] 0 setdash 2 copy gsave + translate 0 hpt M 4 {72 rotate 0 hpt L} repeat + closepath stroke grestore Pnt } def +/PentF { stroke [] 0 setdash gsave + translate 0 hpt M 4 {72 rotate 0 hpt L} repeat + closepath fill grestore } def +/Circle { stroke [] 0 setdash 2 copy + hpt 0 360 arc stroke Pnt } def +/CircleF { stroke [] 0 setdash hpt 0 360 arc fill } def +/C0 { BL [] 0 setdash 2 copy moveto vpt 90 450 arc } bind def +/C1 { BL [] 0 setdash 2 copy moveto + 2 copy vpt 0 90 arc closepath fill + vpt 0 360 arc closepath } bind def +/C2 { BL [] 0 setdash 2 copy moveto + 2 copy vpt 90 180 arc closepath fill + vpt 0 360 arc closepath } bind def +/C3 { BL [] 0 setdash 2 copy moveto + 2 copy vpt 0 180 arc closepath fill + vpt 0 360 arc closepath } bind def +/C4 { BL [] 0 setdash 2 copy moveto + 2 copy vpt 180 270 arc closepath fill + vpt 0 360 arc closepath } bind def +/C5 { BL [] 0 setdash 2 copy moveto + 2 copy vpt 0 90 arc + 2 copy moveto + 2 copy vpt 180 270 arc closepath fill + vpt 0 360 arc } bind def +/C6 { BL [] 0 setdash 2 copy moveto + 2 copy vpt 90 270 arc closepath fill + vpt 0 360 arc closepath } bind def +/C7 { BL [] 0 setdash 2 copy moveto + 2 copy vpt 0 270 arc closepath fill + vpt 0 360 arc closepath } bind def +/C8 { BL [] 0 setdash 2 copy moveto + 2 copy vpt 270 360 arc closepath fill + vpt 0 360 arc closepath } bind def +/C9 { BL [] 0 setdash 2 copy moveto + 2 copy vpt 270 450 arc closepath fill + vpt 0 360 arc closepath } bind def +/C10 { BL [] 0 setdash 2 copy 2 copy moveto vpt 270 360 arc closepath fill + 2 copy moveto + 2 copy vpt 90 180 arc closepath fill + vpt 0 360 arc closepath } bind def +/C11 { BL [] 0 setdash 2 copy moveto + 2 copy vpt 0 180 arc closepath fill + 2 copy moveto + 2 copy vpt 270 360 arc closepath fill + vpt 0 360 arc closepath } bind def +/C12 { BL [] 0 setdash 2 copy moveto + 2 copy vpt 180 360 arc closepath fill + vpt 0 360 arc closepath } bind def +/C13 { BL [] 0 setdash 2 copy moveto + 2 copy vpt 0 90 arc closepath fill + 2 copy moveto + 2 copy vpt 180 360 arc closepath fill + vpt 0 360 arc closepath } bind def +/C14 { BL [] 0 setdash 2 copy moveto + 2 copy vpt 90 360 arc closepath fill + vpt 0 360 arc } bind def +/C15 { BL [] 0 setdash 2 copy vpt 0 360 arc closepath fill + vpt 0 360 arc closepath } bind def +/Rec { newpath 4 2 roll moveto 1 index 0 rlineto 0 exch rlineto + neg 0 rlineto closepath } bind def +/Square { dup Rec } bind def +/Bsquare { vpt sub exch vpt sub exch vpt2 Square } bind def +/S0 { BL [] 0 setdash 2 copy moveto 0 vpt rlineto BL Bsquare } bind def +/S1 { BL [] 0 setdash 2 copy vpt Square fill Bsquare } bind def +/S2 { BL [] 0 setdash 2 copy exch vpt sub exch vpt Square fill Bsquare } bind def +/S3 { BL [] 0 setdash 2 copy exch vpt sub exch vpt2 vpt Rec fill Bsquare } bind def +/S4 { BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt Square fill Bsquare } bind def +/S5 { BL [] 0 setdash 2 copy 2 copy vpt Square fill + exch vpt sub exch vpt sub vpt Square fill Bsquare } bind def +/S6 { BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt vpt2 Rec fill Bsquare } bind def +/S7 { BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt vpt2 Rec fill + 2 copy vpt Square fill + Bsquare } bind def +/S8 { BL [] 0 setdash 2 copy vpt sub vpt Square fill Bsquare } bind def +/S9 { BL [] 0 setdash 2 copy vpt sub vpt vpt2 Rec fill Bsquare } bind def +/S10 { BL [] 0 setdash 2 copy vpt sub vpt Square fill 2 copy exch vpt sub exch vpt Square fill + Bsquare } bind def +/S11 { BL [] 0 setdash 2 copy vpt sub vpt Square fill 2 copy exch vpt sub exch vpt2 vpt Rec fill + Bsquare } bind def +/S12 { BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt2 vpt Rec fill Bsquare } bind def +/S13 { BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt2 vpt Rec fill + 2 copy vpt Square fill Bsquare } bind def +/S14 { BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt2 vpt Rec fill + 2 copy exch vpt sub exch vpt Square fill Bsquare } bind def +/S15 { BL [] 0 setdash 2 copy Bsquare fill Bsquare } bind def +/D0 { gsave translate 45 rotate 0 0 S0 stroke grestore } bind def +/D1 { gsave translate 45 rotate 0 0 S1 stroke grestore } bind def +/D2 { gsave translate 45 rotate 0 0 S2 stroke grestore } bind def +/D3 { gsave translate 45 rotate 0 0 S3 stroke grestore } bind def +/D4 { gsave translate 45 rotate 0 0 S4 stroke grestore } bind def +/D5 { gsave translate 45 rotate 0 0 S5 stroke grestore } bind def +/D6 { gsave translate 45 rotate 0 0 S6 stroke grestore } bind def +/D7 { gsave translate 45 rotate 0 0 S7 stroke grestore } bind def +/D8 { gsave translate 45 rotate 0 0 S8 stroke grestore } bind def +/D9 { gsave translate 45 rotate 0 0 S9 stroke grestore } bind def +/D10 { gsave translate 45 rotate 0 0 S10 stroke grestore } bind def +/D11 { gsave translate 45 rotate 0 0 S11 stroke grestore } bind def +/D12 { gsave translate 45 rotate 0 0 S12 stroke grestore } bind def +/D13 { gsave translate 45 rotate 0 0 S13 stroke grestore } bind def +/D14 { gsave translate 45 rotate 0 0 S14 stroke grestore } bind def +/D15 { gsave translate 45 rotate 0 0 S15 stroke grestore } bind def +/DiaE { stroke [] 0 setdash vpt add M + hpt neg vpt neg V hpt vpt neg V + hpt vpt V hpt neg vpt V closepath stroke } def +/BoxE { stroke [] 0 setdash exch hpt sub exch vpt add M + 0 vpt2 neg V hpt2 0 V 0 vpt2 V + hpt2 neg 0 V closepath stroke } def +/TriUE { stroke [] 0 setdash vpt 1.12 mul add M + hpt neg vpt -1.62 mul V + hpt 2 mul 0 V + hpt neg vpt 1.62 mul V closepath stroke } def +/TriDE { stroke [] 0 setdash vpt 1.12 mul sub M + hpt neg vpt 1.62 mul V + hpt 2 mul 0 V + hpt neg vpt -1.62 mul V closepath stroke } def +/PentE { stroke [] 0 setdash gsave + translate 0 hpt M 4 {72 rotate 0 hpt L} repeat + closepath stroke grestore } def +/CircE { stroke [] 0 setdash + hpt 0 360 arc stroke } def +/BoxFill { gsave Rec 1 setgray fill grestore } def +end +gnudict begin +gsave +50 50 translate +0.050 0.050 scale +0 setgray +newpath +(Helvetica) findfont 140 scalefont setfont +LTb +672 560 M +63 0 V +4067 0 R +-63 0 V +588 560 M +(-2) Rshow +672 1076 M +63 0 V +4067 0 R +-63 0 V +-4151 0 R +(-1.5) Rshow +672 1593 M +63 0 V +4067 0 R +-63 0 V +-4151 0 R +(-1) Rshow +672 2109 M +63 0 V +4067 0 R +-63 0 V +-4151 0 R +(-0.5) Rshow +672 2625 M +63 0 V +4067 0 R +-63 0 V +-4151 0 R +(0) Rshow +672 3141 M +63 0 V +4067 0 R +-63 0 V +-4151 0 R +(0.5) Rshow +672 3658 M +63 0 V +4067 0 R +-63 0 V +-4151 0 R +(1) Rshow +672 4174 M +63 0 V +4067 0 R +-63 0 V +-4151 0 R +(1.5) Rshow +672 4690 M +63 0 V +4067 0 R +-63 0 V +-4151 0 R +(2) Rshow +672 560 M +0 63 V +0 4067 R +0 -63 V +672 420 M +(-2) Cshow +1188 560 M +0 63 V +0 4067 R +0 -63 V +0 -4207 R +(-1.5) Cshow +1705 560 M +0 63 V +0 4067 R +0 -63 V +0 -4207 R +(-1) Cshow +2221 560 M +0 63 V +0 4067 R +0 -63 V +0 -4207 R +(-0.5) Cshow +2737 560 M +0 63 V +0 4067 R +0 -63 V +0 -4207 R +(0) Cshow +3253 560 M +0 63 V +0 4067 R +0 -63 V +0 -4207 R +(0.5) Cshow +3770 560 M +0 63 V +0 4067 R +0 -63 V +0 -4207 R +(1) Cshow +4286 560 M +0 63 V +0 4067 R +0 -63 V +0 -4207 R +(1.5) Cshow +4802 560 M +0 63 V +0 4067 R +0 -63 V +0 -4207 R +(2) Cshow +LTb +672 560 M +4130 0 V +0 4130 V +-4130 0 V +672 560 L +2737 210 M +(rotate about eigenaxis 10.00 deg) Cshow +2737 4900 M +(yaw=10.00 deg, pitch= 0.00 deg) Cshow +1.000 UP +1.000 UL +LT0 +4151 4557 M +(x \(body\)) Rshow +4235 4557 M +399 0 V +3346 2535 M +-609 90 V +3346 2535 Pls +2737 2625 Pls +4434 4557 Pls +1.000 UP +1.000 UL +LT1 +4151 4417 M +(y \(body\)) Rshow +4235 4417 M +399 0 V +2737 2625 M +749 508 V +2737 2625 Pls +3486 3133 Pls +4434 4417 Pls +1.000 UP +1.000 UL +LT2 +4151 4277 M +(z \(body\)) Rshow +4235 4277 M +399 0 V +2737 2625 M +365 -894 V +2737 2625 Crs +3102 1731 Crs +4434 4277 Crs +1.000 UP +1.000 UL +LT0 +4151 4137 M +(x \(inertial\)) Rshow +4235 4137 M +399 0 V +3467 2625 M +-730 0 V +3467 2625 Star +2737 2625 Star +4434 4137 Star +1.000 UP +1.000 UL +LT1 +4151 3997 M +(y \(inertial\)) Rshow +4235 3997 M +399 0 V +2737 2625 M +632 516 V +2737 2625 Star +3369 3141 Star +4434 3997 Star +1.000 UP +1.000 UL +LT2 +4151 3857 M +(z \(inertial\)) Rshow +4235 3857 M +399 0 V +2737 2625 M +365 -894 V +2737 2625 Box +3102 1731 Box +4434 3857 Box +1.000 UL +LT5 +4151 3717 M +(eigenaxis) Rshow +4235 3717 M +399 0 V +2737 2625 M +-365 894 V +83 9 V +8 11 V +5 9 V +0 8 V +-4 7 V +-8 5 V +-11 2 V +-15 1 V +-17 -2 V +-19 -4 V +-21 -6 V +1.000 UL +LT3 +3200 1215 M +-1460 0 V +1010 3003 L +2274 4035 L +1460 0 V +4464 2247 L +3200 1215 L +4464 2247 L +-1460 0 V +2274 4035 L +3004 2247 L +1740 1215 L +1.000 UL +LT4 +3734 4035 M +2470 3003 L +-1460 0 V +1460 0 V +3200 1215 L +stroke +grestore +end +showpage + @endspecial 50 3833 a @beginspecial 50 @llx 50 @lly +410 @urx 302 @ury 2808 @rwi @setspecial +/gnudict 120 dict def +gnudict begin +/Color false def +/Solid false def +/gnulinewidth 5.000 def +/userlinewidth gnulinewidth def +/vshift -46 def +/dl {10 mul} def +/hpt_ 31.5 def +/vpt_ 31.5 def +/hpt hpt_ def +/vpt vpt_ def +/M {moveto} bind def +/L {lineto} bind def +/R {rmoveto} bind def +/V {rlineto} bind def +/vpt2 vpt 2 mul def +/hpt2 hpt 2 mul def +/Lshow { currentpoint stroke M + 0 vshift R show } def +/Rshow { currentpoint stroke M + dup stringwidth pop neg vshift R show } def +/Cshow { currentpoint stroke M + dup stringwidth pop -2 div vshift R show } def +/UP { dup vpt_ mul /vpt exch def hpt_ mul /hpt exch def + /hpt2 hpt 2 mul def /vpt2 vpt 2 mul def } def +/DL { Color {setrgbcolor Solid {pop []} if 0 setdash } + {pop pop pop Solid {pop []} if 0 setdash} ifelse } def +/BL { stroke gnulinewidth 2 mul setlinewidth } def +/AL { stroke gnulinewidth 2 div setlinewidth } def +/UL { gnulinewidth mul /userlinewidth exch def } def +/PL { stroke userlinewidth setlinewidth } def +/LTb { BL [] 0 0 0 DL } def +/LTa { AL [1 dl 2 dl] 0 setdash 0 0 0 setrgbcolor } def +/LT0 { PL [] 0 1 0 DL } def +/LT1 { PL [4 dl 2 dl] 0 0 1 DL } def +/LT2 { PL [2 dl 3 dl] 1 0 0 DL } def +/LT3 { PL [1 dl 1.5 dl] 1 0 1 DL } def +/LT4 { PL [5 dl 2 dl 1 dl 2 dl] 0 1 1 DL } def +/LT5 { PL [4 dl 3 dl 1 dl 3 dl] 1 1 0 DL } def +/LT6 { PL [2 dl 2 dl 2 dl 4 dl] 0 0 0 DL } def +/LT7 { PL [2 dl 2 dl 2 dl 2 dl 2 dl 4 dl] 1 0.3 0 DL } def +/LT8 { PL [2 dl 2 dl 2 dl 2 dl 2 dl 2 dl 2 dl 4 dl] 0.5 0.5 0.5 DL } def +/Pnt { stroke [] 0 setdash + gsave 1 setlinecap M 0 0 V stroke grestore } def +/Dia { stroke [] 0 setdash 2 copy vpt add M + hpt neg vpt neg V hpt vpt neg V + hpt vpt V hpt neg vpt V closepath stroke + Pnt } def +/Pls { stroke [] 0 setdash vpt sub M 0 vpt2 V + currentpoint stroke M + hpt neg vpt neg R hpt2 0 V stroke + } def +/Box { stroke [] 0 setdash 2 copy exch hpt sub exch vpt add M + 0 vpt2 neg V hpt2 0 V 0 vpt2 V + hpt2 neg 0 V closepath stroke + Pnt } def +/Crs { stroke [] 0 setdash exch hpt sub exch vpt add M + hpt2 vpt2 neg V currentpoint stroke M + hpt2 neg 0 R hpt2 vpt2 V stroke } def +/TriU { stroke [] 0 setdash 2 copy vpt 1.12 mul add M + hpt neg vpt -1.62 mul V + hpt 2 mul 0 V + hpt neg vpt 1.62 mul V closepath stroke + Pnt } def +/Star { 2 copy Pls Crs } def +/BoxF { stroke [] 0 setdash exch hpt sub exch vpt add M + 0 vpt2 neg V hpt2 0 V 0 vpt2 V + hpt2 neg 0 V closepath fill } def +/TriUF { stroke [] 0 setdash vpt 1.12 mul add M + hpt neg vpt -1.62 mul V + hpt 2 mul 0 V + hpt neg vpt 1.62 mul V closepath fill } def +/TriD { stroke [] 0 setdash 2 copy vpt 1.12 mul sub M + hpt neg vpt 1.62 mul V + hpt 2 mul 0 V + hpt neg vpt -1.62 mul V closepath stroke + Pnt } def +/TriDF { stroke [] 0 setdash vpt 1.12 mul sub M + hpt neg vpt 1.62 mul V + hpt 2 mul 0 V + hpt neg vpt -1.62 mul V closepath fill} def +/DiaF { stroke [] 0 setdash vpt add M + hpt neg vpt neg V hpt vpt neg V + hpt vpt V hpt neg vpt V closepath fill } def +/Pent { stroke [] 0 setdash 2 copy gsave + translate 0 hpt M 4 {72 rotate 0 hpt L} repeat + closepath stroke grestore Pnt } def +/PentF { stroke [] 0 setdash gsave + translate 0 hpt M 4 {72 rotate 0 hpt L} repeat + closepath fill grestore } def +/Circle { stroke [] 0 setdash 2 copy + hpt 0 360 arc stroke Pnt } def +/CircleF { stroke [] 0 setdash hpt 0 360 arc fill } def +/C0 { BL [] 0 setdash 2 copy moveto vpt 90 450 arc } bind def +/C1 { BL [] 0 setdash 2 copy moveto + 2 copy vpt 0 90 arc closepath fill + vpt 0 360 arc closepath } bind def +/C2 { BL [] 0 setdash 2 copy moveto + 2 copy vpt 90 180 arc closepath fill + vpt 0 360 arc closepath } bind def +/C3 { BL [] 0 setdash 2 copy moveto + 2 copy vpt 0 180 arc closepath fill + vpt 0 360 arc closepath } bind def +/C4 { BL [] 0 setdash 2 copy moveto + 2 copy vpt 180 270 arc closepath fill + vpt 0 360 arc closepath } bind def +/C5 { BL [] 0 setdash 2 copy moveto + 2 copy vpt 0 90 arc + 2 copy moveto + 2 copy vpt 180 270 arc closepath fill + vpt 0 360 arc } bind def +/C6 { BL [] 0 setdash 2 copy moveto + 2 copy vpt 90 270 arc closepath fill + vpt 0 360 arc closepath } bind def +/C7 { BL [] 0 setdash 2 copy moveto + 2 copy vpt 0 270 arc closepath fill + vpt 0 360 arc closepath } bind def +/C8 { BL [] 0 setdash 2 copy moveto + 2 copy vpt 270 360 arc closepath fill + vpt 0 360 arc closepath } bind def +/C9 { BL [] 0 setdash 2 copy moveto + 2 copy vpt 270 450 arc closepath fill + vpt 0 360 arc closepath } bind def +/C10 { BL [] 0 setdash 2 copy 2 copy moveto vpt 270 360 arc closepath fill + 2 copy moveto + 2 copy vpt 90 180 arc closepath fill + vpt 0 360 arc closepath } bind def +/C11 { BL [] 0 setdash 2 copy moveto + 2 copy vpt 0 180 arc closepath fill + 2 copy moveto + 2 copy vpt 270 360 arc closepath fill + vpt 0 360 arc closepath } bind def +/C12 { BL [] 0 setdash 2 copy moveto + 2 copy vpt 180 360 arc closepath fill + vpt 0 360 arc closepath } bind def +/C13 { BL [] 0 setdash 2 copy moveto + 2 copy vpt 0 90 arc closepath fill + 2 copy moveto + 2 copy vpt 180 360 arc closepath fill + vpt 0 360 arc closepath } bind def +/C14 { BL [] 0 setdash 2 copy moveto + 2 copy vpt 90 360 arc closepath fill + vpt 0 360 arc } bind def +/C15 { BL [] 0 setdash 2 copy vpt 0 360 arc closepath fill + vpt 0 360 arc closepath } bind def +/Rec { newpath 4 2 roll moveto 1 index 0 rlineto 0 exch rlineto + neg 0 rlineto closepath } bind def +/Square { dup Rec } bind def +/Bsquare { vpt sub exch vpt sub exch vpt2 Square } bind def +/S0 { BL [] 0 setdash 2 copy moveto 0 vpt rlineto BL Bsquare } bind def +/S1 { BL [] 0 setdash 2 copy vpt Square fill Bsquare } bind def +/S2 { BL [] 0 setdash 2 copy exch vpt sub exch vpt Square fill Bsquare } bind def +/S3 { BL [] 0 setdash 2 copy exch vpt sub exch vpt2 vpt Rec fill Bsquare } bind def +/S4 { BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt Square fill Bsquare } bind def +/S5 { BL [] 0 setdash 2 copy 2 copy vpt Square fill + exch vpt sub exch vpt sub vpt Square fill Bsquare } bind def +/S6 { BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt vpt2 Rec fill Bsquare } bind def +/S7 { BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt vpt2 Rec fill + 2 copy vpt Square fill + Bsquare } bind def +/S8 { BL [] 0 setdash 2 copy vpt sub vpt Square fill Bsquare } bind def +/S9 { BL [] 0 setdash 2 copy vpt sub vpt vpt2 Rec fill Bsquare } bind def +/S10 { BL [] 0 setdash 2 copy vpt sub vpt Square fill 2 copy exch vpt sub exch vpt Square fill + Bsquare } bind def +/S11 { BL [] 0 setdash 2 copy vpt sub vpt Square fill 2 copy exch vpt sub exch vpt2 vpt Rec fill + Bsquare } bind def +/S12 { BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt2 vpt Rec fill Bsquare } bind def +/S13 { BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt2 vpt Rec fill + 2 copy vpt Square fill Bsquare } bind def +/S14 { BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt2 vpt Rec fill + 2 copy exch vpt sub exch vpt Square fill Bsquare } bind def +/S15 { BL [] 0 setdash 2 copy Bsquare fill Bsquare } bind def +/D0 { gsave translate 45 rotate 0 0 S0 stroke grestore } bind def +/D1 { gsave translate 45 rotate 0 0 S1 stroke grestore } bind def +/D2 { gsave translate 45 rotate 0 0 S2 stroke grestore } bind def +/D3 { gsave translate 45 rotate 0 0 S3 stroke grestore } bind def +/D4 { gsave translate 45 rotate 0 0 S4 stroke grestore } bind def +/D5 { gsave translate 45 rotate 0 0 S5 stroke grestore } bind def +/D6 { gsave translate 45 rotate 0 0 S6 stroke grestore } bind def +/D7 { gsave translate 45 rotate 0 0 S7 stroke grestore } bind def +/D8 { gsave translate 45 rotate 0 0 S8 stroke grestore } bind def +/D9 { gsave translate 45 rotate 0 0 S9 stroke grestore } bind def +/D10 { gsave translate 45 rotate 0 0 S10 stroke grestore } bind def +/D11 { gsave translate 45 rotate 0 0 S11 stroke grestore } bind def +/D12 { gsave translate 45 rotate 0 0 S12 stroke grestore } bind def +/D13 { gsave translate 45 rotate 0 0 S13 stroke grestore } bind def +/D14 { gsave translate 45 rotate 0 0 S14 stroke grestore } bind def +/D15 { gsave translate 45 rotate 0 0 S15 stroke grestore } bind def +/DiaE { stroke [] 0 setdash vpt add M + hpt neg vpt neg V hpt vpt neg V + hpt vpt V hpt neg vpt V closepath stroke } def +/BoxE { stroke [] 0 setdash exch hpt sub exch vpt add M + 0 vpt2 neg V hpt2 0 V 0 vpt2 V + hpt2 neg 0 V closepath stroke } def +/TriUE { stroke [] 0 setdash vpt 1.12 mul add M + hpt neg vpt -1.62 mul V + hpt 2 mul 0 V + hpt neg vpt 1.62 mul V closepath stroke } def +/TriDE { stroke [] 0 setdash vpt 1.12 mul sub M + hpt neg vpt 1.62 mul V + hpt 2 mul 0 V + hpt neg vpt -1.62 mul V closepath stroke } def +/PentE { stroke [] 0 setdash gsave + translate 0 hpt M 4 {72 rotate 0 hpt L} repeat + closepath stroke grestore } def +/CircE { stroke [] 0 setdash + hpt 0 360 arc stroke } def +/BoxFill { gsave Rec 1 setgray fill grestore } def +end +gnudict begin +gsave +50 50 translate +0.050 0.050 scale +0 setgray +newpath +(Helvetica) findfont 140 scalefont setfont +LTb +672 560 M +63 0 V +4067 0 R +-63 0 V +588 560 M +(-2) Rshow +672 1076 M +63 0 V +4067 0 R +-63 0 V +-4151 0 R +(-1.5) Rshow +672 1593 M +63 0 V +4067 0 R +-63 0 V +-4151 0 R +(-1) Rshow +672 2109 M +63 0 V +4067 0 R +-63 0 V +-4151 0 R +(-0.5) Rshow +672 2625 M +63 0 V +4067 0 R +-63 0 V +-4151 0 R +(0) Rshow +672 3141 M +63 0 V +4067 0 R +-63 0 V +-4151 0 R +(0.5) Rshow +672 3658 M +63 0 V +4067 0 R +-63 0 V +-4151 0 R +(1) Rshow +672 4174 M +63 0 V +4067 0 R +-63 0 V +-4151 0 R +(1.5) Rshow +672 4690 M +63 0 V +4067 0 R +-63 0 V +-4151 0 R +(2) Rshow +672 560 M +0 63 V +0 4067 R +0 -63 V +672 420 M +(-2) Cshow +1188 560 M +0 63 V +0 4067 R +0 -63 V +0 -4207 R +(-1.5) Cshow +1705 560 M +0 63 V +0 4067 R +0 -63 V +0 -4207 R +(-1) Cshow +2221 560 M +0 63 V +0 4067 R +0 -63 V +0 -4207 R +(-0.5) Cshow +2737 560 M +0 63 V +0 4067 R +0 -63 V +0 -4207 R +(0) Cshow +3253 560 M +0 63 V +0 4067 R +0 -63 V +0 -4207 R +(0.5) Cshow +3770 560 M +0 63 V +0 4067 R +0 -63 V +0 -4207 R +(1) Cshow +4286 560 M +0 63 V +0 4067 R +0 -63 V +0 -4207 R +(1.5) Cshow +4802 560 M +0 63 V +0 4067 R +0 -63 V +0 -4207 R +(2) Cshow +LTb +672 560 M +4130 0 V +0 4130 V +-4130 0 V +672 560 L +2737 210 M +(rotate about eigenaxis 15.00 deg) Cshow +2737 4900 M +(yaw=15.00 deg, pitch= 0.00 deg) Cshow +1.000 UP +1.000 UL +LT0 +4151 4557 M +(x \(body\)) Rshow +4235 4557 M +399 0 V +3279 2491 M +-542 134 V +3279 2491 Pls +2737 2625 Pls +4434 4557 Pls +1.000 UP +1.000 UL +LT1 +4151 4417 M +(y \(body\)) Rshow +4235 4417 M +399 0 V +2737 2625 M +800 499 V +2737 2625 Pls +3537 3124 Pls +4434 4417 Pls +1.000 UP +1.000 UL +LT2 +4151 4277 M +(z \(body\)) Rshow +4235 4277 M +399 0 V +2737 2625 M +365 -894 V +2737 2625 Crs +3102 1731 Crs +4434 4277 Crs +1.000 UP +1.000 UL +LT0 +4151 4137 M +(x \(inertial\)) Rshow +4235 4137 M +399 0 V +3467 2625 M +-730 0 V +3467 2625 Star +2737 2625 Star +4434 4137 Star +1.000 UP +1.000 UL +LT1 +4151 3997 M +(y \(inertial\)) Rshow +4235 3997 M +399 0 V +2737 2625 M +632 516 V +2737 2625 Star +3369 3141 Star +4434 3997 Star +1.000 UP +1.000 UL +LT2 +4151 3857 M +(z \(inertial\)) Rshow +4235 3857 M +399 0 V +2737 2625 M +365 -894 V +2737 2625 Box +3102 1731 Box +4434 3857 Box +1.000 UL +LT5 +4151 3717 M +(eigenaxis) Rshow +4235 3717 M +399 0 V +2737 2625 M +-365 894 V +87 14 V +7 10 V +2 9 V +-1 7 V +-6 6 V +-9 4 V +-13 2 V +-16 -1 V +-18 -3 V +-20 -5 V +-20 -6 V +1.000 UL +LT3 +3200 1215 M +-1460 0 V +1010 3003 L +2274 4035 L +1460 0 V +4464 2247 L +3200 1215 L +4464 2247 L +-1460 0 V +2274 4035 L +3004 2247 L +1740 1215 L +1.000 UL +LT4 +3734 4035 M +2470 3003 L +-1460 0 V +1460 0 V +3200 1215 L +stroke +grestore +end +showpage + @endspecial 2050 w @beginspecial 50 @llx 50 @lly 410 +@urx 302 @ury 2808 @rwi @setspecial +/gnudict 120 dict def +gnudict begin +/Color false def +/Solid false def +/gnulinewidth 5.000 def +/userlinewidth gnulinewidth def +/vshift -46 def +/dl {10 mul} def +/hpt_ 31.5 def +/vpt_ 31.5 def +/hpt hpt_ def +/vpt vpt_ def +/M {moveto} bind def +/L {lineto} bind def +/R {rmoveto} bind def +/V {rlineto} bind def +/vpt2 vpt 2 mul def +/hpt2 hpt 2 mul def +/Lshow { currentpoint stroke M + 0 vshift R show } def +/Rshow { currentpoint stroke M + dup stringwidth pop neg vshift R show } def +/Cshow { currentpoint stroke M + dup stringwidth pop -2 div vshift R show } def +/UP { dup vpt_ mul /vpt exch def hpt_ mul /hpt exch def + /hpt2 hpt 2 mul def /vpt2 vpt 2 mul def } def +/DL { Color {setrgbcolor Solid {pop []} if 0 setdash } + {pop pop pop Solid {pop []} if 0 setdash} ifelse } def +/BL { stroke gnulinewidth 2 mul setlinewidth } def +/AL { stroke gnulinewidth 2 div setlinewidth } def +/UL { gnulinewidth mul /userlinewidth exch def } def +/PL { stroke userlinewidth setlinewidth } def +/LTb { BL [] 0 0 0 DL } def +/LTa { AL [1 dl 2 dl] 0 setdash 0 0 0 setrgbcolor } def +/LT0 { PL [] 0 1 0 DL } def +/LT1 { PL [4 dl 2 dl] 0 0 1 DL } def +/LT2 { PL [2 dl 3 dl] 1 0 0 DL } def +/LT3 { PL [1 dl 1.5 dl] 1 0 1 DL } def +/LT4 { PL [5 dl 2 dl 1 dl 2 dl] 0 1 1 DL } def +/LT5 { PL [4 dl 3 dl 1 dl 3 dl] 1 1 0 DL } def +/LT6 { PL [2 dl 2 dl 2 dl 4 dl] 0 0 0 DL } def +/LT7 { PL [2 dl 2 dl 2 dl 2 dl 2 dl 4 dl] 1 0.3 0 DL } def +/LT8 { PL [2 dl 2 dl 2 dl 2 dl 2 dl 2 dl 2 dl 4 dl] 0.5 0.5 0.5 DL } def +/Pnt { stroke [] 0 setdash + gsave 1 setlinecap M 0 0 V stroke grestore } def +/Dia { stroke [] 0 setdash 2 copy vpt add M + hpt neg vpt neg V hpt vpt neg V + hpt vpt V hpt neg vpt V closepath stroke + Pnt } def +/Pls { stroke [] 0 setdash vpt sub M 0 vpt2 V + currentpoint stroke M + hpt neg vpt neg R hpt2 0 V stroke + } def +/Box { stroke [] 0 setdash 2 copy exch hpt sub exch vpt add M + 0 vpt2 neg V hpt2 0 V 0 vpt2 V + hpt2 neg 0 V closepath stroke + Pnt } def +/Crs { stroke [] 0 setdash exch hpt sub exch vpt add M + hpt2 vpt2 neg V currentpoint stroke M + hpt2 neg 0 R hpt2 vpt2 V stroke } def +/TriU { stroke [] 0 setdash 2 copy vpt 1.12 mul add M + hpt neg vpt -1.62 mul V + hpt 2 mul 0 V + hpt neg vpt 1.62 mul V closepath stroke + Pnt } def +/Star { 2 copy Pls Crs } def +/BoxF { stroke [] 0 setdash exch hpt sub exch vpt add M + 0 vpt2 neg V hpt2 0 V 0 vpt2 V + hpt2 neg 0 V closepath fill } def +/TriUF { stroke [] 0 setdash vpt 1.12 mul add M + hpt neg vpt -1.62 mul V + hpt 2 mul 0 V + hpt neg vpt 1.62 mul V closepath fill } def +/TriD { stroke [] 0 setdash 2 copy vpt 1.12 mul sub M + hpt neg vpt 1.62 mul V + hpt 2 mul 0 V + hpt neg vpt -1.62 mul V closepath stroke + Pnt } def +/TriDF { stroke [] 0 setdash vpt 1.12 mul sub M + hpt neg vpt 1.62 mul V + hpt 2 mul 0 V + hpt neg vpt -1.62 mul V closepath fill} def +/DiaF { stroke [] 0 setdash vpt add M + hpt neg vpt neg V hpt vpt neg V + hpt vpt V hpt neg vpt V closepath fill } def +/Pent { stroke [] 0 setdash 2 copy gsave + translate 0 hpt M 4 {72 rotate 0 hpt L} repeat + closepath stroke grestore Pnt } def +/PentF { stroke [] 0 setdash gsave + translate 0 hpt M 4 {72 rotate 0 hpt L} repeat + closepath fill grestore } def +/Circle { stroke [] 0 setdash 2 copy + hpt 0 360 arc stroke Pnt } def +/CircleF { stroke [] 0 setdash hpt 0 360 arc fill } def +/C0 { BL [] 0 setdash 2 copy moveto vpt 90 450 arc } bind def +/C1 { BL [] 0 setdash 2 copy moveto + 2 copy vpt 0 90 arc closepath fill + vpt 0 360 arc closepath } bind def +/C2 { BL [] 0 setdash 2 copy moveto + 2 copy vpt 90 180 arc closepath fill + vpt 0 360 arc closepath } bind def +/C3 { BL [] 0 setdash 2 copy moveto + 2 copy vpt 0 180 arc closepath fill + vpt 0 360 arc closepath } bind def +/C4 { BL [] 0 setdash 2 copy moveto + 2 copy vpt 180 270 arc closepath fill + vpt 0 360 arc closepath } bind def +/C5 { BL [] 0 setdash 2 copy moveto + 2 copy vpt 0 90 arc + 2 copy moveto + 2 copy vpt 180 270 arc closepath fill + vpt 0 360 arc } bind def +/C6 { BL [] 0 setdash 2 copy moveto + 2 copy vpt 90 270 arc closepath fill + vpt 0 360 arc closepath } bind def +/C7 { BL [] 0 setdash 2 copy moveto + 2 copy vpt 0 270 arc closepath fill + vpt 0 360 arc closepath } bind def +/C8 { BL [] 0 setdash 2 copy moveto + 2 copy vpt 270 360 arc closepath fill + vpt 0 360 arc closepath } bind def +/C9 { BL [] 0 setdash 2 copy moveto + 2 copy vpt 270 450 arc closepath fill + vpt 0 360 arc closepath } bind def +/C10 { BL [] 0 setdash 2 copy 2 copy moveto vpt 270 360 arc closepath fill + 2 copy moveto + 2 copy vpt 90 180 arc closepath fill + vpt 0 360 arc closepath } bind def +/C11 { BL [] 0 setdash 2 copy moveto + 2 copy vpt 0 180 arc closepath fill + 2 copy moveto + 2 copy vpt 270 360 arc closepath fill + vpt 0 360 arc closepath } bind def +/C12 { BL [] 0 setdash 2 copy moveto + 2 copy vpt 180 360 arc closepath fill + vpt 0 360 arc closepath } bind def +/C13 { BL [] 0 setdash 2 copy moveto + 2 copy vpt 0 90 arc closepath fill + 2 copy moveto + 2 copy vpt 180 360 arc closepath fill + vpt 0 360 arc closepath } bind def +/C14 { BL [] 0 setdash 2 copy moveto + 2 copy vpt 90 360 arc closepath fill + vpt 0 360 arc } bind def +/C15 { BL [] 0 setdash 2 copy vpt 0 360 arc closepath fill + vpt 0 360 arc closepath } bind def +/Rec { newpath 4 2 roll moveto 1 index 0 rlineto 0 exch rlineto + neg 0 rlineto closepath } bind def +/Square { dup Rec } bind def +/Bsquare { vpt sub exch vpt sub exch vpt2 Square } bind def +/S0 { BL [] 0 setdash 2 copy moveto 0 vpt rlineto BL Bsquare } bind def +/S1 { BL [] 0 setdash 2 copy vpt Square fill Bsquare } bind def +/S2 { BL [] 0 setdash 2 copy exch vpt sub exch vpt Square fill Bsquare } bind def +/S3 { BL [] 0 setdash 2 copy exch vpt sub exch vpt2 vpt Rec fill Bsquare } bind def +/S4 { BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt Square fill Bsquare } bind def +/S5 { BL [] 0 setdash 2 copy 2 copy vpt Square fill + exch vpt sub exch vpt sub vpt Square fill Bsquare } bind def +/S6 { BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt vpt2 Rec fill Bsquare } bind def +/S7 { BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt vpt2 Rec fill + 2 copy vpt Square fill + Bsquare } bind def +/S8 { BL [] 0 setdash 2 copy vpt sub vpt Square fill Bsquare } bind def +/S9 { BL [] 0 setdash 2 copy vpt sub vpt vpt2 Rec fill Bsquare } bind def +/S10 { BL [] 0 setdash 2 copy vpt sub vpt Square fill 2 copy exch vpt sub exch vpt Square fill + Bsquare } bind def +/S11 { BL [] 0 setdash 2 copy vpt sub vpt Square fill 2 copy exch vpt sub exch vpt2 vpt Rec fill + Bsquare } bind def +/S12 { BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt2 vpt Rec fill Bsquare } bind def +/S13 { BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt2 vpt Rec fill + 2 copy vpt Square fill Bsquare } bind def +/S14 { BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt2 vpt Rec fill + 2 copy exch vpt sub exch vpt Square fill Bsquare } bind def +/S15 { BL [] 0 setdash 2 copy Bsquare fill Bsquare } bind def +/D0 { gsave translate 45 rotate 0 0 S0 stroke grestore } bind def +/D1 { gsave translate 45 rotate 0 0 S1 stroke grestore } bind def +/D2 { gsave translate 45 rotate 0 0 S2 stroke grestore } bind def +/D3 { gsave translate 45 rotate 0 0 S3 stroke grestore } bind def +/D4 { gsave translate 45 rotate 0 0 S4 stroke grestore } bind def +/D5 { gsave translate 45 rotate 0 0 S5 stroke grestore } bind def +/D6 { gsave translate 45 rotate 0 0 S6 stroke grestore } bind def +/D7 { gsave translate 45 rotate 0 0 S7 stroke grestore } bind def +/D8 { gsave translate 45 rotate 0 0 S8 stroke grestore } bind def +/D9 { gsave translate 45 rotate 0 0 S9 stroke grestore } bind def +/D10 { gsave translate 45 rotate 0 0 S10 stroke grestore } bind def +/D11 { gsave translate 45 rotate 0 0 S11 stroke grestore } bind def +/D12 { gsave translate 45 rotate 0 0 S12 stroke grestore } bind def +/D13 { gsave translate 45 rotate 0 0 S13 stroke grestore } bind def +/D14 { gsave translate 45 rotate 0 0 S14 stroke grestore } bind def +/D15 { gsave translate 45 rotate 0 0 S15 stroke grestore } bind def +/DiaE { stroke [] 0 setdash vpt add M + hpt neg vpt neg V hpt vpt neg V + hpt vpt V hpt neg vpt V closepath stroke } def +/BoxE { stroke [] 0 setdash exch hpt sub exch vpt add M + 0 vpt2 neg V hpt2 0 V 0 vpt2 V + hpt2 neg 0 V closepath stroke } def +/TriUE { stroke [] 0 setdash vpt 1.12 mul add M + hpt neg vpt -1.62 mul V + hpt 2 mul 0 V + hpt neg vpt 1.62 mul V closepath stroke } def +/TriDE { stroke [] 0 setdash vpt 1.12 mul sub M + hpt neg vpt 1.62 mul V + hpt 2 mul 0 V + hpt neg vpt -1.62 mul V closepath stroke } def +/PentE { stroke [] 0 setdash gsave + translate 0 hpt M 4 {72 rotate 0 hpt L} repeat + closepath stroke grestore } def +/CircE { stroke [] 0 setdash + hpt 0 360 arc stroke } def +/BoxFill { gsave Rec 1 setgray fill grestore } def +end +gnudict begin +gsave +50 50 translate +0.050 0.050 scale +0 setgray +newpath +(Helvetica) findfont 140 scalefont setfont +LTb +672 560 M +63 0 V +4067 0 R +-63 0 V +588 560 M +(-2) Rshow +672 1076 M +63 0 V +4067 0 R +-63 0 V +-4151 0 R +(-1.5) Rshow +672 1593 M +63 0 V +4067 0 R +-63 0 V +-4151 0 R +(-1) Rshow +672 2109 M +63 0 V +4067 0 R +-63 0 V +-4151 0 R +(-0.5) Rshow +672 2625 M +63 0 V +4067 0 R +-63 0 V +-4151 0 R +(0) Rshow +672 3141 M +63 0 V +4067 0 R +-63 0 V +-4151 0 R +(0.5) Rshow +672 3658 M +63 0 V +4067 0 R +-63 0 V +-4151 0 R +(1) Rshow +672 4174 M +63 0 V +4067 0 R +-63 0 V +-4151 0 R +(1.5) Rshow +672 4690 M +63 0 V +4067 0 R +-63 0 V +-4151 0 R +(2) Rshow +672 560 M +0 63 V +0 4067 R +0 -63 V +672 420 M +(-2) Cshow +1188 560 M +0 63 V +0 4067 R +0 -63 V +0 -4207 R +(-1.5) Cshow +1705 560 M +0 63 V +0 4067 R +0 -63 V +0 -4207 R +(-1) Cshow +2221 560 M +0 63 V +0 4067 R +0 -63 V +0 -4207 R +(-0.5) Cshow +2737 560 M +0 63 V +0 4067 R +0 -63 V +0 -4207 R +(0) Cshow +3253 560 M +0 63 V +0 4067 R +0 -63 V +0 -4207 R +(0.5) Cshow +3770 560 M +0 63 V +0 4067 R +0 -63 V +0 -4207 R +(1) Cshow +4286 560 M +0 63 V +0 4067 R +0 -63 V +0 -4207 R +(1.5) Cshow +4802 560 M +0 63 V +0 4067 R +0 -63 V +0 -4207 R +(2) Cshow +LTb +672 560 M +4130 0 V +0 4130 V +-4130 0 V +672 560 L +2737 210 M +(rotate about eigenaxis 20.00 deg) Cshow +2737 4900 M +(yaw=20.00 deg, pitch= 0.00 deg) Cshow +1.000 UP +1.000 UL +LT0 +4151 4557 M +(x \(body\)) Rshow +4235 4557 M +399 0 V +3207 2448 M +-470 177 V +3207 2448 Pls +2737 2625 Pls +4434 4557 Pls +1.000 UP +1.000 UL +LT1 +4151 4417 M +(y \(body\)) Rshow +4235 4417 M +399 0 V +2737 2625 M +844 485 V +2737 2625 Pls +3581 3110 Pls +4434 4417 Pls +1.000 UP +1.000 UL +LT2 +4151 4277 M +(z \(body\)) Rshow +4235 4277 M +399 0 V +2737 2625 M +365 -894 V +2737 2625 Crs +3102 1731 Crs +4434 4277 Crs +1.000 UP +1.000 UL +LT0 +4151 4137 M +(x \(inertial\)) Rshow +4235 4137 M +399 0 V +3467 2625 M +-730 0 V +3467 2625 Star +2737 2625 Star +4434 4137 Star +1.000 UP +1.000 UL +LT1 +4151 3997 M +(y \(inertial\)) Rshow +4235 3997 M +399 0 V +2737 2625 M +632 516 V +2737 2625 Star +3369 3141 Star +4434 3997 Star +1.000 UP +1.000 UL +LT2 +4151 3857 M +(z \(inertial\)) Rshow +4235 3857 M +399 0 V +2737 2625 M +365 -894 V +2737 2625 Box +3102 1731 Box +4434 3857 Box +1.000 UL +LT5 +4151 3717 M +(eigenaxis) Rshow +4235 3717 M +399 0 V +2737 2625 M +-365 894 V +90 18 V +5 10 V +1 8 V +-3 7 V +-7 5 V +-11 3 V +-14 1 V +-17 -2 V +-19 -3 V +-20 -6 V +-20 -8 V +1.000 UL +LT3 +3200 1215 M +-1460 0 V +1010 3003 L +2274 4035 L +1460 0 V +4464 2247 L +3200 1215 L +4464 2247 L +-1460 0 V +2274 4035 L +3004 2247 L +1740 1215 L +1.000 UL +LT4 +3734 4035 M +2470 3003 L +-1460 0 V +1460 0 V +3200 1215 L +stroke +grestore +end +showpage + @endspecial eop +11 10 bop 0 100 a Fn(A.)31 b(S.)f(Ho)s(del:)40 b(Quaternions)29 +b(\(In)m(tro)s(duction\))g Fo(R)q(ev)s(ision)d Fq(:)f(1)p +Fo(:)p Fq(1)421 b Fn(\(c\))31 b(1998)871 b Fq(11)50 2045 +y @beginspecial 50 @llx 50 @lly 410 @urx 302 @ury 2808 +@rwi @setspecial +/gnudict 120 dict def +gnudict begin +/Color false def +/Solid false def +/gnulinewidth 5.000 def +/userlinewidth gnulinewidth def +/vshift -46 def +/dl {10 mul} def +/hpt_ 31.5 def +/vpt_ 31.5 def +/hpt hpt_ def +/vpt vpt_ def +/M {moveto} bind def +/L {lineto} bind def +/R {rmoveto} bind def +/V {rlineto} bind def +/vpt2 vpt 2 mul def +/hpt2 hpt 2 mul def +/Lshow { currentpoint stroke M + 0 vshift R show } def +/Rshow { currentpoint stroke M + dup stringwidth pop neg vshift R show } def +/Cshow { currentpoint stroke M + dup stringwidth pop -2 div vshift R show } def +/UP { dup vpt_ mul /vpt exch def hpt_ mul /hpt exch def + /hpt2 hpt 2 mul def /vpt2 vpt 2 mul def } def +/DL { Color {setrgbcolor Solid {pop []} if 0 setdash } + {pop pop pop Solid {pop []} if 0 setdash} ifelse } def +/BL { stroke gnulinewidth 2 mul setlinewidth } def +/AL { stroke gnulinewidth 2 div setlinewidth } def +/UL { gnulinewidth mul /userlinewidth exch def } def +/PL { stroke userlinewidth setlinewidth } def +/LTb { BL [] 0 0 0 DL } def +/LTa { AL [1 dl 2 dl] 0 setdash 0 0 0 setrgbcolor } def +/LT0 { PL [] 0 1 0 DL } def +/LT1 { PL [4 dl 2 dl] 0 0 1 DL } def +/LT2 { PL [2 dl 3 dl] 1 0 0 DL } def +/LT3 { PL [1 dl 1.5 dl] 1 0 1 DL } def +/LT4 { PL [5 dl 2 dl 1 dl 2 dl] 0 1 1 DL } def +/LT5 { PL [4 dl 3 dl 1 dl 3 dl] 1 1 0 DL } def +/LT6 { PL [2 dl 2 dl 2 dl 4 dl] 0 0 0 DL } def +/LT7 { PL [2 dl 2 dl 2 dl 2 dl 2 dl 4 dl] 1 0.3 0 DL } def +/LT8 { PL [2 dl 2 dl 2 dl 2 dl 2 dl 2 dl 2 dl 4 dl] 0.5 0.5 0.5 DL } def +/Pnt { stroke [] 0 setdash + gsave 1 setlinecap M 0 0 V stroke grestore } def +/Dia { stroke [] 0 setdash 2 copy vpt add M + hpt neg vpt neg V hpt vpt neg V + hpt vpt V hpt neg vpt V closepath stroke + Pnt } def +/Pls { stroke [] 0 setdash vpt sub M 0 vpt2 V + currentpoint stroke M + hpt neg vpt neg R hpt2 0 V stroke + } def +/Box { stroke [] 0 setdash 2 copy exch hpt sub exch vpt add M + 0 vpt2 neg V hpt2 0 V 0 vpt2 V + hpt2 neg 0 V closepath stroke + Pnt } def +/Crs { stroke [] 0 setdash exch hpt sub exch vpt add M + hpt2 vpt2 neg V currentpoint stroke M + hpt2 neg 0 R hpt2 vpt2 V stroke } def +/TriU { stroke [] 0 setdash 2 copy vpt 1.12 mul add M + hpt neg vpt -1.62 mul V + hpt 2 mul 0 V + hpt neg vpt 1.62 mul V closepath stroke + Pnt } def +/Star { 2 copy Pls Crs } def +/BoxF { stroke [] 0 setdash exch hpt sub exch vpt add M + 0 vpt2 neg V hpt2 0 V 0 vpt2 V + hpt2 neg 0 V closepath fill } def +/TriUF { stroke [] 0 setdash vpt 1.12 mul add M + hpt neg vpt -1.62 mul V + hpt 2 mul 0 V + hpt neg vpt 1.62 mul V closepath fill } def +/TriD { stroke [] 0 setdash 2 copy vpt 1.12 mul sub M + hpt neg vpt 1.62 mul V + hpt 2 mul 0 V + hpt neg vpt -1.62 mul V closepath stroke + Pnt } def +/TriDF { stroke [] 0 setdash vpt 1.12 mul sub M + hpt neg vpt 1.62 mul V + hpt 2 mul 0 V + hpt neg vpt -1.62 mul V closepath fill} def +/DiaF { stroke [] 0 setdash vpt add M + hpt neg vpt neg V hpt vpt neg V + hpt vpt V hpt neg vpt V closepath fill } def +/Pent { stroke [] 0 setdash 2 copy gsave + translate 0 hpt M 4 {72 rotate 0 hpt L} repeat + closepath stroke grestore Pnt } def +/PentF { stroke [] 0 setdash gsave + translate 0 hpt M 4 {72 rotate 0 hpt L} repeat + closepath fill grestore } def +/Circle { stroke [] 0 setdash 2 copy + hpt 0 360 arc stroke Pnt } def +/CircleF { stroke [] 0 setdash hpt 0 360 arc fill } def +/C0 { BL [] 0 setdash 2 copy moveto vpt 90 450 arc } bind def +/C1 { BL [] 0 setdash 2 copy moveto + 2 copy vpt 0 90 arc closepath fill + vpt 0 360 arc closepath } bind def +/C2 { BL [] 0 setdash 2 copy moveto + 2 copy vpt 90 180 arc closepath fill + vpt 0 360 arc closepath } bind def +/C3 { BL [] 0 setdash 2 copy moveto + 2 copy vpt 0 180 arc closepath fill + vpt 0 360 arc closepath } bind def +/C4 { BL [] 0 setdash 2 copy moveto + 2 copy vpt 180 270 arc closepath fill + vpt 0 360 arc closepath } bind def +/C5 { BL [] 0 setdash 2 copy moveto + 2 copy vpt 0 90 arc + 2 copy moveto + 2 copy vpt 180 270 arc closepath fill + vpt 0 360 arc } bind def +/C6 { BL [] 0 setdash 2 copy moveto + 2 copy vpt 90 270 arc closepath fill + vpt 0 360 arc closepath } bind def +/C7 { BL [] 0 setdash 2 copy moveto + 2 copy vpt 0 270 arc closepath fill + vpt 0 360 arc closepath } bind def +/C8 { BL [] 0 setdash 2 copy moveto + 2 copy vpt 270 360 arc closepath fill + vpt 0 360 arc closepath } bind def +/C9 { BL [] 0 setdash 2 copy moveto + 2 copy vpt 270 450 arc closepath fill + vpt 0 360 arc closepath } bind def +/C10 { BL [] 0 setdash 2 copy 2 copy moveto vpt 270 360 arc closepath fill + 2 copy moveto + 2 copy vpt 90 180 arc closepath fill + vpt 0 360 arc closepath } bind def +/C11 { BL [] 0 setdash 2 copy moveto + 2 copy vpt 0 180 arc closepath fill + 2 copy moveto + 2 copy vpt 270 360 arc closepath fill + vpt 0 360 arc closepath } bind def +/C12 { BL [] 0 setdash 2 copy moveto + 2 copy vpt 180 360 arc closepath fill + vpt 0 360 arc closepath } bind def +/C13 { BL [] 0 setdash 2 copy moveto + 2 copy vpt 0 90 arc closepath fill + 2 copy moveto + 2 copy vpt 180 360 arc closepath fill + vpt 0 360 arc closepath } bind def +/C14 { BL [] 0 setdash 2 copy moveto + 2 copy vpt 90 360 arc closepath fill + vpt 0 360 arc } bind def +/C15 { BL [] 0 setdash 2 copy vpt 0 360 arc closepath fill + vpt 0 360 arc closepath } bind def +/Rec { newpath 4 2 roll moveto 1 index 0 rlineto 0 exch rlineto + neg 0 rlineto closepath } bind def +/Square { dup Rec } bind def +/Bsquare { vpt sub exch vpt sub exch vpt2 Square } bind def +/S0 { BL [] 0 setdash 2 copy moveto 0 vpt rlineto BL Bsquare } bind def +/S1 { BL [] 0 setdash 2 copy vpt Square fill Bsquare } bind def +/S2 { BL [] 0 setdash 2 copy exch vpt sub exch vpt Square fill Bsquare } bind def +/S3 { BL [] 0 setdash 2 copy exch vpt sub exch vpt2 vpt Rec fill Bsquare } bind def +/S4 { BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt Square fill Bsquare } bind def +/S5 { BL [] 0 setdash 2 copy 2 copy vpt Square fill + exch vpt sub exch vpt sub vpt Square fill Bsquare } bind def +/S6 { BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt vpt2 Rec fill Bsquare } bind def +/S7 { BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt vpt2 Rec fill + 2 copy vpt Square fill + Bsquare } bind def +/S8 { BL [] 0 setdash 2 copy vpt sub vpt Square fill Bsquare } bind def +/S9 { BL [] 0 setdash 2 copy vpt sub vpt vpt2 Rec fill Bsquare } bind def +/S10 { BL [] 0 setdash 2 copy vpt sub vpt Square fill 2 copy exch vpt sub exch vpt Square fill + Bsquare } bind def +/S11 { BL [] 0 setdash 2 copy vpt sub vpt Square fill 2 copy exch vpt sub exch vpt2 vpt Rec fill + Bsquare } bind def +/S12 { BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt2 vpt Rec fill Bsquare } bind def +/S13 { BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt2 vpt Rec fill + 2 copy vpt Square fill Bsquare } bind def +/S14 { BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt2 vpt Rec fill + 2 copy exch vpt sub exch vpt Square fill Bsquare } bind def +/S15 { BL [] 0 setdash 2 copy Bsquare fill Bsquare } bind def +/D0 { gsave translate 45 rotate 0 0 S0 stroke grestore } bind def +/D1 { gsave translate 45 rotate 0 0 S1 stroke grestore } bind def +/D2 { gsave translate 45 rotate 0 0 S2 stroke grestore } bind def +/D3 { gsave translate 45 rotate 0 0 S3 stroke grestore } bind def +/D4 { gsave translate 45 rotate 0 0 S4 stroke grestore } bind def +/D5 { gsave translate 45 rotate 0 0 S5 stroke grestore } bind def +/D6 { gsave translate 45 rotate 0 0 S6 stroke grestore } bind def +/D7 { gsave translate 45 rotate 0 0 S7 stroke grestore } bind def +/D8 { gsave translate 45 rotate 0 0 S8 stroke grestore } bind def +/D9 { gsave translate 45 rotate 0 0 S9 stroke grestore } bind def +/D10 { gsave translate 45 rotate 0 0 S10 stroke grestore } bind def +/D11 { gsave translate 45 rotate 0 0 S11 stroke grestore } bind def +/D12 { gsave translate 45 rotate 0 0 S12 stroke grestore } bind def +/D13 { gsave translate 45 rotate 0 0 S13 stroke grestore } bind def +/D14 { gsave translate 45 rotate 0 0 S14 stroke grestore } bind def +/D15 { gsave translate 45 rotate 0 0 S15 stroke grestore } bind def +/DiaE { stroke [] 0 setdash vpt add M + hpt neg vpt neg V hpt vpt neg V + hpt vpt V hpt neg vpt V closepath stroke } def +/BoxE { stroke [] 0 setdash exch hpt sub exch vpt add M + 0 vpt2 neg V hpt2 0 V 0 vpt2 V + hpt2 neg 0 V closepath stroke } def +/TriUE { stroke [] 0 setdash vpt 1.12 mul add M + hpt neg vpt -1.62 mul V + hpt 2 mul 0 V + hpt neg vpt 1.62 mul V closepath stroke } def +/TriDE { stroke [] 0 setdash vpt 1.12 mul sub M + hpt neg vpt 1.62 mul V + hpt 2 mul 0 V + hpt neg vpt -1.62 mul V closepath stroke } def +/PentE { stroke [] 0 setdash gsave + translate 0 hpt M 4 {72 rotate 0 hpt L} repeat + closepath stroke grestore } def +/CircE { stroke [] 0 setdash + hpt 0 360 arc stroke } def +/BoxFill { gsave Rec 1 setgray fill grestore } def +end +gnudict begin +gsave +50 50 translate +0.050 0.050 scale +0 setgray +newpath +(Helvetica) findfont 140 scalefont setfont +LTb +672 560 M +63 0 V +4067 0 R +-63 0 V +588 560 M +(-2) Rshow +672 1076 M +63 0 V +4067 0 R +-63 0 V +-4151 0 R +(-1.5) Rshow +672 1593 M +63 0 V +4067 0 R +-63 0 V +-4151 0 R +(-1) Rshow +672 2109 M +63 0 V +4067 0 R +-63 0 V +-4151 0 R +(-0.5) Rshow +672 2625 M +63 0 V +4067 0 R +-63 0 V +-4151 0 R +(0) Rshow +672 3141 M +63 0 V +4067 0 R +-63 0 V +-4151 0 R +(0.5) Rshow +672 3658 M +63 0 V +4067 0 R +-63 0 V +-4151 0 R +(1) Rshow +672 4174 M +63 0 V +4067 0 R +-63 0 V +-4151 0 R +(1.5) Rshow +672 4690 M +63 0 V +4067 0 R +-63 0 V +-4151 0 R +(2) Rshow +672 560 M +0 63 V +0 4067 R +0 -63 V +672 420 M +(-2) Cshow +1188 560 M +0 63 V +0 4067 R +0 -63 V +0 -4207 R +(-1.5) Cshow +1705 560 M +0 63 V +0 4067 R +0 -63 V +0 -4207 R +(-1) Cshow +2221 560 M +0 63 V +0 4067 R +0 -63 V +0 -4207 R +(-0.5) Cshow +2737 560 M +0 63 V +0 4067 R +0 -63 V +0 -4207 R +(0) Cshow +3253 560 M +0 63 V +0 4067 R +0 -63 V +0 -4207 R +(0.5) Cshow +3770 560 M +0 63 V +0 4067 R +0 -63 V +0 -4207 R +(1) Cshow +4286 560 M +0 63 V +0 4067 R +0 -63 V +0 -4207 R +(1.5) Cshow +4802 560 M +0 63 V +0 4067 R +0 -63 V +0 -4207 R +(2) Cshow +LTb +672 560 M +4130 0 V +0 4130 V +-4130 0 V +672 560 L +2737 210 M +(rotate about eigenaxis 20.00 deg) Cshow +2737 4900 M +(yaw=20.00 deg, pitch= 0.00 deg) Cshow +1.000 UP +1.000 UL +LT0 +4151 4557 M +(x \(body\)) Rshow +4235 4557 M +399 0 V +3207 2448 M +-470 177 V +3207 2448 Pls +2737 2625 Pls +4434 4557 Pls +1.000 UP +1.000 UL +LT1 +4151 4417 M +(y \(body\)) Rshow +4235 4417 M +399 0 V +2737 2625 M +844 485 V +2737 2625 Pls +3581 3110 Pls +4434 4417 Pls +1.000 UP +1.000 UL +LT2 +4151 4277 M +(z \(body\)) Rshow +4235 4277 M +399 0 V +2737 2625 M +365 -894 V +2737 2625 Crs +3102 1731 Crs +4434 4277 Crs +1.000 UP +1.000 UL +LT0 +4151 4137 M +(x \(inertial\)) Rshow +4235 4137 M +399 0 V +3467 2625 M +-730 0 V +3467 2625 Star +2737 2625 Star +4434 4137 Star +1.000 UP +1.000 UL +LT1 +4151 3997 M +(y \(inertial\)) Rshow +4235 3997 M +399 0 V +2737 2625 M +632 516 V +2737 2625 Star +3369 3141 Star +4434 3997 Star +1.000 UP +1.000 UL +LT2 +4151 3857 M +(z \(inertial\)) Rshow +4235 3857 M +399 0 V +2737 2625 M +365 -894 V +2737 2625 Box +3102 1731 Box +4434 3857 Box +1.000 UL +LT5 +4151 3717 M +(eigenaxis) Rshow +4235 3717 M +399 0 V +2737 2625 M +-365 894 V +90 18 V +5 10 V +1 8 V +-3 7 V +-7 5 V +-11 3 V +-14 1 V +-17 -2 V +-19 -3 V +-20 -6 V +-20 -8 V +1.000 UL +LT3 +3200 1215 M +-1460 0 V +1010 3003 L +2274 4035 L +1460 0 V +4464 2247 L +3200 1215 L +4464 2247 L +-1460 0 V +2274 4035 L +3004 2247 L +1740 1215 L +1.000 UL +LT4 +3734 4035 M +2470 3003 L +-1460 0 V +1460 0 V +3200 1215 L +stroke +grestore +end +showpage + @endspecial 2050 w @beginspecial 50 @llx 50 @lly 410 +@urx 302 @ury 2808 @rwi @setspecial +/gnudict 120 dict def +gnudict begin +/Color false def +/Solid false def +/gnulinewidth 5.000 def +/userlinewidth gnulinewidth def +/vshift -46 def +/dl {10 mul} def +/hpt_ 31.5 def +/vpt_ 31.5 def +/hpt hpt_ def +/vpt vpt_ def +/M {moveto} bind def +/L {lineto} bind def +/R {rmoveto} bind def +/V {rlineto} bind def +/vpt2 vpt 2 mul def +/hpt2 hpt 2 mul def +/Lshow { currentpoint stroke M + 0 vshift R show } def +/Rshow { currentpoint stroke M + dup stringwidth pop neg vshift R show } def +/Cshow { currentpoint stroke M + dup stringwidth pop -2 div vshift R show } def +/UP { dup vpt_ mul /vpt exch def hpt_ mul /hpt exch def + /hpt2 hpt 2 mul def /vpt2 vpt 2 mul def } def +/DL { Color {setrgbcolor Solid {pop []} if 0 setdash } + {pop pop pop Solid {pop []} if 0 setdash} ifelse } def +/BL { stroke gnulinewidth 2 mul setlinewidth } def +/AL { stroke gnulinewidth 2 div setlinewidth } def +/UL { gnulinewidth mul /userlinewidth exch def } def +/PL { stroke userlinewidth setlinewidth } def +/LTb { BL [] 0 0 0 DL } def +/LTa { AL [1 dl 2 dl] 0 setdash 0 0 0 setrgbcolor } def +/LT0 { PL [] 0 1 0 DL } def +/LT1 { PL [4 dl 2 dl] 0 0 1 DL } def +/LT2 { PL [2 dl 3 dl] 1 0 0 DL } def +/LT3 { PL [1 dl 1.5 dl] 1 0 1 DL } def +/LT4 { PL [5 dl 2 dl 1 dl 2 dl] 0 1 1 DL } def +/LT5 { PL [4 dl 3 dl 1 dl 3 dl] 1 1 0 DL } def +/LT6 { PL [2 dl 2 dl 2 dl 4 dl] 0 0 0 DL } def +/LT7 { PL [2 dl 2 dl 2 dl 2 dl 2 dl 4 dl] 1 0.3 0 DL } def +/LT8 { PL [2 dl 2 dl 2 dl 2 dl 2 dl 2 dl 2 dl 4 dl] 0.5 0.5 0.5 DL } def +/Pnt { stroke [] 0 setdash + gsave 1 setlinecap M 0 0 V stroke grestore } def +/Dia { stroke [] 0 setdash 2 copy vpt add M + hpt neg vpt neg V hpt vpt neg V + hpt vpt V hpt neg vpt V closepath stroke + Pnt } def +/Pls { stroke [] 0 setdash vpt sub M 0 vpt2 V + currentpoint stroke M + hpt neg vpt neg R hpt2 0 V stroke + } def +/Box { stroke [] 0 setdash 2 copy exch hpt sub exch vpt add M + 0 vpt2 neg V hpt2 0 V 0 vpt2 V + hpt2 neg 0 V closepath stroke + Pnt } def +/Crs { stroke [] 0 setdash exch hpt sub exch vpt add M + hpt2 vpt2 neg V currentpoint stroke M + hpt2 neg 0 R hpt2 vpt2 V stroke } def +/TriU { stroke [] 0 setdash 2 copy vpt 1.12 mul add M + hpt neg vpt -1.62 mul V + hpt 2 mul 0 V + hpt neg vpt 1.62 mul V closepath stroke + Pnt } def +/Star { 2 copy Pls Crs } def +/BoxF { stroke [] 0 setdash exch hpt sub exch vpt add M + 0 vpt2 neg V hpt2 0 V 0 vpt2 V + hpt2 neg 0 V closepath fill } def +/TriUF { stroke [] 0 setdash vpt 1.12 mul add M + hpt neg vpt -1.62 mul V + hpt 2 mul 0 V + hpt neg vpt 1.62 mul V closepath fill } def +/TriD { stroke [] 0 setdash 2 copy vpt 1.12 mul sub M + hpt neg vpt 1.62 mul V + hpt 2 mul 0 V + hpt neg vpt -1.62 mul V closepath stroke + Pnt } def +/TriDF { stroke [] 0 setdash vpt 1.12 mul sub M + hpt neg vpt 1.62 mul V + hpt 2 mul 0 V + hpt neg vpt -1.62 mul V closepath fill} def +/DiaF { stroke [] 0 setdash vpt add M + hpt neg vpt neg V hpt vpt neg V + hpt vpt V hpt neg vpt V closepath fill } def +/Pent { stroke [] 0 setdash 2 copy gsave + translate 0 hpt M 4 {72 rotate 0 hpt L} repeat + closepath stroke grestore Pnt } def +/PentF { stroke [] 0 setdash gsave + translate 0 hpt M 4 {72 rotate 0 hpt L} repeat + closepath fill grestore } def +/Circle { stroke [] 0 setdash 2 copy + hpt 0 360 arc stroke Pnt } def +/CircleF { stroke [] 0 setdash hpt 0 360 arc fill } def +/C0 { BL [] 0 setdash 2 copy moveto vpt 90 450 arc } bind def +/C1 { BL [] 0 setdash 2 copy moveto + 2 copy vpt 0 90 arc closepath fill + vpt 0 360 arc closepath } bind def +/C2 { BL [] 0 setdash 2 copy moveto + 2 copy vpt 90 180 arc closepath fill + vpt 0 360 arc closepath } bind def +/C3 { BL [] 0 setdash 2 copy moveto + 2 copy vpt 0 180 arc closepath fill + vpt 0 360 arc closepath } bind def +/C4 { BL [] 0 setdash 2 copy moveto + 2 copy vpt 180 270 arc closepath fill + vpt 0 360 arc closepath } bind def +/C5 { BL [] 0 setdash 2 copy moveto + 2 copy vpt 0 90 arc + 2 copy moveto + 2 copy vpt 180 270 arc closepath fill + vpt 0 360 arc } bind def +/C6 { BL [] 0 setdash 2 copy moveto + 2 copy vpt 90 270 arc closepath fill + vpt 0 360 arc closepath } bind def +/C7 { BL [] 0 setdash 2 copy moveto + 2 copy vpt 0 270 arc closepath fill + vpt 0 360 arc closepath } bind def +/C8 { BL [] 0 setdash 2 copy moveto + 2 copy vpt 270 360 arc closepath fill + vpt 0 360 arc closepath } bind def +/C9 { BL [] 0 setdash 2 copy moveto + 2 copy vpt 270 450 arc closepath fill + vpt 0 360 arc closepath } bind def +/C10 { BL [] 0 setdash 2 copy 2 copy moveto vpt 270 360 arc closepath fill + 2 copy moveto + 2 copy vpt 90 180 arc closepath fill + vpt 0 360 arc closepath } bind def +/C11 { BL [] 0 setdash 2 copy moveto + 2 copy vpt 0 180 arc closepath fill + 2 copy moveto + 2 copy vpt 270 360 arc closepath fill + vpt 0 360 arc closepath } bind def +/C12 { BL [] 0 setdash 2 copy moveto + 2 copy vpt 180 360 arc closepath fill + vpt 0 360 arc closepath } bind def +/C13 { BL [] 0 setdash 2 copy moveto + 2 copy vpt 0 90 arc closepath fill + 2 copy moveto + 2 copy vpt 180 360 arc closepath fill + vpt 0 360 arc closepath } bind def +/C14 { BL [] 0 setdash 2 copy moveto + 2 copy vpt 90 360 arc closepath fill + vpt 0 360 arc } bind def +/C15 { BL [] 0 setdash 2 copy vpt 0 360 arc closepath fill + vpt 0 360 arc closepath } bind def +/Rec { newpath 4 2 roll moveto 1 index 0 rlineto 0 exch rlineto + neg 0 rlineto closepath } bind def +/Square { dup Rec } bind def +/Bsquare { vpt sub exch vpt sub exch vpt2 Square } bind def +/S0 { BL [] 0 setdash 2 copy moveto 0 vpt rlineto BL Bsquare } bind def +/S1 { BL [] 0 setdash 2 copy vpt Square fill Bsquare } bind def +/S2 { BL [] 0 setdash 2 copy exch vpt sub exch vpt Square fill Bsquare } bind def +/S3 { BL [] 0 setdash 2 copy exch vpt sub exch vpt2 vpt Rec fill Bsquare } bind def +/S4 { BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt Square fill Bsquare } bind def +/S5 { BL [] 0 setdash 2 copy 2 copy vpt Square fill + exch vpt sub exch vpt sub vpt Square fill Bsquare } bind def +/S6 { BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt vpt2 Rec fill Bsquare } bind def +/S7 { BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt vpt2 Rec fill + 2 copy vpt Square fill + Bsquare } bind def +/S8 { BL [] 0 setdash 2 copy vpt sub vpt Square fill Bsquare } bind def +/S9 { BL [] 0 setdash 2 copy vpt sub vpt vpt2 Rec fill Bsquare } bind def +/S10 { BL [] 0 setdash 2 copy vpt sub vpt Square fill 2 copy exch vpt sub exch vpt Square fill + Bsquare } bind def +/S11 { BL [] 0 setdash 2 copy vpt sub vpt Square fill 2 copy exch vpt sub exch vpt2 vpt Rec fill + Bsquare } bind def +/S12 { BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt2 vpt Rec fill Bsquare } bind def +/S13 { BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt2 vpt Rec fill + 2 copy vpt Square fill Bsquare } bind def +/S14 { BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt2 vpt Rec fill + 2 copy exch vpt sub exch vpt Square fill Bsquare } bind def +/S15 { BL [] 0 setdash 2 copy Bsquare fill Bsquare } bind def +/D0 { gsave translate 45 rotate 0 0 S0 stroke grestore } bind def +/D1 { gsave translate 45 rotate 0 0 S1 stroke grestore } bind def +/D2 { gsave translate 45 rotate 0 0 S2 stroke grestore } bind def +/D3 { gsave translate 45 rotate 0 0 S3 stroke grestore } bind def +/D4 { gsave translate 45 rotate 0 0 S4 stroke grestore } bind def +/D5 { gsave translate 45 rotate 0 0 S5 stroke grestore } bind def +/D6 { gsave translate 45 rotate 0 0 S6 stroke grestore } bind def +/D7 { gsave translate 45 rotate 0 0 S7 stroke grestore } bind def +/D8 { gsave translate 45 rotate 0 0 S8 stroke grestore } bind def +/D9 { gsave translate 45 rotate 0 0 S9 stroke grestore } bind def +/D10 { gsave translate 45 rotate 0 0 S10 stroke grestore } bind def +/D11 { gsave translate 45 rotate 0 0 S11 stroke grestore } bind def +/D12 { gsave translate 45 rotate 0 0 S12 stroke grestore } bind def +/D13 { gsave translate 45 rotate 0 0 S13 stroke grestore } bind def +/D14 { gsave translate 45 rotate 0 0 S14 stroke grestore } bind def +/D15 { gsave translate 45 rotate 0 0 S15 stroke grestore } bind def +/DiaE { stroke [] 0 setdash vpt add M + hpt neg vpt neg V hpt vpt neg V + hpt vpt V hpt neg vpt V closepath stroke } def +/BoxE { stroke [] 0 setdash exch hpt sub exch vpt add M + 0 vpt2 neg V hpt2 0 V 0 vpt2 V + hpt2 neg 0 V closepath stroke } def +/TriUE { stroke [] 0 setdash vpt 1.12 mul add M + hpt neg vpt -1.62 mul V + hpt 2 mul 0 V + hpt neg vpt 1.62 mul V closepath stroke } def +/TriDE { stroke [] 0 setdash vpt 1.12 mul sub M + hpt neg vpt 1.62 mul V + hpt 2 mul 0 V + hpt neg vpt -1.62 mul V closepath stroke } def +/PentE { stroke [] 0 setdash gsave + translate 0 hpt M 4 {72 rotate 0 hpt L} repeat + closepath stroke grestore } def +/CircE { stroke [] 0 setdash + hpt 0 360 arc stroke } def +/BoxFill { gsave Rec 1 setgray fill grestore } def +end +gnudict begin +gsave +50 50 translate +0.050 0.050 scale +0 setgray +newpath +(Helvetica) findfont 140 scalefont setfont +LTb +672 560 M +63 0 V +4067 0 R +-63 0 V +588 560 M +(-2) Rshow +672 1076 M +63 0 V +4067 0 R +-63 0 V +-4151 0 R +(-1.5) Rshow +672 1593 M +63 0 V +4067 0 R +-63 0 V +-4151 0 R +(-1) Rshow +672 2109 M +63 0 V +4067 0 R +-63 0 V +-4151 0 R +(-0.5) Rshow +672 2625 M +63 0 V +4067 0 R +-63 0 V +-4151 0 R +(0) Rshow +672 3141 M +63 0 V +4067 0 R +-63 0 V +-4151 0 R +(0.5) Rshow +672 3658 M +63 0 V +4067 0 R +-63 0 V +-4151 0 R +(1) Rshow +672 4174 M +63 0 V +4067 0 R +-63 0 V +-4151 0 R +(1.5) Rshow +672 4690 M +63 0 V +4067 0 R +-63 0 V +-4151 0 R +(2) Rshow +672 560 M +0 63 V +0 4067 R +0 -63 V +672 420 M +(-2) Cshow +1188 560 M +0 63 V +0 4067 R +0 -63 V +0 -4207 R +(-1.5) Cshow +1705 560 M +0 63 V +0 4067 R +0 -63 V +0 -4207 R +(-1) Cshow +2221 560 M +0 63 V +0 4067 R +0 -63 V +0 -4207 R +(-0.5) Cshow +2737 560 M +0 63 V +0 4067 R +0 -63 V +0 -4207 R +(0) Cshow +3253 560 M +0 63 V +0 4067 R +0 -63 V +0 -4207 R +(0.5) Cshow +3770 560 M +0 63 V +0 4067 R +0 -63 V +0 -4207 R +(1) Cshow +4286 560 M +0 63 V +0 4067 R +0 -63 V +0 -4207 R +(1.5) Cshow +4802 560 M +0 63 V +0 4067 R +0 -63 V +0 -4207 R +(2) Cshow +LTb +672 560 M +4130 0 V +0 4130 V +-4130 0 V +672 560 L +2737 210 M +(rotate about eigenaxis 20.61 deg) Cshow +2737 4900 M +(yaw=20.00 deg, pitch= 5.00 deg) Cshow +1.000 UP +1.000 UL +LT0 +4151 4557 M +(x \(body\)) Rshow +4235 4557 M +399 0 V +3173 2527 M +-436 98 V +3173 2527 Pls +2737 2625 Pls +4434 4557 Pls +1.000 UP +1.000 UL +LT1 +4151 4417 M +(y \(body\)) Rshow +4235 4417 M +399 0 V +2737 2625 M +844 485 V +2737 2625 Pls +3581 3110 Pls +4434 4417 Pls +1.000 UP +1.000 UL +LT2 +4151 4277 M +(z \(body\)) Rshow +4235 4277 M +399 0 V +2737 2625 M +405 -906 V +2737 2625 Crs +3142 1719 Crs +4434 4277 Crs +1.000 UP +1.000 UL +LT0 +4151 4137 M +(x \(inertial\)) Rshow +4235 4137 M +399 0 V +3467 2625 M +-730 0 V +3467 2625 Star +2737 2625 Star +4434 4137 Star +1.000 UP +1.000 UL +LT1 +4151 3997 M +(y \(inertial\)) Rshow +4235 3997 M +399 0 V +2737 2625 M +632 516 V +2737 2625 Star +3369 3141 Star +4434 3997 Star +1.000 UP +1.000 UL +LT2 +4151 3857 M +(z \(inertial\)) Rshow +4235 3857 M +399 0 V +2737 2625 M +365 -894 V +2737 2625 Box +3102 1731 Box +4434 3857 Box +1.000 UL +LT5 +4151 3717 M +(eigenaxis) Rshow +4235 3717 M +399 0 V +2737 2625 M +-375 886 V +90 18 V +5 10 V +1 9 V +-3 7 V +-7 5 V +-11 3 V +-15 1 V +-17 -1 V +-18 -4 V +-20 -6 V +-20 -8 V +1.000 UL +LT3 +3200 1215 M +-1460 0 V +1010 3003 L +2274 4035 L +1460 0 V +4464 2247 L +3200 1215 L +4464 2247 L +-1460 0 V +2274 4035 L +3004 2247 L +1740 1215 L +1.000 UL +LT4 +3734 4035 M +2470 3003 L +-1460 0 V +1460 0 V +3200 1215 L +stroke +grestore +end +showpage + @endspecial 50 3833 a @beginspecial 50 @llx 50 @lly +410 @urx 302 @ury 2808 @rwi @setspecial +/gnudict 120 dict def +gnudict begin +/Color false def +/Solid false def +/gnulinewidth 5.000 def +/userlinewidth gnulinewidth def +/vshift -46 def +/dl {10 mul} def +/hpt_ 31.5 def +/vpt_ 31.5 def +/hpt hpt_ def +/vpt vpt_ def +/M {moveto} bind def +/L {lineto} bind def +/R {rmoveto} bind def +/V {rlineto} bind def +/vpt2 vpt 2 mul def +/hpt2 hpt 2 mul def +/Lshow { currentpoint stroke M + 0 vshift R show } def +/Rshow { currentpoint stroke M + dup stringwidth pop neg vshift R show } def +/Cshow { currentpoint stroke M + dup stringwidth pop -2 div vshift R show } def +/UP { dup vpt_ mul /vpt exch def hpt_ mul /hpt exch def + /hpt2 hpt 2 mul def /vpt2 vpt 2 mul def } def +/DL { Color {setrgbcolor Solid {pop []} if 0 setdash } + {pop pop pop Solid {pop []} if 0 setdash} ifelse } def +/BL { stroke gnulinewidth 2 mul setlinewidth } def +/AL { stroke gnulinewidth 2 div setlinewidth } def +/UL { gnulinewidth mul /userlinewidth exch def } def +/PL { stroke userlinewidth setlinewidth } def +/LTb { BL [] 0 0 0 DL } def +/LTa { AL [1 dl 2 dl] 0 setdash 0 0 0 setrgbcolor } def +/LT0 { PL [] 0 1 0 DL } def +/LT1 { PL [4 dl 2 dl] 0 0 1 DL } def +/LT2 { PL [2 dl 3 dl] 1 0 0 DL } def +/LT3 { PL [1 dl 1.5 dl] 1 0 1 DL } def +/LT4 { PL [5 dl 2 dl 1 dl 2 dl] 0 1 1 DL } def +/LT5 { PL [4 dl 3 dl 1 dl 3 dl] 1 1 0 DL } def +/LT6 { PL [2 dl 2 dl 2 dl 4 dl] 0 0 0 DL } def +/LT7 { PL [2 dl 2 dl 2 dl 2 dl 2 dl 4 dl] 1 0.3 0 DL } def +/LT8 { PL [2 dl 2 dl 2 dl 2 dl 2 dl 2 dl 2 dl 4 dl] 0.5 0.5 0.5 DL } def +/Pnt { stroke [] 0 setdash + gsave 1 setlinecap M 0 0 V stroke grestore } def +/Dia { stroke [] 0 setdash 2 copy vpt add M + hpt neg vpt neg V hpt vpt neg V + hpt vpt V hpt neg vpt V closepath stroke + Pnt } def +/Pls { stroke [] 0 setdash vpt sub M 0 vpt2 V + currentpoint stroke M + hpt neg vpt neg R hpt2 0 V stroke + } def +/Box { stroke [] 0 setdash 2 copy exch hpt sub exch vpt add M + 0 vpt2 neg V hpt2 0 V 0 vpt2 V + hpt2 neg 0 V closepath stroke + Pnt } def +/Crs { stroke [] 0 setdash exch hpt sub exch vpt add M + hpt2 vpt2 neg V currentpoint stroke M + hpt2 neg 0 R hpt2 vpt2 V stroke } def +/TriU { stroke [] 0 setdash 2 copy vpt 1.12 mul add M + hpt neg vpt -1.62 mul V + hpt 2 mul 0 V + hpt neg vpt 1.62 mul V closepath stroke + Pnt } def +/Star { 2 copy Pls Crs } def +/BoxF { stroke [] 0 setdash exch hpt sub exch vpt add M + 0 vpt2 neg V hpt2 0 V 0 vpt2 V + hpt2 neg 0 V closepath fill } def +/TriUF { stroke [] 0 setdash vpt 1.12 mul add M + hpt neg vpt -1.62 mul V + hpt 2 mul 0 V + hpt neg vpt 1.62 mul V closepath fill } def +/TriD { stroke [] 0 setdash 2 copy vpt 1.12 mul sub M + hpt neg vpt 1.62 mul V + hpt 2 mul 0 V + hpt neg vpt -1.62 mul V closepath stroke + Pnt } def +/TriDF { stroke [] 0 setdash vpt 1.12 mul sub M + hpt neg vpt 1.62 mul V + hpt 2 mul 0 V + hpt neg vpt -1.62 mul V closepath fill} def +/DiaF { stroke [] 0 setdash vpt add M + hpt neg vpt neg V hpt vpt neg V + hpt vpt V hpt neg vpt V closepath fill } def +/Pent { stroke [] 0 setdash 2 copy gsave + translate 0 hpt M 4 {72 rotate 0 hpt L} repeat + closepath stroke grestore Pnt } def +/PentF { stroke [] 0 setdash gsave + translate 0 hpt M 4 {72 rotate 0 hpt L} repeat + closepath fill grestore } def +/Circle { stroke [] 0 setdash 2 copy + hpt 0 360 arc stroke Pnt } def +/CircleF { stroke [] 0 setdash hpt 0 360 arc fill } def +/C0 { BL [] 0 setdash 2 copy moveto vpt 90 450 arc } bind def +/C1 { BL [] 0 setdash 2 copy moveto + 2 copy vpt 0 90 arc closepath fill + vpt 0 360 arc closepath } bind def +/C2 { BL [] 0 setdash 2 copy moveto + 2 copy vpt 90 180 arc closepath fill + vpt 0 360 arc closepath } bind def +/C3 { BL [] 0 setdash 2 copy moveto + 2 copy vpt 0 180 arc closepath fill + vpt 0 360 arc closepath } bind def +/C4 { BL [] 0 setdash 2 copy moveto + 2 copy vpt 180 270 arc closepath fill + vpt 0 360 arc closepath } bind def +/C5 { BL [] 0 setdash 2 copy moveto + 2 copy vpt 0 90 arc + 2 copy moveto + 2 copy vpt 180 270 arc closepath fill + vpt 0 360 arc } bind def +/C6 { BL [] 0 setdash 2 copy moveto + 2 copy vpt 90 270 arc closepath fill + vpt 0 360 arc closepath } bind def +/C7 { BL [] 0 setdash 2 copy moveto + 2 copy vpt 0 270 arc closepath fill + vpt 0 360 arc closepath } bind def +/C8 { BL [] 0 setdash 2 copy moveto + 2 copy vpt 270 360 arc closepath fill + vpt 0 360 arc closepath } bind def +/C9 { BL [] 0 setdash 2 copy moveto + 2 copy vpt 270 450 arc closepath fill + vpt 0 360 arc closepath } bind def +/C10 { BL [] 0 setdash 2 copy 2 copy moveto vpt 270 360 arc closepath fill + 2 copy moveto + 2 copy vpt 90 180 arc closepath fill + vpt 0 360 arc closepath } bind def +/C11 { BL [] 0 setdash 2 copy moveto + 2 copy vpt 0 180 arc closepath fill + 2 copy moveto + 2 copy vpt 270 360 arc closepath fill + vpt 0 360 arc closepath } bind def +/C12 { BL [] 0 setdash 2 copy moveto + 2 copy vpt 180 360 arc closepath fill + vpt 0 360 arc closepath } bind def +/C13 { BL [] 0 setdash 2 copy moveto + 2 copy vpt 0 90 arc closepath fill + 2 copy moveto + 2 copy vpt 180 360 arc closepath fill + vpt 0 360 arc closepath } bind def +/C14 { BL [] 0 setdash 2 copy moveto + 2 copy vpt 90 360 arc closepath fill + vpt 0 360 arc } bind def +/C15 { BL [] 0 setdash 2 copy vpt 0 360 arc closepath fill + vpt 0 360 arc closepath } bind def +/Rec { newpath 4 2 roll moveto 1 index 0 rlineto 0 exch rlineto + neg 0 rlineto closepath } bind def +/Square { dup Rec } bind def +/Bsquare { vpt sub exch vpt sub exch vpt2 Square } bind def +/S0 { BL [] 0 setdash 2 copy moveto 0 vpt rlineto BL Bsquare } bind def +/S1 { BL [] 0 setdash 2 copy vpt Square fill Bsquare } bind def +/S2 { BL [] 0 setdash 2 copy exch vpt sub exch vpt Square fill Bsquare } bind def +/S3 { BL [] 0 setdash 2 copy exch vpt sub exch vpt2 vpt Rec fill Bsquare } bind def +/S4 { BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt Square fill Bsquare } bind def +/S5 { BL [] 0 setdash 2 copy 2 copy vpt Square fill + exch vpt sub exch vpt sub vpt Square fill Bsquare } bind def +/S6 { BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt vpt2 Rec fill Bsquare } bind def +/S7 { BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt vpt2 Rec fill + 2 copy vpt Square fill + Bsquare } bind def +/S8 { BL [] 0 setdash 2 copy vpt sub vpt Square fill Bsquare } bind def +/S9 { BL [] 0 setdash 2 copy vpt sub vpt vpt2 Rec fill Bsquare } bind def +/S10 { BL [] 0 setdash 2 copy vpt sub vpt Square fill 2 copy exch vpt sub exch vpt Square fill + Bsquare } bind def +/S11 { BL [] 0 setdash 2 copy vpt sub vpt Square fill 2 copy exch vpt sub exch vpt2 vpt Rec fill + Bsquare } bind def +/S12 { BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt2 vpt Rec fill Bsquare } bind def +/S13 { BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt2 vpt Rec fill + 2 copy vpt Square fill Bsquare } bind def +/S14 { BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt2 vpt Rec fill + 2 copy exch vpt sub exch vpt Square fill Bsquare } bind def +/S15 { BL [] 0 setdash 2 copy Bsquare fill Bsquare } bind def +/D0 { gsave translate 45 rotate 0 0 S0 stroke grestore } bind def +/D1 { gsave translate 45 rotate 0 0 S1 stroke grestore } bind def +/D2 { gsave translate 45 rotate 0 0 S2 stroke grestore } bind def +/D3 { gsave translate 45 rotate 0 0 S3 stroke grestore } bind def +/D4 { gsave translate 45 rotate 0 0 S4 stroke grestore } bind def +/D5 { gsave translate 45 rotate 0 0 S5 stroke grestore } bind def +/D6 { gsave translate 45 rotate 0 0 S6 stroke grestore } bind def +/D7 { gsave translate 45 rotate 0 0 S7 stroke grestore } bind def +/D8 { gsave translate 45 rotate 0 0 S8 stroke grestore } bind def +/D9 { gsave translate 45 rotate 0 0 S9 stroke grestore } bind def +/D10 { gsave translate 45 rotate 0 0 S10 stroke grestore } bind def +/D11 { gsave translate 45 rotate 0 0 S11 stroke grestore } bind def +/D12 { gsave translate 45 rotate 0 0 S12 stroke grestore } bind def +/D13 { gsave translate 45 rotate 0 0 S13 stroke grestore } bind def +/D14 { gsave translate 45 rotate 0 0 S14 stroke grestore } bind def +/D15 { gsave translate 45 rotate 0 0 S15 stroke grestore } bind def +/DiaE { stroke [] 0 setdash vpt add M + hpt neg vpt neg V hpt vpt neg V + hpt vpt V hpt neg vpt V closepath stroke } def +/BoxE { stroke [] 0 setdash exch hpt sub exch vpt add M + 0 vpt2 neg V hpt2 0 V 0 vpt2 V + hpt2 neg 0 V closepath stroke } def +/TriUE { stroke [] 0 setdash vpt 1.12 mul add M + hpt neg vpt -1.62 mul V + hpt 2 mul 0 V + hpt neg vpt 1.62 mul V closepath stroke } def +/TriDE { stroke [] 0 setdash vpt 1.12 mul sub M + hpt neg vpt 1.62 mul V + hpt 2 mul 0 V + hpt neg vpt -1.62 mul V closepath stroke } def +/PentE { stroke [] 0 setdash gsave + translate 0 hpt M 4 {72 rotate 0 hpt L} repeat + closepath stroke grestore } def +/CircE { stroke [] 0 setdash + hpt 0 360 arc stroke } def +/BoxFill { gsave Rec 1 setgray fill grestore } def +end +gnudict begin +gsave +50 50 translate +0.050 0.050 scale +0 setgray +newpath +(Helvetica) findfont 140 scalefont setfont +LTb +672 560 M +63 0 V +4067 0 R +-63 0 V +588 560 M +(-2) Rshow +672 1076 M +63 0 V +4067 0 R +-63 0 V +-4151 0 R +(-1.5) Rshow +672 1593 M +63 0 V +4067 0 R +-63 0 V +-4151 0 R +(-1) Rshow +672 2109 M +63 0 V +4067 0 R +-63 0 V +-4151 0 R +(-0.5) Rshow +672 2625 M +63 0 V +4067 0 R +-63 0 V +-4151 0 R +(0) Rshow +672 3141 M +63 0 V +4067 0 R +-63 0 V +-4151 0 R +(0.5) Rshow +672 3658 M +63 0 V +4067 0 R +-63 0 V +-4151 0 R +(1) Rshow +672 4174 M +63 0 V +4067 0 R +-63 0 V +-4151 0 R +(1.5) Rshow +672 4690 M +63 0 V +4067 0 R +-63 0 V +-4151 0 R +(2) Rshow +672 560 M +0 63 V +0 4067 R +0 -63 V +672 420 M +(-2) Cshow +1188 560 M +0 63 V +0 4067 R +0 -63 V +0 -4207 R +(-1.5) Cshow +1705 560 M +0 63 V +0 4067 R +0 -63 V +0 -4207 R +(-1) Cshow +2221 560 M +0 63 V +0 4067 R +0 -63 V +0 -4207 R +(-0.5) Cshow +2737 560 M +0 63 V +0 4067 R +0 -63 V +0 -4207 R +(0) Cshow +3253 560 M +0 63 V +0 4067 R +0 -63 V +0 -4207 R +(0.5) Cshow +3770 560 M +0 63 V +0 4067 R +0 -63 V +0 -4207 R +(1) Cshow +4286 560 M +0 63 V +0 4067 R +0 -63 V +0 -4207 R +(1.5) Cshow +4802 560 M +0 63 V +0 4067 R +0 -63 V +0 -4207 R +(2) Cshow +LTb +672 560 M +4130 0 V +0 4130 V +-4130 0 V +672 560 L +2737 210 M +(rotate about eigenaxis 22.34 deg) Cshow +2737 4900 M +(yaw=20.00 deg, pitch=10.00 deg) Cshow +1.000 UP +1.000 UL +LT0 +4151 4557 M +(x \(body\)) Rshow +4235 4557 M +399 0 V +3136 2606 M +-399 19 V +3136 2606 Pls +2737 2625 Pls +4434 4557 Pls +1.000 UP +1.000 UL +LT1 +4151 4417 M +(y \(body\)) Rshow +4235 4417 M +399 0 V +2737 2625 M +844 485 V +2737 2625 Pls +3581 3110 Pls +4434 4417 Pls +1.000 UP +1.000 UL +LT2 +4151 4277 M +(z \(body\)) Rshow +4235 4277 M +399 0 V +2737 2625 M +441 -911 V +2737 2625 Crs +3178 1714 Crs +4434 4277 Crs +1.000 UP +1.000 UL +LT0 +4151 4137 M +(x \(inertial\)) Rshow +4235 4137 M +399 0 V +3467 2625 M +-730 0 V +3467 2625 Star +2737 2625 Star +4434 4137 Star +1.000 UP +1.000 UL +LT1 +4151 3997 M +(y \(inertial\)) Rshow +4235 3997 M +399 0 V +2737 2625 M +632 516 V +2737 2625 Star +3369 3141 Star +4434 3997 Star +1.000 UP +1.000 UL +LT2 +4151 3857 M +(z \(inertial\)) Rshow +4235 3857 M +399 0 V +2737 2625 M +365 -894 V +2737 2625 Box +3102 1731 Box +4434 3857 Box +1.000 UL +LT5 +4151 3717 M +(eigenaxis) Rshow +4235 3717 M +399 0 V +2737 2625 M +-384 878 V +89 18 V +6 11 V +0 9 V +-3 7 V +-7 5 V +-11 3 V +-15 1 V +-16 -1 V +-19 -4 V +-20 -6 V +-20 -8 V +1.000 UL +LT3 +3200 1215 M +-1460 0 V +1010 3003 L +2274 4035 L +1460 0 V +4464 2247 L +3200 1215 L +4464 2247 L +-1460 0 V +2274 4035 L +3004 2247 L +1740 1215 L +1.000 UL +LT4 +3734 4035 M +2470 3003 L +-1460 0 V +1460 0 V +3200 1215 L +stroke +grestore +end +showpage + @endspecial 2050 w @beginspecial 50 @llx 50 @lly 410 +@urx 302 @ury 2808 @rwi @setspecial +/gnudict 120 dict def +gnudict begin +/Color false def +/Solid false def +/gnulinewidth 5.000 def +/userlinewidth gnulinewidth def +/vshift -46 def +/dl {10 mul} def +/hpt_ 31.5 def +/vpt_ 31.5 def +/hpt hpt_ def +/vpt vpt_ def +/M {moveto} bind def +/L {lineto} bind def +/R {rmoveto} bind def +/V {rlineto} bind def +/vpt2 vpt 2 mul def +/hpt2 hpt 2 mul def +/Lshow { currentpoint stroke M + 0 vshift R show } def +/Rshow { currentpoint stroke M + dup stringwidth pop neg vshift R show } def +/Cshow { currentpoint stroke M + dup stringwidth pop -2 div vshift R show } def +/UP { dup vpt_ mul /vpt exch def hpt_ mul /hpt exch def + /hpt2 hpt 2 mul def /vpt2 vpt 2 mul def } def +/DL { Color {setrgbcolor Solid {pop []} if 0 setdash } + {pop pop pop Solid {pop []} if 0 setdash} ifelse } def +/BL { stroke gnulinewidth 2 mul setlinewidth } def +/AL { stroke gnulinewidth 2 div setlinewidth } def +/UL { gnulinewidth mul /userlinewidth exch def } def +/PL { stroke userlinewidth setlinewidth } def +/LTb { BL [] 0 0 0 DL } def +/LTa { AL [1 dl 2 dl] 0 setdash 0 0 0 setrgbcolor } def +/LT0 { PL [] 0 1 0 DL } def +/LT1 { PL [4 dl 2 dl] 0 0 1 DL } def +/LT2 { PL [2 dl 3 dl] 1 0 0 DL } def +/LT3 { PL [1 dl 1.5 dl] 1 0 1 DL } def +/LT4 { PL [5 dl 2 dl 1 dl 2 dl] 0 1 1 DL } def +/LT5 { PL [4 dl 3 dl 1 dl 3 dl] 1 1 0 DL } def +/LT6 { PL [2 dl 2 dl 2 dl 4 dl] 0 0 0 DL } def +/LT7 { PL [2 dl 2 dl 2 dl 2 dl 2 dl 4 dl] 1 0.3 0 DL } def +/LT8 { PL [2 dl 2 dl 2 dl 2 dl 2 dl 2 dl 2 dl 4 dl] 0.5 0.5 0.5 DL } def +/Pnt { stroke [] 0 setdash + gsave 1 setlinecap M 0 0 V stroke grestore } def +/Dia { stroke [] 0 setdash 2 copy vpt add M + hpt neg vpt neg V hpt vpt neg V + hpt vpt V hpt neg vpt V closepath stroke + Pnt } def +/Pls { stroke [] 0 setdash vpt sub M 0 vpt2 V + currentpoint stroke M + hpt neg vpt neg R hpt2 0 V stroke + } def +/Box { stroke [] 0 setdash 2 copy exch hpt sub exch vpt add M + 0 vpt2 neg V hpt2 0 V 0 vpt2 V + hpt2 neg 0 V closepath stroke + Pnt } def +/Crs { stroke [] 0 setdash exch hpt sub exch vpt add M + hpt2 vpt2 neg V currentpoint stroke M + hpt2 neg 0 R hpt2 vpt2 V stroke } def +/TriU { stroke [] 0 setdash 2 copy vpt 1.12 mul add M + hpt neg vpt -1.62 mul V + hpt 2 mul 0 V + hpt neg vpt 1.62 mul V closepath stroke + Pnt } def +/Star { 2 copy Pls Crs } def +/BoxF { stroke [] 0 setdash exch hpt sub exch vpt add M + 0 vpt2 neg V hpt2 0 V 0 vpt2 V + hpt2 neg 0 V closepath fill } def +/TriUF { stroke [] 0 setdash vpt 1.12 mul add M + hpt neg vpt -1.62 mul V + hpt 2 mul 0 V + hpt neg vpt 1.62 mul V closepath fill } def +/TriD { stroke [] 0 setdash 2 copy vpt 1.12 mul sub M + hpt neg vpt 1.62 mul V + hpt 2 mul 0 V + hpt neg vpt -1.62 mul V closepath stroke + Pnt } def +/TriDF { stroke [] 0 setdash vpt 1.12 mul sub M + hpt neg vpt 1.62 mul V + hpt 2 mul 0 V + hpt neg vpt -1.62 mul V closepath fill} def +/DiaF { stroke [] 0 setdash vpt add M + hpt neg vpt neg V hpt vpt neg V + hpt vpt V hpt neg vpt V closepath fill } def +/Pent { stroke [] 0 setdash 2 copy gsave + translate 0 hpt M 4 {72 rotate 0 hpt L} repeat + closepath stroke grestore Pnt } def +/PentF { stroke [] 0 setdash gsave + translate 0 hpt M 4 {72 rotate 0 hpt L} repeat + closepath fill grestore } def +/Circle { stroke [] 0 setdash 2 copy + hpt 0 360 arc stroke Pnt } def +/CircleF { stroke [] 0 setdash hpt 0 360 arc fill } def +/C0 { BL [] 0 setdash 2 copy moveto vpt 90 450 arc } bind def +/C1 { BL [] 0 setdash 2 copy moveto + 2 copy vpt 0 90 arc closepath fill + vpt 0 360 arc closepath } bind def +/C2 { BL [] 0 setdash 2 copy moveto + 2 copy vpt 90 180 arc closepath fill + vpt 0 360 arc closepath } bind def +/C3 { BL [] 0 setdash 2 copy moveto + 2 copy vpt 0 180 arc closepath fill + vpt 0 360 arc closepath } bind def +/C4 { BL [] 0 setdash 2 copy moveto + 2 copy vpt 180 270 arc closepath fill + vpt 0 360 arc closepath } bind def +/C5 { BL [] 0 setdash 2 copy moveto + 2 copy vpt 0 90 arc + 2 copy moveto + 2 copy vpt 180 270 arc closepath fill + vpt 0 360 arc } bind def +/C6 { BL [] 0 setdash 2 copy moveto + 2 copy vpt 90 270 arc closepath fill + vpt 0 360 arc closepath } bind def +/C7 { BL [] 0 setdash 2 copy moveto + 2 copy vpt 0 270 arc closepath fill + vpt 0 360 arc closepath } bind def +/C8 { BL [] 0 setdash 2 copy moveto + 2 copy vpt 270 360 arc closepath fill + vpt 0 360 arc closepath } bind def +/C9 { BL [] 0 setdash 2 copy moveto + 2 copy vpt 270 450 arc closepath fill + vpt 0 360 arc closepath } bind def +/C10 { BL [] 0 setdash 2 copy 2 copy moveto vpt 270 360 arc closepath fill + 2 copy moveto + 2 copy vpt 90 180 arc closepath fill + vpt 0 360 arc closepath } bind def +/C11 { BL [] 0 setdash 2 copy moveto + 2 copy vpt 0 180 arc closepath fill + 2 copy moveto + 2 copy vpt 270 360 arc closepath fill + vpt 0 360 arc closepath } bind def +/C12 { BL [] 0 setdash 2 copy moveto + 2 copy vpt 180 360 arc closepath fill + vpt 0 360 arc closepath } bind def +/C13 { BL [] 0 setdash 2 copy moveto + 2 copy vpt 0 90 arc closepath fill + 2 copy moveto + 2 copy vpt 180 360 arc closepath fill + vpt 0 360 arc closepath } bind def +/C14 { BL [] 0 setdash 2 copy moveto + 2 copy vpt 90 360 arc closepath fill + vpt 0 360 arc } bind def +/C15 { BL [] 0 setdash 2 copy vpt 0 360 arc closepath fill + vpt 0 360 arc closepath } bind def +/Rec { newpath 4 2 roll moveto 1 index 0 rlineto 0 exch rlineto + neg 0 rlineto closepath } bind def +/Square { dup Rec } bind def +/Bsquare { vpt sub exch vpt sub exch vpt2 Square } bind def +/S0 { BL [] 0 setdash 2 copy moveto 0 vpt rlineto BL Bsquare } bind def +/S1 { BL [] 0 setdash 2 copy vpt Square fill Bsquare } bind def +/S2 { BL [] 0 setdash 2 copy exch vpt sub exch vpt Square fill Bsquare } bind def +/S3 { BL [] 0 setdash 2 copy exch vpt sub exch vpt2 vpt Rec fill Bsquare } bind def +/S4 { BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt Square fill Bsquare } bind def +/S5 { BL [] 0 setdash 2 copy 2 copy vpt Square fill + exch vpt sub exch vpt sub vpt Square fill Bsquare } bind def +/S6 { BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt vpt2 Rec fill Bsquare } bind def +/S7 { BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt vpt2 Rec fill + 2 copy vpt Square fill + Bsquare } bind def +/S8 { BL [] 0 setdash 2 copy vpt sub vpt Square fill Bsquare } bind def +/S9 { BL [] 0 setdash 2 copy vpt sub vpt vpt2 Rec fill Bsquare } bind def +/S10 { BL [] 0 setdash 2 copy vpt sub vpt Square fill 2 copy exch vpt sub exch vpt Square fill + Bsquare } bind def +/S11 { BL [] 0 setdash 2 copy vpt sub vpt Square fill 2 copy exch vpt sub exch vpt2 vpt Rec fill + Bsquare } bind def +/S12 { BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt2 vpt Rec fill Bsquare } bind def +/S13 { BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt2 vpt Rec fill + 2 copy vpt Square fill Bsquare } bind def +/S14 { BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt2 vpt Rec fill + 2 copy exch vpt sub exch vpt Square fill Bsquare } bind def +/S15 { BL [] 0 setdash 2 copy Bsquare fill Bsquare } bind def +/D0 { gsave translate 45 rotate 0 0 S0 stroke grestore } bind def +/D1 { gsave translate 45 rotate 0 0 S1 stroke grestore } bind def +/D2 { gsave translate 45 rotate 0 0 S2 stroke grestore } bind def +/D3 { gsave translate 45 rotate 0 0 S3 stroke grestore } bind def +/D4 { gsave translate 45 rotate 0 0 S4 stroke grestore } bind def +/D5 { gsave translate 45 rotate 0 0 S5 stroke grestore } bind def +/D6 { gsave translate 45 rotate 0 0 S6 stroke grestore } bind def +/D7 { gsave translate 45 rotate 0 0 S7 stroke grestore } bind def +/D8 { gsave translate 45 rotate 0 0 S8 stroke grestore } bind def +/D9 { gsave translate 45 rotate 0 0 S9 stroke grestore } bind def +/D10 { gsave translate 45 rotate 0 0 S10 stroke grestore } bind def +/D11 { gsave translate 45 rotate 0 0 S11 stroke grestore } bind def +/D12 { gsave translate 45 rotate 0 0 S12 stroke grestore } bind def +/D13 { gsave translate 45 rotate 0 0 S13 stroke grestore } bind def +/D14 { gsave translate 45 rotate 0 0 S14 stroke grestore } bind def +/D15 { gsave translate 45 rotate 0 0 S15 stroke grestore } bind def +/DiaE { stroke [] 0 setdash vpt add M + hpt neg vpt neg V hpt vpt neg V + hpt vpt V hpt neg vpt V closepath stroke } def +/BoxE { stroke [] 0 setdash exch hpt sub exch vpt add M + 0 vpt2 neg V hpt2 0 V 0 vpt2 V + hpt2 neg 0 V closepath stroke } def +/TriUE { stroke [] 0 setdash vpt 1.12 mul add M + hpt neg vpt -1.62 mul V + hpt 2 mul 0 V + hpt neg vpt 1.62 mul V closepath stroke } def +/TriDE { stroke [] 0 setdash vpt 1.12 mul sub M + hpt neg vpt 1.62 mul V + hpt 2 mul 0 V + hpt neg vpt -1.62 mul V closepath stroke } def +/PentE { stroke [] 0 setdash gsave + translate 0 hpt M 4 {72 rotate 0 hpt L} repeat + closepath stroke grestore } def +/CircE { stroke [] 0 setdash + hpt 0 360 arc stroke } def +/BoxFill { gsave Rec 1 setgray fill grestore } def +end +gnudict begin +gsave +50 50 translate +0.050 0.050 scale +0 setgray +newpath +(Helvetica) findfont 140 scalefont setfont +LTb +672 560 M +63 0 V +4067 0 R +-63 0 V +588 560 M +(-2) Rshow +672 1076 M +63 0 V +4067 0 R +-63 0 V +-4151 0 R +(-1.5) Rshow +672 1593 M +63 0 V +4067 0 R +-63 0 V +-4151 0 R +(-1) Rshow +672 2109 M +63 0 V +4067 0 R +-63 0 V +-4151 0 R +(-0.5) Rshow +672 2625 M +63 0 V +4067 0 R +-63 0 V +-4151 0 R +(0) Rshow +672 3141 M +63 0 V +4067 0 R +-63 0 V +-4151 0 R +(0.5) Rshow +672 3658 M +63 0 V +4067 0 R +-63 0 V +-4151 0 R +(1) Rshow +672 4174 M +63 0 V +4067 0 R +-63 0 V +-4151 0 R +(1.5) Rshow +672 4690 M +63 0 V +4067 0 R +-63 0 V +-4151 0 R +(2) Rshow +672 560 M +0 63 V +0 4067 R +0 -63 V +672 420 M +(-2) Cshow +1188 560 M +0 63 V +0 4067 R +0 -63 V +0 -4207 R +(-1.5) Cshow +1705 560 M +0 63 V +0 4067 R +0 -63 V +0 -4207 R +(-1) Cshow +2221 560 M +0 63 V +0 4067 R +0 -63 V +0 -4207 R +(-0.5) Cshow +2737 560 M +0 63 V +0 4067 R +0 -63 V +0 -4207 R +(0) Cshow +3253 560 M +0 63 V +0 4067 R +0 -63 V +0 -4207 R +(0.5) Cshow +3770 560 M +0 63 V +0 4067 R +0 -63 V +0 -4207 R +(1) Cshow +4286 560 M +0 63 V +0 4067 R +0 -63 V +0 -4207 R +(1.5) Cshow +4802 560 M +0 63 V +0 4067 R +0 -63 V +0 -4207 R +(2) Cshow +LTb +672 560 M +4130 0 V +0 4130 V +-4130 0 V +672 560 L +2737 210 M +(rotate about eigenaxis 24.95 deg) Cshow +2737 4900 M +(yaw=20.00 deg, pitch=15.00 deg) Cshow +1.000 UP +1.000 UL +LT0 +4151 4557 M +(x \(body\)) Rshow +4235 4557 M +399 0 V +3096 2686 M +-359 -61 V +3096 2686 Pls +2737 2625 Pls +4434 4557 Pls +1.000 UP +1.000 UL +LT1 +4151 4417 M +(y \(body\)) Rshow +4235 4417 M +399 0 V +2737 2625 M +844 485 V +2737 2625 Pls +3581 3110 Pls +4434 4417 Pls +1.000 UP +1.000 UL +LT2 +4151 4277 M +(z \(body\)) Rshow +4235 4277 M +399 0 V +2737 2625 M +474 -909 V +2737 2625 Crs +3211 1716 Crs +4434 4277 Crs +1.000 UP +1.000 UL +LT0 +4151 4137 M +(x \(inertial\)) Rshow +4235 4137 M +399 0 V +3467 2625 M +-730 0 V +3467 2625 Star +2737 2625 Star +4434 4137 Star +1.000 UP +1.000 UL +LT1 +4151 3997 M +(y \(inertial\)) Rshow +4235 3997 M +399 0 V +2737 2625 M +632 516 V +2737 2625 Star +3369 3141 Star +4434 3997 Star +1.000 UP +1.000 UL +LT2 +4151 3857 M +(z \(inertial\)) Rshow +4235 3857 M +399 0 V +2737 2625 M +365 -894 V +2737 2625 Box +3102 1731 Box +4434 3857 Box +1.000 UL +LT5 +4151 3717 M +(eigenaxis) Rshow +4235 3717 M +399 0 V +2737 2625 M +-394 870 V +90 18 V +5 11 V +1 9 V +-4 8 V +-7 5 V +-11 3 V +-14 1 V +-17 -1 V +-19 -4 V +-20 -6 V +-19 -8 V +1.000 UL +LT3 +3200 1215 M +-1460 0 V +1010 3003 L +2274 4035 L +1460 0 V +4464 2247 L +3200 1215 L +4464 2247 L +-1460 0 V +2274 4035 L +3004 2247 L +1740 1215 L +1.000 UL +LT4 +3734 4035 M +2470 3003 L +-1460 0 V +1460 0 V +3200 1215 L +stroke +grestore +end +showpage + @endspecial eop +12 11 bop 0 100 a Fn(A.)31 b(S.)f(Ho)s(del:)40 b(Quaternions)29 +b(\(In)m(tro)s(duction\))g Fo(R)q(ev)s(ision)d Fq(:)f(1)p +Fo(:)p Fq(1)421 b Fn(\(c\))31 b(1998)871 b Fq(12)50 2045 +y @beginspecial 50 @llx 50 @lly 410 @urx 302 @ury 2808 +@rwi @setspecial +/gnudict 120 dict def +gnudict begin +/Color false def +/Solid false def +/gnulinewidth 5.000 def +/userlinewidth gnulinewidth def +/vshift -46 def +/dl {10 mul} def +/hpt_ 31.5 def +/vpt_ 31.5 def +/hpt hpt_ def +/vpt vpt_ def +/M {moveto} bind def +/L {lineto} bind def +/R {rmoveto} bind def +/V {rlineto} bind def +/vpt2 vpt 2 mul def +/hpt2 hpt 2 mul def +/Lshow { currentpoint stroke M + 0 vshift R show } def +/Rshow { currentpoint stroke M + dup stringwidth pop neg vshift R show } def +/Cshow { currentpoint stroke M + dup stringwidth pop -2 div vshift R show } def +/UP { dup vpt_ mul /vpt exch def hpt_ mul /hpt exch def + /hpt2 hpt 2 mul def /vpt2 vpt 2 mul def } def +/DL { Color {setrgbcolor Solid {pop []} if 0 setdash } + {pop pop pop Solid {pop []} if 0 setdash} ifelse } def +/BL { stroke gnulinewidth 2 mul setlinewidth } def +/AL { stroke gnulinewidth 2 div setlinewidth } def +/UL { gnulinewidth mul /userlinewidth exch def } def +/PL { stroke userlinewidth setlinewidth } def +/LTb { BL [] 0 0 0 DL } def +/LTa { AL [1 dl 2 dl] 0 setdash 0 0 0 setrgbcolor } def +/LT0 { PL [] 0 1 0 DL } def +/LT1 { PL [4 dl 2 dl] 0 0 1 DL } def +/LT2 { PL [2 dl 3 dl] 1 0 0 DL } def +/LT3 { PL [1 dl 1.5 dl] 1 0 1 DL } def +/LT4 { PL [5 dl 2 dl 1 dl 2 dl] 0 1 1 DL } def +/LT5 { PL [4 dl 3 dl 1 dl 3 dl] 1 1 0 DL } def +/LT6 { PL [2 dl 2 dl 2 dl 4 dl] 0 0 0 DL } def +/LT7 { PL [2 dl 2 dl 2 dl 2 dl 2 dl 4 dl] 1 0.3 0 DL } def +/LT8 { PL [2 dl 2 dl 2 dl 2 dl 2 dl 2 dl 2 dl 4 dl] 0.5 0.5 0.5 DL } def +/Pnt { stroke [] 0 setdash + gsave 1 setlinecap M 0 0 V stroke grestore } def +/Dia { stroke [] 0 setdash 2 copy vpt add M + hpt neg vpt neg V hpt vpt neg V + hpt vpt V hpt neg vpt V closepath stroke + Pnt } def +/Pls { stroke [] 0 setdash vpt sub M 0 vpt2 V + currentpoint stroke M + hpt neg vpt neg R hpt2 0 V stroke + } def +/Box { stroke [] 0 setdash 2 copy exch hpt sub exch vpt add M + 0 vpt2 neg V hpt2 0 V 0 vpt2 V + hpt2 neg 0 V closepath stroke + Pnt } def +/Crs { stroke [] 0 setdash exch hpt sub exch vpt add M + hpt2 vpt2 neg V currentpoint stroke M + hpt2 neg 0 R hpt2 vpt2 V stroke } def +/TriU { stroke [] 0 setdash 2 copy vpt 1.12 mul add M + hpt neg vpt -1.62 mul V + hpt 2 mul 0 V + hpt neg vpt 1.62 mul V closepath stroke + Pnt } def +/Star { 2 copy Pls Crs } def +/BoxF { stroke [] 0 setdash exch hpt sub exch vpt add M + 0 vpt2 neg V hpt2 0 V 0 vpt2 V + hpt2 neg 0 V closepath fill } def +/TriUF { stroke [] 0 setdash vpt 1.12 mul add M + hpt neg vpt -1.62 mul V + hpt 2 mul 0 V + hpt neg vpt 1.62 mul V closepath fill } def +/TriD { stroke [] 0 setdash 2 copy vpt 1.12 mul sub M + hpt neg vpt 1.62 mul V + hpt 2 mul 0 V + hpt neg vpt -1.62 mul V closepath stroke + Pnt } def +/TriDF { stroke [] 0 setdash vpt 1.12 mul sub M + hpt neg vpt 1.62 mul V + hpt 2 mul 0 V + hpt neg vpt -1.62 mul V closepath fill} def +/DiaF { stroke [] 0 setdash vpt add M + hpt neg vpt neg V hpt vpt neg V + hpt vpt V hpt neg vpt V closepath fill } def +/Pent { stroke [] 0 setdash 2 copy gsave + translate 0 hpt M 4 {72 rotate 0 hpt L} repeat + closepath stroke grestore Pnt } def +/PentF { stroke [] 0 setdash gsave + translate 0 hpt M 4 {72 rotate 0 hpt L} repeat + closepath fill grestore } def +/Circle { stroke [] 0 setdash 2 copy + hpt 0 360 arc stroke Pnt } def +/CircleF { stroke [] 0 setdash hpt 0 360 arc fill } def +/C0 { BL [] 0 setdash 2 copy moveto vpt 90 450 arc } bind def +/C1 { BL [] 0 setdash 2 copy moveto + 2 copy vpt 0 90 arc closepath fill + vpt 0 360 arc closepath } bind def +/C2 { BL [] 0 setdash 2 copy moveto + 2 copy vpt 90 180 arc closepath fill + vpt 0 360 arc closepath } bind def +/C3 { BL [] 0 setdash 2 copy moveto + 2 copy vpt 0 180 arc closepath fill + vpt 0 360 arc closepath } bind def +/C4 { BL [] 0 setdash 2 copy moveto + 2 copy vpt 180 270 arc closepath fill + vpt 0 360 arc closepath } bind def +/C5 { BL [] 0 setdash 2 copy moveto + 2 copy vpt 0 90 arc + 2 copy moveto + 2 copy vpt 180 270 arc closepath fill + vpt 0 360 arc } bind def +/C6 { BL [] 0 setdash 2 copy moveto + 2 copy vpt 90 270 arc closepath fill + vpt 0 360 arc closepath } bind def +/C7 { BL [] 0 setdash 2 copy moveto + 2 copy vpt 0 270 arc closepath fill + vpt 0 360 arc closepath } bind def +/C8 { BL [] 0 setdash 2 copy moveto + 2 copy vpt 270 360 arc closepath fill + vpt 0 360 arc closepath } bind def +/C9 { BL [] 0 setdash 2 copy moveto + 2 copy vpt 270 450 arc closepath fill + vpt 0 360 arc closepath } bind def +/C10 { BL [] 0 setdash 2 copy 2 copy moveto vpt 270 360 arc closepath fill + 2 copy moveto + 2 copy vpt 90 180 arc closepath fill + vpt 0 360 arc closepath } bind def +/C11 { BL [] 0 setdash 2 copy moveto + 2 copy vpt 0 180 arc closepath fill + 2 copy moveto + 2 copy vpt 270 360 arc closepath fill + vpt 0 360 arc closepath } bind def +/C12 { BL [] 0 setdash 2 copy moveto + 2 copy vpt 180 360 arc closepath fill + vpt 0 360 arc closepath } bind def +/C13 { BL [] 0 setdash 2 copy moveto + 2 copy vpt 0 90 arc closepath fill + 2 copy moveto + 2 copy vpt 180 360 arc closepath fill + vpt 0 360 arc closepath } bind def +/C14 { BL [] 0 setdash 2 copy moveto + 2 copy vpt 90 360 arc closepath fill + vpt 0 360 arc } bind def +/C15 { BL [] 0 setdash 2 copy vpt 0 360 arc closepath fill + vpt 0 360 arc closepath } bind def +/Rec { newpath 4 2 roll moveto 1 index 0 rlineto 0 exch rlineto + neg 0 rlineto closepath } bind def +/Square { dup Rec } bind def +/Bsquare { vpt sub exch vpt sub exch vpt2 Square } bind def +/S0 { BL [] 0 setdash 2 copy moveto 0 vpt rlineto BL Bsquare } bind def +/S1 { BL [] 0 setdash 2 copy vpt Square fill Bsquare } bind def +/S2 { BL [] 0 setdash 2 copy exch vpt sub exch vpt Square fill Bsquare } bind def +/S3 { BL [] 0 setdash 2 copy exch vpt sub exch vpt2 vpt Rec fill Bsquare } bind def +/S4 { BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt Square fill Bsquare } bind def +/S5 { BL [] 0 setdash 2 copy 2 copy vpt Square fill + exch vpt sub exch vpt sub vpt Square fill Bsquare } bind def +/S6 { BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt vpt2 Rec fill Bsquare } bind def +/S7 { BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt vpt2 Rec fill + 2 copy vpt Square fill + Bsquare } bind def +/S8 { BL [] 0 setdash 2 copy vpt sub vpt Square fill Bsquare } bind def +/S9 { BL [] 0 setdash 2 copy vpt sub vpt vpt2 Rec fill Bsquare } bind def +/S10 { BL [] 0 setdash 2 copy vpt sub vpt Square fill 2 copy exch vpt sub exch vpt Square fill + Bsquare } bind def +/S11 { BL [] 0 setdash 2 copy vpt sub vpt Square fill 2 copy exch vpt sub exch vpt2 vpt Rec fill + Bsquare } bind def +/S12 { BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt2 vpt Rec fill Bsquare } bind def +/S13 { BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt2 vpt Rec fill + 2 copy vpt Square fill Bsquare } bind def +/S14 { BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt2 vpt Rec fill + 2 copy exch vpt sub exch vpt Square fill Bsquare } bind def +/S15 { BL [] 0 setdash 2 copy Bsquare fill Bsquare } bind def +/D0 { gsave translate 45 rotate 0 0 S0 stroke grestore } bind def +/D1 { gsave translate 45 rotate 0 0 S1 stroke grestore } bind def +/D2 { gsave translate 45 rotate 0 0 S2 stroke grestore } bind def +/D3 { gsave translate 45 rotate 0 0 S3 stroke grestore } bind def +/D4 { gsave translate 45 rotate 0 0 S4 stroke grestore } bind def +/D5 { gsave translate 45 rotate 0 0 S5 stroke grestore } bind def +/D6 { gsave translate 45 rotate 0 0 S6 stroke grestore } bind def +/D7 { gsave translate 45 rotate 0 0 S7 stroke grestore } bind def +/D8 { gsave translate 45 rotate 0 0 S8 stroke grestore } bind def +/D9 { gsave translate 45 rotate 0 0 S9 stroke grestore } bind def +/D10 { gsave translate 45 rotate 0 0 S10 stroke grestore } bind def +/D11 { gsave translate 45 rotate 0 0 S11 stroke grestore } bind def +/D12 { gsave translate 45 rotate 0 0 S12 stroke grestore } bind def +/D13 { gsave translate 45 rotate 0 0 S13 stroke grestore } bind def +/D14 { gsave translate 45 rotate 0 0 S14 stroke grestore } bind def +/D15 { gsave translate 45 rotate 0 0 S15 stroke grestore } bind def +/DiaE { stroke [] 0 setdash vpt add M + hpt neg vpt neg V hpt vpt neg V + hpt vpt V hpt neg vpt V closepath stroke } def +/BoxE { stroke [] 0 setdash exch hpt sub exch vpt add M + 0 vpt2 neg V hpt2 0 V 0 vpt2 V + hpt2 neg 0 V closepath stroke } def +/TriUE { stroke [] 0 setdash vpt 1.12 mul add M + hpt neg vpt -1.62 mul V + hpt 2 mul 0 V + hpt neg vpt 1.62 mul V closepath stroke } def +/TriDE { stroke [] 0 setdash vpt 1.12 mul sub M + hpt neg vpt 1.62 mul V + hpt 2 mul 0 V + hpt neg vpt -1.62 mul V closepath stroke } def +/PentE { stroke [] 0 setdash gsave + translate 0 hpt M 4 {72 rotate 0 hpt L} repeat + closepath stroke grestore } def +/CircE { stroke [] 0 setdash + hpt 0 360 arc stroke } def +/BoxFill { gsave Rec 1 setgray fill grestore } def +end +gnudict begin +gsave +50 50 translate +0.050 0.050 scale +0 setgray +newpath +(Helvetica) findfont 140 scalefont setfont +LTb +672 560 M +63 0 V +4067 0 R +-63 0 V +588 560 M +(-2) Rshow +672 1076 M +63 0 V +4067 0 R +-63 0 V +-4151 0 R +(-1.5) Rshow +672 1593 M +63 0 V +4067 0 R +-63 0 V +-4151 0 R +(-1) Rshow +672 2109 M +63 0 V +4067 0 R +-63 0 V +-4151 0 R +(-0.5) Rshow +672 2625 M +63 0 V +4067 0 R +-63 0 V +-4151 0 R +(0) Rshow +672 3141 M +63 0 V +4067 0 R +-63 0 V +-4151 0 R +(0.5) Rshow +672 3658 M +63 0 V +4067 0 R +-63 0 V +-4151 0 R +(1) Rshow +672 4174 M +63 0 V +4067 0 R +-63 0 V +-4151 0 R +(1.5) Rshow +672 4690 M +63 0 V +4067 0 R +-63 0 V +-4151 0 R +(2) Rshow +672 560 M +0 63 V +0 4067 R +0 -63 V +672 420 M +(-2) Cshow +1188 560 M +0 63 V +0 4067 R +0 -63 V +0 -4207 R +(-1.5) Cshow +1705 560 M +0 63 V +0 4067 R +0 -63 V +0 -4207 R +(-1) Cshow +2221 560 M +0 63 V +0 4067 R +0 -63 V +0 -4207 R +(-0.5) Cshow +2737 560 M +0 63 V +0 4067 R +0 -63 V +0 -4207 R +(0) Cshow +3253 560 M +0 63 V +0 4067 R +0 -63 V +0 -4207 R +(0.5) Cshow +3770 560 M +0 63 V +0 4067 R +0 -63 V +0 -4207 R +(1) Cshow +4286 560 M +0 63 V +0 4067 R +0 -63 V +0 -4207 R +(1.5) Cshow +4802 560 M +0 63 V +0 4067 R +0 -63 V +0 -4207 R +(2) Cshow +LTb +672 560 M +4130 0 V +0 4130 V +-4130 0 V +672 560 L +2737 210 M +(rotate about eigenaxis 28.21 deg) Cshow +2737 4900 M +(yaw=20.00 deg, pitch=20.00 deg) Cshow +1.000 UP +1.000 UL +LT0 +4151 4557 M +(x \(body\)) Rshow +4235 4557 M +399 0 V +3054 2765 M +2737 2625 L +3054 2765 Pls +2737 2625 Pls +4434 4557 Pls +1.000 UP +1.000 UL +LT1 +4151 4417 M +(y \(body\)) Rshow +4235 4417 M +399 0 V +2737 2625 M +844 485 V +2737 2625 Pls +3581 3110 Pls +4434 4417 Pls +1.000 UP +1.000 UL +LT2 +4151 4277 M +(z \(body\)) Rshow +4235 4277 M +399 0 V +2737 2625 M +504 -901 V +2737 2625 Crs +3241 1724 Crs +4434 4277 Crs +1.000 UP +1.000 UL +LT0 +4151 4137 M +(x \(inertial\)) Rshow +4235 4137 M +399 0 V +3467 2625 M +-730 0 V +3467 2625 Star +2737 2625 Star +4434 4137 Star +1.000 UP +1.000 UL +LT1 +4151 3997 M +(y \(inertial\)) Rshow +4235 3997 M +399 0 V +2737 2625 M +632 516 V +2737 2625 Star +3369 3141 Star +4434 3997 Star +1.000 UP +1.000 UL +LT2 +4151 3857 M +(z \(inertial\)) Rshow +4235 3857 M +399 0 V +2737 2625 M +365 -894 V +2737 2625 Box +3102 1731 Box +4434 3857 Box +1.000 UL +LT5 +4151 3717 M +(eigenaxis) Rshow +4235 3717 M +399 0 V +2737 2625 M +-403 861 V +89 19 V +5 11 V +1 10 V +-3 7 V +-7 6 V +-11 3 V +-15 1 V +-16 -1 V +-19 -4 V +-20 -6 V +-19 -9 V +1.000 UL +LT3 +3200 1215 M +-1460 0 V +1010 3003 L +2274 4035 L +1460 0 V +4464 2247 L +3200 1215 L +4464 2247 L +-1460 0 V +2274 4035 L +3004 2247 L +1740 1215 L +1.000 UL +LT4 +3734 4035 M +2470 3003 L +-1460 0 V +1460 0 V +3200 1215 L +stroke +grestore +end +showpage + @endspecial 2050 w @beginspecial 50 @llx 50 @lly 410 +@urx 302 @ury 2808 @rwi @setspecial +/gnudict 120 dict def +gnudict begin +/Color false def +/Solid false def +/gnulinewidth 5.000 def +/userlinewidth gnulinewidth def +/vshift -46 def +/dl {10 mul} def +/hpt_ 31.5 def +/vpt_ 31.5 def +/hpt hpt_ def +/vpt vpt_ def +/M {moveto} bind def +/L {lineto} bind def +/R {rmoveto} bind def +/V {rlineto} bind def +/vpt2 vpt 2 mul def +/hpt2 hpt 2 mul def +/Lshow { currentpoint stroke M + 0 vshift R show } def +/Rshow { currentpoint stroke M + dup stringwidth pop neg vshift R show } def +/Cshow { currentpoint stroke M + dup stringwidth pop -2 div vshift R show } def +/UP { dup vpt_ mul /vpt exch def hpt_ mul /hpt exch def + /hpt2 hpt 2 mul def /vpt2 vpt 2 mul def } def +/DL { Color {setrgbcolor Solid {pop []} if 0 setdash } + {pop pop pop Solid {pop []} if 0 setdash} ifelse } def +/BL { stroke gnulinewidth 2 mul setlinewidth } def +/AL { stroke gnulinewidth 2 div setlinewidth } def +/UL { gnulinewidth mul /userlinewidth exch def } def +/PL { stroke userlinewidth setlinewidth } def +/LTb { BL [] 0 0 0 DL } def +/LTa { AL [1 dl 2 dl] 0 setdash 0 0 0 setrgbcolor } def +/LT0 { PL [] 0 1 0 DL } def +/LT1 { PL [4 dl 2 dl] 0 0 1 DL } def +/LT2 { PL [2 dl 3 dl] 1 0 0 DL } def +/LT3 { PL [1 dl 1.5 dl] 1 0 1 DL } def +/LT4 { PL [5 dl 2 dl 1 dl 2 dl] 0 1 1 DL } def +/LT5 { PL [4 dl 3 dl 1 dl 3 dl] 1 1 0 DL } def +/LT6 { PL [2 dl 2 dl 2 dl 4 dl] 0 0 0 DL } def +/LT7 { PL [2 dl 2 dl 2 dl 2 dl 2 dl 4 dl] 1 0.3 0 DL } def +/LT8 { PL [2 dl 2 dl 2 dl 2 dl 2 dl 2 dl 2 dl 4 dl] 0.5 0.5 0.5 DL } def +/Pnt { stroke [] 0 setdash + gsave 1 setlinecap M 0 0 V stroke grestore } def +/Dia { stroke [] 0 setdash 2 copy vpt add M + hpt neg vpt neg V hpt vpt neg V + hpt vpt V hpt neg vpt V closepath stroke + Pnt } def +/Pls { stroke [] 0 setdash vpt sub M 0 vpt2 V + currentpoint stroke M + hpt neg vpt neg R hpt2 0 V stroke + } def +/Box { stroke [] 0 setdash 2 copy exch hpt sub exch vpt add M + 0 vpt2 neg V hpt2 0 V 0 vpt2 V + hpt2 neg 0 V closepath stroke + Pnt } def +/Crs { stroke [] 0 setdash exch hpt sub exch vpt add M + hpt2 vpt2 neg V currentpoint stroke M + hpt2 neg 0 R hpt2 vpt2 V stroke } def +/TriU { stroke [] 0 setdash 2 copy vpt 1.12 mul add M + hpt neg vpt -1.62 mul V + hpt 2 mul 0 V + hpt neg vpt 1.62 mul V closepath stroke + Pnt } def +/Star { 2 copy Pls Crs } def +/BoxF { stroke [] 0 setdash exch hpt sub exch vpt add M + 0 vpt2 neg V hpt2 0 V 0 vpt2 V + hpt2 neg 0 V closepath fill } def +/TriUF { stroke [] 0 setdash vpt 1.12 mul add M + hpt neg vpt -1.62 mul V + hpt 2 mul 0 V + hpt neg vpt 1.62 mul V closepath fill } def +/TriD { stroke [] 0 setdash 2 copy vpt 1.12 mul sub M + hpt neg vpt 1.62 mul V + hpt 2 mul 0 V + hpt neg vpt -1.62 mul V closepath stroke + Pnt } def +/TriDF { stroke [] 0 setdash vpt 1.12 mul sub M + hpt neg vpt 1.62 mul V + hpt 2 mul 0 V + hpt neg vpt -1.62 mul V closepath fill} def +/DiaF { stroke [] 0 setdash vpt add M + hpt neg vpt neg V hpt vpt neg V + hpt vpt V hpt neg vpt V closepath fill } def +/Pent { stroke [] 0 setdash 2 copy gsave + translate 0 hpt M 4 {72 rotate 0 hpt L} repeat + closepath stroke grestore Pnt } def +/PentF { stroke [] 0 setdash gsave + translate 0 hpt M 4 {72 rotate 0 hpt L} repeat + closepath fill grestore } def +/Circle { stroke [] 0 setdash 2 copy + hpt 0 360 arc stroke Pnt } def +/CircleF { stroke [] 0 setdash hpt 0 360 arc fill } def +/C0 { BL [] 0 setdash 2 copy moveto vpt 90 450 arc } bind def +/C1 { BL [] 0 setdash 2 copy moveto + 2 copy vpt 0 90 arc closepath fill + vpt 0 360 arc closepath } bind def +/C2 { BL [] 0 setdash 2 copy moveto + 2 copy vpt 90 180 arc closepath fill + vpt 0 360 arc closepath } bind def +/C3 { BL [] 0 setdash 2 copy moveto + 2 copy vpt 0 180 arc closepath fill + vpt 0 360 arc closepath } bind def +/C4 { BL [] 0 setdash 2 copy moveto + 2 copy vpt 180 270 arc closepath fill + vpt 0 360 arc closepath } bind def +/C5 { BL [] 0 setdash 2 copy moveto + 2 copy vpt 0 90 arc + 2 copy moveto + 2 copy vpt 180 270 arc closepath fill + vpt 0 360 arc } bind def +/C6 { BL [] 0 setdash 2 copy moveto + 2 copy vpt 90 270 arc closepath fill + vpt 0 360 arc closepath } bind def +/C7 { BL [] 0 setdash 2 copy moveto + 2 copy vpt 0 270 arc closepath fill + vpt 0 360 arc closepath } bind def +/C8 { BL [] 0 setdash 2 copy moveto + 2 copy vpt 270 360 arc closepath fill + vpt 0 360 arc closepath } bind def +/C9 { BL [] 0 setdash 2 copy moveto + 2 copy vpt 270 450 arc closepath fill + vpt 0 360 arc closepath } bind def +/C10 { BL [] 0 setdash 2 copy 2 copy moveto vpt 270 360 arc closepath fill + 2 copy moveto + 2 copy vpt 90 180 arc closepath fill + vpt 0 360 arc closepath } bind def +/C11 { BL [] 0 setdash 2 copy moveto + 2 copy vpt 0 180 arc closepath fill + 2 copy moveto + 2 copy vpt 270 360 arc closepath fill + vpt 0 360 arc closepath } bind def +/C12 { BL [] 0 setdash 2 copy moveto + 2 copy vpt 180 360 arc closepath fill + vpt 0 360 arc closepath } bind def +/C13 { BL [] 0 setdash 2 copy moveto + 2 copy vpt 0 90 arc closepath fill + 2 copy moveto + 2 copy vpt 180 360 arc closepath fill + vpt 0 360 arc closepath } bind def +/C14 { BL [] 0 setdash 2 copy moveto + 2 copy vpt 90 360 arc closepath fill + vpt 0 360 arc } bind def +/C15 { BL [] 0 setdash 2 copy vpt 0 360 arc closepath fill + vpt 0 360 arc closepath } bind def +/Rec { newpath 4 2 roll moveto 1 index 0 rlineto 0 exch rlineto + neg 0 rlineto closepath } bind def +/Square { dup Rec } bind def +/Bsquare { vpt sub exch vpt sub exch vpt2 Square } bind def +/S0 { BL [] 0 setdash 2 copy moveto 0 vpt rlineto BL Bsquare } bind def +/S1 { BL [] 0 setdash 2 copy vpt Square fill Bsquare } bind def +/S2 { BL [] 0 setdash 2 copy exch vpt sub exch vpt Square fill Bsquare } bind def +/S3 { BL [] 0 setdash 2 copy exch vpt sub exch vpt2 vpt Rec fill Bsquare } bind def +/S4 { BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt Square fill Bsquare } bind def +/S5 { BL [] 0 setdash 2 copy 2 copy vpt Square fill + exch vpt sub exch vpt sub vpt Square fill Bsquare } bind def +/S6 { BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt vpt2 Rec fill Bsquare } bind def +/S7 { BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt vpt2 Rec fill + 2 copy vpt Square fill + Bsquare } bind def +/S8 { BL [] 0 setdash 2 copy vpt sub vpt Square fill Bsquare } bind def +/S9 { BL [] 0 setdash 2 copy vpt sub vpt vpt2 Rec fill Bsquare } bind def +/S10 { BL [] 0 setdash 2 copy vpt sub vpt Square fill 2 copy exch vpt sub exch vpt Square fill + Bsquare } bind def +/S11 { BL [] 0 setdash 2 copy vpt sub vpt Square fill 2 copy exch vpt sub exch vpt2 vpt Rec fill + Bsquare } bind def +/S12 { BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt2 vpt Rec fill Bsquare } bind def +/S13 { BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt2 vpt Rec fill + 2 copy vpt Square fill Bsquare } bind def +/S14 { BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt2 vpt Rec fill + 2 copy exch vpt sub exch vpt Square fill Bsquare } bind def +/S15 { BL [] 0 setdash 2 copy Bsquare fill Bsquare } bind def +/D0 { gsave translate 45 rotate 0 0 S0 stroke grestore } bind def +/D1 { gsave translate 45 rotate 0 0 S1 stroke grestore } bind def +/D2 { gsave translate 45 rotate 0 0 S2 stroke grestore } bind def +/D3 { gsave translate 45 rotate 0 0 S3 stroke grestore } bind def +/D4 { gsave translate 45 rotate 0 0 S4 stroke grestore } bind def +/D5 { gsave translate 45 rotate 0 0 S5 stroke grestore } bind def +/D6 { gsave translate 45 rotate 0 0 S6 stroke grestore } bind def +/D7 { gsave translate 45 rotate 0 0 S7 stroke grestore } bind def +/D8 { gsave translate 45 rotate 0 0 S8 stroke grestore } bind def +/D9 { gsave translate 45 rotate 0 0 S9 stroke grestore } bind def +/D10 { gsave translate 45 rotate 0 0 S10 stroke grestore } bind def +/D11 { gsave translate 45 rotate 0 0 S11 stroke grestore } bind def +/D12 { gsave translate 45 rotate 0 0 S12 stroke grestore } bind def +/D13 { gsave translate 45 rotate 0 0 S13 stroke grestore } bind def +/D14 { gsave translate 45 rotate 0 0 S14 stroke grestore } bind def +/D15 { gsave translate 45 rotate 0 0 S15 stroke grestore } bind def +/DiaE { stroke [] 0 setdash vpt add M + hpt neg vpt neg V hpt vpt neg V + hpt vpt V hpt neg vpt V closepath stroke } def +/BoxE { stroke [] 0 setdash exch hpt sub exch vpt add M + 0 vpt2 neg V hpt2 0 V 0 vpt2 V + hpt2 neg 0 V closepath stroke } def +/TriUE { stroke [] 0 setdash vpt 1.12 mul add M + hpt neg vpt -1.62 mul V + hpt 2 mul 0 V + hpt neg vpt 1.62 mul V closepath stroke } def +/TriDE { stroke [] 0 setdash vpt 1.12 mul sub M + hpt neg vpt 1.62 mul V + hpt 2 mul 0 V + hpt neg vpt -1.62 mul V closepath stroke } def +/PentE { stroke [] 0 setdash gsave + translate 0 hpt M 4 {72 rotate 0 hpt L} repeat + closepath stroke grestore } def +/CircE { stroke [] 0 setdash + hpt 0 360 arc stroke } def +/BoxFill { gsave Rec 1 setgray fill grestore } def +end +gnudict begin +gsave +50 50 translate +0.050 0.050 scale +0 setgray +newpath +(Helvetica) findfont 140 scalefont setfont +LTb +672 560 M +63 0 V +4067 0 R +-63 0 V +588 560 M +(-2) Rshow +672 1076 M +63 0 V +4067 0 R +-63 0 V +-4151 0 R +(-1.5) Rshow +672 1593 M +63 0 V +4067 0 R +-63 0 V +-4151 0 R +(-1) Rshow +672 2109 M +63 0 V +4067 0 R +-63 0 V +-4151 0 R +(-0.5) Rshow +672 2625 M +63 0 V +4067 0 R +-63 0 V +-4151 0 R +(0) Rshow +672 3141 M +63 0 V +4067 0 R +-63 0 V +-4151 0 R +(0.5) Rshow +672 3658 M +63 0 V +4067 0 R +-63 0 V +-4151 0 R +(1) Rshow +672 4174 M +63 0 V +4067 0 R +-63 0 V +-4151 0 R +(1.5) Rshow +672 4690 M +63 0 V +4067 0 R +-63 0 V +-4151 0 R +(2) Rshow +672 560 M +0 63 V +0 4067 R +0 -63 V +672 420 M +(-2) Cshow +1188 560 M +0 63 V +0 4067 R +0 -63 V +0 -4207 R +(-1.5) Cshow +1705 560 M +0 63 V +0 4067 R +0 -63 V +0 -4207 R +(-1) Cshow +2221 560 M +0 63 V +0 4067 R +0 -63 V +0 -4207 R +(-0.5) Cshow +2737 560 M +0 63 V +0 4067 R +0 -63 V +0 -4207 R +(0) Cshow +3253 560 M +0 63 V +0 4067 R +0 -63 V +0 -4207 R +(0.5) Cshow +3770 560 M +0 63 V +0 4067 R +0 -63 V +0 -4207 R +(1) Cshow +4286 560 M +0 63 V +0 4067 R +0 -63 V +0 -4207 R +(1.5) Cshow +4802 560 M +0 63 V +0 4067 R +0 -63 V +0 -4207 R +(2) Cshow +LTb +672 560 M +4130 0 V +0 4130 V +-4130 0 V +672 560 L +2737 210 M +(rotate about eigenaxis 28.71 deg) Cshow +2737 4900 M +(yaw=20.00, pitch=20.00, roll=10.00 \(deg\)) Cshow +1.000 UP +1.000 UL +LT0 +4151 4557 M +(x \(body\)) Rshow +4235 4557 M +399 0 V +3622 3070 M +2737 2625 L +3622 3070 Pls +2737 2625 Pls +4434 4557 Pls +1.000 UP +1.000 UL +LT1 +4151 4417 M +(y \(body\)) Rshow +4235 4417 M +399 0 V +2737 2625 M +236 176 V +2737 2625 Pls +2973 2801 Pls +4434 4417 Pls +1.000 UP +1.000 UL +LT2 +4151 4277 M +(z \(body\)) Rshow +4235 4277 M +399 0 V +2737 2625 M +476 -915 V +2737 2625 Crs +3213 1710 Crs +4434 4277 Crs +1.000 UP +1.000 UL +LT0 +4151 4137 M +(x \(inertial\)) Rshow +4235 4137 M +399 0 V +3631 2625 M +-894 0 V +3631 2625 Star +2737 2625 Star +4434 4137 Star +1.000 UP +1.000 UL +LT1 +4151 3997 M +(y \(inertial\)) Rshow +4235 3997 M +399 0 V +2737 2625 M +485 353 V +2737 2625 Star +3222 2978 Star +4434 3997 Star +1.000 UP +1.000 UL +LT2 +4151 3857 M +(z \(inertial\)) Rshow +4235 3857 M +399 0 V +2737 2625 M +177 -970 V +2737 2625 Box +2914 1655 Box +4434 3857 Box +1.000 UL +LT5 +4151 3717 M +(eigenaxis) Rshow +4235 3717 M +399 0 V +2737 2625 M +-140 990 V +100 8 V +2 6 V +-2 5 V +-7 4 V +-11 3 V +-14 2 V +-18 1 V +-19 0 V +-21 -2 V +-22 -3 V +-21 -4 V +1.000 UL +LT3 +3323 1302 M +-1789 0 V +1181 3242 L +970 706 V +1789 0 V +4293 2008 L +3323 1302 L +970 706 V +-1788 0 V +2151 3948 L +2505 2008 L +1534 1302 L +1.000 UL +LT4 +3940 3948 M +2969 3242 L +-1788 0 V +1788 0 V +3323 1302 L +stroke +grestore +end +showpage + @endspecial 50 3833 a @beginspecial 50 @llx 50 @lly +410 @urx 302 @ury 2808 @rwi @setspecial +/gnudict 120 dict def +gnudict begin +/Color false def +/Solid false def +/gnulinewidth 5.000 def +/userlinewidth gnulinewidth def +/vshift -46 def +/dl {10 mul} def +/hpt_ 31.5 def +/vpt_ 31.5 def +/hpt hpt_ def +/vpt vpt_ def +/M {moveto} bind def +/L {lineto} bind def +/R {rmoveto} bind def +/V {rlineto} bind def +/vpt2 vpt 2 mul def +/hpt2 hpt 2 mul def +/Lshow { currentpoint stroke M + 0 vshift R show } def +/Rshow { currentpoint stroke M + dup stringwidth pop neg vshift R show } def +/Cshow { currentpoint stroke M + dup stringwidth pop -2 div vshift R show } def +/UP { dup vpt_ mul /vpt exch def hpt_ mul /hpt exch def + /hpt2 hpt 2 mul def /vpt2 vpt 2 mul def } def +/DL { Color {setrgbcolor Solid {pop []} if 0 setdash } + {pop pop pop Solid {pop []} if 0 setdash} ifelse } def +/BL { stroke gnulinewidth 2 mul setlinewidth } def +/AL { stroke gnulinewidth 2 div setlinewidth } def +/UL { gnulinewidth mul /userlinewidth exch def } def +/PL { stroke userlinewidth setlinewidth } def +/LTb { BL [] 0 0 0 DL } def +/LTa { AL [1 dl 2 dl] 0 setdash 0 0 0 setrgbcolor } def +/LT0 { PL [] 0 1 0 DL } def +/LT1 { PL [4 dl 2 dl] 0 0 1 DL } def +/LT2 { PL [2 dl 3 dl] 1 0 0 DL } def +/LT3 { PL [1 dl 1.5 dl] 1 0 1 DL } def +/LT4 { PL [5 dl 2 dl 1 dl 2 dl] 0 1 1 DL } def +/LT5 { PL [4 dl 3 dl 1 dl 3 dl] 1 1 0 DL } def +/LT6 { PL [2 dl 2 dl 2 dl 4 dl] 0 0 0 DL } def +/LT7 { PL [2 dl 2 dl 2 dl 2 dl 2 dl 4 dl] 1 0.3 0 DL } def +/LT8 { PL [2 dl 2 dl 2 dl 2 dl 2 dl 2 dl 2 dl 4 dl] 0.5 0.5 0.5 DL } def +/Pnt { stroke [] 0 setdash + gsave 1 setlinecap M 0 0 V stroke grestore } def +/Dia { stroke [] 0 setdash 2 copy vpt add M + hpt neg vpt neg V hpt vpt neg V + hpt vpt V hpt neg vpt V closepath stroke + Pnt } def +/Pls { stroke [] 0 setdash vpt sub M 0 vpt2 V + currentpoint stroke M + hpt neg vpt neg R hpt2 0 V stroke + } def +/Box { stroke [] 0 setdash 2 copy exch hpt sub exch vpt add M + 0 vpt2 neg V hpt2 0 V 0 vpt2 V + hpt2 neg 0 V closepath stroke + Pnt } def +/Crs { stroke [] 0 setdash exch hpt sub exch vpt add M + hpt2 vpt2 neg V currentpoint stroke M + hpt2 neg 0 R hpt2 vpt2 V stroke } def +/TriU { stroke [] 0 setdash 2 copy vpt 1.12 mul add M + hpt neg vpt -1.62 mul V + hpt 2 mul 0 V + hpt neg vpt 1.62 mul V closepath stroke + Pnt } def +/Star { 2 copy Pls Crs } def +/BoxF { stroke [] 0 setdash exch hpt sub exch vpt add M + 0 vpt2 neg V hpt2 0 V 0 vpt2 V + hpt2 neg 0 V closepath fill } def +/TriUF { stroke [] 0 setdash vpt 1.12 mul add M + hpt neg vpt -1.62 mul V + hpt 2 mul 0 V + hpt neg vpt 1.62 mul V closepath fill } def +/TriD { stroke [] 0 setdash 2 copy vpt 1.12 mul sub M + hpt neg vpt 1.62 mul V + hpt 2 mul 0 V + hpt neg vpt -1.62 mul V closepath stroke + Pnt } def +/TriDF { stroke [] 0 setdash vpt 1.12 mul sub M + hpt neg vpt 1.62 mul V + hpt 2 mul 0 V + hpt neg vpt -1.62 mul V closepath fill} def +/DiaF { stroke [] 0 setdash vpt add M + hpt neg vpt neg V hpt vpt neg V + hpt vpt V hpt neg vpt V closepath fill } def +/Pent { stroke [] 0 setdash 2 copy gsave + translate 0 hpt M 4 {72 rotate 0 hpt L} repeat + closepath stroke grestore Pnt } def +/PentF { stroke [] 0 setdash gsave + translate 0 hpt M 4 {72 rotate 0 hpt L} repeat + closepath fill grestore } def +/Circle { stroke [] 0 setdash 2 copy + hpt 0 360 arc stroke Pnt } def +/CircleF { stroke [] 0 setdash hpt 0 360 arc fill } def +/C0 { BL [] 0 setdash 2 copy moveto vpt 90 450 arc } bind def +/C1 { BL [] 0 setdash 2 copy moveto + 2 copy vpt 0 90 arc closepath fill + vpt 0 360 arc closepath } bind def +/C2 { BL [] 0 setdash 2 copy moveto + 2 copy vpt 90 180 arc closepath fill + vpt 0 360 arc closepath } bind def +/C3 { BL [] 0 setdash 2 copy moveto + 2 copy vpt 0 180 arc closepath fill + vpt 0 360 arc closepath } bind def +/C4 { BL [] 0 setdash 2 copy moveto + 2 copy vpt 180 270 arc closepath fill + vpt 0 360 arc closepath } bind def +/C5 { BL [] 0 setdash 2 copy moveto + 2 copy vpt 0 90 arc + 2 copy moveto + 2 copy vpt 180 270 arc closepath fill + vpt 0 360 arc } bind def +/C6 { BL [] 0 setdash 2 copy moveto + 2 copy vpt 90 270 arc closepath fill + vpt 0 360 arc closepath } bind def +/C7 { BL [] 0 setdash 2 copy moveto + 2 copy vpt 0 270 arc closepath fill + vpt 0 360 arc closepath } bind def +/C8 { BL [] 0 setdash 2 copy moveto + 2 copy vpt 270 360 arc closepath fill + vpt 0 360 arc closepath } bind def +/C9 { BL [] 0 setdash 2 copy moveto + 2 copy vpt 270 450 arc closepath fill + vpt 0 360 arc closepath } bind def +/C10 { BL [] 0 setdash 2 copy 2 copy moveto vpt 270 360 arc closepath fill + 2 copy moveto + 2 copy vpt 90 180 arc closepath fill + vpt 0 360 arc closepath } bind def +/C11 { BL [] 0 setdash 2 copy moveto + 2 copy vpt 0 180 arc closepath fill + 2 copy moveto + 2 copy vpt 270 360 arc closepath fill + vpt 0 360 arc closepath } bind def +/C12 { BL [] 0 setdash 2 copy moveto + 2 copy vpt 180 360 arc closepath fill + vpt 0 360 arc closepath } bind def +/C13 { BL [] 0 setdash 2 copy moveto + 2 copy vpt 0 90 arc closepath fill + 2 copy moveto + 2 copy vpt 180 360 arc closepath fill + vpt 0 360 arc closepath } bind def +/C14 { BL [] 0 setdash 2 copy moveto + 2 copy vpt 90 360 arc closepath fill + vpt 0 360 arc } bind def +/C15 { BL [] 0 setdash 2 copy vpt 0 360 arc closepath fill + vpt 0 360 arc closepath } bind def +/Rec { newpath 4 2 roll moveto 1 index 0 rlineto 0 exch rlineto + neg 0 rlineto closepath } bind def +/Square { dup Rec } bind def +/Bsquare { vpt sub exch vpt sub exch vpt2 Square } bind def +/S0 { BL [] 0 setdash 2 copy moveto 0 vpt rlineto BL Bsquare } bind def +/S1 { BL [] 0 setdash 2 copy vpt Square fill Bsquare } bind def +/S2 { BL [] 0 setdash 2 copy exch vpt sub exch vpt Square fill Bsquare } bind def +/S3 { BL [] 0 setdash 2 copy exch vpt sub exch vpt2 vpt Rec fill Bsquare } bind def +/S4 { BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt Square fill Bsquare } bind def +/S5 { BL [] 0 setdash 2 copy 2 copy vpt Square fill + exch vpt sub exch vpt sub vpt Square fill Bsquare } bind def +/S6 { BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt vpt2 Rec fill Bsquare } bind def +/S7 { BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt vpt2 Rec fill + 2 copy vpt Square fill + Bsquare } bind def +/S8 { BL [] 0 setdash 2 copy vpt sub vpt Square fill Bsquare } bind def +/S9 { BL [] 0 setdash 2 copy vpt sub vpt vpt2 Rec fill Bsquare } bind def +/S10 { BL [] 0 setdash 2 copy vpt sub vpt Square fill 2 copy exch vpt sub exch vpt Square fill + Bsquare } bind def +/S11 { BL [] 0 setdash 2 copy vpt sub vpt Square fill 2 copy exch vpt sub exch vpt2 vpt Rec fill + Bsquare } bind def +/S12 { BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt2 vpt Rec fill Bsquare } bind def +/S13 { BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt2 vpt Rec fill + 2 copy vpt Square fill Bsquare } bind def +/S14 { BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt2 vpt Rec fill + 2 copy exch vpt sub exch vpt Square fill Bsquare } bind def +/S15 { BL [] 0 setdash 2 copy Bsquare fill Bsquare } bind def +/D0 { gsave translate 45 rotate 0 0 S0 stroke grestore } bind def +/D1 { gsave translate 45 rotate 0 0 S1 stroke grestore } bind def +/D2 { gsave translate 45 rotate 0 0 S2 stroke grestore } bind def +/D3 { gsave translate 45 rotate 0 0 S3 stroke grestore } bind def +/D4 { gsave translate 45 rotate 0 0 S4 stroke grestore } bind def +/D5 { gsave translate 45 rotate 0 0 S5 stroke grestore } bind def +/D6 { gsave translate 45 rotate 0 0 S6 stroke grestore } bind def +/D7 { gsave translate 45 rotate 0 0 S7 stroke grestore } bind def +/D8 { gsave translate 45 rotate 0 0 S8 stroke grestore } bind def +/D9 { gsave translate 45 rotate 0 0 S9 stroke grestore } bind def +/D10 { gsave translate 45 rotate 0 0 S10 stroke grestore } bind def +/D11 { gsave translate 45 rotate 0 0 S11 stroke grestore } bind def +/D12 { gsave translate 45 rotate 0 0 S12 stroke grestore } bind def +/D13 { gsave translate 45 rotate 0 0 S13 stroke grestore } bind def +/D14 { gsave translate 45 rotate 0 0 S14 stroke grestore } bind def +/D15 { gsave translate 45 rotate 0 0 S15 stroke grestore } bind def +/DiaE { stroke [] 0 setdash vpt add M + hpt neg vpt neg V hpt vpt neg V + hpt vpt V hpt neg vpt V closepath stroke } def +/BoxE { stroke [] 0 setdash exch hpt sub exch vpt add M + 0 vpt2 neg V hpt2 0 V 0 vpt2 V + hpt2 neg 0 V closepath stroke } def +/TriUE { stroke [] 0 setdash vpt 1.12 mul add M + hpt neg vpt -1.62 mul V + hpt 2 mul 0 V + hpt neg vpt 1.62 mul V closepath stroke } def +/TriDE { stroke [] 0 setdash vpt 1.12 mul sub M + hpt neg vpt 1.62 mul V + hpt 2 mul 0 V + hpt neg vpt -1.62 mul V closepath stroke } def +/PentE { stroke [] 0 setdash gsave + translate 0 hpt M 4 {72 rotate 0 hpt L} repeat + closepath stroke grestore } def +/CircE { stroke [] 0 setdash + hpt 0 360 arc stroke } def +/BoxFill { gsave Rec 1 setgray fill grestore } def +end +gnudict begin +gsave +50 50 translate +0.050 0.050 scale +0 setgray +newpath +(Helvetica) findfont 140 scalefont setfont +LTb +672 560 M +63 0 V +4067 0 R +-63 0 V +588 560 M +(-2) Rshow +672 1076 M +63 0 V +4067 0 R +-63 0 V +-4151 0 R +(-1.5) Rshow +672 1593 M +63 0 V +4067 0 R +-63 0 V +-4151 0 R +(-1) Rshow +672 2109 M +63 0 V +4067 0 R +-63 0 V +-4151 0 R +(-0.5) Rshow +672 2625 M +63 0 V +4067 0 R +-63 0 V +-4151 0 R +(0) Rshow +672 3141 M +63 0 V +4067 0 R +-63 0 V +-4151 0 R +(0.5) Rshow +672 3658 M +63 0 V +4067 0 R +-63 0 V +-4151 0 R +(1) Rshow +672 4174 M +63 0 V +4067 0 R +-63 0 V +-4151 0 R +(1.5) Rshow +672 4690 M +63 0 V +4067 0 R +-63 0 V +-4151 0 R +(2) Rshow +672 560 M +0 63 V +0 4067 R +0 -63 V +672 420 M +(-2) Cshow +1188 560 M +0 63 V +0 4067 R +0 -63 V +0 -4207 R +(-1.5) Cshow +1705 560 M +0 63 V +0 4067 R +0 -63 V +0 -4207 R +(-1) Cshow +2221 560 M +0 63 V +0 4067 R +0 -63 V +0 -4207 R +(-0.5) Cshow +2737 560 M +0 63 V +0 4067 R +0 -63 V +0 -4207 R +(0) Cshow +3253 560 M +0 63 V +0 4067 R +0 -63 V +0 -4207 R +(0.5) Cshow +3770 560 M +0 63 V +0 4067 R +0 -63 V +0 -4207 R +(1) Cshow +4286 560 M +0 63 V +0 4067 R +0 -63 V +0 -4207 R +(1.5) Cshow +4802 560 M +0 63 V +0 4067 R +0 -63 V +0 -4207 R +(2) Cshow +LTb +672 560 M +4130 0 V +0 4130 V +-4130 0 V +672 560 L +2737 210 M +(rotate about eigenaxis 30.19 deg) Cshow +2737 4900 M +(yaw=20.00, pitch=20.00, roll=15.00 \(deg\)) Cshow +1.000 UP +1.000 UL +LT0 +4151 4557 M +(x \(body\)) Rshow +4235 4557 M +399 0 V +3622 3070 M +2737 2625 L +3622 3070 Pls +2737 2625 Pls +4434 4557 Pls +1.000 UP +1.000 UL +LT1 +4151 4417 M +(y \(body\)) Rshow +4235 4417 M +399 0 V +2737 2625 M +277 95 V +2737 2625 Pls +3014 2720 Pls +4434 4417 Pls +1.000 UP +1.000 UL +LT2 +4151 4277 M +(z \(body\)) Rshow +4235 4277 M +399 0 V +2737 2625 M +454 -927 V +2737 2625 Crs +3191 1698 Crs +4434 4277 Crs +1.000 UP +1.000 UL +LT0 +4151 4137 M +(x \(inertial\)) Rshow +4235 4137 M +399 0 V +3631 2625 M +-894 0 V +3631 2625 Star +2737 2625 Star +4434 4137 Star +1.000 UP +1.000 UL +LT1 +4151 3997 M +(y \(inertial\)) Rshow +4235 3997 M +399 0 V +2737 2625 M +485 353 V +2737 2625 Star +3222 2978 Star +4434 3997 Star +1.000 UP +1.000 UL +LT2 +4151 3857 M +(z \(inertial\)) Rshow +4235 3857 M +399 0 V +2737 2625 M +177 -970 V +2737 2625 Box +2914 1655 Box +4434 3857 Box +1.000 UL +LT5 +4151 3717 M +(eigenaxis) Rshow +4235 3717 M +399 0 V +2737 2625 M +-129 990 V +100 6 V +3 6 V +-2 5 V +-7 5 V +-10 3 V +-15 3 V +-17 1 V +-19 0 V +-21 -1 V +-22 -3 V +-21 -4 V +1.000 UL +LT3 +3323 1302 M +-1789 0 V +1181 3242 L +970 706 V +1789 0 V +4293 2008 L +3323 1302 L +970 706 V +-1788 0 V +2151 3948 L +2505 2008 L +1534 1302 L +1.000 UL +LT4 +3940 3948 M +2969 3242 L +-1788 0 V +1788 0 V +3323 1302 L +stroke +grestore +end +showpage + @endspecial 2050 w @beginspecial 50 @llx 50 @lly 410 +@urx 302 @ury 2808 @rwi @setspecial +/gnudict 120 dict def +gnudict begin +/Color false def +/Solid false def +/gnulinewidth 5.000 def +/userlinewidth gnulinewidth def +/vshift -46 def +/dl {10 mul} def +/hpt_ 31.5 def +/vpt_ 31.5 def +/hpt hpt_ def +/vpt vpt_ def +/M {moveto} bind def +/L {lineto} bind def +/R {rmoveto} bind def +/V {rlineto} bind def +/vpt2 vpt 2 mul def +/hpt2 hpt 2 mul def +/Lshow { currentpoint stroke M + 0 vshift R show } def +/Rshow { currentpoint stroke M + dup stringwidth pop neg vshift R show } def +/Cshow { currentpoint stroke M + dup stringwidth pop -2 div vshift R show } def +/UP { dup vpt_ mul /vpt exch def hpt_ mul /hpt exch def + /hpt2 hpt 2 mul def /vpt2 vpt 2 mul def } def +/DL { Color {setrgbcolor Solid {pop []} if 0 setdash } + {pop pop pop Solid {pop []} if 0 setdash} ifelse } def +/BL { stroke gnulinewidth 2 mul setlinewidth } def +/AL { stroke gnulinewidth 2 div setlinewidth } def +/UL { gnulinewidth mul /userlinewidth exch def } def +/PL { stroke userlinewidth setlinewidth } def +/LTb { BL [] 0 0 0 DL } def +/LTa { AL [1 dl 2 dl] 0 setdash 0 0 0 setrgbcolor } def +/LT0 { PL [] 0 1 0 DL } def +/LT1 { PL [4 dl 2 dl] 0 0 1 DL } def +/LT2 { PL [2 dl 3 dl] 1 0 0 DL } def +/LT3 { PL [1 dl 1.5 dl] 1 0 1 DL } def +/LT4 { PL [5 dl 2 dl 1 dl 2 dl] 0 1 1 DL } def +/LT5 { PL [4 dl 3 dl 1 dl 3 dl] 1 1 0 DL } def +/LT6 { PL [2 dl 2 dl 2 dl 4 dl] 0 0 0 DL } def +/LT7 { PL [2 dl 2 dl 2 dl 2 dl 2 dl 4 dl] 1 0.3 0 DL } def +/LT8 { PL [2 dl 2 dl 2 dl 2 dl 2 dl 2 dl 2 dl 4 dl] 0.5 0.5 0.5 DL } def +/Pnt { stroke [] 0 setdash + gsave 1 setlinecap M 0 0 V stroke grestore } def +/Dia { stroke [] 0 setdash 2 copy vpt add M + hpt neg vpt neg V hpt vpt neg V + hpt vpt V hpt neg vpt V closepath stroke + Pnt } def +/Pls { stroke [] 0 setdash vpt sub M 0 vpt2 V + currentpoint stroke M + hpt neg vpt neg R hpt2 0 V stroke + } def +/Box { stroke [] 0 setdash 2 copy exch hpt sub exch vpt add M + 0 vpt2 neg V hpt2 0 V 0 vpt2 V + hpt2 neg 0 V closepath stroke + Pnt } def +/Crs { stroke [] 0 setdash exch hpt sub exch vpt add M + hpt2 vpt2 neg V currentpoint stroke M + hpt2 neg 0 R hpt2 vpt2 V stroke } def +/TriU { stroke [] 0 setdash 2 copy vpt 1.12 mul add M + hpt neg vpt -1.62 mul V + hpt 2 mul 0 V + hpt neg vpt 1.62 mul V closepath stroke + Pnt } def +/Star { 2 copy Pls Crs } def +/BoxF { stroke [] 0 setdash exch hpt sub exch vpt add M + 0 vpt2 neg V hpt2 0 V 0 vpt2 V + hpt2 neg 0 V closepath fill } def +/TriUF { stroke [] 0 setdash vpt 1.12 mul add M + hpt neg vpt -1.62 mul V + hpt 2 mul 0 V + hpt neg vpt 1.62 mul V closepath fill } def +/TriD { stroke [] 0 setdash 2 copy vpt 1.12 mul sub M + hpt neg vpt 1.62 mul V + hpt 2 mul 0 V + hpt neg vpt -1.62 mul V closepath stroke + Pnt } def +/TriDF { stroke [] 0 setdash vpt 1.12 mul sub M + hpt neg vpt 1.62 mul V + hpt 2 mul 0 V + hpt neg vpt -1.62 mul V closepath fill} def +/DiaF { stroke [] 0 setdash vpt add M + hpt neg vpt neg V hpt vpt neg V + hpt vpt V hpt neg vpt V closepath fill } def +/Pent { stroke [] 0 setdash 2 copy gsave + translate 0 hpt M 4 {72 rotate 0 hpt L} repeat + closepath stroke grestore Pnt } def +/PentF { stroke [] 0 setdash gsave + translate 0 hpt M 4 {72 rotate 0 hpt L} repeat + closepath fill grestore } def +/Circle { stroke [] 0 setdash 2 copy + hpt 0 360 arc stroke Pnt } def +/CircleF { stroke [] 0 setdash hpt 0 360 arc fill } def +/C0 { BL [] 0 setdash 2 copy moveto vpt 90 450 arc } bind def +/C1 { BL [] 0 setdash 2 copy moveto + 2 copy vpt 0 90 arc closepath fill + vpt 0 360 arc closepath } bind def +/C2 { BL [] 0 setdash 2 copy moveto + 2 copy vpt 90 180 arc closepath fill + vpt 0 360 arc closepath } bind def +/C3 { BL [] 0 setdash 2 copy moveto + 2 copy vpt 0 180 arc closepath fill + vpt 0 360 arc closepath } bind def +/C4 { BL [] 0 setdash 2 copy moveto + 2 copy vpt 180 270 arc closepath fill + vpt 0 360 arc closepath } bind def +/C5 { BL [] 0 setdash 2 copy moveto + 2 copy vpt 0 90 arc + 2 copy moveto + 2 copy vpt 180 270 arc closepath fill + vpt 0 360 arc } bind def +/C6 { BL [] 0 setdash 2 copy moveto + 2 copy vpt 90 270 arc closepath fill + vpt 0 360 arc closepath } bind def +/C7 { BL [] 0 setdash 2 copy moveto + 2 copy vpt 0 270 arc closepath fill + vpt 0 360 arc closepath } bind def +/C8 { BL [] 0 setdash 2 copy moveto + 2 copy vpt 270 360 arc closepath fill + vpt 0 360 arc closepath } bind def +/C9 { BL [] 0 setdash 2 copy moveto + 2 copy vpt 270 450 arc closepath fill + vpt 0 360 arc closepath } bind def +/C10 { BL [] 0 setdash 2 copy 2 copy moveto vpt 270 360 arc closepath fill + 2 copy moveto + 2 copy vpt 90 180 arc closepath fill + vpt 0 360 arc closepath } bind def +/C11 { BL [] 0 setdash 2 copy moveto + 2 copy vpt 0 180 arc closepath fill + 2 copy moveto + 2 copy vpt 270 360 arc closepath fill + vpt 0 360 arc closepath } bind def +/C12 { BL [] 0 setdash 2 copy moveto + 2 copy vpt 180 360 arc closepath fill + vpt 0 360 arc closepath } bind def +/C13 { BL [] 0 setdash 2 copy moveto + 2 copy vpt 0 90 arc closepath fill + 2 copy moveto + 2 copy vpt 180 360 arc closepath fill + vpt 0 360 arc closepath } bind def +/C14 { BL [] 0 setdash 2 copy moveto + 2 copy vpt 90 360 arc closepath fill + vpt 0 360 arc } bind def +/C15 { BL [] 0 setdash 2 copy vpt 0 360 arc closepath fill + vpt 0 360 arc closepath } bind def +/Rec { newpath 4 2 roll moveto 1 index 0 rlineto 0 exch rlineto + neg 0 rlineto closepath } bind def +/Square { dup Rec } bind def +/Bsquare { vpt sub exch vpt sub exch vpt2 Square } bind def +/S0 { BL [] 0 setdash 2 copy moveto 0 vpt rlineto BL Bsquare } bind def +/S1 { BL [] 0 setdash 2 copy vpt Square fill Bsquare } bind def +/S2 { BL [] 0 setdash 2 copy exch vpt sub exch vpt Square fill Bsquare } bind def +/S3 { BL [] 0 setdash 2 copy exch vpt sub exch vpt2 vpt Rec fill Bsquare } bind def +/S4 { BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt Square fill Bsquare } bind def +/S5 { BL [] 0 setdash 2 copy 2 copy vpt Square fill + exch vpt sub exch vpt sub vpt Square fill Bsquare } bind def +/S6 { BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt vpt2 Rec fill Bsquare } bind def +/S7 { BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt vpt2 Rec fill + 2 copy vpt Square fill + Bsquare } bind def +/S8 { BL [] 0 setdash 2 copy vpt sub vpt Square fill Bsquare } bind def +/S9 { BL [] 0 setdash 2 copy vpt sub vpt vpt2 Rec fill Bsquare } bind def +/S10 { BL [] 0 setdash 2 copy vpt sub vpt Square fill 2 copy exch vpt sub exch vpt Square fill + Bsquare } bind def +/S11 { BL [] 0 setdash 2 copy vpt sub vpt Square fill 2 copy exch vpt sub exch vpt2 vpt Rec fill + Bsquare } bind def +/S12 { BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt2 vpt Rec fill Bsquare } bind def +/S13 { BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt2 vpt Rec fill + 2 copy vpt Square fill Bsquare } bind def +/S14 { BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt2 vpt Rec fill + 2 copy exch vpt sub exch vpt Square fill Bsquare } bind def +/S15 { BL [] 0 setdash 2 copy Bsquare fill Bsquare } bind def +/D0 { gsave translate 45 rotate 0 0 S0 stroke grestore } bind def +/D1 { gsave translate 45 rotate 0 0 S1 stroke grestore } bind def +/D2 { gsave translate 45 rotate 0 0 S2 stroke grestore } bind def +/D3 { gsave translate 45 rotate 0 0 S3 stroke grestore } bind def +/D4 { gsave translate 45 rotate 0 0 S4 stroke grestore } bind def +/D5 { gsave translate 45 rotate 0 0 S5 stroke grestore } bind def +/D6 { gsave translate 45 rotate 0 0 S6 stroke grestore } bind def +/D7 { gsave translate 45 rotate 0 0 S7 stroke grestore } bind def +/D8 { gsave translate 45 rotate 0 0 S8 stroke grestore } bind def +/D9 { gsave translate 45 rotate 0 0 S9 stroke grestore } bind def +/D10 { gsave translate 45 rotate 0 0 S10 stroke grestore } bind def +/D11 { gsave translate 45 rotate 0 0 S11 stroke grestore } bind def +/D12 { gsave translate 45 rotate 0 0 S12 stroke grestore } bind def +/D13 { gsave translate 45 rotate 0 0 S13 stroke grestore } bind def +/D14 { gsave translate 45 rotate 0 0 S14 stroke grestore } bind def +/D15 { gsave translate 45 rotate 0 0 S15 stroke grestore } bind def +/DiaE { stroke [] 0 setdash vpt add M + hpt neg vpt neg V hpt vpt neg V + hpt vpt V hpt neg vpt V closepath stroke } def +/BoxE { stroke [] 0 setdash exch hpt sub exch vpt add M + 0 vpt2 neg V hpt2 0 V 0 vpt2 V + hpt2 neg 0 V closepath stroke } def +/TriUE { stroke [] 0 setdash vpt 1.12 mul add M + hpt neg vpt -1.62 mul V + hpt 2 mul 0 V + hpt neg vpt 1.62 mul V closepath stroke } def +/TriDE { stroke [] 0 setdash vpt 1.12 mul sub M + hpt neg vpt 1.62 mul V + hpt 2 mul 0 V + hpt neg vpt -1.62 mul V closepath stroke } def +/PentE { stroke [] 0 setdash gsave + translate 0 hpt M 4 {72 rotate 0 hpt L} repeat + closepath stroke grestore } def +/CircE { stroke [] 0 setdash + hpt 0 360 arc stroke } def +/BoxFill { gsave Rec 1 setgray fill grestore } def +end +gnudict begin +gsave +50 50 translate +0.050 0.050 scale +0 setgray +newpath +(Helvetica) findfont 140 scalefont setfont +LTb +672 560 M +63 0 V +4067 0 R +-63 0 V +588 560 M +(-2) Rshow +672 1076 M +63 0 V +4067 0 R +-63 0 V +-4151 0 R +(-1.5) Rshow +672 1593 M +63 0 V +4067 0 R +-63 0 V +-4151 0 R +(-1) Rshow +672 2109 M +63 0 V +4067 0 R +-63 0 V +-4151 0 R +(-0.5) Rshow +672 2625 M +63 0 V +4067 0 R +-63 0 V +-4151 0 R +(0) Rshow +672 3141 M +63 0 V +4067 0 R +-63 0 V +-4151 0 R +(0.5) Rshow +672 3658 M +63 0 V +4067 0 R +-63 0 V +-4151 0 R +(1) Rshow +672 4174 M +63 0 V +4067 0 R +-63 0 V +-4151 0 R +(1.5) Rshow +672 4690 M +63 0 V +4067 0 R +-63 0 V +-4151 0 R +(2) Rshow +672 560 M +0 63 V +0 4067 R +0 -63 V +672 420 M +(-2) Cshow +1188 560 M +0 63 V +0 4067 R +0 -63 V +0 -4207 R +(-1.5) Cshow +1705 560 M +0 63 V +0 4067 R +0 -63 V +0 -4207 R +(-1) Cshow +2221 560 M +0 63 V +0 4067 R +0 -63 V +0 -4207 R +(-0.5) Cshow +2737 560 M +0 63 V +0 4067 R +0 -63 V +0 -4207 R +(0) Cshow +3253 560 M +0 63 V +0 4067 R +0 -63 V +0 -4207 R +(0.5) Cshow +3770 560 M +0 63 V +0 4067 R +0 -63 V +0 -4207 R +(1) Cshow +4286 560 M +0 63 V +0 4067 R +0 -63 V +0 -4207 R +(1.5) Cshow +4802 560 M +0 63 V +0 4067 R +0 -63 V +0 -4207 R +(2) Cshow +LTb +672 560 M +4130 0 V +0 4130 V +-4130 0 V +672 560 L +2737 210 M +(rotate about eigenaxis 32.38 deg) Cshow +2737 4900 M +(yaw=20.00, pitch=20.00, roll=20.00 \(deg\)) Cshow +1.000 UP +1.000 UL +LT0 +4151 4557 M +(x \(body\)) Rshow +4235 4557 M +399 0 V +3769 2617 M +-1032 8 V +3769 2617 Pls +2737 2625 Pls +4434 4557 Pls +1.000 UP +1.000 UL +LT1 +4151 4417 M +(y \(body\)) Rshow +4235 4417 M +399 0 V +2737 2625 M +-12 55 V +2737 2625 Pls +2725 2680 Pls +4434 4417 Pls +1.000 UP +1.000 UL +LT2 +4151 4277 M +(z \(body\)) Rshow +4235 4277 M +399 0 V +2737 2625 M +9 1031 V +2737 2625 Crs +2746 3656 Crs +4434 4277 Crs +1.000 UP +1.000 UL +LT0 +4151 4137 M +(x \(inertial\)) Rshow +4235 4137 M +399 0 V +3631 2625 M +-894 0 V +3631 2625 Star +2737 2625 Star +4434 4137 Star +1.000 UP +1.000 UL +LT1 +4151 3997 M +(y \(inertial\)) Rshow +4235 3997 M +399 0 V +2737 2625 M +485 353 V +2737 2625 Star +3222 2978 Star +4434 3997 Star +1.000 UP +1.000 UL +LT2 +4151 3857 M +(z \(inertial\)) Rshow +4235 3857 M +399 0 V +2737 2625 M +177 -970 V +2737 2625 Box +2914 1655 Box +4434 3857 Box +1.000 UL +LT5 +4151 3717 M +(eigenaxis) Rshow +4235 3717 M +399 0 V +2737 2625 M +-119 989 V +100 5 V +2 6 V +-1 6 V +-7 4 V +-10 4 V +-14 3 V +-17 2 V +-19 0 V +-21 -1 V +-22 -3 V +-21 -3 V +1.000 UL +LT3 +3323 1302 M +-1789 0 V +1181 3242 L +970 706 V +1789 0 V +4293 2008 L +3323 1302 L +970 706 V +-1788 0 V +2151 3948 L +2505 2008 L +1534 1302 L +1.000 UL +LT4 +3940 3948 M +2969 3242 L +-1788 0 V +1788 0 V +3323 1302 L +stroke +grestore +end +showpage + @endspecial 0 4071 a Fm(1.5)112 b(Time)36 b(deriv)-6 +b(ativ)m(e)36 b(of)i(a)g(quaternion)0 4243 y Fq(In)28 +b(this)f(subsection)h(w)m(e)h(adopt)g(the)f(v)m(ector)j(notation)d(for) +h(quaternions,)f(i.e.)40 b(\(with)27 b(some)i(abuse)g(of)f(notation\))0 +4356 y Fo(q)46 b Fq(=)c(\()s(\026)-48 b Fo(v)t(;)15 b(\022)s +Fq(\))42 b(=)k(\026)-48 b Fo(v)30 b Fq(+)d Fo(\022)43 +b Fq(as)e(in)f(equation)h(\(1.3\).)74 b(Let)41 b Fo(q)1937 +4371 y Fh(b)1971 4356 y Fq(\()p Fo(t)p Fq(\))i(=)f(\()7 +b(\026)-52 b Fo(q)2306 4371 y Fh(b)2341 4356 y Fq(\()p +Fo(t)p Fq(\))p Fo(;)15 b(\022)2527 4371 y Fh(b)2562 4356 +y Fq(\()p Fo(t)p Fq(\)\))41 b(b)s(e)g(a)g(quaternion)f(relating)g(the)0 +4469 y(co)s(ordinates)k(of)h(a)f(b)s(o)s(dy)f(\(rotating\))j(frame)e +(to)h(a)g(\014xed)e(frame,)49 b(and)43 b(supp)s(ose)g(that)i(the)g(b)s +(o)s(dy)e(frame)h(is)0 4582 y(rotating)26 b(with)f(\014xed)g(angular)h +(v)m(elo)s(cit)m(y)g Fo(!)j Fq(ab)s(out)d(the)g(unit)e(v)m(ector)2378 +4559 y(\026)2368 4582 y(\012)h(=)g Fo(!)2612 4596 y Fk(1)2644 +4561 y Fq(^)2651 4582 y Fo(i)12 b Fq(+)f Fo(!)2833 4596 +y Fk(2)2871 4561 y Fq(^)2872 4582 y Fo(j)17 b Fq(+)11 +b Fo(!)3065 4596 y Fk(2)3107 4558 y Fq(^)3104 4582 y +Fo(k)29 b Fq(in)c(the)h(\014xed)g(frame.)0 4695 y(\()p +Fj(qtrans)j Fq(ma)m(y)i(b)s(e)f(used)f(to)i(p)s(erform)e(the)i +(deriviation)d(in)h(the)i(b)s(o)s(dy)e(frame.\))p eop +13 12 bop 0 100 a Fn(A.)31 b(S.)f(Ho)s(del:)40 b(Quaternions)29 +b(\(In)m(tro)s(duction\))g Fo(R)q(ev)s(ision)d Fq(:)f(1)p +Fo(:)p Fq(1)421 b Fn(\(c\))31 b(1998)871 b Fq(13)1829 +824 y Fo(!)p 3 setlinewidth np 1738 974 a 2342 974 li +st 3 setlinewidth np 2281 990 a 2342 974 li 2281 959 +li st 3 setlinewidth np 1738 974 a 1285 1277 li st 3 +setlinewidth np 1327 1231 a 1285 1277 li 1343 1256 li +st 3 setlinewidth np 1738 974 a 1738 371 li st 3 setlinewidth +np 1753 431 a 1738 371 li 1723 431 li st 3 setlinewidth +np 1738 975 a 1759 961 li st 3 setlinewidth np 1781 946 +a 1802 932 li st 3 setlinewidth np 1824 917 a 1845 903 +li st 3 setlinewidth np 1867 888 a 1888 874 li st 3 setlinewidth +np 1911 860 a 1932 846 li st 3 setlinewidth np 1954 831 +a 1975 817 li st 3 setlinewidth np 1997 802 a 2018 788 +li st 3 setlinewidth np 2040 773 a 2061 759 li st 3 setlinewidth +np 2083 745 a 2104 731 li st 3 setlinewidth np 2126 716 +a 2147 702 li st 3 setlinewidth np 2170 687 a 2191 673 +li st 3 setlinewidth np 2149 719 a 2191 673 li 2132 694 +li st 4 setlinewidth np [ 4 18.09 ] 0 setdash 2191 673 +a 2191 1163 li st [] 0 setdash [] 0 setdash 4 setlinewidth +np [ 4 18.13 ] 0 setdash 2191 1163 a 1738 974 li st [] 0 setdash +[] 0 setdash 2239 650 a Fq(\026)2229 673 y(\012)1323 +1352 y Fo(i)2342 975 y(j)1776 371 y(k)p 3 setlinewidth +np 2009 817 82 94.40 237.53 arc st 3 setlinewidth np +1940 910 a 2002 899 li 1943 880 li st 0 1548 a Fq(Then)28 +b(Euler's)g(appro)m(ximation)h(of)g(a)h(rotation)g(o)m(v)m(er)g(\001)p +Fo(t)f Fq(seconds)g(is)g Fo(q)2462 1562 y Fh(r)2525 1548 +y Fq(=)2631 1525 y(\026)2621 1548 y(\012)14 b(sin)o(\()p +Fo(!)s Fq(\001)p Fo(t=)p Fq(2\))19 b(+)f(cos)q(\()p Fo(!)s +Fq(\001)p Fo(t=)p Fq(2\).)41 b(F)-8 b(or)0 1661 y(\001)p +Fo(t)30 b Fq(su\016cien)m(tly)f(small,)g(cos)q(\()p Fo(!)s +Fq(\001)p Fo(t=)p Fq(2\))d Fl(\031)f Fq(1)31 b(and)f(sin)n(\()p +Fo(!)s Fq(\001)p Fo(t=)p Fq(2\))c Fl(\031)f Fo(!)s Fq(\001)p +Fo(t=)p Fq(2,)31 b(so)g Fo(q)2713 1675 y Fh(r)2781 1661 +y Fq(ma)m(y)g(b)s(e)f(appro)m(ximated)g(as)1576 1892 +y Fo(q)1617 1906 y Fh(r)1680 1892 y Fl(\031)25 b Fq(1)c(+)1932 +1773 y Fi(\022)2004 1830 y Fo(!)s Fq(\001)p Fo(t)p 2004 +1871 169 4 v 2065 1954 a Fq(2)2182 1773 y Fi(\023)2268 +1869 y Fq(\026)2258 1892 y(\012)0 2117 y(Th)m(us)1239 +2325 y Fo(q)1280 2340 y Fh(b)1314 2325 y Fq(\()p Fo(t)g +Fq(+)e(\001)p Fo(t)p Fq(\))83 b(=)g Fo(q)1915 2340 y +Fh(b)1949 2325 y Fq(\()p Fo(t)p Fq(\))2067 2206 y Fi(\022)2129 +2325 y Fq(1)21 b(+)2285 2206 y Fi(\022)2357 2264 y Fo(!)s +Fq(\001)p Fo(t)p 2357 2304 V 2418 2388 a Fq(2)2535 2206 +y Fi(\023)2621 2302 y Fq(\026)2611 2325 y(\012)f(+)g +Fl(\001)15 b(\001)g(\001)2894 2206 y Fi(\023)950 2559 +y Fo(q)991 2574 y Fh(b)1025 2559 y Fq(\()p Fo(t)20 b +Fq(+)g(\001)p Fo(t)p Fq(\))g Fl(\000)g Fo(q)1500 2574 +y Fh(b)1534 2559 y Fq(\()p Fo(t)p Fq(\))83 b(=)g Fo(q)1915 +2574 y Fh(b)1949 2559 y Fq(\()p Fo(t)p Fq(\))2067 2440 +y Fi(\022)2139 2497 y Fo(!)s Fq(\001)p Fo(t)p 2139 2538 +V 2200 2621 a Fq(2)2317 2440 y Fi(\023)2404 2536 y Fq(\026)2393 +2559 y(\012)20 b(+)g Fl(\001)15 b(\001)g(\001)940 2737 +y Fo(q)981 2752 y Fh(b)1015 2737 y Fq(\()p Fo(t)20 b +Fq(+)g(\001)p Fo(t)p Fq(\))g Fl(\000)g Fo(q)1490 2752 +y Fh(b)1524 2737 y Fq(\()p Fo(t)p Fq(\))p 940 2778 688 +4 v 1229 2861 a(\001)p Fo(t)1720 2799 y Fq(=)1874 2680 +y Fi(\022)1945 2737 y Fo(!)p 1945 2778 60 4 v 1952 2861 +a Fq(2)2015 2680 y Fi(\023)2091 2799 y Fo(q)2132 2814 +y Fh(b)2166 2799 y Fq(\()p Fo(t)p Fq(\))2279 2776 y(\026)2269 +2799 y(\012)h(+)f Fl(\001)15 b(\001)g(\001)0 3024 y Fq(W)-8 +b(e)32 b(tak)m(e)g(the)e(limit)e(at)j(\001)p Fo(t)25 +b Fl(!)g Fq(0)31 b(to)g(obtain)978 3171 y Fo(dq)1066 +3186 y Fh(b)p 978 3212 123 4 v 999 3295 a Fo(dt)1136 +3233 y Fq(=)1232 3114 y Fi(\022)1303 3171 y Fo(!)p 1303 +3212 60 4 v 1310 3295 a Fq(2)1373 3114 y Fi(\023)1449 +3233 y Fo(q)1490 3248 y Fh(b)1524 3233 y Fq(\()p Fo(t)p +Fq(\))1637 3210 y(\026)1627 3233 y(\012)25 b(=)1824 3171 +y Fo(!)p 1824 3212 V 1831 3295 a Fq(2)1909 3164 y Fi(\000)1947 +3233 y Fo(q)1988 3248 y Fh(b;)p Fk(4)2087 3210 y Fq(\026)2077 +3233 y(\012)20 b Fl(\000)g Fq(\()7 b(\026)-52 b Fo(q)2330 +3248 y Fh(b)2384 3233 y Fl(\001)2440 3210 y Fq(\026)2430 +3233 y(\012)o(\))21 b Fl(\000)2652 3210 y Fq(\026)2642 +3233 y(\012)f Fl(\002)26 b Fq(\026)-51 b Fo(q)2860 3248 +y Fh(b)2894 3164 y Fi(\001)0 3592 y Fq(where)30 b Fo(x)21 +b Fl(\001)f Fo(y)29 b Fq(=)552 3528 y Fi(P)655 3592 y +Fo(x)707 3607 y Fh(`)740 3592 y Fo(y)785 3607 y Fh(`)848 +3592 y Fq(is)h(the)h(v)m(ector)h(inner)d(\(dot\))j(pro)s(duct)d(and)h +Fo(x)21 b Fl(\002)f Fo(y)29 b Fq(=)2689 3395 y Fi(\014)2689 +3445 y(\014)2689 3494 y(\014)2689 3544 y(\014)2689 3594 +y(\014)2689 3644 y(\014)2689 3694 y(\014)2716 3398 y(2)2716 +3544 y(6)2716 3597 y(4)2836 3462 y Fq(^)2843 3483 y Fo(i)3010 +3462 y Fq(^)3012 3483 y Fo(j)3185 3459 y Fq(^)3182 3483 +y Fo(k)2813 3596 y(x)2865 3610 y Fk(1)2987 3596 y Fo(x)3039 +3610 y Fk(2)3162 3596 y Fo(x)3214 3610 y Fk(3)2817 3709 +y Fo(y)2862 3723 y Fk(1)2991 3709 y Fo(y)3036 3723 y +Fk(2)3166 3709 y Fo(y)3211 3723 y Fk(3)3295 3398 y Fi(3)3295 +3544 y(7)3295 3597 y(5)3350 3395 y(\014)3350 3445 y(\014)3350 +3494 y(\014)3350 3544 y(\014)3350 3594 y(\014)3350 3644 +y(\014)3350 3694 y(\014)3409 3592 y Fq(is)g(the)i(v)m(ector)0 +3815 y(cross)f(pro)s(duct.)40 b(In)30 b(matrix)f(form)h(this)g(is)1011 +3922 y Fi(2)1011 4068 y(6)1011 4118 y(6)1011 4168 y(6)1011 +4221 y(4)1125 3996 y Fq(_)-42 b Fo(q)1149 4011 y Fh(b)p +Fk(1)1125 4109 y Fq(_)g Fo(q)1149 4124 y Fh(b)p Fk(2)1125 +4222 y Fq(_)g Fo(q)1149 4237 y Fh(b)p Fk(3)1125 4335 +y Fq(_)g Fo(q)1149 4350 y Fh(b)p Fk(4)1260 3922 y Fi(3)1260 +4068 y(7)1260 4118 y(7)1260 4168 y(7)1260 4221 y(5)1340 +4166 y Fq(=)1446 4104 y Fo(!)p 1446 4145 V 1453 4228 +a Fq(2)1531 3922 y Fi(2)1531 4068 y(6)1531 4118 y(6)1531 +4168 y(6)1531 4221 y(4)1688 3996 y Fq(0)180 b Fo(!)1970 +4010 y Fk(3)2127 3996 y Fl(\000)p Fo(!)2255 4010 y Fk(2)2377 +3996 y Fo(!)2434 4010 y Fk(1)1628 4109 y Fl(\000)p Fo(!)1756 +4123 y Fk(3)1938 4109 y Fq(0)g Fo(!)2220 4123 y Fk(1)2377 +4109 y Fo(!)2434 4123 y Fk(2)1663 4222 y Fo(!)1720 4236 +y Fk(2)1878 4222 y Fl(\000)p Fo(!)2006 4236 y Fk(1)2188 +4222 y Fq(0)144 b Fo(!)2434 4236 y Fk(3)1628 4335 y Fl(\000)p +Fo(!)1756 4349 y Fk(1)1878 4335 y Fl(\000)p Fo(!)2006 +4349 y Fk(2)2127 4335 y Fl(\000)p Fo(!)2255 4349 y Fk(3)2402 +4335 y Fq(0)2515 3922 y Fi(3)2515 4068 y(7)2515 4118 +y(7)2515 4168 y(7)2515 4221 y(5)2585 3922 y(2)2585 4068 +y(6)2585 4118 y(6)2585 4168 y(6)2585 4221 y(4)2682 3996 +y Fo(q)2723 4011 y Fh(b)p Fk(1)2682 4109 y Fo(q)2723 +4124 y Fh(b)p Fk(2)2682 4222 y Fo(q)2723 4237 y Fh(b)p +Fk(3)2682 4335 y Fo(q)2723 4350 y Fh(b)p Fk(4)2834 3922 +y Fi(3)2834 4068 y(7)2834 4118 y(7)2834 4168 y(7)2834 +4221 y(5)0 4522 y Fq(Notice)31 b(that)g(the)g(4)21 b +Fl(\002)e Fq(4)31 b(matrix)f(is)f(sk)m(ew)i(symmetric)f(\(hence)h(its)e +(matrix)h(exp)s(onen)m(tial)f(is)h(orthogonal\).)0 4806 +y Fp(References)0 5009 y Fq([Mul])127 b(Larry)30 b(Mullins.)37 +b(Course)30 b(4160:)43 b(Quaternions.)c(Course)30 b(notes.)0 +5192 y([R)-10 b(W91])47 b(M.)41 b(H.)g(Rheinfurth)d(and)h(H.)i(B.)g +(Wilson.)70 b(Metho)s(ds)40 b(of)h(applied)d(dynamics.)69 +b(T)-8 b(ec)m(hnical)40 b(Rep)s(ort)337 5305 y(NASA)30 +b(RP-1262,)j(NASA,)e(George)h(C.)e(Marshall)f(Space)h(Fligh)m(t)g(Cen)m +(ter,)h(1991.)p eop +14 13 bop 0 527 a Fp(Index)0 709 y Fq(conjugate)166 821 +y(quaternion,)30 b(3)0 1017 y(Euler)f(angles)166 1130 +y(quaternions,)g(6)0 1326 y(Octa)m(v)m(e)166 1439 y Fj(qinv)p +Fq(,)h(3)166 1552 y Fj(qmult)p Fq(,)f(3)166 1665 y Fj(qtrans)p +Fq(,)g(4)166 1778 y(qtransv,)h(8)166 1891 y(qtransvmat,)h(8)166 +2004 y Fj(quaternion)p Fq(,)d(2)0 2200 y(quaternions)166 +2313 y(as)j(co)s(ordinate)f(rotations,)h(3)166 2425 y(co)s(ordinate)f +(transformation,)g(4)166 2538 y(co)s(ordinate)g(transformation)g +(matrices,)h(6)166 2651 y(cross)g(pro)s(ducts,)e(2)166 +2764 y(de\014nition,)f(2)166 2877 y(deriv)-5 b(ativ)m(es,)30 +b(12)166 2990 y(Euler)f(angles,)h(6)166 3103 y(m)m(ultiplication,)e(2) +166 3216 y(unit)h(quaternions,)g(3)1905 5656 y(14)p eop +end +userdict /end-hook known{end-hook}if diff --git a/scripts/specfun/bessel.m b/scripts/specfun/bessel.m new file mode 100644 --- /dev/null +++ b/scripts/specfun/bessel.m @@ -0,0 +1,39 @@ +## Copyright (C) 1996, 1997 John W. Eaton +## +## This file is part of Octave. +## +## Octave is free software; you can redistribute it and/or modify it +## under the terms of the GNU General Public License as published by +## the Free Software Foundation; either version 2, or (at your option) +## any later version. +## +## Octave is distributed in the hope that it will be useful, but +## WITHOUT ANY WARRANTY; without even the implied warranty of +## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +## General Public License for more details. +## +## You should have received a copy of the GNU General Public License +## along with Octave; see the file COPYING. If not, write to the Free +## Software Foundation, 59 Temple Place - Suite 330, Boston, MA +## 02111-1307, USA. + +## The following functions are available for computing the values of +## Bessel functions: +## +## besselj (alpha, x) Bessel functions of the first kind +## bessely (alpha, x) Bessel functions of the second kind +## besseli (alpha, x) modified Bessel functions of the first kind +## besselk (alpha, x) modified Bessel functions of the second kind +## +## X must be a real matrix, vector or scalar. +## +## If ALPHA is a scalar, the result is the same size as X. If ALPHA is +## a range, X must be a vector or scalar, and the result is a matrix +## with length(X) rows and length(ALPHA) columns. +## +## ALPHA must be greater than or equal to zero. If ALPHA is a range, it +## must have an increment equal to one. + +function bessel () + error ("bessel: you must use besselj, bessely, besseli, or besselk"); +endfunction