{VERSION 2 3 "IBM INTEL NT" "2.3" } {USTYLETAB {CSTYLE "Maple Input" -1 0 "Courier" 0 1 255 0 0 1 0 1 0 0 1 0 0 0 0 }{CSTYLE "" -1 256 "" 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 } {CSTYLE "" -1 257 "" 0 1 32 119 101 0 1 0 0 0 0 0 0 0 0 }{CSTYLE "" -1 258 "" 0 1 0 0 208 0 1 0 0 0 0 0 0 0 0 }{CSTYLE "" -1 259 "" 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 }{CSTYLE "" -1 260 "" 0 1 145 0 0 0 1 0 0 0 0 0 0 0 0 }{PSTYLE "Normal" -1 0 1 {CSTYLE "" -1 -1 "" 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 }0 0 0 -1 -1 -1 0 0 0 0 0 0 -1 0 }{PSTYLE "Heading 1" 0 3 1 {CSTYLE "" -1 -1 "" 1 18 0 0 0 0 0 1 0 0 0 0 0 0 0 }1 0 0 0 6 6 0 0 0 0 0 0 -1 0 }{PSTYLE "Heading 2" 3 4 1 {CSTYLE "" -1 -1 "" 1 14 0 0 0 0 0 0 0 0 0 0 0 0 0 }0 0 0 -1 4 4 0 0 0 0 0 0 -1 0 }{PSTYLE "Title " 0 18 1 {CSTYLE "" -1 -1 "" 1 18 0 0 0 0 0 1 1 0 0 0 0 0 0 }3 0 0 -1 12 12 0 0 0 0 0 0 19 0 }} {SECT 0 {PARA 18 "" 0 "" {TEXT -1 42 "Significant Digits and Interval \+ Arithmetic" }}{PARA 0 "" 0 "" {TEXT -1 0 "" }}{PARA 0 "" 0 "" {TEXT -1 53 "This worksheet is designed to accompany Chapter 3 of " }{TEXT 256 87 "Introduction to Scientific Programming: Computational Problem \+ Solving Using Maple and C" }{TEXT -1 129 " by Joseph L. Zachary. In i t, we will use Maple to explore the methods of significant digits and \+ interval arithmetic. (30Sep96)" }}{PARA 0 "" 0 "" {TEXT -1 0 "" }} {SECT 1 {PARA 3 "" 0 "" {TEXT -1 15 "Getting Started" }}{EXCHG {PARA 0 "" 0 "" {TEXT -1 267 "To use this worksheet you will need to use som e extensions to Maple that we have created. Read in our interval arit hmetic package by evaluating the Maple command below. (You will need \+ to have first installed our custom Maple library and configured Maple \+ to use it.)" }}{PARA 0 "" 0 "" {TEXT -1 0 "" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 15 "with(interval);" }}}}{SECT 1 {PARA 3 "" 0 "" {TEXT -1 33 "Counting the Digits of a Mantissa" }}{PARA 0 "" 0 "" {TEXT -1 261 "Let's begin by making sure that you know how to count the number \+ of digits in the mantissa of a floating-point number. We have created a function \"digitCount\" that takes a floating-point number as its p arameter and returns the number of digits in its mantissa." }}{PARA 0 "" 0 "" {TEXT -1 0 "" }}{EXCHG {PARA 0 "" 0 "" {TEXT -1 135 "In the ab sence of trailing and leading zeros, it is straightforward to count di gits. Here we see that 1523. has a four-digit mantissa." }}{PARA 0 " " 0 "" {TEXT -1 0 "" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 18 "digitCount(1 523.);" }}}{EXCHG {PARA 0 "" 0 "" {TEXT -1 106 "Here is another way to write 1523. The value of the exponent does not change the significan t digit count." }}{PARA 0 "" 0 "" {TEXT -1 0 "" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 20 "digitCount(15.23e2);" }}}{EXCHG {PARA 0 "" 0 "" {TEXT -1 24 "And here is a third way." }}{PARA 0 "" 0 "" {TEXT -1 0 " " }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 20 "digitCount(.1523e4);" }}}{PARA 0 "" 0 "" {TEXT -1 1 " " }}{PARA 0 "" 0 "" {TEXT -1 103 "We have just \+ seen three different ways to write 1523, and each example had four dig its in its mantissa." }}{PARA 0 "" 0 "" {TEXT -1 0 "" }}{EXCHG {PARA 0 "" 0 "" {TEXT -1 119 "Trailing zeros are not ignored when counting d igits. For example, notice the differences among the following exampl es." }}{PARA 0 "" 0 "" {TEXT -1 0 "" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 18 "digitCount(5000.);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 17 "d igitCount(50e2);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 17 "digitCo unt(.5e4);" }}}{PARA 0 "" 0 "" {TEXT -1 0 "" }}{PARA 0 "" 0 "" {TEXT -1 119 "Even though all three of these are ways of writing 5000, all t hree have different numbers of digits in their mantissas." }}{PARA 0 " " 0 "" {TEXT -1 0 "" }}{EXCHG {PARA 0 "" 0 "" {TEXT -1 112 "Leading ze ros, unlike trailing zeros, are unimportant and can be disregarded whe n counting digits in a mantissa." }}{PARA 0 "" 0 "" {TEXT -1 0 "" }} {PARA 0 "> " 0 "" {MPLTEXT 1 0 16 "digitCount(.51);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 20 "digitCount(.0051e2);" }}}{EXCHG {PARA 0 " > " 0 "" {MPLTEXT 1 0 22 "digitCount(.000051e4);" }}}{PARA 0 "" 0 "" {TEXT -1 0 "" }}{PARA 0 "" 0 "" {TEXT -1 87 "All three are ways of wri ting .51, and all three are written with two-digit mantissas. " }} {PARA 0 "" 0 "" {TEXT -1 0 "" }}{EXCHG {PARA 0 "" 0 "" {TEXT -1 81 "Th e last example shows that leading zeros are ignored but trailing zeros are not." }}{PARA 0 "" 0 "" {TEXT -1 0 "" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 22 "digitCount(.005100e2);" }}}{SECT 1 {PARA 4 "" 0 "" {TEXT -1 9 "Exercises" }}{EXCHG {PARA 0 "" 0 "" {TEXT -1 133 "Followin g are some calls to digitCount. See if you can predict each result be fore looking at it. Try some of you own examples, too." }}{PARA 0 "" 0 "" {TEXT -1 0 "" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 18 "digitCount(100 .0);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 21 "digitCount(00002.10 );" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 20 "digitCount(.0001e4); " }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 21 "digitCount(1.0001e4);" }}}}}{SECT 1 {PARA 3 "" 0 "" {TEXT -1 31 "Rounding Floating-Point Numb ers" }}{PARA 0 "" 0 "" {TEXT -1 355 "Next let's make sure that you und erstand about rounding. When we talk about \"rounding a number to fou r digits,\" what we mean is \"find the closest number with a four-digi t mantissa.\" The function roundFloat will round to a specified numbe r of digits." }}{PARA 0 "" 0 "" {TEXT -1 0 "" }}{EXCHG {PARA 0 "" 0 "" {TEXT -1 29 "If we round 16. to two digits" }}{PARA 0 "" 0 "" {TEXT -1 0 "" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 19 "roundFloat(16., 2);" }}}{EXCHG {PARA 0 "" 0 "" {TEXT -1 0 "" }}{PARA 0 "" 0 "" {TEXT -1 87 "we get back 16, since it alread y consists of two digits. If we round if to one digit, " }}{PARA 0 " " 0 "" {TEXT -1 0 "" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 19 "roundFloat(1 6., 1);" }}}{EXCHG {PARA 0 "" 0 "" {TEXT -1 0 "" }}{PARA 0 "" 0 "" {TEXT -1 47 "we get back 20. If we round it to three digits" }}{PARA 0 "" 0 "" {TEXT -1 0 "" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 19 "roundFloa t(16., 3);" }}}{EXCHG {PARA 0 "" 0 "" {TEXT -1 0 "" }}{PARA 0 "" 0 "" {TEXT -1 86 "we still get back 16, but this time it is written with th ree digits in the mantissa. " }}{PARA 0 "" 0 "" {TEXT -1 0 "" }} {PARA 0 "" 0 "" {TEXT -1 33 "If we round .000244 to two digits" }} {PARA 0 "" 0 "" {TEXT -1 0 "" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 23 "rou ndFloat(.000244, 2);" }}}{EXCHG {PARA 0 "" 0 "" {TEXT -1 0 "" }}{PARA 0 "" 0 "" {TEXT -1 65 "we get .00024 as the result. Notice how the .0 00244 was rounded " }{TEXT 259 4 "down" }{TEXT -1 101 ", because that \+ was where the closest two-digit mantissa was. If we round .000246, on the other hand," }}{PARA 0 "" 0 "" {TEXT -1 0 "" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 23 "roundFloat(.000246, 2);" }}}{EXCHG {PARA 0 "" 0 "" {TEXT -1 0 "" }}{PARA 0 "" 0 "" {TEXT -1 14 "it is rounded " }{TEXT 260 2 "up" }{TEXT -1 42 ". If a number falls exactly in the middle" } }{PARA 0 "" 0 "" {TEXT -1 0 "" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 23 "ro undFloat(.000245, 2);" }}}{EXCHG {PARA 0 "" 0 "" {TEXT -1 0 "" }} {PARA 0 "" 0 "" {TEXT -1 67 "Maple rounds up, although it could just a s well have rounded down. " }}{PARA 0 "" 0 "" {TEXT -1 0 "" }}}{SECT 1 {PARA 4 "" 0 "" {TEXT -1 9 "Exercises" }}{EXCHG {PARA 0 "" 0 "" {TEXT -1 0 "" }}{PARA 0 "" 0 "" {TEXT -1 131 " Here are a few more exa mples. Try to predict the answer before having Maple evaluate it. Tr y out some of your own examples, too." }}{PARA 0 "" 0 "" {TEXT -1 0 " " }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 20 "roundFloat(123., 2);" }}} {EXCHG {PARA 0 "" 0 "" {TEXT -1 0 "" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 20 "roundFloat(1e10, 4);" }}}{EXCHG {PARA 0 "" 0 "" {TEXT -1 0 "" }} {PARA 0 "> " 0 "" {MPLTEXT 1 0 20 "roundFloat(1.51, 1);" }}}{EXCHG {PARA 0 "" 0 "" {TEXT -1 0 "" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 24 "rou ndFloat(.0002345, 1);" }}}{EXCHG {PARA 0 "" 0 "" {TEXT -1 0 "" }} {PARA 0 "> " 0 "" {MPLTEXT 1 0 25 "roundFloat(15555550., 2);" }}} {EXCHG {PARA 0 "" 0 "" {TEXT -1 0 "" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 25 "roundFloat(15444449., 2);" }}}}}{SECT 1 {PARA 3 "" 0 "" {TEXT -1 18 "Significant Digits" }}{PARA 0 "" 0 "" {TEXT -1 356 "No matter how \+ sophisticated the measuring device, any physical measurement is an app roximation. When we write a measurement in scientific notation, the n umber of digits in the mantissa conveys crucial information. For exam ple, when we say that a measurement is \"1500.\" (four significant dig its), we are asserting that the true value, when rounded off to " } {TEXT 257 4 "four" }{TEXT -1 159 " digits, will be equal to 1500. Whe n we say that a measurement is \"1.5e3\" (two significant digits), we \+ are asserting that the true value, when rounded off to " }{TEXT 258 3 "two" }{TEXT -1 171 " digits, will be equal to 1500. There's a big di fference in these two cases---assuming that both measurements are corr ect, the first is much more precise than the second." }}{PARA 0 "" 0 " " {TEXT -1 0 "" }}{PARA 0 "" 0 "" {TEXT -1 217 "To help understand wha t's going on, we'll use the function \"findRange\". If we give it a m easurement written to some number of significant digits, it will give \+ us back the range in which the true measurement must lie." }}{PARA 0 " " 0 "" {TEXT -1 0 "" }}{EXCHG {PARA 0 "" 0 "" {TEXT -1 81 "For eample, the only numbers which, when rounded to four digits, will equal 1500 \+ " }}{PARA 0 "" 0 "" {TEXT -1 0 "" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 17 "findRange(1500.);" }}}{EXCHG {PARA 0 "" 0 "" {TEXT -1 0 "" }}{PARA 0 "" 0 "" {TEXT -1 119 "lie in the range from 1499.5 to 1500.5. By comp arison, the numbers which, when rounded to two digits, will equal 1500 " }}{PARA 0 "" 0 "" {TEXT -1 0 "" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 17 "findRange(1.5e3);" }}}{EXCHG {PARA 0 "" 0 "" {TEXT -1 0 "" }} {PARA 0 "" 0 "" {TEXT -1 187 "lie in the much broader range from 1450 \+ to 1550. The first measurement, which was presumably made by a much m ore precise instrument than the second one, conveys more precise infor mation." }}{PARA 0 "" 0 "" {TEXT -1 0 "" }}{PARA 0 "" 0 "" {TEXT -1 49 "Here are a few more examples. The measurement 1," }}{PARA 0 "" 0 "" {TEXT -1 0 "" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 14 "findRange(1.);" }}}{EXCHG {PARA 0 "" 0 "" {TEXT -1 0 "" }}{PARA 0 "" 0 "" {TEXT -1 158 "written with only one digit, represents a true measurements that \+ lies anywhere from .5 to 1.5. But if we measure more precisely and cl aim 1.00 as our result," }}{PARA 0 "" 0 "" {TEXT -1 0 "" }}{PARA 0 "> \+ " 0 "" {MPLTEXT 1 0 16 "findRange(1.00);" }}}{EXCHG {PARA 0 "" 0 "" {TEXT -1 0 "" }}{PARA 0 "" 0 "" {TEXT -1 43 "we've pinned things down \+ much more closely." }}{PARA 0 "" 0 "" {TEXT -1 0 "" }}}{SECT 1 {PARA 4 "" 0 "" {TEXT -1 9 "Exercises" }}{EXCHG {PARA 0 "" 0 "" {TEXT -1 154 "Here are some for you to try out. As before, try to figure out w hat the answer should be before asking Maple to evaluate them. And tr y some of your own." }}{PARA 0 "" 0 "" {TEXT -1 0 "" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 18 "findRange(1.23e5);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 17 "findRange(.0001);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 18 "findRange(7.0001);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 18 "findRange(19.2e5);" }}}}}{SECT 1 {PARA 3 "" 0 "" {TEXT -1 19 "Interval Arithmetic" }}{PARA 0 "" 0 "" {TEXT -1 303 "We h ave now discussed how to count the number of digits in a mantissa, wha t it means to round a number to some number of digits, and the importa nce of writing physical measurements so as to indicate the number of s ignificant digits. We can now consider what it means to do arithmetic with measurements." }}{PARA 0 "" 0 "" {TEXT -1 0 "" }}{EXCHG {PARA 0 "" 0 "" {TEXT -1 88 "Suppose that we multiply 3.6 and 4.5, both of whi ch are known to two significant digits." }}{PARA 0 "" 0 "" {TEXT -1 0 "" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 10 "3.6 * 4.5;" }}}{PARA 0 "" 0 " " {TEXT -1 0 "" }}{PARA 0 "" 0 "" {TEXT -1 453 "Maple gives the answer with a four-digit mantissa, but that doesn't mean that all of the dig its in the product are meaningful. The usual rule of thumb is that a \+ product such as this should be rounded to the same number of digits as there are in the least precise measurement involved in the calculatio n. This is called the method of significant digits. Since both of ou r measurements here have two significant digits, we should round the 1 6.20 to 16." }}{PARA 0 "" 0 "" {TEXT -1 0 "" }}{PARA 0 "" 0 "" {TEXT -1 178 "If we take the resulting 16 at face value, we might be tempted to conclude that the true product must lie between 15.5 and 16.5. Bu t we can put exact bounds on the true product." }}{PARA 0 "" 0 "" {TEXT -1 0 "" }}{EXCHG {PARA 0 "" 0 "" {TEXT -1 139 "The smallest valu e the product can possibly take is if the 3.6 is actually 3.55 and the 4.5 is actually 4.45. In this case, the product is" }}{PARA 0 "" 0 " " {TEXT -1 0 "" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 12 "3.55 * 4.45;" }}} {EXCHG {PARA 0 "" 0 "" {TEXT -1 0 "" }}{PARA 0 "" 0 "" {TEXT -1 143 "T he largest value that the product can possibly take is if the 3.6 is a ctually 3.65 and the 4.5 is actually 4.55. In this case, the product \+ is" }}{PARA 0 "" 0 "" {TEXT -1 0 "" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 12 "3.65 * 4.55;" }}}{PARA 0 "" 0 "" {TEXT -1 0 "" }}{PARA 0 "" 0 "" {TEXT -1 130 "Assuming that the measurements 3.6 and 4.5 are both accu rate to two digits, the true answer must lie between 15.7975 and 16.60 75. " }}{PARA 0 "" 0 "" {TEXT -1 0 "" }}{PARA 0 "" 0 "" {TEXT -1 290 " This approach is called the method of interval arithmetic. The bounds on the true answer that we obtained with interval arithmetic are slig htly different than the ones obtained via the method of significant di gits. This is because the method of significant digits is only a rule of thumb." }}{PARA 0 "" 0 "" {TEXT -1 0 "" }}{EXCHG {PARA 0 "" 0 "" {TEXT -1 109 "The method of significant digits gets less useful as mor e numbers become involved in a calculation. Consider" }}{PARA 0 "" 0 "" {TEXT -1 0 "" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 20 "(3.61 * 4.5) / 1 7.7;" }}}{EXCHG {PARA 0 "" 0 "" {TEXT -1 1 " " }}{PARA 0 "" 0 "" {TEXT -1 248 "Here we get a ten-digit answer. The method of significa nt digits would have us round this to two digits, obtaining .92 as our answer, meaning that the true answer should lie between .915 and .925 . By interval arithmetic we obtain the low bound as" }}{PARA 0 "" 0 " " {TEXT -1 0 "" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 23 "(3.605 * 4.45) / \+ 17.75;" }}}{EXCHG {PARA 0 "" 0 "" {TEXT -1 0 "" }}{PARA 0 "" 0 "" {TEXT -1 21 "and the high bound as" }}{PARA 0 "" 0 "" {TEXT -1 0 "" }} {PARA 0 "> " 0 "" {MPLTEXT 1 0 23 "(3.615 * 4.55) / 17.65;" }}}{PARA 0 "" 0 "" {TEXT -1 0 "" }}{PARA 0 "" 0 "" {TEXT -1 119 "The true answe r thus lies between .903 and .932. The method of significant digits w ould have had us believe otherwise." }}{PARA 0 "" 0 "" {TEXT -1 0 "" } }{PARA 0 "" 0 "" {TEXT -1 323 "It can get rather tricky to compute bou nds via interval arithmetic. To compute the low bound in the last exa mple, we had to use the smallest possible values for the measurements \+ in the numerator and the largest possible values for the measurements \+ in the denominator, and then reverse the process to obtain the high bo und." }}{PARA 0 "" 0 "" {TEXT -1 0 "" }}{EXCHG {PARA 0 "" 0 "" {TEXT -1 371 "The final function provided by the library that you loaded at \+ the beginning of this worksheet, \"intervalEval\", will do interval ar ithmetic for us. We give it as its argument the expression that we wi sh to evaluate with the measurements enclosed in backquotes. (The bac kquote key is in the upper left or right corner of most keyboards.) With \+ the example above, we simply do" }}{PARA 0 "" 0 "" {TEXT -1 0 "" }} {PARA 0 "> " 0 "" {MPLTEXT 1 0 38 "intervalEval(`3.61` * `4.5` / `17.7 `);" }}}{EXCHG {PARA 0 "" 0 "" {TEXT -1 0 "" }}{PARA 0 "" 0 "" {TEXT -1 58 "and we get back the interval in which the result must lie." }} {PARA 0 "" 0 "" {TEXT -1 0 "" }}{PARA 0 "" 0 "" {TEXT -1 215 "\011If a computation involves a number that is NOT a measurement, we simply le ave off the backquotes and write it as usual. For example, the calcul ation of the circumference of the earth from Chapter 3 of the text is \+ " }}{PARA 0 "" 0 "" {TEXT -1 0 "" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 40 "intervalEval(360 / 7.2 * 50e2 * 0.1575);" }}}{EXCHG {PARA 0 "" 0 "" {TEXT -1 0 "" }}{PARA 0 "" 0 "" {TEXT -1 93 "We get an exact answer be cause we didn't put the measurements in backquotes. When we do that" }}{PARA 0 "" 0 "" {TEXT -1 0 "" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 50 "i ntervalEval((360 / `7.2`) * (`50e2` * `0.1575`));" }}}{EXCHG {PARA 0 " " 0 "" {TEXT -1 0 "" }}{PARA 0 "" 0 "" {TEXT -1 33 "we get bounds on t he true answer." }}{PARA 0 "" 0 "" {TEXT -1 0 "" }}}{SECT 1 {PARA 4 " " 0 "" {TEXT -1 9 "Exercises" }}{EXCHG {PARA 0 "" 0 "" {TEXT -1 638 "D oing interval arithmetic can take a big of ingenuity. Given the range s in which several the measurements involved in a calculation must lie , you must figure out what is the smallest possible answer and what is the largest possible answer. If you don't have access to Maple and o ur library functions, it can take a bit of thought. As a final exerci se, we will give some expressions. Use interval arithmetic to calcula te the interval in which the true value must lie, and compare it to th e result predicted by the method of significant digits. Then check yo ur answer with \"intervalEval\". As always, try out some examples of \+ your own." }}{PARA 0 "" 0 "" {TEXT -1 0 "" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 20 "2.5e2 * 2.4e1 + 11.;" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 18 "sqrt(45.1) * .001;" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 19 "4.5^3.001 + 100.00;" }}}}}}{MARK "4" 0 }{VIEWOPTS 1 1 0 1 1 1803 }