Skip to main content
Mathematics LibreTexts

1.7: Transformations

  • Page ID
    120120
  • \( \newcommand{\vecs}[1]{\overset { \scriptstyle \rightharpoonup} {\mathbf{#1}} } \) \( \newcommand{\vecd}[1]{\overset{-\!-\!\rightharpoonup}{\vphantom{a}\smash {#1}}} \)\(\newcommand{\id}{\mathrm{id}}\) \( \newcommand{\Span}{\mathrm{span}}\) \( \newcommand{\kernel}{\mathrm{null}\,}\) \( \newcommand{\range}{\mathrm{range}\,}\) \( \newcommand{\RealPart}{\mathrm{Re}}\) \( \newcommand{\ImaginaryPart}{\mathrm{Im}}\) \( \newcommand{\Argument}{\mathrm{Arg}}\) \( \newcommand{\norm}[1]{\| #1 \|}\) \( \newcommand{\inner}[2]{\langle #1, #2 \rangle}\) \( \newcommand{\Span}{\mathrm{span}}\) \(\newcommand{\id}{\mathrm{id}}\) \( \newcommand{\Span}{\mathrm{span}}\) \( \newcommand{\kernel}{\mathrm{null}\,}\) \( \newcommand{\range}{\mathrm{range}\,}\) \( \newcommand{\RealPart}{\mathrm{Re}}\) \( \newcommand{\ImaginaryPart}{\mathrm{Im}}\) \( \newcommand{\Argument}{\mathrm{Arg}}\) \( \newcommand{\norm}[1]{\| #1 \|}\) \( \newcommand{\inner}[2]{\langle #1, #2 \rangle}\) \( \newcommand{\Span}{\mathrm{span}}\)\(\newcommand{\AA}{\unicode[.8,0]{x212B}}\)

    Math 370 Learning Objectives
    • (as a review) Graph functions involving multiple algebraic transformations including shifts, reflections, and scalings.

    General Form of a Transformed Function

    In this section, we review how to graph the transformation of a function \( f \). Suppose

    \[ h(x) = A f(B x + C) + D, \label{trans1} \]

    where \( A \), \( B \), \( C \), and \( D \) are real numbers, \( A \neq 0 \) and \( B \neq 0 \), and where \( f(x) \) is a function whose graph we are familiar with or have been given. In this case, the graph of \( f \) is called the base graph for \( h \) as it is the graph we manipulate to eventually arrive at the graph of \( h \). We will refer to the form presented in Equation \( \ref{trans1} \) as the general form of the transformed function \( f \). Throughout this section we will explore the effects that the constants, \( A \), \( B \), \( C \), and \( D \) have on the graphing process. Since you have already learned this topic in your previous algebra courses, we will take a "higher-level" approach to the topic here.

    While going through the theory of this section, we will refer to the following two graphs often.

    Precalc_1_7_Fig1A_Fixed_Again.png          Precalc_1_7_Fig1B_Fixed_Again.png
    Figures \( \PageIndex{1}A \) (left): the base graph \( f(x) \) and \( \PageIndex{1}B \) (right): the base graph \( g(x) = \sec{(x)} \)

    Recall that the Fundamental Graphing Principle for Functions states for a point \((x_1, y_1)\) to be on the graph of the function, \(f(x_1) = y_1\).1 In particular, from Figure \( \PageIndex{1}A \) we know \(f(0) = 1\), \(f(2)=3\), \(f(4)=3\) and \(f(5)=5\). From Figure \( \PageIndex{1}B \), we have three anchor points,2 \( g(0) = 1 \), \( g(\pi) = -1 \), and \( g(2 \pi) = 1 \). The graph of \( g(x) = \sec{(x)} \) also shows two of the secant's (infinitely many) vertical asymptotes, \( x = \frac{\pi}{2} \) and \( x = \frac{3 \pi}{2} \), dashed in red along with the "midline" of \( y = 0 \) dashed in green.3 With that in mind, we begin our "high-level" review of transformations.

    Subsection Footnotes

    1 In reality, the Fundamental Graphing Principle for Functions states for a point \( \left( x,y \right) \) to be on the graph, \( f(x) = y \); however, I personally find that replacing \( x \) and \( y \) with \( x_1 \) and \( y_1 \), respectively, makes the language a little more understandable.

    2 An "anchor point" is a point on a base graph that you "track" as you perform transformations.

    3 We will remind you of the graphs of the trigonometric functions in Section 10.5.


    The Order of Transformations

    To be honest, there is not one agreed upon "order" with which to perform transformations; however, every approach presented by mathematicians across the globe take into consideration the ramifications of the order they have selected. For example, suppose you have the point \( (2,3) \) from the graph of \( f(x) \) in Figure \( \PageIndex{1}A \) and you are asked to perform the following transformations:

    • reflect the point across the \( x \)-axis
    • compress the point vertically by a factor of \( \frac{1}{3} \)
    • reflect the point across the \( y \)-axis
    • stretch the point horizontally by a factor of \( 4 \)
    • shift the point up \( 3 \) units
    • shift the point left \( 5 \) units

    Performing these operations in the order listed gives the following result:

    Precalc_1_7_Fig2a.png \( \underrightarrow{\text{reflect about }x\text{-axis}} \) Precalc_1_7_Fig2b.png
      \( \underrightarrow{\text{compress vertically by factor of }\frac{1}{3}} \) Precalc_1_7_Fig2c.png
      \( \underrightarrow{\text{reflect about }y\text{-axis}} \) Precalc_1_7_Fig2d.png
      \( \underrightarrow{\text{stretch horizontally by factor of }4} \) Precalc_1_7_Fig2e.png
      \( \underrightarrow{\text{shift up }3\text{ units}} \) Precalc_1_7_Fig2f.png
      \( \underrightarrow{\text{shift left }5\text{ units}} \) Precalc_1_7_Fig2g.png

    Thus, the result of all of these transformations, in the order listed, is to take the point \( (2,3) \) on our graph of \( f \) and manipulate it to become \( (-13,2) \) on the graph of \( h \).

    Before continuing, let's make a very important clarification. When I say "compress vertically by a factor of \( \frac{1}{3} \)," I mean "squish" the \( y \)-values toward the \( x \)-axis by multiplying them by \( \frac{1}{3} \). Likewise, when I say "stretch horizontally by a factor of \( 4 \)," I mean "pull" the \( x \)-values away from the \( y \)-axis by multiplying them by \( 4 \).

    Had we done things in a different order, would we have arrived at the same result? Well, there's no better teacher than experience, so let's see by experimenting.

    Precalc_1_7_Fig3a.png \( \underrightarrow{\text{shift up }3\text{ units}} \) Precalc_1_7_Fig3b.png
      \( \underrightarrow{\text{shift left }5\text{ units}} \) Precalc_1_7_Fig3c.png
      \( \underrightarrow{\text{reflect about }x\text{-axis}} \) Precalc_1_7_Fig3d.png
      \( \underrightarrow{\text{compress vertically by factor of }\frac{1}{3}} \) Precalc_1_7_Fig3e.png
      \( \underrightarrow{\text{reflect about }y\text{-axis}} \) Precalc_1_7_Fig3f.png
      \( \underrightarrow{\text{stretch horizontally by factor of }4} \) Precalc_1_7_Fig3g.png

    As we can see, switching the order changes the resulting point to \( (12, -2) \), which is definitely not \( (-13,2) \).

    So, how do we guarantee that we are always performing the transformations in the correct order?

    It turns out there is something akin to the Order of Operations for transformations. Given the transformation of \( f \) in Equation \( \ref{trans1} \), we focus on \( x \) and perform the Order of Operations on \( x \).4

    \[ h(x) = A f\left(B \boxed{x} + C\right) + D \nonumber \]

    According to the Order of Operations, if there was an exponent or some other function acting on \( x \), we would apply it, but the only things happening to \( x \) inside those parentheses is a multiplication by \( B \) and an addition by \( C \). Multiplication beats addition, so let's perform the multiplication first.

    \[ h(x) = A f\left(\boxed{Bx} + C\right) + D \nonumber \]

    Continuing on with the Order of Operations, we add the \( C \).

    \[ h(x) = A f\left(\boxed{Bx + C}\right) + D \nonumber \]

    Moving outside of the function, we see \( f \) is being multiplied by \( A \) and added to by \( D \).5 Again, following the Order of Operations, we apply the multiplication first.

    \[ h(x) = \boxed{A f\left(Bx + C\right)} + D \nonumber \]

    Finally, there is nothing left but to apply the addition.

    \[ h(x) = \boxed{A f\left(Bx + C\right) + D} \nonumber \]

    What we have witnessed is exactly how we will apply our transformations in this text. I call this the "Order of Transformations."

    Order of Transformations (Conceptual Version)

    Let \( h(x) \) be a function that can be written as\[ h(x) = A f(Bx + C) + D, \nonumber \]for constants \( A \), \( B \), \( C \), and \( D \), where \( A \neq 0 \) and \( B \neq 0 \). The graph of \( h \) can be obtained from the graph of \( f \) as follows: 

    1. apply the transformation associated with the multiplication of \( x \) by \( B \)
    2. apply the transformation associated with adding \( C \) to \( Bx \)
    3. apply the transformation associated with the multiplication of \( f(Bx + C) \) by \( A \)
    4. apply the transformation associated with adding \( D \) to \( A f(B x + C) \)

    There are a few items to point out here. First, we have not stated yet, nor have we proved, what effects each of these transformations has on the graphing process. All we "officially" know at this point is that, according to the Order of Transformations (which is based on the Order of Operations), we should apply the transformation associated with \( B \), then \( C \), then \( A \), and finally \( D \) - in that order.6

    Second, in Step 2 of the Order of Transformations, we "apply the transformation associated with adding \( C \) to \( Bx \)" - not to \( x \). As we will see, this is going to necessitate some factoring because working with \( Bx \) is more challenging than working with \( x \). Therefore, in practice, we rewrite Equation \( \ref{trans1} \) in the better7 form

    \[  h(x) = A f\left( B \left( x + \frac{C}{B} \right) \right) + D. \label{trans2} \]

    We will call this the standard form of the transformed function \( f \).8

    Subsection Footnotes

    4 In reality, we are performing the Order of Operations in alphabetical order. We focus in on what happens to the \( x \) values first, then what happens to the \( y \) values, which are the function values.

    5 If this was truly the Order of Operations, at this point we would apply the function \( f \) to the argument \( Bx + C \); however, we will not need to do that in the graphing process. You will just have to wait and see why.

    6 This order is actually flexible and, in practice, most people perform it from \( A \) to \( D \).

    7 The word "better" here is debatable. Since these equations are equivalent, one is not technically "better" than the other. However, for our conversation and the way I am presenting this topic, Equation \( \ref{trans2} \) is more convenient.

    8 For those "in the know," this nomenclature ("standard form" versus "general form") aligns nicely with all related definitions of standard and general forms you will see in Mathematics. In general, an equation in standard form is a factored form and an equation in general form is a distributed form.


    Vertical Shifts

    Suppose we wanted to graph the function defined by the formula \(h(x) = f(x) + 2\), where \( f \) is the function from Figure \( \PageIndex{1}A \). Let’s take a minute to remind ourselves of what \(h\) is doing. We start with an input \(x\) to the function \(f\) and we obtain the output \(f(x)\). The function \(h\) takes the output \(f(x)\) and adds \(2\) to it. In order to graph \(h\), we need to graph the points \((x,h(x))\). How are we to find the values for \(h(x)\) without a formula for \(f(x)\)? The answer is that we don’t need a formula for \(f(x)\), we just need the values of \(f(x)\). The values of \(f(x)\) are the \(y\) values on the graph of \(y=f(x)\). For example, using the points indicated on the graph of \(f\), we can make the following table.

    \[\begin{array}{|c|c|c|}
    \hline x & f(x) & h(x)=f(x)+2 \\
    \hline 0 & 1 & 3 \\
    \hline 2 & 3 & 5 \\
    \hline 4 & 3 & 5 \\
    \hline 5 & 5 & 7 \\
    \hline \end{array}\nonumber\]

    In general, if \((x_1,y_1)\) is on the graph of \(y=f(x)\), then \(f(x_1) = y_1\), so \(g(x_1) = f(x_1) +2 = y_1+2\). Hence, \((x_1 ,y_1+2)\) is on the graph of \(h\).

    In other words, to obtain the graph of \(h\), we add \(2\) to the \(y\)-coordinate of each point on the graph of \(f\). Geometrically, adding \(2\) to the \(y\)-coordinate of a point moves the point \(2\) units above its previous location. Adding \(2\) to every \(y\)-coordinate on a graph en masse is usually described as "shifting the graph up \(2\) units." Notice that the graph retains the same basic shape as before, it is just \(2\) units above its original location. We see the results in Figure \( \PageIndex{2}A \).

    Precalc_1_7_Fig2A_Fixed.png
    Figure \( \PageIndex{2}A \): \( h(x) = f(x) + 2 \)

    You’ll note that the domain of \(f\) and the domain of \(h\) are the same, namely \([0,5]\), but that the range of \(f\) is \([1,5]\) while the range of \(h\) is \([3,7]\). In general, shifting a function vertically like this will leave the domain unchanged, but could very well affect the range.

    Suppose we want to graph the function \(j(x) = g(x) - 2\), where \( g \) is the secant function in Figure \( \PageIndex{1}B \). Instead of adding \(2\) to each of the \(y\)-coordinates on the graph of \(g\), we’d subtract \(2\). Geometrically, we move the graph down \(2\) units. The domain of \(j\) is the same as \(g\), but the range of \(j\) is \((-\infty, -3] \cup [-1,\infty)\) (instead of \( (-\infty, -1] \cup [1, \infty) \)). In this case, since our original graph had a "midline," we move that down \( 2 \) units as well. We see the results in Figure \( \PageIndex{2}B \).

    Precalc_1_7_Fig2B_Fixed_Again.png
    Figure \( \PageIndex{2}B \): \( j(x) = g(x) - 2 = \sec{(x)} - 2 \)

    What we have discussed is generalized in the following theorem.

    Theorem \(\PageIndex{1}\): Vertical Shifts

    Suppose \(f\) is a function and \(D\) is a positive number.

    • The graph of \(y=f(x)+D\) is obtained from shifting the graph of \(y=f(x)\) up \(D\) units by adding \(D\) to the \(y\)-coordinates of the points on the graph of \(f\).
    • The graph of \(y=f(x)-D\) is obtained from shifting the graph of \(y=f(x)\) down \(D\) units by subtracting \(D\) from the \(y\)-coordinates of the points on the graph of \(f\).

    The key to understanding Theorem \( \PageIndex{1} \) and, indeed, all of the theorems in this section comes from an understanding of the Fundamental Graphing Principle for Functions: If \((x_1, y_1)\) is on the graph of \(f\), then \(f(x_1) = y_1\).

    Substituting \(x_1\) into the equation \(y=f(x)+D\) gives \(y=f(x_1)+D = y_1 + D\). Hence, \((x_1,y_1 + D)\) is on the graph of \(y=f(x)+D\), and we have the result. In the language of "inputs" and "outputs," Theorem \( \PageIndex{1} \) can be paraphrased as "Adding to, or subtracting from, the output of a function causes the graph to shift up or down, respectively."

    Recalling the Order of Transformations, Theorem \( \PageIndex{1} \) implies that the vertical shift is the last transformation we perform when graphing the transformation

    \[ h(x) = A f(Bx + C) + D. \nonumber \]


    Horizontal Shifts

    When working on the "outside" of a function, we are concerned with the changes in the \( y \)-values corresponding to our static \( x \)-values. That is, in the previous discussion, we determined the new \( y \)-values for both \( h(x) \) and \( j(x) \) corresponding to the original, static \( x \)-values on the graphs of \( f(x) \) and \( g(x) \), respectively. As we shall see, when working on the "inside" of a function, we are concerned with how we need to change the \( x \)-values to arrive at our static \( y \)-values. You probably have never thought of transformations this way, so we will take our time here.

    Keeping with the graph of \(y=f(x)\) in Figure \( \PageIndex{1}A \), suppose we wanted to graph \(h(x) = f(x + 2)\). In other words, we are looking to see what happens when we add \(2\) to the input of the function. We have spent a lot of time in this text showing you that \(\ f(x + 2)\) and \(\ f(x) + 2\) are, in general, wildly different algebraic animals. We will see momentarily that their geometry is also dramatically different.

    Let’s try to generate a table of values of \(h\) based on those we know for \(f\). We quickly find that we run into some difficulties.

    \[\begin{array}{|c|c|c|}
    \hline x & f(x) & h(x)=f(x+2) \\
    \hline 0 & 1 & f(0+2) = f(2) = 3 \\
    \hline 2 & 3 & f(2+2) = f(4) = 3 \\
    \hline 4 & 3 & f(4+2) = f(6) = ? \\
    \hline 5 & 5 & f(5+2) = f(7) = ? \\
    \hline \end{array} \nonumber \]

    When we substitute \(x=4\) into the formula \(h(x)=f(x+2)\), we are asked to find \(f(4+2)=f(6)\) which doesn’t exist because the domain of \(f\) is only \([0,5]\). The same thing happens when we attempt to find \(h(5)\). What we need here is a new strategy.

    We know, for instance, \(f(0) = 1\). To determine the corresponding point on the graph of \(h\), we need to figure out what value of \(x\) we must substitute into \(h(x) = f(x+2)\) so that the quantity \(x+2\), works out to be \(0\). Solving \(x+2=0\) gives \(x=-2\), and \[h(-2) = f((-2)+2) = f(0) = 1\nonumber\]so \((-2,1)\) is on the graph of \(h\). To use the fact \(f(2) = 3\), we set \(x+2 = 2\) to get \(x=0\). Substituting gives \[h(0) = f(0+2) = f(2) = 3.\nonumber\]Continuing in this fashion, we get

    \[\begin{array}{|c|c|c|}
    \hline x & x+2 & h(x)=f(x+2) \\
    \hline -2 & 0 & h(-2)=f(0) = 1 \\
    \hline 0 & 2 & h(0)=f(2) = 3 \\
    \hline 2 & 4 & h(2)=f(4) = 3 \\
    \hline 3 & 5 & h(3)=f(5) = 5 \\
    \hline \end{array} \nonumber \]

    In summary, the points \((0,1)\), \((2,3)\), \((4,3)\) and \((5,5)\) on the graph of \(y=f(x)\) give rise to the points \((-2,1)\), \((0,3)\), \((2,3)\) and \((3,5)\) on the graph of \(y=h(x)\), respectively.

    Again, leaning on the Fundamental Graphing Principle for Functions, if \((x_1, y_1)\) is on the graph of \(y=f(x)\), then \(f(x_1) = y_1\). Solving \(x + 2 = x_1\) gives \(x = x_1 - 2\) so that \(h(x_1 - 2) = f((x_1-2)+2) = f(x_1) = y_1\). As such, \((x_1-2,y_1)\) is on the graph of \(y=h(x)\). The point \((x_1-2,y_1)\) is exactly \(2\) units to the left of the point \((x_1,y_1)\) so the graph of \(y=h(x)\) is obtained by shifting the graph \(y=f(x)\) to the left \(2\) units, as shown in Figure \( \PageIndex{3}A \).

    Precalc_1_7_Fig3A.png
    Figure \( \PageIndex{3}A \): \( h(x) = f(x + 2) \)

    Note that while the ranges of \(f\) and \(h\) are the same, the domain of \(h\) is \([-2,3]\) whereas the domain of \(f\) is \([0,5]\). In general, when we shift the graph horizontally, the range will remain the same, but the domain could change.

    If we graph \(j(x) = g\left(x-\frac{\pi}{4}\right)\), we find ourselves adding \(\frac{\pi}{4}\) to all of the \(x\) values of the points on the graph of \(y=g(x)\) to effect a shift to the right \(\frac{\pi}{4}\) units. In this process, we move the vertical asymptotes to the right \( \frac{\pi}{4} \) units as well, as shown in Figure \( \PageIndex{3}B \).

    Precalc_1_7_Fig3B.png
    Figure \( \PageIndex{3}B \): \( j(x) = g\left( x - \frac{\pi}{4} \right) = \sec{\left( x - \frac{\pi}{4} \right)} \)

    Generalizing these notions produces the following result.

    Theorem \(\PageIndex{2}\): Horizontal Shifts

    Suppose \(f\) is a function and \(C\) is a positive number.

    • The graph of \(y=f(x+C)\) is obtained from shifting the graph of \(y=f(x)\) left \(C\) units by subtracting \(C\) from the \(x\)-coordinates of the points on the graph of \(f\).
    • The graph of \(y=f(x-C)\) is obtained from shifting the graph of \(y=f(x)\) right \(C\) units by adding \(C\) to the \(x\)-coordinates of the points on the graph of \(f\).

    In other words, Theorem \( \PageIndex{2} \) says that adding to or subtracting from the input to a function amounts to shifting the graph left or right, respectively.

    Caution: The Horizontal Shift is \( \pm C \) Only When \( B = 1 \)

    Theorem \( \PageIndex{2} \) states the graph of \(y=f(x \pm C)\) is obtained from shifting the graph of \(y=f(x)\) left or right \(C\) units; however, it says nothing about the graph of \( y = f(Bx \pm C) \). If the coefficient of \( x \) is something other than \( 1 \), you must factor the argument to get the function in the form

    \[ h(x) = A f \left( B \left( x + \frac{C}{B} \right) \right) + D \nonumber \]

    so that you can see the true shift on \( x \) (not on \( Bx \)). Examples \( \PageIndex{2} \) and \( \PageIndex{3} \) showcase that the true horizontal shift in these cases is \( \pm \frac{C}{B} \).

    Theorems \( \PageIndex{1} \) and \( \PageIndex{2} \) present a theme which will run common throughout the section: changes to the outputs from a function affect the \(y\)-coordinates of the graph, resulting in some kind of vertical change; changes to the inputs to a function affect the \(x\)-coordinates of the graph, resulting in some kind of horizontal change.

    Returning the the Order of Transformations, we now know that to graph

    \[ h(x) = f(x + C) + D, \nonumber \]

    we apply the horizontal shift, \( C \), and then the vertical shift, \( D \).9

    Example \( \PageIndex{1} \)
    1. Graph \(f(x) = \sqrt{x}\). Plot at least three points. State the domain and range of \( f \).
    2. Use your graph in 1 to graph \(g(x) = \sqrt{x}-1\). State the domain and range of \( g \).
    3. Use your graph in 1 to graph \(j(x) = \sqrt{x-1}\). State the domain and range of \( j \).
    4. Use your graph in 1 to graph \(m(x) = \sqrt{x+3} - 2\). State the domain and range of \( m \).
    Solution
    1. Owing to the square root, the domain of \(f\) is \(x \geq 0\), or \([0,\infty)\).

      We quickly graph \( f(x) = \sqrt{x} \) from our Intermediate Algebra prerequisite knowledgebase (choosing perfect squares to build our anchor points). From the graph (see Figure \( \PageIndex{4} \)) we verify the domain of \(f\) is \([0,\infty)\) and the range of \(f\) is also \([0, \infty)\).

      Screen Shot 2022-03-12 at 4.46.50 PM.png
      Figure \( \PageIndex{4} \)


    2. The domain of \(g\) is the same as the domain of \(f\), since the only condition on both functions is that \(x \geq 0\).

      Since there is only one transformation being performed here, we don't need to reference the Order of Transformations. If we compare the formula for \(g(x)\) with \(f(x)\), we see that \(g(x) = f(x) - 1\). In other words, we shift all \( y \)-values of \( f \) down by \( 1 \) unit. We confirm the domain of \(g\) is \([0, \infty)\) and find the range of \(g\) to be \([-1, \infty)\).

      Screen Shot 2022-03-12 at 4.50.18 PM.png


    3. Solving \(x-1 \geq 0\) gives \(x \geq 1\), so the domain of \(j\) is \([1,\infty)\).

      Again, we are only performing a single transformation so the Order of Transformations need not be referenced. To graph \(j\), we note that \(j(x) = f(x-1)\). According to Theorem \( \PageIndex{2} \), this induces a shift to the right of the graph of \(f\) by \( 1 \) unit. The graph reaffirms that the domain of \(j\) is \([1,\infty)\) and tells us that the range of \(j\) is \([0,\infty)\).

      Screen Shot 2022-03-12 at 4.55.08 PM.png


    4. To find the domain of \(m\), we solve \(x+3 \geq 0\) and get \([-3, \infty)\).

      We have arrived at an example involving more than one transformation. Applying the Order of Transformations, the addition of \( 3 \) to \( x \) shifts the graph left \( 3 \) units. Hence, we subtract \(3\) from each of the \(x\)-coordinates of the points on the graph of \(f\) and arrive at our "stop-over" graph of \( m_1(x) \).

      Screen Shot 2022-03-12 at 4.57.53 PM.png

      Applying the subtraction of \( 2 \) to the function value, we obtain the graph of \(m\) by subtracting \(2\) from the \(y\)-coordinates of each of the points on the graph of \(m_{1}(x)\). The resulting graph verifies that the domain of \(m\) is \([-3, \infty)\) and we find the range of \(m\) to be \([-2, \infty)\).

      Screen Shot 2022-03-12 at 4.59.05 PM.png

    Keep in mind that we can check our answer to any of these kinds of problems by showing that any of the points we’ve moved lie on the graph of our final answer. For example, we can check that \((-3,-2)\) is on the graph of \(m\) by computing \(m(-3) = \sqrt{(-3)+3} - 2 = \sqrt{0}-2 = -2. \checkmark\)

    Subsection Footnotes

    9 Truth be told, horizontal and vertical shifts can be applied in either order; however, I will stick with the convention listed in the Order of Transformations so as to not confuse the reader.


    Reflections

    At this point, we now know the effects of the parameters \( C \) and \( D \) on the graph of

    \[ h(x) = A f(Bx + C) + D. \nonumber \]

    In this subsection, we begin to look at the effects of the parameters of \( A \) and \( B \); however, we will only focus on their signs for the moment.

    We know from Section 1.1 that to reflect a point \((x,y)\) across the \(x\)-axis, we replace \(y\) with \(-y\). If \((x_1,y_1)\) is on the graph of \(f\), then \(y_1=f(x_1)\), so replacing \(y_1\) with \(-y_1\) is the same as replacing \(f(x_1)\) with \(-f(x_1)\). Hence, the graph of \(y=-f(x)\) is the graph of \(f\) reflected across the \(x\)-axis. Similarly, the graph of \(y=f(-x)\) is the graph of \(f\) reflected across the \(y\)-axis.

    Returning to the language of inputs and outputs, multiplying the output from a function by \(-1\) reflects its graph across the \(x\)-axis, while multiplying the input to a function by \(-1\) reflects the graph across the \(y\)-axis.

    Theorem \(\PageIndex{3}\): Reflections

    Suppose \(f\) is a function.

    • The graph of \(y=-f(x)\) is obtained from reflecting the graph of \(y=f(x)\) across the \(x\)-axis by multiplying the \(y\)-coordinates of the points on the graph of \(f\) by \(-1\).
    • The graph of \(y=f(-x)\) is obtained from reflecting the graph of \(y=f(x)\) across the \(y\)-axis by multiplying the \(x\)-coordinates of the points on the graph of \(f\) by \(-1\).

    Applying Theorem \( \PageIndex{3} \) to the graph of \(y=f(x)\) in Figure \( \PageIndex{1}A \), we can graph \(y=-f(x)\) by reflecting the graph of \(f\) about the \(x\)-axis (see Figure \( \PageIndex{5} \)).

    Precalc_1_7_Fig5A.png
    Figure \( \PageIndex{5} \): \( y = -f(x) \)

    By reflecting the graph of \(f\) across the \(y\)-axis, we obtain the graph of \(y=f(-x)\) (see Figure \( \PageIndex{6} \)).

    Precalc_1_7_Fig6.png
    Figure \( \PageIndex{6} \): \( y = f(-x) \)

    With the addition of reflections, it is now more important than ever to consider the Order of Transformations, as we shall see in the next example. Remember, given

    \[ h(x) = A f(Bx + C) + D, \nonumber \]

    we will work from the "inside-out" following the Order of Operations.

    Example \( \PageIndex{2} \)

    Let \(f(x) = \sqrt{x}\). Use the graph of \(f\) in Figure \( \PageIndex{4} \) from Example \( \PageIndex{1} \) to graph the following functions. Also, state their domains and ranges.

    1. \(g(x) = \sqrt{-x}\)
    2. \(j(x) = \sqrt{3-x}\)
    3. \(m(x) = 3 - \sqrt{x}\)
    Solution
    1. The mere sight of \(\sqrt{-x}\) usually causes alarm, if not panic. When we discussed domains in Section 1.4, we clearly banished negatives from the radicands of even roots. However, we must remember that \(x\) is a variable, and as such, the quantity \(-x\) isn’t always negative. For example, if \(x=-4\), \(-x = 4\), thus \(\sqrt{-x} = \sqrt{-(-4)} = 2\) is perfectly well-defined. To find the domain analytically, we set \(-x \geq 0\) which gives \(x \leq 0\), so that the domain of \(g\) is \((-\infty, 0]\).

      Since \(g(x) = f(-x)\), Theorem \( \PageIndex{3} \) tells us that the graph of \(g\) is the reflection of the graph of \(f\) across the \(y\)-axis. We accomplish this by multiplying each \(x\)-coordinate on the graph of \(f\) by \(-1\). Graphically, we see that the domain of \(g\) is \((-\infty, 0]\) and the range of \(g\) is the same as the range of \(f\), namely \([0,\infty)\).

      Screen Shot 2022-03-12 at 5.13.38 PM.png


    2. To determine the domain of \(j(x) = \sqrt{3-x}\), we solve \(3-x \geq 0\) and get \(x \leq 3\), or \((-\infty, 3]\).

      We have finally reached a point where Equation \( \ref{trans2} \) is critical to use. Many students will rewrite \( j(x) \) as \( j(x) = \sqrt{-x + 3} \). While this is correct, it's not enough because it does not showcase the correct horizontal shift. In the paragraph before Equation \( \ref{trans2} \), we stated that \( C \) was being added to \( Bx \) - not \( x \). This is where factoring \( B \) in the argument of the function is necessary. According to Theorem \( \PageIndex{2} \), a horizontal shift occurs when \( C \) is added to \( x \) - not \( Bx \)!

      We start the graphing process by rewriting \( j(x) \) to match the form of Equation \( \ref{trans2} \).\[ j(x) = \sqrt{3 - x} = \sqrt{-(-3 + x)} = \sqrt{-(x - 3)}. \nonumber \]Following the Order of Transformations, we first apply the transformation caused by the multiplication of \( -1 \) on \( x \). This will result in the "middleman" function, \( j_1(x) = \sqrt{-x} \). This reflects \( f \) about the \( y \)-axis.

      Precalc_1_7_Fig6a.png
      \( j_1(x) = \sqrt{-x} \)

      Our next step in the Order of Transformations is to subtract \( 3 \) from \( x \) - not \( -x \) (again, this is why we needed to factor the argument). This shifts the graph of \( j_1 \) \( 3 \) units to the right. From the graph, we confirm the domain of \(j\) is \((-\infty, 3]\) and we get that the range is \([0, \infty)\).

      Precalc_1_7_Fig6b.png
      \( j(x) = \sqrt{-(x - 3)} \)


    1. The domain of \(m\) works out to be the domain of \(f\), \([0, \infty)\).

      Rewriting \(m(x) = -\sqrt{x} + 3\), we see \(m(x) = -f(x) + 3\). Using the Order of Transformations, we perform a reflection across the \(x\)-axis.

      Screen Shot 2022-03-12 at 5.21.12 PM.png

      We then add \( 3 \) to the function values which causes a shift up by \( 3 \) units. We see from the graph that the range of \(m\) is \((-\infty, 3]\).

      Screen Shot 2022-03-12 at 5.25.07 PM.png


    Vertical Scalings

    We now turn our attention to our last class of transformations known as scalings. A thorough discussion of scalings can get complicated because they are not as straight-forward as the previous transformations. A quick review of what we’ve covered so far, namely vertical shifts, horizontal shifts and reflections, will show you why those transformations are known as rigid transformations. Simply put, they do not change the shape of the graph, only its position and orientation in the plane. If, however, we wanted to make a new graph twice as tall as a given graph, or one-third as wide, we would be changing the shape of the graph. This type of transformation is called non-rigid for obvious reasons. Not only will it be important for us to differentiate between modifying inputs versus outputs, we must also pay close attention to the magnitude of the changes we make. As you will see shortly, the Mathematics turns out to be easier than the associated grammar.

    Suppose we wish to graph the function \(h(x) =2 f(x)\) where \(f(x)\) is the function from Figure \( \PageIndex{1}A \) given at the beginning of the section. From its graph, we can build a table of values for \(h\) as before.

    \[\begin{array}{|c|c|c|}
    \hline x & f(x) & h(x)=2f(x) \\
    \hline 0 & 1 & 2 \\
    \hline 2 & 3 & 6 \\
    \hline 4 & 3 & 6 \\
    \hline 5 & 5 & 10 \\
    \hline \end{array} \nonumber \]

    In general, if \((x_1,y_1)\) is on the graph of \(f\), then \(f(x_1) = y_1\) so that \(h(x_1) = 2 f(x_1) = 2y_1\) puts \((x_1,2y_1)\) on the graph of \(h\). In other words, to obtain the graph of \(h\), we multiply all of the \(y\)-coordinates of the points on the graph of \(f\) by \(2\). Multiplying all of the \(y\)-coordinates of all of the points on the graph of \(f\) by \(2\) causes what is known as a vertical scaling (also called a vertical stretching, vertical expansion, or vertical dilation) by a factor of \(2\), and the results are shown below.

    Screen Shot 2022-03-12 at 5.29.04 PM.png

    If we wish to graph \(y = \dfrac{1}{2} g(x)\), where \( g(x) \) is from Figure \( \PageIndex{1}B \), we multiply the all of the \(y\)-coordinates of the points on the graph of \(g\) by \(\dfrac{1}{2}\). This creates a vertical compression (also called vertical shrinking or vertical contraction) by a factor of \(2\) as seen below.

    Precalc_1_7_Fig7b.png
    Figure \( \PageIndex{7} \): \( h(x) = \frac{1}{2} \sec{(x)} \)

    These results are generalized in the following theorem.

    Theorem \(\PageIndex{4}\): Vertical Scalings

    Suppose \(f\) is a function and \(a>0\). The graph of \(y=a f(x)\) is obtained from multiplying all of the \(y\)-coordinates of the points on the graph of \(f\) by \(a\). We say the graph of \(f\) has been vertically scaled by a factor of \(a\).

    • If \(a > 1\), we say the graph of \(f\) has undergone a vertical stretching (expansion, dilation) by a factor of \(a\).
    • If \(0 < a < 1\), we say the graph of \(f\) has undergone a vertical shrinking (compression, contraction) by a factor of \(\dfrac{1}{a}\).

    A few remarks about Theorem \( \PageIndex{4} \) are in order. First, a note about the verbiage. To the authors, the words "stretching," "expansion," and "dilation" all indicate something getting bigger. Hence, "stretched by a factor of \(2\)" makes sense if we are scaling something by multiplying it by \(2\).

    Similarly, we believe words like "shrinking," "compression," and "contraction" all indicate something getting smaller, so if we scale something by a factor of \(\dfrac{1}{2}\), we would say it "shrinks by a factor of \(2\)" - not "shrinks by a factor of \(\dfrac{1}{2}\)." This is why we have written the descriptions "stretching by a factor of \(a\)" and "shrinking by a factor of \(\dfrac{1}{a}\)" in the statement of the theorem.

    Second, in terms of inputs and outputs, Theorem \( \PageIndex{4} \) says multiplying the outputs from a function by positive number \(a\) causes the graph to be vertically scaled by a factor of \(a\).  It is natural to ask what would happen if we multiply the inputs of a function by a positive number. This leads us to our last transformation of the section.

    Finally, returning to the Order of Transformations, we now understand the role of \( A \) in

    \[ h(x) = A f(Bx + C) + D. \nonumber \]

    So far, when applying transformations, we do the following:

    1. Multiply \( x \) by \( B \) to get ???
    2. Add \( C \) to \( x \) to shift the graph horizontally.
    3. Multiply the function values by \( A \) to possibly reflect the graph about the \( x \)-axis, and stretch or compress the graph vertically (away from the \( x \)-axis).
    4. Add \( D \) to the function values to shift the graph vertically.

    Horizontal Scalings

    Again, referring to the graph of \(f\) in Figure \( \PageIndex{1}A \), suppose we want to graph \(h(x) = f(2x)\). In other words, we are looking to see what effect multiplying the inputs to \(f\) by \(2\) has on its graph. If we attempt to build a table directly, we quickly run into the same problem we had in our discussion leading up to Theorem \( \PageIndex{2} \), as seen in the table below.

    \[\begin{array}{|c|c|c|}
    \hline x & f(x) & h(x)=f(2 x)  \\
    \hline 0 & 1 & f(2 \cdot 0)=f(0)=1\\
    \hline 2 & 3 & f(2 \cdot 2)=f(4)=3  \\
    \hline 4 & 3 & f(2 \cdot 4)=f(8)=?  \\
    \hline 5 & 5 & f(2 \cdot 5)=f(10)=? \\
    \hline
    \end{array}\nonumber \]

    We solve this problem in the same way we solved this problem before. For example, if we want to determine the point on \(h\) which corresponds to the point \((2,3)\) on the graph of \(f\), we set \(2x =2\) so that \(x=1\). Substituting \(x=1\) into \(h(x)\), we obtain \(h(1) = f(2 \cdot 1) = f(2) = 3\), so that \((1,3)\) is on the graph of \(h\). Continuing in this fashion, we obtain the table below.

    \[ \begin{array}{|c|c|c|}
    \hline x & 2 x & h(x)=f(2 x) \\
    \hline 0 & 0 & h(0)=f(0)=1 \\
    \hline 1 & 2 & h(1)=f(2)=3  \\
    \hline 2 & 4 & h(2)=f(4)=3  \\
    \hline \dfrac{5}{2} & 5 & h\left(\dfrac{5}{2}\right)=f(5)=5  \\
    \hline
    \end{array} \nonumber \]

    In general, if \((x_1,y_1)\) is on the graph of \(f\), then \(f(x_1) = y_1\). Hence \(h\left(\dfrac{x_1}{2}\right) = f\left(2 \cdot \dfrac{x_1}{2}\right) = f(x_1) = y_1\) so that \(\left(\dfrac{x_1}{2}, y_1\right)\) is on the graph of \(h\).

    In other words, to graph \(h\) we divide the \(x\)-coordinates of the points on the graph of \(f\) by \(2\). This results in a horizontal scaling (also called horizontal shrinking, horizontal compression, or horizontal contraction) by a factor of \(\dfrac{1}{2}\).

    Screen Shot 2022-03-15 at 12.42.32 AM.png

    If, on the other hand, we wish to graph \(y = g\left( \dfrac{1}{2} x\right)\) from Figure \( \PageIndex{1}B \), we end up multiplying the \(x\)-coordinates of the points on the graph of \(g\) by \(2\) which results in a horizontal scaling (also called horizontal stretching, horizontal expansion, or horizontal dilation) by a factor of \(2\), as demonstrated below.

    Precalc_1_7_Fig8b.png
    Figure \( \PageIndex{8} \): \( h(x) = \sec{\left( \frac{1}{2} x \right)} \)

    It is instructive to note that in Figure \( \PageIndex{8} \) we have not only multiplied the \( x \)-values of our anchor points by \( 2 \), but also the values of the vertical asymptotes by \( 2 \) as well.

    We have the following theorem.

    Theorem \(\PageIndex{5}\): Horizontal Scalings

    Suppose \(f\) is a function and \(b>0\). The graph of \(y= f(bx)\) is obtained from dividing all of the \(x\)-coordinates of the points on the graph of \(f\) by \(b\). We say the graph of \(f\) has been horizontally scaled by a factor of \(\dfrac{1}{b}\).

    • If \(0 < b < 1\), we say the graph of \(f\) has undergone a horizontal stretching (expansion, dilation) by a factor of \(\dfrac{1}{b}\).
    • If \(b>1\), we say the graph of \(f\) has undergone a horizontal shrinking (compression, contraction) by a factor of \(b\).

    Theorem \( \PageIndex{5} \) tells us that if we multiply the input to a function by \(b\), the resulting graph is scaled horizontally by a factor of \(\dfrac{1}{b}\) since the \(x\)-values are divided by \(b\) to produce corresponding points on the graph of \(y = f(bx)\).

    The next example explores how vertical and horizontal scalings sometimes interact with each other and with the other transformations introduced in this section.

    Example \( \PageIndex{3} \)

    Let \(f(x)= \sqrt{x}\). Use the graph of \(f\) from Figure \( \PageIndex{4} \) in Example \( \PageIndex{1} \) to graph the following functions. Also, state their domains and ranges.

    1. \(g(x) = 3 \sqrt{x}\)
    2. \(j(x) = \sqrt{9x}\)
    3. \(m(x) =1 - \sqrt{\dfrac{x+3}{2}}\)
    Solution
    1. First we note that the domain of \(g\) is \([0, \infty)\) for the usual reason.

      Next, we have \(g(x) = 3 f(x)\). So, by Theorem \( \PageIndex{4} \), we obtain the graph of \(g\) by multiplying all of the \(y\)-coordinates of the points on the graph of \(f\) by \(3\). The result is a vertical scaling of the graph of \(f\) by a factor of \(3\). We find the range of \(g\) is also \([0, \infty)\).

      Screen Shot 2022-03-15 at 12.50.16 AM.png


    2. To determine the domain of \(j\), we solve \(9x \geq 0\) to find \(x \geq 0\). Our domain is once again \([0,\infty)\).

      We recognize \(j(x) = f(9x)\) and by Theorem \( \PageIndex{5} \), we obtain the graph of \(j\) by dividing the \(x\)-coordinates of the points on the graph of \(f\) by \(9\). From the graph, we see the range of \(j\) is also \([0,\infty)\).

      Screen Shot 2022-03-15 at 12.51.48 AM.png


    3. This is the whole enchilda. It has most of the transformations, so we have to be very meticulous with our work. As usual, let's start by finding the domain. Solving \(\dfrac{x+3}{2} \geq 0\) gives \(x \geq -3\), so the domain of \(m\) is \([-3, \infty)\).

      To take advantage of the Order of Transformations, we rewrite \[m(x) = - \sqrt{\dfrac{1}{2} x + \dfrac{3}{2}} + 1 = - \sqrt{\dfrac{1}{2} \left(x + 3\right)} + 1.\nonumber\]
      1. The coefficient of \( x \) prior to factoring is \( \frac{1}{2} \). This will cause a horizontal stretch by a factor of 2.
      2. Once we factored the \( \frac{1}{2} \) from the argument \( \dfrac{1}{2} x + \dfrac{3}{2} \), the true horizontal shift is revealed. Remember, by Theorem \( \PageIndex{2} \) the addition or subtraction of \( C \) from \( x \) represents the horizontal shift - not the addition or subtraction of \( C \) from \( Bx \). Since \( B \left( x + \frac{C}{B} \right) = \frac{1}{2} \left( x + 3 \right) \), the graph experiences a horizontal shift to the left 2 units.
      3. The coefficient of the function is negative. Hence, the graph gets reflected about the \( x \)-axis; however, there is no additional vertical scaling because \( | - 1 | = 1 \).
      4. Finally, the addition of 1 to the function values shifts the graph up 1 unit.

    Precalc_1_7_Fig9a.png   Precalc_1_7_Fig9b.png
    Left: \( f(x) = \sqrt{x} \) and Right: \( m_1(x) = \sqrt{\frac{1}{2} x} \)

    Precalc_1_7_Fig9c.png   Precalc_1_7_Fig9d.png
    Left: \( m_2(x) = \sqrt{\frac{1}{2}(x + 3)} \) and Right: \( m_3(x) = -\sqrt{\dfrac{1}{2} \left(x + 3\right)} \)

    Precalc_1_7_Fig9e.png
    \( m(x) = -\sqrt{\dfrac{1}{2} \left(x + 3\right)} + 1 \)

    Note, recalling the properties of radicals from Intermediate Algebra, we know that the functions \(g\) and \(j\) are the same, since \(j\) and \(g\) have the same domains and \(j(x) = \sqrt{9x} = \sqrt{9} \sqrt{x} = 3 \sqrt{x} = g(x)\). (We invite the reader to verify that all of the points we plotted on the graph of \(g\) lie on the graph of \(j\) and vice-versa.) Hence, for \(f(x) = \sqrt{x}\), a vertical stretch by a factor of \(3\) and a horizontal shrinking by a factor of \(9\) result in the same transformation. While this kind of phenomenon is not universal, it happens commonly enough with some of the families of functions studied in College Algebra that it is worthy of note.

    Example \( \PageIndex{4} \)

    Below is the complete graph of \(y = f(x)\). Use it to graph \(g(x) = \dfrac{4-3 f(1-2x)}{2}\).

    Screen Shot 2022-03-15 at 1.06.43 AM.png

    Solution

    We first rewrite \( g \) in the form of Equation \( \ref{trans2} \).

    \[ g(x) = -\frac{3}{2} f\left( -2\left(x - \frac{1}{2} \right)\right) + 2. \nonumber \]

    From the Order of Transformations, we have the following:

    \[ \begin{array}{|c|c|c|c|c|c|c|}
    \hline \text{Current} & \text{Transformation} & \text{Anchor Point} & \text{Anchor Point} & \text{Anchor Point} & \text{Anchor Point} & \text{Anchor Point} \\
    \text{Function} & & (-4,-3) & (-2,0) & (0,3) & (2,0) & (4,-3) \\
    \hline f(-x) & \text{reflection about the }y\text{-axis} & (4,-3) & (2,0) & (0,3) & (-2,0) & (-4,-3) \\
    \hline f(-2x) & \text{horizontal compression by a factor of }\frac{1}{2} & \left(2,-3\right) & \left(1,0\right) & \left(0,3\right) & \left(-1,0\right) & \left(-2,-3\right) \\
    \hline f(-2\left(x - \frac{1}{2}\right)) & \text{horizontal shift right by }\frac{1}{2}\text{ unit} & \left(\frac{5}{2},-3\right) & \left(\frac{3}{2},0\right) & \left(\frac{1}{2},3\right) & \left(-\frac{1}{2},0\right) & \left(-\frac{3}{2},-3\right) \\
    \hline -f(-2\left(x - \frac{1}{2}\right)) & \text{reflection about }x\text{-axis} & \left(\frac{5}{2},3\right) & \left(\frac{3}{2},0\right) & \left(\frac{1}{2},-3\right) & \left(-\frac{1}{2},0\right) & \left(-\frac{3}{2},3\right) \\
    \hline -\frac{3}{2}f(-2\left(x - \frac{1}{2}\right)) & \text{vertical stretch by a factor of }\frac{3}{2} & \left(\frac{5}{2},\frac{9}{2}\right) & \left(\frac{3}{2},0\right) & \left(\frac{1}{2},-\frac{9}{2}\right) & \left(-\frac{1}{2},0\right) & \left(-\frac{3}{2},\frac{9}{2}\right) \\
    \hline -\frac{3}{2}f(-2\left(x - \frac{1}{2}\right)) + 2 & \text{vertical shift up by }2\text{ units} & \left(\frac{5}{2},\frac{13}{2}\right) & \left(\frac{3}{2},2\right) & \left(\frac{1}{2},-\frac{5}{2}\right) & \left(-\frac{1}{2},2\right) & \left(-\frac{3}{2},\frac{13}{2}\right) \\
    \hline \end{array} \nonumber \]

    To graph \(g\), we plot each of the points in the table above and connect them in the same order and fashion as the points to which they correspond. Plotting \(f\) and \(g\) side-by-side gives

    Screen Shot 2022-03-15 at 1.08.25 AM.png

    The reader is strongly encouraged to graph the series of functions which shows the gradual transformation of the graph of \(f\) into the graph of \(g\). We have outlined the sequence of transformations in the above exposition; all that remains is to plot the five intermediate stages.


    The Order of Transformations

    We finish this section with the cleaned-up version of the Order of Transformations.

    Theorem \(\PageIndex{7}\): Order of Transformations

    Let \( h(x) \) be a function that can be written as\[ h(x) = A f(Bx + C) + D = A f\left(B \left( x + \frac{C}{B} \right)  \right) + D, \nonumber \]for constants \( A \), \( B \), \( C \), and \( D \), where \( A \neq 0 \) and \( B \neq 0 \). The graph of \( h \) can be obtained from the graph of \( f \) as follows: 

    1. Start with the base graph, \( f(x) \).
      1. If \( B \lt 0 \), horizontally reflect the graph about the \( y \)-axis.
      2. If \( 0 \lt |B| \lt 1 \), horizontally stretch the graph by a factor of \( \frac{1}{B} \). Otherwise, if \( |B| \gt 1 \), horizontally compress the graph by a factor of \( B \).
    2. Horizontally shift the graph \(\frac{C}{B}\) units to the left (if \(\frac{C}{B} \gt 0\)) or right (if \(\frac{C}{B} \lt 0\)).
    3.  
      1. If \( A \lt 0 \), vertically reflect the graph about the \( x \)-axis.
      2. If \( |A| \gt 1 \), vertically stretch the graph by a factor of \( A \). Otherwise, if \( 0 \lt |A| \lt 1 \), vertically compress the graph by a factor of \( \frac{1}{A} \).
    4. Vertically shift the graph \( D \) units up (if \( D \gt 0 \)) or down (if \( D \lt 0 \)).

    This page titled 1.7: Transformations is shared under a CC BY-NC-SA 3.0 license and was authored, remixed, and/or curated by Roy Simpson.