Log of /trunk/pg
Directory Listing
Revision
3556 -
Directory Listing
Modified
Tue Aug 23 23:59:46 2005 UTC (7 years, 9 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 (7 years, 9 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 (7 years, 9 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 (7 years, 9 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 (7 years, 9 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 (7 years, 9 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 (7 years, 9 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 (7 years, 9 months ago) by
jj
level_curve_check now forces the use of the old style (not Parser::Legacy)
answer evaluators resolving bug 820.
Revision
3539 -
Directory Listing
Modified
Sun Aug 21 00:04:40 2005 UTC (7 years, 9 months ago) by
dpvc
Updated to handle jsMath version 2.
Revision
3536 -
Directory Listing
Modified
Sat Aug 20 23:07:13 2005 UTC (7 years, 9 months ago) by
dpvc
Added code to handle the case where the professor's answer is in
expondential notation using a little e instead of a big one. (Perl
will convert .0000001 to 1E-07, for example, before it is passed to
num_cmp.)
Revision
3531 -
Directory Listing
Modified
Mon Aug 15 22:42:37 2005 UTC (7 years, 9 months ago) by
dpvc
Fixed more undefined values
Revision
3529 -
Directory Listing
Modified
Mon Aug 15 01:50:21 2005 UTC (7 years, 9 months ago) by
dpvc
Changed Context() call to direct reference to context, so as not to
leave the wrong content selected as the current one.
Revision
3525 -
Directory Listing
Modified
Sun Aug 14 00:23:10 2005 UTC (7 years, 9 months ago) by
dpvc
Added methods for testing containment of one set in another, and so
on. These include:
$A->contains($B) Test if $B is a subset of $A (or an
element of $A if $B$ is a real number).
$A->isSubsetOf($B) Test if $A is a subset of $B.
$A->isEmpty True if $A is the empty set.
$A->intersects($B) True if $A and $B have numbers in common.
$A->intersect($B) The set of numbers common to both $A and $B.
Be careful of the difference between "intersect" and "intersects".
One is a set the other a true/false value.
Revision
3524 -
Directory Listing
Modified
Sun Aug 14 00:18:46 2005 UTC (7 years, 9 months ago) by
dpvc
Added a copy method that produces a deep copy of the given object.
This probably should be used through the new() methods to ducplicate
the data used when creating an object, otherwise changes to the
sub-objects will cause changes to the outer one. For example, if an
interval is used to create a union and then the internal data for the
interval is changed by hand, the changes will also occur in the
union. That is, Value objects contain their data by REFERENCE. This
should probably be changed, but fortunately, no one should be
adjusting the internal structure of the objects by hand.
Revision
3523 -
Directory Listing
Modified
Sat Aug 13 22:38:39 2005 UTC (7 years, 9 months ago) by
dpvc
Added canBeInUnion and isSetOfReals methods to the Parser package
(similar to the ones in the Value package), replacing the
canBeInterval flag and other ad hoc checks.
Removed ability to form interval like [a] now that we have sets.
Revision
3522 -
Directory Listing
Modified
Sat Aug 13 22:34:31 2005 UTC (7 years, 9 months ago) by
dpvc
Maintain parentheses correctly when converting to perl.
Revision
3520 -
Directory Listing
Modified
Sat Aug 13 21:45:46 2005 UTC (7 years, 9 months ago) by
jj
Implimentation of COMMENT for comments to appear in the library browser.
Revision
3518 -
Directory Listing
Modified
Sat Aug 13 21:34:50 2005 UTC (7 years, 9 months ago) by
dpvc
Allow a list of numbers to be converted to a set.
Revision
3517 -
Directory Listing
Modified
Sat Aug 13 21:31:46 2005 UTC (7 years, 9 months ago) by
dpvc
Pass the canBeInUnion call on to the Formula's root node
Revision
3516 -
Directory Listing
Modified
Sat Aug 13 20:59:28 2005 UTC (7 years, 9 months ago) by
dpvc
Added isSetOfReals and canBeInUnion methods to the Value objects, and
replaced the ad hoc tests for these conditions to call these
routines.
Cleaned up the make() methods for Intervals, Sets and Unions, and
improved the new() methods to handle more cases better.
Fixed Value::makeValue() to handle an array reference correctly.
I don't THINK any of this will break anything. :-)
Revision
3515 -
Directory Listing
Modified
Sat Aug 13 20:55:35 2005 UTC (7 years, 9 months ago) by
dpvc
Make formulas that produce lists get default open and close parens,
and have them retained in Formula() results.
Revision
3514 -
Directory Listing
Modified
Sat Aug 13 19:10:41 2005 UTC (7 years, 9 months ago) by
dpvc
Make sure the singletons are sorted before comparing them to the
intervals (and each other).
Revision
3513 -
Directory Listing
Modified
Sat Aug 13 18:51:54 2005 UTC (7 years, 9 months ago) by
jj
Fixed treatment of options in setting the mode and optional parameters
related to reducing unions.
Revision
3512 -
Directory Listing
Modified
Sat Aug 13 18:19:01 2005 UTC (7 years, 9 months ago) by
dpvc
Can't use the length check when reducing unions, since it could
contain a single set that is not reduced, and we need to check that,
too.
Revision
3511 -
Directory Listing
Modified
Sat Aug 13 17:50:11 2005 UTC (7 years, 9 months ago) by
dpvc
Fixed reduction warnings for individual sets, intervals and unions (in
making it work for lists, I broke it for the single items).
Revision
3510 -
Directory Listing
Modified
Sat Aug 13 17:32:58 2005 UTC (7 years, 9 months ago) by
dpvc
Fixed a problem with redefine when used with classes that store their
data in a on-standard form (i.e., by overridding the create()
method). Now they can define uncreate() to get the original data back
for use with redefine().
Revision
3509 -
Directory Listing
Modified
Sat Aug 13 17:24:00 2005 UTC (7 years, 9 months ago) by
dpvc
Fixed mad error message (change needed due to new message translation
facility).
Revision
3508 -
Directory Listing
Modified
Sat Aug 13 16:58:56 2005 UTC (7 years, 9 months ago) by
dpvc
Added isReduced method to tell if a Union, Set or Interval is already
reduced. Fixed up sort to use CORE::sort, and added sort and reduce
to Intervals, which do nothing, but are there for consistency.
Revision
3507 -
Directory Listing
Modified
Sat Aug 13 16:57:14 2005 UTC (7 years, 9 months ago) by
dpvc
Fixed error in testing is a union is reduced (didn't test if sets
within a union were reduced properly).
Revision
3506 -
Directory Listing
Modified
Sat Aug 13 16:47:23 2005 UTC (7 years, 9 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
3505 -
Directory Listing
Modified
Sat Aug 13 16:33:50 2005 UTC (7 years, 9 months ago) by
dpvc
Added sort methods to Union and Set that return objects with their
data sorted.
Revision
3504 -
Directory Listing
Modified
Sat Aug 13 15:57:17 2005 UTC (7 years, 9 months ago) by
dpvc
Moved the union and set reduction checks from cmp_equal to cmp_compare
so that the messages can be produced even in lists of unions.
Improved the message facilities for the list comparison so that
cmp_compare can make errors that refer to the number of the entry in
the student's answer (otherwise an extra "There was a problem with
your nth value" message needs to be prepended, which looks bad if it
can be avoided).
Use the "extra" answer checker to report syntax error messages in unordered
lists.
Revision
3503 -
Directory Listing
Modified
Sat Aug 13 15:44:41 2005 UTC (7 years, 9 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 (7 years, 9 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 (7 years, 9 months ago) by
dpvc
Added differentiation of (single-variable) functions created with
parserFunction.
Revision
3500 -
Directory Listing
Modified
Sat Aug 13 01:39:14 2005 UTC (7 years, 9 months ago) by
dpvc
Fixed typo in previous update.
Revision
3499 -
Directory Listing
Modified
Sat Aug 13 00:41:24 2005 UTC (7 years, 9 months ago) by
dpvc
Added sets to the differentiation information (no derivatives allowed)
Revision
3498 -
Directory Listing
Modified
Sat Aug 13 00:35:11 2005 UTC (7 years, 9 months ago) by
dpvc
Fixed a typo in an error message.
Revision
3497 -
Directory Listing
Modified
Sat Aug 13 00:25:27 2005 UTC (7 years, 9 months ago) by
dpvc
Added ability for Unions and Sets to simplify themselves
(automatically or on demand), and added flags to the Context and
answer checkers to control these features. The new Context flags
are
reduceUnions tells whether unions are automatically
reduced when they are created.
reduceUnionsForComparison tells whether unions are reduced
before comparing them for equality
or inequality (etc) if they aren't
reduced already.
reduceSets tells whether redundent elements are
removed from sets as they are created.
reduceSetsForComparison tells whether sets are reduced before
comparing them.
All of these default to true.
The Interval, Set, Union, and List answer checkers not have two new
flags for controlling these values:
studentsMustReduceUnions tells whether unions and sets will be
counted as incorrect when they are not
reduced to non-overlapping intervals
and at most one set with no repeated
entries.
showUnionReduceWarnings tells whether an error message will
be produced for non-reduced unions and
sets, or if they will be marked wrong
silently. (Not available in Lists.)
Both of these are true by default, since most professors probably want
their students to write intervals in reduced form. (Is this true?)
This corresponds the the current behavior of the interval checkers,
which require the student's answer to be the same set of intervals as
in the professor's, but with the addition of an error message when the
student answer is not reduced.
Revision
3495 -
Directory Listing
Modified
Fri Aug 12 23:21:52 2005 UTC (7 years, 9 months ago) by
dpvc
Fixed use of undefined value for $position in TeX and String methods.
Revision
3494 -
Directory Listing
Modified
Fri Aug 12 23:02:11 2005 UTC (7 years, 9 months ago) by
dpvc
Made the 'R' constant in Interval context show up as a bold R in TeX
mode.
Revision
3493 -
Directory Listing
Modified
Fri Aug 12 22:56:04 2005 UTC (7 years, 9 months ago) by
dpvc
Detect preview mode correctly for either WW1 or WW2.
Revision
3492 -
Directory Listing
Modified
Fri Aug 12 22:55:19 2005 UTC (7 years, 9 months ago) by
dpvc
Adjust spacing.
Revision
3491 -
Directory Listing
Modified
Fri Aug 12 22:54:38 2005 UTC (7 years, 9 months ago) by
dpvc
Mark function as constant if it is.
Revision
3489 -
Directory Listing
Modified
Fri Aug 12 18:43:25 2005 UTC (7 years, 9 months ago) by
jj
Completed conversion of interval_cmp to use Parser objects. Also, minor
updates to number_list_cmp.
Revision
3488 -
Directory Listing
Modified
Fri Aug 12 17:40:07 2005 UTC (7 years, 9 months ago) by
dpvc
Avoid problem with undefined value being passed to protectHTML.
Revision
3487 -
Directory Listing
Modified
Fri Aug 12 17:09:42 2005 UTC (7 years, 9 months ago) by
dpvc
Changed how Intervals implement the requireParenMatch flag for the
interval and union answer checker. (Use a Context flag rather than a
flag on the interval itself.) Moved the getFlag method from
Formula.pm to Value.pm so it can be used by any object class. New
feature where classes can add more context flags to set (and reset
after the answer checker runs).
Revision
3484 -
Directory Listing
Modified
Fri Aug 12 01:26:11 2005 UTC (7 years, 9 months ago) by
dpvc
Removed erroneous dollar sign.
Revision
3483 -
Directory Listing
Modified
Fri Aug 12 01:21:48 2005 UTC (7 years, 9 months ago) by
dpvc
Added redefine() function to complement undefine() for various
Context() values. For example
Context()->operators->undefine('+');
makes '+' undefined, but
Context()->operators->redefine('+');
will put it back. You can specify a context from which to take the
redefinition, and a name in that context, as in
Context()->operators->redefine('U',from=>"Interval");
Context()->operators->redefine('u',from=>"Interval",using=>"U");
Context()->operators->redefine('U',from=>$content);
where $content is a reference to a Context object.
The undefine() function lets you undefine several items at once, as in
Context()->operators->undefine('+','-');
For redefine, you must put multiple names in square brackets because
of the optional parmeters:
Context()->operators->redefine(['+','-']);
Revision
3482 -
Directory Listing
Modified
Fri Aug 12 01:15:30 2005 UTC (7 years, 9 months ago) by
dpvc
Fixed bug with missing fields in initialization.
Revision
3477 -
Directory Listing
Modified
Thu Aug 11 20:57:18 2005 UTC (7 years, 9 months ago) by
dpvc
Added ability to subtract intervals, sets and unions. Adjusted the
precedence of the union 'U' to be above _ and + so that things like
(1,5) U (7,10) - {8} U (2,3) will do ((1,5) U (7,10)) - ({8} U (2,3))
rather than the previous (1,5) U ((7,10) - {8}) U (2,3). Finally,
added a constant 'R' to the Interval context that is equivalent to
(-inf,inf), so you can do things like R-{0} now.
Still need to work out reducing unions so that things like (1,3)U(2,4)
can become (1,4).
Revision
3474 -
Directory Listing
Modified
Thu Aug 11 14:37:18 2005 UTC (7 years, 9 months ago) by
dpvc
Changes needed for new Set object, plus for moving string, TeX and
perl into Value.pm. Also removed unneeded spaces in perl versions of
the constants (these were to fix problems with the minus sign, but
that is now being handled by the minus operators themselves).
Revision
3473 -
Directory Listing
Modified
Thu Aug 11 14:34:24 2005 UTC (7 years, 9 months ago) by
dpvc
Changes needt for Set object, and fixed a bug with unions containing
constant intervals with non-constant ones.
Revision
3472 -
Directory Listing
Modified
Thu Aug 11 14:33:09 2005 UTC (7 years, 9 months ago) by
dpvc
Changes needed to Set object. Also, use Parser to handle unions
defined as strings rather than doing it by hand (that's the whole
point, isn't it?). Added object promotion from lower-precedence
classes (for better error messages), and fixed up the comparison
routine.
Revision
3471 -
Directory Listing
Modified
Thu Aug 11 14:28:07 2005 UTC (7 years, 9 months ago) by
dpvc
Changes needed for Set object, better handling of an interval given as
a string, and a few misc. fixes.
Revision
3470 -
Directory Listing
Modified
Thu Aug 11 14:25:53 2005 UTC (7 years, 9 months ago) by
dpvc
Changes needed for new Set object, and moving of string, TeX and perl
methods to Value.pm
Revision
3469 -
Directory Listing
Modified
Thu Aug 11 14:23:16 2005 UTC (7 years, 9 months ago) by
dpvc
Added changes needed for the new Set object.
Revision
3468 -
Directory Listing
Modified
Thu Aug 11 14:22:36 2005 UTC (7 years, 9 months ago) by
dpvc
Added in the Set object class. Also made more comprehensive defaults
for string, TeX and perl output, so these don't have to be subclassed
so often. These handle looking up the open and close parens and
recursively handling the entries in a list-type object.
Revision
3467 -
Directory Listing
Modified
Thu Aug 11 14:20:31 2005 UTC (7 years, 9 months ago) by
dpvc
Properly maintain open and close parens in emtpy lists.
Revision
3466 -
Directory Listing
Modified
Thu Aug 11 14:19:26 2005 UTC (7 years, 9 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
3465 -
Directory Listing
Modified
Thu Aug 11 00:38:33 2005 UTC (7 years, 9 months ago) by
dpvc
Make upper-case alias a hidden one (since it is not needed for the
pattern).
Revision
3464 -
Directory Listing
Modified
Thu Aug 11 00:37:35 2005 UTC (7 years, 9 months ago) by
dpvc
Dereference aliases to aliases properly.
Revision
3463 -
Directory Listing
Modified
Wed Aug 10 23:05:41 2005 UTC (7 years, 9 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 (7 years, 9 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
3460 -
Directory Listing
Modified
Wed Aug 10 15:07:12 2005 UTC (7 years, 9 months ago) by
dpvc
Interval (and Union) checker now accepts requireParenMatch flag for
deciding whether the interval type must match. Setting
requireParenMatch to 0 will let (1,2) match (1,2] or [1,2], etc.
Revision
3459 -
Directory Listing
Modified
Wed Aug 10 15:05:34 2005 UTC (7 years, 9 months ago) by
dpvc
Cosmetic change.
Revision
3458 -
Directory Listing
Modified
Wed Aug 10 14:28:59 2005 UTC (7 years, 9 months ago) by
dpvc
The Parser versions of num_cmp and fun_cmp incorrectly left the
current Context set to the base context used by the answer checker.
The Context is now correctly reset to the one in effect before the
call to num_cmp or fun_cmp.
Also removed some redundant values in if-then checks.
Revision
3457 -
Directory Listing
Modified
Wed Aug 10 14:22:48 2005 UTC (7 years, 9 months ago) by
dpvc
Enable commas when mode=>"frac" is specified.
Revision
3455 -
Directory Listing
Modified
Mon Aug 8 15:56:09 2005 UTC (7 years, 9 months ago) by
jj
Changed number_list_cmp to use Parser.
Revision
3446 -
Directory Listing
Modified
Mon Aug 1 15:14:20 2005 UTC (7 years, 9 months ago) by
dpvc
Fixed a bug that would cause step() to produce an error when called on
a constant value. Also, added fact() function that was defined in
Algparser but not in Parser (which uses x! notation).
Revision
3445 -
Directory Listing
Modified
Mon Aug 1 14:20:16 2005 UTC (7 years, 9 months ago) by
dpvc
Added missing "step" function that was defined in the AlgParser but
not in the Parser.
Be sure to copy the updated PGanswermacros.pl to the pg/macros directory.
Revision
3444 -
Directory Listing
Modified
Mon Aug 1 13:10:52 2005 UTC (7 years, 9 months ago) by
dpvc
Make List("1,2,3") work like List("1","2","3") rather than produce a
list with one element that is a list.
Revision
3443 -
Directory Listing
Modified
Mon Aug 1 12:42:21 2005 UTC (7 years, 9 months ago) by
dpvc
Added postfilter to Parser-based implementation of NUM_CMP so that the
student's answer is updated to be the result of evaluating the answer
(when there is no error in evaluating the answer). This correctly
reflects the behaviour of the original NUM_CMP.
Revision
3442 -
Directory Listing
Modified
Mon Aug 1 12:37:35 2005 UTC (7 years, 9 months ago) by
dpvc
Fixed typo that caused hilighting of the position of errors to be lost.
Revision
3441 -
Directory Listing
Modified
Mon Aug 1 12:04:23 2005 UTC (7 years, 9 months ago) by
dpvc
Updates to make mode=>'frac' properly emulate the original num_cmp
behavior (it now allows decimals and fractions instead of requiring a
fraction). There is also a new LimitedNumeric-StrictFraction context
(not currently used) that disallows decimals and requires fractions.
Revision
3440 -
Directory Listing
Modified
Mon Aug 1 12:01:39 2005 UTC (7 years, 9 months ago) by
dpvc
Folded in Mike's changes for status messages.
Revision
3426 -
Directory Listing
Modified
Fri Jul 29 19:44:04 2005 UTC (7 years, 9 months ago) by
sh002i
Fix use of $SIG{__WARN__} and $SIG{__DIE__}.
* Each change to $SIG{__WARN__} and $SIG{__DIE__} is now dynamically
scoped with "local", rather than changing globally and then restoring at
the end of the block.
* The special value "DEFAULT" is used instead of sub {CORE::die(@_)} or
sub {CORE::warn(@_)} when preparing to eval STRING code.
* Where $SIG{__WARN__} and $SIG{__DIE__} are overridden to do
preprocessing with PG_errorMessage, the previously installed handlers
will be called instead of the built-in warn or die functions after
preprocessing occurs. (For example, the warn and die handlers defined in
Apache::WeBWorK or the warn handler defined in WeBWorK::PG will be
called.)
* The behavior in process_answers is modified so that the custom
handlers are installed once before the answer evaluation loop. This
causes them to be in effect during the setup/teardown code, but I don't
think this will be a problem.
Revision
3400 -
Directory Listing
Modified
Fri Jul 22 22:59:12 2005 UTC (7 years, 10 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 (7 years, 10 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 (7 years, 10 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 (7 years, 10 months ago) by
gage
Macros that aid the construction sequentialProblems. For these
problems certain sections of text are hidden until earlier
answers have been answered correctly.
-- Mike
Revision
3385 -
Directory Listing
Modified
Sat Jul 16 21:59:35 2005 UTC (7 years, 10 months ago) by
gage
Added support for sequentialProblems.
Revision
3384 -
Directory Listing
Modified
Sat Jul 16 19:24:31 2005 UTC (7 years, 10 months ago) by
jj
Fixed typo related to useBaseTenLog.
Revision
3383 -
Directory Listing
Modified
Fri Jul 15 02:57:01 2005 UTC (7 years, 10 months ago) by
jj
Fixed typo.
Revision
3375 -
Directory Listing
Modified
Wed Jul 13 03:03:25 2005 UTC (7 years, 10 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
3374 -
Directory Listing
Modified
Wed Jul 13 01:46:49 2005 UTC (7 years, 10 months ago) by
dpvc
Wrong correction in the previous commit. Use CODE::push
Revision
3373 -
Directory Listing
Modified
Wed Jul 13 01:23:38 2005 UTC (7 years, 10 months ago) by
gage
Made modifications that allow use of complex numbers in matrices. You can
also LR decompose a non-square matrix. Documentation is still needed
and further testing.
Revision
3372 -
Directory Listing
Modified
Wed Jul 13 01:22:43 2005 UTC (7 years, 10 months ago) by
gage
Made modifications that allow the use of complex numbers in matrices
Revision
3371 -
Directory Listing
Modified
Tue Jul 12 22:39:56 2005 UTC (7 years, 10 months ago) by
dpvc
Make error messages potentially localizable (by making them use
sprintf-style strings rather than variable subtitution).
Revision
3370 -
Directory Listing
Modified
Tue Jul 12 22:29:53 2005 UTC (7 years, 10 months ago) by
dpvc
A first pass at making parser error messages localizable. The
Context()->{error}{msg} hash can be used to specify translations of
the standard messages. For example,
Context()->{error}{msg}{'Division by zero'} = "Don't divide by zero, dude!";
Context()->{error}{msg}{'Function '%s' has too many inputs'} =
"You passed too many arguments to '%s'";
(I didn't translate into another language, here, but you could do
that, too.)
The msg hash could also be used within answer checkers to make certain
answer messages more appropriate for the given type of expected answer.
Revision
3369 -
Directory Listing
Modified
Tue Jul 12 21:05:37 2005 UTC (7 years, 10 months ago) by
dpvc
Fixed various perl compiler warnings (due to extra "my", and so on).
Revision
3367 -
Directory Listing
Modified
Tue Jul 12 02:02:46 2005 UTC (7 years, 10 months ago) by
dpvc
Fixed problem with minus signs in formulas that are turned into perl
mode. Perl needs extra spaces to avoid problems with -e type operators.
Revision
3364 -
Directory Listing
Modified
Fri Jul 8 21:45:14 2005 UTC (7 years, 10 months ago) by
jj
Fixed typo in installation instructions.
Revision
3363 -
Directory Listing
Modified
Thu Jul 7 02:40:52 2005 UTC (7 years, 10 months ago) by
gage
Added some pod documentation to this file. It needs more -- several methods
of MatrixReal1 have been overridden
Revision
3360 -
Directory Listing
Modified
Tue Jul 5 22:13:16 2005 UTC (7 years, 10 months ago) by
gage
Added some pod documentation
Revision
3359 -
Directory Listing
Modified
Tue Jul 5 21:58:51 2005 UTC (7 years, 10 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
3353 -
Directory Listing
Modified
Tue Jul 5 01:43:30 2005 UTC (7 years, 10 months ago) by
dpvc
Don't load Parser.pl (it causes trouble with the Matrix.pm module).
We only needed it because of the calls to Real() that were being used
by Formula objects, so have them call Value::Real directly.
be sure to get the latest versions of Parser and Value (including the
top-level Parser.pm and Value.pm) in order to use this update.
Revision
3352 -
Directory Listing
Modified
Tue Jul 5 01:38:19 2005 UTC (7 years, 10 months ago) by
dpvc
Modified the perl() method to make calles to Value:: directly rather
than to the main:: stubs for creating Value objects. This will make
it work better from within packages or when Parser.pl hasn't been
loaded.
A few things still won't work in this case; e.g., calls to Closed()
for intervals (these could be handled better using ->with()) and to
functions like Factorial and log10 that are defined in Parser.pl.
Finally, there should be better object-based control over what
routines are called to create these objects, so that subclasses of the
Value objects will be able to be generated correctly.
Revision
3351 -
Directory Listing
Modified
Tue Jul 5 00:31:57 2005 UTC (7 years, 10 months ago) by
gage
Modified formatting
Revision
3350 -
Directory Listing
Modified
Tue Jul 5 00:08:54 2005 UTC (7 years, 10 months ago) by
dpvc
Main file that calls in the legacy modules.
Revision
3349 -
Directory Listing
Modified
Mon Jul 4 22:11:08 2005 UTC (7 years, 10 months ago) by
gage
Add comment
Revision
3348 -
Directory Listing
Modified
Mon Jul 4 20:18:40 2005 UTC (7 years, 10 months ago) by
dpvc
Folded in Mike's changes to checkbox_cmp.
Revision
3347 -
Directory Listing
Modified
Mon Jul 4 20:12:22 2005 UTC (7 years, 10 months ago) by
dpvc
This is an attempt at making the traditional answer checkers call the
new Parser in place of their original ones. That is, if you follow
the instructions in the README file, then problems that use
std_num_cmp(), fun_cmp(), etc. will really be using the new Parser
instead of the original PGanswermacros.pl versions.
The old answer checkers are still available, and can be switched back
on a site-wide, course-wide, or problem-by-problem basis. See the
README for details.
Revision
3346 -
Directory Listing
Modified
Mon Jul 4 19:52:38 2005 UTC (7 years, 10 months ago) by
gage
Rewrote checkbox_cmp as an AnswerEvaluator
Revision
3345 -
Directory Listing
Modified
Mon Jul 4 19:49:06 2005 UTC (7 years, 10 months ago) by
gage
Reworked some of the code for AnswerEvaluator
The messages printed out when using the debug flag should now
be somewhat better.
-- Mike
Revision
3344 -
Directory Listing
Modified
Mon Jul 4 19:39:37 2005 UTC (7 years, 10 months ago) by
dpvc
Fixed problem with sorting (problem with $a, $b, I think).
Revision
3343 -
Directory Listing
Modified
Mon Jul 4 16:21:04 2005 UTC (7 years, 10 months ago) by
dpvc
Handle TeX versions of variables whose names include underscores
better.
Revision
3342 -
Directory Listing
Modified
Mon Jul 4 15:53:26 2005 UTC (7 years, 10 months ago) by
dpvc
Better messages when adaptive parameters are too big.
Revision
3341 -
Directory Listing
Modified
Mon Jul 4 15:43:53 2005 UTC (7 years, 10 months ago) by
dpvc
Implement "remove trailing zeros" format, like in prfmt(). I still
think '%g' works better in most cases ('%f#' will print larger values
without using scientific notation, which is nice, but will print small
numbers like .000000005 as 0, even though the fuzzy comparison of this
to zero will not be true.)
Revision
3340 -
Directory Listing
Modified
Mon Jul 4 15:22:40 2005 UTC (7 years, 10 months ago) by
gage
Commenting out unused code. This file still needs a lot of work.
Revision
3339 -
Directory Listing
Modified
Mon Jul 4 15:22:22 2005 UTC (7 years, 10 months ago) by
dpvc
Don't use the overloaded Real class for doing adaptive parameter
checks (use non-fuzzy checks, since we are checking the fuzziness by hand).
Revision
3338 -
Directory Listing
Modified
Mon Jul 4 15:21:52 2005 UTC (7 years, 10 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
3336 -
Directory Listing
Modified
Mon Jul 4 13:15:57 2005 UTC (7 years, 10 months ago) by
dpvc
Change so as not to use raw HTML in the error messages.
Revision
3335 -
Directory Listing
Modified
Mon Jul 4 03:28:09 2005 UTC (7 years, 10 months ago) by
dpvc
Allow Parser::Number::NoDecimals() to accept a context to be modified
(rather than always changing the curent context).
Revision
3334 -
Directory Listing
Modified
Sun Jul 3 20:10:37 2005 UTC (7 years, 10 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.:
Context()->strings->add("FooBar"=>{caseSensitive=>1});
would rewuire "FooBar" to be entered exactly as typed.
Revision
3333 -
Directory Listing
Modified
Sun Jul 3 20:06:33 2005 UTC (7 years, 10 months ago) by
dpvc
Adjusted some spacing
Revision
3332 -
Directory Listing
Modified
Sun Jul 3 20:05:28 2005 UTC (7 years, 10 months ago) by
dpvc
Fixed a bug in the enable/disable routines that would cause them to
always work on the current context rather than the one whose
enable/disable method was being called.
Revision
3328 -
Directory Listing
Modified
Fri Jul 1 15:52:36 2005 UTC (7 years, 10 months ago) by
gage
Added commment
Revision
3325 -
Directory Listing
Modified
Wed Jun 29 17:10:11 2005 UTC (7 years, 10 months ago) by
gage
Added comments.
Revision
3324 -
Directory Listing
Modified
Wed Jun 29 16:19:42 2005 UTC (7 years, 10 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 latter occurs if checkboxes are used instead of radio buttons.)
The presence of two checked checkboxes triggers a warning.
Revision
3323 -
Directory Listing
Modified
Wed Jun 29 02:48:55 2005 UTC (7 years, 10 months ago) by
gage
MASSIVE changes to str_cmp and related subroutines (mostly in STR_CMP).
This answer evaluator now produces an AnswerEvaluator type rather than
a subroutine.
Revision
3322 -
Directory Listing
Modified
Wed Jun 29 02:47:40 2005 UTC (7 years, 10 months ago) by
gage
Corrected how preview_latex_strings are handled when two
AnswerHashes are ANDed or ORed.
Revision
3320 -
Directory Listing
Modified
Tue Jun 28 19:38:16 2005 UTC (7 years, 10 months ago) by
gage
Format changes.
Revision
3319 -
Directory Listing
Modified
Tue Jun 28 19:36:52 2005 UTC (7 years, 10 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 (7 years, 11 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 (7 years, 11 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
3298 -
Directory Listing
Modified
Thu Jun 16 15:32:02 2005 UTC (7 years, 11 months ago) by
dpvc
New flag showAllErrors for when a custom checker is supplied. This
will cause all errors generated in the user's code to be reported
(normally, messages from the Value and Parser packages are ignored).
Revision
3297 -
Directory Listing
Modified
Thu Jun 16 04:04:23 2005 UTC (7 years, 11 months ago) by
dpvc
Fixed typos in comments.
Revision
3296 -
Directory Listing
Modified
Thu Jun 16 04:03:40 2005 UTC (7 years, 11 months ago) by
dpvc
Fixed a problem with auto-generated functions getting an incomplete
variable list.
Revision
3295 -
Directory Listing
Modified
Thu Jun 16 00:52:13 2005 UTC (7 years, 11 months ago) by
gage
Fixed documentation for $graph->size()
Revision
3294 -
Directory Listing
Modified
Wed Jun 15 23:55:17 2005 UTC (7 years, 11 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
3291 -
Directory Listing
Modified
Wed Jun 15 22:00:32 2005 UTC (7 years, 11 months ago) by
jj
Changed whitespace removal of TeX strings to safer version.
Revision
3274 -
Directory Listing
Modified
Thu Jun 9 11:16:01 2005 UTC (7 years, 11 months ago) by
dpvc
Fixed Disable() and Enable() so that they can be called as
Context()->functions->disable()
and
Context()->functions->enable()
as well as
Parser::Context::Functions::Disable()
and
Parser::Context::Functions::Enable()
The former is the preferred syntax.
Revision
3273 -
Directory Listing
Modified
Mon Jun 6 02:32:20 2005 UTC (7 years, 11 months ago) by
dpvc
Forgot to check hardcopy mode. Fixed some problems with that. The
answer array items have to turn off verbatim mode that is used when
answer are included in the hardcopy. This causes paragraph breaks
between entries in a singleResult MultiPart that includes ans_arrays,
which make the output less pretty, but at least they show up.
Revision
3270 -
Directory Listing
Modified
Mon Jun 6 00:01:44 2005 UTC (7 years, 11 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
3269 -
Directory Listing
Modified
Sun Jun 5 23:52:11 2005 UTC (7 years, 11 months ago) by
dpvc
Added ability to have Matrix, Vector and Point objects produce input
arrays similar to the ones available in PGmatrixmacros.pg. This
provides some substantial new functionality, and it may still have
some shaking down to do, but it should not affect the existing
functionality of the answer checkers.
To create an answer array for a matrix, vector or point, use the new
ans_array() or named_ans_array() methods of these objects. For
example:
Context("Matrix");
$M = Matrix([1,2],[3,4]);
BEGIN_TEXT
\{$M->TeX\} = \{$M->ans_array\}
END_TEXT
ANS($M->cmp);
This creates a matrix, then prints it ans creates an answer array of
the appropriate size for the matrix. The answer checker will
automatically know to handle the multiple entry blanks.
To used a named answer rule, use:
Context("Matrix");
$M = Matrix([1,2],[3,4]);
BEGIN_TEXT
\{$M->TeX\} = \{$M->named_ans_array('fred')\}
END_TEXT
NAMED_ANS(fred => $M->cmp);
Both methods also take an optional argument that specifies the width
of the answer rules. The default is 5.
You can get a multi-input point or vector array as well, and you can
make column vectors as follows:
Context("Vector");
$V = ColumnVector("1+x","3x","1-x");
BEGIN_TEXT
\{$V->TeX\} = \{$V->ans_array\}
END_TEXT
ANS($V->cmp);
Note that you can make answer arrays for matrices and vectors of
formulas as well as constants, provided the formula is an explicit
matrix or vector of formulas, and is not obtained by matrix
arithmatic.
For concistencey, all objets now have ans_rule and named_ans_rule
methods as well. The default width is 20 for these.
Revision
3268 -
Directory Listing
Modified
Sun Jun 5 23:36:28 2005 UTC (7 years, 11 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 (7 years, 11 months ago) by
dpvc
Allow for vectors to be marked as Column Vectors.
Revision
3266 -
Directory Listing
Modified
Sun Jun 5 23:24:29 2005 UTC (7 years, 11 months ago) by
dpvc
Better handling of delimiters that are explicitly set byt he user.
Fixed an incorrect call during object class promotion.
Added ability to sepcify that a vector is a Column Vector.
Revision
3265 -
Directory Listing
Modified
Sun Jun 5 23:22:20 2005 UTC (7 years, 11 months ago) by
dpvc
Better handling of open and close delimiters that are explicitly set.
Revision
3264 -
Directory Listing
Modified
Sun Jun 5 23:18:01 2005 UTC (7 years, 11 months ago) by
dpvc
Fix some incorrect calls when the promoting types to higher precedence
object types.
Revision
3263 -
Directory Listing
Modified
Sun Jun 5 23:08:32 2005 UTC (7 years, 11 months ago) by
dpvc
Fixed a bug with Matrix->perl() method that would cause an extra level
of nesting in constant matrices.
Revision
3261 -
Directory Listing
Modified
Sat Jun 4 13:50:41 2005 UTC (7 years, 11 months ago) by
dpvc
Avoid possible infinite loop with length and typeref calls.
Revision
3260 -
Directory Listing
Modified
Sat Jun 4 13:50:01 2005 UTC (7 years, 11 months ago) by
dpvc
Remove unneeded comment.
Revision
3259 -
Directory Listing
Modified
Fri Jun 3 22:03:23 2005 UTC (7 years, 11 months ago) by
dpvc
Added a ->with() method that lets you set fields of a Parser object as
you create it. For example:
$f = Formula("sqrt(x)")->with(limits=>[0,3]);
or
ANS(Formula("(x+1)/x")->with(checkUndefinedPoints=>1,test_at=>[[0]])->cmp);
or
ANS($f->with(test_points=>[[0],[1],[2]])->cmp);
Revision
3258 -
Directory Listing
Modified
Fri Jun 3 19:14:00 2005 UTC (7 years, 11 months ago) by
dpvc
Better control over number of points that can be undefined, and
new ability to specify required test points plus additional random
ones. (Previously, if you set the test points, no random points were
generated.) For example:
$f = Formula("(x^2-1)/(x-1)");
$f->{test_at} = [[1]]; # test at x=1 plus random points
as opposed to
$f->{test_points} = [[-1],[0],[1]];
which tests only the points x = -1, x = 0 and x = 1.
Revision
3257 -
Directory Listing
Modified
Thu Jun 2 22:50:24 2005 UTC (7 years, 11 months ago) by
dpvc
Modified the Formula answer checker to allow checking of points where
the functions are undefined (i.e., attempt to check that the domains
agree). This can be enabled by setting the checkundefinedPoints flag
in the Context(), or in the formula itself. Test points where the
function is undefined will be retained and the student's answer will
have to be undefined at the same points. If the points are selected
at random, the points where the function is undefined are kept in
addition to the ones where it is defined, so the required number of
test points where the function IS defined will still need to be
found. The number of undefined points can be up to the number of
defined points. This number can be reduced by setting the
max_undefined flag. If you want to guarantee that a specific
undefined point be tested, you can provide that point using the
test_points field of the formula. For example:
Context()->flags->set(checkUndefinedPoints=>1);
$f = Formula("(x^2-1)/(x-1)");
$f->{test_points} = [[-1],[0],[1],[2]];
ANS($f->cmp);
will guarantee that the singularity at x=1 is tested, so the answer
x+1 will not be marked as correct.
If an answer matches at all the test points where the functions are
both defined, but some of the undefind points differ between the two
functions, the answer checker will generate an error message
indicating that the domains of the functions don't agree. (This is
ONLY generated with the functions match except for that.) This can be
controlled by setting the showDomainErrors flag in the formula's cmp()
call:
ANS($f->cmp(showDomainErrors=>0));
The default is to show these errors.
Revision
3256 -
Directory Listing
Modified
Thu Jun 2 19:53:06 2005 UTC (7 years, 11 months ago) by
dpvc
Fixed an accidental hard-coded operation from always being "add" to
being the correct operation when promoting the operations to an object
of higher precedence. (But since formulas are normally the highest
precedence, this will never have occurred.)
Revision
3225 -
Directory Listing
Modified
Sat May 14 01:42:25 2005 UTC (8 years 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
3221 -
Directory Listing
Modified
Mon May 2 00:58:00 2005 UTC (8 years ago) by
dpvc
During a call(), if the evaluation produced an error message generated
by Value::Error, report it, otherwise report a generic message.
Revision
3220 -
Directory Listing
Modified
Mon May 2 00:56:19 2005 UTC (8 years 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
3219 -
Directory Listing
Modified
Fri Apr 29 22:30:55 2005 UTC (8 years ago) by
dpvc
Added derivative of |x| as x/|x|.
Revision
3218 -
Directory Listing
Modified
Fri Apr 29 02:37:13 2005 UTC (8 years ago) by
dpvc
Fixed a bug with adaptive parameters where the relative tolerance
was not being properly computed. This allowed large constants to be
treated as correct when they shouldn't be.
Revision
3217 -
Directory Listing
Modified
Wed Apr 27 21:30:13 2005 UTC (8 years ago) by
dpvc
Copy parameters like limits, etc, to the newly created formula when
'C0' is added by the "upToConstant=>1" option in formula cmp().
Revision
3216 -
Directory Listing
Modified
Wed Apr 27 21:29:10 2005 UTC (8 years ago) by
dpvc
Use correct form of "x" with lists (rather than hack using split()).
Revision
3214 -
Directory Listing
Modified
Sat Apr 9 18:33:07 2005 UTC (8 years, 1 month ago) by
gage
Provide a default warning subroutine if none has been defined.
Revision
3210 -
Directory Listing
Modified
Thu Mar 31 19:44:49 2005 UTC (8 years, 1 month ago) by
dpvc
Added a check that the coordinates are numeric. This avoids an error
were <i+j+k> was accepted as OK.
Revision
3208 -
Directory Listing
Modified
Tue Mar 29 19:16:36 2005 UTC (8 years, 1 month 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
point that the student's answer is compared to the correct answer.
Revision
3207 -
Directory Listing
Modified
Tue Mar 29 13:14:17 2005 UTC (8 years, 1 month ago) by
dpvc
Handle error messages in the list checker better. In particular, make
the error messages generated by custom checkers called on elements in
the list look better. Also, in an ordered list, if the student enters
extra values, call an answer checker to do a syntax check. (By
default, use the first element again, but the user can supply a
separate object to use for the checker using the extra=>object
option.)
Revision
3206 -
Directory Listing
Modified
Tue Mar 29 03:25:29 2005 UTC (8 years, 1 month ago) by
dpvc
Compartmentalize the equality check one step further. The cmp_equal
method now calls a new cmp_compare method to perform the actual
comparison (rather than use == directly). The cmp_compare method
either calls a user-supplied checker routine, or defaults to using the
== operator. The list checker also uses cmp_compare to check the
individual items in the list. The list checker also calls a new
cmp_list_checker method to perform the list check. This can be
overridden by a user-supplied list-checking routine.
To supply an alternate checking routine, use the "checker" option to
the cmp() method of the correct answer object. For example:
sub check {
my ($correct,$student,$ans) = @_;
return 0 unless $correct->length == $student->length;
my ($x,$y) = $student->value; # break up a point;
return $x**2 - $y**2 = 1; # check if it is on a hyperbola
}
Point(1,0)->cmp(checker=>~~&check);
This will check if the student's point lies on the given hyperbola. All
the usual error messages will be issued if the student's answer is not
a point, or is of the wrong dimension, etc.
You can use
sub list_check {
my ($correct,$student,$ans) = @_;
my @correct = @{$correct}; my @student = @{$student};
...
return ($score,@errors);
}
List(...)->cmp(list_checker=>~~&list_check);
to replace the list-checking routine with your own custom one. The
$correct and $student values are array references to the elements in
the lists provided by the professor and student. (Note that you do
NOT get a List() object; this allows you to handle lists of formulas,
since a List of formulas becomes a formula returning a list). The
checker routine should return the number of correct elements in the
student's list ($score), and a list of error messages produced while
checking the two lists (@errors). (This is a list of messages, since
you might want to include an error for each entry in the list, for
example).
If your checker or list_checker routine wants to die with an error
message, use Value::Error(message). This will put the message in the
WeBWorK display area at the top of the page. If you use die(message),
or if the code fails due to a runtime error, then "pink screen of
death" will be produced indicating the error and asking the student to
report the error to the professor.
Revision
3205 -
Directory Listing
Modified
Tue Mar 29 02:55:10 2005 UTC (8 years, 1 month ago) by
dpvc
Properly handle string values in postprocessing of vectors and other
related lists. (It used to report a dimension error for things like 'NONE').
Revision
3204 -
Directory Listing
Modified
Mon Mar 28 23:47:50 2005 UTC (8 years, 1 month ago) by
dpvc
Peroperly negate infinities even when reduceConstants is not in
effect.
Revision
3203 -
Directory Listing
Modified
Mon Mar 28 23:46:06 2005 UTC (8 years, 1 month ago) by
dpvc
Handle extra parentheses better.
Revision
3202 -
Directory Listing
Modified
Mon Mar 28 23:45:27 2005 UTC (8 years, 1 month ago) by
dpvc
Handle log as ln or log properly.
Revision
3199 -
Directory Listing
Modified
Sun Mar 20 13:13:44 2005 UTC (8 years, 2 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 (8 years, 2 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
about how to use the answer checker.
Revision
3195 -
Directory Listing
Modified
Wed Mar 16 13:36:33 2005 UTC (8 years, 2 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
3194 -
Directory Listing
Modified
Wed Mar 16 13:35:01 2005 UTC (8 years, 2 months ago) by
dpvc
removed a commented-out line that was no longer needed.
Revision
3193 -
Directory Listing
Modified
Wed Mar 16 13:33:59 2005 UTC (8 years, 2 months ago) by
dpvc
Fixed a typo.
Revision
3192 -
Directory Listing
Modified
Wed Mar 16 13:30:28 2005 UTC (8 years, 2 months ago) by
dpvc
Update the overloaded operators so that they can be overridden by
subclasses of the predefined object classes. This involves calling
the objects method rather than using a hard reference to the routine
in the parent class.
Also, change the name of the string comparison routine to
compare_string to avoid conflicts with cmp that is used to produce the
answer checker for the class.
Finally, in Value.pm, promotePrecedence no longer has to do fancy
footwork to get "special" precedence to work (this was a hack to get
around the misfeature of the overloaded operators -- now that that is
being handled correctly, there is no need for it).
Revision
3191 -
Directory Listing
Modified
Wed Mar 16 04:17:35 2005 UTC (8 years, 2 months ago) by
dpvc
Fixed error with asec and acsc where the parameters were not being
passed properly.
Revision
3187 -
Directory Listing
Modified
Sat Feb 26 23:03:12 2005 UTC (8 years, 2 months ago) by
gage
Allow subclasses of AnswerEvalutor to be used. Check for a match
with a substring AnswerEvaluator instead of equality.
Revision
3180 -
Directory Listing
Modified
Sat Feb 19 16:47:36 2005 UTC (8 years, 3 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
3177 -
Directory Listing
Modified
Fri Feb 18 00:04:09 2005 UTC (8 years, 3 months ago) by
dpvc
Missed one situation when making the previous update. Fixed it.
Revision
3174 -
Directory Listing
Modified
Thu Feb 17 16:12:45 2005 UTC (8 years, 3 months ago) by
dpvc
Fixed it so that direct calls to the add, sub, mult, etc functions
would work as expected (even though there is no need to call them directly).
Revision
3172 -
Directory Listing
Modified
Tue Feb 15 21:58:54 2005 UTC (8 years, 3 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
3171 -
Directory Listing
Modified
Tue Feb 15 21:53:23 2005 UTC (8 years, 3 months ago) by
dpvc
Improved the Real(), Complex(), Point(), Vector(), Matrix() and
String() constructors so that they will process formulas passed to
them as strings rather than requiring perl objects for these.
For example, you can use Real("2/3") rather than Real(2/3) if you
want. Also, Real("1+x") will return a formula returning a real
(essentially the same as Formula("1+x") in this case).
Revision
3166 -
Directory Listing
Modified
Tue Feb 15 02:20:52 2005 UTC (8 years, 3 months ago) by
dpvc
Fixed an error with Matrix() that could cause it to loop infinitely
when bad data is passed to it.
Also, allow Matrix(), Point(), Vector(), and Real() to accept string
values that are evaluated to produce the value returned.
(Sorry, accidentally committed with a blank message.)
Revision
3165 -
Directory Listing
Modified
Tue Feb 15 02:16:10 2005 UTC (8 years, 3 months ago) by
dpvc
*** empty log message ***
Revision
3159 -
Directory Listing
Modified
Thu Feb 10 22:34:01 2005 UTC (8 years, 3 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 (8 years, 3 months ago) by
apizer
Allow labels A - ZZ
Arnie
Revision
3136 -
Directory Listing
Modified
Sat Feb 5 14:07:55 2005 UTC (8 years, 3 months ago) by
jj
Work around IE bug for ordered lists. Maybe someday this can be undone.
Revision
3093 -
Directory Listing
Modified
Sun Jan 16 00:52:49 2005 UTC (8 years, 4 months ago) by
gage
Undoing some of the temporary changes I made to the warn message.
This may break what happens with xmlrpc however. (sigh)
Revision
3074 -
Directory Listing
Modified
Tue Jan 4 17:56:33 2005 UTC (8 years, 4 months ago) by
dpvc
Fixed index problem with matrix multiplciation. (It was returning the
transpose!)
Revision
3071 -
Directory Listing
Modified
Sat Jan 1 22:29:41 2005 UTC (8 years, 4 months ago) by
gage
Temporary modifications which allow the Warning mechanisms to work when
using the XML access methods.
This needs to be looked at again. There is also a problem with defining
permissions for creating directories. There is a temporary #FIXME
that seems to work.
Revision
3047 -
Directory Listing
Modified
Sat Dec 18 21:52:58 2004 UTC (8 years, 5 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 (8 years, 5 months ago) by
gage
Added a check to handle the case when the $errors flag was not defined.
Revision
2991 -
Directory Listing
Modified
Tue Nov 9 15:23:38 2004 UTC (8 years, 6 months ago) by
gage
Defined some variables that were causing warning messages.
Someone more familiar with this script should look at this
to make sure that this subsection of the parser is working correctly.
-- Mike
Revision
2988 -
Directory Listing
Modified
Fri Nov 5 17:54:12 2004 UTC (8 years, 6 months 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 (8 years, 6 months ago) by
apizer
relative tolerence was not being used correctly. Fixed this.
Arnie
Revision
2985 -
Directory Listing
Modified
Wed Nov 3 22:39:21 2004 UTC (8 years, 6 months ago) by
dpvc
Fixed a bug in processing absolute values with implicit
multiplication.
Revision
2984 -
Directory Listing
Modified
Wed Nov 3 22:00:56 2004 UTC (8 years, 6 months 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 (8 years, 6 months ago) by
dpvc
Fixed an error where any plane is accepted if the d is 0 in
ax + by + cz = 0.
Revision
2972 -
Directory Listing
Modified
Tue Nov 2 20:47:23 2004 UTC (8 years, 6 months ago) by
sh002i
added README and LICENCE files.
Revision
2969 -
Directory Listing
Modified
Tue Nov 2 01:55:21 2004 UTC (8 years, 6 months ago) by
dpvc
Fixed typo in a comment.
Revision
2958 -
Directory Listing
Modified
Sun Oct 24 14:36:35 2004 UTC (8 years, 7 months 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 (8 years, 7 months 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
2938 -
Directory Listing
Modified
Tue Oct 19 00:24:47 2004 UTC (8 years, 7 months ago) by
dpvc
Added reduction rules to remove redundent negatives.
Override string and TeX methods that avoid redundent parentheses.
Revision
2937 -
Directory Listing
Modified
Tue Oct 19 00:23:01 2004 UTC (8 years, 7 months ago) by
dpvc
Added "areParallel" method as a synonym for "isParallel".
Revision
2936 -
Directory Listing
Modified
Tue Oct 19 00:22:07 2004 UTC (8 years, 7 months ago) by
dpvc
Don't promote an object unless it is a Value object.
Revision
2935 -
Directory Listing
Modified
Tue Oct 19 00:20:02 2004 UTC (8 years, 7 months 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 (8 years, 7 months 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 (8 years, 7 months 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 (8 years, 7 months 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
2916 -
Directory Listing
Modified
Wed Oct 13 18:41:07 2004 UTC (8 years, 7 months ago) by
dpvc
Clear error messages before doing the answer check (this clears old
messages left over inclass this checker is called by another one,
e.g. when using UNORDERD_ANS()).
Revision
2915 -
Directory Listing
Modified
Wed Oct 13 03:31:17 2004 UTC (8 years, 7 months ago) by
dpvc
Trap errors in functions that are not native perl functions (like
acos() and csc(), etc.). In the past, if an error occurred within the
definition of a function, the error message that was reported was the
internal error within the definition of the function. For example
csc(0) would report "illegal division by zero", while acos(-2) would
report "can't take sqrt of -3". Now the errors will be "can't take
csc of 0" and "can't take acos of -2".
Revision
2914 -
Directory Listing
Modified
Wed Oct 13 02:41:33 2004 UTC (8 years, 7 months ago) by
dpvc
Added support for useBaseTenLogs to make log() work like ln() or
log10() depending on the value in the course.conf file.
Also fixed a bug that caused the WeBWorK parameters not to be
copied into contexts by initCopy().
Revision
2912 -
Directory Listing
Modified
Wed Oct 13 01:35:51 2004 UTC (8 years, 7 months ago) by
dpvc
Fixed typo in the comments.
Revision
2909 -
Directory Listing
Modified
Tue Oct 12 20:49:25 2004 UTC (8 years, 7 months ago) by
dpvc
In Complex context, make sqrt() and log() of negative numbers return
their complex values. Also make ^ and ** do the same with negative
bases. These can be controlled by setting/clearing the
"negativeIsComplex" entry for these functions and operators.
Revision
2908 -
Directory Listing
Modified
Tue Oct 12 20:46:43 2004 UTC (8 years, 7 months ago) by
dpvc
Report errors for powers of negative numbers rather than return 'nan'.
Don't allow 'nan' to be made into a Real object.
Revision
2907 -
Directory Listing
Modified
Tue Oct 12 20:44:20 2004 UTC (8 years, 7 months ago) by
dpvc
In StandardPrecedence mode, make the precedence of function apply
match that in use by that AlgParser.
Revision
2900 -
Directory Listing
Modified
Tue Oct 12 00:52:47 2004 UTC (8 years, 7 months ago) by
dpvc
Don't give coordinate hints during parallel vector checks. Also fixed
a typo.
Revision
2855 -
Directory Listing
Modified
Sat Oct 2 11:55:31 2004 UTC (8 years, 7 months ago) by
dpvc
added generic string-only context, and converted contextABCD and
contextTF to use it.
Revision
2842 -
Directory Listing
Modified
Wed Sep 29 15:47:30 2004 UTC (8 years, 7 months ago) by
dpvc
Allow string constants to include spaces.
Revision
2832 -
Directory Listing
Modified
Mon Sep 27 17:47:04 2004 UTC (8 years, 7 months ago) by
dpvc
Fix problem with TeX output of implicit multiplication between
items that would put two digits next to each other (like 2 3^2).
Revision
2824 -
Directory Listing
Modified
Thu Sep 23 21:31:41 2004 UTC (8 years, 8 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
additional error messages when the student enters an unrecognized answer.
Revision
2823 -
Directory Listing
Modified
Thu Sep 23 21:09:14 2004 UTC (8 years, 8 months ago) by
dpvc
Fixed Parser so that you can replace the Formula class as well as the
other object types.
Revision
2803 -
Directory Listing
Modified
Sun Sep 19 15:11:08 2004 UTC (8 years, 8 months ago) by
dpvc
The $Parser::class variable was being handled after the "use"
statements at the end, so had to put a BEGIN around it.
Revision
2802 -
Directory Listing
Modified
Sun Sep 19 14:43:32 2004 UTC (8 years, 8 months ago) by
dpvc
Eliminated unneeded parentheses in TeX output when unary minus and
plus are used with fractions.
Revision
2801 -
Directory Listing
Modified
Sun Sep 19 14:41:57 2004 UTC (8 years, 8 months ago) by
dpvc
More changes for the isZero and isOne checks. (Missed this file when
I committed the others.)
Revision
2800 -
Directory Listing
Modified
Sun Sep 19 14:27:39 2004 UTC (8 years, 8 months ago) by
dpvc
Added isZero and isOne checks for Parser::Value objects (i.e., for
constants within formulas). These now correctly handle vector and
matrices, in particular. The isOne and isZero checks are used in the
reduce() method to simplify formulas.
Revision
2799 -
Directory Listing
Modified
Sun Sep 19 11:49:32 2004 UTC (8 years, 8 months ago) by
dpvc
Added a new flag to the Formula()->cmp answer checker that allows a
constant-valued formula to be evaluated and then use the checker for
the resulting type. This is useful when you want the correct answer
for a numeric check to be shown in a symbolic form (like "pi/4")
rather than as a decimal number. To do this, use
Formula("pi/4")->cmp(eval=>1);
rather than Real(pi/4)->cmp, which would show the correct answer as
0.785398. Note that Formula("pi/4")->cmp would also match against
pi/4, but it does it as a function rather than a number, so error
messages might be issued indicating that the checker is expecting a
formula that returns a number, rather than just a number; this might
be confusing to a student. It would also accept answers like
"pi/4-x+x" as correct, whereas with eval=>1 this would produce an
error message saying that the answer was supposed to be a number not a
formula returning a number.
Similarly, if you want to show sqrt(2)/2 as the correct answer, use
Context()->flags->set(reduceConstants=>0, reduceConstantFunctions=>0);
Formula("sqrt(2)/2")->cmp(eval=>1);
The first line tells the parser not to automatically reduce
expressions that only involve constants, so that the value of the
formula in the second line will not be reduced to a decimal before
the cmp method is called.
Revision
2798 -
Directory Listing
Modified
Sun Sep 19 11:29:06 2004 UTC (8 years, 8 months ago) by
dpvc
Make Formula()->eval return a Real (ie, aValue::Real object) rather
than a perl number. That way, you can use $f->eval->cmp rather than
needing Real($f->eval)->cmp, and so on.
Also make Formula()->perl do the same, for consistency.
(This could have been accomplished by having the Parser::Number class
evaluate to a Real, but for efficiency during computation, we put
off making the Real object until the end. It probably doesn't make
that big a difference, but every little bit helps.)
Revision
2797 -
Directory Listing
Modified
Sun Sep 19 01:16:10 2004 UTC (8 years, 8 months ago) by
dpvc
File needed to reduction flags that was accidentally left out of the
previous commit. Sorry!
Revision
2796 -
Directory Listing
Modified
Sun Sep 19 01:15:03 2004 UTC (8 years, 8 months ago) by
dpvc
Added flags that control the reductions performed by
Formula()->reduce. Each reduction operation can be individually
enabled or disabled in the context, and in the reduce() call itself.
More complex reductions need to be developed.
Revision
2795 -
Directory Listing
Modified
Sat Sep 18 23:16:37 2004 UTC (8 years, 8 months ago) by
dpvc
Fixed typo in addParens method name.
Revision
2791 -
Directory Listing
Modified
Thu Sep 16 23:43:54 2004 UTC (8 years, 8 months ago) by
dpvc
Don't reduce constants in the display of student answers (so they can
tell how the parser interprets their answer). The drawback is that
the final number is not displayed. (We may need to add more columns
to the results display.)
Revision
2790 -
Directory Listing
Modified
Thu Sep 16 23:03:03 2004 UTC (8 years, 8 months ago) by
dpvc
Use extra parens in the string version of the student's answer, but
not in the professor's (unless the problem sets the showExtraParens
flag).
Revision
2789 -
Directory Listing
Modified
Thu Sep 16 22:24:32 2004 UTC (8 years, 8 months ago) by
dpvc
Added context flags to control automatic reduction of operations that
involve only constant values. The default is to combine constants,
but this can now be disabled.
Also added a new flag to control the addition of extra parentheses
that make string values painfully unambiguous (these are for
situations that students tend to get wrong). By default this is
turned off (so that professor answers won't contain excessive
parentheses), but the answer checker will be made to turn this on for
student answers.
Finally, when extra parens are added to formulas, they alternate
between ( ) and [ ] to make it easier to read.
Revision
2788 -
Directory Listing
Modified
Thu Sep 16 22:19:59 2004 UTC (8 years, 8 months ago) by
dpvc
Produce an error when attempting to auto-create a formula using a
function that has been removed from the current context.
Revision
2781 -
Directory Listing
Modified
Tue Sep 14 21:36:45 2004 UTC (8 years, 8 months ago) by
apizer
Fixed bug with useBaseTenLog
Arnie
Revision
2772 -
Directory Listing
Modified
Sun Sep 12 11:11:47 2004 UTC (8 years, 8 months ago) by
dpvc
Make partial credit in list answer checkers be the default (now that
WeBWorK can handle this).
Revision
2771 -
Directory Listing
Modified
Sat Sep 11 17:11:29 2004 UTC (8 years, 8 months ago) by
dpvc
Fixed a bug with constants where the values were being cached so that
changes in the context were not being reflected in the formulas that
use them.
Revision
2768 -
Directory Listing
Modified
Fri Sep 10 23:55:31 2004 UTC (8 years, 8 months ago) by
dpvc
When creating formulas from functions, don't evaluate even if the
formula is constant. (This makes it possible to create automatically
create formulas even if they only contain constants.)
Revision
2757 -
Directory Listing
Modified
Fri Sep 10 14:50:14 2004 UTC (8 years, 8 months ago) by
dpvc
No longer produces the message that there are too many answers if
hints are being shown about individual entries in a list. (This gave
away the answer about which ones to remove.)
Revision
2756 -
Directory Listing
Modified
Fri Sep 10 14:48:35 2004 UTC (8 years, 8 months ago) by
dpvc
Changed the error message produced for functions that have been
removed from the parser. I hope this will be more appropriate for
students.
Revision
2746 -
Directory Listing
Modified
Wed Sep 8 02:00:52 2004 UTC (8 years, 8 months ago) by
dpvc
Fixed error where AlgParser produces \sech and \csch, which are not
defined in TeX. This fixes bug #665.
Revision
2733 -
Directory Listing
Modified
Sat Sep 4 20:45:31 2004 UTC (8 years, 8 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 (8 years, 8 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 (8 years, 8 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 (8 years, 8 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 (8 years, 8 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 (8 years, 8 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 (8 years, 8 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 (8 years, 8 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
2701 -
Directory Listing
Modified
Sat Aug 28 15:53:09 2004 UTC (8 years, 8 months ago) by
dpvc
Only convert (f(x))^2 to f^2(x) for specified functions f
(as marked in the Context).
Revision
2698 -
Directory Listing
Modified
Sat Aug 28 13:52:33 2004 UTC (8 years, 8 months ago) by
dpvc
Add better error reporting in PG translator. In particular, these
changes add two new features:
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
2697 -
Directory Listing
Modified
Sat Aug 28 12:43:57 2004 UTC (8 years, 8 months ago) by
dpvc
Two more minor TeX improvements.
Revision
2696 -
Directory Listing
Modified
Sat Aug 28 12:34:56 2004 UTC (8 years, 8 months ago) by
dpvc
Improved TeX and string output in a number of situations. Improved
use of parentheses to avoid things like x+-3. Fixed wrong parentheses
in powers. Display (sin(x))^2 as sin^2(x) in TeX output.
Revision
2692 -
Directory Listing
Modified
Fri Aug 27 21:49:36 2004 UTC (8 years, 8 months ago) by
dpvc
Use the current context if the answer doesn't have one itself (like
with Value objects).
Revision
2688 -
Directory Listing
Modified
Fri Aug 27 19:42:59 2004 UTC (8 years, 8 months ago) by
dpvc
Added in functMaxConstantOfIntegration support in the adaptive
parameter answer checking. Also added a flag to the formula answer
checker that allows checking a formula up to a constant (for
integration problems). This really just adds a new parameter to the
context and adds that to the formula, so there is nothing deep about
this.
ANS(Formula("2x")->cmp(upToConstant=>1));
Finally, don't look for adaptive parameters if they aren't actually
used in the professor's formula (even if they are defined).
Revision
2687 -
Directory Listing
Modified
Fri Aug 27 00:28:27 2004 UTC (8 years, 8 months ago) by
dpvc
Added ability to have linear adaptive parameters in the function
answer checker. It only works for real-valued functions, though.
To use a parameter, use
Context()->variables->add(a=>'Parameter');
and then use 'a' as a variable within your answer. The student will
not be allowed to enter the parameter, but the professor will.
Note that the correct answer will show the full professor's answer,
including the parameters, even though the student can't type it. Is
this the right behaviour?
Revision
2684 -
Directory Listing
Modified
Tue Aug 24 21:35:21 2004 UTC (8 years, 9 months ago) by
dpvc
Added the makeUnion call that was removed earlier. The AnswerChecker
for formulas sometimes called it (when the student's answer is constant).
Revision
2682 -
Directory Listing
Modified
Tue Aug 24 03:36:54 2004 UTC (8 years, 9 months ago) by
dpvc
Fixed a bug with sin^2 x that introduced when I adjusted the
error report for implied multiplication.
Revision
2681 -
Directory Listing
Modified
Tue Aug 24 03:34:47 2004 UTC (8 years, 9 months ago) by
dpvc
TeX mode now adds parentheses around fractions, when needed.
Revision
2680 -
Directory Listing
Modified
Tue Aug 24 03:33:30 2004 UTC (8 years, 9 months ago) by
dpvc
Made string function look for a string field in teh definition of the
function as an override for its name. (This way, you can make asin
appear as arcsin or even sin^(-1) if you want).
Revision
2679 -
Directory Listing
Modified
Tue Aug 24 03:31:47 2004 UTC (8 years, 9 months ago) by
dpvc
Fixed wrong error messages when operators are undefined in a context.
Revision
2678 -
Directory Listing
Modified
Mon Aug 23 23:55:37 2004 UTC (8 years, 9 months ago) by
dpvc
Modified the parser so that the classes for the various object
constructors are stored in the context table rather than hard-coded
into the parser. That way, you can override the default classes with
your own. This gives you even more complete control to modify the
parser. (You had been able to replace the definitions of operators,
functions and list-like objects, but could not override the behaviour
of numbers, strings, variables, and so on. Now you can.)
This effects most of the files, but only by changing the name of the
calls that create the various objects.
There are also a couple of other minor fixes.
Revision
2676 -
Directory Listing
Modified
Mon Aug 23 05:00:16 2004 UTC (8 years, 9 months ago) by
dpvc
Better highlighting for syntax error involving implied
multiplication. (No highlighted had been done in the past.)
Revision
2675 -
Directory Listing
Modified
Mon Aug 23 04:59:05 2004 UTC (8 years, 9 months ago) by
dpvc
Get the type right when evaluating an AbsoluteValue and obtaining a
Value object.
Revision
2674 -
Directory Listing
Modified
Mon Aug 23 04:58:00 2004 UTC (8 years, 9 months ago) by
dpvc
Remove more lines in error messages produced while evaluation student
answers.
Revision
2673 -
Directory Listing
Modified
Mon Aug 23 01:21:27 2004 UTC (8 years, 9 months ago) by
dpvc
Moved WW-specific routines from Parser.pm to WeBWorK.pm.
Changed error reporting when the error message was not generated by
the parser directly. (The stack trace and line number references are
removed before the error is reported.)
Revision
2672 -
Directory Listing
Modified
Sun Aug 22 22:46:14 2004 UTC (8 years, 9 months ago) by
dpvc
Added easy calls to disable/enable collections of functions or
individual functions in the current context. So you can say
Parser::Context::Functions::Disable('Trig');
to disallow the use of trig functions, or
Parser::Context::Functions::Disable('Trig','Numeric');
Parser::Context::Functions::Enable('sqrt');
to disable trig and numeric functions (like log, exp, abs, etc) but
allow sqrt.
Note that disabling sqrt() does not disable x^(1/2) (this must be done
through disabling the ^ and ** operators), and disabling abs() does
not disable |x| (which must be done by removing the '|' definition
from the Context's parens list).
Revision
2671 -
Directory Listing
Modified
Sun Aug 22 21:18:06 2004 UTC (8 years, 9 months ago) by
dpvc
Fixed some inconsistencies between handing of matrices within the
parser and Value packages. Added a predefined Matrix context.
Revision
2670 -
Directory Listing
Modified
Sun Aug 22 16:06:28 2004 UTC (8 years, 9 months ago) by
dpvc
Had the default granularity the wrong direction.
Revision
2669 -
Directory Listing
Modified
Sun Aug 22 15:42:50 2004 UTC (8 years, 9 months ago) by
dpvc
Made the granularity of the test-point intervals be a parameter that
can be set on a global or variable-by-variable basis, so this is now
controlable from the .pg file. For example:
Context("Numeric")->variables->are(
k=>{limits=>[1,10], resolution=>1},
x=>{limits=>[-2,2], granularity=>1000},
);
will make k be a variable that will only take on integer values
between 1 and 10, and x a variable that will take on one of 1000
different values evenly spaced between -2 and 2 (so resolution is
4/1000 in this case).
These parameters can also be set for an individual formula:
$f = Formula("k^2-1");
$f->{resolution} = 1;
$f->{limits} = [0,10];
Revision
2668 -
Directory Listing
Modified
Sun Aug 22 02:55:38 2004 UTC (8 years, 9 months ago) by
dpvc
Fixed TeX output of Matrices to use \array rather than \matrix for
matrices with formulas as entries (this had already been fixed for
constant matrices). Made intervals produce formulas when of of the
endpoints is a formula. Removed unneeded comment.
Revision
2667 -
Directory Listing
Modified
Sun Aug 22 02:51:53 2004 UTC (8 years, 9 months ago) by
dpvc
Added support for dimension warnings in the answer checker for
formulas that return points, vectors or matrices.
Revision
2666 -
Directory Listing
Modified
Sun Aug 22 00:56:32 2004 UTC (8 years, 9 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(x=>'Real',y=>0); # two real variables
Context()->variables->add(z=>'Complex',w=>i); # two complexes
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
2665 -
Directory Listing
Modified
Sun Aug 22 00:41:44 2004 UTC (8 years, 9 months ago) by
dpvc
Made the default context be Numeric context rather than Full context.
Since there is only one variable in this context, it will speed up
function answer checking. It will also encourage you to choose the
correct context explicitly.
Also changed Complex context to have z as the only variable. If you
want x and y as reals, you need to add them in by hand. Again, this
is for efficiency in answer checking.
Revision
2664 -
Directory Listing
Modified
Sat Aug 21 22:02:14 2004 UTC (8 years, 9 months ago) by
dpvc
Added a file to perform WeBWorK-specific modifications to the
Parser/Value packages. (I've tried to make these independent of
WeBWorK, so you can use them in other perl code if you want to.)
The parameters for fuzzy reals and some of the other parameters now
are taken from the pg->{ansEvalDefaults} values (as defined in
global.conf or course.conf). More still needs to be done with this,
however.
Revision
2661 -
Directory Listing
Modified
Fri Aug 20 15:56:56 2004 UTC (8 years, 9 months ago) by
dpvc
A number of fixes to make handing lists work better. In particular,
you can now specify checks for whether the right kinds of parentheses
(or none at all) are used on the student's answer. Some of the flags
for the list checker have been changed to accommodate this.
Revision
2660 -
Directory Listing
Modified
Fri Aug 20 15:52:32 2004 UTC (8 years, 9 months ago) by
dpvc
A number of adjustments to get negative infinities to work better.
They used to be stored as separate Parser strings, but now they are
flagged versions of a single string.
All of the problems are really due to the fact that there is no
Infinity class in the Parser (only a Value version). That should be
changed, but will require some work, and can be put off for now.
It would be best if the classes within the two packages would match up
nearly 1-to-1, but for historical reasons, they don't. Since the
introduction of Real, String and Infinity classes to the Value
package, The Infinity class is the one main difference between the
two, and once that is fixed, everything needs to be looked over to
check for unnecessary complications due to the historical lack of classes
in one or the other package.
Revision
2658 -
Directory Listing
Modified
Fri Aug 20 11:17:06 2004 UTC (8 years, 9 months ago) by
dpvc
Make blank patterns be ^$ (which should never match) rather than empty
(which always matches). this fixes a problem where if a context has
no functions, for example, the parser would attempt to create function
calls to a function named ''.
Revision
2657 -
Directory Listing
Modified
Fri Aug 20 11:13:51 2004 UTC (8 years, 9 months ago) by
dpvc
Handle trapped error messages that are not produced by the parser
error reporter (i.e., by bugs within the parser itself). Also added
an error if implied multiplication is attempted when the operator for
it is not defined in the current context.
Revision
2656 -
Directory Listing
Modified
Fri Aug 20 02:13:38 2004 UTC (8 years, 9 months ago) by
dpvc
We need to protect the HTML in the professor's answer so that if it
contains <, for example, it won't disappear.
Revision
2655 -
Directory Listing
Modified
Fri Aug 20 02:11:50 2004 UTC (8 years, 9 months ago) by
dpvc
Fixed typo.
Revision
2654 -
Directory Listing
Modified
Fri Aug 20 02:11:08 2004 UTC (8 years, 9 months ago) by
dpvc
Avoid possible infinite recursion in promotePrecedence() when special
precedence is used.
Revision
2653 -
Directory Listing
Modified
Thu Aug 19 17:31:18 2004 UTC (8 years, 9 months ago) by
dpvc
Fixed error with handling of +infinity and -infinity.
(They had been defined as strings, but now we can let the + and -
operators handle them).
Revision
2650 -
Directory Listing
Modified
Thu Aug 19 14:23:00 2004 UTC (8 years, 9 months ago) by
dpvc
Added Parser::Number::NoDecimals() function that causes the parser to
give an error message when the student types a decimal number. This
means the student must enter fractions as fractions, or values like
sqrt(2) or pi/4 symbolically not numerically.
Revision
2649 -
Directory Listing
Modified
Thu Aug 19 14:19:32 2004 UTC (8 years, 9 months ago) by
dpvc
Fixed an error in the generation of regexp patterns for the various
data types.
Revision
2648 -
Directory Listing
Modified
Thu Aug 19 12:38:47 2004 UTC (8 years, 9 months ago) by
dpvc
The answer checkers now work with subclasses of Formulas that are not
part of the Value:: package tree itself (we call Value::isFormula()
rather than checking the class directly).
I also removed the various cmp_* flags that stored method names as
they ended up not needing to be used (they were intended as a means of
overriding the default method names, but subclassing turned out to be
a better approach).
I moved some initialization of the answer checker out of the anonymous
subroutine that is installed in the checker and just have that
subroutine call the correct answer's main checker (which I renamed).
Finally, I changed the student_ans value to be an HTMLized version of
the student answer, since the student could include things like < in
his answer (e.g., for vectors), in which case his whole answer might
disappear. I wonder if this couldn't be handled better at a higher
level, as it seems wrong to make the student_ans be HTML rather than
the parsed string. I originally thought Problem.pm could do the
protecting of HTML special characters, but this won't work without
additional changes, since some answer checkers put HTML into
student_ans to mark sytanx errors in the student answer, and you DON'T
want to protect those HTML characters. The student_ans field is
probably being misused in this, and there might want to be another
field that gets used by Problem.pm in place of student_ans (which can
be HTML protected) when it is non-empty; say student_HTML or something
like that. The answer checkers could use that field if it wants to
add HTML to the student answer, and student_ans otherwise, with the
assurance that it's HTML characters will be protected. That way, if a
second answer checker calls the first (like some list checkers do),
then the second checker doesn't have to worry about removing HTML from
the student ans, and doesn't ahve to wonder whether the student_ans
actually contains an error message or syntax markings rather than the
actual student answer.
Revision
2647 -
Directory Listing
Modified
Thu Aug 19 12:18:56 2004 UTC (8 years, 9 months ago) by
dpvc
Context() now accepts a reference to an actual Context object rather
than a name of a predefined context, and will switch to that.
Revision
2646 -
Directory Listing
Modified
Thu Aug 19 12:16:41 2004 UTC (8 years, 9 months ago) by
dpvc
Make it possible to create subclasses of objects in the value package
that are not actually in the Value:: package tree. This makes it
possible to have .pl files (that are run via loadMacros) that create
new Value object classes that are local to the problem rather than
global to the system. (With mod_perl, if a .pl file added to the
Value:: tree itself, the results would be persistent, and this could
adversely affect future problems processed by the same httpd child
process. It could lead to "redefined subroutine" errors, or worse.)
This provides a safe way to extend the parser on a problem-specific
basis.
This technique is used in the line and plane answer checkers (coming
soon), for example. If such a checker becomes widely used, it can
always be added into the Value:: tree at a later time.
Revision
2645 -
Directory Listing
Modified
Thu Aug 19 12:02:15 2004 UTC (8 years, 9 months ago) by
dpvc
Make sure equality always returns a defined value, and
put spaces around the equal sign in string output.
Revision
2644 -
Directory Listing
Modified
Thu Aug 19 12:01:12 2004 UTC (8 years, 9 months ago) by
dpvc
Make sure loadMacros() doesn't try to load these files more than once.
Revision
2643 -
Directory Listing
Modified
Thu Aug 19 11:55:56 2004 UTC (8 years, 9 months ago) by
dpvc
Use the standard precedences rather than the experimental ones by
default. The professor will need to specificaly request the
non-standard ones, for now.
Revision
2634 -
Directory Listing
Modified
Tue Aug 17 15:21:58 2004 UTC (8 years, 9 months ago) by
dpvc
Changed the string used for the student answer to be taken from the
unevaluated formula rather than the fully-evaluated one. This leaves
constants unreplaced, for one thing.
Currently the parser combines constants automatically during the parse
[which should be controllable by a flag], so student answers that
produce numbers are fully evaluated at this point already, except for
constant substitution. This could be changed so that even for
numberic results, the student sees the parsed expression (rather than
the numeric result), which might help them identify where they and the
parser differ in their interpretation. It is still nice to see the
final computed result, however, but there is no place to show the
parsed input as well as the final result. One solution would be to
add another column (wasting space). Another would be to make the
value shown be "parsed-value = computed-value" when they are not the
same thing. A bit ugly, but works within the current framework.
Revision
2632 -
Directory Listing
Modified
Tue Aug 17 12:05:18 2004 UTC (8 years, 9 months ago) by
dpvc
Fixed typo in name of random generator.
Revision
2629 -
Directory Listing
Modified
Tue Aug 17 02:01:27 2004 UTC (8 years, 9 months ago) by
dpvc
Fixed a number of minor problems with creating perl functions from
formulas (this is done automatically as part of the function answer
checker, so is showing up now that I have that checker in place).
Also improved error messages in the function answer checker, and fixed
a bug when students enter a constant list or union when the answer
checker expects formulas.
Revision
2628 -
Directory Listing
Modified
Mon Aug 16 21:41:05 2004 UTC (8 years, 9 months ago) by
dpvc
Allow parser "constants" to be (in reality) formulas. That way, for
example, you can defined T, N and B to be the formulas for the unit
tangent, normal and binormal of a space curve (as functions of "t")
and the student can write anwers in terms of T, N and B (without
having to compute them).
You could have created FUNCTIONS T(t), N(t) and B(t), and added them
to the parser to get almost the same effect, but the students would
have had to include the "(t)". (If you want that, go ahead and do it
that way.)
Revision
2627 -
Directory Listing
Modified
Mon Aug 16 20:22:16 2004 UTC (8 years, 9 months ago) by
dpvc
Removed unwanted side-effects of some type-match checks, and moved the
ignoreStrings flag so that it is available for the checkers of ANY type.
Revision
2626 -
Directory Listing
Modified
Mon Aug 16 19:44:26 2004 UTC (8 years, 9 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
2625 -
Directory Listing
Modified
Mon Aug 16 18:35:12 2004 UTC (8 years, 9 months ago) by
dpvc
Added string comparison to all Value object classes (to compare the
string value of an object to another string).
Overloaded perl '.' operator to do dot product when the operands are
formulas returning vectors. (Part of the auto-generation of
formulas).
A few improvements to real and complex class output results.
Made Union class slightly more robust and removed need for makeUnion
method other than in the Union itself.
Revision
2624 -
Directory Listing
Modified
Mon Aug 16 13:44:45 2004 UTC (8 years, 9 months ago) by
dpvc
Added support for unorderd list or formulas with partial credit.
Fixed type mismatch reporting in formula answer checker.
Fixed an error with Unions producing incorrect perl versions under
some circumstances.
Revision
2622 -
Directory Listing
Modified
Sun Aug 15 22:46:57 2004 UTC (8 years, 9 months ago) by
dpvc
Created the first draft of the Parser's function answer checker. Some
work still needs to be done, in particular, type mismatches are not
being reported, and lists are being processed only as ordered lists
with no partial credit.
This doesn't implement everything from fun_cmp. In particular, there
is no support for parameter matching at the moment. This will have to
be added, but I'm not quite sure how to do it when the function's
return value is not a real number (e.g., an interval).
On the other hand, this checker is more forgiving about domain errors:
if tries a point where the professor's function is not defined, it
ignores that one and looks for another (until it decides it can't find
one). Once it has these points, it tries them on the student's
answer, and if the student's function is undefined, then the student
answer is wrong (since it is not defined somewhere that the
professor's funciton is). This avoids the "Error evaluating student
function at ..." messages, which just confused most students anyway.
Revision
2621 -
Directory Listing
Modified
Sun Aug 15 17:05:41 2004 UTC (8 years, 9 months ago) by
dpvc
Improved error messages, particularly when the student enters a
formula in an answer that should be constant, and also for incorrect
answers in lists of answers. There are a few other miscellaneous output
improvements as well.
Revision
2620 -
Directory Listing
Modified
Sun Aug 15 12:02:05 2004 UTC (8 years, 9 months ago) by
dpvc
Had to put back the global context variable after all. :-(
It gets reset in Parser.pl, so it should be OK even with mod_perl.
Revision
2619 -
Directory Listing
Modified
Sun Aug 15 00:45:46 2004 UTC (8 years, 9 months ago) by
dpvc
Modified Context() function so that it no longer uses a global package
variable for storing the user's context table.
Revision
2617 -
Directory Listing
Modified
Sun Aug 15 00:13:38 2004 UTC (8 years, 9 months ago) by
dpvc
The Union answer checker now uses the generic List checker, so that it
will be able to produce partial credit and hints about which Intervals
are correct.
Revision
2616 -
Directory Listing
Modified
Sat Aug 14 21:29:21 2004 UTC (8 years, 9 months ago) by
dpvc
Added an equality operator (not active initially) that can be used for
things like equations of planes and so on. I'm working on the answer
checker for that.
Revision
2615 -
Directory Listing
Modified
Sat Aug 14 21:27:45 2004 UTC (8 years, 9 months ago) by
dpvc
*** empty log message ***
Revision
2612 -
Directory Listing
Modified
Sat Aug 14 19:29:42 2004 UTC (8 years, 9 months ago) by
dpvc
Fixed some bugs in the handle of the context in ->string and ->TeX
methods of Value objects.
Revision
2611 -
Directory Listing
Modified
Sat Aug 14 15:59:35 2004 UTC (8 years, 9 months ago) by
dpvc
Fixed a typo in one of the parser answer checkers. Added a line that
was incorrecctly removed in the parser.
Revision
2610 -
Directory Listing
Modified
Sat Aug 14 13:55:54 2004 UTC (8 years, 9 months ago) by
dpvc
The class file for the Value::String object. (Forgot to add it before
the last commit. Sorry!)
Revision
2609 -
Directory Listing
Modified
Sat Aug 14 13:54:52 2004 UTC (8 years, 9 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
checkers, and how the answer checker reports the expected answer type
in type mismatch error messages.
Revision
2608 -
Directory Listing
Modified
Sat Aug 14 13:49:56 2004 UTC (8 years, 9 months ago) by
dpvc
Added Infinity function (similar to i and pi) for creating infinity
constants.
Revision
2607 -
Directory Listing
Modified
Sat Aug 14 11:26:49 2004 UTC (8 years, 9 months ago) by
dpvc
Allow unary + and - to work on infinities.
Revision
2606 -
Directory Listing
Modified
Sat Aug 14 11:25:47 2004 UTC (8 years, 9 months ago) by
dpvc
Can now specify that the objects stringify themselfs in their TeX
forms rather than their answer-string forms. This makes it easier to
use the objects in the text of a problem (without having to call ->TeX
explicitly each reference).
Use
Context()->texStrings
to start outputting TeX strings, and
Context()->normalStrings
to switch back.
Revision
2605 -
Directory Listing
Modified
Sat Aug 14 02:50:18 2004 UTC (8 years, 9 months ago) by
dpvc
Incorporated infinities into Parser package better. They have been
stored as String objects (with extra data) in the parser, and I've
left it that way, but now they convert to/from Vallue::Infinity
objects correctly, and these are used for generating the output.
Also added the Infinity answer checker, and adjusted the error
messages produces by type mismatches in the answer checkers and
elsewhere.
Revision
2604 -
Directory Listing
Modified
Fri Aug 13 23:49:16 2004 UTC (8 years, 9 months ago) by
dpvc
Fixed some output issues with intervals and unions.
Revision
2603 -
Directory Listing
Modified
Fri Aug 13 23:01:07 2004 UTC (8 years, 9 months ago) by
dpvc
Added an Infinite object class for the Value package. Still need to
add it to the Parser package.
Revision
2602 -
Directory Listing
Modified
Fri Aug 13 22:57:27 2004 UTC (8 years, 9 months ago) by
dpvc
Changed the way the parser checks to see if it is loaded.
Revision
2601 -
Directory Listing
Modified
Fri Aug 13 19:06:09 2004 UTC (8 years, 9 months ago) by
dpvc
Added ability to report incorrect coordinates in point and vector
answers, and incorrect endpoints and endpoint types in intervals.
Separated these kinds of checks from the typeMatch check, where they
didn't really belong.
Added ability to specify intervals and unions as strings in Interval()
and Union(), which makes it easier to make constants of these types.
There are still problems comparing intervals that contain infinities;
I really need to make the infinity object to solve this, so have put
off trying to fix that for now.
Revision
2600 -
Directory Listing
Modified
Fri Aug 13 14:39:16 2004 UTC (8 years, 9 months ago) by
dpvc
Handle list entries that are not Value objects better.
Revision
2599 -
Directory Listing
Modified
Fri Aug 13 14:19:23 2004 UTC (8 years, 9 months ago) by
dpvc
The List object's answer checker is now considerably improved. It
will allow you to specify an unorderd or ordered check, and whether to
print various kinds of hints for wrong answers.
The checker can return partial credit, but WW doesn't deal well with
this at the moment (some small changes to Problem.pm can take care of
that). Partial credit should be based on $showPartialCorrectAnswers,
but it is disabled for now.
The list answer checker probably still needs some work, especially
with non-numeric lists.
Revision
2597 -
Directory Listing
Modified
Fri Aug 13 11:38:22 2004 UTC (8 years, 9 months ago) by
dpvc
Added answer checker for parallel vectors.
Added option to number checker to have it not report type mismatches
for the known strings (like 'infinity'). (Really need a class for
infinities, and a Value.pm class for strings.)
Revision
2596 -
Directory Listing
Modified
Thu Aug 12 23:11:32 2004 UTC (8 years, 9 months ago) by
dpvc
Have parser handle infinities better.
Revision
2594 -
Directory Listing
Modified
Thu Aug 12 20:17:18 2004 UTC (8 years, 9 months ago) by
dpvc
Fixes for handling intervals better. In particular, deal better with
ambiguous situations, like (1,2) that could be a point.
You can use [a,a] to specify the single point a. I'd like to make {a}
represent this (and maybe even {a,b,c} to form finite sets), but this
would interfere with the use of { and } as alternative parentheses.
(Does anyone really use these?)
Do we need a cross product for intervals (and sets) as a means of
representing regions in R^2 (or higher)?
Revision
2593 -
Directory Listing
Modified
Thu Aug 12 16:48:52 2004 UTC (8 years, 9 months ago) by
dpvc
This is a preliminary attempt at adding answer checkers that use the
parser. If you have a parser object (like a formula or a vector), you
can use the ->cmp method to get an answer checker appropriate for the
object. For example:
Context('Vector');
$v = Vector(1,2,3);
# print text of problem
ANS($v->cmp);
would produce an answer checker that matched against the vector <1,2,3>.
Most of the parameters are set in the Context, but additional ones can
be passed to the checker (this still needs work).
See the sample problems for more examples.
The checkers for Reals, Complexes, Points, Vectors, Matrices and
Intervals work pretty well. The ones for List and Union objects need
more work, as they only do an ORDERED check at the moment (the student
answers must be in the same order). This needs to be fixed.
The checker for Formula objects (which corresponds to fun_cmp) still
needs to be written.
Revision
2592 -
Directory Listing
Modified
Thu Aug 12 16:40:47 2004 UTC (8 years, 9 months ago) by
dpvc
A number of small fixes. Most were to fix minor bugs in string and
TeX output, particulary for the various list-based objects (like
vectors, intervals, etc.). There were also some bug fixes in the
comparison routines. Some additional checks were added for valid
intervals when the coordinates are formulas.
Revision
2590 -
Directory Listing
Modified
Wed Aug 11 18:02:44 2004 UTC (8 years, 9 months ago) by
dpvc
Added Real() command to create fuzzy reals.
Revision
2583 -
Directory Listing
Modified
Tue Aug 10 11:22:19 2004 UTC (8 years, 9 months ago) by
dpvc
Fixed generation of LaTeX version of sqrt(...).
Revision
2580 -
Directory Listing
Modified
Mon Aug 9 21:38:58 2004 UTC (8 years, 9 months ago) by
dpvc
Forgot to add this file. It implements the "fuzzy real" class.
Revision
2579 -
Directory Listing
Modified
Mon Aug 9 21:38:01 2004 UTC (8 years, 9 months ago) by
dpvc
Significant update to new parser.
New features include:
Better control over format of vector output (you can now
specify ijk-format rather than <...> format)
"Fuzzy" reals, where the relations like == return true when the
two values are "close enough". (This is controlable using
parameters similar to those used in NUM_CMP).
The fuzzy reals are now used in vectors/points/matrices/complexes/intervals
and so on so that their relations will also be fuzzy. E.g.,
(1E-13,2) == (0,3) will be true, and norm(Vector(0,1E-13)) will
equal 0.
The two main portions of the parser (the Parser and Value packages)
now share a common context object for configuration purposes.
Revision
2576 -
Directory Listing
Modified
Wed Aug 4 20:52:28 2004 UTC (8 years, 9 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 (8 years, 9 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 (8 years, 9 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 (8 years, 10 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 (8 years, 10 months ago) by
gage
Added better error messages. Removed and extraneous slash.
Revision
2469 -
Directory Listing
Modified
Thu Jul 8 15:29:45 2004 UTC (8 years, 10 months ago) by
apizer
Create equations directory if it doesn't exist. All directories under
tmp should be recreated if they don't exist.
Arnie
Revision
2461 -
Directory Listing
Modified
Wed Jul 7 21:26:52 2004 UTC (8 years, 10 months ago) by
apizer
Change permission of tmp files so that they can be removed.
Arnie
Revision
2445 -
Directory Listing
Modified
Tue Jul 6 21:21:20 2004 UTC (8 years, 10 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 (8 years, 10 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
2420 -
Directory Listing
Modified
Sat Jun 26 21:56:44 2004 UTC (8 years, 10 months ago) by
jj
Most of the work for adjusting vertical alignment of images is here.
Revision
2409 -
Directory Listing
Modified
Fri Jun 25 16:27:55 2004 UTC (8 years, 11 months ago) by
jj
Allow option of not using the cache. If its path is the empty string, then
we just return the md5 hash of the latex string followed by a 1.
Revision
2400 -
Directory Listing
Modified
Fri Jun 25 12:32:14 2004 UTC (8 years, 11 months ago) by
dpvc
Fixed error in ANS_NUM_TO_NAME.
Revision
2396 -
Directory Listing
Modified
Thu Jun 24 22:07:22 2004 UTC (8 years, 11 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 (8 years, 11 months ago) by
dpvc
Removed the experimental Parser-based implementations of i(), j() and k().
(sorry about that).
Revision
2392 -
Directory Listing
Modified
Thu Jun 24 21:00:26 2004 UTC (8 years, 11 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
2389 -
Directory Listing
Modified
Thu Jun 24 18:13:33 2004 UTC (8 years, 11 months ago) by
dpvc
Removed extra spaces from around dvipng images.
(These can cause bad line breaks, e.g. between mathematics and the
punctuation that follows.)
Revision
2370 -
Directory Listing
Modified
Wed Jun 23 01:19:15 2004 UTC (8 years, 11 months ago) by
sh002i
moved DISPLAY_MODE_FAILOVER into this file
Revision
2369 -
Directory Listing
Modified
Wed Jun 23 01:18:58 2004 UTC (8 years, 11 months ago) by
sh002i
ImageGenerator is now using WeBWorK::Constants
Revision
2363 -
Directory Listing
Modified
Tue Jun 22 18:03:07 2004 UTC (8 years, 11 months ago) by
jj
When using the imageCache (which is always), put images into subdirectories
based on the first two characters of their md5 hash.
Revision
2345 -
Directory Listing
Modified
Thu Jun 17 20:02:12 2004 UTC (8 years, 11 months ago) by
apizer
Changed pacckage name from strict to ww_strict per Sam's suggestion
to prevent redefining warnings.
Arnie
Revision
2292 -
Directory Listing
Modified
Fri Jun 11 16:40:44 2004 UTC (8 years, 11 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 (8 years, 11 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 (8 years, 11 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 (8 years, 11 months ago) by
dpvc
Removed redundant HTML_jsMath check.
Revision
2267 -
Directory Listing
Modified
Mon Jun 7 01:34:34 2004 UTC (8 years, 11 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 (8 years, 11 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 (8 years, 11 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 (8 years, 11 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 (9 years 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 (9 years 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 (9 years ago) by
dpvc
update to asciimath for MSIE.
Revision
2199 -
Directory Listing
Modified
Mon May 24 01:59:53 2004 UTC (9 years 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 (9 years ago) by
sh002i
failover data now passed in via %envir.
Revision
2173 -
Directory Listing
Modified
Sun May 23 01:33:22 2004 UTC (9 years ago) by
jj
Added helpLink for standard help pages in pg files.
Revision
2167 -
Directory Listing
Modified
Sat May 22 22:32:43 2004 UTC (9 years ago) by
gage
Moved be_strict after package main;
Revision
2166 -
Directory Listing
Modified
Sat May 22 22:16:20 2004 UTC (9 years ago) by
dpvc
Files needed for jsMath display mode.
Revision
2164 -
Directory Listing
Modified
Sat May 22 22:10:30 2004 UTC (9 years ago) by
gage
Moving ww_strict.pm forward to 5.8.3 compatible version
with require Carp; commented out
Revision
2163 -
Directory Listing
Modified
Sat May 22 21:34:58 2004 UTC (9 years ago) by
gage
Moved ww_strict.pm back to be identical with strict.pm from perl 5.6
Revision
2158 -
Directory Listing
Modified
Sat May 22 20:48:51 2004 UTC (9 years ago) by
gage
We are now using ww_strict.pm instead of strict.pm in be_strict;
Revision
2157 -
Directory Listing
Modified
Sat May 22 20:46:20 2004 UTC (9 years ago) by
gage
We are using our own version of strict.pm that has a require Carp; commented out.
This is included in be_strict which is used to implement strict within PG macro files
which need to be evaluted inside the Safe compartment
Revision
2155 -
Directory Listing
Modified
Sat May 22 18:04:23 2004 UTC (9 years ago) by
jj
Moved nicestring to PGbasicmacros.
Revision
2153 -
Directory Listing
Modified
Sat May 22 15:53:00 2004 UTC (9 years 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 (9 years 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 (9 years 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 (9 years 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 (9 years 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
2142 -
Directory Listing
Modified
Fri May 21 23:54:00 2004 UTC (9 years ago) by
apizer
Replaced PGsort with a version that uses quick sort. This fixes the
problem the old PGsort had with Perl compiled with ithreads.
Arnie
Revision
2135 -
Directory Listing
Modified
Fri May 21 01:34:28 2004 UTC (9 years ago) by
sh002i
Modified DVIPNG_ARGS to work with dvipng >= 1.0.
Revision
2061 -
Directory Listing
Modified
Sun May 9 17:45:41 2004 UTC (9 years 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
2060 -
Directory Listing
Modified
Sun May 9 17:43:32 2004 UTC (9 years ago) by
gage
Cosmetic fixes to code layout.
Revision
2057 -
Directory Listing
Modified
Sat May 8 22:53:03 2004 UTC (9 years 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 (9 years 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 (9 years, 1 month 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 (9 years, 1 month 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 (9 years, 1 month 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 (9 years, 1 month ago) by
jj
Added support for useBaseTenLog for ww2.
Revision
1896 -
Directory Listing
Modified
Wed Mar 17 00:45:28 2004 UTC (9 years, 2 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 (9 years, 2 months ago) by
gage
Added comments
Revision
1831 -
Directory Listing
Modified
Thu Mar 4 13:06:32 2004 UTC (9 years, 2 months ago) by
gage
Changed documentation spacing
Revision
1812 -
Directory Listing
Modified
Mon Feb 16 20:34:01 2004 UTC (9 years, 3 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 (9 years, 3 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 (9 years, 3 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 (9 years, 3 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 (9 years, 3 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 (9 years, 3 months ago) by
gage
Corrected format of one line.
--Mike
Revision
1779 -
Directory Listing
Modified
Fri Feb 6 02:52:42 2004 UTC (9 years, 3 months ago) by
gage
Allow a 256 error from dvipng. This seems to be necessary on webwork.math.rochester.edu, so I'm commiting
it to the CVS as well to keep the two systems in sync.
--Mike
Revision
1765 -
Directory Listing
Modified
Fri Jan 30 18:04:37 2004 UTC (9 years, 3 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 (9 years, 3 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
1759 -
Directory Listing
Modified
Mon Jan 26 16:59:30 2004 UTC (9 years, 4 months ago) by
gage
Minor change to the definition of the timer
Revision
1758 -
Directory Listing
Modified
Mon Jan 26 16:36:29 2004 UTC (9 years, 4 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 (9 years, 4 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 (9 years, 4 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
1688 -
Directory Listing
Modified
Sat Dec 27 21:34:04 2003 UTC (9 years, 4 months ago) by
gage
Added error messages that should make it easier to tell if
certain directories have not been created. Also checks that
files are actually created and written at each step of the process.
--Mike
Revision
1620 -
Directory Listing
Modified
Fri Nov 7 14:55:12 2003 UTC (9 years, 6 months ago) by
apizer
fixed a bug in line 2469 replacing \npsvnNumber by \n$psvnNumber
Arnie
Revision
1556 -
Directory Listing
Modified
Wed Oct 1 02:40:09 2003 UTC (9 years, 7 months ago) by
sh002i
changed the way the IO modules work: shared subroutines are in IO now,
and IO has a hash %WeBWorK::PG::IO::SHARE which can be added to
Translator's %shared_subroutine_hash directly.
Revision
1555 -
Directory Listing
Modified
Wed Oct 1 02:31:54 2003 UTC (9 years, 7 months ago) by
sh002i
changed documentation to reflect the fact that reh refresh and mtime
flags are no longer used
Revision
1553 -
Directory Listing
Modified
Tue Sep 30 01:20:55 2003 UTC (9 years, 7 months ago) by
sh002i
added files from WW2
Revision
1550 -
Directory Listing
Modified
Tue Sep 30 01:18:25 2003 UTC (9 years, 7 months ago) by
sh002i
check to see if $envir->{texDisposition} is defined before trying to
access it.
Revision
1540 -
Directory Listing
Modified
Sat Sep 27 16:47:34 2003 UTC (9 years, 7 months ago) by
gage
When displaying a raw student answer, nulls are converted to \0 so that they
can be seen. This is probably redundant since strings with multiple values
separated by nulls are supposed to be converted to references to arrays before
they reach this point.
--Mike
Revision
1535 -
Directory Listing
Modified
Fri Sep 26 21:16:18 2003 UTC (9 years, 8 months ago) by
gage
Added line which prints out the raw student answer when the debug
flag is on.
--Mike
Revision
1534 -
Directory Listing
Modified
Thu Sep 25 05:42:31 2003 UTC (9 years, 8 months ago) by
sh002i
removed unneeded #! line
Revision
1528 -
Directory Listing
Modified
Thu Sep 25 01:29:21 2003 UTC (9 years, 8 months ago) by
sh002i
fixed #! line
Revision
1525 -
Directory Listing
Modified
Thu Sep 25 00:29:59 2003 UTC (9 years, 8 months ago) by
sh002i
removed unneeded #! lines
Revision
1524 -
Directory Listing
Modified
Thu Sep 25 00:28:15 2003 UTC (9 years, 8 months ago) by
sh002i
added image generation modules from WW2
Revision
1506 -
Directory Listing
Modified
Fri Sep 19 01:30:13 2003 UTC (9 years, 8 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 (9 years, 8 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 (9 years, 8 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 (9 years, 8 months ago) by
gage
Corrected a typo in EV4
--Mike
Revision
1483 -
Directory Listing
Modified
Fri Sep 5 13:19:45 2003 UTC (9 years, 8 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 (9 years, 9 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 (9 years, 9 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 (9 years, 9 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 (9 years, 9 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
1454 -
Directory Listing
Modified
Tue Aug 12 16:43:36 2003 UTC (9 years, 9 months ago) by
jj
Redoing fix to random so that random(2,7,3) won't produce 8. The original
fix was lost in the merger with mod-perl version.
Revision
1453 -
Directory Listing
Modified
Wed Aug 6 18:59:26 2003 UTC (9 years, 9 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 (9 years, 9 months ago) by
jj
Revised documentation for test_points.
Revision
1451 -
Directory Listing
Modified
Tue Aug 5 16:34:38 2003 UTC (9 years, 9 months ago) by
jj
Added some documentation for test_points.
Revision
1450 -
Directory Listing
Modified
Tue Aug 5 16:24:48 2003 UTC (9 years, 9 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 (9 years, 10 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 (9 years, 10 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 (9 years, 10 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 (9 years, 10 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 (9 years, 10 months ago) by
apizer
incorporate some of davide Cervone'e changes
Arnie
Revision
1333 -
Directory Listing
Modified
Wed Jul 9 23:20:23 2003 UTC (9 years, 10 months ago) by
jj
Fixed new bug introduced by, er, my previous bug fix.
Revision
1332 -
Directory Listing
Modified
Wed Jul 9 20:29:04 2003 UTC (9 years, 10 months ago) by
lr003k
Fixed a rounding problem.
Revision
1331 -
Directory Listing
Modified
Wed Jul 9 20:28:40 2003 UTC (9 years, 10 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 (9 years, 10 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 (9 years, 10 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 (9 years, 10 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 (9 years, 10 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 (9 years, 10 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 (9 years, 10 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 (9 years, 10 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 (9 years, 10 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
1310 -
Directory Listing
Modified
Tue Jul 1 15:35:51 2003 UTC (9 years, 10 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
--Mike
Revision
1305 -
Directory Listing
Modified
Tue Jul 1 00:48:01 2003 UTC (9 years, 10 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 (9 years, 10 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 (9 years, 10 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 (9 years, 11 months ago) by
gage
Fixed typo in beginproblem
--Mike
Revision
1294 -
Directory Listing
Modified
Fri Jun 27 13:57:09 2003 UTC (9 years, 11 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
1290 -
Directory Listing
Modified
Thu Jun 26 22:43:15 2003 UTC (9 years, 11 months ago) by
gage
Merge the time optimized branch and the main branch. I forgot one subroutine
--Mike
Revision
1286 -
Directory Listing
Modified
Thu Jun 26 21:08:47 2003 UTC (9 years, 11 months ago) by
gage
Make sure that the local my variables are updated in PGbasicmacros
as well as the variables in main::.
--Mike
Revision
1285 -
Directory Listing
Modified
Thu Jun 26 21:04:09 2003 UTC (9 years, 11 months ago) by
gage
Adding preliminary ability to decompose non-square matrices. Won't work
if a permutation is required (i.e. a pivot)
--Mike
Revision
1280 -
Directory Listing
Modified
Thu Jun 26 17:42:18 2003 UTC (9 years, 11 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 (9 years, 11 months ago) by
lr003k
Matrices now displayed in previewer.
Revision
1276 -
Directory Listing
Modified
Wed Jun 25 16:26:42 2003 UTC (9 years, 11 months ago) by
lr003k
committed the wrong thing
Revision
1274 -
Directory Listing
Modified
Wed Jun 25 15:43:03 2003 UTC (9 years, 11 months ago) by
lr003k
fixed a bug
Revision
1267 -
Directory Listing
Modified
Tue Jun 24 15:25:58 2003 UTC (9 years, 11 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 (9 years, 11 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 (9 years, 11 months ago) by
lr003k
Made the code more object-oriented
Revision
1253 -
Directory Listing
Modified
Mon Jun 23 18:34:44 2003 UTC (9 years, 11 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 (9 years, 11 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 (9 years, 11 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 (9 years, 11 months ago) by
lr003k
Matrices now take math constants.
Revision
1237 -
Directory Listing
Modified
Fri Jun 20 18:59:44 2003 UTC (9 years, 11 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 (9 years, 11 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 (9 years, 11 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 (9 years, 11 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 (9 years, 11 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 (9 years, 11 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 (9 years, 11 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 (9 years, 11 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 (9 years, 11 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 (9 years, 11 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 (9 years, 11 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
1117 -
Directory Listing
Modified
Wed Jun 11 04:00:37 2003 UTC (9 years, 11 months ago) by
gage
Added a feature to correspond to a change made in process_answers in Translator.pm.
Each answer
evaluator is given the
answer AND the answer label (e.g. AnSWer1) of the answer. The label
is placed in the answer hash at $hash{ans_label} for use by filters
that need to know the label of the answer they are evaluating.
--Mike
Revision
1115 -
Directory Listing
Modified
Wed Jun 11 02:43:42 2003 UTC (9 years, 11 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 (9 years, 11 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 (9 years, 11 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
1094 -
Directory Listing
Modified
Mon Jun 9 22:46:25 2003 UTC (9 years, 11 months ago) by
jj
Fixed bug when the function is sampled at a point where it is not defined.
Revision
1091 -
Directory Listing
Modified
Mon Jun 9 21:53:11 2003 UTC (9 years, 11 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 (9 years, 11 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 (9 years, 11 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 (9 years, 11 months ago) by
apizer
remove unneccsary shebang lines
Arnie
Revision
1079 -
Directory Listing
Modified
Mon Jun 9 17:36:12 2003 UTC (9 years, 11 months ago) by
apizer
removed unneccesary shebang lines
Revision
1073 -
Directory Listing
Modified
Mon Jun 9 13:30:46 2003 UTC (9 years, 11 months ago) by
gage
This module contains IO used in saving an answer to a file.
--Mike
Revision
1072 -
Directory Listing
Modified
Mon Jun 9 02:27:04 2003 UTC (9 years, 11 months ago) by
gage
The file PGcomplexmacros.pl is partially in sync with the version in
courseScripts. I need advice on the latest versions of some of the
subroutines from Liam.
--Mike
Revision
1071 -
Directory Listing
Modified
Mon Jun 9 02:26:17 2003 UTC (9 years, 11 months ago) by
gage
Bringing these files in sync with the latest versions in the
courseScripts CVS
--Mike
Revision
1070 -
Directory Listing
Modified
Mon Jun 9 02:02:20 2003 UTC (9 years, 11 months ago) by
gage
Bringing this version of Matrix.pm up to date with the latest in
courseScripts.
--Mike
Revision
1069 -
Directory Listing
Modified
Mon Jun 9 02:01:41 2003 UTC (9 years, 11 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 (9 years, 11 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 (9 years, 11 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 (9 years, 11 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 (9 years, 11 months ago) by
sh002i
moved PG modules and macro files from webwork-modperl to pg
-sam