From 54059e565a211d4355092526f85f50bd18fa6b6e Mon Sep 17 00:00:00 2001
From: Steven Palmer <palmes4@mcmaster.ca>
Date: Sun, 4 Feb 2018 09:27:48 -0500
Subject: [PATCH] Fix access program table for SeqServices

---
 Assignments/A2/A2.pdf | Bin 147743 -> 147956 bytes
 Assignments/A2/A2.tex |   8 ++++++--
 2 files changed, 6 insertions(+), 2 deletions(-)

diff --git a/Assignments/A2/A2.pdf b/Assignments/A2/A2.pdf
index ea0a9ccf165e25218c4fb29403bcb3909718af87..d8acab04c0863ca4a55f1d5e4f7d268399b79b37 100644
GIT binary patch
delta 7096
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

delta 6887
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

diff --git a/Assignments/A2/A2.tex b/Assignments/A2/A2.tex
index 51af8de8..21c6c183 100644
--- a/Assignments/A2/A2.tex
+++ b/Assignments/A2/A2.tex
@@ -487,13 +487,17 @@ None
 \hline
 \textbf{Routine name} & \textbf{In} & \textbf{Out} & \textbf{Exceptions}\\
 \hline
-isAscending & $x: \mathbb{R}^n$ & $\mathbb{B}$ & ~\\
+isAscending & $X: \mathbb{R}^n$ & $\mathbb{B}$ & ~\\
 \hline
-isInBounds & $x: \mathbb{R}^n, \mathbb{R}$ & $\mathbb{B}$ & ~\\
+isInBounds & $X: \mathbb{R}^n, x: \mathbb{R}$ & $\mathbb{B}$ & ~\\
 \hline
 interpLin & $x_1: \mathbb{R}, y_1: \mathbb{R}, x_2: \mathbb{R}, y_2: \mathbb{R},
            x: \mathbb{R}$ & $\mathbb{R}$ & ~\\
 \hline
+interpQuad & $ x_0: \mathbb{R}, y_0: \mathbb{R},
+           x_1: \mathbb{R}, y_1: \mathbb{R}, x_2: \mathbb{R}, y_2: \mathbb{R},
+           x: \mathbb{R}$ & $\mathbb{R}$ & ~\\
+\hline
 index & $X: \mathbb{R}^n, x: \mathbb{R}$ & $\mathbb{N}$ & ~\\
 
 \hline
-- 
GitLab