#Description
# Tests the ability to recognize the graphs created by
# translation and stretching transformations.
#EndDescription

DOCUMENT();        # This should be the first executable line in the problem.

loadMacros("PG.pl",
           "PGbasicmacros.pl",
           "PGchoicemacros.pl",
           "PGanswermacros.pl",
           "PGgraphmacros.pl",
           "numericalmethods.pl"
           );
 
TEXT(beginproblem());
$showPartialCorrectAnswers = 0;



# allow the student to change the seed for this problem.
$newProblemSeed = ( defined( ${$inputs_ref}{'newProblemSeed'} ) )?  ${$inputs_ref}{'newProblemSeed'} : $problemSeed;
$PG_random_generator->srand($newProblemSeed);

@questStr = (
"\( F(x+3)\) ",
"\(F(x-3) \)" ,
"\( -F(-x)\) ",
"\( F(-x) \)", 
"\( 5F(x) \)", 
"\( F(3x) \)" ,
"\( F(x/3) \)",
"\( F(x^2) \)",
);

# create a graph to hold a function
### A tutorial on creating graphs in WeBWorK problems
$graph = init_graph(-5,-5,5,5,'axes'=>[0,0],'grid'=>[8,8]);
# create a function to graph: cos(x)exp(x^2)  -- using  an anonymous subroutine
$fun_rule = sub { my $x = shift;      # take the first input and put in an a local variable x
                  my $sqx = $x*$x;
                  cos($x)+.1*exp((.5*$sqx)); # calculate the output value and return it.
                  };
# Create  a string which describes the function
$a = random(1,5,1);
	# the subroutine FEQ (Format EQuation) cleans up the expression after substitution of constants occurs.
	# If $a were -1 for example, then
	# cos(x) + -1*exp(x) would be replaced by cos(x) -1*exp(x)
$string1 = FEQ(  qq! cos($a*x) + .1*exp(x)  for x  in [-1,4) using color:red and weight:3!);

# Create the function from this string and store it in the graph.
my($f1 )= plot_functions($graph,
                          $string1);

# make sure that the browser will fetch the new picture when it is created by changing the name of the
# graph each time the problem seed is changed.
$graph->gifName($graph->gifName()."-$newProblemSeed"); 

# Insert the graph and the text. 

BEGIN_TEXT

To see a different version of the problem change
the problem seed and press the 'Submit Answer' button below.$PAR Problem Seed:
\{  M3(
qq! Change the problem seed to change the problem:$problemSeed!,
qq! Change the problem seed to change the problem:
    \begin{rawhtml}
    
    \end{rawhtml}!,
qq! !
)
\}
$PAR
 This graph was created 'on the fly'.  This function was created from the expression 
 $PAR
 $string1
 $PAR
Click on the graph to see an enlarged image.
$PAR
\{ image(insertGraph($graph) ) \}

$PAR
You can view the \{ htmlLink(alias("prob3.html"),"source", q!TARGET="source"!)\} for this problem.
or consult the \{ htmlLink("/webwork_system_html/docs/techdescription/pglanguage/index.html","documentation") \}  for  more details on the PG language.

END_TEXT
ANS(str_cmp(  @ALPHABET[   &invert(@shuffle)   ]     ) ) ;

ENDDOCUMENT();        # This should be the last executable line in the problem.