home *** CD-ROM | disk | FTP | other *** search
/ ARM Club 1 / ARM_CLUB_CD.iso / contents / apps / clib / progs / meschach / Book / datastruct < prev    next >
Encoding:
Text File  |  1993-08-10  |  30.1 KB  |  279 lines

  1. e dependent
  2. files makefile, machine.c and machine.h.  Copy those files from the
  3. directory for your machine to the directory where the source code is.
  4.  
  5.    To link into a program prog.c, compile it using
  6.  
  7.   cc -o prog_name prog.c ....(source files).... meschach.a -lm
  8.  
  9.  
  10.    This code has been mostly developed on the University of Queensland,
  11. Australia's Pyramid 9810 running BSD4.3.  Initial development was on a
  12. Zilog Zeus Z8000 machine running Zeus, a Unix workalike operating system.
  13. Versions have also been successfully used on various Unix machines
  14. including Sun 3's, IBM RT's, SPARC's and an IBM RS/6000 running AIX.  It
  15. has also been compiled on an IBM AT clone using Quick C.  It has been
  16. designed to compile under either Kernighan and Richie, (Edition 1) C and
  17. under ANSI C.  (And, indeed, it has been compiled in both ANSI C and
  18. non-ANSI C environments.)
  19.  
  20.  
  21.               b) On non-Unix machines
  22.  
  23.    First look in the machines directory for your system type.  If it is
  24. there, then copy the machine dependent files machine.h, makefile (and
  25. possibly machine.c) to the Meschach directory.
  26.  
  27.    If your machine type is not there, then you will need to either compile
  28. ``by hand'', or construct your own makefile and possibly machine.h as well.
  29. The machine-dependent files for various systems should be used as a
  30. starting point, and the ``vanilla'' version of machine.h should be used.
  31. Information on the machine-dependent files follows in the next three
  32. subsections.
  33.  
  34.    On an IBM PC clone, the source code would be on a floppy disk. Use
  35.  
  36.   xcopy a:* meschach
  37.  
  38. to copy it to the meschach directory.  Then ``cd meschach'', and then
  39. compile the source code.  Different compilers on MSDOS machines will
  40. require different installation procedures.  Check the directory meschach
  41. for the appropriate ``makefile'' for your compiler.  If your compiler is
  42. not listed, then you should try compiling it ``by hand'', modifying the
  43. machine-dependent files as necessary.
  44.  
  45.    Worst come to worst, for a given C compiler, execute
  46.         <C compiler name> *.c
  47. on MS-DOS machines. For example,
  48.         tcc *.c
  49. for Turbo C, and
  50.         msc *.c
  51. for Microsoft C, or if you are using Quick C,
  52.         qcl *.c
  53. and of course
  54.         cc *.c
  55. for the standard Unix compiler.
  56.  
  57.    Once the object files have been generated, you will need to combine them
  58. into a library. Consult your local compiler's manual for details of how to
  59. do this.
  60.  
  61.    When compiling programs/routines that use Meschach, you will need to
  62. have access the the header files in the INCLUDE directory. The INCLUDE
  63. directory's contents can be copied to the directory where the
  64. programs/routines are compiled.
  65.  
  66.    The files in the DOC directory form a very brief form of documentation
  67. on the the library routines in Meschach. See the printed documentation for
  68. more comprehensive documentation of the Meschach routines.  This can be
  69. obtained from the authors via email.
  70.  
  71.    The files and directories created by the machines.shar shell archive
  72. contain the files machine.c machine.h and makefile for a particular
  73. machine/operating system/compiler where they need to be different.  Copy
  74. the files in the appropriate directory for your machine/operating
  75. system/compiler to the directory with the Meschach source before compiling.
  76.  
  77.  
  78.  
  79.                    c)  makefile
  80.  
  81.  
  82.    This is setup by using the configure script on a Unix system, based on
  83. the makefile.in file.  However, if you want to modify how the library is
  84. compiled, you are free to change the makefile.
  85.  
  86.    The most likely change that you would want to make to this file is to
  87. change the line
  88.  
  89.   CFLAGS = -O
  90.  
  91. to suit your particular compiler.
  92.  
  93.   The code is intended to be compilable by both ANSI and non-ANSI
  94. compilers.
  95.  
  96.    To achieve this portability without sacrificing the ANSI function
  97. prototypes (which are very useful for avoiding problems with passing
  98. parameters) there is a token ANSI_C which must be #define'd in order to
  99. take full advantage of ANSI C.  To do this you should do all compilations
  100. with
  101.  
  102.   #define ANSI_C 1
  103.  
  104.    This can also be done at the compilation stage with a -DANSI_C flag.
  105. Again, you will have to use the -DANSI_C flag or its equivalent whenever
  106. you compile, or insert the line
  107.  
  108.   #define ANSI_C 1
  109.  
  110. in machine.h, to make full use of ANSI C with this matrix library.
  111.  
  112.  
  113.                    d)  machine.h
  114.  
  115.    Like makefile this is normally set up by the configure script on Unix
  116. machines.  However, for non-Unix systems, or if you need to set some things
  117. ``by hand'', change machine.h.
  118.  
  119.    There are a few quantities in here that should be modified to suit your
  120. particular compiler.  Firstly, the macros MEM_COPY() and MEM_ZERO() need to
  121. be correctly defined here.  The original library was compiled on BSD
  122. systems, and so it originally relied on bcopy() and bzero().
  123.  
  124.    In machine.h you will find the definitions for using the standard ANSI C
  125. library routines:
  126.  
  127.   /*--------------------ANSI C--------------------*/
  128.   #include        <stddef.h>
  129.   #include        <string.h>
  130.   #define    MEM_COPY(from,to,size)  memmove((to),(from),(size))
  131.   #define    MEM_ZERO(where,size)    memset((where),'\0',(size))
  132.  
  133.    Delete or comment out the alternative definitions and it should compile
  134. correctly.  The source files containing memmove() and/or memset() are
  135. available by anonymous ftp from some ftp sites (try archie to discover 
  136. them). The files are usually called memmove.c or memset.c.
  137. Some ftp sites which currently (Jan '94) have a version of these files are
  138. munnari.oz.au (in Australia), ftp.uu.net, gatekeeper.dec.com (USA), and
  139. unix.hensa.ac.uk (in the UK).  The directory in which you will find
  140. memmove.c and memset.c typically looks like .../bsd-sources/lib/libc/...
  141.  
  142.    There are two further machine-dependent quantities that should be set.
  143. These are machine epsilon or the unit roundoff for double precision
  144. arithmetic, and the maximum value produced by the rand() routine, which is
  145. used in rand_vec() and rand_mat().
  146.  
  147.  
  148.    The current definitions of these are
  149.  
  150.   #define    MACHEPS    2.2e-16
  151.   #define    MAX_RAND 2.147483648e9
  152.  
  153.    The value of MACHEPS should be correct for all IEEE standard double
  154. precision arithmetic.
  155.  
  156.    However, ANSI C's <float.h> contains #define'd quantities DBL_EPSILON
  157. and RAND_MAX, so if you have an ANSI C compiler and headers, replace the
  158. above two lines of machine.h with
  159.  
  160.   #include <float.h>
  161.   /* for Real == float */
  162.   #define MACHEPS DBL_EPSILON
  163.   #define MAX_RAND RAND_MAX
  164.  
  165.    The default value given for MAX_RAND is 2^31 , as the Pyramid 9810 and
  166. the SPARC 2's both have 32 bit words.  There is a program macheps.c which
  167. is included in your source files which computes and prints out the value of
  168. MACHEPS for your machine.
  169.  
  170.    Some other macros control some aspects of Meschach.  One of these is
  171. SEGMENTED which should be #define'd if you are working with a machine or
  172. compiler that does not allow large arrays to be allocated.  For example,
  173. the most common memory models for MS-DOS compilers do not allow more than
  174. 64Kbyte to be allocated in one block.  This limits square matrices to be no
  175. more than 9090 .  Inserting #define SEGMENTED 1 into machine.h will mean
  176. that matrices are allocated a row at a time.
  177.  
  178.  
  179.  
  180.                   4. SAMPLE TESTS
  181.  
  182.     There are several programs for checking Meschach called torture
  183. (source: torture.c) for the dense routines, sptort (source: sptort.c) for
  184. the sparse routines, ztorture (source ztorture.c) for a complex version of
  185. torture, memtort (source memtort.c) for memory allocation/deallocation,
  186. itertort (source itertort.c) for iterative methods, mfuntort (source
  187. mfuntort.c) for computing powers of dense matrices, iotort (source
  188. iotort.c) for I/O routines.  These can be compiled using make by "make
  189. torture", "make sptort", etc.  The programs are part of meschach0.shar.
  190.  
  191.  
  192.                  5. OTHER PROBLEMS
  193.  
  194.    Meschach is not a commercial package, so we do not guarantee that
  195. everything will be perfect or will install smoothly.  Inevitably there will
  196. be unforeseen problems. If you come across any bugs or inconsistencies, please
  197. let us know.  If you need to modify the results of the configure script, or
  198. need to construct your own machine.h and makefile's, please send them to
  199. us.  A number of people sent us the machine dependent files for Meschach 1.1,
  200. but with the use of configure, and the new information needed for version
  201. 1.2, these machine dependent files don't have quite the right information.
  202. Hopefully, though, they are redundant.  Non-Unix platforms at present
  203. require ``manual'' installation.  Because of the variety of platforms
  204. (MS-DOS, Macintosh, VAX/VMS, Prime, Amiga, Atari, ....) this is left up to
  205. the users of these platforms.  We hope that you can use the distibutable
  206. machine-dependent files as a starting point for this task.
  207.  
  208.    If you have programs or routines written using Meschach v.1.1x, you
  209. should put the statement
  210.  
  211.    #include "oldnames.h"
  212.  
  213. at the beginning of your files.  This is because a large number of the
  214. names of the routines have been changed (e.g. "get_vec()" has become
  215. "v_get()").  This will enable you to use the old names, although all of the
  216. error messages etc., will use the new names.  Also note that the new
  217. iterative routines have a very different calling sequence.  If you need the
  218. old iterative routines, they are in oldmeschach.shar.
  219.  
  220.    If you wish to let us know what you have done, etc., our email
  221. addresses are
  222.  
  223.              david.stewart@anu.edu.au
  224.              zbigniew.leyk@anu.edu.au
  225.  
  226.     Good luck!
  227.  
  228.  
  229.                   ACKNOWLEDGMENTS
  230.  
  231.  
  232.     Many people have helped in various ways with ideas and suggestions.
  233. Needless to say, the bugs are all ours!  But these people should be thanked
  234. for their encouragement etc.  These include a number of people at
  235. University of Queensland: Graeme Chandler, David De Wit, Martin Sharry,
  236. Michael Forbes, Phil Kilby, John Holt, Phil Pollett and Tony Watts.  At the
  237. Australian National University: Mike Osborne, Steve Roberts, Margaret Kahn
  238. and Teresa Leyk.  Karen George of the University of Canberra has been a
  239. source of both ideas and encouragement.  Email has become significant part
  240. of work, and many people have pointed out bugs, inconsistencies and
  241. improvements to Meschach by email.  These people include Ajay Shah of the
  242. University of Southern California, Dov Grobgeld of the Weizmann Institute,
  243. John Edstrom of the University of Calgary, Eric Grosse, one of the netlib
  244. organisers, Ole Saether of Oslo, Norway, Alfred Thiele and Pierre
  245. Asselin of Carnegie-Mellon Univeristy, Daniel Polani of the University of
  246. Mainz, Marian Slodicka of Slovakia, Kaifu Wu of Pomona, Hidetoshi
  247. Shimodaira of the University of Tokyo, Eng Siong of Edinburgh, Hirokawa Rui
  248. of the University of Tokyo, Marko Slyz of the University of Michigan, and
  249. Brook Milligan of the University of Texas.  This list is only partial, and
  250. there are many others who have corresponded with us on details about
  251. Meschach and the like.  Finally our thanks go to all those that have had to
  252. struggle with compilers and other things to get Meschach to work.
  253.  
  254.                      
  255.  
  256.  
  257.  
  258. FileDataŵcts³
  259.  
  260.         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
  261. cmr10²c‰‰‰™™™‹¢£Kó
  262. !",Œ
  263. cmsy10¸
  264. ‰‰‰‰‹¯ø¡²1986{1992’
  265. DaŒ¸ãvid„UUE.›Stew—art‰‰flKŴ™‹éXªi‰‰…⇧* ©R³™ ýb­M ☓2™ ý—
  266. ™‹¨Ø¢²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.‰¡™‹ŵ”
  267. 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‰‰‰™™™›¸
  268. ‰‰‰‰’ª«²DaŒ¸ãvid›E.›Stew—art,›1986{1992‰ s¨™’ó*ò"V
  269. 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™ ý—
  270. ™‹¾)    ó;ÂÖ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„
  271. VinŒ¸ãtended›for›p‘Geople›who›kno—w›something›of›the›`C'’
  272. 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.’
  273. !The›soft—w—are›ó<ý':
  274. 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›
  275. exible,‰¡™but„UUresource›hŒ¸ãungry’ÿ*ª.’qÇThese›matrix›calculator›programs›w—ere›not›designed›to›deal›with›large›problems.‰¡™’This„®matrix›library›is›inŒ¸ãtended›to›pro—vide›a›\middle›ground"›b‘Get—w—een›ecien—t›but›in
  276. exible›F’ÿ*ªortran-‰¡™stŒ¸ãyle„ £programs,’³wand›
  277. exible›but›resource›h—ungry›calculator/in—terpreter›programs.’S²When›and›ho—w›memory‰¡™is„MzalloŒGcated›in›Mesc”¸ãhac›h„Mzcan›b—e›conŒ¸ãtrolled›b—y›using›the›allo”Gcation/deallo›cation„Mzand›resizing›routines;’Presult‰¡™matrices„`Dand›v‘¸ãectors›can›bŒGe›created›dynamically›when›needed,’cor›allo—cated›once,’cand›then›used›as›a›static‰¡™arraŒ¸ãy’ÿ*ª.’y0Unnecessary„­#memory›allo‘Gcation›is›a—v—oided›where›necessary’ÿ*ª.’y0This›means›that›protot—yping›can›often‰¡™b‘Ge„Vdone›on›MAœÿ*ªTLAB’Aor›MA—TCALC,›and› nal›coŒGde›can›b—e›written›that›is›ecien‘¸ãt›and›can›b—e›incorp—orated‰¡™inŒ¸ãto„UUother›C›programs›and›routines›without›ha—ving›to›re-write›all›the›basic›routines›from›scratc—h.‰¡™’Finally’ÿ*ª,’cgI’-,w”¸ãouldœ-dlik›e—to—thank—all—those—at—the—Univ›ersit›y—of—Queensland—Mathematics—Departmen›t,’cgat‰¡™Op‘Gcom,’^and„ü at›the›Australian›National›Univ”¸ãersit›y„ü for›their›inŒ¸ãterest›in›and›commen—ts›on›this›matrix›library’ÿ*ª.‰¡™In„s°particular,’{GI’s¨wŒ¸ãould›lik—e›to›thank›Martin›Sharry’ÿ*ª,’{GMic—hael›F’ÿ*ªorb‘Ges,’{GPhil›Kilb—y’ÿ*ª,œ{GJohn›Holt,—Phil›P‘¸ãollett›and‰¡™T„ÿ*ªon‘¸ãyœjEW›atts—at—the—Univ”¸ãersit›y—of—Queensland,’oŴand—Mik›e—Osb‘Gorne—at—the—Australian—National—Univ›ersit›y—and‰¡™Karen„UUGeorge›from›the›Univ”¸ãersit›y„UUof›Can‘¸ãb‘Gerra.‰fl"¤™‹ µçDavid„›çE.›Stewart,’
  278. 8àCanb„ÿ}'err›a,œ›çA‘¾›ustr›alia,—1992‰‰flKŴ™‹æ’™²iii‰‰…⇧| ©R³™ ýb­M ☓2™ ýflQ2™‹ºÎ⇦ÎMeschach‰fl™‹‡È¢ÔMatrix„³/Computations›in›C‰flZÌÆ™™Õ1‰’T’ÿ
  279. «utorial™‹—ZG1‰‰¤ td™™’²1.1‰’&The„UUdata›structures›and›some›basic›op‘Gerations’Í/™’üó
  280.  b>
  281. cmmi10µ:‰„Ç™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰™’$²1‰‰¡™™’1.2‰’&Ho‘¸ãw„UUto›manage›memory’Í—™’üµ:‰„Ç™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰™’$²4‰‰¡™™’&1.2.1‰’FNo’UUdeallo‘Gcation’ª™’üµ:‰„Ç™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰™’$²4‰‰¡™™’&1.2.2‰’FAlloŒGcate„UUand›deallo—cate’bÏ™’üµ:‰„Ç™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰™’$²4‰‰¡™™’&1.2.3‰’FResize„UUon›demand’xA™’üµ:‰„Ç™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰™’$²5‰‰¡™™’1.3‰’&A„UUroutine›for›a›4th›order›Runge{Kutta›metho‘Gd’“F™’üµ:‰„Ç™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰™’$²5‰‰¡™™’1.4‰’&A„UUleast›squares›problem’™†™’üµ:‰„Ç™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰™’$Á²10‰‰¡™™’1.5‰’&A„UUsparse›matrix›example‘q'™’üµ:‰„Ç™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰™’$Á²12‰‰¡™™’1.6‰’&Ho‘¸ãw„UUdo›I›.„ª®.›.›.?’qJ™’üµ:‰„Ç™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰™’$Á²14‰‰¡™™’&1.6.1‰’F.„ª®.›.›.„UUsolv‘¸ãe›a›system›of›linear›equations’™’üµ:‰„Ç™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰™’$Á²14‰‰¡™™’&1.6.2‰’F.„ª®.›.›.„UUsolv‘¸ãe›a›least-squares›problem’◰™’üµ:‰„Ç™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰™’$Á²14‰‰¡™™’&1.6.3‰’F.„ª®.›.›.„UU nd›all›the›eigenŒ¸ãv’ÿqÇalues›(and›eigen—v—ectors)›of›a›general›matrix’¾p™’üµ:‰„Ç™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰™’$Á²14‰‰¡™™’&1.6.4‰’F.„ª®.›.›.„UUsolvŒ¸ãe›a›large,›sparse,›p‘Gositiv—e›de nite›system›of›equations’7n™’üµ:‰„Ç™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰™’$Á²15‰‰©Áý™™Õ2‰’Data’ÕTstructures™‹lM16‰‰¡™™’²2.1‰’&V’ÿ*ªectors’x‹™’üµ:‰„Ç™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰™’$Á²16‰‰¡™™’&2.1.1‰’FIn”¸ãteger’UUv›ectors’q6™’üµ:‰„Ç™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰™’$Á²17‰‰¡™™’2.2‰’&Matrices’1t™’üµ:‰„Ç™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰™’$Á²17‰‰¡™™’2.3‰’&P”¸ãerm›utations’™Ë™’üµ:‰„Ç™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰™’$Á²18‰‰¡™™’2.4‰’&Basic„UUsparse›op‘Gerations›and›structures’¢®™’üµ:‰„Ç™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰™’$Á²18‰‰¡™™’2.5‰’&The„UUsparse›data›structures’“±™’üµ:‰„Ç™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰™’$Á²19‰‰¡™™’2.6‰’&Sparse„UUmatrix›factorisation’Íŷ™’üµ:‰„Ç™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰™’$Á²21‰‰¡™™’2.7‰’&Iterativ”¸ãe’UUtec›hniques’ŷ—™’üµ:‰„Ç™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰™’$Á²22‰‰¡™™’2.8‰’&Other„UUdata›structures’Í£™’üµ:‰„Ç™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰™’$Á²23‰‰¦™™Õ3‰’Numerical„ÕTLinear›Algebra™‹7◰L24‰‰¡™™’²3.1‰’&What„UUn‘¸ãumerical›linear›algebra›is›ab‘Gout’°Û™’üµ:‰„Ç™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰™’$Á²24‰‰¡™™’3.2‰’&V’ÿ*ªector„UUand›matrix›norms’"æ™’üµ:‰„Ç™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰™’$Á²25‰‰¡™™’3.3‰’&\Ill„UUconditioning"›or›in‘¸ãtrinsically›bad›problems’iŒ™’üµ:‰„Ç™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰™’$Á²26‰‰¡™™’3.4‰’&Least„UUsquares›and›pseudo-in”¸ãv›erses’“⇨™’üµ:‰„Ç™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰™’$Á²26‰‰¡™™’&3.4.1‰’FSingular„UUV’ÿ*ªalue›Decomp‘Gositions’)É™’üµ:‰„Ç™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰™’$Á²27‰‰¡™™’&3.4.2‰’FPseudo-in”¸ãv›erses’œà™’üµ:‰„Ç™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰™’$Á²27‰‰¡™™’&3.4.3‰’FQR„UUfactorisations›and›least›squares’¢fl™’üµ:‰„Ç™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰™’$Á²28‰‰¡™™’3.5‰’&EigenŒ¸ãv’ÿqÇalues„UUand›eigen—v—ectors’ÿI™’üµ:‰„Ç™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰™’$Á²29‰‰¡™™’3.6‰’&Sparse„UUmatrix›op‘Gerations‘"ì™’üµ:‰„Ç™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰™’$Á²31‰‰¦™™Õ4‰’Basic„ÕTDense›Matrix›Op‘QÇerations™‹Nº32‰‰¦™™5‰’Dense„ÕTMatrix›F’ÿ
  282. «actorisation›Op‘QÇerations™‹õÛ:70‰‰¦™™6‰’Sparse„ÕTMatrix›Op‘QÇerations™‹8 Ñ93‰‰‰flKŴ™‹æµ²iv‰‰…⇧ ©R³™ ýb­M ☓2™ ý—
  283. ™™Õ7‰’Installation„ÕTand›cop”®9yrigh›t™‹2Ô¾120‰‰¤ ™™’²7.1‰’&Installation’™Ò™’üµ:‰„Ç™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰™’ $À²120‰‰¡™™’&7.1.1‰’Fmak‘¸ãe le’Tâ™’üµ:‰„Ç™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰™’ $À²121‰‰¡™™’&7.1.2‰’Fmac‘¸ãhine.h’☓™’üµ:‰„Ç™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰™’ $À²121‰‰¡™™’&7.1.3‰’Fmac‘¸ãhine.c’œ÷™’üµ:‰„Ç™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›™’ü:‰›