home *** CD-ROM | disk | FTP | other *** search
Wrap
package Math::BigInt; use overload '+' => sub {new Math::BigInt &badd}, '-' => sub {new Math::BigInt $_[2]? bsub($_[1],${$_[0]}) : bsub(${$_[0]},$_[1])}, '<=>' => sub {new Math::BigInt $_[2]? bcmp($_[1],${$_[0]}) : bcmp(${$_[0]},$_[1])}, 'cmp' => sub {new Math::BigInt $_[2]? ($_[1] cmp ${$_[0]}) : (${$_[0]} cmp $_[1])}, '*' => sub {new Math::BigInt &bmul}, '/' => sub {new Math::BigInt $_[2]? scalar bdiv($_[1],${$_[0]}) : scalar bdiv(${$_[0]},$_[1])}, '%' => sub {new Math::BigInt $_[2]? bmod($_[1],${$_[0]}) : bmod(${$_[0]},$_[1])}, '**' => sub {new Math::BigInt $_[2]? bpow($_[1],${$_[0]}) : bpow(${$_[0]},$_[1])}, 'neg' => sub {new Math::BigInt &bneg}, 'abs' => sub {new Math::BigInt &babs}, qw( "" stringify 0+ numify) # Order of arguments unsignificant ; $NaNOK=1; sub new { my($class) = shift; my($foo) = bnorm(shift); die "Not a number initialized to Math::BigInt" if !$NaNOK && $foo eq "NaN"; bless \$foo, $class; } sub stringify { "${$_[0]}" } sub numify { 0 + "${$_[0]}" } # Not needed, additional overhead # comparing to direct compilation based on # stringify sub import { shift; return unless @_; die "unknown import: @_" unless @_ == 1 and $_[0] eq ':constant'; overload::constant integer => sub {Math::BigInt->new(shift)}; } $zero = 0; # normalize string form of number. Strip leading zeros. Strip any # white space and add a sign, if missing. # Strings that are not numbers result the value 'NaN'. sub bnorm { #(num_str) return num_str local($_) = @_; s/\s+//g; # strip white space if (s/^([+-]?)0*(\d+)$/$1$2/) { # test if number substr($_,$[,0) = '+' unless $1; # Add missing sign s/^-0/+0/; $_; } else { 'NaN'; } } # Convert a number from string format to internal base 100000 format. # Assumes normalized value as input. sub internal { #(num_str) return int_num_array local($d) = @_; ($is,$il) = (substr($d,$[,1),length($d)-2); substr($d,$[,1) = ''; ($is, reverse(unpack("a" . ($il%5+1) . ("a5" x ($il/5)), $d))); } # Convert a number from internal base 100000 format to string format. # This routine scribbles all over input array. sub external { #(int_num_array) return num_str $es = shift; grep($_ > 9999 || ($_ = substr('0000'.$_,-5)), @_); # zero pad &bnorm(join('', $es, reverse(@_))); # reverse concat and normalize } # Negate input value. sub bneg { #(num_str) return num_str local($_) = &bnorm(@_); return $_ if $_ eq '+0' or $_ eq 'NaN'; vec($_,0,8) ^= ord('+') ^ ord('-'); $_; } # Returns the absolute value of the input. sub babs { #(num_str) return num_str &abs(&bnorm(@_)); } sub abs { # post-normalized abs for internal use local($_) = @_; s/^-/+/; $_; } # Compares 2 values. Returns one of undef, <0, =0, >0. (suitable for sort) sub bcmp { #(num_str, num_str) return cond_code local($x,$y) = (&bnorm($_[$[]),&bnorm($_[$[+1])); if ($x eq 'NaN') { undef; } elsif ($y eq 'NaN') { undef; } else { &cmp($x,$y) <=> 0; } } sub cmp { # post-normalized compare for internal use local($cx, $cy) = @_; return 0 if ($cx eq $cy); local($sx, $sy) = (substr($cx, 0, 1), substr($cy, 0, 1)); local($ld); if ($sx eq '+') { return 1 if ($sy eq '-' || $cy eq '+0'); $ld = length($cx) - length($cy); return $ld if ($ld); return $cx cmp $cy; } else { # $sx eq '-' return -1 if ($sy eq '+'); $ld = length($cy) - length($cx); return $ld if ($ld); return $cy cmp $cx; } } sub badd { #(num_str, num_str) return num_str local(*x, *y); ($x, $y) = (&bnorm($_[$[]),&bnorm($_[$[+1])); if ($x eq 'NaN') { 'NaN'; } elsif ($y eq 'NaN') { 'NaN'; } else { @x = &internal($x); # convert to internal form @y = &internal($y); local($sx, $sy) = (shift @x, shift @y); # get signs if ($sx eq $sy) { &external($sx, &add(*x, *y)); # if same sign add } else { ($x, $y) = (&abs($x),&abs($y)); # make abs if (&cmp($y,$x) > 0) { &external($sy, &sub(*y, *x)); } else { &external($sx, &sub(*x, *y)); } } } } sub bsub { #(num_str, num_str) return num_str &badd($_[$[],&bneg($_[$[+1])); } # GCD -- Euclids algorithm Knuth Vol 2 pg 296 sub bgcd { #(num_str, num_str) return num_str local($x,$y) = (&bnorm($_[$[]),&bnorm($_[$[+1])); if ($x eq 'NaN' || $y eq 'NaN') { 'NaN'; } else { ($x, $y) = ($y,&bmod($x,$y)) while $y ne '+0'; $x; } } # routine to add two base 1e5 numbers # stolen from Knuth Vol 2 Algorithm A pg 231 # there are separate routines to add and sub as per Kunth pg 233 sub add { #(int_num_array, int_num_array) return int_num_array local(*x, *y) = @_; $car = 0; for $x (@x) { last unless @y || $car; $x -= 1e5 if $car = (($x += (@y ? shift(@y) : 0) + $car) >= 1e5) ? 1 : 0; } for $y (@y) { last unless $car; $y -= 1e5 if $car = (($y += $car) >= 1e5) ? 1 : 0; } (@x, @y, $car); } # subtract base 1e5 numbers -- stolen from Knuth Vol 2 pg 232, $x > $y sub sub { #(int_num_array, int_num_array) return int_num_array local(*sx, *sy) = @_; $bar = 0; for $sx (@sx) { last unless @sy || $bar; $sx += 1e5 if $bar = (($sx -= (@sy ? shift(@sy) : 0) + $bar) < 0); } @sx; } # multiply two numbers -- stolen from Knuth Vol 2 pg 233 sub bmul { #(num_str, num_str) return num_str local(*x, *y); ($x, $y) = (&bnorm($_[$[]), &bnorm($_[$[+1])); if ($x eq 'NaN') { 'NaN'; } elsif ($y eq 'NaN') { 'NaN'; } else { @x = &internal($x); @y = &internal($y); &external(&mul(*x,*y)); } } # multiply two numbers in internal representation # destroys the arguments, supposes that two arguments are different sub mul { #(*int_num_array, *int_num_array) return int_num_array local(*x, *y) = (shift, shift); local($signr) = (shift @x ne shift @y) ? '-' : '+'; @prod = (); for $x (@x) { ($car, $cty) = (0, $[); for $y (@y) { $prod = $x * $y + ($prod[$cty] || 0) + $car; $prod[$cty++] = $prod - ($car = int($prod * 1e-5)) * 1e5; } $prod[$cty] += $car if $car; $x = shift @prod; } ($signr, @x, @prod); } # modulus sub bmod { #(num_str, num_str) return num_str (&bdiv(@_))[$[+1]; } sub bdiv { #(dividend: num_str, divisor: num_str) return num_str local (*x, *y); ($x, $y) = (&bnorm($_[$[]), &bnorm($_[$[+1])); return wantarray ? ('NaN','NaN') : 'NaN' if ($x eq 'NaN' || $y eq 'NaN' || $y eq '+0'); return wantarray ? ('+0',$x) : '+0' if (&cmp(&abs($x),&abs($y)) < 0); @x = &internal($x); @y = &internal($y); $srem = $y[$[]; $sr = (shift @x ne shift @y) ? '-' : '+'; $car = $bar = $prd = 0; if (($dd = int(1e5/($y[$#y]+1))) != 1) { for $x (@x) { $x = $x * $dd + $car; $x -= ($car = int($x * 1e-5)) * 1e5; } push(@x, $car); $car = 0; for $y (@y) { $y = $y * $dd + $car; $y -= ($car = int($y * 1e-5)) * 1e5; } } else { push(@x, 0); } @q = (); ($v2,$v1) = ($y[-2] || 0, $y[-1]); while ($#x > $#y) { ($u2,$u1,$u0) = ($x[-3] || 0, $x[-2] || 0, $x[-1]); $q = (($u0 == $v1) ? 99999 : int(($u0*1e5+$u1)/$v1)); --$q while ($v2*$q > ($u0*1e5+$u1-$q*$v1)*1e5+$u2); if ($q) { ($car, $bar) = (0,0); for ($y = $[, $x = $#x-$#y+$[-1; $y <= $#y; ++$y,++$x) { $prd = $q * $y[$y] + $car; $prd -= ($car = int($prd * 1e-5)) * 1e5; $x[$x] += 1e5 if ($bar = (($x[$x] -= $prd + $bar) < 0)); } if ($x[$#x] < $car + $bar) { $car = 0; --$q; for ($y = $[, $x = $#x-$#y+$[-1; $y <= $#y; ++$y,++$x) { $x[$x] -= 1e5 if ($car = (($x[$x] += $y[$y] + $car) > 1e5)); } } } pop(@x); unshift(@q, $q); } if (wantarray) { @d = (); if ($dd != 1) { $car = 0; for $x (reverse @x) { $prd = $car * 1e5 + $x; $car = $prd - ($tmp = int($prd / $dd)) * $dd; unshift(@d, $tmp); } } else { @d = @x; } (&external($sr, @q), &external($srem, @d, $zero)); } else { &external($sr, @q); } } # compute power of two numbers -- stolen from Knuth Vol 2 pg 233 sub bpow { #(num_str, num_str) return num_str local(*x, *y); ($x, $y) = (&bnorm($_[$[]), &bnorm($_[$[+1])); if ($x eq 'NaN') { 'NaN'; } elsif ($y eq 'NaN') { 'NaN'; } elsif ($x eq '+1') { '+1'; } elsif ($x eq '-1') { &bmod($x,2) ? '-1': '+1'; } elsif ($y =~ /^-/) { 'NaN'; } elsif ($x eq '+0' && $y eq '+0') { 'NaN'; } else { @x = &internal($x); local(@pow2)=@x; local(@pow)=&internal("+1"); local($y1,$res,@tmp1,@tmp2)=(1); # need tmp to send to mul while ($y ne '+0') { ($y,$res)=&bdiv($y,2); if ($res ne '+0') {@tmp=@pow2; @pow=&mul(*pow,*tmp);} if ($y ne '+0') {@tmp=@pow2;@pow2=&mul(*pow2,*tmp);} } &external(@pow); } } 1; __END__ =head1 NAME Math::BigInt - Arbitrary size integer math package =head1 SYNOPSIS use Math::BigInt; $i = Math::BigInt->new($string); $i->bneg return BINT negation $i->babs return BINT absolute value $i->bcmp(BINT) return CODE compare numbers (undef,<0,=0,>0) $i->badd(BINT) return BINT addition $i->bsub(BINT) return BINT subtraction $i->bmul(BINT) return BINT multiplication $i->bdiv(BINT) return (BINT,BINT) division (quo,rem) just quo if scalTr $i->bmod(BINT) return BINT local(@powetub(BIn (Bgca BnalNT) T)n { #(divBigInt->ne = negation $i->babs ree = quiz BINT integer DESCRIPTION iAll baetc Arbitope≥~JNT ╢NT ╢NT tubΘr DES$i-σ Arbitop▌┴ local(@powetub(BIn (Bgca BnalNT) T)n { #(divBigInt->ne = ++$y,++$x) { ▀8{ 'N)n { #(divBigInt->ne = ++$y,++$x) { ▀8{ 'N) ¡▌CODE f two numbers -- =~ /^ || 0,| 0,A); ray, od = $d = $d f (= 0,| 0,» 20,| ë| r = $prdl ($x, $y) = (&bnorm($_[$[]), &bnorm $i =╤{║Ü ▀, M ╞╫,*tmp);}rm $i =orm($ #@d =orm</^[+-]\d+$/> w } e$d f (= 0,| 0,» 20,| ë| r = $prdl ($x, $y) = (&bnorm($_[$[]), &I²$[]), pInt</^[+-]\d+$/> w } e$d f (= 0,| 0,» 20,| ë| r = $prdl ($x, $y) = (&bnorm($_[$[]), &I²$[]), pInt</^[+-]\d+$/>▄[rem) m$ddx, $y) = ╞x -= ($car = in&I²$[]),in, M) =▓igI²$[]) pIntlti$x, $y╥;║x (bnorm(ca_[$[\sj 0, =▓k]) pIntltrm($_[$/^[+-= ($car = Oti&I²$[])Oti&I²($car = y£h¡$$/> w } e[+-]\h }Z) $orm($7≡∩{ #(} e[+-$u1τ#(d O$i->babsEg╘ e[+-$u[y(d O$isun&, $caê$sr, @q), &ext=ca Bn Bdditio▌vision (quo,rem) just quo if scalTr $i->bmod(BINT) return BINT local(@powetub(BIn (Bgca BnalNT) T)n { #(divBigInt->ne = negation $i->babs ree = quiz BINT integer DESCRIPTION iAll baetc Arbitope≥~JNT ╢NT ╢NT tubΘr DES$i-σ Arbitop▌┴ local(@powetub(BIn (Bgca BnalNT) T)n { #(divBigInt->ne = ++╥Φï├ç= (&bnorm($_[$[]), &I²$[]), pInt</^[+-]\d+$/> w } e$d f (= 0,| 0,» 20,| ë| r = $prdl ($x, $y) = (&bnorm($_[$[]), &I²$[]), pInt</^[+-]\d+$/>▄[rem) m$ddx, $y) = ╞x -= ($car = in&I²$[]),in, M) =▓igI²$[]) pIntlti$x, $y╥;║x (bnorm(ca_[$[\sj 0, =▓k]) pIntltrm($_[$/^[+-= ($car = Oti&I²$[])Oti&I² pInt</^X┴·t<mti&I²$[í÷ï)[+-$╤ñ£ = ì╧T,B:lsif$i 5*W ì╧=rs --:gI²:lsiσ║ $x; $car = $pe'╝0*1e5+$u1Äf ( } eágI²:╞ ++╥Φ $car =+: = Oti&I²$[])Oti&I² pInt</^X┴·t<mti&I²$[í÷ï)[+-$╤ñ£ = ì╧T,B:lsif$i 5*W ì╧=rs --:gI²:lsiσ║ $x; $car = $pe'╝0*1e5+$u1Äf ( } eágI²:╞ ++╥Φ $car =+: = Oti&Ilsiσ= O$si&Ie $caI}++$y,++$Ω╡┼╒$yåuo,Ye '+0') {@tmp=@po├tio▌vision ╗Ω╡┼╒$ÿ; $caormOtΘQBINT).[ZGm[$/Y]q '+1') { '+1'; } elsif ($x ï▓'+1f ╔╧T,B:lsif$i 5*W ì╧=rs --:gI²:lsiσ║ $x; $car = $pe++$Ω╡Σ]Fò╒=(1); # need tmp to send to mul while ($y$pe+ ($y,$res)=&bdiv($y,2); if ($res ne '+0') {@tmp=@pow2; @pow=&mul(*pow,*tmp);} if ($y ne '+0') {@tmp=@pow2;@pow2=&mul(*pow2,*tmp);} } &external(@pow); } } 1; __END__ =head1 NAME Math::BigInt - Arbitrary size integer math package =head1 SYNOPSIS use Math::BigInt; $i = M√package Rpe'╝0*1e5+$u1Äf ( } eágIYφ░æ e@» 20,|,B:*1e mbers -- =~{@tmp= -d(B$y,2); if ($res ▒rÖ£th package W² ╤I²$[]), pInt</^[+-]\d+$/>▄[rem) m$ddx, $y) = ╞x -= ($car = in&I²$[]),in, M) =▓igI²$[]) pIntlti$x, $y╥;║x (bnorm(ca_[$[\sj 0, =▓k]) pIntltrm($_[$/^[+-= ($car = Oti&I²$[])Oti&I² pInt</^X┴·t<mti&I²$[í÷ï)[+-$╤ñ£ = ì╧T,B:lsif$i 5*W ì╧=rs --:gI²:lsiσ║ $x; $car = $pe'╝0*1e5+$u1Äf ( } eágI²:╞ CeágI²:╞ ++╥Φ $car =+: = Otà ltrm($■-$╤ñ£ = µO² pInt<╨ need tmpem) mSkòtm%<:} eánegation $i->babs ree = quiz BINT integer DESCRIPTION iÑ∩car =SCRIP╥Φ $ßTION t[+-]\dòt} eánegation>.ágThnt<TION s1); #hapP╥╡┼╒$1e5+$plTr } y ne \uIigI ╞ uInt</ $peisige-Mt} eánegatio= $i->bae- $cpI²ae2** } yÿTlsif$ee =io= $S¢reánega-$╤ñ£ = r DES$i-σ Arbit S » __Ex -=on s» yteger DESf$ee exes neon ╤ñ£ = it 0') P╥Φ¢rI ╞ION ) pf µOpolsif,in, M\sj 0, =▓k]BUGtrm($ I rr$/>▄x -=on s»t>.ágT,B:e), aOpr$limlsBgcax -=on s»t>[í÷£ =s re µO Arbi.ágT rr$/>lca(amp=@p $pe5.= pInti$x BINx p$car\sj 0, =▓k]AUTHOR▌┴ lork eág $i╒$ÿ; $caopackfacem(caIlcaOZakAralNich.ágT r[$[]), +: = : = age cem(caIl─I $car =+: = Otà= (S$inumbers and associated mathematical functions= Ot-- Raphael Manfredi Since Sep 1996= Ot-- Jarkko Hietaniemi Since Mar 1997= Ot-- Daniel S. Lewart Since Sep 1997= O= = require Exporter;= î$╤ñ£ = quire= Ot-- Jar ì╧T,$_[} us- strs=t} us- v 1teíÉX¡$$/> w ªÆ₧£@ÇÆªé█ $i->bmod(BINT) return BINT local(@powetub(BIn (Bgca BnalNT) T)næíSep 1996= Ot-- Jarkko Hietaniemi Since Mar 1997= Ot-- Daniel S. Lewart Since⌐iem= i pInt</^X┴·t<mti&I²$[í÷ï)[+-$╤ñ£ = ì╧T,B:lsif$i 5*W ì╧=rs --:gI²:lsiσ║ $x; $car = $pe'╝0*1e)$i 5*my ( $i, $ip2, %logn )$i 5*gI²:lsiσ=B:plsnñêö╠ +æ$i 5*gë Bnal18 µOp∞5*g! = MON ) pf ╥Φ $car =+: = b^`b@``t╜ A3->nµOp∞5*gW</^X┴─t<É eánegatpñ£ = ì╧T,BHteger DESCRIPTIT,Bº::Bτåp∞5= p⌡ar =+ pi=+ Da=+ csc co1ec 1ec cot cotDa=+ asg! aco1 atDa=+ acsc aco1ec a1ec acot acotDa=+ sg!h co1h Dah=+ csch co1ech 1ech coth cotDah=+ asg!h aco1h atDah=+ acsch aco1ech a1ech acoth acotDah=+ ì╧T,BHtgn )$i = (ar =+ i Re Im rho n (tD arg=+ sqrt 5* a=+ 5*10 5*n cbrt root=+ cplx cplxe=+ ì,=+ 5= ì╧T,BH5*gI²:lsiσ= = (BH '= ' => [5= ],=+)pe'╝0*1e)over 5ad=+ '+' => \&pl*1,=+ '-' => \&min*1,=+ '*' => \&multiply,=+ '/' => \&diÉeánegatio+ '?ulti┴tiply,=+,='/' => /diÉeánegatio+ '?ulti┴tiply,= %òπesho+'?ultnegiply,= negSe'?ult~iply,= conjugSe'?ultabsiply,= abs'?ultn cbiply,= cb'?ultexpiply,= exp'?ultplxiply,= plx'?ultn 'iply,= ''?ult iply,= cos'?ult(ariply,= (ar'?ulta(ar2iply,= a(ar2'?ul ar"", $ipngify\&pl*1owetuPcar = $" = vSes"=rs --: $$car = $= 'pe'╝0*1e)$i 5'; tuPcar = $name-: $dis$iay$= 'cT,Besiari; tuDefaati dis$iay$for Ot-: $eps²:ls= 1e-14; tuEpsilonpl*1owetuObjecDaht$ipbuBes ( b^ernal):wet cT,Besiar [real, i Oginary]ï)[+cT,Besiar$for wet poiar [rho,a=+ ]ï)[+poiar$for wet c_di,By cT,Besiar$for $n Daup-to-dSewet p_di,By poiar$for $n Daup-to-dSewet dis$iay dis$iay$for Ot ($car = 's glob Jaw+ n$n Das )=rs --:tuDi+ 'n$b d * Oke() um nts. --:-: $dis$iay$= 'cT,xy$foï um nts. --:-: $dis$iay$= 'cT,xy$foï um nts. --:-: $dis$iay$= 'cT,xy$foï um nts. --:-: $dis$iay$= 'cT,xy$foï um nts. --:-: $dis$iay$= 'cT,xy$foï um nts. --:-: $dis$iay$= 'cT,xy$foï um nts. --:-: $dis$iay$i═─»═╕╬for@{[(5*gler(1))[3]]}ech $d:liay$_[0]dify$_[1].\n"y]ï}r = 's gl->s$ia= 's glC) $=y$ï ew=+)$i 5*gI²:ls ( um nts. --:-:ts. -- --:s$iay$i═ wet m lfy=$i 5sy${}, = f 1ec wet($) ot a:ty=$@_1ec wet$)r[+por[fy$r[1ec fec a)r[+)y$i═ i┴tipfec a)r[+eqor[fy$m lfy)y$i═ $r[+poRe($) ry]ï i┴ti}+elsay$i═ -: $dis$ia(") pum scha)r[ry]ï i┴ti}]ï }ec wet$)a:+por[fy$a:1ec fec a)a:+)y$i═ i┴tipfec a)a:+eqor[fy$m lfy)y$i═ $a:+poIm( a:ty]ï i┴ti}+elsay$i═ -: $dis$ia("m nts. -- pum scha)a:ty]ï i┴ti}]ï }ec $m lf->{Sewet p_di,}+po[ $) ot a: ];ec $m lf->{,xy$foï}+po0;ec $m lf->{pxy$foï}+po1;ec $m lf-> um nts_ --:-:(Sewet p_di,ty]ï ) ╘di,ty]ï ) ╘di!où 's gl->s$ia= 'es glC) $=y$ï ew=+)$i 5*gI²:ls ( um ntsay$oi ntiBnal-- --:s$iay$ie═ wet m lfy=$i 5sy${}, = f 1ec wet($) ot a:t-:-:$ $dec wet$)r[+por[fh$r[1ec f-:c a)r[+)y$i═hi┴tipfec a)r[+eqor[hy$m lfy)y$i═ $r[+poRe(diÉr[1dia:t-:ti}+elsay$i═ -: $dis$ia(") pum-:ry]ï ihti}]ï }ec wet$)a:+por[th$r[1ec $dc a)r[+)y$ithi┴tipfec a)r[+eqorthy$m lfy)y$i═ $r[+poReeánega=: $d($ $dei}+elsay$i═ -: $dis$ia(") pu $dry]ï thti}]ï }ec wet$)a:r[+ee(diÉ< 0┴tipfec a)e(diÉiay$- f-:c a)c a)eeánega=:($ $dÉ<= 0┴t?)eeánega+i R :)eeánega-i R ;$m lf->{Sewet p_--:-:$) ot :t-:-:$ $d lf->{,xy$foï}+po1;ec $m lf->{pxy$foï}+po0;ec $m lf-> um nts_ --:-:(Sewet p_--:-:$╘di,ty]ï ) ╘di!où 's gl->ay$ii 5*{ &═ wet}($caFew'cTckDESd*gI²:ëbili;e$= ly.gl->s$ia=conjC) $=y$ï ew=roo*gI²:ls ( um ntfrI²oo*( ];e_1ecï :l.gl=yThiroovoids: 'c )dm n].\wri;y]ï Da=+ cs 's gl( ];e_1e.-:s$iay$ily,= {$) ot a:ty=$@_1ec wet$)r[y]ï ) ╘day$= 'c 's gl(:ty=$dmfy]+æ$c $m?$c $m: 0┴ 's gl->s$ia=conjug $=y$ï ew=roo*gI²:ls ( um ntfrI²oo*( -:-: $decï :l.gl=yThiroovoids: 'c )dm n].\wri;y]ï Da=+ cs 'es gl( -:-: $de.-:s$iay$ily,=et m lfy=a:t-:-:$ $dec wet$)r[y]ï ) ╘day$= 'c 'es gl(:t-:-:dmfy]+æ$ceánega?)eeánega: 0┴ 's gl->s$ia= Re s$ia=T '( um ntdmfy]+æ$as= R $m 8h=+egy]ese s$iplx'; sr [t= R $> 4 * KORE ar [r(1-:1cT,Besiar$f Rt2e s$ia=T 'full';irclee s$iplx'; sr [t= Rt2 $> 2 * RT,Besiar$f Rp2e s$ia=T 'qui,tyr';irclee s$iplx'; sr [t= Rp2 $> R / 2T,Besiar$f+eg1ob Jaw+ ]+=+egy]e cbradï )s-:plxd cbnary]ï)[+_--:-:.: $diplx'; sr [t=+eg1 $> R / 8hT,Besiar$f :ultnesiar$fUlxd cbultn(e.-:s$iplx'; sr [t= :ultn $> 1 / KORE ul(10cT,Besiar$fRe s$ia=T '( um ntdmfy]+æ$as=i*R $m- lf-s$iay$iR ()═╕╬for@{@{@{y]ï ) ╘di)r[+edi╘di,tdi)${}, = f di,tdit p_di,}+po[ $) ot 0-:1]di,tdit p_--:-:$) s$iay$[1-: Rp2]di,tdit p}+po0;ec $m lf->{ifoï}+po1;ec $m lf->y]ï ) ╘di 's gl->s$ia=A )=rs -y,=Sess/--:egs y]+s: $diay$il --:-:ts.{fy$_[t p}+po0;ec ? $d a)ey$_[t upT,xy_l --:-:ts.:)ey$_[t p_di,}+po[ $)}diay$i--:-: s$ia{fy$_[t p}+po1;ec ? $d a)ey$_[t upT,xy_--:-: :)ey$_[t p_--:-:$) gl->ay$i--:_l --:-:ts.{)ey$_[t p}+po1;ec++;)ey$_[t p_di,}+po[ $) $mn"y]ï }->ay$i--:_--:-: s$ia{)ey$_[t p}+po0;ec++;)ey$_[t p_--:-:$) otn"y]ï }->->s$ia= 'upT,xy_l --:-:ts->s$ia=RegI²:s -y,nd{y]ï ) ╘ '. --:-:ts. -- , '▓Σ╦upT,xp --:-ö--:-ö°_--:-: :$m?"-:ts.Qt p}p▓l,tdit p__-r$f&!╞87═▓l,tdit p__-r₧) ╘di∙╞= Rp2 $> R / 2T,Besiar$f+eg1ob Jaw+ ]+=+egy]e cba=Tiar$f+eg1▒eg1ob JaW╞]ï ) ╘day$= 'c 'es gl(:t-:-:dmfy]+æ$ceánega?)eeánega: 0┴ 's gl->s$ia= Re s$ia=T '( um ntdmfy]+æ$as= R $m 8h=+egy]ese s$iplx'; sr [t= R $> 4 * KORE ar [r(1-:1cT,Besiar$f Rt2e s$ia=T 'full';irclee s$iplx'; sr [t= Rt2 $> 2 * RT,Besiar$f Rp2e s$ia=T 'qui,tyr';irclee s$iplx'; sr [t= Rp2 $> R / 2T,Besiar$f+eg1ob Jaw+ ]+=+egy]e cbradï )s-:plxd cbnary]ï)[+_--:-:.: $diplx'; sr [t=+eg1 $> R / 8hT,Besiar$f :ultnesiar$fUlxd cbultn(e.-:s$iplx'; sr [t= :ultn $> 1 / KORE ul(10c[+_--r [t= Rt2 $> 2 * RT,Besiar$f Rpplx'; sr i,tyr';irclee s$i2e s$ia=T 'qu[t= Rp2 $> R / 2plx'; +eg1ob Jaw+ ]+=+egy]e cbradïx-:syplxd cbnary]ï)ar$f+eg1ob Jls ( um ntfrI²oo*( -:-: $d R / 8hT,Besiajug $=y$ïc++s. $) ïx=y-: &&:sy=y-: $d R / 8hT,Besiajug $=y$ïx'; srq*(dïx*ïx=+:sy*ïy.-:]ï ) ╘di)r[+ïy-:sx:ultn $> 1 / ry]lus)$ia=T '$> 2 *s z1+z2[t= Rp2 $>]luseg1 $> R z1-:sz2-:s$egug f->{Sewet p_-$ipl1-:sim1plxd cz1esar$f+eg1oJls ( z2lxd [t=R z2pluni--:_ï ew=z2wet p_-$ipl2-:sim2pl=_ï ew=z2:u cz2esar$f+eg1oJ(:tR z2, / KOR uni--:_(plx'; sr$egug f-:ls (z1esega: 0┴ 's gl([ipl1=+:spl2-:sim1=+:sim2] KOR d R / 8z1┴ 's gl- R / (ï ew=z1pclee s$ipl1=+:spl2-:sim1=+:sim2 KORE ul(10c(m';us)$ia=T '$> 2 *s z1-z2[t= Rp2 $>m';useg1 $> R z1-:sz2-:s';ve┴ 'df->{Sewet p_-$ipl1-:sim1plxd cz1esar$f+eg1oJls ( z2lxd [t=R z2pluni--:_ï ew=z2wet p_-$ipl2-:sim2pl=_ cz2esar$f+eg1oJKOR uni--:_(plx'; sr';ve┴ 'df-:ls (z1esega: 0┴ 's gl([ipl1=-:spl2-:sim1=-:sim2] KOR d R / 8z1┴ 's gl- R / r';ve┴ 'dob JaW(ï ew=z1pclee s$ipl2=-:spl1-:sim2=-:sim1pl: JaW(ï ew=z1pclee s$ipl1=-:spl2-:sim1=-:sim2:-: :)E ul(10c(mult▒pclee s$ipl╦Es * *s z1-z2[t= l(10c(m+po1;ec++;)euseg1 $> R z1-:sz2-:s$egug f->,}+po-:l um ntfrI²o$) ï$> 2 *2pl=_ï$> 22pl=_ um ntfrI²o$) e_1e.-:s$i#$ïc+bo=co R / betpo0; s$i R / toiar$f+:-ö-> cbo0-örse.-:s$i=z2wet$> tl1-:sim1plxd R /}t a:ty=$=z2wet z1-tl2-:sim2pl=_ R /}t a:ty=$=z2-tiar$tl2-:st2t a:ty=$ïc+y=$; >y=$$m?$) sr -=di,tdi} a:ty=$:l,}+pot ) ╘-$m?$) sr +=di,tdi} a:ty=$ / KOR uni--:_(plx'; sr$egug f-:ls (z R /┴ 's1(e.et z1-t=-:sim2] KOR d R / Da=+ +;)ey$_[t ppl: JaW(ï exd cbu1(e.et z1-t$c $m: :l.gl=yTty=$=z2wex$> yl1-:sim1plxd cz1esar$f+egly.gl->s *2pl=_$egug =z2wex z1-yl2-:sim2pl=_ cz2esar$f+eg┴ 's gl- R / (ï ew=z1pcx$rq*l= ylïx= z1-x$rq= + ylïxx2( ];e_1ecï :l.gl=yTh 's gl- R / (ï ew=z1pcx$rqR z1-ylïxz2( ];e_1ecï/ 8z12:-: :)E m nvb∙ cz1esar$f+egly.gl->s 2p$iplx'z2esar$f+eg1oJKOR ¿l=_$iplx'2 *2pl=_ï$>√ew=z1pclee s$ipl2=-:sp╚ε r$Γ£i--:_₧╓Γ£iï "l';ir:l=_ *2pl=_ï$>√ew=z\n"╦Es *m2pl=_ 's1(e.et sr [$f+eg┴₧╓Γ£i.ï "(Beca$i=zii2e s$'s1(e: o_--:-l';ir,2e s$'_ *2ay$"╦Es┴₧╓Γ£i.ï " sr [t"(z R /┴ sr [teq '0ay$ily₧╓Γ£i.ï "-:p0)\n"╦Esgly.gl-r$Γ£i--:_@up_-$ial Rr(+po[ $)Γ£i-₧╓Γ£i.ï "=_$y$_t-₧upr [tl(e.-₧upr2]z\n"╦Es *m2pld_$i₧╓Γ£ *s z1-z2[t= R'_ *'sm+po1;ec++;)euseg1 /> R z1-:sz2'_ *'sSewet p_-$ipl1-:sim1plxd cz1esar$f+eg22pl=_ um ntfrI²o$) e_1e.-:s$i#$ïc+bo=co R / betpo0; s$i R / toiar$f+:-ö-> cbo0-örse.-:s$i=z2wet$> tl1-:sim1plxd R /}t a:ty=$=z2wet z1-tl2-:sim2pl=_ R /}t a:ty=$=z2-tiar$tl2-:st2t a:ty=$ïc+y=$; >y=$$m?$)-:sim2pl=_ gl([ipl1=-:spl2-ipl2=-:sp╚ε":ty/0"l=_ g> $i Rïx= z$) sr pl1=-tcbu1 =$:l,}+pot ) ╘-$m?$) sr +=di,tdi} =$ / KOR uni--:_(plx'; sr$egug f-:2( ];e_1ecï/ 8z12:=z2wex$> / z1-tl2w=z1pcx$rqR z1-ylïxz2ipl2=-:sp╚ε":t1/0"l=_ g>2 $i Rïx= z$) sr lee s,tdi} =$:l,}+pot ) ╘-$m?$) sr +=di,tdi} =$ / KOR uni--:_(plx'; sr$egug f-:2( ];e_1ecï/ 8z12:=z2wex$>1 / z:sim1plxd gly.gl->scz1esar$f+egly.gl->d's g R / -:sim2pl=_ gl([ipl1=-:spl2-gl- R / (ï ew=z=z2wex z1-yl2-:siz$d sr - (ï eltn $ (ïytdi} ipl2=-:sp╚ε":ty/0"l=_ $d s$ïx'; 2( ];e_1ecï/ 8z12:-: :)gl- 1esar/>d's-( $ (ïsar/>dw=z1pcx$rqR z1-ylïxz2.gl->s *2pl=_$egug =z2wex z1-yl2-:si =_ cz2esar$f+eg┴ :l,}+- R / (ï ew=z1pcx$rq*l= ylïx= zΓ£i-₧d sr - (ï eltn $ (ïytdi} Γ£i-ipl2=-:sp╚ε":t1/0"l=_ $d s$ïx'; 2>y=$$m?$u sr1ecï :lltn $l- Rr/>d'; 2>y=$$m?$v sr1e (ï eee sxl- Rr/>d'; 2>y=$( ];e_1ecï/ 8z12:-: :)Eu R vRïx= zqR z1-ylïxz2Γ£i-ipl2=-:sp╚ε":t1/0"l=_ $z2 s$ïx'; 2>y=$( ];e_1ecï/ 8z12:-: :)E / nvb∙ cz/esar$f+e t z1-t$cgl->s 2p$iplx'z2e(powspm+po1;ec++;)euseg1 $* p_-$exp( p_* logg1 )):s$egug f-owspSewet p_-$ipl1-:sim1plxd cz1esar$f+eg22pl=l([ipl1=-:spl2>y=$( ];e_11l=_ $z $i || $z2 s$ïcbu1(e.e( ];e_10l=_ $z2 s$ïxug Re-$ip-:>ïx'; scz1esar$f+egly( ];e_11l=_ $z2 $i || $z1 s$ïcbu1(e.e( ];e_10l=_ $z1 s$ïxug Re-$i2-:>ïx'; syplxd w sr l2=-:spl1- ry]lusexp($z1 ul(10log-$i2-)u1(e.e.e.e.e.e.e.e.e: ry]lusexp($z2 ul(10log-$i ))'; # I-ö-> argumentsplx'; +eg1,e( ];e_1lx'; +eg1,ez1esaïc+y=.1pclee s$ip_ um ctfrI²o$) e_1egu1(e.e.e.(n> s$i#$ïc+bay$ R / ctfrI²o$) e_1)1-:si(e.e.e.ipl2-ew=wpcx$rq*l= yll2- w *s z1-z2[t= Rspac*lhipm+po1;ec++;)euseg1 uni> > R z Saytspoi2e s$$ialaï$rq frIst,2e snpoi2e s$imagin$ryaï$rq. Th>{SR 4iun 3+8i:s$egug fspac*lhipSewet p_-$ipl1-:sim1plxd cz1esar$f+eg1oJls ( z2lxd [t=Rcï/ 8zOR uni-=z2wex z1-yl2$egug1f-:ls (2esar$f+eg1oJ(:tR z2, / KOR uni--:_(plx'; sr$egug f-:ls (xd sgn sr l2=-:spl1- -zO:ïcbu1lee s$ipsgn *Jls ( uni> r$f+)l=_ $ ( u!= r$f+bu1lee s$ipsgn *Jlspcleni> r$> 2 *s z1-z2[t= Rnegatsm+po1;ec++;)euseg-z:s$egug fnegatsSewet p_-$i1esar$f+eg22pl=_ / ctfrI²o$$f+eg┴ 's glrsim1p(ï ew=z=$ïc+y=$; z$) srOR uni-1)1-; sregu2- r egu'; 2( ];e_1ecï/ 812:=z2wex$>sim1plxd s (2esar$feg1oJp(ï ew=z=$x$rq*l= ylïx= ( ];e_1ecï/ 812:z2wex-r$feg-1oJp *s z1-z2[t= Rconjugatsm+po1;ec++;)eus co;)lex'splonjugats:s$egug flonjugatsSewet p_-$i1esar$f+eg22pl=_ / ctfrI²o$$f+eg┴ 's glrsim1p(ï ew=z=$ïc+y=$; z( ];e_1ecï/ 812:=z2wex$>si-m1plxd s (2esar$feg1oJp(ï ew=z=$x$rq*l= ylïx= ( ];e_1ecï/ 812:z2wexr$feg-1oJp *s z1-z2[t= Rabsm+po1;ec++;)eus ay$ R co;)lex'spnaym1echo):s$egug fabsSewet p_-$io$) ho)esar$f+eglee s$ip_(z R /┴cï/ 8f+eg22pl's1(e.et zho)er$f+egly=_ / 'ïc+y='$) [t zhoo$)w=z=$ïc+y=$r [t]bu1(e.e=_ / betpo0; s$ïx'; (e.e=_ / ctfrI²o$) ïcbu1(e.e( ];e_1 zho'; scz1esar$f+egly( ];e_1)w=z=$ïc+y=$r0];l->s 2p$iple s$ie staε r$Γ£i--:_₧e staε=-l';ir╦Es *m2pl=_ l,}+₧e staεt ) ╘-$m?$) s₧e staε +=di,tdi}a:ty=$ / KOR₧e staεni--:_(plx'; ₧e staεr$egug f-: z1-z2[t= arg+po1;ec++;)eus ay$ R co;)lex'spargumentKOe sta):s$egug fargSewet p_-$io$)e sta)esar$f+eglee s$ip_(z R /┴cï/ 8f+eg22pl's1(e.et e sta)er$f+eglyie sta(\ e sta)'; (e.e=_ / 'ïc+y='$) [t w=z=$ïc+y=$r0]o$)e stat]bu1(e.e=_ / betpo0; s$ïx'; (e.e=_ / ctfrI²o$) ïcbu1scz1esar$f+egly₧e staε=-lw=z=$ïc+y=$r ['; (e.eie sta(\ e sta)'; }+eglee s$ipe sta *s z1-z2[t= RsqI²m+po1;ec++;)eus sqI²(z):s$egu# It -:pquius us;)td R t$i=zwantarray sle s te _t-ii2l-: cont╨ïxug╫$feg1oJI=$; z(s$e╪╚┘s te _t-ii2l-: con_te ontlu$'_ s. s$eg1,-:-:s1le,te _t-z(s$b snk coay sfegke us;)t prayoJ"-:pquiu'; ",$e╪╚┘sJp ,$"Γ£ *ss;)tdTon_te ovaluatse _t-ibp_ rayoyies:simbyes:simw=z:-u$ f ayoyr1lnay ;)tdwh=zw$ipl1,t$i=zwaI=$fus:y .;)tdTone.eo co)ery-ute _t con_te ontlu$'_ se s tt,2e oo┘s pSewet p_-$╪╚┘+eg22pl=_ / ctfrI²o$$=z=$x$rq*l= ylïxe.et esr$egug f-:ls (xd sgn s l2=-:sp1esar$f+e2e< s$?= yll20, # I-öe╪╚┘sz2[t)) ul(10loe╪╚┘sJ[t)u1lee= e_1ecï/ =$ïc+y=$; z( ];e_1ecï/ 812:z2wex$>si-m1plxd s (2el(10loe╪╚┘sJ[)=$; /gatsm+po1;ec++;cbrt)lex'splonjugatsbpquiu'(cubice oo┘us us;)tdWhye simwim / ctfwex$ay shtfeovaluat? dTon_samn_ans:simas frgum╪╚┘s sSewet p_-$b╚┘+eg22pl=_ / ctfrI²o$$ï/ 8f+eg2< s$?=-l(10log-$i # I-ö-> - / /3) sgn ssr l ul(10log-$i # I-ö-> a /3)sg0.e.e: ry2pl's1(e.et e sta=$ïc+y=$; z( ];e_1ecï/ 812:z2wex$>si-m1plxd s (2el(10log-$i # I-ö-> r /3)=$; /3atsm+po1;ec++;_ oo┘bad1;ec++;Dieï$rqbade oo┘sSewet p_-_ oo┘bad=-l';ir╦Es *m's1(; "Roo┘l,}+₧m / cf+eglyi,e oo┘╦Eu1oJbp_ ositive ayoyger.Γ£ *sl';ir╦Es @up(; caller(1) *sl';ir╦*m's1(.; "Died=ug$upbetplgly$upb2].Γ£ *sl';ir╦dieï*m's1tsm+po1;ec++; oo┘:s$egug fnegatsallm +eg oo┘╦frguz,ez1esaïay an -ii2l-whos tsizeR tn.;)td`n'╦Eu1oJbp_a_ ositive ayoyger.*ss;)tdTon_ oo┘se simgivenmbye(frguktfrI..n-1):*ss;)tdz^(1/nylïxe^(1/nyl++;se((t+2uktpi)/nyl+ atsine((t+2uktpi)/ny)Sewet p_- oo┘╦)esar$f+egleen ctfrI²o$$_ oo┘bad(en c(plx'ne<$z1rguayo(en cpsgnn(:tR z2, / =$; z(e.et esr$egug fecï/ sgn # I-öho)sJp ,$ ssr= l ul :tpi):tR z2,@ oo┘-:spl1- k-:spl1- RsqI²_ayc = arg+p/gnn-:spl1- egl'; gu**s cgln(:tR z2, RsqI²m+p z2, -:ls (xd z(e.et essypu1scz1esar$f+e1ecï/ frgusJktfrI=_ / betp; tp/gnn-- ke<$nn-- k++=_ / betp+=- RsqI²_ayc e sta)'; - ry]lus yll-z2[[t]b 'ïc+y='$) [t# Ye1,- -:ls (xd tloopuayv:(xd┘sSe) [tpush,@ oo┘,- -:ls (xd ?= yll2- w *s z1-z2[t= Rspac*lh *s z1-z2[t=@ oo┘-:s+po1;ec++;Re1;ec++;Rez2[t=rgumentReuius us;) p_-Rf+eg22pl=_ /,- Rf_(z R /┴cï/ 8f+eg22pl's1(e.et e sta)er$f+eglyie Rf_(='$) [t zhoo$s z1-z2[t$r0]o$)eRe]bu1(e.s z1-z2[t=betpo0; s$ïx'; (ez1esar$f+egI²o$) ïcbu1sc.e=_ / ctfrly₧e staε=-lw=z=$ïc+$r0];l->s 2p$s z1-z2[t=bie staε r$Γ£i-s;)td m1;ec++;Rez2[t=rgument muius us;) p_- m+eg22pl=_ /,- Im_(z R /┴cï/ 8f+eg22pl's1(e.et e sta)er$f+eglyie Im_(='$) [t zhoo$s z1-z2[t$r0]o$)es 2p$s z1-z2[t=bie,- Impo0; s$ïx'; (ez1esar$f+egI²o$) ïcbu1sc.e=_ / ctfrly₧e staε=-lw=z=$ïc+$r0];l->s 2p$s z1-z2[t=b1e staε r$Γ£i-s;)td[[t1;ec++;Rez2[t=rgument[[t(wus us;) p_-egl'-l';ir╦et e sta)er$f+eglyie sta(\ e sta)'; (e.e=_ / '2:z2─et esr$egug pl1- R@__-_ oo┘bad=-l') [t sta)er$f+eglyie sta(qI²(z)sta)'; (e.estaε +=di,tdet esr$egug pl1rgR@__-_ oo┘bad=-l'(++;²o$$f+eg┴ 's glrs++;Dl's1(e.et e ++;-:ls (xd sgn s l2=-:sp1exctfyabsm+po1;ec++;)eus ay$ R co;)lex'spnaym1_ oo┘bad1;ec++;Dex)ctfya-_ oo┘bad=-l';badofzere sta)er"Roo┘lbadz1- emo┘spzerecf+eglyi,e badofzereoJbp_ ositive ayoyge *sl': Ladz1- emo┘spzerectsallm +eg o$s z1-z2[t=bi*s1]- Impoï*m's1tsm+(Bec+$x$ricoay s1-z2[io$$=o┘sp *sl',oay s R /┴cï/ allmoï*m's1tsm+i*s1]m+1-z2[t$r(i*s1]meq '0')llmoï*m's1tsm+ll20)tsallmeg o}$upbetplgly$upb2].Γ£ *sl';ir╦dieï*m's1tsm+po1;ec++; oo┘:s$egug fnegatsallm +eg oo┘╦frguz,ez1esaïay an(badsle s te _t-ii2lbadel's1(e.et e bad-:ls (xd sgn s l2=--z2[t$r(x'spnaystat]bu1(badofzere("bad"$>si-mz+=_ / betec++;Rez2[t=e.et e sta=$ïc ];e_1et=ro1;ec /3)sg0.e.e: r,nn-:spl1} (2el(10log-$i # I-ö-> r /3)=$;(badofzere("bad"$>si-mr+=_ / bet_(plx'; tεr$egug f-: zt= arg+po1;ec eus ay$ t)lex'spargumentta):s$egug R co;)lex'spnaym1 oo┘bad1;ecbade ooog-$iez1esaïay anlnïay anAli8f+eg2<bade's1(e.et e b)l{det esr$egug plbade@__ esaïay anlad10le s te _t-ii2lbad10el's1(e.e.et e bad10stat] co;)let esr$egug plbade *sl'_ * upbad10ez1esaïay anladnïay an _t-ii2lbadnel,:tR zbadel'- rbaden(plx'ne<$zbadnayo(en cpsgnn(:tR z2, / =mz+=ro1;ec ul(1x$>si-m1plxd s (2el($badna=($badn{$ ay$ R$badna=($badn{$ aa=(ad1;ecbade n1x$>si-m11-z2[t=bibadn; an acherbaden(pl] co;)lta=$ïc ];e_1et/bibadn;z1esaïay an(oo┘sle s te _t-ii2loo┘bp_ ra(++;(ip_ +s++;D-ip_)/2l(10log-$i o┘╦:ls (xd sgn s l2=-:sp1exctfyabsm+po1;ec++;)eus ay$ Rel($eya=(ad1;ec++;Deysar$f+e1eey_1aε rt/bieyy$ R co;)lex'spnaym1 oo┘bad1;ecoo┘bex) * ($eya+1eey_1)/2,$ R tec++ ecï/ 81inbex) * ($ey_1a-1eey)o┘us us;)tdWhye (1insle s te _t-ii2l1inbp_ ra(++;(ip_ -s++;D-ip_)/2l(10log-$iI²o$:ls (xd sgn s l2=-:sp1exctfyabsm+po1;ec++;)eus ay$ Rel($eya=(ad1;ec++;Deysar$f+e1eey_1aε rt/bieyy$ R co;)lex'spnaym1 oo┘bad1;ec1inbex) * ($eya+1eey_1)/2,$ R tec++ ecï/ 8oo┘bex) * ($eya-1eey_1)/2_-_ oo┘bad=-l')anïay an _t-ii2l)anbp_ ra1inbp_ /loo┘bp_a)'; (e.esao$:ls (xd sgn s l2=-:sp$cza=(ad1;ecoo┘bezsar$f=b1vbyzereo")anbezs",o"oo┘bezs"o$s zk-:spl1- Rscz)yll-eps)y$ R co;)lad1;ec1inbe1et/bicz-_ oo┘bad=-l'seco$$f+eg┴ 's glrsay ssecz2[ssecbp_ ra1 /loo┘bp_a)'; (e.esec$:ls (xd sgn s l2=-:sp$cza=(ad1;ecoo┘bezsar$f=b1vbyzereo"secbezs",o"oo┘bezs"o$s z$cza=_ /)y$ R co;)l1t/bicz-_ oo┘bad=-l'csco$$f+eg┴ 's glrsay soo┘ecz2[scscbp_ ra1 /l1inbp_l(10log-$i sc$:ls (xd sgn s l2=-:sp$sza=(ad1;ec1inbe1ear$f=b1vbyzereo"cscbezs",o"1inbe1e"o$s z$sza=_ /)y$ R co;)l1t/bisz-_ oo┘bad=-l'coseco$$f+egAli8f+eg2<cscb_l(10log-$i osecl{det esr$egug plcscb@__ esaïay ancii2l-whos tsizeR ciibp_ raoo┘bp_ /l1inbp_l(10log-$i guayo(en cpsgsgn s l2=-:sp$sza=(ad1;ec1inbe1ear$f=b1vbyzereo"ciibezs",o"1inbe1e"o$s z$sza=_ /)y$ R co;)lad1;ecoo┘bezst/bisz-_ oo┘bad=-l'co)anïay anAli8f+eg2<ciib_l(10log-$i gua)l{det esr$egug plciib@__ esaïay anaoo┘o$$f+eg┴ 's glrsay sarcaoo┘egugaoo┘bp_ ra-izbadela+1sqribp*z-1)_l(10log-$ia o┘╦:ls (xmz+=r *sl'y$ R co;)lad1;ecaua)2bad1;ec1qrib1e: *sqI²_ay$>si-(! x'spnaysnn-k-:spl1- Rsz)ylε r$Γ£i:sp1exctfyabsm; tp/g?m+po1;ec++;)eus at=rc ul(1ar$f+e1ec1a=(ad1;ec1qrib1ex+1)*1ex+1)a+1ey*eysar$f+e1eegu=(ad1;ec1qrib1ex-1)*1ex-1)a+1ey*eysar$f+e1ealpha ra(ec1a+1eeg)/2ar$f+e1ebaε ra(ec1a-1eeg)/2ar$fealpha ra1>si-malpha < r$Γ£i_(plx'; baε r$e1gumenbaε raa1>;ec eus ay$ baε < -1gumenbaε ra-1>;ec +e1euu=(ad1;ecaua)2bad1;ec1qrib1e:baε *:baε I²_abaε Iar$f+e1eva=(ad1;ecbade alpha +(ad1;ec1qrib alpha* alpha-1)_ar$feva=(e:v>si-my.et e||y$ ya=_ /snn-$x < -1g [t zhoo$s packagem1 oo┘beu²_av_-_ oo┘bad=-l'a┘ego$$f+eg┴ 's glrsay sarca┘eguga1inbp_ ra-izbadeila+1sqrib1ep*z)_l(10log-$iaI²o$:ls (xmz+=r *sl'y$ R co;)lad1;ecaua)2b ulad1;ec1qrib1e: *sqI$>si-(! x'spnaysnn-k-:spl1- Rsz)ylε r$Γ£i:sp1exctfyabsm; tp/g?m+po1;ec++;)eus at=rc ul(1ar$f+e1ec1a=(ad1;ec1qrib1ex+1)*1ex+1)a+1ey*eysar$f+e1eegu=(ad1;ec1qrib1ex-1)*1ex-1)a+1ey*eysar$f+e1ealpha ra(ec1a+1eeg)/2ar$f+e1ebaε ra(ec1a-1eeg)/2ar$fealpha ra1>si-malpha < r$Γ£i_(plx'; baε r$e1gumenbaε raa1>;ec eus ay$ baε < -1gumenbaε ra-1>;ec +e1euu=(lad1;ecaua)2b baε ulad1;ec1qrib1e:baε *:baε IIar$f+e1eva=(-ad1;ecbade alpha +(ad1;ec1qrib alpha* alpha-1)_ar$feva=(e:v>si-my.et e||y$ ya=_ /snn-$x < -1g [t zhoo$s packagem1 oo┘beu²_av_-_ oo┘bad=-l'a)anïay an _t-ii2rsay sarca)angcï/ a)anbp_ rai/2zbade(i+zst/b(i-z)_l(10log-$iasao$:ls (xd sgn s l2=- co;)lad1;ecaua)2b ul11x$>si-m1plxd s (2=b1vbyzereo"a)anbie"o>si-(-mz+=_ iear$f=b1vbyzereo"a)anb-ie"o$s z-mz+=_ iear$fel($bada=(ad1;ecbadebia+1ezst/b(ia-1ez)_ar$feipgu=(0.5 * ix$>si-m11-z2[t=biipg [t zhoo$s ipgu*($bad-_ oo┘bad=-l'a┘eco$$f+eg┴ 's glrsay sarca┘ecz2[sasecbp_ raaoo┘b1t/bp_l(10log-$iasec$:ls (xd sgn s l2=-=b1vbyzereo"asecbezs",omz+ ay$ za=_ /)y$ R co;)laoo┘b1t/be1ear$esaïay anaosco$$f+eg┴ 's glrsay sarcaoo┘ecz2[sacscbp_ raa1inb1t/bp_l(10log-$ia sc$:ls (xd sgn s l2=-=b1vbyzereo"acscbezs",omz+ ay$ za=_ /)y$ R co;)la1inb1t/be1ear$esaïay anaooseco$$f+egAli8f+eg2<acscb_l(10log-$ia osecl{det esr$egug placscb@__ esaïay anacii2l-whos tsizeR ay sarcaoo)angcï/ aciibp_ raa)anb1t/bp_(10log-$ia ouayo(en cpsgsgn s l2=-=b1vbyzereo"aciib0e"o>si-(k-:spl1- Rsz)yplx'll-eps)y$ R co;)l$ za>_ /)g?mad1;ecaua)2b1²_ay$>:mad1;ecaua)2b-1²_-ay$>$>si-m1plxd s (2=b1vbyzereo"aciibie"o>si-(k-:spl1- Rsza-1i)yll-eps)y$ R_badofzereo"aciib-ie"o$s zk-:spl1- Rsza+1i)yll-eps)y$ R co;)la)anb1t/be1ear$esaïay anaoo)anïay anAli8f+eg2<aciib_l(10log-$ia gua)l{det esr$egug placiib@__ esaïay an osh2l-whos tsizeR ay shyperbolicaoo┘egug oshbp_ ra(++;(p_ +s++;D-p_)/2l(10log-$i o┘hayo(en cpsgsgn s l2=-:sp$++l2=-$>si-m1ex'spnayayo(eplx'$++a=(ad1;ec++;De1ear$fplx' co;)l$ ++a+s1/ ++)/2ar$f}2=-:sp1exctfyabsm+po1;ec++;)eus ay$ R$++a=(ad1;ec++;Dexsar$f+e1eex_1aε rt/biexy$ R co;)lex'spnaym1 oo┘bad1;ecoo┘bey) * ($exa+1eex_1)/2,$ R tec++ ecï/ 81inbey) * ($exa-1eex_1)/2ear$esaïay an1inh2l-whos tsizeR ay shyperbolica┘egug1inhbp_ ra(++;(p_ -s++;D-p_)/2l(10log-$i1inhayo(en cpsgsgn s l2=-:sp$++l2=-$>si-m1ex'spnayayo(eplx'$++a=(ad1;ec++;De1ear$fplx' co;)l$ ++a-s1/ ++)/2ar$f}2=-:sp1exctfyabsm+po1;ec++;)eus ay$ R$++a=(ad1;ec++;Dexsar$f+e1eex_1aε rt/biexy$ R co;)lex'spnaym1 oo┘bad1;ecoo┘bey) * ($exa-1eex_1)/2,$ R tec++ ecï/ 81inbey) * ($exa+1eex_1)/2ear$esaïay anua)h2l-whos tsizeR ay shyperbolica)angcï/ ua)hbp_ ra1inhbp_ /g oshbp_l(10log-$iua)hayo(en cpsgsgn s l2=-:sp$cza=g oshbe1ear$f=b1vbyzereo"ua)hbezs",o" oshbe1e"o$s z$cza=_ /)y$ R co;)l1inhbezst/bicz-_ oo┘bad=-l'sech2l-whos tsizeR ay shyperbolica┘ecz2[ssechbp_ ra1 /g oshbp_l(10log-$isechayo(en cpsgsgn s l2=-:sp$cza=g oshbe1ear$f=b1vbyzereo"sechbezs",o" oshbe1e"o$s z$cza=_ /)y$ R co;)l1t/bicz-_ oo┘bad=-l'csch2l-whos tsizeR ay shyperbolicaoo┘ecz2[scschbp_ ra1 /g1inhbp_l(10log-$i schayo(en cpsgsgn s l2=-:sp$sza=(1inhbezsar$f=b1vbyzereo"cschbezs",o"1inhbezs"o$s z$sza=_ /)y$ R co;)l1t/bisz-_ oo┘bad=-l'cosech2l-whosAli8f+eg2<cschb_l(10log-$i gsechaydet esr$egug plcschb@__ esaïay an oth2l-whos tsizeR ay shyperbolicaoo)angcï/ othbp_ ra oshbp_ /g1inhbp_l(10log-$i othayo(en cpsgsgn s l2=-:sp$sza=(1inhbezsar$f=b1vbyzereo"cothbezs",o"1inhbezs"o$s z$sza=_ /)y$ R co;)l oshbe1et/bisz-_ oo┘bad=-l'coua)h2l-whosAli8f+eg2<cothb_l(10log-$i ota)haydet esr$egug plcothb@__ esaïay anacish2l-whos tsizeR ay sarcahyperbolicaoo┘eguga oshbp_ rabadela+1sqribp*z-1)_l(10log-$ia oshayo(en cpsgsgn s l2=-$>si-m1ex'spnayayo(eplx' co;)lad1;ecbade z +(ad1;ec1qrib *sq-1)_>si-mza>_ 1ar$fplx'mz+=rcugxc ul(1ar$f}2=-:sp1e ctfimabsm+po1;ec++;)eus ay$ R$s z$ima=_ /)ayo(eplx' co;)lcugxcad1;ecbade +(ad1;ec1qrib * -s1)_ul(1>si-m >_ 1ar$fplx' co;)lcugxc0ulad1;ecaua)2bad1;ec1qrib1e: * _ul _1>si-k-:spl1- Rs _ylε r$Γ£i}2=- co;)lad1;ecbade z +(ad1;ec1qrib *sq -s1)_-_ oo┘bad=-l'a┘inh2l-whos tsizeR ay sarcahyperbolica┘eguga1inhbp_ rabadela+1sqribp*z-1)_(10log-$iasinhayo(en cpsgsgn s l2=- co;)lad1;ecbade z +(ad1;ec1qrib *sq +s1)_-_ oo┘bad=-l'aua)h2l-whos tsizeR ay sarcahyperbolica)angcï/ a)anhbp_ ra1/2zbade(1+zst/b(1-z)_l(10log-$iasaohayo(en cpsgsgn s l2=-$>si-m1ex'spnayayo(eplx' co;)lad1;ecbadeb1t+1ezs/b1t-1ez)_/2zsi-k-:spl1- Rsaya< 1ar$fplx'mz+=rcugxc ul(1ar$f}2=-=b1vbyzereo'a)anhb1)'ul "1t-1ez"+ ay$ za=_ 1)y$ R_badofzereo'a)anhb-1)'ec++ e e e ay$ za=_ -1g [t zhoo$s0.5 * ad1;ecbadeb1t+1ezst/b(1a-1ez)_ar$oo┘bad=-l'a┘ech2l-whos tsizeR ay shyperbolicaarca┘ecz2[sasechbp_ raaoo┘hb1t/bp_l(10log-$iasechayo(en cpsgsgn s l2=-=b1vbyzereo'asechb0)'ulmz+ ay$ za=_ /)y$ R co;)laoo┘hb1t/be1ear$esaïay anaosch2l-whos tsizeR ay shyperbolicaarcaoo┘ecz2[sacschbp_ raa1inhb1t/bp_l(10log-$ia schayo(en cpsgsgn s l2=-=b1vbyzereo'acschb0)'ulmz+ ay$ za=_ /)y$ R co;)la1inhb1t/be1ear$esaïay anaoosech2l-whosAli8f+eg2<aoo┘hb_l(10log-$ia osechaydet esr$egug placschb@__ esaïay ana oth2l-whos tsizeR ay sarcahyperbolicaoo)angcï/ aciihbp_ ra1/2zbade(1+zst/b(z-1)_l(10log-$ia othayo(en cpsgsgn s l2=-=b1vbyzereo'aciihb0)'ec++ e e e >si-(k-:spl1- Rsz)yplx'll-eps)y$ R$>si-m1ex'spnayayo(eplx' co;)lad1;ecbadebsq +s1)/(sq -s1)_/2zsi-k-:spl1- Rsaya> 1ar$fplx'mz+=rcugxc ul(1ar$f}2=-=b1vbyzereo'aciihb1)'ul "sq -s1"o$s zk-:spl1- Rsza-s1)yll-eps)y$ R_badofzereo'aciihb-1)'ul"1t/be1"o$s zk-:spl1- Rsza+11)yll-eps)y$ R co;)lad1;ecbadeb1t+1ezst/b(sq -s1)_t/b2ar$esaïay anaoo)anh2l-whosAli8f+eg2<aooib_l(10log-$ia gua)haydet esr$egug placothb@__ esaïay an(aua)2)2l-whos tsizeRla)anbz1/z2_l(10log-$iasao2ayo(en cpsg1ulmz2ctfinve+;)dsgn s l2=-:spRs 1ulmim1ulm 2ctfim2ear$R$s z$inve+;)dsgyo(eplx'Rs 1ulmim1sgn x'spna2a?m+po12;ec++;)eus a :cpsg2ul(1ar$fplx'Rs 2ctfim2ebsm+po11;ec++;)eus ay$ Ra elsegyo(eplx'Rs 1ulmim1sgn +po11;ec++;)eus ay$ Rplx'Rs 2ctfim2ebsmx'spna2a?m+po12;ec++;)eus a :cpsg2ul(1ar$f}$ R$s z$im2a=_ /)ayo(eplx' co;)lcugxcad1;ecaua)2bs 1ulm 2_ul(1>si-mim1a=_ /ar$fplx' co;)lcugxcz$im1<=>(1>* pip2ul(1>si-m 2a=_ /ar$f}2=-:sp$w raa)anbo11/sg2sar$f+e1bouulmvebsmx'spnwa?m+pow;ec++;)eus a :cpswul(1ar$fou +smpie >si-m 2a< /ar$fou -smpit2zsi-ou >mpiy$ R co;)l ugxc uulmvear$esaïay andisugay_eg2ma) an;edisugay_eg2ma) a anS ccpf cchasi-nosargumcï/)ndisugay eg2ma)+eg2<allaoogug -number aya) andon')+yappcï aosyave ove+riddcï it vusn;edisugay_eg2ma) a anWhcï calledla1la mcayod, ayisia coallya┘et ay sdisugay eg2ma)+eg2 anuy scu+rcï/ obje c. a anValid obje c eg2ma)sia 'c'iand 'p'+eg2<c++;)eus iand pogar. Ty sfir ) anlet;)2<isiusedla coally, sonuy stype<c+ ib sfullya┘pelledlou)+eg2<cgarityl(10log-$idisugay_eg2ma)ayo(en c$selfa=(1hiftl2=-:sp$eg2ma)a=(undefl2=$ R$s zx'spnself)ay os alledla1la mcayod$ R $eg2ma)a=(1hiftl2=-a elsegy osRegugar procedure call$ R $eg2ma)a=(nselfl2=- undef(nselfl2=-}2=$ R$s zdefegudpnself)ay2=- co;)ldefegudpnself->{disugay}a?mnself->{disugay}a:mndisugay2=- R$>si-m1defegudpneg2ma);2=- co;)lnself->{disugay}a=pneg2ma);2=-}2=$ R co;)lndisugay $>si-m1defegudpneg2ma);2=- co;)lndisugay =pneg2ma);2=esaïay an(stregg$sy)2l-whosShow Ä$ R$>si-mR╢vßcpsgsgnndi cα╫▄(nselfl2w▀+eg2ezst/bc);2=- co)co2w▀+eg2e(10log-$╕egg$sy)2l-whosShow Ä$ R$>si-mR╢vßcps2=- sup_ /g1si-mR╢v. Ifa)aaric Rbp_ anuy scu+rcï/h2mastyodmRflrl-dg-$id ay s 'c'ia,nuy - .mR╢v. O R$rwy e,nuy - R$>2zb$rbp_ i-mR╢vßcefaulnumber aya) andon')+yap$sy)2 wayndisma)aîa anWhcsy)2╒╒½└[█ ay s ┬w+yoo┘hb1t/be1ear$esaïay anaosch2lòXz-1)_'OúR$s zx'spnself)ay dla1la2=-}2=$ R$s/h2mast;1la2=-}2=$ R$sz co;)lndisugefeay =pneg2z co;)lndisu;gudpneg2ma);2z cïay anao_2l-whoear$=-}2=$ R~ /^p/y andisugay2z cïay anao_log-$╕egghow Ä$ R$>si- cïay anao_log-$╕eggnndi cαay anaos=-a elog-$╕egg$dipdiser =$ißcp'a+bi'be1ear$esaïay anao_log-$╕eggma)a=(undz 'OúR$s zx'spnse($x ay=_ /)ayo(eplx' co;)lcugy$ R$s z$ima=dla1la2x_ / l-wx_+e($xR c- R-1eg21-:spzst/bg2maear l-o;)lad1;ecbxsAl!=r l-o;)lad1;ecbxs anast/b(sq $y_ / l-wy_+e($yR c- R-1eg21-:spzst/bg2maear l-o;)lad1;ecbysAl!=r l-o;)lad1;ecbys anast/b(sqsq $nde=r"bx"=rcugxc ul(1arxs >=nast/(sq0.5 * ad1;ecby2sar1)x'll-eps)y$ $ $ $ $ $ $ $ ${$imae=r'i'la)a $ $ $ $ll$1;ecby2sar-1)x'll-eps)y$ $ $ $ $ $ ${$imae=r'-i'la)a $ $ $ $ll$1;eco;)lad1;ecbys >=nast/)x'll-eps)y$ $ $ {$imae=rby2.r"i"la)anb=(undetre=r''(sq $etre=r$ndeefeay =pneg2nd(sq $etre.=r"+ima"eefeay =pneg2ma(sq $etre=~ s/\+-/-/(sq $etre=~ s/^\+//(sq $etre=~ s/([-+])1i/$1i/; # Not$didw▀+og-$wieo'ihbp_ba) ia -1e' ts.sq $etre=r'0')lndisug$etr;gudpneg2ma);2etr;gua)anbi cHel2zbndon'ïay anao_2l-wh,a eGega' tao2amßcpDivison'wieo' elsmßrc$sear$esa_gcdma)a$ $ y$ R$az$ibfim2ear$R)a$ $ R$rwg-egerr$R)a$ $ cLoopet esevehoearanvecpneg=$iv$rwgyo(s.$R)a$ $ ear2;ec+bisius$asaïibfi{(1>si-m gcdR$a %ïibz$ibfia)a $ $ll$1;ecbaisius$bsaïiafi{(1>si-m gcdR$b %ïiaz$iafia)a $ $ll$e-eps)y$ $ $ $ $ $ ${$eg2ma);2a- R$aeg2mb$ $ $}gua)anby$ %gcd;sear$esagcdma)a$ $ y$ R$az$ibfim2ear$R)a$ $ (und'+e=r"baeib"r$R)a$ $ 1;ecbadexi tseigcd{d'+}sugay}igcd{d'+}e=r_gcdR$az$ibf;ay}igcd{"bsa$a"ugay gcd{d'+}(sq0.5 }$R)a$ $ eg2ma);2gcd{d'+}(sq Ä$ R$>si- cïay anao_2l-whnndi cαay anaos=-a e2l-whodipdiser =$ißcp'[r,t]'be1ear$esaïay anao_2l-whoa)a=(undz 'OúR$s zx'spnse($h,a$t=_ /)ayo(e2l-wh)lcugy$ $thg2a;gudpneg2ma);'[0,0]' >mpiy <=nast/(sqcugy$ $n$ R$s$ / uulm;ay}in$ R$(in$ -/ l-w --:sp$wlm;ay}in$ +c uulmvear$n$ coeg2ma)an ay[0, 2uu]o;)ldefego;)lad1;ecb -n<=nast/)g2{ $thg2a R$0 }$R ll$1;eco;)lad1;ecuu-b -n<=nast/)g{ $thg2a R$'pi'la)a)ldefegudpnself-thg2asugay}a$r_ / l-wr_+e($rR c- R-1eg21-:spzst/bg2maaear l-o;)lad1;ecbrsAl!=r l-o;)lad1;ecbrs anast/b(sq $thg2a R$ l-wthg2a +e($thg2a c- R-1eg21-:spzst/bg2maaear($thg2a ne$'pi'lsiug2maa$ $ e l-o;)lad1;ecbthg2asAl!=r l-o;)lad1;ecbthg2asuanast/b)eg2ma);2=-}2"\[$h,bthg2a\]"1defegudpn#dpn# Okaled co)co2sy)not$aodialcoaryugayianWtnaospi/<isiusfrisi-s...dpn#dpay}in$ xc uulmvear$n$ aïay a)ldefego;)lad1;ecb -n>=nang12bs 1ulm nse($n,a$k,a$kayb(sqsq ulm don'($k R$1,a$kay R$ay a$k 10 a$k++,a$kay +c uusugay}a$n R$ l-wkay /r$n$ +$(in$ > c- R1eg2-1-:sp0.5)eg2maefego;)lad1;ecbkay/$n - b -n<=nast/)ugay}aulm $n R$o;)lad1;ecb )eg2ma$ $ (undgcdm= gcdR$k,a$ )eg2ma$ $ ear($gcdm> 12bs 1}a$k /ay gcdeg2maa$n /ay gcdeg2ma0.5 }$Rma0.5 nextvear$nm> 360eg2ma0.5 $thg2a R$($n$ c- R'-':'').g2maa$ $ '($k RR$1- R'pi':"${k}pi")eg2ma$ $ $thg2a .=r'/'.$nmear$nm> 1eg2ma$ $ lasneg2ma}sq ulm }defegudpn$thg2a R$$n$ lndisugay =pneg2thg2a;gudpn$r_ / l-wr_+e($rR c- R-1eg21-:spzst/bg2maear l-o;)lad1;ecbrsAl!=r l-o;)lad1;ecbrs anast/b(sq $thg2a R$ l-wthg2a +e($thg2a c- R-1eg21-:spzst/bg2maear($thg2a !~ m(^-?\d*ay/\d+$)lsiug2ma$ $ e l-o;)lad1;ecbthg2asAl!=r l-o;)lad1;ecbthg2asuanast/b)eg2dpneg2ma);"\[$h,bthg2a\]"1deegudp1eg2__END__gudp=hgad1eNAMEgudpMathadC$sy)2 -ap$sy)2 wayndisisiusassociazst/2=$hg2=$if(n func$ißcsgudp=hgad1eSYNOPSISg2dpn R$rMathadC$sy)2 ;gudpn$z R$MathadC$sy)2 ->2=ke(5, 6b(sq $t R$4 -a3*iuanaz(sq $j R$cy)xe(1,a2*ay/3)eg2dp=hgad1eDESCRIPTIONg2dpT - ╒½└[█ ay)2tseyou$cega' isius2=nipula' ip$sy)2 wayndis. By aya) ama)I<Pdil>y)ime(10e(1 R ugaydial wayndism but$an extra C< R$>ys =$emer by asgufu+yap$sy)2 suppor. OaloR╢vwieo' efu+yaR$ of/2=$hg2=$if(n func$ißcsgutypif(nlysassociazst/wieo' iu/on'extsi-st/gayp$sy)2 wayndis.g2dp ayou$wo▀+eg2wh=$ p$sy)2 wayndisiss z$$hgyswendeenvectst/gaybbp_b)2/gaysolveguthbpfollow a'equ=$ißc:gudpnx*x_ /-1gudpsiusbygay =pi$ißcz$$hgysolu$ißcpsy)notst/I<i>ade annedisi R$rI<j>annstsat/snnceguI<i>a Ru(nlysanWotssisirwg-ensi$ym but$$hgynamgydoey)not$2=$-er)coahgynayndiguI<i>ai-a e2ur$rI<i2=annary>ynayndi.g2dpT bp_rieomg$ifs/wieo'2ur$ri2=annary wayndisiworksiju talikeayou$would'expectdpi-$wieo'dial wayndis...ayou$ju tahaveugaydilsm)co2eoat a)lde*i_ /-1gudpsoayou$have:gudpn5iuan7i_ /i_* (5uan7=_ /12idpn4i -a3i_ /i_* (4 -a3=_ /idpn4i * 2i_ /-8dpn6y /r2i_ /3dpn1 /ri_ /-idpdpC$sy)2 wayndisiss wayndisieoatahaveuboeo' edial plx'isiusanri2=annarydpplx',isiusas Ru(nlysnotst:gudpna +ebidpdpwhendeC<a>ai-a$hgyI<dial> plx'isiusC<b>ai-a$hgyI<i2=annary>yplx'coahgdpsrieomg$if$wieo'p$sy)2 wayndisii-aïayaightdonwsrdcoYou$haveugadpöorksiju talikeayou$would'expectdpi-$wieo'dial wayndis...ayou$ju tahaveugaydilsm)co2eoat a)lde*i_ /-1gudpsoayou$have:gudpn5iuan7i_ /i_* (5uan7=_ /12idpn4i -a3i_ /i_-ai_ck)2/ghavesy)2 ..ayhave=_ /12idpneoaty)2 waieoiuoa'2ueoii_rueg2eo'2d$o;)l_ /3dpn1 /ridpC$syapvey talikdpn+ysnPSISplx-diaebiddpn+y5PSISi(3x-diebid9SISilikd2SISi):gudpna aebid2*pn+yu(nlial-atahav8n+yial+y1bid9SIS2$woulA gi_phuthbp / uulm;ay}in$ 2/g$have:gudpn5iuan7i_possig-enineoatlanii_(hb' eißc:edahaveug$have:gutlani>)2 wait'sl_ /3:gudS2Dutlani+e($tahaveugaydiliks. Beayou$woul tahavepoigcdmhosg2=$ord12iyou$wxpe(h)2 ju Actadpöo)2n6y i * ulb2ueoi v/-8;)l;)i/12itoey)frhae(- R0)wayn(h)2 ju Itynamgydpsrieomeoi add$rI<iul2/ghw$$hgysolu$ißcpsy)co2eoav/-8;)i)2 .dd$rI<i$haveSayndmeoian7=2eoau$jelow isihweeneoatoigcdineeoi 2DutlanioYou$h$hgysoluven'($k R(i.e.eeoi mapvoey)=2euniquioYou$anciprhißc),$h$hgysoluaveugaydiißneob' eb2uuniqui:gu a$k++,i/-1gudpsy}in$ =$ord12iyou talik[rho2=annta]would'expectrhoju tahaved1$woyndmeoahave;)i/12,...ayouannta>meoi aey-ensihweent$$hgyv/-8;)l..ayhaveI<x>ma-wh a)ldan7=2eoaksiy}in$ o;)lt2 susoey)eoii_i_ n$$k++hbpf;)m,.whuth7=2 talikrho:gui_ (endeeSYNOPwould'expelsm)co2e$hgynamous7=_ /12idpn4i -a3uld'roduc/-1above.eCn$versI<iulsihweenet2 sf;)ml..ayhavecoatesIansf;)mlctdayou$)co2e=_m/-x_ / talikea= rho:gucos(eSYNOPwo ba= rho:gusoe(eSYNOPwould'uth7=2eob' ei_ uul'2d$i-at2 sf;)m2=$:diliks. Brho:gui_ (endeeSYNOP. Brho:gu(cos hg2a\]"1i:gusoeeeSYNOPwoulInaieoiu_ /ids,ait'slhaveprojelow i2/ghavev/-8;)l;neoahaveI<x>man bp_y>e*ixeh aMysolvegutIanseißc:'diahojuhaveI<n;)mju;)lI<modulus>man bp_annta>t$$hgyp_argueg2w>i2/ghavehgysoluaveugayu tahaI<n;)mju;/gC<zjuwic:'gavendpT bctdgadz)>$have:gudy}in$ ksiy}in$ (hb' ekkswneoslhavet)i/n$gyet)ici_r/ uulm;ay}in$)7=2emuth7moxpehan y o;)lpayf;)moey)m2=}isouthow ayndisidivisw ay2/g$have:gudpn5iua,.whulstyhavecoatesIansksiy}in$ =2esihtaydisuit2d$o;)l.dd$rI<i3)eg2dsubai_crI<i3. R /3dpn1 /ridwxpeonahaveI<x>e*ix=2,l..ayhavxpo;)ebp_annta> =2ezvxou;)lI<pi>$haveAc:'havehgym i2payhow ayrieomißneb2upayf;)m2d$ ial_ /3dpn1 /rpn4i ulsiene:spzst/beoa /i_$ i$rI<j>annstsat/sni_ ec:coYou$havem2avlydilsy =pisw a>i2/ghave2payhow ay:spzst/b i_ /3dpn1 /ri_ )2 sm2a a'eqI<i> /i_-aI<i$ khouyhlsm2a oey)d'enmeoian7=2enoe=_ /12idpneoat,eprov a$dt$$hgy4i -a3ul /i_* oeeeSYi$ e2ur$rI<ibp_b$haveFor2=annoynd2=annaC<sqat>iroynaniod'uth7$rI<uyou$annarot$an7roob)2/dpn6idwxgueg2wul /<ilyy:spzst/bo;)lnon-stghowvel_ /3dpn1 /ridYou$yieldidYvendn-stghowvel_ /3dpn1 /rR(iwul /ßneopsouthow )frhaeB<R+>beoaB<R+>+e($/I<wi amgyd2n6yayndidC$syh$hgysoluaveugay2=annn2n6yißneb2uy =pi$ißcz$ventghowvel_ /3dpn1 /ridssisihgye/ßneopsouthow )frhaeB<R>beoaB<Cieoeoii_p_b)2/g$rI<j>annstsat/):diliksqat(xP. Ban> B0 ? sqat(xP.: sqat(-xP*$woulI6yißneob' eb2uy =pi$ißcz$$be/ßneopsouthow )frhaeB<C>beoaB<Ci,uld'ulstyn6iduult)icow )eoaB<R>bben4i /sni_:spzst/babove$i-ausoeyt$$hgynamgydoey) e2ur$rI<i:diliksqat(s. B[r,t]P. Bsqat(r):gui_ (endee/2PwoulIn et/,$h$stghowvel_ /3dpn1 /rRißneb2undpT bct[x,pi]ieoeoi7modulusdilsx)co2eolwayslnon-stghowve,$' ect[x,pi]ieisl_ /3:guct-x),$h$stghowveven'($k )l..ayhaveabove$ e2ur$rI<ibptayou$anndisieosqat([x,pi]P. Bsqat(x):gui_ (e*pi/iebid[sqat(x),pi/i]. Bsqat(x)*iwould'uth7=2ei__cr:guisi Rwpehady:spzst/bo;)lntghowvel_ /3dpn1 /ridYbove.ve:gudC<sqat>iridC$s /<ilyyn$$i2/ghavery>ynayns:7=I<i>adeantyhavewieo,ulu'2ueoiectroob>i╢y)frhae(╣eopc:'my>e*ixeh i_i_iectroove2payhow ay:spzst/b i_rI<ibptyou$ßneob' eb2uyeoa /i_$ i$rI<jshyou$2payhsdpi-2ida>itys /<:spzabovenntsrdcoYo>yhlsm2a oeoian7=2enoe=_ )ebp_annt(eoaty)2 ju Actadpö1 /ro)2n6anii_(h/3dem2avlydi,ctadpö1 A?)b>i╢y)veugew> a>i2/ghaudpn5iuan7on6yayndidC$syh$hgy$2payhi_ )2 b2uuniqty_rueg2eo'2d$o;)l_ islanii_(hb' eißc:njuzsthaveevend'enmtoat, a$k+/3dhyndzhavo'2bhav )l..aeprov a$dt,ta> C<~n;) oeyb>i╢y veugaydiliks ~veugay-iliks. SididC... N($/look2 sf;)m* ~veug(aydiliSilikay-iliui_ a*aydil*b sfWyynaw ItynamgydgayutahaI<n;)mas1 /rRißneavendpTeevenwR>bben4i /snslt2 shoju tahaved1$woyndmeoahaksiy}in$ (hbm,.whuth7=_ avendpat(x),pia*aydil*bi_ (esi sf;)m* ~veugavendpa** 2_ (enf ve-wh apurndn-stghowvel_ /ven'ayneuat(>)soluave'($k )l..an1 /ri2e=_m/-x* aeugavenapa** 2_ (eat(x)*iwotroey(neave;) hb' ekkn-gu$havi$ khouyrueg2eo'2d$o;)lju ven'ju tri(eoaksiy$k )n$$i2lowo'oe) /3dpn1ulddidC Bsq$h_b$yhlyamgydgayutahaI<n;)i_ ) /rRißneavendpT:u Acßneob'sewieo,uave;)_iectroob2uyeoa /i_$ i$rI<juyet. Beayou$n-gu$hav,uave;)_cr}in$yhlsm2a oeyndidC$syh$hgy$ape(h)2 ) hb'in. Bian7=2enoe=_ ... 3dpn1jusiqui:sanntudpn}iniynd> uy$have /<ilyy,uave; ) /ran7=2eoaksiyydgayub>i╢y=yyad1 OPERATIONS>i╢yG/bom2a oeusoeyt$$hg /ran7=2i2e=_m/z1eugaydili(end1P. Bsqat(r):1gucoz2(encydidi(end2P. Bsqat(r):2)sf;)m2=uanyeyndidC$sueg2eo'2d$o;)l>e=_ma oeusoeyt$$hg(l..reya' e) a>i2/ghaveyou$suppuetow ayeoa /i_$ i$rI<2e=_m/z1ediz2(en(aydic)u(co(bydid)_m/z1e-iz2(en(ay-ic)u(co(by-id)_m/z1e*iz2(en(d1P. r2]P. Bsqat(r)(t1edi:2))_m/z1e/iz2(en(d1P/ r2]P. Bsqat(r)(t1e-i:2))_m/z1e**iz2(enBsqaz2(*ieyhgz1guco~veugay-iliks avendpat(d1Pt(x),pia*aydil*bi_ r$rI<i:t(s. B[r,t1]P. Bsqat(r):gui_ Bsqaz)(enBsqaa]P. Bsqat(r)bi_ reyhaz)(eneyhat1]P(co*t_ r$ba=z)(en1gut((Bsqat(r)z1gy-iBsqa-t(r)z))_m/kea=z)(en1gu((Bsqat(r)z1gy+iBsqa-t(r)z))_m/au t2=z1,iz2ui_ au t=z1/zui_ (eT oeusoeyt$$hgßnera a>i2/ghaveyou$suppuetow ayadeag2eo'2eveneoa /i_$h$stgho<2e=_m/Re=z)(enYou Im=z)(enb_m/arhaz)(entks avendpat(de=_m/cbI<i:t(s.ze**i(1/3i_ reyh10az)(eneyhaz)(/neyha10i_ reyht=z,in)(eneyhaz)(/neyhani_ (e u t=zt(s. ba=z)(/nkea=z)e=_m/csc=z)(en1(/n ba=z)_ r$ec=z)(en1(/nkea=z)e=/ket=z)(en1(/nu t=zte=_m/-$ba=z)(en-t(r)eyhai*zy+i B[r,1-z*z))_m/akea=z)(en-t(r)eyhazy+ii* B[r,1-z*z))_m/au t=zt(s.d[s(r)eyhaai+z)(/nai-z))_m_m/aksc=z)(en-$ba=1e/iz)_m/a$ec=z)(enakea=1e/iz)_m/aket=z)(enau t=1e/iz)(en-t[s(r)eyhaai+z)(/naz-t))_m_m/$bah=z)(en1gu((Bsqazgy-iBsqa-z))_m/keah=z)(en1gu((Bsqazgy+iBsqa-z))_m/u th=zt(s. bah=z)(/nkeah=zt(s.(Bsqazgy-iBsqa-z))(/naBsqazgy+iBsqa-z))_m_m/csch=z)(en1(/n bah=z)_ r$ech=z)(en1(/nkeah=zte=/keth=z)(en1(/nu th=zte=_m/-$bahaz)(eneyhazy+i B[r,z*z+1))_m/akeahaz)(eneyhazy+i B[r,z*z-1))_m/au th=z)(en1gu(r)eyhaa1+z)(/na1-z))_m_m/aksch=z)(en-$bah=1e/iz)_m/a$ech=z)(en-keaha1e/iz)_m/aketh=z)(en-u th=1e/iz)(en1gu(r)eyhaa1+z)(/naz-1))_mvenntrgaveIuave;veIueyh;veIuksc;veIuk'2uveIuaksc;veIuak'2uveIukschB<C>Iuk'2h;veIuak'$ech;veIuak'2 th;ve)eoahakia$esannth7;veIua o2 ;veIuenB<C>Iuk'$ec;veIuk'2 t;veIuak'$ec;veIuak'2 t;veIuk'$ech;veIuk'2 th;vvenntk'$ech;veIuak'2 th;ved'upect/boly. y,uRhave,uImave,utrgave,uave;vveCnth7;veevenCua o2 ;_ /3dpn1havdhaksiyaksiymuranors. yridYbocbI<>e=gudC<sqat>iridC$s /<ilyyn$$i2/ghavery>ynayns:7=afrhaegu juhavewieveCntu'2ueoiectroob>i╢yridYIntu'2ueoiectrooe-wh vailauan72uyeoa i2loafrhaedYInn>e=gu'2ss /<s /rieoa /i_,yhlsrdYInn>e-wh aulstyniridpnit/bo;i:7egsr1 /ridrdYyou$ßnd'uth7Inn>esux)*gu'2s,:gudC<s /snsl aloju. Gudt$$hgwieveyh$hgy$my>e*ixeh ianslaniiYboj>esux)*Ityn2e=_m/1edijedij*jeat(;e=_m-wh auididC$my>}ins /<:rit$$h2e=_m/$jeat((gu'2(1,i3))[1];>i╢yridYInk>t)*gu'2eoaksI<ndiliksqa>e-whg/bom2by2e=_m/(gu'2(z,in))[kqat(r**(1/n]P. Bsqat(r)(tedi2*k(x))/ni_ (eT oeInspaceship>ieoa arisooe a>i2/ak,iE<lt>=E<g2uve-wh ksiyben4i /.eIn(eakdgy$2iyavlurndi2ssd'ulstynroob2uy2eo'2d$o;)l_ islaoofayut2uy=2ei_yna(eaadpö1Bsqect,2a oeyndiarisooeislrun ayyou$n-o'2e=_ ) /<ilyyeoa /i_$h$stgho n4l_tveevendian7=2enoe=_ veyou$yndiarow ath7hlsm2a oen-o'$he=_ vemy>chb>i╢y=yyad1 CREATION_ (eTuyen-o2loayeoa /i_$ i$rIjuhaveeioaty2e=_m/$ndilMy>e::Coa /i_->myke(3ju4);_m/$ndilc /x(3ju4);_m_m-y>ynay}in$yilyye=_ esian fayutahaeprov a$dt,ta>e=_m/$ndil3edi4*i;_m_m-y>ynaylike. 3uyen-o2loay$stgho us$$hgwieidp$havfayujuhaveeioaty2e=_m/$ndilMy>e::Coa /i_->emyke(5jupi/3i;_m/$xdilc /xe(5jupi/3i;_m_m-nn}iad.yridYn4l_teyogstuni Beayou$æ a>i2/ak,y$stgho/aery>yn·╔$æ aa$k+/3o'oe)aypiYn(4l ryoesuxy>yn·╔f/ali;Becrit+/32eInse=g(Mn;_aaic:-whee=_m/ymurans_m/ayydgayub>i╢y=<2e=_m/z1ediz2(rdYujuhaveeioaty2e)EATIOI2/ak,sr1sioafrhaejeatee::Coa i/3i;_m_m--3n}iad}in$yilbuttahaI<wialiksisiafngu'2 aai2/o'2edYyaewh[3n-3iad}]4i vface,y$stgho/aerilmpn}iksiyyn-n;ga/ridr(o,urepy2efng/3o'oewoyndmeoahaksiy}in$ (hrdYujuhao n4l_tvedgan;)EATIOI2/ak,In(easr1sioafrhaenth7;vy$ape(h)2 ) hb'insndilMy>ou$æ a>i2/ofIOdilMy>oran7=2_m/$> >e-wh;_m/$wieo'oe)ppyopyis$$h$apei2/i2/ofIOo'oe)$æ a>i2/wialiksiymur.::Coa /1_m_m-y>y-2, 1(3ju4);2_m_m-y>y /1ay}in$yilN_ (eTuSTRINGIFIC-o2loayeoWe=_ pyiYyod,;vy$ape(h)2 ) hb'i_m/ymBian7=show_ uni2ssob2utahaeproveoa$dt,upe+bi4i buttahh7Inn>es(hgat(ms$$h$ua o2 aulstjuhaveeioaty2es$Iuakm2by2e=_m/moroe)ppyopyis$$.::CoBy)*Ityfayujuhayoynsnn7=2>emyke(5jupi/kewoydgay_ty2es$>oe=_ deagn72/ghailMy>troo"veeio"> >e-wh"tahaeprov">,en-o2>i2/yidstjuhakdgault woydgayaty2es$nCu aiedi_m/wh"tahaeprov">. Nksqdeagn72/ghg2eo)$æ a>i2/C$s /<iljuhao /C$i2Cus$hgy$m2ueoiec_m/kdgault siyaksi>i2/yidkde=_ )a =E<- ) hb'ib/a$m/by)*Ityfayujuhtroowoydgay_ty2es$>oa>juo2edY_teyogsAm/bdgoro(1/ksqdeagn72/ghg2eo)$æ a>i2idC$s /<iljuhao /C$i2 woydgayaty2es$>i╢y=tc_m/ ) hb'gsOlMy>w_mepö1Bsei2/qect,2uRhaify/wialiksie=_m/ew woydgayaty2es$>i╢y=B<C>oy>iarowio eioa ) hb'gueoiF╢y=dY_tdmeoe::Coam/$n>emyke(5jupi/n$yil >emyke(5jupi/kewoydgay_ty2es$('veeio'(3ju4)3))[1];>i╢yridYInk>t)*g pyiYy "3))[)3\n"; # PyiYys "3))[k>,2iad.]ju4)3->woydgay_ty2es$('tahaeprov'(3ju4pyiYy "3))[)3\n"; # PyiYys "3))[-0.5+0.866025403784439i"eship>ieveeioaty2es$ $h2ejug/3o'uljuh/a$zoe)$æ a>i2s2loayaksIeIn/ /ri( aulstyniridpnitsr1 /ridrdYyou$ßoe=_ ksI<oe=rdYyou$ßowilMdYu[-9,+9])EATION_ (eTuUSAGEeship>e=k/3o'u>i2/loyoengy>yn·╔>e=dyfayuta> ayyna>jicsowilM=<2e=_m/z1ediz2(my>}i /<:rite=_ almon}itrsuxm2a YyEATIOHh7Inn>eshlsrdux)<:rise::Coam/$n>emyke(5jupi/n$yil )3))[;_m_m-rid2eInd.yr # )3)**y>y=+z)ju4pyiYy "3))[)3idj**>y= ", )3)**y>, "\n";ju4pyiYy "(;e=_m-wh *2y= ", (;e=)3)e=)3 *2, "\n";juCoa /i_--16)e=0lik # F╢ycroob3o'ub7;vy$ape(h)ju4pyiYy "/au t$aa1+z", /au t$aa, "\n";juCoa k1+z*k(x))/n2eInd.yrju4pyiYy ")3)- k1+z", )3)- k, "\n";juCoa /->Rilc)k # Rid'ue=_)$æ=_)bs,ju4)3->)$æ(2)k # (yn·╔lan}itws. kvyo2 y>yn·tan-u # siyaksiymuranors. sdYbocbI<>eATION_ (eTuERRORS DUE TO DIVIS2lo BY ZERO OR LOGARITHM OF ZEROeship>iedivisyub>(/)te=_ yn·╔followfayuailauan7sjuCoaIukaInaIuk10aIukveo tdm $æ ;ve ;ot1gu(r)eeaha1bah=1 th=1eo tdmh $æ h ;veh ;h;v1gu(r)eheaha1ebah=1e th=1ejuCosiy/ksqbeedYInn>ed>i╢y=Ityn)$æ a>i2s2besi2ueoieaI<w oeyna>iyadivioengilby zero >e-r)kfayuIuk ayynauta>zerogstunueo1 /ugayub2uta2ueof(r)b>i'2et(mrdurro2(rIuokfayuIoayaC>oyjuCoah=1(0): Divisyub>by zero.)[kqBesi2ueodYujuhakdgy$iayub>ta>h=1(0),3o'oewovis>e-vfa(0)idpn0n-u DiuranI<..eATIOdi4*i;_(r)eh(-1): Luk ayynauta>zerog-u DiuranI..eATIOFo>oran7=2h=1th7;vh=1th7;vaha1th7;vah=1th7;vah=1th7;vh=1eth7;vh=1ethtrooaha1eth7;vah=1eth7o'oe)$æ a>i2/siy/ksqbee;v0> (zerose=gFo>oran7juhtrIuk ayynaicuailauan7ste=_ yn·╔;var)ehth7;vah=1eth7o'oe)$æ a>i2/siy/ksilb·╔;v1> (on;)E=gFo>oran7;var)ehth7;vah=1eth7o'oe)$æ a>i2/siy/ksqbetroo-1> (ainus on;)E=gFo>oran7;var)eth7;vah=1th7o'oe)$æ a>i2/siy/ksqbetrooi> (yn·╔veyou$yndiu$ia)E=gFo>oran7;var)eth7;vah=1eth7o'oe)$æ a>i2Cosiy/ksqbeeoo-i> (yn·╔n;ga/ridrveyou$yndiu$ia)E=gFo>oran7;vr)ethtrooha1th7;vr)ehth7o'oe)$æ a>i2/siy/ksqbeeI<Ind2)e=k)/npi4i aulstynk>my>}ig2eodYyou$ßeATIONkseoieaI<besi2ueowInn>es>=E<g2fayutne)ppyox(ms$an7stta>slaoofayut2u,IOo'o/$ndrro2(rsiyaeappde=he=_ mulsn7=`togholo/$'ahaksiy}vfay eioiayo/trIoynuranb>i2E=gFo>oux)<:ri7;vr)e(2*ar)e2-ri1)+1e-15)>/wialidyo/ofIOdivisyub>by zero.)[ION_ (eTuERRORS DUE TO INDIGESTIBLE ARGUMENTSeship>ie=2_m/$> e=_ wh;_m/$w eccepI<b=1e>slaooe=_ <2e=_m/z)$æ a>i2s.eoWe=_ siyy/siy/ksqsl<2gn$zoeo'oe)$æ a>i2s siyy/wialidyo/wilM=drro2ilmessagesuIoayaC>·╔followfayeshi n>emyke(5jupi/ke_m/$:-wiy/ksqr)ke>slaooarowtta>..eAT n>emyke(5jupi/ke_m/$:-wiy/ksqr)ke>slaooarowtta>..eAT n>emyke(5jupi/kee_m/$:-wiy/ksqr)ke>shotta>..eAT n>emyke(5jupi/kee_m/$:-wiy/ksqr)ke>yn·tatta>..eATION_ (eTuBUGSeshiSa72/ghC<m/$n>emyke(5jupi/n>z*k(or2s mg2eoms$_ ms$a*Itayoynsnn(rdYujuhCosilpi>ounviyona>i2/e=_ ei2n2>i2/yidssshlsrd(oohau th7;vIuk>)EATec_m/_m/ aastruuranpnitf (s /e>by C>·╔Aynho2(=_)ctBian7..e ;-)eshiAltayoynsnn(r*k(ecb3o'ub7;gii2n2slaooo>o<2e=_m/z1ediz2(e Daa'$ $h2ejug3o'him/$nBigFloyt,}vfacroP2/laeasao /C$i2n7=n'uruafrhaewoyadiigus$$hit'+'IOd=E<g2fub>(f╢y=dY_tdmeo)ub7twe=_ sw'u>i2/loyoura$i2iayo/eATIOI_ C<g7=UNICOStahh7Inisshlsrdstrsugez1edh7a*ItadY_tdiiliayoieaI<7Isult(my>n2s>i╢y),3<2sy),3vfa(),3<2shy),3vfahy),3lo/2/ghgco /gcyatan}E=gBewn>e.hip>iebughmg7=beodYuUNICOStms$_uIobs,odYuUNICOStCo<2e=ipi>,odYu>emyke(5jupi/.eoWeBsei2/qob3is,od2 won(r/ksqmg2ifn(b3it(elfig2e aulstelmepö1ulstP2/la'2e>eATION_ (eTu}i /<:rite=_ almon}itrsuxm2a YyEATIOHh7Inn>es"COStCsux"woyadii╪siy/<:swiy/[2ayo/eATIO<F<:swiy/[_ayo/eATI@gdmeobst.hp.mg2>e=_ s/<J=i s/<J=i Æ┌ k@gTu}i /<_(r)eh(-;vr>slaooarowtta>..eAT n>emyke(5jupi/ke_m/$:-wiy/ksqr)ke>slaooarowtta>..eAT n>emyke(5jupi/kee_m/$:-wiy/ksqr)ke>shotta>..eAT Üte=_ a.fi$:n>emyEx.m Oo'opp.cTSe_tdmDta>.r)S. L YyEtAT d-l YyEt@uiuc.>eu$:n>emy=cut>emy1syub>#sldrro