# Algebra filter

## Generally

Moodle has an "algebra filter" which can display mathematical expressions as if they were typeset. The filter is included in the standard Moodle packages but the administrator must activate it before you can use it.

NOTE that use of the algebra filter REQUIRES that the Moodle Tex filter also be working as the algebra filter simply parses math expressions in one syntax and then converts the expressions to LaTex expressions for the Tex filter to render and display. The filter uses a perl script borrowed from

The filter (see http://cvs.moodle.org/moodle/filter/algebra/ ) uses algebra2tex.pl, a perl script (and its associated perl module, AlgParser.pm) to parse text expressions delimited by double@ signs as tokens (though the tokens employed can be tweaked manually.)

While many have argued that the algebra filter is easy to use, there is apparently no Moodle reference on its "grammar" or "syntax". Research in to Webworks produced these two links for using webworks text expressions (the first one is arguably replaced by the second):

- http://webwork.math.rochester.edu/docs/docs/pglanguage/availableFunctions.html
- http://webwork.maa.org/wiki/Mathematical_notation_recognized_by_WeBWorK

See http://moodle.org/mod/forum/discuss.php?d=126522&parent=554632.

There is a discussion of Algebra filter syntax at http://moodle.org/mod/forum/discuss.php?d=5402 offered by Zbigniew Fiedorowicz.

It appears that as of Moodle.org moving to Moodle 2 (late 2010) the Algebra filter in the forums is no longer working. It also appears that the Algebra filter does not work in Moodle Docs (which is not Moodle code, but MediaWiki, which I don't believe has a ready filter based on algebra2tex.pl.

## Troubleshooting

The file algebradebug.php is provided in the filter folder for the purpose of debugging. Problems may arise comes from the first tags in algebradebug.php - in moodle 1.9 (and previous versions)

$nomoodlecookie = true; // Because it interferes with caching

and in moodle 2

define('NO_MOODLE_COOKIES', true); // Because it interferes with caching

You can delete these lines or set them false.