[system] / trunk / pg / macros Repository: Repository Listing bbplugincoursesdistsnplrochestersystemwww

# Log of /trunk/pg/macros

 Sticky Revision:

Revision 6011 - Directory Listing
Modified Thu Feb 19 03:17:38 2009 UTC (10 years, 9 months ago) by gage
Corrected premature commit which contained a code hack for the macbook.


Revision 6010 - Directory Listing
Modified Thu Feb 19 03:05:14 2009 UTC (10 years, 9 months ago) by gage
Minor cosmetic change


Revision 6005 - Directory Listing
Modified Wed Feb 11 23:06:43 2009 UTC (10 years, 9 months ago) by dpvc
Prevent extra dots from appearing in image names for TeX mode


Revision 5997 - Directory Listing
Modified Sat Feb 7 23:08:34 2009 UTC (10 years, 10 months ago) by gage
More code to check that the javaScript file is availabe.


Revision 5996 - Directory Listing
Modified Sat Feb 7 22:55:29 2009 UTC (10 years, 10 months ago) by gage
 Fixed typo


Revision 5995 - Directory Listing
Modified Sat Feb 7 22:53:18 2009 UTC (10 years, 10 months ago) by gage
print warning if the javaScript file is not available.


Revision 5993 - Directory Listing
Modified Sat Feb 7 22:27:29 2009 UTC (10 years, 10 months ago) by gage
Reworked applet support code to use more object oriented approach.


Revision 5991 - Directory Listing
Modified Thu Feb 5 14:59:02 2009 UTC (10 years, 10 months ago) by dpvc
Changed wording of a warning message


Revision 5988 - Directory Listing
Modified Thu Feb 5 14:53:57 2009 UTC (10 years, 10 months ago) by dpvc
Fix inheritance so that text_values and test_adapt are preserved when
transferring to the stored copy of the adapted function.  (These are
needed for the diagnostics output.)  Use new Parser::Eval to avoid
ugliness in trying to trap errors in comparisons.


Revision 5976 - Directory Listing
Modified Mon Jan 19 18:50:45 2009 UTC (10 years, 10 months ago) by dpvc
Fixed some typos in the comments.


Revision 5975 - Directory Listing
Modified Mon Jan 19 13:56:09 2009 UTC (10 years, 10 months ago) by dpvc
Fixed incorrect use of => when -> was intended.


Revision 5972 - Directory Listing
Modified Sat Jan 17 15:06:06 2009 UTC (10 years, 10 months ago) by dpvc
Avoid ambiguity with CORE::abs() versus overloaded abs().


Revision 5971 - Directory Listing
Modified Sat Jan 17 03:25:31 2009 UTC (10 years, 10 months ago) by gage
Fixed comment


Revision 5970 - Directory Listing
Modified Sat Jan 17 03:24:09 2009 UTC (10 years, 10 months ago) by gage
Fixed error in hint() associated with always showing the instructor that
a hint exists.


Revision 5969 - Directory Listing
Modified Thu Jan 15 22:56:18 2009 UTC (10 years, 10 months ago) by dpvc
Typo that prevented the context name from being set properly.


Revision 5968 - Directory Listing
Modified Thu Jan 15 13:11:23 2009 UTC (10 years, 10 months ago) by dpvc
Fixed a typo in an error message.


Revision 5967 - Directory Listing
Modified Thu Jan 15 12:50:31 2009 UTC (10 years, 10 months ago) by dpvc
Make Ordering() break a string at > and = rather than assume the
variable names are single letters.


Revision 5965 - Directory Listing
Modified Wed Jan 14 03:57:50 2009 UTC (10 years, 10 months ago) by dpvc
This file implements a Fraction object for the MathObjects library.
See the comments in the file for details about how they work and how
to control the various options.


Revision 5964 - Directory Listing
Modified Tue Jan 13 01:38:03 2009 UTC (10 years, 10 months ago) by dpvc
Simplify mechanism of maintaining the letters used in an ordering.
No need for the ugly hack to get around reducing to Value objects;
just leave the letters attached to the Value object rather than
deleting them.


Revision 5963 - Directory Listing
Modified Mon Jan 12 17:22:55 2009 UTC (10 years, 10 months ago) by dpvc
Added a message for when the student answer does not include all the
letters used in the correct answer.


Revision 5962 - Directory Listing
Modified Mon Jan 12 15:13:40 2009 UTC (10 years, 10 months ago) by dpvc
Produce error messages if a letter is used more than once in an ordering.


Revision 5960 - Directory Listing
Modified Sun Jan 11 15:04:36 2009 UTC (10 years, 10 months ago) by dpvc
Use the Package() method to create the ordering object, so that
ordering objects can be properly subclassed.


Revision 5959 - Directory Listing
Modified Sat Jan 10 19:36:51 2009 UTC (10 years, 10 months ago) by dpvc
New Context for handling ordered lists of letters like "D > A = C > B".


Revision 5952 - Directory Listing
Modified Tue Dec 30 14:05:30 2008 UTC (10 years, 11 months ago) by dpvc
Combined TeX and string into a common routine since the two were
nearly identical.


Revision 5951 - Directory Listing
Modified Tue Dec 30 08:18:24 2008 UTC (10 years, 11 months ago) by dpvc
Inequalities that are evaluated and turned into intervals now properly
retain the order of operands (x > 10 remains x > 10 rather than
becoming 10 < x).

Unions of the form "x < a or x > a" will be displayed as "x != a" instead,
and "a < x < b or b < x < c" will be shown as "a < x < c and x != b"
instead.  This behavior is controlled by the showNotEquals context
flag.  Setting it to zero prevents conversion of unions to their
not-equal forms.


Revision 5950 - Directory Listing
Modified Tue Dec 30 08:13:45 2008 UTC (10 years, 11 months ago) by dpvc
Added a final_period=>1 flag for PiecewiseFunction objects so that the
final condition will include a period (so that you can put a piecewise
function as the last thing in a sentence).


Revision 5947 - Directory Listing
Modified Mon Dec 22 05:18:26 2008 UTC (10 years, 11 months ago) by dpvc
Added code to save/restore the images_created counts so that
on-the-fly graphics in more than one part will work properly.
Old data format is updated automatically to the new one, so problems
should continue to work even if they are already in use by students.


Revision 5930 - Directory Listing
Modified Tue Oct 7 23:14:10 2008 UTC (11 years, 2 months ago) by dpvc
Use a compiled vesion of the MathObjects formula rather than the
less-efficient eval method.  This should bring graphing speeds back in
line with the original non-MathObject version.


Revision 5924 - Directory Listing
Modified Thu Oct 2 10:50:02 2008 UTC (11 years, 2 months ago) by dpvc
avoid side-effect of loading String context that sets the string
context to being the current context.  (This fixes bug 1520)


Revision 5917 - Directory Listing
Modified Sun Sep 21 18:06:19 2008 UTC (11 years, 2 months ago) by dpvc
Protect against errors in student formula in the postfilter when
looking to determine the error message to give about the student

Use cmp_compare to do equality checks between objects (rather than the
hack that uses PG_restricted_eval).

Handle MathObjects in the test_points and test_at list better.


Revision 5915 - Directory Listing
Modified Thu Sep 18 19:25:24 2008 UTC (11 years, 2 months ago) by dpvc
Fix problem with using value method on an undefined value when the
point returned by the graphed funciton is undefined.


Revision 5914 - Directory Listing
Modified Tue Sep 16 03:23:54 2008 UTC (11 years, 2 months ago) by dpvc
Allow graphs of single-variable functions in diagnostics.


Revision 5913 - Directory Listing
Modified Tue Sep 16 03:01:17 2008 UTC (11 years, 2 months ago) by dpvc
Allow diagnostics to show the adapted function's values.


Revision 5912 - Directory Listing
Modified Mon Sep 15 15:35:34 2008 UTC (11 years, 2 months ago) by dpvc
Fixed problem with inerhiting test points into the adapted formula
used for the comparison.  In its context, the arbitrary constant is an
extra variable, and so extra coordinates have to be added to the test
points.  This is now handled properly.

(It may be a good idea to make $f->removeConstant revert to the original context of the formula rather than the modified one that includes its constants, rather than having to adjust the test points in that case.)  Revision 5907 - Directory Listing Modified Fri Sep 12 21:53:52 2008 UTC (11 years, 2 months ago) by dpvc Make sure flags set on the FormulaUpToConstant object are inherited by the formulas used internally during the checking for equality.  Revision 5905 - Directory Listing Modified Fri Sep 12 21:31:43 2008 UTC (11 years, 2 months ago) by dpvc Trap errors when comparing to student answer while trying to determine the correct error message. This prevents extraneous warnings that would confuse the student (and instructor).  Revision 5903 - Directory Listing Modified Fri Sep 12 15:21:34 2008 UTC (11 years, 2 months ago) by gage Make sure$attempts is properly defined


Revision 5901 - Directory Listing
Modified Fri Sep 12 14:28:59 2008 UTC (11 years, 2 months ago) by gage
have  hint always print hints for instructorsCVS: ----------------------------------------------------------------------


Revision 5897 - Directory Listing
Modified Thu Sep 11 17:26:57 2008 UTC (11 years, 2 months ago) by dpvc
BACKPORT: Fixed a problem where if two FormulaUpToConstant objects were used in
the same problem, the second would always be marked as incorrect.
(Subtle interplay of variable names in the safe compartment.)


Revision 5896 - Directory Listing
Modified Thu Sep 11 17:26:18 2008 UTC (11 years, 2 months ago) by dpvc
Fixed a problem where if two FormulaUpToConstant objects were used in
the same problem, the second would always be marked as incorrect.
(Subtle interplay of variable names in the safe compartment.)


Revision 5892 - Directory Listing
Modified Thu Sep 4 21:59:03 2008 UTC (11 years, 3 months ago) by dpvc
Demote Real() results of Formula() evaluation back to Perl reals.


Revision 5867 - Directory Listing
Modified Mon Aug 11 14:02:34 2008 UTC (11 years, 3 months ago) by dpvc
Fixed typos in comments.


Revision 5858 - Directory Listing
Modified Wed Jul 30 14:39:00 2008 UTC (11 years, 4 months ago) by apizer
Port rel-2-4-patches changes to Head


Revision 5847 - Directory Listing
Modified Mon Jul 14 15:43:06 2008 UTC (11 years, 4 months ago) by dpvc
Fixed documentation typos.


Revision 5843 - Directory Listing
Modified Tue Jul 8 15:13:18 2008 UTC (11 years, 5 months ago) by gage
forward port of bug fix in rel-2-4-5


Revision 5833 - Directory Listing
Modified Mon Jun 30 21:19:21 2008 UTC (11 years, 5 months ago) by dpvc
Fixed typo


Revision 5817 - Directory Listing
Modified Fri Jun 27 01:22:13 2008 UTC (11 years, 5 months ago) by gage
Moved to modelCourse/templates/setOrientation


Revision 5816 - Directory Listing
Modified Fri Jun 27 00:55:09 2008 UTC (11 years, 5 months ago) by gage
forward port file path printing from rel-2-4-5


Revision 5797 - Directory Listing
Modified Thu Jun 26 17:18:30 2008 UTC (11 years, 5 months ago) by gage
forward port of rel-2-4-5


Revision 5792 - Directory Listing
Modified Thu Jun 26 14:53:59 2008 UTC (11 years, 5 months ago) by gage
Forward ports from rel-2-4-5


Revision 5789 - Directory Listing
Modified Wed Jun 25 20:06:48 2008 UTC (11 years, 5 months ago) by gage
remove attempt to set formatting with $# causes bad warnings in perl 5.10.x forward port from rel-2-4-patches  Revision 5753 - Directory Listing Modified Tue Jun 24 21:30:38 2008 UTC (11 years, 5 months ago) by gage formatting changes  Revision 5707 - Directory Listing Modified Fri Jun 20 14:40:35 2008 UTC (11 years, 5 months ago) by gage An experimental collection of macros designed as a first attempt to make writing sequential problems easier (Davide Cervone principal author) The rules for using these macros may well change as we gain experience writing sequential problems. (See also PGsequentialmacros.pl for some additional, lower level tools.)  Revision 5700 - Directory Listing Modified Sun Jun 15 12:24:08 2008 UTC (11 years, 5 months ago) by dpvc Added ability to assign to function names, like f(x)=x+1.  Revision 5699 - Directory Listing Modified Sun Jun 15 03:54:01 2008 UTC (11 years, 5 months ago) by dpvc Implements an assignment operator that can be used to force the student to include the "y=" part of "y = 3x + 1" rather than having to include the "y=" as part of the text of the problem. You can also request lists of assignments, e.g., x = 1, x = -1, and the type of object assigned can be any MathObject (e.g., vector, complex, infinity, interval, whatever).  Revision 5694 - Directory Listing Modified Sat Jun 14 11:53:42 2008 UTC (11 years, 5 months ago) by dpvc Use \verb rather than \text, since it will show more characters properly, and will handle missmatched braces in student answers.  Revision 5693 - Directory Listing Modified Sat Jun 14 11:52:26 2008 UTC (11 years, 5 months ago) by dpvc Better check for constant formula.  Revision 5688 - Directory Listing Modified Wed Jun 11 13:22:54 2008 UTC (11 years, 5 months ago) by gage Corrected documentation for the ?{4.56:%0.2f} and !{4.5645:%0.2f} constructions -- their behavior had been reversed. Indicated that the !{ } construction is deprecated since it behave just like {4.5645:%0.2f}  Revision 5684 - Directory Listing Modified Sat May 24 23:05:02 2008 UTC (11 years, 6 months ago) by dpvc Moved previous_equivalence_message filter to Formula object directly, so it is no longer needed in the FUNCTION_CMP macro itself.  Revision 5677 - Directory Listing Modified Thu May 22 19:17:10 2008 UTC (11 years, 6 months ago) by gage minor changes to help with debugging  Revision 5673 - Directory Listing Modified Sat May 17 13:55:57 2008 UTC (11 years, 6 months ago) by dpvc Added error trapping so that large adaptive parameters will not cause errors. These situations are silently reported as incorrect (though potentially they COULD be correct, but that it unlikely).  Revision 5672 - Directory Listing Modified Mon May 12 20:49:49 2008 UTC (11 years, 6 months ago) by sh002i added the ability to specify an order for the choices or push some choices to the top or bottom.  Revision 5671 - Directory Listing Modified Mon May 12 20:41:21 2008 UTC (11 years, 6 months ago) by sh002i typo in symbol map metadata  Revision 5667 - Directory Listing Modified Mon May 12 00:50:24 2008 UTC (11 years, 6 months ago) by gage Uploading changes in the AppletObjects.pl and Applet.pm modules.  Revision 5663 - Directory Listing Modified Thu May 8 00:37:31 2008 UTC (11 years, 7 months ago) by sh002i add "my" and "our" specifiers to ^variable definitions. (This breaks compatibility with the current version of ww-symbol-map, but it is the format that the upcoming version will use. I hope to commit that new version soon but testing is taking longer than expected.)  Revision 5662 - Directory Listing Modified Mon May 5 17:24:46 2008 UTC (11 years, 7 months ago) by gage fix method of setting debug  Revision 5660 - Directory Listing Modified Mon May 5 16:43:29 2008 UTC (11 years, 7 months ago) by gage Latest reworking of the Applets.pm and AppletObjects.pl files Debugging and error reporting should be better now.  Revision 5659 - Directory Listing Modified Mon May 5 16:42:17 2008 UTC (11 years, 7 months ago) by gage speeling typo :-)  Revision 5658 - Directory Listing Modified Sat May 3 17:43:29 2008 UTC (11 years, 7 months ago) by sh002i markup for ww-symbol-map  Revision 5643 - Directory Listing Modified Sat Apr 26 23:07:02 2008 UTC (11 years, 7 months ago) by gage Moved placement of loadMacros(subfiles) to inside the _PGanswermacros_init() subroutine. Even though the subfiles do not have to be recompiled they do have to be reinitialized every time they are used and calling loadMacros() is the appropriate way to insure this. loadMacros() is smart about recompiling only if necessary.  Revision 5642 - Directory Listing Modified Sat Apr 26 21:19:14 2008 UTC (11 years, 7 months ago) by gage add reinitialize applet button to the standard installation to complement reset state button. CVS: ----------------------------------------------------------------------  Revision 5641 - Directory Listing Modified Sat Apr 26 21:14:05 2008 UTC (11 years, 7 months ago) by gage Fixed bug that would cause problem with checking previous answers if there was not answer label provided to the answer evaluator.  Revision 5640 - Directory Listing Modified Sat Apr 26 21:13:23 2008 UTC (11 years, 7 months ago) by gage Modifications to pass answer label for previous answer. This still does not provide correct functionality because the previous answer is an equation of the form lhs = rhs while the form being passed to fun_cmp is lhs - rhs  Revision 5635 - Directory Listing Modified Tue Apr 22 02:02:30 2008 UTC (11 years, 7 months ago) by gage Fixed an error in formatting comment  Revision 5633 - Directory Listing Modified Mon Apr 14 23:29:53 2008 UTC (11 years, 7 months ago) by sh002i documentation improvements  Revision 5626 - Directory Listing Modified Wed Mar 26 02:43:07 2008 UTC (11 years, 8 months ago) by gage Fixed bug in base64Q subroutine  Revision 5623 - Directory Listing Modified Tue Mar 25 22:00:23 2008 UTC (11 years, 8 months ago) by gage corrected typos in setState macros.  Revision 5618 - Directory Listing Modified Sun Mar 16 14:39:14 2008 UTC (11 years, 8 months ago) by gage New version of Applet.pm and AppletObjects.pl that supports both flash new FlashApplet(); and java applets new JavaApplet(); see pod docs in those two files for more details.  Revision 5608 - Directory Listing Modified Mon Feb 4 21:40:58 2008 UTC (11 years, 10 months ago) by dpvc Fixed problem with variable patterns for variable names that are more than one character long.  Revision 5606 - Directory Listing Modified Sat Jan 26 01:40:32 2008 UTC (11 years, 10 months ago) by dpvc Added trimTrailingZeros flag to allow values to print as$50 rather
than $50.00  Revision 5601 - Directory Listing Modified Wed Jan 16 22:56:24 2008 UTC (11 years, 10 months ago) by dpvc Make sure Currency() actually returns a Currency object (it used to return a Real if one was passed to it).  Revision 5597 - Directory Listing Modified Thu Jan 3 15:17:40 2008 UTC (11 years, 11 months ago) by gage Fixed bug. Pass variables in$foo = FlashApplet(...)   to the actual applet creator


Revision 5593 - Directory Listing
Modified Mon Dec 3 22:32:01 2007 UTC (12 years ago) by gage
Corrected spelling in pod documents.


Revision 5587 - Directory Listing
Modified Thu Nov 15 12:29:06 2007 UTC (12 years ago) by dpvc
Produce error messages when the student enters something like x=1 or x=1.


Revision 5586 - Directory Listing
Modified Sat Nov 10 21:48:22 2007 UTC (12 years ago) by gage
Corrected typo in string answer evaluators (affecting blank answers mainly)

Removed FIXME note from PGnumericevaluators.pl


Revision 5585 - Directory Listing
Modified Sat Nov 10 20:55:23 2007 UTC (12 years ago) by gage
Made changes in the way the default values for answer evaluators are set.
(They were frequently undefined.)

We now get them from the envir variable which seems to work.  For example:

$functAbsTolDefault = PG_restricted_eval(q/$envir{functAbsTolDefault}/);


Revision 5584 - Directory Listing
Modified Thu Nov 8 00:00:15 2007 UTC (12 years, 1 month ago) by sh002i
Split answer evaluators into several new files, based on the type of
the rest of the functions in PGanswermacros.pl still need docs. This
still needs to be tested a bunch before it's ready for prime time.


Revision 5582 - Directory Listing
Modified Tue Nov 6 16:45:28 2007 UTC (12 years, 1 month ago) by gage
Provides front end for Applet.pm.

to the top of your PG problem file.

$applet = FlashApplet(); gets you started. There is reasonable POD documentation in this file including a working problem for the ExternalInterface.swf flash object. -- Mike  Revision 5580 - Directory Listing Modified Tue Nov 6 16:19:49 2007 UTC (12 years, 1 month ago) by dpvc Don't reduce -ax+b to b-ax in polynomial contexts.  Revision 5579 - Directory Listing Modified Tue Nov 6 15:49:03 2007 UTC (12 years, 1 month ago) by dpvc Fixed a problem introduced in the previous version where an error is reported about undefined values used in addition.  Revision 5576 - Directory Listing Modified Wed Oct 31 01:40:01 2007 UTC (12 years, 1 month ago) by dpvc Make numbers be considered coefficients of x^0 in singlePowers mode, not just LimitedPolynomial-Strict context. For LimitedPolynomials with singlePowers set to 1, you can still do addition in the constant term by using parentheses, e.g. 4x^2 + (3+4).  Revision 5575 - Directory Listing Modified Wed Oct 31 01:34:11 2007 UTC (12 years, 1 month ago) by dpvc Fix LimitedPolynomial-Strict to check for singlePowers (there was a typo) and to consider constants to be coefficients of x^0. Give better error messages in some cases.  Revision 5573 - Directory Listing Modified Mon Oct 29 02:33:27 2007 UTC (12 years, 1 month ago) by gage Modifications PGgraphicsmacros.pl suggested by Davide Cervone. 1. Don't load MathObjects (since this causes conflicts if the webwork question also uses Matrices as well as GraphObjects). (This incompatibility is itself a bug, but not one we can solve immediately.) 2. Make sure that the variable is defined by defining the new rule in a local context and insuring that the variable is defined. (Unfortunately we don't have the original Formula, just the normalString created by the Formula so we won't be able to guarantee the same context that created the original Formula. However we can get the current context and add the independent variable if it is missing.) 3. Evaluate using Parser::Evaluate so that the errors are trapped if the input is not in the domain of definition of the function. ------- A reasonable next step would be to define plot_formula with syntax something like plot_formula($formula, domain=>[0,10],color=>'red',weight=>2)
which could take further advantage of the MathObjects paradigm, but we'll probably
have to find a more robust solution to the Matrix confusion at the same time.

--Mike


Revision 5570 - Directory Listing
Modified Sun Oct 28 16:33:36 2007 UTC (12 years, 1 month ago) by gage
Added explicit  loadMacros("MathObject.pl")  to
handle webwork questions which don't use math objects
for any other purpose other than graphs.

CVS: ----------------------------------------------------------------------


Revision 5569 - Directory Listing
Modified Sat Oct 27 14:13:31 2007 UTC (12 years, 1 month ago) by gage
Changed plot_functions so that it uses the Formula MathObject to parse the
the function in

$f1 = qq! x^2 - 3*x + 45 for x in [0, 45) using color:red and weight:2! instead of using the built in perl parser. This allows things such as$formula=Formula("|x|");

$f1 = qq!$formula  for x in [0, 45) using color:red and weight:2!

to be evaluated. There should be no apparent change to old problems
since the Formula MathObject parser handles a superset of the builtin perl parser syntax.

This is not yet the most efficient method to have GraphObjects and
Formula's interact since the same string is being recompiled several times,
but it is a useful hack which preserves backward compatibility.


Revision 5568 - Directory Listing
Modified Thu Oct 25 17:11:59 2007 UTC (12 years, 1 month ago) by sh002i
new/improved documentation


Revision 5566 - Directory Listing
Modified Sun Oct 21 12:12:55 2007 UTC (12 years, 1 month ago) by dpvc
Fixed problem with ordered=>"strict" in number_list_cmp()


Revision 5558 - Directory Listing
Modified Thu Oct 4 16:57:34 2007 UTC (12 years, 2 months ago) by sh002i
typo


Revision 5557 - Directory Listing
Modified Thu Oct 4 16:41:07 2007 UTC (12 years, 2 months ago) by sh002i
documentation cleanup


Revision 5556 - Directory Listing
Modified Thu Oct 4 16:40:49 2007 UTC (12 years, 2 months ago) by sh002i
added standard copyright/license header


Revision 5555 - Directory Listing
Modified Wed Oct 3 19:47:42 2007 UTC (12 years, 2 months ago) by sh002i
fixed indentation of verbatim paragraphs: now using hard tabs
exclusively. the downside of this is that these get rendered as
eight-column tabs.


Revision 5554 - Directory Listing
Modified Wed Oct 3 19:30:31 2007 UTC (12 years, 2 months ago) by sh002i
fixed some POD errors, indentation


Revision 5553 - Directory Listing
Modified Wed Oct 3 18:47:43 2007 UTC (12 years, 2 months ago) by sh002i
reformatted documentation for the rest of the MathObjects-related macros


Revision 5552 - Directory Listing
Modified Tue Oct 2 22:57:33 2007 UTC (12 years, 2 months ago) by sh002i
changed name message


Revision 5551 - Directory Listing
Modified Tue Oct 2 20:48:05 2007 UTC (12 years, 2 months ago) by sh002i
improved formatting for docs -- these were in pod sections but were all
formatted as verbatim sections, and i moved them into normal paragraphs,
lists, etc. should make things more readable from the web.


Revision 5545 - Directory Listing
Modified Sun Sep 30 11:18:39 2007 UTC (12 years, 2 months ago) by dpvc
Don't use dollar signs in the TeX output, since BEGIN_TEXT/END_TEX
does command substitution then variable substitution then math, so
\{$f->TeX\} would insert dollars, which would then be substituted as variables.  Revision 5543 - Directory Listing Modified Fri Sep 28 23:58:02 2007 UTC (12 years, 2 months ago) by dpvc Allow inequalities to include infinity and -infinity (so you can enter -inf < x < inf to get all reals).  Revision 5541 - Directory Listing Modified Fri Sep 28 23:24:52 2007 UTC (12 years, 2 months ago) by dpvc Fixed a problem where the context was not properly maintained when intervals are combined.  Revision 5518 - Directory Listing Modified Thu Sep 20 22:47:01 2007 UTC (12 years, 2 months ago) by dpvc Adds a new context that is more limited by not allowing operations within the coefficients and exponents themselves. Access this context using Context("LimitedPolynomial-Strict");  Revision 5515 - Directory Listing Modified Wed Sep 19 12:11:39 2007 UTC (12 years, 2 months ago) by dpvc One last change to make hardcopy work properly.  Revision 5514 - Directory Listing Modified Wed Sep 19 12:06:09 2007 UTC (12 years, 2 months ago) by dpvc Make sure comma's are represented correctly in TeX mode. (They need to be enclosed in braces to get the spacing right.)  Revision 5513 - Directory Listing Modified Wed Sep 19 12:01:56 2007 UTC (12 years, 2 months ago) by dpvc This was accidentally removed in the last update. OOPS!  Revision 5512 - Directory Listing Modified Wed Sep 19 11:58:05 2007 UTC (12 years, 2 months ago) by dpvc Handle TeX special characters better when used as the currency symbol. (Quote them when displayMode is TeX.)  Revision 5484 - Directory Listing Modified Mon Sep 10 23:21:24 2007 UTC (12 years, 2 months ago) by dpvc Don't factor negatives out of multiple terms at once.  Revision 5470 - Directory Listing Modified Sat Sep 8 21:44:43 2007 UTC (12 years, 3 months ago) by dpvc No longer need to change the order of the data, since Value::Interval->make() now handles the alternative order.  Revision 5463 - Directory Listing Modified Thu Sep 6 10:47:02 2007 UTC (12 years, 3 months ago) by dpvc Fixed check to use a variable that is known to be in the context (rather than incorrectly assuming 'x' is there).  Revision 5461 - Directory Listing Modified Thu Sep 6 00:19:23 2007 UTC (12 years, 3 months ago) by dpvc Make error messages more consistent when student's answer is off by a constant.  Revision 5460 - Directory Listing Modified Wed Sep 5 23:56:19 2007 UTC (12 years, 3 months ago) by dpvc In making the checker work with +C, I forgot to add the parameter that provides for the student's answer to be off by a constant. (Since the C is actually a variable, not a parameter.) OOPS!  Revision 5458 - Directory Listing Modified Fri Aug 31 13:41:16 2007 UTC (12 years, 3 months ago) by dpvc Add the PGcourse.pl file, since we are encouraging authors to include this in theie loadMacros() calls.  Revision 5457 - Directory Listing Modified Fri Aug 31 13:40:27 2007 UTC (12 years, 3 months ago) by dpvc Fixed POD documentation formatting.  Revision 5446 - Directory Listing Modified Wed Aug 29 02:06:01 2007 UTC (12 years, 3 months ago) by dpvc Fix substitute() so that if the variable is being substituted for a constant, only the branch that contains that value is returned. If it is substituted by another variable, the variables for the inequalities will also be changed. (Otherwise the variable is replaced only in the functions; not perfect, but the best that I could come up with.)  Revision 5445 - Directory Listing Modified Wed Aug 29 02:01:24 2007 UTC (12 years, 3 months ago) by dpvc Check that "and" and "or" combine inequalities that use the same variable.  Revision 5444 - Directory Listing Modified Wed Aug 29 00:07:47 2007 UTC (12 years, 3 months ago) by dpvc Implementation of a PiecewiseFunction class. Both students and problem authors can enter peicewise functions, and they will display nicely in TeX mode. They can be evaluated, reduced, substituted, and so on, just like other functions. There are undoubtedly more features that it needs, but it's a start.  Revision 5443 - Directory Listing Modified Wed Aug 29 00:03:27 2007 UTC (12 years, 3 months ago) by dpvc Make the TeX output for <= be \le rather than <=  Revision 5442 - Directory Listing Modified Tue Aug 28 23:08:44 2007 UTC (12 years, 3 months ago) by gage Backporting changes from HEAD to rel-2-4-dev  Revision 5441 - Directory Listing Modified Tue Aug 28 22:40:15 2007 UTC (12 years, 3 months ago) by dpvc Add context names for the context(s) created here.  Revision 5440 - Directory Listing Modified Tue Aug 28 22:39:04 2007 UTC (12 years, 3 months ago) by dpvc Add error messages when student's answer is not linear in the constant he or she has used.  Revision 5439 - Directory Listing Modified Tue Aug 28 21:53:42 2007 UTC (12 years, 3 months ago) by dpvc Updated contexts to include a "name" field that at least tracks what context you started with (though it can be modified and no longer be the same as the original context). Remove the individual named variables in the Default.pm file; they are now available only through the %Parser::Context::Default::context hash. Remove the >< and . operators, the <...> parentheses, the norm and unit functions, and the i, j, and k constants from the Point context. So the Point context no longer includes vectors and vector operaterations.  Revision 5434 - Directory Listing Modified Sun Aug 26 19:11:18 2007 UTC (12 years, 3 months ago) by dpvc This is a rewrite of the Inequalities context that makes a number of improvements over the older version. First, the error messages are much better when students enter incorrect answers. Second, inequalities and intervals are now separate classes and so you can enter both types of notation and they will stringify and texify correctly, so there is no need for the stringifyAsInequalities flag any longer. Finally, there is a new Inequality() constructor that can be used to coerce Intervals, Sets, and Unions to become their corresponding inequalities, and vice versa, Interval(), Set() and Union() can be used to coerce an Inequality to be represented in its interval-style notation. This is not backaward compatible with the ealier version, but since that is only a couple of weeks old, I don't think it should be an issue, as very few problems will have been written for it in that time.  Revision 5407 - Directory Listing Modified Fri Aug 24 01:44:56 2007 UTC (12 years, 3 months ago) by dpvc Fix loadMacros() and alias() so that they find auxiliary files even when the .pg file is in templates/tmpEdit.  Revision 5406 - Directory Listing Modified Fri Aug 24 01:02:40 2007 UTC (12 years, 3 months ago) by dpvc The Library Browser has a bad interaction with browser image caches if it displays two .pg files with fixed .gif files that have the same name (this happens in several of the setMV* files, for example setMVlevelsets/levels-1/levels-1.pg and setMVlevelsets/levels-2/levels-2.pg). This fixes the problem by including a portion of the file name in the name of the gif file to (help) make it unique.  Revision 5404 - Directory Listing Modified Wed Aug 22 23:35:41 2007 UTC (12 years, 3 months ago) by dpvc Set the cmpDefaults so that you don't get error messages for things like "x=1 or x=2" (which are not reduced when considered as {1} U {2}). Also, improve the error messages a bit. There is a better way to handle this context so that intervals, sets and unions are distinct from inequalities. That will clear up the ambiguity about how to stringify the objects, and will make it easier for the two types of notation to coincide.  Revision 5402 - Directory Listing Modified Wed Aug 22 21:06:25 2007 UTC (12 years, 3 months ago) by dpvc This file implements the ability to have String() add strings to the context automatically if they are not already defined. (This should please Mike). I also provides a more convenient call for creating strings within the context.  Revision 5400 - Directory Listing Modified Wed Aug 22 19:54:50 2007 UTC (12 years, 3 months ago) by dpvc Use new feature to make Real() create ScientificNotation objects.  Revision 5399 - Directory Listing Modified Wed Aug 22 19:49:36 2007 UTC (12 years, 3 months ago) by dpvc Allow contexts to override the MathObject constructors separately from the ones generated by the parser. That way, you can define Real(), for example, to produce ScientificNotation, without screwing up the reals used in the parser itself.  Revision 5398 - Directory Listing Modified Wed Aug 22 19:04:25 2007 UTC (12 years, 3 months ago) by sh002i normalized documentation -- still needs a USAGE section though.  Revision 5395 - Directory Listing Modified Mon Aug 20 04:43:48 2007 UTC (12 years, 3 months ago) by dpvc Fixed typo in documentation.  Revision 5394 - Directory Listing Modified Mon Aug 20 04:27:00 2007 UTC (12 years, 3 months ago) by dpvc Added documentation for the showHints flag to the cmp() method.  Revision 5393 - Directory Listing Modified Mon Aug 20 04:23:02 2007 UTC (12 years, 3 months ago) by dpvc Implements a general antiderivative formula object where the student must include a "+ C" (using any variable he or she chooses) and the correct answer also shows a "+ C". See the comments in the file for details.  Revision 5392 - Directory Listing Modified Sun Aug 19 21:50:23 2007 UTC (12 years, 3 months ago) by dpvc Move the context creation to the _init routine so that modifications to main:: occur at initialization time, not when the file is loaded.  Revision 5391 - Directory Listing Modified Sun Aug 19 21:45:47 2007 UTC (12 years, 3 months ago) by dpvc Move the context creation into the _init routine so that changes to main:: are only made at initializaiton time, not load time.  Revision 5390 - Directory Listing Modified Sun Aug 19 21:44:49 2007 UTC (12 years, 3 months ago) by dpvc Fix up the examples and documentation a bit.  Revision 5388 - Directory Listing Modified Sun Aug 19 21:40:59 2007 UTC (12 years, 3 months ago) by dpvc Added the HTML special characters to the list of translated ones, so they will be properly preserved as well.  Revision 5386 - Directory Listing Modified Sun Aug 19 20:38:30 2007 UTC (12 years, 3 months ago) by dpvc Move the context creation into the _init routine. Don't generate the error about implied multiplication, since that doesn't make sense here (produce the standard error instead).  Revision 5385 - Directory Listing Modified Sun Aug 19 20:02:41 2007 UTC (12 years, 3 months ago) by dpvc Added context flags to more finely control the allowed entry format (e.g., force the use of commas, force the use of decimal places, and so on.) See the documentation at the top of the file for details.  Revision 5381 - Directory Listing Modified Sun Aug 19 15:38:31 2007 UTC (12 years, 3 months ago) by dpvc Correct the example so the answer given is actually a correct one.  Revision 5380 - Directory Listing Modified Sun Aug 19 14:58:51 2007 UTC (12 years, 3 months ago) by dpvc Fixes to format POD documentation better.  Revision 5379 - Directory Listing Modified Sun Aug 19 14:54:35 2007 UTC (12 years, 3 months ago) by dpvc More fixes to POD sections.  Revision 5378 - Directory Listing Modified Sun Aug 19 14:44:55 2007 UTC (12 years, 3 months ago) by dpvc Now that parens->clear doesn't remove the 'start' paren, we can use clear as we can with the others.  Revision 5374 - Directory Listing Modified Sun Aug 19 02:52:28 2007 UTC (12 years, 3 months ago) by dpvc Macro files should return a non-zero value  Revision 5373 - Directory Listing Modified Sun Aug 19 02:01:57 2007 UTC (12 years, 3 months ago) by dpvc Normalized comments and headers to that they will format their POD documentation properly. (I know that the POD processing was supposed to strip off the initial #, but that doesn't seem to happen, so I've added a space throughout.)  Revision 5371 - Directory Listing Modified Sun Aug 19 00:56:25 2007 UTC (12 years, 3 months ago) by dpvc Changed Parser.pl to MathObjects.pl  Revision 5370 - Directory Listing Modified Sun Aug 19 00:48:19 2007 UTC (12 years, 3 months ago) by dpvc Updated calls to Parser::Context->getCopy to remove unneeded undef argument.  Revision 5368 - Directory Listing Modified Sun Aug 19 00:21:46 2007 UTC (12 years, 3 months ago) by dpvc Make Compute() retain the original Formula as well as the correct answer string (for reference if you need it). Also provide a hook for subclasses of Parser::Item to force a Formula to be computed as a Formula-based Value object (e.g., this is needed for PiecewiseFunctions, which don't compute to constants, but don't want to be Formula's either).  Revision 5366 - Directory Listing Modified Sat Aug 18 23:43:47 2007 UTC (12 years, 3 months ago) by dpvc Miscellaneous improvements to TeX and string output. Fixed typo in propagation of equation pointer in one location. Propagate the varName field in "or" and "and" operations.  Revision 5365 - Directory Listing Modified Sat Aug 18 23:39:57 2007 UTC (12 years, 3 months ago) by dpvc Use alternative method of testing if whether two objects are the same (without causing them to stringify first). [Technically, this should call Value::address, the renamed version of Value::Ref, but I didn't want the AIM participants to have to update to the latests version of MathObjects to be able to use this.]  Revision 5357 - Directory Listing Modified Sat Aug 18 03:45:58 2007 UTC (12 years, 3 months ago) by dpvc Fixed up some comments. Added two new opions: format and tex_format. These provide sprintf-style strings that are used to format the student answers for display in the results area, so you have full control over how these are displayed. Added isPreview flag to the answer hash so that you can tell if you should issue error messages in your checker routine.  Revision 5355 - Directory Listing Modified Sat Aug 18 02:17:20 2007 UTC (12 years, 3 months ago) by dpvc Minor fix to error message code (table tags were missing). Add missing parameter to one call to perform_check(). Use context method rather than looking up the field directly.  Revision 5354 - Directory Listing Modified Fri Aug 17 22:46:02 2007 UTC (12 years, 3 months ago) by dpvc Make sure the creation o MathObjects internally preserves the context saved in the object.  Revision 5353 - Directory Listing Modified Fri Aug 17 21:36:31 2007 UTC (12 years, 3 months ago) by dpvc Finished the comment that was left incomplete. (Sorry about that.)  Revision 5352 - Directory Listing Modified Fri Aug 17 21:30:16 2007 UTC (12 years, 3 months ago) by dpvc Changed the POD line at the top, which incorrectly suggested that you use Context("LimitedPowers") to access this (many other contexts work that way, but not this one).  Revision 5351 - Directory Listing Modified Fri Aug 17 21:25:02 2007 UTC (12 years, 3 months ago) by dpvc Add some examples into the documentation. Put quotes around some string literals where they were missing. Move the isInteger routine to an easier location to use, and pass it the evaluated power as well as the BOP::power (so it won't have to be evaluated more than once).  Revision 5350 - Directory Listing Modified Fri Aug 17 21:07:00 2007 UTC (12 years, 3 months ago) by dpvc Updated to allow more flexibility in controlling the range of powers to be allowed (as per John Jones' suggestion). Also changed the way that you request the changes: you now make a function call rather than modify the operators list directly yourself. (The old way is still provided, however, for backward compatibility.) See the comments in the file for more details.  Revision 5347 - Directory Listing Modified Fri Aug 17 18:59:05 2007 UTC (12 years, 3 months ago) by dpvc change POD documenation (try to get it to handle the leading #'s properly. I know it can be done, but don't know what triggers it.  Revision 5346 - Directory Listing Modified Fri Aug 17 18:30:34 2007 UTC (12 years, 3 months ago) by dpvc This file implements a context where students can enter numbers in scientific notation. You can control the number of decimal digits they need/can enter, and how many are used when the answers are displayed. See the comments at the top of the file for more details.  Revision 5344 - Directory Listing Modified Fri Aug 17 16:11:55 2007 UTC (12 years, 3 months ago) by dpvc Incorrectly had promoteReals to 1 instead of 0 (left over from testing). Now added promoteReals to the context in addition to the answer cmp method, and produce error messages when computations are performed between currency and reals. (The message is not as good as it should be, but to do it right would require overriding all the operators. I need to work out a better way of hooking into the type checking mechanism for the operators.)  Revision 5343 - Directory Listing Modified Fri Aug 17 02:01:07 2007 UTC (12 years, 3 months ago) by dpvc This file implements a context in which students can provide answers that are monitary values. You can control the currency symbol and the characters used for commas and decimals (for potential localization in the future). See the comments in the file for more details and examples.  Revision 5342 - Directory Listing Modified Fri Aug 17 01:59:33 2007 UTC (12 years, 3 months ago) by dpvc This is a temporary hack that allows sticky answers to preserve all the characters the student typed. PGbasicmacros.pl currently removes several characters, including$, which is needed for monitary
answers.  Eventually, PGbasicmacros.pl should be fixed, but for now
this will work, and it should not cause trouble after PGbasicmacros.pl
is fixed.  In the end, this file can be emptied, then it should issue
a warning message, and finally it can be removed.

The hack is to copy the inputs_ref and modify the answers so that the
PGbasicmacros.pl macros will not remove those characters (the key is
to convert them to HTML entities instead).  Then after the problem has
been processed, we put the original answers back so that the answer
checkers will work properly on them.  This is accomplished by
replacing ENDDOCUMENT with a new routine that first puts back the
answers and then calls the old ENDDOCUMENT.  This has the unwanted
side effect of putting error messages into the error log, but I can't
seem to work around that.


Revision 5341 - Directory Listing
Modified Thu Aug 16 04:41:26 2007 UTC (12 years, 3 months ago) by dpvc
Had a typo:  answer_submitted should have been answers_submitted, but
it turns out that this is ALWAYS set, even when answers AREN'T
submitted, so I had to look for the individual buttons instead.  This
might break if someone adds more buttons, but it works for now.


Revision 5340 - Directory Listing
Modified Thu Aug 16 03:45:33 2007 UTC (12 years, 3 months ago) by dpvc
Show the reseed button and message even if the student hasn't


Revision 5339 - Directory Listing
Modified Thu Aug 16 03:24:45 2007 UTC (12 years, 3 months ago) by dpvc
Added a message when the "when" condition is met but the due-date
condition is not.  The message informs the student that the problem
can be reseeded after the due date.


Revision 5338 - Directory Listing
Modified Thu Aug 16 02:37:54 2007 UTC (12 years, 3 months ago) by dpvc
Make reseeding save better (when submits are allowed) so that if a
student comes back to a reseeded problem, they will get the reseeded
version.

Also don't let to reseeding count as a submit in the number of attempts
so far.


Revision 5337 - Directory Listing
Modified Wed Aug 15 21:45:01 2007 UTC (12 years, 3 months ago) by dpvc
Fixed a bug where onlyAfterDue was not working correctly.  (The button
showed up when it shouldn't, and would have no effect.)


Revision 5336 - Directory Listing
Modified Wed Aug 15 21:32:05 2007 UTC (12 years, 3 months ago) by dpvc
Provides a mechanism for reseeding problems under specific
conditions.  For example, when the student has gotten the problem
right and it is past the due date, he or she can reseed the problem.
Other criteria are also available.

See the comments at the top of the file for more details.


Revision 5332 - Directory Listing
Modified Wed Aug 15 04:12:15 2007 UTC (12 years, 3 months ago) by dpvc
Make @LimitedPowers::OnlyPositiveIntegers do as its name suggests and
rule out zero as well.  Added @LimitedPowers::OnlyNonNegativeIntegers
to handle 0 and positive values.


Revision 5329 - Directory Listing
Modified Wed Aug 15 04:03:57 2007 UTC (12 years, 3 months ago) by dpvc
USe filter names for the answer checkers to identify them in debugging
message more easily.  Mark the MultiAnswer as a Value object.  Handle


Revision 5328 - Directory Listing
Modified Wed Aug 15 03:58:26 2007 UTC (12 years, 3 months ago) by dpvc
This file implements a postfilter for AnswerEvaluators that allows you
to specify answer hint messages to use when specific answers or sets
of answers are given by the student.  You can use specific constants
or a perl subroutine to determine which answers to respond to.  You
can also specify a score to use when the answers are triggered, and
whether to replace existing messages or not.  See the comments in the
file for more details.


Revision 5327 - Directory Listing
Modified Wed Aug 15 03:56:11 2007 UTC (12 years, 3 months ago) by dpvc
This file defines contexts in which intervals can (or must) be
entered as inequalities.  The contexts include "and" and "or" for
combining inequalities, and you can force intervals to be shown as
inequalities rather than their usual form.  See the comments in the


Revision 5310 - Directory Listing
Modified Fri Aug 10 18:36:10 2007 UTC (12 years, 4 months ago) by sh002i
forward-port (sh002i): Added a version of PGstandard.pl which loads
It also includes POD docs!


Revision 5274 - Directory Listing
Modified Fri Aug 10 00:21:17 2007 UTC (12 years, 4 months ago) by sh002i
forward-port (sh002i): when using loadMacros, add a newline before the
file's contents in the eval() statemet. this allows a POD directive on
the first line of the included file.


Revision 5269 - Directory Listing
Modified Thu Aug 9 23:24:56 2007 UTC (12 years, 4 months ago) by jj
Add function so that pg problems can include any other problem under the
templates directory.


Revision 5209 - Directory Listing
Modified Sun Jul 22 03:24:54 2007 UTC (12 years, 4 months ago) by gage
Updated documentation of appletLink and helpLink macros


Revision 5179 - Directory Listing
Modified Fri Jul 13 22:43:22 2007 UTC (12 years, 4 months ago) by sh002i
expanded POD docs


Revision 5175 - Directory Listing
Modified Fri Jul 13 21:35:34 2007 UTC (12 years, 4 months ago) by sh002i
quick hack to satisfy gedit's dumb syntax hiliting


Revision 5145 - Directory Listing
Modified Wed Jul 11 19:28:21 2007 UTC (12 years, 4 months ago) by gage
More detailed doucmentation on MathObjects


Revision 5141 - Directory Listing
Modified Wed Jul 11 02:42:12 2007 UTC (12 years, 5 months ago) by gage
Add comment explaining that Infinity is defined in dangerousMacros.pl along with pi and sometimes
the complex version of i as well.


Revision 5139 - Directory Listing
Modified Wed Jul 11 01:07:09 2007 UTC (12 years, 5 months ago) by gage
Removed PGinfomacros.pl

there is already a file named PGinfo.pl which does the same thing


Revision 5138 - Directory Listing
Modified Wed Jul 11 01:03:08 2007 UTC (12 years, 5 months ago) by gage
Added a file containing macros that are useful for determining the current environment and
other debugging activities.  This collection is far from complete.  It currently contains
some useful macros that originally appeared in PGsequentialmacros.pl  but were really only used
for debugging and problem construction.


Revision 5076 - Directory Listing
Modified Fri Jun 29 02:02:41 2007 UTC (12 years, 5 months ago) by dpvc
Renamed the MultiPart object as the MultiAnswer object.  The MultiPart
object now issues a warning indicating that change so that problem
authors will be encouraged to change their code.


Revision 5075 - Directory Listing
Modified Thu Jun 28 23:53:40 2007 UTC (12 years, 5 months ago) by dpvc
Use new context methods.


Revision 5074 - Directory Listing
Modified Thu Jun 28 23:44:45 2007 UTC (12 years, 5 months ago) by dpvc
Updated to use new context methods.


Revision 5073 - Directory Listing
Modified Thu Jun 28 23:42:18 2007 UTC (12 years, 5 months ago) by dpvc
Use new context methods.


Revision 5071 - Directory Listing
Modified Thu Jun 28 23:19:00 2007 UTC (12 years, 5 months ago) by dpvc
Correct and expand some documentation.


Revision 5070 - Directory Listing
Modified Thu Jun 28 22:49:38 2007 UTC (12 years, 5 months ago) by dpvc
Fixed up some comments and spacing.


Revision 5069 - Directory Listing
Modified Thu Jun 28 22:48:41 2007 UTC (12 years, 5 months ago) by dpvc
Use the new context methods, and restructure the saving/restoring of contexts.


Revision 5066 - Directory Listing
Modified Thu Jun 28 22:31:59 2007 UTC (12 years, 5 months ago) by dpvc
Updated to use the new context methods.


Revision 5061 - Directory Listing
Modified Thu Jun 28 20:44:17 2007 UTC (12 years, 5 months ago) by dpvc
Update to use new context methods.


Revision 5059 - Directory Listing
Modified Thu Jun 28 20:17:12 2007 UTC (12 years, 5 months ago) by dpvc
Updated to use new context methods.


Revision 5055 - Directory Listing
Modified Thu Jun 28 02:28:20 2007 UTC (12 years, 5 months ago) by dpvc
Update to use new context methods.


Revision 5054 - Directory Listing
Modified Thu Jun 28 02:26:44 2007 UTC (12 years, 5 months ago) by dpvc
Updated to use new package method to look up the Formula package name.


Revision 5053 - Directory Listing
Modified Thu Jun 28 02:23:21 2007 UTC (12 years, 5 months ago) by dpvc
Change documentation for how to copy a context.


Revision 5052 - Directory Listing
Modified Thu Jun 28 02:21:32 2007 UTC (12 years, 5 months ago) by dpvc
Use new package method to find the Function package name.


Revision 5051 - Directory Listing
Modified Thu Jun 28 02:20:00 2007 UTC (12 years, 5 months ago) by dpvc
Use new context methods.


Revision 5050 - Directory Listing
Modified Thu Jun 28 02:17:32 2007 UTC (12 years, 5 months ago) by dpvc
Updated context method calls.


Revision 5049 - Directory Listing
Modified Thu Jun 28 02:14:33 2007 UTC (12 years, 5 months ago) by dpvc
Use the new context copying method, and copy the Point context not the
Vector context.


Revision 5048 - Directory Listing
Modified Thu Jun 28 02:11:28 2007 UTC (12 years, 5 months ago) by dpvc
Updated to use new context methods.


Revision 5047 - Directory Listing
Modified Thu Jun 28 02:08:18 2007 UTC (12 years, 5 months ago) by dpvc
The file needs to return a true value.


Revision 5046 - Directory Listing
Modified Thu Jun 28 02:06:36 2007 UTC (12 years, 5 months ago) by dpvc
Updated to use new context copying method.


Revision 5045 - Directory Listing
Modified Thu Jun 28 01:55:03 2007 UTC (12 years, 5 months ago) by dpvc
Updated to use the new context copy method.


Revision 5044 - Directory Listing
Modified Thu Jun 28 01:51:27 2007 UTC (12 years, 5 months ago) by dpvc
Use the new method to copy the String context


Revision 5043 - Directory Listing
Modified Thu Jun 28 01:39:58 2007 UTC (12 years, 5 months ago) by dpvc
Updated to comply with recent changes in the Value library.


Revision 5017 - Directory Listing
Modified Fri Jun 22 12:40:32 2007 UTC (12 years, 5 months ago) by dpvc
Left out a "return" in my changes of two weeks ago.  OOPS!


Revision 5000 - Directory Listing
Modified Tue Jun 12 01:02:05 2007 UTC (12 years, 5 months ago) by gage
done testing


Revision 4999 - Directory Listing
Modified Tue Jun 12 01:00:53 2007 UTC (12 years, 5 months ago) by gage
testing -- please ignore


Revision 4998 - Directory Listing
Modified Tue Jun 12 01:00:10 2007 UTC (12 years, 5 months ago) by gage
testing -- added a space.


Revision 4997 - Directory Listing
Modified Mon Jun 11 18:16:40 2007 UTC (12 years, 5 months ago) by gage
Fixing docementation so that it can be read from the web.


Revision 4990 - Directory Listing
Modified Thu Jun 7 23:48:20 2007 UTC (12 years, 6 months ago) by dpvc
More updates to use the new Value->Package() call.  This will make the
standard object-creation functions like Real() and Complex() use the
new lookup method.


Revision 4986 - Directory Listing
Modified Thu Jun 7 18:19:56 2007 UTC (12 years, 6 months ago) by sroubos
Changed POD documentation


Revision 4985 - Directory Listing
Modified Thu Jun 7 17:42:29 2007 UTC (12 years, 6 months ago) by sroubos
Make readable by POD documentation from the web


Revision 4984 - Directory Listing
Modified Thu Jun 7 13:20:36 2007 UTC (12 years, 6 months ago) by dpvc
Always root the current directory in the templates directory (unless
it is an absolute reference absolute).

Include the set number in the names of PNG files, just like in GIF and
other files, so that they will not conflict with ones of the same name
in other sets.


Revision 4983 - Directory Listing
Modified Thu Jun 7 13:14:52 2007 UTC (12 years, 6 months ago) by dpvc
Allow Compute() to create formulas as well as Value objects (with the
correct answer set to the original formula).

Also update some comments and formatting.


Revision 4982 - Directory Listing
Modified Thu Jun 7 13:12:45 2007 UTC (12 years, 6 months ago) by dpvc
Normalized the definitions of i, j, k, etc.


Revision 4978 - Directory Listing
Modified Wed Jun 6 23:23:34 2007 UTC (12 years, 6 months ago) by dpvc
This file is now obsolete since the functionality has been added to
the Real and Complex objects directly.  So this file is maintained
only for backward compatibility.


Revision 4977 - Directory Listing
Modified Wed Jun 6 23:02:06 2007 UTC (12 years, 6 months ago) by dpvc
Foxed some documentation.  You use the standard "Numeric" and
"Complex" contexts, not "RealPeriodic" and "ComplexPeriodic",
for these.


Revision 4974 - Directory Listing
Modified Wed Jun 6 17:58:03 2007 UTC (12 years, 6 months ago) by gage
This is an experimental version of PGcomplexmacros2Exp.pl


Revision 4969 - Directory Listing
Modified Thu May 24 17:55:37 2007 UTC (12 years, 6 months ago) by gage
Pod documentation upgrades


Revision 4968 - Directory Listing
Modified Thu May 24 12:44:58 2007 UTC (12 years, 6 months ago) by gage
Pod documentation added


Revision 4967 - Directory Listing
Modified Thu May 24 12:05:30 2007 UTC (12 years, 6 months ago) by gage
Added pod documentation


Revision 4966 - Directory Listing
Modified Wed May 23 17:30:35 2007 UTC (12 years, 6 months ago) by gage
Added Davide Cervone's methods for evaluating formulas module 2pi

Used in complex variables in particular.


Revision 4963 - Directory Listing
Modified Tue May 22 17:46:52 2007 UTC (12 years, 6 months ago) by dpvc
When complex=>'ok' is used, make a COPY of the Complex context before
modifying it.  (Otherwise we modify the ORIGINAL copy, and that is
persistent from problem to problem within one httpd child, which would
mean one problem could affect later ones.)


Revision 4961 - Directory Listing
Modified Tue May 15 17:48:28 2007 UTC (12 years, 6 months ago) by gage
Update pod.


Revision 4928 - Directory Listing
Modified Tue Apr 17 00:36:16 2007 UTC (12 years, 7 months ago) by dpvc
Modified the way the Parser-based versions of the traditional answer
checkers get copies of their contexts.  They now use a new method
getCopy to obtain the copy either from the problem's context table or
the default table (rather than only from the default).  That way the
instructor can use parserCustomization.pl to customize the contexts


Revision 4887 - Directory Listing
Modified Thu Mar 15 22:08:55 2007 UTC (12 years, 8 months ago) by glarose
Update quiz prefix for arrays.  This is not a complete fix, but it
gets incrementally closer to a fix.


Revision 4878 - Directory Listing
Modified Wed Mar 14 00:37:40 2007 UTC (12 years, 8 months ago) by gage
Corrected typo


Revision 4877 - Directory Listing
Modified Wed Mar 14 00:35:38 2007 UTC (12 years, 8 months ago) by gage
Added comments about working with complex variables


Revision 4867 - Directory Listing
Modified Sun Mar 11 16:11:20 2007 UTC (12 years, 9 months ago) by gage
This file loads Parser.pl.   It is part of a campaign to replace the term "parser object"
with MathObject  which should sound more intuitive for those who are unaware of the development
history of the PG language.


Revision 4866 - Directory Listing
Modified Sun Mar 11 11:40:46 2007 UTC (12 years, 9 months ago) by dpvc
Fixed a deprecated usage of defined(@result)


Revision 4856 - Directory Listing
Modified Wed Mar 7 18:34:55 2007 UTC (12 years, 9 months ago) by gage
Added documentation


Revision 4845 - Directory Listing
Modified Tue Mar 6 01:52:26 2007 UTC (12 years, 9 months ago) by gage
Documenation addition


Revision 4832 - Directory Listing
Modified Sun Mar 4 22:50:35 2007 UTC (12 years, 9 months ago) by gage
More formatting changes.


Revision 4831 - Directory Listing
Modified Sun Mar 4 22:46:01 2007 UTC (12 years, 9 months ago) by gage
Documentation formatting changes


Revision 4828 - Directory Listing
Modified Sun Mar 4 21:06:17 2007 UTC (12 years, 9 months ago) by gage
Use this macro package to define macros for
examining the current environment.  Useful for
creating problems and for debugging.


Revision 4825 - Directory Listing
Modified Sun Mar 4 20:44:37 2007 UTC (12 years, 9 months ago) by gage
Correct pretty_print
so that it protects < for printing in HTML.
Replace occurences of < with &lt; in the data
This was done with straight substitution -- perhaps a protectHTML macro should have been used?


Revision 4808 - Directory Listing
Modified Thu Mar 1 23:35:18 2007 UTC (12 years, 9 months ago) by gage
Documentation additions


Revision 4806 - Directory Listing
Modified Thu Mar 1 22:43:38 2007 UTC (12 years, 9 months ago) by gage
Minor documentation changes.
Use html entity to represent dollar sign on the web.


Revision 4773 - Directory Listing
Modified Sun Feb 11 04:44:27 2007 UTC (12 years, 9 months ago) by dpvc
Added support for uncheckable radio buttons (when JavaScript it
active).  You specify an uncheckable buttons by including the
uncheckable=>1 or uncheckable=>"shift" options to the RadioButtons()
call.


Revision 4772 - Directory Listing
Modified Sat Feb 10 00:09:52 2007 UTC (12 years, 9 months ago) by dpvc
New macros for using Radio buttons with the new Parser


Revision 4771 - Directory Listing
Modified Sat Feb 10 00:07:50 2007 UTC (12 years, 9 months ago) by dpvc
Fixed an error with the custom list checker setting the wrong field
for the checker (OOPS!)


Revision 4767 - Directory Listing
Modified Sat Feb 3 15:32:06 2007 UTC (12 years, 10 months ago) by gage
Changed input to rungeKutta4 so that it matches the pod description --
i.e. it takes as its first argument a reference to a
subroutine defining a vectorField
as opposed to an answer hash.


Revision 4762 - Directory Listing
Modified Thu Feb 1 04:37:11 2007 UTC (12 years, 10 months ago) by gage
Removed scommented out code and
spiffed up the documentation.

--------------------------------------------------------------------


Revision 4761 - Directory Listing
Modified Wed Jan 31 16:17:48 2007 UTC (12 years, 10 months ago) by gage
Added code to multi_cmp which makes it easier to  debug.

We will probably want to get rid of this entirely in favor of List answers, but meantime
I'm documenting the problems.


Revision 4727 - Directory Listing
Modified Sat Dec 16 14:07:22 2006 UTC (12 years, 11 months ago) by dpvc
Fixed type in comment.


Revision 4701 - Directory Listing
Modified Tue Dec 5 23:23:07 2006 UTC (13 years ago) by sh002i
changes for DelayedMailer


Revision 4679 - Directory Listing
Modified Mon Nov 27 22:11:54 2006 UTC (13 years ago) by sh002i
added mail_answers_to3, which currently does not work, to eventually
replace mail_answers_to2, which also does not work.

I thought now would be a good time to commit this, so that others can
look at it if they like. The problem is that when RestrictedMailer is
used within a PG safe compartment, it hangs on opening the SMTP
connection and the problem times out after 60 seconds.

This mockup I made works perfectly however, and I can't see how the PG
safe compartment is different. Here it is:

my $mailer = new WeBWorK::Utils::RestrictedMailer( params => { from => 'sh002i@math.rochester.edu', smtp => 'mail.math.rochester.edu', headers => 'X-Remote-Host: 128.151.231.10', debug => "debug.txt", keepconnection => 1, subject => "generic subject", on_errors => 'die', }, lock_by_default => 1, allow_change => [qw/fake_from to fake_to cc fake_cc bcc/], allowed_recipients => [qw/sh002i@math.rochester.edu sam@uofr.net/], fatal_errors => 1, ); my$rmailer = new WeBWorK::Utils::RestrictedClosureClass($mailer, qw/Open SendEnc Close Cancel skipped_recipients error error_msg/); my$safe = new Safe;
${$safe->varglob('the_date')} = date;
my $hole = new Safe::Hole {}; my$rmailer_wrapped = $hole->wrap($rmailer);
${$safe->varglob('TEST')}{rmailer} = $rmailer_wrapped; my$result = $safe->reval(<<'EOF'); my$rmailer = $TEST{rmailer}; my$open_result = $rmailer->Open({ to => 'sam@uofr.net', #subject => "this is only a test", }); print "open_result=$open_result\n";
my $sendenc_result =$rmailer->SendEnc("Hello world, the time is " . $the_date); print "sendenc_result=$sendenc_result\n";
$rmailer->Close; EOF die "reval threw an exception:$@" if $@;  Revision 4673 - Directory Listing Modified Mon Nov 27 04:21:59 2006 UTC (13 years ago) by dpvc Moved the guts of this to pg/lib/Parser/Legacy/NumberWithUnits.pl, since most of the code is common. This is a shell that now only defines the FormulaWithUnits() function.  Revision 4670 - Directory Listing Modified Mon Nov 27 00:08:31 2006 UTC (13 years ago) by dpvc Fixed usage comments to do formulas rather than just numbers.  Revision 4668 - Directory Listing Modified Sun Nov 26 23:59:22 2006 UTC (13 years ago) by dpvc Provides a formula with units (as opposed to a number with units). This does introduce some ambiguity issues, since variable names could look like units in some cases. E.g., s + 5 m/s could look like (s + 5*m/s) rather than (s + 5) meters/second. The parser will take the largest string at the end of the answer that could be treated as units so s + 5m/s is (s+5) meters/second. The Units.pm library requries units to be separated by * or / and only one / is allowed, so s + 5m s is (s+5m) seconds not (s+5) m*s. Something like 5 m/s/s will generate an error (it shouold be written m/s*s or m/s^2), and 5 kg m/s should be written 5 kg*m/s. [If we made the hash of known units be public rather than private in Units, we could do a better job of this, and could treat kg m/s as kg*m/s for example.]  Revision 4666 - Directory Listing Modified Sun Nov 26 21:57:39 2006 UTC (13 years ago) by dpvc Updated NumberWithUnits to use Parser::LEgacy::NumberWithUnits rather than having a separate implementation here. This will guarantee that it is consistent with num_cmp() and prevents unneeded duplication of code.  Revision 4665 - Directory Listing Modified Sun Nov 26 21:28:40 2006 UTC (13 years ago) by dpvc Didn't need to override the perl fields for the integer-only methods, since all the checking is done in the parser.  Revision 4664 - Directory Listing Modified Sun Nov 26 21:15:24 2006 UTC (13 years ago) by dpvc This file implements special power operators that check for special conditions (like no powers of 'e', or only integer powers). See the contents of the file for documentation.  Revision 4626 - Directory Listing Modified Fri Nov 3 23:35:31 2006 UTC (13 years, 1 month ago) by dpvc Made str_cmp accept blank answers again. Fixes bug #1123. Note: if you use blank answers, the "n of the questions remain unanswered" message will tell you how many of the answers should be left blank. It is probably worth working out a method of having blank entries that are only marked correct when all the other answers are correct (this would take a special grader; I have this as part of the weighted grader, but it is not common knowledge).  Revision 4571 - Directory Listing Modified Fri Oct 13 21:43:47 2006 UTC (13 years, 1 month ago) by dpvc Fixed problem with function checking when vars are specified with limits and the vars are not in alphabetical order. (The Parser expects the limits and test points to have coordinates specified in alphabetical order, so they need to be reordered if the author has them in another order.)  Revision 4562 - Directory Listing Modified Tue Oct 10 15:45:11 2006 UTC (13 years, 2 months ago) by jj Catch errors which get thrown by other filters.  Revision 4424 - Directory Listing Modified Tue Aug 29 11:14:28 2006 UTC (13 years, 3 months ago) by dpvc Check routine can now return an array rather than an array reference. (This requires pg/lib/Value/AnswerCheckers.pm to be at least version 1.80).  Revision 4386 - Directory Listing Modified Thu Aug 17 23:55:17 2006 UTC (13 years, 3 months ago) by dpvc Added LaTeXMathML mode.  Revision 4385 - Directory Listing Modified Wed Aug 16 01:42:46 2006 UTC (13 years, 3 months ago) by dpvc Report the objec type better in parser error messages.  Revision 4379 - Directory Listing Modified Mon Aug 14 18:24:44 2006 UTC (13 years, 3 months ago) by sh002i allow partial URLs in appletPath -- these get the server_root_url prepended to them.  Revision 4318 - Directory Listing Modified Sat Jul 29 16:19:18 2006 UTC (13 years, 4 months ago) by gage Added rungeKutta4 method to PGnumericalmacros.pl Updated documentation on rungeKutta4a, an answer filter in PGdiffeqmacros.pl  Revision 4298 - Directory Listing Modified Wed Jul 26 02:54:01 2006 UTC (13 years, 4 months ago) by dpvc Extended this context to handle multivariable polynomials. So you can use things like loadMacros("contextLimitedPolynomial.pl"); Context("LimitedPolynomial")->variables->are(x => 'Real', y => 'Real'); Context()->flags->set(singlePowers=>1);$f = Formula("1 + x + y + 2xy + x^2 + y^2");


Revision 4275 - Directory Listing
Modified Mon Jul 17 21:12:44 2006 UTC (13 years, 4 months ago) by dpvc
Make FUNCTION_CMP retain the professor's answer exactly as typed
rather than use the parsed version's reconstructed string.


Revision 4121 - Directory Listing
Modified Mon Jun 5 20:43:22 2006 UTC (13 years, 6 months ago) by dpvc
Fixed a problem where things like x+4x would be accepted even in
single-power mode (the initial x was not being identified as a single
power of x correctly).


Revision 4098 - Directory Listing
Modified Tue May 23 20:45:02 2006 UTC (13 years, 6 months ago) by gage
Added support for searching for appletin  anumber of places defined in
$pg{directories}{appletPath} in global.conf  Revision 4088 - Directory Listing Modified Sun May 21 00:44:40 2006 UTC (13 years, 6 months ago) by gage added findAppletFile to dangerous macros. This is still not in its final form which should involve checking the url rather than the file location.  Revision 4041 - Directory Listing Modified Fri Mar 31 22:59:43 2006 UTC (13 years, 8 months ago) by dpvc A change to the way lists are processed in AnswerChecker.pm in December (v1.75) requires that implicitList => 0 be added to the defaults for variable_cmp().  Revision 3971 - Directory Listing Modified Wed Jan 25 12:47:17 2006 UTC (13 years, 10 months ago) by dpvc Forward port to HEAD (Prevent "unquoted dx may conflict with future usage" messages.)  Revision 3870 - Directory Listing Modified Sat Dec 31 15:00:37 2005 UTC (13 years, 11 months ago) by dpvc Added ability to specify variables that are part of the union/list rather than requiring just constants. E.g., interval_cmp("(1,a),(2a-1,a)",unions=>'no',var=>'a'); or interval_cmp("(x,y),(2x,3y)",unions=>'no',vars=>['x','y']);  Revision 3867 - Directory Listing Modified Sat Dec 31 02:41:16 2005 UTC (13 years, 11 months ago) by dpvc Now that the parser accepts multi-character variables, there is no need for the special treatment of dx. Also, allow the context to specify the default variable to use, and if not available, take the LAST varaible alphabetically, not the first. (x is more likely to be last, and the author might have added dx as a variable so that it will not cause an error if used in other answers in the problem, for example.)  Revision 3814 - Directory Listing Modified Wed Dec 14 17:47:00 2005 UTC (13 years, 11 months ago) by sh002i Really fix fun_cmp equivalence warning message. We show the equivalence message when: we're not in preview mode AND the answers are equivalent AND the answers are not identical. We DON'T CARE whether the answers are correct or not, because that leaks information in multipart questions when$showPartialCorrectAnswers is off.

Both the Parser-version (FUNCTION_CMP) and the non-Parser-version
(ORIGINAL_FUNCTION_CMP) behave as descibed above now.

And this time we test *before* we commit...


Revision 3812 - Directory Listing
Modified Wed Dec 14 00:51:23 2005 UTC (13 years, 11 months ago) by sh002i
parser version was ok, bug #752 fixed in non-parser version.


Revision 3808 - Directory Listing
Modified Tue Dec 13 18:23:46 2005 UTC (13 years, 11 months ago) by sh002i
give answer is equivalent message regardless of correctness.
fixes bug #752.


Revision 3800 - Directory Listing
Modified Wed Dec 7 16:13:48 2005 UTC (14 years ago) by dpvc
Prevent error message when num_cmp specifies the same string more than
once (e.g., upper and lower case versions of the same thing).


Revision 3792 - Directory Listing
Modified Mon Dec 5 16:09:56 2005 UTC (14 years ago) by sh002i
Corrected error message when mailing to an address is not allowed. This
used to refer to the courseWeBWorK.ph file, which is WW1-specific. It
now mentions global.conf and course.conf.


Revision 3781 - Directory Listing
Modified Tue Nov 29 21:25:25 2005 UTC (14 years ago) by apizer
Add underscores to the anonymous unique identifier for
questionnaires in WW 2 by using
${setNumber}_${courseName}_$psvnNumber  Revision 3769 - Directory Listing Modified Mon Nov 21 13:13:35 2005 UTC (14 years ago) by dpvc Fixed a problem with formatStudentAnswer not being defined in the special context created for this answer checker.  Revision 3765 - Directory Listing Modified Thu Nov 17 22:57:39 2005 UTC (14 years ago) by dpvc Handle the new global.conf setting for jsMath's processDoubleClicks option.  Revision 3759 - Directory Listing Modified Sat Nov 12 01:31:10 2005 UTC (14 years ago) by gage Roll back my changes. Use Davide's method of detecting the preview Button  Revision 3758 - Directory Listing Modified Sat Nov 12 00:58:57 2005 UTC (14 years ago) by gage Check to see if$inputs_ref->{previewAnswers} is defined.  If it is then
the preview button has been pressed.  In this case emit a warning if
the answer has been given previously regardless of whether the answer is
correct or incorrect.  The warning message indicates that the previous
matching answer might have been either a preview or a submitted answer.

Let's see how this works.


Revision 3757 - Directory Listing
Modified Sat Nov 12 00:50:07 2005 UTC (14 years ago) by dpvc
Take care of the issue where Preview could be used to gather
answer is the same as the previous one" message.  Now if Preview is
used, the warning is given whether the answer is right or not.

(Maybe it is not necessary to check for correct at all, since that was
there to prevent the message from being issued when there are multiple
answer blanks and the student is working on other ones.  But the exact
match check will take care of those.  Should the message be issued if
the student changes a correct answer to an equivalent one?)


Revision 3756 - Directory Listing
Modified Sat Nov 12 00:34:33 2005 UTC (14 years ago) by dpvc
Updated a comment to make it more accurate.


Revision 3755 - Directory Listing
Modified Sat Nov 12 00:31:22 2005 UTC (14 years ago) by dpvc
Make had the right idea, but used the wrong context (or what might be
the wrong context in some circumstances).


Revision 3753 - Directory Listing
Modified Sat Nov 12 00:13:03 2005 UTC (14 years ago) by gage
Changes to code checking whether the previous answer is equivalent to the current answer.
in case the two Values can't be compared.

was modified to make sure the context is the same in the previous answer and the current answer.


Revision 3735 - Directory Listing
Modified Mon Oct 31 21:19:40 2005 UTC (14 years, 1 month ago) by apizer
Create an anonymous unique identifier for
questionnaires in WW 2 by using
$setNumber$courseName$psvnNumber in place of$psvnNumber.


Revision 3723 - Directory Listing
Modified Thu Oct 20 00:57:19 2005 UTC (14 years, 1 month ago) by dpvc
A new parser object that handles popup menus.  Mainly this is so that
you can use them with the MultiPart object, which requires all the
objects to be Value objects.  See the comments in the file for
documentation and examples.


Revision 3715 - Directory Listing
Modified Sun Oct 16 03:27:35 2005 UTC (14 years, 1 month ago) by dpvc
Added a new experimental diagonstic function for the function answer
checker.  When enabled, it will produce graphs of the correct answer,
the student answer, and the absolute and relative errors, and will
list the data points used in the comparison, plus the numerical values
of the results and errors.

To enable the diagnostic, use

ANS(fun_cmp($f,diagnostics=>1)); Note that only single-variable functions can be graphed at the moment, so if you are using a multi-variable check, you need to disable the graphing. To do this use ANS(fun_cmp($f,vars=>['x','y'],diagnostics=>[showGraphs=>0]));

The diagnostic mode is only available for the Parser-based versions of
the function checker, and (of course) with the native Parser objects
as well:

ANS(Formula($f)->cmp(diagnostics=>1)); There are now Context settings to control the diagnostics, which can be set through Context()->diagnostics->set(). For example Context()->diagnostics->set(formulas=>{showGraphs=>0}); would turn off graphs for all functions comparisons. Some of the other values you can set are: formulas => { showTestPoints => 1, # show the test points and function values showRelativeErrors => 1, # show the relative errors for the student answer showAbsoluteErrors => 1, # show the absolute errors for the student answer showGraphs => 1, # show the various graphs graphRelativeErrors => 1, # show the relative error graph graphAbsoluteErrors => 1, # show the absolute error graph clipRelativeError => 5, # don't show relative errors above 5 clipAbsoluteError => 5, # don't show absolute errors above 5 plotTestPoints => 1, # include dots at the test points combineGraphs => 1, # show correct and student graphs in one image }, graphs => { divisions => 75, # the number of data points to plot limits => [-2,2], # the lower and upper limit of the plot # (taken from the function limits if not provided) size => 250, # pixel size of the image (could be [width,height]) grid => [10,10], # number of grid lines in each direction axes => [0,0], # where to put axes relative to origin } Any of these can be set in the Context(), or in the answer checker itself. If you set diagnostics to an array reference, the entries in the array refer to element of the formulas hash. If you set diagonstics to a hash reference, then you can set values in either the formulas or graphs hashes, as in: ANS(Formula($f)->cmp(diagnostics=>{
formulas => {showAbsoluteErrors=>0},
graphs => {size=>300, divisions=>100},
}));

If you want all function checkers to show diagnostics, use

Context()->diagonstics->set(formulas=>{show=>1});

The image file names are modified to include the current time so that
the names will be unique.  This avoids problems with the browser cache
showing a old image when a new one has been generated.  But this also
means that the temporary image directory will fill up fast, so you may
need to empty it if you use the diagnostic images frequently.

This is just a first attempt at a diagnostic feature.  I think it will
help when you are not sure if the tolerances are set properly, or if
you think a student answer should be markes correct but isn't, as it
will point out which point(s) are not being accepted.


Revision 3704 - Directory Listing
Modified Tue Oct 11 17:59:30 2005 UTC (14 years, 1 month ago) by jj
Added syntactic sugar for pop_up_lists.

A common situation is that a problem includes a short multiple-choice question along with other answers.  Often, these questions are written as fill-in-the-blank where the student is told a list of legal words to put in the blanks.  The idea is to make it as simple as possible for problem writers to replace the fill-in-the-blank with a drop-down list of alternatives.

So, now the text of a problem can contain

is the function increasing on [0,1]? \{ pop_up_list(['?', 'yes', 'no']) \}

is the function increasing on [0,1]? \{ pop_up_list('?' => '?', 'yes' => 'yes', 'no' => 'no') \}

The result is checked with something like

ANS(str_cmp('yes'));

Existing problems are unaffected since the added syntax uses a reference to a list (the extra square brackets).


Revision 3689 - Directory Listing
Modified Fri Oct 7 02:38:41 2005 UTC (14 years, 2 months ago) by dpvc
Corrected a problem with contexts not being reset properly after
num_cmp or fun_cmp.


Revision 3680 - Directory Listing
Modified Sun Oct 2 12:13:16 2005 UTC (14 years, 2 months ago) by dpvc
Removed unneeded "my" for a varaible that is already local.


Revision 3679 - Directory Listing
Modified Sat Oct 1 01:17:24 2005 UTC (14 years, 2 months ago) by dpvc
Major update to allow ImplicitPlane objects to be created
automatically by the Parser when it sees equal signs.  This makes it
possible to use ImplicitPlanes in Lists.  (Before, when the List was
turned into a Formula returning a List, the equality became a plane
old equality rather than an ImplicitPlane object.)

This is a bit of a hack for now until I can make List and other Value
objects be allowed to have Formulas as their entries rather than turn
into Formulas returning Lists (or whatever type).


Revision 3670 - Directory Listing
Modified Thu Sep 29 22:08:43 2005 UTC (14 years, 2 months ago) by dpvc
Only add the 'dx' variable if it isn't already in the context.


Revision 3662 - Directory Listing
Modified Wed Sep 28 20:40:20 2005 UTC (14 years, 2 months ago) by dpvc
Fixed a bug where if you specified a variable other than dx, the
division by zero check didn't work properly.


Revision 3661 - Directory Listing
Modified Wed Sep 28 11:11:29 2005 UTC (14 years, 2 months ago) by dpvc
Fixed typo in comments.


Revision 3654 - Directory Listing
Modified Sat Sep 24 02:38:19 2005 UTC (14 years, 2 months ago) by dpvc
Updated to be able to handle empty anwswer blanks.  There is a new
parameter for the MultiPart object (allowBlankAnswers) that controls
whether the checker routine will be called even when there are blank
entries (normally, the checker is not called unless all the entries
are non-blank).  Use

$mp = MultiPart(1,2)->with(checkTypes=>0,allowBlankAnswers=>0); to have the checker routine called when answers are left blank. You can now also include blank answers in the list itself:$mp = MultiPart(1,2,"");

(there is no need to include allowBlankAnswers in this case, because
the blank string will take care of itself.


Revision 3638 - Directory Listing
Modified Mon Sep 19 00:58:35 2005 UTC (14 years, 2 months ago) by dpvc
Fixed bug where str_cmp("0") was changing the correct answer to "",
making it impossible to get correct.


Revision 3632 - Directory Listing
Modified Sat Sep 17 13:22:19 2005 UTC (14 years, 2 months ago) by dpvc
Improved layout and labeling of error messages.


Revision 3616 - Directory Listing
Modified Tue Sep 13 16:24:21 2005 UTC (14 years, 2 months ago) by dpvc
Fixed problem with recognizing MINF in NUM_CMP.


Revision 3615 - Directory Listing
Modified Tue Sep 13 14:07:32 2005 UTC (14 years, 2 months ago) by dpvc
The ORIGINAL_NUM_CMP was calling str_cmp as a code reference rather
than as the more modern AnswerEvaluator object.  This causes error
messages when string answers were used.  It now uses the evaluate()


Revision 3602 - Directory Listing
Modified Wed Sep 7 01:06:13 2005 UTC (14 years, 3 months ago) by dpvc
Added "strict" versions of the limited complex contexts that don't
allow operations within the real and imaginary parts.  Also cleaned up
some of the code and fixed a few situations that had been missed
before.

Note that in strict mode, e^(pi i) is accepted, but e^(pi/2 i) is
not.  Should that be changed?  It would be possible to make a context
in which a*e^(b*pi/c i) is accepted.


Revision 3601 - Directory Listing
Modified Tue Sep 6 21:02:05 2005 UTC (14 years, 3 months ago) by dpvc
Movified the copying of functions from Complex1:: into main:: to avoid
conflicts with the PGcommonFunctions.pl versions (these errors were
trapped, but still show up in the error log unnecessarily).

Also commented out some code that was not doing anything other than
producing error messages in the error log.  (It was left over from a
syntax check on the professor's answer, but the actual check was
removed, leaving a portion that tries to process the answer, but
usually fails (because things like "1+4i" need to be converted to
"1+4*i" before they can be used in PG_answer_eval, but that was not
being done).

Because of this, it is not possible currently to do cplx_cmp("1+4i"),
and instead you must to cplx_cmp(new Complex(1,4)).

To fix this, you would need to call check_syntax (and the other
filters that are called on the student's answer) before calling
PG_answer_eval.  Of course, you should only do this when the

I am going to work on a Legacy module like the ones for num_cmp and
fun_cmp to replace cplx_cmp, which should avoid these problems and
make the changes suggested above unnecessary.


Revision 3588 - Directory Listing
Modified Tue Aug 30 00:41:34 2005 UTC (14 years, 3 months ago) by dpvc
Added a parserCustomization.pl file that is loaded whenever the
Parser.pl file is.  This can be used on a course-by-course basis to
customize features of the Parser.  Some examples are listed in the
file.

You need to be VERY careful when doing this, as this will affect ALL
problems that use the Parser.  Your changes may cause some .pg files
to fail if they rely on the default behavior that you are changing.

If you wish to override settings in one of the predefined contexts
(like "Vector"), then define $context{Vector} as a copy of$Parser::Context::Default::context{Vector}, as in the commented out
examples.  Then Context("Vector") will use your copy rather than the
original.  If you were to change the version in
Parser::Context::Default, that would change the parser for ALL
courses, not just yours.


Revision 3577 - Directory Listing
Modified Fri Aug 26 04:19:09 2005 UTC (14 years, 3 months ago) by jj
When making on-the-fly image names, replace periods in the student login
name to avoid problems with pdflatex.  Changed the replacement in set
names to use the same new trick (the old way had an infintesimal chance
of collision).  The new scheme is first double all instances of "Q".  Then
replace periods with "-Q-".


Revision 3572 - Directory Listing
Modified Thu Aug 25 18:21:21 2005 UTC (14 years, 3 months ago) by jj
This makes the pg/lib/Parser/Legacy copy of PGanswermacros.pl the
official copy here.  This still leaves the original answer evaluators as
the default, but simplifies the update process, and we don't have to
maintain two copies of the original functions.


Revision 3566 - Directory Listing
Modified Thu Aug 25 00:35:18 2005 UTC (14 years, 3 months ago) by dpvc
In order to overcome an MSIE bug that affects jsMath, the call is
changed from jsMath.ProcessBeforeShowing() to jsMath.wwProcess(),
which is added by the jsMath-ww.js file.  (This routine uses an onload
handler for MSIE to put off the processing until MSIE can handle it
properly, but allows all others to do it at the usual time.)


Revision 3557 - Directory Listing
Modified Wed Aug 24 01:35:01 2005 UTC (14 years, 3 months ago) by jj
Hopefully fixed the logic of setting numerical tolerance defaults.


Revision 3556 - Directory Listing
Modified Tue Aug 23 23:59:46 2005 UTC (14 years, 3 months ago) by jj
Fixed problem with display_matrix_mm so its behaviour matches its
documentation.  This may break problems which relied on its previous
incorrect behavior.


Revision 3555 - Directory Listing
Modified Tue Aug 23 23:57:01 2005 UTC (14 years, 3 months ago) by dpvc
Use a default for the zeroLevelTol set in the current context.


Revision 3554 - Directory Listing
Modified Tue Aug 23 23:10:02 2005 UTC (14 years, 3 months ago) by jj
Deleted commented out line (which had been used for debugging).


Revision 3553 - Directory Listing
Modified Tue Aug 23 22:56:50 2005 UTC (14 years, 3 months ago) by jj
This adds wiring to the pg side for special bits of html to be included before/after the body of a problem.  You also need to update global.conf (and probably want to update Tasks.pm).

A commented out example in global.conf.dist shows how to use this to produce boxed problems a la the Union College server.  In this approach, the added parts are not used for problems rendered in the Library Browser or Problem Set Detail.

This addresses bug 817.  This solution may not be suitable for inclusion of needed bits for modes such as asciimath or tth because the those bits of html are probably needed for display in the Library Browser.  It is hard to distinguish bits which are always wanted, and those which are only wanted for use by Problem.


Revision 3547 - Directory Listing
Modified Mon Aug 22 01:26:04 2005 UTC (14 years, 3 months ago) by jj
Part of change dealing with bug 813.

Possible things still to do here:
change names of variables to reflect that they contain commands and
not scripts
have a variable for the path to cat
remove the scripts themselves


Revision 3544 - Directory Listing
Modified Sun Aug 21 21:46:49 2005 UTC (14 years, 3 months ago) by jj
Removed bits which were accidentally included during last commit.


Revision 3543 - Directory Listing
Modified Sun Aug 21 18:12:30 2005 UTC (14 years, 3 months ago) by jj
Should fix bug 696 by replacing consecutive whitespace with a single
space for answers in an individual ans_rule.


Revision 3540 - Directory Listing
Modified Sun Aug 21 05:21:07 2005 UTC (14 years, 3 months ago) by jj
level_curve_check now forces the use of the old style (not Parser::Legacy)


Revision 3539 - Directory Listing
Modified Sun Aug 21 00:04:40 2005 UTC (14 years, 3 months ago) by dpvc
Updated to handle jsMath version 2.


Revision 3520 - Directory Listing
Modified Sat Aug 13 21:45:46 2005 UTC (14 years, 3 months ago) by jj
Implimentation of COMMENT for comments to appear in the library browser.


Revision 3513 - Directory Listing
Modified Sat Aug 13 18:51:54 2005 UTC (14 years, 3 months ago) by jj
Fixed treatment of options in setting the mode and optional parameters
related to reducing unions.


Revision 3506 - Directory Listing
Modified Sat Aug 13 16:47:23 2005 UTC (14 years, 3 months ago) by jj
Moved a chunk of duplicated code to its own function, and tweaked the setting
of the context in a few cases.


Revision 3503 - Directory Listing
Modified Sat Aug 13 15:44:41 2005 UTC (14 years, 3 months ago) by dpvc
Fixed problem with call to $equation->Error (due to change in error-handling that allows for translation of error messages).  Revision 3502 - Directory Listing Modified Sat Aug 13 05:54:10 2005 UTC (14 years, 3 months ago) by jj If a problem file sets$refreshCachedImages=1 inside the pg file, then
cached copies of on the fly graphics are ignored and the graphic is
regenerated.


Revision 3501 - Directory Listing
Modified Sat Aug 13 01:40:45 2005 UTC (14 years, 3 months ago) by dpvc
Added differentiation of (single-variable) functions created with
parserFunction.


Revision 3489 - Directory Listing
Modified Fri Aug 12 18:43:25 2005 UTC (14 years, 3 months ago) by jj
Completed conversion of interval_cmp to use Parser objects.  Also, minor


Revision 3466 - Directory Listing
Modified Thu Aug 11 14:19:26 2005 UTC (14 years, 3 months ago) by dpvc
Added new Set object class to the Parser.  It implements a finite set
of real numbers, for use with unions and intervals.  E.g., (1,2) U {3}
or (1,2) U {3,4,5}.  You can created Set objects in your perl code via
the Set() command, e.g, Set(3,4,5) or Set("{1,2,3}").  You should set
the Context to Context("Interval") if you plan to use Set objects, as
this defined the braces to form sets (rather than using them as
parentheses, which is the default WW behavior).  Note that in Interval
context, you can NOT use braces as parentheses.

Current, Set objects are only allowed to be sets of numbers.  It would
be possible to extend that in the future.


Revision 3463 - Directory Listing
Modified Wed Aug 10 23:05:41 2005 UTC (14 years, 3 months ago) by jj
Default behavior of number_list_cmp set to be backward compatible
(no hints of any kind or partial credit).  These features can now be
activated by optional arguments.

Also improvements on parser-based interval_cmp.


Revision 3462 - Directory Listing
Modified Wed Aug 10 18:57:17 2005 UTC (14 years, 4 months ago) by jj
Hopefully improved some of how the temporary context is set for number_list_cmp.
Many whitespace changes (spaces to tabs).  Work in progress for a version of
interval_cmp which uses Parser, temporarily called interval_cmp2.


Revision 3457 - Directory Listing
Modified Wed Aug 10 14:22:48 2005 UTC (14 years, 4 months ago) by dpvc
Enable commas when mode=>"frac" is specified.


Revision 3455 - Directory Listing
Modified Mon Aug 8 15:56:09 2005 UTC (14 years, 4 months ago) by jj
Changed number_list_cmp to use Parser.


Revision 3400 - Directory Listing
Modified Fri Jul 22 22:59:12 2005 UTC (14 years, 4 months ago) by gage
Made listVariables and listFormVariables synonyms for listing all variables available to
the problem.


Revision 3393 - Directory Listing
Modified Wed Jul 20 18:30:59 2005 UTC (14 years, 4 months ago) by gage
Added a modification of the grades that shows where the
state_summary_msg can be added.  This message is
printed at the bottom of each problem page.  The current default
is a blank message, which means that the default message
defined in Problem.pm is printed.

There is currently no way to turn the message off entirely.  Perhaps
on the next revision.


Revision 3387 - Directory Listing
Modified Sat Jul 16 22:31:41 2005 UTC (14 years, 4 months ago) by gage
Added documentation for macros used in constructing
sequential problems.


Revision 3386 - Directory Listing
Modified Sat Jul 16 22:01:08 2005 UTC (14 years, 4 months ago) by gage
Macros that aid the construction sequentialProblems.  For these
problems certain sections of text are hidden until earlier

-- Mike


Revision 3385 - Directory Listing
Modified Sat Jul 16 21:59:35 2005 UTC (14 years, 4 months ago) by gage
Added support for sequentialProblems.


Revision 3383 - Directory Listing
Modified Fri Jul 15 02:57:01 2005 UTC (14 years, 4 months ago) by jj
Fixed typo.


Revision 3375 - Directory Listing
Modified Wed Jul 13 03:03:25 2005 UTC (14 years, 4 months ago) by dpvc
This file implements an easy way to add functions that are defined
within the Parser's Context.  See the comments in the file itself for
documentation on how to use it.


Revision 3371 - Directory Listing
Modified Tue Jul 12 22:39:56 2005 UTC (14 years, 4 months ago) by dpvc
Make error messages potentially localizable (by making them use
sprintf-style strings rather than variable subtitution).


Revision 3359 - Directory Listing
Modified Tue Jul 5 21:58:51 2005 UTC (14 years, 5 months ago) by sh002i
chech tthPreamble path and mtime to deal with changes to the file
between runs. this is necessary now that dangerousMacros.pl is cached.
Closes bug #798.


Revision 3346 - Directory Listing
Modified Mon Jul 4 19:52:38 2005 UTC (14 years, 5 months ago) by gage
Rewrote checkbox_cmp as an AnswerEvaluator


Revision 3340 - Directory Listing
Modified Mon Jul 4 15:22:40 2005 UTC (14 years, 5 months ago) by gage
Commenting out unused code.  This file still needs a lot of work.


Revision 3338 - Directory Listing
Modified Mon Jul 4 15:21:52 2005 UTC (14 years, 5 months ago) by gage
Restored str_filters -- removing it broke some of the other answer evaluators.

str_filters takes a string, filters it and then returns the filtered string.

The actual filters have been changed to work with answer hashes rather than with
strings, so str_filters warps the string in an answer hash before sending it through
the filters.

sorry for the breakage.

-- Mike


Revision 3334 - Directory Listing
Modified Sun Jul 3 20:10:37 2005 UTC (14 years, 5 months ago) by dpvc
Updates to allow string matches to be case-insensitive.  This is now
the default, and can be overridden in the Context by setting the
string's "caseSensitive" attribute.  e.g.:

would rewuire "FooBar" to be entered exactly as typed.


Revision 3333 - Directory Listing
Modified Sun Jul 3 20:06:33 2005 UTC (14 years, 5 months ago) by dpvc
Adjusted some spacing


Revision 3325 - Directory Listing
Modified Wed Jun 29 17:10:11 2005 UTC (14 years, 5 months ago) by gage
Added comments.


Revision 3324 - Directory Listing
Modified Wed Jun 29 16:19:42 2005 UTC (14 years, 5 months ago) by gage
Fixed bug in radio_cmp closing bug #258.  We now check to make
sure that only a single string is being passed and not an array.
The presence of two checked checkboxes triggers a warning.


Revision 3323 - Directory Listing
Modified Wed Jun 29 02:48:55 2005 UTC (14 years, 5 months ago) by gage
MASSIVE changes to str_cmp and related subroutines (mostly in STR_CMP).

a subroutine.


Revision 3320 - Directory Listing
Modified Tue Jun 28 19:38:16 2005 UTC (14 years, 5 months ago) by gage
Format changes.


Revision 3319 - Directory Listing
Modified Tue Jun 28 19:36:52 2005 UTC (14 years, 5 months ago) by gage
Many changes to this file.  I've fixed multi_cmp which
will check a comma separated string of answers.

I have commented out many other routines which do not appear
to be in use.


Revision 3314 - Directory Listing
Modified Fri Jun 24 20:11:23 2005 UTC (14 years, 5 months ago) by gage
Fixed conceptual error in compare_vec_solution.  This should fix bug
#670.  In my opinion the entire concept of vec_solution_cmp should be
reconsidered.  In solving an underdetermined linear equation of the form
Ax-b=0 it seems to me that the solutions answer in the form:
x= a +bt+cu+ds  where a,b,c,d are vectors should simply be evaluated
to see if it satisfies Ax-b=0 for 5 or six values of a,b,c,d  --
checking the solution should use a
vector valued version of fun_cmp.

As it is, the student's coefficients for a,b,c,d are compared with the
instructors to see if they span the same space. This is quite a bit more
complicated -- and indeed the method came up with the wrong answer.

I believe I have the method corrected, but I would suggest that this
answer evaluator be replaced with one which operates more
directly and is therefore easier to maintain.  Am I missing something in
this analysis?  Has someone else created answer evaluators for this type
of problem?

-- Mike


Revision 3305 - Directory Listing
Modified Tue Jun 21 19:56:00 2005 UTC (14 years, 5 months ago) by jj
New context which allows students to use C(n,r) and P(n,r) in their
answers.  To support this, the webwork versions of these functions
have been moved from PGaux... to PGcommon...


Revision 3297 - Directory Listing
Modified Thu Jun 16 04:04:23 2005 UTC (14 years, 5 months ago) by dpvc
Fixed typos in comments.


Revision 3294 - Directory Listing
Modified Wed Jun 15 23:55:17 2005 UTC (14 years, 5 months ago) by dpvc
Implements a Parser context in which only polynomials (of a single
variable) can be entered.  Only sums of multiples of powers of the
variable are allowed to be entered (though the coefficients can
contain mathematical operations).  An optional flag lets you specify
that only one term of each degree is allowed, so the student would
have to combine 1+x+x+x^2 to get 1+2x+x^2 in that case.


Revision 3270 - Directory Listing
Modified Mon Jun 6 00:01:44 2005 UTC (14 years, 6 months ago) by dpvc
This file implements a Multi-Part parser object that allows you to tie
several input blanks to a single answer checker that can compare the
student's answers in several blanks in order to determine which are
correct.

For example:

$mp = MultiPart("x^2",1,-1)->with( singleResult => 1, checker => sub { my ($correct,$student,$self) = @_;  # get the parameters
my ($f,$x1,$x2) = @{$student};      # extract the student answers
Value::Error("Function can't be the identity") if ($f == 'x'); Value::Error("Function can't be constant") if ($f->isConstant);
return $f->eval(x=>$x1) == $f->eval(x=>$x2);
},
);
.
BEGIN_TEXT
$$f(x)$$ = \{$mp->ans_rule(20)\} produces the same value at $$x$$ = \{$mp->ans_rule(10)\} as it does at $$x$$ = \{$mp->ans_rule(10)\}. END_TEXT ANS($mp->cmp);

This produces three answer blanks all tied to the same checker, which
is supplied by the user when the MultiPart is specified.  This one
checks if two inputs to a function provide the same output.

The answer blanks can each produce a separate row in the results area
at the top of the page, or they con be combined into a single row, as
in this case.  The checker routine can provide error messages for
individual parts via the setMessage() method, or for the problem as a
whole, as above.  Finally, the ans_array() method can be used to
produce answer blanks for individual entries for those objects that
support such arrays.

See the documentation at the top of the file for additional details.


Revision 3268 - Directory Listing
Modified Sun Jun 5 23:36:28 2005 UTC (14 years, 6 months ago) by dpvc
Removed some unused lines and comments.
Removed unnecessary spaces from around answer-rule-extension rules,
and made the TeX version of this rule be based on the width, as is
the case for ans_rule.


Revision 3267 - Directory Listing
Modified Sun Jun 5 23:25:20 2005 UTC (14 years, 6 months ago) by dpvc
Allow for vectors to be marked as Column Vectors.


Revision 3225 - Directory Listing
Modified Sat May 14 01:42:25 2005 UTC (14 years, 6 months ago) by dpvc
Changed loadMacros() to use search for amcros files via a
user-cusomizable path of directories.  This is specified in the
global.conf file, and can include any number of directories.

The path can include "." to mean look in the .pg file's directory.
This makes it possible to store special macros files with the code
that uses them.

By default, the path is ".", the course/templates/macro directory,
then the pg/macros directory (in that order).  This duplicates the
current behaviour, except for the ".", which is new.

You must also make the updates to the global.conf,
webwork2/lib/WeBWorK/PG.pm, and webwork2/lib/WeBWorK/PG/Local/pm files.


Revision 3220 - Directory Listing
Modified Mon May 2 00:56:19 2005 UTC (14 years, 7 months ago) by dpvc
Changed the call method to check if the function is actually defined
inthe parser before calling the parser method.  This allows things
like C(n,r) to be moved here but not automatically included in the
Context.


Revision 3208 - Directory Listing
Modified Tue Mar 29 19:16:36 2005 UTC (14 years, 8 months ago) by dpvc
Provide an easy means of generating a custom answer checker based on
an user-supplied subroutine.  Most of the work is done by the Parser's
answer checker framework, and the user's routine is called at the


Revision 3199 - Directory Listing
Modified Sun Mar 20 13:13:44 2005 UTC (14 years, 8 months ago) by dpvc
Implements an experimental answer checker for implicitly defined
curves and surfaces.


Revision 3196 - Directory Listing
Modified Wed Mar 16 13:40:29 2005 UTC (14 years, 8 months ago) by dpvc
Implements an answer evaluator that checks if a students answer
satisfies a given equality.  See the comments in the file for details


Revision 3195 - Directory Listing
Modified Wed Mar 16 13:36:33 2005 UTC (14 years, 8 months ago) by dpvc
Now that the uverloaded operators handle subclassing properly, we can
use promotePrecedence in the compare routines, just in case we define
a subclass with even HIGHER precedence!


Revision 3191 - Directory Listing
Modified Wed Mar 16 04:17:35 2005 UTC (14 years, 8 months ago) by dpvc
Fixed error with asec and acsc where the parameters were not being
passed properly.


Revision 3180 - Directory Listing
Modified Sat Feb 19 16:47:36 2005 UTC (14 years, 9 months ago) by gage
Small correction that makes sure that _init subroutines are read
properly.  The original works on some versions of perl, but not on
others.


Revision 3172 - Directory Listing
Modified Tue Feb 15 21:58:54 2005 UTC (14 years, 9 months ago) by dpvc
Updated the answer checkers so that you can more easily specify how
the correct answer shoudl be displayed.  In the past, you could use
something like Real(sqrt(2))->cmp(correct_ans=>"sqrt(2)") to do this,
but that is awkward.  Now the Compute() function (which parses and
then evaluates a string) sets things up so that the original string
will be what is used as the correct answer.  That means
Compute("sqrt(2)")->cmp will have the same result as the example
above.

You can also set the {correct_ans} properly of any Parser object to
have that value used as the correct answer.  For example

$x = Real(sqrt(2));$x->{correct_ans} = "sqrt(2)";
ANS($x->cmp) would also produce the same answer checker as the two previous examples. All three methods should work. Use the one that is most convenient for you.  Revision 3159 - Directory Listing Modified Thu Feb 10 22:34:01 2005 UTC (14 years, 9 months ago) by dpvc Fixed a problem that caused errors to occur when ImplicitPlane() was called with a formula whose constant term is a negative number that is produced by a computation.  Revision 3158 - Directory Listing Modified Wed Feb 9 18:36:18 2005 UTC (14 years, 9 months ago) by apizer Allow labels A - ZZ Arnie  Revision 3136 - Directory Listing Modified Sat Feb 5 14:07:55 2005 UTC (14 years, 10 months ago) by jj Work around IE bug for ordered lists. Maybe someday this can be undone.  Revision 3047 - Directory Listing Modified Sat Dec 18 21:52:58 2004 UTC (14 years, 11 months ago) by gage Changed comment to This answer is the same as the one you just submitted or previewed. This addreses bug #557  Revision 3039 - Directory Listing Modified Fri Dec 17 17:11:46 2004 UTC (14 years, 11 months ago) by gage Added a check to handle the case when the$errors flag was not defined.


Revision 2988 - Directory Listing
Modified Fri Nov 5 17:54:12 2004 UTC (15 years, 1 month ago) by jj
Avoids some name collisions for images converted from gif to png in
hardcopy, specifically if two problems have different gif images
with the same name (but the gifs are in different directories).  Now one
png won't overwrite the other.


Revision 2986 - Directory Listing
Modified Thu Nov 4 22:01:18 2004 UTC (15 years, 1 month ago) by apizer
relative tolerence was not being used correctly. Fixed this.

Arnie


Revision 2984 - Directory Listing
Modified Wed Nov 3 22:00:56 2004 UTC (15 years, 1 month ago) by dpvc
Modifications needed for the control of jsMath's "missing font"
message.


Revision 2982 - Directory Listing
Modified Wed Nov 3 21:27:42 2004 UTC (15 years, 1 month ago) by dpvc
Fixed an error where any plane is accepted if the d is 0 in
ax + by + cz = 0.


Revision 2958 - Directory Listing
Modified Sun Oct 24 14:36:35 2004 UTC (15 years, 1 month ago) by jj
This seems to fix bug 713.  I don't see why one would want the line below
commented out.


Revision 2957 - Directory Listing
Modified Sun Oct 24 14:33:36 2004 UTC (15 years, 1 month ago) by jj
Make combinations function C(n,k) return 0 when k>n, which is standard.
Maybe P(n,k) should do the same instead of throwing an error?


Revision 2935 - Directory Listing
Modified Tue Oct 19 00:20:02 2004 UTC (15 years, 1 month ago) by dpvc
Prevent automatically reducing negatives in student answer, so the
sign doesn't change behind our back.


Revision 2934 - Directory Listing
Modified Tue Oct 19 00:15:54 2004 UTC (15 years, 1 month ago) by dpvc
Handle error messages better.  Produce an error if the student answer
is a constant vector.  Prevent reduction of some negatives in order to
avoid -(a+bt).  Allow students to provide answer in terms of points
rather than vectors.


Revision 2933 - Directory Listing
Modified Tue Oct 19 00:11:50 2004 UTC (15 years, 1 month ago) by dpvc
Changed the order of variables in calls to Plane() so that it
corresponds to the usage in ImplictPlane().  Also fixed a typo in
capitalization of @N.


Revision 2932 - Directory Listing
Modified Tue Oct 19 00:08:04 2004 UTC (15 years, 1 month ago) by dpvc
Updated i(), j() and k() functions to check if the Parser is loaded,
and if not, return a value that will cause perl to report a better
error than calling the parser outside of its normal context.

Since the current answer checkers call perl directly to evaluate their
expressions, when a variable is used by a student that is not a
variable used by the checker, this can cause perl to try to parse
those variables as function calls, or other perl constructs (like
matches if you use 'm' or translations if you use 'y').  This is bad
(and is not a problem with the new parser).

In particular, if the student uses 'k' in a formula for which k is not
defined, for example, perl will try to call the k() function.


Revision 2912 - Directory Listing
Modified Wed Oct 13 01:35:51 2004 UTC (15 years, 1 month ago) by dpvc
Fixed typo in the comments.


Revision 2855 - Directory Listing
Modified Sat Oct 2 11:55:31 2004 UTC (15 years, 2 months ago) by dpvc
added generic string-only context, and converted contextABCD and
contextTF to use it.


Revision 2824 - Directory Listing
Modified Thu Sep 23 21:31:41 2004 UTC (15 years, 2 months ago) by dpvc
Two new Parser contexts, one for matching problems involving answers
like A, B, C and D, the other for T/F answers.  These contexts have an
advantage over the standard str_cmp() checker in that it will give


Revision 2781 - Directory Listing
Modified Tue Sep 14 21:36:45 2004 UTC (15 years, 2 months ago) by apizer
Fixed bug with useBaseTenLog

Arnie


Revision 2733 - Directory Listing
Modified Sat Sep 4 20:45:31 2004 UTC (15 years, 3 months ago) by dpvc
This file defined an answer checker for lists of variable names
(ordered or unordered, and optionally enclosed in parentheses).  You
can use this answer checker for questions that give a system of
equations and ask which variables are the dependent and which the
independent variables, for example.


Revision 2732 - Directory Listing
Modified Sat Sep 4 20:42:45 2004 UTC (15 years, 3 months ago) by dpvc
This file provides an answer checker that determines whether two
students answers compose to form a given function.  The student
answers are not allowed to be the identity function, or a function
that is trivially generated from the composition.

See the comments within the file for details about how to use it.


Revision 2731 - Directory Listing
Modified Sat Sep 4 20:40:43 2004 UTC (15 years, 3 months ago) by dpvc
This file defines a NumberWithUnits class for that provides an answer
checker for numbers with units.  It uses the same units package that
the standard answer checkers use, but this will eventually be replaced
by a more complete Units class within the parser itself.  The class
produces a preview string in which the units show appropriately.


Revision 2730 - Directory Listing
Modified Sat Sep 4 20:31:55 2004 UTC (15 years, 3 months ago) by dpvc
This file defines a DifferenceQuotient class that provides an answer
checker for difference quotients.  These include a variable "dx" (or a
user specified one) that can be used as part of the formula, and the
student must simplify the answer at least enough to remove the dx from
the denominator.


Revision 2729 - Directory Listing
Modified Sat Sep 4 20:29:52 2004 UTC (15 years, 3 months ago) by dpvc
This file provides some convenient tools for generating random points
and vectors that are not the zero vector, plus some other misc. utilities.


Revision 2728 - Directory Listing
Modified Sat Sep 4 20:28:33 2004 UTC (15 years, 3 months ago) by dpvc
This file defines a ParametricLine class that provides an answser
checker for lines in any dimension given parametrically.  The answer
checker will recognize the line even if the point and direction vector
used by the student are not the same as the ones used by the
professor.

See the comments within the file for examples of how to use it.


Revision 2727 - Directory Listing
Modified Sat Sep 4 20:26:23 2004 UTC (15 years, 3 months ago) by dpvc
This macro file defines an ImplicitPlane (and inplicit line) class of
Parser object that provides an answer checker for planes (or
hyperplanes in any dimension) of the form ax + by + cz = d.  Students
can provide their answer in any (linear) form that is equivalent to
this.

The class accepts several formats for specifying the correct-answer plane.


Revision 2726 - Directory Listing
Modified Sat Sep 4 20:21:32 2004 UTC (15 years, 3 months ago) by dpvc
These files provide contexts for the Parser in which only limited
operations are allowed.  The LimitedNumeric context is analogous to
strict_num_cmp().  The other contexts are similar, but for the
indicated type of answer.  In the LimitedVector context, for example,
the student can enter vectors, and can perform numeric operations
within the coordinates of the vectors, but can't perform vector
operations like vector addition or cross product.


Revision 2698 - Directory Listing
Modified Sat Aug 28 13:52:33 2004 UTC (15 years, 3 months ago) by dpvc
Add better error reporting in PG translator.  In particular, these

1)  produce a full stack trace when a .pg file dies, and
2)  convert (eval nnn) references to filenames, when
possible, in warn and die messages while processing a
.pg file.

There is also a change in the webwork tree that is needed to make this
all work, so be sure to apply updates in both trees.


Revision 2666 - Directory Listing
Modified Sun Aug 22 00:56:32 2004 UTC (15 years, 3 months ago) by dpvc
Formulas can now be compared even if their variables are complex
numbers, or even points or vectors!  This makes it possible to ask
students for complex functions like z^2+i and so on.

You can specify limits for variables either via
Context()->variables->set(x=>{limits=>[0,1]})  (for reals) or
Context()->variables->set(z=>{limits=>[[-2,2],[0,1]]}) (for complexes).
Similarly for points and vectors (where the number of sub arrays
depends on the dimension).  You can also give the limits for a
specific formula by assigning to its ->{limits} field:

$f = Formula("sqrt(x-10)");$f->{limits} = [10,12];

There are now named variable types for 'Point2D', 'Point3D',
'Vector2D' and 'Vector3D', in addition to 'Real' and 'Complex'.
You can also specify a variable type by giving an explicit instance of
a value of the given type.  E.g.

Context()->variables->add(r=>Vector(0,0,0));   # a vector in R^3
Context()->variables->add(X=>'Vector3D');      # a vector in R^3

There still needs to be more error checking in processing
user-supplied limits, but I'm not sure how much overhead is worth it.


Revision 2644 - Directory Listing
Modified Thu Aug 19 12:01:12 2004 UTC (15 years, 3 months ago) by dpvc
Make sure loadMacros() doesn't try to load these files more than once.


Revision 2626 - Directory Listing
Modified Mon Aug 16 19:44:26 2004 UTC (15 years, 3 months ago) by dpvc
One more fix for handling intervals properly (I think it's really
right this time).  Also, named constants that end in numbers will
produce TeX output with the number as a subscript (this was already
true for variable names).


Revision 2609 - Directory Listing
Modified Sat Aug 14 13:54:52 2004 UTC (15 years, 3 months ago) by dpvc
Added a String type to the Value package.  Mostly this is to make it
possible to generate an answer checker for it that uses the parser.
It also makes it more consistent for handling things like stringify,
especially when they are recursively called internally.

Added new default strings "NONE" and "DNE", since these get used a
lot.

Modified how the default parameters are set up for the answer
in type mismatch error messages.


Revision 2608 - Directory Listing
Modified Sat Aug 14 13:49:56 2004 UTC (15 years, 3 months ago) by dpvc
Added Infinity function (similar to i and pi) for creating infinity
constants.


Revision 2602 - Directory Listing
Modified Fri Aug 13 22:57:27 2004 UTC (15 years, 3 months ago) by dpvc
Changed the way the parser checks to see if it is loaded.


Revision 2590 - Directory Listing
Modified Wed Aug 11 18:02:44 2004 UTC (15 years, 3 months ago) by dpvc
Added Real() command to create fuzzy reals.


Revision 2576 - Directory Listing
Modified Wed Aug 4 20:52:28 2004 UTC (15 years, 4 months ago) by dpvc
Make Parser work with PGauxiliaryFunctions.pl, and add the macro files
needed to initialize the parser.


Revision 2574 - Directory Listing
Modified Wed Aug 4 20:23:11 2004 UTC (15 years, 4 months ago) by dpvc
Make Parser live nicely with Complex1.pm.

In particular, make the i() function determine whether it should
call the Complex::i() function or the Parser version.


Revision 2558 - Directory Listing
Modified Wed Jul 28 20:32:33 2004 UTC (15 years, 4 months ago) by sh002i
merged changes from rel-2-1-a1 -- stop using that branch.


Revision 2518 - Directory Listing
Modified Fri Jul 16 01:32:52 2004 UTC (15 years, 4 months ago) by gage
Will create the tempDirectory if it is missing.

this is useful if, for example, you switch the tmp directory from
webwork2/courses/courseName/html/tmp  to something like

/ww/htdocs/tmp/courseName

You don't want to create a courseName node for every course, you would
prefer to create only /ww/htdocs/tmp

the current version will create the node courseName if it doesn't exist
(or the name tmp in the first example) but will not create files
higher up the tree.


Revision 2488 - Directory Listing
Modified Sun Jul 11 21:36:26 2004 UTC (15 years, 4 months ago) by gage
Added better error messages.  Removed and extraneous slash.


Revision 2445 - Directory Listing
Modified Tue Jul 6 21:21:20 2004 UTC (15 years, 5 months ago) by jj
Allow psvn to equal 0.  It could happen in situations where a problem
isn't really assigned to the person.


Revision 2443 - Directory Listing
Modified Tue Jul 6 15:16:51 2004 UTC (15 years, 5 months ago) by jj
Allow new option for image.  extra_html_tags are added to the img tag of the
image.  Allows you to control the vertical alignment of an image.


Revision 2400 - Directory Listing
Modified Fri Jun 25 12:32:14 2004 UTC (15 years, 5 months ago) by dpvc
Fixed error in ANS_NUM_TO_NAME.


Revision 2396 - Directory Listing
Modified Thu Jun 24 22:07:22 2004 UTC (15 years, 5 months ago) by dpvc
Moved the <BR> in std_print_q from the beginning of a line to the end
of a line.  This prevents unexpected initial blank lines.


Revision 2393 - Directory Listing
Modified Thu Jun 24 21:01:23 2004 UTC (15 years, 5 months ago) by dpvc
Removed the experimental Parser-based implementations of i(), j() and k().


Revision 2392 - Directory Listing
Modified Thu Jun 24 21:00:26 2004 UTC (15 years, 5 months ago) by dpvc
Removed skip and rule from problem header generated in TeX mode here,
and let the snippets handle it (they were producing redundent rules).

Also removed some unwanted spaces in htmllink().

(Accidentally committed experimental change to dangerousMacros.pl, and
don't know how to prevent it at this point, so I'll commit a change
back to the original in a moment.)


Revision 2370 - Directory Listing
Modified Wed Jun 23 01:19:15 2004 UTC (15 years, 5 months ago) by sh002i
moved DISPLAY_MODE_FAILOVER into this file


Revision 2292 - Directory Listing
Modified Fri Jun 11 16:40:44 2004 UTC (15 years, 5 months ago) by dpvc
Fixed a bug in jsMath mode where it would not display < (when it looked like
part of a tag).

Also, removed unwanted spaced around input box.


Revision 2277 - Directory Listing
Modified Tue Jun 8 02:06:32 2004 UTC (15 years, 6 months ago) by sh002i
Reformatted the FUNCTION_CMP subroutine to make it more readable. Also,
one functional change:

< (defined ($inputs_ref->{$prev_ans_label} and $inputs_ref->{$prev_ans_label} =~/\S/) )
> (defined $inputs_ref->{$prev_ans_label} and $inputs_ref->{$prev_ans_label} =~/\S/)

I think the latter was what was intended.


Revision 2274 - Directory Listing
Modified Mon Jun 7 23:53:45 2004 UTC (15 years, 6 months ago) by sh002i
got rid of remaining calls to "wwerror". Fixes bug #530.


Revision 2270 - Directory Listing
Modified Mon Jun 7 11:52:47 2004 UTC (15 years, 6 months ago) by dpvc
Removed redundant HTML_jsMath check.


Revision 2267 - Directory Listing
Modified Mon Jun 7 01:34:34 2004 UTC (15 years, 6 months ago) by dpvc
Added jsMath support to these files.

Basically, HTML_jsMath should do whatever HTML_dpng mode does.  I simply included
it HTML_jsMath every time HTML_dpng appeared.


Revision 2253 - Directory Listing
Modified Sat Jun 5 16:13:33 2004 UTC (15 years, 6 months ago) by jj
Allow on-the-fly graphics in jsmath and asciimath modes.


Revision 2243 - Directory Listing
Modified Wed Jun 2 20:18:48 2004 UTC (15 years, 6 months ago) by jj
Fixed bug which caused some debug output to always appear.


Revision 2232 - Directory Listing
Modified Mon May 31 15:44:43 2004 UTC (15 years, 6 months ago) by jj
Re-use on-the-fly graphs, unless problem seed has change, source file has changed, or the problem is being rendered without being part of a real set.


Revision 2215 - Directory Listing
Modified Mon May 24 21:24:41 2004 UTC (15 years, 6 months ago) by jj
Allow default size of on the fly graphics to be set in global.conf, and make pop-ups of those graphs have windows closer to the size of the graph.  Also, pop-ups always make a new window - important for problems which make you compare two or more popped up graphs.


Revision 2206 - Directory Listing
Modified Mon May 24 17:51:44 2004 UTC (15 years, 6 months ago) by jj
Made on the fly graph names use problem seed rather than psvn.  It is a better identifier for pages like SetMaker.  Also made image names workable for set names containing periods (for the day when set names are free to contain periods).


Revision 2201 - Directory Listing
Modified Mon May 24 02:32:45 2004 UTC (15 years, 6 months ago) by dpvc
update to asciimath for MSIE.


Revision 2199 - Directory Listing
Modified Mon May 24 01:59:53 2004 UTC (15 years, 6 months ago) by dpvc
Support for asciimath.

Added preliminary support for asciimath rendering.  You must use a
MathML-enabled browser.


Revision 2193 - Directory Listing
Modified Mon May 24 01:05:03 2004 UTC (15 years, 6 months ago) by sh002i
failover data now passed in via %envir.


Revision 2173 - Directory Listing
Modified Sun May 23 01:33:22 2004 UTC (15 years, 6 months ago) by jj
Added helpLink for standard help pages in pg files.


Revision 2166 - Directory Listing
Modified Sat May 22 22:16:20 2004 UTC (15 years, 6 months ago) by dpvc
Files needed for jsMath display mode.


Revision 2155 - Directory Listing
Modified Sat May 22 18:04:23 2004 UTC (15 years, 6 months ago) by jj
Moved nicestring to PGbasicmacros.


Revision 2153 - Directory Listing
Modified Sat May 22 15:53:00 2004 UTC (15 years, 6 months ago) by gage
Removed warning messages.  The macroDirectory and courseScripts directory are now defined from the %envir
variable which is shared directly with the new Safe compartment rather than via calls to $main::macroDirectory which seemed to be unstable in some instances. I've left the FIXME sign in place just in case there are still problems.  Revision 2151 - Directory Listing Modified Sat May 22 01:23:17 2004 UTC (15 years, 6 months ago) by gage Roll back the previous changes. They were added to HEAD instead of to the experimental branch.  Revision 2150 - Directory Listing Modified Sat May 22 01:19:11 2004 UTC (15 years, 6 months ago) by gage Experimental refactorization of answer evaluators will take place on this branch.  Revision 2144 - Directory Listing Modified Fri May 21 23:58:13 2004 UTC (15 years, 6 months ago) by apizer Removed old commented out code dealing with PGsort. Arnie  Revision 2143 - Directory Listing Modified Fri May 21 23:56:48 2004 UTC (15 years, 6 months ago) by apizer Use the new PGsort which uses a true/false compare (e.g. < or lt ) rather than a -1,0,1 compare (e.g. <=> or cmp ). Arnie  Revision 2061 - Directory Listing Modified Sun May 9 17:45:41 2004 UTC (15 years, 7 months ago) by gage Modifications to PGbasicmacros and PGanswermacros which check whether a function answer is the same as the function answer submitted previously. Gives warning message if the same incorrect answers is submitted twice in a row. The functions must both compile in order to recognize that they are the same answer. Two syntactically incorrect entries will not be recognized as equivalent, even if they are in some sense.  Revision 2057 - Directory Listing Modified Sat May 8 22:53:03 2004 UTC (15 years, 7 months ago) by gage Preliminary changes that may eventually allow us to solve the be_strict problem for 5.8.0  Revision 2056 - Directory Listing Modified Sat May 8 22:51:38 2004 UTC (15 years, 7 months ago) by gage Updating answer evaluators in PGanswermacros.pl Beginning to include code that will allow us to check whether the current answer is the same as the one submitted previously.  Revision 1964 - Directory Listing Modified Thu Apr 22 14:39:28 2004 UTC (15 years, 7 months ago) by jj Added convention to beginproblem that point value of "" means that we don't print the point value at all. It will also supress printing of the filename if someone is supposed to have filenames printed, which is appropriate for the one known time this convention is used.  Revision 1943 - Directory Listing Modified Sun Apr 4 20:05:34 2004 UTC (15 years, 8 months ago) by jj Synched with ASU version. Defunct functions deleted, new functions added, and documentation added.  Revision 1941 - Directory Listing Modified Sun Apr 4 15:56:59 2004 UTC (15 years, 8 months ago) by jj WW 2 didn't like the top line. Inserting a comment seems to fix it. Also corrected a typo.  Revision 1932 - Directory Listing Modified Sat Apr 3 15:44:55 2004 UTC (15 years, 8 months ago) by jj Added support for useBaseTenLog for ww2.  Revision 1896 - Directory Listing Modified Wed Mar 17 00:45:28 2004 UTC (15 years, 8 months ago) by gage Changed the naming of arrays from ArRaY[0,0,0] to ArRaY__0:0:0:__ This involved changes in PG.pl and PGmorematrixmacros (ans_array_filter) Made other cosmetic fixes to code. Added names to many filters to help with debugging. It seems to work for now.  Revision 1834 - Directory Listing Modified Thu Mar 4 17:41:06 2004 UTC (15 years, 9 months ago) by gage Added comments  Revision 1831 - Directory Listing Modified Thu Mar 4 13:06:32 2004 UTC (15 years, 9 months ago) by gage Changed documentation spacing  Revision 1812 - Directory Listing Modified Mon Feb 16 20:34:01 2004 UTC (15 years, 9 months ago) by gage This is a new attempt to fix the problem that there was no preview string if the units were incorrect. The previous fix caused difficulties if strings were entered for numerical answers. The new code has been added to the subroutine fix_answers_for_display which already performed answer cleanup of various kinds.  Revision 1797 - Directory Listing Modified Thu Feb 12 20:26:26 2004 UTC (15 years, 9 months ago) by toenail Reordered pre-filters in NUM_CMP to allow for latex previews of answers with no units  Revision 1791 - Directory Listing Modified Thu Feb 12 14:23:36 2004 UTC (15 years, 9 months ago) by gage Added RECORD_FORM_DATA for making sticky form data which is not specifically related to answers.  Revision 1785 - Directory Listing Modified Mon Feb 9 17:18:39 2004 UTC (15 years, 10 months ago) by gage Modifications to checkbox_cmp to include preview_latex_string. this completes the squashing of bug #400  Revision 1784 - Directory Listing Modified Mon Feb 9 17:09:06 2004 UTC (15 years, 10 months ago) by gage Made changes to the check box macros so that they will remain sticky when more than one check box is checked. Involves splitting a null separated string ( or perhaps converting a reference to an array). uses a new subroutine contained_in(elem, array_or_arrray_ref_or_null_separated_string) this resolves part of bug #400 --Mike  Revision 1780 - Directory Listing Modified Fri Feb 6 02:55:55 2004 UTC (15 years, 10 months ago) by gage Corrected format of one line. --Mike  Revision 1765 - Directory Listing Modified Fri Jan 30 18:04:37 2004 UTC (15 years, 10 months ago) by jj Fix bug from last fix, and a second bug caused by$Global::htmlModeDefault
being accidentally called $Global::htmldisplayModeDefault in this file.  Revision 1764 - Directory Listing Modified Fri Jan 30 15:28:46 2004 UTC (15 years, 10 months ago) by jj Some sites use only one display mode. In that case, the "choice of one" display mode should not be displayed.  Revision 1758 - Directory Listing Modified Mon Jan 26 16:36:29 2004 UTC (15 years, 10 months ago) by jj If LaTeX formula ends in a backslash after removing training spaces, then we removed too much space, so we add a space to the end of it so it ends '\ \)'.  Revision 1710 - Directory Listing Modified Tue Jan 6 14:04:34 2004 UTC (15 years, 11 months ago) by apizer fixed bug in call to Romberg routine. Romberg now requires parameters of the form "level => 8". This was fixed previously I thought. Not sure how the fix was lost. Arnie  Revision 1690 - Directory Listing Modified Sun Dec 28 19:46:57 2003 UTC (15 years, 11 months ago) by gage Zeroed the variable storing the responses to questionnaires. Should fix the error on questionnaires revealed by the persistance of mod_perl modules. Changed warning message in dangerousMacros.pl to more accurately describe what is wrong when the gif2eps script cannot be executed. (Based on actual experience running a course on webwork.math.rochester.edu -- I couldn't remember what my own warning message implied.) --Mike  Revision 1620 - Directory Listing Modified Fri Nov 7 14:55:12 2003 UTC (16 years, 1 month ago) by apizer fixed a bug in line 2469 replacing \npsvnNumber by \n$psvnNumber

Arnie


Revision 1550 - Directory Listing
Modified Tue Sep 30 01:18:25 2003 UTC (16 years, 2 months ago) by sh002i
check to see if $envir->{texDisposition} is defined before trying to access it.  Revision 1534 - Directory Listing Modified Thu Sep 25 05:42:31 2003 UTC (16 years, 2 months ago) by sh002i removed unneeded #! line  Revision 1528 - Directory Listing Modified Thu Sep 25 01:29:21 2003 UTC (16 years, 2 months ago) by sh002i fixed #! line  Revision 1525 - Directory Listing Modified Thu Sep 25 00:29:59 2003 UTC (16 years, 2 months ago) by sh002i removed unneeded #! lines  Revision 1506 - Directory Listing Modified Fri Sep 19 01:30:13 2003 UTC (16 years, 2 months ago) by gage Fixed check_string filter so that it places a value in preivew_text_string and in preview_latex_string in the answer hash. For example entering DNE did not show up in answer preview, which bothered some students. --Mike  Revision 1505 - Directory Listing Modified Mon Sep 15 05:47:38 2003 UTC (16 years, 2 months ago) by lr003k It seems as though the way I tried to fix long decimals isn't working the way I wanted it too, so I've commented it out for now. ~Liam  Revision 1494 - Directory Listing Modified Tue Sep 9 02:06:31 2003 UTC (16 years, 3 months ago) by jj Put mbox around entries of a matrix in TeX-based modes to protect math inside of them.  Revision 1490 - Directory Listing Modified Sun Sep 7 17:40:54 2003 UTC (16 years, 3 months ago) by gage Corrected a typo in EV4 --Mike  Revision 1483 - Directory Listing Modified Fri Sep 5 13:19:45 2003 UTC (16 years, 3 months ago) by gage Added EV4 routine supplied by Zig Fiedorowicz --Mike  Revision 1463 - Directory Listing Modified Fri Aug 15 16:51:09 2003 UTC (16 years, 3 months ago) by gage Changes to mail that make it work properly with ALLOW_MAIL_TO --Mike  Revision 1462 - Directory Listing Modified Fri Aug 15 16:49:42 2003 UTC (16 years, 3 months ago) by gage Made changes to rh_sticky_answers so that they are addressed correctly. Long term I would like to remove all references to main:: except for those in the init routines. The references can be replaced by a locally defined pointer to the value in the current safe compartment. This procedure should make it easier to maintain the macros. All references to global variables will occur in the init routine. --Mike  Revision 1456 - Directory Listing Modified Thu Aug 14 16:10:01 2003 UTC (16 years, 3 months ago) by gage At least a temporary fix for mail_answers_to2 These evaluators are run in the grader and the environment variables have disappeared?? I can't find them at any rate. this is at best a temporary fix until we get the global variable situation under control when using cached code. --Mike  Revision 1455 - Directory Listing Modified Thu Aug 14 13:27:54 2003 UTC (16 years, 3 months ago) by gage Made changes to anstext and a few other answer evaluators so that they evaluated "main::" correctly. Still need to fix install problem grader --Mike  Revision 1453 - Directory Listing Modified Wed Aug 6 18:59:26 2003 UTC (16 years, 4 months ago) by jj New file with linear programming simplex method related macros.  Revision 1452 - Directory Listing Modified Tue Aug 5 16:37:10 2003 UTC (16 years, 4 months ago) by jj Revised documentation for test_points.  Revision 1451 - Directory Listing Modified Tue Aug 5 16:34:38 2003 UTC (16 years, 4 months ago) by jj Added some documentation for test_points.  Revision 1450 - Directory Listing Modified Tue Aug 5 16:24:48 2003 UTC (16 years, 4 months ago) by jj Added option of test_points to fun_cmp.  Revision 1390 - Directory Listing Modified Tue Jul 15 17:55:32 2003 UTC (16 years, 4 months ago) by apizer Back off from Cervone's new definition of BR Arnie  Revision 1385 - Directory Listing Modified Mon Jul 14 20:22:19 2003 UTC (16 years, 4 months ago) by apizer Fixed a bug in Davide Cervone's changes Arnie  Revision 1379 - Directory Listing Modified Mon Jul 14 15:16:30 2003 UTC (16 years, 4 months ago) by apizer Incorporated Davide Cervone's improvements and bug fixes. This mostly involved removing unwanted spaces, etc. Arnie  Revision 1365 - Directory Listing Modified Fri Jul 11 20:18:57 2003 UTC (16 years, 5 months ago) by lr003k In order to make ans_array entries "sticky" I've had to change some stuff. The answer labels for these entries are now put into$main::PG_FLAGS{ANSWER_ENTRY_ORDER} as an array reference in PG.pl.
In processProblem8.pl the labels are caught again in the subroutines logCourseData and encode_submitted_answers. It is important that
they're caught there rather than earlier because then the translator would think that every entry was it's own answer.
Professor Gage says that processProblem8.pl is no longer used in webwork2, and he says he'll fix this there.


Revision 1351 - Directory Listing
Modified Fri Jul 11 16:30:04 2003 UTC (16 years, 5 months ago) by apizer
incorporate some of davide Cervone'e changes

Arnie


Revision 1332 - Directory Listing
Modified Wed Jul 9 20:29:04 2003 UTC (16 years, 5 months ago) by lr003k
Fixed a rounding problem.


Revision 1331 - Directory Listing
Modified Wed Jul 9 20:28:40 2003 UTC (16 years, 5 months ago) by lr003k
Removed the last change, it's now handled in display_matrix.


Revision 1328 - Directory Listing
Modified Wed Jul 9 19:45:40 2003 UTC (16 years, 5 months ago) by gage
Added $to PG_random_generator in the subroutine SRAND. Why it worked before as a bare word is anyone's guess. Now that$PG_random_generator
is a local variable the bareword no longer works properly.
--Mike


Revision 1327 - Directory Listing
Modified Wed Jul 9 18:06:52 2003 UTC (16 years, 5 months ago) by lr003k
Added a pretty_matrix sub routine to fix some rounding problems.


Revision 1319 - Directory Listing
Modified Mon Jul 7 02:27:15 2003 UTC (16 years, 5 months ago) by jj
Made box option functional for display_matrix.  It lets you specify an
element to be boxed.


Revision 1318 - Directory Listing
Modified Mon Jul 7 01:34:38 2003 UTC (16 years, 5 months ago) by jj
Fixed bugs in matrix display when top_labels are present.


Revision 1317 - Directory Listing
Modified Fri Jul 4 05:08:37 2003 UTC (16 years, 5 months ago) by jj
Fixed tick marks for graphs - x/y values were reversed.


Revision 1314 - Directory Listing
Modified Wed Jul 2 15:27:59 2003 UTC (16 years, 5 months ago) by apizer
Add backslash to list of characters filtered out of sticky answers

Arnie


Revision 1312 - Directory Listing
Modified Tue Jul 1 17:55:12 2003 UTC (16 years, 5 months ago) by gage
Fixed error in sourceAlias.  The variable is %main::envir not
$main::envir !!! --Mike  Revision 1311 - Directory Listing Modified Tue Jul 1 15:36:43 2003 UTC (16 years, 5 months ago) by gage Changed the defintion of *i to be inside the Complex package. this and the change to dangerousMacros seems to have cured bug #116 In dangerousMacros, I've added sub i {Complex::i}; after sub i; --Mike  Revision 1305 - Directory Listing Modified Tue Jul 1 00:48:01 2003 UTC (16 years, 5 months ago) by gage Latest attempt to get a version of dangerousMacros.pl that will work with both 5.6.1 adn 5.6.0 --Mike  Revision 1304 - Directory Listing Modified Mon Jun 30 23:24:29 2003 UTC (16 years, 5 months ago) by gage removed unnecessary "no strict, use strict" pair --Mike  Revision 1303 - Directory Listing Modified Mon Jun 30 20:36:57 2003 UTC (16 years, 5 months ago) by apizer added missing hyperbolic, inverse trig, and inverse hyperbolic functions cintributed by Davide Cervone Arnie  Revision 1298 - Directory Listing Modified Fri Jun 27 19:53:50 2003 UTC (16 years, 5 months ago) by gage Fixed typo in beginproblem --Mike  Revision 1294 - Directory Listing Modified Fri Jun 27 13:57:09 2003 UTC (16 years, 5 months ago) by lr003k Added a vec_solution_cmp. Used for problems where the answer needs to be v1_s*v2+t*v3 where v1,v2,and v3 are vectors. v1 has to be a linear combination of the professors answer where the first one has a nonzero coefficient. The others are a basis, and are compared with compare_basis.  Revision 1286 - Directory Listing Modified Thu Jun 26 21:08:47 2003 UTC (16 years, 5 months ago) by gage Make sure that the local my variables are updated in PGbasicmacros as well as the variables in main::. --Mike  Revision 1280 - Directory Listing Modified Thu Jun 26 17:42:18 2003 UTC (16 years, 5 months ago) by malsyned Merged the changes needed to work with the new WW2 translator optimizations into the main pg branch.  Revision 1278 - Directory Listing Modified Thu Jun 26 13:55:43 2003 UTC (16 years, 5 months ago) by lr003k Matrices now displayed in previewer.  Revision 1276 - Directory Listing Modified Wed Jun 25 16:26:42 2003 UTC (16 years, 5 months ago) by lr003k committed the wrong thing  Revision 1274 - Directory Listing Modified Wed Jun 25 15:43:03 2003 UTC (16 years, 5 months ago) by lr003k fixed a bug  Revision 1267 - Directory Listing Modified Tue Jun 24 15:25:58 2003 UTC (16 years, 5 months ago) by gage Changes that allow these files to work with caching version of Webwork2.0 -- optimized for speed --Mike  Revision 1266 - Directory Listing Modified Tue Jun 24 15:24:09 2003 UTC (16 years, 5 months ago) by gage Changes that allow these files to work with optimized version of WeBWorK2.0 which uses caching of macro files. --Mike  Revision 1265 - Directory Listing Modified Tue Jun 24 14:58:03 2003 UTC (16 years, 5 months ago) by lr003k Made the code more object-oriented  Revision 1253 - Directory Listing Modified Mon Jun 23 18:34:44 2003 UTC (16 years, 5 months ago) by gage More changes to make these files compatible with WeBWorK2.0 and cached compartments -- Mike  Revision 1251 - Directory Listing Modified Mon Jun 23 16:24:32 2003 UTC (16 years, 5 months ago) by gage Changes made to PGbasicmacros so that it can be cached. Changes should be compatible with webwork1.8 --MIke  Revision 1250 - Directory Listing Modified Mon Jun 23 15:43:11 2003 UTC (16 years, 5 months ago) by gage Made changes required to allow caching of these files. My tests indicate that these changes are compatible with webwork1.8 One possible problem might be the mail-to answer macros which access the environement variable directly I think I have this properly patched, but it has not been tested yet. --Mike  Revision 1238 - Directory Listing Modified Fri Jun 20 19:05:38 2003 UTC (16 years, 5 months ago) by lr003k Matrices now take math constants.  Revision 1237 - Directory Listing Modified Fri Jun 20 18:59:44 2003 UTC (16 years, 5 months ago) by lr003k Student answer now displayed in a html table given by jones's display matrix method in PGmatrixmacros. The braces were giving me headaches so I set the option to none, at least for now.  Revision 1161 - Directory Listing Modified Fri Jun 13 17:36:10 2003 UTC (16 years, 5 months ago) by lr003k Was not accepting negative answers, the sign problem is fixed now.  Revision 1158 - Directory Listing Modified Fri Jun 13 17:12:18 2003 UTC (16 years, 5 months ago) by sh002i rollback change to the way ImageGenerator::add is called. -sam  Revision 1155 - Directory Listing Modified Fri Jun 13 02:33:56 2003 UTC (16 years, 5 months ago) by sh002i changes to the math_ev3 functions in PGbasicmacros.pl to support new interface to ImageGenerator and some cleanup. -sam  Revision 1140 - Directory Listing Modified Thu Jun 12 19:14:38 2003 UTC (16 years, 5 months ago) by gage Answer labels are now prefixed by a Quiz prefix which allows more than one problem to appear on the same page. -- Mike  Revision 1127 - Directory Listing Modified Wed Jun 11 19:18:19 2003 UTC (16 years, 6 months ago) by lr003k Was working from an older copy before my last update, sorry.  Revision 1126 - Directory Listing Modified Wed Jun 11 18:34:40 2003 UTC (16 years, 6 months ago) by jj Fixed isPrime, which had said that 4 was prime, and shortened its loop.  Revision 1123 - Directory Listing Modified Wed Jun 11 15:28:47 2003 UTC (16 years, 6 months ago) by lr003k Ok, there is the ans_array_filter added which allows for the answer to be coming from the ans_array.  Revision 1122 - Directory Listing Modified Wed Jun 11 14:54:27 2003 UTC (16 years, 6 months ago) by lr003k Added two methods for naming the blanks in ans_array. The names now have the format ArRaY3[1,0,2] (this would be the name of the 3rd answer (it's taken from main::answer_count which is then incremented so the answer before it is AnSwEr2 and the answer after it is AnSwEr4) and it would be the second matrix or vector in the answer ( I need to take multiple vectors for things like basis cmp, so ans_array_extension puts the vectors in different locations) and the 0 and 2 are row and column in that matrix or vector.  Revision 1121 - Directory Listing Modified Wed Jun 11 14:47:59 2003 UTC (16 years, 6 months ago) by lr003k I removed the subroutine answer_matrix since it really belongs in basic macros with the other answer blank methods.  Revision 1120 - Directory Listing Modified Wed Jun 11 14:46:35 2003 UTC (16 years, 6 months ago) by lr003k I've added ans_array and ans_array extension and moved answer_matrix here since this is probably where it should be with all the other answer blank methods. I still have to comment the code.  Revision 1115 - Directory Listing Modified Wed Jun 11 02:43:42 2003 UTC (16 years, 6 months ago) by apizer Fixed error concerning variable$string.
Cleaned up how polynomials are displayed.

Arnie


Revision 1102 - Directory Listing
Modified Tue Jun 10 16:23:47 2003 UTC (16 years, 6 months ago) by lr003k
ok, I'm pretty sure that this one is the one we want. Unfortunately the other one was an old one, that cmpl_cmp4 was not used
anywhere and I had removed it later, and this one has multi_cmp. Sorry for all the confusion.


Revision 1097 - Directory Listing
Modified Mon Jun 9 23:26:19 2003 UTC (16 years, 6 months ago) by jj
Slightly better handling of top_labels in tth mode when force_tex is set; namely
it ignores the labels instead of letting the TeX code confuse tth so badly that
the matrix is basically lost.


Revision 1091 - Directory Listing
Modified Mon Jun 9 21:53:11 2003 UTC (16 years, 6 months ago) by gage
Added > /dev/null tags to the commands which run tex and dvi for
HTML_img mode.  These will probably work now for the most part.
I don't know how well this will work if there is an error in
getting either tex or dvips to run.

For many problems using WeBWorK1.8 and typeset3 mode  thing work fine.
Please submit example problems where the images don't show up or some
other image related error occurs as bugs to
http://webwork3.math.rochester.edu/bugzilla
--Mike


Revision 1090 - Directory Listing
Modified Mon Jun 9 21:24:08 2003 UTC (16 years, 6 months ago) by gage
Fixed a patch to round (and Round) originally due to Mark Schmitt
which didn't get included in the latest updates and transfer to pg
--Mike


Revision 1088 - Directory Listing
Modified Mon Jun 9 21:05:11 2003 UTC (16 years, 6 months ago) by gage
Commented out code  that is not used (I believe)

comp_cplx4 and cplx_cmp4

-- Mike


Revision 1080 - Directory Listing
Modified Mon Jun 9 17:49:36 2003 UTC (16 years, 6 months ago) by apizer
remove unneccsary shebang lines

Arnie


Revision 1072 - Directory Listing
Modified Mon Jun 9 02:27:04 2003 UTC (16 years, 6 months ago) by gage
The file PGcomplexmacros.pl is partially in sync with the version in
subroutines from Liam.
--Mike


Revision 1071 - Directory Listing
Modified Mon Jun 9 02:26:17 2003 UTC (16 years, 6 months ago) by gage
Bringing these files in sync with the latest versions in the
courseScripts CVS
--Mike


Revision 1069 - Directory Listing
Modified Mon Jun 9 02:01:41 2003 UTC (16 years, 6 months ago) by gage
Bringing this version into sync with the latest version in
courseScripts.
In particular dvipng is active in this script to make HTML_img
useable in WeBWorK2.0.  Not yet finished with this.
--Mike


Revision 1068 - Directory Listing
Modified Mon Jun 9 01:59:37 2003 UTC (16 years, 6 months ago) by gage
Updating the copy of PGchoicemacros.pl to the latest version available
in courseScripts
--Mike


Revision 1066 - Directory Listing
Modified Mon Jun 9 00:54:33 2003 UTC (16 years, 6 months ago) by gage
Adding a newer version of PGmatrixmacros.pl
--Mike


Revision 1064 - Directory Listing
Modified Mon Jun 9 00:34:51 2003 UTC (16 years, 6 months ago) by gage
Adding recent macro files to the pg collection
--Mike


Revision 1050 - Directory Listing
Added Fri Jun 6 21:39:42 2003 UTC (16 years, 6 months ago) by sh002i
moved PG modules and macro files from webwork-modperl to pg
-sam


Sort log by: