Site icon R-bloggers

R Packette – Fraction Matrix Operations

[This article was first published on Statistics et al., and kindly contributed to R-bloggers]. (You can report issue about the content on this page here)
Want to share your content on R-bloggers? click here if you have a blog, or here if you don't.

Open up any linear algebra textbook and have a look at the matrix entries. Are there all integers? Are they all written as decimals? There’s probably at least some that are fractions. Matrices in computer programs are almost always in decimal form. The exception is symbolic mathematics programs like Maple and Mathematica. That’s because computers store non-whole numbers as floating-point values instead.

Floating-points are fine most of the time, but they’re often not exact. What happens if we work the fractions directly?



The fractions 1/2, 1/4, and 3/4 are represented as 0.1, 0.01, and 0.11 in binary, respectively, but 1/3 and 1/5 are repeating values that can’t be represented exactly. The fraction 1/3 is 0.0101010101… and 1/5 is 0.001100110011..  , so when using these numbers, precision is lost just by storing the number; it can only get worse with calculations.

From there, any calculation using that number is going to propagate and accumulate. With a fraction of integers, you can maintain exactitude longer.

The other possible advantage is speed, (although not in my implementation, it’s R instead of C or assembly code). Computers can add, subtract, and multiply numbers in binary very efficiently. However, binary division has to be done with long division* , which is N times slower, where N is the number of bits of accuracy.

But with fractions, division is just cross-multiplication, which is two quick multiplications instead of one slow division.

I wrote a set of R functions that handles some common matrix operations for matrices of fractions instead of floating-point numbers. Only in edge cases are these preferable than the existing functions, but

The set of R functions in this source file in this google docs folder are a proof of concept. They perform some scalar and matrix operations by inputting a fraction, outputting a fraction, and at no internal point relying on floating-point arithmetic. 

This isn’t trivial. Consider the inner product of two vectors of length n:

 
 < !--[if gte mso 9]>< xml> < o:OfficeDocumentSettings> < o:AllowPNG/> < ![endif]-->< !--[if gte mso 9]>< xml> < w:WordDocument> < w:View>Normal < w:Zoom>0 < w:TrackMoves/> < w:TrackFormatting/> < w:PunctuationKerning/> < w:ValidateAgainstSchemas/> < w:SaveIfXMLInvalid>false < w:IgnoreMixedContent>false < w:AlwaysShowPlaceholderText>false < w:DoNotPromoteQF/> < w:LidThemeOther>EN-CA < w:LidThemeAsian>X-NONE < w:LidThemeComplexScript>X-NONE < w:Compatibility> < w:BreakWrappedTables/> < w:SnapToGridInCell/> < w:WrapTextWithPunct/> < w:UseAsianBreakRules/> < w:DontGrowAutofit/> < w:SplitPgBreakAndParaMark/> < w:EnableOpenTypeKerning/> < w:DontFlipMirrorIndents/> < w:OverrideTableStyleHps/> < m:mathPr> < m:mathFont m:val="Cambria Math"/> < m:brkBin m:val="before"/> < m:brkBinSub m:val="--"/> < m:smallFrac m:val="off"/> < m:dispDef/> < m:lMargin m:val="0"/> < m:rMargin m:val="0"/> < m:defJc m:val="centerGroup"/> < m:wrapIndent m:val="1440"/> < m:intLim m:val="subSup"/> < m:naryLim m:val="undOvr"/> < ![endif]-->< !--[if gte mso 9]>< xml> < w:LatentStyles DefLockedState="false" DefUnhideWhenUsed="false" DefSemiHidden="false" DefQFormat="false" DefPriority="99" LatentStyleCount="376"> < w:LsdException Locked="false" Priority="0" QFormat="true" Name="Normal"/> < w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 1"/> < w:LsdException Locked="false" Priority="9" SemiHidden="true" UnhideWhenUsed="true" QFormat="true" Name="heading 2"/> < w:LsdException Locked="false" Priority="9" SemiHidden="true" UnhideWhenUsed="true" QFormat="true" Name="heading 3"/> < w:LsdException Locked="false" Priority="9" SemiHidden="true" UnhideWhenUsed="true" QFormat="true" Name="heading 4"/> < w:LsdException Locked="false" Priority="9" SemiHidden="true" UnhideWhenUsed="true" QFormat="true" Name="heading 5"/> < w:LsdException Locked="false" Priority="9" SemiHidden="true" UnhideWhenUsed="true" QFormat="true" Name="heading 6"/> < w:LsdException Locked="false" Priority="9" SemiHidden="true" UnhideWhenUsed="true" QFormat="true" Name="heading 7"/> < w:LsdException Locked="false" Priority="9" SemiHidden="true" UnhideWhenUsed="true" QFormat="true" Name="heading 8"/> < w:LsdException Locked="false" Priority="9" SemiHidden="true" UnhideWhenUsed="true" QFormat="true" Name="heading 9"/> < w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="index 1"/> < w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="index 2"/> < w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="index 3"/> < w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="index 4"/> < w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="index 5"/> < w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="index 6"/> < w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="index 7"/> < w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="index 8"/> < w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="index 9"/> < w:LsdException Locked="false" Priority="39" SemiHidden="true" UnhideWhenUsed="true" Name="toc 1"/> < w:LsdException Locked="false" Priority="39" SemiHidden="true" UnhideWhenUsed="true" Name="toc 2"/> < w:LsdException Locked="false" Priority="39" SemiHidden="true" UnhideWhenUsed="true" Name="toc 3"/> < w:LsdException Locked="false" Priority="39" SemiHidden="true" UnhideWhenUsed="true" Name="toc 4"/> < w:LsdException Locked="false" Priority="39" SemiHidden="true" UnhideWhenUsed="true" Name="toc 5"/> < w:LsdException Locked="false" Priority="39" SemiHidden="true" UnhideWhenUsed="true" Name="toc 6"/> < w:LsdException Locked="false" Priority="39" SemiHidden="true" UnhideWhenUsed="true" Name="toc 7"/> < w:LsdException Locked="false" Priority="39" SemiHidden="true" UnhideWhenUsed="true" Name="toc 8"/> < w:LsdException Locked="false" Priority="39" SemiHidden="true" UnhideWhenUsed="true" Name="toc 9"/> < w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="Normal Indent"/> < w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="footnote text"/> < w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="annotation text"/> < w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="header"/> < w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="footer"/> < w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="index heading"/> < w:LsdException Locked="false" Priority="35" SemiHidden="true" UnhideWhenUsed="true" QFormat="true" Name="caption"/> < w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="table of figures"/> < w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="envelope address"/> < w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="envelope return"/> < w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="footnote reference"/> < w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="annotation reference"/> < w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="line number"/> < w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="page number"/> < w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="endnote reference"/> < w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="endnote text"/> < w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="table of authorities"/> < w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="macro"/> < w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="toa heading"/> < w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="List"/> < w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="List Bullet"/> < w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="List Number"/> < w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="List 2"/> < w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="List 3"/> < w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="List 4"/> < w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="List 5"/> < w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="List Bullet 2"/> < w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="List Bullet 3"/> < w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="List Bullet 4"/> < w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="List Bullet 5"/> < w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="List Number 2"/> < w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="List Number 3"/> < w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="List Number 4"/> < w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="List Number 5"/> < w:LsdException Locked="false" Priority="10" QFormat="true" Name="Title"/> < w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="Closing"/> < w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="Signature"/> < w:LsdException Locked="false" Priority="1" SemiHidden="true" UnhideWhenUsed="true" Name="Default Paragraph Font"/> < w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="Body Text"/> < w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="Body Text Indent"/> < w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="List Continue"/> < w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="List Continue 2"/> < w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="List Continue 3"/> < w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="List Continue 4"/> < w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="List Continue 5"/> < w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="Message Header"/> < w:LsdException Locked="false" Priority="11" QFormat="true" Name="Subtitle"/> < w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="Salutation"/> < w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="Date"/> < w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="Body Text First Indent"/> < w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="Body Text First Indent 2"/> < w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="Note Heading"/> < w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="Body Text 2"/> < w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="Body Text 3"/> < w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="Body Text Indent 2"/> < w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="Body Text Indent 3"/> < w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="Block Text"/> < w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="Hyperlink"/> < w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="FollowedHyperlink"/> < w:LsdException Locked="false" Priority="22" QFormat="true" Name="Strong"/> < w:LsdException Locked="false" Priority="20" QFormat="true" Name="Emphasis"/> < w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="Document Map"/> < w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="Plain Text"/> < w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="E-mail Signature"/> < w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="HTML Top of Form"/> < w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="HTML Bottom of Form"/> < w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="Normal (Web)"/> < w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="HTML Acronym"/> < w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="HTML Address"/> < w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="HTML Cite"/> < w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="HTML Code"/> < w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="HTML Definition"/> < w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="HTML Keyboard"/> < w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="HTML Preformatted"/> < w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="HTML Sample"/> < w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="HTML Typewriter"/> < w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="HTML Variable"/> < w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="Normal Table"/> < w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="annotation subject"/> < w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="No List"/> < w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="Outline List 1"/> < w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="Outline List 2"/> < w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="Outline List 3"/> < w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="Table Simple 1"/> < w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="Table Simple 2"/> < w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="Table Simple 3"/> < w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="Table Classic 1"/> < w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="Table Classic 2"/> < w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="Table Classic 3"/> < w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="Table Classic 4"/> < w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="Table Colorful 1"/> < w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="Table Colorful 2"/> < w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="Table Colorful 3"/> < w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="Table Columns 1"/> < w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="Table Columns 2"/> < w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="Table Columns 3"/> < w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="Table Columns 4"/> < w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="Table Columns 5"/> < w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="Table Grid 1"/> < w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="Table Grid 2"/> < w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="Table Grid 3"/> < w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="Table Grid 4"/> < w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="Table Grid 5"/> < w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="Table Grid 6"/> < w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="Table Grid 7"/> < w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="Table Grid 8"/> < w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="Table List 1"/> < w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="Table List 2"/> < w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="Table List 3"/> < w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="Table List 4"/> < w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="Table List 5"/> < w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="Table List 6"/> < w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="Table List 7"/> < w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="Table List 8"/> < w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="Table 3D effects 1"/> < w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="Table 3D effects 2"/> < w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="Table 3D effects 3"/> < w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="Table Contemporary"/> < w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="Table Elegant"/> < w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="Table Professional"/> < w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="Table Subtle 1"/> < w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="Table Subtle 2"/> < w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="Table Web 1"/> < w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="Table Web 2"/> < w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="Table Web 3"/> < w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="Balloon Text"/> < w:LsdException Locked="false" Priority="39" Name="Table Grid"/> < w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="Table Theme"/> < w:LsdException Locked="false" SemiHidden="true" Name="Placeholder Text"/> < w:LsdException Locked="false" Priority="1" QFormat="true" Name="No Spacing"/> < w:LsdException Locked="false" Priority="60" Name="Light Shading"/> < w:LsdException Locked="false" Priority="61" Name="Light List"/> < w:LsdException Locked="false" Priority="62" Name="Light Grid"/> < w:LsdException Locked="false" Priority="63" Name="Medium Shading 1"/> < w:LsdException Locked="false" Priority="64" Name="Medium Shading 2"/> < w:LsdException Locked="false" Priority="65" Name="Medium List 1"/> < w:LsdException Locked="false" Priority="66" Name="Medium List 2"/> < w:LsdException Locked="false" Priority="67" Name="Medium Grid 1"/> < w:LsdException Locked="false" Priority="68" Name="Medium Grid 2"/> < w:LsdException Locked="false" Priority="69" Name="Medium Grid 3"/> < w:LsdException Locked="false" Priority="70" Name="Dark List"/> < w:LsdException Locked="false" Priority="71" Name="Colorful Shading"/> < w:LsdException Locked="false" Priority="72" Name="Colorful List"/> < w:LsdException Locked="false" Priority="73" Name="Colorful Grid"/> < w:LsdException Locked="false" Priority="60" Name="Light Shading Accent 1"/> < w:LsdException Locked="false" Priority="61" Name="Light List Accent 1"/> < w:LsdException Locked="false" Priority="62" Name="Light Grid Accent 1"/> < w:LsdException Locked="false" Priority="63" Name="Medium Shading 1 Accent 1"/> < w:LsdException Locked="false" Priority="64" Name="Medium Shading 2 Accent 1"/> < w:LsdException Locked="false" Priority="65" Name="Medium List 1 Accent 1"/> < w:LsdException Locked="false" SemiHidden="true" Name="Revision"/> < w:LsdException Locked="false" Priority="34" QFormat="true" Name="List Paragraph"/> < w:LsdException Locked="false" Priority="29" QFormat="true" Name="Quote"/> < w:LsdException Locked="false" Priority="30" QFormat="true" Name="Intense Quote"/> < w:LsdException Locked="false" Priority="66" Name="Medium List 2 Accent 1"/> < w:LsdException Locked="false" Priority="67" Name="Medium Grid 1 Accent 1"/> < w:LsdException Locked="false" Priority="68" Name="Medium Grid 2 Accent 1"/> < w:LsdException Locked="false" Priority="69" Name="Medium Grid 3 Accent 1"/> < w:LsdException Locked="false" Priority="70" Name="Dark List Accent 1"/> < w:LsdException Locked="false" Priority="71" Name="Colorful Shading Accent 1"/> < w:LsdException Locked="false" Priority="72" Name="Colorful List Accent 1"/> < w:LsdException Locked="false" Priority="73" Name="Colorful Grid Accent 1"/> < w:LsdException Locked="false" Priority="60" Name="Light Shading Accent 2"/> < w:LsdException Locked="false" Priority="61" Name="Light List Accent 2"/> < w:LsdException Locked="false" Priority="62" Name="Light Grid Accent 2"/> < w:LsdException Locked="false" Priority="63" Name="Medium Shading 1 Accent 2"/> < w:LsdException Locked="false" Priority="64" Name="Medium Shading 2 Accent 2"/> < w:LsdException Locked="false" Priority="65" Name="Medium List 1 Accent 2"/> < w:LsdException Locked="false" Priority="66" Name="Medium List 2 Accent 2"/> < w:LsdException Locked="false" Priority="67" Name="Medium Grid 1 Accent 2"/> < w:LsdException Locked="false" Priority="68" Name="Medium Grid 2 Accent 2"/> < w:LsdException Locked="false" Priority="69" Name="Medium Grid 3 Accent 2"/> < w:LsdException Locked="false" Priority="70" Name="Dark List Accent 2"/> < w:LsdException Locked="false" Priority="71" Name="Colorful Shading Accent 2"/> < w:LsdException Locked="false" Priority="72" Name="Colorful List Accent 2"/> < w:LsdException Locked="false" Priority="73" Name="Colorful Grid Accent 2"/> < w:LsdException Locked="false" Priority="60" Name="Light Shading Accent 3"/> < w:LsdException Locked="false" Priority="61" Name="Light List Accent 3"/> < w:LsdException Locked="false" Priority="62" Name="Light Grid Accent 3"/> < w:LsdException Locked="false" Priority="63" Name="Medium Shading 1 Accent 3"/> < w:LsdException Locked="false" Priority="64" Name="Medium Shading 2 Accent 3"/> < w:LsdException Locked="false" Priority="65" Name="Medium List 1 Accent 3"/> < w:LsdException Locked="false" Priority="66" Name="Medium List 2 Accent 3"/> < w:LsdException Locked="false" Priority="67" Name="Medium Grid 1 Accent 3"/> < w:LsdException Locked="false" Priority="68" Name="Medium Grid 2 Accent 3"/> < w:LsdException Locked="false" Priority="69" Name="Medium Grid 3 Accent 3"/> < w:LsdException Locked="false" Priority="70" Name="Dark List Accent 3"/> < w:LsdException Locked="false" Priority="71" Name="Colorful Shading Accent 3"/> < w:LsdException Locked="false" Priority="72" Name="Colorful List Accent 3"/> < w:LsdException Locked="false" Priority="73" Name="Colorful Grid Accent 3"/> < w:LsdException Locked="false" Priority="60" Name="Light Shading Accent 4"/> < w:LsdException Locked="false" Priority="61" Name="Light List Accent 4"/> < w:LsdException Locked="false" Priority="62" Name="Light Grid Accent 4"/> < w:LsdException Locked="false" Priority="63" Name="Medium Shading 1 Accent 4"/> < w:LsdException Locked="false" Priority="64" Name="Medium Shading 2 Accent 4"/> < w:LsdException Locked="false" Priority="65" Name="Medium List 1 Accent 4"/> < w:LsdException Locked="false" Priority="66" Name="Medium List 2 Accent 4"/> < w:LsdException Locked="false" Priority="67" Name="Medium Grid 1 Accent 4"/> < w:LsdException Locked="false" Priority="68" Name="Medium Grid 2 Accent 4"/> < w:LsdException Locked="false" Priority="69" Name="Medium Grid 3 Accent 4"/> < w:LsdException Locked="false" Priority="70" Name="Dark List Accent 4"/> < w:LsdException Locked="false" Priority="71" Name="Colorful Shading Accent 4"/> < w:LsdException Locked="false" Priority="72" Name="Colorful List Accent 4"/> < w:LsdException Locked="false" Priority="73" Name="Colorful Grid Accent 4"/> < w:LsdException Locked="false" Priority="60" Name="Light Shading Accent 5"/> < w:LsdException Locked="false" Priority="61" Name="Light List Accent 5"/> < w:LsdException Locked="false" Priority="62" Name="Light Grid Accent 5"/> < w:LsdException Locked="false" Priority="63" Name="Medium Shading 1 Accent 5"/> < w:LsdException Locked="false" Priority="64" Name="Medium Shading 2 Accent 5"/> < w:LsdException Locked="false" Priority="65" Name="Medium List 1 Accent 5"/> < w:LsdException Locked="false" Priority="66" Name="Medium List 2 Accent 5"/> < w:LsdException Locked="false" Priority="67" Name="Medium Grid 1 Accent 5"/> < w:LsdException Locked="false" Priority="68" Name="Medium Grid 2 Accent 5"/> < w:LsdException Locked="false" Priority="69" Name="Medium Grid 3 Accent 5"/> < w:LsdException Locked="false" Priority="70" Name="Dark List Accent 5"/> < w:LsdException Locked="false" Priority="71" Name="Colorful Shading Accent 5"/> < w:LsdException Locked="false" Priority="72" Name="Colorful List Accent 5"/> < w:LsdException Locked="false" Priority="73" Name="Colorful Grid Accent 5"/> < w:LsdException Locked="false" Priority="60" Name="Light Shading Accent 6"/> < w:LsdException Locked="false" Priority="61" Name="Light List Accent 6"/> < w:LsdException Locked="false" Priority="62" Name="Light Grid Accent 6"/> < w:LsdException Locked="false" Priority="63" Name="Medium Shading 1 Accent 6"/> < w:LsdException Locked="false" Priority="64" Name="Medium Shading 2 Accent 6"/> < w:LsdException Locked="false" Priority="65" Name="Medium List 1 Accent 6"/> < w:LsdException Locked="false" Priority="66" Name="Medium List 2 Accent 6"/> < w:LsdException Locked="false" Priority="67" Name="Medium Grid 1 Accent 6"/> < w:LsdException Locked="false" Priority="68" Name="Medium Grid 2 Accent 6"/> < w:LsdException Locked="false" Priority="69" Name="Medium Grid 3 Accent 6"/> < w:LsdException Locked="false" Priority="70" Name="Dark List Accent 6"/> < w:LsdException Locked="false" Priority="71" Name="Colorful Shading Accent 6"/> < w:LsdException Locked="false" Priority="72" Name="Colorful List Accent 6"/> < w:LsdException Locked="false" Priority="73" Name="Colorful Grid Accent 6"/> < w:LsdException Locked="false" Priority="19" QFormat="true" Name="Subtle Emphasis"/> < w:LsdException Locked="false" Priority="21" QFormat="true" Name="Intense Emphasis"/> < w:LsdException Locked="false" Priority="31" QFormat="true" Name="Subtle Reference"/> < w:LsdException Locked="false" Priority="32" QFormat="true" Name="Intense Reference"/> < w:LsdException Locked="false" Priority="33" QFormat="true" Name="Book Title"/> < w:LsdException Locked="false" Priority="37" SemiHidden="true" UnhideWhenUsed="true" Name="Bibliography"/> < w:LsdException Locked="false" Priority="39" SemiHidden="true" UnhideWhenUsed="true" QFormat="true" Name="TOC Heading"/> < w:LsdException Locked="false" Priority="41" Name="Plain Table 1"/> < w:LsdException Locked="false" Priority="42" Name="Plain Table 2"/> < w:LsdException Locked="false" Priority="43" Name="Plain Table 3"/> < w:LsdException Locked="false" Priority="44" Name="Plain Table 4"/> < w:LsdException Locked="false" Priority="45" Name="Plain Table 5"/> < w:LsdException Locked="false" Priority="40" Name="Grid Table Light"/> < w:LsdException Locked="false" Priority="46" Name="Grid Table 1 Light"/> < w:LsdException Locked="false" Priority="47" Name="Grid Table 2"/> < w:LsdException Locked="false" Priority="48" Name="Grid Table 3"/> < w:LsdException Locked="false" Priority="49" Name="Grid Table 4"/> < w:LsdException Locked="false" Priority="50" Name="Grid Table 5 Dark"/> < w:LsdException Locked="false" Priority="51" Name="Grid Table 6 Colorful"/> < w:LsdException Locked="false" Priority="52" Name="Grid Table 7 Colorful"/> < w:LsdException Locked="false" Priority="46" Name="Grid Table 1 Light Accent 1"/> < w:LsdException Locked="false" Priority="47" Name="Grid Table 2 Accent 1"/> < w:LsdException Locked="false" Priority="48" Name="Grid Table 3 Accent 1"/> < w:LsdException Locked="false" Priority="49" Name="Grid Table 4 Accent 1"/> < w:LsdException Locked="false" Priority="50" Name="Grid Table 5 Dark Accent 1"/> < w:LsdException Locked="false" Priority="51" Name="Grid Table 6 Colorful Accent 1"/> < w:LsdException Locked="false" Priority="52" Name="Grid Table 7 Colorful Accent 1"/> < w:LsdException Locked="false" Priority="46" Name="Grid Table 1 Light Accent 2"/> < w:LsdException Locked="false" Priority="47" Name="Grid Table 2 Accent 2"/> < w:LsdException Locked="false" Priority="48" Name="Grid Table 3 Accent 2"/> < w:LsdException Locked="false" Priority="49" Name="Grid Table 4 Accent 2"/> < w:LsdException Locked="false" Priority="50" Name="Grid Table 5 Dark Accent 2"/> < w:LsdException Locked="false" Priority="51" Name="Grid Table 6 Colorful Accent 2"/> < w:LsdException Locked="false" Priority="52" Name="Grid Table 7 Colorful Accent 2"/> < w:LsdException Locked="false" Priority="46" Name="Grid Table 1 Light Accent 3"/> < w:LsdException Locked="false" Priority="47" Name="Grid Table 2 Accent 3"/> < w:LsdException Locked="false" Priority="48" Name="Grid Table 3 Accent 3"/> < w:LsdException Locked="false" Priority="49" Name="Grid Table 4 Accent 3"/> < w:LsdException Locked="false" Priority="50" Name="Grid Table 5 Dark Accent 3"/> < w:LsdException Locked="false" Priority="51" Name="Grid Table 6 Colorful Accent 3"/> < w:LsdException Locked="false" Priority="52" Name="Grid Table 7 Colorful Accent 3"/> < w:LsdException Locked="false" Priority="46" Name="Grid Table 1 Light Accent 4"/> < w:LsdException Locked="false" Priority="47" Name="Grid Table 2 Accent 4"/> < w:LsdException Locked="false" Priority="48" Name="Grid Table 3 Accent 4"/> < w:LsdException Locked="false" Priority="49" Name="Grid Table 4 Accent 4"/> < w:LsdException Locked="false" Priority="50" Name="Grid Table 5 Dark Accent 4"/> < w:LsdException Locked="false" Priority="51" Name="Grid Table 6 Colorful Accent 4"/> < w:LsdException Locked="false" Priority="52" Name="Grid Table 7 Colorful Accent 4"/> < w:LsdException Locked="false" Priority="46" Name="Grid Table 1 Light Accent 5"/> < w:LsdException Locked="false" Priority="47" Name="Grid Table 2 Accent 5"/> < w:LsdException Locked="false" Priority="48" Name="Grid Table 3 Accent 5"/> < w:LsdException Locked="false" Priority="49" Name="Grid Table 4 Accent 5"/> < w:LsdException Locked="false" Priority="50" Name="Grid Table 5 Dark Accent 5"/> < w:LsdException Locked="false" Priority="51" Name="Grid Table 6 Colorful Accent 5"/> < w:LsdException Locked="false" Priority="52" Name="Grid Table 7 Colorful Accent 5"/> < w:LsdException Locked="false" Priority="46" Name="Grid Table 1 Light Accent 6"/> < w:LsdException Locked="false" Priority="47" Name="Grid Table 2 Accent 6"/> < w:LsdException Locked="false" Priority="48" Name="Grid Table 3 Accent 6"/> < w:LsdException Locked="false" Priority="49" Name="Grid Table 4 Accent 6"/> < w:LsdException Locked="false" Priority="50" Name="Grid Table 5 Dark Accent 6"/> < w:LsdException Locked="false" Priority="51" Name="Grid Table 6 Colorful Accent 6"/> < w:LsdException Locked="false" Priority="52" Name="Grid Table 7 Colorful Accent 6"/> < w:LsdException Locked="false" Priority="46" Name="List Table 1 Light"/> < w:LsdException Locked="false" Priority="47" Name="List Table 2"/> < w:LsdException Locked="false" Priority="48" Name="List Table 3"/> < w:LsdException Locked="false" Priority="49" Name="List Table 4"/> < w:LsdException Locked="false" Priority="50" Name="List Table 5 Dark"/> < w:LsdException Locked="false" Priority="51" Name="List Table 6 Colorful"/> < w:LsdException Locked="false" Priority="52" Name="List Table 7 Colorful"/> < w:LsdException Locked="false" Priority="46" Name="List Table 1 Light Accent 1"/> < w:LsdException Locked="false" Priority="47" Name="List Table 2 Accent 1"/> < w:LsdException Locked="false" Priority="48" Name="List Table 3 Accent 1"/> < w:LsdException Locked="false" Priority="49" Name="List Table 4 Accent 1"/> < w:LsdException Locked="false" Priority="50" Name="List Table 5 Dark Accent 1"/> < w:LsdException Locked="false" Priority="51" Name="List Table 6 Colorful Accent 1"/> < w:LsdException Locked="false" Priority="52" Name="List Table 7 Colorful Accent 1"/> < w:LsdException Locked="false" Priority="46" Name="List Table 1 Light Accent 2"/> < w:LsdException Locked="false" Priority="47" Name="List Table 2 Accent 2"/> < w:LsdException Locked="false" Priority="48" Name="List Table 3 Accent 2"/> < w:LsdException Locked="false" Priority="49" Name="List Table 4 Accent 2"/> < w:LsdException Locked="false" Priority="50" Name="List Table 5 Dark Accent 2"/> < w:LsdException Locked="false" Priority="51" Name="List Table 6 Colorful Accent 2"/> < w:LsdException Locked="false" Priority="52" Name="List Table 7 Colorful Accent 2"/> < w:LsdException Locked="false" Priority="46" Name="List Table 1 Light Accent 3"/> < w:LsdException Locked="false" Priority="47" Name="List Table 2 Accent 3"/> < w:LsdException Locked="false" Priority="48" Name="List Table 3 Accent 3"/> < w:LsdException Locked="false" Priority="49" Name="List Table 4 Accent 3"/> < w:LsdException Locked="false" Priority="50" Name="List Table 5 Dark Accent 3"/> < w:LsdException Locked="false" Priority="51" Name="List Table 6 Colorful Accent 3"/> < w:LsdException Locked="false" Priority="52" Name="List Table 7 Colorful Accent 3"/> < w:LsdException Locked="false" Priority="46" Name="List Table 1 Light Accent 4"/> < w:LsdException Locked="false" Priority="47" Name="List Table 2 Accent 4"/> < w:LsdException Locked="false" Priority="48" Name="List Table 3 Accent 4"/> < w:LsdException Locked="false" Priority="49" Name="List Table 4 Accent 4"/> < w:LsdException Locked="false" Priority="50" Name="List Table 5 Dark Accent 4"/> < w:LsdException Locked="false" Priority="51" Name="List Table 6 Colorful Accent 4"/> < w:LsdException Locked="false" Priority="52" Name="List Table 7 Colorful Accent 4"/> < w:LsdException Locked="false" Priority="46" Name="List Table 1 Light Accent 5"/> < w:LsdException Locked="false" Priority="47" Name="List Table 2 Accent 5"/> < w:LsdException Locked="false" Priority="48" Name="List Table 3 Accent 5"/> < w:LsdException Locked="false" Priority="49" Name="List Table 4 Accent 5"/> < w:LsdException Locked="false" Priority="50" Name="List Table 5 Dark Accent 5"/> < w:LsdException Locked="false" Priority="51" Name="List Table 6 Colorful Accent 5"/> < w:LsdException Locked="false" Priority="52" Name="List Table 7 Colorful Accent 5"/> < w:LsdException Locked="false" Priority="46" Name="List Table 1 Light Accent 6"/> < w:LsdException Locked="false" Priority="47" Name="List Table 2 Accent 6"/> < w:LsdException Locked="false" Priority="48" Name="List Table 3 Accent 6"/> < w:LsdException Locked="false" Priority="49" Name="List Table 4 Accent 6"/> < w:LsdException Locked="false" Priority="50" Name="List Table 5 Dark Accent 6"/> < w:LsdException Locked="false" Priority="51" Name="List Table 6 Colorful Accent 6"/> < w:LsdException Locked="false" Priority="52" Name="List Table 7 Colorful Accent 6"/> < w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="Mention"/> < w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="Smart Hyperlink"/> < w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="Hashtag"/> < w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="Unresolved Mention"/> < w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="Smart Link"/> < ![endif]-->< !--[if gte mso 10]>< ![endif]-->
If we write A and C instead as fractions A/B and C/D respectively, things get messier:

 < !--[if gte mso 9]>< xml> < o:OfficeDocumentSettings> < o:AllowPNG/> < ![endif]-->< !--[if gte mso 9]>< xml> < w:WordDocument> < w:View>Normal < w:Zoom>0 < w:TrackMoves/> < w:TrackFormatting/> < w:PunctuationKerning/> < w:ValidateAgainstSchemas/> < w:SaveIfXMLInvalid>false < w:IgnoreMixedContent>false < w:AlwaysShowPlaceholderText>false < w:DoNotPromoteQF/> < w:LidThemeOther>EN-CA < w:LidThemeAsian>X-NONE < w:LidThemeComplexScript>X-NONE < w:Compatibility> < w:BreakWrappedTables/> < w:SnapToGridInCell/> < w:WrapTextWithPunct/> < w:UseAsianBreakRules/> < w:DontGrowAutofit/> < w:SplitPgBreakAndParaMark/> < w:EnableOpenTypeKerning/> < w:DontFlipMirrorIndents/> < w:OverrideTableStyleHps/> < m:mathPr> < m:mathFont m:val="Cambria Math"/> < m:brkBin m:val="before"/> < m:brkBinSub m:val="--"/> < m:smallFrac m:val="off"/> < m:dispDef/> < m:lMargin m:val="0"/> < m:rMargin m:val="0"/> < m:defJc m:val="centerGroup"/> < m:wrapIndent m:val="1440"/> < m:intLim m:val="subSup"/> < m:naryLim m:val="undOvr"/> < ![endif]-->< !--[if gte mso 9]>< xml> < w:LatentStyles DefLockedState="false" DefUnhideWhenUsed="false" DefSemiHidden="false" DefQFormat="false" DefPriority="99" LatentStyleCount="376"> < w:LsdException Locked="false" Priority="0" QFormat="true" Name="Normal"/> < w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 1"/> < w:LsdException Locked="false" Priority="9" SemiHidden="true" UnhideWhenUsed="true" QFormat="true" Name="heading 2"/> < w:LsdException Locked="false" Priority="9" SemiHidden="true" UnhideWhenUsed="true" QFormat="true" Name="heading 3"/> < w:LsdException Locked="false" Priority="9" SemiHidden="true" UnhideWhenUsed="true" QFormat="true" Name="heading 4"/> < w:LsdException Locked="false" Priority="9" SemiHidden="true" UnhideWhenUsed="true" QFormat="true" Name="heading 5"/> < w:LsdException Locked="false" Priority="9" SemiHidden="true" UnhideWhenUsed="true" QFormat="true" Name="heading 6"/> < w:LsdException Locked="false" Priority="9" SemiHidden="true" UnhideWhenUsed="true" QFormat="true" Name="heading 7"/> < w:LsdException Locked="false" Priority="9" SemiHidden="true" UnhideWhenUsed="true" QFormat="true" Name="heading 8"/> < w:LsdException Locked="false" Priority="9" SemiHidden="true" UnhideWhenUsed="true" QFormat="true" Name="heading 9"/> < w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="index 1"/> < w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="index 2"/> < w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="index 3"/> < w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="index 4"/> < w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="index 5"/> < w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="index 6"/> < w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="index 7"/> < w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="index 8"/> < w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="index 9"/> < w:LsdException Locked="false" Priority="39" SemiHidden="true" UnhideWhenUsed="true" Name="toc 1"/> < w:LsdException Locked="false" Priority="39" SemiHidden="true" UnhideWhenUsed="true" Name="toc 2"/> < w:LsdException Locked="false" Priority="39" SemiHidden="true" UnhideWhenUsed="true" Name="toc 3"/> < w:LsdException Locked="false" Priority="39" SemiHidden="true" UnhideWhenUsed="true" Name="toc 4"/> < w:LsdException Locked="false" Priority="39" SemiHidden="true" UnhideWhenUsed="true" Name="toc 5"/> < w:LsdException Locked="false" Priority="39" SemiHidden="true" UnhideWhenUsed="true" Name="toc 6"/> < w:LsdException Locked="false" Priority="39" SemiHidden="true" UnhideWhenUsed="true" Name="toc 7"/> < w:LsdException Locked="false" Priority="39" SemiHidden="true" UnhideWhenUsed="true" Name="toc 8"/> < w:LsdException Locked="false" Priority="39" SemiHidden="true" UnhideWhenUsed="true" Name="toc 9"/> < w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="Normal Indent"/> < w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="footnote text"/> < w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="annotation text"/> < w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="header"/> < w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="footer"/> < w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="index heading"/> < w:LsdException Locked="false" Priority="35" SemiHidden="true" UnhideWhenUsed="true" QFormat="true" Name="caption"/> < w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="table of figures"/> < w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="envelope address"/> < w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="envelope return"/> < w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="footnote reference"/> < w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="annotation reference"/> < w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="line number"/> < w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="page number"/> < w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="endnote reference"/> < w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="endnote text"/> < w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="table of authorities"/> < w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="macro"/> < w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="toa heading"/> < w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="List"/> < w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="List Bullet"/> < w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="List Number"/> < w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="List 2"/> < w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="List 3"/> < w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="List 4"/> < w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="List 5"/> < w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="List Bullet 2"/> < w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="List Bullet 3"/> < w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="List Bullet 4"/> < w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="List Bullet 5"/> < w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="List Number 2"/> < w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="List Number 3"/> < w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="List Number 4"/> < w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="List Number 5"/> < w:LsdException Locked="false" Priority="10" QFormat="true" Name="Title"/> < w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="Closing"/> < w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="Signature"/> < w:LsdException Locked="false" Priority="1" SemiHidden="true" UnhideWhenUsed="true" Name="Default Paragraph Font"/> < w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="Body Text"/> < w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="Body Text Indent"/> < w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="List Continue"/> < w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="List Continue 2"/> < w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="List Continue 3"/> < w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="List Continue 4"/> < w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="List Continue 5"/> < w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="Message Header"/> < w:LsdException Locked="false" Priority="11" QFormat="true" Name="Subtitle"/> < w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="Salutation"/> < w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="Date"/> < w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="Body Text First Indent"/> < w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="Body Text First Indent 2"/> < w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="Note Heading"/> < w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="Body Text 2"/> < w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="Body Text 3"/> < w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="Body Text Indent 2"/> < w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="Body Text Indent 3"/> < w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="Block Text"/> < w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="Hyperlink"/> < w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="FollowedHyperlink"/> < w:LsdException Locked="false" Priority="22" QFormat="true" Name="Strong"/> < w:LsdException Locked="false" Priority="20" QFormat="true" Name="Emphasis"/> < w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="Document Map"/> < w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="Plain Text"/> < w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="E-mail Signature"/> < w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="HTML Top of Form"/> < w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="HTML Bottom of Form"/> < w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="Normal (Web)"/> < w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="HTML Acronym"/> < w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="HTML Address"/> < w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="HTML Cite"/> < w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="HTML Code"/> < w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="HTML Definition"/> < w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="HTML Keyboard"/> < w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="HTML Preformatted"/> < w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="HTML Sample"/> < w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="HTML Typewriter"/> < w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="HTML Variable"/> < w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="Normal Table"/> < w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="annotation subject"/> < w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="No List"/> < w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="Outline List 1"/> < w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="Outline List 2"/> < w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="Outline List 3"/> < w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="Table Simple 1"/> < w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="Table Simple 2"/> < w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="Table Simple 3"/> < w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="Table Classic 1"/> < w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="Table Classic 2"/> < w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="Table Classic 3"/> < w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="Table Classic 4"/> < w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="Table Colorful 1"/> < w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="Table Colorful 2"/> < w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="Table Colorful 3"/> < w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="Table Columns 1"/> < w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="Table Columns 2"/> < w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="Table Columns 3"/> < w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="Table Columns 4"/> < w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="Table Columns 5"/> < w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="Table Grid 1"/> < w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="Table Grid 2"/> < w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="Table Grid 3"/> < w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="Table Grid 4"/> < w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="Table Grid 5"/> < w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="Table Grid 6"/> < w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="Table Grid 7"/> < w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="Table Grid 8"/> < w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="Table List 1"/> < w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="Table List 2"/> < w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="Table List 3"/> < w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="Table List 4"/> < w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="Table List 5"/> < w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="Table List 6"/> < w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="Table List 7"/> < w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="Table List 8"/> < w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="Table 3D effects 1"/> < w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="Table 3D effects 2"/> < w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="Table 3D effects 3"/> < w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="Table Contemporary"/> < w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="Table Elegant"/> < w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="Table Professional"/> < w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="Table Subtle 1"/> < w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="Table Subtle 2"/> < w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="Table Web 1"/> < w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="Table Web 2"/> < w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="Table Web 3"/> < w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="Balloon Text"/> < w:LsdException Locked="false" Priority="39" Name="Table Grid"/> < w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="Table Theme"/> < w:LsdException Locked="false" SemiHidden="true" Name="Placeholder Text"/> < w:LsdException Locked="false" Priority="1" QFormat="true" Name="No Spacing"/> < w:LsdException Locked="false" Priority="60" Name="Light Shading"/> < w:LsdException Locked="false" Priority="61" Name="Light List"/> < w:LsdException Locked="false" Priority="62" Name="Light Grid"/> < w:LsdException Locked="false" Priority="63" Name="Medium Shading 1"/> < w:LsdException Locked="false" Priority="64" Name="Medium Shading 2"/> < w:LsdException Locked="false" Priority="65" Name="Medium List 1"/> < w:LsdException Locked="false" Priority="66" Name="Medium List 2"/> < w:LsdException Locked="false" Priority="67" Name="Medium Grid 1"/> < w:LsdException Locked="false" Priority="68" Name="Medium Grid 2"/> < w:LsdException Locked="false" Priority="69" Name="Medium Grid 3"/> < w:LsdException Locked="false" Priority="70" Name="Dark List"/> < w:LsdException Locked="false" Priority="71" Name="Colorful Shading"/> < w:LsdException Locked="false" Priority="72" Name="Colorful List"/> < w:LsdException Locked="false" Priority="73" Name="Colorful Grid"/> < w:LsdException Locked="false" Priority="60" Name="Light Shading Accent 1"/> < w:LsdException Locked="false" Priority="61" Name="Light List Accent 1"/> < w:LsdException Locked="false" Priority="62" Name="Light Grid Accent 1"/> < w:LsdException Locked="false" Priority="63" Name="Medium Shading 1 Accent 1"/> < w:LsdException Locked="false" Priority="64" Name="Medium Shading 2 Accent 1"/> < w:LsdException Locked="false" Priority="65" Name="Medium List 1 Accent 1"/> < w:LsdException Locked="false" SemiHidden="true" Name="Revision"/> < w:LsdException Locked="false" Priority="34" QFormat="true" Name="List Paragraph"/> < w:LsdException Locked="false" Priority="29" QFormat="true" Name="Quote"/> < w:LsdException Locked="false" Priority="30" QFormat="true" Name="Intense Quote"/> < w:LsdException Locked="false" Priority="66" Name="Medium List 2 Accent 1"/> < w:LsdException Locked="false" Priority="67" Name="Medium Grid 1 Accent 1"/> < w:LsdException Locked="false" Priority="68" Name="Medium Grid 2 Accent 1"/> < w:LsdException Locked="false" Priority="69" Name="Medium Grid 3 Accent 1"/> < w:LsdException Locked="false" Priority="70" Name="Dark List Accent 1"/> < w:LsdException Locked="false" Priority="71" Name="Colorful Shading Accent 1"/> < w:LsdException Locked="false" Priority="72" Name="Colorful List Accent 1"/> < w:LsdException Locked="false" Priority="73" Name="Colorful Grid Accent 1"/> < w:LsdException Locked="false" Priority="60" Name="Light Shading Accent 2"/> < w:LsdException Locked="false" Priority="61" Name="Light List Accent 2"/> < w:LsdException Locked="false" Priority="62" Name="Light Grid Accent 2"/> < w:LsdException Locked="false" Priority="63" Name="Medium Shading 1 Accent 2"/> < w:LsdException Locked="false" Priority="64" Name="Medium Shading 2 Accent 2"/> < w:LsdException Locked="false" Priority="65" Name="Medium List 1 Accent 2"/> < w:LsdException Locked="false" Priority="66" Name="Medium List 2 Accent 2"/> < w:LsdException Locked="false" Priority="67" Name="Medium Grid 1 Accent 2"/> < w:LsdException Locked="false" Priority="68" Name="Medium Grid 2 Accent 2"/> < w:LsdException Locked="false" Priority="69" Name="Medium Grid 3 Accent 2"/> < w:LsdException Locked="false" Priority="70" Name="Dark List Accent 2"/> < w:LsdException Locked="false" Priority="71" Name="Colorful Shading Accent 2"/> < w:LsdException Locked="false" Priority="72" Name="Colorful List Accent 2"/> < w:LsdException Locked="false" Priority="73" Name="Colorful Grid Accent 2"/> < w:LsdException Locked="false" Priority="60" Name="Light Shading Accent 3"/> < w:LsdException Locked="false" Priority="61" Name="Light List Accent 3"/> < w:LsdException Locked="false" Priority="62" Name="Light Grid Accent 3"/> < w:LsdException Locked="false" Priority="63" Name="Medium Shading 1 Accent 3"/> < w:LsdException Locked="false" Priority="64" Name="Medium Shading 2 Accent 3"/> < w:LsdException Locked="false" Priority="65" Name="Medium List 1 Accent 3"/> < w:LsdException Locked="false" Priority="66" Name="Medium List 2 Accent 3"/> < w:LsdException Locked="false" Priority="67" Name="Medium Grid 1 Accent 3"/> < w:LsdException Locked="false" Priority="68" Name="Medium Grid 2 Accent 3"/> < w:LsdException Locked="false" Priority="69" Name="Medium Grid 3 Accent 3"/> < w:LsdException Locked="false" Priority="70" Name="Dark List Accent 3"/> < w:LsdException Locked="false" Priority="71" Name="Colorful Shading Accent 3"/> < w:LsdException Locked="false" Priority="72" Name="Colorful List Accent 3"/> < w:LsdException Locked="false" Priority="73" Name="Colorful Grid Accent 3"/> < w:LsdException Locked="false" Priority="60" Name="Light Shading Accent 4"/> < w:LsdException Locked="false" Priority="61" Name="Light List Accent 4"/> < w:LsdException Locked="false" Priority="62" Name="Light Grid Accent 4"/> < w:LsdException Locked="false" Priority="63" Name="Medium Shading 1 Accent 4"/> < w:LsdException Locked="false" Priority="64" Name="Medium Shading 2 Accent 4"/> < w:LsdException Locked="false" Priority="65" Name="Medium List 1 Accent 4"/> < w:LsdException Locked="false" Priority="66" Name="Medium List 2 Accent 4"/> < w:LsdException Locked="false" Priority="67" Name="Medium Grid 1 Accent 4"/> < w:LsdException Locked="false" Priority="68" Name="Medium Grid 2 Accent 4"/> < w:LsdException Locked="false" Priority="69" Name="Medium Grid 3 Accent 4"/> < w:LsdException Locked="false" Priority="70" Name="Dark List Accent 4"/> < w:LsdException Locked="false" Priority="71" Name="Colorful Shading Accent 4"/> < w:LsdException Locked="false" Priority="72" Name="Colorful List Accent 4"/> < w:LsdException Locked="false" Priority="73" Name="Colorful Grid Accent 4"/> < w:LsdException Locked="false" Priority="60" Name="Light Shading Accent 5"/> < w:LsdException Locked="false" Priority="61" Name="Light List Accent 5"/> < w:LsdException Locked="false" Priority="62" Name="Light Grid Accent 5"/> < w:LsdException Locked="false" Priority="63" Name="Medium Shading 1 Accent 5"/> < w:LsdException Locked="false" Priority="64" Name="Medium Shading 2 Accent 5"/> < w:LsdException Locked="false" Priority="65" Name="Medium List 1 Accent 5"/> < w:LsdException Locked="false" Priority="66" Name="Medium List 2 Accent 5"/> < w:LsdException Locked="false" Priority="67" Name="Medium Grid 1 Accent 5"/> < w:LsdException Locked="false" Priority="68" Name="Medium Grid 2 Accent 5"/> < w:LsdException Locked="false" Priority="69" Name="Medium Grid 3 Accent 5"/> < w:LsdException Locked="false" Priority="70" Name="Dark List Accent 5"/> < w:LsdException Locked="false" Priority="71" Name="Colorful Shading Accent 5"/> < w:LsdException Locked="false" Priority="72" Name="Colorful List Accent 5"/> < w:LsdException Locked="false" Priority="73" Name="Colorful Grid Accent 5"/> < w:LsdException Locked="false" Priority="60" Name="Light Shading Accent 6"/> < w:LsdException Locked="false" Priority="61" Name="Light List Accent 6"/> < w:LsdException Locked="false" Priority="62" Name="Light Grid Accent 6"/> < w:LsdException Locked="false" Priority="63" Name="Medium Shading 1 Accent 6"/> < w:LsdException Locked="false" Priority="64" Name="Medium Shading 2 Accent 6"/> < w:LsdException Locked="false" Priority="65" Name="Medium List 1 Accent 6"/> < w:LsdException Locked="false" Priority="66" Name="Medium List 2 Accent 6"/> < w:LsdException Locked="false" Priority="67" Name="Medium Grid 1 Accent 6"/> < w:LsdException Locked="false" Priority="68" Name="Medium Grid 2 Accent 6"/> < w:LsdException Locked="false" Priority="69" Name="Medium Grid 3 Accent 6"/> < w:LsdException Locked="false" Priority="70" Name="Dark List Accent 6"/> < w:LsdException Locked="false" Priority="71" Name="Colorful Shading Accent 6"/> < w:LsdException Locked="false" Priority="72" Name="Colorful List Accent 6"/> < w:LsdException Locked="false" Priority="73" Name="Colorful Grid Accent 6"/> < w:LsdException Locked="false" Priority="19" QFormat="true" Name="Subtle Emphasis"/> < w:LsdException Locked="false" Priority="21" QFormat="true" Name="Intense Emphasis"/> < w:LsdException Locked="false" Priority="31" QFormat="true" Name="Subtle Reference"/> < w:LsdException Locked="false" Priority="32" QFormat="true" Name="Intense Reference"/> < w:LsdException Locked="false" Priority="33" QFormat="true" Name="Book Title"/> < w:LsdException Locked="false" Priority="37" SemiHidden="true" UnhideWhenUsed="true" Name="Bibliography"/> < w:LsdException Locked="false" Priority="39" SemiHidden="true" UnhideWhenUsed="true" QFormat="true" Name="TOC Heading"/> < w:LsdException Locked="false" Priority="41" Name="Plain Table 1"/> < w:LsdException Locked="false" Priority="42" Name="Plain Table 2"/> < w:LsdException Locked="false" Priority="43" Name="Plain Table 3"/> < w:LsdException Locked="false" Priority="44" Name="Plain Table 4"/> < w:LsdException Locked="false" Priority="45" Name="Plain Table 5"/> < w:LsdException Locked="false" Priority="40" Name="Grid Table Light"/> < w:LsdException Locked="false" Priority="46" Name="Grid Table 1 Light"/> < w:LsdException Locked="false" Priority="47" Name="Grid Table 2"/> < w:LsdException Locked="false" Priority="48" Name="Grid Table 3"/> < w:LsdException Locked="false" Priority="49" Name="Grid Table 4"/> < w:LsdException Locked="false" Priority="50" Name="Grid Table 5 Dark"/> < w:LsdException Locked="false" Priority="51" Name="Grid Table 6 Colorful"/> < w:LsdException Locked="false" Priority="52" Name="Grid Table 7 Colorful"/> < w:LsdException Locked="false" Priority="46" Name="Grid Table 1 Light Accent 1"/> < w:LsdException Locked="false" Priority="47" Name="Grid Table 2 Accent 1"/> < w:LsdException Locked="false" Priority="48" Name="Grid Table 3 Accent 1"/> < w:LsdException Locked="false" Priority="49" Name="Grid Table 4 Accent 1"/> < w:LsdException Locked="false" Priority="50" Name="Grid Table 5 Dark Accent 1"/> < w:LsdException Locked="false" Priority="51" Name="Grid Table 6 Colorful Accent 1"/> < w:LsdException Locked="false" Priority="52" Name="Grid Table 7 Colorful Accent 1"/> < w:LsdException Locked="false" Priority="46" Name="Grid Table 1 Light Accent 2"/> < w:LsdException Locked="false" Priority="47" Name="Grid Table 2 Accent 2"/> < w:LsdException Locked="false" Priority="48" Name="Grid Table 3 Accent 2"/> < w:LsdException Locked="false" Priority="49" Name="Grid Table 4 Accent 2"/> < w:LsdException Locked="false" Priority="50" Name="Grid Table 5 Dark Accent 2"/> < w:LsdException Locked="false" Priority="51" Name="Grid Table 6 Colorful Accent 2"/> < w:LsdException Locked="false" Priority="52" Name="Grid Table 7 Colorful Accent 2"/> < w:LsdException Locked="false" Priority="46" Name="Grid Table 1 Light Accent 3"/> < w:LsdException Locked="false" Priority="47" Name="Grid Table 2 Accent 3"/> < w:LsdException Locked="false" Priority="48" Name="Grid Table 3 Accent 3"/> < w:LsdException Locked="false" Priority="49" Name="Grid Table 4 Accent 3"/> < w:LsdException Locked="false" Priority="50" Name="Grid Table 5 Dark Accent 3"/> < w:LsdException Locked="false" Priority="51" Name="Grid Table 6 Colorful Accent 3"/> < w:LsdException Locked="false" Priority="52" Name="Grid Table 7 Colorful Accent 3"/> < w:LsdException Locked="false" Priority="46" Name="Grid Table 1 Light Accent 4"/> < w:LsdException Locked="false" Priority="47" Name="Grid Table 2 Accent 4"/> < w:LsdException Locked="false" Priority="48" Name="Grid Table 3 Accent 4"/> < w:LsdException Locked="false" Priority="49" Name="Grid Table 4 Accent 4"/> < w:LsdException Locked="false" Priority="50" Name="Grid Table 5 Dark Accent 4"/> < w:LsdException Locked="false" Priority="51" Name="Grid Table 6 Colorful Accent 4"/> < w:LsdException Locked="false" Priority="52" Name="Grid Table 7 Colorful Accent 4"/> < w:LsdException Locked="false" Priority="46" Name="Grid Table 1 Light Accent 5"/> < w:LsdException Locked="false" Priority="47" Name="Grid Table 2 Accent 5"/> < w:LsdException Locked="false" Priority="48" Name="Grid Table 3 Accent 5"/> < w:LsdException Locked="false" Priority="49" Name="Grid Table 4 Accent 5"/> < w:LsdException Locked="false" Priority="50" Name="Grid Table 5 Dark Accent 5"/> < w:LsdException Locked="false" Priority="51" Name="Grid Table 6 Colorful Accent 5"/> < w:LsdException Locked="false" Priority="52" Name="Grid Table 7 Colorful Accent 5"/> < w:LsdException Locked="false" Priority="46" Name="Grid Table 1 Light Accent 6"/> < w:LsdException Locked="false" Priority="47" Name="Grid Table 2 Accent 6"/> < w:LsdException Locked="false" Priority="48" Name="Grid Table 3 Accent 6"/> < w:LsdException Locked="false" Priority="49" Name="Grid Table 4 Accent 6"/> < w:LsdException Locked="false" Priority="50" Name="Grid Table 5 Dark Accent 6"/> < w:LsdException Locked="false" Priority="51" Name="Grid Table 6 Colorful Accent 6"/> < w:LsdException Locked="false" Priority="52" Name="Grid Table 7 Colorful Accent 6"/> < w:LsdException Locked="false" Priority="46" Name="List Table 1 Light"/> < w:LsdException Locked="false" Priority="47" Name="List Table 2"/> < w:LsdException Locked="false" Priority="48" Name="List Table 3"/> < w:LsdException Locked="false" Priority="49" Name="List Table 4"/> < w:LsdException Locked="false" Priority="50" Name="List Table 5 Dark"/> < w:LsdException Locked="false" Priority="51" Name="List Table 6 Colorful"/> < w:LsdException Locked="false" Priority="52" Name="List Table 7 Colorful"/> < w:LsdException Locked="false" Priority="46" Name="List Table 1 Light Accent 1"/> < w:LsdException Locked="false" Priority="47" Name="List Table 2 Accent 1"/> < w:LsdException Locked="false" Priority="48" Name="List Table 3 Accent 1"/> < w:LsdException Locked="false" Priority="49" Name="List Table 4 Accent 1"/> < w:LsdException Locked="false" Priority="50" Name="List Table 5 Dark Accent 1"/> < w:LsdException Locked="false" Priority="51" Name="List Table 6 Colorful Accent 1"/> < w:LsdException Locked="false" Priority="52" Name="List Table 7 Colorful Accent 1"/> < w:LsdException Locked="false" Priority="46" Name="List Table 1 Light Accent 2"/> < w:LsdException Locked="false" Priority="47" Name="List Table 2 Accent 2"/> < w:LsdException Locked="false" Priority="48" Name="List Table 3 Accent 2"/> < w:LsdException Locked="false" Priority="49" Name="List Table 4 Accent 2"/> < w:LsdException Locked="false" Priority="50" Name="List Table 5 Dark Accent 2"/> < w:LsdException Locked="false" Priority="51" Name="List Table 6 Colorful Accent 2"/> < w:LsdException Locked="false" Priority="52" Name="List Table 7 Colorful Accent 2"/> < w:LsdException Locked="false" Priority="46" Name="List Table 1 Light Accent 3"/> < w:LsdException Locked="false" Priority="47" Name="List Table 2 Accent 3"/> < w:LsdException Locked="false" Priority="48" Name="List Table 3 Accent 3"/> < w:LsdException Locked="false" Priority="49" Name="List Table 4 Accent 3"/> < w:LsdException Locked="false" Priority="50" Name="List Table 5 Dark Accent 3"/> < w:LsdException Locked="false" Priority="51" Name="List Table 6 Colorful Accent 3"/> < w:LsdException Locked="false" Priority="52" Name="List Table 7 Colorful Accent 3"/> < w:LsdException Locked="false" Priority="46" Name="List Table 1 Light Accent 4"/> < w:LsdException Locked="false" Priority="47" Name="List Table 2 Accent 4"/> < w:LsdException Locked="false" Priority="48" Name="List Table 3 Accent 4"/> < w:LsdException Locked="false" Priority="49" Name="List Table 4 Accent 4"/> < w:LsdException Locked="false" Priority="50" Name="List Table 5 Dark Accent 4"/> < w:LsdException Locked="false" Priority="51" Name="List Table 6 Colorful Accent 4"/> < w:LsdException Locked="false" Priority="52" Name="List Table 7 Colorful Accent 4"/> < w:LsdException Locked="false" Priority="46" Name="List Table 1 Light Accent 5"/> < w:LsdException Locked="false" Priority="47" Name="List Table 2 Accent 5"/> < w:LsdException Locked="false" Priority="48" Name="List Table 3 Accent 5"/> < w:LsdException Locked="false" Priority="49" Name="List Table 4 Accent 5"/> < w:LsdException Locked="false" Priority="50" Name="List Table 5 Dark Accent 5"/> < w:LsdException Locked="false" Priority="51" Name="List Table 6 Colorful Accent 5"/> < w:LsdException Locked="false" Priority="52" Name="List Table 7 Colorful Accent 5"/> < w:LsdException Locked="false" Priority="46" Name="List Table 1 Light Accent 6"/> < w:LsdException Locked="false" Priority="47" Name="List Table 2 Accent 6"/> < w:LsdException Locked="false" Priority="48" Name="List Table 3 Accent 6"/> < w:LsdException Locked="false" Priority="49" Name="List Table 4 Accent 6"/> < w:LsdException Locked="false" Priority="50" Name="List Table 5 Dark Accent 6"/> < w:LsdException Locked="false" Priority="51" Name="List Table 6 Colorful Accent 6"/> < w:LsdException Locked="false" Priority="52" Name="List Table 7 Colorful Accent 6"/> < w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="Mention"/> < w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="Smart Hyperlink"/> < w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="Hashtag"/> < w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="Unresolved Mention"/> < w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="Smart Link"/> < ![endif]-->< !--[if gte mso 10]>< ![endif]-->
This formula is used in the function innerprod.fracvec(), which takes two vectors of fractions and returns a single fraction. 

Alternatively, one could rewrite matrix operations in terms of scalar fraction operations instead of trying to do everything in one big formula, but there’s a loss of speed in doing basic arithmetic as function calls. This is what I ended up doing for fracmat.upper.tri()the function that converts a square matrix into an upper triangular form. 

Here’s a few test cases selected from the test case file in the google docs folder

 < !--[if gte mso 9]>< xml> < o:OfficeDocumentSettings> < o:AllowPNG/> < ![endif]-->< !--[if gte mso 9]>< xml> < w:WordDocument> < w:View>Normal < w:Zoom>0 < w:TrackMoves/> < w:TrackFormatting/> < w:PunctuationKerning/> < w:ValidateAgainstSchemas/> < w:SaveIfXMLInvalid>false < w:IgnoreMixedContent>false < w:AlwaysShowPlaceholderText>false < w:DoNotPromoteQF/> < w:LidThemeOther>EN-CA < w:LidThemeAsian>X-NONE < w:LidThemeComplexScript>X-NONE < w:Compatibility> < w:BreakWrappedTables/> < w:SnapToGridInCell/> < w:WrapTextWithPunct/> < w:UseAsianBreakRules/> < w:DontGrowAutofit/> < w:SplitPgBreakAndParaMark/> < w:EnableOpenTypeKerning/> < w:DontFlipMirrorIndents/> < w:OverrideTableStyleHps/> < m:mathPr> < m:mathFont m:val="Cambria Math"/> < m:brkBin m:val="before"/> < m:brkBinSub m:val="--"/> < m:smallFrac m:val="off"/> < m:dispDef/> < m:lMargin m:val="0"/> < m:rMargin m:val="0"/> < m:defJc m:val="centerGroup"/> < m:wrapIndent m:val="1440"/> < m:intLim m:val="subSup"/> < m:naryLim m:val="undOvr"/> < ![endif]-->< !--[if gte mso 9]>< xml> < w:LatentStyles DefLockedState="false" DefUnhideWhenUsed="false" DefSemiHidden="false" DefQFormat="false" DefPriority="99" LatentStyleCount="376"> < w:LsdException Locked="false" Priority="0" QFormat="true" Name="Normal"/> < w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 1"/> < w:LsdException Locked="false" Priority="9" SemiHidden="true" UnhideWhenUsed="true" QFormat="true" Name="heading 2"/> < w:LsdException Locked="false" Priority="9" SemiHidden="true" UnhideWhenUsed="true" QFormat="true" Name="heading 3"/> < w:LsdException Locked="false" Priority="9" SemiHidden="true" UnhideWhenUsed="true" QFormat="true" Name="heading 4"/> < w:LsdException Locked="false" Priority="9" SemiHidden="true" UnhideWhenUsed="true" QFormat="true" Name="heading 5"/> < w:LsdException Locked="false" Priority="9" SemiHidden="true" UnhideWhenUsed="true" QFormat="true" Name="heading 6"/> < w:LsdException Locked="false" Priority="9" SemiHidden="true" UnhideWhenUsed="true" QFormat="true" Name="heading 7"/> < w:LsdException Locked="false" Priority="9" SemiHidden="true" UnhideWhenUsed="true" QFormat="true" Name="heading 8"/> < w:LsdException Locked="false" Priority="9" SemiHidden="true" UnhideWhenUsed="true" QFormat="true" Name="heading 9"/> < w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="index 1"/> < w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="index 2"/> < w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="index 3"/> < w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="index 4"/> < w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="index 5"/> < w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="index 6"/> < w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="index 7"/> < w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="index 8"/> < w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="index 9"/> < w:LsdException Locked="false" Priority="39" SemiHidden="true" UnhideWhenUsed="true" Name="toc 1"/> < w:LsdException Locked="false" Priority="39" SemiHidden="true" UnhideWhenUsed="true" Name="toc 2"/> < w:LsdException Locked="false" Priority="39" SemiHidden="true" UnhideWhenUsed="true" Name="toc 3"/> < w:LsdException Locked="false" Priority="39" SemiHidden="true" UnhideWhenUsed="true" Name="toc 4"/> < w:LsdException Locked="false" Priority="39" SemiHidden="true" UnhideWhenUsed="true" Name="toc 5"/> < w:LsdException Locked="false" Priority="39" SemiHidden="true" UnhideWhenUsed="true" Name="toc 6"/> < w:LsdException Locked="false" Priority="39" SemiHidden="true" UnhideWhenUsed="true" Name="toc 7"/> < w:LsdException Locked="false" Priority="39" SemiHidden="true" UnhideWhenUsed="true" Name="toc 8"/> < w:LsdException Locked="false" Priority="39" SemiHidden="true" UnhideWhenUsed="true" Name="toc 9"/> < w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="Normal Indent"/> < w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="footnote text"/> < w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="annotation text"/> < w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="header"/> < w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="footer"/> < w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="index heading"/> < w:LsdException Locked="false" Priority="35" SemiHidden="true" UnhideWhenUsed="true" QFormat="true" Name="caption"/> < w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="table of figures"/> < w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="envelope address"/> < w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="envelope return"/> < w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="footnote reference"/> < w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="annotation reference"/> < w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="line number"/> < w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="page number"/> < w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="endnote reference"/> < w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="endnote text"/> < w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="table of authorities"/> < w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="macro"/> < w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="toa heading"/> < w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="List"/> < w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="List Bullet"/> < w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="List Number"/> < w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="List 2"/> < w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="List 3"/> < w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="List 4"/> < w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="List 5"/> < w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="List Bullet 2"/> < w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="List Bullet 3"/> < w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="List Bullet 4"/> < w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="List Bullet 5"/> < w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="List Number 2"/> < w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="List Number 3"/> < w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="List Number 4"/> < w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="List Number 5"/> < w:LsdException Locked="false" Priority="10" QFormat="true" Name="Title"/> < w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="Closing"/> < w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="Signature"/> < w:LsdException Locked="false" Priority="1" SemiHidden="true" UnhideWhenUsed="true" Name="Default Paragraph Font"/> < w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="Body Text"/> < w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="Body Text Indent"/> < w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="List Continue"/> < w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="List Continue 2"/> < w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="List Continue 3"/> < w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="List Continue 4"/> < w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="List Continue 5"/> < w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="Message Header"/> < w:LsdException Locked="false" Priority="11" QFormat="true" Name="Subtitle"/> < w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="Salutation"/> < w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="Date"/> < w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="Body Text First Indent"/> < w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="Body Text First Indent 2"/> < w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="Note Heading"/> < w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="Body Text 2"/> < w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="Body Text 3"/> < w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="Body Text Indent 2"/> < w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="Body Text Indent 3"/> < w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="Block Text"/> < w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="Hyperlink"/> < w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="FollowedHyperlink"/> < w:LsdException Locked="false" Priority="22" QFormat="true" Name="Strong"/> < w:LsdException Locked="false" Priority="20" QFormat="true" Name="Emphasis"/> < w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="Document Map"/> < w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="Plain Text"/> < w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="E-mail Signature"/> < w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="HTML Top of Form"/> < w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="HTML Bottom of Form"/> < w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="Normal (Web)"/> < w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="HTML Acronym"/> < w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="HTML Address"/> < w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="HTML Cite"/> < w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="HTML Code"/> < w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="HTML Definition"/> < w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="HTML Keyboard"/> < w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="HTML Preformatted"/> < w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="HTML Sample"/> < w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="HTML Typewriter"/> < w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="HTML Variable"/> < w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="Normal Table"/> < w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="annotation subject"/> < w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="No List"/> < w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="Outline List 1"/> < w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="Outline List 2"/> < w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="Outline List 3"/> < w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="Table Simple 1"/> < w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="Table Simple 2"/> < w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="Table Simple 3"/> < w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="Table Classic 1"/> < w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="Table Classic 2"/> < w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="Table Classic 3"/> < w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="Table Classic 4"/> < w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="Table Colorful 1"/> < w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="Table Colorful 2"/> < w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="Table Colorful 3"/> < w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="Table Columns 1"/> < w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="Table Columns 2"/> < w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="Table Columns 3"/> < w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="Table Columns 4"/> < w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="Table Columns 5"/> < w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="Table Grid 1"/> < w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="Table Grid 2"/> < w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="Table Grid 3"/> < w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="Table Grid 4"/> < w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="Table Grid 5"/> < w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="Table Grid 6"/> < w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="Table Grid 7"/> < w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="Table Grid 8"/> < w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="Table List 1"/> < w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="Table List 2"/> < w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="Table List 3"/> < w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="Table List 4"/> < w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="Table List 5"/> < w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="Table List 6"/> < w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="Table List 7"/> < w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="Table List 8"/> < w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="Table 3D effects 1"/> < w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="Table 3D effects 2"/> < w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="Table 3D effects 3"/> < w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="Table Contemporary"/> < w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="Table Elegant"/> < w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="Table Professional"/> < w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="Table Subtle 1"/> < w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="Table Subtle 2"/> < w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="Table Web 1"/> < w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="Table Web 2"/> < w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="Table Web 3"/> < w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="Balloon Text"/> < w:LsdException Locked="false" Priority="39" Name="Table Grid"/> < w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="Table Theme"/> < w:LsdException Locked="false" SemiHidden="true" Name="Placeholder Text"/> < w:LsdException Locked="false" Priority="1" QFormat="true" Name="No Spacing"/> < w:LsdException Locked="false" Priority="60" Name="Light Shading"/> < w:LsdException Locked="false" Priority="61" Name="Light List"/> < w:LsdException Locked="false" Priority="62" Name="Light Grid"/> < w:LsdException Locked="false" Priority="63" Name="Medium Shading 1"/> < w:LsdException Locked="false" Priority="64" Name="Medium Shading 2"/> < w:LsdException Locked="false" Priority="65" Name="Medium List 1"/> < w:LsdException Locked="false" Priority="66" Name="Medium List 2"/> < w:LsdException Locked="false" Priority="67" Name="Medium Grid 1"/> < w:LsdException Locked="false" Priority="68" Name="Medium Grid 2"/> < w:LsdException Locked="false" Priority="69" Name="Medium Grid 3"/> < w:LsdException Locked="false" Priority="70" Name="Dark List"/> < w:LsdException Locked="false" Priority="71" Name="Colorful Shading"/> < w:LsdException Locked="false" Priority="72" Name="Colorful List"/> < w:LsdException Locked="false" Priority="73" Name="Colorful Grid"/> < w:LsdException Locked="false" Priority="60" Name="Light Shading Accent 1"/> < w:LsdException Locked="false" Priority="61" Name="Light List Accent 1"/> < w:LsdException Locked="false" Priority="62" Name="Light Grid Accent 1"/> < w:LsdException Locked="false" Priority="63" Name="Medium Shading 1 Accent 1"/> < w:LsdException Locked="false" Priority="64" Name="Medium Shading 2 Accent 1"/> < w:LsdException Locked="false" Priority="65" Name="Medium List 1 Accent 1"/> < w:LsdException Locked="false" SemiHidden="true" Name="Revision"/> < w:LsdException Locked="false" Priority="34" QFormat="true" Name="List Paragraph"/> < w:LsdException Locked="false" Priority="29" QFormat="true" Name="Quote"/> < w:LsdException Locked="false" Priority="30" QFormat="true" Name="Intense Quote"/> < w:LsdException Locked="false" Priority="66" Name="Medium List 2 Accent 1"/> < w:LsdException Locked="false" Priority="67" Name="Medium Grid 1 Accent 1"/> < w:LsdException Locked="false" Priority="68" Name="Medium Grid 2 Accent 1"/> < w:LsdException Locked="false" Priority="69" Name="Medium Grid 3 Accent 1"/> < w:LsdException Locked="false" Priority="70" Name="Dark List Accent 1"/> < w:LsdException Locked="false" Priority="71" Name="Colorful Shading Accent 1"/> < w:LsdException Locked="false" Priority="72" Name="Colorful List Accent 1"/> < w:LsdException Locked="false" Priority="73" Name="Colorful Grid Accent 1"/> < w:LsdException Locked="false" Priority="60" Name="Light Shading Accent 2"/> < w:LsdException Locked="false" Priority="61" Name="Light List Accent 2"/> < w:LsdException Locked="false" Priority="62" Name="Light Grid Accent 2"/> < w:LsdException Locked="false" Priority="63" Name="Medium Shading 1 Accent 2"/> < w:LsdException Locked="false" Priority="64" Name="Medium Shading 2 Accent 2"/> < w:LsdException Locked="false" Priority="65" Name="Medium List 1 Accent 2"/> < w:LsdException Locked="false" Priority="66" Name="Medium List 2 Accent 2"/> < w:LsdException Locked="false" Priority="67" Name="Medium Grid 1 Accent 2"/> < w:LsdException Locked="false" Priority="68" Name="Medium Grid 2 Accent 2"/> < w:LsdException Locked="false" Priority="69" Name="Medium Grid 3 Accent 2"/> < w:LsdException Locked="false" Priority="70" Name="Dark List Accent 2"/> < w:LsdException Locked="false" Priority="71" Name="Colorful Shading Accent 2"/> < w:LsdException Locked="false" Priority="72" Name="Colorful List Accent 2"/> < w:LsdException Locked="false" Priority="73" Name="Colorful Grid Accent 2"/> < w:LsdException Locked="false" Priority="60" Name="Light Shading Accent 3"/> < w:LsdException Locked="false" Priority="61" Name="Light List Accent 3"/> < w:LsdException Locked="false" Priority="62" Name="Light Grid Accent 3"/> < w:LsdException Locked="false" Priority="63" Name="Medium Shading 1 Accent 3"/> < w:LsdException Locked="false" Priority="64" Name="Medium Shading 2 Accent 3"/> < w:LsdException Locked="false" Priority="65" Name="Medium List 1 Accent 3"/> < w:LsdException Locked="false" Priority="66" Name="Medium List 2 Accent 3"/> < w:LsdException Locked="false" Priority="67" Name="Medium Grid 1 Accent 3"/> < w:LsdException Locked="false" Priority="68" Name="Medium Grid 2 Accent 3"/> < w:LsdException Locked="false" Priority="69" Name="Medium Grid 3 Accent 3"/> < w:LsdException Locked="false" Priority="70" Name="Dark List Accent 3"/> < w:LsdException Locked="false" Priority="71" Name="Colorful Shading Accent 3"/> < w:LsdException Locked="false" Priority="72" Name="Colorful List Accent 3"/> < w:LsdException Locked="false" Priority="73" Name="Colorful Grid Accent 3"/> < w:LsdException Locked="false" Priority="60" Name="Light Shading Accent 4"/> < w:LsdException Locked="false" Priority="61" Name="Light List Accent 4"/> < w:LsdException Locked="false" Priority="62" Name="Light Grid Accent 4"/> < w:LsdException Locked="false" Priority="63" Name="Medium Shading 1 Accent 4"/> < w:LsdException Locked="false" Priority="64" Name="Medium Shading 2 Accent 4"/> < w:LsdException Locked="false" Priority="65" Name="Medium List 1 Accent 4"/> < w:LsdException Locked="false" Priority="66" Name="Medium List 2 Accent 4"/> < w:LsdException Locked="false" Priority="67" Name="Medium Grid 1 Accent 4"/> < w:LsdException Locked="false" Priority="68" Name="Medium Grid 2 Accent 4"/> < w:LsdException Locked="false" Priority="69" Name="Medium Grid 3 Accent 4"/> < w:LsdException Locked="false" Priority="70" Name="Dark List Accent 4"/> < w:LsdException Locked="false" Priority="71" Name="Colorful Shading Accent 4"/> < w:LsdException Locked="false" Priority="72" Name="Colorful List Accent 4"/> < w:LsdException Locked="false" Priority="73" Name="Colorful Grid Accent 4"/> < w:LsdException Locked="false" Priority="60" Name="Light Shading Accent 5"/> < w:LsdException Locked="false" Priority="61" Name="Light List Accent 5"/> < w:LsdException Locked="false" Priority="62" Name="Light Grid Accent 5"/> < w:LsdException Locked="false" Priority="63" Name="Medium Shading 1 Accent 5"/> < w:LsdException Locked="false" Priority="64" Name="Medium Shading 2 Accent 5"/> < w:LsdException Locked="false" Priority="65" Name="Medium List 1 Accent 5"/> < w:LsdException Locked="false" Priority="66" Name="Medium List 2 Accent 5"/> < w:LsdException Locked="false" Priority="67" Name="Medium Grid 1 Accent 5"/> < w:LsdException Locked="false" Priority="68" Name="Medium Grid 2 Accent 5"/> < w:LsdException Locked="false" Priority="69" Name="Medium Grid 3 Accent 5"/> < w:LsdException Locked="false" Priority="70" Name="Dark List Accent 5"/> < w:LsdException Locked="false" Priority="71" Name="Colorful Shading Accent 5"/> < w:LsdException Locked="false" Priority="72" Name="Colorful List Accent 5"/> < w:LsdException Locked="false" Priority="73" Name="Colorful Grid Accent 5"/> < w:LsdException Locked="false" Priority="60" Name="Light Shading Accent 6"/> < w:LsdException Locked="false" Priority="61" Name="Light List Accent 6"/> < w:LsdException Locked="false" Priority="62" Name="Light Grid Accent 6"/> < w:LsdException Locked="false" Priority="63" Name="Medium Shading 1 Accent 6"/> < w:LsdException Locked="false" Priority="64" Name="Medium Shading 2 Accent 6"/> < w:LsdException Locked="false" Priority="65" Name="Medium List 1 Accent 6"/> < w:LsdException Locked="false" Priority="66" Name="Medium List 2 Accent 6"/> < w:LsdException Locked="false" Priority="67" Name="Medium Grid 1 Accent 6"/> < w:LsdException Locked="false" Priority="68" Name="Medium Grid 2 Accent 6"/> < w:LsdException Locked="false" Priority="69" Name="Medium Grid 3 Accent 6"/> < w:LsdException Locked="false" Priority="70" Name="Dark List Accent 6"/> < w:LsdException Locked="false" Priority="71" Name="Colorful Shading Accent 6"/> < w:LsdException Locked="false" Priority="72" Name="Colorful List Accent 6"/> < w:LsdException Locked="false" Priority="73" Name="Colorful Grid Accent 6"/> < w:LsdException Locked="false" Priority="19" QFormat="true" Name="Subtle Emphasis"/> < w:LsdException Locked="false" Priority="21" QFormat="true" Name="Intense Emphasis"/> < w:LsdException Locked="false" Priority="31" QFormat="true" Name="Subtle Reference"/> < w:LsdException Locked="false" Priority="32" QFormat="true" Name="Intense Reference"/> < w:LsdException Locked="false" Priority="33" QFormat="true" Name="Book Title"/> < w:LsdException Locked="false" Priority="37" SemiHidden="true" UnhideWhenUsed="true" Name="Bibliography"/> < w:LsdException Locked="false" Priority="39" SemiHidden="true" UnhideWhenUsed="true" QFormat="true" Name="TOC Heading"/> < w:LsdException Locked="false" Priority="41" Name="Plain Table 1"/> < w:LsdException Locked="false" Priority="42" Name="Plain Table 2"/> < w:LsdException Locked="false" Priority="43" Name="Plain Table 3"/> < w:LsdException Locked="false" Priority="44" Name="Plain Table 4"/> < w:LsdException Locked="false" Priority="45" Name="Plain Table 5"/> < w:LsdException Locked="false" Priority="40" Name="Grid Table Light"/> < w:LsdException Locked="false" Priority="46" Name="Grid Table 1 Light"/> < w:LsdException Locked="false" Priority="47" Name="Grid Table 2"/> < w:LsdException Locked="false" Priority="48" Name="Grid Table 3"/> < w:LsdException Locked="false" Priority="49" Name="Grid Table 4"/> < w:LsdException Locked="false" Priority="50" Name="Grid Table 5 Dark"/> < w:LsdException Locked="false" Priority="51" Name="Grid Table 6 Colorful"/> < w:LsdException Locked="false" Priority="52" Name="Grid Table 7 Colorful"/> < w:LsdException Locked="false" Priority="46" Name="Grid Table 1 Light Accent 1"/> < w:LsdException Locked="false" Priority="47" Name="Grid Table 2 Accent 1"/> < w:LsdException Locked="false" Priority="48" Name="Grid Table 3 Accent 1"/> < w:LsdException Locked="false" Priority="49" Name="Grid Table 4 Accent 1"/> < w:LsdException Locked="false" Priority="50" Name="Grid Table 5 Dark Accent 1"/> < w:LsdException Locked="false" Priority="51" Name="Grid Table 6 Colorful Accent 1"/> < w:LsdException Locked="false" Priority="52" Name="Grid Table 7 Colorful Accent 1"/> < w:LsdException Locked="false" Priority="46" Name="Grid Table 1 Light Accent 2"/> < w:LsdException Locked="false" Priority="47" Name="Grid Table 2 Accent 2"/> < w:LsdException Locked="false" Priority="48" Name="Grid Table 3 Accent 2"/> < w:LsdException Locked="false" Priority="49" Name="Grid Table 4 Accent 2"/> < w:LsdException Locked="false" Priority="50" Name="Grid Table 5 Dark Accent 2"/> < w:LsdException Locked="false" Priority="51" Name="Grid Table 6 Colorful Accent 2"/> < w:LsdException Locked="false" Priority="52" Name="Grid Table 7 Colorful Accent 2"/> < w:LsdException Locked="false" Priority="46" Name="Grid Table 1 Light Accent 3"/> < w:LsdException Locked="false" Priority="47" Name="Grid Table 2 Accent 3"/> < w:LsdException Locked="false" Priority="48" Name="Grid Table 3 Accent 3"/> < w:LsdException Locked="false" Priority="49" Name="Grid Table 4 Accent 3"/> < w:LsdException Locked="false" Priority="50" Name="Grid Table 5 Dark Accent 3"/> < w:LsdException Locked="false" Priority="51" Name="Grid Table 6 Colorful Accent 3"/> < w:LsdException Locked="false" Priority="52" Name="Grid Table 7 Colorful Accent 3"/> < w:LsdException Locked="false" Priority="46" Name="Grid Table 1 Light Accent 4"/> < w:LsdException Locked="false" Priority="47" Name="Grid Table 2 Accent 4"/> < w:LsdException Locked="false" Priority="48" Name="Grid Table 3 Accent 4"/> < w:LsdException Locked="false" Priority="49" Name="Grid Table 4 Accent 4"/> < w:LsdException Locked="false" Priority="50" Name="Grid Table 5 Dark Accent 4"/> < w:LsdException Locked="false" Priority="51" Name="Grid Table 6 Colorful Accent 4"/> < w:LsdException Locked="false" Priority="52" Name="Grid Table 7 Colorful Accent 4"/> < w:LsdException Locked="false" Priority="46" Name="Grid Table 1 Light Accent 5"/> < w:LsdException Locked="false" Priority="47" Name="Grid Table 2 Accent 5"/> < w:LsdException Locked="false" Priority="48" Name="Grid Table 3 Accent 5"/> < w:LsdException Locked="false" Priority="49" Name="Grid Table 4 Accent 5"/> < w:LsdException Locked="false" Priority="50" Name="Grid Table 5 Dark Accent 5"/> < w:LsdException Locked="false" Priority="51" Name="Grid Table 6 Colorful Accent 5"/> < w:LsdException Locked="false" Priority="52" Name="Grid Table 7 Colorful Accent 5"/> < w:LsdException Locked="false" Priority="46" Name="Grid Table 1 Light Accent 6"/> < w:LsdException Locked="false" Priority="47" Name="Grid Table 2 Accent 6"/> < w:LsdException Locked="false" Priority="48" Name="Grid Table 3 Accent 6"/> < w:LsdException Locked="false" Priority="49" Name="Grid Table 4 Accent 6"/> < w:LsdException Locked="false" Priority="50" Name="Grid Table 5 Dark Accent 6"/> < w:LsdException Locked="false" Priority="51" Name="Grid Table 6 Colorful Accent 6"/> < w:LsdException Locked="false" Priority="52" Name="Grid Table 7 Colorful Accent 6"/> < w:LsdException Locked="false" Priority="46" Name="List Table 1 Light"/> < w:LsdException Locked="false" Priority="47" Name="List Table 2"/> < w:LsdException Locked="false" Priority="48" Name="List Table 3"/> < w:LsdException Locked="false" Priority="49" Name="List Table 4"/> < w:LsdException Locked="false" Priority="50" Name="List Table 5 Dark"/> < w:LsdException Locked="false" Priority="51" Name="List Table 6 Colorful"/> < w:LsdException Locked="false" Priority="52" Name="List Table 7 Colorful"/> < w:LsdException Locked="false" Priority="46" Name="List Table 1 Light Accent 1"/> < w:LsdException Locked="false" Priority="47" Name="List Table 2 Accent 1"/> < w:LsdException Locked="false" Priority="48" Name="List Table 3 Accent 1"/> < w:LsdException Locked="false" Priority="49" Name="List Table 4 Accent 1"/> < w:LsdException Locked="false" Priority="50" Name="List Table 5 Dark Accent 1"/> < w:LsdException Locked="false" Priority="51" Name="List Table 6 Colorful Accent 1"/> < w:LsdException Locked="false" Priority="52" Name="List Table 7 Colorful Accent 1"/> < w:LsdException Locked="false" Priority="46" Name="List Table 1 Light Accent 2"/> < w:LsdException Locked="false" Priority="47" Name="List Table 2 Accent 2"/> < w:LsdException Locked="false" Priority="48" Name="List Table 3 Accent 2"/> < w:LsdException Locked="false" Priority="49" Name="List Table 4 Accent 2"/> < w:LsdException Locked="false" Priority="50" Name="List Table 5 Dark Accent 2"/> < w:LsdException Locked="false" Priority="51" Name="List Table 6 Colorful Accent 2"/> < w:LsdException Locked="false" Priority="52" Name="List Table 7 Colorful Accent 2"/> < w:LsdException Locked="false" Priority="46" Name="List Table 1 Light Accent 3"/> < w:LsdException Locked="false" Priority="47" Name="List Table 2 Accent 3"/> < w:LsdException Locked="false" Priority="48" Name="List Table 3 Accent 3"/> < w:LsdException Locked="false" Priority="49" Name="List Table 4 Accent 3"/> < w:LsdException Locked="false" Priority="50" Name="List Table 5 Dark Accent 3"/> < w:LsdException Locked="false" Priority="51" Name="List Table 6 Colorful Accent 3"/> < w:LsdException Locked="false" Priority="52" Name="List Table 7 Colorful Accent 3"/> < w:LsdException Locked="false" Priority="46" Name="List Table 1 Light Accent 4"/> < w:LsdException Locked="false" Priority="47" Name="List Table 2 Accent 4"/> < w:LsdException Locked="false" Priority="48" Name="List Table 3 Accent 4"/> < w:LsdException Locked="false" Priority="49" Name="List Table 4 Accent 4"/> < w:LsdException Locked="false" Priority="50" Name="List Table 5 Dark Accent 4"/> < w:LsdException Locked="false" Priority="51" Name="List Table 6 Colorful Accent 4"/> < w:LsdException Locked="false" Priority="52" Name="List Table 7 Colorful Accent 4"/> < w:LsdException Locked="false" Priority="46" Name="List Table 1 Light Accent 5"/> < w:LsdException Locked="false" Priority="47" Name="List Table 2 Accent 5"/> < w:LsdException Locked="false" Priority="48" Name="List Table 3 Accent 5"/> < w:LsdException Locked="false" Priority="49" Name="List Table 4 Accent 5"/> < w:LsdException Locked="false" Priority="50" Name="List Table 5 Dark Accent 5"/> < w:LsdException Locked="false" Priority="51" Name="List Table 6 Colorful Accent 5"/> < w:LsdException Locked="false" Priority="52" Name="List Table 7 Colorful Accent 5"/> < w:LsdException Locked="false" Priority="46" Name="List Table 1 Light Accent 6"/> < w:LsdException Locked="false" Priority="47" Name="List Table 2 Accent 6"/> < w:LsdException Locked="false" Priority="48" Name="List Table 3 Accent 6"/> < w:LsdException Locked="false" Priority="49" Name="List Table 4 Accent 6"/> < w:LsdException Locked="false" Priority="50" Name="List Table 5 Dark Accent 6"/> < w:LsdException Locked="false" Priority="51" Name="List Table 6 Colorful Accent 6"/> < w:LsdException Locked="false" Priority="52" Name="List Table 7 Colorful Accent 6"/> < w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="Mention"/> < w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="Smart Hyperlink"/> < w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="Hashtag"/> < w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="Unresolved Mention"/> < w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="Smart Link"/> < ![endif]-->< !--[if gte mso 10]>< ![endif]-->
## Case 1
# Matrix multiplication, floating point vs fraction matrix
# Make some random matrices of fractions, and get their product
A = matrix(sample(1:9),nrow=3,ncol=3)
B = matrix(sample(1:9),nrow=3,ncol=3)
F = fracmat(A,B)
C = matrix(sample(1:9),nrow=3,ncol=3)
D = matrix(sample(1:9),nrow=3,ncol=3)
G = fracmat(C,D)

F_float = A/B
G_float = C/D
prod_float = F_float %*% G_float

FG = multiply.fracmat(F,G)
FG
$`top`
     [,1] [,2] [,3]
[1,]  143   97  577
[2,] 2837   23   59
[3,]  172   29   61

$bottom
     [,1] [,2] [,3]
[1,]   36   42  126
[2,]  420   15   15
[3,]    7    4    4

prod_frac = FG$top / FG$bottom

prod_float
          [,1]     [,2]      [,3]
[1,]  3.972222 2.309524  4.579365
[2,]  6.754762 1.533333  3.933333
[3,] 24.571429 7.250000 15.250000

prod_frac
          [,1]     [,2]      [,3]
[1,]  3.972222 2.309524  4.579365
[2,]  6.754762 1.533333  3.933333
[3,] 24.571429 7.250000 15.250000

sum(abs(prod_float – prod_frac))
[1] 1.554312e-15


### Case 2
## Get the inverse and determinant of a random matrix
## Compare to the answers from base::det and base::solve

A = matrix(sample(1:20)[1:9],nrow=3,ncol=3)
B = matrix(sample(1:20)[1:9],nrow=3,ncol=3)
A
     [,1] [,2] [,3]
[1,]   20   18    3
[2,]    2   16    8
[3,]    4   10    7
B
     [,1] [,2] [,3]
[1,]    8    9   17
[2,]   10    1   18
[3,]   12   14    5

F = fracmat(A,B) #Fraction matrix object
F_float = A/B #Floating point matrix

# Get the determinants, compare.
fracmat.det(F)
$`top`
[1] 8592592140

$bottom
[1] 159043500

fracmat.det(F)$top / fracmat.det(F)$bottom
[1] 54.02668
det(F_float)
[1] 54.02668



# Get the inverse of each, display, and compare
Finv1 = fracmat.inverse(F)$top / fracmat.inverse(F)$bottom
Finv2 = solve(F_float)

Finv1
             [,1]        [,2]        [,3]
[1,]  0.408733982 -0.04949313 -0.03580898
[2,] -0.002440495  0.06369402 -0.01991270
[3,] -0.096072464 -0.02071287  0.73297120

Finv2
             [,1]        [,2]        [,3]
[1,]  0.408733982 -0.04949313 -0.03580898
[2,] -0.002440495  0.06369402 -0.01991270
[3,] -0.096072464 -0.02071287  0.73297120

sum(abs(Finv1 – Finv2))
[1] 1.065684e-12

Here’s a catalogue of the functions included in this packette. The source file has more detailed comments explaining each one.


These functions establish a new fraction matrix, vector, or value from a pair of matrices, vectors, or scalars of equal dimensions respectively (top, bottom). When enforce_integer = TRUE, the function rounds each entry of the top and bottom parts. The function fraction() is much simpler and doesn’t include rounding or quality checks because it’s only intended for internal use.
fracmat(top=NA, bottom=NA, enforce_integer=TRUE)
fracvec(top=NA, bottom=NA, enforce_integer=TRUE)
fraction(A,B)

These functions convert a fraction matrix or vector back into a matrix or vector of decimal (floating-point) numbers.
fracvec.to.vec(fv)
fracmat.to.mat(fm)


There are shortcuts to produce commonly used fraction matrices
allsame.fracmat(top, bottom=1, nrow, ncol)
allzero.fracmat(nrow, ncol)
allone.fracmat(nrow, ncol)
identity.fracmat(size)


Many of the following functions have an argument called ‘simplify’, which defaults to true. These are functions which call simplify.fracmat, which divides the numerator and the denominator of each fraction by their greatest common denominator.
simplify.fracmat(fm, nPrimes=10, report_overflow = FALSE, fuzzy_reduce = TRUE, maxint = 10^15)

If any part of the fraction matrix is larger than maxint, which is close to the limit of the modulo function, fuzzy_reduce will scale the fraction in question down so the larger of the numerator and denominator is maxint.
fuzzy_reduce(top, bottom, limit = 10^15)

These do elementwise addition and subtraction of fractions in two fraction matrices or vectors.
add.fracmat(fracmatAB, fracmatCD, subtraction = FALSE)
subtract.fracmat(fracmatAB, fracmatCD)

This does matrix multiplication of fraction matrices. It does the by iteratively calling the inner product function on rows of the left matrix (fracmatAB) and columns of the right matrix (fracmatCD)
multiply.fracmat(fracmatAB, fracmatCD, simplify=TRUE)
innerprod.fracvec(fracvecAB, fracvecCD, simplify=TRUE)

Just calling a fracmat object will give you two matrices, but print.fracmat() will output text of each fraction with the numerator and denominator together.
print.fracmat(fm)


This function converts a single matrix of floats (floatmat) to a fraction matrix. It sets the denominators to 10^max_digits and the numerator to floatmat*10^max_digits (it will use fewer digits if exactitude is reached)
mat.to.fracmat(floatmat, max_digits = 6, simplify = TRUE)

               
Does the row operations on a fraction matrix fm to turn it into an upper triangular form
Returns the upper triangular matrix U and ‘inverse’, which records the same row operations starting from the identity
fracmat.upper.tri(fm, track = FALSE, output_inverse = TRUE)
fracmat.upper.tri.to.ident(fmU, inv_fm, track = FALSE)


These get the determinant and the inverse of a fraction matrix. They do so with calls to fracmat.upper.tri and fracmat.upper.tri.to.ident
fracmat.det(m, track=FALSE, output_float = FALSE)
fracmat.inverse(m, track=FALSE)


There is also a decimal (floating-point) matrix version of these high-level functions, which are useful for developing and testing the fraction matrix counterparts. float.inverseand float.det should behave identically to how base::solve()and base::det() on single square matrices.
float.det(m, track=FALSE)
float.inverse(m, track=FALSE)
float.upper.tri(m, track=FALSE, output_inverse =TRUE)
float.upper.tri.to.ident(U, inv_m, track=FALSE)


These perform elementary fraction arithmetic functions. They are used internally for row-operation functions like fracmat.upper.tri
negate.fraction(fm, negate_denom = FALSE)
add.fraction(fracAB, fracCD)
subtract.fraction(fracAB, fracCD)
multiply.fraction(fracAB, fracCD)
divide.fraction(fracAB, fracCD)




If I come back to this, this is my wish list:

General development:
 – More unit testing, stress testing, speed testing.
– Further development into a bona-fide package.
– Is any of this paper-worthy?

Additional matrix functions:
– Recording of row operations.
– LU decomposition
               
Additional presentation:
 – Print out records of matrices after row operations in a way that Linear Algebra students can use
– Print fraction matrices in latex code

Avenues for improved fraction simplification:
– Integration with the big64 package so 64-bit integers can be handed exactly.
– Possible integration from the VeryLargeIntegers so arbitrarily large integers can be handled, however since VeryLargeIntegers operates by string manipulation, it is much slower than floating point arithmetic.
– Possibly passing the whole thing over to RcppBigIntAlgos which is designed to factor large integers.

But what do you think? I am open to suggestion at jackd@sfu.ca , jack.davis@sportlogiq.com , or @jack_davis_sfu on Twitter.

* (or multiplication by an inverse, or subtraction of logarithms, which are all either slower or much more memory intensive)

References: Linear Algebra: An interactive approachby Jain and Gunawardena, especially the worked example on page 118 for the detailed test case.

The End of Error: Unum Computing by John L. Gustafson for its alternative approaches to rounding error.

Shout out to Ashley Lindalia the astrochemist, because ‘astrochemist’ is an amazing title and because planetary science matters more than anything I do.
< !--[if gte mso 9]>< xml> < o:OfficeDocumentSettings> < o:AllowPNG/> < ![endif]-->< !--[if gte mso 9]>< xml> < w:WordDocument> < w:View>Normal < w:Zoom>0 < w:TrackMoves/> < w:TrackFormatting/> < w:PunctuationKerning/> < w:ValidateAgainstSchemas/> < w:SaveIfXMLInvalid>false < w:IgnoreMixedContent>false < w:AlwaysShowPlaceholderText>false < w:DoNotPromoteQF/> < w:LidThemeOther>EN-CA < w:LidThemeAsian>X-NONE < w:LidThemeComplexScript>X-NONE < w:Compatibility> < w:BreakWrappedTables/> < w:SnapToGridInCell/> < w:WrapTextWithPunct/> < w:UseAsianBreakRules/> < w:DontGrowAutofit/> < w:SplitPgBreakAndParaMark/> < w:EnableOpenTypeKerning/> < w:DontFlipMirrorIndents/> < w:OverrideTableStyleHps/> < m:mathPr> < m:mathFont m:val="Cambria Math"/> < m:brkBin m:val="before"/> < m:brkBinSub m:val="--"/> < m:smallFrac m:val="off"/> < m:dispDef/> < m:lMargin m:val="0"/> < m:rMargin m:val="0"/> < m:defJc m:val="centerGroup"/> < m:wrapIndent m:val="1440"/> < m:intLim m:val="subSup"/> < m:naryLim m:val="undOvr"/> < ![endif]-->< !--[if gte mso 9]>< xml> < w:LatentStyles DefLockedState="false" DefUnhideWhenUsed="false" DefSemiHidden="false" DefQFormat="false" DefPriority="99" LatentStyleCount="376"> < w:LsdException Locked="false" Priority="0" QFormat="true" Name="Normal"/> < w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 1"/> < w:LsdException Locked="false" Priority="9" SemiHidden="true" UnhideWhenUsed="true" QFormat="true" Name="heading 2"/> < w:LsdException Locked="false" Priority="9" SemiHidden="true" UnhideWhenUsed="true" QFormat="true" Name="heading 3"/> < w:LsdException Locked="false" Priority="9" SemiHidden="true" UnhideWhenUsed="true" QFormat="true" Name="heading 4"/> < w:LsdException Locked="false" Priority="9" SemiHidden="true" UnhideWhenUsed="true" QFormat="true" Name="heading 5"/> < w:LsdException Locked="false" Priority="9" SemiHidden="true" UnhideWhenUsed="true" QFormat="true" Name="heading 6"/> < w:LsdException Locked="false" Priority="9" SemiHidden="true" UnhideWhenUsed="true" QFormat="true" Name="heading 7"/> < w:LsdException Locked="false" Priority="9" SemiHidden="true" UnhideWhenUsed="true" QFormat="true" Name="heading 8"/> < w:LsdException Locked="false" Priority="9" SemiHidden="true" UnhideWhenUsed="true" QFormat="true" Name="heading 9"/> < w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="index 1"/> < w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="index 2"/> < w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="index 3"/> < w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="index 4"/> < w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="index 5"/> < w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="index 6"/> < w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="index 7"/> < w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="index 8"/> < w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="index 9"/> < w:LsdException Locked="false" Priority="39" SemiHidden="true" UnhideWhenUsed="true" Name="toc 1"/> < w:LsdException Locked="false" Priority="39" SemiHidden="true" UnhideWhenUsed="true" Name="toc 2"/> < w:LsdException Locked="false" Priority="39" SemiHidden="true" UnhideWhenUsed="true" Name="toc 3"/> < w:LsdException Locked="false" Priority="39" SemiHidden="true" UnhideWhenUsed="true" Name="toc 4"/> < w:LsdException Locked="false" Priority="39" SemiHidden="true" UnhideWhenUsed="true" Name="toc 5"/> < w:LsdException Locked="false" Priority="39" SemiHidden="true" UnhideWhenUsed="true" Name="toc 6"/> < w:LsdException Locked="false" Priority="39" SemiHidden="true" UnhideWhenUsed="true" Name="toc 7"/> < w:LsdException Locked="false" Priority="39" SemiHidden="true" UnhideWhenUsed="true" Name="toc 8"/> < w:LsdException Locked="false" Priority="39" SemiHidden="true" UnhideWhenUsed="true" Name="toc 9"/> < w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="Normal Indent"/> < w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="footnote text"/> < w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="annotation text"/> < w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="header"/> < w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="footer"/> < w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="index heading"/> < w:LsdException Locked="false" Priority="35" SemiHidden="true" UnhideWhenUsed="true" QFormat="true" Name="caption"/> < w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="table of figures"/> < w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="envelope address"/> < w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="envelope return"/> < w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="footnote reference"/> < w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="annotation reference"/> < w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="line number"/> < w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="page number"/> < w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="endnote reference"/> < w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="endnote text"/> < w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="table of authorities"/> < w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="macro"/> < w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="toa heading"/> < w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="List"/> < w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="List Bullet"/> < w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="List Number"/> < w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="List 2"/> < w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="List 3"/> < w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="List 4"/> < w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="List 5"/> < w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="List Bullet 2"/> < w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="List Bullet 3"/> < w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="List Bullet 4"/> < w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="List Bullet 5"/> < w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="List Number 2"/> < w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="List Number 3"/> < w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="List Number 4"/> < w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="List Number 5"/> < w:LsdException Locked="false" Priority="10" QFormat="true" Name="Title"/> < w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="Closing"/> < w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="Signature"/> < w:LsdException Locked="false" Priority="1" SemiHidden="true" UnhideWhenUsed="true" Name="Default Paragraph Font"/> < w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="Body Text"/> < w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="Body Text Indent"/> < w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="List Continue"/> < w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="List Continue 2"/> < w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="List Continue 3"/> < w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="List Continue 4"/> < w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="List Continue 5"/> < w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="Message Header"/> < w:LsdException Locked="false" Priority="11" QFormat="true" Name="Subtitle"/> < w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="Salutation"/> < w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="Date"/> < w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="Body Text First Indent"/> < w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="Body Text First Indent 2"/> < w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="Note Heading"/> < w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="Body Text 2"/> < w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="Body Text 3"/> < w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="Body Text Indent 2"/> < w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="Body Text Indent 3"/> < w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="Block Text"/> < w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="Hyperlink"/> < w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="FollowedHyperlink"/> < w:LsdException Locked="false" Priority="22" QFormat="true" Name="Strong"/> < w:LsdException Locked="false" Priority="20" QFormat="true" Name="Emphasis"/> < w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="Document Map"/> < w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="Plain Text"/> < w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="E-mail Signature"/> < w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="HTML Top of Form"/> < w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="HTML Bottom of Form"/> < w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="Normal (Web)"/> < w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="HTML Acronym"/> < w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="HTML Address"/> < w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="HTML Cite"/> < w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="HTML Code"/> < w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="HTML Definition"/> < w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="HTML Keyboard"/> < w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="HTML Preformatted"/> < w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="HTML Sample"/> < w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="HTML Typewriter"/> < w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="HTML Variable"/> < w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="Normal Table"/> < w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="annotation subject"/> < w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="No List"/> < w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="Outline List 1"/> < w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="Outline List 2"/> < w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="Outline List 3"/> < w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="Table Simple 1"/> < w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="Table Simple 2"/> < w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="Table Simple 3"/> < w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="Table Classic 1"/> < w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="Table Classic 2"/> < w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="Table Classic 3"/> < w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="Table Classic 4"/> < w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="Table Colorful 1"/> < w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="Table Colorful 2"/> < w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="Table Colorful 3"/> < w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="Table Columns 1"/> < w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="Table Columns 2"/> < w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="Table Columns 3"/> < w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="Table Columns 4"/> < w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="Table Columns 5"/> < w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="Table Grid 1"/> < w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="Table Grid 2"/> < w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="Table Grid 3"/> < w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="Table Grid 4"/> < w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="Table Grid 5"/> < w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="Table Grid 6"/> < w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="Table Grid 7"/> < w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="Table Grid 8"/> < w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="Table List 1"/> < w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="Table List 2"/> < w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="Table List 3"/> < w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="Table List 4"/> < w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="Table List 5"/> < w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="Table List 6"/> < w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="Table List 7"/> < w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="Table List 8"/> < w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="Table 3D effects 1"/> < w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="Table 3D effects 2"/> < w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="Table 3D effects 3"/> < w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="Table Contemporary"/> < w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="Table Elegant"/> < w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="Table Professional"/> < w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="Table Subtle 1"/> < w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="Table Subtle 2"/> < w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="Table Web 1"/> < w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="Table Web 2"/> < w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="Table Web 3"/> < w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="Balloon Text"/> < w:LsdException Locked="false" Priority="39" Name="Table Grid"/> < w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="Table Theme"/> < w:LsdException Locked="false" SemiHidden="true" Name="Placeholder Text"/> < w:LsdException Locked="false" Priority="1" QFormat="true" Name="No Spacing"/> < w:LsdException Locked="false" Priority="60" Name="Light Shading"/> < w:LsdException Locked="false" Priority="61" Name="Light List"/> < w:LsdException Locked="false" Priority="62" Name="Light Grid"/> < w:LsdException Locked="false" Priority="63" Name="Medium Shading 1"/> < w:LsdException Locked="false" Priority="64" Name="Medium Shading 2"/> < w:LsdException Locked="false" Priority="65" Name="Medium List 1"/> < w:LsdException Locked="false" Priority="66" Name="Medium List 2"/> < w:LsdException Locked="false" Priority="67" Name="Medium Grid 1"/> < w:LsdException Locked="false" Priority="68" Name="Medium Grid 2"/> < w:LsdException Locked="false" Priority="69" Name="Medium Grid 3"/> < w:LsdException Locked="false" Priority="70" Name="Dark List"/> < w:LsdException Locked="false" Priority="71" Name="Colorful Shading"/> < w:LsdException Locked="false" Priority="72" Name="Colorful List"/> < w:LsdException Locked="false" Priority="73" Name="Colorful Grid"/> < w:LsdException Locked="false" Priority="60" Name="Light Shading Accent 1"/> < w:LsdException Locked="false" Priority="61" Name="Light List Accent 1"/> < w:LsdException Locked="false" Priority="62" Name="Light Grid Accent 1"/> < w:LsdException Locked="false" Priority="63" Name="Medium Shading 1 Accent 1"/> < w:LsdException Locked="false" Priority="64" Name="Medium Shading 2 Accent 1"/> < w:LsdException Locked="false" Priority="65" Name="Medium List 1 Accent 1"/> < w:LsdException Locked="false" SemiHidden="true" Name="Revision"/> < w:LsdException Locked="false" Priority="34" QFormat="true" Name="List Paragraph"/> < w:LsdException Locked="false" Priority="29" QFormat="true" Name="Quote"/> < w:LsdException Locked="false" Priority="30" QFormat="true" Name="Intense Quote"/> < w:LsdException Locked="false" Priority="66" Name="Medium List 2 Accent 1"/> < w:LsdException Locked="false" Priority="67" Name="Medium Grid 1 Accent 1"/> < w:LsdException Locked="false" Priority="68" Name="Medium Grid 2 Accent 1"/> < w:LsdException Locked="false" Priority="69" Name="Medium Grid 3 Accent 1"/> < w:LsdException Locked="false" Priority="70" Name="Dark List Accent 1"/> < w:LsdException Locked="false" Priority="71" Name="Colorful Shading Accent 1"/> < w:LsdException Locked="false" Priority="72" Name="Colorful List Accent 1"/> < w:LsdException Locked="false" Priority="73" Name="Colorful Grid Accent 1"/> < w:LsdException Locked="false" Priority="60" Name="Light Shading Accent 2"/> < w:LsdException Locked="false" Priority="61" Name="Light List Accent 2"/> < w:LsdException Locked="false" Priority="62" Name="Light Grid Accent 2"/> < w:LsdException Locked="false" Priority="63" Name="Medium Shading 1 Accent 2"/> < w:LsdException Locked="false" Priority="64" Name="Medium Shading 2 Accent 2"/> < w:LsdException Locked="false" Priority="65" Name="Medium List 1 Accent 2"/> < w:LsdException Locked="false" Priority="66" Name="Medium List 2 Accent 2"/> < w:LsdException Locked="false" Priority="67" Name="Medium Grid 1 Accent 2"/> < w:LsdException Locked="false" Priority="68" Name="Medium Grid 2 Accent 2"/> < w:LsdException Locked="false" Priority="69" Name="Medium Grid 3 Accent 2"/> < w:LsdException Locked="false" Priority="70" Name="Dark List Accent 2"/> < w:LsdException Locked="false" Priority="71" Name="Colorful Shading Accent 2"/> < w:LsdException Locked="false" Priority="72" Name="Colorful List Accent 2"/> < w:LsdException Locked="false" Priority="73" Name="Colorful Grid Accent 2"/> < w:LsdException Locked="false" Priority="60" Name="Light Shading Accent 3"/> < w:LsdException Locked="false" Priority="61" Name="Light List Accent 3"/> < w:LsdException Locked="false" Priority="62" Name="Light Grid Accent 3"/> < w:LsdException Locked="false" Priority="63" Name="Medium Shading 1 Accent 3"/> < w:LsdException Locked="false" Priority="64" Name="Medium Shading 2 Accent 3"/> < w:LsdException Locked="false" Priority="65" Name="Medium List 1 Accent 3"/> < w:LsdException Locked="false" Priority="66" Name="Medium List 2 Accent 3"/> < w:LsdException Locked="false" Priority="67" Name="Medium Grid 1 Accent 3"/> < w:LsdException Locked="false" Priority="68" Name="Medium Grid 2 Accent 3"/> < w:LsdException Locked="false" Priority="69" Name="Medium Grid 3 Accent 3"/> < w:LsdException Locked="false" Priority="70" Name="Dark List Accent 3"/> < w:LsdException Locked="false" Priority="71" Name="Colorful Shading Accent 3"/> < w:LsdException Locked="false" Priority="72" Name="Colorful List Accent 3"/> < w:LsdException Locked="false" Priority="73" Name="Colorful Grid Accent 3"/> < w:LsdException Locked="false" Priority="60" Name="Light Shading Accent 4"/> < w:LsdException Locked="false" Priority="61" Name="Light List Accent 4"/> < w:LsdException Locked="false" Priority="62" Name="Light Grid Accent 4"/> < w:LsdException Locked="false" Priority="63" Name="Medium Shading 1 Accent 4"/> < w:LsdException Locked="false" Priority="64" Name="Medium Shading 2 Accent 4"/> < w:LsdException Locked="false" Priority="65" Name="Medium List 1 Accent 4"/> < w:LsdException Locked="false" Priority="66" Name="Medium List 2 Accent 4"/> < w:LsdException Locked="false" Priority="67" Name="Medium Grid 1 Accent 4"/> < w:LsdException Locked="false" Priority="68" Name="Medium Grid 2 Accent 4"/> < w:LsdException Locked="false" Priority="69" Name="Medium Grid 3 Accent 4"/> < w:LsdException Locked="false" Priority="70" Name="Dark List Accent 4"/> < w:LsdException Locked="false" Priority="71" Name="Colorful Shading Accent 4"/> < w:LsdException Locked="false" Priority="72" Name="Colorful List Accent 4"/> < w:LsdException Locked="false" Priority="73" Name="Colorful Grid Accent 4"/> < w:LsdException Locked="false" Priority="60" Name="Light Shading Accent 5"/> < w:LsdException Locked="false" Priority="61" Name="Light List Accent 5"/> < w:LsdException Locked="false" Priority="62" Name="Light Grid Accent 5"/> < w:LsdException Locked="false" Priority="63" Name="Medium Shading 1 Accent 5"/> < w:LsdException Locked="false" Priority="64" Name="Medium Shading 2 Accent 5"/> < w:LsdException Locked="false" Priority="65" Name="Medium List 1 Accent 5"/> < w:LsdException Locked="false" Priority="66" Name="Medium List 2 Accent 5"/> < w:LsdException Locked="false" Priority="67" Name="Medium Grid 1 Accent 5"/> < w:LsdException Locked="false" Priority="68" Name="Medium Grid 2 Accent 5"/> < w:LsdException Locked="false" Priority="69" Name="Medium Grid 3 Accent 5"/> < w:LsdException Locked="false" Priority="70" Name="Dark List Accent 5"/> < w:LsdException Locked="false" Priority="71" Name="Colorful Shading Accent 5"/> < w:LsdException Locked="false" Priority="72" Name="Colorful List Accent 5"/> < w:LsdException Locked="false" Priority="73" Name="Colorful Grid Accent 5"/> < w:LsdException Locked="false" Priority="60" Name="Light Shading Accent 6"/> < w:LsdException Locked="false" Priority="61" Name="Light List Accent 6"/> < w:LsdException Locked="false" Priority="62" Name="Light Grid Accent 6"/> < w:LsdException Locked="false" Priority="63" Name="Medium Shading 1 Accent 6"/> < w:LsdException Locked="false" Priority="64" Name="Medium Shading 2 Accent 6"/> < w:LsdException Locked="false" Priority="65" Name="Medium List 1 Accent 6"/> < w:LsdException Locked="false" Priority="66" Name="Medium List 2 Accent 6"/> < w:LsdException Locked="false" Priority="67" Name="Medium Grid 1 Accent 6"/> < w:LsdException Locked="false" Priority="68" Name="Medium Grid 2 Accent 6"/> < w:LsdException Locked="false" Priority="69" Name="Medium Grid 3 Accent 6"/> < w:LsdException Locked="false" Priority="70" Name="Dark List Accent 6"/> < w:LsdException Locked="false" Priority="71" Name="Colorful Shading Accent 6"/> < w:LsdException Locked="false" Priority="72" Name="Colorful List Accent 6"/> < w:LsdException Locked="false" Priority="73" Name="Colorful Grid Accent 6"/> < w:LsdException Locked="false" Priority="19" QFormat="true" Name="Subtle Emphasis"/> < w:LsdException Locked="false" Priority="21" QFormat="true" Name="Intense Emphasis"/> < w:LsdException Locked="false" Priority="31" QFormat="true" Name="Subtle Reference"/> < w:LsdException Locked="false" Priority="32" QFormat="true" Name="Intense Reference"/> < w:LsdException Locked="false" Priority="33" QFormat="true" Name="Book Title"/> < w:LsdException Locked="false" Priority="37" SemiHidden="true" UnhideWhenUsed="true" Name="Bibliography"/> < w:LsdException Locked="false" Priority="39" SemiHidden="true" UnhideWhenUsed="true" QFormat="true" Name="TOC Heading"/> < w:LsdException Locked="false" Priority="41" Name="Plain Table 1"/> < w:LsdException Locked="false" Priority="42" Name="Plain Table 2"/> < w:LsdException Locked="false" Priority="43" Name="Plain Table 3"/> < w:LsdException Locked="false" Priority="44" Name="Plain Table 4"/> < w:LsdException Locked="false" Priority="45" Name="Plain Table 5"/> < w:LsdException Locked="false" Priority="40" Name="Grid Table Light"/> < w:LsdException Locked="false" Priority="46" Name="Grid Table 1 Light"/> < w:LsdException Locked="false" Priority="47" Name="Grid Table 2"/> < w:LsdException Locked="false" Priority="48" Name="Grid Table 3"/> < w:LsdException Locked="false" Priority="49" Name="Grid Table 4"/> < w:LsdException Locked="false" Priority="50" Name="Grid Table 5 Dark"/> < w:LsdException Locked="false" Priority="51" Name="Grid Table 6 Colorful"/> < w:LsdException Locked="false" Priority="52" Name="Grid Table 7 Colorful"/> < w:LsdException Locked="false" Priority="46" Name="Grid Table 1 Light Accent 1"/> < w:LsdException Locked="false" Priority="47" Name="Grid Table 2 Accent 1"/> < w:LsdException Locked="false" Priority="48" Name="Grid Table 3 Accent 1"/> < w:LsdException Locked="false" Priority="49" Name="Grid Table 4 Accent 1"/> < w:LsdException Locked="false" Priority="50" Name="Grid Table 5 Dark Accent 1"/> < w:LsdException Locked="false" Priority="51" Name="Grid Table 6 Colorful Accent 1"/> < w:LsdException Locked="false" Priority="52" Name="Grid Table 7 Colorful Accent 1"/> < w:LsdException Locked="false" Priority="46" Name="Grid Table 1 Light Accent 2"/> < w:LsdException Locked="false" Priority="47" Name="Grid Table 2 Accent 2"/> < w:LsdException Locked="false" Priority="48" Name="Grid Table 3 Accent 2"/> < w:LsdException Locked="false" Priority="49" Name="Grid Table 4 Accent 2"/> < w:LsdException Locked="false" Priority="50" Name="Grid Table 5 Dark Accent 2"/> < w:LsdException Locked="false" Priority="51" Name="Grid Table 6 Colorful Accent 2"/> < w:LsdException Locked="false" Priority="52" Name="Grid Table 7 Colorful Accent 2"/> < w:LsdException Locked="false" Priority="46" Name="Grid Table 1 Light Accent 3"/> < w:LsdException Locked="false" Priority="47" Name="Grid Table 2 Accent 3"/> < w:LsdException Locked="false" Priority="48" Name="Grid Table 3 Accent 3"/> < w:LsdException Locked="false" Priority="49" Name="Grid Table 4 Accent 3"/> < w:LsdException Locked="false" Priority="50" Name="Grid Table 5 Dark Accent 3"/> < w:LsdException Locked="false" Priority="51" Name="Grid Table 6 Colorful Accent 3"/> < w:LsdException Locked="false" Priority="52" Name="Grid Table 7 Colorful Accent 3"/> < w:LsdException Locked="false" Priority="46" Name="Grid Table 1 Light Accent 4"/> < w:LsdException Locked="false" Priority="47" Name="Grid Table 2 Accent 4"/> < w:LsdException Locked="false" Priority="48" Name="Grid Table 3 Accent 4"/> < w:LsdException Locked="false" Priority="49" Name="Grid Table 4 Accent 4"/> < w:LsdException Locked="false" Priority="50" Name="Grid Table 5 Dark Accent 4"/> < w:LsdException Locked="false" Priority="51" Name="Grid Table 6 Colorful Accent 4"/> < w:LsdException Locked="false" Priority="52" Name="Grid Table 7 Colorful Accent 4"/> < w:LsdException Locked="false" Priority="46" Name="Grid Table 1 Light Accent 5"/> < w:LsdException Locked="false" Priority="47" Name="Grid Table 2 Accent 5"/> < w:LsdException Locked="false" Priority="48" Name="Grid Table 3 Accent 5"/> < w:LsdException Locked="false" Priority="49" Name="Grid Table 4 Accent 5"/> < w:LsdException Locked="false" Priority="50" Name="Grid Table 5 Dark Accent 5"/> < w:LsdException Locked="false" Priority="51" Name="Grid Table 6 Colorful Accent 5"/> < w:LsdException Locked="false" Priority="52" Name="Grid Table 7 Colorful Accent 5"/> < w:LsdException Locked="false" Priority="46" Name="Grid Table 1 Light Accent 6"/> < w:LsdException Locked="false" Priority="47" Name="Grid Table 2 Accent 6"/> < w:LsdException Locked="false" Priority="48" Name="Grid Table 3 Accent 6"/> < w:LsdException Locked="false" Priority="49" Name="Grid Table 4 Accent 6"/> < w:LsdException Locked="false" Priority="50" Name="Grid Table 5 Dark Accent 6"/> < w:LsdException Locked="false" Priority="51" Name="Grid Table 6 Colorful Accent 6"/> < w:LsdException Locked="false" Priority="52" Name="Grid Table 7 Colorful Accent 6"/> < w:LsdException Locked="false" Priority="46" Name="List Table 1 Light"/> < w:LsdException Locked="false" Priority="47" Name="List Table 2"/> < w:LsdException Locked="false" Priority="48" Name="List Table 3"/> < w:LsdException Locked="false" Priority="49" Name="List Table 4"/> < w:LsdException Locked="false" Priority="50" Name="List Table 5 Dark"/> < w:LsdException Locked="false" Priority="51" Name="List Table 6 Colorful"/> < w:LsdException Locked="false" Priority="52" Name="List Table 7 Colorful"/> < w:LsdException Locked="false" Priority="46" Name="List Table 1 Light Accent 1"/> < w:LsdException Locked="false" Priority="47" Name="List Table 2 Accent 1"/> < w:LsdException Locked="false" Priority="48" Name="List Table 3 Accent 1"/> < w:LsdException Locked="false" Priority="49" Name="List Table 4 Accent 1"/> < w:LsdException Locked="false" Priority="50" Name="List Table 5 Dark Accent 1"/> < w:LsdException Locked="false" Priority="51" Name="List Table 6 Colorful Accent 1"/> < w:LsdException Locked="false" Priority="52" Name="List Table 7 Colorful Accent 1"/> < w:LsdException Locked="false" Priority="46" Name="List Table 1 Light Accent 2"/> < w:LsdException Locked="false" Priority="47" Name="List Table 2 Accent 2"/> < w:LsdException Locked="false" Priority="48" Name="List Table 3 Accent 2"/> < w:LsdException Locked="false" Priority="49" Name="List Table 4 Accent 2"/> < w:LsdException Locked="false" Priority="50" Name="List Table 5 Dark Accent 2"/> < w:LsdException Locked="false" Priority="51" Name="List Table 6 Colorful Accent 2"/> < w:LsdException Locked="false" Priority="52" Name="List Table 7 Colorful Accent 2"/> < w:LsdException Locked="false" Priority="46" Name="List Table 1 Light Accent 3"/> < w:LsdException Locked="false" Priority="47" Name="List Table 2 Accent 3"/> < w:LsdException Locked="false" Priority="48" Name="List Table 3 Accent 3"/> < w:LsdException Locked="false" Priority="49" Name="List Table 4 Accent 3"/> < w:LsdException Locked="false" Priority="50" Name="List Table 5 Dark Accent 3"/> < w:LsdException Locked="false" Priority="51" Name="List Table 6 Colorful Accent 3"/> < w:LsdException Locked="false" Priority="52" Name="List Table 7 Colorful Accent 3"/> < w:LsdException Locked="false" Priority="46" Name="List Table 1 Light Accent 4"/> < w:LsdException Locked="false" Priority="47" Name="List Table 2 Accent 4"/> < w:LsdException Locked="false" Priority="48" Name="List Table 3 Accent 4"/> < w:LsdException Locked="false" Priority="49" Name="List Table 4 Accent 4"/> < w:LsdException Locked="false" Priority="50" Name="List Table 5 Dark Accent 4"/> < w:LsdException Locked="false" Priority="51" Name="List Table 6 Colorful Accent 4"/> < w:LsdException Locked="false" Priority="52" Name="List Table 7 Colorful Accent 4"/> < w:LsdException Locked="false" Priority="46" Name="List Table 1 Light Accent 5"/> < w:LsdException Locked="false" Priority="47" Name="List Table 2 Accent 5"/> < w:LsdException Locked="false" Priority="48" Name="List Table 3 Accent 5"/> < w:LsdException Locked="false" Priority="49" Name="List Table 4 Accent 5"/> < w:LsdException Locked="false" Priority="50" Name="List Table 5 Dark Accent 5"/> < w:LsdException Locked="false" Priority="51" Name="List Table 6 Colorful Accent 5"/> < w:LsdException Locked="false" Priority="52" Name="List Table 7 Colorful Accent 5"/> < w:LsdException Locked="false" Priority="46" Name="List Table 1 Light Accent 6"/> < w:LsdException Locked="false" Priority="47" Name="List Table 2 Accent 6"/> < w:LsdException Locked="false" Priority="48" Name="List Table 3 Accent 6"/> < w:LsdException Locked="false" Priority="49" Name="List Table 4 Accent 6"/> < w:LsdException Locked="false" Priority="50" Name="List Table 5 Dark Accent 6"/> < w:LsdException Locked="false" Priority="51" Name="List Table 6 Colorful Accent 6"/> < w:LsdException Locked="false" Priority="52" Name="List Table 7 Colorful Accent 6"/> < w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="Mention"/> < w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="Smart Hyperlink"/> < w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="Hashtag"/> < w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="Unresolved Mention"/> < w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="Smart Link"/> < ![endif]-->< !--[if gte mso 10]>< ![endif]-->

To leave a comment for the author, please follow the link and comment on their blog: Statistics et al..

R-bloggers.com offers daily e-mail updates about R news and tutorials about learning R and many other topics. Click here if you're looking to post or find an R/data-science job.
Want to share your content on R-bloggers? click here if you have a blog, or here if you don't.