home *** CD-ROM | disk | FTP | other *** search
/ ARM Club 1 / ARM_CLUB_CD.iso / contents / apps / clib / progs / meschach / !Meschach / ReadMe < prev   
Encoding:
Text File  |  1994-08-01  |  17.6 KB  |  164 lines

  1. lable by anonymous ftp from some ftp sites (try archie to discover 
  2. them). The files are usually called memmove.c or memset.c.
  3. Some ftp sites which currently (Jan '94) have a version of these files are
  4. munnari.oz.au (in Australia), ftp.uu.net, gatekeeper.dec.com (USA), and
  5. unix.hensa.ac.uk (in the UK).  The directory in which you will find
  6. memmove.c and memset.c typically looks like .../bsd-sources/lib/libc/...
  7.  
  8.    There are two further machine-dependent quantities that should be set.
  9. These are machine epsilon or the unit roundoff for double precision
  10. arithmetic, and the maximum value produced by the rand() routine, which is
  11. used in rand_vec() and rand_mat().
  12.  
  13.  
  14.    The current definitions of these are
  15.  
  16.   #define    MACHEPS    2.2e-16
  17.   #define    MAX_RAND 2.147483648e9
  18.  
  19.    The value of MACHEPS should be correct for all IEEE standard double
  20. precision arithmetic.
  21.  
  22.    However, ANSI C's <float.h> contains #define'd quantities DBL_EPSILON
  23. and RAND_MAX, so if you have an ANSI C compiler and headers, replace the
  24. above two lines of machine.h with
  25.  
  26.   #include <float.h>
  27.   /* for Real == float */
  28.   #define MACHEPS DBL_EPSILON
  29.   #define MAX_RAND RAND_MAX
  30.  
  31.    The default value given for MAX_RAND is 2^31 , as the Pyramid 9810 and
  32. the SPARC 2's both have 32 bit words.  There is a program macheps.c which
  33. is included in your source files which computes and prints out the value of
  34. MACHEPS for your machine.
  35.  
  36.    Some other macros control some aspects of Meschach.  One of these is
  37. SEGMENTED which should be #define'd if you are working with a machine or
  38. compiler that does not allow large arrays to be allocated.  For example,
  39. the most common memory models for MS-DOS compilers do not allow more than
  40. 64Kbyte to be allocated in one block.  This limits square matrices to be no
  41. more than 9090 .  Inserting #define SEGMENTED 1 into machine.h will mean
  42. that matrices are allocated a row at a time.
  43.  
  44.  
  45.  
  46.                   4. SAMPLE TESTS
  47.  
  48.     There are several programs for checking Meschach called torture
  49. (source: torture.c) for the dense routines, sptort (source: sptort.c) for
  50. the sparse routines, ztorture (source ztorture.c) for a complex version of
  51. torture, memtort (source memtort.c) for memory allocation/deallocation,
  52. itertort (source itertort.c) for iterative methods, mfuntort (source
  53. mfuntort.c) for computing powers of dense matrices, iotort (source
  54. iotort.c) for I/O routines.  These can be compiled using make by "make
  55. torture", "make sptort", etc.  The programs are part of meschach0.shar.
  56.  
  57.  
  58.                  5. OTHER PROBLEMS
  59.  
  60.    Meschach is not a commercial package, so we do not guarantee that
  61. everything will be perfect or will install smoothly.  Inevitably there will
  62. be unforeseen problems. If you come across any bugs or inconsistencies, please
  63. let us know.  If you need to modify the results of the configure script, or
  64. need to construct your own machine.h and makefile's, please send them to
  65. us.  A number of people sent us the machine dependent files for Meschach 1.1,
  66. but with the use of configure, and the new information needed for version
  67. 1.2, these machine dependent files don't have quite the right information.
  68. Hopefully, though, they are redundant.  Non-Unix platforms at present
  69. require ``manual'' installation.  Because of the variety of platforms
  70. (MS-DOS, Macintosh, VAX/VMS, Prime, Amiga, Atari, ....) this is left up to
  71. the users of these platforms.  We hope that you can use the dâ2tiê
  72. 0 á ™â -é„å€àŴ‘íŴ-í‘è ½èëЙâ0 á-éŴ‡íŴ-íŴ‡íŴ-í â‘ á á á½èëЙâUã
  73. 0 á-éŴ‡íŴ-íŴ‡íŴ-í      á á á½èëЙâ0 á-éŴ‡íŴ-íŴ‡íŴ-í      á á á½èëЙâpGâWãÊÿÿª„åŴ‘í  ã á ê“å’å€Ŵà(0å0›å€1◰à’›í€!î’’íŴî’Ŵí€â“åQáðÿÿ⇩p á*ê
  74. 0 á ™â -é“å`â‘ á‘çŴàŴ’íŴ-í‘ç€à‘è ½èëЙâ0 á-éŴ‡íŴ-íŴ‡íŴ-í      á á á½èrror messages etc., will use the new names.  Also note that the new
  75. iterative routines have a very different calling sequence.  If you need the
  76. old iterative routines, they are in oldmeschach.shar.
  77.  
  78.    If you wish to let us know what you have done, etc., our email
  79. addresses are
  80.  
  81.              david.stewart@anu.edu.au
  82.              zbigniew.leyk@anu.edu.au
  83.  
  84.     Good luck!
  85.  
  86.  
  87.                   ACKNOWLEDGMENTS
  88.  
  89.  
  90.     Many people have helped in various ways with ideas and suggestions.
  91. Needless to say, the bugs are all ours!  But these people should be thanked
  92. for their encouragement etc.  These include a number of people at
  93. University of Queensland: Graeme Chandler, David De Wit, Martin Sharry,
  94. Michael Forbes, Phil Kilby, John Holt, Phil Pollett and Tony Watts.  At the
  95. Australian National University: Mike Osborne, Steve Roberts, Margaret Kahn
  96. and Teresa Leyk.  Karen George of the University of Canberra has been a
  97. source of both ideas and encouragement.  Email has become significant part
  98. of work, and many people have pointed out bugs, inconsistencies and
  99. improvements to Meschach by email.  These people include Ajay Shah of the
  100. University of Southern California, Dov Grobgeld of the Weizmann Institute,
  101. John Edstrom of the University of Calgary, Eric Grosse, one of the netlib
  102. organisers, Ole Saether of Oslo, Norway, Alfred Thiele and Pierre
  103. Asselin of Carnegie-Mellon Univeristy, Daniel Polani of the University of
  104. Mainz, Marian Slodicka of Slovakia, Kaifu Wu of Pomona, Hidetoshi
  105. Shimodaira of the University of Tokyo, Eng Siong of Edinburgh, Hirokawa Rui
  106. of the University of Tokyo, Marko Slyz of the University of Michigan, and
  107. Brook Milligan of the University of Texas.  This list is only partial, and
  108. there are many others who have corresponded with us on details about
  109. Meschach and the like.  Finally our thanks go to all those that have had to
  110. struggle with compilers and other things to get Meschach to work.
  111.  
  112.                      
  113.  
  114.  
  115.  
  116. FileDataŵcts³
  117.  
  118.         uEýÿÿ2õ ®L÷◰‹À;è TeX output 1993.08.10:1622⇧ÿÿÿÿ ©R³™ ýb­M ☓2™ ýflQ2™‹ºÎ⇦ó#ÖÆáHG®cmss17ÎMeschach‰fl+°Ç™‹‡È¢ó)ŵÎR6ff cmss12ÔMatrix„³/Computations›in›C‰ ®C™™™™™‹¥jhfi²×óKñ`y
  119. cmr10²c‰‰‰™™™‹¢£Kó
  120. !",Œ
  121. cmsy10¸
  122. ‰‰‰‰‹¯ø¡²1986{1992’
  123. DaŒ¸ãvid„UUE.›Stew—art‰‰flKŴ™‹éXªi‰‰…⇧* ©R³™ ýb­M ☓2™ ý—
  124. ™‹¨Ø¢²Unix„UUis›a›trademark›of›A’ÿ*ªT&T‰¤ ™’~*dMAœÿ*ªTLAB„UUis›a›trademark›of›The›MathW—orks›Inc.‰¡™’[XŒMAœÿ*ªTCALC„UUis›a›trademark›of›the›Univ”¸ãersit›y„UUof›New›South›W—ales‰¡™’lu MS-DOS„UUand›Quic‘¸ãk›C›are›trademarks›of›MicroSoft›Corp.‰¡™’hü*SUN„UUand›SP’ÿ*ªAR‘¸ãC›are›trademarks›of›Sun›Microsystems›Inc.‰¡™‹ŵ”
  125. Pyramid„UUis›a›trademark›of›Pyramid›Computers‰¡™’dµ IBM„UUR’ÿ*ªT,›IBM›RS/6000›and›IBM›PC›are›trademarks›of›IBM‰¡™‹—q◰8086„UUand›i860›are›trademarks›of›In‘¸ãtel‰¡™‹¡xfl68000„UUis›a›trademark›of›Motorola‰¡™‹−µWœÿ*ªeitek„UUis›a›trademark›of›W—eitek›Inc.‰fl(sç™’RŷÑMesc”¸ãhac›h„UUmatrix›library›source›co‘Gde™™™™’rfi²×c‰‰‰™™™›¸
  126. ‰‰‰‰’ª«²DaŒ¸ãvid›E.›Stew—art,›1986{1992‰ s¨™’ó*ò"V
  127. cmbx10ÕThis„Sÿdo‘QÇcumenŒ®9tation›is›curren—tly›under›consideration›for›publication,’s©and›therefore›IT’SÞIS‰¡™NOT„ÕTF‘®9OR›REDISTRIBUTION.‰ “]™’ó:ÂÖN  cmbx12åMesc” hac›h’™<ISœ…µPR›O›VIDED—\AS—IS",’™<WITHOUT—ANY—EXPRESS—OR—IM-‰¡™PLIED„!@W’þ€ARRANTY.œ!XIN›P„þàAR›TICULAR,—THE„!@A‘ UTHOR›DOES›NOT›MAKE‰¡™ANYœÔÂREPRESENT„þàA›TION—OR—W’þ€ARRANTY—OF—ANY—KIND—CONCERNING‰¡™THE„ÏñMERŒ CHANT’þàABILITY›OF›THIS›SOFTW’þ€ARE›OR›ITS›FITNESS›F—OR‰¡™ANYœ€P„þàAR›TICULAR—PURPOSE.‰‰flKŴ™‹çõ²ii‰‰…⇧Z ©R³™ ýb­M ☓2™ ý—
  128. ™‹¾)    ó;ÂÖN ff cmbx12æIn‘…Ìtro‘s3duction‰flMQã™’²Most„¯of›nŒ¸ãumerical›analysis›relies›on›algorithms›for›p‘Gerforming›caclulations›on›matrices›and›v—ectors.’V‘The‰¤ ™op‘Gerations„uhmost›needed›are›ones›whicŒ¸ãh›solv—e›systems›of›linear›equations,’}lsolv—e›least›squares›problems,’}land‰¡™eigenŒ¸ãv’ÿqÇalue„☓²and›eigen—v—ector›calculations.’ÿÞThese›op‘Gerations›form›the›basis›of›most›algorithms›for›solving‰¡™systems„gnof›nonlinear›equations,’kônŒ¸ãumerically›computing›the›maxim—um›or›minim—um›of›a›function,’kôor›solving‰¡™di eren‘¸ãtial’UUequations.‰¡™’Theœ©­Mesc”¸ãhac›h—library—con›tains—routines—to—address—all—of—the—basic—op‘Gerations—for—dealing—with—matrices‰¡™and„lQvŒ¸ãectors,’rand›a›n—um—b‘Ger›of›other›issues›as›w—ell.’¶ºI’lKdo›not›claim›that›it›con—tains›ev—ery›useful›algorithm›in‰¡™nŒ¸ãumerical„☓linear›algebra,’ªHbut›it›do‘Ges›pro—vide›a›basis›on›whic—h›to›build›more›adv’ÿqÇanced›algorithms.’*ŵThe›library‰¡™is„
  129. VinŒ¸ãtended›for›p‘Geople›who›kno—w›something›of›the›`C'’
  130. Dprogramming›language,’½something›of›ho—w›to›solv—e›the‰¡™nŒ¸ãumerical„,Ùproblem›they›are›faced›with›(whic—h›in—v—olv—es›matrices›and/or›v—ectors)›but›don't›w—an—t›to›ha—v—e›the‰¡™hassle„ô°of›building›all›the›necessary›opŒGerations›from›the›ground›up.’Q‘I’ô–hop—e›that›researc‘¸ãhers,’mathematicians,‰¡™engineers„V.and›programmers›will› nd›this›library›makŒ¸ães›the›task›of›dev—eloping›and›proŒGducing›co—de›for›their‰¡™nŒ¸ãumerical„UUproblems›easier,›and›easier›to›main—tain›than›w—ould›otherwise›bŒGe›p—ossible.‰¡™’T’ÿ*ªo„t this›end›the›source›coŒGde›is›a‘¸ãv’ÿqÇailable›to›b—e›p—erused,œ{ºused›and›passed›on›without›cost,—while›ensuring‰¡™that„Ýsthe›qualitŒ¸ãy›of›the›soft—w—are›is›not›compromised.’
  131. !The›soft—w—are›ó<ý':
  132. cmti10çis’¯“²cop—yrigh—ted;’!ŵho—w—ev—er,’ÿzthe›cop—yrigh—t‰¡™agreemen”¸ãtœ(ºfollo›ws—in—the—fo‘Gotsteps—of—the—F’ÿ*ªree—Soft›w›are—F’ÿ*ªoundation—in—prev›en›ting—abuse—that—o‘Gccurs—with‰¡™totally„UU\public›domain"›soft”¸ãw›are.‰¡™’This„jºis›not›the› rst›or›only›library›of›nŒ¸ãumerical›routines›in›C.›Ho—w—ev—er,’°there›are›still›a›n—um—b‘Ger›of‰¡™nic”¸ãhesœUwhic›h—ha›v›e—not—b‘Geen— lled.’ÏÈSome—of—the—curren›tly—a›v’ÿqÇailable—libraries—are—essen›tially—translations—of‰¡™F’ÿ*ªortran„¡mroutines›inŒ¸ãto›C.›Those›that›attempt›to›mak—e›use›of›C's›features›usually›address›a›relativ—ely›small‰¡™class„Ŵ7of›problems.’õmThere›is›a›commercial›pac‘¸ãk’ÿqÇage›of›C++›routines›(and›classes)›for›p‘Gerforming›matrix‰¡™computations,’{¤and„sûNA‘¸ãGœsóand›IMSL—are›pro‘Gducing›C—v‘¸ãersions›of›their›libraries,’{¤but›none›of›these›is›\public‰¡™domain"„`in›anŒ¸ãy›sense.’’ÒThe›Mesc—hac—h›library›mak—es›extensiv—e›use›of›C's›spŒGecial›features›(p—oin‘¸ãters,’b¯memory‰¡™allo”Gcation/deallo›cation,„ŵÝstructures/records,›lo”¸ãwœyÂlev›el—op”Gerations)—to—ease—use—and—ensure—go›o›d—p›erformance.‰¡™Inœåaaddition,’IcMesc”¸ãhac›h—addresses—the—need—for—b”Goth—dense—and—sparse—matrix—op›erations—within—a—single‰¡™framew‘¸ãork.‰¡™’There„Äflis›another›issue›whicŒ¸ãh›needs›to›b‘Ge›addressed›b—y›a›matrix›library›lik—e›this.’¿¥A—t›one›end,’àqlibraries‰¡™that„³·are›essenŒ¸ãtially›translations›from›F’ÿ*ªortran›will›mak—e›little›use›of›memory›allo‘Gcation.’…íA—t›the›other›end,‰¡™in”¸ãteractiv›e„´¾matrix›\calculators"›suc‘¸ãh›as›MAœÿ*ªTLAB’´dand›MA—TCALC’´duse›memory›allo‘Gcation›and›garbage‰¡™collection„3Åas›a›matter›of›course›and›ha”¸ãv›e„3Åto›inŒ¸ãterpret›y—our›\program".’f–This›latter›approac—h›is›v—ery›
  133. exible,‰¡™but„UUresource›hŒ¸ãungry’ÿ*ª.’qÇThese›matrix›calculator›programs›w—ere›not›designed›to›deal›with›large›problems.‰¡™’This„®matrix›librv_minv_maxv_sortx$stack_overflow_1px_resizepx_identv_sumv_convv_pconv€ÐâÅ„&"è] 4ÅÆËÃOBJ_HEAD†@OBJ_AREA\HOBJ_IDFN¤0OBJ_SYMTÔ`OBJ_STRT4hêm_version ÿ
  134. À áØ-é°Lâ
  135. ]ổâë`flå•âë•âë•âë)•âë4•âë:•âëF•âhéêMeshach matrix library version 1.2b
  136. RCS id: %s
  137. Changes since 1.2a:
  138.      Fixed bug in schur() for 2x2 blocks with real e-vals
  139.      Fixed bug in schur() reading beyond end of array
  140.      Fixed some installation bugs
  141.      Fixed bugs & improved efficiency in spILUfactor()
  142.      px_inv() doesn't crash inverting non-permutations
  143. —
  144. l`XPH@8,$$Id: version.c,v 1.9 1994/03/24 00:04:05 des Exp $Norcroft RISC OS ARM C vsn 4.00 [May  3 1991]'.8 BL]eC$$codeC$$dataC$$zidataC$$debug__mainx$codesegx$datasegm_versionx$stack_overflow_printf€ÐâÅ„"¼ 4ÅÆËÃOBJ_HEADX
  145. @OBJ_AREA\,OBJ_IDFN⇦0OBJ_SYMT¸ðOBJ_STRT¨    °ê_zm_copy ÿ
  146. À áÿØ-é°Lâ
  147. ]á»P°á@ áp á` á0 ã-é?•â•â)  ã ãëЙâUá ð¨[    Tã
  148. “å”åPá:“å”åPá*”è áë@ áê_zm_copyc.zcopy”å@à" á”å‘ç€à“å‘ç€àëpâ”åPáñÿÿ⇩ áð¨[é_zv_copy ÿ
  149. À áwØ-é°Lâ
  150. ]á»P°á@ á` á0 ã-é?•â$Oâ@  ã ãëЙâUá p¨[    Tã
  151. “å”åPá*”å áë@ á”å@à" á”å€à“å€àë áp¨[é_zv_copyzm_moveÿ
  152. À á-éðÛ-é°Lâ
  153. ]á»P°á@ á`œå€œå‘œå0 ã-é,?•âUOâ`  ã ãëЙâœåP㺠œåPãºY㺠œåPã
  154. ºTã ºXã    º”åœåŴàPá:”å œåŴàPá*0 ã-é ?•âvOâc  ã ãëЙ⠜堀à⇨àVã á
  155. êzm_move„åQá:0„åSá*0„åSá  ŴQá⇩ á áë` áp ãŵ á
  156. ê”åœåŴà‘ç œå€à„å ⇨à‘ç  œå€à  áëpâWáïÿÿº áð«[ézv_moveÿ
  157. À á-éðÙ-é°Lâ
  158. ]á»p°á` áP á@ á€œå0 ã-é'?•âºOâz  ã ãëЙâVãºUãºX㺖åŷàPá*0 ã-é?•âÌOâ}  ã ãëЙâ⇦àTã
  159. “åPá* áë@ á–å€à“å€à" áë áð©[ézv_movezmv_move ÿ
  160. À á-éðÛ-é°Lâ
  161. ]á»P°á@ á`œå€œå‘œåÐMâ0 ã-é1?•âøOâ”  ã ãëЙâœåP㺠œåPãºTã
  162. ºXã ºYã    º”åœåŴàPá:”å œåŴàPá*0 ã-é?•â•â—  ã ãëЙâ—àVã
  163. „å ⇨àQá*⇨à áë` áp ã á™åêzmv_movec.zcopy”åœåŴà‘ç œå€à „å—– àŵà ‡åëpâWáñÿÿº áð«[ézvm_move ÿ
  164. À á-éðÛ-é°Lâ
  165. ]á»P°á@ ápœå€œå‘œåÐMâ0 ã-é%?•â(Oâ±  ã ãëЙâœå–àQã
  166. ºœåQã
  167. ºYãºXãºW㺔堜å€àQá*0 ã-é ?•âBOâ´  ã ãëЙâ ⇨àœå€àTã á    êzvm_move“åQá:  á“åQá 1 áë@ á` ã á™å ê”å œå–& àŴà“å œå ŵà‘ç    €à ‡åë`ŷâVáñÿÿº áð«[éø¸hÈ…8
  168.  “\$
  169. ä†h0ì…Ô†x
  170. DÜ—T$$Id: zcopy.c,v 1.1 1994/01/13 04:28:42 des Exp $Norcroft RISC OS ARM C vsn 4.00 [May  3 1991]'.8 B HQbis{☓‰À„TfiH§´°C$$codeC$$dataC$$zidataC$$debug__mainx$codesegx$datasegrcsid_zm_copyx$stack_overflowev_errzm_resizememmove_zv_copyzv_resizezm_movezv_movezmv_movezvm_move€ÐâÅ„" 4ÅÆËÃOBJ_HEAD
  171. @OBJ_AREA\HOBJ_IDFN¤0OBJ_SYMTÔ€OBJ_STRTT    Àêzmakeÿ
  172. À á-éØ-é°Lâ-é’½ìŴœí’-íŴ™í
  173.  á±è è’è€è¨[éznegÿ
  174. À á-éØ-é°Lâ áŴœí€ŴîŴ⇧íŴœí€ŴîŴ⇧í⇧â P‘è PŴè¨[ézabsÿ
  175. À áØ-éQmíAmí°Lâ
  176. ]á»ÐMâŴíñÐî€Ñ¾€Ñ®ŴíñÐî€Á¾€Á®ñÕîŶŴ¾☓Ѿ€Á¾0™â-éÑ-í½èë€Ñî
  177. 0 á-éÁ-í½èë€Áî‡è0@à-éÁ-í½èë€ÁîŶî☓îŴîŴ-í½èë0 á-éŴ-í½èëA[í Q[í¨[ézaddÿ
  178. À á-éØ-é°Lâ áŴœí’œíŴîŴ-í’œíŴœí€îŴ™í
  179.  á°è¡è‘èŴè¨[ézsubÿ
  180. À á-éØ-é°Lâ áŴœí’œíŴ îŴ-í’œíŴœí€!îŴ™í
  181.  á°è¡è‘èŴè¨[ézmltÿ
  182. À á-éØ-éQmíAmí°L⡜풜íŴAîŴœí±œí◰QîŶA$îÁ-í◰!îŴî€îŴ™í
  183.  á±è è’è€è    A[íQ[í¨[ézinvÿ
  184. À á-é0Ø-éqmíamíQmíAmí°Lâ
  185. ]á»@ áÐMâŴœíñ‘î
  186. Ŵœíñ‘î0 ã-é=?•â>•â⇧  ã ãëЙâáœíñÖîŷѾŷÑ®ñœíñ×îÁ¾Á®ñÕîŶŴ¾☓Ѿ€Á¾0™â-éÑ-í½èë€Ñî
  187. 0 á-éÁ-í½èë€Áî!‡è0@à-éÁ-í½èë€ÁîŶî☓îŴî⇨ŴîŴA@î0eâ◰0 á-éŴ-í½èë€î€î’⇧í’î€îŴ⇧í⇧â á P‘è PŴèA[íQ[í a[íq[í0¨[ézinvc.zfunczdivÿ
  188. À á-éØ-é°Lâ
  189. ]á»@ á0ÐMâ(⇧â@1é@-é™âé–ÿÿëЙâ™â P1é P-é⇧â@1é@-é$™âépÿÿëЙâ á™â P’è P€è¨[ézsqrtÿ
  190. À á-éØ-éAmí°Lâ
  191. ]á»@ áŴœí€Á îÐMâ⇧âéõþÿë€î‰îŴ-í½èë’œíñÑîºŴ™í⇩îŴœíŴ@îê’œíŴ± î⇩!îŵ!Cî¡™íñÑŴîŴ™í
  192.  á á±è è’è€èA[í¨[ézexpÿ
  193. À á-éØ-é°Lâ
  194. ]á»@ áÐMâ⇧âéë’œíŴ¡‘î€!î¡™íŴ’€î€îŴ™í
  195.  á á P‘è PŴè¨[ézlogÿ
  196. À á-éØ-é°Lâ
  197. ]á»@ áÐMâ⇧âé¯þÿëŴ-í½èëŴ™íŴœíŴ-í⇧âé ½èëŴ™í
  198.  á á P‘è PŴè¨[ézconjÿ
  199. À á-éØ-é°Lâ áŴœíŴ-íŴœí€ŴîŴ™í
  200.  á°è¡è‘èŴè¨[éèÈt`Ø
  201. ¨ °    €    dLÈd    P
  202. 4    ¸$Id: zfunc.c,v 1.1 1994/01/13 04:28:29 des Exp $Norcroft RISC OS ARM C vsn 4.00 [May  3 1991]'.8 B HNXS Xiouz€Ø☓0⇨¤‰” Œ‘ L¥©´®²¸,¾C$$codeC$$dataC$$zidataC$$debug__mainx$codesegx$datasegrcsidzmakeznegzabsx$stack_overflowfrexpldexpsqrtzaddzsubzmltzinvev_errzdivzsqrtzexpexpzloglogatan2zconj€ÐâÅ„"l 4ÅÆËÃOBJ_HEAD¸    @OBJ_AREA\ÀOBJ_IDFN0OBJ_SYMTLÐOBJ_STRT    †êzgivensÿ
  203. À á-é0Ø-éAmí°Lâ
  204. ]á»(@œå$PœåÐMâ⇧âéëŴ­ì$⇧âéëŴ™í™âé뀱î⇨Ŵîñ›îŴŶí⇦ŴîŴ☓íŴ☓íꡇíŵ@îÁœíŴAîÁ⇧íÁœíŴî’⇧í◰@î€î’Ŷí’œí¡œíŵ!î’œí±œí◰îŴîŵî’☓í¡œí’œíŴ!î’œí±œí◰îŴ"î€